From 79194cb513fd336cf7e9d25b753f6101f4c957dd Mon Sep 17 00:00:00 2001 From: Peiling Jiang <25191575+peilingjiang@users.noreply.github.com> Date: Tue, 4 Jun 2024 17:16:08 -0700 Subject: [PATCH] make sure model is loaded before proceed --- lib/RemoteCalibrator.min.js | 2 +- lib/RemoteCalibrator.min.js.map | 2 +- src/WebGazer4RC | 2 +- src/distance/distanceTrack.js | 4 ++-- src/distance/interPupillaryDistance.js | 3 ++- src/gaze/gazeCalibration.js | 3 ++- 6 files changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/RemoteCalibrator.min.js b/lib/RemoteCalibrator.min.js index 6ebc98d..c18fc0c 100644 --- a/lib/RemoteCalibrator.min.js +++ b/lib/RemoteCalibrator.min.js @@ -1,3 +1,3 @@ /*! For license information please see RemoteCalibrator.min.js.LICENSE.txt */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.RemoteCalibrator=t():e.RemoteCalibrator=t()}(self,(()=>(()=>{var __webpack_modules__={6003:()=>{window.requestAnimFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e,t){return window.setTimeout(e,1e3/60)},window.cancelRequestAnimFrame=window.cancelCancelRequestAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame||window.oCancelRequestAnimationFrame||window.msCancelRequestAnimationFrame||window.clearTimeout},359:(e,t,n)=>{"use strict";n.d(t,{F:()=>r,a:()=>i});var s=n(9677);const r=(e,t,{go:n,cancel:r,custom:i},a,o=!0)=>{const l=document.createElement("div");let u,c,h;if(l.className="rc-buttons"+(o?" rc-absolute-buttons":""),l.id="rc-buttons",n&&(u=document.createElement("button"),u.className="rc-button rc-go-button",u.onclick=n,u.innerHTML=s.H.RC_ok[e],l.appendChild(u)),r&&a&&(c=document.createElement("button"),c.className="rc-button rc-cancel-button",c.onclick=r,c.innerHTML=s.H.RC_cancel[e],l.appendChild(c)),i){const{callback:e,content:t}=i;h=document.createElement("button"),h.className="rc-button rc-custom-button",h.onclick=e,h.innerHTML=t,l.appendChild(h)}return t.appendChild(l),[l,u,c,h]},i=e=>{e.querySelector("#rc-buttons").remove()}},2016:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{K:()=>takeInput});var _buttons__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(359),_keyBinder__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(9853),_utils__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(9043);const takeInput=async(RC,extraFunction=null,extraFunctionOut=null,customButtonConfig=null)=>{const unit=RC.equipment.value.unit,unitDisplay=unit===RC._CONST.UNITS.CM?"cm":"in",unitIsFraction=unit===RC._CONST.UNITS.IN_F,formItem=`
\n
\n ${unitIsFraction?`${unitDisplay}`:`${unitDisplay}`}\n
\n
`,instruction=RC.background.querySelector(".calibration-instruction");instruction.innerHTML+=formItem;const formElement=instruction.querySelector(".rc-form"),formInputElement=instruction.querySelector(".rc-form-input"),formInputElementFInteger=instruction.querySelector(".rc-form-input-f-integer"),formInputElementFFraction=instruction.querySelector(".rc-form-input-f-fraction");unitIsFraction?formInputElementFInteger.focus():formInputElement.focus();const addedButtons=(0,_buttons__WEBPACK_IMPORTED_MODULE_0__.F)(RC.L,formElement,{go:()=>{},custom:customButtonConfig||void 0},!0,!1),goButton=addedButtons[1],customButton=addedButtons[3];goButton.disabled=!0;const eleOkay=e=>{e.classList.remove("rc-input-error"),goButton.disabled=!1},eleError=e=>{isAcceptedSingleInput(e.value.slice(-1))?(e.classList.add("rc-input-error"),goButton.disabled=!0):e.value=e.value.substring(0,e.value.length-1)},setupEleOninput=(e,t)=>{e.oninput=()=>{t(e.value)?eleOkay(e):eleError(e)}},_validationForFraction=()=>{let e=!0;return validInputInteger(formInputElementFInteger.value)?eleOkay(formInputElementFInteger):(eleError(formInputElementFInteger),e=!1),validInputFraction(formInputElementFFraction.value)?eleOkay(formInputElementFFraction):(eleError(formInputElementFFraction),e=!1),e};return unitIsFraction?(formInputElementFInteger.oninput=_validationForFraction,formInputElementFFraction.oninput=_validationForFraction):setupEleOninput(formInputElement,validInput),(0,_utils__WEBPACK_IMPORTED_MODULE_2__.nB)(extraFunction),new Promise((resolve=>{const bFunction=()=>{removeInputElements(formElement,extraFunctionOut),(0,_keyBinder__WEBPACK_IMPORTED_MODULE_1__.l)(bindKeysFunction),resolve(null)},fFunction=()=>{let valid=!1,numericalValue,inputValue;unitIsFraction&&validInputInteger(formInputElementFInteger.value)&&validInputFraction(formInputElementFFraction.value)?(valid=!0,numericalValue=Number.parseInt(formInputElementFInteger.value)+eval(formInputElementFFraction.value),inputValue=formInputElementFInteger.value+" "+formInputElementFFraction.value):!unitIsFraction&&validInput(formInputElement.value)&&(valid=!0,numericalValue=Number(formInputElement.value)||Number(formInputElement.value.replace(",",".")),inputValue=formInputElement.value),valid&&(removeInputElements(formElement,extraFunctionOut),(0,_keyBinder__WEBPACK_IMPORTED_MODULE_1__.l)(bindKeysFunction),resolve({value:{numerical:numericalValue,input:inputValue,unit},timestamp:performance.now()}))};goButton.onclick=fFunction,customButton.onclick=bFunction;const bindKeysFunction=(0,_keyBinder__WEBPACK_IMPORTED_MODULE_1__.m)({Enter:fFunction,Escape:bFunction})}))},removeInputElements=(e,t)=>{(0,_buttons__WEBPACK_IMPORTED_MODULE_0__.a)(e);for(const t of e.children)t.remove();e.remove(),(0,_utils__WEBPACK_IMPORTED_MODULE_2__.nB)(t)},validInput=e=>e.length>0&&!e.includes(" ")&&(!isNaN(e)||!isNaN(e.replace(",","."))),validInputInteger=e=>!!validInput(e)&&(Number.parseInt(e)===Number(e)&&Number(e)>0),validInputFraction=text=>{if("0"===text)return!0;if(!text.includes("/")||text.match(/\//g).length>1)return!1;const numbers=text.split("/");return validInputInteger(numbers[0])&&validInputInteger(numbers[1])&&(0,_utils__WEBPACK_IMPORTED_MODULE_2__.DW)(numbers[1])&&eval(text)<1},isAcceptedSingleInput=e=>/[0-9]/.test(e)||[".","/",","].includes(e)},9853:(e,t,n)=>{"use strict";n.d(t,{l:()=>i,m:()=>r});var s=n(9043);function r(e,t="keydown"){const n=t=>{t.key in e&&(t.preventDefault(),(0,s.nB)(e[t.key],t))};return document.body.addEventListener(t,n),n}function i(e,t="keydown"){document.body.removeEventListener(t,e)}},2646:(e,t,n)=>{"use strict";n.d(t,{G:()=>a,t:()=>r});var s=n(9677);function r(e){const t=Object.keys(s.H.EE_languageNameNative);if(t.includes(e))return i(e);const n=[];t.forEach((e=>{n.push(e.split("-")[0])}));const r=e.split("-")[0].toLowerCase();return n.includes(r)?i(t[n.indexOf(r)]):i("en-US")}function i(e){return{value:{language:e,languageNameEnglish:s.H.EE_languageNameEnglish[e],languageNameNative:s.H.EE_languageNameNative[e],languageDirection:s.H.EE_languageDirection[e],languagePhraseSource:s.H.EE_phraseSource[e]},timestamp:performance.now()}}function a(e){return"1"===s.H.EE_languageUseSpace[e]?" ":""}},477:(e,t,n)=>{"use strict";n.d(t,{l:()=>u});const s="mocha"===n(7999)._;let r,i;if(!s){const e=n(9171);r=e.Synth,i=e.Volume}class a{triggerAttackRelease(){}}const o=s?new a:new r({oscillator:{type:"sine"},envelope:{attack:.001,decay:.001,sustain:1,release:.001}}).connect(new i(-17).toDestination()),l=s?new a:new r({oscillator:{type:"sine"}}).connect(new i(-5).toDestination()),u=(e=0)=>{switch(e){case 0:default:return void o.triggerAttackRelease(2e3,.05);case 1:return void o.triggerAttackRelease(500,.5);case 2:return void o.triggerAttackRelease(200,.6);case 3:return void l.triggerAttackRelease(200,.2)}}},9043:(e,t,n)=>{"use strict";function s(e,...t){if(e&&"function"==typeof e)return t.length?e(...t):e()}n.d(t,{$O:()=>l,$k:()=>w,AU:()=>u,Av:()=>y,DW:()=>d,Ew:()=>c,G8:()=>g,JZ:()=>m,KY:()=>v,Md:()=>r,Nh:()=>f,Sf:()=>a,aS:()=>o,k4:()=>p,ll:()=>h,ln:()=>b,nB:()=>s,yy:()=>i}),function(){for(var e=0,t=["ms","moz","webkit","o"],n=0;n{};function i(e){return new Promise((t=>setTimeout(t,e)))}function a(){if(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled){const e=document.documentElement;return e.requestFullscreen?(e.requestFullscreen(),!0):e.mozRequestFullScreen?(e.mozRequestFullScreen(),!0):e.webkitRequestFullscreen?(e.webkitRequestFullscreen(),!0):!!e.msRequestFullscreen&&(e.msRequestFullscreen(),!0)}return!1}function o(){return Math.abs(window.innerHeight-screen.height)<5&&Math.abs(window.innerWidth-screen.width)<5&&window.screenX<5&&window.screenY<5}function l(e,t=null,n=!1,s=""){return`

${e}

`+(t?`

${t}

`:"")}function u(e,t,n){return en?n:e}function c(e,t,n,s,r){return s+1*(e-t)/(n-t)*(r-s)}function h(e,t,n,s){return Math.sqrt(Math.pow(e-n,2)+Math.pow(t-s,2))}function d(e){return e&&!(e&e-1)}function p(e){for(let t=e.length-1;t>0;t--){const n=Math.floor(Math.random()*(t+1));[e[t],e[n]]=[e[n],e[t]]}return e}function f(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}const m=e=>{const t=Math.floor(e.length/2),n=[...e].sort(((e,t)=>e-t));return e.length%2!=0?n[t]:(n[t-1]+n[t])/2},g=e=>e.reduce(((e,t)=>e+t))/e.length;function y(e,t,n=1){let s=0,r=0;for(;0===s;)s=Math.random();for(;0===r;)r=Math.random();let i=Math.sqrt(-2*Math.log(s))*Math.cos(2*Math.PI*r);return i=i/10+.5,i>1||i<0?i=y(e,t,n):(i=Math.pow(i,n),i*=t-e,i+=e),i}const b=e=>JSON.parse(JSON.stringify(e));function w(){"activeElement"in document&&document.activeElement.blur()}const v=e=>{if("touchstart"===e.type||"touchmove"===e.type){const t=e.touches[0];return{x:t.clientX,y:t.clientY}}return{x:e.clientX,y:e.clientY}}},7999:(e,t,n)=>{"use strict";n.d(t,{A:()=>w,_:()=>y});var s=n(7503),r=n.n(s),i=n(115),a=n.n(i);const o=["tall","short","up","down","fancy","busy","loud","crazy","kind","nice","real","speedy","handy","active","alert","bold","brave","bright","calm","clever","cool","free","grand","great","happy","jolly","lucky","spicy","sunny","super","wise"],l=["bat","bear","bird","cat","cow","deer","dog","dove","dragon","duck","eagle","fish","fox","frog","goose","lion","mouse","owl","pig","rat","seal","shark","sheep","snake","spider","tiger","turkey","viper","whale","wolf","onion","carrot","pear","bean","corn","bread","apple","banana","fig","grape","lemon","lime","orange","peach","plum","dumpling","cake","pasta","pot","sushi"],u=["blue","bronze","fire","forest","gold","gray","green","navy","purple","red","silver","sky","yellow","neon","black","white","brown","aqua"];function c(e){return e[Math.floor(Math.random()*e.length)]}function h(e){return e.charAt(0).toUpperCase()+e.slice(1)}function d(){const e="000"+(new Date).getMilliseconds().toString();return h(c(o))+h(c(u))+h(c(l))+e.substring(e.length-3)}var p=n(782),f=n(9043),m=n(2646),g=n(9677);const y="production";class b{constructor(){window.console.log(`%c\nEasyEyes Remote Calibrator ${this.version.value}\n`,`color: ${this._CONST.COLOR.ORANGE}`),this._initialized=!1,this._id=null,this._lang=null,this._langData=[],this._panelStatus={hasPanel:!1,panelFinished:!1,panelResolveIntervals:[]},this._panel={panel:null,panelObserver:null,panelTasks:[],panelParent:null,panelOptions:{},panelCallback:null,panelResolve:null},this._participantCheckEquipment={has:null,equipment:null,unit:null},this._trackingSetupFinishedStatus={gaze:!0,distance:!0},this._trackingPaused={gaze:!1,distance:!1},this._trackingVideoFrameTimestamps={gaze:0,distance:0},this._distanceTrackNudging={distanceCorrecting:null,distanceCorrectEnabled:!1,distanceDesired:null,distanceAllowedRatio:null},this._gazeTrackNudging={isCorrectingGaze:!1},this._environmentData=[],this._displayData=[],this._screenData=[],this._viewingDistanceData=[],this._nearPointData=[],this._PDData=[],this._gazePositionData=[],this._gazeAccuracyData=[],this._performanceData=[],this._fullscreenData=[],this._equipmentData=[],this._checkData=[],this._background={element:null,instructionElement:null},this._nudger={element:null,gazeElement:null},this._params={backgroundColor:"#eee",videoOpacity:.8,showCancelButton:!0}}get background(){return this._background.element}get instructionElement(){return this._background.instructionElement}get nudger(){return this._nudger.element}get params(){return this._params}get id(){return this._id?{value:this._id.value,timestamp:this._id.timestamp,date:this._id.date}:null}_helper_get(e,t){if(!e.length)return null;const n=e[e.length-1];return t?{value:n.value[t],timestamp:n.timestamp}:n}get version(){return{value:"0.7.8"}}get supportedLanguages(){const e=[];for(const t in g.H.EE_languageNameEnglish)e.push({language:t,languageNameEnglish:g.H.EE_languageNameEnglish[t],languageNameNative:g.H.EE_languageNameNative[t]});return e}get L(){return this._lang}get LD(){return this.languageDirection.value}get language(){return this._helper_get(this._langData,"language")}get languageNameEnglish(){return this._helper_get(this._langData,"languageNameEnglish")}get languageNameNative(){return this._helper_get(this._langData,"languageNameNative")}get languageDirection(){return this._helper_get(this._langData,"languageDirection")}get languagePhraseSource(){return this._helper_get(this._langData,"languagePhraseSource")}get computeArrayFillMHz(){return this._helper_get(this._performanceData,"computeArrayFillMHz")}get computeRandomMHz(){return this._helper_get(this._performanceData,"computeRandomMHz")}get idealFps(){return this._helper_get(this._performanceData,"idealFps")}get stressFps(){return this._helper_get(this._performanceData,"stressFps")}get isFullscreen(){return this.fullscreenData.length&&a()((0,f.aS)(),this._helper_get(this._fullscreenData).value)||(this.newFullscreenData={value:(0,f.aS)(),timestamp:performance.now()}),this._helper_get(this._fullscreenData)}get concurrency(){return this._helper_get(this._environmentData,"concurrency")}get browser(){return this._helper_get(this._environmentData,"browser")}get browserVersion(){return this._helper_get(this._environmentData,"browserVersion")}get deviceType(){return this._helper_get(this._environmentData,"deviceType")}get isMobile(){const e=this._helper_get(this._environmentData,"deviceType");return{value:"desktop"!==e.value,timestamp:e.timestamp}}get model(){return this._helper_get(this._environmentData,"model")}get manufacturer(){return this._helper_get(this._environmentData,"manufacturer")}get engine(){return this._helper_get(this._environmentData,"engine")}get system(){return this._helper_get(this._environmentData,"system")}get systemFamily(){return this._helper_get(this._environmentData,"systemFamily")}get description(){return this._helper_get(this._environmentData,"description")}get fullDescription(){return this._helper_get(this._environmentData,"fullDescription")}get userLanguage(){return this._helper_get(this._environmentData,"userLanguage")}get equipment(){return this._helper_get(this._equipmentData)}get displayWidthPx(){return this._displaySize(),this._helper_get(this._displayData,"displayWidthPx")}get displayHeightPx(){return this._displaySize(),this._helper_get(this._displayData,"displayHeightPx")}get windowWidthPx(){return this._displaySize(),this._helper_get(this._displayData,"windowWidthPx")}get windowHeightPx(){return this._displaySize(),this._helper_get(this._displayData,"windowHeightPx")}get screenWidthCm(){return this._helper_get(this._screenData,"screenWidthCm")}get screenHeightCm(){return this._helper_get(this._screenData,"screenHeightCm")}get screenDiagonalCm(){return this._helper_get(this._screenData,"screenDiagonalCm")}get screenDiagonalIn(){return this._helper_get(this._screenData,"screenDiagonalIn")}get screenPpi(){return this._helper_get(this._screenData,"screenPpi")}get screenPhysicalPpi(){return this._helper_get(this._screenData,"screenPhysicalPpi")}get viewingDistanceCm(){return this._helper_get(this._viewingDistanceData)}get nearPointCm(){return this._helper_get(this._nearPointData)}get PDCm(){return this._helper_get(this._PDData)}get gazePositionPx(){return this._helper_get(this._gazePositionData)}get gazeAccuracyDeg(){return this._helper_get(this._gazeAccuracyData)}get displayData(){return this._displayData}get screenData(){return this._screenData}get viewingDistanceData(){return this._viewingDistanceData}get nearPointData(){return this._nearPointData}get PDData(){return this._PDData}get gazeData(){return this._gazePositionData}get performanceData(){return this._performanceData}get fullscreenData(){return this._fullscreenData}get environmentData(){return this._environmentData}get languageData(){return this._langData}get equipmentData(){return this._equipmentData}get checkData(){return this._checkData}set newDisplayData(e){this._displayData.push(e)}set newScreenData(e){this._screenData.push(e)}set newViewingDistanceData(e){this._viewingDistanceData.push(e)}set newNearPointData(e){this._nearPointData.push(e)}set newPDData(e){this._PDData.push(e)}set newGazePositionData(e){this._gazePositionData.push(e)}set newGazeAccuracyData(e){this._gazeAccuracyData.push(e)}set newEnvironmentData(e){this._environmentData.push(e)}set newPerformanceData(e){this._performanceData.push(e)}set newFullscreenData(e){this._fullscreenData.push(e)}set newLanguageData(e){this._langData.push(e)}set newEquipmentData(e){this._equipmentData.push(e)}set newCheckData(e){this._checkData.push(e)}}b.prototype.init=async function(e={},t){this._initialized||(this._initialized=!0,e=Object.assign({id:d(),language:"AUTO",languagePhrasesJSON:null,fullscreen:!1},e),await(async(e=null)=>{const{remoteCalibratorPhrases:t}=await import("https://cdn.jsdelivr.net/gh/EasyEyes/remote-calibrator-phrases@latest/phrases/main.js");Object.assign(g.H,t),e&&Object.assign(g.H,e)})(e.languagePhrasesJSON),e.fullscreen&&!p.Y&&(0,f.Sf)(),this._id={value:e.id,timestamp:performance.now(),date:new Date},this._environment(),this._displaySize(),this._CONST.S.AUTO===e.language?this.newLanguageData=(0,m.t)(this.userLanguage.value):this.newLanguageData=(0,m.t)(e.language),this._lang=this.language.value,(0,f.nB)(t,this._id))},b.prototype._environment=function(){if(this.checkInitialized()){(0,f.$k)();const e=e=>e.match(/Mobi/i)?"mobile":"desktop",t={value:{concurrency:window.navigator.hardwareConcurrency||-1,browser:r().name,browserVersion:r().version,deviceType:e(navigator.userAgent),model:r().product||"unknown",manufacturer:r().manufacturer||"unknown",engine:r().layout,system:`${r().os.family} ${r().os.version}`,systemFamily:r().os.family,description:r().description,fullDescription:r().ua,userLanguage:window.navigator.userLanguage||window.navigator.language},timestamp:this.id.timestamp};this.newEnvironmentData=t}},b.prototype.checkInitialized=function(){return!!this._initialized},b.prototype.getFullscreen=function(e=!0){return!!(0,f.aS)()||(this.newFullscreenData={value:!(!e||p.Y)&&(0,f.Sf)(),timestamp:performance.now()},this.isMobile.value&&window.scrollBy(0,1),this.isFullscreen)},b.prototype.newLanguage=function(e){if(this.checkInitialized()){let t;return this.newLanguageData=t=(0,m.t)(e),this._lang=this.language.value,t}},b.prototype._addBackground=function(e){if(null!==this.background)return;let t=document.getElementById("calibration-background");return t||(t=document.createElement("div"),t.id="calibration-background",t.className=`calibration-background rc-lang-${this.LD.toLowerCase()}`,document.body.classList.add("lock-view"),document.body.appendChild(t),t.style.background=this.params.backgroundColor),e&&(t.innerHTML=e),this._background.element=t,this.background},b.prototype._replaceBackground=function(e){return null!==this.background&&this._removeBackground(),this._addBackground(e)},b.prototype._removeBackground=function(){const e=document.getElementById("calibration-background");return!!e&&(document.body.classList.remove("lock-view"),document.body.removeChild(e),this._background={element:null,instructionElement:null},!0)},b.prototype._addBackgroundText=function(e,t){const n=this.background.getElementsByClassName("calibration-instruction");for(let e=0;e{"use strict";n.d(t,{Y:()=>s});const s=!1},9677:(e,t,n)=>{"use strict";n.d(t,{H:()=>s});const s={EE_languageNameEnglish:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_languageNameNative:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_languageDirection:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_languageUsesSpacesBool:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_languageUsesSpaces:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_languageUseSpace:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_languageFont:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_phraseSource:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_languageChoose:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_Initializing:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_OKToTakeCompletionCodeToProlific:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_Yes:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_No:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_Cancel:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_Exit:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needsTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needsOk:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_ThankYou:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_FaceMeshLoading:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_NoPhonePleaseCancel:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserNotOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserVersionDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserVersionNotOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserVersionOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needNotBrowserDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needNotBrowserNotOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needNotBrowserOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needNotOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needIncognito0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserNotOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserVersionDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserVersionNotOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserVersionOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserFeatures:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needNotBrowserDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needNotBrowserNotOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needNotBrowserOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needNotOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needIncognito:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needExceptForScreenResolution:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needScreenHeight:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needScreenSize:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needScreenWidth:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibilityTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatible:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserNotOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserVersionDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserVersionNotOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserVersionOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleNotBrowserDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleNotBrowserNotOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleNotBrowserOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleNotOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleIncognito0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserNotOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserVersionDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserVersionNotOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserVersionOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleNotBrowserDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleNotBrowserNotOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleNotBrowserOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleNotOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleIncognito:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleExceptForScreenResolution:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleScreenHeight:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleScreenSize:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleScreenWidth:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needColorimeter:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_notRecognized:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_ok:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_or:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_refresh:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_describeDevice:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_describeScreenSize:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_describeIncognito:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_IDRequested:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_noFileSelected:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_browseForID:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_ID_noLocalStorage:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_ID:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_ID_invalidFile:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_ID_invalidID:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_ID_uploadOrValidID:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_incompatible:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_studyURL:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_unknown:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_smartphoneSurvey:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_phoneBrandAndModel:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_wrongIPhoneModel:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_customBuiltComputer:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findComputerModelGeneric:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelGeneric:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelAndroid:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelAndroidGeneric:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelAndroidGoogle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelAndroidHuawei:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelAndroidMotorola:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelAndroidSamsung:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelAndroidXiaomi:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelBada:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelBlackberry:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelFirefox:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelIOs:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelIPad:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelLinux:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelMacOs:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelMaemo:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelPalm:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelWebOS:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelWindows:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_brand:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelName:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidGeneric:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidGenericLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidGoogle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidGoogleLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidHuawei:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidHuaweiLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidMotorola:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidMotorolaLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidSamsung:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidSamsungLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidXiaomi:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidXiaomiLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameIOs:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameIOsLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameIPad:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameIPadLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameMacOS:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameMacOSLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumber:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroid:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidGeneric:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidGenericLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidGoogle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidGoogleLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidHuawei:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidHuaweiLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidMotorola:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidMotorolaLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidSamsung:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidSamsungLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidXiaomi:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidXiaomiLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberBada:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberBadaLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberBlackberry:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberBlackberryLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberFirefox:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberFirefoxLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberIOs:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberIOsLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberIPad:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberIPadLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberLinux:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberLinuxLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberMacOS:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberMacOSLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberMaemo:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberMaemoLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberPalm:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberPalmLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberWebOS:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberWebOSLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberWindows:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberWindowsLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_manufacturer:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_serialNumber:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_connectUSBMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_loudspeakersInComputer:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_microphoneUSB:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_microphoneInDevice:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_reminderVolumeCase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_reminderVolume:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_surveyPhoneModel:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needPhoneModel:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needPhoneModelToCalibrate:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_yourComputer:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needModelNumberAndName:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_smartphoneOkThanks:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_connectingAndFixFreeze:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_reconnectYourPhone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_restoreSmartphoneCommunication:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_allowMicrophoneUse:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_calibrationReceivedMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_calibrationReceivedLoudspeaker:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_sorryUSBMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_sorryPhoneMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_SamplingHzBits:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_16Is24:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_angleDistanceIntro:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_angleDistanceTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_calibrateMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_cancel:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_connectionFailed:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTracking:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingCloseL:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingCloseR:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingGuide1:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingGuide:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingIntroEnd:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingIntroStart:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingMoveCloser:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingMoveFarther:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingMoveFurther:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingFromFar:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingWhenFar:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_reconnect:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_refreshBrowserChrome:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_refreshBrowserSafari:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_refreshBrowserFirefox:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_refreshBrowserSamsung:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_refreshBrowserOpera:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_refreshBrowserEdge:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_refreshBrowserGeneric:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingRedo:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_environment:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_errorCameraUseDenied:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_errorNoCamera:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_gazeTracking:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_gazeTrackingIntro:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_gazeTrackingNudge:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_gazeTrackingTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_inDescription:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needPhoneMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needPhoneKeypad:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needPhoneMicrophoneAndKeypad:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needPhoneSurvey:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needPhoneSurveyParticipate:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_skipQR_Explanation:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_cantDrawQR:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},"RC_can'tDrawQR":{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_cantConnectPhone_Button:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_preferNotToConnectPhone_Button:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_cantReadQR_Button:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_preferNotToReadQR_Button:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_whyCantConnect:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_whyWouldntConnect:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_noSmartphone_Button:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_haveSmartphone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_noSmartphone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_compatibleHaveSmartphone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_compatibleNoSmartphone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needUSBMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_pointAndClick:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_tryAnotherPhone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_identifyUSBMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_goBack:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_identifySmartphone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needsPointCameraAtQR:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_pointCameraAtQR:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_getPhoneMicrophoneReady:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_getUSBMicrophoneReady:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_calibrationEstimatedAndActualMinutes:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_howLongToCalibrate:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_identifyMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_lookForMicrophoneProfile:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_loudspeakerInstead:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_tryComputer:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_ifStuckPleaseReturn:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_nearPointIntro:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_nearPointTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needPortraitOrientation:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_ok:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_panelButton:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_panelIntro:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_panelTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_panelTitleNext:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_panelUsesWebcam:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_panelUsesWebcamPhone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_performance:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_performanceIntro:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_performanceTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_phoneMicrophoneInstructions:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_privacyCamera:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_privacyMicrophoneCalibration:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_proceedToExperiment:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_removeHeadphones:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_requestCamera:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_screenSize:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_screenSizeCredit:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_screenSizeCreditCard:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_screenSizeHave:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_screenSizeIntro:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_screenSizeTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_screenSizeUSBA:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_screenSizeUSBC:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_selectMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_sound1000HzRecordingLevels:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_soundAllHzRecordingLevels:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_soundAllHzDetails:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_loudspeakerCalibrationResults:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_microphoneCalibrationResults:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_usbMicrophoneInstructions:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_testSounds:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_noSounds:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_phoneMicrophoneCalibration:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_loudspeakerCalibration:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_citeSoundCompressionModel:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_usbMicrophoneCalibration:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_microphoneCalibration:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_hopeMicrophoneIsInLibrary:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_helloCalibrator:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_selectMicrophoneTypeToBeCalibrated:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_selectMicrophoneTypeAlreadyCalibrated:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_selectMicrophoneType:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_OkToConnect:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_enterPhoneOrMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_nameMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_nameLoudspeaker:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_usingPhoneNamedMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_usingPhoneMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_usingSmartphoneMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_turnMeToReadBelow:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_placeSmartphoneMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_usingMicrophoneXXX:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_usingUSBMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_microphoneNotInCalibrationLibrary:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_loudspeakerIsInCalibrationLibrary:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_microphoneIsInCalibrationLibrary:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_smartphoneSurveyEnd:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_soundRecording:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_Quit:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_ReIdentify:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_ReRecord:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_smartphone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_usbMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_none:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_backToExperimentWindow:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_starting:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_SoundTest:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_NoCorrection:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_CorrectLoudspeaker:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_CorrectLoudspeakerAndMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_dB_gainAt1000Hz:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_dB_SPL_gainAt1000Hz:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_DesiredSoundLevel_dB_SPL:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_DesiredDIgitalOutput_dB:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_DesiredDIgitalInput_dB:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_DIgitalInput_dB:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_DIgitalInputMax:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_PlayingSound:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_Play:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_Record:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_StopRecording:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_Refresh:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_USB_Microphone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_UMIK_Microphone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_AveragingSec:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_dB:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_viewingBlindSpotCredit:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_viewingBlindSpotRejected:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_viewingDistance:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_viewingDistanceIntro:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_viewingDistanceIntroTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_viewingDistanceIntroLiMethod:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_viewingDistanceRedo:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_viewingDistanceTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""}}},7790:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{K:()=>_setDebugControl});var _components_utils__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(9043);const _setDebugControl=(e,t,n,s)=>{const r=document.createElement("div");r.className="rc-panel-debug-control",r.innerHTML='

DEBUG CONTROL

REMEMBER TO SET debug TO false FOR PRODUCTION MODE!

',t.appendChild(r);const i=[];for(const t of n){const n=t.name?t.name:t,s=document.createElement("div");s.className="rc-panel-debug-control-task-row",s.id="rc-debugger-row-"+n;const a=e._debuggerDefault[n];if(a){r.innerHTML+=`

${n}

`;const e={n:"number",s:"string"};switch(n){case"screenSize":for(const t in a.value)s.innerHTML+=_createValueElement(n,t,a.value[t],".value."+t,e.n);break;case"measureDistance":s.innerHTML+=_createValueElement(n,"value",a.value,".value",e.n),s.innerHTML+=_createValueElement(n,"method",a.method,".method",e.s,!0);break;case"trackDistance":s.innerHTML+=_createValueElement(n,"viewingDistanceCm",a.value.viewingDistanceCm,".value",e.n),s.innerHTML+=_createValueElement(n,"PDCm",a.value.PDCm,".value",e.n),s.innerHTML+=_createValueElement(n,"nearPointCm.x",a.value.nearPointCm.x,".value.x",e.n),s.innerHTML+=_createValueElement(n,"nearPointCm.y",a.value.nearPointCm.y,".value.y",e.n),s.innerHTML+=_createValueElement(n,"latencyMs",a.value.latencyMs,".latencyMs",e.n),s.innerHTML+=_createValueElement(n,"method",a.method,".method",e.s,!0);break;case"trackGaze":s.innerHTML+=_createValueElement(n,"x",a.value.x,".value.x",e.n),s.innerHTML+=_createValueElement(n,"y",a.value.y,".value.y",e.n),s.innerHTML+=_createValueElement(n,"latencyMs",a.value.latencyMs,".value.latencyMs",e.n);break;case"performance":s.innerHTML+=_createValueElement(n,"computeArrayFillMHz",a.value.computeArrayFillMHz,".value.computeArrayFillMHz",e.n),s.innerHTML+=_createValueElement(n,"computeRandomMHz",a.value.computeRandomMHz,".value.computeRandomMHz",e.n),s.innerHTML+=_createValueElement(n,"idealFps",a.value.idealFps,".value.idealFps",e.n),s.innerHTML+=_createValueElement(n,"stressFps",a.value.stressFps,".value.stressFps",e.n)}r.appendChild(s),i.push(n)}}const a=document.createElement("button");a.className="rc-panel-debug-control-next",a.innerHTML="Simulate calibration and continue",a.onclick=()=>{_wrapValues(e,i),(0,_components_utils__WEBPACK_IMPORTED_MODULE_0__.nB)(s,{timestamp:performance.now()}),e._panelStatus.panelFinished=!0},r.appendChild(a)},_createValueElement=(e,t,n,s,r,i=!1)=>`
\n \n

${t}

\n
`,_wrapValues=(e,t)=>{for(const n of t){const t=document.querySelector("#rc-debugger-row-"+n),s={};switch(n){case"screenSize":s.value={},_putData(e,s,t),e.newScreenData=(0,_components_utils__WEBPACK_IMPORTED_MODULE_0__.ln)(s);break;case"measureDistance":_putData(e,s,t),e.newViewingDistanceData=(0,_components_utils__WEBPACK_IMPORTED_MODULE_0__.ln)(s);break;case"trackDistance":e.newViewingDistanceData={value:_get(t,"#trackDistance-viewingDistanceCm"),latencyMs:_get(t,"#trackDistance-latencyMs"),method:_get(t,"#trackDistance-method","string"),timestamp:e._debuggerDefault.timestamp},e.newNearPointData={value:{x:_get(t,"#trackDistance-nearPointCm-x"),y:_get(t,"#trackDistance-nearPointCm-y")},timestamp:e._debuggerDefault.timestamp},e.newPDData={value:_get(t,"#trackDistance-PDCm"),timestamp:e._debuggerDefault.timestamp};break;case"trackGaze":s.value={},_putData(e,s,t),e.newGazePositionData=(0,_components_utils__WEBPACK_IMPORTED_MODULE_0__.ln)(s);break;case"performance":s.value={},_putData(e,s,t),e.newPerformanceData=(0,_components_utils__WEBPACK_IMPORTED_MODULE_0__.ln)(s)}}},_get=(e,t)=>{const n=e.querySelector(t);return"number"===n.dataset.type?Number(n.value):n.value},_putData=(RC,newData,taskRow)=>{for(const ele of taskRow.childNodes){const eleInput=ele.querySelector("input");try{eval(`newData${eleInput.dataset.source} = eleInput.dataset.type === 'number' ? Number(eleInput.value) : eleInput.value`)}catch(e){}newData.timestamp=RC._debuggerDefault.timestamp}return newData}},2921:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,".animated{-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.repeat-1{-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animated.repeat-2{-webkit-animation-iteration-count:calc(var(--animate-repeat)*2);animation-iteration-count:calc(var(--animate-repeat)*2)}.animated.repeat-3{-webkit-animation-iteration-count:calc(var(--animate-repeat)*3);animation-iteration-count:calc(var(--animate-repeat)*3)}.animated.delay-1s{-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animated.delay-2s{-webkit-animation-delay:calc(var(--animate-delay)*2);animation-delay:calc(var(--animate-delay)*2)}.animated.delay-3s{-webkit-animation-delay:calc(var(--animate-delay)*3);animation-delay:calc(var(--animate-delay)*3)}.animated.delay-4s{-webkit-animation-delay:calc(var(--animate-delay)*4);animation-delay:calc(var(--animate-delay)*4)}.animated.delay-5s{-webkit-animation-delay:calc(var(--animate-delay)*5);animation-delay:calc(var(--animate-delay)*5)}.animated.faster{-webkit-animation-duration:calc(var(--animate-duration)/2);animation-duration:calc(var(--animate-duration)/2)}.animated.fast{-webkit-animation-duration:calc(var(--animate-duration)*.8);animation-duration:calc(var(--animate-duration)*.8)}.animated.slow{-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2)}.animated.slower{-webkit-animation-duration:calc(var(--animate-duration)*3);animation-duration:calc(var(--animate-duration)*3)}@media (prefers-reduced-motion:reduce),print{.animated{-webkit-animation-duration:1ms!important;animation-duration:1ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important;-webkit-transition-duration:1ms!important;transition-duration:1ms!important}.animated[class*=Out]{opacity:0}}","",{version:3,sources:["webpack://./node_modules/animate.css/source/_base.css"],names:[],mappings:"AAAA,UACE,kDAA2C,CAA3C,0CAA2C,CAC3C,gCAAyB,CAAzB,wBACF,CAEA,mBACE,0CAAmC,CAAnC,kCACF,CAEA,mBACE,uDAAgD,CAAhD,+CACF,CAEA,mBACE,+DAA0D,CAA1D,uDACF,CAEA,mBACE,+DAA0D,CAA1D,uDACF,CAEA,mBACE,4CAAqC,CAArC,oCACF,CAEA,mBACE,oDAA+C,CAA/C,4CACF,CAEA,mBACE,oDAA+C,CAA/C,4CACF,CAEA,mBACE,oDAA+C,CAA/C,4CACF,CAEA,mBACE,oDAA+C,CAA/C,4CACF,CAEA,iBACE,0DAAqD,CAArD,kDACF,CAEA,eACE,2DAAuD,CAAvD,mDACF,CAEA,eACE,0DAAqD,CAArD,kDACF,CAEA,iBACE,0DAAqD,CAArD,kDACF,CAEA,6CACE,UACE,wCAAkC,CAAlC,gCAAkC,CAElC,6CAAuC,CAAvC,qCAAuC,CADvC,yCAAmC,CAAnC,iCAEF,CAEA,sBACE,SACF,CACF",sourcesContent:[".animated {\n animation-duration: var(--animate-duration);\n animation-fill-mode: both;\n}\n\n.animated.infinite {\n animation-iteration-count: infinite;\n}\n\n.animated.repeat-1 {\n animation-iteration-count: var(--animate-repeat);\n}\n\n.animated.repeat-2 {\n animation-iteration-count: calc(var(--animate-repeat) * 2);\n}\n\n.animated.repeat-3 {\n animation-iteration-count: calc(var(--animate-repeat) * 3);\n}\n\n.animated.delay-1s {\n animation-delay: var(--animate-delay);\n}\n\n.animated.delay-2s {\n animation-delay: calc(var(--animate-delay) * 2);\n}\n\n.animated.delay-3s {\n animation-delay: calc(var(--animate-delay) * 3);\n}\n\n.animated.delay-4s {\n animation-delay: calc(var(--animate-delay) * 4);\n}\n\n.animated.delay-5s {\n animation-delay: calc(var(--animate-delay) * 5);\n}\n\n.animated.faster {\n animation-duration: calc(var(--animate-duration) / 2);\n}\n\n.animated.fast {\n animation-duration: calc(var(--animate-duration) * 0.8);\n}\n\n.animated.slow {\n animation-duration: calc(var(--animate-duration) * 2);\n}\n\n.animated.slower {\n animation-duration: calc(var(--animate-duration) * 3);\n}\n\n@media print, (prefers-reduced-motion: reduce) {\n .animated {\n animation-duration: 1ms !important;\n transition-duration: 1ms !important;\n animation-iteration-count: 1 !important;\n }\n\n .animated[class*='Out'] {\n opacity: 0;\n }\n}\n"],sourceRoot:""}]);const o=a},2636:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,":root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}","",{version:3,sources:["webpack://./node_modules/animate.css/source/_vars.css"],names:[],mappings:"AAAA,MACE,qBAAsB,CACtB,kBAAmB,CACnB,kBACF",sourcesContent:[":root {\n --animate-duration: 1s;\n --animate-delay: 1s;\n --animate-repeat: 1;\n}\n"],sourceRoot:""}]);const o=a},7271:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,"@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}","",{version:3,sources:["webpack://./node_modules/animate.css/source/fading_entrances/fadeInUp.css"],names:[],mappings:"AAAA,4BACE,GACE,SAAU,CACV,uCAAkC,CAAlC,+BACF,CAEA,GACE,SAAU,CACV,+BAA+B,CAA/B,uBACF,CACF,CAVA,oBACE,GACE,SAAU,CACV,uCAAkC,CAAlC,+BACF,CAEA,GACE,SAAU,CACV,+BAA+B,CAA/B,uBACF,CACF,CAEA,UACE,+BAAwB,CAAxB,uBACF",sourcesContent:["@keyframes fadeInUp {\n from {\n opacity: 0;\n transform: translate3d(0, 100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n}\n\n.fadeInUp {\n animation-name: fadeInUp;\n}\n"],sourceRoot:""}]);const o=a},2551:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,"@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}","",{version:3,sources:["webpack://./node_modules/animate.css/source/fading_exits/fadeOutDown.css"],names:[],mappings:"AAAA,+BACE,GACE,SACF,CAEA,GACE,SAAU,CACV,uCAAkC,CAAlC,+BACF,CACF,CATA,uBACE,GACE,SACF,CAEA,GACE,SAAU,CACV,uCAAkC,CAAlC,+BACF,CACF,CAEA,aACE,kCAA2B,CAA3B,0BACF",sourcesContent:["@keyframes fadeOutDown {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, 100%, 0);\n }\n}\n\n.fadeOutDown {\n animation-name: fadeOutDown;\n}\n"],sourceRoot:""}]);const o=a},8470:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,'.swal2-popup.swal2-toast{background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:min-content auto min-content;overflow-y:hidden;padding:1em;pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{font-size:1em;margin:.5em 1em;padding:0;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{font-size:1em;height:2em;margin:.5em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{font-size:.8em;margin:.5em 0 0;padding:.5em 0 0}.swal2-popup.swal2-toast .swal2-close{align-self:center;font-size:2em;grid-column:3/3;grid-row:1/99;height:.8em;margin:0;width:.8em}.swal2-popup.swal2-toast .swal2-html-container{font-size:1em;margin:.5em 1em;overflow:initial;padding:0;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{align-self:center;grid-column:1;grid-row:1/99;height:2em;margin:.25em;width:2em}.swal2-popup.swal2-toast .swal2-icon{align-self:center;grid-column:1;grid-row:1/99;height:2em;margin:0 .5em 0 0;min-width:2em;width:2em}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{align-items:center;display:flex;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{height:2em;width:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{height:auto;justify-content:flex-start;margin:.5em 0 0;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{font-size:1em;margin:.25em .5em;padding:.4em .6em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{border-radius:50%;height:3em;position:absolute;width:1.6em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{border-radius:4em 0 0 4em;left:-.5em;top:-.8em;transform:rotate(-45deg);transform-origin:2em 2em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{border-radius:0 4em 4em 0;left:.9375em;top:-.25em;transform-origin:0 1.5em}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{height:2em;width:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{height:2.6875em;left:.4375em;top:0;width:.4375em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{left:.1875em;top:1.125em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{right:.1875em;top:.9375em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}div:where(.swal2-container){box-sizing:border-box;display:grid;grid-template-areas:"top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end";grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;inset:0;overflow-x:hidden;padding:.625em;position:fixed;transition:background-color .1s;z-index:1060;-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:rgba(0,0,0,.4)}div:where(.swal2-container).swal2-backdrop-hide{background:transparent!important}div:where(.swal2-container).swal2-bottom-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}div:where(.swal2-container).swal2-bottom,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-top{grid-template-columns:auto minmax(0,1fr) auto}div:where(.swal2-container).swal2-bottom-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-left>.swal2-popup,div:where(.swal2-container).swal2-center-start>.swal2-popup{align-self:center;grid-row:2}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-left>.swal2-popup,div:where(.swal2-container).swal2-bottom-start>.swal2-popup{align-self:end;grid-column:1;grid-row:3}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup,div:where(.swal2-container).swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{align-self:stretch;grid-row:1/4}div:where(.swal2-container).swal2-no-transition{transition:none!important}div:where(.swal2-container) div:where(.swal2-popup){background:#fff;border:none;border-radius:5px;box-sizing:border-box;color:#545454;display:none;font-family:inherit;font-size:1rem;grid-template-columns:minmax(0,100%);max-width:100%;padding:0 0 1.25em;position:relative;width:32em}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) h2:where(.swal2-title){color:inherit;font-size:1.875em;font-weight:600;margin:0;max-width:100%;padding:.8em 1em 0;position:relative;text-align:center;text-transform:none;word-wrap:break-word}div:where(.swal2-container) div:where(.swal2-actions){align-items:center;box-sizing:border-box;display:flex;flex-wrap:wrap;justify-content:center;margin:1.25em auto 0;padding:0;width:auto;z-index:1}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}div:where(.swal2-container) div:where(.swal2-loader){align-items:center;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-color:#2778c4 transparent;border-radius:100%;border-style:solid;border-width:.25em;display:none;height:2.2em;justify-content:center;margin:0 1.875em;width:2.2em}div:where(.swal2-container) button:where(.swal2-styled){box-shadow:0 0 0 3px transparent;font-weight:500;margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm{background:initial;background-color:#7066e0;border:0;border-radius:.25em;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny{background:initial;background-color:#dc3741;border:0;border-radius:.25em;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel{background:initial;background-color:#6e7881;border:0;border-radius:.25em;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel:focus{box-shadow:0 0 0 3px hsla(208,8%,47%,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-styled):focus{outline:none}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){border-top:1px solid #eee;color:inherit;font-size:1em;margin:1em 0 0;padding:1em 1em 0;text-align:center}div:where(.swal2-container) .swal2-timer-progress-bar-container{border-bottom-left-radius:5px;border-bottom-right-radius:5px;bottom:0;grid-column:auto!important;left:0;overflow:hidden;position:absolute;right:0}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){background:rgba(0,0,0,.2);height:.25em;width:100%}div:where(.swal2-container) img:where(.swal2-image){margin:2em auto 1em;max-width:100%}div:where(.swal2-container) button:where(.swal2-close){align-items:center;background:transparent;border:none;border-radius:5px;color:#ccc;cursor:pointer;font-family:monospace;font-size:2.5em;height:1.2em;justify-content:center;justify-self:end;margin-bottom:-1.2em;margin-right:0;margin-top:0;overflow:hidden;padding:0;transition:color .1s,box-shadow .1s;width:1.2em;z-index:2}div:where(.swal2-container) button:where(.swal2-close):hover{background:transparent;color:#f27474;transform:none}div:where(.swal2-container) button:where(.swal2-close):focus{box-shadow:inset 0 0 0 3px rgba(100,150,200,.5);outline:none}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) .swal2-html-container{color:inherit;font-size:1.125em;font-weight:400;justify-content:center;line-height:normal;margin:1em 1.6em .3em;overflow:auto;padding:0;text-align:center;z-index:1;word-wrap:break-word;word-break:break-word}div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) label:where(.swal2-checkbox),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) textarea:where(.swal2-textarea){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) textarea:where(.swal2-textarea){background:transparent;border:1px solid #d9d9d9;border-radius:.1875em;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;box-sizing:border-box;color:inherit;font-size:1.125em;transition:border-color .1s,box-shadow .1s;width:auto}div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:1px solid #b4dbed;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5);outline:none}div:where(.swal2-container) input:where(.swal2-file)::-moz-placeholder,div:where(.swal2-container) input:where(.swal2-input)::-moz-placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::-moz-placeholder{color:#ccc}div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{background:#fff;margin:1em 2em 3px}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{color:inherit;font-weight:600;text-align:center;width:20%}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{font-size:1.125em;height:2.625em;line-height:2.625em;padding:0}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{background:transparent;font-size:1.125em;margin-left:auto;margin-right:auto;width:75%}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{background:transparent;color:inherit;font-size:1.125em;max-width:100%;min-width:50%;padding:.375em .625em}div:where(.swal2-container) .swal2-checkbox,div:where(.swal2-container) .swal2-radio{align-items:center;background:#fff;color:inherit;justify-content:center}div:where(.swal2-container) .swal2-checkbox label,div:where(.swal2-container) .swal2-radio label{font-size:1.125em;margin:0 .6em}div:where(.swal2-container) .swal2-checkbox input,div:where(.swal2-container) .swal2-radio input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;background:#f0f0f0;color:#666;font-size:1em;font-weight:300;justify-content:center;margin:1em 0 0;overflow:hidden;padding:.625em}div:where(.swal2-container) div:where(.swal2-validation-message):before{background-color:#f27474;border-radius:50%;color:#fff;content:"!";display:inline-block;font-weight:600;height:1.5em;line-height:1.5em;margin:0 .625em;min-width:1.5em;text-align:center;width:1.5em}div:where(.swal2-container) .swal2-progress-steps{align-items:center;background:transparent;flex-wrap:wrap;font-weight:600;margin:1.25em auto;max-width:100%;padding:0}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{background:#2778c4;border-radius:2em;color:#fff;flex-shrink:0;height:2em;line-height:2em;text-align:center;width:2em;z-index:20}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{background:#2778c4;flex-shrink:0;height:.4em;margin:0 -1px;width:2.5em;z-index:10}div:where(.swal2-icon){border:.25em solid #000;border-radius:50%;box-sizing:content-box;cursor:default;font-family:inherit;height:5em;justify-content:center;line-height:5em;margin:2.5em auto .6em;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:5em}div:where(.swal2-icon) .swal2-icon-content{align-items:center;display:flex;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{flex-grow:1;position:relative}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{background-color:#f27474;border-radius:.125em;display:block;height:.3125em;position:absolute;top:2.3125em;width:2.9375em}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}div:where(.swal2-icon).swal2-warning{border-color:#facea8;color:#f8bb86}div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}div:where(.swal2-icon).swal2-info{border-color:#9de0f6;color:#3fc3ee}div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}div:where(.swal2-icon).swal2-question{border-color:#c9dae1;color:#87adbd}div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{border-radius:50%;height:7.5em;position:absolute;width:3.75em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{border-radius:7.5em 0 0 7.5em;left:-2.0635em;top:-.4375em;transform:rotate(-45deg);transform-origin:3.75em 3.75em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{border-radius:0 7.5em 7.5em 0;left:1.875em;top:-.6875em;transform:rotate(-45deg);transform-origin:0 3.75em}div:where(.swal2-icon).swal2-success .swal2-success-ring{border:.25em solid hsla(98,55%,69%,.3);border-radius:50%;box-sizing:content-box;height:100%;left:-.25em;position:absolute;top:-.25em;width:100%;z-index:2}div:where(.swal2-icon).swal2-success .swal2-success-fix{height:5.625em;left:1.625em;position:absolute;top:.5em;transform:rotate(-45deg);width:.4375em;z-index:1}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{background-color:#a5dc86;border-radius:.125em;display:block;height:.3125em;position:absolute;z-index:2}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{left:.8125em;top:2.875em;transform:rotate(45deg);width:1.5625em}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{right:.5em;top:2.375em;transform:rotate(-45deg);width:2.9375em}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:swal2-show .3s}.swal2-hide{animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{height:50px;overflow:scroll;position:absolute;top:-9999px;width:50px}.swal2-rtl .swal2-close{margin-left:0;margin-right:0}.swal2-rtl .swal2-timer-progress-bar{left:auto;right:0}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotate(2deg)}33%{transform:translateY(0) rotate(-2deg)}66%{transform:translateY(.3125em) rotate(2deg)}to{transform:translateY(0) rotate(0deg)}}@keyframes swal2-toast-hide{to{opacity:0;transform:rotate(1deg)}}@keyframes swal2-toast-animate-success-line-tip{0%{left:.0625em;top:.5625em;width:0}54%{left:.125em;top:.125em;width:0}70%{left:-.25em;top:.625em;width:1.625em}84%{left:.75em;top:1.0625em;width:.5em}to{left:.1875em;top:1.125em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{right:1.375em;top:1.625em;width:0}65%{right:.9375em;top:1.25em;width:0}84%{right:0;top:.9375em;width:1.125em}to{right:.1875em;top:.9375em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}to{transform:scale(1)}}@keyframes swal2-hide{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.5)}}@keyframes swal2-animate-success-line-tip{0%{left:.0625em;top:1.1875em;width:0}54%{left:.125em;top:1.0625em;width:0}70%{left:-.375em;top:2.1875em;width:3.125em}84%{left:1.3125em;top:3em;width:1.0625em}to{left:.8125em;top:2.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{right:2.875em;top:3.375em;width:0}65%{right:2.875em;top:3.375em;width:0}84%{right:0;top:2.1875em;width:3.4375em}to{right:.5em;top:2.375em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}to{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;opacity:0;transform:scale(.4)}50%{margin-top:1.625em;opacity:0;transform:scale(.4)}80%{margin-top:-.375em;transform:scale(1.15)}to{margin-top:0;opacity:1;transform:scale(1)}}@keyframes swal2-animate-error-icon{0%{opacity:0;transform:rotateX(100deg)}to{opacity:1;transform:rotateX(0deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-1turn)}to{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{opacity:0;transform:rotate(45deg)}25%{opacity:.4;transform:rotate(-25deg)}50%{opacity:.8;transform:rotate(15deg)}75%{opacity:1;transform:rotate(-5deg)}to{opacity:1;transform:rotateX(0)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent;box-sizing:border-box;max-width:100%;pointer-events:none;width:360px}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}',"",{version:3,sources:["webpack://./node_modules/sweetalert2/src/scss/_toasts.scss","webpack://./node_modules/sweetalert2/src/variables.scss","webpack://./node_modules/sweetalert2/src/scss/_core.scss","webpack://./node_modules/sweetalert2/src/scss/_icons.scss","webpack://./node_modules/sweetalert2/src/scss/_toasts-animations.scss","webpack://./node_modules/sweetalert2/src/scss/_animations.scss","webpack://./node_modules/sweetalert2/src/scss/_mixins.scss","webpack://./node_modules/sweetalert2/src/scss/_body.scss","webpack://./node_modules/sweetalert2/src/scss/_toasts-body.scss"],names:[],mappings:"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CCjCrB,gCDqCwB,CCtCxB,kBDqCyB,CCpCzB,kBDqCwB,CCrCxB,kBDqCwB,CC/CxB,YAAA,CAIA,YDqCkB,CCvClB,sBDqC2B,CClC3B,gBDqCkB,CCvClB,WD4CwB,CClC1B,wDAIE,gCDdsB,CCetB,eDduB,CCUvB,cDdkB,CCelB,oBDdmB,CCenB,yBDZuB,CCgBvB,wEACE,cAAA,CAGF,sEAIE,kBAAA,CACA,wBDfkC,CCYlC,QDdwB,CCexB,mBDd+B,CCiB/B,UDtNQ,CCuNR,aDf2B,CCiB3B,4EACE,yCDjBgC,CCqBpC,mEAIE,kBAAA,CACA,wBDpB+B,CCiB/B,QDnBqB,CCoBrB,mBDnB4B,CCsB5B,UDpOQ,CCqOR,aDpBwB,CCsBxB,yEACE,uCDtB6B,CC0BjC,qEAIE,kBAAA,CACA,wBDzBiC,CCsBjC,QDxBuB,CCyBvB,mBDxB8B,CC2B9B,UDlPQ,CCmPR,aDzB0B,CC2B1B,2EACE,wCD3B+B,CCgCjC,oFACE,yCD5DwB,CCgE5B,8DACE,YDlEuB,CCqEzB,0EACE,QAAA,CAIJ,qDAGE,yBAAA,CACA,aDpIiB,CCqIjB,aDpIqB,CCgIrB,cDpIkB,CCqIlB,iBDpImB,CCwInB,iBDpIsB,CCuIxB,gEAQE,6BD9QkB,CC6QlB,8BD7QkB,CCyQlB,QAAA,CAEA,0BAAA,CADA,MAAA,CAEA,eAAA,CALA,iBAAA,CACA,ODxQkB,CCiRpB,iEAGE,yBDjJkC,CCgJlC,YDjJ8B,CCgJ9B,UD/IkC,CCoJpC,oDAEE,mBDvPiB,CCsPjB,cDtPiB,CC0PnB,uDAGE,kBDxJ6B,CCqK7B,sBDxJ4B,CCqJ5B,WDxJwB,CCyJxB,iBD1SkB,CC6SlB,UDxJuB,CC2JvB,cAAA,CAFA,qBDxJ6B,CCyJ7B,eDxJ2B,CC2I3B,YDxJwB,CCsJxB,sBDxJiC,CCyKjC,gBD3K8B,CC+J9B,oBAAA,CADA,cDxJqB,CCuJrB,YDvJqB,CC2JrB,eAAA,CADA,SDzJyB,CC2JzB,mCDzJF,CCkJE,WDxJuB,CCqJvB,SDxJ8B,CC6K9B,6DAEE,sBDxJgC,CCyJhC,aD1RQ,CCwRR,cDxRQ,CC6RV,6DAEE,+CD1JgC,CCyJhC,YDzJgC,CC6JlC,yEACE,QAAA,CAIJ,kDAME,aDtRyB,CCuRzB,iBDtR6B,CCuR7B,eDtR+B,CCgR/B,sBDtRmC,CC6RnC,kBDtR+B,CCgR/B,qBDtR0B,CCwR1B,aDtR4B,CCqR5B,SDtR2B,CC4R3B,iBDtR8B,CC6Q9B,SAAA,CAUA,oBDtR6B,CCuR7B,qBDtR8B,CCyRhC,4UAME,kBD5RiB,CC+RnB,uKAQE,sBD7RqB,CC2RrB,wBDjSiB,CCkSjB,qBDjSwB,CCmSxB,gEDjSF,CC2RE,qBAAA,CAOA,aD9RgB,CC+RhB,iBDjSoB,CC2RpB,0CDvRF,CCsRE,UD1RoB,CCmSpB,0NACE,8BAAA,CACA,oCAAA,CAGF,yLACE,wBDjSqB,CCmSrB,yEDhSJ,CC+RI,YD/RJ,CCmSE,6NACE,UAAA,CADF,8MACE,UAAA,CAIJ,yCAEE,eDtYU,CCqYV,kBDrYU,CCwYV,+CACE,SAAA,CAGF,gDAEE,aD3Tc,CC4Td,eAAA,CACA,iBAAA,CAHA,SAGA,CAGF,+FAIE,iBDtUkB,CCoUlB,cD3Ue,CC8Uf,mBD9Ue,CC4Uf,SD5Ue,CCkVnB,yCACE,cDnViB,CCoVjB,eDnVkB,CCsVpB,wCAIE,sBDnVqB,CCoVrB,iBDrVoB,CCmVpB,gBAAA,CADA,iBAAA,CADA,SDjVoB,CCwVtB,4CACE,aD1UoB,CC2UpB,aD1UqB,CC6UvB,0CAIE,sBDhWqB,CCiWrB,aDhWgB,CCiWhB,iBDnWoB,CC+VpB,cAAA,CADA,aAAA,CAEA,qBDhWoB,CCsWtB,qFAEE,kBAAA,CAEA,eD3bU,CC4bV,aDzWgB,CCuWhB,sBDvWgB,CC2WhB,iGAEE,iBD/WkB,CC8WlB,aD9WkB,CCkXpB,iGACE,aAAA,CACA,aAAA,CAIJ,4DACE,YAAA,CACA,sBDtWgC,CCuWhC,iBDxWuB,CC2WzB,iEACE,kBDxWmC,CC6WnC,kBDzWkC,CC0WlC,UDzW6B,CC0W7B,aDzWiC,CC0WjC,eDzWmC,CCkWnC,sBDxWuC,CCyWvC,cDxW8B,CC0W9B,eAAA,CADA,cDpWmC,CC2WnC,wEASE,wBD3bQ,CC0bR,iBAAA,CAEA,UDpeQ,CC2dR,WAAA,CACA,oBAA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",sourcesContent:[".swal2-popup {\n &.swal2-toast {\n box-sizing: border-box;\n grid-column: 1/4 !important;\n grid-row: 1/4 !important;\n grid-template-columns: min-content auto min-content;\n padding: $swal2-toast-padding;\n overflow-y: hidden;\n background: $swal2-toast-background;\n box-shadow: $swal2-toast-box-shadow;\n pointer-events: all;\n\n > * {\n grid-column: 2;\n }\n\n .swal2-title {\n margin: $swal2-toast-title-margin;\n padding: $swal2-toast-title-padding;\n font-size: $swal2-toast-title-font-size;\n text-align: initial;\n }\n\n .swal2-loading {\n justify-content: center;\n }\n\n .swal2-input {\n height: $swal2-toast-input-height;\n margin: $swal2-toast-input-margin;\n font-size: $swal2-toast-input-font-size;\n }\n\n .swal2-validation-message {\n font-size: $swal2-toast-validation-font-size;\n }\n\n .swal2-footer {\n margin: $swal2-toast-footer-margin;\n padding: $swal2-toast-footer-margin;\n font-size: $swal2-toast-footer-font-size;\n }\n\n .swal2-close {\n grid-column: 3/3;\n grid-row: 1/99;\n align-self: center;\n width: $swal2-toast-close-button-width;\n height: $swal2-toast-close-button-height;\n margin: $swal2-toast-close-button-margin;\n font-size: $swal2-toast-close-button-font-size;\n }\n\n .swal2-html-container {\n margin: $swal2-toast-html-container-margin;\n padding: $swal2-toast-html-container-padding;\n overflow: initial;\n font-size: $swal2-toast-html-container-font-size;\n text-align: initial;\n\n &:empty {\n padding: 0;\n }\n }\n\n .swal2-loader {\n grid-column: 1;\n grid-row: 1/99;\n align-self: center;\n width: 2em;\n height: 2em;\n margin: 0.25em;\n }\n\n .swal2-icon {\n grid-column: 1;\n grid-row: 1/99;\n align-self: center;\n width: 2em;\n min-width: 2em;\n height: 2em;\n margin: 0 0.5em 0 0;\n\n .swal2-icon-content {\n display: flex;\n align-items: center;\n font-size: $swal2-toast-icon-font-size;\n font-weight: bold;\n }\n\n &.swal2-success {\n .swal2-success-ring {\n width: 2em;\n height: 2em;\n }\n }\n\n &.swal2-error {\n [class^='swal2-x-mark-line'] {\n top: 0.875em;\n width: 1.375em;\n\n &[class$='left'] {\n left: 0.3125em;\n }\n\n &[class$='right'] {\n right: 0.3125em;\n }\n }\n }\n }\n\n .swal2-actions {\n justify-content: flex-start;\n height: auto;\n margin: 0;\n margin-top: 0.5em;\n padding: 0 0.5em;\n }\n\n .swal2-styled {\n margin: 0.25em 0.5em;\n padding: 0.4em 0.6em;\n font-size: $swal2-toast-buttons-font-size;\n }\n\n .swal2-success {\n border-color: $swal2-success;\n\n [class^='swal2-success-circular-line'] {\n // Emulate moving circular line\n position: absolute;\n width: 1.6em;\n height: 3em;\n border-radius: 50%;\n\n &[class$='left'] {\n top: -0.8em;\n left: -0.5em;\n transform: rotate(-45deg);\n transform-origin: 2em 2em;\n border-radius: 4em 0 0 4em;\n }\n\n &[class$='right'] {\n top: -0.25em;\n left: 0.9375em;\n transform-origin: 0 1.5em;\n border-radius: 0 4em 4em 0;\n }\n }\n\n .swal2-success-ring {\n width: 2em;\n height: 2em;\n }\n\n .swal2-success-fix {\n top: 0;\n left: 0.4375em;\n width: 0.4375em;\n height: 2.6875em;\n }\n\n [class^='swal2-success-line'] {\n height: 0.3125em;\n\n &[class$='tip'] {\n top: 1.125em;\n left: 0.1875em;\n width: 0.75em;\n }\n\n &[class$='long'] {\n top: 0.9375em;\n right: 0.1875em;\n width: 1.375em;\n }\n }\n\n &.swal2-icon-show {\n @if $swal2-icon-animations {\n .swal2-success-line-tip {\n animation: swal2-toast-animate-success-line-tip 0.75s;\n }\n\n .swal2-success-line-long {\n animation: swal2-toast-animate-success-line-long 0.75s;\n }\n }\n }\n }\n\n &.swal2-show {\n animation: $swal2-toast-show-animation;\n }\n\n &.swal2-hide {\n animation: $swal2-toast-hide-animation;\n }\n }\n}\n","$swal2-white: #fff !default;\n$swal2-black: #000 !default;\n$swal2-outline-color: rgba(100, 150, 200, 0.5) !default;\n\n// CONTAINER\n$swal2-container-padding: 0.625em !default;\n\n// POPUP\n$swal2-width: 32em !default;\n$swal2-padding: 0 0 1.25em !default;\n$swal2-border: none !default;\n$swal2-color: lighten($swal2-black, 33) !default;\n$swal2-border-radius: 5px !default;\n$swal2-box-shadow: #d9d9d9 !default;\n\n// ANIMATIONS\n$swal2-show-animation: swal2-show 0.3s !default;\n$swal2-hide-animation: swal2-hide 0.15s forwards !default;\n\n// BACKGROUND\n$swal2-background: $swal2-white !default;\n\n// TYPOGRAPHY\n$swal2-font: inherit !default;\n$swal2-font-size: 1rem !default;\n\n// BACKDROP\n$swal2-backdrop: rgba($swal2-black, 0.4) !default;\n$swal2-backdrop-transition: background-color 0.1s !default;\n\n// ICONS\n$swal2-icon-size: 5em !default;\n$swal2-icon-animations: true !default;\n$swal2-icon-margin: 2.5em auto 0.6em !default;\n$swal2-icon-font-family: inherit !default;\n$swal2-icon-font-size: 3.75em !default;\n$swal2-icon-border-color: #000 !default;\n$swal2-icon-zoom: null !default;\n$swal2-success: #a5dc86 !default;\n$swal2-success-border: rgba($swal2-success, 0.3) !default;\n$swal2-error: #f27474 !default;\n$swal2-warning: #f8bb86 !default;\n$swal2-info: #3fc3ee !default;\n$swal2-question: #87adbd !default;\n\n// IMAGE\n$swal2-image-margin: 2em auto 1em !default;\n\n// TITLE\n$swal2-title-position: relative !default;\n$swal2-title-max-width: 100% !default;\n$swal2-title-margin: 0 !default;\n$swal2-title-padding: 0.8em 1em 0 !default;\n$swal2-title-color: inherit !default;\n$swal2-title-font-size: 1.875em !default;\n$swal2-title-font-weight: 600 !default;\n$swal2-title-text-align: center !default;\n\n// HTML CONTAINER\n$swal2-html-container-justify-content: center !default;\n$swal2-html-container-margin: 1em 1.6em 0.3em !default;\n$swal2-html-container-padding: 0 !default;\n$swal2-html-container-overflow: auto !default;\n$swal2-html-container-color: inherit !default;\n$swal2-html-container-font-size: 1.125em !default;\n$swal2-html-container-font-weight: normal !default;\n$swal2-html-container-line-height: normal !default;\n$swal2-html-container-text-align: center !default;\n$swal2-html-container-word-wrap: break-word !default;\n$swal2-html-container-word-break: break-word !default;\n\n// INPUT\n$swal2-input-margin: 1em 2em 3px !default;\n$swal2-input-width: auto !default;\n$swal2-input-height: 2.625em !default;\n$swal2-input-padding: 0 0.75em !default;\n$swal2-input-border: 1px solid lighten($swal2-black, 85) !default;\n$swal2-input-border-radius: 0.1875em !default;\n$swal2-input-box-shadow:\n inset 0 1px 1px rgba($swal2-black, 0.06),\n 0 0 0 3px transparent !default;\n$swal2-input-font-size: 1.125em !default;\n$swal2-input-background: transparent !default;\n$swal2-input-color: inherit !default;\n$swal2-input-transition:\n border-color 0.1s,\n box-shadow 0.1s !default;\n\n// INPUT:FOCUS\n$swal2-input-focus-border: 1px solid #b4dbed !default;\n$swal2-input-focus-outline: none !default;\n$swal2-input-focus-box-shadow:\n inset 0 1px 1px rgba($swal2-black, 0.06),\n 0 0 0 3px $swal2-outline-color !default;\n\n// TEXTAREA SPECIFIC VARIABLES\n$swal2-textarea-height: 6.75em !default;\n$swal2-textarea-padding: 0.75em !default;\n\n// INPUT LABEL\n$swal2-input-label-margin: 1em auto 0 !default;\n$swal2-input-label-justify-content: center !default;\n\n// VALIDATION MESSAGE\n$swal2-validation-message-align-items: center !default;\n$swal2-validation-message-justify-content: center !default;\n$swal2-validation-message-margin: 1em 0 0 !default;\n$swal2-validation-message-padding: 0.625em !default;\n$swal2-validation-message-background: lighten($swal2-black, 94) !default;\n$swal2-validation-message-color: lighten($swal2-black, 40) !default;\n$swal2-validation-message-font-size: 1em !default;\n$swal2-validation-message-font-weight: 300 !default;\n$swal2-validation-message-icon-background: $swal2-error !default;\n$swal2-validation-message-icon-color: $swal2-white !default;\n$swal2-validation-message-icon-zoom: null !default;\n\n// PROGRESS STEPS\n$swal2-progress-steps-flex-wrap: wrap !default;\n$swal2-progress-steps-align-items: center !default;\n$swal2-progress-steps-max-width: 100% !default;\n$swal2-progress-steps-background: transparent !default;\n$swal2-progress-steps-margin: 1.25em auto !default;\n$swal2-progress-steps-padding: 0 !default;\n$swal2-progress-steps-font-weight: 600 !default;\n$swal2-progress-steps-distance: 2.5em !default;\n$swal2-progress-step-width: 2em;\n$swal2-progress-step-height: 2em;\n$swal2-progress-step-border-radius: 2em;\n$swal2-progress-step-background: #add8e6 !default;\n$swal2-progress-step-color: $swal2-white !default;\n$swal2-active-step-background: #2778c4 !default;\n$swal2-active-step-color: $swal2-white !default;\n\n// FOOTER\n$swal2-footer-margin: 1em 0 0 !default;\n$swal2-footer-padding: 1em 1em 0 !default;\n$swal2-footer-border-color: #eee !default;\n$swal2-footer-color: inherit !default;\n$swal2-footer-font-size: 1em !default;\n$swal2-footer-text-align: center !default;\n\n// TIMER PROGRESS BAR\n$swal2-timer-progress-bar-height: 0.25em;\n$swal2-timer-progress-bar-background: rgba($swal2-black, 0.2) !default;\n\n// CLOSE BUTTON\n$swal2-close-button-justify-self: end !default;\n$swal2-close-button-align-items: center !default;\n$swal2-close-button-justify-content: center !default;\n$swal2-close-button-width: 1.2em !default;\n$swal2-close-button-height: 1.2em !default;\n$swal2-close-button-position: null !default;\n$swal2-close-button-gap: 0 !default;\n$swal2-close-button-padding: 0 !default;\n$swal2-close-button-transition:\n color 0.1s,\n box-shadow 0.1s !default;\n$swal2-close-button-border: none !default;\n$swal2-close-button-border-radius: $swal2-border-radius !default;\n$swal2-close-button-outline: null !default;\n$swal2-close-button-background: transparent !default;\n$swal2-close-button-color: #ccc !default;\n$swal2-close-button-font-family: monospace !default;\n$swal2-close-button-font-size: 2.5em !default;\n$swal2-close-button-box-shadow: inset 0 0 0 3px transparent !default;\n\n// CLOSE BUTTON:HOVER\n$swal2-close-button-hover-transform: none !default;\n$swal2-close-button-hover-color: $swal2-error !default;\n$swal2-close-button-hover-background: transparent !default;\n\n// CLOSE BUTTON:FOCUS\n$swal2-close-button-focus-outline: none !default;\n$swal2-close-button-focus-box-shadow: inset 0 0 0 3px $swal2-outline-color !default;\n\n// ACTIONS\n$swal2-actions-flex-wrap: wrap !default;\n$swal2-actions-align-items: center !default;\n$swal2-actions-justify-content: center !default;\n$swal2-actions-width: auto !default;\n$swal2-actions-margin: 1.25em auto 0 !default;\n$swal2-actions-padding: 0 !default;\n\n// COMMON VARIABLES FOR ALL ACTION BUTTONS\n$swal2-button-margin: 0.3125em !default;\n$swal2-button-padding: 0.625em 1.1em !default;\n$swal2-button-transition: box-shadow 0.1s !default;\n$swal2-button-box-shadow: 0 0 0 3px transparent !default;\n$swal2-button-font-weight: 500 !default;\n$swal2-button-darken-hover: rgba($swal2-black, 0.1) !default;\n$swal2-button-darken-active: rgba($swal2-black, 0.2) !default;\n$swal2-button-focus-outline: none !default;\n$swal2-button-focus-box-shadow: 0 0 0 3px $swal2-outline-color !default;\n\n// CONFIRM BUTTON\n$swal2-confirm-button-order: null !default;\n$swal2-confirm-button-border: 0 !default;\n$swal2-confirm-button-border-radius: 0.25em !default;\n$swal2-confirm-button-background-color: #7066e0 !default;\n$swal2-confirm-button-color: $swal2-white !default;\n$swal2-confirm-button-font-size: 1em !default;\n$swal2-confirm-button-focus-box-shadow: 0 0 0 3px rgba($swal2-confirm-button-background-color, 0.5) !default;\n\n// DENY BUTTON\n$swal2-deny-button-order: null !default;\n$swal2-deny-button-border: 0 !default;\n$swal2-deny-button-border-radius: 0.25em !default;\n$swal2-deny-button-background-color: #dc3741 !default;\n$swal2-deny-button-color: $swal2-white !default;\n$swal2-deny-button-font-size: 1em !default;\n$swal2-deny-button-focus-box-shadow: 0 0 0 3px rgba($swal2-deny-button-background-color, 0.5) !default;\n\n// CANCEL BUTTON\n$swal2-cancel-button-order: null !default;\n$swal2-cancel-button-border: 0 !default;\n$swal2-cancel-button-border-radius: 0.25em !default;\n$swal2-cancel-button-background-color: #6e7881 !default;\n$swal2-cancel-button-color: $swal2-white !default;\n$swal2-cancel-button-font-size: 1em !default;\n$swal2-cancel-button-focus-box-shadow: 0 0 0 3px rgba($swal2-cancel-button-background-color, 0.5) !default;\n\n// LOADER\n$swal2-loader-align-items: center !default;\n$swal2-loader-justify-content: center !default;\n$swal2-loader-width: 2.2em !default;\n$swal2-loader-height: 2.2em !default;\n$swal2-loader-margin: 0 1.875em !default;\n$swal2-loader-animation: swal2-rotate-loading 1.5s linear 0s infinite normal !default;\n$swal2-loader-border-width: 0.25em !default;\n$swal2-loader-border-style: solid !default;\n$swal2-loader-border-radius: 100% !default;\n$swal2-loader-border-color: #2778c4 transparent #2778c4 transparent !default;\n\n// TOASTS\n$swal2-toast-show-animation: swal2-toast-show 0.5s !default;\n$swal2-toast-hide-animation: swal2-toast-hide 0.1s forwards !default;\n$swal2-toast-border: none !default;\n$swal2-toast-box-shadow:\n 0 0 1px hsl(0deg 0% 0% / 0.075),\n 0 1px 2px hsl(0deg 0% 0% / 0.075),\n 1px 2px 4px hsl(0deg 0% 0% / 0.075),\n 1px 3px 8px hsl(0deg 0% 0% / 0.075),\n 2px 4px 16px hsl(0deg 0% 0% / 0.075) !default;\n$swal2-toast-background: $swal2-white !default;\n$swal2-toast-close-button-width: 0.8em !default;\n$swal2-toast-close-button-height: 0.8em !default;\n$swal2-toast-close-button-margin: 0 !default;\n$swal2-toast-close-button-font-size: 2em !default;\n$swal2-toast-width: 360px !default;\n$swal2-toast-padding: 1em !default;\n$swal2-toast-title-margin: 0.5em 1em !default;\n$swal2-toast-title-padding: 0 !default;\n$swal2-toast-title-font-size: 1em !default;\n$swal2-toast-icon-font-size: 1.8em !default;\n$swal2-toast-html-container-margin: 0.5em 1em !default;\n$swal2-toast-html-container-padding: 0 !default;\n$swal2-toast-html-container-font-size: 1em !default;\n$swal2-toast-input-height: 2em !default;\n$swal2-toast-input-margin: 0.5em !default;\n$swal2-toast-input-font-size: 1em !default;\n$swal2-toast-validation-font-size: 1em !default;\n$swal2-toast-buttons-font-size: 1em !default;\n$swal2-toast-footer-margin: 0.5em 0 0 !default;\n$swal2-toast-footer-padding: 0.5em 0 0 !default;\n$swal2-toast-footer-font-size: 0.8em !default;\n","@use 'sass:math';\n\ndiv:where(.swal2-container) {\n display: grid;\n position: fixed;\n z-index: 1060;\n inset: 0;\n box-sizing: border-box;\n grid-template-areas:\n 'top-start top top-end'\n 'center-start center center-end'\n 'bottom-start bottom-center bottom-end';\n grid-template-rows: minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);\n height: 100%; // Safari\n padding: $swal2-container-padding;\n overflow-x: hidden;\n transition: $swal2-backdrop-transition;\n\n // sweetalert2/issues/905\n -webkit-overflow-scrolling: touch;\n\n &.swal2-backdrop-show,\n &.swal2-noanimation {\n background: $swal2-backdrop;\n }\n\n &.swal2-backdrop-hide {\n background: transparent !important;\n }\n\n &.swal2-top-start,\n &.swal2-center-start,\n &.swal2-bottom-start {\n grid-template-columns: minmax(0, 1fr) auto auto;\n }\n\n &.swal2-top,\n &.swal2-center,\n &.swal2-bottom {\n grid-template-columns: auto minmax(0, 1fr) auto;\n }\n\n &.swal2-top-end,\n &.swal2-center-end,\n &.swal2-bottom-end {\n grid-template-columns: auto auto minmax(0, 1fr);\n }\n\n &.swal2-top-start > .swal2-popup {\n align-self: start;\n }\n\n &.swal2-top > .swal2-popup {\n grid-column: 2;\n place-self: start center;\n }\n\n &.swal2-top-end > .swal2-popup,\n &.swal2-top-right > .swal2-popup {\n grid-column: 3;\n place-self: start end;\n }\n\n &.swal2-center-start > .swal2-popup,\n &.swal2-center-left > .swal2-popup {\n grid-row: 2;\n align-self: center;\n }\n\n &.swal2-center > .swal2-popup {\n grid-column: 2;\n grid-row: 2;\n place-self: center center;\n }\n\n &.swal2-center-end > .swal2-popup,\n &.swal2-center-right > .swal2-popup {\n grid-column: 3;\n grid-row: 2;\n place-self: center end;\n }\n\n &.swal2-bottom-start > .swal2-popup,\n &.swal2-bottom-left > .swal2-popup {\n grid-column: 1;\n grid-row: 3;\n align-self: end;\n }\n\n &.swal2-bottom > .swal2-popup {\n grid-column: 2;\n grid-row: 3;\n place-self: end center;\n }\n\n &.swal2-bottom-end > .swal2-popup,\n &.swal2-bottom-right > .swal2-popup {\n grid-column: 3;\n grid-row: 3;\n place-self: end end;\n }\n\n &.swal2-grow-row > .swal2-popup,\n &.swal2-grow-fullscreen > .swal2-popup {\n grid-column: 1/4;\n width: 100%;\n }\n\n &.swal2-grow-column > .swal2-popup,\n &.swal2-grow-fullscreen > .swal2-popup {\n grid-row: 1/4;\n align-self: stretch;\n }\n\n &.swal2-no-transition {\n transition: none !important;\n }\n\n div:where(.swal2-popup) {\n display: none;\n position: relative;\n box-sizing: border-box;\n grid-template-columns: minmax(0, 100%);\n width: $swal2-width;\n max-width: 100%;\n padding: $swal2-padding;\n border: $swal2-border;\n border-radius: $swal2-border-radius;\n background: $swal2-background;\n color: $swal2-color;\n font-family: $swal2-font;\n font-size: $swal2-font-size;\n\n &:focus {\n outline: none;\n }\n\n &.swal2-loading {\n overflow-y: hidden;\n }\n }\n\n h2:where(.swal2-title) {\n position: $swal2-title-position;\n max-width: $swal2-title-max-width;\n margin: $swal2-title-margin;\n padding: $swal2-title-padding;\n color: $swal2-title-color;\n font-size: $swal2-title-font-size;\n font-weight: $swal2-title-font-weight;\n text-align: $swal2-title-text-align;\n text-transform: none;\n word-wrap: break-word;\n }\n\n div:where(.swal2-actions) {\n display: flex;\n z-index: 1; // prevent success icon from overlapping buttons\n box-sizing: border-box;\n flex-wrap: $swal2-actions-flex-wrap;\n align-items: $swal2-actions-align-items;\n justify-content: $swal2-actions-justify-content;\n width: $swal2-actions-width;\n margin: $swal2-actions-margin;\n padding: $swal2-actions-padding;\n\n &:not(.swal2-loading) {\n .swal2-styled {\n &[disabled] {\n opacity: 0.4;\n }\n\n &:hover {\n background-image: linear-gradient($swal2-button-darken-hover, $swal2-button-darken-hover);\n }\n\n &:active {\n background-image: linear-gradient($swal2-button-darken-active, $swal2-button-darken-active);\n }\n }\n }\n }\n\n div:where(.swal2-loader) {\n display: none;\n align-items: $swal2-loader-align-items;\n justify-content: $swal2-loader-justify-content;\n width: $swal2-loader-width;\n height: $swal2-loader-height;\n margin: $swal2-loader-margin;\n animation: $swal2-loader-animation;\n border-width: $swal2-loader-border-width;\n border-style: $swal2-loader-border-style;\n border-radius: $swal2-loader-border-radius;\n border-color: $swal2-loader-border-color;\n }\n\n button:where(.swal2-styled) {\n margin: $swal2-button-margin;\n padding: $swal2-button-padding;\n transition: $swal2-button-transition;\n box-shadow: $swal2-button-box-shadow;\n font-weight: $swal2-button-font-weight;\n\n &:not([disabled]) {\n cursor: pointer;\n }\n\n &.swal2-confirm {\n order: $swal2-confirm-button-order;\n border: $swal2-confirm-button-border;\n border-radius: $swal2-confirm-button-border-radius;\n background: initial;\n background-color: $swal2-confirm-button-background-color;\n color: $swal2-confirm-button-color;\n font-size: $swal2-confirm-button-font-size;\n\n &:focus {\n box-shadow: $swal2-confirm-button-focus-box-shadow;\n }\n }\n\n &.swal2-deny {\n order: $swal2-deny-button-order;\n border: $swal2-deny-button-border;\n border-radius: $swal2-deny-button-border-radius;\n background: initial;\n background-color: $swal2-deny-button-background-color;\n color: $swal2-deny-button-color;\n font-size: $swal2-deny-button-font-size;\n\n &:focus {\n box-shadow: $swal2-deny-button-focus-box-shadow;\n }\n }\n\n &.swal2-cancel {\n order: $swal2-cancel-button-order;\n border: $swal2-cancel-button-border;\n border-radius: $swal2-cancel-button-border-radius;\n background: initial;\n background-color: $swal2-cancel-button-background-color;\n color: $swal2-cancel-button-color;\n font-size: $swal2-cancel-button-font-size;\n\n &:focus {\n box-shadow: $swal2-cancel-button-focus-box-shadow;\n }\n }\n\n &.swal2-default-outline {\n &:focus {\n box-shadow: $swal2-button-focus-box-shadow;\n }\n }\n\n &:focus {\n outline: $swal2-button-focus-outline;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n }\n\n div:where(.swal2-footer) {\n margin: $swal2-footer-margin;\n padding: $swal2-footer-padding;\n border-top: 1px solid $swal2-footer-border-color;\n color: $swal2-footer-color;\n font-size: $swal2-footer-font-size;\n text-align: $swal2-footer-text-align;\n }\n\n .swal2-timer-progress-bar-container {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n grid-column: auto !important;\n overflow: hidden;\n border-bottom-right-radius: $swal2-border-radius;\n border-bottom-left-radius: $swal2-border-radius;\n }\n\n div:where(.swal2-timer-progress-bar) {\n width: 100%;\n height: $swal2-timer-progress-bar-height;\n background: $swal2-timer-progress-bar-background;\n }\n\n img:where(.swal2-image) {\n max-width: 100%;\n margin: $swal2-image-margin;\n }\n\n button:where(.swal2-close) {\n position: $swal2-close-button-position;\n z-index: 2; // sweetalert2/issues/1617\n align-items: $swal2-close-button-align-items;\n justify-content: $swal2-close-button-justify-content;\n width: $swal2-close-button-width;\n height: $swal2-close-button-height;\n margin-top: $swal2-close-button-gap;\n margin-right: $swal2-close-button-gap;\n margin-bottom: -$swal2-close-button-height;\n padding: $swal2-close-button-padding;\n overflow: hidden;\n transition: $swal2-close-button-transition;\n border: $swal2-close-button-border;\n border-radius: $swal2-close-button-border-radius;\n outline: $swal2-close-button-outline;\n background: $swal2-close-button-background;\n color: $swal2-close-button-color;\n font-family: $swal2-close-button-font-family;\n font-size: $swal2-close-button-font-size;\n cursor: pointer;\n justify-self: $swal2-close-button-justify-self;\n\n &:hover {\n transform: $swal2-close-button-hover-transform;\n background: $swal2-close-button-hover-background;\n color: $swal2-close-button-hover-color;\n }\n\n &:focus {\n outline: $swal2-close-button-focus-outline;\n box-shadow: $swal2-close-button-focus-box-shadow;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n }\n\n .swal2-html-container {\n z-index: 1; // prevent success icon overlapping the content\n justify-content: $swal2-html-container-justify-content;\n margin: $swal2-html-container-margin;\n padding: $swal2-html-container-padding;\n overflow: $swal2-html-container-overflow;\n color: $swal2-html-container-color;\n font-size: $swal2-html-container-font-size;\n font-weight: $swal2-html-container-font-weight;\n line-height: $swal2-html-container-line-height;\n text-align: $swal2-html-container-text-align;\n word-wrap: $swal2-html-container-word-wrap;\n word-break: $swal2-html-container-word-break;\n }\n\n input:where(.swal2-input),\n input:where(.swal2-file),\n textarea:where(.swal2-textarea),\n select:where(.swal2-select),\n div:where(.swal2-radio),\n label:where(.swal2-checkbox) {\n margin: $swal2-input-margin;\n }\n\n input:where(.swal2-input),\n input:where(.swal2-file),\n textarea:where(.swal2-textarea) {\n box-sizing: border-box;\n width: $swal2-input-width;\n transition: $swal2-input-transition;\n border: $swal2-input-border;\n border-radius: $swal2-input-border-radius;\n background: $swal2-input-background;\n box-shadow: $swal2-input-box-shadow;\n color: $swal2-input-color;\n font-size: $swal2-input-font-size;\n\n &.swal2-inputerror {\n border-color: $swal2-error !important;\n box-shadow: 0 0 2px $swal2-error !important;\n }\n\n &:focus {\n border: $swal2-input-focus-border;\n outline: $swal2-input-focus-outline;\n box-shadow: $swal2-input-focus-box-shadow;\n }\n\n &::placeholder {\n color: #ccc;\n }\n }\n\n .swal2-range {\n margin: $swal2-input-margin;\n background: $swal2-background;\n\n input {\n width: 80%;\n }\n\n output {\n width: 20%;\n color: $swal2-input-color;\n font-weight: 600;\n text-align: center;\n }\n\n input,\n output {\n height: $swal2-input-height;\n padding: 0;\n font-size: $swal2-input-font-size;\n line-height: $swal2-input-height;\n }\n }\n\n .swal2-input {\n height: $swal2-input-height;\n padding: $swal2-input-padding;\n }\n\n .swal2-file {\n width: 75%;\n margin-right: auto;\n margin-left: auto;\n background: $swal2-input-background;\n font-size: $swal2-input-font-size;\n }\n\n .swal2-textarea {\n height: $swal2-textarea-height;\n padding: $swal2-textarea-padding;\n }\n\n .swal2-select {\n min-width: 50%;\n max-width: 100%;\n padding: 0.375em 0.625em;\n background: $swal2-input-background;\n color: $swal2-input-color;\n font-size: $swal2-input-font-size;\n }\n\n .swal2-radio,\n .swal2-checkbox {\n align-items: center;\n justify-content: center;\n background: $swal2-background;\n color: $swal2-input-color;\n\n label {\n margin: 0 0.6em;\n font-size: $swal2-input-font-size;\n }\n\n input {\n flex-shrink: 0;\n margin: 0 0.4em;\n }\n }\n\n label:where(.swal2-input-label) {\n display: flex;\n justify-content: $swal2-input-label-justify-content;\n margin: $swal2-input-label-margin;\n }\n\n div:where(.swal2-validation-message) {\n align-items: $swal2-validation-message-align-items;\n justify-content: $swal2-validation-message-justify-content;\n margin: $swal2-validation-message-margin;\n padding: $swal2-validation-message-padding;\n overflow: hidden;\n background: $swal2-validation-message-background;\n color: $swal2-validation-message-color;\n font-size: $swal2-validation-message-font-size;\n font-weight: $swal2-validation-message-font-weight;\n\n &::before {\n content: '!';\n display: inline-block;\n width: 1.5em;\n min-width: 1.5em;\n height: 1.5em;\n margin: 0 0.625em;\n zoom: $swal2-validation-message-icon-zoom;\n border-radius: 50%;\n background-color: $swal2-validation-message-icon-background;\n color: $swal2-validation-message-icon-color;\n font-weight: 600;\n line-height: 1.5em;\n text-align: center;\n }\n }\n\n .swal2-progress-steps {\n flex-wrap: $swal2-progress-steps-flex-wrap;\n align-items: $swal2-progress-steps-align-items;\n max-width: $swal2-progress-steps-max-width;\n margin: $swal2-progress-steps-margin;\n padding: $swal2-progress-steps-padding;\n background: $swal2-progress-steps-background;\n font-weight: $swal2-progress-steps-font-weight;\n\n li {\n display: inline-block;\n position: relative;\n }\n\n .swal2-progress-step {\n z-index: 20;\n flex-shrink: 0;\n width: $swal2-progress-step-width;\n height: $swal2-progress-step-height;\n border-radius: $swal2-progress-step-border-radius;\n background: $swal2-active-step-background;\n color: $swal2-active-step-color;\n line-height: $swal2-progress-step-height;\n text-align: center;\n\n &.swal2-active-progress-step {\n background: $swal2-active-step-background;\n\n ~ .swal2-progress-step {\n background: $swal2-progress-step-background;\n color: $swal2-progress-step-color;\n }\n\n ~ .swal2-progress-step-line {\n background: $swal2-progress-step-background;\n }\n }\n }\n\n .swal2-progress-step-line {\n z-index: 10;\n flex-shrink: 0;\n width: $swal2-progress-steps-distance;\n height: 0.4em;\n margin: 0 -1px;\n background: $swal2-active-step-background;\n }\n }\n}\n\n@import 'icons';\n\n// github.com/sweetalert2/sweetalert2/issues/268\n[class^='swal2'] {\n -webkit-tap-highlight-color: transparent;\n}\n\n.swal2-show {\n animation: $swal2-show-animation;\n}\n\n.swal2-hide {\n animation: $swal2-hide-animation;\n}\n\n.swal2-noanimation {\n transition: none;\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.swal2-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Right-to-left support\n.swal2-rtl {\n .swal2-close {\n margin-right: initial;\n margin-left: $swal2-close-button-gap;\n }\n\n .swal2-timer-progress-bar {\n right: 0;\n left: auto;\n }\n}\n","// https://stackoverflow.com/a/12335841/1331425\n@function strip-units($number) {\n @return math.div($number, ($number * 0 + 1));\n}\n$icon-zoom: math.div(strip-units($swal2-icon-size), 5);\n\ndiv:where(.swal2-icon) {\n position: relative;\n box-sizing: content-box;\n justify-content: center;\n width: $swal2-icon-size;\n height: $swal2-icon-size;\n margin: $swal2-icon-margin;\n zoom: $swal2-icon-zoom;\n border: #{0.25em * $icon-zoom} solid transparent;\n border-radius: 50%;\n border-color: $swal2-icon-border-color;\n font-family: $swal2-icon-font-family;\n line-height: $swal2-icon-size;\n cursor: default;\n user-select: none;\n\n .swal2-icon-content {\n display: flex;\n align-items: center;\n font-size: $swal2-icon-font-size;\n }\n\n &.swal2-error {\n border-color: $swal2-error;\n color: $swal2-error;\n\n .swal2-x-mark {\n position: relative;\n flex-grow: 1;\n\n @if $icon-zoom != 1 {\n zoom: $icon-zoom;\n }\n }\n\n [class^='swal2-x-mark-line'] {\n display: block;\n position: absolute;\n top: 2.3125em;\n width: 2.9375em;\n height: 0.3125em;\n border-radius: 0.125em;\n background-color: $swal2-error;\n\n &[class$='left'] {\n left: 1.0625em;\n transform: rotate(45deg);\n }\n\n &[class$='right'] {\n right: 1em;\n transform: rotate(-45deg);\n }\n }\n\n // Error icon animation\n &.swal2-icon-show {\n @if $swal2-icon-animations {\n animation: swal2-animate-error-icon 0.5s;\n\n .swal2-x-mark {\n animation: swal2-animate-error-x-mark 0.5s;\n }\n }\n }\n }\n\n &.swal2-warning {\n border-color: lighten($swal2-warning, 7);\n color: $swal2-warning;\n\n // Warning icon animation\n &.swal2-icon-show {\n @if $swal2-icon-animations {\n animation: swal2-animate-error-icon 0.5s;\n\n .swal2-icon-content {\n animation: swal2-animate-i-mark 0.5s;\n }\n }\n }\n }\n\n &.swal2-info {\n border-color: lighten($swal2-info, 20);\n color: $swal2-info;\n\n // Info icon animation\n &.swal2-icon-show {\n @if $swal2-icon-animations {\n animation: swal2-animate-error-icon 0.5s;\n\n .swal2-icon-content {\n animation: swal2-animate-i-mark 0.8s;\n }\n }\n }\n }\n\n &.swal2-question {\n border-color: lighten($swal2-question, 20);\n color: $swal2-question;\n\n // Question icon animation\n &.swal2-icon-show {\n @if $swal2-icon-animations {\n animation: swal2-animate-error-icon 0.5s;\n\n .swal2-icon-content {\n animation: swal2-animate-question-mark 0.8s;\n }\n }\n }\n }\n\n &.swal2-success {\n border-color: $swal2-success;\n color: $swal2-success;\n\n [class^='swal2-success-circular-line'] {\n // Emulate moving circular line\n position: absolute;\n width: 3.75em;\n height: 7.5em;\n border-radius: 50%;\n\n &[class$='left'] {\n top: -0.4375em;\n left: -2.0635em;\n transform: rotate(-45deg);\n transform-origin: 3.75em 3.75em;\n border-radius: 7.5em 0 0 7.5em;\n\n @if $icon-zoom != 1 {\n zoom: $icon-zoom;\n }\n }\n\n &[class$='right'] {\n top: -0.6875em;\n left: 1.875em;\n transform: rotate(-45deg);\n transform-origin: 0 3.75em;\n border-radius: 0 7.5em 7.5em 0;\n\n @if $icon-zoom != 1 {\n zoom: $icon-zoom;\n }\n }\n }\n\n .swal2-success-ring {\n // Ring\n position: absolute;\n z-index: 2;\n top: -0.25em;\n left: -0.25em;\n box-sizing: content-box;\n width: 100%;\n height: 100%;\n border: 0.25em solid $swal2-success-border;\n border-radius: 50%;\n\n @if $icon-zoom != 1 {\n zoom: $icon-zoom;\n }\n }\n\n .swal2-success-fix {\n // Hide corners left from animation\n position: absolute;\n z-index: 1;\n top: 0.5em;\n left: 1.625em;\n width: 0.4375em;\n height: 5.625em;\n transform: rotate(-45deg);\n\n @if $icon-zoom != 1 {\n zoom: $icon-zoom;\n }\n }\n\n [class^='swal2-success-line'] {\n display: block;\n position: absolute;\n z-index: 2;\n height: 0.3125em;\n border-radius: 0.125em;\n background-color: $swal2-success;\n\n &[class$='tip'] {\n top: 2.875em;\n left: 0.8125em;\n width: 1.5625em;\n transform: rotate(45deg);\n }\n\n &[class$='long'] {\n top: 2.375em;\n right: 0.5em;\n width: 2.9375em;\n transform: rotate(-45deg);\n }\n\n @if $icon-zoom != 1 {\n zoom: $icon-zoom;\n }\n }\n\n // Success icon animation\n &.swal2-icon-show {\n @if $swal2-icon-animations {\n .swal2-success-line-tip {\n animation: swal2-animate-success-line-tip 0.75s;\n }\n\n .swal2-success-line-long {\n animation: swal2-animate-success-line-long 0.75s;\n }\n\n .swal2-success-circular-line-right {\n animation: swal2-rotate-success-circular-line 4.25s ease-in;\n }\n }\n }\n }\n}\n","// Animations\n@keyframes swal2-toast-show {\n 0% {\n transform: translateY(-0.625em) rotateZ(2deg);\n }\n\n 33% {\n transform: translateY(0) rotateZ(-2deg);\n }\n\n 66% {\n transform: translateY(0.3125em) rotateZ(2deg);\n }\n\n 100% {\n transform: translateY(0) rotateZ(0deg);\n }\n}\n\n@keyframes swal2-toast-hide {\n 100% {\n transform: rotateZ(1deg);\n opacity: 0;\n }\n}\n\n@keyframes swal2-toast-animate-success-line-tip {\n 0% {\n top: 0.5625em;\n left: 0.0625em;\n width: 0;\n }\n\n 54% {\n top: 0.125em;\n left: 0.125em;\n width: 0;\n }\n\n 70% {\n top: 0.625em;\n left: -0.25em;\n width: 1.625em;\n }\n\n 84% {\n top: 1.0625em;\n left: 0.75em;\n width: 0.5em;\n }\n\n 100% {\n top: 1.125em;\n left: 0.1875em;\n width: 0.75em;\n }\n}\n\n@keyframes swal2-toast-animate-success-line-long {\n 0% {\n top: 1.625em;\n right: 1.375em;\n width: 0;\n }\n\n 65% {\n top: 1.25em;\n right: 0.9375em;\n width: 0;\n }\n\n 84% {\n top: 0.9375em;\n right: 0;\n width: 1.125em;\n }\n\n 100% {\n top: 0.9375em;\n right: 0.1875em;\n width: 1.375em;\n }\n}\n","@import 'toasts-animations';\n\n// Appearance animation\n@keyframes swal2-show {\n 0% {\n transform: scale(0.7);\n }\n\n 45% {\n transform: scale(1.05);\n }\n\n 80% {\n transform: scale(0.95);\n }\n\n 100% {\n transform: scale(1);\n }\n}\n\n// Disppearance animation\n@keyframes swal2-hide {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n\n 100% {\n transform: scale(0.5);\n opacity: 0;\n }\n}\n\n// Success icon animations\n@keyframes swal2-animate-success-line-tip {\n 0% {\n top: 1.1875em;\n left: 0.0625em;\n width: 0;\n }\n\n 54% {\n top: 1.0625em;\n left: 0.125em;\n width: 0;\n }\n\n 70% {\n top: 2.1875em;\n left: -0.375em;\n width: 3.125em;\n }\n\n 84% {\n top: 3em;\n left: 1.3125em;\n width: 1.0625em;\n }\n\n 100% {\n top: 2.8125em;\n left: 0.8125em;\n width: 1.5625em;\n }\n}\n\n@keyframes swal2-animate-success-line-long {\n 0% {\n top: 3.375em;\n right: 2.875em;\n width: 0;\n }\n\n 65% {\n top: 3.375em;\n right: 2.875em;\n width: 0;\n }\n\n 84% {\n top: 2.1875em;\n right: 0;\n width: 3.4375em;\n }\n\n 100% {\n top: 2.375em;\n right: 0.5em;\n width: 2.9375em;\n }\n}\n\n@keyframes swal2-rotate-success-circular-line {\n 0% {\n transform: rotate(-45deg);\n }\n\n 5% {\n transform: rotate(-45deg);\n }\n\n 12% {\n transform: rotate(-405deg);\n }\n\n 100% {\n transform: rotate(-405deg);\n }\n}\n\n// Error icon animations\n@keyframes swal2-animate-error-x-mark {\n 0% {\n margin-top: 1.625em;\n transform: scale(0.4);\n opacity: 0;\n }\n\n 50% {\n margin-top: 1.625em;\n transform: scale(0.4);\n opacity: 0;\n }\n\n 80% {\n margin-top: -0.375em;\n transform: scale(1.15);\n }\n\n 100% {\n margin-top: 0;\n transform: scale(1);\n opacity: 1;\n }\n}\n\n@keyframes swal2-animate-error-icon {\n 0% {\n transform: rotateX(100deg);\n opacity: 0;\n }\n\n 100% {\n transform: rotateX(0deg);\n opacity: 1;\n }\n}\n\n@keyframes swal2-rotate-loading {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}\n\n// Question mark animation\n@keyframes swal2-animate-question-mark {\n 0% {\n transform: rotateY(-360deg);\n }\n\n 100% {\n transform: rotateY(0);\n }\n}\n\n// Info and Warning mark animation\n@keyframes swal2-animate-i-mark {\n 0% {\n transform: rotateZ(45deg);\n opacity: 0;\n }\n\n 25% {\n transform: rotateZ(-25deg);\n opacity: 0.4;\n }\n\n 50% {\n transform: rotateZ(15deg);\n opacity: 0.8;\n }\n\n 75% {\n transform: rotateZ(-5deg);\n opacity: 1;\n }\n\n 100% {\n transform: rotateX(0);\n opacity: 1;\n }\n}\n","// https://stackoverflow.com/a/30250161\n@mixin not($ignor-list...) {\n @if (length($ignor-list) == 1) {\n $ignor-list: nth($ignor-list, 1);\n }\n\n $not-output: '';\n\n @each $not in $ignor-list {\n $not-output: $not-output + ':not(#{$not})'; // stylelint-disable-line scss/no-duplicate-dollar-variables\n }\n\n &#{$not-output} {\n @content;\n }\n}\n","@import 'toasts-body';\n\n@mixin sweetalert2-body() {\n &.swal2-shown {\n @include not('.swal2-no-backdrop', '.swal2-toast-shown') {\n overflow: hidden; // not overflow-y because of Sarari, #1253\n }\n }\n\n &.swal2-height-auto {\n height: auto !important; // #781 #1107\n }\n\n &.swal2-no-backdrop {\n .swal2-container {\n background-color: transparent !important;\n pointer-events: none;\n\n .swal2-popup {\n pointer-events: all;\n }\n\n .swal2-modal {\n box-shadow: 0 0 10px $swal2-backdrop;\n }\n }\n }\n\n @media print {\n &.swal2-shown {\n @include not('.swal2-no-backdrop', '.swal2-toast-shown') {\n overflow-y: scroll !important;\n\n > [aria-hidden='true'] {\n display: none;\n }\n\n .swal2-container {\n position: static !important;\n }\n }\n }\n }\n}\n","@mixin sweetalert2-toasts-body() {\n &.swal2-toast-shown {\n .swal2-container {\n box-sizing: border-box;\n width: $swal2-toast-width;\n max-width: 100%;\n background-color: transparent;\n pointer-events: none;\n\n &.swal2-top {\n inset: 0 auto auto 50%;\n transform: translateX(-50%);\n }\n\n &.swal2-top-end,\n &.swal2-top-right {\n inset: 0 0 auto auto;\n }\n\n &.swal2-top-start,\n &.swal2-top-left {\n inset: 0 auto auto 0;\n }\n\n &.swal2-center-start,\n &.swal2-center-left {\n inset: 50% auto auto 0;\n transform: translateY(-50%);\n }\n\n &.swal2-center {\n inset: 50% auto auto 50%;\n transform: translate(-50%, -50%);\n }\n\n &.swal2-center-end,\n &.swal2-center-right {\n inset: 50% 0 auto auto;\n transform: translateY(-50%);\n }\n\n &.swal2-bottom-start,\n &.swal2-bottom-left {\n inset: auto auto 0 0;\n }\n\n &.swal2-bottom {\n inset: auto auto 0 50%;\n transform: translateX(-50%);\n }\n\n &.swal2-bottom-end,\n &.swal2-bottom-right {\n inset: auto 0 0 auto;\n }\n }\n }\n}\n"],sourceRoot:""}]);const o=a},663:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,".rc-buttons{z-index:10}.rc-absolute-buttons{bottom:1.25rem;position:fixed;right:1.25rem;text-align:right}.rc-button{border:none!important;border-radius:7px!important;cursor:pointer;font-size:1rem!important;font-weight:700!important;line-height:150%!important;margin:.25rem!important;padding:1rem 1.5rem!important;text-align:center!important}.rc-go-button{background:rgba(255,154,0,.667)!important;color:#fff!important}.rc-go-button:hover{background:#ff9a00!important}.rc-go-button:active{background:#d68200!important}.rc-cancel-button,.rc-custom-button{background:hsla(0,0%,100%,.933)!important;color:#333!important}.rc-cancel-button:hover,.rc-custom-button:hover{background:#ddd!important}.rc-cancel-button:active,.rc-custom-button:active{background:#aaa!important;color:#000!important}.rc-button:disabled{background:#ddd!important;color:#999!important;cursor:default!important}","",{version:3,sources:["webpack://./src/css/buttons.scss"],names:[],mappings:"AAAA,YACE,UAAA,CAGF,qBAGE,cAAA,CAFA,cAAA,CAGA,aAAA,CAFA,gBAEA,CAGF,WAEE,qBAAA,CAMA,2BAAA,CACA,cAAA,CALA,wBAAA,CACA,yBAAA,CAFA,0BAAA,CAIA,uBAAA,CADA,6BAAA,CALA,2BAQA,CAGF,cACE,yCAAA,CACA,oBAAA,CAEA,oBACE,4BAAA,CAGF,qBACE,4BAAA,CAIJ,oCAEE,yCAAA,CACA,oBAAA,CAEA,gDACE,yBAAA,CAGF,kDACE,yBAAA,CACA,oBAAA,CAIJ,oBACE,yBAAA,CACA,oBAAA,CACA,wBAAA",sourcesContent:[".rc-buttons {\n z-index: 10;\n}\n\n.rc-absolute-buttons {\n position: fixed;\n text-align: right;\n bottom: 1.25rem;\n right: 1.25rem;\n}\n\n.rc-button {\n text-align: center !important;\n border: none !important;\n line-height: 150% !important;\n font-size: 1rem !important;\n font-weight: 700 !important;\n padding: 1rem 1.5rem !important;\n margin: 0.25rem !important;\n border-radius: 7px !important;\n cursor: pointer;\n}\n\n.rc-go-button {\n background: #ff9a00aa !important;\n color: #fff !important;\n\n &:hover {\n background: #ff9a00 !important;\n }\n\n &:active {\n background: #d68200 !important;\n }\n}\n\n.rc-cancel-button,\n.rc-custom-button {\n background: #ffffffee !important;\n color: #333 !important;\n\n &:hover {\n background: #ddd !important;\n }\n\n &:active {\n background: #aaa !important;\n color: #000 !important;\n }\n}\n\n.rc-button:disabled {\n background: #ddd !important;\n color: #999 !important;\n cursor: default !important;\n}\n"],sourceRoot:""}]);const o=a},290:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,".my__swal2__container .swal2-select{border:2px solid #aaa!important;border-radius:5px!important;font-family:inherit!important;font-size:1.2rem!important;margin:auto 1.6rem!important;outline:none!important;padding-top:.5rem!important}.rc-form{font-family:inherit;font-size:2rem;pointer-events:auto!important}.rc-form .rc-form-inputs{display:flex;justify-content:space-between!important;margin:1rem 0}.rc-form .rc-form-inputs .rc-form-input,.rc-form .rc-form-inputs span{flex-grow:1;font-family:inherit;font-size:inherit;padding:.5rem}.rc-form .rc-form-inputs span{font-weight:700}.rc-form .rc-form-input{border:2px solid #aaa;border-radius:5px;outline:none;width:min(100%,10rem)}.rc-form .rc-form-input.rc-input-error{border-color:#ac0d0d!important;color:#ac0d0d!important}.rc-form .rc-form-input+.rc-form-input{margin-left:.5rem}.arrow-two-sided-svg{position:fixed}.arrow-two-sided-svg .arrow-two-sided{fill:#ff9a00}.arrow-two-sided-horizontal{bottom:10%;left:0;right:0;width:100%}.arrow-two-sided-vertical{bottom:0;height:100%;right:5%;top:0}","",{version:3,sources:["webpack://./src/css/check.scss"],names:[],mappings:"AAAA,oCAME,+BAAA,CADA,2BAAA,CADA,6BAAA,CAHA,0BAAA,CACA,4BAAA,CAKA,sBAAA,CAJA,2BAIA,CAOF,SAEE,mBAAA,CADA,cAAA,CAEA,6BAAA,CAEA,yBACE,YAAA,CACA,uCAAA,CACA,aAAA,CAEA,sEAEE,WAAA,CAEA,mBAAA,CACA,iBAAA,CAFA,aAEA,CAGF,8BACE,eAAA,CAIJ,wBACE,qBAAA,CAEA,iBAAA,CADA,YAAA,CAEA,qBAAA,CAEA,uCACE,8BAAA,CACA,uBAAA,CAIJ,uCACE,iBAAA,CAIJ,qBACE,cAAA,CAEA,sCACE,YAAA,CAIJ,4BAEE,UAAA,CACA,MAAA,CACA,OAAA,CAHA,UAGA,CAGF,0BAIE,QAAA,CAHA,WAAA,CACA,QAAA,CACA,KACA",sourcesContent:[".my__swal2__container .swal2-select {\n font-size: 1.2rem !important;\n margin: auto 1.6rem !important;\n padding-top: 0.5rem !important;\n font-family: inherit !important;\n border-radius: 5px !important;\n border: 2px solid #aaa !important;\n outline: none !important;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Measure Input */\n/* -------------------------------------------------------------------------- */\n\n.rc-form {\n font-size: 2rem;\n font-family: inherit;\n pointer-events: auto !important;\n\n .rc-form-inputs {\n display: flex;\n justify-content: space-between !important;\n margin: 1rem 0;\n\n .rc-form-input,\n span {\n flex-grow: 1;\n padding: 0.5rem;\n font-family: inherit;\n font-size: inherit;\n }\n\n span {\n font-weight: 700;\n }\n }\n\n .rc-form-input {\n border: 2px solid #aaa;\n outline: none;\n border-radius: 5px;\n width: min(100%, 10rem);\n\n &.rc-input-error {\n border-color: #ac0d0d !important;\n color: #ac0d0d !important;\n }\n }\n\n .rc-form-input + .rc-form-input {\n margin-left: 0.5rem;\n }\n}\n\n.arrow-two-sided-svg {\n position: fixed;\n\n .arrow-two-sided {\n fill: #ff9a00;\n }\n}\n\n.arrow-two-sided-horizontal {\n width: 100%;\n bottom: 10%;\n left: 0;\n right: 0;\n}\n\n.arrow-two-sided-vertical {\n height: 100%;\n right: 5%;\n top: 0;\n bottom: 0;\n}\n"],sourceRoot:""}]);const o=a},2945:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,"#eye-side{font-weight:700}#blind-spot-canvas{bottom:0;display:block;left:0;margin:0;padding:0;position:fixed;right:0;top:0;z-index:-1}#blind-spot-instruction{max-width:unset!important}@media(min-width:641px){#blind-spot-instruction{font-size:1.1rem!important;width:65%!important}}@media(max-width:640px){#blind-spot-instruction{font-size:.9rem!important;width:90%!important}}#pip-video{display:none}#video-canvas{border-radius:6px;bottom:1rem;display:block;left:1rem;position:absolute;z-index:1000}#rc-ruler{cursor:pointer;max-height:120px;overflow:hidden;position:fixed;-webkit-user-select:none;-moz-user-select:none;user-select:none}#rc-ruler-scales{left:30px;pointer-events:none;position:absolute;top:0;z-index:1}#rc-ruler-scales #size-arrow{opacity:.5;transform:rotate(90deg) translateY(calc(50% + 3px))}#rc-ruler-scales .rc-ruler-scale-text{color:rgba(44,46,67,.667);font-weight:700;margin:0!important;padding:0;position:absolute;top:32px!important;transform:translate(-50%)!important}#rc-ruler-scales .rc-ruler-scale{display:block;position:absolute;top:0;transform:translate(-1px);width:2px;z-index:2}#rc-ruler-scales .rc-ruler-major{background-color:rgba(44,46,67,.933);height:30px}#rc-ruler-scales .rc-ruler-secondary{background-color:rgba(89,82,96,.867);height:24px}#rc-ruler-scales .rc-ruler-minor{background-color:rgba(89,82,96,.4);height:16px}.hide-nudger .calibration-nudger{display:none!important;opacity:0!important}.calibration-nudger,.gaze-nudger{bottom:0;box-sizing:border-box;height:100%;left:0;margin:0;overflow:hidden;position:fixed;right:0;scrollbar-width:none;text-align:center;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:999999999}.calibration-nudger *,.gaze-nudger *{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}#rc-distance-correct{margin:0 auto auto;overflow-wrap:break-word;padding:2rem;text-align:center;width:100%}#rc-distance-correct #rc-distance-correct-instruction{font-size:7rem;font-weight:700;line-height:100%;margin:0 auto 2rem}#rc-distance-correct #rc-distance-correct-guide{font-size:3rem;font-weight:500;line-height:200%}#rc-distance-correct #rc-distance-correct-guide .rc-distance-num{border-radius:7px!important;font-family:monospace!important;font-size:9rem;font-weight:700;padding:.5rem;vertical-align:middle}","",{version:3,sources:["webpack://./src/css/distance.scss"],names:[],mappings:"AAAA,UACE,eAAA,CAGF,mBAME,QAAA,CAJA,aAAA,CAGA,MAAA,CAIA,QAAA,CADA,SAAA,CAPA,cAAA,CAMA,OAAA,CAHA,KAAA,CADA,UAMA,CAGF,wBAEE,yBAAA,CAGF,wBACE,wBAEE,0BAAA,CADA,mBACA,CAAA,CAIJ,wBACE,wBAEE,yBAAA,CADA,mBACA,CAAA,CAIJ,WACE,YAAA,CAGF,cAME,iBAAA,CAFA,WAAA,CADA,aAAA,CAEA,SAAA,CAHA,iBAAA,CADA,YAKA,CAKF,UAKE,cAAA,CAHA,gBAAA,CACA,eAAA,CAFA,cAAA,CAKA,wBAAA,CAAA,qBAAA,CAAA,gBAAA,CAGF,iBAGE,SAAA,CAEA,mBAAA,CAJA,iBAAA,CACA,KAAA,CAEA,SACA,CAEA,6BAEE,UAAA,CADA,mDACA,CAGF,sCAKE,yBAAA,CACA,eAAA,CAHA,kBAAA,CACA,SAAA,CAHA,iBAAA,CACA,kBAAA,CAKA,mCAAA,CAGF,iCAEE,aAAA,CADA,iBAAA,CAEA,KAAA,CAEA,yBAAA,CADA,SAAA,CAEA,SAAA,CAGF,iCACE,oCAAA,CACA,WAAA,CAGF,qCACE,oCAAA,CACA,WAAA,CAGF,iCACE,kCAAA,CACA,WAAA,CAOF,iCACE,sBAAA,CACA,mBAAA,CAIJ,iCASE,QAAA,CAIA,qBAAA,CARA,WAAA,CAEA,MAAA,CAGA,QAAA,CACA,eAAA,CARA,cAAA,CAKA,OAAA,CAOA,oBAAA,CADA,iBAAA,CARA,KAAA,CAMA,wBAAA,CAAA,qBAAA,CAAA,gBAAA,CARA,UAAA,CAFA,iBAaA,CAEA,qCACE,wHAAA,CAKJ,qBAGE,kBAAA,CAEA,wBAAA,CADA,YAAA,CAHA,iBAAA,CACA,UAGA,CAEA,sDAEE,cAAA,CADA,eAAA,CAGA,gBAAA,CADA,kBACA,CAGF,gDAEE,cAAA,CADA,eAAA,CAEA,gBAAA,CAEA,iEAEE,2BAAA,CAEA,+BAAA,CAEA,cAAA,CAHA,eAAA,CAFA,aAAA,CAIA,qBACA",sourcesContent:["#eye-side {\n font-weight: bold;\n}\n\n#blind-spot-canvas {\n position: fixed;\n display: block;\n z-index: -1;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n padding: 0;\n margin: 0;\n}\n\n#blind-spot-instruction {\n // max-width: min(32rem, 100%) !important;\n max-width: unset !important;\n}\n\n@media (min-width: 641px) {\n #blind-spot-instruction {\n width: 65% !important;\n font-size: 1.1rem !important;\n }\n}\n\n@media (max-width: 640px) {\n #blind-spot-instruction {\n width: 90% !important;\n font-size: 0.9rem !important;\n }\n}\n\n#pip-video {\n display: none;\n}\n\n#video-canvas {\n z-index: 1000;\n position: absolute;\n display: block;\n bottom: 1rem;\n left: 1rem;\n border-radius: 6px;\n}\n\n/* ----------------------------------- PD ----------------------------------- */\n\n#rc-ruler {\n position: fixed;\n max-height: 120px;\n overflow: hidden;\n\n cursor: pointer;\n user-select: none;\n}\n\n#rc-ruler-scales {\n position: absolute;\n top: 0;\n left: 30px;\n z-index: 1;\n pointer-events: none;\n\n #size-arrow {\n transform: rotate(90deg) translate(0, calc(50% + 3px));\n opacity: 0.5;\n }\n\n .rc-ruler-scale-text {\n position: absolute;\n top: 32px !important;\n margin: 0 !important;\n padding: 0;\n color: #2c2e43aa;\n font-weight: 700;\n transform: translate(-50%, 0) !important;\n }\n\n .rc-ruler-scale {\n position: absolute;\n display: block;\n top: 0;\n width: 2px;\n transform: translate(-1px, 0);\n z-index: 2;\n }\n\n .rc-ruler-major {\n background-color: #2c2e43ee;\n height: 30px;\n }\n\n .rc-ruler-secondary {\n background-color: #595260dd;\n height: 24px;\n }\n\n .rc-ruler-minor {\n background-color: #59526066;\n height: 16px;\n }\n}\n\n/* ---------------------------------- Check --------------------------------- */\n\n.hide-nudger {\n .calibration-nudger {\n display: none !important;\n opacity: 0 !important;\n }\n}\n\n.calibration-nudger,\n.gaze-nudger {\n z-index: 999999999;\n position: fixed;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n margin: 0;\n overflow: hidden;\n user-select: none;\n box-sizing: border-box;\n text-align: center;\n scrollbar-width: none;\n\n * {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n }\n}\n\n#rc-distance-correct {\n text-align: center;\n width: 100%;\n margin: 0 auto auto auto;\n padding: 2rem;\n overflow-wrap: break-word;\n\n #rc-distance-correct-instruction {\n font-weight: 700;\n font-size: 7rem;\n margin: 0 auto 2rem auto;\n line-height: 100%;\n }\n\n #rc-distance-correct-guide {\n font-weight: 500;\n font-size: 3rem;\n line-height: 200%;\n\n .rc-distance-num {\n padding: 0.5rem;\n border-radius: 7px !important;\n font-weight: 700;\n font-family: monospace !important;\n vertical-align: middle;\n font-size: 9rem;\n }\n\n // .rc-distance-now {\n // border: 2px solid #ff9a00;\n // background-color: #ff9a0066;\n // }\n\n // .rc-distance-desired {\n // border: 2px solid #3490de;\n // background-color: #3490de66;\n // }\n }\n}\n"],sourceRoot:""}]);const o=a},4636:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,":root{--rc-panel-theme-color:#3490de;--rc-panel-darken-color:#185b94;--rc-panel-theme-color-semi:#3490de66;--rc-panel-darken-color-semi:#185b9488}.rc-panel{background-color:var(--rc-panel-theme-color);border-radius:10px!important;box-shadow:var(--rc-panel-darken-color-semi) 0 50px 100px -20px,var(--rc-panel-theme-color-semi) 0 30px 60px -30px!important;display:block;margin-left:auto!important;margin-right:auto!important;max-width:720px!important;overflow:hidden;padding:.75rem!important;position:relative;width:100%}.rc-panel *{box-sizing:border-box;outline:none;text-rendering:optimizeLegibility;vertical-align:baseline;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-kerning:normal;scrollbar-width:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.rc-panel .rc-panel-title{color:#fff!important;font-size:2rem!important;font-weight:600!important;margin:1rem 1rem 0!important}.rc-panel .rc-panel-description{color:hsla(0,0%,100%,.8)!important;font-size:1rem!important;font-weight:500!important;margin:.5rem 1rem 0!important}.rc-panel #rc-panel-language-parent{display:flex;flex-direction:row-reverse;margin:0;padding:0}.rc-panel #rc-panel-language-parent #rc-panel-lang-picker{background-color:hsla(0,0%,100%,.8)!important;border:none!important;border-radius:5px!important;display:block;font-size:1rem!important;font-weight:500!important;margin:.25rem .25rem 0!important;outline:none!important;padding:.25rem!important}.rc-panel .rc-panel-steps{margin:-3rem 0 0!important;padding-top:4rem!important}.rc-panel .rc-panel-steps.rc-panel-steps-l,.rc-panel .rc-panel-steps.rc-panel-steps-s{display:flex!important;justify-content:space-between!important}.rc-panel .rc-panel-steps.rc-panel-steps-l .rc-panel-step,.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step{background:hsla(0,0%,100%,.8);flex-grow:1!important;margin:.25rem!important;padding:0!important;position:relative;text-align:center;transition:background-color .2s}.rc-panel .rc-panel-steps.rc-panel-steps-l .rc-panel-step .rc-panel-step-use,.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step .rc-panel-step-use{font-size:1rem!important;line-height:170%!important;margin:0!important;padding:0 .3rem!important;position:absolute;right:0;top:0}.rc-panel .rc-panel-steps.rc-panel-steps-l .rc-panel-step .rc-panel-step-use svg,.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step .rc-panel-step-use svg{height:1rem;width:1rem;fill:var(--rc-panel-darken-color)}.rc-panel .rc-panel-steps.rc-panel-steps-l .rc-panel-step .rc-panel-step-name,.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step .rc-panel-step-name{color:var(--rc-panel-darken-color);font-size:1rem!important;font-weight:700!important;line-height:150%!important;white-space:nowrap}.rc-panel .rc-panel-steps.rc-panel-steps-l{flex-flow:row nowrap;max-width:100%;overflow-x:scroll}.rc-panel .rc-panel-steps.rc-panel-steps-l .rc-panel-step-name{margin:1.5rem .5rem!important}.rc-panel .rc-panel-steps.rc-panel-steps-l .rc-panel-step-use-tip{bottom:110%!important;display:flex!important;left:50%!important;position:absolute!important;transform:translate(-50%)!important}.rc-panel .rc-panel-steps.rc-panel-steps-s{flex-flow:column nowrap;overflow-x:hidden}.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step{overflow-x:hidden;text-align:left;white-space:nowrap}.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step-name{margin:1.2rem .75rem 1.2rem 1.5rem!important}.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step-use-tip{display:inline-flex!important;position:relative!important}.rc-panel .rc-panel-steps .rc-panel-step{border:none!important;border-radius:7px!important}.rc-panel .rc-panel-steps .rc-panel-step .rc-panel-step-name{display:inline-block!important;position:relative!important}.rc-panel .rc-panel-steps .rc-panel-step-use-tip{align-items:center!important;background-color:rgba(255,154,0,.933)!important;border:none!important;border-radius:7px!important;color:#fff!important;font-size:.75rem!important;font-weight:500!important;justify-content:center!important;line-height:100%!important;margin:0!important;opacity:0;padding:.7rem .5rem!important;pointer-events:none;text-align:center!important;transition:opacity .2s;width:-moz-max-content!important;width:max-content!important;z-index:10!important}.rc-panel .rc-panel-steps .rc-panel-step-use-tip svg{height:.75rem;width:.75rem;fill:#fff}.rc-panel .rc-panel-steps .rc-panel-step-use-tip svg:last-of-type{margin-right:5px}.rc-panel .rc-panel-steps .rc-panel-step-todo:focus,.rc-panel .rc-panel-steps .rc-panel-step-todo:hover{background-color:#fff}.rc-panel .rc-panel-steps .rc-panel-step-todo:focus .rc-panel-step-use-tip,.rc-panel .rc-panel-steps .rc-panel-step-todo:hover .rc-panel-step-use-tip{opacity:1!important}.rc-panel .rc-panel-steps .rc-panel-step-todo:active{background-color:hsla(0,0%,93%,.8)}.rc-panel .rc-panel-steps .rc-panel-step-finished{background-color:hsla(0,0%,73%,.8)!important}.rc-panel .rc-panel-steps .rc-panel-step-inactive{opacity:.6;pointer-events:none}.rc-panel .rc-panel-steps .rc-panel-step-active{cursor:pointer;opacity:1}.rc-panel ::-webkit-scrollbar{display:none;width:0}.rc-panel .rc-panel-debug-control{background-color:hsla(0,0%,100%,.8);border:3px solid #e00;border-radius:7px;margin:1rem 0 0;overflow:hidden;padding:.5rem}.rc-panel .rc-panel-debug-control *{color:#ac0d0d}.rc-panel .rc-panel-debug-control h2,.rc-panel .rc-panel-debug-control h3,.rc-panel .rc-panel-debug-control p{margin:0!important}.rc-panel .rc-panel-debug-control h2{font-size:1.2rem!important;font-weight:700!important}.rc-panel .rc-panel-debug-control h3{font-size:.9rem;font-variant:small-caps;font-weight:500;padding-bottom:.3rem;padding-top:.5rem}.rc-panel .rc-panel-debug-control .rc-panel-debug-bold-text{font-size:1rem!important;font-weight:700}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-next{background-color:#e00;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:.9rem!important;margin:1rem 0 0;padding:.5rem 1.2rem!important}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-next:hover{background-color:#ac0d0d}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-task-row{display:inline-flex;justify-content:flex-start!important;width:100%}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-task-row .value-element{flex-grow:1;overflow-x:hidden;padding:0 .1rem;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-task-row .value-element:first-of-type{padding-left:0}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-task-row .value-element:last-of-type{padding-right:0}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-task-row .value-element p{color:#ac0d0d;font-size:.65rem!important;line-height:150%!important;padding-left:1px!important}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-task-row .value-element input{background-color:hsla(0,0%,100%,.8);border:1px solid #e99!important;border-radius:3px!important;font-size:.8rem;margin:0!important;padding:.3rem!important;pointer-events:auto;-webkit-user-select:auto;-moz-user-select:auto;user-select:auto;width:100%}","",{version:3,sources:["webpack://./src/css/panel.scss"],names:[],mappings:"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",sourcesContent:[":root {\n --rc-panel-theme-color: #3490de;\n --rc-panel-darken-color: #185b94;\n --rc-panel-theme-color-semi: #3490de66;\n --rc-panel-darken-color-semi: #185b9488;\n}\n\n.rc-panel {\n position: relative;\n display: block;\n margin-left: auto !important;\n margin-right: auto !important;\n background-color: var(--rc-panel-theme-color);\n width: 100%;\n max-width: 720px !important;\n padding: 0.75rem !important;\n border-radius: 10px !important;\n box-shadow:\n var(--rc-panel-darken-color-semi) 0px 50px 100px -20px,\n var(--rc-panel-theme-color-semi) 0px 30px 60px -30px !important;\n overflow: hidden;\n\n * {\n outline: none;\n vertical-align: baseline;\n box-sizing: border-box;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: auto;\n -moz-osx-font-smoothing: grayscale;\n font-kerning: normal;\n user-select: none;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n scrollbar-width: none;\n }\n\n .rc-panel-title {\n color: #fff !important;\n margin: 1rem 1rem 0 1rem !important;\n font-size: 2rem !important;\n font-weight: 600 !important;\n }\n\n .rc-panel-description {\n color: #ffffffcc !important;\n margin: 0.5rem 1rem 0 1rem !important;\n font-size: 1rem !important;\n font-weight: 500 !important;\n }\n\n #rc-panel-language-parent {\n display: flex;\n flex-direction: row-reverse;\n margin: 0;\n padding: 0;\n\n #rc-panel-lang-picker {\n display: block;\n background-color: #ffffffcc !important;\n border: none !important;\n outline: none !important;\n margin: 0.25rem 0.25rem 0 0.25rem !important;\n padding: 0.25rem !important;\n font-size: 1rem !important;\n font-weight: 500 !important;\n border-radius: 5px !important;\n }\n }\n\n .rc-panel-steps {\n margin: -3rem 0 0 0 !important;\n padding-top: 4rem !important;\n\n &.rc-panel-steps-l,\n &.rc-panel-steps-s {\n display: flex !important;\n justify-content: space-between !important;\n\n .rc-panel-step {\n position: relative;\n flex-grow: 1 !important;\n margin: 0.25rem !important;\n text-align: center;\n padding: 0 !important;\n background: #ffffffcc;\n transition: background-color 0.2s;\n\n // &:focus {\n // outline: 3px solid black !important;\n // }\n\n .rc-panel-step-use {\n position: absolute;\n right: 0;\n top: 0;\n padding: 0 0.3rem !important;\n margin: 0 !important;\n font-size: 1rem !important;\n line-height: 170% !important;\n\n svg {\n width: 1rem;\n height: 1rem;\n fill: var(--rc-panel-darken-color);\n }\n }\n\n .rc-panel-step-name {\n line-height: 150% !important;\n font-size: 1rem !important;\n font-weight: 700 !important;\n color: var(--rc-panel-darken-color);\n white-space: nowrap;\n }\n }\n }\n\n &.rc-panel-steps-l {\n flex-flow: row nowrap;\n max-width: 100%;\n overflow-x: scroll;\n\n .rc-panel-step-name {\n margin: 1.5rem 0.5rem !important;\n }\n\n .rc-panel-step-use-tip {\n position: absolute !important;\n display: flex !important;\n bottom: 110% !important;\n left: 50% !important;\n transform: translate(-50%, 0) !important;\n }\n }\n\n &.rc-panel-steps-s {\n flex-flow: column nowrap;\n overflow-x: hidden;\n\n .rc-panel-step {\n text-align: left;\n overflow-x: hidden;\n white-space: nowrap;\n }\n\n .rc-panel-step-name {\n margin: 1.2rem 0.75rem 1.2rem 1.5rem !important;\n }\n\n .rc-panel-step-use-tip {\n position: relative !important;\n display: inline-flex !important;\n }\n }\n\n .rc-panel-step {\n border-radius: 7px !important;\n border: none !important;\n\n .rc-panel-step-name {\n position: relative !important;\n display: inline-block !important;\n }\n }\n\n // .rc-panel-next-button {\n // .rc-panel-step-name::after {\n // content: ' →' !important;\n // }\n // }\n\n .rc-panel-step-use-tip {\n // visibility: hidden;\n // backdrop-filter: blur(2px);\n // box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 8px !important;\n opacity: 0;\n width: max-content !important;\n background-color: #ff9a00ee !important;\n color: #fff !important;\n text-align: center !important;\n justify-content: center !important;\n align-items: center !important;\n font-size: 0.75rem !important;\n font-weight: 500 !important;\n border-radius: 7px !important;\n border: none !important;\n padding: 0.7rem 0.5rem !important;\n margin: 0 !important;\n z-index: 10 !important;\n line-height: 100% !important;\n transition: opacity 0.2s;\n pointer-events: none;\n\n svg {\n width: 0.75rem;\n height: 0.75rem;\n fill: #fff;\n }\n\n svg:last-of-type {\n margin-right: 5px;\n }\n }\n\n .rc-panel-step-todo {\n &:hover,\n &:focus {\n background-color: #fff;\n\n .rc-panel-step-use-tip {\n // visibility: visible !important;\n opacity: 1 !important;\n }\n }\n\n &:active {\n background-color: #eeeeeecc;\n }\n }\n\n .rc-panel-step-finished {\n background-color: #bbbbbbcc !important;\n }\n\n .rc-panel-step-inactive {\n opacity: 0.6;\n pointer-events: none;\n }\n\n .rc-panel-step-active {\n opacity: 1;\n cursor: pointer;\n }\n }\n\n ::-webkit-scrollbar {\n width: 0;\n display: none;\n }\n\n /* ---------------------------------- DEBUG --------------------------------- */\n\n .rc-panel-debug-control {\n margin: 0;\n margin-top: 1rem;\n padding: 0.5rem;\n border: 3px solid #ee0000;\n border-radius: 7px;\n background-color: #ffffffcc;\n overflow: hidden;\n\n * {\n color: #ac0d0d;\n }\n\n h2,\n h3,\n p {\n margin: 0 !important;\n }\n\n h2 {\n font-weight: 700 !important;\n font-size: 1.2rem !important;\n }\n\n h3 {\n font-variant: small-caps;\n font-size: 0.9rem;\n font-weight: 500;\n padding-top: 0.5rem;\n padding-bottom: 0.3rem;\n }\n\n .rc-panel-debug-bold-text {\n font-size: 1rem !important;\n font-weight: bold;\n }\n\n .rc-panel-debug-control-next {\n font-size: 0.9rem !important;\n margin: 1rem 0 0 0;\n color: #fff;\n background-color: #ee0000;\n padding: 0.5rem 1.2rem !important;\n border-radius: 5px;\n border: none;\n cursor: pointer;\n\n &:hover {\n background-color: #ac0d0d;\n }\n }\n\n .rc-panel-debug-control-task-row {\n display: inline-flex;\n justify-content: flex-start !important;\n width: 100%;\n\n .value-element {\n flex-grow: 1;\n padding: 0 0.1rem;\n overflow-x: hidden;\n white-space: nowrap;\n // max-width: 10rem;\n user-select: none;\n pointer-events: none;\n\n &:first-of-type {\n padding-left: 0;\n }\n\n &:last-of-type {\n padding-right: 0;\n }\n\n p {\n padding-left: 1px !important;\n line-height: 150% !important;\n font-size: 0.65rem !important;\n color: #ac0d0d;\n }\n\n input {\n margin: 0 !important;\n padding: 0.3rem !important;\n font-size: 0.8rem;\n width: 100%;\n border: 1px solid #ee9999 !important;\n border-radius: 3px !important;\n background-color: #ffffffcc;\n user-select: auto;\n pointer-events: auto;\n }\n }\n }\n }\n}\n"],sourceRoot:""}]);const o=a},5151:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,"#size-card,#size-usba,#size-usbc{display:block;height:auto;left:2rem;position:absolute;z-index:2}#size-arrow{display:block;height:auto;position:absolute;width:70px;z-index:1}#size-arrow-fill{transition:fill .3s}.minor{transition:opacity .25s}.rc-slider:active~.size-obj .minor{opacity:0}#matching-obj{background-color:#fff;border:none;border-radius:7px;font-size:1.1rem;font-weight:600;margin-bottom:unset;margin-left:.3rem;margin-right:.3rem;margin-top:unset;padding-bottom:unset;padding-left:.3rem;padding-right:.3rem;padding-top:unset;pointer-events:auto!important;vertical-align:middle}@media(min-width:481px){.rc-size-obj-selection{display:inline-flex}}@media(max-width:480px){.rc-size-obj-selection{display:inline-block}}","",{version:3,sources:["webpack://./src/css/screenSize.scss"],names:[],mappings:"AAAA,iCAIE,aAAA,CAGA,WAAA,CADA,SAAA,CAHA,iBAAA,CAKA,SAAA,CAGF,YAEE,aAAA,CAGA,WAAA,CAJA,iBAAA,CAGA,UAAA,CAEA,SAAA,CAGF,iBACE,mBAAA,CAGF,OACE,uBAAA,CAIF,mCACE,SAAA,CAKF,cAGE,qBAAA,CADA,WAAA,CADA,iBAAA,CAMA,gBAAA,CADA,eAAA,CADA,mBAAA,CAAA,iBAAA,CAAA,kBAAA,CAAA,gBAAA,CADA,oBAAA,CAAA,kBAAA,CAAA,mBAAA,CAAA,iBAAA,CAKA,6BAAA,CADA,qBACA,CAGF,wBACE,uBACE,mBAAA,CAAA,CAIJ,wBACE,uBACE,oBAAA,CAAA",sourcesContent:["#size-card,\n#size-usba,\n#size-usbc {\n position: absolute;\n display: block;\n /* top: calc(max(45%, 200px) + 50px); */\n left: 2rem;\n height: auto;\n z-index: 2;\n}\n\n#size-arrow {\n position: absolute;\n display: block;\n /* display: none; */\n width: 70px;\n height: auto;\n z-index: 1;\n}\n\n#size-arrow-fill {\n transition: fill 0.3s;\n}\n\n.minor {\n transition: opacity 0.25s;\n}\n\n/* .rc-slider:hover ~ .size-obj .minor, */\n.rc-slider:active ~ .size-obj .minor {\n opacity: 0;\n}\n\n/* -------------------------------------------------------------------------- */\n\n#matching-obj {\n border-radius: 7px;\n border: none;\n background-color: #fff;\n padding: unset 0.3rem;\n margin: unset 0.3rem;\n font-weight: 600;\n font-size: 1.1rem;\n vertical-align: middle;\n pointer-events: auto !important;\n}\n\n@media (min-width: 481px) {\n .rc-size-obj-selection {\n display: inline-flex;\n }\n}\n\n@media (max-width: 480px) {\n .rc-size-obj-selection {\n display: inline-block;\n }\n}\n"],sourceRoot:""}]);const o=a},5319:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,".rc-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(90deg,#ffc772,#ffc772 60%,#fff 0);border-radius:5px;cursor:grab;direction:ltr!important;display:block;height:10px;left:2rem;opacity:1;position:absolute;transition:opacity .3s;width:calc(100% - 4rem);z-index:10}.rc-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#ff9a00;border:1px solid #cc7a00;border-radius:15px;box-shadow:0 0 12px 0 rgba(136,82,0,.2);cursor:inherit;height:30px;width:30px}.rc-slider::-moz-range-thumb{-moz-appearance:none;appearance:none;background:#ff9a00;border:1px solid #cc7a00;border-radius:15px;box-shadow:0 0 12px 0 rgba(136,82,0,.2);cursor:inherit;height:30px;width:30px}.rc-slider::-ms-thumb{appearance:none;background:#ff9a00;border:1px solid #cc7a00;border-radius:15px;box-shadow:0 0 12px 0 rgba(136,82,0,.2);cursor:inherit;height:30px;width:30px}","",{version:3,sources:["webpack://./src/css/slider.scss"],names:[],mappings:"AAAA,WAGE,uBAAA,CAAA,oBAAA,CAAA,eAAA,CAGA,4DAAA,CAIA,iBAAA,CAEA,WAAA,CAEA,uBAAA,CAZA,aAAA,CAGA,WAAA,CAIA,SAAA,CAFA,SAAA,CANA,iBAAA,CAYA,sBAAA,CATA,uBAAA,CAOA,UAGA,CAkBF,iCAVE,uBAAA,CAAA,eAAA,CAKA,kBAAA,CADA,wBAAA,CADA,kBAAA,CAGA,uCAAA,CACA,cAAA,CALA,WAAA,CADA,UAMA,CAOF,6BAdE,oBAAA,CAAA,eAAA,CAKA,kBAAA,CADA,wBAAA,CADA,kBAAA,CAGA,uCAAA,CACA,cAAA,CALA,WAAA,CADA,UAMA,CAWF,sBAlBE,eAAA,CAKA,kBAAA,CADA,wBAAA,CADA,kBAAA,CAGA,uCAAA,CACA,cAAA,CALA,WAAA,CADA,UAMA",sourcesContent:[".rc-slider {\n position: absolute;\n display: block;\n appearance: none;\n width: calc(100% - 4rem);\n height: 10px;\n background: linear-gradient(90deg, #ffc772, #ffc772 60%, #fff 60%);\n opacity: 1;\n /* top: max(45%, 200px); */\n left: 2rem;\n border-radius: 5px;\n z-index: 10;\n cursor: grab;\n transition: opacity 0.3s;\n direction: ltr !important;\n}\n\n// .rc-slider:hover {\n// opacity: 1;\n// }\n\n@mixin thumb-style {\n appearance: none;\n width: 30px;\n height: 30px;\n border-radius: 15px;\n border: 1px solid #cc7a00;\n background: #ff9a00;\n box-shadow: 0 0 12px 0 #88520033;\n cursor: inherit;\n}\n\n.rc-slider::-webkit-slider-thumb {\n @include thumb-style;\n}\n\n.rc-slider::-moz-range-thumb {\n @include thumb-style;\n}\n\n.rc-slider::-ms-thumb {\n @include thumb-style;\n}\n"],sourceRoot:""}]);const o=a},4889:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,"#webgazerVideoContainer .webgazer-videoinput-select{background:hsla(0,0%,100%,.8)!important;border:none!important;border-radius:.6rem!important;color:#666;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:.6rem;left:0;line-height:100%;margin:.3rem;outline:none!important;padding:.2rem .3rem;position:absolute;top:0;z-index:9}","",{version:3,sources:["webpack://./src/css/video.scss"],names:[],mappings:"AACE,oDAcE,uCAAA,CAHA,qBAAA,CAEA,6BAAA,CAEA,UAAA,CARA,wHAAA,CAEA,eAAA,CALA,MAAA,CAMA,gBAAA,CALA,YAAA,CAOA,sBAAA,CANA,mBAAA,CAJA,iBAAA,CACA,KAAA,CAFA,SAcA",sourcesContent:["#webgazerVideoContainer {\n .webgazer-videoinput-select {\n z-index: 9;\n position: absolute;\n top: 0;\n left: 0;\n margin: 0.3rem;\n padding: 0.2rem 0.3rem;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n font-size: 0.6rem;\n line-height: 100%;\n border: none !important;\n outline: none !important;\n border-radius: 0.6rem !important;\n background: #ffffffcc !important;\n color: #666;\n }\n}\n"],sourceRoot:""}]);const o=a},9057:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,"#gaze-system-instruction{top:65%;white-space:pre}.gaze-nudge-instruction{top:65%}.gaze-calibration-dot{background:#ff005c80;cursor:auto;display:block;position:fixed!important;transition-timing-function:ease-in-out;transition:left .5s,right .5s,top .5s,bottom .5s;z-index:999999998}.gaze-calibration-dot-click{background:#ff005c;cursor:pointer;margin:auto;position:absolute;text-align:center;vertical-align:middle}.gaze-calibration-dot-click:active{opacity:.3}.gaze-calibration-dot-text{color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:.9rem;font-weight:500;vertical-align:text-bottom}#webgazerGazeDot,#webgazerGazeDot-tempClone,.gaze-calibration-dot-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}#webgazerGazeDot,#webgazerGazeDot-tempClone{background-color:#111d5e;border-radius:5px;opacity:.5;position:fixed;z-index:9999999999}#webgazerVideoContainer{border-radius:5px;display:block;overflow:hidden;position:fixed!important;transform-origin:bottom left;z-index:999999997}#webgazerFaceFeedbackBox,#webgazerVideoContainer,#webgazerVideoContainer *{-webkit-user-select:none;-moz-user-select:none;user-select:none}#webgazerFaceFeedbackBox{border-radius:10px;box-sizing:border-box;opacity:.6;pointer-events:none}.rc-crosshair,.rc-gaze-nudger-arrows{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none}.rc-crosshair{border-radius:50%;cursor:pointer;display:block;height:40px;position:fixed!important;transition-timing-function:ease-in-out;transition:left .5s,right .5s,top .5s,bottom .5s;width:40px;z-index:999999999}.rc-crosshair-component{background-color:#000;left:50%;margin:auto;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);-webkit-user-select:none;-moz-user-select:none;user-select:none}","",{version:3,sources:["webpack://./src/css/gaze.css"],names:[],mappings:"AAAA,yBACE,OAAQ,CACR,eACF,CAEA,wBACE,OACF,CAEA,sBACE,oBAAqB,CAGrB,WAAe,CADf,aAAc,CADd,wBAA0B,CAI1B,sCAAuC,CACvC,gDAIa,CANb,iBAOF,CAEA,4BAEE,kBAAmB,CAEnB,cAAe,CADf,WAAY,CAFZ,iBAAkB,CAIlB,iBAAkB,CAClB,qBACF,CAEA,mCACE,UACF,CAEA,2BAIE,UAAW,CAHX,wHAC8D,CAG9D,eAAiB,CAFjB,eAAgB,CAGhB,0BAGF,CAIA,uEALE,mBAAoB,CADpB,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAeF,CATA,4CAKE,wBAAyB,CACzB,iBAAkB,CAFlB,UAAY,CAFZ,cAAe,CACf,kBAMF,CAEA,wBAKE,iBAAkB,CAHlB,aAAc,CAKd,eAAgB,CAJhB,wBAA0B,CAC1B,4BAA6B,CAH7B,iBASF,CAMA,2EAPE,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAcF,CAPA,yBAGE,kBAAmB,CADnB,qBAAsB,CAEtB,UAAY,CACZ,mBAEF,CAIA,qCAEE,iBAAkB,CAIlB,wBAAiB,CAAjB,qBAAiB,CAAjB,gBACF,CAEA,cAcE,iBAAkB,CARlB,cAAe,CAJf,aAAc,CAEd,WAAY,CAHZ,wBAA0B,CAM1B,sCAAuC,CACvC,gDAIa,CATb,UAAW,CAEX,iBAUF,CAEA,wBAQE,qBAAsB,CALtB,QAAS,CAET,WAAY,CACZ,mBAAoB,CALpB,iBAAkB,CAClB,OAAQ,CAER,8BAAgC,CAGhC,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAEF",sourcesContent:["#gaze-system-instruction {\n top: 65%;\n white-space: pre;\n}\n\n.gaze-nudge-instruction {\n top: 65%;\n}\n\n.gaze-calibration-dot {\n background: #ff005c80;\n position: fixed !important;\n display: block;\n cursor: initial;\n z-index: 999999998;\n transition-timing-function: ease-in-out;\n transition:\n left 0.5s,\n right 0.5s,\n top 0.5s,\n bottom 0.5s;\n}\n\n.gaze-calibration-dot-click {\n position: absolute;\n background: #ff005c;\n margin: auto;\n cursor: pointer;\n text-align: center;\n vertical-align: middle;\n}\n\n.gaze-calibration-dot-click:active {\n opacity: 0.3;\n}\n\n.gaze-calibration-dot-text {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n font-weight: 500;\n color: #fff;\n font-size: 0.9rem;\n vertical-align: text-bottom;\n user-select: none;\n pointer-events: none;\n}\n\n/* ----------------------------- WebGazer Native ---------------------------- */\n\n#webgazerGazeDot,\n#webgazerGazeDot-tempClone {\n position: fixed;\n z-index: 9999999999;\n opacity: 0.5;\n background-color: #111d5e;\n border-radius: 5px;\n pointer-events: none;\n user-select: none;\n}\n\n#webgazerVideoContainer {\n z-index: 999999997;\n display: block;\n position: fixed !important;\n transform-origin: bottom left;\n border-radius: 5px;\n /* opacity: 0.8; */\n overflow: hidden;\n /* pointer-events: none; */\n user-select: none;\n}\n\n#webgazerVideoContainer * {\n user-select: none;\n}\n\n#webgazerFaceFeedbackBox {\n /* TODO Set style in sub-module */\n box-sizing: border-box;\n border-radius: 10px;\n opacity: 0.6;\n pointer-events: none;\n user-select: none;\n}\n\n/* ------------------------------- Gaze Nudger ------------------------------ */\n\n.rc-crosshair,\n.rc-gaze-nudger-arrows {\n position: absolute;\n /* top: 50%;\n left: 50%;\n transform: translate(-50%, -50%); */\n user-select: none;\n}\n\n.rc-crosshair {\n position: fixed !important;\n display: block;\n width: 40px;\n height: 40px;\n z-index: 999999999;\n cursor: pointer;\n transition-timing-function: ease-in-out;\n transition:\n left 0.5s,\n right 0.5s,\n top 0.5s,\n bottom 0.5s;\n /* filter: drop-shadow(0 0 3px #fff); */\n border-radius: 50%;\n}\n\n.rc-crosshair-component {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n margin: auto;\n pointer-events: none;\n user-select: none;\n background-color: #000;\n}\n"],sourceRoot:""}]);const o=a},9725:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,"#calibration-background{bottom:0;box-sizing:border-box;height:100%;left:0;margin:0;overflow:hidden;overflow-y:scroll;position:fixed;right:0;scrollbar-width:none;text-align:center;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:999999990}#calibration-background::-webkit-scrollbar{display:none;width:0}#calibration-background *{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}#calibration-background p{line-height:150%}.calibration-instruction{pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none}.calibration-instruction-scrollable{height:200%}.calibration-instruction h1{font-weight:700;min-width:360px}.calibration-instruction *{font-size:1.2rem;line-height:170%;margin:0;padding:0}.calibration-instruction p{margin-top:1rem;white-space:pre-line}.calibration-description{line-height:170%}.rc-hang-description{font-size:1rem!important;margin-top:50vh!important}@media (min-width:481px){.calibration-instruction{margin:2rem}.calibration-instruction h1{font-size:2.5rem!important;line-height:100%}.calibration-description{width:calc(100% - 4rem);width:max(min(100% - 4rem,960px),300px)}.calibration-description,.calibration-description *{font-size:1.2rem}.calibration-credit-text{font-size:.9rem!important}}@media (max-width:480px){.calibration-instruction{margin:1rem}.calibration-instruction h1{font-size:1.8rem!important;line-height:120%}.calibration-description{width:calc(100% - 1rem)}.calibration-description,.calibration-description *{font-size:1rem}.calibration-credit-text{font-size:.7rem!important}}.float-instruction{background:hsla(0,0%,100%,.9);border-radius:10px;font-size:1rem;font-weight:500;left:50%;margin:0;max-width:25rem;padding:10px 17px;position:fixed;text-align:center;transform:translate(-50%);-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:999999991}.swal2-container{z-index:999999999!important}.calibration-credit-text{bottom:3px!important;color:#999!important;line-height:100%!important;margin:0!important;padding:0!important;position:fixed!important;text-align:center!important;width:100%!important}.lock-view{overflow:hidden!important}.rc-lang-ltr{direction:ltr!important;text-align:left!important}.rc-lang-rtl{direction:rtl!important;text-align:right!important}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}","",{version:3,sources:["webpack://./src/css/main.css"],names:[],mappings:"AACA,wBAQE,QAAS,CAMT,qBAAsB,CAVtB,WAAY,CAEZ,MAAO,CAGP,QAAS,CAET,eAAgB,CAChB,iBAAkB,CAVlB,cAAe,CAKf,OAAQ,CASR,oBAAqB,CADrB,iBAAkB,CAVlB,KAAM,CAQN,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAAiB,CAVjB,UAAW,CAFX,iBAgBF,CAEA,2CAEE,YAAa,CADb,OAEF,CAEA,0BACE,wHAEF,CAEA,0BACE,gBACF,CAEA,yBAGE,mBAAoB,CAFpB,iBAAkB,CAClB,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAEF,CAEA,oCACE,WACF,CAEA,4BAEE,eAAgB,CADhB,eAEF,CAEA,2BACE,gBAAiB,CACjB,gBAAiB,CACjB,QAAS,CACT,SACF,CAEA,2BAEE,eAAgB,CADhB,oBAEF,CAEA,yBACE,gBACF,CAEA,qBAEE,wBAA0B,CAD1B,yBAEF,CAKA,yBACE,yBACE,WACF,CAEA,4BAEE,0BAA4B,CAD5B,gBAEF,CAEA,yBACE,uBAAwB,CACxB,uCACF,CAEA,oDAEE,gBACF,CAEA,yBACE,yBACF,CACF,CAEA,yBACE,yBACE,WACF,CAEA,4BAEE,0BAA4B,CAD5B,gBAEF,CAEA,yBACE,uBACF,CAEA,oDAEE,cACF,CAEA,yBACE,yBACF,CACF,CAEA,mBAIE,6BAAoC,CAMpC,kBAAmB,CACnB,cAAe,CACf,eAAgB,CALhB,QAAS,CADT,QAAS,CAET,eAAgB,CAHhB,iBAAkB,CAJlB,cAAe,CACf,iBAAkB,CAOlB,yBAA6B,CAN7B,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAAiB,CAUjB,iBACF,CAIA,iBACE,2BACF,CAIA,yBAGE,oBAAsB,CACtB,oBAAsB,CAGtB,0BAA4B,CAF5B,kBAAoB,CACpB,mBAAqB,CALrB,wBAA0B,CAO1B,2BAA6B,CAN7B,oBAOF,CAIA,WACE,yBACF,CAIA,aACE,uBAAyB,CACzB,yBACF,CAEA,aACE,uBAAyB,CACzB,0BACF,CAMA,aACE,WACF,CAEA,iBACE,eACF",sourcesContent:["/* background div */\n#calibration-background {\n z-index: 999999990;\n position: fixed;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n margin: 0;\n /* background: #eee; */\n overflow: hidden;\n overflow-y: scroll;\n user-select: none;\n box-sizing: border-box;\n text-align: center;\n scrollbar-width: none;\n}\n\n#calibration-background::-webkit-scrollbar {\n width: 0;\n display: none;\n}\n\n#calibration-background * {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n}\n\n#calibration-background p {\n line-height: 150%;\n}\n\n.calibration-instruction {\n position: absolute;\n user-select: none;\n pointer-events: none;\n}\n\n.calibration-instruction-scrollable {\n height: 200%;\n}\n\n.calibration-instruction h1 {\n min-width: 360px;\n font-weight: 700;\n}\n\n.calibration-instruction * {\n font-size: 1.2rem;\n line-height: 170%;\n margin: 0;\n padding: 0;\n}\n\n.calibration-instruction p {\n white-space: pre-line;\n margin-top: 1rem;\n}\n\n.calibration-description {\n line-height: 170%;\n}\n\n.rc-hang-description {\n margin-top: 50vh !important;\n font-size: 1rem !important;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Screen size specific */\n\n@media (min-width: 481px) {\n .calibration-instruction {\n margin: 2rem;\n }\n\n .calibration-instruction h1 {\n line-height: 100%;\n font-size: 2.5rem !important;\n }\n\n .calibration-description {\n width: calc(100% - 4rem);\n width: max(min(100% - 4rem, 960px), 300px);\n }\n\n .calibration-description,\n .calibration-description * {\n font-size: 1.2rem;\n }\n\n .calibration-credit-text {\n font-size: 0.9rem !important;\n }\n}\n\n@media (max-width: 480px) {\n .calibration-instruction {\n margin: 1rem;\n }\n\n .calibration-instruction h1 {\n line-height: 120%;\n font-size: 1.8rem !important;\n }\n\n .calibration-description {\n width: calc(100% - 1rem);\n }\n\n .calibration-description,\n .calibration-description * {\n font-size: 1rem;\n }\n\n .calibration-credit-text {\n font-size: 0.7rem !important;\n }\n}\n\n.float-instruction {\n position: fixed;\n text-align: center;\n user-select: none;\n background: rgba(255, 255, 255, 0.9);\n padding: 10px 17px;\n margin: 0;\n left: 50%;\n max-width: 25rem;\n transform: translate(-50%, 0);\n border-radius: 10px;\n font-size: 1rem;\n font-weight: 500;\n z-index: 999999991;\n}\n\n/* -------------------------------------------------------------------------- */\n\n.swal2-container {\n z-index: 999999999 !important;\n}\n\n/* -------------------------------------------------------------------------- */\n\n.calibration-credit-text {\n position: fixed !important;\n width: 100% !important;\n bottom: 3px !important;\n color: #999 !important;\n margin: 0 !important;\n padding: 0 !important;\n line-height: 100% !important;\n text-align: center !important;\n}\n\n/* -------------------------------------------------------------------------- */\n\n.lock-view {\n overflow: hidden !important;\n}\n\n/* -------------------------------------------------------------------------- */\n\n.rc-lang-ltr {\n direction: ltr !important;\n text-align: left !important;\n}\n\n.rc-lang-rtl {\n direction: rtl !important;\n text-align: right !important;\n}\n\n/* -------------------------------------------------------------------------- */\n/* --------------------------------- CURSOR --------------------------------- */\n/* -------------------------------------------------------------------------- */\n\n.cursor-grab {\n cursor: grab;\n}\n\n.cursor-grabbing {\n cursor: grabbing;\n}\n"],sourceRoot:""}]);const o=a},2535:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,".swal2-container{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif!important}.my__swal2__icon{font-weight:700!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.my__swal2__icon *{color:#ff9a00!important}.my__swal2__title{color:#000!important;font-size:2rem!important;font-weight:700!important}.my__swal2__html,.my__swal2__title{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.my__swal2__html{color:#444!important;font-size:1.2rem!important;font-weight:400!important;line-height:150%!important;margin:1.6rem}.my__swal2__html__center{text-align:center!important}.animate__animated.animate__fadeInUp,.animate__animated.animate__fadeOutDown{--animate-duration:400ms!important;--animate-delay:0!important}.fadeInUp,.fadeOutDown{animation-delay:0!important;animation-duration:.4s!important}","",{version:3,sources:["webpack://./src/css/swal.css"],names:[],mappings:"AAAA,iBACE,kIAEF,CAEA,iBACE,yBAA4B,CAC5B,kCAA4B,CAA5B,+BAA4B,CAA5B,0BACF,CAEA,mBACE,uBACF,CAEA,kBACE,oBAAsB,CACtB,wBAA0B,CAC1B,yBAEF,CAEA,mCAHE,kCAA4B,CAA5B,+BAA4B,CAA5B,0BAUF,CAPA,iBAEE,oBAAsB,CACtB,0BAA4B,CAE5B,yBAA8B,CAD9B,0BAA4B,CAH5B,aAMF,CAEA,yBACE,2BACF,CAEA,6EAEE,kCAAoC,CACpC,2BACF,CAEA,uBAGE,2BAA6B,CAD7B,gCAEF",sourcesContent:[".swal2-container {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif !important;\n}\n\n.my__swal2__icon {\n font-weight: bold !important;\n user-select: none !important;\n}\n\n.my__swal2__icon * {\n color: #ff9a00 !important;\n}\n\n.my__swal2__title {\n color: #000 !important;\n font-size: 2rem !important;\n font-weight: bold !important;\n user-select: none !important;\n}\n\n.my__swal2__html {\n margin: 1.6rem;\n color: #444 !important;\n font-size: 1.2rem !important;\n line-height: 150% !important;\n font-weight: normal !important;\n user-select: none !important;\n}\n\n.my__swal2__html__center {\n text-align: center !important;\n}\n\n.animate__animated.animate__fadeInUp,\n.animate__animated.animate__fadeOutDown {\n --animate-duration: 400ms !important;\n --animate-delay: 0 !important;\n}\n\n.fadeInUp,\n.fadeOutDown {\n animation-duration: 400ms !important;\n animation-delay: 0 !important;\n}\n"],sourceRoot:""}]);const o=a},6314:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",s=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),s&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),s&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,s,r,i){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(s)for(var o=0;o0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=i),n&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=n):c[2]=n),r&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=r):c[4]="".concat(r)),t.push(c))}},t}},1354:e=>{"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var s=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(s),i="/*# ".concat(r," */");return[t].concat([i]).join("\n")}return[t].join("\n")}},7158:function(e){var t=function(){"use strict";var e,t,n,s,r,i,a,o,l,u,c,h,d,p,f,m,g,y,b,w,v,x,A,C="leader-line",k=1,S=2,_=3,E=4,I={top:k,right:S,bottom:_,left:E},T=1,N=2,R=3,O=4,D=5,M={straight:T,arc:N,fluid:R,magnet:O,grid:D},z="behind",F=C+"-defs",B='',L={disc:{elmId:"leader-line-disc",noRotate:!0,bBox:{left:-5,top:-5,width:10,height:10,right:5,bottom:5},widthR:2.5,heightR:2.5,bCircle:5,sideLen:5,backLen:5,overhead:0,outlineBase:1,outlineMax:4},square:{elmId:"leader-line-square",noRotate:!0,bBox:{left:-5,top:-5,width:10,height:10,right:5,bottom:5},widthR:2.5,heightR:2.5,bCircle:5,sideLen:5,backLen:5,overhead:0,outlineBase:1,outlineMax:4},arrow1:{elmId:"leader-line-arrow1",bBox:{left:-8,top:-8,width:16,height:16,right:8,bottom:8},widthR:4,heightR:4,bCircle:8,sideLen:8,backLen:8,overhead:8,outlineBase:2,outlineMax:1.5},arrow2:{elmId:"leader-line-arrow2",bBox:{left:-7,top:-8,width:11,height:16,right:4,bottom:8},widthR:2.75,heightR:4,bCircle:8,sideLen:8,backLen:7,overhead:4,outlineBase:1,outlineMax:1.75},arrow3:{elmId:"leader-line-arrow3",bBox:{left:-4,top:-5,width:12,height:10,right:8,bottom:5},widthR:3,heightR:2.5,bCircle:8,sideLen:5,backLen:4,overhead:8,outlineBase:1,outlineMax:2.5},hand:{elmId:"leader-line-hand",bBox:{left:-3,top:-12,width:40,height:24,right:37,bottom:12},widthR:10,heightR:6,bCircle:37,sideLen:12,backLen:3,overhead:37},crosshair:{elmId:"leader-line-crosshair",noRotate:!0,bBox:{left:-96,top:-96,width:192,height:192,right:96,bottom:96},widthR:48,heightR:48,bCircle:96,sideLen:96,backLen:96,overhead:0}},P={behind:z,disc:"disc",square:"square",arrow1:"arrow1",arrow2:"arrow2",arrow3:"arrow3",hand:"hand",crosshair:"crosshair"},U={disc:"disc",square:"square",arrow1:"arrow1",arrow2:"arrow2",arrow3:"arrow3",hand:"hand",crosshair:"crosshair"},V=[k,S,_,E],W="auto",j={x:"left",y:"top",width:"width",height:"height"},G=80,q=4,H=5,K=120,$=8,X=3.75,Z=10,Y=30,Q=.5522847,J=.25*Math.PI,ee=/^\s*(\-?[\d\.]+)\s*(\%)?\s*$/,te="http://www.w3.org/2000/svg",ne="-ms-scroll-limit"in document.documentElement.style&&"-ms-ime-align"in document.documentElement.style&&!window.navigator.msPointerEnabled,se=!ne&&!!document.uniqueID,re="MozAppearance"in document.documentElement.style,ie=!(ne||re||!window.chrome||!window.CSS),ae=!(ne||se||re||ie||window.chrome||!("WebkitAppearance"in document.documentElement.style)),oe=se||ne?.2:.1,le={path:R,lineColor:"coral",lineSize:4,plugSE:[z,"arrow1"],plugSizeSE:[1,1],lineOutlineEnabled:!1,lineOutlineColor:"indianred",lineOutlineSize:.25,plugOutlineEnabledSE:[!1,!1],plugOutlineSizeSE:[1,1]},ue=(v={}.toString,x={}.hasOwnProperty.toString,A=x.call(Object),function(e){var t,n;return e&&"[object Object]"===v.call(e)&&(!(t=Object.getPrototypeOf(e))||(n=t.hasOwnProperty("constructor")&&t.constructor)&&"function"==typeof n&&x.call(n)===A)}),ce=Number.isFinite||function(e){return"number"==typeof e&&window.isFinite(e)},he=(p={ease:[.25,.1,.25,1],linear:[0,0,1,1],"ease-in":[.42,0,1,1],"ease-out":[0,0,.58,1],"ease-in-out":[.42,0,.58,1]},f=1e3/60/2,m=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||function(e){setTimeout(e,f)},g=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.msCancelAnimationFrame||function(e){clearTimeout(e)},y=Number.isFinite||function(e){return"number"==typeof e&&window.isFinite(e)},b=[],w=0,{add:function(e,t,n,s,r,i,a){var o,l,u,c,h,d,m,g,y,v,x,A,C,k=++w;function S(t,n){return{value:e(n),timeRatio:t,outputRatio:n}}if("string"==typeof r&&(r=p[r]),e=e||function(){},n=this._endIndex||this._string[this._currentIndex]<"0"||"9"=this._endIndex||this._string[this._currentIndex]<"0"||"9"=this._endIndex)return null;var e=null,t=this._string[this._currentIndex];if(this._currentIndex+=1,"0"===t)e=0;else{if("1"!==t)return null;e=1}return this._skipOptionalSpacesOrDelimiter(),e}};var o=e.SVGPathElement.prototype.setAttribute,l=e.SVGPathElement.prototype.removeAttribute,u=e.Symbol?e.Symbol():"__cachedPathData",c=e.Symbol?e.Symbol():"__cachedNormalizedPathData",h=function(e,t,n,s,r,i,a,o,l,u){function c(e,t,n){return{x:e*Math.cos(n)-t*Math.sin(n),y:e*Math.sin(n)+t*Math.cos(n)}}var d,p,f,m,g,y,b,w,v,x,A,C,k,S,_,E=(d=a,Math.PI*d/180),I=[];u?(S=u[0],_=u[1],C=u[2],k=u[3]):(e=(p=c(e,t,-E)).x,t=p.y,1<(y=(m=(e-(n=(f=c(n,s,-E)).x))/2)*m/(r*r)+(g=(t-(s=f.y))/2)*g/(i*i))&&(r*=y=Math.sqrt(y),i*=y),v=(b=r*r)*(w=i*i)-b*g*g-w*m*m,x=b*g*g+w*m*m,C=(A=(o===l?-1:1)*Math.sqrt(Math.abs(v/x)))*r*g/i+(e+n)/2,k=A*-i*m/r+(t+s)/2,S=Math.asin(parseFloat(((t-k)/i).toFixed(9))),_=Math.asin(parseFloat(((s-k)/i).toFixed(9))),e120*Math.PI/180&&(T=_,N=n,R=s,_=l&&S<_?S+120*Math.PI/180*1:S+120*Math.PI/180*-1,n=C+r*Math.cos(_),s=k+i*Math.sin(_),I=h(n,s,N,R,r,i,a,0,l,[_,T,C,k])),O=_-S;var D=Math.cos(S),M=Math.sin(S),z=Math.cos(_),F=Math.sin(_),B=Math.tan(O/4),L=4/3*r*B,P=4/3*i*B,U=[e,t],V=[e+L*M,t-P*D],W=[n+L*F,s-P*z],j=[n,s];if(V[0]=2*U[0]-V[0],V[1]=2*U[1]-V[1],u)return[V,W,j].concat(I);I=[V,W,j].concat(I).join().split(",");var G=[],q=[];return I.forEach((function(e,t){t%2?q.push(c(I[t-1],I[t],E).y):q.push(c(I[t],I[t+1],E).x),6===q.length&&(G.push(q),q=[])})),G};e.SVGPathElement.prototype.setAttribute=function(e,t){"d"===e&&(this[u]=null,this[c]=null),o.call(this,e,t)},e.SVGPathElement.prototype.removeAttribute=function(e,t){"d"===e&&(this[u]=null,this[c]=null),l.call(this,e)},e.SVGPathElement.prototype.getPathData=function(e){if(e&&e.normalize){if(this[c])return i(this[c]);this[u]?d=i(this[u]):(d=r(this.getAttribute("d")||""),this[u]=i(d));var t=a((n=[],h=l=o=s=null,d.forEach((function(e){var t,r,i,a,u,c,d=e.type;"M"===d?(u=e.values[0],c=e.values[1],n.push({type:"M",values:[u,c]}),s=l=u,o=h=c):"m"===d?(u=s+e.values[0],c=o+e.values[1],n.push({type:"M",values:[u,c]}),s=l=u,o=h=c):"L"===d?(u=e.values[0],c=e.values[1],n.push({type:"L",values:[u,c]}),s=u,o=c):"l"===d?(u=s+e.values[0],c=o+e.values[1],n.push({type:"L",values:[u,c]}),s=u,o=c):"C"===d?(t=e.values[0],r=e.values[1],i=e.values[2],a=e.values[3],u=e.values[4],c=e.values[5],n.push({type:"C",values:[t,r,i,a,u,c]}),s=u,o=c):"c"===d?(t=s+e.values[0],r=o+e.values[1],i=s+e.values[2],a=o+e.values[3],u=s+e.values[4],c=o+e.values[5],n.push({type:"C",values:[t,r,i,a,u,c]}),s=u,o=c):"Q"===d?(t=e.values[0],r=e.values[1],u=e.values[2],c=e.values[3],n.push({type:"Q",values:[t,r,u,c]}),s=u,o=c):"q"===d?(t=s+e.values[0],r=o+e.values[1],u=s+e.values[2],c=o+e.values[3],n.push({type:"Q",values:[t,r,u,c]}),s=u,o=c):"A"===d?(u=e.values[5],c=e.values[6],n.push({type:"A",values:[e.values[0],e.values[1],e.values[2],e.values[3],e.values[4],u,c]}),s=u,o=c):"a"===d?(u=s+e.values[5],c=o+e.values[6],n.push({type:"A",values:[e.values[0],e.values[1],e.values[2],e.values[3],e.values[4],u,c]}),s=u,o=c):"H"===d?(u=e.values[0],n.push({type:"H",values:[u]}),s=u):"h"===d?(u=s+e.values[0],n.push({type:"H",values:[u]}),s=u):"V"===d?(c=e.values[0],n.push({type:"V",values:[c]}),o=c):"v"===d?(c=o+e.values[0],n.push({type:"V",values:[c]}),o=c):"S"===d?(i=e.values[0],a=e.values[1],u=e.values[2],c=e.values[3],n.push({type:"S",values:[i,a,u,c]}),s=u,o=c):"s"===d?(i=s+e.values[0],a=o+e.values[1],u=s+e.values[2],c=o+e.values[3],n.push({type:"S",values:[i,a,u,c]}),s=u,o=c):"T"===d?(u=e.values[0],c=e.values[1],n.push({type:"T",values:[u,c]}),s=u,o=c):"t"===d?(u=s+e.values[0],c=o+e.values[1],n.push({type:"T",values:[u,c]}),s=u,o=c):"Z"!==d&&"z"!==d||(n.push({type:"Z",values:[]}),s=l,o=h)})),n));return this[c]=i(t),t}if(this[u])return i(this[u]);var n,s,o,l,h,d=r(this.getAttribute("d")||"");return this[u]=i(d),d},e.SVGPathElement.prototype.setPathData=function(e){if(0===e.length)s?this.setAttribute("d",""):this.removeAttribute("d");else{for(var t="",n=0,r=e.length;n=n.duration&&n.count&&n.loopsLeft<=1)return i=n.frames[n.lastFrame=n.reverse?0:n.frames.length-1],n.frameCallback(i.value,!0,i.timeRatio,i.outputRatio),void(n.framesStart=null);if(s>n.duration){if(r=Math.floor(s/n.duration),n.count){if(r>=n.loopsLeft)return i=n.frames[n.lastFrame=n.reverse?0:n.frames.length-1],n.frameCallback(i.value,!0,i.timeRatio,i.outputRatio),void(n.framesStart=null);n.loopsLeft-=r}n.framesStart+=n.duration*r,s=e-n.framesStart}n.reverse&&(s=n.duration-s),i=n.frames[n.lastFrame=Math.round(s/f)],!1!==n.frameCallback(i.value,!1,i.timeRatio,i.outputRatio)?t=!0:n.framesStart=null}})),t&&(d=m.call(window,Ce))}function ke(e,t){e.framesStart=Date.now(),null!=t&&(e.framesStart-=e.duration*(e.reverse?1-t:t)),e.loopsLeft=e.count,e.lastFrame=null,Ce()}function Se(e,t){var n,s;return typeof e!=typeof t||(n=ue(e)?"obj":Array.isArray(e)?"array":"")!=(ue(t)?"obj":Array.isArray(t)?"array":"")||("obj"===n?Se(s=Object.keys(e).sort(),Object.keys(t).sort())||s.some((function(n){return Se(e[n],t[n])})):"array"===n?e.length!==t.length||e.some((function(e,n){return Se(e,t[n])})):e!==t)}function _e(e){return e?ue(e)?Object.keys(e).reduce((function(t,n){return t[n]=_e(e[n]),t}),{}):Array.isArray(e)?e.map(_e):e:e}function Ee(e){var t,n,s,r=1,i=e=(e+"").trim();function a(e){var t=1,n=ee.exec(e);return n&&(t=parseFloat(n[1]),n[2]?t=0<=t&&t<=100?t/100:1:(t<0||1=Math.abs(s)?0<=t?S:E:0<=s?_:k))}))),x.position_path!==A.position_path||x.position_lineStrokeWidth!==A.position_lineStrokeWidth||[0,1].some((function(e){return x.position_plugOverheadSE[e]!==A.position_plugOverheadSE[e]||(i=C[e],a=A.position_socketXYSE[e],i.x!==a.x||i.y!==a.y||i.socketId!==a.socketId)||(n=t[e],s=A.position_socketGravitySE[e],(r=null==n?"auto":Array.isArray(n)?"array":"number")!=(null==s?"auto":Array.isArray(s)?"array":"number")||("array"==r?n[0]!==s[0]||n[1]!==s[1]:n!==s));var n,s,r,i,a}))){switch(e.pathList.baseVal=s=[],e.pathList.animVal=null,x.position_path){case T:s.push([z(C[0]),z(C[1])]);break;case N:d="number"==typeof t[0]&&0q?(x.position_lineStrokeWidth-q)*H:0),e.socketId===k?((i=(e.y-n.y)/2)=t.x:t.dirId===i?e.y>=t.y:e.x<=t.x}function p(e,t){return t.dirId===n||t.dirId===i?e.x===t.x:e.y===t.y}function f(e){return e[0]?{contain:0,notContain:1}:{contain:1,notContain:0}}function m(e,t,n){return Math.abs(t[n]-e[n])}function g(e,t,s){return"x"===s?e.x=Y?g(l[t.notContain],l[t.contain],u[t.contain]):l[t.contain].dirId)):(s=[{x:l[0].x,y:l[0].y},{x:l[1].x,y:l[1].y}],o.forEach((function(e,t){var n=0===t?1:0,r=m(s[t],s[n],u[t]);rZ&&(l[i]-eZ&&(l[i]-es.outlineMax&&(t=s.outlineMax),t*=2*s.outlineBase,x=Xe(b,v.plugOutline_strokeWidthSE,e,t)||x,x=Xe(b,v.plugOutline_inStrokeWidthSE,e,v.plugOutline_colorTraSE[e]?t-oe/(v.line_strokeWidth/le.lineSize)/w.plugSizeSE[e]*2:t/2)||x)})),x)),(n.faces||he.line||he.plug||he.lineOutline||he.plugOutline)&&(he.faces=(k=(A=t).curStats,S=A.aplStats,_=A.events,E=!1,!k.line_altColor&&Xe(A,S,"line_color",C=k.line_color,_.apl_line_color)&&(A.lineFace.style.stroke=C,E=!0),Xe(A,S,"line_strokeWidth",C=k.line_strokeWidth,_.apl_line_strokeWidth)&&(A.lineShape.style.strokeWidth=C+"px",E=!0,(re||se)&&(Ge(A,A.lineShape),se&&(Ge(A,A.lineFace),Ge(A,A.lineMaskCaps)))),Xe(A,S,"lineOutline_enabled",C=k.lineOutline_enabled,_.apl_lineOutline_enabled)&&(A.lineOutlineFace.style.display=C?"inline":"none",E=!0),k.lineOutline_enabled&&(Xe(A,S,"lineOutline_color",C=k.lineOutline_color,_.apl_lineOutline_color)&&(A.lineOutlineFace.style.stroke=C,E=!0),Xe(A,S,"lineOutline_strokeWidth",C=k.lineOutline_strokeWidth,_.apl_lineOutline_strokeWidth)&&(A.lineOutlineMaskShape.style.strokeWidth=C+"px",E=!0,se&&(Ge(A,A.lineOutlineMaskCaps),Ge(A,A.lineOutlineFace))),Xe(A,S,"lineOutline_inStrokeWidth",C=k.lineOutline_inStrokeWidth,_.apl_lineOutline_inStrokeWidth)&&(A.lineMaskShape.style.strokeWidth=C+"px",E=!0,se&&(Ge(A,A.lineOutlineMaskCaps),Ge(A,A.lineOutlineFace)))),Xe(A,S,"plug_enabled",C=k.plug_enabled,_.apl_plug_enabled)&&(A.plugsFace.style.display=C?"inline":"none",E=!0),k.plug_enabled&&[0,1].forEach((function(e){var t=k.plug_plugSE[e],n=t!==z?L[U[t]]:null,s=Ke(e,n);Xe(A,S.plug_enabledSE,e,C=k.plug_enabledSE[e],_.apl_plug_enabledSE)&&(A.plugsFace.style[s.prop]=C?"url(#"+A.plugMarkerIdSE[e]+")":"none",E=!0),k.plug_enabledSE[e]&&(Xe(A,S.plug_plugSE,e,t,_.apl_plug_plugSE)&&(A.plugFaceSE[e].href.baseVal="#"+n.elmId,He(A,A.plugMarkerSE[e],s.orient,n.bBox,A.svg,A.plugMarkerShapeSE[e],A.plugsFace),E=!0,re&&Ge(A,A.plugsFace)),Xe(A,S.plug_colorSE,e,C=k.plug_colorSE[e],_.apl_plug_colorSE)&&(A.plugFaceSE[e].style.fill=C,E=!0,(ie||ae||se)&&!k.line_colorTra&&Ge(A,se?A.lineMaskCaps:A.capsMaskLine)),["markerWidth","markerHeight"].forEach((function(t){var n="plug_"+t+"SE";Xe(A,S[n],e,C=k[n][e],_["apl_"+n])&&(A.plugMarkerSE[e][t].baseVal.value=C,E=!0)})),Xe(A,S.plugOutline_enabledSE,e,C=k.plugOutline_enabledSE[e],_.apl_plugOutline_enabledSE)&&(C?(A.plugFaceSE[e].style.mask="url(#"+A.plugMaskIdSE[e]+")",A.plugOutlineFaceSE[e].style.display="inline"):(A.plugFaceSE[e].style.mask="none",A.plugOutlineFaceSE[e].style.display="none"),E=!0),k.plugOutline_enabledSE[e]&&(Xe(A,S.plugOutline_plugSE,e,t,_.apl_plugOutline_plugSE)&&(A.plugOutlineFaceSE[e].href.baseVal=A.plugMaskShapeSE[e].href.baseVal=A.plugOutlineMaskShapeSE[e].href.baseVal="#"+n.elmId,[A.plugMaskSE[e],A.plugOutlineMaskSE[e]].forEach((function(e){e.x.baseVal.value=n.bBox.left,e.y.baseVal.value=n.bBox.top,e.width.baseVal.value=n.bBox.width,e.height.baseVal.value=n.bBox.height})),E=!0),Xe(A,S.plugOutline_colorSE,e,C=k.plugOutline_colorSE[e],_.apl_plugOutline_colorSE)&&(A.plugOutlineFaceSE[e].style.fill=C,E=!0,se&&(Ge(A,A.lineMaskCaps),Ge(A,A.lineOutlineMaskCaps))),Xe(A,S.plugOutline_strokeWidthSE,e,C=k.plugOutline_strokeWidthSE[e],_.apl_plugOutline_strokeWidthSE)&&(A.plugOutlineMaskShapeSE[e].style.strokeWidth=C+"px",E=!0),Xe(A,S.plugOutline_inStrokeWidthSE,e,C=k.plugOutline_inStrokeWidthSE[e],_.apl_plugOutline_inStrokeWidthSE)&&(A.plugMaskShapeSE[e].style.strokeWidth=C+"px",E=!0)))})),E)),(n.position||he.line||he.plug)&&(he.position=Qe(t)),(n.path||he.position)&&(he.path=(N=(I=t).curStats,R=I.aplStats,O=I.pathList.animVal||I.pathList.baseVal,D=N.path_edge,M=!1,O&&(D.x1=D.x2=O[0][0].x,D.y1=D.y2=O[0][0].y,N.path_pathData=T=Le(O,(function(e){e.xD.x2&&(D.x2=e.x),e.y>D.y2&&(D.y2=e.y)})),Ue(T,R.path_pathData)&&(I.linePath.setPathData(T),R.path_pathData=T,M=!0,se?(Ge(I,I.plugsFace),Ge(I,I.lineMaskCaps)):re&&Ge(I,I.linePath),I.events.apl_path&&I.events.apl_path.forEach((function(e){e(I,T)})))),M)),he.viewBox=(B=(F=t).curStats,P=F.aplStats,V=B.path_edge,W=B.viewBox_bBox,G=P.viewBox_bBox,q=F.svg.viewBox.baseVal,H=F.svg.style,K=!1,$=Math.max(B.line_strokeWidth/2,B.viewBox_plugBCircleSE[0]||0,B.viewBox_plugBCircleSE[1]||0),X={x1:V.x1-$,y1:V.y1-$,x2:V.x2+$,y2:V.y2+$},F.events.new_edge4viewBox&&F.events.new_edge4viewBox.forEach((function(e){e(F,X)})),W.x=B.lineMask_x=B.lineOutlineMask_x=B.maskBGRect_x=X.x1,W.y=B.lineMask_y=B.lineOutlineMask_y=B.maskBGRect_y=X.y1,W.width=X.x2-X.x1,W.height=X.y2-X.y1,["x","y","width","height"].forEach((function(e){var t;(t=W[e])!==G[e]&&(q[e]=G[e]=t,H[j[e]]=t+("x"===e||"y"===e?F.bodyOffset[e]:0)+"px",K=!0)})),K),he.mask=(Q=(Z=t).curStats,J=Z.aplStats,ee=!1,Q.plug_enabled?[0,1].forEach((function(e){Q.capsMaskMarker_enabledSE[e]=Q.plug_enabledSE[e]&&Q.plug_colorTraSE[e]||Q.plugOutline_enabledSE[e]&&Q.plugOutline_colorTraSE[e]})):Q.capsMaskMarker_enabledSE[0]=Q.capsMaskMarker_enabledSE[1]=!1,Q.capsMaskMarker_enabled=Q.capsMaskMarker_enabledSE[0]||Q.capsMaskMarker_enabledSE[1],Q.lineMask_outlineMode=Q.lineOutline_enabled,Q.caps_enabled=Q.capsMaskMarker_enabled||Q.capsMaskAnchor_enabledSE[0]||Q.capsMaskAnchor_enabledSE[1],Q.lineMask_enabled=Q.caps_enabled||Q.lineMask_outlineMode,(Q.lineMask_enabled&&!Q.lineMask_outlineMode||Q.lineOutline_enabled)&&["x","y"].forEach((function(e){var t="maskBGRect_"+e;Xe(Z,J,t,Y=Q[t])&&(Z.maskBGRect[e].baseVal.value=Y,ee=!0)})),Xe(Z,J,"lineMask_enabled",Y=Q.lineMask_enabled)&&(Z.lineFace.style.mask=Y?"url(#"+Z.lineMaskId+")":"none",ee=!0,ae&&Ge(Z,Z.lineMask)),Q.lineMask_enabled&&(Xe(Z,J,"lineMask_outlineMode",Y=Q.lineMask_outlineMode)&&(Y?(Z.lineMaskBG.style.display="none",Z.lineMaskShape.style.display="inline"):(Z.lineMaskBG.style.display="inline",Z.lineMaskShape.style.display="none"),ee=!0),["x","y"].forEach((function(e){var t="lineMask_"+e;Xe(Z,J,t,Y=Q[t])&&(Z.lineMask[e].baseVal.value=Y,ee=!0)})),Xe(Z,J,"caps_enabled",Y=Q.caps_enabled)&&(Z.lineMaskCaps.style.display=Z.lineOutlineMaskCaps.style.display=Y?"inline":"none",ee=!0,ae&&Ge(Z,Z.capsMaskLine)),Q.caps_enabled&&([0,1].forEach((function(e){var t;Xe(Z,J.capsMaskAnchor_enabledSE,e,Y=Q.capsMaskAnchor_enabledSE[e])&&(Z.capsMaskAnchorSE[e].style.display=Y?"inline":"none",ee=!0,ae&&Ge(Z,Z.lineMask)),Q.capsMaskAnchor_enabledSE[e]&&(Ue(t=Q.capsMaskAnchor_pathDataSE[e],J.capsMaskAnchor_pathDataSE[e])&&(Z.capsMaskAnchorSE[e].setPathData(t),J.capsMaskAnchor_pathDataSE[e]=t,ee=!0),Xe(Z,J.capsMaskAnchor_strokeWidthSE,e,Y=Q.capsMaskAnchor_strokeWidthSE[e])&&(Z.capsMaskAnchorSE[e].style.strokeWidth=Y+"px",ee=!0))})),Xe(Z,J,"capsMaskMarker_enabled",Y=Q.capsMaskMarker_enabled)&&(Z.capsMaskLine.style.display=Y?"inline":"none",ee=!0),Q.capsMaskMarker_enabled&&[0,1].forEach((function(e){var t=Q.capsMaskMarker_plugSE[e],n=t!==z?L[U[t]]:null,s=Ke(e,n);Xe(Z,J.capsMaskMarker_enabledSE,e,Y=Q.capsMaskMarker_enabledSE[e])&&(Z.capsMaskLine.style[s.prop]=Y?"url(#"+Z.lineMaskMarkerIdSE[e]+")":"none",ee=!0),Q.capsMaskMarker_enabledSE[e]&&(Xe(Z,J.capsMaskMarker_plugSE,e,t)&&(Z.capsMaskMarkerShapeSE[e].href.baseVal="#"+n.elmId,He(Z,Z.capsMaskMarkerSE[e],s.orient,n.bBox,Z.svg,Z.capsMaskMarkerShapeSE[e],Z.capsMaskLine),ee=!0,re&&(Ge(Z,Z.capsMaskLine),Ge(Z,Z.lineFace))),["markerWidth","markerHeight"].forEach((function(t){var n="capsMaskMarker_"+t+"SE";Xe(Z,J[n],e,Y=Q[n][e])&&(Z.capsMaskMarkerSE[e][t].baseVal.value=Y,ee=!0)})))})))),Q.lineOutline_enabled&&["x","y"].forEach((function(e){var t="lineOutlineMask_"+e;Xe(Z,J,t,Y=Q[t])&&(Z.lineOutlineMask[e].baseVal.value=Y,ee=!0)})),ee),n.effect&&(ue=(te=t).curStats,ce=te.aplStats,Object.keys(e).forEach((function(t){var n=e[t],s=t+"_enabled",r=t+"_options",i=ue[r];Xe(te,ce,s,ne=ue[s])?(ne&&(ce[r]=_e(i)),n[ne?"init":"remove"](te)):ne&&Se(i,ce[r])&&(n.remove(te),ce[s]=!0,ce[r]=_e(i),n.init(te))}))),(ie||ae)&&he.line&&!he.path&&Ge(t,t.lineShape),ie&&he.plug&&!he.line&&Ge(t,t.plugsFace),qe(t)}function tt(e,t){return{duration:ce(e.duration)&&0t.x2&&(t.x2=s.x2),s.y2>t.y2&&(t.y2=s.y2),["x","y"].forEach((function(n){var s,a="dropShadow_"+n;r[a]=s=t[n+"1"],Xe(e,i,a,s)&&(e.efc_dropShadow_elmFilter[n].baseVal.value=s)})))}}},Object.keys(e).forEach((function(t){var n=e[t],s=n.stats;s[t+"_enabled"]={iniValue:!1},s[t+"_options"]={hasProps:!0},n.anim&&(s[t+"_animOptions"]={},s[t+"_animId"]={})})),t={none:{defaultAnimOptions:{},init:function(e,n){var s=e.curStats;s.show_animId&&(he.remove(s.show_animId),s.show_animId=null),t.none.start(e,n)},start:function(e,n){t.none.stop(e,!0)},stop:function(e,t,n){var s=e.curStats;return n=null!=n?n:e.aplStats.show_on,s.show_inAnim=!1,t&&Je(e,n),n?1:0}},fade:{defaultAnimOptions:{duration:300,timing:"linear"},init:function(e,n){var s=e.curStats,r=e.aplStats;s.show_animId&&he.remove(s.show_animId),s.show_animId=he.add((function(e){return e}),(function(n,s){s?t.fade.stop(e,!0):(e.svg.style.opacity=n+"",se&&(Ge(e,e.svg),qe(e)))}),r.show_animOptions.duration,1,r.show_animOptions.timing,null,!1),t.fade.start(e,n)},start:function(e,t){var n,s=e.curStats;s.show_inAnim&&(n=he.stop(s.show_animId)),Je(e,1),s.show_inAnim=!0,he.start(s.show_animId,!e.aplStats.show_on,null!=t?t:n)},stop:function(e,t,n){var s,r=e.curStats;return n=null!=n?n:e.aplStats.show_on,s=r.show_inAnim?he.stop(r.show_animId):n?1:0,r.show_inAnim=!1,t&&(e.svg.style.opacity=n?"":"0",Je(e,n)),s}},draw:{defaultAnimOptions:{duration:500,timing:[.58,0,.42,1]},init:function(e,n){var s=e.curStats,r=e.aplStats,i=e.pathList.baseVal,a=Pe(i),o=a.segsLen,l=a.lenAll;s.show_animId&&he.remove(s.show_animId),s.show_animId=he.add((function(e){var t,n,s,r,a=-1;if(0===e)n=[[i[0][0],i[0][0]]];else if(1===e)n=i;else{for(t=l*e,n=[];t>=o[++a];)n.push(i[a]),t-=o[a];t&&(2===(s=i[a]).length?n.push([s[0],De(s[0],s[1],t/o[a])]):(r=ze(s[0],s[1],s[2],s[3],Be(s[0],s[1],s[2],s[3],t)),n.push([s[0],r.fromP1,r.fromP2,r])))}return n}),(function(n,s){s?t.draw.stop(e,!0):(e.pathList.animVal=n,et(e,{path:!0}))}),r.show_animOptions.duration,1,r.show_animOptions.timing,null,!1),t.draw.start(e,n)},start:function(e,n){var s,r=e.curStats;r.show_inAnim&&(s=he.stop(r.show_animId)),Je(e,1),r.show_inAnim=!0,Ve(e,"apl_position",t.draw.update),he.start(r.show_animId,!e.aplStats.show_on,null!=n?n:s)},stop:function(e,t,n){var s,r=e.curStats;return n=null!=n?n:e.aplStats.show_on,s=r.show_inAnim?he.stop(r.show_animId):n?1:0,r.show_inAnim=!1,t&&(e.pathList.animVal=n?null:[[e.pathList.baseVal[0][0],e.pathList.baseVal[0][0]]],et(e,{path:!0}),Je(e,n)),s},update:function(e){We(e,"apl_position",t.draw.update),e.curStats.show_inAnim?t.draw.init(e,t.draw.stop(e)):e.aplStats.show_animOptions={}}}},[["start","anchorSE",0],["end","anchorSE",1],["color","lineColor"],["size","lineSize"],["startSocketGravity","socketGravitySE",0],["endSocketGravity","socketGravitySE",1],["startPlugColor","plugColorSE",0],["endPlugColor","plugColorSE",1],["startPlugSize","plugSizeSE",0],["endPlugSize","plugSizeSE",1],["outline","lineOutlineEnabled"],["outlineColor","lineOutlineColor"],["outlineSize","lineOutlineSize"],["startPlugOutline","plugOutlineEnabledSE",0],["endPlugOutline","plugOutlineEnabledSE",1],["startPlugOutlineColor","plugOutlineColorSE",0],["endPlugOutlineColor","plugOutlineColorSE",1],["startPlugOutlineSize","plugOutlineSizeSE",0],["endPlugOutlineSize","plugOutlineSizeSE",1]].forEach((function(e){var t=e[0],n=e[1],s=e[2];Object.defineProperty(at.prototype,t,{get:function(){var e=null!=s?be[this._id].options[n][s]:n?be[this._id].options[n]:be[this._id].options[t];return null==e?W:_e(e)},set:ot(t),enumerable:!0})})),[["path",M],["startSocket",I,"socketSE",0],["endSocket",I,"socketSE",1],["startPlug",P,"plugSE",0],["endPlug",P,"plugSE",1]].forEach((function(e){var t=e[0],n=e[1],s=e[2],r=e[3];Object.defineProperty(at.prototype,t,{get:function(){var e,i=null!=r?be[this._id].options[s][r]:s?be[this._id].options[s]:be[this._id].options[t];return i?Object.keys(n).some((function(t){return n[t]===i&&(e=t,!0)}))?e:new Error("It's broken"):W},set:ot(t),enumerable:!0})})),Object.keys(e).forEach((function(t){var n=e[t];Object.defineProperty(at.prototype,t,{get:function(){var e,s,r=be[this._id].options[t];return ue(r)?(e=r,s=n.optionsConf.reduce((function(t,n){var s,r=n[0],i=n[1],a=n[2],o=n[3],l=n[4],u=null!=l?e[o][l]:o?e[o]:e[i];return t[i]="id"===r?u?Object.keys(a).some((function(e){return a[e]===u&&(s=e,!0)}))?s:new Error("It's broken"):W:null==u?W:_e(u),t}),{}),n.anim&&(s.animation=_e(e.animation)),s):r},set:ot(t),enumerable:!0})})),["startLabel","endLabel","middleLabel"].forEach((function(e,t){Object.defineProperty(at.prototype,e,{get:function(){var e=be[this._id],n=e.options;return n.labelSEM[t]&&!e.optionIsAttach.labelSEM[t]?ve[n.labelSEM[t]._id].text:n.labelSEM[t]||""},set:ot(e),enumerable:!0})})),at.prototype.setOptions=function(e){return it(be[this._id],e),this},at.prototype.position=function(){return et(be[this._id],{position:!0}),this},at.prototype.remove=function(){var t=be[this._id],n=t.curStats;Object.keys(e).forEach((function(e){var t=e+"_animId";n[t]&&he.remove(n[t])})),n.show_animId&&he.remove(n.show_animId),t.attachments.slice().forEach((function(e){rt(t,e)})),t.baseWindow&&t.svg&&t.baseWindow.document.body.removeChild(t.svg),delete be[this._id]},at.prototype.show=function(e,t){return nt(be[this._id],!0,e,t),this},at.prototype.hide=function(e,t){return nt(be[this._id],!1,e,t),this},i=function(e){e&&ve[e._id]&&(e.boundTargets.slice().forEach((function(t){rt(t.props,e,!0)})),e.conf.remove&&e.conf.remove(e),delete ve[e._id])},lt.prototype.remove=function(){var e=this,t=ve[e._id];t&&(t.boundTargets.slice().forEach((function(e){t.conf.removeOption(t,e)})),je((function(){var t=ve[e._id];t&&i(t)})))},s=lt,window.LeaderLineAttachment=s,r=function(e,t){return e instanceof s&&(!(e.isRemoved||t&&ve[e._id].conf.type!==t)||null)},n={pointAnchor:{type:"anchor",argOptions:[{optionName:"element",type:Ie}],init:function(e,t){return e.element=n.pointAnchor.checkElement(t.element),e.x=n.pointAnchor.parsePercent(t.x,!0)||[.5,!0],e.y=n.pointAnchor.parsePercent(t.y,!0)||[.5,!0],!0},removeOption:function(e,t){var r=t.props,i={},a=e.element,o=r.options.anchorSE["start"===t.optionName?1:0];a===o&&(a=o===document.body?new s(n.pointAnchor,[a]):document.body),i[t.optionName]=a,it(r,i)},getBBoxNest:function(e,t){var n=Re(e.element,t.baseWindow),s=n.width,r=n.height;return n.width=n.height=0,n.left=n.right=n.left+e.x[0]*(e.x[1]?s:1),n.top=n.bottom=n.top+e.y[0]*(e.y[1]?r:1),n},parsePercent:function(e,t){var n,s,r=!1;return ce(e)?s=e:"string"==typeof e&&(n=ee.exec(e))&&n[2]&&(r=0!=(s=parseFloat(n[1])/100)),null!=s&&(t||0<=s)?[s,r]:null},checkElement:function(e){if(null==e)e=document.body;else if(!Ie(e))throw new Error("`element` must be Element");return e}},areaAnchor:{type:"anchor",argOptions:[{optionName:"element",type:Ie},{optionName:"shape",type:"string"}],stats:{color:{},strokeWidth:{},elementWidth:{},elementHeight:{},elementLeft:{},elementTop:{},pathListRel:{},bBoxRel:{},pathData:{},viewBoxBBox:{hasProps:!0},dashLen:{},dashGap:{}},init:function(e,t){var s,r,i,a=[];return e.element=n.pointAnchor.checkElement(t.element),"string"==typeof t.color&&(e.color=t.color.trim()),"string"==typeof t.fillColor&&(e.fill=t.fillColor.trim()),ce(t.size)&&0<=t.size&&(e.size=t.size),t.dash&&(e.dash=!0,ce(t.dash.len)&&0s.right&&(s.right=n),is.bottom&&(s.bottom=i)):s={left:n,right:n,top:i,bottom:i},r?D.pathListRel.push([r,{x:n,y:i}]):D.pathListRel=[],r={x:n,y:i}})),D.pathListRel.push([]),i=D.strokeWidth/2,a=[{x:s.left-i,y:s.top-i},{x:s.right+i,y:s.bottom+i}],D.bBoxRel={left:a[0].x,top:a[0].y,right:a[1].x,bottom:a[1].y,width:a[1].x-a[0].x,height:a[1].y-a[0].y}}F.pathListRel=F.bBoxRel=!0}return(F.pathListRel||F.elementLeft||F.elementTop)&&(D.pathData=Le(D.pathListRel,(function(e){e.x+=t.left,e.y+=t.top}))),Xe(e,M,"strokeWidth",n=D.strokeWidth)&&(e.path.style.strokeWidth=n+"px"),Ue(n=D.pathData,M.pathData)&&(e.path.setPathData(n),M.pathData=n,F.pathData=!0),e.dash&&(!F.pathData&&(!F.strokeWidth||e.dashLen&&e.dashGap)||(D.dashLen=e.dashLen||2*D.strokeWidth,D.dashGap=e.dashGap||D.strokeWidth),F.dash=Xe(e,M,"dashLen",D.dashLen)||F.dash,F.dash=Xe(e,M,"dashGap",D.dashGap)||F.dash,F.dash&&(e.path.style.strokeDasharray=M.dashLen+","+M.dashGap)),T=D.viewBoxBBox,N=M.viewBoxBBox,R=e.svg.viewBox.baseVal,O=e.svg.style,T.x=D.bBoxRel.left+t.left,T.y=D.bBoxRel.top+t.top,T.width=D.bBoxRel.width,T.height=D.bBoxRel.height,["x","y","width","height"].forEach((function(t){(n=T[t])!==N[t]&&(R[t]=N[t]=n,O[j[t]]=n+("x"===t||"y"===t?e.bodyOffset[t]:0)+"px")})),F.strokeWidth||F.pathListRel||F.bBoxRel}},mouseHoverAnchor:{type:"anchor",argOptions:[{optionName:"element",type:Ie},{optionName:"showEffectName",type:"string"}],style:{backgroundImage:"url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48cG9seWdvbiBwb2ludHM9IjI0LDAgMCw4IDgsMTEgMCwxOSA1LDI0IDEzLDE2IDE2LDI0IiBmaWxsPSJjb3JhbCIvPjwvc3ZnPg==')",backgroundSize:"",backgroundRepeat:"no-repeat",backgroundColor:"#f8f881",cursor:"default"},hoverStyle:{backgroundImage:"none",backgroundColor:"#fadf8f"},padding:{top:1,right:15,bottom:1,left:2},minHeight:15,backgroundPosition:{right:2,top:2},backgroundSize:{width:12,height:12},dirKeys:[["top","Top"],["right","Right"],["bottom","Bottom"],["left","Left"]],init:function(e,s){var r,i,a,o,l,u,c,h,d,p,f,m=n.mouseHoverAnchor,g={};if(e.element=n.pointAnchor.checkElement(s.element),!((p=(h=e.element).ownerDocument)&&(d=p.defaultView)&&d.HTMLElement&&h instanceof d.HTMLElement))throw new Error("`element` must be HTML element");return m.style.backgroundSize=m.backgroundSize.width+"px "+m.backgroundSize.height+"px",["style","hoverStyle"].forEach((function(t){var n=m[t];e[t]=Object.keys(n).reduce((function(e,t){return e[t]=n[t],e}),{})})),"inline"===(r=e.element.ownerDocument.defaultView.getComputedStyle(e.element,"")).display?e.style.display="inline-block":"none"===r.display&&(e.style.display="block"),n.mouseHoverAnchor.dirKeys.forEach((function(t){var n=t[0],s="padding"+t[1];parseFloat(r[s])e.x2&&(e.x2=s.x2),s.y2>e.y2&&(e.y2=s.y2)},newText:function(e,t,n,s,r){var i,a,o,u,c,h=t.createElementNS(te,"text");return h.textContent=e,[h.x,h.y].forEach((function(e){var t=n.createSVGLength();t.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PX,0),e.baseVal.initialize(t)})),"boolean"!=typeof l&&(l="paintOrder"in h.style),r&&!l?(a=t.createElementNS(te,"defs"),h.id=s,a.appendChild(h),(u=(i=t.createElementNS(te,"g")).appendChild(t.createElementNS(te,"use"))).href.baseVal="#"+s,(o=i.appendChild(t.createElementNS(te,"use"))).href.baseVal="#"+s,(c=u.style).strokeLinejoin="round",{elmPosition:h,styleText:h.style,styleFill:o.style,styleStroke:c,styleShow:i.style,elmsAppend:[a,i]}):(c=h.style,r&&(c.strokeLinejoin="round",c.paintOrder="stroke"),{elmPosition:h,styleText:c,styleFill:c,styleStroke:r?c:null,styleShow:c,elmsAppend:[h]})},getMidPoint:function(e,t){var n,s,r=Pe(e),i=r.segsLen,a=r.lenAll,o=-1,l=a/2+(t||0);if(l<=0)return 2===(n=e[0]).length?De(n[0],n[1],0):ze(n[0],n[1],n[2],n[3],0);if(a<=l)return 2===(n=e[e.length-1]).length?De(n[0],n[1],1):ze(n[0],n[1],n[2],n[3],1);for(s=[];l>i[++o];)s.push(e[o]),l-=i[o];return 2===(n=e[o]).length?De(n[0],n[1],l/i[o]):ze(n[0],n[1],n[2],n[3],Be(n[0],n[1],n[2],n[3],l))},initSvg:function(e,t){var s,r,i=n.captionLabel.newText(e.text,t.baseWindow.document,t.svg,C+"-captionLabel-"+e._id,e.outlineColor);["elmPosition","styleFill","styleShow","elmsAppend"].forEach((function(t){e[t]=i[t]})),e.isShown=!1,e.styleShow.visibility="hidden",n.captionLabel.textStyleProps.forEach((function(t){null!=e[t]&&(i.styleText[t]=e[t])})),i.elmsAppend.forEach((function(e){t.svg.appendChild(e)})),s=i.elmPosition.getBBox(),e.width=s.width,e.height=s.height,e.outlineColor&&(r=10<(r=s.height/9)?10:r<2?2:r,i.styleStroke.strokeWidth=r+"px",i.styleStroke.stroke=e.outlineColor),e.strokeWidth=r||0,$e(e.aplStats,n.captionLabel.stats),e.updateColor(t),e.refSocketXY?e.updateSocketXY(t):e.updatePath(t),ae&&et(t,{}),e.updateShow(t)},bind:function(e,t){var s=t.props;return e.color||Ve(s,"cur_line_color",e.updateColor),(e.refSocketXY="startLabel"===t.optionName||"endLabel"===t.optionName)?(e.socketIndex="startLabel"===t.optionName?0:1,Ve(s,"apl_position",e.updateSocketXY),e.offset||(Ve(s,"cur_attach_plugSideLenSE",e.updateSocketXY),Ve(s,"cur_line_strokeWidth",e.updateSocketXY))):Ve(s,"apl_path",e.updatePath),Ve(s,"svgShow",e.updateShow),ae&&Ve(s,"new_edge4viewBox",e.adjustEdge),n.captionLabel.initSvg(e,s),!0},unbind:function(e,t){var s=t.props;e.elmsAppend&&(e.elmsAppend.forEach((function(e){s.svg.removeChild(e)})),e.elmPosition=e.styleFill=e.styleShow=e.elmsAppend=null),$e(e.curStats,n.captionLabel.stats),$e(e.aplStats,n.captionLabel.stats),e.color||We(s,"cur_line_color",e.updateColor),e.refSocketXY?(We(s,"apl_position",e.updateSocketXY),e.offset||(We(s,"cur_attach_plugSideLenSE",e.updateSocketXY),We(s,"cur_line_strokeWidth",e.updateSocketXY))):We(s,"apl_path",e.updatePath),We(s,"svgShow",e.updateShow),ae&&(We(s,"new_edge4viewBox",e.adjustEdge),et(s,{}))},removeOption:function(e,t){var n=t.props,s={};s[t.optionName]="",it(n,s)},remove:function(e){e.boundTargets.length&&e.boundTargets.forEach((function(t){n.captionLabel.unbind(e,t)}))}},pathLabel:{type:"label",argOptions:[{optionName:"text",type:"string"}],stats:{color:{},startOffset:{},pathData:{}},init:function(e,t){return"string"==typeof t.text&&(e.text=t.text.trim()),!!e.text&&("string"==typeof t.color&&(e.color=t.color.trim()),e.outlineColor="string"==typeof t.outlineColor?t.outlineColor.trim():"#fff",ce(t.lineOffset)&&(e.lineOffset=t.lineOffset),n.captionLabel.textStyleProps.forEach((function(n){null!=t[n]&&(e[n]=t[n])})),e.updateColor=function(t){n.captionLabel.updateColor(e,t)},e.updatePath=function(t){var s,r=e.curStats,i=e.aplStats,a=t.curStats,o=t.pathList.animVal||t.pathList.baseVal;o&&(r.pathData=s=n.pathLabel.getOffsetPathData(o,a.line_strokeWidth/2+e.strokeWidth/2+e.height/4,1.25*e.height),Ue(s,i.pathData)&&(e.elmPath.setPathData(s),i.pathData=s,e.bBox=e.elmPosition.getBBox(),e.updateStartOffset(t)))},e.updateStartOffset=function(t){var n,s,r,i,a=e.curStats,o=e.aplStats,l=t.curStats;a.pathData&&(2===e.semIndex&&!e.lineOffset||(r=a.pathData.reduce((function(e,t){var n,r=t.values;switch(t.type){case"M":s={x:r[0],y:r[1]};break;case"L":n={x:r[0],y:r[1]},s&&(e+=Oe(s,n)),s=n;break;case"C":n={x:r[4],y:r[5]},s&&(e+=Fe(s,{x:r[0],y:r[1]},{x:r[2],y:r[3]},n)),s=n}return e}),0),i=0===e.semIndex?0:1===e.semIndex?r:r/2,2!==e.semIndex&&(n=Math.max(l.attach_plugBackLenSE[e.semIndex]||0,l.line_strokeWidth/2)+e.strokeWidth/2+e.height/4,i=(i+=0===e.semIndex?n:-n)<0?0:rt?((r=s.points)[1]=Me(r[0],r[1],-t),s.len=Oe(r[0],r[1])):(s.points=null,s.len=0),e.len>t+n?((r=e.points)[0]=Me(r[1],r[0],-(t+n)),e.len=Oe(r[0],r[1])):(e.points=null,e.len=0)),e):null})),i.reduce((function(e,t){var n=t.points;return n&&(r&&a(n[0],r)||e.push({type:"M",values:[n[0].x,n[0].y]}),"line"===t.type?e.push({type:"L",values:[n[1].x,n[1].y]}):(n.shift(),n.forEach((function(t){e.push({type:"L",values:[t.x,t.y]})}))),r=n[n.length-1]),e}),[])},newText:function(e,t,n,s){var r,i,a,o,u,c,h,d,p=t.createElementNS(te,"defs"),f=p.appendChild(t.createElementNS(te,"path"));return f.id=r=n+"-path",(o=(a=t.createElementNS(te,"text")).appendChild(t.createElementNS(te,"textPath"))).href.baseVal="#"+r,o.startOffset.baseVal.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PX,0),o.textContent=e,"boolean"!=typeof l&&(l="paintOrder"in a.style),s&&!l?(a.id=i=n+"-text",p.appendChild(a),(h=(u=t.createElementNS(te,"g")).appendChild(t.createElementNS(te,"use"))).href.baseVal="#"+i,(c=u.appendChild(t.createElementNS(te,"use"))).href.baseVal="#"+i,(d=h.style).strokeLinejoin="round",{elmPosition:a,elmPath:f,elmOffset:o,styleText:a.style,styleFill:c.style,styleStroke:d,styleShow:u.style,elmsAppend:[p,u]}):(d=a.style,s&&(d.strokeLinejoin="round",d.paintOrder="stroke"),{elmPosition:a,elmPath:f,elmOffset:o,styleText:d,styleFill:d,styleStroke:s?d:null,styleShow:d,elmsAppend:[p,a]})},initSvg:function(e,t){var s,r,i=n.pathLabel.newText(e.text,t.baseWindow.document,C+"-pathLabel-"+e._id,e.outlineColor);["elmPosition","elmPath","elmOffset","styleFill","styleShow","elmsAppend"].forEach((function(t){e[t]=i[t]})),e.isShown=!1,e.styleShow.visibility="hidden",n.captionLabel.textStyleProps.forEach((function(t){null!=e[t]&&(i.styleText[t]=e[t])})),i.elmsAppend.forEach((function(e){t.svg.appendChild(e)})),i.elmPath.setPathData([{type:"M",values:[0,100]},{type:"h",values:[100]}]),s=i.elmPosition.getBBox(),i.styleText.textAnchor=["start","end","middle"][e.semIndex],2!==e.semIndex||e.lineOffset||i.elmOffset.startOffset.baseVal.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PERCENTAGE,50),e.height=s.height,e.outlineColor&&(r=10<(r=s.height/9)?10:r<2?2:r,i.styleStroke.strokeWidth=r+"px",i.styleStroke.stroke=e.outlineColor),e.strokeWidth=r||0,$e(e.aplStats,n.pathLabel.stats),e.updateColor(t),e.updatePath(t),e.updateStartOffset(t),ae&&et(t,{}),e.updateShow(t)},bind:function(e,t){var s=t.props;return e.color||Ve(s,"cur_line_color",e.updateColor),Ve(s,"cur_line_strokeWidth",e.updatePath),Ve(s,"apl_path",e.updatePath),e.semIndex="startLabel"===t.optionName?0:"endLabel"===t.optionName?1:2,2===e.semIndex&&!e.lineOffset||Ve(s,"cur_attach_plugBackLenSE",e.updateStartOffset),Ve(s,"svgShow",e.updateShow),ae&&Ve(s,"new_edge4viewBox",e.adjustEdge),n.pathLabel.initSvg(e,s),!0},unbind:function(e,t){var s=t.props;e.elmsAppend&&(e.elmsAppend.forEach((function(e){s.svg.removeChild(e)})),e.elmPosition=e.elmPath=e.elmOffset=e.styleFill=e.styleShow=e.elmsAppend=null),$e(e.curStats,n.pathLabel.stats),$e(e.aplStats,n.pathLabel.stats),e.color||We(s,"cur_line_color",e.updateColor),We(s,"cur_line_strokeWidth",e.updatePath),We(s,"apl_path",e.updatePath),2===e.semIndex&&!e.lineOffset||We(s,"cur_attach_plugBackLenSE",e.updateStartOffset),We(s,"svgShow",e.updateShow),ae&&(We(s,"new_edge4viewBox",e.adjustEdge),et(s,{}))},removeOption:function(e,t){var n=t.props,s={};s[t.optionName]="",it(n,s)},remove:function(e){e.boundTargets.length&&e.boundTargets.forEach((function(t){n.pathLabel.unbind(e,t)}))}}},Object.keys(n).forEach((function(e){at[e]=function(){return new s(n[e],Array.prototype.slice.call(arguments))}})),at.positionByWindowResize=!0,window.addEventListener("resize",pe.add((function(){at.positionByWindowResize&&Object.keys(be).forEach((function(e){et(be[e],{position:!0})}))})),!1),at}();e.exports=t},7503:function(e,t,n){var s;e=n.nmd(e),function(){"use strict";var r={function:!0,object:!0},i=r[typeof window]&&window||this,a=r[typeof t]&&t,o=r.object&&e&&!e.nodeType&&e,l=a&&o&&"object"==typeof n.g&&n.g;!l||l.global!==l&&l.window!==l&&l.self!==l||(i=l);var u=Math.pow(2,53)-1,c=/\bOpera/,h=Object.prototype,d=h.hasOwnProperty,p=h.toString;function f(e){return(e=String(e)).charAt(0).toUpperCase()+e.slice(1)}function m(e){return e=v(e),/^(?:webOS|i(?:OS|P))/.test(e)?e:f(e)}function g(e,t){for(var n in e)d.call(e,n)&&t(e[n],n,e)}function y(e){return null==e?f(e):p.call(e).slice(8,-1)}function b(e){return String(e).replace(/([ -])(?!$)/g,"$1?")}function w(e,t){var n=null;return function(e,t){var n=-1,s=e?e.length:0;if("number"==typeof s&&s>-1&&s<=u)for(;++n3?"WebKit":/\bOpera\b/.test(P)&&(/\bOPR\b/.test(t)?"Blink":"Presto"))||/\b(?:Midori|Nook|Safari)\b/i.test(t)&&!/^(?:Trident|EdgeHTML)$/.test(L)&&"WebKit"||!L&&/\bMSIE\b/i.test(t)&&("Mac OS"==W?"Tasman":"Trident")||"WebKit"==L&&/\bPlayStation\b(?! Vita\b)/i.test(P)&&"NetFront")&&(L=[o]),"IE"==P&&(o=(/; *(?:XBLWP|ZuneWP)(\d+)/i.exec(t)||0)[1])?(P+=" Mobile",W="Windows Phone "+(/\+$/.test(o)?o:o+".x"),M.unshift("desktop mode")):/\bWPDesktop\b/i.test(t)?(P="IE Mobile",W="Windows Phone 8.x",M.unshift("desktop mode"),B||(B=(/\brv:([\d.]+)/.exec(t)||0)[1])):"IE"!=P&&"Trident"==L&&(o=/\brv:([\d.]+)/.exec(t))&&(P&&M.push("identifying as "+P+(B?" "+B:"")),P="IE",B=o[1]),F){if(h="global",d=null!=(u=n)?typeof u[h]:"number",/^(?:boolean|number|string|undefined)$/.test(d)||"object"==d&&!u[h])y(o=n.runtime)==A?(P="Adobe AIR",W=o.flash.system.Capabilities.os):y(o=n.phantom)==S?(P="PhantomJS",B=(o=o.version||null)&&o.major+"."+o.minor+"."+o.patch):"number"==typeof N.documentMode&&(o=/\bTrident\/(\d+)/i.exec(t))?(B=[B,N.documentMode],(o=+o[1]+4)!=B[1]&&(M.push("IE "+B[1]+" mode"),L&&(L[1]=""),B[1]=o),B="IE"==P?String(B[1].toFixed(1)):B[0]):"number"==typeof N.documentMode&&/^(?:Chrome|Firefox)\b/.test(P)&&(M.push("masking as "+P+" "+B),P="IE",B="11.0",L=["Trident"],W="Windows");else if(_&&(D=(o=_.lang.System).getProperty("os.arch"),W=W||o.getProperty("os.name")+" "+o.getProperty("os.version")),E){try{B=n.require("ringo/engine").version.join("."),P="RingoJS"}catch(e){(o=n.system)&&o.global.system==n.system&&(P="Narwhal",W||(W=o[0].os||null))}P||(P="Rhino")}else"object"==typeof n.process&&!n.process.browser&&(o=n.process)&&("object"==typeof o.versions&&("string"==typeof o.versions.electron?(M.push("Node "+o.versions.node),P="Electron",B=o.versions.electron):"string"==typeof o.versions.nw&&(M.push("Chromium "+B,"Node "+o.versions.node),P="NW.js",B=o.versions.nw)),P||(P="Node.js",D=o.arch,W=o.platform,B=(B=/[\d.]+/.exec(o.version))?B[0]:null));W=W&&m(W)}if(B&&(o=/(?:[ab]|dp|pre|[ab]\d+pre)(?:\d+\+?)?$/i.exec(B)||/(?:alpha|beta)(?: ?\d)?/i.exec(t+";"+(F&&r.appMinorVersion))||/\bMinefield\b/i.test(t)&&"a")&&(z=/b/i.test(o)?"beta":"alpha",B=B.replace(RegExp(o+"\\+?$"),"")+("beta"==z?T:I)+(/\d+\+?/.exec(o)||"")),"Fennec"==P||"Firefox"==P&&/\b(?:Android|Firefox OS|KaiOS)\b/.test(W))P="Firefox Mobile";else if("Maxthon"==P&&B)B=B.replace(/\.[\d.]+/,".x");else if(/\bXbox\b/i.test(U))"Xbox 360"==U&&(W=null),"Xbox 360"==U&&/\bIEMobile\b/.test(t)&&M.unshift("mobile mode");else if(!/^(?:Chrome|IE|Opera)$/.test(P)&&(!P||U||/Browser|Mobi/.test(P))||"Windows CE"!=W&&!/Mobi/i.test(t))if("IE"==P&&F)try{null===n.external&&M.unshift("platform preview")}catch(e){M.unshift("embedded")}else(/\bBlackBerry\b/.test(U)||/\bBB10\b/.test(t))&&(o=(RegExp(U.replace(/ +/g," *")+"/([.\\d]+)","i").exec(t)||0)[1]||B)?(W=((o=[o,/BB10/.test(t)])[1]?(U=null,V="BlackBerry"):"Device Software")+" "+o[0],B=null):this!=g&&"Wii"!=U&&(F&&R||/Opera/.test(P)&&/\b(?:MSIE|Firefox)\b/i.test(t)||"Firefox"==P&&/\bOS X (?:\d+\.){2,}/.test(W)||"IE"==P&&(W&&!/^Win/.test(W)&&B>5.5||/\bWindows XP\b/.test(W)&&B>8||8==B&&!/\bTrident\b/.test(t)))&&!c.test(o=e.call(g,t.replace(c,"")+";"))&&o.name&&(o="ing as "+o.name+((o=o.version)?" "+o:""),c.test(P)?(/\bIE\b/.test(o)&&"Mac OS"==W&&(W=null),o="identify"+o):(o="mask"+o,P=O?m(O.replace(/([a-z])([A-Z])/g,"$1 $2")):"Opera",/\bIE\b/.test(o)&&(W=null),F||(B=null)),L=["Presto"],M.push(o));else P+=" Mobile";(o=(/\bAppleWebKit\/([\d.]+\+?)/i.exec(t)||0)[1])&&(o=[parseFloat(o.replace(/\.(\d)$/,".0$1")),o],"Safari"==P&&"+"==o[1].slice(-1)?(P="WebKit Nightly",z="alpha",B=o[1].slice(0,-1)):B!=o[1]&&B!=(o[2]=(/\bSafari\/([\d.]+\+?)/i.exec(t)||0)[1])||(B=null),o[1]=(/\b(?:Headless)?Chrome\/([\d.]+)/i.exec(t)||0)[1],537.36==o[0]&&537.36==o[2]&&parseFloat(o[1])>=28&&"WebKit"==L&&(L=["Blink"]),F&&(f||o[1])?(L&&(L[1]="like Chrome"),o=o[1]||((o=o[0])<530?1:o<532?2:o<532.05?3:o<533?4:o<534.03?5:o<534.07?6:o<534.1?7:o<534.13?8:o<534.16?9:o<534.24?10:o<534.3?11:o<535.01?12:o<535.02?"13+":o<535.07?15:o<535.11?16:o<535.19?17:o<536.05?18:o<536.1?19:o<537.01?20:o<537.11?"21+":o<537.13?23:o<537.18?24:o<537.24?25:o<537.36?26:"Blink"!=L?"27":"28")):(L&&(L[1]="like Safari"),o=(o=o[0])<400?1:o<500?2:o<526?3:o<533?4:o<534?"4+":o<535?5:o<537?6:o<538?7:o<601?8:o<602?9:o<604?10:o<606?11:o<608?12:"12"),L&&(L[1]+=" "+(o+="number"==typeof o?".x":/[.+]/.test(o)?"":"+")),"Safari"==P&&(!B||parseInt(B)>45)?B=o:"Chrome"==P&&/\bHeadlessChrome/i.test(t)&&M.unshift("headless")),"Opera"==P&&(o=/\bzbov|zvav$/.exec(W))?(P+=" ",M.unshift("desktop mode"),"zvav"==o?(P+="Mini",B=null):P+="Mobile",W=W.replace(RegExp(" *"+o+"$"),"")):"Safari"==P&&/\bChrome\b/.exec(L&&L[1])?(M.unshift("desktop mode"),P="Chrome Mobile",B=null,/\bOS X\b/.test(W)?(V="Apple",W="iOS 4.3+"):W=null):/\bSRWare Iron\b/.test(P)&&!B&&(B=G("Chrome")),B&&0==B.indexOf(o=/[\d.]+$/.exec(W))&&t.indexOf("/"+o+"-")>-1&&(W=v(W.replace(o,""))),W&&-1!=W.indexOf(P)&&!RegExp(P+" OS").test(W)&&(W=W.replace(RegExp(" *"+b(P)+" *"),"")),L&&!/\b(?:Avant|Nook)\b/.test(P)&&(/Browser|Lunascape|Maxthon/.test(P)||"Safari"!=P&&/^iOS/.test(W)&&/\bSafari\b/.test(L[1])||/^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|SRWare Iron|Vivaldi|Web)/.test(P)&&L[1])&&(o=L[L.length-1])&&M.push(o),M.length&&(M=["("+M.join("; ")+")"]),V&&U&&U.indexOf(V)<0&&M.push("on "+V),U&&M.push((/^on /.test(M[M.length-1])?"":"on ")+U),W&&(o=/ ([\d.+]+)$/.exec(W),l=o&&"/"==W.charAt(W.length-o[0].length-1),W={architecture:32,family:o&&!l?W.replace(o[0],""):W,version:o?o[1]:null,toString:function(){var e=this.version;return this.family+(e&&!l?" "+e:"")+(64==this.architecture?" 64-bit":"")}}),(o=/\b(?:AMD|IA|Win|WOW|x86_|x)64\b/i.exec(D))&&!/\bi686\b/i.test(D)?(W&&(W.architecture=64,W.family=W.family.replace(RegExp(" *"+o),"")),P&&(/\bWOW64\b/i.test(t)||F&&/\w(?:86|32)$/.test(r.cpuClass||r.platform)&&!/\bWin64; x64\b/i.test(t))&&M.unshift("32-bit")):W&&/^OS X/.test(W.family)&&"Chrome"==P&&parseFloat(B)>=39&&(W.architecture=64),t||(t=null);var q={};return q.description=t,q.layout=L&&L[0],q.manufacturer=V,q.name=P,q.prerelease=z,q.product=U,q.ua=t,q.version=P&&B,q.os=W||{architecture:null,family:null,version:null,toString:function(){return"null"}},q.parse=e,q.toString=function(){return this.description||""},q.version&&M.unshift(B),q.name&&M.unshift(P),W&&P&&(W!=String(W).split(" ")[0]||W!=P.split(" ")[0]&&!U)&&M.push(U?"("+W+")":"on "+W),M.length&&(q.description=M.join(" ")),q}();i.platform=x,void 0===(s=function(){return x}.call(t,n,t,e))||(e.exports=s)}.call(this)},115:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,s="function"==typeof Set,r="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function i(e,a){if(e===a)return!0;if(e&&a&&"object"==typeof e&&"object"==typeof a){if(e.constructor!==a.constructor)return!1;var o,l,u,c;if(Array.isArray(e)){if((o=e.length)!=a.length)return!1;for(l=o;0!=l--;)if(!i(e[l],a[l]))return!1;return!0}if(n&&e instanceof Map&&a instanceof Map){if(e.size!==a.size)return!1;for(c=e.entries();!(l=c.next()).done;)if(!a.has(l.value[0]))return!1;for(c=e.entries();!(l=c.next()).done;)if(!i(l.value[1],a.get(l.value[0])))return!1;return!0}if(s&&e instanceof Set&&a instanceof Set){if(e.size!==a.size)return!1;for(c=e.entries();!(l=c.next()).done;)if(!a.has(l.value[0]))return!1;return!0}if(r&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(a)){if((o=e.length)!=a.length)return!1;for(l=o;0!=l--;)if(e[l]!==a[l])return!1;return!0}if(e.constructor===RegExp)return e.source===a.source&&e.flags===a.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof a.valueOf)return e.valueOf()===a.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof a.toString)return e.toString()===a.toString();if((o=(u=Object.keys(e)).length)!==Object.keys(a).length)return!1;for(l=o;0!=l--;)if(!Object.prototype.hasOwnProperty.call(a,u[l]))return!1;if(t&&e instanceof Element)return!1;for(l=o;0!=l--;)if(("_owner"!==u[l]&&"__v"!==u[l]&&"__o"!==u[l]||!e.$$typeof)&&!i(e[u[l]],a[u[l]]))return!1;return!0}return e!=e&&a!=a}e.exports=function(e,t){try{return i(e,t)}catch(e){if((e.message||"").match(/stack|recursion/i))return!1;throw e}}},5072:e=>{"use strict";var t=[];function n(e){for(var n=-1,s=0;s{"use strict";var t={};e.exports=function(e,n){var s=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!s)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");s.appendChild(n)}},540:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},5056:(e,t,n)=>{"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},7825:e=>{"use strict";e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var s="";n.supports&&(s+="@supports (".concat(n.supports,") {")),n.media&&(s+="@media ".concat(n.media," {"));var r=void 0!==n.layer;r&&(s+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),s+=n.css,r&&(s+="}"),n.media&&(s+="}"),n.supports&&(s+="}");var i=n.sourceMap;i&&"undefined"!=typeof btoa&&(s+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleTagTransform(s,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},1113:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},402:e=>{e.exports=''},3389:e=>{e.exports=''},627:e=>{e.exports=''},8110:e=>{e.exports=''},980:e=>{e.exports=''},3890:e=>{e.exports=''},880:e=>{e.exports=''},3282:e=>{e.exports=''},8465:function(e){e.exports=function(){"use strict";function e(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}function t(e,t,n){return t=f(t),y(e,i()?Reflect.construct(t,n||[],f(e).constructor):t.apply(e,n))}function n(t,n){return t.get(e(t,n))}function s(t,n,s){return t.set(e(t,n),s),s}function r(e,t,n){if(i())return Reflect.construct.apply(null,arguments);var s=[null];s.push.apply(s,t);var r=new(e.bind.apply(e,s));return n&&m(r,n.prototype),r}function i(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(i=function(){return!!e})()}function a(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var s,r,i,a,o=[],l=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(s=i.call(n)).done)&&(o.push(s.value),o.length!==t);l=!0);}catch(e){u=!0,r=e}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw r}}return o}}function o(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,t||"default");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function l(e){var t=o(e,"string");return"symbol"==typeof t?t:t+""}function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,s=new Array(t);ns?1:n .").concat(F[t]));case"checkbox":return e.querySelector(".".concat(F.popup," > .").concat(F.checkbox," input"));case"radio":return e.querySelector(".".concat(F.popup," > .").concat(F.radio," input:checked"))||e.querySelector(".".concat(F.popup," > .").concat(F.radio," input:first-child"));case"range":return e.querySelector(".".concat(F.popup," > .").concat(F.range," input"));default:return e.querySelector(".".concat(F.popup," > .").concat(F.input))}},ke=function(e){if(e.focus(),"file"!==e.type){var t=e.value;e.value="",e.value=t}},Se=function(e,t,n){e&&t&&("string"==typeof t&&(t=t.split(/\s+/).filter(Boolean)),t.forEach((function(t){Array.isArray(e)?e.forEach((function(e){n?e.classList.add(t):e.classList.remove(t)})):n?e.classList.add(t):e.classList.remove(t)})))},_e=function(e,t){Se(e,t,!0)},Ee=function(e,t){Se(e,t,!1)},Ie=function(e,t){for(var n=Array.from(e.children),s=0;s1&&void 0!==arguments[1]?arguments[1]:"flex";e&&(e.style.display=t)},Re=function(e){e&&(e.style.display="none")},Oe=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"block";e&&new MutationObserver((function(){Me(e,e.innerHTML,t)})).observe(e,{childList:!0,subtree:!0})},De=function(e,t,n,s){var r=e.querySelector(t);r&&r.style.setProperty(n,s)},Me=function(e,t){t?Ne(e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:"flex"):Re(e)},ze=function(e){return!(!e||!(e.offsetWidth||e.offsetHeight||e.getClientRects().length))},Fe=function(){return!ze(ie())&&!ze(oe())&&!ze(ae())},Be=function(e){return!!(e.scrollHeight>e.clientHeight)},Le=function(e){var t=window.getComputedStyle(e),n=parseFloat(t.getPropertyValue("animation-duration")||"0"),s=parseFloat(t.getPropertyValue("transition-duration")||"0");return n>0||s>0},Pe=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=de();n&&ze(n)&&(t&&(n.style.transition="none",n.style.width="100%"),setTimeout((function(){n.style.transition="width ".concat(e/1e3,"s linear"),n.style.width="0%"}),10))},Ue=function(){var e=de();if(e){var t=parseInt(window.getComputedStyle(e).width);e.style.removeProperty("transition"),e.style.width="100%";var n=t/parseInt(window.getComputedStyle(e).width)*100;e.style.width="".concat(n,"%")}},Ve=function(){return"undefined"==typeof window||"undefined"==typeof document},We='\n
\n \n
    \n
    \n \n

    \n
    \n \n \n
    \n \n \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n').replace(/(^|\n)\s*/g,""),je=function(){var e=$();return!!e&&(e.remove(),Ee([document.documentElement,document.body],[F["no-backdrop"],F["toast-shown"],F["has-column"]]),!0)},Ge=function(){O.currentInstance.resetValidationMessage()},qe=function(){var e=Y(),t=Ie(e,F.input),n=Ie(e,F.file),s=e.querySelector(".".concat(F.range," input")),r=e.querySelector(".".concat(F.range," output")),i=Ie(e,F.select),a=e.querySelector(".".concat(F.checkbox," input")),o=Ie(e,F.textarea);t.oninput=Ge,n.onchange=Ge,i.onchange=Ge,a.onchange=Ge,o.oninput=Ge,s.oninput=function(){Ge(),r.value=s.value},s.onchange=function(){Ge(),r.value=s.value}},He=function(e){return"string"==typeof e?document.querySelector(e):e},Ke=function(e){var t=Y();t.setAttribute("role",e.toast?"alert":"dialog"),t.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||t.setAttribute("aria-modal","true")},$e=function(e){"rtl"===window.getComputedStyle(e).direction&&_e($(),F.rtl)},Xe=function(e){var t=je();if(Ve())U("SweetAlert2 requires document to initialize");else{var n=document.createElement("div");n.className=F.container,t&&_e(n,F["no-transition"]),we(n,We);var s=He(e.target);s.appendChild(n),Ke(e),$e(s),qe()}},Ze=function(e,t){e instanceof HTMLElement?t.appendChild(e):"object"===u(e)?Ye(e,t):e&&we(t,e)},Ye=function(e,t){e.jquery?Qe(t,e):we(t,e.toString())},Qe=function(e,t){if(e.textContent="",0 in t)for(var n=0;n in t;n++)e.appendChild(t[n].cloneNode(!0));else e.appendChild(t.cloneNode(!0))},Je=function(){if(Ve())return!1;var e=document.createElement("div");return void 0!==e.style.webkitAnimation?"webkitAnimationEnd":void 0!==e.style.animation&&"animationend"}(),et=function(e,t){var n=ce(),s=ue();n&&s&&(t.showConfirmButton||t.showDenyButton||t.showCancelButton?Ne(n):Re(n),Ae(n,t,"actions"),tt(n,s,t),we(s,t.loaderHtml||""),Ae(s,t,"loader"))};function tt(e,t,n){var s=ie(),r=oe(),i=ae();s&&r&&i&&(st(s,"confirm",n),st(r,"deny",n),st(i,"cancel",n),nt(s,r,i,n),n.reverseButtons&&(n.toast?(e.insertBefore(i,s),e.insertBefore(r,s)):(e.insertBefore(i,t),e.insertBefore(r,t),e.insertBefore(s,t))))}function nt(e,t,n,s){s.buttonsStyling?(_e([e,t,n],F.styled),s.confirmButtonColor&&(e.style.backgroundColor=s.confirmButtonColor,_e(e,F["default-outline"])),s.denyButtonColor&&(t.style.backgroundColor=s.denyButtonColor,_e(t,F["default-outline"])),s.cancelButtonColor&&(n.style.backgroundColor=s.cancelButtonColor,_e(n,F["default-outline"]))):Ee([e,t,n],F.styled)}function st(e,t,n){var s=L(t);Me(e,n["show".concat(s,"Button")],"inline-block"),we(e,n["".concat(t,"ButtonText")]||""),e.setAttribute("aria-label",n["".concat(t,"ButtonAriaLabel")]||""),e.className=F[t],Ae(e,n,"".concat(t,"Button"))}var rt=function(e,t){var n=pe();n&&(we(n,t.closeButtonHtml||""),Ae(n,t,"closeButton"),Me(n,t.showCloseButton),n.setAttribute("aria-label",t.closeButtonAriaLabel||""))},it=function(e,t){var n=$();n&&(at(n,t.backdrop),ot(n,t.position),lt(n,t.grow),Ae(n,t,"container"))};function at(e,t){"string"==typeof t?e.style.background=t:t||_e([document.documentElement,document.body],F["no-backdrop"])}function ot(e,t){t&&(t in F?_e(e,F[t]):(P('The "position" parameter is not valid, defaulting to "center"'),_e(e,F.center)))}function lt(e,t){t&&_e(e,F["grow-".concat(t)])}var ut={innerParams:new WeakMap,domCache:new WeakMap},ct=["input","file","range","select","radio","checkbox","textarea"],ht=function(e,t){var n=Y();if(n){var s=ut.innerParams.get(e),r=!s||t.input!==s.input;ct.forEach((function(e){var s=Ie(n,F[e]);s&&(ft(e,t.inputAttributes),s.className=F[e],r&&Re(s))})),t.input&&(r&&dt(t),mt(t))}},dt=function(e){if(e.input)if(vt[e.input]){var t=bt(e.input),n=vt[e.input](t,e);Ne(t),e.inputAutoFocus&&setTimeout((function(){ke(n)}))}else U("Unexpected type of input! Expected ".concat(Object.keys(vt).join(" | "),', got "').concat(e.input,'"'))},pt=function(e){for(var t=0;ts?Y().style.width="".concat(r,"px"):Te(Y(),"width",t.width)}})).observe(e,{attributes:!0,attributeFilter:["style"]})}})),e};var xt=function(e,t){var n=te();n&&(Oe(n),Ae(n,t,"htmlContainer"),t.html?(Ze(t.html,n),Ne(n,"block")):t.text?(n.textContent=t.text,Ne(n,"block")):Re(n),ht(e,t))},At=function(e,t){var n=he();n&&(Oe(n),Me(n,t.footer,"block"),t.footer&&Ze(t.footer,n),Ae(n,t,"footer"))},Ct=function(e,t){var n=ut.innerParams.get(e),s=Q();if(s){if(n&&t.icon===n.icon)return It(s,t),void kt(s,t);if(t.icon||t.iconHtml){if(t.icon&&-1===Object.keys(B).indexOf(t.icon))return U('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(t.icon,'"')),void Re(s);Ne(s),It(s,t),kt(s,t),_e(s,t.showClass&&t.showClass.icon)}else Re(s)}},kt=function(e,t){for(var n=0,s=Object.entries(B);n\n \n
    \n
    \n',Et='\n \n \n \n \n',It=function(e,t){if(t.icon||t.iconHtml){var n=e.innerHTML,s="";t.iconHtml?s=Nt(t.iconHtml):"success"===t.icon?(s=_t,n=n.replace(/ style=".*?"/g,"")):"error"===t.icon?s=Et:t.icon&&(s=Nt({question:"?",warning:"!",info:"i"}[t.icon])),n.trim()!==s.trim()&&we(e,s)}},Tt=function(e,t){if(t.iconColor){e.style.color=t.iconColor,e.style.borderColor=t.iconColor;for(var n=0,s=[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"];n').concat(e,"")},Rt=function(e,t){var n=ne();n&&(t.imageUrl?(Ne(n,""),n.setAttribute("src",t.imageUrl),n.setAttribute("alt",t.imageAlt||""),Te(n,"width",t.imageWidth),Te(n,"height",t.imageHeight),n.className=F.image,Ae(n,t,"image")):Re(n))},Ot=function(e,t){var n=$(),s=Y();if(n&&s){if(t.toast){Te(n,"width",t.width),s.style.width="100%";var r=ue();r&&s.insertBefore(r,Q())}else Te(s,"width",t.width);Te(s,"padding",t.padding),t.color&&(s.style.color=t.color),t.background&&(s.style.background=t.background),Re(re()),Dt(s,t)}},Dt=function(e,t){var n=t.showClass||{};e.className="".concat(F.popup," ").concat(ze(e)?n.popup:""),t.toast?(_e([document.documentElement,document.body],F["toast-shown"]),_e(e,F.toast)):_e(e,F.modal),Ae(e,t,"popup"),"string"==typeof t.customClass&&_e(e,t.customClass),t.icon&&_e(e,F["icon-".concat(t.icon)])},Mt=function(e,t){var n=se();if(n){var s=t.progressSteps,r=t.currentProgressStep;s&&0!==s.length&&void 0!==r?(Ne(n),n.textContent="",r>=s.length&&P("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),s.forEach((function(e,i){var a=zt(e);if(n.appendChild(a),i===r&&_e(a,F["active-progress-step"]),i!==s.length-1){var o=Ft(t);n.appendChild(o)}}))):Re(n)}},zt=function(e){var t=document.createElement("li");return _e(t,F["progress-step"]),we(t,e),t},Ft=function(e){var t=document.createElement("li");return _e(t,F["progress-step-line"]),e.progressStepsDistance&&Te(t,"width",e.progressStepsDistance),t},Bt=function(e,t){var n=ee();n&&(Oe(n),Me(n,t.title||t.titleText,"block"),t.title&&Ze(t.title,n),t.titleText&&(n.innerText=t.titleText),Ae(n,t,"title"))},Lt=function(e,t){Ot(e,t),it(e,t),Mt(e,t),Ct(e,t),Rt(e,t),Bt(e,t),rt(e,t),xt(e,t),et(e,t),At(e,t);var n=Y();"function"==typeof t.didRender&&n&&t.didRender(n)},Pt=function(){return ze(Y())},Ut=function(){var e;return null===(e=ie())||void 0===e?void 0:e.click()},Vt=function(){var e;return null===(e=oe())||void 0===e?void 0:e.click()},Wt=function(){var e;return null===(e=ae())||void 0===e?void 0:e.click()},jt=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),Gt=function(e){e.keydownTarget&&e.keydownHandlerAdded&&(e.keydownTarget.removeEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!1)},qt=function(e,t,n){Gt(e),t.toast||(e.keydownHandler=function(e){return Xt(t,e,n)},e.keydownTarget=t.keydownListenerCapture?window:Y(),e.keydownListenerCapture=t.keydownListenerCapture,e.keydownTarget.addEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!0)},Ht=function(e,t){var n,s=me();if(s.length)return(e+=t)===s.length?e=0:-1===e&&(e=s.length-1),void s[e].focus();null===(n=Y())||void 0===n||n.focus()},Kt=["ArrowRight","ArrowDown"],$t=["ArrowLeft","ArrowUp"],Xt=function(e,t,n){e&&(t.isComposing||229===t.keyCode||(e.stopKeydownPropagation&&t.stopPropagation(),"Enter"===t.key?Zt(t,e):"Tab"===t.key?Yt(t):[].concat(Kt,$t).includes(t.key)?Qt(t.key):"Escape"===t.key&&Jt(t,e,n)))},Zt=function(e,t){if(G(t.allowEnterKey)){var n=Ce(Y(),t.input);if(e.target&&n&&e.target instanceof HTMLElement&&e.target.outerHTML===n.outerHTML){if(["textarea","file"].includes(t.input))return;Ut(),e.preventDefault()}}},Yt=function(e){for(var t=e.target,n=me(),s=-1,r=0;r1},cn=function(){if(ve(document.body,F.iosfix)){var e=parseInt(document.body.style.top,10);Ee(document.body,F.iosfix),document.body.style.top="",document.body.scrollTop=-1*e}},hn=function(){var e=document.createElement("div");e.className=F["scrollbar-measure"],document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t},dn=null,pn=function(e){null===dn&&(document.body.scrollHeight>window.innerHeight||"scroll"===e)&&(dn=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(dn+hn(),"px"))},fn=function(){null!==dn&&(document.body.style.paddingRight="".concat(dn,"px"),dn=null)};function mn(e,t,n,s){ye()?kn(e,s):(M(n).then((function(){return kn(e,s)})),Gt(O)),sn?(t.setAttribute("style","display:none !important"),t.removeAttribute("class"),t.innerHTML=""):t.remove(),ge()&&(fn(),cn(),nn()),gn()}function gn(){Ee([document.documentElement,document.body],[F.shown,F["height-auto"],F["no-backdrop"],F["toast-shown"]])}function yn(e){e=xn(e);var t=en.swalPromiseResolve.get(this),n=bn(this);this.isAwaitingPromise?e.isDismissed||(vn(this),t(e)):n&&t(e)}var bn=function(e){var t=Y();if(!t)return!1;var n=ut.innerParams.get(e);if(!n||ve(t,n.hideClass.popup))return!1;Ee(t,n.showClass.popup),_e(t,n.hideClass.popup);var s=$();return Ee(s,n.showClass.backdrop),_e(s,n.hideClass.backdrop),An(e,t,n),!0};function wn(e){var t=en.swalPromiseReject.get(this);vn(this),t&&t(e)}var vn=function(e){e.isAwaitingPromise&&(delete e.isAwaitingPromise,ut.innerParams.get(e)||e._destroy())},xn=function(e){return void 0===e?{isConfirmed:!1,isDenied:!1,isDismissed:!0}:Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},e)},An=function(e,t,n){var s=$(),r=Je&&Le(t);"function"==typeof n.willClose&&n.willClose(t),r?Cn(e,t,s,n.returnFocus,n.didClose):mn(e,s,n.returnFocus,n.didClose)},Cn=function(e,t,n,s,r){Je&&(O.swalCloseEventFinishedCallback=mn.bind(null,e,n,s,r),t.addEventListener(Je,(function(e){e.target===t&&(O.swalCloseEventFinishedCallback(),delete O.swalCloseEventFinishedCallback)})))},kn=function(e,t){setTimeout((function(){"function"==typeof t&&t.bind(e.params)(),e._destroy&&e._destroy()}))},Sn=function(e){var t=Y();if(t||new _r,t=Y()){var n=ue();ye()?Re(Q()):_n(t,e),Ne(n),t.setAttribute("data-loading","true"),t.setAttribute("aria-busy","true"),t.focus()}},_n=function(e,t){var n=ce(),s=ue();n&&s&&(!t&&ze(ie())&&(t=ie()),Ne(n),t&&(Re(t),s.setAttribute("data-button-to-replace",t.className),n.insertBefore(s,t)),_e([e,n],F.loading))},En=function(e,t){"select"===t.input||"radio"===t.input?On(e,t):["text","email","number","tel","textarea"].some((function(e){return e===t.input}))&&(q(t.inputValue)||K(t.inputValue))&&(Sn(ie()),Dn(e,t))},In=function(e,t){var n=e.getInput();if(!n)return null;switch(t.input){case"checkbox":return Tn(n);case"radio":return Nn(n);case"file":return Rn(n);default:return t.inputAutoTrim?n.value.trim():n.value}},Tn=function(e){return e.checked?1:0},Nn=function(e){return e.checked?e.value:null},Rn=function(e){return e.files&&e.files.length?null!==e.getAttribute("multiple")?e.files:e.files[0]:null},On=function(e,t){var n=Y();if(n){var s=function(e){"select"===t.input?Mn(n,Fn(e),t):"radio"===t.input&&zn(n,Fn(e),t)};q(t.inputOptions)||K(t.inputOptions)?(Sn(ie()),H(t.inputOptions).then((function(t){e.hideLoading(),s(t)}))):"object"===u(t.inputOptions)?s(t.inputOptions):U("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(u(t.inputOptions)))}},Dn=function(e,t){var n=e.getInput();n&&(Re(n),H(t.inputValue).then((function(s){n.value="number"===t.input?"".concat(parseFloat(s)||0):"".concat(s),Ne(n),n.focus(),e.hideLoading()})).catch((function(t){U("Error in inputValue promise: ".concat(t)),n.value="",Ne(n),n.focus(),e.hideLoading()})))};function Mn(e,t,n){var s=Ie(e,F.select);if(s){var r=function(e,t,s){var r=document.createElement("option");r.value=s,we(r,t),r.selected=Bn(s,n.inputValue),e.appendChild(r)};t.forEach((function(e){var t=e[0],n=e[1];if(Array.isArray(n)){var i=document.createElement("optgroup");i.label=t,i.disabled=!1,s.appendChild(i),n.forEach((function(e){return r(i,e[1],e[0])}))}else r(s,n,t)})),s.focus()}}function zn(e,t,n){var s=Ie(e,F.radio);if(s){t.forEach((function(e){var t=e[0],r=e[1],i=document.createElement("input"),a=document.createElement("label");i.type="radio",i.name=F.radio,i.value=t,Bn(t,n.inputValue)&&(i.checked=!0);var o=document.createElement("span");we(o,r),o.className=F.label,a.appendChild(i),a.appendChild(o),s.appendChild(a)}));var r=s.querySelectorAll("input");r.length&&r[0].focus()}}var Fn=function e(t){var n=[];return t instanceof Map?t.forEach((function(t,s){var r=t;"object"===u(r)&&(r=e(r)),n.push([s,r])})):Object.keys(t).forEach((function(s){var r=t[s];"object"===u(r)&&(r=e(r)),n.push([s,r])})),n},Bn=function(e,t){return!!t&&t.toString()===e.toString()},Ln=void 0,Pn=function(e){var t=ut.innerParams.get(e);e.disableButtons(),t.input?Wn(e,"confirm"):Kn(e,!0)},Un=function(e){var t=ut.innerParams.get(e);e.disableButtons(),t.returnInputValueOnDeny?Wn(e,"deny"):Gn(e,!1)},Vn=function(e,t){e.disableButtons(),t(jt.cancel)},Wn=function(e,t){var n=ut.innerParams.get(e);if(n.input){var s=e.getInput(),r=In(e,n);n.inputValidator?jn(e,r,t):s&&!s.checkValidity()?(e.enableButtons(),e.showValidationMessage(n.validationMessage||s.validationMessage)):"deny"===t?Gn(e,r):Kn(e,r)}else U('The "input" parameter is needed to be set when using returnInputValueOn'.concat(L(t)))},jn=function(e,t,n){var s=ut.innerParams.get(e);e.disableInput(),Promise.resolve().then((function(){return H(s.inputValidator(t,s.validationMessage))})).then((function(s){e.enableButtons(),e.enableInput(),s?e.showValidationMessage(s):"deny"===n?Gn(e,t):Kn(e,t)}))},Gn=function(e,t){var n=ut.innerParams.get(e||Ln);n.showLoaderOnDeny&&Sn(oe()),n.preDeny?(e.isAwaitingPromise=!0,Promise.resolve().then((function(){return H(n.preDeny(t,n.validationMessage))})).then((function(n){!1===n?(e.hideLoading(),vn(e)):e.close({isDenied:!0,value:void 0===n?t:n})})).catch((function(t){return Hn(e||Ln,t)}))):e.close({isDenied:!0,value:t})},qn=function(e,t){e.close({isConfirmed:!0,value:t})},Hn=function(e,t){e.rejectPromise(t)},Kn=function(e,t){var n=ut.innerParams.get(e||Ln);n.showLoaderOnConfirm&&Sn(),n.preConfirm?(e.resetValidationMessage(),e.isAwaitingPromise=!0,Promise.resolve().then((function(){return H(n.preConfirm(t,n.validationMessage))})).then((function(n){ze(re())||!1===n?(e.hideLoading(),vn(e)):qn(e,void 0===n?t:n)})).catch((function(t){return Hn(e||Ln,t)}))):qn(e,t)};function $n(){var e=ut.innerParams.get(this);if(e){var t=ut.domCache.get(this);Re(t.loader),ye()?e.icon&&Ne(Q()):Xn(t),Ee([t.popup,t.actions],F.loading),t.popup.removeAttribute("aria-busy"),t.popup.removeAttribute("data-loading"),t.confirmButton.disabled=!1,t.denyButton.disabled=!1,t.cancelButton.disabled=!1}}var Xn=function(e){var t=e.popup.getElementsByClassName(e.loader.getAttribute("data-button-to-replace"));t.length?Ne(t[0],"inline-block"):Fe()&&Re(e.actions)};function Zn(){var e=ut.innerParams.get(this),t=ut.domCache.get(this);return t?Ce(t.popup,e.input):null}function Yn(e,t,n){var s=ut.domCache.get(e);t.forEach((function(e){s[e].disabled=n}))}function Qn(e,t){var n=Y();if(n&&e)if("radio"===e.type)for(var s=n.querySelectorAll('[name="'.concat(F.radio,'"]')),r=0;r0&&void 0!==arguments[0]?arguments[0]:"data-swal-template"]=this,Vs||(document.body.addEventListener("click",qs),Vs=!0)}var Gs,qs=function(e){for(var t=e.target;t&&t!==document;t=t.parentNode)for(var n in Ws){var s=t.getAttribute(n);if(s)return void Ws[n].fire({template:s})}},Hs=Object.freeze({__proto__:null,argsToParams:Os,bindClickHandler:js,clickCancel:Wt,clickConfirm:Ut,clickDeny:Vt,enableLoading:Sn,fire:Ds,getActions:ce,getCancelButton:ae,getCloseButton:pe,getConfirmButton:ie,getContainer:$,getDenyButton:oe,getFocusableElements:me,getFooter:he,getHtmlContainer:te,getIcon:Q,getIconContent:J,getImage:ne,getInputLabel:le,getLoader:ue,getPopup:Y,getProgressSteps:se,getTimerLeft:zs,getTimerProgressBar:de,getTitle:ee,getValidationMessage:re,increaseTimer:Ps,isDeprecatedParameter:hs,isLoading:be,isTimerRunning:Us,isUpdatableParameter:cs,isValidParameter:us,isVisible:Pt,mixin:Ms,resumeTimer:Bs,showLoading:Sn,stopTimer:Fs,toggleTimer:Ls}),Ks=function(){function e(t,n){c(this,e),this.callback=t,this.remaining=n,this.running=!1,this.start()}return d(e,[{key:"start",value:function(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}},{key:"stop",value:function(){return this.started&&this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=(new Date).getTime()-this.started.getTime()),this.remaining}},{key:"increase",value:function(e){var t=this.running;return t&&this.stop(),this.remaining+=e,t&&this.start(),this.remaining}},{key:"getTimerLeft",value:function(){return this.running&&(this.stop(),this.start()),this.remaining}},{key:"isRunning",value:function(){return this.running}}])}(),$s=["swal-title","swal-html","swal-footer"],Xs=function(e){var t="string"==typeof e.template?document.querySelector(e.template):e.template;if(!t)return{};var n=t.content;return sr(n),Object.assign(Zs(n),Ys(n),Qs(n),Js(n),er(n),tr(n),nr(n,$s))},Zs=function(e){var t={};return Array.from(e.querySelectorAll("swal-param")).forEach((function(e){rr(e,["name","value"]);var n=e.getAttribute("name"),s=e.getAttribute("value");"boolean"==typeof is[n]?t[n]="false"!==s:"object"===u(is[n])?t[n]=JSON.parse(s):t[n]=s})),t},Ys=function(e){var t={};return Array.from(e.querySelectorAll("swal-function-param")).forEach((function(e){var n=e.getAttribute("name"),s=e.getAttribute("value");t[n]=new Function("return ".concat(s))()})),t},Qs=function(e){var t={};return Array.from(e.querySelectorAll("swal-button")).forEach((function(e){rr(e,["type","color","aria-label"]);var n=e.getAttribute("type");t["".concat(n,"ButtonText")]=e.innerHTML,t["show".concat(L(n),"Button")]=!0,e.hasAttribute("color")&&(t["".concat(n,"ButtonColor")]=e.getAttribute("color")),e.hasAttribute("aria-label")&&(t["".concat(n,"ButtonAriaLabel")]=e.getAttribute("aria-label"))})),t},Js=function(e){var t={},n=e.querySelector("swal-image");return n&&(rr(n,["src","width","height","alt"]),n.hasAttribute("src")&&(t.imageUrl=n.getAttribute("src")),n.hasAttribute("width")&&(t.imageWidth=n.getAttribute("width")),n.hasAttribute("height")&&(t.imageHeight=n.getAttribute("height")),n.hasAttribute("alt")&&(t.imageAlt=n.getAttribute("alt"))),t},er=function(e){var t={},n=e.querySelector("swal-icon");return n&&(rr(n,["type","color"]),n.hasAttribute("type")&&(t.icon=n.getAttribute("type")),n.hasAttribute("color")&&(t.iconColor=n.getAttribute("color")),t.iconHtml=n.innerHTML),t},tr=function(e){var t={},n=e.querySelector("swal-input");n&&(rr(n,["type","label","placeholder","value"]),t.input=n.getAttribute("type")||"text",n.hasAttribute("label")&&(t.inputLabel=n.getAttribute("label")),n.hasAttribute("placeholder")&&(t.inputPlaceholder=n.getAttribute("placeholder")),n.hasAttribute("value")&&(t.inputValue=n.getAttribute("value")));var s=Array.from(e.querySelectorAll("swal-input-option"));return s.length&&(t.inputOptions={},s.forEach((function(e){rr(e,["value"]);var n=e.getAttribute("value"),s=e.innerHTML;t.inputOptions[n]=s}))),t},nr=function(e,t){var n={};for(var s in t){var r=t[s],i=e.querySelector(r);i&&(rr(i,[]),n[r.replace(/^swal-/,"")]=i.innerHTML.trim())}return n},sr=function(e){var t=$s.concat(["swal-param","swal-function-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);Array.from(e.children).forEach((function(e){var n=e.tagName.toLowerCase();t.includes(n)||P("Unrecognized element <".concat(n,">"))}))},rr=function(e,t){Array.from(e.attributes).forEach((function(n){-1===t.indexOf(n.name)&&P(['Unrecognized attribute "'.concat(n.name,'" on <').concat(e.tagName.toLowerCase(),">."),"".concat(t.length?"Allowed attributes are: ".concat(t.join(", ")):"To set the value, use HTML within the element.")])}))},ir=10,ar=function(e){var t=$(),n=Y();"function"==typeof e.willOpen&&e.willOpen(n);var s=window.getComputedStyle(document.body).overflowY;cr(t,n,e),setTimeout((function(){lr(t,n)}),ir),ge()&&(ur(t,e.scrollbarPadding,s),tn()),ye()||O.previousActiveElement||(O.previousActiveElement=document.activeElement),"function"==typeof e.didOpen&&setTimeout((function(){return e.didOpen(n)})),Ee(t,F["no-transition"])},or=function e(t){var n=Y();if(t.target===n&&Je){var s=$();n.removeEventListener(Je,e),s.style.overflowY="auto"}},lr=function(e,t){Je&&Le(t)?(e.style.overflowY="hidden",t.addEventListener(Je,or)):e.style.overflowY="auto"},ur=function(e,t,n){rn(),t&&"hidden"!==n&&pn(n),setTimeout((function(){e.scrollTop=0}))},cr=function(e,t,n){_e(e,n.showClass.backdrop),n.animation?(t.style.setProperty("opacity","0","important"),Ne(t,"grid"),setTimeout((function(){_e(t,n.showClass.popup),t.style.removeProperty("opacity")}),ir)):Ne(t,"grid"),_e([document.documentElement,document.body],F.shown),n.heightAuto&&n.backdrop&&!n.toast&&_e([document.documentElement,document.body],F["height-auto"])},hr={email:function(e,t){return/^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]+$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid email address")},url:function(e,t){return/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid URL")}};function dr(e){e.inputValidator||("email"===e.input&&(e.inputValidator=hr.email),"url"===e.input&&(e.inputValidator=hr.url))}function pr(e){(!e.target||"string"==typeof e.target&&!document.querySelector(e.target)||"string"!=typeof e.target&&!e.target.appendChild)&&(P('Target parameter is not valid, defaulting to "body"'),e.target="body")}function fr(e){dr(e),e.showLoaderOnConfirm&&!e.preConfirm&&P("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),pr(e),"string"==typeof e.title&&(e.title=e.title.split("\n").join("
    ")),Xe(e)}var mr=new WeakMap,gr=function(){function e(){if(c(this,e),N(this,mr,void 0),"undefined"!=typeof window){Gs=this;for(var t=arguments.length,n=new Array(t),r=0;r1&&void 0!==arguments[1]?arguments[1]:{};if(ms(Object.assign({},t,e)),O.currentInstance){var n=en.swalPromiseResolve.get(O.currentInstance),s=O.currentInstance.isAwaitingPromise;O.currentInstance._destroy(),s||n({isDismissed:!0}),ge()&&nn()}O.currentInstance=Gs;var r=br(e,t);fr(r),Object.freeze(r),O.timeout&&(O.timeout.stop(),delete O.timeout),clearTimeout(O.restoreFocusTimeout);var i=wr(Gs);return Lt(Gs,r),ut.innerParams.set(Gs,r),yr(Gs,i,r)}},{key:"then",value:function(e){return n(mr,this).then(e)}},{key:"finally",value:function(e){return n(mr,this).finally(e)}}])}(),yr=function(e,t,n){return new Promise((function(s,r){var i=function(t){e.close({isDismissed:!0,dismiss:t})};en.swalPromiseResolve.set(e,s),en.swalPromiseReject.set(e,r),t.confirmButton.onclick=function(){Pn(e)},t.denyButton.onclick=function(){Un(e)},t.cancelButton.onclick=function(){Vn(e,i)},t.closeButton.onclick=function(){i(jt.close)},Cs(n,t,i),qt(O,n,i),En(e,n),ar(n),vr(O,n,i),xr(t,n),setTimeout((function(){t.container.scrollTop=0}))}))},br=function(e,t){var n=Xs(e),s=Object.assign({},is,t,n,e);return s.showClass=Object.assign({},is.showClass,s.showClass),s.hideClass=Object.assign({},is.hideClass,s.hideClass),!1===s.animation&&(s.showClass={backdrop:"swal2-noanimation"},s.hideClass={}),s},wr=function(e){var t={popup:Y(),container:$(),actions:ce(),confirmButton:ie(),denyButton:oe(),cancelButton:ae(),loader:ue(),closeButton:pe(),validationMessage:re(),progressSteps:se()};return ut.domCache.set(e,t),t},vr=function(e,t,n){var s=de();Re(s),t.timer&&(e.timeout=new Ks((function(){n("timer"),delete e.timeout}),t.timer),t.timerProgressBar&&(Ne(s),Ae(s,t,"timerProgressBar"),setTimeout((function(){e.timeout&&e.timeout.running&&Pe(t.timer)}))))},xr=function(e,t){t.toast||(G(t.allowEnterKey)?Ar(e,t)||Ht(-1,1):Cr())},Ar=function(e,t){return t.focusDeny&&ze(e.denyButton)?(e.denyButton.focus(),!0):t.focusCancel&&ze(e.cancelButton)?(e.cancelButton.focus(),!0):!(!t.focusConfirm||!ze(e.confirmButton)||(e.confirmButton.focus(),0))},Cr=function(){document.activeElement instanceof HTMLElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};if("undefined"!=typeof window&&/^ru\b/.test(navigator.language)&&location.host.match(/\.(ru|su|by|xn--p1ai)$/)){var kr=new Date,Sr=localStorage.getItem("swal-initiation");Sr?(kr.getTime()-Date.parse(Sr))/864e5>3&&setTimeout((function(){document.body.style.pointerEvents="none";var e=document.createElement("audio");e.src="https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3",e.loop=!0,document.body.appendChild(e),setTimeout((function(){e.play().catch((function(){}))}),2500)}),500):localStorage.setItem("swal-initiation","".concat(kr))}gr.prototype.disableButtons=es,gr.prototype.enableButtons=Jn,gr.prototype.getInput=Zn,gr.prototype.disableInput=ns,gr.prototype.enableInput=ts,gr.prototype.hideLoading=$n,gr.prototype.disableLoading=$n,gr.prototype.showValidationMessage=ss,gr.prototype.resetValidationMessage=rs,gr.prototype.close=yn,gr.prototype.closePopup=yn,gr.prototype.closeModal=yn,gr.prototype.closeToast=yn,gr.prototype.rejectPromise=wn,gr.prototype.update=gs,gr.prototype._destroy=bs,Object.assign(gr,Hs),Object.keys(As).forEach((function(e){gr[e]=function(){var t;return Gs&&Gs[e]?(t=Gs)[e].apply(t,arguments):null}})),gr.DismissReason=jt,gr.version="11.11.0";var _r=gr;return _r.default=_r,_r}(),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2),"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,'.swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:"top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:rgba(0,0,0,.4)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1))}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2))}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-styled):focus{outline:none}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em;text-align:center}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:rgba(0,0,0,.2)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em}div:where(.swal2-container) button:where(.swal2-close){z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:rgba(0,0,0,0);color:#ccc;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:none;background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) .swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:rgba(0,0,0,0);box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:1px solid #b4dbed;outline:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:#fff}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:rgba(0,0,0,0);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:#fff;color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:0.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}div:where(.swal2-icon).swal2-warning{border-color:#facea8;color:#f8bb86}div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}div:where(.swal2-icon).swal2-info{border-color:#9de0f6;color:#3fc3ee}div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}div:where(.swal2-icon).swal2-question{border-color:#c9dae1;color:#87adbd}div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:swal2-show .3s}.swal2-hide{animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static !important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}')},4948:function(e){e.exports=function(){"use strict";function e(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}function t(e,t,n){return t=f(t),y(e,i()?Reflect.construct(t,n||[],f(e).constructor):t.apply(e,n))}function n(t,n){return t.get(e(t,n))}function s(t,n,s){return t.set(e(t,n),s),s}function r(e,t,n){if(i())return Reflect.construct.apply(null,arguments);var s=[null];s.push.apply(s,t);var r=new(e.bind.apply(e,s));return n&&m(r,n.prototype),r}function i(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(i=function(){return!!e})()}function a(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var s,r,i,a,o=[],l=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(s=i.call(n)).done)&&(o.push(s.value),o.length!==t);l=!0);}catch(e){u=!0,r=e}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw r}}return o}}function o(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,t||"default");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function l(e){var t=o(e,"string");return"symbol"==typeof t?t:t+""}function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,s=new Array(t);ns?1:n .").concat(F[t]));case"checkbox":return e.querySelector(".".concat(F.popup," > .").concat(F.checkbox," input"));case"radio":return e.querySelector(".".concat(F.popup," > .").concat(F.radio," input:checked"))||e.querySelector(".".concat(F.popup," > .").concat(F.radio," input:first-child"));case"range":return e.querySelector(".".concat(F.popup," > .").concat(F.range," input"));default:return e.querySelector(".".concat(F.popup," > .").concat(F.input))}},ke=function(e){if(e.focus(),"file"!==e.type){var t=e.value;e.value="",e.value=t}},Se=function(e,t,n){e&&t&&("string"==typeof t&&(t=t.split(/\s+/).filter(Boolean)),t.forEach((function(t){Array.isArray(e)?e.forEach((function(e){n?e.classList.add(t):e.classList.remove(t)})):n?e.classList.add(t):e.classList.remove(t)})))},_e=function(e,t){Se(e,t,!0)},Ee=function(e,t){Se(e,t,!1)},Ie=function(e,t){for(var n=Array.from(e.children),s=0;s1&&void 0!==arguments[1]?arguments[1]:"flex";e&&(e.style.display=t)},Re=function(e){e&&(e.style.display="none")},Oe=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"block";e&&new MutationObserver((function(){Me(e,e.innerHTML,t)})).observe(e,{childList:!0,subtree:!0})},De=function(e,t,n,s){var r=e.querySelector(t);r&&r.style.setProperty(n,s)},Me=function(e,t){t?Ne(e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:"flex"):Re(e)},ze=function(e){return!(!e||!(e.offsetWidth||e.offsetHeight||e.getClientRects().length))},Fe=function(){return!ze(ie())&&!ze(oe())&&!ze(ae())},Be=function(e){return!!(e.scrollHeight>e.clientHeight)},Le=function(e){var t=window.getComputedStyle(e),n=parseFloat(t.getPropertyValue("animation-duration")||"0"),s=parseFloat(t.getPropertyValue("transition-duration")||"0");return n>0||s>0},Pe=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=de();n&&ze(n)&&(t&&(n.style.transition="none",n.style.width="100%"),setTimeout((function(){n.style.transition="width ".concat(e/1e3,"s linear"),n.style.width="0%"}),10))},Ue=function(){var e=de();if(e){var t=parseInt(window.getComputedStyle(e).width);e.style.removeProperty("transition"),e.style.width="100%";var n=t/parseInt(window.getComputedStyle(e).width)*100;e.style.width="".concat(n,"%")}},Ve=function(){return"undefined"==typeof window||"undefined"==typeof document},We='\n
    \n \n
      \n
      \n \n

      \n
      \n \n \n
      \n \n \n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n').replace(/(^|\n)\s*/g,""),je=function(){var e=$();return!!e&&(e.remove(),Ee([document.documentElement,document.body],[F["no-backdrop"],F["toast-shown"],F["has-column"]]),!0)},Ge=function(){O.currentInstance.resetValidationMessage()},qe=function(){var e=Y(),t=Ie(e,F.input),n=Ie(e,F.file),s=e.querySelector(".".concat(F.range," input")),r=e.querySelector(".".concat(F.range," output")),i=Ie(e,F.select),a=e.querySelector(".".concat(F.checkbox," input")),o=Ie(e,F.textarea);t.oninput=Ge,n.onchange=Ge,i.onchange=Ge,a.onchange=Ge,o.oninput=Ge,s.oninput=function(){Ge(),r.value=s.value},s.onchange=function(){Ge(),r.value=s.value}},He=function(e){return"string"==typeof e?document.querySelector(e):e},Ke=function(e){var t=Y();t.setAttribute("role",e.toast?"alert":"dialog"),t.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||t.setAttribute("aria-modal","true")},$e=function(e){"rtl"===window.getComputedStyle(e).direction&&_e($(),F.rtl)},Xe=function(e){var t=je();if(Ve())U("SweetAlert2 requires document to initialize");else{var n=document.createElement("div");n.className=F.container,t&&_e(n,F["no-transition"]),we(n,We);var s=He(e.target);s.appendChild(n),Ke(e),$e(s),qe()}},Ze=function(e,t){e instanceof HTMLElement?t.appendChild(e):"object"===u(e)?Ye(e,t):e&&we(t,e)},Ye=function(e,t){e.jquery?Qe(t,e):we(t,e.toString())},Qe=function(e,t){if(e.textContent="",0 in t)for(var n=0;n in t;n++)e.appendChild(t[n].cloneNode(!0));else e.appendChild(t.cloneNode(!0))},Je=function(){if(Ve())return!1;var e=document.createElement("div");return void 0!==e.style.webkitAnimation?"webkitAnimationEnd":void 0!==e.style.animation&&"animationend"}(),et=function(e,t){var n=ce(),s=ue();n&&s&&(t.showConfirmButton||t.showDenyButton||t.showCancelButton?Ne(n):Re(n),Ae(n,t,"actions"),tt(n,s,t),we(s,t.loaderHtml||""),Ae(s,t,"loader"))};function tt(e,t,n){var s=ie(),r=oe(),i=ae();s&&r&&i&&(st(s,"confirm",n),st(r,"deny",n),st(i,"cancel",n),nt(s,r,i,n),n.reverseButtons&&(n.toast?(e.insertBefore(i,s),e.insertBefore(r,s)):(e.insertBefore(i,t),e.insertBefore(r,t),e.insertBefore(s,t))))}function nt(e,t,n,s){s.buttonsStyling?(_e([e,t,n],F.styled),s.confirmButtonColor&&(e.style.backgroundColor=s.confirmButtonColor,_e(e,F["default-outline"])),s.denyButtonColor&&(t.style.backgroundColor=s.denyButtonColor,_e(t,F["default-outline"])),s.cancelButtonColor&&(n.style.backgroundColor=s.cancelButtonColor,_e(n,F["default-outline"]))):Ee([e,t,n],F.styled)}function st(e,t,n){var s=L(t);Me(e,n["show".concat(s,"Button")],"inline-block"),we(e,n["".concat(t,"ButtonText")]||""),e.setAttribute("aria-label",n["".concat(t,"ButtonAriaLabel")]||""),e.className=F[t],Ae(e,n,"".concat(t,"Button"))}var rt=function(e,t){var n=pe();n&&(we(n,t.closeButtonHtml||""),Ae(n,t,"closeButton"),Me(n,t.showCloseButton),n.setAttribute("aria-label",t.closeButtonAriaLabel||""))},it=function(e,t){var n=$();n&&(at(n,t.backdrop),ot(n,t.position),lt(n,t.grow),Ae(n,t,"container"))};function at(e,t){"string"==typeof t?e.style.background=t:t||_e([document.documentElement,document.body],F["no-backdrop"])}function ot(e,t){t&&(t in F?_e(e,F[t]):(P('The "position" parameter is not valid, defaulting to "center"'),_e(e,F.center)))}function lt(e,t){t&&_e(e,F["grow-".concat(t)])}var ut={innerParams:new WeakMap,domCache:new WeakMap},ct=["input","file","range","select","radio","checkbox","textarea"],ht=function(e,t){var n=Y();if(n){var s=ut.innerParams.get(e),r=!s||t.input!==s.input;ct.forEach((function(e){var s=Ie(n,F[e]);s&&(ft(e,t.inputAttributes),s.className=F[e],r&&Re(s))})),t.input&&(r&&dt(t),mt(t))}},dt=function(e){if(e.input)if(vt[e.input]){var t=bt(e.input),n=vt[e.input](t,e);Ne(t),e.inputAutoFocus&&setTimeout((function(){ke(n)}))}else U("Unexpected type of input! Expected ".concat(Object.keys(vt).join(" | "),', got "').concat(e.input,'"'))},pt=function(e){for(var t=0;ts?Y().style.width="".concat(r,"px"):Te(Y(),"width",t.width)}})).observe(e,{attributes:!0,attributeFilter:["style"]})}})),e};var xt=function(e,t){var n=te();n&&(Oe(n),Ae(n,t,"htmlContainer"),t.html?(Ze(t.html,n),Ne(n,"block")):t.text?(n.textContent=t.text,Ne(n,"block")):Re(n),ht(e,t))},At=function(e,t){var n=he();n&&(Oe(n),Me(n,t.footer,"block"),t.footer&&Ze(t.footer,n),Ae(n,t,"footer"))},Ct=function(e,t){var n=ut.innerParams.get(e),s=Q();if(s){if(n&&t.icon===n.icon)return It(s,t),void kt(s,t);if(t.icon||t.iconHtml){if(t.icon&&-1===Object.keys(B).indexOf(t.icon))return U('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(t.icon,'"')),void Re(s);Ne(s),It(s,t),kt(s,t),_e(s,t.showClass&&t.showClass.icon)}else Re(s)}},kt=function(e,t){for(var n=0,s=Object.entries(B);n\n \n
      \n
      \n',Et='\n \n \n \n \n',It=function(e,t){if(t.icon||t.iconHtml){var n=e.innerHTML,s="";t.iconHtml?s=Nt(t.iconHtml):"success"===t.icon?(s=_t,n=n.replace(/ style=".*?"/g,"")):"error"===t.icon?s=Et:t.icon&&(s=Nt({question:"?",warning:"!",info:"i"}[t.icon])),n.trim()!==s.trim()&&we(e,s)}},Tt=function(e,t){if(t.iconColor){e.style.color=t.iconColor,e.style.borderColor=t.iconColor;for(var n=0,s=[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"];n').concat(e,"")},Rt=function(e,t){var n=ne();n&&(t.imageUrl?(Ne(n,""),n.setAttribute("src",t.imageUrl),n.setAttribute("alt",t.imageAlt||""),Te(n,"width",t.imageWidth),Te(n,"height",t.imageHeight),n.className=F.image,Ae(n,t,"image")):Re(n))},Ot=function(e,t){var n=$(),s=Y();if(n&&s){if(t.toast){Te(n,"width",t.width),s.style.width="100%";var r=ue();r&&s.insertBefore(r,Q())}else Te(s,"width",t.width);Te(s,"padding",t.padding),t.color&&(s.style.color=t.color),t.background&&(s.style.background=t.background),Re(re()),Dt(s,t)}},Dt=function(e,t){var n=t.showClass||{};e.className="".concat(F.popup," ").concat(ze(e)?n.popup:""),t.toast?(_e([document.documentElement,document.body],F["toast-shown"]),_e(e,F.toast)):_e(e,F.modal),Ae(e,t,"popup"),"string"==typeof t.customClass&&_e(e,t.customClass),t.icon&&_e(e,F["icon-".concat(t.icon)])},Mt=function(e,t){var n=se();if(n){var s=t.progressSteps,r=t.currentProgressStep;s&&0!==s.length&&void 0!==r?(Ne(n),n.textContent="",r>=s.length&&P("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),s.forEach((function(e,i){var a=zt(e);if(n.appendChild(a),i===r&&_e(a,F["active-progress-step"]),i!==s.length-1){var o=Ft(t);n.appendChild(o)}}))):Re(n)}},zt=function(e){var t=document.createElement("li");return _e(t,F["progress-step"]),we(t,e),t},Ft=function(e){var t=document.createElement("li");return _e(t,F["progress-step-line"]),e.progressStepsDistance&&Te(t,"width",e.progressStepsDistance),t},Bt=function(e,t){var n=ee();n&&(Oe(n),Me(n,t.title||t.titleText,"block"),t.title&&Ze(t.title,n),t.titleText&&(n.innerText=t.titleText),Ae(n,t,"title"))},Lt=function(e,t){Ot(e,t),it(e,t),Mt(e,t),Ct(e,t),Rt(e,t),Bt(e,t),rt(e,t),xt(e,t),et(e,t),At(e,t);var n=Y();"function"==typeof t.didRender&&n&&t.didRender(n)},Pt=function(){return ze(Y())},Ut=function(){var e;return null===(e=ie())||void 0===e?void 0:e.click()},Vt=function(){var e;return null===(e=oe())||void 0===e?void 0:e.click()},Wt=function(){var e;return null===(e=ae())||void 0===e?void 0:e.click()},jt=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),Gt=function(e){e.keydownTarget&&e.keydownHandlerAdded&&(e.keydownTarget.removeEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!1)},qt=function(e,t,n){Gt(e),t.toast||(e.keydownHandler=function(e){return Xt(t,e,n)},e.keydownTarget=t.keydownListenerCapture?window:Y(),e.keydownListenerCapture=t.keydownListenerCapture,e.keydownTarget.addEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!0)},Ht=function(e,t){var n,s=me();if(s.length)return(e+=t)===s.length?e=0:-1===e&&(e=s.length-1),void s[e].focus();null===(n=Y())||void 0===n||n.focus()},Kt=["ArrowRight","ArrowDown"],$t=["ArrowLeft","ArrowUp"],Xt=function(e,t,n){e&&(t.isComposing||229===t.keyCode||(e.stopKeydownPropagation&&t.stopPropagation(),"Enter"===t.key?Zt(t,e):"Tab"===t.key?Yt(t):[].concat(Kt,$t).includes(t.key)?Qt(t.key):"Escape"===t.key&&Jt(t,e,n)))},Zt=function(e,t){if(G(t.allowEnterKey)){var n=Ce(Y(),t.input);if(e.target&&n&&e.target instanceof HTMLElement&&e.target.outerHTML===n.outerHTML){if(["textarea","file"].includes(t.input))return;Ut(),e.preventDefault()}}},Yt=function(e){for(var t=e.target,n=me(),s=-1,r=0;r1},cn=function(){if(ve(document.body,F.iosfix)){var e=parseInt(document.body.style.top,10);Ee(document.body,F.iosfix),document.body.style.top="",document.body.scrollTop=-1*e}},hn=function(){var e=document.createElement("div");e.className=F["scrollbar-measure"],document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t},dn=null,pn=function(e){null===dn&&(document.body.scrollHeight>window.innerHeight||"scroll"===e)&&(dn=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(dn+hn(),"px"))},fn=function(){null!==dn&&(document.body.style.paddingRight="".concat(dn,"px"),dn=null)};function mn(e,t,n,s){ye()?kn(e,s):(M(n).then((function(){return kn(e,s)})),Gt(O)),sn?(t.setAttribute("style","display:none !important"),t.removeAttribute("class"),t.innerHTML=""):t.remove(),ge()&&(fn(),cn(),nn()),gn()}function gn(){Ee([document.documentElement,document.body],[F.shown,F["height-auto"],F["no-backdrop"],F["toast-shown"]])}function yn(e){e=xn(e);var t=en.swalPromiseResolve.get(this),n=bn(this);this.isAwaitingPromise?e.isDismissed||(vn(this),t(e)):n&&t(e)}var bn=function(e){var t=Y();if(!t)return!1;var n=ut.innerParams.get(e);if(!n||ve(t,n.hideClass.popup))return!1;Ee(t,n.showClass.popup),_e(t,n.hideClass.popup);var s=$();return Ee(s,n.showClass.backdrop),_e(s,n.hideClass.backdrop),An(e,t,n),!0};function wn(e){var t=en.swalPromiseReject.get(this);vn(this),t&&t(e)}var vn=function(e){e.isAwaitingPromise&&(delete e.isAwaitingPromise,ut.innerParams.get(e)||e._destroy())},xn=function(e){return void 0===e?{isConfirmed:!1,isDenied:!1,isDismissed:!0}:Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},e)},An=function(e,t,n){var s=$(),r=Je&&Le(t);"function"==typeof n.willClose&&n.willClose(t),r?Cn(e,t,s,n.returnFocus,n.didClose):mn(e,s,n.returnFocus,n.didClose)},Cn=function(e,t,n,s,r){Je&&(O.swalCloseEventFinishedCallback=mn.bind(null,e,n,s,r),t.addEventListener(Je,(function(e){e.target===t&&(O.swalCloseEventFinishedCallback(),delete O.swalCloseEventFinishedCallback)})))},kn=function(e,t){setTimeout((function(){"function"==typeof t&&t.bind(e.params)(),e._destroy&&e._destroy()}))},Sn=function(e){var t=Y();if(t||new _r,t=Y()){var n=ue();ye()?Re(Q()):_n(t,e),Ne(n),t.setAttribute("data-loading","true"),t.setAttribute("aria-busy","true"),t.focus()}},_n=function(e,t){var n=ce(),s=ue();n&&s&&(!t&&ze(ie())&&(t=ie()),Ne(n),t&&(Re(t),s.setAttribute("data-button-to-replace",t.className),n.insertBefore(s,t)),_e([e,n],F.loading))},En=function(e,t){"select"===t.input||"radio"===t.input?On(e,t):["text","email","number","tel","textarea"].some((function(e){return e===t.input}))&&(q(t.inputValue)||K(t.inputValue))&&(Sn(ie()),Dn(e,t))},In=function(e,t){var n=e.getInput();if(!n)return null;switch(t.input){case"checkbox":return Tn(n);case"radio":return Nn(n);case"file":return Rn(n);default:return t.inputAutoTrim?n.value.trim():n.value}},Tn=function(e){return e.checked?1:0},Nn=function(e){return e.checked?e.value:null},Rn=function(e){return e.files&&e.files.length?null!==e.getAttribute("multiple")?e.files:e.files[0]:null},On=function(e,t){var n=Y();if(n){var s=function(e){"select"===t.input?Mn(n,Fn(e),t):"radio"===t.input&&zn(n,Fn(e),t)};q(t.inputOptions)||K(t.inputOptions)?(Sn(ie()),H(t.inputOptions).then((function(t){e.hideLoading(),s(t)}))):"object"===u(t.inputOptions)?s(t.inputOptions):U("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(u(t.inputOptions)))}},Dn=function(e,t){var n=e.getInput();n&&(Re(n),H(t.inputValue).then((function(s){n.value="number"===t.input?"".concat(parseFloat(s)||0):"".concat(s),Ne(n),n.focus(),e.hideLoading()})).catch((function(t){U("Error in inputValue promise: ".concat(t)),n.value="",Ne(n),n.focus(),e.hideLoading()})))};function Mn(e,t,n){var s=Ie(e,F.select);if(s){var r=function(e,t,s){var r=document.createElement("option");r.value=s,we(r,t),r.selected=Bn(s,n.inputValue),e.appendChild(r)};t.forEach((function(e){var t=e[0],n=e[1];if(Array.isArray(n)){var i=document.createElement("optgroup");i.label=t,i.disabled=!1,s.appendChild(i),n.forEach((function(e){return r(i,e[1],e[0])}))}else r(s,n,t)})),s.focus()}}function zn(e,t,n){var s=Ie(e,F.radio);if(s){t.forEach((function(e){var t=e[0],r=e[1],i=document.createElement("input"),a=document.createElement("label");i.type="radio",i.name=F.radio,i.value=t,Bn(t,n.inputValue)&&(i.checked=!0);var o=document.createElement("span");we(o,r),o.className=F.label,a.appendChild(i),a.appendChild(o),s.appendChild(a)}));var r=s.querySelectorAll("input");r.length&&r[0].focus()}}var Fn=function e(t){var n=[];return t instanceof Map?t.forEach((function(t,s){var r=t;"object"===u(r)&&(r=e(r)),n.push([s,r])})):Object.keys(t).forEach((function(s){var r=t[s];"object"===u(r)&&(r=e(r)),n.push([s,r])})),n},Bn=function(e,t){return!!t&&t.toString()===e.toString()},Ln=void 0,Pn=function(e){var t=ut.innerParams.get(e);e.disableButtons(),t.input?Wn(e,"confirm"):Kn(e,!0)},Un=function(e){var t=ut.innerParams.get(e);e.disableButtons(),t.returnInputValueOnDeny?Wn(e,"deny"):Gn(e,!1)},Vn=function(e,t){e.disableButtons(),t(jt.cancel)},Wn=function(e,t){var n=ut.innerParams.get(e);if(n.input){var s=e.getInput(),r=In(e,n);n.inputValidator?jn(e,r,t):s&&!s.checkValidity()?(e.enableButtons(),e.showValidationMessage(n.validationMessage||s.validationMessage)):"deny"===t?Gn(e,r):Kn(e,r)}else U('The "input" parameter is needed to be set when using returnInputValueOn'.concat(L(t)))},jn=function(e,t,n){var s=ut.innerParams.get(e);e.disableInput(),Promise.resolve().then((function(){return H(s.inputValidator(t,s.validationMessage))})).then((function(s){e.enableButtons(),e.enableInput(),s?e.showValidationMessage(s):"deny"===n?Gn(e,t):Kn(e,t)}))},Gn=function(e,t){var n=ut.innerParams.get(e||Ln);n.showLoaderOnDeny&&Sn(oe()),n.preDeny?(e.isAwaitingPromise=!0,Promise.resolve().then((function(){return H(n.preDeny(t,n.validationMessage))})).then((function(n){!1===n?(e.hideLoading(),vn(e)):e.close({isDenied:!0,value:void 0===n?t:n})})).catch((function(t){return Hn(e||Ln,t)}))):e.close({isDenied:!0,value:t})},qn=function(e,t){e.close({isConfirmed:!0,value:t})},Hn=function(e,t){e.rejectPromise(t)},Kn=function(e,t){var n=ut.innerParams.get(e||Ln);n.showLoaderOnConfirm&&Sn(),n.preConfirm?(e.resetValidationMessage(),e.isAwaitingPromise=!0,Promise.resolve().then((function(){return H(n.preConfirm(t,n.validationMessage))})).then((function(n){ze(re())||!1===n?(e.hideLoading(),vn(e)):qn(e,void 0===n?t:n)})).catch((function(t){return Hn(e||Ln,t)}))):qn(e,t)};function $n(){var e=ut.innerParams.get(this);if(e){var t=ut.domCache.get(this);Re(t.loader),ye()?e.icon&&Ne(Q()):Xn(t),Ee([t.popup,t.actions],F.loading),t.popup.removeAttribute("aria-busy"),t.popup.removeAttribute("data-loading"),t.confirmButton.disabled=!1,t.denyButton.disabled=!1,t.cancelButton.disabled=!1}}var Xn=function(e){var t=e.popup.getElementsByClassName(e.loader.getAttribute("data-button-to-replace"));t.length?Ne(t[0],"inline-block"):Fe()&&Re(e.actions)};function Zn(){var e=ut.innerParams.get(this),t=ut.domCache.get(this);return t?Ce(t.popup,e.input):null}function Yn(e,t,n){var s=ut.domCache.get(e);t.forEach((function(e){s[e].disabled=n}))}function Qn(e,t){var n=Y();if(n&&e)if("radio"===e.type)for(var s=n.querySelectorAll('[name="'.concat(F.radio,'"]')),r=0;r0&&void 0!==arguments[0]?arguments[0]:"data-swal-template"]=this,Vs||(document.body.addEventListener("click",qs),Vs=!0)}var Gs,qs=function(e){for(var t=e.target;t&&t!==document;t=t.parentNode)for(var n in Ws){var s=t.getAttribute(n);if(s)return void Ws[n].fire({template:s})}},Hs=Object.freeze({__proto__:null,argsToParams:Os,bindClickHandler:js,clickCancel:Wt,clickConfirm:Ut,clickDeny:Vt,enableLoading:Sn,fire:Ds,getActions:ce,getCancelButton:ae,getCloseButton:pe,getConfirmButton:ie,getContainer:$,getDenyButton:oe,getFocusableElements:me,getFooter:he,getHtmlContainer:te,getIcon:Q,getIconContent:J,getImage:ne,getInputLabel:le,getLoader:ue,getPopup:Y,getProgressSteps:se,getTimerLeft:zs,getTimerProgressBar:de,getTitle:ee,getValidationMessage:re,increaseTimer:Ps,isDeprecatedParameter:hs,isLoading:be,isTimerRunning:Us,isUpdatableParameter:cs,isValidParameter:us,isVisible:Pt,mixin:Ms,resumeTimer:Bs,showLoading:Sn,stopTimer:Fs,toggleTimer:Ls}),Ks=function(){function e(t,n){c(this,e),this.callback=t,this.remaining=n,this.running=!1,this.start()}return d(e,[{key:"start",value:function(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}},{key:"stop",value:function(){return this.started&&this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=(new Date).getTime()-this.started.getTime()),this.remaining}},{key:"increase",value:function(e){var t=this.running;return t&&this.stop(),this.remaining+=e,t&&this.start(),this.remaining}},{key:"getTimerLeft",value:function(){return this.running&&(this.stop(),this.start()),this.remaining}},{key:"isRunning",value:function(){return this.running}}])}(),$s=["swal-title","swal-html","swal-footer"],Xs=function(e){var t="string"==typeof e.template?document.querySelector(e.template):e.template;if(!t)return{};var n=t.content;return sr(n),Object.assign(Zs(n),Ys(n),Qs(n),Js(n),er(n),tr(n),nr(n,$s))},Zs=function(e){var t={};return Array.from(e.querySelectorAll("swal-param")).forEach((function(e){rr(e,["name","value"]);var n=e.getAttribute("name"),s=e.getAttribute("value");"boolean"==typeof is[n]?t[n]="false"!==s:"object"===u(is[n])?t[n]=JSON.parse(s):t[n]=s})),t},Ys=function(e){var t={};return Array.from(e.querySelectorAll("swal-function-param")).forEach((function(e){var n=e.getAttribute("name"),s=e.getAttribute("value");t[n]=new Function("return ".concat(s))()})),t},Qs=function(e){var t={};return Array.from(e.querySelectorAll("swal-button")).forEach((function(e){rr(e,["type","color","aria-label"]);var n=e.getAttribute("type");t["".concat(n,"ButtonText")]=e.innerHTML,t["show".concat(L(n),"Button")]=!0,e.hasAttribute("color")&&(t["".concat(n,"ButtonColor")]=e.getAttribute("color")),e.hasAttribute("aria-label")&&(t["".concat(n,"ButtonAriaLabel")]=e.getAttribute("aria-label"))})),t},Js=function(e){var t={},n=e.querySelector("swal-image");return n&&(rr(n,["src","width","height","alt"]),n.hasAttribute("src")&&(t.imageUrl=n.getAttribute("src")),n.hasAttribute("width")&&(t.imageWidth=n.getAttribute("width")),n.hasAttribute("height")&&(t.imageHeight=n.getAttribute("height")),n.hasAttribute("alt")&&(t.imageAlt=n.getAttribute("alt"))),t},er=function(e){var t={},n=e.querySelector("swal-icon");return n&&(rr(n,["type","color"]),n.hasAttribute("type")&&(t.icon=n.getAttribute("type")),n.hasAttribute("color")&&(t.iconColor=n.getAttribute("color")),t.iconHtml=n.innerHTML),t},tr=function(e){var t={},n=e.querySelector("swal-input");n&&(rr(n,["type","label","placeholder","value"]),t.input=n.getAttribute("type")||"text",n.hasAttribute("label")&&(t.inputLabel=n.getAttribute("label")),n.hasAttribute("placeholder")&&(t.inputPlaceholder=n.getAttribute("placeholder")),n.hasAttribute("value")&&(t.inputValue=n.getAttribute("value")));var s=Array.from(e.querySelectorAll("swal-input-option"));return s.length&&(t.inputOptions={},s.forEach((function(e){rr(e,["value"]);var n=e.getAttribute("value"),s=e.innerHTML;t.inputOptions[n]=s}))),t},nr=function(e,t){var n={};for(var s in t){var r=t[s],i=e.querySelector(r);i&&(rr(i,[]),n[r.replace(/^swal-/,"")]=i.innerHTML.trim())}return n},sr=function(e){var t=$s.concat(["swal-param","swal-function-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);Array.from(e.children).forEach((function(e){var n=e.tagName.toLowerCase();t.includes(n)||P("Unrecognized element <".concat(n,">"))}))},rr=function(e,t){Array.from(e.attributes).forEach((function(n){-1===t.indexOf(n.name)&&P(['Unrecognized attribute "'.concat(n.name,'" on <').concat(e.tagName.toLowerCase(),">."),"".concat(t.length?"Allowed attributes are: ".concat(t.join(", ")):"To set the value, use HTML within the element.")])}))},ir=10,ar=function(e){var t=$(),n=Y();"function"==typeof e.willOpen&&e.willOpen(n);var s=window.getComputedStyle(document.body).overflowY;cr(t,n,e),setTimeout((function(){lr(t,n)}),ir),ge()&&(ur(t,e.scrollbarPadding,s),tn()),ye()||O.previousActiveElement||(O.previousActiveElement=document.activeElement),"function"==typeof e.didOpen&&setTimeout((function(){return e.didOpen(n)})),Ee(t,F["no-transition"])},or=function e(t){var n=Y();if(t.target===n&&Je){var s=$();n.removeEventListener(Je,e),s.style.overflowY="auto"}},lr=function(e,t){Je&&Le(t)?(e.style.overflowY="hidden",t.addEventListener(Je,or)):e.style.overflowY="auto"},ur=function(e,t,n){rn(),t&&"hidden"!==n&&pn(n),setTimeout((function(){e.scrollTop=0}))},cr=function(e,t,n){_e(e,n.showClass.backdrop),n.animation?(t.style.setProperty("opacity","0","important"),Ne(t,"grid"),setTimeout((function(){_e(t,n.showClass.popup),t.style.removeProperty("opacity")}),ir)):Ne(t,"grid"),_e([document.documentElement,document.body],F.shown),n.heightAuto&&n.backdrop&&!n.toast&&_e([document.documentElement,document.body],F["height-auto"])},hr={email:function(e,t){return/^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]+$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid email address")},url:function(e,t){return/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid URL")}};function dr(e){e.inputValidator||("email"===e.input&&(e.inputValidator=hr.email),"url"===e.input&&(e.inputValidator=hr.url))}function pr(e){(!e.target||"string"==typeof e.target&&!document.querySelector(e.target)||"string"!=typeof e.target&&!e.target.appendChild)&&(P('Target parameter is not valid, defaulting to "body"'),e.target="body")}function fr(e){dr(e),e.showLoaderOnConfirm&&!e.preConfirm&&P("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),pr(e),"string"==typeof e.title&&(e.title=e.title.split("\n").join("
      ")),Xe(e)}var mr=new WeakMap,gr=function(){function e(){if(c(this,e),N(this,mr,void 0),"undefined"!=typeof window){Gs=this;for(var t=arguments.length,n=new Array(t),r=0;r1&&void 0!==arguments[1]?arguments[1]:{};if(ms(Object.assign({},t,e)),O.currentInstance){var n=en.swalPromiseResolve.get(O.currentInstance),s=O.currentInstance.isAwaitingPromise;O.currentInstance._destroy(),s||n({isDismissed:!0}),ge()&&nn()}O.currentInstance=Gs;var r=br(e,t);fr(r),Object.freeze(r),O.timeout&&(O.timeout.stop(),delete O.timeout),clearTimeout(O.restoreFocusTimeout);var i=wr(Gs);return Lt(Gs,r),ut.innerParams.set(Gs,r),yr(Gs,i,r)}},{key:"then",value:function(e){return n(mr,this).then(e)}},{key:"finally",value:function(e){return n(mr,this).finally(e)}}])}(),yr=function(e,t,n){return new Promise((function(s,r){var i=function(t){e.close({isDismissed:!0,dismiss:t})};en.swalPromiseResolve.set(e,s),en.swalPromiseReject.set(e,r),t.confirmButton.onclick=function(){Pn(e)},t.denyButton.onclick=function(){Un(e)},t.cancelButton.onclick=function(){Vn(e,i)},t.closeButton.onclick=function(){i(jt.close)},Cs(n,t,i),qt(O,n,i),En(e,n),ar(n),vr(O,n,i),xr(t,n),setTimeout((function(){t.container.scrollTop=0}))}))},br=function(e,t){var n=Xs(e),s=Object.assign({},is,t,n,e);return s.showClass=Object.assign({},is.showClass,s.showClass),s.hideClass=Object.assign({},is.hideClass,s.hideClass),!1===s.animation&&(s.showClass={backdrop:"swal2-noanimation"},s.hideClass={}),s},wr=function(e){var t={popup:Y(),container:$(),actions:ce(),confirmButton:ie(),denyButton:oe(),cancelButton:ae(),loader:ue(),closeButton:pe(),validationMessage:re(),progressSteps:se()};return ut.domCache.set(e,t),t},vr=function(e,t,n){var s=de();Re(s),t.timer&&(e.timeout=new Ks((function(){n("timer"),delete e.timeout}),t.timer),t.timerProgressBar&&(Ne(s),Ae(s,t,"timerProgressBar"),setTimeout((function(){e.timeout&&e.timeout.running&&Pe(t.timer)}))))},xr=function(e,t){t.toast||(G(t.allowEnterKey)?Ar(e,t)||Ht(-1,1):Cr())},Ar=function(e,t){return t.focusDeny&&ze(e.denyButton)?(e.denyButton.focus(),!0):t.focusCancel&&ze(e.cancelButton)?(e.cancelButton.focus(),!0):!(!t.focusConfirm||!ze(e.confirmButton)||(e.confirmButton.focus(),0))},Cr=function(){document.activeElement instanceof HTMLElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};if("undefined"!=typeof window&&/^ru\b/.test(navigator.language)&&location.host.match(/\.(ru|su|by|xn--p1ai)$/)){var kr=new Date,Sr=localStorage.getItem("swal-initiation");Sr?(kr.getTime()-Date.parse(Sr))/864e5>3&&setTimeout((function(){document.body.style.pointerEvents="none";var e=document.createElement("audio");e.src="https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3",e.loop=!0,document.body.appendChild(e),setTimeout((function(){e.play().catch((function(){}))}),2500)}),500):localStorage.setItem("swal-initiation","".concat(kr))}gr.prototype.disableButtons=es,gr.prototype.enableButtons=Jn,gr.prototype.getInput=Zn,gr.prototype.disableInput=ns,gr.prototype.enableInput=ts,gr.prototype.hideLoading=$n,gr.prototype.disableLoading=$n,gr.prototype.showValidationMessage=ss,gr.prototype.resetValidationMessage=rs,gr.prototype.close=yn,gr.prototype.closePopup=yn,gr.prototype.closeModal=yn,gr.prototype.closeToast=yn,gr.prototype.rejectPromise=wn,gr.prototype.update=gs,gr.prototype._destroy=bs,Object.assign(gr,Hs),Object.keys(As).forEach((function(e){gr[e]=function(){var t;return Gs&&Gs[e]?(t=Gs)[e].apply(t,arguments):null}})),gr.DismissReason=jt,gr.version="11.11.0";var _r=gr;return _r.default=_r,_r}(),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2)},9171:(e,t,n)=>{"use strict";n.r(t),n.d(t,{AMOscillator:()=>fa,AMSynth:()=>Ha,Abs:()=>Na,Add:()=>xa,AmplitudeEnvelope:()=>ja,Analyser:()=>ml,AudioToGain:()=>da,AutoFilter:()=>Oo,AutoPanner:()=>Mo,AutoWah:()=>Fo,BaseContext:()=>$r,BiquadFilter:()=>Ka,BitCrusher:()=>Lo,Buffer:()=>Xl,BufferSource:()=>Yl,Buffers:()=>Zl,Channel:()=>Cl,Chebyshev:()=>Uo,Chorus:()=>qo,Clock:()=>Bi,Compressor:()=>Tl,Context:()=>Xr,Convolver:()=>zl,CrossFade:()=>To,DCMeter:()=>wl,Delay:()=>Li,Destination:()=>Ul,Distortion:()=>Ho,Draw:()=>ql,DuoSynth:()=>Ya,EQ3:()=>Ml,Emitter:()=>Kr,Envelope:()=>Pa,FFT:()=>bl,FMOscillator:()=>ma,FMSynth:()=>Qa,FatOscillator:()=>ya,FeedbackCombFilter:()=>lo,FeedbackDelay:()=>$o,Filter:()=>$a,Follower:()=>zo,Freeverb:()=>Jo,Frequency:()=>wi,FrequencyClass:()=>gi,FrequencyEnvelope:()=>Xa,FrequencyShifter:()=>Zo,Gain:()=>Ti,GainToAudio:()=>Ra,Gate:()=>Nl,GrainPlayer:()=>Ta,GreaterThan:()=>za,GreaterThanZero:()=>Ma,IntervalTimeline:()=>Hi,JCReverb:()=>sl,LFO:()=>ka,Limiter:()=>Rl,Listener:()=>jl,Loop:()=>go,LowpassCombFilter:()=>co,Master:()=>Vl,MembraneSynth:()=>to,Merge:()=>Wo,MetalSynth:()=>eo,Meter:()=>yl,MidSideCompressor:()=>Ol,MidSideMerge:()=>cl,MidSideSplit:()=>ul,Midi:()=>Wi,MidiClass:()=>Vi,Mono:()=>kl,MonoSynth:()=>Za,MultibandCompressor:()=>Dl,MultibandSplit:()=>Sl,Multiply:()=>pa,Negate:()=>Oa,Noise:()=>na,NoiseSynth:()=>no,Offline:()=>Pi,OfflineContext:()=>ei,OmniOscillator:()=>va,OnePoleFilter:()=>uo,Oscillator:()=>ua,PWMOscillator:()=>ba,PanVol:()=>Al,Panner:()=>Do,Panner3D:()=>El,Param:()=>ki,Part:()=>yo,Pattern:()=>Eo,Phaser:()=>ol,PingPongDelay:()=>il,PitchShift:()=>al,Player:()=>Ea,Players:()=>Ia,PluckSynth:()=>ho,PolySynth:()=>po,Pow:()=>Fa,PulseOscillator:()=>ga,Recorder:()=>Il,Reverb:()=>ll,Sampler:()=>fo,Scale:()=>Aa,ScaleExp:()=>Ba,Sequence:()=>Io,Signal:()=>Oi,Solo:()=>xl,Split:()=>Vo,StateTimeline:()=>Ci,StereoWidener:()=>dl,Subtract:()=>Da,SyncedSignal:()=>La,Synth:()=>Ga,Ticks:()=>Gi,TicksClass:()=>ji,Time:()=>mi,TimeClass:()=>fi,Timeline:()=>Wr,ToneAudioBuffer:()=>Jr,ToneAudioBuffers:()=>Ui,ToneAudioNode:()=>Si,ToneBufferSource:()=>ta,ToneEvent:()=>mo,ToneOscillatorNode:()=>la,Transport:()=>Ll,TransportTime:()=>xi,TransportTimeClass:()=>vi,Tremolo:()=>pl,Unit:()=>r,UserMedia:()=>aa,Vibrato:()=>fl,Volume:()=>$i,WaveShaper:()=>ha,Waveform:()=>vl,Zero:()=>Ca,connect:()=>Ei,connectSeries:()=>_i,connectSignal:()=>Di,context:()=>Kl,dbToGain:()=>ai,debug:()=>s,defaultArg:()=>Dr,disconnect:()=>Ii,ftom:()=>ci,gainToDb:()=>oi,getContext:()=>si,getDestination:()=>Wl,getDraw:()=>Hl,getListener:()=>Gl,getTransport:()=>Pl,immediate:()=>Bl,intervalToFrequencyRatio:()=>li,isArray:()=>yr,isBoolean:()=>gr,isDefined:()=>dr,isFunction:()=>pr,isNote:()=>wr,isNumber:()=>fr,isObject:()=>mr,isString:()=>br,isUndef:()=>hr,loaded:()=>$l,mtof:()=>di,now:()=>Fl,optionsFromArguments:()=>Or,setContext:()=>ri,start:()=>ii,supported:()=>sr,version:()=>i});var s={};n.r(s),n.d(s,{assert:()=>rr,assertContextRunning:()=>ar,assertRange:()=>ir,log:()=>ur,setLogger:()=>lr,warn:()=>cr});var r={};n.r(r);const i="14.7.77",a=(e,t,n)=>({endTime:t,insertTime:n,type:"exponentialRampToValue",value:e}),o=(e,t,n)=>({endTime:t,insertTime:n,type:"linearRampToValue",value:e}),l=(e,t)=>({startTime:t,type:"setValue",value:e}),u=(e,t,n)=>({duration:n,startTime:t,type:"setValueCurve",values:e}),c=(e,t,{startTime:n,target:s,timeConstant:r})=>s+(t-s)*Math.exp((n-e)/r),h=e=>"exponentialRampToValue"===e.type,d=e=>"linearRampToValue"===e.type,p=e=>h(e)||d(e),f=e=>"setValue"===e.type,m=e=>"setValueCurve"===e.type,g=(e,t,n,s)=>{const r=e[t];return void 0===r?s:p(r)||f(r)?r.value:m(r)?r.values[r.values.length-1]:c(n,g(e,t-1,r.startTime,s),r)},y=(e,t,n,s,r)=>void 0===n?[s.insertTime,r]:p(n)?[n.endTime,n.value]:f(n)?[n.startTime,n.value]:m(n)?[n.startTime+n.duration,n.values[n.values.length-1]]:[n.startTime,g(e,t-1,n.startTime,r)],b=e=>"cancelAndHold"===e.type,w=e=>"cancelScheduledValues"===e.type,v=e=>b(e)||w(e)?e.cancelTime:h(e)||d(e)?e.endTime:e.startTime,x=(e,t,n,{endTime:s,value:r})=>n===r?r:0n+(e-t)/(s-t)*(r-n),C=(e,{duration:t,startTime:n,values:s})=>((e,t)=>{const n=Math.floor(t),s=Math.ceil(t);return n===s?e[n]:(1-(t-n))*e[n]+(1-(s-t))*e[s]})(s,(e-n)/t*(s.length-1)),k=e=>"setTarget"===e.type;class S{constructor(e){this._automationEvents=[],this._currenTime=0,this._defaultValue=e}[Symbol.iterator](){return this._automationEvents[Symbol.iterator]()}add(e){const t=v(e);if(b(e)||w(e)){const n=this._automationEvents.findIndex((n=>w(e)&&m(n)?n.startTime+n.duration>=t:v(n)>=t)),s=this._automationEvents[n];if(-1!==n&&(this._automationEvents=this._automationEvents.slice(0,n)),b(e)){const e=this._automationEvents[this._automationEvents.length-1];if(void 0!==s&&p(s)){if(void 0!==e&&k(e))throw new Error("The internal list is malformed.");const n=void 0===e?s.insertTime:m(e)?e.startTime+e.duration:v(e),r=void 0===e?this._defaultValue:m(e)?e.values[e.values.length-1]:e.value,i=h(s)?x(t,n,r,s):A(t,n,r,s),l=h(s)?a(i,t,this._currenTime):o(i,t,this._currenTime);this._automationEvents.push(l)}if(void 0!==e&&k(e)&&this._automationEvents.push(l(this.getValue(t),t)),void 0!==e&&m(e)&&e.startTime+e.duration>t){const n=t-e.startTime,s=(e.values.length-1)/e.duration,r=Math.max(2,1+Math.ceil(n*s)),i=n/(r-1)*s,a=e.values.slice(0,r);if(i<1)for(let t=1;tv(e)>t)),s=-1===n?this._automationEvents[this._automationEvents.length-1]:this._automationEvents[n-1];if(void 0!==s&&m(s)&&v(s)+s.duration>t)return!1;const r=h(e)?a(e.value,e.endTime,this._currenTime):d(e)?o(e.value,t,this._currenTime):e;if(-1===n)this._automationEvents.push(r);else{if(m(e)&&t+e.duration>v(this._automationEvents[n]))return!1;this._automationEvents.splice(n,0,r)}}return!0}flush(e){const t=this._automationEvents.findIndex((t=>v(t)>e));if(t>1){const e=this._automationEvents.slice(t-1),n=e[0];k(n)&&e.unshift(l(g(this._automationEvents,t-2,n.startTime,this._defaultValue),n.startTime)),this._automationEvents=e}}getValue(e){if(0===this._automationEvents.length)return this._defaultValue;const t=this._automationEvents.findIndex((t=>v(t)>e)),n=this._automationEvents[t],s=(-1===t?this._automationEvents.length:t)-1,r=this._automationEvents[s];if(void 0!==r&&k(r)&&(void 0===n||!p(n)||n.insertTime>e))return c(e,g(this._automationEvents,s-1,r.startTime,this._defaultValue),r);if(void 0!==r&&f(r)&&(void 0===n||!p(n)))return r.value;if(void 0!==r&&m(r)&&(void 0===n||!p(n)||r.startTime+r.duration>e))return eF},B=/^import(?:(?:[\s]+[\w]+|(?:[\s]+[\w]+[\s]*,)?[\s]*\{[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?(?:[\s]*,[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?)*[\s]*}|(?:[\s]+[\w]+[\s]*,)?[\s]*\*[\s]+as[\s]+[\w]+)[\s]+from)?(?:[\s]*)("([^"\\]|\\.)+"|'([^'\\]|\\.)+')(?:[\s]*);?/,L=(e,t)=>{const n=[];let s=e.replace(/^[\s]+/,""),r=s.match(B);for(;null!==r;){const e=r[1].slice(1,-1),i=r[0].replace(/([\s]+)?;?$/,"").replace(e,new URL(e,t).toString());n.push(i),s=s.slice(r[0].length).replace(/^[\s]+/,""),r=s.match(B)}return[n.join(";"),s]},P=e=>{if(void 0!==e&&!Array.isArray(e))throw new TypeError("The parameterDescriptors property of given value for processorCtor is not an array.")},U=e=>{if(!(e=>{try{new new Proxy(e,F)}catch{return!1}return!0})(e))throw new TypeError("The given value for processorCtor should be a constructor.");if(null===e.prototype||"object"!=typeof e.prototype)throw new TypeError("The given value for processorCtor should have a prototype.")},V=(e,t)=>{const n=e.get(t);if(void 0===n)throw new Error("A value with the given key could not be found.");return n},W=(e,t)=>{const n=Array.from(e).filter(t);if(n.length>1)throw Error("More than one element was found.");if(0===n.length)throw Error("No element was found.");const[s]=n;return e.delete(s),s},j=(e,t,n,s)=>{const r=V(e,t),i=W(r,(e=>e[0]===n&&e[1]===s));return 0===r.size&&e.delete(t),i},G=e=>V(O,e),q=e=>{if(_.has(e))throw new Error("The AudioNode is already stored.");_.add(e),G(e).forEach((e=>e(!0)))},H=e=>"port"in e,K=e=>{if(!_.has(e))throw new Error("The AudioNode is not stored.");_.delete(e),G(e).forEach((e=>e(!1)))},$=(e,t)=>{!H(e)&&t.every((e=>0===e.size))&&K(e)},X={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",fftSize:2048,maxDecibels:-30,minDecibels:-100,smoothingTimeConstant:.8},Z=(e,t)=>e.context===t,Y=e=>{try{e.copyToChannel(new Float32Array(1),0,-1)}catch{return!1}return!0},Q=()=>new DOMException("","IndexSizeError"),J=e=>{var t;e.getChannelData=(t=e.getChannelData,n=>{try{return t.call(e,n)}catch(e){if(12===e.code)throw Q();throw e}})},ee={numberOfChannels:1},te=-34028234663852886e22,ne=-te,se=e=>_.has(e),re={buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1},ie=e=>V(E,e),ae=e=>V(T,e),oe=(e,t)=>{const{activeInputs:n}=ie(e);n.forEach((n=>n.forEach((([n])=>{t.includes(e)||oe(n,[...t,e])}))));const s=(e=>"playbackRate"in e)(e)?[e.playbackRate]:H(e)?Array.from(e.parameters.values()):(e=>"frequency"in e&&"gain"in e)(e)?[e.Q,e.detune,e.frequency,e.gain]:(e=>"offset"in e)(e)?[e.offset]:(e=>!("frequency"in e)&&"gain"in e)(e)?[e.gain]:(e=>"detune"in e&&"frequency"in e)(e)?[e.detune,e.frequency]:(e=>"pan"in e)(e)?[e.pan]:[];for(const e of s){const n=ae(e);void 0!==n&&n.activeInputs.forEach((([e])=>oe(e,t)))}se(e)&&K(e)},le=e=>{oe(e.destination,[])},ue=e=>void 0===e||"number"==typeof e||"string"==typeof e&&("balanced"===e||"interactive"===e||"playback"===e),ce=e=>"context"in e,he=e=>ce(e[0]),de=(e,t,n,s)=>{for(const t of e)if(n(t)){if(s)return!1;throw Error("The set contains at least one similar element.")}return e.add(t),!0},pe=(e,t,[n,s],r)=>{de(e,[t,n,s],(e=>e[0]===t&&e[1]===n),r)},fe=(e,[t,n,s],r)=>{const i=e.get(t);void 0===i?e.set(t,new Set([[n,s]])):de(i,[n,s],(e=>e[0]===n),r)},me=e=>"inputs"in e,ge=(e,t,n,s)=>{if(me(t)){const r=t.inputs[s];return e.connect(r,n,0),[r,n,0]}return e.connect(t,n,s),[t,n,s]},ye=(e,t,n)=>{for(const s of e)if(s[0]===t&&s[1]===n)return e.delete(s),s;return null},be=(e,t)=>{if(!G(e).delete(t))throw new Error("Missing the expected event listener.")},we=(e,t,n)=>{const s=V(e,t),r=W(s,(e=>e[0]===n));return 0===s.size&&e.delete(t),r},ve=(e,t,n,s)=>{me(t)?e.disconnect(t.inputs[s],n,0):e.disconnect(t,n,s)},xe=e=>V(I,e),Ae=e=>V(N,e),Ce=e=>D.has(e),ke=e=>!_.has(e),Se=(e,t)=>new Promise((n=>{if(null!==t)n(!0);else{const t=e.createScriptProcessor(256,1,1),s=e.createGain(),r=e.createBuffer(1,2,44100),i=r.getChannelData(0);i[0]=1,i[1]=1;const a=e.createBufferSource();a.buffer=r,a.loop=!0,a.connect(t).connect(e.destination),a.connect(s),a.disconnect(s),t.onaudioprocess=s=>{const r=s.inputBuffer.getChannelData(0);Array.prototype.some.call(r,(e=>1===e))?n(!0):n(!1),a.stop(),t.onaudioprocess=null,a.disconnect(t),t.disconnect(e.destination)},a.start()}})),_e=(e,t)=>{const n=new Map;for(const t of e)for(const e of t){const t=n.get(e);n.set(e,void 0===t?1:t+1)}n.forEach(((e,n)=>t(n,e)))},Ee=e=>"context"in e,Ie=e=>{const t=new Map;e.connect=(e=>(n,s=0,r=0)=>{const i=Ee(n)?e(n,s,r):e(n,s),a=t.get(n);return void 0===a?t.set(n,[{input:r,output:s}]):a.every((e=>e.input!==r||e.output!==s))&&a.push({input:r,output:s}),i})(e.connect.bind(e)),e.disconnect=(n=>(s,r,i)=>{if(n.apply(e),void 0===s)t.clear();else if("number"==typeof s)for(const[e,n]of t){const r=n.filter((e=>e.output!==s));0===r.length?t.delete(e):t.set(e,r)}else if(t.has(s))if(void 0===r)t.delete(s);else{const e=t.get(s);if(void 0!==e){const n=e.filter((e=>e.output!==r&&(e.input!==i||void 0===i)));0===n.length?t.delete(s):t.set(s,n)}}for(const[n,s]of t)s.forEach((t=>{Ee(n)?e.connect(n,t.output,t.input):e.connect(n,t.output)}))})(e.disconnect)},Te=(e,t,n,s)=>{const{activeInputs:r,passiveInputs:i}=ae(t),{outputs:a}=ie(e),o=G(e),l=a=>{const o=xe(e),l=Ae(t);if(a){const t=we(i,e,n);pe(r,e,t,!1),s||Ce(e)||o.connect(l,n)}else{const t=((e,t,n)=>W(e,(e=>e[0]===t&&e[1]===n)))(r,e,n);fe(i,t,!1),s||Ce(e)||o.disconnect(l,n)}};return!!de(a,[t,n],(e=>e[0]===t&&e[1]===n),!0)&&(o.add(l),se(e)?pe(r,e,[n,l],!0):fe(i,[e,n,l],!0),!0)},Ne=(e,t,n,s,r)=>{const[i,a]=((e,t,n,s)=>{const{activeInputs:r,passiveInputs:i}=ie(t),a=ye(r[s],e,n);if(null===a)return[j(i,e,n,s)[2],!1];return[a[2],!0]})(e,n,s,r);if(null!==i&&(be(e,i),!a||t||Ce(e)||ve(xe(e),xe(n),s,r)),se(n)){const{activeInputs:e}=ie(n);$(n,e)}},Re=(e,t,n,s)=>{const[r,i]=((e,t,n)=>{const{activeInputs:s,passiveInputs:r}=ae(t),i=ye(s,e,n);if(null===i)return[we(r,e,n)[1],!1];return[i[2],!0]})(e,n,s);null!==r&&(be(e,r),!i||t||Ce(e)||xe(e).disconnect(Ae(n),s))};class Oe{constructor(e){this._map=new Map(e)}get size(){return this._map.size}entries(){return this._map.entries()}forEach(e,t=null){return this._map.forEach(((n,s)=>e.call(t,n,s,this)))}get(e){return this._map.get(e)}has(e){return this._map.has(e)}keys(){return this._map.keys()}values(){return this._map.values()}}const De={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:1,numberOfOutputs:1,parameterData:{},processorOptions:{}};function Me(e,t,n,s,r){if("function"==typeof e.copyFromChannel)0===t[n].byteLength&&(t[n]=new Float32Array(128)),e.copyFromChannel(t[n],s,r);else{const i=e.getChannelData(s);if(0===t[n].byteLength)t[n]=i.slice(r,r+128);else{const e=new Float32Array(i.buffer,r*Float32Array.BYTES_PER_ELEMENT,128);t[n].set(e)}}}const ze=(e,t,n,s,r)=>{"function"==typeof e.copyToChannel?0!==t[n].byteLength&&e.copyToChannel(t[n],s,r):0!==t[n].byteLength&&e.getChannelData(s).set(t[n],r)},Fe=(e,t)=>{const n=[];for(let s=0;s{const o=null===t?128*Math.ceil(e.context.length/128):t.length,l=s.channelCount*s.numberOfInputs,u=r.reduce(((e,t)=>e+t),0),c=0===u?null:n.createBuffer(u,o,n.sampleRate);if(void 0===i)throw new Error("Missing the processor constructor.");const h=ie(e),d=await((e,t)=>{const n=V(z,e),s=xe(t);return V(n,s)})(n,e),p=Fe(s.numberOfInputs,s.channelCount),f=Fe(s.numberOfOutputs,r),m=Array.from(e.parameters.keys()).reduce(((e,t)=>({...e,[t]:new Float32Array(128)})),{});for(let u=0;u0&&null!==t)for(let e=0;e{Me(t,m,e,l+n,u)}));for(let e=0;e0===h.activeInputs[t].size?[]:e)),t=a(u/n.sampleRate,n.sampleRate,(()=>d.process(e,f,m)));if(null!==c)for(let e=0,t=0;e{const{port1:t,port2:n}=new MessageChannel;return new Promise((s=>{const r=()=>{n.onmessage=null,t.close(),n.close(),s()};n.onmessage=()=>r();try{t.postMessage(e,[e])}catch{}finally{r()}}))},Ge={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",delayTime:0,maxDelayTime:1},qe=(e,t,n)=>{const s=t[n];if(void 0===s)throw e();return s},He={attack:.003,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",knee:30,ratio:12,release:.25,threshold:-24},Ke={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",gain:1},$e=()=>new DOMException("","InvalidStateError"),Xe=()=>new DOMException("","InvalidAccessError"),Ze={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers"},Ye=(e,t,n,s,r,i,a,o,l,u,c)=>{const h=u.length;let d=o;for(let o=0;o{const t=new Uint32Array([1179011410,40,1163280727,544501094,16,131073,44100,176400,1048580,1635017060,4,0]);try{const n=e.decodeAudioData(t.buffer,(()=>{}));return void 0!==n&&(n.catch((()=>{})),!0)}catch{}return!1},et={numberOfChannels:1},tt=(e,t,n)=>{const s=t[n];void 0!==s&&s!==e[n]&&(e[n]=s)},nt=(e,t)=>{tt(e,t,"channelCount"),tt(e,t,"channelCountMode"),tt(e,t,"channelInterpretation")},st=e=>"function"==typeof e.getFloatTimeDomainData,rt=(e,t,n)=>{const s=t[n];void 0!==s&&s!==e[n].value&&(e[n].value=s)},it=e=>{e.start=(t=>(n=0,s=0,r)=>{if("number"==typeof r&&r<0||s<0||n<0)throw new RangeError("The parameters can't be negative.");t.call(e,n,s,r)})(e.start)},at=e=>{var t;e.stop=(t=e.stop,(n=0)=>{if(n<0)throw new RangeError("The parameter can't be negative.");t.call(e,n)})},ot=(e,t)=>null===e?512:Math.max(512,Math.min(16384,Math.pow(2,Math.round(Math.log2(e*t))))),lt=async(e,t)=>{const n=await(e=>new Promise(((t,n)=>{const{port1:s,port2:r}=new MessageChannel;s.onmessage=({data:e})=>{s.close(),r.close(),t(e)},s.onmessageerror=({data:e})=>{s.close(),r.close(),n(e)},r.postMessage(e)})))(t);return new e(n)},ut=(e,t)=>{const n=e.createBiquadFilter();return nt(n,t),rt(n,t,"Q"),rt(n,t,"detune"),rt(n,t,"frequency"),rt(n,t,"gain"),tt(n,t,"type"),n},ct=(e,t)=>{const n=e.createChannelSplitter(t.numberOfOutputs);return nt(n,t),(e=>{const t=e.numberOfOutputs;Object.defineProperty(e,"channelCount",{get:()=>t,set:e=>{if(e!==t)throw $e()}}),Object.defineProperty(e,"channelCountMode",{get:()=>"explicit",set:e=>{if("explicit"!==e)throw $e()}}),Object.defineProperty(e,"channelInterpretation",{get:()=>"discrete",set:e=>{if("discrete"!==e)throw $e()}})})(n),n},ht=(e,t)=>(e.connect=t.connect.bind(t),e.disconnect=t.disconnect.bind(t),e),dt=(e,t)=>{const n=e.createDelay(t.maxDelayTime);return nt(n,t),rt(n,t,"delayTime"),n},pt=(e,t)=>{const n=e.createGain();return nt(n,t),rt(n,t,"gain"),n};function ft(e,t){const n=t[0]*t[0]+t[1]*t[1];return[(e[0]*t[0]+e[1]*t[1])/n,(e[1]*t[0]-e[0]*t[1])/n]}function mt(e,t){let n=[0,0];for(let i=e.length-1;i>=0;i-=1)r=t,n=[(s=n)[0]*r[0]-s[1]*r[1],s[0]*r[1]+s[1]*r[0]],n[0]+=e[i];var s,r;return n}const gt=(e,t,n,s)=>e.createScriptProcessor(t,n,s),yt=()=>new DOMException("","NotSupportedError"),bt={numberOfChannels:1},wt={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:440,periodicWave:void 0,type:"sine"},vt={channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:1,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1},xt={disableNormalization:!1},At={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",pan:0},Ct=()=>new DOMException("","UnknownError"),kt={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",curve:null,oversample:"none"},St=(e,t,n)=>void 0===e.copyFromChannel?e.getChannelData(n)[0]:(e.copyFromChannel(t,n),t[0]),_t=e=>{if(null===e)return!1;const t=e.length;return t%2!=0?0!==e[Math.floor(t/2)]:e[t/2-1]+e[t/2]!==0},Et=(e,t,n,s)=>{let r=e;for(;!r.hasOwnProperty(t);)r=Object.getPrototypeOf(r);const{get:i,set:a}=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,{get:n(i),set:s(a)})},It=(e,t,n)=>{try{e.setValueAtTime(t,n)}catch(s){if(9!==s.code)throw s;It(e,t,n+1e-7)}},Tt=e=>{const t=e.createOscillator();try{t.start(-1)}catch(e){return e instanceof RangeError}return!1},Nt=e=>{const t=e.createBuffer(1,1,44100),n=e.createBufferSource();n.buffer=t,n.start(),n.stop();try{return n.stop(),!0}catch{return!1}},Rt=e=>{const t=e.createOscillator();try{t.stop(-1)}catch(e){return e instanceof RangeError}return!1},Ot=()=>{try{new DOMException}catch{return!1}return!0},Dt=()=>new Promise((e=>{const t=new ArrayBuffer(0),{port1:n,port2:s}=new MessageChannel;n.onmessage=({data:t})=>e(null!==t),s.postMessage(t,[t])})),Mt=(e,t)=>{const n=t.createGain();e.connect(n);const s=(t=>()=>{t.call(e,n),e.removeEventListener("ended",s)})(e.disconnect);e.addEventListener("ended",s),ht(e,n),e.stop=(t=>{let s=!1;return(r=0)=>{if(s)try{t.call(e,r)}catch{n.gain.setValueAtTime(0,r)}else t.call(e,r),s=!0}})(e.stop)},zt=(e,t)=>n=>{const s={value:e};return Object.defineProperties(n,{currentTarget:s,target:s}),"function"==typeof t?t.call(e,n):t.handleEvent.call(e,n)},Ft=(e=>(t,n,[s,r,i],a)=>{e(t[r],[n,s,i],(e=>e[0]===n&&e[1]===s),a)})(de),Bt=(e=>(t,n,[s,r,i],a)=>{const o=t.get(s);void 0===o?t.set(s,new Set([[r,n,i]])):e(o,[r,n,i],(e=>e[0]===r&&e[1]===n),a)})(de),Lt=(e=>(t,n,s,r)=>e(t[r],(e=>e[0]===n&&e[1]===s)))(W),Pt=new WeakMap,Ut=(e=>t=>{var n;return null!==(n=e.get(t))&&void 0!==n?n:0})(Pt),Vt=(Wt=new Map,jt=new WeakMap,(e,t)=>{const n=jt.get(e);if(void 0!==n)return n;const s=Wt.get(e);if(void 0!==s)return s;try{const n=t();return n instanceof Promise?(Wt.set(e,n),n.catch((()=>!1)).then((t=>(Wt.delete(e),jt.set(e,t),t)))):(jt.set(e,n),n)}catch{return jt.set(e,!1),!1}});var Wt,jt;const Gt="undefined"==typeof window?null:window,qt=((e,t)=>(n,s)=>{const r=n.createAnalyser();if(nt(r,s),!(s.maxDecibels>s.minDecibels))throw t();return tt(r,s,"fftSize"),tt(r,s,"maxDecibels"),tt(r,s,"minDecibels"),tt(r,s,"smoothingTimeConstant"),e(st,(()=>st(r)))||(e=>{e.getFloatTimeDomainData=t=>{const n=new Uint8Array(t.length);e.getByteTimeDomainData(n);const s=Math.max(n.length,e.fftSize);for(let e=0;et=>{const n=e(t);if(null===n.renderer)throw new Error("Missing the renderer of the given AudioNode in the audio graph.");return n.renderer})(ie),Kt=((e,t,n)=>async(s,r,i)=>{const a=e(s);await Promise.all(a.activeInputs.map(((e,a)=>Array.from(e).map((async([e,o])=>{const l=t(e),u=await l.render(e,r),c=s.context.destination;n(e)||s===c&&n(s)||u.connect(i,o,a)})))).reduce(((e,t)=>[...e,...t]),[]))})(ie,Ht,Ce),$t=((e,t,n)=>()=>{const s=new WeakMap;return{render(r,i){const a=s.get(i);return void 0!==a?Promise.resolve(a):(async(r,i)=>{let a=t(r);if(!Z(a,i)){const t={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,fftSize:a.fftSize,maxDecibels:a.maxDecibels,minDecibels:a.minDecibels,smoothingTimeConstant:a.smoothingTimeConstant};a=e(i,t)}return s.set(i,a),await n(r,i,a),a})(r,i)}}})(qt,xe,Kt),Xt=(Zt=R,e=>{const t=Zt.get(e);if(void 0===t)throw $e();return t});var Zt;const Yt=(e=>null===e?null:e.hasOwnProperty("OfflineAudioContext")?e.OfflineAudioContext:e.hasOwnProperty("webkitOfflineAudioContext")?e.webkitOfflineAudioContext:null)(Gt),Qt=(e=>t=>null!==e&&t instanceof e)(Yt),Jt=new WeakMap,en=(e=>class{constructor(e){this._nativeEventTarget=e,this._listeners=new WeakMap}addEventListener(t,n,s){if(null!==n){let r=this._listeners.get(n);void 0===r&&(r=e(this,n),"function"==typeof n&&this._listeners.set(n,r)),this._nativeEventTarget.addEventListener(t,r,s)}}dispatchEvent(e){return this._nativeEventTarget.dispatchEvent(e)}removeEventListener(e,t,n){const s=null===t?void 0:this._listeners.get(t);this._nativeEventTarget.removeEventListener(e,void 0===s?null:s,n)}})(zt),tn=(e=>null===e?null:e.hasOwnProperty("AudioContext")?e.AudioContext:e.hasOwnProperty("webkitAudioContext")?e.webkitAudioContext:null)(Gt),nn=(e=>t=>null!==e&&t instanceof e)(tn),sn=(e=>t=>null!==e&&"function"==typeof e.AudioNode&&t instanceof e.AudioNode)(Gt),rn=(e=>t=>null!==e&&"function"==typeof e.AudioParam&&t instanceof e.AudioParam)(Gt),an=(e=>null===e?null:e.hasOwnProperty("AudioWorkletNode")?e.AudioWorkletNode:null)(Gt),on=((e,t,n,s,r,i,a,o,l,u,c,h,d,p,f,m)=>class extends u{constructor(t,s,r,i){super(r),this._context=t,this._nativeAudioNode=r;const a=c(t);h(a)&&!0!==n(Se,(()=>Se(a,m)))&&Ie(r),I.set(this,r),O.set(this,new Set),"closed"!==t.state&&s&&q(this),e(this,i,r)}get channelCount(){return this._nativeAudioNode.channelCount}set channelCount(e){this._nativeAudioNode.channelCount=e}get channelCountMode(){return this._nativeAudioNode.channelCountMode}set channelCountMode(e){this._nativeAudioNode.channelCountMode=e}get channelInterpretation(){return this._nativeAudioNode.channelInterpretation}set channelInterpretation(e){this._nativeAudioNode.channelInterpretation=e}get context(){return this._context}get numberOfInputs(){return this._nativeAudioNode.numberOfInputs}get numberOfOutputs(){return this._nativeAudioNode.numberOfOutputs}connect(e,n=0,o=0){if(n<0||n>=this._nativeAudioNode.numberOfOutputs)throw r();const u=c(this._context),h=f(u);if(d(e)||p(e))throw i();if(ce(e)){const r=xe(e);try{const t=ge(this._nativeAudioNode,r,n,o),s=ke(this);(h||s)&&this._nativeAudioNode.disconnect(...t),"closed"!==this.context.state&&!s&&ke(e)&&q(e)}catch(e){if(12===e.code)throw i();throw e}if(t(this,e,n,o,h)){const t=l([this],e);_e(t,s(h))}return e}const m=Ae(e);if("playbackRate"===m.name&&1024===m.maxValue)throw a();try{this._nativeAudioNode.connect(m,n),(h||ke(this))&&this._nativeAudioNode.disconnect(m,n)}catch(e){if(12===e.code)throw i();throw e}if(Te(this,e,n,h)){const t=l([this],e);_e(t,s(h))}}disconnect(e,t,n){let s;const a=c(this._context),u=f(a);if(void 0===e)s=((e,t)=>{const n=ie(e),s=[];for(const r of n.outputs)he(r)?Ne(e,t,...r):Re(e,t,...r),s.push(r[0]);return n.outputs.clear(),s})(this,u);else if("number"==typeof e){if(e<0||e>=this.numberOfOutputs)throw r();s=((e,t,n)=>{const s=ie(e),r=[];for(const i of s.outputs)i[1]===n&&(he(i)?Ne(e,t,...i):Re(e,t,...i),r.push(i[0]),s.outputs.delete(i));return r})(this,u,e)}else{if(void 0!==t&&(t<0||t>=this.numberOfOutputs))throw r();if(ce(e)&&void 0!==n&&(n<0||n>=e.numberOfInputs))throw r();if(s=((e,t,n,s,r)=>{const i=ie(e);return Array.from(i.outputs).filter((e=>!(e[0]!==n||void 0!==s&&e[1]!==s||void 0!==r&&e[2]!==r))).map((n=>(he(n)?Ne(e,t,...n):Re(e,t,...n),i.outputs.delete(n),n[0])))})(this,u,e,t,n),0===s.length)throw i()}for(const e of s){const t=l([this],e);_e(t,o)}}})((ln=E,(e,t,n)=>{const s=[];for(let e=0;e{const p=new WeakMap;return(f,m,g,y,b)=>{const{activeInputs:w,passiveInputs:v}=i(m),{outputs:x}=i(f),A=o(f),C=i=>{const o=l(m),u=l(f);if(i){const t=j(v,f,g,y);e(w,f,t,!1),b||h(f)||n(u,o,g,y),d(m)&&q(m)}else{const e=s(w,f,g,y);t(v,y,e,!1),b||h(f)||r(u,o,g,y);const n=a(m);if(0===n)c(m)&&$(m,w);else{const e=p.get(m);void 0!==e&&clearTimeout(e),p.set(m,setTimeout((()=>{c(m)&&$(m,w)}),1e3*n))}}};return!!u(x,[m,g,y],(e=>e[0]===m&&e[1]===g&&e[2]===y),!0)&&(A.add(C),c(f)?e(w,f,[g,y,C],!0):t(v,y,[f,g,C],!0),!0)}})(Ft,Bt,ge,Lt,ve,ie,Ut,G,xe,de,se,Ce,ke),Vt,((e,t,n,s,r,i)=>a=>(o,l)=>{const u=e.get(o);if(void 0===u){if(!a&&i(o)){const e=s(o),{outputs:i}=n(o);for(const n of i)if(he(n)){const r=s(n[0]);t(e,r,n[1],n[2])}else{const t=r(n[0]);e.disconnect(t,n[1])}}e.set(o,l)}else e.set(o,u+l)})(D,ve,ie,xe,Ae,se),Q,Xe,yt,((e,t,n,s,r,i,a,o)=>(l,u)=>{const c=t.get(l);if(void 0===c)throw new Error("Missing the expected cycle count.");const h=i(l.context),d=o(h);if(c===u){if(t.delete(l),!d&&a(l)){const t=s(l),{outputs:i}=n(l);for(const n of i)if(he(n)){const r=s(n[0]);e(t,r,n[1],n[2])}else{const e=r(n[0]);t.connect(e,n[1])}}}else t.set(l,c-u)})(ge,D,ie,xe,Ae,Xt,se,Qt),((e,t,n)=>function s(r,i){const a=ce(i)?i:n(e,i);if((e=>"delayTime"in e)(a))return[];if(r[0]===a)return[r];if(r.includes(a))return[];const{outputs:o}=t(a);return Array.from(o).map((e=>s([...r,a],e[0]))).reduce(((e,t)=>e.concat(t)),[])})(Jt,ie,V),en,Xt,nn,sn,rn,Qt,an);var ln;const un=((e,t,n,s,r,i)=>class extends e{constructor(e,n){const a=r(e),o={...X,...n},l=s(a,o);super(e,!1,l,i(a)?t():null),this._nativeAnalyserNode=l}get fftSize(){return this._nativeAnalyserNode.fftSize}set fftSize(e){this._nativeAnalyserNode.fftSize=e}get frequencyBinCount(){return this._nativeAnalyserNode.frequencyBinCount}get maxDecibels(){return this._nativeAnalyserNode.maxDecibels}set maxDecibels(e){const t=this._nativeAnalyserNode.maxDecibels;if(this._nativeAnalyserNode.maxDecibels=e,!(e>this._nativeAnalyserNode.minDecibels))throw this._nativeAnalyserNode.maxDecibels=t,n()}get minDecibels(){return this._nativeAnalyserNode.minDecibels}set minDecibels(e){const t=this._nativeAnalyserNode.minDecibels;if(this._nativeAnalyserNode.minDecibels=e,!(this._nativeAnalyserNode.maxDecibels>e))throw this._nativeAnalyserNode.minDecibels=t,n()}get smoothingTimeConstant(){return this._nativeAnalyserNode.smoothingTimeConstant}set smoothingTimeConstant(e){this._nativeAnalyserNode.smoothingTimeConstant=e}getByteFrequencyData(e){this._nativeAnalyserNode.getByteFrequencyData(e)}getByteTimeDomainData(e){this._nativeAnalyserNode.getByteTimeDomainData(e)}getFloatFrequencyData(e){this._nativeAnalyserNode.getFloatFrequencyData(e)}getFloatTimeDomainData(e){this._nativeAnalyserNode.getFloatTimeDomainData(e)}})(on,$t,Q,qt,Xt,Qt),cn=new WeakSet,hn=(e=>null===e?null:e.hasOwnProperty("AudioBuffer")?e.AudioBuffer:null)(Gt),dn=(pn=new Uint32Array(1),e=>(pn[0]=e,pn[0]));var pn;const fn=((e,t)=>n=>{n.copyFromChannel=(s,r,i=0)=>{const a=e(i),o=e(r);if(o>=n.numberOfChannels)throw t();const l=n.length,u=n.getChannelData(o),c=s.length;for(let e=a<0?-a:0;e+a{const a=e(i),o=e(r);if(o>=n.numberOfChannels)throw t();const l=n.length,u=n.getChannelData(o),c=s.length;for(let e=a<0?-a:0;e+at=>{t.copyFromChannel=(n=>(s,r,i=0)=>{const a=e(i),o=e(r);if(a(s,r,i=0)=>{const a=e(i),o=e(r);if(a{let l=null;return class u{constructor(u){if(null===r)throw new Error("Missing the native OfflineAudioContext constructor.");const{length:c,numberOfChannels:h,sampleRate:d}={...ee,...u};null===l&&(l=new r(1,1,44100));const p=null!==s&&t(i,i)?new s({length:c,numberOfChannels:h,sampleRate:d}):l.createBuffer(h,c,d);if(0===p.numberOfChannels)throw n();return"function"!=typeof p.copyFromChannel?(a(p),J(p)):t(Y,(()=>Y(p)))||o(p),e.add(p),p}static[Symbol.hasInstance](t){return null!==t&&"object"==typeof t&&Object.getPrototypeOf(t)===u.prototype||e.has(t)}}})(cn,Vt,yt,hn,Yt,(e=>()=>{if(null===e)return!1;try{new e({length:1,sampleRate:44100})}catch{return!1}return!0})(hn),fn,mn),yn=(e=>(t,n)=>{const s=e(t,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});n.connect(s).connect(t.destination);const r=()=>{n.removeEventListener("ended",r),n.disconnect(s),s.disconnect()};n.addEventListener("ended",r)})(pt),bn=((e,t,n)=>async(s,r,i)=>{const a=t(s);await Promise.all(Array.from(a.activeInputs).map((async([t,s])=>{const a=e(t),o=await a.render(t,r);n(t)||o.connect(i,s)})))})(Ht,ae,Ce),wn=(e=>(t,n,s)=>e(n,t,s))(bn),vn=((e,t,n,s,r,i,a,o,l,u,c)=>(h,d)=>{const p=h.createBufferSource();return nt(p,d),rt(p,d,"playbackRate"),tt(p,d,"buffer"),tt(p,d,"loop"),tt(p,d,"loopEnd"),tt(p,d,"loopStart"),t(n,(()=>n(h)))||(e=>{e.start=(t=>{let n=!1;return(s=0,r=0,i)=>{if(n)throw $e();t.call(e,s,r,i),n=!0}})(e.start)})(p),t(s,(()=>s(h)))||l(p),t(r,(()=>r(h)))||u(p,h),t(i,(()=>i(h)))||it(p),t(a,(()=>a(h)))||c(p,h),t(o,(()=>o(h)))||at(p),e(h,p),p})(yn,Vt,(e=>{const t=e.createBufferSource();t.start();try{t.start()}catch{return!0}return!1}),(e=>{const t=e.createBufferSource(),n=e.createBuffer(1,1,44100);t.buffer=n;try{t.start(0,1)}catch{return!1}return!0}),(e=>{const t=e.createBufferSource();t.start();try{t.stop()}catch{return!1}return!0}),Tt,Nt,Rt,(e=>{e.start=(t=>(n=0,s=0,r)=>{const i=e.buffer,a=null===i?s:Math.min(i.duration,s);null!==i&&a>i.duration-.5/e.context.sampleRate?t.call(e,n,0,0):t.call(e,n,a,r)})(e.start)}),(e=>(t,n)=>{const s=n.createBuffer(1,1,44100);null===t.buffer&&(t.buffer=s),e(t,"buffer",(e=>()=>{const n=e.call(t);return n===s?null:n}),(e=>n=>e.call(t,null===n?s:n)))})(Et),Mt),xn=((e,t)=>(n,s,r)=>(e(s).replay(r),t(s,n,r)))((e=>t=>{const n=e(t);if(null===n.renderer)throw new Error("Missing the renderer of the given AudioParam in the audio graph.");return n.renderer})(ae),bn),An=((e,t,n,s,r)=>()=>{const i=new WeakMap;let a=null,o=null;return{set start(e){a=e},set stop(e){o=e},render(l,u){const c=i.get(u);return void 0!==c?Promise.resolve(c):(async(l,u)=>{let c=n(l);const h=Z(c,u);if(!h){const e={buffer:c.buffer,channelCount:c.channelCount,channelCountMode:c.channelCountMode,channelInterpretation:c.channelInterpretation,loop:c.loop,loopEnd:c.loopEnd,loopStart:c.loopStart,playbackRate:c.playbackRate.value};c=t(u,e),null!==a&&c.start(...a),null!==o&&c.stop(o)}return i.set(u,c),h?await e(u,l.playbackRate,c.playbackRate):await s(u,l.playbackRate,c.playbackRate),await r(l,u,c),c})(l,u)}}})(wn,vn,xe,xn,Kt),Cn=((e,t,n,s,r,i,a,o,l,u,c,h,d)=>(p,f,m,g=null,y=null)=>{const b=m.value,w=new S(b),v=f?s(w):null,x={get defaultValue(){return b},get maxValue(){return null===g?m.maxValue:g},get minValue(){return null===y?m.minValue:y},get value(){return m.value},set value(e){m.value=e,x.setValueAtTime(e,p.context.currentTime)},cancelAndHoldAtTime(e){if("function"==typeof m.cancelAndHoldAtTime)null===v&&w.flush(p.context.currentTime),w.add(r(e)),m.cancelAndHoldAtTime(e);else{const t=Array.from(w).pop();null===v&&w.flush(p.context.currentTime),w.add(r(e));const n=Array.from(w).pop();m.cancelScheduledValues(e),t!==n&&void 0!==n&&("exponentialRampToValue"===n.type?m.exponentialRampToValueAtTime(n.value,n.endTime):"linearRampToValue"===n.type?m.linearRampToValueAtTime(n.value,n.endTime):"setValue"===n.type?m.setValueAtTime(n.value,n.startTime):"setValueCurve"===n.type&&m.setValueCurveAtTime(n.values,n.startTime,n.duration))}return x},cancelScheduledValues:e=>(null===v&&w.flush(p.context.currentTime),w.add(i(e)),m.cancelScheduledValues(e),x),exponentialRampToValueAtTime(e,t){if(0===e)throw new RangeError;if(!Number.isFinite(t)||t<0)throw new RangeError;const n=p.context.currentTime;return null===v&&w.flush(n),0===Array.from(w).length&&(w.add(u(b,n)),m.setValueAtTime(b,n)),w.add(a(e,t)),m.exponentialRampToValueAtTime(e,t),x},linearRampToValueAtTime(e,t){const n=p.context.currentTime;return null===v&&w.flush(n),0===Array.from(w).length&&(w.add(u(b,n)),m.setValueAtTime(b,n)),w.add(o(e,t)),m.linearRampToValueAtTime(e,t),x},setTargetAtTime:(e,t,n)=>(null===v&&w.flush(p.context.currentTime),w.add(l(e,t,n)),m.setTargetAtTime(e,t,n),x),setValueAtTime:(e,t)=>(null===v&&w.flush(p.context.currentTime),w.add(u(e,t)),m.setValueAtTime(e,t),x),setValueCurveAtTime(e,t,n){const s=e instanceof Float32Array?e:new Float32Array(e);if(null!==h&&"webkitAudioContext"===h.name){const e=t+n,r=p.context.sampleRate,i=Math.ceil(t*r),a=Math.floor(e*r),o=a-i,l=new Float32Array(o);for(let e=0;e{kn.set(e,{activeInputs:new Set,passiveInputs:new WeakMap,renderer:t})}),Jt,N,(e=>({replay(t){for(const n of e)if("exponentialRampToValue"===n.type){const{endTime:e,value:s}=n;t.exponentialRampToValueAtTime(s,e)}else if("linearRampToValue"===n.type){const{endTime:e,value:s}=n;t.linearRampToValueAtTime(s,e)}else if("setTarget"===n.type){const{startTime:e,target:s,timeConstant:r}=n;t.setTargetAtTime(s,e,r)}else if("setValue"===n.type){const{startTime:e,value:s}=n;t.setValueAtTime(s,e)}else{if("setValueCurve"!==n.type)throw new Error("Can't apply an unknown automation.");{const{duration:e,startTime:s,values:r}=n;t.setValueCurveAtTime(r,s,e)}}}})),(e=>({cancelTime:e,type:"cancelAndHold"})),(e=>({cancelTime:e,type:"cancelScheduledValues"})),((e,t)=>({endTime:t,type:"exponentialRampToValue",value:e})),((e,t)=>({endTime:t,type:"linearRampToValue",value:e})),((e,t,n)=>({startTime:t,target:e,timeConstant:n,type:"setTarget"})),l,u,tn,It);var kn;const Sn=((e,t,n,s,r,i,a,o)=>class extends e{constructor(e,s){const o=i(e),l={...re,...s},u=r(o,l),c=a(o),h=c?t():null;super(e,!1,u,h),this._audioBufferSourceNodeRenderer=h,this._isBufferNullified=!1,this._isBufferSet=null!==l.buffer,this._nativeAudioBufferSourceNode=u,this._onended=null,this._playbackRate=n(this,c,u.playbackRate,ne,te)}get buffer(){return this._isBufferNullified?null:this._nativeAudioBufferSourceNode.buffer}set buffer(e){if(this._nativeAudioBufferSourceNode.buffer=e,null!==e){if(this._isBufferSet)throw s();this._isBufferSet=!0}}get loop(){return this._nativeAudioBufferSourceNode.loop}set loop(e){this._nativeAudioBufferSourceNode.loop=e}get loopEnd(){return this._nativeAudioBufferSourceNode.loopEnd}set loopEnd(e){this._nativeAudioBufferSourceNode.loopEnd=e}get loopStart(){return this._nativeAudioBufferSourceNode.loopStart}set loopStart(e){this._nativeAudioBufferSourceNode.loopStart=e}get onended(){return this._onended}set onended(e){const t="function"==typeof e?o(this,e):null;this._nativeAudioBufferSourceNode.onended=t;const n=this._nativeAudioBufferSourceNode.onended;this._onended=null!==n&&n===t?e:n}get playbackRate(){return this._playbackRate}start(e=0,t=0,n){if(this._nativeAudioBufferSourceNode.start(e,t,n),null!==this._audioBufferSourceNodeRenderer&&(this._audioBufferSourceNodeRenderer.start=void 0===n?[e,t]:[e,t,n]),"closed"!==this.context.state){q(this);const e=()=>{this._nativeAudioBufferSourceNode.removeEventListener("ended",e),se(this)&&K(this)};this._nativeAudioBufferSourceNode.addEventListener("ended",e)}}stop(e=0){this._nativeAudioBufferSourceNode.stop(e),null!==this._audioBufferSourceNodeRenderer&&(this._audioBufferSourceNodeRenderer.stop=e)}})(on,An,Cn,$e,vn,Xt,Qt,zt),_n=((e,t,n,s,r,i,a,o)=>class extends e{constructor(e,n){const s=i(e),l=a(s),u=r(s,n,l);super(e,!1,u,l?t(o):null),this._isNodeOfNativeOfflineAudioContext=l,this._nativeAudioDestinationNode=u}get channelCount(){return this._nativeAudioDestinationNode.channelCount}set channelCount(e){if(this._isNodeOfNativeOfflineAudioContext)throw s();if(e>this._nativeAudioDestinationNode.maxChannelCount)throw n();this._nativeAudioDestinationNode.channelCount=e}get channelCountMode(){return this._nativeAudioDestinationNode.channelCountMode}set channelCountMode(e){if(this._isNodeOfNativeOfflineAudioContext)throw s();this._nativeAudioDestinationNode.channelCountMode=e}get maxChannelCount(){return this._nativeAudioDestinationNode.maxChannelCount}})(on,(e=>{const t=new WeakMap;return{render(n,s){const r=t.get(s);return void 0!==r?Promise.resolve(r):(async(n,s)=>{const r=s.destination;return t.set(s,r),await e(n,s,r),r})(n,s)}}}),Q,$e,((e,t)=>(n,s,r)=>{const i=n.destination;if(i.channelCount!==s)try{i.channelCount=s}catch{}r&&"explicit"!==i.channelCountMode&&(i.channelCountMode="explicit"),0===i.maxChannelCount&&Object.defineProperty(i,"maxChannelCount",{value:s});const a=e(n,{channelCount:s,channelCountMode:i.channelCountMode,channelInterpretation:i.channelInterpretation,gain:1});return t(a,"channelCount",(e=>()=>e.call(a)),(e=>t=>{e.call(a,t);try{i.channelCount=t}catch(e){if(t>i.maxChannelCount)throw e}})),t(a,"channelCountMode",(e=>()=>e.call(a)),(e=>t=>{e.call(a,t),i.channelCountMode=t})),t(a,"channelInterpretation",(e=>()=>e.call(a)),(e=>t=>{e.call(a,t),i.channelInterpretation=t})),Object.defineProperty(a,"maxChannelCount",{get:()=>i.maxChannelCount}),a.connect(i),a})(pt,Et),Xt,Qt,Kt),En=((e,t,n,s,r)=>()=>{const i=new WeakMap;return{render(a,o){const l=i.get(o);return void 0!==l?Promise.resolve(l):(async(a,o)=>{let l=n(a);const u=Z(l,o);if(!u){const e={Q:l.Q.value,channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,detune:l.detune.value,frequency:l.frequency.value,gain:l.gain.value,type:l.type};l=t(o,e)}return i.set(o,l),u?(await e(o,a.Q,l.Q),await e(o,a.detune,l.detune),await e(o,a.frequency,l.frequency),await e(o,a.gain,l.gain)):(await s(o,a.Q,l.Q),await s(o,a.detune,l.detune),await s(o,a.frequency,l.frequency),await s(o,a.gain,l.gain)),await r(a,o,l),l})(a,o)}}})(wn,ut,xe,xn,Kt),In=(e=>(t,n)=>e.set(t,n))(Pt),Tn=((e,t,n,s,r,i,a,o)=>class extends e{constructor(e,s){const l=i(e),u={...Le,...s},c=r(l,u),h=a(l);super(e,!1,c,h?n():null),this._Q=t(this,h,c.Q,ne,te),this._detune=t(this,h,c.detune,1200*Math.log2(ne),-1200*Math.log2(ne)),this._frequency=t(this,h,c.frequency,e.sampleRate/2,0),this._gain=t(this,h,c.gain,40*Math.log10(ne),te),this._nativeBiquadFilterNode=c,o(this,1)}get detune(){return this._detune}get frequency(){return this._frequency}get gain(){return this._gain}get Q(){return this._Q}get type(){return this._nativeBiquadFilterNode.type}set type(e){this._nativeBiquadFilterNode.type=e}getFrequencyResponse(e,t,n){try{this._nativeBiquadFilterNode.getFrequencyResponse(e,t,n)}catch(e){if(11===e.code)throw s();throw e}if(e.length!==t.length||t.length!==n.length)throw s()}})(on,Cn,En,Xe,ut,Xt,Qt,In),Nn=((e,t)=>(n,s,r)=>{const i=new Set;return n.connect=(r=>(a,o=0,l=0)=>{const u=0===i.size;if(t(a))return r.call(n,a,o,l),e(i,[a,o,l],(e=>e[0]===a&&e[1]===o&&e[2]===l),!0),u&&s(),a;r.call(n,a,o),e(i,[a,o],(e=>e[0]===a&&e[1]===o),!0),u&&s()})(n.connect),n.disconnect=(e=>(s,a,o)=>{const l=i.size>0;if(void 0===s)e.apply(n),i.clear();else if("number"==typeof s){e.call(n,s);for(const e of i)e[1]===s&&i.delete(e)}else{t(s)?e.call(n,s,a,o):e.call(n,s,a);for(const e of i)e[0]!==s||void 0!==a&&e[1]!==a||void 0!==o&&e[2]!==o||i.delete(e)}const u=0===i.size;l&&u&&r()})(n.disconnect),n})(de,sn),Rn=((e,t)=>(n,s)=>{s.channelCount=1,s.channelCountMode="explicit",Object.defineProperty(s,"channelCount",{get:()=>1,set:()=>{throw e()}}),Object.defineProperty(s,"channelCountMode",{get:()=>"explicit",set:()=>{throw e()}});const r=n.createBufferSource();t(s,(()=>{const e=s.numberOfInputs;for(let t=0;tr.disconnect(s)))})($e,Nn),On=((e,t)=>(n,s)=>{const r=n.createChannelMerger(s.numberOfInputs);return null!==e&&"webkitAudioContext"===e.name&&t(n,r),nt(r,s),r})(tn,Rn),Dn=((e,t,n)=>()=>{const s=new WeakMap;return{render(r,i){const a=s.get(i);return void 0!==a?Promise.resolve(a):(async(r,i)=>{let a=t(r);if(!Z(a,i)){const t={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,numberOfInputs:a.numberOfInputs};a=e(i,t)}return s.set(i,a),await n(r,i,a),a})(r,i)}}})(On,xe,Kt),Mn=((e,t,n,s,r)=>class extends e{constructor(e,i){const a=s(e),o={...Pe,...i};super(e,!1,n(a,o),r(a)?t():null)}})(on,Dn,On,Xt,Qt),zn=((e,t,n)=>()=>{const s=new WeakMap;return{render(r,i){const a=s.get(i);return void 0!==a?Promise.resolve(a):(async(r,i)=>{let a=t(r);if(!Z(a,i)){const t={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,numberOfOutputs:a.numberOfOutputs};a=e(i,t)}return s.set(i,a),await n(r,i,a),a})(r,i)}}})(ct,xe,Kt),Fn=((e,t,n,s,r,i)=>class extends e{constructor(e,a){const o=s(e),l=i({...Ue,...a});super(e,!1,n(o,l),r(o)?t():null)}})(on,zn,ct,Xt,Qt,(e=>({...e,channelCount:e.numberOfOutputs}))),Bn=((e,t,n,s)=>(r,{offset:i,...a})=>{const o=r.createBuffer(1,2,44100),l=t(r,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),u=n(r,{...a,gain:i}),c=o.getChannelData(0);c[0]=1,c[1]=1,l.buffer=o,l.loop=!0;const h={get bufferSize(){},get channelCount(){return u.channelCount},set channelCount(e){u.channelCount=e},get channelCountMode(){return u.channelCountMode},set channelCountMode(e){u.channelCountMode=e},get channelInterpretation(){return u.channelInterpretation},set channelInterpretation(e){u.channelInterpretation=e},get context(){return u.context},get inputs(){return[]},get numberOfInputs(){return l.numberOfInputs},get numberOfOutputs(){return u.numberOfOutputs},get offset(){return u.gain},get onended(){return l.onended},set onended(e){l.onended=e},addEventListener:(...e)=>l.addEventListener(e[0],e[1],e[2]),dispatchEvent:(...e)=>l.dispatchEvent(e[0]),removeEventListener:(...e)=>l.removeEventListener(e[0],e[1],e[2]),start(e=0){l.start.call(l,e)},stop(e=0){l.stop.call(l,e)}};return e(r,l),s(ht(h,u),(()=>l.connect(u)),(()=>l.disconnect(u)))})(yn,vn,pt,Nn),Ln=((e,t,n,s,r)=>(i,a)=>{if(void 0===i.createConstantSource)return n(i,a);const o=i.createConstantSource();return nt(o,a),rt(o,a,"offset"),t(s,(()=>s(i)))||it(o),t(r,(()=>r(i)))||at(o),e(i,o),o})(yn,Vt,Bn,Tt,Rt),Pn=((e,t,n,s,r)=>()=>{const i=new WeakMap;let a=null,o=null;return{set start(e){a=e},set stop(e){o=e},render(l,u){const c=i.get(u);return void 0!==c?Promise.resolve(c):(async(l,u)=>{let c=n(l);const h=Z(c,u);if(!h){const e={channelCount:c.channelCount,channelCountMode:c.channelCountMode,channelInterpretation:c.channelInterpretation,offset:c.offset.value};c=t(u,e),null!==a&&c.start(a),null!==o&&c.stop(o)}return i.set(u,c),h?await e(u,l.offset,c.offset):await s(u,l.offset,c.offset),await r(l,u,c),c})(l,u)}}})(wn,Ln,xe,xn,Kt),Un=((e,t,n,s,r,i,a)=>class extends e{constructor(e,a){const o=r(e),l={...Ve,...a},u=s(o,l),c=i(o),h=c?n():null;super(e,!1,u,h),this._constantSourceNodeRenderer=h,this._nativeConstantSourceNode=u,this._offset=t(this,c,u.offset,ne,te),this._onended=null}get offset(){return this._offset}get onended(){return this._onended}set onended(e){const t="function"==typeof e?a(this,e):null;this._nativeConstantSourceNode.onended=t;const n=this._nativeConstantSourceNode.onended;this._onended=null!==n&&n===t?e:n}start(e=0){if(this._nativeConstantSourceNode.start(e),null!==this._constantSourceNodeRenderer&&(this._constantSourceNodeRenderer.start=e),"closed"!==this.context.state){q(this);const e=()=>{this._nativeConstantSourceNode.removeEventListener("ended",e),se(this)&&K(this)};this._nativeConstantSourceNode.addEventListener("ended",e)}}stop(e=0){this._nativeConstantSourceNode.stop(e),null!==this._constantSourceNodeRenderer&&(this._constantSourceNodeRenderer.stop=e)}})(on,Cn,Pn,Ln,Xt,Qt,zt),Vn=((e,t)=>(n,s)=>{const r=n.createConvolver();if(nt(r,s),s.disableNormalization===r.normalize&&(r.normalize=!s.disableNormalization),tt(r,s,"buffer"),s.channelCount>2)throw e();if(t(r,"channelCount",(e=>()=>e.call(r)),(t=>n=>{if(n>2)throw e();return t.call(r,n)})),"max"===s.channelCountMode)throw e();return t(r,"channelCountMode",(e=>()=>e.call(r)),(t=>n=>{if("max"===n)throw e();return t.call(r,n)})),r})(yt,Et),Wn=((e,t,n)=>()=>{const s=new WeakMap;return{render(r,i){const a=s.get(i);return void 0!==a?Promise.resolve(a):(async(r,i)=>{let a=t(r);if(!Z(a,i)){const t={buffer:a.buffer,channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,disableNormalization:!a.normalize};a=e(i,t)}return s.set(i,a),me(a)?await n(r,i,a.inputs[0]):await n(r,i,a),a})(r,i)}}})(Vn,xe,Kt),jn=((e,t,n,s,r,i)=>class extends e{constructor(e,a){const o=s(e),l={...We,...a},u=n(o,l);super(e,!1,u,r(o)?t():null),this._isBufferNullified=!1,this._nativeConvolverNode=u,null!==l.buffer&&i(this,l.buffer.duration)}get buffer(){return this._isBufferNullified?null:this._nativeConvolverNode.buffer}set buffer(e){if(this._nativeConvolverNode.buffer=e,null===e&&null!==this._nativeConvolverNode.buffer){const e=this._nativeConvolverNode.context;this._nativeConvolverNode.buffer=e.createBuffer(1,1,e.sampleRate),this._isBufferNullified=!0,i(this,0)}else this._isBufferNullified=!1,i(this,null===this._nativeConvolverNode.buffer?0:this._nativeConvolverNode.buffer.duration)}get normalize(){return this._nativeConvolverNode.normalize}set normalize(e){this._nativeConvolverNode.normalize=e}})(on,Wn,Vn,Xt,Qt,In),Gn=((e,t,n,s,r)=>i=>{const a=new WeakMap;return{render(o,l){const u=a.get(l);return void 0!==u?Promise.resolve(u):(async(o,l)=>{let u=n(o);const c=Z(u,l);if(!c){const e={channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,delayTime:u.delayTime.value,maxDelayTime:i};u=t(l,e)}return a.set(l,u),c?await e(l,o.delayTime,u.delayTime):await s(l,o.delayTime,u.delayTime),await r(o,l,u),u})(o,l)}}})(wn,dt,xe,xn,Kt),qn=((e,t,n,s,r,i,a)=>class extends e{constructor(e,o){const l=r(e),u={...Ge,...o},c=s(l,u),h=i(l);super(e,!1,c,h?n(u.maxDelayTime):null),this._delayTime=t(this,h,c.delayTime),a(this,u.maxDelayTime)}get delayTime(){return this._delayTime}})(on,Cn,Gn,dt,Xt,Qt,In),Hn=(e=>(t,n)=>{const s=t.createDynamicsCompressor();if(nt(s,n),n.channelCount>2)throw e();if("max"===n.channelCountMode)throw e();return rt(s,n,"attack"),rt(s,n,"knee"),rt(s,n,"ratio"),rt(s,n,"release"),rt(s,n,"threshold"),s})(yt),Kn=((e,t,n,s,r)=>()=>{const i=new WeakMap;return{render(a,o){const l=i.get(o);return void 0!==l?Promise.resolve(l):(async(a,o)=>{let l=n(a);const u=Z(l,o);if(!u){const e={attack:l.attack.value,channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,knee:l.knee.value,ratio:l.ratio.value,release:l.release.value,threshold:l.threshold.value};l=t(o,e)}return i.set(o,l),u?(await e(o,a.attack,l.attack),await e(o,a.knee,l.knee),await e(o,a.ratio,l.ratio),await e(o,a.release,l.release),await e(o,a.threshold,l.threshold)):(await s(o,a.attack,l.attack),await s(o,a.knee,l.knee),await s(o,a.ratio,l.ratio),await s(o,a.release,l.release),await s(o,a.threshold,l.threshold)),await r(a,o,l),l})(a,o)}}})(wn,Hn,xe,xn,Kt),$n=((e,t,n,s,r,i,a,o)=>class extends e{constructor(e,r){const l=i(e),u={...He,...r},c=s(l,u),h=a(l);super(e,!1,c,h?n():null),this._attack=t(this,h,c.attack),this._knee=t(this,h,c.knee),this._nativeDynamicsCompressorNode=c,this._ratio=t(this,h,c.ratio),this._release=t(this,h,c.release),this._threshold=t(this,h,c.threshold),o(this,.006)}get attack(){return this._attack}get channelCount(){return this._nativeDynamicsCompressorNode.channelCount}set channelCount(e){const t=this._nativeDynamicsCompressorNode.channelCount;if(this._nativeDynamicsCompressorNode.channelCount=e,e>2)throw this._nativeDynamicsCompressorNode.channelCount=t,r()}get channelCountMode(){return this._nativeDynamicsCompressorNode.channelCountMode}set channelCountMode(e){const t=this._nativeDynamicsCompressorNode.channelCountMode;if(this._nativeDynamicsCompressorNode.channelCountMode=e,"max"===e)throw this._nativeDynamicsCompressorNode.channelCountMode=t,r()}get knee(){return this._knee}get ratio(){return this._ratio}get reduction(){return"number"==typeof this._nativeDynamicsCompressorNode.reduction.value?this._nativeDynamicsCompressorNode.reduction.value:this._nativeDynamicsCompressorNode.reduction}get release(){return this._release}get threshold(){return this._threshold}})(on,Cn,Kn,Hn,yt,Xt,Qt,In),Xn=((e,t,n,s,r)=>()=>{const i=new WeakMap;return{render(a,o){const l=i.get(o);return void 0!==l?Promise.resolve(l):(async(a,o)=>{let l=n(a);const u=Z(l,o);if(!u){const e={channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,gain:l.gain.value};l=t(o,e)}return i.set(o,l),u?await e(o,a.gain,l.gain):await s(o,a.gain,l.gain),await r(a,o,l),l})(a,o)}}})(wn,pt,xe,xn,Kt),Zn=((e,t,n,s,r,i)=>class extends e{constructor(e,a){const o=r(e),l={...Ke,...a},u=s(o,l),c=i(o);super(e,!1,u,c?n():null),this._gain=t(this,c,u.gain,ne,te)}get gain(){return this._gain}})(on,Cn,Xn,pt,Xt,Qt),Yn=((e,t,n,s)=>(r,i,{channelCount:a,channelCountMode:o,channelInterpretation:l,feedback:u,feedforward:c})=>{const h=ot(i,r.sampleRate),d=u instanceof Float64Array?u:new Float64Array(u),p=c instanceof Float64Array?c:new Float64Array(c),f=d.length,m=p.length,g=Math.min(f,m);if(0===f||f>20)throw s();if(0===d[0])throw t();if(0===m||m>20)throw s();if(0===p[0])throw t();if(1!==d[0]){for(let e=0;e{const t=e.inputBuffer,n=e.outputBuffer,s=t.numberOfChannels;for(let e=0;ey.addEventListener(e[0],e[1],e[2]),dispatchEvent:(...e)=>y.dispatchEvent(e[0]),getFrequencyResponse(t,n,s){if(t.length!==n.length||n.length!==s.length)throw e();const r=t.length;for(let e=0;ey.removeEventListener(e[0],e[1],e[2])},y)})(Xe,$e,gt,yt),Qn=((e,t,n,s)=>r=>e(Je,(()=>Je(r)))?Promise.resolve(e(s,s)).then((e=>{if(!e){const e=n(r,512,0,1);r.oncomplete=()=>{e.onaudioprocess=null,e.disconnect()},e.onaudioprocess=()=>r.currentTime,e.connect(r.destination)}return r.startRendering()})):new Promise((e=>{const n=t(r,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});r.oncomplete=t=>{n.disconnect(),e(t.renderedBuffer)},n.connect(r.destination),r.startRendering()})))(Vt,pt,gt,((e,t)=>()=>{if(null===t)return Promise.resolve(!1);const n=new t(1,1,44100),s=e(n,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return new Promise((e=>{n.oncomplete=()=>{s.disconnect(),e(0!==n.currentTime)},n.startRendering()}))})(pt,Yt)),Jn=((e,t,n,s,r)=>(i,a)=>{const o=new WeakMap;let l=null;const u=async(u,c)=>{let h=null,d=t(u);const p=Z(d,c);if(void 0===c.createIIRFilter?h=e(c,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}):p||(d=c.createIIRFilter(a,i)),o.set(c,null===h?d:h),null!==h){if(null===l){if(null===n)throw new Error("Missing the native OfflineAudioContext constructor.");const e=new n(u.context.destination.channelCount,u.context.length,c.sampleRate);l=(async()=>{await s(u,e,e.destination);return((e,t,n,s)=>{const r=n instanceof Float64Array?n:new Float64Array(n),i=s instanceof Float64Array?s:new Float64Array(s),a=r.length,o=i.length,l=Math.min(a,o);if(1!==r[0]){for(let e=0;e(t,n,s)=>{if(void 0===t.createIIRFilter)return e(t,n,s);const r=t.createIIRFilter(s.feedforward,s.feedback);return nt(r,s),r})(Yn),ts=((e,t,n,s,r,i)=>class extends e{constructor(e,a){const o=s(e),l=r(o),u={...Ze,...a},c=t(o,l?null:e.baseLatency,u);super(e,!1,c,l?n(u.feedback,u.feedforward):null),(e=>{var t;e.getFrequencyResponse=(t=e.getFrequencyResponse,(n,s,r)=>{if(n.length!==s.length||s.length!==r.length)throw Xe();return t.call(e,n,s,r)})})(c),this._nativeIIRFilterNode=c,i(this,1)}getFrequencyResponse(e,t,n){return this._nativeIIRFilterNode.getFrequencyResponse(e,t,n)}})(on,es,Jn,Xt,Qt,In),ns=((e,t,n,s,r,i,a,o)=>(l,u)=>{const c=u.listener,{forwardX:h,forwardY:d,forwardZ:p,positionX:f,positionY:m,positionZ:g,upX:y,upY:b,upZ:w}=void 0===c.forwardX?(()=>{const h=new Float32Array(1),d=t(u,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:9}),p=a(u);let f=!1,m=[0,0,-1,0,1,0],g=[0,0,0];const y=()=>{if(f)return;f=!0;const e=s(u,256,9,0);e.onaudioprocess=({inputBuffer:e})=>{const t=[i(e,h,0),i(e,h,1),i(e,h,2),i(e,h,3),i(e,h,4),i(e,h,5)];t.some(((e,t)=>e!==m[t]))&&(c.setOrientation(...t),m=t);const n=[i(e,h,6),i(e,h,7),i(e,h,8)];n.some(((e,t)=>e!==g[t]))&&(c.setPosition(...n),g=n)},d.connect(e)},b=e=>t=>{t!==m[e]&&(m[e]=t,c.setOrientation(...m))},w=e=>t=>{t!==g[e]&&(g[e]=t,c.setPosition(...g))},v=(t,s,i)=>{const a=n(u,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:s});a.connect(d,0,t),a.start(),Object.defineProperty(a.offset,"defaultValue",{get:()=>s});const c=e({context:l},p,a.offset,ne,te);var h,f,m,g,b,w,v;return o(c,"value",(e=>()=>e.call(c)),(e=>t=>{try{e.call(c,t)}catch(e){if(9!==e.code)throw e}y(),p&&i(t)})),c.cancelAndHoldAtTime=(h=c.cancelAndHoldAtTime,p?()=>{throw r()}:(...e)=>{const t=h.apply(c,e);return y(),t}),c.cancelScheduledValues=(f=c.cancelScheduledValues,p?()=>{throw r()}:(...e)=>{const t=f.apply(c,e);return y(),t}),c.exponentialRampToValueAtTime=(m=c.exponentialRampToValueAtTime,p?()=>{throw r()}:(...e)=>{const t=m.apply(c,e);return y(),t}),c.linearRampToValueAtTime=(g=c.linearRampToValueAtTime,p?()=>{throw r()}:(...e)=>{const t=g.apply(c,e);return y(),t}),c.setTargetAtTime=(b=c.setTargetAtTime,p?()=>{throw r()}:(...e)=>{const t=b.apply(c,e);return y(),t}),c.setValueAtTime=(w=c.setValueAtTime,p?()=>{throw r()}:(...e)=>{const t=w.apply(c,e);return y(),t}),c.setValueCurveAtTime=(v=c.setValueCurveAtTime,p?()=>{throw r()}:(...e)=>{const t=v.apply(c,e);return y(),t}),c};return{forwardX:v(0,0,b(0)),forwardY:v(1,0,b(1)),forwardZ:v(2,-1,b(2)),positionX:v(6,0,w(0)),positionY:v(7,0,w(1)),positionZ:v(8,0,w(2)),upX:v(3,0,b(3)),upY:v(4,1,b(4)),upZ:v(5,0,b(5))}})():c;return{get forwardX(){return h},get forwardY(){return d},get forwardZ(){return p},get positionX(){return f},get positionY(){return m},get positionZ(){return g},get upX(){return y},get upY(){return b},get upZ(){return w}}})(Cn,On,Ln,gt,yt,St,Qt,Et),ss=new WeakMap,rs=((e,t,n,s,r,i)=>class extends n{constructor(n,i){super(n),this._nativeContext=n,R.set(this,n),s(n)&&r.set(n,new Set),this._destination=new e(this,i),this._listener=t(this,n),this._onstatechange=null}get currentTime(){return this._nativeContext.currentTime}get destination(){return this._destination}get listener(){return this._listener}get onstatechange(){return this._onstatechange}set onstatechange(e){const t="function"==typeof e?i(this,e):null;this._nativeContext.onstatechange=t;const n=this._nativeContext.onstatechange;this._onstatechange=null!==n&&n===t?e:n}get sampleRate(){return this._nativeContext.sampleRate}get state(){return this._nativeContext.state}})(_n,ns,en,Qt,ss,zt),is=((e,t,n,s,r,i)=>(a,o)=>{const l=a.createOscillator();return nt(l,o),rt(l,o,"detune"),rt(l,o,"frequency"),void 0!==o.periodicWave?l.setPeriodicWave(o.periodicWave):tt(l,o,"type"),t(n,(()=>n(a)))||it(l),t(s,(()=>s(a)))||i(l,a),t(r,(()=>r(a)))||at(l),e(a,l),l})(yn,Vt,Tt,Nt,Rt,Mt),as=((e,t,n,s,r)=>()=>{const i=new WeakMap;let a=null,o=null,l=null;return{set periodicWave(e){a=e},set start(e){o=e},set stop(e){l=e},render(u,c){const h=i.get(c);return void 0!==h?Promise.resolve(h):(async(u,c)=>{let h=n(u);const d=Z(h,c);if(!d){const e={channelCount:h.channelCount,channelCountMode:h.channelCountMode,channelInterpretation:h.channelInterpretation,detune:h.detune.value,frequency:h.frequency.value,periodicWave:null===a?void 0:a,type:h.type};h=t(c,e),null!==o&&h.start(o),null!==l&&h.stop(l)}return i.set(c,h),d?(await e(c,u.detune,h.detune),await e(c,u.frequency,h.frequency)):(await s(c,u.detune,h.detune),await s(c,u.frequency,h.frequency)),await r(u,c,h),h})(u,c)}}})(wn,is,xe,xn,Kt),os=((e,t,n,s,r,i,a)=>class extends e{constructor(e,a){const o=r(e),l={...wt,...a},u=n(o,l),c=i(o),h=c?s():null,d=e.sampleRate/2;super(e,!1,u,h),this._detune=t(this,c,u.detune,153600,-153600),this._frequency=t(this,c,u.frequency,d,-d),this._nativeOscillatorNode=u,this._onended=null,this._oscillatorNodeRenderer=h,null!==this._oscillatorNodeRenderer&&void 0!==l.periodicWave&&(this._oscillatorNodeRenderer.periodicWave=l.periodicWave)}get detune(){return this._detune}get frequency(){return this._frequency}get onended(){return this._onended}set onended(e){const t="function"==typeof e?a(this,e):null;this._nativeOscillatorNode.onended=t;const n=this._nativeOscillatorNode.onended;this._onended=null!==n&&n===t?e:n}get type(){return this._nativeOscillatorNode.type}set type(e){this._nativeOscillatorNode.type=e,null!==this._oscillatorNodeRenderer&&(this._oscillatorNodeRenderer.periodicWave=null)}setPeriodicWave(e){this._nativeOscillatorNode.setPeriodicWave(e),null!==this._oscillatorNodeRenderer&&(this._oscillatorNodeRenderer.periodicWave=e)}start(e=0){if(this._nativeOscillatorNode.start(e),null!==this._oscillatorNodeRenderer&&(this._oscillatorNodeRenderer.start=e),"closed"!==this.context.state){q(this);const e=()=>{this._nativeOscillatorNode.removeEventListener("ended",e),se(this)&&K(this)};this._nativeOscillatorNode.addEventListener("ended",e)}}stop(e=0){this._nativeOscillatorNode.stop(e),null!==this._oscillatorNodeRenderer&&(this._oscillatorNodeRenderer.stop=e)}})(on,Cn,is,as,Xt,Qt,zt),ls=(e=>(t,n)=>{const s=e(t,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),r=t.createBuffer(1,2,44100);return s.buffer=r,s.loop=!0,s.connect(n),s.start(),()=>{s.stop(),s.disconnect(n)}})(vn),us=((e,t,n,s,r)=>(i,{curve:a,oversample:o,...l})=>{const u=i.createWaveShaper(),c=i.createWaveShaper();nt(u,l),nt(c,l);const h=n(i,{...l,gain:1}),d=n(i,{...l,gain:-1}),p=n(i,{...l,gain:1}),f=n(i,{...l,gain:-1});let m=null,g=!1,y=null;const b={get bufferSize(){},get channelCount(){return u.channelCount},set channelCount(e){h.channelCount=e,d.channelCount=e,u.channelCount=e,p.channelCount=e,c.channelCount=e,f.channelCount=e},get channelCountMode(){return u.channelCountMode},set channelCountMode(e){h.channelCountMode=e,d.channelCountMode=e,u.channelCountMode=e,p.channelCountMode=e,c.channelCountMode=e,f.channelCountMode=e},get channelInterpretation(){return u.channelInterpretation},set channelInterpretation(e){h.channelInterpretation=e,d.channelInterpretation=e,u.channelInterpretation=e,p.channelInterpretation=e,c.channelInterpretation=e,f.channelInterpretation=e},get context(){return u.context},get curve(){return y},set curve(n){if(null!==n&&n.length<2)throw t();if(null===n)u.curve=n,c.curve=n;else{const e=n.length,t=new Float32Array(e+2-e%2),s=new Float32Array(e+2-e%2);t[0]=n[0],s[0]=-n[e-1];const r=Math.ceil((e+1)/2),i=(e+1)/2-1;for(let a=1;ah.addEventListener(e[0],e[1],e[2]),dispatchEvent:(...e)=>h.dispatchEvent(e[0]),removeEventListener:(...e)=>h.removeEventListener(e[0],e[1],e[2])};null!==a&&(b.curve=a instanceof Float32Array?a:new Float32Array(a)),o!==b.oversample&&(b.oversample=o);return r(ht(b,p),(()=>{h.connect(u).connect(p),h.connect(d).connect(c).connect(f).connect(p),g=!0,s(y)&&(m=e(i,h))}),(()=>{h.disconnect(u),u.disconnect(p),h.disconnect(d),d.disconnect(c),c.disconnect(f),f.disconnect(p),g=!1,null!==m&&(m(),m=null)}))})(ls,$e,pt,_t,Nn),cs=((e,t,n,s,r,i,a)=>(o,l)=>{const u=o.createWaveShaper();if(null!==i&&"webkitAudioContext"===i.name&&void 0===o.createGain().gain.automationRate)return n(o,l);nt(u,l);const c=null===l.curve||l.curve instanceof Float32Array?l.curve:new Float32Array(l.curve);if(null!==c&&c.length<2)throw t();tt(u,{curve:c},"curve"),tt(u,l,"oversample");let h=null,d=!1;a(u,"curve",(e=>()=>e.call(u)),(t=>n=>(t.call(u,n),d&&(s(n)&&null===h?h=e(o,u):s(n)||null===h||(h(),h=null)),n)));return r(u,(()=>{d=!0,s(u.curve)&&(h=e(o,u))}),(()=>{d=!1,null!==h&&(h(),h=null)}))})(ls,$e,us,_t,Nn,tn,Et),hs=((e,t,n,s,r,i,a,o,l,u)=>(c,{coneInnerAngle:h,coneOuterAngle:d,coneOuterGain:p,distanceModel:f,maxDistance:m,orientationX:g,orientationY:y,orientationZ:b,panningModel:w,positionX:v,positionY:x,positionZ:A,refDistance:C,rolloffFactor:k,...S})=>{const _=c.createPanner();if(S.channelCount>2)throw a();if("max"===S.channelCountMode)throw a();nt(_,S);const E={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},I=n(c,{...E,channelInterpretation:"speakers",numberOfInputs:6}),T=s(c,{...S,gain:1}),N=s(c,{...E,gain:1}),R=s(c,{...E,gain:0}),O=s(c,{...E,gain:0}),D=s(c,{...E,gain:0}),M=s(c,{...E,gain:0}),z=s(c,{...E,gain:0}),F=r(c,256,6,1),B=i(c,{...E,curve:new Float32Array([1,1]),oversample:"none"});let L=[g,y,b],P=[v,x,A];const U=new Float32Array(1);F.onaudioprocess=({inputBuffer:e})=>{const t=[l(e,U,0),l(e,U,1),l(e,U,2)];t.some(((e,t)=>e!==L[t]))&&(_.setOrientation(...t),L=t);const n=[l(e,U,3),l(e,U,4),l(e,U,5)];n.some(((e,t)=>e!==P[t]))&&(_.setPosition(...n),P=n)},Object.defineProperty(R.gain,"defaultValue",{get:()=>0}),Object.defineProperty(O.gain,"defaultValue",{get:()=>0}),Object.defineProperty(D.gain,"defaultValue",{get:()=>0}),Object.defineProperty(M.gain,"defaultValue",{get:()=>0}),Object.defineProperty(z.gain,"defaultValue",{get:()=>0});const V={get bufferSize(){},get channelCount(){return _.channelCount},set channelCount(e){if(e>2)throw a();T.channelCount=e,_.channelCount=e},get channelCountMode(){return _.channelCountMode},set channelCountMode(e){if("max"===e)throw a();T.channelCountMode=e,_.channelCountMode=e},get channelInterpretation(){return _.channelInterpretation},set channelInterpretation(e){T.channelInterpretation=e,_.channelInterpretation=e},get coneInnerAngle(){return _.coneInnerAngle},set coneInnerAngle(e){_.coneInnerAngle=e},get coneOuterAngle(){return _.coneOuterAngle},set coneOuterAngle(e){_.coneOuterAngle=e},get coneOuterGain(){return _.coneOuterGain},set coneOuterGain(e){if(e<0||e>1)throw t();_.coneOuterGain=e},get context(){return _.context},get distanceModel(){return _.distanceModel},set distanceModel(e){_.distanceModel=e},get inputs(){return[T]},get maxDistance(){return _.maxDistance},set maxDistance(e){if(e<0)throw new RangeError;_.maxDistance=e},get numberOfInputs(){return _.numberOfInputs},get numberOfOutputs(){return _.numberOfOutputs},get orientationX(){return N.gain},get orientationY(){return R.gain},get orientationZ(){return O.gain},get panningModel(){return _.panningModel},set panningModel(e){_.panningModel=e},get positionX(){return D.gain},get positionY(){return M.gain},get positionZ(){return z.gain},get refDistance(){return _.refDistance},set refDistance(e){if(e<0)throw new RangeError;_.refDistance=e},get rolloffFactor(){return _.rolloffFactor},set rolloffFactor(e){if(e<0)throw new RangeError;_.rolloffFactor=e},addEventListener:(...e)=>T.addEventListener(e[0],e[1],e[2]),dispatchEvent:(...e)=>T.dispatchEvent(e[0]),removeEventListener:(...e)=>T.removeEventListener(e[0],e[1],e[2])};h!==V.coneInnerAngle&&(V.coneInnerAngle=h),d!==V.coneOuterAngle&&(V.coneOuterAngle=d),p!==V.coneOuterGain&&(V.coneOuterGain=p),f!==V.distanceModel&&(V.distanceModel=f),m!==V.maxDistance&&(V.maxDistance=m),g!==V.orientationX.value&&(V.orientationX.value=g),y!==V.orientationY.value&&(V.orientationY.value=y),b!==V.orientationZ.value&&(V.orientationZ.value=b),w!==V.panningModel&&(V.panningModel=w),v!==V.positionX.value&&(V.positionX.value=v),x!==V.positionY.value&&(V.positionY.value=x),A!==V.positionZ.value&&(V.positionZ.value=A),C!==V.refDistance&&(V.refDistance=C),k!==V.rolloffFactor&&(V.rolloffFactor=k),1===L[0]&&0===L[1]&&0===L[2]||_.setOrientation(...L),0===P[0]&&0===P[1]&&0===P[2]||_.setPosition(...P);return u(ht(V,_),(()=>{T.connect(_),e(T,B,0,0),B.connect(N).connect(I,0,0),B.connect(R).connect(I,0,1),B.connect(O).connect(I,0,2),B.connect(D).connect(I,0,3),B.connect(M).connect(I,0,4),B.connect(z).connect(I,0,5),I.connect(F).connect(c.destination)}),(()=>{T.disconnect(_),o(T,B,0,0),B.disconnect(N),N.disconnect(I),B.disconnect(R),R.disconnect(I),B.disconnect(O),O.disconnect(I),B.disconnect(D),D.disconnect(I),B.disconnect(M),M.disconnect(I),B.disconnect(z),z.disconnect(I),I.disconnect(F),F.disconnect(c.destination)}))})(ge,$e,On,pt,gt,cs,yt,ve,St,Nn),ds=(e=>(t,n)=>{const s=t.createPanner();return void 0===s.orientationX?e(t,n):(nt(s,n),rt(s,n,"orientationX"),rt(s,n,"orientationY"),rt(s,n,"orientationZ"),rt(s,n,"positionX"),rt(s,n,"positionY"),rt(s,n,"positionZ"),tt(s,n,"coneInnerAngle"),tt(s,n,"coneOuterAngle"),tt(s,n,"coneOuterGain"),tt(s,n,"distanceModel"),tt(s,n,"maxDistance"),tt(s,n,"panningModel"),tt(s,n,"refDistance"),tt(s,n,"rolloffFactor"),s)})(hs),ps=((e,t,n,s,r,i,a,o,l,u)=>()=>{const c=new WeakMap;let h=null;return{render(d,p){const f=c.get(p);return void 0!==f?Promise.resolve(f):(async(d,p)=>{let f=null,m=i(d);const g={channelCount:m.channelCount,channelCountMode:m.channelCountMode,channelInterpretation:m.channelInterpretation},y={...g,coneInnerAngle:m.coneInnerAngle,coneOuterAngle:m.coneOuterAngle,coneOuterGain:m.coneOuterGain,distanceModel:m.distanceModel,maxDistance:m.maxDistance,panningModel:m.panningModel,refDistance:m.refDistance,rolloffFactor:m.rolloffFactor},b=Z(m,p);if("bufferSize"in m)f=s(p,{...g,gain:1});else if(!b){const e={...y,orientationX:m.orientationX.value,orientationY:m.orientationY.value,orientationZ:m.orientationZ.value,positionX:m.positionX.value,positionY:m.positionY.value,positionZ:m.positionZ.value};m=r(p,e)}if(c.set(p,null===f?m:f),null!==f){if(null===h){if(null===a)throw new Error("Missing the native OfflineAudioContext constructor.");const e=new a(6,d.context.length,p.sampleRate),s=t(e,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6});s.connect(e.destination),h=(async()=>{const t=await Promise.all([d.orientationX,d.orientationY,d.orientationZ,d.positionX,d.positionY,d.positionZ].map((async(t,s)=>{const r=n(e,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:0===s?1:0});return await o(e,t,r.offset),r})));for(let e=0;e<6;e+=1)t[e].connect(s,0,e),t[e].start(0);return u(e)})()}const e=await h,i=s(p,{...g,gain:1});await l(d,p,i);const c=[];for(let t=0;te!==m[t]))||n.some(((e,t)=>e!==b[t]))){m=e,b=n;const a=t/p.sampleRate;w.gain.setValueAtTime(0,a),w=s(p,{...g,gain:0}),v=r(p,{...y,orientationX:m[0],orientationY:m[1],orientationZ:m[2],positionX:b[0],positionY:b[1],positionZ:b[2]}),w.gain.setValueAtTime(1,a),i.connect(w).connect(v.inputs[0]),v.connect(f)}}return f}return b?(await e(p,d.orientationX,m.orientationX),await e(p,d.orientationY,m.orientationY),await e(p,d.orientationZ,m.orientationZ),await e(p,d.positionX,m.positionX),await e(p,d.positionY,m.positionY),await e(p,d.positionZ,m.positionZ)):(await o(p,d.orientationX,m.orientationX),await o(p,d.orientationY,m.orientationY),await o(p,d.orientationZ,m.orientationZ),await o(p,d.positionX,m.positionX),await o(p,d.positionY,m.positionY),await o(p,d.positionZ,m.positionZ)),me(m)?await l(d,p,m.inputs[0]):await l(d,p,m),m})(d,p)}}})(wn,On,Ln,pt,ds,xe,Yt,xn,Kt,Qn),fs=((e,t,n,s,r,i,a)=>class extends e{constructor(e,o){const l=r(e),u={...vt,...o},c=n(l,u),h=i(l);super(e,!1,c,h?s():null),this._nativePannerNode=c,this._orientationX=t(this,h,c.orientationX,ne,te),this._orientationY=t(this,h,c.orientationY,ne,te),this._orientationZ=t(this,h,c.orientationZ,ne,te),this._positionX=t(this,h,c.positionX,ne,te),this._positionY=t(this,h,c.positionY,ne,te),this._positionZ=t(this,h,c.positionZ,ne,te),a(this,1)}get coneInnerAngle(){return this._nativePannerNode.coneInnerAngle}set coneInnerAngle(e){this._nativePannerNode.coneInnerAngle=e}get coneOuterAngle(){return this._nativePannerNode.coneOuterAngle}set coneOuterAngle(e){this._nativePannerNode.coneOuterAngle=e}get coneOuterGain(){return this._nativePannerNode.coneOuterGain}set coneOuterGain(e){this._nativePannerNode.coneOuterGain=e}get distanceModel(){return this._nativePannerNode.distanceModel}set distanceModel(e){this._nativePannerNode.distanceModel=e}get maxDistance(){return this._nativePannerNode.maxDistance}set maxDistance(e){this._nativePannerNode.maxDistance=e}get orientationX(){return this._orientationX}get orientationY(){return this._orientationY}get orientationZ(){return this._orientationZ}get panningModel(){return this._nativePannerNode.panningModel}set panningModel(e){this._nativePannerNode.panningModel=e}get positionX(){return this._positionX}get positionY(){return this._positionY}get positionZ(){return this._positionZ}get refDistance(){return this._nativePannerNode.refDistance}set refDistance(e){this._nativePannerNode.refDistance=e}get rolloffFactor(){return this._nativePannerNode.rolloffFactor}set rolloffFactor(e){this._nativePannerNode.rolloffFactor=e}})(on,Cn,ds,ps,Xt,Qt,In),ms=(e=>(t,{disableNormalization:n,imag:s,real:r})=>{const i=s instanceof Float32Array?s:new Float32Array(s),a=r instanceof Float32Array?r:new Float32Array(r),o=t.createPeriodicWave(a,i,{disableNormalization:n});if(Array.from(s).length<2)throw e();return o})(Q),gs=((e,t,n,s)=>class r{constructor(r,i){const a=t(r),o=s({...xt,...i}),l=e(a,o);return n.add(l),l}static[Symbol.hasInstance](e){return null!==e&&"object"==typeof e&&Object.getPrototypeOf(e)===r.prototype||n.has(e)}})(ms,Xt,new WeakSet,(e=>{const{imag:t,real:n}=e;return void 0===t?void 0===n?{...e,imag:[0,0],real:[0,0]}:{...e,imag:Array.from(n,(()=>0)),real:n}:void 0===n?{...e,imag:t,real:Array.from(t,(()=>0))}:{...e,imag:t,real:n}})),ys=((e,t,n,s,r,i)=>{const a=16385,o=new Float32Array([1,1]),l=Math.PI/2,u={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},c={...u,oversample:"none"},h=(e,i,h,d,p)=>{if(1===i)return((e,t,r,i)=>{const h=new Float32Array(a),d=new Float32Array(a);for(let e=0;e{const d=new Float32Array(a),p=new Float32Array(a),f=new Float32Array(a),m=new Float32Array(a),g=Math.floor(8192.5);for(let e=0;eg){const t=(e-g)/(16384-g)*l;d[e]=Math.cos(t),p[e]=Math.sin(t),f[e]=0,m[e]=1}else{const t=e/(16384-g)*l;d[e]=1,p[e]=0,f[e]=Math.cos(t),m[e]=Math.sin(t)}const y=t(e,{channelCount:2,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:2}),b=n(e,{...u,gain:0}),w=s(e,{...c,curve:d}),v=n(e,{...u,gain:0}),x=s(e,{...c,curve:p}),A=s(e,{...c,curve:o}),C=n(e,{...u,gain:0}),k=s(e,{...c,curve:f}),S=n(e,{...u,gain:0}),_=s(e,{...c,curve:m});return{connectGraph(){r.connect(y),r.connect(void 0===A.inputs?A:A.inputs[0]),y.connect(b,0),y.connect(v,0),y.connect(C,1),y.connect(S,1),A.connect(i),i.connect(void 0===w.inputs?w:w.inputs[0]),i.connect(void 0===x.inputs?x:x.inputs[0]),i.connect(void 0===k.inputs?k:k.inputs[0]),i.connect(void 0===_.inputs?_:_.inputs[0]),w.connect(b.gain),x.connect(v.gain),k.connect(C.gain),_.connect(S.gain),b.connect(h,0,0),C.connect(h,0,0),v.connect(h,0,1),S.connect(h,0,1)},disconnectGraph(){r.disconnect(y),r.disconnect(void 0===A.inputs?A:A.inputs[0]),y.disconnect(b,0),y.disconnect(v,0),y.disconnect(C,1),y.disconnect(S,1),A.disconnect(i),i.disconnect(void 0===w.inputs?w:w.inputs[0]),i.disconnect(void 0===x.inputs?x:x.inputs[0]),i.disconnect(void 0===k.inputs?k:k.inputs[0]),i.disconnect(void 0===_.inputs?_:_.inputs[0]),w.disconnect(b.gain),x.disconnect(v.gain),k.disconnect(C.gain),_.disconnect(S.gain),b.disconnect(h,0,0),C.disconnect(h,0,0),v.disconnect(h,0,1),S.disconnect(h,0,1)}}})(e,h,d,p);throw r()};return(t,{channelCount:s,channelCountMode:a,pan:o,...l})=>{if("max"===a)throw r();const u=e(t,{...l,channelCount:1,channelCountMode:a,numberOfInputs:2}),c=n(t,{...l,channelCount:s,channelCountMode:a,gain:1}),d=n(t,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:o});let{connectGraph:p,disconnectGraph:f}=h(t,s,c,d,u);Object.defineProperty(d.gain,"defaultValue",{get:()=>0}),Object.defineProperty(d.gain,"maxValue",{get:()=>1}),Object.defineProperty(d.gain,"minValue",{get:()=>-1});const m={get bufferSize(){},get channelCount(){return c.channelCount},set channelCount(e){c.channelCount!==e&&(g&&f(),({connectGraph:p,disconnectGraph:f}=h(t,e,c,d,u)),g&&p()),c.channelCount=e},get channelCountMode(){return c.channelCountMode},set channelCountMode(e){if("clamped-max"===e||"max"===e)throw r();c.channelCountMode=e},get channelInterpretation(){return c.channelInterpretation},set channelInterpretation(e){c.channelInterpretation=e},get context(){return c.context},get inputs(){return[c]},get numberOfInputs(){return c.numberOfInputs},get numberOfOutputs(){return c.numberOfOutputs},get pan(){return d.gain},addEventListener:(...e)=>c.addEventListener(e[0],e[1],e[2]),dispatchEvent:(...e)=>c.dispatchEvent(e[0]),removeEventListener:(...e)=>c.removeEventListener(e[0],e[1],e[2])};let g=!1;return i(ht(m,u),(()=>{p(),g=!0}),(()=>{f(),g=!1}))}})(On,ct,pt,cs,yt,Nn),bs=((e,t)=>(n,s)=>{const r=s.channelCountMode;if("clamped-max"===r)throw t();if(void 0===n.createStereoPanner)return e(n,s);const i=n.createStereoPanner();return nt(i,s),rt(i,s,"pan"),Object.defineProperty(i,"channelCountMode",{get:()=>r,set:e=>{if(e!==r)throw t()}}),i})(ys,yt),ws=((e,t,n,s,r)=>()=>{const i=new WeakMap;return{render(a,o){const l=i.get(o);return void 0!==l?Promise.resolve(l):(async(a,o)=>{let l=n(a);const u=Z(l,o);if(!u){const e={channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,pan:l.pan.value};l=t(o,e)}return i.set(o,l),u?await e(o,a.pan,l.pan):await s(o,a.pan,l.pan),me(l)?await r(a,o,l.inputs[0]):await r(a,o,l),l})(a,o)}}})(wn,bs,xe,xn,Kt),vs=((e,t,n,s,r,i)=>class extends e{constructor(e,a){const o=r(e),l={...At,...a},u=n(o,l),c=i(o);super(e,!1,u,c?s():null),this._pan=t(this,c,u.pan)}get pan(){return this._pan}})(on,Cn,bs,ws,Xt,Qt),xs=((e,t,n)=>()=>{const s=new WeakMap;return{render(r,i){const a=s.get(i);return void 0!==a?Promise.resolve(a):(async(r,i)=>{let a=t(r);if(!Z(a,i)){const t={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,curve:a.curve,oversample:a.oversample};a=e(i,t)}return s.set(i,a),me(a)?await n(r,i,a.inputs[0]):await n(r,i,a),a})(r,i)}}})(cs,xe,Kt),As=((e,t,n,s,r,i,a)=>class extends e{constructor(e,t){const o=r(e),l={...kt,...t},u=n(o,l);super(e,!0,u,i(o)?s():null),this._isCurveNullified=!1,this._nativeWaveShaperNode=u,a(this,1)}get curve(){return this._isCurveNullified?null:this._nativeWaveShaperNode.curve}set curve(e){if(null===e)this._isCurveNullified=!0,this._nativeWaveShaperNode.curve=new Float32Array([0,0]);else{if(e.length<2)throw t();this._isCurveNullified=!1,this._nativeWaveShaperNode.curve=e}}get oversample(){return this._nativeWaveShaperNode.oversample}set oversample(e){this._nativeWaveShaperNode.oversample=e}})(on,$e,cs,xs,Xt,Qt,In),Cs=(e=>null!==e&&e.isSecureContext)(Gt),ks=(e=>(t,n,s)=>{Object.defineProperties(e,{currentFrame:{configurable:!0,get:()=>Math.round(t*n)},currentTime:{configurable:!0,get:()=>t}});try{return s()}finally{null!==e&&(delete e.currentFrame,delete e.currentTime)}})(Gt),Ss=new WeakMap,_s=((e,t)=>n=>{let s=e.get(n);if(void 0!==s)return s;if(null===t)throw new Error("Missing the native OfflineAudioContext constructor.");return s=new t(1,1,44100),e.set(n,s),s})(Ss,Yt),Es=Cs?((e,t,n,s,r,i,a,o,l,u,c,h,d)=>{let p=0;return(f,m,g={credentials:"omit"})=>{const y=c.get(f);if(void 0!==y&&y.has(m))return Promise.resolve();const b=u.get(f);if(void 0!==b){const e=b.get(m);if(void 0!==e)return e}const w=i(f),v=void 0===w.audioWorklet?r(m).then((([e,t])=>{const[s,r]=L(e,t);return n(`${s};((a,b)=>{(a[b]=a[b]||[]).push((AudioWorkletProcessor,global,registerProcessor,sampleRate,self,window)=>{${r}\n})})(window,'_AWGS')`)})).then((()=>{const e=d._AWGS.pop();if(void 0===e)throw new SyntaxError;s(w.currentTime,w.sampleRate,(()=>e(class{},void 0,((e,n)=>{if(""===e.trim())throw t();const s=M.get(w);if(void 0!==s){if(s.has(e))throw t();U(n),P(n.parameterDescriptors),s.set(e,n)}else U(n),P(n.parameterDescriptors),M.set(w,new Map([[e,n]]))}),w.sampleRate,void 0,void 0)))})):Promise.all([r(m),Promise.resolve(e(h,h))]).then((([[e,t],n])=>{const s=p+1;p=s;const[r,i]=L(e,t),u=new Blob([`${r};((AudioWorkletProcessor,registerProcessor)=>{${i}\n})(${n?"AudioWorkletProcessor":"class extends AudioWorkletProcessor {__b=new WeakSet();constructor(){super();(p=>p.postMessage=(q=>(m,t)=>q.call(p,m,t?t.filter(u=>!this.__b.has(u)):t))(p.postMessage))(this.port)}}"},(n,p)=>registerProcessor(n,class extends p{${n?"":"__c = (a) => a.forEach(e=>this.__b.add(e.buffer));"}process(i,o,p){${n?"":"i.forEach(this.__c);o.forEach(this.__c);this.__c(Object.values(p));"}return super.process(i.map(j=>j.some(k=>k.length===0)?[]:j),o,p)}}));registerProcessor('__sac${s}',class extends AudioWorkletProcessor{process(){return !1}})`],{type:"application/javascript; charset=utf-8"}),c=URL.createObjectURL(u);return w.audioWorklet.addModule(c,g).then((()=>{if(o(w))return w;const e=a(w);return e.audioWorklet.addModule(c,g).then((()=>e))})).then((e=>{if(null===l)throw new SyntaxError;try{new l(e,`__sac${s}`)}catch{throw new SyntaxError}})).finally((()=>URL.revokeObjectURL(c)))}));return void 0===b?u.set(f,new Map([[m,v]])):b.set(m,v),v.then((()=>{const e=c.get(f);void 0===e?c.set(f,new Set([m])):e.add(m)})).finally((()=>{const e=u.get(f);void 0!==e&&e.delete(m)})),v}})(Vt,yt,(e=>t=>new Promise(((n,s)=>{if(null===e)return void s(new SyntaxError);const r=e.document.head;if(null===r)s(new SyntaxError);else{const i=e.document.createElement("script"),a=new Blob([t],{type:"application/javascript"}),o=URL.createObjectURL(a),l=e.onerror,u=()=>{e.onerror=l,URL.revokeObjectURL(o)};e.onerror=(t,n,r,i,a)=>n===o||n===e.location.href&&1===r&&1===i?(u(),s(a),!1):null!==l?l(t,n,r,i,a):void 0,i.onerror=()=>{u(),s(new SyntaxError)},i.onload=()=>{u(),n()},i.src=o,i.type="module",r.appendChild(i)}})))(Gt),ks,(e=>async t=>{try{const e=await fetch(t);if(e.ok)return[await e.text(),e.url]}catch{}throw e()})((()=>new DOMException("","AbortError"))),Xt,_s,Qt,an,new WeakMap,new WeakMap,((e,t)=>async()=>{if(null===e)return!0;if(null===t)return!1;const n=new Blob(['class A extends AudioWorkletProcessor{process(i){this.port.postMessage(i,[i[0][0].buffer])}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),s=new t(1,128,44100),r=URL.createObjectURL(n);let i=!1,a=!1;try{await s.audioWorklet.addModule(r);const t=new e(s,"a",{numberOfOutputs:0}),n=s.createOscillator();t.port.onmessage=()=>i=!0,t.onprocessorerror=()=>a=!0,n.connect(t),n.start(0),await s.startRendering(),await new Promise((e=>setTimeout(e)))}catch{}finally{URL.revokeObjectURL(r)}return i&&!a})(an,Yt),Gt):void 0,Is=((e,t)=>n=>e(n)||t(n))(nn,Qt),Ts=((e,t,n,s,r,i,a,o,l,u,c)=>(h,d)=>{const p=a(h)?h:i(h);if(r.has(d)){const e=n();return Promise.reject(e)}try{r.add(d)}catch{}return t(l,(()=>l(p)))?p.decodeAudioData(d).then((n=>(je(d).catch((()=>{})),t(o,(()=>o(n)))||c(n),e.add(n),n))):new Promise(((t,n)=>{const r=async()=>{try{await je(d)}catch{}},i=e=>{n(e),r()};try{p.decodeAudioData(d,(n=>{"function"!=typeof n.copyFromChannel&&(u(n),J(n)),e.add(n),r().then((()=>t(n)))}),(e=>{i(null===e?s():e)}))}catch(e){i(e)}}))})(cn,Vt,(()=>new DOMException("","DataCloneError")),(()=>new DOMException("","EncodingError")),new WeakSet,Xt,Is,Y,Je,fn,mn),Ns=((e,t,n,s,r,i,a,o,l,u,c,h,d,p,f,m,g,y,b,w)=>class extends f{constructor(t,n){super(t,n),this._nativeContext=t,this._audioWorklet=void 0===e?void 0:{addModule:(t,n)=>e(this,t,n)}}get audioWorklet(){return this._audioWorklet}createAnalyser(){return new t(this)}createBiquadFilter(){return new r(this)}createBuffer(e,t,s){return new n({length:t,numberOfChannels:e,sampleRate:s})}createBufferSource(){return new s(this)}createChannelMerger(e=6){return new i(this,{numberOfInputs:e})}createChannelSplitter(e=6){return new a(this,{numberOfOutputs:e})}createConstantSource(){return new o(this)}createConvolver(){return new l(this)}createDelay(e=1){return new c(this,{maxDelayTime:e})}createDynamicsCompressor(){return new h(this)}createGain(){return new d(this)}createIIRFilter(e,t){return new p(this,{feedback:t,feedforward:e})}createOscillator(){return new m(this)}createPanner(){return new g(this)}createPeriodicWave(e,t,n={disableNormalization:!1}){return new y(this,{...n,imag:t,real:e})}createStereoPanner(){return new b(this)}createWaveShaper(){return new w(this)}decodeAudioData(e,t,n){return u(this._nativeContext,e).then((e=>("function"==typeof t&&t(e),e)),(e=>{throw"function"==typeof n&&n(e),e}))}})(Es,un,gn,Sn,Tn,Mn,Fn,Un,jn,Ts,qn,$n,Zn,ts,rs,os,fs,gs,vs,As),Rs=((e,t,n,s)=>class extends e{constructor(e,r){const i=n(e),a=t(i,r);if(s(i))throw TypeError();super(e,!0,a,null),this._nativeMediaElementAudioSourceNode=a}get mediaElement(){return this._nativeMediaElementAudioSourceNode.mediaElement}})(on,((e,t)=>e.createMediaElementSource(t.mediaElement)),Xt,Qt),Os=((e,t,n,s)=>class extends e{constructor(e,r){const i=n(e);if(s(i))throw new TypeError;const a={...Qe,...r},o=t(i,a);super(e,!1,o,null),this._nativeMediaStreamAudioDestinationNode=o}get stream(){return this._nativeMediaStreamAudioDestinationNode.stream}})(on,((e,t)=>{const n=e.createMediaStreamDestination();return nt(n,t),1===n.numberOfOutputs&&Object.defineProperty(n,"numberOfOutputs",{get:()=>0}),n}),Xt,Qt),Ds=((e,t,n,s)=>class extends e{constructor(e,r){const i=n(e),a=t(i,r);if(s(i))throw new TypeError;super(e,!0,a,null),this._nativeMediaStreamAudioSourceNode=a}get mediaStream(){return this._nativeMediaStreamAudioSourceNode.mediaStream}})(on,((e,{mediaStream:t})=>{const n=t.getAudioTracks();n.sort(((e,t)=>e.idt.id?1:0));const s=n.slice(0,1),r=e.createMediaStreamSource(new MediaStream(s));return Object.defineProperty(r,"mediaStream",{value:t}),r}),Xt,Qt),Ms=((e,t)=>(n,{mediaStreamTrack:s})=>{if("function"==typeof n.createMediaStreamTrackSource)return n.createMediaStreamTrackSource(s);const r=new MediaStream([s]),i=n.createMediaStreamSource(r);if("audio"!==s.kind)throw e();if(t(n))throw new TypeError;return i})($e,Qt),zs=((e,t,n)=>class extends e{constructor(e,s){const r=n(e);super(e,!0,t(r,s),null)}})(on,Ms,Xt),Fs=((e,t,n,s,r,i,a,o,l)=>class extends e{constructor(e={}){if(null===l)throw new Error("Missing the native AudioContext constructor.");let t;try{t=new l(e)}catch(e){if(12===e.code&&"sampleRate is not in range"===e.message)throw n();throw e}if(null===t)throw s();if(!ue(e.latencyHint))throw new TypeError(`The provided value '${e.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(void 0!==e.sampleRate&&t.sampleRate!==e.sampleRate)throw n();super(t,2);const{latencyHint:r}=e,{sampleRate:i}=t;if(this._baseLatency="number"==typeof t.baseLatency?t.baseLatency:"balanced"===r?512/i:"interactive"===r||void 0===r?256/i:"playback"===r?1024/i:128*Math.max(2,Math.min(128,Math.round(r*i/128)))/i,this._nativeAudioContext=t,"webkitAudioContext"===l.name?(this._nativeGainNode=t.createGain(),this._nativeOscillatorNode=t.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(t.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,"running"===t.state){this._state="suspended";const e=()=>{"suspended"===this._state&&(this._state=null),t.removeEventListener("statechange",e)};t.addEventListener("statechange",e)}}get baseLatency(){return this._baseLatency}get state(){return null!==this._state?this._state:this._nativeAudioContext.state}close(){return"closed"===this.state?this._nativeAudioContext.close().then((()=>{throw t()})):("suspended"===this._state&&(this._state=null),this._nativeAudioContext.close().then((()=>{null!==this._nativeGainNode&&null!==this._nativeOscillatorNode&&(this._nativeOscillatorNode.stop(),this._nativeGainNode.disconnect(),this._nativeOscillatorNode.disconnect()),le(this)})))}createMediaElementSource(e){return new r(this,{mediaElement:e})}createMediaStreamDestination(){return new i(this)}createMediaStreamSource(e){return new a(this,{mediaStream:e})}createMediaStreamTrackSource(e){return new o(this,{mediaStreamTrack:e})}resume(){return"suspended"===this._state?new Promise(((e,t)=>{const n=()=>{this._nativeAudioContext.removeEventListener("statechange",n),"running"===this._nativeAudioContext.state?e():this.resume().then(e,t)};this._nativeAudioContext.addEventListener("statechange",n)})):this._nativeAudioContext.resume().catch((e=>{if(void 0===e||15===e.code)throw t();throw e}))}suspend(){return this._nativeAudioContext.suspend().catch((e=>{if(void 0===e)throw t();throw e}))}})(Ns,$e,yt,Ct,Rs,Os,Ds,zs,tn),Bs=(e=>t=>{const n=e.get(t);if(void 0===n)throw new Error("The context has no set of AudioWorkletNodes.");return n})(ss),Ls=(e=>(t,n)=>{e(t).add(n)})(Bs),Ps=(e=>(t,n,s=0,r=0)=>{const i=t[s];if(void 0===i)throw e();return Ee(n)?i.connect(n,0,r):i.connect(n,0)})(Q),Us=(e=>(t,n)=>{e(t).delete(n)})(Bs),Vs=(e=>(t,n=void 0,s=void 0,r=0)=>void 0===n?t.forEach((e=>e.disconnect())):"number"==typeof n?qe(e,t,n).disconnect():Ee(n)?void 0===s?t.forEach((e=>e.disconnect(n))):void 0===r?qe(e,t,s).disconnect(n,0):qe(e,t,s).disconnect(n,0,r):void 0===s?t.forEach((e=>e.disconnect(n))):qe(e,t,s).disconnect(n,0))(Q),Ws=new WeakMap,js=((e,t)=>n=>t(e,n))(Ws,V),Gs=((e,t,n,s,r,i,a,o,l,u,c,h,d)=>(p,f,m,g)=>{if(0===g.numberOfInputs&&0===g.numberOfOutputs)throw l();const y=Array.isArray(g.outputChannelCount)?g.outputChannelCount:Array.from(g.outputChannelCount);if(y.some((e=>e<1)))throw l();if(y.length!==g.numberOfOutputs)throw t();if("explicit"!==g.channelCountMode)throw l();const b=g.channelCount*g.numberOfInputs,w=y.reduce(((e,t)=>e+t),0),v=void 0===m.parameterDescriptors?0:m.parameterDescriptors.length;if(b+v>6||w>6)throw l();const x=new MessageChannel,A=[],C=[];for(let e=0;evoid 0===e?0:e},maxValue:{get:()=>void 0===t?ne:t},minValue:{get:()=>void 0===n?te:n}}),k.push(r)}const S=s(p,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,b+v)}),_=ot(f,p.sampleRate),E=o(p,_,b+v,Math.max(1,w)),I=r(p,{channelCount:Math.max(1,w),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,w)}),T=[];for(let e=0;e{const n=k[t];return n.connect(S,0,b+t),n.start(0),[e,n.offset]})));S.connect(E);let R=g.channelInterpretation,O=null;const D=0===g.numberOfOutputs?[E]:T,M={get bufferSize(){return _},get channelCount(){return g.channelCount},set channelCount(e){throw n()},get channelCountMode(){return g.channelCountMode},set channelCountMode(e){throw n()},get channelInterpretation(){return R},set channelInterpretation(e){for(const t of A)t.channelInterpretation=e;R=e},get context(){return E.context},get inputs(){return A},get numberOfInputs(){return g.numberOfInputs},get numberOfOutputs(){return g.numberOfOutputs},get onprocessorerror(){return O},set onprocessorerror(e){"function"==typeof O&&M.removeEventListener("processorerror",O),O="function"==typeof e?e:null,"function"==typeof O&&M.addEventListener("processorerror",O)},get parameters(){return N},get port(){return x.port2},addEventListener:(...e)=>E.addEventListener(e[0],e[1],e[2]),connect:e.bind(null,D),disconnect:u.bind(null,D),dispatchEvent:(...e)=>E.dispatchEvent(e[0]),removeEventListener:(...e)=>E.removeEventListener(e[0],e[1],e[2])},F=new Map;var B,L;x.port1.addEventListener=(B=x.port1.addEventListener,(...e)=>{if("message"===e[0]){const t="function"==typeof e[1]?e[1]:"object"==typeof e[1]&&null!==e[1]&&"function"==typeof e[1].handleEvent?e[1].handleEvent:null;if(null!==t){const n=F.get(e[1]);void 0!==n?e[1]=n:(e[1]=e=>{c(p.currentTime,p.sampleRate,(()=>t(e)))},F.set(t,e[1]))}}return B.call(x.port1,e[0],e[1],e[2])}),x.port1.removeEventListener=(L=x.port1.removeEventListener,(...e)=>{if("message"===e[0]){const t=F.get(e[1]);void 0!==t&&(F.delete(e[1]),e[1]=t)}return L.call(x.port1,e[0],e[1],e[2])});let P=null;Object.defineProperty(x.port1,"onmessage",{get:()=>P,set:e=>{"function"==typeof P&&x.port1.removeEventListener("message",P),P="function"==typeof e?e:null,"function"==typeof P&&(x.port1.addEventListener("message",P),x.port1.start())}}),m.prototype.port=x.port1;let U=null;const V=((e,t,n,s)=>{let r=z.get(e);void 0===r&&(r=new WeakMap,z.set(e,r));const i=lt(n,s);return r.set(t,i),i})(p,M,m,g);V.then((e=>U=e));const W=Fe(g.numberOfInputs,g.channelCount),j=Fe(g.numberOfOutputs,y),G=void 0===m.parameterDescriptors?[]:m.parameterDescriptors.reduce(((e,{name:t})=>({...e,[t]:new Float32Array(128)})),{});let q=!0;const H=()=>{g.numberOfOutputs>0&&E.disconnect(I);for(let e=0,t=0;e{if(null!==U){const n=h(M);for(let s=0;s<_;s+=128){for(let t=0;t{Me(e,G,t,b+n,s)}));for(let e=0;e{if(n[t].size>0)return K.set(t,_/128),e;const s=K.get(t);return void 0===s?[]:(e.every((e=>e.every((e=>0===e))))&&(1===s?K.delete(t):K.set(t,s-1)),e)})),r=c(p.currentTime+s/p.sampleRate,p.sampleRate,(()=>U.process(e,j,G)));q=r;for(let e=0,n=0;eE.connect(X).connect(p.destination),Y=()=>{E.disconnect(X),X.disconnect()};return Z(),d(M,(()=>{if(q){Y(),g.numberOfOutputs>0&&E.connect(I);for(let e=0,t=0;e{q&&(Z(),H()),$=!1}))})(Ps,Q,$e,On,ct,Ln,pt,gt,yt,Vs,ks,js,Nn),qs=((e,t,n,s,r)=>(i,a,o,l,u,c)=>{if(null!==o)try{const t=new o(i,l,c),s=new Map;let a=null;if(Object.defineProperties(t,{channelCount:{get:()=>c.channelCount,set:()=>{throw e()}},channelCountMode:{get:()=>"explicit",set:()=>{throw e()}},onprocessorerror:{get:()=>a,set:e=>{"function"==typeof a&&t.removeEventListener("processorerror",a),a="function"==typeof e?e:null,"function"==typeof a&&t.addEventListener("processorerror",a)}}}),t.addEventListener=(d=t.addEventListener,(...e)=>{if("processorerror"===e[0]){const t="function"==typeof e[1]?e[1]:"object"==typeof e[1]&&null!==e[1]&&"function"==typeof e[1].handleEvent?e[1].handleEvent:null;if(null!==t){const n=s.get(e[1]);void 0!==n?e[1]=n:(e[1]=n=>{"error"===n.type?(Object.defineProperties(n,{type:{value:"processorerror"}}),t(n)):t(new ErrorEvent(e[0],{...n}))},s.set(t,e[1]))}}return d.call(t,"error",e[1],e[2]),d.call(t,...e)}),t.removeEventListener=(h=t.removeEventListener,(...e)=>{if("processorerror"===e[0]){const t=s.get(e[1]);void 0!==t&&(s.delete(e[1]),e[1]=t)}return h.call(t,"error",e[1],e[2]),h.call(t,e[0],e[1],e[2])}),0!==c.numberOfOutputs){const e=n(i,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});t.connect(e).connect(i.destination);return r(t,(()=>e.disconnect()),(()=>e.connect(i.destination)))}return t}catch(e){if(11===e.code)throw s();throw e}var h,d;if(void 0===u)throw s();return(e=>{const{port1:t}=new MessageChannel;try{t.postMessage(e)}finally{t.close()}})(c),t(i,a,u,c)})($e,Gs,pt,yt,Nn),Hs=((e,t,n,s,r,i,a,o,l,u,c,h,d,p,f,m)=>(g,y,b)=>{const w=new WeakMap;let v=null;return{render(x,A){o(A,x);const C=w.get(A);return void 0!==C?Promise.resolve(C):(async(o,x)=>{let A=c(o),C=null;const k=Z(A,x),S=Array.isArray(y.outputChannelCount)?y.outputChannelCount:Array.from(y.outputChannelCount);if(null===h){const e=S.reduce(((e,t)=>e+t),0),n=r(x,{channelCount:Math.max(1,e),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,e)}),i=[];for(let e=0;e{const l=new d(n,128*Math.ceil(o.context.length/128),x.sampleRate),u=[],c=[];for(let e=0;e{const t=i(l,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:e.value});return await p(l,e,t.offset),t}))),g=s(l,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,e+t)});for(let e=0;ef(o,l,e)))),m(l)};v=Be(o,0===n?null:await l(),x,y,S,b,u)}const e=await v,t=n(x,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),[l,c,h]=C;null!==e&&(t.buffer=e,t.start(0)),t.connect(l);for(let e=0,t=0;et=>e.get(t))(Ss),$s=(e=>(t,n)=>{e.set(t,n)})(Ws),Xs=Cs?((e,t,n,s,r,i,a,o,l,u,c,h,d,p)=>class extends t{constructor(t,p,f){var m;const g=o(t),y=l(g),b=c({...De,...f});d(b);const w=M.get(g),v=null==w?void 0:w.get(p),x=y||"closed"!==g.state?g:null!==(m=a(g))&&void 0!==m?m:g,A=r(x,y?null:t.baseLatency,u,p,v,b);super(t,!0,A,y?s(p,b,v):null);const C=[];A.parameters.forEach(((e,t)=>{const s=n(this,y,e);C.push([t,s])})),this._nativeAudioWorkletNode=A,this._onprocessorerror=null,this._parameters=new Oe(C),y&&e(g,this);const{activeInputs:k}=i(this);h(A,k)}get onprocessorerror(){return this._onprocessorerror}set onprocessorerror(e){const t="function"==typeof e?p(this,e):null;this._nativeAudioWorkletNode.onprocessorerror=t;const n=this._nativeAudioWorkletNode.onprocessorerror;this._onprocessorerror=null!==n&&n===t?e:n}get parameters(){return null===this._parameters?this._nativeAudioWorkletNode.parameters:this._parameters}get port(){return this._nativeAudioWorkletNode.port}})(Ls,on,Cn,Hs,qs,ie,Ks,Xt,Qt,an,(e=>({...e,outputChannelCount:void 0!==e.outputChannelCount?e.outputChannelCount:1===e.numberOfInputs&&1===e.numberOfOutputs?[e.channelCount]:Array.from({length:e.numberOfOutputs},(()=>1))})),$s,(e=>{const{port1:t,port2:n}=new MessageChannel;try{t.postMessage(e)}finally{t.close(),n.close()}}),zt):void 0,Zs=(((e,t,n,s,r)=>{})($e,yt,Ct,rs,tn),((e,t)=>(n,s,r)=>{if(null===t)throw new Error("Missing the native OfflineAudioContext constructor.");try{return new t(n,s,r)}catch(t){if("SyntaxError"===t.name)throw e();throw t}})(yt,Yt)),Ys=((e,t,n,s,r,i,a,o)=>(l,u)=>n(l).render(l,u).then((()=>Promise.all(Array.from(s(u)).map((e=>n(e).render(e,u)))))).then((()=>r(u))).then((n=>("function"!=typeof n.copyFromChannel?(a(n),J(n)):t(i,(()=>i(n)))||o(n),e.add(n),n))))(cn,Vt,Ht,Bs,Qn,Y,fn,mn),Qs=(((e,t,n,s,r)=>{})(Vt,$e,Zs,rs,Ys),((e,t,n,s,r)=>class extends e{constructor(e,n,r){let i;if("number"==typeof e&&void 0!==n&&void 0!==r)i={length:n,numberOfChannels:e,sampleRate:r};else{if("object"!=typeof e)throw new Error("The given parameters are not valid.");i=e}const{length:a,numberOfChannels:o,sampleRate:l}={...bt,...i},u=s(o,a,l);t(Je,(()=>Je(u)))||u.addEventListener("statechange",(()=>{let e=0;const t=n=>{"running"===this._state&&(e>0?(u.removeEventListener("statechange",t),n.stopImmediatePropagation(),this._waitForThePromiseToSettle(n)):e+=1)};return t})()),super(u,o),this._length=a,this._nativeOfflineAudioContext=u,this._state=null}get length(){return void 0===this._nativeOfflineAudioContext.length?this._length:this._nativeOfflineAudioContext.length}get state(){return null===this._state?this._nativeOfflineAudioContext.state:this._state}startRendering(){return"running"===this._state?Promise.reject(n()):(this._state="running",r(this.destination,this._nativeOfflineAudioContext).finally((()=>{this._state=null,le(this)})))}_waitForThePromiseToSettle(e){null===this._state?this._nativeOfflineAudioContext.dispatchEvent(e):setTimeout((()=>this._waitForThePromiseToSettle(e)))}})(Ns,Vt,$e,Zs,Ys)),Js=((e,t)=>n=>{const s=e.get(n);return t(s)||t(n)})(R,nn),er=((e,t)=>n=>e.has(n)||t(n))(I,sn),tr=((e,t)=>n=>e.has(n)||t(n))(N,rn),nr=((e,t)=>n=>{const s=e.get(n);return t(s)||t(n)})(R,Qt),sr=()=>(async(e,t,n,s,r,i,a,o,l,u,c,h,d,p,f,m)=>{if(e(t,t)&&e(n,n)&&e(r,r)&&e(i,i)&&e(o,o)&&e(l,l)&&e(u,u)&&e(c,c)&&e(h,h)&&e(d,d)&&e(p,p))return(await Promise.all([e(s,s),e(a,a),e(f,f),e(m,m)])).every((e=>e));return!1})(Vt,(e=>()=>{if(null===e)return!1;const t=new e(1,1,44100).createBuffer(1,1,44100);if(void 0===t.copyToChannel)return!0;const n=new Float32Array(2);try{t.copyFromChannel(n,0,0)}catch{return!1}return!0})(Yt),(e=>()=>{if(null===e)return!1;if(void 0!==e.prototype&&void 0!==e.prototype.close)return!0;const t=new e,n=void 0!==t.close;try{t.close()}catch{}return n})(tn),(e=>()=>{if(null===e)return Promise.resolve(!1);const t=new e(1,1,44100);return new Promise((e=>{let n=!0;const s=s=>{n&&(n=!1,t.startRendering(),e(s instanceof TypeError))};let r;try{r=t.decodeAudioData(null,(()=>{}),s)}catch(e){s(e)}void 0!==r&&r.catch(s)}))})(Yt),(e=>()=>{if(null===e)return!1;let t;try{t=new e({latencyHint:"balanced"})}catch{return!1}return t.close(),!0})(tn),(e=>()=>{if(null===e)return!1;const t=new e(1,1,44100).createGain(),n=t.connect(t)===t;return t.disconnect(t),n})(Yt),((e,t)=>async()=>{if(null===e)return!0;if(null===t)return!1;const n=new Blob(['let c,p;class A extends AudioWorkletProcessor{constructor(){super();this.port.onmessage=(e)=>{p=e.data;p.onmessage=()=>{p.postMessage(c);p.close()};this.port.postMessage(0)}}process(){c=1}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),s=new MessageChannel,r=new t(1,128,44100),i=URL.createObjectURL(n);let a=!1;try{await r.audioWorklet.addModule(i);const t=new e(r,"a",{numberOfOutputs:0}),n=r.createOscillator();await new Promise((e=>{t.port.onmessage=()=>e(),t.port.postMessage(s.port2,[s.port2])})),t.port.onmessage=()=>a=!0,n.connect(t),n.start(0),await r.startRendering(),a=await new Promise((e=>{s.port1.onmessage=({data:t})=>e(1===t),s.port1.postMessage(0)}))}catch{}finally{s.port1.close(),URL.revokeObjectURL(i)}return a})(an,Yt),(e=>()=>{if(null===e)return!1;const t=new e(1,1,44100).createChannelMerger();if("max"===t.channelCountMode)return!0;try{t.channelCount=2}catch{return!0}return!1})(Yt),(e=>()=>{if(null===e)return!1;const t=new e(1,1,44100);return void 0===t.createConstantSource||t.createConstantSource().offset.maxValue!==Number.POSITIVE_INFINITY})(Yt),(e=>()=>{if(null===e)return!1;const t=new e(1,1,44100),n=t.createConvolver();n.buffer=t.createBuffer(1,1,t.sampleRate);try{n.buffer=t.createBuffer(1,1,t.sampleRate)}catch{return!1}return!0})(Yt),(e=>()=>{if(null===e)return!1;const t=new e(1,1,44100).createConvolver();try{t.channelCount=1}catch{return!1}return!0})(Yt),Ot,(e=>()=>null!==e&&e.hasOwnProperty("isSecureContext"))(Gt),(e=>()=>{if(null===e)return!1;const t=new e;try{return t.createMediaStreamSource(new MediaStream),!1}catch(e){return!0}finally{t.close()}})(tn),(e=>()=>{if(null===e)return Promise.resolve(!1);const t=new e(1,1,44100);if(void 0===t.createStereoPanner)return Promise.resolve(!0);if(void 0===t.createConstantSource)return Promise.resolve(!0);const n=t.createConstantSource(),s=t.createStereoPanner();return n.channelCount=1,n.offset.value=1,s.channelCount=1,n.start(),n.connect(s).connect(t.destination),t.startRendering().then((e=>1!==e.getChannelData(0)[0]))})(Yt),Dt);function rr(e,t){if(!e)throw new Error(t)}function ir(e,t,n=1/0){if(!(t<=e&&e<=n))throw new RangeError(`Value must be within [${t}, ${n}], got: ${e}`)}function ar(e){e.isOffline||"running"===e.state||cr('The AudioContext is "suspended". Invoke Tone.start() from a user action to start the audio.')}let or=console;function lr(e){or=e}function ur(...e){or.log(...e)}function cr(...e){or.warn(...e)}function hr(e){return void 0===e}function dr(e){return!hr(e)}function pr(e){return"function"==typeof e}function fr(e){return"number"==typeof e}function mr(e){return"[object Object]"===Object.prototype.toString.call(e)&&e.constructor===Object}function gr(e){return"boolean"==typeof e}function yr(e){return Array.isArray(e)}function br(e){return"string"==typeof e}function wr(e){return br(e)&&/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i.test(e)}const vr="object"==typeof self?self:null,xr=vr&&(vr.hasOwnProperty("AudioContext")||vr.hasOwnProperty("webkitAudioContext"));function Ar(e,t,n,s){var r,i=arguments.length,a=i<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,s);else for(var o=e.length-1;o>=0;o--)(r=e[o])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function Cr(e,t,n,s){return new(n||(n=Promise))((function(r,i){function a(e){try{l(s.next(e))}catch(e){i(e)}}function o(e){try{l(s.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,o)}l((s=s.apply(e,t||[])).next())}))}Object.create;Object.create;"function"==typeof SuppressedError&&SuppressedError;class kr{constructor(e,t,n){this._callback=e,this._type=t,this._updateInterval=n,this._createClock()}_createWorker(){const e=new Blob([`\n\t\t\t// the initial timeout time\n\t\t\tlet timeoutTime = ${(1e3*this._updateInterval).toFixed(1)};\n\t\t\t// onmessage callback\n\t\t\tself.onmessage = function(msg){\n\t\t\t\ttimeoutTime = parseInt(msg.data);\n\t\t\t};\n\t\t\t// the tick function which posts a message\n\t\t\t// and schedules a new tick\n\t\t\tfunction tick(){\n\t\t\t\tsetTimeout(tick, timeoutTime);\n\t\t\t\tself.postMessage('tick');\n\t\t\t}\n\t\t\t// call tick initially\n\t\t\ttick();\n\t\t\t`],{type:"text/javascript"}),t=URL.createObjectURL(e),n=new Worker(t);n.onmessage=this._callback.bind(this),this._worker=n}_createTimeout(){this._timeout=setTimeout((()=>{this._createTimeout(),this._callback()}),1e3*this._updateInterval)}_createClock(){if("worker"===this._type)try{this._createWorker()}catch(e){this._type="timeout",this._createClock()}else"timeout"===this._type&&this._createTimeout()}_disposeClock(){this._timeout&&(clearTimeout(this._timeout),this._timeout=0),this._worker&&(this._worker.terminate(),this._worker.onmessage=null)}get updateInterval(){return this._updateInterval}set updateInterval(e){this._updateInterval=Math.max(e,128/44100),"worker"===this._type&&this._worker.postMessage(Math.max(1e3*e,1))}get type(){return this._type}set type(e){this._disposeClock(),this._type=e,this._createClock()}dispose(){this._disposeClock()}}function Sr(e){return tr(e)}function _r(e){return er(e)}function Er(e){return nr(e)}function Ir(e){return Js(e)}function Tr(e){return e instanceof AudioBuffer}function Nr(e,t){return"value"===e||Sr(t)||_r(t)||Tr(t)}function Rr(e,...t){if(!t.length)return e;const n=t.shift();if(mr(e)&&mr(n))for(const t in n)Nr(t,n[t])?e[t]=n[t]:mr(n[t])?(e[t]||Object.assign(e,{[t]:{}}),Rr(e[t],n[t])):Object.assign(e,{[t]:n[t]});return Rr(e,...t)}function Or(e,t,n=[],s){const r={},i=Array.from(t);if(mr(i[0])&&s&&!Reflect.has(i[0],s)){Object.keys(i[0]).some((t=>Reflect.has(e,t)))||(Rr(r,{[s]:i[0]}),n.splice(n.indexOf(s),1),i.shift())}if(1===i.length&&mr(i[0]))Rr(r,i[0]);else for(let e=0;e{Reflect.has(e,t)&&delete e[t]})),e}class zr{constructor(){this.debug=!1,this._wasDisposed=!1}static getDefaults(){return{}}log(...e){(this.debug||vr&&this.toString()===vr.TONE_DEBUG_CLASS)&&ur(this,...e)}dispose(){return this._wasDisposed=!0,this}get disposed(){return this._wasDisposed}toString(){return this.name}}zr.version=i;const Fr=1e-6;function Br(e,t){return e>t+Fr}function Lr(e,t){return Br(e,t)||Ur(e,t)}function Pr(e,t){return e+Frthis.memory){const e=this.length-this.memory;this._timeline.splice(0,e)}return this}remove(e){const t=this._timeline.indexOf(e);return-1!==t&&this._timeline.splice(t,1),this}get(e,t="time"){const n=this._search(e,t);return-1!==n?this._timeline[n]:null}peek(){return this._timeline[0]}shift(){return this._timeline.shift()}getAfter(e,t="time"){const n=this._search(e,t);return n+10&&this._timeline[t-1].time=0?this._timeline[n-1]:null}cancel(e){if(this._timeline.length>1){let t=this._search(e);if(t>=0)if(Ur(this._timeline[t].time,e)){for(let n=t;n>=0&&Ur(this._timeline[n].time,e);n--)t=n;this._timeline=this._timeline.slice(0,t)}else this._timeline=this._timeline.slice(0,t+1);else this._timeline=[]}else 1===this._timeline.length&&Lr(this._timeline[0].time,e)&&(this._timeline=[]);return this}cancelBefore(e){const t=this._search(e);return t>=0&&(this._timeline=this._timeline.slice(t+1)),this}previousEvent(e){const t=this._timeline.indexOf(e);return t>0?this._timeline[t-1]:null}_search(e,t="time"){if(0===this._timeline.length)return-1;let n=0;const s=this._timeline.length;let r=s;if(s>0&&this._timeline[s-1][t]<=e)return s-1;for(;n=0&&this._timeline[n].time>=e;)n--;return this._iterate(t,n+1),this}forEachAtTime(e,t){const n=this._search(e);if(-1!==n&&Ur(this._timeline[n].time,e)){let s=n;for(let t=n;t>=0&&Ur(this._timeline[t].time,e);t--)s=t;this._iterate((e=>{t(e)}),s,n)}return this}dispose(){return super.dispose(),this._timeline=[],this}}const jr=[];function Gr(e){jr.push(e)}const qr=[];function Hr(e){qr.push(e)}class Kr extends zr{constructor(){super(...arguments),this.name="Emitter"}on(e,t){return e.split(/\W+/).forEach((e=>{hr(this._events)&&(this._events={}),this._events.hasOwnProperty(e)||(this._events[e]=[]),this._events[e].push(t)})),this}once(e,t){const n=(...s)=>{t(...s),this.off(e,n)};return this.on(e,n),this}off(e,t){return e.split(/\W+/).forEach((n=>{if(hr(this._events)&&(this._events={}),this._events.hasOwnProperty(e))if(hr(t))this._events[e]=[];else{const n=this._events[e];for(let e=n.length-1;e>=0;e--)n[e]===t&&n.splice(e,1)}})),this}emit(e,...t){if(this._events&&this._events.hasOwnProperty(e)){const n=this._events[e].slice(0);for(let e=0,s=n.length;e{const n=Object.getOwnPropertyDescriptor(Kr.prototype,t);Object.defineProperty(e.prototype,t,n)}))}dispose(){return super.dispose(),this._events=void 0,this}}class $r extends Kr{constructor(){super(...arguments),this.isOffline=!1}toJSON(){return{}}}class Xr extends $r{constructor(){super(),this.name="Context",this._constants=new Map,this._timeouts=new Wr,this._timeoutIds=0,this._initialized=!1,this.isOffline=!1,this._workletModules=new Map;const e=Or(Xr.getDefaults(),arguments,["context"]);e.context?this._context=e.context:this._context=function(e){return new Fs(e)}({latencyHint:e.latencyHint}),this._ticker=new kr(this.emit.bind(this,"tick"),e.clockSource,e.updateInterval),this.on("tick",this._timeoutLoop.bind(this)),this._context.onstatechange=()=>{this.emit("statechange",this.state)},this._setLatencyHint(e.latencyHint),this.lookAhead=e.lookAhead}static getDefaults(){return{clockSource:"worker",latencyHint:"interactive",lookAhead:.1,updateInterval:.05}}initialize(){var e;return this._initialized||(e=this,jr.forEach((t=>t(e))),this._initialized=!0),this}createAnalyser(){return this._context.createAnalyser()}createOscillator(){return this._context.createOscillator()}createBufferSource(){return this._context.createBufferSource()}createBiquadFilter(){return this._context.createBiquadFilter()}createBuffer(e,t,n){return this._context.createBuffer(e,t,n)}createChannelMerger(e){return this._context.createChannelMerger(e)}createChannelSplitter(e){return this._context.createChannelSplitter(e)}createConstantSource(){return this._context.createConstantSource()}createConvolver(){return this._context.createConvolver()}createDelay(e){return this._context.createDelay(e)}createDynamicsCompressor(){return this._context.createDynamicsCompressor()}createGain(){return this._context.createGain()}createIIRFilter(e,t){return this._context.createIIRFilter(e,t)}createPanner(){return this._context.createPanner()}createPeriodicWave(e,t,n){return this._context.createPeriodicWave(e,t,n)}createStereoPanner(){return this._context.createStereoPanner()}createWaveShaper(){return this._context.createWaveShaper()}createMediaStreamSource(e){rr(Ir(this._context),"Not available if OfflineAudioContext");return this._context.createMediaStreamSource(e)}createMediaElementSource(e){rr(Ir(this._context),"Not available if OfflineAudioContext");return this._context.createMediaElementSource(e)}createMediaStreamDestination(){rr(Ir(this._context),"Not available if OfflineAudioContext");return this._context.createMediaStreamDestination()}decodeAudioData(e){return this._context.decodeAudioData(e)}get currentTime(){return this._context.currentTime}get state(){return this._context.state}get sampleRate(){return this._context.sampleRate}get listener(){return this.initialize(),this._listener}set listener(e){rr(!this._initialized,"The listener cannot be set after initialization."),this._listener=e}get transport(){return this.initialize(),this._transport}set transport(e){rr(!this._initialized,"The transport cannot be set after initialization."),this._transport=e}get draw(){return this.initialize(),this._draw}set draw(e){rr(!this._initialized,"Draw cannot be set after initialization."),this._draw=e}get destination(){return this.initialize(),this._destination}set destination(e){rr(!this._initialized,"The destination cannot be set after initialization."),this._destination=e}createAudioWorkletNode(e,t){return function(e,t,n){return rr(dr(Xs),"This node only works in a secure context (https or localhost)"),new Xs(e,t,n)}(this.rawContext,e,t)}addAudioWorkletModule(e,t){return Cr(this,void 0,void 0,(function*(){rr(dr(this.rawContext.audioWorklet),"AudioWorkletNode is only available in a secure context (https or localhost)"),this._workletModules.has(t)||this._workletModules.set(t,this.rawContext.audioWorklet.addModule(e)),yield this._workletModules.get(t)}))}workletsAreReady(){return Cr(this,void 0,void 0,(function*(){const e=[];this._workletModules.forEach((t=>e.push(t))),yield Promise.all(e)}))}get updateInterval(){return this._ticker.updateInterval}set updateInterval(e){this._ticker.updateInterval=e}get clockSource(){return this._ticker.type}set clockSource(e){this._ticker.type=e}get latencyHint(){return this._latencyHint}_setLatencyHint(e){let t=0;if(this._latencyHint=e,br(e))switch(e){case"interactive":t=.1;break;case"playback":t=.5;break;case"balanced":t=.25}this.lookAhead=t,this.updateInterval=t/2}get rawContext(){return this._context}now(){return this._context.currentTime+this.lookAhead}immediate(){return this._context.currentTime}resume(){return Ir(this._context)?this._context.resume():Promise.resolve()}close(){return Cr(this,void 0,void 0,(function*(){var e;Ir(this._context)&&(yield this._context.close()),this._initialized&&(e=this,qr.forEach((t=>t(e))))}))}getConstant(e){if(this._constants.has(e))return this._constants.get(e);{const t=this._context.createBuffer(1,128,this._context.sampleRate),n=t.getChannelData(0);for(let t=0;tthis._constants[e].disconnect())),this}_timeoutLoop(){const e=this.now();let t=this._timeouts.peek();for(;this._timeouts.length&&t&&t.time<=e;)t.callback(),this._timeouts.shift(),t=this._timeouts.peek()}setTimeout(e,t){this._timeoutIds++;const n=this.now();return this._timeouts.add({callback:e,id:this._timeoutIds,time:n+t}),this._timeoutIds}clearTimeout(e){return this._timeouts.forEach((t=>{t.id===e&&this._timeouts.remove(t)})),this}clearInterval(e){return this.clearTimeout(e)}setInterval(e,t){const n=++this._timeoutIds,s=()=>{const r=this.now();this._timeouts.add({callback:()=>{e(),s()},id:n,time:r+t})};return s(),n}}function Zr(e,t){yr(t)?t.forEach((t=>Zr(e,t))):Object.defineProperty(e,t,{enumerable:!0,writable:!1})}function Yr(e,t){yr(t)?t.forEach((t=>Yr(e,t))):Object.defineProperty(e,t,{writable:!0})}const Qr=()=>{};class Jr extends zr{constructor(){super(),this.name="ToneAudioBuffer",this.onload=Qr;const e=Or(Jr.getDefaults(),arguments,["url","onload","onerror"]);this.reverse=e.reverse,this.onload=e.onload,e.url&&Tr(e.url)||e.url instanceof Jr?this.set(e.url):br(e.url)&&this.load(e.url).catch(e.onerror)}static getDefaults(){return{onerror:Qr,onload:Qr,reverse:!1}}get sampleRate(){return this._buffer?this._buffer.sampleRate:si().sampleRate}set(e){return e instanceof Jr?e.loaded?this._buffer=e.get():e.onload=()=>{this.set(e),this.onload(this)}:this._buffer=e,this._reversed&&this._reverse(),this}get(){return this._buffer}load(e){return Cr(this,void 0,void 0,(function*(){const t=Jr.load(e).then((e=>{this.set(e),this.onload(this)}));Jr.downloads.push(t);try{yield t}finally{const e=Jr.downloads.indexOf(t);Jr.downloads.splice(e,1)}return this}))}dispose(){return super.dispose(),this._buffer=void 0,this}fromArray(e){const t=yr(e)&&e[0].length>0,n=t?e.length:1,s=t?e[0].length:e.length,r=si(),i=r.createBuffer(n,s,r.sampleRate),a=t||1!==n?e:[e];for(let e=0;ee/t)),this.fromArray(e)}return this}toArray(e){if(fr(e))return this.getChannelData(e);if(1===this.numberOfChannels)return this.toArray(0);{const e=[];for(let t=0;t0}get duration(){return this._buffer?this._buffer.duration:0}get length(){return this._buffer?this._buffer.length:0}get numberOfChannels(){return this._buffer?this._buffer.numberOfChannels:0}get reverse(){return this._reversed}set reverse(e){this._reversed!==e&&(this._reversed=e,this._reverse())}static fromArray(e){return(new Jr).fromArray(e)}static fromUrl(e){return Cr(this,void 0,void 0,(function*(){const t=new Jr;return yield t.load(e)}))}static load(e){return Cr(this,void 0,void 0,(function*(){const t=e.match(/\[([^\]\[]+\|.+)\]$/);if(t){const n=t[1].split("|");let s=n[0];for(const e of n)if(Jr.supportsType(e)){s=e;break}e=e.replace(t[0],s)}const n=""===Jr.baseUrl||Jr.baseUrl.endsWith("/")?Jr.baseUrl:Jr.baseUrl+"/",s=yield fetch(n+e);if(!s.ok)throw new Error(`could not load url: ${e}`);const r=yield s.arrayBuffer();return yield si().decodeAudioData(r)}))}static supportsType(e){const t=e.split("."),n=t[t.length-1];return""!==document.createElement("audio").canPlayType("audio/"+n)}static loaded(){return Cr(this,void 0,void 0,(function*(){for(yield Promise.resolve();Jr.downloads.length;)yield Jr.downloads[0]}))}}Jr.baseUrl="",Jr.downloads=[];class ei extends Xr{constructor(){var e,t,n;super({clockSource:"offline",context:Er(arguments[0])?arguments[0]:(e=arguments[0],t=arguments[1]*arguments[2],n=arguments[2],new Qs(e,t,n)),lookAhead:0,updateInterval:Er(arguments[0])?128/arguments[0].sampleRate:128/arguments[2]}),this.name="OfflineContext",this._currentTime=0,this.isOffline=!0,this._duration=Er(arguments[0])?arguments[0].length/arguments[0].sampleRate:arguments[1]}now(){return this._currentTime}get currentTime(){return this._currentTime}_renderClock(e){return Cr(this,void 0,void 0,(function*(){let t=0;for(;this._duration-this._currentTime>=0;){this.emit("tick"),this._currentTime+=128/this.sampleRate,t++;const n=Math.floor(this.sampleRate/128);e&&t%n==0&&(yield new Promise((e=>setTimeout(e,1))))}}))}render(e=!0){return Cr(this,void 0,void 0,(function*(){yield this.workletsAreReady(),yield this._renderClock(e);const t=yield this._context.startRendering();return new Jr(t)}))}close(){return Promise.resolve()}}const ti=new class extends $r{constructor(){super(...arguments),this.lookAhead=0,this.latencyHint=0,this.isOffline=!1}createAnalyser(){return{}}createOscillator(){return{}}createBufferSource(){return{}}createBiquadFilter(){return{}}createBuffer(e,t,n){return{}}createChannelMerger(e){return{}}createChannelSplitter(e){return{}}createConstantSource(){return{}}createConvolver(){return{}}createDelay(e){return{}}createDynamicsCompressor(){return{}}createGain(){return{}}createIIRFilter(e,t){return{}}createPanner(){return{}}createPeriodicWave(e,t,n){return{}}createStereoPanner(){return{}}createWaveShaper(){return{}}createMediaStreamSource(e){return{}}createMediaElementSource(e){return{}}createMediaStreamDestination(){return{}}decodeAudioData(e){return Promise.resolve({})}createAudioWorkletNode(e,t){return{}}get rawContext(){return{}}addAudioWorkletModule(e,t){return Cr(this,void 0,void 0,(function*(){return Promise.resolve()}))}resume(){return Promise.resolve()}setTimeout(e,t){return 0}clearTimeout(e){return this}setInterval(e,t){return 0}clearInterval(e){return this}getConstant(e){return{}}get currentTime(){return 0}get state(){return{}}get sampleRate(){return 0}get listener(){return{}}get transport(){return{}}get draw(){return{}}set draw(e){}get destination(){return{}}set destination(e){}now(){return 0}immediate(){return 0}};let ni=ti;function si(){return ni===ti&&xr&&ri(new Xr),ni}function ri(e){ni=Ir(e)?new Xr(e):Er(e)?new ei(e):e}function ii(){return ni.resume()}if(vr&&!vr.TONE_SILENCE_LOGGING){let e="v";"dev"===i&&(e="")}function ai(e){return Math.pow(10,e/20)}function oi(e){return Math.log(e)/Math.LN10*20}function li(e){return Math.pow(2,e/12)}let ui=440;function ci(e){return Math.round(hi(e))}function hi(e){return 69+12*Math.log2(e/ui)}function di(e){return ui*Math.pow(2,(e-69)/12)}class pi extends zr{constructor(e,t,n){super(),this.defaultUnits="s",this._val=t,this._units=n,this.context=e,this._expressions=this._getExpressions()}_getExpressions(){return{hz:{method:e=>this._frequencyToUnits(parseFloat(e)),regexp:/^(\d+(?:\.\d+)?)hz$/i},i:{method:e=>this._ticksToUnits(parseInt(e,10)),regexp:/^(\d+)i$/i},m:{method:e=>this._beatsToUnits(parseInt(e,10)*this._getTimeSignature()),regexp:/^(\d+)m$/i},n:{method:(e,t)=>{const n=parseInt(e,10),s="."===t?1.5:1;return 1===n?this._beatsToUnits(this._getTimeSignature())*s:this._beatsToUnits(4/n)*s},regexp:/^(\d+)n(\.?)$/i},number:{method:e=>this._expressions[this.defaultUnits].method.call(this,e),regexp:/^(\d+(?:\.\d+)?)$/},s:{method:e=>this._secondsToUnits(parseFloat(e)),regexp:/^(\d+(?:\.\d+)?)s$/},samples:{method:e=>parseInt(e,10)/this.context.sampleRate,regexp:/^(\d+)samples$/},t:{method:e=>{const t=parseInt(e,10);return this._beatsToUnits(8/(3*Math.floor(t)))},regexp:/^(\d+)t$/i},tr:{method:(e,t,n)=>{let s=0;return e&&"0"!==e&&(s+=this._beatsToUnits(this._getTimeSignature()*parseFloat(e))),t&&"0"!==t&&(s+=this._beatsToUnits(parseFloat(t))),n&&"0"!==n&&(s+=this._beatsToUnits(parseFloat(n)/4)),s},regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?$/}}}valueOf(){if(this._val instanceof pi&&this.fromType(this._val),hr(this._val))return this._noArg();if(br(this._val)&&hr(this._units)){for(const e in this._expressions)if(this._expressions[e].regexp.test(this._val.trim())){this._units=e;break}}else if(mr(this._val)){let e=0;for(const t in this._val)if(dr(this._val[t])){const n=this._val[t];e+=new this.constructor(this.context,t).valueOf()*n}return e}if(dr(this._units)){const e=this._expressions[this._units],t=this._val.toString().trim().match(e.regexp);return t?e.method.apply(this,t.slice(1)):e.method.call(this,this._val)}return br(this._val)?parseFloat(this._val):this._val}_frequencyToUnits(e){return 1/e}_beatsToUnits(e){return 60/this._getBpm()*e}_secondsToUnits(e){return e}_ticksToUnits(e){return e*this._beatsToUnits(1)/this._getPPQ()}_noArg(){return this._now()}_getBpm(){return this.context.transport.bpm.value}_getTimeSignature(){return this.context.transport.timeSignature}_getPPQ(){return this.context.transport.PPQ}fromType(e){switch(this._units=void 0,this.defaultUnits){case"s":this._val=e.toSeconds();break;case"i":this._val=e.toTicks();break;case"hz":this._val=e.toFrequency();break;case"midi":this._val=e.toMidi()}return this}toFrequency(){return 1/this.toSeconds()}toSamples(){return this.toSeconds()*this.context.sampleRate}toMilliseconds(){return 1e3*this.toSeconds()}}class fi extends pi{constructor(){super(...arguments),this.name="TimeClass"}_getExpressions(){return Object.assign(super._getExpressions(),{now:{method:e=>this._now()+new this.constructor(this.context,e).valueOf(),regexp:/^\+(.+)/},quantize:{method:e=>{const t=new fi(this.context,e).valueOf();return this._secondsToUnits(this.context.transport.nextSubdivision(t))},regexp:/^@(.+)/}})}quantize(e,t=1){const n=new this.constructor(this.context,e).valueOf(),s=this.valueOf();return s+(Math.round(s/n)*n-s)*t}toNotation(){const e=this.toSeconds(),t=["1m"];for(let e=1;e<9;e++){const n=Math.pow(2,e);t.push(n+"n."),t.push(n+"n"),t.push(n+"t")}t.push("0");let n=t[0],s=new fi(this.context,t[0]).toSeconds();return t.forEach((t=>{const r=new fi(this.context,t).toSeconds();Math.abs(r-e)3&&(s=parseFloat(parseFloat(r).toFixed(3)));return[n,t,s].join(":")}toTicks(){const e=this._beatsToUnits(1),t=this.valueOf()/e;return Math.round(t*this._getPPQ())}toSeconds(){return this.valueOf()}toMidi(){return ci(this.toFrequency())}_now(){return this.context.now()}}function mi(e,t){return new fi(si(),e,t)}class gi extends fi{constructor(){super(...arguments),this.name="Frequency",this.defaultUnits="hz"}static get A4(){return ui}static set A4(e){!function(e){ui=e}(e)}_getExpressions(){return Object.assign({},super._getExpressions(),{midi:{regexp:/^(\d+(?:\.\d+)?midi)/,method(e){return"midi"===this.defaultUnits?e:gi.mtof(e)}},note:{regexp:/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i,method(e,t){const n=yi[e.toLowerCase()]+12*(parseInt(t,10)+1);return"midi"===this.defaultUnits?n:gi.mtof(n)}},tr:{regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?/,method(e,t,n){let s=1;return e&&"0"!==e&&(s*=this._beatsToUnits(this._getTimeSignature()*parseFloat(e))),t&&"0"!==t&&(s*=this._beatsToUnits(parseFloat(t))),n&&"0"!==n&&(s*=this._beatsToUnits(parseFloat(n)/4)),s}}})}transpose(e){return new gi(this.context,this.valueOf()*li(e))}harmonize(e){return e.map((e=>this.transpose(e)))}toMidi(){return ci(this.valueOf())}toNote(){const e=this.toFrequency(),t=Math.log2(e/gi.A4);let n=Math.round(12*t)+57;const s=Math.floor(n/12);s<0&&(n+=-12*s);return bi[n%12]+s.toString()}toSeconds(){return 1/super.toSeconds()}toTicks(){const e=this._beatsToUnits(1),t=this.valueOf()/e;return Math.floor(t*this._getPPQ())}_noArg(){return 0}_frequencyToUnits(e){return e}_ticksToUnits(e){return 1/(60*e/(this._getBpm()*this._getPPQ()))}_beatsToUnits(e){return 1/super._beatsToUnits(e)}_secondsToUnits(e){return 1/e}static mtof(e){return di(e)}static ftom(e){return ci(e)}}const yi={cbb:-2,cb:-1,c:0,"c#":1,cx:2,dbb:0,db:1,d:2,"d#":3,dx:4,ebb:2,eb:3,e:4,"e#":5,ex:6,fbb:3,fb:4,f:5,"f#":6,fx:7,gbb:5,gb:6,g:7,"g#":8,gx:9,abb:7,ab:8,a:9,"a#":10,ax:11,bbb:9,bb:10,b:11,"b#":12,bx:13},bi=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"];function wi(e,t){return new gi(si(),e,t)}class vi extends fi{constructor(){super(...arguments),this.name="TransportTime"}_now(){return this.context.transport.seconds}}function xi(e,t){return new vi(si(),e,t)}class Ai extends zr{constructor(){super();const e=Or(Ai.getDefaults(),arguments,["context"]);this.defaultContext?this.context=this.defaultContext:this.context=e.context}static getDefaults(){return{context:si()}}now(){return this.context.currentTime+this.context.lookAhead}immediate(){return this.context.currentTime}get sampleTime(){return 1/this.context.sampleRate}get blockTime(){return 128/this.context.sampleRate}toSeconds(e){return new fi(this.context,e).toSeconds()}toFrequency(e){return new gi(this.context,e).toFrequency()}toTicks(e){return new vi(this.context,e).toTicks()}_getPartialProperties(e){const t=this.get();return Object.keys(t).forEach((n=>{hr(e[n])&&delete t[n]})),t}get(){const e=this.constructor.getDefaults();return Object.keys(e).forEach((t=>{if(Reflect.has(this,t)){const n=this[t];dr(n)&&dr(n.value)&&dr(n.setValueAtTime)?e[t]=n.value:n instanceof Ai?e[t]=n._getPartialProperties(e[t]):yr(n)||fr(n)||br(n)||gr(n)?e[t]=n:delete e[t]}})),e}set(e){return Object.keys(e).forEach((t=>{Reflect.has(this,t)&&dr(this[t])&&(this[t]&&dr(this[t].value)&&dr(this[t].setValueAtTime)?this[t].value!==e[t]&&(this[t].value=e[t]):this[t]instanceof Ai?this[t].set(e[t]):this[t]=e[t])})),this}}class Ci extends Wr{constructor(e="stopped"){super(),this.name="StateTimeline",this._initial=e,this.setStateAtTime(this._initial,0)}getValueAtTime(e){const t=this.get(e);return null!==t?t.state:this._initial}setStateAtTime(e,t,n){return ir(t,0),this.add(Object.assign({},n,{state:e,time:t})),this}getLastState(e,t){for(let n=this._search(t);n>=0;n--){const t=this._timeline[n];if(t.state===e)return t}}getNextState(e,t){const n=this._search(t);if(-1!==n)for(let t=n;t0,"timeConstant must be a number greater than 0");const r=this.toSeconds(t);return this._assertRange(s),rr(isFinite(s)&&isFinite(r),`Invalid argument(s) to setTargetAtTime: ${JSON.stringify(e)}, ${JSON.stringify(t)}`),this._events.add({constant:n,time:r,type:"setTargetAtTime",value:s}),this.log(this.units,"setTargetAtTime",e,r,n),this._param.setTargetAtTime(s,r,n),this}setValueCurveAtTime(e,t,n,s=1){n=this.toSeconds(n),t=this.toSeconds(t);const r=this._fromType(e[0])*s;this.setValueAtTime(this._toType(r),t);const i=n/(e.length-1);for(let n=1;n{"cancelScheduledValues"===t.type?e.cancelScheduledValues(t.time):"setTargetAtTime"===t.type?e.setTargetAtTime(t.value,t.time,t.constant):e[t.type](t.value,t.time)})),this}setParam(e){rr(this._swappable,"The Param must be assigned as 'swappable' in the constructor");const t=this.input;return t.disconnect(this._param),this.apply(e),this._param=e,t.connect(this._param),this}dispose(){return super.dispose(),this._events.dispose(),this}get defaultValue(){return this._toType(this._param.defaultValue)}_exponentialApproach(e,t,n,s,r){return n+(t-n)*Math.exp(-(r-e)/s)}_linearInterpolate(e,t,n,s,r){return t+(r-e)/(n-e)*(s-t)}_exponentialInterpolate(e,t,n,s,r){return t*Math.pow(s/t,(r-e)/(n-e))}}class Si extends Ai{constructor(){super(...arguments),this.name="ToneAudioNode",this._internalChannels=[]}get numberOfInputs(){return dr(this.input)?Sr(this.input)||this.input instanceof ki?1:this.input.numberOfInputs:0}get numberOfOutputs(){return dr(this.output)?this.output.numberOfOutputs:0}_isAudioNode(e){return dr(e)&&(e instanceof Si||_r(e))}_getInternalNodes(){const e=this._internalChannels.slice(0);return this._isAudioNode(this.input)&&e.push(this.input),this._isAudioNode(this.output)&&this.input!==this.output&&e.push(this.output),e}_setChannelProperties(e){this._getInternalNodes().forEach((t=>{t.channelCount=e.channelCount,t.channelCountMode=e.channelCountMode,t.channelInterpretation=e.channelInterpretation}))}_getChannelProperties(){const e=this._getInternalNodes();rr(e.length>0,"ToneAudioNode does not have any internal nodes");const t=e[0];return{channelCount:t.channelCount,channelCountMode:t.channelCountMode,channelInterpretation:t.channelInterpretation}}get channelCount(){return this._getChannelProperties().channelCount}set channelCount(e){const t=this._getChannelProperties();this._setChannelProperties(Object.assign(t,{channelCount:e}))}get channelCountMode(){return this._getChannelProperties().channelCountMode}set channelCountMode(e){const t=this._getChannelProperties();this._setChannelProperties(Object.assign(t,{channelCountMode:e}))}get channelInterpretation(){return this._getChannelProperties().channelInterpretation}set channelInterpretation(e){const t=this._getChannelProperties();this._setChannelProperties(Object.assign(t,{channelInterpretation:e}))}connect(e,t=0,n=0){return Ei(this,e,t,n),this}toDestination(){return this.connect(this.context.destination),this}toMaster(){return cr("toMaster() has been renamed toDestination()"),this.toDestination()}disconnect(e,t=0,n=0){return Ii(this,e,t,n),this}chain(...e){return _i(this,...e),this}fan(...e){return e.forEach((e=>this.connect(e))),this}dispose(){return super.dispose(),dr(this.input)&&(this.input instanceof Si?this.input.dispose():_r(this.input)&&this.input.disconnect()),dr(this.output)&&(this.output instanceof Si?this.output.dispose():_r(this.output)&&this.output.disconnect()),this._internalChannels=[],this}}function _i(...e){const t=e.shift();e.reduce(((e,t)=>(e instanceof Si?e.connect(t):_r(e)&&Ei(e,t),t)),t)}function Ei(e,t,n=0,s=0){for(rr(dr(e),"Cannot connect from undefined node"),rr(dr(t),"Cannot connect to undefined node"),(t instanceof Si||_r(t))&&rr(t.numberOfInputs>0,"Cannot connect to node with no inputs"),rr(e.numberOfOutputs>0,"Cannot connect from node with no outputs");t instanceof Si||t instanceof ki;)dr(t.input)&&(t=t.input);for(;e instanceof Si;)dr(e.output)&&(e=e.output);Sr(t)?e.connect(t,n):e.connect(t,n,s)}function Ii(e,t,n=0,s=0){if(dr(t))for(;t instanceof Si;)t=t.input;for(;!_r(e);)dr(e.output)&&(e=e.output);Sr(t)?e.disconnect(t,n):_r(t)?e.disconnect(t,n,s):e.disconnect()}class Ti extends Si{constructor(){super(Or(Ti.getDefaults(),arguments,["gain","units"])),this.name="Gain",this._gainNode=this.context.createGain(),this.input=this._gainNode,this.output=this._gainNode;const e=Or(Ti.getDefaults(),arguments,["gain","units"]);this.gain=new ki({context:this.context,convert:e.convert,param:this._gainNode.gain,units:e.units,value:e.gain,minValue:e.minValue,maxValue:e.maxValue}),Zr(this,"gain")}static getDefaults(){return Object.assign(Si.getDefaults(),{convert:!0,gain:1,units:"gain"})}dispose(){return super.dispose(),this._gainNode.disconnect(),this.gain.dispose(),this}}class Ni extends Si{constructor(e){super(e),this.onended=Qr,this._startTime=-1,this._stopTime=-1,this._timeout=-1,this.output=new Ti({context:this.context,gain:0}),this._gainNode=this.output,this.getStateAtTime=function(e){const t=this.toSeconds(e);return-1!==this._startTime&&t>=this._startTime&&(-1===this._stopTime||t<=this._stopTime)?"started":"stopped"},this._fadeIn=e.fadeIn,this._fadeOut=e.fadeOut,this._curve=e.curve,this.onended=e.onended}static getDefaults(){return Object.assign(Si.getDefaults(),{curve:"linear",fadeIn:0,fadeOut:0,onended:Qr})}_startGain(e,t=1){rr(-1===this._startTime,"Source cannot be started more than once");const n=this.toSeconds(this._fadeIn);return this._startTime=e+n,this._startTime=Math.max(this._startTime,this.context.currentTime),n>0?(this._gainNode.gain.setValueAtTime(0,e),"linear"===this._curve?this._gainNode.gain.linearRampToValueAtTime(t,e+n):this._gainNode.gain.exponentialApproachValueAtTime(t,e,n)):this._gainNode.gain.setValueAtTime(t,e),this}stop(e){return this.log("stop",e),this._stopGain(this.toSeconds(e)),this}_stopGain(e){rr(-1!==this._startTime,"'start' must be called before 'stop'"),this.cancelStop();const t=this.toSeconds(this._fadeOut);return this._stopTime=this.toSeconds(e)+t,this._stopTime=Math.max(this._stopTime,this.context.currentTime),t>0?"linear"===this._curve?this._gainNode.gain.linearRampTo(0,t,e):this._gainNode.gain.targetRampTo(0,t,e):(this._gainNode.gain.cancelAndHoldAtTime(e),this._gainNode.gain.setValueAtTime(0,e)),this.context.clearTimeout(this._timeout),this._timeout=this.context.setTimeout((()=>{const e="exponential"===this._curve?2*t:0;this._stopSource(this.now()+e),this._onended()}),this._stopTime-this.context.currentTime),this}_onended(){if(this.onended!==Qr&&(this.onended(this),this.onended=Qr,!this.context.isOffline)){const e=()=>this.dispose();void 0!==window.requestIdleCallback?window.requestIdleCallback(e):setTimeout(e,1e3)}}get state(){return this.getStateAtTime(this.now())}cancelStop(){return this.log("cancelStop"),rr(-1!==this._startTime,"Source is not started"),this._gainNode.gain.cancelScheduledValues(this._startTime+this.sampleTime),this.context.clearTimeout(this._timeout),this._stopTime=-1,this}dispose(){return super.dispose(),this._gainNode.disconnect(),this}}class Ri extends Ni{constructor(){super(Or(Ri.getDefaults(),arguments,["offset"])),this.name="ToneConstantSource",this._source=this.context.createConstantSource();const e=Or(Ri.getDefaults(),arguments,["offset"]);Ei(this._source,this._gainNode),this.offset=new ki({context:this.context,convert:e.convert,param:this._source.offset,units:e.units,value:e.offset,minValue:e.minValue,maxValue:e.maxValue})}static getDefaults(){return Object.assign(Ni.getDefaults(),{convert:!0,offset:1,units:"number"})}start(e){const t=this.toSeconds(e);return this.log("start",t),this._startGain(t),this._source.start(t),this}_stopSource(e){this._source.stop(e)}dispose(){return super.dispose(),"started"===this.state&&this.stop(),this._source.disconnect(),this.offset.dispose(),this}}class Oi extends Si{constructor(){super(Or(Oi.getDefaults(),arguments,["value","units"])),this.name="Signal",this.override=!0;const e=Or(Oi.getDefaults(),arguments,["value","units"]);this.output=this._constantSource=new Ri({context:this.context,convert:e.convert,offset:e.value,units:e.units,minValue:e.minValue,maxValue:e.maxValue}),this._constantSource.start(0),this.input=this._param=this._constantSource.offset}static getDefaults(){return Object.assign(Si.getDefaults(),{convert:!0,units:"number",value:0})}connect(e,t=0,n=0){return Di(this,e,t,n),this}dispose(){return super.dispose(),this._param.dispose(),this._constantSource.dispose(),this}setValueAtTime(e,t){return this._param.setValueAtTime(e,t),this}getValueAtTime(e){return this._param.getValueAtTime(e)}setRampPoint(e){return this._param.setRampPoint(e),this}linearRampToValueAtTime(e,t){return this._param.linearRampToValueAtTime(e,t),this}exponentialRampToValueAtTime(e,t){return this._param.exponentialRampToValueAtTime(e,t),this}exponentialRampTo(e,t,n){return this._param.exponentialRampTo(e,t,n),this}linearRampTo(e,t,n){return this._param.linearRampTo(e,t,n),this}targetRampTo(e,t,n){return this._param.targetRampTo(e,t,n),this}exponentialApproachValueAtTime(e,t,n){return this._param.exponentialApproachValueAtTime(e,t,n),this}setTargetAtTime(e,t,n){return this._param.setTargetAtTime(e,t,n),this}setValueCurveAtTime(e,t,n,s){return this._param.setValueCurveAtTime(e,t,n,s),this}cancelScheduledValues(e){return this._param.cancelScheduledValues(e),this}cancelAndHoldAtTime(e){return this._param.cancelAndHoldAtTime(e),this}rampTo(e,t,n){return this._param.rampTo(e,t,n),this}get value(){return this._param.value}set value(e){this._param.value=e}get convert(){return this._param.convert}set convert(e){this._param.convert=e}get units(){return this._param.units}get overridden(){return this._param.overridden}set overridden(e){this._param.overridden=e}get maxValue(){return this._param.maxValue}get minValue(){return this._param.minValue}apply(e){return this._param.apply(e),this}}function Di(e,t,n,s){(t instanceof ki||Sr(t)||t instanceof Oi&&t.override)&&(t.cancelScheduledValues(0),t.setValueAtTime(0,0),t instanceof Oi&&(t.overridden=!0)),Ei(e,t,n,s)}class Mi extends ki{constructor(){super(Or(Mi.getDefaults(),arguments,["value"])),this.name="TickParam",this._events=new Wr(1/0),this._multiplier=1;const e=Or(Mi.getDefaults(),arguments,["value"]);this._multiplier=e.multiplier,this._events.cancel(0),this._events.add({ticks:0,time:0,type:"setValueAtTime",value:this._fromType(e.value)}),this.setValueAtTime(e.value,0)}static getDefaults(){return Object.assign(ki.getDefaults(),{multiplier:1,units:"hertz",value:1})}setTargetAtTime(e,t,n){t=this.toSeconds(t),this.setRampPoint(t);const s=this._fromType(e),r=this._events.get(t),i=Math.round(Math.max(1/n,1));for(let e=0;e<=i;e++){const i=n*e+t,a=this._exponentialApproach(r.time,r.value,s,n,i);this.linearRampToValueAtTime(this._toType(a),i)}return this}setValueAtTime(e,t){const n=this.toSeconds(t);super.setValueAtTime(e,t);const s=this._events.get(n),r=this._events.previousEvent(s),i=this._getTicksUntilEvent(r,n);return s.ticks=Math.max(i,0),this}linearRampToValueAtTime(e,t){const n=this.toSeconds(t);super.linearRampToValueAtTime(e,t);const s=this._events.get(n),r=this._events.previousEvent(s),i=this._getTicksUntilEvent(r,n);return s.ticks=Math.max(i,0),this}exponentialRampToValueAtTime(e,t){t=this.toSeconds(t);const n=this._fromType(e),s=this._events.get(t),r=Math.round(Math.max(10*(t-s.time),1)),i=(t-s.time)/r;for(let e=0;e<=r;e++){const r=i*e+s.time,a=this._exponentialInterpolate(s.time,s.value,t,n,r);this.linearRampToValueAtTime(this._toType(a),r)}return this}_getTicksUntilEvent(e,t){if(null===e)e={ticks:0,time:0,type:"setValueAtTime",value:0};else if(hr(e.ticks)){const t=this._events.previousEvent(e);e.ticks=this._getTicksUntilEvent(t,e.time)}const n=this._fromType(this.getValueAtTime(e.time));let s=this._fromType(this.getValueAtTime(t));const r=this._events.get(t);return r&&r.time===t&&"setValueAtTime"===r.type&&(s=this._fromType(this.getValueAtTime(t-this.sampleTime))),.5*(t-e.time)*(n+s)+e.ticks}getTicksAtTime(e){const t=this.toSeconds(e),n=this._events.get(t);return Math.max(this._getTicksUntilEvent(n,t),0)}getDurationOfTicks(e,t){const n=this.toSeconds(t),s=this.getTicksAtTime(t);return this.getTimeOfTick(s+e)-n}getTimeOfTick(e){const t=this._events.get(e,"ticks"),n=this._events.getAfter(e,"ticks");if(t&&t.ticks===e)return t.time;if(t&&n&&"linearRampToValueAtTime"===n.type&&t.value!==n.value){const s=this._fromType(this.getValueAtTime(t.time)),r=(this._fromType(this.getValueAtTime(n.time))-s)/(n.time-t.time),i=Math.sqrt(Math.pow(s,2)-2*r*(t.ticks-e)),a=(-s+i)/r;return(a>0?a:(-s-i)/r)+t.time}return t?0===t.value?1/0:t.time+(e-t.ticks)/t.value:e/this._initialValue}ticksToTime(e,t){return this.getDurationOfTicks(e,t)}timeToTicks(e,t){const n=this.toSeconds(t),s=this.toSeconds(e),r=this.getTicksAtTime(n);return this.getTicksAtTime(n+s)-r}_fromType(e){return"bpm"===this.units&&this.multiplier?1/(60/e/this.multiplier):super._fromType(e)}_toType(e){return"bpm"===this.units&&this.multiplier?e/this.multiplier*60:super._toType(e)}get multiplier(){return this._multiplier}set multiplier(e){const t=this.value;this._multiplier=e,this.cancelScheduledValues(0),this.setValueAtTime(t,0)}}class zi extends Oi{constructor(){super(Or(zi.getDefaults(),arguments,["value"])),this.name="TickSignal";const e=Or(zi.getDefaults(),arguments,["value"]);this.input=this._param=new Mi({context:this.context,convert:e.convert,multiplier:e.multiplier,param:this._constantSource.offset,units:e.units,value:e.value})}static getDefaults(){return Object.assign(Oi.getDefaults(),{multiplier:1,units:"hertz",value:1})}ticksToTime(e,t){return this._param.ticksToTime(e,t)}timeToTicks(e,t){return this._param.timeToTicks(e,t)}getTimeOfTick(e){return this._param.getTimeOfTick(e)}getDurationOfTicks(e,t){return this._param.getDurationOfTicks(e,t)}getTicksAtTime(e){return this._param.getTicksAtTime(e)}get multiplier(){return this._param.multiplier}set multiplier(e){this._param.multiplier=e}dispose(){return super.dispose(),this._param.dispose(),this}}class Fi extends Ai{constructor(){super(Or(Fi.getDefaults(),arguments,["frequency"])),this.name="TickSource",this._state=new Ci,this._tickOffset=new Wr;const e=Or(Fi.getDefaults(),arguments,["frequency"]);this.frequency=new zi({context:this.context,units:e.units,value:e.frequency}),Zr(this,"frequency"),this._state.setStateAtTime("stopped",0),this.setTicksAtTime(0,0)}static getDefaults(){return Object.assign({frequency:1,units:"hertz"},Ai.getDefaults())}get state(){return this.getStateAtTime(this.now())}start(e,t){const n=this.toSeconds(e);return"started"!==this._state.getValueAtTime(n)&&(this._state.setStateAtTime("started",n),dr(t)&&this.setTicksAtTime(t,n)),this}stop(e){const t=this.toSeconds(e);if("stopped"===this._state.getValueAtTime(t)){const e=this._state.get(t);e&&e.time>0&&(this._tickOffset.cancel(e.time),this._state.cancel(e.time))}return this._state.cancel(t),this._state.setStateAtTime("stopped",t),this.setTicksAtTime(0,t),this}pause(e){const t=this.toSeconds(e);return"started"===this._state.getValueAtTime(t)&&this._state.setStateAtTime("paused",t),this}cancel(e){return e=this.toSeconds(e),this._state.cancel(e),this._tickOffset.cancel(e),this}getTicksAtTime(e){const t=this.toSeconds(e),n=this._state.getLastState("stopped",t),s={state:"paused",time:t};this._state.add(s);let r=n,i=0;return this._state.forEachBetween(n.time,t+this.sampleTime,(e=>{let t=r.time;const n=this._tickOffset.get(e.time);n&&n.time>=r.time&&(i=n.ticks,t=n.time),"started"===r.state&&"started"!==e.state&&(i+=this.frequency.getTicksAtTime(e.time)-this.frequency.getTicksAtTime(t)),r=e})),this._state.remove(s),i}get ticks(){return this.getTicksAtTime(this.now())}set ticks(e){this.setTicksAtTime(e,this.now())}get seconds(){return this.getSecondsAtTime(this.now())}set seconds(e){const t=this.now(),n=this.frequency.timeToTicks(e,t);this.setTicksAtTime(n,t)}getSecondsAtTime(e){e=this.toSeconds(e);const t=this._state.getLastState("stopped",e),n={state:"paused",time:e};this._state.add(n);let s=t,r=0;return this._state.forEachBetween(t.time,e+this.sampleTime,(e=>{let t=s.time;const n=this._tickOffset.get(e.time);n&&n.time>=s.time&&(r=n.seconds,t=n.time),"started"===s.state&&"started"!==e.state&&(r+=e.time-t),s=e})),this._state.remove(n),r}setTicksAtTime(e,t){return t=this.toSeconds(t),this._tickOffset.cancel(t),this._tickOffset.add({seconds:this.frequency.getDurationOfTicks(e,t),ticks:e,time:t}),this}getStateAtTime(e){return e=this.toSeconds(e),this._state.getValueAtTime(e)}getTimeOfTick(e,t=this.now()){const n=this._tickOffset.get(t),s=this._state.get(t),r=Math.max(n.time,s.time),i=this.frequency.getTicksAtTime(r)+e-n.ticks;return this.frequency.getTimeOfTick(i)}forEachTickBetween(e,t,n){let s=this._state.get(e);this._state.forEachBetween(e,t,(t=>{s&&"started"===s.state&&"started"!==t.state&&this.forEachTickBetween(Math.max(s.time,e),t.time-this.sampleTime,n),s=t}));let r=null;if(s&&"started"===s.state){const i=Math.max(s.time,e),a=this.frequency.getTicksAtTime(i),o=a-this.frequency.getTicksAtTime(s.time);let l=Math.ceil(o)-o;l=Ur(l,1)?0:l;let u=this.frequency.getTimeOfTick(a+l);for(;u{switch(e.state){case"started":const t=this._tickSource.getTicksAtTime(e.time);this.emit("start",e.time,t);break;case"stopped":0!==e.time&&this.emit("stop",e.time);break;case"paused":this.emit("pause",e.time)}})),this._tickSource.forEachTickBetween(e,t,((e,t)=>{this.callback(e,t)})))}getStateAtTime(e){const t=this.toSeconds(e);return this._state.getValueAtTime(t)}dispose(){return super.dispose(),this.context.off("tick",this._boundLoop),this._tickSource.dispose(),this._state.dispose(),this}}Kr.mixin(Bi);class Li extends Si{constructor(){super(Or(Li.getDefaults(),arguments,["delayTime","maxDelay"])),this.name="Delay";const e=Or(Li.getDefaults(),arguments,["delayTime","maxDelay"]),t=this.toSeconds(e.maxDelay);this._maxDelay=Math.max(t,this.toSeconds(e.delayTime)),this._delayNode=this.input=this.output=this.context.createDelay(t),this.delayTime=new ki({context:this.context,param:this._delayNode.delayTime,units:"time",value:e.delayTime,minValue:0,maxValue:this.maxDelay}),Zr(this,"delayTime")}static getDefaults(){return Object.assign(Si.getDefaults(),{delayTime:0,maxDelay:1})}get maxDelay(){return this._maxDelay}dispose(){return super.dispose(),this._delayNode.disconnect(),this.delayTime.dispose(),this}}function Pi(e,t,n=2,s=si().sampleRate){return Cr(this,void 0,void 0,(function*(){const r=si(),i=new ei(n,t,s);ri(i),yield e(i);const a=i.render();ri(r);const o=yield a;return new Jr(o)}))}class Ui extends zr{constructor(){super(),this.name="ToneAudioBuffers",this._buffers=new Map,this._loadingCount=0;const e=Or(Ui.getDefaults(),arguments,["urls","onload","baseUrl"],"urls");this.baseUrl=e.baseUrl,Object.keys(e.urls).forEach((t=>{this._loadingCount++;const n=e.urls[t];this.add(t,n,this._bufferLoaded.bind(this,e.onload),e.onerror)}))}static getDefaults(){return{baseUrl:"",onerror:Qr,onload:Qr,urls:{}}}has(e){return this._buffers.has(e.toString())}get(e){return rr(this.has(e),`ToneAudioBuffers has no buffer named: ${e}`),this._buffers.get(e.toString())}_bufferLoaded(e){this._loadingCount--,0===this._loadingCount&&e&&e()}get loaded(){return Array.from(this._buffers).every((([e,t])=>t.loaded))}add(e,t,n=Qr,s=Qr){return br(t)?this._buffers.set(e.toString(),new Jr(this.baseUrl+t,n,s)):this._buffers.set(e.toString(),new Jr(t,n,s)),this}dispose(){return super.dispose(),this._buffers.forEach((e=>e.dispose())),this._buffers.clear(),this}}class Vi extends gi{constructor(){super(...arguments),this.name="MidiClass",this.defaultUnits="midi"}_frequencyToUnits(e){return ci(super._frequencyToUnits(e))}_ticksToUnits(e){return ci(super._ticksToUnits(e))}_beatsToUnits(e){return ci(super._beatsToUnits(e))}_secondsToUnits(e){return ci(super._secondsToUnits(e))}toMidi(){return this.valueOf()}toFrequency(){return di(this.toMidi())}transpose(e){return new Vi(this.context,this.toMidi()+e)}}function Wi(e,t){return new Vi(si(),e,t)}class ji extends vi{constructor(){super(...arguments),this.name="Ticks",this.defaultUnits="i"}_now(){return this.context.transport.ticks}_beatsToUnits(e){return this._getPPQ()*e}_secondsToUnits(e){return Math.floor(e/(60/this._getBpm())*this._getPPQ())}_ticksToUnits(e){return e}toTicks(){return this.valueOf()}toSeconds(){return this.valueOf()/this._getPPQ()*(60/this._getBpm())}}function Gi(e,t){return new ji(si(),e,t)}class qi extends Ai{constructor(){super(...arguments),this.name="Draw",this.expiration=.25,this.anticipation=.008,this._events=new Wr,this._boundDrawLoop=this._drawLoop.bind(this),this._animationFrame=-1}schedule(e,t){return this._events.add({callback:e,time:this.toSeconds(t)}),1===this._events.length&&(this._animationFrame=requestAnimationFrame(this._boundDrawLoop)),this}cancel(e){return this._events.cancel(this.toSeconds(e)),this}_drawLoop(){const e=this.context.currentTime;for(;this._events.length&&this._events.peek().time-this.anticipation<=e;){const t=this._events.shift();t&&e-t.time<=this.expiration&&t.callback()}this._events.length>0&&(this._animationFrame=requestAnimationFrame(this._boundDrawLoop))}dispose(){return super.dispose(),this._events.dispose(),cancelAnimationFrame(this._animationFrame),this}}Gr((e=>{e.draw=new qi({context:e})})),Hr((e=>{e.draw.dispose()}));class Hi extends zr{constructor(){super(...arguments),this.name="IntervalTimeline",this._root=null,this._length=0}add(e){rr(dr(e.time),"Events must have a time property"),rr(dr(e.duration),"Events must have a duration parameter"),e.time=e.time.valueOf();let t=new Ki(e.time,e.time+e.duration,e);for(null===this._root?this._root=t:this._root.insert(t),this._length++;null!==t;)t.updateHeight(),t.updateMax(),this._rebalance(t),t=t.parent;return this}remove(e){if(null!==this._root){const t=[];this._root.search(e.time,t);for(const n of t)if(n.event===e){this._removeNode(n),this._length--;break}}return this}get length(){return this._length}cancel(e){return this.forEachFrom(e,(e=>this.remove(e))),this}_setRoot(e){this._root=e,null!==this._root&&(this._root.parent=null)}_replaceNodeInParent(e,t){null!==e.parent?(e.isLeftChild()?e.parent.left=t:e.parent.right=t,this._rebalance(e.parent)):this._setRoot(t)}_removeNode(e){if(null===e.left&&null===e.right)this._replaceNodeInParent(e,null);else if(null===e.right)this._replaceNodeInParent(e,e.left);else if(null===e.left)this._replaceNodeInParent(e,e.right);else{let t,n=null;if(e.getBalance()>0)if(null===e.left.right)t=e.left,t.right=e.right,n=t;else{for(t=e.left.right;null!==t.right;)t=t.right;t.parent&&(t.parent.right=t.left,n=t.parent,t.left=e.left,t.right=e.right)}else if(null===e.right.left)t=e.right,t.left=e.left,n=t;else{for(t=e.right.left;null!==t.left;)t=t.left;t.parent&&(t.parent.left=t.right,n=t.parent,t.left=e.left,t.right=e.right)}null!==e.parent?e.isLeftChild()?e.parent.left=t:e.parent.right=t:this._setRoot(t),n&&this._rebalance(n)}e.dispose()}_rotateLeft(e){const t=e.parent,n=e.isLeftChild(),s=e.right;s&&(e.right=s.left,s.left=e),null!==t?n?t.left=s:t.right=s:this._setRoot(s)}_rotateRight(e){const t=e.parent,n=e.isLeftChild(),s=e.left;s&&(e.left=s.right,s.right=e),null!==t?n?t.left=s:t.right=s:this._setRoot(s)}_rebalance(e){const t=e.getBalance();t>1&&e.left?e.left.getBalance()<0?this._rotateLeft(e.left):this._rotateRight(e):t<-1&&e.right&&(e.right.getBalance()>0?this._rotateRight(e.right):this._rotateLeft(e))}get(e){if(null!==this._root){const t=[];if(this._root.search(e,t),t.length>0){let e=t[0];for(let n=1;ne.low&&(e=t[n]);return e.event}}return null}forEach(e){if(null!==this._root){const t=[];this._root.traverse((e=>t.push(e))),t.forEach((t=>{t.event&&e(t.event)}))}return this}forEachAtTime(e,t){if(null!==this._root){const n=[];this._root.search(e,n),n.forEach((e=>{e.event&&t(e.event)}))}return this}forEachFrom(e,t){if(null!==this._root){const n=[];this._root.searchAfter(e,n),n.forEach((e=>{e.event&&t(e.event)}))}return this}dispose(){return super.dispose(),null!==this._root&&this._root.traverse((e=>e.dispose())),this._root=null,this}}class Ki{constructor(e,t,n){this._left=null,this._right=null,this.parent=null,this.height=0,this.event=n,this.low=e,this.high=t,this.max=this.high}insert(e){e.low<=this.low?null===this.left?this.left=e:this.left.insert(e):null===this.right?this.right=e:this.right.insert(e)}search(e,t){e>this.max||(null!==this.left&&this.left.search(e,t),this.low<=e&&this.high>e&&t.push(this),this.low>e||null!==this.right&&this.right.search(e,t))}searchAfter(e,t){this.low>=e&&(t.push(this),null!==this.left&&this.left.searchAfter(e,t)),null!==this.right&&this.right.searchAfter(e,t)}traverse(e){e(this),null!==this.left&&this.left.traverse(e),null!==this.right&&this.right.traverse(e)}updateHeight(){null!==this.left&&null!==this.right?this.height=Math.max(this.left.height,this.right.height)+1:null!==this.right?this.height=this.right.height+1:null!==this.left?this.height=this.left.height+1:this.height=0}updateMax(){this.max=this.high,null!==this.left&&(this.max=Math.max(this.max,this.left.max)),null!==this.right&&(this.max=Math.max(this.max,this.right.max))}getBalance(){let e=0;return null!==this.left&&null!==this.right?e=this.left.height-this.right.height:null!==this.left?e=this.left.height+1:null!==this.right&&(e=-(this.right.height+1)),e}isLeftChild(){return null!==this.parent&&this.parent.left===this}get left(){return this._left}set left(e){this._left=e,null!==e&&(e.parent=this),this.updateHeight(),this.updateMax()}get right(){return this._right}set right(e){this._right=e,null!==e&&(e.parent=this),this.updateHeight(),this.updateMax()}dispose(){this.parent=null,this._left=null,this._right=null,this.event=null}}class $i extends Si{constructor(){super(Or($i.getDefaults(),arguments,["volume"])),this.name="Volume";const e=Or($i.getDefaults(),arguments,["volume"]);this.input=this.output=new Ti({context:this.context,gain:e.volume,units:"decibels"}),this.volume=this.output.gain,Zr(this,"volume"),this._unmutedVolume=e.volume,this.mute=e.mute}static getDefaults(){return Object.assign(Si.getDefaults(),{mute:!1,volume:0})}get mute(){return this.volume.value===-1/0}set mute(e){!this.mute&&e?(this._unmutedVolume=this.volume.value,this.volume.value=-1/0):this.mute&&!e&&(this.volume.value=this._unmutedVolume)}dispose(){return super.dispose(),this.input.dispose(),this.volume.dispose(),this}}class Xi extends Si{constructor(){super(Or(Xi.getDefaults(),arguments)),this.name="Destination",this.input=new $i({context:this.context}),this.output=new Ti({context:this.context}),this.volume=this.input.volume;const e=Or(Xi.getDefaults(),arguments);_i(this.input,this.output,this.context.rawContext.destination),this.mute=e.mute,this._internalChannels=[this.input,this.context.rawContext.destination,this.output]}static getDefaults(){return Object.assign(Si.getDefaults(),{mute:!1,volume:0})}get mute(){return this.input.mute}set mute(e){this.input.mute=e}chain(...e){return this.input.disconnect(),e.unshift(this.input),e.push(this.output),_i(...e),this}get maxChannelCount(){return this.context.rawContext.destination.maxChannelCount}dispose(){return super.dispose(),this.volume.dispose(),this}}Gr((e=>{e.destination=new Xi({context:e})})),Hr((e=>{e.destination.dispose()}));class Zi extends zr{constructor(e){super(),this.name="TimelineValue",this._timeline=new Wr({memory:10}),this._initialValue=e}set(e,t){return this._timeline.add({value:e,time:t}),this}get(e){const t=this._timeline.get(e);return t?t.value:this._initialValue}}class Yi{constructor(e,t){this.id=Yi._eventId++;const n=Object.assign(Yi.getDefaults(),t);this.transport=e,this.callback=n.callback,this._once=n.once,this.time=n.time}static getDefaults(){return{callback:Qr,once:!1,time:0}}invoke(e){this.callback&&(this.callback(e),this._once&&this.transport.clear(this.id))}dispose(){return this.callback=void 0,this}}Yi._eventId=0;class Qi extends Yi{constructor(e,t){super(e,t),this._currentId=-1,this._nextId=-1,this._nextTick=this.time,this._boundRestart=this._restart.bind(this);const n=Object.assign(Qi.getDefaults(),t);this.duration=new ji(e.context,n.duration).valueOf(),this._interval=new ji(e.context,n.interval).valueOf(),this._nextTick=n.time,this.transport.on("start",this._boundRestart),this.transport.on("loopStart",this._boundRestart),this.context=this.transport.context,this._restart()}static getDefaults(){return Object.assign({},Yi.getDefaults(),{duration:1/0,interval:1,once:!1})}invoke(e){this._createEvents(e),super.invoke(e)}_createEvents(e){const t=this.transport.getTicksAtTime(e);t>=this.time&&t>=this._nextTick&&this._nextTick+this._intervalthis.time&&(this._nextTick=this.time+Math.ceil((t-this.time)/this._interval)*this._interval),this._currentId=this.transport.scheduleOnce(this.invoke.bind(this),new ji(this.context,this._nextTick).toSeconds()),this._nextTick+=this._interval,this._nextId=this.transport.scheduleOnce(this.invoke.bind(this),new ji(this.context,this._nextTick).toSeconds())}dispose(){return super.dispose(),this.transport.clear(this._currentId),this.transport.clear(this._nextId),this.transport.off("start",this._boundRestart),this.transport.off("loopStart",this._boundRestart),this}}class Ji extends Ai{constructor(){super(Or(Ji.getDefaults(),arguments)),this.name="Transport",this._loop=new Zi(!1),this._loopStart=0,this._loopEnd=0,this._scheduledEvents={},this._timeline=new Wr,this._repeatedEvents=new Hi,this._syncedSignals=[],this._swingAmount=0;const e=Or(Ji.getDefaults(),arguments);this._ppq=e.ppq,this._clock=new Bi({callback:this._processTick.bind(this),context:this.context,frequency:0,units:"bpm"}),this._bindClockEvents(),this.bpm=this._clock.frequency,this._clock.frequency.multiplier=e.ppq,this.bpm.setValueAtTime(e.bpm,0),Zr(this,"bpm"),this._timeSignature=e.timeSignature,this._swingTicks=e.ppq/2}static getDefaults(){return Object.assign(Ai.getDefaults(),{bpm:120,loopEnd:"4m",loopStart:0,ppq:192,swing:0,swingSubdivision:"8n",timeSignature:4})}_processTick(e,t){if(this._loop.get(e)&&t>=this._loopEnd&&(this.emit("loopEnd",e),this._clock.setTicksAtTime(this._loopStart,e),t=this._loopStart,this.emit("loopStart",e,this._clock.getSecondsAtTime(e)),this.emit("loop",e)),this._swingAmount>0&&t%this._ppq!=0&&t%(2*this._swingTicks)!=0){const n=t%(2*this._swingTicks)/(2*this._swingTicks),s=Math.sin(n*Math.PI)*this._swingAmount;e+=new ji(this.context,2*this._swingTicks/3).toSeconds()*s}this._timeline.forEachAtTime(t,(t=>t.invoke(e)))}schedule(e,t){const n=new Yi(this,{callback:e,time:new vi(this.context,t).toTicks()});return this._addEvent(n,this._timeline)}scheduleRepeat(e,t,n,s=1/0){const r=new Qi(this,{callback:e,duration:new fi(this.context,s).toTicks(),interval:new fi(this.context,t).toTicks(),time:new vi(this.context,n).toTicks()});return this._addEvent(r,this._repeatedEvents)}scheduleOnce(e,t){const n=new Yi(this,{callback:e,once:!0,time:new vi(this.context,t).toTicks()});return this._addEvent(n,this._timeline)}clear(e){if(this._scheduledEvents.hasOwnProperty(e)){const t=this._scheduledEvents[e.toString()];t.timeline.remove(t.event),t.event.dispose(),delete this._scheduledEvents[e.toString()]}return this}_addEvent(e,t){return this._scheduledEvents[e.id.toString()]={event:e,timeline:t},t.add(e),e.id}cancel(e=0){const t=this.toTicks(e);return this._timeline.forEachFrom(t,(e=>this.clear(e.id))),this._repeatedEvents.forEachFrom(t,(e=>this.clear(e.id))),this}_bindClockEvents(){this._clock.on("start",((e,t)=>{t=new ji(this.context,t).toSeconds(),this.emit("start",e,t)})),this._clock.on("stop",(e=>{this.emit("stop",e)})),this._clock.on("pause",(e=>{this.emit("pause",e)}))}get state(){return this._clock.getStateAtTime(this.now())}start(e,t){let n;return dr(t)&&(n=this.toTicks(t)),this._clock.start(e,n),this}stop(e){return this._clock.stop(e),this}pause(e){return this._clock.pause(e),this}toggle(e){return e=this.toSeconds(e),"started"!==this._clock.getStateAtTime(e)?this.start(e):this.stop(e),this}get timeSignature(){return this._timeSignature}set timeSignature(e){yr(e)&&(e=e[0]/e[1]*4),this._timeSignature=e}get loopStart(){return new fi(this.context,this._loopStart,"i").toSeconds()}set loopStart(e){this._loopStart=this.toTicks(e)}get loopEnd(){return new fi(this.context,this._loopEnd,"i").toSeconds()}set loopEnd(e){this._loopEnd=this.toTicks(e)}get loop(){return this._loop.get(this.now())}set loop(e){this._loop.set(e,this.now())}setLoopPoints(e,t){return this.loopStart=e,this.loopEnd=t,this}get swing(){return this._swingAmount}set swing(e){this._swingAmount=e}get swingSubdivision(){return new ji(this.context,this._swingTicks).toNotation()}set swingSubdivision(e){this._swingTicks=this.toTicks(e)}get position(){const e=this.now(),t=this._clock.getTicksAtTime(e);return new ji(this.context,t).toBarsBeatsSixteenths()}set position(e){const t=this.toTicks(e);this.ticks=t}get seconds(){return this._clock.seconds}set seconds(e){const t=this.now(),n=this._clock.frequency.timeToTicks(e,t);this.ticks=n}get progress(){if(this.loop){const e=this.now();return(this._clock.getTicksAtTime(e)-this._loopStart)/(this._loopEnd-this._loopStart)}return 0}get ticks(){return this._clock.ticks}set ticks(e){if(this._clock.ticks!==e){const t=this.now();if("started"===this.state){const n=this._clock.getTicksAtTime(t),s=t+this._clock.frequency.getDurationOfTicks(Math.ceil(n)-n,t);this.emit("stop",s),this._clock.setTicksAtTime(e,s),this.emit("start",s,this._clock.getSecondsAtTime(s))}else this._clock.setTicksAtTime(e,t)}}getTicksAtTime(e){return Math.round(this._clock.getTicksAtTime(e))}getSecondsAtTime(e){return this._clock.getSecondsAtTime(e)}get PPQ(){return this._clock.frequency.multiplier}set PPQ(e){this._clock.frequency.multiplier=e}nextSubdivision(e){if(e=this.toTicks(e),"started"!==this.state)return 0;{const t=this.now(),n=e-this.getTicksAtTime(t)%e;return this._clock.nextTickTime(n,t)}}syncSignal(e,t){if(!t){const n=this.now();if(0!==e.getValueAtTime(n)){const s=1/(60/this.bpm.getValueAtTime(n)/this.PPQ);t=e.getValueAtTime(n)/s}else t=0}const n=new Ti(t);return this.bpm.connect(n),n.connect(e._param),this._syncedSignals.push({initial:e.value,ratio:n,signal:e}),e.value=0,this}unsyncSignal(e){for(let t=this._syncedSignals.length-1;t>=0;t--){const n=this._syncedSignals[t];n.signal===e&&(n.ratio.dispose(),n.signal.value=n.initial,this._syncedSignals.splice(t,1))}return this}dispose(){return super.dispose(),this._clock.dispose(),Yr(this,"bpm"),this._timeline.dispose(),this._repeatedEvents.dispose(),this}}Kr.mixin(Ji),Gr((e=>{e.transport=new Ji({context:e})})),Hr((e=>{e.transport.dispose()}));class ea extends Si{constructor(e){super(e),this.input=void 0,this._state=new Ci("stopped"),this._synced=!1,this._scheduled=[],this._syncedStart=Qr,this._syncedStop=Qr,this._state.memory=100,this._state.increasing=!0,this._volume=this.output=new $i({context:this.context,mute:e.mute,volume:e.volume}),this.volume=this._volume.volume,Zr(this,"volume"),this.onstop=e.onstop}static getDefaults(){return Object.assign(Si.getDefaults(),{mute:!1,onstop:Qr,volume:0})}get state(){return this._synced?"started"===this.context.transport.state?this._state.getValueAtTime(this.context.transport.seconds):"stopped":this._state.getValueAtTime(this.now())}get mute(){return this._volume.mute}set mute(e){this._volume.mute=e}_clampToCurrentTime(e){return this._synced?e:Math.max(e,this.context.currentTime)}start(e,t,n){let s=hr(e)&&this._synced?this.context.transport.seconds:this.toSeconds(e);if(s=this._clampToCurrentTime(s),this._synced||"started"!==this._state.getValueAtTime(s))if(this.log("start",s),this._state.setStateAtTime("started",s),this._synced){const e=this._state.get(s);e&&(e.offset=this.toSeconds(Dr(t,0)),e.duration=n?this.toSeconds(n):void 0);const r=this.context.transport.schedule((e=>{this._start(e,t,n)}),s);this._scheduled.push(r),"started"===this.context.transport.state&&this.context.transport.getSecondsAtTime(this.immediate())>s&&this._syncedStart(this.now(),this.context.transport.seconds)}else ar(this.context),this._start(s,t,n);else rr(Br(s,this._state.get(s).time),"Start time must be strictly greater than previous start time"),this._state.cancel(s),this._state.setStateAtTime("started",s),this.log("restart",s),this.restart(s,t,n);return this}stop(e){let t=hr(e)&&this._synced?this.context.transport.seconds:this.toSeconds(e);if(t=this._clampToCurrentTime(t),"started"===this._state.getValueAtTime(t)||dr(this._state.getNextState("started",t))){if(this.log("stop",t),this._synced){const e=this.context.transport.schedule(this._stop.bind(this),t);this._scheduled.push(e)}else this._stop(t);this._state.cancel(t),this._state.setStateAtTime("stopped",t)}return this}restart(e,t,n){return e=this.toSeconds(e),"started"===this._state.getValueAtTime(e)&&(this._state.cancel(e),this._restart(e,t,n)),this}sync(){return this._synced||(this._synced=!0,this._syncedStart=(e,t)=>{if(t>0){const n=this._state.get(t);if(n&&"started"===n.state&&n.time!==t){const s=t-this.toSeconds(n.time);let r;n.duration&&(r=this.toSeconds(n.duration)-s),this._start(e,this.toSeconds(n.offset)+s,r)}}},this._syncedStop=e=>{const t=this.context.transport.getSecondsAtTime(Math.max(e-this.sampleTime,0));"started"===this._state.getValueAtTime(t)&&this._stop(e)},this.context.transport.on("start",this._syncedStart),this.context.transport.on("loopStart",this._syncedStart),this.context.transport.on("stop",this._syncedStop),this.context.transport.on("pause",this._syncedStop),this.context.transport.on("loopEnd",this._syncedStop)),this}unsync(){return this._synced&&(this.context.transport.off("stop",this._syncedStop),this.context.transport.off("pause",this._syncedStop),this.context.transport.off("loopEnd",this._syncedStop),this.context.transport.off("start",this._syncedStart),this.context.transport.off("loopStart",this._syncedStart)),this._synced=!1,this._scheduled.forEach((e=>this.context.transport.clear(e))),this._scheduled=[],this._state.cancel(0),this._stop(0),this}dispose(){return super.dispose(),this.onstop=Qr,this.unsync(),this._volume.dispose(),this._state.dispose(),this}}class ta extends Ni{constructor(){super(Or(ta.getDefaults(),arguments,["url","onload"])),this.name="ToneBufferSource",this._source=this.context.createBufferSource(),this._internalChannels=[this._source],this._sourceStarted=!1,this._sourceStopped=!1;const e=Or(ta.getDefaults(),arguments,["url","onload"]);Ei(this._source,this._gainNode),this._source.onended=()=>this._stopSource(),this.playbackRate=new ki({context:this.context,param:this._source.playbackRate,units:"positive",value:e.playbackRate}),this.loop=e.loop,this.loopStart=e.loopStart,this.loopEnd=e.loopEnd,this._buffer=new Jr(e.url,e.onload,e.onerror),this._internalChannels.push(this._source)}static getDefaults(){return Object.assign(Ni.getDefaults(),{url:new Jr,loop:!1,loopEnd:0,loopStart:0,onload:Qr,onerror:Qr,playbackRate:1})}get fadeIn(){return this._fadeIn}set fadeIn(e){this._fadeIn=e}get fadeOut(){return this._fadeOut}set fadeOut(e){this._fadeOut=e}get curve(){return this._curve}set curve(e){this._curve=e}start(e,t,n,s=1){rr(this.buffer.loaded,"buffer is either not set or not loaded");const r=this.toSeconds(e);this._startGain(r,s),t=this.loop?Dr(t,this.loopStart):Dr(t,0);let i=Math.max(this.toSeconds(t),0);if(this.loop){const e=this.toSeconds(this.loopEnd)||this.buffer.duration,t=this.toSeconds(this.loopStart),n=e-t;Lr(i,e)&&(i=(i-t)%n+t),Ur(i,this.buffer.duration)&&(i=0)}if(this._source.buffer=this.buffer.get(),this._source.loopEnd=this.toSeconds(this.loopEnd)||this.buffer.duration,Pr(i,this.buffer.duration)&&(this._sourceStarted=!0,this._source.start(r,i)),dr(n)){let e=this.toSeconds(n);e=Math.max(e,0),this.stop(r+e)}return this}_stopSource(e){!this._sourceStopped&&this._sourceStarted&&(this._sourceStopped=!0,this._source.stop(this.toSeconds(e)),this._onended())}get loopStart(){return this._source.loopStart}set loopStart(e){this._source.loopStart=this.toSeconds(e)}get loopEnd(){return this._source.loopEnd}set loopEnd(e){this._source.loopEnd=this.toSeconds(e)}get buffer(){return this._buffer}set buffer(e){this._buffer.set(e)}get loop(){return this._source.loop}set loop(e){this._source.loop=e,this._sourceStarted&&this.cancelStop()}dispose(){return super.dispose(),this._source.onended=null,this._source.disconnect(),this._buffer.dispose(),this.playbackRate.dispose(),this}}class na extends ea{constructor(){super(Or(na.getDefaults(),arguments,["type"])),this.name="Noise",this._source=null;const e=Or(na.getDefaults(),arguments,["type"]);this._playbackRate=e.playbackRate,this.type=e.type,this._fadeIn=e.fadeIn,this._fadeOut=e.fadeOut}static getDefaults(){return Object.assign(ea.getDefaults(),{fadeIn:0,fadeOut:0,playbackRate:1,type:"white"})}get type(){return this._type}set type(e){if(rr(e in ia,"Noise: invalid type: "+e),this._type!==e&&(this._type=e,"started"===this.state)){const e=this.now();this._stop(e),this._start(e)}}get playbackRate(){return this._playbackRate}set playbackRate(e){this._playbackRate=e,this._source&&(this._source.playbackRate.value=e)}_start(e){const t=ia[this._type];this._source=new ta({url:t,context:this.context,fadeIn:this._fadeIn,fadeOut:this._fadeOut,loop:!0,onended:()=>this.onstop(this),playbackRate:this._playbackRate}).connect(this.output),this._source.start(this.toSeconds(e),Math.random()*(t.duration-.001))}_stop(e){this._source&&(this._source.stop(this.toSeconds(e)),this._source=null)}get fadeIn(){return this._fadeIn}set fadeIn(e){this._fadeIn=e,this._source&&(this._source.fadeIn=this._fadeIn)}get fadeOut(){return this._fadeOut}set fadeOut(e){this._fadeOut=e,this._source&&(this._source.fadeOut=this._fadeOut)}_restart(e){this._stop(e),this._start(e)}dispose(){return super.dispose(),this._source&&this._source.disconnect(),this}}const sa=220500,ra={brown:null,pink:null,white:null},ia={get brown(){if(!ra.brown){const e=[];for(let t=0;t<2;t++){const n=new Float32Array(sa);e[t]=n;let s=0;for(let e=0;et.label===e||t.deviceId===e)),!this._device&&t.length>0&&(this._device=t[0]),rr(dr(this._device),`No matching device ${e}`));const n={audio:{echoCancellation:!1,sampleRate:this.context.sampleRate,noiseSuppression:!1,mozNoiseSuppression:!1}};this._device&&(n.audio.deviceId=this._device.deviceId);const s=yield navigator.mediaDevices.getUserMedia(n);if(!this._stream){this._stream=s;const e=this.context.createMediaStreamSource(s);Ei(e,this.output),this._mediaStream=e}return this}))}close(){return this._stream&&this._mediaStream&&(this._stream.getAudioTracks().forEach((e=>{e.stop()})),this._stream=void 0,this._mediaStream.disconnect(),this._mediaStream=void 0),this._device=void 0,this}static enumerateDevices(){return Cr(this,void 0,void 0,(function*(){return(yield navigator.mediaDevices.enumerateDevices()).filter((e=>"audioinput"===e.kind))}))}get state(){return this._stream&&this._stream.active?"started":"stopped"}get deviceId(){return this._device?this._device.deviceId:void 0}get groupId(){return this._device?this._device.groupId:void 0}get label(){return this._device?this._device.label:void 0}get mute(){return this._volume.mute}set mute(e){this._volume.mute=e}dispose(){return super.dispose(),this.close(),this._volume.dispose(),this.volume.dispose(),this}static get supported(){return dr(navigator.mediaDevices)&&dr(navigator.mediaDevices.getUserMedia)}}function oa(e,t){return Cr(this,void 0,void 0,(function*(){const n=t/e.context.sampleRate,s=new ei(1,n,e.context.sampleRate);new e.constructor(Object.assign(e.get(),{frequency:2/n,detune:0,context:s})).toDestination().start(0);return(yield s.render()).getChannelData(0)}))}class la extends Ni{constructor(){super(Or(la.getDefaults(),arguments,["frequency","type"])),this.name="ToneOscillatorNode",this._oscillator=this.context.createOscillator(),this._internalChannels=[this._oscillator];const e=Or(la.getDefaults(),arguments,["frequency","type"]);Ei(this._oscillator,this._gainNode),this.type=e.type,this.frequency=new ki({context:this.context,param:this._oscillator.frequency,units:"frequency",value:e.frequency}),this.detune=new ki({context:this.context,param:this._oscillator.detune,units:"cents",value:e.detune}),Zr(this,["frequency","detune"])}static getDefaults(){return Object.assign(Ni.getDefaults(),{detune:0,frequency:440,type:"sine"})}start(e){const t=this.toSeconds(e);return this.log("start",t),this._startGain(t),this._oscillator.start(t),this}_stopSource(e){this._oscillator.stop(e)}setPeriodicWave(e){return this._oscillator.setPeriodicWave(e),this}get type(){return this._oscillator.type}set type(e){this._oscillator.type=e}dispose(){return super.dispose(),"started"===this.state&&this.stop(),this._oscillator.disconnect(),this.frequency.dispose(),this.detune.dispose(),this}}class ua extends ea{constructor(){super(Or(ua.getDefaults(),arguments,["frequency","type"])),this.name="Oscillator",this._oscillator=null;const e=Or(ua.getDefaults(),arguments,["frequency","type"]);this.frequency=new Oi({context:this.context,units:"frequency",value:e.frequency}),Zr(this,"frequency"),this.detune=new Oi({context:this.context,units:"cents",value:e.detune}),Zr(this,"detune"),this._partials=e.partials,this._partialCount=e.partialCount,this._type=e.type,e.partialCount&&"custom"!==e.type&&(this._type=this.baseType+e.partialCount.toString()),this.phase=e.phase}static getDefaults(){return Object.assign(ea.getDefaults(),{detune:0,frequency:440,partialCount:0,partials:[],phase:0,type:"sine"})}_start(e){const t=this.toSeconds(e),n=new la({context:this.context,onended:()=>this.onstop(this)});this._oscillator=n,this._wave?this._oscillator.setPeriodicWave(this._wave):this._oscillator.type=this._type,this._oscillator.connect(this.output),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.start(t)}_stop(e){const t=this.toSeconds(e);this._oscillator&&this._oscillator.stop(t)}_restart(e){const t=this.toSeconds(e);return this.log("restart",t),this._oscillator&&this._oscillator.cancelStop(),this._state.cancel(t),this}syncFrequency(){return this.context.transport.syncSignal(this.frequency),this}unsyncFrequency(){return this.context.transport.unsyncSignal(this.frequency),this}_getCachedPeriodicWave(){if("custom"===this._type){return ua._periodicWaveCache.find((e=>{return e.phase===this._phase&&(t=e.partials,n=this._partials,t.length===n.length&&t.every(((e,t)=>n[t]===e)));var t,n}))}{const e=ua._periodicWaveCache.find((e=>e.type===this._type&&e.phase===this._phase));return this._partialCount=e?e.partialCount:this._partialCount,e}}get type(){return this._type}set type(e){this._type=e;const t=-1!==["sine","square","sawtooth","triangle"].indexOf(e);if(0===this._phase&&t)this._wave=void 0,this._partialCount=0,null!==this._oscillator&&(this._oscillator.type=e);else{const t=this._getCachedPeriodicWave();if(dr(t)){const{partials:e,wave:n}=t;this._wave=n,this._partials=e,null!==this._oscillator&&this._oscillator.setPeriodicWave(this._wave)}else{const[t,n]=this._getRealImaginary(e,this._phase),s=this.context.createPeriodicWave(t,n);this._wave=s,null!==this._oscillator&&this._oscillator.setPeriodicWave(this._wave),ua._periodicWaveCache.push({imag:n,partialCount:this._partialCount,partials:this._partials,phase:this._phase,real:t,type:this._type,wave:this._wave}),ua._periodicWaveCache.length>100&&ua._periodicWaveCache.shift()}}}get baseType(){return this._type.replace(this.partialCount.toString(),"")}set baseType(e){this.partialCount&&"custom"!==this._type&&"custom"!==e?this.type=e+this.partialCount:this.type=e}get partialCount(){return this._partialCount}set partialCount(e){ir(e,0);let t=this._type;const n=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(this._type);if(n&&(t=n[1]),"custom"!==this._type)this.type=0===e?t:t+e.toString();else{const t=new Float32Array(e);this._partials.forEach(((e,n)=>t[n]=e)),this._partials=Array.from(t),this.type=this._type}}_getRealImaginary(e,t){let n=2048;const s=new Float32Array(n),r=new Float32Array(n);let i=1;if("custom"===e){if(i=this._partials.length+1,this._partialCount=this._partials.length,n=i,0===this._partials.length)return[s,r]}else{const t=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(e);t?(i=parseInt(t[2],10)+1,this._partialCount=parseInt(t[2],10),e=t[1],i=Math.max(i,2),n=i):this._partialCount=0,this._partials=[]}for(let a=1;a>1&1?-1:1):0,this._partials[a-1]=o;break;case"custom":o=this._partials[a-1];break;default:throw new TypeError("Oscillator: invalid type: "+e)}0!==o?(s[a]=-o*Math.sin(t*a),r[a]=o*Math.cos(t*a)):(s[a]=0,r[a]=0)}return[s,r]}_inverseFFT(e,t,n){let s=0;const r=e.length;for(let i=0;it.includes(e))),"oversampling must be either 'none', '2x', or '4x'"),this._shaper.oversample=e}dispose(){return super.dispose(),this._shaper.disconnect(),this}}class da extends ca{constructor(){super(...arguments),this.name="AudioToGain",this._norm=new ha({context:this.context,mapping:e=>(e+1)/2}),this.input=this._norm,this.output=this._norm}dispose(){return super.dispose(),this._norm.dispose(),this}}class pa extends Oi{constructor(){super(Object.assign(Or(pa.getDefaults(),arguments,["value"]))),this.name="Multiply",this.override=!1;const e=Or(pa.getDefaults(),arguments,["value"]);this._mult=this.input=this.output=new Ti({context:this.context,minValue:e.minValue,maxValue:e.maxValue}),this.factor=this._param=this._mult.gain,this.factor.setValueAtTime(e.value,0)}static getDefaults(){return Object.assign(Oi.getDefaults(),{value:0})}dispose(){return super.dispose(),this._mult.dispose(),this}}class fa extends ea{constructor(){super(Or(fa.getDefaults(),arguments,["frequency","type","modulationType"])),this.name="AMOscillator",this._modulationScale=new da({context:this.context}),this._modulationNode=new Ti({context:this.context});const e=Or(fa.getDefaults(),arguments,["frequency","type","modulationType"]);this._carrier=new ua({context:this.context,detune:e.detune,frequency:e.frequency,onstop:()=>this.onstop(this),phase:e.phase,type:e.type}),this.frequency=this._carrier.frequency,this.detune=this._carrier.detune,this._modulator=new ua({context:this.context,phase:e.phase,type:e.modulationType}),this.harmonicity=new pa({context:this.context,units:"positive",value:e.harmonicity}),this.frequency.chain(this.harmonicity,this._modulator.frequency),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output),Zr(this,["frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(ua.getDefaults(),{harmonicity:1,modulationType:"square"})}_start(e){this._modulator.start(e),this._carrier.start(e)}_stop(e){this._modulator.stop(e),this._carrier.stop(e)}_restart(e){this._modulator.restart(e),this._carrier.restart(e)}get type(){return this._carrier.type}set type(e){this._carrier.type=e}get baseType(){return this._carrier.baseType}set baseType(e){this._carrier.baseType=e}get partialCount(){return this._carrier.partialCount}set partialCount(e){this._carrier.partialCount=e}get modulationType(){return this._modulator.type}set modulationType(e){this._modulator.type=e}get phase(){return this._carrier.phase}set phase(e){this._carrier.phase=e,this._modulator.phase=e}get partials(){return this._carrier.partials}set partials(e){this._carrier.partials=e}asArray(e=1024){return Cr(this,void 0,void 0,(function*(){return oa(this,e)}))}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this.harmonicity.dispose(),this._carrier.dispose(),this._modulator.dispose(),this._modulationNode.dispose(),this._modulationScale.dispose(),this}}class ma extends ea{constructor(){super(Or(ma.getDefaults(),arguments,["frequency","type","modulationType"])),this.name="FMOscillator",this._modulationNode=new Ti({context:this.context,gain:0});const e=Or(ma.getDefaults(),arguments,["frequency","type","modulationType"]);this._carrier=new ua({context:this.context,detune:e.detune,frequency:0,onstop:()=>this.onstop(this),phase:e.phase,type:e.type}),this.detune=this._carrier.detune,this.frequency=new Oi({context:this.context,units:"frequency",value:e.frequency}),this._modulator=new ua({context:this.context,phase:e.phase,type:e.modulationType}),this.harmonicity=new pa({context:this.context,units:"positive",value:e.harmonicity}),this.modulationIndex=new pa({context:this.context,units:"positive",value:e.modulationIndex}),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output),this.detune.connect(this._modulator.detune),Zr(this,["modulationIndex","frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(ua.getDefaults(),{harmonicity:1,modulationIndex:2,modulationType:"square"})}_start(e){this._modulator.start(e),this._carrier.start(e)}_stop(e){this._modulator.stop(e),this._carrier.stop(e)}_restart(e){return this._modulator.restart(e),this._carrier.restart(e),this}get type(){return this._carrier.type}set type(e){this._carrier.type=e}get baseType(){return this._carrier.baseType}set baseType(e){this._carrier.baseType=e}get partialCount(){return this._carrier.partialCount}set partialCount(e){this._carrier.partialCount=e}get modulationType(){return this._modulator.type}set modulationType(e){this._modulator.type=e}get phase(){return this._carrier.phase}set phase(e){this._carrier.phase=e,this._modulator.phase=e}get partials(){return this._carrier.partials}set partials(e){this._carrier.partials=e}asArray(e=1024){return Cr(this,void 0,void 0,(function*(){return oa(this,e)}))}dispose(){return super.dispose(),this.frequency.dispose(),this.harmonicity.dispose(),this._carrier.dispose(),this._modulator.dispose(),this._modulationNode.dispose(),this.modulationIndex.dispose(),this}}class ga extends ea{constructor(){super(Or(ga.getDefaults(),arguments,["frequency","width"])),this.name="PulseOscillator",this._widthGate=new Ti({context:this.context,gain:0}),this._thresh=new ha({context:this.context,mapping:e=>e<=0?-1:1});const e=Or(ga.getDefaults(),arguments,["frequency","width"]);this.width=new Oi({context:this.context,units:"audioRange",value:e.width}),this._triangle=new ua({context:this.context,detune:e.detune,frequency:e.frequency,onstop:()=>this.onstop(this),phase:e.phase,type:"triangle"}),this.frequency=this._triangle.frequency,this.detune=this._triangle.detune,this._triangle.chain(this._thresh,this.output),this.width.chain(this._widthGate,this._thresh),Zr(this,["width","frequency","detune"])}static getDefaults(){return Object.assign(ea.getDefaults(),{detune:0,frequency:440,phase:0,type:"pulse",width:.2})}_start(e){e=this.toSeconds(e),this._triangle.start(e),this._widthGate.gain.setValueAtTime(1,e)}_stop(e){e=this.toSeconds(e),this._triangle.stop(e),this._widthGate.gain.cancelScheduledValues(e),this._widthGate.gain.setValueAtTime(0,e)}_restart(e){this._triangle.restart(e),this._widthGate.gain.cancelScheduledValues(e),this._widthGate.gain.setValueAtTime(1,e)}get phase(){return this._triangle.phase}set phase(e){this._triangle.phase=e}get type(){return"pulse"}get baseType(){return"pulse"}get partials(){return[]}get partialCount(){return 0}set carrierType(e){this._triangle.type=e}asArray(e=1024){return Cr(this,void 0,void 0,(function*(){return oa(this,e)}))}dispose(){return super.dispose(),this._triangle.dispose(),this.width.dispose(),this._widthGate.dispose(),this._thresh.dispose(),this}}class ya extends ea{constructor(){super(Or(ya.getDefaults(),arguments,["frequency","type","spread"])),this.name="FatOscillator",this._oscillators=[];const e=Or(ya.getDefaults(),arguments,["frequency","type","spread"]);this.frequency=new Oi({context:this.context,units:"frequency",value:e.frequency}),this.detune=new Oi({context:this.context,units:"cents",value:e.detune}),this._spread=e.spread,this._type=e.type,this._phase=e.phase,this._partials=e.partials,this._partialCount=e.partialCount,this.count=e.count,Zr(this,["frequency","detune"])}static getDefaults(){return Object.assign(ua.getDefaults(),{count:3,spread:20,type:"sawtooth"})}_start(e){e=this.toSeconds(e),this._forEach((t=>t.start(e)))}_stop(e){e=this.toSeconds(e),this._forEach((t=>t.stop(e)))}_restart(e){this._forEach((t=>t.restart(e)))}_forEach(e){for(let t=0;tt.type=e))}get spread(){return this._spread}set spread(e){if(this._spread=e,this._oscillators.length>1){const t=-e/2,n=e/(this._oscillators.length-1);this._forEach(((e,s)=>e.detune.value=t+n*s))}}get count(){return this._oscillators.length}set count(e){if(ir(e,1),this._oscillators.length!==e){this._forEach((e=>e.dispose())),this._oscillators=[];for(let t=0;tthis.onstop(this):Qr});"custom"===this.type&&(n.partials=this._partials),this.frequency.connect(n.frequency),this.detune.connect(n.detune),n.detune.overridden=!1,n.connect(this.output),this._oscillators[t]=n}this.spread=this._spread,"started"===this.state&&this._forEach((e=>e.start()))}}get phase(){return this._phase}set phase(e){this._phase=e,this._forEach(((e,t)=>e.phase=this._phase+t/this.count*360))}get baseType(){return this._oscillators[0].baseType}set baseType(e){this._forEach((t=>t.baseType=e)),this._type=this._oscillators[0].type}get partials(){return this._oscillators[0].partials}set partials(e){this._partials=e,this._partialCount=this._partials.length,e.length&&(this._type="custom",this._forEach((t=>t.partials=e)))}get partialCount(){return this._oscillators[0].partialCount}set partialCount(e){this._partialCount=e,this._forEach((t=>t.partialCount=e)),this._type=this._oscillators[0].type}asArray(e=1024){return Cr(this,void 0,void 0,(function*(){return oa(this,e)}))}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this._forEach((e=>e.dispose())),this}}class ba extends ea{constructor(){super(Or(ba.getDefaults(),arguments,["frequency","modulationFrequency"])),this.name="PWMOscillator",this.sourceType="pwm",this._scale=new pa({context:this.context,value:2});const e=Or(ba.getDefaults(),arguments,["frequency","modulationFrequency"]);this._pulse=new ga({context:this.context,frequency:e.modulationFrequency}),this._pulse.carrierType="sine",this.modulationFrequency=this._pulse.frequency,this._modulator=new ua({context:this.context,detune:e.detune,frequency:e.frequency,onstop:()=>this.onstop(this),phase:e.phase}),this.frequency=this._modulator.frequency,this.detune=this._modulator.detune,this._modulator.chain(this._scale,this._pulse.width),this._pulse.connect(this.output),Zr(this,["modulationFrequency","frequency","detune"])}static getDefaults(){return Object.assign(ea.getDefaults(),{detune:0,frequency:440,modulationFrequency:.4,phase:0,type:"pwm"})}_start(e){e=this.toSeconds(e),this._modulator.start(e),this._pulse.start(e)}_stop(e){e=this.toSeconds(e),this._modulator.stop(e),this._pulse.stop(e)}_restart(e){this._modulator.restart(e),this._pulse.restart(e)}get type(){return"pwm"}get baseType(){return"pwm"}get partials(){return[]}get partialCount(){return 0}get phase(){return this._modulator.phase}set phase(e){this._modulator.phase=e}asArray(e=1024){return Cr(this,void 0,void 0,(function*(){return oa(this,e)}))}dispose(){return super.dispose(),this._pulse.dispose(),this._scale.dispose(),this._modulator.dispose(),this}}const wa={am:fa,fat:ya,fm:ma,oscillator:ua,pulse:ga,pwm:ba};class va extends ea{constructor(){super(Or(va.getDefaults(),arguments,["frequency","type"])),this.name="OmniOscillator";const e=Or(va.getDefaults(),arguments,["frequency","type"]);this.frequency=new Oi({context:this.context,units:"frequency",value:e.frequency}),this.detune=new Oi({context:this.context,units:"cents",value:e.detune}),Zr(this,["frequency","detune"]),this.set(e)}static getDefaults(){return Object.assign(ua.getDefaults(),ma.getDefaults(),fa.getDefaults(),ya.getDefaults(),ga.getDefaults(),ba.getDefaults())}_start(e){this._oscillator.start(e)}_stop(e){this._oscillator.stop(e)}_restart(e){return this._oscillator.restart(e),this}get type(){let e="";return["am","fm","fat"].some((e=>this._sourceType===e))&&(e=this._sourceType),e+this._oscillator.type}set type(e){"fm"===e.substr(0,2)?(this._createNewOscillator("fm"),this._oscillator=this._oscillator,this._oscillator.type=e.substr(2)):"am"===e.substr(0,2)?(this._createNewOscillator("am"),this._oscillator=this._oscillator,this._oscillator.type=e.substr(2)):"fat"===e.substr(0,3)?(this._createNewOscillator("fat"),this._oscillator=this._oscillator,this._oscillator.type=e.substr(3)):"pwm"===e?(this._createNewOscillator("pwm"),this._oscillator=this._oscillator):"pulse"===e?this._createNewOscillator("pulse"):(this._createNewOscillator("oscillator"),this._oscillator=this._oscillator,this._oscillator.type=e)}get partials(){return this._oscillator.partials}set partials(e){this._getOscType(this._oscillator,"pulse")||this._getOscType(this._oscillator,"pwm")||(this._oscillator.partials=e)}get partialCount(){return this._oscillator.partialCount}set partialCount(e){this._getOscType(this._oscillator,"pulse")||this._getOscType(this._oscillator,"pwm")||(this._oscillator.partialCount=e)}set(e){return Reflect.has(e,"type")&&e.type&&(this.type=e.type),super.set(e),this}_createNewOscillator(e){if(e!==this._sourceType){this._sourceType=e;const t=wa[e],n=this.now();if(this._oscillator){const e=this._oscillator;e.stop(n),this.context.setTimeout((()=>e.dispose()),this.blockTime)}this._oscillator=new t({context:this.context}),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.connect(this.output),this._oscillator.onstop=()=>this.onstop(this),"started"===this.state&&this._oscillator.start(n)}}get phase(){return this._oscillator.phase}set phase(e){this._oscillator.phase=e}get sourceType(){return this._sourceType}set sourceType(e){let t="sine";"pwm"!==this._oscillator.type&&"pulse"!==this._oscillator.type&&(t=this._oscillator.type),"fm"===e?this.type="fm"+t:"am"===e?this.type="am"+t:"fat"===e?this.type="fat"+t:"oscillator"===e?this.type=t:"pulse"===e?this.type="pulse":"pwm"===e&&(this.type="pwm")}_getOscType(e,t){return e instanceof wa[t]}get baseType(){return this._oscillator.baseType}set baseType(e){this._getOscType(this._oscillator,"pulse")||this._getOscType(this._oscillator,"pwm")||"pulse"===e||"pwm"===e||(this._oscillator.baseType=e)}get width(){return this._getOscType(this._oscillator,"pulse")?this._oscillator.width:void 0}get count(){return this._getOscType(this._oscillator,"fat")?this._oscillator.count:void 0}set count(e){this._getOscType(this._oscillator,"fat")&&fr(e)&&(this._oscillator.count=e)}get spread(){return this._getOscType(this._oscillator,"fat")?this._oscillator.spread:void 0}set spread(e){this._getOscType(this._oscillator,"fat")&&fr(e)&&(this._oscillator.spread=e)}get modulationType(){return this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am")?this._oscillator.modulationType:void 0}set modulationType(e){(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))&&br(e)&&(this._oscillator.modulationType=e)}get modulationIndex(){return this._getOscType(this._oscillator,"fm")?this._oscillator.modulationIndex:void 0}get harmonicity(){return this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am")?this._oscillator.harmonicity:void 0}get modulationFrequency(){return this._getOscType(this._oscillator,"pwm")?this._oscillator.modulationFrequency:void 0}asArray(e=1024){return Cr(this,void 0,void 0,(function*(){return oa(this,e)}))}dispose(){return super.dispose(),this.detune.dispose(),this.frequency.dispose(),this._oscillator.dispose(),this}}class xa extends Oi{constructor(){super(Object.assign(Or(xa.getDefaults(),arguments,["value"]))),this.override=!1,this.name="Add",this._sum=new Ti({context:this.context}),this.input=this._sum,this.output=this._sum,this.addend=this._param,_i(this._constantSource,this._sum)}static getDefaults(){return Object.assign(Oi.getDefaults(),{value:0})}dispose(){return super.dispose(),this._sum.dispose(),this}}class Aa extends ca{constructor(){super(Object.assign(Or(Aa.getDefaults(),arguments,["min","max"]))),this.name="Scale";const e=Or(Aa.getDefaults(),arguments,["min","max"]);this._mult=this.input=new pa({context:this.context,value:e.max-e.min}),this._add=this.output=new xa({context:this.context,value:e.min}),this._min=e.min,this._max=e.max,this.input.connect(this.output)}static getDefaults(){return Object.assign(ca.getDefaults(),{max:1,min:0})}get min(){return this._min}set min(e){this._min=e,this._setRange()}get max(){return this._max}set max(e){this._max=e,this._setRange()}_setRange(){this._add.value=this._min,this._mult.value=this._max-this._min}dispose(){return super.dispose(),this._add.dispose(),this._mult.dispose(),this}}class Ca extends ca{constructor(){super(Object.assign(Or(Ca.getDefaults(),arguments))),this.name="Zero",this._gain=new Ti({context:this.context}),this.output=this._gain,this.input=void 0,Ei(this.context.getConstant(0),this._gain)}dispose(){return super.dispose(),Ii(this.context.getConstant(0),this._gain),this}}class ka extends Si{constructor(){super(Or(ka.getDefaults(),arguments,["frequency","min","max"])),this.name="LFO",this._stoppedValue=0,this._units="number",this.convert=!0,this._fromType=ki.prototype._fromType,this._toType=ki.prototype._toType,this._is=ki.prototype._is,this._clampValue=ki.prototype._clampValue;const e=Or(ka.getDefaults(),arguments,["frequency","min","max"]);this._oscillator=new ua(e),this.frequency=this._oscillator.frequency,this._amplitudeGain=new Ti({context:this.context,gain:e.amplitude,units:"normalRange"}),this.amplitude=this._amplitudeGain.gain,this._stoppedSignal=new Oi({context:this.context,units:"audioRange",value:0}),this._zeros=new Ca({context:this.context}),this._a2g=new da({context:this.context}),this._scaler=this.output=new Aa({context:this.context,max:e.max,min:e.min}),this.units=e.units,this.min=e.min,this.max=e.max,this._oscillator.chain(this._amplitudeGain,this._a2g,this._scaler),this._zeros.connect(this._a2g),this._stoppedSignal.connect(this._a2g),Zr(this,["amplitude","frequency"]),this.phase=e.phase}static getDefaults(){return Object.assign(ua.getDefaults(),{amplitude:1,frequency:"4n",max:1,min:0,type:"sine",units:"number"})}start(e){return e=this.toSeconds(e),this._stoppedSignal.setValueAtTime(0,e),this._oscillator.start(e),this}stop(e){return e=this.toSeconds(e),this._stoppedSignal.setValueAtTime(this._stoppedValue,e),this._oscillator.stop(e),this}sync(){return this._oscillator.sync(),this._oscillator.syncFrequency(),this}unsync(){return this._oscillator.unsync(),this._oscillator.unsyncFrequency(),this}_setStoppedValue(){this._stoppedValue=this._oscillator.getInitialValue(),this._stoppedSignal.value=this._stoppedValue}get min(){return this._toType(this._scaler.min)}set min(e){e=this._fromType(e),this._scaler.min=e}get max(){return this._toType(this._scaler.max)}set max(e){e=this._fromType(e),this._scaler.max=e}get type(){return this._oscillator.type}set type(e){this._oscillator.type=e,this._setStoppedValue()}get partials(){return this._oscillator.partials}set partials(e){this._oscillator.partials=e,this._setStoppedValue()}get phase(){return this._oscillator.phase}set phase(e){this._oscillator.phase=e,this._setStoppedValue()}get units(){return this._units}set units(e){const t=this.min,n=this.max;this._units=e,this.min=t,this.max=n}get state(){return this._oscillator.state}connect(e,t,n){return(e instanceof ki||e instanceof Oi)&&(this.convert=e.convert,this.units=e.units),Di(this,e,t,n),this}dispose(){return super.dispose(),this._oscillator.dispose(),this._stoppedSignal.dispose(),this._zeros.dispose(),this._scaler.dispose(),this._a2g.dispose(),this._amplitudeGain.dispose(),this.amplitude.dispose(),this}}function Sa(e,t=1/0){const n=new WeakMap;return function(s,r){Reflect.defineProperty(s,r,{configurable:!0,enumerable:!0,get:function(){return n.get(this)},set:function(s){ir(s,e,t),n.set(this,s)}})}}function _a(e,t=1/0){const n=new WeakMap;return function(s,r){Reflect.defineProperty(s,r,{configurable:!0,enumerable:!0,get:function(){return n.get(this)},set:function(s){ir(this.toSeconds(s),e,t),n.set(this,s)}})}}class Ea extends ea{constructor(){super(Or(Ea.getDefaults(),arguments,["url","onload"])),this.name="Player",this._activeSources=new Set;const e=Or(Ea.getDefaults(),arguments,["url","onload"]);this._buffer=new Jr({onload:this._onload.bind(this,e.onload),onerror:e.onerror,reverse:e.reverse,url:e.url}),this.autostart=e.autostart,this._loop=e.loop,this._loopStart=e.loopStart,this._loopEnd=e.loopEnd,this._playbackRate=e.playbackRate,this.fadeIn=e.fadeIn,this.fadeOut=e.fadeOut}static getDefaults(){return Object.assign(ea.getDefaults(),{autostart:!1,fadeIn:0,fadeOut:0,loop:!1,loopEnd:0,loopStart:0,onload:Qr,onerror:Qr,playbackRate:1,reverse:!1})}load(e){return Cr(this,void 0,void 0,(function*(){return yield this._buffer.load(e),this._onload(),this}))}_onload(e=Qr){e(),this.autostart&&this.start()}_onSourceEnd(e){this.onstop(this),this._activeSources.delete(e),0!==this._activeSources.size||this._synced||"started"!==this._state.getValueAtTime(this.now())||(this._state.cancel(this.now()),this._state.setStateAtTime("stopped",this.now()))}start(e,t,n){return super.start(e,t,n),this}_start(e,t,n){t=this._loop?Dr(t,this._loopStart):Dr(t,0);const s=this.toSeconds(t),r=n;n=Dr(n,Math.max(this._buffer.duration-s,0));let i=this.toSeconds(n);i/=this._playbackRate,e=this.toSeconds(e);const a=new ta({url:this._buffer,context:this.context,fadeIn:this.fadeIn,fadeOut:this.fadeOut,loop:this._loop,loopEnd:this._loopEnd,loopStart:this._loopStart,onended:this._onSourceEnd.bind(this),playbackRate:this._playbackRate}).connect(this.output);this._loop||this._synced||(this._state.cancel(e+i),this._state.setStateAtTime("stopped",e+i,{implicitEnd:!0})),this._activeSources.add(a),this._loop&&hr(r)?a.start(e,s):a.start(e,s,i-this.toSeconds(this.fadeOut))}_stop(e){const t=this.toSeconds(e);this._activeSources.forEach((e=>e.stop(t)))}restart(e,t,n){return super.restart(e,t,n),this}_restart(e,t,n){this._stop(e),this._start(e,t,n)}seek(e,t){const n=this.toSeconds(t);if("started"===this._state.getValueAtTime(n)){const t=this.toSeconds(e);this._stop(n),this._start(n,t)}return this}setLoopPoints(e,t){return this.loopStart=e,this.loopEnd=t,this}get loopStart(){return this._loopStart}set loopStart(e){this._loopStart=e,this.buffer.loaded&&ir(this.toSeconds(e),0,this.buffer.duration),this._activeSources.forEach((t=>{t.loopStart=e}))}get loopEnd(){return this._loopEnd}set loopEnd(e){this._loopEnd=e,this.buffer.loaded&&ir(this.toSeconds(e),0,this.buffer.duration),this._activeSources.forEach((t=>{t.loopEnd=e}))}get buffer(){return this._buffer}set buffer(e){this._buffer.set(e)}get loop(){return this._loop}set loop(e){if(this._loop!==e&&(this._loop=e,this._activeSources.forEach((t=>{t.loop=e})),e)){const e=this._state.getNextState("stopped",this.now());e&&this._state.cancel(e.time)}}get playbackRate(){return this._playbackRate}set playbackRate(e){this._playbackRate=e;const t=this.now(),n=this._state.getNextState("stopped",t);n&&n.implicitEnd&&(this._state.cancel(n.time),this._activeSources.forEach((e=>e.cancelStop()))),this._activeSources.forEach((n=>{n.playbackRate.setValueAtTime(e,t)}))}get reverse(){return this._buffer.reverse}set reverse(e){this._buffer.reverse=e}get loaded(){return this._buffer.loaded}dispose(){return super.dispose(),this._activeSources.forEach((e=>e.dispose())),this._activeSources.clear(),this._buffer.dispose(),this}}Ar([_a(0)],Ea.prototype,"fadeIn",void 0),Ar([_a(0)],Ea.prototype,"fadeOut",void 0);class Ia extends Si{constructor(){super(Or(Ia.getDefaults(),arguments,["urls","onload"],"urls")),this.name="Players",this.input=void 0,this._players=new Map;const e=Or(Ia.getDefaults(),arguments,["urls","onload"],"urls");this._volume=this.output=new $i({context:this.context,volume:e.volume}),this.volume=this._volume.volume,Zr(this,"volume"),this._buffers=new Ui({urls:e.urls,onload:e.onload,baseUrl:e.baseUrl,onerror:e.onerror}),this.mute=e.mute,this._fadeIn=e.fadeIn,this._fadeOut=e.fadeOut}static getDefaults(){return Object.assign(ea.getDefaults(),{baseUrl:"",fadeIn:0,fadeOut:0,mute:!1,onload:Qr,onerror:Qr,urls:{},volume:0})}get mute(){return this._volume.mute}set mute(e){this._volume.mute=e}get fadeIn(){return this._fadeIn}set fadeIn(e){this._fadeIn=e,this._players.forEach((t=>{t.fadeIn=e}))}get fadeOut(){return this._fadeOut}set fadeOut(e){this._fadeOut=e,this._players.forEach((t=>{t.fadeOut=e}))}get state(){return Array.from(this._players).some((([e,t])=>"started"===t.state))?"started":"stopped"}has(e){return this._buffers.has(e)}player(e){if(rr(this.has(e),`No Player with the name ${e} exists on this object`),!this._players.has(e)){const t=new Ea({context:this.context,fadeIn:this._fadeIn,fadeOut:this._fadeOut,url:this._buffers.get(e)}).connect(this.output);this._players.set(e,t)}return this._players.get(e)}get loaded(){return this._buffers.loaded}add(e,t,n){return rr(!this._buffers.has(e),"A buffer with that name already exists on this object"),this._buffers.add(e,t,n),this}stopAll(e){return this._players.forEach((t=>t.stop(e))),this}dispose(){return super.dispose(),this._volume.dispose(),this.volume.dispose(),this._players.forEach((e=>e.dispose())),this._buffers.dispose(),this}}class Ta extends ea{constructor(){super(Or(Ta.getDefaults(),arguments,["url","onload"])),this.name="GrainPlayer",this._loopStart=0,this._loopEnd=0,this._activeSources=[];const e=Or(Ta.getDefaults(),arguments,["url","onload"]);this.buffer=new Jr({onload:e.onload,onerror:e.onerror,reverse:e.reverse,url:e.url}),this._clock=new Bi({context:this.context,callback:this._tick.bind(this),frequency:1/e.grainSize}),this._playbackRate=e.playbackRate,this._grainSize=e.grainSize,this._overlap=e.overlap,this.detune=e.detune,this.overlap=e.overlap,this.loop=e.loop,this.playbackRate=e.playbackRate,this.grainSize=e.grainSize,this.loopStart=e.loopStart,this.loopEnd=e.loopEnd,this.reverse=e.reverse,this._clock.on("stop",this._onstop.bind(this))}static getDefaults(){return Object.assign(ea.getDefaults(),{onload:Qr,onerror:Qr,overlap:.1,grainSize:.2,playbackRate:1,detune:0,loop:!1,loopStart:0,loopEnd:0,reverse:!1})}_start(e,t,n){t=Dr(t,0),t=this.toSeconds(t),e=this.toSeconds(e);const s=1/this._clock.frequency.getValueAtTime(e);this._clock.start(e,t/s),n&&this.stop(e+this.toSeconds(n))}restart(e,t,n){return super.restart(e,t,n),this}_restart(e,t,n){this._stop(e),this._start(e,t,n)}_stop(e){this._clock.stop(e)}_onstop(e){this._activeSources.forEach((t=>{t.fadeOut=0,t.stop(e)})),this.onstop(this)}_tick(e){const t=this._clock.getTicksAtTime(e),n=t*this._grainSize;if(this.log("offset",n),!this.loop&&n>this.buffer.duration)return void this.stop(e);const s=n{const e=this._activeSources.indexOf(r);-1!==e&&this._activeSources.splice(e,1)}}get playbackRate(){return this._playbackRate}set playbackRate(e){ir(e,.001),this._playbackRate=e,this.grainSize=this._grainSize}get loopStart(){return this._loopStart}set loopStart(e){this.buffer.loaded&&ir(this.toSeconds(e),0,this.buffer.duration),this._loopStart=this.toSeconds(e)}get loopEnd(){return this._loopEnd}set loopEnd(e){this.buffer.loaded&&ir(this.toSeconds(e),0,this.buffer.duration),this._loopEnd=this.toSeconds(e)}get reverse(){return this.buffer.reverse}set reverse(e){this.buffer.reverse=e}get grainSize(){return this._grainSize}set grainSize(e){this._grainSize=this.toSeconds(e),this._clock.frequency.setValueAtTime(this._playbackRate/this._grainSize,this.now())}get overlap(){return this._overlap}set overlap(e){const t=this.toSeconds(e);ir(t,0),this._overlap=t}get loaded(){return this.buffer.loaded}dispose(){return super.dispose(),this.buffer.dispose(),this._clock.dispose(),this._activeSources.forEach((e=>e.dispose())),this}}class Na extends ca{constructor(){super(...arguments),this.name="Abs",this._abs=new ha({context:this.context,mapping:e=>Math.abs(e)<.001?0:Math.abs(e)}),this.input=this._abs,this.output=this._abs}dispose(){return super.dispose(),this._abs.dispose(),this}}class Ra extends ca{constructor(){super(...arguments),this.name="GainToAudio",this._norm=new ha({context:this.context,mapping:e=>2*Math.abs(e)-1}),this.input=this._norm,this.output=this._norm}dispose(){return super.dispose(),this._norm.dispose(),this}}class Oa extends ca{constructor(){super(...arguments),this.name="Negate",this._multiply=new pa({context:this.context,value:-1}),this.input=this._multiply,this.output=this._multiply}dispose(){return super.dispose(),this._multiply.dispose(),this}}class Da extends Oi{constructor(){super(Object.assign(Or(Da.getDefaults(),arguments,["value"]))),this.override=!1,this.name="Subtract",this._sum=new Ti({context:this.context}),this.input=this._sum,this.output=this._sum,this._neg=new Oa({context:this.context}),this.subtrahend=this._param,_i(this._constantSource,this._neg,this._sum)}static getDefaults(){return Object.assign(Oi.getDefaults(),{value:0})}dispose(){return super.dispose(),this._neg.dispose(),this._sum.dispose(),this}}class Ma extends ca{constructor(){super(Object.assign(Or(Ma.getDefaults(),arguments))),this.name="GreaterThanZero",this._thresh=this.output=new ha({context:this.context,length:127,mapping:e=>e<=0?0:1}),this._scale=this.input=new pa({context:this.context,value:1e4}),this._scale.connect(this._thresh)}dispose(){return super.dispose(),this._scale.dispose(),this._thresh.dispose(),this}}class za extends Oi{constructor(){super(Object.assign(Or(za.getDefaults(),arguments,["value"]))),this.name="GreaterThan",this.override=!1;const e=Or(za.getDefaults(),arguments,["value"]);this._subtract=this.input=new Da({context:this.context,value:e.value}),this._gtz=this.output=new Ma({context:this.context}),this.comparator=this._param=this._subtract.subtrahend,Zr(this,"comparator"),this._subtract.connect(this._gtz)}static getDefaults(){return Object.assign(Oi.getDefaults(),{value:0})}dispose(){return super.dispose(),this._gtz.dispose(),this._subtract.dispose(),this.comparator.dispose(),this}}class Fa extends ca{constructor(){super(Object.assign(Or(Fa.getDefaults(),arguments,["value"]))),this.name="Pow";const e=Or(Fa.getDefaults(),arguments,["value"]);this._exponentScaler=this.input=this.output=new ha({context:this.context,mapping:this._expFunc(e.value),length:8192}),this._exponent=e.value}static getDefaults(){return Object.assign(ca.getDefaults(),{value:1})}_expFunc(e){return t=>Math.pow(Math.abs(t),e)}get value(){return this._exponent}set value(e){this._exponent=e,this._exponentScaler.setMap(this._expFunc(this._exponent))}dispose(){return super.dispose(),this._exponentScaler.dispose(),this}}class Ba extends Aa{constructor(){super(Object.assign(Or(Ba.getDefaults(),arguments,["min","max","exponent"]))),this.name="ScaleExp";const e=Or(Ba.getDefaults(),arguments,["min","max","exponent"]);this.input=this._exp=new Fa({context:this.context,value:e.exponent}),this._exp.connect(this._mult)}static getDefaults(){return Object.assign(Aa.getDefaults(),{exponent:1})}get exponent(){return this._exp.value}set exponent(e){this._exp.value=e}dispose(){return super.dispose(),this._exp.dispose(),this}}class La extends Oi{constructor(){super(Or(Oi.getDefaults(),arguments,["value","units"])),this.name="SyncedSignal",this.override=!1;const e=Or(Oi.getDefaults(),arguments,["value","units"]);this._lastVal=e.value,this._synced=this.context.transport.scheduleRepeat(this._onTick.bind(this),"1i"),this._syncedCallback=this._anchorValue.bind(this),this.context.transport.on("start",this._syncedCallback),this.context.transport.on("pause",this._syncedCallback),this.context.transport.on("stop",this._syncedCallback),this._constantSource.disconnect(),this._constantSource.stop(0),this._constantSource=this.output=new Ri({context:this.context,offset:e.value,units:e.units}).start(0),this.setValueAtTime(e.value,0)}_onTick(e){const t=super.getValueAtTime(this.context.transport.seconds);this._lastVal!==t&&(this._lastVal=t,this._constantSource.offset.setValueAtTime(t,e))}_anchorValue(e){const t=super.getValueAtTime(this.context.transport.seconds);this._lastVal=t,this._constantSource.offset.cancelAndHoldAtTime(e),this._constantSource.offset.setValueAtTime(t,e)}getValueAtTime(e){const t=new vi(this.context,e).toSeconds();return super.getValueAtTime(t)}setValueAtTime(e,t){const n=new vi(this.context,t).toSeconds();return super.setValueAtTime(e,n),this}linearRampToValueAtTime(e,t){const n=new vi(this.context,t).toSeconds();return super.linearRampToValueAtTime(e,n),this}exponentialRampToValueAtTime(e,t){const n=new vi(this.context,t).toSeconds();return super.exponentialRampToValueAtTime(e,n),this}setTargetAtTime(e,t,n){const s=new vi(this.context,t).toSeconds();return super.setTargetAtTime(e,s,n),this}cancelScheduledValues(e){const t=new vi(this.context,e).toSeconds();return super.cancelScheduledValues(t),this}setValueCurveAtTime(e,t,n,s){const r=new vi(this.context,t).toSeconds();return n=this.toSeconds(n),super.setValueCurveAtTime(e,r,n,s),this}cancelAndHoldAtTime(e){const t=new vi(this.context,e).toSeconds();return super.cancelAndHoldAtTime(t),this}setRampPoint(e){const t=new vi(this.context,e).toSeconds();return super.setRampPoint(t),this}exponentialRampTo(e,t,n){const s=new vi(this.context,n).toSeconds();return super.exponentialRampTo(e,t,s),this}linearRampTo(e,t,n){const s=new vi(this.context,n).toSeconds();return super.linearRampTo(e,t,s),this}targetRampTo(e,t,n){const s=new vi(this.context,n).toSeconds();return super.targetRampTo(e,t,s),this}dispose(){return super.dispose(),this.context.transport.clear(this._synced),this.context.transport.off("start",this._syncedCallback),this.context.transport.off("pause",this._syncedCallback),this.context.transport.off("stop",this._syncedCallback),this._constantSource.dispose(),this}}class Pa extends Si{constructor(){super(Or(Pa.getDefaults(),arguments,["attack","decay","sustain","release"])),this.name="Envelope",this._sig=new Oi({context:this.context,value:0}),this.output=this._sig,this.input=void 0;const e=Or(Pa.getDefaults(),arguments,["attack","decay","sustain","release"]);this.attack=e.attack,this.decay=e.decay,this.sustain=e.sustain,this.release=e.release,this.attackCurve=e.attackCurve,this.releaseCurve=e.releaseCurve,this.decayCurve=e.decayCurve}static getDefaults(){return Object.assign(Si.getDefaults(),{attack:.01,attackCurve:"linear",decay:.1,decayCurve:"exponential",release:1,releaseCurve:"exponential",sustain:.5})}get value(){return this.getValueAtTime(this.now())}_getCurve(e,t){if(br(e))return e;{let n;for(n in Ua)if(Ua[n][t]===e)return n;return e}}_setCurve(e,t,n){if(br(n)&&Reflect.has(Ua,n)){const s=Ua[n];mr(s)?"_decayCurve"!==e&&(this[e]=s[t]):this[e]=s}else{if(!yr(n)||"_decayCurve"===e)throw new Error("Envelope: invalid curve: "+n);this[e]=n}}get attackCurve(){return this._getCurve(this._attackCurve,"In")}set attackCurve(e){this._setCurve("_attackCurve","In",e)}get releaseCurve(){return this._getCurve(this._releaseCurve,"Out")}set releaseCurve(e){this._setCurve("_releaseCurve","Out",e)}get decayCurve(){return this._decayCurve}set decayCurve(e){rr(["linear","exponential"].some((t=>t===e)),`Invalid envelope curve: ${e}`),this._decayCurve=e}triggerAttack(e,t=1){this.log("triggerAttack",e,t),e=this.toSeconds(e);let n=this.toSeconds(this.attack);const s=this.toSeconds(this.decay),r=this.getValueAtTime(e);if(r>0){n=(1-r)/(1/n)}if(n0){const n=this.toSeconds(this.release);n{const e=128;let t,n;const s=[];for(t=0;t{const s=e[t],r=this.context.transport.schedule((s=>{e[t]=s,n.apply(this,e)}),s);this._scheduledEvents.push(r)}}unsync(){return this._scheduledEvents.forEach((e=>this.context.transport.clear(e))),this._scheduledEvents=[],this._synced&&(this._synced=!1,this.triggerAttack=this._original_triggerAttack,this.triggerRelease=this._original_triggerRelease),this}triggerAttackRelease(e,t,n,s){const r=this.toSeconds(n),i=this.toSeconds(t);return this.triggerAttack(e,r,s),this.triggerRelease(r+i),this}dispose(){return super.dispose(),this._volume.dispose(),this.unsync(),this._scheduledEvents=[],this}}class Wa extends Va{constructor(){super(Or(Wa.getDefaults(),arguments));const e=Or(Wa.getDefaults(),arguments);this.portamento=e.portamento,this.onsilence=e.onsilence}static getDefaults(){return Object.assign(Va.getDefaults(),{detune:0,onsilence:Qr,portamento:0})}triggerAttack(e,t,n=1){this.log("triggerAttack",e,t,n);const s=this.toSeconds(t);return this._triggerEnvelopeAttack(s,n),this.setNote(e,s),this}triggerRelease(e){this.log("triggerRelease",e);const t=this.toSeconds(e);return this._triggerEnvelopeRelease(t),this}setNote(e,t){const n=this.toSeconds(t),s=e instanceof gi?e.toFrequency():e;if(this.portamento>0&&this.getLevelAtTime(n)>.05){const e=this.toSeconds(this.portamento);this.frequency.exponentialRampTo(s,e,n)}else this.frequency.setValueAtTime(s,n);return this}}Ar([_a(0)],Wa.prototype,"portamento",void 0);class ja extends Pa{constructor(){super(Or(ja.getDefaults(),arguments,["attack","decay","sustain","release"])),this.name="AmplitudeEnvelope",this._gainNode=new Ti({context:this.context,gain:0}),this.output=this._gainNode,this.input=this._gainNode,this._sig.connect(this._gainNode.gain),this.output=this._gainNode,this.input=this._gainNode}dispose(){return super.dispose(),this._gainNode.dispose(),this}}class Ga extends Wa{constructor(){super(Or(Ga.getDefaults(),arguments)),this.name="Synth";const e=Or(Ga.getDefaults(),arguments);this.oscillator=new va(Object.assign({context:this.context,detune:e.detune,onstop:()=>this.onsilence(this)},e.oscillator)),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.envelope=new ja(Object.assign({context:this.context},e.envelope)),this.oscillator.chain(this.envelope,this.output),Zr(this,["oscillator","frequency","detune","envelope"])}static getDefaults(){return Object.assign(Wa.getDefaults(),{envelope:Object.assign(Mr(Pa.getDefaults(),Object.keys(Si.getDefaults())),{attack:.005,decay:.1,release:1,sustain:.3}),oscillator:Object.assign(Mr(va.getDefaults(),[...Object.keys(ea.getDefaults()),"frequency","detune"]),{type:"triangle"})})}_triggerEnvelopeAttack(e,t){if(this.envelope.triggerAttack(e,t),this.oscillator.start(e),0===this.envelope.sustain){const t=this.toSeconds(this.envelope.attack),n=this.toSeconds(this.envelope.decay);this.oscillator.stop(e+t+n)}}_triggerEnvelopeRelease(e){this.envelope.triggerRelease(e),this.oscillator.stop(e+this.toSeconds(this.envelope.release))}getLevelAtTime(e){return e=this.toSeconds(e),this.envelope.getValueAtTime(e)}dispose(){return super.dispose(),this.oscillator.dispose(),this.envelope.dispose(),this}}class qa extends Wa{constructor(){super(Or(qa.getDefaults(),arguments)),this.name="ModulationSynth";const e=Or(qa.getDefaults(),arguments);this._carrier=new Ga({context:this.context,oscillator:e.oscillator,envelope:e.envelope,onsilence:()=>this.onsilence(this),volume:-10}),this._modulator=new Ga({context:this.context,oscillator:e.modulation,envelope:e.modulationEnvelope,volume:-10}),this.oscillator=this._carrier.oscillator,this.envelope=this._carrier.envelope,this.modulation=this._modulator.oscillator,this.modulationEnvelope=this._modulator.envelope,this.frequency=new Oi({context:this.context,units:"frequency"}),this.detune=new Oi({context:this.context,value:e.detune,units:"cents"}),this.harmonicity=new pa({context:this.context,value:e.harmonicity,minValue:0}),this._modulationNode=new Ti({context:this.context,gain:0}),Zr(this,["frequency","harmonicity","oscillator","envelope","modulation","modulationEnvelope","detune"])}static getDefaults(){return Object.assign(Wa.getDefaults(),{harmonicity:3,oscillator:Object.assign(Mr(va.getDefaults(),[...Object.keys(ea.getDefaults()),"frequency","detune"]),{type:"sine"}),envelope:Object.assign(Mr(Pa.getDefaults(),Object.keys(Si.getDefaults())),{attack:.01,decay:.01,sustain:1,release:.5}),modulation:Object.assign(Mr(va.getDefaults(),[...Object.keys(ea.getDefaults()),"frequency","detune"]),{type:"square"}),modulationEnvelope:Object.assign(Mr(Pa.getDefaults(),Object.keys(Si.getDefaults())),{attack:.5,decay:0,sustain:1,release:.5})})}_triggerEnvelopeAttack(e,t){this._carrier._triggerEnvelopeAttack(e,t),this._modulator._triggerEnvelopeAttack(e,t)}_triggerEnvelopeRelease(e){return this._carrier._triggerEnvelopeRelease(e),this._modulator._triggerEnvelopeRelease(e),this}getLevelAtTime(e){return e=this.toSeconds(e),this.envelope.getValueAtTime(e)}dispose(){return super.dispose(),this._carrier.dispose(),this._modulator.dispose(),this.frequency.dispose(),this.detune.dispose(),this.harmonicity.dispose(),this._modulationNode.dispose(),this}}class Ha extends qa{constructor(){super(Or(Ha.getDefaults(),arguments)),this.name="AMSynth",this._modulationScale=new da({context:this.context}),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.detune.fan(this._carrier.detune,this._modulator.detune),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output)}dispose(){return super.dispose(),this._modulationScale.dispose(),this}}class Ka extends Si{constructor(){super(Or(Ka.getDefaults(),arguments,["frequency","type"])),this.name="BiquadFilter";const e=Or(Ka.getDefaults(),arguments,["frequency","type"]);this._filter=this.context.createBiquadFilter(),this.input=this.output=this._filter,this.Q=new ki({context:this.context,units:"number",value:e.Q,param:this._filter.Q}),this.frequency=new ki({context:this.context,units:"frequency",value:e.frequency,param:this._filter.frequency}),this.detune=new ki({context:this.context,units:"cents",value:e.detune,param:this._filter.detune}),this.gain=new ki({context:this.context,units:"decibels",convert:!1,value:e.gain,param:this._filter.gain}),this.type=e.type}static getDefaults(){return Object.assign(Si.getDefaults(),{Q:1,type:"lowpass",frequency:350,detune:0,gain:0})}get type(){return this._filter.type}set type(e){rr(-1!==["lowpass","highpass","bandpass","lowshelf","highshelf","notch","allpass","peaking"].indexOf(e),`Invalid filter type: ${e}`),this._filter.type=e}getFrequencyResponse(e=128){const t=new Float32Array(e);for(let n=0;nt.type=e))}get rolloff(){return this._rolloff}set rolloff(e){const t=fr(e)?e:parseInt(e,10),n=[-12,-24,-48,-96];let s=n.indexOf(t);rr(-1!==s,`rolloff can only be ${n.join(", ")}`),s+=1,this._rolloff=t,this.input.disconnect(),this._filters.forEach((e=>e.disconnect())),this._filters=new Array(s);for(let e=0;e1));return this._filters.forEach((()=>{t.getFrequencyResponse(e).forEach(((e,t)=>n[t]*=e))})),t.dispose(),n}dispose(){return super.dispose(),this._filters.forEach((e=>{e.dispose()})),Yr(this,["detune","frequency","gain","Q"]),this.frequency.dispose(),this.Q.dispose(),this.detune.dispose(),this.gain.dispose(),this}}class Xa extends Pa{constructor(){super(Or(Xa.getDefaults(),arguments,["attack","decay","sustain","release"])),this.name="FrequencyEnvelope";const e=Or(Xa.getDefaults(),arguments,["attack","decay","sustain","release"]);this._octaves=e.octaves,this._baseFrequency=this.toFrequency(e.baseFrequency),this._exponent=this.input=new Fa({context:this.context,value:e.exponent}),this._scale=this.output=new Aa({context:this.context,min:this._baseFrequency,max:this._baseFrequency*Math.pow(2,this._octaves)}),this._sig.chain(this._exponent,this._scale)}static getDefaults(){return Object.assign(Pa.getDefaults(),{baseFrequency:200,exponent:1,octaves:4})}get baseFrequency(){return this._baseFrequency}set baseFrequency(e){const t=this.toFrequency(e);ir(t,0),this._baseFrequency=t,this._scale.min=this._baseFrequency,this.octaves=this._octaves}get octaves(){return this._octaves}set octaves(e){this._octaves=e,this._scale.max=this._baseFrequency*Math.pow(2,e)}get exponent(){return this._exponent.value}set exponent(e){this._exponent.value=e}dispose(){return super.dispose(),this._exponent.dispose(),this._scale.dispose(),this}}class Za extends Wa{constructor(){super(Or(Za.getDefaults(),arguments)),this.name="MonoSynth";const e=Or(Za.getDefaults(),arguments);this.oscillator=new va(Object.assign(e.oscillator,{context:this.context,detune:e.detune,onstop:()=>this.onsilence(this)})),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.filter=new $a(Object.assign(e.filter,{context:this.context})),this.filterEnvelope=new Xa(Object.assign(e.filterEnvelope,{context:this.context})),this.envelope=new ja(Object.assign(e.envelope,{context:this.context})),this.oscillator.chain(this.filter,this.envelope,this.output),this.filterEnvelope.connect(this.filter.frequency),Zr(this,["oscillator","frequency","detune","filter","filterEnvelope","envelope"])}static getDefaults(){return Object.assign(Wa.getDefaults(),{envelope:Object.assign(Mr(Pa.getDefaults(),Object.keys(Si.getDefaults())),{attack:.005,decay:.1,release:1,sustain:.9}),filter:Object.assign(Mr($a.getDefaults(),Object.keys(Si.getDefaults())),{Q:1,rolloff:-12,type:"lowpass"}),filterEnvelope:Object.assign(Mr(Xa.getDefaults(),Object.keys(Si.getDefaults())),{attack:.6,baseFrequency:200,decay:.2,exponent:2,octaves:3,release:2,sustain:.5}),oscillator:Object.assign(Mr(va.getDefaults(),Object.keys(ea.getDefaults())),{type:"sawtooth"})})}_triggerEnvelopeAttack(e,t=1){if(this.envelope.triggerAttack(e,t),this.filterEnvelope.triggerAttack(e),this.oscillator.start(e),0===this.envelope.sustain){const t=this.toSeconds(this.envelope.attack),n=this.toSeconds(this.envelope.decay);this.oscillator.stop(e+t+n)}}_triggerEnvelopeRelease(e){this.envelope.triggerRelease(e),this.filterEnvelope.triggerRelease(e),this.oscillator.stop(e+this.toSeconds(this.envelope.release))}getLevelAtTime(e){return e=this.toSeconds(e),this.envelope.getValueAtTime(e)}dispose(){return super.dispose(),this.oscillator.dispose(),this.envelope.dispose(),this.filterEnvelope.dispose(),this.filter.dispose(),this}}class Ya extends Wa{constructor(){super(Or(Ya.getDefaults(),arguments)),this.name="DuoSynth";const e=Or(Ya.getDefaults(),arguments);this.voice0=new Za(Object.assign(e.voice0,{context:this.context,onsilence:()=>this.onsilence(this)})),this.voice1=new Za(Object.assign(e.voice1,{context:this.context})),this.harmonicity=new pa({context:this.context,units:"positive",value:e.harmonicity}),this._vibrato=new ka({frequency:e.vibratoRate,context:this.context,min:-50,max:50}),this._vibrato.start(),this.vibratoRate=this._vibrato.frequency,this._vibratoGain=new Ti({context:this.context,units:"normalRange",gain:e.vibratoAmount}),this.vibratoAmount=this._vibratoGain.gain,this.frequency=new Oi({context:this.context,units:"frequency",value:440}),this.detune=new Oi({context:this.context,units:"cents",value:e.detune}),this.frequency.connect(this.voice0.frequency),this.frequency.chain(this.harmonicity,this.voice1.frequency),this._vibrato.connect(this._vibratoGain),this._vibratoGain.fan(this.voice0.detune,this.voice1.detune),this.detune.fan(this.voice0.detune,this.voice1.detune),this.voice0.connect(this.output),this.voice1.connect(this.output),Zr(this,["voice0","voice1","frequency","vibratoAmount","vibratoRate"])}getLevelAtTime(e){return e=this.toSeconds(e),this.voice0.envelope.getValueAtTime(e)+this.voice1.envelope.getValueAtTime(e)}static getDefaults(){return Rr(Wa.getDefaults(),{vibratoAmount:.5,vibratoRate:5,harmonicity:1.5,voice0:Rr(Mr(Za.getDefaults(),Object.keys(Wa.getDefaults())),{filterEnvelope:{attack:.01,decay:0,sustain:1,release:.5},envelope:{attack:.01,decay:0,sustain:1,release:.5}}),voice1:Rr(Mr(Za.getDefaults(),Object.keys(Wa.getDefaults())),{filterEnvelope:{attack:.01,decay:0,sustain:1,release:.5},envelope:{attack:.01,decay:0,sustain:1,release:.5}})})}_triggerEnvelopeAttack(e,t){this.voice0._triggerEnvelopeAttack(e,t),this.voice1._triggerEnvelopeAttack(e,t)}_triggerEnvelopeRelease(e){return this.voice0._triggerEnvelopeRelease(e),this.voice1._triggerEnvelopeRelease(e),this}dispose(){return super.dispose(),this.voice0.dispose(),this.voice1.dispose(),this.frequency.dispose(),this.detune.dispose(),this._vibrato.dispose(),this.vibratoRate.dispose(),this._vibratoGain.dispose(),this.harmonicity.dispose(),this}}class Qa extends qa{constructor(){super(Or(Qa.getDefaults(),arguments)),this.name="FMSynth";const e=Or(Qa.getDefaults(),arguments);this.modulationIndex=new pa({context:this.context,value:e.modulationIndex}),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this.detune.fan(this._carrier.detune,this._modulator.detune),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output)}static getDefaults(){return Object.assign(qa.getDefaults(),{modulationIndex:10})}dispose(){return super.dispose(),this.modulationIndex.dispose(),this}}const Ja=[1,1.483,1.932,2.546,2.63,3.897];class eo extends Wa{constructor(){super(Or(eo.getDefaults(),arguments)),this.name="MetalSynth",this._oscillators=[],this._freqMultipliers=[];const e=Or(eo.getDefaults(),arguments);this.detune=new Oi({context:this.context,units:"cents",value:e.detune}),this.frequency=new Oi({context:this.context,units:"frequency"}),this._amplitude=new Ti({context:this.context,gain:0}).connect(this.output),this._highpass=new $a({Q:0,context:this.context,type:"highpass"}).connect(this._amplitude);for(let t=0;tthis.onsilence(this):Qr,type:"square"});n.connect(this._highpass),this._oscillators[t]=n;const s=new pa({context:this.context,value:Ja[t]});this._freqMultipliers[t]=s,this.frequency.chain(s,n.frequency),this.detune.connect(n.detune)}this._filterFreqScaler=new Aa({context:this.context,max:7e3,min:this.toFrequency(e.resonance)}),this.envelope=new Pa({attack:e.envelope.attack,attackCurve:"linear",context:this.context,decay:e.envelope.decay,release:e.envelope.release,sustain:0}),this.envelope.chain(this._filterFreqScaler,this._highpass.frequency),this.envelope.connect(this._amplitude.gain),this._octaves=e.octaves,this.octaves=e.octaves}static getDefaults(){return Rr(Wa.getDefaults(),{envelope:Object.assign(Mr(Pa.getDefaults(),Object.keys(Si.getDefaults())),{attack:.001,decay:1.4,release:.2}),harmonicity:5.1,modulationIndex:32,octaves:1.5,resonance:4e3})}_triggerEnvelopeAttack(e,t=1){return this.envelope.triggerAttack(e,t),this._oscillators.forEach((t=>t.start(e))),0===this.envelope.sustain&&this._oscillators.forEach((t=>{t.stop(e+this.toSeconds(this.envelope.attack)+this.toSeconds(this.envelope.decay))})),this}_triggerEnvelopeRelease(e){return this.envelope.triggerRelease(e),this._oscillators.forEach((t=>t.stop(e+this.toSeconds(this.envelope.release)))),this}getLevelAtTime(e){return e=this.toSeconds(e),this.envelope.getValueAtTime(e)}get modulationIndex(){return this._oscillators[0].modulationIndex.value}set modulationIndex(e){this._oscillators.forEach((t=>t.modulationIndex.value=e))}get harmonicity(){return this._oscillators[0].harmonicity.value}set harmonicity(e){this._oscillators.forEach((t=>t.harmonicity.value=e))}get resonance(){return this._filterFreqScaler.min}set resonance(e){this._filterFreqScaler.min=this.toFrequency(e),this.octaves=this._octaves}get octaves(){return this._octaves}set octaves(e){this._octaves=e,this._filterFreqScaler.max=this._filterFreqScaler.min*Math.pow(2,e)}dispose(){return super.dispose(),this._oscillators.forEach((e=>e.dispose())),this._freqMultipliers.forEach((e=>e.dispose())),this.frequency.dispose(),this.detune.dispose(),this._filterFreqScaler.dispose(),this._amplitude.dispose(),this.envelope.dispose(),this._highpass.dispose(),this}}class to extends Ga{constructor(){super(Or(to.getDefaults(),arguments)),this.name="MembraneSynth",this.portamento=0;const e=Or(to.getDefaults(),arguments);this.pitchDecay=e.pitchDecay,this.octaves=e.octaves,Zr(this,["oscillator","envelope"])}static getDefaults(){return Rr(Wa.getDefaults(),Ga.getDefaults(),{envelope:{attack:.001,attackCurve:"exponential",decay:.4,release:1.4,sustain:.01},octaves:10,oscillator:{type:"sine"},pitchDecay:.05})}setNote(e,t){const n=this.toSeconds(t),s=this.toFrequency(e instanceof gi?e.toFrequency():e),r=s*this.octaves;return this.oscillator.frequency.setValueAtTime(r,n),this.oscillator.frequency.exponentialRampToValueAtTime(s,n+this.toSeconds(this.pitchDecay)),this}dispose(){return super.dispose(),this}}Ar([Sa(0)],to.prototype,"octaves",void 0),Ar([_a(0)],to.prototype,"pitchDecay",void 0);class no extends Va{constructor(){super(Or(no.getDefaults(),arguments)),this.name="NoiseSynth";const e=Or(no.getDefaults(),arguments);this.noise=new na(Object.assign({context:this.context},e.noise)),this.envelope=new ja(Object.assign({context:this.context},e.envelope)),this.noise.chain(this.envelope,this.output)}static getDefaults(){return Object.assign(Va.getDefaults(),{envelope:Object.assign(Mr(Pa.getDefaults(),Object.keys(Si.getDefaults())),{decay:.1,sustain:0}),noise:Object.assign(Mr(na.getDefaults(),Object.keys(ea.getDefaults())),{type:"white"})})}triggerAttack(e,t=1){return e=this.toSeconds(e),this.envelope.triggerAttack(e,t),this.noise.start(e),0===this.envelope.sustain&&this.noise.stop(e+this.toSeconds(this.envelope.attack)+this.toSeconds(this.envelope.decay)),this}triggerRelease(e){return e=this.toSeconds(e),this.envelope.triggerRelease(e),this.noise.stop(e+this.toSeconds(this.envelope.release)),this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",0),this._syncMethod("triggerRelease",0)),this}triggerAttackRelease(e,t,n=1){return t=this.toSeconds(t),e=this.toSeconds(e),this.triggerAttack(t,n),this.triggerRelease(t+e),this}dispose(){return super.dispose(),this.noise.dispose(),this.envelope.dispose(),this}}const so=new Set;function ro(e){so.add(e)}function io(e,t){const n=`registerProcessor("${e}", ${t})`;so.add(n)}class ao extends Si{constructor(e){super(e),this.name="ToneAudioWorklet",this.workletOptions={},this.onprocessorerror=Qr;const t=URL.createObjectURL(new Blob([Array.from(so).join("\n")],{type:"text/javascript"})),n=this._audioWorkletName();this._dummyGain=this.context.createGain(),this._dummyParam=this._dummyGain.gain,this.context.addAudioWorkletModule(t,n).then((()=>{this.disposed||(this._worklet=this.context.createAudioWorkletNode(n,this.workletOptions),this._worklet.onprocessorerror=this.onprocessorerror.bind(this),this.onReady(this._worklet))}))}dispose(){return super.dispose(),this._dummyGain.disconnect(),this._worklet&&(this._worklet.port.postMessage("dispose"),this._worklet.disconnect()),this}}ro('\n\t/**\n\t * The base AudioWorkletProcessor for use in Tone.js. Works with the [[ToneAudioWorklet]]. \n\t */\n\tclass ToneAudioWorkletProcessor extends AudioWorkletProcessor {\n\n\t\tconstructor(options) {\n\t\t\t\n\t\t\tsuper(options);\n\t\t\t/**\n\t\t\t * If the processor was disposed or not. Keep alive until it\'s disposed.\n\t\t\t */\n\t\t\tthis.disposed = false;\n\t\t \t/** \n\t\t\t * The number of samples in the processing block\n\t\t\t */\n\t\t\tthis.blockSize = 128;\n\t\t\t/**\n\t\t\t * the sample rate\n\t\t\t */\n\t\t\tthis.sampleRate = sampleRate;\n\n\t\t\tthis.port.onmessage = (event) => {\n\t\t\t\t// when it receives a dispose \n\t\t\t\tif (event.data === "dispose") {\n\t\t\t\t\tthis.disposed = true;\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n');ro("\n\t/**\n\t * Abstract class for a single input/output processor. \n\t * has a 'generate' function which processes one sample at a time\n\t */\n\tclass SingleIOProcessor extends ToneAudioWorkletProcessor {\n\n\t\tconstructor(options) {\n\t\t\tsuper(Object.assign(options, {\n\t\t\t\tnumberOfInputs: 1,\n\t\t\t\tnumberOfOutputs: 1\n\t\t\t}));\n\t\t\t/**\n\t\t\t * Holds the name of the parameter and a single value of that\n\t\t\t * parameter at the current sample\n\t\t\t * @type { [name: string]: number }\n\t\t\t */\n\t\t\tthis.params = {}\n\t\t}\n\n\t\t/**\n\t\t * Generate an output sample from the input sample and parameters\n\t\t * @abstract\n\t\t * @param input number\n\t\t * @param channel number\n\t\t * @param parameters { [name: string]: number }\n\t\t * @returns number\n\t\t */\n\t\tgenerate(){}\n\n\t\t/**\n\t\t * Update the private params object with the \n\t\t * values of the parameters at the given index\n\t\t * @param parameters { [name: string]: Float32Array },\n\t\t * @param index number\n\t\t */\n\t\tupdateParams(parameters, index) {\n\t\t\tfor (const paramName in parameters) {\n\t\t\t\tconst param = parameters[paramName];\n\t\t\t\tif (param.length > 1) {\n\t\t\t\t\tthis.params[paramName] = parameters[paramName][index];\n\t\t\t\t} else {\n\t\t\t\t\tthis.params[paramName] = parameters[paramName][0];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Process a single frame of the audio\n\t\t * @param inputs Float32Array[][]\n\t\t * @param outputs Float32Array[][]\n\t\t */\n\t\tprocess(inputs, outputs, parameters) {\n\t\t\tconst input = inputs[0];\n\t\t\tconst output = outputs[0];\n\t\t\t// get the parameter values\n\t\t\tconst channelCount = Math.max(input && input.length || 0, output.length);\n\t\t\tfor (let sample = 0; sample < this.blockSize; sample++) {\n\t\t\t\tthis.updateParams(parameters, sample);\n\t\t\t\tfor (let channel = 0; channel < channelCount; channel++) {\n\t\t\t\t\tconst inputSample = input && input.length ? input[channel][sample] : 0;\n\t\t\t\t\toutput[channel][sample] = this.generate(inputSample, channel, this.params);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn !this.disposed;\n\t\t}\n\t};\n");ro("\n\t/**\n\t * A multichannel buffer for use within an AudioWorkletProcessor as a delay line\n\t */\n\tclass DelayLine {\n\t\t\n\t\tconstructor(size, channels) {\n\t\t\tthis.buffer = [];\n\t\t\tthis.writeHead = []\n\t\t\tthis.size = size;\n\n\t\t\t// create the empty channels\n\t\t\tfor (let i = 0; i < channels; i++) {\n\t\t\t\tthis.buffer[i] = new Float32Array(this.size);\n\t\t\t\tthis.writeHead[i] = 0;\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Push a value onto the end\n\t\t * @param channel number\n\t\t * @param value number\n\t\t */\n\t\tpush(channel, value) {\n\t\t\tthis.writeHead[channel] += 1;\n\t\t\tif (this.writeHead[channel] > this.size) {\n\t\t\t\tthis.writeHead[channel] = 0;\n\t\t\t}\n\t\t\tthis.buffer[channel][this.writeHead[channel]] = value;\n\t\t}\n\n\t\t/**\n\t\t * Get the recorded value of the channel given the delay\n\t\t * @param channel number\n\t\t * @param delay number delay samples\n\t\t */\n\t\tget(channel, delay) {\n\t\t\tlet readHead = this.writeHead[channel] - Math.floor(delay);\n\t\t\tif (readHead < 0) {\n\t\t\t\treadHead += this.size;\n\t\t\t}\n\t\t\treturn this.buffer[channel][readHead];\n\t\t}\n\t}\n");const oo="feedback-comb-filter";io(oo,'\n\tclass FeedbackCombFilterWorklet extends SingleIOProcessor {\n\n\t\tconstructor(options) {\n\t\t\tsuper(options);\n\t\t\tthis.delayLine = new DelayLine(this.sampleRate, options.channelCount || 2);\n\t\t}\n\n\t\tstatic get parameterDescriptors() {\n\t\t\treturn [{\n\t\t\t\tname: "delayTime",\n\t\t\t\tdefaultValue: 0.1,\n\t\t\t\tminValue: 0,\n\t\t\t\tmaxValue: 1,\n\t\t\t\tautomationRate: "k-rate"\n\t\t\t}, {\n\t\t\t\tname: "feedback",\n\t\t\t\tdefaultValue: 0.5,\n\t\t\t\tminValue: 0,\n\t\t\t\tmaxValue: 0.9999,\n\t\t\t\tautomationRate: "k-rate"\n\t\t\t}];\n\t\t}\n\n\t\tgenerate(input, channel, parameters) {\n\t\t\tconst delayedSample = this.delayLine.get(channel, parameters.delayTime * this.sampleRate);\n\t\t\tthis.delayLine.push(channel, input + delayedSample * parameters.feedback);\n\t\t\treturn delayedSample;\n\t\t}\n\t}\n');class lo extends ao{constructor(){super(Or(lo.getDefaults(),arguments,["delayTime","resonance"])),this.name="FeedbackCombFilter";const e=Or(lo.getDefaults(),arguments,["delayTime","resonance"]);this.input=new Ti({context:this.context}),this.output=new Ti({context:this.context}),this.delayTime=new ki({context:this.context,value:e.delayTime,units:"time",minValue:0,maxValue:1,param:this._dummyParam,swappable:!0}),this.resonance=new ki({context:this.context,value:e.resonance,units:"normalRange",param:this._dummyParam,swappable:!0}),Zr(this,["resonance","delayTime"])}_audioWorkletName(){return oo}static getDefaults(){return Object.assign(Si.getDefaults(),{delayTime:.1,resonance:.5})}onReady(e){_i(this.input,e,this.output);const t=e.parameters.get("delayTime");this.delayTime.setParam(t);const n=e.parameters.get("feedback");this.resonance.setParam(n)}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this.delayTime.dispose(),this.resonance.dispose(),this}}class uo extends Si{constructor(){super(Or(uo.getDefaults(),arguments,["frequency","type"])),this.name="OnePoleFilter";const e=Or(uo.getDefaults(),arguments,["frequency","type"]);this._frequency=e.frequency,this._type=e.type,this.input=new Ti({context:this.context}),this.output=new Ti({context:this.context}),this._createFilter()}static getDefaults(){return Object.assign(Si.getDefaults(),{frequency:880,type:"lowpass"})}_createFilter(){const e=this._filter,t=this.toFrequency(this._frequency),n=1/(2*Math.PI*t);if("lowpass"===this._type){const e=1/(n*this.context.sampleRate),t=e-1;this._filter=this.context.createIIRFilter([e,0],[1,t])}else{const e=1/(n*this.context.sampleRate)-1;this._filter=this.context.createIIRFilter([1,-1],[1,e])}this.input.chain(this._filter,this.output),e&&this.context.setTimeout((()=>{this.disposed||(this.input.disconnect(e),e.disconnect())}),this.blockTime)}get frequency(){return this._frequency}set frequency(e){this._frequency=e,this._createFilter()}get type(){return this._type}set type(e){this._type=e,this._createFilter()}getFrequencyResponse(e=128){const t=new Float32Array(e);for(let n=0;nt.voice===e));this._activeVoices.splice(t,1)}_getNextAvailableVoice(){if(this._availableVoices.length)return this._availableVoices.shift();if(this._voices.lengthMath.ceil(this._averageActiveVoices+1)){const e=this._availableVoices.shift(),t=this._voices.indexOf(e);this._voices.splice(t,1),this.context.isOffline||e.dispose()}}_triggerAttack(e,t,n){e.forEach((e=>{const s=new Vi(this.context,e).toMidi(),r=this._getNextAvailableVoice();r&&(r.triggerAttack(e,t,n),this._activeVoices.push({midi:s,voice:r,released:!1}),this.log("triggerAttack",e,t))}))}_triggerRelease(e,t){e.forEach((e=>{const n=new Vi(this.context,e).toMidi(),s=this._activeVoices.find((({midi:e,released:t})=>e===n&&!t));s&&(s.voice.triggerRelease(t),s.released=!0,this.log("triggerRelease",e,t))}))}_scheduleEvent(e,t,n,s){rr(!this.disposed,"Synth was already disposed"),n<=this.now()?"attack"===e?this._triggerAttack(t,n,s):this._triggerRelease(t,n):this.context.setTimeout((()=>{this._scheduleEvent(e,t,n,s)}),n-this.now())}triggerAttack(e,t,n){Array.isArray(e)||(e=[e]);const s=this.toSeconds(t);return this._scheduleEvent("attack",e,s,n),this}triggerRelease(e,t){Array.isArray(e)||(e=[e]);const n=this.toSeconds(t);return this._scheduleEvent("release",e,n),this}triggerAttackRelease(e,t,n,s){const r=this.toSeconds(n);if(this.triggerAttack(e,r,s),yr(t)){rr(yr(e),"If the duration is an array, the notes must also be an array");for(let n=0;n0,"The duration must be greater than 0"),this.triggerRelease(e[n],r+i)}}else{const n=this.toSeconds(t);rr(n>0,"The duration must be greater than 0"),this.triggerRelease(e,r+n)}return this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",1)),this}set(e){const t=Mr(e,["onsilence","context"]);return this.options=Rr(this.options,t),this._voices.forEach((e=>e.set(t))),this._dummyVoice.set(t),this}get(){return this._dummyVoice.get()}releaseAll(e){const t=this.toSeconds(e);return this._activeVoices.forEach((({voice:e})=>{e.triggerRelease(t)})),this}dispose(){return super.dispose(),this._dummyVoice.dispose(),this._voices.forEach((e=>e.dispose())),this._activeVoices=[],this._availableVoices=[],this.context.clearInterval(this._gcTimeout),this}}class fo extends Va{constructor(){super(Or(fo.getDefaults(),arguments,["urls","onload","baseUrl"],"urls")),this.name="Sampler",this._activeSources=new Map;const e=Or(fo.getDefaults(),arguments,["urls","onload","baseUrl"],"urls"),t={};Object.keys(e.urls).forEach((n=>{const s=parseInt(n,10);if(rr(wr(n)||fr(s)&&isFinite(s),`url key is neither a note or midi pitch: ${n}`),wr(n)){const s=new gi(this.context,n).toMidi();t[s]=e.urls[n]}else fr(s)&&isFinite(s)&&(t[s]=e.urls[s])})),this._buffers=new Ui({urls:t,onload:e.onload,baseUrl:e.baseUrl,onerror:e.onerror}),this.attack=e.attack,this.release=e.release,this.curve=e.curve,this._buffers.loaded&&Promise.resolve().then(e.onload)}static getDefaults(){return Object.assign(Va.getDefaults(),{attack:0,baseUrl:"",curve:"exponential",onload:Qr,onerror:Qr,release:.1,urls:{}})}_findClosest(e){let t=0;for(;t<96;){if(this._buffers.has(e+t))return-t;if(this._buffers.has(e-t))return t;t++}throw new Error(`No available buffers for note: ${e}`)}triggerAttack(e,t,n=1){return this.log("triggerAttack",e,t,n),Array.isArray(e)||(e=[e]),e.forEach((e=>{const s=hi(new gi(this.context,e).toFrequency()),r=Math.round(s),i=s-r,a=this._findClosest(r),o=r-a,l=this._buffers.get(o),u=li(a+i),c=new ta({url:l,context:this.context,curve:this.curve,fadeIn:this.attack,fadeOut:this.release,playbackRate:u}).connect(this.output);c.start(t,0,l.duration/u,n),yr(this._activeSources.get(r))||this._activeSources.set(r,[]),this._activeSources.get(r).push(c),c.onended=()=>{if(this._activeSources&&this._activeSources.has(r)){const e=this._activeSources.get(r),t=e.indexOf(c);-1!==t&&e.splice(t,1)}}})),this}triggerRelease(e,t){return this.log("triggerRelease",e,t),Array.isArray(e)||(e=[e]),e.forEach((e=>{const n=new gi(this.context,e).toMidi();if(this._activeSources.has(n)&&this._activeSources.get(n).length){const e=this._activeSources.get(n);t=this.toSeconds(t),e.forEach((e=>{e.stop(t)})),this._activeSources.set(n,[])}})),this}releaseAll(e){const t=this.toSeconds(e);return this._activeSources.forEach((e=>{for(;e.length;){e.shift().stop(t)}})),this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",1)),this}triggerAttackRelease(e,t,n,s=1){const r=this.toSeconds(n);return this.triggerAttack(e,r,s),yr(t)?(rr(yr(e),"notes must be an array when duration is array"),e.forEach(((e,n)=>{const s=t[Math.min(n,t.length-1)];this.triggerRelease(e,r+this.toSeconds(s))}))):this.triggerRelease(e,r+this.toSeconds(t)),this}add(e,t,n){if(rr(wr(e)||isFinite(e),`note must be a pitch or midi: ${e}`),wr(e)){const s=new gi(this.context,e).toMidi();this._buffers.add(s,t,n)}else this._buffers.add(e,t,n);return this}get loaded(){return this._buffers.loaded}dispose(){return super.dispose(),this._buffers.dispose(),this._activeSources.forEach((e=>{e.forEach((e=>e.dispose()))})),this._activeSources.clear(),this}}Ar([_a(0)],fo.prototype,"attack",void 0),Ar([_a(0)],fo.prototype,"release",void 0);class mo extends Ai{constructor(){super(Or(mo.getDefaults(),arguments,["callback","value"])),this.name="ToneEvent",this._state=new Ci("stopped"),this._startOffset=0;const e=Or(mo.getDefaults(),arguments,["callback","value"]);this._loop=e.loop,this.callback=e.callback,this.value=e.value,this._loopStart=this.toTicks(e.loopStart),this._loopEnd=this.toTicks(e.loopEnd),this._playbackRate=e.playbackRate,this._probability=e.probability,this._humanize=e.humanize,this.mute=e.mute,this._playbackRate=e.playbackRate,this._state.increasing=!0,this._rescheduleEvents()}static getDefaults(){return Object.assign(Ai.getDefaults(),{callback:Qr,humanize:!1,loop:!1,loopEnd:"1m",loopStart:0,mute:!1,playbackRate:1,probability:1,value:null})}_rescheduleEvents(e=-1){this._state.forEachFrom(e,(e=>{let t;if("started"===e.state){-1!==e.id&&this.context.transport.clear(e.id);const n=e.time+Math.round(this.startOffset/this._playbackRate);if(!0===this._loop||fr(this._loop)&&this._loop>1){t=1/0,fr(this._loop)&&(t=this._loop*this._getLoopDuration());const s=this._state.getAfter(n);null!==s&&(t=Math.min(t,s.time-n)),t!==1/0&&(this._state.setStateAtTime("stopped",n+t+1,{id:-1}),t=new ji(this.context,t));const r=new ji(this.context,this._getLoopDuration());e.id=this.context.transport.scheduleRepeat(this._tick.bind(this),r,new ji(this.context,n),t)}else e.id=this.context.transport.schedule(this._tick.bind(this),new ji(this.context,n))}}))}get state(){return this._state.getValueAtTime(this.context.transport.ticks)}get startOffset(){return this._startOffset}set startOffset(e){this._startOffset=e}get probability(){return this._probability}set probability(e){this._probability=e}get humanize(){return this._humanize}set humanize(e){this._humanize=e}start(e){const t=this.toTicks(e);return"stopped"===this._state.getValueAtTime(t)&&(this._state.add({id:-1,state:"started",time:t}),this._rescheduleEvents(t)),this}stop(e){this.cancel(e);const t=this.toTicks(e);if("started"===this._state.getValueAtTime(t)){this._state.setStateAtTime("stopped",t,{id:-1});const e=this._state.getBefore(t);let n=t;null!==e&&(n=e.time),this._rescheduleEvents(n)}return this}cancel(e){e=Dr(e,-1/0);const t=this.toTicks(e);return this._state.forEachFrom(t,(e=>{this.context.transport.clear(e.id)})),this._state.cancel(t),this}_tick(e){const t=this.context.transport.getTicksAtTime(e);if(!this.mute&&"started"===this._state.getValueAtTime(t)){if(this.probability<1&&Math.random()>this.probability)return;if(this.humanize){let t=.02;gr(this.humanize)||(t=this.toSeconds(this.humanize)),e+=(2*Math.random()-1)*t}this.callback(e,this.value)}}_getLoopDuration(){return Math.round((this._loopEnd-this._loopStart)/this._playbackRate)}get loop(){return this._loop}set loop(e){this._loop=e,this._rescheduleEvents()}get playbackRate(){return this._playbackRate}set playbackRate(e){this._playbackRate=e,this._rescheduleEvents()}get loopEnd(){return new ji(this.context,this._loopEnd).toSeconds()}set loopEnd(e){this._loopEnd=this.toTicks(e),this._loop&&this._rescheduleEvents()}get loopStart(){return new ji(this.context,this._loopStart).toSeconds()}set loopStart(e){this._loopStart=this.toTicks(e),this._loop&&this._rescheduleEvents()}get progress(){if(this._loop){const e=this.context.transport.ticks,t=this._state.get(e);if(null!==t&&"started"===t.state){const n=this._getLoopDuration();return(e-t.time)%n/n}return 0}return 0}dispose(){return super.dispose(),this.cancel(),this._state.dispose(),this}}class go extends Ai{constructor(){super(Or(go.getDefaults(),arguments,["callback","interval"])),this.name="Loop";const e=Or(go.getDefaults(),arguments,["callback","interval"]);this._event=new mo({context:this.context,callback:this._tick.bind(this),loop:!0,loopEnd:e.interval,playbackRate:e.playbackRate,probability:e.probability}),this.callback=e.callback,this.iterations=e.iterations}static getDefaults(){return Object.assign(Ai.getDefaults(),{interval:"4n",callback:Qr,playbackRate:1,iterations:1/0,probability:1,mute:!1,humanize:!1})}start(e){return this._event.start(e),this}stop(e){return this._event.stop(e),this}cancel(e){return this._event.cancel(e),this}_tick(e){this.callback(e)}get state(){return this._event.state}get progress(){return this._event.progress}get interval(){return this._event.loopEnd}set interval(e){this._event.loopEnd=e}get playbackRate(){return this._event.playbackRate}set playbackRate(e){this._event.playbackRate=e}get humanize(){return this._event.humanize}set humanize(e){this._event.humanize=e}get probability(){return this._event.probability}set probability(e){this._event.probability=e}get mute(){return this._event.mute}set mute(e){this._event.mute=e}get iterations(){return!0===this._event.loop?1/0:this._event.loop}set iterations(e){this._event.loop=e===1/0||e}dispose(){return super.dispose(),this._event.dispose(),this}}class yo extends mo{constructor(){super(Or(yo.getDefaults(),arguments,["callback","events"])),this.name="Part",this._state=new Ci("stopped"),this._events=new Set;const e=Or(yo.getDefaults(),arguments,["callback","events"]);this._state.increasing=!0,e.events.forEach((e=>{yr(e)?this.add(e[0],e[1]):this.add(e)}))}static getDefaults(){return Object.assign(mo.getDefaults(),{events:[]})}start(e,t){const n=this.toTicks(e);if("started"!==this._state.getValueAtTime(n)){t=Dr(t,this._loop?this._loopStart:0),t=this._loop?Dr(t,this._loopStart):Dr(t,0);const e=this.toTicks(t);this._state.add({id:-1,offset:e,state:"started",time:n}),this._forEach((t=>{this._startNote(t,n,e)}))}return this}_startNote(e,t,n){t-=n,this._loop?e.startOffset>=this._loopStart&&e.startOffset=n&&(e.loop=!1,e.start(new ji(this.context,t))):e.startOffset>=n&&e.start(new ji(this.context,t))}get startOffset(){return this._startOffset}set startOffset(e){this._startOffset=e,this._forEach((e=>{e.startOffset+=this._startOffset}))}stop(e){const t=this.toTicks(e);return this._state.cancel(t),this._state.setStateAtTime("stopped",t),this._forEach((t=>{t.stop(e)})),this}at(e,t){const n=new vi(this.context,e).toTicks(),s=new ji(this.context,1).toSeconds(),r=this._events.values();let i=r.next();for(;!i.done;){const e=i.value;if(Math.abs(n-e.startOffset){"started"===t.state?this._startNote(e,t.time,t.offset):e.stop(new ji(this.context,t.time))}))}remove(e,t){return mr(e)&&e.hasOwnProperty("time")&&(e=(t=e).time),e=this.toTicks(e),this._events.forEach((n=>{n.startOffset===e&&(hr(t)||dr(t)&&n.value===t)&&(this._events.delete(n),n.dispose())})),this}clear(){return this._forEach((e=>e.dispose())),this._events.clear(),this}cancel(e){return this._forEach((t=>t.cancel(e))),this._state.cancel(this.toTicks(e)),this}_forEach(e){return this._events&&this._events.forEach((t=>{t instanceof yo?t._forEach(e):e(t)})),this}_setAll(e,t){this._forEach((n=>{n[e]=t}))}_tick(e,t){this.mute||this.callback(e,t)}_testLoopBoundries(e){this._loop&&(e.startOffset=this._loopEnd)?e.cancel(0):"stopped"===e.state&&this._restartEvent(e)}get probability(){return this._probability}set probability(e){this._probability=e,this._setAll("probability",e)}get humanize(){return this._humanize}set humanize(e){this._humanize=e,this._setAll("humanize",e)}get loop(){return this._loop}set loop(e){this._loop=e,this._forEach((t=>{t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.loop=e,this._testLoopBoundries(t)}))}get loopEnd(){return new ji(this.context,this._loopEnd).toSeconds()}set loopEnd(e){this._loopEnd=this.toTicks(e),this._loop&&this._forEach((t=>{t.loopEnd=e,this._testLoopBoundries(t)}))}get loopStart(){return new ji(this.context,this._loopStart).toSeconds()}set loopStart(e){this._loopStart=this.toTicks(e),this._loop&&this._forEach((e=>{e.loopStart=this.loopStart,this._testLoopBoundries(e)}))}get playbackRate(){return this._playbackRate}set playbackRate(e){this._playbackRate=e,this._setAll("playbackRate",e)}get length(){return this._events.size}dispose(){return super.dispose(),this.clear(),this}}function*bo(e){let t=0;for(;t=0;)t=xo(t,e),yield e[t],t--}function*vo(e,t){for(;;)yield*t(e)}function xo(e,t){return Vr(e,0,t.length-1)}function*Ao(e,t){let n=t?0:e.length-1;for(;;)n=xo(n,e),yield e[n],t?(n++,n>=e.length-1&&(t=!1)):(n--,n<=0&&(t=!0))}function*Co(e){let t=0,n=0;for(;t=0;)t=xo(t,e),yield e[t],n++,t+=n%2?-2:1}function*So(e){const t=[];for(let n=0;n0;){const n=xo(t.splice(Math.floor(t.length*Math.random()),1)[0],e);yield e[n]}}function*_o(e,t="up",n=0){switch(rr(e.length>0,"The array must have more than one value in it"),t){case"up":yield*vo(e,bo);case"down":yield*vo(e,wo);case"upDown":yield*Ao(e,!0);case"downUp":yield*Ao(e,!1);case"alternateUp":yield*vo(e,Co);case"alternateDown":yield*vo(e,ko);case"random":yield*function*(e){for(;;){const t=Math.floor(Math.random()*e.length);yield e[t]}}(e);case"randomOnce":yield*vo(e,So);case"randomWalk":yield*function*(e){let t=Math.floor(Math.random()*e.length);for(;;)0===t?t++:t===e.length-1||Math.random()<.5?t--:t++,yield e[t]}(e)}}class Eo extends go{constructor(){super(Or(Eo.getDefaults(),arguments,["callback","values","pattern"])),this.name="Pattern";const e=Or(Eo.getDefaults(),arguments,["callback","values","pattern"]);this.callback=e.callback,this._values=e.values,this._pattern=_o(e.values,e.pattern),this._type=e.pattern}static getDefaults(){return Object.assign(go.getDefaults(),{pattern:"up",values:[],callback:Qr})}_tick(e){const t=this._pattern.next();this._value=t.value,this.callback(e,this._value)}get values(){return this._values}set values(e){this._values=e,this.pattern=this._type}get value(){return this._value}get pattern(){return this._type}set pattern(e){this._type=e,this._pattern=_o(this._values,this._type)}}class Io extends mo{constructor(){super(Or(Io.getDefaults(),arguments,["callback","events","subdivision"])),this.name="Sequence",this._part=new yo({callback:this._seqCallback.bind(this),context:this.context}),this._events=[],this._eventsArray=[];const e=Or(Io.getDefaults(),arguments,["callback","events","subdivision"]);this._subdivision=this.toTicks(e.subdivision),this.events=e.events,this.loop=e.loop,this.loopStart=e.loopStart,this.loopEnd=e.loopEnd,this.playbackRate=e.playbackRate,this.probability=e.probability,this.humanize=e.humanize,this.mute=e.mute,this.playbackRate=e.playbackRate}static getDefaults(){return Object.assign(Mr(mo.getDefaults(),["value"]),{events:[],loop:!0,loopEnd:0,loopStart:0,subdivision:"8n"})}_seqCallback(e,t){null!==t&&this.callback(e,t)}get events(){return this._events}set events(e){this.clear(),this._eventsArray=e,this._events=this._createSequence(this._eventsArray),this._eventsUpdated()}start(e,t){return this._part.start(e,t?this._indexTime(t):t),this}stop(e){return this._part.stop(e),this}get subdivision(){return new ji(this.context,this._subdivision).toSeconds()}_createSequence(e){return new Proxy(e,{get:(e,t)=>e[t],set:(e,t,n)=>(br(t)&&isFinite(parseInt(t,10))&&yr(n)?e[t]=this._createSequence(n):e[t]=n,this._eventsUpdated(),!0)})}_eventsUpdated(){this._part.clear(),this._rescheduleSequence(this._eventsArray,this._subdivision,this.startOffset),this.loopEnd=this.loopEnd}_rescheduleSequence(e,t,n){e.forEach(((e,s)=>{const r=s*t+n;if(yr(e))this._rescheduleSequence(e,t/e.length,r);else{const t=new ji(this.context,r,"i").toSeconds();this._part.add(t,e)}}))}_indexTime(e){return new ji(this.context,e*this._subdivision+this.startOffset).toSeconds()}clear(){return this._part.clear(),this}dispose(){return super.dispose(),this._part.dispose(),this}get loop(){return this._part.loop}set loop(e){this._part.loop=e}get loopStart(){return this._loopStart}set loopStart(e){this._loopStart=e,this._part.loopStart=this._indexTime(e)}get loopEnd(){return this._loopEnd}set loopEnd(e){this._loopEnd=e,this._part.loopEnd=0===e?this._indexTime(this._eventsArray.length):this._indexTime(e)}get startOffset(){return this._part.startOffset}set startOffset(e){this._part.startOffset=e}get playbackRate(){return this._part.playbackRate}set playbackRate(e){this._part.playbackRate=e}get probability(){return this._part.probability}set probability(e){this._part.probability=e}get progress(){return this._part.progress}get humanize(){return this._part.humanize}set humanize(e){this._part.humanize=e}get length(){return this._part.length}}class To extends Si{constructor(){super(Object.assign(Or(To.getDefaults(),arguments,["fade"]))),this.name="CrossFade",this._panner=this.context.createStereoPanner(),this._split=this.context.createChannelSplitter(2),this._g2a=new Ra({context:this.context}),this.a=new Ti({context:this.context,gain:0}),this.b=new Ti({context:this.context,gain:0}),this.output=new Ti({context:this.context}),this._internalChannels=[this.a,this.b];const e=Or(To.getDefaults(),arguments,["fade"]);this.fade=new Oi({context:this.context,units:"normalRange",value:e.fade}),Zr(this,"fade"),this.context.getConstant(1).connect(this._panner),this._panner.connect(this._split),this._panner.channelCount=1,this._panner.channelCountMode="explicit",Ei(this._split,this.a.gain,0),Ei(this._split,this.b.gain,1),this.fade.chain(this._g2a,this._panner.pan),this.a.connect(this.output),this.b.connect(this.output)}static getDefaults(){return Object.assign(Si.getDefaults(),{fade:.5})}dispose(){return super.dispose(),this.a.dispose(),this.b.dispose(),this.output.dispose(),this.fade.dispose(),this._g2a.dispose(),this._panner.disconnect(),this._split.disconnect(),this}}class No extends Si{constructor(e){super(e),this.name="Effect",this._dryWet=new To({context:this.context}),this.wet=this._dryWet.fade,this.effectSend=new Ti({context:this.context}),this.effectReturn=new Ti({context:this.context}),this.input=new Ti({context:this.context}),this.output=this._dryWet,this.input.fan(this._dryWet.a,this.effectSend),this.effectReturn.connect(this._dryWet.b),this.wet.setValueAtTime(e.wet,0),this._internalChannels=[this.effectReturn,this.effectSend],Zr(this,"wet")}static getDefaults(){return Object.assign(Si.getDefaults(),{wet:1})}connectEffect(e){return this._internalChannels.push(e),this.effectSend.chain(e,this.effectReturn),this}dispose(){return super.dispose(),this._dryWet.dispose(),this.effectSend.dispose(),this.effectReturn.dispose(),this.wet.dispose(),this}}class Ro extends No{constructor(e){super(e),this.name="LFOEffect",this._lfo=new ka({context:this.context,frequency:e.frequency,amplitude:e.depth}),this.depth=this._lfo.amplitude,this.frequency=this._lfo.frequency,this.type=e.type,Zr(this,["frequency","depth"])}static getDefaults(){return Object.assign(No.getDefaults(),{frequency:1,type:"sine",depth:1})}start(e){return this._lfo.start(e),this}stop(e){return this._lfo.stop(e),this}sync(){return this._lfo.sync(),this}unsync(){return this._lfo.unsync(),this}get type(){return this._lfo.type}set type(e){this._lfo.type=e}dispose(){return super.dispose(),this._lfo.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class Oo extends Ro{constructor(){super(Or(Oo.getDefaults(),arguments,["frequency","baseFrequency","octaves"])),this.name="AutoFilter";const e=Or(Oo.getDefaults(),arguments,["frequency","baseFrequency","octaves"]);this.filter=new $a(Object.assign(e.filter,{context:this.context})),this.connectEffect(this.filter),this._lfo.connect(this.filter.frequency),this.octaves=e.octaves,this.baseFrequency=e.baseFrequency}static getDefaults(){return Object.assign(Ro.getDefaults(),{baseFrequency:200,octaves:2.6,filter:{type:"lowpass",rolloff:-12,Q:1}})}get baseFrequency(){return this._lfo.min}set baseFrequency(e){this._lfo.min=this.toFrequency(e),this.octaves=this._octaves}get octaves(){return this._octaves}set octaves(e){this._octaves=e,this._lfo.max=this._lfo.min*Math.pow(2,e)}dispose(){return super.dispose(),this.filter.dispose(),this}}class Do extends Si{constructor(){super(Object.assign(Or(Do.getDefaults(),arguments,["pan"]))),this.name="Panner",this._panner=this.context.createStereoPanner(),this.input=this._panner,this.output=this._panner;const e=Or(Do.getDefaults(),arguments,["pan"]);this.pan=new ki({context:this.context,param:this._panner.pan,value:e.pan,minValue:-1,maxValue:1}),this._panner.channelCount=e.channelCount,this._panner.channelCountMode="explicit",Zr(this,"pan")}static getDefaults(){return Object.assign(Si.getDefaults(),{pan:0,channelCount:1})}dispose(){return super.dispose(),this._panner.disconnect(),this.pan.dispose(),this}}class Mo extends Ro{constructor(){super(Or(Mo.getDefaults(),arguments,["frequency"])),this.name="AutoPanner";const e=Or(Mo.getDefaults(),arguments,["frequency"]);this._panner=new Do({context:this.context,channelCount:e.channelCount}),this.connectEffect(this._panner),this._lfo.connect(this._panner.pan),this._lfo.min=-1,this._lfo.max=1}static getDefaults(){return Object.assign(Ro.getDefaults(),{channelCount:1})}dispose(){return super.dispose(),this._panner.dispose(),this}}class zo extends Si{constructor(){super(Or(zo.getDefaults(),arguments,["smoothing"])),this.name="Follower";const e=Or(zo.getDefaults(),arguments,["smoothing"]);this._abs=this.input=new Na({context:this.context}),this._lowpass=this.output=new uo({context:this.context,frequency:1/this.toSeconds(e.smoothing),type:"lowpass"}),this._abs.connect(this._lowpass),this._smoothing=e.smoothing}static getDefaults(){return Object.assign(Si.getDefaults(),{smoothing:.05})}get smoothing(){return this._smoothing}set smoothing(e){this._smoothing=e,this._lowpass.frequency=1/this.toSeconds(this.smoothing)}dispose(){return super.dispose(),this._abs.dispose(),this._lowpass.dispose(),this}}class Fo extends No{constructor(){super(Or(Fo.getDefaults(),arguments,["baseFrequency","octaves","sensitivity"])),this.name="AutoWah";const e=Or(Fo.getDefaults(),arguments,["baseFrequency","octaves","sensitivity"]);this._follower=new zo({context:this.context,smoothing:e.follower}),this._sweepRange=new Ba({context:this.context,min:0,max:1,exponent:.5}),this._baseFrequency=this.toFrequency(e.baseFrequency),this._octaves=e.octaves,this._inputBoost=new Ti({context:this.context}),this._bandpass=new $a({context:this.context,rolloff:-48,frequency:0,Q:e.Q}),this._peaking=new $a({context:this.context,type:"peaking"}),this._peaking.gain.value=e.gain,this.gain=this._peaking.gain,this.Q=this._bandpass.Q,this.effectSend.chain(this._inputBoost,this._follower,this._sweepRange),this._sweepRange.connect(this._bandpass.frequency),this._sweepRange.connect(this._peaking.frequency),this.effectSend.chain(this._bandpass,this._peaking,this.effectReturn),this._setSweepRange(),this.sensitivity=e.sensitivity,Zr(this,["gain","Q"])}static getDefaults(){return Object.assign(No.getDefaults(),{baseFrequency:100,octaves:6,sensitivity:0,Q:2,gain:2,follower:.2})}get octaves(){return this._octaves}set octaves(e){this._octaves=e,this._setSweepRange()}get follower(){return this._follower.smoothing}set follower(e){this._follower.smoothing=e}get baseFrequency(){return this._baseFrequency}set baseFrequency(e){this._baseFrequency=this.toFrequency(e),this._setSweepRange()}get sensitivity(){return oi(1/this._inputBoost.gain.value)}set sensitivity(e){this._inputBoost.gain.value=1/ai(e)}_setSweepRange(){this._sweepRange.min=this._baseFrequency,this._sweepRange.max=Math.min(this._baseFrequency*Math.pow(2,this._octaves),this.context.sampleRate/2)}dispose(){return super.dispose(),this._follower.dispose(),this._sweepRange.dispose(),this._bandpass.dispose(),this._peaking.dispose(),this._inputBoost.dispose(),this}}const Bo="bit-crusher";io(Bo,"\n\tclass BitCrusherWorklet extends SingleIOProcessor {\n\n\t\tstatic get parameterDescriptors() {\n\t\t\treturn [{\n\t\t\t\tname: \"bits\",\n\t\t\t\tdefaultValue: 12,\n\t\t\t\tminValue: 1,\n\t\t\t\tmaxValue: 16,\n\t\t\t\tautomationRate: 'k-rate'\n\t\t\t}];\n\t\t}\n\n\t\tgenerate(input, _channel, parameters) {\n\t\t\tconst step = Math.pow(0.5, parameters.bits - 1);\n\t\t\tconst val = step * Math.floor(input / step + 0.5);\n\t\t\treturn val;\n\t\t}\n\t}\n");class Lo extends No{constructor(){super(Or(Lo.getDefaults(),arguments,["bits"])),this.name="BitCrusher";const e=Or(Lo.getDefaults(),arguments,["bits"]);this._bitCrusherWorklet=new Po({context:this.context,bits:e.bits}),this.connectEffect(this._bitCrusherWorklet),this.bits=this._bitCrusherWorklet.bits}static getDefaults(){return Object.assign(No.getDefaults(),{bits:4})}dispose(){return super.dispose(),this._bitCrusherWorklet.dispose(),this}}class Po extends ao{constructor(){super(Or(Po.getDefaults(),arguments)),this.name="BitCrusherWorklet";const e=Or(Po.getDefaults(),arguments);this.input=new Ti({context:this.context}),this.output=new Ti({context:this.context}),this.bits=new ki({context:this.context,value:e.bits,units:"positive",minValue:1,maxValue:16,param:this._dummyParam,swappable:!0})}static getDefaults(){return Object.assign(ao.getDefaults(),{bits:12})}_audioWorkletName(){return Bo}onReady(e){_i(this.input,e,this.output);const t=e.parameters.get("bits");this.bits.setParam(t)}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this.bits.dispose(),this}}class Uo extends No{constructor(){super(Or(Uo.getDefaults(),arguments,["order"])),this.name="Chebyshev";const e=Or(Uo.getDefaults(),arguments,["order"]);this._shaper=new ha({context:this.context,length:4096}),this._order=e.order,this.connectEffect(this._shaper),this.order=e.order,this.oversample=e.oversample}static getDefaults(){return Object.assign(No.getDefaults(),{order:1,oversample:"none"})}_getCoefficient(e,t,n){return n.has(t)||(0===t?n.set(t,0):1===t?n.set(t,e):n.set(t,2*e*this._getCoefficient(e,t-1,n)-this._getCoefficient(e,t-2,n))),n.get(t)}get order(){return this._order}set order(e){this._order=e,this._shaper.setMap((t=>this._getCoefficient(t,e,new Map)))}get oversample(){return this._shaper.oversample}set oversample(e){this._shaper.oversample=e}dispose(){return super.dispose(),this._shaper.dispose(),this}}class Vo extends Si{constructor(){super(Or(Vo.getDefaults(),arguments,["channels"])),this.name="Split";const e=Or(Vo.getDefaults(),arguments,["channels"]);this._splitter=this.input=this.output=this.context.createChannelSplitter(e.channels),this._internalChannels=[this._splitter]}static getDefaults(){return Object.assign(Si.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._splitter.disconnect(),this}}class Wo extends Si{constructor(){super(Or(Wo.getDefaults(),arguments,["channels"])),this.name="Merge";const e=Or(Wo.getDefaults(),arguments,["channels"]);this._merger=this.output=this.input=this.context.createChannelMerger(e.channels)}static getDefaults(){return Object.assign(Si.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._merger.disconnect(),this}}class jo extends Si{constructor(e){super(e),this.name="StereoEffect",this.input=new Ti({context:this.context}),this.input.channelCount=2,this.input.channelCountMode="explicit",this._dryWet=this.output=new To({context:this.context,fade:e.wet}),this.wet=this._dryWet.fade,this._split=new Vo({context:this.context,channels:2}),this._merge=new Wo({context:this.context,channels:2}),this.input.connect(this._split),this.input.connect(this._dryWet.a),this._merge.connect(this._dryWet.b),Zr(this,["wet"])}connectEffectLeft(...e){this._split.connect(e[0],0,0),_i(...e),Ei(e[e.length-1],this._merge,0,0)}connectEffectRight(...e){this._split.connect(e[0],1,0),_i(...e),Ei(e[e.length-1],this._merge,0,1)}static getDefaults(){return Object.assign(Si.getDefaults(),{wet:1})}dispose(){return super.dispose(),this._dryWet.dispose(),this._split.dispose(),this._merge.dispose(),this}}class Go extends jo{constructor(e){super(e),this.feedback=new Oi({context:this.context,value:e.feedback,units:"normalRange"}),this._feedbackL=new Ti({context:this.context}),this._feedbackR=new Ti({context:this.context}),this._feedbackSplit=new Vo({context:this.context,channels:2}),this._feedbackMerge=new Wo({context:this.context,channels:2}),this._merge.connect(this._feedbackSplit),this._feedbackMerge.connect(this._split),this._feedbackSplit.connect(this._feedbackL,0,0),this._feedbackL.connect(this._feedbackMerge,0,0),this._feedbackSplit.connect(this._feedbackR,1,0),this._feedbackR.connect(this._feedbackMerge,0,1),this.feedback.fan(this._feedbackL.gain,this._feedbackR.gain),Zr(this,["feedback"])}static getDefaults(){return Object.assign(jo.getDefaults(),{feedback:.5})}dispose(){return super.dispose(),this.feedback.dispose(),this._feedbackL.dispose(),this._feedbackR.dispose(),this._feedbackSplit.dispose(),this._feedbackMerge.dispose(),this}}class qo extends Go{constructor(){super(Or(qo.getDefaults(),arguments,["frequency","delayTime","depth"])),this.name="Chorus";const e=Or(qo.getDefaults(),arguments,["frequency","delayTime","depth"]);this._depth=e.depth,this._delayTime=e.delayTime/1e3,this._lfoL=new ka({context:this.context,frequency:e.frequency,min:0,max:1}),this._lfoR=new ka({context:this.context,frequency:e.frequency,min:0,max:1,phase:180}),this._delayNodeL=new Li({context:this.context}),this._delayNodeR=new Li({context:this.context}),this.frequency=this._lfoL.frequency,Zr(this,["frequency"]),this._lfoL.frequency.connect(this._lfoR.frequency),this.connectEffectLeft(this._delayNodeL),this.connectEffectRight(this._delayNodeR),this._lfoL.connect(this._delayNodeL.delayTime),this._lfoR.connect(this._delayNodeR.delayTime),this.depth=this._depth,this.type=e.type,this.spread=e.spread}static getDefaults(){return Object.assign(Go.getDefaults(),{frequency:1.5,delayTime:3.5,depth:.7,type:"sine",spread:180,feedback:0,wet:.5})}get depth(){return this._depth}set depth(e){this._depth=e;const t=this._delayTime*e;this._lfoL.min=Math.max(this._delayTime-t,0),this._lfoL.max=this._delayTime+t,this._lfoR.min=Math.max(this._delayTime-t,0),this._lfoR.max=this._delayTime+t}get delayTime(){return 1e3*this._delayTime}set delayTime(e){this._delayTime=e/1e3,this.depth=this._depth}get type(){return this._lfoL.type}set type(e){this._lfoL.type=e,this._lfoR.type=e}get spread(){return this._lfoR.phase-this._lfoL.phase}set spread(e){this._lfoL.phase=90-e/2,this._lfoR.phase=e/2+90}start(e){return this._lfoL.start(e),this._lfoR.start(e),this}stop(e){return this._lfoL.stop(e),this._lfoR.stop(e),this}sync(){return this._lfoL.sync(),this._lfoR.sync(),this}unsync(){return this._lfoL.unsync(),this._lfoR.unsync(),this}dispose(){return super.dispose(),this._lfoL.dispose(),this._lfoR.dispose(),this._delayNodeL.dispose(),this._delayNodeR.dispose(),this.frequency.dispose(),this}}class Ho extends No{constructor(){super(Or(Ho.getDefaults(),arguments,["distortion"])),this.name="Distortion";const e=Or(Ho.getDefaults(),arguments,["distortion"]);this._shaper=new ha({context:this.context,length:4096}),this._distortion=e.distortion,this.connectEffect(this._shaper),this.distortion=e.distortion,this.oversample=e.oversample}static getDefaults(){return Object.assign(No.getDefaults(),{distortion:.4,oversample:"none"})}get distortion(){return this._distortion}set distortion(e){this._distortion=e;const t=100*e,n=Math.PI/180;this._shaper.setMap((e=>Math.abs(e)<.001?0:(3+t)*e*20*n/(Math.PI+t*Math.abs(e))))}get oversample(){return this._shaper.oversample}set oversample(e){this._shaper.oversample=e}dispose(){return super.dispose(),this._shaper.dispose(),this}}class Ko extends No{constructor(e){super(e),this.name="FeedbackEffect",this._feedbackGain=new Ti({context:this.context,gain:e.feedback,units:"normalRange"}),this.feedback=this._feedbackGain.gain,Zr(this,"feedback"),this.effectReturn.chain(this._feedbackGain,this.effectSend)}static getDefaults(){return Object.assign(No.getDefaults(),{feedback:.125})}dispose(){return super.dispose(),this._feedbackGain.dispose(),this.feedback.dispose(),this}}class $o extends Ko{constructor(){super(Or($o.getDefaults(),arguments,["delayTime","feedback"])),this.name="FeedbackDelay";const e=Or($o.getDefaults(),arguments,["delayTime","feedback"]);this._delayNode=new Li({context:this.context,delayTime:e.delayTime,maxDelay:e.maxDelay}),this.delayTime=this._delayNode.delayTime,this.connectEffect(this._delayNode),Zr(this,"delayTime")}static getDefaults(){return Object.assign(Ko.getDefaults(),{delayTime:.25,maxDelay:1})}dispose(){return super.dispose(),this._delayNode.dispose(),this.delayTime.dispose(),this}}class Xo extends Si{constructor(e){super(e),this.name="PhaseShiftAllpass",this.input=new Ti({context:this.context}),this.output=new Ti({context:this.context}),this.offset90=new Ti({context:this.context});this._bank0=this._createAllPassFilterBank([.6923878,.9360654322959,.988229522686,.9987488452737]),this._bank1=this._createAllPassFilterBank([.4021921162426,.856171088242,.9722909545651,.9952884791278]),this._oneSampleDelay=this.context.createIIRFilter([0,1],[1,0]),_i(this.input,...this._bank0,this._oneSampleDelay,this.output),_i(this.input,...this._bank1,this.offset90)}_createAllPassFilterBank(e){return e.map((e=>{const t=[[e*e,0,-1],[1,0,-e*e]];return this.context.createIIRFilter(t[0],t[1])}))}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this.offset90.dispose(),this._bank0.forEach((e=>e.disconnect())),this._bank1.forEach((e=>e.disconnect())),this._oneSampleDelay.disconnect(),this}}class Zo extends No{constructor(){super(Or(Zo.getDefaults(),arguments,["frequency"])),this.name="FrequencyShifter";const e=Or(Zo.getDefaults(),arguments,["frequency"]);this.frequency=new Oi({context:this.context,units:"frequency",value:e.frequency,minValue:-this.context.sampleRate/2,maxValue:this.context.sampleRate/2}),this._sine=new la({context:this.context,type:"sine"}),this._cosine=new ua({context:this.context,phase:-90,type:"sine"}),this._sineMultiply=new pa({context:this.context}),this._cosineMultiply=new pa({context:this.context}),this._negate=new Oa({context:this.context}),this._add=new xa({context:this.context}),this._phaseShifter=new Xo({context:this.context}),this.effectSend.connect(this._phaseShifter),this.frequency.fan(this._sine.frequency,this._cosine.frequency),this._phaseShifter.offset90.connect(this._cosineMultiply),this._cosine.connect(this._cosineMultiply.factor),this._phaseShifter.connect(this._sineMultiply),this._sine.connect(this._sineMultiply.factor),this._sineMultiply.connect(this._negate),this._cosineMultiply.connect(this._add),this._negate.connect(this._add.addend),this._add.connect(this.effectReturn);const t=this.immediate();this._sine.start(t),this._cosine.start(t)}static getDefaults(){return Object.assign(No.getDefaults(),{frequency:0})}dispose(){return super.dispose(),this.frequency.dispose(),this._add.dispose(),this._cosine.dispose(),this._cosineMultiply.dispose(),this._negate.dispose(),this._phaseShifter.dispose(),this._sine.dispose(),this._sineMultiply.dispose(),this}}const Yo=[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100],Qo=[225,556,441,341];class Jo extends jo{constructor(){super(Or(Jo.getDefaults(),arguments,["roomSize","dampening"])),this.name="Freeverb",this._combFilters=[],this._allpassFiltersL=[],this._allpassFiltersR=[];const e=Or(Jo.getDefaults(),arguments,["roomSize","dampening"]);this.roomSize=new Oi({context:this.context,value:e.roomSize,units:"normalRange"}),this._allpassFiltersL=Qo.map((e=>{const t=this.context.createBiquadFilter();return t.type="allpass",t.frequency.value=e,t})),this._allpassFiltersR=Qo.map((e=>{const t=this.context.createBiquadFilter();return t.type="allpass",t.frequency.value=e,t})),this._combFilters=Yo.map(((t,n)=>{const s=new co({context:this.context,dampening:e.dampening,delayTime:t});return nt.dampening=e))}dispose(){return super.dispose(),this._allpassFiltersL.forEach((e=>e.disconnect())),this._allpassFiltersR.forEach((e=>e.disconnect())),this._combFilters.forEach((e=>e.dispose())),this.roomSize.dispose(),this}}const el=[.06748,.06404,.08212,.09004],tl=[.773,.802,.753,.733],nl=[347,113,37];class sl extends jo{constructor(){super(Or(sl.getDefaults(),arguments,["roomSize"])),this.name="JCReverb",this._allpassFilters=[],this._feedbackCombFilters=[];const e=Or(sl.getDefaults(),arguments,["roomSize"]);this.roomSize=new Oi({context:this.context,value:e.roomSize,units:"normalRange"}),this._scaleRoomSize=new Aa({context:this.context,min:-.733,max:.197}),this._allpassFilters=nl.map((e=>{const t=this.context.createBiquadFilter();return t.type="allpass",t.frequency.value=e,t})),this._feedbackCombFilters=el.map(((e,t)=>{const n=new lo({context:this.context,delayTime:e});return this._scaleRoomSize.connect(n.resonance),n.resonance.value=tl[t],te.disconnect())),this._feedbackCombFilters.forEach((e=>e.dispose())),this.roomSize.dispose(),this._scaleRoomSize.dispose(),this}}class rl extends Go{constructor(e){super(e),this._feedbackL.disconnect(),this._feedbackL.connect(this._feedbackMerge,0,1),this._feedbackR.disconnect(),this._feedbackR.connect(this._feedbackMerge,0,0),Zr(this,["feedback"])}}class il extends rl{constructor(){super(Or(il.getDefaults(),arguments,["delayTime","feedback"])),this.name="PingPongDelay";const e=Or(il.getDefaults(),arguments,["delayTime","feedback"]);this._leftDelay=new Li({context:this.context,maxDelay:e.maxDelay}),this._rightDelay=new Li({context:this.context,maxDelay:e.maxDelay}),this._rightPreDelay=new Li({context:this.context,maxDelay:e.maxDelay}),this.delayTime=new Oi({context:this.context,units:"time",value:e.delayTime}),this.connectEffectLeft(this._leftDelay),this.connectEffectRight(this._rightPreDelay,this._rightDelay),this.delayTime.fan(this._leftDelay.delayTime,this._rightDelay.delayTime,this._rightPreDelay.delayTime),this._feedbackL.disconnect(),this._feedbackL.connect(this._rightDelay),Zr(this,["delayTime"])}static getDefaults(){return Object.assign(rl.getDefaults(),{delayTime:.25,maxDelay:1})}dispose(){return super.dispose(),this._leftDelay.dispose(),this._rightDelay.dispose(),this._rightPreDelay.dispose(),this.delayTime.dispose(),this}}class al extends Ko{constructor(){super(Or(al.getDefaults(),arguments,["pitch"])),this.name="PitchShift";const e=Or(al.getDefaults(),arguments,["pitch"]);this._frequency=new Oi({context:this.context}),this._delayA=new Li({maxDelay:1,context:this.context}),this._lfoA=new ka({context:this.context,min:0,max:.1,type:"sawtooth"}).connect(this._delayA.delayTime),this._delayB=new Li({maxDelay:1,context:this.context}),this._lfoB=new ka({context:this.context,min:0,max:.1,type:"sawtooth",phase:180}).connect(this._delayB.delayTime),this._crossFade=new To({context:this.context}),this._crossFadeLFO=new ka({context:this.context,min:0,max:1,type:"triangle",phase:90}).connect(this._crossFade.fade),this._feedbackDelay=new Li({delayTime:e.delayTime,context:this.context}),this.delayTime=this._feedbackDelay.delayTime,Zr(this,"delayTime"),this._pitch=e.pitch,this._windowSize=e.windowSize,this._delayA.connect(this._crossFade.a),this._delayB.connect(this._crossFade.b),this._frequency.fan(this._lfoA.frequency,this._lfoB.frequency,this._crossFadeLFO.frequency),this.effectSend.fan(this._delayA,this._delayB),this._crossFade.chain(this._feedbackDelay,this.effectReturn);const t=this.now();this._lfoA.start(t),this._lfoB.start(t),this._crossFadeLFO.start(t),this.windowSize=this._windowSize}static getDefaults(){return Object.assign(Ko.getDefaults(),{pitch:0,windowSize:.1,delayTime:0,feedback:0})}get pitch(){return this._pitch}set pitch(e){this._pitch=e;let t=0;e<0?(this._lfoA.min=0,this._lfoA.max=this._windowSize,this._lfoB.min=0,this._lfoB.max=this._windowSize,t=li(e-1)+1):(this._lfoA.min=this._windowSize,this._lfoA.max=0,this._lfoB.min=this._windowSize,this._lfoB.max=0,t=li(e)-1),this._frequency.value=t*(1.2/this._windowSize)}get windowSize(){return this._windowSize}set windowSize(e){this._windowSize=this.toSeconds(e),this.pitch=this._pitch}dispose(){return super.dispose(),this._frequency.dispose(),this._delayA.dispose(),this._delayB.dispose(),this._lfoA.dispose(),this._lfoB.dispose(),this._crossFade.dispose(),this._crossFadeLFO.dispose(),this._feedbackDelay.dispose(),this}}class ol extends jo{constructor(){super(Or(ol.getDefaults(),arguments,["frequency","octaves","baseFrequency"])),this.name="Phaser";const e=Or(ol.getDefaults(),arguments,["frequency","octaves","baseFrequency"]);this._lfoL=new ka({context:this.context,frequency:e.frequency,min:0,max:1}),this._lfoR=new ka({context:this.context,frequency:e.frequency,min:0,max:1,phase:180}),this._baseFrequency=this.toFrequency(e.baseFrequency),this._octaves=e.octaves,this.Q=new Oi({context:this.context,value:e.Q,units:"positive"}),this._filtersL=this._makeFilters(e.stages,this._lfoL),this._filtersR=this._makeFilters(e.stages,this._lfoR),this.frequency=this._lfoL.frequency,this.frequency.value=e.frequency,this.connectEffectLeft(...this._filtersL),this.connectEffectRight(...this._filtersR),this._lfoL.frequency.connect(this._lfoR.frequency),this.baseFrequency=e.baseFrequency,this.octaves=e.octaves,this._lfoL.start(),this._lfoR.start(),Zr(this,["frequency","Q"])}static getDefaults(){return Object.assign(jo.getDefaults(),{frequency:.5,octaves:3,stages:10,Q:10,baseFrequency:350})}_makeFilters(e,t){const n=[];for(let s=0;se.disconnect())),this._filtersR.forEach((e=>e.disconnect())),this.frequency.dispose(),this}}class ll extends No{constructor(){super(Or(ll.getDefaults(),arguments,["decay"])),this.name="Reverb",this._convolver=this.context.createConvolver(),this.ready=Promise.resolve();const e=Or(ll.getDefaults(),arguments,["decay"]);this._decay=e.decay,this._preDelay=e.preDelay,this.generate(),this.connectEffect(this._convolver)}static getDefaults(){return Object.assign(No.getDefaults(),{decay:1.5,preDelay:.01})}get decay(){return this._decay}set decay(e){ir(e=this.toSeconds(e),.001),this._decay=e,this.generate()}get preDelay(){return this._preDelay}set preDelay(e){ir(e=this.toSeconds(e),0),this._preDelay=e,this.generate()}generate(){return Cr(this,void 0,void 0,(function*(){const e=this.ready,t=new ei(2,this._decay+this._preDelay,this.context.sampleRate),n=new na({context:t}),s=new na({context:t}),r=new Wo({context:t});n.connect(r,0,0),s.connect(r,0,1);const i=new Ti({context:t}).toDestination();r.connect(i),n.start(0),s.start(0),i.gain.setValueAtTime(0,0),i.gain.setValueAtTime(1,this._preDelay),i.gain.exponentialApproachValueAtTime(0,this._preDelay,this.decay);const a=t.render();return this.ready=a.then(Qr),yield e,this._convolver.buffer=(yield a).get(),this}))}dispose(){return super.dispose(),this._convolver.disconnect(),this}}class ul extends Si{constructor(){super(Or(ul.getDefaults(),arguments)),this.name="MidSideSplit",this._split=this.input=new Vo({channels:2,context:this.context}),this._midAdd=new xa({context:this.context}),this.mid=new pa({context:this.context,value:Math.SQRT1_2}),this._sideSubtract=new Da({context:this.context}),this.side=new pa({context:this.context,value:Math.SQRT1_2}),this._split.connect(this._midAdd,0),this._split.connect(this._midAdd.addend,1),this._split.connect(this._sideSubtract,0),this._split.connect(this._sideSubtract.subtrahend,1),this._midAdd.connect(this.mid),this._sideSubtract.connect(this.side)}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._midAdd.dispose(),this._sideSubtract.dispose(),this._split.dispose(),this}}class cl extends Si{constructor(){super(Or(cl.getDefaults(),arguments)),this.name="MidSideMerge",this.mid=new Ti({context:this.context}),this.side=new Ti({context:this.context}),this._left=new xa({context:this.context}),this._leftMult=new pa({context:this.context,value:Math.SQRT1_2}),this._right=new Da({context:this.context}),this._rightMult=new pa({context:this.context,value:Math.SQRT1_2}),this._merge=this.output=new Wo({context:this.context}),this.mid.fan(this._left),this.side.connect(this._left.addend),this.mid.connect(this._right),this.side.connect(this._right.subtrahend),this._left.connect(this._leftMult),this._right.connect(this._rightMult),this._leftMult.connect(this._merge,0,0),this._rightMult.connect(this._merge,0,1)}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._leftMult.dispose(),this._rightMult.dispose(),this._left.dispose(),this._right.dispose(),this}}class hl extends No{constructor(e){super(e),this.name="MidSideEffect",this._midSideMerge=new cl({context:this.context}),this._midSideSplit=new ul({context:this.context}),this._midSend=this._midSideSplit.mid,this._sideSend=this._midSideSplit.side,this._midReturn=this._midSideMerge.mid,this._sideReturn=this._midSideMerge.side,this.effectSend.connect(this._midSideSplit),this._midSideMerge.connect(this.effectReturn)}connectEffectMid(...e){this._midSend.chain(...e,this._midReturn)}connectEffectSide(...e){this._sideSend.chain(...e,this._sideReturn)}dispose(){return super.dispose(),this._midSideSplit.dispose(),this._midSideMerge.dispose(),this._midSend.dispose(),this._sideSend.dispose(),this._midReturn.dispose(),this._sideReturn.dispose(),this}}class dl extends hl{constructor(){super(Or(dl.getDefaults(),arguments,["width"])),this.name="StereoWidener";const e=Or(dl.getDefaults(),arguments,["width"]);this.width=new Oi({context:this.context,value:e.width,units:"normalRange"}),Zr(this,["width"]),this._twoTimesWidthMid=new pa({context:this.context,value:2}),this._twoTimesWidthSide=new pa({context:this.context,value:2}),this._midMult=new pa({context:this.context}),this._twoTimesWidthMid.connect(this._midMult.factor),this.connectEffectMid(this._midMult),this._oneMinusWidth=new Da({context:this.context}),this._oneMinusWidth.connect(this._twoTimesWidthMid),Ei(this.context.getConstant(1),this._oneMinusWidth),this.width.connect(this._oneMinusWidth.subtrahend),this._sideMult=new pa({context:this.context}),this.width.connect(this._twoTimesWidthSide),this._twoTimesWidthSide.connect(this._sideMult.factor),this.connectEffectSide(this._sideMult)}static getDefaults(){return Object.assign(hl.getDefaults(),{width:.5})}dispose(){return super.dispose(),this.width.dispose(),this._midMult.dispose(),this._sideMult.dispose(),this._twoTimesWidthMid.dispose(),this._twoTimesWidthSide.dispose(),this._oneMinusWidth.dispose(),this}}class pl extends jo{constructor(){super(Or(pl.getDefaults(),arguments,["frequency","depth"])),this.name="Tremolo";const e=Or(pl.getDefaults(),arguments,["frequency","depth"]);this._lfoL=new ka({context:this.context,type:e.type,min:1,max:0}),this._lfoR=new ka({context:this.context,type:e.type,min:1,max:0}),this._amplitudeL=new Ti({context:this.context}),this._amplitudeR=new Ti({context:this.context}),this.frequency=new Oi({context:this.context,value:e.frequency,units:"frequency"}),this.depth=new Oi({context:this.context,value:e.depth,units:"normalRange"}),Zr(this,["frequency","depth"]),this.connectEffectLeft(this._amplitudeL),this.connectEffectRight(this._amplitudeR),this._lfoL.connect(this._amplitudeL.gain),this._lfoR.connect(this._amplitudeR.gain),this.frequency.fan(this._lfoL.frequency,this._lfoR.frequency),this.depth.fan(this._lfoR.amplitude,this._lfoL.amplitude),this.spread=e.spread}static getDefaults(){return Object.assign(jo.getDefaults(),{frequency:10,type:"sine",depth:.5,spread:180})}start(e){return this._lfoL.start(e),this._lfoR.start(e),this}stop(e){return this._lfoL.stop(e),this._lfoR.stop(e),this}sync(){return this._lfoL.sync(),this._lfoR.sync(),this.context.transport.syncSignal(this.frequency),this}unsync(){return this._lfoL.unsync(),this._lfoR.unsync(),this.context.transport.unsyncSignal(this.frequency),this}get type(){return this._lfoL.type}set type(e){this._lfoL.type=e,this._lfoR.type=e}get spread(){return this._lfoR.phase-this._lfoL.phase}set spread(e){this._lfoL.phase=90-e/2,this._lfoR.phase=e/2+90}dispose(){return super.dispose(),this._lfoL.dispose(),this._lfoR.dispose(),this._amplitudeL.dispose(),this._amplitudeR.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class fl extends No{constructor(){super(Or(fl.getDefaults(),arguments,["frequency","depth"])),this.name="Vibrato";const e=Or(fl.getDefaults(),arguments,["frequency","depth"]);this._delayNode=new Li({context:this.context,delayTime:0,maxDelay:e.maxDelay}),this._lfo=new ka({context:this.context,type:e.type,min:0,max:e.maxDelay,frequency:e.frequency,phase:-90}).start().connect(this._delayNode.delayTime),this.frequency=this._lfo.frequency,this.depth=this._lfo.amplitude,this.depth.value=e.depth,Zr(this,["frequency","depth"]),this.effectSend.chain(this._delayNode,this.effectReturn)}static getDefaults(){return Object.assign(No.getDefaults(),{maxDelay:.005,frequency:5,depth:.1,type:"sine"})}get type(){return this._lfo.type}set type(e){this._lfo.type=e}dispose(){return super.dispose(),this._delayNode.dispose(),this._lfo.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class ml extends Si{constructor(){super(Or(ml.getDefaults(),arguments,["type","size"])),this.name="Analyser",this._analysers=[],this._buffers=[];const e=Or(ml.getDefaults(),arguments,["type","size"]);this.input=this.output=this._gain=new Ti({context:this.context}),this._split=new Vo({context:this.context,channels:e.channels}),this.input.connect(this._split),ir(e.channels,1);for(let t=0;t{const n=this._buffers[t];"fft"===this._type?e.getFloatFrequencyData(n):"waveform"===this._type&&e.getFloatTimeDomainData(n)})),1===this.channels?this._buffers[0]:this._buffers}get size(){return this._analysers[0].frequencyBinCount}set size(e){this._analysers.forEach(((t,n)=>{t.fftSize=2*e,this._buffers[n]=new Float32Array(e)}))}get channels(){return this._analysers.length}get type(){return this._type}set type(e){rr("waveform"===e||"fft"===e,`Analyser: invalid type: ${e}`),this._type=e}get smoothing(){return this._analysers[0].smoothingTimeConstant}set smoothing(e){this._analysers.forEach((t=>t.smoothingTimeConstant=e))}dispose(){return super.dispose(),this._analysers.forEach((e=>e.disconnect())),this._split.dispose(),this._gain.dispose(),this}}class gl extends Si{constructor(){super(Or(gl.getDefaults(),arguments)),this.name="MeterBase",this.input=this.output=this._analyser=new ml({context:this.context,size:256,type:"waveform"})}dispose(){return super.dispose(),this._analyser.dispose(),this}}class yl extends gl{constructor(){super(Or(yl.getDefaults(),arguments,["smoothing"])),this.name="Meter",this._rms=0;const e=Or(yl.getDefaults(),arguments,["smoothing"]);this.input=this.output=this._analyser=new ml({context:this.context,size:256,type:"waveform",channels:e.channels}),this.smoothing=e.smoothing,this.normalRange=e.normalRange}static getDefaults(){return Object.assign(gl.getDefaults(),{smoothing:.8,normalRange:!1,channels:1})}getLevel(){return cr("'getLevel' has been changed to 'getValue'"),this.getValue()}getValue(){const e=this._analyser.getValue(),t=(1===this.channels?[e]:e).map((e=>{const t=e.reduce(((e,t)=>e+t*t),0),n=Math.sqrt(t/e.length);return this._rms=Math.max(n,this._rms*this.smoothing),this.normalRange?this._rms:oi(this._rms)}));return 1===this.channels?t[0]:t}get channels(){return this._analyser.channels}dispose(){return super.dispose(),this._analyser.dispose(),this}}class bl extends gl{constructor(){super(Or(bl.getDefaults(),arguments,["size"])),this.name="FFT";const e=Or(bl.getDefaults(),arguments,["size"]);this.normalRange=e.normalRange,this._analyser.type="fft",this.size=e.size}static getDefaults(){return Object.assign(Si.getDefaults(),{normalRange:!1,size:1024,smoothing:.8})}getValue(){return this._analyser.getValue().map((e=>this.normalRange?ai(e):e))}get size(){return this._analyser.size}set size(e){this._analyser.size=e}get smoothing(){return this._analyser.smoothing}set smoothing(e){this._analyser.smoothing=e}getFrequencyOfIndex(e){return rr(0<=e&&ee._updateSolo()))}get muted(){return 0===this.input.gain.value}_addSolo(){xl._soloed.has(this.context)||xl._soloed.set(this.context,new Set),xl._soloed.get(this.context).add(this)}_removeSolo(){xl._soloed.has(this.context)&&xl._soloed.get(this.context).delete(this)}_isSoloed(){return xl._soloed.has(this.context)&&xl._soloed.get(this.context).has(this)}_noSolos(){return!xl._soloed.has(this.context)||xl._soloed.has(this.context)&&0===xl._soloed.get(this.context).size}_updateSolo(){this._isSoloed()||this._noSolos()?this.input.gain.value=1:this.input.gain.value=0}dispose(){return super.dispose(),xl._allSolos.get(this.context).delete(this),this._removeSolo(),this}}xl._allSolos=new Map,xl._soloed=new Map;class Al extends Si{constructor(){super(Or(Al.getDefaults(),arguments,["pan","volume"])),this.name="PanVol";const e=Or(Al.getDefaults(),arguments,["pan","volume"]);this._panner=this.input=new Do({context:this.context,pan:e.pan,channelCount:e.channelCount}),this.pan=this._panner.pan,this._volume=this.output=new $i({context:this.context,volume:e.volume}),this.volume=this._volume.volume,this._panner.connect(this._volume),this.mute=e.mute,Zr(this,["pan","volume"])}static getDefaults(){return Object.assign(Si.getDefaults(),{mute:!1,pan:0,volume:0,channelCount:1})}get mute(){return this._volume.mute}set mute(e){this._volume.mute=e}dispose(){return super.dispose(),this._panner.dispose(),this.pan.dispose(),this._volume.dispose(),this.volume.dispose(),this}}class Cl extends Si{constructor(){super(Or(Cl.getDefaults(),arguments,["volume","pan"])),this.name="Channel";const e=Or(Cl.getDefaults(),arguments,["volume","pan"]);this._solo=this.input=new xl({solo:e.solo,context:this.context}),this._panVol=this.output=new Al({context:this.context,pan:e.pan,volume:e.volume,mute:e.mute,channelCount:e.channelCount}),this.pan=this._panVol.pan,this.volume=this._panVol.volume,this._solo.connect(this._panVol),Zr(this,["pan","volume"])}static getDefaults(){return Object.assign(Si.getDefaults(),{pan:0,volume:0,mute:!1,solo:!1,channelCount:1})}get solo(){return this._solo.solo}set solo(e){this._solo.solo=e}get muted(){return this._solo.muted||this.mute}get mute(){return this._panVol.mute}set mute(e){this._panVol.mute=e}_getBus(e){return Cl.buses.has(e)||Cl.buses.set(e,new Ti({context:this.context})),Cl.buses.get(e)}send(e,t=0){const n=this._getBus(e),s=new Ti({context:this.context,units:"decibels",gain:t});return this.connect(s),s.connect(n),s}receive(e){return this._getBus(e).connect(this),this}dispose(){return super.dispose(),this._panVol.dispose(),this.pan.dispose(),this.volume.dispose(),this._solo.dispose(),this}}Cl.buses=new Map;class kl extends Si{constructor(){super(Or(kl.getDefaults(),arguments)),this.name="Mono",this.input=new Ti({context:this.context}),this._merge=this.output=new Wo({channels:2,context:this.context}),this.input.connect(this._merge,0,0),this.input.connect(this._merge,0,1)}dispose(){return super.dispose(),this._merge.dispose(),this.input.dispose(),this}}class Sl extends Si{constructor(){super(Or(Sl.getDefaults(),arguments,["lowFrequency","highFrequency"])),this.name="MultibandSplit",this.input=new Ti({context:this.context}),this.output=void 0,this.low=new $a({context:this.context,frequency:0,type:"lowpass"}),this._lowMidFilter=new $a({context:this.context,frequency:0,type:"highpass"}),this.mid=new $a({context:this.context,frequency:0,type:"lowpass"}),this.high=new $a({context:this.context,frequency:0,type:"highpass"}),this._internalChannels=[this.low,this.mid,this.high];const e=Or(Sl.getDefaults(),arguments,["lowFrequency","highFrequency"]);this.lowFrequency=new Oi({context:this.context,units:"frequency",value:e.lowFrequency}),this.highFrequency=new Oi({context:this.context,units:"frequency",value:e.highFrequency}),this.Q=new Oi({context:this.context,units:"positive",value:e.Q}),this.input.fan(this.low,this.high),this.input.chain(this._lowMidFilter,this.mid),this.lowFrequency.fan(this.low.frequency,this._lowMidFilter.frequency),this.highFrequency.fan(this.mid.frequency,this.high.frequency),this.Q.connect(this.low.Q),this.Q.connect(this._lowMidFilter.Q),this.Q.connect(this.mid.Q),this.Q.connect(this.high.Q),Zr(this,["high","mid","low","highFrequency","lowFrequency"])}static getDefaults(){return Object.assign(Si.getDefaults(),{Q:1,highFrequency:2500,lowFrequency:400})}dispose(){return super.dispose(),Yr(this,["high","mid","low","highFrequency","lowFrequency"]),this.low.dispose(),this._lowMidFilter.dispose(),this.mid.dispose(),this.high.dispose(),this.lowFrequency.dispose(),this.highFrequency.dispose(),this.Q.dispose(),this}}class _l extends Si{constructor(){super(...arguments),this.name="Listener",this.positionX=new ki({context:this.context,param:this.context.rawContext.listener.positionX}),this.positionY=new ki({context:this.context,param:this.context.rawContext.listener.positionY}),this.positionZ=new ki({context:this.context,param:this.context.rawContext.listener.positionZ}),this.forwardX=new ki({context:this.context,param:this.context.rawContext.listener.forwardX}),this.forwardY=new ki({context:this.context,param:this.context.rawContext.listener.forwardY}),this.forwardZ=new ki({context:this.context,param:this.context.rawContext.listener.forwardZ}),this.upX=new ki({context:this.context,param:this.context.rawContext.listener.upX}),this.upY=new ki({context:this.context,param:this.context.rawContext.listener.upY}),this.upZ=new ki({context:this.context,param:this.context.rawContext.listener.upZ})}static getDefaults(){return Object.assign(Si.getDefaults(),{positionX:0,positionY:0,positionZ:0,forwardX:0,forwardY:0,forwardZ:-1,upX:0,upY:1,upZ:0})}dispose(){return super.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this.forwardX.dispose(),this.forwardY.dispose(),this.forwardZ.dispose(),this.upX.dispose(),this.upY.dispose(),this.upZ.dispose(),this}}Gr((e=>{e.listener=new _l({context:e})})),Hr((e=>{e.listener.dispose()}));class El extends Si{constructor(){super(Or(El.getDefaults(),arguments,["positionX","positionY","positionZ"])),this.name="Panner3D";const e=Or(El.getDefaults(),arguments,["positionX","positionY","positionZ"]);this._panner=this.input=this.output=this.context.createPanner(),this.panningModel=e.panningModel,this.maxDistance=e.maxDistance,this.distanceModel=e.distanceModel,this.coneOuterGain=e.coneOuterGain,this.coneOuterAngle=e.coneOuterAngle,this.coneInnerAngle=e.coneInnerAngle,this.refDistance=e.refDistance,this.rolloffFactor=e.rolloffFactor,this.positionX=new ki({context:this.context,param:this._panner.positionX,value:e.positionX}),this.positionY=new ki({context:this.context,param:this._panner.positionY,value:e.positionY}),this.positionZ=new ki({context:this.context,param:this._panner.positionZ,value:e.positionZ}),this.orientationX=new ki({context:this.context,param:this._panner.orientationX,value:e.orientationX}),this.orientationY=new ki({context:this.context,param:this._panner.orientationY,value:e.orientationY}),this.orientationZ=new ki({context:this.context,param:this._panner.orientationZ,value:e.orientationZ})}static getDefaults(){return Object.assign(Si.getDefaults(),{coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:0,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1})}setPosition(e,t,n){return this.positionX.value=e,this.positionY.value=t,this.positionZ.value=n,this}setOrientation(e,t,n){return this.orientationX.value=e,this.orientationY.value=t,this.orientationZ.value=n,this}get panningModel(){return this._panner.panningModel}set panningModel(e){this._panner.panningModel=e}get refDistance(){return this._panner.refDistance}set refDistance(e){this._panner.refDistance=e}get rolloffFactor(){return this._panner.rolloffFactor}set rolloffFactor(e){this._panner.rolloffFactor=e}get distanceModel(){return this._panner.distanceModel}set distanceModel(e){this._panner.distanceModel=e}get coneInnerAngle(){return this._panner.coneInnerAngle}set coneInnerAngle(e){this._panner.coneInnerAngle=e}get coneOuterAngle(){return this._panner.coneOuterAngle}set coneOuterAngle(e){this._panner.coneOuterAngle=e}get coneOuterGain(){return this._panner.coneOuterGain}set coneOuterGain(e){this._panner.coneOuterGain=e}get maxDistance(){return this._panner.maxDistance}set maxDistance(e){this._panner.maxDistance=e}dispose(){return super.dispose(),this._panner.disconnect(),this.orientationX.dispose(),this.orientationY.dispose(),this.orientationZ.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this}}class Il extends Si{constructor(){super(Or(Il.getDefaults(),arguments)),this.name="Recorder";const e=Or(Il.getDefaults(),arguments);this.input=new Ti({context:this.context}),rr(Il.supported,"Media Recorder API is not available"),this._stream=this.context.createMediaStreamDestination(),this.input.connect(this._stream),this._recorder=new MediaRecorder(this._stream.stream,{mimeType:e.mimeType})}static getDefaults(){return Si.getDefaults()}get mimeType(){return this._recorder.mimeType}static get supported(){return null!==vr&&Reflect.has(vr,"MediaRecorder")}get state(){return"inactive"===this._recorder.state?"stopped":"paused"===this._recorder.state?"paused":"started"}start(){return Cr(this,void 0,void 0,(function*(){rr("started"!==this.state,"Recorder is already started");const e=new Promise((e=>{const t=()=>{this._recorder.removeEventListener("start",t,!1),e()};this._recorder.addEventListener("start",t,!1)}));return this._recorder.start(),yield e}))}stop(){return Cr(this,void 0,void 0,(function*(){rr("stopped"!==this.state,"Recorder is not started");const e=new Promise((e=>{const t=n=>{this._recorder.removeEventListener("dataavailable",t,!1),e(n.data)};this._recorder.addEventListener("dataavailable",t,!1)}));return this._recorder.stop(),yield e}))}pause(){return rr("started"===this.state,"Recorder must be started"),this._recorder.pause(),this}dispose(){return super.dispose(),this.input.dispose(),this._stream.disconnect(),this}}class Tl extends Si{constructor(){super(Or(Tl.getDefaults(),arguments,["threshold","ratio"])),this.name="Compressor",this._compressor=this.context.createDynamicsCompressor(),this.input=this._compressor,this.output=this._compressor;const e=Or(Tl.getDefaults(),arguments,["threshold","ratio"]);this.threshold=new ki({minValue:this._compressor.threshold.minValue,maxValue:this._compressor.threshold.maxValue,context:this.context,convert:!1,param:this._compressor.threshold,units:"decibels",value:e.threshold}),this.attack=new ki({minValue:this._compressor.attack.minValue,maxValue:this._compressor.attack.maxValue,context:this.context,param:this._compressor.attack,units:"time",value:e.attack}),this.release=new ki({minValue:this._compressor.release.minValue,maxValue:this._compressor.release.maxValue,context:this.context,param:this._compressor.release,units:"time",value:e.release}),this.knee=new ki({minValue:this._compressor.knee.minValue,maxValue:this._compressor.knee.maxValue,context:this.context,convert:!1,param:this._compressor.knee,units:"decibels",value:e.knee}),this.ratio=new ki({minValue:this._compressor.ratio.minValue,maxValue:this._compressor.ratio.maxValue,context:this.context,convert:!1,param:this._compressor.ratio,units:"positive",value:e.ratio}),Zr(this,["knee","release","attack","ratio","threshold"])}static getDefaults(){return Object.assign(Si.getDefaults(),{attack:.003,knee:30,ratio:12,release:.25,threshold:-24})}get reduction(){return this._compressor.reduction}dispose(){return super.dispose(),this._compressor.disconnect(),this.attack.dispose(),this.release.dispose(),this.threshold.dispose(),this.ratio.dispose(),this.knee.dispose(),this}}class Nl extends Si{constructor(){super(Object.assign(Or(Nl.getDefaults(),arguments,["threshold","smoothing"]))),this.name="Gate";const e=Or(Nl.getDefaults(),arguments,["threshold","smoothing"]);this._follower=new zo({context:this.context,smoothing:e.smoothing}),this._gt=new za({context:this.context,value:ai(e.threshold)}),this.input=new Ti({context:this.context}),this._gate=this.output=new Ti({context:this.context}),this.input.connect(this._gate),this.input.chain(this._follower,this._gt,this._gate.gain)}static getDefaults(){return Object.assign(Si.getDefaults(),{smoothing:.1,threshold:-40})}get threshold(){return oi(this._gt.value)}set threshold(e){this._gt.value=ai(e)}get smoothing(){return this._follower.smoothing}set smoothing(e){this._follower.smoothing=e}dispose(){return super.dispose(),this.input.dispose(),this._follower.dispose(),this._gt.dispose(),this._gate.dispose(),this}}class Rl extends Si{constructor(){super(Object.assign(Or(Rl.getDefaults(),arguments,["threshold"]))),this.name="Limiter";const e=Or(Rl.getDefaults(),arguments,["threshold"]);this._compressor=this.input=this.output=new Tl({context:this.context,ratio:20,attack:.003,release:.01,threshold:e.threshold}),this.threshold=this._compressor.threshold,Zr(this,"threshold")}static getDefaults(){return Object.assign(Si.getDefaults(),{threshold:-12})}get reduction(){return this._compressor.reduction}dispose(){return super.dispose(),this._compressor.dispose(),this.threshold.dispose(),this}}class Ol extends Si{constructor(){super(Object.assign(Or(Ol.getDefaults(),arguments))),this.name="MidSideCompressor";const e=Or(Ol.getDefaults(),arguments);this._midSideSplit=this.input=new ul({context:this.context}),this._midSideMerge=this.output=new cl({context:this.context}),this.mid=new Tl(Object.assign(e.mid,{context:this.context})),this.side=new Tl(Object.assign(e.side,{context:this.context})),this._midSideSplit.mid.chain(this.mid,this._midSideMerge.mid),this._midSideSplit.side.chain(this.side,this._midSideMerge.side),Zr(this,["mid","side"])}static getDefaults(){return Object.assign(Si.getDefaults(),{mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},side:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10}})}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._midSideSplit.dispose(),this._midSideMerge.dispose(),this}}class Dl extends Si{constructor(){super(Object.assign(Or(Dl.getDefaults(),arguments))),this.name="MultibandCompressor";const e=Or(Dl.getDefaults(),arguments);this._splitter=this.input=new Sl({context:this.context,lowFrequency:e.lowFrequency,highFrequency:e.highFrequency}),this.lowFrequency=this._splitter.lowFrequency,this.highFrequency=this._splitter.highFrequency,this.output=new Ti({context:this.context}),this.low=new Tl(Object.assign(e.low,{context:this.context})),this.mid=new Tl(Object.assign(e.mid,{context:this.context})),this.high=new Tl(Object.assign(e.high,{context:this.context})),this._splitter.low.chain(this.low,this.output),this._splitter.mid.chain(this.mid,this.output),this._splitter.high.chain(this.high,this.output),Zr(this,["high","mid","low","highFrequency","lowFrequency"])}static getDefaults(){return Object.assign(Si.getDefaults(),{lowFrequency:250,highFrequency:2e3,low:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10},mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},high:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16}})}dispose(){return super.dispose(),this._splitter.dispose(),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this.output.dispose(),this}}class Ml extends Si{constructor(){super(Or(Ml.getDefaults(),arguments,["low","mid","high"])),this.name="EQ3",this.output=new Ti({context:this.context}),this._internalChannels=[];const e=Or(Ml.getDefaults(),arguments,["low","mid","high"]);this.input=this._multibandSplit=new Sl({context:this.context,highFrequency:e.highFrequency,lowFrequency:e.lowFrequency}),this._lowGain=new Ti({context:this.context,gain:e.low,units:"decibels"}),this._midGain=new Ti({context:this.context,gain:e.mid,units:"decibels"}),this._highGain=new Ti({context:this.context,gain:e.high,units:"decibels"}),this.low=this._lowGain.gain,this.mid=this._midGain.gain,this.high=this._highGain.gain,this.Q=this._multibandSplit.Q,this.lowFrequency=this._multibandSplit.lowFrequency,this.highFrequency=this._multibandSplit.highFrequency,this._multibandSplit.low.chain(this._lowGain,this.output),this._multibandSplit.mid.chain(this._midGain,this.output),this._multibandSplit.high.chain(this._highGain,this.output),Zr(this,["low","mid","high","lowFrequency","highFrequency"]),this._internalChannels=[this._multibandSplit]}static getDefaults(){return Object.assign(Si.getDefaults(),{high:0,highFrequency:2500,low:0,lowFrequency:400,mid:0})}dispose(){return super.dispose(),Yr(this,["low","mid","high","lowFrequency","highFrequency"]),this._multibandSplit.dispose(),this.lowFrequency.dispose(),this.highFrequency.dispose(),this._lowGain.dispose(),this._midGain.dispose(),this._highGain.dispose(),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this.Q.dispose(),this}}class zl extends Si{constructor(){super(Or(zl.getDefaults(),arguments,["url","onload"])),this.name="Convolver",this._convolver=this.context.createConvolver();const e=Or(zl.getDefaults(),arguments,["url","onload"]);this._buffer=new Jr(e.url,(t=>{this.buffer=t,e.onload()})),this.input=new Ti({context:this.context}),this.output=new Ti({context:this.context}),this._buffer.loaded&&(this.buffer=this._buffer),this.normalize=e.normalize,this.input.chain(this._convolver,this.output)}static getDefaults(){return Object.assign(Si.getDefaults(),{normalize:!0,onload:Qr})}load(e){return Cr(this,void 0,void 0,(function*(){this.buffer=yield this._buffer.load(e)}))}get buffer(){return this._buffer.length?this._buffer:null}set buffer(e){e&&this._buffer.set(e),this._convolver.buffer&&(this.input.disconnect(),this._convolver.disconnect(),this._convolver=this.context.createConvolver(),this.input.chain(this._convolver,this.output));const t=this._buffer.get();this._convolver.buffer=t||null}get normalize(){return this._convolver.normalize}set normalize(e){this._convolver.normalize=e}dispose(){return super.dispose(),this._buffer.dispose(),this._convolver.disconnect(),this}}function Fl(){return si().now()}function Bl(){return si().immediate()}const Ll=si().transport;function Pl(){return si().transport}const Ul=si().destination,Vl=si().destination;function Wl(){return si().destination}const jl=si().listener;function Gl(){return si().listener}const ql=si().draw;function Hl(){return si().draw}const Kl=si();function $l(){return Jr.loaded()}const Xl=Jr,Zl=Ui,Yl=ta},8990:function(e,t,n){(function(){"use strict";var e;function t(e){var t=0;return function(){return t>>0)+"_",r=0;return function e(s){if(this instanceof e)throw new TypeError("Symbol is not a constructor");return new t(n+(s||"")+"_"+r++,s)}})),i("Symbol.iterator",(function(e){if(e)return e;e=Symbol("Symbol.iterator");for(var n="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),i=0;i(t=t||0)&&(t=Math.max(t+s,0));ti)s[n++]=i;else{if(2048>i)s[n++]=i>>6|192;else{if(55296<=i&&57343>=i){if(56319>=i&&r=a){i=1024*(i-55296)+a-56320+65536,s[n++]=i>>18|240,s[n++]=i>>12&63|128,s[n++]=i>>6&63|128,s[n++]=63&i|128;continue}r--}if(t)throw Error("Found an unpaired surrogate");i=65533}s[n++]=i>>12|224,s[n++]=i>>6&63|128}s[n++]=63&i|128}}e=s.subarray(0,n)}return e}var D={},M=null;function z(e,t){void 0===t&&(t=0),B(),t=D[t];for(var n=Array(Math.floor(e.length/3)),s=t[64]||"",r=0,i=0;r>2];a=t[(3&a)<<4|o>>4],o=t[(15&o)<<2|l>>6],l=t[63&l],n[i++]=u+a+o+l}switch(u=0,l=s,e.length-r){case 2:l=t[(15&(u=e[r+1]))<<2]||s;case 1:e=e[r],n[i]=t[e>>2]+t[(3&e)<<4|u>>4]+l+s}return n.join("")}function F(e){var t=e.length,n=3*t/4;n%3?n=Math.floor(n):-1!="=.".indexOf(e[t-1])&&(n=-1!="=.".indexOf(e[t-2])?n-2:n-1);var s=new Uint8Array(n),r=0;return function(e,t){function n(t){for(;s>4),64!=a&&(t(i<<4&240|a>>2),64!=o&&t(a<<6&192|o))}}(e,(function(e){s[r++]=e})),s.subarray(0,r)}function B(){if(!M){M={};for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),t=["+/=","+/","-_=","-_.","-_"],n=0;5>n;n++){var s=e.concat(t[n].split(""));D[n]=s;for(var r=0;rr&&128<=t;r++)n|=(127&(t=e.h[e.g++]))<<7*r;if(128<=t&&(n|=(127&(t=e.h[e.g++]))<<28,s|=(127&t)>>4),128<=t)for(r=0;5>r&&128<=t;r++)s|=(127&(t=e.h[e.g++]))<<7*r+3;if(128>t)return e=n>>>0,(s=2147483648&(t=s>>>0))&&(t=~t>>>0,0==(e=1+~e>>>0)&&(t=t+1>>>0)),e=4294967296*t+(e>>>0),s?-e:e;e.m=!0}W.prototype.reset=function(){this.g=this.l},W.prototype.i=function(){var e=this.h,t=e[this.g],n=127&t;return 128>t?(this.g+=1,n):(n|=(127&(t=e[this.g+1]))<<7,128>t?(this.g+=2,n):(n|=(127&(t=e[this.g+2]))<<14,128>t?(this.g+=3,n):(n|=(127&(t=e[this.g+3]))<<21,128>t?(this.g+=4,n):(n|=(15&(t=e[this.g+4]))<<28,128>t?(this.g+=5,n>>>0):(this.g+=5,128<=e[this.g++]&&128<=e[this.g++]&&128<=e[this.g++]&&128<=e[this.g++]&&this.g++,n)))))},W.prototype.o=function(){var e=this.h[this.g],t=this.h[this.g+1],n=this.h[this.g+2],s=this.h[this.g+3];return this.g+=4,e=2*((n=(e|t<<8|n<<16|s<<24)>>>0)>>31)+1,t=n>>>23&255,n&=8388607,255==t?n?NaN:1/0*e:0==t?e*Math.pow(2,-149)*n:e*Math.pow(2,t-150)*(n+Math.pow(2,23))};var q=[];function H(){this.g=new Uint8Array(64),this.h=0}function K(e,t){for(;127>>=7;e.push(t)}function $(e){var t={},n=void 0!==t.N&&t.N;this.o={v:void 0!==t.v&&t.v},this.N=n,t=this.o,q.length?(n=q.pop(),t&&(n.v=t.v),e&&j(n,e),e=n):e=new W(e,t),this.g=e,this.m=this.g.g,this.h=this.i=this.l=-1,this.j=!1}function X(e){var t=e.g;if((t=t.g==t.j)||(t=e.j)||(t=(t=e.g).m||0>t.g||t.g>t.j),t)return!1;e.m=e.g.g;var n=7&(t=e.g.i());return 0!=n&&5!=n&&1!=n&&2!=n&&3!=n&&4!=n?(e.j=!0,!1):(e.i=t,e.l=t>>>3,e.h=n,!0)}function Z(e){switch(e.h){case 0:if(0!=e.h)Z(e);else{for(e=e.g;128&e.h[e.g];)e.g++;e.g++}break;case 1:1!=e.h?Z(e):(e=e.g).g+=8;break;case 2:if(2!=e.h)Z(e);else{var t=e.g.i();(e=e.g).g+=t}break;case 5:5!=e.h?Z(e):(e=e.g).g+=4;break;case 3:for(t=e.l;;){if(!X(e)){e.j=!0;break}if(4==e.h){e.l!=t&&(e.j=!0);break}Z(e)}break;default:e.j=!0}}function Y(e,t,n){var s=e.g.j,r=e.g.i(),i=e.g.g+r;if(e.g.j=i,n(t,e),0!==(n=i-e.g.g))throw Error("Message parsing ended unexpectedly. Expected to read "+r+" bytes, instead read "+(r-n)+" bytes, either the data ended unexpectedly or the message misreported its own length");return e.g.g=i,e.g.j=s,t}function Q(e){return e.g.o()}function J(e){var t,n=e.g.i(),s=(e=e.g).g;if(e.g+=n,e=e.h,N)(t=I)||(t=I=new TextDecoder("utf-8",{fatal:!1})),t=t.decode(e.subarray(s,s+n));else{n=s+n;for(var r,i,a,o=[],l=null;s(r=e[s++])?o.push(r):224>r?s>=n?o.push(65533):(i=e[s++],194>r||128!=(192&i)?(s--,o.push(65533)):o.push((31&r)<<6|63&i)):240>r?s>=n-1?o.push(65533):128!=(192&(i=e[s++]))||224===r&&160>i||237===r&&160<=i||128!=(192&(t=e[s++]))?(s--,o.push(65533)):o.push((15&r)<<12|(63&i)<<6|63&t):244>=r?s>=n-2?o.push(65533):128!=(192&(i=e[s++]))||i-144+(r<<28)>>30||128!=(192&(t=e[s++]))||128!=(192&(a=e[s++]))?(s--,o.push(65533)):(r=(7&r)<<18|(63&i)<<12|(63&t)<<6|63&a,r-=65536,o.push(55296+(r>>10&1023),56320+(1023&r))):o.push(65533),8192<=o.length&&(l=E(l,o),o.length=0);t=E(l,o)}return t}function ee(e,t,n){var s=e.g.i();for(s=e.g.g+s;e.g.gs?1:0)?-s:s)?0<1/s?V=0:(0,V=2147483648):isNaN(s)?(0,V=2147483647):34028234663852886e22>>0):11754943508222875e-54>s?(s=Math.round(s/Math.pow(2,-149)),0,V=(n<<31|s)>>>0):(t=Math.floor(Math.log(s)/Math.LN2),s*=Math.pow(2,-t),16777216<=(s=Math.round(8388608*s))&&++t,0,V=(n<<31|t+127<<23|8388607&s)>>>0),n=V,e.push(n>>>0&255),e.push(n>>>8&255),e.push(n>>>16&255),e.push(n>>>24&255)}}H.prototype.push=function(e){if(!(this.h+1=e.l?e.i?e.i[t]:void 0:e.h[t+e.j]}function ye(e,t){var n=void 0!==n&&n,s=ge(e,t,n);return null==s&&(s=fe),s===fe&&xe(e,t,s=de([]),n),s}function be(e){var t=ye(e,3);if(e.m||(e.m={}),!e.m[3]){for(var n=0;n=e.l?(me(e),e.i[t]=n):e.h[t+e.j]=n}function Ae(e,t,n){if(-1===n)return null;if(e.g||(e.g={}),!e.g[n]){var s=ge(e,n,!1);s&&(e.g[n]=new t(s))}return e.g[n]}function Ce(e,t){e.g||(e.g={});var n=e.g[1];if(!n){var s=ye(e,1);n=[];for(var r=0;rE;var I=(E=Math.abs(E))>>>0;for(E=Math.floor((E-I)/4294967296),E>>>=0,S&&(E=~E>>>0,4294967295<(I=1+(~I>>>0))&&(I=0,4294967295<++E&&(E=0))),S=V=I,I=E;0>>7|I<<25)>>>0,I>>>=7;_.push(S)}if(Ee(C,k),A=re(A),v.call(w,x,A),y.O)for(w=0;wE;E++)S.push(127&I|128),I>>=7;S.push(1)}ie(_,2,ge(k,2)),null!=(S=ge(k,3))&&(S=O(S),K(_.g,26),K(_.g,S.length),se(_,_.g.end()),se(_,S)),null!=(S=ge(k,4))&&(S=O(S),K(_.g,34),K(_.g,S.length),se(_,_.g.end()),se(_,S)),Ee(k,_),C=re(C),x.call(v,A,C)}}f=f.data;break e;default:f={}}}switch(c=f,h=u.stream,u.type){case"video":r.pushTexture2d(Object.assign(Object.assign({},c),{stream:h,timestamp:s}));break;case"detections":(d=c).stream=h,d.timestamp=s,r.pushDetectionList(d);break;default:throw Error("Unknown input config type: '"+u.type+"'")}}return p.i.send(r),b(n,p.C,4);case 4:r.delete(),n.g=0}}))}))},e.onResults=function(e,t){this.listeners[t||"$"]=e},_("Solution",nt),_("OptionType",{BOOL:0,NUMBER:1,aa:2,0:"BOOL",1:"NUMBER",2:"STRING"});var lt={files:[{url:"face_mesh_solution_packed_assets_loader.js"},{simd:!0,url:"face_mesh_solution_simd_wasm_bin.js"},{simd:!1,url:"face_mesh_solution_wasm_bin.js"}],graph:{url:"face_mesh.binarypb"},listeners:[{wants:["multi_face_geometry","image_transformed","multi_face_landmarks"],outs:{image:"image_transformed",multiFaceGeometry:{type:"proto_list",stream:"multi_face_geometry",transform:function(e){return e.map(ot)}},multiFaceLandmarks:{type:"proto_list",stream:"multi_face_landmarks",transform:function(e){return e.map((function(e){return Ce(Ue(e),Be).map(Xe)}))}}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},enableFaceGeometry:{type:0,graphOptionXref:{calculatorName:"EnableFaceGeometryConstant",calculatorType:"ConstantSidePacketCalculator",fieldName:"bool_value"}},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},maxNumFaces:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorNumFaces",fieldName:"int_value"}},refineLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorRefineLandmarks",fieldName:"bool_value"}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"facelandmarkfrontgpu__facedetectionshortrangegpu__facedetectionshortrangecommon__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"facelandmarkfrontgpu__facelandmarkgpu__ThresholdingCalculator",fieldName:"threshold"}},cameraNear:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"near"}},cameraFar:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"far"}},cameraVerticalFovDegrees:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"vertical_fov_degrees"}}}},ut=[[61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]],ct=[[263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]],ht=[[276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]],dt=[[33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]],pt=[[46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]],ft=[[10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]],mt=[].concat(l(ut),l(ct),l(ht),l(dt),l(pt),l(ft));function gt(e){e=e||{},e=Object.assign(Object.assign({},lt),e),this.g=new nt(e)}(e=gt.prototype).close=function(){return this.g.close(),Promise.resolve()},e.onResults=function(e){this.g.onResults(e)},e.initialize=function(){return Oe(this,(function e(){var t=this;return C(e,(function(e){return b(e,t.g.initialize(),0)}))}))},e.reset=function(){this.g.reset()},e.send=function(e){return Oe(this,(function t(){var n=this;return C(t,(function(t){return b(t,n.g.send(e),0)}))}))},e.setOptions=function(e){this.g.setOptions(e)},_("FACE_GEOMETRY",{Layout:{COLUMN_MAJOR:0,ROW_MAJOR:1,0:"COLUMN_MAJOR",1:"ROW_MAJOR"},PrimitiveType:{TRIANGLE:0,0:"TRIANGLE"},VertexType:{VERTEX_PT:0,0:"VERTEX_PT"},DEFAULT_CAMERA_PARAMS:{verticalFovDegrees:63,near:1,far:1e4}}),_("FaceMesh",gt),_("FACEMESH_LIPS",ut),_("FACEMESH_LEFT_EYE",ct),_("FACEMESH_LEFT_EYEBROW",ht),_("FACEMESH_LEFT_IRIS",[[474,475],[475,476],[476,477],[477,474]]),_("FACEMESH_RIGHT_EYE",dt),_("FACEMESH_RIGHT_EYEBROW",pt),_("FACEMESH_RIGHT_IRIS",[[469,470],[470,471],[471,472],[472,469]]),_("FACEMESH_FACE_OVAL",ft),_("FACEMESH_CONTOURS",mt),_("FACEMESH_TESSELATION",[[127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]]),_("matrixDataToMatrix",(function(e){for(var t=e.getCols(),n=e.getRows(),s=e.getPackedDataList(),r=[],i=0;i{e.exports=function e(t,n,s){function r(a,o){if(!n[a]){if(!t[a]){if(i)return i(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=n[a]={exports:{}};t[a][0].call(u.exports,(function(e){var n=t[a][1][e];return r(n||e)}),u,u.exports,e,t,n,s)}return n[a].exports}for(var i=void 0,a=0;a=43)}})).catch((function(){return!1}))}function A(e){return"boolean"==typeof m?u.resolve(m):x(e).then((function(e){return m=e}))}function C(e){var t=g[e.name],n={};n.promise=new u((function(e,t){n.resolve=e,n.reject=t})),t.deferredOperations.push(n),t.dbReady?t.dbReady=t.dbReady.then((function(){return n.promise})):t.dbReady=n.promise}function k(e){var t=g[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function S(e,t){var n=g[e.name].deferredOperations.pop();if(n)return n.reject(t),n.promise}function _(e,t){return new u((function(n,s){if(g[e.name]=g[e.name]||F(),e.db){if(!t)return n(e.db);C(e),e.db.close()}var r=[e.name];t&&r.push(e.version);var i=a.open.apply(a,r);t&&(i.onupgradeneeded=function(t){var n=i.result;try{n.createObjectStore(e.storeName),t.oldVersion<=1&&n.createObjectStore(f)}catch(e){if("ConstraintError"!==e.name)throw e}}),i.onerror=function(e){e.preventDefault(),s(i.error)},i.onsuccess=function(){var t=i.result;t.onversionchange=function(e){e.target.close()},n(t),k(e)}}))}function E(e){return _(e,!1)}function I(e){return _(e,!0)}function T(e,t){if(!e.db)return!0;var n=!e.db.objectStoreNames.contains(e.storeName),s=e.versione.db.version;if(s&&(e.version,e.version=e.db.version),r||n){if(n){var i=e.db.version+1;i>e.version&&(e.version=i)}return!0}return!1}function N(e){return new u((function(t,n){var s=new FileReader;s.onerror=n,s.onloadend=function(n){var s=btoa(n.target.result||"");t({__local_forage_encoded_blob:!0,data:s,type:e.type})},s.readAsBinaryString(e)}))}function R(e){return l([v(atob(e.data))],{type:e.type})}function O(e){return e&&e.__local_forage_encoded_blob}function D(e){var t=this,n=t._initReady().then((function(){var e=g[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return h(n,e,e),n}function M(e){C(e);for(var t=g[e.name],n=t.forages,s=0;s0&&(!e.db||"InvalidStateError"===r.name||"NotFoundError"===r.name))return u.resolve().then((function(){if(!e.db||"NotFoundError"===r.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),I(e)})).then((function(){return M(e).then((function(){z(e,t,n,s-1)}))})).catch(n);n(r)}}function F(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function B(e){var t=this,n={db:null};if(e)for(var s in e)n[s]=e[s];var r=g[n.name];r||(r=F(),g[n.name]=r),r.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=D);var i=[];function a(){return u.resolve()}for(var o=0;o>4,c[l++]=(15&s)<<4|r>>2,c[l++]=(3&r)<<6|63&i;return u}function fe(e){var t,n=new Uint8Array(e),s="";for(t=0;t>2],s+=X[(3&n[t])<<4|n[t+1]>>4],s+=X[(15&n[t+1])<<2|n[t+2]>>6],s+=X[63&n[t+2]];return n.length%3==2?s=s.substring(0,s.length-1)+"=":n.length%3==1&&(s=s.substring(0,s.length-2)+"=="),s}function me(e,t){var n="";if(e&&(n=de.call(e)),e&&("[object ArrayBuffer]"===n||e.buffer&&"[object ArrayBuffer]"===de.call(e.buffer))){var s,r=Q;e instanceof ArrayBuffer?(s=e,r+=ee):(s=e.buffer,"[object Int8Array]"===n?r+=ne:"[object Uint8Array]"===n?r+=se:"[object Uint8ClampedArray]"===n?r+=re:"[object Int16Array]"===n?r+=ie:"[object Uint16Array]"===n?r+=oe:"[object Int32Array]"===n?r+=ae:"[object Uint32Array]"===n?r+=le:"[object Float32Array]"===n?r+=ue:"[object Float64Array]"===n?r+=ce:t(new Error("Failed to get type for BinaryArray"))),t(r+fe(s))}else if("[object Blob]"===n){var i=new FileReader;i.onload=function(){var n=Z+e.type+"~"+fe(this.result);t(Q+te+n)},i.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(e){t(null,e)}}function ge(e){if(e.substring(0,J)!==Q)return JSON.parse(e);var t,n=e.substring(he),s=e.substring(J,he);if(s===te&&Y.test(n)){var r=n.match(Y);t=r[1],n=n.substring(r[0].length)}var i=pe(n);switch(s){case ee:return i;case te:return l([i],{type:t});case ne:return new Int8Array(i);case se:return new Uint8Array(i);case re:return new Uint8ClampedArray(i);case ie:return new Int16Array(i);case oe:return new Uint16Array(i);case ae:return new Int32Array(i);case le:return new Uint32Array(i);case ue:return new Float32Array(i);case ce:return new Float64Array(i);default:throw new Error("Unkown type: "+s)}}var ye={serialize:me,deserialize:ge,stringToBuffer:pe,bufferToString:fe};function be(e,t,n,s){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],n,s)}function we(e){var t=this,n={db:null};if(e)for(var s in e)n[s]="string"!=typeof e[s]?e[s].toString():e[s];var r=new u((function(e,s){try{n.db=openDatabase(n.name,String(n.version),n.description,n.size)}catch(e){return s(e)}n.db.transaction((function(r){be(r,n,(function(){t._dbInfo=n,e()}),(function(e,t){s(t)}))}),s)}));return n.serializer=ye,r}function ve(e,t,n,s,r,i){e.executeSql(n,s,r,(function(e,a){a.code===a.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],(function(e,o){o.rows.length?i(e,a):be(e,t,(function(){e.executeSql(n,s,r,i)}),i)}),i):i(e,a)}),i)}function xe(e,t){var n=this;e=d(e);var s=new u((function(t,s){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){ve(n,r,"SELECT * FROM "+r.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,n){var s=n.rows.length?n.rows.item(0).value:null;s&&(s=r.serializer.deserialize(s)),t(s)}),(function(e,t){s(t)}))}))})).catch(s)}));return c(s,t),s}function Ae(e,t){var n=this,s=new u((function(t,s){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){ve(n,r,"SELECT * FROM "+r.storeName,[],(function(n,s){for(var i=s.rows,a=i.length,o=0;o0)return void i(Ce.apply(r,[e,o,n,s-1]));a(t)}}))}))})).catch(a)}));return c(i,n),i}function ke(e,t,n){return Ce.apply(this,[e,t,n,1])}function Se(e,t){var n=this;e=d(e);var s=new u((function(t,s){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){ve(n,r,"DELETE FROM "+r.storeName+" WHERE key = ?",[e],(function(){t()}),(function(e,t){s(t)}))}))})).catch(s)}));return c(s,t),s}function _e(e){var t=this,n=new u((function(e,n){t.ready().then((function(){var s=t._dbInfo;s.db.transaction((function(t){ve(t,s,"DELETE FROM "+s.storeName,[],(function(){e()}),(function(e,t){n(t)}))}))})).catch(n)}));return c(n,e),n}function Ee(e){var t=this,n=new u((function(e,n){t.ready().then((function(){var s=t._dbInfo;s.db.transaction((function(t){ve(t,s,"SELECT COUNT(key) as c FROM "+s.storeName,[],(function(t,n){var s=n.rows.item(0).c;e(s)}),(function(e,t){n(t)}))}))})).catch(n)}));return c(n,e),n}function Ie(e,t){var n=this,s=new u((function(t,s){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){ve(n,r,"SELECT key FROM "+r.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,n){var s=n.rows.length?n.rows.item(0).key:null;t(s)}),(function(e,t){s(t)}))}))})).catch(s)}));return c(s,t),s}function Te(e){var t=this,n=new u((function(e,n){t.ready().then((function(){var s=t._dbInfo;s.db.transaction((function(t){ve(t,s,"SELECT key FROM "+s.storeName,[],(function(t,n){for(var s=[],r=0;r '__WebKitDatabaseInfoTable__'",[],(function(n,s){for(var r=[],i=0;i0}function Be(e){var t=this,n={};if(e)for(var s in e)n[s]=e[s];return n.keyPrefix=Me(e,t._defaultConfig),Fe()?(t._dbInfo=n,n.serializer=ye,u.resolve()):u.reject()}function Le(e){var t=this,n=t.ready().then((function(){for(var e=t._dbInfo.keyPrefix,n=localStorage.length-1;n>=0;n--){var s=localStorage.key(n);0===s.indexOf(e)&&localStorage.removeItem(s)}}));return c(n,e),n}function Pe(e,t){var n=this;e=d(e);var s=n.ready().then((function(){var t=n._dbInfo,s=localStorage.getItem(t.keyPrefix+e);return s&&(s=t.serializer.deserialize(s)),s}));return c(s,t),s}function Ue(e,t){var n=this,s=n.ready().then((function(){for(var t=n._dbInfo,s=t.keyPrefix,r=s.length,i=localStorage.length,a=1,o=0;o=0;t--){var n=localStorage.key(t);0===n.indexOf(e)&&localStorage.removeItem(n)}})):u.reject("Invalid arguments"),c(s,t),s}var Ke={_driver:"localStorageWrapper",_initStorage:Be,_support:De(),iterate:Ue,getItem:Pe,setItem:qe,removeItem:Ge,clear:Le,length:je,key:Ve,keys:We,dropInstance:He},$e=function(e,t){return e===t||"number"==typeof e&&"number"==typeof t&&isNaN(e)&&isNaN(t)},Xe=function(e,t){for(var n=e.length,s=0;s{e.exports=n;var t=null;try{t=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(e){}function n(e,t,n){this.low=0|e,this.high=0|t,this.unsigned=!!n}function s(e){return!0===(e&&e.__isLong__)}n.prototype.__isLong__,Object.defineProperty(n.prototype,"__isLong__",{value:!0}),n.isLong=s;var r={},i={};function a(e,t){var n,s,a;return t?(a=0<=(e>>>=0)&&e<256)&&(s=i[e])?s:(n=l(e,(0|e)<0?-1:0,!0),a&&(i[e]=n),n):(a=-128<=(e|=0)&&e<128)&&(s=r[e])?s:(n=l(e,e<0?-1:0,!1),a&&(r[e]=n),n)}function o(e,t){if(isNaN(e))return t?y:g;if(t){if(e<0)return y;if(e>=p)return A}else{if(e<=-f)return C;if(e+1>=f)return x}return e<0?o(-e,t).neg():l(e%d|0,e/d|0,t)}function l(e,t,s){return new n(e,t,s)}n.fromInt=a,n.fromNumber=o,n.fromBits=l;var u=Math.pow;function c(e,t,n){if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return g;if("number"==typeof t?(n=t,t=!1):t=!!t,(n=n||10)<2||360)throw Error("interior hyphen");if(0===s)return c(e.substring(1),t,n).neg();for(var r=o(u(n,8)),i=g,a=0;a>>0:this.low},k.toNumber=function(){return this.unsigned?(this.high>>>0)*d+(this.low>>>0):this.high*d+(this.low>>>0)},k.toString=function(e){if((e=e||10)<2||36>>0).toString(e);if((i=l).isZero())return c+a;for(;c.length<6;)c="0"+c;a=""+c+a}},k.getHighBits=function(){return this.high},k.getHighBitsUnsigned=function(){return this.high>>>0},k.getLowBits=function(){return this.low},k.getLowBitsUnsigned=function(){return this.low>>>0},k.getNumBitsAbs=function(){if(this.isNegative())return this.eq(C)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&!(e&1<=0},k.isOdd=function(){return!(1&~this.low)},k.isEven=function(){return!(1&this.low)},k.equals=function(e){return s(e)||(e=h(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&(this.high===e.high&&this.low===e.low)},k.eq=k.equals,k.notEquals=function(e){return!this.eq(e)},k.neq=k.notEquals,k.ne=k.notEquals,k.lessThan=function(e){return this.comp(e)<0},k.lt=k.lessThan,k.lessThanOrEqual=function(e){return this.comp(e)<=0},k.lte=k.lessThanOrEqual,k.le=k.lessThanOrEqual,k.greaterThan=function(e){return this.comp(e)>0},k.gt=k.greaterThan,k.greaterThanOrEqual=function(e){return this.comp(e)>=0},k.gte=k.greaterThanOrEqual,k.ge=k.greaterThanOrEqual,k.compare=function(e){if(s(e)||(e=h(e)),this.eq(e))return 0;var t=this.isNegative(),n=e.isNegative();return t&&!n?-1:!t&&n?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},k.comp=k.compare,k.negate=function(){return!this.unsigned&&this.eq(C)?C:this.not().add(b)},k.neg=k.negate,k.add=function(e){s(e)||(e=h(e));var t=this.high>>>16,n=65535&this.high,r=this.low>>>16,i=65535&this.low,a=e.high>>>16,o=65535&e.high,u=e.low>>>16,c=0,d=0,p=0,f=0;return p+=(f+=i+(65535&e.low))>>>16,d+=(p+=r+u)>>>16,c+=(d+=n+o)>>>16,c+=t+a,l((p&=65535)<<16|(f&=65535),(c&=65535)<<16|(d&=65535),this.unsigned)},k.subtract=function(e){return s(e)||(e=h(e)),this.add(e.neg())},k.sub=k.subtract,k.multiply=function(e){if(this.isZero())return g;if(s(e)||(e=h(e)),t)return l(t.mul(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned);if(e.isZero())return g;if(this.eq(C))return e.isOdd()?C:g;if(e.eq(C))return this.isOdd()?C:g;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(m)&&e.lt(m))return o(this.toNumber()*e.toNumber(),this.unsigned);var n=this.high>>>16,r=65535&this.high,i=this.low>>>16,a=65535&this.low,u=e.high>>>16,c=65535&e.high,d=e.low>>>16,p=65535&e.low,f=0,y=0,b=0,w=0;return b+=(w+=a*p)>>>16,y+=(b+=i*p)>>>16,b&=65535,y+=(b+=a*d)>>>16,f+=(y+=r*p)>>>16,y&=65535,f+=(y+=i*d)>>>16,y&=65535,f+=(y+=a*c)>>>16,f+=n*p+r*d+i*c+a*u,l((b&=65535)<<16|(w&=65535),(f&=65535)<<16|(y&=65535),this.unsigned)},k.mul=k.multiply,k.divide=function(e){if(s(e)||(e=h(e)),e.isZero())throw Error("division by zero");var n,r,i;if(t)return this.unsigned||-2147483648!==this.high||-1!==e.low||-1!==e.high?l((this.unsigned?t.div_u:t.div_s)(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?y:g;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return y;if(e.gt(this.shru(1)))return w;i=y}else{if(this.eq(C))return e.eq(b)||e.eq(v)?C:e.eq(C)?b:(n=this.shr(1).div(e).shl(1)).eq(g)?e.isNegative()?b:v:(r=this.sub(e.mul(n)),i=n.add(r.div(e)));if(e.eq(C))return this.unsigned?y:g;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();i=g}for(r=this;r.gte(e);){n=Math.max(1,Math.floor(r.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),c=a<=48?1:u(2,a-48),d=o(n),p=d.mul(e);p.isNegative()||p.gt(r);)p=(d=o(n-=c,this.unsigned)).mul(e);d.isZero()&&(d=b),i=i.add(d),r=r.sub(p)}return i},k.div=k.divide,k.modulo=function(e){return s(e)||(e=h(e)),t?l((this.unsigned?t.rem_u:t.rem_s)(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},k.mod=k.modulo,k.rem=k.modulo,k.not=function(){return l(~this.low,~this.high,this.unsigned)},k.and=function(e){return s(e)||(e=h(e)),l(this.low&e.low,this.high&e.high,this.unsigned)},k.or=function(e){return s(e)||(e=h(e)),l(this.low|e.low,this.high|e.high,this.unsigned)},k.xor=function(e){return s(e)||(e=h(e)),l(this.low^e.low,this.high^e.high,this.unsigned)},k.shiftLeft=function(e){return s(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?l(this.low<>>32-e,this.unsigned):l(0,this.low<>>e|this.high<<32-e,this.high>>e,this.unsigned):l(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},k.shr=k.shiftRight,k.shiftRightUnsigned=function(e){if(s(e)&&(e=e.toInt()),0===(e&=63))return this;var t=this.high;return e<32?l(this.low>>>e|t<<32-e,t>>>e,this.unsigned):l(32===e?t:t>>>e-32,0,this.unsigned)},k.shru=k.shiftRightUnsigned,k.shr_u=k.shiftRightUnsigned,k.toSigned=function(){return this.unsigned?l(this.low,this.high,!1):this},k.toUnsigned=function(){return this.unsigned?this:l(this.low,this.high,!0)},k.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},k.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},k.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},n.fromBytes=function(e,t,s){return s?n.fromBytesLE(e,t):n.fromBytesBE(e,t)},n.fromBytesLE=function(e,t){return new n(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},n.fromBytesBE=function(e,t){return new n(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)}},9464:function(e,t){var n,s,r;s=[e],n=function(e){"use strict";function t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var n=Object.assign||function(e){for(var t=1;tMath.abs(n[i][a])&&(a=o);for(var l=i;l=i;h--)n[h][c]-=n[h][i]*n[i][c]/n[i][i]}for(var d=s-1;d>=0;d--){for(var p=0,f=d+1;f=0;x--)v+=x>1?y[x]+"x^"+x+" + ":1===x?y[x]+"x + ":y[x];return{string:v,points:w,predict:b,equation:[].concat(s(y)).reverse(),r2:o(i(e,w),t.precision)}}};function u(){var e=function(e,s){return n({_round:o},e,t({},s,(function(e,t){return l[s](e,n({},r,t))})))};return Object.keys(l).reduce(e,{})}e.exports=u()},void 0===(r="function"==typeof n?n.apply(t,s):n)||(e.exports=r)},2183:(e,t,n)=>{var s=n(1812),r=n(6357),i=n(1119),a=n(147),o=n(6297),l=n(9181),u=n(7529);u.alea=s,u.xor128=r,u.xorwow=i,u.xorshift7=a,u.xor4096=o,u.tychei=l,e.exports=u},1812:function(e,t,n){var s;!function(e,r,i){function a(e){var t=this,n=function(){var e=4022871197,t=function(t){t=String(t);for(var n=0;n>>0,e=(s*=e)>>>0,e+=4294967296*(s-=e)}return 2.3283064365386963e-10*(e>>>0)};return t}();t.next=function(){var e=2091639*t.s0+2.3283064365386963e-10*t.c;return t.s0=t.s1,t.s1=t.s2,t.s2=e-(t.c=0|e)},t.c=1,t.s0=n(" "),t.s1=n(" "),t.s2=n(" "),t.s0-=n(e),t.s0<0&&(t.s0+=1),t.s1-=n(e),t.s1<0&&(t.s1+=1),t.s2-=n(e),t.s2<0&&(t.s2+=1),n=null}function o(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function l(e,t){var n=new a(e),s=t&&t.state,r=n.next;return r.int32=function(){return 4294967296*n.next()|0},r.double=function(){return r()+11102230246251565e-32*(2097152*r()|0)},r.quick=r,s&&("object"==typeof s&&o(s,n),r.state=function(){return o(n,{})}),r}r&&r.exports?r.exports=l:n.amdD&&n.amdO?void 0===(s=function(){return l}.call(t,n,t,r))||(r.exports=s):this.alea=l}(0,e=n.nmd(e),n.amdD)},9181:function(e,t,n){var s;!function(e,r,i){function a(e){var t=this,n="";t.next=function(){var e=t.b,n=t.c,s=t.d,r=t.a;return e=e<<25^e>>>7^n,n=n-s|0,s=s<<24^s>>>8^r,r=r-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-s|0,t.d=s<<16^n>>>16^r,t.a=r-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 s=0;s>>0)/4294967296};return r.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=n.next,r.quick=r,s&&("object"==typeof s&&o(s,n),r.state=function(){return o(n,{})}),r}r&&r.exports?r.exports=l:n.amdD&&n.amdO?void 0===(s=function(){return l}.call(t,n,t,r))||(r.exports=s):this.tychei=l}(0,e=n.nmd(e),n.amdD)},6357:function(e,t,n){var s;!function(e,r,i){function a(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 s=0;s>>0)/4294967296};return r.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=n.next,r.quick=r,s&&("object"==typeof s&&o(s,n),r.state=function(){return o(n,{})}),r}r&&r.exports?r.exports=l:n.amdD&&n.amdO?void 0===(s=function(){return l}.call(t,n,t,r))||(r.exports=s):this.xor128=l}(0,e=n.nmd(e),n.amdD)},6297:function(e,t,n){var s;!function(e,r,i){function a(e){var t=this;t.next=function(){var e,n,s=t.w,r=t.X,i=t.i;return t.w=s=s+1640531527|0,n=r[i+34&127],e=r[i=i+1&127],n^=n<<13,e^=e<<17,n^=n>>>15,e^=e>>>12,n=r[i]=n^e,t.i=i,n+(s^s>>>16)|0},function(e,t){var n,s,r,i,a,o=[],l=128;for(t===(0|t)?(s=t,t=null):(t+="\0",s=0,l=Math.max(l,t.length)),r=0,i=-32;i>>15,s^=s<<4,s^=s>>>13,i>=0&&(a=a+1640531527|0,r=0==(n=o[127&i]^=s+a)?r+1:0);for(r>=128&&(o[127&(t&&t.length||0)]=-1),r=127,i=512;i>0;--i)s=o[r+34&127],n=o[r=r+1&127],s^=s<<13,n^=n<<17,s^=s>>>15,n^=n>>>12,o[r]=s^n;e.w=a,e.X=o,e.i=r}(t,e)}function o(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function l(e,t){null==e&&(e=+new Date);var n=new a(e),s=t&&t.state,r=function(){return(n.next()>>>0)/4294967296};return r.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=n.next,r.quick=r,s&&(s.X&&o(s,n),r.state=function(){return o(n,{})}),r}r&&r.exports?r.exports=l:n.amdD&&n.amdO?void 0===(s=function(){return l}.call(t,n,t,r))||(r.exports=s):this.xor4096=l}(0,e=n.nmd(e),n.amdD)},147:function(e,t,n){var s;!function(e,r,i){function a(e){var t=this;t.next=function(){var e,n,s=t.x,r=t.i;return e=s[r],n=(e^=e>>>7)^e<<24,n^=(e=s[r+1&7])^e>>>10,n^=(e=s[r+3&7])^e>>>3,n^=(e=s[r+4&7])^e<<7,e=s[r+7&7],n^=(e^=e<<13)^e<<9,s[r]=n,t.i=r+1&7,n},function(e,t){var n,s=[];if(t===(0|t))s[0]=t;else for(t=""+t,n=0;n0;--n)e.next()}(t,e)}function o(e,t){return t.x=e.x.slice(),t.i=e.i,t}function l(e,t){null==e&&(e=+new Date);var n=new a(e),s=t&&t.state,r=function(){return(n.next()>>>0)/4294967296};return r.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=n.next,r.quick=r,s&&(s.x&&o(s,n),r.state=function(){return o(n,{})}),r}r&&r.exports?r.exports=l:n.amdD&&n.amdO?void 0===(s=function(){return l}.call(t,n,t,r))||(r.exports=s):this.xorshift7=l}(0,e=n.nmd(e),n.amdD)},1119:function(e,t,n){var s;!function(e,r,i){function a(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 s=0;s>>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 l(e,t){var n=new a(e),s=t&&t.state,r=function(){return(n.next()>>>0)/4294967296};return r.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=n.next,r.quick=r,s&&("object"==typeof s&&o(s,n),r.state=function(){return o(n,{})}),r}r&&r.exports?r.exports=l:n.amdD&&n.amdO?void 0===(s=function(){return l}.call(t,n,t,r))||(r.exports=s):this.xorwow=l}(0,e=n.nmd(e),n.amdD)},7529:function(e,t,n){var s;!function(r,i,a){var o,l=256,u=a.pow(l,6),c=a.pow(2,52),h=2*c,d=l-1;function p(e,t,n){var s=[],d=y(g((t=1==t?{entropy:!0}:t||{}).entropy?[e,b(i)]:null==e?function(){try{var e;return o&&(e=o.randomBytes)?e=e(l):(e=new Uint8Array(l),(r.crypto||r.msCrypto).getRandomValues(e)),b(e)}catch(e){var t=r.navigator,n=t&&t.plugins;return[+new Date,r,n,r.screen,b(i)]}}():e,3),s),p=new f(s),w=function(){for(var e=p.g(6),t=u,n=0;e=h;)e/=2,t/=2,n>>>=1;return(e+n)/t};return w.int32=function(){return 0|p.g(4)},w.quick=function(){return p.g(4)/4294967296},w.double=w,y(b(p.S),i),(t.pass||n||function(e,t,n,s){return s&&(s.S&&m(s,p),e.state=function(){return m(p,{})}),n?(a.random=e,t):e})(w,d,"global"in t?t.global:this==a,t.state)}function f(e){var t,n=e.length,s=this,r=0,i=s.i=s.j=0,a=s.S=[];for(n||(e=[n++]);r{},9830:()=>{},3818:()=>{},6308:()=>{},7695:()=>{},170:()=>{}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(n.exports,n,n.exports,__webpack_require__),n.loaded=!0,n.exports}__webpack_require__.amdD=function(){throw new Error("define cannot be used indirect")},__webpack_require__.amdO={},__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),__webpack_require__.nc=void 0;var __webpack_exports__={};return(()=>{"use strict";__webpack_require__.d(__webpack_exports__,{default:()=>EH});var e={};__webpack_require__.r(e),__webpack_require__.d(e,{CompositeArrayBuffer:()=>wo,browserFiles:()=>pu,browserHTTPRequest:()=>Au,concatenateArrayBuffers:()=>Lo,copyModel:()=>Cl,decodeWeights:()=>To,decodeWeightsStream:()=>Mo,encodeWeights:()=>Io,fromMemory:()=>_u,fromMemorySync:()=>Eu,getLoadHandlers:()=>Xo,getModelArtifactsForJSON:()=>Wo,getModelArtifactsForJSONSync:()=>Vo,getModelArtifactsInfoForJSON:()=>jo,getSaveHandlers:()=>$o,getWeightSpecs:()=>Go,http:()=>xu,isHTTPScheme:()=>wu,listModels:()=>xl,loadWeights:()=>gu,moveModel:()=>kl,registerLoadRouter:()=>Ko,registerSaveRouter:()=>Ho,removeModel:()=>Al,weightsLoaderFactory:()=>yu,withSaveHandler:()=>Iu,withSaveHandlerSync:()=>Tu});var t={};__webpack_require__.r(t),__webpack_require__.d(t,{assertParamsValid:()=>Pu,computeFlatOffset:()=>Qu,computeOutShape:()=>Vu,getNormalizedAxes:()=>qu,isSliceContinous:()=>Yu,maskToAxes:()=>Uu,parseSliceParams:()=>Ju,sliceInfo:()=>ec,startForAxis:()=>Xu,startIndicesWithElidedDims:()=>Hu,stopForAxis:()=>Zu,stopIndicesWithElidedDims:()=>Ku,stridesForAxis:()=>$u,stridesWithElidedDims:()=>Wu});var n={};__webpack_require__.r(n),__webpack_require__.d(n,{conv2d:()=>ff,depthwiseConv2d:()=>yf,matMul:()=>bf});var s={};__webpack_require__.r(s),__webpack_require__.d(s,{collectGatherOpShapeInfo:()=>Tg,computeOutShape:()=>Ig,segOpComputeOptimalWindowSize:()=>Eg});var r={};__webpack_require__.r(r),__webpack_require__.d(r,{ERF_A1:()=>qm,ERF_A2:()=>Hm,ERF_A3:()=>Km,ERF_A4:()=>$m,ERF_A5:()=>Xm,ERF_P:()=>Gm,PARALLELIZE_THRESHOLD:()=>Dm,RowPartitionType:()=>Im,SELU_SCALE:()=>jm,SELU_SCALEALPHA:()=>Wm,applyActivation:()=>df,assertAndGetBroadcastShape:()=>su,assertAxesAreInnerMostDims:()=>Eh,assertParamsConsistent:()=>_m,assignToTypedArray:()=>tg,axesAreInnerMostDims:()=>Ch,calculateShapes:()=>Vp,checkEinsumDimSizes:()=>cg,checkPadOnDimRoundingMode:()=>Ic,combineLocations:()=>kh,combineRaggedTensorToTensorShapes:()=>Tm,complexWithEvenIndex:()=>Qm,complexWithOddIndex:()=>Jm,computeConv2DInfo:()=>yc,computeConv3DInfo:()=>bc,computeDefaultPad:()=>wc,computeDilation2DInfo:()=>fc,computeOptimalWindowSize:()=>Mm,computeOutAndReduceShapes:()=>Sh,computeOutShape:()=>Em,computePool2DInfo:()=>mc,computePool3DInfo:()=>gc,convertConv2DDataFormat:()=>Ec,decodeEinsumEquation:()=>lg,eitherStridesOrDilationsAreOne:()=>Sc,expandShapeToKeepDim:()=>_h,exponent:()=>sg,exponents:()=>ng,fromStringArrayToUint8:()=>Rg,fromUint8ToStringArray:()=>Ng,getAxesPermutation:()=>Ih,getBroadcastDims:()=>tu,getComplexWithIndex:()=>eg,getEinsumComputePath:()=>hg,getEinsumPermutation:()=>ug,getFusedBiasGradient:()=>hf,getFusedDyActivation:()=>cf,getImageCenter:()=>zm,getInnerMostAxes:()=>Nh,getPermuted:()=>Bm,getRaggedRank:()=>Rm,getReductionAxes:()=>nu,getReshaped:()=>Fm,getReshapedPermuted:()=>Lm,getRowPartitionTypesHelper:()=>Nm,getSliceBeginCoords:()=>Pm,getSliceSize:()=>Um,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>mg,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>gg,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>yg,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>vg,getSparseReshapeInputOutputMismatchErrorMessage:()=>Ag,getSparseReshapeInputOutputMultipleErrorMessage:()=>xg,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>bg,getSparseReshapeNegativeOutputDimErrorMessage:()=>wg,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>_g,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>Cg,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>kg,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>Sg,getUndoAxesPermutation:()=>Th,isIdentityPermutation:()=>dg,log:()=>Wi,mergeRealAndImagArrays:()=>Zm,prepareAndValidate:()=>Vm,prepareSplitSize:()=>fg,segment_util:()=>s,shouldFuse:()=>pf,slice_util:()=>t,splitRealAndImagArrays:()=>Ym,stridesOrDilationsArePositive:()=>_c,tupleValuesAreOne:()=>kc,upcastType:()=>ja,validateDefaultValueShape:()=>Om,validateInput:()=>Up,validateUpdateShape:()=>Pp,warn:()=>Vi});var i={};__webpack_require__.r(i),__webpack_require__.d(i,{json:()=>ek});var a={};__webpack_require__.r(a),__webpack_require__.d(a,{json:()=>tk});var o={};__webpack_require__.r(o),__webpack_require__.d(o,{json:()=>nk});var l={};__webpack_require__.r(l),__webpack_require__.d(l,{json:()=>sk});var u={};__webpack_require__.r(u),__webpack_require__.d(u,{json:()=>rk});var c={};__webpack_require__.r(c),__webpack_require__.d(c,{json:()=>ik});var h={};__webpack_require__.r(h),__webpack_require__.d(h,{json:()=>ak});var d={};__webpack_require__.r(d),__webpack_require__.d(d,{json:()=>ok});var p={};__webpack_require__.r(p),__webpack_require__.d(p,{json:()=>lk});var f={};__webpack_require__.r(f),__webpack_require__.d(f,{json:()=>uk});var m={};__webpack_require__.r(m),__webpack_require__.d(m,{json:()=>ck});var g={};__webpack_require__.r(g),__webpack_require__.d(g,{json:()=>hk});var y={};__webpack_require__.r(y),__webpack_require__.d(y,{json:()=>dk});var b={};__webpack_require__.r(b),__webpack_require__.d(b,{json:()=>pk});var w={};__webpack_require__.r(w),__webpack_require__.d(w,{json:()=>fk});var v={};__webpack_require__.r(v),__webpack_require__.d(v,{json:()=>mk});var x={};__webpack_require__.r(x),__webpack_require__.d(x,{json:()=>gk});var A={};__webpack_require__.r(A),__webpack_require__.d(A,{json:()=>yk});var C={};__webpack_require__.r(C),__webpack_require__.d(C,{json:()=>bk});var k={};__webpack_require__.r(k),__webpack_require__.d(k,{OP_SCOPE_SUFFIX:()=>po,abs:()=>eu,acos:()=>nc,acosh:()=>sc,add:()=>Dl,addN:()=>rc,all:()=>ic,any:()=>ac,argMax:()=>oc,argMin:()=>lc,asin:()=>uc,asinh:()=>cc,atan:()=>hc,atan2:()=>dc,atanh:()=>pc,avgPool:()=>Nc,avgPool3d:()=>Rc,basicLSTMCell:()=>Bc,batchNorm:()=>Pc,batchNorm2d:()=>Uc,batchNorm3d:()=>Vc,batchNorm4d:()=>Wc,batchToSpaceND:()=>Lc,bincount:()=>jc,bitwiseAnd:()=>Gc,booleanMaskAsync:()=>Qp,broadcastArgs:()=>qc,broadcastTo:()=>Hc,buffer:()=>Tl,cast:()=>Nl,ceil:()=>Kc,clipByValue:()=>$c,clone:()=>Rl,complex:()=>mo,concat:()=>Oc,concat1d:()=>Xc,concat2d:()=>Zc,concat3d:()=>Yc,concat4d:()=>Qc,conv1d:()=>eh,conv2d:()=>Jc,conv2dTranspose:()=>nh,conv3d:()=>sh,conv3dTranspose:()=>ih,cos:()=>ah,cosh:()=>oh,cosineWindow:()=>of,cumprod:()=>lh,cumsum:()=>uh,denseBincount:()=>ch,depthToSpace:()=>hh,depthwiseConv2d:()=>dh,diag:()=>ph,dilation2d:()=>fh,div:()=>zl,divNoNan:()=>yh,dot:()=>bh,dropout:()=>rf,einsum:()=>wh,elu:()=>vh,enclosingPowerOfTwo:()=>af,ensureShape:()=>xh,equal:()=>mh,erf:()=>Ah,euclideanNorm:()=>Fh,exp:()=>Bh,expandDims:()=>Lh,expm1:()=>Ph,eye:()=>Vh,fft:()=>Cp,fill:()=>Xl,floor:()=>Wh,floorDiv:()=>Ml,fused:()=>n,gather:()=>jh,gatherND:()=>sf,greater:()=>Gh,greaterEqual:()=>qh,ifft:()=>kp,imag:()=>Hh,image:()=>bm,inTopKAsync:()=>lf,irfft:()=>Sp,isFinite:()=>Kh,isInf:()=>$h,isNaN:()=>Xh,leakyRelu:()=>Zh,less:()=>Yh,lessEqual:()=>Qh,linalg:()=>wm,linspace:()=>Jh,localResponseNormalization:()=>ed,log:()=>td,log1p:()=>nd,logSigmoid:()=>id,logSoftmax:()=>ad,logSumExp:()=>od,logicalAnd:()=>ld,logicalNot:()=>ud,logicalOr:()=>cd,logicalXor:()=>hd,losses:()=>vm,lowerBound:()=>fd,matMul:()=>Dc,max:()=>Rh,maxPool:()=>md,maxPool3d:()=>gd,maxPoolWithArgmax:()=>yd,maximum:()=>ru,mean:()=>bd,meshgrid:()=>xd,min:()=>Oh,minimum:()=>Ad,mirrorPad:()=>Cd,mod:()=>kd,moments:()=>Sd,movingAverage:()=>ef,mul:()=>Fl,multiRNNCell:()=>_d,multinomial:()=>Ed,neg:()=>sd,norm:()=>zh,notEqual:()=>Id,oneHot:()=>Td,ones:()=>vd,onesLike:()=>Nd,op:()=>fo,outerProduct:()=>Rd,pad:()=>Od,pad1d:()=>Dd,pad2d:()=>Md,pad3d:()=>zd,pad4d:()=>Fd,pool:()=>Ld,pow:()=>Yl,prelu:()=>Pd,print:()=>Ol,prod:()=>Ud,raggedGather:()=>Vd,raggedRange:()=>Wd,raggedTensorToTensor:()=>jd,rand:()=>Gd,randomGamma:()=>Xd,randomNormal:()=>Zd,randomStandardNormal:()=>Yd,randomUniform:()=>Qd,randomUniformInt:()=>Jd,range:()=>ep,real:()=>tp,reciprocal:()=>np,relu:()=>sp,relu6:()=>rp,reshape:()=>Tc,reverse:()=>ip,reverse1d:()=>ap,reverse2d:()=>op,reverse3d:()=>lp,reverse4d:()=>up,rfft:()=>Ep,round:()=>cp,rsqrt:()=>hp,scalar:()=>Vl,scatterND:()=>tf,searchSorted:()=>pd,selu:()=>dp,separableConv2d:()=>pp,setdiff1dAsync:()=>fp,sigmoid:()=>Mc,sign:()=>mp,signal:()=>ym,sin:()=>gp,sinh:()=>yp,slice:()=>zc,slice1d:()=>bp,slice2d:()=>wp,slice3d:()=>vp,slice4d:()=>xp,softmax:()=>Ap,softplus:()=>rd,spaceToBatchND:()=>Bd,sparse:()=>xm,sparseToDense:()=>nf,spectral:()=>gm,split:()=>_p,sqrt:()=>Bl,square:()=>Ll,squaredDifference:()=>Ip,squeeze:()=>Tp,stack:()=>Np,step:()=>Rp,stridedSlice:()=>Op,string:()=>Am,sub:()=>Ql,sum:()=>Dh,tan:()=>Dp,tanh:()=>Fc,tensor:()=>yo,tensor1d:()=>Mp,tensor2d:()=>zp,tensor3d:()=>Nu,tensor4d:()=>Fp,tensor5d:()=>Bp,tensor6d:()=>Lp,tensorScatterUpdate:()=>Wp,tile:()=>Uh,topk:()=>jp,transpose:()=>Jp,truncatedNormal:()=>Gp,unique:()=>qp,unsortedSegmentSum:()=>Hp,unstack:()=>Kp,upperBound:()=>$p,variable:()=>Xp,where:()=>gh,whereAsync:()=>Yp,zeros:()=>wd,zerosLike:()=>Pl});var S={};__webpack_require__.r(S),__webpack_require__.d(S,{addImpl:()=>w_,bincountImpl:()=>hE,bincountReduceImpl:()=>dE,bitwiseAndImpl:()=>fE,castImpl:()=>f_,ceilImpl:()=>bE,concatImpl:()=>kE,equalImpl:()=>lI,expImpl:()=>wI,expm1Impl:()=>kI,floorImpl:()=>VI,gatherNdImpl:()=>XI,gatherV2Impl:()=>YI,greaterEqualImpl:()=>nT,greaterImpl:()=>JI,lessEqualImpl:()=>mT,lessImpl:()=>dT,linSpaceImpl:()=>bT,logImpl:()=>vT,maxImpl:()=>zT,maximumImpl:()=>LT,minimumImpl:()=>$T,multiplyImpl:()=>eI,negImpl:()=>rN,notEqualImpl:()=>dN,prodImpl:()=>SN,raggedGatherImpl:()=>NN,raggedRangeImpl:()=>DN,raggedTensorToTensorImpl:()=>PN,rangeImpl:()=>VN,rsqrtImpl:()=>JN,scatterImpl:()=>nR,sigmoidImpl:()=>i_,simpleAbsImpl:()=>I_,sliceImpl:()=>oE,sparseFillEmptyRowsImpl:()=>AR,sparseReshapeImpl:()=>kR,sparseSegmentReductionImpl:()=>_R,sqrtImpl:()=>RR,staticRegexReplaceImpl:()=>LR,stridedSliceImpl:()=>jR,stringNGramsImpl:()=>HR,stringSplitImpl:()=>XR,stringToHashBucketFastImpl:()=>YR,subImpl:()=>NI,tileImpl:()=>sO,topKImpl:()=>oO,transposeImpl:()=>z_,uniqueImpl:()=>fO});var _=__webpack_require__(7999),E=__webpack_require__(9043);_.A.prototype._CONST=Object.freeze({N:{VIDEO_W:{DESKTOP:208,MOBILE:144},VIDEO_MARGIN:"10px",GAZE_CALIBRATION:{R:40,MARGIN:32,BORDER:8,CENTER_EXTRA_CHECK_OFFSET:2,MID_EXTRA_CHECK_OFFSET:6},PPI_DONT_USE:127.7,PD_DONT_USE:6.4,VIEW_DIST_DONT_USE:40},S:{AUTO:"AUTO",CLICK_TYPE:{MOUSE:"mouse",TOUCH:"touch"}},COLOR:{LIGHT_GREY:"#cccccc",ORANGE:"#ff9a00",DARK_RED:"#ac0d0d",RED:"#ee0000"},LTR:"LTR",RTL:"RTL",VIEW_METHOD:{B:"BlindSpot",F:"FaceMesh"},IN_TO_CM:2.54,UNITS:{CM:"cm",IN_D:"inDecimal",IN_F:"inFractional"}}),_.A.prototype._debuggerDefault=Object.freeze({date:new Date("July 20, 69 20:17:40 GMT+00:00"),timestamp:performance.now(),screenSize:{value:{screenWidthCm:28.6,screenHeightCm:17.9,screenPhysicalPpi:250,screenPpi:125,screenDiagonalCm:33.8,screenDiagonalIn:13.3}},measureDistance:{value:40,method:"BlindSpot"},trackDistance:{value:{viewingDistanceCm:40,PDCm:6.4,nearPointCm:{x:0,y:0},latencyMs:50},method:"FaceMesh"},trackGaze:{value:{x:screen.width/2,y:screen.height/2,latencyMs:50}},performance:{value:{computeArrayFillMHz:(0,E.Nh)(.5,3),computeRandomMHz:(0,E.Nh)(5,3),idealFps:60,stressFps:60}}});var I=__webpack_require__(115),T=__webpack_require__.n(I),N=__webpack_require__(3389),R=__webpack_require__.n(N),O=__webpack_require__(402),D=__webpack_require__.n(O),M=__webpack_require__(880),z=__webpack_require__.n(M),F=__webpack_require__(3282),B=__webpack_require__.n(F);const L=(e,t)=>{e.style.top=Math.round(t.querySelector(".calibration-instruction").getBoundingClientRect().bottom)+25+"px"},P=e=>{const t=e.value/e.max;e.style.background=`linear-gradient(90deg, #ffc772, #ffc772 ${100*t}%, #fff ${100*t}%)`};var U=__webpack_require__(9853),V=__webpack_require__(359),W=__webpack_require__(9677);_.A.prototype._displaySize=function(){if(!this.checkInitialized())return;const e={value:{displayWidthPx:screen.width,displayHeightPx:screen.height,windowWidthPx:window.innerWidth,windowHeightPx:window.innerHeight},timestamp:performance.now()};this.displayData.length&&T()(e.value,this.displayData[this.displayData.length-1].value)||(this.newDisplayData=e)};const j={card:R(),arrow:D(),usba:z(),usbc:B()},G={card:3.375,usba:.787402,usbc:.787402};_.A.prototype.screenSize=function(e={},t){this.checkInitialized()&&((0,E.$k)(),e=Object.assign({fullscreen:!1,repeatTesting:1,decimalPlace:1,defaultObject:"card",headline:"🖥️ "+W.H.RC_screenSizeTitle[this.L],description:W.H.RC_screenSizeIntro[this.L],check:!1,checkCallback:null},e),this.getFullscreen(e.fullscreen),["usba","usbc","card"].includes(e.defaultObject)||(e.defaultObject="card"),e.description+=`

      ${W.H.RC_screenSizeHave[this.L].replace("xxx",``)}`,this._addBackground(),this._addBackgroundText(e.headline,e.description),this._addCreditOnBackground(W.H.RC_screenSizeCredit[this.L]),function(e,t,n,s){const r=((e,t,n)=>{const s=document.createElement("input");return s.id="rc-size-slider",s.className="rc-slider",s.type="range",s.min=t,s.max=n,s.value=Math.max(Math.min(Math.round(100*Math.random()),80),20),s.step=.1,L(s,e),P(s),e.appendChild(s),s})(t,0,100),i=(t,n)=>{if("rc-slider"===t.target.className&&"rc-size-slider"===t.target.id&&(n===e._CONST.S.CLICK_TYPE.MOUSE&&1===t.which||n===e._CONST.S.CLICK_TYPE.TOUCH)){t.target.style.cursor="grabbing",c.setAttribute("fill",e._CONST.COLOR.ORANGE);const s=()=>{r.style.cursor="grab",c.setAttribute("fill",e._CONST.COLOR.LIGHT_GREY),document.removeEventListener("mouseup",s,!1)};n===e._CONST.S.CLICK_TYPE.MOUSE?document.addEventListener("mouseup",s,!1):n===e._CONST.S.CLICK_TYPE.TOUCH&&document.addEventListener("touchend",s,!1)}},a=e=>{i(e,"mouse")},o=e=>{i(e,"touch")};document.addEventListener("mousedown",a,!1),document.addEventListener("touchstart",o,!1);const l=K(["card","arrow","usba","usbc"],t);let u=n.defaultObject;document.getElementById("matching-obj").addEventListener("change",(e=>{$(e.target.value,l,d),u=e.target.value})),$("card",l);const c=document.getElementById("size-arrow-fill");c.setAttribute("fill",e._CONST.COLOR.LIGHT_GREY);const h={width:l.arrow.getBoundingClientRect().width,height:l.arrow.getBoundingClientRect().height},d=()=>{q(e,r,l.card,l.arrow,h),H(r,l.usba),H(r,l.usbc)};d();const p=()=>{P(r),d()},f=new ResizeObserver((()=>{d(),L(r,t),Z(l,r)}));f.observe(t);const m=()=>{document.removeEventListener("mousedown",a,!1),document.removeEventListener("touchstart",o,!1),document.removeEventListener("input",p,!1),f.unobserve(t),e._removeBackground(),(0,U.l)(y)},g=()=>{const t=(l[u].getBoundingClientRect().width||Number.parseInt(l[u].style.width))/G[u],r=n.decimalPlace,i=X(t,r);e.newScreenData=i,m(),n.check?e._checkScreenSize(s,i,n.checkCallback):(0,E.nB)(s,i)};r.addEventListener("input",p,!1);const y=(0,U.m)({Escape:m,Enter:g," ":g});(0,V.F)(e.L,e.background,{go:g,cancel:m},e.params.showCancelButton),$(u,l,d)}(this,this.background,e,t))};const q=(e,t,n,s,r)=>{const i=(t.offsetWidth-30)*(t.value/100)*(window.innerWidth<480?2:1)+15;n.style.width=i+"px";const a=n.getBoundingClientRect();0!==a.width&&(s.style.left=a.left+i+"px",s.style.top=a.top+e.background.scrollTop+(.63*i-r.height)/2+"px")},H=(e,t)=>{t.style.width=(0,E.Ew)(Math.pow(e.value,1.5),0,1e3,50,400)+"px"},K=(e,t)=>{const n=document.getElementsByClassName("size-obj");for(;n.length;)n[0].parentNode.removeChild(n[0]);const s={};for(const n of e){let e=document.createElement("div");t.appendChild(e),e.outerHTML=j[n],e=document.getElementById("size-"+n),e.setAttribute("preserveAspectRatio","none"),e.style.visibility="hidden",s[n]=e}return Z(s,document.querySelector("#rc-size-slider")),s},$=(e,t,n)=>{for(const n in t)t[n].style.visibility=n===e?"visible":"hidden";t.arrow.style.visibility="hidden",(0,E.nB)(n)},X=(e,t)=>{const n={value:{screenWidthCm:(0,E.Nh)(2.54*window.screen.width/e,t),screenHeightCm:(0,E.Nh)(2.54*window.screen.height/e,t),screenPhysicalPpi:(0,E.Nh)(e*window.devicePixelRatio,t),screenPpi:(0,E.Nh)(e,t)},timestamp:performance.now()};return n.value.screenDiagonalCm=(0,E.Nh)(Math.hypot(n.value.screenWidthCm,n.value.screenHeightCm),t),n.value.screenDiagonalIn=(0,E.Nh)(n.value.screenDiagonalCm/2.54,t),n},Z=(e,t)=>{for(const n in e)e[n].style.top=t.getBoundingClientRect().top+50+"px"};var Y=__webpack_require__(8465),Q=__webpack_require__.n(Y);const J=32,ee=3,te=(e,t)=>"left"===e?.1*t:.9*t;function ne(e,t,n){e.fillStyle="#000",e.fillRect(t-(J>>1),n-(ee>>1),J,ee),e.fillRect(t-(ee>>1),n-(J>>1),ee,J)}const se=30;function re(e,t,n){return"left"===e?[t+(J+se)/2,n-(se>>1)]:[se>>1,t-(J+se)/2]}const ie=(e,{showIcon:t})=>({icon:t?"info":void 0,allowEscapeKey:!1,allowEnterKey:!1,allowOutsideClick:!1,showConfirmButton:!0,confirmButtonText:W.H.RC_ok[e.L],showClass:{popup:"fadeInUp",icon:""},hideClass:{popup:"fadeOutDown"},iconColor:e._CONST.COLOR.ORANGE,confirmButtonColor:"#aaa",customClass:{popup:"my__swal2__container",icon:"my__swal2__icon",title:"my__swal2__title",htmlContainer:`my__swal2__html rc-lang-${e.LD.toLowerCase()}`,confirmButton:"rc-button rc-go-button"}});let ae;"mocha"!==_._&&(ae=__webpack_require__(477).l);function oe(e,t,n=!1,s){const r=t.control;let i=e._CONST.N.PPI_DONT_USE;e.screenPpi&&(i=e.screenPpi.value);let a=!0,o=[],l=0;const u=document.createElement("div");u.innerHTML='',e.background.appendChild(u),e._constructFloatInstructionElement("blind-spot-instruction",W.H.RC_distanceTrackingCloseL[e.L]),e._addCreditOnBackground(W.H.RC_viewingBlindSpotCredit[e.L]);const c=document.querySelector("#blind-spot-canvas"),h=c.getContext("2d"),d=document.getElementById("blind-spot-instruction");let p="left";e._setFloatInstructionElementPos(p,16);let f,m=te(p,c.width);const g=()=>{c.style.width=(c.width=window.innerWidth)+"px",c.style.height=(c.height=window.innerHeight)+"px",m=te(p,c.width),f=re(p,m,c.width)},y=new ResizeObserver((()=>{g()}));y.observe(e.background),g();let b=f["left"===p?0:1],w=b,v=e._CONST.COLOR.DARK_RED,x="left"===p?1:-1;const A=(t=!0)=>{a=!1,r&&function(e,t){document.getElementById(e).removeEventListener("mousedown",t),document.getElementById(e).removeEventListener("touchstart",t)}("blind-spot-canvas",F),y.unobserve(e.background),e._removeBackground(),!e._trackingSetupFinishedStatus.distance&&t&&(e._trackingSetupFinishedStatus.distance=!0,e.gazeTracker.checkInitialized("distance",!1)&&e.endDistance()),(0,U.l)(D),(0,U.l)(M,"keyup")},C=async()=>{if("mocha"!==_._&&ae(),l+=1,o.push({dist:(0,E.Nh)(le(b,m,i),t.decimalPlace),v:x,closedEyeSide:p,crossX:m,circleX:b,ppi:i,timestamp:performance.now()}),2===Math.floor(l/t.repeatTesting))if(function(e){const t=[],n=[];for(const s of e)"left"===s.closedEyeSide?t.push(s.dist):n.push(s.dist);const s=(0,E.G8)(t),r=(0,E.G8)(n);return Math.abs(s-r)<.2*Math.min(s,r)}(o)){const r=e.newViewingDistanceData={value:(0,E.Nh)((0,E.JZ)(ue(o)),t.decimalPlace),timestamp:performance.now(),method:e._CONST.VIEW_METHOD.B,raw:{...o}};let i;n?(i="trackDistance",a=!1,y.unobserve(e.background),(0,U.l)(D),(0,U.l)(M,"keyup")):(i="measureDistance",A(!1)),t.check?await e._checkDistance(s,r,i,t.checkCallback):(0,E.nB)(s,r)}else{l=0;const t=o[0];O(t.v,t.closedEyeSide,t.crossX),o=[],Q().fire({...ie(e,{showIcon:!1}),icon:void 0,html:W.H.RC_viewingBlindSpotRejected[e.L],allowEnterKey:!0})}else l%t.repeatTesting==0?("left"===p?(p="right",d.innerHTML=W.H.RC_distanceTrackingCloseR[e.L]):(p="left",d.innerHTML=W.H.RC_distanceTrackingCloseL[e.L]),e._setFloatInstructionElementPos(p,16),O(1,p,te(p,c.width),!1,!0)):(x=-x,R(p,f))};let k=!1,S=null;const I=t=>{k||(T(),k=!0,v=e._CONST.COLOR.RED,S=setInterval((()=>{"ArrowLeft"===t.key?(b-=10,N()):"ArrowRight"===t.key&&(b+=10,N())}),30))},T=()=>{k=!1,v=e._CONST.COLOR.DARK_RED,S&&(clearInterval(S),S=null)},N=()=>{w=(0,E.AU)(b,...f),b=w},R=(e,t)=>{const n=t["left"===e?0:1],s=Math.abs(t[1]-t[0])/4;let r=(0,E.Av)(n-s,n+s);(r-t[0])*(r-t[1])>0&&(r=2*n-r),b=r},O=(t,n,s,r=!0,i=!0)=>{x=t,p=n,m=s,f=re(p,m,c.width),r&&(d.innerHTML="left"===p?W.H.RC_distanceTrackingCloseL[e.L]:W.H.RC_distanceTrackingCloseR[e.L],e._setFloatInstructionElementPos(p,16)),i&&(b=f["left"===p?0:1],R(n,f))},D=(0,U.m)({Escape:t.showCancelButton?A:void 0,Enter:C," ":C,ArrowLeft:r?I:E.Md,ArrowRight:r?I:E.Md}),M=(0,U.m)({ArrowLeft:r?T:E.Md,ArrowRight:r?T:E.Md},"keyup");(0,V.F)(e.L,e.background,{go:C,cancel:t.showCancelButton?A:void 0,custom:{callback:()=>{Q().fire({...ie(e,{showIcon:!1}),icon:void 0,html:W.H.RC_viewingDistanceIntroLiMethod[e.L],allowEnterKey:!0})},content:W.H.RC_viewingDistanceIntroTitle[e.L]}},e.params.showCancelButton);const z={x:null,circleX:null},F=t=>{const n=!(!t.touches||!t.touches[0]);let s,r;if(n||t.preventDefault(),n?(s=t.touches[0].clientX,r=t.touches[0].clientY):(s=t.clientX,r=t.clientY),i=b,a=c.height/2,o=s,l=r,(0,E.ll)(i,a,o,l)>1){z.x=s,z.circleX=b;const r=document.getElementById("blind-spot-canvas");v=e._CONST.COLOR.RED,r.classList.replace("cursor-grab","cursor-grabbing");const i=e=>{let s;t.preventDefault(),e.preventDefault(),s=n?e.touches[0].clientX:e.clientX,b=z.circleX+s-z.x,b=(0,E.AU)(b,...re(p,m,c.width))};n?document.addEventListener("touchmove",i):document.addEventListener("mousemove",i);const a=()=>{n?(document.removeEventListener("touchend",a),document.removeEventListener("touchmove",i)):(document.removeEventListener("mouseup",a),document.removeEventListener("mousemove",i)),z.x=null,z.circleX=null,v=e._CONST.COLOR.DARK_RED,r.classList.replace("cursor-grabbing","cursor-grab")};n?document.addEventListener("touchend",a):document.addEventListener("mouseup",a)}var i,a,o,l};r&&function(e,t){document.getElementById(e).addEventListener("mousedown",t),document.getElementById(e).addEventListener("touchstart",t)}("blind-spot-canvas",F);const B=performance.now();let L=B;const P=()=>{h.clearRect(0,0,c.width,c.height),ne(h,m,c.height/2),L=performance.now(),function(e,t,n,s,r,i,a=!0){t.beginPath(),t.arc(n,s,se>>1,0,2*Math.PI),t.closePath(),t.fillStyle=a?r%125<63?i:"#fff":i,t.fill()}(0,h,b,c.height/2,Math.round(L-B),v,t.sparkle),r||(b+=5*x,N()),a?requestAnimationFrame(P):h.clearRect(0,0,c.width,c.height)};requestAnimationFrame(P)}function le(e,t,n){return Math.abs(t-e)/n/(s=15,Math.tan(s*Math.PI/180))/.3937;var s}function ue(e){const t=[];for(const n of e)t.push(n.dist);return t}function ce(e,t={framerate:60,break:!1}){let n=0,s=0,r=0;const i=1e3/t.framerate,a=()=>{t.break||requestAnimationFrame(a),n=performance.now(),r=n-s,r>i&&(s=n-r%i,e())};requestAnimationFrame(a)}_.A.prototype.measureDistance=function(e={},t){if(!this.checkInitialized())return;let n;(0,E.$k)(),n=(void 0!==e.control&&e.control,W.H.RC_viewingDistanceIntroLiMethod[this.L]),e=Object.assign({fullscreen:!1,repeatTesting:1,sparkle:!0,decimalPlace:1,control:!0,headline:"📏 "+W.H.RC_viewingDistanceTitle[this.L],description:n,check:!1,checkCallback:!1,showCancelButton:!0},e),this.getFullscreen(e.fullscreen),this._addBackground(),this._replaceBackground((0,E.$O)(e.headline,null,!0,"")),oe(this,e,!1,t)};var he=__webpack_require__(2646);const de=async e=>{if(navigator.permissions&&navigator.permissions.query)return navigator.permissions.query({name:"camera"}).then((async t=>{if("prompt"===t.state)return await Q().fire({...ie(e,{showIcon:!1}),icon:void 0,imageUrl:"data:image/png;base64,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",imageWidth:480,imageAlt:"Please allow camera access",html:W.H.RC_requestCamera[e.L]+"
      "+W.H.RC_privacyCamera[e.L]})})).catch((e=>{}))},pe={video:!1};_.A.prototype.trackDistance=async function(e={},t,n){if(!this.checkInitialized())return;let s;if((0,E.$k)(),!1===this.gazeTracker.webgazer.getTracker().modelLoaded&&this.gazeTracker.webgazer.getTracker().loadModel(),s=(void 0!==e.control&&e.control,W.H.RC_viewingDistanceIntroLiMethod[this.L]),e=Object.assign({fullscreen:!1,repeatTesting:1,sparkle:!0,pipWidthPx:this._CONST.N.VIDEO_W[this.isMobile.value?"MOBILE":"DESKTOP"],showVideo:!0,showFaceOverlay:!1,decimalPlace:1,framerate:3,desiredDistanceCm:void 0,desiredDistanceTolerance:1.2,desiredDistanceMonitor:!1,desiredDistanceMonitorCancelable:!1,desiredDistanceMonitorAllowRecalibrate:!0,nearPoint:!0,showNearPoint:!1,control:!0,headline:"📏 "+W.H.RC_distanceTrackingTitle[this.L],description:W.H.RC_distanceTrackingIntroStart[this.L]+(0,he.G)(this.L)+s+(0,he.G)(this.L)+W.H.RC_distanceTrackingIntroEnd[this.L],check:!1,checkCallback:null,showCancelButton:!0},e),this.getFullscreen(e.fullscreen),this.gazeTracker.checkInitialized("distance"))return this.gazeTracker._toFixedN=e.decimalPlace,this.showNearPoint(e.showNearPoint),this.showVideo(e.showVideo),void this.showFaceOverlay(e.showFaceOverlay);this._addBackground(),this._constructFloatInstructionElement("gaze-system-instruction",W.H.RC_starting[this.L]),await de(this);const r=e=>{this.showVideo(pe.video),pe.video=!1,this.gazeTracker.checkInitialized("gaze",!1)&&this.showGazer(i),(0,E.nB)(t,e),ye.current=e},i=this.gazeTracker.webgazer.params.showGazeDot,a=async()=>{this._addBackground(),this._replaceBackground((0,E.$O)(e.headline,null,!0,"")),this.gazeTracker.checkInitialized("gaze",!1)&&this.showGazer(!1),oe(this,e,!0,r)};ge.pipWidthPx=e.pipWidthPx,ge.decimalPlace=e.decimalPlace,ge.framerate=e.framerate,ge.nearPoint=e.nearPoint,ge.showNearPoint=e.showNearPoint,ge.desiredDistanceCm=e.desiredDistanceCm,ge.desiredDistanceTolerance=e.desiredDistanceTolerance,ge.desiredDistanceMonitor=e.desiredDistanceMonitor,ge.desiredDistanceMonitorCancelable=e.desiredDistanceMonitorCancelable,ge.desiredDistanceMonitorAllowRecalibrate=e.desiredDistanceMonitorAllowRecalibrate,pe.video=e.showVideo,this.gazeTracker._init({toFixedN:1,showVideo:!0,showFaceOverlay:e.showFaceOverlay},"distance"),this._trackingSetupFinishedStatus.distance=!1;const o={options:e,callbackStatic:t,callbackTrack:n};e.nearPoint?fe(this,(()=>this._measurePD({},a)),n,o):fe(this,a,n,o)};const fe=async(e,t,n,s)=>{e.gazeTracker.beginVideo({pipWidthPx:ge.pipWidthPx},(()=>{e._removeFloatInstructionElement(),(0,E.nB)(t),Se(e,ge,n,s)}))},me=(e,t)=>Math.hypot(e.x-t.x,e.y-t.y,e.z-t.z),ge={pipWidthPx:0,decimalPlace:2,framerate:3,nearPoint:!0,showNearPoint:!1,desiredDistanceCm:void 0,desiredDistanceTolerance:1.2,desiredDistanceMonitor:!1,desiredDistanceMonitorCancelable:!1,desiredDistanceMonitorAllowRecalibrate:!0},ye={current:null};let be,we;const ve={framerate:20,break:!0};let xe=null,Ae=!1,Ce=0,ke=1;const Se=async(e,t,n,s)=>{const r=document.querySelector("#webgazerVideoCanvas");(0,E.yy)(1e3).then((async()=>{let i,a;Ce=0,ke=1;i=await e.gazeTracker.webgazer.getTracker().model;const o=e.screenPpi?e.screenPpi.value:e._CONST.N.PPI_DONT_USE;!e.screenPpi&&t.nearPoint,t.nearPoint&&t.showNearPoint&&(xe=document.createElement("div"),xe.id="rc-near-point-dot",document.body.appendChild(xe),Object.assign(xe.style,{display:"block",zIndex:999999,width:"10px",height:"10px",background:"green",position:"fixed",top:"-15px",left:"-15px"})),Ae=!1;const{desiredDistanceCm:l,desiredDistanceTolerance:u,desiredDistanceMonitor:c,desiredDistanceMonitorCancelable:h,desiredDistanceMonitorAllowRecalibrate:d}=t;e._distanceTrackNudging.distanceCorrectEnabled=!0,e._distanceTrackNudging.distanceDesired=l,e._distanceTrackNudging.distanceAllowedRatio=u,we=async()=>{const u=performance.now();if(a=await i.estimateFaces(r),a.length){e._trackingVideoFrameTimestamps.distance+=u;const i=a[0].keypoints;if(5===ke){if(Ce+=me(i[133],i[362]),Ce/=5,e._trackingVideoFrameTimestamps.distance/=5,null!==ye.current){if(!be){const t=Ee(o),n=Math.sqrt(Math.pow(ye.current.value,2)-Math.pow(t,2));ye.current.value=n,be=Ce*ye.current.value,s.options.check||e._removeBackground(),e._trackingSetupFinishedStatus.distance=!0,Ae=!0}const a=performance.now(),u=Math.round(a-e._trackingVideoFrameTimestamps.distance),p=e.newViewingDistanceData={value:(0,E.Nh)(be/Ce,t.decimalPlace),timestamp:a,method:e._CONST.VIEW_METHOD.F,latencyMs:u};let f;(Ae||c)&&(l&&e.nudgeDistance(h,d,s),Ae=!1),t.nearPoint&&(f=_e(e,t,r,i,Ce,a,o,u)),n&&"function"==typeof n&&(e.gazeTracker.defaultDistanceTrackCallback=n,n({value:{viewingDistanceCm:p.value,nearPointCm:f?f.value:[null,null],latencyMs:u},timestamp:a,method:e._CONST.VIEW_METHOD.F}))}Ce=0,ke=1,e._trackingVideoFrameTimestamps.distance=0}else Ce+=me(i[133],i[362]),++ke}},ve.break=!1,ve.framerate=5*t.framerate,ce(we,ve)}))},_e=(e,t,n,s,r,i,a,o)=>{const l=((e,t,n)=>[(-t.x-n.x+e.videoWidth)/2,(-t.y-n.y+e.videoHeight)/2])(n,s[133],s[362]);l.forEach(((t,n)=>{l[n]=(e.PDCm?e.PDCm.value:e._CONST.N.PD_DONT_USE)*t/r}));const u=e.newNearPointData={value:{x:(0,E.Nh)(l[0],t.decimalPlace),y:(0,E.Nh)(l[1]+screen.height/2*2.54/a,t.decimalPlace),latencyMs:o},timestamp:i};if(t.showNearPoint){const e=u.value.x*a/2.54,t=u.value.y*a/2.54;Object.assign(xe.style,{left:screen.width/2-window.screenLeft+e-5+"px",top:screen.height/2-window.screenTop-(window.outerHeight-window.innerHeight)-t-5+"px"})}return u};_.A.prototype.pauseDistance=function(){return this.gazeTracker.checkInitialized("distance",!0)&&!this._trackingPaused.distance?(ve.break=!0,xe&&(xe.style.display="none"),this._trackingVideoFrameTimestamps.distance=0,this._trackingPaused.distance=!0,this.pauseNudger(),this):null},_.A.prototype.resumeDistance=function(){return this.gazeTracker.checkInitialized("distance",!0)&&this._trackingPaused.distance?(ve.break=!1,xe&&(xe.style.display="block"),Ce=0,ke=1,this._trackingVideoFrameTimestamps.distance=0,ce(we,ve),this._trackingPaused.distance=!1,this.resumeNudger(),this):null},_.A.prototype.endDistance=function(e=!1,t=!0){return this.gazeTracker.checkInitialized("distance",!0)?(ve.break=!0,ve.framerate=20,ge.pipWidthPx=0,ge.decimalPlace=2,ge.framerate=3,ge.nearPoint=!0,ge.showNearPoint=!1,ge.desiredDistanceCm=void 0,ge.desiredDistanceTolerance=1.2,ge.desiredDistanceMonitor=!1,ge.desiredDistanceMonitorCancelable=!1,ge.desiredDistanceMonitorAllowRecalibrate=!0,ye.current=null,be=null,we=null,Ae=!1,this._trackingVideoFrameTimestamps.distance=0,this._trackingPaused.distance=!1,xe&&(document.body.removeChild(xe),xe=null),this.endNudger(),t&&this.gazeTracker.end("distance",e),this):null},_.A.prototype.getDistanceNow=async function(e=null){if(!this.checkInitialized()||!this.gazeTracker.checkInitialized("distance",!0)||!ve.break)return;const t=e||this.gazeTracker.defaultDistanceTrackCallback,n=document.querySelector("#webgazerVideoFeed"),s=await this.gazeTracker.webgazer.getTracker().model,r=performance.now(),i=await s.estimateFaces(n);if(i.length){const e=i[0].scaledMesh,s=me(e[133],e[362]),a=performance.now(),o=a-r,l=this.newViewingDistanceData={value:(0,E.Nh)(be/s,ge.decimalPlace),timestamp:a,method:this._CONST.VIEW_METHOD.F,latencyMs:o};let u;return ge.nearPoint&&(u=_e(this,ge,n,e,s,a,this.screenPpi?this.screenPpi.value:this._CONST.N.PPI_DONT_USE,o)),(0,E.nB)(t,{value:{viewingDistanceCm:l.value,nearPointCm:u?u.value:null,latencyMs:o},timestamp:a,method:this._CONST.VIEW_METHOD.F}),l}return null},_.A.prototype.showNearPoint=function(e=!0){if(this.gazeTracker.checkInitialized("distance",!1)){const t=document.querySelector("#rc-near-point-dot");t&&(t.display=e?"block":"none")}};const Ee=e=>2.54*(window.screen.height/2/e);_.A.prototype.nudgeDistance=function(e=!1,t=!0,n){if(!this.checkInitialized())return;const{distanceDesired:s,distanceAllowedRatio:r}=this._distanceTrackNudging;if(s){if(this.viewingDistanceCm&&this.viewingDistanceCm.method===this._CONST.VIEW_METHOD.F){if(Ie(this.viewingDistanceCm.value,s,r))return!0;{const i=()=>{this._removeNudger(),clearInterval(this._distanceTrackNudging.distanceCorrecting),this._distanceTrackNudging.distanceCorrecting=null,(0,U.l)(o)},a=async()=>{this.endDistance(),this._addBackground(),await(0,E.yy)(2e3),this.trackDistance(n.options,n.callbackStatic,n.callbackTrack)},o=(0,U.m)(e?{Escape:this.endNudger}:{});if(null===this._distanceTrackNudging.distanceCorrecting&&this._distanceTrackNudging.distanceCorrectEnabled){const[n,l,u]=Te(this);let c=e?{cancel:()=>{this.endNudger()}}:{};t&&(c={...c,custom:{callback:a,content:W.H.RC_distanceTrackingRedo[this.L]}}),(e||t)&&(0,V.F)(this.L,this.nudger,c,this.params.showCancelButton);const h=()=>{n.innerHTML=Ne(this,this.viewingDistanceCm.value,s),l.innerHTML=Math.round(this.viewingDistanceCm.value),u.innerHTML=Math.round(s)};h(),this._distanceTrackNudging.distanceCorrecting=setInterval((()=>{h(),Ie(this.viewingDistanceCm.value,s,r)&&(i(),(0,U.l)(o))}),200)}else this._distanceTrackNudging.distanceCorrecting&&!this._distanceTrackNudging.distanceCorrectEnabled&&i();return!1}}return!1}};const Ie=(e,t,n)=>{if(!Re(n))return!1;const s=t*n,r=t/n;return e<=Math.max(s,r)&&e>=Math.min(s,r)},Te=e=>(e._addNudger(`
      \n

      \n

      ${W.H.RC_distanceTrackingGuide[e.L].replace("xx1",'').replace("xx2",'')}

      \n
      \n `),[document.querySelector("#rc-distance-correct-instruction"),document.querySelector("#rc-distance-now"),document.querySelector("#rc-distance-desired")]),Ne=(e,t,n)=>t>=n?W.H.RC_distanceTrackingMoveCloser[e.L]:W.H.RC_distanceTrackingMoveFurther[e.L],Re=e=>!isNaN(e)&&(e>0&&1!==e);_.A.prototype.setDistanceDesired=function(e,t=null){return this._distanceTrackNudging.distanceDesired=e,t&&Re(t)&&(this._distanceTrackNudging.distanceAllowedRatio=t),e},_.A.prototype._addNudger=function(e){if(null!==this.nudger)return;let t=document.getElementById("calibration-nudger");return t||(t=document.createElement("div"),t.id="calibration-nudger",t.className=`calibration-nudger rc-lang-${this.LD.toLowerCase()}`,document.body.classList.add("lock-view"),document.body.appendChild(t),t.style.background=this.params.backgroundColor),e&&(t.innerHTML=e),this._nudger.element=t,this.nudger},_.A.prototype._removeNudger=function(){const e=document.getElementById("calibration-nudger");return!!e&&(document.body.classList.remove("lock-view"),document.body.removeChild(e),this._nudger={element:null},!0)},_.A.prototype.pauseNudger=function(){document.body.classList.add("hide-nudger")},_.A.prototype.resumeNudger=function(){document.body.classList.remove("hide-nudger")},_.A.prototype.endNudger=function(){return!!this._distanceTrackNudging.distanceCorrectEnabled&&(this._removeNudger(),this._distanceTrackNudging.distanceCorrectEnabled=!1,this._distanceTrackNudging.distanceCorrecting&&clearInterval(this._distanceTrackNudging.distanceCorrecting),this._distanceTrackNudging.distanceCorrecting=null,this._distanceTrackNudging.distanceDesired=null,this._distanceAllowedRatio=null,!0)};function Oe(e,t,n,s,r){const i=setInterval((()=>{const a=document.getElementById("webgazerVideoContainer");a&&(clearInterval(i),a.style.height=t/Number.parseInt(a.style.width)*Number.parseInt(a.style.height)+"px",a.style.width=`${t}px`,a.style.opacity=n,s.setVideoViewerSize(Number.parseInt(a.style.width),Number.parseInt(a.style.height)),De(e,a),setTimeout((()=>{e.videoOpacity(),e.isMobile.value?a.style.transition="right 0.5s, top 0.5s, width 0.5s, height 0.5s, border-radius 0.5s":a.style.transition="left 0.5s, bottom 0.5s, width 0.5s, height 0.5s, border-radius 0.5s",(0,E.nB)(r)}),700))}),100)}function De(e,t){e.isMobile.value?(t.style.left="unset",t.style.right=e._CONST.N.VIDEO_MARGIN,t.style.top=e._CONST.N.VIDEO_MARGIN,t.style.bottom="unset"):(t.style.left=e._CONST.N.VIDEO_MARGIN,t.style.right="unset",t.style.top="unset",t.style.bottom=e._CONST.N.VIDEO_MARGIN)}const Me={video:!1,videoWidth:0,videoHeight:0,opacity:1,gaze:!1,faceOverlay:!1},ze=.9;_.A.prototype._measurePD=async function(e={},t){if(!this.checkInitialized())return;(0,E.$k)(),e=Object.assign({fullscreen:!1,headline:"👁️ "+W.H.RC_nearPointTitle[this.L],description:W.H.RC_nearPointIntro[this.L],shortDescription:W.H.RC_nearPointIntro[this.L]},e),this.getFullscreen(e.fullscreen),await(0,E.yy)(1e3),this._replaceBackground(),this._replaceBackground((0,E.$O)(e.headline,e.shortDescription,!0));const n=this.screenPpi?this.screenPpi.value:this._CONST.N.PPI_DONT_USE,[s,r]=Fe(this),[i,a]=Pe(this,n,s,r),o=(e=!0)=>{i.removeEventListener("mousedown",a),this._removeBackground(),this.showVideo(Me.video),this.showGazer(Me.gaze),this.showFaceOverlay(Me.faceOverlay),this.gazeTracker.webgazer.showFaceFeedbackBox(!0),Object.assign(document.querySelector("#webgazerVideoContainer").style,{height:Me.videoHeight,width:Me.videoWidth,opacity:Me.opacity,borderRadius:"5px"}),De(this,document.querySelector("#webgazerVideoContainer")),Object.assign(document.querySelector("#webgazerVideoFeed").style,{height:Me.videoHeight,width:Me.videoWidth,top:"unset",transform:"scale(-1, 1)",transformOrigin:"unset"}),Me.video=!1,Me.videoWidth=0,Me.videoHeight=0,Me.opacity=1,Me.gaze=!1,Me.faceOverlay=!1,!this._trackingSetupFinishedStatus.distance&&e&&(this._trackingSetupFinishedStatus.distance=!0,this.endDistance()),(0,U.l)(u)},l=()=>{if(-100!==Le){const e={value:2.54*Le/n,timestamp:performance.now()};return this.newPDData=e,o(!1),(0,E.nB)(t,e)}},u=(0,U.m)({Escape:o,Enter:l," ":l});(0,V.F)(this.L,this.background,{go:l,cancel:o},this.params.showCancelButton),setTimeout((()=>{Q().fire({...ie(this,{showIcon:!1}),icon:void 0,imageUrl:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAADwCAIAAABXFyDtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGx2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDYgNzkuZGFiYWNiYiwgMjAyMS8wNC8xNC0wMDozOTo0NCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIyLjQgKE1hY2ludG9zaCkiIHhtcDpDcmVhdGVEYXRlPSIyMDIxLTA3LTI0VDExOjU3OjU0LTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMS0wOC0yNFQyMjoyNDo1MC0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMS0wOC0yNFQyMjoyNDo1MC0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpiMTIzYjE3ZS0wMzUzLTQ4YWEtOGJkYy0zNTk0YmRkODBjMjEiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo4MjdjNGM2Yi1jMzExLTE3NGQtYTgxZC0zZGUyN2JmMTgxYjAiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNWZiNzMxNi1hNDFiLTQyZTYtYmJiNy0yYTY2ODgxMzI1YTAiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjA1ZmI3MzE2LWE0MWItNDJlNi1iYmI3LTJhNjY4ODEzMjVhMCIgc3RFdnQ6d2hlbj0iMjAyMS0wNy0yNFQxMTo1Nzo1NC0wNDowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIyLjQgKE1hY2ludG9zaCkiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmQ3MjQ3ZjY2LTllZjItNDgzNy1hMGYzLWFmNzdmZDBjNDUxMyIgc3RFdnQ6d2hlbj0iMjAyMS0wNy0yNFQxMjozNTo1My0wNDowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIyLjQgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmIxMjNiMTdlLTAzNTMtNDhhYS04YmRjLTM1OTRiZGQ4MGMyMSIgc3RFdnQ6d2hlbj0iMjAyMS0wOC0yNFQyMjoyNDo1MC0wNDowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIyLjQgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+e9Ws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",imageWidth:480,imageAlt:"Measurement Instruction",html:e.description})}),700)};const Fe=e=>{const t=document.querySelector("#webgazerVideoFeed");if(t)return Be(e,t,document.querySelector("#webgazerVideoCanvas"),document.querySelector("#webgazerVideoContainer"))},Be=(e,t,n,s,r=null)=>{r||t.captureStream&&(r=t.captureStream());const i=.3*window.innerWidth/Number.parseInt(t.style.width)*Number.parseInt(t.style.height);Me.videoWidth=s.style.width,Me.videoHeight=s.style.height,Me.opacity=s.style.opacity;const a={height:Math.round(i)+"px",width:Math.round(window.innerWidth*ze)+"px",opacity:1,borderRadius:"15px"};Object.assign(s.style,a),e.isMobile.value?Object.assign(s.style,{right:Math.round(.5*window.innerWidth*(1-ze))+"px",top:Math.round(.5*(window.innerHeight-i))+"px"}):Object.assign(s.style,{left:Math.round(.5*window.innerWidth*(1-ze))+"px",bottom:Math.round(.5*(window.innerHeight-i))+"px"});const o={height:Math.round(i*ze/.3)+"px",width:Math.round(window.innerWidth*ze)+"px",top:Math.round(.6000000000000001*-i)+"px",transform:"scale(-2, 2)",transformOrigin:"center"};return Object.assign(t.style,o),Me.video=e.gazeTracker.webgazer.params.showVideo,Me.gaze=e.gazeTracker.webgazer.params.showGazeDot,Me.faceOverlay=e.gazeTracker.webgazer.params.showFaceOverlay,Me.video||e.showVideo(!0),Me.gaze&&e.showGazer(!1),Me.faceOverlay&&e.showFaceOverlay(!1),e.gazeTracker.webgazer.showFaceFeedbackBox(!1),[window.innerWidth*ze,i]};let Le=-100;const Pe=(e,t,n,s)=>{const r=document.createElement("div");r.id="rc-ruler",Object.assign(r.style,{height:.9*(window.innerHeight-s)/2+"px",width:2*window.innerWidth+"px",left:.25*(window.innerWidth-n)+"px",bottom:0,backgroundColor:"#FFD523dd",borderRadius:"7px 0 0 0",boxSizing:"border-box",borderBottom:"5px solid #bb6600"}),e.background.appendChild(r);const i=document.createElement("div");i.id="rc-ruler-scales",r.appendChild(i);const a=2.54*(r.clientWidth-60)/t;for(let n=0;n<=10*(0,E.Nh)(a,1);n++){const s=document.createElement("div"),r=.1*n*t/2.54+"px";if(s.className="rc-ruler-scale "+(n%10==0?"rc-ruler-major":n%5==0?"rc-ruler-secondary":"rc-ruler-minor"),s.style.left=r,i.appendChild(s),n%10==0){const t=document.createElement("p");t.className="rc-ruler-scale-text",t.style.left=r,t.innerHTML=n/10,i.appendChild(t),0===n&&(t.style.color=e._CONST.COLOR.DARK_RED)}}let o=document.createElement("div");i.appendChild(o),o.outerHTML=D(),o=document.querySelector("#size-arrow"),o.setAttribute("preserveAspectRatio","none"),o.style.left="-100px",o.style.top="40px",document.getElementById("size-arrow-fill").setAttribute("fill",e._CONST.COLOR.DARK_RED);const l=e=>{o.style.left=(Le=e.offsetX-30)+"px";const t=e=>{o.style.left=(Le=e.offsetX-30)+"px"};r.addEventListener("mousemove",t),r.addEventListener("mouseup",(function e(){r.removeEventListener("mousemove",t),r.removeEventListener("mouseup",e)}))};return r.addEventListener("mousedown",l),[r,l]};function Ue(e){return Ue="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ue(e)}var Ve=/^\s+/,We=/\s+$/;function je(e,t){if(t=t||{},(e=e||"")instanceof je)return e;if(!(this instanceof je))return new je(e,t);var n=function(e){var t={r:0,g:0,b:0},n=1,s=null,r=null,i=null,a=!1,o=!1;"string"==typeof e&&(e=function(e){e=e.replace(Ve,"").replace(We,"").toLowerCase();var t,n=!1;if(at[e])e=at[e],n=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};if(t=wt.rgb.exec(e))return{r:t[1],g:t[2],b:t[3]};if(t=wt.rgba.exec(e))return{r:t[1],g:t[2],b:t[3],a:t[4]};if(t=wt.hsl.exec(e))return{h:t[1],s:t[2],l:t[3]};if(t=wt.hsla.exec(e))return{h:t[1],s:t[2],l:t[3],a:t[4]};if(t=wt.hsv.exec(e))return{h:t[1],s:t[2],v:t[3]};if(t=wt.hsva.exec(e))return{h:t[1],s:t[2],v:t[3],a:t[4]};if(t=wt.hex8.exec(e))return{r:ht(t[1]),g:ht(t[2]),b:ht(t[3]),a:mt(t[4]),format:n?"name":"hex8"};if(t=wt.hex6.exec(e))return{r:ht(t[1]),g:ht(t[2]),b:ht(t[3]),format:n?"name":"hex"};if(t=wt.hex4.exec(e))return{r:ht(t[1]+""+t[1]),g:ht(t[2]+""+t[2]),b:ht(t[3]+""+t[3]),a:mt(t[4]+""+t[4]),format:n?"name":"hex8"};if(t=wt.hex3.exec(e))return{r:ht(t[1]+""+t[1]),g:ht(t[2]+""+t[2]),b:ht(t[3]+""+t[3]),format:n?"name":"hex"};return!1}(e));"object"==Ue(e)&&(vt(e.r)&&vt(e.g)&&vt(e.b)?(t=function(e,t,n){return{r:255*ut(e,255),g:255*ut(t,255),b:255*ut(n,255)}}(e.r,e.g,e.b),a=!0,o="%"===String(e.r).substr(-1)?"prgb":"rgb"):vt(e.h)&&vt(e.s)&&vt(e.v)?(s=pt(e.s),r=pt(e.v),t=function(e,t,n){e=6*ut(e,360),t=ut(t,100),n=ut(n,100);var s=Math.floor(e),r=e-s,i=n*(1-t),a=n*(1-r*t),o=n*(1-(1-r)*t),l=s%6,u=[n,a,i,i,o,n][l],c=[o,n,n,a,i,i][l],h=[i,i,o,n,n,a][l];return{r:255*u,g:255*c,b:255*h}}(e.h,s,r),a=!0,o="hsv"):vt(e.h)&&vt(e.s)&&vt(e.l)&&(s=pt(e.s),i=pt(e.l),t=function(e,t,n){var s,r,i;function a(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}if(e=ut(e,360),t=ut(t,100),n=ut(n,100),0===t)s=r=i=n;else{var o=n<.5?n*(1+t):n+t-n*t,l=2*n-o;s=a(l,o,e+1/3),r=a(l,o,e),i=a(l,o,e-1/3)}return{r:255*s,g:255*r,b:255*i}}(e.h,s,i),a=!0,o="hsl"),e.hasOwnProperty("a")&&(n=e.a));return n=lt(n),{ok:a,format:e.format||o,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=n.ok}function Ge(e,t,n){e=ut(e,255),t=ut(t,255),n=ut(n,255);var s,r,i=Math.max(e,t,n),a=Math.min(e,t,n),o=(i+a)/2;if(i==a)s=r=0;else{var l=i-a;switch(r=o>.5?l/(2-i-a):l/(i+a),i){case e:s=(t-n)/l+(t>1)+720)%360;--t;)s.h=(s.h+r)%360,i.push(je(s));return i}function it(e,t){t=t||6;for(var n=je(e).toHsv(),s=n.h,r=n.s,i=n.v,a=[],o=1/t;t--;)a.push(je({h:s,s:r,v:i})),i=(i+o)%1;return a}je.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,n,s=this.toRgb();return e=s.r/255,t=s.g/255,n=s.b/255,.2126*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))},setAlpha:function(e){return this._a=lt(e),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var e=qe(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=qe(this._r,this._g,this._b),t=Math.round(360*e.h),n=Math.round(100*e.s),s=Math.round(100*e.v);return 1==this._a?"hsv("+t+", "+n+"%, "+s+"%)":"hsva("+t+", "+n+"%, "+s+"%, "+this._roundA+")"},toHsl:function(){var e=Ge(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=Ge(this._r,this._g,this._b),t=Math.round(360*e.h),n=Math.round(100*e.s),s=Math.round(100*e.l);return 1==this._a?"hsl("+t+", "+n+"%, "+s+"%)":"hsla("+t+", "+n+"%, "+s+"%, "+this._roundA+")"},toHex:function(e){return He(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return function(e,t,n,s,r){var i=[dt(Math.round(e).toString(16)),dt(Math.round(t).toString(16)),dt(Math.round(n).toString(16)),dt(ft(s))];if(r&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)&&i[3].charAt(0)==i[3].charAt(1))return i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0)+i[3].charAt(0);return i.join("")}(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(100*ut(this._r,255))+"%",g:Math.round(100*ut(this._g,255))+"%",b:Math.round(100*ut(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*ut(this._r,255))+"%, "+Math.round(100*ut(this._g,255))+"%, "+Math.round(100*ut(this._b,255))+"%)":"rgba("+Math.round(100*ut(this._r,255))+"%, "+Math.round(100*ut(this._g,255))+"%, "+Math.round(100*ut(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(ot[He(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+Ke(this._r,this._g,this._b,this._a),n=t,s=this._gradientType?"GradientType = 1, ":"";if(e){var r=je(e);n="#"+Ke(r._r,r._g,r._b,r._a)}return"progid:DXImageTransform.Microsoft.gradient("+s+"startColorstr="+t+",endColorstr="+n+")"},toString:function(e){var t=!!e;e=e||this._format;var n=!1,s=this._a<1&&this._a>=0;return t||!s||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return je(this.toString())},_applyModification:function(e,t){var n=e.apply(null,[this].concat([].slice.call(t)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(Ye,arguments)},brighten:function(){return this._applyModification(Qe,arguments)},darken:function(){return this._applyModification(Je,arguments)},desaturate:function(){return this._applyModification($e,arguments)},saturate:function(){return this._applyModification(Xe,arguments)},greyscale:function(){return this._applyModification(Ze,arguments)},spin:function(){return this._applyModification(et,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(rt,arguments)},complement:function(){return this._applyCombination(tt,arguments)},monochromatic:function(){return this._applyCombination(it,arguments)},splitcomplement:function(){return this._applyCombination(st,arguments)},triad:function(){return this._applyCombination(nt,[3])},tetrad:function(){return this._applyCombination(nt,[4])}},je.fromRatio=function(e,t){if("object"==Ue(e)){var n={};for(var s in e)e.hasOwnProperty(s)&&(n[s]="a"===s?e[s]:pt(e[s]));e=n}return je(e,t)},je.equals=function(e,t){return!(!e||!t)&&je(e).toRgbString()==je(t).toRgbString()},je.random=function(){return je.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},je.mix=function(e,t,n){n=0===n?0:n||50;var s=je(e).toRgb(),r=je(t).toRgb(),i=n/100;return je({r:(r.r-s.r)*i+s.r,g:(r.g-s.g)*i+s.g,b:(r.b-s.b)*i+s.b,a:(r.a-s.a)*i+s.a})},je.readability=function(e,t){var n=je(e),s=je(t);return(Math.max(n.getLuminance(),s.getLuminance())+.05)/(Math.min(n.getLuminance(),s.getLuminance())+.05)},je.isReadable=function(e,t,n){var s,r,i=je.readability(e,t);switch(r=!1,(s=function(e){var t,n;t=((e=e||{level:"AA",size:"small"}).level||"AA").toUpperCase(),n=(e.size||"small").toLowerCase(),"AA"!==t&&"AAA"!==t&&(t="AA");"small"!==n&&"large"!==n&&(n="small");return{level:t,size:n}}(n)).level+s.size){case"AAsmall":case"AAAlarge":r=i>=4.5;break;case"AAlarge":r=i>=3;break;case"AAAsmall":r=i>=7}return r},je.mostReadable=function(e,t,n){var s,r,i,a,o=null,l=0;r=(n=n||{}).includeFallbackColors,i=n.level,a=n.size;for(var u=0;ul&&(l=s,o=je(t[u]));return je.isReadable(e,o,{level:i,size:a})||!r?o:(n.includeFallbackColors=!1,je.mostReadable(e,["#fff","#000"],n))};var at=je.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},ot=je.hexNames=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}(at);function lt(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function ut(e,t){(function(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var n=function(e){return"string"==typeof e&&-1!=e.indexOf("%")}(e);return e=Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function ct(e){return Math.min(1,Math.max(0,e))}function ht(e){return parseInt(e,16)}function dt(e){return 1==e.length?"0"+e:""+e}function pt(e){return e<=1&&(e=100*e+"%"),e}function ft(e){return Math.round(255*parseFloat(e)).toString(16)}function mt(e){return ht(e)/255}var gt,yt,bt,wt=(yt="[\\s|\\(]+("+(gt="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+gt+")[,|\\s]+("+gt+")\\s*\\)?",bt="[\\s|\\(]+("+gt+")[,|\\s]+("+gt+")[,|\\s]+("+gt+")[,|\\s]+("+gt+")\\s*\\)?",{CSS_UNIT:new RegExp(gt),rgb:new RegExp("rgb"+yt),rgba:new RegExp("rgba"+bt),hsl:new RegExp("hsl"+yt),hsla:new RegExp("hsla"+bt),hsv:new RegExp("hsv"+yt),hsva:new RegExp("hsva"+bt),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function vt(e){return!!wt.CSS_UNIT.exec(e)}var xt=__webpack_require__(782);const At=e=>e/2.54,Ct={video:!1,gazer:!1};function kt(e,t){e.background?e._replaceBackground((0,E.$O)(t.headline,t.description)):e._addBackground((0,E.$O)(t.headline,t.description)),e._constructFloatInstructionElement("gaze-system-instruction",W.H.RC_starting[e.L])}_.A.prototype.calibrateGaze=function(e={},t){if(!this.gazeTracker.checkInitialized("gaze",!0))return;(0,E.$k)(),(e=Object.assign({greedyLearner:!1,calibrationCount:1,headline:"👀 "+W.H.RC_gazeTrackingTitle[this.L],description:W.H.RC_gazeTrackingIntro[this.L]},e)).nudge=!1,Ct.video=this.gazeTracker.webgazer.params.showVideo,Ct.gazer=this.gazeTracker.webgazer.params.showGazeDot,Ct.video||this.showVideo(!0),Ct.gazer||this.showGazer(!0),this.gazeTracker.webgazer.params.greedyLearner=e.greedyLearner,kt(this,e);const n=St(this,e,(()=>{this._removeBackground(),(0,U.l)(s),(0,E.nB)(t,{timestamp:performance.now()})})),s=(0,U.m)({Escape:()=>{n.deleteSelf(!1),this._removeBackground(),this.showVideo(Ct.video),this.showGazer(Ct.gazer),Ct.video=!1,Ct.gazer=!1,this._trackingSetupFinishedStatus.gaze||(this._trackingSetupFinishedStatus.gaze=!0,this.endGaze()),(0,U.l)(s)}})};const St=(e,t,n)=>(e._removeFloatInstructionElement(),new _t(e,document.body,t,Ct,n));class _t{constructor(e,t,n,s,r){this._sequentialOrder(n.nudge),this.nudge=n.nudge,this.RC=e,this.clickThresholdBase=xt.Y?1:n.calibrationCount,this.clicks=0,this.position=this.order.shift(),this.clickThreshold=this.clickThresholdBase,this.r=this.RC._CONST.N.GAZE_CALIBRATION.R,this.div=document.createElement("div");const i=document.createElement("div"),a=document.createElement("div");this.div.className="rc-crosshair",this.div.id="rc-crosshair",i.className="rc-crosshair-component rc-crosshair-vertical",a.className="rc-crosshair-component rc-crosshair-horizontal",a.style.height=i.style.width=`${ee}px`,a.style.width=i.style.height=`${J}px`,this.div.style.background=e.params.backgroundColor;const o=je(e.params.backgroundColor).toRgb();return this.div.style.background=`rgba(${o.r}, ${o.g}, ${o.b}, 0.75)`,this.div.appendChild(i),this.div.appendChild(a),this.parent=t,this.parent.appendChild(this.div),this.placeDot(),this.handleClick=this.takeClick.bind(this),this.div.addEventListener("click",this.handleClick,!1),this.originalStyles=s,this.endCalibrationCallback=r,this.div}placeDot(){Object.assign(this.div.style,[{left:this.RC._CONST.N.GAZE_CALIBRATION.MARGIN+"px",right:"unset"},{left:`calc(50% - ${this.RC._CONST.N.GAZE_CALIBRATION.R/2}px)`,right:"unset"},{left:window.innerWidth-this.RC._CONST.N.GAZE_CALIBRATION.R-this.RC._CONST.N.GAZE_CALIBRATION.MARGIN+"px",right:"unset"},{left:`calc(50% - ${this.RC._CONST.N.GAZE_CALIBRATION.R/2}px - ${this.getOffsetPx(this.RC._CONST.N.GAZE_CALIBRATION.CENTER_EXTRA_CHECK_OFFSET)}px)`,right:"unset"},{left:`calc(50% - ${this.RC._CONST.N.GAZE_CALIBRATION.R/2}px + ${this.getOffsetPx(this.RC._CONST.N.GAZE_CALIBRATION.CENTER_EXTRA_CHECK_OFFSET)}px)`,right:"unset"},{left:`calc(50% - ${this.RC._CONST.N.GAZE_CALIBRATION.R/2}px - ${this.getOffsetPx(this.RC._CONST.N.GAZE_CALIBRATION.MID_EXTRA_CHECK_OFFSET,.3*window.innerWidth)}px)`,right:"unset"},{left:`calc(50% - ${this.RC._CONST.N.GAZE_CALIBRATION.R/2}px + ${this.getOffsetPx(this.RC._CONST.N.GAZE_CALIBRATION.MID_EXTRA_CHECK_OFFSET,.3*window.innerWidth)}px)`,right:"unset"}][this.position[0]],[{top:this.RC._CONST.N.GAZE_CALIBRATION.MARGIN+"px",bottom:"unset"},{top:`calc(50% - ${this.RC._CONST.N.GAZE_CALIBRATION.R/2}px)`,bottom:"unset"},{top:window.innerHeight-this.RC._CONST.N.GAZE_CALIBRATION.R-this.RC._CONST.N.GAZE_CALIBRATION.MARGIN+"px",bottom:"unset"},{top:`calc(50% - ${this.RC._CONST.N.GAZE_CALIBRATION.R/2}px - ${this.getOffsetPx(this.RC._CONST.N.GAZE_CALIBRATION.CENTER_EXTRA_CHECK_OFFSET)}px)`,bottom:"unset"},{top:`calc(50% - ${this.RC._CONST.N.GAZE_CALIBRATION.R/2}px + ${this.getOffsetPx(this.RC._CONST.N.GAZE_CALIBRATION.CENTER_EXTRA_CHECK_OFFSET)}px)`,bottom:"unset"},{top:`calc(50% - ${this.RC._CONST.N.GAZE_CALIBRATION.R/2}px - ${this.getOffsetPx(this.RC._CONST.N.GAZE_CALIBRATION.MID_EXTRA_CHECK_OFFSET,.3*window.innerHeight)}px)`,bottom:"unset"},{top:`calc(50% - ${this.RC._CONST.N.GAZE_CALIBRATION.R/2}px + ${this.getOffsetPx(this.RC._CONST.N.GAZE_CALIBRATION.MID_EXTRA_CHECK_OFFSET,.3*window.innerHeight)}px)`,bottom:"unset"}][this.position[1]])}takeClick(e){if(this.clickAtCenter(e)){this.clicks++,this.clicks>=this.clickThreshold&&(this.order.length?(this.position=this.order.shift(),this.clickThreshold=this.clickThresholdBase,this.placeDot(),this.clicks=0):this.deleteSelf(!0));const e=document.querySelectorAll(".leader-line");e&&e.forEach((e=>e.style.opacity=0))}}deleteSelf(e=!0){this.div.removeEventListener("click",this.handleClick,!1),this.parent.removeChild(this.div),e&&(this.nudge||this.RC.showVideo(this.originalStyles.video),this.nudge||(this.originalStyles.video=!1),this.RC.showGazer(this.originalStyles.gazer),this.originalStyles.gazer=!1,(0,E.nB)(this.endCalibrationCallback),this.nudge||(this.RC._trackingSetupFinishedStatus.gaze=!0))}clickAtCenter(e){const{x:t,y:n}=(0,E.KY)(e),{left:s,top:r,right:i,bottom:a}=this.div.getBoundingClientRect(),o=(s+i)/2,l=(r+a)/2;return t>=o-5&&t<=o+5&&n>=l-5&&n<=l+5}_randomOrder(){this.order=[];for(const e of[0,1,2])for(const t of[0,1,2])this.order.push([e,t]);(0,E.k4)(this.order)}_sequentialOrder(e=!1){this.order=e?[[1,1],[1,3],[4,1],[1,4],[3,1],[1,1],[1,4],[4,1],[1,3],[3,1],[1,1]]:xt.Y?[[0,0],[2,0],[2,2],[0,2],[1,1]]:[[1,1],[1,0],[2,0],[2,1],[2,2],[1,2],[0,2],[0,1],[0,0],[1,1],[1,2],[2,2],[2,1],[2,0],[1,0],[0,0],[0,1],[0,2],[1,1],[1,5],[6,5],[6,1],[6,6],[1,6],[5,6],[5,1],[5,5],[1,1],[1,6],[6,6],[6,1],[6,5],[1,5],[5,5],[5,1],[5,6],[1,1],[1,4],[4,1],[1,3],[3,1],[1,1],[1,3],[4,1],[1,4],[3,1],[1,1]]}getOffsetPx(e,t=null){const n=(s=e,r=this.RC.screenPpi?this.RC.screenPpi.value:this.RC._CONST.N.PPI_DONT_USE,i=this.RC.viewingDistanceCm?this.RC.viewingDistanceCm.value:this.RC._CONST.N.VIEW_DIST_DONT_USE,At(r)*i*Math.tan(s*(Math.PI/180)));var s,r,i;return t?Math.min(n,t):n}}_.A.prototype.trackGaze=async function(e={},t=null,n=null){if(!this.checkInitialized())return;if((0,E.$k)(),!1===this.gazeTracker.webgazer.getTracker().modelLoaded&&this.gazeTracker.webgazer.getTracker().loadModel(),e=Object.assign({fullscreen:!1,greedyLearner:!1,framerate:60,showGazer:!0,showVideo:!0,pipWidthPx:this._CONST.N.VIDEO_W[this.isMobile.value?"MOBILE":"DESKTOP"],showFaceOverlay:!1,calibrationCount:1,thresholdDeg:10,decimalPlace:0,headline:"👀 "+W.H.RC_gazeTrackingTitle[this.L],description:W.H.RC_gazeTrackingIntro[this.L]},e),this.getFullscreen(e.fullscreen),this.gazeTracker.checkInitialized("gaze"))return this.gazeTracker._toFixedN=e.decimalPlace,this.showGazer(e.showGazer),this.showVideo(e.showVideo),this.showFaceOverlay(e.showFaceOverlay),this.gazeTracker.attachNewCallback(n),void(this.gazeTracker.defaultGazeCallback=n);this._addBackground(),await de(this),this.gazeTracker._init({greedyLearner:e.greedyLearner,framerate:e.framerate,toFixedN:e.decimalPlace,showVideo:e.showVideo,showFaceOverlay:e.showFaceOverlay,showGazer:e.showGazer},"gaze"),kt(this,e);const s={pipWidthPx:e.pipWidthPx},r={greedyLearner:e.greedyLearner,calibrationCount:e.calibrationCount,headline:e.headline,description:e.description};this.gazeTracker.begin(s,(()=>{this._trackingSetupFinishedStatus.gaze=!1,this.calibrateGaze(r,i)}));const i=s=>{(0,E.nB)(t,s),this.gazeTracker.webgazer.params.greedyLearner||this.gazeTracker.stopLearning({click:!0,move:!0});return e.thresholdDeg,this.gazeTracker.attachNewCallback(n),void(this.gazeTracker.defaultGazeCallback=n)}},_.A.prototype.getGazeNow=async function(e={},t=null){if(!(this.checkInitialized()&&this.gazeTracker.checkInitialized("gaze",!0)&&this.gazeTracker.webgazer.params.paused&&this._trackingPaused.gaze))return;e=Object.assign({wait:0,frames:5},e);const n=t||this.gazeTracker.defaultGazeCallback;return await this.gazeTracker.getGazeNow(e,n)},_.A.prototype.pauseGaze=function(){!this.gazeTracker.checkInitialized("gaze",!0)&&this._trackingPaused.gaze||(this._trackingPaused.gaze=!0,this.gazeTracker.pause())},_.A.prototype.resumeGaze=function(){(this.gazeTracker.checkInitialized("gaze",!0)||this._trackingPaused.gaze)&&(this._trackingPaused.gaze=!1,this.gazeTracker.resume())},_.A.prototype.endGaze=function(e=!1){this.gazeTracker.checkInitialized("gaze",!0)&&(this._trackingPaused.gaze=!1,this.gazeTracker.end("gaze",e))},_.A.prototype.gazeLearning=function(e=!0,t){t=Object.assign({click:!0,move:!0},t),e?this.gazeTracker.startLearning(t):this.gazeTracker.stopLearning(t)},_.A.prototype.showGazer=function(e=!0){this.gazeTracker.checkInitialized("gaze",!1)&&this.gazeTracker.showGazer(e)},_.A.prototype.showVideo=function(e=!0){this.gazeTracker.checkInitialized("",!1)&&this.gazeTracker.showVideo(e)},_.A.prototype.showFaceOverlay=function(e=!0){this.gazeTracker.checkInitialized("gaze",!1)&&this.gazeTracker.showFaceOverlay(e)};var Et=__webpack_require__(7158),It=__webpack_require__.n(Et);const Tt={gazer:!1,gazeLearning:!1,gazePaused:!1},Nt={current:null};_.A.prototype.nudgeGaze=function(e={},t){if(!this.checkInitialized()||!this.gazeTracker.checkInitialized("gaze",!0))return;if(e=Object.assign({showOffset:!0},e),this._gazeTrackNudging.isCorrectingGaze)return;this._gazeTrackNudging.isCorrectingGaze=!0;let n=document.getElementById("gaze-nudger");n||(n=document.createElement("div"),n.id="gaze-nudger",n.className=`gaze-nudger rc-lang-${this.LD.toLowerCase()}`,document.body.classList.add("lock-view"),document.body.appendChild(n),n.style.background=this.params.backgroundColor);const s=`

      ${W.H.RC_gazeTrackingNudge[this.L]}

      `;n.innerHTML+=s;const r=Rt(this,n,t);if(this._nudger.gazeElement=n,e.showOffset){const e=document.createElement("div");e.id="fake-gaze-dot",e.style.position="absolute",e.style.left=this.gazePositionPx.value.x-5+"px",e.style.top=this.gazePositionPx.value.y-5+"px",e.style.width="10px",e.style.height="10px",e.style.borderRadius="50%",e.style.background="transparent",e.style.zIndex="9999999999",document.body.appendChild(e),Nt.current=new(It())(It().pointAnchor(e,{x:"50%",y:"50%"}),It().pointAnchor(r,{x:"50%",y:"50%"}),{path:"straight",color:this._CONST.COLOR.DARK_RED,startPlug:"disc"});const t=document.querySelector(".leader-line");t.style.zIndex=9999999999,t.style.opacity=.7,t.style.transitionDuration="0.2s"}Tt.gazePaused=this._trackingPaused.gaze,Tt.gazer=this.gazeTracker.webgazer.params.showGazeDot,Tt.gazeLearning=this.gazeTracker._learning,Tt.gazePaused&&this.resumeGaze(),Tt.gazer||this.showGazer(!0),Tt.gazeLearning||this.gazeLearning(!0,{click:!0,move:!1})};const Rt=(e,t,n)=>new _t(e,t,{greedyLearner:!1,calibrationCount:1,nudge:!0},Tt,(()=>{t.remove(),t=null,e._nudgerElement=null,document.body.classList.remove("lock-view"),Tt.gazePaused&&e.pauseGaze(),Tt.gazePaused=!1,Nt.current&&(Nt.current.remove(),Nt.current=null),e._gazeTrackNudging.isCorrectingGaze=!1,(0,E.nB)(n)}));var Ot=__webpack_require__(4948),Dt=__webpack_require__.n(Ot);let Mt=!1;_.A.prototype.getGazeAccuracy=function(e={},t,n){if(!this.checkInitialized())return!1;(0,E.$k)();const s=this.screenPpi,r=this.viewingDistanceCm;if(!s||!r)return!1;e=Object.assign({backgroundColor:"#eee",thresholdDeg:10,decimalPlace:3},e),this._addBackground();const i=document.createElement("div");i.innerHTML='',this.background.appendChild(i);const a=document.querySelector("#gaze-accuracy-canvas"),o=a.getContext("2d"),l=()=>{a.style.width=(a.width=window.innerWidth)+"px",a.style.height=(a.height=window.innerHeight)+"px"},u=new ResizeObserver((()=>{l()}));return u.observe(this.background),l(),Dt().fire({...ie(this,{showIcon:!0}),html:"We will measure your gaze accuracy. Please do not move the mouse and look at the fixation at the middle of the screen for the next 5 seconds."}).then((()=>{Mt=!0,zt(a,o,e),this.gazeTracker.startStoringPoints(),(0,E.yy)(5e3).then((()=>{Mt=!1,this.gazeTracker.stopStoringPoints();const i=this.gazeTracker.webgazer.getStoredPoints(),l=Ft({x:a.width/2,y:a.height/2},i,s.value,r.value);this.newGazeAccuracyData={value:(0,E.Nh)(l,e.decimalPlace),timestamp:performance.now()},l{const s=()=>{t.fillStyle=n.backgroundColor,t.fillRect(0,0,e.width,e.height),ne(t,e.width/2,e.height/2),Mt&&requestAnimationFrame(s)};requestAnimationFrame(s)},Ft=(e,t,n,s)=>{let r=0;for(let i=0;i0;)n=Math.random()*t|0,t--,jt(e,t,n)}function Vt(e,t,n){return Math.max(e,Math.min(t,n))}function Wt(e){return e%2==0?e:e+1}function jt(e,t,n){const s=e[t];e[t]=e[n],e[n]=s}function Gt(e,t){if(!e)throw new Error("string"==typeof t?t:t())}function qt(e,t,n=""){Gt($t(e,t),(()=>n+` Shapes ${e} and ${t} must match`))}function Ht(e){Gt(null!=e,(()=>"The input to the tensor constructor must be a non-null value."))}function Kt(e){if(0===e.length)return 1;let t=e[0];for(let n=1;n0),n,s){return new Promise(((r,i)=>{let a=0;const o=()=>{if(e())return void r();a++;const l=t(a);null!=n&&a>=n?i():null!=s?s(o,l):setTimeout(o,l)};o()}))}function Jt(e,t){let n=1,s=-1;for(let t=0;t=0)n*=e[t];else if(-1===e[t]){if(-1!==s)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${s} and dim ${t}`);s=t}else if(e[t]<0)throw Error(`Shapes can not be < 0. Found ${e[t]} at dim ${t}`);if(-1===s){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}`);const r=e.slice();return r[s]=t/n,r}function en(e,t){const n=t.length;return Gt((e=null==e?t.map(((e,t)=>t)):[].concat(e)).every((e=>e>=-n&&e`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`)),Gt(e.every((e=>Xt(e))),(()=>`All values in axis param must be integers but got axis ${e}`)),e.map((e=>e<0?n+e:e))}function tn(e,t){const n=[],s=[],r=null!=t&&Array.isArray(t)&&0===t.length,i=null==t||r?null:en(t,e).sort();let a=0;for(let t=0;tt)&&1===e[t]&&(n.push(e[t]),s.push(t)),i[a]<=t&&a++}1!==e[t]&&(n.push(e[t]),s.push(t))}return{newShape:n,keptDims:s}}function nn(e,t){return sn(e,t)}function sn(e,t){let 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 rn(e,t){return"complex64"!==t&&(("float32"!==t||"complex64"===e)&&(("int32"!==t||"float32"===e||"complex64"===e)&&("bool"!==t||"bool"!==e)))}function an(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 on(e){return"string"==typeof e||e instanceof String}function ln(e){return"number"==typeof e}function un(e){return Array.isArray(e)?un(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":ln(e)?"float32":on(e)?"string":"boolean"==typeof e?"bool":"float32"}function cn(e){return!!(e&&e.constructor&&e.call&&e.apply)}function hn(e,t){for(let n=t;n=0;--s)n[s]=n[s+1]*e[s+1];return n}function pn(e,t,n,s=!1){const r=new Array;if(1===t.length){const i=t[0]*(s?2:1);for(let t=0;te*t))*(s?2:1);for(let t=0;te*t))*(n?2:1);if(0===s)return[];if(s!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${n?" for a complex tensor":""}.`);return pn(0,e,t,n)}function mn(e,t){const n=gn(e,t);for(let e=0;ee*t),1);if(null==t||"float32"===t)return fn(e,new Float32Array(n));if("int32"===t)return fn(e,new Int32Array(n));if("bool"===t)return fn(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function bn(e){e.forEach((t=>{Gt(Number.isInteger(t)&&t>=0,(()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`))}))}function wn(e,t,n){if(0===t)return 0;if(1===t)return e[0];let s=e[e.length-1];for(let t=0;t{const[t,n]=e.split(":");this.urlFlags[t]=function(e,t){const n=t.toLowerCase();return"true"===n||"false"===n?"true"===n:""+ +n===n?+n:t}(0,n)}))}}}function kn(e){const t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,((e,...n)=>(function(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}(t,n[0],n[1]),n.join("=")))),t}function Sn(){return En}let _n,En=null;function In(){if(null==_n){let e;if("undefined"!=typeof window)e=window;else if(void 0!==__webpack_require__.g)e=__webpack_require__.g;else if("undefined"!=typeof process)e=process;else{if("undefined"==typeof self)throw new Error("Could not find a global object");e=self}_n=e}return _n}function Tn(e,t){const n=function(){const e=In();return null==e._tfGlobals&&(e._tfGlobals=new Map),e._tfGlobals}();if(n.has(e))return n.get(e);{const s=t();return n.set(e,s),n.get(e)}}const Nn="Abs",Rn="Acos",On="Acosh",Dn="Add",Mn="AddN",zn="All",Fn="Any",Bn="ArgMax",Ln="ArgMin",Pn="Asin",Un="Asinh",Vn="Atan",Wn="Atanh",jn="Atan2",Gn="AvgPool",qn="AvgPoolGrad",Hn="AvgPool3D",Kn="AvgPool3DGrad",$n="BatchMatMul",Xn="BatchToSpaceND",Zn="Bincount",Yn="BitwiseAnd",Qn="BroadcastArgs",Jn="Cast",es="Ceil",ts="ClipByValue",ns="Complex",ss="ComplexAbs",rs="Concat",is="Conv2D",as="Conv2DBackpropFilter",os="Conv2DBackpropInput",ls="Conv3D",us="Conv3DBackpropFilterV2",cs="Conv3DBackpropInputV2",hs="Cos",ds="Cosh",ps="Cumprod",fs="Cumsum",ms="CropAndResize",gs="DenseBincount",ys="DepthToSpace",bs="DepthwiseConv2dNative",ws="DepthwiseConv2dNativeBackpropFilter",vs="DepthwiseConv2dNativeBackpropInput",xs="Diag",As="Dilation2D",Cs="Dilation2DBackpropInput",ks="Dilation2DBackpropFilter",Ss="Draw",_s="RealDiv",Es="Einsum",Is="Elu",Ts="EluGrad",Ns="Erf",Rs="Equal",Os="Exp",Ds="ExpandDims",Ms="Expm1",zs="FFT",Fs="Fill",Bs="FlipLeftRight",Ls="Floor",Ps="FloorDiv",Us="FusedBatchNorm",Vs="GatherV2",Ws="GatherNd",js="Greater",Gs="GreaterEqual",qs="Identity",Hs="IFFT",Ks="Imag",$s="IsFinite",Xs="IsInf",Zs="IsNan",Ys="LeakyRelu",Qs="Less",Js="LessEqual",er="LinSpace",tr="Log",nr="Log1p",sr="LogicalAnd",rr="LogicalNot",ir="LogicalOr",ar="LRN",or="LRNGrad",lr="Max",ur="Maximum",cr="MaxPool",hr="MaxPoolGrad",dr="MaxPool3D",pr="MaxPool3DGrad",fr="MaxPoolWithArgmax",mr="Mean",gr="Min",yr="Minimum",br="MirrorPad",wr="Mod",vr="Multinomial",xr="Multiply",Ar="Neg",Cr="NotEqual",kr="NonMaxSuppressionV3",Sr="NonMaxSuppressionV4",_r="NonMaxSuppressionV5",Er="OnesLike",Ir="OneHot",Tr="Pack",Nr="PadV2",Rr="Pow",Or="Prelu",Dr="Prod",Mr="RaggedGather",zr="RaggedRange",Fr="RaggedTensorToTensor",Br="Range",Lr="Real",Pr="Reciprocal",Ur="Relu",Vr="Reshape",Wr="ResizeNearestNeighbor",jr="ResizeNearestNeighborGrad",Gr="ResizeBilinear",qr="ResizeBilinearGrad",Hr="Relu6",Kr="Reverse",$r="Round",Xr="Rsqrt",Zr="ScatterNd",Yr="TensorScatterUpdate",Qr="SearchSorted",Jr="Select",ei="Selu",ti="Slice",ni="Sin",si="Sinh",ri="Sign",ii="Sigmoid",ai="Softplus",oi="Sqrt",li="Sum",ui="SpaceToBatchND",ci="SplitV",hi="Softmax",di="SparseFillEmptyRows",pi="SparseReshape",fi="SparseSegmentMean",mi="SparseSegmentSum",gi="SparseToDense",yi="SquaredDifference",bi="Square",wi="StaticRegexReplace",vi="StridedSlice",xi="StringNGrams",Ai="StringSplit",Ci="StringToHashBucketFast",ki="Sub",Si="Tan",_i="Tanh",Ei="Tile",Ii="TopK",Ti="Transform",Ni="Transpose",Ri="Unique",Oi="Unpack",Di="UnsortedSegmentSum",Mi="ZerosLike",zi="Step",Fi="FromPixels",Bi="RotateWithOffset",Li="_FusedMatMul",Pi="FusedConv2D",Ui="FusedDepthwiseConv2D";function Vi(...e){!Sn().getBool("IS_TEST")&&Sn().getBool("PROD")}function Wi(...e){!Sn().getBool("IS_TEST")&&Sn().getBool("PROD")}const ji=Tn("kernelRegistry",(()=>new Map)),Gi=Tn("gradRegistry",(()=>new Map));function qi(e,t){const n=Zi(e,t);return ji.get(n)}function Hi(e){return Gi.get(e)}function Ki(e){const t=ji.entries(),n=[];for(;;){const{done:s,value:r}=t.next();if(s)break;const[i,a]=r,[o]=i.split("_");o===e&&n.push(a)}return n}function $i(e){const{kernelName:t,backendName:n}=e,s=Zi(t,n);ji.has(s)&&Vi(),ji.set(s,e)}function Xi(e){const{kernelName:t}=e;Gi.has(t)&&Sn().getBool("DEBUG")&&Vi(),Gi.set(t,e)}function Zi(e,t){return`${t}_${e}`}function Yi(e){return e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray}var Qi=__webpack_require__(3122);const Ji=__webpack_require__.n(Qi)()||Qi;function ea(e){return Ji.fromString(e,!0,16)}const ta=ea("c3a5c85c97cb3127"),na=ea("b492b66fbe98f273"),sa=ea("9ae16a3b2f90404f");function ra(e){return e.xor(e.shru(47))}function ia(e,t,n){const s=e.slice(t,t+n);return Ji.fromBytes(Array.from(s),!0,!0)}function aa(e,t){return ia(e,t,8)}function oa(e,t){return ia(e,t,4)}function la(e,t){return 0===t?e:e.shru(t).or(e.shl(64-t))}function ua(e,t,n=ea("9ddfea08eb382d69")){let s=e.xor(t).mul(n);s=s.xor(s.shru(47));let r=t.xor(s).mul(n);return r=r.xor(r.shru(47)),r=r.mul(n),r}function ca(e,t,n,s){return function(e,t,n,s,r,i){r=r.add(e),i=la(i.add(r).add(s),21);const a=r;return r=(r=r.add(t)).add(n),i=i.add(la(r,44)),[r.add(s),i.add(a)]}(aa(e,t),aa(e,t+8),aa(e,t+16),aa(e,t+24),n,s)}function ha(e,t=e.length){const n=Ji.fromNumber(81,!0);if(t<=32)return t<=16?function(e,t=e.length){if(t>=8){const n=sa.add(2*t),s=aa(e,0).add(sa),r=aa(e,t-8);return ua(la(r,37).mul(n).add(s),la(s,25).add(r).mul(n),n)}if(t>=4){const n=sa.add(2*t);return ua(oa(e,0).shl(3).add(t),oa(e,t-4),n)}if(t>0){const n=e[0]+(e[t>>1]<<8),s=t+(e[t-1]<<2);return ra(sa.mul(n).xor(ta.mul(s))).mul(sa)}return sa}(e,t):function(e,t=e.length){const n=sa.add(2*t),s=aa(e,0).mul(na),r=aa(e,8),i=aa(e,t-8).mul(n),a=aa(e,t-16).mul(sa);return ua(la(s.add(r),43).add(la(i,30)).add(a),s.add(la(r.add(sa),18)).add(i),n)}(e,t);if(t<=64)return function(e,t=e.length){const n=sa.add(2*t),s=aa(e,0).mul(sa),r=aa(e,8),i=aa(e,t-8).mul(n),a=aa(e,t-16).mul(sa),o=la(s.add(r),43).add(la(i,30)).add(a),l=ua(o,s.add(la(r.add(sa),18)).add(i),n),u=aa(e,16).mul(n),c=aa(e,24),h=o.add(aa(e,t-32)).mul(n),d=l.add(aa(e,t-24)).mul(n);return ua(la(u.add(c),43).add(la(h,30)).add(d),u.add(la(c.add(s),18)).add(h),n)}(e,t);let s=n,r=n.mul(na).add(113),i=ra(r.mul(sa).add(113)).mul(sa),a=[Ji.UZERO,Ji.UZERO],o=[Ji.UZERO,Ji.UZERO];s=s.mul(sa).add(aa(e,0));let l=0;const u=64*(t-1>>6),c=u+(t-1&63)-63;do{s=la(s.add(r).add(a[0]).add(aa(e,l+8)),37).mul(na),r=la(r.add(a[1]).add(aa(e,l+48)),42).mul(na),s=s.xor(o[1]),r=r.add(a[0]).add(aa(e,l+40)),i=la(i.add(o[0]),33).mul(na),a=ca(e,l,a[1].mul(na),s.add(o[0])),o=ca(e,l+32,i.add(o[1]),r.add(aa(e,l+16))),[i,s]=[s,i],l+=64}while(l!==u);const h=na.add(i.and(255).shl(1));return l=c,o[0]=o[0].add(t-1&63),a[0]=a[0].add(o[0]),o[0]=o[0].add(a[0]),s=la(s.add(r).add(a[0]).add(aa(e,l+8)),37).mul(h),r=la(r.add(a[1]).add(aa(e,l+48)),42).mul(h),s=s.xor(o[1].mul(9)),r=r.add(a[0].mul(9).add(aa(e,l+40))),i=la(i.add(o[0]),33).mul(h),a=ca(e,l,a[1].mul(h),s.add(o[0])),o=ca(e,l+32,i.add(o[1]),r.add(aa(e,l+16))),[i,s]=[s,i],ua(ua(a[0],o[0],h).add(ra(r).mul(ta)).add(i),ua(a[1],o[1],h).add(s),h)}function da(e,t){return"string"===t?ma(e):pa([e],t)}function pa(e,t){if("string"===t)throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=ba(e)),Sn().getBool("DEBUG")&&function(e,t){for(let n=0;n{s=n()};let i;const a=fa();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(r);else{r();for(const e of s)e.dataSync();i=Promise.resolve({kernelMs:fa()-a})}if(Sn().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let t=0;t{va(t,n.dtype,e)}))}return{kernelName:e,outputs:s,inputs:t,timeMs:i.then((e=>e.kernelMs)),extraInfo:i.then((e=>null!=e.getExtraProfileInfo?e.getExtraProfileInfo():""))}}logKernelProfile(e){const{kernelName:t,outputs:n,timeMs:s,inputs:r,extraInfo:i}=e;n.forEach((e=>{Promise.all([e.data(),s,i]).then((n=>{this.logger.logKernelProfile(t,e,n[0],n[1],r,n[2])}))}))}}function va(e,t,n){if("float32"!==t)return!1;for(let t=0;t0?s:""} `}}}}const Aa=20,Ca=3,ka=7;function Sa(e,t,n,s){const r=dn(t),i=function(e,t,n,s){const r=Kt(t),i=s[s.length-1],a=new Array(i).fill(0),o=t.length,l="complex64"===n?Ta(e):e;if(o>1)for(let e=0;e" "+e)).join("\n")),l.join("\n")}function _a(e,t,n){let s;return s=Array.isArray(e)?`${parseFloat(e[0].toFixed(ka))} + ${parseFloat(e[1].toFixed(ka))}j`:on(e)?`'${e}'`:"bool"===n?Ea(e):parseFloat(e.toFixed(ka)).toString(),Yt(s,t)}function Ea(e){return 0===e?"false":"true"}function Ia(e,t,n,s,r,i=!0){const a="complex64"===n?2:1,o=t[0],l=t.length;if(0===l){if("complex64"===n){return[_a(Ta(e)[0],0,n)]}return"bool"===n?[Ea(e[0])]:[e[0].toString()]}if(1===l){if(o>Aa){const t=Ca*a;let s=Array.from(e.slice(0,t)),i=Array.from(e.slice((o-Ca)*a,o*a));return"complex64"===n&&(s=Ta(s),i=Ta(i)),["["+s.map(((e,t)=>_a(e,r[t],n))).join(", ")+", ..., "+i.map(((e,t)=>_a(e,r[o-Ca+t],n))).join(", ")+"]"]}return["["+("complex64"===n?Ta(e):Array.from(e)).map(((e,t)=>_a(e,r[t],n))).join(", ")+"]"]}const u=t.slice(1),c=s.slice(1),h=s[0]*a,d=[];if(o>Aa){for(let t=0;t0?d[0]+p:"");for(let e=1;e`Length of values '${e}' does not match the size inferred by the shape '${this.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||sn(t,this.size),this.strides=dn(e)}set(e,...t){0===t.length&&(t=[0]),Gt(t.length===this.rank,(()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`));const n=this.locToIndex(t);this.values[n]=e}get(...e){0===e.length&&(e=[0]);let t=0;for(const n of e){if(n<0||n>=this.shape[t]){const t=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(t)}t++}let n=e[e.length-1];for(let t=0;tga(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}dataToGPU(e){return this.throwIfDisposed(),Ra().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();const e=Ra().readSync(this.dataId);if("string"===this.dtype)try{return e.map((e=>ga(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}async bytes(){this.throwIfDisposed();const e=await Ra().read(this.dataId);return"string"===this.dtype?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(this.kerasMask&&this.kerasMask.dispose(),Ra().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Oa.print(this,e)}clone(){return this.throwIfDisposed(),Oa.clone(this)}toString(e=!1){return Sa(this.dataSync(),this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Oa.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Ra().makeVariable(this,e,t,n)}}function za(){return Tn("Tensor",(()=>Ma))}Object.defineProperty(Ma,Symbol.hasInstance,{value:e=>!!e&&null!=e.data&&null!=e.dataSync&&null!=e.throwIfDisposed}),za();class Fa extends Ma{constructor(e,t,n,s){super(e.shape,e.dtype,e.dataId,s),this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!$t(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Ra().disposeTensor(this),this.dataId=e.dataId,Ra().incRef(this,null)}dispose(){Ra().disposeVariable(this),this.isDisposedInternal=!0}}var Ba,La,Pa,Ua,Va;Object.defineProperty(Fa,Symbol.hasInstance,{value:e=>e instanceof Ma&&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"}(Ba||(Ba={})),function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"}(La||(La={})),function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"}(Pa||(Pa={})),function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"}(Ua||(Ua={})),function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"}(Va||(Va={}));const Wa={float32:Ua,int32:La,bool:Pa,complex64:Va};function ja(e,t){if("string"===e||"string"===t){if("string"===e&&"string"===t)return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return Wa[e][t]}function Ga(e){return ja(e,"int32")}function qa(e){return null!=e&&"object"==typeof e&&"texture"in e&&e.texture instanceof WebGLTexture}function Ha(e){return"undefined"!=typeof GPUBuffer&&null!=e&&"object"==typeof e&&"buffer"in e&&e.buffer instanceof GPUBuffer}function Ka(e,t){if(e.dtype===t.dtype)return[e,t];const n=ja(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function $a(e,t){return t.some((t=>t.id===e.id))}function Xa(e){const t=[];return Za(e,t,new Set),t}function Za(e,t,n){if(null==e)return;if(e instanceof Ma)return void t.push(e);if(s=e,!Array.isArray(s)&&"object"!=typeof s)return;var s;const r=e;for(const e in r){const s=r[e];n.has(s)||(n.add(s),Za(s,t,n))}}function Ya(e){return null!=e.kernelName}class Qa{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map((e=>e.name))))}}}dispose(){for(const e in this.registeredVariables)this.registeredVariables[e].dispose()}}class Ja{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Qa}async ready(){if(null!=this.pendingBackendInit)return this.pendingBackendInit.then((()=>{}));if(null!=this.backendInstance)return;const e=this.getSortedBackends();for(let t=0;t{null!=e.setupFunc&&e.setupFunc(this.backendInstance)}))}disposeRegisteredKernels(e){Ki(e).forEach((t=>{null!=t.disposeFunc&&t.disposeFunc(this.registry[e])}))}initializeBackend(e){const t=this.registryFactory[e];if(null==t)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{const n=t.factory();if(!n||n instanceof Lt||"function"!=typeof n.then)return this.registry[e]=n,{success:!0,asyncInit:!1};{const t=++this.pendingBackendInitId,s=n.then((n=>!(t(tthis.registryFactory[t].priority-this.registryFactory[e].priority))}initializeBackendsAndReturnBest(){const e=this.getSortedBackends();for(let t=0;tthis.startScope(s)),(()=>this.endScope(n)),(()=>(n=t(),n)))}scopedRun(e,t,n){e();try{const e=n();return t(),e}catch(e){throw t(),e}}nextTensorId(){return Ja.nextTensorId++}nextVariableId(){return Ja.nextVariableId++}clone(e){const t=to.runKernel(qs,{x:e}),n={x:e};return this.addTapeNode(this.state.activeScope.name,n,[t],(e=>({x:()=>{const t={x:e},n={dtype:"float32"};return to.runKernel(Jn,t,n)}})),[],{}),t}runKernel(e,t,n){null==this.backendName&&this.backend;if(!(null!=qi(e,this.backendName)))throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,n){const s=this.backend.numDataIds();let r=0;n.forEach((e=>{r+="complex64"===e.dtype?3:1}));const i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],a=s-t-r-i;if(a>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${a} data ids) after running '${e}'`)}runKernelFunc(e){let t,n=[];const s=this.isTapeOn(),r=this.state.numBytes,i=this.state.numTensors;let a,o;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0),null==this.backendName&&this.backend;const l=Ya(e)?e.kernelName:null!=this.state.activeScope?this.state.activeScope.name:"";if(Ya(e)){const{kernelName:t,inputs:r,attrs:i}=e;null==this.backendName&&this.backend;const l=qi(t,this.backendName);Gt(null!=l,(()=>`Cannot find registered kernel '${t}' for backend '${this.backendName}'`)),a=()=>{const e=this.backend.numDataIds();o=l.kernelFunc({inputs:r,attrs:i,backend:this.backend});const a=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(t,e,a);const u=a.map((e=>null!=e.rank?e:this.makeTensorFromTensorInfo(e)));if(s){const e=this.getTensorsForGradient(t,r,u);n=this.saveTensorsForBackwardMode(e)}return u}}else{const{forwardFunc:t}=e,r=e=>{s&&(n=e.map((e=>this.keep(this.clone(e)))))};a=()=>{const e=this.backend.numDataIds();o=this.tidy((()=>t(this.backend,r)));const n=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,e,n),n}}const{inputs:u,attrs:c}=e,h=Ya(e)?null:e.backwardsFunc;let d;return this.scopedRun((()=>this.state.kernelDepth++),(()=>this.state.kernelDepth--),(()=>{this.ENV.getBool("DEBUG")||this.state.profiling?(d=this.profiler.profileKernel(l,u,(()=>a())),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(d),t=d.outputs):t=a()})),s&&this.addTapeNode(l,u,t,h,n,c),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(u).map((e=>null!=u[e]?u[e].shape:null)),outputShapes:t.map((e=>e.shape)),kernelTimeMs:d.timeMs,extraInfo:d.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){const t=e.map((e=>this.keep(this.clone(e))));return t}getTensorsForGradient(e,t,n){const s=Hi(e);if(null!=s){const e=s.inputsToSave||[],r=s.outputsToSave||[];let i;s.saveAllInputs?(Gt(Array.isArray(t),(()=>"saveAllInputs is true, expected inputs to be an array.")),i=Object.keys(t).map((e=>t[e]))):i=e.map((e=>t[e]));const a=n.filter(((e,t)=>r[t]));return i.concat(a)}return[]}makeTensor(e,t,n,s){if(null==e)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",s=s||this.backend;let r=e;"string"===n&&on(e[0])&&(r=e.map((e=>ma(e))));const i=s.write(r,t,n),a=new Ma(t,n,i,this.nextTensorId());if(this.trackTensor(a,s),"string"===n){const e=this.state.tensorInfo.get(i),t=function(e){if(null==e)return 0;let t=0;return e.forEach((e=>t+=e.length)),t}(r);this.state.numBytes+=t-e.bytes,e.bytes=t}return a}makeTensorFromDataId(e,t,n,s){const r={dataId:e,shape:t,dtype:n=n||"float32"};return this.makeTensorFromTensorInfo(r,s)}makeTensorFromTensorInfo(e,t){const{dataId:n,shape:s,dtype:r}=e,i=new Ma(s,r,n,this.nextTensorId());return this.trackTensor(i,t),i}makeVariable(e,t=!0,n,s){n=n||this.nextVariableId().toString(),null!=s&&s!==e.dtype&&(e=e.cast(s));const r=new Fa(e,t,n,this.nextTensorId());if(null!=this.state.registeredVariables[r.name])throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}trackTensor(e,t){this.state.numTensors++,"string"===e.dtype&&this.state.numStringTensors++;let n=0;"complex64"!==e.dtype&&"string"!==e.dtype&&(n=e.size*an(e.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n})),e instanceof Fa||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;const t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,"string"===e.dtype&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),"complex64"!==e.dtype&&"string"!==e.dtype){const t=e.size*an(e.dtype);this.state.numBytes-=t}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(const e in this.state.registeredVariables){const t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),null!=this.state.registeredVariables[e.name]&&delete this.state.registeredVariables[e.name]}memory(){const e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,null==e.reasons&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;const t=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map((e=>e.totalBytesSnapshot))),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(const e of this.state.activeProfile.kernels)e.kernelTimeMs=await e.kernelTimeMs,e.extraInfo=await e.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&0===this.state.kernelDepth}addTapeNode(e,t,n,s,r,i){const a={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:r},o=Hi(e);null!=o&&(s=o.gradFunc),null!=s&&(a.gradient=e=>(e=e.map(((e,t)=>{if(null==e){const e=n[t],s=gn(e.size,e.dtype);return this.makeTensor(s,e.shape,e.dtype)}return e})),s(e.length>1?e:e[0],r,i))),this.state.activeTape.push(a)}keep(e){return e.kept=!0,e}startTape(){0===this.state.gradientDepth&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){const t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){const t=Xa(e),n=new Set(t.map((e=>e.id)));for(let e=0;e{e.kept||e.scopeId!==s.id||this.track(e)}))}gradients(e,t,n,s=!1){if(Gt(t.length>0,(()=>"gradients() received an empty list of xs.")),null!=n&&"float32"!==n.dtype)throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);const r=this.scopedRun((()=>this.startTape()),(()=>this.endTape()),(()=>this.tidy("forward",e)));Gt(r instanceof Ma,(()=>"The result y returned by f() must be a tensor."));const i=function(e,t,n){const s={},r={};for(let e=0;es[e.id]=!0)),o=!0,r[i.id]=!0;break}if(o)break}}const i={};i[n.id]=!0;const a={};for(let t=e.length-1;t>=0;t--){const n=e[t],s=n.inputs;for(let e=0;e0)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",(()=>{const e={};e[r.id]=null==n?function(e){const t=mn(Kt(e),"float32");return to.makeTensor(t,e,"float32")}(r.shape):n,function(e,t,n,s){for(let r=t.length-1;r>=0;r--){const i=t[r],a=[];if(i.outputs.forEach((t=>{const n=e[t.id];null!=n?a.push(n):a.push(null)})),null==i.gradient)throw new Error(`Cannot compute gradient: gradient function not found for ${i.kernelName}.`);const o=i.gradient(a);for(const t in i.inputs){if(!(t in o))throw new Error(`Cannot backprop through input ${t}. Available gradients found: ${Object.keys(o)}.`);const r=n((()=>o[t]()));if("float32"!==r.dtype)throw new Error(`Error in gradient for op ${i.kernelName}. The gradient of input ${t} must have 'float32' dtype, but has '${r.dtype}'`);const a=i.inputs[t];if(!$t(r.shape,a.shape))throw new Error(`Error in gradient for op ${i.kernelName}. 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{const t=e[a.id];e[a.id]=s(t,r),t.dispose()}}}}(e,i,(e=>this.tidy(e)),no);const s=t.map((t=>e[t.id]));return 0===this.state.gradientDepth&&(this.state.activeTape.forEach((e=>{for(const t of e.saved)t.dispose()})),this.state.activeTape=null),{value:r,grads:s}}))}customGrad(e){return Gt(cn(e),(()=>"The f passed in customGrad(f) must be a function.")),(...t)=>{let n;Gt(t.every((e=>e instanceof Ma)),(()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors"));const s={};t.forEach(((e,t)=>{s[t]=e}));return this.runKernelFunc({forwardFunc:(s,r)=>(n=e(...t,r),Gt(n.value instanceof Ma,(()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor")),Gt(cn(n.gradFunc),(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function.")),n.value),backwardsFunc:(e,s)=>{const r=n.gradFunc(e,s),i=Array.isArray(r)?r:[r];Gt(i.length===t.length,(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...).")),Gt(i.every((e=>e instanceof Ma)),(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors."));const a={};return i.forEach(((e,t)=>{a[t]=()=>e})),a},inputs:s})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}readToGPU(e,t){return this.state.tensorInfo.get(e).backend.readToGPU(e,t)}async time(e){const t=fa(),n=await this.backend.time(e);return n.wallMs=fa()-t,n}track(e){return null!=this.state.activeScope&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Qa;for(const e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}}function eo(){const e=In();if(null==e._tfengine){const t=new Cn(e);e._tfengine=new Ja(t)}var t;return t=e._tfengine.ENV,En=t,Ra=()=>e._tfengine,e._tfengine}Ja.nextTensorId=0,Ja.nextVariableId=0;const to=eo();function no(e,t){const n={a:e,b:t};return to.runKernel(Dn,n)}let so;function ro(e){if(void 0!==so)return so;if(e||"undefined"!=typeof navigator&&null!=navigator){if(e||(e=navigator),"ReactNative"===e.product)return!0;const t=e.userAgent||e.vendor||("undefined"!=typeof window?window.opera:"");if(!t){const t=e;return t.userAgentData&&t.userAgentData.mobile}return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))}return!1}function io(){return"undefined"!=typeof window&&null!=window.document||"undefined"!=typeof WorkerGlobalScope}const ao=Sn();function oo(e,t){let n=e;if(ya(e))return"string"===t?[]:[e.length];if(qa(e)){const t=e.channels||"RGBA";return[e.height,e.width*t.length]}if(Ha(e))return[e.buffer.size/(null==t?4:an(t))];if(!Array.isArray(e))return[];const s=[];for(;Array.isArray(n)||ya(n)&&"string"!==t;)s.push(n.length),n=n[0];return Array.isArray(e)&&Sn().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&lo(e,s,[]),s}function lo(e,t,n){if(n=n||[],!Array.isArray(e)&&!ya(e))return void Gt(0===t.length,(()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`));Gt(t.length>0,(()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`)),Gt(e.length===t[0],(()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`));const s=t.slice(1);for(let t=0;t=0&&(r=s),uo(s,r,t,n),null==e||!ya(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e){const s=null==e?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${s}'`)}const i=oo(e,r);ya(e)||Array.isArray(e)||(e=[e]);const a="string"!==r?pa(e,r):ba(e,[],!0);return to.makeTensor(a,i,r)}function ho(e,t,n,s="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map(((e,r)=>co(e,`${t}[${r}]`,n,s)))}ao.registerFlag("DEBUG",(()=>!1),(e=>{})),ao.registerFlag("IS_BROWSER",(()=>io())),ao.registerFlag("IS_NODE",(()=>"undefined"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.node)),ao.registerFlag("IS_CHROME",(()=>"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor))),ao.registerFlag("IS_SAFARI",(()=>"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor))),ao.registerFlag("PROD",(()=>!1)),ao.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",(()=>ao.getBool("DEBUG"))),ao.registerFlag("DEPRECATION_WARNINGS_ENABLED",(()=>!0)),ao.registerFlag("IS_TEST",(()=>!1)),ao.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",(()=>ao.getBool("DEBUG"))),ao.registerFlag("WRAP_TO_IMAGEBITMAP",(()=>!1)),ao.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",(()=>!1)),ao.registerFlag("USE_SETTIMEOUTCUSTOM",(()=>!1));const po="__op";function fo(e){const 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.`);let n=t[0];const s=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n+=po;const r=(...e)=>{to.startScope(n);try{const t=s(...e);return xn(t),to.endScope(t),t}catch(e){throw to.endScope(null),e}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}const mo=fo({complex_:function(e,t){const n=co(e,"real","complex"),s=co(t,"imag","complex");qt(n.shape,s.shape,`real and imag shapes, ${n.shape} and ${s.shape}, must match in call to tf.complex().`);const r={real:n,imag:s};return to.runKernel(ns,r)}});function go(e,t,n,s){if(null==s)s=un(e);else if("complex64"===s)throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(Ha(e)||qa(e)){if("float32"!==s&&"int32"!==s)throw new Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${s}.`);return to.backend.createTensorFromGPUData(e,t||n,s)}if(!ya(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){bn(t);const e=Kt(t),s=Kt(n);Gt(e===s,(()=>`Based on the provided shape, [${t}], the tensor should have ${e} values but has ${s}`));for(let e=0;e`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `))}}return ya(e)||Array.isArray(e)||(e=[e]),t=t||n,e="string"!==s?pa(e,s):ba(e,[],!0),to.makeTensor(e,t,s)}function yo(e,t,n){return go(e,t,oo(e,n),n)}const bo={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};class wo{static join(e){return new wo(e).slice()}constructor(e){if(this.shards=[],this.previousShardIndex=0,null==e)return;if(e instanceof Array||(e=[e]),0===(e=e.map((e=>ya(e)?e.buffer:e))).length)return;this.bufferUniformSize=e[0].byteLength;let t=0;for(let n=0;n=this.byteLength)return-1;if(null!=this.bufferUniformSize)return this.previousShardIndex=Math.floor(e/this.bufferUniformSize),this.previousShardIndex;function t(t){return e=t.end?1:0}if(0===t(this.shards[this.previousShardIndex]))return this.previousShardIndex;const n=function(e,t){let n=0,s=e.length;for(;n<=s;){const r=Math.floor((s-n)/2)+n,i=t(e[r]);if(0===i)return r;i<0?s=r:n=r+1}return-1}(this.shards,t);return-1===n?-1:(this.previousShardIndex=n,this.previousShardIndex)}}function vo(){return to}function xo(){return to.memory()}function Ao(e,t){return to.tidy(e,t)}function Co(e){Xa(e).forEach((e=>e.dispose()))}function ko(e){return to.keep(e)}function So(e,t,n=1){return to.registerBackend(e,t,n)}function _o(){return to.backend}Da=function(e){Sn().getBool("DEPRECATION_WARNINGS_ENABLED")};const Eo=4;async function Io(e,t){const n=[],s=[],r=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);for(let i=0;i{const t=await o.bytes(),n=t.reduce(((e,t)=>e+t.length),0)+Eo*t.length,s=new Uint8Array(n);let r=0;for(let e=0;en.slice(r+e,r+t)));s[e.name]=Oo(e,n.slice(r,r+t)),r+=t}return s}function No(e,t){const n=Kt(e.shape);let s;if("quantization"in e){const t=e.quantization;s=bo[t.dtype]}else{if("string"===e.dtype){let e=0;for(let s=0;s{let t=e<<13,n=0;for(;!(8388608&t);)n-=8388608,t<<=1;return t&=-8388609,n+=947912704,t|n},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let e=1024;e<2048;e++)t[e]=939524096+(e-1024<<13);return t}(),t=function(){const e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}(),n=function(){const e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}();return s=>{const r=new ArrayBuffer(4*s.length),i=new Uint32Array(r);for(let r=0;r>10]+(1023&a)]+t[a>>10];i[r]=o}return new Float32Array(r)}}();a=e(u)}}else{if("int32"!==s)throw new Error(`Unsupported dtype in weight '${n}': ${s}`);if("uint8"!==r.dtype&&"uint16"!==r.dtype)throw new Error(`Unsupported quantization type ${r.dtype} for weight type int32.`);a=new Int32Array(u.length);for(let e=0;e(r=await Do(s,r,t),r.slice(e,t))));r=await Do(s,r,t);const i=r.slice(0,t);r=r.slice(t);const a=Oo(e,i);if(n[e.name]=a,"webgpu"===to.backendName){const e=_o();"uploadToGPU"in e&&Kt(a.shape)>=Sn().get("WEBGPU_CPU_HANDOFF_SIZE_THRESHOLD")&&e.uploadToGPU(a.dataId)}}return n}function zo(e){if(null===e)throw new Error(`Invalid input value: ${JSON.stringify(e)}`);let t=0;const n=[];e.forEach((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}`)}));const s=new Uint8Array(t);let r=0;return n.forEach((e=>{s.set(new Uint8Array(e.buffer),r),r+=e.byteLength})),s.buffer}const Fo="undefined"!=typeof Buffer&&("undefined"==typeof Blob||"undefined"==typeof atob||"undefined"==typeof btoa);function Bo(e){return Fo?Buffer.byteLength(e,"utf8"):new Blob([e]).size}function Lo(e){return wo.join(e)}function Po(e){for(e=e.trim();e.endsWith("/");)e=e.slice(0,e.length-1);const t=e.split("/");return t[t.length-1]}function Uo(e,t){const n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:t};return null!=e.signature&&(n.signature=e.signature),null!=e.userDefinedMetadata&&(n.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(n.modelInitializer=e.modelInitializer),null!=e.initializerSignature&&(n.initializerSignature=e.initializerSignature),null!=e.trainingConfig&&(n.trainingConfig=e.trainingConfig),n}function Vo(e,t,n){const s={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};if(null!=e.trainingConfig&&(s.trainingConfig=e.trainingConfig),null!=e.weightsManifest){if(!t)throw new Error("modelJSON has weightsManifest but weightSpecs is null");if(!n)throw new Error("modelJSON has weightsManifest but weightData is null");s.weightSpecs=t,s.weightData=n}return null!=e.signature&&(s.signature=e.signature),null!=e.userDefinedMetadata&&(s.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(s.modelInitializer=e.modelInitializer),null!=e.initializerSignature&&(s.initializerSignature=e.initializerSignature),s}async function Wo(e,t){let n,s;return null!=e.weightsManifest&&([n,s]=await t(e.weightsManifest)),Vo(e,n,s)}function jo(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:Bo(JSON.stringify(e.modelTopology)),weightSpecsBytes:null==e.weightSpecs?0:Bo(JSON.stringify(e.weightSpecs)),weightDataBytes:null==e.weightData?0:new wo(e.weightData).byteLength}}function Go(e){const t=[];for(const n of e)t.push(...n.weights);return t}class qo{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return null==qo.instance&&(qo.instance=new qo),qo.instance}static registerSaveRouter(e){qo.getInstance().saveRouters.push(e)}static registerLoadRouter(e){qo.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return qo.getHandlers(e,"save")}static getLoadHandlers(e,t){return qo.getHandlers(e,"load",t)}static getHandlers(e,t,n){const s=[];return("load"===t?qo.getInstance().loadRouters:qo.getInstance().saveRouters).forEach((t=>{const r=t(e,n);null!==r&&s.push(r)})),s}}const Ho=e=>qo.registerSaveRouter(e),Ko=e=>qo.registerLoadRouter(e),$o=e=>qo.getSaveHandlers(e),Xo=(e,t)=>qo.getLoadHandlers(e,t),Zo="tensorflowjs",Yo="models_store",Qo="model_info_store";function Jo(){if(!Sn().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");const e="undefined"==typeof window?self: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 el(e){const t=e.result;t.createObjectStore(Yo,{keyPath:"modelPath"}),t.createObjectStore(Qo,{keyPath:"modelPath"})}class tl{constructor(e){if(this.indexedDB=Jo(),null==e||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise(((e,n)=>{const s=this.indexedDB.open(Zo,1);s.onupgradeneeded=()=>el(s),s.onsuccess=()=>{const r=s.result;if(null==t){const t=r.transaction(Yo,"readonly"),s=t.objectStore(Yo).get(this.modelPath);s.onsuccess=()=>{if(null==s.result)return r.close(),n(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));e(s.result.modelArtifacts)},s.onerror=e=>(r.close(),n(s.error)),t.oncomplete=()=>r.close()}else{t.weightData=wo.join(t.weightData);const s=jo(t),i=r.transaction(Qo,"readwrite");let a,o,l=i.objectStore(Qo);try{a=l.put({modelPath:this.modelPath,modelArtifactsInfo:s})}catch(e){return n(e)}a.onsuccess=()=>{o=r.transaction(Yo,"readwrite");const a=o.objectStore(Yo);let u;try{u=a.put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:s})}catch(e){return n(e)}u.onsuccess=()=>e({modelArtifactsInfo:s}),u.onerror=e=>{l=i.objectStore(Qo);const t=l.delete(this.modelPath);t.onsuccess=()=>(r.close(),n(u.error)),t.onerror=e=>(r.close(),n(u.error))}},a.onerror=e=>(r.close(),n(a.error)),i.oncomplete=()=>{null==o?r.close():o.oncomplete=()=>r.close()}}},s.onerror=e=>n(s.error)}))}}tl.URL_SCHEME="indexeddb://";const nl=e=>{return Sn().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(tl.URL_SCHEME)?(t=e.slice(tl.URL_SCHEME.length),new tl(t)):null;var t};qo.registerSaveRouter(nl),qo.registerLoadRouter(nl);class sl{constructor(){this.indexedDB=Jo()}async listModels(){return new Promise(((e,t)=>{const n=this.indexedDB.open(Zo,1);n.onupgradeneeded=()=>el(n),n.onsuccess=()=>{const s=n.result,r=s.transaction(Qo,"readonly"),i=r.objectStore(Qo).getAll();i.onsuccess=()=>{const t={};for(const e of i.result)t[e.modelPath]=e.modelArtifactsInfo;e(t)},i.onerror=e=>(s.close(),t(i.error)),r.oncomplete=()=>s.close()},n.onerror=e=>t(n.error)}))}async removeModel(e){var t;return e=(t=e).startsWith(tl.URL_SCHEME)?t.slice(tl.URL_SCHEME.length):t,new Promise(((t,n)=>{const s=this.indexedDB.open(Zo,1);s.onupgradeneeded=()=>el(s),s.onsuccess=()=>{const r=s.result,i=r.transaction(Qo,"readwrite"),a=i.objectStore(Qo),o=a.get(e);let l;o.onsuccess=()=>{if(null==o.result)return r.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{const s=a.delete(e),i=()=>{l=r.transaction(Yo,"readwrite");const s=l.objectStore(Yo).delete(e);s.onsuccess=()=>t(o.result.modelArtifactsInfo),s.onerror=e=>n(o.error)};s.onsuccess=i,s.onerror=e=>(i(),r.close(),n(o.error))}},o.onerror=e=>(r.close(),n(o.error)),i.oncomplete=()=>{null==l?r.close():l.oncomplete=()=>r.close()}},s.onerror=e=>n(s.error)}))}}const rl="/",il="tensorflowjs_models",al="info",ol="model_topology",ll="weight_specs",ul="weight_data",cl="model_metadata";function hl(e){return{info:[il,e,al].join(rl),topology:[il,e,ol].join(rl),weightSpecs:[il,e,ll].join(rl),weightData:[il,e,ul].join(rl),modelMetadata:[il,e,cl].join(rl)}}function dl(e){for(const t of Object.values(e))window.localStorage.removeItem(t)}function pl(e){const t=e.split(rl);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(rl)}class fl{constructor(e){if(!Sn().getBool("IS_BROWSER")||"undefined"==typeof window||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=hl(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{const t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),s=jo(e),r=wo.join(e.weightData);try{this.LS.setItem(this.keys.info,JSON.stringify(s)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,function(e){if(Fo)return Buffer.from(e).toString("base64");const t=new Uint8Array(e);let n="";for(let e=0,s=t.length;e{return Sn().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(fl.URL_SCHEME)?(t=e.slice(fl.URL_SCHEME.length),new fl(t)):null;var t};qo.registerSaveRouter(ml),qo.registerLoadRouter(ml);class gl{constructor(){Gt(Sn().getBool("IS_BROWSER"),(()=>"Current environment is not a web browser")),Gt("undefined"==typeof window||void 0!==window.localStorage,(()=>"Current browser does not appear to support localStorage")),this.LS=window.localStorage}async listModels(){const e={},t=il+rl,n=rl+al;for(let s=0;s"scheme must not be undefined or null.")),e.endsWith(yl)&&(e=e.slice(0,e.indexOf(yl))),Gt(e.length>0,(()=>"scheme must not be an empty string."));const n=bl.getInstance();Gt(null==n.managers[e],(()=>`A model store manager is already registered for scheme '${e}'.`)),n.managers[e]=t}static getManager(e){const t=bl.getInstance().managers[e];if(null==t)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(bl.getInstance().managers)}}function wl(e){if(-1===e.indexOf(yl))throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${bl.getSchemes().join(",")}`);return{scheme:e.split(yl)[0],path:e.split(yl)[1]}}async function vl(e,t,n=!1){Gt(e!==t,(()=>`Old path and new path are the same: '${e}'`));const s=qo.getLoadHandlers(e);Gt(s.length>0,(()=>`Copying failed because no load handler is found for source URL ${e}.`)),Gt(s.length<2,(()=>`Copying failed because more than one (${s.length}) load handlers for source URL ${e}.`));const r=s[0],i=qo.getSaveHandlers(t);Gt(i.length>0,(()=>`Copying failed because no save handler is found for destination URL ${t}.`)),Gt(i.length<2,(()=>`Copying failed because more than one (${s.length}) save handlers for destination URL ${t}.`));const a=i[0],o=wl(e).scheme,l=wl(e).path,u=o===wl(e).scheme,c=await r.load();n&&u&&await bl.getManager(o).removeModel(l);const h=await a.save(c);return n&&!u&&await bl.getManager(o).removeModel(l),h.modelArtifactsInfo}async function xl(){const e=bl.getSchemes(),t={};for(const n of e){const e=await bl.getManager(n).listModels();for(const s in e){t[n+yl+s]=e[s]}}return t}async function Al(e){const t=wl(e);return bl.getManager(t.scheme).removeModel(t.path)}async function Cl(e,t){return vl(e,t,!1)}async function kl(e,t){return vl(e,t,!0)}class Sl{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return null==this.textEncoder&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}setTimeoutCustom(e,t){"undefined"!=typeof window&&Sn().getBool("USE_SETTIMEOUTCUSTOM")?(this.functionRefs.push(e),setTimeout((()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")}),t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",(e=>{if(e.source===window&&e.data.name===this.messageName){e.stopPropagation();(0,this.functionRefs[e.data.index])(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}}),!0))):setTimeout(e,t)}isTypedArray(e){return Yi(e)}}if(Sn().get("IS_BROWSER")){Sn().setPlatform("browser",new Sl);try{bl.registerManager(fl.URL_SCHEME,new gl)}catch(e){}try{bl.registerManager(tl.URL_SCHEME,new sl)}catch(e){}}const _l=()=>__webpack_require__(8273);let El;class Il{constructor(){this.util=__webpack_require__(9830),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return null!=Sn().global.fetch?Sn().global.fetch(e,t):(null==El&&(El=_l()),El(e,t))}now(){const e=process.hrtime();return 1e3*e[0]+e[1]/1e6}encode(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)}decode(e,t){return 0===e.length?"":new this.util.TextDecoder(t).decode(e)}isTypedArray(e){return this.util.types.isFloat32Array(e)||this.util.types.isInt32Array(e)||this.util.types.isUint8Array(e)||this.util.types.isUint8ClampedArray(e)}}function Tl(e,t="float32",n){return t=t||"float32",bn(e),new Na(e,t,n)}Sn().get("IS_NODE")&&!Sn().get("IS_BROWSER")&&Sn().setPlatform("node",new Il);const Nl=fo({cast_:function(e,t){const n=co(e,"x","cast");if(!function(e){return"bool"===e||"complex64"===e||"float32"===e||"int32"===e||"string"===e}(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");const s={x:n},r={dtype:t};return to.runKernel(Jn,s,r)}});const Rl=fo({clone_:function(e){const t={x:co(e,"x","clone","string_or_numeric")};return to.runKernel(qs,t)}});function Ol(e,t=!1){}eo();Oa={buffer:Tl,cast:Nl,clone:Rl,print:Ol};const Dl=fo({add_:function(e,t){let n=co(e,"a","add"),s=co(t,"b","add");[n,s]=Ka(n,s);const r={a:n,b:s};return to.runKernel(Dn,r)}});const Ml=fo({floorDiv_:function(e,t){let n=co(e,"a","floorDiv"),s=co(t,"b","floorDiv");[n,s]=Ka(n,s);const r={a:n,b:s};return to.runKernel(Ps,r)}});const zl=fo({div_:function(e,t){let n=co(e,"a","div"),s=co(t,"b","div");if([n,s]=Ka(n,s),"int32"===n.dtype&&"int32"===s.dtype)return Ml(n,s);const r={a:n,b:s};return to.runKernel(_s,r,{})}});const Fl=fo({mul_:function(e,t){let n=co(e,"a","mul"),s=co(t,"b","mul");[n,s]=Ka(n,s);const r={a:n,b:s};return to.runKernel(xr,r)}});const Bl=fo({sqrt_:function(e){const t={x:co(e,"x","sqrt","float32")};return to.runKernel(oi,t)}});const Ll=fo({square_:function(e){const t=co(e,"x","square");return to.runKernel("Square",{x:t},{})}});const Pl=fo({zerosLike_:function(e){const t={x:co(e,"x","zerosLike")};return to.runKernel(Mi,t)}});function Ul(e){return to.customGrad(e)}function Vl(e,t){if((ya(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&&ya(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return go(e,[],[],t)}const Wl=new Map,jl=new Map;class Gl{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class ql{constructor(){this.classNameMap={}}static getMap(){return null==ql.instance&&(ql.instance=new ql),ql.instance}static register(e){ql.getMap().classNameMap[e.className]=[e,e.fromConfig]}}function Hl(e,t,n){Gt(null!=e.className,(()=>"Class being registered does not have the static className property defined.")),Gt("string"==typeof e.className,(()=>"className is required to be a string, but got type "+typeof e.className)),Gt(e.className.length>0,(()=>"Class being registered has an empty-string as its className, which is disallowed.")),void 0===t&&(t="Custom"),void 0===n&&(n=e.className);const s=t+">"+n;return ql.register(e),Wl.set(s,e),jl.set(e,s),e}class Kl extends Gl{minimize(e,t=!1,n){const{value:s,grads:r}=this.computeGradients(e,n);if(null!=n){const e=n.map((e=>({name:e.name,tensor:r[e.name]})));this.applyGradients(e)}else this.applyGradients(r);return Co(r),t?s:(s.dispose(),null)}get iterations(){return null==this.iterations_&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return function(e,t){Gt(cn(e),(()=>"The f passed in variableGrads(f) must be a function")),Gt(null==t||Array.isArray(t)&&t.every((e=>e instanceof Fa)),(()=>"The varList passed in variableGrads(f, varList) must be an array of variables"));const n=null!=t;if(!n){t=[];for(const e in to.registeredVariables)t.push(to.registeredVariables[e])}const s=n?t.filter((e=>!e.trainable)):null,r=t.length;t=t.filter((e=>e.trainable)),Gt(t.length>0,(()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${r} variables is trainable.`));const{value:i,grads:a}=to.gradients(e,t,null,!0);Gt(a.some((e=>null!=e)),(()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize().")),Gt(0===i.rank,(()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`));const o={};return t.forEach(((e,t)=>{null!=a[t]&&(o[e.name]=a[t])})),null!=s&&s.forEach((e=>o[e.name]=null)),{value:i,grads:o}}(e,t)}dispose(){null!=this.iterations_&&Co(this.iterations_)}async saveIterations(){return null==this.iterations_&&(this.iterations_=0),{name:"iter",tensor:Vl(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}}Object.defineProperty(Kl,Symbol.hasInstance,{value:e=>null!=e.minimize&&null!=e.computeGradients&&null!=e.applyGradients});class $l extends Kl{static get className(){return"Adadelta"}constructor(e,t,n=null){super(),this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],null==n&&(this.epsilon=to.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const s=to.registeredVariables[t],r=!1;null==this.accumulatedGrads[n]&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:Ao((()=>Pl(s).variable(r)))}),null==this.accumulatedUpdates[n]&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:Ao((()=>Pl(s).variable(r)))});const i=Array.isArray(e)?e[n].tensor:e[t];if(null==i)return;const a=this.accumulatedGrads[n].variable,o=this.accumulatedUpdates[n].variable;Ao((()=>{const e=Dl(Fl(a,this.rho),Fl(Ll(i),1-this.rho)),t=Fl(zl(Bl(Dl(o,this.epsilon)),Bl(Dl(a,this.epsilon))),i),n=Dl(Fl(o,this.rho),Fl(Ll(t),1-this.rho));a.assign(e),o.assign(n);const r=Dl(Fl(t,-this.learningRate),s);s.assign(r)}))})),this.incrementIterations()}dispose(){null!=this.accumulatedUpdates&&(Co(this.accumulatedGrads.map((e=>e.variable))),Co(this.accumulatedUpdates.map((e=>e.variable))))}async getWeights(){const e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){const t=(e=await this.extractIterations(e)).length/2,n=!1;this.accumulatedGrads=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))),this.accumulatedUpdates=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}}function Xl(e,t,n){bn(e);const s={shape:e,value:t,dtype:n=n||un(t)};return to.runKernel(Fs,{},s)}class Zl extends Kl{static get className(){return"Adagrad"}constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const s=to.registeredVariables[t];if(null==this.accumulatedGrads[n]){const e=!1;this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:Ao((()=>Xl(s.shape,this.initialAccumulatorValue).variable(e)))}}const r=Array.isArray(e)?e[n].tensor:e[t];if(null==r)return;const i=this.accumulatedGrads[n].variable;Ao((()=>{const e=Dl(i,Ll(r));i.assign(e);const t=Dl(Fl(zl(r,Bl(Dl(e,to.backend.epsilon()))),-this.learningRate),s);s.assign(t)}))})),this.incrementIterations()}dispose(){null!=this.accumulatedGrads&&Co(this.accumulatedGrads.map((e=>e.variable)))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e);this.accumulatedGrads=e.map((e=>({originalName:e.name,variable:e.tensor.variable(false)})))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}}const Yl=fo({pow_:function(e,t){let n=co(e,"base","pow"),s=co(t,"exp","pow");[n,s]=Ka(n,s);const r={a:n,b:s};return to.runKernel(Rr,r)}});const Ql=fo({sub_:function(e,t){let n=co(e,"a","sub"),s=co(t,"b","sub");[n,s]=Ka(n,s);const r={a:n,b:s};return to.runKernel(ki,r)}});class Jl extends Kl{static get className(){return"Adam"}constructor(e,t,n,s=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=s,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],Ao((()=>{this.accBeta1=Vl(t).variable(),this.accBeta2=Vl(n).variable()})),null==s&&(this.epsilon=to.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);Ao((()=>{const n=Ql(1,this.accBeta1),s=Ql(1,this.accBeta2);t.forEach(((t,r)=>{const i=to.registeredVariables[t],a=!1;null==this.accumulatedFirstMoment[r]&&(this.accumulatedFirstMoment[r]={originalName:`${t}/m`,variable:Ao((()=>Pl(i).variable(a)))}),null==this.accumulatedSecondMoment[r]&&(this.accumulatedSecondMoment[r]={originalName:`${t}/v`,variable:Ao((()=>Pl(i).variable(a)))});const o=Array.isArray(e)?e[r].tensor:e[t];if(null==o)return;const l=this.accumulatedFirstMoment[r].variable,u=this.accumulatedSecondMoment[r].variable,c=Dl(Fl(l,this.beta1),Fl(o,1-this.beta1)),h=Dl(Fl(u,this.beta2),Fl(Ll(o),1-this.beta2)),d=zl(c,n),p=zl(h,s);l.assign(c),u.assign(h);const f=Dl(Fl(zl(d,Dl(Bl(p),this.epsilon)),-this.learningRate),i);i.assign(f)})),this.accBeta1.assign(Fl(this.accBeta1,this.beta1)),this.accBeta2.assign(Fl(this.accBeta2,this.beta2))})),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),null!=this.accumulatedFirstMoment&&Co(this.accumulatedFirstMoment.map((e=>e.variable))),null!=this.accumulatedSecondMoment&&Co(this.accumulatedSecondMoment.map((e=>e.variable)))}async getWeights(){const e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e),Ao((()=>{this.accBeta1.assign(Yl(this.beta1,this.iterations_+1)),this.accBeta2.assign(Yl(this.beta2,this.iterations_+1))}));const t=e.length/2,n=!1;this.accumulatedFirstMoment=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))),this.accumulatedSecondMoment=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}}const eu=fo({abs_:function(e){const t=co(e,"x","abs");if("complex64"===t.dtype){const e={x:t};return to.runKernel(ss,e)}{const e={x:t};return to.runKernel(Nn,e)}}});function tu(e,t){const n=e.length,s=[];for(let r=0;r1&&1===a&&s.unshift(i)}return s}function nu(e,t){const n=[];for(let s=0;s1)&&n.unshift(i)}return n}function su(e,t){const n=Math.max(e.length,t.length),s=new Array(n);for(let r=0;r{this.iteration=Vl(0).variable(),this.accBeta1=Vl(t).variable()})),null==s&&(this.epsilon=to.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);Ao((()=>{const n=Ql(1,this.accBeta1),s=zl(-this.learningRate,Dl(Fl(this.iteration,this.decay),1));t.forEach(((t,r)=>{const i=to.registeredVariables[t],a=!1;null==this.accumulatedFirstMoment[r]&&(this.accumulatedFirstMoment[r]={originalName:`${t}/m`,variable:Pl(i).variable(a)}),null==this.accumulatedWeightedInfNorm[r]&&(this.accumulatedWeightedInfNorm[r]={originalName:`${t}/v`,variable:Pl(i).variable(a)});const o=Array.isArray(e)?e[r].tensor:e[t];if(null==o)return;const l=this.accumulatedFirstMoment[r].variable,u=this.accumulatedWeightedInfNorm[r].variable,c=Dl(Fl(l,this.beta1),Fl(o,1-this.beta1)),h=Fl(u,this.beta2),d=eu(o),p=ru(h,d);l.assign(c),u.assign(p);const f=Dl(Fl(zl(s,n),zl(c,Dl(p,this.epsilon))),i);i.assign(f)})),this.iteration.assign(Dl(this.iteration,1)),this.accBeta1.assign(Fl(this.accBeta1,this.beta1))})),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),null!=this.accumulatedFirstMoment&&Co(this.accumulatedFirstMoment.map((e=>e.variable))),null!=this.accumulatedWeightedInfNorm&&Co(this.accumulatedWeightedInfNorm.map((e=>e.variable)))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}}class au extends Kl{static get className(){return"SGD"}constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const s=Array.isArray(e)?e[n].tensor:e[t];if(null==s)return;const r=to.registeredVariables[t];Ao((()=>{const e=Dl(Fl(this.c,s),r);r.assign(e)}))})),this.incrementIterations()}setLearningRate(e){this.learningRate=e,null!=this.c&&this.c.dispose(),this.c=ko(Vl(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(0!==(e=await this.extractIterations(e)).length)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}}class ou extends au{static get className(){return"Momentum"}constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=Vl(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const s=to.registeredVariables[t];if(null==this.accumulations[n]){const e=!1;this.accumulations[n]={originalName:`${t}/momentum`,variable:Ao((()=>Pl(s).variable(e)))}}const r=this.accumulations[n].variable,i=Array.isArray(e)?e[n].tensor:e[t];null!=i&&Ao((()=>{let e;const t=Dl(Fl(this.m,r),i);e=this.useNesterov?Dl(Fl(this.c,Dl(i,Fl(t,this.m))),s):Dl(Fl(this.c,t),s),r.assign(t),s.assign(e)}))})),this.incrementIterations()}dispose(){this.m.dispose(),null!=this.accumulations&&Co(this.accumulations.map((e=>e.variable)))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e);this.accumulations=e.map((e=>({originalName:e.name,variable:e.tensor.variable(false)})))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}}class lu extends Kl{static get className(){return"RMSProp"}constructor(e,t=.9,n=0,s=null,r=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=s,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=r,null==s&&(this.epsilon=to.backend.epsilon()),null==e)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const s=to.registeredVariables[t],r=!1;null==this.accumulatedMeanSquares[n]&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:Ao((()=>Pl(s).variable(r)))}),null==this.accumulatedMoments[n]&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:Ao((()=>Pl(s).variable(r)))}),null==this.accumulatedMeanGrads[n]&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:Ao((()=>Pl(s).variable(r)))});const i=Array.isArray(e)?e[n].tensor:e[t];if(null==i)return;const a=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;Ao((()=>{const e=Dl(Fl(a,this.decay),Fl(Ll(i),1-this.decay));if(this.centered){const t=this.accumulatedMeanGrads[n].variable,r=Dl(Fl(t,this.decay),Fl(i,1-this.decay)),l=zl(Fl(i,this.learningRate),Bl(Ql(e,Dl(Ll(r),this.epsilon)))),u=Dl(Fl(o,this.momentum),l);a.assign(e),t.assign(r),o.assign(u);const c=Ql(s,u);s.assign(c)}else{const e=Dl(Fl(a,this.decay),Fl(Ll(i),1-this.decay)),t=Dl(Fl(o,this.momentum),zl(Fl(i,this.learningRate),Bl(Dl(e,this.epsilon))));a.assign(e),o.assign(t);const n=Ql(s,t);s.assign(n)}}))})),this.incrementIterations()}dispose(){null!=this.accumulatedMeanSquares&&Co(this.accumulatedMeanSquares.map((e=>e.variable))),null!=this.accumulatedMeanGrads&&this.centered&&Co(this.accumulatedMeanGrads.map((e=>e.variable))),null!=this.accumulatedMoments&&Co(this.accumulatedMoments.map((e=>e.variable)))}async getWeights(){const e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e);const t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))),this.accumulatedMoments=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))),this.centered&&(this.accumulatedMeanGrads=e.slice(2*t,3*t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}}const uu=[$l,Zl,Jl,iu,ou,lu,au];function cu(e){return new Promise((e=>setTimeout(e))).then(e)}class hu{constructor(e){if(!Sn().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(hu.URL_SCHEME)&&(e=e.slice(hu.URL_SCHEME.length)),null!=e&&0!==e.length||(e="model"),this.modelJsonFileName=e+".json",this.weightDataFileName=e+".weights.bin"}async save(e){if("undefined"==typeof document)throw new Error("Browser downloads are not supported in this environment since `document` is not present");const t=wo.join(e.weightData),n=window.URL.createObjectURL(new Blob([t],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{const t=Uo(e,[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}]),s=window.URL.createObjectURL(new Blob([JSON.stringify(t)],{type:"application/json"})),r=null==this.modelJsonAnchor?document.createElement("a"):this.modelJsonAnchor;if(r.download=this.modelJsonFileName,r.href=s,await cu((()=>r.dispatchEvent(new MouseEvent("click")))),null!=e.weightData){const e=null==this.weightDataAnchor?document.createElement("a"):this.weightDataAnchor;e.download=this.weightDataFileName,e.href=n,await cu((()=>e.dispatchEvent(new MouseEvent("click"))))}return{modelArtifactsInfo:jo(e)}}}}hu.URL_SCHEME="downloads://";class du{constructor(e){if(null==e||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise(((e,t)=>{const n=new FileReader;n.onload=n=>{const s=JSON.parse(n.target.result),r=s.modelTopology;if(null==r)return void t(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));if(null==s.weightsManifest)return void t(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));if(0===this.weightsFiles.length)return void e({modelTopology:r});const i=Wo(s,(e=>this.loadWeights(e)));e(i)},n.onerror=e=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)}))}loadWeights(e){const t=[],n=[];for(const s of e)t.push(...s.weights),n.push(...s.paths);const s=this.checkManifestAndWeightFiles(e),r=n.map((e=>this.loadWeightsFile(e,s[e])));return Promise.all(r).then((e=>[t,e]))}loadWeightsFile(e,t){return new Promise(((n,s)=>{const r=new FileReader;r.onload=e=>{const t=e.target.result;n(t)},r.onerror=t=>s(`Failed to weights data from file of path '${e}'.`),r.readAsArrayBuffer(t)}))}checkManifestAndWeightFiles(e){const t=[],n=this.weightsFiles.map((e=>Po(e.name))),s={};for(const r of e)r.paths.forEach((e=>{const r=Po(e);if(-1!==t.indexOf(r))throw new Error(`Duplicate file basename found in weights manifest: '${r}'`);if(t.push(r),-1===n.indexOf(r))throw new Error(`Weight file with basename '${r}' is not provided.`);s[e]=this.weightsFiles[n.indexOf(r)]}));if(t.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return s}}function pu(e){return new du(e)}function fu(e,t,n,s){!function(e){Gt(null!=e&&Array.isArray(e)&&e.length>0,(()=>"promises must be a none empty array"))}(e),function(e,t){Gt(e>=0&&e<=1,(()=>`Progress fraction must be in range [0, 1], but got startFraction ${e}`)),Gt(t>=0&&t<=1,(()=>`Progress fraction must be in range [0, 1], but got endFraction ${t}`)),Gt(t>=e,(()=>`startFraction must be no more than endFraction, but got startFraction ${e} and endFraction ${t}`))}(n=null==n?0:n,s=null==s?1:s);let r=0;return Promise.all(e.map((i=>(i.then((i=>{const a=n+ ++r/e.length*(s-n);return t(a),i})),i))))}async function mu(e,t){null==t&&(t={});const n=null==t.fetchFunc?Sn().platform.fetch:t.fetchFunc,s=e.map((e=>n(e,t.requestInit,{isBinary:!0}))),r=(null==t.onProgress?await Promise.all(s):await fu(s,t.onProgress,0,.5)).map((e=>e.arrayBuffer()));return null==t.onProgress?await Promise.all(r):await fu(r,t.onProgress,.5,1)}async function gu(e,t="",n,s){return yu((e=>mu(e,{requestInit:s})))(e,t,n)}function yu(e){return async(t,n="",s)=>{const r=t.map((()=>!1)),i={},a=null!=s?s.map((()=>!1)):[],o=[];if(t.forEach(((e,t)=>{let n=0;e.weights.forEach((e=>{const l="quantization"in e?e.quantization.dtype:e.dtype,u=bo[l]*Kt(e.shape),c=()=>{r[t]=!0,null==i[t]&&(i[t]=[]),i[t].push({manifestEntry:e,groupOffset:n,sizeBytes:u})};null!=s?s.forEach(((t,n)=>{t===e.name&&(c(),a[n]=!0)})):c(),o.push(e.name),n+=u}))})),!a.every((e=>e))){const e=s.filter(((e,t)=>!a[t]));throw new Error(`Could not find weights in manifest with names: ${e.join(", ")}. \nManifest JSON has weights with names: ${o.join(", ")}.`)}const l=r.reduce(((e,t,n)=>(t&&e.push(n),e)),[]),u=[];l.forEach((e=>{t[e].paths.forEach((e=>{const t=n+(n.endsWith("/")?"":"/")+e;u.push(t)}))}));const c=await e(u),h={};let d=0;return l.forEach((e=>{const n=t[e].paths.length,s=new wo(c.slice(d,d+n));i[e].forEach((e=>{const t=To(s.slice(e.groupOffset,e.groupOffset+e.sizeBytes),[e.manifestEntry]);for(const e in t)h[e]=t[e]})),d+=n})),h}}qo.registerSaveRouter((e=>Sn().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(hu.URL_SCHEME)?function(e="model"){return new hu(e)}(e.slice(hu.URL_SCHEME.length)):null));class bu{constructor(e,t){if(this.DEFAULT_METHOD="POST",null==t&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.weightUrlConverter=t.weightUrlConverter,null!=t.fetchFunc?(Gt("function"==typeof t.fetchFunc,(()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)")),this.fetch=t.fetchFunc):this.fetch=Sn().platform.fetch,Gt(null!=e&&e.length>0,(()=>"URL path for http must not be null, undefined or empty.")),Array.isArray(e)&&Gt(2===e.length,(()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`)),this.path=e,null!=t.requestInit&&null!=t.requestInit.body)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{},this.loadOptions=t}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");const t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;const n=Uo(e,[{paths:["./model.weights.bin"],weights:e.weightSpecs}]);if(t.body.append("model.json",new Blob([JSON.stringify(n)],{type:"application/json"}),"model.json"),null!=e.weightData){const n=wo.join(e.weightData);t.body.append("model.weights.bin",new Blob([n],{type:"application/octet-stream"}),"model.weights.bin")}const s=await this.fetch(this.path,t);if(s.ok)return{modelArtifactsInfo:jo(e),responses:[s]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async loadModelJSON(){const e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(e){let t=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?t+=" 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.":t+=" Please make sure the server is serving valid JSON for this request.",new Error(t)}const n=t.modelTopology,s=t.weightsManifest;if(null==n&&null==s)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return t}async load(){if(this.loadOptions.streamWeights)return this.loadStream();return Wo(await this.loadModelJSON(),(e=>this.loadWeights(e)))}async loadStream(){const e=await this.loadModelJSON(),t=await this.getWeightUrls(e.weightsManifest),n=Go(e.weightsManifest);return Object.assign(Object.assign({},e),{weightSpecs:n,getWeightStream:()=>function(e,t){var n;const s=null==t.fetchFunc?Sn().platform.fetch:t.fetchFunc;let r,i=0;return null===(n=t.onProgress)||void 0===n||n.call(t,0),new ReadableStream({pull:async n=>{for(var a;it?e.substring(n):"";return[s+"/",r]}(t),r=this.weightPathPrefix||n,i=[],a=[];for(const t of e)for(const e of t.paths)null!=this.weightUrlConverter?a.push(this.weightUrlConverter(e)):i.push(r+e+s);return this.weightUrlConverter&&i.push(...await Promise.all(a)),i}async loadWeights(e){const t=await this.getWeightUrls(e);return[Go(e),await mu(t,this.loadOptions)]}}function wu(e){return null!=e.match(bu.URL_SCHEME_REGEX)}bu.URL_SCHEME_REGEX=/^https?:\/\//;const vu=(e,t)=>{if("undefined"==typeof fetch&&(null==t||null==t.fetchFunc))return null;{let n=!0;if(n=Array.isArray(e)?e.every((e=>wu(e))):wu(e),n)return xu(e,t)}return null};function xu(e,t){return new bu(e,t)}function Au(e,t){return xu(e,t)}qo.registerSaveRouter(vu),qo.registerLoadRouter(vu);class Cu{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}}class ku{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}}class Su{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}}function _u(e,t,n,s){return new Su(Eu(...arguments))}function Eu(e,t,n,s){if(1===arguments.length){const t=null!=e.modelTopology||null!=e.weightSpecs;return new Cu(t?e:{modelTopology:e})}return new Cu({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:s})}function Iu(e){return new ku(e)}function Tu(e){return new ku(e)}function Nu(e,t,n){if(Ht(e),null!=t&&3!==t.length)throw new Error("tensor3d() requires shape to have three numbers");const s=oo(e,n);if(3!==s.length&&1!==s.length)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(1===s.length&&null==t)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return go(e,t,s,n)}let Ru,Ou=!1;function Du(e,t=3){if(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");let n=!1,s=!1,r=!1,i=!1,a=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if("undefined"!=typeof ImageData&&e instanceof ImageData)s=!0;else if("undefined"!=typeof HTMLVideoElement&&e instanceof HTMLVideoElement)r=!0;else if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement)i=!0;else if(null!=e.getContext)a=!0;else{if(!("undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap))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}`);o=!0}if(null!=qi(Fi,to.backendName)){const n={pixels:e},s={numChannels:t};return to.runKernel(Fi,n,s)}const[l,u]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height];let c,h;if(a)c=e.getContext("2d").getImageData(0,0,l,u).data;else if(s||n)c=e.data;else if(i||r||o){if(null==Ru)if("undefined"==typeof document){if("undefined"==typeof OffscreenCanvas||"undefined"==typeof OffscreenCanvasRenderingContext2D)throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");Ru=new OffscreenCanvas(1,1).getContext("2d")}else Ru=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Ru.canvas.width=l,Ru.canvas.height=u,Ru.drawImage(e,0,0,l,u),c=Ru.getImageData(0,0,l,u).data}if(4===t)h=new Int32Array(c);else{const e=l*u;h=new Int32Array(e*t);for(let n=0;n4||2===t)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${t}`);if("float32"!==e.dtype&&"int32"!==e.dtype)throw new Error(`Unsupported type for toPixels: ${e.dtype}. Please use float32 or int32 tensors.`)}async function zu(e,t){let n=co(e,"img","toPixels");if(!(e instanceof Ma)){const e=n;n=Nl(e,"int32"),e.dispose()}Mu(n);const[s,r]=n.shape.slice(0,2),i=2===n.rank?1:n.shape[2],a=await n.data(),o="float32"===n.dtype?255:1,l=new Uint8ClampedArray(r*s*4);for(let e=0;e1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${r}.`)}else if("int32"===n.dtype&&(r<0||r>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${r}.`);1===i?(t[0]=r*o,t[1]=r*o,t[2]=r*o):t[s]=r*o}const s=4*e;l[s+0]=Math.round(t[0]),l[s+1]=Math.round(t[1]),l[s+2]=Math.round(t[2]),l[s+3]=Math.round(t[3])}if(null!=t){if(!Ou){null!=qi(Ss,to.backendName)&&(Ou=!0)}t.width=r,t.height=s;const e=t.getContext("2d"),n=new ImageData(l,r,s);e.putImageData(n,0,0)}return n!==e&&n.dispose(),l}const Fu=fo({fromPixels_:Du}),Bu=-2,Lu=-1;function Pu(e,t,n){const s=e.shape.length;Gt(s===t.length,(()=>`Error in slice${s}D: Length of begin ${t} must match the rank of the array (${s}).`)),Gt(s===n.length,(()=>`Error in slice${s}D: Length of size ${n} must match the rank of the array (${s}).`));for(let r=0;r`Error in slice${s}D: begin[${r}] + size[${r}] (${t[r]+n[r]}) would overflow input.shape[${r}] (${e.shape[r]})`))}function Uu(e){const t=[];let n=0;for(;e>0;)1&e&&t.push(n),e/=2,n++;return t}function Vu(e,t,n){const s=[];for(let r=0;r0){const l=t[0],u=n+1;c=Hu(a,l,u,s,e),h=Ku(o,l,u,r,e),d=Wu(i,l,u,e)}else for(let t=0;t-1)i[r]=0;else{const a=ju(t,n,r);let o=s[a];e&1<-1)i[r]=Number.MAX_SAFE_INTEGER;else{const a=ju(t,n,r);let o=s[a];e&1<0?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER);const l=s[r];return a<0&&(a+=l),a=Vt(0,a,l-1),a}function Zu(e,t,n,s,r,i){let a=t[r];const o=n[r]||1;(e&1<0?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER);const l=s[r];return a<0&&(a+=l),a=o>0?Vt(0,a,l):Vt(-1,a,l-1),a}function Yu(e,t,n){let s=n.length;for(let e=0;e1){s=e;break}for(let r=s+1;r0||n[r]!==e[r])return!1;return!0}function Qu(e,t){let n=e.length>0?e[e.length-1]:1;for(let s=0;s{Gt(-1!==e,(()=>"slice() does not support negative begin indexing."))})),i=null==n?new Array(r).fill(-1):"number"==typeof n?[n,...new Array(r-1).fill(-1)]:n.lengtht>=0?t:(Gt(-1===t,(()=>`Negative size values should be exactly -1 but got ${t} for the slice() size at index ${n}.`)),e.shape[n]-s[n]))),[s,i]}function ec(e,t,n,s,r,i,a,o,l){let u;if(null==s?(u=new Array(t.length),u.fill(1)):u=s,null!=a&&a&a-1)throw new Error("Multiple ellipses in slice is not allowed.");let c=!1;const h={dims:u.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:n.slice(),strides:u.slice(),beginMask:r,endMask:i,ellipsisMask:a,newAxisMask:o,shrinkAxisMask:l};for(let e=0;e0?0:-1,d.strides[t]>0?s:s-1];if(n&&d.strides[t]<=0)throw Error("only stride 1 allowed on non-range indexing.");m=m&&1===d.strides[t];const a=!!(d.beginMask&1<=s)throw Error(`slice index ${d.begin[t]} of dimension ${t} out of bounds.`)}else d.begin[t]=tc(d.begin[t],0,d.strides[t],s,r,i),d.end[t]=tc(d.end[t],1,d.strides[t],s,r,i);const e=1===d.strides[t]&&0===d.begin[t]&&d.end[t]===s;p=p&&e,f=f&&(0===t&&1===d.strides[t]||e)}else p=p&&1===d.strides[t]&&a,f=f&&(0===t&&1===d.strides[t]||a);let o,l=!1;if(d.beginValid&&d.endValid?(o=d.end[t]-d.begin[t],l=!0):n?(o=1,l=!0):a&&s>=0&&(o=d.strides[t]<0?-s:s,l=!0),l){let e;e=0===o||o<0!=d.strides[t]<0?0:Math.trunc(o/d.strides[t])+(o%d.strides[t]!=0?1:0),g.push(e)}else g.push(-1)}for(let e=0;e=0?y.push(g[t]):t===Bu&&y.push(1)}return{finalShapeSparse:y.filter(((e,t)=>d.finalShapeGatherIndices[t]!==Bu)),finalShape:y,isIdentity:p,sliceDim0:f,isSimpleSlice:m,begin:d.begin,end:d.end,strides:d.strides}}function tc(e,t,n,s,r,i){if(r[t])return n>0?i[t]:i[t+1&1];{const t=e<0?s+e:e;return ti[1]?i[1]:t}}const nc=fo({acos_:function(e){const t={x:co(e,"x","acos")};return to.runKernel(Rn,t)}});const sc=fo({acosh_:function(e){const t={x:co(e,"x","acosh")};return to.runKernel(On,t)}});const rc=fo({addN_:function(e){Gt(Array.isArray(e),(()=>"The argument passed to tf.addN() must be a list of tensors")),Gt(e.length>=1,(()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`));const t=e.map(((e,t)=>co(e,`tensors${t}`,"addN"))),n=t[0];t.forEach((e=>{if(e.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")})),t.forEach((e=>{if(!$t(e.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")}));const s=t;return to.runKernel(Mn,s)}});const ic=fo({all_:function(e,t=null,n=!1){const s={x:co(e,"x","all","bool")},r={axis:t,keepDims:n};return to.runKernel(zn,s,r)}});const ac=fo({any_:function(e,t=null,n=!1){const s={x:co(e,"x","any","bool")},r={axis:t,keepDims:n};return to.runKernel(Fn,s,r)}});const oc=fo({argMax_:function(e,t=0){const n={x:co(e,"x","argMax")},s={axis:t};return to.runKernel(Bn,n,s)}});const lc=fo({argMin_:function(e,t=0){const n={x:co(e,"x","argMin")},s={axis:t};return to.runKernel(Ln,n,s)}});const uc=fo({asin_:function(e){const t={x:co(e,"x","asin")};return to.runKernel(Pn,t)}});const cc=fo({asinh_:function(e){const t={x:co(e,"x","asinh")};return to.runKernel(Un,t)}});const hc=fo({atan_:function(e){const t={x:co(e,"x","atan")};return to.runKernel(Vn,t)}});const dc=fo({atan2_:function(e,t){let n=co(e,"a","atan2"),s=co(t,"b","atan2");[n,s]=Ka(n,s);const r={a:n,b:s};return to.runKernel(jn,r)}});const pc=fo({atanh_:function(e){const t={x:co(e,"x","atanh")};return to.runKernel(Wn,t)}});function fc(e,t,n,s,r="NHWC",i){return yc(e,[...t,e[3]],n,i,s,null,null,Ec(r))}function mc(e,t,n,s,r,i,a="channelsLast"){const[o,l]=vc(t);let u;if("channelsLast"===a)u=[o,l,e[3],e[3]];else{if("channelsFirst"!==a)throw new Error(`Unknown dataFormat ${a}`);u=[o,l,e[1],e[1]]}return yc(e,u,n,s,r,i,!1,a)}function gc(e,t,n,s,r,i,a="NDHWC"){const[o,l,u]=xc(t);let c,h;if("NDHWC"===a)h="channelsLast",c=[o,l,u,e[4],e[4]];else{if("NCDHW"!==a)throw new Error(`Unknown dataFormat ${a}`);h="channelsFirst",c=[o,l,u,e[1],e[1]]}return bc(e,c,n,s,r,!1,h,i)}function yc(e,t,n,s,r,i,a=!1,o="channelsLast"){let[l,u,c,h]=[-1,-1,-1,-1];if("channelsLast"===o)[l,u,c,h]=e;else{if("channelsFirst"!==o)throw new Error(`Unknown dataFormat ${o}`);[l,h,u,c]=e}const[d,p,,f]=t,[m,g]=vc(n),[y,b]=vc(s),w=Ac(d,y),v=Ac(p,b),{padInfo:x,outHeight:A,outWidth:C}=function(e,t,n,s,r,i,a,o,l){let u,c,h;if("number"==typeof e){u={top:e,bottom:e,left:e,right:e,type:0===e?"VALID":"NUMBER"};const r=function(e,t,n,s,r){null==s&&(s=wc(e,t,n));const i=e[0],a=e[1],o=Cc((i-t+2*s)/n+1,r),l=Cc((a-t+2*s)/n+1,r);return[o,l]}([t,n],i,s,e,o);c=r[0],h=r[1]}else if("same"===e){c=Math.ceil(t/s),h=Math.ceil(n/r);const e=Math.max(0,(c-1)*s+i-t),o=Math.max(0,(h-1)*r+a-n),l=Math.floor(e/2),d=e-l,p=Math.floor(o/2);u={top:l,bottom:d,left:p,right:o-p,type:"SAME"}}else if("valid"===e)u={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((t-i+1)/s),h=Math.ceil((n-a+1)/r);else{if("object"!=typeof e)throw Error(`Unknown padding parameter: ${e}`);{const d="channelsLast"===l?e[1][0]:e[2][0],p="channelsLast"===l?e[1][1]:e[2][1],f="channelsLast"===l?e[2][0]:e[3][0],m="channelsLast"===l?e[2][1]:e[3][1];u={top:d,bottom:p,left:f,right:m,type:0===d&&0===p&&0===f&&0===m?"VALID":"EXPLICIT"},c=Cc((t-i+d+p)/s+1,o),h=Cc((n-a+f+m)/r+1,o)}}return{padInfo:u,outHeight:c,outWidth:h}}(r,u,c,m,g,w,v,i,o),k=a?f*h:f;let S;return"channelsFirst"===o?S=[l,k,A,C]:"channelsLast"===o&&(S=[l,A,C,k]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:c,inChannels:h,outHeight:A,outWidth:C,outChannels:k,padInfo:x,strideHeight:m,strideWidth:g,filterHeight:d,filterWidth:p,effectiveFilterHeight:w,effectiveFilterWidth:v,dilationHeight:y,dilationWidth:b,inShape:e,outShape:S,filterShape:t}}function bc(e,t,n,s,r,i=!1,a="channelsLast",o){let[l,u,c,h,d]=[-1,-1,-1,-1,-1];if("channelsLast"===a)[l,u,c,h,d]=e;else{if("channelsFirst"!==a)throw new Error(`Unknown dataFormat ${a}`);[l,d,u,c,h]=e}const[p,f,m,,g]=t,[y,b,w]=xc(n),[v,x,A]=xc(s),C=Ac(p,v),k=Ac(f,x),S=Ac(m,A),{padInfo:_,outDepth:E,outHeight:I,outWidth:T}=function(e,t,n,s,r,i,a,o,l,u,c){let h,d,p,f;"valid"===e&&(e=0);if("number"==typeof e){h={top:e,bottom:e,left:e,right:e,front:e,back:e,type:0===e?"VALID":"NUMBER"};const m=function(e,t,n,s,r,i){null==r&&(r=wc(e,t[0],s[0]));const a=[0,0,0,n];for(let n=0;n<3;n++)e[n]+2*r>=t[n]&&(a[n]=Cc((e[n]-t[n]+2*r)/s[n]+1,i));return a}([t,n,s,1],[o,l,u],1,[r,i,a],e,c);d=m[0],p=m[1],f=m[2]}else{if("same"!==e)throw Error(`Unknown padding parameter: ${e}`);{d=Math.ceil(t/r),p=Math.ceil(n/i),f=Math.ceil(s/a);const e=(d-1)*r+o-t,c=(p-1)*i+l-n,m=(f-1)*a+u-s,g=Math.floor(e/2),y=e-g,b=Math.floor(c/2),w=c-b,v=Math.floor(m/2);h={top:b,bottom:w,left:v,right:m-v,front:g,back:y,type:"SAME"}}}return{padInfo:h,outDepth:d,outHeight:p,outWidth:f}}(r,u,c,h,y,b,w,C,k,S,o),N=i?g*d:g;let R;return"channelsFirst"===a?R=[l,N,E,I,T]:"channelsLast"===a&&(R=[l,E,I,T,N]),{batchSize:l,dataFormat:a,inDepth:u,inHeight:c,inWidth:h,inChannels:d,outDepth:E,outHeight:I,outWidth:T,outChannels:N,padInfo:_,strideDepth:y,strideHeight:b,strideWidth:w,filterDepth:p,filterHeight:f,filterWidth:m,effectiveFilterDepth:C,effectiveFilterHeight:k,effectiveFilterWidth:S,dilationDepth:v,dilationHeight:x,dilationWidth:A,inShape:e,outShape:R,filterShape:t}}function wc(e,t,n,s=1){const r=Ac(t,s);return Math.floor((e[0]*(n-1)-n+r)/2)}function vc(e){return"number"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}function xc(e){return"number"==typeof e?[e,e,e]:e}function Ac(e,t){return t<=1?e:e+(e-1)*(t-1)}function Cc(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function kc(e){const[t,n,s]=vc(e);return 1===t&&1===n&&1===s}function Sc(e,t){return kc(e)||kc(t)}function _c(e){return vc(e).every((e=>e>0))}function Ec(e){if("NHWC"===e)return"channelsLast";if("NCHW"===e)return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function Ic(e,t,n){if(null!=n){if("string"==typeof t)throw Error(`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);if("number"==typeof t)Gt(Xt(t),(()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`));else{if("object"!=typeof t)throw Error(`Error in ${e}: Unknown padding parameter: ${t}`);t.forEach((t=>{t.forEach((t=>{Gt(Xt(t),(()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`))}))}))}}}const Tc=fo({reshape_:function(e,t){const n={x:co(e,"x","reshape","string_or_numeric")},s={shape:t};return to.runKernel(Vr,n,s)}});const Nc=fo({avgPool_:function(e,t,n,s,r){const i=co(e,"x","avgPool","float32");Gt(Sc(n,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '1'`));let a=i,o=!1;3===i.rank&&(o=!0,a=Tc(i,[1,i.shape[0],i.shape[1],i.shape[2]])),Gt(4===a.rank,(()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`)),Ic("avgPool",s,r);const l={x:a},u={filterSize:t,strides:n,pad:s,dimRoundingMode:r};let c=to.runKernel(Gn,l,u);return c=Nl(c,i.dtype),o?Tc(c,[c.shape[1],c.shape[2],c.shape[3]]):c}});const Rc=fo({avgPool3d_:function(e,t,n,s,r,i="NDHWC"){const a=co(e,"x","avgPool3d","float32");let o=a,l=!1;4===a.rank&&(l=!0,o=Tc(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),Gt(5===o.rank,(()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`)),Gt("NDHWC"===i,(()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${i}`)),Gt("number"==typeof n&&n>0||Array.isArray(n)&&n[0]>0&&n[1]>0&&n[2]>0,(()=>`Error in avgPool3d: Stride must be > 0, but got '${n}'`)),Ic("avgPool3d",s,r);const u={x:o},c={filterSize:t,strides:n,pad:s,dimRoundingMode:r,dataFormat:i};let h=to.runKernel(Hn,u,c);return h=Nl(h,o.dtype),l?Tc(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}});const Oc=fo({concat_:function(e,t=0){Gt(e.length>=1,(()=>"Pass at least one tensor to concat"));const n=ho(e,"tensors","concat","string_or_numeric");if("complex64"===n[0].dtype&&n.forEach((e=>{if("complex64"!==e.dtype)throw new Error(`Cannot concatenate complex64 tensors with a tensor\n with dtype ${e.dtype}. `)})),1===n.length)return Rl(n[0]);const s=n,r={axis:t};return to.runKernel(rs,s,r)}});const Dc=fo({matMul_:function(e,t,n=!1,s=!1){let r=co(e,"a","matMul"),i=co(t,"b","matMul");[r,i]=Ka(r,i);const a={a:r,b:i},o={transposeA:n,transposeB:s};return to.runKernel($n,a,o)}});const Mc=fo({sigmoid_:function(e){const t={x:co(e,"x","sigmoid","float32")};return to.runKernel(ii,t)}});const zc=fo({slice_:function(e,t,n){const s=co(e,"x","slice","string_or_numeric");if(0===s.rank)throw new Error("Slicing scalar is not possible");const r={x:s},i={begin:t,size:n};return to.runKernel(ti,r,i)}});const Fc=fo({tanh_:function(e){const t={x:co(e,"x","tanh","float32")};return to.runKernel(_i,t)}});const Bc=fo({basicLSTMCell_:function(e,t,n,s,r,i){const a=co(e,"forgetBias","basicLSTMCell"),o=co(t,"lstmKernel","basicLSTMCell"),l=co(n,"lstmBias","basicLSTMCell"),u=co(s,"data","basicLSTMCell"),c=co(r,"c","basicLSTMCell"),h=co(i,"h","basicLSTMCell"),d=Oc([u,h],1),p=Dc(d,o),f=Dl(p,l),m=f.shape[0],g=f.shape[1]/4,y=[m,g],b=zc(f,[0,0],y),w=zc(f,[0,g],y),v=zc(f,[0,2*g],y),x=zc(f,[0,3*g],y),A=Dl(Fl(Mc(b),Fc(w)),Fl(c,Mc(Dl(a,v))));return[A,Fl(Fc(A),Mc(x))]}});const Lc=fo({batchToSpaceND_:function(e,t,n){const s=co(e,"x","batchToSpaceND"),r=t.reduce(((e,t)=>e*t));Gt(s.rank>=1+t.length,(()=>`input rank is ${s.rank} but should be > than blockShape.length ${t.length}`)),Gt(n.length===t.length,(()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`)),Gt(s.shape[0]%r==0,(()=>`input tensor batch is ${s.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${r}`));const i={x:s},a={blockShape:t,crops:n};return to.runKernel(Xn,i,a)}});const Pc=fo({batchNorm_:function(e,t,n,s,r,i){null==i&&(i=.001);const a=co(e,"x","batchNorm"),o=co(t,"mean","batchNorm"),l=co(n,"variance","batchNorm");let u,c;null!=r&&(u=co(r,"scale","batchNorm")),null!=s&&(c=co(s,"offset","batchNorm")),Gt(o.rank===l.rank,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),Gt(null==c||o.rank===c.rank,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),Gt(null==u||o.rank===u.rank,(()=>"Batch normalization gradient requires mean and scale to have equal ranks."));const h={x:function(e){let t;return t=0===e.rank||1===e.rank?Tc(e,[1,1,1,e.size]):2===e.rank?Tc(e,[1,1,e.shape[0],e.shape[1]]):3===e.rank?Tc(e,[1,e.shape[0],e.shape[1],e.shape[2]]):e,t}(a),scale:u,offset:c,mean:o,variance:l},d={varianceEpsilon:i},p=to.runKernel(Us,h,d);return Tc(p,a.shape)}});const Uc=fo({batchNorm2d_:function(e,t,n,s,r,i){const a=co(e,"x","batchNorm"),o=co(t,"mean","batchNorm"),l=co(n,"variance","batchNorm");let u,c;return null!=r&&(u=co(r,"scale","batchNorm")),null!=s&&(c=co(s,"offset","batchNorm")),Gt(2===a.rank,(()=>`Error in batchNorm2D: x must be rank 2 but got rank ${a.rank}.`)),Gt(2===o.rank||1===o.rank,(()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`)),Gt(2===l.rank||1===l.rank,(()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`)),null!=u&&Gt(2===u.rank||1===u.rank,(()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`)),null!=c&&Gt(2===c.rank||1===c.rank,(()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`)),Pc(a,o,l,c,u,i)}});const Vc=fo({batchNorm3d_:function(e,t,n,s,r,i){const a=co(e,"x","batchNorm"),o=co(t,"mean","batchNorm"),l=co(n,"variance","batchNorm");let u,c;return null!=r&&(u=co(r,"scale","batchNorm")),null!=s&&(c=co(s,"offset","batchNorm")),Gt(3===a.rank,(()=>`Error in batchNorm3D: x must be rank 3 but got rank ${a.rank}.`)),Gt(3===o.rank||1===o.rank,(()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`)),Gt(3===l.rank||1===l.rank,(()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`)),null!=u&&Gt(3===u.rank||1===u.rank,(()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`)),null!=c&&Gt(3===c.rank||1===c.rank,(()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`)),Pc(a,o,l,c,u,i)}});const Wc=fo({batchNorm4d_:function(e,t,n,s,r,i){const a=co(e,"x","batchNorm"),o=co(t,"mean","batchNorm"),l=co(n,"variance","batchNorm");let u,c;return null!=r&&(u=co(r,"scale","batchNorm")),null!=s&&(c=co(s,"offset","batchNorm")),Gt(4===a.rank,(()=>`Error in batchNorm4D: x must be rank 4 but got rank ${a.rank}.`)),Gt(4===o.rank||1===o.rank,(()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`)),Gt(4===l.rank||1===l.rank,(()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`)),null!=u&&Gt(4===u.rank||1===u.rank,(()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`)),null!=c&&Gt(4===c.rank||1===c.rank,(()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`)),Pc(a,o,l,c,u,i)}});const jc=fo({bincount_:function(e,t,n){const s=co(e,"x","bincount"),r=co(t,"weights","bincount");Gt("int32"===s.dtype,(()=>`Error in bincount: input dtype must be int32, but got ${s.dtype}`)),Gt(n>=0,(()=>`size must be non-negative, but got ${n}.`)),Gt(r.size===s.size||0===r.size,(()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${s.shape}, weights shape: ${r.shape}.`));const i={x:s,weights:r},a={size:n};return to.runKernel(Zn,i,a)}});const Gc=fo({bitwiseAnd_:function(e,t){const n=co(e,"x","bitwiseAnd"),s=co(t,"y","bitwiseAnd");if(!$t(n.shape,s.shape))throw new Error(`BitwiseAnd: Tensors must have the same shape. x: ${n.shape}, y: ${s.shape}`);if("int32"!==n.dtype||"int32"!==s.dtype)throw new Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${n.dtype} and type of y: ${s.dtype}`);const r={a:n,b:s};return to.runKernel(Yn,r)}});const qc=fo({broadcastArgs_:function(e,t){const n=co(e,"s0","broadcastArgs","int32"),s=co(t,"s1","broadcastArgs","int32");if(1!==n.rank)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${n.rank}`);if(1!==s.rank)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${s.rank}`);const r={s0:n,s1:s};return to.runKernel(Qn,r)}});const Hc=fo({broadcastTo_:function(e,t){let n=co(e,"broadcastTo","x");const s=n.shape;if(bn(t),t.lengthn.rank){const e=n.shape.slice();for(;e.length=0;e--)if(r[e]===t[e])i[e]=1;else if(1!==n.shape[e])throw new Error(`broadcastTo(): [${s}] cannot be broadcast to [${t}].`);if(0===i.map(((e,t)=>e>1?t:-1)).filter((e=>e>=0)).length)return Rl(n);const a={x:n},o={reps:i};return to.runKernel(Ei,a,o)}});const Kc=fo({ceil_:function(e){const t={x:co(e,"x","ceil","float32")};return to.runKernel(es,t)}});const $c=fo({clipByValue_:function(e,t,n){const s=co(e,"x","clipByValue");if(Gt(t<=n,(()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`)),t===n)return Xl(s.shape,t,s.dtype);const r={x:s},i={clipValueMin:t,clipValueMax:n};return to.runKernel(ts,r,i)}});const Xc=fo({concat1d_:function(e){return Oc(e,0)}});const Zc=fo({concat2d_:function(e,t){return Oc(e,t)}});const Yc=fo({concat3d_:function(e,t){return Oc(e,t)}});const Qc=fo({concat4d_:function(e,t){return Oc(e,t)}});const Jc=fo({conv2d_:function(e,t,n,s,r="NHWC",i=[1,1],a){const o=co(e,"x","conv2d","float32"),l=co(t,"filter","conv2d","float32");let u=o,c=!1;3===o.rank&&(c=!0,u=Tc(o,[1,o.shape[0],o.shape[1],o.shape[2]])),Gt(4===u.rank,(()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`)),Gt(4===l.rank,(()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`)),Ic("conv2d",s,a);const h="NHWC"===r?u.shape[3]:u.shape[1];Gt(h===l.shape[2],(()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${l.shape[2]}.`)),Gt(Sc(n,i),(()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`)),Gt(_c(i),(()=>"Error in conv2D: Dilated rates should be larger than 0.")),Gt(_c(n),(()=>"Error in conv2D: Strides should be larger than 0."));const d={x:u,filter:l},p={strides:n,pad:s,dataFormat:r,dilations:i,dimRoundingMode:a},f=to.runKernel(is,d,p);return c?Tc(f,[f.shape[1],f.shape[2],f.shape[3]]):f}});const eh=fo({conv1d_:function(e,t,n,s,r="NWC",i=1,a){const o=co(e,"x","conv1d"),l=co(t,"filter","conv1d");let u=o,c=!1;2===o.rank&&(c=!0,u=Tc(o,[1,o.shape[0],o.shape[1]])),Gt(3===u.rank,(()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`)),Gt(3===l.rank,(()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`)),Ic("conv1d",s,a),Gt(u.shape[2]===l.shape[1],(()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`)),Gt(Sc(n,i),(()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${i}'`)),Gt(_c(i),(()=>"Error in conv1D: Dilated rates should be larger than 0.")),Gt(_c(n),(()=>"Error in conv1D: Stride should be larger than 0.")),Gt("NWC"===r,(()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`));const h=Tc(l,[1,l.shape[0],l.shape[1],l.shape[2]]),d=Tc(u,[u.shape[0],1,u.shape[1],u.shape[2]]),p=Jc(d,h,[1,n],s,"NHWC",[1,i],a);return Tc(p,c?[p.shape[2],p.shape[3]]:[p.shape[0],p.shape[2],p.shape[3]])}});const th=fo({conv2DBackpropInput_:function(e,t,n,s,r,i="NHWC",a){Gt(e.length===t.rank,(()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`));let o=e,l=t,u=!1;3===t.rank&&(u=!0,l=Tc(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),Gt(4===o.length,(()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`)),Gt(4===l.rank,(()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`)),Gt(4===n.rank,(()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`));const c="NHWC"===i?o[3]:o[1],h="NHWC"===i?l.shape[3]:l.shape[1];Gt(c===n.shape[2],(()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${n.shape[2]}.`)),Gt(h===n.shape[3],(()=>`Error in conv2dDerInput: depth of output (${h}) must match output depth for filter ${n.shape[3]}.`)),Ic("conv2dDerInput",r,a);const d={dy:l,filter:n},p={strides:s,pad:r,dataFormat:i,dimRoundingMode:a,inputShape:o},f=to.runKernel(os,d,p);return u?Tc(f,[f.shape[1],f.shape[2],f.shape[3]]):f}});const nh=fo({conv2dTranspose_:function(e,t,n,s,r,i){const a=co(e,"x","conv2dTranspose"),o=co(t,"filter","conv2dTranspose");return th(n,a,o,s,r,"NHWC",i)}});const sh=fo({conv3d_:function(e,t,n,s,r="NDHWC",i=[1,1,1]){const a=co(e,"x","conv3d"),o=co(t,"filter","conv3d");let l=a,u=!1;4===a.rank&&(u=!0,l=Tc(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),Gt(5===l.rank,(()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`)),Gt(5===o.rank,(()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`)),Gt(l.shape[4]===o.shape[3],(()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`)),Gt(Sc(n,i),(()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`)),Gt("NDHWC"===r,(()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`)),Gt(_c(i),(()=>"Error in conv3D: Dilated rates should be larger than 0.")),Gt(_c(n),(()=>"Error in conv3D: Strides should be larger than 0."));const c={x:l,filter:o},h={strides:n,pad:s,dataFormat:r,dilations:i},d=to.runKernel(ls,c,h);return u?Tc(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}});const rh=fo({conv3DBackpropInput_:function(e,t,n,s,r){Gt(e.length===t.rank,(()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`));let i=e,a=t,o=!1;4===t.rank&&(o=!0,a=Tc(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),i=[1,e[0],e[1],e[2],e[3]]);const l=i[4],u=a.shape[4];Gt(5===i.length,(()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${i.length}.`)),Gt(5===a.rank,(()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${a.rank}`)),Gt(5===n.rank,(()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`)),Gt(l===n.shape[3],(()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`)),Gt(u===n.shape[4],(()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${n.shape[4]}.`));const c={dy:a,filter:n},h={pad:r,strides:s,inputShape:i},d=to.runKernel(cs,c,h);return o?Tc(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}});const ih=fo({conv3dTranspose_:function(e,t,n,s,r){const i=co(e,"x","conv3dTranspose"),a=co(t,"filter","conv3dTranspose");return rh(n,i,a,s,r)}});const ah=fo({cos_:function(e){const t={x:co(e,"x","cos","float32")};return to.runKernel(hs,t)}});const oh=fo({cosh_:function(e){const t={x:co(e,"x","cosh","float32")};return to.runKernel(ds,t)}});const lh=fo({cumprod_:function(e,t=0,n=!1,s=!1){const r={x:co(e,"x","cumprod")},i={axis:t,exclusive:n,reverse:s};return to.runKernel(ps,r,i)}});const uh=fo({cumsum_:function(e,t=0,n=!1,s=!1){const r={x:co(e,"x","cumsum")},i={axis:t,exclusive:n,reverse:s};return to.runKernel(fs,r,i)}});const ch=fo({denseBincount_:function(e,t,n,s=!1){const r=co(e,"x","denseBincount"),i=co(t,"weights","denseBincount");Gt("int32"===r.dtype,(()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`)),Gt(r.rank<=2,(()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`)),Gt(n>=0,(()=>`size must be non-negative, but got ${n}.`)),Gt(i.size===r.size||0===i.size,(()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${r.shape}, weights shape: ${i.shape}.`));const a={x:r,weights:i},o={size:n,binaryOutput:s};return to.runKernel(gs,a,o)}});const hh=fo({depthToSpace_:function(e,t,n="NHWC"){const s=co(e,"x","depthToSpace","float32"),r="NHWC"===n?s.shape[1]:s.shape[2],i="NHWC"===n?s.shape[2]:s.shape[3],a="NHWC"===n?s.shape[3]:s.shape[1];Gt(t>1,(()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`)),Gt(r*t>=0,(()=>`Negative dimension size caused by overflow when multiplying\n ${r} and ${t} for depthToSpace with input shape\n ${s.shape}`)),Gt(i*t>=0,(()=>`Negative dimension size caused by overflow when multiplying\n ${i} and ${t} for depthToSpace with input shape\n ${s.shape}`)),Gt(a%(t*t)==0,(()=>`Dimension size must be evenly divisible by ${t*t} but is ${a} for depthToSpace with input shape ${s.shape}`));const o={x:s},l={blockSize:t,dataFormat:n};return to.runKernel(ys,o,l)}});const dh=fo({depthwiseConv2d_:function(e,t,n,s,r="NHWC",i=[1,1],a){const o=co(e,"x","depthwiseConv2d","float32"),l=co(t,"filter","depthwiseConv2d","float32");let u=o,c=!1;3===o.rank&&(c=!0,u=Tc(o,[1,o.shape[0],o.shape[1],o.shape[2]])),Gt(4===u.rank,(()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`)),Gt(4===l.rank,(()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`));const h="NHWC"===r?u.shape[3]:u.shape[1];Gt(h===l.shape[2],(()=>`Error in depthwiseConv2d: number of input channels (${h}) must match the inChannels dimension in filter ${l.shape[2]}.`)),Ic("depthwiseConv2d",s,a);const d={x:u,filter:l},p={strides:n,pad:s,dataFormat:r,dilations:i,dimRoundingMode:a},f=to.runKernel(bs,d,p);return c?Tc(f,[f.shape[1],f.shape[2],f.shape[3]]):f}});const ph=fo({diag_:function(e){const t={x:co(e,"x","diag")};return to.runKernel(xs,t)}});const fh=fo({dilation2d_:function(e,t,n,s,r=[1,1],i="NHWC"){const a=co(e,"x","dilation2d"),o=co(t,"filter","dilation2d");Gt(3===a.rank||4===a.rank,(()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${a.rank}.`)),Gt(3===o.rank,(()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`)),Gt("NHWC"===i,(()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${i}`));let l=a,u=!1;3===a.rank&&(l=Tc(a,[1,a.shape[0],a.shape[1],a.shape[2]]),u=!0),Gt(l.shape[3]===o.shape[2],(()=>`Error in dilation2d: input and filter must have the same depth: ${l.shape[3]} vs ${o.shape[2]}`));const c={x:l,filter:o},h={strides:n,pad:s,dilations:r},d=to.runKernel(As,c,h);return u?Tc(d,[d.shape[1],d.shape[2],d.shape[3]]):d}});const mh=fo({equal_:function(e,t){let n=co(e,"a","equal","string_or_numeric"),s=co(t,"b","equal","string_or_numeric");[n,s]=Ka(n,s),su(n.shape,s.shape);const r={a:n,b:s};return to.runKernel(Rs,r)}});const gh=fo({where_:function(e,t,n){const s=co(t,"a","where"),r=co(n,"b","where"),i=co(e,"condition","where","bool"),a=su(su(i.shape,s.shape),r.shape),o={condition:Hc(i,a),t:Hc(s,a),e:Hc(r,a)};return to.runKernel(Jr,o)}});const yh=fo({divNoNan_:function(e,t){let n=co(e,"a","div"),s=co(t,"b","div");[n,s]=Ka(n,s);const r=zl(n,s),i=Pl(r),a=mh(s,i);return gh(a,i,r)}});const bh=fo({dot_:function(e,t){const n=co(e,"t1","dot"),s=co(t,"t2","dot");Gt(!(1!==n.rank&&2!==n.rank||1!==s.rank&&2!==s.rank),(()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${s.rank}.`));const r=1===n.rank?n.size:n.shape[1],i=1===s.rank?s.size:s.shape[0];if(Gt(r===i,(()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${i}.`)),1===n.rank&&1===s.rank){const e=Tc(n,[1,-1]),t=Tc(s,[-1,1]),r=Dc(e,t);return Tc(r,[])}if(1===n.rank&&2===s.rank){const e=Tc(n,[1,-1]),t=Tc(s,[s.shape[0],s.shape[1]]),r=Dc(e,t);return Tc(r,[r.size])}if(2===n.rank&&1===s.rank){const e=Tc(s,[-1,1]),t=Dc(n,e);return Tc(t,[t.size])}{const e=Tc(s,[s.shape[0],s.shape[1]]);return Dc(n,e)}}});const wh=fo({einsum_:function(e,...t){const n=t.map(((e,t)=>co(e,`tensors${t}`,"einsum"))),s={equation:e};return to.runKernel(Es,n,s)}});const vh=fo({elu_:function(e){const t={x:co(e,"x","elu","float32")};return to.runKernel(Is,t)}});const xh=fo({ensureShape_:function(e,t){const n=co(e,"x","ensureShape","string_or_numeric");if(!function(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;for(let n=0;n"Input dtype must be `int32` or `float32`.")),"int32"===t.dtype&&(t=Nl(t,"float32"));const n={x:t};return to.runKernel(Ns,n)}});function Ch(e,t){for(let n=0;ne[t]))]}function _h(e,t){return kh(e,t.map((e=>1)),t)}function Eh(e,t,n){Gt(Ch(t,n),(()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`))}function Ih(e,t){if(Ch(e,t))return null;const n=[];for(let s=0;sn.push(e))),n}function Th(e){return e.map(((e,t)=>[t,e])).sort(((e,t)=>e[1]-t[1])).map((e=>e[0]))}function Nh(e,t){const n=[];for(let s=t-e;s"Axis must be <= rank of the tensor"));const s={input:n},r={dim:t};return to.runKernel(Ds,s,r)}});const Ph=fo({expm1_:function(e){const t={x:co(e,"x","expm1")};return to.runKernel(Ms,t)}});const Uh=fo({tile_:function(e,t){const n=co(e,"x","tile","string_or_numeric");Gt(n.rank===t.length,(()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`));const s={x:n},r={reps:t};return to.runKernel(Ei,s,r)}});const Vh=fo({eye_:function(e,t,n,s="float32"){null==t&&(t=e);const r=Tl([e,t],s),i=e<=t?e:t;for(let e=0;e`Error in localResponseNormalization: x must be rank 3 or 4 but got\n rank ${i.rank}.`)),Gt(Xt(t),(()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`));let a=i,o=!1;3===i.rank&&(o=!0,a=Tc(i,[1,i.shape[0],i.shape[1],i.shape[2]]));const l={x:a},u={depthRadius:t,bias:n,alpha:s,beta:r},c=to.runKernel(ar,l,u);return o?Tc(c,[c.shape[1],c.shape[2],c.shape[3]]):c}});const td=fo({log_:function(e){const t={x:co(e,"x","log","float32")};return to.runKernel(tr,t)}});const nd=fo({log1p_:function(e){const t={x:co(e,"x","log1p")};return to.runKernel(nr,t)}});const sd=fo({neg_:function(e){const t={x:co(e,"x","neg")};return to.runKernel(Ar,t)}});const rd=fo({softplus_:function(e){const t={x:co(e,"x","softplus")};return to.runKernel(ai,t)}});const id=fo({logSigmoid_:function(e){const t=co(e,"x","logSigmoid");return Ul((e=>({value:sd(rd(sd(e))),gradFunc:t=>Fl(t,Mc(sd(e)))})))(t)}});const ad=fo({logSoftmax_:function(e,t=-1){const n=co(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}`);const s=Ul(((e,n)=>{const s=Rh(e,t,!0),r=Ql(e,s),i=Ql(Nl(r,"float32"),td(Dh(Bh(r),t,!0)));n([i]);return{value:i,gradFunc:(e,n)=>{const[s]=n,r=Bh(s);return Ql(e,Fl(Dh(e,t,!0),r))}}}));return s(n)}});const od=fo({logSumExp_:function(e,t=null,n=!1){const s=co(e,"x","logSumExp"),r=en(t,s.shape),i=Rh(s,r,!0),a=Ql(s,i),o=Bh(a),l=Dh(o,r),u=td(l),c=Dl(Tc(i,u.shape),u);if(n){const e=_h(c.shape,r);return Tc(c,e)}return c}});const ld=fo({logicalAnd_:function(e,t){const n=co(e,"a","logicalAnd","bool"),s=co(t,"b","logicalAnd","bool");su(n.shape,s.shape);const r={a:n,b:s};return to.runKernel(sr,r)}});const ud=fo({logicalNot_:function(e){const t={x:co(e,"x","logicalNot","bool")};return to.runKernel(rr,t)}});const cd=fo({logicalOr_:function(e,t){const n=co(e,"a","logicalOr","bool"),s=co(t,"b","logicalOr","bool");su(n.shape,s.shape);const r={a:n,b:s};return to.runKernel(ir,r)}});const hd=fo({logicalXor_:function(e,t){const n=co(e,"a","logicalXor","bool"),s=co(t,"b","logicalXor","bool");return su(n.shape,s.shape),ld(cd(e,t),ud(ld(e,t)))}}),dd=2147483648;const pd=fo({searchSorted_:function(e,t,n="left"){const s=co(e,"sortedSequence","searchSorted"),r=co(t,"values","searchSorted"),i=s.shape[s.shape.length-1],a=r.shape[r.shape.length-1],o=Tc(s,[-1,i]),l=Tc(r,[-1,a]);if(o.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(o.shape[0]!==l.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(Kt(l.shape)>=dd)throw new Error("values tensor size must less than 2147483648");if(o.shape[1]>=dd)throw new Error(`trailing dim_size must less than 2147483648 for int32 output type, was ${o.shape[1]}`);const u={sortedSequence:o,values:l},c={side:n};return to.runKernel(Qr,u,c)}});function fd(e,t){return pd(e,t,"left")}const md=fo({maxPool_:function(e,t,n,s,r){const i=co(e,"x","maxPool");let a=i,o=!1;3===i.rank&&(o=!0,a=Tc(i,[1,i.shape[0],i.shape[1],i.shape[2]])),Gt(4===a.rank,(()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`)),Gt(Sc(n,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '1'`)),Ic("maxPool",s,r);const l={x:a},u={filterSize:t,strides:n,pad:s,dimRoundingMode:r},c=to.runKernel(cr,l,u);return o?Tc(c,[c.shape[1],c.shape[2],c.shape[3]]):c}});const gd=fo({maxPool3d_:function(e,t=[1,1,1],n,s,r,i="NDHWC"){const a=co(e,"x","maxPool3d");let o=a,l=!1;4===a.rank&&(l=!0,o=Tc(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),Gt(5===o.rank,(()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`)),Gt("NDHWC"===i,(()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${i}`)),Ic("maxPool3d",s,r);const u={x:o},c={filterSize:t,strides:n,pad:s,dimRoundingMode:r,dataFormat:i},h=to.runKernel(dr,u,c);return l?Tc(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}});const yd=fo({maxPoolWithArgmax_:function(e,t,n,s,r=!1){const i={x:co(e,"x","maxPoolWithArgmax")},a={filterSize:t,strides:n,pad:s,includeBatchInIndex:r},o=to.runKernel(fr,i,a);return{result:o[0],indexes:o[1]}}});const bd=fo({mean_:function(e,t=null,n=!1){const s={x:co(e,"x","mean")},r={axis:t,keepDims:n};return to.runKernel(mr,s,r)}});function wd(e,t="float32"){if(bn(e),"complex64"===t){const t=wd(e,"float32"),n=wd(e,"float32");return mo(t,n)}const n=gn(Kt(e),t);return to.makeTensor(n,e,t)}function vd(e,t="float32"){if(bn(e),"complex64"===t){const t=vd(e,"float32"),n=wd(e,"float32");return mo(t,n)}const n=mn(Kt(e),t);return to.makeTensor(n,e,t)}function xd(e,t,{indexing:n="xy"}={}){if("xy"!==n&&"ij"!==n)throw new TypeError(`${n} is not a valid third argument to meshgrid`);if(void 0===e)return[];let s=co(e,"x","meshgrid",e instanceof Ma?e.dtype:"float32");if(void 0===t)return[s];let r=co(t,"y","meshgrid",t instanceof Ma?t.dtype:"float32");const i=Kt(s.shape),a=Kt(r.shape);return"xy"===n?(s=Tc(s,[1,-1]),r=Tc(r,[-1,1]),[Dc(vd([a,1],s.dtype),s),Dc(r,vd([1,i],r.dtype))]):(s=Tc(s,[-1,1]),r=Tc(r,[1,-1]),[Dc(s,vd([1,a],s.dtype)),Dc(vd([i,1],r.dtype),r)])}const Ad=fo({minimum_:function(e,t){let n=co(e,"a","minimum"),s=co(t,"b","minimum");[n,s]=Ka(n,s),"bool"===n.dtype&&(n=Nl(n,"int32"),s=Nl(s,"int32")),su(n.shape,s.shape);const r={a:n,b:s};return to.runKernel(yr,r)}});const Cd=fo({mirrorPad_:function(e,t,n){Gt("reflect"===n||"symmetric"===n,(()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`));const s=co(e,"x","mirrorPad");if(0===s.rank)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");Gt(t.length===s.rank,(()=>`Padding doesn't match input. Must be ${s.rank}. Got ${t.length}.`));const r="reflect"===n?1:0;for(let e=0;e"Invalid number of paddings. Must be length of 2 each.")),Gt(t[e][0]>=0&&t[e][0]<=s.shape[e]-r&&t[e][1]>=0&&t[e][1]<=s.shape[e]-r,(()=>`Padding in dimension ${e} cannot be greater than or equal to ${s.shape[e]-r} or less than 0 for input of shape ${s.shape}`));const i={paddings:t,mode:n},a={x:s};return to.runKernel(br,a,i)}});const kd=fo({mod_:function(e,t){let n=co(e,"a","mod"),s=co(t,"b","mod");[n,s]=Ka(n,s);const r={a:n,b:s};return to.runKernel(wr,r)}});const Sd=fo({moments_:function(e,t=null,n=!1){const s=en(t,(e=co(e,"x","moments")).shape),r=bd(e,s,n);let i=r.shape;n||(i=_h(r.shape,s));const a=Ll(Ql(Nl(e,"float32"),Tc(r,i)));return{mean:r,variance:bd(a,s,n)}}});const _d=fo({multiRNNCell_:function(e,t,n,s){const r=co(t,"data","multiRNNCell"),i=ho(n,"c","multiRNNCell"),a=ho(s,"h","multiRNNCell");let o=r;const l=[];for(let t=0;t2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${a}`);n=n||Math.random();const o={logits:1===a?Tc(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:s},u=to.runKernel(vr,o,l);return 1===a?Tc(u,[u.size]):u}});const Id=fo({notEqual_:function(e,t){let n=co(e,"a","notEqual","string_or_numeric"),s=co(t,"b","notEqual","string_or_numeric");[n,s]=Ka(n,s),su(n.shape,s.shape);const r={a:n,b:s};return to.runKernel(Cr,r)}});const Td=fo({oneHot_:function(e,t,n=1,s=0,r="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);const i={indices:co(e,"indices","oneHot","int32")},a={dtype:r,depth:t,onValue:n,offValue:s};return to.runKernel(Ir,i,a)}});const Nd=fo({onesLike_:function(e){const t={x:co(e,"x","onesLike")};return to.runKernel(Er,t)}});const Rd=fo({outerProduct_:function(e,t){const n=co(e,"v1","outerProduct"),s=co(t,"v2","outerProduct");Gt(1===n.rank&&1===s.rank,(()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${s.rank}.`));const r=Tc(n,[-1,1]),i=Tc(s,[1,-1]);return Dc(r,i)}});const Od=fo({pad_:function(e,t,n=0){const s=co(e,"x","pad");if(0===s.rank)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");const r={paddings:t,constantValue:n},i={x:s};return to.runKernel(Nr,i,r)}});const Dd=fo({pad1d_:function(e,t,n=0){return Gt(2===t.length,(()=>"Invalid number of paddings. Must be length of 2.")),Od(e,[t],n)}});const Md=fo({pad2d_:function(e,t,n=0){return Gt(2===t.length&&2===t[0].length&&2===t[1].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),Od(e,t,n)}});const zd=fo({pad3d_:function(e,t,n=0){return Gt(3===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),Od(e,t,n)}});const Fd=fo({pad4d_:function(e,t,n=0){return Gt(4===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length&&2===t[3].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),Od(e,t,n)}});const Bd=fo({spaceToBatchND_:function(e,t,n){const s=co(e,"x","spaceToBatchND");Gt(s.rank>=1+t.length,(()=>`input rank ${s.rank} should be > than [blockShape] ${t.length}`)),Gt(n.length===t.length,(()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`)),Gt(s.shape.reduce(((e,s,r)=>r>0&&r<=t.length?e&&(s+n[r-1][0]+n[r-1][1])%t[r-1]==0:e),!0),(()=>`input spatial dimensions ${s.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`));const r={x:s},i={blockShape:t,paddings:n};return to.runKernel(ui,r,i)}});const Ld=fo({pool_:function(e,t,n,s,r,i,a){null==r&&(r=[1,1]),null==i&&(i=1),0===s&&(s="valid");const o=co(e,"x","maxPool");let l=o,u=!1;3===o.rank&&(u=!0,l=Tc(o,[1,o.shape[0],o.shape[1],o.shape[2]])),Gt(Sc(i,r),(()=>`Error in pool: Either strides or dilations must be 1. Got strides ${i} and dilations '${r}'`));const c=mc(l.shape,t,i,r,s),h=[c.dilationHeight,c.dilationWidth];let d;d="same"===s?function(e,t){const n=e.map(((e,n)=>e+(e-1)*(t[n]-1))),s=n.map((e=>e-1)),r=s.map((e=>Math.floor(e/2))),i=s.map(((e,t)=>e-r[t]));return s.map(((e,t)=>[r[t],i[t]]))}([c.filterHeight,c.filterWidth],h):[[0,0],[0,0]];const p=1===h[0]&&1===h[1],[f,m]=function(e,t,n){const s=n.map((e=>e[0])),r=n.map((e=>e[1])),i=e.concat(s,r),a=t.map(((e,t)=>(e-i[t]%e)%e)),o=r.map(((e,t)=>e+a[t])),l=t.map(((e,t)=>[s[t],o[t]])),u=t.map(((e,t)=>[0,a[t]]));return[l,u]}([c.inHeight,c.inWidth],h,d),g=p?s:"valid",y=p?l:Bd(l,h,f),b=("avg"===n?()=>Nc(y,t,i,g,a):()=>md(y,t,i,g,a))(),w=p?b:Lc(b,h,m);return u?Tc(w,[w.shape[1],w.shape[2],w.shape[3]]):w}});const Pd=fo({prelu_:function(e,t){const n={x:co(e,"x","prelu"),alpha:co(t,"alpha","prelu")};return to.runKernel(Or,n)}});const Ud=fo({prod_:function(e,t=null,n=!1){let s=co(e,"x","prod");"bool"===s.dtype&&(s=Nl(s,"int32"));const r={x:s},i={axis:t,keepDims:n};return to.runKernel(Dr,r,i)}});const Vd=fo({raggedGather_:function(e,t,n,s){const r={paramsNestedSplits:e.map(((e,t)=>co(e,`tensors${t}`,"raggedGather","int32"))),paramsDenseValues:co(t,"paramsDenseValues","raggedGather"),indices:co(n,"indices","raggedGather","int32")},i={outputRaggedRank:s},a=to.runKernel(Mr,r,i);return{outputNestedSplits:a.slice(0,a.length-1),outputDenseValues:a[a.length-1]}}});const Wd=fo({raggedRange_:function(e,t,n){const s=co(e,"starts","raggedRange"),r={starts:s,limits:co(t,"limits","raggedRange",s.dtype),deltas:co(n,"deltas","raggedRange",s.dtype)},i=to.runKernel(zr,r);return{rtNestedSplits:i[0],rtDenseValues:i[1]}}});const jd=fo({raggedTensorToTensor_:function(e,t,n,s,r){const i=co(e,"shape","raggedTensorToTensor","int32"),a=co(t,"values","raggedTensorToTensor"),o={shape:i,values:a,defaultValue:co(n,"defaultValue","raggedTensorToTensor",a.dtype),rowPartitionTensors:s.map(((e,t)=>co(e,`tensors${t}`,"raggedTensorToTensor","int32")))},l={rowPartitionTypes:r};return to.runKernel(Fr,o,l)}});const Gd=fo({rand_:function(e,t,n){bn(e);const s=Kt(e);let r=null;if(null==n||"float32"===n)r=new Float32Array(s);else if("int32"===n)r=new Int32Array(s);else{if("bool"!==n)throw new Error(`Unknown data type ${n}`);r=new Uint8Array(s)}for(let e=0;e=1||0===i);const a=Math.sqrt(-2*Math.log(i)/i);e=this.mean+this.stdDev*s*a,t=this.mean+this.stdDev*r*a,this.truncated&&!this.isValidTruncated(e)||(n=!0)}return this.truncated&&!this.isValidTruncated(t)||(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return null==this.dtype||"float32"===this.dtype?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}}class Kd{constructor(e,t,n,s){this.alpha=e,this.beta=1/t,this.dtype=n;const r=s||Math.random();this.randu=qd.alea(r.toString()),this.randn=new Hd(0,1,n,!1,this.randu()),this.d=e<1?e+2/3:e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,s,r,i;for(;;){do{s=this.randn.nextValue(),i=1+this.c*s}while(i<=0);if(i*=i*i,e=s*s,t=1-.331*e*e,n=.5*e+this.d*(1-i+Math.log(i)),r=this.randu(),rnull==this.dtype||"float32"===this.dtype,this.min=e,this.range=t-e,this.dtype=n,null==s&&(s=Math.random()),"number"==typeof s&&(s=s.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=qd.alea(s)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}const Xd=fo({randomGamma_:function(e,t,n=1,s="float32",r){if(bn(e),null==n&&(n=1),null==s&&(s="float32"),"float32"!==s&&"int32"!==s)throw new Error(`Unsupported data type ${s}`);const i=new Kd(t,n,s,r),a=Tl(e,s);for(let e=0;e`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`)),ip(t,0)}});const op=fo({reverse2d_:function(e,t){const n=co(e,"x","reverse");return Gt(2===n.rank,(()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`)),ip(n,t)}});const lp=fo({reverse3d_:function(e,t){const n=co(e,"x","reverse");return Gt(3===n.rank,(()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`)),ip(n,t)}});const up=fo({reverse4d_:function(e,t){const n=co(e,"x","reverse");return Gt(4===n.rank,(()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`)),ip(n,t)}});const cp=fo({round_:function(e){const t={x:co(e,"x","round")};return to.runKernel($r,t)}});const hp=fo({rsqrt_:function(e){const t={x:co(e,"x","rsqrt","float32")};return to.runKernel(Xr,t)}});const dp=fo({selu_:function(e){const t={x:co(e,"x","selu")};return to.runKernel(ei,t)}});const pp=fo({separableConv2d_:function(e,t,n,s,r,i=[1,1],a="NHWC"){const o=co(e,"x","separableConv2d"),l=co(t,"depthwiseFilter","separableConv2d"),u=co(n,"pointwiseFilter","separableConv2d");let c=o,h=!1;if(3===o.rank&&(h=!0,c=Tc(o,[1,o.shape[0],o.shape[1],o.shape[2]])),"NCHW"===a)throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");Gt(4===c.rank,(()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`)),Gt(4===l.rank,(()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`)),Gt(4===u.rank,(()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`)),Gt(1===u.shape[0],(()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`)),Gt(1===u.shape[1],(()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`));const d=l.shape[2],p=l.shape[3];Gt(u.shape[2]===d*p,(()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${d*p}, but got ${u.shape[2]}.`));const f=dh(c,l,s,r,a,i),m=Jc(f,u,1,"valid",a);return h?Tc(m,[m.shape[1],m.shape[2],m.shape[3]]):m}});const fp=async function(e,t){const n=co(e,"x","setdiff1d"),s=co(t,"y","setdiff1d");Gt(n.dtype===s.dtype,(()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${s.dtype}).`)),Gt(1===n.rank,(()=>`x should be 1D tensor, but got x (${n.shape}).`)),Gt(1===s.rank,(()=>`y should be 1D tensor, but got y (${s.shape}).`));const r=await n.data(),i=await s.data(),a=new Set(i);let o=0;for(let e=0;e`slice1d expects a rank-1 tensor, but got a rank-${s.rank} tensor`)),zc(s,[t],[n])}});const wp=fo({slice2d_:function(e,t,n){const s=co(e,"x","slice2d");return Gt(2===s.rank,(()=>`slice2d expects a rank-2 tensor, but got a rank-${s.rank} tensor`)),zc(s,t,n)}});const vp=fo({slice3d_:function(e,t,n){const s=co(e,"x","slice3d");return Gt(3===s.rank,(()=>`slice3d expects a rank-3 tensor, but got a rank-${s.rank} tensor`)),zc(s,t,n)}});const xp=fo({slice4d_:function(e,t,n){const s=co(e,"x","slice4d");return Gt(4===s.rank,(()=>`slice4d expects a rank-4 tensor, but got a rank-${s.rank} tensor`)),zc(s,t,n)}});const Ap=fo({softmax_:function(e,t=-1){const n=co(e,"logits","softmax","float32");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}`);const s={logits:n},r={dim:t};return to.runKernel(hi,s,r)}});const Cp=fo({fft_:function(e){Gt("complex64"===e.dtype,(()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`));const t={input:e};return to.runKernel(zs,t)}});const kp=fo({ifft_:function(e){Gt("complex64"===e.dtype,(()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`));const t={input:e};return to.runKernel(Hs,t)}});const Sp=fo({irfft_:function(e){const t=e.shape[e.shape.length-1],n=e.size/t;let s;if(t<=2){const r=Tc(e,[n,t]);s=kp(r)}else{const r=[n,2*(t-1)],i=Tc(tp(e),[n,t]),a=Tc(Hh(e),[n,t]),o=ip(zc(i,[0,1],[n,t-2]),1),l=Fl(ip(zc(a,[0,1],[n,t-2]),1),Vl(-1)),u=Oc([i,o],1),c=Oc([a,l],1),h=Tc(mo(u,c),[r[0],r[1]]);s=kp(h)}if(s=tp(s),3===e.rank&&0!==e.shape[0]){const t=s,n=e.shape[0];s=Tc(s,[n,s.shape[0]/n,s.shape[1]]),t.dispose()}return s}});const _p=fo({split_:function(e,t,n=0){const s={x:co(e,"x","split")},r={numOrSizeSplits:t,axis:n};return to.runKernel(ci,s,r)}});const Ep=fo({rfft_:function(e,t){Gt("float32"===e.dtype,(()=>`The dtype for rfft() must be real value but got ${e.dtype}`));let n=e.shape[e.shape.length-1];const s=e.size/n;let r;if(null!=t&&t0)),i=e.shape.map((e=>e));i[e.shape.length-1]=t,r=zc(e,s,i),n=t}else if(null!=t&&t>n){const s=e.shape.map((e=>e));s[e.shape.length-1]=t-n,r=Oc([e,wd(s)],e.shape.length-1),n=t}else r=e;const i=Pl(r),a=Tc(mo(r,i),[s,n]),o=Cp(a),l=Math.floor(n/2)+1,u=tp(o),c=Hh(o),h=_p(u,[l,n-l],u.shape.length-1),d=_p(c,[l,n-l],c.shape.length-1),p=r.shape.slice();return p[r.shape.length-1]=l,Tc(mo(h[0],d[0]),p)}});const Ip=fo({squaredDifference_:function(e,t){let n=co(e,"a","squaredDifference"),s=co(t,"b","squaredDifference");[n,s]=Ka(n,s),su(n.shape,s.shape);const r={a:n,b:s};return to.runKernel(yi,r,{})}});const Tp=fo({squeeze_:function(e,t){const n=co(e,"x","squeeze","string_or_numeric");return Tc(n,tn(n.shape,t).newShape)}});const Np=fo({stack_:function(e,t=0){const n=ho(e,"tensors","stack","string_or_numeric");Gt(n.length>=1,(()=>"Pass at least one tensor to tf.stack")),n.length>0&&Gt(t<=n[0].rank,(()=>"Axis must be <= rank of the tensor"));const s=n,r={axis:t};return to.runKernel(Tr,s,r)}});const Rp=fo({step_:function(e,t=0){const n={x:co(e,"x","step")},s={alpha:t};return to.runKernel(zi,n,s)}});const Op=fo({stridedSlice_:function(e,t,n,s,r=0,i=0,a=0,o=0,l=0){const u={x:co(e,"x","stridedSlice","string_or_numeric")},c={begin:t,end:n,strides:s,beginMask:r,endMask:i,ellipsisMask:a,newAxisMask:o,shrinkAxisMask:l};return to.runKernel(vi,u,c)}});const Dp=fo({tan_:function(e){const t={x:co(e,"x","tan","float32")};return to.runKernel(Si,t)}});function Mp(e,t){Ht(e);const n=oo(e,t);if(1!==n.length)throw new Error("tensor1d() requires values to be a flat/TypedArray");return go(e,null,n,t)}function zp(e,t,n){if(Ht(e),null!=t&&2!==t.length)throw new Error("tensor2d() requires shape to have two numbers");const s=oo(e,n);if(2!==s.length&&1!==s.length)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(1===s.length&&null==t)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return go(e,t,s,n)}function Fp(e,t,n){if(Ht(e),null!=t&&4!==t.length)throw new Error("tensor4d() requires shape to have four numbers");const s=oo(e,n);if(4!==s.length&&1!==s.length)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(1===s.length&&null==t)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return go(e,t,s,n)}function Bp(e,t,n){if(Ht(e),null!=t&&5!==t.length)throw new Error("tensor5d() requires shape to have five numbers");const s=oo(e,n);if(5!==s.length&&1!==s.length)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(1===s.length&&null==t)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return go(e,t,s,n)}function Lp(e,t,n){if(Ht(e),null!=t&&6!==t.length)throw new Error("tensor6d() requires shape to have six numbers");const s=oo(e,n);if(6!==s.length&&1!==s.length)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(1===s.length&&null==t)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return go(e,t=t||s,s,n)}function Pp(e,t,n){const s=t.rank>1?t.shape[t.rank-1]:1,r=t.rank>1?t.rank-1:1,i=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${n.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${s}, and batchDim: ${r}.`;if(n.rank1?t.shape[s-1]:1,i=n.length;let a=1;for(let e=r;e= 0 but got ${t}`);if(t>r)throw new Error(`'k' passed to topk() must be <= the last dimension (${r}) but got ${t}`);const i={x:s},a={k:t,sorted:n},[o,l]=to.runKernel(Ii,i,a);return{values:o,indices:l}}});const Gp=fo({truncatedNormal_:function(e,t=0,n=1,s,r){if(bn(e),null!=s&&"bool"===s)throw new Error("Unsupported data type $ { dtype }");const i=new Hd(t,n,s,!0,r),a=Tl(e,s);for(let e=0;e0,(()=>"The input tensor must be at least 1D"));const s={x:n},r={axis:t},[i,a]=to.runKernel(Ri,s,r);return{values:i,indices:a}}});const Hp=fo({unsortedSegmentSum_:function(e,t,n){const s=co(e,"x","unsortedSegmentSum"),r=co(t,"segmentIds","unsortedSegmentSum","int32");Gt(Xt(n),(()=>"numSegments must be of dtype int"));const i={x:s,segmentIds:r},a={numSegments:n};return to.runKernel(Di,i,a)}});const Kp=fo({unstack_:function(e,t=0){const n=co(e,"x","unstack","string_or_numeric");Gt(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`));const s={value:n},r={axis:t};return to.runKernel(Oi,s,r)}});function $p(e,t){return pd(e,t,"right")}function Xp(e,t=!0,n,s){return to.makeVariable(e,t,n,s)}function Zp(e,t){const n=[];for(let e=0;e0,(()=>"mask cannot be scalar")),qt(o.slice(i,i+a),r.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let e=i;et)).reverse()),Gt(s.rank===t.length,(()=>`Error in transpose: rank of input ${s.rank} must match length of perm ${t}.`)),t.forEach((e=>{Gt(e>=0&&e"All entries in 'perm' must be between 0 and "+(s.rank-1)+` but got ${t}`))})),s.rank<=1)return s.clone();const r={x:s},i={perm:t};return"complex64"===s.dtype?Ao((()=>{let e=tp(s),t=Hh(s);return e=to.runKernel(Ni,{x:e},i),t=to.runKernel(Ni,{x:t},i),n&&(t=sd(t)),mo(e,t)})):to.runKernel(Ni,r,i)}});const ef=fo({movingAverage_:function(e,t,n,s,r=!0){const i=co(e,"v","movingAverage"),a=co(t,"x","movingAverage"),o=co(n,"decay","movingAverage");var l,u;u=a,Gt((l=i).dtype===u.dtype,(()=>`The dtypes of the first(${l.dtype}) and second(${u.dtype}) input must match`)),Gt($t(i.shape,a.shape),(()=>"Shape mismatch in v and x"));const c=Vl(1),h=Ql(c,o);let d=Fl(Ql(a,i),h);if(r){Gt(null!=s,(()=>"When using zeroDebias: true, step is required."));const e=co(s,"step","movingAverage");d=zl(d,Ql(c,Yl(o,e)))}return Dl(i,d)}});const tf=fo({scatterND_:function(e,t,n){bn(n);const s=co(e,"indices","scatterND","int32"),r=co(t,"updates","scatterND");Up(r,s,n);const i={indices:s,updates:r},a={shape:n};return to.runKernel(Zr,i,a)}});const nf=fo({sparseToDense_:function(e,t,n,s=0){bn(n);const r=co(e,"sparseIndices","sparseToDense","int32"),i=co(t,"sparseValues","sparseToDense","string_or_numeric"),a=co(s,"defaultValue","sparseToDense",i.dtype);!function(e,t,n,s){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}.`);const r=e.rank>0?e.shape[0]:1,i=e.rank>1?e.shape[1]:1;if(n.length!==i)throw new Error(`outputShape has incorrect number of elements:, ${n.length}, should be: ${i}.`);const a=t.size;if(0!==t.rank&&(1!==t.rank||a!==r))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${r}]`);if(t.dtype!==s.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}(r,i,n,a);const o={sparseIndices:r,sparseValues:i,defaultValue:a},l={outputShape:n};return to.runKernel(gi,o,l)}});const sf=fo({gatherND_:function(e,t){const n=co(t,"indices","gatherND","int32"),s={params:co(e,"x","gatherND","string_or_numeric"),indices:n};return to.runKernel(Ws,s)}});const rf=fo({dropout_:function(e,t,n,s){const r=co(e,"x","dropout");if(Gt("float32"===r.dtype,(()=>`x has to be a floating point tensor since it's going to be scaled, but got a ${r.dtype} tensor instead.`)),Gt(t>=0&&t<1,(()=>`rate must be a float in the range [0, 1), but got ${t}.`)),0===t)return e instanceof Ma?r.clone():r;const i=function(e,t){if(null==t)return e.shape.slice();if($t(e.shape,t))return t;if(e.shape.length===t.length){const n=[];for(let s=0;s1,(()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${s.rank}`)),Gt(s.rank-1===r.rank,(()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${s.rank} and targets rank ${r.rank}`)),qt(s.shape.slice(0,s.shape.length-1),r.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");const i=s.shape[s.shape.length-1];Gt(n>0&&n<=i,(()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${i}), but got ${n}`));const a=await s.data(),o=await r.data(),[l,u]=[a.length/i,i],c=nn("bool",l);for(let e=0;et.value-e.value)),c[e]=0;for(let t=0;t`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`)),Gt(4===l.rank,(()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`)),Gt(4===n.length,(()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`));const u="NHWC"===i?o.shape[3]:o.shape[1],c="NHWC"===i?l.shape[3]:l.shape[1];Gt(u===n[2],(()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`)),Gt(c===n[3],(()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${n[3]}).`)),Ic("conv2dDerFilter",r,a);const h={x:o,dy:l},d={strides:s,pad:r,dataFormat:i,dimRoundingMode:a,filterShape:n};return to.runKernel(as,h,d)}});function cf(e,t,n){if(null==n||"linear"===n)return e;if("relu"===n)return Fl(e,Rp(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function hf(e,t){let n=t;const s=nu(e.shape,t.shape);return s.length>0&&(n=Dh(n,s)),Tc(n,e.shape)}function df(e,t,n,s){if("linear"===t)return e;if("relu"===t)return sp(e);if("elu"===t)return vh(e);if("relu6"===t)return rp(e);if("prelu"===t)return Pd(e,n);if("leakyrelu"===t)return Zh(e,s);if("sigmoid"===t)return Mc(e);throw new Error(`Unknown fused activation ${t}.`)}const pf=(e,t)=>!(e>0)||"linear"===t;const ff=fo({fusedConv2d_:function({x:e,filter:t,strides:n,pad:s,dataFormat:r="NHWC",dilations:i=[1,1],dimRoundingMode:a,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(l=l||"linear",!1===pf(to.state.gradientDepth,l)){Gt("NHWC"===r,(()=>`Error in fused conv2d: got dataFormat of ${r} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`));let h=Jc(e,t,n,s,r,i,a);return null!=o&&(h=Dl(h,o)),df(h,l,u,c)}const h=co(e,"x","conv2d","float32"),d=co(t,"filter","conv2d","float32");let p=h,f=!1;3===h.rank&&(f=!0,p=Tc(h,[1,h.shape[0],h.shape[1],h.shape[2]])),Gt(4===p.rank,(()=>`Error in fused conv2d: input must be rank 4, but got rank ${p.rank}.`)),Gt(4===d.rank,(()=>`Error in fused conv2d: filter must be rank 4, but got rank ${d.rank}.`)),Ic("fused conv2d",s,a);const m="NHWC"===r?p.shape[3]:p.shape[1];Gt(d.shape[2]===m,(()=>`Error in conv2d: depth of input (${m}) must match input depth for filter ${d.shape[2]}.`)),Gt(Sc(n,i),(()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`));const g=yc(p.shape,d.shape,n,i,s,a);let y,b;if(null!=o&&(y=co(o,"bias","fused conv2d"),[y]=Ka(y,h),"NHWC"===r?su(g.outShape,y.shape):(Gt(y.shape.length<=1,(()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${y.shape.length}.`)),Gt(0===y.shape.length||y.shape[0]===g.outChannels||1===y.shape[0],(()=>`Error in fused conv2d: bias shape (${y.shape}) is not compatible with the number of output channels (${g.outChannels})`)))),null!=u){const e=u.shape;if(Gt(e.length<=1||3===e.length,(()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${e.length}.`)),1===e.length)Gt(1===e[0]||e[0]===g.outChannels,(()=>`Error in fused conv2d: PReLU activation weights (${e}) is not compatible with the number of output channels (${g.outChannels}).`));else if(3===e.length)try{su(e,g.outShape)}catch(t){const n=`Error in fused conv2d: PReLU activation weights (${e}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(n)}b=co(u,"prelu weights","fused conv2d")}const w=(e,t)=>{Gt("NHWC"===r,(()=>`Error in gradient of fused conv2D: got dataFormat of ${r} but only NHWC is currently supported.`));const[a,o,u,c]=t,h=cf(e,u,l);Gt(kc(i),(()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${i}'`));const d=[th(o.shape,h,a,n,s),uf(o,h,a.shape,n,s)];if(null!=c){const e=hf(c,h);d.push(e)}return d},v={x:p,filter:d,bias:y,preluActivationWeights:b},x={strides:n,pad:s,dataFormat:r,dilations:i,dimRoundingMode:a,activation:l,leakyreluAlpha:c};if(null==o){const e=Ul(((e,t,n)=>{let s=to.runKernel(Pi,v,x);return n([t,e,s]),f&&(s=Tc(s,[s.shape[1],s.shape[2],s.shape[3]])),{value:s,gradFunc:w}}));return e(p,d)}{const e=Ul(((e,t,n,s)=>{let r=to.runKernel(Pi,v,x);return s([t,e,r,n]),f&&(r=Tc(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:w}}));return e(p,d,y)}}});const mf=fo({depthwiseConv2dNativeBackpropFilter_:function(e,t,n,s,r,i=[1,1],a){let o=e;3===e.rank&&(o=Tc(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;3===l.rank&&(l=Tc(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const u={x:o,dy:l},c={strides:s,pad:r,dimRoundingMode:a,dilations:i,filterShape:n};return to.runKernel(ws,u,c)}});const gf=fo({depthwiseConv2dNativeBackpropInput_:function(e,t,n,s,r,i=[1,1],a){let o=t,l=!1;3===t.rank&&(l=!0,o=Tc(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const u={dy:o,filter:n},c={strides:s,pad:r,dimRoundingMode:a,dilations:i,inputShape:e},h=to.runKernel(vs,u,c);return l?Tc(h,[h.shape[1],h.shape[2],h.shape[3]]):h}});const yf=fo({fusedDepthwiseConv2d_:function({x:e,filter:t,strides:n,pad:s,dataFormat:r="NHWC",dilations:i=[1,1],dimRoundingMode:a,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(!1===pf(to.state.gradientDepth,l)){let h=dh(e,t,n,s,r,i,a);return null!=o&&(h=Dl(h,o)),df(h,l,u,c)}const h=co(e,"x","depthwiseConv2d","float32"),d=co(t,"filter","depthwiseConv2d","float32");let p=h,f=!1;3===h.rank&&(f=!0,p=Tc(h,[1,h.shape[0],h.shape[1],h.shape[2]])),Gt(4===p.rank,(()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${p.rank}.`)),Gt(4===d.rank,(()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${d.rank}.`)),Gt(p.shape[3]===d.shape[2],(()=>`Error in fused depthwiseConv2d: number of input channels (${p.shape[3]}) must match the inChannels dimension in filter ${d.shape[2]}.`)),null==i&&(i=[1,1]),Gt(Sc(n,i),(()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`)),Ic("fused depthwiseConv2d",s,a);const m=yc(p.shape,d.shape,n,i,s,a,!0);let g,y;null!=o&&(g=co(o,"bias","fused conv2d"),[g]=Ka(g,h),su(m.outShape,g.shape)),null!=u&&(y=co(u,"prelu weights","fused depthwiseConv2d"));const b=(e,t)=>{Gt(kc(i),(()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${i}'`));const[r,o,u,c]=t,h=cf(e,u,l),d=gf(o.shape,h,r,n,s,i,a),p=mf(o,h,r.shape,n,s,i,a);if(null!=c){return[d,p,hf(g,h)]}return[d,p]},w={x:p,filter:d,bias:g,preluActivationWeights:y},v={strides:n,pad:s,dataFormat:r,dilations:i,dimRoundingMode:a,activation:l,leakyreluAlpha:c};if(null==o){const e=Ul(((e,t,n)=>{let s=to.runKernel(Ui,w,v);return n([t,e,s]),f&&(s=Tc(s,[s.shape[1],s.shape[2],s.shape[3]])),{value:s,gradFunc:b}}));return e(p,d)}{const e=Ul(((e,t,n,s)=>{let r=to.runKernel(Ui,w,v);return s([t,e,r,n]),f&&(r=Tc(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:b}}));return e(p,d,g)}}});const bf=fo({fusedMatMul_:function({a:e,b:t,transposeA:n=!1,transposeB:s=!1,bias:r,activation:i="linear",preluActivationWeights:a,leakyreluAlpha:o=.2}){if(!1===pf(to.state.gradientDepth,i)){let l=Dc(e,t,n,s);return null!=r&&(l=Dl(l,r)),df(l,i,a,o)}let l=co(e,"a","fused matMul"),u=co(t,"b","fused matMul");[l,u]=Ka(l,u);const c=n?l.shape[l.rank-2]:l.shape[l.rank-1],h=s?u.shape[u.rank-1]:u.shape[u.rank-2],d=n?l.shape[l.rank-1]:l.shape[l.rank-2],p=s?u.shape[u.rank-2]:u.shape[u.rank-1],f=l.shape.slice(0,-2),m=u.shape.slice(0,-2),g=Kt(f),y=Kt(m);Gt(c===h,(()=>`Error in fused matMul: inner shapes (${c}) and (${h}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${n} and transposeB=${s} must match.`));const b=su(l.shape.slice(0,-2),u.shape.slice(0,-2)).concat([d,p]),w=Tc(l,n?[g,c,d]:[g,d,c]),v=Tc(u,s?[y,p,h]:[y,h,p]);let x,A;null!=r&&(x=co(r,"bias","fused matMul"),[x]=Ka(x,l),su(b,x.shape)),null!=a&&(A=co(a,"prelu weights","fused matMul"));const C=(e,t)=>{const[a,o,l,u]=t,c=cf(Tc(e,l.shape),l,i);let h,d;if(n||s?!n&&s?(h=Dc(c,o,!1,!1),d=Dc(c,a,!0,!1)):n&&!s?(h=Dc(o,c,!1,!0),d=Dc(a,c,!1,!1)):(h=Dc(o,c,!0,!0),d=Dc(c,a,!0,!0)):(h=Dc(c,o,!1,!0),d=Dc(a,c,!0,!1)),null!=r){return[h,d,hf(u,c)]}return[h,d]},k={a:w,b:v,bias:x,preluActivationWeights:A},S={transposeA:n,transposeB:s,activation:i,leakyreluAlpha:o};if(null==r){const e=Ul(((e,t,n)=>{const s=to.runKernel(Li,k,S);return n([e,t,s]),{value:Tc(s,b),gradFunc:C}}));return e(w,v)}{const e=Ul(((e,t,n,s)=>{const r=to.runKernel(Li,k,S);return s([e,t,r,n]),{value:Tc(r,b),gradFunc:C}}));return e(w,v,x)}}});const wf=fo({hammingWindow_:function(e){return of(e,.54,.46)}});const vf=fo({hannWindow_:function(e){return of(e,.5,.5)}});const xf=fo({frame_:function(e,t,n,s=!1,r=0){let i=0;const a=[];for(;i+t<=e.size;)a.push(zc(e,i,t)),i+=n;if(s)for(;i`Error in cropAndResize: image must be rank 4,but got rank ${a.rank}.`)),Gt(2===o.rank&&4===o.shape[1],(()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`)),Gt(1===l.rank&&l.shape[0]===u,(()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`)),Gt(2===s.length,(()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${s.length}.`)),Gt(s[0]>=1&&s[1]>=1,(()=>`cropSize must be atleast [1,1], but was ${s}`)),Gt("bilinear"===r||"nearest"===r,(()=>`method must be bilinear or nearest, but was ${r}`));const c={image:a,boxes:o,boxInd:l},h={method:r,extrapolationValue:i,cropSize:s};return to.runKernel(ms,c,h)}});const kf=fo({flipLeftRight_:function(e){const t=co(e,"image","flipLeftRight","float32");Gt(4===t.rank,(()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`));const n={image:t};return to.runKernel(Bs,n,{})}});const Sf=fo({grayscaleToRGB_:function(e){const t=co(e,"image","grayscaleToRGB"),n=t.rank-1,s=t.shape[n];Gt(t.rank>=2,(()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`)),Gt(1===s,(()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${s}.`));const r=new Array(t.rank);return r.fill(1,0,n),r[n]=3,Uh(t,r)}});const _f=fo({rgbToGrayscale_:function(e){const t=co(e,"image","RGBToGrayscale"),n=t.rank-1,s=t.shape[n];Gt(t.rank>=2,(()=>`Error in RGBToGrayscale: images must be at least rank 2, but got rank ${t.rank}.`)),Gt(3===s,(()=>`Error in RGBToGrayscale: last dimension of an RGB image should be size 3, but got size ${s}.`));const r=t.dtype,i=Nl(t,"float32"),a=Mp([.2989,.587,.114]);let o;switch(t.rank){case 2:o=wh("ij,j->i",i,a);break;case 3:o=wh("ijk,k->ij",i,a);break;case 4:o=wh("ijkl,l->ijk",i,a);break;case 5:o=wh("ijklm,m->ijkl",i,a);break;case 6:o=wh("ijklmn,n->ijklm",i,a);break;default:throw new Error("Not a valid tensor rank.")}return o=Lh(o,-1),Nl(o,r)}});const Ef=fo({rotateWithOffset_:function(e,t,n=0,s=.5){const r=co(e,"image","rotateWithOffset","float32");Gt(4===r.rank,(()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${r.rank}.`));const i={image:r},a={radians:t,fillValue:n,center:s};return to.runKernel(Bi,i,a)}});function If(e,t,n,s,r,i){null==s&&(s=.5),null==r&&(r=Number.NEGATIVE_INFINITY),null==i&&(i=0);const a=e.shape[0];return n=Math.min(n,a),Gt(0<=s&&s<=1,(()=>`iouThreshold must be in [0, 1], but was '${s}'`)),Gt(2===e.rank,(()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`)),Gt(4===e.shape[1],(()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`)),Gt(1===t.rank,(()=>"scores must be a 1D tensor")),Gt(t.shape[0]===a,(()=>`scores has incompatible shape with boxes. Expected ${a}, but was ${t.shape[0]}`)),Gt(0<=i&&i<=1,(()=>`softNmsSigma must be in [0, 1], but was '${i}'`)),{maxOutputSize:n,iouThreshold:s,scoreThreshold:r,softNmsSigma:i}}const Tf=fo({nonMaxSuppression_:function(e,t,n,s=.5,r=Number.NEGATIVE_INFINITY){const i=co(e,"boxes","nonMaxSuppression","float32"),a=co(t,"scores","nonMaxSuppression","float32"),o=If(i,a,n,s,r),l={maxOutputSize:n=o.maxOutputSize,iouThreshold:s=o.iouThreshold,scoreThreshold:r=o.scoreThreshold};return to.runKernel(kr,{boxes:i,scores:a},l)}});function Nf(e,t,n){const s=function(e,t,n){return function(e,t,n){let s=0,r=e.length,i=0,a=!1;for(;s>>1);const o=n(t,e[i]);o>0?s=i+1:(r=i,a=!o)}return a?s:-s-1}(e,t,n||Rf)}(e,t,n),r=s<0?-(s+1):s;e.splice(r,0,t)}function Rf(e,t){return e>t?1:er&&u.push({score:t[e],boxIndex:e,suppressBeginIndex:0});u.sort(Lf);const c=i>0?-.5/i:0,h=[],d=[];for(;h.length0;){const t=u.pop(),{score:n,boxIndex:i,suppressBeginIndex:a}=t;if(n=a;--n){const a=Ff(e,i,h[n]);if(a>=s){o=!0;break}if(t.score=t.score*Bf(s,c,a),t.score<=r)break}t.suppressBeginIndex=h.length,o||(t.score===n?(h.push(i),d.push(t.score)):t.score>r&&Nf(u,t,Lf))}const p=h.length,f=n-p;o&&f>0&&(h.push(...new Array(f).fill(0)),d.push(...new Array(f).fill(0)));const m={selectedIndices:h};return a&&(m.selectedScores=d),l&&(m.validOutputs=p),m}function Ff(e,t,n){const s=e.subarray(4*t,4*t+4),r=e.subarray(4*n,4*n+4),i=Math.min(s[0],s[2]),a=Math.min(s[1],s[3]),o=Math.max(s[0],s[2]),l=Math.max(s[1],s[3]),u=Math.min(r[0],r[2]),c=Math.min(r[1],r[3]),h=Math.max(r[0],r[2]),d=Math.max(r[1],r[3]),p=(o-i)*(l-a),f=(h-u)*(d-c);if(p<=0||f<=0)return 0;const m=Math.max(i,u),g=Math.max(a,c),y=Math.min(o,h),b=Math.min(l,d),w=Math.max(y-m,0)*Math.max(b-g,0);return w/(p+f-w)}function Bf(e,t,n){const s=Math.exp(t*n*n);return n<=e?s:0}function Lf(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}const Pf=async function(e,t,n,s=.5,r=Number.NEGATIVE_INFINITY){const i=co(e,"boxes","nonMaxSuppressionAsync"),a=co(t,"scores","nonMaxSuppressionAsync"),o=If(i,a,n,s,r);n=o.maxOutputSize,s=o.iouThreshold,r=o.scoreThreshold;const l=await Promise.all([i.data(),a.data()]),u=l[0],c=l[1],{selectedIndices:h}=Of(u,c,n,s,r);return i!==e&&i.dispose(),a!==t&&a.dispose(),Mp(h,"int32")};const Uf=fo({nonMaxSuppressionWithScore_:function(e,t,n,s=.5,r=Number.NEGATIVE_INFINITY,i=0){const a=co(e,"boxes","nonMaxSuppression"),o=co(t,"scores","nonMaxSuppression"),l=If(a,o,n,s,r,i),u={boxes:a,scores:o},c={maxOutputSize:n=l.maxOutputSize,iouThreshold:s=l.iouThreshold,scoreThreshold:r=l.scoreThreshold,softNmsSigma:i=l.softNmsSigma},h=to.runKernel(_r,u,c);return{selectedIndices:h[0],selectedScores:h[1]}}});const Vf=async function(e,t,n,s=.5,r=Number.NEGATIVE_INFINITY,i=0){const a=co(e,"boxes","nonMaxSuppressionAsync"),o=co(t,"scores","nonMaxSuppressionAsync"),l=If(a,o,n,s,r,i);n=l.maxOutputSize,s=l.iouThreshold,r=l.scoreThreshold,i=l.softNmsSigma;const u=await Promise.all([a.data(),o.data()]),c=u[0],h=u[1],{selectedIndices:d,selectedScores:p}=Mf(c,h,n,s,r,i);return a!==e&&a.dispose(),o!==t&&o.dispose(),{selectedIndices:Mp(d,"int32"),selectedScores:Mp(p)}};const Wf=fo({nonMaxSuppressionPadded_:function(e,t,n,s=.5,r=Number.NEGATIVE_INFINITY,i=!1){const a=co(e,"boxes","nonMaxSuppression"),o=co(t,"scores","nonMaxSuppression"),l=If(a,o,n,s,r,null),u={boxes:a,scores:o},c={maxOutputSize:l.maxOutputSize,iouThreshold:l.iouThreshold,scoreThreshold:l.scoreThreshold,padToMaxOutputSize:i},h=to.runKernel(Sr,u,c);return{selectedIndices:h[0],validOutputs:h[1]}}});const jf=async function(e,t,n,s=.5,r=Number.NEGATIVE_INFINITY,i=!1){const a=co(e,"boxes","nonMaxSuppressionAsync"),o=co(t,"scores","nonMaxSuppressionAsync"),l=If(a,o,n,s,r,null),u=l.maxOutputSize,c=l.iouThreshold,h=l.scoreThreshold,[d,p]=await Promise.all([a.data(),o.data()]),{selectedIndices:f,validOutputs:m}=Df(d,p,u,c,h,i);return a!==e&&a.dispose(),o!==t&&o.dispose(),{selectedIndices:Mp(f,"int32"),validOutputs:Vl(m,"int32")}};const Gf=fo({resizeBilinear_:function(e,t,n=!1,s=!1){const r=co(e,"images","resizeBilinear");Gt(3===r.rank||4===r.rank,(()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`)),Gt(2===t.length,(()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`)),Gt(!1===s||!1===n,(()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false."));let i=r,a=!1;3===r.rank&&(a=!0,i=Tc(r,[1,r.shape[0],r.shape[1],r.shape[2]]));const[]=t,o={images:i},l={alignCorners:n,halfPixelCenters:s,size:t},u=to.runKernel(Gr,o,l);return a?Tc(u,[u.shape[1],u.shape[2],u.shape[3]]):u}});const qf=fo({resizeNearestNeighbor_:function(e,t,n=!1,s=!1){const r=co(e,"images","resizeNearestNeighbor");Gt(3===r.rank||4===r.rank,(()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`)),Gt(2===t.length,(()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`)),Gt("float32"===r.dtype||"int32"===r.dtype,(()=>"`images` must have `int32` or `float32` as dtype")),Gt(!1===s||!1===n,(()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false."));let i=r,a=!1;3===r.rank&&(a=!0,i=Tc(r,[1,r.shape[0],r.shape[1],r.shape[2]]));const[]=t,o={images:i},l={alignCorners:n,halfPixelCenters:s,size:t},u=to.runKernel(Wr,o,l);return a?Tc(u,[u.shape[1],u.shape[2],u.shape[3]]):u}});const Hf=fo({threshold_:function(e,t="binary",n=!1,s=.5){const r=co(e,"image","threshold"),i=r.shape[0]*r.shape[1];let a,o,l,u,c=Fl(Mp([s]),255);if(Gt(3===r.rank,(()=>`Error in threshold: image must be rank 3,but got rank ${r.rank}.`)),Gt(3===r.shape[2]||1===r.shape[2],(()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${r.shape[2]}.`)),Gt("int32"===r.dtype||"float32"===r.dtype,(()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${r.dtype}.`)),Gt("otsu"===t||"binary"===t,(()=>`Method must be binary or otsu, but was ${t}`)),3===r.shape[2]){[a,o,l]=_p(r,[1,1,1],-1);const e=Fl(a,.2989),t=Fl(o,.587),n=Fl(l,.114);u=Dl(Dl(e,t),n)}else u=e;if("otsu"===t){c=function(e,t){let n,s,r,i,a,o,l=Mp([-1]),u=Mp([0]),c=Mp([0]);for(let h=0;h`Error in transform: image must be rank 4,but got rank ${a.rank}.`)),Gt(2===o.rank&&(o.shape[0]===a.shape[0]||1===o.shape[0])&&8===o.shape[1],(()=>"Error in transform: Input transform should be batch x 8 or 1 x 8")),Gt(null==i||2===i.length,(()=>`Error in transform: outputShape must be [height, width] or null, but got ${i}.`));const l={image:a,transforms:o},u={interpolation:n,fillMode:s,fillValue:r,outputShape:i};return to.runKernel(Ti,l,u)}});const $f=fo({bandPart_:function(e,t,n){const s=co(e,"a","bandPart");Gt(s.rank>=2,(()=>`bandPart(): Rank must be at least 2, got ${s.rank}.`));const r=s.shape,[i,a]=s.shape.slice(-2);let o,l;"number"==typeof t?(Gt(t%1==0,(()=>`bandPart(): numLower must be an integer, got ${t}.`)),Gt(t<=i,(()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${i}).`)),o=co(t<0?i:t,"numLower","bandPart")):(Gt("int32"===t.dtype,(()=>"bandPart(): numLower's dtype must be an int32.")),o=gh(Yh(t,0),i,Ad(t,i))),"number"==typeof n?(Gt(n%1==0,(()=>`bandPart(): numUpper must be an integer, got ${n}.`)),Gt(n<=a,(()=>`bandPart(): numUpper (${n}) must not be greater than the number of columns (${a}).`)),l=co(n<0?a:n,"numUpper","bandPart")):(Gt("int32"===n.dtype,(()=>"bandPart(): numUpper's dtype must be an int32.")),l=gh(Yh(n,0),a,Ad(n,a)));const u=Tc(ep(0,i,1,"int32"),[-1,1]),c=ep(0,a,1,"int32"),h=Ql(u,c),d=ld(Qh(h,o),qh(h,sd(l))),p=wd([i,a],s.dtype);return Tc(Np(Kp(Tc(s,[-1,i,a])).map((e=>gh(d,e,p)))),r)}});const Xf=fo({gramSchmidt_:function(e){let t;if(Array.isArray(e)){t=!1,Gt(null!=e&&e.length>0,(()=>"Gram-Schmidt process: input must not be null, undefined, or empty"));const n=e[0].shape[0];for(let t=1;t`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[t].shape[0]} vs. ${n})`))}else t=!0,e=_p(e,e.shape[0],0).map((e=>Tp(e,[0])));Gt(e.length<=e[0].shape[0],(()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`));const n=[],s=e;for(let t=0;t{let e=s[t];if(t>0)for(let s=0;s{Gt(2===e.shape.length,(()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`));const n=e.shape[0],s=e.shape[1];let r=Vh(n),i=Rl(e);const a=zp([[1]],[1,1]);let o=Rl(a);const l=n>=s?s:n;for(let e=0;e{const t=zc(i,[e,e],[n-e,1]),l=zh(t),u=zc(i,[e,e],[1,1]),c=gh(Gh(u,0),zp([[-1]]),zp([[1]])),h=Ql(u,Fl(c,l)),d=zl(t,h);o=1===d.shape[0]?Rl(a):Oc([a,zc(d,[1,0],[d.shape[0]-1,d.shape[1]])],0);const p=sd(zl(Dc(c,h),l)),f=zc(i,[e,0],[n-e,s]),m=Fl(p,o),g=Jp(o);if(0===e)i=Ql(f,Dc(m,Dc(g,f)));else{const t=Ql(f,Dc(m,Dc(g,f)));i=Oc([zc(i,[0,0],[e,s]),t],0)}const y=Jp(m),b=zc(r,[0,e],[n,r.shape[1]-e]);if(0===e)r=Ql(b,Dc(Dc(b,o),y));else{const t=Ql(b,Dc(Dc(b,o),y));r=Oc([zc(r,[0,0],[n,e]),t],1)}return[o,i,r]})),Co([t,l,u])}return!t&&n>s&&(r=zc(r,[0,0],[n,s]),i=zc(i,[0,0],[s,s])),[r,i]}))}const Yf=fo({qr_:function(e,t=!1){if(Gt(e.rank>=2,(()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`)),2===e.rank)return Zf(e,t);{const n=e.shape.slice(0,e.shape.length-2).reduce(((e,t)=>e*t)),s=Kp(Tc(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],i=[];s.forEach((e=>{const[n,s]=Zf(e,t);r.push(n),i.push(s)}));return[Tc(Np(r,0),e.shape),Tc(Np(i,0),e.shape)]}}});var Qf;!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"}(Qf||(Qf={}));const Jf=fo({computeWeightedLoss_:function(e,t,n=Qf.SUM_BY_NONZERO_WEIGHTS){const s=co(e,"losses","computeWeightedLoss");let r=null;null!=t&&(r=co(t,"weights","computeWeightedLoss"));const i=null==r?s:Fl(s,r);if(n===Qf.NONE)return i;if(n===Qf.SUM)return Dh(i);if(n===Qf.MEAN){if(null==r)return bd(i);{const e=s.size/r.size,t=zl(Dh(i),Dh(r));return e>1?zl(t,Vl(e)):t}}if(n===Qf.SUM_BY_NONZERO_WEIGHTS){if(null==r)return zl(Dh(i),Vl(s.size));{const e=Fl(r,vd(s.shape)),t=Nl(Dh(Id(e,Vl(0))),"float32");return zl(Dh(i),t)}}throw Error(`Unknown reduction: ${n}`)}});const em=fo({absoluteDifference_:function(e,t,n,s=Qf.SUM_BY_NONZERO_WEIGHTS){const r=co(e,"labels","absoluteDifference"),i=co(t,"predictions","absoluteDifference");let a=null;null!=n&&(a=co(n,"weights","absoluteDifference")),qt(r.shape,i.shape,"Error in absoluteDifference: ");const o=eu(Ql(r,i));return Jf(o,a,s)}});const tm=fo({cosineDistance_:function(e,t,n,s,r=Qf.SUM_BY_NONZERO_WEIGHTS){const i=co(e,"labels","cosineDistance"),a=co(t,"predictions","cosineDistance");let o=null;null!=s&&(o=co(s,"weights","cosineDistance")),qt(i.shape,a.shape,"Error in cosineDistance: ");const l=Vl(1),u=Ql(l,Dh(Fl(i,a),n,!0));return Jf(u,o,r)}});const nm=fo({hingeLoss_:function(e,t,n,s=Qf.SUM_BY_NONZERO_WEIGHTS){let r=co(e,"labels","hingeLoss");const i=co(t,"predictions","hingeLoss");let a=null;null!=n&&(a=co(n,"weights","hingeLoss")),qt(r.shape,i.shape,"Error in hingeLoss: ");const o=Vl(1);r=Ql(Fl(Vl(2),r),o);const l=sp(Ql(o,Fl(r,i)));return Jf(l,a,s)}});const sm=fo({huberLoss_:function(e,t,n,s=1,r=Qf.SUM_BY_NONZERO_WEIGHTS){const i=co(e,"labels","huberLoss"),a=co(t,"predictions","huberLoss");let o=null;null!=n&&(o=co(n,"weights","huberLoss")),qt(i.shape,a.shape,"Error in huberLoss: ");const l=Vl(s),u=eu(Ql(a,i)),c=Ad(u,l),h=Ql(u,c),d=Dl(Fl(Vl(.5),Ll(c)),Fl(l,h));return Jf(d,o,r)}});const rm=fo({logLoss_:function(e,t,n,s=1e-7,r=Qf.SUM_BY_NONZERO_WEIGHTS){const i=co(e,"labels","logLoss"),a=co(t,"predictions","logLoss");let o=null;null!=n&&(o=co(n,"weights","logLoss")),qt(i.shape,a.shape,"Error in logLoss: ");const l=Vl(1),u=Vl(s),c=sd(Fl(i,td(Dl(a,u)))),h=Fl(Ql(l,i),td(Dl(Ql(l,a),u))),d=Ql(c,h);return Jf(d,o,r)}});const im=fo({meanSquaredError_:function(e,t,n,s=Qf.SUM_BY_NONZERO_WEIGHTS){const r=co(e,"labels","meanSquaredError"),i=co(t,"predictions","meanSquaredError");let a=null;null!=n&&(a=co(n,"weights","meanSquaredError")),qt(r.shape,i.shape,"Error in meanSquaredError: ");const o=Ip(r,i);return Jf(o,a,s)}});const am=fo({sigmoidCrossEntropy_:function(e,t,n,s=0,r=Qf.SUM_BY_NONZERO_WEIGHTS){let i=co(e,"multiClassLabels","sigmoidCrossEntropy");const a=co(t,"logits","sigmoidCrossEntropy");let o=null;if(null!=n&&(o=co(n,"weights","sigmoidCrossEntropy")),qt(i.shape,a.shape,"Error in sigmoidCrossEntropy: "),s>0){const e=Vl(s),t=Vl(1),n=Vl(.5);i=Dl(Fl(i,Ql(t,e)),Fl(n,e))}const l=function(e,t){const n=co(e,"labels","sigmoidCrossEntropyWithLogits"),s=co(t,"logits","sigmoidCrossEntropyWithLogits");qt(n.shape,s.shape,"Error in sigmoidCrossEntropyWithLogits: ");const r=sp(s),i=Fl(s,n),a=nd(Bh(sd(eu(s))));return Dl(Ql(r,i),a)}(i,a);return Jf(l,o,r)}});const om=fo({softmaxCrossEntropy_:function(e,t,n,s=0,r=Qf.SUM_BY_NONZERO_WEIGHTS){let i=co(e,"onehotLabels","softmaxCrossEntropy");const a=co(t,"logits","softmaxCrossEntropy");let o=null;if(null!=n&&(o=co(n,"weights","softmaxCrossEntropy")),qt(i.shape,a.shape,"Error in softmaxCrossEntropy: "),s>0){const e=Vl(s),t=Vl(1),n=Vl(i.shape[1]);i=Dl(Fl(i,Ql(t,e)),zl(e,n))}const l=function(e,t,n=-1){if(-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}`);const s=Ul(((e,t,s)=>{const r=od(t,[n],!0),i=Ql(Nl(t,"float32"),r);s([e,i]);const a=sd(Fl(i,e));return{value:Dh(a,[n]),gradFunc:(e,t)=>{const[s,r]=t,i=_h(e.shape,[n]);return[Fl(Tc(e,i),Ql(Nl(s,"float32"),Bh(r))),Fl(Tc(e,i),Ql(Bh(r),Nl(s,"float32")))]}}}));return s(e,t)}(i,a);return Jf(l,o,r)}});const lm=fo({sparseFillEmptyRows_:function(e,t,n,s){const r=co(e,"indices","sparseFillEmptyRows","int32"),i=co(t,"values","sparseFillEmptyRows"),a=co(n,"denseShape","sparseFillEmptyRows","int32"),o=co(s,"defaultValue","sparseFillEmptyRows",i.dtype);if(2!==r.rank)throw new Error(`Indices should be Tensor2D but received shape\n ${r.shape}`);if(1!==i.rank)throw new Error(`Values should be Tensor1D but received shape ${i.shape}`);if(1!==a.rank)throw new Error(`Dense shape should be Tensor1D but received shape ${a.shape}`);if(0!==o.rank)throw new Error(`Default value should be a scalar but received shape ${o.shape}`);const l={indices:r,values:i,denseShape:a,defaultValue:o},u=to.runKernel(di,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}});const um=fo({sparseReshape_:function(e,t,n){const s=co(e,"inputIndices","sparseReshape","int32"),r=co(t,"inputShape","sparseReshape","int32"),i=co(n,"newShape","sparseReshape","int32");if(2!==s.rank)throw new Error(`Input indices should be Tensor2D but received shape\n ${s.shape}`);if(1!==r.rank)throw new Error(`Input shape should be Tensor1D but received shape ${r.shape}`);if(1!==i.rank)throw new Error(`New shape should be Tensor1D but received shape ${i.shape}`);const a={inputIndices:s,inputShape:r,newShape:i},o=to.runKernel(pi,a);return{outputIndices:o[0],outputShape:o[1]}}});const cm=fo({sparseSegmentMean_:function(e,t,n){const s=co(e,"data","sparseSegmentMean"),r=co(t,"indices","sparseSegmentMean","int32"),i=co(n,"segmentIds","sparseSegmentMean","int32");if(s.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(1!==r.rank)throw new Error(`Indices should be Tensor1D but received shape\n ${r.shape}`);if(1!==i.rank)throw new Error(`Segment ids should be Tensor1D but received shape\n ${i.shape}`);const a={data:s,indices:r,segmentIds:i};return to.runKernel(fi,a)}});const hm=fo({sparseSegmentSum_:function(e,t,n){const s=co(e,"data","sparseSegmentSum"),r=co(t,"indices","sparseSegmentSum","int32"),i=co(n,"segmentIds","sparseSegmentSum","int32");if(s.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(1!==r.rank)throw new Error(`Indices should be Tensor1D but received shape\n ${r.shape}`);if(1!==i.rank)throw new Error(`Segment ids should be Tensor1D but received shape\n ${i.shape}`);const a={data:s,indices:r,segmentIds:i};return to.runKernel(mi,a)}});const dm=fo({stringNGrams_:function(e,t,n,s,r,i,a,o){const l=co(e,"data","stringNGrams","string");if("string"!==l.dtype)throw new Error("Data must be of datatype string");if(1!==l.shape.length)throw new Error(`Data must be a vector, saw: ${l.shape}`);const u=co(t,"dataSplits","stringNGrams");if("int32"!==u.dtype)throw new Error("Data splits must be of datatype int32");const c={separator:n,nGramWidths:s,leftPad:r,rightPad:i,padWidth:a,preserveShortSequences:o},h={data:l,dataSplits:u},d=to.runKernel(xi,h,c);return{nGrams:d[0],nGramsSplits:d[1]}}});const pm=fo({stringSplit_:function(e,t,n=!0){const s=co(e,"input","stringSplit","string"),r=co(t,"delimiter","stringSplit","string");if(1!==s.rank)throw new Error(`Input should be Tensor1D but received shape ${s.shape}`);if(0!==r.rank)throw new Error(`Delimiter should be a scalar but received shape ${r.shape}`);const i={skipEmpty:n},a={input:s,delimiter:r},o=to.runKernel(Ai,a,i);return{indices:o[0],values:o[1],shape:o[2]}}});const fm=fo({stringToHashBucketFast_:function(e,t){const n=co(e,"input","stringToHashBucketFast","string"),s={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");const r={input:n};return to.runKernel(Ci,r,s)}});const mm=fo({staticRegexReplace_:function(e,t,n,s=!0){const r=co(e,"input","staticRegexReplace","string"),i={pattern:t,rewrite:n,replaceGlobal:s};return to.runKernel(wi,{x:r},i)}}),gm={fft:Cp,ifft:kp,rfft:Ep,irfft:Sp},ym={hammingWindow:wf,hannWindow:vf,frame:xf,stft:Af},bm={flipLeftRight:kf,grayscaleToRGB:Sf,resizeNearestNeighbor:qf,resizeBilinear:Gf,rgbToGrayscale:_f,rotateWithOffset:Ef,cropAndResize:Cf,nonMaxSuppression:Tf,nonMaxSuppressionAsync:Pf,nonMaxSuppressionWithScore:Uf,nonMaxSuppressionWithScoreAsync:Vf,nonMaxSuppressionPadded:Wf,nonMaxSuppressionPaddedAsync:jf,threshold:Hf,transform:Kf},wm={bandPart:$f,gramSchmidt:Xf,qr:Yf},vm={absoluteDifference:em,computeWeightedLoss:Jf,cosineDistance:tm,hingeLoss:nm,huberLoss:sm,logLoss:rm,meanSquaredError:im,sigmoidCrossEntropy:am,softmaxCrossEntropy:om},xm={sparseFillEmptyRows:lm,sparseReshape:um,sparseSegmentMean:cm,sparseSegmentSum:hm},Am={stringNGrams:dm,stringSplit:pm,stringToHashBucketFast:fm,staticRegexReplace:mm};const Cm=class{static sgd(e){return new au(e)}static momentum(e,t,n=!1){return new ou(e,t,n)}static rmsprop(e,t=.9,n=0,s=null,r=!1){return new lu(e,t,n,s,r)}static adam(e=.001,t=.9,n=.999,s=null){return new Jl(e,t,n,s)}static adadelta(e=.001,t=.95,n=null){return new $l(e,t,n)}static adamax(e=.002,t=.9,n=.999,s=null,r=0){return new iu(e,t,n,s,r)}static adagrad(e,t=.1){return new Zl(e,t)}},km="undefined"!=typeof requestAnimationFrame?requestAnimationFrame:"undefined"!=typeof setImmediate?setImmediate:e=>e();function Sm(){return new Promise((e=>km((()=>e()))))}function _m(e,t){const n=e[0].length;e.forEach(((e,t)=>{Gt(e.length===n,(()=>`Error in concat${n}D: rank of tensors[${t}] must be the same as the rank of the rest (${n})`))})),Gt(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`));const s=e[0];e.forEach(((e,r)=>{for(let i=0;i`Error in concat${n}D: Shape of tensors[${r}] (${e}) does not match the shape of the rest (${s}) along the non-concatenated axis ${r}.`))}))}function Em(e,t){const n=e[0].slice();for(let s=1;s=0)if(o>=0){if(o!==i)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${r+e}] = ${i} but shape[${r+e}] = ${o}`)}else s[a]=i}return s}function Nm(e){const t={FIRST_DIM_SIZE:Im.FIRST_DIM_SIZE,VALUE_ROWIDS:Im.VALUE_ROWIDS,ROW_LENGTHS:Im.ROW_LENGTHS,ROW_SPLITS:Im.ROW_SPLITS,ROW_LIMITS:Im.ROW_LIMITS,ROW_STARTS:Im.ROW_STARTS},n=[];for(const s of e){if(!(s in t))break;n.push(t[s])}return n}function Rm(e){return 0===e.length?0:e[0]===Im.FIRST_DIM_SIZE?e.length-1:e.length}function Om(e,t){if(null==e||null==t)return;const n=e.length,s=t.length;if(n>=s)throw new Error(`defaultValue.shape=${e} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${n} must be less than ragged tensor input flatValues.rank = ${s})`);for(let r=0;r=0&&s>=0&&1!==n&&n!==s)throw new Error(`defaultValue.shape=${e}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${r-e.length}] = ${n} but ragged tensor input.flatValues.shape[${r-e.length}] = ${s}`)}}!function(e){e[e.FIRST_DIM_SIZE=0]="FIRST_DIM_SIZE",e[e.VALUE_ROWIDS=1]="VALUE_ROWIDS",e[e.ROW_LENGTHS=2]="ROW_LENGTHS",e[e.ROW_SPLITS=3]="ROW_SPLITS",e[e.ROW_LIMITS=4]="ROW_LIMITS",e[e.ROW_STARTS=5]="ROW_STARTS"}(Im||(Im={}));const Dm=30;function Mm(e){return e<=Dm?e:hn(e,Math.floor(Math.sqrt(e)))}function zm(e,t,n){return[n*("number"==typeof e?e:e[0]),t*("number"==typeof e?e:e[1])]}function Fm(e,t,n,s=!0){let r=[];if(s)r=r.concat(t.slice(0)),r.push(e[0]/n),r=r.concat(e.slice(1));else{r=r.concat(e[0]);const n=t.length;for(let s=0;s=2*t+1||s%2==1?r.push(s):n.push(s);s.push(...n),s.push(0),s.push(...r)}return s}function Lm(e,t,n,s=!0){const r=[];s?r.push(e[0]/n):r.push(e[0]*n);for(let n=1;nn)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[s-1]} vs. ${n}`);if(0===Kt(e.shape))throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);const r=t.shape,i=r[r.length-1];let a=1;for(let e=0;ee/u)),1].slice(0,i);return[l,a,u,c]}const Wm=1.7580993408473768,jm=1.0507009873554805,Gm=.3275911,qm=.254829592,Hm=-.284496736,Km=1.421413741,$m=-1.453152027,Xm=1.061405429;function Zm(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}.`);const n=new Float32Array(2*e.length);for(let s=0;s/g,ag=",",og="...";function lg(e,t){const n=((e=e.replace(/\s/g,"")).length-e.replace(ig,"").length)/rg.length;if(n<1)throw new Error("Equations without an arrow are not supported.");if(n>1)throw new Error(`Equation must contain exactly one arrow ("${rg}").`);const[s,r]=e.split(rg);Gt(-1===s.indexOf(og),(()=>`The ellipsis notation ("${og}") is not supported yet.`));const i=s.split(ag),a=i.length;if(t!==a)throw new Error(`Expected ${a} input tensors, received ${t}`);if(a>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");const o=[];for(let e=0;e-1!==e.indexOf(t))))throw new Error(`Output subscripts contain the label ${t} not present in the input subscripts.`);-1===o.indexOf(t)&&o.push(t)}for(let e=0;e-1!==e)),{permutationIndices:n,expandDims:s}}function cg(e,t,n){const s=new Array(e);for(let e=0;e`Expected dimension ${s[t[e][n]]} at axis ${n} of input shaped ${JSON.stringify(r)}, but got dimension ${r[n]}`))}}function hg(e,t){const n=e,s=[];let r=0;0===e.length&&n.push(-1),r=e.length+1;for(let e=0;ee===t))}function pg(e,t){const n=[];for(let s=0;s"Number of splits must evenly divide the axis.")),s=new Array(t).fill(e.shape[n]/t);else{const r=t.reduce(((e,t)=>(-1===t&&(e+=1),e)),0);Gt(r<=1,(()=>"There should be only one negative value in split array."));const i=t.indexOf(-1);if(-1!==i){const s=t.reduce(((e,t)=>t>0?e+t:e));t[i]=e.shape[n]-s}Gt(e.shape[n]===t.reduce(((e,t)=>e+t)),(()=>"The sum of sizes must match the size of the axis dimension.")),s=t}return s}function mg(e){return`Received SparseTensor with denseShape[0] = 0 but\n indices.shape[0] = ${e}`}function gg(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function yg(e,t,n){return`indices(${e}, 0) is invalid: ${t} >= ${n}`}function bg(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function wg(e,t){return`size ${e} must be non-negative, not ${t}`}function vg(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function xg(e,t){return`Input to reshape is a SparseTensor with ${Kt(e)}\n dense values, but the requested shape requires a multiple of ${Kt(t)}. inputShape=${e} outputShape= ${t}`}function Ag(e,t){return`Input to reshape is a tensor with ${Kt(e)} dense values, but the requested shape has ${Kt(t)}. inputShape=${e} outputShape=${t}`}function Cg(){return"segment ids must be >= 0"}function kg(){return"segment ids are not increasing"}function Sg(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function _g(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}function Eg(e,t){let n,s=!1;for(e<=Dm?(n=e,s=!0):n=hn(e,Math.floor(Math.sqrt(e)));!s;)n>t||n===e?s=!0:n=hn(e,n+1);return n}function Ig(e,t,n){const s=[],r=e.length;for(let i=0;ir))throw new Error(`Expect batchDims in the range of [-${r}, ${r}], but got ${s}`);if(s<0&&(s+=r),s>i)throw new Error(`batchDims (${s}) must be less than rank(x) (\n ${i}).`);if(nga(e)))}catch(e){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${e}`)}}function Rg(e){return e.map((e=>ma(e)))}!function(){for(const e of uu)Hl(e)}();const Og={kernelName:Nn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(e,Rp(Nl(n,"float32"),-1))}}},Dg={kernelName:Rn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=Ll(Nl(n,"float32")),s=Bl(Ql(Vl(1),t));return sd(zl(e,s))}}}},Mg={kernelName:On,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=Bl(Ql(Ll(Nl(n,"float32")),1));return zl(e,t)}}}},zg={kernelName:Dn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,s]=t,r=su(n.shape,s.shape);return{a:()=>{let t=e;const s=nu(n.shape,r);return s.length>0&&(t=Dh(t,s)),Tc(t,n.shape)},b:()=>{let t=e;const n=nu(s.shape,r);return n.length>0&&(t=Dh(t,n)),Tc(t,s.shape)}}}},Fg={kernelName:Mn,saveAllInputs:!0,gradFunc:(e,t)=>{const n={};return t.forEach(((t,s)=>{n[s]=()=>e.clone()})),n}},Bg={kernelName:Bn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Pl(n)}}},Lg={kernelName:Ln,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Pl(n)}}},Pg={kernelName:Pn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>zl(e,Bl(Ql(Vl(1),Ll(Nl(n,"float32")))))}}},Ug={kernelName:Un,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=Bl(Dl(Vl(1),Ll(Nl(n,"float32"))));return zl(e,t)}}}},Vg={kernelName:jn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,s]=t,r=su(n.shape,s.shape);return{a:()=>{const t=Dl(Ll(n),Ll(s));let i=Fl(e,zl(s,t));const a=nu(n.shape,r);return a.length>0&&(i=Dh(i,a)),Tc(i,n.shape)},b:()=>{const t=Dl(Ll(n),Ll(s));let i=sd(Fl(e,zl(n,t)));const a=nu(s.shape,r);return a.length>0&&(i=Dh(i,a)),Tc(i,s.shape)}}}},Wg={kernelName:Vn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>zl(e,Dl(Ll(Nl(n,"float32")),1))}}},jg={kernelName:Wn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>zl(e,Ql(Vl(1),Ll(Nl(n,"float32"))))}}};const Gg=fo({avgPool3dGrad_:function(e,t,n,s,r,i){const a=co(e,"dy","avgPool3dGrad"),o=co(t,"input","avgPool3dGrad");let l=a,u=o,c=!1;4===o.rank&&(c=!0,l=Tc(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),u=Tc(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),Gt(5===l.rank,(()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`)),Gt(5===u.rank,(()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${u.rank}.`)),Ic("avgPool3dGrad",r,i);const h={dy:l,input:u},d={filterSize:n,strides:s,pad:r,dimRoundingMode:i},p=to.runKernel(Kn,h,d);return c?Tc(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}}),qg={kernelName:Hn,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[s]=t,{filterSize:r,strides:i,pad:a,dimRoundingMode:o}=n;return{x:()=>Gg(e,s,r,i,a,o)}}};const Hg=fo({avgPoolGrad_:function(e,t,n,s,r){const i=co(e,"dy","avgPoolGrad"),a=co(t,"input","avgPoolGrad");Gt(a.rank===i.rank,(()=>`Rank of input (${a.rank}) does not match rank of dy (${i.rank})`));let o=a,l=i,u=!1;3===a.rank&&(u=!0,o=Tc(a,[1,a.shape[0],a.shape[1],a.shape[2]]),l=Tc(i,[1,i.shape[0],i.shape[1],i.shape[2]])),Gt(4===l.rank,(()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`)),Gt(4===o.rank,(()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`));const c={dy:l,input:o},h={filterSize:n,strides:s,pad:r},d=to.runKernel(qn,c,h);return u?Tc(d,[d.shape[1],d.shape[2],d.shape[3]]):d}}),Kg={kernelName:Gn,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[s]=t,{filterSize:r,strides:i,pad:a}=n;return{x:()=>Hg(e,s,r,i,a)}}},$g={kernelName:$n,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{const[s,r]=t,{transposeA:i,transposeB:a}=n;return i||a?!i&&a?{a:()=>Dc(e,r,!1,!1),b:()=>Dc(e,s,!0,!1)}:i&&!a?{a:()=>Dc(r,e,!1,!0),b:()=>Dc(s,e,!1,!1)}:{a:()=>Dc(r,e,!0,!0),b:()=>Dc(e,s,!0,!0)}:{a:()=>Dc(e,r,!1,!0),b:()=>Dc(s,e,!0,!1)}}},Xg={kernelName:Xn,gradFunc:(e,t,n)=>{const{blockShape:s,crops:r}=n;return{x:()=>Bd(e,s,r)}}},Zg={kernelName:"BroadcastTo",gradFunc:(e,t,n)=>{const s=n,r=s.inputShape,i=s.shape,a=Array.from(i);for(let e=r.length-1;e>=0;e--)if(r[e]===i[e])a[e]=1;else if(1!==r[e])throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${i}].`);const o=[];for(let e=0;e1&&o.push(e);return{x:()=>Dh(e,o,!0)}}},Yg={kernelName:Jn,gradFunc:e=>({x:()=>e.clone()})},Qg={kernelName:es,gradFunc:e=>({x:()=>Pl(e)})},Jg={kernelName:ts,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[s]=t,{clipValueMin:r,clipValueMax:i}=n;return{x:()=>gh(ld(qh(s,r),Qh(s,i)),e,Pl(e))}}},ey={kernelName:ss,inputsToSave:["x"],gradFunc:Og.gradFunc},ty={kernelName:rs,saveAllInputs:!0,gradFunc:(e,t,n)=>{const s=t.map((e=>e.shape)),{axis:r}=n,i=en(r,t[0].shape)[0],a=s.map((e=>e[i]));return _p(e,a,i).map((e=>()=>e))}},ny={kernelName:is,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const[s,r]=t,{dilations:i,strides:a,pad:o,dataFormat:l}=n;return Gt(kc(i),(()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${i}'`)),{x:()=>th(s.shape,e,r,a,o,l),filter:()=>uf(s,e,r.shape,a,o,l)}}},sy={kernelName:os,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{const[s,r]=t,{strides:i,pad:a,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>Jc(e,r,i,a,o,1,l),filter:()=>uf(e,s,r.shape,i,a,o,l)}}};const ry=fo({conv3DBackpropFilter_:function(e,t,n,s,r){let i=e;4===e.rank&&(i=Tc(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let a=t;4===a.rank&&(a=Tc(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),Gt(5===i.rank,(()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${i.shape}.`)),Gt(5===a.rank,(()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${a.shape}.`)),Gt(5===n.length,(()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`)),Gt(i.shape[4]===n[3],(()=>`Error in conv3dDerFilter: depth of input ${i.shape[4]}) must match input depth in filter (${n[3]}.`)),Gt(a.shape[4]===n[4],(()=>`Error in conv3dDerFilter: depth of dy (${a.shape[4]}) must match output depth for filter (${n[4]}).`));const o={x:i,dy:a},l={strides:s,pad:r,filterShape:n};return to.runKernel(us,o,l)}}),iy={kernelName:ls,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const{dilations:s,strides:r,pad:i}=n;Gt(kc(s),(()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`));const[a,o]=t;return{x:()=>rh(a.shape,e,o,r,i),filter:()=>ry(a,e,o.shape,r,i)}}},ay={kernelName:hs,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(sd(gp(Nl(n,"float32"))),e)}}},oy={kernelName:ds,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(yp(Nl(n,"float32")),e)}}},ly={kernelName:fs,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[s]=t,{axis:r,exclusive:i,reverse:a}=n;return{x:()=>{const t=Ih([r],s.rank);let n=uh(e,r,i,!a);return null!=t&&(n=Jp(n,t)),n}}}},uy={kernelName:bs,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const{dilations:s,strides:r,pad:i,dimRoundingMode:a}=n,o=null==s?[1,1]:s;Gt(kc(o),(()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`));const[l,u]=t;return Gt(4===l.rank,(()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`)),Gt(4===u.rank,(()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`)),Gt(l.shape[3]===u.shape[2],(()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${u.shape[2]}.`)),Gt(Sc(r,o),(()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`)),Ic("depthwiseConv2d",i,a),{x:()=>gf(l.shape,e,u,r,i,o,a),filter:()=>mf(l,e,u.shape,r,i,o,a)}}},cy={kernelName:As,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const[s,r]=t,i={x:s,filter:r,dy:e},a={x:s,filter:r,dy:e};return{x:()=>to.runKernel(Cs,i,n),filter:()=>to.runKernel(ks,a,n)}}},hy={kernelName:Is,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t,s={dy:e,y:n};return{x:()=>to.runKernel(Ts,s)}}},dy={kernelName:Ns,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t,s=Fl(Bh(sd(Ll(n))),2/Math.sqrt(Math.PI));return{x:()=>Fl(e,s)}}},py={kernelName:Os,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(e,n)}}},fy={kernelName:Ds,inputsToSave:["input"],gradFunc:(e,t)=>{const[n]=t;return{input:()=>Tc(e,n.shape)}}},my={kernelName:Ms,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(e,Bh(n))}}},gy={kernelName:Ls,gradFunc:e=>({x:()=>Pl(e)})},yy={kernelName:Ps,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,s]=t,r=su(n.shape,s.shape);return{a:()=>{const t=zl(e,Nl(s,"float32")),i=nu(n.shape,r);return i.length>0?Tc(Dh(t,i),n.shape):t},b:()=>{let t=Fl(e,Nl(n,"float32"));const i=nu(s.shape,r);i.length>0&&(t=Tc(Dh(t,i),s.shape));const a=Ll(s);return sd(zl(t,Nl(a,"float32")))}}}},by={kernelName:Us,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{const{varianceEpsilon:s}=n,[r,i,a,o]=t,l=null==o?Vl(1):o,u=nu(i.shape,r.shape),c=[];if(1===i.rank){for(let e=0;e1===i.rank?Tc(Fl(Fl(e,Uh(Tc(p,[1,1,1,i.shape[0]]),c)),l),r.shape):Tc(Fl(Fl(e,p),l),r.shape),mean:()=>{let e=Fl(Fl(p,Vl(-1)),d);return 1===i.rank&&(e=Dh(e,u)),Tc(e,i.shape)},variance:()=>{let e=Fl(Fl(f,h),d);return 1===i.rank&&(e=Dh(e,u)),Tc(e,i.shape)},scale:()=>{const t=Fl(h,p);let n=Fl(e,t);return 1===i.rank&&(n=Dh(n,u)),Tc(n,i.shape)},offset:()=>{let t=e;return 1===i.rank&&(t=Dh(t,u)),Tc(t,i.shape)}}}},wy={kernelName:Vs,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{const[s,r]=t,{axis:i,batchDims:a}=n,o=en(i,s.shape)[0],l=(e,t,n)=>()=>{const s=e.shape,r=t.size,a=s.slice(0,o),l=a.length,u=s.slice(i,s.length).slice(1),c=u.length,h=vy(0,l),d=vy(l+1,l+1+c),p=xy([a,[r],u]),f=Tc(n,p),m=Tc(t,[r]),g=xy([[l],h,d]),y=Jp(f,g);let b=Hp(y,m,e.shape[o]);const w=Th(g);return b=Jp(b,w),b};if(1===a){const t=s.shape[0],n=s.split(t,0);return{x:()=>{const t=Np(n.map(((t,n)=>l(t,r.slice(n,1),e.slice(n,1))())));return t.reshape(s.shape)},indices:()=>r}}return{x:l(s,r,e),indices:()=>r}}};function vy(e,t){const n=[];for(let s=e;s{const[n,s]=t;return{a:()=>Pl(n),b:()=>Pl(s)}}},Cy={kernelName:qs,gradFunc:e=>({x:()=>Nl(e,"float32")})},ky={kernelName:$s,gradFunc:e=>({x:()=>Pl(e)})},Sy={kernelName:Xs,gradFunc:e=>({x:()=>Pl(e)})},_y={kernelName:Zs,gradFunc:e=>({x:()=>Pl(e)})},Ey={kernelName:Ys,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[s]=t,{alpha:r}=n,i=Gh(s,0);return{x:()=>gh(i,e,Fl(e,r))}}},Iy={kernelName:nr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>zl(e,Dl(n,1))}}},Ty={kernelName:tr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>zl(e,Nl(n,"float32"))}}},Ny={kernelName:"LogSoftmax",inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[s]=t,{axis:r}=n;return{logits:()=>{const t=Bh(s);return Ql(e,Fl(Dh(e,r,!0),t))}}}};const Ry=fo({localResponseNormalizationBackprop_:function(e,t,n,s=5,r=1,i=1,a=.5){const o={x:e,y:t,dy:n},l={depthRadius:s,bias:r,alpha:i,beta:a};return to.runKernel(or,o,l)}}),Oy={kernelName:ar,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[s,r]=t,{depthRadius:i,bias:a,alpha:o,beta:l}=n;return{x:()=>Ry(s,r,e,i,a,o,l)}}};function Dy(e,t,n,s){return t.rankFl(e,Nl(mh(n,t),e.dtype))}}const My={kernelName:lr,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const s=n,{reductionIndices:r}=s,i=t[0],a=Dy(e,t[1],i,en(r,i.shape));return{x:()=>a.x()}}},zy={kernelName:ur,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,s]=t;return{a:()=>Fl(e,Nl(qh(n,s),"float32")),b:()=>Fl(e,Nl(Yh(n,s),"float32"))}}};const Fy=fo({maxPool3dGrad_:function(e,t,n,s,r,i,a){const o=co(e,"dy","maxPool3dGrad"),l=co(t,"input","maxPool3dGrad"),u=co(n,"output","maxPool3dGrad");let c=o,h=l,d=u,p=!1;4===l.rank&&(p=!0,c=Tc(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),h=Tc(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),d=Tc(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),Gt(5===c.rank,(()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${c.rank}.`)),Gt(5===h.rank,(()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${h.rank}.`)),Gt(5===d.rank,(()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${d.rank}.`)),Ic("maxPool3dGrad",i,a);const f={dy:c,input:h,output:d},m={filterSize:s,strides:r,pad:i,dimRoundingMode:a},g=to.runKernel(pr,f,m);return p?Tc(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}}),By={kernelName:dr,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[s,r]=t,{filterSize:i,strides:a,pad:o,dimRoundingMode:l}=n;return{x:()=>Fy(e,s,r,i,a,o,l)}}};const Ly=fo({maxPoolGrad_:function(e,t,n,s,r,i,a){const o=co(e,"dy","maxPoolGrad"),l=co(t,"input","maxPoolGrad"),u=co(n,"output","maxPoolGrad");Gt(l.rank===o.rank,(()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`)),Gt(4===o.rank,(()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`)),Gt(4===l.rank,(()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`)),Ic("maxPoolGrad",i,a);const c={dy:o,input:l,output:u},h={filterSize:s,strides:r,pad:i,dimRoundingMode:a};return to.runKernel(hr,c,h)}}),Py={kernelName:cr,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[s,r]=t,{filterSize:i,strides:a,pad:o}=n;return{x:()=>Ly(e,s,r,i,a,o)}}},Uy={kernelName:br,inputsToSave:["x"],gradFunc:(e,t,n)=>{const s=t[0],{paddings:r}=n,i=r.map((e=>e[0]));return{x:()=>zc(e,i,s.shape)}}},Vy={kernelName:Tr,saveAllInputs:!0,gradFunc:(e,t,n)=>{const{axis:s}=n;return Kp(e,s).map((e=>()=>e))}},Wy={kernelName:Nr,inputsToSave:["x"],gradFunc:(e,t,n)=>{const s=t[0],{paddings:r}=n,i=r.map((e=>e[0]));return{x:()=>zc(e,i,s.shape)}}},jy={kernelName:Rr,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{const[n,s,r]=t,i=n,a=s,o=su(i.shape,a.shape);return{a:()=>{const t=Nl(a,"float32");let n=Fl(e,Fl(t,Yl(i,Ql(t,Vl(1)))));const s=nu(i.shape,o);return s.length>0&&(n=Dh(n,s)),Tc(n,i.shape)},b:()=>{const t=Gh(i,0),n=gh(t,td(i),Pl(i));let s=Fl(e,Fl(r,n));const l=nu(a.shape,o);return l.length>0&&(s=Dh(s,l)),Tc(s,a.shape)}}}};function Gy(e,t,n){const s=e.shape.length,r=s-n.length,i=Ih(n,s);let a=e;null!=i&&(a=Jp(e,i));const o=a.shape.slice(),l=o.splice(s-n.length,n.length).reduce(((e,t)=>e*t),1);o.push(l);let u=function(e,t,n){const s=e.shape.slice();s[n]=1;const r=Tc(t,s),i=lh(e,n,!0,!1),a=lh(e,n,!0,!0),o=Fl(i,a);return Fl(r,o)}(a.reshape(o),t,r);if(u=u.reshape(a.shape),null!=i){const e=Th(i);u=Jp(u,e)}return u}const qy={kernelName:ei,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=Gh(n,Vl(0)),s=Vl(Wm),r=Vl(jm),i=Fl(e,r),a=Fl(Fl(e,s),Bh(Nl(n,"float32")));return gh(t,i,a)}}}},Hy={kernelName:ui,gradFunc:(e,t,n)=>{const{blockShape:s,paddings:r}=n;return{x:()=>Lc(e,s,r)}}},Ky={kernelName:ci,gradFunc:(e,t,n)=>{const{axis:s}=n;return{x:()=>Oc(e,s)}}},$y={kernelName:Ei,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[s]=t,{reps:r}=n;return{x:()=>{let t=Pl(s);if(1===s.rank)for(let n=0;n{const[n,s]=t,r=su(n.shape,s.shape);return{a:()=>{const t=zl(e,Nl(s,"float32")),i=nu(n.shape,r);return i.length>0?Tc(Dh(t,i),n.shape):t},b:()=>{let t=Fl(e,Nl(n,"float32"));const i=nu(s.shape,r);i.length>0&&(t=Tc(Dh(t,i),s.shape));const a=Ll(s);return sd(zl(t,Nl(a,"float32")))}}}},hy,dy,py,fy,my,yy,gy,by,wy,Ay,Cy,ky,Sy,_y,Ey,Iy,Ty,Ny,Oy,My,My,zy,By,Py,{kernelName:mr,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[s]=t,{axis:r}=n,i=en(r,s.shape),a=Kt(Sh(s.shape,i)[1]);return{x:()=>{const t=s.shape.slice();i.forEach((e=>{t[e]=1}));const n=Tc(e,t);return zl(Fl(n,vd(s.shape,"float32")),a)}}}},{kernelName:gr,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const s=n,{axis:r}=s,[i,a]=t,o=Dy(e,a,i,en(r,i.shape));return{x:()=>o.x()}}},{kernelName:yr,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,s]=t;return{a:()=>Fl(e,Nl(Qh(n,s),"float32")),b:()=>Fl(e,Nl(Gh(n,s),"float32"))}}},Uy,{kernelName:wr,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,s]=t,r=su(n.shape,s.shape);return{a:()=>{const t=nu(n.shape,r);return t.length>0?Tc(Dh(e,t),n.shape):e},b:()=>{const t=Fl(e,sd(Wh(zl(n,s)))),i=nu(s.shape,r);return i.length>0?Tc(Dh(t,i),s.shape):t}}}},{kernelName:xr,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,s]=t,r=su(n.shape,s.shape);return{a:()=>{const t=Fl(e,Nl(s,"float32")),i=nu(n.shape,r);return i.length>0?Tc(Dh(t,i),n.shape):t},b:()=>{const t=Fl(e,Nl(n,"float32")),i=nu(s.shape,r);return i.length>0?Tc(Dh(t,i),s.shape):t}}}},{kernelName:Ar,gradFunc:e=>({x:()=>sd(e)})},{kernelName:Ir,inputsToSave:["indices"],gradFunc:(e,t)=>{const n=t[0];return{indices:()=>wd(n.shape,"float32")}}},{kernelName:Er,gradFunc:e=>({x:()=>Pl(e)})},Vy,Wy,Wy,jy,{kernelName:Or,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{const[n,s]=t,r=Gh(n,0);return{x:()=>gh(r,e,Fl(e,s)),alpha:()=>{let t=gh(r,Pl(e),Fl(e,n));const i=nu(s.shape,e.shape);return i.length>0&&(t=Dh(t,i)),Tc(t,s.shape)}}}},{kernelName:Dr,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[s]=t,{axis:r}=n;let i=[];return i=null==r?s.shape.map(((e,t)=>t)):"number"==typeof r?[r]:r,{x:()=>Gy(s,e,i)}}},{kernelName:Pr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>zl(e,sd(Ll(n)))}}},{kernelName:Hr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t,s=Fl(Qh(n,6),Rp(n));return{x:()=>Fl(e,Nl(s,"float32"))}}},{kernelName:Ur,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(e,Nl(Rp(n),"float32"))}}},{kernelName:Vr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Tc(e,n.shape)}}},{kernelName:Gr,inputsToSave:["images"],gradFunc:(e,t,n)=>{const[s]=t,r={dy:e,images:s};return{images:()=>to.runKernel(qr,r,n)}}},{kernelName:Wr,inputsToSave:["images"],gradFunc:(e,t,n)=>{const[s]=t,r={dy:e,images:s};return{images:()=>to.runKernel(jr,r,n)}}},{kernelName:Kr,gradFunc:(e,t,n)=>{const{dims:s}=n,r=en(s,e.shape);return{x:()=>ip(e,r)}}},{kernelName:$r,gradFunc:e=>({x:()=>Pl(e)})},{kernelName:Xr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>sd(zl(e,Fl(Yl(n,1.5),2)))}}},{kernelName:Jr,inputsToSave:["condition"],gradFunc:(e,t)=>{const[n]=t;return{condition:()=>Nl(Pl(n),"float32"),t:()=>Fl(e,Nl(n,e.dtype)),e:()=>Fl(e,Nl(ud(n),e.dtype))}}},qy,{kernelName:ii,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(e,Fl(n,Ql(Vl(1),n)))}}},{kernelName:ri,gradFunc:e=>({x:()=>Pl(e)})},{kernelName:ni,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(ah(Nl(n,"float32")),e)}}},{kernelName:si,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(oh(Nl(n,"float32")),e)}}},{kernelName:ti,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[s]=t,{begin:r,size:i}=n,a=s.shape,[o,l]=Ju(s,r,i),u=[];for(let t=0;tOd(e,u)}}},{kernelName:hi,outputsToSave:[!0],gradFunc:(e,t,n)=>{const[s]=t,{dim:r}=n,i=Fl(e,s);return{logits:()=>Ql(i,Fl(Dh(i,[r],true),s))}}},{kernelName:ai,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(e,Mc(n))}}},Hy,Hy,Ky,Ky,{kernelName:oi,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>zl(e,Fl(Bl(Nl(n,"float32")),2))}}},{kernelName:yi,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,s]=t,r=Vl(2);return{a:()=>Fl(e,Fl(r,Ql(n,s))),b:()=>Fl(e,Fl(r,Ql(s,n)))}}},{kernelName:bi,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(e,Fl(Nl(n,"float32"),2))}}},{kernelName:zi,gradFunc:e=>({x:()=>Pl(e)})},{kernelName:ki,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,s]=t,r=su(n.shape,s.shape);return{a:()=>{let t=e;const s=nu(n.shape,r);return s.length>0&&(t=Dh(t,s)),Tc(t,n.shape)},b:()=>{let t=e;const n=nu(s.shape,r);return n.length>0&&(t=Dh(t,n)),Tc(sd(t),s.shape)}}}},{kernelName:li,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[s]=t,r=s.shape.slice(),{axis:i}=n;en(i,s.shape).forEach((e=>{r[e]=1}));const a=Tc(e,r),o=Fl(a,vd(s.shape,"float32"));return{x:()=>o}}},{kernelName:Si,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>zl(e,Ll(ah(n)))}}},{kernelName:_i,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(Ql(Vl(1),Ll(n)),e)}}},$y,{kernelName:Ni,gradFunc:(e,t,n)=>{const s=n,{perm:r}=s,i=Th(r);return{x:()=>Jp(e,i)}}},{kernelName:Oi,gradFunc:(e,t,n)=>{const s=n,{axis:r}=s;return{value:()=>Np(e,r)}}},{kernelName:Di,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>function(e,t){const n=ru(t,Pl(t)),s=jh(e,n);let r=qh(t,Vl(0,"int32"));const i=s.rank-r.rank;for(let e=0;e({x:()=>Pl(e)})}];for(const e of Xy)Xi(e);za().prototype.abs=function(){return this.throwIfDisposed(),eu(this)},za().prototype.acos=function(){return this.throwIfDisposed(),nc(this)},za().prototype.acosh=function(){return this.throwIfDisposed(),sc(this)},za().prototype.add=function(e){return this.throwIfDisposed(),Dl(this,e)},za().prototype.all=function(e,t){return this.throwIfDisposed(),ic(this,e,t)},za().prototype.any=function(e,t){return this.throwIfDisposed(),ac(this,e,t)},za().prototype.argMax=function(e){return this.throwIfDisposed(),oc(this,e)},za().prototype.argMin=function(e){return this.throwIfDisposed(),lc(this,e)},za().prototype.asScalar=function(){return this.throwIfDisposed(),Gt(1===this.size,(()=>"The array must have only 1 element.")),Tc(this,[])},za().prototype.asType=function(e){return this.throwIfDisposed(),Nl(this,e)},za().prototype.as1D=function(){return this.throwIfDisposed(),Tc(this,[this.size])},za().prototype.as2D=function(e,t){return this.throwIfDisposed(),Tc(this,[e,t])},za().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),Tc(this,[e,t,n])},za().prototype.as4D=function(e,t,n,s){return this.throwIfDisposed(),Tc(this,[e,t,n,s])},za().prototype.as5D=function(e,t,n,s,r){return this.throwIfDisposed(),Tc(this,[e,t,n,s,r])},za().prototype.asin=function(){return this.throwIfDisposed(),uc(this)},za().prototype.asinh=function(){return this.throwIfDisposed(),cc(this)},za().prototype.atan=function(){return this.throwIfDisposed(),hc(this)},za().prototype.atan2=function(e){return this.throwIfDisposed(),dc(this,e)},za().prototype.atanh=function(){return this.throwIfDisposed(),pc(this)},za().prototype.avgPool=function(e,t,n,s){return this.throwIfDisposed(),Nc(this,e,t,n,s)},za().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Lc(this,e,t)},za().prototype.batchNorm=function(e,t,n,s,r){return this.throwIfDisposed(),Pc(this,e,t,n,s,r)},za().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Hc(this,e)},za().prototype.cast=function(e){return this.throwIfDisposed(),Nl(this,e)},za().prototype.ceil=function(){return this.throwIfDisposed(),Kc(this)},za().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),$c(this,e,t)},za().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Ma&&(e=[e]),Oc([this,...e],t)},za().prototype.conv1d=function(e,t,n,s,r,i){return this.throwIfDisposed(),eh(this,e,t,n,s,r,i)},za().prototype.conv2dTranspose=function(e,t,n,s,r){return this.throwIfDisposed(),nh(this,e,t,n,s,r)},za().prototype.conv2d=function(e,t,n,s,r,i){return this.throwIfDisposed(),Jc(this,e,t,n,s,r,i)},za().prototype.cos=function(){return this.throwIfDisposed(),ah(this)},za().prototype.cosh=function(){return this.throwIfDisposed(),oh(this)},za().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),lh(this,e,t,n)},za().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),uh(this,e,t,n)},za().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),hh(this,e,t)},za().prototype.depthwiseConv2d=function(e,t,n,s,r,i){return this.throwIfDisposed(),dh(this,e,t,n,s,r,i)},za().prototype.dilation2d=function(e,t,n,s,r){return this.throwIfDisposed(),fh(this,e,t,n,s,r)},za().prototype.divNoNan=function(e){return this.throwIfDisposed(),yh(this,e)},za().prototype.div=function(e){return this.throwIfDisposed(),zl(this,e)},za().prototype.dot=function(e){return this.throwIfDisposed(),bh(this,e)},za().prototype.elu=function(){return this.throwIfDisposed(),vh(this)},za().prototype.equal=function(e){return this.throwIfDisposed(),mh(this,e)},za().prototype.erf=function(){return this.throwIfDisposed(),Ah(this)},za().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),Fh(this,e,t)},za().prototype.exp=function(){return this.throwIfDisposed(),Bh(this)},za().prototype.expandDims=function(e){return this.throwIfDisposed(),Lh(this,e)},za().prototype.expm1=function(){return this.throwIfDisposed(),Ph(this)},za().prototype.fft=function(){return this.throwIfDisposed(),Cp(this)},za().prototype.flatten=function(){return this.throwIfDisposed(),Tc(this,[this.size])},za().prototype.floor=function(){return this.throwIfDisposed(),Wh(this)},za().prototype.floorDiv=function(e){return this.throwIfDisposed(),Ml(this,e)},za().prototype.gather=function(e,t,n){return this.throwIfDisposed(),jh(this,e,t,n)},za().prototype.greaterEqual=function(e){return this.throwIfDisposed(),qh(this,e)},za().prototype.greater=function(e){return this.throwIfDisposed(),Gh(this,e)},za().prototype.ifft=function(){return this.throwIfDisposed(),kp(this)},za().prototype.irfft=function(){return this.throwIfDisposed(),Sp(this)},za().prototype.isFinite=function(){return this.throwIfDisposed(),Kh(this)},za().prototype.isInf=function(){return this.throwIfDisposed(),$h(this)},za().prototype.isNaN=function(){return this.throwIfDisposed(),Xh(this)},za().prototype.leakyRelu=function(e){return this.throwIfDisposed(),Zh(this,e)},za().prototype.lessEqual=function(e){return this.throwIfDisposed(),Qh(this,e)},za().prototype.less=function(e){return this.throwIfDisposed(),Yh(this,e)},za().prototype.localResponseNormalization=function(e,t,n,s){return this.throwIfDisposed(),ed(this,e,t,n,s)},za().prototype.logSigmoid=function(){return this.throwIfDisposed(),id(this)},za().prototype.logSoftmax=function(e){return this.throwIfDisposed(),ad(this,e)},za().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),od(this,e,t)},za().prototype.log=function(){return this.throwIfDisposed(),td(this)},za().prototype.log1p=function(){return this.throwIfDisposed(),nd(this)},za().prototype.logicalAnd=function(e){return this.throwIfDisposed(),ld(this,e)},za().prototype.logicalNot=function(){return this.throwIfDisposed(),ud(this)},za().prototype.logicalOr=function(e){return this.throwIfDisposed(),cd(this,e)},za().prototype.logicalXor=function(e){return this.throwIfDisposed(),hd(this,e)},za().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),Dc(this,e,t,n)},za().prototype.maxPool=function(e,t,n,s){return this.throwIfDisposed(),md(this,e,t,n,s)},za().prototype.max=function(e,t){return this.throwIfDisposed(),Rh(this,e,t)},za().prototype.maximum=function(e){return this.throwIfDisposed(),ru(this,e)},za().prototype.mean=function(e,t){return this.throwIfDisposed(),bd(this,e,t)},za().prototype.min=function(e,t){return this.throwIfDisposed(),Oh(this,e,t)},za().prototype.minimum=function(e){return this.throwIfDisposed(),Ad(this,e)},za().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),Cd(this,e,t)},za().prototype.mod=function(e){return this.throwIfDisposed(),kd(this,e)},za().prototype.mul=function(e){return this.throwIfDisposed(),Fl(this,e)},za().prototype.neg=function(){return this.throwIfDisposed(),sd(this)},za().prototype.norm=function(e,t,n){return this.throwIfDisposed(),zh(this,e,t,n)},za().prototype.notEqual=function(e){return this.throwIfDisposed(),Id(this,e)},za().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),Td(this,e,t,n)},za().prototype.onesLike=function(){return this.throwIfDisposed(),Nd(this)},za().prototype.pad=function(e,t){return this.throwIfDisposed(),Od(this,e,t)},za().prototype.pool=function(e,t,n,s,r,i){return this.throwIfDisposed(),Ld(this,e,t,n,s,r,i)},za().prototype.pow=function(e){return this.throwIfDisposed(),Yl(this,e)},za().prototype.prelu=function(e){return this.throwIfDisposed(),Pd(this,e)},za().prototype.prod=function(e,t){return this.throwIfDisposed(),Ud(this,e,t)},za().prototype.reciprocal=function(){return this.throwIfDisposed(),np(this)},za().prototype.relu=function(){return this.throwIfDisposed(),sp(this)},za().prototype.relu6=function(){return this.throwIfDisposed(),rp(this)},za().prototype.reshapeAs=function(e){return this.throwIfDisposed(),Tc(this,e.shape)},za().prototype.reshape=function(e){return this.throwIfDisposed(),Tc(this,e)},za().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),Gf(this,e,t,n)},za().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),qf(this,e,t,n)},za().prototype.reverse=function(e){return this.throwIfDisposed(),ip(this,e)},za().prototype.rfft=function(){return this.throwIfDisposed(),Ep(this)},za().prototype.round=function(){return this.throwIfDisposed(),cp(this)},za().prototype.rsqrt=function(){return this.throwIfDisposed(),hp(this)},za().prototype.selu=function(){return this.throwIfDisposed(),dp(this)},za().prototype.separableConv2d=function(e,t,n,s,r,i){return this.throwIfDisposed(),pp(this,e,t,n,s,r,i)},za().prototype.sigmoid=function(){return this.throwIfDisposed(),Mc(this)},za().prototype.sign=function(){return this.throwIfDisposed(),mp(this)},za().prototype.sin=function(){return this.throwIfDisposed(),gp(this)},za().prototype.sinh=function(){return this.throwIfDisposed(),yp(this)},za().prototype.slice=function(e,t){return this.throwIfDisposed(),zc(this,e,t)},za().prototype.softmax=function(e){return this.throwIfDisposed(),Ap(this,e)},za().prototype.softplus=function(){return this.throwIfDisposed(),rd(this)},za().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Bd(this,e,t)},za().prototype.split=function(e,t){return this.throwIfDisposed(),_p(this,e,t)},za().prototype.sqrt=function(){return this.throwIfDisposed(),Bl(this)},za().prototype.square=function(){return this.throwIfDisposed(),Ll(this)},za().prototype.squaredDifference=function(e){return this.throwIfDisposed(),Ip(this,e)},za().prototype.squeeze=function(e){return this.throwIfDisposed(),Tp(this,e)},za().prototype.stack=function(e,t){this.throwIfDisposed();const n=e instanceof Ma?[this,e]:[this,...e];return Np(n,t)},za().prototype.step=function(e){return this.throwIfDisposed(),Rp(this,e)},za().prototype.stridedSlice=function(e,t,n,s,r,i,a,o){return this.throwIfDisposed(),Op(this,e,t,n,s,r,i,a,o)},za().prototype.sub=function(e){return this.throwIfDisposed(),Ql(this,e)},za().prototype.sum=function(e,t){return this.throwIfDisposed(),Dh(this,e,t)},za().prototype.tan=function(){return this.throwIfDisposed(),Dp(this)},za().prototype.tanh=function(){return this.throwIfDisposed(),Fc(this)},za().prototype.tile=function(e){return this.throwIfDisposed(),Uh(this,e)},za().prototype.toBool=function(){return this.throwIfDisposed(),Nl(this,"bool")},za().prototype.toFloat=function(){return this.throwIfDisposed(),Nl(this,"float32")},za().prototype.toInt=function(){return this.throwIfDisposed(),Nl(this,"int32")},za().prototype.topk=function(e,t){return this.throwIfDisposed(),jp(this,e,t)},za().prototype.transpose=function(e){return this.throwIfDisposed(),Jp(this,e)},za().prototype.unique=function(e){return this.throwIfDisposed(),qp(this,e)},za().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),Hp(this,e,t)},za().prototype.unstack=function(e){return this.throwIfDisposed(),Kp(this,e)},za().prototype.where=function(e,t){return this.throwIfDisposed(),gh(e,this,t)},za().prototype.zerosLike=function(){return this.throwIfDisposed(),Pl(this)};class Zy extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Zy.prototype)}}class Yy extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Yy.prototype)}}class Qy extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Qy.prototype)}}class Jy extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Jy.prototype)}}class eb extends Error{constructor(e){super(e),Object.setPrototypeOf(this,eb.prototype)}}Error;class tb{constructor(e){this.maxEntries=e||100,this.cache=new Map}get(e){let t;return this.cache.has(e)&&(t=this.cache.get(e),this.cache.delete(e),this.cache.set(e,t)),t}put(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxEntries){const e=this.cache.keys().next().value;this.cache.delete(e)}this.cache.set(e,t)}getMaxEntries(){return this.maxEntries}setMaxEntries(e){if(e<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${e}.`);if(this.maxEntries>e)for(let t=0;tt.toUpperCase()))}let ub={};function cb(e){if(null==e)return null;const t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function hb(e){if(null!=e&&"object"==typeof e)if(Array.isArray(e))e.forEach((e=>hb(e)));else{const t=Object.keys(e);for(const n of t){const t=e[n];null!=t&&"object"==typeof t&&(Array.isArray(t)||"ndarray"!==t.type||"number"!=typeof t.value?hb(t):e[n]=t.value)}}}function db(e,t={},n={},s="object",r=!1){if("string"==typeof e){const r=e;let i;if(r in n)i=n[r];else if(r in ub)i=ub[r];else if(i=t[r],null==i)throw new Qy(`Unknown ${s}: ${e}. This may be due to one of the following reasons:\n1. The ${s} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${s} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}{const i=e;if(null==i.className||null==i.config)throw new Qy(`${s}: Improper config format: ${JSON.stringify(i)}.\n'className' and 'config' must set.`);const a=i.className;let o,l;if(a in n?[o,l]=n[a]:a in ub?[o,l]=ub.className:a in t&&([o,l]=t[a]),null==o)throw new Qy(`Unknown ${s}: ${a}. This may be due to one of the following reasons:\n1. The ${s} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${s} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(null!=l){const e={};for(const t of Object.keys(ub))e[t]=ub[t];for(const t of Object.keys(n))e[t]=n[t];i.config.customObjects=e;const t=Object.assign({},ub);for(const e of Object.keys(n))ub[e]=n[e];hb(i.config);const s=l(o,i.config,n,r);return ub=Object.assign({},t),s}{const e=Object.assign({},ub);for(const e of Object.keys(n))ub[e]=n[e];const t=new o(i.config);return ub=Object.assign({},e),t}}}function pb(e,t){return-1*function(e,t){return et?1:0}(e,t)}function fb(e){if(null==e)return e;const t=[];for(const n of e)-1===t.indexOf(n)&&t.push(n);return t}function mb(e){if(null==e)throw new Qy(`Invalid value in obj: ${JSON.stringify(e)}`);for(const t in e)if(e.hasOwnProperty(t))return!1;return!0}function gb(e,t,n){if(null!=n&&e.indexOf(n)<0)throw new Qy(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function yb(e,t,n=0,s=1/0){return sb(n>=0),sb(s>=n),Array.isArray(e)&&e.length>=n&&e.length<=s&&e.every((e=>typeof e===t))}function bb(e,t){Array.isArray(e)?(Gt(e.length>0,(()=>`${t} is unexpectedly an empty array.`)),e.forEach(((e,n)=>bb(e,`element ${n+1} of ${t}`)))):Gt(Number.isInteger(e)&&e>0,(()=>`Expected ${t} to be a positive integer, but got ${wb(e)}.`))}function wb(e){return null===e?"null":Array.isArray(e)?"["+e.map((e=>wb(e))).join(",")+"]":"string"==typeof e?`"${e}"`:`${e}`}function vb(e){return"relu"===e?"relu":"linear"===e?"linear":"elu"===e?"elu":null}let xb=0;function Ab(){return xb++}const Cb={};function kb(e=""){return e in Cb||(Cb[e]=0),Cb[e]+=1,e+Cb[e].toString()}const Sb=["channelsFirst","channelsLast"],_b=["nearest","bilinear"],Eb=["valid","same","causal"],Ib=["max","avg"],Tb=["sum","mul","concat","ave"],Nb=new Map;function Rb(e){gb(Sb,"DataFormat",e)}function Ob(e){gb(Eb,"PaddingMode",e)}function Db(e){gb(Ib,"PoolMode",e)}const Mb=[],zb="/";function Fb(e,t){Mb.push(e);try{const e=t();return Mb.pop(),e}catch(e){throw Mb.pop(),e}}function Bb(e){if(!Ub(e))throw new Error("Not a valid tensor name: '"+e+"'");return(0===Mb.length?"":Mb.join(zb)+zb)+e}function Lb(e){if(!Ub(e))throw new Error("Not a valid tensor name: '"+e+"'");Nb.has(e)||Nb.set(e,0);const t=Nb.get(e);if(Nb.set(e,Nb.get(e)+1),t>0){const n=`${e}_${t}`;return Nb.set(n,1),n}return e}const Pb=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function Ub(e){return!!e.match(Pb)}function Vb(e,t,n){null==t&&(t=0),null==n&&(n=e.length);let s=1;for(let r=t;rt&&(t=s)}return t}function Gb(e,t){if(t{switch(e.rank){case 1:return bp(e,t,n);case 2:return wp(e,[t,0],[n,e.shape[1]]);case 3:return vp(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return xp(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return zc(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return zc(e,[t,0,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new Qy(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function Zb(e,t,n){return Ao((()=>{switch(e.rank){case 1:return bp(e,t,n);case 2:return wp(e,[0,t],[e.shape[0],n]);case 3:return vp(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return xp(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new Qy(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function Yb(e,t,n,s){return Ao((()=>{switch(e.rank){case 1:return bp(e,t,n);case 2:switch(s){case 1:return Xb(e,t,n);case 2:return Zb(e,t,n);default:throw new Qy(`The axis is not within the rank of the tensor ${s}`)}case 3:switch(s){case 1:return Xb(e,t,n);case 2:return vp(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return Zb(e,t,n);default:throw new Qy(`The axis is not within the rank of the tensor ${s}`)}case 4:switch(s){case 1:return Xb(e,t,n);case 2:return xp(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return xp(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return Zb(e,t,n);default:throw new Qy(`The axis is not within the rank of the tensor ${s}`)}default:throw new Qy(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function Qb(e,t=-1){let n;return t<0&&(n=e[0].rank,t=0!==n?n:0),t===e[0].rank&&(t=-1),Oc(e,t)}function Jb(e,t){switch(e.rank){case 1:return Xc([e,t]);case 2:return Zc([e,t],0);case 3:return Yc([e,t],0);case 4:return Qc([e,t],0);default:throw new Qy(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function ew(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new Qy(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return Uh(e,t)}function tw(e,t=0,n=1,s,r){return Zd(e,t,n,s,r)}function nw(e,t,n,s){if(e.rank<2||t.rank<2)throw new Jy(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){if(e.shape.slice(-1)[0]!==t.shape.slice(-2)[0])throw new Jy(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`)}if(2===e.rank&&2===t.rank){return bf({a:e,b:t,transposeA:!1,transposeB:!1,bias:s?iw(e.rank,s,"channelsLast"):null,activation:n})}{const r=e.shape.slice(),i=r.pop();e=Tc(e,[-1,i]);const a=t.shape.slice(),o=a.pop(),l=a.pop(),u=[...a,o],c=Array.from({length:t.rank},((e,n)=>0===n?t.rank-2:n<=t.rank-2?n-1:n));t=Tc(Jp(t,c),[l,-1]);const h=[...r,...u];return Tc(bf({a:e,b:t,transposeA:!1,transposeB:!1,bias:s?iw(e.rank,s,"channelsLast"):null,activation:n}),h)}}function sw(e,t,n){return Ao((()=>(t=Array.isArray(t)?Mp(t,"int32"):Nl(t,"int32"),jh(e,t,n))))}function rw(e){return Fl(e,e)}function iw(e,t,n){const s=t.shape;if(1!==t.rank&&t.rank!==e)throw new Qy(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(5===e){if("channelsFirst"===n)return 1===s.length?Tc(t,[1,s[0],1,1,1]):Tc(t,[1,s[3],s[0],s[1],s[2]]);if("channelsLast"===n)return 1===s.length?Tc(t,[1,1,1,1,s[0]]):Tc(t,[1].concat(s))}else if(4===e){if("channelsFirst"===n)return 1===s.length?Tc(t,[1,s[0],1,1]):Tc(t,[1,s[2],s[0],s[1]]);if("channelsLast"===n)return 1===s.length?Tc(t,[1,1,1,s[0]]):Tc(t,[1].concat(s))}else if(3===e){if("channelsFirst"===n)return 1===s.length?Tc(t,[1,s[0],1]):Tc(t,[1,s[1],s[0]]);if("channelsLast"===n)return 1===s.length?Tc(t,[1,1,s[0]]):Tc(t,[1].concat(s))}else if(e<3)return t;throw new Qy(`Unsupported input rank by biasAdd: ${t.rank}`)}function aw(e,t,n){return Ao((()=>(null==n&&(n="channelsLast"),Rb(n),Dl(e,iw(e.rank,t,n)))))}function ow(e,t,n,s){return Ao((()=>rf(e,t,n,s)))}function lw(e,t,n=!1){return n?e():t()}const uw=["fanIn","fanOut","fanAvg"],cw=["normal","uniform","truncatedNormal"];class hw extends Gl{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}}class dw extends hw{apply(e,t){return wd(e,t)}}dw.className="Zeros",Hl(dw);class pw extends hw{apply(e,t){return vd(e,t)}}pw.className="Ones",Hl(pw);class fw extends hw{constructor(e){if(super(),"object"!=typeof e)throw new Qy(`Expected argument of type ConstantConfig but got ${e}`);if(void 0===e.value)throw new Qy(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return Ao((()=>Fl(Vl(this.value),vd(e,t))))}getConfig(){return{value:this.value}}}fw.className="Constant",Hl(fw);class mw extends hw{constructor(e){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return Qd(e,this.minval,this.maxval,t,this.seed)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}}mw.className="RandomUniform",Hl(mw);class gw extends hw{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if("float32"!==(t=t||"float32")&&"int32"!==t)throw new Jy(`randomNormal does not support dType ${t}.`);return tw(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}gw.className="RandomNormal",Hl(gw);class yw extends hw{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if("float32"!==(t=t||"float32")&&"int32"!==t)throw new Jy(`truncatedNormal does not support dType ${t}.`);return Gp(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}yw.className="TruncatedNormal",Hl(yw);class bw extends hw{constructor(e){super(),this.gain=null!=e.gain?e.gain:1}apply(e,t){return Ao((()=>{if(2!==e.length||e[0]!==e[1])throw new Qy("Identity matrix initializer can only be used for 2D square matrices.");return Fl(this.gain,Vh(e[0]))}))}getConfig(){return{gain:this.gain}}}bw.className="Identity",Hl(bw);class ww extends hw{constructor(e){if(super(),e.scale<0)throw new Qy(`scale must be a positive float. Got: ${e.scale}`);var t;this.scale=null==e.scale?1:e.scale,this.mode=null==e.mode?"fanIn":e.mode,t=this.mode,gb(uw,"FanMode",t),this.distribution=null==e.distribution?"normal":e.distribution,function(e){gb(cw,"Distribution",e)}(this.distribution),this.seed=e.seed}apply(e,t){const n=function(e,t="channelsLast"){let n,s;if(Rb(t),2===e.length)n=e[0],s=e[1];else if(-1!==[3,4,5].indexOf(e.length)){if("channelsFirst"===t){const t=Vb(e,2);n=e[1]*t,s=e[0]*t}else if("channelsLast"===t){const t=Vb(e,0,e.length-2);n=e[e.length-2]*t,s=e[e.length-1]*t}}else{const t=Vb(e);n=Math.sqrt(t),s=Math.sqrt(t)}return[n,s]}(e),s=n[0],r=n[1];let i=this.scale;if("fanIn"===this.mode?i/=Math.max(1,s):"fanOut"===this.mode?i/=Math.max(1,r):i/=Math.max(1,(s+r)/2),"normal"===this.distribution){const n=Math.sqrt(i);if("float32"!==(t=t||"float32")&&"int32"!==t)throw new Jy(`${this.getClassName()} does not support dType ${t}.`);return Gp(e,0,n,t,this.seed)}{const n=Math.sqrt(3*i);return Qd(e,-n,n,t,this.seed)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}}ww.className="VarianceScaling",Hl(ww);class vw extends ww{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return ww.className}}vw.className="GlorotUniform",Hl(vw);class xw extends ww{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return ww.className}}xw.className="GlorotNormal",Hl(xw);class Aw extends ww{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return ww.className}}Aw.className="HeNormal",Hl(Aw);class Cw extends ww{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return ww.className}}Cw.className="HeUniform",Hl(Cw);class kw extends ww{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return ww.className}}kw.className="LeCunNormal",Hl(kw);class Sw extends ww{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return ww.className}}Sw.className="LeCunUniform",Hl(Sw);class _w extends hw{constructor(e){super(),this.DEFAULT_GAIN=1,this.ELEMENTS_WARN_SLOW=2e3,this.gain=null==e.gain?this.DEFAULT_GAIN:e.gain,this.seed=e.seed}apply(e,t){return Ao((()=>{if(e.length<2)throw new Jy("Shape must be at least 2D.");if("int32"!==t&&"float32"!==t&&void 0!==t)throw new TypeError(`Unsupported data type ${t}.`);const n=Kt(e.slice(0,-1)),s=e[e.length-1];this.ELEMENTS_WARN_SLOW;const r=tw([Math.max(s,n),Math.min(s,n)],0,1,t,this.seed),i=wm.qr(r,!1);let a=i[0];const o=i[1].flatten().stridedSlice([0],[Math.min(s,n)*Math.min(s,n)],[Math.min(s,n)+1]);return a=Fl(a,o.sign()),ne*t));return t}const Fw="Variable";class Bw{constructor(e,t="float32",n=Fw,s=!0,r=null){this.dtype=null==t?"float32":t,this.shape=e.shape,this.id=Ab(),n=null==n?Fw:n,this.originalName=Bb(n),this.name=Lb(this.originalName),this.trainable_=s,this.constraint=r,this.val=Xp(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),function(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}(this.val,e),this.val.id!==e.id&&(this.val.assign(e),null!=this.constraint&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}}function Lw(e){return e.map((e=>e.read()))}function Pw(e){e.forEach((e=>{e[0].write(e[1])}))}class Uw{constructor(e){this.dtype=e.dtype,this.shape=e.shape,null!=e.shape?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}}class Vw{constructor(e,t,n,s,r,i,a){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=s,this.callArgs=r,this.outputTensorIndex=a,this.id=Ab(),null!=i&&(this.originalName=Bb(i),this.name=Lb(this.originalName)),this.rank=t.length}}let Ww=0;class jw{constructor(e,t){this.callArgs=t,this.id=Ww++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(const t of e.inboundLayers)null!=t&&t.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){const e=[];for(const t of this.inboundLayers)null!=t?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}}let Gw=0;class qw extends Gl{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=Gw++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){const e=this.getClassName();t=ob(e)+"_"+kb(e)}if(this.name=t,this.trainable_=null==e.trainable||e.trainable,null!=e.inputShape||null!=e.batchInputShape){let t;if(null!=e.batchInputShape)t=e.batchInputShape;else if(null!=e.inputShape){let n=null;null!=e.batchSize&&(n=e.batchSize),t=[n].concat(e.inputShape)}this.batchInputShape=t;let n=e.dtype;null==n&&(n=e.inputDType),null==n&&(n="float32"),this.dtype=n}null!=e.weights?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(0===this.inboundNodes.length)throw new Yy(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new Qy(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return ib(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return ib(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Zy(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(0===this.inboundNodes.length)throw new Zy(`Layer ${this.name} is not connected, no input to return.`);return ib(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(0===this.inboundNodes.length)throw new Zy(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Zy(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return ib(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map((e=>e()))}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach((t=>t.trainable=e)),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter((e=>e.trainable)):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter((e=>!e.trainable)).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){const t=ab(e);if(null==this.inputSpec||0===this.inputSpec.length)return;const n=ab(this.inputSpec);if(t.length!==n.length)throw new Qy(`Layer ${this.name} expects ${n.length} inputs, but it received ${t.length} input tensors. Input received: ${e}`);for(let e=0;er.maxNDim)throw new Qy(`Input ${e} is incompatible with layer ${this.name}: expected max_ndim=${r.maxNDim}, found ndim=${i}`);if(null!=r.minNDim&&i=0?t[s]:t[t.length+s];if(null!=i&&-1===[i,null].indexOf(a))throw new Qy(`Input ${e} is incompatible with layer ${this.name}: expected axis ${s} of input shape to have value ${i} but got shape ${t}.`)}}if(null!=r.shape)for(let t=0;t{if(!this.built){this.assertInputCompatibility(e);const t=[];for(const n of ab(e))t.push(n.shape);this.build(ib(t)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),null===this._refCount&&r&&(this._refCount=1)}if(this.assertInputCompatibility(e),r){let s=this.call(e,t);this.supportsMasking&&this.setMaskMetadata(e,s);const r=ab(s),i=[];for(let e of r)-1!==n.indexOf(e)&&(e=e.clone()),i.push(e);if(s=ib(i),null!=this.activityRegularizer)throw new Jy("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}{const n=function(e){e=ab(e);const t=[];for(const n of e)t.push(n.shape);return ib(t)}(e),s=this.computeOutputShape(n);let r;const i="float32";if(this.warnOnIncompatibleInputShape(Array.isArray(e)?n[0]:n),r=null!=s&&s.length>0&&Array.isArray(s[0])?s.map(((n,s)=>new Vw(i,n,this,ab(e),t,this.name,s))):new Vw(i,s,this,ab(e),t,this.name),this.addInboundNode(e,r,null,null,n,s,t),this._refCount++,null!=this.activityRegularizer)throw new Jy("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return r}}))}warnOnIncompatibleInputShape(e){if(null!=this.batchInputShape)if(e.length!==this.batchInputShape.length);else{let t=!1;this.batchInputShape.forEach(((n,s)=>{null!=n&&null!=e[s]&&e[s]!==n&&(t=!0)}))}}get outputShape(){if(null==this.inboundNodes||0===this.inboundNodes.length)throw new Zy(`The layer ${this.name} has never been called and thus has no defined output shape.`);const e=[];for(const t of this.inboundNodes){const n=JSON.stringify(t.outputShapes);-1===e.indexOf(n)&&e.push(n)}if(1===e.length){const e=this.inboundNodes[0].outputShapes;return Array.isArray(e)&&Array.isArray(e[0])&&1===e.length?e[0]:e}throw new Zy(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Yy(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return zw(this.weights)}build(e){this.built=!0}getWeights(e=!1){return Lw(e?this.trainableWeights:this.weights)}setWeights(e){Ao((()=>{const t=this.weights;if(t.length!==e.length)throw new Qy(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(0===t.length)return;const n=[],s=Lw(t);for(let r=0;rr.apply(u.read()))),null==i&&(i=!0),i?this._trainableWeights.push(u):this._nonTrainableWeights.push(u),u}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){null==e||Array.isArray(e)&&0===e.length||(e=ab(e),void 0!==this._losses&&null!==this._losses&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(null!=t){if(!Array.isArray(t))throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);t.forEach((e=>{if(null!=e)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)}))}return null}return t}setMaskMetadata(e,t,n){if(!this.supportsMasking)return;const s=this.computeMask(e,n),r=ab(t),i=ab(s);if(r.length!==i.length)throw new Error(`${this.name} outputs ${r.length} tensors but ${r.length} masks for those tensors`);for(let e=0;ee.dispose())),this.weights.length}assertNotDisposed(){if(0===this._refCount)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(null===this._refCount)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return 0==--this._refCount&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}}function Hw(e,t,n){if((null==t||null!=n&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),0===t.inboundNodes.length)return[e];{const e=t.inboundNodes[n];if(0===e.inboundLayers.length)return e.inputTensors;{const t=[];for(let n=0;ne.name)),l=[],u=t.names();for(const e of o)-1!==u.indexOf(e)?l.push(t.getValue(e)):l.push(null);null!=s&&(s.maxNumTensors=-1/0,s.minNumTensors=1/0);const c=o.join(",")+"|"+t.names().sort().join(",");let h,d=Xw.get(c);if(null==d){const e=function(e,t){Gt(null!=e&&e.length>0,(()=>"Expected at least one fetch, got none"));let n=[],s={};if(1===e.length){const r=Jw(e[0],t);n=r.sorted,s=r.recipientMap}else{const r=new Set;for(const i of e){const{sorted:e,recipientMap:a}=Jw(i,t);for(const t of e)r.has(t.name)||(n.push(t),r.add(t.name));for(const e in a)null==s[e]&&(s[e]=new Set),a[e].forEach((t=>s[e].add(t)))}}return{sorted:n,recipientCounts:Qw(s)}}(a,t);d=e.sorted,h=e.recipientCounts,Xw.put(c,d),Zw.put(c,h)}h={},r||Object.assign(h,Zw.get(c));const p=new $w(t);for(let e=0;es.maxNumTensors&&(s.maxNumTensors=e),e0;){const e=i[i.length-1];if(n.has(e.name)){i.pop();continue}const t=a[a.length-1]===i.length-1;if(0===e.inputs.length||t)i.pop(),s.push(e),n.add(e.name),t&&a.pop();else{a.push(i.length-1);for(const t of e.inputs)null==r[t.name]&&(r[t.name]=new Set),r[t.name].add(e.name),n.has(t.name)||i.push(t)}}return{sorted:s,recipientMap:r}}function ev(e){let t;if(1===e.sourceLayer.inboundNodes.length)t=e.sourceLayer.output;else{let n=null;for(let t=0;tBl(Dh(Fl(e,e),t,!0))))}Sn().registerFlag("TOPOLOGICAL_SORT_CACHE_MAX_ENTRIES",(()=>100),(function(e){null!=Xw&&Xw.setMaxEntries(e),null!=Zw&&Zw.setMaxEntries(e)}));class nv extends Gl{getConfig(){return{}}}class sv extends nv{constructor(e){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=null!=e.maxValue?e.maxValue:this.defaultMaxValue,this.axis=null!=e.axis?e.axis:this.defaultAxis}apply(e){return Ao((()=>{const t=tv(e,this.axis),n=$c(t,0,this.maxValue);return Fl(e,zl(n,Dl(Hb(),t)))}))}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}}sv.className="MaxNorm",Hl(sv);class rv extends nv{constructor(e){super(),this.defaultAxis=0,this.axis=null!=e.axis?e.axis:this.defaultAxis}apply(e){return Ao((()=>zl(e,Dl(Hb(),tv(e,this.axis)))))}getConfig(){return{axis:this.axis}}}rv.className="UnitNorm",Hl(rv);class iv extends nv{apply(e){return sp(e)}}iv.className="NonNeg",Hl(iv);class av extends nv{constructor(e){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=null!=e.minValue?e.minValue:this.defaultMinValue,this.maxValue=null!=e.maxValue?e.maxValue:this.defaultMaxValue,this.rate=null!=e.rate?e.rate:this.defaultRate,this.axis=null!=e.axis?e.axis:this.defaultAxis}apply(e){return Ao((()=>{const t=tv(e,this.axis),n=Dl(Fl(this.rate,$c(t,this.minValue,this.maxValue)),Fl(1-this.rate,t));return Fl(e,zl(n,Dl(Hb(),t)))}))}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}}av.className="MinMaxNorm",Hl(av);const ov={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function lv(e){return cb(e)}function uv(e,t={}){return db(e,ql.getMap().classNameMap,t,"constraint")}function cv(e){if(null==e)return null;if("string"==typeof e){return uv({className:e in ov?ov[e]:e,config:{}})}return e instanceof nv?e:uv(e)}async function hv(e){if(null==e)return;const t=[],n=[],s=[];for(const r in e){const i=e[r];if("number"!=typeof i){const e=i;t.push(e.data()),n.push(r),s.push(e)}}if(t.length>0){const r=await Promise.all(t);for(let t=0;tDl(this.totals[e],Fl(s,n))));this.totals[e]=r,null!=t&&t.dispose()}}}async onEpochEnd(e,t){if(null!=t)for(const e of this.params.metrics)null!=this.totals[e]&&("number"==typeof this.totals[e]?t[e]=this.totals[e]/this.seen:Ao((()=>{const n=Fl(zl(1,this.seen),this.totals[e]);t[e]=n,this.totals[e].dispose(),ko(t[e])})))}}class yv extends fv{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){null==t&&(t={}),this.epoch.push(e);for(const e in t)null==this.history[e]&&(this.history[e]=[]),this.history[e].push(t[e])}async syncData(){const e=[],t=[],n=[];for(const s in this.history){const r=this.history[s];for(let i=0;i{const a=null!=n?n():fa();return a-rnew bv(e,t)))}class vv{constructor(){}static registerCallbackConstructor(e,t){Gt(e>=0&&Number.isInteger(e),(()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`)),vv.checkForDuplicate(t),null==vv.constructors[e]&&(vv.constructors[e]=[]),vv.constructors[e].push(t)}static checkForDuplicate(e){for(const t in vv.constructors){vv.constructors[+t].forEach((t=>{if(t===e)throw new Qy("Duplicate callback constructor.")}))}}static clear(){vv.constructors={}}static createCallbacks(e){const t=[];for(const n in vv.constructors){const s=+n;e>=s&&t.push(...vv.constructors[s])}return t.map((e=>new e))}}function xv(e,t,n,s,r,i,a,o,l){const u=new yv,c=[new gv,...vv.createCallbacks(t)];null!=e&&c.push(...e),c.push(u);const h=new mv(c);return h.setParams({epochs:n,initialEpoch:s,samples:r,steps:i,batchSize:a,verbose:t,doValidation:o,metrics:l}),{callbackList:h,history:u}}function Av(e,t={},n=!1){return db(e,ql.getMap().classNameMap,t,"layer",n)}function Cv(e,t){return Ao((()=>{"float32"!==e.dtype&&(e=Nl(e,"float32"));const n=Dh(rw(e),t,!0),s=Xl(n.shape,Hb()),r=Bl(ru(n,s));return zl(e,r)}))}function kv(e,t){return Ao((()=>bd(rw(Ql(t,e)),-1)))}function Sv(e,t){return Ao((()=>bd(eu(Ql(t,e)),-1)))}function _v(e,t){return Ao((()=>{const n=Ql(e,t),s=$c(eu(e),Hb(),Number.MAX_VALUE),r=eu(zl(n,s));return Fl(100,bd(r,-1))}))}function Ev(e,t){return Ao((()=>{const n=$c(t,Hb(),Number.MAX_VALUE),s=td(Dl(1,n)),r=$c(e,Hb(),Number.MAX_VALUE),i=td(Dl(1,r));return bd(rw(Ql(s,i)),-1)}))}function Iv(e,t,n=!1){return Ao((()=>{if(n)t=Ap(t);else{const e=Dh(t,t.shape.length-1,!0);t=zl(t,e)}return t=$c(t,Hb(),1-Hb()),sd(Dh(Fl(Nl(e,"float32"),td(t)),t.shape.length-1))}))}function Tv(e,t,n=!1){return Ao((()=>{const s=Nl(Wh(function(e){const t=[Vb(e.shape)];return Tc(e,t)}(e)),"int32"),r=(t=$c(t,Hb(),1-Hb())).shape;return Iv(Tc(Td(s,r[r.length-1]),r),t,n)}))}function Nv(e,t){return Ao((()=>{let n;return n=$c(t,Hb(),1-Hb()),n=td(zl(n,Ql(1,n))),bd(function(e,t){if(!$t(e.shape,t.shape))throw new Qy(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return Ao((()=>{const n=sp(t),s=sd(eu(t));return Dl(Ql(n,Fl(t,e)),nd(Bh(s)))}))}(e,n),-1)}))}function Rv(e,t){return Ao((()=>{const n=$c(e,Hb(),1),s=$c(t,Hb(),1);return Dh(Fl(e,td(zl(n,s))),-1)}))}function Ov(e,t){return Ao((()=>{const n=Cv(e,-1),s=Cv(t,-1),r=Fl(n,s);return sd(Dh(r,-1))}))}vv.constructors={};const Dv={meanSquaredError:kv,meanAbsoluteError:Sv,meanAbsolutePercentageError:_v,meanSquaredLogarithmicError:Ev,squaredHinge:function(e,t){return Ao((()=>{const n=ru(0,Ql(1,Fl(e,t)));return bd(rw(n),-1)}))},hinge:function(e,t){return Ao((()=>{const n=ru(0,Ql(1,Fl(e,t)));return bd(n,-1)}))},categoricalHinge:function(e,t){return Ao((()=>{const n=Dh(Fl(e,t),-1),s=Rh(Fl(Ql(1,e),t),-1);return ru(0,Dl(1,Ql(s,n)))}))},logcosh:function(e,t){return Ao((()=>{const n=Math.log(2),s=Ql(t,e),r=Ql(Dl(s,rd(Fl(-2,s))),n);return bd(r,-1)}))},categoricalCrossentropy:Iv,sparseCategoricalCrossentropy:Tv,binaryCrossentropy:Nv,kullbackLeiblerDivergence:Rv,poisson:function(e,t){return Ao((()=>{const n=td(Dl(Hb(),t));return bd(Ql(t,Fl(e,n)),-1)}))},cosineProximity:Ov};function Mv(e){if("string"==typeof e){if(e in Dv)return Dv[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new Qy(t)}return e}function zv(e,t){return Ao((()=>{const n=Fl(.5,Nd(t)),s=Kb(Gh(t,n),e.dtype);return bd(mh(e,s),-1)}))}function Fv(e,t){return Ao((()=>Kb(mh(oc(e,-1),oc(t,-1)),"float32")))}function Bv(e,t){return Ao((()=>Nl(Dh(ld(mh(e,1),mh(t,1))),"float32")))}function Lv(e,t){return Nv(e,t)}function Pv(e,t){return e.rank===t.rank&&(e=Tp(e,[e.rank-1])),(t=oc(t,-1)).dtype!==e.dtype&&(t=Nl(t,e.dtype)),Nl(mh(e,t),"float32")}const Uv=Iv,Vv=Tv,Wv={binaryAccuracy:zv,categoricalAccuracy:Fv,precision:function(e,t){return Ao((()=>{const n=Bv(e,t),s=function(e,t){return Ao((()=>Nl(Dh(ld(mh(e,0),mh(t,1))),"float32")))}(e,t),r=Dl(n,s);return Nl(gh(Gh(r,0),zl(n,r),0),"float32")}))},categoricalCrossentropy:Uv,sparseCategoricalCrossentropy:Vv,mse:kv,MSE:kv,mae:Sv,MAE:Sv,mape:_v,MAPE:_v,cosine:Ov};function jv(e){if("string"==typeof e&&e in Wv)return Wv[e];if("string"!=typeof e&&null!=e)return e;throw new Qy(`Unknown metric ${e}`)}function Gv(e){if(sb(null!==e,`Unknown LossOrMetricFn ${e}`),"string"==typeof e)return e;{let t;for(const n of Object.keys(Dv))if(Dv[n]===e){t=n;break}if(void 0!==t)return t;for(const n of Object.keys(Wv))if(Wv[n]===e){t=n;break}return void 0!==t?t:e.name}}function qv(e,t,n=!1){if(null==e||"object"!=typeof e||Object.getPrototypeOf(e)!==Object.prototype||!Hv(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){JSON.stringify(e).length}}function Hv(e){if(null===e)return!0;if("object"==typeof e){if(Object.getPrototypeOf(e)===Object.prototype){const t=Object.keys(e);for(const n of t){if("string"!=typeof n)return!1;if(!Hv(e[n]))return!1}return!0}if(Array.isArray(e)){for(const t of e)if(!Hv(t))return!1;return!0}return!1}{const t=typeof e;return"string"===t||"number"===t||"boolean"===t}}function Kv(e,t,n,s=console.log){const r=function(e){let t=!0;const n=[],s=[];for(const t in e.nodesByDepth)n.push(e.nodesByDepth[t]);for(const e of n){if(e.length>1||1===e.length&&e[0].inboundLayers.length>1){t=!1;break}s.push(...e)}if(t)for(const n of e.layers){let e=!1;for(const r of n.inboundNodes)if(-1!==s.indexOf(r)){if(e){t=!1;break}e=!0}if(!t)break}return t}(e),i=["Layer (type)","Input Shape","Output shape","Param #"];let a;if(r?(t=t||90,n=n||[.32,.61,.89,1]):(t=t||115,n=n||[.24,.48,.7,.8,1]),n[n.length-1]<=1&&(n=n.map((e=>Math.floor(t*e)))),!r){i.push("Receives inputs"),a=[];for(const t in e.nodesByDepth)a.push(...e.nodesByDepth[t])}s("_".repeat(t)),$v(i,n,s),s("=".repeat(t));const o=e.layers;for(let e=0;e0&&(s=s.slice(0,s.length-1)+" "),s+=e[n],s=s.slice(0,t[n]),s+=" ".repeat(t[n]-s.length);n(s)}function Xv(e,t,n){let s,r;try{r=e.inboundNodes.map((e=>JSON.stringify(e.inputShapes))).join(",")}catch(e){r="multiple"}try{s=JSON.stringify(e.outputShape)}catch(e){s="multiple"}$v([`${e.name} (${e.getClassName()})`,r,s,e.countParams().toString()],t,n)}function Zv(e,t,n,s){let r,i;try{i=e.inboundNodes.map((e=>JSON.stringify(e.inputShapes))).join(",")}catch(e){i="multiple"}try{r=JSON.stringify(e.outputShape)}catch(e){r="multiple"}const a=[];for(const t of e.inboundNodes)if(!(null!=n&&n.length>0&&-1===n.indexOf(t)))for(let e=0;ee.name))}`);fb(this.outputs).length,this.outputs.length,this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(const e of this.outputs){const t=e.sourceLayer,n=e.nodeIndex,s=e.tensorIndex;this.outputLayers.push(t),this.outputLayersNodeIndices.push(n),this.outputLayersTensorIndices.push(s)}for(const e of this.inputs){const t=e.sourceLayer,n=e.nodeIndex,s=e.tensorIndex;sb(0===n,"input layer has >1 nodes"),sb(0===s,"input layer has >1 tensors"),this.inputLayers.push(t),this.inputLayersNodeIndices.push(n),this.inputLayersTensorIndices.push(s)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let t=0;te.shape)),this.internalOutputShapes=this.outputs.map((e=>e.shape));const t={},n={},s={},r={},i={},a=[],o=(e,t,n,s,r,l)=>{null!=s&&null!=r&&null!=l||(s=e.sourceLayer,r=e.nodeIndex,l=e.tensorIndex);const u=s.inboundNodes[r];if(-1!==n.indexOf(u))throw new Yy(`The tensor ${e.name} at layer "${s.name}" is part of a cycle.`);if(-1!==t.indexOf(u))return;this.containerNodes.add(tx.nodeKey(s,r)),s.id in i||(i[s.id]=Object.keys(i).length),-1===n.indexOf(u)&&n.push(u);const c=u.inboundLayers.length;for(let e=0;e=0;)n.splice(n.indexOf(u),1);a.push(u)},l=[],u=[];for(const e of this.outputs)o(e,l,u);const c=a.slice().reverse();for(const e of c){n[e.id]=e,e.id in t||(t[e.id]=0);let i=t[e.id];const a=null==s[e.outboundLayer.id]?0:s[e.outboundLayer.id];i=Math.max(i,a),s[e.outboundLayer.id]=i,r[e.outboundLayer.id]=e.outboundLayer,t[e.id]=i;for(let s=0;sparseInt(e,10))).sort(pb);this.layers=[];for(const e of p){const t=d[e];t.sort(((e,t)=>{const n=i[e.id],s=i[t.id];return ns?1:0}));for(const e of t)e instanceof tx&&this.internalContainerRefs.push(e),this.layers.push(e)}this.layersByDepth=d,p=Object.keys(h).map((e=>parseInt(e,10))).sort(pb);const f=this.inputs.slice(),m=[];for(const e of p)for(const t of h[e]){const e=t.outboundLayer;if(null!=e){for(const n of t.inputTensors)if(-1===f.indexOf(n))throw new Yy(`Graph disconnected: cannot obtain value for tensor ${n} at layer "${e.name}". The following previous layers were accessed without issue: ${m}`);for(const e of t.outputTensors)f.push(e);m.push(e.name)}}this.nodesByDepth=h;const g=this.layers.map((e=>e.name));for(const e of g){const t=g.filter((t=>t===e)).length;if(1!==t)throw new Yy(`The name "${e}" is used ${t} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new jw({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map((e=>null)),outputMasks:this.outputs.map((e=>null)),inputShapes:this.inputs.map((e=>e.shape)),outputShapes:this.outputs.map((e=>e.shape))}),this.built=!0,this._refCount=1}assertNotDisposed(){if(0===this._refCount)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();const e={refCountAfterDispose:null,numDisposedVariables:0};if(0==--this._refCount){for(const t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(const t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach((t=>{t._trainableWeights.forEach((t=>t.trainable=e))})),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new Qy("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(const t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const e of this.layers)t.push(...e.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){const n={};let s=0;const r=(e=>{const t=Object.keys(e);if(0===t.length)return!1;const n=t[0].split("/");return!isNaN(parseInt(n[n.length-1],10))})(e);r&&this.parseWeights(e);for(const e of this.layers)for(const[t,i]of e.weights.entries()){const e=r?`${i.name.split("/").slice(0,-1).join("/")+"/"}${t}`:i.originalName;if(null!=n[e])throw new Qy(`Duplicate weight name: ${e}`);n[e]=i,s++}const i=[];for(const s in e){let r=s;if(null==n[s]){const e=s.split("/");r=e.slice(0,-2).concat([e[e.length-1]]).join("/")}if(null!=n[r])i.push([n[r],e[s]]);else if(t)throw new Qy(`Provided weight data has no target variable: ${s}`);delete n[r]}if(t){const e=[];for(const t in n)e.push(t);if(e.length>0)throw new Qy(`${e.length} of ${s} weights are not set: ${e}`)}Pw(i)}parseWeights(e){for(const t in Object.keys(e)){const n=t.split("/"),s=["vars","layer_checkpoint_dependencies"],r=n.map((e=>e.startsWith("_")?e.slice(1):e)).filter((e=>!s.includes(e))).join("/");r!==t&&(e[r]=e[t],delete e[t])}}updatedConfig(){const e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${ex}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){const n=Jv(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return Ao((()=>{e=ab(e);const n=new $w;for(let t=0;t{let n;return e=ab(e),n=null==t?nb(null,e.length):ab(t),this.runInternalGraph(e,n)[1]}))}computeOutputShape(e){const t=Ow(e);if(t.length!==this.inputLayers.length)throw new Qy(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);const n={};for(let e=0;eparseInt(e,10))).sort(pb);if(s.length>1)for(const e of s){const t=this.nodesByDepth[e];for(const e of t){const t=e.outboundLayer;if(-1!==this.inputLayers.map((e=>e.id)).indexOf(t.id))continue;const s=[];for(let t=0;tparseInt(e,10))).sort(pb);for(const e of s){const t=this.nodesByDepth[e];for(const e of t){const t=e.outboundLayer,s=e.inputTensors,r=e.outputTensors,i=new Array;for(const e of s)e.id in n&&i.push(n[e.id]);if(i.length===s.length){let s,a,o,l,u={};if(null!=e.callArgs&&(u=e.callArgs),1===i.length){const[e,n]=i[0];null==u.mask&&(u.mask=n),o=ab(t.call(e,u)),l=ab(t.computeMask(e,n)),s=[e],a=[n]}else s=i.map((e=>e[0])),a=i.map((e=>e[1])),null==u.mask&&(u.mask=a),o=ab(t.call(s,u)),l=ab(t.computeMask(s,a));if(t.activityRegularizer)throw new Jy("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let e=0;e{const e=[];for(const t of this.layers)for(let n=0;n0){const e=[];for(let n=0;n0&&e.apply(ib(n),s)}function l(e){const n=e.name,i=Av(e,null!=t.customObjects?t.customObjects:{});i.setFastWeightInitDuringBuild(s),r[n]=i;e.inboundNodes.forEach((e=>{if(!(e instanceof Array))throw new Qy(`Corrupted configuration, expected array for nodeData: ${e}`);a(i,e)}))}const u=t.name,c=t.layers;for(const e of c)l(e);for(;!mb(i);)for(const e of c){const t=r[e.name];if(t.name in i){const e=i[t.name];delete i[t.name];for(const n of e)o(t,n)}}const h=[],d=[],p=t.inputLayers;for(const e of p){const t=e[0],n=e[1],s=e[2];sb(t in r);const i=r[t].inboundNodes[n].outputTensors;h.push(i[s])}const f=t.outputLayers;for(const e of f){const t=e[0],n=e[1],s=e[2];sb(t in r);const i=r[t].inboundNodes[n].outputTensors;d.push(i[s])}return new e({inputs:h,outputs:d,name:u})}get stateful(){if(this._stateful)throw new Qy("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(const e of this.layers)if(e.stateful)return!0;return!1}resetStates(){Ao((()=>{this.layers.forEach((e=>{e.stateful&&e.resetStates()}))}))}}function nx(e,t,n){const s=t.length;if(null==e||Array.isArray(e)&&0===e.length)return t.map((e=>null));if(1===s)return Array.isArray(e)&&1===e.length?e:"object"==typeof e&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==s)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${s} outputs. Make sure a set of weights is provided for each model output.`);return e}if("object"==typeof e&&Object.keys(e).length>0&&"object"==typeof e[Object.keys(e)[0]]){const n=[];return t.forEach((t=>{t in e?n.push(e[t]):n.push(null)})),n}throw new Error(`The model has multiple (${s}) outputs, so ${n} must be either an array with ${s} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}function sx(e,t){return nx(e,t,"classWeight")}async function rx(e,t,n,s){if(null!=t||null!=s)throw new Error("Support sampleWeight is not implemented yet");if(null!=n){const t=Ao((()=>{if(1===e.shape.length)return Rl(e);if(2===e.shape.length){if(e.shape[1]>1){return oc(e,1)}if(1===e.shape[1])return Tc(e,[e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)})),s=Array.from(await t.data());Co(t);const r=[];return s.forEach((e=>{if(null==n[e])throw new Error(`classWeight must contain all classes in the training data. The class ${e} exists in the data but not in classWeight`);r.push(n[e])})),Mp(r,"float32")}return null}function ix(e,t){return Fl(e,t)}function ax(e,t){let n,s;const r=t;n=r.xs,s=r.ys,Gt(null!=n&&null!=s,(()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`));const i=ox("input",e.inputNames,n),a=ox("output",e.outputNames,s),o=i[0].shape[0];Gt(i.length===e.inputs.length,(()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${i.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`)),Gt(a.length===e.outputs.length,(()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${a.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`));for(let t=0;t`Batch size mismatch: input ${e.inputNames[t]} has ${i[t].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`));for(let t=0;t`Batch size mismatch: output ${e.outputNames[t]} has ${a[t].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`));return{xs:i,ys:a}}function ox(e,t,n){if(n instanceof Ma)return[n];if(Array.isArray(n))return Gt(n.length===t.length,(()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`)),n;{const s=[];for(const r of t){if(null==n[r])throw new Qy(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);s.push(n[r])}return s}}async function lx(e,t,n){const s=null!=n.batchesPerEpoch;if(Gt(null!=e.optimizer,(()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig).")),Gt(null!=n,(()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call.")),Gt(null!=n.epochs&&n.epochs>0&&Number.isInteger(n.epochs),(()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`)),Gt(!s||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),(()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`)),Gt(null==n.validationSplit,(()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead.")),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{const r=null!=n.validationData;let i,a;if(r)if(ux(n.validationData))Gt(null==n.validationBatches||n.validationBatches>0&&Number.isInteger(n.validationBatches),(()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${n.validationBatches}`));else{const e=function(e){if(3===e.length)throw new Jy("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}(n.validationData);i=e.xs,a=e.ys}const o=e.makeTrainFunction(),l=e.getDedupedMetricsNames();let u;u=r?l.slice().concat(l.map((e=>"val_"+e))):l.slice();const c=wv(n.callbacks,n.yieldEvery),h=null==n.verbose?1:n.verbose,{callbackList:d,history:p}=xv(c,h,n.epochs,null,null,function(e,t){let n=null;null!=t.batchesPerEpoch?n=t.batchesPerEpoch:Number.isFinite(e.size)&&(n=e.size);return n}(t,n),null,r,u);d.setModel(e),e.history=p,await d.onTrainBegin(),e.stopTraining_=!1;let f=null==n.initialEpoch?0:n.initialEpoch,m=await t.iterator();for(;f=n.batchesPerEpoch:t.done){if(r){let t;t=ux(n.validationData)?ab(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):ab(e.evaluate(i,a,{batchSize:null==n.validationBatchSize?32:n.validationBatchSize,verbose:0}));for(let n=0;n0&&Number.isInteger(e),(()=>`batchSize is required to be a positive integer, but got ${e}`))}function hx(e,t,n){return null==e?[null]:Array.isArray(e)?e.map((e=>Xb(e,t,n-t))):Xb(e,t,n-t)}function dx(e,t){return Ao((()=>null==e?null:Array.isArray(e)?e.map((e=>dx(e,t))):sw(e,"int32"===t.dtype?t:Nl(t,"int32"))))}function px(e,t){const n=[];let s=0,r=null;for(;s=e&&(r=e),n.push([s,r]),s=r;return n}function fx(e){const t=[];e instanceof Ma&&(e=[e]);for(let n=0;nn.push(e.id)));else if(null!=t)for(const e in t){const s=t[e];n.push(s.id)}const s=[];if(e instanceof Ma)-1===n.indexOf(e.id)&&s.push(e);else if(Array.isArray(e))e.forEach((e=>{-1===n.indexOf(e.id)&&s.push(e)}));else if(null!=e)for(const t in e){const r=e[t];-1===n.indexOf(r.id)&&s.push(r)}s.forEach((e=>{e.isDisposed||e.dispose()}))}function gx(e){return Array.isArray(e)}function yx(e){return!function(e){return e instanceof Ma}(e)&&!gx(e)}function bx(e,t,n,s=!0,r=""){if(null==t||0===t.length){if(null!=e){let t=!1;if(gx(e)&&e.length>0)t=!0;else if(yx(e)){for(const n in e)if(e.hasOwnProperty(n)){t=!0;break}}else t=!0;if(t)throw new Qy(`Error when checking model ${r} expected no data, but got ${e}`)}return[]}if(null==e)return t.map((e=>null));let i;if(yx(e)){i=[];for(const n of t){if(null==e[n])throw new Qy(`No data provided for "${n}". Need data for each key in: ${t}`);i.push(e[n])}}else if(gx(e)){if(e.length!==t.length)throw new Qy(`Error when checking model ${r}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);i=e}else{if(t.length>1)throw new Qy(`The model ${r} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);i=[e]}if(i=fx(i),null!=n)for(let e=0;e=0&&i!==o)throw new Qy(`${r} expected a batch of elements where each example has shape [${n[e].slice(1,n[e].length)}] (i.e.,tensor shape [*,${n[e].slice(1,n[e].length)}]) but the ${r} received an input with ${a.shape[0]} examples, each with shape [${a.shape.slice(1,a.shape.length)}] (tensor shape [${a.shape}])`)}}return i}function wx(e,t,n,s=!0,r=""){let i;if(Array.isArray(e)){if(e.length!==t.length)throw new Qy(`Error when checking model ${r}: the Array of Tensors that you are passing to your model is not the size the the model expected. Expected to see ${t.length} Tensor(s), but instead got ${e.length} Tensors(s).`);i=e}else{if(t.length>1)throw new Qy(`The model expects ${t.length} ${r} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);i=[e]}if(null!=n)for(let e=0;eCm.adagrad(.01),Adadelta:()=>Cm.adadelta(1,.95,Hb()),Adam:()=>Cm.adam(.001,.9,.999,Hb()),Adamax:()=>Cm.adamax(.002,.9,.999,Hb(),0),RMSProp:()=>Cm.rmsprop(.001,.9,0,Hb()),SGD:()=>Cm.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new Qy(`Unknown Optimizer ${e}`)}(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Kl))throw new Qy("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(Array.isArray(e.loss)||"string"==typeof e.loss||"function"==typeof e.loss)if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new Qy(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);const n=e.loss;t=n.map((e=>Mv(e)))}else{const n=Mv(e.loss);this.outputs.forEach((e=>{t.push(n)}))}else{e.loss=e.loss;for(const t in e.loss)if(-1===this.outputNames.indexOf(t))throw new Qy(`Unknown entry in loss dictionary: "${t}". Only expected the following keys: ${this.outputNames}`);for(const n of this.outputNames)e.loss[n],t.push(Mv(e.loss[n]))}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let e=0;e{for(let e=0;e1&&(this.metricsTensors.push([t,e]),this.metricsNames.push(this.outputNames[e]+"_loss"))}}));const s=function(e,t){if(null==e||Array.isArray(e)&&0===e.length)return t.map((e=>[]));let n;if("string"==typeof e||"function"==typeof e)n=[e];else{if(!Array.isArray(e)&&"object"!=typeof e)throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);n=e}if(Array.isArray(n))return t.map((e=>n));{const e=[];for(const s of t){let t=n.hasOwnProperty(s)?n[s]:[];Array.isArray(t)||(t=[t]),e.push(t)}return e}}(e.metrics,this.outputNames),r=(e,t,n)=>{this.outputNames.length>1&&(t=this.outputNames[e]+"_"+t),this.metricsNames.push(t),this.metricsTensors.push([n,e])};Fb("metric",(()=>{for(let e=0;e{let n,s,i;for(const a of t){if("string"==typeof a&&-1!==["accuracy","acc","crossentropy","ce"].indexOf(a)){const t=this.internalOutputShapes[e];let r;1===t[t.length-1]||this.lossFunctions[e]===Nv?-1!==["accuracy","acc"].indexOf(a)?s=zv:-1!==["crossentropy","ce"].indexOf(a)&&(s=Lv):this.lossFunctions[e]===Tv?-1!==["accuracy","acc"].indexOf(a)?s=Pv:-1!==["crossentropy","ce"].indexOf(a)&&(s=Vv):-1!==["accuracy","acc"].indexOf(a)?s=Fv:-1!==["crossentropy","ce"].indexOf(a)&&(s=Uv),-1!==["accuracy","acc"].indexOf(a)?r="acc":-1!==["crossentropy","ce"].indexOf(a)&&(r="ce"),i=s,n=""+r}else{const e=jv(a);i=e,n=""+Gv(a)}let t;Fb(n,(()=>{t=i})),r(e,n,t)}})(s[e])}})),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){null!=this.collectedTrainableWeights&&(this.trainableWeights.length,this.collectedTrainableWeights.length)}evaluate(e,t,n={}){const s=null==n.batchSize?32:n.batchSize;cx(s);const r=this.standardizeUserDataXY(e,t,!0,s);try{const e=r[0].concat(r[1]);this.makeTestFunction();const t=this.testFunction;return ib(this.testLoop(t,e,s,n.verbose,n.steps))}finally{mx(r[0],e),mx(r[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),async function(e,t,n){const s=null!=(n=n||{}).batches,r=e.testFunction;let i=[];if(n.verbose>0)throw new Jy("Verbose mode is not implemented yet.");Gt(!s||n.batches>0&&Number.isInteger(n.batches),(()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`));const a="function"==typeof t.next?t:await t.iterator();let o=0,l=0;for(;!s||l{if(t.value){const{xs:n,ys:s}=ax(e,t.value),a=n.concat(s),u=Ao((()=>r(a)));if(Co(a),0===l)for(let e=0;eDl(i[e],Fl(c,t)))),l>0&&Co(n)}Co(u),o+=c,++l}return i})),t.done)break}for(let e=0;ee.name));for(let s=0;s0){const n=[];throw t.forEach(((t,s)=>{null==t&&n.push(e[s])})),new Qy(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(n)}`)}return t}predictLoop(e,t=32,n=!1){return Ao((()=>{const s=this.checkNumSamples(e);if(n)throw new Jy("Verbose predictLoop() is not implemented yet.");const r=px(s,t),i=this.outputs.map((e=>[]));for(let t=0;t{const n=r[t][0],s=r[t][1],i=hx(e,n,s),a=[];if(Array.isArray(i))for(let e=0;ei[t].push(e)))}return ib(i.map((e=>Oc(e,0))))}))}predict(e,t={}){const n=fx(e);wx(n,this.inputNames,this.feedInputShapes,!1);try{const e=null==t.batchSize?32:t.batchSize;return cx(e),this.predictLoop(n,e)}finally{mx(n,e)}}predictOnBatch(e){wx(e,this.inputNames,this.feedInputShapes,!0);const t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,s){if(null==this.optimizer_)throw new Yy("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");const r=[];for(let e=0;ee.shape[0])));s.sort();const r=fb(t.map((e=>e.shape[0])));if(r.sort(),s.length>1)throw new Qy(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map((e=>e.shape)))}`);if(r.length>1)throw new Qy(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map((e=>e.shape)))}`);if(s.length>0&&r.length>0&&!$t(s,r))throw new Qy(`Input Tensors should have the same number of samples as target Tensors. Found ${s[0]} input sample(s) and ${r[0]} target sample(s).`)}(e=bx(e,this.feedInputNames,this.feedInputShapes,!1,"input"),t=bx(t,this.feedOutputNames,r,!1,"target")),function(e,t,n){const s=[kv,Nv,Iv];for(let r=0;r0&&e[0].shape[0]%s!=0)throw new Qy(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${s}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,s,r=!0,i){const[a,o]=this.standardizeUserDataXY(e,t,r,i);if(null!=n)throw new Error("sample weight is not supported yet.");let l=null;if(null!=s){const e=sx(s,this.outputNames);l=[];for(let t=0;t{const i=this.checkNumSamples(t,n,r,"steps"),a=[];if(s>0)throw new Jy("Verbose mode is not implemented yet.");if(null!=r)throw new Jy("steps mode in testLoop() is not implemented yet");{const s=px(i,n),r=Mp(Gb(0,i));for(let n=0;n1){r+=`_${rb(e.slice(0,n),s)}`}t.push(r)}return t}makeTrainFunction(){return e=>{const t=[],n=e.slice(0,this.inputs.length),s=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+2*this.outputs.length),i=[],a=this.collectedTrainableWeights.map((e=>e.read()));return[this.optimizer_.minimize((()=>{const e=[];for(let t=0;t1&&e{l=Dl(l,e)})),l}),!0,a)].concat(i)}}makeTestFunction(){this.testFunction=e=>Ao((()=>{const t=[];let n;const s=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),i=[];for(let e=0;e0){if(g=!0,2!==n.validationData.length)throw 3===n.validationData.length?new Jy("validationData including sample weights is not supported yet."):new Qy(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${n.validationData} is invalid.`);o=n.validationData[0],l=n.validationData[1];const e=!0,t=await this.standardizeUserData(o,l,null,null,e,d);u=t[0],c=t[1],m=u.concat(c)}else if(null!=n.validationSplit&&n.validationSplit>0&&n.validationSplit<1){g=!0;const e=Math.floor(s[0].shape[0]*(1-n.validationSplit)),t=s[0].shape[0];u=hx(s,e,t),i=s,s=hx(s,0,e),c=hx(r,e,t),a=r,r=hx(r,0,e),m=u.concat(c)}else null!=n.validationSteps&&(g=!0);const y=s.concat(r).concat(h);this.checkTrainableWeightsConsistency();const b=this.makeTrainFunction(),w=this.getDedupedMetricsNames();let v,x;g?(this.makeTestFunction(),v=this.testFunction,x=w.slice().concat(w.map((e=>"val_"+e)))):(v=null,m=[],x=w.slice());const A=wv(n.callbacks,n.yieldEvery);return await this.fitLoop(b,y,w,d,n.epochs,n.verbose,A,v,m,n.shuffle,x,n.initialEpoch,null,null)}finally{this.isTraining=!1,mx(s,e),mx(r,t),mx(i,e),mx(a,t),mx(u,o),mx(c,l),null!=h&&Co(h)}}async fitLoop(e,t,n,s,r,i,a,o,l,u,c,h,d,p){null==s&&(s=32),null==r&&(r=1),null==u&&(u=!0),null==h&&(h=0);let f=!1;if(null!=o&&null!=l&&(f=!0),null!=p&&(f=!0,null==d))throw new Qy("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");const m=this.checkNumSamples(t,s,d,"steps_per_epoch");let g;null!=m&&(g=Gb(0,m)),null==i&&(i=1);const{callbackList:y,history:b}=xv(a,i,r,h,m,d,s,f,c);y.setModel(this),this.history=b,await y.onTrainBegin(),this.stopTraining_=!1;for(let i=h;i{const h=a[u][0],d=a[u][1],p=Xb(i,h,d-h);c.batch=u,c.size=d-h;const m=dx(t,p),g=e(m);for(let e=0;eob(e)))}else{const t=Object.keys(this.loss);e={};const n=this.loss;for(const s of t){if("string"!=typeof n[s])throw new Error("Serialization of non-string loss is not supported.");e[s]=ob(n[s])}}return e}getMetricIdentifiers(){if("string"==typeof this.metrics||"function"==typeof this.metrics)return[ob(Gv(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map((e=>ob(Gv(e))));{const e={};for(const t in this.metrics)e[t]=ob(Gv(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(null!=e.weighted_metrics)throw new Error("Loading weight_metrics is not supported yet.");if(null!=e.loss_weights)throw new Error("Loading loss_weights is not supported yet.");if(null!=e.sample_weight_mode)throw new Error("Loading sample_weight_mode is not supported yet.");const t=Av(Qv(e.optimizer_config));let n,s;if("string"==typeof e.loss)n=lb(e.loss);else if(Array.isArray(e.loss))n=e.loss.map((e=>lb(e)));else if(null!=e.loss){n={};for(const t in e.loss)n[t]=lb(e.loss[t])}if(Array.isArray(e.metrics))s=e.metrics.map((e=>lb(e)));else if(null!=e.metrics){s={};for(const t in e.metrics)s[t]=lb(e.metrics[t])}this.compile({loss:n,metrics:s,optimizer:t})}async save(e,t){if("string"==typeof e){const t=$o(e);if(0===t.length)throw new Qy(`Cannot find any save handlers for URL '${e}'`);if(t.length>1)throw new Qy(`Found more than one (${t.length}) save handlers for URL '${e}'`);e=t[0]}if(null==e.save)throw new Qy("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");const n=await Io(this.getNamedWeights(t)),s={modelTopology:this.toJSON(null,!1),format:"layers-model",generatedBy:`TensorFlow.js tfjs-layers v${ex}`,convertedBy:null};if(null!=t&&t.includeOptimizer&&null!=this.optimizer){s.trainingConfig=this.getTrainingConfig();const e="optimizer",{data:t,specs:r}=await Io(await this.optimizer.getWeights(),e);n.specs.push(...r),n.data=Lo([n.data,t])}if(null!=this.userDefinedMetadata){const e=!0;qv(this.userDefinedMetadata,this.name,e),s.userDefinedMetadata=this.userDefinedMetadata}return s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){qv(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}}vx.className="Model",Hl(vx);class xx extends vx{}xx.className="Functional",Hl(xx);class Ax extends vx{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=null!=e.name?e.name:kb("sequential_"),null!=e.layers)for(const t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some((e=>e<0)))throw new Qy(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){const t=e instanceof Ax||e instanceof vx;let n;if(t){if(n=e,1!==n.outputs.length)throw new Qy("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(1!==n.inputs.length)throw new Qy("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(0===this.outputs.length){if(0===e.inboundNodes.length){if(null==e.batchInputShape)throw new Qy("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");const t=function(e){if(null==e.batchShape&&null==e.shape)throw new Error("Please provide to Input either a `shape` or a `batchShape` argument. Note that `shape` does not include the batch dimension.");if(null!=e.batchShape&&null!=e.shape)throw new Qy("Please provide either a `shape` or `batchShape` argument to Input, but not both.");let t=e.batchShape;null!=e.shape&&null==t&&(t=[null].concat(e.shape));let n=e.dtype;return null==n&&(n="float32"),new Kw({batchInputShape:t,name:e.name,dtype:n,sparse:e.sparse}).inboundNodes[0].outputTensors[0]}({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(t)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(1!==e.inboundNodes.length)throw new Qy(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(1!==e.inboundNodes[0].outputTensors.length)throw new Qy("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=Hw(this.outputs[0])}this.inboundNodes=[],new jw({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:nb(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map((e=>e.shape)),outputShapes:this.outputs[0].shape})}else{const t=e.apply(this.outputs[0]);if(Array.isArray(t))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[t],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(0===this.layers.length)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),0===this.layers.length)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{const e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return null==this.model&&this.build(),this.model.call(e,t)}build(e){if(Mw(e),0===this.inputs.length||0===this.outputs.length)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new vx({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,n=console.log){this.built||this.build(),super.summary(e,t,n)}setWeights(e){null==this.model&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new Yy("The model needs to be compiled before being used.");return this.model.evaluate(e,t,n)}async evaluateDataset(e,t){if(!this.built)throw new Yy("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return null==this.model&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return null==this.model&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return null==this.model?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new Yy("The model needs to be compiled before being used.");return this.model.fit(e,t,n)}async fitDataset(e,t){if(!this.built)throw new Yy("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,n={},s=!1){let r,i={};if(t instanceof Array){if(null==t[0].className||"Merge"===t[0].className)throw new Qy("Legacy serialization format not supported yet.");r=t}else Gt(null!=t.layers,(()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field.")),r=t.layers,delete t.layers,i=t;const a=new e(i);if(!(a instanceof Ax))throw new Jy(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(const e of r){const t=Av(e,void 0,s);s&&t.setFastWeightInitDuringBuild(!0),a.add(t)}return a}set stopTraining(e){if(null==this.model)throw new Qy("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(null==this.model)throw new Qy("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){const e=[];for(const t of this.layers){const n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}}Ax.className="Sequential",Hl(Ax);class Cx extends Gl{getConfig(){return{}}}class kx extends Cx{apply(e,t=1){return function(e,t=1){if(1!==t)throw new Jy(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return vh(e)}(e,t)}}kx.className="elu",Hl(kx);class Sx extends Cx{apply(e){return dp(e)}}Sx.className="selu",Hl(Sx);class _x extends Cx{apply(e){return sp(e)}}_x.className="relu",Hl(_x);class Ex extends Cx{apply(e){return Ao((()=>Ad(6,sp(e))))}}Ex.className="relu6",Hl(Ex);class Ix extends Cx{apply(e){return e}}Ix.className="linear",Hl(Ix);class Tx extends Cx{apply(e){return Mc(e)}}Tx.className="sigmoid",Hl(Tx);class Nx extends Cx{apply(e){return function(e){return Ao((()=>{const t=Dl(.5,Fl(.2,e));return $c(t,0,1)}))}(e)}}Nx.className="hardSigmoid",Hl(Nx);class Rx extends Cx{apply(e){return rd(e)}}Rx.className="softplus",Hl(Rx);class Ox extends Cx{apply(e){return function(e){return Ao((()=>zl(e,Dl(eu(e),1))))}(e)}}Ox.className="softsign",Hl(Ox);class Dx extends Cx{apply(e){return Fc(e)}}Dx.className="tanh",Hl(Dx);class Mx extends Cx{apply(e,t=-1){return Ap(e,t)}}Mx.className="softmax",Hl(Mx);class zx extends Cx{apply(e,t=-1){return ad(e,t)}}zx.className="logSoftmax",Hl(zx);class Fx extends Cx{apply(e){return Ao((()=>Ao((()=>{const t=Math.sqrt(2),n=Fl(.5,Dl(1,Ah(zl(e,t))));return Fl(e,n)}))))}}Fx.className="gelu",Hl(Fx);class Bx extends Cx{apply(e){return Ao((()=>Fl(.5,Fl(e,Dl(1,Fc(Fl(Bl(zl(2,Math.PI)),Dl(e,Fl(.044715,Yl(e,3))))))))))}}Bx.className="gelu_new",Hl(Bx);class Lx extends Cx{apply(e){return Ao((()=>Fl(e,Fc(rd(e)))))}}Lx.className="mish",Hl(Lx);class Px extends Cx{apply(e,t=1){return Ao((()=>Fl(Mc(Fl(e,t)),e)))}}function Ux(e){return e.getClassName()}function Vx(e,t={}){return db(e,ql.getMap().classNameMap,t,"activation")}function Wx(e){if(null==e){const e={className:"linear",config:{}};return Vx(e)}if("string"==typeof e){const t={};return t.className=e,t.config={},Vx(t)}return e instanceof Cx?e:Vx(e)}function jx(e){if(null!=e&&"object"!=typeof e)throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}Px.className="swish",Hl(Px);class Gx extends Gl{}class qx extends Gx{constructor(e){super(),jx(e),this.l1=null==e||null==e.l1?.01:e.l1,this.l2=null==e||null==e.l2?.01:e.l2,this.hasL1=0!==this.l1,this.hasL2=0!==this.l2}apply(e){return Ao((()=>{let t=wd([1]);return this.hasL1&&(t=Dl(t,Dh(Fl(this.l1,eu(e))))),this.hasL2&&(t=Dl(t,Dh(Fl(this.l2,rw(e))))),Tc(t,[])}))}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}}qx.className="L1L2",Hl(qx);const Hx={l1l2:"L1L2"};function Kx(e){return cb(e)}function $x(e,t={}){return db(e,ql.getMap().classNameMap,t,"regularizer")}function Xx(e){if(null==e)return null;if("string"==typeof e){return $x({className:e in Hx?Hx[e]:e,config:{}})}return e instanceof Gx?e:$x(e)}class Zx extends qw{constructor(e){super(null==e?{}:e),this.supportsMasking=!0,null!=e&&(this.maxValue=e.maxValue)}call(e,t){e=Dw(e);let n=sp(e);return null!=this.maxValue&&(n=$c(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){const e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}}Zx.className="ReLU",Hl(Zx);class Yx extends qw{constructor(e){super(null==e?{}:e),this.DEFAULT_ALPHA=.3,null==e&&(e={}),this.alpha=null==e.alpha?this.DEFAULT_ALPHA:e.alpha}call(e,t){const n=Dw(e);return Zh(n,this.alpha)}computeOutputShape(e){return e}getConfig(){const e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}}Yx.className="LeakyReLU",Hl(Yx);class Qx extends qw{constructor(e){if(super(null==e?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",null==e&&(e={}),this.supportsMasking=!0,this.alphaInitializer=Nw(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Xx(e.alphaRegularizer),this.alphaConstraint=cv(e.alphaConstraint),null==e.sharedAxes)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else{if("number"!=typeof e.sharedAxes)throw new Qy(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`);this.sharedAxes=[e.sharedAxes]}}build(e){const t=(e=Mw(e)).slice(1);if(null!=this.sharedAxes)for(const e of this.sharedAxes)t[e-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);const n={};if(null!=this.sharedAxes)for(let t=1;t{let n=Dw(e);const s=t.mask;if(null!=s){const e=Fl(Ql(vd(n.shape),Nl(s,n.dtype)),Vl(-1e9));n=Dl(n,e)}return this.axis instanceof Array?this.axis.length>1?Bh(Ql(n,od(n,this.axis,!0))):this.softmax(n,this.axis[0]):this.softmax(n,this.axis)}))}computeOutputShape(e){return e}getConfig(){const e={axis:this.axis},t=super.getConfig();return Object.assign(e,t),e}}function nA(e,t,n){if("number"==typeof e)return nb(e,t);if(e.length!==t)throw new Qy(`The ${n} argument must be an integer or tuple of ${t} integers. Received: ${e.length} elements.`);for(let r=0;r(Rb(t),"channelsFirst"===t?Jp(e,[0,2,3,1]):e)))}function aA(e,t){return Ao((()=>(Rb(t),"channelsFirst"===t?Jp(e,[0,2,3,4,1]):e)))}function oA(e,t,n,s=1,r="valid",i,a=1){return Ao((()=>{if(null==i&&(i="channelsLast"),Rb(i),3!==e.shape.length)throw new Qy(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(3!==t.shape.length)throw new Qy(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(null!=n&&1!==n.shape.length)throw new Qy(`The bias for a conv1dWithBias operation should be 1, but is ${n.shape.length} instead`);if("channelsFirst"===i&&(e=Jp(e,[0,2,1])),"causal"===r)throw new Jy("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=eh(e,t,s,"same"===r?"same":"valid","NWC",a);return null!=n&&(o=aw(o,n)),o}))}function lA(e,t,n,s=[1,1],r="valid",i,a,o=null){return Ao((()=>{if(null==i&&(i="channelsLast"),Rb(i),3!==e.rank&&4!==e.rank)throw new Qy(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(3!==t.rank&&4!==t.rank)throw new Qy(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=iA(e,i);if("causal"===r)throw new Jy("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=ff({x:l,filter:t,strides:s,pad:"same"===r?"same":"valid",dilations:a,dataFormat:"NHWC",bias:n,activation:o}),"channelsFirst"===i&&(l=Jp(l,[0,3,1,2])),l}))}function uA(e,t,n,s=[1,1,1],r="valid",i,a){return Ao((()=>{if(null==i&&(i="channelsLast"),Rb(i),4!==e.rank&&5!==e.rank)throw new Qy(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(4!==t.rank&&5!==t.rank)throw new Qy(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=aA(e,i);if("causal"===r)throw new Jy("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=sh(o,t,s,"same"===r?"same":"valid","NDHWC",a),null!=n&&(o=aw(o,n)),"channelsFirst"===i&&(o=Jp(o,[0,4,1,2,3])),o}))}tA.className="Softmax",Hl(tA);class cA extends qw{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",cA.verifyArgs(t),this.rank=e,bb(this.rank,"rank"),1!==this.rank&&2!==this.rank&&3!==this.rank)throw new Jy(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=nA(t.kernelSize,e,"kernelSize"),this.strides=nA(null==t.strides?1:t.strides,e,"strides"),this.padding=null==t.padding?"valid":t.padding,Ob(this.padding),this.dataFormat=null==t.dataFormat?"channelsLast":t.dataFormat,Rb(this.dataFormat),this.activation=Wx(t.activation),this.useBias=null==t.useBias||t.useBias,this.biasInitializer=Nw(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=cv(t.biasConstraint),this.biasRegularizer=Xx(t.biasRegularizer),this.activityRegularizer=Xx(t.activityRegularizer),this.dilationRate=nA(null==t.dilationRate?1:t.dilationRate,e,"dilationRate"),1===this.rank&&Array.isArray(this.dilationRate)&&1!==this.dilationRate.length)throw new Qy(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(2===this.rank){if("number"==typeof this.dilationRate)this.dilationRate=[this.dilationRate,this.dilationRate];else if(2!==this.dilationRate.length)throw new Qy(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(3===this.rank)if("number"==typeof this.dilationRate)this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(3!==this.dilationRate.length)throw new Qy(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}static verifyArgs(e){if(sb("kernelSize"in e,"required key 'kernelSize' not in config"),"number"!=typeof e.kernelSize&&!yb(e.kernelSize,"number",1,3))throw new Qy(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){const e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:Ux(this.activation),useBias:this.useBias,biasInitializer:Tw(this.biasInitializer),biasRegularizer:Kx(this.biasRegularizer),activityRegularizer:Kx(this.activityRegularizer),biasConstraint:lv(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}class hA extends cA{constructor(e,t){super(e,t),this.kernel=null,hA.verifyArgs(t),this.filters=t.filters,bb(this.filters,"filters"),this.kernelInitializer=Nw(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=cv(t.kernelConstraint),this.kernelRegularizer=Xx(t.kernelRegularizer)}build(e){e=Mw(e);const t="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[t])throw new Qy(`The channel dimension of the input should be defined. Found ${e[t]}`);const n=e[t],s=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",s,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:n}}],this.built=!0}call(e,t){return Ao((()=>{let t;e=Dw(e);const n=null==this.bias?null:this.bias.read(),s=vb(this.activation.getClassName());if(null!=s&&2===this.rank)t=lA(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(1===this.rank)t=oA(e,this.kernel.read(),n,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(2===this.rank)t=lA(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else{if(3!==this.rank)throw new Jy("convolutions greater than 3D are not implemented yet.");t=uA(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate)}null!=this.activation&&(t=this.activation.apply(t))}return t}))}computeOutputShape(e){e=Mw(e);const t=[],n="channelsLast"===this.dataFormat?e.slice(1,e.length-1):e.slice(2);for(let e=0;e 0 but got ${JSON.stringify(e.filters)}`)}}class dA extends hA{constructor(e){super(2,e),dA.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if("number"!=typeof e.kernelSize&&!yb(e.kernelSize,"number",1,2))throw new Qy(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}}dA.className="Conv2D",Hl(dA);class pA extends hA{constructor(e){super(3,e),pA.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if("number"!=typeof e.kernelSize&&(!Array.isArray(e.kernelSize)||1!==e.kernelSize.length&&3!==e.kernelSize.length))throw new Qy(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}}pA.className="Conv3D",Hl(pA);class fA extends dA{constructor(e){if(super(e),this.inputSpec=[new Uw({ndim:4})],"same"!==this.padding&&"valid"!==this.padding)throw new Qy(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(4!==(e=Mw(e)).length)throw new Qy("Input should have rank 4; Received input shape: "+JSON.stringify(e));const t="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[t])throw new Qy("The channel dimension of the inputs should be defined. Found `None`.");const n=e[t],s=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",s,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new Uw({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return Ao((()=>{let t=Dw(e);if(4!==t.shape.length)throw new Qy(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${t.shape.length}`);const n=t.shape,s=n[0];let r,i;"channelsFirst"===this.dataFormat?(r=2,i=3):(r=1,i=2);const a=n[r],o=n[i],l=this.kernelSize[0],u=this.kernelSize[1],c=this.strides[0],h=this.strides[1],d=[s,rA(a,c,l,this.padding),rA(o,h,u,this.padding),this.filters];"channelsLast"!==this.dataFormat&&(t=Jp(t,[0,2,3,1]));let p=nh(t,this.kernel.read(),d,this.strides,this.padding);return"channelsLast"!==this.dataFormat&&(p=Jp(p,[0,3,1,2])),null!=this.bias&&(p=aw(p,this.bias.read(),this.dataFormat)),null!=this.activation&&(p=this.activation.apply(p)),p}))}computeOutputShape(e){const t=(e=Mw(e)).slice();let n,s,r;"channelsFirst"===this.dataFormat?(n=1,s=2,r=3):(n=3,s=1,r=2);const i=this.kernelSize[0],a=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[s]=rA(t[s],o,i,this.padding),t[r]=rA(t[r],l,a,this.padding),t}getConfig(){const e=super.getConfig();return delete e.dilationRate,e}}fA.className="Conv2DTranspose",Hl(fA);class mA extends pA{constructor(e){if(super(e),this.inputSpec=[new Uw({ndim:5})],"same"!==this.padding&&"valid"!==this.padding)throw new Qy(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(5!==(e=Mw(e)).length)throw new Qy("Input should have rank 5; Received input shape: "+JSON.stringify(e));const t="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[t])throw new Qy("The channel dimension of the inputs should be defined. Found `None`.");const n=e[t],s=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",s,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new Uw({ndim:5,axes:{[t]:n}})],this.built=!0}call(e,t){return Ao((()=>{let t=Dw(e);if(5!==t.shape.length)throw new Qy(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${t.shape.length}`);const n=t.shape,s=n[0];let r,i,a;"channelsFirst"===this.dataFormat?(a=2,r=3,i=4):(a=1,r=2,i=3);const o=n[a],l=n[r],u=n[i],c=this.kernelSize[0],h=this.kernelSize[1],d=this.kernelSize[2],p=this.strides[0],f=this.strides[1],m=this.strides[2],g=[s,rA(o,p,c,this.padding),rA(l,f,h,this.padding),rA(u,m,d,this.padding),this.filters];"channelsLast"!==this.dataFormat&&(t=Jp(t,[0,2,3,4,1]));let y=ih(t,this.kernel.read(),g,this.strides,this.padding);return"channelsLast"!==this.dataFormat&&(y=Jp(y,[0,4,1,2,3])),null!==this.bias&&(y=aw(y,this.bias.read(),this.dataFormat)),null!==this.activation&&(y=this.activation.apply(y)),y}))}computeOutputShape(e){const t=(e=Mw(e)).slice();let n,s,r,i;"channelsFirst"===this.dataFormat?(n=1,s=2,r=3,i=4):(n=4,s=1,r=2,i=3);const a=this.kernelSize[0],o=this.kernelSize[1],l=this.kernelSize[2],u=this.strides[0],c=this.strides[1],h=this.strides[2];return t[n]=this.filters,t[s]=rA(t[s],u,a,this.padding),t[r]=rA(t[r],c,o,this.padding),t[i]=rA(t[i],h,l,this.padding),t}getConfig(){const e=super.getConfig();return delete e.dilationRate,e}}mA.className="Conv3DTranspose",Hl(mA);class gA extends hA{constructor(e,t){if(super(e,t),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,null==t.filters)throw new Qy("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(null!=t.kernelInitializer||null!=t.kernelRegularizer||null!=t.kernelConstraint)throw new Qy("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(null!=t.padding&&"same"!==t.padding&&"valid"!==t.padding)throw new Qy(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=null==t.depthMultiplier?1:t.depthMultiplier,this.depthwiseInitializer=Nw(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Xx(t.depthwiseRegularizer),this.depthwiseConstraint=cv(t.depthwiseConstraint),this.pointwiseInitializer=Nw(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Xx(t.pointwiseRegularizer),this.pointwiseConstraint=cv(t.pointwiseConstraint)}build(e){if((e=Mw(e)).length{let t;if(e=Dw(e),1===this.rank)throw new Jy("1D separable convolution is not implemented yet.");return 2===this.rank&&("channelsFirst"===this.dataFormat&&(e=Jp(e,[0,2,3,1])),t=pp(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(t=aw(t,this.bias.read(),this.dataFormat)),null!=this.activation&&(t=this.activation.apply(t)),"channelsFirst"===this.dataFormat&&(t=Jp(t,[0,3,1,2])),t}))}getConfig(){const e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Tw(this.depthwiseInitializer),e.pointwiseInitializer=Tw(this.pointwiseInitializer),e.depthwiseRegularizer=Kx(this.depthwiseRegularizer),e.pointwiseRegularizer=Kx(this.pointwiseRegularizer),e.depthwiseConstraint=lv(this.depthwiseConstraint),e.pointwiseConstraint=lv(this.pointwiseConstraint),e}}gA.className="SeparableConv";class yA extends gA{constructor(e){super(2,e)}}yA.className="SeparableConv2D",Hl(yA);class bA extends hA{constructor(e){super(1,e),bA.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){const e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if("number"!=typeof e.kernelSize&&!yb(e.kernelSize,"number",1,1))throw new Qy(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}}bA.className="Conv1D",Hl(bA);class wA extends qw{constructor(e){super(e),"number"==typeof e.cropping?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:"number"==typeof e.cropping[0]?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=void 0===e.dataFormat?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return"channelsFirst"===this.dataFormat?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return Ao((()=>{if(e=Dw(e),"channelsLast"===this.dataFormat){const t=Yb(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Yb(t,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}{const t=Yb(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Yb(t,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}}))}getConfig(){const e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}wA.className="Cropping2D",Hl(wA);class vA extends qw{constructor(e){var t;super(e),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=null==e.size?this.DEFAULT_SIZE:e.size,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Rb(this.dataFormat),this.interpolation=null==e.interpolation?"nearest":e.interpolation,t=this.interpolation,gb(_b,"InterpolationFormat",t)}computeOutputShape(e){if("channelsFirst"===this.dataFormat){const t=null==e[2]?null:this.size[0]*e[2],n=null==e[3]?null:this.size[1]*e[3];return[e[0],e[1],t,n]}{const t=null==e[1]?null:this.size[0]*e[1],n=null==e[2]?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return Ao((()=>{let t=Dw(e);const n=t.shape;if("channelsFirst"===this.dataFormat){t=Jp(t,[0,2,3,1]);const e=this.size[0]*n[2],s=this.size[1]*n[3],r="nearest"===this.interpolation?bm.resizeNearestNeighbor(t,[e,s]):bm.resizeBilinear(t,[e,s]);return Jp(r,[0,3,1,2])}{const e=this.size[0]*n[1],s=this.size[1]*n[2];return"nearest"===this.interpolation?bm.resizeNearestNeighbor(t,[e,s]):bm.resizeBilinear(t,[e,s])}}))}getConfig(){const e={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},t=super.getConfig();return Object.assign(e,t),e}}vA.className="UpSampling2D",Hl(vA);class xA extends cA{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=null==e.depthMultiplier?1:e.depthMultiplier,this.depthwiseInitializer=Nw(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=cv(e.depthwiseConstraint),this.depthwiseRegularizer=Xx(e.depthwiseRegularizer)}build(e){if((e=Mw(e)).length<4)throw new Qy(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);const t="channelsFirst"===this.dataFormat?1:3;if(null==e[t]||e[t]<0)throw new Qy(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);const n=e[t],s=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",s,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return Ao((()=>{let t=function(e,t,n=[1,1],s="valid",r,i){return Ao((()=>{null==r&&(r="channelsLast"),Rb(r);let a=iA(e,r);if(4!==e.rank)throw new Qy(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(4!==t.rank)throw new Qy(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return a=dh(a,t,n,"same"===s?"same":"valid","NHWC",i),"channelsFirst"===r&&(a=Jp(a,[0,3,1,2])),a}))}(e=Dw(e),this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(t=aw(t,this.bias.read(),this.dataFormat)),null!=this.activation&&(t=this.activation.apply(t)),t}))}computeOutputShape(e){e=Mw(e);const t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2],s="channelsFirst"===this.dataFormat?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,r=sA(t,this.kernelSize[0],this.padding,this.strides[0]),i=sA(n,this.kernelSize[1],this.padding,this.strides[1]);return"channelsFirst"===this.dataFormat?[e[0],s,r,i]:[e[0],r,i,s]}getConfig(){const e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Tw(this.depthwiseInitializer),e.depthwiseRegularizer=Kx(this.depthwiseRegularizer),e.depthwiseConstraint=lv(this.depthwiseRegularizer),e}}function AA(e,t,n,s){if(Array.isArray(e)){if(null!=t||null!=n)throw new Qy("When inputs is an array, neither initialState or constants should be provided");null!=s&&(n=e.slice(e.length-s,e.length),e=e.slice(0,e.length-s)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function r(e){return null==e||Array.isArray(e)?e:[e]}return{inputs:e,initialState:t=r(t),constants:n=r(n)}}function CA(e,t,n,s=!1,r,i,a=!1,o=!1){return Ao((()=>{const a=t.shape.length;if(a<3)throw new Qy(`Input should be at least 3D, but is ${a}D.`);const l=[1,0].concat(Gb(2,a));if(t=Jp(t,l),null!=i)throw new Jy("The rnn() functoin of the deeplearn.js backend does not support constants yet.");null!=r&&((r=Nl(Nl(r,"bool"),"float32")).rank===a-1&&(r=Lh(r,-1)),r=Jp(r,l)),s&&(t=ip(t,0),null!=r&&(r=ip(r,0)));const u=[];let c,h=n;const d=t.shape[0],p=Kp(t);let f,m;null!=r&&(f=Kp(r));for(let t=0;te(n,h)));if(null==r)c=s[0],h=s[1];else{const e=Ao((()=>{const e=f[t],n=Ql(Nd(e),e);return{output:Dl(Fl(s[0],e),Fl(h[0],n)),newStates:h.map(((t,r)=>Dl(Fl(s[1][r],e),Fl(t,n))))}}));c=e.output,h=e.newStates}o&&u.push(c)}if(o){m=Np(u,1)}return[c,m,h]}))}xA.className="DepthwiseConv2D",Hl(xA);class kA extends qw{constructor(e){let t;if(super(e),null==e.cell)throw new Qy("cell property is missing for the constructor of RNN.");if(t=Array.isArray(e.cell)?new OA({cells:e.cell}):e.cell,null==t.stateSize)throw new Qy("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=null!=e.returnSequences&&e.returnSequences,this.returnState=null!=e.returnState&&e.returnState,this.goBackwards=null!=e.goBackwards&&e.goBackwards,this._stateful=null!=e.stateful&&e.stateful,this.unroll=null!=e.unroll&&e.unroll,this.supportsMasking=!0,this.inputSpec=[new Uw({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(null==this.states_){return Gb(0,Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1).map((e=>null))}return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Rw(e)&&(e=e[0]);let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);const n=t[0];let s;if(s=this.returnSequences?[e[0],e[1],n]:[e[0],n],this.returnState){const n=[];for(const s of t)n.push([e[0],s]);return[s].concat(n)}return s}computeMask(e,t){return Ao((()=>{Array.isArray(t)&&(t=t[0]);const e=this.returnSequences?t:null;if(this.returnState){const t=this.states.map((e=>null));return[e].concat(t)}return e}))}get states(){if(null==this.states_){const e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ne.shape[e.shape.length-1])),r))throw new Qy(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=r.map((e=>new Uw({shape:[null,e]})));this.stateful&&this.resetStates()}resetStates(e,t=!1){Ao((()=>{if(!this.stateful)throw new Zy("Cannot call resetStates() on an RNN Layer that is not stateful.");const n=this.inputSpec[0].shape[0];if(null==n)throw new Qy("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(null==this.states_)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((e=>wd([n,e]))):this.states_=[wd([n,this.cell.stateSize])];else if(null==e)Co(this.states_),null!=this.keptStates&&(Co(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((e=>wd([n,e]))):this.states_[0]=wd([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new Qy(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);!0===t?this.keptStates.push(this.states_.slice()):Co(this.states_);for(let t=0;tko(e.clone())))}))}apply(e,t){let n=null==t?null:t.initialState,s=null==t?null:t.constants;null==t&&(t={});const r=AA(e,n,s,this.numConstants);e=r.inputs,n=r.initialState,s=r.constants;let i=[],a=[];if(null!=n){t.initialState=n,i=i.concat(n),this.stateSpec=[];for(const e of n)this.stateSpec.push(new Uw({shape:e.shape}));a=a.concat(this.stateSpec)}null!=s&&(t.constants=s,i=i.concat(s),this.numConstants=s.length);if(i[0]instanceof Vw){const n=[e].concat(i),s=this.inputSpec.concat(a),r=this.inputSpec;this.inputSpec=s;const o=super.apply(n,t);return this.inputSpec=r,o}return super.apply(e,t)}call(e,t){return Ao((()=>{const n=null==t?null:t.mask,s=null==t?null:t.training;let r=null==t?null:t.initialState;e=Dw(e),null==r&&(r=this.stateful?this.states_:this.getInitialState(e));const i=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(r.length!==i)throw new Qy(`RNN Layer has ${i} state(s) but was passed ${r.length} initial state(s).`);this.unroll;const a={training:s},o=CA(((e,t)=>{const n=this.cell.call([e].concat(t),a);return[n[0],n.slice(1)]}),e,r,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],u=o[1],c=o[2];this.stateful&&this.resetStates(c,s);const h=this.returnSequences?u:l;return this.returnState?[h].concat(c):h}))}getInitialState(e){return Ao((()=>{let t=wd(e.shape);return t=Dh(t,[1,2]),t=$b(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map((e=>e>1?ew(t,[1,e]):t)):this.cell.stateSize>1?[ew(t,[1,this.cell.stateSize])]:[t]}))}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),null!=this.cell&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){const e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};null!=this.numConstants&&(t.numConstants=this.numConstants);const n=this.cell.getConfig();return this.getClassName()===kA.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),e),t)}static fromConfig(e,t,n={}){const s=Av(t.cell,n);return new e(Object.assign(t,{cell:s}))}}kA.className="RNN",Hl(kA);class SA extends qw{}class _A extends SA{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,bb(this.units,"units"),this.activation=Wx(null==e.activation?this.DEFAULT_ACTIVATION:e.activation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=Nw(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Nw(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Nw(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Xx(e.kernelRegularizer),this.recurrentRegularizer=Xx(e.recurrentRegularizer),this.biasRegularizer=Xx(e.biasRegularizer),this.kernelConstraint=cv(e.kernelConstraint),this.recurrentConstraint=cv(e.recurrentConstraint),this.biasConstraint=cv(e.biasConstraint),this.dropout=Wb([1,jb([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=Wb([1,jb([0,null==e.recurrentDropout?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Mw(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return Ao((()=>{if(2!==e.length)throw new Qy(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];const s=null!=t.training&&t.training;let r;0Nd(e),rate:this.dropout,training:s,dropoutFunc:this.dropoutFunc})),0Nd(n),rate:this.recurrentDropout,training:s,dropoutFunc:this.dropoutFunc}));const i=this.dropoutMask,a=this.recurrentDropoutMask;r=nw(null!=i?Fl(e,i):e,this.kernel.read()),null!=this.bias&&(r=aw(r,this.bias.read())),null!=a&&(n=Fl(n,a));let o=Dl(r,nw(n,this.recurrentKernel.read()));return null!=this.activation&&(o=this.activation.apply(o)),[o,o]}))}getConfig(){const e=super.getConfig(),t={units:this.units,activation:Ux(this.activation),useBias:this.useBias,kernelInitializer:Tw(this.kernelInitializer),recurrentInitializer:Tw(this.recurrentInitializer),biasInitializer:Tw(this.biasInitializer),kernelRegularizer:Kx(this.kernelRegularizer),recurrentRegularizer:Kx(this.recurrentRegularizer),biasRegularizer:Kx(this.biasRegularizer),activityRegularizer:Kx(this.activityRegularizer),kernelConstraint:lv(this.kernelConstraint),recurrentConstraint:lv(this.recurrentConstraint),biasConstraint:lv(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},e),t)}}_A.className="SimpleRNNCell",Hl(_A);class EA extends kA{constructor(e){e.cell=new _A(e),super(e)}call(e,t){return Ao((()=>{null!=this.cell.dropoutMask&&(Co(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(Co(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const n=null==t?null:t.mask,s=null==t?null:t.training,r=null==t?null:t.initialState;return super.call(e,{mask:n,training:s,initialState:r})}))}static fromConfig(e,t){return new e(t)}}EA.className="SimpleRNN",Hl(EA);class IA extends SA{constructor(e){if(super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new Qy("GRUCell does not support reset_after parameter set to true.");this.units=e.units,bb(this.units,"units"),this.activation=Wx(void 0===e.activation?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Wx(void 0===e.recurrentActivation?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=Nw(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Nw(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Nw(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Xx(e.kernelRegularizer),this.recurrentRegularizer=Xx(e.recurrentRegularizer),this.biasRegularizer=Xx(e.biasRegularizer),this.kernelConstraint=cv(e.kernelConstraint),this.recurrentConstraint=cv(e.recurrentConstraint),this.biasConstraint=cv(e.biasConstraint),this.dropout=Wb([1,jb([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=Wb([1,jb([0,null==e.recurrentDropout?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){const t=(e=Mw(e))[e.length-1];this.kernel=this.addWeight("kernel",[t,3*this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,3*this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[3*this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return Ao((()=>{if(2!==e.length)throw new Qy(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);const n=null!=t.training&&t.training;let s=e[1];e=e[0],0Nd(e),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0Nd(s),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));const r=this.dropoutMask,i=this.recurrentDropoutMask;let a,o,l;0{null!=this.cell.dropoutMask&&(Co(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(Co(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const n=null==t?null:t.mask,s=null==t?null:t.training,r=null==t?null:t.initialState;return super.call(e,{mask:n,training:s,initialState:r})}))}static fromConfig(e,t){return 0===t.implmentation&&(t.implementation=1),new e(t)}}TA.className="GRU",Hl(TA);class NA extends SA{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,bb(this.units,"units"),this.activation=Wx(void 0===e.activation?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Wx(void 0===e.recurrentActivation?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=Nw(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Nw(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Nw(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Xx(e.kernelRegularizer),this.recurrentRegularizer=Xx(e.recurrentRegularizer),this.biasRegularizer=Xx(e.biasRegularizer),this.kernelConstraint=cv(e.kernelConstraint),this.recurrentConstraint=cv(e.recurrentConstraint),this.biasConstraint=cv(e.biasConstraint),this.dropout=Wb([1,jb([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=Wb([1,jb([0,null==e.recurrentDropout?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;const n=(e=Mw(e))[e.length-1];let s;if(this.kernel=this.addWeight("kernel",[n,4*this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,4*this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){if(this.unitForgetBias){const e=this.biasInitializer,n=this.units;s=new((t=class extends hw{apply(t,s){const r=e.apply([n]),i=(new pw).apply([n]),a=e.apply([2*n]);return Jb(Jb(r,i),a)}}).className="CustomInit",t)}else s=this.biasInitializer;this.bias=this.addWeight("bias",[4*this.units],null,s,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return Ao((()=>{const n=null!=t.training&&t.training;if(3!==e.length)throw new Qy(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let s=e[1];const r=e[2];e=e[0],0Nd(e),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0Nd(s),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));const i=this.dropoutMask,a=this.recurrentDropoutMask;let o,l,u,c;0{null!=this.cell.dropoutMask&&(Co(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(Co(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const n=null==t?null:t.mask,s=null==t?null:t.training,r=null==t?null:t.initialState;return super.call(e,{mask:n,training:s,initialState:r})}))}static fromConfig(e,t){return 0===t.implmentation&&(t.implementation=1),new e(t)}}RA.className="LSTM",Hl(RA);class OA extends SA{constructor(e){super(e),this.cells=e.cells}get stateSize(){const e=[];for(const t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return Ao((()=>{let n=e.slice(1);const s=[];for(const e of this.cells.slice().reverse())Array.isArray(e.stateSize)?s.push(n.splice(0,e.stateSize.length)):s.push(n.splice(0,1));s.reverse();const r=[];let i;for(let a=0;a{Fb(`RNNCell_${s}`,(()=>{n.build(e),t=Array.isArray(n.stateSize)?n.stateSize[0]:n.stateSize,e=[e[0],t]}))})),this.built=!0}getConfig(){const e=super.getConfig(),t={cells:this.cells.map((e=>({className:e.getClassName(),config:e.getConfig()})))};return Object.assign(Object.assign({},e),t)}static fromConfig(e,t,n={}){const s=[];for(const e of t.cells)s.push(Av(e,n));return new e({cells:s})}get trainableWeights(){if(!this.trainable)return[];const e=[];for(const t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const e of this.cells)t.push(...e.trainableWeights);return t.concat(e)}return e}getWeights(){const e=[];for(const t of this.cells)e.push(...t.weights);return Lw(e)}setWeights(e){const t=[];for(const n of this.cells){const s=n.weights.length,r=e.splice(s);for(let e=0;enull!=i?i(t(),n):ow(t(),n),o=()=>lw(a,t,s);if(!r||r<=1)return ko(o().clone());return Array(r).fill(void 0).map(o).map((e=>ko(e.clone())))}OA.className="StackedRNNCells",Hl(OA);var MA=function(e,t){var n={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(n[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(s=Object.getOwnPropertySymbols(e);r{if(null!=this.cell.dropoutMask&&(Co(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(Co(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new Qy("ConvRNN2D cell does not support constants");const n=null==t?null:t.mask,s=null==t?null:t.training,r=null==t?null:t.initialState;return super.call(e,{mask:n,training:s,initialState:r})}))}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return Ao((()=>{const{stateSize:t}=this.cell,n=e.shape,s=this.computeSingleOutputShape(n),r=wd([s[0],...s.slice(2)]);return Array.isArray(t)?Array(t.length).fill(r):[r]}))}resetStates(e,t=!1){Ao((()=>{if(!this.stateful)throw new Zy("Cannot call resetStates() on an RNN Layer that is not stateful.");const n=this.inputSpec[0].shape,s=this.computeSingleOutputShape(n),r=[s[0],...s.slice(2)];if(null==n[0])throw new Qy("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(null==this.getStates())Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((()=>wd(r))):this.states_=[wd(r)];else if(null==e)Co(this.states_),null!=this.keptStates&&(Co(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((()=>wd(r))):this.states_[0]=wd(r);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new Qy(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):Co(this.states_);for(let t=0;tko(e.clone())))}))}computeSingleOutputShape(e){const{dataFormat:t,filters:n,kernelSize:s,padding:r,strides:i,dilationRate:a}=this.cell,o="channelsFirst"===t,l=e[o?3:2],u=e[o?4:3],c=sA(l,s[0],r,i[0],a[0]),h=sA(u,s[1],r,i[1],a[1]);return[...e.slice(0,2),...o?[n,c,h]:[c,h,n]]}}zA.className="ConvRNN2D";class FA extends NA{constructor(e){const{filters:t,kernelSize:n,strides:s,padding:r,dataFormat:i,dilationRate:a}=e;super(Object.assign(Object.assign({},e),{units:t})),this.filters=t,bb(this.filters,"filters"),this.kernelSize=nA(n,2,"kernelSize"),this.kernelSize.forEach((e=>bb(e,"kernelSize"))),this.strides=nA(s||1,2,"strides"),this.strides.forEach((e=>bb(e,"strides"))),this.padding=r||"valid",Ob(this.padding),this.dataFormat=i||"channelsLast",Rb(this.dataFormat),this.dilationRate=nA(a||1,2,"dilationRate"),this.dilationRate.forEach((e=>bb(e,"dilationRate")))}build(e){var t;e=Mw(e);const n="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[n])throw new Qy(`The channel dimension of the input should be defined. Found ${e[n]}`);const s=e[n],r=this.kernelSize.concat([s,4*this.filters]);this.kernel=this.addWeight("kernel",r,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);const i=this.kernelSize.concat([this.filters,4*this.filters]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let e;if(this.unitForgetBias){const n=this.biasInitializer,s=this.filters;e=new((t=class extends hw{apply(e,t){return Qb([n.apply([s]),vd([s]),n.apply([2*s])])}}).className="CustomInit",t)}else e=this.biasInitializer;this.bias=this.addWeight("bias",[4*this.filters],null,e,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return Ao((()=>{if(3!==e.length)throw new Qy(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);const n=t.training||!1,s=e[0],r=e[1],i=e[2];0Nd(s),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));const a=this.dropoutMask,o=(e,t,n)=>t&&t[n]?Fl(t[n],e):e;let l=o(s,a,0),u=o(s,a,1),c=o(s,a,2),h=o(s,a,3);0Nd(r),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));const d=this.recurrentDropoutMask;let p=o(r,d,0),f=o(r,d,1),m=o(r,d,2),g=o(r,d,3);const[y,b,w,v]=_p(this.kernel.read(),4,3),[x,A,C,k]=this.useBias?_p(this.bias.read(),4):[null,null,null,null];l=this.inputConv(l,y,x,this.padding),u=this.inputConv(u,b,A,this.padding),c=this.inputConv(c,w,C,this.padding),h=this.inputConv(h,v,k,this.padding);const[S,_,E,I]=_p(this.recurrentKernel.read(),4,3);p=this.recurrentConv(p,S),f=this.recurrentConv(f,_),m=this.recurrentConv(m,E),g=this.recurrentConv(g,I);const T=this.recurrentActivation.apply(Dl(l,p)),N=this.recurrentActivation.apply(Dl(u,f)),R=Dl(Fl(N,i),Fl(T,this.activation.apply(Dl(c,m)))),O=Fl(this.recurrentActivation.apply(Dl(h,g)),this.activation.apply(R));return[O,O,R]}))}getConfig(){const e=super.getConfig(),{units:t}=e,n=MA(e,["units"]),s={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),s)}inputConv(e,t,n,s){const r=Jc(e,t,this.strides,s||"valid","channelsFirst"===this.dataFormat?"NCHW":"NHWC",this.dilationRate);return n?aw(r,n,this.dataFormat):r}recurrentConv(e,t){return Jc(e,t,1,"same","channelsFirst"===this.dataFormat?"NCHW":"NHWC")}}FA.className="ConvLSTM2DCell",Hl(FA);class BA extends zA{constructor(e){const t=new FA(e);super(Object.assign(Object.assign({},e),{cell:t}))}static fromConfig(e,t){return new e(t)}}BA.className="ConvLSTM2D",Hl(BA);class LA extends qw{constructor(e){super(e),this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(null==this.noiseShape)return this.noiseShape;const t=e.shape,n=[];for(let e=0;e{this.invokeCallHook(e,t);const n=Dw(e);if(0ow(n,this.rate,s,this.seed)),(()=>n),e)}return e}))}getConfig(){const e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}}LA.className="Dropout",Hl(LA);class PA extends LA{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){const t=e.shape;return[t[0],1,t[2]]}}PA.className="SpatialDropout1D",Hl(PA);class UA extends qw{constructor(e){if(super(e),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",null==e.batchInputShape&&null==e.inputShape&&null!=e.inputDim){let t=null;null!=e.batchSize&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,bb(this.units,"units"),this.activation=Wx(e.activation),null!=e.useBias&&(this.useBias=e.useBias),this.kernelInitializer=Nw(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=Nw(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=cv(e.kernelConstraint),this.biasConstraint=cv(e.biasConstraint),this.kernelRegularizer=Xx(e.kernelRegularizer),this.biasRegularizer=Xx(e.biasRegularizer),this.activityRegularizer=Xx(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){const t=(e=Mw(e))[e.length-1];null==this.kernel&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){const t=(e=Mw(e)).slice();return t[t.length-1]=this.units,t}call(e,t){return Ao((()=>{this.invokeCallHook(e,t);const n=Dw(e),s=vb(this.activation.getClassName());let r;return null!=s?r=nw(n,this.kernel.read(),s,this.bias?this.bias.read():null):(r=nw(n,this.kernel.read()),null!=this.bias&&(r=aw(r,this.bias.read())),null!=this.activation&&(r=this.activation.apply(r))),r}))}getConfig(){const e={units:this.units,activation:Ux(this.activation),useBias:this.useBias,kernelInitializer:Tw(this.kernelInitializer),biasInitializer:Tw(this.biasInitializer),kernelRegularizer:Kx(this.kernelRegularizer),biasRegularizer:Kx(this.biasRegularizer),activityRegularizer:Kx(this.activityRegularizer),kernelConstraint:lv(this.kernelConstraint),biasConstraint:lv(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}UA.className="Dense",Hl(UA);class VA extends qw{constructor(e){super(e=e||{}),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Mw(e);for(const t of e.slice(1))if(null==t)throw new Qy(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],Vb(e,1)]}call(e,t){return Ao((()=>{this.invokeCallHook(e,t);let n=Dw(e);if("channelsFirst"===this.dataFormat&&n.rank>1){const e=[0];for(let t=2;t{this.invokeCallHook(e,t);const n=Dw(e);return this.activation.apply(n)}))}getConfig(){const e={activation:Ux(this.activation)},t=super.getConfig();return Object.assign(e,t),e}}WA.className="Activation",Hl(WA);class jA extends qw{constructor(e){super(e),this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return Ao((()=>{return e=Dw(e),t=e,n=this.n,Ao((()=>{if(2!==t.shape.length)throw new Qy(`repeat() expects a rank-2 tensor, but received a rank-${t.shape.length} tensor.`);return ew($b(t,1),[1,n,1])}));var t,n}))}getConfig(){const e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}}jA.className="RepeatVector",Hl(jA);class GA extends qw{constructor(e){super(e),this.targetShape=e.targetShape;for(let e=0;e{this.invokeCallHook(e,t);const n=Dw(e),s=n.shape,r=s.slice(0,1).concat(this.fixUnknownDimension(s.slice(1),this.targetShape));return Tc(n,r)}))}getConfig(){const e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}}GA.className="Reshape",Hl(GA);class qA extends qw{constructor(e){if(super(e),null==e.dims)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);const t=Gb(1,e.dims.length+1);if(!$t(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new Uw({ndim:this.dims.length+1})]}computeOutputShape(e){const t=(e=Mw(e)).slice();return this.dims.forEach(((n,s)=>{t[s+1]=e[n]})),t}call(e,t){return Jp(Dw(e),this.dimsIncludingBatch)}getConfig(){const e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}}qA.className="Permute",Hl(qA);class HA extends qw{constructor(e){super(null==e?{}:e),this.supportsMasking=!0,this.maskValue=null!=e?null==e.maskValue?0:e.maskValue:0}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){const n=Dw(e);return ac(Id(n,this.maskValue),-1)}call(e,t){return Ao((()=>{this.invokeCallHook(e,t);const n=Dw(e),s=ac(Id(n,this.maskValue),-1,!0);return Fl(n,Nl(s,n.dtype))}))}}HA.className="Masking",Hl(HA);class KA extends qw{constructor(e){if(super(e),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",null==e.batchInputShape&&null==e.inputShape){let t=null;null!=e.batchSize&&(t=e.batchSize),null==e.inputLength?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(ab(e.inputLength))}this.inputDim=e.inputDim,bb(this.inputDim,"inputDim"),this.outputDim=e.outputDim,bb(this.outputDim,"outputDim"),this.embeddingsInitializer=Nw(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Xx(e.embeddingsRegularizer),this.activityRegularizer=Xx(e.activityRegularizer),this.embeddingsConstraint=cv(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return Ao((()=>this.maskZero?(e=Dw(e),Id(e,Pl(e))):null))}computeOutputShape(e){if(e=Mw(e),null==this.inputLength)return[...e,this.outputDim];const t=ab(this.inputLength);if(t.length!==e.length-1)throw new Qy(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let s=0;s{this.invokeCallHook(e,t);let n=Dw(e);"int32"!==n.dtype&&(n=Kb(n,"int32"));const s=sw(this.embeddings.read(),Tc(n,[n.size]));return Tc(s,Mw(this.computeOutputShape(n.shape)))}))}getConfig(){const e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Tw(this.embeddingsInitializer),embeddingsRegularizer:Kx(this.embeddingsRegularizer),activityRegularizer:Kx(this.activityRegularizer),embeddingsConstraint:lv(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}}KA.className="Embedding",Hl(KA);class $A extends qw{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new Jy}computeElementwiseOpOutputShape(e,t){if(null==e||null==t)return null;if(e.length1)throw new Qy(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=null==e[0]?null:e[0].slice(1);for(let t=1;te.length));-1===e.indexOf(null)&&1===fb(s).length?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return Ao((()=>{if(this.reshapeRequired){const t=[],n=e.map((e=>e.rank));if(-1===n.indexOf(null)){const s=jb(n);for(let n of e){const e=n.rank;for(let t=0;t1){const r=Gb(1,e).concat([0]);t.push(Jp(s,r)),n=!0}else t.push(s)}let s=this.mergeFunction(t);const r=s.rank;if(n)if(null==r){const e=s.shape,t=e[e.length-1],n=[t].concat(e.slice(0,e.length-1));s=Tc(Jp(Tc(s,[-1,t]),[1,0]),n)}else if(r>1){const e=[r-1].concat(Gb(0,r-1));s=Jp(s,e)}return s}}return this.mergeFunction(e)}))}computeOutputShape(e){let t;t=null==e[0]?null:e[0].slice(1);for(let n=1;n{if(null==t)return null;if(!Array.isArray(t))throw new Qy("`mask` should be an Array");if(!Array.isArray(e))throw new Qy("`inputs` should be an Array");if(t.length!==e.length)throw new Qy(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every((e=>null==e)))return null;let n=(t=t.map((e=>null==e?e:Lh(e,0))))[0];for(let e=1;e{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0];for(let n=1;n{let t=e[0];for(let n=1;n1)throw new Qy("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return Ao((()=>Qb(e,this.axis)))}computeOutputShape(e){if(!Array.isArray(e)||!Array.isArray(e[0]))throw new Qy("A `Concatenate` layer should be called on a list of inputs.");const t=e,n=t[0].slice(),s=this.axis<0?n.length+this.axis:this.axis;for(const e of t.slice(1)){if(null==n[s]||null==e[s]){n[s]=null;break}n[s]+=e[s]}return n}computeMask(e,t){if(null==t)return null;if(!Array.isArray(t))throw new Qy("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new Qy("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new Qy(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return Ao((()=>{let n=!0;if(t.forEach((e=>{null==e||(n=!1)})),n)return null;const s=[];for(let n=0;n"A `Dot` layer should be called on a list of exactly 2 inputs."));const t=e[0],n=e[1];if(t.length>3||n.length>3)throw new Jy("Dot layer does not support tensors of 4D or higher rank yet.");const s=this.interpretAxes(t,n);if(t[s[0]]!==n[s[1]])throw new Qy(`Dimension incompatibility: ${t[s[0]]} !== ${n[s[1]]}`)}mergeFunction(e){if(2!==e.length)throw new Qy(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t,n=e[0],s=e[1];return t=Array.isArray(this.axes)?this.axes.map(((t,n)=>tC(t,e[n].shape.length))):[tC(this.axes,n.shape.length),tC(this.axes,s.shape.length)],this.normalize&&(n=Cv(n,t[0]),s=Cv(s,t[1])),function(e,t,n){if(e.shape.length>3||t.shape.length>3)throw new Jy("batchDot is not implemented for tensors of 4D or higher rank yet");if(Gt(e.shape.length>=2,(()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`)),Gt(e.shape.length>=2,(()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`)),"number"==typeof n&&(n=[n,n]),"complex64"===e.dtype||"complex64"===t.dtype)throw new Jy("batchDot is not implemented for complex64-type Tensors yet.");const s=e.shape.length,r=t.shape.length;null==n&&(n=[s-1,r-2]);const i=n;return Ao((()=>{let n,a;if(s>r){n=s-r;const e=[];for(let t=0;ts){n=r-s;const t=[];for(let e=0;e0){let e;e=s>r?s+r-3:s-1;const t=[];for(let s=e;s"A `Dot` layer should be called on a list of exactly 2 inputs."));const t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new Jy("Dot layer does not support tensors of 4D or higher rank yet.");const s=this.interpretAxes(t,n);t.splice(s[0],1),n.splice(s[1],1),n.splice(0,1);const r=t.concat(n);return 1===r.length&&r.push(1),r}computeMask(e,t){return null}getConfig(){const e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}}nC.className="Dot",Hl(nC);class sC extends qw{constructor(e){super(e),this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return Ao((()=>{this.invokeCallHook(e,t);const n=Dw(e);return lw((()=>Dl(tw(n.shape,0,this.stddev),n)),(()=>n),t.training||!1)}))}}sC.className="GaussianNoise",Hl(sC);class rC extends qw{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return Ao((()=>{this.invokeCallHook(e,t);const n=Dw(e);if(this.rate>0&&this.rate<1){return lw((()=>{const e=Math.sqrt(this.rate/(1-this.rate));return Fl(n,tw(n.shape,1,e))}),(()=>n),t.training||!1)}return n}))}}rC.className="GaussianDropout",Hl(rC);class iC extends qw{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Dw(e).shape}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return Ao((()=>{if(this.rate<1&&this.rate>0){const n=this._getNoiseShape(e),s=()=>{const t=Dw(e),s=-1.7580993408473766;let r=qh(Qd(n),this.rate);r=Kb(r,"float32");const i=((1-this.rate)*(1+this.rate*s**2))**-.5,a=-i*s*this.rate,o=Dl(Fl(t,r),Fl(Dl(r,-1),s));return Dl(Fl(o,i),a)};return lw(s,(()=>Dw(e)),t.training||!1)}return e}))}}function aC(e,t,n,s,r,i=.001){let a;if(2===e.rank)a=Uc(e,t,n,s,r,i);else if(3===e.rank)a=Vc(e,t,n,s,r,i);else{if(4!==e.rank)throw new Jy(`batchNormalization is not implemented for array of rank ${e.rank} yet`);a=Wc(e,t,n,s,r,i)}return a}function oC(e,t,n,s,r=.001){return $t(s.slice().sort(),Gb(0,e.rank-1))?function(e,t,n,s,r=.001){return Ao((()=>{const i=Sd(e,s),a=i.mean,o=i.variance;return[aC(e,a,o,n,t,r),a,o]}))}(e,t,n,s,r):function(e,t,n,s,r=.001){return Ao((()=>{const i=Sd(e,s),a=i.mean,o=i.variance,l=[];for(const t of Gb(0,e.rank))-1!==s.indexOf(t)?l.push(1):l.push(e.shape[t]);const u=Tc(a,l),c=Tc(o,l),h=null==t?null:Tc(t,l),d=null==n?null:Tc(n,l);return[aC(e,u,c,d,h,r),a,o]}))}(e,t,n,s,r)}iC.className="AlphaDropout",Hl(iC);class lC extends qw{constructor(e){null==e&&(e={}),super(e),this.supportsMasking=!0,this.axis=null==e.axis?-1:e.axis,this.momentum=null==e.momentum?.99:e.momentum,this.epsilon=null==e.epsilon?.001:e.epsilon,this.center=null==e.center||e.center,this.scale=null==e.scale||e.scale,this.betaInitializer=Nw(e.betaInitializer||"zeros"),this.gammaInitializer=Nw(e.gammaInitializer||"ones"),this.movingMeanInitializer=Nw(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=Nw(e.movingVarianceInitializer||"ones"),this.betaConstraint=cv(e.betaConstraint),this.gammaConstraint=cv(e.gammaConstraint),this.betaRegularizer=Xx(e.betaRegularizer),this.gammaRegularizer=Xx(e.gammaRegularizer)}build(e){e=Mw(e);const t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(null==n)throw new Qy(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new Uw({ndim:e.length,axes:{[t]:n}})];const s=[n];this.scale&&(this.gamma=this.addWeight("gamma",s,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",s,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",s,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",s,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return Ao((()=>{const n=null!=t.training&&t.training,s=Dw(e),r=s.shape,i=r.length,a=Gb(0,i),o=this.axis>=0?this.axis:this.axis+i;a.splice(o,1);const l=nb(1,i);l[o]=r[o];const u=a.slice();u.sort();const c=!$t(u,Gb(0,i).slice(0,i-1));if(!n)return(()=>{if(c){const e=Tc(this.movingMean.read(),l),t=Tc(this.movingVariance.read(),l),n=this.center?Tc(this.beta.read(),l):null,r=this.scale?Tc(this.gamma.read(),l):null;return aC(s,e,t,n,r,this.epsilon)}return aC(s,this.movingMean.read(),this.movingVariance.read(),null==this.beta?null:this.beta.read(),null==this.gamma?null:this.gamma.read(),this.epsilon)})();const[h,d,p]=oC(s,this.gamma.read(),this.beta.read(),a,this.epsilon),f=(e,t,n)=>{Ao((()=>{const s=1-n,r=e.read(),i=Fl(Ql(r,t),s);e.write(Ql(r,i))}))};return(()=>{f(this.movingMean,d,this.momentum),f(this.movingVariance,p,this.momentum)})(),h}))}getConfig(){const e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Tw(this.betaInitializer),gammaInitializer:Tw(this.gammaInitializer),movingMeanInitializer:Tw(this.movingMeanInitializer),movingVarianceInitializer:Tw(this.movingVarianceInitializer),betaRegularizer:Kx(this.betaRegularizer),gammaRegularizer:Kx(this.gammaRegularizer),betaConstraint:lv(this.betaConstraint),gammaConstraint:lv(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}}lC.className="BatchNormalization",Hl(lC);class uC extends qw{constructor(e){if(null==e&&(e={}),super(e),this.axis=null==e.axis?-1:e.axis,"number"==typeof this.axis){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else{if(!Array.isArray(this.axis))throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);for(const e of this.axis)if(!Number.isInteger(e))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}this.epsilon=null==e.epsilon?.001:e.epsilon,this.center=null==e.center||e.center,this.scale=null==e.scale||e.scale,this.betaInitializer=Nw(e.betaInitializer||"zeros"),this.gammaInitializer=Nw(e.gammaInitializer||"ones"),this.betaRegularizer=Xx(e.betaRegularizer),this.gammaRegularizer=Xx(e.gammaRegularizer),this.supportsMasking=!0}build(e){const t=(e=Mw(e)).length;"number"==typeof this.axis&&(this.axis=[this.axis]);for(let e=0;e=t)throw new Error(`Invalid axis: ${e}`);if(this.axis.length!==fb(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);const n=this.axis.map((t=>e[t])),s=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,s):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,s):this.beta=null,this.built=!0}call(e,t){const n=Dw(e),s=n.shape,r=s.length;return Ao((()=>{let{mean:e,variance:t}=Sd(n,this.axis,!0);const i=nb(1,r);for(const e of this.axis)i[e]=s[e];const a=e=>null!=e&&e.shape.length!==r?Tc(e,i):e;let o=this.scale?a(this.gamma.read()):null,l=this.center?a(this.beta.read()):null;const u=[],c=[];for(let e=0;e=0?e[2]+this.padding[0][0]+this.padding[0][1]:null,n=null!=e[3]&&e[3]>=0?e[3]+this.padding[1][0]+this.padding[1][1]:null,[e[0],e[1],t,n]):(t=null!=e[1]&&e[1]>=0?e[1]+this.padding[0][0]+this.padding[0][1]:null,n=null!=e[2]&&e[2]>=0?e[2]+this.padding[1][0]+this.padding[1][1]:null,[e[0],t,n,e[3]])}call(e,t){return Ao((()=>{return t=Dw(e),n=this.padding,s=this.dataFormat,Ao((()=>{if(4!==t.rank)throw new Qy(`temporalPadding expects input tensor to be 4-D, but received a ${t.rank}-D tensor.`);if(null==n&&(n=[[1,1],[1,1]]),2!==n.length||2!==n[0].length||2!==n[1].length)throw new Qy("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(null==s&&(s="channelsLast"),"channelsLast"!==s&&"channelsFirst"!==s)throw new Qy(`Unknown data format: ${s}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let e;return e="channelsFirst"===s?[[0,0],[0,0],n[0],n[1]]:[[0,0],n[0],n[1],[0,0]],Od(t,e)}));var t,n,s}))}getConfig(){const e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}function hC(e,t,n,s,r,i){return Ao((()=>{let a;Rb(r),Db(i),Ob(s),null==n&&(n=[1,1]),null==s&&(s="valid"),null==r&&(r="channelsLast"),null==i&&(i="max"),e=iA(e,r);const o="same"===s?"same":"valid";return a="max"===i?md(e,t,n,o):Nc(e,t,n,o),"channelsFirst"===r&&(a=Jp(a,[0,3,1,2])),a}))}function dC(e,t,n,s,r,i){return Ao((()=>{let a;Rb(r),Db(i),Ob(s),null==n&&(n=[1,1,1]),null==s&&(s="valid"),null==r&&(r="channelsLast"),null==i&&(i="max"),e=aA(e,r);const o="same"===s?"same":"valid";return a="max"===i?gd(e,t,n,o):Rc(e,t,n,o),"channelsFirst"===r&&(a=Jp(a,[0,4,1,2,3])),a}))}cC.className="ZeroPadding2D",Hl(cC);class pC extends qw{constructor(e){if(null==e.poolSize&&(e.poolSize=2),super(e),"number"==typeof e.poolSize)this.poolSize=[e.poolSize];else{if(!Array.isArray(e.poolSize)||1!==e.poolSize.length||"number"!=typeof e.poolSize[0])throw new Qy(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);this.poolSize=e.poolSize}if(bb(this.poolSize,"poolSize"),null==e.strides)this.strides=this.poolSize;else if("number"==typeof e.strides)this.strides=[e.strides];else{if(!Array.isArray(e.strides)||1!==e.strides.length||"number"!=typeof e.strides[0])throw new Qy(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);this.strides=e.strides}bb(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,Ob(this.padding),this.inputSpec=[new Uw({ndim:3})]}computeOutputShape(e){const t=sA((e=Mw(e))[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return Ao((()=>{this.invokeCallHook(e,t),e=$b(Dw(e),2);const n=this.poolingFunction(Dw(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Tp(n,[2])}))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}}class fC extends pC{constructor(e){super(e)}poolingFunction(e,t,n,s,r){return Rb(r),Ob(s),hC(e,t,n,s,r,"max")}}fC.className="MaxPooling1D",Hl(fC);class mC extends pC{constructor(e){super(e)}poolingFunction(e,t,n,s,r){return Rb(r),Ob(s),hC(e,t,n,s,r,"avg")}}mC.className="AveragePooling1D",Hl(mC);class gC extends qw{constructor(e){if(null==e.poolSize&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],null==e.strides)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(2!==e.strides.length)throw new Qy(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];bb(this.poolSize,"poolSize"),bb(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Rb(this.dataFormat),Ob(this.padding),this.inputSpec=[new Uw({ndim:4})]}computeOutputShape(e){e=Mw(e);let t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2];return t=sA(t,this.poolSize[0],this.padding,this.strides[0]),n=sA(n,this.poolSize[1],this.padding,this.strides[1]),"channelsFirst"===this.dataFormat?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return Ao((()=>(this.invokeCallHook(e,t),this.poolingFunction(Dw(e),this.poolSize,this.strides,this.padding,this.dataFormat))))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class yC extends gC{constructor(e){super(e)}poolingFunction(e,t,n,s,r){return Rb(r),Ob(s),hC(e,t,n,s,r,"max")}}yC.className="MaxPooling2D",Hl(yC);class bC extends gC{constructor(e){super(e)}poolingFunction(e,t,n,s,r){return Rb(r),Ob(s),hC(e,t,n,s,r,"avg")}}bC.className="AveragePooling2D",Hl(bC);class wC extends qw{constructor(e){if(null==e.poolSize&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],null==e.strides)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(3!==e.strides.length)throw new Qy(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];bb(this.poolSize,"poolSize"),bb(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Rb(this.dataFormat),Ob(this.padding),this.inputSpec=[new Uw({ndim:5})]}computeOutputShape(e){e=Mw(e);let t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2],s="channelsFirst"===this.dataFormat?e[4]:e[3];return t=sA(t,this.poolSize[0],this.padding,this.strides[0]),n=sA(n,this.poolSize[1],this.padding,this.strides[1]),s=sA(s,this.poolSize[2],this.padding,this.strides[2]),"channelsFirst"===this.dataFormat?[e[0],e[1],t,n,s]:[e[0],t,n,s,e[4]]}call(e,t){return Ao((()=>(this.invokeCallHook(e,t),this.poolingFunction(Dw(e),this.poolSize,this.strides,this.padding,this.dataFormat))))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class vC extends wC{constructor(e){super(e)}poolingFunction(e,t,n,s,r){return Rb(r),Ob(s),dC(e,t,n,s,r,"max")}}vC.className="MaxPooling3D",Hl(vC);class xC extends wC{constructor(e){super(e)}poolingFunction(e,t,n,s,r){return Rb(r),Ob(s),dC(e,t,n,s,r,"avg")}}xC.className="AveragePooling3D",Hl(xC);class AC extends qw{constructor(e){super(e),this.inputSpec=[new Uw({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Jy}}class CC extends AC{constructor(e){super(e||{})}call(e,t){return Ao((()=>{const t=Dw(e);return bd(t,1)}))}}CC.className="GlobalAveragePooling1D",Hl(CC);class kC extends AC{constructor(e){super(e||{})}call(e,t){return Ao((()=>{const t=Dw(e);return Rh(t,1)}))}}kC.className="GlobalMaxPooling1D",Hl(kC);class SC extends qw{constructor(e){super(e),this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Rb(this.dataFormat),this.inputSpec=[new Uw({ndim:4})]}computeOutputShape(e){return"channelsLast"===this.dataFormat?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new Jy}getConfig(){const e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class _C extends SC{call(e,t){return Ao((()=>{const t=Dw(e);return"channelsLast"===this.dataFormat?bd(t,[1,2]):bd(t,[2,3])}))}}_C.className="GlobalAveragePooling2D",Hl(_C);class EC extends SC{call(e,t){return Ao((()=>{const t=Dw(e);return"channelsLast"===this.dataFormat?Rh(t,[1,2]):Rh(t,[2,3])}))}}EC.className="GlobalMaxPooling2D",Hl(EC);class IC extends qw{constructor(e){super(e),this.layer=e.layer}build(e){this.built=!0}get trainable(){return null!=this.layer&&this.layer.trainable}set trainable(e){null!=this.layer&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){const e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),null!=this.layer&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){const s=Av(t.layer,n);delete t.layer;const r={layer:s};return Object.assign(r,t),new e(r)}}class TC extends IC{constructor(e){super(e),this.supportsMasking=!0}build(e){if((e=Mw(e)).length<3)throw new Qy(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];const t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){const t=[(e=Mw(e))[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),s=e[1];return[n[0],s].concat(n.slice(1))}call(e,t){return Ao((()=>CA(((e,n)=>[Dw(this.layer.call(e,t)),[]]),e=Dw(e),[],!1,null,null,!1,!0)[1]))}}TC.className="TimeDistributed",Hl(TC);class NC extends IC{constructor(e){super(e);const t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Av(n),t.goBackwards=!0!==t.goBackwards;const s={};var r;if(s.className=e.layer.getClassName(),s.config=t,this.backwardLayer=Av(s),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=void 0===e.mergeMode?"concat":e.mergeMode,r=this.mergeMode,gb(Tb,"BidirectionalMergeMode",r),e.weights)throw new Jy("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,null!=this.forwardLayer&&(this.forwardLayer.trainable=e),null!=this.backwardLayer&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){const t=e.length,n=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,n)),this.backwardLayer.setWeights(e.slice(n))}computeOutputShape(e){let t,n,s,r=this.forwardLayer.computeOutputShape(e);return Array.isArray(r)&&Array.isArray(r[0])||(r=[r]),this.returnState?(s=r.slice(1),t=r[0]):t=r[0],"concat"===this.mergeMode?(t[t.length-1]*=2,n=[t]):n=null==this.mergeMode?[t,t.slice()]:[t],this.returnState?null==this.mergeMode?n.concat(s).concat(s.slice()):[t].concat(s).concat(s.slice()):ib(n)}apply(e,t){let n=null==t?null:t.initialState,s=null==t?null:t.constants;null==t&&(t={});const r=AA(e,n,s,this.numConstants);if(e=r.inputs,n=r.initialState,s=r.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(null==n||0===n.length)&&null==s)return super.apply(e,t);const i=[],a=[];if(null!=n){const e=n.length;if(e%2>0)throw new Qy("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=n,i.push(...n);const s=n.map((e=>new Uw({shape:e.shape})));this.forwardLayer.stateSpec=s.slice(0,e/2),this.backwardLayer.stateSpec=s.slice(e/2),a.push(...s)}if(null!=s)throw new Jy("Support for constants in Bidirectional layers is not implemented yet.");const o=i[0]instanceof Vw;for(const e of i)if(e instanceof Vw!==o)throw new Qy("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){const n=[e].concat(i),s=this.inputSpec.concat(a),r=this.inputSpec;this.inputSpec=s;const o=super.apply(n,t);return this.inputSpec=r,o}return super.apply(e,t)}call(e,t){return Ao((()=>{const n=t.initialState;let s,r,i,a;if(null==n)s=this.forwardLayer.call(e,t),r=this.backwardLayer.call(e,t);else{const i=n.slice(0,n.length/2),a=n.slice(n.length/2);s=this.forwardLayer.call(e,Object.assign(t,{initialState:i})),r=this.backwardLayer.call(e,Object.assign(t,{initialState:a}))}return this.returnState&&(Array.isArray(s)&&(i=s.slice(1).concat(r.slice(1))),s=s[0],r=r[0]),this.returnSequences&&(r=ip(r,1)),"concat"===this.mergeMode?a=Qb([s,r]):"sum"===this.mergeMode?a=Dl(s,r):"ave"===this.mergeMode?a=Fl(.5,Dl(s,r)):"mul"===this.mergeMode?a=Fl(s,r):null==this.mergeMode&&(a=[s,r]),this.returnState?null==this.mergeMode?a.concat(i):[a].concat(i):a}))}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Fb(this.forwardLayer.name,(()=>{this.forwardLayer.build(e)})),Fb(this.backwardLayer.name,(()=>{this.backwardLayer.build(e)})),this.built=!0}computeMask(e,t){let n;if(Array.isArray(t)&&(t=t[0]),n=this.returnSequences?null==this.mergeMode?[t,t]:t:null==this.mergeMode?[null,null]:null,this.returnState){const e=this.forwardLayer.states.map((e=>null));return Array.isArray(n)?n.concat(e).concat(e):[n].concat(e).concat(e)}return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),null!=this.forwardLayer&&this.forwardLayer.setFastWeightInitDuringBuild(e),null!=this.backwardLayer&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){const e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){const n=Av(t.layer);if(delete t.layer,null!=t.numConstants)throw new Jy("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");const s=t;return s.layer=n,new e(s)}}NC.className="Bidirectional",Hl(NC);class RC extends qw{constructor(e){super(e),this.scale=e.scale,e.offset?this.offset=e.offset:this.offset=0}getConfig(){const e={scale:this.scale,offset:this.offset},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return Ao((()=>("float32"!==(e=Dw(e)).dtype&&(e=Kb(e,"float32")),Dl(Fl(e,this.scale),this.offset))))}}RC.className="Rescaling",Hl(RC);const{resizeBilinear:OC,cropAndResize:DC}=bm;class MC extends qw{constructor(e){super(e),this.height=e.height,this.width=e.width}centerCrop(e,t,n,s,r,i,a,o){return Ao((()=>{let l,u=!1;const c=[t/i,n/a,(s+t)/i,(r+n)/a],h=[];3===e.rank?(u=!0,l=Np([e])):l=e;for(let e=0;eKb(OC(e,[t,n]),s)))}call(e,t){return Ao((()=>{const t=Dw(e),n=t.dtype,s=t.shape,r=s[s.length-3],i=s[s.length-2];let a=0;r!==this.height&&(a=Math.floor((r-this.height)/2));let o=0;return i!==this.width&&(o=Math.floor((i-this.width)/2),0===o&&(o=1)),a>=0&&o>=0?this.centerCrop(t,a,o,this.height,this.width,r,i,n):this.upsize(e,this.height,this.width,n)}))}getConfig(){const e={height:this.height,width:this.width},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){const t=(e=Mw(e)).length-3,n=e.length-2;return e[t]=this.height,e[n]=this.width,e}}MC.className="CenterCrop",Hl(MC);class zC extends qw{constructor(e){super(e),this.numTokens=e.numTokens,e.outputMode?this.outputMode=e.outputMode:this.outputMode="multiHot"}getConfig(){const e={numTokens:this.numTokens,outputMode:this.outputMode},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){return null==(e=Mw(e))?[this.numTokens]:"oneHot"===this.outputMode&&1!==e[e.length-1]?(e.push(this.numTokens),e):(e[e.length-1]=this.numTokens,e)}call(e,t){return Ao((()=>{let n;if("int32"!==(e=Dw(e)).dtype&&(e=Kb(e,"int32")),void 0!==t.countWeights){if("count"!==this.outputMode)throw new Qy(`countWeights is not used when outputMode !== count.\n Received countWeights=${t.countWeights}`);n=Dw(t.countWeights)}const s=Rh(e),r=Oh(e),i=Gh(this.numTokens,s).bufferSync().get(0),a=qh(r,0).bufferSync().get(0);if(!i||!a)throw new Qy(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return function(e,t,n,s){let r=Dw(e);if("int32"!==r.dtype&&(r=Kb(r,"int32")),"int"===t)return r;const i=r.shape;if(0===r.rank&&(r=Lh(r,-1)),"oneHot"===t&&1!==r.shape[r.shape.length-1]&&(r=Lh(r,-1)),r.rank>2)throw new Qy(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${i} which would result in output rank ${r.rank}.`);const a=["multiHot","oneHot"].includes(t),o=r;let l;if(l=ch(o,void 0!==s&&"count"===t?s:[],n,a),"tfIdf"!==t)return l;if(s)return Fl(l,s);throw new Qy("When outputMode is 'tfIdf', weights must be provided.")}(e,this.outputMode,this.numTokens,n)}))}}zC.className="CategoryEncoding",Hl(zC);const FC=new Set(["bilinear","nearest"]);class BC extends qw{constructor(e){if(super(e),this.height=e.height,this.width=e.width,e.interpolation){if(!FC.has(e.interpolation))throw new Qy(`Invalid interpolation parameter: ${e.interpolation} is not implemented`);this.interpolation=e.interpolation}else this.interpolation="bilinear";this.cropToAspectRatio=Boolean(e.cropToAspectRatio)}computeOutputShape(e){const t=(e=Mw(e))[2];return[this.height,this.width,t]}getConfig(){const e={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return Ao((()=>{const t=[this.height,this.width];if("bilinear"===this.interpolation)return bm.resizeBilinear(e,t,!this.cropToAspectRatio);if("nearest"===this.interpolation)return bm.resizeNearestNeighbor(e,t,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...FC]} are supported`)}))}}BC.className="Resizing",Hl(BC);class LC{constructor(e){this.seed=e}next(){if(void 0!==this.seed)return this.seed++}}LC.className="RandomSeed";class PC extends qw{constructor(e){super(e),this.randomGenerator=new LC(e.seed)}getConfig(){const e={seed:this.randomGenerator.seed},t=super.getConfig();return Object.assign(e,t),e}}PC.className="BaseRandomLayer";const UC=new Set(["bilinear","nearest"]);class VC extends PC{constructor(e){super(e);const{factor:t,interpolation:n="bilinear"}=e;if(this.factor=t,Array.isArray(this.factor)&&2===this.factor.length)this.widthLower=this.factor[0],this.widthUpper=this.factor[1];else{if(Array.isArray(this.factor)||!(this.factor>0))throw new Qy(`Invalid factor: ${this.factor}. Must be positive number or tuple of 2 numbers`);this.widthLower=-this.factor,this.widthUpper=this.factor}if(this.widthLower<-1||this.widthUpper<-1)throw new Qy(`factor must have values larger than -1. Got: ${this.factor}`);if(this.widthUpper{const t=Dw(e);this.imgHeight=t.shape[t.shape.length-3];const n=t.shape[t.shape.length-2];this.widthFactor=Qd([1],1+this.widthLower,1+this.widthUpper,"float32",this.randomGenerator.next());let s=this.widthFactor.dataSync()[0]*n;s=Math.round(s);const r=[this.imgHeight,s];switch(this.interpolation){case"bilinear":return bm.resizeBilinear(e,r);case"nearest":return bm.resizeNearestNeighbor(e,r);default:throw new Error(`Interpolation is ${this.interpolation}\n but only ${[...UC]} are supported`)}}))}}VC.className="RandomWidth",Hl(VC);var WC,jC;Sn().registerFlag("KEEP_INTERMEDIATE_TENSORS",(()=>!1),(e=>{})),function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_QINT16=15]="DT_QINT16",e[e.DT_QUINT16=16]="DT_QUINT16",e[e.DT_UINT16=17]="DT_UINT16",e[e.DT_COMPLEX128=18]="DT_COMPLEX128",e[e.DT_HALF=19]="DT_HALF",e[e.DT_RESOURCE=20]="DT_RESOURCE",e[e.DT_VARIANT=21]="DT_VARIANT",e[e.DT_UINT32=22]="DT_UINT32",e[e.DT_UINT64=23]="DT_UINT64",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF",e[e.DT_QINT16_REF=115]="DT_QINT16_REF",e[e.DT_QUINT16_REF=116]="DT_QUINT16_REF",e[e.DT_UINT16_REF=117]="DT_UINT16_REF",e[e.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",e[e.DT_HALF_REF=119]="DT_HALF_REF",e[e.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",e[e.DT_VARIANT_REF=121]="DT_VARIANT_REF",e[e.DT_UINT32_REF=122]="DT_UINT32_REF",e[e.DT_UINT64_REF=123]="DT_UINT64_REF"}(WC||(WC={})),function(e){let t;!function(e){e[e.LEGACY=0]="LEGACY",e[e.V1=1]="V1",e[e.V2=2]="V2"}(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))}(jC||(jC={}));const GC={};function qC(e){return GC[e]}function HC(e,t,n,s,r){const i=t.inputParams[e];if(i&&void 0!==i.inputIndexStart){const e=i.inputIndexStart,a=0===i.inputIndexEnd?void 0:void 0===i.inputIndexEnd?e+1:i.inputIndexEnd,o=e<0?t.inputNames.length+e:e;if("tensor"===i.type)return KC(t.inputNames[o],n,s,r);if("tensors"===i.type){const i=t.inputs.slice(e,a);return t.inputNames.slice(e,a).filter(((e,t)=>{var n;return"NoOp"!==(null===(n=i[t])||void 0===n?void 0:n.op)})).map((e=>KC(e,n,s,r)))}const l=KC(t.inputNames[o],n,s,r),u=l.dataSync();return"number"===i.type?u[0]:fn(l.shape,u)}const a=t.attrParams[e];return a&&a.value}function KC(e,t,n,s){const[r,i]=YC(e,n);if(null!=s){const e=s.getHashTableHandleByName(r);if(null!=e)return e}const a=n.currentContextIds.find((e=>!!t[ZC(r,e)]));return void 0!==a?t[ZC(r,a)][i]:void 0}function $C(e,t,n){return t[ZC(e,n.currentContextId)]}function XC(e,t){const[n,s,r]=YC(e,t);return[ZC(n,t&&t.currentContextId),s,r]}function ZC(e,t){return t?`${e}-${t}`:e}function YC(e,t){if(""===e)return["",0,void 0];const n=null!=t&&null!=t.parseNodeNameCache;if(n){const n=t.parseNodeNameCache.get(e);if(null!=n)return n}const s=e.split(":");let r;if(1===s.length)r=[e,0,void 0];else{const e=s[0],t=3===s.length?s[1]:void 0;r=[e,Number(s[s.length-1]),t]}return n&&t.parseNodeNameCache.set(e,r),r}function QC(e,t,n){let s=HC("pad",e,t,n);if("explicit"===s){s=HC("explicitPaddings",e,t,n);const r=[[0,0],[0,0],[0,0],[0,0]];for(let e=0;e<4;e++)r[e][0]=s[2*e],r[e][1]=s[2*e+1];return r}return s}function JC(e){return e.kept?e:Rl(e)}const ek=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],tk=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsFinite",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsInf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],nk=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcatV2",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}],sk=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],rk=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"RandomUniformInt",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number"},{tfName:"maxval",name:"maxval",type:"number"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],ik=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],ak=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],ok=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],lk=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableSize",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"LookupTableSizeV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"InitializeTable",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]},{tfOpName:"InitializeTableV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]}],uk=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}],ck=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BitwiseAnd",category:"logical",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}]}],hk=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"MatrixBandPart",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"numLower",type:"tensor"},{start:1,name:"numUpper",type:"tensor"}]}],dk=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]}],pk=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cumprod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],fk=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]},{tfOpName:"TensorScatterUpdate",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"values",type:"tensor"}]}],mk=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}],gk=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],yk=[{tfOpName:"StaticRegexReplace",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"pattern",name:"pattern",type:"string"},{tfName:"rewrite",name:"rewrite",type:"string"},{tfName:"replace_global",name:"replaceGlobal",type:"bool"}]},{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}],bk=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"EnsureShape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}];class wk{static get Instance(){return this._instance||(this._instance=new this)}constructor(){const e=[].concat(...[i,a,o,l,u,c,h,d,p,f,m,g,y,b,w,v,x,A,C].map((e=>e.json)));this.opMappers=e.reduce(((e,t)=>(e[t.tfOpName]=t,e)),{})}transformGraph(e,t={}){const n=e.node,s=[],r=[],i=[],a=n.reduce(((e,t)=>(e[t.name]=this.mapNode(t),t.op.startsWith("Placeholder")?s.push(e[t.name]):"Const"===t.op?r.push(e[t.name]):null!=t.input&&0!==t.input.length||i.push(e[t.name]),e)),{});let o=[];const l=[];let u={},c={};null!=t&&(u=this.mapSignatureEntries(t.inputs),c=this.mapSignatureEntries(t.outputs));const h=Object.keys(a);h.forEach((e=>{const t=a[e];t.inputNames.forEach(((e,n)=>{const[s,,r]=XC(e),i=a[s];if(null!=i.outputs){const e=i.outputs.indexOf(r);if(-1!==e){const r=`${s}:${e}`;t.inputNames[n]=r}}t.inputs.push(i),i.children.push(t)}))})),0===Object.keys(c).length?h.forEach((e=>{const t=a[e];0===t.children.length&&l.push(t)})):Object.keys(c).forEach((e=>{const[t]=XC(e),n=a[t];null!=n&&(n.signatureKey=c[e],l.push(n))})),Object.keys(u).length>0?Object.keys(u).forEach((e=>{const[t]=XC(e),n=a[t];n&&(n.signatureKey=u[e],o.push(n))})):o=s;let d={};null!=e.library&&null!=e.library.function&&(d=e.library.function.reduce(((e,t)=>(e[t.signature.name]=this.mapFunction(t),e)),{}));const p={nodes:a,inputs:o,outputs:l,weights:r,placeholders:s,signature:t,functions:d};return i.length>0&&(p.initNodes=i),p}mapSignatureEntries(e){return Object.keys(e||{}).reduce(((t,n)=>(t[e[n].name]=n,t)),{})}mapNode(e){const t=qC(e.op)||this.opMappers[e.op]||{};null==e.attr&&(e.attr={});const n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map((e=>e.startsWith("^")?e.slice(1):e)),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr,outputs:t.outputs};return null!=t.inputs&&(n.inputParams=t.inputs.reduce(((e,t)=>(e[t.name]={type:t.type,inputIndexStart:t.start,inputIndexEnd:t.end},e)),{})),null!=t.attrs&&(n.attrParams=t.attrs.reduce(((t,n)=>{const s=n.type;let r;switch(n.type){case"string":r=xk(e.attr,n.tfName,n.defaultValue),void 0===r&&n.tfDeprecatedName&&(r=xk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"string[]":r=Rk(e.attr,n.tfName,n.defaultValue),void 0===r&&n.tfDeprecatedName&&(r=Rk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"number":r=Ck(e.attr,n.tfName,n.defaultValue||0),void 0===r&&n.tfDeprecatedName&&(r=Ck(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"number[]":r=Nk(e.attr,n.tfName,n.defaultValue),void 0===r&&n.tfDeprecatedName&&(r=Nk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"bool":r=Ak(e.attr,n.tfName,n.defaultValue),void 0===r&&n.tfDeprecatedName&&(r=Ak(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"bool[]":r=Dk(e.attr,n.tfName,n.defaultValue),void 0===r&&n.tfDeprecatedName&&(r=Dk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"shape":r=Tk(e.attr,n.tfName,n.defaultValue),void 0===r&&n.tfDeprecatedName&&(r=Tk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"shape[]":r=Ok(e.attr,n.tfName,n.defaultValue),void 0===r&&n.tfDeprecatedName&&(r=Ok(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"dtype":r=_k(e.attr,n.tfName,n.defaultValue),void 0===r&&n.tfDeprecatedName&&(r=_k(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"dtype[]":r=Ek(e.attr,n.tfName,n.defaultValue),void 0===r&&n.tfDeprecatedName&&(r=Ek(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"func":r=Sk(e.attr,n.tfName,n.defaultValue),void 0===r&&n.tfDeprecatedName&&(r=Sk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${n.type} for op: ${e.op}`)}return t[n.name]={value:r,type:s},t}),{})),n}mapFunction(e){const t=e.nodeDef,n=[];let s={};null!=t&&(s=t.reduce(((e,t)=>(e[t.name]=this.mapNode(t),"Const"===t.op&&n.push(e[t.name]),e)),{}));const r=[],i=[];e.signature.inputArg.forEach((e=>{const[t]=XC(e.name),n={name:t,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:kk(e.type),type:"dtype"}},children:[]};n.signatureKey=e.name,r.push(n),s[t]=n}));Object.keys(s).forEach((e=>{const t=s[e];t.inputNames.forEach(((e,n)=>{const[r,,i]=XC(e),a=s[r];if(null!=a.outputs){const e=a.outputs.indexOf(i);if(-1!==e){const s=`${r}:${e}`;t.inputNames[n]=s}}t.inputs.push(a),a.children.push(t)}))}));const a=e.ret;e.signature.outputArg.forEach((e=>{const[t,n]=XC(a[e.name]),r=s[t];null!=r&&(r.defaultOutput=n,i.push(r))}));const o=this.mapArgsToSignature(e);return{nodes:s,inputs:r,outputs:i,weights:n,placeholders:[],signature:o}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce(((e,t)=>(e[t.name]=this.mapArgToTensorInfo(t),e)),{}),outputs:e.signature.outputArg.reduce(((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t)),{})}}mapArgToTensorInfo(e,t){let n=e.name;return null!=t&&(n=t[n]),{name:n,dtype:e.type}}}function vk(e,t){const n=Array.isArray(e)?String.fromCharCode.apply(null,e):function(e){const t=Sn().global;if(void 0!==t.atob)return t.atob(e);if("undefined"!=typeof Buffer)return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}(e);return t?n:n.toLowerCase()}function xk(e,t,n,s=!1){const r=e[t];return null!=r?vk(r.s,s):n}function Ak(e,t,n){const s=e[t];return s?s.b:n}function Ck(e,t,n){const s=e[t]||{},r=null!=s.i?s.i:null!=s.f?s.f:n;return"number"==typeof r?r:parseInt(r,10)}function kk(e){switch("string"==typeof e&&(e=WC[e]),e){case WC.DT_FLOAT:case WC.DT_HALF:return"float32";case WC.DT_INT32:case WC.DT_INT64:case WC.DT_INT8:case WC.DT_UINT8:return"int32";case WC.DT_BOOL:return"bool";case WC.DT_DOUBLE:return"float32";case WC.DT_STRING:return"string";case WC.DT_COMPLEX64:case WC.DT_COMPLEX128:return"complex64";default:return null}}function Sk(e,t,n){const s=e[t];return s&&s.func?s.func.name:n}function _k(e,t,n){const s=e[t];return s&&s.type?kk(s.type):n}function Ek(e,t,n){const s=e[t];return s&&s.list&&s.list.type?s.list.type.map((e=>kk(e))):n}function Ik(e){if(!e.unknownRank)return null!=e.dim?e.dim.map((e=>"number"==typeof e.size?e.size:parseInt(e.size,10))):[]}function Tk(e,t,n){const s=e[t];return s&&s.shape?Ik(s.shape):n}function Nk(e,t,n){const s=e[t];return s?((s.list.f&&s.list.f.length?s.list.f:s.list.i)||[]).map((e=>"number"==typeof e?e:parseInt(e,10))):n}function Rk(e,t,n,s=!1){const r=e[t];return r&&r.list&&r.list.s?r.list.s.map((e=>vk(e,s))):n}function Ok(e,t,n){const s=e[t];return s&&s.list&&s.list.shape?s.list.shape.map((e=>Ik(e))):n}function Dk(e,t,n){const s=e[t];return s&&s.list&&s.list.b?s.list.b:n}class Mk{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map((e=>this.getInput(e))),null!=e.rawAttrs&&(this.attrs=Object.keys(e.rawAttrs).reduce(((e,t)=>(e[t]=this.getAttr(t),e)),{}))}getInput(e){return KC(e,this.tensorMap,this.context)}getAttr(e,t){const n=this.node.rawAttrs[e];if(null!=n.tensor)return KC(e,this.tensorMap,this.context);if(null!=n.i||null!=n.f)return Ck(this.node.rawAttrs,e,t);if(null!=n.s)return xk(this.node.rawAttrs,e,t);if(null!=n.b)return Ak(this.node.rawAttrs,e,t);if(null!=n.shape)return Tk(this.node.rawAttrs,e,t);if(null!=n.type)return _k(this.node.rawAttrs,e,t);if(null!=n.list){if(null!=n.list.i||null!=n.list.f)return Nk(this.node.rawAttrs,e,t);if(null!=n.list.s)return Rk(this.node.rawAttrs,e,t);if(null!=n.list.shape)return Ok(this.node.rawAttrs,e,t);if(null!=n.list.b)return Dk(this.node.rawAttrs,e,t);if(null!=n.list.type)return Ek(this.node.rawAttrs,e,t)}return t}}function zk(e,t,n=""){if("number"!=typeof e&&"number"!=typeof t){Gt(e.length===t.length,(()=>n+` Shapes ${e} and ${t} must match`));for(let s=0;sn+` Shapes ${e} and ${t} must match`))}}}function Fk(e){return"number"!=typeof e&&!e.some((e=>e<0))}function Bk(e,t,n){let s=Lk(e,n);const r=!Fk(s);if(r&&0===t.length)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${s}`);if(r&&t.forEach((e=>{s=Lk(e.shape,s)})),!Fk(s))throw new Error(`Non-fully-defined elementShape: ${s}`);return s}function Lk(e,t){if("number"==typeof e)return t;if("number"==typeof t)return e;if(e.length!==t.length)throw new Error(`Incompatible ranks during merge: ${e} vs. ${t}`);const n=[];for(let s=0;s=0&&i>=0&&r!==i)throw new Error(`Incompatible shape during merge: ${e} vs. ${t}`);n[s]=r>=0?r:i}return n}class Pk{constructor(e,t,n,s,r,i,a){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=s,this.identicalElementShapes=r,this.dynamicSize=i,this.clearAfterRead=a,this.tensors=[],this.closed_=!1,this.idTensor=Vl(0),ko(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach((t=>{null!=e&&e.has(t.tensor.id)||t.tensor.dispose()})),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);const t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map((e=>this.read(e)))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);const n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e},\n because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(0!==this.size()||null!=this.elementShape&&0!==this.elementShape.length||(this.elementShape=t.shape),zk(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);n.tensor=t,ko(t),n.written=!0,this.tensors[e]=n}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach(((e,n)=>this.write(e,t[n])))}gather(e,t){if(t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let t=0;t=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(e,Kp(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let n=0;const s=e.map((e=>(n+=e,n)));if(n!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${n}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);const r=0===n?0:t.size/n,i=[];Ao((()=>{t=Tc(t,[1,n,r]);for(let n=0;n{if(n!==e.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${e.dtype}`);zk(t,e.shape,"TensorList shape mismatch: "),ko(e)})),this.idTensor=Vl(0),this.maxNumElements=s,ko(this.idTensor)}copy(){return new Uk([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach((t=>{null!=e&&e.has(t.id)||t.dispose()})),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,n=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(-1!==n&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);zk(e,this.elementShape,"TensorList shape mismatch: ");const s=Bk(this.elementShape,this.tensors,e);return Ao((()=>{const e=this.tensors.map((e=>Tc(e,s)));return Np(e,0)}))}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(0===this.size())throw new Error("Trying to pop from an empty list.");const n=Bk(this.elementShape,this.tensors,e),s=this.tensors.pop();return s.kept=!1,zk(s.shape,e,"TensorList shape mismatch: "),Tc(s,n)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(zk(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");ko(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(-1!==this.maxNumElements&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);const t=new Uk([],this.elementShape,this.elementDtype,this.maxNumElements);t.tensors.length=e;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(null==this.tensors[e])throw new Error(`element at index ${e} is null.`);zk(this.tensors[e].shape,t,"TensorList shape mismatch: ");const s=Bk(this.elementShape,this.tensors,t);return Tc(this.tensors[e],s)}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||-1!==this.maxNumElements&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);zk(this.elementShape,t.shape,"TensorList shape mismatch: "),ko(t),null!=this.tensors[e]&&(this.tensors[e].kept=!1),this.tensors[e]=t}gather(e,t,n){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);zk(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());const s=Bk(this.elementShape,this.tensors,n);return 0===e.length?yo([],[0].concat(s)):Ao((()=>{const t=e.map((e=>Tc(this.tensors[e],s)));return Np(t,0)}))}concat(e,t){if(e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);zk(this.elementShape,t,"TensorList shape mismatch: ");const n=Bk(this.elementShape,this.tensors,t);return 0===this.size()?yo([],[0].concat(n)):Ao((()=>{const e=this.tensors.map((e=>Tc(e,n)));return Oc(e,0)}))}}const Vk=async(e,t,n)=>{switch(e.op){case"If":case"StatelessIf":{const s=HC("thenBranch",e,t,n),r=HC("elseBranch",e,t,n),i=HC("cond",e,t,n),a=HC("args",e,t,n);return(await i.data())[0]?n.functionMap[s].executeFunctionAsync(a,n.tensorArrayMap,n.tensorListMap):n.functionMap[r].executeFunctionAsync(a,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{const s=HC("body",e,t,n),r=HC("cond",e,t,n),i=HC("args",e,t,n),a=await n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap),o=i.map((e=>e.id));let l=await a[0].data();a.forEach((e=>{e.kept||-1!==o.indexOf(e.id)||e.dispose()}));let u=i;for(;l[0];){const e=u;u=await n.functionMap[s].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);const t=u.map((e=>e.id));e.forEach((e=>{e.kept||-1!==o.indexOf(e.id)||-1!==t.indexOf(e.id)||e.dispose()}));const i=await n.functionMap[r].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);l=await i[0].data(),i.forEach((e=>{e.kept||-1!==o.indexOf(e.id)||-1!==t.indexOf(e.id)||e.dispose()}))}return u}case"LoopCond":return[JC(HC("pred",e,t,n))];case"Switch":{const s=HC("pred",e,t,n);let r=HC("data",e,t,n);return r.kept||(r=JC(r)),(await s.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{const s=e.inputNames.find((e=>void 0!==KC(e,t,n)));if(s){return[JC(KC(s,t,n))]}return}case"Enter":{const s=HC("frameName",e,t,n),r=HC("tensor",e,t,n);return n.enterFrame(s),[JC(r)]}case"Exit":{const s=HC("tensor",e,t,n);return n.exitFrame(),[JC(s)]}case"NextIteration":{const s=HC("tensor",e,t,n);return n.nextIteration(),[JC(s)]}case"TensorArrayV3":{const s=HC("size",e,t,n),r=HC("dtype",e,t,n),i=HC("elementShape",e,t,n),a=HC("dynamicSize",e,t,n),o=HC("clearAfterRead",e,t,n),l=HC("identicalElementShapes",e,t,n),u=HC("name",e,t,n),c=new Pk(u,r,s,i,l,a,o);return n.addTensorArray(c),[c.idTensor,Vl(1)]}case"TensorArrayWriteV3":{const s=HC("tensorArrayId",e,t,n),r=HC("index",e,t,n),i=HC("tensor",e,t,n),a=n.getTensorArray(s.id);return a.write(r,i),[a.idTensor]}case"TensorArrayReadV3":{const s=HC("tensorArrayId",e,t,n),r=HC("index",e,t,n);return[n.getTensorArray(s.id).read(r)]}case"TensorArrayGatherV3":{const s=HC("tensorArrayId",e,t,n),r=HC("indices",e,t,n),i=HC("dtype",e,t,n);return[n.getTensorArray(s.id).gather(r,i)]}case"TensorArrayScatterV3":{const s=HC("tensorArrayId",e,t,n),r=HC("indices",e,t,n),i=HC("tensor",e,t,n),a=n.getTensorArray(s.id);return a.scatter(r,i),[a.idTensor]}case"TensorArrayConcatV3":{const s=HC("tensorArrayId",e,t,n),r=n.getTensorArray(s.id),i=HC("dtype",e,t,n);return[r.concat(i)]}case"TensorArraySplitV3":{const s=HC("tensorArrayId",e,t,n),r=HC("tensor",e,t,n),i=HC("lengths",e,t,n),a=n.getTensorArray(s.id);return a.split(i,r),[a.idTensor]}case"TensorArraySizeV3":{const s=HC("tensorArrayId",e,t,n);return[Vl(n.getTensorArray(s.id).size(),"int32")]}case"TensorArrayCloseV3":{const s=HC("tensorArrayId",e,t,n),r=n.getTensorArray(s.id);return r.clearAndClose(),[r.idTensor]}case"TensorListSetItem":{const s=HC("tensorListId",e,t,n),r=HC("index",e,t,n),i=HC("tensor",e,t,n),a=n.getTensorList(s.id);return a.setItem(r,i),[a.idTensor]}case"TensorListGetItem":{const s=HC("tensorListId",e,t,n),r=HC("index",e,t,n),i=HC("elementShape",e,t,n),a=HC("elementDType",e,t,n);return[n.getTensorList(s.id).getItem(r,i,a)]}case"TensorListScatterV2":case"TensorListScatter":{const s=HC("indices",e,t,n),r=function(e,t,n,s){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);const r=Math.max(...t);if(null!=s&&-1!==s&&r>=s)throw new Error(`Max index must be < array size (${r} vs. ${s})`);const i=new Uk([],n,e.dtype,s),a=Kp(e,0);return t.forEach(((e,t)=>{i.setItem(e,a[t])})),i}(HC("tensor",e,t,n),s,HC("elementShape",e,t,n),HC("numElements",e,t,n));return n.addTensorList(r),[r.idTensor]}case"TensorListReserve":case"EmptyTensorList":{const s=HC("elementShape",e,t,n),r=HC("elementDType",e,t,n);let i;i="TensorListReserve"===e.op?"numElements":"maxNumElements";const a=HC(i,e,t,n),o=function(e,t,n,s){return new Uk([],e,t,s)}(s,r,0,"TensorListReserve"===e.op?-1:a);return n.addTensorList(o),[o.idTensor]}case"TensorListGather":{const s=HC("tensorListId",e,t,n),r=HC("indices",e,t,n),i=HC("elementShape",e,t,n),a=HC("elementDType",e,t,n);return[n.getTensorList(s.id).gather(r,a,i)]}case"TensorListStack":{const s=HC("tensorListId",e,t,n),r=HC("elementShape",e,t,n),i=HC("elementDType",e,t,n),a=HC("numElements",e,t,n);return[n.getTensorList(s.id).stack(r,i,a)]}case"TensorListFromTensor":{const s=function(e,t,n){const s=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==n)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${n}`);zk(e.shape.slice(1),t,"TensorList shape mismatch: ");const r=Kp(e);return new Uk(r,t,s)}(HC("tensor",e,t,n),HC("elementShape",e,t,n),HC("elementDType",e,t,n));return n.addTensorList(s),[s.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{const s=HC("tensorListId",e,t,n),r=n.getTensorList(s.id),i=HC("dtype",e,t,n),a=HC("elementShape",e,t,n);return[r.concat(i,a)]}case"TensorListPushBack":{const s=HC("tensorListId",e,t,n),r=HC("tensor",e,t,n),i=n.getTensorList(s.id);return i.pushBack(r),[i.idTensor]}case"TensorListPopBack":{const s=HC("tensorListId",e,t,n),r=HC("elementShape",e,t,n),i=HC("elementDType",e,t,n);return[n.getTensorList(s.id).popBack(r,i)]}case"TensorListSplit":{const s=HC("tensor",e,t,n),r=HC("elementShape",e,t,n),i=function(e,t,n){let s=0;const r=t.map((e=>(s+=e,s)));if(s!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${s}, and tensor's shape is: ${e.shape}`);const i=Lk(e.shape.slice(1),n),a=0===s?0:e.size/s,o=Ao((()=>{const n=[];e=Tc(e,[1,s,a]);for(let s=0;se.dispose())),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return Vl(this.size(),"int32")}async import(e,t){this.checkKeyAndValueTensor(e,t);const n=await e.data();return this.tensorMap.forEach((e=>e.dispose())),this.tensorMap.clear(),Ao((()=>{const e=Kp(t),s=n.length,r=e.length;Gt(s===r,(()=>`The number of elements doesn't match, keys has ${s} elements, the values has ${r} elements.`));for(let t=0;t{const e=[];for(let s=0;s{switch(e.category){case"arithmetic":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[s.add(HC("a",e,t,n),HC("b",e,t,n))];case"AddN":return[s.addN(HC("tensors",e,t,n))];case"FloorMod":case"Mod":return[s.mod(HC("a",e,t,n),HC("b",e,t,n))];case"Mul":return[s.mul(HC("a",e,t,n),HC("b",e,t,n))];case"RealDiv":case"Div":return[s.div(HC("a",e,t,n),HC("b",e,t,n))];case"DivNoNan":return[s.divNoNan(HC("a",e,t,n),HC("b",e,t,n))];case"FloorDiv":return[s.floorDiv(HC("a",e,t,n),HC("b",e,t,n))];case"Sub":return[s.sub(HC("a",e,t,n),HC("b",e,t,n))];case"Minimum":return[s.minimum(HC("a",e,t,n),HC("b",e,t,n))];case"Maximum":return[s.maximum(HC("a",e,t,n),HC("b",e,t,n))];case"Pow":return[s.pow(HC("a",e,t,n),HC("b",e,t,n))];case"SquaredDifference":return[s.squaredDifference(HC("a",e,t,n),HC("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"basic_math":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"Abs":case"ComplexAbs":return[s.abs(HC("x",e,t,n))];case"Acos":return[s.acos(HC("x",e,t,n))];case"Acosh":return[s.acosh(HC("x",e,t,n))];case"Asin":return[s.asin(HC("x",e,t,n))];case"Asinh":return[s.asinh(HC("x",e,t,n))];case"Atan":return[s.atan(HC("x",e,t,n))];case"Atan2":return[s.atan2(HC("x",e,t,n),HC("y",e,t,n))];case"Atanh":return[s.atanh(HC("x",e,t,n))];case"Ceil":return[s.ceil(HC("x",e,t,n))];case"Complex":return[s.complex(HC("real",e,t,n),HC("imag",e,t,n))];case"Cos":return[s.cos(HC("x",e,t,n))];case"Cosh":return[s.cosh(HC("x",e,t,n))];case"Elu":return[s.elu(HC("x",e,t,n))];case"Erf":return[s.erf(HC("x",e,t,n))];case"Exp":return[s.exp(HC("x",e,t,n))];case"Expm1":return[s.expm1(HC("x",e,t,n))];case"Floor":return[s.floor(HC("x",e,t,n))];case"Log":return[s.log(HC("x",e,t,n))];case"Log1p":return[s.log1p(HC("x",e,t,n))];case"Imag":return[s.imag(HC("x",e,t,n))];case"Neg":return[s.neg(HC("x",e,t,n))];case"Reciprocal":return[s.reciprocal(HC("x",e,t,n))];case"Real":return[s.real(HC("x",e,t,n))];case"Relu":return[s.relu(HC("x",e,t,n))];case"Round":return[s.round(HC("x",e,t,n))];case"Selu":return[s.selu(HC("x",e,t,n))];case"Sigmoid":return[s.sigmoid(HC("x",e,t,n))];case"Sin":return[s.sin(HC("x",e,t,n))];case"Sign":return[s.sign(HC("x",e,t,n))];case"Sinh":return[s.sinh(HC("x",e,t,n))];case"Softplus":return[s.softplus(HC("x",e,t,n))];case"Sqrt":return[s.sqrt(HC("x",e,t,n))];case"Square":return[s.square(HC("x",e,t,n))];case"Tanh":return[s.tanh(HC("x",e,t,n))];case"Tan":return[s.tan(HC("x",e,t,n))];case"ClipByValue":return[s.clipByValue(HC("x",e,t,n),HC("clipValueMin",e,t,n),HC("clipValueMax",e,t,n))];case"Relu6":return[s.relu6(HC("x",e,t,n))];case"Rsqrt":return[s.rsqrt(KC(e.inputNames[0],t,n))];case"LeakyRelu":return[s.leakyRelu(HC("x",e,t,n),HC("alpha",e,t,n))];case"Prelu":return[s.prelu(HC("x",e,t,n),HC("alpha",e,t,n))];case"IsNan":return[s.isNaN(KC(e.inputNames[0],t,n))];case"IsInf":return[s.isInf(KC(e.inputNames[0],t,n))];case"IsFinite":return[s.isFinite(KC(e.inputNames[0],t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"control":return Vk(e,t,n);case"convolution":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"Conv1D":{const r=HC("stride",e,t,n),i=HC("pad",e,t,n),a=HC("dataFormat",e,t,n).toUpperCase(),o=HC("dilation",e,t,n);return[s.conv1d(HC("x",e,t,n),HC("filter",e,t,n),r,i,a,o)]}case"Conv2D":{const r=HC("strides",e,t,n),i=QC(e,t,n),a=HC("dataFormat",e,t,n).toUpperCase(),o=HC("dilations",e,t,n);return[s.conv2d(HC("x",e,t,n),HC("filter",e,t,n),[r[1],r[2]],i,a,[o[1],o[2]])]}case"_FusedConv2D":{const{stride:r,pad:i,dataFormat:a,dilations:o,biasArg:l,preluArg:u,activationFunc:c,leakyreluAlpha:h}=Wk(e,t,n);return[s.fused.conv2d({x:HC("x",e,t,n),filter:HC("filter",e,t,n),strides:[r[1],r[2]],pad:i,dataFormat:a,dilations:[o[1],o[2]],bias:l,activation:c,preluActivationWeights:u,leakyreluAlpha:h})]}case"FusedDepthwiseConv2dNative":{const{stride:r,pad:i,dataFormat:a,dilations:o,biasArg:l,preluArg:u,activationFunc:c,leakyreluAlpha:h}=Wk(e,t,n);return[s.fused.depthwiseConv2d({x:HC("x",e,t,n),filter:HC("filter",e,t,n),strides:[r[1],r[2]],pad:i,dataFormat:a,dilations:[o[1],o[2]],bias:l,activation:c,preluActivationWeights:u,leakyreluAlpha:h})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{const r=HC("outputShape",e,t,n),i=HC("strides",e,t,n),a=QC(e,t,n);return[s.conv2dTranspose(HC("x",e,t,n),HC("filter",e,t,n),r,[i[1],i[2]],a)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{const r=HC("strides",e,t,n),i=QC(e,t,n),a=HC("dilations",e,t,n),o=HC("dataFormat",e,t,n).toUpperCase();return[s.depthwiseConv2d(HC("input",e,t,n),HC("filter",e,t,n),[r[1],r[2]],i,o,[a[1],a[2]])]}case"Conv3D":{const r=HC("strides",e,t,n),i=HC("pad",e,t,n),a=HC("dataFormat",e,t,n).toUpperCase(),o=HC("dilations",e,t,n);return[s.conv3d(HC("x",e,t,n),HC("filter",e,t,n),[r[1],r[2],r[3]],i,a,[o[1],o[2],o[3]])]}case"AvgPool":{const r=HC("strides",e,t,n),i=HC("pad",e,t,n),a=HC("kernelSize",e,t,n);return[s.avgPool(HC("x",e,t,n),[a[1],a[2]],[r[1],r[2]],i)]}case"MaxPool":{const r=HC("strides",e,t,n),i=HC("pad",e,t,n),a=HC("kernelSize",e,t,n);return[s.maxPool(HC("x",e,t,n),[a[1],a[2]],[r[1],r[2]],i)]}case"MaxPoolWithArgmax":{const r=HC("strides",e,t,n),i=HC("pad",e,t,n),a=HC("kernelSize",e,t,n),o=HC("includeBatchInIndex",e,t,n),{result:l,indexes:u}=s.maxPoolWithArgmax(HC("x",e,t,n),[a[1],a[2]],[r[1],r[2]],i,o);return[l,u]}case"AvgPool3D":{const r=HC("strides",e,t,n),i=HC("pad",e,t,n),a=HC("kernelSize",e,t,n);return[s.avgPool3d(HC("x",e,t,n),[a[1],a[2],a[3]],[r[1],r[2],r[3]],i)]}case"MaxPool3D":{const r=HC("strides",e,t,n),i=HC("pad",e,t,n),a=HC("kernelSize",e,t,n);return[s.maxPool3d(HC("x",e,t,n),[a[1],a[2],a[3]],[r[1],r[2],r[3]],i)]}case"Dilation2D":{const r=HC("strides",e,t,n),i=HC("pad",e,t,n),a=HC("dilations",e,t,n),o=r[1],l=r[2],u=a[1],c=a[2];return[s.dilation2d(HC("x",e,t,n),HC("filter",e,t,n),[o,l],i,[u,c],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"creation":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"Fill":{const r=HC("shape",e,t,n),i=HC("dtype",e,t,n),a=HC("value",e,t,n);return[s.fill(r,a,i)]}case"LinSpace":{const r=HC("start",e,t,n),i=HC("stop",e,t,n),a=HC("num",e,t,n);return[s.linspace(r,i,a)]}case"Multinomial":{const r=HC("logits",e,t,n),i=HC("numSamples",e,t,n),a=HC("seed",e,t,n);return[s.multinomial(r,i,a)]}case"OneHot":{const r=HC("indices",e,t,n),i=HC("depth",e,t,n),a=HC("onValue",e,t,n),o=HC("offValue",e,t,n),l=HC("dtype",e,t,n);return[s.oneHot(r,i,a,o,l)]}case"Ones":return[s.ones(HC("shape",e,t,n),HC("dtype",e,t,n))];case"OnesLike":return[s.onesLike(HC("x",e,t,n))];case"RandomStandardNormal":return[s.randomStandardNormal(HC("shape",e,t,n),HC("dtype",e,t,n),HC("seed",e,t,n))];case"RandomUniform":return[s.randomUniform(HC("shape",e,t,n),HC("minval",e,t,n),HC("maxval",e,t,n),HC("dtype",e,t,n))];case"RandomUniformInt":return[s.randomUniformInt(HC("shape",e,t,n),HC("minval",e,t,n),HC("maxval",e,t,n),HC("seed",e,t,n))];case"Range":{const r=HC("start",e,t,n),i=HC("stop",e,t,n),a=HC("step",e,t,n);return[s.range(r,i,a,HC("dtype",e,t,n))]}case"TruncatedNormal":{const r=HC("shape",e,t,n),i=HC("mean",e,t,n),a=HC("stdDev",e,t,n),o=HC("seed",e,t,n);return[s.truncatedNormal(r,i,a,HC("dtype",e,t,n),o)]}case"Zeros":return[s.zeros(HC("shape",e,t,n),HC("dtype",e,t,n))];case"ZerosLike":return[s.zerosLike(HC("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"dynamic":return(async(e,t,n,s,r=k)=>{switch(e.op){case"NonMaxSuppressionV5":{const{boxes:s,scores:i,maxOutputSize:a,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=jk(e,t,n),c=await r.image.nonMaxSuppressionWithScoreAsync(s,i,a,o,l,u);return[c.selectedIndices,c.selectedScores]}case"NonMaxSuppressionV4":{const{boxes:s,scores:i,maxOutputSize:a,iouThreshold:o,scoreThreshold:l}=jk(e,t,n),u=HC("padToMaxOutputSize",e,t,n),c=await r.image.nonMaxSuppressionPaddedAsync(s,i,a,o,l,u);return[c.selectedIndices,c.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{const{boxes:s,scores:i,maxOutputSize:a,iouThreshold:o,scoreThreshold:l}=jk(e,t,n);return[await r.image.nonMaxSuppressionAsync(s,i,a,o,l)]}case"Where":{const s=r.cast(HC("condition",e,t,n),"bool"),i=[await r.whereAsync(s)];return s.dispose(),i}case"ListDiff":return r.setdiff1dAsync(HC("x",e,t,n),HC("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n);case"evaluation":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"LowerBound":{const r=HC("sortedSequence",e,t,n),i=HC("values",e,t,n);return[s.lowerBound(r,i)]}case"TopKV2":{const r=HC("x",e,t,n),i=HC("k",e,t,n),a=HC("sorted",e,t,n),o=s.topk(r,i,a);return[o.values,o.indices]}case"UpperBound":{const r=HC("sortedSequence",e,t,n),i=HC("values",e,t,n);return[s.upperBound(r,i)]}case"Unique":{const r=HC("x",e,t,n),i=s.unique(r);return[i.values,i.indices]}case"UniqueV2":{const r=HC("x",e,t,n),i=HC("axis",e,t,n),a=s.unique(r,i);return[a.values,a.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"image":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"ResizeBilinear":{const r=HC("images",e,t,n),i=HC("size",e,t,n),a=HC("alignCorners",e,t,n),o=HC("halfPixelCenters",e,t,n);return[s.image.resizeBilinear(r,[i[0],i[1]],a,o)]}case"ResizeNearestNeighbor":{const r=HC("images",e,t,n),i=HC("size",e,t,n),a=HC("alignCorners",e,t,n),o=HC("halfPixelCenters",e,t,n);return[s.image.resizeNearestNeighbor(r,[i[0],i[1]],a,o)]}case"CropAndResize":{const r=HC("image",e,t,n),i=HC("boxes",e,t,n),a=HC("boxInd",e,t,n),o=HC("cropSize",e,t,n),l=HC("method",e,t,n),u=HC("extrapolationValue",e,t,n);return[s.image.cropAndResize(r,i,a,o,l,u)]}case"ImageProjectiveTransformV3":{const r=HC("images",e,t,n),i=HC("transforms",e,t,n),a=HC("outputShape",e,t,n),o=HC("fillValue",e,t,n),l=HC("interpolation",e,t,n),u=HC("fillMode",e,t,n);return[s.image.transform(r,i,l.toLowerCase(),u.toLowerCase(),o,a)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"graph":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":const r=HC("default",e,t,n);return[KC(e.name,t,n)||r];case"Placeholder":return[KC(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":case"Snapshot":return[JC(HC("x",e,t,n))];case"IdentityN":return HC("x",e,t,n).map((e=>JC(e)));case"Shape":return[s.tensor1d(HC("x",e,t,n).shape,"int32")];case"ShapeN":return HC("x",e,t,n).map((e=>s.tensor1d(e.shape)));case"Size":return[s.scalar(HC("x",e,t,n).size,"int32")];case"Rank":return[s.scalar(HC("x",e,t,n).rank,"int32")];case"NoOp":return[s.scalar(1)];case"Print":const i=HC("x",e,t,n),a=HC("data",e,t,n);HC("message",e,t,n),HC("summarize",e,t,n);for(let e=0;e((e,t,n,s=k)=>{switch(e.op){case"Equal":return[s.equal(HC("a",e,t,n),HC("b",e,t,n))];case"NotEqual":return[s.notEqual(HC("a",e,t,n),HC("b",e,t,n))];case"Greater":return[s.greater(HC("a",e,t,n),HC("b",e,t,n))];case"GreaterEqual":return[s.greaterEqual(HC("a",e,t,n),HC("b",e,t,n))];case"Less":return[s.less(HC("a",e,t,n),HC("b",e,t,n))];case"LessEqual":return[s.lessEqual(HC("a",e,t,n),HC("b",e,t,n))];case"LogicalAnd":return[s.logicalAnd(HC("a",e,t,n),HC("b",e,t,n))];case"LogicalNot":return[s.logicalNot(HC("a",e,t,n))];case"LogicalOr":return[s.logicalOr(HC("a",e,t,n),HC("b",e,t,n))];case"Select":case"SelectV2":return[s.where(HC("condition",e,t,n),HC("a",e,t,n),HC("b",e,t,n))];case"BitwiseAnd":return[s.bitwiseAnd(HC("a",e,t,n),HC("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"matrices":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[s.matMul(HC("a",e,t,n),HC("b",e,t,n),HC("transposeA",e,t,n),HC("transposeB",e,t,n))];case"Einsum":return[s.einsum(HC("equation",e,t,n),...HC("tensors",e,t,n))];case"Transpose":return[s.transpose(HC("x",e,t,n),HC("perm",e,t,n))];case"_FusedMatMul":const[r,i]=HC("fusedOps",e,t,n),a="biasadd"===r,o="prelu"===i,l=HC("numArgs",e,t,n),u=HC("leakyreluAlpha",e,t,n);if(a){if(o&&2!==l)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&1!==l)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}const[c,h]=HC("args",e,t,n);return[s.fused.matMul({a:HC("a",e,t,n),b:HC("b",e,t,n),transposeA:HC("transposeA",e,t,n),transposeB:HC("transposeB",e,t,n),bias:c,activation:i,preluActivationWeights:h,leakyreluAlpha:u})];case"MatrixBandPart":return[s.linalg.bandPart(HC("a",e,t,n),HC("numLower",e,t,n),HC("numUpper",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"normalization":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"EuclideanNorm":return[s.euclideanNorm(HC("x",e,t,n),HC("axis",e,t,n),HC("keepDims",e,t,n))];case"FusedBatchNorm":case"FusedBatchNormV2":case"FusedBatchNormV3":return[s.batchNorm(HC("x",e,t,n),HC("mean",e,t,n),HC("variance",e,t,n),HC("offset",e,t,n),HC("scale",e,t,n),HC("epsilon",e,t,n))];case"LRN":return[s.localResponseNormalization(HC("x",e,t,n),HC("radius",e,t,n),HC("bias",e,t,n),HC("alpha",e,t,n),HC("beta",e,t,n))];case"Softmax":return[s.softmax(HC("x",e,t,n))];case"LogSoftmax":return[s.logSoftmax(HC("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"ragged":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"RaggedGather":{const{outputNestedSplits:r,outputDenseValues:i}=s.raggedGather(HC("paramsNestedSplits",e,t,n),HC("paramsDenseValues",e,t,n),HC("indices",e,t,n),HC("outputRaggedRank",e,t,n));return r.concat(i)}case"RaggedRange":{const{rtNestedSplits:r,rtDenseValues:i}=s.raggedRange(HC("starts",e,t,n),HC("limits",e,t,n),HC("splits",e,t,n));return[r,i]}case"RaggedTensorToTensor":return[s.raggedTensorToTensor(HC("shape",e,t,n),HC("values",e,t,n),HC("defaultValue",e,t,n),HC("rowPartitionTensors",e,t,n),HC("rowPartitionTypes",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"reduction":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"Max":{const r=HC("axis",e,t,n),i=HC("keepDims",e,t,n);return[s.max(HC("x",e,t,n),r,i)]}case"Mean":{const r=HC("axis",e,t,n),i=HC("keepDims",e,t,n);return[s.mean(HC("x",e,t,n),r,i)]}case"Min":{const r=HC("axis",e,t,n),i=HC("keepDims",e,t,n);return[s.min(HC("x",e,t,n),r,i)]}case"Sum":{const r=HC("axis",e,t,n),i=HC("keepDims",e,t,n);return[s.sum(HC("x",e,t,n),r,i)]}case"All":{const r=HC("axis",e,t,n),i=HC("keepDims",e,t,n);return[s.all(HC("x",e,t,n),r,i)]}case"Any":{const r=HC("axis",e,t,n),i=HC("keepDims",e,t,n);return[s.any(HC("x",e,t,n),r,i)]}case"ArgMax":{const r=HC("axis",e,t,n);return[s.argMax(HC("x",e,t,n),r)]}case"ArgMin":{const r=HC("axis",e,t,n);return[s.argMin(HC("x",e,t,n),r)]}case"Prod":{const r=HC("axis",e,t,n),i=HC("keepDims",e,t,n);return[s.prod(HC("x",e,t,n),r,i)]}case"Cumprod":{const r=HC("axis",e,t,n),i=HC("exclusive",e,t,n),a=HC("reverse",e,t,n);return[s.cumprod(HC("x",e,t,n),r,i,a)]}case"Cumsum":{const r=HC("axis",e,t,n),i=HC("exclusive",e,t,n),a=HC("reverse",e,t,n);return[s.cumsum(HC("x",e,t,n),r,i,a)]}case"Bincount":const r=HC("x",e,t,n),i=HC("weights",e,t,n),a=HC("size",e,t,n);return[s.bincount(r,i,a)];case"DenseBincount":{const r=HC("x",e,t,n),i=HC("weights",e,t,n),a=HC("size",e,t,n),o=HC("binaryOutput",e,t,n);return[s.denseBincount(r,i,a,o)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"slice_join":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"ConcatV2":case"Concat":{const r=HC("n",e,t,n),i=HC("axis",e,t,n);let a=HC("tensors",e,t,n);return a=a.slice(0,r),[s.concat(a,i)]}case"Gather":{const r=HC("x",e,t,n),i=HC("indices",e,t,n);return[s.gather(r,s.cast(i,"int32"),0)]}case"GatherV2":{const r=HC("axis",e,t,n),i=HC("batchDims",e,t,n),a=HC("x",e,t,n),o=HC("indices",e,t,n);return[s.gather(a,s.cast(o,"int32"),r,i)]}case"Reverse":{const r=HC("dims",e,t,n),i=[];for(let e=0;e{const r=HC("axis",e,t,n),i=HC("tensors",e,t,n),a=i[0].shape,o=s.squeeze(i[0]).shape,l=i.map((e=>{const t=$t(e.shape,a);if(!t&&!$t(s.squeeze(e).shape,o))throw new Error("the input tensors shape does not match");return t?e:s.reshape(e,a)}));return[s.stack(l,r)]}));case"Unpack":{const r=HC("axis",e,t,n),i=HC("tensor",e,t,n);return s.unstack(i,r)}case"Tile":{const r=HC("reps",e,t,n);return[s.tile(HC("x",e,t,n),r)]}case"Split":case"SplitV":{const r=HC("axis",e,t,n),i=HC("numOrSizeSplits",e,t,n),a=HC("x",e,t,n);return s.split(a,i,r)}case"ScatterNd":{const r=HC("indices",e,t,n),i=HC("values",e,t,n),a=HC("shape",e,t,n);return[s.scatterND(r,i,a)]}case"GatherNd":{const r=HC("x",e,t,n),i=HC("indices",e,t,n);return[s.gatherND(r,i)]}case"SparseToDense":{const r=HC("sparseIndices",e,t,n),i=HC("outputShape",e,t,n),a=HC("sparseValues",e,t,n),o=HC("defaultValue",e,t,n);return[s.sparseToDense(r,a,i,a.dtype===o.dtype?o:s.cast(o,a.dtype))]}case"TensorScatterUpdate":{const r=HC("indices",e,t,n),i=HC("values",e,t,n),a=HC("tensor",e,t,n);return[s.tensorScatterUpdate(a,r,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"sparse":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"SparseFillEmptyRows":{const{outputIndices:r,outputValues:i,emptyRowIndicator:a,reverseIndexMap:o}=s.sparse.sparseFillEmptyRows(HC("indices",e,t,n),HC("values",e,t,n),HC("denseShape",e,t,n),HC("defaultValue",e,t,n));return[r,i,a,o]}case"SparseReshape":{const{outputIndices:r,outputShape:i}=s.sparse.sparseReshape(HC("inputIndices",e,t,n),HC("inputShape",e,t,n),HC("newShape",e,t,n));return[r,i]}case"SparseSegmentMean":return[s.sparse.sparseSegmentMean(HC("data",e,t,n),HC("indices",e,t,n),HC("segmentIds",e,t,n))];case"SparseSegmentSum":return[s.sparse.sparseSegmentSum(HC("data",e,t,n),HC("indices",e,t,n),HC("segmentIds",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"spectral":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"FFT":return[s.fft(HC("x",e,t,n))];case"IFFT":return[s.ifft(HC("x",e,t,n))];case"RFFT":return[s.rfft(HC("x",e,t,n))];case"IRFFT":return[s.irfft(HC("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"string":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"StaticRegexReplace":return[s.string.staticRegexReplace(HC("input",e,t,n),HC("pattern",e,t,n),HC("rewrite",e,t,n),HC("replaceGlobal",e,t,n))];case"StringNGrams":{const{nGrams:r,nGramsSplits:i}=s.string.stringNGrams(HC("data",e,t,n),HC("dataSplits",e,t,n),HC("separator",e,t,n),HC("nGramWidths",e,t,n),HC("leftPad",e,t,n),HC("rightPad",e,t,n),HC("padWidth",e,t,n),HC("preserveShortSequences",e,t,n));return[r,i]}case"StringSplit":{const{indices:r,values:i,shape:a}=s.string.stringSplit(HC("input",e,t,n),HC("delimiter",e,t,n),HC("skipEmpty",e,t,n));return[r,i,a]}case"StringToHashBucketFast":return[s.string.stringToHashBucketFast(HC("input",e,t,n),HC("numBuckets",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"transformation":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"Cast":return[s.cast(HC("x",e,t,n),HC("dtype",e,t,n))];case"ExpandDims":{const r=HC("axis",e,t,n);return[s.expandDims(HC("x",e,t,n),r)]}case"Squeeze":{const r=HC("axis",e,t,n);return[s.squeeze(HC("x",e,t,n),r)]}case"Reshape":return[s.reshape(HC("x",e,t,n),HC("shape",e,t,n))];case"EnsureShape":return[s.ensureShape(HC("x",e,t,n),HC("shape",e,t,n))];case"MirrorPad":return[s.mirrorPad(HC("x",e,t,n),HC("padding",e,t,n),HC("mode",e,t,n))];case"PadV2":case"Pad":return[s.pad(HC("x",e,t,n),HC("padding",e,t,n),HC("constantValue",e,t,n))];case"SpaceToBatchND":{const r=HC("blockShape",e,t,n),i=HC("paddings",e,t,n);return[s.spaceToBatchND(HC("x",e,t,n),r,i)]}case"BatchToSpaceND":{const r=HC("blockShape",e,t,n),i=HC("crops",e,t,n);return[s.batchToSpaceND(HC("x",e,t,n),r,i)]}case"DepthToSpace":{const r=HC("blockSize",e,t,n),i=HC("dataFormat",e,t,n).toUpperCase();return[s.depthToSpace(HC("x",e,t,n),r,i)]}case"BroadcastTo":return[s.broadcastTo(HC("x",e,t,n),HC("shape",e,t,n))];case"BroadcastArgs":return[s.broadcastArgs(HC("s0",e,t,n),HC("s1",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"hash_table":return(async(e,t,n,s)=>{switch(e.op){case"HashTable":case"HashTableV2":{const r=s.getHashTableHandleByName(e.name);if(null!=r)return[r];{const r=HC("keyDType",e,t,n),i=HC("valueDType",e,t,n),a=new Gk(r,i);return s.addHashTable(e.name,a),[a.handle]}}case"InitializeTable":case"InitializeTableV2":case"LookupTableImport":case"LookupTableImportV2":{const r=HC("tableHandle",e,t,n,s),i=HC("keys",e,t,n),a=HC("values",e,t,n),o=s.getHashTableById(r.id);return[await o.import(i,a)]}case"LookupTableFind":case"LookupTableFindV2":{const r=HC("tableHandle",e,t,n,s),i=HC("keys",e,t,n),a=HC("defaultValue",e,t,n),o=s.getHashTableById(r.id);return[await o.find(i,a)]}case"LookupTableSize":case"LookupTableSizeV2":{const r=HC("tableHandle",e,t,n,s);return[s.getHashTableById(r.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n,s);case"custom":const i=qC(e.op);if(i&&i.customExecutor)return i.customExecutor(new Mk(e,t,n));throw TypeError(`Custom op ${e.op} is not registered.`);default:throw TypeError(`Unknown op '${e.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,n);return xn(i)?i.then((e=>[].concat(e))):[].concat(i)}class Hk{constructor(e={},t={},n={},s={},r){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=s,this.parseNodeNameCache=r,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){const e=[];for(let t=0;t0===e.id&&0===e.iterationId?"":`${e.frameName}-${e.iterationId}`)).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(!(this.contexts&&this.contexts.length>1))throw new Error("Cannot exit frame, the context is empty");this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift()}nextIteration(){if(!(this.contexts&&this.contexts.length>0))throw new Error("Cannot increase frame iteration, the context is empty");{this.contexts=this.contexts.slice(),this.lastId++;const e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(const t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(const t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}}function Kk(e,t,n,s){const r=new Set,i=[];let a=null,o=null;const l=new Set,u=new Set(Object.keys(e).map((e=>YC(e)[0])));s=s||[];const c=new Set(s.map((e=>YC(e.name)[0]))),h=[...t];for(;h.length>0;){const e=h.pop();(Jk(e)||eS(e)||tS(e))&&null==a&&(a=e,o=a.children.map((e=>e.name)).filter((e=>r.has(e)))),r.add(e.name),null==n[e.name]&&(u.has(e.name)||c.has(e.name)||(0!==e.inputs.length?e.inputs.forEach((e=>{l.has(e.name)||(l.add(e.name),h.push(e))})):i.push(e.name)))}return{inputs:e,outputs:t,usedNodes:r,missingInputs:i,dynamicNode:a,syncInputs:o}}function $k(e,t){const{usedNodes:n,inputs:s}=t,r=Object.keys(s).map((e=>YC(e)[0])).map((t=>e.nodes[t])),i=e.initNodes||[],a=e=>n.has("string"==typeof e?e:e.name);function o(e){return[...new Map(e.map((e=>[e.name,e]))).values()]}const l=o([...r,...e.weights,...i]).filter(a),u=o([...l,...Object.values(e.nodes)]).filter(a),c=new Map(u.map((e=>[e.name,e]))),h={};for(const e of u){h[e.name]=h[e.name]||0;for(const t of e.children)a(t)||(h[t.name]=Number.POSITIVE_INFINITY),h[t.name]=(h[t.name]||0)+1}const d=Object.entries(h).filter((([,e])=>0===e)).map((([e])=>e)),p=[...d];for(;d.length>0;){const e=d.pop(),t=c.get(e);for(const e of t.children.filter(a))0==--h[e.name]&&(p.push(e.name),d.push(e.name))}const f=function(e,t){const n=new Map(e.map((e=>[e.name,e]))),s=t.map((e=>e.name)),r=new Set(s);for(;s.length>0;){const e=s.pop(),t=n.get(e);for(const e of t.children)n.has(e.name)&&!r.has(e.name)&&(r.add(e.name),s.push(e.name))}const i=e.filter((e=>r.has(e.name)));return i}(p.map((e=>c.get(e))),l);return function(e,t){const n=new Map(e.map(((e,t)=>[e.name,t]))),s=new Set(t.map((e=>e.name))),r=e=>s.has("string"==typeof e?e:e.name),i=new Set(e.map((e=>e.name))),a=e=>i.has("string"==typeof e?e:e.name);for(const t of e){for(const e of t.children.filter(a)){if(!n.has(e.name))throw new Xk(`Child ${e.name} of node ${t.name} is unreachable.`);if(n.get(t.name)>n.get(e.name))throw new Xk(`Node ${t.name} is scheduled to run after its child ${e.name}.`)}if(!r(t))for(const e of t.inputs){if(!n.has(e.name))throw new Xk(`Input ${e.name} of node ${t.name} is unreachable.`);if(n.get(e.name)>n.get(t.name))throw new Xk(`Node ${t.name} is scheduled to run before its input ${e.name}.`)}}}(f,l),f}class Xk extends Error{constructor(e){super(`NodesExecutionOrderError: ${e}`)}}const Zk=new Set(["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"]),Yk=new Set(["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"]),Qk=new Set(["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"]);function Jk(e){return Zk.has(e.op)}function eS(e){return Yk.has(e.op)}function tS(e){return Qk.has(e.op)}class nS{get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){const t=Object.keys(e).map((t=>e[t].map((e=>e.id))));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map((e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0})))}get outputs(){return this._outputs.map((e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0})))}get inputNodes(){return this._inputs.map((e=>e.signatureKey||e.name))}get outputNodes(){return this._outputs.map((e=>{const t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t}))}get functions(){return Object.keys(this._functions).reduce(((e,t)=>(e[t]=this._functions[t].signature,e)),{})}constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this.parseNodeNameCache=new Map,this._weightMap={},this.SEPARATOR=",",this._functions={},this._functionExecutorMap={},this.keepIntermediateTensors=!1,this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,null!=e.functions&&Object.keys(e.functions).forEach((t=>{this._functionExecutorMap[t]=new nS(e.functions[t],this)}))}getCompilationKey(e,t){const n=e.map((e=>e.name)).sort(),s=t.map((e=>e.name)).sort();return n.join(this.SEPARATOR)+"--"+s.join(this.SEPARATOR)}compile(e,t){const n=Kk(e,t,this.weightMap,this._initNodes),{missingInputs:s,dynamicNode:r,syncInputs:i}=n;if(null!=r)throw new Error(`This execution contains the node '${r.name}', which has the dynamic op '${r.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${i}]`);if(s.length>0){const n=t.map((e=>e.name)),r=Object.keys(e);throw new Error(`Cannot compute the outputs [${n}] from the provided inputs [${r}]. Missing the following inputs: [${s}]`)}const a=$k(this.graph,n),o=function(e){const t=new Map(e.map(((e,t)=>[e.name,t]))),n=Number.MAX_SAFE_INTEGER,s=e.map(((e,t)=>Jk(e)?n:t)),r=e=>{const n=s[t.get(e.name)];return null==n?-1:n},i=e.map(((e,t)=>e.children.map(r).reduce(((e,t)=>Math.max(e,t)),s[t]))),a=new Map;for(let t=0;tthis.cloneAndKeepTensor(e)));return t}cloneTensorMap(e){return Object.fromEntries(Object.entries(e).map((([e,t])=>[e,this.cloneTensorList(t)])))}execute(e,t){this.disposeIntermediateTensors(),e=this.mapInputs(e);const n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);const s=n.map((e=>this.graph.nodes[YC(e)[0]])),r=t.map((e=>YC(e)[0])),i=new Set(r);let a=r.map((e=>this.graph.nodes[e]));0===a.length&&(a=this._outputs);const o=this.getCompilationKey(s,a);let l=this.compiledMap.get(o);null==l&&(l=this.compile(e,a),this.compiledMap.set(o,l));try{this.keepIntermediateTensors=Sn().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(e){this.keepIntermediateTensors=!1}const u={},c={};return Ao((()=>{const n=new Hk(this.weightMap,u,c,this.functionExecutorMap,this.parseNodeNameCache),s=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(e).forEach((t=>{const[r,i]=YC(t,n),a=[];a[i]=e[t],s[r]=a,this.keepIntermediateTensors&&(this.clonedTensorsMap[r]=this.cloneTensorList(a))}));const r=this.getFrozenTensorIds(s),{orderedNodes:a,nodeLiveUntilMap:o}=l;for(const e of a){if(s[e.name])continue;const t=qk(e,s,n,this._resourceManager);if(xn(t))throw new Error(`The execution of the op '${e.op}' returned a promise. Please use model.executeAsync() instead.`);s[e.name]=t,this.keepIntermediateTensors&&(this.clonedTensorsMap[e.name]=this.cloneTensorList(t)),this.checkTensorForDisposalWithNodeLiveUntilInfo(e,s,n,r,i,o.get(e.name))}return null==this.parent&&n.dispose(r),t.map((e=>KC(e,s,n)))}))}getFrozenTensorIds(e){const t=[].concat.apply([],Object.keys(e).map((t=>e[t])).map((e=>e.map((e=>e.id)))));return new Set(t)}checkTensorForDisposal(e,t,n,s,r,i,a){if(!Jk(t)&&!i.has(e)){for(const s of n[e])null!=s&&(a[s.id]=(a[s.id]||0)+t.children.length);for(const e of t.inputs){if(Jk(e))continue;const t=$C(e.name,n,s);if(null!=t)for(const e of t){if(!e||e.kept||r.has(e.id))continue;const t=a[e.id];1===t?(e.dispose(),delete a[e.id]):null!=t&&a[e.id]--}}}}checkTensorForDisposalWithNodeLiveUntilInfo(e,t,n,s,r,i){function a(e){return Jk(e)||r.has(e.name)}if(!Jk(e)&&null!=i)for(const e of i){if(a(e))continue;const r=$C(e.name,t,n);for(const e of r)!e||e.kept||s.has(e.id)||e.dispose()}}async executeAsync(e,t){return this._executeAsync(e,t)}disposeIntermediateTensors(){this.clonedTensorsMap&&(Object.values(this.clonedTensorsMap).forEach((e=>{for(const t of e)t&&!t.isDisposed&&t.dispose()})),this.clonedTensorsMap=null)}getIntermediateTensors(){return this.clonedTensorsMap}async _executeAsync(e,t,n=!1,s={},r={}){this.disposeIntermediateTensors(),n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));try{this.keepIntermediateTensors=Sn().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(e){this.keepIntermediateTensors=!1}const i=new Hk(this.weightMap,s,r,this.functionExecutorMap,this.parseNodeNameCache);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));const a=await this.executeWithControlFlow(e,i,t,n),o=t.map((e=>KC(e,a,i))),l=o.map((e=>e.id)),u=Object.keys(e).map((t=>e[t].id)),c=new Set([...l,...u,...this.weightIds]);return Object.values(a).forEach((e=>{e.forEach((e=>{!e||e.isDisposed||c.has(e.id)||e.dispose()}))})),null==this.parent&&i.dispose(c),o}async executeFunctionAsync(e,t,n){const s=e.reduce(((e,t,n)=>(e[this.inputs[n].name]=t,e)),{});return this._executeAsync(s,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,s){const r=Object.keys(e),i=r.map((e=>this.graph.nodes[YC(e)[0]])),a=n.map((e=>YC(e)[0])),o=new Set(a);let l=a.map((e=>this.graph.nodes[e]));0===l.length&&(l=this._outputs);const{usedNodes:u,missingInputs:c,dynamicNode:h,syncInputs:d}=Kk(e,l,this.weightMap,this._initNodes),p=[...i,...this.graph.weights,...this._initNodes||[]].map((e=>({node:e,contexts:t.currentContext}))),f=Object.assign({},this.weightMap);Object.keys(e).forEach((t=>{const[n,s]=YC(t),r=[];r[s]=e[t],f[n]=r}));const m={},g=this.getFrozenTensorIds(f),y={};for(;p.length>0;){const e=this.processStack(i,p,t,f,y,g,o,m,u);await Promise.all(e)}const b=l.filter((e=>!Jk(e)&&!KC(e.name,f,t))).map((e=>e.name));if(b.length>0){let e="";throw null!=h&&(e=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${d}]`),new Error(`Cannot compute the outputs [${b}] from the provided inputs [${r}]. Consider providing the following inputs: [${c}]. ${e}`)}return f}processStack(e,t,n,s,r,i,a,o,l){const u=[];for(;t.length>0;){const e=t.pop();n.currentContext=e.contexts;let c="";if("Enter"===e.node.op&&HC("isConstant",e.node,s,n)&&([c]=XC(e.node.name,n)),null==s[e.node.name]){const h=qk(e.node,s,n,this._resourceManager);c||([c]=XC(e.node.name,n));const d=n.currentContext;xn(h)?u.push(h.then((u=>(s[c]=u,this.keepIntermediateTensors&&(this.clonedTensorsMap[c]=this.cloneTensorList(u)),n.currentContext=d,this.checkTensorForDisposal(c,e.node,s,n,i,a,o),this.processChildNodes(e.node,t,n,s,r,l),u)))):(s[c]=h,this.keepIntermediateTensors&&(this.clonedTensorsMap[c]=this.cloneTensorList(h)),this.checkTensorForDisposal(c,e.node,s,n,i,a,o),this.processChildNodes(e.node,t,n,s,r,l))}else this.processChildNodes(e.node,t,n,s,r,l)}return u}processChildNodes(e,t,n,s,r,i){e.children.forEach((e=>{const[a]=XC(e.name,n);!r[a]&&i.has(e.name)&&("Merge"===e.op?e.inputNames.some((e=>!!KC(e,s,n)))&&(r[a]=!0,t.push({contexts:n.currentContext,node:e})):e.inputNames.every((e=>!!KC(e,s,n)))&&(r[a]=!0,t.push({contexts:n.currentContext,node:e})))}))}dispose(){Object.keys(this.weightMap).forEach((e=>this.weightMap[e].forEach((e=>e.dispose()))))}checkInputShapeAndType(e){Object.keys(e).forEach((t=>{const n=e[t],[s]=YC(t),r=this.graph.nodes[s];if(r.attrParams.shape&&r.attrParams.shape.value){const e=r.attrParams.shape.value;Gt(e.length===n.shape.length&&n.shape.every(((t,n)=>-1===e[n]||e[n]===t)),(()=>`The shape of dict['${r.name}'] provided in model.execute(dict) must be [${e}], but was [${n.shape}]`))}r.attrParams.dtype&&r.attrParams.dtype.value&&Gt(n.dtype===r.attrParams.dtype.value,(()=>`The dtype of dict['${r.name}'] provided in model.execute(dict) must be ${r.attrParams.dtype.value}, but was ${n.dtype}`))}))}mapInputs(e){var t,n;const s={};for(const r in e){const i=null===(n=null===(t=this._signature)||void 0===t?void 0:t.inputs)||void 0===n?void 0:n[r];null!=i?s[i.name]=e[r]:s[r]=e[r]}return s}checkInputs(e){const t=Object.keys(e).filter((e=>{const[t]=YC(e);return null==this.graph.nodes[t]}));if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map((e=>{var t,n;const s=null===(n=null===(t=this._signature)||void 0===t?void 0:t.outputs)||void 0===n?void 0:n[e];return null!=s?s.name:e}),{})}checkOutputs(e){e.forEach((e=>{const[t]=YC(e);if(!this.graph.nodes[t])throw new Error(`The output '${e}' is not found in the graph`)}))}}class sS{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(const e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(const e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}}const rS="?tfjs-format=file",iS="model.json";class aS{get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}get modelStructuredOutputKeys(){return this.structuredOutputKeys}constructor(t,n={},s=e){this.modelUrl=t,this.loadOptions=n,this.version="n/a",this.io=s,null==n&&(this.loadOptions={}),this.resourceManager=new sS}findIOHandler(){const e=this.modelUrl;if(null!=e.load)this.handler=e;else if(null!=this.loadOptions.requestInit)this.handler=this.io.browserHTTPRequest(e,this.loadOptions);else{const t=this.io.getLoadHandlers(e,this.loadOptions);if(0===t.length)t.push(this.io.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}load(){if(this.findIOHandler(),null==this.handler.load)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const e=this.handler.load();return xn(e)?e.then((e=>null==e.getWeightStream?this.loadSync(e):this.loadStreaming(e))):this.loadSync(e)}loadSync(e){const t=this.io.decodeWeights(e.weightData,e.weightSpecs);return this.loadWithWeightMap(e,t)}async loadStreaming(e){if(null==e.getWeightStream)throw new Error("Model artifacts missing streamWeights function");const t=await Mo(e.getWeightStream(),e.weightSpecs);return this.loadWithWeightMap(e,t)}loadWithWeightMap(e,t){this.artifacts=e;const n=this.artifacts.modelTopology;let s=this.artifacts.signature;if(null!=this.artifacts.userDefinedMetadata){const e=this.artifacts.userDefinedMetadata;null!=e.signature&&(s=e.signature),null!=e.structuredOutputKeys&&(this.structuredOutputKeys=e.structuredOutputKeys)}if(this.signature=s,this.version=`${n.versions.producer}.${n.versions.minConsumer}`,this.executor=new nS(wk.Instance.transformGraph(n,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(t),this.executor.resourceManager=this.resourceManager,null!=e.modelInitializer&&null!=e.modelInitializer.node){const t=wk.Instance.transformGraph(e.modelInitializer);this.initializer=new nS(t),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=e.initializerSignature}return!0}async save(e,t){if("string"==typeof e){const t=this.io.getSaveHandlers(e);if(0===t.length)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(t.length>1)throw new Error(`Found more than one (${t.length}) save handlers for URL '${e}'`);e=t[0]}if(null==e.save)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}addStructuredOutputNames(e){if(this.structuredOutputKeys){const t={};return(e instanceof Ma?[e]:e).forEach(((e,n)=>t[this.structuredOutputKeys[n]]=e)),t}return e}predict(e,t){const n=this.execute(e,this.outputNodes);return this.addStructuredOutputNames(n)}async predictAsync(e,t){const n=await this.executeAsync(e,this.outputNodes);return this.addStructuredOutputNames(n)}normalizeInputs(e){var t;if(!(e instanceof Ma||Array.isArray(e))){const n=null===(t=this.signature)||void 0===t?void 0:t.inputs;if(null!=n)for(const t in n){const s=n[t];null!=s.resourceId&&(e[t]=this.resourceIdToCapturedInput[s.resourceId])}return e}e=Array.isArray(e)?e:[e];const n=Object.keys(this.resourceIdToCapturedInput).length;if(e.length+n!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-n} non-resource placeholders, while there are ${e.length} input tensors provided.`);let s=0;return this.inputNodes.reduce(((t,n)=>{var r,i,a;const o=null===(a=null===(i=null===(r=this.signature)||void 0===r?void 0:r.inputs)||void 0===i?void 0:i[n])||void 0===a?void 0:a.resourceId;return t[n]=null!=o?this.resourceIdToCapturedInput[o]:e[s++],t}),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}executeInitializerGraph(){return null==this.initializer?[]:null==this.initializerSignature?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return null==this.initializer?[]:null==this.initializerSignature?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(e){if(this.resourceIdToCapturedInput={},this.initializerSignature){const t=this.initializerSignature.outputs,n=Object.keys(t);for(let s=0;s1?n:n[0]}async executeAsync(e,t){null==this.resourceIdToCapturedInput&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce(((t,n)=>(t[n]=[e[n]],t)),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&Co(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}}async function oS(t,n={},s=e){if(null==t)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");null==n&&(n={}),n.fromTFHub&&"string"==typeof t&&(t=function(e){e.endsWith("/")||(e+="/");return`${e}${iS}${rS}`}(t));const r=new aS(t,n,s);return await r.load(),r}function lS(e,t,n=new Map,s=new Set){if(null==e)return null;if("function"==typeof Blob&&e instanceof Blob)return e.slice();if(s.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);const r=t(e);if(r.recurse&&null!==r.value)throw new Error("A deep map function may not return both a value and recurse=true.");if(r.recurse){if(dS(e)){const r=Array.isArray(e)?[]:{};s.add(e);for(const i in e){const a=lS(e[i],t,n,s);r[i]=a}return s.delete(e),e.__proto__&&(r.__proto__=e.__proto__),r}throw new Error(`Can't recurse into non-iterable type: ${e}`)}return n.set(e,r.value),r.value}function uS(e,t=hS){return cS(e,t)}function cS(e,t,n=new Set){const s=e[0];if(n.has(s))throw new Error("Circular references are not supported.");const r=t(e);if(r.recurse&&null!==r.value)throw new Error("A deep zip function may not return both a value and recurse=true.");if(r.recurse){if(dS(s)){const r=Array.isArray(s)?[]:{};n.add(s);for(const i in s){const s=cS(e.map((e=>e[i])),t,n);r[i]=s}return n.delete(s),r}throw new Error(`Can't recurse into non-iterable type: ${s}`)}return r.value}function hS(e){return null===e?null:dS(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}function dS(e){let t=!1;if(Sn().get("IS_BROWSER"))t=e instanceof TextDecoder;else{const{StringDecoder:n}=__webpack_require__(7695);t=e instanceof n}return null!=e&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||"object"==typeof e&&!(e instanceof Ma)&&!(e instanceof Promise)&&!t)}function pS(e){return function(e,t){return lS(e,t)}(e,fS)}function fS(e){return e instanceof Ma?{value:e.clone(),recurse:!1}:dS(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}class mS{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,null==e)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return 0===this.length()}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(const t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);const e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");const e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");const t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}}class gS extends mS{constructor(){super(gS.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){const e=2*this.capacity,t=new Array(e),n=this.length();for(let e=0;e!0===e))}rowMajorBatch(e,t=!0){return new SS(this,e,t)}columnMajorBatch(e,t=!0,n=hS){return this.rowMajorBatch(e,t).map((e=>uS(e,n)))}concatenate(e,t){return new OS(new vS([this,e]),t)}take(e){return e<0||null==e?this:new kS(this,e)}skip(e){return e<0||null==e?this:new CS(this,e)}prefetch(e){return new MS(this,e)}shuffle(e,t){return new zS(this,e,t)}serial(){return new AS(this)}}class vS extends wS{constructor(e){super(),this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};const e=this.items[this.trav];return this.trav++,{value:pS(e),done:!1}}}class xS extends wS{constructor(e){super(),this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}}class AS extends wS{constructor(e){super(),this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){return this.upstream.next()}}class CS extends wS{constructor(e,t){super(),this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}}class SS extends wS{constructor(e,t,n=!0){super(),this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){const e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}}class _S extends wS{constructor(e,t){super(),this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;;){const e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;Co(e.value)}}}class ES extends wS{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){const e=await this.upstream.next();if(e.done)return{value:null,done:!0};const t=Xa(e.value),n=this.transform(e.value),s=Xa(n);for(const e of t)$a(e,s)||e.dispose();return{value:n,done:!1}}}class IS extends wS{constructor(e,t){super(),this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}}class TS extends wS{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){const e=await this.upstream.next();if(e.done)return{value:null,done:!0};const t=Xa(e.value),n=await this.transform(e.value),s=Xa(n);for(const e of t)$a(e,s)||e.dispose();return{value:n,done:!1}}}class NS extends wS{constructor(){super(),this.outputQueue=new gS,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;0===this.outputQueue.length();)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}}class RS extends NS{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){const e=await this.upstream.next();if(e.done)return!1;const t=Xa(e.value),n=this.transform(e.value),s=Xa(n);this.outputQueue.pushAll(n);for(const e of t)$a(e,s)||e.dispose();return!0}}class OS extends wS{constructor(e,t){super(),this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,null==this.iterator){const e=await this.moreIterators.next();if(e.done)return{value:null,done:!0};this.iterator=e.value,null!=this.baseErrorHandler&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}const t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}}var DS;!function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"}(DS||(DS={}));class MS extends wS{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new mS(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){const e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}}class zS extends MS{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=qd.alea(n||fa().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){const e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(!t.done)return this.refill(),t;this.upstreamExhausted=!0}return{value:null,done:!0}}}class FS{constructor(){this.size=null}batch(e,t=!0){const n=this;let s;return Gt(e>0,(()=>`batchSize needs to be positive, but it is\n ${e}`)),s=this.size===1/0||null==this.size?this.size:t?Math.ceil(this.size/e):Math.floor(this.size/e),BS((async()=>(await n.iterator()).columnMajorBatch(e,t,LS)),s)}concatenate(e){const t=this;let n;return n=this.size===1/0||e.size===1/0?1/0:null!=this.size&&null!=e.size?this.size+e.size:null,BS((async()=>(await t.iterator()).concatenate(await e.iterator())),n)}filter(e){const t=this;let n;return n=this.size===1/0?1/0:null,BS((async()=>(await t.iterator()).filter((t=>Ao((()=>e(t)))))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){const t=this;return BS((async()=>(await t.iterator()).map((t=>Ao((()=>e(t)))))),this.size)}mapAsync(e){const t=this;return BS((async()=>(await t.iterator()).mapAsync(e)),this.size)}prefetch(e){if(null==e)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");const t=this;return BS((async()=>(await t.iterator()).prefetch(e)),this.size)}repeat(e){const t=this;let n;return n=null!=this.size&&e>0?this.size*e:0===e?0:null!=this.size&&(void 0===e||e<0)?1/0:null,BS((async()=>bS(yS((async()=>({value:await t.iterator(),done:!1}))).take(e))),n)}skip(e){const t=this;let n;return n=null!=this.size&&e>=0&&this.size>=e?this.size-e:null!=this.size&&(this.size(await t.iterator()).skip(e)),n)}shuffle(e,t,n=!0){if(null==e||e<0)throw null==this.size?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);const s=this,r=qd.alea(t||fa().toString());return BS((async()=>{let t=r.int32();return n&&(t+=r.int32()),(await s.iterator()).shuffle(e,t.toString())}),this.size)}take(e){const t=this;let n;return n=null!=this.size&&this.size>e?e:null!=this.size&&this.size<=e?this.size:null,BS((async()=>(await t.iterator()).take(e)),n)}async toArray(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}}function BS(e,t=null){return new class extends FS{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function LS(e){if(null===e)return null;const t=e[0];if(null==(n=t)||null===(s=n)||"object"!=typeof s&&"function"!=typeof s||Array.isArray(n)||"object"==typeof n&&n instanceof Ma||ya(n)){return{value:function(e){if(0===e.length)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Ma?Np(e):yo(e)}(e),recurse:!1}}var n,s;return{value:null,recurse:!0}}FS.MAX_BUFFER_SIZE=1e4;Symbol("out"),Symbol("field"),Symbol("quote"),Symbol("quoteafterquote"),Symbol("quoteinquote");function PS(e,t){Array.isArray(e)||(e=[e]),e.forEach((e=>{null!=e&&Gt("complex64"!==e.dtype,(()=>`${t} does not support complex64 tensors in the CPU backend.`))}))}const US=Zp;class VS extends Lt{nextDataId(){return VS.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new Bt(this,vo())}write(e,t,n){this.firstUse&&(this.firstUse=!1,Sn().get("IS_NODE")&&Vi());const s={id:this.nextDataId()};return this.data.set(s,{values:e,dtype:n,refCount:1}),s}makeTensorInfo(e,t,n){let s;if("string"===t&&null!=n&&n.length>0&&on(n[0])){const r=n.map((e=>ma(e)));s=this.write(r,e,t)}else s=this.write(n,e,t);return{dataId:s,shape:e,dtype:t}}refCount(e){if(this.data.has(e)){return this.data.get(e).refCount}return 0}incRef(e){this.data.get(e).refCount++}decRef(e){if(this.data.has(e)){this.data.get(e).refCount--}}move(e,t,n,s,r){this.data.set(e,{values:t,dtype:s,refCount:r})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){const{dtype:t,complexTensorInfos:n}=this.data.get(e);if("complex64"===t){return Zm(this.readSync(n.real.dataId),this.readSync(n.imag.dataId))}return function(e,t){if(Array.isArray(e))return e;if("float32"===t)return e instanceof Float32Array?e:new Float32Array(e);if("int32"===t)return e instanceof Int32Array?e:new Int32Array(e);if("bool"===t||"string"===t)return Uint8Array.from(new Int32Array(e));throw new Error(`Unknown dtype ${t}`)}(this.data.get(e).values,t)}bufferSync(e){const t=this.readSync(e.dataId);if("string"===e.dtype)try{const n=t.map((e=>ga(e)));return Tl(e.shape,e.dtype,n)}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return Tl(e.shape,e.dtype,t)}makeOutput(e,t,n){return vo().makeTensorFromTensorInfo(this.makeTensorInfo(t,n,e),this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;const{complexTensorInfos:n}=this.data.get(e);null!=n&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){const t=fa();e();return{kernelMs:fa()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){PS([e],"where");const t=this.readSync(e.dataId);return US(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}}VS.nextDataId=0;function WS(e){return(t,n,s)=>{const r=sn(n,t.length);for(let n=0;n{const{x:a}=s;PS(a,e);const o=i,l=o.data.get(a.dataId).values;let u;if("string"===a.dtype){if(!Array.isArray(l))throw new Error("String tensor's value was not an instance of Array");u=Ng(l)}else u=l;const c=n||a.dtype,h=t(u,c,r);return o.makeTensorInfo(a.shape,c,h)}}So("cpu",(()=>new VS),1);const qS=jS(Is,(e=>e>=0?e:Math.exp(e)-1)),HS={kernelName:Is,backendName:"cpu",kernelFunc:qS};function KS(e){const{inputs:t,backend:n}=e,{x:s}=t;return n.incRef(s.dataId),{dataId:s.dataId,shape:s.shape,dtype:s.dtype}}const $S={kernelName:qs,backendName:"cpu",kernelFunc:KS};function XS(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{alpha:i}=s;PS([r],"leakyRelu");const a=Kt(r.shape),o=n.data.get(r.dataId).values,l=nn("float32",a);for(let e=0;e{const a=su(t,n),o=a.length,l=dn(a),u=nn(i,Kt(a)),c=t.length,h=n.length,d=dn(t),p=dn(n),f=tu(t,a),m=tu(n,a);if(f.length+m.length===0)for(let t=0;ti[e]=0));const a=wn(i,c,d),g=n.slice(-h);m.forEach((e=>g[e]=0));const y=wn(g,h,p);u[t]=e(s[a],r[y])}return[u,a]}}const QS=YS(((e,t)=>e<0?t*e:e));function JS(e){const{inputs:t,backend:n}=e,{x:s,alpha:r}=t;PS([s,r],"prelu");const i=n.data.get(s.dataId).values,a=n.data.get(r.dataId).values,[o,l]=QS(s.shape,r.shape,i,a,"float32");return n.makeTensorInfo(l,"float32",o)}const e_={kernelName:Or,backendName:"cpu",kernelFunc:JS},t_=jS(Ur,(e=>Math.max(0,e))),n_={kernelName:Ur,backendName:"cpu",kernelFunc:t_},s_=jS(Hr,(e=>Math.min(Math.max(0,e),6))),r_={kernelName:Hr,backendName:"cpu",kernelFunc:s_},i_=WS((e=>1/(1+Math.exp(-e)))),a_=jS(ii,(e=>1/(1+Math.exp(-e)))),o_={kernelName:ii,backendName:"cpu",kernelFunc:a_};function l_(e,t,n,s,r){if("linear"===n)return KS({inputs:{x:t},backend:e});if("relu"===n)return t_({inputs:{x:t},backend:e});if("elu"===n)return qS({inputs:{x:t},backend:e});if("relu6"===n)return s_({inputs:{x:t},backend:e});if("prelu"===n)return JS({inputs:{x:t,alpha:s},backend:e});if("leakyrelu"===n)return XS({inputs:{x:t},backend:e,attrs:{alpha:r}});if("sigmoid"===n)return a_({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function u_(e){const{inputs:t,backend:n}=e,{real:s,imag:r}=t,i=n.data.get(s.dataId).values,a=n.data.get(r.dataId).values,o=n.makeTensorInfo(s.shape,"complex64");return n.data.get(o.dataId).complexTensorInfos={real:n.makeTensorInfo(s.shape,"float32",i),imag:n.makeTensorInfo(r.shape,"float32",a)},o}const c_={kernelName:ns,backendName:"cpu",kernelFunc:u_};function h_(e,t,n="float32"){if("complex64"===n){return u_({inputs:{real:h_(e,t,"float32"),imag:h_(e,t,"float32")},backend:e})}const s=gn(Kt(t),n);return e.makeTensorInfo(t,n,s)}function d_(e){const{inputs:t,backend:n}=e,{input:s}=t,r=n.data.get(s.dataId).complexTensorInfos.real,i=n.data.get(r.dataId).values;return n.makeTensorInfo(r.shape,r.dtype,i)}const p_={kernelName:Lr,backendName:"cpu",kernelFunc:d_};function f_(e,t,n,s){if("int32"===s){return[t,"int32",Int32Array.from(e)]}if("bool"===s){const s=pa([0],n),[r,i]=YS(((e,t)=>e!==t?1:0))(t,[],e,s,"bool");return[i,"bool",r]}throw new Error(`Error in Cast: failed to cast ${n} to ${s}`)}function m_(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{dtype:i}=s;if("complex64"===i){if("complex64"===r.dtype)return KS({inputs:{x:r},backend:n});const e=h_(n,r.shape,r.dtype),t=m_({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),s=u_({inputs:{real:t,imag:e},backend:n});return n.disposeIntermediateTensorInfo(e),n.disposeIntermediateTensorInfo(t),s}if("complex64"===r.dtype){const e=d_({inputs:{input:r},backend:n}),t=m_({inputs:{x:e},backend:n,attrs:{dtype:i}});return n.disposeIntermediateTensorInfo(e),t}if(!rn(r.dtype,i)){const e=KS({inputs:{x:r},backend:n});return{dataId:e.dataId,shape:e.shape,dtype:i}}const a=n.data.get(r.dataId).values,[o,l,u]=f_(a,r.shape,r.dtype,i);return n.makeTensorInfo(o,l,u)}const g_={kernelName:Jn,backendName:"cpu",kernelFunc:m_};function y_(e,t,n,s){return null==n?({inputs:n,backend:r})=>{const{a:i,b:a}=n,o=r;PS([i,a],e);const l=o.data.get(i.dataId).values,u=o.data.get(a.dataId).values,c="string"===i.dtype?Ng(l):l,h="string"===i.dtype?Ng(u):u,d=s||i.dtype,[p,f]=t(i.shape,a.shape,c,h,d);return o.makeTensorInfo(f,d,p)}:({inputs:e,backend:r})=>{const{a:i,b:a}=e,o=r;if("complex64"===i.dtype||"complex64"===a.dtype){const e=m_({inputs:{x:i},backend:o,attrs:{dtype:"complex64"}}),t=o.data.get(e.dataId),s=t.complexTensorInfos.real,r=t.complexTensorInfos.imag,l=o.data.get(s.dataId).values,u=o.data.get(r.dataId).values,c=m_({inputs:{x:a},backend:o,attrs:{dtype:"complex64"}}),h=o.data.get(c.dataId),d=h.complexTensorInfos.real,p=h.complexTensorInfos.imag,f=o.data.get(d.dataId).values,m=o.data.get(p.dataId).values,[g,y,b]=n(i.shape,a.shape,l,u,f,m),w=o.makeTensorInfo(b,"float32",g),v=o.makeTensorInfo(b,"float32",y),x=u_({inputs:{real:w,imag:v},backend:o});return o.disposeIntermediateTensorInfo(e),o.disposeIntermediateTensorInfo(c),o.disposeIntermediateTensorInfo(w),o.disposeIntermediateTensorInfo(v),x}{const e=o.data.get(i.dataId).values,n=o.data.get(a.dataId).values,r=s||i.dtype,[l,u]=t(i.shape,a.shape,e,n,r);return o.makeTensorInfo(u,r,l)}}}function b_(e){return(t,n,s,r,i,a)=>{const o=su(t,n),l=Kt(o),u=o.length,c=dn(o),h=nn("float32",l),d=nn("float32",l),p=tu(t,o),f=tu(n,o),m=Zm(s,r),g=Zm(i,a),y=t.length,b=dn(t),w=n.length,v=dn(n);if(p.length+f.length===0)for(let t=0;ts[e]=0));const r=wn(s,y,b),i=n.slice(-w);f.forEach((e=>i[e]=0));const a=wn(i,w,v),o=e(m[2*r],m[2*r+1],g[2*a],g[2*a+1]);h[t]=o.real,d[t]=o.imag}return[h,d,o]}}const w_=YS(((e,t)=>e+t)),v_=b_(((e,t,n,s)=>({real:e+n,imag:t+s}))),x_=y_(Dn,w_,v_),A_={kernelName:Dn,backendName:"cpu",kernelFunc:x_};function C_(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{shape:i}=s,a=Kt(r.shape),o=Jt(i,a),l=Kt(o);Gt(a===l,(()=>`The new shape (${o}) has ${l} elements and the old shape (${r.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`)),n.incRef(r.dataId);const u=n.data.get(r.dataId);if(null!=u.complexTensorInfos){const e=u.complexTensorInfos.real,t=u.complexTensorInfos.imag;e.shape=o,t.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}const k_={kernelName:Vr,backendName:"cpu",kernelFunc:C_};function S_(e){const{inputs:t,backend:n,attrs:s}=e,{a:r,b:i}=t,{transposeA:a,transposeB:o}=s;PS([r,i],"matMul");const l=r.shape.length,u=i.shape.length,c=a?r.shape[l-2]:r.shape[l-1],h=o?i.shape[u-1]:i.shape[u-2],d=a?r.shape[l-1]:r.shape[l-2],p=o?i.shape[u-2]:i.shape[u-1],f=r.shape.slice(0,-2),m=i.shape.slice(0,-2),g=Kt(f),y=Kt(m),b=su(r.shape.slice(0,-2),i.shape.slice(0,-2)).concat([d,p]);Gt(c===h,(()=>`Error in matMul: inner shapes (${c}) and (${h}) of Tensors with shapes ${r.shape} and ${i.shape} and transposeA=${a} and transposeB=${o} must match.`));const w=o?[y,p,h]:[y,h,p],v=C_({inputs:{x:r},backend:n,attrs:{shape:a?[g,c,d]:[g,d,c]}}),x=C_({inputs:{x:i},backend:n,attrs:{shape:w}}),A=a?v.shape[1]:v.shape[2],C=a?v.shape[2]:v.shape[1],k=o?x.shape[1]:x.shape[2],S=Math.max(g,y),_=n.data.get(v.dataId).values,E=n.data.get(x.dataId).values,I=dn(v.shape),T=dn(x.shape),[N,R,O]=a?[I[0],1,I[1]]:[I[0],I[1],1],[D,M,z]=o?[1,T[1],T[0]]:[T[1],1,T[0]],F=C*k,B=Tl([S,C,k],v.dtype),L=B.values,P=n.blockSize;for(let e=0;e{const{x:t}=e.inputs,n=e.backend;PS(t,"abs");let s=new Float32Array(Kt(t.shape));return s=I_(n.data.get(t.dataId).values),n.makeOutput(s,t.shape,t.dtype)}},N_=jS(Rn,(e=>Math.acos(e))),R_={kernelName:Rn,backendName:"cpu",kernelFunc:N_},O_=jS(On,(e=>Math.acosh(e))),D_={kernelName:On,backendName:"cpu",kernelFunc:O_};const M_={kernelName:Mn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,s=t;PS(t,"addN");const r=s.map((e=>n.data.get(e.dataId).values)),i=Tl(s[0].shape,s[0].dtype),a=i.values;for(let e=0;en&&(n=r,s=e)}d[e]=s}return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(c,"int32",d)}};const V_={kernelName:Ln,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i}=s;PS(r,"argMin");let a=en(i,r.shape);const o=Ih(a,r.shape.length);let l=r;const u=[];null!=o&&(l=F_({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),a=Nh(a.length,l.shape.length)),a=[a[0]],Eh("argMin",a,l.shape.length);const[c,h]=Sh(l.shape,a),d=gn(Kt(c),"int32"),p=Kt(h),f=n.data.get(l.dataId).values;for(let e=0;en.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(c,"int32",d)}},W_=jS(Pn,(e=>Math.asin(e))),j_={kernelName:Pn,backendName:"cpu",kernelFunc:W_},G_=jS(Un,(e=>Math.asinh(e))),q_={kernelName:Un,backendName:"cpu",kernelFunc:G_},H_=jS(Vn,(e=>Math.atan(e))),K_={kernelName:Vn,backendName:"cpu",kernelFunc:H_},$_=YS(((e,t)=>Math.atan2(e,t))),X_=y_(jn,$_),Z_={kernelName:jn,backendName:"cpu",kernelFunc:X_},Y_=jS(Wn,(e=>Math.atanh(e))),Q_={kernelName:Wn,backendName:"cpu",kernelFunc:Y_};function J_(e,t,n,s,r,i){const a=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,u=r.dilationWidth,c=r.effectiveFilterHeight,h=r.effectiveFilterWidth,d=r.padInfo.top,p=r.padInfo.left,f="max"===i?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,m=Tl(r.outShape,n),g=m.values,y=r.outShape[1]*r.outShape[2]*r.outShape[3],b=r.outShape[2]*r.outShape[3],w=r.outShape[3];for(let t=0;ty?y=a:"avg"===i&&(b+=a,v++)}if(isNaN(y))break}g[C+n*w+t]="avg"===i?b/v:y}}}return m}function eE(e,t,n,s,r=!1,i=!1){const a=Tl(s.outShape,"int32"),o=s.strideHeight,l=s.strideWidth,u=s.dilationHeight,c=s.dilationWidth,h=s.effectiveFilterHeight,d=s.effectiveFilterWidth,p=s.padInfo.top,f=s.padInfo.left,m=Tl(t,n,e);for(let e=0;ev&&(v=u,x=r?i?((e*s.inHeight+n)*s.inWidth+o)*s.inChannels+t:(n*s.inWidth+o)*s.inChannels+t:a*d+l)}}a.set(x,e,n,o,t)}}return a}function tE(e,t,n,s,r,i){const a=r.strideDepth,o=r.strideHeight,l=r.strideWidth,u=r.dilationDepth,c=r.dilationHeight,h=r.dilationWidth,d=r.effectiveFilterDepth,p=r.effectiveFilterHeight,f=r.effectiveFilterWidth,m=r.padInfo.front,g=r.padInfo.top,y=r.padInfo.left,b="max"===i?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,w=Tl(r.outShape,n),v=w.values,x=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],A=r.outShape[2]*r.outShape[3]*r.outShape[4],C=r.outShape[3]*r.outShape[4],k=r.outShape[4];for(let t=0;tA?A=r:"avg"===i&&(C+=r,S++),isNaN(A))break}if(isNaN(A))break}if(isNaN(A))break}v[g+t]="avg"===i?C/Math.max(S,1):A}}}}return w}const nE={kernelName:Gn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t;PS(r,"avgPool");const{filterSize:i,strides:a,pad:o,dimRoundingMode:l}=s;Gt(Sc(a,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${a} and dilations '1'`));const u=mc(r.shape,i,a,1,o,l);let c;if(1===u.filterWidth&&1===u.filterHeight&&$t(u.inShape,u.outShape))c=KS({inputs:{x:r},backend:n});else{const e=n.data.get(r.dataId).values,t=dn(r.shape),s=J_(e,r.shape,r.dtype,t,u,"avg");c=n.makeTensorInfo(u.outShape,r.dtype,s.values)}return c}};const sE={kernelName:Hn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{filterSize:i,strides:a,pad:o,dimRoundingMode:l,dataFormat:u}=s;PS(r,"avgPool3d");const c=gc(r.shape,i,a,1,o,l,u),h=tE(n.data.get(r.dataId).values,r.shape,r.dtype,dn(r.shape),c,"avg");return n.makeTensorInfo(h.shape,"float32",h.values)}};const rE={kernelName:Kn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,input:i}=t,{filterSize:a,strides:o,pad:l,dimRoundingMode:u}=s;PS([r,i],"avgPool3DGrad");const c=gc(i.shape,a,o,1,l,u),h=c.strideDepth,d=c.strideHeight,p=c.strideWidth,f=c.filterDepth,m=c.filterHeight,g=c.filterWidth,y=c.dilationDepth,b=c.dilationHeight,w=c.dilationWidth,v=c.effectiveFilterDepth,x=c.effectiveFilterHeight,A=c.effectiveFilterWidth,C=v-1-c.padInfo.front,k=A-1-c.padInfo.left,S=x-1-c.padInfo.top,_=Tl(i.shape,"float32"),E=1/(f*m*g),I=n.bufferSync(r);for(let e=0;e=c.outDepth||Math.floor(s)!==s))for(let n=0;n=c.outHeight||Math.floor(r)!==r))for(let n=0;n=c.outWidth||Math.floor(i)!==i)continue;l+=I.get(e,s,r,i,t)}}}_.set(l*E,e,n,s,r,t)}return n.makeTensorInfo(_.shape,_.dtype,_.values)}};const iE={kernelName:qn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,input:i}=t,a=i;PS([r,i],"avgPoolGrad");const{filterSize:o,strides:l,pad:u}=s,c=mc(a.shape,o,l,1,u),h=c.strideHeight,d=c.strideWidth,p=c.filterHeight,f=c.filterWidth,m=c.dilationHeight,g=c.dilationWidth,y=c.effectiveFilterHeight,b=c.effectiveFilterWidth,w=b-1-c.padInfo.left,v=y-1-c.padInfo.top,x=Tl(a.shape,"float32"),A=1/(p*f),C=n.data.get(r.dataId).values,k=Tl(r.shape,"float32",C);for(let e=0;e=c.outHeight||Math.floor(s)!==s))for(let n=0;n=c.outWidth||Math.floor(r)!==r)continue;a+=k.get(e,s,r,t)}}x.set(a*A,e,n,s,t)}return n.makeTensorInfo(x.shape,x.dtype,x.values)}};const aE={kernelName:Us,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,scale:i,offset:a,mean:o,variance:l}=t;Gt(o.shape.length===l.shape.length,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),Gt(null==a||o.shape.length===a.shape.length,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),Gt(null==i||o.shape.length===i.shape.length,(()=>"Batch normalization gradient requires mean and scale to have equal ranks.")),PS([r,o,l,i,a],"batchNorm");let{varianceEpsilon:u}=s;null==u&&(u=.001);const c=n.data.get(r.dataId).values,h=n.data.get(o.dataId).values,d=n.data.get(l.dataId).values,p=i?n.data.get(i.dataId).values:new Float32Array([1]),f=a?n.data.get(a.dataId).values:new Float32Array([0]),m=new Float32Array(c.length),g=f.length,y=p.length,b=d.length,w=h.length;let v=0,x=0,A=0,C=0;for(let e=0;e=g&&(v=0),x>=w&&(x=0),A>=y&&(A=0),C>=b&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,m)}};function oE(e,t,n,s,r){const i=Yu(s,t,n),a=Kt(n),o=dn(s);if(i){const n=Qu(t,o);return"string"===r?e.slice(n,n+a):e.subarray(n,n+a)}const l=Tl(s,r,"string"===r?Ng(e):e),u=Tl(n,r);for(let e=0;ee+t[n]));u.set(l.get(...s),...n)}return"string"===r?Rg(u.values):u.values}function lE(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{begin:i,size:a}=s;PS(r,"slice");const[o,l]=Ju(r,i,a);Pu(r,o,l);const u=oE(n.data.get(r.dataId).values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,u)}const uE={kernelName:ti,backendName:"cpu",kernelFunc:lE};const cE={kernelName:Xn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{blockShape:i,crops:a}=s;PS([r],"batchToSpaceND");const o=i.reduce(((e,t)=>e*t)),l=Fm(r.shape,i,o),u=Bm(l.length,i.length),c=Lm(r.shape,i,o),h=Pm(a,i.length),d=Um(c,a,i.length),p=C_({inputs:{x:r},backend:n,attrs:{shape:l}}),f=F_({inputs:{x:p},backend:n,attrs:{perm:u}}),m=C_({inputs:{x:f},backend:n,attrs:{shape:c}}),g=lE({inputs:{x:m},backend:n,attrs:{begin:h,size:d}});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(m),g}};function hE(e,t,n,s,r){const i=Kt(s),a=gn(r,n);for(let n=0;n=r||(a[s]+=i>0?t[n]:1)}return a}function dE(e,t,n,s=!1){const r=e.shape[0],i=e.shape[1],a=Tl([r,n],t.dtype);for(let o=0;o=n||(s?a.set(1,o,i):t.size>0?a.set(a.get(o,i)+t.get(o,r),o,i):a.set(a.get(o,i)+1,o,i))}return a}const pE={kernelName:Zn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,weights:i}=t,{size:a}=s,o=hE(n.data.get(r.dataId).values,n.data.get(i.dataId).values,i.dtype,i.shape,a);return n.makeTensorInfo([a],i.dtype,o)}},fE=YS(((e,t)=>e&t)),mE=y_(Yn,fE),gE={kernelName:Yn,backendName:"cpu",kernelFunc:mE};const yE={kernelName:Qn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{s0:s,s1:r}=t,i=n.data.get(s.dataId).values,a=n.data.get(r.dataId).values,o=su(Array.from(i),Array.from(a));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}},bE=WS((e=>Math.ceil(e))),wE=GS(es,bE),vE={kernelName:es,backendName:"cpu",kernelFunc:wE},xE=jS(ts,((e,t)=>{const n=t;return e>n.clipValueMax?n.clipValueMax:e{const{x:t}=e.inputs,n=e.backend,s=new Float32Array(Kt(t.shape)),r=n.data.get(t.dataId),i=r.complexTensorInfos.real,a=r.complexTensorInfos.imag,o=n.data.get(i.dataId).values,l=n.data.get(a.dataId).values;for(let e=0;e{const n=Kt(e.shape);r.set(e.vals,t),t+=n}))}else{let s=0;e.forEach((e=>{const i="string"===n?Ng(e.vals):e.vals;let a=0;for(let n=0;ne.shape)),i);let a=Em(t.map((e=>e.shape)),i);if(0===Kt(a))return n.makeTensorInfo(a,t[0].dtype,[]);const o=t.filter((e=>Kt(e.shape)>0));if(1===o.length)return KS({inputs:{x:o[0]},backend:n});if("complex64"===o[0].dtype){const e=o.map((e=>d_({inputs:{input:e},backend:n}))),t=o.map((e=>SE({inputs:{input:e},backend:n}))),s=EE({inputs:e,backend:n,attrs:{axis:i}}),r=EE({inputs:t,backend:n,attrs:{axis:i}}),a=u_({inputs:{real:s,imag:r},backend:n});return e.forEach((e=>n.disposeIntermediateTensorInfo(e))),t.forEach((e=>n.disposeIntermediateTensorInfo(e))),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(r),a}const l=o.map((e=>{const t=Kt(e.shape.slice(i));return C_({inputs:{x:e},backend:n,attrs:{shape:[-1,t]}})})),u=l.map((e=>({vals:n.data.get(e.dataId).values,shape:e.shape})));a=Em(l.map((e=>e.shape)),1);const c=1===l[0].shape[0],h=kE(u,a,t[0].dtype,c),d=Em(o.map((e=>e.shape)),i),p=n.makeTensorInfo(d,t[0].dtype,h);return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),p}const IE={kernelName:rs,backendName:"cpu",kernelFunc:EE};function TE(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,filter:i}=t,{strides:a,pad:o,dataFormat:l,dilations:u,dimRoundingMode:c}=s;PS([r,i],"conv2d");const h=Ec(l),d=yc(r.shape,i.shape,a,u,o,c,!1,h),p=d.filterHeight,f=d.filterWidth,m=d.dilationHeight,g=d.dilationWidth,y=d.padInfo.left,b=d.padInfo.top,w="channelsLast"===d.dataFormat,v=new Na(d.outShape,r.dtype),x=dn(r.shape),A=dn(i.shape),C=x[0],k=w?x[1]:x[2],S=w?x[2]:1,_=w?1:x[1],E=v.strides[0],I=w?v.strides[1]:v.strides[2],T=w?v.strides[2]:1,N=w?1:v.strides[1],R=n.data.get(r.dataId).values,O=n.data.get(i.dataId).values,D=v.values;for(let e=0;e=d.inHeight)continue;const i=e*A[0],a=t+n*k;for(let e=0;e=d.inWidth)continue;const r=a+s*S;let o=i+e*A[1];for(let e=0;e=u.inDepth)continue;const i=e*S[0],a=t+n*k[1];for(let e=0;e=u.inHeight)continue;const r=i+e*S[1],o=a+s*k[2];for(let e=0;e=u.inWidth)continue;const i=r+e*S[2],a=o+t*u.inChannels;let l=i;for(let e=0;eMath.cos(e))),BE={kernelName:hs,backendName:"cpu",kernelFunc:FE},LE=jS(ds,(e=>Math.cosh(e))),PE={kernelName:ds,backendName:"cpu",kernelFunc:LE};const UE={kernelName:ms,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{image:r,boxes:i,boxInd:a}=t,{cropSize:o,method:l,extrapolationValue:u}=s,[c,h,d,p]=r.shape,f=i.shape[0],[m,g]=o,y=Tl([f,m,g,p],"float32"),b=n.data.get(i.dataId).values,w=n.data.get(a.dataId).values,v=n.data.get(r.dataId).values,x=dn(r.shape),A=dn(y.shape);for(let e=0;e=c)continue;const o=m>1?(r-n)*(h-1)/(m-1):0,f=g>1?(i-s)*(d-1)/(g-1):0;for(let t=0;t1?n*(h-1)+t*o:.5*(n+r)*(h-1);if(c<0||c>h-1)for(let n=0;n1?s*(d-1)+l*f:.5*(s+i)*(d-1);if(c<0||c>d-1){for(let n=0;n1?s*(d-1)+n*f:.5*(s+i)*(d-1);if(r<0||r>d-1){for(let s=0;se+f-t-1:(e,t)=>e+t;for(let e=0;ee+f-t-1:(e,t)=>e+t;for(let e=0;e`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${a}`));const o=r.shape[0],l=r.shape[1],u=r.shape[2],c=r.shape[3],h=l*i,d=u*i,p=c/(i*i),f=n.data.get(r.dataId).values,m=new Float32Array(o*h*d*p);let g=0;for(let e=0;e`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${a} and dilations '${d}'`));const p=yc(r.shape,i.shape,a,d,o,u,!0),{filterHeight:f,filterWidth:m,dilationHeight:g,dilationWidth:y,padInfo:b}=p,w=b.left,v=b.top,x=p.outChannels/p.inChannels,A=new Na(p.outShape,r.dtype),C=n.data.get(r.dataId).values,k=n.data.get(i.dataId).values,S=A.values;for(let e=0;e=p.inHeight)continue;const i=e*h[0],a=t+n*c[1];for(let e=0;e=p.inWidth)continue;const r=i+e*h[1],o=a+s*p.inChannels;let l=t,u=r;for(let e=0;e{const{x:s,filter:r}=e,{strides:i,pad:a,dilations:o}=n,l=t,u=l.data.get(s.dataId).values,c=s.shape.length,h=l.data.get(r.dataId).values,d=r.shape.length,{batchSize:p,inHeight:f,inWidth:m,inChannels:g,outHeight:y,outWidth:b,padInfo:w,strideHeight:v,strideWidth:x,filterHeight:A,filterWidth:C,dilationHeight:k,dilationWidth:S,outShape:_}=fc(s.shape,r.shape,i,a,"NHWC",o),E=Kt(_),I=_.length,T=sn(s.dtype,E);for(let e=0;e=0&&i=0&&pl&&(l=m)}}}T[wn([e,t,i,o],I,dn(_))]=l}}}return{dataId:l.write(pa(T,s.dtype),_,s.dtype),shape:_,dtype:s.dtype}}},YE={kernelName:ks,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:s,filter:r,dy:i}=e,{strides:a,pad:o,dilations:l}=n,u=t,c=fn(s.shape,u.data.get(s.dataId).values),h=fn(r.shape,u.data.get(r.dataId).values),{batchSize:d,inHeight:p,inWidth:f,inChannels:m,outHeight:g,outWidth:y,padInfo:b,strideHeight:w,strideWidth:v,filterHeight:x,filterWidth:A,dilationHeight:C,dilationWidth:k,outShape:S}=fc(s.shape,r.shape,a,o,"NHWC",l);Gt(i.rank===S.length,(()=>`Error in ${ks}, dy must have the same rank as output ${S.length}, but got ${i.rank}`));const _=fn(S,u.data.get(i.dataId).values),E=yn(r.shape,r.dtype);for(let e=0;e=0&&s=0&&ua&&(a=r,o=t,l=n)}}}E[o][l][i]+=_[e][t][s][i]}}}return{dataId:u.write(pa(E,s.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},QE={kernelName:Cs,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:s,filter:r,dy:i}=e,{strides:a,pad:o,dilations:l}=n,u=t,c=fn(s.shape,u.data.get(s.dataId).values),h=fn(r.shape,u.data.get(r.dataId).values),{batchSize:d,inHeight:p,inWidth:f,inChannels:m,outHeight:g,outWidth:y,padInfo:b,strideHeight:w,strideWidth:v,filterHeight:x,filterWidth:A,dilationHeight:C,dilationWidth:k,outShape:S}=fc(s.shape,r.shape,a,o,"NHWC",l);Gt(i.rank===S.length,(()=>`Error in ${Cs}, dy must have the same rank as output ${S.length}, but got ${i.rank}`));const _=fn(S,u.data.get(i.dataId).values),E=yn(s.shape,s.dtype);for(let e=0;e=0&&s=0&&ua&&(a=r,o=s,l=u)}}}E[e][o][l][i]+=_[e][t][s][i]}}}return{dataId:u.write(pa(E,s.dtype),s.shape,s.dtype),shape:s.shape,dtype:s.dtype}}};const JE={kernelName:Ss,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{image:r}=t,{canvas:i,options:a}=s,{contextOptions:o,imageOptions:l}=a||{},u=(null==l?void 0:l.alpha)||1,c=(null==o?void 0:o.contextType)||"2d";if("2d"!==c)throw new Error(`Context type ${o.contextType} is not supported by the CPU backend.`);const h=i.getContext(c,(null==o?void 0:o.contextAttributes)||{});if(null==h)throw new Error(`Could not get the context with ${c} type.`);const[d,p]=r.shape.slice(0,2),f=2===r.shape.length?1:r.shape[2],m=n.data.get(r.dataId).values,g="float32"===r.dtype?255:1,y=new Uint8ClampedArray(p*d*4);for(let e=0;e1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${s}.`)}else if("int32"===r.dtype&&(s<0||s>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${s}.`);1===f?(t[0]=s*g,t[1]=s*g,t[2]=s*g):t[n]=s*g}const n=4*e;y[n+0]=Math.round(t[0]),y[n+1]=Math.round(t[1]),y[n+2]=Math.round(t[2]),y[n+3]=Math.round(t[3])}i.width=p,i.height=d;const b=new ImageData(y,p,d);return h.putImageData(b,0,0),r}},eI=YS(((e,t)=>e*t)),tI=b_(((e,t,n,s)=>({real:e*n-t*s,imag:e*s+t*n}))),nI=y_(xr,eI,tI),sI={kernelName:xr,backendName:"cpu",kernelFunc:nI};function rI(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i,keepDims:a}=s;let o;PS(r,"sum"),o="bool"===r.dtype?m_({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):KS({inputs:{x:r},backend:n});const l=o.shape.length,u=en(i,o.shape),c=Ih(u,l);let h=u,d=o;null!=c&&(d=F_({inputs:{x:o},backend:n,attrs:{perm:c}}),h=Nh(h.length,l)),Eh("sum",h,d.shape.length);const[p,f]=Sh(d.shape,h);let m=h_(n,p,ja(d.dtype,"int32"));const g=Kt(f),y=n.data.get(m.dataId).values,b=n.data.get(d.dataId).values;for(let e=0;e=0&&(d=rI({inputs:{x:d},backend:n,attrs:{axis:u[e]-(a.length-p),keepDims:!1}}),f.push(d)),p--)}for(const e of f)e!==d&&n.disposeIntermediateTensorInfo(e);return d}};const oI={kernelName:Ts,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{dy:s,y:r}=t;PS([s,r],"eluGrad");const i=new Float32Array(Kt(r.shape)),a=n.data.get(r.dataId).values,o=n.data.get(s.dataId).values;for(let e=0;e=0?o[e]:o[e]*(t+1)}return n.makeTensorInfo(r.shape,"float32",i)}},lI=YS(((e,t)=>e===t?1:0)),uI=y_(Rs,lI,null,"bool"),cI={kernelName:Rs,backendName:"cpu",kernelFunc:uI},hI=Gm,dI=qm,pI=Hm,fI=Km,mI=$m,gI=Xm,yI=jS(Ns,(e=>{const t=Math.sign(e),n=Math.abs(e),s=1/(1+hI*n);return t*(1-((((gI*s+mI)*s+fI)*s+pI)*s+dI)*s*Math.exp(-n*n))})),bI={kernelName:Ns,backendName:"cpu",kernelFunc:yI},wI=WS((e=>Math.exp(e))),vI=GS(Os,wI,"float32"),xI={kernelName:Os,backendName:"cpu",kernelFunc:vI};function AI(e){const{inputs:t,backend:n,attrs:s}=e,{input:r}=t,{dim:i}=s,a=r.shape.length,o=r.shape.slice();let l=i;return i<0&&(Gt(-(a+1)<=i,(()=>`Axis must be in the interval [${-(a+1)}, ${a}]`)),l=a+i+1),o.splice(l,0,1),C_({inputs:{x:r},backend:n,attrs:{shape:o}})}const CI={kernelName:Ds,backendName:"cpu",kernelFunc:AI},kI=WS((e=>Math.expm1(e))),SI=GS(Ms,kI),_I={kernelName:Ms,backendName:"cpu",kernelFunc:SI},EI=YS(((e,t)=>e/t)),II=y_(_s,EI),TI={kernelName:_s,backendName:"cpu",kernelFunc:II},NI=YS(((e,t)=>e-t)),RI=b_(((e,t,n,s)=>({real:e-n,imag:t-s}))),OI=y_(ki,NI,RI),DI={kernelName:ki,backendName:"cpu",kernelFunc:OI};function MI(e,t,n){const s=e.shape,r=s[0],i=s[1],a=n.data.get(e.dataId),o=a.complexTensorInfos.real,l=a.complexTensorInfos.imag,u=[r,i],c=Kt(u),h=nn("float32",c),d=nn("float32",c);for(let e=0;e{const{image:s}=e,r=n,i=nn(s.dtype,Kt(s.shape)),[a,o,l,u]=s.shape,c=r.data.get(s.dataId).values;for(let e=0;e=0&&aMath.floor(e))),WI=GS(Ls,VI),jI={kernelName:Ls,backendName:"cpu",kernelFunc:WI},GI=YS(((e,t)=>Math.floor(e/t))),qI=y_(Ps,GI,null,"int32"),HI={kernelName:Ps,backendName:"cpu",kernelFunc:qI};const KI={kernelName:Pi,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,filter:i,bias:a,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:d,activation:p,leakyreluAlpha:f}=s;let m=TE({inputs:{x:r,filter:i},backend:n,attrs:{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:d}});if(a){const e=m;if("NCHW"===c&&1===a.shape.length&&1!==a.shape[0]){const e=C_({inputs:{x:a},backend:n,attrs:{shape:[a.shape[0],1,1]}});m=x_({inputs:{a:m,b:e},backend:n}),n.disposeIntermediateTensorInfo(e)}else m=x_({inputs:{a:m,b:a},backend:n});n.disposeIntermediateTensorInfo(e)}if(p){const e=m;if("NCHW"===c&&"prelu"===p&&1===o.shape.length&&1!==o.shape[0]){const e=C_({inputs:{x:o},backend:n,attrs:{shape:[o.shape[0],1,1]}});m=l_(n,m,p,e,f),n.disposeIntermediateTensorInfo(e)}else m=l_(n,m,p,o,f);n.disposeIntermediateTensorInfo(e)}return m}};const $I={kernelName:Ui,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,filter:i,bias:a,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:d,activation:p,leakyreluAlpha:f}=s;let m=qE({inputs:{x:r,filter:i},backend:n,attrs:{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:d}});if(a){const e=m;m=x_({inputs:{a:m,b:a},backend:n}),n.disposeIntermediateTensorInfo(e)}if(p){const e=m;m=l_(n,m,p,o,f),n.disposeIntermediateTensorInfo(e)}return m}};function XI(e,t,n,s,r,i,a,o,l){const u=Tl([s,i],n);for(let n=0;n=l/i)throw new Error(`Invalid indices: ${s} does not index into ${o}`);for(let e=0;e=0,(()=>`GatherV2: the index value ${t} is not in [0, ${c-1}]`))}let h=o;null==o&&(h=0);const d=Kt(i.shape),p=Tg(r,i,l,h),f=C_({inputs:{x:r},backend:n,attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]}}),m=C_({inputs:{x:i},backend:n,attrs:{shape:[p.batchSize,d/p.batchSize]}}),g=[p.batchSize,p.outerSize,d/p.batchSize,p.sliceSize],y=n.bufferSync(m),b=YI(n.bufferSync(f),y,g);return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(m),n.makeTensorInfo(p.outputShape,b.dtype,b.values)}},JI=YS(((e,t)=>e>t?1:0)),eT=y_(js,JI,null,"bool"),tT={kernelName:js,backendName:"cpu",kernelFunc:eT},nT=YS(((e,t)=>e>=t?1:0)),sT=y_(Gs,nT,null,"bool"),rT={kernelName:Gs,backendName:"cpu",kernelFunc:sT};const iT={kernelName:Hs,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:s}=t,r=Kt(s.shape),i=s.shape[s.shape.length-1],a=C_({inputs:{x:s},backend:n,attrs:{shape:[r/i,i]}}),o=MI(a,!0,n),l=C_({inputs:{x:o},backend:n,attrs:{shape:s.shape}});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(o),l}},aT=jS($s,(e=>Number.isFinite(e)?1:0),"bool"),oT={kernelName:$s,backendName:"cpu",kernelFunc:aT},lT=jS(Xs,(e=>Math.abs(e)===1/0?1:0),"bool"),uT={kernelName:Xs,backendName:"cpu",kernelFunc:lT},cT=jS(Zs,(e=>Number.isNaN(e)?1:0),"bool"),hT={kernelName:Zs,backendName:"cpu",kernelFunc:cT},dT=YS(((e,t)=>ee<=t?1:0)),gT=y_(Js,mT,null,"bool"),yT={kernelName:Js,backendName:"cpu",kernelFunc:gT};function bT(e,t,n){const s=(t-e)/(n-1),r=gn(n,"float32");r[0]=e;for(let e=1;eMath.log(e))),xT=GS(tr,vT),AT={kernelName:tr,backendName:"cpu",kernelFunc:xT},CT=jS(nr,(e=>Math.log1p(e))),kT={kernelName:nr,backendName:"cpu",kernelFunc:CT},ST=YS(((e,t)=>e&&t)),_T=y_(sr,ST,null,"bool"),ET={kernelName:sr,backendName:"cpu",kernelFunc:_T},IT=jS(rr,(e=>e?0:1),"bool"),TT={kernelName:rr,backendName:"cpu",kernelFunc:IT},NT=YS(((e,t)=>e||t)),RT=y_(ir,NT,null,"bool"),OT={kernelName:ir,backendName:"cpu",kernelFunc:RT};const DT={kernelName:ar,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{depthRadius:i,bias:a,alpha:o,beta:l}=s;PS(r,"LRN");const u=r.shape[3],c=u-1,h=n.data.get(r.dataId).values,d=Kt(r.shape),p=new Float32Array(d);function f(e){const t=e%u;let n=e-t+Math.max(0,t-i);const s=e-t+Math.min(t+i,c);let r=0;for(;n<=s;n++){const e=h[n];r+=e*e}return r}for(let e=0;ei)&&(i=t)}r[n]=i}return r}function FT(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{reductionIndices:i,keepDims:a}=s,o=n;let l=r.shape;const u=l.length,c=en(i,l);let h=c;const d=Ih(h,u);let p=o.data.get(r.dataId).values;if(null!=d){const e=new Array(u);for(let t=0;tMath.max(e,t))),PT=y_(ur,LT),UT={kernelName:ur,backendName:"cpu",kernelFunc:PT};const VT={kernelName:cr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t;PS(r,"maxPool");const{filterSize:i,strides:a,pad:o,dimRoundingMode:l}=s;Gt(Sc(a,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${a} and dilations '1'`));const u=mc(r.shape,i,a,1,o,l);let c;if(1===u.filterWidth&&1===u.filterHeight&&$t(u.inShape,u.outShape))c=KS({inputs:{x:r},backend:n});else{const e=n.data.get(r.dataId).values,t=dn(r.shape),s=J_(e,r.shape,r.dtype,t,u,"max");c=n.makeTensorInfo(u.outShape,r.dtype,s.values)}return c}};const WT={kernelName:dr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{filterSize:i,strides:a,pad:o,dimRoundingMode:l,dataFormat:u}=s;PS(r,"maxPool3d");const c=gc(r.shape,i,a,1,o,l,u),h=tE(n.data.get(r.dataId).values,r.shape,r.dtype,dn(r.shape),c,"max");return n.makeTensorInfo(h.shape,"float32",h.values)}};const jT={kernelName:pr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,input:i}=t,{filterSize:a,strides:o,pad:l,dimRoundingMode:u}=s;PS([r,i],"maxPool3DGrad");const c=gc(i.shape,a,o,1,l,u),h=function(e,t){const n=Tl(t.outShape,"int32"),s=t.strideDepth,r=t.strideHeight,i=t.strideWidth,a=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,u=t.effectiveFilterDepth,c=t.effectiveFilterHeight,h=t.effectiveFilterWidth,d=t.padInfo.front,p=t.padInfo.top,f=t.padInfo.left;for(let m=0;m=k&&(k=o,S=n*c*h+r*c+a)}}}n.set(S,m,y,s,r,g)}}}return n}(n.bufferSync(i),c),d=c.strideDepth,p=c.strideHeight,f=c.strideWidth,m=c.dilationDepth,g=c.dilationHeight,y=c.dilationWidth,b=c.effectiveFilterDepth,w=c.effectiveFilterHeight,v=c.effectiveFilterWidth,x=b-1-c.padInfo.front,A=v-1-c.padInfo.left,C=w-1-c.padInfo.top,k=Tl(i.shape,"float32"),S=n.bufferSync(r);for(let e=0;e=c.outDepth||Math.floor(s)!==s))for(let r=0;r=c.outHeight||Math.floor(i)!==i))for(let a=0;a=c.outWidth||Math.floor(u)!==u)continue;const d=b*w*v-1-h.get(e,s,i,u,t)===n*w*v+r*v+a?1:0;if(0===d)continue;l+=S.get(e,s,i,u,t)*d}}}k.set(l,e,n,s,r,t)}return n.makeTensorInfo(k.shape,k.dtype,k.values)}};const GT={kernelName:hr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,input:i,output:a}=t,o=i;PS([i,a],"maxPoolGrad");const{filterSize:l,strides:u,pad:c,dimRoundingMode:h}=s,d=mc(o.shape,l,u,1,c,h),p=n.data.get(o.dataId).values,f=Tl(d.outShape,o.dtype,eE(p,o.shape,o.dtype,d).values),m=d.strideHeight,g=d.strideWidth,y=d.dilationHeight,b=d.dilationWidth,w=d.effectiveFilterHeight,v=d.effectiveFilterWidth,x=v-1-d.padInfo.left,A=w-1-d.padInfo.top,C=Tl(o.shape,"float32"),k=n.data.get(r.dataId).values,S=Tl(r.shape,"float32",k);for(let e=0;e=d.outHeight||Math.floor(s)!==s))for(let r=0;r=d.outWidth||Math.floor(o)!==o)continue;const l=w*v-1-f.get(e,s,o,t)===n*v+r?1:0;if(0===l)continue;a+=S.get(e,s,o,t)*l}}C.set(a,e,n,s,t)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}};const qT={kernelName:fr,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{x:s}=e,{filterSize:r,strides:i,pad:a,includeBatchInIndex:o}=t,l=n;PS(s,"MaxPoolWithArgmax");const u=l.data.get(s.dataId).values,c=mc(s.shape,r,i,[1,1],a),[h,d]=function(e,t,n,s,r){const i=J_(e,0,n,dn(t),r,"max"),a=eE(e,t,n,r,!0,s);return[i.values,a.values]}(u,s.shape,s.dtype,o,c),p=l.write(h,c.outShape,s.dtype),f=l.write(d,c.outShape,s.dtype);return[{dataId:p,shape:c.outShape,dtype:s.dtype},{dataId:f,shape:c.outShape,dtype:"int32"}]}};const HT={kernelName:mr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i,keepDims:a}=s,o=en(i,r.shape),l=Kt(Sh(r.shape,o)[1]),u=[],c=n.makeTensorInfo([],"float32",new Float32Array([l]));u.push(c);const h=m_({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});u.push(h);const d=II({inputs:{a:h,b:c},backend:n});u.push(d);const p=rI({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:a}});return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),p}};const KT={kernelName:gr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i,keepDims:a}=s;PS(r,"min");const o=en(i,r.shape);let l=o;const u=Ih(l,r.shape.length);let c=r;null!=u&&(c=F_({inputs:{x:r},backend:n,attrs:{perm:u}}),l=Nh(l.length,r.shape.length)),Eh("min",l,c.shape.length);const[h,d]=Sh(c.shape,l),p=Kt(d),f=gn(Kt(h),c.dtype),m=n.data.get(c.dataId).values;for(let e=0;eMath.min(e,t))),XT=y_(yr,$T),ZT={kernelName:yr,backendName:"cpu",kernelFunc:XT};const YT={kernelName:br,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{paddings:i,mode:a}=s;PS(r,"mirrorPad");const o=i.map(((e,t)=>e[0]+r.shape[t]+e[1])),l=i.map((e=>e[0])),u=i.map(((e,t)=>e[0]+r.shape[t])),c="reflect"===a?0:1,h=n.data.get(r.dataId).values,d=r.shape.length,p=dn(r.shape),f=Kt(o),m=o.length,g=dn(o),y=nn(r.dtype,f);for(let e=0;e=u[e]&&(t[e]=2*(u[e]-1)-t[e]+c);t=t.map(((e,t)=>e-l[t]));const n=wn(t,d,p);y[e]=h[n]}return{dataId:n.write(y,o,r.dtype),shape:o,dtype:r.dtype}}},QT=YS(((e,t)=>{const n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t})),JT=y_(wr,QT),eN={kernelName:wr,backendName:"cpu",kernelFunc:JT};function tN(e){const{inputs:t,backend:n,attrs:s}=e,{logits:r}=t,{dim:i}=s,a=r.shape.length;let o=i;if(-1===o&&(o=a-1),o!==a-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${a} and dim was ${o}`);const l=en([o],r.shape),u=FT({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),c=_h(u.shape,l),h=C_({inputs:{x:u},backend:n,attrs:{shape:c}}),d=OI({inputs:{a:r,b:h},backend:n}),p=vI({inputs:{x:d},backend:n}),f=rI({inputs:{x:p},backend:n,attrs:{axis:l,keepDims:!1}}),m=C_({inputs:{x:f},backend:n,attrs:{shape:c}}),g=II({inputs:{a:p,b:m},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(m),g}const nN={kernelName:hi,backendName:"cpu",kernelFunc:tN};const sN={kernelName:vr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{logits:r}=t,{numSamples:i,seed:a,normalized:o}=s;PS(r,"multinomial");const l=o?r:tN({inputs:{logits:r},backend:n,attrs:{dim:-1}}),u=l.shape[0],c=l.shape[1],h=n.data.get(l.dataId).values,d=[u,i],p=gn(Kt(d),"int32");for(let e=0;ee!==t?1:0)),pN=y_(Cr,dN,null,"bool"),fN={kernelName:Cr,backendName:"cpu",kernelFunc:pN};const mN={kernelName:Ir,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{indices:r}=t,{dtype:i,depth:a,onValue:o,offValue:l}=s;PS(r,"oneHot");const u=Kt(r.shape),c=new Float32Array(u*a);c.fill(l);const h=n.data.get(r.dataId).values;for(let e=0;e=0&&h[e]{qt(i,e.shape,"All tensors passed to stack must have matching shapes"),Gt(a===e.dtype,(()=>"All tensors passed to stack must have matching dtypes"))}));const o=[],l=EE({inputs:t.map((e=>{const t=AI({inputs:{input:e},backend:n,attrs:{dim:r}});return o.push(t),t})),backend:n,attrs:{axis:r}});return o.forEach((e=>n.disposeIntermediateTensorInfo(e))),l}const vN={kernelName:Tr,backendName:"cpu",kernelFunc:wN};const xN={kernelName:Nr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{paddings:i,constantValue:a}=s;PS(r,"pad");const o=i.map(((e,t)=>e[0]+r.shape[t]+e[1])),l=i.map((e=>e[0])),u=n.data.get(r.dataId).values,c=Kt(r.shape),h=r.shape.length,d=dn(r.shape),p=Kt(o),f=o.length,m=dn(o),g=nn(r.dtype,p);0!==a&&g.fill(a);for(let e=0;ee+l[t])),f,m)]=u[e]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}},AN=YS(((e,t)=>Math.pow(e,t))),CN=y_(Rr,AN),kN={kernelName:Rr,backendName:"cpu",kernelFunc:CN};function SN(e,t,n,s){const[r,i]=Sh(e,s),a=ja(t,"int32"),o=gn(Kt(r),a),l=Kt(i);for(let e=0;en.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(y,g,f)}};function EN(e,t,n,s){const r=[];let i=0;const a=t.length-1+n.length,o=new Array(a).fill(null).map((()=>[0]));!function(e,t){for(let n=0;nr)throw new Error("Ragged splits must not point past values");for(let e=1;es[e])throw new Error("Ragged splits must be sorted in ascending order")}}(n,s);let l=1;for(let e=0;e=0){const e=o[r],t=e[e.length-1]-s[a];for(let e=a;e{if(e<0||e>=n){const r=vn(s,t.length,dn(t)).join(",");throw new Error(`indices[${r}] = ${e} is not in [0, ${n})`)}}))}(i,a,t[0][0]-1),0===s.length)throw new Error("params.rank must be nonzero");const l=s[0],{outSplits:u,valueSlices:c,numValues:h}=EN(i,a,e,l),d=function(e){const t=[];for(let n=0;ns[t]=e))}return t}(u),p=TN(n,s,r,c,h);return[d,p[0],p[1]]}const RN={kernelName:Mr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{paramsNestedSplits:r,paramsDenseValues:i,indices:a}=t,{outputRaggedRank:o}=s,l=r.map((e=>n.data.get(e.dataId).values)),u=r.map((e=>e.shape)),c=n.data.get(i.dataId).values,h=n.data.get(a.dataId).values,[d,p,f]=NN(l,u,c,i.shape,i.dtype,h,a.shape),m=d.map((e=>n.makeTensorInfo([e.length],"int32",e))),g=n.makeTensorInfo(f,i.dtype,p);return m.concat([g])}},ON=2147483647;function DN(e,t,n,s,r,i,a){if(t.length>1)throw new Error("starts must be a scalar or vector");if(r.length>1)throw new Error("limits must be a scalar or vector");if(a.length>1)throw new Error("deltas must be a scalar or vector");const o=0===t.length,l=0===r.length,u=0===a.length,c=[];o||c.push(t[0]),l||c.push(r[0]),u||c.push(a[0]);for(let e=1;e0&&rn)c=0;else if(c=Math.ceil(Math.abs((r-n)/a)),c>ON)throw new Error(`Requires ((limit - start) / delta) <= ${ON}`);d[t+1]=d[t]+c}const p=sn(n,d[h]);let f=0;for(let t=0;tn&&(n=t)}return n}static getMaxWidthValueRowID(e){const t=e.length;if(0===t)return 0;let n=0,s=e[0],r=0;for(let i=1;i"Final length of result must be equal to firstDimension.")),r}calculateOutputIndexRowSplit(e,t,n,s){const r=e.length,i=[];for(let a=0;a0&&i.length!==e[r-1])throw new Error("Invalid row split size.");return i}calculateOutputIndexValueRowID(e,t,n,s){const r=e.length,i=[];if(0===r)return[];let a=0,o=e[0];if(o>=t.length)throw new Error(`Got currentValueRowId=${o}, which is not less than ${t.length}`);let l=t[o];i.push(l);for(let u=1;u=0&&(++a,a=t.length)throw new Error(`Got nextValueRowId=${r} which is not less than ${t.length}`);l=t[r]}i.push(l)}if(i.length!==e.length)throw new Error("Invalid row ids.");return i}calculateOutputIndex(e,t,n,s){const r=this.getRowPartitionTensor(e),i=this.getRowPartitionTypeByDimension(e);switch(i){case zN.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(r,t,n,s);case zN.ROW_SPLITS:if(r.length-1>t.length)throw new Error(`Row partition size is greater than output size: ${r.length-1} > ${t.length}`);return this.calculateOutputIndexRowSplit(r,t,n,s);default:throw new Error(`Unsupported partition type: ${zN[i]}`)}}getFirstDimensionSize(){const e=this.rowPartitionValues[0];if(0===this.rowPartitionTypes.length)throw new Error("No row_partition_types given.");const t=this.rowPartitionTypes[0];switch(t){case zN.FIRST_DIM_SIZE:return e[0];case zN.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case zN.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${zN[t]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");const e=this.getFirstDimensionSize(),t=this.calculateOutputSize(e),n=new Array(this.raggedRank+1);n[n.length-1]=1;for(let e=n.length-2;e>=0;--e)n[e]=n[e+1]*t[e+1];const s=LN(t,!1),r=sn(this.valuesDType,Kt(s));if(n[0]*t[0]>0){let i=this.calculateFirstParentOutputIndex(e,n[0],t[0]);for(let e=1;e<=this.raggedRank;++e){i=this.calculateOutputIndex(e-1,i,n[e],t[e])}this.setOutput(this.raggedRank,i,r,s)}return[s,r]}setOutput(e,t,n,s){if(0===n.length)return;const r=this.values,i=n;let a=s.slice();a=a.slice(e+1);const o=Kt(a),l=t.length;let u=this.defaultValue;if(u.length!==o&&1!==u.length){const e=this.defaultValueShape;Ao((()=>{const t=Tc(u,e),n=Hc(t,a);u=n.dataSync()}))}let c=0,h=0,d=0;for(let e=0;e<=l;++e){let s=e=l){const e=n.length;s=Math.floor(e/o)}if(s>d)if(1===this.defaultValue.length)i.subarray(d*o,s*o).fill(this.defaultValue[0]),d=s;else for(;s>d;){BN(i.slice(d*o),u,o),++d}s<0?(c=e+1,h=d):(c=e,h=d,d=h+1)}else++d}}}function BN(e,t,n){for(let s=0;s= 0`);if(s<-1)throw new Error(`Dimension ${s} must be >= -1`);s=-1}n.push(s)}return n}function PN(e,t,n,s,r,i,a,o,l,u){return new FN(e,t,n,s,r,i,a,o,l,u).compute()}const UN={kernelName:Fr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{shape:r,values:i,defaultValue:a,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=s,u=n.data.get(r.dataId).values,c=n.data.get(i.dataId).values,h=n.data.get(a.dataId).values,d=o.map((e=>n.data.get(e.dataId).values)),p=o.map((e=>e.shape)),[f,m]=PN(u,r.shape,c,i.shape,i.dtype,h,a.shape,d,p,l);return n.makeTensorInfo(f,i.dtype,m)}};function VN(e,t,n,s){if(e===t||e1)return gn(0,s);const r=gn(Math.abs(Math.ceil((t-e)/n)),s);t1/e)),GN={kernelName:Pr,backendName:"cpu",kernelFunc:jN};const qN={kernelName:Gr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{images:r}=t,{alignCorners:i,halfPixelCenters:a,size:o}=s;PS(r,"resizeBilinear");const l=dn(r.shape),[u,c]=o,[h,d,p,f]=r.shape,m=n.data.get(r.dataId).values,g=new Float32Array(Kt([h,u,c,f])),y=[i&&u>1?d-1:d,i&&c>1?p-1:p],b=[i&&u>1?u-1:u,i&&c>1?c-1:c];let w=0;const v=y[0]/b[0],x=y[1]/b[1];for(let e=0;e1?u-1:u,a&&p>1?c-1:c],g=[a&&d>1?d-1:d,a&&p>1?p-1:p],y=m[0]/g[0],b=m[1]/g[1],w=n.data.get(i.dataId).values;let v=0;for(let e=0;e1?d-1:d,i&&c>1?p-1:p],b=[i&&u>1?u-1:u,i&&c>1?c-1:c],w=y[0]/b[0],v=y[1]/b[1];let x=0;for(let e=0;e1?c-1:c,a&&f>1?h-1:h],b=[a&&p>1?p-1:p,a&&f>1?f-1:f],w=y[0]/b[0],v=y[1]/b[1],x=1/w,A=1/v,C=2*Math.ceil(x)+2,k=2*Math.ceil(A)+2;for(let e=0;e=p)continue;const d=t+u*l[1],m=u*w;if(e===Math.min(c-1,a?Math.round(m):Math.floor(m)))for(let e=0;e=f)continue;const r=d+t*l[2],i=t*v;s===Math.min(h-1,a?Math.round(i):Math.floor(i))&&(o+=g[r+n])}}m[i+n]=o}}}}return n.makeTensorInfo(r.shape,r.dtype,m)}};const XN={kernelName:Kr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{dims:i}=s;PS(r,"reverse");const a=r.shape.length,o=en(i,r.shape);if(0===a)return KS({inputs:{x:r},backend:n});const l=new Na(r.shape,r.dtype),u=n.bufferSync(r);for(let e=0;en[e]=r.shape[e]-1-n[e])),l.set(u.get(...n),...t)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}},ZN={kernelName:Bi,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{image:s}=e,{radians:r,fillValue:i,center:a}=t,o=n,l=nn(s.dtype,Kt(s.shape)),[u,c,h,d]=s.shape,[p,f]=zm(a,c,h),m=Math.sin(r),g=Math.cos(r),y=o.data.get(s.dataId).values;for(let e=0;e=0&&v=0&&x{const t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1})),QN={kernelName:$r,backendName:"cpu",kernelFunc:YN},JN=WS((e=>1/Math.sqrt(e))),eR=GS(Xr,JN),tR={kernelName:Xr,backendName:"cpu",kernelFunc:eR};function nR(e,t,n,s,r,i,a,o,l,u){const c=[s/r,r],h=e.values,d=t.values;if(0===s)return Tl(n,t.dtype);const p=l instanceof Na?l:Tl(c,t.dtype);"string"==typeof l||"number"==typeof l?p.values.fill(l):"boolean"==typeof l&&p.values.fill(+l);for(let e=0;e=s/r)throw new Error(`Invalid indices: ${i} does not index into ${n}`);for(let n=0;n1||1===r.shape.length?1:Kt(r.shape.slice(1));for(let e=0;ee>=0?uR*e:lR*(Math.exp(e)-1))),hR={kernelName:ei,backendName:"cpu",kernelFunc:cR},dR=jS(ri,(e=>e<0?-1:e>0?1:0)),pR={kernelName:ri,backendName:"cpu",kernelFunc:dR},fR=jS(ni,(e=>Math.sin(e))),mR={kernelName:ni,backendName:"cpu",kernelFunc:fR},gR=jS(si,(e=>Math.sinh(e))),yR={kernelName:si,backendName:"cpu",kernelFunc:gR},bR=Math.log(1.1920928955078125e-7)+2,wR=jS(ai,(e=>{const t=e>-bR,n=e=l)throw new Error(yg(t,n,l));++f[n],d=d&&n>=p,p=n}let m=!0;for(let e=0;e0&&(f[e]+=f[e-1])}if(m&&d){const t=e,n=s;for(let e=0;eNumber(e))))),n.makeTensorInfo([m.length],s.dtype,new Int32Array(m))]}};function kR(e,t,n,s,r){const i=Kt(s),a=t[0],o=r.length,l=[];let u=1,c=-1;for(let e=0;e0){d[h-1]=1;for(let e=h-2;e>=0;--e)d[e]=d[e+1]*s[e+1]}const p=[];if(o>0){p[o-1]=1;for(let e=o-2;e>=0;--e)p[e]=p[e+1]*l[e+1]}const f=sn(n,a*o);for(let t=0;t0?r[o-1]+1:0;if(c<0)throw new Error("segment ids must be >= 0");const h=t.slice();h[0]=c;const d=sn(n,h.reduce(((e,t)=>e*t),1));if(0===o)return c>0&&d.fill(a),[d,h];if(c<=0)throw new Error("segment ids must be >= 0");let p=0,f=1,m=0,g=r[p];for(;;){let t=0;if(f=t)throw new Error("segment ids are not increasing")}if(g<0||g>=c)throw new Error(Sg(g,c));g>m&&d.fill(a,m*u,g*u);for(let t=p;t=l[0])throw new Error(_g(t,s[t],l[0]));for(let t=0;to)break}return m{const t=[...c];t[o]=e;const s=lE({inputs:{x:r},backend:n,attrs:{begin:u,size:t}});return u[o]+=e,s}))}},RR=WS((e=>Math.sqrt(e))),OR=jS(oi,(e=>Math.sqrt(e))),DR={kernelName:oi,backendName:"cpu",kernelFunc:OR},MR={kernelName:bi,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{const{x:n}=e,s=t;PS(n,"square");const r=s.data.get(n.dataId).values,i=new Float32Array(r.length);for(let e=0;e{const n=e-t;return n*n})),FR=y_(yi,zR),BR={kernelName:yi,backendName:"cpu",kernelFunc:FR},LR=WS(((e,t)=>{const{pattern:n,replaceGlobal:s,rewrite:r}=t;return e.replace(new RegExp(n,s?"g":""),r)})),PR=GS(wi,LR),UR={kernelName:wi,backendName:"cpu",kernelFunc:PR},VR=jS(zi,((e,t)=>{const n=t;return isNaN(e)?NaN:e>0?1:n.alpha})),WR={kernelName:zi,backendName:"cpu",kernelFunc:VR};function jR(e,t,n,s){const r=Tl(e,t.dtype);for(let e=0;e=1,(()=>`Input must have rank at least 1, got: ${r.shape.length}`));const e=Vu(b,w,v),t=lE({inputs:{x:r},backend:n,attrs:{begin:b,size:e}});x=C_({inputs:{x:t},backend:n,attrs:{shape:f}}),n.disposeIntermediateTensorInfo(t)}else{const e=jR(p,n.bufferSync(r),v,b);x=n.makeTensorInfo(f,e.dtype,e.values)}return x}};class qR{constructor(e,t,n,s,r,i){this.separator=ma(e),this.nGramWidths=t,this.leftPad=ma(n),this.rightPad=ma(s),this.padWidth=r,this.preserveShort=i}getPadWidth(e){return Math.min(this.padWidth<0?e-1:this.padWidth,e-1)}getNumNGrams(e,t){const n=this.getPadWidth(t);return Math.max(0,e+2*n-t+1)}createNGrams(e,t,n,s,r,i){for(let a=0;a0?0:a-o);let d=0;d+=l*this.leftPad.length;for(let t=0;te.forEach((e=>p[f++]=e));for(let e=0;e0){m(e[h+c-1]);for(let e=0;e0){let e=t[0];if(0!==e)throw new Error(`First split value must be 0, got ${e}`);for(let r=1;r=e;if(s=s&&t[r]<=n,!s)throw new Error(`Invalid split value ${t[r]}, must be in [${e}, ${n}]`);e=t[r]}if(e!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${e}`)}const r=s-1,i=sn("int32",s);if(0===n||0===s){const e=new Array(n);for(let e=0;e<=r;++e)i[e]=0;return[e,i]}i[0]=0;for(let e=1;e<=r;++e){const n=t[e]-t[e-1];let s=0;this.nGramWidths.forEach((e=>{s+=this.getNumNGrams(n,e)})),this.preserveShort&&n>0&&0===s&&(s=1),i[e]=i[e-1]+s}const a=new Array(i[r]);for(let n=0;n{const o=t[n+1]-t[n],l=this.getNumNGrams(o,i);this.createNGrams(e,s,a,r,l,i),r+=l})),this.preserveShort&&r===i[n]){const i=t[n+1]-t[n];if(0===i)continue;const o=i+2*this.padWidth,l=1;this.createNGrams(e,s,a,r,l,o)}}return[a,i]}}function HR(e,t,n,s,r,i,a,o){return new qR(n,s,r,i,a,o).compute(e,t)}const KR={kernelName:xi,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{separator:r,nGramWidths:i,leftPad:a,rightPad:o,padWidth:l,preserveShortSequences:u}=s,{data:c,dataSplits:h}=t,d=n.data.get(c.dataId).values,p=n.data.get(h.dataId).values,[f,m]=HR(d,p,r,i,a,o,l,u);return[n.makeTensorInfo([f.length],"string",f),n.makeTensorInfo(h.shape,"int32",m)]}};function $R(e,t,n,s){if(!e.length)return;if(0===t.length){for(let t=0;tMath.tan(e))),eO={kernelName:Si,backendName:"cpu",kernelFunc:JR},tO=jS(_i,(e=>Math.tanh(e)));const nO={kernelName:Yr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{tensor:s,indices:r,updates:i}=t,{sliceRank:a,numUpdates:o,sliceSize:l,strides:u,outputSize:c}=Vp(0,r,s.shape),h=n.bufferSync(r),d=n.bufferSync(i),p=n.bufferSync(s),f=nR(h,d,s.shape,c,l,o,a,u,p,!1);return n.makeTensorInfo(s.shape,f.dtype,f.values)}};function sO(e,t){const n=new Array(e.rank);for(let s=0;s{const n=t.value-e.value;return 0===n?e.index-t.index:n};function aO(e,t,n=0,s=e.length-1){for(;s>n;){if(s-n>600){const r=s-n+1,i=t-n+1,a=Math.log(r),o=.5*Math.exp(2*a/3),l=.5*Math.sqrt(a*o*(r-o)/r)*Math.sign(i-r/2);aO(e,t,Math.max(n,Math.floor(t-i*o/r+l)),Math.min(s,Math.floor(t+(r-i)*o/r+l)))}const r=e[t];let i=n,a=s;for(jt(e,n,t),iO(e[s],r)>0&&jt(e,n,s);i0;)a-=1}0===iO(e[n],r)?jt(e,n,a):(a+=1,jt(e,a,s)),a<=t&&(n=a+1),t<=a&&(s=a-1)}}function oO(e,t,n,s,r){const i=t[t.length-1],[a,o]=[e.length/i,i],l=nn(n,a*s),u=nn("int32",a*s);for(let t=0;ta[t]={value:e,index:t})),st-1)if(t<=1)n=0;else{const e=2*t;n-=e*Math.trunc(n/e),n>=t&&(n=e-n-1)}return Vt(0,n,t-1)}(e,t);case"wrap":return function(e,t){let n=e;if(n<0)if(t<=1)n=0;else{const e=t-1;n+=t*(Math.trunc(-n/e)+1)}else if(n>t-1)if(t<=1)n=0;else{const e=t-1;n-=t*Math.trunc(n/e)}return Vt(0,n,t-1)}(e,t);case"nearest":return function(e,t){return Vt(0,e,t-1)}(e,t);default:return function(e,t){return e}(e)}}function hO(e,t,n,s,r,i,a,o,l,u,c){return 0<=o&&o{for(let n=0;nn.disposeIntermediateTensorInfo(e))),h}},bO=[E_,T_,R_,D_,A_,M_,L_,P_,U_,V_,j_,q_,K_,Z_,Q_,nE,sE,rE,iE,__,aE,cE,pE,gE,yE,g_,vE,AE,c_,CE,IE,NE,RE,OE,DE,ME,zE,BE,PE,UE,VE,WE,jE,GE,HE,KE,$E,XE,ZE,YE,QE,JE,aI,HS,oI,cI,bI,xI,CI,_I,BI,PI,UI,jI,HI,KI,$I,ZI,QI,tT,rT,$S,iT,_E,oT,uT,hT,ZS,fT,yT,wT,AT,kT,ET,TT,OT,DT,MT,BT,UT,VT,WT,jT,GT,qT,HT,KT,ZT,YT,eN,sN,sI,iN,oN,uN,hN,fN,mN,bN,vN,xN,kN,e_,_N,RN,MN,UN,WN,p_,TI,GN,n_,r_,k_,qN,HN,KN,$N,XN,ZN,QN,tR,sR,aR,oR,hR,o_,pR,mR,yR,uE,nN,vR,xR,CR,SR,ER,IR,TR,NR,DR,MR,BR,UR,WR,GR,KR,ZR,QR,DI,iI,eO,{kernelName:_i,backendName:"cpu",kernelFunc:tO},nO,rO,lO,uO,B_,mO,gO,yO,yN];for(const e of bO)$i(e);const wO={},vO={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function xO(e,t){if(!(e in wO)||null!=t){const n=function(e,t){if(1!==e&&2!==e)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");const n=null==t?function(e){if(Sn().getBool("IS_SAFARI")||"undefined"==typeof OffscreenCanvas||2!==e){if("undefined"!=typeof document)return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}return new OffscreenCanvas(300,150)}(e):t;n.addEventListener("webglcontextlost",(t=>{t.preventDefault(),delete wO[e]}),!1),Sn().getBool("SOFTWARE_WEBGL_ENABLED")&&(vO.failIfMajorPerformanceCaveat=!1);if(1===e)return n.getContext("webgl",vO)||n.getContext("experimental-webgl",vO);return n.getContext("webgl2",vO)}(e,t);if(null===n)return null;wO[e]=n}const n=wO[e];return null==n||n.isContextLost()?(delete wO[e],xO(e)):(n.disable(n.DEPTH_TEST),n.disable(n.STENCIL_TEST),n.disable(n.BLEND),n.disable(n.DITHER),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SAMPLE_COVERAGE),n.enable(n.SCISSOR_TEST),n.enable(n.CULL_FACE),n.cullFace(n.BACK),wO[e])}var AO,CO,kO;function SO(e,t){return[t,e]}function _O(e){const t=Kt(e);return Zt(Math.ceil(t/4))}function EO(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function IO(e,t){const n=e;let s,r,i,a,o,l,u,c,h,d;return 2===Sn().getNumber("WEBGL_VERSION")?(s=n.R32F,r=n.R16F,i=n.RGBA16F,a=n.RGBA32F,o=n.RED,u=4,c=1,h=n.HALF_FLOAT,d=n.FLOAT,l=n.RGBA8):(s=e.RGBA,r=e.RGBA,i=e.RGBA,a=n.RGBA,o=e.RGBA,u=4,c=4,h=null!=t?t.HALF_FLOAT_OES:null,d=e.FLOAT,l=e.RGBA),{internalFormatFloat:s,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:i,internalFormatPackedFloat:a,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:c,textureTypeHalfFloat:h,textureTypeFloat:d}}function TO(e,t){const n=t();return Sn().getBool("DEBUG")&&function(e){const t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+function(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}`}}(e,t))}(e),n}!function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"}(AO||(AO={})),function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"}(CO||(CO={})),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"}(kO||(kO={}));function NO(e){return!!(Sn().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||0===e||5.96e-8e.getExtension(t)),'Extension "'+t+'" not supported on this browser.')}const OO=/ERROR: [0-9]+:([0-9]+):/g;function DO(e,t){const n=OO.exec(t);if(null==n)return;const s=+n[1],r=e.split("\n"),i=r.length.toString().length+2,a=r.map(((e,t)=>Yt((t+1).toString(),i)+e));let o=0;for(let e=0;ee.validateProgram(t))),!1===e.getProgramParameter(t,e.VALIDATE_STATUS))throw new Error("Shader program validation failed.")}function zO(e,t,n,s,r,i,a){const o=e.getAttribLocation(t,n);return-1!==o&&(TO(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,s))),TO(e,(()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,i,a))),TO(e,(()=>e.enableVertexAttribArray(o))),!0)}function FO(e,t,n,s){TO(e,(()=>function(e,t,n){VO(e,n),TO(e,(()=>e.activeTexture(e.TEXTURE0+n))),TO(e,(()=>e.bindTexture(e.TEXTURE_2D,t)))}(e,t,s))),TO(e,(()=>e.uniform1i(n,s)))}function BO(e,t,n){TO(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,n))),TO(e,(()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0)))}function LO(e,t){TO(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,t))),TO(e,(()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0)))}function PO(e){const t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+function(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}`}}(e,t))}function UO(e,t,n){const s=TO(e,(()=>t()));if(null==s)throw new Error(n);return s}function VO(e,t){const n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,s=t+e.TEXTURE0;if(sn){throw new Error(`textureUnit must be in ${`[gl.TEXTURE0, gl.TEXTURE${n}]`}.`)}}function WO(e,t=2){return Kt(e.slice(0,e.length-t))}function jO(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 GO(e){let t=[1,1,1];return 0===e.length||1===e.length&&1===e[0]||(t=[WO(e),...jO(e)]),t}function qO(e){return e%2==0}function HO(e,t){if($t(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){const n=e[e.length-1],s=t[t.length-1];if(n===s)return!0;if(qO(n)&&qO(s)&&(1===e[0]||1===t[0]))return!0}return e[1]===t[1]&&qO(e[0])&&qO(t[0])}let KO,$O;function XO(e,t){return null!=e.getExtension(t)}function ZO(e){try{if(null!=xO(e))return!0}catch(e){return!1}return!1}function YO(e){if(0===e)return!1;const t=xO(e);if(1!==e){if(XO(t,"EXT_color_buffer_float"))return QO(t);const e="EXT_color_buffer_half_float";if(XO(t,e)){const n=t.getExtension(e);return function(e,t){const n=IO(e,t),s=e.createTexture();e.bindTexture(e.TEXTURE_2D,s);const r=1,i=1;e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,r,i,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);const a=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,a),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,s,0);const o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(s),e.deleteFramebuffer(a),o}(t,n)}return!1}if(!XO(t,"OES_texture_float"))return!1;if(!XO(t,"WEBGL_color_buffer_float"))return!1;return QO(t)}function QO(e){const t=IO(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);const s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);const r=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(s),r}function JO(e,t){Array.isArray(e)||(e=[e]),e.forEach((e=>{null!=e&&Gt("complex64"!==e.dtype,(()=>`${t} does not support complex64 tensors in the WebGL backend.`))}))}const eD=Sn();function tD(){let e,t,n,s,r,i,a,o,l,u;return 2===Sn().getNumber("WEBGL_VERSION")?(e="#version 300 es",t="in",n="out",s="in",r="texture",i="outputColor",a="out vec4 outputColor;",o=Sn().getBool("WEBGL2_ISNAN_CUSTOM")?"\n bool isnan_custom(float val) {\n uint floatToUint = floatBitsToUint(val);\n return (floatToUint & 0x7fffffffu) > 0x7f800000u;\n }\n\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan_custom(val.x),\n isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w));\n }\n\n #define isnan(value) isnan_custom(value)\n ":"",l="",u="\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",s="varying",r="texture2D",i="gl_FragColor",a="",o="\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 ",l="\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 ",u="\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:s,texture2D:r,output:i,defineOutput:a,defineSpecialNaN:o,defineSpecialInf:l,defineRound:u}}function nD(e,t,n="index"){const s=dn(t);return s.map(((t,r)=>`${`int ${e[r]} = ${n} / ${t}`}; ${r===s.length-1?`int ${e[r+1]} = ${n} - ${e[r]} * ${t}`:`index -= ${e[r]} * ${t}`};`)).join("")}function sD(e,t,n="index"){const s=dn(t);return s.map(((t,r)=>`${`int ${e[r]} = ${n} / outShapeStrides[${r}]`}; ${r===s.length-1?`int ${e[r+1]} = ${n} - ${e[r]} * outShapeStrides[${r}]`:`index -= ${e[r]} * outShapeStrides[${r}]`};`)).join("")}function rD(e,t,n="index"){const s=function(e,t){const n=e.length,s=e.map((e=>`${t}[${e}]`)),r=new Array(n-1);r[n-2]=s[n-1];for(let e=n-3;e>=0;--e)r[e]=`(${r[e+1]} * ${s[e+1]})`;return r}(e.map(((e,t)=>t)),t);return s.map(((t,r)=>`${`int ${e[r]} = ${n} / ${s[r]}`}; ${r===s.length-1?`int ${e[r+1]} = ${n} - ${e[r]} * ${s[r]}`:`index -= ${e[r]} * ${s[r]}`};`)).join("")}function iD(e){const t=dn(e).map((e=>e.toString()));return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z;\n }\n`}eD.registerFlag("HAS_WEBGL",(()=>eD.getNumber("WEBGL_VERSION")>0)),eD.registerFlag("WEBGL_VERSION",(()=>ZO(2)?2:ZO(1)?1:0)),eD.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",(()=>!1)),eD.registerFlag("WEBGL_BUFFER_SUPPORTED",(()=>2===eD.get("WEBGL_VERSION"))),eD.registerFlag("WEBGL_CPU_FORWARD",(()=>!0)),eD.registerFlag("WEBGL_FORCE_F16_TEXTURES",(()=>!1)),eD.registerFlag("WEBGL_PACK",(()=>eD.getBool("HAS_WEBGL"))),eD.registerFlag("WEBGL_PACK_NORMALIZATION",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_PACK_CLIP",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_PACK_DEPTHWISECONV",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_PACK_REDUCE",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_LAZILY_UNPACK",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_CONV_IM2COL",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_PACK_CONV2DTRANSPOSE",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_MAX_TEXTURE_SIZE",(()=>function(e){if(null==KO){const t=xO(e);KO=t.getParameter(t.MAX_TEXTURE_SIZE)}return KO}(eD.getNumber("WEBGL_VERSION")))),eD.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",(()=>function(e){if(null==$O){const t=xO(e);$O=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,$O)}(eD.getNumber("WEBGL_VERSION")))),eD.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",(()=>{const e=eD.getNumber("WEBGL_VERSION");return 0===e?0:function(e){if(0===e)return 0;let t;const n=xO(e);return t=XO(n,"EXT_disjoint_timer_query_webgl2")&&2===e?2:XO(n,"EXT_disjoint_timer_query")?1:0,t}(e)})),eD.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",(()=>eD.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!ro())),eD.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",(()=>function(e){if(0===e)return!1;const t=xO(e);if(1===e){if(!XO(t,"OES_texture_float"))return!1}else if(!XO(t,"EXT_color_buffer_float"))return!1;return QO(t)}(eD.getNumber("WEBGL_VERSION")))),eD.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",(()=>!eD.getBool("WEBGL_FORCE_F16_TEXTURES")&&eD.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"))),eD.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",(()=>YO(eD.getNumber("WEBGL_VERSION")))),eD.registerFlag("WEBGL_FENCE_API_ENABLED",(()=>{return 2===(e=eD.getNumber("WEBGL_VERSION"))&&null!=xO(e).fenceSync;var e})),eD.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",(()=>eD.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0)),eD.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",(()=>-1),(e=>{if("number"!=typeof e)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be a number but got ${e}.`);if(e<0&&-1!==e)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)})),eD.registerFlag("WEBGL_FLUSH_THRESHOLD",(()=>ro()?1:-1),(e=>{if("number"!=typeof e)throw new Error(`WEBGL_FLUSH_THRESHOLD must be a number but got ${e}.`);if(e<0&&-1!==e)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${e}.`)})),eD.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",(()=>128)),eD.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",(()=>!1)),eD.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",(()=>1e5)),eD.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",(()=>128)),eD.registerFlag("WEBGL_EXP_CONV",(()=>!1)),eD.registerFlag("SOFTWARE_WEBGL_ENABLED",(()=>eD.getBool("IS_TEST"))),eD.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",(()=>1/0)),eD.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",(()=>!1)),eD.registerFlag("WEBGL2_ISNAN_CUSTOM",(()=>!1)),eD.registerFlag("ENGINE_COMPILE_ONLY",(()=>!1));const aD="\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",{getBroadcastDims:oD}=r;function lD(e,t,n){const s=[];if(e.forEach((e=>{const t=Kt(e.shapeInfo.logicalShape);if(e.shapeInfo.isUniform?s.push(`uniform float ${e.name}${t>1?`[${t}]`:""};`):(s.push(`uniform sampler2D ${e.name};`),s.push(`uniform int offset${e.name};`)),n.enableShapeUniforms){const{uniformShape:t}=wD(n.packedInputs,e.shapeInfo.logicalShape,e.shapeInfo.texShape);switch(t.length){case 1:s.push(`uniform int ${e.name}Shape;`);break;case 2:s.push(`uniform ivec2 ${e.name}Shape;`);break;case 3:s.push(`uniform ivec3 ${e.name}Shape;`);break;case 4:s.push(`uniform ivec4 ${e.name}Shape;`)}s.push(`uniform ivec2 ${e.name}TexShape;`)}})),n.enableShapeUniforms){switch(t.logicalShape.length){case 1:s.push("uniform int outShape;");break;case 2:s.push("uniform ivec2 outShape;"),s.push("uniform int outShapeStrides;");break;case 3:s.push("uniform ivec3 outShape;"),s.push("uniform ivec2 outShapeStrides;");break;case 4:s.push("uniform ivec4 outShape;"),s.push("uniform ivec3 outShapeStrides;")}s.push("uniform ivec2 outTexShape;")}n.customUniforms&&n.customUniforms.forEach((e=>{s.push(`uniform ${e.type} ${e.name}${e.arrayIndex?`[${e.arrayIndex}]`:""};`)}));const r=s.join("\n"),i=e.map((e=>function(e,t,n=!1,s){let r="";r+=n?cD(e,s):uD(e,s);const i=e.shapeInfo.logicalShape,a=t.logicalShape;i.length<=a.length&&(r+=n?function(e,t){const n=e.name,s=n.charAt(0).toUpperCase()+n.slice(1),r="get"+s+"AtOutCoords",i=e.shapeInfo.logicalShape.length,a=t.logicalShape.length,o=oD(e.shapeInfo.logicalShape,t.logicalShape),l=bD(a),u=a-i;let c;const h=["x","y","z","w","u","v"];c=0===i?"":a<2&&o.length>=1?"coords = 0;":o.map((e=>`coords.${h[e+u]} = 0;`)).join("\n");let d="";d=a<2&&i>0?"coords":e.shapeInfo.logicalShape.map(((e,t)=>`coords.${h[t+u]}`)).join(", ");let p="return outputValue;";const f=1===Kt(e.shapeInfo.logicalShape),m=Kt(t.logicalShape),g=1===m;if(1!==i||f||g){if(f&&!g)p=1===a?"\n return vec4(outputValue.x, outputValue.x, 0., 0.);\n ":"\n return vec4(outputValue.x);\n ";else if(o.length){const e=i-2,t=i-1;o.indexOf(e)>-1&&o.indexOf(t)>-1?p="return vec4(outputValue.x);":o.indexOf(e)>-1?p="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":o.indexOf(t)>-1&&(p="return vec4(outputValue.xx, outputValue.zz);")}}else p="\n return vec4(outputValue.xy, outputValue.xy);\n ";return`\n vec4 ${r}() {\n ${l} coords = getOutputCoords();\n ${c}\n vec4 outputValue = get${s}(${d});\n ${p}\n }\n `}(e,t):function(e,t){const n=e.name,s=n.charAt(0).toUpperCase()+n.slice(1),r="get"+s+"AtOutCoords",i=t.texShape,a=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&null==e.shapeInfo.flatOffset&&$t(a,i))return`\n float ${r}() {\n return sampleTexture(${n}, resultUV);\n }\n `;const u=bD(l),c=oD(e.shapeInfo.logicalShape,t.logicalShape),h=l-o;let d;const p=["x","y","z","w","u","v"];d=0===o?"":l<2&&c.length>=1?"coords = 0;":c.map((e=>`coords.${p[e+h]} = 0;`)).join("\n");let f="";f=l<2&&o>0?"coords":e.shapeInfo.logicalShape.map(((e,t)=>`coords.${p[t+h]}`)).join(", ");return`\n float ${r}() {\n ${u} coords = getOutputCoords();\n ${d}\n return get${s}(${f});\n }\n `}(e,t));return r}(e,t,n.packedInputs,n.enableShapeUniforms))).join("\n"),a=t.texShape,o=tD(),l=function(e){return`\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\n return ${e.texture2D}(textureSampler, uv).r;\n }\n `}(o);let u,c,h=function(e){const t=`${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 ${hD}\n ${dD}\n ${pD}\n `;return t}(o);t.isPacked?(u=function(e,t,n){switch(e.length){case 0:return mD();case 1:return function(e,t,n){const s=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(1===s[0])return n?"\n int getOutputCoords() {\n return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0));\n }\n ":`\n int getOutputCoords() {\n return 2 * int(resultUV.x * ${s[1]}.0);\n }\n `;if(1===s[1])return n?"\n int getOutputCoords() {\n return 2 * int(resultUV.y * ceil(float(outTexShape[0]) / 2.0));\n }\n ":`\n int getOutputCoords() {\n return 2 * int(resultUV.y * ${s[0]}.0);\n }\n `;if(n)return"\n int getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n return 2 * (resTexRC.x * packedTexShape[1] + resTexRC.y);\n }\n ";return`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${s[0]}, ${s[1]}));\n return 2 * (resTexRC.x * ${s[1]} + resTexRC.y);\n }\n `}(0,t,n);case 2:return function(e,t,n){const s=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if($t(e,t))return n?"\n ivec2 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n return 2 * ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1]));\n }\n ":`\n ivec2 getOutputCoords() {\n return 2 * ivec2(resultUV.yx * vec2(${s[0]}, ${s[1]}));\n }\n `;const r=Math.ceil(e[1]/2);if(n)return"\n ivec2 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n int texelsInLogicalRow = int(ceil(float(outShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec2(r, c);\n }\n ";return`\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${s[0]}, ${s[1]}));\n\n int index = resTexRC.x * ${s[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,n);case 3:return function(e,t,n){if(n)return"\n ivec3 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0));\n int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n\n int b = index / texelsInBatch;\n index -= b * texelsInBatch;\n\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec3(b, r, c);\n }\n ";const s=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],r=Math.ceil(e[2]/2),i=r*Math.ceil(e[1]/2);return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${s[0]}, ${s[1]}));\n int index = resTexRC.x * ${s[1]} + resTexRC.y;\n\n int b = index / ${i};\n index -= b * ${i};\n\n int r = 2 * (index / ${r});\n int c = imod(index, ${r}) * 2;\n\n return ivec3(b, r, c);\n }\n `}(e,t,n);default:return function(e,t,n){if(n)return"\n ivec4 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n\n int texelsInLogicalRow = int(ceil(float(outShape[3]) / 2.0));\n int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[2]) / 2.0));\n int texelsInBatchN = texelsInBatch * outShape[1];\n\n int b2 = index / texelsInBatchN;\n index -= b2 * texelsInBatchN;\n\n int b = index / texelsInBatch;\n index -= b * texelsInBatch;\n\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec4(b2, b, r, c);\n }\n ";const s=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],r=Math.ceil(e[e.length-1]/2),i=r*Math.ceil(e[e.length-2]/2);let a=i,o="",l="b, r, c";for(let t=2;t1&&!$t(t,n)&&s.lengthe[t])).join(", ")}function AD(e,t,n,s){const r=n.map(((e,n)=>{const s={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&&(s.flatOffset=e.texData.slice.flatOffset),{name:t.variableNames[n],shapeInfo:s}})),i=r.map((e=>e.shapeInfo)),a={logicalShape:s.shape,texShape:s.texData.texShape,isUniform:!1,isPacked:s.texData.isPacked,flatOffset:null},o=lD(r,a,t),l=function(e,t){const n=UO(e,(()=>e.createShader(e.FRAGMENT_SHADER)),"Unable to create fragment WebGLShader.");if(TO(e,(()=>e.shaderSource(n,t))),TO(e,(()=>e.compileShader(n))),Sn().get("ENGINE_COMPILE_ONLY"))return n;if(!1===e.getShaderParameter(n,e.COMPILE_STATUS))throw DO(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}(e.gl,o),u=e.createProgram(l);return Sn().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:i,outShapeInfo:a,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(e.buildVao(u),Object.assign({program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:i,outShapeInfo:a},CD(e,t,u)))}function CD(e,t,n){const s=[],r=[];let i,a,o,l=null,u=null;u=e.getUniformLocation(n,"NAN",!1),1===Sn().getNumber("WEBGL_VERSION")&&(l=e.getUniformLocation(n,"INFINITY",!1));const c=!1;for(const r of t.variableNames){const i={name:r,uniform:e.getUniformLocation(n,r,c),offset:e.getUniformLocation(n,`offset${r}`,c)};t.enableShapeUniforms&&(i.shape=e.getUniformLocation(n,`${r}Shape`,c),i.texShape=e.getUniformLocation(n,`${r}TexShape`,c)),s.push(i)}if(t.enableShapeUniforms&&(i=e.getUniformLocation(n,"outShape",c),o=e.getUniformLocation(n,"outShapeStrides",c),a=e.getUniformLocation(n,"outTexShape",c)),t.customUniforms)for(const s of t.customUniforms)r.push(e.getUniformLocation(n,s.name,c));return{variablesLocations:s,customUniformLocations:r,infLoc:l,nanLoc:u,outShapeLocation:i,outShapeStridesLocation:o,outTexShapeLocation:a}}function kD(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach(((e,n)=>{const s=e.logicalShape,r=t[n],i=r.shape;if(!$t(s,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${s} and ${i} must match`);if(e.isUniform&&r.isUniform)return;const a=e.texShape,o=r.isUniform?null:r.texData.texShape;if(!$t(a,o))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${a} and ${o} must match`)}))}function SD(e){return Sn().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}class _D{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=AO.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];const t=tD();this.outputShape=e,this.enableShapeUniforms=SD(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?sD(["r","c","d"],e):nD(["r","c","d"],e)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1]));\n int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getA(rc.x, rc.y, rc.z);\n }\n\n ${t.output} = result;\n }\n `}}class ED{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=AO.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];const t=tD();this.outputShape=e,this.enableShapeUniforms=SD(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?sD(["r","c","d"],e):nD(["r","c","d"],e)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1]));\n int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z));\n }\n\n ${t.output} = result;\n }\n `}}class ID{constructor(e){this.variableNames=["A"],this.outTexUsage=CO.DOWNLOAD;const t=tD();this.outputShape=e,this.userCode=`\n ${aD}\n\n void main() {\n float x = getAAtOutCoords();\n ${t.output} = encode_float(x);\n }\n `}}class TD{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=CO.DOWNLOAD;const t=tD();this.outputShape=e,this.userCode=`\n ${aD}\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 `}}const ND={R:0,G:1,B:2,A:3};class RD{constructor(e,t=!1,n="RGBA"){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];const s=tD();this.outputShape=e,this.enableShapeUniforms=SD(this.outputShape.length);let r="result";t&&(r="floor(result * 255. + 0.5)");let i="";for(let e=0;ee.createShader(e.VERTEX_SHADER)),"Unable to create vertex WebGLShader.");if(TO(e,(()=>e.shaderSource(n,t))),TO(e,(()=>e.compileShader(n))),!1===e.getShaderParameter(n,e.COMPILE_STATUS))throw new Error("Failed to compile vertex shader.");return n}(e,`${t.version}\n precision highp float;\n ${t.attribute} vec3 clipSpacePos;\n ${t.attribute} vec2 uv;\n ${t.varyingVs} vec2 resultUV;\n\n void main() {\n gl_Position = vec4(clipSpacePos, 1);\n resultUV = uv;\n }`)}function MD(e){return function(e,t){const n=UO(e,(()=>e.createBuffer()),"Unable to create WebGLBuffer");return TO(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,n))),TO(e,(()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW))),n}(e,new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]))}function zD(e){return function(e,t){const n=UO(e,(()=>e.createBuffer()),"Unable to create WebGLBuffer");return TO(e,(()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n))),TO(e,(()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW))),n}(e,new Uint16Array([0,1,2,2,1,3]))}function FD(e,t,n,s,r,i){!function(e,t){const n=Sn().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0)throw new Error(`Requested texture size [${e}x${t}] is invalid.`);if(e>n||t>n)throw new Error(`Requested texture size [${e}x${t}] greater than WebGL maximum on this browser / GPU [${n}x${n}].`)}(t,n);const a=function(e){return UO(e,(()=>e.createTexture()),"Unable to create WebGLTexture.")}(e),o=e.TEXTURE_2D;return TO(e,(()=>e.bindTexture(o,a))),TO(e,(()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE))),TO(e,(()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE))),TO(e,(()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST))),TO(e,(()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST))),1===Sn().getNumber("WEBGL_VERSION")?TO(e,(()=>e.texImage2D(o,0,s,t,n,0,r,i,null))):TO(e,(()=>e.texStorage2D(o,1,s,t,n))),TO(e,(()=>e.bindTexture(e.TEXTURE_2D,null))),{texture:a,texShape:[n,t]}}function BD(e){return e.internalFormatFloat}function LD(e){return e.internalFormatHalfFloat}function PD(e){return e.downloadTextureFormat}function UD(e){return e.internalFormatPackedFloat}function VD(e){return e.internalFormatPackedHalfFloat}function WD(e,t,n,s,r,i,a,o){const l=e,u=new Float32Array(function(e,t){const[n,s]=EO(e,t);return n*s*4}(i,a));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,u),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),u}class jD{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];const t=Sn().getNumber("WEBGL_VERSION");if(null!=e?(this.gl=e,function(e,t){wO[e]=t}(t,e)):this.gl=xO(t),e=this.gl,2===Sn().getNumber("WEBGL_VERSION")){const t=e;this.createVertexArray=()=>TO(t,(()=>t.createVertexArray())),this.bindVertexArray=e=>TO(t,(()=>t.bindVertexArray(e))),this.deleteVertexArray=e=>TO(t,(()=>t.deleteVertexArray(e))),this.getVertexArray=()=>TO(t,(()=>t.getParameter(t.VERTEX_ARRAY_BINDING)))}else if(null!=e){const t=e.getExtension("OES_vertex_array_object");if(null==t)throw new Error("All WebGL1 implementations are expected to offer OES_vertex_array_object.");this.createVertexArray=()=>TO(e,(()=>t.createVertexArrayOES())),this.bindVertexArray=n=>TO(e,(()=>t.bindVertexArrayOES(n))),this.deleteVertexArray=n=>TO(e,(()=>t.deleteVertexArrayOES(n))),this.getVertexArray=()=>TO(e,(()=>e.getParameter(t.VERTEX_ARRAY_BINDING_OES)))}let n="WEBGL_color_buffer_float";const s="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),1===Sn().getNumber("WEBGL_VERSION")){const e="OES_texture_float",t="OES_texture_half_float";if(this.textureFloatExtension=RO(this.gl,e),XO(this.gl,t))this.textureHalfFloatExtension=RO(this.gl,t);else if(Sn().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),XO(this.gl,s))this.colorBufferHalfFloatExtension=RO(this.gl,s);else if(Sn().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",XO(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else{if(!XO(this.gl,s))throw new Error("GL context does not support color renderable floats");this.colorBufferHalfFloatExtension=this.gl.getExtension(s)}this.vertexBuffer=MD(this.gl),this.indexBuffer=zD(this.gl),this.framebuffer=function(e){return UO(e,(()=>e.createFramebuffer()),"Unable to create WebGLFramebuffer.")}(this.gl),this.textureConfig=IO(this.gl,this.textureHalfFloatExtension)}get debug(){return Sn().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program,this.outputTexture;const e=this.gl;TO(e,(()=>e.finish())),TO(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,null))),TO(e,(()=>e.deleteFramebuffer(this.framebuffer))),TO(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,null))),TO(e,(()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null))),TO(e,(()=>e.deleteBuffer(this.indexBuffer))),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,s){const[r,i]=SO(t,n);return FD(e,r,i,BD(s),s.textureFormatFloat,e.FLOAT)}(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,s){const[r,i]=SO(t,n);return FD(e,r,i,LD(s),s.textureFormatFloat,s.textureTypeHalfFloat)}(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,s){const[r,i]=SO(t,n);return FD(e,r,i,PD(s),e.RGBA,e.UNSIGNED_BYTE)}(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),function(e,t,n){TO(e,(()=>e.bindTexture(e.TEXTURE_2D,t))),n.data instanceof Uint8Array?2===Sn().getNumber("WEBGL_VERSION")?TO(e,(()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n.width,n.height,e.RGBA,e.UNSIGNED_BYTE,n.data))):TO(e,(()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data))):2===Sn().getNumber("WEBGL_VERSION")?TO(e,(()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n))):TO(e,(()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n))),TO(e,(()=>e.bindTexture(e.TEXTURE_2D,null)))}(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,s){this.throwIfDisposed(),function(e,t,n,s,r,i){let a,o,l;TO(e,(()=>e.bindTexture(e.TEXTURE_2D,t))),r instanceof Uint8Array?(a=new Uint8Array(n*s*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(a=new Float32Array(n*s*4),o=e.FLOAT,l=i.internalFormatPackedFloat),a.set(r),2===Sn().getNumber("WEBGL_VERSION")?TO(e,(()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,s,e.RGBA,o,a))):TO(e,(()=>e.texImage2D(e.TEXTURE_2D,0,l,n,s,0,e.RGBA,o,a))),TO(e,(()=>e.bindTexture(e.TEXTURE_2D,null)))}(this.gl,e,t,n,s,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,s){const[r,i]=EO(t,n);return FD(e,r,i,VD(s),e.RGBA,s.textureTypeHalfFloat)}(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,s){const[r,i]=EO(t,n);return FD(e,r,i,UD(s),e.RGBA,e.FLOAT)}(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(LO(this.gl,this.framebuffer),this.outputTexture=null),TO(this.gl,(()=>this.gl.deleteTexture(e)))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,(()=>function(e,t,n,s){const[r,i]=SO(t,n),a=new Uint8Array(t*n*4);return TO(e,(()=>e.readPixels(0,0,r,i,s.downloadTextureFormat,e.UNSIGNED_BYTE,a))),new Float32Array(a.buffer)}(this.gl,t,n,this.textureConfig)))}downloadPackedMatrixFromBuffer(e,t,n,s,r,i){return WD(this.gl,e,0,0,0,r,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return function(e,t,n){const s=e,r=new Float32Array(n);return s.bindBuffer(s.PIXEL_PACK_BUFFER,t),s.getBufferSubData(s.PIXEL_PACK_BUFFER,0,r),s.bindBuffer(s.PIXEL_PACK_BUFFER,null),r}(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);const s=function(e,t,n,s){const r=e.createBuffer();TO(e,(()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r)));const i=16*t*n;return TO(e,(()=>e.bufferData(e.PIXEL_PACK_BUFFER,i,e.STREAM_READ))),TO(e,(()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0))),TO(e,(()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null))),r}(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),s}createAndWaitForFence(){const e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(Sn().getBool("WEBGL_FENCE_API_ENABLED")){const s=e,r=s.fenceSync(s.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{const e=s.clientWaitSync(r,0,0);return e===s.ALREADY_SIGNALED||e===s.CONDITION_SATISFIED},t=r}else Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,(()=>function(e,t,n){const s=new Float32Array(t*n*4);return TO(e,(()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,s))),s}(this.gl,t,n)))}createProgram(e){this.throwIfDisposed();const t=this.gl;null==this.vertexShader&&(this.vertexShader=DD(t));const n=function(e){return UO(e,(()=>e.createProgram()),"Unable to create WebGLProgram.")}(t);TO(t,(()=>t.attachShader(n,this.vertexShader))),TO(t,(()=>t.attachShader(n,e))),function(e,t){if(TO(e,(()=>e.linkProgram(t))),!Sn().get("ENGINE_COMPILE_ONLY")&&!1===e.getProgramParameter(t,e.LINK_STATUS))throw new Error("Failed to link vertex and fragment shaders.")}(t,n);const s=Object.assign(n,{vao:this.createVertexArray()});return this.debug&&MO(t,s),s}buildVao(e){this.setProgram(e),this.bindVertexArray(e.vao);const t=this.gl;TO(t,(()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer))),function(e,t,n){TO(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,n))),zO(e,t,"clipSpacePos",n,3,20,0)&&zO(e,t,"uv",n,2,20,12)}(t,e,this.vertexBuffer)}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),null!=e&&(TO(this.gl,(()=>this.gl.deleteProgram(e))),this.deleteVertexArray(e.vao))}setProgram(e){this.throwIfDisposed(),this.program=e,null!=this.program&&this.debug&&MO(this.gl,this.program),TO(this.gl,(()=>this.gl.useProgram(e)))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?function(e,t,n){return UO(e,(()=>e.getUniformLocation(t,n)),'uniform "'+n+'" not present in program.')}(this.gl,e,t):function(e,t,n){return e.getUniformLocation(t,n)}(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),TO(this.gl,(()=>this.gl.getAttribLocation(e,t)))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),FO(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();const[s,r]=EO(t,n);this.setOutputMatrixTextureDriver(e,s,r)}setOutputMatrixWriteRegion(e,t,n,s){this.setOutputMatrixWriteRegionDriver(n,e,s,t)}setOutputPackedMatrixWriteRegion(e,t,n,s){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){null!=this.program&&MO(this.gl,this.program),PO(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();const e=this.gl;if(this.debug){this.getVertexArray();this.debugValidate()}TO(e,(()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0)))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),TO(this.gl,(()=>this.gl.finish()))}getQueryTimerExtension(){return null==this.disjointQueryTimerExtension&&(this.disjointQueryTimerExtension=RO(this.gl,2===Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(2===Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){const e=this.gl,t=this.getQueryTimerExtensionWebGL2(),n=e.createQuery();return e.beginQuery(t.TIME_ELAPSED_EXT,n),n}const e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(2===Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){const e=this.gl,t=this.getQueryTimerExtensionWebGL2();return void e.endQuery(t.TIME_ELAPSED_EXT)}const e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await Qt((()=>this.disposed||this.isQueryAvailable(e,Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")))),this.getQueryTime(e,Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(0===t)return null;if(2===t){const t=this.gl;return t.getQueryParameter(e,t.QUERY_RESULT)/1e6}{const t=this.getQueryTimerExtensionWebGL1();return t.getQueryObjectEXT(e,t.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(0===t)return!0;if(2===t){const t=this.gl,n=this.getQueryTimerExtensionWebGL2(),s=t.getQueryParameter(e,t.QUERY_RESULT_AVAILABLE);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),s&&!this.disjoint}{const t=this.getQueryTimerExtensionWebGL1(),n=t.getQueryObjectEXT(e,t.QUERY_RESULT_AVAILABLE_EXT);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(t.GPU_DISJOINT_EXT)),n&&!this.disjoint}}pollFence(e){return new Promise((t=>{this.addItemToPoll((()=>e.isFencePassed()),(()=>t()))}))}pollItems(){const e=function(e){let t=0;for(;te.isDoneFn)));for(let t=0;t<=e;++t){const{resolveFn:e}=this.itemsToPoll[t];e()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){if(this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1)return;let n;"setTimeoutCustom"in Sn().platform&&(n=Sn().platform.setTimeoutCustom.bind(Sn().platform)),Qt((()=>(this.pollItems(),0===this.itemsToPoll.length)),(()=>0),null,n)}bindTextureToFrameBuffer(e){this.throwIfDisposed(),BO(this.gl,e,this.framebuffer),this.debug&&PO(this.gl)}unbindTextureToFrameBuffer(){null!=this.outputTexture?(BO(this.gl,this.outputTexture,this.framebuffer),this.debug&&PO(this.gl)):LO(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);const n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();const s=this.gl;BO(s,e,this.framebuffer),this.debug&&PO(s),this.outputTexture=e,TO(s,(()=>s.viewport(0,0,t,n))),TO(s,(()=>s.scissor(0,0,t,n)))}setOutputMatrixWriteRegionDriver(e,t,n,s){this.throwIfDisposed(),TO(this.gl,(()=>this.gl.scissor(e,t,n,s)))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(null==this.program)throw new Error("No GPU program is currently set.")}}const{addImpl:GD,bincountImpl:qD,bincountReduceImpl:HD,bitwiseAndImpl:KD,castImpl:$D,ceilImpl:XD,concatImpl:ZD,equalImpl:YD,expImpl:QD,expm1Impl:JD,floorImpl:eM,gatherNdImpl:tM,gatherV2Impl:nM,greaterImpl:sM,greaterEqualImpl:rM,lessImpl:iM,lessEqualImpl:aM,linSpaceImpl:oM,logImpl:lM,maxImpl:uM,maximumImpl:cM,minimumImpl:hM,multiplyImpl:dM,negImpl:pM,notEqualImpl:fM,prodImpl:mM,raggedGatherImpl:gM,raggedRangeImpl:yM,raggedTensorToTensorImpl:bM,rangeImpl:wM,rsqrtImpl:vM,scatterImpl:xM,sigmoidImpl:AM,simpleAbsImpl:CM,sliceImpl:kM,sparseFillEmptyRowsImpl:SM,sparseReshapeImpl:_M,sparseSegmentReductionImpl:EM,sqrtImpl:IM,staticRegexReplaceImpl:TM,stridedSliceImpl:NM,stringNGramsImpl:RM,stringSplitImpl:OM,stringToHashBucketFastImpl:DM,subImpl:MM,tileImpl:zM,topKImpl:FM,transposeImpl:BM,uniqueImpl:LM}=S;function PM(e,t){return["x","y","z","w","u","v"].slice(0,t).map((t=>`${e}.${t}`))}function UM(e,t){return 1===t?[e]:PM(e,t)}class VM{constructor(e){if(this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.enableShapeUniforms=SD(this.outputShape.length),0===this.rank)this.userCode="\n void main() {\n setOutput(vec4(getA(), 0., 0., 0.));\n }\n ";else{const e=UM("rc",this.rank),t=bD(this.rank),n=this.getOutOfBoundsCondition(e),s=this.getSetup(e),r=this.getOutput(e);this.userCode=`\n void main() {\n ${t} rc = getOutputCoords();\n\n if(${n}) {\n setOutput(vec4(0));\n } else {\n ${s}\n\n setOutput(vec4(${r}));\n }\n }\n `}}getSourceCoordsArr(e){const t=[];for(let n=0;n<=1;n++)for(let s=0;s<=1;s++){let r=`${0===n?"r":"rp1"}, ${0===s?"c":"cp1"}`;for(let t=2;t ${this.enableShapeUniforms?"outShape":this.outputShape[0]}`;let t="";for(let n=this.rank-2;n= ${this.enableShapeUniforms?`outShape[${n}]`:this.outputShape[n]}`,n= ${n};\n bool rEdge = rp1 >= ${s};\n `}getOutput(e){const t=this.getSourceCoordsArr(e);if(1===this.rank){return`getA(rc), (rc + 1 >= ${this.enableShapeUniforms?"outShape":this.outputShape[0]} ? 0. : getA(rc + 1)), 0, 0`}return`getA(${t[0]}),\n cEdge ? 0. : getA(${t[1]}),\n rEdge ? 0. : getA(${t[2]}),\n rEdge || cEdge ? 0. : getA(${t[3]})`}}class WM{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=SD(this.outputShape.length);let n="";for(let e=0;e<4;e++){let t="thisRC = rc;";e%2==1&&(t+="thisRC.z += 1;"),e>1&&(t+="thisRC.y += 1;"),n+=`\n ${t}\n ${e>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[${e}] =\n getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\n ${e>0?"}":""}\n `}var s,r;this.userCode=`\n ${s=t,r=this.enableShapeUniforms,`\n ivec3 inputCoordsFromReshapedOutCoords(int index) {\n ${r?rD(["r","c","d"],"inputShape"):nD(["r","c","d"],s)}\n return ivec3(r, c, d);\n }\n `}\n ${this.enableShapeUniforms?"\n int getFlatIndex(ivec3 coords) {\n return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z;\n }\n":iD(e)}\n\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0.);\n\n ivec3 thisRC;\n int rows = ${this.enableShapeUniforms?"outShape[1]":e[1]};\n int cols = ${this.enableShapeUniforms?"outShape[2]":e[2]};\n\n ${n}\n\n setOutput(result);\n }\n `}}class jM{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(e,t,n){const s=qM(t,n),r=HM(e,s,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);const i=GM(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[r].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=i,this.log();const e=this.freeTextures[r].pop();return this.usedTextures[r].push(e),e}let a;return s===kO.PACKED_2X2_FLOAT32?a=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):s===kO.PACKED_2X2_FLOAT16?a=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):s===kO.UNPACKED_FLOAT32?a=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):s===kO.UNPACKED_FLOAT16?a=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):s===kO.PACKED_4X1_UNSIGNED_BYTE&&(a=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[r].push(a),this.numUsedTextures++,this._numBytesAllocated+=i,this.log(),a}releaseTexture(e,t,n,s){if(null==this.freeTextures)return;const r=qM(n,s),i=HM(t,r,s);i in this.freeTextures||(this.freeTextures[i]=[]);const a=GM(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,s),o=Sn().getNumber("WEBGL_DELETE_TEXTURE_THRESHOLD");-1!==o&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e.texture),this._numBytesAllocated-=a):(this.freeTextures[i].push(e),this.numFreeTextures++,this._numBytesFree+=a),this.numUsedTextures--;const l=this.usedTextures[i],u=l&&l.indexOf(e);if(null==u||u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l[u]=l[l.length-1],l.pop(),this.log()}log(){if(!this.logEnabled)return;this.numFreeTextures,this.numUsedTextures,this._numBytesFree,this._numBytesAllocated}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(null!=this.freeTextures){for(const e in this.freeTextures)this.freeTextures[e].forEach((e=>{this.gpgpu.deleteMatrixTexture(e.texture)}));for(const e in this.usedTextures)this.usedTextures[e].forEach((e=>{this.gpgpu.deleteMatrixTexture(e.texture)}));this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}}function GM(e,t,n,s,r){const i=function(e,t){switch(e){case kO.PACKED_2X2_FLOAT32:return UD(t);case kO.PACKED_2X2_FLOAT16:return VD(t);case kO.UNPACKED_FLOAT32:return BD(t);case kO.UNPACKED_FLOAT16:return LD(t);case kO.PACKED_4X1_UNSIGNED_BYTE:return PD(t);default:throw new Error(`Unknown physical texture type ${e}`)}}(t,s);let a;if(r){const[t,n]=EO(e[0],e[1]);a=t*n}else{const[t,n]=SO(e[0],e[1]);a=t*n}const o=function(e,t){const n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F)return 16;if(t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;if(t===n.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}(n,i);return a*o}function qM(e,t){if(e===CO.UPLOAD)return kO.PACKED_2X2_FLOAT32;if(e===CO.RENDER||null==e)return function(e){return Sn().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?kO.PACKED_2X2_FLOAT32:kO.UNPACKED_FLOAT32:e?kO.PACKED_2X2_FLOAT16:kO.UNPACKED_FLOAT16}(t);if(e===CO.DOWNLOAD||e===CO.PIXELS)return kO.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function HM(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}class KM{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=SD(this.outputShape.length),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 `}}const $M="if (isnan(x)) return x;",XM="return x;",ZM="return abs(x);";const YM="return (x >= 0.0) ? x : (exp(x) - 1.0);",QM=$M+"\n return (x < 0.0) ? 0.0 : x;\n",JM=$M+"\n return (x < 0.0) ? 0.0 : min(6.0, x);\n",ez="return x;",tz="return 1.0 / (1.0 + exp(-1.0 * x));",nz="return x;",sz="\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",rz="\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",iz="\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",az="return 1.0 / (1.0 + exp(-1.0 * x));";class oz{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=SD(this.outputShape.length),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 `}}class lz{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=SD(this.outputShape.length);const t=e.length,n=UM("rc",t),s=bD(t),r=function(e,t){if(1===e)return"rc";let n="";for(let s=0;st.push(e)))}const t=this.texData.get(e),{values:n,shape:s,slice:r,dtype:i,complexTensorInfos:a,isPacked:o}=t;if(null!=r){let t;t=o?new oz(s,ez):new KM(s,ez);const n=this.runWebGLProgram(t,[{dataId:e,shape:s,dtype:i}],i),r=this.read(n.dataId);return this.disposeIntermediateTensorInfo(n),r}if(null!=n)return this.convertAndCacheOnCPU(e);if(Sn().getBool("DEBUG")&&!Sn().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&2===Sn().getNumber("WEBGL_VERSION"))throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l,u,c=null;if("complex64"!==i&&Sn().get("WEBGL_BUFFER_SUPPORTED")){l=this.decode(e);const t=this.texData.get(l.dataId);c=this.gpgpu.createBufferFromTexture(t.texture.texture,..._O(s))}if(this.pendingRead.set(e,[]),"complex64"!==i&&await this.gpgpu.createAndWaitForFence(),"complex64"===i){const e=await Promise.all([this.read(a.real.dataId),this.read(a.imag.dataId)]);u=Zm(e[0],e[1])}else if(null==c)u=this.getValuesFromTexture(e);else{const e=Kt(s);u=this.gpgpu.downloadFloat32MatrixFromBuffer(c,e)}if(null!=l&&this.disposeIntermediateTensorInfo(l),null!=c){const e=this.gpgpu.gl;TO(e,(()=>e.deleteBuffer(c)))}const h=this.convertAndCacheOnCPU(e,u),d=this.pendingRead.get(e);return this.pendingRead.delete(e),d.forEach((e=>e(h))),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&vo().removeDataId(e,this),this.pendingDeletes--),h}readToGPU(e,t={}){const n=this.texData.get(e),{values:s,shape:r,slice:i,dtype:a,isPacked:o,texture:l}=n;if("complex64"===a)throw new Error("Does not support reading texture for complex64 dtype.");if(null!=i){let n;n=o?new oz(r,ez):new KM(r,ez);const s=this.runWebGLProgram(n,[{dataId:e,shape:r,dtype:a}],a),i=this.readToGPU(s,t);return this.disposeIntermediateTensorInfo(s),i}if(null==l)throw null!=s?new Error("Data is not on GPU but on CPU."):new Error("There is no data on GPU or CPU.");const u=this.decode(e,t.customTexShape),c=vo().makeTensorFromTensorInfo(u),h=this.texData.get(u.dataId);return Object.assign({tensorRef:c},h.texture)}bufferSync(e){const t=this.readSync(e.dataId);if("string"===e.dtype)try{const n=t.map((e=>ga(e)));return Tl(e.shape,e.dtype,n)}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return Tl(e.shape,e.dtype,t)}checkNumericalProblems(e){if(null!=e)for(let t=0;t0}time(e){const t=this.activeTimers,n=[];let s=!1;null==this.programTimersStack?(this.programTimersStack=n,s=!0):this.activeTimers.push(n),this.activeTimers=n,e();const r=ba(this.activeTimers.map((e=>e.query))).filter((e=>null!=e)),i=ba(this.activeTimers.map((e=>e.name))).filter((e=>null!=e));this.activeTimers=t,s&&(this.programTimersStack=null);const a={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){const e=await Promise.all(r);a.kernelMs=function(e){let t=0;for(let n=0;ne.map(((e,t)=>({name:i[t],ms:e}))).map((e=>`${e.name}: ${e.ms}`)).join(", ")}else a.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,a})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:fa(),endMs:null}}endTimer(e){return Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=fa(),e)}async getQueryTime(e){if(Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);const t=e;return t.endMs-t.startMs}disposeData(e,t=!1){if(this.pendingDisposal.has(e))return!1;if(!this.texData.has(e))return!0;if(t?this.texData.get(e).refCount=0:this.texData.get(e).refCount--,!t&&this.texData.get(e).refCount>0)return!1;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),this.pendingDeletes++,!1;this.releaseGPUData(e);const{complexTensorInfos:n}=this.texData.get(e);return null!=n&&(this.disposeData(n.real.dataId,t),this.disposeData(n.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){const{texture:t,dtype:n,texShape:s,usage:r,isPacked:i,slice:a}=this.texData.get(e),o=a&&a.origDataId||e,l=this.dataRefCount.get(o);l>1?this.dataRefCount.set(o,l-1):(this.dataRefCount.delete(o),null!=t&&(this.numBytesInGPU-=this.computeBytes(s,n),this.textureManager.releaseTexture(t,s,r,i)));const u=this.texData.get(e);u.texture=null,u.texShape=null,u.isPacked=!1,u.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture.texture}getDataInfo(e){return this.texData.get(e)}shouldExecuteOnCPU(e,t=hz){return Sn().getBool("WEBGL_CPU_FORWARD")&&e.every((e=>null==this.texData.get(e.dataId).texture&&Kt(e.shape)0&&on(n[0])){const r=n.map((e=>ma(e)));s=this.write(r,e,t)}else s=this.write(n,e,t);return this.texData.get(s).usage=null,{dataId:s,shape:e,dtype:t}}makeOutput(e,t,n){return vo().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,n),this)}unpackTensor(e){const t=new lz(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){const t=new VM(e.shape);return this.runWebGLProgram(t,[e],e.dtype,null,!0)}packedReshape(e,t){const n=[WO(e.shape),...jO(e.shape)],s={dtype:e.dtype,shape:n,dataId:e.dataId},r=[WO(t),...jO(t)],i=new WM(r,n),a=[n],o=this.runWebGLProgram(i,[s],e.dtype,a,!0);return{dataId:o.dataId,shape:t,dtype:o.dtype}}decode(e,t){const n=this.texData.get(e),{isPacked:s,shape:r,dtype:i}=n;if(null!=t){Gt(Kt(r)<=t[0]*t[1]*4,(()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data."))}const a=GO(r);let o;o=s?new ED(a):new _D(a);const l=[null!=t?t:_O(a)];return{dtype:i,shape:r,dataId:this.runWebGLProgram(o,[{shape:a,dtype:i,dataId:e}],i,l,!0,t).dataId}}runWebGLProgram(e,t,n,s,r=!1,i){const a=this.makeTensorInfo(e.outputShape,n),o=this.texData.get(a.dataId);if(e.packedOutput&&(o.isPacked=!0),e.outPackingScheme===AO.DENSE){const t=null!=i?i:_O(e.outputShape);o.texShape=t.map((e=>2*e))}if(null!=e.outTexUsage&&(o.usage=e.outTexUsage),0===Kt(a.shape))return o.values=nn(a.dtype,0),a;const l=[],u=t.map((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.");let n=this.texData.get(t.dataId);if(null==n.texture){if(!e.packedInputs&&Kt(t.shape)<=Sn().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)}if(this.uploadToGPU(t.dataId),!!n.isPacked!=!!e.packedInputs)t=n.isPacked?this.unpackTensor(t):this.packTensor(t),l.push(t),n=this.texData.get(t.dataId);else if(n.isPacked&&!HO(n.shape,t.shape)){const e=t,s=t.shape;t.shape=n.shape,t=this.packedReshape(t,s),l.push(t),n=this.texData.get(t.dataId),e.shape=s}return{shape:t.shape,texData:n,isUniform:!1}}));this.uploadToGPU(a.dataId);const c={shape:a.shape,texData:o,isUniform:!1},h=function(e,t,n){let s="";t.concat(n).forEach((t=>{const r=null!=t.texData&&null!=t.texData.slice&&t.texData.slice.flatOffset>0;if(e.enableShapeUniforms&&!t.isUniform){const i=t.texData.texShape,{useSqueezeShape:a,uniformShape:o,keptDims:l}=wD(e.packedInputs,t.shape,i);let u="",c="",h="";if(1===o.length&&e.packedInputs){const e=[Math.ceil(i[0]/2),Math.ceil(i[1]/2)];u=`${e[0]>1}_${e[1]>1}`}else if(2!==o.length||e.packedInputs){if(o.length>2&&!e.packedInputs){const e=dn(o);h=`${e[0]===i[1]}_${e[e.length-1]===i[1]}`}}else c=`${o[0]>1}_${o[1]>1}`;const d=t.shape.length,p=2===o.length&&$t(t.shape,i),f=1===Kt(t.shape),m=tu(t.shape,n.shape),g=!e.packedInputs&&d===n.shape.length&&$t(i,n.texData.texShape),y=e.packedInputs||o.length>2?"":`${i[0]>1}_${i[1]>1}`;s+=`${d}_${g}_${a?l:""}_${o.length}_${f}_${m}_${p}_${u}_${c}_${h}_${y}_${r}`}else{const e=t.isUniform?"uniform":t.texData.texShape;s+=`${t.shape}_${e}_${r}`}}));const r=e.userCode;let i=e.constructor.name;return i+="_"+s+"_"+r+`${Sn().getNumber("WEBGL_VERSION")}`,i}(e,u,c),d=this.getAndSaveBinary(h,(()=>AD(this.gpgpu,e,u,c))),p=null!=this.activeTimers;let f;p&&(f=this.startTimer()),Sn().get("ENGINE_COMPILE_ONLY")||function(e,t,n,s,r){t.program.enableShapeUniforms||(kD(t.inShapeInfos,n),kD([t.outShapeInfo],[s]));const i=s.texData.texture,a=s.texData.texShape;s.texData.isPacked?e.setOutputPackedMatrixTexture(i.texture,a[0],a[1]):e.setOutputMatrixTexture(i.texture,a[0],a[1]),e.setProgram(t.webGLProgram),e.bindVertexArray(t.webGLProgram.vao),1===Sn().getNumber("WEBGL_VERSION")&&null!==t.infLoc&&e.gl.uniform1f(t.infLoc,1/0),null!==t.nanLoc&&e.gl.uniform1f(t.nanLoc,NaN);for(let s=0;sthis.disposeIntermediateTensorInfo(e))),p&&(f=this.endTimer(f),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(f)}));const m=Sn().getNumber("WEBGL_FLUSH_THRESHOLD");if(m>0){const e=fa();e-this.lastGlFlushTime>m&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=e)}if(!Sn().getBool("WEBGL_LAZILY_UNPACK")&&o.isPacked&&!1===r){const e=this.unpackTensor(a);return this.disposeIntermediateTensorInfo(a),e}return a}compileAndRun(e,t,n,s,r=!1){n=n||t[0].dtype;return this.runWebGLProgram(e,t,n,s,r)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){if(!this.disposed){if(!Sn().getBool("IS_TEST")){Object.keys(this.binaryCache).forEach((e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}))}this.textureManager.dispose(),null!=this.canvas&&"undefined"!=typeof HTMLCanvasElement&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0}}floatPrecision(){return null==this.floatPrecisionValue&&(this.floatPrecisionValue=Ao((()=>{if(!Sn().get("WEBGL_RENDER_FLOAT32_ENABLED")){const e=Sn().getBool("DEBUG");Sn().set("DEBUG",!1);const t=this.abs(Vl(1e-8)).dataSync()[0];if(Sn().set("DEBUG",e),t>0)return 32}return 16}))),this.floatPrecisionValue}epsilon(){return 32===this.floatPrecision()?1e-7:1e-4}uploadToGPU(e){const t=this.texData.get(e),{shape:n,dtype:s,values:r,texture:i,usage:a,isPacked:o}=t;if(null!=i)return;const l=null!=this.activeTimers;let u;l&&(u=fa());let c=t.texShape;if(null==c&&(c=function(e,t=!1){let n=Sn().getNumber("WEBGL_MAX_TEXTURE_SIZE"),s=Sn().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");if(s===1/0&&Sn().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(s=n/2),t&&(n*=2,s*=2,1===(e=e.map(((t,n)=>n>=e.length-2?Wt(e[n]):e[n]))).length&&(e=[2,e[0]])),2!==e.length){const t=tn(e);e=t.newShape}let r=Kt(e),i=null;e.length<=1&&r<=n?i=[1,r]:2===e.length&&e[0]<=n&&e[1]<=n?i=e:3===e.length&&e[0]*e[1]<=n&&e[2]<=n?i=[e[0]*e[1],e[2]]:3===e.length&&e[0]<=n&&e[1]*e[2]<=n?i=[e[0],e[1]*e[2]]:4===e.length&&e[0]*e[1]*e[2]<=n&&e[3]<=n?i=[e[0]*e[1]*e[2],e[3]]:4===e.length&&e[0]<=n&&e[1]*e[2]*e[3]<=n&&(i=[e[0],e[1]*e[2]*e[3]]);const a=null!=i&&Math.max(...i)>s&&Math.min(...i)<=(t?2:1)&&Math.min(...i)>0;if(null==i||a)if(t){const t=WO(e);let n=2,s=2;e.length&&([n,s]=jO(e)),r=t*(n/2)*(s/2),i=Zt(r).map((e=>2*e))}else i=Zt(r);return i}(n,o),t.texShape=c),null!=r){const e=GO(n);let i,a=c[1],h=c[0];const d=r instanceof Uint8Array||r instanceof Uint8ClampedArray;!o&&d||([a,h]=EO(c[0],c[1])),i=o?new OD(e,d):new RD(e,d);const p=d?[h,a]:c,f=this.makeTensorInfo(p,s),m=this.texData.get(f.dataId);m.usage=d?CO.PIXELS:CO.UPLOAD,m.texShape=p,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(f.dataId),a,h,r);const g=[[h,a]],y=!0,b=this.runWebGLProgram(i,[f],s,g,y),w=this.texData.get(b.dataId);t.texShape=w.texShape,t.isPacked=w.isPacked,t.usage=w.usage,Sn().get("ENGINE_COMPILE_ONLY")?this.disposeData(b.dataId):(t.texture=w.texture,t.values=null,this.texData.delete(b.dataId)),this.disposeIntermediateTensorInfo(f),l&&(this.uploadWaitMs+=fa()-u)}else{const e=this.acquireTexture(c,a,s,o);t.texture=e}}convertAndCacheOnCPU(e,t){const n=this.texData.get(e),{dtype:s}=n;return null!=t&&(n.values=function(e,t){if("float32"===t||"complex64"===t)return e;if("int32"===t||"bool"===t){const n="int32"===t?new Int32Array(e.length):new Uint8Array(e.length);for(let t=0;t1024*this.numMBBeforeWarning*1024){(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0}return this.textureManager.acquireTexture(e,t,s)}computeBytes(e,t){return e[0]*e[1]*an(t)}checkCompileCompletion(){for(const[,e]of Object.entries(this.binaryCache))this.checkCompletion_(e)}async checkCompileCompletionAsync(){const e=[];if(this.gpgpu.parallelCompilationExtension){for(const[,t]of Object.entries(this.binaryCache))e.push(this.checkCompletionAsync_(t));return Promise.all(e)}for(const[,t]of Object.entries(this.binaryCache)){const n=new Promise((e=>{try{this.checkCompletion_(t),e(!0)}catch(e){throw e}}));e.push(n)}return Promise.all(e)}async checkCompletionAsync_(e){return this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(e):(await Sm(),this.checkCompletionAsync_(e))}checkCompletion_(e){if(!1===this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.gl.LINK_STATUS)){if(!1===this.gpgpu.gl.getShaderParameter(e.fragmentShader,this.gpgpu.gl.COMPILE_STATUS))throw DO(e.source,this.gpgpu.gl.getShaderInfoLog(e.fragmentShader)),new Error("Failed to compile fragment shader.");throw new Error("Failed to link vertex and fragment shaders.")}return!0}getUniformLocations(){for(const e of Object.values(this.binaryCache)){this.gpgpu.buildVao(e.webGLProgram);const{variablesLocations:t,customUniformLocations:n,infLoc:s,nanLoc:r,outShapeLocation:i,outShapeStridesLocation:a,outTexShapeLocation:o}=CD(this.gpgpu,e.program,e.webGLProgram);e.variablesLocations=t,e.customUniformLocations=n,e.infLoc=s,e.nanLoc=r,e.outShapeLocation=i,e.outShapeStridesLocation=a,e.outTexShapeLocation=o}}createTensorFromGPUData(e,t,n){e.channels=e.channels||"RGBA";const{texture:s,height:r,width:i,channels:a}=e,o=vo().backend;if(!o.gpgpu.gl.isTexture(s))throw new Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");const l=o.writeTexture(s,t,n,r,i,a);return vo().makeTensorFromDataId(l,t,n,o)}}dz.nextDataId=0;io()&&So("webgl",(()=>new dz),2);const pz="\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n";class fz{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=su(t,n),this.enableShapeUniforms=SD(this.outputShape.length),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 `}}const mz="\n result.r = isNaN.r ? NAN : result.r;\n result.g = isNaN.g ? NAN : result.g;\n result.b = isNaN.b ? NAN : result.b;\n result.a = isNaN.a ? NAN : result.a;\n";class gz{constructor(e,t,n,s=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=su(t,n);const r=this.outputShape.length;this.enableShapeUniforms=SD(r);let i="";if(s)if(0===r||1===Kt(this.outputShape))i="\n result.y = 0.;\n result.z = 0.;\n result.w = 0.;\n ";else{if(i=`\n ${bD(r)} coords = getOutputCoords();\n `,1===r)this.enableShapeUniforms?i+="\n result.y = (coords + 1) >= outShape ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n ":i+=`\n result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n `;else{const e=UM("coords",r);this.enableShapeUniforms?i+=`\n bool nextRowOutOfBounds =\n (${e[r-2]} + 1) >= outShape[${r} - 2];\n bool nextColOutOfBounds =\n (${e[r-1]} + 1) >= outShape[${r} - 1];\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n `:i+=`\n bool nextRowOutOfBounds =\n (${e[r-2]} + 1) >= ${this.outputShape[r-2]};\n bool nextColOutOfBounds =\n (${e[r-1]} + 1) >= ${this.outputShape[r-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 ${i}\n\n setOutput(result);\n }\n `}}function yz(e){const{inputs:t,backend:n}=e,{x:s}=t;return n.incRef(s.dataId),{dataId:s.dataId,shape:s.shape,dtype:s.dtype}}const bz={kernelName:qs,backendName:"webgl",kernelFunc:yz};function wz(e){const{inputs:t,backend:n}=e,{real:s,imag:r}=t,i=n.makeTensorInfo(s.shape,"complex64"),a=n.texData.get(i.dataId),o=yz({inputs:{x:s},backend:n}),l=yz({inputs:{x:r},backend:n});return a.complexTensorInfos={real:o,imag:l},i}const vz={kernelName:ns,backendName:"webgl",kernelFunc:wz},xz="return (a < 0.) ? b * a : a;",Az="\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n";const Cz={kernelName:Ys,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{alpha:i}=s,a=n.makeTensorInfo([],"float32",da(i,"float32")),o=Sn().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new gz(Az,r.shape,a.shape):new fz(xz,r.shape,a.shape),l=n.runWebGLProgram(o,[r,a],"float32");return n.disposeIntermediateTensorInfo(a),l}},kz="return (a < 0.) ? b * a : a;",Sz="\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n";const _z={kernelName:Or,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:s,alpha:r}=t,i=Sn().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new gz(Sz,s.shape,r.shape):new fz(kz,s.shape,r.shape);return n.runWebGLProgram(i,[s,r],"float32")}},Ez="if (isnan(x)) return x;";function Iz({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:n,dtype:s}){return({inputs:r,backend:i})=>{const{x:a}=r,o=i,l=s||a.dtype;if(o.shouldExecuteOnCPU([a])&&null!=n){const e=o.texData.get(a.dataId),t=n(e.values,l);return o.makeTensorInfo(a.shape,l,t)}let u;return u=Sn().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&null!=t?new oz(a.shape,t):new KM(a.shape,e),o.runWebGLProgram(u,[a],l)}}function Tz({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:n=!1,supportsComplex:s=!1,cpuKernelImpl:r,dtype:i}){return({inputs:a,backend:o})=>{const{a:l,b:u}=a,c=o;if(s&&"complex64"===l.dtype){const t=c.texData.get(l.dataId),n=c.texData.get(u.dataId),[s,r]=[[t.complexTensorInfos.real,n.complexTensorInfos.real],[t.complexTensorInfos.imag,n.complexTensorInfos.imag]].map((t=>{const[n,s]=t,r={dataId:n.dataId,dtype:n.dtype,shape:l.shape},i={dataId:s.dataId,dtype:s.dtype,shape:u.shape},a=new fz(e,l.shape,u.shape);return c.runWebGLProgram(a,[r,i],ja(n.dtype,s.dtype))})),i=wz({inputs:{real:s,imag:r},backend:c});return c.disposeIntermediateTensorInfo(s),c.disposeIntermediateTensorInfo(r),i}const h=i||ja(l.dtype,u.dtype);if(("string"===l.dtype||"string"===u.dtype||c.shouldExecuteOnCPU([l,u]))&&null!=r){const e=c.texData.get(l.dataId).values,t=c.texData.get(u.dataId).values,n="string"===l.dtype?Ng(e):e,s="string"===l.dtype?Ng(t):t,[i,a]=r(l.shape,u.shape,n,s,h),o=c.makeTensorInfo(a,h);return c.texData.get(o.dataId).values=i,o}let d;return d=Sn().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&null!=t?new gz(t,l.shape,u.shape,n):new fz(e,l.shape,u.shape),c.runWebGLProgram(d,[l,u],h)}}function Nz(e,t=!1){if("linear"===e)return t?nz:XM;if("relu"===e)return t?rz:QM;if("elu"===e)return t?sz:YM;if("relu6"===e)return t?iz:JM;if("prelu"===e)return t?Sz:kz;if("leakyrelu"===e)return t?Az:xz;if("sigmoid"===e)return t?az:tz;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}class Rz{constructor(e,t,n,s=!1,r=!1,i=!1,a=null,o=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n,this.enableShapeUniforms=SD(this.outputShape.length);const u=s?e[1]:e[2],c=Math.ceil(u/2),h=s?"i * 2, rc.y":"rc.y, i * 2",d=r?"rc.z, i * 2":"i * 2, rc.z",p=s?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],f=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"];let m="",g="";a&&(m=o?`vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n ${a}\n }`:l?`vec4 activation(vec4 a) {\n vec4 b = getLeakyreluAlphaAtOutCoords();\n ${a}\n }`:`vec4 activation(vec4 x) {\n ${a}\n }`,g="result = activation(result);");const y=i?"result += getBiasAtOutCoords();":"";i&&this.variableNames.push("bias"),o&&this.variableNames.push("preluActivationWeights"),l&&this.variableNames.push("leakyreluAlpha");let b="rc.x",w="rc.x";e[0]`The new shape (${l}) has ${u} elements and the old shape (${r.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`));const c=a.texData.get(r.dataId);return!c.isPacked||HO(r.shape,l)||null!==c.texture&&HO(c.shape,l)?(a.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype}):function(e,t,n){const s=[WO(e.shape),...jO(e.shape)],r={dtype:e.dtype,shape:s,dataId:e.dataId},i=[WO(t),...jO(t)],a=new WM(i,s),o=[s],l=n.runWebGLProgram(a,[r],e.dtype,o,!0);return{dataId:l.dataId,shape:t,dtype:l.dtype}}(r,l,a)}const Lz={kernelName:Vr,backendName:"webgl",kernelFunc:Bz};class Pz{constructor(e,t){this.variableNames=["x"];const{windowSize:n,batchSize:s,inSize:r,outSize:i}=e;this.outputShape=[s,i];const a=4*Math.floor(n/4),o=n%4;let l="sumValue += dot(values, ones);";if(null!=t){const e=1/t;l=`sumValue += dot(values * ${Xt(e)?e.toPrecision(2):e}, ones);`}let u="";r%n>0&&(u=`\n if (inIdx < 0 || inIdx >= ${r}) {\n return 0.0;\n }\n `),this.userCode=`\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${u}\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${n};\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${a}; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n ${l}\n }\n\n int inIdx = inOffset + ${a};\n if (${1===o}) {\n vec4 values = vec4(getValue(batch, inIdx), 0.0, 0.0, 0.0);\n\n ${l}\n } else if (${2===o}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1), 0.0, 0.0);\n\n ${l}\n } else if (${3===o}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2), 0.0);\n\n ${l}\n }\n setOutput(sumValue);\n }\n `}}class Uz{constructor(e,t){this.variableNames=["x"];const{windowSize:n,batchSize:s,inSize:r,outSize:i}=e;this.outputShape=[s,i];let a="0.0",o="";"prod"===t?a="1.0":"min"===t?(a="1.0 / 1e-20",o="min"):"max"===t&&(a="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"sum"===t?l="sumValue":"prod"===t?l="prodValue":"all"===t?l="allValue":"any"===t&&(l="anyValue");const u=4*Math.floor(n/4),c=n%4;let h=`\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 = ${o}(values, minMaxValue);\n if (${"min"===t} || ${"max"===t}) {\n minMaxValue = ${o}(values, minMaxValue);\n bvec4 isNaN = isnan(values);\n if (isNaN.r || isNaN.g || isNaN.b || isNaN.a) {\n minMaxValue = vec4(NAN);\n }\n }\n }\n `,d="vec4";"all"===t?(a="1.0",h="\n bool reducedAllValue = all(values);\n float floatedReducedAllValue = float(reducedAllValue);\n allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\n ",d="bvec4"):"any"===t&&(a="0.0",h="\n bool reducedAnyValue = any(values);\n float floatedReducedAnyValue = float(reducedAnyValue);\n anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\n ",d="bvec4");let p="";r%n>0&&(p=`\n if (inIdx < 0 || inIdx >= ${r}) {\n return initializationValue;\n }\n `),this.userCode=`\n const float initializationValue = ${a};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${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(${a});\n float prodValue = 1.0;\n float sumValue = 0.0;\n float allValue = 1.0;\n float anyValue = 0.0;\n\n for (int i = 0; i < ${u}; 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 ${h}\n }\n\n int inIdx = inOffset + ${u};\n if (${1===c}) {\n ${d} values = ${d}(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${h}\n } else if (${2===c}) {\n ${d} values = ${d}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n ${h}\n } else if (${3===c}) {\n ${d} values = ${d}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n ${h}\n }\n setOutput(${l});\n }\n `}}function Vz(e,t,n,s){const r=function(e){const t=[];for(;0===t.length||1!==t[t.length-1].outSize;){const n=t.length?t[t.length-1].outSize:e[1],s=Mm(n);t.push({inSize:n,windowSize:s,outSize:Math.ceil(n/s)})}return t}(e.shape);let i=e;for(let a=0;a6)throw Error(`Transpose for rank ${t} is not yet supported`);const n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],s=new Array(t);for(let t=0;t6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);const s=bD(this.rank),r=PM("rc",this.rank),i=new Array(this.rank);for(let e=0;e`Error in matMul: inner shapes (${h}) and (${d}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${s} must match.`));const v=n?[y,h,p]:[y,p,h],x=s?[b,f,d]:[b,d,f],A=Bz({inputs:{x:e},backend:r,attrs:{shape:v}}),C=Bz({inputs:{x:t},backend:r,attrs:{shape:x}}),k=[A,C],S=Math.max(y,b),_=n?A.shape[1]:A.shape[2],E=null!=i,I=null!=a,T="leakyrelu"===l,N=null!=l?Nz(l,!0):null;let R;if((1===p||1===f)&&_>Xz&&!1===(E||I||T||null!=N)){let e=A,t=C;n&&(e=Kz({inputs:{x:A},backend:r,attrs:{perm:[0,2,1]}}),k.push(e)),s&&(t=Kz({inputs:{x:C},backend:r,attrs:{perm:[0,2,1]}}),k.push(t));const i=1===f;let a=e;1!==f&&(a=Bz({inputs:{x:e},backend:r,attrs:{shape:[S,_,1]}}),k.push(a));const o=1===f?2:1;let l=t;i&&(l=Bz({inputs:{x:t},backend:r,attrs:{shape:[S,1,_]}}),k.push(l));const u=zz({inputs:{a,b:l},backend:r});R=qz({inputs:{x:u},backend:r,attrs:{axis:o,keepDims:!0}}),k.push(u)}else{const l=ja(e.dtype,t.dtype),u=new Rz(v,x,[S,p,f],n,s,E,N,I,T),c=[A,C];if(null!=i&&c.push(i),I&&c.push(a),T){const e=r.makeTensorInfo([],"float32",da(o,"float32"));c.push(e),k.push(e)}R=r.runWebGLProgram(u,c,l)}const O=Bz({inputs:{x:R},backend:r,attrs:{shape:w}});k.push(R);for(const e of k)r.disposeIntermediateTensorInfo(e);return O}const Yz={kernelName:Li,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{a:r,b:i,bias:a,preluActivationWeights:o}=t,{transposeA:l,transposeB:u,activation:c,leakyreluAlpha:h}=s;return Zz({a:r,b:i,transposeA:l,transposeB:u,backend:n,bias:a,preluActivationWeights:o,leakyreluAlpha:h,activation:c})}},Qz="return abs(x);";const Jz={kernelName:Nn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:s}=t;if(n.shouldExecuteOnCPU([s])&&"complex64"!==s.dtype){const e=n.texData.get(s.dataId),t=CM(e.values);return n.makeTensorInfo(s.shape,s.dtype,t)}let r;return r=Sn().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new oz(s.shape,Qz):new KM(s.shape,Qz),n.runWebGLProgram(r,[s],s.dtype)}},eF=Iz({opSnippet:$M+"\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n"}),tF={kernelName:Rn,backendName:"webgl",kernelFunc:eF},nF=Iz({opSnippet:$M+"\n if (x < 1.0) return NAN;\nreturn log(x + sqrt(x * x - 1.0));"}),sF={kernelName:On,backendName:"webgl",kernelFunc:nF},rF="return a + b;",iF=Tz({opSnippet:rF,packedOpSnippet:rF,supportsComplex:!0,cpuKernelImpl:GD}),aF={kernelName:Dn,backendName:"webgl",kernelFunc:iF};class oF{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map(((e,t)=>`T${t}`));const n=[];this.variableNames.forEach((e=>{n.push(`float v${e} = get${e}AtOutCoords();`)}));const s=this.variableNames.map((e=>`v${e}`)).join(" + ");this.userCode=`\n void main() {\n ${n.join("\n ")}\n\n float result = ${s};\n setOutput(result);\n }\n `}}class lF{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map(((e,t)=>`T${t}`));const n=[];this.variableNames.forEach((e=>{n.push(`vec4 v${e} = get${e}AtOutCoords();`)}));const s=this.variableNames.map((e=>`v${e}`)).join(" + ");this.userCode=`\n void main() {\n ${n.join("\n ")}\n\n vec4 result = ${s};\n setOutput(result);\n }\n `}}const uF={kernelName:Mn,backendName:"webgl",kernelFunc:function e(t){const{inputs:n,backend:s}=t,r=n;if(1===r.length)return yz({inputs:{x:r[0]},backend:s});if(r.length>Sn().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){const t=Math.floor(r.length/2),n=e({inputs:r.slice(0,t),backend:s}),i=e({inputs:r.slice(t),backend:s});return e({inputs:[n,i],backend:s})}const i=r.map((e=>e.dtype)).reduce(((e,t)=>ja(e,t))),a=r.map((e=>e.shape)),o=Sn().getBool("WEBGL_PACK")?new lF(r[0].shape,a):new oF(r[0].shape,a);return s.runWebGLProgram(o,r,i)}};const cF={kernelName:zn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i,keepDims:a}=s,o=r.shape.length,l=en(i,r.shape);let u=l;const c=Ih(u,o);let h=r;null!=c&&(h=Kz({inputs:{x:r},backend:n,attrs:{perm:c}}),u=Nh(u.length,o)),Eh("all",u,o);const[d,p]=Sh(h.shape,u),f=Bz({inputs:{x:h},backend:n,attrs:{shape:[-1,Kt(p)]}}),m=Vz(f,f.dtype,"all",n);let g;if(a){g=Bz({inputs:{x:m},backend:n,attrs:{shape:_h(d,l)}})}else g=Bz({inputs:{x:m},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(m),null!=c&&n.disposeIntermediateTensorInfo(h),g}};const hF={kernelName:Fn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i,keepDims:a}=s,o=r.shape.length,l=en(i,r.shape);let u=l;const c=Ih(u,o);let h=r;null!=c&&(h=Kz({inputs:{x:r},backend:n,attrs:{perm:c}}),u=Nh(u.length,o)),Eh("any",u,o);const[d,p]=Sh(h.shape,u),f=Bz({inputs:{x:h},backend:n,attrs:{shape:[-1,Kt(p)]}}),m=Vz(f,f.dtype,"any",n);let g;if(a){g=Bz({inputs:{x:m},backend:n,attrs:{shape:_h(d,l)}})}else g=Bz({inputs:{x:m},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(m),null!=c&&n.disposeIntermediateTensorInfo(h),g}};class dF{constructor(e,t,n){this.variableNames=["A"];const{windowSize:s,batchSize:r,outSize:i}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[r,i];const a="max"===t?">":"<",o=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 * ${s};\n\n int bestIndex = inOffset;\n float bestValue = getA(batch, bestIndex);\n\n for (int i = 0; i < ${s}; i++) {\n int inIdx = ${o};\n float candidate = getA(batch, inIdx);\n if (candidate ${a} bestValue) {\n bestValue = candidate;\n bestIndex = inIdx;\n }\n }\n setOutput(float(bestIndex));\n }\n `}}class pF{constructor(e,t,n,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,Gt(e.length>2,(()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`));const r=e[e.length-1],i=Math.ceil(r/t);this.outputShape=e.slice(0,-1),i>1&&this.outputShape.push(i),s||this.variableNames.push("bestIndicesA");const a=this.outputShape,o=a.length,l=bD(o),u=UM("coords",o);let c,h;if(1===i){h=o+1;const e=bD(h);c=`\n ${e} sourceLocR = ${e}(${u.join()}, 0);\n ++${u[o-1]};\n ${e} sourceLocG = ${e}(${u.join()}, 0);\n ++${u[o-2]};\n ${e} sourceLocA = ${e}(${u.join()}, 0);\n --${u[o-1]};\n ${e} sourceLocB = ${e}(${u.join()}, 0);\n --${u[o-2]};`}else h=o,c=`\n ${l} sourceLocR = coords;\n ++${u[o-1]};\n ${l} sourceLocG = coords;\n ++${u[o-2]};\n ${l} sourceLocA = coords;\n --${u[o-1]};\n ${l} sourceLocB = coords;\n --${u[o-2]};`;const d=["x","y","z","w","u","v"].slice(0,h),p="."+d[h-1],f=d.map((e=>"int "+e)),m=UM("sourceLocR",h-1).concat("inIdx.r"),g=UM("sourceLocG",h-1).concat("inIdx.g"),y=UM("sourceLocB",h-1).concat("inIdx.b"),b=UM("sourceLocA",h-1).concat("inIdx.a"),w="max"===n?"greaterThan":"lessThan",v=s?"":`\n inIdx = round(vec4(getBestIndicesAChannel(${m.join()}),\n getBestIndicesAChannel(${g.join()}),\n getBestIndicesAChannel(${y.join()}),\n getBestIndicesAChannel(${b.join()})));`,x=`vec4(\n getAChannel(${m.join()}),\n hasNextCol ? getAChannel(${g.join()}) : 0.,\n hasNextRow ? getAChannel(${y.join()}) : 0.,\n hasNextRow && hasNextCol ? getAChannel(${b.join()}) : 0.)`,A=s?"":`\n float getBestIndicesAChannel(${f.join()}) {\n return getChannel(getBestIndicesA(${d.join()}),\n vec2(${d.slice(-2).join()}));\n }`;this.userCode=`\n float getAChannel(${f.join()}) {\n return getChannel(getA(${d.join()}),\n vec2(${d.slice(-2).join()}));\n }\n ${A}\n void main() {\n ${l} coords = getOutputCoords();\n bool hasNextCol = ${u[o-1]} < ${a[o-1]-1};\n bool hasNextRow = ${u[o-2]} < ${a[o-2]-1};\n ${c}\n ivec4 srcIdx = ivec4(sourceLocR${p}, sourceLocG${p},\n sourceLocB${p}, sourceLocA${p}) * ${t};\n ivec4 inIdx = srcIdx;\n vec4 bestIndex = vec4(inIdx);\n vec4 bestValue = ${x};\n\n for (int i = 0; i < ${t}; i++) {\n inIdx = srcIdx;\n ${v}\n vec4 candidate = ${x};\n bvec4 nan = isnan(candidate);\n bvec4 replace = bvec4(\n vec4(${w}(candidate, bestValue)) * (vec4(1.0) - vec4(nan)));\n\n bestValue = vec4(replace.x ? candidate.x : bestValue.x,\n replace.y ? candidate.y : bestValue.y,\n replace.z ? candidate.z : bestValue.z,\n replace.w ? candidate.w : bestValue.w);\n bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace));\n srcIdx++;\n }\n setOutput(bestIndex);\n }\n `}}function fF(e,t,n,s=null){let r=t.shape[0],i=t.shape[1];null!=s&&(r=s.shape[0],i=s.shape[1]);const a=Mm(i),o={windowSize:a,inSize:i,batchSize:r,outSize:Math.ceil(i/a)},l=new dF(o,n,null==s),u=[t];null!=s&&u.push(s);const c=e.runWebGLProgram(l,u,"int32");if(1===c.shape[1])return c;const h=fF(e,t,n,c);return e.disposeIntermediateTensorInfo(c),h}function mF(e,t,n,s=null){const r=null!=s?s.shape:t.shape,i=Mm(r[r.length-1]),a=new pF(r,i,n,null==s),o=null==s?[t]:[t,s],l=e.runWebGLProgram(a,o,"int32");if(l.shape.length===t.shape.length){const s=mF(e,t,n,l);return e.disposeIntermediateTensorInfo(l),s}return l}function gF(e,t,n,s){const r=[n];if(Eh("arg"+s.charAt(0).toUpperCase()+s.slice(1),r,t.shape.length),!Sn().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){const n=[],i=e.texData.get(t.dataId);let a=t;null!==i&&i.isPacked&&(a=e.unpackTensor(t),n.push(a));const[o,l]=Sh(a.shape,r),u=Kt(l),c=Bz({inputs:{x:a},backend:e,attrs:{shape:[-1,u]}});n.push(c);const h=fF(e,c,s);n.push(h);const d=Bz({inputs:{x:h},backend:e,attrs:{shape:o}});return n.forEach((t=>e.disposeIntermediateTensorInfo(t))),d}return mF(e,t,s)}const yF={kernelName:Bn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i}=s;let a=en(i,r.shape);const o=Ih(a,r.shape.length);let l=r;const u=[];null!=o&&(l=Kz({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),a=Nh(a.length,l.shape.length)),Eh("argMax",[a[0]],l.shape.length);const c=gF(n,l,a[0],"max");return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}};const bF={kernelName:Ln,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i}=s;let a=en(i,r.shape);const o=Ih(a,r.shape.length);let l=r;const u=[];null!=o&&(l=Kz({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),a=Nh(a.length,l.shape.length)),Eh("argMin",[a[0]],l.shape.length);const c=gF(n,l,a[0],"min");return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}},wF=Iz({opSnippet:$M+"\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n"}),vF={kernelName:Pn,backendName:"webgl",kernelFunc:wF},xF=Iz({opSnippet:$M+"return log(x + sqrt(x * x + 1.0));"}),AF={kernelName:Un,backendName:"webgl",kernelFunc:xF},CF=Iz({opSnippet:$M+"\n return atan(x);\n"}),kF={kernelName:Vn,backendName:"webgl",kernelFunc:CF},SF=Tz({opSnippet:pz+"\n return atan(a, b);\n",packedOpSnippet:"\n vec4 result = atan(a, b);\n bvec4 isNaNA = isnan(a);\n bvec4 isNaNB = isnan(b);\n bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w);\n "+mz+"\n return result;\n"}),_F={kernelName:jn,backendName:"webgl",kernelFunc:SF},EF=Iz({opSnippet:$M+"\n if ((x < -1.0) || (x > 1.0)) return NAN;\nreturn (log(1.0 + x) - log(1.0 - x)) / 2.0;"}),IF={kernelName:Wn,backendName:"webgl",kernelFunc:EF};class TF{constructor(e,t,n,s=!1,r=!1){if(this.variableNames=["x"],"avg"===t&&n)throw new Error("Cannot compute positions for average pool.");const i=e.filterWidth,a=e.strideHeight,o=e.strideWidth,l=e.dilationHeight,u=e.dilationWidth,c=e.effectiveFilterHeight,h=e.effectiveFilterWidth,d=e.padInfo.top,p=e.padInfo.left;this.outputShape=e.outShape;const f="avg"===t,m=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`;let y="0.0";if(f||(y="-1.0 / 1e-20"),n){const t=">=";return void(this.userCode=`\n const ivec2 strides = ivec2(${a}, ${o});\n const ivec2 pads = ivec2(${d}, ${p});\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 < ${c};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${h};\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 ${t} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${s?r?m:g:`wR * ${h} + wC`};\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `)}let b=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"avg"===t&&(b="avgValue / max(count, 1.0)");const w=4*Math.floor(i/4),v=i%4,x=`\n if (${f}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = max(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec2 strides = ivec2(${a}, ${o});\n const ivec2 pads = ivec2(${d}, ${p});\n const float initializationValue = ${y};\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(${y});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wR = 0; wR < ${c};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${w}; 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 ${x}\n }\n\n int xC = xCCorner + ${w};\n if (${1===v}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${x}\n } else if (${2===v}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${u}, d),\n initializationValue,\n initializationValue\n );\n\n ${x}\n } else if (${3===v}) {\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 ${x}\n }\n }\n setOutput(${b});\n }\n `}}class NF{constructor(e,t,n,s=!1,r=!1){if(this.variableNames=["x"],"avg"===t&&n)throw new Error("Cannot compute positions for average pool.");const i=e.filterWidth,a=e.strideDepth,o=e.strideHeight,l=e.strideWidth,u=e.dilationDepth,c=e.dilationHeight,h=e.dilationWidth,d=e.effectiveFilterDepth,p=e.effectiveFilterHeight,f=e.effectiveFilterWidth,m=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;const b="avg"===t;let w="0.0";if(b||(w="-1.0 / 1e-20"),n){const t=">=";return void(this.userCode=`\n const ivec3 strides =\n ivec3(${a}, ${o}, ${l});\n const ivec3 pads = ivec3(${m}, ${g}, ${y});\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 < ${d};\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 < ${p};\n wR += ${c}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${f};\n wC += ${h}) {\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 ${t} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${s?r?`(((batch * ${e.inDepth} + xD) * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`((xD * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`wD * ${p} * ${f} +\n wR * ${f} + wC`};\n }\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `)}let v=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"avg"===t&&(v="avgValue / max(count, 1.0)");const x=4*Math.floor(i/4),A=i%4,C=`\n if (${b}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = max(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec3 strides =\n ivec3(${a}, ${o}, ${l});\n const ivec3 pads = ivec3(${m}, ${g}, ${y});\n const float initializationValue = ${w};\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(${w});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wD = 0; wD < ${d};\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 < ${p};\n wR += ${c}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${x}; wC += 4) {\n int xC = xCCorner + wC * ${h};\n\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${h}, ch),\n getValue(batch, xD, xR, xC + 2 * ${h}, ch),\n getValue(batch, xD, xR, xC + 3 * ${h}, ch)\n );\n\n ${C}\n }\n\n int xC = xCCorner + ${x};\n if (${1===A}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${C}\n } else if (${2===A}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${h}, ch),\n initializationValue,\n initializationValue\n );\n\n ${C}\n } else if (${3===A}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${h}, ch),\n getValue(batch, xD, xR, xC + 2 * ${h}, ch),\n initializationValue\n );\n\n ${C}\n }\n }\n }\n setOutput(${v});\n }\n `}}const RF={kernelName:Gn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t;JO(r,"avgPool");const{filterSize:i,strides:a,pad:o,dimRoundingMode:l}=s;Gt(Sc(a,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${a} and dilations '1'`));const u=mc(r.shape,i,a,1,o,l);if(1===u.filterWidth&&1===u.filterHeight&&$t(u.inShape,u.outShape))return yz({inputs:{x:r},backend:n});const c=new TF(u,"avg",!1);return n.runWebGLProgram(c,[r],"float32")}};const OF={kernelName:Hn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{filterSize:i,strides:a,pad:o,dimRoundingMode:l,dataFormat:u}=s,c=gc(r.shape,i,a,[1,1,1],o,l,u),h=new NF(c,"avg",!1);return n.runWebGLProgram(h,[r],"float32")}};class DF{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterHeight,n=e.filterWidth,s=e.strideHeight,r=e.strideWidth,i=e.dilationHeight,a=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,u=o-1-e.padInfo.top,c=l-1-e.padInfo.left,h=1/(t*n);this.userCode=`\n const ivec2 pads = ivec2(${u}, ${c});\n const float avgMultiplier = float(${h});\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 += ${i}) {\n float dyR = float(dyRCorner + wR) / ${s}.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 < ${l};\n wC+= ${a}) {\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(b, idyR, idyC, d);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n setOutput(dotProd);\n }\n `}}class MF{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterDepth,n=e.filterHeight,s=e.filterWidth,r=e.strideDepth,i=e.strideHeight,a=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,c=e.effectiveFilterDepth,h=e.effectiveFilterHeight,d=e.effectiveFilterWidth,p=c-1-e.padInfo.front,f=h-1-e.padInfo.top,m=d-1-e.padInfo.left,g=1/(t*n*s);this.userCode=`\n const ivec3 pads = ivec3(${p}, ${f}, ${m});\n const float avgMultiplier = float(${g});\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 < ${c};\n wD += ${o}) {\n float dyD = float(dyDCorner + wD) / ${r}.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 < ${h};\n wR += ${l}) {\n float dyR = float(dyRCorner + wR) / ${i}.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 += ${u}) {\n float dyC = float(dyCCorner + wC) / ${a}.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 `}}const zF={kernelName:Kn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,input:i}=t,a=i,{filterSize:o,strides:l,pad:u,dimRoundingMode:c}=s,h=gc(a.shape,o,l,[1,1,1],u,c),d=new MF(h);return n.runWebGLProgram(d,[r],a.dtype)}};const FF={kernelName:qn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,input:i}=t,a=i;JO([r,i],"avgPoolGrad");const{filterSize:o,strides:l,pad:u}=s,c=mc(a.shape,o,l,1,u),h=new DF(c);return n.runWebGLProgram(h,[r],a.dtype)}};const BF={kernelName:$n,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{a:r,b:i}=t,{transposeA:a,transposeB:o}=s;return Zz({a:r,b:i,transposeA:a,transposeB:o,backend:n})}};class LF{constructor(e,t,n,s,r,i){this.outputShape=[],this.variableNames=["x","mean","variance"],su(e,t),su(e,n);let a="0.0";null!=s&&(su(e,s),this.variableNames.push("offset"),a="getOffsetAtOutCoords()");let o="1.0";null!=r&&(su(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=`\n void main() {\n float x = getXAtOutCoords();\n float mean = getMeanAtOutCoords();\n float variance = getVarianceAtOutCoords();\n float offset = ${a};\n float scale = ${o};\n float inv = scale * inversesqrt(variance + float(${i}));\n setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1)));\n }\n `}}class PF{constructor(e,t,n,s,r,i){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],su(e,t),su(e,n);let a="vec4(0.0)";null!=s&&(su(e,s),this.variableNames.push("offset"),a="getOffsetAtOutCoords()");let o="vec4(1.0)";null!=r&&(su(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=`\n void main() {\n vec4 offset = ${a};\n vec4 scale = ${o};\n\n vec4 x = getXAtOutCoords();\n vec4 mean = getMeanAtOutCoords();\n vec4 variance = getVarianceAtOutCoords();\n\n vec4 inv = scale * inversesqrt(variance + vec4(${i}));\n\n setOutput((x - mean) * inv + offset);\n }\n `}}const UF={kernelName:Us,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:s,mean:r,variance:i,offset:a,scale:o}=e;Gt(r.shape.length===i.shape.length,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),Gt(null==a||r.shape.length===a.shape.length,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),Gt(null==o||r.shape.length===o.shape.length,(()=>"Batch normalization gradient requires mean and scale to have equal ranks."));let{varianceEpsilon:l}=n;null==l&&(l=.001);const u=[s,r,i];let c=null;null!=a&&(c=a.shape,u.push(a));let h=null;null!=o&&(h=o.shape,u.push(o));const d=Sn().getBool("WEBGL_PACK_NORMALIZATION")?new PF(s.shape,r.shape,i.shape,c,h,l):new LF(s.shape,r.shape,i.shape,c,h,l);return t.runWebGLProgram(d,u,u[0].dtype)}};class VF{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;const t=bD(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];const n=function(e){if(1===e)return"sourceLoc";if(e<=6)return WF.slice(0,e).map((e=>"sourceLoc."+e)).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}(this.rank);let s;s=`\n ${t} sourceLoc;\n ${t} coords = getOutputCoords();\n ${e.map(((e,t)=>`sourceLoc.${WF[t]} = start[${t}] + coords.${WF[t]};`)).join("\n")}\n `,this.userCode=`\n void main() {\n ${s}\n setOutput(getSource(${n}));\n }\n `}}const WF=["x","y","z","w","u","v"];class jF{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];const t=bD(this.rank),n=UM("coords",this.rank),s=UM("sourceLoc",this.rank),r=1===this.rank?"sourceLoc":`vec2(${s.slice(-2).join()})`,i=`getChannel(getSource(${s.join()}), ${r})`,a=`\n result.x = ${i};\n if (++${n[this.rank-1]} < ${e[this.rank-1]}) {\n ++${s[this.rank-1]};\n result.y = ${i};\n --${s[this.rank-1]};\n }\n `,o=1===this.rank?"":`\n --${n[this.rank-1]};\n if (++${n[this.rank-2]} < ${e[this.rank-2]}) {\n ++${s[this.rank-2]};\n result.z = ${i};\n if (++${n[this.rank-1]} < ${e[this.rank-1]}) {\n ++${s[this.rank-1]};\n result.w = ${i};\n }\n }\n `,l=this.rank<=4?`sourceLoc = coords +\n ${t}(${e.map(((e,t)=>`start[${t}]`)).join()});`:e.map(((e,t)=>`${s[t]} = ${n[t]} + start[${t}];`)).join("\n");this.userCode=`\n void main() {\n ${t} coords = getOutputCoords();\n ${t} sourceLoc;\n ${l}\n vec4 result = vec4(0.);\n ${a}\n ${o}\n setOutput(result);\n }\n `}}function GF(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{begin:i,size:a}=s,[o,l]=Ju(r,i,a);if(Pu(r,o,l),0===Kt(l))return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||"string"===r.dtype){const e=n.texData.get(r.dataId),t=kM(e.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,t)}const{isPacked:u}=n.texData.get(r.dataId),c=Yu(r.shape,o,l);if(u||!c){const e=Sn().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new jF(l):new VF(l),t=[o];return n.runWebGLProgram(e,[r],r.dtype,t)}return n.uploadToGPU(r.dataId),function(e,t,n,s){const r=s.texData.get(e.dataId),i=s.makeTensorInfo(n,e.dtype),a=s.texData.get(i.dataId);Object.assign(a,r),a.refCount=1,a.shape=n,a.dtype=e.dtype;let o=Qu(t,dn(e.shape));r.slice&&(o+=r.slice.flatOffset),a.slice={flatOffset:o,origDataId:r.slice&&r.slice.origDataId||e.dataId};const l=s.dataRefCount.get(a.slice.origDataId)||1;return s.dataRefCount.set(a.slice.origDataId,l+1),i}(r,o,l,n)}const qF={kernelName:ti,backendName:"webgl",kernelFunc:GF},HF={kernelName:Xn,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{blockShape:i,crops:a}=s;Gt(r.shape.length<=4,(()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet"));const o=i.reduce(((e,t)=>e*t)),l=Fm(r.shape,i,o),u=Bm(l.length,i.length),c=Lm(r.shape,i,o),h=Pm(a,i.length),d=Um(c,a,i.length),p=[],f=Bz({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Kz({inputs:{x:f},backend:n,attrs:{perm:u}}),g=Bz({inputs:{x:m},backend:n,attrs:{shape:c}}),y=GF({inputs:{x:g},backend:n,attrs:{begin:h,size:d}});return p.push(f),p.push(m),p.push(g),p.forEach((e=>n.disposeIntermediateTensorInfo(e))),y}};const KF={kernelName:Zn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,weights:i}=t,{size:a}=s,o=n.readSync(r.dataId),l=n.readSync(i.dataId),u=qD(o,l,i.dtype,i.shape,a);return n.makeTensorInfo([a],i.dtype,u)}};const $F={kernelName:Yn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{a:s,b:r}=t,i=Sn().getBool("WEBGL_PACK_BINARY_OPERATIONS"),a=Sn().getNumber("WEBGL_VERSION");if(n.shouldExecuteOnCPU([s,r])||1===a){const e=n.texData.get(s.dataId).values,t=n.texData.get(r.dataId).values,[i,a]=KD(s.shape,r.shape,e,t,s.dtype),o=n.makeTensorInfo(a,s.dtype);return n.texData.get(o.dataId).values=i,o}let o;return o=i?new gz("\n int r = int(a.r) & int(b.r);\n int g = int(a.g) & int(b.g);\n int rb = int(a.b) & int(b.b);\n int ra = int(a.a) & int(b.a);\n return vec4(r, g, rb, ra);\n",s.shape,r.shape,!1):new fz("\n return float(int(a.r) & int(b.r));\n",s.shape,r.shape),n.runWebGLProgram(o,[s,r],s.dtype)}};const XF={kernelName:Qn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{s0:s,s1:r}=t,i=n.readSync(s.dataId),a=n.readSync(r.dataId),o=su(Array.from(i),Array.from(a));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}},ZF=Tz({opSnippet:"return float(a != b);",cpuKernelImpl:fM,dtype:"bool"}),YF={kernelName:Cr,backendName:"webgl",kernelFunc:ZF};function QF(e){const{inputs:t,backend:n}=e,{input:s}=t;return yz({inputs:{x:n.texData.get(s.dataId).complexTensorInfos.real},backend:n})}const JF={kernelName:Lr,backendName:"webgl",kernelFunc:QF},eB="return float(int(x));";const tB={kernelName:Jn,backendName:"webgl",kernelFunc:function e(t){const{inputs:n,backend:s,attrs:r}=t,{x:i}=n,{dtype:a}=r;if("complex64"===a){if("complex64"===i.dtype)return yz({inputs:{x:i},backend:s});const t=wd(i.shape),n=e({inputs:{x:i},backend:s,attrs:{dtype:"float32"}}),r=wz({inputs:{real:n,imag:t},backend:s});return t.dispose(),s.disposeIntermediateTensorInfo(n),r}if("complex64"===i.dtype){const t=QF({inputs:{input:i},backend:s}),n=e({inputs:{x:t},backend:s,attrs:{dtype:a}});return s.disposeIntermediateTensorInfo(t),n}if(!rn(i.dtype,a)){const e=yz({inputs:{x:i},backend:s});return{dataId:e.dataId,shape:e.shape,dtype:a}}if(s.shouldExecuteOnCPU([i])){const e=s.texData.get(i.dataId).values,[t,n,r]=$D(e,i.shape,i.dtype,a);return s.makeTensorInfo(t,n,r)}if("int32"===a)return function(e,t){const n=new KM(e.shape,eB),s=t.runWebGLProgram(n,[e],"int32");return{dataId:s.dataId,shape:s.shape,dtype:s.dtype}}(i,s);if("bool"===a){const e=s.makeTensorInfo([],"bool",nn("bool",1)),t=ZF({inputs:{a:i,b:e},backend:s});return s.disposeIntermediateTensorInfo(e),t}throw new Error(`Error in Cast: failed to cast ${i.dtype} to ${a}`)}},nB="return ceil(x);",sB=Iz({opSnippet:nB,packedOpSnippet:nB,cpuKernelImpl:XD}),rB={kernelName:es,backendName:"webgl",kernelFunc:sB};class iB{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode="\n\n void main() {\n float value = getAAtOutCoords();\n if (isnan(value)) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, minVal, maxVal));\n }\n "}}class aB{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode="\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 "}}const oB={kernelName:ts,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{clipValueMin:i,clipValueMax:a}=s;let o;o=Sn().getBool("WEBGL_PACK_CLIP")?new aB(r.shape):new iB(r.shape);const l=[[i],[a]];return n.runWebGLProgram(o,[r],r.dtype,l)}};class lB{constructor(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 "}}function uB(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}const cB={kernelName:ss,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:s}=t,r=n.texData.get(s.dataId),i=new lB(s.shape),a=[uB(s,r.complexTensorInfos.real),uB(s,r.complexTensorInfos.imag)];return n.runWebGLProgram(i,a,a[0].dtype)}};class hB{constructor(e){this.outputShape=[],this.outputShape=Em(e,1),this.variableNames=e.map(((e,t)=>`T${t}`));const t=new Array(e.length-1);t[0]=e[0][1];for(let n=1;n`T${t}`));const o=new Array(e.length-1);o[0]=e[0][t];for(let n=1;n= ${o[e-1]}) {\n return getChannel(\n getT${e}(${pB(a,l,t)}),\n vec2(${pB(u,l,t)}));\n }`}const d=o.length,p=o[o.length-1];h+=`\n return getChannel(\n getT${d}(${pB(a,l,p)}),\n vec2(${pB(u,l,p)}));`,this.userCode=`\n float getValue(${a.map((e=>"int "+e))}) {\n ${h}\n }\n\n void main() {\n ${r} coords = getOutputCoords();\n vec4 result = vec4(getValue(${i}), 0., 0., 0.);\n\n ${i[s-1]} = ${i[s-1]} + 1;\n if (${i[s-1]} < ${n[s-1]}) {\n result.g = getValue(${i});\n }\n\n ${i[s-2]} = ${i[s-2]} + 1;\n if (${i[s-2]} < ${n[s-2]}) {\n result.a = getValue(${i});\n }\n\n ${i[s-1]} = ${i[s-1]} - 1;\n if (${i[s-2]} < ${n[s-2]} &&\n ${i[s-1]} < ${n[s-1]}) {\n result.b = getValue(${i});\n }\n setOutput(result);\n }\n `}}function pB(e,t,n){const s=e.indexOf(t);return e.map(((e,t)=>t===s?`${e} - ${n}`:e)).join()}function fB(e){const{inputs:t,backend:n}=e,{input:s}=t;return yz({inputs:{x:n.texData.get(s.dataId).complexTensorInfos.imag},backend:n})}const mB={kernelName:Ks,backendName:"webgl",kernelFunc:fB};function gB(e,t,n){const s=e[0].dtype;if("complex64"===s){const s=e.map((e=>QF({inputs:{input:e},backend:n}))),r=e.map((e=>fB({inputs:{input:e},backend:n}))),i=gB(s,t,n),a=gB(r,t,n),o=wz({inputs:{real:i,imag:a},backend:n});return s.forEach((e=>n.disposeIntermediateTensorInfo(e))),r.forEach((e=>n.disposeIntermediateTensorInfo(e))),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(a),o}let r=n.shouldExecuteOnCPU(e);if("string"===s&&(r=!0),r){const r=e.map((e=>{const s=Kt(e.shape.slice(t));return Bz({inputs:{x:e},backend:n,attrs:{shape:[-1,s]}})})),i=r.map((e=>({vals:n.readSync(e.dataId),shape:e.shape}))),a=Em(r.map((e=>e.shape)),1),o=1===r[0].shape[0],l=ZD(i,a,s,o),u=Em(e.map((e=>e.shape)),t),c=n.makeTensorInfo(u,s,l);return r.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}const i=e.filter((e=>Kt(e.shape)>0)),a=Sn().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&i[0].shape.length>1;if(1===i.length){const t=a?new KM(e[0].shape,ez):new oz(e[0].shape,ez);return n.runWebGLProgram(t,e,s)}const o=Sn().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(i.length>o){const e=[];for(let s=0;se.shape)),t);return n.runWebGLProgram(e,i,s)}const{tensors2D:l,outShape:u}=function(e,t,n){const s=Em(e.map((e=>e.shape)),t),r=e.map((e=>Bz({inputs:{x:e},attrs:{shape:[-1,Kt(e.shape.slice(t))]},backend:n})));return{tensors2D:r,outShape:s}}(i,t,n),c=new hB(l.map((e=>e.shape))),h=n.runWebGLProgram(c,l,s);l.forEach((e=>n.disposeIntermediateTensorInfo(e)));const d=Bz({inputs:{x:h},attrs:{shape:u},backend:n});return n.disposeIntermediateTensorInfo(h),d}function yB(e){const{inputs:t,backend:n,attrs:s}=e,{axis:r}=s,i=en(r,t[0].shape)[0];_m(t.map((e=>e.shape)),i);const a=Em(t.map((e=>e.shape)),i);if(0===Kt(a))return n.makeTensorInfo(a,t[0].dtype,[]);const o=t.filter((e=>Kt(e.shape)>0));return 1===o.length?yz({inputs:{x:o[0]},backend:n}):gB(o,i,n)}const bB={kernelName:rs,backendName:"webgl",kernelFunc:yB};class wB{constructor(e,t=!1,n=null,s=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;const i=e.padInfo.top,a=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,u=e.dilationHeight,c=e.dilationWidth,h=e.filterHeight,d=e.filterWidth,p=4*Math.floor(e.inChannels/4),f=e.inChannels%4,m="channelsLast"===e.dataFormat,g=m?1:2,y=m?2:3,b=m?3:1;let w="",v="";n&&(w=s?`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:r?`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:`\n float activation(float x) {\n ${n}\n }\n `,v="result = activation(result);");const x=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),s&&this.variableNames.push("preluActivationWeights"),r&&this.variableNames.push("leakyreluAlpha"),this.userCode=`\n ${w}\n\n const ivec2 strides = ivec2(${o}, ${l});\n const ivec2 pads = ivec2(${i}, ${a});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d2 = coords[${b}];\n\n ivec2 xRCCorner =\n ivec2(coords[${g}], coords[${y}]) * 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 < ${h}; wR++) {\n int xR = xRCorner + wR * ${u};\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 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 (${m}) {\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===f}) {\n\n if (${m}) {\n dotProd +=\n getX(batch, xR, xC, ${p}) *\n getW(wR, wC, ${p}, d2);\n } else {\n dotProd +=\n getX(batch, ${p}, xR, xC) *\n getW(wR, wC, ${p}, d2);\n }\n\n } else if (${2===f}) {\n vec2 wValues = vec2(\n getW(wR, wC, ${p}, d2),\n getW(wR, wC, ${p} + 1, d2)\n );\n\n if (${m}) {\n vec2 xValues = vec2(\n getX(batch, xR, xC, ${p}),\n getX(batch, xR, xC, ${p} + 1)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec2 xValues = vec2(\n getX(batch, ${p}, xR, xC),\n getX(batch, ${p} + 1, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n } else if (${3===f}) {\n vec3 wValues = vec3(\n getW(wR, wC, ${p}, d2),\n getW(wR, wC, ${p} + 1, d2),\n getW(wR, wC, ${p} + 2, d2)\n );\n\n if (${m}) {\n vec3 xValues = vec3(\n getX(batch, xR, xC, ${p}),\n getX(batch, xR, xC, ${p} + 1),\n getX(batch, xR, xC, ${p} + 2)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec3 xValues = vec3(\n getX(batch, ${p}, xR, xC),\n getX(batch, ${p} + 1, xR, xC),\n getX(batch, ${p} + 2, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n }\n }\n }\n\n float result = dotProd;\n ${x}\n ${v}\n setOutput(result);\n }\n `}}class vB{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;const t=e.padInfo.front,n=e.padInfo.top,s=e.padInfo.left,r=e.strideDepth,i=e.strideHeight,a=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,c=e.filterDepth,h=e.filterHeight,d=e.filterWidth,p=4*Math.floor(e.inChannels/4),f=e.inChannels%4;this.userCode=`\n const ivec3 strides = ivec3(${r}, ${i}, ${a});\n const ivec3 pads = ivec3(${t}, ${n}, ${s});\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 < ${c}; wF++) {\n int xF = xFCorner + wF * ${o};\n\n if (xF < 0 || xF >= ${e.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${h}; wR++) {\n int xR = xRCorner + wR * ${l};\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 * ${u};\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===f}) {\n dotProd +=\n getX(batch, xF, xR, xC, ${p}) *\n getW(wF, wR, wC, ${p}, d2);\n } else if (${2===f}) {\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===f}) {\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 `}}class xB{constructor(e,t=!1,n=null,s=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=SD(this.outputShape.length);const i=e.padInfo.left,a=e.strideWidth,o=e.dilationWidth,l=e.filterHeight,u=e.filterWidth,c=u;let h="\n int xR; int xC; int xCOffset;\n vec4 wTexel; vec4 previous; vec4 final;";for(let e=0;e=0 && xR < inDims[0]) {\n ";for(let t=0;t<(c+1)/2;t++){const n=2*t;if(h+=`\n xC = xCCorner + ${n*o};\n `,1===a){if(n= 0 && xCOffset < inDims[1] && xTexelC${n}Ready == 0) {\n xTexelC${n} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${n}.zw = vec2(0.0);\n }\n xTexelC${n}Ready = 1;\n }\n `,h+=1===o&&n>0?`\n xC${n} = vec4(xTexelC${n-2}.zw, xTexelC${n}.xy);\n `:`\n xCOffset = xC + 1 - 2;\n\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n previous.zw = vec2(0.0);\n }\n\n xC${n} = vec4(previous.zw, xTexelC${n}.xy);\n } else {\n xC${n} = vec4(0.0, 0.0, xTexelC${n}.xy);\n }\n `):h+=`\n if (xC >= 0 && xC < inDims[1] && xTexelC${n}Ready == 0) {\n xTexelC${n} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${n}.zw = vec2(0.0);\n }\n xTexelC${n}Ready = 1;\n }\n\n xC${n} = xTexelC${n};\n `,n+1= 0 && xCOffset < inDims[1] && xTexelC${n+1}Ready == 0) {\n xTexelC${n+1} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${n+1}.zw = vec2(0.0);\n }\n xTexelC${n+1}Ready = 1;\n }\n `,h+=o>1?`\n xCOffset -= 2;\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n xC${n+1} = vec4(previous.zw, xTexelC${n+1}.xy);\n } else {\n xC${n+1} = vec4(0.0, 0.0, xTexelC${n+1}.xy);\n }\n `:`\n xC${n+1} = vec4(xTexelC${n}.zw, xTexelC${n+1}.xy);\n `):h+=1===e?`\n xC${n+1} = xTexelC${n};\n `:`\n xCOffset = xC + ${e};\n\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${n+1}Ready == 0) {\n xTexelC${n+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${n+1}.zw = vec2(0.0);\n }\n xTexelC${n+1}Ready = 1;\n }\n\n xC${n+1} = xTexelC${n+1};\n `}}else n= 0 && xCOffset < inDims[1] && xTexelC${n}Ready == 0) {\n xTexelC${n} = getX(batch, xR, xCOffset, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${n}.zw = vec2(0.0);\n }\n xTexelC${n}Ready = 1;\n }\n\n if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${n+1}Ready == 0) {\n xTexelC${n+1} = getX(batch, xR, xC + 1, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xC + 2 >= inDims[1]) {\n xTexelC${n+1}.zw = vec2(0.0);\n }\n xTexelC${n+1}Ready = 1;\n }\n\n xC${n} = vec4(xTexelC${n}.zw, xTexelC${n+1}.zw);\n `,n+1= 0 && xCOffset < inDims[1]) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xC${n+1} = vec4(xTexelC${n+1}.xy, final.xy);\n `)):(h+=`\n if(xC >= 0 && xC < inDims[1] && xTexelC${n}Ready == 0) {\n xTexelC${n} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${n}.zw = vec2(0.0);\n }\n xTexelC${n}Ready = 1;\n }\n\n xCOffset = xC + strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${n+1}Ready == 0) {\n xTexelC${n+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${n+1}.zw = vec2(0.);\n }\n xTexelC${n+1}Ready = 1;\n }\n\n xC${n} = vec4(\n xTexelC${n}.xy, xTexelC${n+1}.xy);\n `,n+1= 0) {\n // Use custom imod instead mod. On Intel GPU, mod may generate\n // unexpected value.\n // https://github.com/tensorflow/tfjs/issues/5447\n offsetX = imod(blockIndex, outWidth) * stride[1] - pad[1];\n d1 = offsetX + dilation[1] * (imod(pos, itemsPerBlockRow) /\n inChannels);\n\n if(d1 < inputShape[${a}] && d1 >= 0) {\n\n ch = imod(pos, inChannels);\n\n if (${r}) {\n innerDims = vec2(d1, ch);\n result[${2*e+t}] = getChannel(\n getA(rc.x, d0, int(innerDims.x),\n int(innerDims.y)), innerDims);\n } else {\n innerDims = vec2(d0, d1);\n result[${2*e+t}] = getChannel(\n getA(rc.x, ch, int(innerDims.x),\n int(innerDims.y)), innerDims);\n }\n }\n }\n }\n `;this.userCode=`\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0);\n\n int blockIndex, pos, offsetY, d0, offsetX, d1, ch;\n vec2 innerDims;\n\n ${l}\n\n ${s.output} = result;\n }\n `}}function CB(e,t){const n=e.length;return n>=3?t?[...e.slice(0,-3),e[n-3]*e[n-2],e[n-1]]:[...e.slice(0,-3),e[n-3],e[n-2]*e[n-1]]:!t&&1===n&&e[0]>1?[e[0],1]:null}function kB({x:e,filter:t,convInfo:n,backend:s,bias:r=null,preluActivationWeights:i=null,leakyreluAlpha:a=0,activation:o=null}){const l=e.shape,u=s.texData.get(e.dataId),c=n.inChannels,h=l[0]*l[1]*l[2],d=n.outChannels,p="channelsLast"===n.dataFormat,f=!1;let m;const g=[];if(null!=i){const e=CB(i.shape,p);null!=e&&(i=Bz({inputs:{x:i},backend:s,attrs:{shape:e}}),g.push(i))}if(null!=r){const e=CB(r.shape,p);null!=e&&(r=Bz({inputs:{x:r},backend:s,attrs:{shape:e}}),g.push(r))}if(!((1===h||1===d)&&c>Xz)&&u.isPacked&&p&&null!=u.texture&&l[2]%2!=0&&$t(u.shape.slice(-3),l.slice(-3))){const c=l[0]*l[1]*(l[2]+1),h={dataId:e.dataId,shape:[1,c,n.inChannels],dtype:e.dtype},d=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,Gt(HO(u.shape,h.shape),(()=>`packed reshape ${u.shape} to ${h.shape} isn't free`));const p=Bz({inputs:{x:t},backend:s,attrs:{shape:[1,n.inChannels,n.outChannels]}});g.push(p);const y=Zz({a:h,b:p,backend:s,transposeA:false,transposeB:f,bias:r,activation:o,preluActivationWeights:i,leakyreluAlpha:a}),b=s.texData.get(y.dataId);Gt(b.isPacked,(()=>"batchMatMul result is expected to be packed")),u.shape=d,b.shape=n.outShape,m=yz({inputs:{x:y},backend:s}),m.shape=n.outShape,g.push(y)}else{const l=n.outHeight*n.outWidth,u=Bz({inputs:{x:e},backend:s,attrs:{shape:p?[n.batchSize,l,n.inChannels]:[n.batchSize,n.inChannels,l]}}),c=Bz({inputs:{x:t},backend:s,attrs:{shape:[1,n.inChannels,n.outChannels]}}),h=Zz({a:p?u:c,b:p?c:u,transposeA:!p,transposeB:f,backend:s,bias:r,activation:o,preluActivationWeights:i,leakyreluAlpha:a});m=Bz({inputs:{x:h},backend:s,attrs:{shape:n.outShape}}),g.push(u),g.push(c),g.push(h)}for(const e of g)s.disposeIntermediateTensorInfo(e);return m}function SB({x:e,filter:t,convInfo:n,backend:s,bias:r=null,preluActivationWeights:i=null,leakyreluAlpha:a=0,activation:o=null}){const{filterWidth:l,filterHeight:u,inChannels:c,outWidth:h,outHeight:d,dataFormat:p}=n,f="channelsLast"===p,m=l*u*c,g=d*h,y=[n.batchSize,m,g],b=[];if(null!=i){const e=CB(i.shape,f);null!=e&&(i=Bz({inputs:{x:i},backend:s,attrs:{shape:e}}),b.push(i))}if(null!=r){const e=CB(r.shape,f);null!=e&&(r=Bz({inputs:{x:r},backend:s,attrs:{shape:e}}),b.push(r))}const w=Bz({inputs:{x:t},backend:s,attrs:{shape:[1,m,Kt(t.shape)/m]}});b.push(w);const v=new AB(y,n),x=[e.shape,[n.padInfo.top,n.padInfo.left],[n.strideHeight,n.strideWidth],[n.dilationHeight,n.dilationWidth],[n.inChannels],[n.filterWidth*n.inChannels],[n.outWidth]],A=s.runWebGLProgram(v,[e],"float32",x),C=Bz({inputs:{x:A},backend:s,attrs:{shape:y}});b.push(A),b.push(C);const k=null!=r,S=null!=i,_="leakyrelu"===o,E=o?Nz(o,!0):null,I=new Rz(f?C.shape:w.shape,f?w.shape:C.shape,f?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],!0,!1,k,E,S,_),T=f?[C,w]:[w,C];if(r&&T.push(r),S&&T.push(i),_){const e=s.makeTensorInfo([],"float32",da(a,"float32"));T.push(e),b.push(e)}const N=s.runWebGLProgram(I,T,"float32"),R=Bz({inputs:{x:N},backend:s,attrs:{shape:n.outShape}});b.push(N);for(const e of b)s.disposeIntermediateTensorInfo(e);return R}const _B={kernelName:is,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,filter:i}=t,{strides:a,pad:o,dataFormat:l,dilations:u,dimRoundingMode:c}=s,h=Ec(l),d=yc(r.shape,i.shape,a,u,o,c,!1,h);let p;if(1!==d.filterHeight||1!==d.filterWidth||1!==d.dilationHeight||1!==d.dilationWidth||1!==d.strideHeight||1!==d.strideWidth||"SAME"!==d.padInfo.type&&"VALID"!==d.padInfo.type)if(d.strideWidth<=2&&"channelsLast"===h&&Sn().getBool("WEBGL_EXP_CONV")){const e=new xB(d),t=[[d.padInfo.top,d.padInfo.left],[d.strideHeight,d.strideWidth],[d.dilationHeight,d.dilationWidth],[d.inHeight,d.inWidth]];p=n.runWebGLProgram(e,[r,i],"float32",t)}else if(Sn().getBool("WEBGL_CONV_IM2COL"))p=SB({x:r,filter:i,convInfo:d,backend:n});else{const e=new wB(d);p=n.runWebGLProgram(e,[r,i],"float32")}else p=kB({x:r,filter:i,convInfo:d,backend:n});const f=Bz({inputs:{x:p},backend:n,attrs:{shape:d.outShape}});return n.disposeIntermediateTensorInfo(p),f}};class EB{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,n=e.strideWidth,s=e.padInfo.top,r=e.padInfo.left,i="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} - ${s};\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} - ${r};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n ${i?"float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);":"float dyValue = getDy(b, d2, yR, yC);\n float xValue = getX(b, d1, xR, xC);\n dotProd += (xValue * dyValue);"}\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class IB{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,n=e.filterWidth,s=e.strideHeight,r=e.strideWidth,i="channelsLast"===e.dataFormat,a=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=i?1:2,u=i?2:3,c=i?3:1;this.userCode=`\n const ivec2 pads = ivec2(${a}, ${o});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[${c}];\n\n ivec2 dyCorner = ivec2(coords[${l}], coords[${u}]) - 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) / ${s}.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) / ${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 int wCPerm = ${n} - 1 - wC;\n\n for (int d2 = 0; d2 < ${e.outChannels}; d2++) {\n\n if (${i}) {\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n } else {\n float xValue = getDy(batch, d2, idyR, idyC);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class TB{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideDepth,n=e.strideHeight,s=e.strideWidth,r=e.padInfo.front,i=e.padInfo.top,a=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} - ${r};\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} - ${i};\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 * ${s} - ${a};\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 `}}class NB{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterDepth,n=e.filterHeight,s=e.filterWidth,r=e.strideDepth,i=e.strideHeight,a=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,u=s-1-e.padInfo.left;this.userCode=`\n const ivec3 pads = ivec3(${o}, ${l}, ${u});\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) / ${r}.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) / ${i}.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 < ${s}; wC++) {\n float dyC = float(dyCCorner + wC) / ${a}.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 = ${s} - 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 `}}const RB={kernelName:as,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,dy:i}=t,{strides:a,pad:o,dataFormat:l,dimRoundingMode:u,filterShape:c}=s,h=Ec(l),d=yc(r.shape,c,a,1,o,u,!1,h),p=new EB(d);return n.runWebGLProgram(p,[r,i],"float32")}};class OB{constructor(e){this.variableNames=["dy","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"strides",type:"vec2"}],this.outputShape=e.inShape,this.enableShapeUniforms=SD(this.outputShape.length);const t=e.filterHeight,n=e.filterWidth,s=t-1-e.padInfo.top,r=n-1-e.padInfo.left;this.userCode=`\n const ivec2 pads = ivec2(${s}, ${r});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n\n ivec2 dyCorner = ivec2(coords[1], coords[2]) - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n vec4 result = vec4(0.);\n for (int wR = 0; wR < ${t}; wR++) {\n float dyR = float(dyRCorner + wR) / strides[0];\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n int wRPerm = ${t} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n int wCPerm = ${n} - 1 - wC;\n\n float dyC = float(dyCCorner + wC) / strides[1];\n bool idyCVal = (dyC >= 0.0) && (dyC < ${e.outWidth}.0)\n && (fract(dyC) == 0.0);\n int idyC = int(dyC);\n\n float dyC2 = float(dyCCorner + wC + 1) / strides[1];\n bool idyCVal2 = (dyC2 >= 0.0) && (dyC2 < ${e.outWidth}.0)\n && (fract(dyC2) == 0.0);\n int idyC2 = int(dyC2);\n\n if (idyCVal && idyCVal2) {\n for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC, d2);\n vec4 dySample2 = (idyC / 2 == idyC2 / 2) ?\n dySample : getDy(batch, idyR, idyC2, d2);\n\n vec2 dyValue = mod(float(idyC), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.xy += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n\n dyValue = mod(float(idyC2), 2.) == 0. ?\n dySample2.xy : dySample2.zw;\n result.zw += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n } else if (idyCVal) {\n for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC, d2);\n vec2 dyValue = mod(float(idyC), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.xy += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n } else if (idyCVal2) {\n for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC2, d2);\n vec2 dyValue = mod(float(idyC2), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.zw += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n }\n }\n }\n setOutput(result);\n }\n `}}const DB={kernelName:os,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,filter:i}=t,{inputShape:a,strides:o,pad:l,dataFormat:u,dimRoundingMode:c}=s,h=Ec(u),d=yc(a,i.shape,o,1,l,c,!1,h);if(Sn().getBool("WEBGL_PACK_CONV2DTRANSPOSE")&&"channelsLast"===h){const e=[[d.strideHeight,d.strideWidth]],t=new OB(d);return n.runWebGLProgram(t,[r,i],"float32",e)}{const e=new IB(d);return n.runWebGLProgram(e,[r,i],"float32")}}};const MB={kernelName:ls,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,filter:i}=t,{strides:a,pad:o,dilations:l}=s,u=bc(r.shape,i.shape,a,l,o),c=new vB(u);return n.runWebGLProgram(c,[r,i],"float32")}};const zB={kernelName:us,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,dy:i}=t,{strides:a,pad:o,filterShape:l}=s,u=bc(r.shape,l,a,1,o),c=new TB(u);return n.runWebGLProgram(c,[r,i],"float32")}};const FB={kernelName:cs,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,filter:i}=t,{pad:a,strides:o,inputShape:l}=s,u=bc(l,i.shape,o,1,a),c=new NB(u);return n.runWebGLProgram(c,[r,i],"float32")}},BB=Iz({opSnippet:Ez+"\n return cos(x);\n",packedOpSnippet:`\n vec4 result = cos(x);\n bvec4 isNaN = isnan(x);\n ${mz}\n return result;\n`}),LB={kernelName:hs,backendName:"webgl",kernelFunc:BB},PB=Iz({opSnippet:"\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n"}),UB={kernelName:ds,backendName:"webgl",kernelFunc:PB};class VB{constructor(e,t,n,s,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];const[i,a,o,l]=e,[u]=t,[c,h]=n;this.outputShape=[u,c,h,l];const d="bilinear"===s?1:0,[p,f]=[a-1+".0",o-1+".0"],[m,g,y]=c>1?[""+(a-1)/(c-1),"(y2-y1) * height_ratio",`y1*${p} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${p}`],[b,w,v]=h>1?[""+(o-1)/(h-1),"(x2-x1) * width_ratio",`x1*${f} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${f}`];this.userCode=`\n const float height_ratio = float(${m});\n const float width_ratio = float(${b});\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int y = coords[1];\n int x = coords[2];\n int d = coords[3];\n\n // get box vals\n float y1 = getBoxes(b,0);\n float x1 = getBoxes(b,1);\n float y2 = getBoxes(b,2);\n float x2 = getBoxes(b,3);\n\n // get image in batch index\n int bInd = round(getBoxInd(b));\n if(bInd < 0 || bInd >= ${i}) {\n return;\n }\n\n float height_scale = ${g};\n float width_scale = ${w};\n\n float in_y = ${y};\n if( in_y < 0.0 || in_y > ${p} ) {\n setOutput(float(${r}));\n return;\n }\n float in_x = ${v};\n if( in_x < 0.0 || in_x > ${f} ) {\n setOutput(float(${r}));\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 `}}const WB={kernelName:ms,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:s}=e,{image:r,boxes:i,boxInd:a}=t,{cropSize:o,method:l,extrapolationValue:u}=s,c=new VB(r.shape,i.shape,o,l,u);return n.runWebGLProgram(c,[r,i,a],"float32")}};var jB;!function(e){e.Prod="*",e.Sum="+"}(jB||(jB={}));class GB{constructor(e,t,n,s){this.op=e,this.outputShape=t,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];const r=this.outputShape.length,i=this.op===jB.Prod?"1.0":"0.0",a=n?i:`getX(${qB(r,"coords",this.op)})`,o=this.outputShape[this.outputShape.length-1];let l="",u="";n?(l=s?"end != "+(o-1):"end != 0",u=s?"end + 1":"end - 1"):(l=s?`end + pow2 < ${o}`:"end >= pow2",u=s?"end + pow2":"end - pow2"),this.userCode=`\n void main() {\n ${bD(r)} coords = getOutputCoords();\n int end = ${HB(r,"coords",this.op)};\n float val = ${a};\n int pow2 = int(pow(2.0, index));\n if (${l}) {\n int idx = ${u};\n ${HB(r,"coords",this.op)} = idx;\n val ${this.op}= getX(${qB(r,"coords",this.op)});\n }\n setOutput(val);\n }\n `}}function qB(e,t,n){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 new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function HB(e,t,n){if(1===e)return`${t}`;if(2===e)return`${t}.y`;if(3===e)return`${t}.z`;if(4===e)return`${t}.w`;throw new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function KB(e,t,n,s,r,i){const a=t.shape.length,o=Ih([s],a);let l=t;null!=o&&(l=Kz({inputs:{x:t},backend:n,attrs:{perm:o}}));const u=Nh(1,a)[0];if(u!==a-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${s}`);const c=l.shape[u];let h=yz({inputs:{x:l},backend:n});for(let t=0;t<=Math.ceil(Math.log2(c))-1;t++){const s=new GB(e,l.shape,!1,i),r=[[t]],a=h;h=n.runWebGLProgram(s,[h],h.dtype,r),n.disposeIntermediateTensorInfo(a)}if(r){const t=new GB(e,l.shape,r,i),s=h;h=n.runWebGLProgram(t,[h],h.dtype),n.disposeIntermediateTensorInfo(s)}if(null!=o){const e=Kz({inputs:{x:h},backend:n,attrs:{perm:Th(o)}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(l),e}return h}const $B={kernelName:ps,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i,exclusive:a,reverse:o}=s;return KB(jB.Prod,r,n,i,a,o)}};const XB={kernelName:fs,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i,exclusive:a,reverse:o}=s;return KB(jB.Sum,r,n,i,a,o)}};const ZB={kernelName:gs,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,weights:i}=t,{size:a,binaryOutput:o}=s;if(1===r.shape.length){const e=n.readSync(r.dataId),t=n.readSync(i.dataId),s=qD(e,t,i.dtype,i.shape,a);return n.makeTensorInfo([a],i.dtype,s)}if(2===r.shape.length){const e=n.bufferSync(r),t=n.bufferSync(i),s=HD(e,t,a,o);return n.makeTensorInfo(s.shape,i.dtype,s.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${r.shape.length}.`)}};class YB{constructor(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 `}getHeightCoordString(){return"NHWC"===this.dataFormat?"coords[1]":"coords[2]"}getWidthCoordString(){return"NHWC"===this.dataFormat?"coords[2]":"coords[3]"}getDepthCoordString(){return"NHWC"===this.dataFormat?"coords[3]":"coords[1]"}getOutputDepthSize(){return"NHWC"===this.dataFormat?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return"NHWC"===this.dataFormat?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}}const QB={kernelName:ys,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{blockSize:i,dataFormat:a}=s,o=r.shape[0],l=("NHWC"===a?r.shape[1]:r.shape[2])*i,u=("NHWC"===a?r.shape[2]:r.shape[3])*i,c=("NHWC"===a?r.shape[3]:r.shape[1])/(i*i),h=new YB("NHWC"===a?[o,l,u,c]:[o,c,l,u],i,a);return n.runWebGLProgram(h,[r],r.dtype)}};class JB{constructor(e,t=!1,n=null,s=!1,r=!1){this.variableNames=["x","W"],this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=SD(this.outputShape.length);const i=e.filterHeight,a=e.filterWidth,o=e.outChannels/e.inChannels;let l="",u="";n&&(l=s?`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:r?`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:`\n float activation(float x) {\n ${n}\n }\n `,u="result = activation(result);");const c=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),s&&this.variableNames.push("preluActivationWeights"),r&&this.variableNames.push("leakyreluAlpha"),this.userCode=`\n ${l}\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n ivec2 xRCCorner = coords.yz * strides - pads;\n int d2 = coords.w;\n int d1 = d2 / ${o};\n int q = d2 - d1 * ${o};\n\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations.\n for (int wR = 0; wR < ${i}; wR++) {\n int xR = xRCorner + wR * dilations[0];\n\n if (xR < 0 || xR >= inDims[0]) {\n continue;\n }\n\n for (int wC = 0; wC < ${a}; wC++) {\n int xC = xCCorner + wC * dilations[1];\n\n if (xC < 0 || xC >= inDims[1]) {\n continue;\n }\n\n float xVal = getX(batch, xR, xC, d1);\n float wVal = getW(wR, wC, d1, q);\n dotProd += xVal * wVal;\n }\n }\n\n float result = dotProd;\n ${c}\n ${u}\n setOutput(result);\n }\n `}}class eL{constructor(e,t=!1,n=null,s=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=SD(this.outputShape.length);const i=e.outChannels/e.inChannels,a=e.padInfo.left,o=e.strideWidth,l=e.dilationWidth,u=e.filterHeight,c=e.filterWidth,h=c;let d="\n int xR; int xC; int xCOffset;\n vec4 wTexel; vec4 previous; vec4 final;";for(let e=0;e=0 && xR < inDims[0]) {\n ";for(let e=0;e<(h+1)/2;e++){const t=2*e;if(d+=`\n xC = xCCorner + ${t*l};\n `,1===o){if(t= 0 && xCOffset < inDims[1] && xTexelC${t}Ready == 0) {\n xTexelC${t} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${t}.zw = vec2(0.0);\n }\n xTexelC${t}Ready = 1;\n }\n `,d+=1===l&&t>0?`\n xC${t} = vec4(xTexelC${t-2}.zw, xTexelC${t}.xy);\n `:`\n xCOffset = xC + 1 - 2;\n\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n previous.zw = vec2(0.0);\n }\n\n xC${t} = vec4(previous.zw, xTexelC${t}.xy);\n } else {\n xC${t} = vec4(0.0, 0.0, xTexelC${t}.xy);\n }\n `):d+=`\n if (xC >= 0 && xC < inDims[1] && xTexelC${t}Ready == 0) {\n xTexelC${t} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${t}.zw = vec2(0.0);\n }\n xTexelC${t}Ready = 1;\n }\n\n xC${t} = xTexelC${t};\n `,t+1= 0 && xCOffset < inDims[1] && xTexelC${t+1}Ready == 0) {\n xTexelC${t+1} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${t+1}.zw = vec2(0.0);\n }\n xTexelC${t+1}Ready = 1;\n }\n `,d+=l>1?`\n xCOffset -= 2;\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n xC${t+1} = vec4(previous.zw, xTexelC${t+1}.xy);\n } else {\n xC${t+1} = vec4(0.0, 0.0, xTexelC${t+1}.xy);\n }\n `:`\n xC${t+1} = vec4(xTexelC${t}.zw, xTexelC${t+1}.xy);\n `):d+=1===e?`\n xC${t+1} = xTexelC${t};\n `:`\n xCOffset = xC + ${e};\n\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${t+1}Ready == 0) {\n xTexelC${t+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${t+1}.zw = vec2(0.0);\n }\n xTexelC${t+1}Ready = 1;\n }\n\n xC${t+1} = xTexelC${t+1};\n `}}else t= 0 && xCOffset < inDims[1] && xTexelC${t}Ready == 0) {\n xTexelC${t} = getX(batch, xR, xCOffset, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${t}.zw = vec2(0.0);\n }\n xTexelC${t}Ready = 1;\n }\n\n if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${t+1}Ready == 0) {\n xTexelC${t+1} = getX(batch, xR, xC + 1, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xC + 2 >= inDims[1]) {\n xTexelC${t+1}.zw = vec2(0.0);\n }\n xTexelC${t+1}Ready = 1;\n }\n\n xC${t} = vec4(xTexelC${t}.zw, xTexelC${t+1}.zw);\n `,t+1= 0 && xCOffset < inDims[1]) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xC${t+1} = vec4(xTexelC${t+1}.xy, final.xy);\n `)):(d+=`\n if(xC >= 0 && xC < inDims[1] && xTexelC${t}Ready == 0) {\n xTexelC${t} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${t}.zw = vec2(0.0);\n }\n xTexelC${t}Ready = 1;\n }\n\n xCOffset = xC + strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${t+1}Ready == 0) {\n xTexelC${t+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${t+1}.zw = vec2(0.);\n }\n xTexelC${t+1}Ready = 1;\n }\n\n xC${t} = vec4(\n xTexelC${t}.xy, xTexelC${t+1}.xy);\n `,t+1`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${a} and dilations '${c}'`));const h=yc(r.shape,i.shape,a,c,o,u,!0);let d;d=Sn().getBool("WEBGL_PACK_DEPTHWISECONV")&&h.strideWidth<=2&&h.outChannels/h.inChannels==1?new eL(h):new JB(h);const p=[[h.padInfo.top,h.padInfo.left],[h.strideHeight,h.strideWidth],[h.dilationHeight,h.dilationWidth],[h.inHeight,h.inWidth]];return n.runWebGLProgram(d,[r,i],"float32",p)}};class nL{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,n=e.strideWidth,s=e.padInfo.top,r=e.padInfo.left,i=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 * ${i} + 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} - ${s};\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} - ${r};\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 `}}class sL{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,n=e.filterWidth,s=e.strideHeight,r=e.strideWidth,i=t-1-e.padInfo.top,a=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=`\n const ivec2 pads = ivec2(${i}, ${a});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n ivec2 dyCorner = coords.yz - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n float dotProd = 0.0;\n\n for (int wR = 0; wR < ${t}; wR++) {\n float dyR = float(dyRCorner + wR) / ${s}.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) / ${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 int wCPerm = ${n} - 1 - wC;\n\n // TO DO: Vec4 over the channelMul\n for (int dm = 0; dm < ${o}; dm++) {\n int d2 = d1 * ${o} + 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 `}}const rL={kernelName:ws,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,dy:i}=t,{strides:a,dilations:o,pad:l,dimRoundingMode:u,filterShape:c}=s,h=yc(r.shape,c,a,o,l,u,!0),d=new nL(h);return n.runWebGLProgram(d,[r,i],"float32")}};const iL={kernelName:vs,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,filter:i}=t,{strides:a,dilations:o,pad:l,dimRoundingMode:u,inputShape:c}=s,h=yc(c,i.shape,a,o,l,u,!0),d=new sL(h);return n.runWebGLProgram(d,[r,i],"float32")}};class aL{constructor(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 "}}const oL={kernelName:xs,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:s}=t,r=[...s.shape,...s.shape],i=Kt(s.shape),a=Bz({inputs:{x:s},backend:n,attrs:{shape:[i]}}),o=new aL(i),l=n.runWebGLProgram(o,[a],a.dtype),u=Bz({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(l),u}};class lL{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;const{inHeight:t,inWidth:n,padInfo:s,strideHeight:r,strideWidth:i,filterHeight:a,filterWidth:o,dilationHeight:l,dilationWidth:u}=e,{top:c,left:h}=s;this.userCode=`\n const ivec2 strides = ivec2(${r}, ${i});\n const ivec2 pads = ivec2(${c}, ${h});\n const float neg_infinity = -3.4e38;\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.w;\n ivec2 outTopLeftCorner =\n coords.yz * strides - pads;\n int hBeg = outTopLeftCorner.x;\n int wBeg = outTopLeftCorner.y;\n\n float curVal = neg_infinity;\n for (int h = 0; h < ${a}; h++) {\n int hIn = hBeg + h * ${l};\n\n if (hIn >= 0 && hIn < ${t}) {\n for (int w = 0; w < ${o}; w++) {\n int wIn = wBeg + w * ${u};\n\n if (wIn >= 0 && wIn < ${n}) {\n float xVal = getX(batch, hIn, wIn, d1);\n float wVal = getW(h, w, d1);\n\n float val = xVal + wVal;\n if (val > curVal) {\n curVal = val;\n }\n }\n }\n }\n }\n\n float result = curVal;\n setOutput(result);\n }\n `}}const uL={kernelName:As,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,filter:i}=t,{strides:a,pad:o,dilations:l}=s,u=fc(r.shape,i.shape,a,o,"NHWC",l);let c;const h=new lL(u);c=n.runWebGLProgram(h,[r,i],"float32");const d=Bz({inputs:{x:c},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(c),d}};const cL={kernelName:Es,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{equation:r}=s,i=t,{allDims:a,summedDims:o,idDims:l}=lg(r,i.length);cg(a.length,l,i);const{path:u,steps:c}=hg(o,l),h=c.length;let d=null,p=a.length;const f=[];for(let e=0;e=0&&(d=qz({inputs:{x:d},backend:n,attrs:{axis:u[e]-(a.length-p),keepDims:!1}}),f.push(d)),p--)}for(const e of f)e!==d&&n.disposeIntermediateTensorInfo(e);return d}},hL=Iz({opSnippet:"return (x >= 0.0) ? x : (exp(x) - 1.0);",packedOpSnippet:"\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"}),dL={kernelName:Is,backendName:"webgl",kernelFunc:hL},pL={kernelName:Ts,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n}=e,{dy:s,y:r}=t,i=Sn().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new gz("\n vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n",s.shape,r.shape):new fz("return (b >= 0.0) ? a : a * (b + 1.0);",s.shape,r.shape);return n.runWebGLProgram(i,[s,r],s.dtype)}},fL=Tz({opSnippet:"return float(a == b);",packedOpSnippet:"\n return vec4(equal(a, b));\n",dtype:"bool",cpuKernelImpl:YD}),mL={kernelName:Rs,backendName:"webgl",kernelFunc:fL},gL=Iz({opSnippet:`\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 = ${Gm};\n float a1 = ${qm};\n float a2 = ${Hm};\n float a3 = ${Km};\n float a4 = ${$m};\n float a5 = ${Xm};\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`}),yL={kernelName:Ns,backendName:"webgl",kernelFunc:gL},bL=Iz({opSnippet:Ez+"\n return exp(x);\n",packedOpSnippet:"\n vec4 result = exp(x);\n bvec4 isNaN = isnan(x);\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n",cpuKernelImpl:QD,dtype:"float32"}),wL={kernelName:Os,backendName:"webgl",kernelFunc:bL};function vL(e){const{inputs:t,attrs:n,backend:s}=e,{dim:r}=n,{input:i}=t,a=i.shape.length,o=i.shape.slice();let l=r;return r<0&&(Gt(-(a+1)<=r,(()=>`Axis must be in the interval [${-(a+1)}, ${a}]`)),l=a+r+1),o.splice(l,0,1),Bz({inputs:{x:i},backend:s,attrs:{shape:o}})}const xL={kernelName:Ds,backendName:"webgl",kernelFunc:vL},AL="return exp(x) - 1.0;",CL=Iz({opSnippet:AL,packedOpSnippet:AL,cpuKernelImpl:JD}),kL={kernelName:Ms,backendName:"webgl",kernelFunc:CL};class SL{constructor(e,t,n){this.variableNames=["real","imag"];const s=t[1];this.outputShape=t;const r=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,i=n?`${s}.0`:"1.0";let a;if("real"===e)a="return real * expR - imag * expI;";else{if("imag"!==e)throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);a="return real * expI + imag * expR;"}this.userCode=`\n const float exponentMultiplier = ${r};\n\n float unaryOpComplex(float real, float expR, float imag, float expI) {\n ${a}\n }\n\n float mulMatDFT(int batch, int index) {\n float indexRatio = float(index) / float(${s});\n float exponentMultiplierTimesIndexRatio =\n exponentMultiplier * indexRatio;\n\n float result = 0.0;\n\n for (int i = 0; i < ${s}; i++) {\n // x = (-2|2 * PI / N) * index * i;\n float x = exponentMultiplierTimesIndexRatio * float(i);\n float expR = cos(x);\n float expI = sin(x);\n float real = getReal(batch, i);\n float imag = getImag(batch, i);\n\n result +=\n unaryOpComplex(real, expR, imag, expI) / ${i};\n }\n\n return result;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n setOutput(mulMatDFT(coords[0], coords[1]));\n }\n `}}function _L(e,t,n){const s=n.texData.get(e.dataId),r=Kt(e.shape),i=e.shape[e.shape.length-1],a=Bz({inputs:{x:e},backend:n,attrs:{shape:[r/i,i]}}),o=a.shape,l=new SL("real",o,t),u=new SL("imag",o,t),c=[{dataId:s.complexTensorInfos.real.dataId,dtype:s.complexTensorInfos.real.dtype,shape:o},{dataId:s.complexTensorInfos.imag.dataId,dtype:s.complexTensorInfos.imag.dtype,shape:o}],h=n.runWebGLProgram(l,c,"float32"),d=n.runWebGLProgram(u,c,"float32"),p=wz({inputs:{real:h,imag:d},backend:n});n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(d);const f=Bz({inputs:{x:p},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(p),f}const EL={kernelName:zs,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:s}=t;return _L(s,!1,n)}};class IL{constructor(e,t){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=e,this.userCode="\n void main() {\n // Input can be obtained from uniform value.\n setOutput(value);\n }\n "}}function TL(e){const{backend:t,attrs:n}=e,{shape:s,value:r}=n;let{dtype:i}=n;if(i=i||un(r),"string"===i){const e=sn(i,Kt(s));return e.fill(r),t.makeTensorInfo(s,i,e)}{const e=new IL(s,r),n=[[r]];return t.runWebGLProgram(e,[],i,n)}}const NL={kernelName:Fs,backendName:"webgl",kernelFunc:TL};class RL{constructor(e){this.variableNames=["Image"],this.outputShape=[];const t=e[2];this.outputShape=e,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n\n int coordX = ${t} - x - 1;\n float outputValue;\n if(coordX >= 0 && coordX < ${t}) {\n outputValue = getImage(coords[0], coords[1], coordX, coords[3]);\n } else {\n outputValue = getImage(coords[0], coords[1], coords[2], coords[3]);\n }\n setOutput(outputValue);\n }\n `}}const OL={kernelName:Bs,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{const{image:n}=e,s=t,r=new RL(n.shape);return s.runWebGLProgram(r,[n],n.dtype)}},DL="return floor(x);",ML=Iz({opSnippet:DL,packedOpSnippet:DL,cpuKernelImpl:eM}),zL={kernelName:Ls,backendName:"webgl",kernelFunc:ML},FL=Tz({opSnippet:"\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",packedOpSnippet:"\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",dtype:"int32"}),BL={kernelName:Ps,backendName:"webgl",kernelFunc:FL};class LL{constructor(e){this.variableNames=["A"];const t=tD(),[n,s]=e;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(${s}.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 `}}class PL{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const t=tD(),[n,s]=e;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(${s}.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 `}}const UL={kernelName:Fi,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e;let{pixels:r}=t;const{numChannels:i}=s,a="undefined"!=typeof HTMLVideoElement&&r instanceof HTMLVideoElement,o="undefined"!=typeof HTMLImageElement&&r instanceof HTMLImageElement,[l,u]=a?[r.videoWidth,r.videoHeight]:[r.width,r.height],c=[u,l],h=[u,l,i];if(o||a){const e=Sn().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");null!=VL&&e===WL||(WL=e,VL=document.createElement("canvas").getContext("2d",{willReadFrequently:WL})),VL.canvas.width=l,VL.canvas.height=u,VL.drawImage(r,0,0,l,u),r=VL.canvas}const d=n.makeTensorInfo(c,"int32");n.texData.get(d.dataId).usage=CO.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(d.dataId),r);const p=Sn().getBool("WEBGL_PACK")?new PL(h):new LL(h),f=n.runWebGLProgram(p,[d],"int32");return n.disposeData(d.dataId),f}};let VL,WL=Sn().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");const jL={kernelName:Pi,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,filter:i,bias:a,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:d,activation:p,leakyreluAlpha:f}=s,m=Ec(c),g=yc(r.shape,i.shape,l,h,u,d,!1,m);let y;const b=[],w=null!=a,v=null!=o,x="leakyrelu"===p,A=()=>{const e=[r,i],t=(e,t)=>{if("NCHW"===t&&1===e.shape.length&&1!==e.shape[0]){const t=Bz({inputs:{x:e},backend:n,attrs:{shape:[e.shape[0],1,1]}});return b.push(t),t}return e};if(w&&e.push(t(a,c)),v&&e.push(t(o,c)),x){const t=n.makeTensorInfo([],"float32",da(f,"float32"));e.push(t),b.push(t)}return e};if(1!==g.filterHeight||1!==g.filterWidth||1!==g.dilationHeight||1!==g.dilationWidth||1!==g.strideHeight||1!==g.strideWidth||"SAME"!==g.padInfo.type&&"VALID"!==g.padInfo.type)if(g.strideWidth<=2&&"channelsLast"===m&&Sn().getBool("WEBGL_EXP_CONV")){const e=p?Nz(p,!0):null,t=new xB(g,w,e,v,x),s=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],r=A();y=n.runWebGLProgram(t,r,"float32",s)}else if(Sn().getBool("WEBGL_CONV_IM2COL"))y=SB({x:r,filter:i,convInfo:g,backend:n,bias:a,activation:p,preluActivationWeights:o,leakyreluAlpha:f});else{const e=p?Nz(p,!1):null,t=new wB(g,w,e,v,x),s=A();y=n.runWebGLProgram(t,s,"float32")}else y=kB({x:r,filter:i,convInfo:g,backend:n,bias:a,activation:p,preluActivationWeights:o,leakyreluAlpha:f});const C=Bz({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach((e=>n.disposeIntermediateTensorInfo(e))),C}};const GL={kernelName:Ui,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,filter:i,bias:a,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:c,dimRoundingMode:h,activation:d,leakyreluAlpha:p}=s,f=[];let m=c;null==m&&(m=[1,1]),Gt(Sc(l,m),(()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${m}'`));const g=yc(r.shape,i.shape,l,m,u,h,!0),y=Sn().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels==1,b=d?Nz(d,y):null,w=[r,i],v=null!=a,x=null!=o,A="leakyrelu"===d;if(v&&w.push(a),x&&w.push(o),A){const e=n.makeTensorInfo([],"float32",da(p,"float32"));w.push(e),f.push(e)}let C;C=y?new eL(g,v,b,x,A):new JB(g,v,b,x,A);const k=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],S=n.runWebGLProgram(C,w,"float32",k);return f.forEach((e=>n.disposeIntermediateTensorInfo(e))),S}};class qL{constructor(e,t,n,s){this.sliceDim=e,this.strides=t,this.paramsShape=s,this.variableNames=["x","indices"],this.outputShape=n;const r=bD(n.length);let i="\n int index;";for(let e=0;e= ${this.paramsShape[e]};\n flattenIndex += index * ${this.strides[e]};`;this.userCode=`\n void main() {\n ${r} coords = getOutputCoords();\n int flattenIndex = 0;\n bool out_of_bounds = false;\n\n ${i}\n\n setOutput(out_of_bounds ? 0.0 : getX(flattenIndex, coords[1]));\n }\n `}}const HL={kernelName:Ws,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{params:s,indices:r}=t,i=r.shape,a=i[i.length-1],o=Kt(s.shape),[l,u,c,h]=Vm(s,r),d=Bz({inputs:{x:r},backend:n,attrs:{shape:[u,a]}}),p=Bz({inputs:{x:s},backend:n,attrs:{shape:[Kt(s.shape)/c,c]}});if(n.shouldExecuteOnCPU([s,r])||"string"===s.dtype){const e=n.readSync(r.dataId),t=n.bufferSync(s),i=tM(e,t,s.dtype,u,a,c,h,s.shape,o);return n.makeTensorInfo(l,s.dtype,i.values)}const f=new qL(a,h,[u,c],s.shape),m=n.runWebGLProgram(f,[p,d],p.dtype),g=Bz({inputs:{x:m},backend:n,attrs:{shape:l}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),g}};class KL{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;const n=bD(this.rank),s=function(e,t){const n=["resRC.x","resRC.y","resRC.z","resRC.w"],s=[];for(let t=0;t= 0) && (index < ${e[2]}) ? 1.0 : 0.0;\n setOutput(inBounds * getA(${s}));\n }\n `}}function $L(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,indices:i}=t,{axis:a,batchDims:o}=s,l=en(a,r.shape)[0];if(Sn().get("DEBUG")){const e=n.readSync(i.dataId),t=r.shape[l];for(let n=0;n=0,(()=>`GatherV2: the index value ${s} is not in [0, ${t-1}]`))}}const u=Tg(r,i,l,o),c=Kt(i.shape),h=[],d=Bz({inputs:{x:r},backend:n,attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]}}),p=Bz({inputs:{x:i},backend:n,attrs:{shape:[u.batchSize,c/u.batchSize]}});h.push(d),h.push(p);const f=[u.batchSize,u.outerSize,c/u.batchSize,u.sliceSize];if(n.shouldExecuteOnCPU([r,i])||"string"===r.dtype){const e=n.bufferSync(p),t=n.bufferSync(d),s=nM(t,e,f);return h.forEach((e=>n.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(u.outputShape,s.dtype,s.values)}const m=new KL(d.shape,f),g=n.runWebGLProgram(m,[d,p],d.dtype);h.push(g);const y=Bz({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return h.forEach((e=>n.disposeIntermediateTensorInfo(e))),y}const XL={kernelName:Vs,backendName:"webgl",kernelFunc:$L},ZL=Tz({opSnippet:"return float(a > b);",packedOpSnippet:"\n return vec4(greaterThan(a, b));\n",cpuKernelImpl:sM,dtype:"bool"}),YL={kernelName:js,backendName:"webgl",kernelFunc:ZL},QL=Tz({opSnippet:"return float(a >= b);",packedOpSnippet:"\n return vec4(greaterThanEqual(a, b));\n",dtype:"bool",cpuKernelImpl:rM}),JL={kernelName:Gs,backendName:"webgl",kernelFunc:QL};const eP={kernelName:Hs,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:s}=t;return _L(s,!0,n)}},tP=Iz({opSnippet:"return float(!isnan(x) && !isinf(x));",dtype:"bool"}),nP={kernelName:$s,backendName:"webgl",kernelFunc:tP},sP=Iz({opSnippet:"return float(isinf(x));",dtype:"bool"}),rP={kernelName:Xs,backendName:"webgl",kernelFunc:sP},iP=Iz({opSnippet:"return float(isnan(x));",dtype:"bool"}),aP={kernelName:Zs,backendName:"webgl",kernelFunc:iP},oP=Tz({opSnippet:"return float(a < b);",packedOpSnippet:"\n return vec4(lessThan(a, b));\n",cpuKernelImpl:iM,dtype:"bool"}),lP={kernelName:Qs,backendName:"webgl",kernelFunc:oP},uP=Tz({opSnippet:"return float(a <= b);",packedOpSnippet:"\n return vec4(lessThanEqual(a, b));\n",cpuKernelImpl:aM,dtype:"bool"}),cP={kernelName:Js,backendName:"webgl",kernelFunc:uP};const hP={kernelName:er,backendName:"webgl",kernelFunc:function(e){const{backend:t,attrs:n}=e,{start:s,stop:r,num:i}=n,a=oM(s,r,i);return t.makeTensorInfo([a.length],"float32",a)}},dP=Iz({opSnippet:Ez+"\n return x < 0.0 ? 0./0. : log(x);\n",packedOpSnippet:"\n vec4 result = log(x);\n bvec4 isNaN = isnan(x);\n result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r);\n result.g = isNaN.g ? x.g : (x.g < 0.0 ? 0./0. : result.g);\n result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b);\n result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a);\n return result;\n",cpuKernelImpl:lM}),pP={kernelName:tr,backendName:"webgl",kernelFunc:dP},fP=Iz({opSnippet:Ez+"\n return log(1.0 + x);\n"}),mP={kernelName:nr,backendName:"webgl",kernelFunc:fP},gP=Tz({opSnippet:"return float(a >= 1.0 && b >= 1.0);",packedOpSnippet:"\n return vec4(\n vec4(greaterThanEqual(a, vec4(1.0))) *\n vec4(greaterThanEqual(b, vec4(1.0))));\n",dtype:"bool"}),yP={kernelName:sr,backendName:"webgl",kernelFunc:gP},bP=Iz({opSnippet:"return float(!(x >= 1.0));"}),wP={kernelName:rr,backendName:"webgl",kernelFunc:bP},vP=Tz({opSnippet:"return float(a >= 1.0 || b >= 1.0);",packedOpSnippet:"\n return min(\n vec4(greaterThanEqual(a, vec4(1.0))) +\n vec4(greaterThanEqual(b, vec4(1.0))),\n vec4(1.0));\n",dtype:"bool"}),xP={kernelName:ir,backendName:"webgl",kernelFunc:vP};class AP{constructor(e,t,n,s,r){this.variableNames=["x"],this.outputShape=[];const i=t,a=e[3]-1;let o;this.outputShape=e;const l=`float(${n}) + float(${s}) * sum`;o=.5===r?`inversesqrt(${l})`:1===r?`1.0/(${l})`:`exp(log(${l}) * float(-${r}));`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n int d = coords[3];\n float x = getX(b, r, c, d);\n float sum = 0.0;\n for (int j = -${i}; j <= ${i}; j++) {\n int idx = d + j;\n if (idx >= 0 && idx <= ${a}) {\n float z = getX(b, r, c, idx);\n sum += z * z;\n }\n }\n float val = x * ${o};\n setOutput(val);\n }\n `}}class CP{constructor(e,t,n,s,r){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;const i=t,a=e[3]-1;let o;this.outputShape=e;const l=`float(${n}) + float(${s}) * sum`;o=.5===r?`inversesqrt(${l})`:1===r?`1.0/(${l})`:`exp(log(${l}) * float(-${r}));`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords.x;\n int r = coords.y;\n int c = coords.z;\n int d = coords.w;\n\n bool hasNextCol = d < ${this.outputShape[3]};\n bool hasNextRow = c < ${this.outputShape[2]};\n\n vec4 sum = vec4(0.);\n vec4 xFragAtOutputCoords = getX(b, r, c, d);\n\n vec4 xAtOutputCoords = vec4(\n getChannel(xFragAtOutputCoords, vec2(c, d)),\n hasNextCol ?\n getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0,\n hasNextRow ?\n getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0,\n (hasNextRow && hasNextCol) ?\n getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0\n );\n\n int firstChannel = d - ${i};\n vec2 cache = vec2(0.);\n if(firstChannel >= 0){\n vec4 firstChannelFrag = getX(b, r, c, firstChannel);\n cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel));\n if(hasNextRow){\n cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel));\n }\n }\n\n ivec2 depth = ivec2(d, d + 1);\n for (int j = - ${i}; j <= ${i}; j++) {\n ivec2 idx = depth + j;\n bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0));\n bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${a}));\n\n bool depthInRange = aboveLowerBound.x && belowUpperBound.x;\n bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y;\n\n if(depthInRange || depthPlusOneInRange){\n vec4 z = vec4(0.);\n vec4 xFragAtCurrentDepth;\n z.xz = cache.xy;\n if(depthPlusOneInRange && hasNextCol){\n xFragAtCurrentDepth = idx.y != d ?\n getX(b, r, c, idx.y) : xFragAtOutputCoords;\n z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y));\n if(hasNextRow){\n z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y));\n }\n }\n cache.xy = z.yw;\n sum += z * z;\n }\n }\n vec4 result = xAtOutputCoords * ${o};\n setOutput(result);\n }\n `}}const kP={kernelName:ar,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{depthRadius:i,bias:a,alpha:o,beta:l}=s,u=Sn().getBool("WEBGL_PACK_NORMALIZATION")?new CP(r.shape,i,a,o,l):new AP(r.shape,i,a,o,l);return n.runWebGLProgram(u,[r],r.dtype)}};class SP{constructor(e,t,n,s,r){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=s,this.beta=r,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(${s}) * 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(${s})\n * float(${r})\n * getInputImage(b, r, c, k) * getOutputImage(b, r, c, d)\n / norm;\n if (k == d) {\n dyi += pow(norm, -1.0 * ${r});\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 `}}const _P={kernelName:or,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:s}=e,{x:r,y:i,dy:a}=t,{depthRadius:o,bias:l,alpha:u,beta:c}=s,h=new SP(r.shape,o,l,u,c);return n.runWebGLProgram(h,[r,i,a],r.dtype)}};function EP(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{reductionIndices:i,keepDims:a}=s,o=r.shape.length,l=en(i,r.shape);let u=l;const c=Ih(u,o),h=null!=c,d=n.shouldExecuteOnCPU([r]);let p=r;if(h){if(d){const e=n.texData.get(p.dataId).values,t=new Array(o);for(let e=0;e`Error in maxPool: Either strides or dilations must be 1. Got strides ${a} and dilations '1'`));const u=mc(r.shape,i,a,1,o,l);if(1===u.filterWidth&&1===u.filterHeight&&$t(u.inShape,u.outShape))return yz({inputs:{x:r},backend:n});const c=new TF(u,"max",!1);return n.runWebGLProgram(c,[r],r.dtype)}};const OP={kernelName:dr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{filterSize:i,strides:a,pad:o,dataFormat:l,dimRoundingMode:u}=s,c=gc(r.shape,i,a,[1,1,1],o,u,l),h=new NF(c,"max",!1);return n.runWebGLProgram(h,[r],r.dtype)}};class DP{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideHeight,n=e.strideWidth,s=e.dilationHeight,r=e.effectiveFilterHeight,i=e.effectiveFilterWidth,a=r-1-e.padInfo.top,o=i-1-e.padInfo.left,l=r*i-1;this.userCode=`\n const ivec2 pads = ivec2(${a}, ${o});\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 < ${r};\n wR += ${s}) {\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 < ${i}; 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 = ${l} - int(getMaxPos(b, idyR, idyC, d));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue = wR * ${i} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n setOutput(dotProd);\n }\n `}}class MP{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideDepth,n=e.strideHeight,s=e.strideWidth,r=e.dilationDepth,i=e.dilationHeight,a=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,u=e.effectiveFilterWidth,c=o-1-e.padInfo.front,h=l-1-e.padInfo.top,d=u-1-e.padInfo.left,p=o*l*u-1;this.userCode=`\n const ivec3 pads = ivec3(${c}, ${h}, ${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 < ${o};\n wD += ${r}) {\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 < ${l};\n wR += ${i}) {\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 < ${u};\n wC += ${a}) {\n float dyC = float(dyCCorner + wC) / ${s}.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 * ${l} * ${u} +\n wR * ${u} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n }\n setOutput(dotProd);\n }\n `}}const zP={kernelName:pr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,input:i}=t,a=i,{filterSize:o,strides:l,pad:u,dimRoundingMode:c}=s,h=gc(a.shape,o,l,[1,1,1],u,c),d=new NF(h,"max",!0),p=n.runWebGLProgram(d,[a],a.dtype),f=new MP(h),m=n.runWebGLProgram(f,[r,p],a.dtype);return n.disposeIntermediateTensorInfo(p),m}};const FP={kernelName:hr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,input:i,output:a}=t,o=i;JO([i,a],"maxPoolGrad");const{filterSize:l,strides:u,pad:c,dimRoundingMode:h}=s,d=mc(o.shape,l,u,1,c,h),p=new TF(d,"max",!0),f=n.runWebGLProgram(p,[o],o.dtype),m=new DP(d),g=n.runWebGLProgram(m,[r,f],o.dtype);return n.disposeIntermediateTensorInfo(f),g}};const BP={kernelName:fr,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{x:s}=e,{filterSize:r,strides:i,pad:a,includeBatchInIndex:o}=t,l=n;Gt(4===s.shape.length,(()=>`Error in maxPool: input must be rank 4 but got rank ${s.shape.length}.`));const u=[1,1];Gt(Sc(i,u),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`));const c=mc(s.shape,r,i,u,a),[h,d]=function(e,t,n,s){let r=new TF(n,"max",!1);const i=s.runWebGLProgram(r,[e],"float32");return r=new TF(n,"max",!0,!0,t),[i,s.runWebGLProgram(r,[e],"float32")]}(s,o,c,l);return[h,d]}};const LP={kernelName:mr,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{x:s}=e,{keepDims:r,axis:i}=t,a=n,o=s.shape.length,l=en(i,s.shape);let u=l;const c=Ih(u,o),h=null!=c,d=a.shouldExecuteOnCPU([s]),p=[];let f=s;if(h){if(d){const e=a.texData.get(f.dataId).values,t=new Array(o);for(let e=0;et[0]+e[n]+t[1]));const s=e.length,r=bD(s),i=t.map((e=>e[0])).join(","),a=t.map(((t,n)=>t[0]+e[n])).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,s),l="reflect"===n?0:1;this.userCode=1!==s?`\n ${r} start = ${r}(${i});\n ${r} end = ${r}(${a});\n\n void main() {\n ${r} outC = getOutputCoords();\n for (int i = 0; i < ${s}; i++) {\n if (outC[i] < start[i]) {\n outC[i] = start[i] * 2 - outC[i] - ${l};\n } else if(outC[i] >= end[i]) {\n outC[i] = (end[i] - 1) * 2 - outC[i] + ${l};\n }\n }\n ${r} coords = outC - start;\n setOutput(getX(${o}));\n }\n `:`\n int start = ${i};\n int end = ${a};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start) {\n outC = start * 2 - outC - ${l};\n } else if(outC >= end) {\n outC = (end - 1) * 2 - outC + ${l};\n }\n setOutput(getX(outC - start));\n }\n `}}class jP{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const s=e.length,r=bD(s),i=t.map((e=>e[0])).join(","),a=t.map(((t,n)=>t[0]+e[n])).join(","),o=UM("rc",s),l=UM("source",s),u=`${o[s-1]} < ${this.outputShape[s-1]}`,c=1===s?"source":`vec2(${l.slice(-2).join()})`,h="reflect"===n?0:1;let d="";if(1===s){const e=`\n ${r} source = rc;\n if (source < start) {\n source = start * 2 - source - ${h};\n } else if (source >= end) {\n source = (end - 1) * 2 - source + ${h};\n }\n source -= start;\n `;d=`\n ${r} rc = outputLoc;\n ${e}\n result[0] = getChannel(getX(${l.join()}), ${c});\n ${o[s-1]} += 1;\n if(${u}) {\n ${e}\n result[1] = getChannel(getX(${l.join()}), ${c});\n }\n `}else{const e=`\n ${r} source = rc;\n ${r} lt = ${r}(lessThan(source, start));\n ${r} gte = ${r}(greaterThanEqual(source, end));\n ${r} orig = 1 - (lt + gte);\n source = orig * source +\n lt * (start * 2 - source - ${h}) +\n gte * ((end - 1) * 2 - source + ${h});\n source -= start;\n `;d=`\n ${r} rc = outputLoc;\n ${e}\n result[0] = getChannel(getX(${l.join()}), ${c});\n ${o[s-1]} += 1;\n if(${u}) {\n ${e}\n result[1] = getChannel(getX(${l.join()}), ${c});\n }\n rc = outputLoc;\n ${o[s-2]} += 1;\n if(${o[s-2]} < ${this.outputShape[s-2]}) {\n ${e}\n result[2] = getChannel(getX(${l.join()}), ${c});\n ${o[s-1]} += 1;\n if(${u}) {\n ${e}\n result[3] = getChannel(getX(${l.join()}), ${c});\n }\n }\n `}this.userCode=`\n const ${r} start = ${r}(${i});\n const ${r} end = ${r}(${a});\n\n void main() {\n ${r} outputLoc = getOutputCoords();\n vec4 result = vec4(0.);\n ${d}\n setOutput(result);\n }\n `}}const GP={kernelName:br,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:s}=e,{paddings:r,mode:i}=n,a=Sn().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new jP(s.shape,r,i):new WP(s.shape,r,i);return t.runWebGLProgram(a,[s],s.dtype)}},qP=Tz({opSnippet:"if (b == 0.0) return NAN;\n return mod(a, b);",packedOpSnippet:"\n vec4 result = mod(a, b);\n bvec4 isNaN = equal(b, vec4(0.0));\n "+mz+"\n return result;\n"}),HP={kernelName:wr,backendName:"webgl",kernelFunc:qP};class KP{constructor(e,t,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,n],this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n\n float r = random(seed);\n float cdf = 0.0;\n\n for (int i = 0; i < ${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 `}}const $P=Tz({opSnippet:"\nif (a == b) {\n return 1.0;\n};\nreturn a / b;",packedOpSnippet:"\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",checkOutOfBounds:!0}),XP={kernelName:_s,backendName:"webgl",kernelFunc:$P},ZP="return a - b;",YP=Tz({opSnippet:ZP,packedOpSnippet:ZP,supportsComplex:!0,cpuKernelImpl:MM}),QP={kernelName:ki,backendName:"webgl",kernelFunc:YP};function JP(e){const{inputs:t,backend:n,attrs:s}=e,{logits:r}=t,{dim:i}=s,a=en([i],r.shape),o=EP({inputs:{x:r},backend:n,attrs:{reductionIndices:a,keepDims:!1}}),l=_h(o.shape,a),u=Bz({inputs:{x:o},backend:n,attrs:{shape:l}}),c=YP({inputs:{a:r,b:u},backend:n}),h=bL({inputs:{x:c},backend:n}),d=qz({inputs:{x:h},backend:n,attrs:{axis:a,keepDims:!1}}),p=Bz({inputs:{x:d},backend:n,attrs:{shape:l}}),f=$P({inputs:{a:h,b:p},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),f}const eU={kernelName:hi,backendName:"webgl",kernelFunc:JP};const tU={kernelName:vr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{logits:r}=t,{numSamples:i,seed:a,normalized:o}=s,l=o?r:JP({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],c=l.shape[1],h=new KP(u,c,i),d=[[a]],p=n.runWebGLProgram(h,[l],"int32",d);return o||n.disposeIntermediateTensorInfo(l),p}},nU=$M+"\n return -x;\n";const sU={kernelName:Ar,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:s}=t;if(n.shouldExecuteOnCPU([s])){const e=n.texData.get(s.dataId),[t,r]=pM(e.values,s.shape,s.dtype);return n.makeTensorInfo(r,s.dtype,t)}let r;return r=Sn().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new oz(s.shape,"\n vec4 result = -x;\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n"):new KM(s.shape,nU),n.runWebGLProgram(r,[s],s.dtype)}},rU=Of;const iU={kernelName:kr,backendName:"webgl",kernelFunc:function(e){Vi();const{inputs:t,backend:n,attrs:s}=e,{boxes:r,scores:i}=t,{maxOutputSize:a,iouThreshold:o,scoreThreshold:l}=s,u=n.readSync(r.dataId),c=n.readSync(i.dataId),{selectedIndices:h}=rU(u,c,a,o,l);return n.makeTensorInfo([h.length],"int32",new Int32Array(h))}},aU=Df;const oU={kernelName:Sr,backendName:"webgl",kernelFunc:function(e){Vi();const{inputs:t,backend:n,attrs:s}=e,{boxes:r,scores:i}=t,{maxOutputSize:a,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:u}=s,c=n.readSync(r.dataId),h=n.readSync(i.dataId),{selectedIndices:d,validOutputs:p}=aU(c,h,a,o,l,u);return[n.makeTensorInfo([d.length],"int32",new Int32Array(d)),n.makeTensorInfo([],"int32",new Int32Array([p]))]}},lU=Mf;const uU={kernelName:_r,backendName:"webgl",kernelFunc:function(e){Vi();const{inputs:t,backend:n,attrs:s}=e,{boxes:r,scores:i}=t,{maxOutputSize:a,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=s,c=n.readSync(r.dataId),h=n.readSync(i.dataId),d=a,p=o,f=l,m=u,{selectedIndices:g,selectedScores:y}=lU(c,h,d,p,f,m);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([y.length],"float32",new Float32Array(y))]}};class cU{constructor(e,t,n,s){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(${s}), float(${n}),\n float(index == coords.y)));\n }\n `}}const hU={kernelName:Ir,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:s}=e,{indices:r}=t,{dtype:i,depth:a,onValue:o,offValue:l}=s,u=Kt(r.shape),c=new cU(u,a,o,l),h=Bz({inputs:{x:r},backend:n,attrs:{shape:[u]}}),d=n.runWebGLProgram(c,[h],i);n.disposeIntermediateTensorInfo(h);const p=Bz({inputs:{x:d},backend:n,attrs:{shape:[...r.shape,a]}});return n.disposeIntermediateTensorInfo(d),p}};function dU(e){const{inputs:t,backend:n}=e,{x:s}=t;if("complex64"===s.dtype){const e=QF({inputs:{input:s},backend:n}),t=dU({inputs:{x:e},backend:n}),r=fB({inputs:{input:s},backend:n}),i=dU({inputs:{x:r},backend:n}),a=wz({inputs:{real:t,imag:i},backend:n});return n.disposeIntermediateTensorInfo(e),n.disposeIntermediateTensorInfo(t),n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(i),a}return TL({attrs:{shape:s.shape,dtype:s.dtype,value:"string"===s.dtype?"":0},backend:n})}const pU={kernelName:Mi,backendName:"webgl",kernelFunc:dU};const fU={kernelName:Er,backendName:"webgl",kernelFunc:function e(t){const{inputs:n,backend:s}=t,{x:r}=n;if("string"===r.dtype)throw new Error("onesLike is not supported under string dtype");if("complex64"===r.dtype){const t=QF({inputs:{input:r},backend:s}),n=e({inputs:{x:t},backend:s}),i=fB({inputs:{input:r},backend:s}),a=dU({inputs:{x:i},backend:s}),o=wz({inputs:{real:n,imag:a},backend:s});return s.disposeIntermediateTensorInfo(t),s.disposeIntermediateTensorInfo(n),s.disposeIntermediateTensorInfo(i),s.disposeIntermediateTensorInfo(a),o}return TL({attrs:{shape:r.shape,dtype:r.dtype,value:1},backend:s})}};const mU={kernelName:Tr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{axis:r}=s;if(1===t.length)return vL({inputs:{input:t[0]},backend:n,attrs:{dim:r}});const i=t[0].shape,a=t[0].dtype;t.forEach((e=>{qt(i,e.shape,"All tensors passed to stack must have matching shapes"),Gt(a===e.dtype,(()=>"All tensors passed to stack must have matching dtypes"))}));const o=[],l=yB({inputs:t.map((e=>{const t=vL({inputs:{input:e},backend:n,attrs:{dim:r}});return o.push(t),t})),backend:n,attrs:{axis:r}});return o.forEach((e=>n.disposeIntermediateTensorInfo(e))),l}};class gU{constructor(e,t,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const s=e.length,r=bD(s),i=t.map((e=>e[0])).join(","),a=t.map(((t,n)=>t[0]+e[n])).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,s);this.userCode=1!==s?`\n ${r} start = ${r}(${i});\n ${r} end = ${r}(${a});\n\n void main() {\n ${r} outC = getOutputCoords();\n if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n setOutput(value);\n } else {\n ${r} coords = outC - start;\n setOutput(getX(${o}));\n }\n }\n `:`\n int start = ${i};\n int end = ${a};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start || outC >= end) {\n setOutput(value);\n } else {\n setOutput(getX(outC - start));\n }\n }\n `}}class yU{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const s=e.length,r=bD(s),i=t.map((e=>e[0])).join(","),a=t.map(((t,n)=>t[0]+e[n])).join(","),o=UM("rc",s),l=UM("source",s),u=`${o[s-1]} < ${this.outputShape[s-1]}`,c=1===s?"source":`vec2(${l.slice(-2).join()})`,h=[`${r} rc = outputLoc;`,`${o[s-1]} += 1;\n if(${u}) {\n `,1===s?"":`}\n rc = outputLoc;\n ${o[s-2]} += 1;\n if(${o[s-2]} < ${this.outputShape[s-2]}) {`,1===s?"":` ${o[s-1]} += 1;\n if(${u}) {`],d=1===s?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))";let p="";for(let e=0,t=1===s?2:4;e{const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{paddings:i,constantValue:a}=s;if(0===Kt(r.shape)){const e=i.map(((e,t)=>e[0]+r.shape[t]+e[1]));return TL({backend:n,attrs:{shape:e,value:a,dtype:r.dtype}})}const o=Sn().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new yU(r.shape,i,a):new gU(r.shape,i,a),l=[[a]];return n.runWebGLProgram(o,[r],r.dtype,l)},wU={kernelName:Nr,backendName:"webgl",kernelFunc:bU},vU=Tz({opSnippet:"\n if(a < 0.0 && floor(b) < b){\n return NAN;\n }\n if (b == 0.0) {\n return 1.0;\n }\n return (round(mod(b, 2.0)) != 1) ?\n pow(abs(a), b) : sign(a) * pow(abs(a), b);\n",packedOpSnippet:"\n // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise.\n vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1)));\n vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1);\n vec4 result = multiplier * pow(abs(a), b);\n\n // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS\n bvec4 isExpZero = equal(b, vec4(0.0));\n result.r = isExpZero.r ? 1.0 : result.r;\n result.g = isExpZero.g ? 1.0 : result.g;\n result.b = isExpZero.b ? 1.0 : result.b;\n result.a = isExpZero.a ? 1.0 : result.a;\n\n bvec4 isNaN1 = lessThan(a, vec4(0.0));\n bvec4 isNaN2 = lessThan(floor(b), b);\n bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w);\n "+mz+"\n return result;\n"}),xU={kernelName:Rr,backendName:"webgl",kernelFunc:vU};const AU={kernelName:Dr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i,keepDims:a}=s,o=r.shape.length,l=[],u=en(i,r.shape);let c=u;const h=Ih(c,o);let d,p=r;if(null!=h&&(p=Kz({inputs:{x:r},backend:n,attrs:{perm:h}}),c=Nh(c.length,o),l.push(p)),Eh("prod",c,o),n.shouldExecuteOnCPU([p])){const e=n.texData.get(p.dataId).values,{outVals:t,outShape:s,outDtype:r}=mM(p.shape,p.dtype,e,c);d=n.makeTensorInfo(s,r,t)}else{const[e,t]=Sh(p.shape,c),s=Kt(t),i=Bz({inputs:{x:p},backend:n,attrs:{shape:[-1,s]}}),a=Vz(i,Ga(r.dtype),"prod",n);d=Bz({inputs:{x:a},backend:n,attrs:{shape:e}}),l.push(i),l.push(a)}if(a){l.push(d);const e=_h(d.shape,u);d=Bz({inputs:{x:d},backend:n,attrs:{shape:e}})}return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),d}};const CU={kernelName:Mr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{paramsNestedSplits:r,paramsDenseValues:i,indices:a}=t,{outputRaggedRank:o}=s,l=r.map((e=>n.readSync(e.dataId))),u=r.map((e=>e.shape)),c=n.readSync(i.dataId),h=n.readSync(a.dataId),[d,p,f]=gM(l,u,c,i.shape,i.dtype,h,a.shape,o),m=d.map((e=>n.makeTensorInfo([e.length],"int32",e))),g=n.makeTensorInfo(f,i.dtype,p);return m.concat([g])}};const kU={kernelName:zr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{starts:s,limits:r,deltas:i}=t,a=n.readSync(s.dataId),o=n.readSync(r.dataId),l=n.readSync(i.dataId),[u,c]=yM(a,s.shape,s.dtype,o,r.shape,l,i.shape);return[n.makeTensorInfo([u.length],"int32",u),n.makeTensorInfo([c.length],s.dtype,c)]}};const SU={kernelName:Fr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{shape:r,values:i,defaultValue:a,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=s,u=n.readSync(r.dataId),c=n.readSync(i.dataId),h=n.readSync(a.dataId),d=o.map((e=>n.readSync(e.dataId))),p=o.map((e=>e.shape)),[f,m]=bM(u,r.shape,c,i.shape,i.dtype,h,a.shape,d,p,l);return n.makeTensorInfo(f,i.dtype,m)}},_U=e=>{const{backend:t,attrs:n}=e,{start:s,stop:r,step:i,dtype:a}=n,o=wM(s,r,i,a);return t.makeTensorInfo([o.length],a,o)},EU={kernelName:Br,backendName:"webgl",kernelFunc:_U},IU=Iz({opSnippet:"return 1.0 / x;"}),TU={kernelName:Pr,backendName:"webgl",kernelFunc:IU},NU=Iz({opSnippet:$M+"\n return (x < 0.0) ? 0.0 : x;\n",packedOpSnippet:"\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"}),RU={kernelName:Ur,backendName:"webgl",kernelFunc:NU},OU=Iz({opSnippet:$M+"\n return (x < 0.0) ? 0.0 : min(6.0, x);\n",packedOpSnippet:"\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"}),DU={kernelName:Hr,backendName:"webgl",kernelFunc:OU};class MU{constructor(e,t,n,s,r){this.variableNames=["A"],this.outputShape=[];const[i,a,o,l]=e;this.outputShape=[i,t,n,l];const u=[s&&t>1?a-1:a,s&&n>1?o-1:o],c=[s&&t>1?t-1:t,s&&n>1?n-1:n];let h;h=r?"(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":"vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${u[0]/c[0]},\n ${u[1]/c[1]});\n const vec2 inputShapeRC = vec2(${a}.0, ${o}.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 = ${h};\n\n // Compute the four integer indices.\n ivec2 sourceFloorRC = ivec2(max(sourceFracIndexRC, vec2(0.0)));\n ivec2 sourceCeilRC = ivec2(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d);\n float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d);\n float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d);\n float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d);\n\n vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\n\n float top = topLeft + (topRight - topLeft) * fracRC.y;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\n float newValue = top + (bottom - top) * fracRC.x;\n\n setOutput(newValue);\n }\n `}}class zU{constructor(e,t,n,s,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];const[i,a,o,l]=e;this.outputShape=[i,t,n,l];const u=[s&&t>1?a-1:a,s&&n>1?o-1:o],c=[s&&t>1?t-1:t,s&&n>1?n-1:n];let h;h=r?"(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":"vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=`\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${u[0]/c[0]},\n ${u[1]/c[1]},\n ${u[1]/c[1]});\n const vec3 inputShapeRC = vec3(${a}.0, ${o}.0,\n ${o}.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 = ${h};\n\n // Compute the four integer indices.\n ivec3 sourceFloorRC = ivec3(max(sourceFracIndexRC, vec3(0.0)));\n ivec3 sourceCeilRC = ivec3(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < ${l-1};\n bool hasNextRow = coords.z < ${n-1};\n\n // In parallel, construct four corners for all four components in\n // packed 2x2 cell.\n vec4 topLeft = vec4(\n getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 bottomLeft = vec4(\n getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 topRight = vec4(\n getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec4 bottomRight = vec4(\n getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC);\n\n vec4 top = mix(topLeft, topRight, fracRC.yyzz);\n vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz);\n vec4 newValue = mix(top, bottom, fracRC.x);\n\n setOutput(newValue);\n }\n `}}const FU={kernelName:Gr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{images:r}=t,{alignCorners:i,halfPixelCenters:a,size:o}=s,[l,u]=o,c=Sn().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new zU(r.shape,l,u,i,a):new MU(r.shape,l,u,i,a);return n.runWebGLProgram(c,[r],"float32")}};class BU{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;const[,s,r]=t,[,i,a]=e,o=[n&&i>1?s-1:s,n&&a>1?r-1:r],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],u=o[0]/l[0],c=o[1]/l[1],h=1/u,d=1/c,p=2*Math.ceil(h)+2,f=2*Math.ceil(d)+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(${u});\n const float widthScale = float(${c});\n\n const float invHeightScale = float(${h});\n const float invWidthScale = float(${d});\n\n const int winHeight = int(${p});\n const int winWidth = int(${f});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(startRLerp - float(winHeight / 2));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(startCLerp - float(winWidth / 2));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${i}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${a}) {\n continue;\n }\n\n float dxR = float(dyR) * heightScale;\n int topDxRIndex = int(floor(dxR));\n int bottomDxRIndex = int(min(ceil(dxR), ${s-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), ${r-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 `}}const LU={kernelName:qr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{images:r,dy:i}=t,{alignCorners:a}=s,o=new BU(i.shape,r.shape,a);return n.runWebGLProgram(o,[i],i.dtype)}};class PU{constructor(e,t,n,s,r){this.variableNames=["A"],this.outputShape=[];const[i,a,o,l]=e;this.outputShape=[i,t,n,l];const u=[s&&t>1?a-1:a,s&&n>1?o-1:o],c=[s&&t>1?t-1:t,s&&n>1?n-1:n],h=s?"0.5":"0.0";let d;d=r?"max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":"vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${u[0]/c[0]},\n ${u[1]/c[1]});\n const vec2 inputShapeRC = vec2(${a}.0, ${o}.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 = ${d};\n\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestRC = ivec2(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${h})));\n float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\n\n setOutput(newValue);\n }\n `}}class UU{constructor(e,t,n,s,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];const[i,a,o,l]=e;this.outputShape=[i,t,n,l];const u=[s&&t>1?a-1:a,s&&n>1?o-1:o],c=[s&&t>1?t-1:t,s&&n>1?n-1:n],h=s?"0.5":"0.0";let d;d=r?"max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":"vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=`\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${u[0]/c[0]},\n ${u[1]/c[1]},\n ${u[1]/c[1]});\n const vec3 inputShapeRC = vec3(${a}.0, ${o}.0,\n ${o}.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 = ${d};\n\n // Compute the coordinators of nearest neighbor point.\n ivec3 sourceNearestRC = ivec3(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${h})));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < ${l-1};\n bool hasNextRow = coords.z < ${n-1};\n\n vec4 newValue = vec4(\n getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d),\n hasNextCol ? getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d + 1) : 0.0);\n\n setOutput(newValue);\n }\n `}}const VU={kernelName:Wr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{images:r}=t,{alignCorners:i,halfPixelCenters:a,size:o}=s,[l,u]=o,c=Sn().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new UU(r.shape,l,u,i,a):new PU(r.shape,l,u,i,a);return n.runWebGLProgram(c,[r],r.dtype)}};class WU{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;const[,s,r]=t,[,i,a]=e,o=[n&&i>1?s-1:s,n&&a>1?r-1:r],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],u=o[0]/l[0],c=o[1]/l[1],h=1/u,d=1/c,p=2*Math.ceil(h)+2,f=2*Math.ceil(d)+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(${u});\n const float widthScale = float(${c});\n\n const float invHeightScale = float(${h});\n const float invWidthScale = float(${d});\n\n const int winHeight = int(${p});\n const int winWidth = int(${f});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(floor(startRLerp - float(winHeight / 2)));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(floor(startCLerp - float(winWidth / 2)));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${i}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${a}) {\n continue;\n }\n\n float sourceFracRow =\n float(${o[0]}) *\n (float(dyR) / float(${l[0]}));\n\n float sourceFracCol =\n float(${o[1]}) *\n (float(dyC) / float(${l[1]}));\n\n int sourceNearestRow = int(min(\n float(int(${s}) - 1),\n ${n} ? float(round(sourceFracRow)) :\n float(floor(sourceFracRow))));\n\n int sourceNearestCol = int(min(\n float(int(${r}) - 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 `}}const jU={kernelName:jr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{images:r,dy:i}=t,{alignCorners:a}=s,o=new WU(i.shape,r.shape,a);return n.runWebGLProgram(o,[i],i.dtype)}};class GU{constructor(e,t){this.variableNames=["x"];const 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)return void(this.userCode=`\n void main() {\n int coord = getOutputCoords();\n setOutput(getX(${e[0]} - coord - 1));\n }\n `);const s=e.map(((n,s)=>(n=>-1!==t.indexOf(n)&&1!==e[n]?`${e[n]} - coords[${n}] - 1`:`coords[${n}]`)(s))).join(","),r=bD(n);this.userCode=`\n void main() {\n ${r} coords = getOutputCoords();\n setOutput(getX(${s}));\n }\n `}}class qU{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;const n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;const s=UM("rc",n),r=`${s[n-1]} + 1 < ${this.outputShape[n-1]}`,i=`${s[n-2]} + 1 < ${this.outputShape[n-2]}`,a=bD(n);function o(n){const s=e.map(((s,r)=>function(n,s){return-1!==t.indexOf(n)&&1!==e[n]?`${e[n]} - ${s[n]} - 1`:`${s[n]}`}(r,n)));return`getChannel(getX(${s.join(",")}), vec2(${s.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(${r}){\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 ${a} rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = ${function(e){return o(e)}(s.slice())};\n if(${r}){\n result.g = ${function(e){return e[n-1]="("+e[n-1]+" + 1)",o(e)}(s.slice())};\n }\n if(${i}) {\n result.b = ${function(e){return e[n-2]="("+e[n-2]+" + 1)",o(e)}(s.slice())};\n if(${r}) {\n result.a = ${function(e){return e[n-1]="("+e[n-1]+" + 1)",e[n-2]="("+e[n-2]+" + 1)",o(e)}(s.slice())};\n }\n }\n setOutput(result);\n }\n `}}const HU={kernelName:Kr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{dims:i}=s,a=r.shape.length,o=en(i,r.shape);if(0===a)return yz({inputs:{x:r},backend:n});const l=Sn().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new qU(r.shape,o):new GU(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}};class KU{constructor(e,t){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];const n=e[1],s=e[2];this.outputShape=e;let r="";r="number"==typeof t?`float outputValue = ${t.toFixed(2)};`:`\n vec3 fill = vec3(${t.join(",")});\n float outputValue = fill[coords[3]];`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n int y = coords[1];\n float coordXFloat = (float(x) - params[0]) * params[3] -\n (float(y) - params[1]) * params[2];\n float coordYFloat = (float(x) - params[0]) * params[2] +\n (float(y) - params[1]) * params[3];\n int coordX = int(round(coordXFloat + params[0]));\n int coordY = int(round(coordYFloat + params[1]));\n ${r}\n if(coordX >= 0 && coordX < ${s} && coordY >= 0 && coordY < ${n}) {\n outputValue = getImage(coords[0], coordY, coordX, coords[3]);\n }\n setOutput(outputValue);\n }\n `}}const $U={kernelName:Bi,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{image:s}=e,{radians:r,fillValue:i,center:a}=t,o=n,l=new KU(s.shape,i),[u,c]=zm(a,s.shape[1],s.shape[2]),h=[[u,c,Math.sin(r),Math.cos(r)]];return o.runWebGLProgram(l,[s],s.dtype,h)}},XU=Iz({opSnippet:"\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"}),ZU={kernelName:$r,backendName:"webgl",kernelFunc:XU},YU=Iz({opSnippet:"return inversesqrt(x);",cpuKernelImpl:vM}),QU={kernelName:Xr,backendName:"webgl",kernelFunc:YU};class JU{constructor(e,t,n,s,r,i,a=!0,o=!1){this.variableNames=["updates","indices","defaultValue"],this.outputShape=i;const l=bD(r.length),u=bD(i.length);let c="";1===n?c="i":2===n&&(c="i, j");const h=`getIndices(${c})`;let d="";1===s?d="i":2===s&&(d="i, coords[1]");const p=`getUpdates(${d})`;let f="";o&&(f="coords[0], coords[1]");const m=`getDefaultValue(${f})`,g=t>1?"strides[j]":"strides";this.userCode=`\n ${l} strides = ${l}(${r});\n\n void main() {\n ${u} 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(${h});\n flattenedIndex += index * ${g};\n }\n if (flattenedIndex == coords[0]) {\n sum += ${p};\n found = true;\n }\n }\n setOutput(mix(${m}, sum, float(found)));\n }\n `}}class eV{constructor(e,t,n,s,r,i,a=!0,o=!1){this.variableNames=["updates","indices","defaultValue"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=i;const l=bD(r.length),u=bD(i.length);let c="";1===n?c="i":2===n&&(c="i, j");const h=`getIndices(${c})`;let d="";1===s?d="i":2===s&&(d="i, coords[1]");const p=`getUpdates(${d})`;let f="";o&&(f="coords[0], coords[1]");const m=`getDefaultValue(${f})`,g=t>1?"strides[j]":"strides",y=t>1?"strides[j + 1]":"strides";this.userCode=`\n ${l} strides = ${l}(${r});\n\n void main() {\n ${u} coords = getOutputCoords();\n vec4 sum = vec4(0.);\n vec4 found = vec4(0.);\n for (int i = 0; i < ${e}; i+=2) {\n ivec2 flattenedIndex = ivec2(0);\n for (int j = 0; j < ${t}; j+=2) {\n ivec4 index = round(${h});\n flattenedIndex += index.xz * ${g};\n if (j + 1 < ${t}) {\n flattenedIndex += index.yw * ${y};\n }\n }\n if (flattenedIndex[0] == coords[0] || flattenedIndex[1] == coords[0] ||\n flattenedIndex[0] == coords[0] + 1 || flattenedIndex[1] == coords[0] + 1) {\n vec4 updVals = ${p};\n if (flattenedIndex[0] == coords[0]) {\n sum.xy += updVals.xy;\n found.xy = vec2(1.);\n } else if (flattenedIndex[0] == coords[0] + 1) {\n sum.zw += updVals.xy;\n found.zw = vec2(1.);\n }\n if (flattenedIndex[1] == coords[0]) {\n sum.xy += updVals.zw;\n found.xy = vec2(1.);\n } else if (flattenedIndex[1] == coords[0] + 1) {\n sum.zw += updVals.zw;\n found.zw = vec2(1.);\n }\n }\n }\n setOutput(mix(${m}, sum, found));\n }\n `}}const tV={kernelName:Zr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{indices:r,updates:i}=t,{shape:a}=s,{sliceRank:o,numUpdates:l,sliceSize:u,strides:c,outputSize:h}=Vp(0,r,a),d=[h/u,u];if(0===h)return n.makeTensorInfo(a,r.dtype);const p=Bz({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),f=Bz({inputs:{x:i},backend:n,attrs:{shape:[l,u]}}),m=n.makeTensorInfo([],"float32",new Float32Array([0]));let g;g=Sn().getBool("WEBGL_PACK")?new eV(l,o,p.shape.length,f.shape.length,c,d):new JU(l,o,p.shape.length,f.shape.length,c,d);const y=n.runWebGLProgram(g,[f,p,m],f.dtype),b=Bz({inputs:{x:y},backend:n,attrs:{shape:a}});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(m),b}};class nV{constructor(e,t,n,s){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[e,n];const r=`for (int i = 0; i < ${Math.ceil(Math.log2(t+1))}; ++i) { if (left >= right) break;`,i=2===Sn().getNumber("WEBGL_VERSION")?"while (left < right) {":r,a="left"===s?"<":"<=";this.userCode=`\n int findBound(int batch, float value) {\n int left = 0;\n int right = numInputs;\n int mid;\n ${i}\n mid = (left + right) / 2;\n if (getSortedSequence(batch, mid) ${a} value) {\n left = mid + 1;\n } else {\n right = mid;\n }\n }\n return right;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int valueIndex = coords[1];\n\n float value = getValues(batch, valueIndex);\n\n setOutput(float(findBound(batch, value)));\n }\n `}}const sV={kernelName:Qr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{sortedSequence:r,values:i}=t,{side:a}=s,o=new nV(r.shape[0],r.shape[1],i.shape[1],a),l=[[r.shape[1]]];return n.runWebGLProgram(o,[r,i],"int32",l)}};class rV{constructor(e,t,n){let s,r;if(this.variableNames=["c","a","b"],this.outputShape=t,n>4)throw Error(`Where for rank ${n} is not yet supported`);if(1===n)r="resRC",s="resRC";else{const n=["resRC.x","resRC.y","resRC.z","resRC.w"],i=[],a=[];for(let s=0;s= 1.0) {\n setOutput(getA(${r}));\n } else {\n setOutput(getB(${r}));\n }\n }\n `}}const iV={kernelName:Jr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{condition:s,t:r,e:i}=t,a=new rV(s.shape.length,r.shape,r.shape.length);return n.runWebGLProgram(a,[s,r,i],ja(r.dtype,i.dtype))}},aV=Iz({opSnippet:`\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n // see: https://arxiv.org/abs/1706.02515\n float scaleAlpha = ${Wm};\n float scale = ${jm};\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n`}),oV={kernelName:ei,backendName:"webgl",kernelFunc:aV},lV=Iz({opSnippet:Ez+"\n return 1.0 / (1.0 + exp(-1.0 * x));\n",packedOpSnippet:"\n vec4 result = 1.0 / (1.0 + exp(-1.0 * x));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n",cpuKernelImpl:AM}),uV={kernelName:ii,backendName:"webgl",kernelFunc:lV},cV=Iz({opSnippet:"\n if (isnan(x)) { return 0.0; }\n return sign(x);\n"}),hV={kernelName:ri,backendName:"webgl",kernelFunc:cV},dV=Iz({opSnippet:Ez+"\n return sin(x);\n",packedOpSnippet:`\n vec4 result = sin(x);\n bvec4 isNaN = isnan(x);\n ${mz}\n return result;\n`}),pV={kernelName:ni,backendName:"webgl",kernelFunc:dV},fV=Iz({opSnippet:"\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n"}),mV={kernelName:si,backendName:"webgl",kernelFunc:fV},gV=Iz({opSnippet:"\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"}),yV={kernelName:ai,backendName:"webgl",kernelFunc:gV},bV={kernelName:ui,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{blockShape:i,paddings:a}=s;Gt(r.shape.length<=4,(()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet"));const o=i.reduce(((e,t)=>e*t)),l=[[0,0]];l.push(...a);for(let e=1+i.length;en.disposeIntermediateTensorInfo(e))),g}};const wV={kernelName:di,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{indices:s,values:r,denseShape:i,defaultValue:a}=t;if(1!==i.shape.length)throw new Error(`Dense shape must be a vector, saw:\n ${i.shape}`);if(2!==s.shape.length)throw new Error(`Indices must be a matrix, saw:\n ${s.shape}`);if(1!==r.shape.length)throw new Error(`Values must be a vector, saw:\n ${r.shape}`);if(0!==a.shape.length)throw new Error(`Default value must be a scalar, saw:\n ${a.shape}`);const o=n.readSync(s.dataId),l=n.readSync(r.dataId),u=n.readSync(i.dataId),c=n.readSync(a.dataId)[0],[h,d,p,f,m]=SM(o,s.shape,s.dtype,l,r.dtype,u,c);return[n.makeTensorInfo(d,s.dtype,h),n.makeTensorInfo([d[0]],r.dtype,p),n.makeTensorInfo([f.length],"bool",new Uint8Array(f.map((e=>Number(e))))),n.makeTensorInfo([m.length],s.dtype,new Int32Array(m))]}};const vV={kernelName:pi,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{inputIndices:s,inputShape:r,newShape:i}=t;if(2!==s.shape.length)throw new Error(`Input indices should be a matrix but received shape ${s.shape}`);if(1!==r.shape.length)throw new Error(`Input shape should be a vector but received shape ${r.shape}`);if(1!==i.shape.length)throw new Error(`Target shape should be a vector but received shape ${i.shape}`);const a=Array.from(n.readSync(r.dataId)),o=n.readSync(s.dataId),l=Array.from(n.readSync(i.dataId)),[u,c,h]=_M(o,s.shape,s.dtype,a,l);return[n.makeTensorInfo(c,s.dtype,u),n.makeTensorInfo([h.length],i.dtype,new Int32Array(h))]}};const xV={kernelName:fi,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{data:s,indices:r,segmentIds:i}=t;if(s.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(1!==r.shape.length)throw new Error(`Indices should be a vector but received shape\n ${r.shape}`);if(1!==i.shape.length)throw new Error(`Segment ids should be a vector but received shape\n ${i.shape}`);const a=n.readSync(s.dataId),o=n.readSync(r.dataId),l=n.readSync(i.dataId),[u,c]=EM(a,s.shape,s.dtype,o,l,!0);return n.makeTensorInfo(c,s.dtype,u)}};const AV={kernelName:mi,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{data:s,indices:r,segmentIds:i}=t;if(s.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(1!==r.shape.length)throw new Error(`Indices should be a vector but received shape\n ${r.shape}`);if(1!==i.shape.length)throw new Error(`Segment ids should be a vector but received shape\n ${i.shape}`);const a=n.readSync(s.dataId),o=n.readSync(r.dataId),l=n.readSync(i.dataId),[u,c]=EM(a,s.shape,s.dtype,o,l);return n.makeTensorInfo(c,s.dtype,u)}};const CV={kernelName:gi,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{sparseIndices:r,sparseValues:i,defaultValue:a}=t,{outputShape:o}=s,{sliceRank:l,numUpdates:u,sliceSize:c,strides:h,outputSize:d}=Vp(0,r,o),p=!1;if("string"===i.dtype){const e=n.bufferSync(r),t=n.bufferSync(i),s=ga(n.readSync(a.dataId)[0]),f=xM(e,t,o,d,c,u,l,h,s,p);return n.makeTensorInfo(o,f.dtype,f.values)}const f=new JU(u,l,r.shape.length,i.shape.length,h,[d,1],p),m=n.runWebGLProgram(f,[i,r,a],i.dtype),g=Bz({inputs:{x:m},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(m),g}};const kV={kernelName:ci,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{numOrSizeSplits:i,axis:a}=s,o=en(a,r.shape)[0],l=fg(r,i,o),u=r.shape.length,c=new Array(u).fill(0),h=r.shape.slice();return l.map((e=>{const t=[...h];t[o]=e;const s=GF({inputs:{x:r},backend:n,attrs:{begin:c,size:t}});return c[o]+=e,s}))}},SV="return sqrt(x);",_V=Iz({opSnippet:SV,packedOpSnippet:SV,cpuKernelImpl:IM}),EV={kernelName:oi,backendName:"webgl",kernelFunc:_V},IV={kernelName:bi,backendName:"webgl",kernelFunc:Iz({opSnippet:"return x * x;"})},TV="return (a - b) * (a - b);",NV=Tz({opSnippet:TV,packedOpSnippet:TV}),RV={kernelName:yi,backendName:"webgl",kernelFunc:NV};const OV={kernelName:wi,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t;if("string"!==r.dtype)throw new Error("Input must be of datatype string");const i=Ng(n.readSync(r.dataId)),a=TM(i,"string",s);return n.makeTensorInfo(r.shape,"string",a)}};const DV={kernelName:zi,backendName:"webgl",kernelFunc:function({inputs:e,attrs:t,backend:n}){const{x:s}=e,r=$M+`\n return x > 0.0 ? 1.0 : float(${t.alpha});\n `,i=new KM(s.shape,r);return n.runWebGLProgram(i,[s],s.dtype)}};class MV{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;const s=n.length,r=bD(n.length),i=bD(n.length);let a="";if(1===s)a="coords * strides + begin";else{let e=0;a=n.map(((t,s)=>(e++,1===n.length?`coords * strides[${s}] + begin[${s}]`:`coords[${e-1}] * strides[${s}] + begin[${s}]`))).join(",")}this.userCode=`\n ${r} begin = ${r}(${e});\n ${r} strides = ${r}(${t});\n\n void main() {\n ${i} coords = getOutputCoords();\n setOutput(getX(${a}));\n }\n `}}const zV={kernelName:vi,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{begin:i,end:a,strides:o,beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:h,shrinkAxisMask:d}=s,{finalShapeSparse:p,finalShape:f,isIdentity:m,sliceDim0:g,isSimpleSlice:y,begin:b,end:w,strides:v}=ec(r.shape,i,a,o,l,u,c,h,d);let x;if(m)x=Bz({inputs:{x:r},backend:n,attrs:{shape:f}});else if(g||y){Gt(r.shape.length>=1,(()=>`Input must have rank at least 1, got: ${r.shape.length}`));const e=Vu(b,w,v),t=GF({inputs:{x:r},backend:n,attrs:{begin:b,size:e}});x=Bz({inputs:{x:t},backend:n,attrs:{shape:f}}),n.disposeIntermediateTensorInfo(t)}else{if(n.shouldExecuteOnCPU([r])){const e=n.readSync(r.dataId),t=Tl(r.shape,r.dtype,e),s=NM(p,t,v,b);x=n.makeTensorInfo(f,r.dtype,s.values)}else{const e=new MV(b,v,p);x=n.runWebGLProgram(e,[r],r.dtype)}}const A=Bz({inputs:{x},backend:n,attrs:{shape:f}});return n.disposeIntermediateTensorInfo(x),A}};const FV={kernelName:xi,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{separator:r,nGramWidths:i,leftPad:a,rightPad:o,padWidth:l,preserveShortSequences:u}=s,{data:c,dataSplits:h}=t,d=n.readSync(c.dataId),p=n.readSync(h.dataId),[f,m]=RM(d,p,r,i,a,o,l,u);return[n.makeTensorInfo([f.length],"string",f),n.makeTensorInfo(h.shape,"int32",m)]}};const BV={kernelName:Ai,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{skipEmpty:r}=s,{input:i,delimiter:a}=t;if("string"!==i.dtype)throw new Error("Input must be of datatype string");if(1!==i.shape.length)throw new Error(`Input must be a vector, got shape: ${i.shape}`);if(0!==a.shape.length)throw new Error(`Delimiter must be a scalar, got shape: ${a.shape}`);const o=n.readSync(i.dataId),l=n.readSync(a.dataId)[0],[u,c,h]=OM(o,l,r),d=c.length;return[n.makeTensorInfo([d,2],"int32",u),n.makeTensorInfo([d],"string",c),n.makeTensorInfo([2],"int32",new Int32Array(h))]}};const LV={kernelName:Ci,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{numBuckets:r}=s,{input:i}=t;if("string"!==i.dtype)throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");const a=n.readSync(i.dataId),o=DM(a,r);return n.makeTensorInfo(i.shape,"int32",o)}},PV=Iz({opSnippet:"return tan(x);"}),UV={kernelName:Si,backendName:"webgl",kernelFunc:PV},VV=Iz({opSnippet:"\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n"}),WV={kernelName:_i,backendName:"webgl",kernelFunc:VV};const jV={kernelName:Yr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{tensor:r,indices:i,updates:a}=t,{}=s,{sliceRank:o,numUpdates:l,sliceSize:u,strides:c,outputSize:h}=Vp(0,i,r.shape),d=[h/u,u];if(0===h)return n.makeTensorInfo(r.shape,i.dtype);const p=Bz({inputs:{x:i},backend:n,attrs:{shape:[l,o]}}),f=Bz({inputs:{x:a},backend:n,attrs:{shape:[l,u]}}),m=Bz({inputs:{x:r},backend:n,attrs:{shape:d}}),g=new JU(l,o,p.shape.length,f.shape.length,c,d,!1,!0),y=n.runWebGLProgram(g,[f,p,m],m.dtype),b=Bz({inputs:{x:y},backend:n,attrs:{shape:r.shape}});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(y),b}};class GV{constructor(e,t){this.variableNames=["A"];const n=new Array(e.length);for(let s=0;s5)throw Error(`Tile for rank ${t} is not yet supported`);if(1===t)return`imod(resRC, ${e[0]})`;const n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],s=[];for(let t=0;t5){const e=n.readSync(r.dataId),t="string"===r.dtype?e.map((e=>ga(e))):e,s=Tl(r.shape,r.dtype,t),a=zM(s,i);return n.makeTensorInfo(a.shape,a.dtype,a.values)}const a=new GV(r.shape,i);return n.runWebGLProgram(a,[r],r.dtype)}const HV={kernelName:Ei,backendName:"webgl",kernelFunc:qV};class KV{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"negativeInf",type:"float"},{name:"dir",type:"int"},{name:"inc",type:"int"}],this.outputShape=e,this.userCode="\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int elemIdx = coords[1];\n\n // We compare elements pair-wise within a group of size 2 * inc.\n // The comparing rule for each group alternates between ascending\n // and descending. Within each group, we compare each pair at\n // positions i and i+inc. To decide whether an element at position i\n // is x0 or x1, we mod it by 2 * inc, if the result is smaller than\n // inc, it is in the first half of the group, we denote it as x0,\n // otherwise we denote it as x1.\n // For example, as shown in the Bitonic top K paper referenced above,\n // Figure5(a) shows that element[1] is in the\n // second half of the group when group size is 2, but it is in the\n // first half of the group when group size is 4.\n\n bool isFirstInPair = imod(elemIdx, 2 * inc) < inc;\n int i = isFirstInPair ? elemIdx : elemIdx - inc;\n\n int i0 = firstPass == 1 ? i : int(getIndices(batch, i));\n int i1 = firstPass == 1 ? i + inc : int(getIndices(batch, i + inc));\n float x0 = i0 < n ? getX(batch, i0) : negativeInf;\n float x1 = i1 < n ? getX(batch, i1) : negativeInf;\n\n // Denotes which direction indices are in (ascending or descending).\n bool reverse = imod(elemIdx, 2 * dir) >= dir;\n bool isGreater = x0 > x1 || (x0 == x1 && i1 > i0);\n if (reverse == isGreater) { // Elements in opposite order of direction\n int iTemp = i0;\n i0 = i1;\n i1 = iTemp;\n }\n if (isFirstInPair) {\n setOutput(float(i0));\n } else {\n setOutput(float(i1));\n }\n }\n "}}class $V{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=e,this.userCode="\n void main() {\n // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ...\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int elemIdx = coords[1];\n\n // The output size is half of the previous size.\n // If the previous sequence is | | | | _ _ _ _ | | | | _ _ _ _ (k=4),\n // we only need to output the indices at positions |, the indices at\n // positions _ can be thrown away, see Figure5(b) After Phase 2\n // (Merge phase) in the Bitonic Top K paper referenced above.\n // For example, the paper shows we only need to output the orange bars.\n // The output sequence should look like this | | | | | | | |.\n // Because the sequence is halved, to map the output index back\n // to the previous sequence to find the corresponding value,\n // we need to double the index. When we double the index,\n // we basically interpolate a position, so 2i looks like\n // | _ | _ | _ | _ | _ | _ | _. We move the | to the first k position\n // of each 2k positions by - elemIdx % k. E.g. for output at\n // index 4,5,6,7, we want to get the corresponding element at\n // original index 8,9,10,11, for output at index 8,9,10,11,\n // we want to get the corresponding element at original index\n // 16,17,18,19, so on and so forth.\n\n int i = elemIdx < k ? elemIdx : (elemIdx * 2 - imod(elemIdx, k));\n int i0 = firstPass == 1 ? i : int(getIndices(batch, i));\n int i1 = firstPass == 1 ? i + k : int(getIndices(batch, i + k));\n\n float x0 = getX(batch, i0);\n float x1 = i1 < n ? getX(batch, i1) : x0;\n\n setOutput(x0 >= x1 ? float(i0) : float(i1));\n }\n "}}function XV(e,t){null!==t&&e.disposeIntermediateTensorInfo(t)}function ZV(e){let t=1;for(;tl){const e=n.readSync(r.dataId),[t,s]=FM(e,u,r.dtype,i,a);return[n.makeTensorInfo(t.shape,t.dtype,t.values),n.makeTensorInfo(s.shape,s.dtype,s.values)]}if(0===i)return u[u.length-1]=0,[n.makeTensorInfo(u,r.dtype,[]),n.makeTensorInfo(u,"int32",[])];if(1===c)return[r,TL({attrs:{shape:u,dtype:"int32",value:0},backend:n})];const h=n.texData.get(r.dataId),d=null!==h&&h.isPacked,p=d?n.unpackTensor(r):r,f=Kt(u)/c,m=Bz({inputs:{x:p},attrs:{shape:[f,c]},backend:n});d&&XV(n,p);const g=ZV(i),y=ZV(c);let b=null;const w=()=>null===b?[m,m]:[m,b],v=(e,t,s)=>{const r=w(),i=new KV(s),a=[[c],[null===b?1:0],[Number.NEGATIVE_INFINITY],[e],[t]],o=b;b=n.runWebGLProgram(i,r,"int32",a),XV(n,o)};for(let e=1;e=1;n/=2)v(t,n,[f,y])}for(let e=y;e>g;e/=2){const t=w(),s=new $V([f,e/2]),r=[[c],[null===b?1:0],[g]],i=b;b=n.runWebGLProgram(s,t,"int32",r),XV(n,i);const a=g/2,o=2*a;for(let e=a;e>=1;e/=2)v(o,e,b.shape)}let x=b;b=GF({inputs:{x:b},backend:n,attrs:{begin:0,size:[f,i]}}),XV(n,x);let A=$L({inputs:{x:m,indices:b},backend:n,attrs:{axis:1,batchDims:1}});XV(n,m);const C=u.slice(0,-1);C.push(i),x=b,b=Bz({inputs:{x:b},attrs:{shape:C},backend:n}),XV(n,x);const k=A;return A=Bz({inputs:{x:A},attrs:{shape:C},backend:n}),XV(n,k),[A,b]}};class QV{constructor(e,t,n,s,r,i){this.variableNames=["Image","Transforms"],this.outputShape=i;const a="nearest"===n?1:2;let o;switch(s){case"constant":default:o=1;break;case"reflect":o=2;break;case"wrap":o=3;break;case"nearest":o=4}this.userCode=`\n float mapCoord(float outCoord, float len) {\n float inCoord = outCoord;\n if(${o} == 2) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz2 = 2.0 * len;\n if (inCoord < sz2) {\n inCoord = sz2 * float(int(float(-inCoord / sz2))) +\n inCoord;\n }\n inCoord = inCoord < -len ? inCoord + sz2 : -inCoord - 1.0;\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz2 = 2.0 * len;\n inCoord -= sz2 * float(int(float(inCoord / sz2)));\n if (inCoord >= len) {\n inCoord = sz2 - inCoord - 1.0;\n }\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (${o} == 3) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz = len - 1.0;\n inCoord += len * (float(int(float(-inCoord / sz))) + 1.0);\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz = len - 1.0;\n inCoord -= len * float(int(float(inCoord / sz)));\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (${o} == 4) {\n return clamp(outCoord, 0.0, len - 1.0);\n } else {\n return outCoord;\n }\n }\n\n float readWithFillValue(int batch, int coordY, int coordX,\n int channel) {\n float outputValue;\n if (0 <= coordY && coordY < ${e} && 0 <= coordX && coordX < ${t}) {\n outputValue = getImage(batch, coordY, coordX, channel);\n } else {\n outputValue = float(${r});\n }\n return outputValue;\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n float outputValue;\n int batch = coords[0];\n int x = coords[2];\n int y = coords[1];\n int channel = coords[3];\n float xf = float(x);\n float yf = float(y);\n float a1 = getTransforms(batch, 0);\n float a2 = getTransforms(batch, 1);\n float a3 = getTransforms(batch, 2);\n float b1 = getTransforms(batch, 3);\n float b2 = getTransforms(batch, 4);\n float b3 = getTransforms(batch, 5);\n float c1 = getTransforms(batch, 6);\n float c2 = getTransforms(batch, 7);\n float projection = c1 * xf + c2 * yf + 1.0;\n if (projection == 0.0) {\n outputValue = float(${r});\n } else {\n float inX = (a1 * xf + a2 * yf + a3) / projection;\n float inY = (b1 * xf + b2 * yf + b3) / projection;\n float mapX = mapCoord(inX, float(${t}));\n float mapY = mapCoord(inY, float(${e}));\n\n if (${a} == 1) {\n int coordY = int(round(mapY));\n int coordX = int(round(mapX));\n outputValue = readWithFillValue(batch, coordY, coordX,\n channel);\n } else {\n float yFloor = floor(mapY);\n float xFloor = floor(mapX);\n float yCeil = yFloor + 1.0;\n float xCeil = xFloor + 1.0;\n float valueYFloor = (xCeil - mapX) *\n readWithFillValue(batch, int(yFloor), int(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, int(yFloor), int(xCeil), channel);\n float valueYCeil = (xCeil - mapX) *\n readWithFillValue(batch, int(yCeil), int(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, int(yCeil), int(xCeil), channel);\n outputValue = (yCeil - mapY) * valueYFloor +\n (mapY - yFloor) * valueYCeil;\n }\n }\n setOutput(outputValue);\n }\n `}}const JV={kernelName:Ti,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{image:r,transforms:i}=t,{interpolation:a,fillMode:o,fillValue:l,outputShape:u}=s,[c,h,d,p]=r.shape,[f,m]=null!=u?u:[h,d],g=new QV(h,d,a,o,l,[c,f,m,p]);return n.runWebGLProgram(g,[r,i],"float32")}};const eW={kernelName:Ri,backendName:"webgl",kernelFunc:function(e){const{inputs:t,attrs:n,backend:s}=e,{axis:r}=n,{x:i}=t;JO(i,"unique");const a=s.readSync(i.dataId),{outputValues:o,outputShape:l,indices:u}=LM(a,r,i.shape,i.dtype);return[s.makeTensorInfo(l,i.dtype,o),s.makeTensorInfo([u.length],"int32",u)]}};const tW={kernelName:Oi,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{value:r}=t;let{axis:i}=s;i<0&&(i+=r.shape.length);const a=r,o=a.shape.length,l=r.shape[i],u=new Array(o-1);let c=0;for(let e=0;en.disposeIntermediateTensorInfo(e))),f}};class nW{constructor(e,t){this.variableNames=["x","segmentIds"];const n=e.windowSize,s=e.batchSize,r=e.inSize,i=e.numSegments,a=i*Math.ceil(r/n);this.outputShape=[s,a];const o=4*Math.floor(n/4),l=n%4,u="\n sumValue += dot(values, segFilter);\n ";let c="";r%n>0&&(c=`\n if (inIdx < 0 || inIdx >= ${r}) {\n return initializationValue;\n }\n `);let h="";r%n>0&&(h=`\n if (inIdx < 0 || inIdx >= ${r}) {\n return -1.0;\n }\n `),this.userCode=`\n const float initializationValue = 0.0;\n\n float getValue(int batch, int inIdx) {\n ${c}\n return getX(batch, inIdx);\n }\n\n float getSegmentIdAtIndex(int inIdx) {\n ${h}\n return getSegmentIds(inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = int(floor(float(outIdx) / float(\n ${i})) * float(${n}));\n int currentSeg = int(mod(float(outIdx), float(${i})));\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${o}; 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 ${u}\n }\n\n int inIdx = inOffset + ${o};\n if (${1===l}) {\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 ${u}\n } else if (${2===l}) {\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 ${u}\n } else if (${3===l}) {\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 ${u}\n }\n setOutput(sumValue);\n }\n `}}const sW={kernelName:Di,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,segmentIds:i}=t,{numSegments:a}=s,o=r.shape.length,l=[];let u=0;const c=Ih([u],o);let h=r;null!=c&&(h=Kz({inputs:{x:r},backend:n,attrs:{perm:c}}),l.push(h),u=Nh(1,o)[0]);const d=Ig(h.shape,u,a),p=Kt([h.shape[u]]),f=Bz({inputs:{x:h},backend:n,attrs:{shape:[-1,p]}});l.push(f);const m=Ga(r.dtype),g=(e,t,s,r,i)=>{const a=e.shape[0],o=e.shape[1],u=Eg(o,i),c=new nW({windowSize:u,inSize:o,batchSize:a,numSegments:i},t),h=n.compileAndRun(c,[e,s],r);if(l.push(h),h.shape[1]===i)return h;const d=_U({backend:n,attrs:{start:0,stop:i,step:1,dtype:"float32"}}),p=qV({inputs:{x:d},backend:n,attrs:{reps:[o/u]}});l.push(d),l.push(p);return g(h,t,p,r,i)},y=Bz({inputs:{x:g(f,"unsortedSegmentSum",i,m,a)},backend:n,attrs:{shape:d}});let b=y;if(null!=c){l.push(y);const e=Th(c);b=Kz({inputs:{x:b},backend:n,attrs:{perm:e}})}return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),b}},rW=[Yz,Jz,tF,sF,aF,uF,cF,hF,yF,bF,vF,AF,kF,_F,IF,RF,OF,zF,FF,BF,UF,HF,KF,$F,XF,tB,rB,oB,vz,cB,bB,_B,RB,DB,MB,zB,FB,LB,UB,WB,$B,XB,ZB,QB,tL,rL,iL,oL,uL,cL,dL,pL,mL,yL,wL,xL,kL,EL,NL,OL,zL,BL,UL,jL,GL,HL,XL,YL,JL,bz,eP,mB,nP,rP,aP,Cz,lP,cP,hP,pP,mP,yP,wP,xP,kP,_P,IP,NP,RP,OP,zP,FP,BP,LP,PP,VP,GP,HP,tU,Fz,sU,iU,oU,uU,YF,hU,fU,mU,wU,xU,_z,AU,CU,kU,SU,EU,JF,XP,TU,RU,DU,Lz,FU,LU,VU,jU,HU,$U,ZU,QU,tV,sV,iV,oV,uV,hV,pV,mV,qF,eU,yV,bV,wV,vV,xV,AV,CV,kV,EV,IV,RV,OV,DV,zV,FV,BV,LV,QP,Hz,UV,WV,jV,HV,YV,JV,$z,eW,tW,sW,pU];for(const e of rW)$i(e);__webpack_require__(9464);const iW={moveTickSize:50,videoContainerId:"webgazerVideoContainer",videoElementId:"webgazerVideoFeed",videoElementCanvasId:"webgazerVideoCanvas",faceOverlayId:"webgazerFaceOverlay",faceFeedbackBoxId:"webgazerFaceFeedbackBox",gazeDotId:"webgazerGazeDot",videoViewerWidth:320,videoViewerHeight:240,faceFeedbackBoxRatio:.66,showVideo:!0,mirrorVideo:!0,showFaceOverlay:!0,showFaceFeedbackBox:!0,showGazeDot:!0,camConstraints:{video:{width:{min:320,ideal:640,max:1920},height:{min:240,ideal:480,max:1080},facingMode:"user"}},dataTimestep:50,showVideoPreview:!0,applyKalmanFilter:!0,saveDataAcrossSessions:!0,storingPoints:!1,videoIsOn:!1,trackEye:"both"};__webpack_require__(6003);var aW=__webpack_require__(7350),oW=__webpack_require__.n(aW),lW=__webpack_require__(8990),uW=function(){return uW=Object.assign||function(e){for(var t,n=1,s=arguments.length;n0&&r[r.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]>>0)+"_",r=0;return function e(n){if(this instanceof e)throw new TypeError("Symbol is not a constructor");return new t(s+(n||"")+"_"+r++,n)}})),r("Symbol.iterator",(function(e){if(e)return e;e=Symbol("Symbol.iterator");for(var r="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),a=0;a(t=t||0)&&(t=Math.max(t+s,0));t>2];a=t[(3&a)<<4|o>>4],o=t[(15&o)<<2|l>>6],l=t[63&l],n[i++]=u+a+o+l}switch(u=0,l=s,e.length-r){case 2:l=t[(15&(u=e[r+1]))<<2]||s;case 1:e=e[r],n[i]=t[e>>2]+t[(3&e)<<4|u>>4]+l+s}return n.join("")}function z(e){var t=e.length,n=3*t/4;n%3?n=Math.floor(n):-1!="=.".indexOf(e[t-1])&&(n=-1!="=.".indexOf(e[t-2])?n-2:n-1);var s=new Uint8Array(n),r=0;return function(e,t){function n(t){for(;s>4),64!=a&&(t(i<<4&240|a>>2),64!=o&&t(a<<6&192|o))}}(e,(function(e){s[r++]=e})),r!==n?s.subarray(0,r):s}function F(){if(!D){D={};for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),t=["+/=","+/","-_=","-_.","-_"],n=0;5>n;n++){var s=e.concat(t[n].split(""));O[n]=s;for(var r=0;re.i)throw Error("Tried to read past the end of the data "+e.g+" > "+e.i)}function $(e){var t=e.h,n=t[e.g],s=127&n;if(128>n)return e.g+=1,K(e),s;if(s|=(127&(n=t[e.g+1]))<<7,128>n)return e.g+=2,K(e),s;if(s|=(127&(n=t[e.g+2]))<<14,128>n)return e.g+=3,K(e),s;if(s|=(127&(n=t[e.g+3]))<<21,128>n)return e.g+=4,K(e),s;if(n=t[e.g+4],e.g+=5,s|=(15&n)<<28,128>n)return K(e),s;if(128<=t[e.g++]&&128<=t[e.g++]&&128<=t[e.g++]&&128<=t[e.g++]&&128<=t[e.g++])throw G();return K(e),s}q.prototype.reset=function(){this.g=this.j};var X=[];function Z(){this.g=[]}function Y(e,t){for(;127>>=7;e.g.push(t)}function Q(e){var t={},n=void 0!==t.W&&t.W;this.l={v:void 0!==t.v&&t.v},this.W=n,t=this.l,X.length?(n=X.pop(),t&&(n.v=t.v),e&&H(n,e),e=n):e=new q(e,t),this.g=e,this.j=this.g.g,this.h=this.i=-1}function J(e){var t=e.g;if(t.g==t.i)return!1;e.j=e.g.g;var n=$(e.g)>>>0;if(t=n>>>3,!(0<=(n&=7)&&5>=n))throw j(n,e.j);if(1>t)throw Error("Invalid field number: "+t+" (at position "+e.j+")");return e.i=t,e.h=n,!0}function ee(e){switch(e.h){case 0:if(0!=e.h)ee(e);else e:{for(var t=(e=e.g).g,n=t+10;t>>0,(e=e.g).g+=t,K(e));break;case 5:(e=e.g).g+=4,K(e);break;case 3:for(t=e.i;;){if(!J(e))throw Error("Unmatched start-group tag: stream EOF");if(4==e.h){if(e.i!=t)throw Error("Unmatched end-group tag");break}ee(e)}break;default:throw j(e.h,e.j)}}Z.prototype.length=function(){return this.g.length},Z.prototype.end=function(){var e=this.g;return this.g=[],e},Q.prototype.reset=function(){this.g.reset(),this.j=this.g.g,this.h=this.i=-1};var te=[];function ne(){this.i=[],this.h=0,this.g=new Z}function se(e,t){0!==t.length&&(e.i.push(t),e.h+=t.length)}var re="function"==typeof Symbol&&"symbol"==typeof Symbol()?Symbol(void 0):void 0;function ie(e,t){Object.isFrozen(e)||(re?e[re]|=t:void 0!==e.N?e.N|=t:Object.defineProperties(e,{N:{value:t,configurable:!0,writable:!0,enumerable:!1}}))}function ae(e){var t;return null==(t=re?e[re]:e.N)?0:t}function oe(e){return ie(e,1),e}function le(e){return!!Array.isArray(e)&&!!(2&ae(e))}function ue(e){if(!Array.isArray(e))throw Error("cannot mark non-array as immutable");ie(e,2)}function ce(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)&&e.constructor===Object}var he=Object.freeze(oe([]));function de(e){if(le(e.m))throw Error("Cannot mutate an immutable Message")}var pe,fe="undefined"!=typeof Symbol&&void 0!==Symbol.hasInstance;function me(e){return{value:e,configurable:!1,writable:!1,enumerable:!1}}function ge(e,t,n){return-1===t?null:t>=e.i?e.g?e.g[t]:void 0:void 0!==n&&n&&e.g&&null!=(n=e.g[t])?n:e.m[t+e.h]}function ye(e,t,n,s){s=void 0!==s&&s,de(e),tte.length&&te.push(e)}}function tt(e,t,n){for(var s=n.length,r=1==s%2,i=r?1:0;i>>0)>>31)+1,s=r>>>23&255,r&=8388607,ye(t,n,255==s?r?NaN:1/0*e:0==s?e*Math.pow(2,-149)*r:e*Math.pow(2,s-150)*(r+Math.pow(2,23))),!0}),(function(e,t,n){if(null!=(t=ge(t,n))){Y(e.g,8*n+5),e=e.g;var s=t;0===(s=(n=0>s?1:0)?-s:s)?W=0<1/s?0:2147483648:isNaN(s)?W=2147483647:34028234663852886e22>>0:11754943508222875e-54>s?(s=Math.round(s/Math.pow(2,-149)),W=(n<<31|s)>>>0):(t=Math.floor(Math.log(s)/Math.LN2),s*=Math.pow(2,-t),16777216<=(s=Math.round(8388608*s))&&++t,W=(n<<31|t+127<<23|8388607&s)>>>0),n=W,e.g.push(n>>>0&255),e.g.push(n>>>8&255),e.g.push(n>>>16&255),e.g.push(n>>>24&255)}})),it=st((function(e,t,n){if(0!==e.h)return!1;for(var s=e.g,r=128,i=0,a=e=0;4>a&&128<=r;a++)r=s.h[s.g++],K(s),i|=(127&r)<<7*a;if(128<=r&&(r=s.h[s.g++],K(s),i|=(127&r)<<28,e|=(127&r)>>4),128<=r)for(a=0;5>a&&128<=r;a++)r=s.h[s.g++],K(s),e|=(127&r)<<7*a+3;if(!(128>r))throw G();return s=i>>>0,(e=2147483648&(r=e>>>0))&&(r=~r>>>0,0==(s=1+~s>>>0)&&(r=r+1>>>0)),s=4294967296*r+(s>>>0),ye(t,n,e?-s:s),!0}),(function(e,t,n){if(null!=(t=ge(t,n))&&null!=t){Y(e.g,8*n),e=e.g;var s=t;for(n=0>s,t=(s=Math.abs(s))>>>0,s=Math.floor((s-t)/4294967296),s>>>=0,n&&(s=~s>>>0,4294967295<(t=1+(~t>>>0))&&(t=0,4294967295<++s&&(s=0))),n=W=t,t=s;0>>7|t<<25)>>>0,t>>>=7;e.g.push(n)}})),at=st((function(e,t,n){return 0===e.h&&(ye(t,n,$(e.g)),!0)}),(function(e,t,n){if(null!=(t=ge(t,n))&&null!=t)if(Y(e.g,8*n),e=e.g,0<=(n=t))Y(e,n);else{for(t=0;9>t;t++)e.g.push(127&n|128),n>>=7;e.g.push(1)}})),ot=st((function(e,t,n){if(2!==e.h)return!1;var s,r=$(e.g)>>>0,i=(e=e.g).g;if(e.g+=r,K(e),e=e.h,N)(s=I)||(s=I=new TextDecoder("utf-8",{fatal:!0})),s=s.decode(e.subarray(i,i+r));else{r=i+r;for(var a,o,l,u=[],c=null;i(a=e[i++])?u.push(a):224>a?i>=r?_():(o=e[i++],194>a||128!=(192&o)?(i--,_()):u.push((31&a)<<6|63&o)):240>a?i>=r-1?_():128!=(192&(o=e[i++]))||224===a&&160>o||237===a&&160<=o||128!=(192&(s=e[i++]))?(i--,_()):u.push((15&a)<<12|(63&o)<<6|63&s):244>=a?i>=r-2?_():128!=(192&(o=e[i++]))||o-144+(a<<28)>>30||128!=(192&(s=e[i++]))||128!=(192&(l=e[i++]))?(i--,_()):(a=(7&a)<<18|(63&o)<<12|(63&s)<<6|63&l,a-=65536,u.push(55296+(a>>10&1023),56320+(1023&a))):_(),8192<=u.length&&(c=E(c,u),u.length=0);s=E(c,u)}return ye(t,n,s),!0}),(function(e,t,n){if(null!=(t=ge(t,n))){var s=!1;if(s=void 0!==s&&s,R){if(s&&/(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])/.test(t))throw Error("Found an unpaired surrogate");t=(T||(T=new TextEncoder)).encode(t)}else{for(var r=0,i=new Uint8Array(3*t.length),a=0;ao)i[r++]=o;else{if(2048>o)i[r++]=o>>6|192;else{if(55296<=o&&57343>=o){if(56319>=o&&a=l){o=1024*(o-55296)+l-56320+65536,i[r++]=o>>18|240,i[r++]=o>>12&63|128,i[r++]=o>>6&63|128,i[r++]=63&o|128;continue}a--}if(s)throw Error("Found an unpaired surrogate");o=65533}i[r++]=o>>12|224,i[r++]=o>>6&63|128}i[r++]=63&o|128}}t=i.subarray(0,r)}Y(e.g,8*n+2),Y(e.g,t.length),se(e,e.g.end()),se(e,t)}})),lt=st((function(e,t,n,s,r){if(2!==e.h)return!1;t=xe(t,n,s),n=e.g.i,s=$(e.g)>>>0;var i=e.g.g+s,a=i-n;if(0>=a&&(e.g.i=i,r(t,e),a=i-e.g.g),a)throw Error("Message parsing ended unexpectedly. Expected to read "+s+" bytes, instead read "+(s-a)+" bytes, either the data ended unexpectedly or the message misreported its own length");return e.g.g=i,e.g.i=n,!0}),(function(e,t,n,s,r){if(null!=(t=ve(t,s,n)))for(s=0;s>>=7,a.h++;i.push(o),a.h++}}));function ut(){Ne.apply(this,arguments)}if(p(ut,Ne),fe){var ct={};Object.defineProperties(ut,(ct[Symbol.hasInstance]=me(Object[Symbol.hasInstance]),ct))}function ht(e){ut.call(this,e)}function dt(){return[1,at,2,rt,3,ot,4,ot]}function pt(e){ut.call(this,e,-1,mt)}function ft(){return[1,lt,ht,dt]}p(ht,ut),p(pt,ut),pt.prototype.addClassification=function(e,t){return xe(this,1,ht,e,t),this};var mt=[1];function gt(e){ut.call(this,e)}function yt(){return[1,rt,2,rt,3,rt,4,rt,5,rt]}function bt(e){ut.call(this,e,-1,vt)}function wt(){return[1,lt,gt,yt]}p(gt,ut),p(bt,ut);var vt=[1];function xt(e){ut.call(this,e)}function At(){return[1,rt,2,rt,3,rt,4,rt,5,rt,6,it]}p(xt,ut);var Ct=[[61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]],kt=[[263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]],St=[[276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]],_t=[[33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]],Et=[[46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]],It=[[10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]],Tt=[].concat(o(Ct),o(kt),o(St),o(_t),o(Et),o(It));function Nt(e,t,n){if(n=e.createShader(0===n?e.VERTEX_SHADER:e.FRAGMENT_SHADER),e.shaderSource(n,t),e.compileShader(n),!e.getShaderParameter(n,e.COMPILE_STATUS))throw Error("Could not compile WebGL shader.\n\n"+e.getShaderInfoLog(n));return n}function Rt(e){return ve(e,ht,1).map((function(e){return{index:Ae(e,1),ga:we(e,2),label:null!=ge(e,3)?Ce(e,3):void 0,displayName:null!=ge(e,4)?Ce(e,4):void 0}}))}function Ot(e){return{x:we(e,1),y:we(e,2),z:we(e,3),visibility:null!=ge(e,4)?we(e,4):void 0}}function Dt(e,t){this.h=e,this.g=t,this.l=0}function Mt(e,t,n){return function(e,t){var n=e.g;if(void 0===e.o){var s=Nt(n,"\n attribute vec2 aVertex;\n attribute vec2 aTex;\n varying vec2 vTex;\n void main(void) {\n gl_Position = vec4(aVertex, 0.0, 1.0);\n vTex = aTex;\n }",0),r=Nt(n,"\n precision mediump float;\n varying vec2 vTex;\n uniform sampler2D sampler0;\n void main(){\n gl_FragColor = texture2D(sampler0, vTex);\n }",1),i=n.createProgram();if(n.attachShader(i,s),n.attachShader(i,r),n.linkProgram(i),!n.getProgramParameter(i,n.LINK_STATUS))throw Error("Could not compile WebGL program.\n\n"+n.getProgramInfoLog(i));s=e.o=i,n.useProgram(s),r=n.getUniformLocation(s,"sampler0"),e.j={K:n.getAttribLocation(s,"aVertex"),J:n.getAttribLocation(s,"aTex"),ma:r},e.u=n.createBuffer(),n.bindBuffer(n.ARRAY_BUFFER,e.u),n.enableVertexAttribArray(e.j.K),n.vertexAttribPointer(e.j.K,2,n.FLOAT,!1,0,0),n.bufferData(n.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),n.STATIC_DRAW),n.bindBuffer(n.ARRAY_BUFFER,null),e.s=n.createBuffer(),n.bindBuffer(n.ARRAY_BUFFER,e.s),n.enableVertexAttribArray(e.j.J),n.vertexAttribPointer(e.j.J,2,n.FLOAT,!1,0,0),n.bufferData(n.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),n.STATIC_DRAW),n.bindBuffer(n.ARRAY_BUFFER,null),n.uniform1i(r,0)}s=e.j,n.useProgram(e.o),n.canvas.width=t.width,n.canvas.height=t.height,n.viewport(0,0,t.width,t.height),n.activeTexture(n.TEXTURE0),e.h.bindTexture2d(t.glName),n.enableVertexAttribArray(s.K),n.bindBuffer(n.ARRAY_BUFFER,e.u),n.vertexAttribPointer(s.K,2,n.FLOAT,!1,0,0),n.enableVertexAttribArray(s.J),n.bindBuffer(n.ARRAY_BUFFER,e.s),n.vertexAttribPointer(s.J,2,n.FLOAT,!1,0,0),n.bindFramebuffer(n.DRAW_FRAMEBUFFER?n.DRAW_FRAMEBUFFER:n.FRAMEBUFFER,null),n.clearColor(0,0,0,0),n.clear(n.COLOR_BUFFER_BIT),n.colorMask(!0,!0,!0,!0),n.drawArrays(n.TRIANGLE_FAN,0,4),n.disableVertexAttribArray(s.K),n.disableVertexAttribArray(s.J),n.bindBuffer(n.ARRAY_BUFFER,null),e.h.bindTexture2d(0)}(e,t),"function"==typeof e.g.canvas.transferToImageBitmap?Promise.resolve(e.g.canvas.transferToImageBitmap()):n?Promise.resolve(e.g.canvas):"function"==typeof createImageBitmap?createImageBitmap(e.g.canvas):(void 0===e.i&&(e.i=document.createElement("canvas")),new Promise((function(t){e.i.height=e.g.canvas.height,e.i.width=e.g.canvas.width,e.i.getContext("2d",{}).drawImage(e.g.canvas,0,0,e.g.canvas.width,e.g.canvas.height),t(e.i)})))}function zt(e){this.g=e}var Ft=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function Bt(e,t){return t+e}function Lt(e,t){window[e]=t}function Pt(e){if(this.g=e,this.listeners={},this.j={},this.H={},this.o={},this.u={},this.I=this.s=this.Z=!0,this.D=Promise.resolve(),this.Y="",this.C={},this.locateFile=e&&e.locateFile||Bt,"object"==typeof window)var t=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else{if("undefined"==typeof location)throw Error("solutions can only be loaded on a web page or in a web worker");t=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/"}if(this.$=t,e.options)for(var n=(t=a(Object.keys(e.options))).next();!n.done;n=t.next()){n=n.value;var s=e.options[n].default;void 0!==s&&(this.j[n]="function"==typeof s?s():s)}}function Ut(e,t){var n,s;return A((function(r){return t in e.H?r.return(e.H[t]):(n=e.locateFile(t,""),s=fetch(n).then((function(e){return e.arrayBuffer()})),e.H[t]=s,r.return(s))}))}function Vt(e,t,n){var s,r,i,o,l,u,c,h,d,p,f,m,g,b;return A((function(w){switch(w.g){case 1:if(!n)return w.return(t);for(s={},r=0,i=a(Object.keys(n)),o=i.next();!o.done;o=i.next())l=o.value,"string"!=typeof(u=n[l])&&"texture"===u.type&&void 0!==t[u.stream]&&++r;10&&r[r.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]0){var c=o===e.strides.length-1?1:MW(e.minScale,e.maxScale,o+1,e.strides.length);a.push(Math.sqrt(l*c)),i.push(e.interpolatedScaleAspectRatio)}}o++}for(var h=0;h0)p=e.featureMapHeight[n],f=e.featureMapWidth[n];else{var m=e.strides[n];p=Math.ceil(e.inputSizeHeight/m),f=Math.ceil(e.inputSizeWidth/m)}for(var g=0;g-1})),Co([s,r,i]),[2,o]}}))}))}function BW(e,t,n){return kW(this,void 0,void 0,(function(){var s,r,i,a,o;return SW(this,(function(l){switch(l.label){case 0:return s=e[0],r=e[1],i=function(e,t,n){return Ao((function(){var s,r,i,a;n.reverseOutputOrder?(r=Tp(zc(e,[0,n.boxCoordOffset+0],[-1,1])),s=Tp(zc(e,[0,n.boxCoordOffset+1],[-1,1])),a=Tp(zc(e,[0,n.boxCoordOffset+2],[-1,1])),i=Tp(zc(e,[0,n.boxCoordOffset+3],[-1,1]))):(s=Tp(zc(e,[0,n.boxCoordOffset+0],[-1,1])),r=Tp(zc(e,[0,n.boxCoordOffset+1],[-1,1])),i=Tp(zc(e,[0,n.boxCoordOffset+2],[-1,1])),a=Tp(zc(e,[0,n.boxCoordOffset+3],[-1,1]))),r=Dl(Fl(zl(r,n.xScale),t.w),t.x),s=Dl(Fl(zl(s,n.yScale),t.h),t.y),n.applyExponentialOnBoxSize?(i=Fl(Bh(zl(i,n.hScale)),t.h),a=Fl(Bh(zl(a,n.wScale)),t.w)):(i=Fl(zl(i,n.hScale),t.h),a=Fl(zl(a,n.wScale),t.h));var o=Ql(s,zl(i,2)),l=Ql(r,zl(a,2)),u=Dl(s,zl(i,2)),c=Dl(r,zl(a,2)),h=Oc([Tc(o,[n.numBoxes,1]),Tc(l,[n.numBoxes,1]),Tc(u,[n.numBoxes,1]),Tc(c,[n.numBoxes,1])],1);if(n.numKeypoints)for(var d=0;d0)for((c=l.locationData).relativeKeypoints=[],h=n.numKeypoints*n.numValuesPerKeypoint,d=0;dl?(i=e.width,a=e.width*o,c=(1-l/o)/2):(i=e.height/o,a=e.height,u=(1-o/l)/2),e.width=i,e.height=a,{top:c,left:u,right:u,bottom:c}}(l,s,r),c=function(e,t,n,s){var r=e.width,i=e.height,a=Math.cos(e.rotation),o=Math.sin(e.rotation),l=e.xCenter,u=e.yCenter,c=1/t,h=1/n,d=new Array(16);return d[0]=r*a*1*c,d[1]=-i*o*c,d[2]=0,d[3]=(-.5*r*a*1+.5*i*o+l)*c,d[4]=r*o*1*h,d[5]=i*a*h,d[6]=0,d[7]=(-.5*i*a-.5*r*o*1+u)*h,d[8]=0,d[9]=0,d[10]=r*c,d[11]=0,d[12]=0,d[13]=0,d[14]=0,d[15]=1,function(e){if(16!==e.length)throw new Error("Array length must be 16 but got "+e.length);return[[e[0],e[1],e[2],e[3]],[e[4],e[5],e[6],e[7]],[e[8],e[9],e[10],e[11]],[e[12],e[13],e[14],e[15]]]}(d)}(l,o.width,o.height),h=Ao((function(){var t=RW(e),n=zp(function(e,t,n){return OW(n,"inputResolution"),[1/n.width*e[0][0]*t.width,1/n.height*e[0][1]*t.width,e[0][3]*t.width,1/n.width*e[1][0]*t.height,1/n.height*e[1][1]*t.height,e[1][3]*t.height,0,0]}(c,o,s),[1,8]),r="zero"===i?"constant":"nearest",l=bm.transform(Lh(Nl(t,"float32")),n,"bilinear",r,0,[s.height,s.width]);return null!=a?function(e,t){var n=function(e,t,n,s){var r=(s-n)/255;return{scale:r,offset:n-0*r}}(0,0,t[0],t[1]);return Ao((function(){return Dl(Fl(e,n.scale),n.offset)}))}(l,a):l}));return{imageTensor:h,padding:u,transformationMatrix:c}}(n,this.imageToTensorConfig),r=s.imageTensor,i=s.transformationMatrix,a=this.detectorModel.execute(r,"Identity:0"),o=function(e){return Ao((function(){var t=function(e){return Ao((function(){return[zc(e,[0,0,0],[1,-1,1]),zc(e,[0,0,1],[1,-1,-1])]}))}(e),n=t[0],s=t[1];return{boxes:Tp(s),logits:Tp(n)}}))}(a),l=o.boxes,[4,BW([u=o.logits,l],this.anchorTensor,this.tensorsToDetectionConfig)]);case 1:return 0===(c=p.sent()).length?(Co([n,r,a,u,l]),[2,c]):[4,FW(c,this.maxFaces,.3)];case 2:return h=p.sent(),d=function(e,t){void 0===e&&(e=[]);var n,s=(n=t,[].concat.apply([],n));return e.forEach((function(e){var t=e.locationData;t.relativeKeypoints.forEach((function(e){var t=zW(s,[e.x,e.y]),n=t[0],r=t[1];e.x=n,e.y=r}));var n=t.relativeBoundingBox,r=Number.MAX_VALUE,i=Number.MAX_VALUE,a=Number.MIN_VALUE,o=Number.MIN_VALUE;[[n.xMin,n.yMin],[n.xMin+n.width,n.yMin],[n.xMin+n.width,n.yMin+n.height],[n.xMin,n.yMin+n.height]].forEach((function(e){var t=zW(s,e),n=t[0],l=t[1];r=Math.min(r,n),a=Math.max(a,n),i=Math.min(i,l),o=Math.max(o,l)})),t.relativeBoundingBox={xMin:r,xMax:a,yMin:i,yMax:o,width:a-r,height:o-i}})),e}(h,i),Co([n,r,a,u,l]),[2,d]}}))}))},e.prototype.estimateFaces=function(e,t){return kW(this,void 0,void 0,(function(){var n,s;return SW(this,(function(r){return n=NW(e),s=!!t&&t.flipHorizontal,[2,this.detectFaces(e,s).then((function(e){return e.map((function(e){for(var t=e.locationData.relativeKeypoints.map((function(e,t){return CW(CW({},e),{x:e.x*n.width,y:e.y*n.height,name:_W[t]})})),s=e.locationData.relativeBoundingBox,r=0,i=["width","xMax","xMin"];r-1,[4,oS(t.detectorModelUrl,{fromTFHub:n})];case 1:return s=r.sent(),[2,new $W(t.modelType,s,t.maxFaces)]}}))}))}function ZW(e,t){return kW(this,void 0,void 0,(function(){var n,s;return SW(this,(function(r){if(e===UW.MediaPipeFaceDetector){if(s=void 0,null!=(n=t)){if("tfjs"===n.runtime)return[2,XW(n)];if("mediapipe"===n.runtime)return[2,TW(n)];s=n.runtime}throw new Error("Expect modelConfig.runtime to be either 'tfjs' or 'mediapipe', but got "+s)}throw new Error(e+" is not a supported model name.")}))}))}function YW(e){return e.width*e.height}function QW(e){var t=e.xCenter-e.width/2,n=t+e.width,s=e.yCenter-e.height/2;return{xMin:t,xMax:n,yMin:s,yMax:s+e.height,width:e.width,height:e.height}}function JW(e){return e instanceof Ma?{height:e.shape[0],width:e.shape[1]}:{height:e.height,width:e.width}}function ej(e){return e-2*Math.PI*Math.floor((e+Math.PI)/(2*Math.PI))}function tj(e){return e instanceof Ma?e:Fu(e)}function nj(e,t){Gt(0!==e.width,(function(){return t+" width cannot be 0."})),Gt(0!==e.height,(function(){return t+" height cannot be 0."}))}function sj(e,t,n){var s=t.outputTensorSize,r=t.keepAspectRatio,i=t.borderMode,a=t.outputTensorFloatRange,o=JW(e),l=function(e,t){return t?{xCenter:t.xCenter*e.width,yCenter:t.yCenter*e.height,width:t.width*e.width,height:t.height*e.height,rotation:t.rotation}:{xCenter:.5*e.width,yCenter:.5*e.height,width:e.width,height:e.height,rotation:0}}(o,n),u=function(e,t,n){if(void 0===n&&(n=!1),!n)return{top:0,left:0,right:0,bottom:0};var s=t.height,r=t.width;nj(t,"targetSize"),nj(e,"roi");var i,a,o=s/r,l=e.height/e.width,u=0,c=0;return o>l?(i=e.width,a=e.width*o,c=(1-l/o)/2):(i=e.height/o,a=e.height,u=(1-o/l)/2),e.width=i,e.height=a,{top:c,left:u,right:u,bottom:c}}(l,s,r),c=function(e,t,n,s){var r=e.width,i=e.height,a=s?-1:1,o=Math.cos(e.rotation),l=Math.sin(e.rotation),u=e.xCenter,c=e.yCenter,h=1/t,d=1/n,p=new Array(16);return p[0]=r*o*a*h,p[1]=-i*l*h,p[2]=0,p[3]=(-.5*r*o*a+.5*i*l+u)*h,p[4]=r*l*a*d,p[5]=i*o*d,p[6]=0,p[7]=(-.5*i*o-.5*r*l*a+c)*d,p[8]=0,p[9]=0,p[10]=r*h,p[11]=0,p[12]=0,p[13]=0,p[14]=0,p[15]=1,function(e){if(16!==e.length)throw new Error("Array length must be 16 but got "+e.length);return[[e[0],e[1],e[2],e[3]],[e[4],e[5],e[6],e[7]],[e[8],e[9],e[10],e[11]],[e[12],e[13],e[14],e[15]]]}(p)}(l,o.width,o.height,!1),h=Ao((function(){var t=tj(e),n=zp(function(e,t,n){return nj(n,"inputResolution"),[1/n.width*e[0][0]*t.width,1/n.height*e[0][1]*t.width,e[0][3]*t.width,1/n.width*e[1][0]*t.height,1/n.height*e[1][1]*t.height,e[1][3]*t.height,0,0]}(c,o,s),[1,8]),r="zero"===i?"constant":"nearest",l=bm.transform(Lh(Nl(t,"float32")),n,"bilinear",r,0,[s.height,s.width]);return null!=a?function(e,t){var n=function(e,t,n,s){var r=(s-n)/255;return{scale:r,offset:n-0*r}}(0,0,t[0],t[1]);return Ao((function(){return Dl(Fl(e,n.scale),n.offset)}))}(l,a):l}));return{imageTensor:h,padding:u,transformationMatrix:c}}function rj(e){return{xCenter:e.xMin+e.width/2,yCenter:e.yMin+e.height/2,width:e.width,height:e.height}}function ij(e){var t=e.relativeKeypoints;if(t.length<=1)throw new Error("2 or more keypoints required to calculate a rect.");var n=Number.MAX_VALUE,s=Number.MAX_VALUE,r=Number.MIN_VALUE,i=Number.MIN_VALUE;return t.forEach((function(e){n=Math.min(n,e.x),r=Math.max(r,e.x),s=Math.min(s,e.y),i=Math.max(i,e.y)})),{xCenter:(n+r)/2,yCenter:(s+i)/2,width:r-n,height:i-s}}function aj(e,t,n,s,r){var i="rect"===n?function(e,t,n){var s,r=e.locationData;if("boundingbox"===t)s=rj(r.boundingBox);else{s=ij(r);var i=n.width,a=n.height;s.xCenter=Math.round(s.xCenter*i),s.yCenter=Math.round(s.yCenter*a),s.width=Math.round(s.width*i),s.height=Math.round(s.height*a)}return s}(e,t,s):function(e,t){var n=e.locationData;return"boundingbox"===t?rj(n.relativeBoundingBox):ij(n)}(e,t);return r&&(i.rotation=function(e,t,n){var s,r=e.locationData,i=n.rotationVectorStartKeypointIndex,a=n.rotationVectorEndKeypointIndex;s=n.rotationVectorTargetAngle?n.rotationVectorTargetAngle:Math.PI*n.rotationVectorTargetAngleDegree/180;var o=r.relativeKeypoints[i].x*t.width,l=r.relativeKeypoints[i].y*t.height,u=r.relativeKeypoints[a].x*t.width,c=r.relativeKeypoints[a].y*t.height;return ej(s-Math.atan2(-(c-l),u-o))}(e,s,r)),i}function oj(e,t,n){for(var s=0;s1&&(h.y=s?t.inputImageHeight-a[u+1]:a[u+1]),i>2&&(h.z=a[u+2]),i>3&&(h.score=hj(t.visibilityActivation,a[u+3])),o.push(h);for(c=0;c0?r/i:0}(e,t)<=.5}))).push(e)}))})),l=y,[4,Promise.all(l.map((function(e){return m.faceLandmark(e,r)})))];case 4:for(u=g.sent(),c=[],this.prevFaceRectsFromLandmarks=[],h=0;h-1,[4,oS(t.landmarkModelUrl,{fromTFHub:n})];case 1:return s=i.sent(),[4,ZW(UW.MediaPipeFaceDetector,{modelType:"short",maxFaces:t.maxFaces,detectorModelUrl:t.detectorModelUrl,runtime:t.runtime})];case 2:return r=i.sent(),[2,new Tj(r,s,t.maxFaces,t.refineLandmarks)]}}))}))}(fj||(fj={})).MediaPipeFaceMesh="MediaPipeFaceMesh";Object.freeze({__proto__:null,getKeypointIndexByContour:function(e){if(e===fj.MediaPipeFaceMesh)return pW;throw new Error("Model "+e+" is not supported.")},getAdjacentPairs:function(e){if(e===fj.MediaPipeFaceMesh)return fW;throw new Error("Model "+e+" is not supported.")}});const Rj=(e,t,n,s)=>1===s?.5*(e+t):e+(t-e)*n/(s-1),Oj={applyExponentialOnBoxSize:!1,flipVertically:!1,ignoreClasses:[],numClasses:1,numBoxes:2304,numCoords:16,boxCoordOffset:0,keypointCoordOffset:4,numKeypoints:6,numValuesPerKeypoint:2,sigmoidScore:!0,scoreClippingThresh:100,reverseOutputOrder:!0,xScale:192,yScale:192,hScale:192,wScale:192,minScoreThresh:.6},Dj={reduceBoxesInLowestLayer:!1,interpolatedScaleAspectRatio:0,featureMapHeight:[],featureMapWidth:[],numLayers:1,minScale:.1484375,maxScale:.75,inputSizeHeight:192,inputSizeWidth:192,anchorOffsetX:.5,anchorOffsetY:.5,strides:[4],aspectRatios:[1],fixedAnchorSize:!0},Mj={outputTensorSize:{width:192,height:192},keepAspectRatio:!0,outputTensorFloatRange:[-1,1],borderMode:"zero"},zj=e=>{e.detector.imageToTensorConfig=Mj,e.detector.tensorsToDetectionConfig=Oj,e.detector.anchors=(e=>{null===e.reduceBoxesInLowestLayer&&(e.reduceBoxesInLowestLayer=!1),null===e.interpolatedScaleAspectRatio&&(e.interpolatedScaleAspectRatio=1),null===e.fixedAnchorSize&&(e.fixedAnchorSize=!1);const t=[];let n=0;for(;n0){const n=o===e.strides.length-1?1:Rj(e.minScale,e.maxScale,o+1,e.strides.length);a.push(Math.sqrt(t*n)),i.push(e.interpolatedScaleAspectRatio)}}o++}for(let e=0;e0)l=e.featureMapHeight[n],u=e.featureMapWidth[n];else{const t=e.strides[n];l=Math.ceil(e.inputSizeHeight/t),u=Math.ceil(e.inputSizeWidth/t)}for(let n=0;ne.width))),n=Mp(e.detector.anchors.map((e=>e.height))),s=Mp(e.detector.anchors.map((e=>e.xCenter))),r=Mp(e.detector.anchors.map((e=>e.yCenter)));e.detector.anchorTensor={x:s,y:r,w:t,h:n}},Fj=function(){this.model=function(e,t){return cW(this,void 0,void 0,(function(){var n,s;return hW(this,(function(r){if(e===fj.MediaPipeFaceMesh){if(s=void 0,null!=(n=t)){if("tfjs"===n.runtime)return[2,Nj(n)];if("mediapipe"===n.runtime)return[2,vW(n)];s=n.runtime}throw new Error("Expect modelConfig.runtime to be either 'tfjs' or 'mediapipe', but got "+s)}throw new Error(e+" is not a supported model name.")}))}))}(fj.MediaPipeFaceMesh,{runtime:"tfjs",detectorModelUrl:"https://tfhub.dev/mediapipe/tfjs-model/face_detection/full/1"}),this.predictionReady=!1,this.modelLoaded=!1};Fj.prototype.loadModel=async function(){this.modelLoaded||(this.model=await this.model,zj(this.model),this.modelLoaded=!0)},Fj.prototype.positionsArray=null,Fj.prototype.getEyePatches=async function(e,t,n,s){if(0===t.width)return null;const r=this.model,i=await r.estimateFaces(t,{flipHorizontal:!1});if(0===i.length)return!1;this.positionsArray=i[0].keypoints;const a=i[0],[o,l]=[{eyeTopArc:[466,388,387,386,385,384,398].map((e=>a.keypoints[e])),eyeBottomArc:[263,249,390,373,374,380,381,382,362].map((e=>a.keypoints[e]))},{eyeTopArc:[246,161,160,159,158,157,173].map((e=>a.keypoints[e])),eyeBottomArc:[33,7,163,144,145,153,154,155,133].map((e=>a.keypoints[e]))}].map((({eyeTopArc:e,eyeBottomArc:t})=>{const n={x:Math.round(Math.min(...e.map((e=>e.x)))),y:Math.round(Math.min(...e.map((e=>e.y))))},s=Math.round(Math.max(...t.map((e=>e.x)))),r=Math.round(Math.max(...t.map((e=>e.y))));return{origin:n,width:s-n.x,height:r-n.y}}));var u=o.origin.x,c=o.origin.y,h=o.width,d=o.height,p=l.origin.x,f=l.origin.y,m=l.width,g=l.height;if(0===h||0===m)return null;if(0===d||0===g)return null;var y={},b=t.getContext("2d").getImageData(u,c,h,d);y.left={patch:b,imagex:u,imagey:c,width:h,height:d};var w=t.getContext("2d").getImageData(p,f,m,g);return y.right={patch:w,imagex:p,imagey:f,width:m,height:g},this.predictionReady=!0,y},Fj.prototype.getPositions=function(){return this.positionsArray},Fj.prototype.reset=function(){},Fj.prototype.drawFaceOverlay=function(e,t){if(t){e.fillStyle="#32EEDB",e.strokeStyle="#32EEDB",e.lineWidth=.5;for(let n=0;nn?n:e}Lj.Eye=function(e,t,n,s,r){this.patch=e,this.imagex=t,this.imagey=n,this.width=s,this.height=r},Lj.getEyeFeats=function(e){var t=this.resizeEye(e.left,10,6),n=this.resizeEye(e.right,10,6),s=this.grayscale(t.data,t.width,t.height),r=this.grayscale(n.data,n.width,n.height),i=[];this.equalizeHistogram(s,5,i);var a=[];return this.equalizeHistogram(r,5,a),i.concat(a)},Lj.DataWindow=function(e,t){this.data=[],this.windowSize=e,this.index=0,this.length=0,t&&(this.data=t.slice(t.length-e,t.length),this.length=this.data.length)},Lj.DataWindow.prototype.push=function(e){return this.data.length>2),r=0,i=0,a=0;at?255:0;return e},Lj.correlation=function(e,t){const n=Math.min(e.length,t.length);let s=0;for(let r=0;rVj(e,t,((e,t)=>e+t)),sub:(e,t)=>Vj(e,t,((e,t)=>e-t)),inv:e=>Wj.solve(e,Wj.identity(e.length,e[0].length)),identity(e,t=e){const n=new Array(e);for(let s=0;se.length===e[0].length?Wj.LUDecomposition(e,t):Wj.QRDecomposition(e,t),LUDecomposition(e,t){for(var n=new Array(e.length),s=0;sMath.abs(c[f])&&(f=s);if(f!=r){for(p=0;p=0;p--){for(r=0;r=0;u--){for(r=0;r=0;n--){var s=this.screenXTrailArray.get(n),r=this.screenYTrailArray.get(n);if(Math.sqrt(Math.pow(s-e,2)+Math.pow(r-t,2))>72)return n+1}return n},Gj.addData=function(e,t,n){e&&("click"===n?(this.screenXClicksArray.push([t[0]]),this.screenYClicksArray.push([t[1]]),this.eyeFeaturesClicks.push(Uj.getEyeFeats(e)),this.dataClicks.push({eyes:e,screenPos:t,type:n})):"move"===n&&(this.screenXTrailArray.push([t[0]]),this.screenYTrailArray.push([t[1]]),this.eyeFeaturesTrail.push(Uj.getEyeFeats(e)),this.trailTimes.push(performance.now()),this.dataTrail.push({eyes:e,screenPos:t,type:n})))};const qj=Gj,Hj={RidgeReg:function(){this.init()}};Hj.RidgeReg.prototype.init=qj.InitRegression,Hj.RidgeReg.prototype.addData=qj.addData,Hj.RidgeReg.prototype.predict=function(e){if(!e||0===this.eyeFeaturesClicks.length)return null;for(var t=performance.now()-this.trailTime,n=[],s=[],r=[],i=0;it&&(n.push(this.screenXTrailArray.get(i)),s.push(this.screenYTrailArray.get(i)),r.push(this.eyeFeaturesTrail.get(i)));var a=this.screenXClicksArray.data.concat(n),o=this.screenYClicksArray.data.concat(s),l=this.eyeFeaturesClicks.data.concat(r),u=qj.ridge(a,l,this.ridgeParameter),c=qj.ridge(o,l,this.ridgeParameter),h=Uj.getEyeFeats(e),d=0;for(i=0;it&&(n.push(this.screenXTrailArray.get(i)),s.push(this.screenYTrailArray.get(i)),r.push(this.eyeFeaturesTrail.get(i)));var a=this.eyeFeaturesClicks.data.length,o=Array(a),l=Array(a),u=Array(a);for(i=0;isetTimeout(t,e)))}function tG(e,t){let n=Math.pow(10,t);return Math.round(e*n)/n}const nG={tracker:{}};nG.tracker.TFFaceMesh=Bj,nG.reg=Kj,nG.reg.RidgeWeightedReg=Xj.RidgeWeightedReg,nG.reg.RidgeRegThreaded=Jj.RidgeRegThreaded,nG.util=Uj,nG.params=iW;var sG=null,rG=null,iG=null,aG=null,oG=null,lG=null,uG=null,cG=!1,hG=new Array(50),dG=new Array(50),pG=(performance.now(),null),fG=null;nG.params.paused=!1,nG.params.greedyLearner=!1,nG.params.framerate=60,nG.params.showGazeDot=!1,nG.params.getLatestVideoFrameTimestamp=()=>{},nG.params.activeCamera={label:"",id:""};let mG=[];var gG=function(e){},yG=gG,bG=["click","move"],wG=performance.now(),vG=new nG.tracker.TFFaceMesh,xG=[new nG.reg.RidgeReg],AG={TFFacemesh:function(){return new nG.tracker.TFFaceMesh}},CG={ridge:function(){return new nG.reg.RidgeReg},weightedRidge:function(){return new nG.reg.RidgeWeightedReg},threadedRidge:function(){return new nG.reg.RidgeRegThreaded}},kG="webgazerGlobalData",SG="webgazerGlobalSettings",_G={},EG=[];let IG,TG,NG,RG,OG,DG,MG,zG,FG,BG,LG,PG;nG.computeValidationBoxSize=function(){var e=iG.videoWidth,t=iG.videoHeight,n=parseInt(iG.style.width),s=parseInt(iG.style.height),r=Math.min(e,t),i=e==Math.max(e,t)?n/e:s/t,a=r*nG.params.faceFeedbackBoxRatio*i;return[(s-a)/2,(n-a)/2,a,a]};let UG=!1,VG=!1;function WG(){null!==lG&&pG?(UG||VG||(VG=!0,setTimeout((()=>{IG=iG.videoWidth,TG=iG.videoHeight,NG=Math.min(IG,TG),RG=NG*nG.params.faceFeedbackBoxRatio,OG=(TG-RG)/2,DG=(IG-RG)/2,MG=DG+RG,zG=OG+RG,UG=!0,VG=!1}),500)),FG=IG-pG.left.imagex,LG=IG-pG.right.imagex,BG=pG.left.imagey,PG=pG.right.imagey,lG.style.border=UG&&FG>DG&&FGDG&&LGOG&&BGOG&&PG=1e3/nG.params.framerate&&(XG=$G,fG=qG(),fG=await fG,yG(fG),ZG=!0,fG)){HG.push(fG);var e=0,t=0,n=HG.length;for(var s in HG.data)e+=HG.get(s).x,t+=HG.get(s).y;var r=Uj.bound({x:e/n,y:t/n});nG.params.storingPoints&&(nG.storePoints(r.x,r.y,KG),50==++KG&&(KG=0)),uG.style.opacity="",uG.style.left=`${r.x}px`,uG.style.top=`${r.y}px`}requestAnimationFrame(QG)}var JG=function(e,t,n){if(!nG.params.paused){if(0===xG.length)return null;for(var s in xG)pG&&xG[s].addData(pG,[e,t],n)}},eq=async function(e){JG(e.clientX,e.clientY,bG[0]),nG.params.saveDataAcrossSessions&&await async function(){var e=xG[0].getData()||EG;oW().setItem(SG,_G),oW().setItem(kG,e)}()},tq=function(e){if(!nG.params.paused){var t=performance.now();tnG.params.activeCamera.id?{video:{...e.video,deviceId:nG.params.activeCamera.id}}:e;function aq(e){navigator.vendor&&navigator.vendor.indexOf("Apple")>-1?(e.style.opacity=nG.params.showVideo?"1":"0",e.style.display="block"):e.style.display=nG.params.showVideo?"block":"none"}nG._begin=function(e,t){if(!nG.params.videoIsOn)return void 0===navigator.mediaDevices&&(navigator.mediaDevices={}),void 0===navigator.mediaDevices.getUserMedia&&(navigator.mediaDevices.getUserMedia=function(e){var t=navigator.webkitGetUserMedia||navigator.mozGetUserMedia;return t?new Promise((function(n,s){t.call(navigator,e,n,s)})):Promise.reject(new Error("Unfortunately, your browser does not support access to the webcam through the getUserMedia API. Try to use the latest version of Google Chrome, Mozilla Firefox, Opera, or Microsoft Edge instead."))}),new Promise((async(n,s)=>{let r;try{if(void 0!==navigator.mediaDevices&&"function"==typeof navigator.mediaDevices.enumerateDevices){const s=await navigator.mediaDevices.enumerateDevices();if((e=>{let t,n;mG=[],e.forEach((e=>{"videoinput"===e.kind&&mG.push(e),e.label.includes("FaceTime")&&(t=e.label,n=e.deviceId)})),mG.length&&(nG.params.activeCamera.label=t||mG[0].label,nG.params.activeCamera.id=n||mG[0].deviceId)})(s),0===mG.length)throw t(mG),JSON.stringify({message:"We can't find any video input devices.",devices:s});try{r=await navigator.mediaDevices.getUserMedia(iq(nG.params.camConstraints))}catch(e){throw t(mG),e}rq(e?"video":"all",r).then((()=>{mG.length>1&&(e=>{const t=rG,n=document.createElement("select");n.className=n.id="webgazer-videoinput-select",n.name="videoinput",e.forEach(((e,t)=>{var s;n.innerHTML+=``})),n.onchange=e=>{const[t,s]=n.value.split("%");nG.params.activeCamera.label=s,nG.params.activeCamera.id=t,nG.setCameraConstraints(iq(nG.params.camConstraints))},t.appendChild(n)})(mG)})),nG.params.videoIsOn=!0,e||n(nG)}else t([])}catch(e){throw iG=null,r=null,t([]),s(e),JSON.stringify({error:e,devices:await navigator.mediaDevices.enumerateDevices()})}}));rq("gaze")},nG.isReady=function(){return null!==aG&&aG.width>0},nG.pause=function(){return nG.params.paused=!0,nG},nG.stopLearning=function(e){return sq(e),nG},nG.startLearning=function(e){return nq(e),nG},nG.resume=async function(){return nG.params.paused?(nG.params.paused=!1,ZG=!0,oq.current&&(clearInterval(oq.current),oq.current=void 0,cG=!1,uG.style.backgroundColor="",uG.style.opacity=""),await QG(),nG):nG},nG.end=function(e=!1){return e&&(HG=new Uj.DataWindow(4),KG=0,$G=null,XG=-1,UG=!1,nG.params.videoIsOn=!1,setTimeout((()=>{nG.stopVideo(),rG.remove()}),500)),nG},nG.stopVideo=function(){return sG.getTracks()[0].stop(),nG},nG.detectCompatibility=function(){return void 0!==(navigator.mediaDevices.getUserMedia||navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia)},nG.showVideoPreview=function(e){return nG.params.showVideoPreview=e,nG.showVideo(e&&nG.params.showVideo),nG.showFaceOverlay(e&&nG.params.showFaceOverlay),nG.showFaceFeedbackBox(e&&nG.params.showFaceFeedbackBox),nG},nG.showVideo=function(e,t=.8){return nG.params.showVideo=e,iG&&aq(iG),rG&&aq(rG),nG},nG.showFaceOverlay=function(e){return nG.params.showFaceOverlay=e,oG&&(oG.style.display=e?"block":"none"),nG},nG.showFaceFeedbackBox=function(e){return nG.params.showFaceFeedbackBox=e,lG&&(lG.style.display=e?"block":"none"),nG},nG.showPredictionPoints=function(e){return nG.params.showGazeDot=e,uG&&(uG.style.display=e?"block":"none"),nG};const oq={current:void 0};function lq(e,t){aG&&(aG.width=e,aG.height=t),oG&&(oG.width=e,oG.height=t)}nG.popPredictionPoints=function(){return oq.current&&(clearInterval(oq.current),oq.current=void 0,cG=!1),uG&&nG.params.showGazeDot&&(cG=!0,uG.style.backgroundColor="red",uG.style.opacity=1,oq.current=setInterval((()=>{uG.style.opacity-=.02,uG.style.opacity<=.02&&(clearInterval(oq.current),oq.current=void 0,cG=!1,uG.style.backgroundColor="",uG.style.opacity="")}),50)),nG},nG.saveDataAcrossSessions=function(e){return nG.params.saveDataAcrossSessions=e,nG},nG.applyKalmanFilter=function(e){return nG.params.applyKalmanFilter=e,nG},nG.setCameraConstraints=async function(e){if(nG.params.camConstraints=e,sG){nG.pause();try{sG.getVideoTracks().forEach((e=>{e.stop()}));const e=await navigator.mediaDevices.getUserMedia(nG.params.camConstraints);setTimeout((()=>{const t=e.getVideoTracks()[0].getSettings();sG=e,iG.srcObject=e,lq(t.width,t.height)}),1500)}catch(e){return}await nG.resume()}},nG.setStaticVideo=function(e){return e,nG},nG.setVideoViewerSize=function(e,t){nG.params.videoViewerWidth=e,nG.params.videoViewerHeight=t,iG.style.width=e+"px",iG.style.height=t+"px",rG.style.width=e+"px",rG.style.height=t+"px",oG.style.width=e+"px",oG.style.height=t+"px";var n=nG.computeValidationBoxSize();lG.style.top=n[0]+"px",lG.style.left=n[1]+"px",lG.style.width=n[2]+"px",lG.style.height=n[3]+"px"},nG.addMouseEventListeners=function(){return nq(),nG},nG.removeMouseEventListeners=function(){return sq(),nG},nG.recordScreenPosition=function(e,t,n){return JG(e,t,n||bG[0]),nG},nG.storePoints=function(e,t,n){hG[n]=e,dG[n]=t},nG.setTracker=function(e){if(void 0===AG[e]){for(var t in AG);return nG}return vG=AG[e](),nG},nG.setRegression=function(e){if(void 0===CG[e]){for(var t in CG);return nG}return EG=xG[0].getData(),(xG=[CG[e]()])[0].setData(EG),nG},nG.addTrackerModule=function(e,t){AG[e]=function(){return new t}},nG.addRegressionModule=function(e,t){CG[e]=function(){return new t}},nG.addRegression=function(e){var t=CG[e]();return EG=xG[0].getData(),t.setData(EG),xG.push(t),nG},nG.setGazeListener=function(e){return yG=e,nG},nG.clearGazeListener=function(){return yG=gG,nG},nG.setVideoElementCanvas=function(e){return aG=e},nG.clearData=async function(){!function(){for(var e in oW().clear(),xG)xG[e].init()}()},nG.getTracker=function(){return vG},nG.getRegression=function(){return xG},nG.getCurrentPrediction=async function(e=0,t=150,n=5){let s=0;const r=[],i=[];for(let e=0;et.x>=0&&t.x<=window.innerWidth?e+t.x:e),0)/i.length),l=Math.round(i.reduce(((e,t)=>t.y>=0&&t.y<=window.innerHeight?e+t.y:e),0)/i.length);return uG&&(uG.style.left=`${o}px`,uG.style.top=`${l}px`),{x:o,y:l,raw:i.map((e=>({x:tG(e.x,0),y:tG(e.y,0)})))}},nG.params.getEventTypes=function(){return bG.slice()},nG.getVideoElementCanvas=function(){return aG},nG.getVideoPreviewToCameraResolutionRatio=function(){return[nG.params.videoViewerWidth/iG.videoWidth,nG.params.videoViewerHeight/iG.videoHeight]},nG.getStoredPoints=function(){return[hG,dG]};const uq=nG;class cq{constructor(e){this.calibrator=e,this.webgazer=uq,this.defaultGazeCallback=null,this.defaultDistanceTrackCallback=null,this._initialized={distance:!1,gaze:!1},this._learning=!0,this._running={distance:!1,gaze:!1},this._runningVideo=!1,this._toFixedN=1}begin({pipWidthPx:e},t){this.checkInitialized("gaze",!0)&&(this._running.gaze||(this.webgazer.begin(this.videoFailed.bind(this)),this._running.gaze=!0,this._runningVideo=!0),Oe(this.calibrator,e,this.calibrator.params.videoOpacity,this.webgazer,t))}beginVideo({pipWidthPx:e},t){this.checkInitialized("distance",!0)&&(this._runningVideo||(this.webgazer.beginVideo(this.videoFailed.bind(this)),this._runningVideo=!0),Oe(this.calibrator,e,this.calibrator.params.videoOpacity,this.webgazer,t))}videoFailed(e){const t=ie(this.calibrator,{showIcon:!0});Q().fire({...t,icon:"error",iconColor:this.calibrator._CONST.COLOR.DARK_RED,showConfirmButton:!1,html:e.length?W.H.RC_errorCameraUseDenied[this.calibrator.L]:W.H.RC_errorNoCamera[this.calibrator.L]})}attachNewCallback(e){this.checkInitialized("gaze",!0)&&this.webgazer.setGazeListener((t=>{if(t){const n=this.calibrator.newGazePositionData=this.getData(t);(0,E.nB)(e,n)}}))}async getGazeNow(e={},t){e=Object.assign({wait:0,frames:5},e);const n=this.calibrator.newGazePositionData=this.getData(await this.webgazer.getCurrentPrediction(0,e.wait,e.frames));return this.webgazer.popPredictionPoints(),(0,E.nB)(t,n),n}end(){this.webgazer.end()}}cq.prototype._init=function({greedyLearner:e,framerate:t,toFixedN:n,showVideo:s,showFaceOverlay:r,showGazer:i},a){this.checkInitialized(a)||("gaze"===a&&(this.webgazer.params.greedyLearner=e,this.webgazer.params.framerate=t,this.webgazer.params.getLatestVideoFrameTimestamp=this._getLatestVideoTimestamp.bind(this),this.showGazer(i)),this._toFixedN=n,this.showVideo(s),this.showFaceOverlay(r),this._initialized[a]=!0)},cq.prototype.checkInitialized=function(e,t=!1){return!!(""===e?this._initialized.gaze||this._initialized.distance:this._initialized[e])},cq.prototype.getData=function(e){const t=performance.now();return{value:{x:(0,E.Nh)(e.x,this._toFixedN),y:(0,E.Nh)(e.y,this._toFixedN),latencyMs:t-this.calibrator._trackingVideoFrameTimestamps.gaze},timestamp:t,raw:e.raw?e.raw:void 0}},cq.prototype.pause=function(){this.webgazer.pause()},cq.prototype.resume=function(){this.webgazer.resume()},cq.prototype.end=function(e,t=!1){if(!this.checkInitialized(e,!0))return;const n=t||!this._initialized.gaze||!this._initialized.distance;"gaze"===e?(this._endGaze(),n&&this.checkInitialized("distance")&&this.calibrator.endDistance(!1,!1),this.calibrator._trackingVideoFrameTimestamps.gaze=0):(this.defaultDistanceTrackCallback=null,n&&this.checkInitialized("gaze")&&this._endGaze()),n?(this._initialized={distance:!1,gaze:!1},this._running={distance:!1,gaze:!1},this.webgazer.end(!0),this._runningVideo=!1):(this._initialized[e]=!1,this._running[e]=!1)},cq.prototype._endGaze=function(){this.webgazer.params.paused=!0,this._learning=!0,this.defaultGazeCallback=null,this.webgazer.clearData(),this.webgazer.params.greedyLearner=!1,this.webgazer.params.framerate=60,this.webgazer.params.getLatestVideoFrameTimestamp=()=>{}},cq.prototype._getLatestVideoTimestamp=function(e){this.calibrator._trackingVideoFrameTimestamps.gaze=e},cq.prototype.startStoringPoints=function(){this.webgazer.params.storingPoints=!0},cq.prototype.stopStoringPoints=function(){this.webgazer.params.storingPoints=!1},cq.prototype.startLearning=function(e){this._learning||(this.webgazer.startLearning(e),this._learning=!0)},cq.prototype.stopLearning=function(e){this._learning&&(this.webgazer.stopLearning(e),this._learning=!1)},cq.prototype.showGazer=function(e){this.webgazer.showPredictionPoints(e)},cq.prototype.showVideo=function(e){this.webgazer.showVideo(e,this.calibrator._params.videoOpacity)},cq.prototype.showFaceOverlay=function(e){this.webgazer.showFaceOverlay(e)},_.A.prototype.performanceCompute=async function(e,t=!1){if(!this.checkInitialized())return;const n=performance.now(),s={_useless:void 0,time:0,randomTime:0};for(;performance.now()-n<500;)s._useless=Array(5e3).fill(Math.floor(10*Math.random())),s.time++;const r=performance.now();for(s._useless=0;performance.now()-r<500;)s._useless+=Math.random(),s.randomTime++;const i={value:{computeArrayFillMHz:(0,E.Nh)(2*s.time/1e6,3),computeRandomMHz:(0,E.Nh)(2*s.randomTime/1e6,3),idealFps:void 0,stressFps:void 0},timestamp:performance.now()};return t||(this.newPerformanceData=i),(0,E.nB)(e,i),i},_.A.prototype.performance=async function(e={},t){if(!this.checkInitialized())return;e=Object.assign({testComputation:!0,testFrameCount:180,testObjectCount:1e4,headline:"🚀 "+W.H.RC_performanceTitle[this.L],description:W.H.RC_performanceIntro[this.L]},e),this._addBackground(),this._addBackgroundText(e.headline,e.description),await(0,E.yy)(200);const n=e.testComputation?await this.performanceCompute(null,!0):{value:{computeArrayFillMHz:void 0,computeRandomMHz:void 0}},s=document.createElement("canvas"),r=s.getContext("2d");s.width=window.innerWidth,s.height=window.innerHeight,this.background.appendChild(s);const i=await hq(r),a=await dq(r,e.testFrameCount,e.testObjectCount),o=this.newPerformanceData={value:{computeArrayFillMHz:n.value.computeArrayFillMHz,computeRandomMHz:n.value.computeRandomMHz,idealFps:Math.round(6e4/(i.end-i.start)),stressFps:Math.round(1e3*e.testFrameCount/(a.end-a.start))},timestamp:performance.now()};return this._removeBackground(),(0,E.nB)(t,o),o};const hq=()=>{let e=60;const t=performance.now();return new Promise((n=>{const s=()=>{e--,e>0?requestAnimationFrame(s):n({start:t,end:performance.now()})};requestAnimationFrame(s)}))},dq=async(e,t,n)=>{let s=t;const r=[],i=["#000000","#333333","#999999"];for(let e=0;e{const n=()=>{e.clearRect(0,0,window.innerWidth,window.innerHeight),e.beginPath();for(const t of r)t.move(),t.draw(e);s--,s>0?requestAnimationFrame(n):t({start:a,end:performance.now()})};requestAnimationFrame(n)}))};class pq{constructor(e){this.w=(0,E.Av)(20,70),this.h=(0,E.Av)(30,70),this.x=-this.w+Math.random()*window.innerWidth,this.y=-this.h/2+Math.random()*(window.innerHeight+this.h/2),this.speed=(0,E.Av)(1,5),this.stroke=e[Math.floor(Math.random()*e.length)]}move(){this.x+=this.speed+.5*Math.random(),this.x>window.innerWidth&&(this.x=-this.w)}draw(e){e.strokeStyle=this.stroke,e.fillRect(this.x,this.y,this.w,this.h),e.strokeRect(this.x,this.y,this.w,this.h)}}_.A.prototype.getEquipment=async function(e,t=!1){if(this.equipment&&!t)return(0,E.nB)(e);this._replaceBackground();const{CM:n,IN_D:s,IN_F:r}=this._CONST.UNITS,i={};i[n]="centimeter",i[s]="inch (decimal, e.g. 11.5 in)",i[r]="inch (fractional, e.g. 12 3/8 in)";const{value:a}=await Q().fire({...ie(this,{showIcon:!1}),title:"Do you have a ruler or tape measure?",html:"Ideally, it should be long enough to measure your viewing distance, but even a 6 inch (15 cm) ruler can be useful. Please select the units you'll use, or indicate that no ruler or tape measure is available.",input:"select",inputOptions:{...i,none:"No ruler or tape measure is available"},inputPlaceholder:"Select an option",inputValidator:e=>new Promise((t=>{e.length||t("Please select an option.");const n="none"!==e;this.newEquipmentData={value:{has:n,unit:n?e:null,equipment:n?"":null},timestamp:performance.now()},t()}))});return a?(0,E.nB)(e):void 0};var fq=__webpack_require__(2016),mq=__webpack_require__(980),gq=__webpack_require__.n(mq),yq=__webpack_require__(3890),bq=__webpack_require__.n(yq);_.A.prototype._checkScreenSize=async function(e,t,n){await this.getEquipment((()=>{wq(this,e,t,n)}))};const wq=async(e,t,n,s)=>{if(e.equipment&&e.equipment.value.has){e._replaceBackground((0,E.$O)("📏 Measure the Length of the Arrow",'Use your ruler (or tape measure) to measure the length of the arrow. Type your numerical answer into the box. Just digits, period, decimal comma, and / (forward slash) for fractional inches. Then click OK or hit RETURN.'));const t=t=>[()=>{const n=document.createElement("div");e.background.appendChild(n),n.outerHTML=t},()=>{for(const t of e.background.getElementsByClassName("arrow-two-sided-svg"))t.remove()},{callback:()=>{},content:"Ruler is too short"}],n=await(0,fq.K)(e,...t(gq())),r=await(0,fq.K)(e,...t(bq())),i={};if(n){const t=n.value,s=e.windowWidthPx.value,r=(0,E.Nh)(2.54*s/e.screenPpi.value,1);i.horizontal={...t,calibratorArrowWidthCm:r,arrowWidthPx:s}}if(r){const t=r.value,n=e.windowHeightPx.value,s=(0,E.Nh)(2.54*n/e.screenPpi.value,1);i.vertical={...t,calibratorArrowHeightCm:s,arrowHeightPx:n}}if(i.vertical||i.horizontal){const t={value:i,timestamp:n?n.timestamp:r.timestamp,measure:"screenSize"};e.newCheckData=t,(0,E.nB)(s,t)}}e._removeBackground(),(0,E.nB)(t,n)};_.A.prototype._checkDistance=async function(e,t,n,s){await this.getEquipment((()=>vq(this,e,t,n,s)))};const vq=async(e,t,n,s,r)=>{const i="trackDistance"===s,a=()=>{e._removeBackground(),i||(0,E.nB)(t,n)};if(i&&(0,E.nB)(t,n),e.equipment&&e.equipment.value.has){e._replaceBackground((0,E.$O)("📏 Hold Still and Measure Viewing Distance with Ruler",'Hold still so that your viewing distance from the screen stays unchanged from the last measurement. Please measure the distance from the middle of your screen to one of your eyes using your ruler (or measuring tape). If your ruler is not long enough, then select "Ruler is too short" below. Type your numerical answer into the box, then click OK or hit RETURN.'));const t=await(0,fq.K)(e,null,null,{callback:()=>{},content:"Ruler is too short"});if(t){const n={value:{...t.value,calibratorCm:e.viewingDistanceCm.value,calibratorMethod:e.viewingDistanceCm.method},timestamp:t.timestamp,measure:s};return e.newCheckData=n,a(),void(0,E.nB)(r,n)}}a()};var xq=__webpack_require__(7790),Aq=__webpack_require__(627),Cq=__webpack_require__.n(Aq),kq=__webpack_require__(8110),Sq=__webpack_require__.n(kq),_q=__webpack_require__(5072),Eq=__webpack_require__.n(_q),Iq=__webpack_require__(7825),Tq=__webpack_require__.n(Iq),Nq=__webpack_require__(7659),Rq=__webpack_require__.n(Nq),Oq=__webpack_require__(5056),Dq=__webpack_require__.n(Oq),Mq=__webpack_require__(540),zq=__webpack_require__.n(Mq),Fq=__webpack_require__(1113),Bq=__webpack_require__.n(Fq),Lq=__webpack_require__(4636),Pq={};Pq.styleTagTransform=Bq(),Pq.setAttributes=Dq(),Pq.insert=Rq().bind(null,"head"),Pq.domAPI=Tq(),Pq.insertStyleElement=zq();Eq()(Lq.A,Pq);Lq.A&&Lq.A.locals&&Lq.A.locals;_.A.prototype.removePanel=function(){return!!this._panelStatus.hasPanel&&(this._panel.panelObserver.unobserve(this._panel.panel),this._panel.panel.remove(),this._panel.panel=null,this._panel.panelObserver=null,this._panel.panelTasks=[],this._panel.panelParent=null,this._panel.panelOptions={},this._panel.panelCallback=null,this._panel.panelResolve=null,this._panelStatus.hasPanel=!1,this._panelStatus.panelFinished=!1,Zq(this),!0)},_.A.prototype.resetPanel=function(e=null,t=null,n=null,s=null,r=null){if(!this._panelStatus.hasPanel)return!1;const i=e||[...this._panel.panelTasks],a=n||{...this._panel.panelOptions},o=s&&"function"==typeof s?s:this._panel.panelCallback,l=r||this._panel.panelResolve;return null!==t&&t!==this._panel.panelParent?(this.removePanel(),this.panel(i,t,a,o,l)):(Zq(this),this.panel(i,this._panel.panelParent,a,o,l,!0))},_.A.prototype.panel=async function(e,t,n={},s=null,r=null,i=!1){if(this._panelStatus.hasPanel^i)return!1;if(!Wq(e))return!1;const a=document.querySelector(t);if(!a)return!1;const o=je((n=Object.assign({headline:W.H.RC_panelTitle[this.L],description:W.H.RC_panelIntro[this.L],showNextButton:!1,nextHeadline:W.H.RC_panelTitleNext[this.L],nextDescription:W.H.RC_panelIntroNext[this.L],nextButton:W.H.RC_panelButton[this.L],color:"#3490de",debug:!1,i18n:!0,_demoActivateAll:!1},n)).color).darken(20).toString();document.documentElement.style.setProperty("--rc-panel-theme-color",n.color),document.documentElement.style.setProperty("--rc-panel-darken-color",o),document.documentElement.style.setProperty("--rc-panel-theme-color-semi",n.color+"66"),document.documentElement.style.setProperty("--rc-panel-darken-color-semi",o+"88");const l=document.createElement("div");l.className=l.id="rc-panel",this.LD===this._CONST.RTL?l.className+=" rc-lang-rtl":l.className+=" rc-lang-ltr",n.i18n&&(l.innerHTML+='
      '),l.innerHTML+=`

      ${n.headline}

      `,l.innerHTML+=`

      ${n.description}

      `,l.innerHTML+='
      ',i?a.replaceChild(l,this._panel.panel):a.appendChild(l);const u=l.querySelector("#rc-panel-steps"),c=new ResizeObserver((()=>{qq(u,l.offsetWidth,this.LD)}));if(c.observe(l),qq(u,l.offsetWidth,this.LD),0===e.length)u.className+=" rc-panel-no-steps";else for(const t in e){const s=jq(this,t,e[t],n);u.appendChild(s)}(n.showNextButton||n._demoActivateAll)&&u.appendChild(Gq(e.length,n));Hq(this,{index:0,finished:[]},e,n,s),this._panel.panel=l,this._panel.panelObserver=c,this._panel.panelTasks=e,this._panel.panelParent=t;const h={...n};return n.headline===W.H.RC_panelTitle[this.L]&&delete h.headline,n.description===W.H.RC_panelIntro[this.L]&&delete h.description,n.nextHeadline===W.H.RC_panelTitleNext[this.L]&&delete h.nextHeadline,n.nextDescription===W.H.RC_panelIntroNext[this.L]&&delete h.nextDescription,n.nextButton===W.H.RC_panelButton[this.L]&&delete h.nextButton,this._panel.panelOptions=h,this._panel.panelCallback=s,this._panel.panelResolve=r,this._panelStatus.hasPanel=!0,this._panelStatus.panelFinished=!1,n.i18n&&Yq(this,document.querySelector("#rc-panel-language-parent"),o),n.debug&&(0,xq.K)(this,l,e,s),null===r&&(r=!0),new Promise((e=>{const t=setInterval((()=>{this._panelStatus.panelFinished&&(clearInterval(t),e(r))}),100);this._panelStatus.panelResolveIntervals.push(t)}))};const Uq={screenSize:{use:1,name:W.H.RC_screenSize["en-US"],phraseHandle:"RC_screenSize"},measureDistance:{use:1,name:W.H.RC_viewingDistance["en-US"],phraseHandle:"RC_viewingDistance"},trackDistance:{use:2,name:W.H.RC_distanceTracking["en-US"],phraseHandle:"RC_distanceTracking"},trackGaze:{use:2,name:W.H.RC_gazeTracking["en-US"],phraseHandle:"RC_gazeTracking"},performance:{use:1,name:W.H.RC_performance["en-US"],phraseHandle:"RC_performance"}},Vq=Object.keys(Uq),Wq=e=>{if(!Array.isArray(e))return!1;for(const t of e){if(!("object"!=typeof t||null!==t&&Vq.includes(t.name)))return!1;if("string"==typeof t&&!Vq.includes(t))return!1}return!0},jq=(e,t,n,s)=>{let r,i;switch(Uq[$q(n)].use){case 0:case 1:default:r="",i="";break;case 2:r=Cq(),i=W.H.RC_panelUsesWebcam[e.L];break;case 3:r=Cq()+Sq(),i=W.H.RC_panelUsesWebcamPhone[e.L]}const a=document.createElement("button");return a.className="rc-panel-step rc-panel-step-todo"+(s._demoActivateAll?" rc-panel-step-active":" rc-panel-step-inactive"),a.dataset.index=t,a.innerHTML=(r.length?`

      ${r}

      `:"")+`

      ${Number(t)+1}  ${W.H[Uq[$q(n)].phraseHandle][e.L]}

      `+(r.length?`

      ${r} ${i}

      `:""),a},Gq=(e,t)=>{const n=document.createElement("button");return n.className="rc-panel-step rc-panel-next-button rc-panel-step-inactive",n.dataset.index=e,n.innerHTML=`

      ${t.nextButton}

      `,n},qq=(e,t,n)=>{t<640?(e.classList.add("rc-panel-steps-s"),e.classList.remove("rc-panel-steps-l"),e.childNodes.forEach((e=>{e.classList.add(`rc-lang-${n.toLowerCase()}`)}))):(e.classList.add("rc-panel-steps-l"),e.classList.remove("rc-panel-steps-s"),e.childNodes.forEach((e=>{e.classList.remove("rc-lang-ltr"),e.classList.remove("rc-lang-rtl")})))},Hq=(e,t,n,s,r)=>{document.querySelectorAll(".rc-panel-step").forEach(((i,a)=>{const o=Number(i.dataset.index);if(s._demoActivateAll)i.onclick=()=>{e[$q(n[a])](...Xq(n[a])),Kq(a),t.finished.push($q(n[a]));for(const e of n)if(!t.finished.includes($q(e)))return;const s=document.querySelector(".rc-panel-next-button");s.classList.replace("rc-panel-step-inactive","rc-panel-step-active"),s.onclick=()=>{e._panelStatus.panelFinished=!0,(0,E.nB)(r,{timestamp:performance.now()})}};else if(o===t.index)if(i.classList.replace("rc-panel-step-inactive","rc-panel-step-active"),i.focus(),o!==n.length)o!==n.length-1||s.showNextButton?i.onclick=()=>{e[$q(n[t.index])](...Xq(n[t.index],(()=>{Kq(t.index),t.index++,Hq(e,t,n,s,r)})))}:i.onclick=()=>{e[$q(n[t.index])](...Xq(n[t.index],(()=>{Kq(t.index)}),r,(()=>{e._panelStatus.panelFinished=!0})))};else if(o===n.length&&s.showNextButton){const{headline:t,nextHeadline:n,description:a,nextDescription:o}=s;t!==n&&(document.querySelector("#rc-panel-title").innerHTML=n),a!==o&&(document.querySelector("#rc-panel-description").innerHTML=o),i.onclick=()=>{e._panelStatus.panelFinished=!0,(0,E.nB)(r,{timestamp:performance.now()})}}}))},Kq=e=>{document.querySelectorAll(".rc-panel-step").forEach((t=>{Number(t.dataset.index)===e&&(t.classList.replace("rc-panel-step-todo","rc-panel-step-finished"),t.classList.replace("rc-panel-step-active","rc-panel-step-inactive"))}))},$q=e=>"string"==typeof e?e:e.name,Xq=(e,t,n=null,s=null)=>{"string"==typeof e&&(e={name:e});const r=()=>{(0,E.nB)(t),(0,E.nB)(n,{timestamp:performance.now()}),(0,E.nB)(s)};return["screenSize","measureDistance","performance"].includes(e.name)?[e.options||{},t=>{(0,E.nB)(e.callback,t),r()}]:"trackGaze"===e.name?[e.options||{},t=>{(0,E.nB)(e.callbackOnCalibrationEnd,t),r()},e.callbackTrack||null]:"trackDistance"===e.name?[e.options||{},t=>{(0,E.nB)(e.callbackStatic,t),r()},e.callbackTrack||null]:void 0},Zq=e=>{e._panelStatus.panelResolveIntervals.forEach((e=>clearInterval(e))),e._panelStatus.panelResolveIntervals=[]},Yq=(e,t,n)=>{let s=`",t.innerHTML=s,document.querySelector("#rc-panel-lang-picker").onchange=()=>{e.newLanguage(document.querySelector("#rc-panel-lang-picker").value),e.resetPanel()}};_.A.prototype.backgroundColor=function(e=null){if(!this.checkInitialized())return null;null!==e&&/^#([0-9A-F]{3}){1,2}$/i.test(e)?this._params.backgroundColor=e:this._params.backgroundColor="#eee";const t=document.querySelector("#calibration-background");return t&&(t.style.background=this.params.backgroundColor),this.params.backgroundColor},_.A.prototype.videoOpacity=function(e=null){if(!this.checkInitialized())return null;null===e||Number(e)!==e||Number(e)>1||Number(e)<0?this._params.videoOpacity=.8:this._params.videoOpacity=e;const t=document.querySelector("#webgazerVideoContainer");return t&&(t.style.opacity=this.params.videoOpacity),this.params.videoOpacity},_.A.prototype.showCancelButton=function(e=!0){return this.checkInitialized()?(this._params.showCancelButton=!!e,this.params.showCancelButton):null};var Qq=__webpack_require__(9725),Jq={};Jq.styleTagTransform=Bq(),Jq.setAttributes=Dq(),Jq.insert=Rq().bind(null,"head"),Jq.domAPI=Tq(),Jq.insertStyleElement=zq();Eq()(Qq.A,Jq);Qq.A&&Qq.A.locals&&Qq.A.locals;var eH=__webpack_require__(5151),tH={};tH.styleTagTransform=Bq(),tH.setAttributes=Dq(),tH.insert=Rq().bind(null,"head"),tH.domAPI=Tq(),tH.insertStyleElement=zq();Eq()(eH.A,tH);eH.A&&eH.A.locals&&eH.A.locals;var nH=__webpack_require__(2945),sH={};sH.styleTagTransform=Bq(),sH.setAttributes=Dq(),sH.insert=Rq().bind(null,"head"),sH.domAPI=Tq(),sH.insertStyleElement=zq();Eq()(nH.A,sH);nH.A&&nH.A.locals&&nH.A.locals;var rH=__webpack_require__(9057),iH={};iH.styleTagTransform=Bq(),iH.setAttributes=Dq(),iH.insert=Rq().bind(null,"head"),iH.domAPI=Tq(),iH.insertStyleElement=zq();Eq()(rH.A,iH);rH.A&&rH.A.locals&&rH.A.locals;var aH=__webpack_require__(4889),oH={};oH.styleTagTransform=Bq(),oH.setAttributes=Dq(),oH.insert=Rq().bind(null,"head"),oH.domAPI=Tq(),oH.insertStyleElement=zq();Eq()(aH.A,oH);aH.A&&aH.A.locals&&aH.A.locals;var lH=__webpack_require__(2636),uH={};uH.styleTagTransform=Bq(),uH.setAttributes=Dq(),uH.insert=Rq().bind(null,"head"),uH.domAPI=Tq(),uH.insertStyleElement=zq();Eq()(lH.A,uH);lH.A&&lH.A.locals&&lH.A.locals;var cH=__webpack_require__(2921),hH={};hH.styleTagTransform=Bq(),hH.setAttributes=Dq(),hH.insert=Rq().bind(null,"head"),hH.domAPI=Tq(),hH.insertStyleElement=zq();Eq()(cH.A,hH);cH.A&&cH.A.locals&&cH.A.locals;var dH=__webpack_require__(7271),pH={};pH.styleTagTransform=Bq(),pH.setAttributes=Dq(),pH.insert=Rq().bind(null,"head"),pH.domAPI=Tq(),pH.insertStyleElement=zq();Eq()(dH.A,pH);dH.A&&dH.A.locals&&dH.A.locals;var fH=__webpack_require__(2551),mH={};mH.styleTagTransform=Bq(),mH.setAttributes=Dq(),mH.insert=Rq().bind(null,"head"),mH.domAPI=Tq(),mH.insertStyleElement=zq();Eq()(fH.A,mH);fH.A&&fH.A.locals&&fH.A.locals;var gH=__webpack_require__(8470),yH={};yH.styleTagTransform=Bq(),yH.setAttributes=Dq(),yH.insert=Rq().bind(null,"head"),yH.domAPI=Tq(),yH.insertStyleElement=zq();Eq()(gH.A,yH);gH.A&&gH.A.locals&&gH.A.locals;var bH=__webpack_require__(2535),wH={};wH.styleTagTransform=Bq(),wH.setAttributes=Dq(),wH.insert=Rq().bind(null,"head"),wH.domAPI=Tq(),wH.insertStyleElement=zq();Eq()(bH.A,wH);bH.A&&bH.A.locals&&bH.A.locals;var vH=__webpack_require__(663),xH={};xH.styleTagTransform=Bq(),xH.setAttributes=Dq(),xH.insert=Rq().bind(null,"head"),xH.domAPI=Tq(),xH.insertStyleElement=zq();Eq()(vH.A,xH);vH.A&&vH.A.locals&&vH.A.locals;var AH=__webpack_require__(5319),CH={};CH.styleTagTransform=Bq(),CH.setAttributes=Dq(),CH.insert=Rq().bind(null,"head"),CH.domAPI=Tq(),CH.insertStyleElement=zq();Eq()(AH.A,CH);AH.A&&AH.A.locals&&AH.A.locals;var kH=__webpack_require__(290),SH={};SH.styleTagTransform=Bq(),SH.setAttributes=Dq(),SH.insert=Rq().bind(null,"head"),SH.domAPI=Tq(),SH.insertStyleElement=zq();Eq()(kH.A,SH);kH.A&&kH.A.locals&&kH.A.locals;const _H=new _.A;_H.gazeTracker=new cq(_H);const EH=_H})(),__webpack_exports__=__webpack_exports__.default,__webpack_exports__})())); +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.RemoteCalibrator=t():e.RemoteCalibrator=t()}(self,(()=>(()=>{var __webpack_modules__={6003:()=>{window.requestAnimFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e,t){return window.setTimeout(e,1e3/60)},window.cancelRequestAnimFrame=window.cancelCancelRequestAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame||window.oCancelRequestAnimationFrame||window.msCancelRequestAnimationFrame||window.clearTimeout},359:(e,t,n)=>{"use strict";n.d(t,{F:()=>r,a:()=>i});var s=n(9677);const r=(e,t,{go:n,cancel:r,custom:i},a,o=!0)=>{const l=document.createElement("div");let u,c,h;if(l.className="rc-buttons"+(o?" rc-absolute-buttons":""),l.id="rc-buttons",n&&(u=document.createElement("button"),u.className="rc-button rc-go-button",u.onclick=n,u.innerHTML=s.H.RC_ok[e],l.appendChild(u)),r&&a&&(c=document.createElement("button"),c.className="rc-button rc-cancel-button",c.onclick=r,c.innerHTML=s.H.RC_cancel[e],l.appendChild(c)),i){const{callback:e,content:t}=i;h=document.createElement("button"),h.className="rc-button rc-custom-button",h.onclick=e,h.innerHTML=t,l.appendChild(h)}return t.appendChild(l),[l,u,c,h]},i=e=>{e.querySelector("#rc-buttons").remove()}},2016:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{K:()=>takeInput});var _buttons__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(359),_keyBinder__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(9853),_utils__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(9043);const takeInput=async(RC,extraFunction=null,extraFunctionOut=null,customButtonConfig=null)=>{const unit=RC.equipment.value.unit,unitDisplay=unit===RC._CONST.UNITS.CM?"cm":"in",unitIsFraction=unit===RC._CONST.UNITS.IN_F,formItem=`
      \n
      \n ${unitIsFraction?`${unitDisplay}`:`${unitDisplay}`}\n
      \n
      `,instruction=RC.background.querySelector(".calibration-instruction");instruction.innerHTML+=formItem;const formElement=instruction.querySelector(".rc-form"),formInputElement=instruction.querySelector(".rc-form-input"),formInputElementFInteger=instruction.querySelector(".rc-form-input-f-integer"),formInputElementFFraction=instruction.querySelector(".rc-form-input-f-fraction");unitIsFraction?formInputElementFInteger.focus():formInputElement.focus();const addedButtons=(0,_buttons__WEBPACK_IMPORTED_MODULE_0__.F)(RC.L,formElement,{go:()=>{},custom:customButtonConfig||void 0},!0,!1),goButton=addedButtons[1],customButton=addedButtons[3];goButton.disabled=!0;const eleOkay=e=>{e.classList.remove("rc-input-error"),goButton.disabled=!1},eleError=e=>{isAcceptedSingleInput(e.value.slice(-1))?(e.classList.add("rc-input-error"),goButton.disabled=!0):e.value=e.value.substring(0,e.value.length-1)},setupEleOninput=(e,t)=>{e.oninput=()=>{t(e.value)?eleOkay(e):eleError(e)}},_validationForFraction=()=>{let e=!0;return validInputInteger(formInputElementFInteger.value)?eleOkay(formInputElementFInteger):(eleError(formInputElementFInteger),e=!1),validInputFraction(formInputElementFFraction.value)?eleOkay(formInputElementFFraction):(eleError(formInputElementFFraction),e=!1),e};return unitIsFraction?(formInputElementFInteger.oninput=_validationForFraction,formInputElementFFraction.oninput=_validationForFraction):setupEleOninput(formInputElement,validInput),(0,_utils__WEBPACK_IMPORTED_MODULE_2__.nB)(extraFunction),new Promise((resolve=>{const bFunction=()=>{removeInputElements(formElement,extraFunctionOut),(0,_keyBinder__WEBPACK_IMPORTED_MODULE_1__.l)(bindKeysFunction),resolve(null)},fFunction=()=>{let valid=!1,numericalValue,inputValue;unitIsFraction&&validInputInteger(formInputElementFInteger.value)&&validInputFraction(formInputElementFFraction.value)?(valid=!0,numericalValue=Number.parseInt(formInputElementFInteger.value)+eval(formInputElementFFraction.value),inputValue=formInputElementFInteger.value+" "+formInputElementFFraction.value):!unitIsFraction&&validInput(formInputElement.value)&&(valid=!0,numericalValue=Number(formInputElement.value)||Number(formInputElement.value.replace(",",".")),inputValue=formInputElement.value),valid&&(removeInputElements(formElement,extraFunctionOut),(0,_keyBinder__WEBPACK_IMPORTED_MODULE_1__.l)(bindKeysFunction),resolve({value:{numerical:numericalValue,input:inputValue,unit},timestamp:performance.now()}))};goButton.onclick=fFunction,customButton.onclick=bFunction;const bindKeysFunction=(0,_keyBinder__WEBPACK_IMPORTED_MODULE_1__.m)({Enter:fFunction,Escape:bFunction})}))},removeInputElements=(e,t)=>{(0,_buttons__WEBPACK_IMPORTED_MODULE_0__.a)(e);for(const t of e.children)t.remove();e.remove(),(0,_utils__WEBPACK_IMPORTED_MODULE_2__.nB)(t)},validInput=e=>e.length>0&&!e.includes(" ")&&(!isNaN(e)||!isNaN(e.replace(",","."))),validInputInteger=e=>!!validInput(e)&&(Number.parseInt(e)===Number(e)&&Number(e)>0),validInputFraction=text=>{if("0"===text)return!0;if(!text.includes("/")||text.match(/\//g).length>1)return!1;const numbers=text.split("/");return validInputInteger(numbers[0])&&validInputInteger(numbers[1])&&(0,_utils__WEBPACK_IMPORTED_MODULE_2__.DW)(numbers[1])&&eval(text)<1},isAcceptedSingleInput=e=>/[0-9]/.test(e)||[".","/",","].includes(e)},9853:(e,t,n)=>{"use strict";n.d(t,{l:()=>i,m:()=>r});var s=n(9043);function r(e,t="keydown"){const n=t=>{t.key in e&&(t.preventDefault(),(0,s.nB)(e[t.key],t))};return document.body.addEventListener(t,n),n}function i(e,t="keydown"){document.body.removeEventListener(t,e)}},2646:(e,t,n)=>{"use strict";n.d(t,{G:()=>a,t:()=>r});var s=n(9677);function r(e){const t=Object.keys(s.H.EE_languageNameNative);if(t.includes(e))return i(e);const n=[];t.forEach((e=>{n.push(e.split("-")[0])}));const r=e.split("-")[0].toLowerCase();return n.includes(r)?i(t[n.indexOf(r)]):i("en-US")}function i(e){return{value:{language:e,languageNameEnglish:s.H.EE_languageNameEnglish[e],languageNameNative:s.H.EE_languageNameNative[e],languageDirection:s.H.EE_languageDirection[e],languagePhraseSource:s.H.EE_phraseSource[e]},timestamp:performance.now()}}function a(e){return"1"===s.H.EE_languageUseSpace[e]?" ":""}},477:(e,t,n)=>{"use strict";n.d(t,{l:()=>u});const s="mocha"===n(7999)._;let r,i;if(!s){const e=n(9171);r=e.Synth,i=e.Volume}class a{triggerAttackRelease(){}}const o=s?new a:new r({oscillator:{type:"sine"},envelope:{attack:.001,decay:.001,sustain:1,release:.001}}).connect(new i(-17).toDestination()),l=s?new a:new r({oscillator:{type:"sine"}}).connect(new i(-5).toDestination()),u=(e=0)=>{switch(e){case 0:default:return void o.triggerAttackRelease(2e3,.05);case 1:return void o.triggerAttackRelease(500,.5);case 2:return void o.triggerAttackRelease(200,.6);case 3:return void l.triggerAttackRelease(200,.2)}}},9043:(e,t,n)=>{"use strict";function s(e,...t){if(e&&"function"==typeof e)return t.length?e(...t):e()}n.d(t,{$O:()=>l,$k:()=>w,AU:()=>u,Av:()=>y,DW:()=>d,Ew:()=>c,G8:()=>g,JZ:()=>m,KY:()=>v,Md:()=>r,Nh:()=>f,Sf:()=>a,aS:()=>o,k4:()=>p,ll:()=>h,ln:()=>b,nB:()=>s,yy:()=>i}),function(){for(var e=0,t=["ms","moz","webkit","o"],n=0;n{};function i(e){return new Promise((t=>setTimeout(t,e)))}function a(){if(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled){const e=document.documentElement;return e.requestFullscreen?(e.requestFullscreen(),!0):e.mozRequestFullScreen?(e.mozRequestFullScreen(),!0):e.webkitRequestFullscreen?(e.webkitRequestFullscreen(),!0):!!e.msRequestFullscreen&&(e.msRequestFullscreen(),!0)}return!1}function o(){return Math.abs(window.innerHeight-screen.height)<5&&Math.abs(window.innerWidth-screen.width)<5&&window.screenX<5&&window.screenY<5}function l(e,t=null,n=!1,s=""){return`

      ${e}

      `+(t?`

      ${t}

      `:"")}function u(e,t,n){return en?n:e}function c(e,t,n,s,r){return s+1*(e-t)/(n-t)*(r-s)}function h(e,t,n,s){return Math.sqrt(Math.pow(e-n,2)+Math.pow(t-s,2))}function d(e){return e&&!(e&e-1)}function p(e){for(let t=e.length-1;t>0;t--){const n=Math.floor(Math.random()*(t+1));[e[t],e[n]]=[e[n],e[t]]}return e}function f(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}const m=e=>{const t=Math.floor(e.length/2),n=[...e].sort(((e,t)=>e-t));return e.length%2!=0?n[t]:(n[t-1]+n[t])/2},g=e=>e.reduce(((e,t)=>e+t))/e.length;function y(e,t,n=1){let s=0,r=0;for(;0===s;)s=Math.random();for(;0===r;)r=Math.random();let i=Math.sqrt(-2*Math.log(s))*Math.cos(2*Math.PI*r);return i=i/10+.5,i>1||i<0?i=y(e,t,n):(i=Math.pow(i,n),i*=t-e,i+=e),i}const b=e=>JSON.parse(JSON.stringify(e));function w(){"activeElement"in document&&document.activeElement.blur()}const v=e=>{if("touchstart"===e.type||"touchmove"===e.type){const t=e.touches[0];return{x:t.clientX,y:t.clientY}}return{x:e.clientX,y:e.clientY}}},7999:(e,t,n)=>{"use strict";n.d(t,{A:()=>w,_:()=>y});var s=n(7503),r=n.n(s),i=n(115),a=n.n(i);const o=["tall","short","up","down","fancy","busy","loud","crazy","kind","nice","real","speedy","handy","active","alert","bold","brave","bright","calm","clever","cool","free","grand","great","happy","jolly","lucky","spicy","sunny","super","wise"],l=["bat","bear","bird","cat","cow","deer","dog","dove","dragon","duck","eagle","fish","fox","frog","goose","lion","mouse","owl","pig","rat","seal","shark","sheep","snake","spider","tiger","turkey","viper","whale","wolf","onion","carrot","pear","bean","corn","bread","apple","banana","fig","grape","lemon","lime","orange","peach","plum","dumpling","cake","pasta","pot","sushi"],u=["blue","bronze","fire","forest","gold","gray","green","navy","purple","red","silver","sky","yellow","neon","black","white","brown","aqua"];function c(e){return e[Math.floor(Math.random()*e.length)]}function h(e){return e.charAt(0).toUpperCase()+e.slice(1)}function d(){const e="000"+(new Date).getMilliseconds().toString();return h(c(o))+h(c(u))+h(c(l))+e.substring(e.length-3)}var p=n(782),f=n(9043),m=n(2646),g=n(9677);const y="production";class b{constructor(){window.console.log(`%c\nEasyEyes Remote Calibrator ${this.version.value}\n`,`color: ${this._CONST.COLOR.ORANGE}`),this._initialized=!1,this._id=null,this._lang=null,this._langData=[],this._panelStatus={hasPanel:!1,panelFinished:!1,panelResolveIntervals:[]},this._panel={panel:null,panelObserver:null,panelTasks:[],panelParent:null,panelOptions:{},panelCallback:null,panelResolve:null},this._participantCheckEquipment={has:null,equipment:null,unit:null},this._trackingSetupFinishedStatus={gaze:!0,distance:!0},this._trackingPaused={gaze:!1,distance:!1},this._trackingVideoFrameTimestamps={gaze:0,distance:0},this._distanceTrackNudging={distanceCorrecting:null,distanceCorrectEnabled:!1,distanceDesired:null,distanceAllowedRatio:null},this._gazeTrackNudging={isCorrectingGaze:!1},this._environmentData=[],this._displayData=[],this._screenData=[],this._viewingDistanceData=[],this._nearPointData=[],this._PDData=[],this._gazePositionData=[],this._gazeAccuracyData=[],this._performanceData=[],this._fullscreenData=[],this._equipmentData=[],this._checkData=[],this._background={element:null,instructionElement:null},this._nudger={element:null,gazeElement:null},this._params={backgroundColor:"#eee",videoOpacity:.8,showCancelButton:!0}}get background(){return this._background.element}get instructionElement(){return this._background.instructionElement}get nudger(){return this._nudger.element}get params(){return this._params}get id(){return this._id?{value:this._id.value,timestamp:this._id.timestamp,date:this._id.date}:null}_helper_get(e,t){if(!e.length)return null;const n=e[e.length-1];return t?{value:n.value[t],timestamp:n.timestamp}:n}get version(){return{value:"0.7.8"}}get supportedLanguages(){const e=[];for(const t in g.H.EE_languageNameEnglish)e.push({language:t,languageNameEnglish:g.H.EE_languageNameEnglish[t],languageNameNative:g.H.EE_languageNameNative[t]});return e}get L(){return this._lang}get LD(){return this.languageDirection.value}get language(){return this._helper_get(this._langData,"language")}get languageNameEnglish(){return this._helper_get(this._langData,"languageNameEnglish")}get languageNameNative(){return this._helper_get(this._langData,"languageNameNative")}get languageDirection(){return this._helper_get(this._langData,"languageDirection")}get languagePhraseSource(){return this._helper_get(this._langData,"languagePhraseSource")}get computeArrayFillMHz(){return this._helper_get(this._performanceData,"computeArrayFillMHz")}get computeRandomMHz(){return this._helper_get(this._performanceData,"computeRandomMHz")}get idealFps(){return this._helper_get(this._performanceData,"idealFps")}get stressFps(){return this._helper_get(this._performanceData,"stressFps")}get isFullscreen(){return this.fullscreenData.length&&a()((0,f.aS)(),this._helper_get(this._fullscreenData).value)||(this.newFullscreenData={value:(0,f.aS)(),timestamp:performance.now()}),this._helper_get(this._fullscreenData)}get concurrency(){return this._helper_get(this._environmentData,"concurrency")}get browser(){return this._helper_get(this._environmentData,"browser")}get browserVersion(){return this._helper_get(this._environmentData,"browserVersion")}get deviceType(){return this._helper_get(this._environmentData,"deviceType")}get isMobile(){const e=this._helper_get(this._environmentData,"deviceType");return{value:"desktop"!==e.value,timestamp:e.timestamp}}get model(){return this._helper_get(this._environmentData,"model")}get manufacturer(){return this._helper_get(this._environmentData,"manufacturer")}get engine(){return this._helper_get(this._environmentData,"engine")}get system(){return this._helper_get(this._environmentData,"system")}get systemFamily(){return this._helper_get(this._environmentData,"systemFamily")}get description(){return this._helper_get(this._environmentData,"description")}get fullDescription(){return this._helper_get(this._environmentData,"fullDescription")}get userLanguage(){return this._helper_get(this._environmentData,"userLanguage")}get equipment(){return this._helper_get(this._equipmentData)}get displayWidthPx(){return this._displaySize(),this._helper_get(this._displayData,"displayWidthPx")}get displayHeightPx(){return this._displaySize(),this._helper_get(this._displayData,"displayHeightPx")}get windowWidthPx(){return this._displaySize(),this._helper_get(this._displayData,"windowWidthPx")}get windowHeightPx(){return this._displaySize(),this._helper_get(this._displayData,"windowHeightPx")}get screenWidthCm(){return this._helper_get(this._screenData,"screenWidthCm")}get screenHeightCm(){return this._helper_get(this._screenData,"screenHeightCm")}get screenDiagonalCm(){return this._helper_get(this._screenData,"screenDiagonalCm")}get screenDiagonalIn(){return this._helper_get(this._screenData,"screenDiagonalIn")}get screenPpi(){return this._helper_get(this._screenData,"screenPpi")}get screenPhysicalPpi(){return this._helper_get(this._screenData,"screenPhysicalPpi")}get viewingDistanceCm(){return this._helper_get(this._viewingDistanceData)}get nearPointCm(){return this._helper_get(this._nearPointData)}get PDCm(){return this._helper_get(this._PDData)}get gazePositionPx(){return this._helper_get(this._gazePositionData)}get gazeAccuracyDeg(){return this._helper_get(this._gazeAccuracyData)}get displayData(){return this._displayData}get screenData(){return this._screenData}get viewingDistanceData(){return this._viewingDistanceData}get nearPointData(){return this._nearPointData}get PDData(){return this._PDData}get gazeData(){return this._gazePositionData}get performanceData(){return this._performanceData}get fullscreenData(){return this._fullscreenData}get environmentData(){return this._environmentData}get languageData(){return this._langData}get equipmentData(){return this._equipmentData}get checkData(){return this._checkData}set newDisplayData(e){this._displayData.push(e)}set newScreenData(e){this._screenData.push(e)}set newViewingDistanceData(e){this._viewingDistanceData.push(e)}set newNearPointData(e){this._nearPointData.push(e)}set newPDData(e){this._PDData.push(e)}set newGazePositionData(e){this._gazePositionData.push(e)}set newGazeAccuracyData(e){this._gazeAccuracyData.push(e)}set newEnvironmentData(e){this._environmentData.push(e)}set newPerformanceData(e){this._performanceData.push(e)}set newFullscreenData(e){this._fullscreenData.push(e)}set newLanguageData(e){this._langData.push(e)}set newEquipmentData(e){this._equipmentData.push(e)}set newCheckData(e){this._checkData.push(e)}}b.prototype.init=async function(e={},t){this._initialized||(this._initialized=!0,e=Object.assign({id:d(),language:"AUTO",languagePhrasesJSON:null,fullscreen:!1},e),await(async(e=null)=>{const{remoteCalibratorPhrases:t}=await import("https://cdn.jsdelivr.net/gh/EasyEyes/remote-calibrator-phrases@latest/phrases/main.js");Object.assign(g.H,t),e&&Object.assign(g.H,e)})(e.languagePhrasesJSON),e.fullscreen&&!p.Y&&(0,f.Sf)(),this._id={value:e.id,timestamp:performance.now(),date:new Date},this._environment(),this._displaySize(),this._CONST.S.AUTO===e.language?this.newLanguageData=(0,m.t)(this.userLanguage.value):this.newLanguageData=(0,m.t)(e.language),this._lang=this.language.value,(0,f.nB)(t,this._id))},b.prototype._environment=function(){if(this.checkInitialized()){(0,f.$k)();const e=e=>e.match(/Mobi/i)?"mobile":"desktop",t={value:{concurrency:window.navigator.hardwareConcurrency||-1,browser:r().name,browserVersion:r().version,deviceType:e(navigator.userAgent),model:r().product||"unknown",manufacturer:r().manufacturer||"unknown",engine:r().layout,system:`${r().os.family} ${r().os.version}`,systemFamily:r().os.family,description:r().description,fullDescription:r().ua,userLanguage:window.navigator.userLanguage||window.navigator.language},timestamp:this.id.timestamp};this.newEnvironmentData=t}},b.prototype.checkInitialized=function(){return!!this._initialized},b.prototype.getFullscreen=function(e=!0){return!!(0,f.aS)()||(this.newFullscreenData={value:!(!e||p.Y)&&(0,f.Sf)(),timestamp:performance.now()},this.isMobile.value&&window.scrollBy(0,1),this.isFullscreen)},b.prototype.newLanguage=function(e){if(this.checkInitialized()){let t;return this.newLanguageData=t=(0,m.t)(e),this._lang=this.language.value,t}},b.prototype._addBackground=function(e){if(null!==this.background)return;let t=document.getElementById("calibration-background");return t||(t=document.createElement("div"),t.id="calibration-background",t.className=`calibration-background rc-lang-${this.LD.toLowerCase()}`,document.body.classList.add("lock-view"),document.body.appendChild(t),t.style.background=this.params.backgroundColor),e&&(t.innerHTML=e),this._background.element=t,this.background},b.prototype._replaceBackground=function(e){return null!==this.background&&this._removeBackground(),this._addBackground(e)},b.prototype._removeBackground=function(){const e=document.getElementById("calibration-background");return!!e&&(document.body.classList.remove("lock-view"),document.body.removeChild(e),this._background={element:null,instructionElement:null},!0)},b.prototype._addBackgroundText=function(e,t){const n=this.background.getElementsByClassName("calibration-instruction");for(let e=0;e{"use strict";n.d(t,{Y:()=>s});const s=!1},9677:(e,t,n)=>{"use strict";n.d(t,{H:()=>s});const s={EE_languageNameEnglish:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_languageNameNative:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_languageDirection:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_languageUsesSpacesBool:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_languageUsesSpaces:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_languageUseSpace:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_languageFont:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_phraseSource:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_languageChoose:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_Initializing:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_OKToTakeCompletionCodeToProlific:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_Yes:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_No:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_Cancel:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_Exit:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needsTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needsOk:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_ThankYou:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_FaceMeshLoading:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_NoPhonePleaseCancel:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserNotOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserVersionDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserVersionNotOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserVersionOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needNotBrowserDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needNotBrowserNotOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needNotBrowserOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needNotOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needIncognito0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserNotOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserVersionDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserVersionNotOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserVersionOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needBrowserFeatures:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needNotBrowserDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needNotBrowserNotOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needNotBrowserOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needNotOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needIncognito:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needExceptForScreenResolution:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needScreenHeight:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needScreenSize:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needScreenWidth:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibilityTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatible:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserNotOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserVersionDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserVersionNotOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserVersionOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleNotBrowserDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleNotBrowserNotOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleNotBrowserOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleNotOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleOSDeviceCores0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleIncognito0:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserNotOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserVersionDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserVersionNotOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleBrowserVersionOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleNotBrowserDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleNotBrowserNotOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleNotBrowserOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleNotOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleOSDeviceCores:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleIncognito:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleExceptForScreenResolution:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleScreenHeight:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleScreenSize:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_compatibleScreenWidth:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_needColorimeter:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_notRecognized:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_ok:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_or:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_refresh:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_describeDevice:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_describeScreenSize:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_describeIncognito:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_IDRequested:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_noFileSelected:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_browseForID:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_ID_noLocalStorage:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_ID:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_ID_invalidFile:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_ID_invalidID:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_ID_uploadOrValidID:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_incompatible:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_studyURL:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},EE_unknown:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_smartphoneSurvey:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_phoneBrandAndModel:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_wrongIPhoneModel:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_customBuiltComputer:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findComputerModelGeneric:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelGeneric:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelAndroid:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelAndroidGeneric:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelAndroidGoogle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelAndroidHuawei:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelAndroidMotorola:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelAndroidSamsung:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelAndroidXiaomi:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelBada:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelBlackberry:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelFirefox:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelIOs:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelIPad:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelLinux:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelMacOs:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelMaemo:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelPalm:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelWebOS:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_findModelWindows:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_brand:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelName:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidGeneric:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidGenericLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidGoogle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidGoogleLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidHuawei:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidHuaweiLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidMotorola:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidMotorolaLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidSamsung:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidSamsungLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidXiaomi:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameAndroidXiaomiLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameIOs:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameIOsLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameIPad:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameIPadLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameMacOS:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNameMacOSLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumber:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroid:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidGeneric:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidGenericLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidGoogle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidGoogleLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidHuawei:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidHuaweiLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidMotorola:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidMotorolaLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidSamsung:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidSamsungLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidXiaomi:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberAndroidXiaomiLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberBada:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberBadaLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberBlackberry:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberBlackberryLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberFirefox:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberFirefoxLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberIOs:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberIOsLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberIPad:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberIPadLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberLinux:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberLinuxLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberMacOS:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberMacOSLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberMaemo:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberMaemoLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberPalm:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberPalmLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberWebOS:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberWebOSLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberWindows:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_modelNumberWindowsLowercase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_manufacturer:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_serialNumber:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_connectUSBMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_loudspeakersInComputer:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_microphoneUSB:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_microphoneInDevice:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_reminderVolumeCase:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_reminderVolume:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_surveyPhoneModel:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needPhoneModel:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needPhoneModelToCalibrate:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_yourComputer:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needModelNumberAndName:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_smartphoneOkThanks:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_connectingAndFixFreeze:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_reconnectYourPhone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_restoreSmartphoneCommunication:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_allowMicrophoneUse:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_calibrationReceivedMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_calibrationReceivedLoudspeaker:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_sorryUSBMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_sorryPhoneMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_SamplingHzBits:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_16Is24:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_angleDistanceIntro:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_angleDistanceTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_calibrateMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_cancel:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_connectionFailed:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTracking:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingCloseL:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingCloseR:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingGuide1:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingGuide:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingIntroEnd:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingIntroStart:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingMoveCloser:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingMoveFarther:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingMoveFurther:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingFromFar:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingWhenFar:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_reconnect:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_refreshBrowserChrome:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_refreshBrowserSafari:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_refreshBrowserFirefox:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_refreshBrowserSamsung:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_refreshBrowserOpera:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_refreshBrowserEdge:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_refreshBrowserGeneric:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingRedo:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_distanceTrackingTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_environment:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_errorCameraUseDenied:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_errorNoCamera:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_gazeTracking:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_gazeTrackingIntro:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_gazeTrackingNudge:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_gazeTrackingTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_inDescription:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needPhoneMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needPhoneKeypad:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needPhoneMicrophoneAndKeypad:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needPhoneSurvey:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needPhoneSurveyParticipate:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_skipQR_Explanation:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_cantDrawQR:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},"RC_can'tDrawQR":{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_cantConnectPhone_Button:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_preferNotToConnectPhone_Button:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_cantReadQR_Button:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_preferNotToReadQR_Button:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_whyCantConnect:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_whyWouldntConnect:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_noSmartphone_Button:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_haveSmartphone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_noSmartphone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_compatibleHaveSmartphone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_compatibleNoSmartphone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needUSBMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_pointAndClick:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_tryAnotherPhone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_identifyUSBMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_goBack:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_identifySmartphone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needsPointCameraAtQR:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_pointCameraAtQR:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_getPhoneMicrophoneReady:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_getUSBMicrophoneReady:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_calibrationEstimatedAndActualMinutes:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_howLongToCalibrate:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_identifyMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_lookForMicrophoneProfile:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_loudspeakerInstead:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_tryComputer:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_ifStuckPleaseReturn:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_nearPointIntro:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_nearPointTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_needPortraitOrientation:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_ok:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_panelButton:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_panelIntro:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_panelTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_panelTitleNext:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_panelUsesWebcam:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_panelUsesWebcamPhone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_performance:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_performanceIntro:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_performanceTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_phoneMicrophoneInstructions:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_privacyCamera:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_privacyMicrophoneCalibration:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_proceedToExperiment:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_removeHeadphones:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_requestCamera:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_screenSize:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_screenSizeCredit:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_screenSizeCreditCard:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_screenSizeHave:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_screenSizeIntro:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_screenSizeTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_screenSizeUSBA:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_screenSizeUSBC:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_selectMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_sound1000HzRecordingLevels:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_soundAllHzRecordingLevels:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_soundAllHzDetails:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_loudspeakerCalibrationResults:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_microphoneCalibrationResults:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_usbMicrophoneInstructions:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_testSounds:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_noSounds:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_phoneMicrophoneCalibration:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_loudspeakerCalibration:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_citeSoundCompressionModel:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_usbMicrophoneCalibration:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_microphoneCalibration:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_hopeMicrophoneIsInLibrary:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_helloCalibrator:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_selectMicrophoneTypeToBeCalibrated:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_selectMicrophoneTypeAlreadyCalibrated:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_selectMicrophoneType:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_OkToConnect:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_enterPhoneOrMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_nameMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_nameLoudspeaker:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_usingPhoneNamedMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_usingPhoneMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_usingSmartphoneMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_turnMeToReadBelow:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_placeSmartphoneMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_usingMicrophoneXXX:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_usingUSBMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_microphoneNotInCalibrationLibrary:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_loudspeakerIsInCalibrationLibrary:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_microphoneIsInCalibrationLibrary:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_smartphoneSurveyEnd:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_soundRecording:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_Quit:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_ReIdentify:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_ReRecord:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_smartphone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_usbMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_none:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_backToExperimentWindow:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_starting:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_SoundTest:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_NoCorrection:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_CorrectLoudspeaker:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_CorrectLoudspeakerAndMicrophone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_dB_gainAt1000Hz:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_dB_SPL_gainAt1000Hz:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_DesiredSoundLevel_dB_SPL:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_DesiredDIgitalOutput_dB:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_DesiredDIgitalInput_dB:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_DIgitalInput_dB:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_DIgitalInputMax:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_PlayingSound:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_Play:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_Record:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_StopRecording:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_Refresh:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_USB_Microphone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_UMIK_Microphone:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_AveragingSec:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_dB:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_viewingBlindSpotCredit:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_viewingBlindSpotRejected:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_viewingDistance:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_viewingDistanceIntro:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_viewingDistanceIntroTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_viewingDistanceIntroLiMethod:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_viewingDistanceRedo:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""},RC_viewingDistanceTitle:{"en-US":"",ar:"",hy:"",bg:"","zh-CN":"","zh-HK":"",hr:"",cs:"",da:"",nl:"","en-UK":"",fi:"",fr:"",de:"",el:"",he:"",hi:"",hu:"",is:"",id:"",it:"",ja:"",kn:"",ko:"",lt:"",ms:"",ml:"",no:"",fa:"",pl:"",pt:"",ro:"",ru:"",sr:"",es:"",su:"",sw:"",sv:"",tl:"",tr:"",ur:""}}},7790:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{K:()=>_setDebugControl});var _components_utils__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(9043);const _setDebugControl=(e,t,n,s)=>{const r=document.createElement("div");r.className="rc-panel-debug-control",r.innerHTML='

      DEBUG CONTROL

      REMEMBER TO SET debug TO false FOR PRODUCTION MODE!

      ',t.appendChild(r);const i=[];for(const t of n){const n=t.name?t.name:t,s=document.createElement("div");s.className="rc-panel-debug-control-task-row",s.id="rc-debugger-row-"+n;const a=e._debuggerDefault[n];if(a){r.innerHTML+=`

      ${n}

      `;const e={n:"number",s:"string"};switch(n){case"screenSize":for(const t in a.value)s.innerHTML+=_createValueElement(n,t,a.value[t],".value."+t,e.n);break;case"measureDistance":s.innerHTML+=_createValueElement(n,"value",a.value,".value",e.n),s.innerHTML+=_createValueElement(n,"method",a.method,".method",e.s,!0);break;case"trackDistance":s.innerHTML+=_createValueElement(n,"viewingDistanceCm",a.value.viewingDistanceCm,".value",e.n),s.innerHTML+=_createValueElement(n,"PDCm",a.value.PDCm,".value",e.n),s.innerHTML+=_createValueElement(n,"nearPointCm.x",a.value.nearPointCm.x,".value.x",e.n),s.innerHTML+=_createValueElement(n,"nearPointCm.y",a.value.nearPointCm.y,".value.y",e.n),s.innerHTML+=_createValueElement(n,"latencyMs",a.value.latencyMs,".latencyMs",e.n),s.innerHTML+=_createValueElement(n,"method",a.method,".method",e.s,!0);break;case"trackGaze":s.innerHTML+=_createValueElement(n,"x",a.value.x,".value.x",e.n),s.innerHTML+=_createValueElement(n,"y",a.value.y,".value.y",e.n),s.innerHTML+=_createValueElement(n,"latencyMs",a.value.latencyMs,".value.latencyMs",e.n);break;case"performance":s.innerHTML+=_createValueElement(n,"computeArrayFillMHz",a.value.computeArrayFillMHz,".value.computeArrayFillMHz",e.n),s.innerHTML+=_createValueElement(n,"computeRandomMHz",a.value.computeRandomMHz,".value.computeRandomMHz",e.n),s.innerHTML+=_createValueElement(n,"idealFps",a.value.idealFps,".value.idealFps",e.n),s.innerHTML+=_createValueElement(n,"stressFps",a.value.stressFps,".value.stressFps",e.n)}r.appendChild(s),i.push(n)}}const a=document.createElement("button");a.className="rc-panel-debug-control-next",a.innerHTML="Simulate calibration and continue",a.onclick=()=>{_wrapValues(e,i),(0,_components_utils__WEBPACK_IMPORTED_MODULE_0__.nB)(s,{timestamp:performance.now()}),e._panelStatus.panelFinished=!0},r.appendChild(a)},_createValueElement=(e,t,n,s,r,i=!1)=>`
      \n \n

      ${t}

      \n
      `,_wrapValues=(e,t)=>{for(const n of t){const t=document.querySelector("#rc-debugger-row-"+n),s={};switch(n){case"screenSize":s.value={},_putData(e,s,t),e.newScreenData=(0,_components_utils__WEBPACK_IMPORTED_MODULE_0__.ln)(s);break;case"measureDistance":_putData(e,s,t),e.newViewingDistanceData=(0,_components_utils__WEBPACK_IMPORTED_MODULE_0__.ln)(s);break;case"trackDistance":e.newViewingDistanceData={value:_get(t,"#trackDistance-viewingDistanceCm"),latencyMs:_get(t,"#trackDistance-latencyMs"),method:_get(t,"#trackDistance-method","string"),timestamp:e._debuggerDefault.timestamp},e.newNearPointData={value:{x:_get(t,"#trackDistance-nearPointCm-x"),y:_get(t,"#trackDistance-nearPointCm-y")},timestamp:e._debuggerDefault.timestamp},e.newPDData={value:_get(t,"#trackDistance-PDCm"),timestamp:e._debuggerDefault.timestamp};break;case"trackGaze":s.value={},_putData(e,s,t),e.newGazePositionData=(0,_components_utils__WEBPACK_IMPORTED_MODULE_0__.ln)(s);break;case"performance":s.value={},_putData(e,s,t),e.newPerformanceData=(0,_components_utils__WEBPACK_IMPORTED_MODULE_0__.ln)(s)}}},_get=(e,t)=>{const n=e.querySelector(t);return"number"===n.dataset.type?Number(n.value):n.value},_putData=(RC,newData,taskRow)=>{for(const ele of taskRow.childNodes){const eleInput=ele.querySelector("input");try{eval(`newData${eleInput.dataset.source} = eleInput.dataset.type === 'number' ? Number(eleInput.value) : eleInput.value`)}catch(e){}newData.timestamp=RC._debuggerDefault.timestamp}return newData}},2921:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,".animated{-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.repeat-1{-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animated.repeat-2{-webkit-animation-iteration-count:calc(var(--animate-repeat)*2);animation-iteration-count:calc(var(--animate-repeat)*2)}.animated.repeat-3{-webkit-animation-iteration-count:calc(var(--animate-repeat)*3);animation-iteration-count:calc(var(--animate-repeat)*3)}.animated.delay-1s{-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animated.delay-2s{-webkit-animation-delay:calc(var(--animate-delay)*2);animation-delay:calc(var(--animate-delay)*2)}.animated.delay-3s{-webkit-animation-delay:calc(var(--animate-delay)*3);animation-delay:calc(var(--animate-delay)*3)}.animated.delay-4s{-webkit-animation-delay:calc(var(--animate-delay)*4);animation-delay:calc(var(--animate-delay)*4)}.animated.delay-5s{-webkit-animation-delay:calc(var(--animate-delay)*5);animation-delay:calc(var(--animate-delay)*5)}.animated.faster{-webkit-animation-duration:calc(var(--animate-duration)/2);animation-duration:calc(var(--animate-duration)/2)}.animated.fast{-webkit-animation-duration:calc(var(--animate-duration)*.8);animation-duration:calc(var(--animate-duration)*.8)}.animated.slow{-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2)}.animated.slower{-webkit-animation-duration:calc(var(--animate-duration)*3);animation-duration:calc(var(--animate-duration)*3)}@media (prefers-reduced-motion:reduce),print{.animated{-webkit-animation-duration:1ms!important;animation-duration:1ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important;-webkit-transition-duration:1ms!important;transition-duration:1ms!important}.animated[class*=Out]{opacity:0}}","",{version:3,sources:["webpack://./node_modules/animate.css/source/_base.css"],names:[],mappings:"AAAA,UACE,kDAA2C,CAA3C,0CAA2C,CAC3C,gCAAyB,CAAzB,wBACF,CAEA,mBACE,0CAAmC,CAAnC,kCACF,CAEA,mBACE,uDAAgD,CAAhD,+CACF,CAEA,mBACE,+DAA0D,CAA1D,uDACF,CAEA,mBACE,+DAA0D,CAA1D,uDACF,CAEA,mBACE,4CAAqC,CAArC,oCACF,CAEA,mBACE,oDAA+C,CAA/C,4CACF,CAEA,mBACE,oDAA+C,CAA/C,4CACF,CAEA,mBACE,oDAA+C,CAA/C,4CACF,CAEA,mBACE,oDAA+C,CAA/C,4CACF,CAEA,iBACE,0DAAqD,CAArD,kDACF,CAEA,eACE,2DAAuD,CAAvD,mDACF,CAEA,eACE,0DAAqD,CAArD,kDACF,CAEA,iBACE,0DAAqD,CAArD,kDACF,CAEA,6CACE,UACE,wCAAkC,CAAlC,gCAAkC,CAElC,6CAAuC,CAAvC,qCAAuC,CADvC,yCAAmC,CAAnC,iCAEF,CAEA,sBACE,SACF,CACF",sourcesContent:[".animated {\n animation-duration: var(--animate-duration);\n animation-fill-mode: both;\n}\n\n.animated.infinite {\n animation-iteration-count: infinite;\n}\n\n.animated.repeat-1 {\n animation-iteration-count: var(--animate-repeat);\n}\n\n.animated.repeat-2 {\n animation-iteration-count: calc(var(--animate-repeat) * 2);\n}\n\n.animated.repeat-3 {\n animation-iteration-count: calc(var(--animate-repeat) * 3);\n}\n\n.animated.delay-1s {\n animation-delay: var(--animate-delay);\n}\n\n.animated.delay-2s {\n animation-delay: calc(var(--animate-delay) * 2);\n}\n\n.animated.delay-3s {\n animation-delay: calc(var(--animate-delay) * 3);\n}\n\n.animated.delay-4s {\n animation-delay: calc(var(--animate-delay) * 4);\n}\n\n.animated.delay-5s {\n animation-delay: calc(var(--animate-delay) * 5);\n}\n\n.animated.faster {\n animation-duration: calc(var(--animate-duration) / 2);\n}\n\n.animated.fast {\n animation-duration: calc(var(--animate-duration) * 0.8);\n}\n\n.animated.slow {\n animation-duration: calc(var(--animate-duration) * 2);\n}\n\n.animated.slower {\n animation-duration: calc(var(--animate-duration) * 3);\n}\n\n@media print, (prefers-reduced-motion: reduce) {\n .animated {\n animation-duration: 1ms !important;\n transition-duration: 1ms !important;\n animation-iteration-count: 1 !important;\n }\n\n .animated[class*='Out'] {\n opacity: 0;\n }\n}\n"],sourceRoot:""}]);const o=a},2636:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,":root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}","",{version:3,sources:["webpack://./node_modules/animate.css/source/_vars.css"],names:[],mappings:"AAAA,MACE,qBAAsB,CACtB,kBAAmB,CACnB,kBACF",sourcesContent:[":root {\n --animate-duration: 1s;\n --animate-delay: 1s;\n --animate-repeat: 1;\n}\n"],sourceRoot:""}]);const o=a},7271:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,"@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}","",{version:3,sources:["webpack://./node_modules/animate.css/source/fading_entrances/fadeInUp.css"],names:[],mappings:"AAAA,4BACE,GACE,SAAU,CACV,uCAAkC,CAAlC,+BACF,CAEA,GACE,SAAU,CACV,+BAA+B,CAA/B,uBACF,CACF,CAVA,oBACE,GACE,SAAU,CACV,uCAAkC,CAAlC,+BACF,CAEA,GACE,SAAU,CACV,+BAA+B,CAA/B,uBACF,CACF,CAEA,UACE,+BAAwB,CAAxB,uBACF",sourcesContent:["@keyframes fadeInUp {\n from {\n opacity: 0;\n transform: translate3d(0, 100%, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n}\n\n.fadeInUp {\n animation-name: fadeInUp;\n}\n"],sourceRoot:""}]);const o=a},2551:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,"@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}","",{version:3,sources:["webpack://./node_modules/animate.css/source/fading_exits/fadeOutDown.css"],names:[],mappings:"AAAA,+BACE,GACE,SACF,CAEA,GACE,SAAU,CACV,uCAAkC,CAAlC,+BACF,CACF,CATA,uBACE,GACE,SACF,CAEA,GACE,SAAU,CACV,uCAAkC,CAAlC,+BACF,CACF,CAEA,aACE,kCAA2B,CAA3B,0BACF",sourcesContent:["@keyframes fadeOutDown {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, 100%, 0);\n }\n}\n\n.fadeOutDown {\n animation-name: fadeOutDown;\n}\n"],sourceRoot:""}]);const o=a},8470:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,'.swal2-popup.swal2-toast{background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:min-content auto min-content;overflow-y:hidden;padding:1em;pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{font-size:1em;margin:.5em 1em;padding:0;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{font-size:1em;height:2em;margin:.5em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{font-size:.8em;margin:.5em 0 0;padding:.5em 0 0}.swal2-popup.swal2-toast .swal2-close{align-self:center;font-size:2em;grid-column:3/3;grid-row:1/99;height:.8em;margin:0;width:.8em}.swal2-popup.swal2-toast .swal2-html-container{font-size:1em;margin:.5em 1em;overflow:initial;padding:0;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{align-self:center;grid-column:1;grid-row:1/99;height:2em;margin:.25em;width:2em}.swal2-popup.swal2-toast .swal2-icon{align-self:center;grid-column:1;grid-row:1/99;height:2em;margin:0 .5em 0 0;min-width:2em;width:2em}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{align-items:center;display:flex;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{height:2em;width:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{height:auto;justify-content:flex-start;margin:.5em 0 0;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{font-size:1em;margin:.25em .5em;padding:.4em .6em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{border-radius:50%;height:3em;position:absolute;width:1.6em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{border-radius:4em 0 0 4em;left:-.5em;top:-.8em;transform:rotate(-45deg);transform-origin:2em 2em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{border-radius:0 4em 4em 0;left:.9375em;top:-.25em;transform-origin:0 1.5em}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{height:2em;width:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{height:2.6875em;left:.4375em;top:0;width:.4375em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{left:.1875em;top:1.125em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{right:.1875em;top:.9375em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}div:where(.swal2-container){box-sizing:border-box;display:grid;grid-template-areas:"top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end";grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;inset:0;overflow-x:hidden;padding:.625em;position:fixed;transition:background-color .1s;z-index:1060;-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:rgba(0,0,0,.4)}div:where(.swal2-container).swal2-backdrop-hide{background:transparent!important}div:where(.swal2-container).swal2-bottom-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}div:where(.swal2-container).swal2-bottom,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-top{grid-template-columns:auto minmax(0,1fr) auto}div:where(.swal2-container).swal2-bottom-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-left>.swal2-popup,div:where(.swal2-container).swal2-center-start>.swal2-popup{align-self:center;grid-row:2}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-left>.swal2-popup,div:where(.swal2-container).swal2-bottom-start>.swal2-popup{align-self:end;grid-column:1;grid-row:3}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup,div:where(.swal2-container).swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{align-self:stretch;grid-row:1/4}div:where(.swal2-container).swal2-no-transition{transition:none!important}div:where(.swal2-container) div:where(.swal2-popup){background:#fff;border:none;border-radius:5px;box-sizing:border-box;color:#545454;display:none;font-family:inherit;font-size:1rem;grid-template-columns:minmax(0,100%);max-width:100%;padding:0 0 1.25em;position:relative;width:32em}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) h2:where(.swal2-title){color:inherit;font-size:1.875em;font-weight:600;margin:0;max-width:100%;padding:.8em 1em 0;position:relative;text-align:center;text-transform:none;word-wrap:break-word}div:where(.swal2-container) div:where(.swal2-actions){align-items:center;box-sizing:border-box;display:flex;flex-wrap:wrap;justify-content:center;margin:1.25em auto 0;padding:0;width:auto;z-index:1}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}div:where(.swal2-container) div:where(.swal2-loader){align-items:center;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-color:#2778c4 transparent;border-radius:100%;border-style:solid;border-width:.25em;display:none;height:2.2em;justify-content:center;margin:0 1.875em;width:2.2em}div:where(.swal2-container) button:where(.swal2-styled){box-shadow:0 0 0 3px transparent;font-weight:500;margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm{background:initial;background-color:#7066e0;border:0;border-radius:.25em;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny{background:initial;background-color:#dc3741;border:0;border-radius:.25em;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel{background:initial;background-color:#6e7881;border:0;border-radius:.25em;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel:focus{box-shadow:0 0 0 3px hsla(208,8%,47%,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-styled):focus{outline:none}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){border-top:1px solid #eee;color:inherit;font-size:1em;margin:1em 0 0;padding:1em 1em 0;text-align:center}div:where(.swal2-container) .swal2-timer-progress-bar-container{border-bottom-left-radius:5px;border-bottom-right-radius:5px;bottom:0;grid-column:auto!important;left:0;overflow:hidden;position:absolute;right:0}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){background:rgba(0,0,0,.2);height:.25em;width:100%}div:where(.swal2-container) img:where(.swal2-image){margin:2em auto 1em;max-width:100%}div:where(.swal2-container) button:where(.swal2-close){align-items:center;background:transparent;border:none;border-radius:5px;color:#ccc;cursor:pointer;font-family:monospace;font-size:2.5em;height:1.2em;justify-content:center;justify-self:end;margin-bottom:-1.2em;margin-right:0;margin-top:0;overflow:hidden;padding:0;transition:color .1s,box-shadow .1s;width:1.2em;z-index:2}div:where(.swal2-container) button:where(.swal2-close):hover{background:transparent;color:#f27474;transform:none}div:where(.swal2-container) button:where(.swal2-close):focus{box-shadow:inset 0 0 0 3px rgba(100,150,200,.5);outline:none}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) .swal2-html-container{color:inherit;font-size:1.125em;font-weight:400;justify-content:center;line-height:normal;margin:1em 1.6em .3em;overflow:auto;padding:0;text-align:center;z-index:1;word-wrap:break-word;word-break:break-word}div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) label:where(.swal2-checkbox),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) textarea:where(.swal2-textarea){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) textarea:where(.swal2-textarea){background:transparent;border:1px solid #d9d9d9;border-radius:.1875em;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;box-sizing:border-box;color:inherit;font-size:1.125em;transition:border-color .1s,box-shadow .1s;width:auto}div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:1px solid #b4dbed;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5);outline:none}div:where(.swal2-container) input:where(.swal2-file)::-moz-placeholder,div:where(.swal2-container) input:where(.swal2-input)::-moz-placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::-moz-placeholder{color:#ccc}div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{background:#fff;margin:1em 2em 3px}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{color:inherit;font-weight:600;text-align:center;width:20%}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{font-size:1.125em;height:2.625em;line-height:2.625em;padding:0}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{background:transparent;font-size:1.125em;margin-left:auto;margin-right:auto;width:75%}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{background:transparent;color:inherit;font-size:1.125em;max-width:100%;min-width:50%;padding:.375em .625em}div:where(.swal2-container) .swal2-checkbox,div:where(.swal2-container) .swal2-radio{align-items:center;background:#fff;color:inherit;justify-content:center}div:where(.swal2-container) .swal2-checkbox label,div:where(.swal2-container) .swal2-radio label{font-size:1.125em;margin:0 .6em}div:where(.swal2-container) .swal2-checkbox input,div:where(.swal2-container) .swal2-radio input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;background:#f0f0f0;color:#666;font-size:1em;font-weight:300;justify-content:center;margin:1em 0 0;overflow:hidden;padding:.625em}div:where(.swal2-container) div:where(.swal2-validation-message):before{background-color:#f27474;border-radius:50%;color:#fff;content:"!";display:inline-block;font-weight:600;height:1.5em;line-height:1.5em;margin:0 .625em;min-width:1.5em;text-align:center;width:1.5em}div:where(.swal2-container) .swal2-progress-steps{align-items:center;background:transparent;flex-wrap:wrap;font-weight:600;margin:1.25em auto;max-width:100%;padding:0}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{background:#2778c4;border-radius:2em;color:#fff;flex-shrink:0;height:2em;line-height:2em;text-align:center;width:2em;z-index:20}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{background:#2778c4;flex-shrink:0;height:.4em;margin:0 -1px;width:2.5em;z-index:10}div:where(.swal2-icon){border:.25em solid #000;border-radius:50%;box-sizing:content-box;cursor:default;font-family:inherit;height:5em;justify-content:center;line-height:5em;margin:2.5em auto .6em;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:5em}div:where(.swal2-icon) .swal2-icon-content{align-items:center;display:flex;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{flex-grow:1;position:relative}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{background-color:#f27474;border-radius:.125em;display:block;height:.3125em;position:absolute;top:2.3125em;width:2.9375em}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}div:where(.swal2-icon).swal2-warning{border-color:#facea8;color:#f8bb86}div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}div:where(.swal2-icon).swal2-info{border-color:#9de0f6;color:#3fc3ee}div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}div:where(.swal2-icon).swal2-question{border-color:#c9dae1;color:#87adbd}div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{border-radius:50%;height:7.5em;position:absolute;width:3.75em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{border-radius:7.5em 0 0 7.5em;left:-2.0635em;top:-.4375em;transform:rotate(-45deg);transform-origin:3.75em 3.75em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{border-radius:0 7.5em 7.5em 0;left:1.875em;top:-.6875em;transform:rotate(-45deg);transform-origin:0 3.75em}div:where(.swal2-icon).swal2-success .swal2-success-ring{border:.25em solid hsla(98,55%,69%,.3);border-radius:50%;box-sizing:content-box;height:100%;left:-.25em;position:absolute;top:-.25em;width:100%;z-index:2}div:where(.swal2-icon).swal2-success .swal2-success-fix{height:5.625em;left:1.625em;position:absolute;top:.5em;transform:rotate(-45deg);width:.4375em;z-index:1}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{background-color:#a5dc86;border-radius:.125em;display:block;height:.3125em;position:absolute;z-index:2}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{left:.8125em;top:2.875em;transform:rotate(45deg);width:1.5625em}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{right:.5em;top:2.375em;transform:rotate(-45deg);width:2.9375em}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:swal2-show .3s}.swal2-hide{animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{height:50px;overflow:scroll;position:absolute;top:-9999px;width:50px}.swal2-rtl .swal2-close{margin-left:0;margin-right:0}.swal2-rtl .swal2-timer-progress-bar{left:auto;right:0}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotate(2deg)}33%{transform:translateY(0) rotate(-2deg)}66%{transform:translateY(.3125em) rotate(2deg)}to{transform:translateY(0) rotate(0deg)}}@keyframes swal2-toast-hide{to{opacity:0;transform:rotate(1deg)}}@keyframes swal2-toast-animate-success-line-tip{0%{left:.0625em;top:.5625em;width:0}54%{left:.125em;top:.125em;width:0}70%{left:-.25em;top:.625em;width:1.625em}84%{left:.75em;top:1.0625em;width:.5em}to{left:.1875em;top:1.125em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{right:1.375em;top:1.625em;width:0}65%{right:.9375em;top:1.25em;width:0}84%{right:0;top:.9375em;width:1.125em}to{right:.1875em;top:.9375em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}to{transform:scale(1)}}@keyframes swal2-hide{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.5)}}@keyframes swal2-animate-success-line-tip{0%{left:.0625em;top:1.1875em;width:0}54%{left:.125em;top:1.0625em;width:0}70%{left:-.375em;top:2.1875em;width:3.125em}84%{left:1.3125em;top:3em;width:1.0625em}to{left:.8125em;top:2.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{right:2.875em;top:3.375em;width:0}65%{right:2.875em;top:3.375em;width:0}84%{right:0;top:2.1875em;width:3.4375em}to{right:.5em;top:2.375em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}to{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;opacity:0;transform:scale(.4)}50%{margin-top:1.625em;opacity:0;transform:scale(.4)}80%{margin-top:-.375em;transform:scale(1.15)}to{margin-top:0;opacity:1;transform:scale(1)}}@keyframes swal2-animate-error-icon{0%{opacity:0;transform:rotateX(100deg)}to{opacity:1;transform:rotateX(0deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-1turn)}to{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{opacity:0;transform:rotate(45deg)}25%{opacity:.4;transform:rotate(-25deg)}50%{opacity:.8;transform:rotate(15deg)}75%{opacity:1;transform:rotate(-5deg)}to{opacity:1;transform:rotateX(0)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent;box-sizing:border-box;max-width:100%;pointer-events:none;width:360px}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}',"",{version:3,sources:["webpack://./node_modules/sweetalert2/src/scss/_toasts.scss","webpack://./node_modules/sweetalert2/src/variables.scss","webpack://./node_modules/sweetalert2/src/scss/_core.scss","webpack://./node_modules/sweetalert2/src/scss/_icons.scss","webpack://./node_modules/sweetalert2/src/scss/_toasts-animations.scss","webpack://./node_modules/sweetalert2/src/scss/_animations.scss","webpack://./node_modules/sweetalert2/src/scss/_mixins.scss","webpack://./node_modules/sweetalert2/src/scss/_body.scss","webpack://./node_modules/sweetalert2/src/scss/_toasts-body.scss"],names:[],mappings:"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CCjCrB,gCDqCwB,CCtCxB,kBDqCyB,CCpCzB,kBDqCwB,CCrCxB,kBDqCwB,CC/CxB,YAAA,CAIA,YDqCkB,CCvClB,sBDqC2B,CClC3B,gBDqCkB,CCvClB,WD4CwB,CClC1B,wDAIE,gCDdsB,CCetB,eDduB,CCUvB,cDdkB,CCelB,oBDdmB,CCenB,yBDZuB,CCgBvB,wEACE,cAAA,CAGF,sEAIE,kBAAA,CACA,wBDfkC,CCYlC,QDdwB,CCexB,mBDd+B,CCiB/B,UDtNQ,CCuNR,aDf2B,CCiB3B,4EACE,yCDjBgC,CCqBpC,mEAIE,kBAAA,CACA,wBDpB+B,CCiB/B,QDnBqB,CCoBrB,mBDnB4B,CCsB5B,UDpOQ,CCqOR,aDpBwB,CCsBxB,yEACE,uCDtB6B,CC0BjC,qEAIE,kBAAA,CACA,wBDzBiC,CCsBjC,QDxBuB,CCyBvB,mBDxB8B,CC2B9B,UDlPQ,CCmPR,aDzB0B,CC2B1B,2EACE,wCD3B+B,CCgCjC,oFACE,yCD5DwB,CCgE5B,8DACE,YDlEuB,CCqEzB,0EACE,QAAA,CAIJ,qDAGE,yBAAA,CACA,aDpIiB,CCqIjB,aDpIqB,CCgIrB,cDpIkB,CCqIlB,iBDpImB,CCwInB,iBDpIsB,CCuIxB,gEAQE,6BD9QkB,CC6QlB,8BD7QkB,CCyQlB,QAAA,CAEA,0BAAA,CADA,MAAA,CAEA,eAAA,CALA,iBAAA,CACA,ODxQkB,CCiRpB,iEAGE,yBDjJkC,CCgJlC,YDjJ8B,CCgJ9B,UD/IkC,CCoJpC,oDAEE,mBDvPiB,CCsPjB,cDtPiB,CC0PnB,uDAGE,kBDxJ6B,CCqK7B,sBDxJ4B,CCqJ5B,WDxJwB,CCyJxB,iBD1SkB,CC6SlB,UDxJuB,CC2JvB,cAAA,CAFA,qBDxJ6B,CCyJ7B,eDxJ2B,CC2I3B,YDxJwB,CCsJxB,sBDxJiC,CCyKjC,gBD3K8B,CC+J9B,oBAAA,CADA,cDxJqB,CCuJrB,YDvJqB,CC2JrB,eAAA,CADA,SDzJyB,CC2JzB,mCDzJF,CCkJE,WDxJuB,CCqJvB,SDxJ8B,CC6K9B,6DAEE,sBDxJgC,CCyJhC,aD1RQ,CCwRR,cDxRQ,CC6RV,6DAEE,+CD1JgC,CCyJhC,YDzJgC,CC6JlC,yEACE,QAAA,CAIJ,kDAME,aDtRyB,CCuRzB,iBDtR6B,CCuR7B,eDtR+B,CCgR/B,sBDtRmC,CC6RnC,kBDtR+B,CCgR/B,qBDtR0B,CCwR1B,aDtR4B,CCqR5B,SDtR2B,CC4R3B,iBDtR8B,CC6Q9B,SAAA,CAUA,oBDtR6B,CCuR7B,qBDtR8B,CCyRhC,4UAME,kBD5RiB,CC+RnB,uKAQE,sBD7RqB,CC2RrB,wBDjSiB,CCkSjB,qBDjSwB,CCmSxB,gEDjSF,CC2RE,qBAAA,CAOA,aD9RgB,CC+RhB,iBDjSoB,CC2RpB,0CDvRF,CCsRE,UD1RoB,CCmSpB,0NACE,8BAAA,CACA,oCAAA,CAGF,yLACE,wBDjSqB,CCmSrB,yEDhSJ,CC+RI,YD/RJ,CCmSE,6NACE,UAAA,CADF,8MACE,UAAA,CAIJ,yCAEE,eDtYU,CCqYV,kBDrYU,CCwYV,+CACE,SAAA,CAGF,gDAEE,aD3Tc,CC4Td,eAAA,CACA,iBAAA,CAHA,SAGA,CAGF,+FAIE,iBDtUkB,CCoUlB,cD3Ue,CC8Uf,mBD9Ue,CC4Uf,SD5Ue,CCkVnB,yCACE,cDnViB,CCoVjB,eDnVkB,CCsVpB,wCAIE,sBDnVqB,CCoVrB,iBDrVoB,CCmVpB,gBAAA,CADA,iBAAA,CADA,SDjVoB,CCwVtB,4CACE,aD1UoB,CC2UpB,aD1UqB,CC6UvB,0CAIE,sBDhWqB,CCiWrB,aDhWgB,CCiWhB,iBDnWoB,CC+VpB,cAAA,CADA,aAAA,CAEA,qBDhWoB,CCsWtB,qFAEE,kBAAA,CAEA,eD3bU,CC4bV,aDzWgB,CCuWhB,sBDvWgB,CC2WhB,iGAEE,iBD/WkB,CC8WlB,aD9WkB,CCkXpB,iGACE,aAAA,CACA,aAAA,CAIJ,4DACE,YAAA,CACA,sBDtWgC,CCuWhC,iBDxWuB,CC2WzB,iEACE,kBDxWmC,CC6WnC,kBDzWkC,CC0WlC,UDzW6B,CC0W7B,aDzWiC,CC0WjC,eDzWmC,CCkWnC,sBDxWuC,CCyWvC,cDxW8B,CC0W9B,eAAA,CADA,cDpWmC,CC2WnC,wEASE,wBD3bQ,CC0bR,iBAAA,CAEA,UDpeQ,CC2dR,WAAA,CACA,oBAA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",sourcesContent:[".swal2-popup {\n &.swal2-toast {\n box-sizing: border-box;\n grid-column: 1/4 !important;\n grid-row: 1/4 !important;\n grid-template-columns: min-content auto min-content;\n padding: $swal2-toast-padding;\n overflow-y: hidden;\n background: $swal2-toast-background;\n box-shadow: $swal2-toast-box-shadow;\n pointer-events: all;\n\n > * {\n grid-column: 2;\n }\n\n .swal2-title {\n margin: $swal2-toast-title-margin;\n padding: $swal2-toast-title-padding;\n font-size: $swal2-toast-title-font-size;\n text-align: initial;\n }\n\n .swal2-loading {\n justify-content: center;\n }\n\n .swal2-input {\n height: $swal2-toast-input-height;\n margin: $swal2-toast-input-margin;\n font-size: $swal2-toast-input-font-size;\n }\n\n .swal2-validation-message {\n font-size: $swal2-toast-validation-font-size;\n }\n\n .swal2-footer {\n margin: $swal2-toast-footer-margin;\n padding: $swal2-toast-footer-margin;\n font-size: $swal2-toast-footer-font-size;\n }\n\n .swal2-close {\n grid-column: 3/3;\n grid-row: 1/99;\n align-self: center;\n width: $swal2-toast-close-button-width;\n height: $swal2-toast-close-button-height;\n margin: $swal2-toast-close-button-margin;\n font-size: $swal2-toast-close-button-font-size;\n }\n\n .swal2-html-container {\n margin: $swal2-toast-html-container-margin;\n padding: $swal2-toast-html-container-padding;\n overflow: initial;\n font-size: $swal2-toast-html-container-font-size;\n text-align: initial;\n\n &:empty {\n padding: 0;\n }\n }\n\n .swal2-loader {\n grid-column: 1;\n grid-row: 1/99;\n align-self: center;\n width: 2em;\n height: 2em;\n margin: 0.25em;\n }\n\n .swal2-icon {\n grid-column: 1;\n grid-row: 1/99;\n align-self: center;\n width: 2em;\n min-width: 2em;\n height: 2em;\n margin: 0 0.5em 0 0;\n\n .swal2-icon-content {\n display: flex;\n align-items: center;\n font-size: $swal2-toast-icon-font-size;\n font-weight: bold;\n }\n\n &.swal2-success {\n .swal2-success-ring {\n width: 2em;\n height: 2em;\n }\n }\n\n &.swal2-error {\n [class^='swal2-x-mark-line'] {\n top: 0.875em;\n width: 1.375em;\n\n &[class$='left'] {\n left: 0.3125em;\n }\n\n &[class$='right'] {\n right: 0.3125em;\n }\n }\n }\n }\n\n .swal2-actions {\n justify-content: flex-start;\n height: auto;\n margin: 0;\n margin-top: 0.5em;\n padding: 0 0.5em;\n }\n\n .swal2-styled {\n margin: 0.25em 0.5em;\n padding: 0.4em 0.6em;\n font-size: $swal2-toast-buttons-font-size;\n }\n\n .swal2-success {\n border-color: $swal2-success;\n\n [class^='swal2-success-circular-line'] {\n // Emulate moving circular line\n position: absolute;\n width: 1.6em;\n height: 3em;\n border-radius: 50%;\n\n &[class$='left'] {\n top: -0.8em;\n left: -0.5em;\n transform: rotate(-45deg);\n transform-origin: 2em 2em;\n border-radius: 4em 0 0 4em;\n }\n\n &[class$='right'] {\n top: -0.25em;\n left: 0.9375em;\n transform-origin: 0 1.5em;\n border-radius: 0 4em 4em 0;\n }\n }\n\n .swal2-success-ring {\n width: 2em;\n height: 2em;\n }\n\n .swal2-success-fix {\n top: 0;\n left: 0.4375em;\n width: 0.4375em;\n height: 2.6875em;\n }\n\n [class^='swal2-success-line'] {\n height: 0.3125em;\n\n &[class$='tip'] {\n top: 1.125em;\n left: 0.1875em;\n width: 0.75em;\n }\n\n &[class$='long'] {\n top: 0.9375em;\n right: 0.1875em;\n width: 1.375em;\n }\n }\n\n &.swal2-icon-show {\n @if $swal2-icon-animations {\n .swal2-success-line-tip {\n animation: swal2-toast-animate-success-line-tip 0.75s;\n }\n\n .swal2-success-line-long {\n animation: swal2-toast-animate-success-line-long 0.75s;\n }\n }\n }\n }\n\n &.swal2-show {\n animation: $swal2-toast-show-animation;\n }\n\n &.swal2-hide {\n animation: $swal2-toast-hide-animation;\n }\n }\n}\n","$swal2-white: #fff !default;\n$swal2-black: #000 !default;\n$swal2-outline-color: rgba(100, 150, 200, 0.5) !default;\n\n// CONTAINER\n$swal2-container-padding: 0.625em !default;\n\n// POPUP\n$swal2-width: 32em !default;\n$swal2-padding: 0 0 1.25em !default;\n$swal2-border: none !default;\n$swal2-color: lighten($swal2-black, 33) !default;\n$swal2-border-radius: 5px !default;\n$swal2-box-shadow: #d9d9d9 !default;\n\n// ANIMATIONS\n$swal2-show-animation: swal2-show 0.3s !default;\n$swal2-hide-animation: swal2-hide 0.15s forwards !default;\n\n// BACKGROUND\n$swal2-background: $swal2-white !default;\n\n// TYPOGRAPHY\n$swal2-font: inherit !default;\n$swal2-font-size: 1rem !default;\n\n// BACKDROP\n$swal2-backdrop: rgba($swal2-black, 0.4) !default;\n$swal2-backdrop-transition: background-color 0.1s !default;\n\n// ICONS\n$swal2-icon-size: 5em !default;\n$swal2-icon-animations: true !default;\n$swal2-icon-margin: 2.5em auto 0.6em !default;\n$swal2-icon-font-family: inherit !default;\n$swal2-icon-font-size: 3.75em !default;\n$swal2-icon-border-color: #000 !default;\n$swal2-icon-zoom: null !default;\n$swal2-success: #a5dc86 !default;\n$swal2-success-border: rgba($swal2-success, 0.3) !default;\n$swal2-error: #f27474 !default;\n$swal2-warning: #f8bb86 !default;\n$swal2-info: #3fc3ee !default;\n$swal2-question: #87adbd !default;\n\n// IMAGE\n$swal2-image-margin: 2em auto 1em !default;\n\n// TITLE\n$swal2-title-position: relative !default;\n$swal2-title-max-width: 100% !default;\n$swal2-title-margin: 0 !default;\n$swal2-title-padding: 0.8em 1em 0 !default;\n$swal2-title-color: inherit !default;\n$swal2-title-font-size: 1.875em !default;\n$swal2-title-font-weight: 600 !default;\n$swal2-title-text-align: center !default;\n\n// HTML CONTAINER\n$swal2-html-container-justify-content: center !default;\n$swal2-html-container-margin: 1em 1.6em 0.3em !default;\n$swal2-html-container-padding: 0 !default;\n$swal2-html-container-overflow: auto !default;\n$swal2-html-container-color: inherit !default;\n$swal2-html-container-font-size: 1.125em !default;\n$swal2-html-container-font-weight: normal !default;\n$swal2-html-container-line-height: normal !default;\n$swal2-html-container-text-align: center !default;\n$swal2-html-container-word-wrap: break-word !default;\n$swal2-html-container-word-break: break-word !default;\n\n// INPUT\n$swal2-input-margin: 1em 2em 3px !default;\n$swal2-input-width: auto !default;\n$swal2-input-height: 2.625em !default;\n$swal2-input-padding: 0 0.75em !default;\n$swal2-input-border: 1px solid lighten($swal2-black, 85) !default;\n$swal2-input-border-radius: 0.1875em !default;\n$swal2-input-box-shadow:\n inset 0 1px 1px rgba($swal2-black, 0.06),\n 0 0 0 3px transparent !default;\n$swal2-input-font-size: 1.125em !default;\n$swal2-input-background: transparent !default;\n$swal2-input-color: inherit !default;\n$swal2-input-transition:\n border-color 0.1s,\n box-shadow 0.1s !default;\n\n// INPUT:FOCUS\n$swal2-input-focus-border: 1px solid #b4dbed !default;\n$swal2-input-focus-outline: none !default;\n$swal2-input-focus-box-shadow:\n inset 0 1px 1px rgba($swal2-black, 0.06),\n 0 0 0 3px $swal2-outline-color !default;\n\n// TEXTAREA SPECIFIC VARIABLES\n$swal2-textarea-height: 6.75em !default;\n$swal2-textarea-padding: 0.75em !default;\n\n// INPUT LABEL\n$swal2-input-label-margin: 1em auto 0 !default;\n$swal2-input-label-justify-content: center !default;\n\n// VALIDATION MESSAGE\n$swal2-validation-message-align-items: center !default;\n$swal2-validation-message-justify-content: center !default;\n$swal2-validation-message-margin: 1em 0 0 !default;\n$swal2-validation-message-padding: 0.625em !default;\n$swal2-validation-message-background: lighten($swal2-black, 94) !default;\n$swal2-validation-message-color: lighten($swal2-black, 40) !default;\n$swal2-validation-message-font-size: 1em !default;\n$swal2-validation-message-font-weight: 300 !default;\n$swal2-validation-message-icon-background: $swal2-error !default;\n$swal2-validation-message-icon-color: $swal2-white !default;\n$swal2-validation-message-icon-zoom: null !default;\n\n// PROGRESS STEPS\n$swal2-progress-steps-flex-wrap: wrap !default;\n$swal2-progress-steps-align-items: center !default;\n$swal2-progress-steps-max-width: 100% !default;\n$swal2-progress-steps-background: transparent !default;\n$swal2-progress-steps-margin: 1.25em auto !default;\n$swal2-progress-steps-padding: 0 !default;\n$swal2-progress-steps-font-weight: 600 !default;\n$swal2-progress-steps-distance: 2.5em !default;\n$swal2-progress-step-width: 2em;\n$swal2-progress-step-height: 2em;\n$swal2-progress-step-border-radius: 2em;\n$swal2-progress-step-background: #add8e6 !default;\n$swal2-progress-step-color: $swal2-white !default;\n$swal2-active-step-background: #2778c4 !default;\n$swal2-active-step-color: $swal2-white !default;\n\n// FOOTER\n$swal2-footer-margin: 1em 0 0 !default;\n$swal2-footer-padding: 1em 1em 0 !default;\n$swal2-footer-border-color: #eee !default;\n$swal2-footer-color: inherit !default;\n$swal2-footer-font-size: 1em !default;\n$swal2-footer-text-align: center !default;\n\n// TIMER PROGRESS BAR\n$swal2-timer-progress-bar-height: 0.25em;\n$swal2-timer-progress-bar-background: rgba($swal2-black, 0.2) !default;\n\n// CLOSE BUTTON\n$swal2-close-button-justify-self: end !default;\n$swal2-close-button-align-items: center !default;\n$swal2-close-button-justify-content: center !default;\n$swal2-close-button-width: 1.2em !default;\n$swal2-close-button-height: 1.2em !default;\n$swal2-close-button-position: null !default;\n$swal2-close-button-gap: 0 !default;\n$swal2-close-button-padding: 0 !default;\n$swal2-close-button-transition:\n color 0.1s,\n box-shadow 0.1s !default;\n$swal2-close-button-border: none !default;\n$swal2-close-button-border-radius: $swal2-border-radius !default;\n$swal2-close-button-outline: null !default;\n$swal2-close-button-background: transparent !default;\n$swal2-close-button-color: #ccc !default;\n$swal2-close-button-font-family: monospace !default;\n$swal2-close-button-font-size: 2.5em !default;\n$swal2-close-button-box-shadow: inset 0 0 0 3px transparent !default;\n\n// CLOSE BUTTON:HOVER\n$swal2-close-button-hover-transform: none !default;\n$swal2-close-button-hover-color: $swal2-error !default;\n$swal2-close-button-hover-background: transparent !default;\n\n// CLOSE BUTTON:FOCUS\n$swal2-close-button-focus-outline: none !default;\n$swal2-close-button-focus-box-shadow: inset 0 0 0 3px $swal2-outline-color !default;\n\n// ACTIONS\n$swal2-actions-flex-wrap: wrap !default;\n$swal2-actions-align-items: center !default;\n$swal2-actions-justify-content: center !default;\n$swal2-actions-width: auto !default;\n$swal2-actions-margin: 1.25em auto 0 !default;\n$swal2-actions-padding: 0 !default;\n\n// COMMON VARIABLES FOR ALL ACTION BUTTONS\n$swal2-button-margin: 0.3125em !default;\n$swal2-button-padding: 0.625em 1.1em !default;\n$swal2-button-transition: box-shadow 0.1s !default;\n$swal2-button-box-shadow: 0 0 0 3px transparent !default;\n$swal2-button-font-weight: 500 !default;\n$swal2-button-darken-hover: rgba($swal2-black, 0.1) !default;\n$swal2-button-darken-active: rgba($swal2-black, 0.2) !default;\n$swal2-button-focus-outline: none !default;\n$swal2-button-focus-box-shadow: 0 0 0 3px $swal2-outline-color !default;\n\n// CONFIRM BUTTON\n$swal2-confirm-button-order: null !default;\n$swal2-confirm-button-border: 0 !default;\n$swal2-confirm-button-border-radius: 0.25em !default;\n$swal2-confirm-button-background-color: #7066e0 !default;\n$swal2-confirm-button-color: $swal2-white !default;\n$swal2-confirm-button-font-size: 1em !default;\n$swal2-confirm-button-focus-box-shadow: 0 0 0 3px rgba($swal2-confirm-button-background-color, 0.5) !default;\n\n// DENY BUTTON\n$swal2-deny-button-order: null !default;\n$swal2-deny-button-border: 0 !default;\n$swal2-deny-button-border-radius: 0.25em !default;\n$swal2-deny-button-background-color: #dc3741 !default;\n$swal2-deny-button-color: $swal2-white !default;\n$swal2-deny-button-font-size: 1em !default;\n$swal2-deny-button-focus-box-shadow: 0 0 0 3px rgba($swal2-deny-button-background-color, 0.5) !default;\n\n// CANCEL BUTTON\n$swal2-cancel-button-order: null !default;\n$swal2-cancel-button-border: 0 !default;\n$swal2-cancel-button-border-radius: 0.25em !default;\n$swal2-cancel-button-background-color: #6e7881 !default;\n$swal2-cancel-button-color: $swal2-white !default;\n$swal2-cancel-button-font-size: 1em !default;\n$swal2-cancel-button-focus-box-shadow: 0 0 0 3px rgba($swal2-cancel-button-background-color, 0.5) !default;\n\n// LOADER\n$swal2-loader-align-items: center !default;\n$swal2-loader-justify-content: center !default;\n$swal2-loader-width: 2.2em !default;\n$swal2-loader-height: 2.2em !default;\n$swal2-loader-margin: 0 1.875em !default;\n$swal2-loader-animation: swal2-rotate-loading 1.5s linear 0s infinite normal !default;\n$swal2-loader-border-width: 0.25em !default;\n$swal2-loader-border-style: solid !default;\n$swal2-loader-border-radius: 100% !default;\n$swal2-loader-border-color: #2778c4 transparent #2778c4 transparent !default;\n\n// TOASTS\n$swal2-toast-show-animation: swal2-toast-show 0.5s !default;\n$swal2-toast-hide-animation: swal2-toast-hide 0.1s forwards !default;\n$swal2-toast-border: none !default;\n$swal2-toast-box-shadow:\n 0 0 1px hsl(0deg 0% 0% / 0.075),\n 0 1px 2px hsl(0deg 0% 0% / 0.075),\n 1px 2px 4px hsl(0deg 0% 0% / 0.075),\n 1px 3px 8px hsl(0deg 0% 0% / 0.075),\n 2px 4px 16px hsl(0deg 0% 0% / 0.075) !default;\n$swal2-toast-background: $swal2-white !default;\n$swal2-toast-close-button-width: 0.8em !default;\n$swal2-toast-close-button-height: 0.8em !default;\n$swal2-toast-close-button-margin: 0 !default;\n$swal2-toast-close-button-font-size: 2em !default;\n$swal2-toast-width: 360px !default;\n$swal2-toast-padding: 1em !default;\n$swal2-toast-title-margin: 0.5em 1em !default;\n$swal2-toast-title-padding: 0 !default;\n$swal2-toast-title-font-size: 1em !default;\n$swal2-toast-icon-font-size: 1.8em !default;\n$swal2-toast-html-container-margin: 0.5em 1em !default;\n$swal2-toast-html-container-padding: 0 !default;\n$swal2-toast-html-container-font-size: 1em !default;\n$swal2-toast-input-height: 2em !default;\n$swal2-toast-input-margin: 0.5em !default;\n$swal2-toast-input-font-size: 1em !default;\n$swal2-toast-validation-font-size: 1em !default;\n$swal2-toast-buttons-font-size: 1em !default;\n$swal2-toast-footer-margin: 0.5em 0 0 !default;\n$swal2-toast-footer-padding: 0.5em 0 0 !default;\n$swal2-toast-footer-font-size: 0.8em !default;\n","@use 'sass:math';\n\ndiv:where(.swal2-container) {\n display: grid;\n position: fixed;\n z-index: 1060;\n inset: 0;\n box-sizing: border-box;\n grid-template-areas:\n 'top-start top top-end'\n 'center-start center center-end'\n 'bottom-start bottom-center bottom-end';\n grid-template-rows: minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);\n height: 100%; // Safari\n padding: $swal2-container-padding;\n overflow-x: hidden;\n transition: $swal2-backdrop-transition;\n\n // sweetalert2/issues/905\n -webkit-overflow-scrolling: touch;\n\n &.swal2-backdrop-show,\n &.swal2-noanimation {\n background: $swal2-backdrop;\n }\n\n &.swal2-backdrop-hide {\n background: transparent !important;\n }\n\n &.swal2-top-start,\n &.swal2-center-start,\n &.swal2-bottom-start {\n grid-template-columns: minmax(0, 1fr) auto auto;\n }\n\n &.swal2-top,\n &.swal2-center,\n &.swal2-bottom {\n grid-template-columns: auto minmax(0, 1fr) auto;\n }\n\n &.swal2-top-end,\n &.swal2-center-end,\n &.swal2-bottom-end {\n grid-template-columns: auto auto minmax(0, 1fr);\n }\n\n &.swal2-top-start > .swal2-popup {\n align-self: start;\n }\n\n &.swal2-top > .swal2-popup {\n grid-column: 2;\n place-self: start center;\n }\n\n &.swal2-top-end > .swal2-popup,\n &.swal2-top-right > .swal2-popup {\n grid-column: 3;\n place-self: start end;\n }\n\n &.swal2-center-start > .swal2-popup,\n &.swal2-center-left > .swal2-popup {\n grid-row: 2;\n align-self: center;\n }\n\n &.swal2-center > .swal2-popup {\n grid-column: 2;\n grid-row: 2;\n place-self: center center;\n }\n\n &.swal2-center-end > .swal2-popup,\n &.swal2-center-right > .swal2-popup {\n grid-column: 3;\n grid-row: 2;\n place-self: center end;\n }\n\n &.swal2-bottom-start > .swal2-popup,\n &.swal2-bottom-left > .swal2-popup {\n grid-column: 1;\n grid-row: 3;\n align-self: end;\n }\n\n &.swal2-bottom > .swal2-popup {\n grid-column: 2;\n grid-row: 3;\n place-self: end center;\n }\n\n &.swal2-bottom-end > .swal2-popup,\n &.swal2-bottom-right > .swal2-popup {\n grid-column: 3;\n grid-row: 3;\n place-self: end end;\n }\n\n &.swal2-grow-row > .swal2-popup,\n &.swal2-grow-fullscreen > .swal2-popup {\n grid-column: 1/4;\n width: 100%;\n }\n\n &.swal2-grow-column > .swal2-popup,\n &.swal2-grow-fullscreen > .swal2-popup {\n grid-row: 1/4;\n align-self: stretch;\n }\n\n &.swal2-no-transition {\n transition: none !important;\n }\n\n div:where(.swal2-popup) {\n display: none;\n position: relative;\n box-sizing: border-box;\n grid-template-columns: minmax(0, 100%);\n width: $swal2-width;\n max-width: 100%;\n padding: $swal2-padding;\n border: $swal2-border;\n border-radius: $swal2-border-radius;\n background: $swal2-background;\n color: $swal2-color;\n font-family: $swal2-font;\n font-size: $swal2-font-size;\n\n &:focus {\n outline: none;\n }\n\n &.swal2-loading {\n overflow-y: hidden;\n }\n }\n\n h2:where(.swal2-title) {\n position: $swal2-title-position;\n max-width: $swal2-title-max-width;\n margin: $swal2-title-margin;\n padding: $swal2-title-padding;\n color: $swal2-title-color;\n font-size: $swal2-title-font-size;\n font-weight: $swal2-title-font-weight;\n text-align: $swal2-title-text-align;\n text-transform: none;\n word-wrap: break-word;\n }\n\n div:where(.swal2-actions) {\n display: flex;\n z-index: 1; // prevent success icon from overlapping buttons\n box-sizing: border-box;\n flex-wrap: $swal2-actions-flex-wrap;\n align-items: $swal2-actions-align-items;\n justify-content: $swal2-actions-justify-content;\n width: $swal2-actions-width;\n margin: $swal2-actions-margin;\n padding: $swal2-actions-padding;\n\n &:not(.swal2-loading) {\n .swal2-styled {\n &[disabled] {\n opacity: 0.4;\n }\n\n &:hover {\n background-image: linear-gradient($swal2-button-darken-hover, $swal2-button-darken-hover);\n }\n\n &:active {\n background-image: linear-gradient($swal2-button-darken-active, $swal2-button-darken-active);\n }\n }\n }\n }\n\n div:where(.swal2-loader) {\n display: none;\n align-items: $swal2-loader-align-items;\n justify-content: $swal2-loader-justify-content;\n width: $swal2-loader-width;\n height: $swal2-loader-height;\n margin: $swal2-loader-margin;\n animation: $swal2-loader-animation;\n border-width: $swal2-loader-border-width;\n border-style: $swal2-loader-border-style;\n border-radius: $swal2-loader-border-radius;\n border-color: $swal2-loader-border-color;\n }\n\n button:where(.swal2-styled) {\n margin: $swal2-button-margin;\n padding: $swal2-button-padding;\n transition: $swal2-button-transition;\n box-shadow: $swal2-button-box-shadow;\n font-weight: $swal2-button-font-weight;\n\n &:not([disabled]) {\n cursor: pointer;\n }\n\n &.swal2-confirm {\n order: $swal2-confirm-button-order;\n border: $swal2-confirm-button-border;\n border-radius: $swal2-confirm-button-border-radius;\n background: initial;\n background-color: $swal2-confirm-button-background-color;\n color: $swal2-confirm-button-color;\n font-size: $swal2-confirm-button-font-size;\n\n &:focus {\n box-shadow: $swal2-confirm-button-focus-box-shadow;\n }\n }\n\n &.swal2-deny {\n order: $swal2-deny-button-order;\n border: $swal2-deny-button-border;\n border-radius: $swal2-deny-button-border-radius;\n background: initial;\n background-color: $swal2-deny-button-background-color;\n color: $swal2-deny-button-color;\n font-size: $swal2-deny-button-font-size;\n\n &:focus {\n box-shadow: $swal2-deny-button-focus-box-shadow;\n }\n }\n\n &.swal2-cancel {\n order: $swal2-cancel-button-order;\n border: $swal2-cancel-button-border;\n border-radius: $swal2-cancel-button-border-radius;\n background: initial;\n background-color: $swal2-cancel-button-background-color;\n color: $swal2-cancel-button-color;\n font-size: $swal2-cancel-button-font-size;\n\n &:focus {\n box-shadow: $swal2-cancel-button-focus-box-shadow;\n }\n }\n\n &.swal2-default-outline {\n &:focus {\n box-shadow: $swal2-button-focus-box-shadow;\n }\n }\n\n &:focus {\n outline: $swal2-button-focus-outline;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n }\n\n div:where(.swal2-footer) {\n margin: $swal2-footer-margin;\n padding: $swal2-footer-padding;\n border-top: 1px solid $swal2-footer-border-color;\n color: $swal2-footer-color;\n font-size: $swal2-footer-font-size;\n text-align: $swal2-footer-text-align;\n }\n\n .swal2-timer-progress-bar-container {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n grid-column: auto !important;\n overflow: hidden;\n border-bottom-right-radius: $swal2-border-radius;\n border-bottom-left-radius: $swal2-border-radius;\n }\n\n div:where(.swal2-timer-progress-bar) {\n width: 100%;\n height: $swal2-timer-progress-bar-height;\n background: $swal2-timer-progress-bar-background;\n }\n\n img:where(.swal2-image) {\n max-width: 100%;\n margin: $swal2-image-margin;\n }\n\n button:where(.swal2-close) {\n position: $swal2-close-button-position;\n z-index: 2; // sweetalert2/issues/1617\n align-items: $swal2-close-button-align-items;\n justify-content: $swal2-close-button-justify-content;\n width: $swal2-close-button-width;\n height: $swal2-close-button-height;\n margin-top: $swal2-close-button-gap;\n margin-right: $swal2-close-button-gap;\n margin-bottom: -$swal2-close-button-height;\n padding: $swal2-close-button-padding;\n overflow: hidden;\n transition: $swal2-close-button-transition;\n border: $swal2-close-button-border;\n border-radius: $swal2-close-button-border-radius;\n outline: $swal2-close-button-outline;\n background: $swal2-close-button-background;\n color: $swal2-close-button-color;\n font-family: $swal2-close-button-font-family;\n font-size: $swal2-close-button-font-size;\n cursor: pointer;\n justify-self: $swal2-close-button-justify-self;\n\n &:hover {\n transform: $swal2-close-button-hover-transform;\n background: $swal2-close-button-hover-background;\n color: $swal2-close-button-hover-color;\n }\n\n &:focus {\n outline: $swal2-close-button-focus-outline;\n box-shadow: $swal2-close-button-focus-box-shadow;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n }\n\n .swal2-html-container {\n z-index: 1; // prevent success icon overlapping the content\n justify-content: $swal2-html-container-justify-content;\n margin: $swal2-html-container-margin;\n padding: $swal2-html-container-padding;\n overflow: $swal2-html-container-overflow;\n color: $swal2-html-container-color;\n font-size: $swal2-html-container-font-size;\n font-weight: $swal2-html-container-font-weight;\n line-height: $swal2-html-container-line-height;\n text-align: $swal2-html-container-text-align;\n word-wrap: $swal2-html-container-word-wrap;\n word-break: $swal2-html-container-word-break;\n }\n\n input:where(.swal2-input),\n input:where(.swal2-file),\n textarea:where(.swal2-textarea),\n select:where(.swal2-select),\n div:where(.swal2-radio),\n label:where(.swal2-checkbox) {\n margin: $swal2-input-margin;\n }\n\n input:where(.swal2-input),\n input:where(.swal2-file),\n textarea:where(.swal2-textarea) {\n box-sizing: border-box;\n width: $swal2-input-width;\n transition: $swal2-input-transition;\n border: $swal2-input-border;\n border-radius: $swal2-input-border-radius;\n background: $swal2-input-background;\n box-shadow: $swal2-input-box-shadow;\n color: $swal2-input-color;\n font-size: $swal2-input-font-size;\n\n &.swal2-inputerror {\n border-color: $swal2-error !important;\n box-shadow: 0 0 2px $swal2-error !important;\n }\n\n &:focus {\n border: $swal2-input-focus-border;\n outline: $swal2-input-focus-outline;\n box-shadow: $swal2-input-focus-box-shadow;\n }\n\n &::placeholder {\n color: #ccc;\n }\n }\n\n .swal2-range {\n margin: $swal2-input-margin;\n background: $swal2-background;\n\n input {\n width: 80%;\n }\n\n output {\n width: 20%;\n color: $swal2-input-color;\n font-weight: 600;\n text-align: center;\n }\n\n input,\n output {\n height: $swal2-input-height;\n padding: 0;\n font-size: $swal2-input-font-size;\n line-height: $swal2-input-height;\n }\n }\n\n .swal2-input {\n height: $swal2-input-height;\n padding: $swal2-input-padding;\n }\n\n .swal2-file {\n width: 75%;\n margin-right: auto;\n margin-left: auto;\n background: $swal2-input-background;\n font-size: $swal2-input-font-size;\n }\n\n .swal2-textarea {\n height: $swal2-textarea-height;\n padding: $swal2-textarea-padding;\n }\n\n .swal2-select {\n min-width: 50%;\n max-width: 100%;\n padding: 0.375em 0.625em;\n background: $swal2-input-background;\n color: $swal2-input-color;\n font-size: $swal2-input-font-size;\n }\n\n .swal2-radio,\n .swal2-checkbox {\n align-items: center;\n justify-content: center;\n background: $swal2-background;\n color: $swal2-input-color;\n\n label {\n margin: 0 0.6em;\n font-size: $swal2-input-font-size;\n }\n\n input {\n flex-shrink: 0;\n margin: 0 0.4em;\n }\n }\n\n label:where(.swal2-input-label) {\n display: flex;\n justify-content: $swal2-input-label-justify-content;\n margin: $swal2-input-label-margin;\n }\n\n div:where(.swal2-validation-message) {\n align-items: $swal2-validation-message-align-items;\n justify-content: $swal2-validation-message-justify-content;\n margin: $swal2-validation-message-margin;\n padding: $swal2-validation-message-padding;\n overflow: hidden;\n background: $swal2-validation-message-background;\n color: $swal2-validation-message-color;\n font-size: $swal2-validation-message-font-size;\n font-weight: $swal2-validation-message-font-weight;\n\n &::before {\n content: '!';\n display: inline-block;\n width: 1.5em;\n min-width: 1.5em;\n height: 1.5em;\n margin: 0 0.625em;\n zoom: $swal2-validation-message-icon-zoom;\n border-radius: 50%;\n background-color: $swal2-validation-message-icon-background;\n color: $swal2-validation-message-icon-color;\n font-weight: 600;\n line-height: 1.5em;\n text-align: center;\n }\n }\n\n .swal2-progress-steps {\n flex-wrap: $swal2-progress-steps-flex-wrap;\n align-items: $swal2-progress-steps-align-items;\n max-width: $swal2-progress-steps-max-width;\n margin: $swal2-progress-steps-margin;\n padding: $swal2-progress-steps-padding;\n background: $swal2-progress-steps-background;\n font-weight: $swal2-progress-steps-font-weight;\n\n li {\n display: inline-block;\n position: relative;\n }\n\n .swal2-progress-step {\n z-index: 20;\n flex-shrink: 0;\n width: $swal2-progress-step-width;\n height: $swal2-progress-step-height;\n border-radius: $swal2-progress-step-border-radius;\n background: $swal2-active-step-background;\n color: $swal2-active-step-color;\n line-height: $swal2-progress-step-height;\n text-align: center;\n\n &.swal2-active-progress-step {\n background: $swal2-active-step-background;\n\n ~ .swal2-progress-step {\n background: $swal2-progress-step-background;\n color: $swal2-progress-step-color;\n }\n\n ~ .swal2-progress-step-line {\n background: $swal2-progress-step-background;\n }\n }\n }\n\n .swal2-progress-step-line {\n z-index: 10;\n flex-shrink: 0;\n width: $swal2-progress-steps-distance;\n height: 0.4em;\n margin: 0 -1px;\n background: $swal2-active-step-background;\n }\n }\n}\n\n@import 'icons';\n\n// github.com/sweetalert2/sweetalert2/issues/268\n[class^='swal2'] {\n -webkit-tap-highlight-color: transparent;\n}\n\n.swal2-show {\n animation: $swal2-show-animation;\n}\n\n.swal2-hide {\n animation: $swal2-hide-animation;\n}\n\n.swal2-noanimation {\n transition: none;\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.swal2-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Right-to-left support\n.swal2-rtl {\n .swal2-close {\n margin-right: initial;\n margin-left: $swal2-close-button-gap;\n }\n\n .swal2-timer-progress-bar {\n right: 0;\n left: auto;\n }\n}\n","// https://stackoverflow.com/a/12335841/1331425\n@function strip-units($number) {\n @return math.div($number, ($number * 0 + 1));\n}\n$icon-zoom: math.div(strip-units($swal2-icon-size), 5);\n\ndiv:where(.swal2-icon) {\n position: relative;\n box-sizing: content-box;\n justify-content: center;\n width: $swal2-icon-size;\n height: $swal2-icon-size;\n margin: $swal2-icon-margin;\n zoom: $swal2-icon-zoom;\n border: #{0.25em * $icon-zoom} solid transparent;\n border-radius: 50%;\n border-color: $swal2-icon-border-color;\n font-family: $swal2-icon-font-family;\n line-height: $swal2-icon-size;\n cursor: default;\n user-select: none;\n\n .swal2-icon-content {\n display: flex;\n align-items: center;\n font-size: $swal2-icon-font-size;\n }\n\n &.swal2-error {\n border-color: $swal2-error;\n color: $swal2-error;\n\n .swal2-x-mark {\n position: relative;\n flex-grow: 1;\n\n @if $icon-zoom != 1 {\n zoom: $icon-zoom;\n }\n }\n\n [class^='swal2-x-mark-line'] {\n display: block;\n position: absolute;\n top: 2.3125em;\n width: 2.9375em;\n height: 0.3125em;\n border-radius: 0.125em;\n background-color: $swal2-error;\n\n &[class$='left'] {\n left: 1.0625em;\n transform: rotate(45deg);\n }\n\n &[class$='right'] {\n right: 1em;\n transform: rotate(-45deg);\n }\n }\n\n // Error icon animation\n &.swal2-icon-show {\n @if $swal2-icon-animations {\n animation: swal2-animate-error-icon 0.5s;\n\n .swal2-x-mark {\n animation: swal2-animate-error-x-mark 0.5s;\n }\n }\n }\n }\n\n &.swal2-warning {\n border-color: lighten($swal2-warning, 7);\n color: $swal2-warning;\n\n // Warning icon animation\n &.swal2-icon-show {\n @if $swal2-icon-animations {\n animation: swal2-animate-error-icon 0.5s;\n\n .swal2-icon-content {\n animation: swal2-animate-i-mark 0.5s;\n }\n }\n }\n }\n\n &.swal2-info {\n border-color: lighten($swal2-info, 20);\n color: $swal2-info;\n\n // Info icon animation\n &.swal2-icon-show {\n @if $swal2-icon-animations {\n animation: swal2-animate-error-icon 0.5s;\n\n .swal2-icon-content {\n animation: swal2-animate-i-mark 0.8s;\n }\n }\n }\n }\n\n &.swal2-question {\n border-color: lighten($swal2-question, 20);\n color: $swal2-question;\n\n // Question icon animation\n &.swal2-icon-show {\n @if $swal2-icon-animations {\n animation: swal2-animate-error-icon 0.5s;\n\n .swal2-icon-content {\n animation: swal2-animate-question-mark 0.8s;\n }\n }\n }\n }\n\n &.swal2-success {\n border-color: $swal2-success;\n color: $swal2-success;\n\n [class^='swal2-success-circular-line'] {\n // Emulate moving circular line\n position: absolute;\n width: 3.75em;\n height: 7.5em;\n border-radius: 50%;\n\n &[class$='left'] {\n top: -0.4375em;\n left: -2.0635em;\n transform: rotate(-45deg);\n transform-origin: 3.75em 3.75em;\n border-radius: 7.5em 0 0 7.5em;\n\n @if $icon-zoom != 1 {\n zoom: $icon-zoom;\n }\n }\n\n &[class$='right'] {\n top: -0.6875em;\n left: 1.875em;\n transform: rotate(-45deg);\n transform-origin: 0 3.75em;\n border-radius: 0 7.5em 7.5em 0;\n\n @if $icon-zoom != 1 {\n zoom: $icon-zoom;\n }\n }\n }\n\n .swal2-success-ring {\n // Ring\n position: absolute;\n z-index: 2;\n top: -0.25em;\n left: -0.25em;\n box-sizing: content-box;\n width: 100%;\n height: 100%;\n border: 0.25em solid $swal2-success-border;\n border-radius: 50%;\n\n @if $icon-zoom != 1 {\n zoom: $icon-zoom;\n }\n }\n\n .swal2-success-fix {\n // Hide corners left from animation\n position: absolute;\n z-index: 1;\n top: 0.5em;\n left: 1.625em;\n width: 0.4375em;\n height: 5.625em;\n transform: rotate(-45deg);\n\n @if $icon-zoom != 1 {\n zoom: $icon-zoom;\n }\n }\n\n [class^='swal2-success-line'] {\n display: block;\n position: absolute;\n z-index: 2;\n height: 0.3125em;\n border-radius: 0.125em;\n background-color: $swal2-success;\n\n &[class$='tip'] {\n top: 2.875em;\n left: 0.8125em;\n width: 1.5625em;\n transform: rotate(45deg);\n }\n\n &[class$='long'] {\n top: 2.375em;\n right: 0.5em;\n width: 2.9375em;\n transform: rotate(-45deg);\n }\n\n @if $icon-zoom != 1 {\n zoom: $icon-zoom;\n }\n }\n\n // Success icon animation\n &.swal2-icon-show {\n @if $swal2-icon-animations {\n .swal2-success-line-tip {\n animation: swal2-animate-success-line-tip 0.75s;\n }\n\n .swal2-success-line-long {\n animation: swal2-animate-success-line-long 0.75s;\n }\n\n .swal2-success-circular-line-right {\n animation: swal2-rotate-success-circular-line 4.25s ease-in;\n }\n }\n }\n }\n}\n","// Animations\n@keyframes swal2-toast-show {\n 0% {\n transform: translateY(-0.625em) rotateZ(2deg);\n }\n\n 33% {\n transform: translateY(0) rotateZ(-2deg);\n }\n\n 66% {\n transform: translateY(0.3125em) rotateZ(2deg);\n }\n\n 100% {\n transform: translateY(0) rotateZ(0deg);\n }\n}\n\n@keyframes swal2-toast-hide {\n 100% {\n transform: rotateZ(1deg);\n opacity: 0;\n }\n}\n\n@keyframes swal2-toast-animate-success-line-tip {\n 0% {\n top: 0.5625em;\n left: 0.0625em;\n width: 0;\n }\n\n 54% {\n top: 0.125em;\n left: 0.125em;\n width: 0;\n }\n\n 70% {\n top: 0.625em;\n left: -0.25em;\n width: 1.625em;\n }\n\n 84% {\n top: 1.0625em;\n left: 0.75em;\n width: 0.5em;\n }\n\n 100% {\n top: 1.125em;\n left: 0.1875em;\n width: 0.75em;\n }\n}\n\n@keyframes swal2-toast-animate-success-line-long {\n 0% {\n top: 1.625em;\n right: 1.375em;\n width: 0;\n }\n\n 65% {\n top: 1.25em;\n right: 0.9375em;\n width: 0;\n }\n\n 84% {\n top: 0.9375em;\n right: 0;\n width: 1.125em;\n }\n\n 100% {\n top: 0.9375em;\n right: 0.1875em;\n width: 1.375em;\n }\n}\n","@import 'toasts-animations';\n\n// Appearance animation\n@keyframes swal2-show {\n 0% {\n transform: scale(0.7);\n }\n\n 45% {\n transform: scale(1.05);\n }\n\n 80% {\n transform: scale(0.95);\n }\n\n 100% {\n transform: scale(1);\n }\n}\n\n// Disppearance animation\n@keyframes swal2-hide {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n\n 100% {\n transform: scale(0.5);\n opacity: 0;\n }\n}\n\n// Success icon animations\n@keyframes swal2-animate-success-line-tip {\n 0% {\n top: 1.1875em;\n left: 0.0625em;\n width: 0;\n }\n\n 54% {\n top: 1.0625em;\n left: 0.125em;\n width: 0;\n }\n\n 70% {\n top: 2.1875em;\n left: -0.375em;\n width: 3.125em;\n }\n\n 84% {\n top: 3em;\n left: 1.3125em;\n width: 1.0625em;\n }\n\n 100% {\n top: 2.8125em;\n left: 0.8125em;\n width: 1.5625em;\n }\n}\n\n@keyframes swal2-animate-success-line-long {\n 0% {\n top: 3.375em;\n right: 2.875em;\n width: 0;\n }\n\n 65% {\n top: 3.375em;\n right: 2.875em;\n width: 0;\n }\n\n 84% {\n top: 2.1875em;\n right: 0;\n width: 3.4375em;\n }\n\n 100% {\n top: 2.375em;\n right: 0.5em;\n width: 2.9375em;\n }\n}\n\n@keyframes swal2-rotate-success-circular-line {\n 0% {\n transform: rotate(-45deg);\n }\n\n 5% {\n transform: rotate(-45deg);\n }\n\n 12% {\n transform: rotate(-405deg);\n }\n\n 100% {\n transform: rotate(-405deg);\n }\n}\n\n// Error icon animations\n@keyframes swal2-animate-error-x-mark {\n 0% {\n margin-top: 1.625em;\n transform: scale(0.4);\n opacity: 0;\n }\n\n 50% {\n margin-top: 1.625em;\n transform: scale(0.4);\n opacity: 0;\n }\n\n 80% {\n margin-top: -0.375em;\n transform: scale(1.15);\n }\n\n 100% {\n margin-top: 0;\n transform: scale(1);\n opacity: 1;\n }\n}\n\n@keyframes swal2-animate-error-icon {\n 0% {\n transform: rotateX(100deg);\n opacity: 0;\n }\n\n 100% {\n transform: rotateX(0deg);\n opacity: 1;\n }\n}\n\n@keyframes swal2-rotate-loading {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}\n\n// Question mark animation\n@keyframes swal2-animate-question-mark {\n 0% {\n transform: rotateY(-360deg);\n }\n\n 100% {\n transform: rotateY(0);\n }\n}\n\n// Info and Warning mark animation\n@keyframes swal2-animate-i-mark {\n 0% {\n transform: rotateZ(45deg);\n opacity: 0;\n }\n\n 25% {\n transform: rotateZ(-25deg);\n opacity: 0.4;\n }\n\n 50% {\n transform: rotateZ(15deg);\n opacity: 0.8;\n }\n\n 75% {\n transform: rotateZ(-5deg);\n opacity: 1;\n }\n\n 100% {\n transform: rotateX(0);\n opacity: 1;\n }\n}\n","// https://stackoverflow.com/a/30250161\n@mixin not($ignor-list...) {\n @if (length($ignor-list) == 1) {\n $ignor-list: nth($ignor-list, 1);\n }\n\n $not-output: '';\n\n @each $not in $ignor-list {\n $not-output: $not-output + ':not(#{$not})'; // stylelint-disable-line scss/no-duplicate-dollar-variables\n }\n\n &#{$not-output} {\n @content;\n }\n}\n","@import 'toasts-body';\n\n@mixin sweetalert2-body() {\n &.swal2-shown {\n @include not('.swal2-no-backdrop', '.swal2-toast-shown') {\n overflow: hidden; // not overflow-y because of Sarari, #1253\n }\n }\n\n &.swal2-height-auto {\n height: auto !important; // #781 #1107\n }\n\n &.swal2-no-backdrop {\n .swal2-container {\n background-color: transparent !important;\n pointer-events: none;\n\n .swal2-popup {\n pointer-events: all;\n }\n\n .swal2-modal {\n box-shadow: 0 0 10px $swal2-backdrop;\n }\n }\n }\n\n @media print {\n &.swal2-shown {\n @include not('.swal2-no-backdrop', '.swal2-toast-shown') {\n overflow-y: scroll !important;\n\n > [aria-hidden='true'] {\n display: none;\n }\n\n .swal2-container {\n position: static !important;\n }\n }\n }\n }\n}\n","@mixin sweetalert2-toasts-body() {\n &.swal2-toast-shown {\n .swal2-container {\n box-sizing: border-box;\n width: $swal2-toast-width;\n max-width: 100%;\n background-color: transparent;\n pointer-events: none;\n\n &.swal2-top {\n inset: 0 auto auto 50%;\n transform: translateX(-50%);\n }\n\n &.swal2-top-end,\n &.swal2-top-right {\n inset: 0 0 auto auto;\n }\n\n &.swal2-top-start,\n &.swal2-top-left {\n inset: 0 auto auto 0;\n }\n\n &.swal2-center-start,\n &.swal2-center-left {\n inset: 50% auto auto 0;\n transform: translateY(-50%);\n }\n\n &.swal2-center {\n inset: 50% auto auto 50%;\n transform: translate(-50%, -50%);\n }\n\n &.swal2-center-end,\n &.swal2-center-right {\n inset: 50% 0 auto auto;\n transform: translateY(-50%);\n }\n\n &.swal2-bottom-start,\n &.swal2-bottom-left {\n inset: auto auto 0 0;\n }\n\n &.swal2-bottom {\n inset: auto auto 0 50%;\n transform: translateX(-50%);\n }\n\n &.swal2-bottom-end,\n &.swal2-bottom-right {\n inset: auto 0 0 auto;\n }\n }\n }\n}\n"],sourceRoot:""}]);const o=a},663:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,".rc-buttons{z-index:10}.rc-absolute-buttons{bottom:1.25rem;position:fixed;right:1.25rem;text-align:right}.rc-button{border:none!important;border-radius:7px!important;cursor:pointer;font-size:1rem!important;font-weight:700!important;line-height:150%!important;margin:.25rem!important;padding:1rem 1.5rem!important;text-align:center!important}.rc-go-button{background:rgba(255,154,0,.667)!important;color:#fff!important}.rc-go-button:hover{background:#ff9a00!important}.rc-go-button:active{background:#d68200!important}.rc-cancel-button,.rc-custom-button{background:hsla(0,0%,100%,.933)!important;color:#333!important}.rc-cancel-button:hover,.rc-custom-button:hover{background:#ddd!important}.rc-cancel-button:active,.rc-custom-button:active{background:#aaa!important;color:#000!important}.rc-button:disabled{background:#ddd!important;color:#999!important;cursor:default!important}","",{version:3,sources:["webpack://./src/css/buttons.scss"],names:[],mappings:"AAAA,YACE,UAAA,CAGF,qBAGE,cAAA,CAFA,cAAA,CAGA,aAAA,CAFA,gBAEA,CAGF,WAEE,qBAAA,CAMA,2BAAA,CACA,cAAA,CALA,wBAAA,CACA,yBAAA,CAFA,0BAAA,CAIA,uBAAA,CADA,6BAAA,CALA,2BAQA,CAGF,cACE,yCAAA,CACA,oBAAA,CAEA,oBACE,4BAAA,CAGF,qBACE,4BAAA,CAIJ,oCAEE,yCAAA,CACA,oBAAA,CAEA,gDACE,yBAAA,CAGF,kDACE,yBAAA,CACA,oBAAA,CAIJ,oBACE,yBAAA,CACA,oBAAA,CACA,wBAAA",sourcesContent:[".rc-buttons {\n z-index: 10;\n}\n\n.rc-absolute-buttons {\n position: fixed;\n text-align: right;\n bottom: 1.25rem;\n right: 1.25rem;\n}\n\n.rc-button {\n text-align: center !important;\n border: none !important;\n line-height: 150% !important;\n font-size: 1rem !important;\n font-weight: 700 !important;\n padding: 1rem 1.5rem !important;\n margin: 0.25rem !important;\n border-radius: 7px !important;\n cursor: pointer;\n}\n\n.rc-go-button {\n background: #ff9a00aa !important;\n color: #fff !important;\n\n &:hover {\n background: #ff9a00 !important;\n }\n\n &:active {\n background: #d68200 !important;\n }\n}\n\n.rc-cancel-button,\n.rc-custom-button {\n background: #ffffffee !important;\n color: #333 !important;\n\n &:hover {\n background: #ddd !important;\n }\n\n &:active {\n background: #aaa !important;\n color: #000 !important;\n }\n}\n\n.rc-button:disabled {\n background: #ddd !important;\n color: #999 !important;\n cursor: default !important;\n}\n"],sourceRoot:""}]);const o=a},290:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,".my__swal2__container .swal2-select{border:2px solid #aaa!important;border-radius:5px!important;font-family:inherit!important;font-size:1.2rem!important;margin:auto 1.6rem!important;outline:none!important;padding-top:.5rem!important}.rc-form{font-family:inherit;font-size:2rem;pointer-events:auto!important}.rc-form .rc-form-inputs{display:flex;justify-content:space-between!important;margin:1rem 0}.rc-form .rc-form-inputs .rc-form-input,.rc-form .rc-form-inputs span{flex-grow:1;font-family:inherit;font-size:inherit;padding:.5rem}.rc-form .rc-form-inputs span{font-weight:700}.rc-form .rc-form-input{border:2px solid #aaa;border-radius:5px;outline:none;width:min(100%,10rem)}.rc-form .rc-form-input.rc-input-error{border-color:#ac0d0d!important;color:#ac0d0d!important}.rc-form .rc-form-input+.rc-form-input{margin-left:.5rem}.arrow-two-sided-svg{position:fixed}.arrow-two-sided-svg .arrow-two-sided{fill:#ff9a00}.arrow-two-sided-horizontal{bottom:10%;left:0;right:0;width:100%}.arrow-two-sided-vertical{bottom:0;height:100%;right:5%;top:0}","",{version:3,sources:["webpack://./src/css/check.scss"],names:[],mappings:"AAAA,oCAME,+BAAA,CADA,2BAAA,CADA,6BAAA,CAHA,0BAAA,CACA,4BAAA,CAKA,sBAAA,CAJA,2BAIA,CAOF,SAEE,mBAAA,CADA,cAAA,CAEA,6BAAA,CAEA,yBACE,YAAA,CACA,uCAAA,CACA,aAAA,CAEA,sEAEE,WAAA,CAEA,mBAAA,CACA,iBAAA,CAFA,aAEA,CAGF,8BACE,eAAA,CAIJ,wBACE,qBAAA,CAEA,iBAAA,CADA,YAAA,CAEA,qBAAA,CAEA,uCACE,8BAAA,CACA,uBAAA,CAIJ,uCACE,iBAAA,CAIJ,qBACE,cAAA,CAEA,sCACE,YAAA,CAIJ,4BAEE,UAAA,CACA,MAAA,CACA,OAAA,CAHA,UAGA,CAGF,0BAIE,QAAA,CAHA,WAAA,CACA,QAAA,CACA,KACA",sourcesContent:[".my__swal2__container .swal2-select {\n font-size: 1.2rem !important;\n margin: auto 1.6rem !important;\n padding-top: 0.5rem !important;\n font-family: inherit !important;\n border-radius: 5px !important;\n border: 2px solid #aaa !important;\n outline: none !important;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Measure Input */\n/* -------------------------------------------------------------------------- */\n\n.rc-form {\n font-size: 2rem;\n font-family: inherit;\n pointer-events: auto !important;\n\n .rc-form-inputs {\n display: flex;\n justify-content: space-between !important;\n margin: 1rem 0;\n\n .rc-form-input,\n span {\n flex-grow: 1;\n padding: 0.5rem;\n font-family: inherit;\n font-size: inherit;\n }\n\n span {\n font-weight: 700;\n }\n }\n\n .rc-form-input {\n border: 2px solid #aaa;\n outline: none;\n border-radius: 5px;\n width: min(100%, 10rem);\n\n &.rc-input-error {\n border-color: #ac0d0d !important;\n color: #ac0d0d !important;\n }\n }\n\n .rc-form-input + .rc-form-input {\n margin-left: 0.5rem;\n }\n}\n\n.arrow-two-sided-svg {\n position: fixed;\n\n .arrow-two-sided {\n fill: #ff9a00;\n }\n}\n\n.arrow-two-sided-horizontal {\n width: 100%;\n bottom: 10%;\n left: 0;\n right: 0;\n}\n\n.arrow-two-sided-vertical {\n height: 100%;\n right: 5%;\n top: 0;\n bottom: 0;\n}\n"],sourceRoot:""}]);const o=a},2945:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,"#eye-side{font-weight:700}#blind-spot-canvas{bottom:0;display:block;left:0;margin:0;padding:0;position:fixed;right:0;top:0;z-index:-1}#blind-spot-instruction{max-width:unset!important}@media(min-width:641px){#blind-spot-instruction{font-size:1.1rem!important;width:65%!important}}@media(max-width:640px){#blind-spot-instruction{font-size:.9rem!important;width:90%!important}}#pip-video{display:none}#video-canvas{border-radius:6px;bottom:1rem;display:block;left:1rem;position:absolute;z-index:1000}#rc-ruler{cursor:pointer;max-height:120px;overflow:hidden;position:fixed;-webkit-user-select:none;-moz-user-select:none;user-select:none}#rc-ruler-scales{left:30px;pointer-events:none;position:absolute;top:0;z-index:1}#rc-ruler-scales #size-arrow{opacity:.5;transform:rotate(90deg) translateY(calc(50% + 3px))}#rc-ruler-scales .rc-ruler-scale-text{color:rgba(44,46,67,.667);font-weight:700;margin:0!important;padding:0;position:absolute;top:32px!important;transform:translate(-50%)!important}#rc-ruler-scales .rc-ruler-scale{display:block;position:absolute;top:0;transform:translate(-1px);width:2px;z-index:2}#rc-ruler-scales .rc-ruler-major{background-color:rgba(44,46,67,.933);height:30px}#rc-ruler-scales .rc-ruler-secondary{background-color:rgba(89,82,96,.867);height:24px}#rc-ruler-scales .rc-ruler-minor{background-color:rgba(89,82,96,.4);height:16px}.hide-nudger .calibration-nudger{display:none!important;opacity:0!important}.calibration-nudger,.gaze-nudger{bottom:0;box-sizing:border-box;height:100%;left:0;margin:0;overflow:hidden;position:fixed;right:0;scrollbar-width:none;text-align:center;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:999999999}.calibration-nudger *,.gaze-nudger *{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}#rc-distance-correct{margin:0 auto auto;overflow-wrap:break-word;padding:2rem;text-align:center;width:100%}#rc-distance-correct #rc-distance-correct-instruction{font-size:7rem;font-weight:700;line-height:100%;margin:0 auto 2rem}#rc-distance-correct #rc-distance-correct-guide{font-size:3rem;font-weight:500;line-height:200%}#rc-distance-correct #rc-distance-correct-guide .rc-distance-num{border-radius:7px!important;font-family:monospace!important;font-size:9rem;font-weight:700;padding:.5rem;vertical-align:middle}","",{version:3,sources:["webpack://./src/css/distance.scss"],names:[],mappings:"AAAA,UACE,eAAA,CAGF,mBAME,QAAA,CAJA,aAAA,CAGA,MAAA,CAIA,QAAA,CADA,SAAA,CAPA,cAAA,CAMA,OAAA,CAHA,KAAA,CADA,UAMA,CAGF,wBAEE,yBAAA,CAGF,wBACE,wBAEE,0BAAA,CADA,mBACA,CAAA,CAIJ,wBACE,wBAEE,yBAAA,CADA,mBACA,CAAA,CAIJ,WACE,YAAA,CAGF,cAME,iBAAA,CAFA,WAAA,CADA,aAAA,CAEA,SAAA,CAHA,iBAAA,CADA,YAKA,CAKF,UAKE,cAAA,CAHA,gBAAA,CACA,eAAA,CAFA,cAAA,CAKA,wBAAA,CAAA,qBAAA,CAAA,gBAAA,CAGF,iBAGE,SAAA,CAEA,mBAAA,CAJA,iBAAA,CACA,KAAA,CAEA,SACA,CAEA,6BAEE,UAAA,CADA,mDACA,CAGF,sCAKE,yBAAA,CACA,eAAA,CAHA,kBAAA,CACA,SAAA,CAHA,iBAAA,CACA,kBAAA,CAKA,mCAAA,CAGF,iCAEE,aAAA,CADA,iBAAA,CAEA,KAAA,CAEA,yBAAA,CADA,SAAA,CAEA,SAAA,CAGF,iCACE,oCAAA,CACA,WAAA,CAGF,qCACE,oCAAA,CACA,WAAA,CAGF,iCACE,kCAAA,CACA,WAAA,CAOF,iCACE,sBAAA,CACA,mBAAA,CAIJ,iCASE,QAAA,CAIA,qBAAA,CARA,WAAA,CAEA,MAAA,CAGA,QAAA,CACA,eAAA,CARA,cAAA,CAKA,OAAA,CAOA,oBAAA,CADA,iBAAA,CARA,KAAA,CAMA,wBAAA,CAAA,qBAAA,CAAA,gBAAA,CARA,UAAA,CAFA,iBAaA,CAEA,qCACE,wHAAA,CAKJ,qBAGE,kBAAA,CAEA,wBAAA,CADA,YAAA,CAHA,iBAAA,CACA,UAGA,CAEA,sDAEE,cAAA,CADA,eAAA,CAGA,gBAAA,CADA,kBACA,CAGF,gDAEE,cAAA,CADA,eAAA,CAEA,gBAAA,CAEA,iEAEE,2BAAA,CAEA,+BAAA,CAEA,cAAA,CAHA,eAAA,CAFA,aAAA,CAIA,qBACA",sourcesContent:["#eye-side {\n font-weight: bold;\n}\n\n#blind-spot-canvas {\n position: fixed;\n display: block;\n z-index: -1;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n padding: 0;\n margin: 0;\n}\n\n#blind-spot-instruction {\n // max-width: min(32rem, 100%) !important;\n max-width: unset !important;\n}\n\n@media (min-width: 641px) {\n #blind-spot-instruction {\n width: 65% !important;\n font-size: 1.1rem !important;\n }\n}\n\n@media (max-width: 640px) {\n #blind-spot-instruction {\n width: 90% !important;\n font-size: 0.9rem !important;\n }\n}\n\n#pip-video {\n display: none;\n}\n\n#video-canvas {\n z-index: 1000;\n position: absolute;\n display: block;\n bottom: 1rem;\n left: 1rem;\n border-radius: 6px;\n}\n\n/* ----------------------------------- PD ----------------------------------- */\n\n#rc-ruler {\n position: fixed;\n max-height: 120px;\n overflow: hidden;\n\n cursor: pointer;\n user-select: none;\n}\n\n#rc-ruler-scales {\n position: absolute;\n top: 0;\n left: 30px;\n z-index: 1;\n pointer-events: none;\n\n #size-arrow {\n transform: rotate(90deg) translate(0, calc(50% + 3px));\n opacity: 0.5;\n }\n\n .rc-ruler-scale-text {\n position: absolute;\n top: 32px !important;\n margin: 0 !important;\n padding: 0;\n color: #2c2e43aa;\n font-weight: 700;\n transform: translate(-50%, 0) !important;\n }\n\n .rc-ruler-scale {\n position: absolute;\n display: block;\n top: 0;\n width: 2px;\n transform: translate(-1px, 0);\n z-index: 2;\n }\n\n .rc-ruler-major {\n background-color: #2c2e43ee;\n height: 30px;\n }\n\n .rc-ruler-secondary {\n background-color: #595260dd;\n height: 24px;\n }\n\n .rc-ruler-minor {\n background-color: #59526066;\n height: 16px;\n }\n}\n\n/* ---------------------------------- Check --------------------------------- */\n\n.hide-nudger {\n .calibration-nudger {\n display: none !important;\n opacity: 0 !important;\n }\n}\n\n.calibration-nudger,\n.gaze-nudger {\n z-index: 999999999;\n position: fixed;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n margin: 0;\n overflow: hidden;\n user-select: none;\n box-sizing: border-box;\n text-align: center;\n scrollbar-width: none;\n\n * {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n }\n}\n\n#rc-distance-correct {\n text-align: center;\n width: 100%;\n margin: 0 auto auto auto;\n padding: 2rem;\n overflow-wrap: break-word;\n\n #rc-distance-correct-instruction {\n font-weight: 700;\n font-size: 7rem;\n margin: 0 auto 2rem auto;\n line-height: 100%;\n }\n\n #rc-distance-correct-guide {\n font-weight: 500;\n font-size: 3rem;\n line-height: 200%;\n\n .rc-distance-num {\n padding: 0.5rem;\n border-radius: 7px !important;\n font-weight: 700;\n font-family: monospace !important;\n vertical-align: middle;\n font-size: 9rem;\n }\n\n // .rc-distance-now {\n // border: 2px solid #ff9a00;\n // background-color: #ff9a0066;\n // }\n\n // .rc-distance-desired {\n // border: 2px solid #3490de;\n // background-color: #3490de66;\n // }\n }\n}\n"],sourceRoot:""}]);const o=a},4636:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,":root{--rc-panel-theme-color:#3490de;--rc-panel-darken-color:#185b94;--rc-panel-theme-color-semi:#3490de66;--rc-panel-darken-color-semi:#185b9488}.rc-panel{background-color:var(--rc-panel-theme-color);border-radius:10px!important;box-shadow:var(--rc-panel-darken-color-semi) 0 50px 100px -20px,var(--rc-panel-theme-color-semi) 0 30px 60px -30px!important;display:block;margin-left:auto!important;margin-right:auto!important;max-width:720px!important;overflow:hidden;padding:.75rem!important;position:relative;width:100%}.rc-panel *{box-sizing:border-box;outline:none;text-rendering:optimizeLegibility;vertical-align:baseline;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-kerning:normal;scrollbar-width:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.rc-panel .rc-panel-title{color:#fff!important;font-size:2rem!important;font-weight:600!important;margin:1rem 1rem 0!important}.rc-panel .rc-panel-description{color:hsla(0,0%,100%,.8)!important;font-size:1rem!important;font-weight:500!important;margin:.5rem 1rem 0!important}.rc-panel #rc-panel-language-parent{display:flex;flex-direction:row-reverse;margin:0;padding:0}.rc-panel #rc-panel-language-parent #rc-panel-lang-picker{background-color:hsla(0,0%,100%,.8)!important;border:none!important;border-radius:5px!important;display:block;font-size:1rem!important;font-weight:500!important;margin:.25rem .25rem 0!important;outline:none!important;padding:.25rem!important}.rc-panel .rc-panel-steps{margin:-3rem 0 0!important;padding-top:4rem!important}.rc-panel .rc-panel-steps.rc-panel-steps-l,.rc-panel .rc-panel-steps.rc-panel-steps-s{display:flex!important;justify-content:space-between!important}.rc-panel .rc-panel-steps.rc-panel-steps-l .rc-panel-step,.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step{background:hsla(0,0%,100%,.8);flex-grow:1!important;margin:.25rem!important;padding:0!important;position:relative;text-align:center;transition:background-color .2s}.rc-panel .rc-panel-steps.rc-panel-steps-l .rc-panel-step .rc-panel-step-use,.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step .rc-panel-step-use{font-size:1rem!important;line-height:170%!important;margin:0!important;padding:0 .3rem!important;position:absolute;right:0;top:0}.rc-panel .rc-panel-steps.rc-panel-steps-l .rc-panel-step .rc-panel-step-use svg,.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step .rc-panel-step-use svg{height:1rem;width:1rem;fill:var(--rc-panel-darken-color)}.rc-panel .rc-panel-steps.rc-panel-steps-l .rc-panel-step .rc-panel-step-name,.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step .rc-panel-step-name{color:var(--rc-panel-darken-color);font-size:1rem!important;font-weight:700!important;line-height:150%!important;white-space:nowrap}.rc-panel .rc-panel-steps.rc-panel-steps-l{flex-flow:row nowrap;max-width:100%;overflow-x:scroll}.rc-panel .rc-panel-steps.rc-panel-steps-l .rc-panel-step-name{margin:1.5rem .5rem!important}.rc-panel .rc-panel-steps.rc-panel-steps-l .rc-panel-step-use-tip{bottom:110%!important;display:flex!important;left:50%!important;position:absolute!important;transform:translate(-50%)!important}.rc-panel .rc-panel-steps.rc-panel-steps-s{flex-flow:column nowrap;overflow-x:hidden}.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step{overflow-x:hidden;text-align:left;white-space:nowrap}.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step-name{margin:1.2rem .75rem 1.2rem 1.5rem!important}.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step-use-tip{display:inline-flex!important;position:relative!important}.rc-panel .rc-panel-steps .rc-panel-step{border:none!important;border-radius:7px!important}.rc-panel .rc-panel-steps .rc-panel-step .rc-panel-step-name{display:inline-block!important;position:relative!important}.rc-panel .rc-panel-steps .rc-panel-step-use-tip{align-items:center!important;background-color:rgba(255,154,0,.933)!important;border:none!important;border-radius:7px!important;color:#fff!important;font-size:.75rem!important;font-weight:500!important;justify-content:center!important;line-height:100%!important;margin:0!important;opacity:0;padding:.7rem .5rem!important;pointer-events:none;text-align:center!important;transition:opacity .2s;width:-moz-max-content!important;width:max-content!important;z-index:10!important}.rc-panel .rc-panel-steps .rc-panel-step-use-tip svg{height:.75rem;width:.75rem;fill:#fff}.rc-panel .rc-panel-steps .rc-panel-step-use-tip svg:last-of-type{margin-right:5px}.rc-panel .rc-panel-steps .rc-panel-step-todo:focus,.rc-panel .rc-panel-steps .rc-panel-step-todo:hover{background-color:#fff}.rc-panel .rc-panel-steps .rc-panel-step-todo:focus .rc-panel-step-use-tip,.rc-panel .rc-panel-steps .rc-panel-step-todo:hover .rc-panel-step-use-tip{opacity:1!important}.rc-panel .rc-panel-steps .rc-panel-step-todo:active{background-color:hsla(0,0%,93%,.8)}.rc-panel .rc-panel-steps .rc-panel-step-finished{background-color:hsla(0,0%,73%,.8)!important}.rc-panel .rc-panel-steps .rc-panel-step-inactive{opacity:.6;pointer-events:none}.rc-panel .rc-panel-steps .rc-panel-step-active{cursor:pointer;opacity:1}.rc-panel ::-webkit-scrollbar{display:none;width:0}.rc-panel .rc-panel-debug-control{background-color:hsla(0,0%,100%,.8);border:3px solid #e00;border-radius:7px;margin:1rem 0 0;overflow:hidden;padding:.5rem}.rc-panel .rc-panel-debug-control *{color:#ac0d0d}.rc-panel .rc-panel-debug-control h2,.rc-panel .rc-panel-debug-control h3,.rc-panel .rc-panel-debug-control p{margin:0!important}.rc-panel .rc-panel-debug-control h2{font-size:1.2rem!important;font-weight:700!important}.rc-panel .rc-panel-debug-control h3{font-size:.9rem;font-variant:small-caps;font-weight:500;padding-bottom:.3rem;padding-top:.5rem}.rc-panel .rc-panel-debug-control .rc-panel-debug-bold-text{font-size:1rem!important;font-weight:700}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-next{background-color:#e00;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:.9rem!important;margin:1rem 0 0;padding:.5rem 1.2rem!important}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-next:hover{background-color:#ac0d0d}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-task-row{display:inline-flex;justify-content:flex-start!important;width:100%}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-task-row .value-element{flex-grow:1;overflow-x:hidden;padding:0 .1rem;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-task-row .value-element:first-of-type{padding-left:0}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-task-row .value-element:last-of-type{padding-right:0}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-task-row .value-element p{color:#ac0d0d;font-size:.65rem!important;line-height:150%!important;padding-left:1px!important}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-task-row .value-element input{background-color:hsla(0,0%,100%,.8);border:1px solid #e99!important;border-radius:3px!important;font-size:.8rem;margin:0!important;padding:.3rem!important;pointer-events:auto;-webkit-user-select:auto;-moz-user-select:auto;user-select:auto;width:100%}","",{version:3,sources:["webpack://./src/css/panel.scss"],names:[],mappings:"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",sourcesContent:[":root {\n --rc-panel-theme-color: #3490de;\n --rc-panel-darken-color: #185b94;\n --rc-panel-theme-color-semi: #3490de66;\n --rc-panel-darken-color-semi: #185b9488;\n}\n\n.rc-panel {\n position: relative;\n display: block;\n margin-left: auto !important;\n margin-right: auto !important;\n background-color: var(--rc-panel-theme-color);\n width: 100%;\n max-width: 720px !important;\n padding: 0.75rem !important;\n border-radius: 10px !important;\n box-shadow:\n var(--rc-panel-darken-color-semi) 0px 50px 100px -20px,\n var(--rc-panel-theme-color-semi) 0px 30px 60px -30px !important;\n overflow: hidden;\n\n * {\n outline: none;\n vertical-align: baseline;\n box-sizing: border-box;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: auto;\n -moz-osx-font-smoothing: grayscale;\n font-kerning: normal;\n user-select: none;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n scrollbar-width: none;\n }\n\n .rc-panel-title {\n color: #fff !important;\n margin: 1rem 1rem 0 1rem !important;\n font-size: 2rem !important;\n font-weight: 600 !important;\n }\n\n .rc-panel-description {\n color: #ffffffcc !important;\n margin: 0.5rem 1rem 0 1rem !important;\n font-size: 1rem !important;\n font-weight: 500 !important;\n }\n\n #rc-panel-language-parent {\n display: flex;\n flex-direction: row-reverse;\n margin: 0;\n padding: 0;\n\n #rc-panel-lang-picker {\n display: block;\n background-color: #ffffffcc !important;\n border: none !important;\n outline: none !important;\n margin: 0.25rem 0.25rem 0 0.25rem !important;\n padding: 0.25rem !important;\n font-size: 1rem !important;\n font-weight: 500 !important;\n border-radius: 5px !important;\n }\n }\n\n .rc-panel-steps {\n margin: -3rem 0 0 0 !important;\n padding-top: 4rem !important;\n\n &.rc-panel-steps-l,\n &.rc-panel-steps-s {\n display: flex !important;\n justify-content: space-between !important;\n\n .rc-panel-step {\n position: relative;\n flex-grow: 1 !important;\n margin: 0.25rem !important;\n text-align: center;\n padding: 0 !important;\n background: #ffffffcc;\n transition: background-color 0.2s;\n\n // &:focus {\n // outline: 3px solid black !important;\n // }\n\n .rc-panel-step-use {\n position: absolute;\n right: 0;\n top: 0;\n padding: 0 0.3rem !important;\n margin: 0 !important;\n font-size: 1rem !important;\n line-height: 170% !important;\n\n svg {\n width: 1rem;\n height: 1rem;\n fill: var(--rc-panel-darken-color);\n }\n }\n\n .rc-panel-step-name {\n line-height: 150% !important;\n font-size: 1rem !important;\n font-weight: 700 !important;\n color: var(--rc-panel-darken-color);\n white-space: nowrap;\n }\n }\n }\n\n &.rc-panel-steps-l {\n flex-flow: row nowrap;\n max-width: 100%;\n overflow-x: scroll;\n\n .rc-panel-step-name {\n margin: 1.5rem 0.5rem !important;\n }\n\n .rc-panel-step-use-tip {\n position: absolute !important;\n display: flex !important;\n bottom: 110% !important;\n left: 50% !important;\n transform: translate(-50%, 0) !important;\n }\n }\n\n &.rc-panel-steps-s {\n flex-flow: column nowrap;\n overflow-x: hidden;\n\n .rc-panel-step {\n text-align: left;\n overflow-x: hidden;\n white-space: nowrap;\n }\n\n .rc-panel-step-name {\n margin: 1.2rem 0.75rem 1.2rem 1.5rem !important;\n }\n\n .rc-panel-step-use-tip {\n position: relative !important;\n display: inline-flex !important;\n }\n }\n\n .rc-panel-step {\n border-radius: 7px !important;\n border: none !important;\n\n .rc-panel-step-name {\n position: relative !important;\n display: inline-block !important;\n }\n }\n\n // .rc-panel-next-button {\n // .rc-panel-step-name::after {\n // content: ' →' !important;\n // }\n // }\n\n .rc-panel-step-use-tip {\n // visibility: hidden;\n // backdrop-filter: blur(2px);\n // box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 8px !important;\n opacity: 0;\n width: max-content !important;\n background-color: #ff9a00ee !important;\n color: #fff !important;\n text-align: center !important;\n justify-content: center !important;\n align-items: center !important;\n font-size: 0.75rem !important;\n font-weight: 500 !important;\n border-radius: 7px !important;\n border: none !important;\n padding: 0.7rem 0.5rem !important;\n margin: 0 !important;\n z-index: 10 !important;\n line-height: 100% !important;\n transition: opacity 0.2s;\n pointer-events: none;\n\n svg {\n width: 0.75rem;\n height: 0.75rem;\n fill: #fff;\n }\n\n svg:last-of-type {\n margin-right: 5px;\n }\n }\n\n .rc-panel-step-todo {\n &:hover,\n &:focus {\n background-color: #fff;\n\n .rc-panel-step-use-tip {\n // visibility: visible !important;\n opacity: 1 !important;\n }\n }\n\n &:active {\n background-color: #eeeeeecc;\n }\n }\n\n .rc-panel-step-finished {\n background-color: #bbbbbbcc !important;\n }\n\n .rc-panel-step-inactive {\n opacity: 0.6;\n pointer-events: none;\n }\n\n .rc-panel-step-active {\n opacity: 1;\n cursor: pointer;\n }\n }\n\n ::-webkit-scrollbar {\n width: 0;\n display: none;\n }\n\n /* ---------------------------------- DEBUG --------------------------------- */\n\n .rc-panel-debug-control {\n margin: 0;\n margin-top: 1rem;\n padding: 0.5rem;\n border: 3px solid #ee0000;\n border-radius: 7px;\n background-color: #ffffffcc;\n overflow: hidden;\n\n * {\n color: #ac0d0d;\n }\n\n h2,\n h3,\n p {\n margin: 0 !important;\n }\n\n h2 {\n font-weight: 700 !important;\n font-size: 1.2rem !important;\n }\n\n h3 {\n font-variant: small-caps;\n font-size: 0.9rem;\n font-weight: 500;\n padding-top: 0.5rem;\n padding-bottom: 0.3rem;\n }\n\n .rc-panel-debug-bold-text {\n font-size: 1rem !important;\n font-weight: bold;\n }\n\n .rc-panel-debug-control-next {\n font-size: 0.9rem !important;\n margin: 1rem 0 0 0;\n color: #fff;\n background-color: #ee0000;\n padding: 0.5rem 1.2rem !important;\n border-radius: 5px;\n border: none;\n cursor: pointer;\n\n &:hover {\n background-color: #ac0d0d;\n }\n }\n\n .rc-panel-debug-control-task-row {\n display: inline-flex;\n justify-content: flex-start !important;\n width: 100%;\n\n .value-element {\n flex-grow: 1;\n padding: 0 0.1rem;\n overflow-x: hidden;\n white-space: nowrap;\n // max-width: 10rem;\n user-select: none;\n pointer-events: none;\n\n &:first-of-type {\n padding-left: 0;\n }\n\n &:last-of-type {\n padding-right: 0;\n }\n\n p {\n padding-left: 1px !important;\n line-height: 150% !important;\n font-size: 0.65rem !important;\n color: #ac0d0d;\n }\n\n input {\n margin: 0 !important;\n padding: 0.3rem !important;\n font-size: 0.8rem;\n width: 100%;\n border: 1px solid #ee9999 !important;\n border-radius: 3px !important;\n background-color: #ffffffcc;\n user-select: auto;\n pointer-events: auto;\n }\n }\n }\n }\n}\n"],sourceRoot:""}]);const o=a},5151:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,"#size-card,#size-usba,#size-usbc{display:block;height:auto;left:2rem;position:absolute;z-index:2}#size-arrow{display:block;height:auto;position:absolute;width:70px;z-index:1}#size-arrow-fill{transition:fill .3s}.minor{transition:opacity .25s}.rc-slider:active~.size-obj .minor{opacity:0}#matching-obj{background-color:#fff;border:none;border-radius:7px;font-size:1.1rem;font-weight:600;margin-bottom:unset;margin-left:.3rem;margin-right:.3rem;margin-top:unset;padding-bottom:unset;padding-left:.3rem;padding-right:.3rem;padding-top:unset;pointer-events:auto!important;vertical-align:middle}@media(min-width:481px){.rc-size-obj-selection{display:inline-flex}}@media(max-width:480px){.rc-size-obj-selection{display:inline-block}}","",{version:3,sources:["webpack://./src/css/screenSize.scss"],names:[],mappings:"AAAA,iCAIE,aAAA,CAGA,WAAA,CADA,SAAA,CAHA,iBAAA,CAKA,SAAA,CAGF,YAEE,aAAA,CAGA,WAAA,CAJA,iBAAA,CAGA,UAAA,CAEA,SAAA,CAGF,iBACE,mBAAA,CAGF,OACE,uBAAA,CAIF,mCACE,SAAA,CAKF,cAGE,qBAAA,CADA,WAAA,CADA,iBAAA,CAMA,gBAAA,CADA,eAAA,CADA,mBAAA,CAAA,iBAAA,CAAA,kBAAA,CAAA,gBAAA,CADA,oBAAA,CAAA,kBAAA,CAAA,mBAAA,CAAA,iBAAA,CAKA,6BAAA,CADA,qBACA,CAGF,wBACE,uBACE,mBAAA,CAAA,CAIJ,wBACE,uBACE,oBAAA,CAAA",sourcesContent:["#size-card,\n#size-usba,\n#size-usbc {\n position: absolute;\n display: block;\n /* top: calc(max(45%, 200px) + 50px); */\n left: 2rem;\n height: auto;\n z-index: 2;\n}\n\n#size-arrow {\n position: absolute;\n display: block;\n /* display: none; */\n width: 70px;\n height: auto;\n z-index: 1;\n}\n\n#size-arrow-fill {\n transition: fill 0.3s;\n}\n\n.minor {\n transition: opacity 0.25s;\n}\n\n/* .rc-slider:hover ~ .size-obj .minor, */\n.rc-slider:active ~ .size-obj .minor {\n opacity: 0;\n}\n\n/* -------------------------------------------------------------------------- */\n\n#matching-obj {\n border-radius: 7px;\n border: none;\n background-color: #fff;\n padding: unset 0.3rem;\n margin: unset 0.3rem;\n font-weight: 600;\n font-size: 1.1rem;\n vertical-align: middle;\n pointer-events: auto !important;\n}\n\n@media (min-width: 481px) {\n .rc-size-obj-selection {\n display: inline-flex;\n }\n}\n\n@media (max-width: 480px) {\n .rc-size-obj-selection {\n display: inline-block;\n }\n}\n"],sourceRoot:""}]);const o=a},5319:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,".rc-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(90deg,#ffc772,#ffc772 60%,#fff 0);border-radius:5px;cursor:grab;direction:ltr!important;display:block;height:10px;left:2rem;opacity:1;position:absolute;transition:opacity .3s;width:calc(100% - 4rem);z-index:10}.rc-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#ff9a00;border:1px solid #cc7a00;border-radius:15px;box-shadow:0 0 12px 0 rgba(136,82,0,.2);cursor:inherit;height:30px;width:30px}.rc-slider::-moz-range-thumb{-moz-appearance:none;appearance:none;background:#ff9a00;border:1px solid #cc7a00;border-radius:15px;box-shadow:0 0 12px 0 rgba(136,82,0,.2);cursor:inherit;height:30px;width:30px}.rc-slider::-ms-thumb{appearance:none;background:#ff9a00;border:1px solid #cc7a00;border-radius:15px;box-shadow:0 0 12px 0 rgba(136,82,0,.2);cursor:inherit;height:30px;width:30px}","",{version:3,sources:["webpack://./src/css/slider.scss"],names:[],mappings:"AAAA,WAGE,uBAAA,CAAA,oBAAA,CAAA,eAAA,CAGA,4DAAA,CAIA,iBAAA,CAEA,WAAA,CAEA,uBAAA,CAZA,aAAA,CAGA,WAAA,CAIA,SAAA,CAFA,SAAA,CANA,iBAAA,CAYA,sBAAA,CATA,uBAAA,CAOA,UAGA,CAkBF,iCAVE,uBAAA,CAAA,eAAA,CAKA,kBAAA,CADA,wBAAA,CADA,kBAAA,CAGA,uCAAA,CACA,cAAA,CALA,WAAA,CADA,UAMA,CAOF,6BAdE,oBAAA,CAAA,eAAA,CAKA,kBAAA,CADA,wBAAA,CADA,kBAAA,CAGA,uCAAA,CACA,cAAA,CALA,WAAA,CADA,UAMA,CAWF,sBAlBE,eAAA,CAKA,kBAAA,CADA,wBAAA,CADA,kBAAA,CAGA,uCAAA,CACA,cAAA,CALA,WAAA,CADA,UAMA",sourcesContent:[".rc-slider {\n position: absolute;\n display: block;\n appearance: none;\n width: calc(100% - 4rem);\n height: 10px;\n background: linear-gradient(90deg, #ffc772, #ffc772 60%, #fff 60%);\n opacity: 1;\n /* top: max(45%, 200px); */\n left: 2rem;\n border-radius: 5px;\n z-index: 10;\n cursor: grab;\n transition: opacity 0.3s;\n direction: ltr !important;\n}\n\n// .rc-slider:hover {\n// opacity: 1;\n// }\n\n@mixin thumb-style {\n appearance: none;\n width: 30px;\n height: 30px;\n border-radius: 15px;\n border: 1px solid #cc7a00;\n background: #ff9a00;\n box-shadow: 0 0 12px 0 #88520033;\n cursor: inherit;\n}\n\n.rc-slider::-webkit-slider-thumb {\n @include thumb-style;\n}\n\n.rc-slider::-moz-range-thumb {\n @include thumb-style;\n}\n\n.rc-slider::-ms-thumb {\n @include thumb-style;\n}\n"],sourceRoot:""}]);const o=a},4889:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,"#webgazerVideoContainer .webgazer-videoinput-select{background:hsla(0,0%,100%,.8)!important;border:none!important;border-radius:.6rem!important;color:#666;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:.6rem;left:0;line-height:100%;margin:.3rem;outline:none!important;padding:.2rem .3rem;position:absolute;top:0;z-index:9}","",{version:3,sources:["webpack://./src/css/video.scss"],names:[],mappings:"AACE,oDAcE,uCAAA,CAHA,qBAAA,CAEA,6BAAA,CAEA,UAAA,CARA,wHAAA,CAEA,eAAA,CALA,MAAA,CAMA,gBAAA,CALA,YAAA,CAOA,sBAAA,CANA,mBAAA,CAJA,iBAAA,CACA,KAAA,CAFA,SAcA",sourcesContent:["#webgazerVideoContainer {\n .webgazer-videoinput-select {\n z-index: 9;\n position: absolute;\n top: 0;\n left: 0;\n margin: 0.3rem;\n padding: 0.2rem 0.3rem;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n font-size: 0.6rem;\n line-height: 100%;\n border: none !important;\n outline: none !important;\n border-radius: 0.6rem !important;\n background: #ffffffcc !important;\n color: #666;\n }\n}\n"],sourceRoot:""}]);const o=a},9057:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,"#gaze-system-instruction{top:65%;white-space:pre}.gaze-nudge-instruction{top:65%}.gaze-calibration-dot{background:#ff005c80;cursor:auto;display:block;position:fixed!important;transition-timing-function:ease-in-out;transition:left .5s,right .5s,top .5s,bottom .5s;z-index:999999998}.gaze-calibration-dot-click{background:#ff005c;cursor:pointer;margin:auto;position:absolute;text-align:center;vertical-align:middle}.gaze-calibration-dot-click:active{opacity:.3}.gaze-calibration-dot-text{color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:.9rem;font-weight:500;vertical-align:text-bottom}#webgazerGazeDot,#webgazerGazeDot-tempClone,.gaze-calibration-dot-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}#webgazerGazeDot,#webgazerGazeDot-tempClone{background-color:#111d5e;border-radius:5px;opacity:.5;position:fixed;z-index:9999999999}#webgazerVideoContainer{border-radius:5px;display:block;overflow:hidden;position:fixed!important;transform-origin:bottom left;z-index:999999997}#webgazerFaceFeedbackBox,#webgazerVideoContainer,#webgazerVideoContainer *{-webkit-user-select:none;-moz-user-select:none;user-select:none}#webgazerFaceFeedbackBox{border-radius:10px;box-sizing:border-box;opacity:.6;pointer-events:none}.rc-crosshair,.rc-gaze-nudger-arrows{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none}.rc-crosshair{border-radius:50%;cursor:pointer;display:block;height:40px;position:fixed!important;transition-timing-function:ease-in-out;transition:left .5s,right .5s,top .5s,bottom .5s;width:40px;z-index:999999999}.rc-crosshair-component{background-color:#000;left:50%;margin:auto;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);-webkit-user-select:none;-moz-user-select:none;user-select:none}","",{version:3,sources:["webpack://./src/css/gaze.css"],names:[],mappings:"AAAA,yBACE,OAAQ,CACR,eACF,CAEA,wBACE,OACF,CAEA,sBACE,oBAAqB,CAGrB,WAAe,CADf,aAAc,CADd,wBAA0B,CAI1B,sCAAuC,CACvC,gDAIa,CANb,iBAOF,CAEA,4BAEE,kBAAmB,CAEnB,cAAe,CADf,WAAY,CAFZ,iBAAkB,CAIlB,iBAAkB,CAClB,qBACF,CAEA,mCACE,UACF,CAEA,2BAIE,UAAW,CAHX,wHAC8D,CAG9D,eAAiB,CAFjB,eAAgB,CAGhB,0BAGF,CAIA,uEALE,mBAAoB,CADpB,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAeF,CATA,4CAKE,wBAAyB,CACzB,iBAAkB,CAFlB,UAAY,CAFZ,cAAe,CACf,kBAMF,CAEA,wBAKE,iBAAkB,CAHlB,aAAc,CAKd,eAAgB,CAJhB,wBAA0B,CAC1B,4BAA6B,CAH7B,iBASF,CAMA,2EAPE,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAcF,CAPA,yBAGE,kBAAmB,CADnB,qBAAsB,CAEtB,UAAY,CACZ,mBAEF,CAIA,qCAEE,iBAAkB,CAIlB,wBAAiB,CAAjB,qBAAiB,CAAjB,gBACF,CAEA,cAcE,iBAAkB,CARlB,cAAe,CAJf,aAAc,CAEd,WAAY,CAHZ,wBAA0B,CAM1B,sCAAuC,CACvC,gDAIa,CATb,UAAW,CAEX,iBAUF,CAEA,wBAQE,qBAAsB,CALtB,QAAS,CAET,WAAY,CACZ,mBAAoB,CALpB,iBAAkB,CAClB,OAAQ,CAER,8BAAgC,CAGhC,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAEF",sourcesContent:["#gaze-system-instruction {\n top: 65%;\n white-space: pre;\n}\n\n.gaze-nudge-instruction {\n top: 65%;\n}\n\n.gaze-calibration-dot {\n background: #ff005c80;\n position: fixed !important;\n display: block;\n cursor: initial;\n z-index: 999999998;\n transition-timing-function: ease-in-out;\n transition:\n left 0.5s,\n right 0.5s,\n top 0.5s,\n bottom 0.5s;\n}\n\n.gaze-calibration-dot-click {\n position: absolute;\n background: #ff005c;\n margin: auto;\n cursor: pointer;\n text-align: center;\n vertical-align: middle;\n}\n\n.gaze-calibration-dot-click:active {\n opacity: 0.3;\n}\n\n.gaze-calibration-dot-text {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n font-weight: 500;\n color: #fff;\n font-size: 0.9rem;\n vertical-align: text-bottom;\n user-select: none;\n pointer-events: none;\n}\n\n/* ----------------------------- WebGazer Native ---------------------------- */\n\n#webgazerGazeDot,\n#webgazerGazeDot-tempClone {\n position: fixed;\n z-index: 9999999999;\n opacity: 0.5;\n background-color: #111d5e;\n border-radius: 5px;\n pointer-events: none;\n user-select: none;\n}\n\n#webgazerVideoContainer {\n z-index: 999999997;\n display: block;\n position: fixed !important;\n transform-origin: bottom left;\n border-radius: 5px;\n /* opacity: 0.8; */\n overflow: hidden;\n /* pointer-events: none; */\n user-select: none;\n}\n\n#webgazerVideoContainer * {\n user-select: none;\n}\n\n#webgazerFaceFeedbackBox {\n /* TODO Set style in sub-module */\n box-sizing: border-box;\n border-radius: 10px;\n opacity: 0.6;\n pointer-events: none;\n user-select: none;\n}\n\n/* ------------------------------- Gaze Nudger ------------------------------ */\n\n.rc-crosshair,\n.rc-gaze-nudger-arrows {\n position: absolute;\n /* top: 50%;\n left: 50%;\n transform: translate(-50%, -50%); */\n user-select: none;\n}\n\n.rc-crosshair {\n position: fixed !important;\n display: block;\n width: 40px;\n height: 40px;\n z-index: 999999999;\n cursor: pointer;\n transition-timing-function: ease-in-out;\n transition:\n left 0.5s,\n right 0.5s,\n top 0.5s,\n bottom 0.5s;\n /* filter: drop-shadow(0 0 3px #fff); */\n border-radius: 50%;\n}\n\n.rc-crosshair-component {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n margin: auto;\n pointer-events: none;\n user-select: none;\n background-color: #000;\n}\n"],sourceRoot:""}]);const o=a},9725:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,"#calibration-background{bottom:0;box-sizing:border-box;height:100%;left:0;margin:0;overflow:hidden;overflow-y:scroll;position:fixed;right:0;scrollbar-width:none;text-align:center;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:999999990}#calibration-background::-webkit-scrollbar{display:none;width:0}#calibration-background *{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}#calibration-background p{line-height:150%}.calibration-instruction{pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none}.calibration-instruction-scrollable{height:200%}.calibration-instruction h1{font-weight:700;min-width:360px}.calibration-instruction *{font-size:1.2rem;line-height:170%;margin:0;padding:0}.calibration-instruction p{margin-top:1rem;white-space:pre-line}.calibration-description{line-height:170%}.rc-hang-description{font-size:1rem!important;margin-top:50vh!important}@media (min-width:481px){.calibration-instruction{margin:2rem}.calibration-instruction h1{font-size:2.5rem!important;line-height:100%}.calibration-description{width:calc(100% - 4rem);width:max(min(100% - 4rem,960px),300px)}.calibration-description,.calibration-description *{font-size:1.2rem}.calibration-credit-text{font-size:.9rem!important}}@media (max-width:480px){.calibration-instruction{margin:1rem}.calibration-instruction h1{font-size:1.8rem!important;line-height:120%}.calibration-description{width:calc(100% - 1rem)}.calibration-description,.calibration-description *{font-size:1rem}.calibration-credit-text{font-size:.7rem!important}}.float-instruction{background:hsla(0,0%,100%,.9);border-radius:10px;font-size:1rem;font-weight:500;left:50%;margin:0;max-width:25rem;padding:10px 17px;position:fixed;text-align:center;transform:translate(-50%);-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:999999991}.swal2-container{z-index:999999999!important}.calibration-credit-text{bottom:3px!important;color:#999!important;line-height:100%!important;margin:0!important;padding:0!important;position:fixed!important;text-align:center!important;width:100%!important}.lock-view{overflow:hidden!important}.rc-lang-ltr{direction:ltr!important;text-align:left!important}.rc-lang-rtl{direction:rtl!important;text-align:right!important}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}","",{version:3,sources:["webpack://./src/css/main.css"],names:[],mappings:"AACA,wBAQE,QAAS,CAMT,qBAAsB,CAVtB,WAAY,CAEZ,MAAO,CAGP,QAAS,CAET,eAAgB,CAChB,iBAAkB,CAVlB,cAAe,CAKf,OAAQ,CASR,oBAAqB,CADrB,iBAAkB,CAVlB,KAAM,CAQN,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAAiB,CAVjB,UAAW,CAFX,iBAgBF,CAEA,2CAEE,YAAa,CADb,OAEF,CAEA,0BACE,wHAEF,CAEA,0BACE,gBACF,CAEA,yBAGE,mBAAoB,CAFpB,iBAAkB,CAClB,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAEF,CAEA,oCACE,WACF,CAEA,4BAEE,eAAgB,CADhB,eAEF,CAEA,2BACE,gBAAiB,CACjB,gBAAiB,CACjB,QAAS,CACT,SACF,CAEA,2BAEE,eAAgB,CADhB,oBAEF,CAEA,yBACE,gBACF,CAEA,qBAEE,wBAA0B,CAD1B,yBAEF,CAKA,yBACE,yBACE,WACF,CAEA,4BAEE,0BAA4B,CAD5B,gBAEF,CAEA,yBACE,uBAAwB,CACxB,uCACF,CAEA,oDAEE,gBACF,CAEA,yBACE,yBACF,CACF,CAEA,yBACE,yBACE,WACF,CAEA,4BAEE,0BAA4B,CAD5B,gBAEF,CAEA,yBACE,uBACF,CAEA,oDAEE,cACF,CAEA,yBACE,yBACF,CACF,CAEA,mBAIE,6BAAoC,CAMpC,kBAAmB,CACnB,cAAe,CACf,eAAgB,CALhB,QAAS,CADT,QAAS,CAET,eAAgB,CAHhB,iBAAkB,CAJlB,cAAe,CACf,iBAAkB,CAOlB,yBAA6B,CAN7B,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAAiB,CAUjB,iBACF,CAIA,iBACE,2BACF,CAIA,yBAGE,oBAAsB,CACtB,oBAAsB,CAGtB,0BAA4B,CAF5B,kBAAoB,CACpB,mBAAqB,CALrB,wBAA0B,CAO1B,2BAA6B,CAN7B,oBAOF,CAIA,WACE,yBACF,CAIA,aACE,uBAAyB,CACzB,yBACF,CAEA,aACE,uBAAyB,CACzB,0BACF,CAMA,aACE,WACF,CAEA,iBACE,eACF",sourcesContent:["/* background div */\n#calibration-background {\n z-index: 999999990;\n position: fixed;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n margin: 0;\n /* background: #eee; */\n overflow: hidden;\n overflow-y: scroll;\n user-select: none;\n box-sizing: border-box;\n text-align: center;\n scrollbar-width: none;\n}\n\n#calibration-background::-webkit-scrollbar {\n width: 0;\n display: none;\n}\n\n#calibration-background * {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n}\n\n#calibration-background p {\n line-height: 150%;\n}\n\n.calibration-instruction {\n position: absolute;\n user-select: none;\n pointer-events: none;\n}\n\n.calibration-instruction-scrollable {\n height: 200%;\n}\n\n.calibration-instruction h1 {\n min-width: 360px;\n font-weight: 700;\n}\n\n.calibration-instruction * {\n font-size: 1.2rem;\n line-height: 170%;\n margin: 0;\n padding: 0;\n}\n\n.calibration-instruction p {\n white-space: pre-line;\n margin-top: 1rem;\n}\n\n.calibration-description {\n line-height: 170%;\n}\n\n.rc-hang-description {\n margin-top: 50vh !important;\n font-size: 1rem !important;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Screen size specific */\n\n@media (min-width: 481px) {\n .calibration-instruction {\n margin: 2rem;\n }\n\n .calibration-instruction h1 {\n line-height: 100%;\n font-size: 2.5rem !important;\n }\n\n .calibration-description {\n width: calc(100% - 4rem);\n width: max(min(100% - 4rem, 960px), 300px);\n }\n\n .calibration-description,\n .calibration-description * {\n font-size: 1.2rem;\n }\n\n .calibration-credit-text {\n font-size: 0.9rem !important;\n }\n}\n\n@media (max-width: 480px) {\n .calibration-instruction {\n margin: 1rem;\n }\n\n .calibration-instruction h1 {\n line-height: 120%;\n font-size: 1.8rem !important;\n }\n\n .calibration-description {\n width: calc(100% - 1rem);\n }\n\n .calibration-description,\n .calibration-description * {\n font-size: 1rem;\n }\n\n .calibration-credit-text {\n font-size: 0.7rem !important;\n }\n}\n\n.float-instruction {\n position: fixed;\n text-align: center;\n user-select: none;\n background: rgba(255, 255, 255, 0.9);\n padding: 10px 17px;\n margin: 0;\n left: 50%;\n max-width: 25rem;\n transform: translate(-50%, 0);\n border-radius: 10px;\n font-size: 1rem;\n font-weight: 500;\n z-index: 999999991;\n}\n\n/* -------------------------------------------------------------------------- */\n\n.swal2-container {\n z-index: 999999999 !important;\n}\n\n/* -------------------------------------------------------------------------- */\n\n.calibration-credit-text {\n position: fixed !important;\n width: 100% !important;\n bottom: 3px !important;\n color: #999 !important;\n margin: 0 !important;\n padding: 0 !important;\n line-height: 100% !important;\n text-align: center !important;\n}\n\n/* -------------------------------------------------------------------------- */\n\n.lock-view {\n overflow: hidden !important;\n}\n\n/* -------------------------------------------------------------------------- */\n\n.rc-lang-ltr {\n direction: ltr !important;\n text-align: left !important;\n}\n\n.rc-lang-rtl {\n direction: rtl !important;\n text-align: right !important;\n}\n\n/* -------------------------------------------------------------------------- */\n/* --------------------------------- CURSOR --------------------------------- */\n/* -------------------------------------------------------------------------- */\n\n.cursor-grab {\n cursor: grab;\n}\n\n.cursor-grabbing {\n cursor: grabbing;\n}\n"],sourceRoot:""}]);const o=a},2535:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var s=n(1354),r=n.n(s),i=n(6314),a=n.n(i)()(r());a.push([e.id,".swal2-container{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif!important}.my__swal2__icon{font-weight:700!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.my__swal2__icon *{color:#ff9a00!important}.my__swal2__title{color:#000!important;font-size:2rem!important;font-weight:700!important}.my__swal2__html,.my__swal2__title{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.my__swal2__html{color:#444!important;font-size:1.2rem!important;font-weight:400!important;line-height:150%!important;margin:1.6rem}.my__swal2__html__center{text-align:center!important}.animate__animated.animate__fadeInUp,.animate__animated.animate__fadeOutDown{--animate-duration:400ms!important;--animate-delay:0!important}.fadeInUp,.fadeOutDown{animation-delay:0!important;animation-duration:.4s!important}","",{version:3,sources:["webpack://./src/css/swal.css"],names:[],mappings:"AAAA,iBACE,kIAEF,CAEA,iBACE,yBAA4B,CAC5B,kCAA4B,CAA5B,+BAA4B,CAA5B,0BACF,CAEA,mBACE,uBACF,CAEA,kBACE,oBAAsB,CACtB,wBAA0B,CAC1B,yBAEF,CAEA,mCAHE,kCAA4B,CAA5B,+BAA4B,CAA5B,0BAUF,CAPA,iBAEE,oBAAsB,CACtB,0BAA4B,CAE5B,yBAA8B,CAD9B,0BAA4B,CAH5B,aAMF,CAEA,yBACE,2BACF,CAEA,6EAEE,kCAAoC,CACpC,2BACF,CAEA,uBAGE,2BAA6B,CAD7B,gCAEF",sourcesContent:[".swal2-container {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif !important;\n}\n\n.my__swal2__icon {\n font-weight: bold !important;\n user-select: none !important;\n}\n\n.my__swal2__icon * {\n color: #ff9a00 !important;\n}\n\n.my__swal2__title {\n color: #000 !important;\n font-size: 2rem !important;\n font-weight: bold !important;\n user-select: none !important;\n}\n\n.my__swal2__html {\n margin: 1.6rem;\n color: #444 !important;\n font-size: 1.2rem !important;\n line-height: 150% !important;\n font-weight: normal !important;\n user-select: none !important;\n}\n\n.my__swal2__html__center {\n text-align: center !important;\n}\n\n.animate__animated.animate__fadeInUp,\n.animate__animated.animate__fadeOutDown {\n --animate-duration: 400ms !important;\n --animate-delay: 0 !important;\n}\n\n.fadeInUp,\n.fadeOutDown {\n animation-duration: 400ms !important;\n animation-delay: 0 !important;\n}\n"],sourceRoot:""}]);const o=a},6314:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",s=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),s&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),s&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,s,r,i){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(s)for(var o=0;o0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=i),n&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=n):c[2]=n),r&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=r):c[4]="".concat(r)),t.push(c))}},t}},1354:e=>{"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var s=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(s),i="/*# ".concat(r," */");return[t].concat([i]).join("\n")}return[t].join("\n")}},7158:function(e){var t=function(){"use strict";var e,t,n,s,r,i,a,o,l,u,c,h,d,p,f,m,g,y,b,w,v,x,A,C="leader-line",k=1,S=2,_=3,E=4,I={top:k,right:S,bottom:_,left:E},T=1,N=2,R=3,O=4,D=5,M={straight:T,arc:N,fluid:R,magnet:O,grid:D},z="behind",F=C+"-defs",B='',L={disc:{elmId:"leader-line-disc",noRotate:!0,bBox:{left:-5,top:-5,width:10,height:10,right:5,bottom:5},widthR:2.5,heightR:2.5,bCircle:5,sideLen:5,backLen:5,overhead:0,outlineBase:1,outlineMax:4},square:{elmId:"leader-line-square",noRotate:!0,bBox:{left:-5,top:-5,width:10,height:10,right:5,bottom:5},widthR:2.5,heightR:2.5,bCircle:5,sideLen:5,backLen:5,overhead:0,outlineBase:1,outlineMax:4},arrow1:{elmId:"leader-line-arrow1",bBox:{left:-8,top:-8,width:16,height:16,right:8,bottom:8},widthR:4,heightR:4,bCircle:8,sideLen:8,backLen:8,overhead:8,outlineBase:2,outlineMax:1.5},arrow2:{elmId:"leader-line-arrow2",bBox:{left:-7,top:-8,width:11,height:16,right:4,bottom:8},widthR:2.75,heightR:4,bCircle:8,sideLen:8,backLen:7,overhead:4,outlineBase:1,outlineMax:1.75},arrow3:{elmId:"leader-line-arrow3",bBox:{left:-4,top:-5,width:12,height:10,right:8,bottom:5},widthR:3,heightR:2.5,bCircle:8,sideLen:5,backLen:4,overhead:8,outlineBase:1,outlineMax:2.5},hand:{elmId:"leader-line-hand",bBox:{left:-3,top:-12,width:40,height:24,right:37,bottom:12},widthR:10,heightR:6,bCircle:37,sideLen:12,backLen:3,overhead:37},crosshair:{elmId:"leader-line-crosshair",noRotate:!0,bBox:{left:-96,top:-96,width:192,height:192,right:96,bottom:96},widthR:48,heightR:48,bCircle:96,sideLen:96,backLen:96,overhead:0}},P={behind:z,disc:"disc",square:"square",arrow1:"arrow1",arrow2:"arrow2",arrow3:"arrow3",hand:"hand",crosshair:"crosshair"},U={disc:"disc",square:"square",arrow1:"arrow1",arrow2:"arrow2",arrow3:"arrow3",hand:"hand",crosshair:"crosshair"},V=[k,S,_,E],W="auto",j={x:"left",y:"top",width:"width",height:"height"},G=80,q=4,H=5,K=120,$=8,X=3.75,Z=10,Y=30,Q=.5522847,J=.25*Math.PI,ee=/^\s*(\-?[\d\.]+)\s*(\%)?\s*$/,te="http://www.w3.org/2000/svg",ne="-ms-scroll-limit"in document.documentElement.style&&"-ms-ime-align"in document.documentElement.style&&!window.navigator.msPointerEnabled,se=!ne&&!!document.uniqueID,re="MozAppearance"in document.documentElement.style,ie=!(ne||re||!window.chrome||!window.CSS),ae=!(ne||se||re||ie||window.chrome||!("WebkitAppearance"in document.documentElement.style)),oe=se||ne?.2:.1,le={path:R,lineColor:"coral",lineSize:4,plugSE:[z,"arrow1"],plugSizeSE:[1,1],lineOutlineEnabled:!1,lineOutlineColor:"indianred",lineOutlineSize:.25,plugOutlineEnabledSE:[!1,!1],plugOutlineSizeSE:[1,1]},ue=(v={}.toString,x={}.hasOwnProperty.toString,A=x.call(Object),function(e){var t,n;return e&&"[object Object]"===v.call(e)&&(!(t=Object.getPrototypeOf(e))||(n=t.hasOwnProperty("constructor")&&t.constructor)&&"function"==typeof n&&x.call(n)===A)}),ce=Number.isFinite||function(e){return"number"==typeof e&&window.isFinite(e)},he=(p={ease:[.25,.1,.25,1],linear:[0,0,1,1],"ease-in":[.42,0,1,1],"ease-out":[0,0,.58,1],"ease-in-out":[.42,0,.58,1]},f=1e3/60/2,m=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||function(e){setTimeout(e,f)},g=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.msCancelAnimationFrame||function(e){clearTimeout(e)},y=Number.isFinite||function(e){return"number"==typeof e&&window.isFinite(e)},b=[],w=0,{add:function(e,t,n,s,r,i,a){var o,l,u,c,h,d,m,g,y,v,x,A,C,k=++w;function S(t,n){return{value:e(n),timeRatio:t,outputRatio:n}}if("string"==typeof r&&(r=p[r]),e=e||function(){},n=this._endIndex||this._string[this._currentIndex]<"0"||"9"=this._endIndex||this._string[this._currentIndex]<"0"||"9"=this._endIndex)return null;var e=null,t=this._string[this._currentIndex];if(this._currentIndex+=1,"0"===t)e=0;else{if("1"!==t)return null;e=1}return this._skipOptionalSpacesOrDelimiter(),e}};var o=e.SVGPathElement.prototype.setAttribute,l=e.SVGPathElement.prototype.removeAttribute,u=e.Symbol?e.Symbol():"__cachedPathData",c=e.Symbol?e.Symbol():"__cachedNormalizedPathData",h=function(e,t,n,s,r,i,a,o,l,u){function c(e,t,n){return{x:e*Math.cos(n)-t*Math.sin(n),y:e*Math.sin(n)+t*Math.cos(n)}}var d,p,f,m,g,y,b,w,v,x,A,C,k,S,_,E=(d=a,Math.PI*d/180),I=[];u?(S=u[0],_=u[1],C=u[2],k=u[3]):(e=(p=c(e,t,-E)).x,t=p.y,1<(y=(m=(e-(n=(f=c(n,s,-E)).x))/2)*m/(r*r)+(g=(t-(s=f.y))/2)*g/(i*i))&&(r*=y=Math.sqrt(y),i*=y),v=(b=r*r)*(w=i*i)-b*g*g-w*m*m,x=b*g*g+w*m*m,C=(A=(o===l?-1:1)*Math.sqrt(Math.abs(v/x)))*r*g/i+(e+n)/2,k=A*-i*m/r+(t+s)/2,S=Math.asin(parseFloat(((t-k)/i).toFixed(9))),_=Math.asin(parseFloat(((s-k)/i).toFixed(9))),e120*Math.PI/180&&(T=_,N=n,R=s,_=l&&S<_?S+120*Math.PI/180*1:S+120*Math.PI/180*-1,n=C+r*Math.cos(_),s=k+i*Math.sin(_),I=h(n,s,N,R,r,i,a,0,l,[_,T,C,k])),O=_-S;var D=Math.cos(S),M=Math.sin(S),z=Math.cos(_),F=Math.sin(_),B=Math.tan(O/4),L=4/3*r*B,P=4/3*i*B,U=[e,t],V=[e+L*M,t-P*D],W=[n+L*F,s-P*z],j=[n,s];if(V[0]=2*U[0]-V[0],V[1]=2*U[1]-V[1],u)return[V,W,j].concat(I);I=[V,W,j].concat(I).join().split(",");var G=[],q=[];return I.forEach((function(e,t){t%2?q.push(c(I[t-1],I[t],E).y):q.push(c(I[t],I[t+1],E).x),6===q.length&&(G.push(q),q=[])})),G};e.SVGPathElement.prototype.setAttribute=function(e,t){"d"===e&&(this[u]=null,this[c]=null),o.call(this,e,t)},e.SVGPathElement.prototype.removeAttribute=function(e,t){"d"===e&&(this[u]=null,this[c]=null),l.call(this,e)},e.SVGPathElement.prototype.getPathData=function(e){if(e&&e.normalize){if(this[c])return i(this[c]);this[u]?d=i(this[u]):(d=r(this.getAttribute("d")||""),this[u]=i(d));var t=a((n=[],h=l=o=s=null,d.forEach((function(e){var t,r,i,a,u,c,d=e.type;"M"===d?(u=e.values[0],c=e.values[1],n.push({type:"M",values:[u,c]}),s=l=u,o=h=c):"m"===d?(u=s+e.values[0],c=o+e.values[1],n.push({type:"M",values:[u,c]}),s=l=u,o=h=c):"L"===d?(u=e.values[0],c=e.values[1],n.push({type:"L",values:[u,c]}),s=u,o=c):"l"===d?(u=s+e.values[0],c=o+e.values[1],n.push({type:"L",values:[u,c]}),s=u,o=c):"C"===d?(t=e.values[0],r=e.values[1],i=e.values[2],a=e.values[3],u=e.values[4],c=e.values[5],n.push({type:"C",values:[t,r,i,a,u,c]}),s=u,o=c):"c"===d?(t=s+e.values[0],r=o+e.values[1],i=s+e.values[2],a=o+e.values[3],u=s+e.values[4],c=o+e.values[5],n.push({type:"C",values:[t,r,i,a,u,c]}),s=u,o=c):"Q"===d?(t=e.values[0],r=e.values[1],u=e.values[2],c=e.values[3],n.push({type:"Q",values:[t,r,u,c]}),s=u,o=c):"q"===d?(t=s+e.values[0],r=o+e.values[1],u=s+e.values[2],c=o+e.values[3],n.push({type:"Q",values:[t,r,u,c]}),s=u,o=c):"A"===d?(u=e.values[5],c=e.values[6],n.push({type:"A",values:[e.values[0],e.values[1],e.values[2],e.values[3],e.values[4],u,c]}),s=u,o=c):"a"===d?(u=s+e.values[5],c=o+e.values[6],n.push({type:"A",values:[e.values[0],e.values[1],e.values[2],e.values[3],e.values[4],u,c]}),s=u,o=c):"H"===d?(u=e.values[0],n.push({type:"H",values:[u]}),s=u):"h"===d?(u=s+e.values[0],n.push({type:"H",values:[u]}),s=u):"V"===d?(c=e.values[0],n.push({type:"V",values:[c]}),o=c):"v"===d?(c=o+e.values[0],n.push({type:"V",values:[c]}),o=c):"S"===d?(i=e.values[0],a=e.values[1],u=e.values[2],c=e.values[3],n.push({type:"S",values:[i,a,u,c]}),s=u,o=c):"s"===d?(i=s+e.values[0],a=o+e.values[1],u=s+e.values[2],c=o+e.values[3],n.push({type:"S",values:[i,a,u,c]}),s=u,o=c):"T"===d?(u=e.values[0],c=e.values[1],n.push({type:"T",values:[u,c]}),s=u,o=c):"t"===d?(u=s+e.values[0],c=o+e.values[1],n.push({type:"T",values:[u,c]}),s=u,o=c):"Z"!==d&&"z"!==d||(n.push({type:"Z",values:[]}),s=l,o=h)})),n));return this[c]=i(t),t}if(this[u])return i(this[u]);var n,s,o,l,h,d=r(this.getAttribute("d")||"");return this[u]=i(d),d},e.SVGPathElement.prototype.setPathData=function(e){if(0===e.length)s?this.setAttribute("d",""):this.removeAttribute("d");else{for(var t="",n=0,r=e.length;n=n.duration&&n.count&&n.loopsLeft<=1)return i=n.frames[n.lastFrame=n.reverse?0:n.frames.length-1],n.frameCallback(i.value,!0,i.timeRatio,i.outputRatio),void(n.framesStart=null);if(s>n.duration){if(r=Math.floor(s/n.duration),n.count){if(r>=n.loopsLeft)return i=n.frames[n.lastFrame=n.reverse?0:n.frames.length-1],n.frameCallback(i.value,!0,i.timeRatio,i.outputRatio),void(n.framesStart=null);n.loopsLeft-=r}n.framesStart+=n.duration*r,s=e-n.framesStart}n.reverse&&(s=n.duration-s),i=n.frames[n.lastFrame=Math.round(s/f)],!1!==n.frameCallback(i.value,!1,i.timeRatio,i.outputRatio)?t=!0:n.framesStart=null}})),t&&(d=m.call(window,Ce))}function ke(e,t){e.framesStart=Date.now(),null!=t&&(e.framesStart-=e.duration*(e.reverse?1-t:t)),e.loopsLeft=e.count,e.lastFrame=null,Ce()}function Se(e,t){var n,s;return typeof e!=typeof t||(n=ue(e)?"obj":Array.isArray(e)?"array":"")!=(ue(t)?"obj":Array.isArray(t)?"array":"")||("obj"===n?Se(s=Object.keys(e).sort(),Object.keys(t).sort())||s.some((function(n){return Se(e[n],t[n])})):"array"===n?e.length!==t.length||e.some((function(e,n){return Se(e,t[n])})):e!==t)}function _e(e){return e?ue(e)?Object.keys(e).reduce((function(t,n){return t[n]=_e(e[n]),t}),{}):Array.isArray(e)?e.map(_e):e:e}function Ee(e){var t,n,s,r=1,i=e=(e+"").trim();function a(e){var t=1,n=ee.exec(e);return n&&(t=parseFloat(n[1]),n[2]?t=0<=t&&t<=100?t/100:1:(t<0||1=Math.abs(s)?0<=t?S:E:0<=s?_:k))}))),x.position_path!==A.position_path||x.position_lineStrokeWidth!==A.position_lineStrokeWidth||[0,1].some((function(e){return x.position_plugOverheadSE[e]!==A.position_plugOverheadSE[e]||(i=C[e],a=A.position_socketXYSE[e],i.x!==a.x||i.y!==a.y||i.socketId!==a.socketId)||(n=t[e],s=A.position_socketGravitySE[e],(r=null==n?"auto":Array.isArray(n)?"array":"number")!=(null==s?"auto":Array.isArray(s)?"array":"number")||("array"==r?n[0]!==s[0]||n[1]!==s[1]:n!==s));var n,s,r,i,a}))){switch(e.pathList.baseVal=s=[],e.pathList.animVal=null,x.position_path){case T:s.push([z(C[0]),z(C[1])]);break;case N:d="number"==typeof t[0]&&0q?(x.position_lineStrokeWidth-q)*H:0),e.socketId===k?((i=(e.y-n.y)/2)=t.x:t.dirId===i?e.y>=t.y:e.x<=t.x}function p(e,t){return t.dirId===n||t.dirId===i?e.x===t.x:e.y===t.y}function f(e){return e[0]?{contain:0,notContain:1}:{contain:1,notContain:0}}function m(e,t,n){return Math.abs(t[n]-e[n])}function g(e,t,s){return"x"===s?e.x=Y?g(l[t.notContain],l[t.contain],u[t.contain]):l[t.contain].dirId)):(s=[{x:l[0].x,y:l[0].y},{x:l[1].x,y:l[1].y}],o.forEach((function(e,t){var n=0===t?1:0,r=m(s[t],s[n],u[t]);rZ&&(l[i]-eZ&&(l[i]-es.outlineMax&&(t=s.outlineMax),t*=2*s.outlineBase,x=Xe(b,v.plugOutline_strokeWidthSE,e,t)||x,x=Xe(b,v.plugOutline_inStrokeWidthSE,e,v.plugOutline_colorTraSE[e]?t-oe/(v.line_strokeWidth/le.lineSize)/w.plugSizeSE[e]*2:t/2)||x)})),x)),(n.faces||he.line||he.plug||he.lineOutline||he.plugOutline)&&(he.faces=(k=(A=t).curStats,S=A.aplStats,_=A.events,E=!1,!k.line_altColor&&Xe(A,S,"line_color",C=k.line_color,_.apl_line_color)&&(A.lineFace.style.stroke=C,E=!0),Xe(A,S,"line_strokeWidth",C=k.line_strokeWidth,_.apl_line_strokeWidth)&&(A.lineShape.style.strokeWidth=C+"px",E=!0,(re||se)&&(Ge(A,A.lineShape),se&&(Ge(A,A.lineFace),Ge(A,A.lineMaskCaps)))),Xe(A,S,"lineOutline_enabled",C=k.lineOutline_enabled,_.apl_lineOutline_enabled)&&(A.lineOutlineFace.style.display=C?"inline":"none",E=!0),k.lineOutline_enabled&&(Xe(A,S,"lineOutline_color",C=k.lineOutline_color,_.apl_lineOutline_color)&&(A.lineOutlineFace.style.stroke=C,E=!0),Xe(A,S,"lineOutline_strokeWidth",C=k.lineOutline_strokeWidth,_.apl_lineOutline_strokeWidth)&&(A.lineOutlineMaskShape.style.strokeWidth=C+"px",E=!0,se&&(Ge(A,A.lineOutlineMaskCaps),Ge(A,A.lineOutlineFace))),Xe(A,S,"lineOutline_inStrokeWidth",C=k.lineOutline_inStrokeWidth,_.apl_lineOutline_inStrokeWidth)&&(A.lineMaskShape.style.strokeWidth=C+"px",E=!0,se&&(Ge(A,A.lineOutlineMaskCaps),Ge(A,A.lineOutlineFace)))),Xe(A,S,"plug_enabled",C=k.plug_enabled,_.apl_plug_enabled)&&(A.plugsFace.style.display=C?"inline":"none",E=!0),k.plug_enabled&&[0,1].forEach((function(e){var t=k.plug_plugSE[e],n=t!==z?L[U[t]]:null,s=Ke(e,n);Xe(A,S.plug_enabledSE,e,C=k.plug_enabledSE[e],_.apl_plug_enabledSE)&&(A.plugsFace.style[s.prop]=C?"url(#"+A.plugMarkerIdSE[e]+")":"none",E=!0),k.plug_enabledSE[e]&&(Xe(A,S.plug_plugSE,e,t,_.apl_plug_plugSE)&&(A.plugFaceSE[e].href.baseVal="#"+n.elmId,He(A,A.plugMarkerSE[e],s.orient,n.bBox,A.svg,A.plugMarkerShapeSE[e],A.plugsFace),E=!0,re&&Ge(A,A.plugsFace)),Xe(A,S.plug_colorSE,e,C=k.plug_colorSE[e],_.apl_plug_colorSE)&&(A.plugFaceSE[e].style.fill=C,E=!0,(ie||ae||se)&&!k.line_colorTra&&Ge(A,se?A.lineMaskCaps:A.capsMaskLine)),["markerWidth","markerHeight"].forEach((function(t){var n="plug_"+t+"SE";Xe(A,S[n],e,C=k[n][e],_["apl_"+n])&&(A.plugMarkerSE[e][t].baseVal.value=C,E=!0)})),Xe(A,S.plugOutline_enabledSE,e,C=k.plugOutline_enabledSE[e],_.apl_plugOutline_enabledSE)&&(C?(A.plugFaceSE[e].style.mask="url(#"+A.plugMaskIdSE[e]+")",A.plugOutlineFaceSE[e].style.display="inline"):(A.plugFaceSE[e].style.mask="none",A.plugOutlineFaceSE[e].style.display="none"),E=!0),k.plugOutline_enabledSE[e]&&(Xe(A,S.plugOutline_plugSE,e,t,_.apl_plugOutline_plugSE)&&(A.plugOutlineFaceSE[e].href.baseVal=A.plugMaskShapeSE[e].href.baseVal=A.plugOutlineMaskShapeSE[e].href.baseVal="#"+n.elmId,[A.plugMaskSE[e],A.plugOutlineMaskSE[e]].forEach((function(e){e.x.baseVal.value=n.bBox.left,e.y.baseVal.value=n.bBox.top,e.width.baseVal.value=n.bBox.width,e.height.baseVal.value=n.bBox.height})),E=!0),Xe(A,S.plugOutline_colorSE,e,C=k.plugOutline_colorSE[e],_.apl_plugOutline_colorSE)&&(A.plugOutlineFaceSE[e].style.fill=C,E=!0,se&&(Ge(A,A.lineMaskCaps),Ge(A,A.lineOutlineMaskCaps))),Xe(A,S.plugOutline_strokeWidthSE,e,C=k.plugOutline_strokeWidthSE[e],_.apl_plugOutline_strokeWidthSE)&&(A.plugOutlineMaskShapeSE[e].style.strokeWidth=C+"px",E=!0),Xe(A,S.plugOutline_inStrokeWidthSE,e,C=k.plugOutline_inStrokeWidthSE[e],_.apl_plugOutline_inStrokeWidthSE)&&(A.plugMaskShapeSE[e].style.strokeWidth=C+"px",E=!0)))})),E)),(n.position||he.line||he.plug)&&(he.position=Qe(t)),(n.path||he.position)&&(he.path=(N=(I=t).curStats,R=I.aplStats,O=I.pathList.animVal||I.pathList.baseVal,D=N.path_edge,M=!1,O&&(D.x1=D.x2=O[0][0].x,D.y1=D.y2=O[0][0].y,N.path_pathData=T=Le(O,(function(e){e.xD.x2&&(D.x2=e.x),e.y>D.y2&&(D.y2=e.y)})),Ue(T,R.path_pathData)&&(I.linePath.setPathData(T),R.path_pathData=T,M=!0,se?(Ge(I,I.plugsFace),Ge(I,I.lineMaskCaps)):re&&Ge(I,I.linePath),I.events.apl_path&&I.events.apl_path.forEach((function(e){e(I,T)})))),M)),he.viewBox=(B=(F=t).curStats,P=F.aplStats,V=B.path_edge,W=B.viewBox_bBox,G=P.viewBox_bBox,q=F.svg.viewBox.baseVal,H=F.svg.style,K=!1,$=Math.max(B.line_strokeWidth/2,B.viewBox_plugBCircleSE[0]||0,B.viewBox_plugBCircleSE[1]||0),X={x1:V.x1-$,y1:V.y1-$,x2:V.x2+$,y2:V.y2+$},F.events.new_edge4viewBox&&F.events.new_edge4viewBox.forEach((function(e){e(F,X)})),W.x=B.lineMask_x=B.lineOutlineMask_x=B.maskBGRect_x=X.x1,W.y=B.lineMask_y=B.lineOutlineMask_y=B.maskBGRect_y=X.y1,W.width=X.x2-X.x1,W.height=X.y2-X.y1,["x","y","width","height"].forEach((function(e){var t;(t=W[e])!==G[e]&&(q[e]=G[e]=t,H[j[e]]=t+("x"===e||"y"===e?F.bodyOffset[e]:0)+"px",K=!0)})),K),he.mask=(Q=(Z=t).curStats,J=Z.aplStats,ee=!1,Q.plug_enabled?[0,1].forEach((function(e){Q.capsMaskMarker_enabledSE[e]=Q.plug_enabledSE[e]&&Q.plug_colorTraSE[e]||Q.plugOutline_enabledSE[e]&&Q.plugOutline_colorTraSE[e]})):Q.capsMaskMarker_enabledSE[0]=Q.capsMaskMarker_enabledSE[1]=!1,Q.capsMaskMarker_enabled=Q.capsMaskMarker_enabledSE[0]||Q.capsMaskMarker_enabledSE[1],Q.lineMask_outlineMode=Q.lineOutline_enabled,Q.caps_enabled=Q.capsMaskMarker_enabled||Q.capsMaskAnchor_enabledSE[0]||Q.capsMaskAnchor_enabledSE[1],Q.lineMask_enabled=Q.caps_enabled||Q.lineMask_outlineMode,(Q.lineMask_enabled&&!Q.lineMask_outlineMode||Q.lineOutline_enabled)&&["x","y"].forEach((function(e){var t="maskBGRect_"+e;Xe(Z,J,t,Y=Q[t])&&(Z.maskBGRect[e].baseVal.value=Y,ee=!0)})),Xe(Z,J,"lineMask_enabled",Y=Q.lineMask_enabled)&&(Z.lineFace.style.mask=Y?"url(#"+Z.lineMaskId+")":"none",ee=!0,ae&&Ge(Z,Z.lineMask)),Q.lineMask_enabled&&(Xe(Z,J,"lineMask_outlineMode",Y=Q.lineMask_outlineMode)&&(Y?(Z.lineMaskBG.style.display="none",Z.lineMaskShape.style.display="inline"):(Z.lineMaskBG.style.display="inline",Z.lineMaskShape.style.display="none"),ee=!0),["x","y"].forEach((function(e){var t="lineMask_"+e;Xe(Z,J,t,Y=Q[t])&&(Z.lineMask[e].baseVal.value=Y,ee=!0)})),Xe(Z,J,"caps_enabled",Y=Q.caps_enabled)&&(Z.lineMaskCaps.style.display=Z.lineOutlineMaskCaps.style.display=Y?"inline":"none",ee=!0,ae&&Ge(Z,Z.capsMaskLine)),Q.caps_enabled&&([0,1].forEach((function(e){var t;Xe(Z,J.capsMaskAnchor_enabledSE,e,Y=Q.capsMaskAnchor_enabledSE[e])&&(Z.capsMaskAnchorSE[e].style.display=Y?"inline":"none",ee=!0,ae&&Ge(Z,Z.lineMask)),Q.capsMaskAnchor_enabledSE[e]&&(Ue(t=Q.capsMaskAnchor_pathDataSE[e],J.capsMaskAnchor_pathDataSE[e])&&(Z.capsMaskAnchorSE[e].setPathData(t),J.capsMaskAnchor_pathDataSE[e]=t,ee=!0),Xe(Z,J.capsMaskAnchor_strokeWidthSE,e,Y=Q.capsMaskAnchor_strokeWidthSE[e])&&(Z.capsMaskAnchorSE[e].style.strokeWidth=Y+"px",ee=!0))})),Xe(Z,J,"capsMaskMarker_enabled",Y=Q.capsMaskMarker_enabled)&&(Z.capsMaskLine.style.display=Y?"inline":"none",ee=!0),Q.capsMaskMarker_enabled&&[0,1].forEach((function(e){var t=Q.capsMaskMarker_plugSE[e],n=t!==z?L[U[t]]:null,s=Ke(e,n);Xe(Z,J.capsMaskMarker_enabledSE,e,Y=Q.capsMaskMarker_enabledSE[e])&&(Z.capsMaskLine.style[s.prop]=Y?"url(#"+Z.lineMaskMarkerIdSE[e]+")":"none",ee=!0),Q.capsMaskMarker_enabledSE[e]&&(Xe(Z,J.capsMaskMarker_plugSE,e,t)&&(Z.capsMaskMarkerShapeSE[e].href.baseVal="#"+n.elmId,He(Z,Z.capsMaskMarkerSE[e],s.orient,n.bBox,Z.svg,Z.capsMaskMarkerShapeSE[e],Z.capsMaskLine),ee=!0,re&&(Ge(Z,Z.capsMaskLine),Ge(Z,Z.lineFace))),["markerWidth","markerHeight"].forEach((function(t){var n="capsMaskMarker_"+t+"SE";Xe(Z,J[n],e,Y=Q[n][e])&&(Z.capsMaskMarkerSE[e][t].baseVal.value=Y,ee=!0)})))})))),Q.lineOutline_enabled&&["x","y"].forEach((function(e){var t="lineOutlineMask_"+e;Xe(Z,J,t,Y=Q[t])&&(Z.lineOutlineMask[e].baseVal.value=Y,ee=!0)})),ee),n.effect&&(ue=(te=t).curStats,ce=te.aplStats,Object.keys(e).forEach((function(t){var n=e[t],s=t+"_enabled",r=t+"_options",i=ue[r];Xe(te,ce,s,ne=ue[s])?(ne&&(ce[r]=_e(i)),n[ne?"init":"remove"](te)):ne&&Se(i,ce[r])&&(n.remove(te),ce[s]=!0,ce[r]=_e(i),n.init(te))}))),(ie||ae)&&he.line&&!he.path&&Ge(t,t.lineShape),ie&&he.plug&&!he.line&&Ge(t,t.plugsFace),qe(t)}function tt(e,t){return{duration:ce(e.duration)&&0t.x2&&(t.x2=s.x2),s.y2>t.y2&&(t.y2=s.y2),["x","y"].forEach((function(n){var s,a="dropShadow_"+n;r[a]=s=t[n+"1"],Xe(e,i,a,s)&&(e.efc_dropShadow_elmFilter[n].baseVal.value=s)})))}}},Object.keys(e).forEach((function(t){var n=e[t],s=n.stats;s[t+"_enabled"]={iniValue:!1},s[t+"_options"]={hasProps:!0},n.anim&&(s[t+"_animOptions"]={},s[t+"_animId"]={})})),t={none:{defaultAnimOptions:{},init:function(e,n){var s=e.curStats;s.show_animId&&(he.remove(s.show_animId),s.show_animId=null),t.none.start(e,n)},start:function(e,n){t.none.stop(e,!0)},stop:function(e,t,n){var s=e.curStats;return n=null!=n?n:e.aplStats.show_on,s.show_inAnim=!1,t&&Je(e,n),n?1:0}},fade:{defaultAnimOptions:{duration:300,timing:"linear"},init:function(e,n){var s=e.curStats,r=e.aplStats;s.show_animId&&he.remove(s.show_animId),s.show_animId=he.add((function(e){return e}),(function(n,s){s?t.fade.stop(e,!0):(e.svg.style.opacity=n+"",se&&(Ge(e,e.svg),qe(e)))}),r.show_animOptions.duration,1,r.show_animOptions.timing,null,!1),t.fade.start(e,n)},start:function(e,t){var n,s=e.curStats;s.show_inAnim&&(n=he.stop(s.show_animId)),Je(e,1),s.show_inAnim=!0,he.start(s.show_animId,!e.aplStats.show_on,null!=t?t:n)},stop:function(e,t,n){var s,r=e.curStats;return n=null!=n?n:e.aplStats.show_on,s=r.show_inAnim?he.stop(r.show_animId):n?1:0,r.show_inAnim=!1,t&&(e.svg.style.opacity=n?"":"0",Je(e,n)),s}},draw:{defaultAnimOptions:{duration:500,timing:[.58,0,.42,1]},init:function(e,n){var s=e.curStats,r=e.aplStats,i=e.pathList.baseVal,a=Pe(i),o=a.segsLen,l=a.lenAll;s.show_animId&&he.remove(s.show_animId),s.show_animId=he.add((function(e){var t,n,s,r,a=-1;if(0===e)n=[[i[0][0],i[0][0]]];else if(1===e)n=i;else{for(t=l*e,n=[];t>=o[++a];)n.push(i[a]),t-=o[a];t&&(2===(s=i[a]).length?n.push([s[0],De(s[0],s[1],t/o[a])]):(r=ze(s[0],s[1],s[2],s[3],Be(s[0],s[1],s[2],s[3],t)),n.push([s[0],r.fromP1,r.fromP2,r])))}return n}),(function(n,s){s?t.draw.stop(e,!0):(e.pathList.animVal=n,et(e,{path:!0}))}),r.show_animOptions.duration,1,r.show_animOptions.timing,null,!1),t.draw.start(e,n)},start:function(e,n){var s,r=e.curStats;r.show_inAnim&&(s=he.stop(r.show_animId)),Je(e,1),r.show_inAnim=!0,Ve(e,"apl_position",t.draw.update),he.start(r.show_animId,!e.aplStats.show_on,null!=n?n:s)},stop:function(e,t,n){var s,r=e.curStats;return n=null!=n?n:e.aplStats.show_on,s=r.show_inAnim?he.stop(r.show_animId):n?1:0,r.show_inAnim=!1,t&&(e.pathList.animVal=n?null:[[e.pathList.baseVal[0][0],e.pathList.baseVal[0][0]]],et(e,{path:!0}),Je(e,n)),s},update:function(e){We(e,"apl_position",t.draw.update),e.curStats.show_inAnim?t.draw.init(e,t.draw.stop(e)):e.aplStats.show_animOptions={}}}},[["start","anchorSE",0],["end","anchorSE",1],["color","lineColor"],["size","lineSize"],["startSocketGravity","socketGravitySE",0],["endSocketGravity","socketGravitySE",1],["startPlugColor","plugColorSE",0],["endPlugColor","plugColorSE",1],["startPlugSize","plugSizeSE",0],["endPlugSize","plugSizeSE",1],["outline","lineOutlineEnabled"],["outlineColor","lineOutlineColor"],["outlineSize","lineOutlineSize"],["startPlugOutline","plugOutlineEnabledSE",0],["endPlugOutline","plugOutlineEnabledSE",1],["startPlugOutlineColor","plugOutlineColorSE",0],["endPlugOutlineColor","plugOutlineColorSE",1],["startPlugOutlineSize","plugOutlineSizeSE",0],["endPlugOutlineSize","plugOutlineSizeSE",1]].forEach((function(e){var t=e[0],n=e[1],s=e[2];Object.defineProperty(at.prototype,t,{get:function(){var e=null!=s?be[this._id].options[n][s]:n?be[this._id].options[n]:be[this._id].options[t];return null==e?W:_e(e)},set:ot(t),enumerable:!0})})),[["path",M],["startSocket",I,"socketSE",0],["endSocket",I,"socketSE",1],["startPlug",P,"plugSE",0],["endPlug",P,"plugSE",1]].forEach((function(e){var t=e[0],n=e[1],s=e[2],r=e[3];Object.defineProperty(at.prototype,t,{get:function(){var e,i=null!=r?be[this._id].options[s][r]:s?be[this._id].options[s]:be[this._id].options[t];return i?Object.keys(n).some((function(t){return n[t]===i&&(e=t,!0)}))?e:new Error("It's broken"):W},set:ot(t),enumerable:!0})})),Object.keys(e).forEach((function(t){var n=e[t];Object.defineProperty(at.prototype,t,{get:function(){var e,s,r=be[this._id].options[t];return ue(r)?(e=r,s=n.optionsConf.reduce((function(t,n){var s,r=n[0],i=n[1],a=n[2],o=n[3],l=n[4],u=null!=l?e[o][l]:o?e[o]:e[i];return t[i]="id"===r?u?Object.keys(a).some((function(e){return a[e]===u&&(s=e,!0)}))?s:new Error("It's broken"):W:null==u?W:_e(u),t}),{}),n.anim&&(s.animation=_e(e.animation)),s):r},set:ot(t),enumerable:!0})})),["startLabel","endLabel","middleLabel"].forEach((function(e,t){Object.defineProperty(at.prototype,e,{get:function(){var e=be[this._id],n=e.options;return n.labelSEM[t]&&!e.optionIsAttach.labelSEM[t]?ve[n.labelSEM[t]._id].text:n.labelSEM[t]||""},set:ot(e),enumerable:!0})})),at.prototype.setOptions=function(e){return it(be[this._id],e),this},at.prototype.position=function(){return et(be[this._id],{position:!0}),this},at.prototype.remove=function(){var t=be[this._id],n=t.curStats;Object.keys(e).forEach((function(e){var t=e+"_animId";n[t]&&he.remove(n[t])})),n.show_animId&&he.remove(n.show_animId),t.attachments.slice().forEach((function(e){rt(t,e)})),t.baseWindow&&t.svg&&t.baseWindow.document.body.removeChild(t.svg),delete be[this._id]},at.prototype.show=function(e,t){return nt(be[this._id],!0,e,t),this},at.prototype.hide=function(e,t){return nt(be[this._id],!1,e,t),this},i=function(e){e&&ve[e._id]&&(e.boundTargets.slice().forEach((function(t){rt(t.props,e,!0)})),e.conf.remove&&e.conf.remove(e),delete ve[e._id])},lt.prototype.remove=function(){var e=this,t=ve[e._id];t&&(t.boundTargets.slice().forEach((function(e){t.conf.removeOption(t,e)})),je((function(){var t=ve[e._id];t&&i(t)})))},s=lt,window.LeaderLineAttachment=s,r=function(e,t){return e instanceof s&&(!(e.isRemoved||t&&ve[e._id].conf.type!==t)||null)},n={pointAnchor:{type:"anchor",argOptions:[{optionName:"element",type:Ie}],init:function(e,t){return e.element=n.pointAnchor.checkElement(t.element),e.x=n.pointAnchor.parsePercent(t.x,!0)||[.5,!0],e.y=n.pointAnchor.parsePercent(t.y,!0)||[.5,!0],!0},removeOption:function(e,t){var r=t.props,i={},a=e.element,o=r.options.anchorSE["start"===t.optionName?1:0];a===o&&(a=o===document.body?new s(n.pointAnchor,[a]):document.body),i[t.optionName]=a,it(r,i)},getBBoxNest:function(e,t){var n=Re(e.element,t.baseWindow),s=n.width,r=n.height;return n.width=n.height=0,n.left=n.right=n.left+e.x[0]*(e.x[1]?s:1),n.top=n.bottom=n.top+e.y[0]*(e.y[1]?r:1),n},parsePercent:function(e,t){var n,s,r=!1;return ce(e)?s=e:"string"==typeof e&&(n=ee.exec(e))&&n[2]&&(r=0!=(s=parseFloat(n[1])/100)),null!=s&&(t||0<=s)?[s,r]:null},checkElement:function(e){if(null==e)e=document.body;else if(!Ie(e))throw new Error("`element` must be Element");return e}},areaAnchor:{type:"anchor",argOptions:[{optionName:"element",type:Ie},{optionName:"shape",type:"string"}],stats:{color:{},strokeWidth:{},elementWidth:{},elementHeight:{},elementLeft:{},elementTop:{},pathListRel:{},bBoxRel:{},pathData:{},viewBoxBBox:{hasProps:!0},dashLen:{},dashGap:{}},init:function(e,t){var s,r,i,a=[];return e.element=n.pointAnchor.checkElement(t.element),"string"==typeof t.color&&(e.color=t.color.trim()),"string"==typeof t.fillColor&&(e.fill=t.fillColor.trim()),ce(t.size)&&0<=t.size&&(e.size=t.size),t.dash&&(e.dash=!0,ce(t.dash.len)&&0s.right&&(s.right=n),is.bottom&&(s.bottom=i)):s={left:n,right:n,top:i,bottom:i},r?D.pathListRel.push([r,{x:n,y:i}]):D.pathListRel=[],r={x:n,y:i}})),D.pathListRel.push([]),i=D.strokeWidth/2,a=[{x:s.left-i,y:s.top-i},{x:s.right+i,y:s.bottom+i}],D.bBoxRel={left:a[0].x,top:a[0].y,right:a[1].x,bottom:a[1].y,width:a[1].x-a[0].x,height:a[1].y-a[0].y}}F.pathListRel=F.bBoxRel=!0}return(F.pathListRel||F.elementLeft||F.elementTop)&&(D.pathData=Le(D.pathListRel,(function(e){e.x+=t.left,e.y+=t.top}))),Xe(e,M,"strokeWidth",n=D.strokeWidth)&&(e.path.style.strokeWidth=n+"px"),Ue(n=D.pathData,M.pathData)&&(e.path.setPathData(n),M.pathData=n,F.pathData=!0),e.dash&&(!F.pathData&&(!F.strokeWidth||e.dashLen&&e.dashGap)||(D.dashLen=e.dashLen||2*D.strokeWidth,D.dashGap=e.dashGap||D.strokeWidth),F.dash=Xe(e,M,"dashLen",D.dashLen)||F.dash,F.dash=Xe(e,M,"dashGap",D.dashGap)||F.dash,F.dash&&(e.path.style.strokeDasharray=M.dashLen+","+M.dashGap)),T=D.viewBoxBBox,N=M.viewBoxBBox,R=e.svg.viewBox.baseVal,O=e.svg.style,T.x=D.bBoxRel.left+t.left,T.y=D.bBoxRel.top+t.top,T.width=D.bBoxRel.width,T.height=D.bBoxRel.height,["x","y","width","height"].forEach((function(t){(n=T[t])!==N[t]&&(R[t]=N[t]=n,O[j[t]]=n+("x"===t||"y"===t?e.bodyOffset[t]:0)+"px")})),F.strokeWidth||F.pathListRel||F.bBoxRel}},mouseHoverAnchor:{type:"anchor",argOptions:[{optionName:"element",type:Ie},{optionName:"showEffectName",type:"string"}],style:{backgroundImage:"url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48cG9seWdvbiBwb2ludHM9IjI0LDAgMCw4IDgsMTEgMCwxOSA1LDI0IDEzLDE2IDE2LDI0IiBmaWxsPSJjb3JhbCIvPjwvc3ZnPg==')",backgroundSize:"",backgroundRepeat:"no-repeat",backgroundColor:"#f8f881",cursor:"default"},hoverStyle:{backgroundImage:"none",backgroundColor:"#fadf8f"},padding:{top:1,right:15,bottom:1,left:2},minHeight:15,backgroundPosition:{right:2,top:2},backgroundSize:{width:12,height:12},dirKeys:[["top","Top"],["right","Right"],["bottom","Bottom"],["left","Left"]],init:function(e,s){var r,i,a,o,l,u,c,h,d,p,f,m=n.mouseHoverAnchor,g={};if(e.element=n.pointAnchor.checkElement(s.element),!((p=(h=e.element).ownerDocument)&&(d=p.defaultView)&&d.HTMLElement&&h instanceof d.HTMLElement))throw new Error("`element` must be HTML element");return m.style.backgroundSize=m.backgroundSize.width+"px "+m.backgroundSize.height+"px",["style","hoverStyle"].forEach((function(t){var n=m[t];e[t]=Object.keys(n).reduce((function(e,t){return e[t]=n[t],e}),{})})),"inline"===(r=e.element.ownerDocument.defaultView.getComputedStyle(e.element,"")).display?e.style.display="inline-block":"none"===r.display&&(e.style.display="block"),n.mouseHoverAnchor.dirKeys.forEach((function(t){var n=t[0],s="padding"+t[1];parseFloat(r[s])e.x2&&(e.x2=s.x2),s.y2>e.y2&&(e.y2=s.y2)},newText:function(e,t,n,s,r){var i,a,o,u,c,h=t.createElementNS(te,"text");return h.textContent=e,[h.x,h.y].forEach((function(e){var t=n.createSVGLength();t.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PX,0),e.baseVal.initialize(t)})),"boolean"!=typeof l&&(l="paintOrder"in h.style),r&&!l?(a=t.createElementNS(te,"defs"),h.id=s,a.appendChild(h),(u=(i=t.createElementNS(te,"g")).appendChild(t.createElementNS(te,"use"))).href.baseVal="#"+s,(o=i.appendChild(t.createElementNS(te,"use"))).href.baseVal="#"+s,(c=u.style).strokeLinejoin="round",{elmPosition:h,styleText:h.style,styleFill:o.style,styleStroke:c,styleShow:i.style,elmsAppend:[a,i]}):(c=h.style,r&&(c.strokeLinejoin="round",c.paintOrder="stroke"),{elmPosition:h,styleText:c,styleFill:c,styleStroke:r?c:null,styleShow:c,elmsAppend:[h]})},getMidPoint:function(e,t){var n,s,r=Pe(e),i=r.segsLen,a=r.lenAll,o=-1,l=a/2+(t||0);if(l<=0)return 2===(n=e[0]).length?De(n[0],n[1],0):ze(n[0],n[1],n[2],n[3],0);if(a<=l)return 2===(n=e[e.length-1]).length?De(n[0],n[1],1):ze(n[0],n[1],n[2],n[3],1);for(s=[];l>i[++o];)s.push(e[o]),l-=i[o];return 2===(n=e[o]).length?De(n[0],n[1],l/i[o]):ze(n[0],n[1],n[2],n[3],Be(n[0],n[1],n[2],n[3],l))},initSvg:function(e,t){var s,r,i=n.captionLabel.newText(e.text,t.baseWindow.document,t.svg,C+"-captionLabel-"+e._id,e.outlineColor);["elmPosition","styleFill","styleShow","elmsAppend"].forEach((function(t){e[t]=i[t]})),e.isShown=!1,e.styleShow.visibility="hidden",n.captionLabel.textStyleProps.forEach((function(t){null!=e[t]&&(i.styleText[t]=e[t])})),i.elmsAppend.forEach((function(e){t.svg.appendChild(e)})),s=i.elmPosition.getBBox(),e.width=s.width,e.height=s.height,e.outlineColor&&(r=10<(r=s.height/9)?10:r<2?2:r,i.styleStroke.strokeWidth=r+"px",i.styleStroke.stroke=e.outlineColor),e.strokeWidth=r||0,$e(e.aplStats,n.captionLabel.stats),e.updateColor(t),e.refSocketXY?e.updateSocketXY(t):e.updatePath(t),ae&&et(t,{}),e.updateShow(t)},bind:function(e,t){var s=t.props;return e.color||Ve(s,"cur_line_color",e.updateColor),(e.refSocketXY="startLabel"===t.optionName||"endLabel"===t.optionName)?(e.socketIndex="startLabel"===t.optionName?0:1,Ve(s,"apl_position",e.updateSocketXY),e.offset||(Ve(s,"cur_attach_plugSideLenSE",e.updateSocketXY),Ve(s,"cur_line_strokeWidth",e.updateSocketXY))):Ve(s,"apl_path",e.updatePath),Ve(s,"svgShow",e.updateShow),ae&&Ve(s,"new_edge4viewBox",e.adjustEdge),n.captionLabel.initSvg(e,s),!0},unbind:function(e,t){var s=t.props;e.elmsAppend&&(e.elmsAppend.forEach((function(e){s.svg.removeChild(e)})),e.elmPosition=e.styleFill=e.styleShow=e.elmsAppend=null),$e(e.curStats,n.captionLabel.stats),$e(e.aplStats,n.captionLabel.stats),e.color||We(s,"cur_line_color",e.updateColor),e.refSocketXY?(We(s,"apl_position",e.updateSocketXY),e.offset||(We(s,"cur_attach_plugSideLenSE",e.updateSocketXY),We(s,"cur_line_strokeWidth",e.updateSocketXY))):We(s,"apl_path",e.updatePath),We(s,"svgShow",e.updateShow),ae&&(We(s,"new_edge4viewBox",e.adjustEdge),et(s,{}))},removeOption:function(e,t){var n=t.props,s={};s[t.optionName]="",it(n,s)},remove:function(e){e.boundTargets.length&&e.boundTargets.forEach((function(t){n.captionLabel.unbind(e,t)}))}},pathLabel:{type:"label",argOptions:[{optionName:"text",type:"string"}],stats:{color:{},startOffset:{},pathData:{}},init:function(e,t){return"string"==typeof t.text&&(e.text=t.text.trim()),!!e.text&&("string"==typeof t.color&&(e.color=t.color.trim()),e.outlineColor="string"==typeof t.outlineColor?t.outlineColor.trim():"#fff",ce(t.lineOffset)&&(e.lineOffset=t.lineOffset),n.captionLabel.textStyleProps.forEach((function(n){null!=t[n]&&(e[n]=t[n])})),e.updateColor=function(t){n.captionLabel.updateColor(e,t)},e.updatePath=function(t){var s,r=e.curStats,i=e.aplStats,a=t.curStats,o=t.pathList.animVal||t.pathList.baseVal;o&&(r.pathData=s=n.pathLabel.getOffsetPathData(o,a.line_strokeWidth/2+e.strokeWidth/2+e.height/4,1.25*e.height),Ue(s,i.pathData)&&(e.elmPath.setPathData(s),i.pathData=s,e.bBox=e.elmPosition.getBBox(),e.updateStartOffset(t)))},e.updateStartOffset=function(t){var n,s,r,i,a=e.curStats,o=e.aplStats,l=t.curStats;a.pathData&&(2===e.semIndex&&!e.lineOffset||(r=a.pathData.reduce((function(e,t){var n,r=t.values;switch(t.type){case"M":s={x:r[0],y:r[1]};break;case"L":n={x:r[0],y:r[1]},s&&(e+=Oe(s,n)),s=n;break;case"C":n={x:r[4],y:r[5]},s&&(e+=Fe(s,{x:r[0],y:r[1]},{x:r[2],y:r[3]},n)),s=n}return e}),0),i=0===e.semIndex?0:1===e.semIndex?r:r/2,2!==e.semIndex&&(n=Math.max(l.attach_plugBackLenSE[e.semIndex]||0,l.line_strokeWidth/2)+e.strokeWidth/2+e.height/4,i=(i+=0===e.semIndex?n:-n)<0?0:rt?((r=s.points)[1]=Me(r[0],r[1],-t),s.len=Oe(r[0],r[1])):(s.points=null,s.len=0),e.len>t+n?((r=e.points)[0]=Me(r[1],r[0],-(t+n)),e.len=Oe(r[0],r[1])):(e.points=null,e.len=0)),e):null})),i.reduce((function(e,t){var n=t.points;return n&&(r&&a(n[0],r)||e.push({type:"M",values:[n[0].x,n[0].y]}),"line"===t.type?e.push({type:"L",values:[n[1].x,n[1].y]}):(n.shift(),n.forEach((function(t){e.push({type:"L",values:[t.x,t.y]})}))),r=n[n.length-1]),e}),[])},newText:function(e,t,n,s){var r,i,a,o,u,c,h,d,p=t.createElementNS(te,"defs"),f=p.appendChild(t.createElementNS(te,"path"));return f.id=r=n+"-path",(o=(a=t.createElementNS(te,"text")).appendChild(t.createElementNS(te,"textPath"))).href.baseVal="#"+r,o.startOffset.baseVal.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PX,0),o.textContent=e,"boolean"!=typeof l&&(l="paintOrder"in a.style),s&&!l?(a.id=i=n+"-text",p.appendChild(a),(h=(u=t.createElementNS(te,"g")).appendChild(t.createElementNS(te,"use"))).href.baseVal="#"+i,(c=u.appendChild(t.createElementNS(te,"use"))).href.baseVal="#"+i,(d=h.style).strokeLinejoin="round",{elmPosition:a,elmPath:f,elmOffset:o,styleText:a.style,styleFill:c.style,styleStroke:d,styleShow:u.style,elmsAppend:[p,u]}):(d=a.style,s&&(d.strokeLinejoin="round",d.paintOrder="stroke"),{elmPosition:a,elmPath:f,elmOffset:o,styleText:d,styleFill:d,styleStroke:s?d:null,styleShow:d,elmsAppend:[p,a]})},initSvg:function(e,t){var s,r,i=n.pathLabel.newText(e.text,t.baseWindow.document,C+"-pathLabel-"+e._id,e.outlineColor);["elmPosition","elmPath","elmOffset","styleFill","styleShow","elmsAppend"].forEach((function(t){e[t]=i[t]})),e.isShown=!1,e.styleShow.visibility="hidden",n.captionLabel.textStyleProps.forEach((function(t){null!=e[t]&&(i.styleText[t]=e[t])})),i.elmsAppend.forEach((function(e){t.svg.appendChild(e)})),i.elmPath.setPathData([{type:"M",values:[0,100]},{type:"h",values:[100]}]),s=i.elmPosition.getBBox(),i.styleText.textAnchor=["start","end","middle"][e.semIndex],2!==e.semIndex||e.lineOffset||i.elmOffset.startOffset.baseVal.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PERCENTAGE,50),e.height=s.height,e.outlineColor&&(r=10<(r=s.height/9)?10:r<2?2:r,i.styleStroke.strokeWidth=r+"px",i.styleStroke.stroke=e.outlineColor),e.strokeWidth=r||0,$e(e.aplStats,n.pathLabel.stats),e.updateColor(t),e.updatePath(t),e.updateStartOffset(t),ae&&et(t,{}),e.updateShow(t)},bind:function(e,t){var s=t.props;return e.color||Ve(s,"cur_line_color",e.updateColor),Ve(s,"cur_line_strokeWidth",e.updatePath),Ve(s,"apl_path",e.updatePath),e.semIndex="startLabel"===t.optionName?0:"endLabel"===t.optionName?1:2,2===e.semIndex&&!e.lineOffset||Ve(s,"cur_attach_plugBackLenSE",e.updateStartOffset),Ve(s,"svgShow",e.updateShow),ae&&Ve(s,"new_edge4viewBox",e.adjustEdge),n.pathLabel.initSvg(e,s),!0},unbind:function(e,t){var s=t.props;e.elmsAppend&&(e.elmsAppend.forEach((function(e){s.svg.removeChild(e)})),e.elmPosition=e.elmPath=e.elmOffset=e.styleFill=e.styleShow=e.elmsAppend=null),$e(e.curStats,n.pathLabel.stats),$e(e.aplStats,n.pathLabel.stats),e.color||We(s,"cur_line_color",e.updateColor),We(s,"cur_line_strokeWidth",e.updatePath),We(s,"apl_path",e.updatePath),2===e.semIndex&&!e.lineOffset||We(s,"cur_attach_plugBackLenSE",e.updateStartOffset),We(s,"svgShow",e.updateShow),ae&&(We(s,"new_edge4viewBox",e.adjustEdge),et(s,{}))},removeOption:function(e,t){var n=t.props,s={};s[t.optionName]="",it(n,s)},remove:function(e){e.boundTargets.length&&e.boundTargets.forEach((function(t){n.pathLabel.unbind(e,t)}))}}},Object.keys(n).forEach((function(e){at[e]=function(){return new s(n[e],Array.prototype.slice.call(arguments))}})),at.positionByWindowResize=!0,window.addEventListener("resize",pe.add((function(){at.positionByWindowResize&&Object.keys(be).forEach((function(e){et(be[e],{position:!0})}))})),!1),at}();e.exports=t},7503:function(e,t,n){var s;e=n.nmd(e),function(){"use strict";var r={function:!0,object:!0},i=r[typeof window]&&window||this,a=r[typeof t]&&t,o=r.object&&e&&!e.nodeType&&e,l=a&&o&&"object"==typeof n.g&&n.g;!l||l.global!==l&&l.window!==l&&l.self!==l||(i=l);var u=Math.pow(2,53)-1,c=/\bOpera/,h=Object.prototype,d=h.hasOwnProperty,p=h.toString;function f(e){return(e=String(e)).charAt(0).toUpperCase()+e.slice(1)}function m(e){return e=v(e),/^(?:webOS|i(?:OS|P))/.test(e)?e:f(e)}function g(e,t){for(var n in e)d.call(e,n)&&t(e[n],n,e)}function y(e){return null==e?f(e):p.call(e).slice(8,-1)}function b(e){return String(e).replace(/([ -])(?!$)/g,"$1?")}function w(e,t){var n=null;return function(e,t){var n=-1,s=e?e.length:0;if("number"==typeof s&&s>-1&&s<=u)for(;++n3?"WebKit":/\bOpera\b/.test(P)&&(/\bOPR\b/.test(t)?"Blink":"Presto"))||/\b(?:Midori|Nook|Safari)\b/i.test(t)&&!/^(?:Trident|EdgeHTML)$/.test(L)&&"WebKit"||!L&&/\bMSIE\b/i.test(t)&&("Mac OS"==W?"Tasman":"Trident")||"WebKit"==L&&/\bPlayStation\b(?! Vita\b)/i.test(P)&&"NetFront")&&(L=[o]),"IE"==P&&(o=(/; *(?:XBLWP|ZuneWP)(\d+)/i.exec(t)||0)[1])?(P+=" Mobile",W="Windows Phone "+(/\+$/.test(o)?o:o+".x"),M.unshift("desktop mode")):/\bWPDesktop\b/i.test(t)?(P="IE Mobile",W="Windows Phone 8.x",M.unshift("desktop mode"),B||(B=(/\brv:([\d.]+)/.exec(t)||0)[1])):"IE"!=P&&"Trident"==L&&(o=/\brv:([\d.]+)/.exec(t))&&(P&&M.push("identifying as "+P+(B?" "+B:"")),P="IE",B=o[1]),F){if(h="global",d=null!=(u=n)?typeof u[h]:"number",/^(?:boolean|number|string|undefined)$/.test(d)||"object"==d&&!u[h])y(o=n.runtime)==A?(P="Adobe AIR",W=o.flash.system.Capabilities.os):y(o=n.phantom)==S?(P="PhantomJS",B=(o=o.version||null)&&o.major+"."+o.minor+"."+o.patch):"number"==typeof N.documentMode&&(o=/\bTrident\/(\d+)/i.exec(t))?(B=[B,N.documentMode],(o=+o[1]+4)!=B[1]&&(M.push("IE "+B[1]+" mode"),L&&(L[1]=""),B[1]=o),B="IE"==P?String(B[1].toFixed(1)):B[0]):"number"==typeof N.documentMode&&/^(?:Chrome|Firefox)\b/.test(P)&&(M.push("masking as "+P+" "+B),P="IE",B="11.0",L=["Trident"],W="Windows");else if(_&&(D=(o=_.lang.System).getProperty("os.arch"),W=W||o.getProperty("os.name")+" "+o.getProperty("os.version")),E){try{B=n.require("ringo/engine").version.join("."),P="RingoJS"}catch(e){(o=n.system)&&o.global.system==n.system&&(P="Narwhal",W||(W=o[0].os||null))}P||(P="Rhino")}else"object"==typeof n.process&&!n.process.browser&&(o=n.process)&&("object"==typeof o.versions&&("string"==typeof o.versions.electron?(M.push("Node "+o.versions.node),P="Electron",B=o.versions.electron):"string"==typeof o.versions.nw&&(M.push("Chromium "+B,"Node "+o.versions.node),P="NW.js",B=o.versions.nw)),P||(P="Node.js",D=o.arch,W=o.platform,B=(B=/[\d.]+/.exec(o.version))?B[0]:null));W=W&&m(W)}if(B&&(o=/(?:[ab]|dp|pre|[ab]\d+pre)(?:\d+\+?)?$/i.exec(B)||/(?:alpha|beta)(?: ?\d)?/i.exec(t+";"+(F&&r.appMinorVersion))||/\bMinefield\b/i.test(t)&&"a")&&(z=/b/i.test(o)?"beta":"alpha",B=B.replace(RegExp(o+"\\+?$"),"")+("beta"==z?T:I)+(/\d+\+?/.exec(o)||"")),"Fennec"==P||"Firefox"==P&&/\b(?:Android|Firefox OS|KaiOS)\b/.test(W))P="Firefox Mobile";else if("Maxthon"==P&&B)B=B.replace(/\.[\d.]+/,".x");else if(/\bXbox\b/i.test(U))"Xbox 360"==U&&(W=null),"Xbox 360"==U&&/\bIEMobile\b/.test(t)&&M.unshift("mobile mode");else if(!/^(?:Chrome|IE|Opera)$/.test(P)&&(!P||U||/Browser|Mobi/.test(P))||"Windows CE"!=W&&!/Mobi/i.test(t))if("IE"==P&&F)try{null===n.external&&M.unshift("platform preview")}catch(e){M.unshift("embedded")}else(/\bBlackBerry\b/.test(U)||/\bBB10\b/.test(t))&&(o=(RegExp(U.replace(/ +/g," *")+"/([.\\d]+)","i").exec(t)||0)[1]||B)?(W=((o=[o,/BB10/.test(t)])[1]?(U=null,V="BlackBerry"):"Device Software")+" "+o[0],B=null):this!=g&&"Wii"!=U&&(F&&R||/Opera/.test(P)&&/\b(?:MSIE|Firefox)\b/i.test(t)||"Firefox"==P&&/\bOS X (?:\d+\.){2,}/.test(W)||"IE"==P&&(W&&!/^Win/.test(W)&&B>5.5||/\bWindows XP\b/.test(W)&&B>8||8==B&&!/\bTrident\b/.test(t)))&&!c.test(o=e.call(g,t.replace(c,"")+";"))&&o.name&&(o="ing as "+o.name+((o=o.version)?" "+o:""),c.test(P)?(/\bIE\b/.test(o)&&"Mac OS"==W&&(W=null),o="identify"+o):(o="mask"+o,P=O?m(O.replace(/([a-z])([A-Z])/g,"$1 $2")):"Opera",/\bIE\b/.test(o)&&(W=null),F||(B=null)),L=["Presto"],M.push(o));else P+=" Mobile";(o=(/\bAppleWebKit\/([\d.]+\+?)/i.exec(t)||0)[1])&&(o=[parseFloat(o.replace(/\.(\d)$/,".0$1")),o],"Safari"==P&&"+"==o[1].slice(-1)?(P="WebKit Nightly",z="alpha",B=o[1].slice(0,-1)):B!=o[1]&&B!=(o[2]=(/\bSafari\/([\d.]+\+?)/i.exec(t)||0)[1])||(B=null),o[1]=(/\b(?:Headless)?Chrome\/([\d.]+)/i.exec(t)||0)[1],537.36==o[0]&&537.36==o[2]&&parseFloat(o[1])>=28&&"WebKit"==L&&(L=["Blink"]),F&&(f||o[1])?(L&&(L[1]="like Chrome"),o=o[1]||((o=o[0])<530?1:o<532?2:o<532.05?3:o<533?4:o<534.03?5:o<534.07?6:o<534.1?7:o<534.13?8:o<534.16?9:o<534.24?10:o<534.3?11:o<535.01?12:o<535.02?"13+":o<535.07?15:o<535.11?16:o<535.19?17:o<536.05?18:o<536.1?19:o<537.01?20:o<537.11?"21+":o<537.13?23:o<537.18?24:o<537.24?25:o<537.36?26:"Blink"!=L?"27":"28")):(L&&(L[1]="like Safari"),o=(o=o[0])<400?1:o<500?2:o<526?3:o<533?4:o<534?"4+":o<535?5:o<537?6:o<538?7:o<601?8:o<602?9:o<604?10:o<606?11:o<608?12:"12"),L&&(L[1]+=" "+(o+="number"==typeof o?".x":/[.+]/.test(o)?"":"+")),"Safari"==P&&(!B||parseInt(B)>45)?B=o:"Chrome"==P&&/\bHeadlessChrome/i.test(t)&&M.unshift("headless")),"Opera"==P&&(o=/\bzbov|zvav$/.exec(W))?(P+=" ",M.unshift("desktop mode"),"zvav"==o?(P+="Mini",B=null):P+="Mobile",W=W.replace(RegExp(" *"+o+"$"),"")):"Safari"==P&&/\bChrome\b/.exec(L&&L[1])?(M.unshift("desktop mode"),P="Chrome Mobile",B=null,/\bOS X\b/.test(W)?(V="Apple",W="iOS 4.3+"):W=null):/\bSRWare Iron\b/.test(P)&&!B&&(B=G("Chrome")),B&&0==B.indexOf(o=/[\d.]+$/.exec(W))&&t.indexOf("/"+o+"-")>-1&&(W=v(W.replace(o,""))),W&&-1!=W.indexOf(P)&&!RegExp(P+" OS").test(W)&&(W=W.replace(RegExp(" *"+b(P)+" *"),"")),L&&!/\b(?:Avant|Nook)\b/.test(P)&&(/Browser|Lunascape|Maxthon/.test(P)||"Safari"!=P&&/^iOS/.test(W)&&/\bSafari\b/.test(L[1])||/^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|SRWare Iron|Vivaldi|Web)/.test(P)&&L[1])&&(o=L[L.length-1])&&M.push(o),M.length&&(M=["("+M.join("; ")+")"]),V&&U&&U.indexOf(V)<0&&M.push("on "+V),U&&M.push((/^on /.test(M[M.length-1])?"":"on ")+U),W&&(o=/ ([\d.+]+)$/.exec(W),l=o&&"/"==W.charAt(W.length-o[0].length-1),W={architecture:32,family:o&&!l?W.replace(o[0],""):W,version:o?o[1]:null,toString:function(){var e=this.version;return this.family+(e&&!l?" "+e:"")+(64==this.architecture?" 64-bit":"")}}),(o=/\b(?:AMD|IA|Win|WOW|x86_|x)64\b/i.exec(D))&&!/\bi686\b/i.test(D)?(W&&(W.architecture=64,W.family=W.family.replace(RegExp(" *"+o),"")),P&&(/\bWOW64\b/i.test(t)||F&&/\w(?:86|32)$/.test(r.cpuClass||r.platform)&&!/\bWin64; x64\b/i.test(t))&&M.unshift("32-bit")):W&&/^OS X/.test(W.family)&&"Chrome"==P&&parseFloat(B)>=39&&(W.architecture=64),t||(t=null);var q={};return q.description=t,q.layout=L&&L[0],q.manufacturer=V,q.name=P,q.prerelease=z,q.product=U,q.ua=t,q.version=P&&B,q.os=W||{architecture:null,family:null,version:null,toString:function(){return"null"}},q.parse=e,q.toString=function(){return this.description||""},q.version&&M.unshift(B),q.name&&M.unshift(P),W&&P&&(W!=String(W).split(" ")[0]||W!=P.split(" ")[0]&&!U)&&M.push(U?"("+W+")":"on "+W),M.length&&(q.description=M.join(" ")),q}();i.platform=x,void 0===(s=function(){return x}.call(t,n,t,e))||(e.exports=s)}.call(this)},115:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,s="function"==typeof Set,r="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function i(e,a){if(e===a)return!0;if(e&&a&&"object"==typeof e&&"object"==typeof a){if(e.constructor!==a.constructor)return!1;var o,l,u,c;if(Array.isArray(e)){if((o=e.length)!=a.length)return!1;for(l=o;0!=l--;)if(!i(e[l],a[l]))return!1;return!0}if(n&&e instanceof Map&&a instanceof Map){if(e.size!==a.size)return!1;for(c=e.entries();!(l=c.next()).done;)if(!a.has(l.value[0]))return!1;for(c=e.entries();!(l=c.next()).done;)if(!i(l.value[1],a.get(l.value[0])))return!1;return!0}if(s&&e instanceof Set&&a instanceof Set){if(e.size!==a.size)return!1;for(c=e.entries();!(l=c.next()).done;)if(!a.has(l.value[0]))return!1;return!0}if(r&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(a)){if((o=e.length)!=a.length)return!1;for(l=o;0!=l--;)if(e[l]!==a[l])return!1;return!0}if(e.constructor===RegExp)return e.source===a.source&&e.flags===a.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof a.valueOf)return e.valueOf()===a.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof a.toString)return e.toString()===a.toString();if((o=(u=Object.keys(e)).length)!==Object.keys(a).length)return!1;for(l=o;0!=l--;)if(!Object.prototype.hasOwnProperty.call(a,u[l]))return!1;if(t&&e instanceof Element)return!1;for(l=o;0!=l--;)if(("_owner"!==u[l]&&"__v"!==u[l]&&"__o"!==u[l]||!e.$$typeof)&&!i(e[u[l]],a[u[l]]))return!1;return!0}return e!=e&&a!=a}e.exports=function(e,t){try{return i(e,t)}catch(e){if((e.message||"").match(/stack|recursion/i))return!1;throw e}}},5072:e=>{"use strict";var t=[];function n(e){for(var n=-1,s=0;s{"use strict";var t={};e.exports=function(e,n){var s=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!s)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");s.appendChild(n)}},540:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},5056:(e,t,n)=>{"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},7825:e=>{"use strict";e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var s="";n.supports&&(s+="@supports (".concat(n.supports,") {")),n.media&&(s+="@media ".concat(n.media," {"));var r=void 0!==n.layer;r&&(s+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),s+=n.css,r&&(s+="}"),n.media&&(s+="}"),n.supports&&(s+="}");var i=n.sourceMap;i&&"undefined"!=typeof btoa&&(s+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleTagTransform(s,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},1113:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},402:e=>{e.exports=''},3389:e=>{e.exports=''},627:e=>{e.exports=''},8110:e=>{e.exports=''},980:e=>{e.exports=''},3890:e=>{e.exports=''},880:e=>{e.exports=''},3282:e=>{e.exports=''},8465:function(e){e.exports=function(){"use strict";function e(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}function t(e,t,n){return t=f(t),y(e,i()?Reflect.construct(t,n||[],f(e).constructor):t.apply(e,n))}function n(t,n){return t.get(e(t,n))}function s(t,n,s){return t.set(e(t,n),s),s}function r(e,t,n){if(i())return Reflect.construct.apply(null,arguments);var s=[null];s.push.apply(s,t);var r=new(e.bind.apply(e,s));return n&&m(r,n.prototype),r}function i(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(i=function(){return!!e})()}function a(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var s,r,i,a,o=[],l=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(s=i.call(n)).done)&&(o.push(s.value),o.length!==t);l=!0);}catch(e){u=!0,r=e}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw r}}return o}}function o(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,t||"default");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function l(e){var t=o(e,"string");return"symbol"==typeof t?t:t+""}function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,s=new Array(t);ns?1:n .").concat(F[t]));case"checkbox":return e.querySelector(".".concat(F.popup," > .").concat(F.checkbox," input"));case"radio":return e.querySelector(".".concat(F.popup," > .").concat(F.radio," input:checked"))||e.querySelector(".".concat(F.popup," > .").concat(F.radio," input:first-child"));case"range":return e.querySelector(".".concat(F.popup," > .").concat(F.range," input"));default:return e.querySelector(".".concat(F.popup," > .").concat(F.input))}},ke=function(e){if(e.focus(),"file"!==e.type){var t=e.value;e.value="",e.value=t}},Se=function(e,t,n){e&&t&&("string"==typeof t&&(t=t.split(/\s+/).filter(Boolean)),t.forEach((function(t){Array.isArray(e)?e.forEach((function(e){n?e.classList.add(t):e.classList.remove(t)})):n?e.classList.add(t):e.classList.remove(t)})))},_e=function(e,t){Se(e,t,!0)},Ee=function(e,t){Se(e,t,!1)},Ie=function(e,t){for(var n=Array.from(e.children),s=0;s1&&void 0!==arguments[1]?arguments[1]:"flex";e&&(e.style.display=t)},Re=function(e){e&&(e.style.display="none")},Oe=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"block";e&&new MutationObserver((function(){Me(e,e.innerHTML,t)})).observe(e,{childList:!0,subtree:!0})},De=function(e,t,n,s){var r=e.querySelector(t);r&&r.style.setProperty(n,s)},Me=function(e,t){t?Ne(e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:"flex"):Re(e)},ze=function(e){return!(!e||!(e.offsetWidth||e.offsetHeight||e.getClientRects().length))},Fe=function(){return!ze(ie())&&!ze(oe())&&!ze(ae())},Be=function(e){return!!(e.scrollHeight>e.clientHeight)},Le=function(e){var t=window.getComputedStyle(e),n=parseFloat(t.getPropertyValue("animation-duration")||"0"),s=parseFloat(t.getPropertyValue("transition-duration")||"0");return n>0||s>0},Pe=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=de();n&&ze(n)&&(t&&(n.style.transition="none",n.style.width="100%"),setTimeout((function(){n.style.transition="width ".concat(e/1e3,"s linear"),n.style.width="0%"}),10))},Ue=function(){var e=de();if(e){var t=parseInt(window.getComputedStyle(e).width);e.style.removeProperty("transition"),e.style.width="100%";var n=t/parseInt(window.getComputedStyle(e).width)*100;e.style.width="".concat(n,"%")}},Ve=function(){return"undefined"==typeof window||"undefined"==typeof document},We='\n
      \n \n
        \n
        \n \n

        \n
        \n \n \n
        \n \n \n
        \n \n
        \n \n \n
        \n
        \n
        \n \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n').replace(/(^|\n)\s*/g,""),je=function(){var e=$();return!!e&&(e.remove(),Ee([document.documentElement,document.body],[F["no-backdrop"],F["toast-shown"],F["has-column"]]),!0)},Ge=function(){O.currentInstance.resetValidationMessage()},qe=function(){var e=Y(),t=Ie(e,F.input),n=Ie(e,F.file),s=e.querySelector(".".concat(F.range," input")),r=e.querySelector(".".concat(F.range," output")),i=Ie(e,F.select),a=e.querySelector(".".concat(F.checkbox," input")),o=Ie(e,F.textarea);t.oninput=Ge,n.onchange=Ge,i.onchange=Ge,a.onchange=Ge,o.oninput=Ge,s.oninput=function(){Ge(),r.value=s.value},s.onchange=function(){Ge(),r.value=s.value}},He=function(e){return"string"==typeof e?document.querySelector(e):e},Ke=function(e){var t=Y();t.setAttribute("role",e.toast?"alert":"dialog"),t.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||t.setAttribute("aria-modal","true")},$e=function(e){"rtl"===window.getComputedStyle(e).direction&&_e($(),F.rtl)},Xe=function(e){var t=je();if(Ve())U("SweetAlert2 requires document to initialize");else{var n=document.createElement("div");n.className=F.container,t&&_e(n,F["no-transition"]),we(n,We);var s=He(e.target);s.appendChild(n),Ke(e),$e(s),qe()}},Ze=function(e,t){e instanceof HTMLElement?t.appendChild(e):"object"===u(e)?Ye(e,t):e&&we(t,e)},Ye=function(e,t){e.jquery?Qe(t,e):we(t,e.toString())},Qe=function(e,t){if(e.textContent="",0 in t)for(var n=0;n in t;n++)e.appendChild(t[n].cloneNode(!0));else e.appendChild(t.cloneNode(!0))},Je=function(){if(Ve())return!1;var e=document.createElement("div");return void 0!==e.style.webkitAnimation?"webkitAnimationEnd":void 0!==e.style.animation&&"animationend"}(),et=function(e,t){var n=ce(),s=ue();n&&s&&(t.showConfirmButton||t.showDenyButton||t.showCancelButton?Ne(n):Re(n),Ae(n,t,"actions"),tt(n,s,t),we(s,t.loaderHtml||""),Ae(s,t,"loader"))};function tt(e,t,n){var s=ie(),r=oe(),i=ae();s&&r&&i&&(st(s,"confirm",n),st(r,"deny",n),st(i,"cancel",n),nt(s,r,i,n),n.reverseButtons&&(n.toast?(e.insertBefore(i,s),e.insertBefore(r,s)):(e.insertBefore(i,t),e.insertBefore(r,t),e.insertBefore(s,t))))}function nt(e,t,n,s){s.buttonsStyling?(_e([e,t,n],F.styled),s.confirmButtonColor&&(e.style.backgroundColor=s.confirmButtonColor,_e(e,F["default-outline"])),s.denyButtonColor&&(t.style.backgroundColor=s.denyButtonColor,_e(t,F["default-outline"])),s.cancelButtonColor&&(n.style.backgroundColor=s.cancelButtonColor,_e(n,F["default-outline"]))):Ee([e,t,n],F.styled)}function st(e,t,n){var s=L(t);Me(e,n["show".concat(s,"Button")],"inline-block"),we(e,n["".concat(t,"ButtonText")]||""),e.setAttribute("aria-label",n["".concat(t,"ButtonAriaLabel")]||""),e.className=F[t],Ae(e,n,"".concat(t,"Button"))}var rt=function(e,t){var n=pe();n&&(we(n,t.closeButtonHtml||""),Ae(n,t,"closeButton"),Me(n,t.showCloseButton),n.setAttribute("aria-label",t.closeButtonAriaLabel||""))},it=function(e,t){var n=$();n&&(at(n,t.backdrop),ot(n,t.position),lt(n,t.grow),Ae(n,t,"container"))};function at(e,t){"string"==typeof t?e.style.background=t:t||_e([document.documentElement,document.body],F["no-backdrop"])}function ot(e,t){t&&(t in F?_e(e,F[t]):(P('The "position" parameter is not valid, defaulting to "center"'),_e(e,F.center)))}function lt(e,t){t&&_e(e,F["grow-".concat(t)])}var ut={innerParams:new WeakMap,domCache:new WeakMap},ct=["input","file","range","select","radio","checkbox","textarea"],ht=function(e,t){var n=Y();if(n){var s=ut.innerParams.get(e),r=!s||t.input!==s.input;ct.forEach((function(e){var s=Ie(n,F[e]);s&&(ft(e,t.inputAttributes),s.className=F[e],r&&Re(s))})),t.input&&(r&&dt(t),mt(t))}},dt=function(e){if(e.input)if(vt[e.input]){var t=bt(e.input),n=vt[e.input](t,e);Ne(t),e.inputAutoFocus&&setTimeout((function(){ke(n)}))}else U("Unexpected type of input! Expected ".concat(Object.keys(vt).join(" | "),', got "').concat(e.input,'"'))},pt=function(e){for(var t=0;ts?Y().style.width="".concat(r,"px"):Te(Y(),"width",t.width)}})).observe(e,{attributes:!0,attributeFilter:["style"]})}})),e};var xt=function(e,t){var n=te();n&&(Oe(n),Ae(n,t,"htmlContainer"),t.html?(Ze(t.html,n),Ne(n,"block")):t.text?(n.textContent=t.text,Ne(n,"block")):Re(n),ht(e,t))},At=function(e,t){var n=he();n&&(Oe(n),Me(n,t.footer,"block"),t.footer&&Ze(t.footer,n),Ae(n,t,"footer"))},Ct=function(e,t){var n=ut.innerParams.get(e),s=Q();if(s){if(n&&t.icon===n.icon)return It(s,t),void kt(s,t);if(t.icon||t.iconHtml){if(t.icon&&-1===Object.keys(B).indexOf(t.icon))return U('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(t.icon,'"')),void Re(s);Ne(s),It(s,t),kt(s,t),_e(s,t.showClass&&t.showClass.icon)}else Re(s)}},kt=function(e,t){for(var n=0,s=Object.entries(B);n\n \n
        \n
        \n',Et='\n \n \n \n \n',It=function(e,t){if(t.icon||t.iconHtml){var n=e.innerHTML,s="";t.iconHtml?s=Nt(t.iconHtml):"success"===t.icon?(s=_t,n=n.replace(/ style=".*?"/g,"")):"error"===t.icon?s=Et:t.icon&&(s=Nt({question:"?",warning:"!",info:"i"}[t.icon])),n.trim()!==s.trim()&&we(e,s)}},Tt=function(e,t){if(t.iconColor){e.style.color=t.iconColor,e.style.borderColor=t.iconColor;for(var n=0,s=[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"];n').concat(e,"")},Rt=function(e,t){var n=ne();n&&(t.imageUrl?(Ne(n,""),n.setAttribute("src",t.imageUrl),n.setAttribute("alt",t.imageAlt||""),Te(n,"width",t.imageWidth),Te(n,"height",t.imageHeight),n.className=F.image,Ae(n,t,"image")):Re(n))},Ot=function(e,t){var n=$(),s=Y();if(n&&s){if(t.toast){Te(n,"width",t.width),s.style.width="100%";var r=ue();r&&s.insertBefore(r,Q())}else Te(s,"width",t.width);Te(s,"padding",t.padding),t.color&&(s.style.color=t.color),t.background&&(s.style.background=t.background),Re(re()),Dt(s,t)}},Dt=function(e,t){var n=t.showClass||{};e.className="".concat(F.popup," ").concat(ze(e)?n.popup:""),t.toast?(_e([document.documentElement,document.body],F["toast-shown"]),_e(e,F.toast)):_e(e,F.modal),Ae(e,t,"popup"),"string"==typeof t.customClass&&_e(e,t.customClass),t.icon&&_e(e,F["icon-".concat(t.icon)])},Mt=function(e,t){var n=se();if(n){var s=t.progressSteps,r=t.currentProgressStep;s&&0!==s.length&&void 0!==r?(Ne(n),n.textContent="",r>=s.length&&P("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),s.forEach((function(e,i){var a=zt(e);if(n.appendChild(a),i===r&&_e(a,F["active-progress-step"]),i!==s.length-1){var o=Ft(t);n.appendChild(o)}}))):Re(n)}},zt=function(e){var t=document.createElement("li");return _e(t,F["progress-step"]),we(t,e),t},Ft=function(e){var t=document.createElement("li");return _e(t,F["progress-step-line"]),e.progressStepsDistance&&Te(t,"width",e.progressStepsDistance),t},Bt=function(e,t){var n=ee();n&&(Oe(n),Me(n,t.title||t.titleText,"block"),t.title&&Ze(t.title,n),t.titleText&&(n.innerText=t.titleText),Ae(n,t,"title"))},Lt=function(e,t){Ot(e,t),it(e,t),Mt(e,t),Ct(e,t),Rt(e,t),Bt(e,t),rt(e,t),xt(e,t),et(e,t),At(e,t);var n=Y();"function"==typeof t.didRender&&n&&t.didRender(n)},Pt=function(){return ze(Y())},Ut=function(){var e;return null===(e=ie())||void 0===e?void 0:e.click()},Vt=function(){var e;return null===(e=oe())||void 0===e?void 0:e.click()},Wt=function(){var e;return null===(e=ae())||void 0===e?void 0:e.click()},jt=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),Gt=function(e){e.keydownTarget&&e.keydownHandlerAdded&&(e.keydownTarget.removeEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!1)},qt=function(e,t,n){Gt(e),t.toast||(e.keydownHandler=function(e){return Xt(t,e,n)},e.keydownTarget=t.keydownListenerCapture?window:Y(),e.keydownListenerCapture=t.keydownListenerCapture,e.keydownTarget.addEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!0)},Ht=function(e,t){var n,s=me();if(s.length)return(e+=t)===s.length?e=0:-1===e&&(e=s.length-1),void s[e].focus();null===(n=Y())||void 0===n||n.focus()},Kt=["ArrowRight","ArrowDown"],$t=["ArrowLeft","ArrowUp"],Xt=function(e,t,n){e&&(t.isComposing||229===t.keyCode||(e.stopKeydownPropagation&&t.stopPropagation(),"Enter"===t.key?Zt(t,e):"Tab"===t.key?Yt(t):[].concat(Kt,$t).includes(t.key)?Qt(t.key):"Escape"===t.key&&Jt(t,e,n)))},Zt=function(e,t){if(G(t.allowEnterKey)){var n=Ce(Y(),t.input);if(e.target&&n&&e.target instanceof HTMLElement&&e.target.outerHTML===n.outerHTML){if(["textarea","file"].includes(t.input))return;Ut(),e.preventDefault()}}},Yt=function(e){for(var t=e.target,n=me(),s=-1,r=0;r1},cn=function(){if(ve(document.body,F.iosfix)){var e=parseInt(document.body.style.top,10);Ee(document.body,F.iosfix),document.body.style.top="",document.body.scrollTop=-1*e}},hn=function(){var e=document.createElement("div");e.className=F["scrollbar-measure"],document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t},dn=null,pn=function(e){null===dn&&(document.body.scrollHeight>window.innerHeight||"scroll"===e)&&(dn=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(dn+hn(),"px"))},fn=function(){null!==dn&&(document.body.style.paddingRight="".concat(dn,"px"),dn=null)};function mn(e,t,n,s){ye()?kn(e,s):(M(n).then((function(){return kn(e,s)})),Gt(O)),sn?(t.setAttribute("style","display:none !important"),t.removeAttribute("class"),t.innerHTML=""):t.remove(),ge()&&(fn(),cn(),nn()),gn()}function gn(){Ee([document.documentElement,document.body],[F.shown,F["height-auto"],F["no-backdrop"],F["toast-shown"]])}function yn(e){e=xn(e);var t=en.swalPromiseResolve.get(this),n=bn(this);this.isAwaitingPromise?e.isDismissed||(vn(this),t(e)):n&&t(e)}var bn=function(e){var t=Y();if(!t)return!1;var n=ut.innerParams.get(e);if(!n||ve(t,n.hideClass.popup))return!1;Ee(t,n.showClass.popup),_e(t,n.hideClass.popup);var s=$();return Ee(s,n.showClass.backdrop),_e(s,n.hideClass.backdrop),An(e,t,n),!0};function wn(e){var t=en.swalPromiseReject.get(this);vn(this),t&&t(e)}var vn=function(e){e.isAwaitingPromise&&(delete e.isAwaitingPromise,ut.innerParams.get(e)||e._destroy())},xn=function(e){return void 0===e?{isConfirmed:!1,isDenied:!1,isDismissed:!0}:Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},e)},An=function(e,t,n){var s=$(),r=Je&&Le(t);"function"==typeof n.willClose&&n.willClose(t),r?Cn(e,t,s,n.returnFocus,n.didClose):mn(e,s,n.returnFocus,n.didClose)},Cn=function(e,t,n,s,r){Je&&(O.swalCloseEventFinishedCallback=mn.bind(null,e,n,s,r),t.addEventListener(Je,(function(e){e.target===t&&(O.swalCloseEventFinishedCallback(),delete O.swalCloseEventFinishedCallback)})))},kn=function(e,t){setTimeout((function(){"function"==typeof t&&t.bind(e.params)(),e._destroy&&e._destroy()}))},Sn=function(e){var t=Y();if(t||new _r,t=Y()){var n=ue();ye()?Re(Q()):_n(t,e),Ne(n),t.setAttribute("data-loading","true"),t.setAttribute("aria-busy","true"),t.focus()}},_n=function(e,t){var n=ce(),s=ue();n&&s&&(!t&&ze(ie())&&(t=ie()),Ne(n),t&&(Re(t),s.setAttribute("data-button-to-replace",t.className),n.insertBefore(s,t)),_e([e,n],F.loading))},En=function(e,t){"select"===t.input||"radio"===t.input?On(e,t):["text","email","number","tel","textarea"].some((function(e){return e===t.input}))&&(q(t.inputValue)||K(t.inputValue))&&(Sn(ie()),Dn(e,t))},In=function(e,t){var n=e.getInput();if(!n)return null;switch(t.input){case"checkbox":return Tn(n);case"radio":return Nn(n);case"file":return Rn(n);default:return t.inputAutoTrim?n.value.trim():n.value}},Tn=function(e){return e.checked?1:0},Nn=function(e){return e.checked?e.value:null},Rn=function(e){return e.files&&e.files.length?null!==e.getAttribute("multiple")?e.files:e.files[0]:null},On=function(e,t){var n=Y();if(n){var s=function(e){"select"===t.input?Mn(n,Fn(e),t):"radio"===t.input&&zn(n,Fn(e),t)};q(t.inputOptions)||K(t.inputOptions)?(Sn(ie()),H(t.inputOptions).then((function(t){e.hideLoading(),s(t)}))):"object"===u(t.inputOptions)?s(t.inputOptions):U("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(u(t.inputOptions)))}},Dn=function(e,t){var n=e.getInput();n&&(Re(n),H(t.inputValue).then((function(s){n.value="number"===t.input?"".concat(parseFloat(s)||0):"".concat(s),Ne(n),n.focus(),e.hideLoading()})).catch((function(t){U("Error in inputValue promise: ".concat(t)),n.value="",Ne(n),n.focus(),e.hideLoading()})))};function Mn(e,t,n){var s=Ie(e,F.select);if(s){var r=function(e,t,s){var r=document.createElement("option");r.value=s,we(r,t),r.selected=Bn(s,n.inputValue),e.appendChild(r)};t.forEach((function(e){var t=e[0],n=e[1];if(Array.isArray(n)){var i=document.createElement("optgroup");i.label=t,i.disabled=!1,s.appendChild(i),n.forEach((function(e){return r(i,e[1],e[0])}))}else r(s,n,t)})),s.focus()}}function zn(e,t,n){var s=Ie(e,F.radio);if(s){t.forEach((function(e){var t=e[0],r=e[1],i=document.createElement("input"),a=document.createElement("label");i.type="radio",i.name=F.radio,i.value=t,Bn(t,n.inputValue)&&(i.checked=!0);var o=document.createElement("span");we(o,r),o.className=F.label,a.appendChild(i),a.appendChild(o),s.appendChild(a)}));var r=s.querySelectorAll("input");r.length&&r[0].focus()}}var Fn=function e(t){var n=[];return t instanceof Map?t.forEach((function(t,s){var r=t;"object"===u(r)&&(r=e(r)),n.push([s,r])})):Object.keys(t).forEach((function(s){var r=t[s];"object"===u(r)&&(r=e(r)),n.push([s,r])})),n},Bn=function(e,t){return!!t&&t.toString()===e.toString()},Ln=void 0,Pn=function(e){var t=ut.innerParams.get(e);e.disableButtons(),t.input?Wn(e,"confirm"):Kn(e,!0)},Un=function(e){var t=ut.innerParams.get(e);e.disableButtons(),t.returnInputValueOnDeny?Wn(e,"deny"):Gn(e,!1)},Vn=function(e,t){e.disableButtons(),t(jt.cancel)},Wn=function(e,t){var n=ut.innerParams.get(e);if(n.input){var s=e.getInput(),r=In(e,n);n.inputValidator?jn(e,r,t):s&&!s.checkValidity()?(e.enableButtons(),e.showValidationMessage(n.validationMessage||s.validationMessage)):"deny"===t?Gn(e,r):Kn(e,r)}else U('The "input" parameter is needed to be set when using returnInputValueOn'.concat(L(t)))},jn=function(e,t,n){var s=ut.innerParams.get(e);e.disableInput(),Promise.resolve().then((function(){return H(s.inputValidator(t,s.validationMessage))})).then((function(s){e.enableButtons(),e.enableInput(),s?e.showValidationMessage(s):"deny"===n?Gn(e,t):Kn(e,t)}))},Gn=function(e,t){var n=ut.innerParams.get(e||Ln);n.showLoaderOnDeny&&Sn(oe()),n.preDeny?(e.isAwaitingPromise=!0,Promise.resolve().then((function(){return H(n.preDeny(t,n.validationMessage))})).then((function(n){!1===n?(e.hideLoading(),vn(e)):e.close({isDenied:!0,value:void 0===n?t:n})})).catch((function(t){return Hn(e||Ln,t)}))):e.close({isDenied:!0,value:t})},qn=function(e,t){e.close({isConfirmed:!0,value:t})},Hn=function(e,t){e.rejectPromise(t)},Kn=function(e,t){var n=ut.innerParams.get(e||Ln);n.showLoaderOnConfirm&&Sn(),n.preConfirm?(e.resetValidationMessage(),e.isAwaitingPromise=!0,Promise.resolve().then((function(){return H(n.preConfirm(t,n.validationMessage))})).then((function(n){ze(re())||!1===n?(e.hideLoading(),vn(e)):qn(e,void 0===n?t:n)})).catch((function(t){return Hn(e||Ln,t)}))):qn(e,t)};function $n(){var e=ut.innerParams.get(this);if(e){var t=ut.domCache.get(this);Re(t.loader),ye()?e.icon&&Ne(Q()):Xn(t),Ee([t.popup,t.actions],F.loading),t.popup.removeAttribute("aria-busy"),t.popup.removeAttribute("data-loading"),t.confirmButton.disabled=!1,t.denyButton.disabled=!1,t.cancelButton.disabled=!1}}var Xn=function(e){var t=e.popup.getElementsByClassName(e.loader.getAttribute("data-button-to-replace"));t.length?Ne(t[0],"inline-block"):Fe()&&Re(e.actions)};function Zn(){var e=ut.innerParams.get(this),t=ut.domCache.get(this);return t?Ce(t.popup,e.input):null}function Yn(e,t,n){var s=ut.domCache.get(e);t.forEach((function(e){s[e].disabled=n}))}function Qn(e,t){var n=Y();if(n&&e)if("radio"===e.type)for(var s=n.querySelectorAll('[name="'.concat(F.radio,'"]')),r=0;r0&&void 0!==arguments[0]?arguments[0]:"data-swal-template"]=this,Vs||(document.body.addEventListener("click",qs),Vs=!0)}var Gs,qs=function(e){for(var t=e.target;t&&t!==document;t=t.parentNode)for(var n in Ws){var s=t.getAttribute(n);if(s)return void Ws[n].fire({template:s})}},Hs=Object.freeze({__proto__:null,argsToParams:Os,bindClickHandler:js,clickCancel:Wt,clickConfirm:Ut,clickDeny:Vt,enableLoading:Sn,fire:Ds,getActions:ce,getCancelButton:ae,getCloseButton:pe,getConfirmButton:ie,getContainer:$,getDenyButton:oe,getFocusableElements:me,getFooter:he,getHtmlContainer:te,getIcon:Q,getIconContent:J,getImage:ne,getInputLabel:le,getLoader:ue,getPopup:Y,getProgressSteps:se,getTimerLeft:zs,getTimerProgressBar:de,getTitle:ee,getValidationMessage:re,increaseTimer:Ps,isDeprecatedParameter:hs,isLoading:be,isTimerRunning:Us,isUpdatableParameter:cs,isValidParameter:us,isVisible:Pt,mixin:Ms,resumeTimer:Bs,showLoading:Sn,stopTimer:Fs,toggleTimer:Ls}),Ks=function(){function e(t,n){c(this,e),this.callback=t,this.remaining=n,this.running=!1,this.start()}return d(e,[{key:"start",value:function(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}},{key:"stop",value:function(){return this.started&&this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=(new Date).getTime()-this.started.getTime()),this.remaining}},{key:"increase",value:function(e){var t=this.running;return t&&this.stop(),this.remaining+=e,t&&this.start(),this.remaining}},{key:"getTimerLeft",value:function(){return this.running&&(this.stop(),this.start()),this.remaining}},{key:"isRunning",value:function(){return this.running}}])}(),$s=["swal-title","swal-html","swal-footer"],Xs=function(e){var t="string"==typeof e.template?document.querySelector(e.template):e.template;if(!t)return{};var n=t.content;return sr(n),Object.assign(Zs(n),Ys(n),Qs(n),Js(n),er(n),tr(n),nr(n,$s))},Zs=function(e){var t={};return Array.from(e.querySelectorAll("swal-param")).forEach((function(e){rr(e,["name","value"]);var n=e.getAttribute("name"),s=e.getAttribute("value");"boolean"==typeof is[n]?t[n]="false"!==s:"object"===u(is[n])?t[n]=JSON.parse(s):t[n]=s})),t},Ys=function(e){var t={};return Array.from(e.querySelectorAll("swal-function-param")).forEach((function(e){var n=e.getAttribute("name"),s=e.getAttribute("value");t[n]=new Function("return ".concat(s))()})),t},Qs=function(e){var t={};return Array.from(e.querySelectorAll("swal-button")).forEach((function(e){rr(e,["type","color","aria-label"]);var n=e.getAttribute("type");t["".concat(n,"ButtonText")]=e.innerHTML,t["show".concat(L(n),"Button")]=!0,e.hasAttribute("color")&&(t["".concat(n,"ButtonColor")]=e.getAttribute("color")),e.hasAttribute("aria-label")&&(t["".concat(n,"ButtonAriaLabel")]=e.getAttribute("aria-label"))})),t},Js=function(e){var t={},n=e.querySelector("swal-image");return n&&(rr(n,["src","width","height","alt"]),n.hasAttribute("src")&&(t.imageUrl=n.getAttribute("src")),n.hasAttribute("width")&&(t.imageWidth=n.getAttribute("width")),n.hasAttribute("height")&&(t.imageHeight=n.getAttribute("height")),n.hasAttribute("alt")&&(t.imageAlt=n.getAttribute("alt"))),t},er=function(e){var t={},n=e.querySelector("swal-icon");return n&&(rr(n,["type","color"]),n.hasAttribute("type")&&(t.icon=n.getAttribute("type")),n.hasAttribute("color")&&(t.iconColor=n.getAttribute("color")),t.iconHtml=n.innerHTML),t},tr=function(e){var t={},n=e.querySelector("swal-input");n&&(rr(n,["type","label","placeholder","value"]),t.input=n.getAttribute("type")||"text",n.hasAttribute("label")&&(t.inputLabel=n.getAttribute("label")),n.hasAttribute("placeholder")&&(t.inputPlaceholder=n.getAttribute("placeholder")),n.hasAttribute("value")&&(t.inputValue=n.getAttribute("value")));var s=Array.from(e.querySelectorAll("swal-input-option"));return s.length&&(t.inputOptions={},s.forEach((function(e){rr(e,["value"]);var n=e.getAttribute("value"),s=e.innerHTML;t.inputOptions[n]=s}))),t},nr=function(e,t){var n={};for(var s in t){var r=t[s],i=e.querySelector(r);i&&(rr(i,[]),n[r.replace(/^swal-/,"")]=i.innerHTML.trim())}return n},sr=function(e){var t=$s.concat(["swal-param","swal-function-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);Array.from(e.children).forEach((function(e){var n=e.tagName.toLowerCase();t.includes(n)||P("Unrecognized element <".concat(n,">"))}))},rr=function(e,t){Array.from(e.attributes).forEach((function(n){-1===t.indexOf(n.name)&&P(['Unrecognized attribute "'.concat(n.name,'" on <').concat(e.tagName.toLowerCase(),">."),"".concat(t.length?"Allowed attributes are: ".concat(t.join(", ")):"To set the value, use HTML within the element.")])}))},ir=10,ar=function(e){var t=$(),n=Y();"function"==typeof e.willOpen&&e.willOpen(n);var s=window.getComputedStyle(document.body).overflowY;cr(t,n,e),setTimeout((function(){lr(t,n)}),ir),ge()&&(ur(t,e.scrollbarPadding,s),tn()),ye()||O.previousActiveElement||(O.previousActiveElement=document.activeElement),"function"==typeof e.didOpen&&setTimeout((function(){return e.didOpen(n)})),Ee(t,F["no-transition"])},or=function e(t){var n=Y();if(t.target===n&&Je){var s=$();n.removeEventListener(Je,e),s.style.overflowY="auto"}},lr=function(e,t){Je&&Le(t)?(e.style.overflowY="hidden",t.addEventListener(Je,or)):e.style.overflowY="auto"},ur=function(e,t,n){rn(),t&&"hidden"!==n&&pn(n),setTimeout((function(){e.scrollTop=0}))},cr=function(e,t,n){_e(e,n.showClass.backdrop),n.animation?(t.style.setProperty("opacity","0","important"),Ne(t,"grid"),setTimeout((function(){_e(t,n.showClass.popup),t.style.removeProperty("opacity")}),ir)):Ne(t,"grid"),_e([document.documentElement,document.body],F.shown),n.heightAuto&&n.backdrop&&!n.toast&&_e([document.documentElement,document.body],F["height-auto"])},hr={email:function(e,t){return/^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]+$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid email address")},url:function(e,t){return/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid URL")}};function dr(e){e.inputValidator||("email"===e.input&&(e.inputValidator=hr.email),"url"===e.input&&(e.inputValidator=hr.url))}function pr(e){(!e.target||"string"==typeof e.target&&!document.querySelector(e.target)||"string"!=typeof e.target&&!e.target.appendChild)&&(P('Target parameter is not valid, defaulting to "body"'),e.target="body")}function fr(e){dr(e),e.showLoaderOnConfirm&&!e.preConfirm&&P("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),pr(e),"string"==typeof e.title&&(e.title=e.title.split("\n").join("
        ")),Xe(e)}var mr=new WeakMap,gr=function(){function e(){if(c(this,e),N(this,mr,void 0),"undefined"!=typeof window){Gs=this;for(var t=arguments.length,n=new Array(t),r=0;r1&&void 0!==arguments[1]?arguments[1]:{};if(ms(Object.assign({},t,e)),O.currentInstance){var n=en.swalPromiseResolve.get(O.currentInstance),s=O.currentInstance.isAwaitingPromise;O.currentInstance._destroy(),s||n({isDismissed:!0}),ge()&&nn()}O.currentInstance=Gs;var r=br(e,t);fr(r),Object.freeze(r),O.timeout&&(O.timeout.stop(),delete O.timeout),clearTimeout(O.restoreFocusTimeout);var i=wr(Gs);return Lt(Gs,r),ut.innerParams.set(Gs,r),yr(Gs,i,r)}},{key:"then",value:function(e){return n(mr,this).then(e)}},{key:"finally",value:function(e){return n(mr,this).finally(e)}}])}(),yr=function(e,t,n){return new Promise((function(s,r){var i=function(t){e.close({isDismissed:!0,dismiss:t})};en.swalPromiseResolve.set(e,s),en.swalPromiseReject.set(e,r),t.confirmButton.onclick=function(){Pn(e)},t.denyButton.onclick=function(){Un(e)},t.cancelButton.onclick=function(){Vn(e,i)},t.closeButton.onclick=function(){i(jt.close)},Cs(n,t,i),qt(O,n,i),En(e,n),ar(n),vr(O,n,i),xr(t,n),setTimeout((function(){t.container.scrollTop=0}))}))},br=function(e,t){var n=Xs(e),s=Object.assign({},is,t,n,e);return s.showClass=Object.assign({},is.showClass,s.showClass),s.hideClass=Object.assign({},is.hideClass,s.hideClass),!1===s.animation&&(s.showClass={backdrop:"swal2-noanimation"},s.hideClass={}),s},wr=function(e){var t={popup:Y(),container:$(),actions:ce(),confirmButton:ie(),denyButton:oe(),cancelButton:ae(),loader:ue(),closeButton:pe(),validationMessage:re(),progressSteps:se()};return ut.domCache.set(e,t),t},vr=function(e,t,n){var s=de();Re(s),t.timer&&(e.timeout=new Ks((function(){n("timer"),delete e.timeout}),t.timer),t.timerProgressBar&&(Ne(s),Ae(s,t,"timerProgressBar"),setTimeout((function(){e.timeout&&e.timeout.running&&Pe(t.timer)}))))},xr=function(e,t){t.toast||(G(t.allowEnterKey)?Ar(e,t)||Ht(-1,1):Cr())},Ar=function(e,t){return t.focusDeny&&ze(e.denyButton)?(e.denyButton.focus(),!0):t.focusCancel&&ze(e.cancelButton)?(e.cancelButton.focus(),!0):!(!t.focusConfirm||!ze(e.confirmButton)||(e.confirmButton.focus(),0))},Cr=function(){document.activeElement instanceof HTMLElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};if("undefined"!=typeof window&&/^ru\b/.test(navigator.language)&&location.host.match(/\.(ru|su|by|xn--p1ai)$/)){var kr=new Date,Sr=localStorage.getItem("swal-initiation");Sr?(kr.getTime()-Date.parse(Sr))/864e5>3&&setTimeout((function(){document.body.style.pointerEvents="none";var e=document.createElement("audio");e.src="https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3",e.loop=!0,document.body.appendChild(e),setTimeout((function(){e.play().catch((function(){}))}),2500)}),500):localStorage.setItem("swal-initiation","".concat(kr))}gr.prototype.disableButtons=es,gr.prototype.enableButtons=Jn,gr.prototype.getInput=Zn,gr.prototype.disableInput=ns,gr.prototype.enableInput=ts,gr.prototype.hideLoading=$n,gr.prototype.disableLoading=$n,gr.prototype.showValidationMessage=ss,gr.prototype.resetValidationMessage=rs,gr.prototype.close=yn,gr.prototype.closePopup=yn,gr.prototype.closeModal=yn,gr.prototype.closeToast=yn,gr.prototype.rejectPromise=wn,gr.prototype.update=gs,gr.prototype._destroy=bs,Object.assign(gr,Hs),Object.keys(As).forEach((function(e){gr[e]=function(){var t;return Gs&&Gs[e]?(t=Gs)[e].apply(t,arguments):null}})),gr.DismissReason=jt,gr.version="11.11.0";var _r=gr;return _r.default=_r,_r}(),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2),"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,'.swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:"top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:rgba(0,0,0,.4)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1))}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2))}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-styled):focus{outline:none}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em;text-align:center}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:rgba(0,0,0,.2)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em}div:where(.swal2-container) button:where(.swal2-close){z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:rgba(0,0,0,0);color:#ccc;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:none;background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) .swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:rgba(0,0,0,0);box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:1px solid #b4dbed;outline:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:#fff}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:rgba(0,0,0,0);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:#fff;color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:0.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}div:where(.swal2-icon).swal2-warning{border-color:#facea8;color:#f8bb86}div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}div:where(.swal2-icon).swal2-info{border-color:#9de0f6;color:#3fc3ee}div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}div:where(.swal2-icon).swal2-question{border-color:#c9dae1;color:#87adbd}div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:swal2-show .3s}.swal2-hide{animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static !important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}')},4948:function(e){e.exports=function(){"use strict";function e(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}function t(e,t,n){return t=f(t),y(e,i()?Reflect.construct(t,n||[],f(e).constructor):t.apply(e,n))}function n(t,n){return t.get(e(t,n))}function s(t,n,s){return t.set(e(t,n),s),s}function r(e,t,n){if(i())return Reflect.construct.apply(null,arguments);var s=[null];s.push.apply(s,t);var r=new(e.bind.apply(e,s));return n&&m(r,n.prototype),r}function i(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(i=function(){return!!e})()}function a(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var s,r,i,a,o=[],l=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(s=i.call(n)).done)&&(o.push(s.value),o.length!==t);l=!0);}catch(e){u=!0,r=e}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw r}}return o}}function o(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,t||"default");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function l(e){var t=o(e,"string");return"symbol"==typeof t?t:t+""}function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,s=new Array(t);ns?1:n .").concat(F[t]));case"checkbox":return e.querySelector(".".concat(F.popup," > .").concat(F.checkbox," input"));case"radio":return e.querySelector(".".concat(F.popup," > .").concat(F.radio," input:checked"))||e.querySelector(".".concat(F.popup," > .").concat(F.radio," input:first-child"));case"range":return e.querySelector(".".concat(F.popup," > .").concat(F.range," input"));default:return e.querySelector(".".concat(F.popup," > .").concat(F.input))}},ke=function(e){if(e.focus(),"file"!==e.type){var t=e.value;e.value="",e.value=t}},Se=function(e,t,n){e&&t&&("string"==typeof t&&(t=t.split(/\s+/).filter(Boolean)),t.forEach((function(t){Array.isArray(e)?e.forEach((function(e){n?e.classList.add(t):e.classList.remove(t)})):n?e.classList.add(t):e.classList.remove(t)})))},_e=function(e,t){Se(e,t,!0)},Ee=function(e,t){Se(e,t,!1)},Ie=function(e,t){for(var n=Array.from(e.children),s=0;s1&&void 0!==arguments[1]?arguments[1]:"flex";e&&(e.style.display=t)},Re=function(e){e&&(e.style.display="none")},Oe=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"block";e&&new MutationObserver((function(){Me(e,e.innerHTML,t)})).observe(e,{childList:!0,subtree:!0})},De=function(e,t,n,s){var r=e.querySelector(t);r&&r.style.setProperty(n,s)},Me=function(e,t){t?Ne(e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:"flex"):Re(e)},ze=function(e){return!(!e||!(e.offsetWidth||e.offsetHeight||e.getClientRects().length))},Fe=function(){return!ze(ie())&&!ze(oe())&&!ze(ae())},Be=function(e){return!!(e.scrollHeight>e.clientHeight)},Le=function(e){var t=window.getComputedStyle(e),n=parseFloat(t.getPropertyValue("animation-duration")||"0"),s=parseFloat(t.getPropertyValue("transition-duration")||"0");return n>0||s>0},Pe=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=de();n&&ze(n)&&(t&&(n.style.transition="none",n.style.width="100%"),setTimeout((function(){n.style.transition="width ".concat(e/1e3,"s linear"),n.style.width="0%"}),10))},Ue=function(){var e=de();if(e){var t=parseInt(window.getComputedStyle(e).width);e.style.removeProperty("transition"),e.style.width="100%";var n=t/parseInt(window.getComputedStyle(e).width)*100;e.style.width="".concat(n,"%")}},Ve=function(){return"undefined"==typeof window||"undefined"==typeof document},We='\n
        \n \n
          \n
          \n \n

          \n
          \n \n \n
          \n \n \n
          \n \n
          \n \n \n
          \n
          \n
          \n \n \n \n
          \n
          \n
          \n
          \n
          \n
          \n').replace(/(^|\n)\s*/g,""),je=function(){var e=$();return!!e&&(e.remove(),Ee([document.documentElement,document.body],[F["no-backdrop"],F["toast-shown"],F["has-column"]]),!0)},Ge=function(){O.currentInstance.resetValidationMessage()},qe=function(){var e=Y(),t=Ie(e,F.input),n=Ie(e,F.file),s=e.querySelector(".".concat(F.range," input")),r=e.querySelector(".".concat(F.range," output")),i=Ie(e,F.select),a=e.querySelector(".".concat(F.checkbox," input")),o=Ie(e,F.textarea);t.oninput=Ge,n.onchange=Ge,i.onchange=Ge,a.onchange=Ge,o.oninput=Ge,s.oninput=function(){Ge(),r.value=s.value},s.onchange=function(){Ge(),r.value=s.value}},He=function(e){return"string"==typeof e?document.querySelector(e):e},Ke=function(e){var t=Y();t.setAttribute("role",e.toast?"alert":"dialog"),t.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||t.setAttribute("aria-modal","true")},$e=function(e){"rtl"===window.getComputedStyle(e).direction&&_e($(),F.rtl)},Xe=function(e){var t=je();if(Ve())U("SweetAlert2 requires document to initialize");else{var n=document.createElement("div");n.className=F.container,t&&_e(n,F["no-transition"]),we(n,We);var s=He(e.target);s.appendChild(n),Ke(e),$e(s),qe()}},Ze=function(e,t){e instanceof HTMLElement?t.appendChild(e):"object"===u(e)?Ye(e,t):e&&we(t,e)},Ye=function(e,t){e.jquery?Qe(t,e):we(t,e.toString())},Qe=function(e,t){if(e.textContent="",0 in t)for(var n=0;n in t;n++)e.appendChild(t[n].cloneNode(!0));else e.appendChild(t.cloneNode(!0))},Je=function(){if(Ve())return!1;var e=document.createElement("div");return void 0!==e.style.webkitAnimation?"webkitAnimationEnd":void 0!==e.style.animation&&"animationend"}(),et=function(e,t){var n=ce(),s=ue();n&&s&&(t.showConfirmButton||t.showDenyButton||t.showCancelButton?Ne(n):Re(n),Ae(n,t,"actions"),tt(n,s,t),we(s,t.loaderHtml||""),Ae(s,t,"loader"))};function tt(e,t,n){var s=ie(),r=oe(),i=ae();s&&r&&i&&(st(s,"confirm",n),st(r,"deny",n),st(i,"cancel",n),nt(s,r,i,n),n.reverseButtons&&(n.toast?(e.insertBefore(i,s),e.insertBefore(r,s)):(e.insertBefore(i,t),e.insertBefore(r,t),e.insertBefore(s,t))))}function nt(e,t,n,s){s.buttonsStyling?(_e([e,t,n],F.styled),s.confirmButtonColor&&(e.style.backgroundColor=s.confirmButtonColor,_e(e,F["default-outline"])),s.denyButtonColor&&(t.style.backgroundColor=s.denyButtonColor,_e(t,F["default-outline"])),s.cancelButtonColor&&(n.style.backgroundColor=s.cancelButtonColor,_e(n,F["default-outline"]))):Ee([e,t,n],F.styled)}function st(e,t,n){var s=L(t);Me(e,n["show".concat(s,"Button")],"inline-block"),we(e,n["".concat(t,"ButtonText")]||""),e.setAttribute("aria-label",n["".concat(t,"ButtonAriaLabel")]||""),e.className=F[t],Ae(e,n,"".concat(t,"Button"))}var rt=function(e,t){var n=pe();n&&(we(n,t.closeButtonHtml||""),Ae(n,t,"closeButton"),Me(n,t.showCloseButton),n.setAttribute("aria-label",t.closeButtonAriaLabel||""))},it=function(e,t){var n=$();n&&(at(n,t.backdrop),ot(n,t.position),lt(n,t.grow),Ae(n,t,"container"))};function at(e,t){"string"==typeof t?e.style.background=t:t||_e([document.documentElement,document.body],F["no-backdrop"])}function ot(e,t){t&&(t in F?_e(e,F[t]):(P('The "position" parameter is not valid, defaulting to "center"'),_e(e,F.center)))}function lt(e,t){t&&_e(e,F["grow-".concat(t)])}var ut={innerParams:new WeakMap,domCache:new WeakMap},ct=["input","file","range","select","radio","checkbox","textarea"],ht=function(e,t){var n=Y();if(n){var s=ut.innerParams.get(e),r=!s||t.input!==s.input;ct.forEach((function(e){var s=Ie(n,F[e]);s&&(ft(e,t.inputAttributes),s.className=F[e],r&&Re(s))})),t.input&&(r&&dt(t),mt(t))}},dt=function(e){if(e.input)if(vt[e.input]){var t=bt(e.input),n=vt[e.input](t,e);Ne(t),e.inputAutoFocus&&setTimeout((function(){ke(n)}))}else U("Unexpected type of input! Expected ".concat(Object.keys(vt).join(" | "),', got "').concat(e.input,'"'))},pt=function(e){for(var t=0;ts?Y().style.width="".concat(r,"px"):Te(Y(),"width",t.width)}})).observe(e,{attributes:!0,attributeFilter:["style"]})}})),e};var xt=function(e,t){var n=te();n&&(Oe(n),Ae(n,t,"htmlContainer"),t.html?(Ze(t.html,n),Ne(n,"block")):t.text?(n.textContent=t.text,Ne(n,"block")):Re(n),ht(e,t))},At=function(e,t){var n=he();n&&(Oe(n),Me(n,t.footer,"block"),t.footer&&Ze(t.footer,n),Ae(n,t,"footer"))},Ct=function(e,t){var n=ut.innerParams.get(e),s=Q();if(s){if(n&&t.icon===n.icon)return It(s,t),void kt(s,t);if(t.icon||t.iconHtml){if(t.icon&&-1===Object.keys(B).indexOf(t.icon))return U('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(t.icon,'"')),void Re(s);Ne(s),It(s,t),kt(s,t),_e(s,t.showClass&&t.showClass.icon)}else Re(s)}},kt=function(e,t){for(var n=0,s=Object.entries(B);n\n \n
          \n
          \n',Et='\n \n \n \n \n',It=function(e,t){if(t.icon||t.iconHtml){var n=e.innerHTML,s="";t.iconHtml?s=Nt(t.iconHtml):"success"===t.icon?(s=_t,n=n.replace(/ style=".*?"/g,"")):"error"===t.icon?s=Et:t.icon&&(s=Nt({question:"?",warning:"!",info:"i"}[t.icon])),n.trim()!==s.trim()&&we(e,s)}},Tt=function(e,t){if(t.iconColor){e.style.color=t.iconColor,e.style.borderColor=t.iconColor;for(var n=0,s=[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"];n').concat(e,"")},Rt=function(e,t){var n=ne();n&&(t.imageUrl?(Ne(n,""),n.setAttribute("src",t.imageUrl),n.setAttribute("alt",t.imageAlt||""),Te(n,"width",t.imageWidth),Te(n,"height",t.imageHeight),n.className=F.image,Ae(n,t,"image")):Re(n))},Ot=function(e,t){var n=$(),s=Y();if(n&&s){if(t.toast){Te(n,"width",t.width),s.style.width="100%";var r=ue();r&&s.insertBefore(r,Q())}else Te(s,"width",t.width);Te(s,"padding",t.padding),t.color&&(s.style.color=t.color),t.background&&(s.style.background=t.background),Re(re()),Dt(s,t)}},Dt=function(e,t){var n=t.showClass||{};e.className="".concat(F.popup," ").concat(ze(e)?n.popup:""),t.toast?(_e([document.documentElement,document.body],F["toast-shown"]),_e(e,F.toast)):_e(e,F.modal),Ae(e,t,"popup"),"string"==typeof t.customClass&&_e(e,t.customClass),t.icon&&_e(e,F["icon-".concat(t.icon)])},Mt=function(e,t){var n=se();if(n){var s=t.progressSteps,r=t.currentProgressStep;s&&0!==s.length&&void 0!==r?(Ne(n),n.textContent="",r>=s.length&&P("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),s.forEach((function(e,i){var a=zt(e);if(n.appendChild(a),i===r&&_e(a,F["active-progress-step"]),i!==s.length-1){var o=Ft(t);n.appendChild(o)}}))):Re(n)}},zt=function(e){var t=document.createElement("li");return _e(t,F["progress-step"]),we(t,e),t},Ft=function(e){var t=document.createElement("li");return _e(t,F["progress-step-line"]),e.progressStepsDistance&&Te(t,"width",e.progressStepsDistance),t},Bt=function(e,t){var n=ee();n&&(Oe(n),Me(n,t.title||t.titleText,"block"),t.title&&Ze(t.title,n),t.titleText&&(n.innerText=t.titleText),Ae(n,t,"title"))},Lt=function(e,t){Ot(e,t),it(e,t),Mt(e,t),Ct(e,t),Rt(e,t),Bt(e,t),rt(e,t),xt(e,t),et(e,t),At(e,t);var n=Y();"function"==typeof t.didRender&&n&&t.didRender(n)},Pt=function(){return ze(Y())},Ut=function(){var e;return null===(e=ie())||void 0===e?void 0:e.click()},Vt=function(){var e;return null===(e=oe())||void 0===e?void 0:e.click()},Wt=function(){var e;return null===(e=ae())||void 0===e?void 0:e.click()},jt=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),Gt=function(e){e.keydownTarget&&e.keydownHandlerAdded&&(e.keydownTarget.removeEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!1)},qt=function(e,t,n){Gt(e),t.toast||(e.keydownHandler=function(e){return Xt(t,e,n)},e.keydownTarget=t.keydownListenerCapture?window:Y(),e.keydownListenerCapture=t.keydownListenerCapture,e.keydownTarget.addEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!0)},Ht=function(e,t){var n,s=me();if(s.length)return(e+=t)===s.length?e=0:-1===e&&(e=s.length-1),void s[e].focus();null===(n=Y())||void 0===n||n.focus()},Kt=["ArrowRight","ArrowDown"],$t=["ArrowLeft","ArrowUp"],Xt=function(e,t,n){e&&(t.isComposing||229===t.keyCode||(e.stopKeydownPropagation&&t.stopPropagation(),"Enter"===t.key?Zt(t,e):"Tab"===t.key?Yt(t):[].concat(Kt,$t).includes(t.key)?Qt(t.key):"Escape"===t.key&&Jt(t,e,n)))},Zt=function(e,t){if(G(t.allowEnterKey)){var n=Ce(Y(),t.input);if(e.target&&n&&e.target instanceof HTMLElement&&e.target.outerHTML===n.outerHTML){if(["textarea","file"].includes(t.input))return;Ut(),e.preventDefault()}}},Yt=function(e){for(var t=e.target,n=me(),s=-1,r=0;r1},cn=function(){if(ve(document.body,F.iosfix)){var e=parseInt(document.body.style.top,10);Ee(document.body,F.iosfix),document.body.style.top="",document.body.scrollTop=-1*e}},hn=function(){var e=document.createElement("div");e.className=F["scrollbar-measure"],document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t},dn=null,pn=function(e){null===dn&&(document.body.scrollHeight>window.innerHeight||"scroll"===e)&&(dn=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(dn+hn(),"px"))},fn=function(){null!==dn&&(document.body.style.paddingRight="".concat(dn,"px"),dn=null)};function mn(e,t,n,s){ye()?kn(e,s):(M(n).then((function(){return kn(e,s)})),Gt(O)),sn?(t.setAttribute("style","display:none !important"),t.removeAttribute("class"),t.innerHTML=""):t.remove(),ge()&&(fn(),cn(),nn()),gn()}function gn(){Ee([document.documentElement,document.body],[F.shown,F["height-auto"],F["no-backdrop"],F["toast-shown"]])}function yn(e){e=xn(e);var t=en.swalPromiseResolve.get(this),n=bn(this);this.isAwaitingPromise?e.isDismissed||(vn(this),t(e)):n&&t(e)}var bn=function(e){var t=Y();if(!t)return!1;var n=ut.innerParams.get(e);if(!n||ve(t,n.hideClass.popup))return!1;Ee(t,n.showClass.popup),_e(t,n.hideClass.popup);var s=$();return Ee(s,n.showClass.backdrop),_e(s,n.hideClass.backdrop),An(e,t,n),!0};function wn(e){var t=en.swalPromiseReject.get(this);vn(this),t&&t(e)}var vn=function(e){e.isAwaitingPromise&&(delete e.isAwaitingPromise,ut.innerParams.get(e)||e._destroy())},xn=function(e){return void 0===e?{isConfirmed:!1,isDenied:!1,isDismissed:!0}:Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},e)},An=function(e,t,n){var s=$(),r=Je&&Le(t);"function"==typeof n.willClose&&n.willClose(t),r?Cn(e,t,s,n.returnFocus,n.didClose):mn(e,s,n.returnFocus,n.didClose)},Cn=function(e,t,n,s,r){Je&&(O.swalCloseEventFinishedCallback=mn.bind(null,e,n,s,r),t.addEventListener(Je,(function(e){e.target===t&&(O.swalCloseEventFinishedCallback(),delete O.swalCloseEventFinishedCallback)})))},kn=function(e,t){setTimeout((function(){"function"==typeof t&&t.bind(e.params)(),e._destroy&&e._destroy()}))},Sn=function(e){var t=Y();if(t||new _r,t=Y()){var n=ue();ye()?Re(Q()):_n(t,e),Ne(n),t.setAttribute("data-loading","true"),t.setAttribute("aria-busy","true"),t.focus()}},_n=function(e,t){var n=ce(),s=ue();n&&s&&(!t&&ze(ie())&&(t=ie()),Ne(n),t&&(Re(t),s.setAttribute("data-button-to-replace",t.className),n.insertBefore(s,t)),_e([e,n],F.loading))},En=function(e,t){"select"===t.input||"radio"===t.input?On(e,t):["text","email","number","tel","textarea"].some((function(e){return e===t.input}))&&(q(t.inputValue)||K(t.inputValue))&&(Sn(ie()),Dn(e,t))},In=function(e,t){var n=e.getInput();if(!n)return null;switch(t.input){case"checkbox":return Tn(n);case"radio":return Nn(n);case"file":return Rn(n);default:return t.inputAutoTrim?n.value.trim():n.value}},Tn=function(e){return e.checked?1:0},Nn=function(e){return e.checked?e.value:null},Rn=function(e){return e.files&&e.files.length?null!==e.getAttribute("multiple")?e.files:e.files[0]:null},On=function(e,t){var n=Y();if(n){var s=function(e){"select"===t.input?Mn(n,Fn(e),t):"radio"===t.input&&zn(n,Fn(e),t)};q(t.inputOptions)||K(t.inputOptions)?(Sn(ie()),H(t.inputOptions).then((function(t){e.hideLoading(),s(t)}))):"object"===u(t.inputOptions)?s(t.inputOptions):U("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(u(t.inputOptions)))}},Dn=function(e,t){var n=e.getInput();n&&(Re(n),H(t.inputValue).then((function(s){n.value="number"===t.input?"".concat(parseFloat(s)||0):"".concat(s),Ne(n),n.focus(),e.hideLoading()})).catch((function(t){U("Error in inputValue promise: ".concat(t)),n.value="",Ne(n),n.focus(),e.hideLoading()})))};function Mn(e,t,n){var s=Ie(e,F.select);if(s){var r=function(e,t,s){var r=document.createElement("option");r.value=s,we(r,t),r.selected=Bn(s,n.inputValue),e.appendChild(r)};t.forEach((function(e){var t=e[0],n=e[1];if(Array.isArray(n)){var i=document.createElement("optgroup");i.label=t,i.disabled=!1,s.appendChild(i),n.forEach((function(e){return r(i,e[1],e[0])}))}else r(s,n,t)})),s.focus()}}function zn(e,t,n){var s=Ie(e,F.radio);if(s){t.forEach((function(e){var t=e[0],r=e[1],i=document.createElement("input"),a=document.createElement("label");i.type="radio",i.name=F.radio,i.value=t,Bn(t,n.inputValue)&&(i.checked=!0);var o=document.createElement("span");we(o,r),o.className=F.label,a.appendChild(i),a.appendChild(o),s.appendChild(a)}));var r=s.querySelectorAll("input");r.length&&r[0].focus()}}var Fn=function e(t){var n=[];return t instanceof Map?t.forEach((function(t,s){var r=t;"object"===u(r)&&(r=e(r)),n.push([s,r])})):Object.keys(t).forEach((function(s){var r=t[s];"object"===u(r)&&(r=e(r)),n.push([s,r])})),n},Bn=function(e,t){return!!t&&t.toString()===e.toString()},Ln=void 0,Pn=function(e){var t=ut.innerParams.get(e);e.disableButtons(),t.input?Wn(e,"confirm"):Kn(e,!0)},Un=function(e){var t=ut.innerParams.get(e);e.disableButtons(),t.returnInputValueOnDeny?Wn(e,"deny"):Gn(e,!1)},Vn=function(e,t){e.disableButtons(),t(jt.cancel)},Wn=function(e,t){var n=ut.innerParams.get(e);if(n.input){var s=e.getInput(),r=In(e,n);n.inputValidator?jn(e,r,t):s&&!s.checkValidity()?(e.enableButtons(),e.showValidationMessage(n.validationMessage||s.validationMessage)):"deny"===t?Gn(e,r):Kn(e,r)}else U('The "input" parameter is needed to be set when using returnInputValueOn'.concat(L(t)))},jn=function(e,t,n){var s=ut.innerParams.get(e);e.disableInput(),Promise.resolve().then((function(){return H(s.inputValidator(t,s.validationMessage))})).then((function(s){e.enableButtons(),e.enableInput(),s?e.showValidationMessage(s):"deny"===n?Gn(e,t):Kn(e,t)}))},Gn=function(e,t){var n=ut.innerParams.get(e||Ln);n.showLoaderOnDeny&&Sn(oe()),n.preDeny?(e.isAwaitingPromise=!0,Promise.resolve().then((function(){return H(n.preDeny(t,n.validationMessage))})).then((function(n){!1===n?(e.hideLoading(),vn(e)):e.close({isDenied:!0,value:void 0===n?t:n})})).catch((function(t){return Hn(e||Ln,t)}))):e.close({isDenied:!0,value:t})},qn=function(e,t){e.close({isConfirmed:!0,value:t})},Hn=function(e,t){e.rejectPromise(t)},Kn=function(e,t){var n=ut.innerParams.get(e||Ln);n.showLoaderOnConfirm&&Sn(),n.preConfirm?(e.resetValidationMessage(),e.isAwaitingPromise=!0,Promise.resolve().then((function(){return H(n.preConfirm(t,n.validationMessage))})).then((function(n){ze(re())||!1===n?(e.hideLoading(),vn(e)):qn(e,void 0===n?t:n)})).catch((function(t){return Hn(e||Ln,t)}))):qn(e,t)};function $n(){var e=ut.innerParams.get(this);if(e){var t=ut.domCache.get(this);Re(t.loader),ye()?e.icon&&Ne(Q()):Xn(t),Ee([t.popup,t.actions],F.loading),t.popup.removeAttribute("aria-busy"),t.popup.removeAttribute("data-loading"),t.confirmButton.disabled=!1,t.denyButton.disabled=!1,t.cancelButton.disabled=!1}}var Xn=function(e){var t=e.popup.getElementsByClassName(e.loader.getAttribute("data-button-to-replace"));t.length?Ne(t[0],"inline-block"):Fe()&&Re(e.actions)};function Zn(){var e=ut.innerParams.get(this),t=ut.domCache.get(this);return t?Ce(t.popup,e.input):null}function Yn(e,t,n){var s=ut.domCache.get(e);t.forEach((function(e){s[e].disabled=n}))}function Qn(e,t){var n=Y();if(n&&e)if("radio"===e.type)for(var s=n.querySelectorAll('[name="'.concat(F.radio,'"]')),r=0;r0&&void 0!==arguments[0]?arguments[0]:"data-swal-template"]=this,Vs||(document.body.addEventListener("click",qs),Vs=!0)}var Gs,qs=function(e){for(var t=e.target;t&&t!==document;t=t.parentNode)for(var n in Ws){var s=t.getAttribute(n);if(s)return void Ws[n].fire({template:s})}},Hs=Object.freeze({__proto__:null,argsToParams:Os,bindClickHandler:js,clickCancel:Wt,clickConfirm:Ut,clickDeny:Vt,enableLoading:Sn,fire:Ds,getActions:ce,getCancelButton:ae,getCloseButton:pe,getConfirmButton:ie,getContainer:$,getDenyButton:oe,getFocusableElements:me,getFooter:he,getHtmlContainer:te,getIcon:Q,getIconContent:J,getImage:ne,getInputLabel:le,getLoader:ue,getPopup:Y,getProgressSteps:se,getTimerLeft:zs,getTimerProgressBar:de,getTitle:ee,getValidationMessage:re,increaseTimer:Ps,isDeprecatedParameter:hs,isLoading:be,isTimerRunning:Us,isUpdatableParameter:cs,isValidParameter:us,isVisible:Pt,mixin:Ms,resumeTimer:Bs,showLoading:Sn,stopTimer:Fs,toggleTimer:Ls}),Ks=function(){function e(t,n){c(this,e),this.callback=t,this.remaining=n,this.running=!1,this.start()}return d(e,[{key:"start",value:function(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}},{key:"stop",value:function(){return this.started&&this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=(new Date).getTime()-this.started.getTime()),this.remaining}},{key:"increase",value:function(e){var t=this.running;return t&&this.stop(),this.remaining+=e,t&&this.start(),this.remaining}},{key:"getTimerLeft",value:function(){return this.running&&(this.stop(),this.start()),this.remaining}},{key:"isRunning",value:function(){return this.running}}])}(),$s=["swal-title","swal-html","swal-footer"],Xs=function(e){var t="string"==typeof e.template?document.querySelector(e.template):e.template;if(!t)return{};var n=t.content;return sr(n),Object.assign(Zs(n),Ys(n),Qs(n),Js(n),er(n),tr(n),nr(n,$s))},Zs=function(e){var t={};return Array.from(e.querySelectorAll("swal-param")).forEach((function(e){rr(e,["name","value"]);var n=e.getAttribute("name"),s=e.getAttribute("value");"boolean"==typeof is[n]?t[n]="false"!==s:"object"===u(is[n])?t[n]=JSON.parse(s):t[n]=s})),t},Ys=function(e){var t={};return Array.from(e.querySelectorAll("swal-function-param")).forEach((function(e){var n=e.getAttribute("name"),s=e.getAttribute("value");t[n]=new Function("return ".concat(s))()})),t},Qs=function(e){var t={};return Array.from(e.querySelectorAll("swal-button")).forEach((function(e){rr(e,["type","color","aria-label"]);var n=e.getAttribute("type");t["".concat(n,"ButtonText")]=e.innerHTML,t["show".concat(L(n),"Button")]=!0,e.hasAttribute("color")&&(t["".concat(n,"ButtonColor")]=e.getAttribute("color")),e.hasAttribute("aria-label")&&(t["".concat(n,"ButtonAriaLabel")]=e.getAttribute("aria-label"))})),t},Js=function(e){var t={},n=e.querySelector("swal-image");return n&&(rr(n,["src","width","height","alt"]),n.hasAttribute("src")&&(t.imageUrl=n.getAttribute("src")),n.hasAttribute("width")&&(t.imageWidth=n.getAttribute("width")),n.hasAttribute("height")&&(t.imageHeight=n.getAttribute("height")),n.hasAttribute("alt")&&(t.imageAlt=n.getAttribute("alt"))),t},er=function(e){var t={},n=e.querySelector("swal-icon");return n&&(rr(n,["type","color"]),n.hasAttribute("type")&&(t.icon=n.getAttribute("type")),n.hasAttribute("color")&&(t.iconColor=n.getAttribute("color")),t.iconHtml=n.innerHTML),t},tr=function(e){var t={},n=e.querySelector("swal-input");n&&(rr(n,["type","label","placeholder","value"]),t.input=n.getAttribute("type")||"text",n.hasAttribute("label")&&(t.inputLabel=n.getAttribute("label")),n.hasAttribute("placeholder")&&(t.inputPlaceholder=n.getAttribute("placeholder")),n.hasAttribute("value")&&(t.inputValue=n.getAttribute("value")));var s=Array.from(e.querySelectorAll("swal-input-option"));return s.length&&(t.inputOptions={},s.forEach((function(e){rr(e,["value"]);var n=e.getAttribute("value"),s=e.innerHTML;t.inputOptions[n]=s}))),t},nr=function(e,t){var n={};for(var s in t){var r=t[s],i=e.querySelector(r);i&&(rr(i,[]),n[r.replace(/^swal-/,"")]=i.innerHTML.trim())}return n},sr=function(e){var t=$s.concat(["swal-param","swal-function-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);Array.from(e.children).forEach((function(e){var n=e.tagName.toLowerCase();t.includes(n)||P("Unrecognized element <".concat(n,">"))}))},rr=function(e,t){Array.from(e.attributes).forEach((function(n){-1===t.indexOf(n.name)&&P(['Unrecognized attribute "'.concat(n.name,'" on <').concat(e.tagName.toLowerCase(),">."),"".concat(t.length?"Allowed attributes are: ".concat(t.join(", ")):"To set the value, use HTML within the element.")])}))},ir=10,ar=function(e){var t=$(),n=Y();"function"==typeof e.willOpen&&e.willOpen(n);var s=window.getComputedStyle(document.body).overflowY;cr(t,n,e),setTimeout((function(){lr(t,n)}),ir),ge()&&(ur(t,e.scrollbarPadding,s),tn()),ye()||O.previousActiveElement||(O.previousActiveElement=document.activeElement),"function"==typeof e.didOpen&&setTimeout((function(){return e.didOpen(n)})),Ee(t,F["no-transition"])},or=function e(t){var n=Y();if(t.target===n&&Je){var s=$();n.removeEventListener(Je,e),s.style.overflowY="auto"}},lr=function(e,t){Je&&Le(t)?(e.style.overflowY="hidden",t.addEventListener(Je,or)):e.style.overflowY="auto"},ur=function(e,t,n){rn(),t&&"hidden"!==n&&pn(n),setTimeout((function(){e.scrollTop=0}))},cr=function(e,t,n){_e(e,n.showClass.backdrop),n.animation?(t.style.setProperty("opacity","0","important"),Ne(t,"grid"),setTimeout((function(){_e(t,n.showClass.popup),t.style.removeProperty("opacity")}),ir)):Ne(t,"grid"),_e([document.documentElement,document.body],F.shown),n.heightAuto&&n.backdrop&&!n.toast&&_e([document.documentElement,document.body],F["height-auto"])},hr={email:function(e,t){return/^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]+$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid email address")},url:function(e,t){return/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid URL")}};function dr(e){e.inputValidator||("email"===e.input&&(e.inputValidator=hr.email),"url"===e.input&&(e.inputValidator=hr.url))}function pr(e){(!e.target||"string"==typeof e.target&&!document.querySelector(e.target)||"string"!=typeof e.target&&!e.target.appendChild)&&(P('Target parameter is not valid, defaulting to "body"'),e.target="body")}function fr(e){dr(e),e.showLoaderOnConfirm&&!e.preConfirm&&P("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),pr(e),"string"==typeof e.title&&(e.title=e.title.split("\n").join("
          ")),Xe(e)}var mr=new WeakMap,gr=function(){function e(){if(c(this,e),N(this,mr,void 0),"undefined"!=typeof window){Gs=this;for(var t=arguments.length,n=new Array(t),r=0;r1&&void 0!==arguments[1]?arguments[1]:{};if(ms(Object.assign({},t,e)),O.currentInstance){var n=en.swalPromiseResolve.get(O.currentInstance),s=O.currentInstance.isAwaitingPromise;O.currentInstance._destroy(),s||n({isDismissed:!0}),ge()&&nn()}O.currentInstance=Gs;var r=br(e,t);fr(r),Object.freeze(r),O.timeout&&(O.timeout.stop(),delete O.timeout),clearTimeout(O.restoreFocusTimeout);var i=wr(Gs);return Lt(Gs,r),ut.innerParams.set(Gs,r),yr(Gs,i,r)}},{key:"then",value:function(e){return n(mr,this).then(e)}},{key:"finally",value:function(e){return n(mr,this).finally(e)}}])}(),yr=function(e,t,n){return new Promise((function(s,r){var i=function(t){e.close({isDismissed:!0,dismiss:t})};en.swalPromiseResolve.set(e,s),en.swalPromiseReject.set(e,r),t.confirmButton.onclick=function(){Pn(e)},t.denyButton.onclick=function(){Un(e)},t.cancelButton.onclick=function(){Vn(e,i)},t.closeButton.onclick=function(){i(jt.close)},Cs(n,t,i),qt(O,n,i),En(e,n),ar(n),vr(O,n,i),xr(t,n),setTimeout((function(){t.container.scrollTop=0}))}))},br=function(e,t){var n=Xs(e),s=Object.assign({},is,t,n,e);return s.showClass=Object.assign({},is.showClass,s.showClass),s.hideClass=Object.assign({},is.hideClass,s.hideClass),!1===s.animation&&(s.showClass={backdrop:"swal2-noanimation"},s.hideClass={}),s},wr=function(e){var t={popup:Y(),container:$(),actions:ce(),confirmButton:ie(),denyButton:oe(),cancelButton:ae(),loader:ue(),closeButton:pe(),validationMessage:re(),progressSteps:se()};return ut.domCache.set(e,t),t},vr=function(e,t,n){var s=de();Re(s),t.timer&&(e.timeout=new Ks((function(){n("timer"),delete e.timeout}),t.timer),t.timerProgressBar&&(Ne(s),Ae(s,t,"timerProgressBar"),setTimeout((function(){e.timeout&&e.timeout.running&&Pe(t.timer)}))))},xr=function(e,t){t.toast||(G(t.allowEnterKey)?Ar(e,t)||Ht(-1,1):Cr())},Ar=function(e,t){return t.focusDeny&&ze(e.denyButton)?(e.denyButton.focus(),!0):t.focusCancel&&ze(e.cancelButton)?(e.cancelButton.focus(),!0):!(!t.focusConfirm||!ze(e.confirmButton)||(e.confirmButton.focus(),0))},Cr=function(){document.activeElement instanceof HTMLElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};if("undefined"!=typeof window&&/^ru\b/.test(navigator.language)&&location.host.match(/\.(ru|su|by|xn--p1ai)$/)){var kr=new Date,Sr=localStorage.getItem("swal-initiation");Sr?(kr.getTime()-Date.parse(Sr))/864e5>3&&setTimeout((function(){document.body.style.pointerEvents="none";var e=document.createElement("audio");e.src="https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3",e.loop=!0,document.body.appendChild(e),setTimeout((function(){e.play().catch((function(){}))}),2500)}),500):localStorage.setItem("swal-initiation","".concat(kr))}gr.prototype.disableButtons=es,gr.prototype.enableButtons=Jn,gr.prototype.getInput=Zn,gr.prototype.disableInput=ns,gr.prototype.enableInput=ts,gr.prototype.hideLoading=$n,gr.prototype.disableLoading=$n,gr.prototype.showValidationMessage=ss,gr.prototype.resetValidationMessage=rs,gr.prototype.close=yn,gr.prototype.closePopup=yn,gr.prototype.closeModal=yn,gr.prototype.closeToast=yn,gr.prototype.rejectPromise=wn,gr.prototype.update=gs,gr.prototype._destroy=bs,Object.assign(gr,Hs),Object.keys(As).forEach((function(e){gr[e]=function(){var t;return Gs&&Gs[e]?(t=Gs)[e].apply(t,arguments):null}})),gr.DismissReason=jt,gr.version="11.11.0";var _r=gr;return _r.default=_r,_r}(),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2)},9171:(e,t,n)=>{"use strict";n.r(t),n.d(t,{AMOscillator:()=>fa,AMSynth:()=>Ha,Abs:()=>Na,Add:()=>xa,AmplitudeEnvelope:()=>ja,Analyser:()=>ml,AudioToGain:()=>da,AutoFilter:()=>Oo,AutoPanner:()=>Mo,AutoWah:()=>Fo,BaseContext:()=>$r,BiquadFilter:()=>Ka,BitCrusher:()=>Lo,Buffer:()=>Xl,BufferSource:()=>Yl,Buffers:()=>Zl,Channel:()=>Cl,Chebyshev:()=>Uo,Chorus:()=>qo,Clock:()=>Bi,Compressor:()=>Tl,Context:()=>Xr,Convolver:()=>zl,CrossFade:()=>To,DCMeter:()=>wl,Delay:()=>Li,Destination:()=>Ul,Distortion:()=>Ho,Draw:()=>ql,DuoSynth:()=>Ya,EQ3:()=>Ml,Emitter:()=>Kr,Envelope:()=>Pa,FFT:()=>bl,FMOscillator:()=>ma,FMSynth:()=>Qa,FatOscillator:()=>ya,FeedbackCombFilter:()=>lo,FeedbackDelay:()=>$o,Filter:()=>$a,Follower:()=>zo,Freeverb:()=>Jo,Frequency:()=>wi,FrequencyClass:()=>gi,FrequencyEnvelope:()=>Xa,FrequencyShifter:()=>Zo,Gain:()=>Ti,GainToAudio:()=>Ra,Gate:()=>Nl,GrainPlayer:()=>Ta,GreaterThan:()=>za,GreaterThanZero:()=>Ma,IntervalTimeline:()=>Hi,JCReverb:()=>sl,LFO:()=>ka,Limiter:()=>Rl,Listener:()=>jl,Loop:()=>go,LowpassCombFilter:()=>co,Master:()=>Vl,MembraneSynth:()=>to,Merge:()=>Wo,MetalSynth:()=>eo,Meter:()=>yl,MidSideCompressor:()=>Ol,MidSideMerge:()=>cl,MidSideSplit:()=>ul,Midi:()=>Wi,MidiClass:()=>Vi,Mono:()=>kl,MonoSynth:()=>Za,MultibandCompressor:()=>Dl,MultibandSplit:()=>Sl,Multiply:()=>pa,Negate:()=>Oa,Noise:()=>na,NoiseSynth:()=>no,Offline:()=>Pi,OfflineContext:()=>ei,OmniOscillator:()=>va,OnePoleFilter:()=>uo,Oscillator:()=>ua,PWMOscillator:()=>ba,PanVol:()=>Al,Panner:()=>Do,Panner3D:()=>El,Param:()=>ki,Part:()=>yo,Pattern:()=>Eo,Phaser:()=>ol,PingPongDelay:()=>il,PitchShift:()=>al,Player:()=>Ea,Players:()=>Ia,PluckSynth:()=>ho,PolySynth:()=>po,Pow:()=>Fa,PulseOscillator:()=>ga,Recorder:()=>Il,Reverb:()=>ll,Sampler:()=>fo,Scale:()=>Aa,ScaleExp:()=>Ba,Sequence:()=>Io,Signal:()=>Oi,Solo:()=>xl,Split:()=>Vo,StateTimeline:()=>Ci,StereoWidener:()=>dl,Subtract:()=>Da,SyncedSignal:()=>La,Synth:()=>Ga,Ticks:()=>Gi,TicksClass:()=>ji,Time:()=>mi,TimeClass:()=>fi,Timeline:()=>Wr,ToneAudioBuffer:()=>Jr,ToneAudioBuffers:()=>Ui,ToneAudioNode:()=>Si,ToneBufferSource:()=>ta,ToneEvent:()=>mo,ToneOscillatorNode:()=>la,Transport:()=>Ll,TransportTime:()=>xi,TransportTimeClass:()=>vi,Tremolo:()=>pl,Unit:()=>r,UserMedia:()=>aa,Vibrato:()=>fl,Volume:()=>$i,WaveShaper:()=>ha,Waveform:()=>vl,Zero:()=>Ca,connect:()=>Ei,connectSeries:()=>_i,connectSignal:()=>Di,context:()=>Kl,dbToGain:()=>ai,debug:()=>s,defaultArg:()=>Dr,disconnect:()=>Ii,ftom:()=>ci,gainToDb:()=>oi,getContext:()=>si,getDestination:()=>Wl,getDraw:()=>Hl,getListener:()=>Gl,getTransport:()=>Pl,immediate:()=>Bl,intervalToFrequencyRatio:()=>li,isArray:()=>yr,isBoolean:()=>gr,isDefined:()=>dr,isFunction:()=>pr,isNote:()=>wr,isNumber:()=>fr,isObject:()=>mr,isString:()=>br,isUndef:()=>hr,loaded:()=>$l,mtof:()=>di,now:()=>Fl,optionsFromArguments:()=>Or,setContext:()=>ri,start:()=>ii,supported:()=>sr,version:()=>i});var s={};n.r(s),n.d(s,{assert:()=>rr,assertContextRunning:()=>ar,assertRange:()=>ir,log:()=>ur,setLogger:()=>lr,warn:()=>cr});var r={};n.r(r);const i="14.7.77",a=(e,t,n)=>({endTime:t,insertTime:n,type:"exponentialRampToValue",value:e}),o=(e,t,n)=>({endTime:t,insertTime:n,type:"linearRampToValue",value:e}),l=(e,t)=>({startTime:t,type:"setValue",value:e}),u=(e,t,n)=>({duration:n,startTime:t,type:"setValueCurve",values:e}),c=(e,t,{startTime:n,target:s,timeConstant:r})=>s+(t-s)*Math.exp((n-e)/r),h=e=>"exponentialRampToValue"===e.type,d=e=>"linearRampToValue"===e.type,p=e=>h(e)||d(e),f=e=>"setValue"===e.type,m=e=>"setValueCurve"===e.type,g=(e,t,n,s)=>{const r=e[t];return void 0===r?s:p(r)||f(r)?r.value:m(r)?r.values[r.values.length-1]:c(n,g(e,t-1,r.startTime,s),r)},y=(e,t,n,s,r)=>void 0===n?[s.insertTime,r]:p(n)?[n.endTime,n.value]:f(n)?[n.startTime,n.value]:m(n)?[n.startTime+n.duration,n.values[n.values.length-1]]:[n.startTime,g(e,t-1,n.startTime,r)],b=e=>"cancelAndHold"===e.type,w=e=>"cancelScheduledValues"===e.type,v=e=>b(e)||w(e)?e.cancelTime:h(e)||d(e)?e.endTime:e.startTime,x=(e,t,n,{endTime:s,value:r})=>n===r?r:0n+(e-t)/(s-t)*(r-n),C=(e,{duration:t,startTime:n,values:s})=>((e,t)=>{const n=Math.floor(t),s=Math.ceil(t);return n===s?e[n]:(1-(t-n))*e[n]+(1-(s-t))*e[s]})(s,(e-n)/t*(s.length-1)),k=e=>"setTarget"===e.type;class S{constructor(e){this._automationEvents=[],this._currenTime=0,this._defaultValue=e}[Symbol.iterator](){return this._automationEvents[Symbol.iterator]()}add(e){const t=v(e);if(b(e)||w(e)){const n=this._automationEvents.findIndex((n=>w(e)&&m(n)?n.startTime+n.duration>=t:v(n)>=t)),s=this._automationEvents[n];if(-1!==n&&(this._automationEvents=this._automationEvents.slice(0,n)),b(e)){const e=this._automationEvents[this._automationEvents.length-1];if(void 0!==s&&p(s)){if(void 0!==e&&k(e))throw new Error("The internal list is malformed.");const n=void 0===e?s.insertTime:m(e)?e.startTime+e.duration:v(e),r=void 0===e?this._defaultValue:m(e)?e.values[e.values.length-1]:e.value,i=h(s)?x(t,n,r,s):A(t,n,r,s),l=h(s)?a(i,t,this._currenTime):o(i,t,this._currenTime);this._automationEvents.push(l)}if(void 0!==e&&k(e)&&this._automationEvents.push(l(this.getValue(t),t)),void 0!==e&&m(e)&&e.startTime+e.duration>t){const n=t-e.startTime,s=(e.values.length-1)/e.duration,r=Math.max(2,1+Math.ceil(n*s)),i=n/(r-1)*s,a=e.values.slice(0,r);if(i<1)for(let t=1;tv(e)>t)),s=-1===n?this._automationEvents[this._automationEvents.length-1]:this._automationEvents[n-1];if(void 0!==s&&m(s)&&v(s)+s.duration>t)return!1;const r=h(e)?a(e.value,e.endTime,this._currenTime):d(e)?o(e.value,t,this._currenTime):e;if(-1===n)this._automationEvents.push(r);else{if(m(e)&&t+e.duration>v(this._automationEvents[n]))return!1;this._automationEvents.splice(n,0,r)}}return!0}flush(e){const t=this._automationEvents.findIndex((t=>v(t)>e));if(t>1){const e=this._automationEvents.slice(t-1),n=e[0];k(n)&&e.unshift(l(g(this._automationEvents,t-2,n.startTime,this._defaultValue),n.startTime)),this._automationEvents=e}}getValue(e){if(0===this._automationEvents.length)return this._defaultValue;const t=this._automationEvents.findIndex((t=>v(t)>e)),n=this._automationEvents[t],s=(-1===t?this._automationEvents.length:t)-1,r=this._automationEvents[s];if(void 0!==r&&k(r)&&(void 0===n||!p(n)||n.insertTime>e))return c(e,g(this._automationEvents,s-1,r.startTime,this._defaultValue),r);if(void 0!==r&&f(r)&&(void 0===n||!p(n)))return r.value;if(void 0!==r&&m(r)&&(void 0===n||!p(n)||r.startTime+r.duration>e))return eF},B=/^import(?:(?:[\s]+[\w]+|(?:[\s]+[\w]+[\s]*,)?[\s]*\{[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?(?:[\s]*,[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?)*[\s]*}|(?:[\s]+[\w]+[\s]*,)?[\s]*\*[\s]+as[\s]+[\w]+)[\s]+from)?(?:[\s]*)("([^"\\]|\\.)+"|'([^'\\]|\\.)+')(?:[\s]*);?/,L=(e,t)=>{const n=[];let s=e.replace(/^[\s]+/,""),r=s.match(B);for(;null!==r;){const e=r[1].slice(1,-1),i=r[0].replace(/([\s]+)?;?$/,"").replace(e,new URL(e,t).toString());n.push(i),s=s.slice(r[0].length).replace(/^[\s]+/,""),r=s.match(B)}return[n.join(";"),s]},P=e=>{if(void 0!==e&&!Array.isArray(e))throw new TypeError("The parameterDescriptors property of given value for processorCtor is not an array.")},U=e=>{if(!(e=>{try{new new Proxy(e,F)}catch{return!1}return!0})(e))throw new TypeError("The given value for processorCtor should be a constructor.");if(null===e.prototype||"object"!=typeof e.prototype)throw new TypeError("The given value for processorCtor should have a prototype.")},V=(e,t)=>{const n=e.get(t);if(void 0===n)throw new Error("A value with the given key could not be found.");return n},W=(e,t)=>{const n=Array.from(e).filter(t);if(n.length>1)throw Error("More than one element was found.");if(0===n.length)throw Error("No element was found.");const[s]=n;return e.delete(s),s},j=(e,t,n,s)=>{const r=V(e,t),i=W(r,(e=>e[0]===n&&e[1]===s));return 0===r.size&&e.delete(t),i},G=e=>V(O,e),q=e=>{if(_.has(e))throw new Error("The AudioNode is already stored.");_.add(e),G(e).forEach((e=>e(!0)))},H=e=>"port"in e,K=e=>{if(!_.has(e))throw new Error("The AudioNode is not stored.");_.delete(e),G(e).forEach((e=>e(!1)))},$=(e,t)=>{!H(e)&&t.every((e=>0===e.size))&&K(e)},X={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",fftSize:2048,maxDecibels:-30,minDecibels:-100,smoothingTimeConstant:.8},Z=(e,t)=>e.context===t,Y=e=>{try{e.copyToChannel(new Float32Array(1),0,-1)}catch{return!1}return!0},Q=()=>new DOMException("","IndexSizeError"),J=e=>{var t;e.getChannelData=(t=e.getChannelData,n=>{try{return t.call(e,n)}catch(e){if(12===e.code)throw Q();throw e}})},ee={numberOfChannels:1},te=-34028234663852886e22,ne=-te,se=e=>_.has(e),re={buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1},ie=e=>V(E,e),ae=e=>V(T,e),oe=(e,t)=>{const{activeInputs:n}=ie(e);n.forEach((n=>n.forEach((([n])=>{t.includes(e)||oe(n,[...t,e])}))));const s=(e=>"playbackRate"in e)(e)?[e.playbackRate]:H(e)?Array.from(e.parameters.values()):(e=>"frequency"in e&&"gain"in e)(e)?[e.Q,e.detune,e.frequency,e.gain]:(e=>"offset"in e)(e)?[e.offset]:(e=>!("frequency"in e)&&"gain"in e)(e)?[e.gain]:(e=>"detune"in e&&"frequency"in e)(e)?[e.detune,e.frequency]:(e=>"pan"in e)(e)?[e.pan]:[];for(const e of s){const n=ae(e);void 0!==n&&n.activeInputs.forEach((([e])=>oe(e,t)))}se(e)&&K(e)},le=e=>{oe(e.destination,[])},ue=e=>void 0===e||"number"==typeof e||"string"==typeof e&&("balanced"===e||"interactive"===e||"playback"===e),ce=e=>"context"in e,he=e=>ce(e[0]),de=(e,t,n,s)=>{for(const t of e)if(n(t)){if(s)return!1;throw Error("The set contains at least one similar element.")}return e.add(t),!0},pe=(e,t,[n,s],r)=>{de(e,[t,n,s],(e=>e[0]===t&&e[1]===n),r)},fe=(e,[t,n,s],r)=>{const i=e.get(t);void 0===i?e.set(t,new Set([[n,s]])):de(i,[n,s],(e=>e[0]===n),r)},me=e=>"inputs"in e,ge=(e,t,n,s)=>{if(me(t)){const r=t.inputs[s];return e.connect(r,n,0),[r,n,0]}return e.connect(t,n,s),[t,n,s]},ye=(e,t,n)=>{for(const s of e)if(s[0]===t&&s[1]===n)return e.delete(s),s;return null},be=(e,t)=>{if(!G(e).delete(t))throw new Error("Missing the expected event listener.")},we=(e,t,n)=>{const s=V(e,t),r=W(s,(e=>e[0]===n));return 0===s.size&&e.delete(t),r},ve=(e,t,n,s)=>{me(t)?e.disconnect(t.inputs[s],n,0):e.disconnect(t,n,s)},xe=e=>V(I,e),Ae=e=>V(N,e),Ce=e=>D.has(e),ke=e=>!_.has(e),Se=(e,t)=>new Promise((n=>{if(null!==t)n(!0);else{const t=e.createScriptProcessor(256,1,1),s=e.createGain(),r=e.createBuffer(1,2,44100),i=r.getChannelData(0);i[0]=1,i[1]=1;const a=e.createBufferSource();a.buffer=r,a.loop=!0,a.connect(t).connect(e.destination),a.connect(s),a.disconnect(s),t.onaudioprocess=s=>{const r=s.inputBuffer.getChannelData(0);Array.prototype.some.call(r,(e=>1===e))?n(!0):n(!1),a.stop(),t.onaudioprocess=null,a.disconnect(t),t.disconnect(e.destination)},a.start()}})),_e=(e,t)=>{const n=new Map;for(const t of e)for(const e of t){const t=n.get(e);n.set(e,void 0===t?1:t+1)}n.forEach(((e,n)=>t(n,e)))},Ee=e=>"context"in e,Ie=e=>{const t=new Map;e.connect=(e=>(n,s=0,r=0)=>{const i=Ee(n)?e(n,s,r):e(n,s),a=t.get(n);return void 0===a?t.set(n,[{input:r,output:s}]):a.every((e=>e.input!==r||e.output!==s))&&a.push({input:r,output:s}),i})(e.connect.bind(e)),e.disconnect=(n=>(s,r,i)=>{if(n.apply(e),void 0===s)t.clear();else if("number"==typeof s)for(const[e,n]of t){const r=n.filter((e=>e.output!==s));0===r.length?t.delete(e):t.set(e,r)}else if(t.has(s))if(void 0===r)t.delete(s);else{const e=t.get(s);if(void 0!==e){const n=e.filter((e=>e.output!==r&&(e.input!==i||void 0===i)));0===n.length?t.delete(s):t.set(s,n)}}for(const[n,s]of t)s.forEach((t=>{Ee(n)?e.connect(n,t.output,t.input):e.connect(n,t.output)}))})(e.disconnect)},Te=(e,t,n,s)=>{const{activeInputs:r,passiveInputs:i}=ae(t),{outputs:a}=ie(e),o=G(e),l=a=>{const o=xe(e),l=Ae(t);if(a){const t=we(i,e,n);pe(r,e,t,!1),s||Ce(e)||o.connect(l,n)}else{const t=((e,t,n)=>W(e,(e=>e[0]===t&&e[1]===n)))(r,e,n);fe(i,t,!1),s||Ce(e)||o.disconnect(l,n)}};return!!de(a,[t,n],(e=>e[0]===t&&e[1]===n),!0)&&(o.add(l),se(e)?pe(r,e,[n,l],!0):fe(i,[e,n,l],!0),!0)},Ne=(e,t,n,s,r)=>{const[i,a]=((e,t,n,s)=>{const{activeInputs:r,passiveInputs:i}=ie(t),a=ye(r[s],e,n);if(null===a)return[j(i,e,n,s)[2],!1];return[a[2],!0]})(e,n,s,r);if(null!==i&&(be(e,i),!a||t||Ce(e)||ve(xe(e),xe(n),s,r)),se(n)){const{activeInputs:e}=ie(n);$(n,e)}},Re=(e,t,n,s)=>{const[r,i]=((e,t,n)=>{const{activeInputs:s,passiveInputs:r}=ae(t),i=ye(s,e,n);if(null===i)return[we(r,e,n)[1],!1];return[i[2],!0]})(e,n,s);null!==r&&(be(e,r),!i||t||Ce(e)||xe(e).disconnect(Ae(n),s))};class Oe{constructor(e){this._map=new Map(e)}get size(){return this._map.size}entries(){return this._map.entries()}forEach(e,t=null){return this._map.forEach(((n,s)=>e.call(t,n,s,this)))}get(e){return this._map.get(e)}has(e){return this._map.has(e)}keys(){return this._map.keys()}values(){return this._map.values()}}const De={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:1,numberOfOutputs:1,parameterData:{},processorOptions:{}};function Me(e,t,n,s,r){if("function"==typeof e.copyFromChannel)0===t[n].byteLength&&(t[n]=new Float32Array(128)),e.copyFromChannel(t[n],s,r);else{const i=e.getChannelData(s);if(0===t[n].byteLength)t[n]=i.slice(r,r+128);else{const e=new Float32Array(i.buffer,r*Float32Array.BYTES_PER_ELEMENT,128);t[n].set(e)}}}const ze=(e,t,n,s,r)=>{"function"==typeof e.copyToChannel?0!==t[n].byteLength&&e.copyToChannel(t[n],s,r):0!==t[n].byteLength&&e.getChannelData(s).set(t[n],r)},Fe=(e,t)=>{const n=[];for(let s=0;s{const o=null===t?128*Math.ceil(e.context.length/128):t.length,l=s.channelCount*s.numberOfInputs,u=r.reduce(((e,t)=>e+t),0),c=0===u?null:n.createBuffer(u,o,n.sampleRate);if(void 0===i)throw new Error("Missing the processor constructor.");const h=ie(e),d=await((e,t)=>{const n=V(z,e),s=xe(t);return V(n,s)})(n,e),p=Fe(s.numberOfInputs,s.channelCount),f=Fe(s.numberOfOutputs,r),m=Array.from(e.parameters.keys()).reduce(((e,t)=>({...e,[t]:new Float32Array(128)})),{});for(let u=0;u0&&null!==t)for(let e=0;e{Me(t,m,e,l+n,u)}));for(let e=0;e0===h.activeInputs[t].size?[]:e)),t=a(u/n.sampleRate,n.sampleRate,(()=>d.process(e,f,m)));if(null!==c)for(let e=0,t=0;e{const{port1:t,port2:n}=new MessageChannel;return new Promise((s=>{const r=()=>{n.onmessage=null,t.close(),n.close(),s()};n.onmessage=()=>r();try{t.postMessage(e,[e])}catch{}finally{r()}}))},Ge={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",delayTime:0,maxDelayTime:1},qe=(e,t,n)=>{const s=t[n];if(void 0===s)throw e();return s},He={attack:.003,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",knee:30,ratio:12,release:.25,threshold:-24},Ke={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",gain:1},$e=()=>new DOMException("","InvalidStateError"),Xe=()=>new DOMException("","InvalidAccessError"),Ze={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers"},Ye=(e,t,n,s,r,i,a,o,l,u,c)=>{const h=u.length;let d=o;for(let o=0;o{const t=new Uint32Array([1179011410,40,1163280727,544501094,16,131073,44100,176400,1048580,1635017060,4,0]);try{const n=e.decodeAudioData(t.buffer,(()=>{}));return void 0!==n&&(n.catch((()=>{})),!0)}catch{}return!1},et={numberOfChannels:1},tt=(e,t,n)=>{const s=t[n];void 0!==s&&s!==e[n]&&(e[n]=s)},nt=(e,t)=>{tt(e,t,"channelCount"),tt(e,t,"channelCountMode"),tt(e,t,"channelInterpretation")},st=e=>"function"==typeof e.getFloatTimeDomainData,rt=(e,t,n)=>{const s=t[n];void 0!==s&&s!==e[n].value&&(e[n].value=s)},it=e=>{e.start=(t=>(n=0,s=0,r)=>{if("number"==typeof r&&r<0||s<0||n<0)throw new RangeError("The parameters can't be negative.");t.call(e,n,s,r)})(e.start)},at=e=>{var t;e.stop=(t=e.stop,(n=0)=>{if(n<0)throw new RangeError("The parameter can't be negative.");t.call(e,n)})},ot=(e,t)=>null===e?512:Math.max(512,Math.min(16384,Math.pow(2,Math.round(Math.log2(e*t))))),lt=async(e,t)=>{const n=await(e=>new Promise(((t,n)=>{const{port1:s,port2:r}=new MessageChannel;s.onmessage=({data:e})=>{s.close(),r.close(),t(e)},s.onmessageerror=({data:e})=>{s.close(),r.close(),n(e)},r.postMessage(e)})))(t);return new e(n)},ut=(e,t)=>{const n=e.createBiquadFilter();return nt(n,t),rt(n,t,"Q"),rt(n,t,"detune"),rt(n,t,"frequency"),rt(n,t,"gain"),tt(n,t,"type"),n},ct=(e,t)=>{const n=e.createChannelSplitter(t.numberOfOutputs);return nt(n,t),(e=>{const t=e.numberOfOutputs;Object.defineProperty(e,"channelCount",{get:()=>t,set:e=>{if(e!==t)throw $e()}}),Object.defineProperty(e,"channelCountMode",{get:()=>"explicit",set:e=>{if("explicit"!==e)throw $e()}}),Object.defineProperty(e,"channelInterpretation",{get:()=>"discrete",set:e=>{if("discrete"!==e)throw $e()}})})(n),n},ht=(e,t)=>(e.connect=t.connect.bind(t),e.disconnect=t.disconnect.bind(t),e),dt=(e,t)=>{const n=e.createDelay(t.maxDelayTime);return nt(n,t),rt(n,t,"delayTime"),n},pt=(e,t)=>{const n=e.createGain();return nt(n,t),rt(n,t,"gain"),n};function ft(e,t){const n=t[0]*t[0]+t[1]*t[1];return[(e[0]*t[0]+e[1]*t[1])/n,(e[1]*t[0]-e[0]*t[1])/n]}function mt(e,t){let n=[0,0];for(let i=e.length-1;i>=0;i-=1)r=t,n=[(s=n)[0]*r[0]-s[1]*r[1],s[0]*r[1]+s[1]*r[0]],n[0]+=e[i];var s,r;return n}const gt=(e,t,n,s)=>e.createScriptProcessor(t,n,s),yt=()=>new DOMException("","NotSupportedError"),bt={numberOfChannels:1},wt={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:440,periodicWave:void 0,type:"sine"},vt={channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:1,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1},xt={disableNormalization:!1},At={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",pan:0},Ct=()=>new DOMException("","UnknownError"),kt={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",curve:null,oversample:"none"},St=(e,t,n)=>void 0===e.copyFromChannel?e.getChannelData(n)[0]:(e.copyFromChannel(t,n),t[0]),_t=e=>{if(null===e)return!1;const t=e.length;return t%2!=0?0!==e[Math.floor(t/2)]:e[t/2-1]+e[t/2]!==0},Et=(e,t,n,s)=>{let r=e;for(;!r.hasOwnProperty(t);)r=Object.getPrototypeOf(r);const{get:i,set:a}=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,{get:n(i),set:s(a)})},It=(e,t,n)=>{try{e.setValueAtTime(t,n)}catch(s){if(9!==s.code)throw s;It(e,t,n+1e-7)}},Tt=e=>{const t=e.createOscillator();try{t.start(-1)}catch(e){return e instanceof RangeError}return!1},Nt=e=>{const t=e.createBuffer(1,1,44100),n=e.createBufferSource();n.buffer=t,n.start(),n.stop();try{return n.stop(),!0}catch{return!1}},Rt=e=>{const t=e.createOscillator();try{t.stop(-1)}catch(e){return e instanceof RangeError}return!1},Ot=()=>{try{new DOMException}catch{return!1}return!0},Dt=()=>new Promise((e=>{const t=new ArrayBuffer(0),{port1:n,port2:s}=new MessageChannel;n.onmessage=({data:t})=>e(null!==t),s.postMessage(t,[t])})),Mt=(e,t)=>{const n=t.createGain();e.connect(n);const s=(t=>()=>{t.call(e,n),e.removeEventListener("ended",s)})(e.disconnect);e.addEventListener("ended",s),ht(e,n),e.stop=(t=>{let s=!1;return(r=0)=>{if(s)try{t.call(e,r)}catch{n.gain.setValueAtTime(0,r)}else t.call(e,r),s=!0}})(e.stop)},zt=(e,t)=>n=>{const s={value:e};return Object.defineProperties(n,{currentTarget:s,target:s}),"function"==typeof t?t.call(e,n):t.handleEvent.call(e,n)},Ft=(e=>(t,n,[s,r,i],a)=>{e(t[r],[n,s,i],(e=>e[0]===n&&e[1]===s),a)})(de),Bt=(e=>(t,n,[s,r,i],a)=>{const o=t.get(s);void 0===o?t.set(s,new Set([[r,n,i]])):e(o,[r,n,i],(e=>e[0]===r&&e[1]===n),a)})(de),Lt=(e=>(t,n,s,r)=>e(t[r],(e=>e[0]===n&&e[1]===s)))(W),Pt=new WeakMap,Ut=(e=>t=>{var n;return null!==(n=e.get(t))&&void 0!==n?n:0})(Pt),Vt=(Wt=new Map,jt=new WeakMap,(e,t)=>{const n=jt.get(e);if(void 0!==n)return n;const s=Wt.get(e);if(void 0!==s)return s;try{const n=t();return n instanceof Promise?(Wt.set(e,n),n.catch((()=>!1)).then((t=>(Wt.delete(e),jt.set(e,t),t)))):(jt.set(e,n),n)}catch{return jt.set(e,!1),!1}});var Wt,jt;const Gt="undefined"==typeof window?null:window,qt=((e,t)=>(n,s)=>{const r=n.createAnalyser();if(nt(r,s),!(s.maxDecibels>s.minDecibels))throw t();return tt(r,s,"fftSize"),tt(r,s,"maxDecibels"),tt(r,s,"minDecibels"),tt(r,s,"smoothingTimeConstant"),e(st,(()=>st(r)))||(e=>{e.getFloatTimeDomainData=t=>{const n=new Uint8Array(t.length);e.getByteTimeDomainData(n);const s=Math.max(n.length,e.fftSize);for(let e=0;et=>{const n=e(t);if(null===n.renderer)throw new Error("Missing the renderer of the given AudioNode in the audio graph.");return n.renderer})(ie),Kt=((e,t,n)=>async(s,r,i)=>{const a=e(s);await Promise.all(a.activeInputs.map(((e,a)=>Array.from(e).map((async([e,o])=>{const l=t(e),u=await l.render(e,r),c=s.context.destination;n(e)||s===c&&n(s)||u.connect(i,o,a)})))).reduce(((e,t)=>[...e,...t]),[]))})(ie,Ht,Ce),$t=((e,t,n)=>()=>{const s=new WeakMap;return{render(r,i){const a=s.get(i);return void 0!==a?Promise.resolve(a):(async(r,i)=>{let a=t(r);if(!Z(a,i)){const t={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,fftSize:a.fftSize,maxDecibels:a.maxDecibels,minDecibels:a.minDecibels,smoothingTimeConstant:a.smoothingTimeConstant};a=e(i,t)}return s.set(i,a),await n(r,i,a),a})(r,i)}}})(qt,xe,Kt),Xt=(Zt=R,e=>{const t=Zt.get(e);if(void 0===t)throw $e();return t});var Zt;const Yt=(e=>null===e?null:e.hasOwnProperty("OfflineAudioContext")?e.OfflineAudioContext:e.hasOwnProperty("webkitOfflineAudioContext")?e.webkitOfflineAudioContext:null)(Gt),Qt=(e=>t=>null!==e&&t instanceof e)(Yt),Jt=new WeakMap,en=(e=>class{constructor(e){this._nativeEventTarget=e,this._listeners=new WeakMap}addEventListener(t,n,s){if(null!==n){let r=this._listeners.get(n);void 0===r&&(r=e(this,n),"function"==typeof n&&this._listeners.set(n,r)),this._nativeEventTarget.addEventListener(t,r,s)}}dispatchEvent(e){return this._nativeEventTarget.dispatchEvent(e)}removeEventListener(e,t,n){const s=null===t?void 0:this._listeners.get(t);this._nativeEventTarget.removeEventListener(e,void 0===s?null:s,n)}})(zt),tn=(e=>null===e?null:e.hasOwnProperty("AudioContext")?e.AudioContext:e.hasOwnProperty("webkitAudioContext")?e.webkitAudioContext:null)(Gt),nn=(e=>t=>null!==e&&t instanceof e)(tn),sn=(e=>t=>null!==e&&"function"==typeof e.AudioNode&&t instanceof e.AudioNode)(Gt),rn=(e=>t=>null!==e&&"function"==typeof e.AudioParam&&t instanceof e.AudioParam)(Gt),an=(e=>null===e?null:e.hasOwnProperty("AudioWorkletNode")?e.AudioWorkletNode:null)(Gt),on=((e,t,n,s,r,i,a,o,l,u,c,h,d,p,f,m)=>class extends u{constructor(t,s,r,i){super(r),this._context=t,this._nativeAudioNode=r;const a=c(t);h(a)&&!0!==n(Se,(()=>Se(a,m)))&&Ie(r),I.set(this,r),O.set(this,new Set),"closed"!==t.state&&s&&q(this),e(this,i,r)}get channelCount(){return this._nativeAudioNode.channelCount}set channelCount(e){this._nativeAudioNode.channelCount=e}get channelCountMode(){return this._nativeAudioNode.channelCountMode}set channelCountMode(e){this._nativeAudioNode.channelCountMode=e}get channelInterpretation(){return this._nativeAudioNode.channelInterpretation}set channelInterpretation(e){this._nativeAudioNode.channelInterpretation=e}get context(){return this._context}get numberOfInputs(){return this._nativeAudioNode.numberOfInputs}get numberOfOutputs(){return this._nativeAudioNode.numberOfOutputs}connect(e,n=0,o=0){if(n<0||n>=this._nativeAudioNode.numberOfOutputs)throw r();const u=c(this._context),h=f(u);if(d(e)||p(e))throw i();if(ce(e)){const r=xe(e);try{const t=ge(this._nativeAudioNode,r,n,o),s=ke(this);(h||s)&&this._nativeAudioNode.disconnect(...t),"closed"!==this.context.state&&!s&&ke(e)&&q(e)}catch(e){if(12===e.code)throw i();throw e}if(t(this,e,n,o,h)){const t=l([this],e);_e(t,s(h))}return e}const m=Ae(e);if("playbackRate"===m.name&&1024===m.maxValue)throw a();try{this._nativeAudioNode.connect(m,n),(h||ke(this))&&this._nativeAudioNode.disconnect(m,n)}catch(e){if(12===e.code)throw i();throw e}if(Te(this,e,n,h)){const t=l([this],e);_e(t,s(h))}}disconnect(e,t,n){let s;const a=c(this._context),u=f(a);if(void 0===e)s=((e,t)=>{const n=ie(e),s=[];for(const r of n.outputs)he(r)?Ne(e,t,...r):Re(e,t,...r),s.push(r[0]);return n.outputs.clear(),s})(this,u);else if("number"==typeof e){if(e<0||e>=this.numberOfOutputs)throw r();s=((e,t,n)=>{const s=ie(e),r=[];for(const i of s.outputs)i[1]===n&&(he(i)?Ne(e,t,...i):Re(e,t,...i),r.push(i[0]),s.outputs.delete(i));return r})(this,u,e)}else{if(void 0!==t&&(t<0||t>=this.numberOfOutputs))throw r();if(ce(e)&&void 0!==n&&(n<0||n>=e.numberOfInputs))throw r();if(s=((e,t,n,s,r)=>{const i=ie(e);return Array.from(i.outputs).filter((e=>!(e[0]!==n||void 0!==s&&e[1]!==s||void 0!==r&&e[2]!==r))).map((n=>(he(n)?Ne(e,t,...n):Re(e,t,...n),i.outputs.delete(n),n[0])))})(this,u,e,t,n),0===s.length)throw i()}for(const e of s){const t=l([this],e);_e(t,o)}}})((ln=E,(e,t,n)=>{const s=[];for(let e=0;e{const p=new WeakMap;return(f,m,g,y,b)=>{const{activeInputs:w,passiveInputs:v}=i(m),{outputs:x}=i(f),A=o(f),C=i=>{const o=l(m),u=l(f);if(i){const t=j(v,f,g,y);e(w,f,t,!1),b||h(f)||n(u,o,g,y),d(m)&&q(m)}else{const e=s(w,f,g,y);t(v,y,e,!1),b||h(f)||r(u,o,g,y);const n=a(m);if(0===n)c(m)&&$(m,w);else{const e=p.get(m);void 0!==e&&clearTimeout(e),p.set(m,setTimeout((()=>{c(m)&&$(m,w)}),1e3*n))}}};return!!u(x,[m,g,y],(e=>e[0]===m&&e[1]===g&&e[2]===y),!0)&&(A.add(C),c(f)?e(w,f,[g,y,C],!0):t(v,y,[f,g,C],!0),!0)}})(Ft,Bt,ge,Lt,ve,ie,Ut,G,xe,de,se,Ce,ke),Vt,((e,t,n,s,r,i)=>a=>(o,l)=>{const u=e.get(o);if(void 0===u){if(!a&&i(o)){const e=s(o),{outputs:i}=n(o);for(const n of i)if(he(n)){const r=s(n[0]);t(e,r,n[1],n[2])}else{const t=r(n[0]);e.disconnect(t,n[1])}}e.set(o,l)}else e.set(o,u+l)})(D,ve,ie,xe,Ae,se),Q,Xe,yt,((e,t,n,s,r,i,a,o)=>(l,u)=>{const c=t.get(l);if(void 0===c)throw new Error("Missing the expected cycle count.");const h=i(l.context),d=o(h);if(c===u){if(t.delete(l),!d&&a(l)){const t=s(l),{outputs:i}=n(l);for(const n of i)if(he(n)){const r=s(n[0]);e(t,r,n[1],n[2])}else{const e=r(n[0]);t.connect(e,n[1])}}}else t.set(l,c-u)})(ge,D,ie,xe,Ae,Xt,se,Qt),((e,t,n)=>function s(r,i){const a=ce(i)?i:n(e,i);if((e=>"delayTime"in e)(a))return[];if(r[0]===a)return[r];if(r.includes(a))return[];const{outputs:o}=t(a);return Array.from(o).map((e=>s([...r,a],e[0]))).reduce(((e,t)=>e.concat(t)),[])})(Jt,ie,V),en,Xt,nn,sn,rn,Qt,an);var ln;const un=((e,t,n,s,r,i)=>class extends e{constructor(e,n){const a=r(e),o={...X,...n},l=s(a,o);super(e,!1,l,i(a)?t():null),this._nativeAnalyserNode=l}get fftSize(){return this._nativeAnalyserNode.fftSize}set fftSize(e){this._nativeAnalyserNode.fftSize=e}get frequencyBinCount(){return this._nativeAnalyserNode.frequencyBinCount}get maxDecibels(){return this._nativeAnalyserNode.maxDecibels}set maxDecibels(e){const t=this._nativeAnalyserNode.maxDecibels;if(this._nativeAnalyserNode.maxDecibels=e,!(e>this._nativeAnalyserNode.minDecibels))throw this._nativeAnalyserNode.maxDecibels=t,n()}get minDecibels(){return this._nativeAnalyserNode.minDecibels}set minDecibels(e){const t=this._nativeAnalyserNode.minDecibels;if(this._nativeAnalyserNode.minDecibels=e,!(this._nativeAnalyserNode.maxDecibels>e))throw this._nativeAnalyserNode.minDecibels=t,n()}get smoothingTimeConstant(){return this._nativeAnalyserNode.smoothingTimeConstant}set smoothingTimeConstant(e){this._nativeAnalyserNode.smoothingTimeConstant=e}getByteFrequencyData(e){this._nativeAnalyserNode.getByteFrequencyData(e)}getByteTimeDomainData(e){this._nativeAnalyserNode.getByteTimeDomainData(e)}getFloatFrequencyData(e){this._nativeAnalyserNode.getFloatFrequencyData(e)}getFloatTimeDomainData(e){this._nativeAnalyserNode.getFloatTimeDomainData(e)}})(on,$t,Q,qt,Xt,Qt),cn=new WeakSet,hn=(e=>null===e?null:e.hasOwnProperty("AudioBuffer")?e.AudioBuffer:null)(Gt),dn=(pn=new Uint32Array(1),e=>(pn[0]=e,pn[0]));var pn;const fn=((e,t)=>n=>{n.copyFromChannel=(s,r,i=0)=>{const a=e(i),o=e(r);if(o>=n.numberOfChannels)throw t();const l=n.length,u=n.getChannelData(o),c=s.length;for(let e=a<0?-a:0;e+a{const a=e(i),o=e(r);if(o>=n.numberOfChannels)throw t();const l=n.length,u=n.getChannelData(o),c=s.length;for(let e=a<0?-a:0;e+at=>{t.copyFromChannel=(n=>(s,r,i=0)=>{const a=e(i),o=e(r);if(a(s,r,i=0)=>{const a=e(i),o=e(r);if(a{let l=null;return class u{constructor(u){if(null===r)throw new Error("Missing the native OfflineAudioContext constructor.");const{length:c,numberOfChannels:h,sampleRate:d}={...ee,...u};null===l&&(l=new r(1,1,44100));const p=null!==s&&t(i,i)?new s({length:c,numberOfChannels:h,sampleRate:d}):l.createBuffer(h,c,d);if(0===p.numberOfChannels)throw n();return"function"!=typeof p.copyFromChannel?(a(p),J(p)):t(Y,(()=>Y(p)))||o(p),e.add(p),p}static[Symbol.hasInstance](t){return null!==t&&"object"==typeof t&&Object.getPrototypeOf(t)===u.prototype||e.has(t)}}})(cn,Vt,yt,hn,Yt,(e=>()=>{if(null===e)return!1;try{new e({length:1,sampleRate:44100})}catch{return!1}return!0})(hn),fn,mn),yn=(e=>(t,n)=>{const s=e(t,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});n.connect(s).connect(t.destination);const r=()=>{n.removeEventListener("ended",r),n.disconnect(s),s.disconnect()};n.addEventListener("ended",r)})(pt),bn=((e,t,n)=>async(s,r,i)=>{const a=t(s);await Promise.all(Array.from(a.activeInputs).map((async([t,s])=>{const a=e(t),o=await a.render(t,r);n(t)||o.connect(i,s)})))})(Ht,ae,Ce),wn=(e=>(t,n,s)=>e(n,t,s))(bn),vn=((e,t,n,s,r,i,a,o,l,u,c)=>(h,d)=>{const p=h.createBufferSource();return nt(p,d),rt(p,d,"playbackRate"),tt(p,d,"buffer"),tt(p,d,"loop"),tt(p,d,"loopEnd"),tt(p,d,"loopStart"),t(n,(()=>n(h)))||(e=>{e.start=(t=>{let n=!1;return(s=0,r=0,i)=>{if(n)throw $e();t.call(e,s,r,i),n=!0}})(e.start)})(p),t(s,(()=>s(h)))||l(p),t(r,(()=>r(h)))||u(p,h),t(i,(()=>i(h)))||it(p),t(a,(()=>a(h)))||c(p,h),t(o,(()=>o(h)))||at(p),e(h,p),p})(yn,Vt,(e=>{const t=e.createBufferSource();t.start();try{t.start()}catch{return!0}return!1}),(e=>{const t=e.createBufferSource(),n=e.createBuffer(1,1,44100);t.buffer=n;try{t.start(0,1)}catch{return!1}return!0}),(e=>{const t=e.createBufferSource();t.start();try{t.stop()}catch{return!1}return!0}),Tt,Nt,Rt,(e=>{e.start=(t=>(n=0,s=0,r)=>{const i=e.buffer,a=null===i?s:Math.min(i.duration,s);null!==i&&a>i.duration-.5/e.context.sampleRate?t.call(e,n,0,0):t.call(e,n,a,r)})(e.start)}),(e=>(t,n)=>{const s=n.createBuffer(1,1,44100);null===t.buffer&&(t.buffer=s),e(t,"buffer",(e=>()=>{const n=e.call(t);return n===s?null:n}),(e=>n=>e.call(t,null===n?s:n)))})(Et),Mt),xn=((e,t)=>(n,s,r)=>(e(s).replay(r),t(s,n,r)))((e=>t=>{const n=e(t);if(null===n.renderer)throw new Error("Missing the renderer of the given AudioParam in the audio graph.");return n.renderer})(ae),bn),An=((e,t,n,s,r)=>()=>{const i=new WeakMap;let a=null,o=null;return{set start(e){a=e},set stop(e){o=e},render(l,u){const c=i.get(u);return void 0!==c?Promise.resolve(c):(async(l,u)=>{let c=n(l);const h=Z(c,u);if(!h){const e={buffer:c.buffer,channelCount:c.channelCount,channelCountMode:c.channelCountMode,channelInterpretation:c.channelInterpretation,loop:c.loop,loopEnd:c.loopEnd,loopStart:c.loopStart,playbackRate:c.playbackRate.value};c=t(u,e),null!==a&&c.start(...a),null!==o&&c.stop(o)}return i.set(u,c),h?await e(u,l.playbackRate,c.playbackRate):await s(u,l.playbackRate,c.playbackRate),await r(l,u,c),c})(l,u)}}})(wn,vn,xe,xn,Kt),Cn=((e,t,n,s,r,i,a,o,l,u,c,h,d)=>(p,f,m,g=null,y=null)=>{const b=m.value,w=new S(b),v=f?s(w):null,x={get defaultValue(){return b},get maxValue(){return null===g?m.maxValue:g},get minValue(){return null===y?m.minValue:y},get value(){return m.value},set value(e){m.value=e,x.setValueAtTime(e,p.context.currentTime)},cancelAndHoldAtTime(e){if("function"==typeof m.cancelAndHoldAtTime)null===v&&w.flush(p.context.currentTime),w.add(r(e)),m.cancelAndHoldAtTime(e);else{const t=Array.from(w).pop();null===v&&w.flush(p.context.currentTime),w.add(r(e));const n=Array.from(w).pop();m.cancelScheduledValues(e),t!==n&&void 0!==n&&("exponentialRampToValue"===n.type?m.exponentialRampToValueAtTime(n.value,n.endTime):"linearRampToValue"===n.type?m.linearRampToValueAtTime(n.value,n.endTime):"setValue"===n.type?m.setValueAtTime(n.value,n.startTime):"setValueCurve"===n.type&&m.setValueCurveAtTime(n.values,n.startTime,n.duration))}return x},cancelScheduledValues:e=>(null===v&&w.flush(p.context.currentTime),w.add(i(e)),m.cancelScheduledValues(e),x),exponentialRampToValueAtTime(e,t){if(0===e)throw new RangeError;if(!Number.isFinite(t)||t<0)throw new RangeError;const n=p.context.currentTime;return null===v&&w.flush(n),0===Array.from(w).length&&(w.add(u(b,n)),m.setValueAtTime(b,n)),w.add(a(e,t)),m.exponentialRampToValueAtTime(e,t),x},linearRampToValueAtTime(e,t){const n=p.context.currentTime;return null===v&&w.flush(n),0===Array.from(w).length&&(w.add(u(b,n)),m.setValueAtTime(b,n)),w.add(o(e,t)),m.linearRampToValueAtTime(e,t),x},setTargetAtTime:(e,t,n)=>(null===v&&w.flush(p.context.currentTime),w.add(l(e,t,n)),m.setTargetAtTime(e,t,n),x),setValueAtTime:(e,t)=>(null===v&&w.flush(p.context.currentTime),w.add(u(e,t)),m.setValueAtTime(e,t),x),setValueCurveAtTime(e,t,n){const s=e instanceof Float32Array?e:new Float32Array(e);if(null!==h&&"webkitAudioContext"===h.name){const e=t+n,r=p.context.sampleRate,i=Math.ceil(t*r),a=Math.floor(e*r),o=a-i,l=new Float32Array(o);for(let e=0;e{kn.set(e,{activeInputs:new Set,passiveInputs:new WeakMap,renderer:t})}),Jt,N,(e=>({replay(t){for(const n of e)if("exponentialRampToValue"===n.type){const{endTime:e,value:s}=n;t.exponentialRampToValueAtTime(s,e)}else if("linearRampToValue"===n.type){const{endTime:e,value:s}=n;t.linearRampToValueAtTime(s,e)}else if("setTarget"===n.type){const{startTime:e,target:s,timeConstant:r}=n;t.setTargetAtTime(s,e,r)}else if("setValue"===n.type){const{startTime:e,value:s}=n;t.setValueAtTime(s,e)}else{if("setValueCurve"!==n.type)throw new Error("Can't apply an unknown automation.");{const{duration:e,startTime:s,values:r}=n;t.setValueCurveAtTime(r,s,e)}}}})),(e=>({cancelTime:e,type:"cancelAndHold"})),(e=>({cancelTime:e,type:"cancelScheduledValues"})),((e,t)=>({endTime:t,type:"exponentialRampToValue",value:e})),((e,t)=>({endTime:t,type:"linearRampToValue",value:e})),((e,t,n)=>({startTime:t,target:e,timeConstant:n,type:"setTarget"})),l,u,tn,It);var kn;const Sn=((e,t,n,s,r,i,a,o)=>class extends e{constructor(e,s){const o=i(e),l={...re,...s},u=r(o,l),c=a(o),h=c?t():null;super(e,!1,u,h),this._audioBufferSourceNodeRenderer=h,this._isBufferNullified=!1,this._isBufferSet=null!==l.buffer,this._nativeAudioBufferSourceNode=u,this._onended=null,this._playbackRate=n(this,c,u.playbackRate,ne,te)}get buffer(){return this._isBufferNullified?null:this._nativeAudioBufferSourceNode.buffer}set buffer(e){if(this._nativeAudioBufferSourceNode.buffer=e,null!==e){if(this._isBufferSet)throw s();this._isBufferSet=!0}}get loop(){return this._nativeAudioBufferSourceNode.loop}set loop(e){this._nativeAudioBufferSourceNode.loop=e}get loopEnd(){return this._nativeAudioBufferSourceNode.loopEnd}set loopEnd(e){this._nativeAudioBufferSourceNode.loopEnd=e}get loopStart(){return this._nativeAudioBufferSourceNode.loopStart}set loopStart(e){this._nativeAudioBufferSourceNode.loopStart=e}get onended(){return this._onended}set onended(e){const t="function"==typeof e?o(this,e):null;this._nativeAudioBufferSourceNode.onended=t;const n=this._nativeAudioBufferSourceNode.onended;this._onended=null!==n&&n===t?e:n}get playbackRate(){return this._playbackRate}start(e=0,t=0,n){if(this._nativeAudioBufferSourceNode.start(e,t,n),null!==this._audioBufferSourceNodeRenderer&&(this._audioBufferSourceNodeRenderer.start=void 0===n?[e,t]:[e,t,n]),"closed"!==this.context.state){q(this);const e=()=>{this._nativeAudioBufferSourceNode.removeEventListener("ended",e),se(this)&&K(this)};this._nativeAudioBufferSourceNode.addEventListener("ended",e)}}stop(e=0){this._nativeAudioBufferSourceNode.stop(e),null!==this._audioBufferSourceNodeRenderer&&(this._audioBufferSourceNodeRenderer.stop=e)}})(on,An,Cn,$e,vn,Xt,Qt,zt),_n=((e,t,n,s,r,i,a,o)=>class extends e{constructor(e,n){const s=i(e),l=a(s),u=r(s,n,l);super(e,!1,u,l?t(o):null),this._isNodeOfNativeOfflineAudioContext=l,this._nativeAudioDestinationNode=u}get channelCount(){return this._nativeAudioDestinationNode.channelCount}set channelCount(e){if(this._isNodeOfNativeOfflineAudioContext)throw s();if(e>this._nativeAudioDestinationNode.maxChannelCount)throw n();this._nativeAudioDestinationNode.channelCount=e}get channelCountMode(){return this._nativeAudioDestinationNode.channelCountMode}set channelCountMode(e){if(this._isNodeOfNativeOfflineAudioContext)throw s();this._nativeAudioDestinationNode.channelCountMode=e}get maxChannelCount(){return this._nativeAudioDestinationNode.maxChannelCount}})(on,(e=>{const t=new WeakMap;return{render(n,s){const r=t.get(s);return void 0!==r?Promise.resolve(r):(async(n,s)=>{const r=s.destination;return t.set(s,r),await e(n,s,r),r})(n,s)}}}),Q,$e,((e,t)=>(n,s,r)=>{const i=n.destination;if(i.channelCount!==s)try{i.channelCount=s}catch{}r&&"explicit"!==i.channelCountMode&&(i.channelCountMode="explicit"),0===i.maxChannelCount&&Object.defineProperty(i,"maxChannelCount",{value:s});const a=e(n,{channelCount:s,channelCountMode:i.channelCountMode,channelInterpretation:i.channelInterpretation,gain:1});return t(a,"channelCount",(e=>()=>e.call(a)),(e=>t=>{e.call(a,t);try{i.channelCount=t}catch(e){if(t>i.maxChannelCount)throw e}})),t(a,"channelCountMode",(e=>()=>e.call(a)),(e=>t=>{e.call(a,t),i.channelCountMode=t})),t(a,"channelInterpretation",(e=>()=>e.call(a)),(e=>t=>{e.call(a,t),i.channelInterpretation=t})),Object.defineProperty(a,"maxChannelCount",{get:()=>i.maxChannelCount}),a.connect(i),a})(pt,Et),Xt,Qt,Kt),En=((e,t,n,s,r)=>()=>{const i=new WeakMap;return{render(a,o){const l=i.get(o);return void 0!==l?Promise.resolve(l):(async(a,o)=>{let l=n(a);const u=Z(l,o);if(!u){const e={Q:l.Q.value,channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,detune:l.detune.value,frequency:l.frequency.value,gain:l.gain.value,type:l.type};l=t(o,e)}return i.set(o,l),u?(await e(o,a.Q,l.Q),await e(o,a.detune,l.detune),await e(o,a.frequency,l.frequency),await e(o,a.gain,l.gain)):(await s(o,a.Q,l.Q),await s(o,a.detune,l.detune),await s(o,a.frequency,l.frequency),await s(o,a.gain,l.gain)),await r(a,o,l),l})(a,o)}}})(wn,ut,xe,xn,Kt),In=(e=>(t,n)=>e.set(t,n))(Pt),Tn=((e,t,n,s,r,i,a,o)=>class extends e{constructor(e,s){const l=i(e),u={...Le,...s},c=r(l,u),h=a(l);super(e,!1,c,h?n():null),this._Q=t(this,h,c.Q,ne,te),this._detune=t(this,h,c.detune,1200*Math.log2(ne),-1200*Math.log2(ne)),this._frequency=t(this,h,c.frequency,e.sampleRate/2,0),this._gain=t(this,h,c.gain,40*Math.log10(ne),te),this._nativeBiquadFilterNode=c,o(this,1)}get detune(){return this._detune}get frequency(){return this._frequency}get gain(){return this._gain}get Q(){return this._Q}get type(){return this._nativeBiquadFilterNode.type}set type(e){this._nativeBiquadFilterNode.type=e}getFrequencyResponse(e,t,n){try{this._nativeBiquadFilterNode.getFrequencyResponse(e,t,n)}catch(e){if(11===e.code)throw s();throw e}if(e.length!==t.length||t.length!==n.length)throw s()}})(on,Cn,En,Xe,ut,Xt,Qt,In),Nn=((e,t)=>(n,s,r)=>{const i=new Set;return n.connect=(r=>(a,o=0,l=0)=>{const u=0===i.size;if(t(a))return r.call(n,a,o,l),e(i,[a,o,l],(e=>e[0]===a&&e[1]===o&&e[2]===l),!0),u&&s(),a;r.call(n,a,o),e(i,[a,o],(e=>e[0]===a&&e[1]===o),!0),u&&s()})(n.connect),n.disconnect=(e=>(s,a,o)=>{const l=i.size>0;if(void 0===s)e.apply(n),i.clear();else if("number"==typeof s){e.call(n,s);for(const e of i)e[1]===s&&i.delete(e)}else{t(s)?e.call(n,s,a,o):e.call(n,s,a);for(const e of i)e[0]!==s||void 0!==a&&e[1]!==a||void 0!==o&&e[2]!==o||i.delete(e)}const u=0===i.size;l&&u&&r()})(n.disconnect),n})(de,sn),Rn=((e,t)=>(n,s)=>{s.channelCount=1,s.channelCountMode="explicit",Object.defineProperty(s,"channelCount",{get:()=>1,set:()=>{throw e()}}),Object.defineProperty(s,"channelCountMode",{get:()=>"explicit",set:()=>{throw e()}});const r=n.createBufferSource();t(s,(()=>{const e=s.numberOfInputs;for(let t=0;tr.disconnect(s)))})($e,Nn),On=((e,t)=>(n,s)=>{const r=n.createChannelMerger(s.numberOfInputs);return null!==e&&"webkitAudioContext"===e.name&&t(n,r),nt(r,s),r})(tn,Rn),Dn=((e,t,n)=>()=>{const s=new WeakMap;return{render(r,i){const a=s.get(i);return void 0!==a?Promise.resolve(a):(async(r,i)=>{let a=t(r);if(!Z(a,i)){const t={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,numberOfInputs:a.numberOfInputs};a=e(i,t)}return s.set(i,a),await n(r,i,a),a})(r,i)}}})(On,xe,Kt),Mn=((e,t,n,s,r)=>class extends e{constructor(e,i){const a=s(e),o={...Pe,...i};super(e,!1,n(a,o),r(a)?t():null)}})(on,Dn,On,Xt,Qt),zn=((e,t,n)=>()=>{const s=new WeakMap;return{render(r,i){const a=s.get(i);return void 0!==a?Promise.resolve(a):(async(r,i)=>{let a=t(r);if(!Z(a,i)){const t={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,numberOfOutputs:a.numberOfOutputs};a=e(i,t)}return s.set(i,a),await n(r,i,a),a})(r,i)}}})(ct,xe,Kt),Fn=((e,t,n,s,r,i)=>class extends e{constructor(e,a){const o=s(e),l=i({...Ue,...a});super(e,!1,n(o,l),r(o)?t():null)}})(on,zn,ct,Xt,Qt,(e=>({...e,channelCount:e.numberOfOutputs}))),Bn=((e,t,n,s)=>(r,{offset:i,...a})=>{const o=r.createBuffer(1,2,44100),l=t(r,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),u=n(r,{...a,gain:i}),c=o.getChannelData(0);c[0]=1,c[1]=1,l.buffer=o,l.loop=!0;const h={get bufferSize(){},get channelCount(){return u.channelCount},set channelCount(e){u.channelCount=e},get channelCountMode(){return u.channelCountMode},set channelCountMode(e){u.channelCountMode=e},get channelInterpretation(){return u.channelInterpretation},set channelInterpretation(e){u.channelInterpretation=e},get context(){return u.context},get inputs(){return[]},get numberOfInputs(){return l.numberOfInputs},get numberOfOutputs(){return u.numberOfOutputs},get offset(){return u.gain},get onended(){return l.onended},set onended(e){l.onended=e},addEventListener:(...e)=>l.addEventListener(e[0],e[1],e[2]),dispatchEvent:(...e)=>l.dispatchEvent(e[0]),removeEventListener:(...e)=>l.removeEventListener(e[0],e[1],e[2]),start(e=0){l.start.call(l,e)},stop(e=0){l.stop.call(l,e)}};return e(r,l),s(ht(h,u),(()=>l.connect(u)),(()=>l.disconnect(u)))})(yn,vn,pt,Nn),Ln=((e,t,n,s,r)=>(i,a)=>{if(void 0===i.createConstantSource)return n(i,a);const o=i.createConstantSource();return nt(o,a),rt(o,a,"offset"),t(s,(()=>s(i)))||it(o),t(r,(()=>r(i)))||at(o),e(i,o),o})(yn,Vt,Bn,Tt,Rt),Pn=((e,t,n,s,r)=>()=>{const i=new WeakMap;let a=null,o=null;return{set start(e){a=e},set stop(e){o=e},render(l,u){const c=i.get(u);return void 0!==c?Promise.resolve(c):(async(l,u)=>{let c=n(l);const h=Z(c,u);if(!h){const e={channelCount:c.channelCount,channelCountMode:c.channelCountMode,channelInterpretation:c.channelInterpretation,offset:c.offset.value};c=t(u,e),null!==a&&c.start(a),null!==o&&c.stop(o)}return i.set(u,c),h?await e(u,l.offset,c.offset):await s(u,l.offset,c.offset),await r(l,u,c),c})(l,u)}}})(wn,Ln,xe,xn,Kt),Un=((e,t,n,s,r,i,a)=>class extends e{constructor(e,a){const o=r(e),l={...Ve,...a},u=s(o,l),c=i(o),h=c?n():null;super(e,!1,u,h),this._constantSourceNodeRenderer=h,this._nativeConstantSourceNode=u,this._offset=t(this,c,u.offset,ne,te),this._onended=null}get offset(){return this._offset}get onended(){return this._onended}set onended(e){const t="function"==typeof e?a(this,e):null;this._nativeConstantSourceNode.onended=t;const n=this._nativeConstantSourceNode.onended;this._onended=null!==n&&n===t?e:n}start(e=0){if(this._nativeConstantSourceNode.start(e),null!==this._constantSourceNodeRenderer&&(this._constantSourceNodeRenderer.start=e),"closed"!==this.context.state){q(this);const e=()=>{this._nativeConstantSourceNode.removeEventListener("ended",e),se(this)&&K(this)};this._nativeConstantSourceNode.addEventListener("ended",e)}}stop(e=0){this._nativeConstantSourceNode.stop(e),null!==this._constantSourceNodeRenderer&&(this._constantSourceNodeRenderer.stop=e)}})(on,Cn,Pn,Ln,Xt,Qt,zt),Vn=((e,t)=>(n,s)=>{const r=n.createConvolver();if(nt(r,s),s.disableNormalization===r.normalize&&(r.normalize=!s.disableNormalization),tt(r,s,"buffer"),s.channelCount>2)throw e();if(t(r,"channelCount",(e=>()=>e.call(r)),(t=>n=>{if(n>2)throw e();return t.call(r,n)})),"max"===s.channelCountMode)throw e();return t(r,"channelCountMode",(e=>()=>e.call(r)),(t=>n=>{if("max"===n)throw e();return t.call(r,n)})),r})(yt,Et),Wn=((e,t,n)=>()=>{const s=new WeakMap;return{render(r,i){const a=s.get(i);return void 0!==a?Promise.resolve(a):(async(r,i)=>{let a=t(r);if(!Z(a,i)){const t={buffer:a.buffer,channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,disableNormalization:!a.normalize};a=e(i,t)}return s.set(i,a),me(a)?await n(r,i,a.inputs[0]):await n(r,i,a),a})(r,i)}}})(Vn,xe,Kt),jn=((e,t,n,s,r,i)=>class extends e{constructor(e,a){const o=s(e),l={...We,...a},u=n(o,l);super(e,!1,u,r(o)?t():null),this._isBufferNullified=!1,this._nativeConvolverNode=u,null!==l.buffer&&i(this,l.buffer.duration)}get buffer(){return this._isBufferNullified?null:this._nativeConvolverNode.buffer}set buffer(e){if(this._nativeConvolverNode.buffer=e,null===e&&null!==this._nativeConvolverNode.buffer){const e=this._nativeConvolverNode.context;this._nativeConvolverNode.buffer=e.createBuffer(1,1,e.sampleRate),this._isBufferNullified=!0,i(this,0)}else this._isBufferNullified=!1,i(this,null===this._nativeConvolverNode.buffer?0:this._nativeConvolverNode.buffer.duration)}get normalize(){return this._nativeConvolverNode.normalize}set normalize(e){this._nativeConvolverNode.normalize=e}})(on,Wn,Vn,Xt,Qt,In),Gn=((e,t,n,s,r)=>i=>{const a=new WeakMap;return{render(o,l){const u=a.get(l);return void 0!==u?Promise.resolve(u):(async(o,l)=>{let u=n(o);const c=Z(u,l);if(!c){const e={channelCount:u.channelCount,channelCountMode:u.channelCountMode,channelInterpretation:u.channelInterpretation,delayTime:u.delayTime.value,maxDelayTime:i};u=t(l,e)}return a.set(l,u),c?await e(l,o.delayTime,u.delayTime):await s(l,o.delayTime,u.delayTime),await r(o,l,u),u})(o,l)}}})(wn,dt,xe,xn,Kt),qn=((e,t,n,s,r,i,a)=>class extends e{constructor(e,o){const l=r(e),u={...Ge,...o},c=s(l,u),h=i(l);super(e,!1,c,h?n(u.maxDelayTime):null),this._delayTime=t(this,h,c.delayTime),a(this,u.maxDelayTime)}get delayTime(){return this._delayTime}})(on,Cn,Gn,dt,Xt,Qt,In),Hn=(e=>(t,n)=>{const s=t.createDynamicsCompressor();if(nt(s,n),n.channelCount>2)throw e();if("max"===n.channelCountMode)throw e();return rt(s,n,"attack"),rt(s,n,"knee"),rt(s,n,"ratio"),rt(s,n,"release"),rt(s,n,"threshold"),s})(yt),Kn=((e,t,n,s,r)=>()=>{const i=new WeakMap;return{render(a,o){const l=i.get(o);return void 0!==l?Promise.resolve(l):(async(a,o)=>{let l=n(a);const u=Z(l,o);if(!u){const e={attack:l.attack.value,channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,knee:l.knee.value,ratio:l.ratio.value,release:l.release.value,threshold:l.threshold.value};l=t(o,e)}return i.set(o,l),u?(await e(o,a.attack,l.attack),await e(o,a.knee,l.knee),await e(o,a.ratio,l.ratio),await e(o,a.release,l.release),await e(o,a.threshold,l.threshold)):(await s(o,a.attack,l.attack),await s(o,a.knee,l.knee),await s(o,a.ratio,l.ratio),await s(o,a.release,l.release),await s(o,a.threshold,l.threshold)),await r(a,o,l),l})(a,o)}}})(wn,Hn,xe,xn,Kt),$n=((e,t,n,s,r,i,a,o)=>class extends e{constructor(e,r){const l=i(e),u={...He,...r},c=s(l,u),h=a(l);super(e,!1,c,h?n():null),this._attack=t(this,h,c.attack),this._knee=t(this,h,c.knee),this._nativeDynamicsCompressorNode=c,this._ratio=t(this,h,c.ratio),this._release=t(this,h,c.release),this._threshold=t(this,h,c.threshold),o(this,.006)}get attack(){return this._attack}get channelCount(){return this._nativeDynamicsCompressorNode.channelCount}set channelCount(e){const t=this._nativeDynamicsCompressorNode.channelCount;if(this._nativeDynamicsCompressorNode.channelCount=e,e>2)throw this._nativeDynamicsCompressorNode.channelCount=t,r()}get channelCountMode(){return this._nativeDynamicsCompressorNode.channelCountMode}set channelCountMode(e){const t=this._nativeDynamicsCompressorNode.channelCountMode;if(this._nativeDynamicsCompressorNode.channelCountMode=e,"max"===e)throw this._nativeDynamicsCompressorNode.channelCountMode=t,r()}get knee(){return this._knee}get ratio(){return this._ratio}get reduction(){return"number"==typeof this._nativeDynamicsCompressorNode.reduction.value?this._nativeDynamicsCompressorNode.reduction.value:this._nativeDynamicsCompressorNode.reduction}get release(){return this._release}get threshold(){return this._threshold}})(on,Cn,Kn,Hn,yt,Xt,Qt,In),Xn=((e,t,n,s,r)=>()=>{const i=new WeakMap;return{render(a,o){const l=i.get(o);return void 0!==l?Promise.resolve(l):(async(a,o)=>{let l=n(a);const u=Z(l,o);if(!u){const e={channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,gain:l.gain.value};l=t(o,e)}return i.set(o,l),u?await e(o,a.gain,l.gain):await s(o,a.gain,l.gain),await r(a,o,l),l})(a,o)}}})(wn,pt,xe,xn,Kt),Zn=((e,t,n,s,r,i)=>class extends e{constructor(e,a){const o=r(e),l={...Ke,...a},u=s(o,l),c=i(o);super(e,!1,u,c?n():null),this._gain=t(this,c,u.gain,ne,te)}get gain(){return this._gain}})(on,Cn,Xn,pt,Xt,Qt),Yn=((e,t,n,s)=>(r,i,{channelCount:a,channelCountMode:o,channelInterpretation:l,feedback:u,feedforward:c})=>{const h=ot(i,r.sampleRate),d=u instanceof Float64Array?u:new Float64Array(u),p=c instanceof Float64Array?c:new Float64Array(c),f=d.length,m=p.length,g=Math.min(f,m);if(0===f||f>20)throw s();if(0===d[0])throw t();if(0===m||m>20)throw s();if(0===p[0])throw t();if(1!==d[0]){for(let e=0;e{const t=e.inputBuffer,n=e.outputBuffer,s=t.numberOfChannels;for(let e=0;ey.addEventListener(e[0],e[1],e[2]),dispatchEvent:(...e)=>y.dispatchEvent(e[0]),getFrequencyResponse(t,n,s){if(t.length!==n.length||n.length!==s.length)throw e();const r=t.length;for(let e=0;ey.removeEventListener(e[0],e[1],e[2])},y)})(Xe,$e,gt,yt),Qn=((e,t,n,s)=>r=>e(Je,(()=>Je(r)))?Promise.resolve(e(s,s)).then((e=>{if(!e){const e=n(r,512,0,1);r.oncomplete=()=>{e.onaudioprocess=null,e.disconnect()},e.onaudioprocess=()=>r.currentTime,e.connect(r.destination)}return r.startRendering()})):new Promise((e=>{const n=t(r,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});r.oncomplete=t=>{n.disconnect(),e(t.renderedBuffer)},n.connect(r.destination),r.startRendering()})))(Vt,pt,gt,((e,t)=>()=>{if(null===t)return Promise.resolve(!1);const n=new t(1,1,44100),s=e(n,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return new Promise((e=>{n.oncomplete=()=>{s.disconnect(),e(0!==n.currentTime)},n.startRendering()}))})(pt,Yt)),Jn=((e,t,n,s,r)=>(i,a)=>{const o=new WeakMap;let l=null;const u=async(u,c)=>{let h=null,d=t(u);const p=Z(d,c);if(void 0===c.createIIRFilter?h=e(c,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}):p||(d=c.createIIRFilter(a,i)),o.set(c,null===h?d:h),null!==h){if(null===l){if(null===n)throw new Error("Missing the native OfflineAudioContext constructor.");const e=new n(u.context.destination.channelCount,u.context.length,c.sampleRate);l=(async()=>{await s(u,e,e.destination);return((e,t,n,s)=>{const r=n instanceof Float64Array?n:new Float64Array(n),i=s instanceof Float64Array?s:new Float64Array(s),a=r.length,o=i.length,l=Math.min(a,o);if(1!==r[0]){for(let e=0;e(t,n,s)=>{if(void 0===t.createIIRFilter)return e(t,n,s);const r=t.createIIRFilter(s.feedforward,s.feedback);return nt(r,s),r})(Yn),ts=((e,t,n,s,r,i)=>class extends e{constructor(e,a){const o=s(e),l=r(o),u={...Ze,...a},c=t(o,l?null:e.baseLatency,u);super(e,!1,c,l?n(u.feedback,u.feedforward):null),(e=>{var t;e.getFrequencyResponse=(t=e.getFrequencyResponse,(n,s,r)=>{if(n.length!==s.length||s.length!==r.length)throw Xe();return t.call(e,n,s,r)})})(c),this._nativeIIRFilterNode=c,i(this,1)}getFrequencyResponse(e,t,n){return this._nativeIIRFilterNode.getFrequencyResponse(e,t,n)}})(on,es,Jn,Xt,Qt,In),ns=((e,t,n,s,r,i,a,o)=>(l,u)=>{const c=u.listener,{forwardX:h,forwardY:d,forwardZ:p,positionX:f,positionY:m,positionZ:g,upX:y,upY:b,upZ:w}=void 0===c.forwardX?(()=>{const h=new Float32Array(1),d=t(u,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:9}),p=a(u);let f=!1,m=[0,0,-1,0,1,0],g=[0,0,0];const y=()=>{if(f)return;f=!0;const e=s(u,256,9,0);e.onaudioprocess=({inputBuffer:e})=>{const t=[i(e,h,0),i(e,h,1),i(e,h,2),i(e,h,3),i(e,h,4),i(e,h,5)];t.some(((e,t)=>e!==m[t]))&&(c.setOrientation(...t),m=t);const n=[i(e,h,6),i(e,h,7),i(e,h,8)];n.some(((e,t)=>e!==g[t]))&&(c.setPosition(...n),g=n)},d.connect(e)},b=e=>t=>{t!==m[e]&&(m[e]=t,c.setOrientation(...m))},w=e=>t=>{t!==g[e]&&(g[e]=t,c.setPosition(...g))},v=(t,s,i)=>{const a=n(u,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:s});a.connect(d,0,t),a.start(),Object.defineProperty(a.offset,"defaultValue",{get:()=>s});const c=e({context:l},p,a.offset,ne,te);var h,f,m,g,b,w,v;return o(c,"value",(e=>()=>e.call(c)),(e=>t=>{try{e.call(c,t)}catch(e){if(9!==e.code)throw e}y(),p&&i(t)})),c.cancelAndHoldAtTime=(h=c.cancelAndHoldAtTime,p?()=>{throw r()}:(...e)=>{const t=h.apply(c,e);return y(),t}),c.cancelScheduledValues=(f=c.cancelScheduledValues,p?()=>{throw r()}:(...e)=>{const t=f.apply(c,e);return y(),t}),c.exponentialRampToValueAtTime=(m=c.exponentialRampToValueAtTime,p?()=>{throw r()}:(...e)=>{const t=m.apply(c,e);return y(),t}),c.linearRampToValueAtTime=(g=c.linearRampToValueAtTime,p?()=>{throw r()}:(...e)=>{const t=g.apply(c,e);return y(),t}),c.setTargetAtTime=(b=c.setTargetAtTime,p?()=>{throw r()}:(...e)=>{const t=b.apply(c,e);return y(),t}),c.setValueAtTime=(w=c.setValueAtTime,p?()=>{throw r()}:(...e)=>{const t=w.apply(c,e);return y(),t}),c.setValueCurveAtTime=(v=c.setValueCurveAtTime,p?()=>{throw r()}:(...e)=>{const t=v.apply(c,e);return y(),t}),c};return{forwardX:v(0,0,b(0)),forwardY:v(1,0,b(1)),forwardZ:v(2,-1,b(2)),positionX:v(6,0,w(0)),positionY:v(7,0,w(1)),positionZ:v(8,0,w(2)),upX:v(3,0,b(3)),upY:v(4,1,b(4)),upZ:v(5,0,b(5))}})():c;return{get forwardX(){return h},get forwardY(){return d},get forwardZ(){return p},get positionX(){return f},get positionY(){return m},get positionZ(){return g},get upX(){return y},get upY(){return b},get upZ(){return w}}})(Cn,On,Ln,gt,yt,St,Qt,Et),ss=new WeakMap,rs=((e,t,n,s,r,i)=>class extends n{constructor(n,i){super(n),this._nativeContext=n,R.set(this,n),s(n)&&r.set(n,new Set),this._destination=new e(this,i),this._listener=t(this,n),this._onstatechange=null}get currentTime(){return this._nativeContext.currentTime}get destination(){return this._destination}get listener(){return this._listener}get onstatechange(){return this._onstatechange}set onstatechange(e){const t="function"==typeof e?i(this,e):null;this._nativeContext.onstatechange=t;const n=this._nativeContext.onstatechange;this._onstatechange=null!==n&&n===t?e:n}get sampleRate(){return this._nativeContext.sampleRate}get state(){return this._nativeContext.state}})(_n,ns,en,Qt,ss,zt),is=((e,t,n,s,r,i)=>(a,o)=>{const l=a.createOscillator();return nt(l,o),rt(l,o,"detune"),rt(l,o,"frequency"),void 0!==o.periodicWave?l.setPeriodicWave(o.periodicWave):tt(l,o,"type"),t(n,(()=>n(a)))||it(l),t(s,(()=>s(a)))||i(l,a),t(r,(()=>r(a)))||at(l),e(a,l),l})(yn,Vt,Tt,Nt,Rt,Mt),as=((e,t,n,s,r)=>()=>{const i=new WeakMap;let a=null,o=null,l=null;return{set periodicWave(e){a=e},set start(e){o=e},set stop(e){l=e},render(u,c){const h=i.get(c);return void 0!==h?Promise.resolve(h):(async(u,c)=>{let h=n(u);const d=Z(h,c);if(!d){const e={channelCount:h.channelCount,channelCountMode:h.channelCountMode,channelInterpretation:h.channelInterpretation,detune:h.detune.value,frequency:h.frequency.value,periodicWave:null===a?void 0:a,type:h.type};h=t(c,e),null!==o&&h.start(o),null!==l&&h.stop(l)}return i.set(c,h),d?(await e(c,u.detune,h.detune),await e(c,u.frequency,h.frequency)):(await s(c,u.detune,h.detune),await s(c,u.frequency,h.frequency)),await r(u,c,h),h})(u,c)}}})(wn,is,xe,xn,Kt),os=((e,t,n,s,r,i,a)=>class extends e{constructor(e,a){const o=r(e),l={...wt,...a},u=n(o,l),c=i(o),h=c?s():null,d=e.sampleRate/2;super(e,!1,u,h),this._detune=t(this,c,u.detune,153600,-153600),this._frequency=t(this,c,u.frequency,d,-d),this._nativeOscillatorNode=u,this._onended=null,this._oscillatorNodeRenderer=h,null!==this._oscillatorNodeRenderer&&void 0!==l.periodicWave&&(this._oscillatorNodeRenderer.periodicWave=l.periodicWave)}get detune(){return this._detune}get frequency(){return this._frequency}get onended(){return this._onended}set onended(e){const t="function"==typeof e?a(this,e):null;this._nativeOscillatorNode.onended=t;const n=this._nativeOscillatorNode.onended;this._onended=null!==n&&n===t?e:n}get type(){return this._nativeOscillatorNode.type}set type(e){this._nativeOscillatorNode.type=e,null!==this._oscillatorNodeRenderer&&(this._oscillatorNodeRenderer.periodicWave=null)}setPeriodicWave(e){this._nativeOscillatorNode.setPeriodicWave(e),null!==this._oscillatorNodeRenderer&&(this._oscillatorNodeRenderer.periodicWave=e)}start(e=0){if(this._nativeOscillatorNode.start(e),null!==this._oscillatorNodeRenderer&&(this._oscillatorNodeRenderer.start=e),"closed"!==this.context.state){q(this);const e=()=>{this._nativeOscillatorNode.removeEventListener("ended",e),se(this)&&K(this)};this._nativeOscillatorNode.addEventListener("ended",e)}}stop(e=0){this._nativeOscillatorNode.stop(e),null!==this._oscillatorNodeRenderer&&(this._oscillatorNodeRenderer.stop=e)}})(on,Cn,is,as,Xt,Qt,zt),ls=(e=>(t,n)=>{const s=e(t,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),r=t.createBuffer(1,2,44100);return s.buffer=r,s.loop=!0,s.connect(n),s.start(),()=>{s.stop(),s.disconnect(n)}})(vn),us=((e,t,n,s,r)=>(i,{curve:a,oversample:o,...l})=>{const u=i.createWaveShaper(),c=i.createWaveShaper();nt(u,l),nt(c,l);const h=n(i,{...l,gain:1}),d=n(i,{...l,gain:-1}),p=n(i,{...l,gain:1}),f=n(i,{...l,gain:-1});let m=null,g=!1,y=null;const b={get bufferSize(){},get channelCount(){return u.channelCount},set channelCount(e){h.channelCount=e,d.channelCount=e,u.channelCount=e,p.channelCount=e,c.channelCount=e,f.channelCount=e},get channelCountMode(){return u.channelCountMode},set channelCountMode(e){h.channelCountMode=e,d.channelCountMode=e,u.channelCountMode=e,p.channelCountMode=e,c.channelCountMode=e,f.channelCountMode=e},get channelInterpretation(){return u.channelInterpretation},set channelInterpretation(e){h.channelInterpretation=e,d.channelInterpretation=e,u.channelInterpretation=e,p.channelInterpretation=e,c.channelInterpretation=e,f.channelInterpretation=e},get context(){return u.context},get curve(){return y},set curve(n){if(null!==n&&n.length<2)throw t();if(null===n)u.curve=n,c.curve=n;else{const e=n.length,t=new Float32Array(e+2-e%2),s=new Float32Array(e+2-e%2);t[0]=n[0],s[0]=-n[e-1];const r=Math.ceil((e+1)/2),i=(e+1)/2-1;for(let a=1;ah.addEventListener(e[0],e[1],e[2]),dispatchEvent:(...e)=>h.dispatchEvent(e[0]),removeEventListener:(...e)=>h.removeEventListener(e[0],e[1],e[2])};null!==a&&(b.curve=a instanceof Float32Array?a:new Float32Array(a)),o!==b.oversample&&(b.oversample=o);return r(ht(b,p),(()=>{h.connect(u).connect(p),h.connect(d).connect(c).connect(f).connect(p),g=!0,s(y)&&(m=e(i,h))}),(()=>{h.disconnect(u),u.disconnect(p),h.disconnect(d),d.disconnect(c),c.disconnect(f),f.disconnect(p),g=!1,null!==m&&(m(),m=null)}))})(ls,$e,pt,_t,Nn),cs=((e,t,n,s,r,i,a)=>(o,l)=>{const u=o.createWaveShaper();if(null!==i&&"webkitAudioContext"===i.name&&void 0===o.createGain().gain.automationRate)return n(o,l);nt(u,l);const c=null===l.curve||l.curve instanceof Float32Array?l.curve:new Float32Array(l.curve);if(null!==c&&c.length<2)throw t();tt(u,{curve:c},"curve"),tt(u,l,"oversample");let h=null,d=!1;a(u,"curve",(e=>()=>e.call(u)),(t=>n=>(t.call(u,n),d&&(s(n)&&null===h?h=e(o,u):s(n)||null===h||(h(),h=null)),n)));return r(u,(()=>{d=!0,s(u.curve)&&(h=e(o,u))}),(()=>{d=!1,null!==h&&(h(),h=null)}))})(ls,$e,us,_t,Nn,tn,Et),hs=((e,t,n,s,r,i,a,o,l,u)=>(c,{coneInnerAngle:h,coneOuterAngle:d,coneOuterGain:p,distanceModel:f,maxDistance:m,orientationX:g,orientationY:y,orientationZ:b,panningModel:w,positionX:v,positionY:x,positionZ:A,refDistance:C,rolloffFactor:k,...S})=>{const _=c.createPanner();if(S.channelCount>2)throw a();if("max"===S.channelCountMode)throw a();nt(_,S);const E={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},I=n(c,{...E,channelInterpretation:"speakers",numberOfInputs:6}),T=s(c,{...S,gain:1}),N=s(c,{...E,gain:1}),R=s(c,{...E,gain:0}),O=s(c,{...E,gain:0}),D=s(c,{...E,gain:0}),M=s(c,{...E,gain:0}),z=s(c,{...E,gain:0}),F=r(c,256,6,1),B=i(c,{...E,curve:new Float32Array([1,1]),oversample:"none"});let L=[g,y,b],P=[v,x,A];const U=new Float32Array(1);F.onaudioprocess=({inputBuffer:e})=>{const t=[l(e,U,0),l(e,U,1),l(e,U,2)];t.some(((e,t)=>e!==L[t]))&&(_.setOrientation(...t),L=t);const n=[l(e,U,3),l(e,U,4),l(e,U,5)];n.some(((e,t)=>e!==P[t]))&&(_.setPosition(...n),P=n)},Object.defineProperty(R.gain,"defaultValue",{get:()=>0}),Object.defineProperty(O.gain,"defaultValue",{get:()=>0}),Object.defineProperty(D.gain,"defaultValue",{get:()=>0}),Object.defineProperty(M.gain,"defaultValue",{get:()=>0}),Object.defineProperty(z.gain,"defaultValue",{get:()=>0});const V={get bufferSize(){},get channelCount(){return _.channelCount},set channelCount(e){if(e>2)throw a();T.channelCount=e,_.channelCount=e},get channelCountMode(){return _.channelCountMode},set channelCountMode(e){if("max"===e)throw a();T.channelCountMode=e,_.channelCountMode=e},get channelInterpretation(){return _.channelInterpretation},set channelInterpretation(e){T.channelInterpretation=e,_.channelInterpretation=e},get coneInnerAngle(){return _.coneInnerAngle},set coneInnerAngle(e){_.coneInnerAngle=e},get coneOuterAngle(){return _.coneOuterAngle},set coneOuterAngle(e){_.coneOuterAngle=e},get coneOuterGain(){return _.coneOuterGain},set coneOuterGain(e){if(e<0||e>1)throw t();_.coneOuterGain=e},get context(){return _.context},get distanceModel(){return _.distanceModel},set distanceModel(e){_.distanceModel=e},get inputs(){return[T]},get maxDistance(){return _.maxDistance},set maxDistance(e){if(e<0)throw new RangeError;_.maxDistance=e},get numberOfInputs(){return _.numberOfInputs},get numberOfOutputs(){return _.numberOfOutputs},get orientationX(){return N.gain},get orientationY(){return R.gain},get orientationZ(){return O.gain},get panningModel(){return _.panningModel},set panningModel(e){_.panningModel=e},get positionX(){return D.gain},get positionY(){return M.gain},get positionZ(){return z.gain},get refDistance(){return _.refDistance},set refDistance(e){if(e<0)throw new RangeError;_.refDistance=e},get rolloffFactor(){return _.rolloffFactor},set rolloffFactor(e){if(e<0)throw new RangeError;_.rolloffFactor=e},addEventListener:(...e)=>T.addEventListener(e[0],e[1],e[2]),dispatchEvent:(...e)=>T.dispatchEvent(e[0]),removeEventListener:(...e)=>T.removeEventListener(e[0],e[1],e[2])};h!==V.coneInnerAngle&&(V.coneInnerAngle=h),d!==V.coneOuterAngle&&(V.coneOuterAngle=d),p!==V.coneOuterGain&&(V.coneOuterGain=p),f!==V.distanceModel&&(V.distanceModel=f),m!==V.maxDistance&&(V.maxDistance=m),g!==V.orientationX.value&&(V.orientationX.value=g),y!==V.orientationY.value&&(V.orientationY.value=y),b!==V.orientationZ.value&&(V.orientationZ.value=b),w!==V.panningModel&&(V.panningModel=w),v!==V.positionX.value&&(V.positionX.value=v),x!==V.positionY.value&&(V.positionY.value=x),A!==V.positionZ.value&&(V.positionZ.value=A),C!==V.refDistance&&(V.refDistance=C),k!==V.rolloffFactor&&(V.rolloffFactor=k),1===L[0]&&0===L[1]&&0===L[2]||_.setOrientation(...L),0===P[0]&&0===P[1]&&0===P[2]||_.setPosition(...P);return u(ht(V,_),(()=>{T.connect(_),e(T,B,0,0),B.connect(N).connect(I,0,0),B.connect(R).connect(I,0,1),B.connect(O).connect(I,0,2),B.connect(D).connect(I,0,3),B.connect(M).connect(I,0,4),B.connect(z).connect(I,0,5),I.connect(F).connect(c.destination)}),(()=>{T.disconnect(_),o(T,B,0,0),B.disconnect(N),N.disconnect(I),B.disconnect(R),R.disconnect(I),B.disconnect(O),O.disconnect(I),B.disconnect(D),D.disconnect(I),B.disconnect(M),M.disconnect(I),B.disconnect(z),z.disconnect(I),I.disconnect(F),F.disconnect(c.destination)}))})(ge,$e,On,pt,gt,cs,yt,ve,St,Nn),ds=(e=>(t,n)=>{const s=t.createPanner();return void 0===s.orientationX?e(t,n):(nt(s,n),rt(s,n,"orientationX"),rt(s,n,"orientationY"),rt(s,n,"orientationZ"),rt(s,n,"positionX"),rt(s,n,"positionY"),rt(s,n,"positionZ"),tt(s,n,"coneInnerAngle"),tt(s,n,"coneOuterAngle"),tt(s,n,"coneOuterGain"),tt(s,n,"distanceModel"),tt(s,n,"maxDistance"),tt(s,n,"panningModel"),tt(s,n,"refDistance"),tt(s,n,"rolloffFactor"),s)})(hs),ps=((e,t,n,s,r,i,a,o,l,u)=>()=>{const c=new WeakMap;let h=null;return{render(d,p){const f=c.get(p);return void 0!==f?Promise.resolve(f):(async(d,p)=>{let f=null,m=i(d);const g={channelCount:m.channelCount,channelCountMode:m.channelCountMode,channelInterpretation:m.channelInterpretation},y={...g,coneInnerAngle:m.coneInnerAngle,coneOuterAngle:m.coneOuterAngle,coneOuterGain:m.coneOuterGain,distanceModel:m.distanceModel,maxDistance:m.maxDistance,panningModel:m.panningModel,refDistance:m.refDistance,rolloffFactor:m.rolloffFactor},b=Z(m,p);if("bufferSize"in m)f=s(p,{...g,gain:1});else if(!b){const e={...y,orientationX:m.orientationX.value,orientationY:m.orientationY.value,orientationZ:m.orientationZ.value,positionX:m.positionX.value,positionY:m.positionY.value,positionZ:m.positionZ.value};m=r(p,e)}if(c.set(p,null===f?m:f),null!==f){if(null===h){if(null===a)throw new Error("Missing the native OfflineAudioContext constructor.");const e=new a(6,d.context.length,p.sampleRate),s=t(e,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6});s.connect(e.destination),h=(async()=>{const t=await Promise.all([d.orientationX,d.orientationY,d.orientationZ,d.positionX,d.positionY,d.positionZ].map((async(t,s)=>{const r=n(e,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:0===s?1:0});return await o(e,t,r.offset),r})));for(let e=0;e<6;e+=1)t[e].connect(s,0,e),t[e].start(0);return u(e)})()}const e=await h,i=s(p,{...g,gain:1});await l(d,p,i);const c=[];for(let t=0;te!==m[t]))||n.some(((e,t)=>e!==b[t]))){m=e,b=n;const a=t/p.sampleRate;w.gain.setValueAtTime(0,a),w=s(p,{...g,gain:0}),v=r(p,{...y,orientationX:m[0],orientationY:m[1],orientationZ:m[2],positionX:b[0],positionY:b[1],positionZ:b[2]}),w.gain.setValueAtTime(1,a),i.connect(w).connect(v.inputs[0]),v.connect(f)}}return f}return b?(await e(p,d.orientationX,m.orientationX),await e(p,d.orientationY,m.orientationY),await e(p,d.orientationZ,m.orientationZ),await e(p,d.positionX,m.positionX),await e(p,d.positionY,m.positionY),await e(p,d.positionZ,m.positionZ)):(await o(p,d.orientationX,m.orientationX),await o(p,d.orientationY,m.orientationY),await o(p,d.orientationZ,m.orientationZ),await o(p,d.positionX,m.positionX),await o(p,d.positionY,m.positionY),await o(p,d.positionZ,m.positionZ)),me(m)?await l(d,p,m.inputs[0]):await l(d,p,m),m})(d,p)}}})(wn,On,Ln,pt,ds,xe,Yt,xn,Kt,Qn),fs=((e,t,n,s,r,i,a)=>class extends e{constructor(e,o){const l=r(e),u={...vt,...o},c=n(l,u),h=i(l);super(e,!1,c,h?s():null),this._nativePannerNode=c,this._orientationX=t(this,h,c.orientationX,ne,te),this._orientationY=t(this,h,c.orientationY,ne,te),this._orientationZ=t(this,h,c.orientationZ,ne,te),this._positionX=t(this,h,c.positionX,ne,te),this._positionY=t(this,h,c.positionY,ne,te),this._positionZ=t(this,h,c.positionZ,ne,te),a(this,1)}get coneInnerAngle(){return this._nativePannerNode.coneInnerAngle}set coneInnerAngle(e){this._nativePannerNode.coneInnerAngle=e}get coneOuterAngle(){return this._nativePannerNode.coneOuterAngle}set coneOuterAngle(e){this._nativePannerNode.coneOuterAngle=e}get coneOuterGain(){return this._nativePannerNode.coneOuterGain}set coneOuterGain(e){this._nativePannerNode.coneOuterGain=e}get distanceModel(){return this._nativePannerNode.distanceModel}set distanceModel(e){this._nativePannerNode.distanceModel=e}get maxDistance(){return this._nativePannerNode.maxDistance}set maxDistance(e){this._nativePannerNode.maxDistance=e}get orientationX(){return this._orientationX}get orientationY(){return this._orientationY}get orientationZ(){return this._orientationZ}get panningModel(){return this._nativePannerNode.panningModel}set panningModel(e){this._nativePannerNode.panningModel=e}get positionX(){return this._positionX}get positionY(){return this._positionY}get positionZ(){return this._positionZ}get refDistance(){return this._nativePannerNode.refDistance}set refDistance(e){this._nativePannerNode.refDistance=e}get rolloffFactor(){return this._nativePannerNode.rolloffFactor}set rolloffFactor(e){this._nativePannerNode.rolloffFactor=e}})(on,Cn,ds,ps,Xt,Qt,In),ms=(e=>(t,{disableNormalization:n,imag:s,real:r})=>{const i=s instanceof Float32Array?s:new Float32Array(s),a=r instanceof Float32Array?r:new Float32Array(r),o=t.createPeriodicWave(a,i,{disableNormalization:n});if(Array.from(s).length<2)throw e();return o})(Q),gs=((e,t,n,s)=>class r{constructor(r,i){const a=t(r),o=s({...xt,...i}),l=e(a,o);return n.add(l),l}static[Symbol.hasInstance](e){return null!==e&&"object"==typeof e&&Object.getPrototypeOf(e)===r.prototype||n.has(e)}})(ms,Xt,new WeakSet,(e=>{const{imag:t,real:n}=e;return void 0===t?void 0===n?{...e,imag:[0,0],real:[0,0]}:{...e,imag:Array.from(n,(()=>0)),real:n}:void 0===n?{...e,imag:t,real:Array.from(t,(()=>0))}:{...e,imag:t,real:n}})),ys=((e,t,n,s,r,i)=>{const a=16385,o=new Float32Array([1,1]),l=Math.PI/2,u={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},c={...u,oversample:"none"},h=(e,i,h,d,p)=>{if(1===i)return((e,t,r,i)=>{const h=new Float32Array(a),d=new Float32Array(a);for(let e=0;e{const d=new Float32Array(a),p=new Float32Array(a),f=new Float32Array(a),m=new Float32Array(a),g=Math.floor(8192.5);for(let e=0;eg){const t=(e-g)/(16384-g)*l;d[e]=Math.cos(t),p[e]=Math.sin(t),f[e]=0,m[e]=1}else{const t=e/(16384-g)*l;d[e]=1,p[e]=0,f[e]=Math.cos(t),m[e]=Math.sin(t)}const y=t(e,{channelCount:2,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:2}),b=n(e,{...u,gain:0}),w=s(e,{...c,curve:d}),v=n(e,{...u,gain:0}),x=s(e,{...c,curve:p}),A=s(e,{...c,curve:o}),C=n(e,{...u,gain:0}),k=s(e,{...c,curve:f}),S=n(e,{...u,gain:0}),_=s(e,{...c,curve:m});return{connectGraph(){r.connect(y),r.connect(void 0===A.inputs?A:A.inputs[0]),y.connect(b,0),y.connect(v,0),y.connect(C,1),y.connect(S,1),A.connect(i),i.connect(void 0===w.inputs?w:w.inputs[0]),i.connect(void 0===x.inputs?x:x.inputs[0]),i.connect(void 0===k.inputs?k:k.inputs[0]),i.connect(void 0===_.inputs?_:_.inputs[0]),w.connect(b.gain),x.connect(v.gain),k.connect(C.gain),_.connect(S.gain),b.connect(h,0,0),C.connect(h,0,0),v.connect(h,0,1),S.connect(h,0,1)},disconnectGraph(){r.disconnect(y),r.disconnect(void 0===A.inputs?A:A.inputs[0]),y.disconnect(b,0),y.disconnect(v,0),y.disconnect(C,1),y.disconnect(S,1),A.disconnect(i),i.disconnect(void 0===w.inputs?w:w.inputs[0]),i.disconnect(void 0===x.inputs?x:x.inputs[0]),i.disconnect(void 0===k.inputs?k:k.inputs[0]),i.disconnect(void 0===_.inputs?_:_.inputs[0]),w.disconnect(b.gain),x.disconnect(v.gain),k.disconnect(C.gain),_.disconnect(S.gain),b.disconnect(h,0,0),C.disconnect(h,0,0),v.disconnect(h,0,1),S.disconnect(h,0,1)}}})(e,h,d,p);throw r()};return(t,{channelCount:s,channelCountMode:a,pan:o,...l})=>{if("max"===a)throw r();const u=e(t,{...l,channelCount:1,channelCountMode:a,numberOfInputs:2}),c=n(t,{...l,channelCount:s,channelCountMode:a,gain:1}),d=n(t,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:o});let{connectGraph:p,disconnectGraph:f}=h(t,s,c,d,u);Object.defineProperty(d.gain,"defaultValue",{get:()=>0}),Object.defineProperty(d.gain,"maxValue",{get:()=>1}),Object.defineProperty(d.gain,"minValue",{get:()=>-1});const m={get bufferSize(){},get channelCount(){return c.channelCount},set channelCount(e){c.channelCount!==e&&(g&&f(),({connectGraph:p,disconnectGraph:f}=h(t,e,c,d,u)),g&&p()),c.channelCount=e},get channelCountMode(){return c.channelCountMode},set channelCountMode(e){if("clamped-max"===e||"max"===e)throw r();c.channelCountMode=e},get channelInterpretation(){return c.channelInterpretation},set channelInterpretation(e){c.channelInterpretation=e},get context(){return c.context},get inputs(){return[c]},get numberOfInputs(){return c.numberOfInputs},get numberOfOutputs(){return c.numberOfOutputs},get pan(){return d.gain},addEventListener:(...e)=>c.addEventListener(e[0],e[1],e[2]),dispatchEvent:(...e)=>c.dispatchEvent(e[0]),removeEventListener:(...e)=>c.removeEventListener(e[0],e[1],e[2])};let g=!1;return i(ht(m,u),(()=>{p(),g=!0}),(()=>{f(),g=!1}))}})(On,ct,pt,cs,yt,Nn),bs=((e,t)=>(n,s)=>{const r=s.channelCountMode;if("clamped-max"===r)throw t();if(void 0===n.createStereoPanner)return e(n,s);const i=n.createStereoPanner();return nt(i,s),rt(i,s,"pan"),Object.defineProperty(i,"channelCountMode",{get:()=>r,set:e=>{if(e!==r)throw t()}}),i})(ys,yt),ws=((e,t,n,s,r)=>()=>{const i=new WeakMap;return{render(a,o){const l=i.get(o);return void 0!==l?Promise.resolve(l):(async(a,o)=>{let l=n(a);const u=Z(l,o);if(!u){const e={channelCount:l.channelCount,channelCountMode:l.channelCountMode,channelInterpretation:l.channelInterpretation,pan:l.pan.value};l=t(o,e)}return i.set(o,l),u?await e(o,a.pan,l.pan):await s(o,a.pan,l.pan),me(l)?await r(a,o,l.inputs[0]):await r(a,o,l),l})(a,o)}}})(wn,bs,xe,xn,Kt),vs=((e,t,n,s,r,i)=>class extends e{constructor(e,a){const o=r(e),l={...At,...a},u=n(o,l),c=i(o);super(e,!1,u,c?s():null),this._pan=t(this,c,u.pan)}get pan(){return this._pan}})(on,Cn,bs,ws,Xt,Qt),xs=((e,t,n)=>()=>{const s=new WeakMap;return{render(r,i){const a=s.get(i);return void 0!==a?Promise.resolve(a):(async(r,i)=>{let a=t(r);if(!Z(a,i)){const t={channelCount:a.channelCount,channelCountMode:a.channelCountMode,channelInterpretation:a.channelInterpretation,curve:a.curve,oversample:a.oversample};a=e(i,t)}return s.set(i,a),me(a)?await n(r,i,a.inputs[0]):await n(r,i,a),a})(r,i)}}})(cs,xe,Kt),As=((e,t,n,s,r,i,a)=>class extends e{constructor(e,t){const o=r(e),l={...kt,...t},u=n(o,l);super(e,!0,u,i(o)?s():null),this._isCurveNullified=!1,this._nativeWaveShaperNode=u,a(this,1)}get curve(){return this._isCurveNullified?null:this._nativeWaveShaperNode.curve}set curve(e){if(null===e)this._isCurveNullified=!0,this._nativeWaveShaperNode.curve=new Float32Array([0,0]);else{if(e.length<2)throw t();this._isCurveNullified=!1,this._nativeWaveShaperNode.curve=e}}get oversample(){return this._nativeWaveShaperNode.oversample}set oversample(e){this._nativeWaveShaperNode.oversample=e}})(on,$e,cs,xs,Xt,Qt,In),Cs=(e=>null!==e&&e.isSecureContext)(Gt),ks=(e=>(t,n,s)=>{Object.defineProperties(e,{currentFrame:{configurable:!0,get:()=>Math.round(t*n)},currentTime:{configurable:!0,get:()=>t}});try{return s()}finally{null!==e&&(delete e.currentFrame,delete e.currentTime)}})(Gt),Ss=new WeakMap,_s=((e,t)=>n=>{let s=e.get(n);if(void 0!==s)return s;if(null===t)throw new Error("Missing the native OfflineAudioContext constructor.");return s=new t(1,1,44100),e.set(n,s),s})(Ss,Yt),Es=Cs?((e,t,n,s,r,i,a,o,l,u,c,h,d)=>{let p=0;return(f,m,g={credentials:"omit"})=>{const y=c.get(f);if(void 0!==y&&y.has(m))return Promise.resolve();const b=u.get(f);if(void 0!==b){const e=b.get(m);if(void 0!==e)return e}const w=i(f),v=void 0===w.audioWorklet?r(m).then((([e,t])=>{const[s,r]=L(e,t);return n(`${s};((a,b)=>{(a[b]=a[b]||[]).push((AudioWorkletProcessor,global,registerProcessor,sampleRate,self,window)=>{${r}\n})})(window,'_AWGS')`)})).then((()=>{const e=d._AWGS.pop();if(void 0===e)throw new SyntaxError;s(w.currentTime,w.sampleRate,(()=>e(class{},void 0,((e,n)=>{if(""===e.trim())throw t();const s=M.get(w);if(void 0!==s){if(s.has(e))throw t();U(n),P(n.parameterDescriptors),s.set(e,n)}else U(n),P(n.parameterDescriptors),M.set(w,new Map([[e,n]]))}),w.sampleRate,void 0,void 0)))})):Promise.all([r(m),Promise.resolve(e(h,h))]).then((([[e,t],n])=>{const s=p+1;p=s;const[r,i]=L(e,t),u=new Blob([`${r};((AudioWorkletProcessor,registerProcessor)=>{${i}\n})(${n?"AudioWorkletProcessor":"class extends AudioWorkletProcessor {__b=new WeakSet();constructor(){super();(p=>p.postMessage=(q=>(m,t)=>q.call(p,m,t?t.filter(u=>!this.__b.has(u)):t))(p.postMessage))(this.port)}}"},(n,p)=>registerProcessor(n,class extends p{${n?"":"__c = (a) => a.forEach(e=>this.__b.add(e.buffer));"}process(i,o,p){${n?"":"i.forEach(this.__c);o.forEach(this.__c);this.__c(Object.values(p));"}return super.process(i.map(j=>j.some(k=>k.length===0)?[]:j),o,p)}}));registerProcessor('__sac${s}',class extends AudioWorkletProcessor{process(){return !1}})`],{type:"application/javascript; charset=utf-8"}),c=URL.createObjectURL(u);return w.audioWorklet.addModule(c,g).then((()=>{if(o(w))return w;const e=a(w);return e.audioWorklet.addModule(c,g).then((()=>e))})).then((e=>{if(null===l)throw new SyntaxError;try{new l(e,`__sac${s}`)}catch{throw new SyntaxError}})).finally((()=>URL.revokeObjectURL(c)))}));return void 0===b?u.set(f,new Map([[m,v]])):b.set(m,v),v.then((()=>{const e=c.get(f);void 0===e?c.set(f,new Set([m])):e.add(m)})).finally((()=>{const e=u.get(f);void 0!==e&&e.delete(m)})),v}})(Vt,yt,(e=>t=>new Promise(((n,s)=>{if(null===e)return void s(new SyntaxError);const r=e.document.head;if(null===r)s(new SyntaxError);else{const i=e.document.createElement("script"),a=new Blob([t],{type:"application/javascript"}),o=URL.createObjectURL(a),l=e.onerror,u=()=>{e.onerror=l,URL.revokeObjectURL(o)};e.onerror=(t,n,r,i,a)=>n===o||n===e.location.href&&1===r&&1===i?(u(),s(a),!1):null!==l?l(t,n,r,i,a):void 0,i.onerror=()=>{u(),s(new SyntaxError)},i.onload=()=>{u(),n()},i.src=o,i.type="module",r.appendChild(i)}})))(Gt),ks,(e=>async t=>{try{const e=await fetch(t);if(e.ok)return[await e.text(),e.url]}catch{}throw e()})((()=>new DOMException("","AbortError"))),Xt,_s,Qt,an,new WeakMap,new WeakMap,((e,t)=>async()=>{if(null===e)return!0;if(null===t)return!1;const n=new Blob(['class A extends AudioWorkletProcessor{process(i){this.port.postMessage(i,[i[0][0].buffer])}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),s=new t(1,128,44100),r=URL.createObjectURL(n);let i=!1,a=!1;try{await s.audioWorklet.addModule(r);const t=new e(s,"a",{numberOfOutputs:0}),n=s.createOscillator();t.port.onmessage=()=>i=!0,t.onprocessorerror=()=>a=!0,n.connect(t),n.start(0),await s.startRendering(),await new Promise((e=>setTimeout(e)))}catch{}finally{URL.revokeObjectURL(r)}return i&&!a})(an,Yt),Gt):void 0,Is=((e,t)=>n=>e(n)||t(n))(nn,Qt),Ts=((e,t,n,s,r,i,a,o,l,u,c)=>(h,d)=>{const p=a(h)?h:i(h);if(r.has(d)){const e=n();return Promise.reject(e)}try{r.add(d)}catch{}return t(l,(()=>l(p)))?p.decodeAudioData(d).then((n=>(je(d).catch((()=>{})),t(o,(()=>o(n)))||c(n),e.add(n),n))):new Promise(((t,n)=>{const r=async()=>{try{await je(d)}catch{}},i=e=>{n(e),r()};try{p.decodeAudioData(d,(n=>{"function"!=typeof n.copyFromChannel&&(u(n),J(n)),e.add(n),r().then((()=>t(n)))}),(e=>{i(null===e?s():e)}))}catch(e){i(e)}}))})(cn,Vt,(()=>new DOMException("","DataCloneError")),(()=>new DOMException("","EncodingError")),new WeakSet,Xt,Is,Y,Je,fn,mn),Ns=((e,t,n,s,r,i,a,o,l,u,c,h,d,p,f,m,g,y,b,w)=>class extends f{constructor(t,n){super(t,n),this._nativeContext=t,this._audioWorklet=void 0===e?void 0:{addModule:(t,n)=>e(this,t,n)}}get audioWorklet(){return this._audioWorklet}createAnalyser(){return new t(this)}createBiquadFilter(){return new r(this)}createBuffer(e,t,s){return new n({length:t,numberOfChannels:e,sampleRate:s})}createBufferSource(){return new s(this)}createChannelMerger(e=6){return new i(this,{numberOfInputs:e})}createChannelSplitter(e=6){return new a(this,{numberOfOutputs:e})}createConstantSource(){return new o(this)}createConvolver(){return new l(this)}createDelay(e=1){return new c(this,{maxDelayTime:e})}createDynamicsCompressor(){return new h(this)}createGain(){return new d(this)}createIIRFilter(e,t){return new p(this,{feedback:t,feedforward:e})}createOscillator(){return new m(this)}createPanner(){return new g(this)}createPeriodicWave(e,t,n={disableNormalization:!1}){return new y(this,{...n,imag:t,real:e})}createStereoPanner(){return new b(this)}createWaveShaper(){return new w(this)}decodeAudioData(e,t,n){return u(this._nativeContext,e).then((e=>("function"==typeof t&&t(e),e)),(e=>{throw"function"==typeof n&&n(e),e}))}})(Es,un,gn,Sn,Tn,Mn,Fn,Un,jn,Ts,qn,$n,Zn,ts,rs,os,fs,gs,vs,As),Rs=((e,t,n,s)=>class extends e{constructor(e,r){const i=n(e),a=t(i,r);if(s(i))throw TypeError();super(e,!0,a,null),this._nativeMediaElementAudioSourceNode=a}get mediaElement(){return this._nativeMediaElementAudioSourceNode.mediaElement}})(on,((e,t)=>e.createMediaElementSource(t.mediaElement)),Xt,Qt),Os=((e,t,n,s)=>class extends e{constructor(e,r){const i=n(e);if(s(i))throw new TypeError;const a={...Qe,...r},o=t(i,a);super(e,!1,o,null),this._nativeMediaStreamAudioDestinationNode=o}get stream(){return this._nativeMediaStreamAudioDestinationNode.stream}})(on,((e,t)=>{const n=e.createMediaStreamDestination();return nt(n,t),1===n.numberOfOutputs&&Object.defineProperty(n,"numberOfOutputs",{get:()=>0}),n}),Xt,Qt),Ds=((e,t,n,s)=>class extends e{constructor(e,r){const i=n(e),a=t(i,r);if(s(i))throw new TypeError;super(e,!0,a,null),this._nativeMediaStreamAudioSourceNode=a}get mediaStream(){return this._nativeMediaStreamAudioSourceNode.mediaStream}})(on,((e,{mediaStream:t})=>{const n=t.getAudioTracks();n.sort(((e,t)=>e.idt.id?1:0));const s=n.slice(0,1),r=e.createMediaStreamSource(new MediaStream(s));return Object.defineProperty(r,"mediaStream",{value:t}),r}),Xt,Qt),Ms=((e,t)=>(n,{mediaStreamTrack:s})=>{if("function"==typeof n.createMediaStreamTrackSource)return n.createMediaStreamTrackSource(s);const r=new MediaStream([s]),i=n.createMediaStreamSource(r);if("audio"!==s.kind)throw e();if(t(n))throw new TypeError;return i})($e,Qt),zs=((e,t,n)=>class extends e{constructor(e,s){const r=n(e);super(e,!0,t(r,s),null)}})(on,Ms,Xt),Fs=((e,t,n,s,r,i,a,o,l)=>class extends e{constructor(e={}){if(null===l)throw new Error("Missing the native AudioContext constructor.");let t;try{t=new l(e)}catch(e){if(12===e.code&&"sampleRate is not in range"===e.message)throw n();throw e}if(null===t)throw s();if(!ue(e.latencyHint))throw new TypeError(`The provided value '${e.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(void 0!==e.sampleRate&&t.sampleRate!==e.sampleRate)throw n();super(t,2);const{latencyHint:r}=e,{sampleRate:i}=t;if(this._baseLatency="number"==typeof t.baseLatency?t.baseLatency:"balanced"===r?512/i:"interactive"===r||void 0===r?256/i:"playback"===r?1024/i:128*Math.max(2,Math.min(128,Math.round(r*i/128)))/i,this._nativeAudioContext=t,"webkitAudioContext"===l.name?(this._nativeGainNode=t.createGain(),this._nativeOscillatorNode=t.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(t.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,"running"===t.state){this._state="suspended";const e=()=>{"suspended"===this._state&&(this._state=null),t.removeEventListener("statechange",e)};t.addEventListener("statechange",e)}}get baseLatency(){return this._baseLatency}get state(){return null!==this._state?this._state:this._nativeAudioContext.state}close(){return"closed"===this.state?this._nativeAudioContext.close().then((()=>{throw t()})):("suspended"===this._state&&(this._state=null),this._nativeAudioContext.close().then((()=>{null!==this._nativeGainNode&&null!==this._nativeOscillatorNode&&(this._nativeOscillatorNode.stop(),this._nativeGainNode.disconnect(),this._nativeOscillatorNode.disconnect()),le(this)})))}createMediaElementSource(e){return new r(this,{mediaElement:e})}createMediaStreamDestination(){return new i(this)}createMediaStreamSource(e){return new a(this,{mediaStream:e})}createMediaStreamTrackSource(e){return new o(this,{mediaStreamTrack:e})}resume(){return"suspended"===this._state?new Promise(((e,t)=>{const n=()=>{this._nativeAudioContext.removeEventListener("statechange",n),"running"===this._nativeAudioContext.state?e():this.resume().then(e,t)};this._nativeAudioContext.addEventListener("statechange",n)})):this._nativeAudioContext.resume().catch((e=>{if(void 0===e||15===e.code)throw t();throw e}))}suspend(){return this._nativeAudioContext.suspend().catch((e=>{if(void 0===e)throw t();throw e}))}})(Ns,$e,yt,Ct,Rs,Os,Ds,zs,tn),Bs=(e=>t=>{const n=e.get(t);if(void 0===n)throw new Error("The context has no set of AudioWorkletNodes.");return n})(ss),Ls=(e=>(t,n)=>{e(t).add(n)})(Bs),Ps=(e=>(t,n,s=0,r=0)=>{const i=t[s];if(void 0===i)throw e();return Ee(n)?i.connect(n,0,r):i.connect(n,0)})(Q),Us=(e=>(t,n)=>{e(t).delete(n)})(Bs),Vs=(e=>(t,n=void 0,s=void 0,r=0)=>void 0===n?t.forEach((e=>e.disconnect())):"number"==typeof n?qe(e,t,n).disconnect():Ee(n)?void 0===s?t.forEach((e=>e.disconnect(n))):void 0===r?qe(e,t,s).disconnect(n,0):qe(e,t,s).disconnect(n,0,r):void 0===s?t.forEach((e=>e.disconnect(n))):qe(e,t,s).disconnect(n,0))(Q),Ws=new WeakMap,js=((e,t)=>n=>t(e,n))(Ws,V),Gs=((e,t,n,s,r,i,a,o,l,u,c,h,d)=>(p,f,m,g)=>{if(0===g.numberOfInputs&&0===g.numberOfOutputs)throw l();const y=Array.isArray(g.outputChannelCount)?g.outputChannelCount:Array.from(g.outputChannelCount);if(y.some((e=>e<1)))throw l();if(y.length!==g.numberOfOutputs)throw t();if("explicit"!==g.channelCountMode)throw l();const b=g.channelCount*g.numberOfInputs,w=y.reduce(((e,t)=>e+t),0),v=void 0===m.parameterDescriptors?0:m.parameterDescriptors.length;if(b+v>6||w>6)throw l();const x=new MessageChannel,A=[],C=[];for(let e=0;evoid 0===e?0:e},maxValue:{get:()=>void 0===t?ne:t},minValue:{get:()=>void 0===n?te:n}}),k.push(r)}const S=s(p,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,b+v)}),_=ot(f,p.sampleRate),E=o(p,_,b+v,Math.max(1,w)),I=r(p,{channelCount:Math.max(1,w),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,w)}),T=[];for(let e=0;e{const n=k[t];return n.connect(S,0,b+t),n.start(0),[e,n.offset]})));S.connect(E);let R=g.channelInterpretation,O=null;const D=0===g.numberOfOutputs?[E]:T,M={get bufferSize(){return _},get channelCount(){return g.channelCount},set channelCount(e){throw n()},get channelCountMode(){return g.channelCountMode},set channelCountMode(e){throw n()},get channelInterpretation(){return R},set channelInterpretation(e){for(const t of A)t.channelInterpretation=e;R=e},get context(){return E.context},get inputs(){return A},get numberOfInputs(){return g.numberOfInputs},get numberOfOutputs(){return g.numberOfOutputs},get onprocessorerror(){return O},set onprocessorerror(e){"function"==typeof O&&M.removeEventListener("processorerror",O),O="function"==typeof e?e:null,"function"==typeof O&&M.addEventListener("processorerror",O)},get parameters(){return N},get port(){return x.port2},addEventListener:(...e)=>E.addEventListener(e[0],e[1],e[2]),connect:e.bind(null,D),disconnect:u.bind(null,D),dispatchEvent:(...e)=>E.dispatchEvent(e[0]),removeEventListener:(...e)=>E.removeEventListener(e[0],e[1],e[2])},F=new Map;var B,L;x.port1.addEventListener=(B=x.port1.addEventListener,(...e)=>{if("message"===e[0]){const t="function"==typeof e[1]?e[1]:"object"==typeof e[1]&&null!==e[1]&&"function"==typeof e[1].handleEvent?e[1].handleEvent:null;if(null!==t){const n=F.get(e[1]);void 0!==n?e[1]=n:(e[1]=e=>{c(p.currentTime,p.sampleRate,(()=>t(e)))},F.set(t,e[1]))}}return B.call(x.port1,e[0],e[1],e[2])}),x.port1.removeEventListener=(L=x.port1.removeEventListener,(...e)=>{if("message"===e[0]){const t=F.get(e[1]);void 0!==t&&(F.delete(e[1]),e[1]=t)}return L.call(x.port1,e[0],e[1],e[2])});let P=null;Object.defineProperty(x.port1,"onmessage",{get:()=>P,set:e=>{"function"==typeof P&&x.port1.removeEventListener("message",P),P="function"==typeof e?e:null,"function"==typeof P&&(x.port1.addEventListener("message",P),x.port1.start())}}),m.prototype.port=x.port1;let U=null;const V=((e,t,n,s)=>{let r=z.get(e);void 0===r&&(r=new WeakMap,z.set(e,r));const i=lt(n,s);return r.set(t,i),i})(p,M,m,g);V.then((e=>U=e));const W=Fe(g.numberOfInputs,g.channelCount),j=Fe(g.numberOfOutputs,y),G=void 0===m.parameterDescriptors?[]:m.parameterDescriptors.reduce(((e,{name:t})=>({...e,[t]:new Float32Array(128)})),{});let q=!0;const H=()=>{g.numberOfOutputs>0&&E.disconnect(I);for(let e=0,t=0;e{if(null!==U){const n=h(M);for(let s=0;s<_;s+=128){for(let t=0;t{Me(e,G,t,b+n,s)}));for(let e=0;e{if(n[t].size>0)return K.set(t,_/128),e;const s=K.get(t);return void 0===s?[]:(e.every((e=>e.every((e=>0===e))))&&(1===s?K.delete(t):K.set(t,s-1)),e)})),r=c(p.currentTime+s/p.sampleRate,p.sampleRate,(()=>U.process(e,j,G)));q=r;for(let e=0,n=0;eE.connect(X).connect(p.destination),Y=()=>{E.disconnect(X),X.disconnect()};return Z(),d(M,(()=>{if(q){Y(),g.numberOfOutputs>0&&E.connect(I);for(let e=0,t=0;e{q&&(Z(),H()),$=!1}))})(Ps,Q,$e,On,ct,Ln,pt,gt,yt,Vs,ks,js,Nn),qs=((e,t,n,s,r)=>(i,a,o,l,u,c)=>{if(null!==o)try{const t=new o(i,l,c),s=new Map;let a=null;if(Object.defineProperties(t,{channelCount:{get:()=>c.channelCount,set:()=>{throw e()}},channelCountMode:{get:()=>"explicit",set:()=>{throw e()}},onprocessorerror:{get:()=>a,set:e=>{"function"==typeof a&&t.removeEventListener("processorerror",a),a="function"==typeof e?e:null,"function"==typeof a&&t.addEventListener("processorerror",a)}}}),t.addEventListener=(d=t.addEventListener,(...e)=>{if("processorerror"===e[0]){const t="function"==typeof e[1]?e[1]:"object"==typeof e[1]&&null!==e[1]&&"function"==typeof e[1].handleEvent?e[1].handleEvent:null;if(null!==t){const n=s.get(e[1]);void 0!==n?e[1]=n:(e[1]=n=>{"error"===n.type?(Object.defineProperties(n,{type:{value:"processorerror"}}),t(n)):t(new ErrorEvent(e[0],{...n}))},s.set(t,e[1]))}}return d.call(t,"error",e[1],e[2]),d.call(t,...e)}),t.removeEventListener=(h=t.removeEventListener,(...e)=>{if("processorerror"===e[0]){const t=s.get(e[1]);void 0!==t&&(s.delete(e[1]),e[1]=t)}return h.call(t,"error",e[1],e[2]),h.call(t,e[0],e[1],e[2])}),0!==c.numberOfOutputs){const e=n(i,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});t.connect(e).connect(i.destination);return r(t,(()=>e.disconnect()),(()=>e.connect(i.destination)))}return t}catch(e){if(11===e.code)throw s();throw e}var h,d;if(void 0===u)throw s();return(e=>{const{port1:t}=new MessageChannel;try{t.postMessage(e)}finally{t.close()}})(c),t(i,a,u,c)})($e,Gs,pt,yt,Nn),Hs=((e,t,n,s,r,i,a,o,l,u,c,h,d,p,f,m)=>(g,y,b)=>{const w=new WeakMap;let v=null;return{render(x,A){o(A,x);const C=w.get(A);return void 0!==C?Promise.resolve(C):(async(o,x)=>{let A=c(o),C=null;const k=Z(A,x),S=Array.isArray(y.outputChannelCount)?y.outputChannelCount:Array.from(y.outputChannelCount);if(null===h){const e=S.reduce(((e,t)=>e+t),0),n=r(x,{channelCount:Math.max(1,e),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,e)}),i=[];for(let e=0;e{const l=new d(n,128*Math.ceil(o.context.length/128),x.sampleRate),u=[],c=[];for(let e=0;e{const t=i(l,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:e.value});return await p(l,e,t.offset),t}))),g=s(l,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,e+t)});for(let e=0;ef(o,l,e)))),m(l)};v=Be(o,0===n?null:await l(),x,y,S,b,u)}const e=await v,t=n(x,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),[l,c,h]=C;null!==e&&(t.buffer=e,t.start(0)),t.connect(l);for(let e=0,t=0;et=>e.get(t))(Ss),$s=(e=>(t,n)=>{e.set(t,n)})(Ws),Xs=Cs?((e,t,n,s,r,i,a,o,l,u,c,h,d,p)=>class extends t{constructor(t,p,f){var m;const g=o(t),y=l(g),b=c({...De,...f});d(b);const w=M.get(g),v=null==w?void 0:w.get(p),x=y||"closed"!==g.state?g:null!==(m=a(g))&&void 0!==m?m:g,A=r(x,y?null:t.baseLatency,u,p,v,b);super(t,!0,A,y?s(p,b,v):null);const C=[];A.parameters.forEach(((e,t)=>{const s=n(this,y,e);C.push([t,s])})),this._nativeAudioWorkletNode=A,this._onprocessorerror=null,this._parameters=new Oe(C),y&&e(g,this);const{activeInputs:k}=i(this);h(A,k)}get onprocessorerror(){return this._onprocessorerror}set onprocessorerror(e){const t="function"==typeof e?p(this,e):null;this._nativeAudioWorkletNode.onprocessorerror=t;const n=this._nativeAudioWorkletNode.onprocessorerror;this._onprocessorerror=null!==n&&n===t?e:n}get parameters(){return null===this._parameters?this._nativeAudioWorkletNode.parameters:this._parameters}get port(){return this._nativeAudioWorkletNode.port}})(Ls,on,Cn,Hs,qs,ie,Ks,Xt,Qt,an,(e=>({...e,outputChannelCount:void 0!==e.outputChannelCount?e.outputChannelCount:1===e.numberOfInputs&&1===e.numberOfOutputs?[e.channelCount]:Array.from({length:e.numberOfOutputs},(()=>1))})),$s,(e=>{const{port1:t,port2:n}=new MessageChannel;try{t.postMessage(e)}finally{t.close(),n.close()}}),zt):void 0,Zs=(((e,t,n,s,r)=>{})($e,yt,Ct,rs,tn),((e,t)=>(n,s,r)=>{if(null===t)throw new Error("Missing the native OfflineAudioContext constructor.");try{return new t(n,s,r)}catch(t){if("SyntaxError"===t.name)throw e();throw t}})(yt,Yt)),Ys=((e,t,n,s,r,i,a,o)=>(l,u)=>n(l).render(l,u).then((()=>Promise.all(Array.from(s(u)).map((e=>n(e).render(e,u)))))).then((()=>r(u))).then((n=>("function"!=typeof n.copyFromChannel?(a(n),J(n)):t(i,(()=>i(n)))||o(n),e.add(n),n))))(cn,Vt,Ht,Bs,Qn,Y,fn,mn),Qs=(((e,t,n,s,r)=>{})(Vt,$e,Zs,rs,Ys),((e,t,n,s,r)=>class extends e{constructor(e,n,r){let i;if("number"==typeof e&&void 0!==n&&void 0!==r)i={length:n,numberOfChannels:e,sampleRate:r};else{if("object"!=typeof e)throw new Error("The given parameters are not valid.");i=e}const{length:a,numberOfChannels:o,sampleRate:l}={...bt,...i},u=s(o,a,l);t(Je,(()=>Je(u)))||u.addEventListener("statechange",(()=>{let e=0;const t=n=>{"running"===this._state&&(e>0?(u.removeEventListener("statechange",t),n.stopImmediatePropagation(),this._waitForThePromiseToSettle(n)):e+=1)};return t})()),super(u,o),this._length=a,this._nativeOfflineAudioContext=u,this._state=null}get length(){return void 0===this._nativeOfflineAudioContext.length?this._length:this._nativeOfflineAudioContext.length}get state(){return null===this._state?this._nativeOfflineAudioContext.state:this._state}startRendering(){return"running"===this._state?Promise.reject(n()):(this._state="running",r(this.destination,this._nativeOfflineAudioContext).finally((()=>{this._state=null,le(this)})))}_waitForThePromiseToSettle(e){null===this._state?this._nativeOfflineAudioContext.dispatchEvent(e):setTimeout((()=>this._waitForThePromiseToSettle(e)))}})(Ns,Vt,$e,Zs,Ys)),Js=((e,t)=>n=>{const s=e.get(n);return t(s)||t(n)})(R,nn),er=((e,t)=>n=>e.has(n)||t(n))(I,sn),tr=((e,t)=>n=>e.has(n)||t(n))(N,rn),nr=((e,t)=>n=>{const s=e.get(n);return t(s)||t(n)})(R,Qt),sr=()=>(async(e,t,n,s,r,i,a,o,l,u,c,h,d,p,f,m)=>{if(e(t,t)&&e(n,n)&&e(r,r)&&e(i,i)&&e(o,o)&&e(l,l)&&e(u,u)&&e(c,c)&&e(h,h)&&e(d,d)&&e(p,p))return(await Promise.all([e(s,s),e(a,a),e(f,f),e(m,m)])).every((e=>e));return!1})(Vt,(e=>()=>{if(null===e)return!1;const t=new e(1,1,44100).createBuffer(1,1,44100);if(void 0===t.copyToChannel)return!0;const n=new Float32Array(2);try{t.copyFromChannel(n,0,0)}catch{return!1}return!0})(Yt),(e=>()=>{if(null===e)return!1;if(void 0!==e.prototype&&void 0!==e.prototype.close)return!0;const t=new e,n=void 0!==t.close;try{t.close()}catch{}return n})(tn),(e=>()=>{if(null===e)return Promise.resolve(!1);const t=new e(1,1,44100);return new Promise((e=>{let n=!0;const s=s=>{n&&(n=!1,t.startRendering(),e(s instanceof TypeError))};let r;try{r=t.decodeAudioData(null,(()=>{}),s)}catch(e){s(e)}void 0!==r&&r.catch(s)}))})(Yt),(e=>()=>{if(null===e)return!1;let t;try{t=new e({latencyHint:"balanced"})}catch{return!1}return t.close(),!0})(tn),(e=>()=>{if(null===e)return!1;const t=new e(1,1,44100).createGain(),n=t.connect(t)===t;return t.disconnect(t),n})(Yt),((e,t)=>async()=>{if(null===e)return!0;if(null===t)return!1;const n=new Blob(['let c,p;class A extends AudioWorkletProcessor{constructor(){super();this.port.onmessage=(e)=>{p=e.data;p.onmessage=()=>{p.postMessage(c);p.close()};this.port.postMessage(0)}}process(){c=1}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),s=new MessageChannel,r=new t(1,128,44100),i=URL.createObjectURL(n);let a=!1;try{await r.audioWorklet.addModule(i);const t=new e(r,"a",{numberOfOutputs:0}),n=r.createOscillator();await new Promise((e=>{t.port.onmessage=()=>e(),t.port.postMessage(s.port2,[s.port2])})),t.port.onmessage=()=>a=!0,n.connect(t),n.start(0),await r.startRendering(),a=await new Promise((e=>{s.port1.onmessage=({data:t})=>e(1===t),s.port1.postMessage(0)}))}catch{}finally{s.port1.close(),URL.revokeObjectURL(i)}return a})(an,Yt),(e=>()=>{if(null===e)return!1;const t=new e(1,1,44100).createChannelMerger();if("max"===t.channelCountMode)return!0;try{t.channelCount=2}catch{return!0}return!1})(Yt),(e=>()=>{if(null===e)return!1;const t=new e(1,1,44100);return void 0===t.createConstantSource||t.createConstantSource().offset.maxValue!==Number.POSITIVE_INFINITY})(Yt),(e=>()=>{if(null===e)return!1;const t=new e(1,1,44100),n=t.createConvolver();n.buffer=t.createBuffer(1,1,t.sampleRate);try{n.buffer=t.createBuffer(1,1,t.sampleRate)}catch{return!1}return!0})(Yt),(e=>()=>{if(null===e)return!1;const t=new e(1,1,44100).createConvolver();try{t.channelCount=1}catch{return!1}return!0})(Yt),Ot,(e=>()=>null!==e&&e.hasOwnProperty("isSecureContext"))(Gt),(e=>()=>{if(null===e)return!1;const t=new e;try{return t.createMediaStreamSource(new MediaStream),!1}catch(e){return!0}finally{t.close()}})(tn),(e=>()=>{if(null===e)return Promise.resolve(!1);const t=new e(1,1,44100);if(void 0===t.createStereoPanner)return Promise.resolve(!0);if(void 0===t.createConstantSource)return Promise.resolve(!0);const n=t.createConstantSource(),s=t.createStereoPanner();return n.channelCount=1,n.offset.value=1,s.channelCount=1,n.start(),n.connect(s).connect(t.destination),t.startRendering().then((e=>1!==e.getChannelData(0)[0]))})(Yt),Dt);function rr(e,t){if(!e)throw new Error(t)}function ir(e,t,n=1/0){if(!(t<=e&&e<=n))throw new RangeError(`Value must be within [${t}, ${n}], got: ${e}`)}function ar(e){e.isOffline||"running"===e.state||cr('The AudioContext is "suspended". Invoke Tone.start() from a user action to start the audio.')}let or=console;function lr(e){or=e}function ur(...e){or.log(...e)}function cr(...e){or.warn(...e)}function hr(e){return void 0===e}function dr(e){return!hr(e)}function pr(e){return"function"==typeof e}function fr(e){return"number"==typeof e}function mr(e){return"[object Object]"===Object.prototype.toString.call(e)&&e.constructor===Object}function gr(e){return"boolean"==typeof e}function yr(e){return Array.isArray(e)}function br(e){return"string"==typeof e}function wr(e){return br(e)&&/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i.test(e)}const vr="object"==typeof self?self:null,xr=vr&&(vr.hasOwnProperty("AudioContext")||vr.hasOwnProperty("webkitAudioContext"));function Ar(e,t,n,s){var r,i=arguments.length,a=i<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,s);else for(var o=e.length-1;o>=0;o--)(r=e[o])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function Cr(e,t,n,s){return new(n||(n=Promise))((function(r,i){function a(e){try{l(s.next(e))}catch(e){i(e)}}function o(e){try{l(s.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,o)}l((s=s.apply(e,t||[])).next())}))}Object.create;Object.create;"function"==typeof SuppressedError&&SuppressedError;class kr{constructor(e,t,n){this._callback=e,this._type=t,this._updateInterval=n,this._createClock()}_createWorker(){const e=new Blob([`\n\t\t\t// the initial timeout time\n\t\t\tlet timeoutTime = ${(1e3*this._updateInterval).toFixed(1)};\n\t\t\t// onmessage callback\n\t\t\tself.onmessage = function(msg){\n\t\t\t\ttimeoutTime = parseInt(msg.data);\n\t\t\t};\n\t\t\t// the tick function which posts a message\n\t\t\t// and schedules a new tick\n\t\t\tfunction tick(){\n\t\t\t\tsetTimeout(tick, timeoutTime);\n\t\t\t\tself.postMessage('tick');\n\t\t\t}\n\t\t\t// call tick initially\n\t\t\ttick();\n\t\t\t`],{type:"text/javascript"}),t=URL.createObjectURL(e),n=new Worker(t);n.onmessage=this._callback.bind(this),this._worker=n}_createTimeout(){this._timeout=setTimeout((()=>{this._createTimeout(),this._callback()}),1e3*this._updateInterval)}_createClock(){if("worker"===this._type)try{this._createWorker()}catch(e){this._type="timeout",this._createClock()}else"timeout"===this._type&&this._createTimeout()}_disposeClock(){this._timeout&&(clearTimeout(this._timeout),this._timeout=0),this._worker&&(this._worker.terminate(),this._worker.onmessage=null)}get updateInterval(){return this._updateInterval}set updateInterval(e){this._updateInterval=Math.max(e,128/44100),"worker"===this._type&&this._worker.postMessage(Math.max(1e3*e,1))}get type(){return this._type}set type(e){this._disposeClock(),this._type=e,this._createClock()}dispose(){this._disposeClock()}}function Sr(e){return tr(e)}function _r(e){return er(e)}function Er(e){return nr(e)}function Ir(e){return Js(e)}function Tr(e){return e instanceof AudioBuffer}function Nr(e,t){return"value"===e||Sr(t)||_r(t)||Tr(t)}function Rr(e,...t){if(!t.length)return e;const n=t.shift();if(mr(e)&&mr(n))for(const t in n)Nr(t,n[t])?e[t]=n[t]:mr(n[t])?(e[t]||Object.assign(e,{[t]:{}}),Rr(e[t],n[t])):Object.assign(e,{[t]:n[t]});return Rr(e,...t)}function Or(e,t,n=[],s){const r={},i=Array.from(t);if(mr(i[0])&&s&&!Reflect.has(i[0],s)){Object.keys(i[0]).some((t=>Reflect.has(e,t)))||(Rr(r,{[s]:i[0]}),n.splice(n.indexOf(s),1),i.shift())}if(1===i.length&&mr(i[0]))Rr(r,i[0]);else for(let e=0;e{Reflect.has(e,t)&&delete e[t]})),e}class zr{constructor(){this.debug=!1,this._wasDisposed=!1}static getDefaults(){return{}}log(...e){(this.debug||vr&&this.toString()===vr.TONE_DEBUG_CLASS)&&ur(this,...e)}dispose(){return this._wasDisposed=!0,this}get disposed(){return this._wasDisposed}toString(){return this.name}}zr.version=i;const Fr=1e-6;function Br(e,t){return e>t+Fr}function Lr(e,t){return Br(e,t)||Ur(e,t)}function Pr(e,t){return e+Frthis.memory){const e=this.length-this.memory;this._timeline.splice(0,e)}return this}remove(e){const t=this._timeline.indexOf(e);return-1!==t&&this._timeline.splice(t,1),this}get(e,t="time"){const n=this._search(e,t);return-1!==n?this._timeline[n]:null}peek(){return this._timeline[0]}shift(){return this._timeline.shift()}getAfter(e,t="time"){const n=this._search(e,t);return n+10&&this._timeline[t-1].time=0?this._timeline[n-1]:null}cancel(e){if(this._timeline.length>1){let t=this._search(e);if(t>=0)if(Ur(this._timeline[t].time,e)){for(let n=t;n>=0&&Ur(this._timeline[n].time,e);n--)t=n;this._timeline=this._timeline.slice(0,t)}else this._timeline=this._timeline.slice(0,t+1);else this._timeline=[]}else 1===this._timeline.length&&Lr(this._timeline[0].time,e)&&(this._timeline=[]);return this}cancelBefore(e){const t=this._search(e);return t>=0&&(this._timeline=this._timeline.slice(t+1)),this}previousEvent(e){const t=this._timeline.indexOf(e);return t>0?this._timeline[t-1]:null}_search(e,t="time"){if(0===this._timeline.length)return-1;let n=0;const s=this._timeline.length;let r=s;if(s>0&&this._timeline[s-1][t]<=e)return s-1;for(;n=0&&this._timeline[n].time>=e;)n--;return this._iterate(t,n+1),this}forEachAtTime(e,t){const n=this._search(e);if(-1!==n&&Ur(this._timeline[n].time,e)){let s=n;for(let t=n;t>=0&&Ur(this._timeline[t].time,e);t--)s=t;this._iterate((e=>{t(e)}),s,n)}return this}dispose(){return super.dispose(),this._timeline=[],this}}const jr=[];function Gr(e){jr.push(e)}const qr=[];function Hr(e){qr.push(e)}class Kr extends zr{constructor(){super(...arguments),this.name="Emitter"}on(e,t){return e.split(/\W+/).forEach((e=>{hr(this._events)&&(this._events={}),this._events.hasOwnProperty(e)||(this._events[e]=[]),this._events[e].push(t)})),this}once(e,t){const n=(...s)=>{t(...s),this.off(e,n)};return this.on(e,n),this}off(e,t){return e.split(/\W+/).forEach((n=>{if(hr(this._events)&&(this._events={}),this._events.hasOwnProperty(e))if(hr(t))this._events[e]=[];else{const n=this._events[e];for(let e=n.length-1;e>=0;e--)n[e]===t&&n.splice(e,1)}})),this}emit(e,...t){if(this._events&&this._events.hasOwnProperty(e)){const n=this._events[e].slice(0);for(let e=0,s=n.length;e{const n=Object.getOwnPropertyDescriptor(Kr.prototype,t);Object.defineProperty(e.prototype,t,n)}))}dispose(){return super.dispose(),this._events=void 0,this}}class $r extends Kr{constructor(){super(...arguments),this.isOffline=!1}toJSON(){return{}}}class Xr extends $r{constructor(){super(),this.name="Context",this._constants=new Map,this._timeouts=new Wr,this._timeoutIds=0,this._initialized=!1,this.isOffline=!1,this._workletModules=new Map;const e=Or(Xr.getDefaults(),arguments,["context"]);e.context?this._context=e.context:this._context=function(e){return new Fs(e)}({latencyHint:e.latencyHint}),this._ticker=new kr(this.emit.bind(this,"tick"),e.clockSource,e.updateInterval),this.on("tick",this._timeoutLoop.bind(this)),this._context.onstatechange=()=>{this.emit("statechange",this.state)},this._setLatencyHint(e.latencyHint),this.lookAhead=e.lookAhead}static getDefaults(){return{clockSource:"worker",latencyHint:"interactive",lookAhead:.1,updateInterval:.05}}initialize(){var e;return this._initialized||(e=this,jr.forEach((t=>t(e))),this._initialized=!0),this}createAnalyser(){return this._context.createAnalyser()}createOscillator(){return this._context.createOscillator()}createBufferSource(){return this._context.createBufferSource()}createBiquadFilter(){return this._context.createBiquadFilter()}createBuffer(e,t,n){return this._context.createBuffer(e,t,n)}createChannelMerger(e){return this._context.createChannelMerger(e)}createChannelSplitter(e){return this._context.createChannelSplitter(e)}createConstantSource(){return this._context.createConstantSource()}createConvolver(){return this._context.createConvolver()}createDelay(e){return this._context.createDelay(e)}createDynamicsCompressor(){return this._context.createDynamicsCompressor()}createGain(){return this._context.createGain()}createIIRFilter(e,t){return this._context.createIIRFilter(e,t)}createPanner(){return this._context.createPanner()}createPeriodicWave(e,t,n){return this._context.createPeriodicWave(e,t,n)}createStereoPanner(){return this._context.createStereoPanner()}createWaveShaper(){return this._context.createWaveShaper()}createMediaStreamSource(e){rr(Ir(this._context),"Not available if OfflineAudioContext");return this._context.createMediaStreamSource(e)}createMediaElementSource(e){rr(Ir(this._context),"Not available if OfflineAudioContext");return this._context.createMediaElementSource(e)}createMediaStreamDestination(){rr(Ir(this._context),"Not available if OfflineAudioContext");return this._context.createMediaStreamDestination()}decodeAudioData(e){return this._context.decodeAudioData(e)}get currentTime(){return this._context.currentTime}get state(){return this._context.state}get sampleRate(){return this._context.sampleRate}get listener(){return this.initialize(),this._listener}set listener(e){rr(!this._initialized,"The listener cannot be set after initialization."),this._listener=e}get transport(){return this.initialize(),this._transport}set transport(e){rr(!this._initialized,"The transport cannot be set after initialization."),this._transport=e}get draw(){return this.initialize(),this._draw}set draw(e){rr(!this._initialized,"Draw cannot be set after initialization."),this._draw=e}get destination(){return this.initialize(),this._destination}set destination(e){rr(!this._initialized,"The destination cannot be set after initialization."),this._destination=e}createAudioWorkletNode(e,t){return function(e,t,n){return rr(dr(Xs),"This node only works in a secure context (https or localhost)"),new Xs(e,t,n)}(this.rawContext,e,t)}addAudioWorkletModule(e,t){return Cr(this,void 0,void 0,(function*(){rr(dr(this.rawContext.audioWorklet),"AudioWorkletNode is only available in a secure context (https or localhost)"),this._workletModules.has(t)||this._workletModules.set(t,this.rawContext.audioWorklet.addModule(e)),yield this._workletModules.get(t)}))}workletsAreReady(){return Cr(this,void 0,void 0,(function*(){const e=[];this._workletModules.forEach((t=>e.push(t))),yield Promise.all(e)}))}get updateInterval(){return this._ticker.updateInterval}set updateInterval(e){this._ticker.updateInterval=e}get clockSource(){return this._ticker.type}set clockSource(e){this._ticker.type=e}get latencyHint(){return this._latencyHint}_setLatencyHint(e){let t=0;if(this._latencyHint=e,br(e))switch(e){case"interactive":t=.1;break;case"playback":t=.5;break;case"balanced":t=.25}this.lookAhead=t,this.updateInterval=t/2}get rawContext(){return this._context}now(){return this._context.currentTime+this.lookAhead}immediate(){return this._context.currentTime}resume(){return Ir(this._context)?this._context.resume():Promise.resolve()}close(){return Cr(this,void 0,void 0,(function*(){var e;Ir(this._context)&&(yield this._context.close()),this._initialized&&(e=this,qr.forEach((t=>t(e))))}))}getConstant(e){if(this._constants.has(e))return this._constants.get(e);{const t=this._context.createBuffer(1,128,this._context.sampleRate),n=t.getChannelData(0);for(let t=0;tthis._constants[e].disconnect())),this}_timeoutLoop(){const e=this.now();let t=this._timeouts.peek();for(;this._timeouts.length&&t&&t.time<=e;)t.callback(),this._timeouts.shift(),t=this._timeouts.peek()}setTimeout(e,t){this._timeoutIds++;const n=this.now();return this._timeouts.add({callback:e,id:this._timeoutIds,time:n+t}),this._timeoutIds}clearTimeout(e){return this._timeouts.forEach((t=>{t.id===e&&this._timeouts.remove(t)})),this}clearInterval(e){return this.clearTimeout(e)}setInterval(e,t){const n=++this._timeoutIds,s=()=>{const r=this.now();this._timeouts.add({callback:()=>{e(),s()},id:n,time:r+t})};return s(),n}}function Zr(e,t){yr(t)?t.forEach((t=>Zr(e,t))):Object.defineProperty(e,t,{enumerable:!0,writable:!1})}function Yr(e,t){yr(t)?t.forEach((t=>Yr(e,t))):Object.defineProperty(e,t,{writable:!0})}const Qr=()=>{};class Jr extends zr{constructor(){super(),this.name="ToneAudioBuffer",this.onload=Qr;const e=Or(Jr.getDefaults(),arguments,["url","onload","onerror"]);this.reverse=e.reverse,this.onload=e.onload,e.url&&Tr(e.url)||e.url instanceof Jr?this.set(e.url):br(e.url)&&this.load(e.url).catch(e.onerror)}static getDefaults(){return{onerror:Qr,onload:Qr,reverse:!1}}get sampleRate(){return this._buffer?this._buffer.sampleRate:si().sampleRate}set(e){return e instanceof Jr?e.loaded?this._buffer=e.get():e.onload=()=>{this.set(e),this.onload(this)}:this._buffer=e,this._reversed&&this._reverse(),this}get(){return this._buffer}load(e){return Cr(this,void 0,void 0,(function*(){const t=Jr.load(e).then((e=>{this.set(e),this.onload(this)}));Jr.downloads.push(t);try{yield t}finally{const e=Jr.downloads.indexOf(t);Jr.downloads.splice(e,1)}return this}))}dispose(){return super.dispose(),this._buffer=void 0,this}fromArray(e){const t=yr(e)&&e[0].length>0,n=t?e.length:1,s=t?e[0].length:e.length,r=si(),i=r.createBuffer(n,s,r.sampleRate),a=t||1!==n?e:[e];for(let e=0;ee/t)),this.fromArray(e)}return this}toArray(e){if(fr(e))return this.getChannelData(e);if(1===this.numberOfChannels)return this.toArray(0);{const e=[];for(let t=0;t0}get duration(){return this._buffer?this._buffer.duration:0}get length(){return this._buffer?this._buffer.length:0}get numberOfChannels(){return this._buffer?this._buffer.numberOfChannels:0}get reverse(){return this._reversed}set reverse(e){this._reversed!==e&&(this._reversed=e,this._reverse())}static fromArray(e){return(new Jr).fromArray(e)}static fromUrl(e){return Cr(this,void 0,void 0,(function*(){const t=new Jr;return yield t.load(e)}))}static load(e){return Cr(this,void 0,void 0,(function*(){const t=e.match(/\[([^\]\[]+\|.+)\]$/);if(t){const n=t[1].split("|");let s=n[0];for(const e of n)if(Jr.supportsType(e)){s=e;break}e=e.replace(t[0],s)}const n=""===Jr.baseUrl||Jr.baseUrl.endsWith("/")?Jr.baseUrl:Jr.baseUrl+"/",s=yield fetch(n+e);if(!s.ok)throw new Error(`could not load url: ${e}`);const r=yield s.arrayBuffer();return yield si().decodeAudioData(r)}))}static supportsType(e){const t=e.split("."),n=t[t.length-1];return""!==document.createElement("audio").canPlayType("audio/"+n)}static loaded(){return Cr(this,void 0,void 0,(function*(){for(yield Promise.resolve();Jr.downloads.length;)yield Jr.downloads[0]}))}}Jr.baseUrl="",Jr.downloads=[];class ei extends Xr{constructor(){var e,t,n;super({clockSource:"offline",context:Er(arguments[0])?arguments[0]:(e=arguments[0],t=arguments[1]*arguments[2],n=arguments[2],new Qs(e,t,n)),lookAhead:0,updateInterval:Er(arguments[0])?128/arguments[0].sampleRate:128/arguments[2]}),this.name="OfflineContext",this._currentTime=0,this.isOffline=!0,this._duration=Er(arguments[0])?arguments[0].length/arguments[0].sampleRate:arguments[1]}now(){return this._currentTime}get currentTime(){return this._currentTime}_renderClock(e){return Cr(this,void 0,void 0,(function*(){let t=0;for(;this._duration-this._currentTime>=0;){this.emit("tick"),this._currentTime+=128/this.sampleRate,t++;const n=Math.floor(this.sampleRate/128);e&&t%n==0&&(yield new Promise((e=>setTimeout(e,1))))}}))}render(e=!0){return Cr(this,void 0,void 0,(function*(){yield this.workletsAreReady(),yield this._renderClock(e);const t=yield this._context.startRendering();return new Jr(t)}))}close(){return Promise.resolve()}}const ti=new class extends $r{constructor(){super(...arguments),this.lookAhead=0,this.latencyHint=0,this.isOffline=!1}createAnalyser(){return{}}createOscillator(){return{}}createBufferSource(){return{}}createBiquadFilter(){return{}}createBuffer(e,t,n){return{}}createChannelMerger(e){return{}}createChannelSplitter(e){return{}}createConstantSource(){return{}}createConvolver(){return{}}createDelay(e){return{}}createDynamicsCompressor(){return{}}createGain(){return{}}createIIRFilter(e,t){return{}}createPanner(){return{}}createPeriodicWave(e,t,n){return{}}createStereoPanner(){return{}}createWaveShaper(){return{}}createMediaStreamSource(e){return{}}createMediaElementSource(e){return{}}createMediaStreamDestination(){return{}}decodeAudioData(e){return Promise.resolve({})}createAudioWorkletNode(e,t){return{}}get rawContext(){return{}}addAudioWorkletModule(e,t){return Cr(this,void 0,void 0,(function*(){return Promise.resolve()}))}resume(){return Promise.resolve()}setTimeout(e,t){return 0}clearTimeout(e){return this}setInterval(e,t){return 0}clearInterval(e){return this}getConstant(e){return{}}get currentTime(){return 0}get state(){return{}}get sampleRate(){return 0}get listener(){return{}}get transport(){return{}}get draw(){return{}}set draw(e){}get destination(){return{}}set destination(e){}now(){return 0}immediate(){return 0}};let ni=ti;function si(){return ni===ti&&xr&&ri(new Xr),ni}function ri(e){ni=Ir(e)?new Xr(e):Er(e)?new ei(e):e}function ii(){return ni.resume()}if(vr&&!vr.TONE_SILENCE_LOGGING){let e="v";"dev"===i&&(e="")}function ai(e){return Math.pow(10,e/20)}function oi(e){return Math.log(e)/Math.LN10*20}function li(e){return Math.pow(2,e/12)}let ui=440;function ci(e){return Math.round(hi(e))}function hi(e){return 69+12*Math.log2(e/ui)}function di(e){return ui*Math.pow(2,(e-69)/12)}class pi extends zr{constructor(e,t,n){super(),this.defaultUnits="s",this._val=t,this._units=n,this.context=e,this._expressions=this._getExpressions()}_getExpressions(){return{hz:{method:e=>this._frequencyToUnits(parseFloat(e)),regexp:/^(\d+(?:\.\d+)?)hz$/i},i:{method:e=>this._ticksToUnits(parseInt(e,10)),regexp:/^(\d+)i$/i},m:{method:e=>this._beatsToUnits(parseInt(e,10)*this._getTimeSignature()),regexp:/^(\d+)m$/i},n:{method:(e,t)=>{const n=parseInt(e,10),s="."===t?1.5:1;return 1===n?this._beatsToUnits(this._getTimeSignature())*s:this._beatsToUnits(4/n)*s},regexp:/^(\d+)n(\.?)$/i},number:{method:e=>this._expressions[this.defaultUnits].method.call(this,e),regexp:/^(\d+(?:\.\d+)?)$/},s:{method:e=>this._secondsToUnits(parseFloat(e)),regexp:/^(\d+(?:\.\d+)?)s$/},samples:{method:e=>parseInt(e,10)/this.context.sampleRate,regexp:/^(\d+)samples$/},t:{method:e=>{const t=parseInt(e,10);return this._beatsToUnits(8/(3*Math.floor(t)))},regexp:/^(\d+)t$/i},tr:{method:(e,t,n)=>{let s=0;return e&&"0"!==e&&(s+=this._beatsToUnits(this._getTimeSignature()*parseFloat(e))),t&&"0"!==t&&(s+=this._beatsToUnits(parseFloat(t))),n&&"0"!==n&&(s+=this._beatsToUnits(parseFloat(n)/4)),s},regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?$/}}}valueOf(){if(this._val instanceof pi&&this.fromType(this._val),hr(this._val))return this._noArg();if(br(this._val)&&hr(this._units)){for(const e in this._expressions)if(this._expressions[e].regexp.test(this._val.trim())){this._units=e;break}}else if(mr(this._val)){let e=0;for(const t in this._val)if(dr(this._val[t])){const n=this._val[t];e+=new this.constructor(this.context,t).valueOf()*n}return e}if(dr(this._units)){const e=this._expressions[this._units],t=this._val.toString().trim().match(e.regexp);return t?e.method.apply(this,t.slice(1)):e.method.call(this,this._val)}return br(this._val)?parseFloat(this._val):this._val}_frequencyToUnits(e){return 1/e}_beatsToUnits(e){return 60/this._getBpm()*e}_secondsToUnits(e){return e}_ticksToUnits(e){return e*this._beatsToUnits(1)/this._getPPQ()}_noArg(){return this._now()}_getBpm(){return this.context.transport.bpm.value}_getTimeSignature(){return this.context.transport.timeSignature}_getPPQ(){return this.context.transport.PPQ}fromType(e){switch(this._units=void 0,this.defaultUnits){case"s":this._val=e.toSeconds();break;case"i":this._val=e.toTicks();break;case"hz":this._val=e.toFrequency();break;case"midi":this._val=e.toMidi()}return this}toFrequency(){return 1/this.toSeconds()}toSamples(){return this.toSeconds()*this.context.sampleRate}toMilliseconds(){return 1e3*this.toSeconds()}}class fi extends pi{constructor(){super(...arguments),this.name="TimeClass"}_getExpressions(){return Object.assign(super._getExpressions(),{now:{method:e=>this._now()+new this.constructor(this.context,e).valueOf(),regexp:/^\+(.+)/},quantize:{method:e=>{const t=new fi(this.context,e).valueOf();return this._secondsToUnits(this.context.transport.nextSubdivision(t))},regexp:/^@(.+)/}})}quantize(e,t=1){const n=new this.constructor(this.context,e).valueOf(),s=this.valueOf();return s+(Math.round(s/n)*n-s)*t}toNotation(){const e=this.toSeconds(),t=["1m"];for(let e=1;e<9;e++){const n=Math.pow(2,e);t.push(n+"n."),t.push(n+"n"),t.push(n+"t")}t.push("0");let n=t[0],s=new fi(this.context,t[0]).toSeconds();return t.forEach((t=>{const r=new fi(this.context,t).toSeconds();Math.abs(r-e)3&&(s=parseFloat(parseFloat(r).toFixed(3)));return[n,t,s].join(":")}toTicks(){const e=this._beatsToUnits(1),t=this.valueOf()/e;return Math.round(t*this._getPPQ())}toSeconds(){return this.valueOf()}toMidi(){return ci(this.toFrequency())}_now(){return this.context.now()}}function mi(e,t){return new fi(si(),e,t)}class gi extends fi{constructor(){super(...arguments),this.name="Frequency",this.defaultUnits="hz"}static get A4(){return ui}static set A4(e){!function(e){ui=e}(e)}_getExpressions(){return Object.assign({},super._getExpressions(),{midi:{regexp:/^(\d+(?:\.\d+)?midi)/,method(e){return"midi"===this.defaultUnits?e:gi.mtof(e)}},note:{regexp:/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i,method(e,t){const n=yi[e.toLowerCase()]+12*(parseInt(t,10)+1);return"midi"===this.defaultUnits?n:gi.mtof(n)}},tr:{regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?/,method(e,t,n){let s=1;return e&&"0"!==e&&(s*=this._beatsToUnits(this._getTimeSignature()*parseFloat(e))),t&&"0"!==t&&(s*=this._beatsToUnits(parseFloat(t))),n&&"0"!==n&&(s*=this._beatsToUnits(parseFloat(n)/4)),s}}})}transpose(e){return new gi(this.context,this.valueOf()*li(e))}harmonize(e){return e.map((e=>this.transpose(e)))}toMidi(){return ci(this.valueOf())}toNote(){const e=this.toFrequency(),t=Math.log2(e/gi.A4);let n=Math.round(12*t)+57;const s=Math.floor(n/12);s<0&&(n+=-12*s);return bi[n%12]+s.toString()}toSeconds(){return 1/super.toSeconds()}toTicks(){const e=this._beatsToUnits(1),t=this.valueOf()/e;return Math.floor(t*this._getPPQ())}_noArg(){return 0}_frequencyToUnits(e){return e}_ticksToUnits(e){return 1/(60*e/(this._getBpm()*this._getPPQ()))}_beatsToUnits(e){return 1/super._beatsToUnits(e)}_secondsToUnits(e){return 1/e}static mtof(e){return di(e)}static ftom(e){return ci(e)}}const yi={cbb:-2,cb:-1,c:0,"c#":1,cx:2,dbb:0,db:1,d:2,"d#":3,dx:4,ebb:2,eb:3,e:4,"e#":5,ex:6,fbb:3,fb:4,f:5,"f#":6,fx:7,gbb:5,gb:6,g:7,"g#":8,gx:9,abb:7,ab:8,a:9,"a#":10,ax:11,bbb:9,bb:10,b:11,"b#":12,bx:13},bi=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"];function wi(e,t){return new gi(si(),e,t)}class vi extends fi{constructor(){super(...arguments),this.name="TransportTime"}_now(){return this.context.transport.seconds}}function xi(e,t){return new vi(si(),e,t)}class Ai extends zr{constructor(){super();const e=Or(Ai.getDefaults(),arguments,["context"]);this.defaultContext?this.context=this.defaultContext:this.context=e.context}static getDefaults(){return{context:si()}}now(){return this.context.currentTime+this.context.lookAhead}immediate(){return this.context.currentTime}get sampleTime(){return 1/this.context.sampleRate}get blockTime(){return 128/this.context.sampleRate}toSeconds(e){return new fi(this.context,e).toSeconds()}toFrequency(e){return new gi(this.context,e).toFrequency()}toTicks(e){return new vi(this.context,e).toTicks()}_getPartialProperties(e){const t=this.get();return Object.keys(t).forEach((n=>{hr(e[n])&&delete t[n]})),t}get(){const e=this.constructor.getDefaults();return Object.keys(e).forEach((t=>{if(Reflect.has(this,t)){const n=this[t];dr(n)&&dr(n.value)&&dr(n.setValueAtTime)?e[t]=n.value:n instanceof Ai?e[t]=n._getPartialProperties(e[t]):yr(n)||fr(n)||br(n)||gr(n)?e[t]=n:delete e[t]}})),e}set(e){return Object.keys(e).forEach((t=>{Reflect.has(this,t)&&dr(this[t])&&(this[t]&&dr(this[t].value)&&dr(this[t].setValueAtTime)?this[t].value!==e[t]&&(this[t].value=e[t]):this[t]instanceof Ai?this[t].set(e[t]):this[t]=e[t])})),this}}class Ci extends Wr{constructor(e="stopped"){super(),this.name="StateTimeline",this._initial=e,this.setStateAtTime(this._initial,0)}getValueAtTime(e){const t=this.get(e);return null!==t?t.state:this._initial}setStateAtTime(e,t,n){return ir(t,0),this.add(Object.assign({},n,{state:e,time:t})),this}getLastState(e,t){for(let n=this._search(t);n>=0;n--){const t=this._timeline[n];if(t.state===e)return t}}getNextState(e,t){const n=this._search(t);if(-1!==n)for(let t=n;t0,"timeConstant must be a number greater than 0");const r=this.toSeconds(t);return this._assertRange(s),rr(isFinite(s)&&isFinite(r),`Invalid argument(s) to setTargetAtTime: ${JSON.stringify(e)}, ${JSON.stringify(t)}`),this._events.add({constant:n,time:r,type:"setTargetAtTime",value:s}),this.log(this.units,"setTargetAtTime",e,r,n),this._param.setTargetAtTime(s,r,n),this}setValueCurveAtTime(e,t,n,s=1){n=this.toSeconds(n),t=this.toSeconds(t);const r=this._fromType(e[0])*s;this.setValueAtTime(this._toType(r),t);const i=n/(e.length-1);for(let n=1;n{"cancelScheduledValues"===t.type?e.cancelScheduledValues(t.time):"setTargetAtTime"===t.type?e.setTargetAtTime(t.value,t.time,t.constant):e[t.type](t.value,t.time)})),this}setParam(e){rr(this._swappable,"The Param must be assigned as 'swappable' in the constructor");const t=this.input;return t.disconnect(this._param),this.apply(e),this._param=e,t.connect(this._param),this}dispose(){return super.dispose(),this._events.dispose(),this}get defaultValue(){return this._toType(this._param.defaultValue)}_exponentialApproach(e,t,n,s,r){return n+(t-n)*Math.exp(-(r-e)/s)}_linearInterpolate(e,t,n,s,r){return t+(r-e)/(n-e)*(s-t)}_exponentialInterpolate(e,t,n,s,r){return t*Math.pow(s/t,(r-e)/(n-e))}}class Si extends Ai{constructor(){super(...arguments),this.name="ToneAudioNode",this._internalChannels=[]}get numberOfInputs(){return dr(this.input)?Sr(this.input)||this.input instanceof ki?1:this.input.numberOfInputs:0}get numberOfOutputs(){return dr(this.output)?this.output.numberOfOutputs:0}_isAudioNode(e){return dr(e)&&(e instanceof Si||_r(e))}_getInternalNodes(){const e=this._internalChannels.slice(0);return this._isAudioNode(this.input)&&e.push(this.input),this._isAudioNode(this.output)&&this.input!==this.output&&e.push(this.output),e}_setChannelProperties(e){this._getInternalNodes().forEach((t=>{t.channelCount=e.channelCount,t.channelCountMode=e.channelCountMode,t.channelInterpretation=e.channelInterpretation}))}_getChannelProperties(){const e=this._getInternalNodes();rr(e.length>0,"ToneAudioNode does not have any internal nodes");const t=e[0];return{channelCount:t.channelCount,channelCountMode:t.channelCountMode,channelInterpretation:t.channelInterpretation}}get channelCount(){return this._getChannelProperties().channelCount}set channelCount(e){const t=this._getChannelProperties();this._setChannelProperties(Object.assign(t,{channelCount:e}))}get channelCountMode(){return this._getChannelProperties().channelCountMode}set channelCountMode(e){const t=this._getChannelProperties();this._setChannelProperties(Object.assign(t,{channelCountMode:e}))}get channelInterpretation(){return this._getChannelProperties().channelInterpretation}set channelInterpretation(e){const t=this._getChannelProperties();this._setChannelProperties(Object.assign(t,{channelInterpretation:e}))}connect(e,t=0,n=0){return Ei(this,e,t,n),this}toDestination(){return this.connect(this.context.destination),this}toMaster(){return cr("toMaster() has been renamed toDestination()"),this.toDestination()}disconnect(e,t=0,n=0){return Ii(this,e,t,n),this}chain(...e){return _i(this,...e),this}fan(...e){return e.forEach((e=>this.connect(e))),this}dispose(){return super.dispose(),dr(this.input)&&(this.input instanceof Si?this.input.dispose():_r(this.input)&&this.input.disconnect()),dr(this.output)&&(this.output instanceof Si?this.output.dispose():_r(this.output)&&this.output.disconnect()),this._internalChannels=[],this}}function _i(...e){const t=e.shift();e.reduce(((e,t)=>(e instanceof Si?e.connect(t):_r(e)&&Ei(e,t),t)),t)}function Ei(e,t,n=0,s=0){for(rr(dr(e),"Cannot connect from undefined node"),rr(dr(t),"Cannot connect to undefined node"),(t instanceof Si||_r(t))&&rr(t.numberOfInputs>0,"Cannot connect to node with no inputs"),rr(e.numberOfOutputs>0,"Cannot connect from node with no outputs");t instanceof Si||t instanceof ki;)dr(t.input)&&(t=t.input);for(;e instanceof Si;)dr(e.output)&&(e=e.output);Sr(t)?e.connect(t,n):e.connect(t,n,s)}function Ii(e,t,n=0,s=0){if(dr(t))for(;t instanceof Si;)t=t.input;for(;!_r(e);)dr(e.output)&&(e=e.output);Sr(t)?e.disconnect(t,n):_r(t)?e.disconnect(t,n,s):e.disconnect()}class Ti extends Si{constructor(){super(Or(Ti.getDefaults(),arguments,["gain","units"])),this.name="Gain",this._gainNode=this.context.createGain(),this.input=this._gainNode,this.output=this._gainNode;const e=Or(Ti.getDefaults(),arguments,["gain","units"]);this.gain=new ki({context:this.context,convert:e.convert,param:this._gainNode.gain,units:e.units,value:e.gain,minValue:e.minValue,maxValue:e.maxValue}),Zr(this,"gain")}static getDefaults(){return Object.assign(Si.getDefaults(),{convert:!0,gain:1,units:"gain"})}dispose(){return super.dispose(),this._gainNode.disconnect(),this.gain.dispose(),this}}class Ni extends Si{constructor(e){super(e),this.onended=Qr,this._startTime=-1,this._stopTime=-1,this._timeout=-1,this.output=new Ti({context:this.context,gain:0}),this._gainNode=this.output,this.getStateAtTime=function(e){const t=this.toSeconds(e);return-1!==this._startTime&&t>=this._startTime&&(-1===this._stopTime||t<=this._stopTime)?"started":"stopped"},this._fadeIn=e.fadeIn,this._fadeOut=e.fadeOut,this._curve=e.curve,this.onended=e.onended}static getDefaults(){return Object.assign(Si.getDefaults(),{curve:"linear",fadeIn:0,fadeOut:0,onended:Qr})}_startGain(e,t=1){rr(-1===this._startTime,"Source cannot be started more than once");const n=this.toSeconds(this._fadeIn);return this._startTime=e+n,this._startTime=Math.max(this._startTime,this.context.currentTime),n>0?(this._gainNode.gain.setValueAtTime(0,e),"linear"===this._curve?this._gainNode.gain.linearRampToValueAtTime(t,e+n):this._gainNode.gain.exponentialApproachValueAtTime(t,e,n)):this._gainNode.gain.setValueAtTime(t,e),this}stop(e){return this.log("stop",e),this._stopGain(this.toSeconds(e)),this}_stopGain(e){rr(-1!==this._startTime,"'start' must be called before 'stop'"),this.cancelStop();const t=this.toSeconds(this._fadeOut);return this._stopTime=this.toSeconds(e)+t,this._stopTime=Math.max(this._stopTime,this.context.currentTime),t>0?"linear"===this._curve?this._gainNode.gain.linearRampTo(0,t,e):this._gainNode.gain.targetRampTo(0,t,e):(this._gainNode.gain.cancelAndHoldAtTime(e),this._gainNode.gain.setValueAtTime(0,e)),this.context.clearTimeout(this._timeout),this._timeout=this.context.setTimeout((()=>{const e="exponential"===this._curve?2*t:0;this._stopSource(this.now()+e),this._onended()}),this._stopTime-this.context.currentTime),this}_onended(){if(this.onended!==Qr&&(this.onended(this),this.onended=Qr,!this.context.isOffline)){const e=()=>this.dispose();void 0!==window.requestIdleCallback?window.requestIdleCallback(e):setTimeout(e,1e3)}}get state(){return this.getStateAtTime(this.now())}cancelStop(){return this.log("cancelStop"),rr(-1!==this._startTime,"Source is not started"),this._gainNode.gain.cancelScheduledValues(this._startTime+this.sampleTime),this.context.clearTimeout(this._timeout),this._stopTime=-1,this}dispose(){return super.dispose(),this._gainNode.disconnect(),this}}class Ri extends Ni{constructor(){super(Or(Ri.getDefaults(),arguments,["offset"])),this.name="ToneConstantSource",this._source=this.context.createConstantSource();const e=Or(Ri.getDefaults(),arguments,["offset"]);Ei(this._source,this._gainNode),this.offset=new ki({context:this.context,convert:e.convert,param:this._source.offset,units:e.units,value:e.offset,minValue:e.minValue,maxValue:e.maxValue})}static getDefaults(){return Object.assign(Ni.getDefaults(),{convert:!0,offset:1,units:"number"})}start(e){const t=this.toSeconds(e);return this.log("start",t),this._startGain(t),this._source.start(t),this}_stopSource(e){this._source.stop(e)}dispose(){return super.dispose(),"started"===this.state&&this.stop(),this._source.disconnect(),this.offset.dispose(),this}}class Oi extends Si{constructor(){super(Or(Oi.getDefaults(),arguments,["value","units"])),this.name="Signal",this.override=!0;const e=Or(Oi.getDefaults(),arguments,["value","units"]);this.output=this._constantSource=new Ri({context:this.context,convert:e.convert,offset:e.value,units:e.units,minValue:e.minValue,maxValue:e.maxValue}),this._constantSource.start(0),this.input=this._param=this._constantSource.offset}static getDefaults(){return Object.assign(Si.getDefaults(),{convert:!0,units:"number",value:0})}connect(e,t=0,n=0){return Di(this,e,t,n),this}dispose(){return super.dispose(),this._param.dispose(),this._constantSource.dispose(),this}setValueAtTime(e,t){return this._param.setValueAtTime(e,t),this}getValueAtTime(e){return this._param.getValueAtTime(e)}setRampPoint(e){return this._param.setRampPoint(e),this}linearRampToValueAtTime(e,t){return this._param.linearRampToValueAtTime(e,t),this}exponentialRampToValueAtTime(e,t){return this._param.exponentialRampToValueAtTime(e,t),this}exponentialRampTo(e,t,n){return this._param.exponentialRampTo(e,t,n),this}linearRampTo(e,t,n){return this._param.linearRampTo(e,t,n),this}targetRampTo(e,t,n){return this._param.targetRampTo(e,t,n),this}exponentialApproachValueAtTime(e,t,n){return this._param.exponentialApproachValueAtTime(e,t,n),this}setTargetAtTime(e,t,n){return this._param.setTargetAtTime(e,t,n),this}setValueCurveAtTime(e,t,n,s){return this._param.setValueCurveAtTime(e,t,n,s),this}cancelScheduledValues(e){return this._param.cancelScheduledValues(e),this}cancelAndHoldAtTime(e){return this._param.cancelAndHoldAtTime(e),this}rampTo(e,t,n){return this._param.rampTo(e,t,n),this}get value(){return this._param.value}set value(e){this._param.value=e}get convert(){return this._param.convert}set convert(e){this._param.convert=e}get units(){return this._param.units}get overridden(){return this._param.overridden}set overridden(e){this._param.overridden=e}get maxValue(){return this._param.maxValue}get minValue(){return this._param.minValue}apply(e){return this._param.apply(e),this}}function Di(e,t,n,s){(t instanceof ki||Sr(t)||t instanceof Oi&&t.override)&&(t.cancelScheduledValues(0),t.setValueAtTime(0,0),t instanceof Oi&&(t.overridden=!0)),Ei(e,t,n,s)}class Mi extends ki{constructor(){super(Or(Mi.getDefaults(),arguments,["value"])),this.name="TickParam",this._events=new Wr(1/0),this._multiplier=1;const e=Or(Mi.getDefaults(),arguments,["value"]);this._multiplier=e.multiplier,this._events.cancel(0),this._events.add({ticks:0,time:0,type:"setValueAtTime",value:this._fromType(e.value)}),this.setValueAtTime(e.value,0)}static getDefaults(){return Object.assign(ki.getDefaults(),{multiplier:1,units:"hertz",value:1})}setTargetAtTime(e,t,n){t=this.toSeconds(t),this.setRampPoint(t);const s=this._fromType(e),r=this._events.get(t),i=Math.round(Math.max(1/n,1));for(let e=0;e<=i;e++){const i=n*e+t,a=this._exponentialApproach(r.time,r.value,s,n,i);this.linearRampToValueAtTime(this._toType(a),i)}return this}setValueAtTime(e,t){const n=this.toSeconds(t);super.setValueAtTime(e,t);const s=this._events.get(n),r=this._events.previousEvent(s),i=this._getTicksUntilEvent(r,n);return s.ticks=Math.max(i,0),this}linearRampToValueAtTime(e,t){const n=this.toSeconds(t);super.linearRampToValueAtTime(e,t);const s=this._events.get(n),r=this._events.previousEvent(s),i=this._getTicksUntilEvent(r,n);return s.ticks=Math.max(i,0),this}exponentialRampToValueAtTime(e,t){t=this.toSeconds(t);const n=this._fromType(e),s=this._events.get(t),r=Math.round(Math.max(10*(t-s.time),1)),i=(t-s.time)/r;for(let e=0;e<=r;e++){const r=i*e+s.time,a=this._exponentialInterpolate(s.time,s.value,t,n,r);this.linearRampToValueAtTime(this._toType(a),r)}return this}_getTicksUntilEvent(e,t){if(null===e)e={ticks:0,time:0,type:"setValueAtTime",value:0};else if(hr(e.ticks)){const t=this._events.previousEvent(e);e.ticks=this._getTicksUntilEvent(t,e.time)}const n=this._fromType(this.getValueAtTime(e.time));let s=this._fromType(this.getValueAtTime(t));const r=this._events.get(t);return r&&r.time===t&&"setValueAtTime"===r.type&&(s=this._fromType(this.getValueAtTime(t-this.sampleTime))),.5*(t-e.time)*(n+s)+e.ticks}getTicksAtTime(e){const t=this.toSeconds(e),n=this._events.get(t);return Math.max(this._getTicksUntilEvent(n,t),0)}getDurationOfTicks(e,t){const n=this.toSeconds(t),s=this.getTicksAtTime(t);return this.getTimeOfTick(s+e)-n}getTimeOfTick(e){const t=this._events.get(e,"ticks"),n=this._events.getAfter(e,"ticks");if(t&&t.ticks===e)return t.time;if(t&&n&&"linearRampToValueAtTime"===n.type&&t.value!==n.value){const s=this._fromType(this.getValueAtTime(t.time)),r=(this._fromType(this.getValueAtTime(n.time))-s)/(n.time-t.time),i=Math.sqrt(Math.pow(s,2)-2*r*(t.ticks-e)),a=(-s+i)/r;return(a>0?a:(-s-i)/r)+t.time}return t?0===t.value?1/0:t.time+(e-t.ticks)/t.value:e/this._initialValue}ticksToTime(e,t){return this.getDurationOfTicks(e,t)}timeToTicks(e,t){const n=this.toSeconds(t),s=this.toSeconds(e),r=this.getTicksAtTime(n);return this.getTicksAtTime(n+s)-r}_fromType(e){return"bpm"===this.units&&this.multiplier?1/(60/e/this.multiplier):super._fromType(e)}_toType(e){return"bpm"===this.units&&this.multiplier?e/this.multiplier*60:super._toType(e)}get multiplier(){return this._multiplier}set multiplier(e){const t=this.value;this._multiplier=e,this.cancelScheduledValues(0),this.setValueAtTime(t,0)}}class zi extends Oi{constructor(){super(Or(zi.getDefaults(),arguments,["value"])),this.name="TickSignal";const e=Or(zi.getDefaults(),arguments,["value"]);this.input=this._param=new Mi({context:this.context,convert:e.convert,multiplier:e.multiplier,param:this._constantSource.offset,units:e.units,value:e.value})}static getDefaults(){return Object.assign(Oi.getDefaults(),{multiplier:1,units:"hertz",value:1})}ticksToTime(e,t){return this._param.ticksToTime(e,t)}timeToTicks(e,t){return this._param.timeToTicks(e,t)}getTimeOfTick(e){return this._param.getTimeOfTick(e)}getDurationOfTicks(e,t){return this._param.getDurationOfTicks(e,t)}getTicksAtTime(e){return this._param.getTicksAtTime(e)}get multiplier(){return this._param.multiplier}set multiplier(e){this._param.multiplier=e}dispose(){return super.dispose(),this._param.dispose(),this}}class Fi extends Ai{constructor(){super(Or(Fi.getDefaults(),arguments,["frequency"])),this.name="TickSource",this._state=new Ci,this._tickOffset=new Wr;const e=Or(Fi.getDefaults(),arguments,["frequency"]);this.frequency=new zi({context:this.context,units:e.units,value:e.frequency}),Zr(this,"frequency"),this._state.setStateAtTime("stopped",0),this.setTicksAtTime(0,0)}static getDefaults(){return Object.assign({frequency:1,units:"hertz"},Ai.getDefaults())}get state(){return this.getStateAtTime(this.now())}start(e,t){const n=this.toSeconds(e);return"started"!==this._state.getValueAtTime(n)&&(this._state.setStateAtTime("started",n),dr(t)&&this.setTicksAtTime(t,n)),this}stop(e){const t=this.toSeconds(e);if("stopped"===this._state.getValueAtTime(t)){const e=this._state.get(t);e&&e.time>0&&(this._tickOffset.cancel(e.time),this._state.cancel(e.time))}return this._state.cancel(t),this._state.setStateAtTime("stopped",t),this.setTicksAtTime(0,t),this}pause(e){const t=this.toSeconds(e);return"started"===this._state.getValueAtTime(t)&&this._state.setStateAtTime("paused",t),this}cancel(e){return e=this.toSeconds(e),this._state.cancel(e),this._tickOffset.cancel(e),this}getTicksAtTime(e){const t=this.toSeconds(e),n=this._state.getLastState("stopped",t),s={state:"paused",time:t};this._state.add(s);let r=n,i=0;return this._state.forEachBetween(n.time,t+this.sampleTime,(e=>{let t=r.time;const n=this._tickOffset.get(e.time);n&&n.time>=r.time&&(i=n.ticks,t=n.time),"started"===r.state&&"started"!==e.state&&(i+=this.frequency.getTicksAtTime(e.time)-this.frequency.getTicksAtTime(t)),r=e})),this._state.remove(s),i}get ticks(){return this.getTicksAtTime(this.now())}set ticks(e){this.setTicksAtTime(e,this.now())}get seconds(){return this.getSecondsAtTime(this.now())}set seconds(e){const t=this.now(),n=this.frequency.timeToTicks(e,t);this.setTicksAtTime(n,t)}getSecondsAtTime(e){e=this.toSeconds(e);const t=this._state.getLastState("stopped",e),n={state:"paused",time:e};this._state.add(n);let s=t,r=0;return this._state.forEachBetween(t.time,e+this.sampleTime,(e=>{let t=s.time;const n=this._tickOffset.get(e.time);n&&n.time>=s.time&&(r=n.seconds,t=n.time),"started"===s.state&&"started"!==e.state&&(r+=e.time-t),s=e})),this._state.remove(n),r}setTicksAtTime(e,t){return t=this.toSeconds(t),this._tickOffset.cancel(t),this._tickOffset.add({seconds:this.frequency.getDurationOfTicks(e,t),ticks:e,time:t}),this}getStateAtTime(e){return e=this.toSeconds(e),this._state.getValueAtTime(e)}getTimeOfTick(e,t=this.now()){const n=this._tickOffset.get(t),s=this._state.get(t),r=Math.max(n.time,s.time),i=this.frequency.getTicksAtTime(r)+e-n.ticks;return this.frequency.getTimeOfTick(i)}forEachTickBetween(e,t,n){let s=this._state.get(e);this._state.forEachBetween(e,t,(t=>{s&&"started"===s.state&&"started"!==t.state&&this.forEachTickBetween(Math.max(s.time,e),t.time-this.sampleTime,n),s=t}));let r=null;if(s&&"started"===s.state){const i=Math.max(s.time,e),a=this.frequency.getTicksAtTime(i),o=a-this.frequency.getTicksAtTime(s.time);let l=Math.ceil(o)-o;l=Ur(l,1)?0:l;let u=this.frequency.getTimeOfTick(a+l);for(;u{switch(e.state){case"started":const t=this._tickSource.getTicksAtTime(e.time);this.emit("start",e.time,t);break;case"stopped":0!==e.time&&this.emit("stop",e.time);break;case"paused":this.emit("pause",e.time)}})),this._tickSource.forEachTickBetween(e,t,((e,t)=>{this.callback(e,t)})))}getStateAtTime(e){const t=this.toSeconds(e);return this._state.getValueAtTime(t)}dispose(){return super.dispose(),this.context.off("tick",this._boundLoop),this._tickSource.dispose(),this._state.dispose(),this}}Kr.mixin(Bi);class Li extends Si{constructor(){super(Or(Li.getDefaults(),arguments,["delayTime","maxDelay"])),this.name="Delay";const e=Or(Li.getDefaults(),arguments,["delayTime","maxDelay"]),t=this.toSeconds(e.maxDelay);this._maxDelay=Math.max(t,this.toSeconds(e.delayTime)),this._delayNode=this.input=this.output=this.context.createDelay(t),this.delayTime=new ki({context:this.context,param:this._delayNode.delayTime,units:"time",value:e.delayTime,minValue:0,maxValue:this.maxDelay}),Zr(this,"delayTime")}static getDefaults(){return Object.assign(Si.getDefaults(),{delayTime:0,maxDelay:1})}get maxDelay(){return this._maxDelay}dispose(){return super.dispose(),this._delayNode.disconnect(),this.delayTime.dispose(),this}}function Pi(e,t,n=2,s=si().sampleRate){return Cr(this,void 0,void 0,(function*(){const r=si(),i=new ei(n,t,s);ri(i),yield e(i);const a=i.render();ri(r);const o=yield a;return new Jr(o)}))}class Ui extends zr{constructor(){super(),this.name="ToneAudioBuffers",this._buffers=new Map,this._loadingCount=0;const e=Or(Ui.getDefaults(),arguments,["urls","onload","baseUrl"],"urls");this.baseUrl=e.baseUrl,Object.keys(e.urls).forEach((t=>{this._loadingCount++;const n=e.urls[t];this.add(t,n,this._bufferLoaded.bind(this,e.onload),e.onerror)}))}static getDefaults(){return{baseUrl:"",onerror:Qr,onload:Qr,urls:{}}}has(e){return this._buffers.has(e.toString())}get(e){return rr(this.has(e),`ToneAudioBuffers has no buffer named: ${e}`),this._buffers.get(e.toString())}_bufferLoaded(e){this._loadingCount--,0===this._loadingCount&&e&&e()}get loaded(){return Array.from(this._buffers).every((([e,t])=>t.loaded))}add(e,t,n=Qr,s=Qr){return br(t)?this._buffers.set(e.toString(),new Jr(this.baseUrl+t,n,s)):this._buffers.set(e.toString(),new Jr(t,n,s)),this}dispose(){return super.dispose(),this._buffers.forEach((e=>e.dispose())),this._buffers.clear(),this}}class Vi extends gi{constructor(){super(...arguments),this.name="MidiClass",this.defaultUnits="midi"}_frequencyToUnits(e){return ci(super._frequencyToUnits(e))}_ticksToUnits(e){return ci(super._ticksToUnits(e))}_beatsToUnits(e){return ci(super._beatsToUnits(e))}_secondsToUnits(e){return ci(super._secondsToUnits(e))}toMidi(){return this.valueOf()}toFrequency(){return di(this.toMidi())}transpose(e){return new Vi(this.context,this.toMidi()+e)}}function Wi(e,t){return new Vi(si(),e,t)}class ji extends vi{constructor(){super(...arguments),this.name="Ticks",this.defaultUnits="i"}_now(){return this.context.transport.ticks}_beatsToUnits(e){return this._getPPQ()*e}_secondsToUnits(e){return Math.floor(e/(60/this._getBpm())*this._getPPQ())}_ticksToUnits(e){return e}toTicks(){return this.valueOf()}toSeconds(){return this.valueOf()/this._getPPQ()*(60/this._getBpm())}}function Gi(e,t){return new ji(si(),e,t)}class qi extends Ai{constructor(){super(...arguments),this.name="Draw",this.expiration=.25,this.anticipation=.008,this._events=new Wr,this._boundDrawLoop=this._drawLoop.bind(this),this._animationFrame=-1}schedule(e,t){return this._events.add({callback:e,time:this.toSeconds(t)}),1===this._events.length&&(this._animationFrame=requestAnimationFrame(this._boundDrawLoop)),this}cancel(e){return this._events.cancel(this.toSeconds(e)),this}_drawLoop(){const e=this.context.currentTime;for(;this._events.length&&this._events.peek().time-this.anticipation<=e;){const t=this._events.shift();t&&e-t.time<=this.expiration&&t.callback()}this._events.length>0&&(this._animationFrame=requestAnimationFrame(this._boundDrawLoop))}dispose(){return super.dispose(),this._events.dispose(),cancelAnimationFrame(this._animationFrame),this}}Gr((e=>{e.draw=new qi({context:e})})),Hr((e=>{e.draw.dispose()}));class Hi extends zr{constructor(){super(...arguments),this.name="IntervalTimeline",this._root=null,this._length=0}add(e){rr(dr(e.time),"Events must have a time property"),rr(dr(e.duration),"Events must have a duration parameter"),e.time=e.time.valueOf();let t=new Ki(e.time,e.time+e.duration,e);for(null===this._root?this._root=t:this._root.insert(t),this._length++;null!==t;)t.updateHeight(),t.updateMax(),this._rebalance(t),t=t.parent;return this}remove(e){if(null!==this._root){const t=[];this._root.search(e.time,t);for(const n of t)if(n.event===e){this._removeNode(n),this._length--;break}}return this}get length(){return this._length}cancel(e){return this.forEachFrom(e,(e=>this.remove(e))),this}_setRoot(e){this._root=e,null!==this._root&&(this._root.parent=null)}_replaceNodeInParent(e,t){null!==e.parent?(e.isLeftChild()?e.parent.left=t:e.parent.right=t,this._rebalance(e.parent)):this._setRoot(t)}_removeNode(e){if(null===e.left&&null===e.right)this._replaceNodeInParent(e,null);else if(null===e.right)this._replaceNodeInParent(e,e.left);else if(null===e.left)this._replaceNodeInParent(e,e.right);else{let t,n=null;if(e.getBalance()>0)if(null===e.left.right)t=e.left,t.right=e.right,n=t;else{for(t=e.left.right;null!==t.right;)t=t.right;t.parent&&(t.parent.right=t.left,n=t.parent,t.left=e.left,t.right=e.right)}else if(null===e.right.left)t=e.right,t.left=e.left,n=t;else{for(t=e.right.left;null!==t.left;)t=t.left;t.parent&&(t.parent.left=t.right,n=t.parent,t.left=e.left,t.right=e.right)}null!==e.parent?e.isLeftChild()?e.parent.left=t:e.parent.right=t:this._setRoot(t),n&&this._rebalance(n)}e.dispose()}_rotateLeft(e){const t=e.parent,n=e.isLeftChild(),s=e.right;s&&(e.right=s.left,s.left=e),null!==t?n?t.left=s:t.right=s:this._setRoot(s)}_rotateRight(e){const t=e.parent,n=e.isLeftChild(),s=e.left;s&&(e.left=s.right,s.right=e),null!==t?n?t.left=s:t.right=s:this._setRoot(s)}_rebalance(e){const t=e.getBalance();t>1&&e.left?e.left.getBalance()<0?this._rotateLeft(e.left):this._rotateRight(e):t<-1&&e.right&&(e.right.getBalance()>0?this._rotateRight(e.right):this._rotateLeft(e))}get(e){if(null!==this._root){const t=[];if(this._root.search(e,t),t.length>0){let e=t[0];for(let n=1;ne.low&&(e=t[n]);return e.event}}return null}forEach(e){if(null!==this._root){const t=[];this._root.traverse((e=>t.push(e))),t.forEach((t=>{t.event&&e(t.event)}))}return this}forEachAtTime(e,t){if(null!==this._root){const n=[];this._root.search(e,n),n.forEach((e=>{e.event&&t(e.event)}))}return this}forEachFrom(e,t){if(null!==this._root){const n=[];this._root.searchAfter(e,n),n.forEach((e=>{e.event&&t(e.event)}))}return this}dispose(){return super.dispose(),null!==this._root&&this._root.traverse((e=>e.dispose())),this._root=null,this}}class Ki{constructor(e,t,n){this._left=null,this._right=null,this.parent=null,this.height=0,this.event=n,this.low=e,this.high=t,this.max=this.high}insert(e){e.low<=this.low?null===this.left?this.left=e:this.left.insert(e):null===this.right?this.right=e:this.right.insert(e)}search(e,t){e>this.max||(null!==this.left&&this.left.search(e,t),this.low<=e&&this.high>e&&t.push(this),this.low>e||null!==this.right&&this.right.search(e,t))}searchAfter(e,t){this.low>=e&&(t.push(this),null!==this.left&&this.left.searchAfter(e,t)),null!==this.right&&this.right.searchAfter(e,t)}traverse(e){e(this),null!==this.left&&this.left.traverse(e),null!==this.right&&this.right.traverse(e)}updateHeight(){null!==this.left&&null!==this.right?this.height=Math.max(this.left.height,this.right.height)+1:null!==this.right?this.height=this.right.height+1:null!==this.left?this.height=this.left.height+1:this.height=0}updateMax(){this.max=this.high,null!==this.left&&(this.max=Math.max(this.max,this.left.max)),null!==this.right&&(this.max=Math.max(this.max,this.right.max))}getBalance(){let e=0;return null!==this.left&&null!==this.right?e=this.left.height-this.right.height:null!==this.left?e=this.left.height+1:null!==this.right&&(e=-(this.right.height+1)),e}isLeftChild(){return null!==this.parent&&this.parent.left===this}get left(){return this._left}set left(e){this._left=e,null!==e&&(e.parent=this),this.updateHeight(),this.updateMax()}get right(){return this._right}set right(e){this._right=e,null!==e&&(e.parent=this),this.updateHeight(),this.updateMax()}dispose(){this.parent=null,this._left=null,this._right=null,this.event=null}}class $i extends Si{constructor(){super(Or($i.getDefaults(),arguments,["volume"])),this.name="Volume";const e=Or($i.getDefaults(),arguments,["volume"]);this.input=this.output=new Ti({context:this.context,gain:e.volume,units:"decibels"}),this.volume=this.output.gain,Zr(this,"volume"),this._unmutedVolume=e.volume,this.mute=e.mute}static getDefaults(){return Object.assign(Si.getDefaults(),{mute:!1,volume:0})}get mute(){return this.volume.value===-1/0}set mute(e){!this.mute&&e?(this._unmutedVolume=this.volume.value,this.volume.value=-1/0):this.mute&&!e&&(this.volume.value=this._unmutedVolume)}dispose(){return super.dispose(),this.input.dispose(),this.volume.dispose(),this}}class Xi extends Si{constructor(){super(Or(Xi.getDefaults(),arguments)),this.name="Destination",this.input=new $i({context:this.context}),this.output=new Ti({context:this.context}),this.volume=this.input.volume;const e=Or(Xi.getDefaults(),arguments);_i(this.input,this.output,this.context.rawContext.destination),this.mute=e.mute,this._internalChannels=[this.input,this.context.rawContext.destination,this.output]}static getDefaults(){return Object.assign(Si.getDefaults(),{mute:!1,volume:0})}get mute(){return this.input.mute}set mute(e){this.input.mute=e}chain(...e){return this.input.disconnect(),e.unshift(this.input),e.push(this.output),_i(...e),this}get maxChannelCount(){return this.context.rawContext.destination.maxChannelCount}dispose(){return super.dispose(),this.volume.dispose(),this}}Gr((e=>{e.destination=new Xi({context:e})})),Hr((e=>{e.destination.dispose()}));class Zi extends zr{constructor(e){super(),this.name="TimelineValue",this._timeline=new Wr({memory:10}),this._initialValue=e}set(e,t){return this._timeline.add({value:e,time:t}),this}get(e){const t=this._timeline.get(e);return t?t.value:this._initialValue}}class Yi{constructor(e,t){this.id=Yi._eventId++;const n=Object.assign(Yi.getDefaults(),t);this.transport=e,this.callback=n.callback,this._once=n.once,this.time=n.time}static getDefaults(){return{callback:Qr,once:!1,time:0}}invoke(e){this.callback&&(this.callback(e),this._once&&this.transport.clear(this.id))}dispose(){return this.callback=void 0,this}}Yi._eventId=0;class Qi extends Yi{constructor(e,t){super(e,t),this._currentId=-1,this._nextId=-1,this._nextTick=this.time,this._boundRestart=this._restart.bind(this);const n=Object.assign(Qi.getDefaults(),t);this.duration=new ji(e.context,n.duration).valueOf(),this._interval=new ji(e.context,n.interval).valueOf(),this._nextTick=n.time,this.transport.on("start",this._boundRestart),this.transport.on("loopStart",this._boundRestart),this.context=this.transport.context,this._restart()}static getDefaults(){return Object.assign({},Yi.getDefaults(),{duration:1/0,interval:1,once:!1})}invoke(e){this._createEvents(e),super.invoke(e)}_createEvents(e){const t=this.transport.getTicksAtTime(e);t>=this.time&&t>=this._nextTick&&this._nextTick+this._intervalthis.time&&(this._nextTick=this.time+Math.ceil((t-this.time)/this._interval)*this._interval),this._currentId=this.transport.scheduleOnce(this.invoke.bind(this),new ji(this.context,this._nextTick).toSeconds()),this._nextTick+=this._interval,this._nextId=this.transport.scheduleOnce(this.invoke.bind(this),new ji(this.context,this._nextTick).toSeconds())}dispose(){return super.dispose(),this.transport.clear(this._currentId),this.transport.clear(this._nextId),this.transport.off("start",this._boundRestart),this.transport.off("loopStart",this._boundRestart),this}}class Ji extends Ai{constructor(){super(Or(Ji.getDefaults(),arguments)),this.name="Transport",this._loop=new Zi(!1),this._loopStart=0,this._loopEnd=0,this._scheduledEvents={},this._timeline=new Wr,this._repeatedEvents=new Hi,this._syncedSignals=[],this._swingAmount=0;const e=Or(Ji.getDefaults(),arguments);this._ppq=e.ppq,this._clock=new Bi({callback:this._processTick.bind(this),context:this.context,frequency:0,units:"bpm"}),this._bindClockEvents(),this.bpm=this._clock.frequency,this._clock.frequency.multiplier=e.ppq,this.bpm.setValueAtTime(e.bpm,0),Zr(this,"bpm"),this._timeSignature=e.timeSignature,this._swingTicks=e.ppq/2}static getDefaults(){return Object.assign(Ai.getDefaults(),{bpm:120,loopEnd:"4m",loopStart:0,ppq:192,swing:0,swingSubdivision:"8n",timeSignature:4})}_processTick(e,t){if(this._loop.get(e)&&t>=this._loopEnd&&(this.emit("loopEnd",e),this._clock.setTicksAtTime(this._loopStart,e),t=this._loopStart,this.emit("loopStart",e,this._clock.getSecondsAtTime(e)),this.emit("loop",e)),this._swingAmount>0&&t%this._ppq!=0&&t%(2*this._swingTicks)!=0){const n=t%(2*this._swingTicks)/(2*this._swingTicks),s=Math.sin(n*Math.PI)*this._swingAmount;e+=new ji(this.context,2*this._swingTicks/3).toSeconds()*s}this._timeline.forEachAtTime(t,(t=>t.invoke(e)))}schedule(e,t){const n=new Yi(this,{callback:e,time:new vi(this.context,t).toTicks()});return this._addEvent(n,this._timeline)}scheduleRepeat(e,t,n,s=1/0){const r=new Qi(this,{callback:e,duration:new fi(this.context,s).toTicks(),interval:new fi(this.context,t).toTicks(),time:new vi(this.context,n).toTicks()});return this._addEvent(r,this._repeatedEvents)}scheduleOnce(e,t){const n=new Yi(this,{callback:e,once:!0,time:new vi(this.context,t).toTicks()});return this._addEvent(n,this._timeline)}clear(e){if(this._scheduledEvents.hasOwnProperty(e)){const t=this._scheduledEvents[e.toString()];t.timeline.remove(t.event),t.event.dispose(),delete this._scheduledEvents[e.toString()]}return this}_addEvent(e,t){return this._scheduledEvents[e.id.toString()]={event:e,timeline:t},t.add(e),e.id}cancel(e=0){const t=this.toTicks(e);return this._timeline.forEachFrom(t,(e=>this.clear(e.id))),this._repeatedEvents.forEachFrom(t,(e=>this.clear(e.id))),this}_bindClockEvents(){this._clock.on("start",((e,t)=>{t=new ji(this.context,t).toSeconds(),this.emit("start",e,t)})),this._clock.on("stop",(e=>{this.emit("stop",e)})),this._clock.on("pause",(e=>{this.emit("pause",e)}))}get state(){return this._clock.getStateAtTime(this.now())}start(e,t){let n;return dr(t)&&(n=this.toTicks(t)),this._clock.start(e,n),this}stop(e){return this._clock.stop(e),this}pause(e){return this._clock.pause(e),this}toggle(e){return e=this.toSeconds(e),"started"!==this._clock.getStateAtTime(e)?this.start(e):this.stop(e),this}get timeSignature(){return this._timeSignature}set timeSignature(e){yr(e)&&(e=e[0]/e[1]*4),this._timeSignature=e}get loopStart(){return new fi(this.context,this._loopStart,"i").toSeconds()}set loopStart(e){this._loopStart=this.toTicks(e)}get loopEnd(){return new fi(this.context,this._loopEnd,"i").toSeconds()}set loopEnd(e){this._loopEnd=this.toTicks(e)}get loop(){return this._loop.get(this.now())}set loop(e){this._loop.set(e,this.now())}setLoopPoints(e,t){return this.loopStart=e,this.loopEnd=t,this}get swing(){return this._swingAmount}set swing(e){this._swingAmount=e}get swingSubdivision(){return new ji(this.context,this._swingTicks).toNotation()}set swingSubdivision(e){this._swingTicks=this.toTicks(e)}get position(){const e=this.now(),t=this._clock.getTicksAtTime(e);return new ji(this.context,t).toBarsBeatsSixteenths()}set position(e){const t=this.toTicks(e);this.ticks=t}get seconds(){return this._clock.seconds}set seconds(e){const t=this.now(),n=this._clock.frequency.timeToTicks(e,t);this.ticks=n}get progress(){if(this.loop){const e=this.now();return(this._clock.getTicksAtTime(e)-this._loopStart)/(this._loopEnd-this._loopStart)}return 0}get ticks(){return this._clock.ticks}set ticks(e){if(this._clock.ticks!==e){const t=this.now();if("started"===this.state){const n=this._clock.getTicksAtTime(t),s=t+this._clock.frequency.getDurationOfTicks(Math.ceil(n)-n,t);this.emit("stop",s),this._clock.setTicksAtTime(e,s),this.emit("start",s,this._clock.getSecondsAtTime(s))}else this._clock.setTicksAtTime(e,t)}}getTicksAtTime(e){return Math.round(this._clock.getTicksAtTime(e))}getSecondsAtTime(e){return this._clock.getSecondsAtTime(e)}get PPQ(){return this._clock.frequency.multiplier}set PPQ(e){this._clock.frequency.multiplier=e}nextSubdivision(e){if(e=this.toTicks(e),"started"!==this.state)return 0;{const t=this.now(),n=e-this.getTicksAtTime(t)%e;return this._clock.nextTickTime(n,t)}}syncSignal(e,t){if(!t){const n=this.now();if(0!==e.getValueAtTime(n)){const s=1/(60/this.bpm.getValueAtTime(n)/this.PPQ);t=e.getValueAtTime(n)/s}else t=0}const n=new Ti(t);return this.bpm.connect(n),n.connect(e._param),this._syncedSignals.push({initial:e.value,ratio:n,signal:e}),e.value=0,this}unsyncSignal(e){for(let t=this._syncedSignals.length-1;t>=0;t--){const n=this._syncedSignals[t];n.signal===e&&(n.ratio.dispose(),n.signal.value=n.initial,this._syncedSignals.splice(t,1))}return this}dispose(){return super.dispose(),this._clock.dispose(),Yr(this,"bpm"),this._timeline.dispose(),this._repeatedEvents.dispose(),this}}Kr.mixin(Ji),Gr((e=>{e.transport=new Ji({context:e})})),Hr((e=>{e.transport.dispose()}));class ea extends Si{constructor(e){super(e),this.input=void 0,this._state=new Ci("stopped"),this._synced=!1,this._scheduled=[],this._syncedStart=Qr,this._syncedStop=Qr,this._state.memory=100,this._state.increasing=!0,this._volume=this.output=new $i({context:this.context,mute:e.mute,volume:e.volume}),this.volume=this._volume.volume,Zr(this,"volume"),this.onstop=e.onstop}static getDefaults(){return Object.assign(Si.getDefaults(),{mute:!1,onstop:Qr,volume:0})}get state(){return this._synced?"started"===this.context.transport.state?this._state.getValueAtTime(this.context.transport.seconds):"stopped":this._state.getValueAtTime(this.now())}get mute(){return this._volume.mute}set mute(e){this._volume.mute=e}_clampToCurrentTime(e){return this._synced?e:Math.max(e,this.context.currentTime)}start(e,t,n){let s=hr(e)&&this._synced?this.context.transport.seconds:this.toSeconds(e);if(s=this._clampToCurrentTime(s),this._synced||"started"!==this._state.getValueAtTime(s))if(this.log("start",s),this._state.setStateAtTime("started",s),this._synced){const e=this._state.get(s);e&&(e.offset=this.toSeconds(Dr(t,0)),e.duration=n?this.toSeconds(n):void 0);const r=this.context.transport.schedule((e=>{this._start(e,t,n)}),s);this._scheduled.push(r),"started"===this.context.transport.state&&this.context.transport.getSecondsAtTime(this.immediate())>s&&this._syncedStart(this.now(),this.context.transport.seconds)}else ar(this.context),this._start(s,t,n);else rr(Br(s,this._state.get(s).time),"Start time must be strictly greater than previous start time"),this._state.cancel(s),this._state.setStateAtTime("started",s),this.log("restart",s),this.restart(s,t,n);return this}stop(e){let t=hr(e)&&this._synced?this.context.transport.seconds:this.toSeconds(e);if(t=this._clampToCurrentTime(t),"started"===this._state.getValueAtTime(t)||dr(this._state.getNextState("started",t))){if(this.log("stop",t),this._synced){const e=this.context.transport.schedule(this._stop.bind(this),t);this._scheduled.push(e)}else this._stop(t);this._state.cancel(t),this._state.setStateAtTime("stopped",t)}return this}restart(e,t,n){return e=this.toSeconds(e),"started"===this._state.getValueAtTime(e)&&(this._state.cancel(e),this._restart(e,t,n)),this}sync(){return this._synced||(this._synced=!0,this._syncedStart=(e,t)=>{if(t>0){const n=this._state.get(t);if(n&&"started"===n.state&&n.time!==t){const s=t-this.toSeconds(n.time);let r;n.duration&&(r=this.toSeconds(n.duration)-s),this._start(e,this.toSeconds(n.offset)+s,r)}}},this._syncedStop=e=>{const t=this.context.transport.getSecondsAtTime(Math.max(e-this.sampleTime,0));"started"===this._state.getValueAtTime(t)&&this._stop(e)},this.context.transport.on("start",this._syncedStart),this.context.transport.on("loopStart",this._syncedStart),this.context.transport.on("stop",this._syncedStop),this.context.transport.on("pause",this._syncedStop),this.context.transport.on("loopEnd",this._syncedStop)),this}unsync(){return this._synced&&(this.context.transport.off("stop",this._syncedStop),this.context.transport.off("pause",this._syncedStop),this.context.transport.off("loopEnd",this._syncedStop),this.context.transport.off("start",this._syncedStart),this.context.transport.off("loopStart",this._syncedStart)),this._synced=!1,this._scheduled.forEach((e=>this.context.transport.clear(e))),this._scheduled=[],this._state.cancel(0),this._stop(0),this}dispose(){return super.dispose(),this.onstop=Qr,this.unsync(),this._volume.dispose(),this._state.dispose(),this}}class ta extends Ni{constructor(){super(Or(ta.getDefaults(),arguments,["url","onload"])),this.name="ToneBufferSource",this._source=this.context.createBufferSource(),this._internalChannels=[this._source],this._sourceStarted=!1,this._sourceStopped=!1;const e=Or(ta.getDefaults(),arguments,["url","onload"]);Ei(this._source,this._gainNode),this._source.onended=()=>this._stopSource(),this.playbackRate=new ki({context:this.context,param:this._source.playbackRate,units:"positive",value:e.playbackRate}),this.loop=e.loop,this.loopStart=e.loopStart,this.loopEnd=e.loopEnd,this._buffer=new Jr(e.url,e.onload,e.onerror),this._internalChannels.push(this._source)}static getDefaults(){return Object.assign(Ni.getDefaults(),{url:new Jr,loop:!1,loopEnd:0,loopStart:0,onload:Qr,onerror:Qr,playbackRate:1})}get fadeIn(){return this._fadeIn}set fadeIn(e){this._fadeIn=e}get fadeOut(){return this._fadeOut}set fadeOut(e){this._fadeOut=e}get curve(){return this._curve}set curve(e){this._curve=e}start(e,t,n,s=1){rr(this.buffer.loaded,"buffer is either not set or not loaded");const r=this.toSeconds(e);this._startGain(r,s),t=this.loop?Dr(t,this.loopStart):Dr(t,0);let i=Math.max(this.toSeconds(t),0);if(this.loop){const e=this.toSeconds(this.loopEnd)||this.buffer.duration,t=this.toSeconds(this.loopStart),n=e-t;Lr(i,e)&&(i=(i-t)%n+t),Ur(i,this.buffer.duration)&&(i=0)}if(this._source.buffer=this.buffer.get(),this._source.loopEnd=this.toSeconds(this.loopEnd)||this.buffer.duration,Pr(i,this.buffer.duration)&&(this._sourceStarted=!0,this._source.start(r,i)),dr(n)){let e=this.toSeconds(n);e=Math.max(e,0),this.stop(r+e)}return this}_stopSource(e){!this._sourceStopped&&this._sourceStarted&&(this._sourceStopped=!0,this._source.stop(this.toSeconds(e)),this._onended())}get loopStart(){return this._source.loopStart}set loopStart(e){this._source.loopStart=this.toSeconds(e)}get loopEnd(){return this._source.loopEnd}set loopEnd(e){this._source.loopEnd=this.toSeconds(e)}get buffer(){return this._buffer}set buffer(e){this._buffer.set(e)}get loop(){return this._source.loop}set loop(e){this._source.loop=e,this._sourceStarted&&this.cancelStop()}dispose(){return super.dispose(),this._source.onended=null,this._source.disconnect(),this._buffer.dispose(),this.playbackRate.dispose(),this}}class na extends ea{constructor(){super(Or(na.getDefaults(),arguments,["type"])),this.name="Noise",this._source=null;const e=Or(na.getDefaults(),arguments,["type"]);this._playbackRate=e.playbackRate,this.type=e.type,this._fadeIn=e.fadeIn,this._fadeOut=e.fadeOut}static getDefaults(){return Object.assign(ea.getDefaults(),{fadeIn:0,fadeOut:0,playbackRate:1,type:"white"})}get type(){return this._type}set type(e){if(rr(e in ia,"Noise: invalid type: "+e),this._type!==e&&(this._type=e,"started"===this.state)){const e=this.now();this._stop(e),this._start(e)}}get playbackRate(){return this._playbackRate}set playbackRate(e){this._playbackRate=e,this._source&&(this._source.playbackRate.value=e)}_start(e){const t=ia[this._type];this._source=new ta({url:t,context:this.context,fadeIn:this._fadeIn,fadeOut:this._fadeOut,loop:!0,onended:()=>this.onstop(this),playbackRate:this._playbackRate}).connect(this.output),this._source.start(this.toSeconds(e),Math.random()*(t.duration-.001))}_stop(e){this._source&&(this._source.stop(this.toSeconds(e)),this._source=null)}get fadeIn(){return this._fadeIn}set fadeIn(e){this._fadeIn=e,this._source&&(this._source.fadeIn=this._fadeIn)}get fadeOut(){return this._fadeOut}set fadeOut(e){this._fadeOut=e,this._source&&(this._source.fadeOut=this._fadeOut)}_restart(e){this._stop(e),this._start(e)}dispose(){return super.dispose(),this._source&&this._source.disconnect(),this}}const sa=220500,ra={brown:null,pink:null,white:null},ia={get brown(){if(!ra.brown){const e=[];for(let t=0;t<2;t++){const n=new Float32Array(sa);e[t]=n;let s=0;for(let e=0;et.label===e||t.deviceId===e)),!this._device&&t.length>0&&(this._device=t[0]),rr(dr(this._device),`No matching device ${e}`));const n={audio:{echoCancellation:!1,sampleRate:this.context.sampleRate,noiseSuppression:!1,mozNoiseSuppression:!1}};this._device&&(n.audio.deviceId=this._device.deviceId);const s=yield navigator.mediaDevices.getUserMedia(n);if(!this._stream){this._stream=s;const e=this.context.createMediaStreamSource(s);Ei(e,this.output),this._mediaStream=e}return this}))}close(){return this._stream&&this._mediaStream&&(this._stream.getAudioTracks().forEach((e=>{e.stop()})),this._stream=void 0,this._mediaStream.disconnect(),this._mediaStream=void 0),this._device=void 0,this}static enumerateDevices(){return Cr(this,void 0,void 0,(function*(){return(yield navigator.mediaDevices.enumerateDevices()).filter((e=>"audioinput"===e.kind))}))}get state(){return this._stream&&this._stream.active?"started":"stopped"}get deviceId(){return this._device?this._device.deviceId:void 0}get groupId(){return this._device?this._device.groupId:void 0}get label(){return this._device?this._device.label:void 0}get mute(){return this._volume.mute}set mute(e){this._volume.mute=e}dispose(){return super.dispose(),this.close(),this._volume.dispose(),this.volume.dispose(),this}static get supported(){return dr(navigator.mediaDevices)&&dr(navigator.mediaDevices.getUserMedia)}}function oa(e,t){return Cr(this,void 0,void 0,(function*(){const n=t/e.context.sampleRate,s=new ei(1,n,e.context.sampleRate);new e.constructor(Object.assign(e.get(),{frequency:2/n,detune:0,context:s})).toDestination().start(0);return(yield s.render()).getChannelData(0)}))}class la extends Ni{constructor(){super(Or(la.getDefaults(),arguments,["frequency","type"])),this.name="ToneOscillatorNode",this._oscillator=this.context.createOscillator(),this._internalChannels=[this._oscillator];const e=Or(la.getDefaults(),arguments,["frequency","type"]);Ei(this._oscillator,this._gainNode),this.type=e.type,this.frequency=new ki({context:this.context,param:this._oscillator.frequency,units:"frequency",value:e.frequency}),this.detune=new ki({context:this.context,param:this._oscillator.detune,units:"cents",value:e.detune}),Zr(this,["frequency","detune"])}static getDefaults(){return Object.assign(Ni.getDefaults(),{detune:0,frequency:440,type:"sine"})}start(e){const t=this.toSeconds(e);return this.log("start",t),this._startGain(t),this._oscillator.start(t),this}_stopSource(e){this._oscillator.stop(e)}setPeriodicWave(e){return this._oscillator.setPeriodicWave(e),this}get type(){return this._oscillator.type}set type(e){this._oscillator.type=e}dispose(){return super.dispose(),"started"===this.state&&this.stop(),this._oscillator.disconnect(),this.frequency.dispose(),this.detune.dispose(),this}}class ua extends ea{constructor(){super(Or(ua.getDefaults(),arguments,["frequency","type"])),this.name="Oscillator",this._oscillator=null;const e=Or(ua.getDefaults(),arguments,["frequency","type"]);this.frequency=new Oi({context:this.context,units:"frequency",value:e.frequency}),Zr(this,"frequency"),this.detune=new Oi({context:this.context,units:"cents",value:e.detune}),Zr(this,"detune"),this._partials=e.partials,this._partialCount=e.partialCount,this._type=e.type,e.partialCount&&"custom"!==e.type&&(this._type=this.baseType+e.partialCount.toString()),this.phase=e.phase}static getDefaults(){return Object.assign(ea.getDefaults(),{detune:0,frequency:440,partialCount:0,partials:[],phase:0,type:"sine"})}_start(e){const t=this.toSeconds(e),n=new la({context:this.context,onended:()=>this.onstop(this)});this._oscillator=n,this._wave?this._oscillator.setPeriodicWave(this._wave):this._oscillator.type=this._type,this._oscillator.connect(this.output),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.start(t)}_stop(e){const t=this.toSeconds(e);this._oscillator&&this._oscillator.stop(t)}_restart(e){const t=this.toSeconds(e);return this.log("restart",t),this._oscillator&&this._oscillator.cancelStop(),this._state.cancel(t),this}syncFrequency(){return this.context.transport.syncSignal(this.frequency),this}unsyncFrequency(){return this.context.transport.unsyncSignal(this.frequency),this}_getCachedPeriodicWave(){if("custom"===this._type){return ua._periodicWaveCache.find((e=>{return e.phase===this._phase&&(t=e.partials,n=this._partials,t.length===n.length&&t.every(((e,t)=>n[t]===e)));var t,n}))}{const e=ua._periodicWaveCache.find((e=>e.type===this._type&&e.phase===this._phase));return this._partialCount=e?e.partialCount:this._partialCount,e}}get type(){return this._type}set type(e){this._type=e;const t=-1!==["sine","square","sawtooth","triangle"].indexOf(e);if(0===this._phase&&t)this._wave=void 0,this._partialCount=0,null!==this._oscillator&&(this._oscillator.type=e);else{const t=this._getCachedPeriodicWave();if(dr(t)){const{partials:e,wave:n}=t;this._wave=n,this._partials=e,null!==this._oscillator&&this._oscillator.setPeriodicWave(this._wave)}else{const[t,n]=this._getRealImaginary(e,this._phase),s=this.context.createPeriodicWave(t,n);this._wave=s,null!==this._oscillator&&this._oscillator.setPeriodicWave(this._wave),ua._periodicWaveCache.push({imag:n,partialCount:this._partialCount,partials:this._partials,phase:this._phase,real:t,type:this._type,wave:this._wave}),ua._periodicWaveCache.length>100&&ua._periodicWaveCache.shift()}}}get baseType(){return this._type.replace(this.partialCount.toString(),"")}set baseType(e){this.partialCount&&"custom"!==this._type&&"custom"!==e?this.type=e+this.partialCount:this.type=e}get partialCount(){return this._partialCount}set partialCount(e){ir(e,0);let t=this._type;const n=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(this._type);if(n&&(t=n[1]),"custom"!==this._type)this.type=0===e?t:t+e.toString();else{const t=new Float32Array(e);this._partials.forEach(((e,n)=>t[n]=e)),this._partials=Array.from(t),this.type=this._type}}_getRealImaginary(e,t){let n=2048;const s=new Float32Array(n),r=new Float32Array(n);let i=1;if("custom"===e){if(i=this._partials.length+1,this._partialCount=this._partials.length,n=i,0===this._partials.length)return[s,r]}else{const t=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(e);t?(i=parseInt(t[2],10)+1,this._partialCount=parseInt(t[2],10),e=t[1],i=Math.max(i,2),n=i):this._partialCount=0,this._partials=[]}for(let a=1;a>1&1?-1:1):0,this._partials[a-1]=o;break;case"custom":o=this._partials[a-1];break;default:throw new TypeError("Oscillator: invalid type: "+e)}0!==o?(s[a]=-o*Math.sin(t*a),r[a]=o*Math.cos(t*a)):(s[a]=0,r[a]=0)}return[s,r]}_inverseFFT(e,t,n){let s=0;const r=e.length;for(let i=0;it.includes(e))),"oversampling must be either 'none', '2x', or '4x'"),this._shaper.oversample=e}dispose(){return super.dispose(),this._shaper.disconnect(),this}}class da extends ca{constructor(){super(...arguments),this.name="AudioToGain",this._norm=new ha({context:this.context,mapping:e=>(e+1)/2}),this.input=this._norm,this.output=this._norm}dispose(){return super.dispose(),this._norm.dispose(),this}}class pa extends Oi{constructor(){super(Object.assign(Or(pa.getDefaults(),arguments,["value"]))),this.name="Multiply",this.override=!1;const e=Or(pa.getDefaults(),arguments,["value"]);this._mult=this.input=this.output=new Ti({context:this.context,minValue:e.minValue,maxValue:e.maxValue}),this.factor=this._param=this._mult.gain,this.factor.setValueAtTime(e.value,0)}static getDefaults(){return Object.assign(Oi.getDefaults(),{value:0})}dispose(){return super.dispose(),this._mult.dispose(),this}}class fa extends ea{constructor(){super(Or(fa.getDefaults(),arguments,["frequency","type","modulationType"])),this.name="AMOscillator",this._modulationScale=new da({context:this.context}),this._modulationNode=new Ti({context:this.context});const e=Or(fa.getDefaults(),arguments,["frequency","type","modulationType"]);this._carrier=new ua({context:this.context,detune:e.detune,frequency:e.frequency,onstop:()=>this.onstop(this),phase:e.phase,type:e.type}),this.frequency=this._carrier.frequency,this.detune=this._carrier.detune,this._modulator=new ua({context:this.context,phase:e.phase,type:e.modulationType}),this.harmonicity=new pa({context:this.context,units:"positive",value:e.harmonicity}),this.frequency.chain(this.harmonicity,this._modulator.frequency),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output),Zr(this,["frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(ua.getDefaults(),{harmonicity:1,modulationType:"square"})}_start(e){this._modulator.start(e),this._carrier.start(e)}_stop(e){this._modulator.stop(e),this._carrier.stop(e)}_restart(e){this._modulator.restart(e),this._carrier.restart(e)}get type(){return this._carrier.type}set type(e){this._carrier.type=e}get baseType(){return this._carrier.baseType}set baseType(e){this._carrier.baseType=e}get partialCount(){return this._carrier.partialCount}set partialCount(e){this._carrier.partialCount=e}get modulationType(){return this._modulator.type}set modulationType(e){this._modulator.type=e}get phase(){return this._carrier.phase}set phase(e){this._carrier.phase=e,this._modulator.phase=e}get partials(){return this._carrier.partials}set partials(e){this._carrier.partials=e}asArray(e=1024){return Cr(this,void 0,void 0,(function*(){return oa(this,e)}))}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this.harmonicity.dispose(),this._carrier.dispose(),this._modulator.dispose(),this._modulationNode.dispose(),this._modulationScale.dispose(),this}}class ma extends ea{constructor(){super(Or(ma.getDefaults(),arguments,["frequency","type","modulationType"])),this.name="FMOscillator",this._modulationNode=new Ti({context:this.context,gain:0});const e=Or(ma.getDefaults(),arguments,["frequency","type","modulationType"]);this._carrier=new ua({context:this.context,detune:e.detune,frequency:0,onstop:()=>this.onstop(this),phase:e.phase,type:e.type}),this.detune=this._carrier.detune,this.frequency=new Oi({context:this.context,units:"frequency",value:e.frequency}),this._modulator=new ua({context:this.context,phase:e.phase,type:e.modulationType}),this.harmonicity=new pa({context:this.context,units:"positive",value:e.harmonicity}),this.modulationIndex=new pa({context:this.context,units:"positive",value:e.modulationIndex}),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output),this.detune.connect(this._modulator.detune),Zr(this,["modulationIndex","frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(ua.getDefaults(),{harmonicity:1,modulationIndex:2,modulationType:"square"})}_start(e){this._modulator.start(e),this._carrier.start(e)}_stop(e){this._modulator.stop(e),this._carrier.stop(e)}_restart(e){return this._modulator.restart(e),this._carrier.restart(e),this}get type(){return this._carrier.type}set type(e){this._carrier.type=e}get baseType(){return this._carrier.baseType}set baseType(e){this._carrier.baseType=e}get partialCount(){return this._carrier.partialCount}set partialCount(e){this._carrier.partialCount=e}get modulationType(){return this._modulator.type}set modulationType(e){this._modulator.type=e}get phase(){return this._carrier.phase}set phase(e){this._carrier.phase=e,this._modulator.phase=e}get partials(){return this._carrier.partials}set partials(e){this._carrier.partials=e}asArray(e=1024){return Cr(this,void 0,void 0,(function*(){return oa(this,e)}))}dispose(){return super.dispose(),this.frequency.dispose(),this.harmonicity.dispose(),this._carrier.dispose(),this._modulator.dispose(),this._modulationNode.dispose(),this.modulationIndex.dispose(),this}}class ga extends ea{constructor(){super(Or(ga.getDefaults(),arguments,["frequency","width"])),this.name="PulseOscillator",this._widthGate=new Ti({context:this.context,gain:0}),this._thresh=new ha({context:this.context,mapping:e=>e<=0?-1:1});const e=Or(ga.getDefaults(),arguments,["frequency","width"]);this.width=new Oi({context:this.context,units:"audioRange",value:e.width}),this._triangle=new ua({context:this.context,detune:e.detune,frequency:e.frequency,onstop:()=>this.onstop(this),phase:e.phase,type:"triangle"}),this.frequency=this._triangle.frequency,this.detune=this._triangle.detune,this._triangle.chain(this._thresh,this.output),this.width.chain(this._widthGate,this._thresh),Zr(this,["width","frequency","detune"])}static getDefaults(){return Object.assign(ea.getDefaults(),{detune:0,frequency:440,phase:0,type:"pulse",width:.2})}_start(e){e=this.toSeconds(e),this._triangle.start(e),this._widthGate.gain.setValueAtTime(1,e)}_stop(e){e=this.toSeconds(e),this._triangle.stop(e),this._widthGate.gain.cancelScheduledValues(e),this._widthGate.gain.setValueAtTime(0,e)}_restart(e){this._triangle.restart(e),this._widthGate.gain.cancelScheduledValues(e),this._widthGate.gain.setValueAtTime(1,e)}get phase(){return this._triangle.phase}set phase(e){this._triangle.phase=e}get type(){return"pulse"}get baseType(){return"pulse"}get partials(){return[]}get partialCount(){return 0}set carrierType(e){this._triangle.type=e}asArray(e=1024){return Cr(this,void 0,void 0,(function*(){return oa(this,e)}))}dispose(){return super.dispose(),this._triangle.dispose(),this.width.dispose(),this._widthGate.dispose(),this._thresh.dispose(),this}}class ya extends ea{constructor(){super(Or(ya.getDefaults(),arguments,["frequency","type","spread"])),this.name="FatOscillator",this._oscillators=[];const e=Or(ya.getDefaults(),arguments,["frequency","type","spread"]);this.frequency=new Oi({context:this.context,units:"frequency",value:e.frequency}),this.detune=new Oi({context:this.context,units:"cents",value:e.detune}),this._spread=e.spread,this._type=e.type,this._phase=e.phase,this._partials=e.partials,this._partialCount=e.partialCount,this.count=e.count,Zr(this,["frequency","detune"])}static getDefaults(){return Object.assign(ua.getDefaults(),{count:3,spread:20,type:"sawtooth"})}_start(e){e=this.toSeconds(e),this._forEach((t=>t.start(e)))}_stop(e){e=this.toSeconds(e),this._forEach((t=>t.stop(e)))}_restart(e){this._forEach((t=>t.restart(e)))}_forEach(e){for(let t=0;tt.type=e))}get spread(){return this._spread}set spread(e){if(this._spread=e,this._oscillators.length>1){const t=-e/2,n=e/(this._oscillators.length-1);this._forEach(((e,s)=>e.detune.value=t+n*s))}}get count(){return this._oscillators.length}set count(e){if(ir(e,1),this._oscillators.length!==e){this._forEach((e=>e.dispose())),this._oscillators=[];for(let t=0;tthis.onstop(this):Qr});"custom"===this.type&&(n.partials=this._partials),this.frequency.connect(n.frequency),this.detune.connect(n.detune),n.detune.overridden=!1,n.connect(this.output),this._oscillators[t]=n}this.spread=this._spread,"started"===this.state&&this._forEach((e=>e.start()))}}get phase(){return this._phase}set phase(e){this._phase=e,this._forEach(((e,t)=>e.phase=this._phase+t/this.count*360))}get baseType(){return this._oscillators[0].baseType}set baseType(e){this._forEach((t=>t.baseType=e)),this._type=this._oscillators[0].type}get partials(){return this._oscillators[0].partials}set partials(e){this._partials=e,this._partialCount=this._partials.length,e.length&&(this._type="custom",this._forEach((t=>t.partials=e)))}get partialCount(){return this._oscillators[0].partialCount}set partialCount(e){this._partialCount=e,this._forEach((t=>t.partialCount=e)),this._type=this._oscillators[0].type}asArray(e=1024){return Cr(this,void 0,void 0,(function*(){return oa(this,e)}))}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this._forEach((e=>e.dispose())),this}}class ba extends ea{constructor(){super(Or(ba.getDefaults(),arguments,["frequency","modulationFrequency"])),this.name="PWMOscillator",this.sourceType="pwm",this._scale=new pa({context:this.context,value:2});const e=Or(ba.getDefaults(),arguments,["frequency","modulationFrequency"]);this._pulse=new ga({context:this.context,frequency:e.modulationFrequency}),this._pulse.carrierType="sine",this.modulationFrequency=this._pulse.frequency,this._modulator=new ua({context:this.context,detune:e.detune,frequency:e.frequency,onstop:()=>this.onstop(this),phase:e.phase}),this.frequency=this._modulator.frequency,this.detune=this._modulator.detune,this._modulator.chain(this._scale,this._pulse.width),this._pulse.connect(this.output),Zr(this,["modulationFrequency","frequency","detune"])}static getDefaults(){return Object.assign(ea.getDefaults(),{detune:0,frequency:440,modulationFrequency:.4,phase:0,type:"pwm"})}_start(e){e=this.toSeconds(e),this._modulator.start(e),this._pulse.start(e)}_stop(e){e=this.toSeconds(e),this._modulator.stop(e),this._pulse.stop(e)}_restart(e){this._modulator.restart(e),this._pulse.restart(e)}get type(){return"pwm"}get baseType(){return"pwm"}get partials(){return[]}get partialCount(){return 0}get phase(){return this._modulator.phase}set phase(e){this._modulator.phase=e}asArray(e=1024){return Cr(this,void 0,void 0,(function*(){return oa(this,e)}))}dispose(){return super.dispose(),this._pulse.dispose(),this._scale.dispose(),this._modulator.dispose(),this}}const wa={am:fa,fat:ya,fm:ma,oscillator:ua,pulse:ga,pwm:ba};class va extends ea{constructor(){super(Or(va.getDefaults(),arguments,["frequency","type"])),this.name="OmniOscillator";const e=Or(va.getDefaults(),arguments,["frequency","type"]);this.frequency=new Oi({context:this.context,units:"frequency",value:e.frequency}),this.detune=new Oi({context:this.context,units:"cents",value:e.detune}),Zr(this,["frequency","detune"]),this.set(e)}static getDefaults(){return Object.assign(ua.getDefaults(),ma.getDefaults(),fa.getDefaults(),ya.getDefaults(),ga.getDefaults(),ba.getDefaults())}_start(e){this._oscillator.start(e)}_stop(e){this._oscillator.stop(e)}_restart(e){return this._oscillator.restart(e),this}get type(){let e="";return["am","fm","fat"].some((e=>this._sourceType===e))&&(e=this._sourceType),e+this._oscillator.type}set type(e){"fm"===e.substr(0,2)?(this._createNewOscillator("fm"),this._oscillator=this._oscillator,this._oscillator.type=e.substr(2)):"am"===e.substr(0,2)?(this._createNewOscillator("am"),this._oscillator=this._oscillator,this._oscillator.type=e.substr(2)):"fat"===e.substr(0,3)?(this._createNewOscillator("fat"),this._oscillator=this._oscillator,this._oscillator.type=e.substr(3)):"pwm"===e?(this._createNewOscillator("pwm"),this._oscillator=this._oscillator):"pulse"===e?this._createNewOscillator("pulse"):(this._createNewOscillator("oscillator"),this._oscillator=this._oscillator,this._oscillator.type=e)}get partials(){return this._oscillator.partials}set partials(e){this._getOscType(this._oscillator,"pulse")||this._getOscType(this._oscillator,"pwm")||(this._oscillator.partials=e)}get partialCount(){return this._oscillator.partialCount}set partialCount(e){this._getOscType(this._oscillator,"pulse")||this._getOscType(this._oscillator,"pwm")||(this._oscillator.partialCount=e)}set(e){return Reflect.has(e,"type")&&e.type&&(this.type=e.type),super.set(e),this}_createNewOscillator(e){if(e!==this._sourceType){this._sourceType=e;const t=wa[e],n=this.now();if(this._oscillator){const e=this._oscillator;e.stop(n),this.context.setTimeout((()=>e.dispose()),this.blockTime)}this._oscillator=new t({context:this.context}),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.connect(this.output),this._oscillator.onstop=()=>this.onstop(this),"started"===this.state&&this._oscillator.start(n)}}get phase(){return this._oscillator.phase}set phase(e){this._oscillator.phase=e}get sourceType(){return this._sourceType}set sourceType(e){let t="sine";"pwm"!==this._oscillator.type&&"pulse"!==this._oscillator.type&&(t=this._oscillator.type),"fm"===e?this.type="fm"+t:"am"===e?this.type="am"+t:"fat"===e?this.type="fat"+t:"oscillator"===e?this.type=t:"pulse"===e?this.type="pulse":"pwm"===e&&(this.type="pwm")}_getOscType(e,t){return e instanceof wa[t]}get baseType(){return this._oscillator.baseType}set baseType(e){this._getOscType(this._oscillator,"pulse")||this._getOscType(this._oscillator,"pwm")||"pulse"===e||"pwm"===e||(this._oscillator.baseType=e)}get width(){return this._getOscType(this._oscillator,"pulse")?this._oscillator.width:void 0}get count(){return this._getOscType(this._oscillator,"fat")?this._oscillator.count:void 0}set count(e){this._getOscType(this._oscillator,"fat")&&fr(e)&&(this._oscillator.count=e)}get spread(){return this._getOscType(this._oscillator,"fat")?this._oscillator.spread:void 0}set spread(e){this._getOscType(this._oscillator,"fat")&&fr(e)&&(this._oscillator.spread=e)}get modulationType(){return this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am")?this._oscillator.modulationType:void 0}set modulationType(e){(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))&&br(e)&&(this._oscillator.modulationType=e)}get modulationIndex(){return this._getOscType(this._oscillator,"fm")?this._oscillator.modulationIndex:void 0}get harmonicity(){return this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am")?this._oscillator.harmonicity:void 0}get modulationFrequency(){return this._getOscType(this._oscillator,"pwm")?this._oscillator.modulationFrequency:void 0}asArray(e=1024){return Cr(this,void 0,void 0,(function*(){return oa(this,e)}))}dispose(){return super.dispose(),this.detune.dispose(),this.frequency.dispose(),this._oscillator.dispose(),this}}class xa extends Oi{constructor(){super(Object.assign(Or(xa.getDefaults(),arguments,["value"]))),this.override=!1,this.name="Add",this._sum=new Ti({context:this.context}),this.input=this._sum,this.output=this._sum,this.addend=this._param,_i(this._constantSource,this._sum)}static getDefaults(){return Object.assign(Oi.getDefaults(),{value:0})}dispose(){return super.dispose(),this._sum.dispose(),this}}class Aa extends ca{constructor(){super(Object.assign(Or(Aa.getDefaults(),arguments,["min","max"]))),this.name="Scale";const e=Or(Aa.getDefaults(),arguments,["min","max"]);this._mult=this.input=new pa({context:this.context,value:e.max-e.min}),this._add=this.output=new xa({context:this.context,value:e.min}),this._min=e.min,this._max=e.max,this.input.connect(this.output)}static getDefaults(){return Object.assign(ca.getDefaults(),{max:1,min:0})}get min(){return this._min}set min(e){this._min=e,this._setRange()}get max(){return this._max}set max(e){this._max=e,this._setRange()}_setRange(){this._add.value=this._min,this._mult.value=this._max-this._min}dispose(){return super.dispose(),this._add.dispose(),this._mult.dispose(),this}}class Ca extends ca{constructor(){super(Object.assign(Or(Ca.getDefaults(),arguments))),this.name="Zero",this._gain=new Ti({context:this.context}),this.output=this._gain,this.input=void 0,Ei(this.context.getConstant(0),this._gain)}dispose(){return super.dispose(),Ii(this.context.getConstant(0),this._gain),this}}class ka extends Si{constructor(){super(Or(ka.getDefaults(),arguments,["frequency","min","max"])),this.name="LFO",this._stoppedValue=0,this._units="number",this.convert=!0,this._fromType=ki.prototype._fromType,this._toType=ki.prototype._toType,this._is=ki.prototype._is,this._clampValue=ki.prototype._clampValue;const e=Or(ka.getDefaults(),arguments,["frequency","min","max"]);this._oscillator=new ua(e),this.frequency=this._oscillator.frequency,this._amplitudeGain=new Ti({context:this.context,gain:e.amplitude,units:"normalRange"}),this.amplitude=this._amplitudeGain.gain,this._stoppedSignal=new Oi({context:this.context,units:"audioRange",value:0}),this._zeros=new Ca({context:this.context}),this._a2g=new da({context:this.context}),this._scaler=this.output=new Aa({context:this.context,max:e.max,min:e.min}),this.units=e.units,this.min=e.min,this.max=e.max,this._oscillator.chain(this._amplitudeGain,this._a2g,this._scaler),this._zeros.connect(this._a2g),this._stoppedSignal.connect(this._a2g),Zr(this,["amplitude","frequency"]),this.phase=e.phase}static getDefaults(){return Object.assign(ua.getDefaults(),{amplitude:1,frequency:"4n",max:1,min:0,type:"sine",units:"number"})}start(e){return e=this.toSeconds(e),this._stoppedSignal.setValueAtTime(0,e),this._oscillator.start(e),this}stop(e){return e=this.toSeconds(e),this._stoppedSignal.setValueAtTime(this._stoppedValue,e),this._oscillator.stop(e),this}sync(){return this._oscillator.sync(),this._oscillator.syncFrequency(),this}unsync(){return this._oscillator.unsync(),this._oscillator.unsyncFrequency(),this}_setStoppedValue(){this._stoppedValue=this._oscillator.getInitialValue(),this._stoppedSignal.value=this._stoppedValue}get min(){return this._toType(this._scaler.min)}set min(e){e=this._fromType(e),this._scaler.min=e}get max(){return this._toType(this._scaler.max)}set max(e){e=this._fromType(e),this._scaler.max=e}get type(){return this._oscillator.type}set type(e){this._oscillator.type=e,this._setStoppedValue()}get partials(){return this._oscillator.partials}set partials(e){this._oscillator.partials=e,this._setStoppedValue()}get phase(){return this._oscillator.phase}set phase(e){this._oscillator.phase=e,this._setStoppedValue()}get units(){return this._units}set units(e){const t=this.min,n=this.max;this._units=e,this.min=t,this.max=n}get state(){return this._oscillator.state}connect(e,t,n){return(e instanceof ki||e instanceof Oi)&&(this.convert=e.convert,this.units=e.units),Di(this,e,t,n),this}dispose(){return super.dispose(),this._oscillator.dispose(),this._stoppedSignal.dispose(),this._zeros.dispose(),this._scaler.dispose(),this._a2g.dispose(),this._amplitudeGain.dispose(),this.amplitude.dispose(),this}}function Sa(e,t=1/0){const n=new WeakMap;return function(s,r){Reflect.defineProperty(s,r,{configurable:!0,enumerable:!0,get:function(){return n.get(this)},set:function(s){ir(s,e,t),n.set(this,s)}})}}function _a(e,t=1/0){const n=new WeakMap;return function(s,r){Reflect.defineProperty(s,r,{configurable:!0,enumerable:!0,get:function(){return n.get(this)},set:function(s){ir(this.toSeconds(s),e,t),n.set(this,s)}})}}class Ea extends ea{constructor(){super(Or(Ea.getDefaults(),arguments,["url","onload"])),this.name="Player",this._activeSources=new Set;const e=Or(Ea.getDefaults(),arguments,["url","onload"]);this._buffer=new Jr({onload:this._onload.bind(this,e.onload),onerror:e.onerror,reverse:e.reverse,url:e.url}),this.autostart=e.autostart,this._loop=e.loop,this._loopStart=e.loopStart,this._loopEnd=e.loopEnd,this._playbackRate=e.playbackRate,this.fadeIn=e.fadeIn,this.fadeOut=e.fadeOut}static getDefaults(){return Object.assign(ea.getDefaults(),{autostart:!1,fadeIn:0,fadeOut:0,loop:!1,loopEnd:0,loopStart:0,onload:Qr,onerror:Qr,playbackRate:1,reverse:!1})}load(e){return Cr(this,void 0,void 0,(function*(){return yield this._buffer.load(e),this._onload(),this}))}_onload(e=Qr){e(),this.autostart&&this.start()}_onSourceEnd(e){this.onstop(this),this._activeSources.delete(e),0!==this._activeSources.size||this._synced||"started"!==this._state.getValueAtTime(this.now())||(this._state.cancel(this.now()),this._state.setStateAtTime("stopped",this.now()))}start(e,t,n){return super.start(e,t,n),this}_start(e,t,n){t=this._loop?Dr(t,this._loopStart):Dr(t,0);const s=this.toSeconds(t),r=n;n=Dr(n,Math.max(this._buffer.duration-s,0));let i=this.toSeconds(n);i/=this._playbackRate,e=this.toSeconds(e);const a=new ta({url:this._buffer,context:this.context,fadeIn:this.fadeIn,fadeOut:this.fadeOut,loop:this._loop,loopEnd:this._loopEnd,loopStart:this._loopStart,onended:this._onSourceEnd.bind(this),playbackRate:this._playbackRate}).connect(this.output);this._loop||this._synced||(this._state.cancel(e+i),this._state.setStateAtTime("stopped",e+i,{implicitEnd:!0})),this._activeSources.add(a),this._loop&&hr(r)?a.start(e,s):a.start(e,s,i-this.toSeconds(this.fadeOut))}_stop(e){const t=this.toSeconds(e);this._activeSources.forEach((e=>e.stop(t)))}restart(e,t,n){return super.restart(e,t,n),this}_restart(e,t,n){this._stop(e),this._start(e,t,n)}seek(e,t){const n=this.toSeconds(t);if("started"===this._state.getValueAtTime(n)){const t=this.toSeconds(e);this._stop(n),this._start(n,t)}return this}setLoopPoints(e,t){return this.loopStart=e,this.loopEnd=t,this}get loopStart(){return this._loopStart}set loopStart(e){this._loopStart=e,this.buffer.loaded&&ir(this.toSeconds(e),0,this.buffer.duration),this._activeSources.forEach((t=>{t.loopStart=e}))}get loopEnd(){return this._loopEnd}set loopEnd(e){this._loopEnd=e,this.buffer.loaded&&ir(this.toSeconds(e),0,this.buffer.duration),this._activeSources.forEach((t=>{t.loopEnd=e}))}get buffer(){return this._buffer}set buffer(e){this._buffer.set(e)}get loop(){return this._loop}set loop(e){if(this._loop!==e&&(this._loop=e,this._activeSources.forEach((t=>{t.loop=e})),e)){const e=this._state.getNextState("stopped",this.now());e&&this._state.cancel(e.time)}}get playbackRate(){return this._playbackRate}set playbackRate(e){this._playbackRate=e;const t=this.now(),n=this._state.getNextState("stopped",t);n&&n.implicitEnd&&(this._state.cancel(n.time),this._activeSources.forEach((e=>e.cancelStop()))),this._activeSources.forEach((n=>{n.playbackRate.setValueAtTime(e,t)}))}get reverse(){return this._buffer.reverse}set reverse(e){this._buffer.reverse=e}get loaded(){return this._buffer.loaded}dispose(){return super.dispose(),this._activeSources.forEach((e=>e.dispose())),this._activeSources.clear(),this._buffer.dispose(),this}}Ar([_a(0)],Ea.prototype,"fadeIn",void 0),Ar([_a(0)],Ea.prototype,"fadeOut",void 0);class Ia extends Si{constructor(){super(Or(Ia.getDefaults(),arguments,["urls","onload"],"urls")),this.name="Players",this.input=void 0,this._players=new Map;const e=Or(Ia.getDefaults(),arguments,["urls","onload"],"urls");this._volume=this.output=new $i({context:this.context,volume:e.volume}),this.volume=this._volume.volume,Zr(this,"volume"),this._buffers=new Ui({urls:e.urls,onload:e.onload,baseUrl:e.baseUrl,onerror:e.onerror}),this.mute=e.mute,this._fadeIn=e.fadeIn,this._fadeOut=e.fadeOut}static getDefaults(){return Object.assign(ea.getDefaults(),{baseUrl:"",fadeIn:0,fadeOut:0,mute:!1,onload:Qr,onerror:Qr,urls:{},volume:0})}get mute(){return this._volume.mute}set mute(e){this._volume.mute=e}get fadeIn(){return this._fadeIn}set fadeIn(e){this._fadeIn=e,this._players.forEach((t=>{t.fadeIn=e}))}get fadeOut(){return this._fadeOut}set fadeOut(e){this._fadeOut=e,this._players.forEach((t=>{t.fadeOut=e}))}get state(){return Array.from(this._players).some((([e,t])=>"started"===t.state))?"started":"stopped"}has(e){return this._buffers.has(e)}player(e){if(rr(this.has(e),`No Player with the name ${e} exists on this object`),!this._players.has(e)){const t=new Ea({context:this.context,fadeIn:this._fadeIn,fadeOut:this._fadeOut,url:this._buffers.get(e)}).connect(this.output);this._players.set(e,t)}return this._players.get(e)}get loaded(){return this._buffers.loaded}add(e,t,n){return rr(!this._buffers.has(e),"A buffer with that name already exists on this object"),this._buffers.add(e,t,n),this}stopAll(e){return this._players.forEach((t=>t.stop(e))),this}dispose(){return super.dispose(),this._volume.dispose(),this.volume.dispose(),this._players.forEach((e=>e.dispose())),this._buffers.dispose(),this}}class Ta extends ea{constructor(){super(Or(Ta.getDefaults(),arguments,["url","onload"])),this.name="GrainPlayer",this._loopStart=0,this._loopEnd=0,this._activeSources=[];const e=Or(Ta.getDefaults(),arguments,["url","onload"]);this.buffer=new Jr({onload:e.onload,onerror:e.onerror,reverse:e.reverse,url:e.url}),this._clock=new Bi({context:this.context,callback:this._tick.bind(this),frequency:1/e.grainSize}),this._playbackRate=e.playbackRate,this._grainSize=e.grainSize,this._overlap=e.overlap,this.detune=e.detune,this.overlap=e.overlap,this.loop=e.loop,this.playbackRate=e.playbackRate,this.grainSize=e.grainSize,this.loopStart=e.loopStart,this.loopEnd=e.loopEnd,this.reverse=e.reverse,this._clock.on("stop",this._onstop.bind(this))}static getDefaults(){return Object.assign(ea.getDefaults(),{onload:Qr,onerror:Qr,overlap:.1,grainSize:.2,playbackRate:1,detune:0,loop:!1,loopStart:0,loopEnd:0,reverse:!1})}_start(e,t,n){t=Dr(t,0),t=this.toSeconds(t),e=this.toSeconds(e);const s=1/this._clock.frequency.getValueAtTime(e);this._clock.start(e,t/s),n&&this.stop(e+this.toSeconds(n))}restart(e,t,n){return super.restart(e,t,n),this}_restart(e,t,n){this._stop(e),this._start(e,t,n)}_stop(e){this._clock.stop(e)}_onstop(e){this._activeSources.forEach((t=>{t.fadeOut=0,t.stop(e)})),this.onstop(this)}_tick(e){const t=this._clock.getTicksAtTime(e),n=t*this._grainSize;if(this.log("offset",n),!this.loop&&n>this.buffer.duration)return void this.stop(e);const s=n{const e=this._activeSources.indexOf(r);-1!==e&&this._activeSources.splice(e,1)}}get playbackRate(){return this._playbackRate}set playbackRate(e){ir(e,.001),this._playbackRate=e,this.grainSize=this._grainSize}get loopStart(){return this._loopStart}set loopStart(e){this.buffer.loaded&&ir(this.toSeconds(e),0,this.buffer.duration),this._loopStart=this.toSeconds(e)}get loopEnd(){return this._loopEnd}set loopEnd(e){this.buffer.loaded&&ir(this.toSeconds(e),0,this.buffer.duration),this._loopEnd=this.toSeconds(e)}get reverse(){return this.buffer.reverse}set reverse(e){this.buffer.reverse=e}get grainSize(){return this._grainSize}set grainSize(e){this._grainSize=this.toSeconds(e),this._clock.frequency.setValueAtTime(this._playbackRate/this._grainSize,this.now())}get overlap(){return this._overlap}set overlap(e){const t=this.toSeconds(e);ir(t,0),this._overlap=t}get loaded(){return this.buffer.loaded}dispose(){return super.dispose(),this.buffer.dispose(),this._clock.dispose(),this._activeSources.forEach((e=>e.dispose())),this}}class Na extends ca{constructor(){super(...arguments),this.name="Abs",this._abs=new ha({context:this.context,mapping:e=>Math.abs(e)<.001?0:Math.abs(e)}),this.input=this._abs,this.output=this._abs}dispose(){return super.dispose(),this._abs.dispose(),this}}class Ra extends ca{constructor(){super(...arguments),this.name="GainToAudio",this._norm=new ha({context:this.context,mapping:e=>2*Math.abs(e)-1}),this.input=this._norm,this.output=this._norm}dispose(){return super.dispose(),this._norm.dispose(),this}}class Oa extends ca{constructor(){super(...arguments),this.name="Negate",this._multiply=new pa({context:this.context,value:-1}),this.input=this._multiply,this.output=this._multiply}dispose(){return super.dispose(),this._multiply.dispose(),this}}class Da extends Oi{constructor(){super(Object.assign(Or(Da.getDefaults(),arguments,["value"]))),this.override=!1,this.name="Subtract",this._sum=new Ti({context:this.context}),this.input=this._sum,this.output=this._sum,this._neg=new Oa({context:this.context}),this.subtrahend=this._param,_i(this._constantSource,this._neg,this._sum)}static getDefaults(){return Object.assign(Oi.getDefaults(),{value:0})}dispose(){return super.dispose(),this._neg.dispose(),this._sum.dispose(),this}}class Ma extends ca{constructor(){super(Object.assign(Or(Ma.getDefaults(),arguments))),this.name="GreaterThanZero",this._thresh=this.output=new ha({context:this.context,length:127,mapping:e=>e<=0?0:1}),this._scale=this.input=new pa({context:this.context,value:1e4}),this._scale.connect(this._thresh)}dispose(){return super.dispose(),this._scale.dispose(),this._thresh.dispose(),this}}class za extends Oi{constructor(){super(Object.assign(Or(za.getDefaults(),arguments,["value"]))),this.name="GreaterThan",this.override=!1;const e=Or(za.getDefaults(),arguments,["value"]);this._subtract=this.input=new Da({context:this.context,value:e.value}),this._gtz=this.output=new Ma({context:this.context}),this.comparator=this._param=this._subtract.subtrahend,Zr(this,"comparator"),this._subtract.connect(this._gtz)}static getDefaults(){return Object.assign(Oi.getDefaults(),{value:0})}dispose(){return super.dispose(),this._gtz.dispose(),this._subtract.dispose(),this.comparator.dispose(),this}}class Fa extends ca{constructor(){super(Object.assign(Or(Fa.getDefaults(),arguments,["value"]))),this.name="Pow";const e=Or(Fa.getDefaults(),arguments,["value"]);this._exponentScaler=this.input=this.output=new ha({context:this.context,mapping:this._expFunc(e.value),length:8192}),this._exponent=e.value}static getDefaults(){return Object.assign(ca.getDefaults(),{value:1})}_expFunc(e){return t=>Math.pow(Math.abs(t),e)}get value(){return this._exponent}set value(e){this._exponent=e,this._exponentScaler.setMap(this._expFunc(this._exponent))}dispose(){return super.dispose(),this._exponentScaler.dispose(),this}}class Ba extends Aa{constructor(){super(Object.assign(Or(Ba.getDefaults(),arguments,["min","max","exponent"]))),this.name="ScaleExp";const e=Or(Ba.getDefaults(),arguments,["min","max","exponent"]);this.input=this._exp=new Fa({context:this.context,value:e.exponent}),this._exp.connect(this._mult)}static getDefaults(){return Object.assign(Aa.getDefaults(),{exponent:1})}get exponent(){return this._exp.value}set exponent(e){this._exp.value=e}dispose(){return super.dispose(),this._exp.dispose(),this}}class La extends Oi{constructor(){super(Or(Oi.getDefaults(),arguments,["value","units"])),this.name="SyncedSignal",this.override=!1;const e=Or(Oi.getDefaults(),arguments,["value","units"]);this._lastVal=e.value,this._synced=this.context.transport.scheduleRepeat(this._onTick.bind(this),"1i"),this._syncedCallback=this._anchorValue.bind(this),this.context.transport.on("start",this._syncedCallback),this.context.transport.on("pause",this._syncedCallback),this.context.transport.on("stop",this._syncedCallback),this._constantSource.disconnect(),this._constantSource.stop(0),this._constantSource=this.output=new Ri({context:this.context,offset:e.value,units:e.units}).start(0),this.setValueAtTime(e.value,0)}_onTick(e){const t=super.getValueAtTime(this.context.transport.seconds);this._lastVal!==t&&(this._lastVal=t,this._constantSource.offset.setValueAtTime(t,e))}_anchorValue(e){const t=super.getValueAtTime(this.context.transport.seconds);this._lastVal=t,this._constantSource.offset.cancelAndHoldAtTime(e),this._constantSource.offset.setValueAtTime(t,e)}getValueAtTime(e){const t=new vi(this.context,e).toSeconds();return super.getValueAtTime(t)}setValueAtTime(e,t){const n=new vi(this.context,t).toSeconds();return super.setValueAtTime(e,n),this}linearRampToValueAtTime(e,t){const n=new vi(this.context,t).toSeconds();return super.linearRampToValueAtTime(e,n),this}exponentialRampToValueAtTime(e,t){const n=new vi(this.context,t).toSeconds();return super.exponentialRampToValueAtTime(e,n),this}setTargetAtTime(e,t,n){const s=new vi(this.context,t).toSeconds();return super.setTargetAtTime(e,s,n),this}cancelScheduledValues(e){const t=new vi(this.context,e).toSeconds();return super.cancelScheduledValues(t),this}setValueCurveAtTime(e,t,n,s){const r=new vi(this.context,t).toSeconds();return n=this.toSeconds(n),super.setValueCurveAtTime(e,r,n,s),this}cancelAndHoldAtTime(e){const t=new vi(this.context,e).toSeconds();return super.cancelAndHoldAtTime(t),this}setRampPoint(e){const t=new vi(this.context,e).toSeconds();return super.setRampPoint(t),this}exponentialRampTo(e,t,n){const s=new vi(this.context,n).toSeconds();return super.exponentialRampTo(e,t,s),this}linearRampTo(e,t,n){const s=new vi(this.context,n).toSeconds();return super.linearRampTo(e,t,s),this}targetRampTo(e,t,n){const s=new vi(this.context,n).toSeconds();return super.targetRampTo(e,t,s),this}dispose(){return super.dispose(),this.context.transport.clear(this._synced),this.context.transport.off("start",this._syncedCallback),this.context.transport.off("pause",this._syncedCallback),this.context.transport.off("stop",this._syncedCallback),this._constantSource.dispose(),this}}class Pa extends Si{constructor(){super(Or(Pa.getDefaults(),arguments,["attack","decay","sustain","release"])),this.name="Envelope",this._sig=new Oi({context:this.context,value:0}),this.output=this._sig,this.input=void 0;const e=Or(Pa.getDefaults(),arguments,["attack","decay","sustain","release"]);this.attack=e.attack,this.decay=e.decay,this.sustain=e.sustain,this.release=e.release,this.attackCurve=e.attackCurve,this.releaseCurve=e.releaseCurve,this.decayCurve=e.decayCurve}static getDefaults(){return Object.assign(Si.getDefaults(),{attack:.01,attackCurve:"linear",decay:.1,decayCurve:"exponential",release:1,releaseCurve:"exponential",sustain:.5})}get value(){return this.getValueAtTime(this.now())}_getCurve(e,t){if(br(e))return e;{let n;for(n in Ua)if(Ua[n][t]===e)return n;return e}}_setCurve(e,t,n){if(br(n)&&Reflect.has(Ua,n)){const s=Ua[n];mr(s)?"_decayCurve"!==e&&(this[e]=s[t]):this[e]=s}else{if(!yr(n)||"_decayCurve"===e)throw new Error("Envelope: invalid curve: "+n);this[e]=n}}get attackCurve(){return this._getCurve(this._attackCurve,"In")}set attackCurve(e){this._setCurve("_attackCurve","In",e)}get releaseCurve(){return this._getCurve(this._releaseCurve,"Out")}set releaseCurve(e){this._setCurve("_releaseCurve","Out",e)}get decayCurve(){return this._decayCurve}set decayCurve(e){rr(["linear","exponential"].some((t=>t===e)),`Invalid envelope curve: ${e}`),this._decayCurve=e}triggerAttack(e,t=1){this.log("triggerAttack",e,t),e=this.toSeconds(e);let n=this.toSeconds(this.attack);const s=this.toSeconds(this.decay),r=this.getValueAtTime(e);if(r>0){n=(1-r)/(1/n)}if(n0){const n=this.toSeconds(this.release);n{const e=128;let t,n;const s=[];for(t=0;t{const s=e[t],r=this.context.transport.schedule((s=>{e[t]=s,n.apply(this,e)}),s);this._scheduledEvents.push(r)}}unsync(){return this._scheduledEvents.forEach((e=>this.context.transport.clear(e))),this._scheduledEvents=[],this._synced&&(this._synced=!1,this.triggerAttack=this._original_triggerAttack,this.triggerRelease=this._original_triggerRelease),this}triggerAttackRelease(e,t,n,s){const r=this.toSeconds(n),i=this.toSeconds(t);return this.triggerAttack(e,r,s),this.triggerRelease(r+i),this}dispose(){return super.dispose(),this._volume.dispose(),this.unsync(),this._scheduledEvents=[],this}}class Wa extends Va{constructor(){super(Or(Wa.getDefaults(),arguments));const e=Or(Wa.getDefaults(),arguments);this.portamento=e.portamento,this.onsilence=e.onsilence}static getDefaults(){return Object.assign(Va.getDefaults(),{detune:0,onsilence:Qr,portamento:0})}triggerAttack(e,t,n=1){this.log("triggerAttack",e,t,n);const s=this.toSeconds(t);return this._triggerEnvelopeAttack(s,n),this.setNote(e,s),this}triggerRelease(e){this.log("triggerRelease",e);const t=this.toSeconds(e);return this._triggerEnvelopeRelease(t),this}setNote(e,t){const n=this.toSeconds(t),s=e instanceof gi?e.toFrequency():e;if(this.portamento>0&&this.getLevelAtTime(n)>.05){const e=this.toSeconds(this.portamento);this.frequency.exponentialRampTo(s,e,n)}else this.frequency.setValueAtTime(s,n);return this}}Ar([_a(0)],Wa.prototype,"portamento",void 0);class ja extends Pa{constructor(){super(Or(ja.getDefaults(),arguments,["attack","decay","sustain","release"])),this.name="AmplitudeEnvelope",this._gainNode=new Ti({context:this.context,gain:0}),this.output=this._gainNode,this.input=this._gainNode,this._sig.connect(this._gainNode.gain),this.output=this._gainNode,this.input=this._gainNode}dispose(){return super.dispose(),this._gainNode.dispose(),this}}class Ga extends Wa{constructor(){super(Or(Ga.getDefaults(),arguments)),this.name="Synth";const e=Or(Ga.getDefaults(),arguments);this.oscillator=new va(Object.assign({context:this.context,detune:e.detune,onstop:()=>this.onsilence(this)},e.oscillator)),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.envelope=new ja(Object.assign({context:this.context},e.envelope)),this.oscillator.chain(this.envelope,this.output),Zr(this,["oscillator","frequency","detune","envelope"])}static getDefaults(){return Object.assign(Wa.getDefaults(),{envelope:Object.assign(Mr(Pa.getDefaults(),Object.keys(Si.getDefaults())),{attack:.005,decay:.1,release:1,sustain:.3}),oscillator:Object.assign(Mr(va.getDefaults(),[...Object.keys(ea.getDefaults()),"frequency","detune"]),{type:"triangle"})})}_triggerEnvelopeAttack(e,t){if(this.envelope.triggerAttack(e,t),this.oscillator.start(e),0===this.envelope.sustain){const t=this.toSeconds(this.envelope.attack),n=this.toSeconds(this.envelope.decay);this.oscillator.stop(e+t+n)}}_triggerEnvelopeRelease(e){this.envelope.triggerRelease(e),this.oscillator.stop(e+this.toSeconds(this.envelope.release))}getLevelAtTime(e){return e=this.toSeconds(e),this.envelope.getValueAtTime(e)}dispose(){return super.dispose(),this.oscillator.dispose(),this.envelope.dispose(),this}}class qa extends Wa{constructor(){super(Or(qa.getDefaults(),arguments)),this.name="ModulationSynth";const e=Or(qa.getDefaults(),arguments);this._carrier=new Ga({context:this.context,oscillator:e.oscillator,envelope:e.envelope,onsilence:()=>this.onsilence(this),volume:-10}),this._modulator=new Ga({context:this.context,oscillator:e.modulation,envelope:e.modulationEnvelope,volume:-10}),this.oscillator=this._carrier.oscillator,this.envelope=this._carrier.envelope,this.modulation=this._modulator.oscillator,this.modulationEnvelope=this._modulator.envelope,this.frequency=new Oi({context:this.context,units:"frequency"}),this.detune=new Oi({context:this.context,value:e.detune,units:"cents"}),this.harmonicity=new pa({context:this.context,value:e.harmonicity,minValue:0}),this._modulationNode=new Ti({context:this.context,gain:0}),Zr(this,["frequency","harmonicity","oscillator","envelope","modulation","modulationEnvelope","detune"])}static getDefaults(){return Object.assign(Wa.getDefaults(),{harmonicity:3,oscillator:Object.assign(Mr(va.getDefaults(),[...Object.keys(ea.getDefaults()),"frequency","detune"]),{type:"sine"}),envelope:Object.assign(Mr(Pa.getDefaults(),Object.keys(Si.getDefaults())),{attack:.01,decay:.01,sustain:1,release:.5}),modulation:Object.assign(Mr(va.getDefaults(),[...Object.keys(ea.getDefaults()),"frequency","detune"]),{type:"square"}),modulationEnvelope:Object.assign(Mr(Pa.getDefaults(),Object.keys(Si.getDefaults())),{attack:.5,decay:0,sustain:1,release:.5})})}_triggerEnvelopeAttack(e,t){this._carrier._triggerEnvelopeAttack(e,t),this._modulator._triggerEnvelopeAttack(e,t)}_triggerEnvelopeRelease(e){return this._carrier._triggerEnvelopeRelease(e),this._modulator._triggerEnvelopeRelease(e),this}getLevelAtTime(e){return e=this.toSeconds(e),this.envelope.getValueAtTime(e)}dispose(){return super.dispose(),this._carrier.dispose(),this._modulator.dispose(),this.frequency.dispose(),this.detune.dispose(),this.harmonicity.dispose(),this._modulationNode.dispose(),this}}class Ha extends qa{constructor(){super(Or(Ha.getDefaults(),arguments)),this.name="AMSynth",this._modulationScale=new da({context:this.context}),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.detune.fan(this._carrier.detune,this._modulator.detune),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output)}dispose(){return super.dispose(),this._modulationScale.dispose(),this}}class Ka extends Si{constructor(){super(Or(Ka.getDefaults(),arguments,["frequency","type"])),this.name="BiquadFilter";const e=Or(Ka.getDefaults(),arguments,["frequency","type"]);this._filter=this.context.createBiquadFilter(),this.input=this.output=this._filter,this.Q=new ki({context:this.context,units:"number",value:e.Q,param:this._filter.Q}),this.frequency=new ki({context:this.context,units:"frequency",value:e.frequency,param:this._filter.frequency}),this.detune=new ki({context:this.context,units:"cents",value:e.detune,param:this._filter.detune}),this.gain=new ki({context:this.context,units:"decibels",convert:!1,value:e.gain,param:this._filter.gain}),this.type=e.type}static getDefaults(){return Object.assign(Si.getDefaults(),{Q:1,type:"lowpass",frequency:350,detune:0,gain:0})}get type(){return this._filter.type}set type(e){rr(-1!==["lowpass","highpass","bandpass","lowshelf","highshelf","notch","allpass","peaking"].indexOf(e),`Invalid filter type: ${e}`),this._filter.type=e}getFrequencyResponse(e=128){const t=new Float32Array(e);for(let n=0;nt.type=e))}get rolloff(){return this._rolloff}set rolloff(e){const t=fr(e)?e:parseInt(e,10),n=[-12,-24,-48,-96];let s=n.indexOf(t);rr(-1!==s,`rolloff can only be ${n.join(", ")}`),s+=1,this._rolloff=t,this.input.disconnect(),this._filters.forEach((e=>e.disconnect())),this._filters=new Array(s);for(let e=0;e1));return this._filters.forEach((()=>{t.getFrequencyResponse(e).forEach(((e,t)=>n[t]*=e))})),t.dispose(),n}dispose(){return super.dispose(),this._filters.forEach((e=>{e.dispose()})),Yr(this,["detune","frequency","gain","Q"]),this.frequency.dispose(),this.Q.dispose(),this.detune.dispose(),this.gain.dispose(),this}}class Xa extends Pa{constructor(){super(Or(Xa.getDefaults(),arguments,["attack","decay","sustain","release"])),this.name="FrequencyEnvelope";const e=Or(Xa.getDefaults(),arguments,["attack","decay","sustain","release"]);this._octaves=e.octaves,this._baseFrequency=this.toFrequency(e.baseFrequency),this._exponent=this.input=new Fa({context:this.context,value:e.exponent}),this._scale=this.output=new Aa({context:this.context,min:this._baseFrequency,max:this._baseFrequency*Math.pow(2,this._octaves)}),this._sig.chain(this._exponent,this._scale)}static getDefaults(){return Object.assign(Pa.getDefaults(),{baseFrequency:200,exponent:1,octaves:4})}get baseFrequency(){return this._baseFrequency}set baseFrequency(e){const t=this.toFrequency(e);ir(t,0),this._baseFrequency=t,this._scale.min=this._baseFrequency,this.octaves=this._octaves}get octaves(){return this._octaves}set octaves(e){this._octaves=e,this._scale.max=this._baseFrequency*Math.pow(2,e)}get exponent(){return this._exponent.value}set exponent(e){this._exponent.value=e}dispose(){return super.dispose(),this._exponent.dispose(),this._scale.dispose(),this}}class Za extends Wa{constructor(){super(Or(Za.getDefaults(),arguments)),this.name="MonoSynth";const e=Or(Za.getDefaults(),arguments);this.oscillator=new va(Object.assign(e.oscillator,{context:this.context,detune:e.detune,onstop:()=>this.onsilence(this)})),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.filter=new $a(Object.assign(e.filter,{context:this.context})),this.filterEnvelope=new Xa(Object.assign(e.filterEnvelope,{context:this.context})),this.envelope=new ja(Object.assign(e.envelope,{context:this.context})),this.oscillator.chain(this.filter,this.envelope,this.output),this.filterEnvelope.connect(this.filter.frequency),Zr(this,["oscillator","frequency","detune","filter","filterEnvelope","envelope"])}static getDefaults(){return Object.assign(Wa.getDefaults(),{envelope:Object.assign(Mr(Pa.getDefaults(),Object.keys(Si.getDefaults())),{attack:.005,decay:.1,release:1,sustain:.9}),filter:Object.assign(Mr($a.getDefaults(),Object.keys(Si.getDefaults())),{Q:1,rolloff:-12,type:"lowpass"}),filterEnvelope:Object.assign(Mr(Xa.getDefaults(),Object.keys(Si.getDefaults())),{attack:.6,baseFrequency:200,decay:.2,exponent:2,octaves:3,release:2,sustain:.5}),oscillator:Object.assign(Mr(va.getDefaults(),Object.keys(ea.getDefaults())),{type:"sawtooth"})})}_triggerEnvelopeAttack(e,t=1){if(this.envelope.triggerAttack(e,t),this.filterEnvelope.triggerAttack(e),this.oscillator.start(e),0===this.envelope.sustain){const t=this.toSeconds(this.envelope.attack),n=this.toSeconds(this.envelope.decay);this.oscillator.stop(e+t+n)}}_triggerEnvelopeRelease(e){this.envelope.triggerRelease(e),this.filterEnvelope.triggerRelease(e),this.oscillator.stop(e+this.toSeconds(this.envelope.release))}getLevelAtTime(e){return e=this.toSeconds(e),this.envelope.getValueAtTime(e)}dispose(){return super.dispose(),this.oscillator.dispose(),this.envelope.dispose(),this.filterEnvelope.dispose(),this.filter.dispose(),this}}class Ya extends Wa{constructor(){super(Or(Ya.getDefaults(),arguments)),this.name="DuoSynth";const e=Or(Ya.getDefaults(),arguments);this.voice0=new Za(Object.assign(e.voice0,{context:this.context,onsilence:()=>this.onsilence(this)})),this.voice1=new Za(Object.assign(e.voice1,{context:this.context})),this.harmonicity=new pa({context:this.context,units:"positive",value:e.harmonicity}),this._vibrato=new ka({frequency:e.vibratoRate,context:this.context,min:-50,max:50}),this._vibrato.start(),this.vibratoRate=this._vibrato.frequency,this._vibratoGain=new Ti({context:this.context,units:"normalRange",gain:e.vibratoAmount}),this.vibratoAmount=this._vibratoGain.gain,this.frequency=new Oi({context:this.context,units:"frequency",value:440}),this.detune=new Oi({context:this.context,units:"cents",value:e.detune}),this.frequency.connect(this.voice0.frequency),this.frequency.chain(this.harmonicity,this.voice1.frequency),this._vibrato.connect(this._vibratoGain),this._vibratoGain.fan(this.voice0.detune,this.voice1.detune),this.detune.fan(this.voice0.detune,this.voice1.detune),this.voice0.connect(this.output),this.voice1.connect(this.output),Zr(this,["voice0","voice1","frequency","vibratoAmount","vibratoRate"])}getLevelAtTime(e){return e=this.toSeconds(e),this.voice0.envelope.getValueAtTime(e)+this.voice1.envelope.getValueAtTime(e)}static getDefaults(){return Rr(Wa.getDefaults(),{vibratoAmount:.5,vibratoRate:5,harmonicity:1.5,voice0:Rr(Mr(Za.getDefaults(),Object.keys(Wa.getDefaults())),{filterEnvelope:{attack:.01,decay:0,sustain:1,release:.5},envelope:{attack:.01,decay:0,sustain:1,release:.5}}),voice1:Rr(Mr(Za.getDefaults(),Object.keys(Wa.getDefaults())),{filterEnvelope:{attack:.01,decay:0,sustain:1,release:.5},envelope:{attack:.01,decay:0,sustain:1,release:.5}})})}_triggerEnvelopeAttack(e,t){this.voice0._triggerEnvelopeAttack(e,t),this.voice1._triggerEnvelopeAttack(e,t)}_triggerEnvelopeRelease(e){return this.voice0._triggerEnvelopeRelease(e),this.voice1._triggerEnvelopeRelease(e),this}dispose(){return super.dispose(),this.voice0.dispose(),this.voice1.dispose(),this.frequency.dispose(),this.detune.dispose(),this._vibrato.dispose(),this.vibratoRate.dispose(),this._vibratoGain.dispose(),this.harmonicity.dispose(),this}}class Qa extends qa{constructor(){super(Or(Qa.getDefaults(),arguments)),this.name="FMSynth";const e=Or(Qa.getDefaults(),arguments);this.modulationIndex=new pa({context:this.context,value:e.modulationIndex}),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this.detune.fan(this._carrier.detune,this._modulator.detune),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output)}static getDefaults(){return Object.assign(qa.getDefaults(),{modulationIndex:10})}dispose(){return super.dispose(),this.modulationIndex.dispose(),this}}const Ja=[1,1.483,1.932,2.546,2.63,3.897];class eo extends Wa{constructor(){super(Or(eo.getDefaults(),arguments)),this.name="MetalSynth",this._oscillators=[],this._freqMultipliers=[];const e=Or(eo.getDefaults(),arguments);this.detune=new Oi({context:this.context,units:"cents",value:e.detune}),this.frequency=new Oi({context:this.context,units:"frequency"}),this._amplitude=new Ti({context:this.context,gain:0}).connect(this.output),this._highpass=new $a({Q:0,context:this.context,type:"highpass"}).connect(this._amplitude);for(let t=0;tthis.onsilence(this):Qr,type:"square"});n.connect(this._highpass),this._oscillators[t]=n;const s=new pa({context:this.context,value:Ja[t]});this._freqMultipliers[t]=s,this.frequency.chain(s,n.frequency),this.detune.connect(n.detune)}this._filterFreqScaler=new Aa({context:this.context,max:7e3,min:this.toFrequency(e.resonance)}),this.envelope=new Pa({attack:e.envelope.attack,attackCurve:"linear",context:this.context,decay:e.envelope.decay,release:e.envelope.release,sustain:0}),this.envelope.chain(this._filterFreqScaler,this._highpass.frequency),this.envelope.connect(this._amplitude.gain),this._octaves=e.octaves,this.octaves=e.octaves}static getDefaults(){return Rr(Wa.getDefaults(),{envelope:Object.assign(Mr(Pa.getDefaults(),Object.keys(Si.getDefaults())),{attack:.001,decay:1.4,release:.2}),harmonicity:5.1,modulationIndex:32,octaves:1.5,resonance:4e3})}_triggerEnvelopeAttack(e,t=1){return this.envelope.triggerAttack(e,t),this._oscillators.forEach((t=>t.start(e))),0===this.envelope.sustain&&this._oscillators.forEach((t=>{t.stop(e+this.toSeconds(this.envelope.attack)+this.toSeconds(this.envelope.decay))})),this}_triggerEnvelopeRelease(e){return this.envelope.triggerRelease(e),this._oscillators.forEach((t=>t.stop(e+this.toSeconds(this.envelope.release)))),this}getLevelAtTime(e){return e=this.toSeconds(e),this.envelope.getValueAtTime(e)}get modulationIndex(){return this._oscillators[0].modulationIndex.value}set modulationIndex(e){this._oscillators.forEach((t=>t.modulationIndex.value=e))}get harmonicity(){return this._oscillators[0].harmonicity.value}set harmonicity(e){this._oscillators.forEach((t=>t.harmonicity.value=e))}get resonance(){return this._filterFreqScaler.min}set resonance(e){this._filterFreqScaler.min=this.toFrequency(e),this.octaves=this._octaves}get octaves(){return this._octaves}set octaves(e){this._octaves=e,this._filterFreqScaler.max=this._filterFreqScaler.min*Math.pow(2,e)}dispose(){return super.dispose(),this._oscillators.forEach((e=>e.dispose())),this._freqMultipliers.forEach((e=>e.dispose())),this.frequency.dispose(),this.detune.dispose(),this._filterFreqScaler.dispose(),this._amplitude.dispose(),this.envelope.dispose(),this._highpass.dispose(),this}}class to extends Ga{constructor(){super(Or(to.getDefaults(),arguments)),this.name="MembraneSynth",this.portamento=0;const e=Or(to.getDefaults(),arguments);this.pitchDecay=e.pitchDecay,this.octaves=e.octaves,Zr(this,["oscillator","envelope"])}static getDefaults(){return Rr(Wa.getDefaults(),Ga.getDefaults(),{envelope:{attack:.001,attackCurve:"exponential",decay:.4,release:1.4,sustain:.01},octaves:10,oscillator:{type:"sine"},pitchDecay:.05})}setNote(e,t){const n=this.toSeconds(t),s=this.toFrequency(e instanceof gi?e.toFrequency():e),r=s*this.octaves;return this.oscillator.frequency.setValueAtTime(r,n),this.oscillator.frequency.exponentialRampToValueAtTime(s,n+this.toSeconds(this.pitchDecay)),this}dispose(){return super.dispose(),this}}Ar([Sa(0)],to.prototype,"octaves",void 0),Ar([_a(0)],to.prototype,"pitchDecay",void 0);class no extends Va{constructor(){super(Or(no.getDefaults(),arguments)),this.name="NoiseSynth";const e=Or(no.getDefaults(),arguments);this.noise=new na(Object.assign({context:this.context},e.noise)),this.envelope=new ja(Object.assign({context:this.context},e.envelope)),this.noise.chain(this.envelope,this.output)}static getDefaults(){return Object.assign(Va.getDefaults(),{envelope:Object.assign(Mr(Pa.getDefaults(),Object.keys(Si.getDefaults())),{decay:.1,sustain:0}),noise:Object.assign(Mr(na.getDefaults(),Object.keys(ea.getDefaults())),{type:"white"})})}triggerAttack(e,t=1){return e=this.toSeconds(e),this.envelope.triggerAttack(e,t),this.noise.start(e),0===this.envelope.sustain&&this.noise.stop(e+this.toSeconds(this.envelope.attack)+this.toSeconds(this.envelope.decay)),this}triggerRelease(e){return e=this.toSeconds(e),this.envelope.triggerRelease(e),this.noise.stop(e+this.toSeconds(this.envelope.release)),this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",0),this._syncMethod("triggerRelease",0)),this}triggerAttackRelease(e,t,n=1){return t=this.toSeconds(t),e=this.toSeconds(e),this.triggerAttack(t,n),this.triggerRelease(t+e),this}dispose(){return super.dispose(),this.noise.dispose(),this.envelope.dispose(),this}}const so=new Set;function ro(e){so.add(e)}function io(e,t){const n=`registerProcessor("${e}", ${t})`;so.add(n)}class ao extends Si{constructor(e){super(e),this.name="ToneAudioWorklet",this.workletOptions={},this.onprocessorerror=Qr;const t=URL.createObjectURL(new Blob([Array.from(so).join("\n")],{type:"text/javascript"})),n=this._audioWorkletName();this._dummyGain=this.context.createGain(),this._dummyParam=this._dummyGain.gain,this.context.addAudioWorkletModule(t,n).then((()=>{this.disposed||(this._worklet=this.context.createAudioWorkletNode(n,this.workletOptions),this._worklet.onprocessorerror=this.onprocessorerror.bind(this),this.onReady(this._worklet))}))}dispose(){return super.dispose(),this._dummyGain.disconnect(),this._worklet&&(this._worklet.port.postMessage("dispose"),this._worklet.disconnect()),this}}ro('\n\t/**\n\t * The base AudioWorkletProcessor for use in Tone.js. Works with the [[ToneAudioWorklet]]. \n\t */\n\tclass ToneAudioWorkletProcessor extends AudioWorkletProcessor {\n\n\t\tconstructor(options) {\n\t\t\t\n\t\t\tsuper(options);\n\t\t\t/**\n\t\t\t * If the processor was disposed or not. Keep alive until it\'s disposed.\n\t\t\t */\n\t\t\tthis.disposed = false;\n\t\t \t/** \n\t\t\t * The number of samples in the processing block\n\t\t\t */\n\t\t\tthis.blockSize = 128;\n\t\t\t/**\n\t\t\t * the sample rate\n\t\t\t */\n\t\t\tthis.sampleRate = sampleRate;\n\n\t\t\tthis.port.onmessage = (event) => {\n\t\t\t\t// when it receives a dispose \n\t\t\t\tif (event.data === "dispose") {\n\t\t\t\t\tthis.disposed = true;\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n');ro("\n\t/**\n\t * Abstract class for a single input/output processor. \n\t * has a 'generate' function which processes one sample at a time\n\t */\n\tclass SingleIOProcessor extends ToneAudioWorkletProcessor {\n\n\t\tconstructor(options) {\n\t\t\tsuper(Object.assign(options, {\n\t\t\t\tnumberOfInputs: 1,\n\t\t\t\tnumberOfOutputs: 1\n\t\t\t}));\n\t\t\t/**\n\t\t\t * Holds the name of the parameter and a single value of that\n\t\t\t * parameter at the current sample\n\t\t\t * @type { [name: string]: number }\n\t\t\t */\n\t\t\tthis.params = {}\n\t\t}\n\n\t\t/**\n\t\t * Generate an output sample from the input sample and parameters\n\t\t * @abstract\n\t\t * @param input number\n\t\t * @param channel number\n\t\t * @param parameters { [name: string]: number }\n\t\t * @returns number\n\t\t */\n\t\tgenerate(){}\n\n\t\t/**\n\t\t * Update the private params object with the \n\t\t * values of the parameters at the given index\n\t\t * @param parameters { [name: string]: Float32Array },\n\t\t * @param index number\n\t\t */\n\t\tupdateParams(parameters, index) {\n\t\t\tfor (const paramName in parameters) {\n\t\t\t\tconst param = parameters[paramName];\n\t\t\t\tif (param.length > 1) {\n\t\t\t\t\tthis.params[paramName] = parameters[paramName][index];\n\t\t\t\t} else {\n\t\t\t\t\tthis.params[paramName] = parameters[paramName][0];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Process a single frame of the audio\n\t\t * @param inputs Float32Array[][]\n\t\t * @param outputs Float32Array[][]\n\t\t */\n\t\tprocess(inputs, outputs, parameters) {\n\t\t\tconst input = inputs[0];\n\t\t\tconst output = outputs[0];\n\t\t\t// get the parameter values\n\t\t\tconst channelCount = Math.max(input && input.length || 0, output.length);\n\t\t\tfor (let sample = 0; sample < this.blockSize; sample++) {\n\t\t\t\tthis.updateParams(parameters, sample);\n\t\t\t\tfor (let channel = 0; channel < channelCount; channel++) {\n\t\t\t\t\tconst inputSample = input && input.length ? input[channel][sample] : 0;\n\t\t\t\t\toutput[channel][sample] = this.generate(inputSample, channel, this.params);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn !this.disposed;\n\t\t}\n\t};\n");ro("\n\t/**\n\t * A multichannel buffer for use within an AudioWorkletProcessor as a delay line\n\t */\n\tclass DelayLine {\n\t\t\n\t\tconstructor(size, channels) {\n\t\t\tthis.buffer = [];\n\t\t\tthis.writeHead = []\n\t\t\tthis.size = size;\n\n\t\t\t// create the empty channels\n\t\t\tfor (let i = 0; i < channels; i++) {\n\t\t\t\tthis.buffer[i] = new Float32Array(this.size);\n\t\t\t\tthis.writeHead[i] = 0;\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Push a value onto the end\n\t\t * @param channel number\n\t\t * @param value number\n\t\t */\n\t\tpush(channel, value) {\n\t\t\tthis.writeHead[channel] += 1;\n\t\t\tif (this.writeHead[channel] > this.size) {\n\t\t\t\tthis.writeHead[channel] = 0;\n\t\t\t}\n\t\t\tthis.buffer[channel][this.writeHead[channel]] = value;\n\t\t}\n\n\t\t/**\n\t\t * Get the recorded value of the channel given the delay\n\t\t * @param channel number\n\t\t * @param delay number delay samples\n\t\t */\n\t\tget(channel, delay) {\n\t\t\tlet readHead = this.writeHead[channel] - Math.floor(delay);\n\t\t\tif (readHead < 0) {\n\t\t\t\treadHead += this.size;\n\t\t\t}\n\t\t\treturn this.buffer[channel][readHead];\n\t\t}\n\t}\n");const oo="feedback-comb-filter";io(oo,'\n\tclass FeedbackCombFilterWorklet extends SingleIOProcessor {\n\n\t\tconstructor(options) {\n\t\t\tsuper(options);\n\t\t\tthis.delayLine = new DelayLine(this.sampleRate, options.channelCount || 2);\n\t\t}\n\n\t\tstatic get parameterDescriptors() {\n\t\t\treturn [{\n\t\t\t\tname: "delayTime",\n\t\t\t\tdefaultValue: 0.1,\n\t\t\t\tminValue: 0,\n\t\t\t\tmaxValue: 1,\n\t\t\t\tautomationRate: "k-rate"\n\t\t\t}, {\n\t\t\t\tname: "feedback",\n\t\t\t\tdefaultValue: 0.5,\n\t\t\t\tminValue: 0,\n\t\t\t\tmaxValue: 0.9999,\n\t\t\t\tautomationRate: "k-rate"\n\t\t\t}];\n\t\t}\n\n\t\tgenerate(input, channel, parameters) {\n\t\t\tconst delayedSample = this.delayLine.get(channel, parameters.delayTime * this.sampleRate);\n\t\t\tthis.delayLine.push(channel, input + delayedSample * parameters.feedback);\n\t\t\treturn delayedSample;\n\t\t}\n\t}\n');class lo extends ao{constructor(){super(Or(lo.getDefaults(),arguments,["delayTime","resonance"])),this.name="FeedbackCombFilter";const e=Or(lo.getDefaults(),arguments,["delayTime","resonance"]);this.input=new Ti({context:this.context}),this.output=new Ti({context:this.context}),this.delayTime=new ki({context:this.context,value:e.delayTime,units:"time",minValue:0,maxValue:1,param:this._dummyParam,swappable:!0}),this.resonance=new ki({context:this.context,value:e.resonance,units:"normalRange",param:this._dummyParam,swappable:!0}),Zr(this,["resonance","delayTime"])}_audioWorkletName(){return oo}static getDefaults(){return Object.assign(Si.getDefaults(),{delayTime:.1,resonance:.5})}onReady(e){_i(this.input,e,this.output);const t=e.parameters.get("delayTime");this.delayTime.setParam(t);const n=e.parameters.get("feedback");this.resonance.setParam(n)}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this.delayTime.dispose(),this.resonance.dispose(),this}}class uo extends Si{constructor(){super(Or(uo.getDefaults(),arguments,["frequency","type"])),this.name="OnePoleFilter";const e=Or(uo.getDefaults(),arguments,["frequency","type"]);this._frequency=e.frequency,this._type=e.type,this.input=new Ti({context:this.context}),this.output=new Ti({context:this.context}),this._createFilter()}static getDefaults(){return Object.assign(Si.getDefaults(),{frequency:880,type:"lowpass"})}_createFilter(){const e=this._filter,t=this.toFrequency(this._frequency),n=1/(2*Math.PI*t);if("lowpass"===this._type){const e=1/(n*this.context.sampleRate),t=e-1;this._filter=this.context.createIIRFilter([e,0],[1,t])}else{const e=1/(n*this.context.sampleRate)-1;this._filter=this.context.createIIRFilter([1,-1],[1,e])}this.input.chain(this._filter,this.output),e&&this.context.setTimeout((()=>{this.disposed||(this.input.disconnect(e),e.disconnect())}),this.blockTime)}get frequency(){return this._frequency}set frequency(e){this._frequency=e,this._createFilter()}get type(){return this._type}set type(e){this._type=e,this._createFilter()}getFrequencyResponse(e=128){const t=new Float32Array(e);for(let n=0;nt.voice===e));this._activeVoices.splice(t,1)}_getNextAvailableVoice(){if(this._availableVoices.length)return this._availableVoices.shift();if(this._voices.lengthMath.ceil(this._averageActiveVoices+1)){const e=this._availableVoices.shift(),t=this._voices.indexOf(e);this._voices.splice(t,1),this.context.isOffline||e.dispose()}}_triggerAttack(e,t,n){e.forEach((e=>{const s=new Vi(this.context,e).toMidi(),r=this._getNextAvailableVoice();r&&(r.triggerAttack(e,t,n),this._activeVoices.push({midi:s,voice:r,released:!1}),this.log("triggerAttack",e,t))}))}_triggerRelease(e,t){e.forEach((e=>{const n=new Vi(this.context,e).toMidi(),s=this._activeVoices.find((({midi:e,released:t})=>e===n&&!t));s&&(s.voice.triggerRelease(t),s.released=!0,this.log("triggerRelease",e,t))}))}_scheduleEvent(e,t,n,s){rr(!this.disposed,"Synth was already disposed"),n<=this.now()?"attack"===e?this._triggerAttack(t,n,s):this._triggerRelease(t,n):this.context.setTimeout((()=>{this._scheduleEvent(e,t,n,s)}),n-this.now())}triggerAttack(e,t,n){Array.isArray(e)||(e=[e]);const s=this.toSeconds(t);return this._scheduleEvent("attack",e,s,n),this}triggerRelease(e,t){Array.isArray(e)||(e=[e]);const n=this.toSeconds(t);return this._scheduleEvent("release",e,n),this}triggerAttackRelease(e,t,n,s){const r=this.toSeconds(n);if(this.triggerAttack(e,r,s),yr(t)){rr(yr(e),"If the duration is an array, the notes must also be an array");for(let n=0;n0,"The duration must be greater than 0"),this.triggerRelease(e[n],r+i)}}else{const n=this.toSeconds(t);rr(n>0,"The duration must be greater than 0"),this.triggerRelease(e,r+n)}return this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",1)),this}set(e){const t=Mr(e,["onsilence","context"]);return this.options=Rr(this.options,t),this._voices.forEach((e=>e.set(t))),this._dummyVoice.set(t),this}get(){return this._dummyVoice.get()}releaseAll(e){const t=this.toSeconds(e);return this._activeVoices.forEach((({voice:e})=>{e.triggerRelease(t)})),this}dispose(){return super.dispose(),this._dummyVoice.dispose(),this._voices.forEach((e=>e.dispose())),this._activeVoices=[],this._availableVoices=[],this.context.clearInterval(this._gcTimeout),this}}class fo extends Va{constructor(){super(Or(fo.getDefaults(),arguments,["urls","onload","baseUrl"],"urls")),this.name="Sampler",this._activeSources=new Map;const e=Or(fo.getDefaults(),arguments,["urls","onload","baseUrl"],"urls"),t={};Object.keys(e.urls).forEach((n=>{const s=parseInt(n,10);if(rr(wr(n)||fr(s)&&isFinite(s),`url key is neither a note or midi pitch: ${n}`),wr(n)){const s=new gi(this.context,n).toMidi();t[s]=e.urls[n]}else fr(s)&&isFinite(s)&&(t[s]=e.urls[s])})),this._buffers=new Ui({urls:t,onload:e.onload,baseUrl:e.baseUrl,onerror:e.onerror}),this.attack=e.attack,this.release=e.release,this.curve=e.curve,this._buffers.loaded&&Promise.resolve().then(e.onload)}static getDefaults(){return Object.assign(Va.getDefaults(),{attack:0,baseUrl:"",curve:"exponential",onload:Qr,onerror:Qr,release:.1,urls:{}})}_findClosest(e){let t=0;for(;t<96;){if(this._buffers.has(e+t))return-t;if(this._buffers.has(e-t))return t;t++}throw new Error(`No available buffers for note: ${e}`)}triggerAttack(e,t,n=1){return this.log("triggerAttack",e,t,n),Array.isArray(e)||(e=[e]),e.forEach((e=>{const s=hi(new gi(this.context,e).toFrequency()),r=Math.round(s),i=s-r,a=this._findClosest(r),o=r-a,l=this._buffers.get(o),u=li(a+i),c=new ta({url:l,context:this.context,curve:this.curve,fadeIn:this.attack,fadeOut:this.release,playbackRate:u}).connect(this.output);c.start(t,0,l.duration/u,n),yr(this._activeSources.get(r))||this._activeSources.set(r,[]),this._activeSources.get(r).push(c),c.onended=()=>{if(this._activeSources&&this._activeSources.has(r)){const e=this._activeSources.get(r),t=e.indexOf(c);-1!==t&&e.splice(t,1)}}})),this}triggerRelease(e,t){return this.log("triggerRelease",e,t),Array.isArray(e)||(e=[e]),e.forEach((e=>{const n=new gi(this.context,e).toMidi();if(this._activeSources.has(n)&&this._activeSources.get(n).length){const e=this._activeSources.get(n);t=this.toSeconds(t),e.forEach((e=>{e.stop(t)})),this._activeSources.set(n,[])}})),this}releaseAll(e){const t=this.toSeconds(e);return this._activeSources.forEach((e=>{for(;e.length;){e.shift().stop(t)}})),this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",1)),this}triggerAttackRelease(e,t,n,s=1){const r=this.toSeconds(n);return this.triggerAttack(e,r,s),yr(t)?(rr(yr(e),"notes must be an array when duration is array"),e.forEach(((e,n)=>{const s=t[Math.min(n,t.length-1)];this.triggerRelease(e,r+this.toSeconds(s))}))):this.triggerRelease(e,r+this.toSeconds(t)),this}add(e,t,n){if(rr(wr(e)||isFinite(e),`note must be a pitch or midi: ${e}`),wr(e)){const s=new gi(this.context,e).toMidi();this._buffers.add(s,t,n)}else this._buffers.add(e,t,n);return this}get loaded(){return this._buffers.loaded}dispose(){return super.dispose(),this._buffers.dispose(),this._activeSources.forEach((e=>{e.forEach((e=>e.dispose()))})),this._activeSources.clear(),this}}Ar([_a(0)],fo.prototype,"attack",void 0),Ar([_a(0)],fo.prototype,"release",void 0);class mo extends Ai{constructor(){super(Or(mo.getDefaults(),arguments,["callback","value"])),this.name="ToneEvent",this._state=new Ci("stopped"),this._startOffset=0;const e=Or(mo.getDefaults(),arguments,["callback","value"]);this._loop=e.loop,this.callback=e.callback,this.value=e.value,this._loopStart=this.toTicks(e.loopStart),this._loopEnd=this.toTicks(e.loopEnd),this._playbackRate=e.playbackRate,this._probability=e.probability,this._humanize=e.humanize,this.mute=e.mute,this._playbackRate=e.playbackRate,this._state.increasing=!0,this._rescheduleEvents()}static getDefaults(){return Object.assign(Ai.getDefaults(),{callback:Qr,humanize:!1,loop:!1,loopEnd:"1m",loopStart:0,mute:!1,playbackRate:1,probability:1,value:null})}_rescheduleEvents(e=-1){this._state.forEachFrom(e,(e=>{let t;if("started"===e.state){-1!==e.id&&this.context.transport.clear(e.id);const n=e.time+Math.round(this.startOffset/this._playbackRate);if(!0===this._loop||fr(this._loop)&&this._loop>1){t=1/0,fr(this._loop)&&(t=this._loop*this._getLoopDuration());const s=this._state.getAfter(n);null!==s&&(t=Math.min(t,s.time-n)),t!==1/0&&(this._state.setStateAtTime("stopped",n+t+1,{id:-1}),t=new ji(this.context,t));const r=new ji(this.context,this._getLoopDuration());e.id=this.context.transport.scheduleRepeat(this._tick.bind(this),r,new ji(this.context,n),t)}else e.id=this.context.transport.schedule(this._tick.bind(this),new ji(this.context,n))}}))}get state(){return this._state.getValueAtTime(this.context.transport.ticks)}get startOffset(){return this._startOffset}set startOffset(e){this._startOffset=e}get probability(){return this._probability}set probability(e){this._probability=e}get humanize(){return this._humanize}set humanize(e){this._humanize=e}start(e){const t=this.toTicks(e);return"stopped"===this._state.getValueAtTime(t)&&(this._state.add({id:-1,state:"started",time:t}),this._rescheduleEvents(t)),this}stop(e){this.cancel(e);const t=this.toTicks(e);if("started"===this._state.getValueAtTime(t)){this._state.setStateAtTime("stopped",t,{id:-1});const e=this._state.getBefore(t);let n=t;null!==e&&(n=e.time),this._rescheduleEvents(n)}return this}cancel(e){e=Dr(e,-1/0);const t=this.toTicks(e);return this._state.forEachFrom(t,(e=>{this.context.transport.clear(e.id)})),this._state.cancel(t),this}_tick(e){const t=this.context.transport.getTicksAtTime(e);if(!this.mute&&"started"===this._state.getValueAtTime(t)){if(this.probability<1&&Math.random()>this.probability)return;if(this.humanize){let t=.02;gr(this.humanize)||(t=this.toSeconds(this.humanize)),e+=(2*Math.random()-1)*t}this.callback(e,this.value)}}_getLoopDuration(){return Math.round((this._loopEnd-this._loopStart)/this._playbackRate)}get loop(){return this._loop}set loop(e){this._loop=e,this._rescheduleEvents()}get playbackRate(){return this._playbackRate}set playbackRate(e){this._playbackRate=e,this._rescheduleEvents()}get loopEnd(){return new ji(this.context,this._loopEnd).toSeconds()}set loopEnd(e){this._loopEnd=this.toTicks(e),this._loop&&this._rescheduleEvents()}get loopStart(){return new ji(this.context,this._loopStart).toSeconds()}set loopStart(e){this._loopStart=this.toTicks(e),this._loop&&this._rescheduleEvents()}get progress(){if(this._loop){const e=this.context.transport.ticks,t=this._state.get(e);if(null!==t&&"started"===t.state){const n=this._getLoopDuration();return(e-t.time)%n/n}return 0}return 0}dispose(){return super.dispose(),this.cancel(),this._state.dispose(),this}}class go extends Ai{constructor(){super(Or(go.getDefaults(),arguments,["callback","interval"])),this.name="Loop";const e=Or(go.getDefaults(),arguments,["callback","interval"]);this._event=new mo({context:this.context,callback:this._tick.bind(this),loop:!0,loopEnd:e.interval,playbackRate:e.playbackRate,probability:e.probability}),this.callback=e.callback,this.iterations=e.iterations}static getDefaults(){return Object.assign(Ai.getDefaults(),{interval:"4n",callback:Qr,playbackRate:1,iterations:1/0,probability:1,mute:!1,humanize:!1})}start(e){return this._event.start(e),this}stop(e){return this._event.stop(e),this}cancel(e){return this._event.cancel(e),this}_tick(e){this.callback(e)}get state(){return this._event.state}get progress(){return this._event.progress}get interval(){return this._event.loopEnd}set interval(e){this._event.loopEnd=e}get playbackRate(){return this._event.playbackRate}set playbackRate(e){this._event.playbackRate=e}get humanize(){return this._event.humanize}set humanize(e){this._event.humanize=e}get probability(){return this._event.probability}set probability(e){this._event.probability=e}get mute(){return this._event.mute}set mute(e){this._event.mute=e}get iterations(){return!0===this._event.loop?1/0:this._event.loop}set iterations(e){this._event.loop=e===1/0||e}dispose(){return super.dispose(),this._event.dispose(),this}}class yo extends mo{constructor(){super(Or(yo.getDefaults(),arguments,["callback","events"])),this.name="Part",this._state=new Ci("stopped"),this._events=new Set;const e=Or(yo.getDefaults(),arguments,["callback","events"]);this._state.increasing=!0,e.events.forEach((e=>{yr(e)?this.add(e[0],e[1]):this.add(e)}))}static getDefaults(){return Object.assign(mo.getDefaults(),{events:[]})}start(e,t){const n=this.toTicks(e);if("started"!==this._state.getValueAtTime(n)){t=Dr(t,this._loop?this._loopStart:0),t=this._loop?Dr(t,this._loopStart):Dr(t,0);const e=this.toTicks(t);this._state.add({id:-1,offset:e,state:"started",time:n}),this._forEach((t=>{this._startNote(t,n,e)}))}return this}_startNote(e,t,n){t-=n,this._loop?e.startOffset>=this._loopStart&&e.startOffset=n&&(e.loop=!1,e.start(new ji(this.context,t))):e.startOffset>=n&&e.start(new ji(this.context,t))}get startOffset(){return this._startOffset}set startOffset(e){this._startOffset=e,this._forEach((e=>{e.startOffset+=this._startOffset}))}stop(e){const t=this.toTicks(e);return this._state.cancel(t),this._state.setStateAtTime("stopped",t),this._forEach((t=>{t.stop(e)})),this}at(e,t){const n=new vi(this.context,e).toTicks(),s=new ji(this.context,1).toSeconds(),r=this._events.values();let i=r.next();for(;!i.done;){const e=i.value;if(Math.abs(n-e.startOffset){"started"===t.state?this._startNote(e,t.time,t.offset):e.stop(new ji(this.context,t.time))}))}remove(e,t){return mr(e)&&e.hasOwnProperty("time")&&(e=(t=e).time),e=this.toTicks(e),this._events.forEach((n=>{n.startOffset===e&&(hr(t)||dr(t)&&n.value===t)&&(this._events.delete(n),n.dispose())})),this}clear(){return this._forEach((e=>e.dispose())),this._events.clear(),this}cancel(e){return this._forEach((t=>t.cancel(e))),this._state.cancel(this.toTicks(e)),this}_forEach(e){return this._events&&this._events.forEach((t=>{t instanceof yo?t._forEach(e):e(t)})),this}_setAll(e,t){this._forEach((n=>{n[e]=t}))}_tick(e,t){this.mute||this.callback(e,t)}_testLoopBoundries(e){this._loop&&(e.startOffset=this._loopEnd)?e.cancel(0):"stopped"===e.state&&this._restartEvent(e)}get probability(){return this._probability}set probability(e){this._probability=e,this._setAll("probability",e)}get humanize(){return this._humanize}set humanize(e){this._humanize=e,this._setAll("humanize",e)}get loop(){return this._loop}set loop(e){this._loop=e,this._forEach((t=>{t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.loop=e,this._testLoopBoundries(t)}))}get loopEnd(){return new ji(this.context,this._loopEnd).toSeconds()}set loopEnd(e){this._loopEnd=this.toTicks(e),this._loop&&this._forEach((t=>{t.loopEnd=e,this._testLoopBoundries(t)}))}get loopStart(){return new ji(this.context,this._loopStart).toSeconds()}set loopStart(e){this._loopStart=this.toTicks(e),this._loop&&this._forEach((e=>{e.loopStart=this.loopStart,this._testLoopBoundries(e)}))}get playbackRate(){return this._playbackRate}set playbackRate(e){this._playbackRate=e,this._setAll("playbackRate",e)}get length(){return this._events.size}dispose(){return super.dispose(),this.clear(),this}}function*bo(e){let t=0;for(;t=0;)t=xo(t,e),yield e[t],t--}function*vo(e,t){for(;;)yield*t(e)}function xo(e,t){return Vr(e,0,t.length-1)}function*Ao(e,t){let n=t?0:e.length-1;for(;;)n=xo(n,e),yield e[n],t?(n++,n>=e.length-1&&(t=!1)):(n--,n<=0&&(t=!0))}function*Co(e){let t=0,n=0;for(;t=0;)t=xo(t,e),yield e[t],n++,t+=n%2?-2:1}function*So(e){const t=[];for(let n=0;n0;){const n=xo(t.splice(Math.floor(t.length*Math.random()),1)[0],e);yield e[n]}}function*_o(e,t="up",n=0){switch(rr(e.length>0,"The array must have more than one value in it"),t){case"up":yield*vo(e,bo);case"down":yield*vo(e,wo);case"upDown":yield*Ao(e,!0);case"downUp":yield*Ao(e,!1);case"alternateUp":yield*vo(e,Co);case"alternateDown":yield*vo(e,ko);case"random":yield*function*(e){for(;;){const t=Math.floor(Math.random()*e.length);yield e[t]}}(e);case"randomOnce":yield*vo(e,So);case"randomWalk":yield*function*(e){let t=Math.floor(Math.random()*e.length);for(;;)0===t?t++:t===e.length-1||Math.random()<.5?t--:t++,yield e[t]}(e)}}class Eo extends go{constructor(){super(Or(Eo.getDefaults(),arguments,["callback","values","pattern"])),this.name="Pattern";const e=Or(Eo.getDefaults(),arguments,["callback","values","pattern"]);this.callback=e.callback,this._values=e.values,this._pattern=_o(e.values,e.pattern),this._type=e.pattern}static getDefaults(){return Object.assign(go.getDefaults(),{pattern:"up",values:[],callback:Qr})}_tick(e){const t=this._pattern.next();this._value=t.value,this.callback(e,this._value)}get values(){return this._values}set values(e){this._values=e,this.pattern=this._type}get value(){return this._value}get pattern(){return this._type}set pattern(e){this._type=e,this._pattern=_o(this._values,this._type)}}class Io extends mo{constructor(){super(Or(Io.getDefaults(),arguments,["callback","events","subdivision"])),this.name="Sequence",this._part=new yo({callback:this._seqCallback.bind(this),context:this.context}),this._events=[],this._eventsArray=[];const e=Or(Io.getDefaults(),arguments,["callback","events","subdivision"]);this._subdivision=this.toTicks(e.subdivision),this.events=e.events,this.loop=e.loop,this.loopStart=e.loopStart,this.loopEnd=e.loopEnd,this.playbackRate=e.playbackRate,this.probability=e.probability,this.humanize=e.humanize,this.mute=e.mute,this.playbackRate=e.playbackRate}static getDefaults(){return Object.assign(Mr(mo.getDefaults(),["value"]),{events:[],loop:!0,loopEnd:0,loopStart:0,subdivision:"8n"})}_seqCallback(e,t){null!==t&&this.callback(e,t)}get events(){return this._events}set events(e){this.clear(),this._eventsArray=e,this._events=this._createSequence(this._eventsArray),this._eventsUpdated()}start(e,t){return this._part.start(e,t?this._indexTime(t):t),this}stop(e){return this._part.stop(e),this}get subdivision(){return new ji(this.context,this._subdivision).toSeconds()}_createSequence(e){return new Proxy(e,{get:(e,t)=>e[t],set:(e,t,n)=>(br(t)&&isFinite(parseInt(t,10))&&yr(n)?e[t]=this._createSequence(n):e[t]=n,this._eventsUpdated(),!0)})}_eventsUpdated(){this._part.clear(),this._rescheduleSequence(this._eventsArray,this._subdivision,this.startOffset),this.loopEnd=this.loopEnd}_rescheduleSequence(e,t,n){e.forEach(((e,s)=>{const r=s*t+n;if(yr(e))this._rescheduleSequence(e,t/e.length,r);else{const t=new ji(this.context,r,"i").toSeconds();this._part.add(t,e)}}))}_indexTime(e){return new ji(this.context,e*this._subdivision+this.startOffset).toSeconds()}clear(){return this._part.clear(),this}dispose(){return super.dispose(),this._part.dispose(),this}get loop(){return this._part.loop}set loop(e){this._part.loop=e}get loopStart(){return this._loopStart}set loopStart(e){this._loopStart=e,this._part.loopStart=this._indexTime(e)}get loopEnd(){return this._loopEnd}set loopEnd(e){this._loopEnd=e,this._part.loopEnd=0===e?this._indexTime(this._eventsArray.length):this._indexTime(e)}get startOffset(){return this._part.startOffset}set startOffset(e){this._part.startOffset=e}get playbackRate(){return this._part.playbackRate}set playbackRate(e){this._part.playbackRate=e}get probability(){return this._part.probability}set probability(e){this._part.probability=e}get progress(){return this._part.progress}get humanize(){return this._part.humanize}set humanize(e){this._part.humanize=e}get length(){return this._part.length}}class To extends Si{constructor(){super(Object.assign(Or(To.getDefaults(),arguments,["fade"]))),this.name="CrossFade",this._panner=this.context.createStereoPanner(),this._split=this.context.createChannelSplitter(2),this._g2a=new Ra({context:this.context}),this.a=new Ti({context:this.context,gain:0}),this.b=new Ti({context:this.context,gain:0}),this.output=new Ti({context:this.context}),this._internalChannels=[this.a,this.b];const e=Or(To.getDefaults(),arguments,["fade"]);this.fade=new Oi({context:this.context,units:"normalRange",value:e.fade}),Zr(this,"fade"),this.context.getConstant(1).connect(this._panner),this._panner.connect(this._split),this._panner.channelCount=1,this._panner.channelCountMode="explicit",Ei(this._split,this.a.gain,0),Ei(this._split,this.b.gain,1),this.fade.chain(this._g2a,this._panner.pan),this.a.connect(this.output),this.b.connect(this.output)}static getDefaults(){return Object.assign(Si.getDefaults(),{fade:.5})}dispose(){return super.dispose(),this.a.dispose(),this.b.dispose(),this.output.dispose(),this.fade.dispose(),this._g2a.dispose(),this._panner.disconnect(),this._split.disconnect(),this}}class No extends Si{constructor(e){super(e),this.name="Effect",this._dryWet=new To({context:this.context}),this.wet=this._dryWet.fade,this.effectSend=new Ti({context:this.context}),this.effectReturn=new Ti({context:this.context}),this.input=new Ti({context:this.context}),this.output=this._dryWet,this.input.fan(this._dryWet.a,this.effectSend),this.effectReturn.connect(this._dryWet.b),this.wet.setValueAtTime(e.wet,0),this._internalChannels=[this.effectReturn,this.effectSend],Zr(this,"wet")}static getDefaults(){return Object.assign(Si.getDefaults(),{wet:1})}connectEffect(e){return this._internalChannels.push(e),this.effectSend.chain(e,this.effectReturn),this}dispose(){return super.dispose(),this._dryWet.dispose(),this.effectSend.dispose(),this.effectReturn.dispose(),this.wet.dispose(),this}}class Ro extends No{constructor(e){super(e),this.name="LFOEffect",this._lfo=new ka({context:this.context,frequency:e.frequency,amplitude:e.depth}),this.depth=this._lfo.amplitude,this.frequency=this._lfo.frequency,this.type=e.type,Zr(this,["frequency","depth"])}static getDefaults(){return Object.assign(No.getDefaults(),{frequency:1,type:"sine",depth:1})}start(e){return this._lfo.start(e),this}stop(e){return this._lfo.stop(e),this}sync(){return this._lfo.sync(),this}unsync(){return this._lfo.unsync(),this}get type(){return this._lfo.type}set type(e){this._lfo.type=e}dispose(){return super.dispose(),this._lfo.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class Oo extends Ro{constructor(){super(Or(Oo.getDefaults(),arguments,["frequency","baseFrequency","octaves"])),this.name="AutoFilter";const e=Or(Oo.getDefaults(),arguments,["frequency","baseFrequency","octaves"]);this.filter=new $a(Object.assign(e.filter,{context:this.context})),this.connectEffect(this.filter),this._lfo.connect(this.filter.frequency),this.octaves=e.octaves,this.baseFrequency=e.baseFrequency}static getDefaults(){return Object.assign(Ro.getDefaults(),{baseFrequency:200,octaves:2.6,filter:{type:"lowpass",rolloff:-12,Q:1}})}get baseFrequency(){return this._lfo.min}set baseFrequency(e){this._lfo.min=this.toFrequency(e),this.octaves=this._octaves}get octaves(){return this._octaves}set octaves(e){this._octaves=e,this._lfo.max=this._lfo.min*Math.pow(2,e)}dispose(){return super.dispose(),this.filter.dispose(),this}}class Do extends Si{constructor(){super(Object.assign(Or(Do.getDefaults(),arguments,["pan"]))),this.name="Panner",this._panner=this.context.createStereoPanner(),this.input=this._panner,this.output=this._panner;const e=Or(Do.getDefaults(),arguments,["pan"]);this.pan=new ki({context:this.context,param:this._panner.pan,value:e.pan,minValue:-1,maxValue:1}),this._panner.channelCount=e.channelCount,this._panner.channelCountMode="explicit",Zr(this,"pan")}static getDefaults(){return Object.assign(Si.getDefaults(),{pan:0,channelCount:1})}dispose(){return super.dispose(),this._panner.disconnect(),this.pan.dispose(),this}}class Mo extends Ro{constructor(){super(Or(Mo.getDefaults(),arguments,["frequency"])),this.name="AutoPanner";const e=Or(Mo.getDefaults(),arguments,["frequency"]);this._panner=new Do({context:this.context,channelCount:e.channelCount}),this.connectEffect(this._panner),this._lfo.connect(this._panner.pan),this._lfo.min=-1,this._lfo.max=1}static getDefaults(){return Object.assign(Ro.getDefaults(),{channelCount:1})}dispose(){return super.dispose(),this._panner.dispose(),this}}class zo extends Si{constructor(){super(Or(zo.getDefaults(),arguments,["smoothing"])),this.name="Follower";const e=Or(zo.getDefaults(),arguments,["smoothing"]);this._abs=this.input=new Na({context:this.context}),this._lowpass=this.output=new uo({context:this.context,frequency:1/this.toSeconds(e.smoothing),type:"lowpass"}),this._abs.connect(this._lowpass),this._smoothing=e.smoothing}static getDefaults(){return Object.assign(Si.getDefaults(),{smoothing:.05})}get smoothing(){return this._smoothing}set smoothing(e){this._smoothing=e,this._lowpass.frequency=1/this.toSeconds(this.smoothing)}dispose(){return super.dispose(),this._abs.dispose(),this._lowpass.dispose(),this}}class Fo extends No{constructor(){super(Or(Fo.getDefaults(),arguments,["baseFrequency","octaves","sensitivity"])),this.name="AutoWah";const e=Or(Fo.getDefaults(),arguments,["baseFrequency","octaves","sensitivity"]);this._follower=new zo({context:this.context,smoothing:e.follower}),this._sweepRange=new Ba({context:this.context,min:0,max:1,exponent:.5}),this._baseFrequency=this.toFrequency(e.baseFrequency),this._octaves=e.octaves,this._inputBoost=new Ti({context:this.context}),this._bandpass=new $a({context:this.context,rolloff:-48,frequency:0,Q:e.Q}),this._peaking=new $a({context:this.context,type:"peaking"}),this._peaking.gain.value=e.gain,this.gain=this._peaking.gain,this.Q=this._bandpass.Q,this.effectSend.chain(this._inputBoost,this._follower,this._sweepRange),this._sweepRange.connect(this._bandpass.frequency),this._sweepRange.connect(this._peaking.frequency),this.effectSend.chain(this._bandpass,this._peaking,this.effectReturn),this._setSweepRange(),this.sensitivity=e.sensitivity,Zr(this,["gain","Q"])}static getDefaults(){return Object.assign(No.getDefaults(),{baseFrequency:100,octaves:6,sensitivity:0,Q:2,gain:2,follower:.2})}get octaves(){return this._octaves}set octaves(e){this._octaves=e,this._setSweepRange()}get follower(){return this._follower.smoothing}set follower(e){this._follower.smoothing=e}get baseFrequency(){return this._baseFrequency}set baseFrequency(e){this._baseFrequency=this.toFrequency(e),this._setSweepRange()}get sensitivity(){return oi(1/this._inputBoost.gain.value)}set sensitivity(e){this._inputBoost.gain.value=1/ai(e)}_setSweepRange(){this._sweepRange.min=this._baseFrequency,this._sweepRange.max=Math.min(this._baseFrequency*Math.pow(2,this._octaves),this.context.sampleRate/2)}dispose(){return super.dispose(),this._follower.dispose(),this._sweepRange.dispose(),this._bandpass.dispose(),this._peaking.dispose(),this._inputBoost.dispose(),this}}const Bo="bit-crusher";io(Bo,"\n\tclass BitCrusherWorklet extends SingleIOProcessor {\n\n\t\tstatic get parameterDescriptors() {\n\t\t\treturn [{\n\t\t\t\tname: \"bits\",\n\t\t\t\tdefaultValue: 12,\n\t\t\t\tminValue: 1,\n\t\t\t\tmaxValue: 16,\n\t\t\t\tautomationRate: 'k-rate'\n\t\t\t}];\n\t\t}\n\n\t\tgenerate(input, _channel, parameters) {\n\t\t\tconst step = Math.pow(0.5, parameters.bits - 1);\n\t\t\tconst val = step * Math.floor(input / step + 0.5);\n\t\t\treturn val;\n\t\t}\n\t}\n");class Lo extends No{constructor(){super(Or(Lo.getDefaults(),arguments,["bits"])),this.name="BitCrusher";const e=Or(Lo.getDefaults(),arguments,["bits"]);this._bitCrusherWorklet=new Po({context:this.context,bits:e.bits}),this.connectEffect(this._bitCrusherWorklet),this.bits=this._bitCrusherWorklet.bits}static getDefaults(){return Object.assign(No.getDefaults(),{bits:4})}dispose(){return super.dispose(),this._bitCrusherWorklet.dispose(),this}}class Po extends ao{constructor(){super(Or(Po.getDefaults(),arguments)),this.name="BitCrusherWorklet";const e=Or(Po.getDefaults(),arguments);this.input=new Ti({context:this.context}),this.output=new Ti({context:this.context}),this.bits=new ki({context:this.context,value:e.bits,units:"positive",minValue:1,maxValue:16,param:this._dummyParam,swappable:!0})}static getDefaults(){return Object.assign(ao.getDefaults(),{bits:12})}_audioWorkletName(){return Bo}onReady(e){_i(this.input,e,this.output);const t=e.parameters.get("bits");this.bits.setParam(t)}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this.bits.dispose(),this}}class Uo extends No{constructor(){super(Or(Uo.getDefaults(),arguments,["order"])),this.name="Chebyshev";const e=Or(Uo.getDefaults(),arguments,["order"]);this._shaper=new ha({context:this.context,length:4096}),this._order=e.order,this.connectEffect(this._shaper),this.order=e.order,this.oversample=e.oversample}static getDefaults(){return Object.assign(No.getDefaults(),{order:1,oversample:"none"})}_getCoefficient(e,t,n){return n.has(t)||(0===t?n.set(t,0):1===t?n.set(t,e):n.set(t,2*e*this._getCoefficient(e,t-1,n)-this._getCoefficient(e,t-2,n))),n.get(t)}get order(){return this._order}set order(e){this._order=e,this._shaper.setMap((t=>this._getCoefficient(t,e,new Map)))}get oversample(){return this._shaper.oversample}set oversample(e){this._shaper.oversample=e}dispose(){return super.dispose(),this._shaper.dispose(),this}}class Vo extends Si{constructor(){super(Or(Vo.getDefaults(),arguments,["channels"])),this.name="Split";const e=Or(Vo.getDefaults(),arguments,["channels"]);this._splitter=this.input=this.output=this.context.createChannelSplitter(e.channels),this._internalChannels=[this._splitter]}static getDefaults(){return Object.assign(Si.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._splitter.disconnect(),this}}class Wo extends Si{constructor(){super(Or(Wo.getDefaults(),arguments,["channels"])),this.name="Merge";const e=Or(Wo.getDefaults(),arguments,["channels"]);this._merger=this.output=this.input=this.context.createChannelMerger(e.channels)}static getDefaults(){return Object.assign(Si.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._merger.disconnect(),this}}class jo extends Si{constructor(e){super(e),this.name="StereoEffect",this.input=new Ti({context:this.context}),this.input.channelCount=2,this.input.channelCountMode="explicit",this._dryWet=this.output=new To({context:this.context,fade:e.wet}),this.wet=this._dryWet.fade,this._split=new Vo({context:this.context,channels:2}),this._merge=new Wo({context:this.context,channels:2}),this.input.connect(this._split),this.input.connect(this._dryWet.a),this._merge.connect(this._dryWet.b),Zr(this,["wet"])}connectEffectLeft(...e){this._split.connect(e[0],0,0),_i(...e),Ei(e[e.length-1],this._merge,0,0)}connectEffectRight(...e){this._split.connect(e[0],1,0),_i(...e),Ei(e[e.length-1],this._merge,0,1)}static getDefaults(){return Object.assign(Si.getDefaults(),{wet:1})}dispose(){return super.dispose(),this._dryWet.dispose(),this._split.dispose(),this._merge.dispose(),this}}class Go extends jo{constructor(e){super(e),this.feedback=new Oi({context:this.context,value:e.feedback,units:"normalRange"}),this._feedbackL=new Ti({context:this.context}),this._feedbackR=new Ti({context:this.context}),this._feedbackSplit=new Vo({context:this.context,channels:2}),this._feedbackMerge=new Wo({context:this.context,channels:2}),this._merge.connect(this._feedbackSplit),this._feedbackMerge.connect(this._split),this._feedbackSplit.connect(this._feedbackL,0,0),this._feedbackL.connect(this._feedbackMerge,0,0),this._feedbackSplit.connect(this._feedbackR,1,0),this._feedbackR.connect(this._feedbackMerge,0,1),this.feedback.fan(this._feedbackL.gain,this._feedbackR.gain),Zr(this,["feedback"])}static getDefaults(){return Object.assign(jo.getDefaults(),{feedback:.5})}dispose(){return super.dispose(),this.feedback.dispose(),this._feedbackL.dispose(),this._feedbackR.dispose(),this._feedbackSplit.dispose(),this._feedbackMerge.dispose(),this}}class qo extends Go{constructor(){super(Or(qo.getDefaults(),arguments,["frequency","delayTime","depth"])),this.name="Chorus";const e=Or(qo.getDefaults(),arguments,["frequency","delayTime","depth"]);this._depth=e.depth,this._delayTime=e.delayTime/1e3,this._lfoL=new ka({context:this.context,frequency:e.frequency,min:0,max:1}),this._lfoR=new ka({context:this.context,frequency:e.frequency,min:0,max:1,phase:180}),this._delayNodeL=new Li({context:this.context}),this._delayNodeR=new Li({context:this.context}),this.frequency=this._lfoL.frequency,Zr(this,["frequency"]),this._lfoL.frequency.connect(this._lfoR.frequency),this.connectEffectLeft(this._delayNodeL),this.connectEffectRight(this._delayNodeR),this._lfoL.connect(this._delayNodeL.delayTime),this._lfoR.connect(this._delayNodeR.delayTime),this.depth=this._depth,this.type=e.type,this.spread=e.spread}static getDefaults(){return Object.assign(Go.getDefaults(),{frequency:1.5,delayTime:3.5,depth:.7,type:"sine",spread:180,feedback:0,wet:.5})}get depth(){return this._depth}set depth(e){this._depth=e;const t=this._delayTime*e;this._lfoL.min=Math.max(this._delayTime-t,0),this._lfoL.max=this._delayTime+t,this._lfoR.min=Math.max(this._delayTime-t,0),this._lfoR.max=this._delayTime+t}get delayTime(){return 1e3*this._delayTime}set delayTime(e){this._delayTime=e/1e3,this.depth=this._depth}get type(){return this._lfoL.type}set type(e){this._lfoL.type=e,this._lfoR.type=e}get spread(){return this._lfoR.phase-this._lfoL.phase}set spread(e){this._lfoL.phase=90-e/2,this._lfoR.phase=e/2+90}start(e){return this._lfoL.start(e),this._lfoR.start(e),this}stop(e){return this._lfoL.stop(e),this._lfoR.stop(e),this}sync(){return this._lfoL.sync(),this._lfoR.sync(),this}unsync(){return this._lfoL.unsync(),this._lfoR.unsync(),this}dispose(){return super.dispose(),this._lfoL.dispose(),this._lfoR.dispose(),this._delayNodeL.dispose(),this._delayNodeR.dispose(),this.frequency.dispose(),this}}class Ho extends No{constructor(){super(Or(Ho.getDefaults(),arguments,["distortion"])),this.name="Distortion";const e=Or(Ho.getDefaults(),arguments,["distortion"]);this._shaper=new ha({context:this.context,length:4096}),this._distortion=e.distortion,this.connectEffect(this._shaper),this.distortion=e.distortion,this.oversample=e.oversample}static getDefaults(){return Object.assign(No.getDefaults(),{distortion:.4,oversample:"none"})}get distortion(){return this._distortion}set distortion(e){this._distortion=e;const t=100*e,n=Math.PI/180;this._shaper.setMap((e=>Math.abs(e)<.001?0:(3+t)*e*20*n/(Math.PI+t*Math.abs(e))))}get oversample(){return this._shaper.oversample}set oversample(e){this._shaper.oversample=e}dispose(){return super.dispose(),this._shaper.dispose(),this}}class Ko extends No{constructor(e){super(e),this.name="FeedbackEffect",this._feedbackGain=new Ti({context:this.context,gain:e.feedback,units:"normalRange"}),this.feedback=this._feedbackGain.gain,Zr(this,"feedback"),this.effectReturn.chain(this._feedbackGain,this.effectSend)}static getDefaults(){return Object.assign(No.getDefaults(),{feedback:.125})}dispose(){return super.dispose(),this._feedbackGain.dispose(),this.feedback.dispose(),this}}class $o extends Ko{constructor(){super(Or($o.getDefaults(),arguments,["delayTime","feedback"])),this.name="FeedbackDelay";const e=Or($o.getDefaults(),arguments,["delayTime","feedback"]);this._delayNode=new Li({context:this.context,delayTime:e.delayTime,maxDelay:e.maxDelay}),this.delayTime=this._delayNode.delayTime,this.connectEffect(this._delayNode),Zr(this,"delayTime")}static getDefaults(){return Object.assign(Ko.getDefaults(),{delayTime:.25,maxDelay:1})}dispose(){return super.dispose(),this._delayNode.dispose(),this.delayTime.dispose(),this}}class Xo extends Si{constructor(e){super(e),this.name="PhaseShiftAllpass",this.input=new Ti({context:this.context}),this.output=new Ti({context:this.context}),this.offset90=new Ti({context:this.context});this._bank0=this._createAllPassFilterBank([.6923878,.9360654322959,.988229522686,.9987488452737]),this._bank1=this._createAllPassFilterBank([.4021921162426,.856171088242,.9722909545651,.9952884791278]),this._oneSampleDelay=this.context.createIIRFilter([0,1],[1,0]),_i(this.input,...this._bank0,this._oneSampleDelay,this.output),_i(this.input,...this._bank1,this.offset90)}_createAllPassFilterBank(e){return e.map((e=>{const t=[[e*e,0,-1],[1,0,-e*e]];return this.context.createIIRFilter(t[0],t[1])}))}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this.offset90.dispose(),this._bank0.forEach((e=>e.disconnect())),this._bank1.forEach((e=>e.disconnect())),this._oneSampleDelay.disconnect(),this}}class Zo extends No{constructor(){super(Or(Zo.getDefaults(),arguments,["frequency"])),this.name="FrequencyShifter";const e=Or(Zo.getDefaults(),arguments,["frequency"]);this.frequency=new Oi({context:this.context,units:"frequency",value:e.frequency,minValue:-this.context.sampleRate/2,maxValue:this.context.sampleRate/2}),this._sine=new la({context:this.context,type:"sine"}),this._cosine=new ua({context:this.context,phase:-90,type:"sine"}),this._sineMultiply=new pa({context:this.context}),this._cosineMultiply=new pa({context:this.context}),this._negate=new Oa({context:this.context}),this._add=new xa({context:this.context}),this._phaseShifter=new Xo({context:this.context}),this.effectSend.connect(this._phaseShifter),this.frequency.fan(this._sine.frequency,this._cosine.frequency),this._phaseShifter.offset90.connect(this._cosineMultiply),this._cosine.connect(this._cosineMultiply.factor),this._phaseShifter.connect(this._sineMultiply),this._sine.connect(this._sineMultiply.factor),this._sineMultiply.connect(this._negate),this._cosineMultiply.connect(this._add),this._negate.connect(this._add.addend),this._add.connect(this.effectReturn);const t=this.immediate();this._sine.start(t),this._cosine.start(t)}static getDefaults(){return Object.assign(No.getDefaults(),{frequency:0})}dispose(){return super.dispose(),this.frequency.dispose(),this._add.dispose(),this._cosine.dispose(),this._cosineMultiply.dispose(),this._negate.dispose(),this._phaseShifter.dispose(),this._sine.dispose(),this._sineMultiply.dispose(),this}}const Yo=[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100],Qo=[225,556,441,341];class Jo extends jo{constructor(){super(Or(Jo.getDefaults(),arguments,["roomSize","dampening"])),this.name="Freeverb",this._combFilters=[],this._allpassFiltersL=[],this._allpassFiltersR=[];const e=Or(Jo.getDefaults(),arguments,["roomSize","dampening"]);this.roomSize=new Oi({context:this.context,value:e.roomSize,units:"normalRange"}),this._allpassFiltersL=Qo.map((e=>{const t=this.context.createBiquadFilter();return t.type="allpass",t.frequency.value=e,t})),this._allpassFiltersR=Qo.map((e=>{const t=this.context.createBiquadFilter();return t.type="allpass",t.frequency.value=e,t})),this._combFilters=Yo.map(((t,n)=>{const s=new co({context:this.context,dampening:e.dampening,delayTime:t});return nt.dampening=e))}dispose(){return super.dispose(),this._allpassFiltersL.forEach((e=>e.disconnect())),this._allpassFiltersR.forEach((e=>e.disconnect())),this._combFilters.forEach((e=>e.dispose())),this.roomSize.dispose(),this}}const el=[.06748,.06404,.08212,.09004],tl=[.773,.802,.753,.733],nl=[347,113,37];class sl extends jo{constructor(){super(Or(sl.getDefaults(),arguments,["roomSize"])),this.name="JCReverb",this._allpassFilters=[],this._feedbackCombFilters=[];const e=Or(sl.getDefaults(),arguments,["roomSize"]);this.roomSize=new Oi({context:this.context,value:e.roomSize,units:"normalRange"}),this._scaleRoomSize=new Aa({context:this.context,min:-.733,max:.197}),this._allpassFilters=nl.map((e=>{const t=this.context.createBiquadFilter();return t.type="allpass",t.frequency.value=e,t})),this._feedbackCombFilters=el.map(((e,t)=>{const n=new lo({context:this.context,delayTime:e});return this._scaleRoomSize.connect(n.resonance),n.resonance.value=tl[t],te.disconnect())),this._feedbackCombFilters.forEach((e=>e.dispose())),this.roomSize.dispose(),this._scaleRoomSize.dispose(),this}}class rl extends Go{constructor(e){super(e),this._feedbackL.disconnect(),this._feedbackL.connect(this._feedbackMerge,0,1),this._feedbackR.disconnect(),this._feedbackR.connect(this._feedbackMerge,0,0),Zr(this,["feedback"])}}class il extends rl{constructor(){super(Or(il.getDefaults(),arguments,["delayTime","feedback"])),this.name="PingPongDelay";const e=Or(il.getDefaults(),arguments,["delayTime","feedback"]);this._leftDelay=new Li({context:this.context,maxDelay:e.maxDelay}),this._rightDelay=new Li({context:this.context,maxDelay:e.maxDelay}),this._rightPreDelay=new Li({context:this.context,maxDelay:e.maxDelay}),this.delayTime=new Oi({context:this.context,units:"time",value:e.delayTime}),this.connectEffectLeft(this._leftDelay),this.connectEffectRight(this._rightPreDelay,this._rightDelay),this.delayTime.fan(this._leftDelay.delayTime,this._rightDelay.delayTime,this._rightPreDelay.delayTime),this._feedbackL.disconnect(),this._feedbackL.connect(this._rightDelay),Zr(this,["delayTime"])}static getDefaults(){return Object.assign(rl.getDefaults(),{delayTime:.25,maxDelay:1})}dispose(){return super.dispose(),this._leftDelay.dispose(),this._rightDelay.dispose(),this._rightPreDelay.dispose(),this.delayTime.dispose(),this}}class al extends Ko{constructor(){super(Or(al.getDefaults(),arguments,["pitch"])),this.name="PitchShift";const e=Or(al.getDefaults(),arguments,["pitch"]);this._frequency=new Oi({context:this.context}),this._delayA=new Li({maxDelay:1,context:this.context}),this._lfoA=new ka({context:this.context,min:0,max:.1,type:"sawtooth"}).connect(this._delayA.delayTime),this._delayB=new Li({maxDelay:1,context:this.context}),this._lfoB=new ka({context:this.context,min:0,max:.1,type:"sawtooth",phase:180}).connect(this._delayB.delayTime),this._crossFade=new To({context:this.context}),this._crossFadeLFO=new ka({context:this.context,min:0,max:1,type:"triangle",phase:90}).connect(this._crossFade.fade),this._feedbackDelay=new Li({delayTime:e.delayTime,context:this.context}),this.delayTime=this._feedbackDelay.delayTime,Zr(this,"delayTime"),this._pitch=e.pitch,this._windowSize=e.windowSize,this._delayA.connect(this._crossFade.a),this._delayB.connect(this._crossFade.b),this._frequency.fan(this._lfoA.frequency,this._lfoB.frequency,this._crossFadeLFO.frequency),this.effectSend.fan(this._delayA,this._delayB),this._crossFade.chain(this._feedbackDelay,this.effectReturn);const t=this.now();this._lfoA.start(t),this._lfoB.start(t),this._crossFadeLFO.start(t),this.windowSize=this._windowSize}static getDefaults(){return Object.assign(Ko.getDefaults(),{pitch:0,windowSize:.1,delayTime:0,feedback:0})}get pitch(){return this._pitch}set pitch(e){this._pitch=e;let t=0;e<0?(this._lfoA.min=0,this._lfoA.max=this._windowSize,this._lfoB.min=0,this._lfoB.max=this._windowSize,t=li(e-1)+1):(this._lfoA.min=this._windowSize,this._lfoA.max=0,this._lfoB.min=this._windowSize,this._lfoB.max=0,t=li(e)-1),this._frequency.value=t*(1.2/this._windowSize)}get windowSize(){return this._windowSize}set windowSize(e){this._windowSize=this.toSeconds(e),this.pitch=this._pitch}dispose(){return super.dispose(),this._frequency.dispose(),this._delayA.dispose(),this._delayB.dispose(),this._lfoA.dispose(),this._lfoB.dispose(),this._crossFade.dispose(),this._crossFadeLFO.dispose(),this._feedbackDelay.dispose(),this}}class ol extends jo{constructor(){super(Or(ol.getDefaults(),arguments,["frequency","octaves","baseFrequency"])),this.name="Phaser";const e=Or(ol.getDefaults(),arguments,["frequency","octaves","baseFrequency"]);this._lfoL=new ka({context:this.context,frequency:e.frequency,min:0,max:1}),this._lfoR=new ka({context:this.context,frequency:e.frequency,min:0,max:1,phase:180}),this._baseFrequency=this.toFrequency(e.baseFrequency),this._octaves=e.octaves,this.Q=new Oi({context:this.context,value:e.Q,units:"positive"}),this._filtersL=this._makeFilters(e.stages,this._lfoL),this._filtersR=this._makeFilters(e.stages,this._lfoR),this.frequency=this._lfoL.frequency,this.frequency.value=e.frequency,this.connectEffectLeft(...this._filtersL),this.connectEffectRight(...this._filtersR),this._lfoL.frequency.connect(this._lfoR.frequency),this.baseFrequency=e.baseFrequency,this.octaves=e.octaves,this._lfoL.start(),this._lfoR.start(),Zr(this,["frequency","Q"])}static getDefaults(){return Object.assign(jo.getDefaults(),{frequency:.5,octaves:3,stages:10,Q:10,baseFrequency:350})}_makeFilters(e,t){const n=[];for(let s=0;se.disconnect())),this._filtersR.forEach((e=>e.disconnect())),this.frequency.dispose(),this}}class ll extends No{constructor(){super(Or(ll.getDefaults(),arguments,["decay"])),this.name="Reverb",this._convolver=this.context.createConvolver(),this.ready=Promise.resolve();const e=Or(ll.getDefaults(),arguments,["decay"]);this._decay=e.decay,this._preDelay=e.preDelay,this.generate(),this.connectEffect(this._convolver)}static getDefaults(){return Object.assign(No.getDefaults(),{decay:1.5,preDelay:.01})}get decay(){return this._decay}set decay(e){ir(e=this.toSeconds(e),.001),this._decay=e,this.generate()}get preDelay(){return this._preDelay}set preDelay(e){ir(e=this.toSeconds(e),0),this._preDelay=e,this.generate()}generate(){return Cr(this,void 0,void 0,(function*(){const e=this.ready,t=new ei(2,this._decay+this._preDelay,this.context.sampleRate),n=new na({context:t}),s=new na({context:t}),r=new Wo({context:t});n.connect(r,0,0),s.connect(r,0,1);const i=new Ti({context:t}).toDestination();r.connect(i),n.start(0),s.start(0),i.gain.setValueAtTime(0,0),i.gain.setValueAtTime(1,this._preDelay),i.gain.exponentialApproachValueAtTime(0,this._preDelay,this.decay);const a=t.render();return this.ready=a.then(Qr),yield e,this._convolver.buffer=(yield a).get(),this}))}dispose(){return super.dispose(),this._convolver.disconnect(),this}}class ul extends Si{constructor(){super(Or(ul.getDefaults(),arguments)),this.name="MidSideSplit",this._split=this.input=new Vo({channels:2,context:this.context}),this._midAdd=new xa({context:this.context}),this.mid=new pa({context:this.context,value:Math.SQRT1_2}),this._sideSubtract=new Da({context:this.context}),this.side=new pa({context:this.context,value:Math.SQRT1_2}),this._split.connect(this._midAdd,0),this._split.connect(this._midAdd.addend,1),this._split.connect(this._sideSubtract,0),this._split.connect(this._sideSubtract.subtrahend,1),this._midAdd.connect(this.mid),this._sideSubtract.connect(this.side)}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._midAdd.dispose(),this._sideSubtract.dispose(),this._split.dispose(),this}}class cl extends Si{constructor(){super(Or(cl.getDefaults(),arguments)),this.name="MidSideMerge",this.mid=new Ti({context:this.context}),this.side=new Ti({context:this.context}),this._left=new xa({context:this.context}),this._leftMult=new pa({context:this.context,value:Math.SQRT1_2}),this._right=new Da({context:this.context}),this._rightMult=new pa({context:this.context,value:Math.SQRT1_2}),this._merge=this.output=new Wo({context:this.context}),this.mid.fan(this._left),this.side.connect(this._left.addend),this.mid.connect(this._right),this.side.connect(this._right.subtrahend),this._left.connect(this._leftMult),this._right.connect(this._rightMult),this._leftMult.connect(this._merge,0,0),this._rightMult.connect(this._merge,0,1)}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._leftMult.dispose(),this._rightMult.dispose(),this._left.dispose(),this._right.dispose(),this}}class hl extends No{constructor(e){super(e),this.name="MidSideEffect",this._midSideMerge=new cl({context:this.context}),this._midSideSplit=new ul({context:this.context}),this._midSend=this._midSideSplit.mid,this._sideSend=this._midSideSplit.side,this._midReturn=this._midSideMerge.mid,this._sideReturn=this._midSideMerge.side,this.effectSend.connect(this._midSideSplit),this._midSideMerge.connect(this.effectReturn)}connectEffectMid(...e){this._midSend.chain(...e,this._midReturn)}connectEffectSide(...e){this._sideSend.chain(...e,this._sideReturn)}dispose(){return super.dispose(),this._midSideSplit.dispose(),this._midSideMerge.dispose(),this._midSend.dispose(),this._sideSend.dispose(),this._midReturn.dispose(),this._sideReturn.dispose(),this}}class dl extends hl{constructor(){super(Or(dl.getDefaults(),arguments,["width"])),this.name="StereoWidener";const e=Or(dl.getDefaults(),arguments,["width"]);this.width=new Oi({context:this.context,value:e.width,units:"normalRange"}),Zr(this,["width"]),this._twoTimesWidthMid=new pa({context:this.context,value:2}),this._twoTimesWidthSide=new pa({context:this.context,value:2}),this._midMult=new pa({context:this.context}),this._twoTimesWidthMid.connect(this._midMult.factor),this.connectEffectMid(this._midMult),this._oneMinusWidth=new Da({context:this.context}),this._oneMinusWidth.connect(this._twoTimesWidthMid),Ei(this.context.getConstant(1),this._oneMinusWidth),this.width.connect(this._oneMinusWidth.subtrahend),this._sideMult=new pa({context:this.context}),this.width.connect(this._twoTimesWidthSide),this._twoTimesWidthSide.connect(this._sideMult.factor),this.connectEffectSide(this._sideMult)}static getDefaults(){return Object.assign(hl.getDefaults(),{width:.5})}dispose(){return super.dispose(),this.width.dispose(),this._midMult.dispose(),this._sideMult.dispose(),this._twoTimesWidthMid.dispose(),this._twoTimesWidthSide.dispose(),this._oneMinusWidth.dispose(),this}}class pl extends jo{constructor(){super(Or(pl.getDefaults(),arguments,["frequency","depth"])),this.name="Tremolo";const e=Or(pl.getDefaults(),arguments,["frequency","depth"]);this._lfoL=new ka({context:this.context,type:e.type,min:1,max:0}),this._lfoR=new ka({context:this.context,type:e.type,min:1,max:0}),this._amplitudeL=new Ti({context:this.context}),this._amplitudeR=new Ti({context:this.context}),this.frequency=new Oi({context:this.context,value:e.frequency,units:"frequency"}),this.depth=new Oi({context:this.context,value:e.depth,units:"normalRange"}),Zr(this,["frequency","depth"]),this.connectEffectLeft(this._amplitudeL),this.connectEffectRight(this._amplitudeR),this._lfoL.connect(this._amplitudeL.gain),this._lfoR.connect(this._amplitudeR.gain),this.frequency.fan(this._lfoL.frequency,this._lfoR.frequency),this.depth.fan(this._lfoR.amplitude,this._lfoL.amplitude),this.spread=e.spread}static getDefaults(){return Object.assign(jo.getDefaults(),{frequency:10,type:"sine",depth:.5,spread:180})}start(e){return this._lfoL.start(e),this._lfoR.start(e),this}stop(e){return this._lfoL.stop(e),this._lfoR.stop(e),this}sync(){return this._lfoL.sync(),this._lfoR.sync(),this.context.transport.syncSignal(this.frequency),this}unsync(){return this._lfoL.unsync(),this._lfoR.unsync(),this.context.transport.unsyncSignal(this.frequency),this}get type(){return this._lfoL.type}set type(e){this._lfoL.type=e,this._lfoR.type=e}get spread(){return this._lfoR.phase-this._lfoL.phase}set spread(e){this._lfoL.phase=90-e/2,this._lfoR.phase=e/2+90}dispose(){return super.dispose(),this._lfoL.dispose(),this._lfoR.dispose(),this._amplitudeL.dispose(),this._amplitudeR.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class fl extends No{constructor(){super(Or(fl.getDefaults(),arguments,["frequency","depth"])),this.name="Vibrato";const e=Or(fl.getDefaults(),arguments,["frequency","depth"]);this._delayNode=new Li({context:this.context,delayTime:0,maxDelay:e.maxDelay}),this._lfo=new ka({context:this.context,type:e.type,min:0,max:e.maxDelay,frequency:e.frequency,phase:-90}).start().connect(this._delayNode.delayTime),this.frequency=this._lfo.frequency,this.depth=this._lfo.amplitude,this.depth.value=e.depth,Zr(this,["frequency","depth"]),this.effectSend.chain(this._delayNode,this.effectReturn)}static getDefaults(){return Object.assign(No.getDefaults(),{maxDelay:.005,frequency:5,depth:.1,type:"sine"})}get type(){return this._lfo.type}set type(e){this._lfo.type=e}dispose(){return super.dispose(),this._delayNode.dispose(),this._lfo.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class ml extends Si{constructor(){super(Or(ml.getDefaults(),arguments,["type","size"])),this.name="Analyser",this._analysers=[],this._buffers=[];const e=Or(ml.getDefaults(),arguments,["type","size"]);this.input=this.output=this._gain=new Ti({context:this.context}),this._split=new Vo({context:this.context,channels:e.channels}),this.input.connect(this._split),ir(e.channels,1);for(let t=0;t{const n=this._buffers[t];"fft"===this._type?e.getFloatFrequencyData(n):"waveform"===this._type&&e.getFloatTimeDomainData(n)})),1===this.channels?this._buffers[0]:this._buffers}get size(){return this._analysers[0].frequencyBinCount}set size(e){this._analysers.forEach(((t,n)=>{t.fftSize=2*e,this._buffers[n]=new Float32Array(e)}))}get channels(){return this._analysers.length}get type(){return this._type}set type(e){rr("waveform"===e||"fft"===e,`Analyser: invalid type: ${e}`),this._type=e}get smoothing(){return this._analysers[0].smoothingTimeConstant}set smoothing(e){this._analysers.forEach((t=>t.smoothingTimeConstant=e))}dispose(){return super.dispose(),this._analysers.forEach((e=>e.disconnect())),this._split.dispose(),this._gain.dispose(),this}}class gl extends Si{constructor(){super(Or(gl.getDefaults(),arguments)),this.name="MeterBase",this.input=this.output=this._analyser=new ml({context:this.context,size:256,type:"waveform"})}dispose(){return super.dispose(),this._analyser.dispose(),this}}class yl extends gl{constructor(){super(Or(yl.getDefaults(),arguments,["smoothing"])),this.name="Meter",this._rms=0;const e=Or(yl.getDefaults(),arguments,["smoothing"]);this.input=this.output=this._analyser=new ml({context:this.context,size:256,type:"waveform",channels:e.channels}),this.smoothing=e.smoothing,this.normalRange=e.normalRange}static getDefaults(){return Object.assign(gl.getDefaults(),{smoothing:.8,normalRange:!1,channels:1})}getLevel(){return cr("'getLevel' has been changed to 'getValue'"),this.getValue()}getValue(){const e=this._analyser.getValue(),t=(1===this.channels?[e]:e).map((e=>{const t=e.reduce(((e,t)=>e+t*t),0),n=Math.sqrt(t/e.length);return this._rms=Math.max(n,this._rms*this.smoothing),this.normalRange?this._rms:oi(this._rms)}));return 1===this.channels?t[0]:t}get channels(){return this._analyser.channels}dispose(){return super.dispose(),this._analyser.dispose(),this}}class bl extends gl{constructor(){super(Or(bl.getDefaults(),arguments,["size"])),this.name="FFT";const e=Or(bl.getDefaults(),arguments,["size"]);this.normalRange=e.normalRange,this._analyser.type="fft",this.size=e.size}static getDefaults(){return Object.assign(Si.getDefaults(),{normalRange:!1,size:1024,smoothing:.8})}getValue(){return this._analyser.getValue().map((e=>this.normalRange?ai(e):e))}get size(){return this._analyser.size}set size(e){this._analyser.size=e}get smoothing(){return this._analyser.smoothing}set smoothing(e){this._analyser.smoothing=e}getFrequencyOfIndex(e){return rr(0<=e&&ee._updateSolo()))}get muted(){return 0===this.input.gain.value}_addSolo(){xl._soloed.has(this.context)||xl._soloed.set(this.context,new Set),xl._soloed.get(this.context).add(this)}_removeSolo(){xl._soloed.has(this.context)&&xl._soloed.get(this.context).delete(this)}_isSoloed(){return xl._soloed.has(this.context)&&xl._soloed.get(this.context).has(this)}_noSolos(){return!xl._soloed.has(this.context)||xl._soloed.has(this.context)&&0===xl._soloed.get(this.context).size}_updateSolo(){this._isSoloed()||this._noSolos()?this.input.gain.value=1:this.input.gain.value=0}dispose(){return super.dispose(),xl._allSolos.get(this.context).delete(this),this._removeSolo(),this}}xl._allSolos=new Map,xl._soloed=new Map;class Al extends Si{constructor(){super(Or(Al.getDefaults(),arguments,["pan","volume"])),this.name="PanVol";const e=Or(Al.getDefaults(),arguments,["pan","volume"]);this._panner=this.input=new Do({context:this.context,pan:e.pan,channelCount:e.channelCount}),this.pan=this._panner.pan,this._volume=this.output=new $i({context:this.context,volume:e.volume}),this.volume=this._volume.volume,this._panner.connect(this._volume),this.mute=e.mute,Zr(this,["pan","volume"])}static getDefaults(){return Object.assign(Si.getDefaults(),{mute:!1,pan:0,volume:0,channelCount:1})}get mute(){return this._volume.mute}set mute(e){this._volume.mute=e}dispose(){return super.dispose(),this._panner.dispose(),this.pan.dispose(),this._volume.dispose(),this.volume.dispose(),this}}class Cl extends Si{constructor(){super(Or(Cl.getDefaults(),arguments,["volume","pan"])),this.name="Channel";const e=Or(Cl.getDefaults(),arguments,["volume","pan"]);this._solo=this.input=new xl({solo:e.solo,context:this.context}),this._panVol=this.output=new Al({context:this.context,pan:e.pan,volume:e.volume,mute:e.mute,channelCount:e.channelCount}),this.pan=this._panVol.pan,this.volume=this._panVol.volume,this._solo.connect(this._panVol),Zr(this,["pan","volume"])}static getDefaults(){return Object.assign(Si.getDefaults(),{pan:0,volume:0,mute:!1,solo:!1,channelCount:1})}get solo(){return this._solo.solo}set solo(e){this._solo.solo=e}get muted(){return this._solo.muted||this.mute}get mute(){return this._panVol.mute}set mute(e){this._panVol.mute=e}_getBus(e){return Cl.buses.has(e)||Cl.buses.set(e,new Ti({context:this.context})),Cl.buses.get(e)}send(e,t=0){const n=this._getBus(e),s=new Ti({context:this.context,units:"decibels",gain:t});return this.connect(s),s.connect(n),s}receive(e){return this._getBus(e).connect(this),this}dispose(){return super.dispose(),this._panVol.dispose(),this.pan.dispose(),this.volume.dispose(),this._solo.dispose(),this}}Cl.buses=new Map;class kl extends Si{constructor(){super(Or(kl.getDefaults(),arguments)),this.name="Mono",this.input=new Ti({context:this.context}),this._merge=this.output=new Wo({channels:2,context:this.context}),this.input.connect(this._merge,0,0),this.input.connect(this._merge,0,1)}dispose(){return super.dispose(),this._merge.dispose(),this.input.dispose(),this}}class Sl extends Si{constructor(){super(Or(Sl.getDefaults(),arguments,["lowFrequency","highFrequency"])),this.name="MultibandSplit",this.input=new Ti({context:this.context}),this.output=void 0,this.low=new $a({context:this.context,frequency:0,type:"lowpass"}),this._lowMidFilter=new $a({context:this.context,frequency:0,type:"highpass"}),this.mid=new $a({context:this.context,frequency:0,type:"lowpass"}),this.high=new $a({context:this.context,frequency:0,type:"highpass"}),this._internalChannels=[this.low,this.mid,this.high];const e=Or(Sl.getDefaults(),arguments,["lowFrequency","highFrequency"]);this.lowFrequency=new Oi({context:this.context,units:"frequency",value:e.lowFrequency}),this.highFrequency=new Oi({context:this.context,units:"frequency",value:e.highFrequency}),this.Q=new Oi({context:this.context,units:"positive",value:e.Q}),this.input.fan(this.low,this.high),this.input.chain(this._lowMidFilter,this.mid),this.lowFrequency.fan(this.low.frequency,this._lowMidFilter.frequency),this.highFrequency.fan(this.mid.frequency,this.high.frequency),this.Q.connect(this.low.Q),this.Q.connect(this._lowMidFilter.Q),this.Q.connect(this.mid.Q),this.Q.connect(this.high.Q),Zr(this,["high","mid","low","highFrequency","lowFrequency"])}static getDefaults(){return Object.assign(Si.getDefaults(),{Q:1,highFrequency:2500,lowFrequency:400})}dispose(){return super.dispose(),Yr(this,["high","mid","low","highFrequency","lowFrequency"]),this.low.dispose(),this._lowMidFilter.dispose(),this.mid.dispose(),this.high.dispose(),this.lowFrequency.dispose(),this.highFrequency.dispose(),this.Q.dispose(),this}}class _l extends Si{constructor(){super(...arguments),this.name="Listener",this.positionX=new ki({context:this.context,param:this.context.rawContext.listener.positionX}),this.positionY=new ki({context:this.context,param:this.context.rawContext.listener.positionY}),this.positionZ=new ki({context:this.context,param:this.context.rawContext.listener.positionZ}),this.forwardX=new ki({context:this.context,param:this.context.rawContext.listener.forwardX}),this.forwardY=new ki({context:this.context,param:this.context.rawContext.listener.forwardY}),this.forwardZ=new ki({context:this.context,param:this.context.rawContext.listener.forwardZ}),this.upX=new ki({context:this.context,param:this.context.rawContext.listener.upX}),this.upY=new ki({context:this.context,param:this.context.rawContext.listener.upY}),this.upZ=new ki({context:this.context,param:this.context.rawContext.listener.upZ})}static getDefaults(){return Object.assign(Si.getDefaults(),{positionX:0,positionY:0,positionZ:0,forwardX:0,forwardY:0,forwardZ:-1,upX:0,upY:1,upZ:0})}dispose(){return super.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this.forwardX.dispose(),this.forwardY.dispose(),this.forwardZ.dispose(),this.upX.dispose(),this.upY.dispose(),this.upZ.dispose(),this}}Gr((e=>{e.listener=new _l({context:e})})),Hr((e=>{e.listener.dispose()}));class El extends Si{constructor(){super(Or(El.getDefaults(),arguments,["positionX","positionY","positionZ"])),this.name="Panner3D";const e=Or(El.getDefaults(),arguments,["positionX","positionY","positionZ"]);this._panner=this.input=this.output=this.context.createPanner(),this.panningModel=e.panningModel,this.maxDistance=e.maxDistance,this.distanceModel=e.distanceModel,this.coneOuterGain=e.coneOuterGain,this.coneOuterAngle=e.coneOuterAngle,this.coneInnerAngle=e.coneInnerAngle,this.refDistance=e.refDistance,this.rolloffFactor=e.rolloffFactor,this.positionX=new ki({context:this.context,param:this._panner.positionX,value:e.positionX}),this.positionY=new ki({context:this.context,param:this._panner.positionY,value:e.positionY}),this.positionZ=new ki({context:this.context,param:this._panner.positionZ,value:e.positionZ}),this.orientationX=new ki({context:this.context,param:this._panner.orientationX,value:e.orientationX}),this.orientationY=new ki({context:this.context,param:this._panner.orientationY,value:e.orientationY}),this.orientationZ=new ki({context:this.context,param:this._panner.orientationZ,value:e.orientationZ})}static getDefaults(){return Object.assign(Si.getDefaults(),{coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:0,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1})}setPosition(e,t,n){return this.positionX.value=e,this.positionY.value=t,this.positionZ.value=n,this}setOrientation(e,t,n){return this.orientationX.value=e,this.orientationY.value=t,this.orientationZ.value=n,this}get panningModel(){return this._panner.panningModel}set panningModel(e){this._panner.panningModel=e}get refDistance(){return this._panner.refDistance}set refDistance(e){this._panner.refDistance=e}get rolloffFactor(){return this._panner.rolloffFactor}set rolloffFactor(e){this._panner.rolloffFactor=e}get distanceModel(){return this._panner.distanceModel}set distanceModel(e){this._panner.distanceModel=e}get coneInnerAngle(){return this._panner.coneInnerAngle}set coneInnerAngle(e){this._panner.coneInnerAngle=e}get coneOuterAngle(){return this._panner.coneOuterAngle}set coneOuterAngle(e){this._panner.coneOuterAngle=e}get coneOuterGain(){return this._panner.coneOuterGain}set coneOuterGain(e){this._panner.coneOuterGain=e}get maxDistance(){return this._panner.maxDistance}set maxDistance(e){this._panner.maxDistance=e}dispose(){return super.dispose(),this._panner.disconnect(),this.orientationX.dispose(),this.orientationY.dispose(),this.orientationZ.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this}}class Il extends Si{constructor(){super(Or(Il.getDefaults(),arguments)),this.name="Recorder";const e=Or(Il.getDefaults(),arguments);this.input=new Ti({context:this.context}),rr(Il.supported,"Media Recorder API is not available"),this._stream=this.context.createMediaStreamDestination(),this.input.connect(this._stream),this._recorder=new MediaRecorder(this._stream.stream,{mimeType:e.mimeType})}static getDefaults(){return Si.getDefaults()}get mimeType(){return this._recorder.mimeType}static get supported(){return null!==vr&&Reflect.has(vr,"MediaRecorder")}get state(){return"inactive"===this._recorder.state?"stopped":"paused"===this._recorder.state?"paused":"started"}start(){return Cr(this,void 0,void 0,(function*(){rr("started"!==this.state,"Recorder is already started");const e=new Promise((e=>{const t=()=>{this._recorder.removeEventListener("start",t,!1),e()};this._recorder.addEventListener("start",t,!1)}));return this._recorder.start(),yield e}))}stop(){return Cr(this,void 0,void 0,(function*(){rr("stopped"!==this.state,"Recorder is not started");const e=new Promise((e=>{const t=n=>{this._recorder.removeEventListener("dataavailable",t,!1),e(n.data)};this._recorder.addEventListener("dataavailable",t,!1)}));return this._recorder.stop(),yield e}))}pause(){return rr("started"===this.state,"Recorder must be started"),this._recorder.pause(),this}dispose(){return super.dispose(),this.input.dispose(),this._stream.disconnect(),this}}class Tl extends Si{constructor(){super(Or(Tl.getDefaults(),arguments,["threshold","ratio"])),this.name="Compressor",this._compressor=this.context.createDynamicsCompressor(),this.input=this._compressor,this.output=this._compressor;const e=Or(Tl.getDefaults(),arguments,["threshold","ratio"]);this.threshold=new ki({minValue:this._compressor.threshold.minValue,maxValue:this._compressor.threshold.maxValue,context:this.context,convert:!1,param:this._compressor.threshold,units:"decibels",value:e.threshold}),this.attack=new ki({minValue:this._compressor.attack.minValue,maxValue:this._compressor.attack.maxValue,context:this.context,param:this._compressor.attack,units:"time",value:e.attack}),this.release=new ki({minValue:this._compressor.release.minValue,maxValue:this._compressor.release.maxValue,context:this.context,param:this._compressor.release,units:"time",value:e.release}),this.knee=new ki({minValue:this._compressor.knee.minValue,maxValue:this._compressor.knee.maxValue,context:this.context,convert:!1,param:this._compressor.knee,units:"decibels",value:e.knee}),this.ratio=new ki({minValue:this._compressor.ratio.minValue,maxValue:this._compressor.ratio.maxValue,context:this.context,convert:!1,param:this._compressor.ratio,units:"positive",value:e.ratio}),Zr(this,["knee","release","attack","ratio","threshold"])}static getDefaults(){return Object.assign(Si.getDefaults(),{attack:.003,knee:30,ratio:12,release:.25,threshold:-24})}get reduction(){return this._compressor.reduction}dispose(){return super.dispose(),this._compressor.disconnect(),this.attack.dispose(),this.release.dispose(),this.threshold.dispose(),this.ratio.dispose(),this.knee.dispose(),this}}class Nl extends Si{constructor(){super(Object.assign(Or(Nl.getDefaults(),arguments,["threshold","smoothing"]))),this.name="Gate";const e=Or(Nl.getDefaults(),arguments,["threshold","smoothing"]);this._follower=new zo({context:this.context,smoothing:e.smoothing}),this._gt=new za({context:this.context,value:ai(e.threshold)}),this.input=new Ti({context:this.context}),this._gate=this.output=new Ti({context:this.context}),this.input.connect(this._gate),this.input.chain(this._follower,this._gt,this._gate.gain)}static getDefaults(){return Object.assign(Si.getDefaults(),{smoothing:.1,threshold:-40})}get threshold(){return oi(this._gt.value)}set threshold(e){this._gt.value=ai(e)}get smoothing(){return this._follower.smoothing}set smoothing(e){this._follower.smoothing=e}dispose(){return super.dispose(),this.input.dispose(),this._follower.dispose(),this._gt.dispose(),this._gate.dispose(),this}}class Rl extends Si{constructor(){super(Object.assign(Or(Rl.getDefaults(),arguments,["threshold"]))),this.name="Limiter";const e=Or(Rl.getDefaults(),arguments,["threshold"]);this._compressor=this.input=this.output=new Tl({context:this.context,ratio:20,attack:.003,release:.01,threshold:e.threshold}),this.threshold=this._compressor.threshold,Zr(this,"threshold")}static getDefaults(){return Object.assign(Si.getDefaults(),{threshold:-12})}get reduction(){return this._compressor.reduction}dispose(){return super.dispose(),this._compressor.dispose(),this.threshold.dispose(),this}}class Ol extends Si{constructor(){super(Object.assign(Or(Ol.getDefaults(),arguments))),this.name="MidSideCompressor";const e=Or(Ol.getDefaults(),arguments);this._midSideSplit=this.input=new ul({context:this.context}),this._midSideMerge=this.output=new cl({context:this.context}),this.mid=new Tl(Object.assign(e.mid,{context:this.context})),this.side=new Tl(Object.assign(e.side,{context:this.context})),this._midSideSplit.mid.chain(this.mid,this._midSideMerge.mid),this._midSideSplit.side.chain(this.side,this._midSideMerge.side),Zr(this,["mid","side"])}static getDefaults(){return Object.assign(Si.getDefaults(),{mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},side:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10}})}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._midSideSplit.dispose(),this._midSideMerge.dispose(),this}}class Dl extends Si{constructor(){super(Object.assign(Or(Dl.getDefaults(),arguments))),this.name="MultibandCompressor";const e=Or(Dl.getDefaults(),arguments);this._splitter=this.input=new Sl({context:this.context,lowFrequency:e.lowFrequency,highFrequency:e.highFrequency}),this.lowFrequency=this._splitter.lowFrequency,this.highFrequency=this._splitter.highFrequency,this.output=new Ti({context:this.context}),this.low=new Tl(Object.assign(e.low,{context:this.context})),this.mid=new Tl(Object.assign(e.mid,{context:this.context})),this.high=new Tl(Object.assign(e.high,{context:this.context})),this._splitter.low.chain(this.low,this.output),this._splitter.mid.chain(this.mid,this.output),this._splitter.high.chain(this.high,this.output),Zr(this,["high","mid","low","highFrequency","lowFrequency"])}static getDefaults(){return Object.assign(Si.getDefaults(),{lowFrequency:250,highFrequency:2e3,low:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10},mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},high:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16}})}dispose(){return super.dispose(),this._splitter.dispose(),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this.output.dispose(),this}}class Ml extends Si{constructor(){super(Or(Ml.getDefaults(),arguments,["low","mid","high"])),this.name="EQ3",this.output=new Ti({context:this.context}),this._internalChannels=[];const e=Or(Ml.getDefaults(),arguments,["low","mid","high"]);this.input=this._multibandSplit=new Sl({context:this.context,highFrequency:e.highFrequency,lowFrequency:e.lowFrequency}),this._lowGain=new Ti({context:this.context,gain:e.low,units:"decibels"}),this._midGain=new Ti({context:this.context,gain:e.mid,units:"decibels"}),this._highGain=new Ti({context:this.context,gain:e.high,units:"decibels"}),this.low=this._lowGain.gain,this.mid=this._midGain.gain,this.high=this._highGain.gain,this.Q=this._multibandSplit.Q,this.lowFrequency=this._multibandSplit.lowFrequency,this.highFrequency=this._multibandSplit.highFrequency,this._multibandSplit.low.chain(this._lowGain,this.output),this._multibandSplit.mid.chain(this._midGain,this.output),this._multibandSplit.high.chain(this._highGain,this.output),Zr(this,["low","mid","high","lowFrequency","highFrequency"]),this._internalChannels=[this._multibandSplit]}static getDefaults(){return Object.assign(Si.getDefaults(),{high:0,highFrequency:2500,low:0,lowFrequency:400,mid:0})}dispose(){return super.dispose(),Yr(this,["low","mid","high","lowFrequency","highFrequency"]),this._multibandSplit.dispose(),this.lowFrequency.dispose(),this.highFrequency.dispose(),this._lowGain.dispose(),this._midGain.dispose(),this._highGain.dispose(),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this.Q.dispose(),this}}class zl extends Si{constructor(){super(Or(zl.getDefaults(),arguments,["url","onload"])),this.name="Convolver",this._convolver=this.context.createConvolver();const e=Or(zl.getDefaults(),arguments,["url","onload"]);this._buffer=new Jr(e.url,(t=>{this.buffer=t,e.onload()})),this.input=new Ti({context:this.context}),this.output=new Ti({context:this.context}),this._buffer.loaded&&(this.buffer=this._buffer),this.normalize=e.normalize,this.input.chain(this._convolver,this.output)}static getDefaults(){return Object.assign(Si.getDefaults(),{normalize:!0,onload:Qr})}load(e){return Cr(this,void 0,void 0,(function*(){this.buffer=yield this._buffer.load(e)}))}get buffer(){return this._buffer.length?this._buffer:null}set buffer(e){e&&this._buffer.set(e),this._convolver.buffer&&(this.input.disconnect(),this._convolver.disconnect(),this._convolver=this.context.createConvolver(),this.input.chain(this._convolver,this.output));const t=this._buffer.get();this._convolver.buffer=t||null}get normalize(){return this._convolver.normalize}set normalize(e){this._convolver.normalize=e}dispose(){return super.dispose(),this._buffer.dispose(),this._convolver.disconnect(),this}}function Fl(){return si().now()}function Bl(){return si().immediate()}const Ll=si().transport;function Pl(){return si().transport}const Ul=si().destination,Vl=si().destination;function Wl(){return si().destination}const jl=si().listener;function Gl(){return si().listener}const ql=si().draw;function Hl(){return si().draw}const Kl=si();function $l(){return Jr.loaded()}const Xl=Jr,Zl=Ui,Yl=ta},8990:function(e,t,n){(function(){"use strict";var e;function t(e){var t=0;return function(){return t>>0)+"_",r=0;return function e(s){if(this instanceof e)throw new TypeError("Symbol is not a constructor");return new t(n+(s||"")+"_"+r++,s)}})),i("Symbol.iterator",(function(e){if(e)return e;e=Symbol("Symbol.iterator");for(var n="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),i=0;i(t=t||0)&&(t=Math.max(t+s,0));ti)s[n++]=i;else{if(2048>i)s[n++]=i>>6|192;else{if(55296<=i&&57343>=i){if(56319>=i&&r=a){i=1024*(i-55296)+a-56320+65536,s[n++]=i>>18|240,s[n++]=i>>12&63|128,s[n++]=i>>6&63|128,s[n++]=63&i|128;continue}r--}if(t)throw Error("Found an unpaired surrogate");i=65533}s[n++]=i>>12|224,s[n++]=i>>6&63|128}s[n++]=63&i|128}}e=s.subarray(0,n)}return e}var D={},M=null;function z(e,t){void 0===t&&(t=0),B(),t=D[t];for(var n=Array(Math.floor(e.length/3)),s=t[64]||"",r=0,i=0;r>2];a=t[(3&a)<<4|o>>4],o=t[(15&o)<<2|l>>6],l=t[63&l],n[i++]=u+a+o+l}switch(u=0,l=s,e.length-r){case 2:l=t[(15&(u=e[r+1]))<<2]||s;case 1:e=e[r],n[i]=t[e>>2]+t[(3&e)<<4|u>>4]+l+s}return n.join("")}function F(e){var t=e.length,n=3*t/4;n%3?n=Math.floor(n):-1!="=.".indexOf(e[t-1])&&(n=-1!="=.".indexOf(e[t-2])?n-2:n-1);var s=new Uint8Array(n),r=0;return function(e,t){function n(t){for(;s>4),64!=a&&(t(i<<4&240|a>>2),64!=o&&t(a<<6&192|o))}}(e,(function(e){s[r++]=e})),s.subarray(0,r)}function B(){if(!M){M={};for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),t=["+/=","+/","-_=","-_.","-_"],n=0;5>n;n++){var s=e.concat(t[n].split(""));D[n]=s;for(var r=0;rr&&128<=t;r++)n|=(127&(t=e.h[e.g++]))<<7*r;if(128<=t&&(n|=(127&(t=e.h[e.g++]))<<28,s|=(127&t)>>4),128<=t)for(r=0;5>r&&128<=t;r++)s|=(127&(t=e.h[e.g++]))<<7*r+3;if(128>t)return e=n>>>0,(s=2147483648&(t=s>>>0))&&(t=~t>>>0,0==(e=1+~e>>>0)&&(t=t+1>>>0)),e=4294967296*t+(e>>>0),s?-e:e;e.m=!0}W.prototype.reset=function(){this.g=this.l},W.prototype.i=function(){var e=this.h,t=e[this.g],n=127&t;return 128>t?(this.g+=1,n):(n|=(127&(t=e[this.g+1]))<<7,128>t?(this.g+=2,n):(n|=(127&(t=e[this.g+2]))<<14,128>t?(this.g+=3,n):(n|=(127&(t=e[this.g+3]))<<21,128>t?(this.g+=4,n):(n|=(15&(t=e[this.g+4]))<<28,128>t?(this.g+=5,n>>>0):(this.g+=5,128<=e[this.g++]&&128<=e[this.g++]&&128<=e[this.g++]&&128<=e[this.g++]&&this.g++,n)))))},W.prototype.o=function(){var e=this.h[this.g],t=this.h[this.g+1],n=this.h[this.g+2],s=this.h[this.g+3];return this.g+=4,e=2*((n=(e|t<<8|n<<16|s<<24)>>>0)>>31)+1,t=n>>>23&255,n&=8388607,255==t?n?NaN:1/0*e:0==t?e*Math.pow(2,-149)*n:e*Math.pow(2,t-150)*(n+Math.pow(2,23))};var q=[];function H(){this.g=new Uint8Array(64),this.h=0}function K(e,t){for(;127>>=7;e.push(t)}function $(e){var t={},n=void 0!==t.N&&t.N;this.o={v:void 0!==t.v&&t.v},this.N=n,t=this.o,q.length?(n=q.pop(),t&&(n.v=t.v),e&&j(n,e),e=n):e=new W(e,t),this.g=e,this.m=this.g.g,this.h=this.i=this.l=-1,this.j=!1}function X(e){var t=e.g;if((t=t.g==t.j)||(t=e.j)||(t=(t=e.g).m||0>t.g||t.g>t.j),t)return!1;e.m=e.g.g;var n=7&(t=e.g.i());return 0!=n&&5!=n&&1!=n&&2!=n&&3!=n&&4!=n?(e.j=!0,!1):(e.i=t,e.l=t>>>3,e.h=n,!0)}function Z(e){switch(e.h){case 0:if(0!=e.h)Z(e);else{for(e=e.g;128&e.h[e.g];)e.g++;e.g++}break;case 1:1!=e.h?Z(e):(e=e.g).g+=8;break;case 2:if(2!=e.h)Z(e);else{var t=e.g.i();(e=e.g).g+=t}break;case 5:5!=e.h?Z(e):(e=e.g).g+=4;break;case 3:for(t=e.l;;){if(!X(e)){e.j=!0;break}if(4==e.h){e.l!=t&&(e.j=!0);break}Z(e)}break;default:e.j=!0}}function Y(e,t,n){var s=e.g.j,r=e.g.i(),i=e.g.g+r;if(e.g.j=i,n(t,e),0!==(n=i-e.g.g))throw Error("Message parsing ended unexpectedly. Expected to read "+r+" bytes, instead read "+(r-n)+" bytes, either the data ended unexpectedly or the message misreported its own length");return e.g.g=i,e.g.j=s,t}function Q(e){return e.g.o()}function J(e){var t,n=e.g.i(),s=(e=e.g).g;if(e.g+=n,e=e.h,N)(t=I)||(t=I=new TextDecoder("utf-8",{fatal:!1})),t=t.decode(e.subarray(s,s+n));else{n=s+n;for(var r,i,a,o=[],l=null;s(r=e[s++])?o.push(r):224>r?s>=n?o.push(65533):(i=e[s++],194>r||128!=(192&i)?(s--,o.push(65533)):o.push((31&r)<<6|63&i)):240>r?s>=n-1?o.push(65533):128!=(192&(i=e[s++]))||224===r&&160>i||237===r&&160<=i||128!=(192&(t=e[s++]))?(s--,o.push(65533)):o.push((15&r)<<12|(63&i)<<6|63&t):244>=r?s>=n-2?o.push(65533):128!=(192&(i=e[s++]))||i-144+(r<<28)>>30||128!=(192&(t=e[s++]))||128!=(192&(a=e[s++]))?(s--,o.push(65533)):(r=(7&r)<<18|(63&i)<<12|(63&t)<<6|63&a,r-=65536,o.push(55296+(r>>10&1023),56320+(1023&r))):o.push(65533),8192<=o.length&&(l=E(l,o),o.length=0);t=E(l,o)}return t}function ee(e,t,n){var s=e.g.i();for(s=e.g.g+s;e.g.gs?1:0)?-s:s)?0<1/s?V=0:(0,V=2147483648):isNaN(s)?(0,V=2147483647):34028234663852886e22>>0):11754943508222875e-54>s?(s=Math.round(s/Math.pow(2,-149)),0,V=(n<<31|s)>>>0):(t=Math.floor(Math.log(s)/Math.LN2),s*=Math.pow(2,-t),16777216<=(s=Math.round(8388608*s))&&++t,0,V=(n<<31|t+127<<23|8388607&s)>>>0),n=V,e.push(n>>>0&255),e.push(n>>>8&255),e.push(n>>>16&255),e.push(n>>>24&255)}}H.prototype.push=function(e){if(!(this.h+1=e.l?e.i?e.i[t]:void 0:e.h[t+e.j]}function ye(e,t){var n=void 0!==n&&n,s=ge(e,t,n);return null==s&&(s=fe),s===fe&&xe(e,t,s=de([]),n),s}function be(e){var t=ye(e,3);if(e.m||(e.m={}),!e.m[3]){for(var n=0;n=e.l?(me(e),e.i[t]=n):e.h[t+e.j]=n}function Ae(e,t,n){if(-1===n)return null;if(e.g||(e.g={}),!e.g[n]){var s=ge(e,n,!1);s&&(e.g[n]=new t(s))}return e.g[n]}function Ce(e,t){e.g||(e.g={});var n=e.g[1];if(!n){var s=ye(e,1);n=[];for(var r=0;rE;var I=(E=Math.abs(E))>>>0;for(E=Math.floor((E-I)/4294967296),E>>>=0,S&&(E=~E>>>0,4294967295<(I=1+(~I>>>0))&&(I=0,4294967295<++E&&(E=0))),S=V=I,I=E;0>>7|I<<25)>>>0,I>>>=7;_.push(S)}if(Ee(C,k),A=re(A),v.call(w,x,A),y.O)for(w=0;wE;E++)S.push(127&I|128),I>>=7;S.push(1)}ie(_,2,ge(k,2)),null!=(S=ge(k,3))&&(S=O(S),K(_.g,26),K(_.g,S.length),se(_,_.g.end()),se(_,S)),null!=(S=ge(k,4))&&(S=O(S),K(_.g,34),K(_.g,S.length),se(_,_.g.end()),se(_,S)),Ee(k,_),C=re(C),x.call(v,A,C)}}f=f.data;break e;default:f={}}}switch(c=f,h=u.stream,u.type){case"video":r.pushTexture2d(Object.assign(Object.assign({},c),{stream:h,timestamp:s}));break;case"detections":(d=c).stream=h,d.timestamp=s,r.pushDetectionList(d);break;default:throw Error("Unknown input config type: '"+u.type+"'")}}return p.i.send(r),b(n,p.C,4);case 4:r.delete(),n.g=0}}))}))},e.onResults=function(e,t){this.listeners[t||"$"]=e},_("Solution",nt),_("OptionType",{BOOL:0,NUMBER:1,aa:2,0:"BOOL",1:"NUMBER",2:"STRING"});var lt={files:[{url:"face_mesh_solution_packed_assets_loader.js"},{simd:!0,url:"face_mesh_solution_simd_wasm_bin.js"},{simd:!1,url:"face_mesh_solution_wasm_bin.js"}],graph:{url:"face_mesh.binarypb"},listeners:[{wants:["multi_face_geometry","image_transformed","multi_face_landmarks"],outs:{image:"image_transformed",multiFaceGeometry:{type:"proto_list",stream:"multi_face_geometry",transform:function(e){return e.map(ot)}},multiFaceLandmarks:{type:"proto_list",stream:"multi_face_landmarks",transform:function(e){return e.map((function(e){return Ce(Ue(e),Be).map(Xe)}))}}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},enableFaceGeometry:{type:0,graphOptionXref:{calculatorName:"EnableFaceGeometryConstant",calculatorType:"ConstantSidePacketCalculator",fieldName:"bool_value"}},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},maxNumFaces:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorNumFaces",fieldName:"int_value"}},refineLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorRefineLandmarks",fieldName:"bool_value"}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"facelandmarkfrontgpu__facedetectionshortrangegpu__facedetectionshortrangecommon__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"facelandmarkfrontgpu__facelandmarkgpu__ThresholdingCalculator",fieldName:"threshold"}},cameraNear:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"near"}},cameraFar:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"far"}},cameraVerticalFovDegrees:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"vertical_fov_degrees"}}}},ut=[[61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]],ct=[[263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]],ht=[[276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]],dt=[[33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]],pt=[[46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]],ft=[[10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]],mt=[].concat(l(ut),l(ct),l(ht),l(dt),l(pt),l(ft));function gt(e){e=e||{},e=Object.assign(Object.assign({},lt),e),this.g=new nt(e)}(e=gt.prototype).close=function(){return this.g.close(),Promise.resolve()},e.onResults=function(e){this.g.onResults(e)},e.initialize=function(){return Oe(this,(function e(){var t=this;return C(e,(function(e){return b(e,t.g.initialize(),0)}))}))},e.reset=function(){this.g.reset()},e.send=function(e){return Oe(this,(function t(){var n=this;return C(t,(function(t){return b(t,n.g.send(e),0)}))}))},e.setOptions=function(e){this.g.setOptions(e)},_("FACE_GEOMETRY",{Layout:{COLUMN_MAJOR:0,ROW_MAJOR:1,0:"COLUMN_MAJOR",1:"ROW_MAJOR"},PrimitiveType:{TRIANGLE:0,0:"TRIANGLE"},VertexType:{VERTEX_PT:0,0:"VERTEX_PT"},DEFAULT_CAMERA_PARAMS:{verticalFovDegrees:63,near:1,far:1e4}}),_("FaceMesh",gt),_("FACEMESH_LIPS",ut),_("FACEMESH_LEFT_EYE",ct),_("FACEMESH_LEFT_EYEBROW",ht),_("FACEMESH_LEFT_IRIS",[[474,475],[475,476],[476,477],[477,474]]),_("FACEMESH_RIGHT_EYE",dt),_("FACEMESH_RIGHT_EYEBROW",pt),_("FACEMESH_RIGHT_IRIS",[[469,470],[470,471],[471,472],[472,469]]),_("FACEMESH_FACE_OVAL",ft),_("FACEMESH_CONTOURS",mt),_("FACEMESH_TESSELATION",[[127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]]),_("matrixDataToMatrix",(function(e){for(var t=e.getCols(),n=e.getRows(),s=e.getPackedDataList(),r=[],i=0;i{e.exports=function e(t,n,s){function r(a,o){if(!n[a]){if(!t[a]){if(i)return i(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=n[a]={exports:{}};t[a][0].call(u.exports,(function(e){var n=t[a][1][e];return r(n||e)}),u,u.exports,e,t,n,s)}return n[a].exports}for(var i=void 0,a=0;a=43)}})).catch((function(){return!1}))}function A(e){return"boolean"==typeof m?u.resolve(m):x(e).then((function(e){return m=e}))}function C(e){var t=g[e.name],n={};n.promise=new u((function(e,t){n.resolve=e,n.reject=t})),t.deferredOperations.push(n),t.dbReady?t.dbReady=t.dbReady.then((function(){return n.promise})):t.dbReady=n.promise}function k(e){var t=g[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function S(e,t){var n=g[e.name].deferredOperations.pop();if(n)return n.reject(t),n.promise}function _(e,t){return new u((function(n,s){if(g[e.name]=g[e.name]||F(),e.db){if(!t)return n(e.db);C(e),e.db.close()}var r=[e.name];t&&r.push(e.version);var i=a.open.apply(a,r);t&&(i.onupgradeneeded=function(t){var n=i.result;try{n.createObjectStore(e.storeName),t.oldVersion<=1&&n.createObjectStore(f)}catch(e){if("ConstraintError"!==e.name)throw e}}),i.onerror=function(e){e.preventDefault(),s(i.error)},i.onsuccess=function(){var t=i.result;t.onversionchange=function(e){e.target.close()},n(t),k(e)}}))}function E(e){return _(e,!1)}function I(e){return _(e,!0)}function T(e,t){if(!e.db)return!0;var n=!e.db.objectStoreNames.contains(e.storeName),s=e.versione.db.version;if(s&&(e.version,e.version=e.db.version),r||n){if(n){var i=e.db.version+1;i>e.version&&(e.version=i)}return!0}return!1}function N(e){return new u((function(t,n){var s=new FileReader;s.onerror=n,s.onloadend=function(n){var s=btoa(n.target.result||"");t({__local_forage_encoded_blob:!0,data:s,type:e.type})},s.readAsBinaryString(e)}))}function R(e){return l([v(atob(e.data))],{type:e.type})}function O(e){return e&&e.__local_forage_encoded_blob}function D(e){var t=this,n=t._initReady().then((function(){var e=g[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return h(n,e,e),n}function M(e){C(e);for(var t=g[e.name],n=t.forages,s=0;s0&&(!e.db||"InvalidStateError"===r.name||"NotFoundError"===r.name))return u.resolve().then((function(){if(!e.db||"NotFoundError"===r.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),I(e)})).then((function(){return M(e).then((function(){z(e,t,n,s-1)}))})).catch(n);n(r)}}function F(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function B(e){var t=this,n={db:null};if(e)for(var s in e)n[s]=e[s];var r=g[n.name];r||(r=F(),g[n.name]=r),r.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=D);var i=[];function a(){return u.resolve()}for(var o=0;o>4,c[l++]=(15&s)<<4|r>>2,c[l++]=(3&r)<<6|63&i;return u}function fe(e){var t,n=new Uint8Array(e),s="";for(t=0;t>2],s+=X[(3&n[t])<<4|n[t+1]>>4],s+=X[(15&n[t+1])<<2|n[t+2]>>6],s+=X[63&n[t+2]];return n.length%3==2?s=s.substring(0,s.length-1)+"=":n.length%3==1&&(s=s.substring(0,s.length-2)+"=="),s}function me(e,t){var n="";if(e&&(n=de.call(e)),e&&("[object ArrayBuffer]"===n||e.buffer&&"[object ArrayBuffer]"===de.call(e.buffer))){var s,r=Q;e instanceof ArrayBuffer?(s=e,r+=ee):(s=e.buffer,"[object Int8Array]"===n?r+=ne:"[object Uint8Array]"===n?r+=se:"[object Uint8ClampedArray]"===n?r+=re:"[object Int16Array]"===n?r+=ie:"[object Uint16Array]"===n?r+=oe:"[object Int32Array]"===n?r+=ae:"[object Uint32Array]"===n?r+=le:"[object Float32Array]"===n?r+=ue:"[object Float64Array]"===n?r+=ce:t(new Error("Failed to get type for BinaryArray"))),t(r+fe(s))}else if("[object Blob]"===n){var i=new FileReader;i.onload=function(){var n=Z+e.type+"~"+fe(this.result);t(Q+te+n)},i.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(e){t(null,e)}}function ge(e){if(e.substring(0,J)!==Q)return JSON.parse(e);var t,n=e.substring(he),s=e.substring(J,he);if(s===te&&Y.test(n)){var r=n.match(Y);t=r[1],n=n.substring(r[0].length)}var i=pe(n);switch(s){case ee:return i;case te:return l([i],{type:t});case ne:return new Int8Array(i);case se:return new Uint8Array(i);case re:return new Uint8ClampedArray(i);case ie:return new Int16Array(i);case oe:return new Uint16Array(i);case ae:return new Int32Array(i);case le:return new Uint32Array(i);case ue:return new Float32Array(i);case ce:return new Float64Array(i);default:throw new Error("Unkown type: "+s)}}var ye={serialize:me,deserialize:ge,stringToBuffer:pe,bufferToString:fe};function be(e,t,n,s){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],n,s)}function we(e){var t=this,n={db:null};if(e)for(var s in e)n[s]="string"!=typeof e[s]?e[s].toString():e[s];var r=new u((function(e,s){try{n.db=openDatabase(n.name,String(n.version),n.description,n.size)}catch(e){return s(e)}n.db.transaction((function(r){be(r,n,(function(){t._dbInfo=n,e()}),(function(e,t){s(t)}))}),s)}));return n.serializer=ye,r}function ve(e,t,n,s,r,i){e.executeSql(n,s,r,(function(e,a){a.code===a.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],(function(e,o){o.rows.length?i(e,a):be(e,t,(function(){e.executeSql(n,s,r,i)}),i)}),i):i(e,a)}),i)}function xe(e,t){var n=this;e=d(e);var s=new u((function(t,s){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){ve(n,r,"SELECT * FROM "+r.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,n){var s=n.rows.length?n.rows.item(0).value:null;s&&(s=r.serializer.deserialize(s)),t(s)}),(function(e,t){s(t)}))}))})).catch(s)}));return c(s,t),s}function Ae(e,t){var n=this,s=new u((function(t,s){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){ve(n,r,"SELECT * FROM "+r.storeName,[],(function(n,s){for(var i=s.rows,a=i.length,o=0;o0)return void i(Ce.apply(r,[e,o,n,s-1]));a(t)}}))}))})).catch(a)}));return c(i,n),i}function ke(e,t,n){return Ce.apply(this,[e,t,n,1])}function Se(e,t){var n=this;e=d(e);var s=new u((function(t,s){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){ve(n,r,"DELETE FROM "+r.storeName+" WHERE key = ?",[e],(function(){t()}),(function(e,t){s(t)}))}))})).catch(s)}));return c(s,t),s}function _e(e){var t=this,n=new u((function(e,n){t.ready().then((function(){var s=t._dbInfo;s.db.transaction((function(t){ve(t,s,"DELETE FROM "+s.storeName,[],(function(){e()}),(function(e,t){n(t)}))}))})).catch(n)}));return c(n,e),n}function Ee(e){var t=this,n=new u((function(e,n){t.ready().then((function(){var s=t._dbInfo;s.db.transaction((function(t){ve(t,s,"SELECT COUNT(key) as c FROM "+s.storeName,[],(function(t,n){var s=n.rows.item(0).c;e(s)}),(function(e,t){n(t)}))}))})).catch(n)}));return c(n,e),n}function Ie(e,t){var n=this,s=new u((function(t,s){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){ve(n,r,"SELECT key FROM "+r.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,n){var s=n.rows.length?n.rows.item(0).key:null;t(s)}),(function(e,t){s(t)}))}))})).catch(s)}));return c(s,t),s}function Te(e){var t=this,n=new u((function(e,n){t.ready().then((function(){var s=t._dbInfo;s.db.transaction((function(t){ve(t,s,"SELECT key FROM "+s.storeName,[],(function(t,n){for(var s=[],r=0;r '__WebKitDatabaseInfoTable__'",[],(function(n,s){for(var r=[],i=0;i0}function Be(e){var t=this,n={};if(e)for(var s in e)n[s]=e[s];return n.keyPrefix=Me(e,t._defaultConfig),Fe()?(t._dbInfo=n,n.serializer=ye,u.resolve()):u.reject()}function Le(e){var t=this,n=t.ready().then((function(){for(var e=t._dbInfo.keyPrefix,n=localStorage.length-1;n>=0;n--){var s=localStorage.key(n);0===s.indexOf(e)&&localStorage.removeItem(s)}}));return c(n,e),n}function Pe(e,t){var n=this;e=d(e);var s=n.ready().then((function(){var t=n._dbInfo,s=localStorage.getItem(t.keyPrefix+e);return s&&(s=t.serializer.deserialize(s)),s}));return c(s,t),s}function Ue(e,t){var n=this,s=n.ready().then((function(){for(var t=n._dbInfo,s=t.keyPrefix,r=s.length,i=localStorage.length,a=1,o=0;o=0;t--){var n=localStorage.key(t);0===n.indexOf(e)&&localStorage.removeItem(n)}})):u.reject("Invalid arguments"),c(s,t),s}var Ke={_driver:"localStorageWrapper",_initStorage:Be,_support:De(),iterate:Ue,getItem:Pe,setItem:qe,removeItem:Ge,clear:Le,length:je,key:Ve,keys:We,dropInstance:He},$e=function(e,t){return e===t||"number"==typeof e&&"number"==typeof t&&isNaN(e)&&isNaN(t)},Xe=function(e,t){for(var n=e.length,s=0;s{e.exports=n;var t=null;try{t=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(e){}function n(e,t,n){this.low=0|e,this.high=0|t,this.unsigned=!!n}function s(e){return!0===(e&&e.__isLong__)}n.prototype.__isLong__,Object.defineProperty(n.prototype,"__isLong__",{value:!0}),n.isLong=s;var r={},i={};function a(e,t){var n,s,a;return t?(a=0<=(e>>>=0)&&e<256)&&(s=i[e])?s:(n=l(e,(0|e)<0?-1:0,!0),a&&(i[e]=n),n):(a=-128<=(e|=0)&&e<128)&&(s=r[e])?s:(n=l(e,e<0?-1:0,!1),a&&(r[e]=n),n)}function o(e,t){if(isNaN(e))return t?y:g;if(t){if(e<0)return y;if(e>=p)return A}else{if(e<=-f)return C;if(e+1>=f)return x}return e<0?o(-e,t).neg():l(e%d|0,e/d|0,t)}function l(e,t,s){return new n(e,t,s)}n.fromInt=a,n.fromNumber=o,n.fromBits=l;var u=Math.pow;function c(e,t,n){if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return g;if("number"==typeof t?(n=t,t=!1):t=!!t,(n=n||10)<2||360)throw Error("interior hyphen");if(0===s)return c(e.substring(1),t,n).neg();for(var r=o(u(n,8)),i=g,a=0;a>>0:this.low},k.toNumber=function(){return this.unsigned?(this.high>>>0)*d+(this.low>>>0):this.high*d+(this.low>>>0)},k.toString=function(e){if((e=e||10)<2||36>>0).toString(e);if((i=l).isZero())return c+a;for(;c.length<6;)c="0"+c;a=""+c+a}},k.getHighBits=function(){return this.high},k.getHighBitsUnsigned=function(){return this.high>>>0},k.getLowBits=function(){return this.low},k.getLowBitsUnsigned=function(){return this.low>>>0},k.getNumBitsAbs=function(){if(this.isNegative())return this.eq(C)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&!(e&1<=0},k.isOdd=function(){return!(1&~this.low)},k.isEven=function(){return!(1&this.low)},k.equals=function(e){return s(e)||(e=h(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&(this.high===e.high&&this.low===e.low)},k.eq=k.equals,k.notEquals=function(e){return!this.eq(e)},k.neq=k.notEquals,k.ne=k.notEquals,k.lessThan=function(e){return this.comp(e)<0},k.lt=k.lessThan,k.lessThanOrEqual=function(e){return this.comp(e)<=0},k.lte=k.lessThanOrEqual,k.le=k.lessThanOrEqual,k.greaterThan=function(e){return this.comp(e)>0},k.gt=k.greaterThan,k.greaterThanOrEqual=function(e){return this.comp(e)>=0},k.gte=k.greaterThanOrEqual,k.ge=k.greaterThanOrEqual,k.compare=function(e){if(s(e)||(e=h(e)),this.eq(e))return 0;var t=this.isNegative(),n=e.isNegative();return t&&!n?-1:!t&&n?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},k.comp=k.compare,k.negate=function(){return!this.unsigned&&this.eq(C)?C:this.not().add(b)},k.neg=k.negate,k.add=function(e){s(e)||(e=h(e));var t=this.high>>>16,n=65535&this.high,r=this.low>>>16,i=65535&this.low,a=e.high>>>16,o=65535&e.high,u=e.low>>>16,c=0,d=0,p=0,f=0;return p+=(f+=i+(65535&e.low))>>>16,d+=(p+=r+u)>>>16,c+=(d+=n+o)>>>16,c+=t+a,l((p&=65535)<<16|(f&=65535),(c&=65535)<<16|(d&=65535),this.unsigned)},k.subtract=function(e){return s(e)||(e=h(e)),this.add(e.neg())},k.sub=k.subtract,k.multiply=function(e){if(this.isZero())return g;if(s(e)||(e=h(e)),t)return l(t.mul(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned);if(e.isZero())return g;if(this.eq(C))return e.isOdd()?C:g;if(e.eq(C))return this.isOdd()?C:g;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(m)&&e.lt(m))return o(this.toNumber()*e.toNumber(),this.unsigned);var n=this.high>>>16,r=65535&this.high,i=this.low>>>16,a=65535&this.low,u=e.high>>>16,c=65535&e.high,d=e.low>>>16,p=65535&e.low,f=0,y=0,b=0,w=0;return b+=(w+=a*p)>>>16,y+=(b+=i*p)>>>16,b&=65535,y+=(b+=a*d)>>>16,f+=(y+=r*p)>>>16,y&=65535,f+=(y+=i*d)>>>16,y&=65535,f+=(y+=a*c)>>>16,f+=n*p+r*d+i*c+a*u,l((b&=65535)<<16|(w&=65535),(f&=65535)<<16|(y&=65535),this.unsigned)},k.mul=k.multiply,k.divide=function(e){if(s(e)||(e=h(e)),e.isZero())throw Error("division by zero");var n,r,i;if(t)return this.unsigned||-2147483648!==this.high||-1!==e.low||-1!==e.high?l((this.unsigned?t.div_u:t.div_s)(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?y:g;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return y;if(e.gt(this.shru(1)))return w;i=y}else{if(this.eq(C))return e.eq(b)||e.eq(v)?C:e.eq(C)?b:(n=this.shr(1).div(e).shl(1)).eq(g)?e.isNegative()?b:v:(r=this.sub(e.mul(n)),i=n.add(r.div(e)));if(e.eq(C))return this.unsigned?y:g;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();i=g}for(r=this;r.gte(e);){n=Math.max(1,Math.floor(r.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),c=a<=48?1:u(2,a-48),d=o(n),p=d.mul(e);p.isNegative()||p.gt(r);)p=(d=o(n-=c,this.unsigned)).mul(e);d.isZero()&&(d=b),i=i.add(d),r=r.sub(p)}return i},k.div=k.divide,k.modulo=function(e){return s(e)||(e=h(e)),t?l((this.unsigned?t.rem_u:t.rem_s)(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},k.mod=k.modulo,k.rem=k.modulo,k.not=function(){return l(~this.low,~this.high,this.unsigned)},k.and=function(e){return s(e)||(e=h(e)),l(this.low&e.low,this.high&e.high,this.unsigned)},k.or=function(e){return s(e)||(e=h(e)),l(this.low|e.low,this.high|e.high,this.unsigned)},k.xor=function(e){return s(e)||(e=h(e)),l(this.low^e.low,this.high^e.high,this.unsigned)},k.shiftLeft=function(e){return s(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?l(this.low<>>32-e,this.unsigned):l(0,this.low<>>e|this.high<<32-e,this.high>>e,this.unsigned):l(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},k.shr=k.shiftRight,k.shiftRightUnsigned=function(e){if(s(e)&&(e=e.toInt()),0===(e&=63))return this;var t=this.high;return e<32?l(this.low>>>e|t<<32-e,t>>>e,this.unsigned):l(32===e?t:t>>>e-32,0,this.unsigned)},k.shru=k.shiftRightUnsigned,k.shr_u=k.shiftRightUnsigned,k.toSigned=function(){return this.unsigned?l(this.low,this.high,!1):this},k.toUnsigned=function(){return this.unsigned?this:l(this.low,this.high,!0)},k.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},k.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},k.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},n.fromBytes=function(e,t,s){return s?n.fromBytesLE(e,t):n.fromBytesBE(e,t)},n.fromBytesLE=function(e,t){return new n(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},n.fromBytesBE=function(e,t){return new n(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)}},9464:function(e,t){var n,s,r;s=[e],n=function(e){"use strict";function t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var n=Object.assign||function(e){for(var t=1;tMath.abs(n[i][a])&&(a=o);for(var l=i;l=i;h--)n[h][c]-=n[h][i]*n[i][c]/n[i][i]}for(var d=s-1;d>=0;d--){for(var p=0,f=d+1;f=0;x--)v+=x>1?y[x]+"x^"+x+" + ":1===x?y[x]+"x + ":y[x];return{string:v,points:w,predict:b,equation:[].concat(s(y)).reverse(),r2:o(i(e,w),t.precision)}}};function u(){var e=function(e,s){return n({_round:o},e,t({},s,(function(e,t){return l[s](e,n({},r,t))})))};return Object.keys(l).reduce(e,{})}e.exports=u()},void 0===(r="function"==typeof n?n.apply(t,s):n)||(e.exports=r)},2183:(e,t,n)=>{var s=n(1812),r=n(6357),i=n(1119),a=n(147),o=n(6297),l=n(9181),u=n(7529);u.alea=s,u.xor128=r,u.xorwow=i,u.xorshift7=a,u.xor4096=o,u.tychei=l,e.exports=u},1812:function(e,t,n){var s;!function(e,r,i){function a(e){var t=this,n=function(){var e=4022871197,t=function(t){t=String(t);for(var n=0;n>>0,e=(s*=e)>>>0,e+=4294967296*(s-=e)}return 2.3283064365386963e-10*(e>>>0)};return t}();t.next=function(){var e=2091639*t.s0+2.3283064365386963e-10*t.c;return t.s0=t.s1,t.s1=t.s2,t.s2=e-(t.c=0|e)},t.c=1,t.s0=n(" "),t.s1=n(" "),t.s2=n(" "),t.s0-=n(e),t.s0<0&&(t.s0+=1),t.s1-=n(e),t.s1<0&&(t.s1+=1),t.s2-=n(e),t.s2<0&&(t.s2+=1),n=null}function o(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function l(e,t){var n=new a(e),s=t&&t.state,r=n.next;return r.int32=function(){return 4294967296*n.next()|0},r.double=function(){return r()+11102230246251565e-32*(2097152*r()|0)},r.quick=r,s&&("object"==typeof s&&o(s,n),r.state=function(){return o(n,{})}),r}r&&r.exports?r.exports=l:n.amdD&&n.amdO?void 0===(s=function(){return l}.call(t,n,t,r))||(r.exports=s):this.alea=l}(0,e=n.nmd(e),n.amdD)},9181:function(e,t,n){var s;!function(e,r,i){function a(e){var t=this,n="";t.next=function(){var e=t.b,n=t.c,s=t.d,r=t.a;return e=e<<25^e>>>7^n,n=n-s|0,s=s<<24^s>>>8^r,r=r-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-s|0,t.d=s<<16^n>>>16^r,t.a=r-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 s=0;s>>0)/4294967296};return r.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=n.next,r.quick=r,s&&("object"==typeof s&&o(s,n),r.state=function(){return o(n,{})}),r}r&&r.exports?r.exports=l:n.amdD&&n.amdO?void 0===(s=function(){return l}.call(t,n,t,r))||(r.exports=s):this.tychei=l}(0,e=n.nmd(e),n.amdD)},6357:function(e,t,n){var s;!function(e,r,i){function a(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 s=0;s>>0)/4294967296};return r.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=n.next,r.quick=r,s&&("object"==typeof s&&o(s,n),r.state=function(){return o(n,{})}),r}r&&r.exports?r.exports=l:n.amdD&&n.amdO?void 0===(s=function(){return l}.call(t,n,t,r))||(r.exports=s):this.xor128=l}(0,e=n.nmd(e),n.amdD)},6297:function(e,t,n){var s;!function(e,r,i){function a(e){var t=this;t.next=function(){var e,n,s=t.w,r=t.X,i=t.i;return t.w=s=s+1640531527|0,n=r[i+34&127],e=r[i=i+1&127],n^=n<<13,e^=e<<17,n^=n>>>15,e^=e>>>12,n=r[i]=n^e,t.i=i,n+(s^s>>>16)|0},function(e,t){var n,s,r,i,a,o=[],l=128;for(t===(0|t)?(s=t,t=null):(t+="\0",s=0,l=Math.max(l,t.length)),r=0,i=-32;i>>15,s^=s<<4,s^=s>>>13,i>=0&&(a=a+1640531527|0,r=0==(n=o[127&i]^=s+a)?r+1:0);for(r>=128&&(o[127&(t&&t.length||0)]=-1),r=127,i=512;i>0;--i)s=o[r+34&127],n=o[r=r+1&127],s^=s<<13,n^=n<<17,s^=s>>>15,n^=n>>>12,o[r]=s^n;e.w=a,e.X=o,e.i=r}(t,e)}function o(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function l(e,t){null==e&&(e=+new Date);var n=new a(e),s=t&&t.state,r=function(){return(n.next()>>>0)/4294967296};return r.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=n.next,r.quick=r,s&&(s.X&&o(s,n),r.state=function(){return o(n,{})}),r}r&&r.exports?r.exports=l:n.amdD&&n.amdO?void 0===(s=function(){return l}.call(t,n,t,r))||(r.exports=s):this.xor4096=l}(0,e=n.nmd(e),n.amdD)},147:function(e,t,n){var s;!function(e,r,i){function a(e){var t=this;t.next=function(){var e,n,s=t.x,r=t.i;return e=s[r],n=(e^=e>>>7)^e<<24,n^=(e=s[r+1&7])^e>>>10,n^=(e=s[r+3&7])^e>>>3,n^=(e=s[r+4&7])^e<<7,e=s[r+7&7],n^=(e^=e<<13)^e<<9,s[r]=n,t.i=r+1&7,n},function(e,t){var n,s=[];if(t===(0|t))s[0]=t;else for(t=""+t,n=0;n0;--n)e.next()}(t,e)}function o(e,t){return t.x=e.x.slice(),t.i=e.i,t}function l(e,t){null==e&&(e=+new Date);var n=new a(e),s=t&&t.state,r=function(){return(n.next()>>>0)/4294967296};return r.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=n.next,r.quick=r,s&&(s.x&&o(s,n),r.state=function(){return o(n,{})}),r}r&&r.exports?r.exports=l:n.amdD&&n.amdO?void 0===(s=function(){return l}.call(t,n,t,r))||(r.exports=s):this.xorshift7=l}(0,e=n.nmd(e),n.amdD)},1119:function(e,t,n){var s;!function(e,r,i){function a(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 s=0;s>>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 l(e,t){var n=new a(e),s=t&&t.state,r=function(){return(n.next()>>>0)/4294967296};return r.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=n.next,r.quick=r,s&&("object"==typeof s&&o(s,n),r.state=function(){return o(n,{})}),r}r&&r.exports?r.exports=l:n.amdD&&n.amdO?void 0===(s=function(){return l}.call(t,n,t,r))||(r.exports=s):this.xorwow=l}(0,e=n.nmd(e),n.amdD)},7529:function(e,t,n){var s;!function(r,i,a){var o,l=256,u=a.pow(l,6),c=a.pow(2,52),h=2*c,d=l-1;function p(e,t,n){var s=[],d=y(g((t=1==t?{entropy:!0}:t||{}).entropy?[e,b(i)]:null==e?function(){try{var e;return o&&(e=o.randomBytes)?e=e(l):(e=new Uint8Array(l),(r.crypto||r.msCrypto).getRandomValues(e)),b(e)}catch(e){var t=r.navigator,n=t&&t.plugins;return[+new Date,r,n,r.screen,b(i)]}}():e,3),s),p=new f(s),w=function(){for(var e=p.g(6),t=u,n=0;e=h;)e/=2,t/=2,n>>>=1;return(e+n)/t};return w.int32=function(){return 0|p.g(4)},w.quick=function(){return p.g(4)/4294967296},w.double=w,y(b(p.S),i),(t.pass||n||function(e,t,n,s){return s&&(s.S&&m(s,p),e.state=function(){return m(p,{})}),n?(a.random=e,t):e})(w,d,"global"in t?t.global:this==a,t.state)}function f(e){var t,n=e.length,s=this,r=0,i=s.i=s.j=0,a=s.S=[];for(n||(e=[n++]);r{},9830:()=>{},3818:()=>{},6308:()=>{},7695:()=>{},170:()=>{}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(n.exports,n,n.exports,__webpack_require__),n.loaded=!0,n.exports}__webpack_require__.amdD=function(){throw new Error("define cannot be used indirect")},__webpack_require__.amdO={},__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),__webpack_require__.nc=void 0;var __webpack_exports__={};return(()=>{"use strict";__webpack_require__.d(__webpack_exports__,{default:()=>IH});var e={};__webpack_require__.r(e),__webpack_require__.d(e,{CompositeArrayBuffer:()=>wo,browserFiles:()=>pu,browserHTTPRequest:()=>Au,concatenateArrayBuffers:()=>Lo,copyModel:()=>Cl,decodeWeights:()=>To,decodeWeightsStream:()=>Mo,encodeWeights:()=>Io,fromMemory:()=>_u,fromMemorySync:()=>Eu,getLoadHandlers:()=>Xo,getModelArtifactsForJSON:()=>Wo,getModelArtifactsForJSONSync:()=>Vo,getModelArtifactsInfoForJSON:()=>jo,getSaveHandlers:()=>$o,getWeightSpecs:()=>Go,http:()=>xu,isHTTPScheme:()=>wu,listModels:()=>xl,loadWeights:()=>gu,moveModel:()=>kl,registerLoadRouter:()=>Ko,registerSaveRouter:()=>Ho,removeModel:()=>Al,weightsLoaderFactory:()=>yu,withSaveHandler:()=>Iu,withSaveHandlerSync:()=>Tu});var t={};__webpack_require__.r(t),__webpack_require__.d(t,{assertParamsValid:()=>Pu,computeFlatOffset:()=>Qu,computeOutShape:()=>Vu,getNormalizedAxes:()=>qu,isSliceContinous:()=>Yu,maskToAxes:()=>Uu,parseSliceParams:()=>Ju,sliceInfo:()=>ec,startForAxis:()=>Xu,startIndicesWithElidedDims:()=>Hu,stopForAxis:()=>Zu,stopIndicesWithElidedDims:()=>Ku,stridesForAxis:()=>$u,stridesWithElidedDims:()=>Wu});var n={};__webpack_require__.r(n),__webpack_require__.d(n,{conv2d:()=>ff,depthwiseConv2d:()=>yf,matMul:()=>bf});var s={};__webpack_require__.r(s),__webpack_require__.d(s,{collectGatherOpShapeInfo:()=>Tg,computeOutShape:()=>Ig,segOpComputeOptimalWindowSize:()=>Eg});var r={};__webpack_require__.r(r),__webpack_require__.d(r,{ERF_A1:()=>qm,ERF_A2:()=>Hm,ERF_A3:()=>Km,ERF_A4:()=>$m,ERF_A5:()=>Xm,ERF_P:()=>Gm,PARALLELIZE_THRESHOLD:()=>Dm,RowPartitionType:()=>Im,SELU_SCALE:()=>jm,SELU_SCALEALPHA:()=>Wm,applyActivation:()=>df,assertAndGetBroadcastShape:()=>su,assertAxesAreInnerMostDims:()=>Eh,assertParamsConsistent:()=>_m,assignToTypedArray:()=>tg,axesAreInnerMostDims:()=>Ch,calculateShapes:()=>Vp,checkEinsumDimSizes:()=>cg,checkPadOnDimRoundingMode:()=>Ic,combineLocations:()=>kh,combineRaggedTensorToTensorShapes:()=>Tm,complexWithEvenIndex:()=>Qm,complexWithOddIndex:()=>Jm,computeConv2DInfo:()=>yc,computeConv3DInfo:()=>bc,computeDefaultPad:()=>wc,computeDilation2DInfo:()=>fc,computeOptimalWindowSize:()=>Mm,computeOutAndReduceShapes:()=>Sh,computeOutShape:()=>Em,computePool2DInfo:()=>mc,computePool3DInfo:()=>gc,convertConv2DDataFormat:()=>Ec,decodeEinsumEquation:()=>lg,eitherStridesOrDilationsAreOne:()=>Sc,expandShapeToKeepDim:()=>_h,exponent:()=>sg,exponents:()=>ng,fromStringArrayToUint8:()=>Rg,fromUint8ToStringArray:()=>Ng,getAxesPermutation:()=>Ih,getBroadcastDims:()=>tu,getComplexWithIndex:()=>eg,getEinsumComputePath:()=>hg,getEinsumPermutation:()=>ug,getFusedBiasGradient:()=>hf,getFusedDyActivation:()=>cf,getImageCenter:()=>zm,getInnerMostAxes:()=>Nh,getPermuted:()=>Bm,getRaggedRank:()=>Rm,getReductionAxes:()=>nu,getReshaped:()=>Fm,getReshapedPermuted:()=>Lm,getRowPartitionTypesHelper:()=>Nm,getSliceBeginCoords:()=>Pm,getSliceSize:()=>Um,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>mg,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>gg,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>yg,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>vg,getSparseReshapeInputOutputMismatchErrorMessage:()=>Ag,getSparseReshapeInputOutputMultipleErrorMessage:()=>xg,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>bg,getSparseReshapeNegativeOutputDimErrorMessage:()=>wg,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>_g,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>Cg,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>kg,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>Sg,getUndoAxesPermutation:()=>Th,isIdentityPermutation:()=>dg,log:()=>Wi,mergeRealAndImagArrays:()=>Zm,prepareAndValidate:()=>Vm,prepareSplitSize:()=>fg,segment_util:()=>s,shouldFuse:()=>pf,slice_util:()=>t,splitRealAndImagArrays:()=>Ym,stridesOrDilationsArePositive:()=>_c,tupleValuesAreOne:()=>kc,upcastType:()=>ja,validateDefaultValueShape:()=>Om,validateInput:()=>Up,validateUpdateShape:()=>Pp,warn:()=>Vi});var i={};__webpack_require__.r(i),__webpack_require__.d(i,{json:()=>ek});var a={};__webpack_require__.r(a),__webpack_require__.d(a,{json:()=>tk});var o={};__webpack_require__.r(o),__webpack_require__.d(o,{json:()=>nk});var l={};__webpack_require__.r(l),__webpack_require__.d(l,{json:()=>sk});var u={};__webpack_require__.r(u),__webpack_require__.d(u,{json:()=>rk});var c={};__webpack_require__.r(c),__webpack_require__.d(c,{json:()=>ik});var h={};__webpack_require__.r(h),__webpack_require__.d(h,{json:()=>ak});var d={};__webpack_require__.r(d),__webpack_require__.d(d,{json:()=>ok});var p={};__webpack_require__.r(p),__webpack_require__.d(p,{json:()=>lk});var f={};__webpack_require__.r(f),__webpack_require__.d(f,{json:()=>uk});var m={};__webpack_require__.r(m),__webpack_require__.d(m,{json:()=>ck});var g={};__webpack_require__.r(g),__webpack_require__.d(g,{json:()=>hk});var y={};__webpack_require__.r(y),__webpack_require__.d(y,{json:()=>dk});var b={};__webpack_require__.r(b),__webpack_require__.d(b,{json:()=>pk});var w={};__webpack_require__.r(w),__webpack_require__.d(w,{json:()=>fk});var v={};__webpack_require__.r(v),__webpack_require__.d(v,{json:()=>mk});var x={};__webpack_require__.r(x),__webpack_require__.d(x,{json:()=>gk});var A={};__webpack_require__.r(A),__webpack_require__.d(A,{json:()=>yk});var C={};__webpack_require__.r(C),__webpack_require__.d(C,{json:()=>bk});var k={};__webpack_require__.r(k),__webpack_require__.d(k,{OP_SCOPE_SUFFIX:()=>po,abs:()=>eu,acos:()=>nc,acosh:()=>sc,add:()=>Dl,addN:()=>rc,all:()=>ic,any:()=>ac,argMax:()=>oc,argMin:()=>lc,asin:()=>uc,asinh:()=>cc,atan:()=>hc,atan2:()=>dc,atanh:()=>pc,avgPool:()=>Nc,avgPool3d:()=>Rc,basicLSTMCell:()=>Bc,batchNorm:()=>Pc,batchNorm2d:()=>Uc,batchNorm3d:()=>Vc,batchNorm4d:()=>Wc,batchToSpaceND:()=>Lc,bincount:()=>jc,bitwiseAnd:()=>Gc,booleanMaskAsync:()=>Qp,broadcastArgs:()=>qc,broadcastTo:()=>Hc,buffer:()=>Tl,cast:()=>Nl,ceil:()=>Kc,clipByValue:()=>$c,clone:()=>Rl,complex:()=>mo,concat:()=>Oc,concat1d:()=>Xc,concat2d:()=>Zc,concat3d:()=>Yc,concat4d:()=>Qc,conv1d:()=>eh,conv2d:()=>Jc,conv2dTranspose:()=>nh,conv3d:()=>sh,conv3dTranspose:()=>ih,cos:()=>ah,cosh:()=>oh,cosineWindow:()=>of,cumprod:()=>lh,cumsum:()=>uh,denseBincount:()=>ch,depthToSpace:()=>hh,depthwiseConv2d:()=>dh,diag:()=>ph,dilation2d:()=>fh,div:()=>zl,divNoNan:()=>yh,dot:()=>bh,dropout:()=>rf,einsum:()=>wh,elu:()=>vh,enclosingPowerOfTwo:()=>af,ensureShape:()=>xh,equal:()=>mh,erf:()=>Ah,euclideanNorm:()=>Fh,exp:()=>Bh,expandDims:()=>Lh,expm1:()=>Ph,eye:()=>Vh,fft:()=>Cp,fill:()=>Xl,floor:()=>Wh,floorDiv:()=>Ml,fused:()=>n,gather:()=>jh,gatherND:()=>sf,greater:()=>Gh,greaterEqual:()=>qh,ifft:()=>kp,imag:()=>Hh,image:()=>bm,inTopKAsync:()=>lf,irfft:()=>Sp,isFinite:()=>Kh,isInf:()=>$h,isNaN:()=>Xh,leakyRelu:()=>Zh,less:()=>Yh,lessEqual:()=>Qh,linalg:()=>wm,linspace:()=>Jh,localResponseNormalization:()=>ed,log:()=>td,log1p:()=>nd,logSigmoid:()=>id,logSoftmax:()=>ad,logSumExp:()=>od,logicalAnd:()=>ld,logicalNot:()=>ud,logicalOr:()=>cd,logicalXor:()=>hd,losses:()=>vm,lowerBound:()=>fd,matMul:()=>Dc,max:()=>Rh,maxPool:()=>md,maxPool3d:()=>gd,maxPoolWithArgmax:()=>yd,maximum:()=>ru,mean:()=>bd,meshgrid:()=>xd,min:()=>Oh,minimum:()=>Ad,mirrorPad:()=>Cd,mod:()=>kd,moments:()=>Sd,movingAverage:()=>ef,mul:()=>Fl,multiRNNCell:()=>_d,multinomial:()=>Ed,neg:()=>sd,norm:()=>zh,notEqual:()=>Id,oneHot:()=>Td,ones:()=>vd,onesLike:()=>Nd,op:()=>fo,outerProduct:()=>Rd,pad:()=>Od,pad1d:()=>Dd,pad2d:()=>Md,pad3d:()=>zd,pad4d:()=>Fd,pool:()=>Ld,pow:()=>Yl,prelu:()=>Pd,print:()=>Ol,prod:()=>Ud,raggedGather:()=>Vd,raggedRange:()=>Wd,raggedTensorToTensor:()=>jd,rand:()=>Gd,randomGamma:()=>Xd,randomNormal:()=>Zd,randomStandardNormal:()=>Yd,randomUniform:()=>Qd,randomUniformInt:()=>Jd,range:()=>ep,real:()=>tp,reciprocal:()=>np,relu:()=>sp,relu6:()=>rp,reshape:()=>Tc,reverse:()=>ip,reverse1d:()=>ap,reverse2d:()=>op,reverse3d:()=>lp,reverse4d:()=>up,rfft:()=>Ep,round:()=>cp,rsqrt:()=>hp,scalar:()=>Vl,scatterND:()=>tf,searchSorted:()=>pd,selu:()=>dp,separableConv2d:()=>pp,setdiff1dAsync:()=>fp,sigmoid:()=>Mc,sign:()=>mp,signal:()=>ym,sin:()=>gp,sinh:()=>yp,slice:()=>zc,slice1d:()=>bp,slice2d:()=>wp,slice3d:()=>vp,slice4d:()=>xp,softmax:()=>Ap,softplus:()=>rd,spaceToBatchND:()=>Bd,sparse:()=>xm,sparseToDense:()=>nf,spectral:()=>gm,split:()=>_p,sqrt:()=>Bl,square:()=>Ll,squaredDifference:()=>Ip,squeeze:()=>Tp,stack:()=>Np,step:()=>Rp,stridedSlice:()=>Op,string:()=>Am,sub:()=>Ql,sum:()=>Dh,tan:()=>Dp,tanh:()=>Fc,tensor:()=>yo,tensor1d:()=>Mp,tensor2d:()=>zp,tensor3d:()=>Nu,tensor4d:()=>Fp,tensor5d:()=>Bp,tensor6d:()=>Lp,tensorScatterUpdate:()=>Wp,tile:()=>Uh,topk:()=>jp,transpose:()=>Jp,truncatedNormal:()=>Gp,unique:()=>qp,unsortedSegmentSum:()=>Hp,unstack:()=>Kp,upperBound:()=>$p,variable:()=>Xp,where:()=>gh,whereAsync:()=>Yp,zeros:()=>wd,zerosLike:()=>Pl});var S={};__webpack_require__.r(S),__webpack_require__.d(S,{addImpl:()=>w_,bincountImpl:()=>hE,bincountReduceImpl:()=>dE,bitwiseAndImpl:()=>fE,castImpl:()=>f_,ceilImpl:()=>bE,concatImpl:()=>kE,equalImpl:()=>lI,expImpl:()=>wI,expm1Impl:()=>kI,floorImpl:()=>VI,gatherNdImpl:()=>XI,gatherV2Impl:()=>YI,greaterEqualImpl:()=>nT,greaterImpl:()=>JI,lessEqualImpl:()=>mT,lessImpl:()=>dT,linSpaceImpl:()=>bT,logImpl:()=>vT,maxImpl:()=>zT,maximumImpl:()=>LT,minimumImpl:()=>$T,multiplyImpl:()=>eI,negImpl:()=>rN,notEqualImpl:()=>dN,prodImpl:()=>SN,raggedGatherImpl:()=>NN,raggedRangeImpl:()=>DN,raggedTensorToTensorImpl:()=>PN,rangeImpl:()=>VN,rsqrtImpl:()=>JN,scatterImpl:()=>nR,sigmoidImpl:()=>i_,simpleAbsImpl:()=>I_,sliceImpl:()=>oE,sparseFillEmptyRowsImpl:()=>AR,sparseReshapeImpl:()=>kR,sparseSegmentReductionImpl:()=>_R,sqrtImpl:()=>RR,staticRegexReplaceImpl:()=>LR,stridedSliceImpl:()=>jR,stringNGramsImpl:()=>HR,stringSplitImpl:()=>XR,stringToHashBucketFastImpl:()=>YR,subImpl:()=>NI,tileImpl:()=>sO,topKImpl:()=>oO,transposeImpl:()=>z_,uniqueImpl:()=>fO});var _=__webpack_require__(7999),E=__webpack_require__(9043);_.A.prototype._CONST=Object.freeze({N:{VIDEO_W:{DESKTOP:208,MOBILE:144},VIDEO_MARGIN:"10px",GAZE_CALIBRATION:{R:40,MARGIN:32,BORDER:8,CENTER_EXTRA_CHECK_OFFSET:2,MID_EXTRA_CHECK_OFFSET:6},PPI_DONT_USE:127.7,PD_DONT_USE:6.4,VIEW_DIST_DONT_USE:40},S:{AUTO:"AUTO",CLICK_TYPE:{MOUSE:"mouse",TOUCH:"touch"}},COLOR:{LIGHT_GREY:"#cccccc",ORANGE:"#ff9a00",DARK_RED:"#ac0d0d",RED:"#ee0000"},LTR:"LTR",RTL:"RTL",VIEW_METHOD:{B:"BlindSpot",F:"FaceMesh"},IN_TO_CM:2.54,UNITS:{CM:"cm",IN_D:"inDecimal",IN_F:"inFractional"}}),_.A.prototype._debuggerDefault=Object.freeze({date:new Date("July 20, 69 20:17:40 GMT+00:00"),timestamp:performance.now(),screenSize:{value:{screenWidthCm:28.6,screenHeightCm:17.9,screenPhysicalPpi:250,screenPpi:125,screenDiagonalCm:33.8,screenDiagonalIn:13.3}},measureDistance:{value:40,method:"BlindSpot"},trackDistance:{value:{viewingDistanceCm:40,PDCm:6.4,nearPointCm:{x:0,y:0},latencyMs:50},method:"FaceMesh"},trackGaze:{value:{x:screen.width/2,y:screen.height/2,latencyMs:50}},performance:{value:{computeArrayFillMHz:(0,E.Nh)(.5,3),computeRandomMHz:(0,E.Nh)(5,3),idealFps:60,stressFps:60}}});var I=__webpack_require__(115),T=__webpack_require__.n(I),N=__webpack_require__(3389),R=__webpack_require__.n(N),O=__webpack_require__(402),D=__webpack_require__.n(O),M=__webpack_require__(880),z=__webpack_require__.n(M),F=__webpack_require__(3282),B=__webpack_require__.n(F);const L=(e,t)=>{e.style.top=Math.round(t.querySelector(".calibration-instruction").getBoundingClientRect().bottom)+25+"px"},P=e=>{const t=e.value/e.max;e.style.background=`linear-gradient(90deg, #ffc772, #ffc772 ${100*t}%, #fff ${100*t}%)`};var U=__webpack_require__(9853),V=__webpack_require__(359),W=__webpack_require__(9677);_.A.prototype._displaySize=function(){if(!this.checkInitialized())return;const e={value:{displayWidthPx:screen.width,displayHeightPx:screen.height,windowWidthPx:window.innerWidth,windowHeightPx:window.innerHeight},timestamp:performance.now()};this.displayData.length&&T()(e.value,this.displayData[this.displayData.length-1].value)||(this.newDisplayData=e)};const j={card:R(),arrow:D(),usba:z(),usbc:B()},G={card:3.375,usba:.787402,usbc:.787402};_.A.prototype.screenSize=function(e={},t){this.checkInitialized()&&((0,E.$k)(),e=Object.assign({fullscreen:!1,repeatTesting:1,decimalPlace:1,defaultObject:"card",headline:"🖥️ "+W.H.RC_screenSizeTitle[this.L],description:W.H.RC_screenSizeIntro[this.L],check:!1,checkCallback:null},e),this.getFullscreen(e.fullscreen),["usba","usbc","card"].includes(e.defaultObject)||(e.defaultObject="card"),e.description+=`

          ${W.H.RC_screenSizeHave[this.L].replace("xxx",``)}`,this._addBackground(),this._addBackgroundText(e.headline,e.description),this._addCreditOnBackground(W.H.RC_screenSizeCredit[this.L]),function(e,t,n,s){const r=((e,t,n)=>{const s=document.createElement("input");return s.id="rc-size-slider",s.className="rc-slider",s.type="range",s.min=t,s.max=n,s.value=Math.max(Math.min(Math.round(100*Math.random()),80),20),s.step=.1,L(s,e),P(s),e.appendChild(s),s})(t,0,100),i=(t,n)=>{if("rc-slider"===t.target.className&&"rc-size-slider"===t.target.id&&(n===e._CONST.S.CLICK_TYPE.MOUSE&&1===t.which||n===e._CONST.S.CLICK_TYPE.TOUCH)){t.target.style.cursor="grabbing",c.setAttribute("fill",e._CONST.COLOR.ORANGE);const s=()=>{r.style.cursor="grab",c.setAttribute("fill",e._CONST.COLOR.LIGHT_GREY),document.removeEventListener("mouseup",s,!1)};n===e._CONST.S.CLICK_TYPE.MOUSE?document.addEventListener("mouseup",s,!1):n===e._CONST.S.CLICK_TYPE.TOUCH&&document.addEventListener("touchend",s,!1)}},a=e=>{i(e,"mouse")},o=e=>{i(e,"touch")};document.addEventListener("mousedown",a,!1),document.addEventListener("touchstart",o,!1);const l=K(["card","arrow","usba","usbc"],t);let u=n.defaultObject;document.getElementById("matching-obj").addEventListener("change",(e=>{$(e.target.value,l,d),u=e.target.value})),$("card",l);const c=document.getElementById("size-arrow-fill");c.setAttribute("fill",e._CONST.COLOR.LIGHT_GREY);const h={width:l.arrow.getBoundingClientRect().width,height:l.arrow.getBoundingClientRect().height},d=()=>{q(e,r,l.card,l.arrow,h),H(r,l.usba),H(r,l.usbc)};d();const p=()=>{P(r),d()},f=new ResizeObserver((()=>{d(),L(r,t),Z(l,r)}));f.observe(t);const m=()=>{document.removeEventListener("mousedown",a,!1),document.removeEventListener("touchstart",o,!1),document.removeEventListener("input",p,!1),f.unobserve(t),e._removeBackground(),(0,U.l)(y)},g=()=>{const t=(l[u].getBoundingClientRect().width||Number.parseInt(l[u].style.width))/G[u],r=n.decimalPlace,i=X(t,r);e.newScreenData=i,m(),n.check?e._checkScreenSize(s,i,n.checkCallback):(0,E.nB)(s,i)};r.addEventListener("input",p,!1);const y=(0,U.m)({Escape:m,Enter:g," ":g});(0,V.F)(e.L,e.background,{go:g,cancel:m},e.params.showCancelButton),$(u,l,d)}(this,this.background,e,t))};const q=(e,t,n,s,r)=>{const i=(t.offsetWidth-30)*(t.value/100)*(window.innerWidth<480?2:1)+15;n.style.width=i+"px";const a=n.getBoundingClientRect();0!==a.width&&(s.style.left=a.left+i+"px",s.style.top=a.top+e.background.scrollTop+(.63*i-r.height)/2+"px")},H=(e,t)=>{t.style.width=(0,E.Ew)(Math.pow(e.value,1.5),0,1e3,50,400)+"px"},K=(e,t)=>{const n=document.getElementsByClassName("size-obj");for(;n.length;)n[0].parentNode.removeChild(n[0]);const s={};for(const n of e){let e=document.createElement("div");t.appendChild(e),e.outerHTML=j[n],e=document.getElementById("size-"+n),e.setAttribute("preserveAspectRatio","none"),e.style.visibility="hidden",s[n]=e}return Z(s,document.querySelector("#rc-size-slider")),s},$=(e,t,n)=>{for(const n in t)t[n].style.visibility=n===e?"visible":"hidden";t.arrow.style.visibility="hidden",(0,E.nB)(n)},X=(e,t)=>{const n={value:{screenWidthCm:(0,E.Nh)(2.54*window.screen.width/e,t),screenHeightCm:(0,E.Nh)(2.54*window.screen.height/e,t),screenPhysicalPpi:(0,E.Nh)(e*window.devicePixelRatio,t),screenPpi:(0,E.Nh)(e,t)},timestamp:performance.now()};return n.value.screenDiagonalCm=(0,E.Nh)(Math.hypot(n.value.screenWidthCm,n.value.screenHeightCm),t),n.value.screenDiagonalIn=(0,E.Nh)(n.value.screenDiagonalCm/2.54,t),n},Z=(e,t)=>{for(const n in e)e[n].style.top=t.getBoundingClientRect().top+50+"px"};var Y=__webpack_require__(8465),Q=__webpack_require__.n(Y);const J=32,ee=3,te=(e,t)=>"left"===e?.1*t:.9*t;function ne(e,t,n){e.fillStyle="#000",e.fillRect(t-(J>>1),n-(ee>>1),J,ee),e.fillRect(t-(ee>>1),n-(J>>1),ee,J)}const se=30;function re(e,t,n){return"left"===e?[t+(J+se)/2,n-(se>>1)]:[se>>1,t-(J+se)/2]}const ie=(e,{showIcon:t})=>({icon:t?"info":void 0,allowEscapeKey:!1,allowEnterKey:!1,allowOutsideClick:!1,showConfirmButton:!0,confirmButtonText:W.H.RC_ok[e.L],showClass:{popup:"fadeInUp",icon:""},hideClass:{popup:"fadeOutDown"},iconColor:e._CONST.COLOR.ORANGE,confirmButtonColor:"#aaa",customClass:{popup:"my__swal2__container",icon:"my__swal2__icon",title:"my__swal2__title",htmlContainer:`my__swal2__html rc-lang-${e.LD.toLowerCase()}`,confirmButton:"rc-button rc-go-button"}});let ae;"mocha"!==_._&&(ae=__webpack_require__(477).l);function oe(e,t,n=!1,s){const r=t.control;let i=e._CONST.N.PPI_DONT_USE;e.screenPpi&&(i=e.screenPpi.value);let a=!0,o=[],l=0;const u=document.createElement("div");u.innerHTML='',e.background.appendChild(u),e._constructFloatInstructionElement("blind-spot-instruction",W.H.RC_distanceTrackingCloseL[e.L]),e._addCreditOnBackground(W.H.RC_viewingBlindSpotCredit[e.L]);const c=document.querySelector("#blind-spot-canvas"),h=c.getContext("2d"),d=document.getElementById("blind-spot-instruction");let p="left";e._setFloatInstructionElementPos(p,16);let f,m=te(p,c.width);const g=()=>{c.style.width=(c.width=window.innerWidth)+"px",c.style.height=(c.height=window.innerHeight)+"px",m=te(p,c.width),f=re(p,m,c.width)},y=new ResizeObserver((()=>{g()}));y.observe(e.background),g();let b=f["left"===p?0:1],w=b,v=e._CONST.COLOR.DARK_RED,x="left"===p?1:-1;const A=(t=!0)=>{a=!1,r&&function(e,t){document.getElementById(e).removeEventListener("mousedown",t),document.getElementById(e).removeEventListener("touchstart",t)}("blind-spot-canvas",F),y.unobserve(e.background),e._removeBackground(),!e._trackingSetupFinishedStatus.distance&&t&&(e._trackingSetupFinishedStatus.distance=!0,e.gazeTracker.checkInitialized("distance",!1)&&e.endDistance()),(0,U.l)(D),(0,U.l)(M,"keyup")},C=async()=>{if("mocha"!==_._&&ae(),l+=1,o.push({dist:(0,E.Nh)(le(b,m,i),t.decimalPlace),v:x,closedEyeSide:p,crossX:m,circleX:b,ppi:i,timestamp:performance.now()}),2===Math.floor(l/t.repeatTesting))if(function(e){const t=[],n=[];for(const s of e)"left"===s.closedEyeSide?t.push(s.dist):n.push(s.dist);const s=(0,E.G8)(t),r=(0,E.G8)(n);return Math.abs(s-r)<.2*Math.min(s,r)}(o)){const r=e.newViewingDistanceData={value:(0,E.Nh)((0,E.JZ)(ue(o)),t.decimalPlace),timestamp:performance.now(),method:e._CONST.VIEW_METHOD.B,raw:{...o}};let i;n?(i="trackDistance",a=!1,y.unobserve(e.background),(0,U.l)(D),(0,U.l)(M,"keyup")):(i="measureDistance",A(!1)),t.check?await e._checkDistance(s,r,i,t.checkCallback):(0,E.nB)(s,r)}else{l=0;const t=o[0];O(t.v,t.closedEyeSide,t.crossX),o=[],Q().fire({...ie(e,{showIcon:!1}),icon:void 0,html:W.H.RC_viewingBlindSpotRejected[e.L],allowEnterKey:!0})}else l%t.repeatTesting==0?("left"===p?(p="right",d.innerHTML=W.H.RC_distanceTrackingCloseR[e.L]):(p="left",d.innerHTML=W.H.RC_distanceTrackingCloseL[e.L]),e._setFloatInstructionElementPos(p,16),O(1,p,te(p,c.width),!1,!0)):(x=-x,R(p,f))};let k=!1,S=null;const I=t=>{k||(T(),k=!0,v=e._CONST.COLOR.RED,S=setInterval((()=>{"ArrowLeft"===t.key?(b-=10,N()):"ArrowRight"===t.key&&(b+=10,N())}),30))},T=()=>{k=!1,v=e._CONST.COLOR.DARK_RED,S&&(clearInterval(S),S=null)},N=()=>{w=(0,E.AU)(b,...f),b=w},R=(e,t)=>{const n=t["left"===e?0:1],s=Math.abs(t[1]-t[0])/4;let r=(0,E.Av)(n-s,n+s);(r-t[0])*(r-t[1])>0&&(r=2*n-r),b=r},O=(t,n,s,r=!0,i=!0)=>{x=t,p=n,m=s,f=re(p,m,c.width),r&&(d.innerHTML="left"===p?W.H.RC_distanceTrackingCloseL[e.L]:W.H.RC_distanceTrackingCloseR[e.L],e._setFloatInstructionElementPos(p,16)),i&&(b=f["left"===p?0:1],R(n,f))},D=(0,U.m)({Escape:t.showCancelButton?A:void 0,Enter:C," ":C,ArrowLeft:r?I:E.Md,ArrowRight:r?I:E.Md}),M=(0,U.m)({ArrowLeft:r?T:E.Md,ArrowRight:r?T:E.Md},"keyup");(0,V.F)(e.L,e.background,{go:C,cancel:t.showCancelButton?A:void 0,custom:{callback:()=>{Q().fire({...ie(e,{showIcon:!1}),icon:void 0,html:W.H.RC_viewingDistanceIntroLiMethod[e.L],allowEnterKey:!0})},content:W.H.RC_viewingDistanceIntroTitle[e.L]}},e.params.showCancelButton);const z={x:null,circleX:null},F=t=>{const n=!(!t.touches||!t.touches[0]);let s,r;if(n||t.preventDefault(),n?(s=t.touches[0].clientX,r=t.touches[0].clientY):(s=t.clientX,r=t.clientY),i=b,a=c.height/2,o=s,l=r,(0,E.ll)(i,a,o,l)>1){z.x=s,z.circleX=b;const r=document.getElementById("blind-spot-canvas");v=e._CONST.COLOR.RED,r.classList.replace("cursor-grab","cursor-grabbing");const i=e=>{let s;t.preventDefault(),e.preventDefault(),s=n?e.touches[0].clientX:e.clientX,b=z.circleX+s-z.x,b=(0,E.AU)(b,...re(p,m,c.width))};n?document.addEventListener("touchmove",i):document.addEventListener("mousemove",i);const a=()=>{n?(document.removeEventListener("touchend",a),document.removeEventListener("touchmove",i)):(document.removeEventListener("mouseup",a),document.removeEventListener("mousemove",i)),z.x=null,z.circleX=null,v=e._CONST.COLOR.DARK_RED,r.classList.replace("cursor-grabbing","cursor-grab")};n?document.addEventListener("touchend",a):document.addEventListener("mouseup",a)}var i,a,o,l};r&&function(e,t){document.getElementById(e).addEventListener("mousedown",t),document.getElementById(e).addEventListener("touchstart",t)}("blind-spot-canvas",F);const B=performance.now();let L=B;const P=()=>{h.clearRect(0,0,c.width,c.height),ne(h,m,c.height/2),L=performance.now(),function(e,t,n,s,r,i,a=!0){t.beginPath(),t.arc(n,s,se>>1,0,2*Math.PI),t.closePath(),t.fillStyle=a?r%125<63?i:"#fff":i,t.fill()}(0,h,b,c.height/2,Math.round(L-B),v,t.sparkle),r||(b+=5*x,N()),a?requestAnimationFrame(P):h.clearRect(0,0,c.width,c.height)};requestAnimationFrame(P)}function le(e,t,n){return Math.abs(t-e)/n/(s=15,Math.tan(s*Math.PI/180))/.3937;var s}function ue(e){const t=[];for(const n of e)t.push(n.dist);return t}function ce(e,t={framerate:60,break:!1}){let n=0,s=0,r=0;const i=1e3/t.framerate,a=()=>{t.break||requestAnimationFrame(a),n=performance.now(),r=n-s,r>i&&(s=n-r%i,e())};requestAnimationFrame(a)}_.A.prototype.measureDistance=function(e={},t){if(!this.checkInitialized())return;let n;(0,E.$k)(),n=(void 0!==e.control&&e.control,W.H.RC_viewingDistanceIntroLiMethod[this.L]),e=Object.assign({fullscreen:!1,repeatTesting:1,sparkle:!0,decimalPlace:1,control:!0,headline:"📏 "+W.H.RC_viewingDistanceTitle[this.L],description:n,check:!1,checkCallback:!1,showCancelButton:!0},e),this.getFullscreen(e.fullscreen),this._addBackground(),this._replaceBackground((0,E.$O)(e.headline,null,!0,"")),oe(this,e,!1,t)};var he=__webpack_require__(2646);const de=async e=>{if(navigator.permissions&&navigator.permissions.query)return navigator.permissions.query({name:"camera"}).then((async t=>{if("prompt"===t.state)return await Q().fire({...ie(e,{showIcon:!1}),icon:void 0,imageUrl:"data:image/png;base64,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",imageWidth:480,imageAlt:"Please allow camera access",html:W.H.RC_requestCamera[e.L]+"
          "+W.H.RC_privacyCamera[e.L]})})).catch((e=>{}))},pe={video:!1};_.A.prototype.trackDistance=async function(e={},t,n){if(!this.checkInitialized())return;let s;if((0,E.$k)(),!1===this.gazeTracker.webgazer.getTracker().modelLoaded&&this.gazeTracker.webgazer.getTracker().loadModel(),s=(void 0!==e.control&&e.control,W.H.RC_viewingDistanceIntroLiMethod[this.L]),e=Object.assign({fullscreen:!1,repeatTesting:1,sparkle:!0,pipWidthPx:this._CONST.N.VIDEO_W[this.isMobile.value?"MOBILE":"DESKTOP"],showVideo:!0,showFaceOverlay:!1,decimalPlace:1,framerate:3,desiredDistanceCm:void 0,desiredDistanceTolerance:1.2,desiredDistanceMonitor:!1,desiredDistanceMonitorCancelable:!1,desiredDistanceMonitorAllowRecalibrate:!0,nearPoint:!0,showNearPoint:!1,control:!0,headline:"📏 "+W.H.RC_distanceTrackingTitle[this.L],description:W.H.RC_distanceTrackingIntroStart[this.L]+(0,he.G)(this.L)+s+(0,he.G)(this.L)+W.H.RC_distanceTrackingIntroEnd[this.L],check:!1,checkCallback:null,showCancelButton:!0},e),this.getFullscreen(e.fullscreen),this.gazeTracker.checkInitialized("distance"))return this.gazeTracker._toFixedN=e.decimalPlace,this.showNearPoint(e.showNearPoint),this.showVideo(e.showVideo),void this.showFaceOverlay(e.showFaceOverlay);this._addBackground(),this._constructFloatInstructionElement("gaze-system-instruction",W.H.RC_starting[this.L]),await de(this);const r=e=>{this.showVideo(pe.video),pe.video=!1,this.gazeTracker.checkInitialized("gaze",!1)&&this.showGazer(i),(0,E.nB)(t,e),ye.current=e},i=this.gazeTracker.webgazer.params.showGazeDot,a=async()=>{this._addBackground(),this._replaceBackground((0,E.$O)(e.headline,null,!0,"")),this.gazeTracker.checkInitialized("gaze",!1)&&this.showGazer(!1),oe(this,e,!0,r)};ge.pipWidthPx=e.pipWidthPx,ge.decimalPlace=e.decimalPlace,ge.framerate=e.framerate,ge.nearPoint=e.nearPoint,ge.showNearPoint=e.showNearPoint,ge.desiredDistanceCm=e.desiredDistanceCm,ge.desiredDistanceTolerance=e.desiredDistanceTolerance,ge.desiredDistanceMonitor=e.desiredDistanceMonitor,ge.desiredDistanceMonitorCancelable=e.desiredDistanceMonitorCancelable,ge.desiredDistanceMonitorAllowRecalibrate=e.desiredDistanceMonitorAllowRecalibrate,pe.video=e.showVideo,this.gazeTracker._init({toFixedN:1,showVideo:!0,showFaceOverlay:e.showFaceOverlay},"distance"),this._trackingSetupFinishedStatus.distance=!1;const o={options:e,callbackStatic:t,callbackTrack:n};e.nearPoint?fe(this,(()=>this._measurePD({},a)),n,o):fe(this,a,n,o)};const fe=async(e,t,n,s)=>{await e.gazeTracker.webgazer.getTracker().loadModel(),e.gazeTracker.beginVideo({pipWidthPx:ge.pipWidthPx},(()=>{e._removeFloatInstructionElement(),(0,E.nB)(t),Se(e,ge,n,s)}))},me=(e,t)=>Math.hypot(e.x-t.x,e.y-t.y,e.z-t.z),ge={pipWidthPx:0,decimalPlace:2,framerate:3,nearPoint:!0,showNearPoint:!1,desiredDistanceCm:void 0,desiredDistanceTolerance:1.2,desiredDistanceMonitor:!1,desiredDistanceMonitorCancelable:!1,desiredDistanceMonitorAllowRecalibrate:!0},ye={current:null};let be,we;const ve={framerate:20,break:!0};let xe=null,Ae=!1,Ce=0,ke=1;const Se=async(e,t,n,s)=>{const r=document.querySelector("#webgazerVideoCanvas");(0,E.yy)(1e3).then((async()=>{let i,a;Ce=0,ke=1;i=await e.gazeTracker.webgazer.getTracker().model;const o=e.screenPpi?e.screenPpi.value:e._CONST.N.PPI_DONT_USE;!e.screenPpi&&t.nearPoint,t.nearPoint&&t.showNearPoint&&(xe=document.createElement("div"),xe.id="rc-near-point-dot",document.body.appendChild(xe),Object.assign(xe.style,{display:"block",zIndex:999999,width:"10px",height:"10px",background:"green",position:"fixed",top:"-15px",left:"-15px"})),Ae=!1;const{desiredDistanceCm:l,desiredDistanceTolerance:u,desiredDistanceMonitor:c,desiredDistanceMonitorCancelable:h,desiredDistanceMonitorAllowRecalibrate:d}=t;e._distanceTrackNudging.distanceCorrectEnabled=!0,e._distanceTrackNudging.distanceDesired=l,e._distanceTrackNudging.distanceAllowedRatio=u,we=async()=>{const u=performance.now();if(a=await i.estimateFaces(r),a.length){e._trackingVideoFrameTimestamps.distance+=u;const i=a[0].keypoints;if(5===ke){if(Ce+=me(i[133],i[362]),Ce/=5,e._trackingVideoFrameTimestamps.distance/=5,null!==ye.current){if(!be){const t=Ee(o),n=Math.sqrt(Math.pow(ye.current.value,2)-Math.pow(t,2));ye.current.value=n,be=Ce*ye.current.value,s.options.check||e._removeBackground(),e._trackingSetupFinishedStatus.distance=!0,Ae=!0}const a=performance.now(),u=Math.round(a-e._trackingVideoFrameTimestamps.distance),p=e.newViewingDistanceData={value:(0,E.Nh)(be/Ce,t.decimalPlace),timestamp:a,method:e._CONST.VIEW_METHOD.F,latencyMs:u};let f;(Ae||c)&&(l&&e.nudgeDistance(h,d,s),Ae=!1),t.nearPoint&&(f=_e(e,t,r,i,Ce,a,o,u)),n&&"function"==typeof n&&(e.gazeTracker.defaultDistanceTrackCallback=n,n({value:{viewingDistanceCm:p.value,nearPointCm:f?f.value:[null,null],latencyMs:u},timestamp:a,method:e._CONST.VIEW_METHOD.F}))}Ce=0,ke=1,e._trackingVideoFrameTimestamps.distance=0}else Ce+=me(i[133],i[362]),++ke}},ve.break=!1,ve.framerate=5*t.framerate,ce(we,ve)}))},_e=(e,t,n,s,r,i,a,o)=>{const l=((e,t,n)=>[(-t.x-n.x+e.videoWidth)/2,(-t.y-n.y+e.videoHeight)/2])(n,s[133],s[362]);l.forEach(((t,n)=>{l[n]=(e.PDCm?e.PDCm.value:e._CONST.N.PD_DONT_USE)*t/r}));const u=e.newNearPointData={value:{x:(0,E.Nh)(l[0],t.decimalPlace),y:(0,E.Nh)(l[1]+screen.height/2*2.54/a,t.decimalPlace),latencyMs:o},timestamp:i};if(t.showNearPoint){const e=u.value.x*a/2.54,t=u.value.y*a/2.54;Object.assign(xe.style,{left:screen.width/2-window.screenLeft+e-5+"px",top:screen.height/2-window.screenTop-(window.outerHeight-window.innerHeight)-t-5+"px"})}return u};_.A.prototype.pauseDistance=function(){return this.gazeTracker.checkInitialized("distance",!0)&&!this._trackingPaused.distance?(ve.break=!0,xe&&(xe.style.display="none"),this._trackingVideoFrameTimestamps.distance=0,this._trackingPaused.distance=!0,this.pauseNudger(),this):null},_.A.prototype.resumeDistance=function(){return this.gazeTracker.checkInitialized("distance",!0)&&this._trackingPaused.distance?(ve.break=!1,xe&&(xe.style.display="block"),Ce=0,ke=1,this._trackingVideoFrameTimestamps.distance=0,ce(we,ve),this._trackingPaused.distance=!1,this.resumeNudger(),this):null},_.A.prototype.endDistance=function(e=!1,t=!0){return this.gazeTracker.checkInitialized("distance",!0)?(ve.break=!0,ve.framerate=20,ge.pipWidthPx=0,ge.decimalPlace=2,ge.framerate=3,ge.nearPoint=!0,ge.showNearPoint=!1,ge.desiredDistanceCm=void 0,ge.desiredDistanceTolerance=1.2,ge.desiredDistanceMonitor=!1,ge.desiredDistanceMonitorCancelable=!1,ge.desiredDistanceMonitorAllowRecalibrate=!0,ye.current=null,be=null,we=null,Ae=!1,this._trackingVideoFrameTimestamps.distance=0,this._trackingPaused.distance=!1,xe&&(document.body.removeChild(xe),xe=null),this.endNudger(),t&&this.gazeTracker.end("distance",e),this):null},_.A.prototype.getDistanceNow=async function(e=null){if(!this.checkInitialized()||!this.gazeTracker.checkInitialized("distance",!0)||!ve.break)return;const t=e||this.gazeTracker.defaultDistanceTrackCallback,n=document.querySelector("#webgazerVideoFeed"),s=await this.gazeTracker.webgazer.getTracker().model,r=performance.now(),i=await s.estimateFaces(n);if(i.length){const e=i[0].scaledMesh,s=me(e[133],e[362]),a=performance.now(),o=a-r,l=this.newViewingDistanceData={value:(0,E.Nh)(be/s,ge.decimalPlace),timestamp:a,method:this._CONST.VIEW_METHOD.F,latencyMs:o};let u;return ge.nearPoint&&(u=_e(this,ge,n,e,s,a,this.screenPpi?this.screenPpi.value:this._CONST.N.PPI_DONT_USE,o)),(0,E.nB)(t,{value:{viewingDistanceCm:l.value,nearPointCm:u?u.value:null,latencyMs:o},timestamp:a,method:this._CONST.VIEW_METHOD.F}),l}return null},_.A.prototype.showNearPoint=function(e=!0){if(this.gazeTracker.checkInitialized("distance",!1)){const t=document.querySelector("#rc-near-point-dot");t&&(t.display=e?"block":"none")}};const Ee=e=>2.54*(window.screen.height/2/e);_.A.prototype.nudgeDistance=function(e=!1,t=!0,n){if(!this.checkInitialized())return;const{distanceDesired:s,distanceAllowedRatio:r}=this._distanceTrackNudging;if(s){if(this.viewingDistanceCm&&this.viewingDistanceCm.method===this._CONST.VIEW_METHOD.F){if(Ie(this.viewingDistanceCm.value,s,r))return!0;{const i=()=>{this._removeNudger(),clearInterval(this._distanceTrackNudging.distanceCorrecting),this._distanceTrackNudging.distanceCorrecting=null,(0,U.l)(o)},a=async()=>{this.endDistance(),this._addBackground(),await(0,E.yy)(2e3),this.trackDistance(n.options,n.callbackStatic,n.callbackTrack)},o=(0,U.m)(e?{Escape:this.endNudger}:{});if(null===this._distanceTrackNudging.distanceCorrecting&&this._distanceTrackNudging.distanceCorrectEnabled){const[n,l,u]=Te(this);let c=e?{cancel:()=>{this.endNudger()}}:{};t&&(c={...c,custom:{callback:a,content:W.H.RC_distanceTrackingRedo[this.L]}}),(e||t)&&(0,V.F)(this.L,this.nudger,c,this.params.showCancelButton);const h=()=>{n.innerHTML=Ne(this,this.viewingDistanceCm.value,s),l.innerHTML=Math.round(this.viewingDistanceCm.value),u.innerHTML=Math.round(s)};h(),this._distanceTrackNudging.distanceCorrecting=setInterval((()=>{h(),Ie(this.viewingDistanceCm.value,s,r)&&(i(),(0,U.l)(o))}),200)}else this._distanceTrackNudging.distanceCorrecting&&!this._distanceTrackNudging.distanceCorrectEnabled&&i();return!1}}return!1}};const Ie=(e,t,n)=>{if(!Re(n))return!1;const s=t*n,r=t/n;return e<=Math.max(s,r)&&e>=Math.min(s,r)},Te=e=>(e._addNudger(`
          \n

          \n

          ${W.H.RC_distanceTrackingGuide[e.L].replace("xx1",'').replace("xx2",'')}

          \n
          \n `),[document.querySelector("#rc-distance-correct-instruction"),document.querySelector("#rc-distance-now"),document.querySelector("#rc-distance-desired")]),Ne=(e,t,n)=>t>=n?W.H.RC_distanceTrackingMoveCloser[e.L]:W.H.RC_distanceTrackingMoveFurther[e.L],Re=e=>!isNaN(e)&&(e>0&&1!==e);_.A.prototype.setDistanceDesired=function(e,t=null){return this._distanceTrackNudging.distanceDesired=e,t&&Re(t)&&(this._distanceTrackNudging.distanceAllowedRatio=t),e},_.A.prototype._addNudger=function(e){if(null!==this.nudger)return;let t=document.getElementById("calibration-nudger");return t||(t=document.createElement("div"),t.id="calibration-nudger",t.className=`calibration-nudger rc-lang-${this.LD.toLowerCase()}`,document.body.classList.add("lock-view"),document.body.appendChild(t),t.style.background=this.params.backgroundColor),e&&(t.innerHTML=e),this._nudger.element=t,this.nudger},_.A.prototype._removeNudger=function(){const e=document.getElementById("calibration-nudger");return!!e&&(document.body.classList.remove("lock-view"),document.body.removeChild(e),this._nudger={element:null},!0)},_.A.prototype.pauseNudger=function(){document.body.classList.add("hide-nudger")},_.A.prototype.resumeNudger=function(){document.body.classList.remove("hide-nudger")},_.A.prototype.endNudger=function(){return!!this._distanceTrackNudging.distanceCorrectEnabled&&(this._removeNudger(),this._distanceTrackNudging.distanceCorrectEnabled=!1,this._distanceTrackNudging.distanceCorrecting&&clearInterval(this._distanceTrackNudging.distanceCorrecting),this._distanceTrackNudging.distanceCorrecting=null,this._distanceTrackNudging.distanceDesired=null,this._distanceAllowedRatio=null,!0)};function Oe(e,t,n,s,r){const i=setInterval((()=>{const a=document.getElementById("webgazerVideoContainer");a&&(clearInterval(i),a.style.height=t/Number.parseInt(a.style.width)*Number.parseInt(a.style.height)+"px",a.style.width=`${t}px`,a.style.opacity=n,s.setVideoViewerSize(Number.parseInt(a.style.width),Number.parseInt(a.style.height)),De(e,a),setTimeout((()=>{e.videoOpacity(),e.isMobile.value?a.style.transition="right 0.5s, top 0.5s, width 0.5s, height 0.5s, border-radius 0.5s":a.style.transition="left 0.5s, bottom 0.5s, width 0.5s, height 0.5s, border-radius 0.5s",(0,E.nB)(r)}),700))}),100)}function De(e,t){e.isMobile.value?(t.style.left="unset",t.style.right=e._CONST.N.VIDEO_MARGIN,t.style.top=e._CONST.N.VIDEO_MARGIN,t.style.bottom="unset"):(t.style.left=e._CONST.N.VIDEO_MARGIN,t.style.right="unset",t.style.top="unset",t.style.bottom=e._CONST.N.VIDEO_MARGIN)}const Me={video:!1,videoWidth:0,videoHeight:0,opacity:1,gaze:!1,faceOverlay:!1},ze=.9;_.A.prototype._measurePD=async function(e={},t){if(!this.checkInitialized())return;(0,E.$k)(),e=Object.assign({fullscreen:!1,headline:"👁️ "+W.H.RC_nearPointTitle[this.L],description:W.H.RC_nearPointIntro[this.L],shortDescription:W.H.RC_nearPointIntro[this.L]},e),this.getFullscreen(e.fullscreen),await(0,E.yy)(1e3),this._replaceBackground(),this._replaceBackground((0,E.$O)(e.headline,e.shortDescription,!0));const n=this.screenPpi?this.screenPpi.value:this._CONST.N.PPI_DONT_USE,[s,r]=Fe(this),[i,a]=Pe(this,n,s,r),o=(e=!0)=>{i.removeEventListener("mousedown",a),this._removeBackground(),this.showVideo(Me.video),this.showGazer(Me.gaze),this.showFaceOverlay(Me.faceOverlay),this.gazeTracker.webgazer.showFaceFeedbackBox(!0),Object.assign(document.querySelector("#webgazerVideoContainer").style,{height:Me.videoHeight,width:Me.videoWidth,opacity:Me.opacity,borderRadius:"5px"}),De(this,document.querySelector("#webgazerVideoContainer")),Object.assign(document.querySelector("#webgazerVideoFeed").style,{height:Me.videoHeight,width:Me.videoWidth,top:"unset",transform:"scale(-1, 1)",transformOrigin:"unset"}),Me.video=!1,Me.videoWidth=0,Me.videoHeight=0,Me.opacity=1,Me.gaze=!1,Me.faceOverlay=!1,!this._trackingSetupFinishedStatus.distance&&e&&(this._trackingSetupFinishedStatus.distance=!0,this.endDistance()),(0,U.l)(u)},l=()=>{if(-100!==Le){const e={value:2.54*Le/n,timestamp:performance.now()};return this.newPDData=e,o(!1),(0,E.nB)(t,e)}},u=(0,U.m)({Escape:o,Enter:l," ":l});(0,V.F)(this.L,this.background,{go:l,cancel:o},this.params.showCancelButton),setTimeout((()=>{Q().fire({...ie(this,{showIcon:!1}),icon:void 0,imageUrl:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAADwCAIAAABXFyDtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGx2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDYgNzkuZGFiYWNiYiwgMjAyMS8wNC8xNC0wMDozOTo0NCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIyLjQgKE1hY2ludG9zaCkiIHhtcDpDcmVhdGVEYXRlPSIyMDIxLTA3LTI0VDExOjU3OjU0LTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMS0wOC0yNFQyMjoyNDo1MC0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMS0wOC0yNFQyMjoyNDo1MC0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpiMTIzYjE3ZS0wMzUzLTQ4YWEtOGJkYy0zNTk0YmRkODBjMjEiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo4MjdjNGM2Yi1jMzExLTE3NGQtYTgxZC0zZGUyN2JmMTgxYjAiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNWZiNzMxNi1hNDFiLTQyZTYtYmJiNy0yYTY2ODgxMzI1YTAiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjA1ZmI3MzE2LWE0MWItNDJlNi1iYmI3LTJhNjY4ODEzMjVhMCIgc3RFdnQ6d2hlbj0iMjAyMS0wNy0yNFQxMTo1Nzo1NC0wNDowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIyLjQgKE1hY2ludG9zaCkiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmQ3MjQ3ZjY2LTllZjItNDgzNy1hMGYzLWFmNzdmZDBjNDUxMyIgc3RFdnQ6d2hlbj0iMjAyMS0wNy0yNFQxMjozNTo1My0wNDowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIyLjQgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmIxMjNiMTdlLTAzNTMtNDhhYS04YmRjLTM1OTRiZGQ4MGMyMSIgc3RFdnQ6d2hlbj0iMjAyMS0wOC0yNFQyMjoyNDo1MC0wNDowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIyLjQgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+e9Ws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",imageWidth:480,imageAlt:"Measurement Instruction",html:e.description})}),700)};const Fe=e=>{const t=document.querySelector("#webgazerVideoFeed");if(t)return Be(e,t,document.querySelector("#webgazerVideoCanvas"),document.querySelector("#webgazerVideoContainer"))},Be=(e,t,n,s,r=null)=>{r||t.captureStream&&(r=t.captureStream());const i=.3*window.innerWidth/Number.parseInt(t.style.width)*Number.parseInt(t.style.height);Me.videoWidth=s.style.width,Me.videoHeight=s.style.height,Me.opacity=s.style.opacity;const a={height:Math.round(i)+"px",width:Math.round(window.innerWidth*ze)+"px",opacity:1,borderRadius:"15px"};Object.assign(s.style,a),e.isMobile.value?Object.assign(s.style,{right:Math.round(.5*window.innerWidth*(1-ze))+"px",top:Math.round(.5*(window.innerHeight-i))+"px"}):Object.assign(s.style,{left:Math.round(.5*window.innerWidth*(1-ze))+"px",bottom:Math.round(.5*(window.innerHeight-i))+"px"});const o={height:Math.round(i*ze/.3)+"px",width:Math.round(window.innerWidth*ze)+"px",top:Math.round(.6000000000000001*-i)+"px",transform:"scale(-2, 2)",transformOrigin:"center"};return Object.assign(t.style,o),Me.video=e.gazeTracker.webgazer.params.showVideo,Me.gaze=e.gazeTracker.webgazer.params.showGazeDot,Me.faceOverlay=e.gazeTracker.webgazer.params.showFaceOverlay,Me.video||e.showVideo(!0),Me.gaze&&e.showGazer(!1),Me.faceOverlay&&e.showFaceOverlay(!1),e.gazeTracker.webgazer.showFaceFeedbackBox(!1),[window.innerWidth*ze,i]};let Le=-100;const Pe=(e,t,n,s)=>{const r=document.createElement("div");r.id="rc-ruler",Object.assign(r.style,{height:.9*(window.innerHeight-s)/2+"px",width:2*window.innerWidth+"px",left:.25*(window.innerWidth-n)+"px",bottom:0,backgroundColor:"#FFD523dd",borderRadius:"7px 0 0 0",boxSizing:"border-box",borderBottom:"5px solid #bb6600"}),e.background.appendChild(r);const i=document.createElement("div");i.id="rc-ruler-scales",r.appendChild(i);const a=2.54*(r.clientWidth-60)/t;for(let n=0;n<=10*(0,E.Nh)(a,1);n++){const s=document.createElement("div"),r=.1*n*t/2.54+"px";if(s.className="rc-ruler-scale "+(n%10==0?"rc-ruler-major":n%5==0?"rc-ruler-secondary":"rc-ruler-minor"),s.style.left=r,i.appendChild(s),n%10==0){const t=document.createElement("p");t.className="rc-ruler-scale-text",t.style.left=r,t.innerHTML=n/10,i.appendChild(t),0===n&&(t.style.color=e._CONST.COLOR.DARK_RED)}}let o=document.createElement("div");i.appendChild(o),o.outerHTML=D(),o=document.querySelector("#size-arrow"),o.setAttribute("preserveAspectRatio","none"),o.style.left="-100px",o.style.top="40px",document.getElementById("size-arrow-fill").setAttribute("fill",e._CONST.COLOR.DARK_RED);const l=e=>{o.style.left=(Le=e.offsetX-30)+"px";const t=e=>{o.style.left=(Le=e.offsetX-30)+"px"};r.addEventListener("mousemove",t),r.addEventListener("mouseup",(function e(){r.removeEventListener("mousemove",t),r.removeEventListener("mouseup",e)}))};return r.addEventListener("mousedown",l),[r,l]};function Ue(e){return Ue="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ue(e)}var Ve=/^\s+/,We=/\s+$/;function je(e,t){if(t=t||{},(e=e||"")instanceof je)return e;if(!(this instanceof je))return new je(e,t);var n=function(e){var t={r:0,g:0,b:0},n=1,s=null,r=null,i=null,a=!1,o=!1;"string"==typeof e&&(e=function(e){e=e.replace(Ve,"").replace(We,"").toLowerCase();var t,n=!1;if(at[e])e=at[e],n=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};if(t=wt.rgb.exec(e))return{r:t[1],g:t[2],b:t[3]};if(t=wt.rgba.exec(e))return{r:t[1],g:t[2],b:t[3],a:t[4]};if(t=wt.hsl.exec(e))return{h:t[1],s:t[2],l:t[3]};if(t=wt.hsla.exec(e))return{h:t[1],s:t[2],l:t[3],a:t[4]};if(t=wt.hsv.exec(e))return{h:t[1],s:t[2],v:t[3]};if(t=wt.hsva.exec(e))return{h:t[1],s:t[2],v:t[3],a:t[4]};if(t=wt.hex8.exec(e))return{r:ht(t[1]),g:ht(t[2]),b:ht(t[3]),a:mt(t[4]),format:n?"name":"hex8"};if(t=wt.hex6.exec(e))return{r:ht(t[1]),g:ht(t[2]),b:ht(t[3]),format:n?"name":"hex"};if(t=wt.hex4.exec(e))return{r:ht(t[1]+""+t[1]),g:ht(t[2]+""+t[2]),b:ht(t[3]+""+t[3]),a:mt(t[4]+""+t[4]),format:n?"name":"hex8"};if(t=wt.hex3.exec(e))return{r:ht(t[1]+""+t[1]),g:ht(t[2]+""+t[2]),b:ht(t[3]+""+t[3]),format:n?"name":"hex"};return!1}(e));"object"==Ue(e)&&(vt(e.r)&&vt(e.g)&&vt(e.b)?(t=function(e,t,n){return{r:255*ut(e,255),g:255*ut(t,255),b:255*ut(n,255)}}(e.r,e.g,e.b),a=!0,o="%"===String(e.r).substr(-1)?"prgb":"rgb"):vt(e.h)&&vt(e.s)&&vt(e.v)?(s=pt(e.s),r=pt(e.v),t=function(e,t,n){e=6*ut(e,360),t=ut(t,100),n=ut(n,100);var s=Math.floor(e),r=e-s,i=n*(1-t),a=n*(1-r*t),o=n*(1-(1-r)*t),l=s%6,u=[n,a,i,i,o,n][l],c=[o,n,n,a,i,i][l],h=[i,i,o,n,n,a][l];return{r:255*u,g:255*c,b:255*h}}(e.h,s,r),a=!0,o="hsv"):vt(e.h)&&vt(e.s)&&vt(e.l)&&(s=pt(e.s),i=pt(e.l),t=function(e,t,n){var s,r,i;function a(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}if(e=ut(e,360),t=ut(t,100),n=ut(n,100),0===t)s=r=i=n;else{var o=n<.5?n*(1+t):n+t-n*t,l=2*n-o;s=a(l,o,e+1/3),r=a(l,o,e),i=a(l,o,e-1/3)}return{r:255*s,g:255*r,b:255*i}}(e.h,s,i),a=!0,o="hsl"),e.hasOwnProperty("a")&&(n=e.a));return n=lt(n),{ok:a,format:e.format||o,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=n.ok}function Ge(e,t,n){e=ut(e,255),t=ut(t,255),n=ut(n,255);var s,r,i=Math.max(e,t,n),a=Math.min(e,t,n),o=(i+a)/2;if(i==a)s=r=0;else{var l=i-a;switch(r=o>.5?l/(2-i-a):l/(i+a),i){case e:s=(t-n)/l+(t>1)+720)%360;--t;)s.h=(s.h+r)%360,i.push(je(s));return i}function it(e,t){t=t||6;for(var n=je(e).toHsv(),s=n.h,r=n.s,i=n.v,a=[],o=1/t;t--;)a.push(je({h:s,s:r,v:i})),i=(i+o)%1;return a}je.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,n,s=this.toRgb();return e=s.r/255,t=s.g/255,n=s.b/255,.2126*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))},setAlpha:function(e){return this._a=lt(e),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var e=qe(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=qe(this._r,this._g,this._b),t=Math.round(360*e.h),n=Math.round(100*e.s),s=Math.round(100*e.v);return 1==this._a?"hsv("+t+", "+n+"%, "+s+"%)":"hsva("+t+", "+n+"%, "+s+"%, "+this._roundA+")"},toHsl:function(){var e=Ge(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=Ge(this._r,this._g,this._b),t=Math.round(360*e.h),n=Math.round(100*e.s),s=Math.round(100*e.l);return 1==this._a?"hsl("+t+", "+n+"%, "+s+"%)":"hsla("+t+", "+n+"%, "+s+"%, "+this._roundA+")"},toHex:function(e){return He(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return function(e,t,n,s,r){var i=[dt(Math.round(e).toString(16)),dt(Math.round(t).toString(16)),dt(Math.round(n).toString(16)),dt(ft(s))];if(r&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)&&i[3].charAt(0)==i[3].charAt(1))return i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0)+i[3].charAt(0);return i.join("")}(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(100*ut(this._r,255))+"%",g:Math.round(100*ut(this._g,255))+"%",b:Math.round(100*ut(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*ut(this._r,255))+"%, "+Math.round(100*ut(this._g,255))+"%, "+Math.round(100*ut(this._b,255))+"%)":"rgba("+Math.round(100*ut(this._r,255))+"%, "+Math.round(100*ut(this._g,255))+"%, "+Math.round(100*ut(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(ot[He(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+Ke(this._r,this._g,this._b,this._a),n=t,s=this._gradientType?"GradientType = 1, ":"";if(e){var r=je(e);n="#"+Ke(r._r,r._g,r._b,r._a)}return"progid:DXImageTransform.Microsoft.gradient("+s+"startColorstr="+t+",endColorstr="+n+")"},toString:function(e){var t=!!e;e=e||this._format;var n=!1,s=this._a<1&&this._a>=0;return t||!s||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return je(this.toString())},_applyModification:function(e,t){var n=e.apply(null,[this].concat([].slice.call(t)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(Ye,arguments)},brighten:function(){return this._applyModification(Qe,arguments)},darken:function(){return this._applyModification(Je,arguments)},desaturate:function(){return this._applyModification($e,arguments)},saturate:function(){return this._applyModification(Xe,arguments)},greyscale:function(){return this._applyModification(Ze,arguments)},spin:function(){return this._applyModification(et,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(rt,arguments)},complement:function(){return this._applyCombination(tt,arguments)},monochromatic:function(){return this._applyCombination(it,arguments)},splitcomplement:function(){return this._applyCombination(st,arguments)},triad:function(){return this._applyCombination(nt,[3])},tetrad:function(){return this._applyCombination(nt,[4])}},je.fromRatio=function(e,t){if("object"==Ue(e)){var n={};for(var s in e)e.hasOwnProperty(s)&&(n[s]="a"===s?e[s]:pt(e[s]));e=n}return je(e,t)},je.equals=function(e,t){return!(!e||!t)&&je(e).toRgbString()==je(t).toRgbString()},je.random=function(){return je.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},je.mix=function(e,t,n){n=0===n?0:n||50;var s=je(e).toRgb(),r=je(t).toRgb(),i=n/100;return je({r:(r.r-s.r)*i+s.r,g:(r.g-s.g)*i+s.g,b:(r.b-s.b)*i+s.b,a:(r.a-s.a)*i+s.a})},je.readability=function(e,t){var n=je(e),s=je(t);return(Math.max(n.getLuminance(),s.getLuminance())+.05)/(Math.min(n.getLuminance(),s.getLuminance())+.05)},je.isReadable=function(e,t,n){var s,r,i=je.readability(e,t);switch(r=!1,(s=function(e){var t,n;t=((e=e||{level:"AA",size:"small"}).level||"AA").toUpperCase(),n=(e.size||"small").toLowerCase(),"AA"!==t&&"AAA"!==t&&(t="AA");"small"!==n&&"large"!==n&&(n="small");return{level:t,size:n}}(n)).level+s.size){case"AAsmall":case"AAAlarge":r=i>=4.5;break;case"AAlarge":r=i>=3;break;case"AAAsmall":r=i>=7}return r},je.mostReadable=function(e,t,n){var s,r,i,a,o=null,l=0;r=(n=n||{}).includeFallbackColors,i=n.level,a=n.size;for(var u=0;ul&&(l=s,o=je(t[u]));return je.isReadable(e,o,{level:i,size:a})||!r?o:(n.includeFallbackColors=!1,je.mostReadable(e,["#fff","#000"],n))};var at=je.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},ot=je.hexNames=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}(at);function lt(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function ut(e,t){(function(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var n=function(e){return"string"==typeof e&&-1!=e.indexOf("%")}(e);return e=Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function ct(e){return Math.min(1,Math.max(0,e))}function ht(e){return parseInt(e,16)}function dt(e){return 1==e.length?"0"+e:""+e}function pt(e){return e<=1&&(e=100*e+"%"),e}function ft(e){return Math.round(255*parseFloat(e)).toString(16)}function mt(e){return ht(e)/255}var gt,yt,bt,wt=(yt="[\\s|\\(]+("+(gt="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+gt+")[,|\\s]+("+gt+")\\s*\\)?",bt="[\\s|\\(]+("+gt+")[,|\\s]+("+gt+")[,|\\s]+("+gt+")[,|\\s]+("+gt+")\\s*\\)?",{CSS_UNIT:new RegExp(gt),rgb:new RegExp("rgb"+yt),rgba:new RegExp("rgba"+bt),hsl:new RegExp("hsl"+yt),hsla:new RegExp("hsla"+bt),hsv:new RegExp("hsv"+yt),hsva:new RegExp("hsva"+bt),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function vt(e){return!!wt.CSS_UNIT.exec(e)}var xt=__webpack_require__(782);const At=e=>e/2.54,Ct={video:!1,gazer:!1};function kt(e,t){e.background?e._replaceBackground((0,E.$O)(t.headline,t.description)):e._addBackground((0,E.$O)(t.headline,t.description)),e._constructFloatInstructionElement("gaze-system-instruction",W.H.RC_starting[e.L])}_.A.prototype.calibrateGaze=function(e={},t){if(!this.gazeTracker.checkInitialized("gaze",!0))return;(0,E.$k)(),(e=Object.assign({greedyLearner:!1,calibrationCount:1,headline:"👀 "+W.H.RC_gazeTrackingTitle[this.L],description:W.H.RC_gazeTrackingIntro[this.L]},e)).nudge=!1,Ct.video=this.gazeTracker.webgazer.params.showVideo,Ct.gazer=this.gazeTracker.webgazer.params.showGazeDot,Ct.video||this.showVideo(!0),Ct.gazer||this.showGazer(!0),this.gazeTracker.webgazer.params.greedyLearner=e.greedyLearner,kt(this,e);const n=St(this,e,(()=>{this._removeBackground(),(0,U.l)(s),(0,E.nB)(t,{timestamp:performance.now()})})),s=(0,U.m)({Escape:()=>{n.deleteSelf(!1),this._removeBackground(),this.showVideo(Ct.video),this.showGazer(Ct.gazer),Ct.video=!1,Ct.gazer=!1,this._trackingSetupFinishedStatus.gaze||(this._trackingSetupFinishedStatus.gaze=!0,this.endGaze()),(0,U.l)(s)}})};const St=(e,t,n)=>(e._removeFloatInstructionElement(),new _t(e,document.body,t,Ct,n));class _t{constructor(e,t,n,s,r){this._sequentialOrder(n.nudge),this.nudge=n.nudge,this.RC=e,this.clickThresholdBase=xt.Y?1:n.calibrationCount,this.clicks=0,this.position=this.order.shift(),this.clickThreshold=this.clickThresholdBase,this.r=this.RC._CONST.N.GAZE_CALIBRATION.R,this.div=document.createElement("div");const i=document.createElement("div"),a=document.createElement("div");this.div.className="rc-crosshair",this.div.id="rc-crosshair",i.className="rc-crosshair-component rc-crosshair-vertical",a.className="rc-crosshair-component rc-crosshair-horizontal",a.style.height=i.style.width=`${ee}px`,a.style.width=i.style.height=`${J}px`,this.div.style.background=e.params.backgroundColor;const o=je(e.params.backgroundColor).toRgb();return this.div.style.background=`rgba(${o.r}, ${o.g}, ${o.b}, 0.75)`,this.div.appendChild(i),this.div.appendChild(a),this.parent=t,this.parent.appendChild(this.div),this.placeDot(),this.handleClick=this.takeClick.bind(this),this.div.addEventListener("click",this.handleClick,!1),this.originalStyles=s,this.endCalibrationCallback=r,this.div}placeDot(){Object.assign(this.div.style,[{left:this.RC._CONST.N.GAZE_CALIBRATION.MARGIN+"px",right:"unset"},{left:`calc(50% - ${this.RC._CONST.N.GAZE_CALIBRATION.R/2}px)`,right:"unset"},{left:window.innerWidth-this.RC._CONST.N.GAZE_CALIBRATION.R-this.RC._CONST.N.GAZE_CALIBRATION.MARGIN+"px",right:"unset"},{left:`calc(50% - ${this.RC._CONST.N.GAZE_CALIBRATION.R/2}px - ${this.getOffsetPx(this.RC._CONST.N.GAZE_CALIBRATION.CENTER_EXTRA_CHECK_OFFSET)}px)`,right:"unset"},{left:`calc(50% - ${this.RC._CONST.N.GAZE_CALIBRATION.R/2}px + ${this.getOffsetPx(this.RC._CONST.N.GAZE_CALIBRATION.CENTER_EXTRA_CHECK_OFFSET)}px)`,right:"unset"},{left:`calc(50% - ${this.RC._CONST.N.GAZE_CALIBRATION.R/2}px - ${this.getOffsetPx(this.RC._CONST.N.GAZE_CALIBRATION.MID_EXTRA_CHECK_OFFSET,.3*window.innerWidth)}px)`,right:"unset"},{left:`calc(50% - ${this.RC._CONST.N.GAZE_CALIBRATION.R/2}px + ${this.getOffsetPx(this.RC._CONST.N.GAZE_CALIBRATION.MID_EXTRA_CHECK_OFFSET,.3*window.innerWidth)}px)`,right:"unset"}][this.position[0]],[{top:this.RC._CONST.N.GAZE_CALIBRATION.MARGIN+"px",bottom:"unset"},{top:`calc(50% - ${this.RC._CONST.N.GAZE_CALIBRATION.R/2}px)`,bottom:"unset"},{top:window.innerHeight-this.RC._CONST.N.GAZE_CALIBRATION.R-this.RC._CONST.N.GAZE_CALIBRATION.MARGIN+"px",bottom:"unset"},{top:`calc(50% - ${this.RC._CONST.N.GAZE_CALIBRATION.R/2}px - ${this.getOffsetPx(this.RC._CONST.N.GAZE_CALIBRATION.CENTER_EXTRA_CHECK_OFFSET)}px)`,bottom:"unset"},{top:`calc(50% - ${this.RC._CONST.N.GAZE_CALIBRATION.R/2}px + ${this.getOffsetPx(this.RC._CONST.N.GAZE_CALIBRATION.CENTER_EXTRA_CHECK_OFFSET)}px)`,bottom:"unset"},{top:`calc(50% - ${this.RC._CONST.N.GAZE_CALIBRATION.R/2}px - ${this.getOffsetPx(this.RC._CONST.N.GAZE_CALIBRATION.MID_EXTRA_CHECK_OFFSET,.3*window.innerHeight)}px)`,bottom:"unset"},{top:`calc(50% - ${this.RC._CONST.N.GAZE_CALIBRATION.R/2}px + ${this.getOffsetPx(this.RC._CONST.N.GAZE_CALIBRATION.MID_EXTRA_CHECK_OFFSET,.3*window.innerHeight)}px)`,bottom:"unset"}][this.position[1]])}takeClick(e){if(this.clickAtCenter(e)){this.clicks++,this.clicks>=this.clickThreshold&&(this.order.length?(this.position=this.order.shift(),this.clickThreshold=this.clickThresholdBase,this.placeDot(),this.clicks=0):this.deleteSelf(!0));const e=document.querySelectorAll(".leader-line");e&&e.forEach((e=>e.style.opacity=0))}}deleteSelf(e=!0){this.div.removeEventListener("click",this.handleClick,!1),this.parent.removeChild(this.div),e&&(this.nudge||this.RC.showVideo(this.originalStyles.video),this.nudge||(this.originalStyles.video=!1),this.RC.showGazer(this.originalStyles.gazer),this.originalStyles.gazer=!1,(0,E.nB)(this.endCalibrationCallback),this.nudge||(this.RC._trackingSetupFinishedStatus.gaze=!0))}clickAtCenter(e){const{x:t,y:n}=(0,E.KY)(e),{left:s,top:r,right:i,bottom:a}=this.div.getBoundingClientRect(),o=(s+i)/2,l=(r+a)/2;return t>=o-5&&t<=o+5&&n>=l-5&&n<=l+5}_randomOrder(){this.order=[];for(const e of[0,1,2])for(const t of[0,1,2])this.order.push([e,t]);(0,E.k4)(this.order)}_sequentialOrder(e=!1){this.order=e?[[1,1],[1,3],[4,1],[1,4],[3,1],[1,1],[1,4],[4,1],[1,3],[3,1],[1,1]]:xt.Y?[[0,0],[2,0],[2,2],[0,2],[1,1]]:[[1,1],[1,0],[2,0],[2,1],[2,2],[1,2],[0,2],[0,1],[0,0],[1,1],[1,2],[2,2],[2,1],[2,0],[1,0],[0,0],[0,1],[0,2],[1,1],[1,5],[6,5],[6,1],[6,6],[1,6],[5,6],[5,1],[5,5],[1,1],[1,6],[6,6],[6,1],[6,5],[1,5],[5,5],[5,1],[5,6],[1,1],[1,4],[4,1],[1,3],[3,1],[1,1],[1,3],[4,1],[1,4],[3,1],[1,1]]}getOffsetPx(e,t=null){const n=(s=e,r=this.RC.screenPpi?this.RC.screenPpi.value:this.RC._CONST.N.PPI_DONT_USE,i=this.RC.viewingDistanceCm?this.RC.viewingDistanceCm.value:this.RC._CONST.N.VIEW_DIST_DONT_USE,At(r)*i*Math.tan(s*(Math.PI/180)));var s,r,i;return t?Math.min(n,t):n}}_.A.prototype.trackGaze=async function(e={},t=null,n=null){if(!this.checkInitialized())return;if((0,E.$k)(),!1===this.gazeTracker.webgazer.getTracker().modelLoaded&&this.gazeTracker.webgazer.getTracker().loadModel(),e=Object.assign({fullscreen:!1,greedyLearner:!1,framerate:60,showGazer:!0,showVideo:!0,pipWidthPx:this._CONST.N.VIDEO_W[this.isMobile.value?"MOBILE":"DESKTOP"],showFaceOverlay:!1,calibrationCount:1,thresholdDeg:10,decimalPlace:0,headline:"👀 "+W.H.RC_gazeTrackingTitle[this.L],description:W.H.RC_gazeTrackingIntro[this.L]},e),this.getFullscreen(e.fullscreen),this.gazeTracker.checkInitialized("gaze"))return this.gazeTracker._toFixedN=e.decimalPlace,this.showGazer(e.showGazer),this.showVideo(e.showVideo),this.showFaceOverlay(e.showFaceOverlay),this.gazeTracker.attachNewCallback(n),void(this.gazeTracker.defaultGazeCallback=n);this._addBackground(),await de(this),this.gazeTracker._init({greedyLearner:e.greedyLearner,framerate:e.framerate,toFixedN:e.decimalPlace,showVideo:e.showVideo,showFaceOverlay:e.showFaceOverlay,showGazer:e.showGazer},"gaze"),kt(this,e);const s={pipWidthPx:e.pipWidthPx},r={greedyLearner:e.greedyLearner,calibrationCount:e.calibrationCount,headline:e.headline,description:e.description};this.gazeTracker.begin(s,(()=>{this._trackingSetupFinishedStatus.gaze=!1,this.calibrateGaze(r,i)}));const i=s=>{(0,E.nB)(t,s),this.gazeTracker.webgazer.params.greedyLearner||this.gazeTracker.stopLearning({click:!0,move:!0});return e.thresholdDeg,this.gazeTracker.attachNewCallback(n),void(this.gazeTracker.defaultGazeCallback=n)}},_.A.prototype.getGazeNow=async function(e={},t=null){if(!(this.checkInitialized()&&this.gazeTracker.checkInitialized("gaze",!0)&&this.gazeTracker.webgazer.params.paused&&this._trackingPaused.gaze))return;e=Object.assign({wait:0,frames:5},e);const n=t||this.gazeTracker.defaultGazeCallback;return await this.gazeTracker.getGazeNow(e,n)},_.A.prototype.pauseGaze=function(){!this.gazeTracker.checkInitialized("gaze",!0)&&this._trackingPaused.gaze||(this._trackingPaused.gaze=!0,this.gazeTracker.pause())},_.A.prototype.resumeGaze=function(){(this.gazeTracker.checkInitialized("gaze",!0)||this._trackingPaused.gaze)&&(this._trackingPaused.gaze=!1,this.gazeTracker.resume())},_.A.prototype.endGaze=function(e=!1){this.gazeTracker.checkInitialized("gaze",!0)&&(this._trackingPaused.gaze=!1,this.gazeTracker.end("gaze",e))},_.A.prototype.gazeLearning=function(e=!0,t){t=Object.assign({click:!0,move:!0},t),e?this.gazeTracker.startLearning(t):this.gazeTracker.stopLearning(t)},_.A.prototype.showGazer=function(e=!0){this.gazeTracker.checkInitialized("gaze",!1)&&this.gazeTracker.showGazer(e)},_.A.prototype.showVideo=function(e=!0){this.gazeTracker.checkInitialized("",!1)&&this.gazeTracker.showVideo(e)},_.A.prototype.showFaceOverlay=function(e=!0){this.gazeTracker.checkInitialized("gaze",!1)&&this.gazeTracker.showFaceOverlay(e)};var Et=__webpack_require__(7158),It=__webpack_require__.n(Et);const Tt={gazer:!1,gazeLearning:!1,gazePaused:!1},Nt={current:null};_.A.prototype.nudgeGaze=function(e={},t){if(!this.checkInitialized()||!this.gazeTracker.checkInitialized("gaze",!0))return;if(e=Object.assign({showOffset:!0},e),this._gazeTrackNudging.isCorrectingGaze)return;this._gazeTrackNudging.isCorrectingGaze=!0;let n=document.getElementById("gaze-nudger");n||(n=document.createElement("div"),n.id="gaze-nudger",n.className=`gaze-nudger rc-lang-${this.LD.toLowerCase()}`,document.body.classList.add("lock-view"),document.body.appendChild(n),n.style.background=this.params.backgroundColor);const s=`

          ${W.H.RC_gazeTrackingNudge[this.L]}

          `;n.innerHTML+=s;const r=Rt(this,n,t);if(this._nudger.gazeElement=n,e.showOffset){const e=document.createElement("div");e.id="fake-gaze-dot",e.style.position="absolute",e.style.left=this.gazePositionPx.value.x-5+"px",e.style.top=this.gazePositionPx.value.y-5+"px",e.style.width="10px",e.style.height="10px",e.style.borderRadius="50%",e.style.background="transparent",e.style.zIndex="9999999999",document.body.appendChild(e),Nt.current=new(It())(It().pointAnchor(e,{x:"50%",y:"50%"}),It().pointAnchor(r,{x:"50%",y:"50%"}),{path:"straight",color:this._CONST.COLOR.DARK_RED,startPlug:"disc"});const t=document.querySelector(".leader-line");t.style.zIndex=9999999999,t.style.opacity=.7,t.style.transitionDuration="0.2s"}Tt.gazePaused=this._trackingPaused.gaze,Tt.gazer=this.gazeTracker.webgazer.params.showGazeDot,Tt.gazeLearning=this.gazeTracker._learning,Tt.gazePaused&&this.resumeGaze(),Tt.gazer||this.showGazer(!0),Tt.gazeLearning||this.gazeLearning(!0,{click:!0,move:!1})};const Rt=(e,t,n)=>new _t(e,t,{greedyLearner:!1,calibrationCount:1,nudge:!0},Tt,(()=>{t.remove(),t=null,e._nudgerElement=null,document.body.classList.remove("lock-view"),Tt.gazePaused&&e.pauseGaze(),Tt.gazePaused=!1,Nt.current&&(Nt.current.remove(),Nt.current=null),e._gazeTrackNudging.isCorrectingGaze=!1,(0,E.nB)(n)}));var Ot=__webpack_require__(4948),Dt=__webpack_require__.n(Ot);let Mt=!1;_.A.prototype.getGazeAccuracy=function(e={},t,n){if(!this.checkInitialized())return!1;(0,E.$k)();const s=this.screenPpi,r=this.viewingDistanceCm;if(!s||!r)return!1;e=Object.assign({backgroundColor:"#eee",thresholdDeg:10,decimalPlace:3},e),this._addBackground();const i=document.createElement("div");i.innerHTML='',this.background.appendChild(i);const a=document.querySelector("#gaze-accuracy-canvas"),o=a.getContext("2d"),l=()=>{a.style.width=(a.width=window.innerWidth)+"px",a.style.height=(a.height=window.innerHeight)+"px"},u=new ResizeObserver((()=>{l()}));return u.observe(this.background),l(),Dt().fire({...ie(this,{showIcon:!0}),html:"We will measure your gaze accuracy. Please do not move the mouse and look at the fixation at the middle of the screen for the next 5 seconds."}).then((()=>{Mt=!0,zt(a,o,e),this.gazeTracker.startStoringPoints(),(0,E.yy)(5e3).then((()=>{Mt=!1,this.gazeTracker.stopStoringPoints();const i=this.gazeTracker.webgazer.getStoredPoints(),l=Ft({x:a.width/2,y:a.height/2},i,s.value,r.value);this.newGazeAccuracyData={value:(0,E.Nh)(l,e.decimalPlace),timestamp:performance.now()},l{const s=()=>{t.fillStyle=n.backgroundColor,t.fillRect(0,0,e.width,e.height),ne(t,e.width/2,e.height/2),Mt&&requestAnimationFrame(s)};requestAnimationFrame(s)},Ft=(e,t,n,s)=>{let r=0;for(let i=0;i0;)n=Math.random()*t|0,t--,jt(e,t,n)}function Vt(e,t,n){return Math.max(e,Math.min(t,n))}function Wt(e){return e%2==0?e:e+1}function jt(e,t,n){const s=e[t];e[t]=e[n],e[n]=s}function Gt(e,t){if(!e)throw new Error("string"==typeof t?t:t())}function qt(e,t,n=""){Gt($t(e,t),(()=>n+` Shapes ${e} and ${t} must match`))}function Ht(e){Gt(null!=e,(()=>"The input to the tensor constructor must be a non-null value."))}function Kt(e){if(0===e.length)return 1;let t=e[0];for(let n=1;n0),n,s){return new Promise(((r,i)=>{let a=0;const o=()=>{if(e())return void r();a++;const l=t(a);null!=n&&a>=n?i():null!=s?s(o,l):setTimeout(o,l)};o()}))}function Jt(e,t){let n=1,s=-1;for(let t=0;t=0)n*=e[t];else if(-1===e[t]){if(-1!==s)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${s} and dim ${t}`);s=t}else if(e[t]<0)throw Error(`Shapes can not be < 0. Found ${e[t]} at dim ${t}`);if(-1===s){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}`);const r=e.slice();return r[s]=t/n,r}function en(e,t){const n=t.length;return Gt((e=null==e?t.map(((e,t)=>t)):[].concat(e)).every((e=>e>=-n&&e`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`)),Gt(e.every((e=>Xt(e))),(()=>`All values in axis param must be integers but got axis ${e}`)),e.map((e=>e<0?n+e:e))}function tn(e,t){const n=[],s=[],r=null!=t&&Array.isArray(t)&&0===t.length,i=null==t||r?null:en(t,e).sort();let a=0;for(let t=0;tt)&&1===e[t]&&(n.push(e[t]),s.push(t)),i[a]<=t&&a++}1!==e[t]&&(n.push(e[t]),s.push(t))}return{newShape:n,keptDims:s}}function nn(e,t){return sn(e,t)}function sn(e,t){let 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 rn(e,t){return"complex64"!==t&&(("float32"!==t||"complex64"===e)&&(("int32"!==t||"float32"===e||"complex64"===e)&&("bool"!==t||"bool"!==e)))}function an(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 on(e){return"string"==typeof e||e instanceof String}function ln(e){return"number"==typeof e}function un(e){return Array.isArray(e)?un(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":ln(e)?"float32":on(e)?"string":"boolean"==typeof e?"bool":"float32"}function cn(e){return!!(e&&e.constructor&&e.call&&e.apply)}function hn(e,t){for(let n=t;n=0;--s)n[s]=n[s+1]*e[s+1];return n}function pn(e,t,n,s=!1){const r=new Array;if(1===t.length){const i=t[0]*(s?2:1);for(let t=0;te*t))*(s?2:1);for(let t=0;te*t))*(n?2:1);if(0===s)return[];if(s!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${n?" for a complex tensor":""}.`);return pn(0,e,t,n)}function mn(e,t){const n=gn(e,t);for(let e=0;ee*t),1);if(null==t||"float32"===t)return fn(e,new Float32Array(n));if("int32"===t)return fn(e,new Int32Array(n));if("bool"===t)return fn(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function bn(e){e.forEach((t=>{Gt(Number.isInteger(t)&&t>=0,(()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`))}))}function wn(e,t,n){if(0===t)return 0;if(1===t)return e[0];let s=e[e.length-1];for(let t=0;t{const[t,n]=e.split(":");this.urlFlags[t]=function(e,t){const n=t.toLowerCase();return"true"===n||"false"===n?"true"===n:""+ +n===n?+n:t}(0,n)}))}}}function kn(e){const t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,((e,...n)=>(function(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}(t,n[0],n[1]),n.join("=")))),t}function Sn(){return En}let _n,En=null;function In(){if(null==_n){let e;if("undefined"!=typeof window)e=window;else if(void 0!==__webpack_require__.g)e=__webpack_require__.g;else if("undefined"!=typeof process)e=process;else{if("undefined"==typeof self)throw new Error("Could not find a global object");e=self}_n=e}return _n}function Tn(e,t){const n=function(){const e=In();return null==e._tfGlobals&&(e._tfGlobals=new Map),e._tfGlobals}();if(n.has(e))return n.get(e);{const s=t();return n.set(e,s),n.get(e)}}const Nn="Abs",Rn="Acos",On="Acosh",Dn="Add",Mn="AddN",zn="All",Fn="Any",Bn="ArgMax",Ln="ArgMin",Pn="Asin",Un="Asinh",Vn="Atan",Wn="Atanh",jn="Atan2",Gn="AvgPool",qn="AvgPoolGrad",Hn="AvgPool3D",Kn="AvgPool3DGrad",$n="BatchMatMul",Xn="BatchToSpaceND",Zn="Bincount",Yn="BitwiseAnd",Qn="BroadcastArgs",Jn="Cast",es="Ceil",ts="ClipByValue",ns="Complex",ss="ComplexAbs",rs="Concat",is="Conv2D",as="Conv2DBackpropFilter",os="Conv2DBackpropInput",ls="Conv3D",us="Conv3DBackpropFilterV2",cs="Conv3DBackpropInputV2",hs="Cos",ds="Cosh",ps="Cumprod",fs="Cumsum",ms="CropAndResize",gs="DenseBincount",ys="DepthToSpace",bs="DepthwiseConv2dNative",ws="DepthwiseConv2dNativeBackpropFilter",vs="DepthwiseConv2dNativeBackpropInput",xs="Diag",As="Dilation2D",Cs="Dilation2DBackpropInput",ks="Dilation2DBackpropFilter",Ss="Draw",_s="RealDiv",Es="Einsum",Is="Elu",Ts="EluGrad",Ns="Erf",Rs="Equal",Os="Exp",Ds="ExpandDims",Ms="Expm1",zs="FFT",Fs="Fill",Bs="FlipLeftRight",Ls="Floor",Ps="FloorDiv",Us="FusedBatchNorm",Vs="GatherV2",Ws="GatherNd",js="Greater",Gs="GreaterEqual",qs="Identity",Hs="IFFT",Ks="Imag",$s="IsFinite",Xs="IsInf",Zs="IsNan",Ys="LeakyRelu",Qs="Less",Js="LessEqual",er="LinSpace",tr="Log",nr="Log1p",sr="LogicalAnd",rr="LogicalNot",ir="LogicalOr",ar="LRN",or="LRNGrad",lr="Max",ur="Maximum",cr="MaxPool",hr="MaxPoolGrad",dr="MaxPool3D",pr="MaxPool3DGrad",fr="MaxPoolWithArgmax",mr="Mean",gr="Min",yr="Minimum",br="MirrorPad",wr="Mod",vr="Multinomial",xr="Multiply",Ar="Neg",Cr="NotEqual",kr="NonMaxSuppressionV3",Sr="NonMaxSuppressionV4",_r="NonMaxSuppressionV5",Er="OnesLike",Ir="OneHot",Tr="Pack",Nr="PadV2",Rr="Pow",Or="Prelu",Dr="Prod",Mr="RaggedGather",zr="RaggedRange",Fr="RaggedTensorToTensor",Br="Range",Lr="Real",Pr="Reciprocal",Ur="Relu",Vr="Reshape",Wr="ResizeNearestNeighbor",jr="ResizeNearestNeighborGrad",Gr="ResizeBilinear",qr="ResizeBilinearGrad",Hr="Relu6",Kr="Reverse",$r="Round",Xr="Rsqrt",Zr="ScatterNd",Yr="TensorScatterUpdate",Qr="SearchSorted",Jr="Select",ei="Selu",ti="Slice",ni="Sin",si="Sinh",ri="Sign",ii="Sigmoid",ai="Softplus",oi="Sqrt",li="Sum",ui="SpaceToBatchND",ci="SplitV",hi="Softmax",di="SparseFillEmptyRows",pi="SparseReshape",fi="SparseSegmentMean",mi="SparseSegmentSum",gi="SparseToDense",yi="SquaredDifference",bi="Square",wi="StaticRegexReplace",vi="StridedSlice",xi="StringNGrams",Ai="StringSplit",Ci="StringToHashBucketFast",ki="Sub",Si="Tan",_i="Tanh",Ei="Tile",Ii="TopK",Ti="Transform",Ni="Transpose",Ri="Unique",Oi="Unpack",Di="UnsortedSegmentSum",Mi="ZerosLike",zi="Step",Fi="FromPixels",Bi="RotateWithOffset",Li="_FusedMatMul",Pi="FusedConv2D",Ui="FusedDepthwiseConv2D";function Vi(...e){!Sn().getBool("IS_TEST")&&Sn().getBool("PROD")}function Wi(...e){!Sn().getBool("IS_TEST")&&Sn().getBool("PROD")}const ji=Tn("kernelRegistry",(()=>new Map)),Gi=Tn("gradRegistry",(()=>new Map));function qi(e,t){const n=Zi(e,t);return ji.get(n)}function Hi(e){return Gi.get(e)}function Ki(e){const t=ji.entries(),n=[];for(;;){const{done:s,value:r}=t.next();if(s)break;const[i,a]=r,[o]=i.split("_");o===e&&n.push(a)}return n}function $i(e){const{kernelName:t,backendName:n}=e,s=Zi(t,n);ji.has(s)&&Vi(),ji.set(s,e)}function Xi(e){const{kernelName:t}=e;Gi.has(t)&&Sn().getBool("DEBUG")&&Vi(),Gi.set(t,e)}function Zi(e,t){return`${t}_${e}`}function Yi(e){return e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray}var Qi=__webpack_require__(3122);const Ji=__webpack_require__.n(Qi)()||Qi;function ea(e){return Ji.fromString(e,!0,16)}const ta=ea("c3a5c85c97cb3127"),na=ea("b492b66fbe98f273"),sa=ea("9ae16a3b2f90404f");function ra(e){return e.xor(e.shru(47))}function ia(e,t,n){const s=e.slice(t,t+n);return Ji.fromBytes(Array.from(s),!0,!0)}function aa(e,t){return ia(e,t,8)}function oa(e,t){return ia(e,t,4)}function la(e,t){return 0===t?e:e.shru(t).or(e.shl(64-t))}function ua(e,t,n=ea("9ddfea08eb382d69")){let s=e.xor(t).mul(n);s=s.xor(s.shru(47));let r=t.xor(s).mul(n);return r=r.xor(r.shru(47)),r=r.mul(n),r}function ca(e,t,n,s){return function(e,t,n,s,r,i){r=r.add(e),i=la(i.add(r).add(s),21);const a=r;return r=(r=r.add(t)).add(n),i=i.add(la(r,44)),[r.add(s),i.add(a)]}(aa(e,t),aa(e,t+8),aa(e,t+16),aa(e,t+24),n,s)}function ha(e,t=e.length){const n=Ji.fromNumber(81,!0);if(t<=32)return t<=16?function(e,t=e.length){if(t>=8){const n=sa.add(2*t),s=aa(e,0).add(sa),r=aa(e,t-8);return ua(la(r,37).mul(n).add(s),la(s,25).add(r).mul(n),n)}if(t>=4){const n=sa.add(2*t);return ua(oa(e,0).shl(3).add(t),oa(e,t-4),n)}if(t>0){const n=e[0]+(e[t>>1]<<8),s=t+(e[t-1]<<2);return ra(sa.mul(n).xor(ta.mul(s))).mul(sa)}return sa}(e,t):function(e,t=e.length){const n=sa.add(2*t),s=aa(e,0).mul(na),r=aa(e,8),i=aa(e,t-8).mul(n),a=aa(e,t-16).mul(sa);return ua(la(s.add(r),43).add(la(i,30)).add(a),s.add(la(r.add(sa),18)).add(i),n)}(e,t);if(t<=64)return function(e,t=e.length){const n=sa.add(2*t),s=aa(e,0).mul(sa),r=aa(e,8),i=aa(e,t-8).mul(n),a=aa(e,t-16).mul(sa),o=la(s.add(r),43).add(la(i,30)).add(a),l=ua(o,s.add(la(r.add(sa),18)).add(i),n),u=aa(e,16).mul(n),c=aa(e,24),h=o.add(aa(e,t-32)).mul(n),d=l.add(aa(e,t-24)).mul(n);return ua(la(u.add(c),43).add(la(h,30)).add(d),u.add(la(c.add(s),18)).add(h),n)}(e,t);let s=n,r=n.mul(na).add(113),i=ra(r.mul(sa).add(113)).mul(sa),a=[Ji.UZERO,Ji.UZERO],o=[Ji.UZERO,Ji.UZERO];s=s.mul(sa).add(aa(e,0));let l=0;const u=64*(t-1>>6),c=u+(t-1&63)-63;do{s=la(s.add(r).add(a[0]).add(aa(e,l+8)),37).mul(na),r=la(r.add(a[1]).add(aa(e,l+48)),42).mul(na),s=s.xor(o[1]),r=r.add(a[0]).add(aa(e,l+40)),i=la(i.add(o[0]),33).mul(na),a=ca(e,l,a[1].mul(na),s.add(o[0])),o=ca(e,l+32,i.add(o[1]),r.add(aa(e,l+16))),[i,s]=[s,i],l+=64}while(l!==u);const h=na.add(i.and(255).shl(1));return l=c,o[0]=o[0].add(t-1&63),a[0]=a[0].add(o[0]),o[0]=o[0].add(a[0]),s=la(s.add(r).add(a[0]).add(aa(e,l+8)),37).mul(h),r=la(r.add(a[1]).add(aa(e,l+48)),42).mul(h),s=s.xor(o[1].mul(9)),r=r.add(a[0].mul(9).add(aa(e,l+40))),i=la(i.add(o[0]),33).mul(h),a=ca(e,l,a[1].mul(h),s.add(o[0])),o=ca(e,l+32,i.add(o[1]),r.add(aa(e,l+16))),[i,s]=[s,i],ua(ua(a[0],o[0],h).add(ra(r).mul(ta)).add(i),ua(a[1],o[1],h).add(s),h)}function da(e,t){return"string"===t?ma(e):pa([e],t)}function pa(e,t){if("string"===t)throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=ba(e)),Sn().getBool("DEBUG")&&function(e,t){for(let n=0;n{s=n()};let i;const a=fa();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(r);else{r();for(const e of s)e.dataSync();i=Promise.resolve({kernelMs:fa()-a})}if(Sn().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let t=0;t{va(t,n.dtype,e)}))}return{kernelName:e,outputs:s,inputs:t,timeMs:i.then((e=>e.kernelMs)),extraInfo:i.then((e=>null!=e.getExtraProfileInfo?e.getExtraProfileInfo():""))}}logKernelProfile(e){const{kernelName:t,outputs:n,timeMs:s,inputs:r,extraInfo:i}=e;n.forEach((e=>{Promise.all([e.data(),s,i]).then((n=>{this.logger.logKernelProfile(t,e,n[0],n[1],r,n[2])}))}))}}function va(e,t,n){if("float32"!==t)return!1;for(let t=0;t0?s:""} `}}}}const Aa=20,Ca=3,ka=7;function Sa(e,t,n,s){const r=dn(t),i=function(e,t,n,s){const r=Kt(t),i=s[s.length-1],a=new Array(i).fill(0),o=t.length,l="complex64"===n?Ta(e):e;if(o>1)for(let e=0;e" "+e)).join("\n")),l.join("\n")}function _a(e,t,n){let s;return s=Array.isArray(e)?`${parseFloat(e[0].toFixed(ka))} + ${parseFloat(e[1].toFixed(ka))}j`:on(e)?`'${e}'`:"bool"===n?Ea(e):parseFloat(e.toFixed(ka)).toString(),Yt(s,t)}function Ea(e){return 0===e?"false":"true"}function Ia(e,t,n,s,r,i=!0){const a="complex64"===n?2:1,o=t[0],l=t.length;if(0===l){if("complex64"===n){return[_a(Ta(e)[0],0,n)]}return"bool"===n?[Ea(e[0])]:[e[0].toString()]}if(1===l){if(o>Aa){const t=Ca*a;let s=Array.from(e.slice(0,t)),i=Array.from(e.slice((o-Ca)*a,o*a));return"complex64"===n&&(s=Ta(s),i=Ta(i)),["["+s.map(((e,t)=>_a(e,r[t],n))).join(", ")+", ..., "+i.map(((e,t)=>_a(e,r[o-Ca+t],n))).join(", ")+"]"]}return["["+("complex64"===n?Ta(e):Array.from(e)).map(((e,t)=>_a(e,r[t],n))).join(", ")+"]"]}const u=t.slice(1),c=s.slice(1),h=s[0]*a,d=[];if(o>Aa){for(let t=0;t0?d[0]+p:"");for(let e=1;e`Length of values '${e}' does not match the size inferred by the shape '${this.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||sn(t,this.size),this.strides=dn(e)}set(e,...t){0===t.length&&(t=[0]),Gt(t.length===this.rank,(()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`));const n=this.locToIndex(t);this.values[n]=e}get(...e){0===e.length&&(e=[0]);let t=0;for(const n of e){if(n<0||n>=this.shape[t]){const t=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(t)}t++}let n=e[e.length-1];for(let t=0;tga(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}dataToGPU(e){return this.throwIfDisposed(),Ra().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();const e=Ra().readSync(this.dataId);if("string"===this.dtype)try{return e.map((e=>ga(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}async bytes(){this.throwIfDisposed();const e=await Ra().read(this.dataId);return"string"===this.dtype?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(this.kerasMask&&this.kerasMask.dispose(),Ra().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Oa.print(this,e)}clone(){return this.throwIfDisposed(),Oa.clone(this)}toString(e=!1){return Sa(this.dataSync(),this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Oa.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Ra().makeVariable(this,e,t,n)}}function za(){return Tn("Tensor",(()=>Ma))}Object.defineProperty(Ma,Symbol.hasInstance,{value:e=>!!e&&null!=e.data&&null!=e.dataSync&&null!=e.throwIfDisposed}),za();class Fa extends Ma{constructor(e,t,n,s){super(e.shape,e.dtype,e.dataId,s),this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!$t(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Ra().disposeTensor(this),this.dataId=e.dataId,Ra().incRef(this,null)}dispose(){Ra().disposeVariable(this),this.isDisposedInternal=!0}}var Ba,La,Pa,Ua,Va;Object.defineProperty(Fa,Symbol.hasInstance,{value:e=>e instanceof Ma&&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"}(Ba||(Ba={})),function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"}(La||(La={})),function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"}(Pa||(Pa={})),function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"}(Ua||(Ua={})),function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"}(Va||(Va={}));const Wa={float32:Ua,int32:La,bool:Pa,complex64:Va};function ja(e,t){if("string"===e||"string"===t){if("string"===e&&"string"===t)return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return Wa[e][t]}function Ga(e){return ja(e,"int32")}function qa(e){return null!=e&&"object"==typeof e&&"texture"in e&&e.texture instanceof WebGLTexture}function Ha(e){return"undefined"!=typeof GPUBuffer&&null!=e&&"object"==typeof e&&"buffer"in e&&e.buffer instanceof GPUBuffer}function Ka(e,t){if(e.dtype===t.dtype)return[e,t];const n=ja(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function $a(e,t){return t.some((t=>t.id===e.id))}function Xa(e){const t=[];return Za(e,t,new Set),t}function Za(e,t,n){if(null==e)return;if(e instanceof Ma)return void t.push(e);if(s=e,!Array.isArray(s)&&"object"!=typeof s)return;var s;const r=e;for(const e in r){const s=r[e];n.has(s)||(n.add(s),Za(s,t,n))}}function Ya(e){return null!=e.kernelName}class Qa{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map((e=>e.name))))}}}dispose(){for(const e in this.registeredVariables)this.registeredVariables[e].dispose()}}class Ja{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Qa}async ready(){if(null!=this.pendingBackendInit)return this.pendingBackendInit.then((()=>{}));if(null!=this.backendInstance)return;const e=this.getSortedBackends();for(let t=0;t{null!=e.setupFunc&&e.setupFunc(this.backendInstance)}))}disposeRegisteredKernels(e){Ki(e).forEach((t=>{null!=t.disposeFunc&&t.disposeFunc(this.registry[e])}))}initializeBackend(e){const t=this.registryFactory[e];if(null==t)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{const n=t.factory();if(!n||n instanceof Lt||"function"!=typeof n.then)return this.registry[e]=n,{success:!0,asyncInit:!1};{const t=++this.pendingBackendInitId,s=n.then((n=>!(t(tthis.registryFactory[t].priority-this.registryFactory[e].priority))}initializeBackendsAndReturnBest(){const e=this.getSortedBackends();for(let t=0;tthis.startScope(s)),(()=>this.endScope(n)),(()=>(n=t(),n)))}scopedRun(e,t,n){e();try{const e=n();return t(),e}catch(e){throw t(),e}}nextTensorId(){return Ja.nextTensorId++}nextVariableId(){return Ja.nextVariableId++}clone(e){const t=to.runKernel(qs,{x:e}),n={x:e};return this.addTapeNode(this.state.activeScope.name,n,[t],(e=>({x:()=>{const t={x:e},n={dtype:"float32"};return to.runKernel(Jn,t,n)}})),[],{}),t}runKernel(e,t,n){null==this.backendName&&this.backend;if(!(null!=qi(e,this.backendName)))throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,n){const s=this.backend.numDataIds();let r=0;n.forEach((e=>{r+="complex64"===e.dtype?3:1}));const i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],a=s-t-r-i;if(a>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${a} data ids) after running '${e}'`)}runKernelFunc(e){let t,n=[];const s=this.isTapeOn(),r=this.state.numBytes,i=this.state.numTensors;let a,o;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0),null==this.backendName&&this.backend;const l=Ya(e)?e.kernelName:null!=this.state.activeScope?this.state.activeScope.name:"";if(Ya(e)){const{kernelName:t,inputs:r,attrs:i}=e;null==this.backendName&&this.backend;const l=qi(t,this.backendName);Gt(null!=l,(()=>`Cannot find registered kernel '${t}' for backend '${this.backendName}'`)),a=()=>{const e=this.backend.numDataIds();o=l.kernelFunc({inputs:r,attrs:i,backend:this.backend});const a=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(t,e,a);const u=a.map((e=>null!=e.rank?e:this.makeTensorFromTensorInfo(e)));if(s){const e=this.getTensorsForGradient(t,r,u);n=this.saveTensorsForBackwardMode(e)}return u}}else{const{forwardFunc:t}=e,r=e=>{s&&(n=e.map((e=>this.keep(this.clone(e)))))};a=()=>{const e=this.backend.numDataIds();o=this.tidy((()=>t(this.backend,r)));const n=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,e,n),n}}const{inputs:u,attrs:c}=e,h=Ya(e)?null:e.backwardsFunc;let d;return this.scopedRun((()=>this.state.kernelDepth++),(()=>this.state.kernelDepth--),(()=>{this.ENV.getBool("DEBUG")||this.state.profiling?(d=this.profiler.profileKernel(l,u,(()=>a())),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(d),t=d.outputs):t=a()})),s&&this.addTapeNode(l,u,t,h,n,c),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(u).map((e=>null!=u[e]?u[e].shape:null)),outputShapes:t.map((e=>e.shape)),kernelTimeMs:d.timeMs,extraInfo:d.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){const t=e.map((e=>this.keep(this.clone(e))));return t}getTensorsForGradient(e,t,n){const s=Hi(e);if(null!=s){const e=s.inputsToSave||[],r=s.outputsToSave||[];let i;s.saveAllInputs?(Gt(Array.isArray(t),(()=>"saveAllInputs is true, expected inputs to be an array.")),i=Object.keys(t).map((e=>t[e]))):i=e.map((e=>t[e]));const a=n.filter(((e,t)=>r[t]));return i.concat(a)}return[]}makeTensor(e,t,n,s){if(null==e)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",s=s||this.backend;let r=e;"string"===n&&on(e[0])&&(r=e.map((e=>ma(e))));const i=s.write(r,t,n),a=new Ma(t,n,i,this.nextTensorId());if(this.trackTensor(a,s),"string"===n){const e=this.state.tensorInfo.get(i),t=function(e){if(null==e)return 0;let t=0;return e.forEach((e=>t+=e.length)),t}(r);this.state.numBytes+=t-e.bytes,e.bytes=t}return a}makeTensorFromDataId(e,t,n,s){const r={dataId:e,shape:t,dtype:n=n||"float32"};return this.makeTensorFromTensorInfo(r,s)}makeTensorFromTensorInfo(e,t){const{dataId:n,shape:s,dtype:r}=e,i=new Ma(s,r,n,this.nextTensorId());return this.trackTensor(i,t),i}makeVariable(e,t=!0,n,s){n=n||this.nextVariableId().toString(),null!=s&&s!==e.dtype&&(e=e.cast(s));const r=new Fa(e,t,n,this.nextTensorId());if(null!=this.state.registeredVariables[r.name])throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}trackTensor(e,t){this.state.numTensors++,"string"===e.dtype&&this.state.numStringTensors++;let n=0;"complex64"!==e.dtype&&"string"!==e.dtype&&(n=e.size*an(e.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n})),e instanceof Fa||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;const t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,"string"===e.dtype&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),"complex64"!==e.dtype&&"string"!==e.dtype){const t=e.size*an(e.dtype);this.state.numBytes-=t}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(const e in this.state.registeredVariables){const t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),null!=this.state.registeredVariables[e.name]&&delete this.state.registeredVariables[e.name]}memory(){const e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,null==e.reasons&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;const t=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map((e=>e.totalBytesSnapshot))),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(const e of this.state.activeProfile.kernels)e.kernelTimeMs=await e.kernelTimeMs,e.extraInfo=await e.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&0===this.state.kernelDepth}addTapeNode(e,t,n,s,r,i){const a={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:r},o=Hi(e);null!=o&&(s=o.gradFunc),null!=s&&(a.gradient=e=>(e=e.map(((e,t)=>{if(null==e){const e=n[t],s=gn(e.size,e.dtype);return this.makeTensor(s,e.shape,e.dtype)}return e})),s(e.length>1?e:e[0],r,i))),this.state.activeTape.push(a)}keep(e){return e.kept=!0,e}startTape(){0===this.state.gradientDepth&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){const t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){const t=Xa(e),n=new Set(t.map((e=>e.id)));for(let e=0;e{e.kept||e.scopeId!==s.id||this.track(e)}))}gradients(e,t,n,s=!1){if(Gt(t.length>0,(()=>"gradients() received an empty list of xs.")),null!=n&&"float32"!==n.dtype)throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);const r=this.scopedRun((()=>this.startTape()),(()=>this.endTape()),(()=>this.tidy("forward",e)));Gt(r instanceof Ma,(()=>"The result y returned by f() must be a tensor."));const i=function(e,t,n){const s={},r={};for(let e=0;es[e.id]=!0)),o=!0,r[i.id]=!0;break}if(o)break}}const i={};i[n.id]=!0;const a={};for(let t=e.length-1;t>=0;t--){const n=e[t],s=n.inputs;for(let e=0;e0)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",(()=>{const e={};e[r.id]=null==n?function(e){const t=mn(Kt(e),"float32");return to.makeTensor(t,e,"float32")}(r.shape):n,function(e,t,n,s){for(let r=t.length-1;r>=0;r--){const i=t[r],a=[];if(i.outputs.forEach((t=>{const n=e[t.id];null!=n?a.push(n):a.push(null)})),null==i.gradient)throw new Error(`Cannot compute gradient: gradient function not found for ${i.kernelName}.`);const o=i.gradient(a);for(const t in i.inputs){if(!(t in o))throw new Error(`Cannot backprop through input ${t}. Available gradients found: ${Object.keys(o)}.`);const r=n((()=>o[t]()));if("float32"!==r.dtype)throw new Error(`Error in gradient for op ${i.kernelName}. The gradient of input ${t} must have 'float32' dtype, but has '${r.dtype}'`);const a=i.inputs[t];if(!$t(r.shape,a.shape))throw new Error(`Error in gradient for op ${i.kernelName}. 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{const t=e[a.id];e[a.id]=s(t,r),t.dispose()}}}}(e,i,(e=>this.tidy(e)),no);const s=t.map((t=>e[t.id]));return 0===this.state.gradientDepth&&(this.state.activeTape.forEach((e=>{for(const t of e.saved)t.dispose()})),this.state.activeTape=null),{value:r,grads:s}}))}customGrad(e){return Gt(cn(e),(()=>"The f passed in customGrad(f) must be a function.")),(...t)=>{let n;Gt(t.every((e=>e instanceof Ma)),(()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors"));const s={};t.forEach(((e,t)=>{s[t]=e}));return this.runKernelFunc({forwardFunc:(s,r)=>(n=e(...t,r),Gt(n.value instanceof Ma,(()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor")),Gt(cn(n.gradFunc),(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function.")),n.value),backwardsFunc:(e,s)=>{const r=n.gradFunc(e,s),i=Array.isArray(r)?r:[r];Gt(i.length===t.length,(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...).")),Gt(i.every((e=>e instanceof Ma)),(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors."));const a={};return i.forEach(((e,t)=>{a[t]=()=>e})),a},inputs:s})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}readToGPU(e,t){return this.state.tensorInfo.get(e).backend.readToGPU(e,t)}async time(e){const t=fa(),n=await this.backend.time(e);return n.wallMs=fa()-t,n}track(e){return null!=this.state.activeScope&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Qa;for(const e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}}function eo(){const e=In();if(null==e._tfengine){const t=new Cn(e);e._tfengine=new Ja(t)}var t;return t=e._tfengine.ENV,En=t,Ra=()=>e._tfengine,e._tfengine}Ja.nextTensorId=0,Ja.nextVariableId=0;const to=eo();function no(e,t){const n={a:e,b:t};return to.runKernel(Dn,n)}let so;function ro(e){if(void 0!==so)return so;if(e||"undefined"!=typeof navigator&&null!=navigator){if(e||(e=navigator),"ReactNative"===e.product)return!0;const t=e.userAgent||e.vendor||("undefined"!=typeof window?window.opera:"");if(!t){const t=e;return t.userAgentData&&t.userAgentData.mobile}return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))}return!1}function io(){return"undefined"!=typeof window&&null!=window.document||"undefined"!=typeof WorkerGlobalScope}const ao=Sn();function oo(e,t){let n=e;if(ya(e))return"string"===t?[]:[e.length];if(qa(e)){const t=e.channels||"RGBA";return[e.height,e.width*t.length]}if(Ha(e))return[e.buffer.size/(null==t?4:an(t))];if(!Array.isArray(e))return[];const s=[];for(;Array.isArray(n)||ya(n)&&"string"!==t;)s.push(n.length),n=n[0];return Array.isArray(e)&&Sn().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&lo(e,s,[]),s}function lo(e,t,n){if(n=n||[],!Array.isArray(e)&&!ya(e))return void Gt(0===t.length,(()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`));Gt(t.length>0,(()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`)),Gt(e.length===t[0],(()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`));const s=t.slice(1);for(let t=0;t=0&&(r=s),uo(s,r,t,n),null==e||!ya(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e){const s=null==e?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${s}'`)}const i=oo(e,r);ya(e)||Array.isArray(e)||(e=[e]);const a="string"!==r?pa(e,r):ba(e,[],!0);return to.makeTensor(a,i,r)}function ho(e,t,n,s="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map(((e,r)=>co(e,`${t}[${r}]`,n,s)))}ao.registerFlag("DEBUG",(()=>!1),(e=>{})),ao.registerFlag("IS_BROWSER",(()=>io())),ao.registerFlag("IS_NODE",(()=>"undefined"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.node)),ao.registerFlag("IS_CHROME",(()=>"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor))),ao.registerFlag("IS_SAFARI",(()=>"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor))),ao.registerFlag("PROD",(()=>!1)),ao.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",(()=>ao.getBool("DEBUG"))),ao.registerFlag("DEPRECATION_WARNINGS_ENABLED",(()=>!0)),ao.registerFlag("IS_TEST",(()=>!1)),ao.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",(()=>ao.getBool("DEBUG"))),ao.registerFlag("WRAP_TO_IMAGEBITMAP",(()=>!1)),ao.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",(()=>!1)),ao.registerFlag("USE_SETTIMEOUTCUSTOM",(()=>!1));const po="__op";function fo(e){const 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.`);let n=t[0];const s=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n+=po;const r=(...e)=>{to.startScope(n);try{const t=s(...e);return xn(t),to.endScope(t),t}catch(e){throw to.endScope(null),e}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}const mo=fo({complex_:function(e,t){const n=co(e,"real","complex"),s=co(t,"imag","complex");qt(n.shape,s.shape,`real and imag shapes, ${n.shape} and ${s.shape}, must match in call to tf.complex().`);const r={real:n,imag:s};return to.runKernel(ns,r)}});function go(e,t,n,s){if(null==s)s=un(e);else if("complex64"===s)throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(Ha(e)||qa(e)){if("float32"!==s&&"int32"!==s)throw new Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${s}.`);return to.backend.createTensorFromGPUData(e,t||n,s)}if(!ya(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){bn(t);const e=Kt(t),s=Kt(n);Gt(e===s,(()=>`Based on the provided shape, [${t}], the tensor should have ${e} values but has ${s}`));for(let e=0;e`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `))}}return ya(e)||Array.isArray(e)||(e=[e]),t=t||n,e="string"!==s?pa(e,s):ba(e,[],!0),to.makeTensor(e,t,s)}function yo(e,t,n){return go(e,t,oo(e,n),n)}const bo={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};class wo{static join(e){return new wo(e).slice()}constructor(e){if(this.shards=[],this.previousShardIndex=0,null==e)return;if(e instanceof Array||(e=[e]),0===(e=e.map((e=>ya(e)?e.buffer:e))).length)return;this.bufferUniformSize=e[0].byteLength;let t=0;for(let n=0;n=this.byteLength)return-1;if(null!=this.bufferUniformSize)return this.previousShardIndex=Math.floor(e/this.bufferUniformSize),this.previousShardIndex;function t(t){return e=t.end?1:0}if(0===t(this.shards[this.previousShardIndex]))return this.previousShardIndex;const n=function(e,t){let n=0,s=e.length;for(;n<=s;){const r=Math.floor((s-n)/2)+n,i=t(e[r]);if(0===i)return r;i<0?s=r:n=r+1}return-1}(this.shards,t);return-1===n?-1:(this.previousShardIndex=n,this.previousShardIndex)}}function vo(){return to}function xo(){return to.memory()}function Ao(e,t){return to.tidy(e,t)}function Co(e){Xa(e).forEach((e=>e.dispose()))}function ko(e){return to.keep(e)}function So(e,t,n=1){return to.registerBackend(e,t,n)}function _o(){return to.backend}Da=function(e){Sn().getBool("DEPRECATION_WARNINGS_ENABLED")};const Eo=4;async function Io(e,t){const n=[],s=[],r=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);for(let i=0;i{const t=await o.bytes(),n=t.reduce(((e,t)=>e+t.length),0)+Eo*t.length,s=new Uint8Array(n);let r=0;for(let e=0;en.slice(r+e,r+t)));s[e.name]=Oo(e,n.slice(r,r+t)),r+=t}return s}function No(e,t){const n=Kt(e.shape);let s;if("quantization"in e){const t=e.quantization;s=bo[t.dtype]}else{if("string"===e.dtype){let e=0;for(let s=0;s{let t=e<<13,n=0;for(;!(8388608&t);)n-=8388608,t<<=1;return t&=-8388609,n+=947912704,t|n},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let e=1024;e<2048;e++)t[e]=939524096+(e-1024<<13);return t}(),t=function(){const e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}(),n=function(){const e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}();return s=>{const r=new ArrayBuffer(4*s.length),i=new Uint32Array(r);for(let r=0;r>10]+(1023&a)]+t[a>>10];i[r]=o}return new Float32Array(r)}}();a=e(u)}}else{if("int32"!==s)throw new Error(`Unsupported dtype in weight '${n}': ${s}`);if("uint8"!==r.dtype&&"uint16"!==r.dtype)throw new Error(`Unsupported quantization type ${r.dtype} for weight type int32.`);a=new Int32Array(u.length);for(let e=0;e(r=await Do(s,r,t),r.slice(e,t))));r=await Do(s,r,t);const i=r.slice(0,t);r=r.slice(t);const a=Oo(e,i);if(n[e.name]=a,"webgpu"===to.backendName){const e=_o();"uploadToGPU"in e&&Kt(a.shape)>=Sn().get("WEBGPU_CPU_HANDOFF_SIZE_THRESHOLD")&&e.uploadToGPU(a.dataId)}}return n}function zo(e){if(null===e)throw new Error(`Invalid input value: ${JSON.stringify(e)}`);let t=0;const n=[];e.forEach((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}`)}));const s=new Uint8Array(t);let r=0;return n.forEach((e=>{s.set(new Uint8Array(e.buffer),r),r+=e.byteLength})),s.buffer}const Fo="undefined"!=typeof Buffer&&("undefined"==typeof Blob||"undefined"==typeof atob||"undefined"==typeof btoa);function Bo(e){return Fo?Buffer.byteLength(e,"utf8"):new Blob([e]).size}function Lo(e){return wo.join(e)}function Po(e){for(e=e.trim();e.endsWith("/");)e=e.slice(0,e.length-1);const t=e.split("/");return t[t.length-1]}function Uo(e,t){const n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:t};return null!=e.signature&&(n.signature=e.signature),null!=e.userDefinedMetadata&&(n.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(n.modelInitializer=e.modelInitializer),null!=e.initializerSignature&&(n.initializerSignature=e.initializerSignature),null!=e.trainingConfig&&(n.trainingConfig=e.trainingConfig),n}function Vo(e,t,n){const s={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};if(null!=e.trainingConfig&&(s.trainingConfig=e.trainingConfig),null!=e.weightsManifest){if(!t)throw new Error("modelJSON has weightsManifest but weightSpecs is null");if(!n)throw new Error("modelJSON has weightsManifest but weightData is null");s.weightSpecs=t,s.weightData=n}return null!=e.signature&&(s.signature=e.signature),null!=e.userDefinedMetadata&&(s.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(s.modelInitializer=e.modelInitializer),null!=e.initializerSignature&&(s.initializerSignature=e.initializerSignature),s}async function Wo(e,t){let n,s;return null!=e.weightsManifest&&([n,s]=await t(e.weightsManifest)),Vo(e,n,s)}function jo(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:Bo(JSON.stringify(e.modelTopology)),weightSpecsBytes:null==e.weightSpecs?0:Bo(JSON.stringify(e.weightSpecs)),weightDataBytes:null==e.weightData?0:new wo(e.weightData).byteLength}}function Go(e){const t=[];for(const n of e)t.push(...n.weights);return t}class qo{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return null==qo.instance&&(qo.instance=new qo),qo.instance}static registerSaveRouter(e){qo.getInstance().saveRouters.push(e)}static registerLoadRouter(e){qo.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return qo.getHandlers(e,"save")}static getLoadHandlers(e,t){return qo.getHandlers(e,"load",t)}static getHandlers(e,t,n){const s=[];return("load"===t?qo.getInstance().loadRouters:qo.getInstance().saveRouters).forEach((t=>{const r=t(e,n);null!==r&&s.push(r)})),s}}const Ho=e=>qo.registerSaveRouter(e),Ko=e=>qo.registerLoadRouter(e),$o=e=>qo.getSaveHandlers(e),Xo=(e,t)=>qo.getLoadHandlers(e,t),Zo="tensorflowjs",Yo="models_store",Qo="model_info_store";function Jo(){if(!Sn().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");const e="undefined"==typeof window?self: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 el(e){const t=e.result;t.createObjectStore(Yo,{keyPath:"modelPath"}),t.createObjectStore(Qo,{keyPath:"modelPath"})}class tl{constructor(e){if(this.indexedDB=Jo(),null==e||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise(((e,n)=>{const s=this.indexedDB.open(Zo,1);s.onupgradeneeded=()=>el(s),s.onsuccess=()=>{const r=s.result;if(null==t){const t=r.transaction(Yo,"readonly"),s=t.objectStore(Yo).get(this.modelPath);s.onsuccess=()=>{if(null==s.result)return r.close(),n(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));e(s.result.modelArtifacts)},s.onerror=e=>(r.close(),n(s.error)),t.oncomplete=()=>r.close()}else{t.weightData=wo.join(t.weightData);const s=jo(t),i=r.transaction(Qo,"readwrite");let a,o,l=i.objectStore(Qo);try{a=l.put({modelPath:this.modelPath,modelArtifactsInfo:s})}catch(e){return n(e)}a.onsuccess=()=>{o=r.transaction(Yo,"readwrite");const a=o.objectStore(Yo);let u;try{u=a.put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:s})}catch(e){return n(e)}u.onsuccess=()=>e({modelArtifactsInfo:s}),u.onerror=e=>{l=i.objectStore(Qo);const t=l.delete(this.modelPath);t.onsuccess=()=>(r.close(),n(u.error)),t.onerror=e=>(r.close(),n(u.error))}},a.onerror=e=>(r.close(),n(a.error)),i.oncomplete=()=>{null==o?r.close():o.oncomplete=()=>r.close()}}},s.onerror=e=>n(s.error)}))}}tl.URL_SCHEME="indexeddb://";const nl=e=>{return Sn().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(tl.URL_SCHEME)?(t=e.slice(tl.URL_SCHEME.length),new tl(t)):null;var t};qo.registerSaveRouter(nl),qo.registerLoadRouter(nl);class sl{constructor(){this.indexedDB=Jo()}async listModels(){return new Promise(((e,t)=>{const n=this.indexedDB.open(Zo,1);n.onupgradeneeded=()=>el(n),n.onsuccess=()=>{const s=n.result,r=s.transaction(Qo,"readonly"),i=r.objectStore(Qo).getAll();i.onsuccess=()=>{const t={};for(const e of i.result)t[e.modelPath]=e.modelArtifactsInfo;e(t)},i.onerror=e=>(s.close(),t(i.error)),r.oncomplete=()=>s.close()},n.onerror=e=>t(n.error)}))}async removeModel(e){var t;return e=(t=e).startsWith(tl.URL_SCHEME)?t.slice(tl.URL_SCHEME.length):t,new Promise(((t,n)=>{const s=this.indexedDB.open(Zo,1);s.onupgradeneeded=()=>el(s),s.onsuccess=()=>{const r=s.result,i=r.transaction(Qo,"readwrite"),a=i.objectStore(Qo),o=a.get(e);let l;o.onsuccess=()=>{if(null==o.result)return r.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{const s=a.delete(e),i=()=>{l=r.transaction(Yo,"readwrite");const s=l.objectStore(Yo).delete(e);s.onsuccess=()=>t(o.result.modelArtifactsInfo),s.onerror=e=>n(o.error)};s.onsuccess=i,s.onerror=e=>(i(),r.close(),n(o.error))}},o.onerror=e=>(r.close(),n(o.error)),i.oncomplete=()=>{null==l?r.close():l.oncomplete=()=>r.close()}},s.onerror=e=>n(s.error)}))}}const rl="/",il="tensorflowjs_models",al="info",ol="model_topology",ll="weight_specs",ul="weight_data",cl="model_metadata";function hl(e){return{info:[il,e,al].join(rl),topology:[il,e,ol].join(rl),weightSpecs:[il,e,ll].join(rl),weightData:[il,e,ul].join(rl),modelMetadata:[il,e,cl].join(rl)}}function dl(e){for(const t of Object.values(e))window.localStorage.removeItem(t)}function pl(e){const t=e.split(rl);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(rl)}class fl{constructor(e){if(!Sn().getBool("IS_BROWSER")||"undefined"==typeof window||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=hl(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{const t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),s=jo(e),r=wo.join(e.weightData);try{this.LS.setItem(this.keys.info,JSON.stringify(s)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,function(e){if(Fo)return Buffer.from(e).toString("base64");const t=new Uint8Array(e);let n="";for(let e=0,s=t.length;e{return Sn().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(fl.URL_SCHEME)?(t=e.slice(fl.URL_SCHEME.length),new fl(t)):null;var t};qo.registerSaveRouter(ml),qo.registerLoadRouter(ml);class gl{constructor(){Gt(Sn().getBool("IS_BROWSER"),(()=>"Current environment is not a web browser")),Gt("undefined"==typeof window||void 0!==window.localStorage,(()=>"Current browser does not appear to support localStorage")),this.LS=window.localStorage}async listModels(){const e={},t=il+rl,n=rl+al;for(let s=0;s"scheme must not be undefined or null.")),e.endsWith(yl)&&(e=e.slice(0,e.indexOf(yl))),Gt(e.length>0,(()=>"scheme must not be an empty string."));const n=bl.getInstance();Gt(null==n.managers[e],(()=>`A model store manager is already registered for scheme '${e}'.`)),n.managers[e]=t}static getManager(e){const t=bl.getInstance().managers[e];if(null==t)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(bl.getInstance().managers)}}function wl(e){if(-1===e.indexOf(yl))throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${bl.getSchemes().join(",")}`);return{scheme:e.split(yl)[0],path:e.split(yl)[1]}}async function vl(e,t,n=!1){Gt(e!==t,(()=>`Old path and new path are the same: '${e}'`));const s=qo.getLoadHandlers(e);Gt(s.length>0,(()=>`Copying failed because no load handler is found for source URL ${e}.`)),Gt(s.length<2,(()=>`Copying failed because more than one (${s.length}) load handlers for source URL ${e}.`));const r=s[0],i=qo.getSaveHandlers(t);Gt(i.length>0,(()=>`Copying failed because no save handler is found for destination URL ${t}.`)),Gt(i.length<2,(()=>`Copying failed because more than one (${s.length}) save handlers for destination URL ${t}.`));const a=i[0],o=wl(e).scheme,l=wl(e).path,u=o===wl(e).scheme,c=await r.load();n&&u&&await bl.getManager(o).removeModel(l);const h=await a.save(c);return n&&!u&&await bl.getManager(o).removeModel(l),h.modelArtifactsInfo}async function xl(){const e=bl.getSchemes(),t={};for(const n of e){const e=await bl.getManager(n).listModels();for(const s in e){t[n+yl+s]=e[s]}}return t}async function Al(e){const t=wl(e);return bl.getManager(t.scheme).removeModel(t.path)}async function Cl(e,t){return vl(e,t,!1)}async function kl(e,t){return vl(e,t,!0)}class Sl{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return null==this.textEncoder&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}setTimeoutCustom(e,t){"undefined"!=typeof window&&Sn().getBool("USE_SETTIMEOUTCUSTOM")?(this.functionRefs.push(e),setTimeout((()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")}),t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",(e=>{if(e.source===window&&e.data.name===this.messageName){e.stopPropagation();(0,this.functionRefs[e.data.index])(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}}),!0))):setTimeout(e,t)}isTypedArray(e){return Yi(e)}}if(Sn().get("IS_BROWSER")){Sn().setPlatform("browser",new Sl);try{bl.registerManager(fl.URL_SCHEME,new gl)}catch(e){}try{bl.registerManager(tl.URL_SCHEME,new sl)}catch(e){}}const _l=()=>__webpack_require__(8273);let El;class Il{constructor(){this.util=__webpack_require__(9830),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return null!=Sn().global.fetch?Sn().global.fetch(e,t):(null==El&&(El=_l()),El(e,t))}now(){const e=process.hrtime();return 1e3*e[0]+e[1]/1e6}encode(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)}decode(e,t){return 0===e.length?"":new this.util.TextDecoder(t).decode(e)}isTypedArray(e){return this.util.types.isFloat32Array(e)||this.util.types.isInt32Array(e)||this.util.types.isUint8Array(e)||this.util.types.isUint8ClampedArray(e)}}function Tl(e,t="float32",n){return t=t||"float32",bn(e),new Na(e,t,n)}Sn().get("IS_NODE")&&!Sn().get("IS_BROWSER")&&Sn().setPlatform("node",new Il);const Nl=fo({cast_:function(e,t){const n=co(e,"x","cast");if(!function(e){return"bool"===e||"complex64"===e||"float32"===e||"int32"===e||"string"===e}(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");const s={x:n},r={dtype:t};return to.runKernel(Jn,s,r)}});const Rl=fo({clone_:function(e){const t={x:co(e,"x","clone","string_or_numeric")};return to.runKernel(qs,t)}});function Ol(e,t=!1){}eo();Oa={buffer:Tl,cast:Nl,clone:Rl,print:Ol};const Dl=fo({add_:function(e,t){let n=co(e,"a","add"),s=co(t,"b","add");[n,s]=Ka(n,s);const r={a:n,b:s};return to.runKernel(Dn,r)}});const Ml=fo({floorDiv_:function(e,t){let n=co(e,"a","floorDiv"),s=co(t,"b","floorDiv");[n,s]=Ka(n,s);const r={a:n,b:s};return to.runKernel(Ps,r)}});const zl=fo({div_:function(e,t){let n=co(e,"a","div"),s=co(t,"b","div");if([n,s]=Ka(n,s),"int32"===n.dtype&&"int32"===s.dtype)return Ml(n,s);const r={a:n,b:s};return to.runKernel(_s,r,{})}});const Fl=fo({mul_:function(e,t){let n=co(e,"a","mul"),s=co(t,"b","mul");[n,s]=Ka(n,s);const r={a:n,b:s};return to.runKernel(xr,r)}});const Bl=fo({sqrt_:function(e){const t={x:co(e,"x","sqrt","float32")};return to.runKernel(oi,t)}});const Ll=fo({square_:function(e){const t=co(e,"x","square");return to.runKernel("Square",{x:t},{})}});const Pl=fo({zerosLike_:function(e){const t={x:co(e,"x","zerosLike")};return to.runKernel(Mi,t)}});function Ul(e){return to.customGrad(e)}function Vl(e,t){if((ya(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&&ya(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return go(e,[],[],t)}const Wl=new Map,jl=new Map;class Gl{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class ql{constructor(){this.classNameMap={}}static getMap(){return null==ql.instance&&(ql.instance=new ql),ql.instance}static register(e){ql.getMap().classNameMap[e.className]=[e,e.fromConfig]}}function Hl(e,t,n){Gt(null!=e.className,(()=>"Class being registered does not have the static className property defined.")),Gt("string"==typeof e.className,(()=>"className is required to be a string, but got type "+typeof e.className)),Gt(e.className.length>0,(()=>"Class being registered has an empty-string as its className, which is disallowed.")),void 0===t&&(t="Custom"),void 0===n&&(n=e.className);const s=t+">"+n;return ql.register(e),Wl.set(s,e),jl.set(e,s),e}class Kl extends Gl{minimize(e,t=!1,n){const{value:s,grads:r}=this.computeGradients(e,n);if(null!=n){const e=n.map((e=>({name:e.name,tensor:r[e.name]})));this.applyGradients(e)}else this.applyGradients(r);return Co(r),t?s:(s.dispose(),null)}get iterations(){return null==this.iterations_&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return function(e,t){Gt(cn(e),(()=>"The f passed in variableGrads(f) must be a function")),Gt(null==t||Array.isArray(t)&&t.every((e=>e instanceof Fa)),(()=>"The varList passed in variableGrads(f, varList) must be an array of variables"));const n=null!=t;if(!n){t=[];for(const e in to.registeredVariables)t.push(to.registeredVariables[e])}const s=n?t.filter((e=>!e.trainable)):null,r=t.length;t=t.filter((e=>e.trainable)),Gt(t.length>0,(()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${r} variables is trainable.`));const{value:i,grads:a}=to.gradients(e,t,null,!0);Gt(a.some((e=>null!=e)),(()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize().")),Gt(0===i.rank,(()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`));const o={};return t.forEach(((e,t)=>{null!=a[t]&&(o[e.name]=a[t])})),null!=s&&s.forEach((e=>o[e.name]=null)),{value:i,grads:o}}(e,t)}dispose(){null!=this.iterations_&&Co(this.iterations_)}async saveIterations(){return null==this.iterations_&&(this.iterations_=0),{name:"iter",tensor:Vl(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}}Object.defineProperty(Kl,Symbol.hasInstance,{value:e=>null!=e.minimize&&null!=e.computeGradients&&null!=e.applyGradients});class $l extends Kl{static get className(){return"Adadelta"}constructor(e,t,n=null){super(),this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],null==n&&(this.epsilon=to.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const s=to.registeredVariables[t],r=!1;null==this.accumulatedGrads[n]&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:Ao((()=>Pl(s).variable(r)))}),null==this.accumulatedUpdates[n]&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:Ao((()=>Pl(s).variable(r)))});const i=Array.isArray(e)?e[n].tensor:e[t];if(null==i)return;const a=this.accumulatedGrads[n].variable,o=this.accumulatedUpdates[n].variable;Ao((()=>{const e=Dl(Fl(a,this.rho),Fl(Ll(i),1-this.rho)),t=Fl(zl(Bl(Dl(o,this.epsilon)),Bl(Dl(a,this.epsilon))),i),n=Dl(Fl(o,this.rho),Fl(Ll(t),1-this.rho));a.assign(e),o.assign(n);const r=Dl(Fl(t,-this.learningRate),s);s.assign(r)}))})),this.incrementIterations()}dispose(){null!=this.accumulatedUpdates&&(Co(this.accumulatedGrads.map((e=>e.variable))),Co(this.accumulatedUpdates.map((e=>e.variable))))}async getWeights(){const e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){const t=(e=await this.extractIterations(e)).length/2,n=!1;this.accumulatedGrads=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))),this.accumulatedUpdates=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}}function Xl(e,t,n){bn(e);const s={shape:e,value:t,dtype:n=n||un(t)};return to.runKernel(Fs,{},s)}class Zl extends Kl{static get className(){return"Adagrad"}constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const s=to.registeredVariables[t];if(null==this.accumulatedGrads[n]){const e=!1;this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:Ao((()=>Xl(s.shape,this.initialAccumulatorValue).variable(e)))}}const r=Array.isArray(e)?e[n].tensor:e[t];if(null==r)return;const i=this.accumulatedGrads[n].variable;Ao((()=>{const e=Dl(i,Ll(r));i.assign(e);const t=Dl(Fl(zl(r,Bl(Dl(e,to.backend.epsilon()))),-this.learningRate),s);s.assign(t)}))})),this.incrementIterations()}dispose(){null!=this.accumulatedGrads&&Co(this.accumulatedGrads.map((e=>e.variable)))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e);this.accumulatedGrads=e.map((e=>({originalName:e.name,variable:e.tensor.variable(false)})))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}}const Yl=fo({pow_:function(e,t){let n=co(e,"base","pow"),s=co(t,"exp","pow");[n,s]=Ka(n,s);const r={a:n,b:s};return to.runKernel(Rr,r)}});const Ql=fo({sub_:function(e,t){let n=co(e,"a","sub"),s=co(t,"b","sub");[n,s]=Ka(n,s);const r={a:n,b:s};return to.runKernel(ki,r)}});class Jl extends Kl{static get className(){return"Adam"}constructor(e,t,n,s=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=s,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],Ao((()=>{this.accBeta1=Vl(t).variable(),this.accBeta2=Vl(n).variable()})),null==s&&(this.epsilon=to.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);Ao((()=>{const n=Ql(1,this.accBeta1),s=Ql(1,this.accBeta2);t.forEach(((t,r)=>{const i=to.registeredVariables[t],a=!1;null==this.accumulatedFirstMoment[r]&&(this.accumulatedFirstMoment[r]={originalName:`${t}/m`,variable:Ao((()=>Pl(i).variable(a)))}),null==this.accumulatedSecondMoment[r]&&(this.accumulatedSecondMoment[r]={originalName:`${t}/v`,variable:Ao((()=>Pl(i).variable(a)))});const o=Array.isArray(e)?e[r].tensor:e[t];if(null==o)return;const l=this.accumulatedFirstMoment[r].variable,u=this.accumulatedSecondMoment[r].variable,c=Dl(Fl(l,this.beta1),Fl(o,1-this.beta1)),h=Dl(Fl(u,this.beta2),Fl(Ll(o),1-this.beta2)),d=zl(c,n),p=zl(h,s);l.assign(c),u.assign(h);const f=Dl(Fl(zl(d,Dl(Bl(p),this.epsilon)),-this.learningRate),i);i.assign(f)})),this.accBeta1.assign(Fl(this.accBeta1,this.beta1)),this.accBeta2.assign(Fl(this.accBeta2,this.beta2))})),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),null!=this.accumulatedFirstMoment&&Co(this.accumulatedFirstMoment.map((e=>e.variable))),null!=this.accumulatedSecondMoment&&Co(this.accumulatedSecondMoment.map((e=>e.variable)))}async getWeights(){const e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e),Ao((()=>{this.accBeta1.assign(Yl(this.beta1,this.iterations_+1)),this.accBeta2.assign(Yl(this.beta2,this.iterations_+1))}));const t=e.length/2,n=!1;this.accumulatedFirstMoment=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))),this.accumulatedSecondMoment=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}}const eu=fo({abs_:function(e){const t=co(e,"x","abs");if("complex64"===t.dtype){const e={x:t};return to.runKernel(ss,e)}{const e={x:t};return to.runKernel(Nn,e)}}});function tu(e,t){const n=e.length,s=[];for(let r=0;r1&&1===a&&s.unshift(i)}return s}function nu(e,t){const n=[];for(let s=0;s1)&&n.unshift(i)}return n}function su(e,t){const n=Math.max(e.length,t.length),s=new Array(n);for(let r=0;r{this.iteration=Vl(0).variable(),this.accBeta1=Vl(t).variable()})),null==s&&(this.epsilon=to.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);Ao((()=>{const n=Ql(1,this.accBeta1),s=zl(-this.learningRate,Dl(Fl(this.iteration,this.decay),1));t.forEach(((t,r)=>{const i=to.registeredVariables[t],a=!1;null==this.accumulatedFirstMoment[r]&&(this.accumulatedFirstMoment[r]={originalName:`${t}/m`,variable:Pl(i).variable(a)}),null==this.accumulatedWeightedInfNorm[r]&&(this.accumulatedWeightedInfNorm[r]={originalName:`${t}/v`,variable:Pl(i).variable(a)});const o=Array.isArray(e)?e[r].tensor:e[t];if(null==o)return;const l=this.accumulatedFirstMoment[r].variable,u=this.accumulatedWeightedInfNorm[r].variable,c=Dl(Fl(l,this.beta1),Fl(o,1-this.beta1)),h=Fl(u,this.beta2),d=eu(o),p=ru(h,d);l.assign(c),u.assign(p);const f=Dl(Fl(zl(s,n),zl(c,Dl(p,this.epsilon))),i);i.assign(f)})),this.iteration.assign(Dl(this.iteration,1)),this.accBeta1.assign(Fl(this.accBeta1,this.beta1))})),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),null!=this.accumulatedFirstMoment&&Co(this.accumulatedFirstMoment.map((e=>e.variable))),null!=this.accumulatedWeightedInfNorm&&Co(this.accumulatedWeightedInfNorm.map((e=>e.variable)))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}}class au extends Kl{static get className(){return"SGD"}constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const s=Array.isArray(e)?e[n].tensor:e[t];if(null==s)return;const r=to.registeredVariables[t];Ao((()=>{const e=Dl(Fl(this.c,s),r);r.assign(e)}))})),this.incrementIterations()}setLearningRate(e){this.learningRate=e,null!=this.c&&this.c.dispose(),this.c=ko(Vl(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(0!==(e=await this.extractIterations(e)).length)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}}class ou extends au{static get className(){return"Momentum"}constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=Vl(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const s=to.registeredVariables[t];if(null==this.accumulations[n]){const e=!1;this.accumulations[n]={originalName:`${t}/momentum`,variable:Ao((()=>Pl(s).variable(e)))}}const r=this.accumulations[n].variable,i=Array.isArray(e)?e[n].tensor:e[t];null!=i&&Ao((()=>{let e;const t=Dl(Fl(this.m,r),i);e=this.useNesterov?Dl(Fl(this.c,Dl(i,Fl(t,this.m))),s):Dl(Fl(this.c,t),s),r.assign(t),s.assign(e)}))})),this.incrementIterations()}dispose(){this.m.dispose(),null!=this.accumulations&&Co(this.accumulations.map((e=>e.variable)))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e);this.accumulations=e.map((e=>({originalName:e.name,variable:e.tensor.variable(false)})))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}}class lu extends Kl{static get className(){return"RMSProp"}constructor(e,t=.9,n=0,s=null,r=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=s,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=r,null==s&&(this.epsilon=to.backend.epsilon()),null==e)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const s=to.registeredVariables[t],r=!1;null==this.accumulatedMeanSquares[n]&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:Ao((()=>Pl(s).variable(r)))}),null==this.accumulatedMoments[n]&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:Ao((()=>Pl(s).variable(r)))}),null==this.accumulatedMeanGrads[n]&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:Ao((()=>Pl(s).variable(r)))});const i=Array.isArray(e)?e[n].tensor:e[t];if(null==i)return;const a=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;Ao((()=>{const e=Dl(Fl(a,this.decay),Fl(Ll(i),1-this.decay));if(this.centered){const t=this.accumulatedMeanGrads[n].variable,r=Dl(Fl(t,this.decay),Fl(i,1-this.decay)),l=zl(Fl(i,this.learningRate),Bl(Ql(e,Dl(Ll(r),this.epsilon)))),u=Dl(Fl(o,this.momentum),l);a.assign(e),t.assign(r),o.assign(u);const c=Ql(s,u);s.assign(c)}else{const e=Dl(Fl(a,this.decay),Fl(Ll(i),1-this.decay)),t=Dl(Fl(o,this.momentum),zl(Fl(i,this.learningRate),Bl(Dl(e,this.epsilon))));a.assign(e),o.assign(t);const n=Ql(s,t);s.assign(n)}}))})),this.incrementIterations()}dispose(){null!=this.accumulatedMeanSquares&&Co(this.accumulatedMeanSquares.map((e=>e.variable))),null!=this.accumulatedMeanGrads&&this.centered&&Co(this.accumulatedMeanGrads.map((e=>e.variable))),null!=this.accumulatedMoments&&Co(this.accumulatedMoments.map((e=>e.variable)))}async getWeights(){const e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e);const t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))),this.accumulatedMoments=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))),this.centered&&(this.accumulatedMeanGrads=e.slice(2*t,3*t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}}const uu=[$l,Zl,Jl,iu,ou,lu,au];function cu(e){return new Promise((e=>setTimeout(e))).then(e)}class hu{constructor(e){if(!Sn().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(hu.URL_SCHEME)&&(e=e.slice(hu.URL_SCHEME.length)),null!=e&&0!==e.length||(e="model"),this.modelJsonFileName=e+".json",this.weightDataFileName=e+".weights.bin"}async save(e){if("undefined"==typeof document)throw new Error("Browser downloads are not supported in this environment since `document` is not present");const t=wo.join(e.weightData),n=window.URL.createObjectURL(new Blob([t],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{const t=Uo(e,[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}]),s=window.URL.createObjectURL(new Blob([JSON.stringify(t)],{type:"application/json"})),r=null==this.modelJsonAnchor?document.createElement("a"):this.modelJsonAnchor;if(r.download=this.modelJsonFileName,r.href=s,await cu((()=>r.dispatchEvent(new MouseEvent("click")))),null!=e.weightData){const e=null==this.weightDataAnchor?document.createElement("a"):this.weightDataAnchor;e.download=this.weightDataFileName,e.href=n,await cu((()=>e.dispatchEvent(new MouseEvent("click"))))}return{modelArtifactsInfo:jo(e)}}}}hu.URL_SCHEME="downloads://";class du{constructor(e){if(null==e||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise(((e,t)=>{const n=new FileReader;n.onload=n=>{const s=JSON.parse(n.target.result),r=s.modelTopology;if(null==r)return void t(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));if(null==s.weightsManifest)return void t(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));if(0===this.weightsFiles.length)return void e({modelTopology:r});const i=Wo(s,(e=>this.loadWeights(e)));e(i)},n.onerror=e=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)}))}loadWeights(e){const t=[],n=[];for(const s of e)t.push(...s.weights),n.push(...s.paths);const s=this.checkManifestAndWeightFiles(e),r=n.map((e=>this.loadWeightsFile(e,s[e])));return Promise.all(r).then((e=>[t,e]))}loadWeightsFile(e,t){return new Promise(((n,s)=>{const r=new FileReader;r.onload=e=>{const t=e.target.result;n(t)},r.onerror=t=>s(`Failed to weights data from file of path '${e}'.`),r.readAsArrayBuffer(t)}))}checkManifestAndWeightFiles(e){const t=[],n=this.weightsFiles.map((e=>Po(e.name))),s={};for(const r of e)r.paths.forEach((e=>{const r=Po(e);if(-1!==t.indexOf(r))throw new Error(`Duplicate file basename found in weights manifest: '${r}'`);if(t.push(r),-1===n.indexOf(r))throw new Error(`Weight file with basename '${r}' is not provided.`);s[e]=this.weightsFiles[n.indexOf(r)]}));if(t.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return s}}function pu(e){return new du(e)}function fu(e,t,n,s){!function(e){Gt(null!=e&&Array.isArray(e)&&e.length>0,(()=>"promises must be a none empty array"))}(e),function(e,t){Gt(e>=0&&e<=1,(()=>`Progress fraction must be in range [0, 1], but got startFraction ${e}`)),Gt(t>=0&&t<=1,(()=>`Progress fraction must be in range [0, 1], but got endFraction ${t}`)),Gt(t>=e,(()=>`startFraction must be no more than endFraction, but got startFraction ${e} and endFraction ${t}`))}(n=null==n?0:n,s=null==s?1:s);let r=0;return Promise.all(e.map((i=>(i.then((i=>{const a=n+ ++r/e.length*(s-n);return t(a),i})),i))))}async function mu(e,t){null==t&&(t={});const n=null==t.fetchFunc?Sn().platform.fetch:t.fetchFunc,s=e.map((e=>n(e,t.requestInit,{isBinary:!0}))),r=(null==t.onProgress?await Promise.all(s):await fu(s,t.onProgress,0,.5)).map((e=>e.arrayBuffer()));return null==t.onProgress?await Promise.all(r):await fu(r,t.onProgress,.5,1)}async function gu(e,t="",n,s){return yu((e=>mu(e,{requestInit:s})))(e,t,n)}function yu(e){return async(t,n="",s)=>{const r=t.map((()=>!1)),i={},a=null!=s?s.map((()=>!1)):[],o=[];if(t.forEach(((e,t)=>{let n=0;e.weights.forEach((e=>{const l="quantization"in e?e.quantization.dtype:e.dtype,u=bo[l]*Kt(e.shape),c=()=>{r[t]=!0,null==i[t]&&(i[t]=[]),i[t].push({manifestEntry:e,groupOffset:n,sizeBytes:u})};null!=s?s.forEach(((t,n)=>{t===e.name&&(c(),a[n]=!0)})):c(),o.push(e.name),n+=u}))})),!a.every((e=>e))){const e=s.filter(((e,t)=>!a[t]));throw new Error(`Could not find weights in manifest with names: ${e.join(", ")}. \nManifest JSON has weights with names: ${o.join(", ")}.`)}const l=r.reduce(((e,t,n)=>(t&&e.push(n),e)),[]),u=[];l.forEach((e=>{t[e].paths.forEach((e=>{const t=n+(n.endsWith("/")?"":"/")+e;u.push(t)}))}));const c=await e(u),h={};let d=0;return l.forEach((e=>{const n=t[e].paths.length,s=new wo(c.slice(d,d+n));i[e].forEach((e=>{const t=To(s.slice(e.groupOffset,e.groupOffset+e.sizeBytes),[e.manifestEntry]);for(const e in t)h[e]=t[e]})),d+=n})),h}}qo.registerSaveRouter((e=>Sn().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(hu.URL_SCHEME)?function(e="model"){return new hu(e)}(e.slice(hu.URL_SCHEME.length)):null));class bu{constructor(e,t){if(this.DEFAULT_METHOD="POST",null==t&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.weightUrlConverter=t.weightUrlConverter,null!=t.fetchFunc?(Gt("function"==typeof t.fetchFunc,(()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)")),this.fetch=t.fetchFunc):this.fetch=Sn().platform.fetch,Gt(null!=e&&e.length>0,(()=>"URL path for http must not be null, undefined or empty.")),Array.isArray(e)&&Gt(2===e.length,(()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`)),this.path=e,null!=t.requestInit&&null!=t.requestInit.body)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{},this.loadOptions=t}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");const t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;const n=Uo(e,[{paths:["./model.weights.bin"],weights:e.weightSpecs}]);if(t.body.append("model.json",new Blob([JSON.stringify(n)],{type:"application/json"}),"model.json"),null!=e.weightData){const n=wo.join(e.weightData);t.body.append("model.weights.bin",new Blob([n],{type:"application/octet-stream"}),"model.weights.bin")}const s=await this.fetch(this.path,t);if(s.ok)return{modelArtifactsInfo:jo(e),responses:[s]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async loadModelJSON(){const e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(e){let t=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?t+=" 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.":t+=" Please make sure the server is serving valid JSON for this request.",new Error(t)}const n=t.modelTopology,s=t.weightsManifest;if(null==n&&null==s)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return t}async load(){if(this.loadOptions.streamWeights)return this.loadStream();return Wo(await this.loadModelJSON(),(e=>this.loadWeights(e)))}async loadStream(){const e=await this.loadModelJSON(),t=await this.getWeightUrls(e.weightsManifest),n=Go(e.weightsManifest);return Object.assign(Object.assign({},e),{weightSpecs:n,getWeightStream:()=>function(e,t){var n;const s=null==t.fetchFunc?Sn().platform.fetch:t.fetchFunc;let r,i=0;return null===(n=t.onProgress)||void 0===n||n.call(t,0),new ReadableStream({pull:async n=>{for(var a;it?e.substring(n):"";return[s+"/",r]}(t),r=this.weightPathPrefix||n,i=[],a=[];for(const t of e)for(const e of t.paths)null!=this.weightUrlConverter?a.push(this.weightUrlConverter(e)):i.push(r+e+s);return this.weightUrlConverter&&i.push(...await Promise.all(a)),i}async loadWeights(e){const t=await this.getWeightUrls(e);return[Go(e),await mu(t,this.loadOptions)]}}function wu(e){return null!=e.match(bu.URL_SCHEME_REGEX)}bu.URL_SCHEME_REGEX=/^https?:\/\//;const vu=(e,t)=>{if("undefined"==typeof fetch&&(null==t||null==t.fetchFunc))return null;{let n=!0;if(n=Array.isArray(e)?e.every((e=>wu(e))):wu(e),n)return xu(e,t)}return null};function xu(e,t){return new bu(e,t)}function Au(e,t){return xu(e,t)}qo.registerSaveRouter(vu),qo.registerLoadRouter(vu);class Cu{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}}class ku{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}}class Su{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}}function _u(e,t,n,s){return new Su(Eu(...arguments))}function Eu(e,t,n,s){if(1===arguments.length){const t=null!=e.modelTopology||null!=e.weightSpecs;return new Cu(t?e:{modelTopology:e})}return new Cu({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:s})}function Iu(e){return new ku(e)}function Tu(e){return new ku(e)}function Nu(e,t,n){if(Ht(e),null!=t&&3!==t.length)throw new Error("tensor3d() requires shape to have three numbers");const s=oo(e,n);if(3!==s.length&&1!==s.length)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(1===s.length&&null==t)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return go(e,t,s,n)}let Ru,Ou=!1;function Du(e,t=3){if(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");let n=!1,s=!1,r=!1,i=!1,a=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if("undefined"!=typeof ImageData&&e instanceof ImageData)s=!0;else if("undefined"!=typeof HTMLVideoElement&&e instanceof HTMLVideoElement)r=!0;else if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement)i=!0;else if(null!=e.getContext)a=!0;else{if(!("undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap))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}`);o=!0}if(null!=qi(Fi,to.backendName)){const n={pixels:e},s={numChannels:t};return to.runKernel(Fi,n,s)}const[l,u]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height];let c,h;if(a)c=e.getContext("2d").getImageData(0,0,l,u).data;else if(s||n)c=e.data;else if(i||r||o){if(null==Ru)if("undefined"==typeof document){if("undefined"==typeof OffscreenCanvas||"undefined"==typeof OffscreenCanvasRenderingContext2D)throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");Ru=new OffscreenCanvas(1,1).getContext("2d")}else Ru=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Ru.canvas.width=l,Ru.canvas.height=u,Ru.drawImage(e,0,0,l,u),c=Ru.getImageData(0,0,l,u).data}if(4===t)h=new Int32Array(c);else{const e=l*u;h=new Int32Array(e*t);for(let n=0;n4||2===t)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${t}`);if("float32"!==e.dtype&&"int32"!==e.dtype)throw new Error(`Unsupported type for toPixels: ${e.dtype}. Please use float32 or int32 tensors.`)}async function zu(e,t){let n=co(e,"img","toPixels");if(!(e instanceof Ma)){const e=n;n=Nl(e,"int32"),e.dispose()}Mu(n);const[s,r]=n.shape.slice(0,2),i=2===n.rank?1:n.shape[2],a=await n.data(),o="float32"===n.dtype?255:1,l=new Uint8ClampedArray(r*s*4);for(let e=0;e1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${r}.`)}else if("int32"===n.dtype&&(r<0||r>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${r}.`);1===i?(t[0]=r*o,t[1]=r*o,t[2]=r*o):t[s]=r*o}const s=4*e;l[s+0]=Math.round(t[0]),l[s+1]=Math.round(t[1]),l[s+2]=Math.round(t[2]),l[s+3]=Math.round(t[3])}if(null!=t){if(!Ou){null!=qi(Ss,to.backendName)&&(Ou=!0)}t.width=r,t.height=s;const e=t.getContext("2d"),n=new ImageData(l,r,s);e.putImageData(n,0,0)}return n!==e&&n.dispose(),l}const Fu=fo({fromPixels_:Du}),Bu=-2,Lu=-1;function Pu(e,t,n){const s=e.shape.length;Gt(s===t.length,(()=>`Error in slice${s}D: Length of begin ${t} must match the rank of the array (${s}).`)),Gt(s===n.length,(()=>`Error in slice${s}D: Length of size ${n} must match the rank of the array (${s}).`));for(let r=0;r`Error in slice${s}D: begin[${r}] + size[${r}] (${t[r]+n[r]}) would overflow input.shape[${r}] (${e.shape[r]})`))}function Uu(e){const t=[];let n=0;for(;e>0;)1&e&&t.push(n),e/=2,n++;return t}function Vu(e,t,n){const s=[];for(let r=0;r0){const l=t[0],u=n+1;c=Hu(a,l,u,s,e),h=Ku(o,l,u,r,e),d=Wu(i,l,u,e)}else for(let t=0;t-1)i[r]=0;else{const a=ju(t,n,r);let o=s[a];e&1<-1)i[r]=Number.MAX_SAFE_INTEGER;else{const a=ju(t,n,r);let o=s[a];e&1<0?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER);const l=s[r];return a<0&&(a+=l),a=Vt(0,a,l-1),a}function Zu(e,t,n,s,r,i){let a=t[r];const o=n[r]||1;(e&1<0?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER);const l=s[r];return a<0&&(a+=l),a=o>0?Vt(0,a,l):Vt(-1,a,l-1),a}function Yu(e,t,n){let s=n.length;for(let e=0;e1){s=e;break}for(let r=s+1;r0||n[r]!==e[r])return!1;return!0}function Qu(e,t){let n=e.length>0?e[e.length-1]:1;for(let s=0;s{Gt(-1!==e,(()=>"slice() does not support negative begin indexing."))})),i=null==n?new Array(r).fill(-1):"number"==typeof n?[n,...new Array(r-1).fill(-1)]:n.lengtht>=0?t:(Gt(-1===t,(()=>`Negative size values should be exactly -1 but got ${t} for the slice() size at index ${n}.`)),e.shape[n]-s[n]))),[s,i]}function ec(e,t,n,s,r,i,a,o,l){let u;if(null==s?(u=new Array(t.length),u.fill(1)):u=s,null!=a&&a&a-1)throw new Error("Multiple ellipses in slice is not allowed.");let c=!1;const h={dims:u.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:n.slice(),strides:u.slice(),beginMask:r,endMask:i,ellipsisMask:a,newAxisMask:o,shrinkAxisMask:l};for(let e=0;e0?0:-1,d.strides[t]>0?s:s-1];if(n&&d.strides[t]<=0)throw Error("only stride 1 allowed on non-range indexing.");m=m&&1===d.strides[t];const a=!!(d.beginMask&1<=s)throw Error(`slice index ${d.begin[t]} of dimension ${t} out of bounds.`)}else d.begin[t]=tc(d.begin[t],0,d.strides[t],s,r,i),d.end[t]=tc(d.end[t],1,d.strides[t],s,r,i);const e=1===d.strides[t]&&0===d.begin[t]&&d.end[t]===s;p=p&&e,f=f&&(0===t&&1===d.strides[t]||e)}else p=p&&1===d.strides[t]&&a,f=f&&(0===t&&1===d.strides[t]||a);let o,l=!1;if(d.beginValid&&d.endValid?(o=d.end[t]-d.begin[t],l=!0):n?(o=1,l=!0):a&&s>=0&&(o=d.strides[t]<0?-s:s,l=!0),l){let e;e=0===o||o<0!=d.strides[t]<0?0:Math.trunc(o/d.strides[t])+(o%d.strides[t]!=0?1:0),g.push(e)}else g.push(-1)}for(let e=0;e=0?y.push(g[t]):t===Bu&&y.push(1)}return{finalShapeSparse:y.filter(((e,t)=>d.finalShapeGatherIndices[t]!==Bu)),finalShape:y,isIdentity:p,sliceDim0:f,isSimpleSlice:m,begin:d.begin,end:d.end,strides:d.strides}}function tc(e,t,n,s,r,i){if(r[t])return n>0?i[t]:i[t+1&1];{const t=e<0?s+e:e;return ti[1]?i[1]:t}}const nc=fo({acos_:function(e){const t={x:co(e,"x","acos")};return to.runKernel(Rn,t)}});const sc=fo({acosh_:function(e){const t={x:co(e,"x","acosh")};return to.runKernel(On,t)}});const rc=fo({addN_:function(e){Gt(Array.isArray(e),(()=>"The argument passed to tf.addN() must be a list of tensors")),Gt(e.length>=1,(()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`));const t=e.map(((e,t)=>co(e,`tensors${t}`,"addN"))),n=t[0];t.forEach((e=>{if(e.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")})),t.forEach((e=>{if(!$t(e.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")}));const s=t;return to.runKernel(Mn,s)}});const ic=fo({all_:function(e,t=null,n=!1){const s={x:co(e,"x","all","bool")},r={axis:t,keepDims:n};return to.runKernel(zn,s,r)}});const ac=fo({any_:function(e,t=null,n=!1){const s={x:co(e,"x","any","bool")},r={axis:t,keepDims:n};return to.runKernel(Fn,s,r)}});const oc=fo({argMax_:function(e,t=0){const n={x:co(e,"x","argMax")},s={axis:t};return to.runKernel(Bn,n,s)}});const lc=fo({argMin_:function(e,t=0){const n={x:co(e,"x","argMin")},s={axis:t};return to.runKernel(Ln,n,s)}});const uc=fo({asin_:function(e){const t={x:co(e,"x","asin")};return to.runKernel(Pn,t)}});const cc=fo({asinh_:function(e){const t={x:co(e,"x","asinh")};return to.runKernel(Un,t)}});const hc=fo({atan_:function(e){const t={x:co(e,"x","atan")};return to.runKernel(Vn,t)}});const dc=fo({atan2_:function(e,t){let n=co(e,"a","atan2"),s=co(t,"b","atan2");[n,s]=Ka(n,s);const r={a:n,b:s};return to.runKernel(jn,r)}});const pc=fo({atanh_:function(e){const t={x:co(e,"x","atanh")};return to.runKernel(Wn,t)}});function fc(e,t,n,s,r="NHWC",i){return yc(e,[...t,e[3]],n,i,s,null,null,Ec(r))}function mc(e,t,n,s,r,i,a="channelsLast"){const[o,l]=vc(t);let u;if("channelsLast"===a)u=[o,l,e[3],e[3]];else{if("channelsFirst"!==a)throw new Error(`Unknown dataFormat ${a}`);u=[o,l,e[1],e[1]]}return yc(e,u,n,s,r,i,!1,a)}function gc(e,t,n,s,r,i,a="NDHWC"){const[o,l,u]=xc(t);let c,h;if("NDHWC"===a)h="channelsLast",c=[o,l,u,e[4],e[4]];else{if("NCDHW"!==a)throw new Error(`Unknown dataFormat ${a}`);h="channelsFirst",c=[o,l,u,e[1],e[1]]}return bc(e,c,n,s,r,!1,h,i)}function yc(e,t,n,s,r,i,a=!1,o="channelsLast"){let[l,u,c,h]=[-1,-1,-1,-1];if("channelsLast"===o)[l,u,c,h]=e;else{if("channelsFirst"!==o)throw new Error(`Unknown dataFormat ${o}`);[l,h,u,c]=e}const[d,p,,f]=t,[m,g]=vc(n),[y,b]=vc(s),w=Ac(d,y),v=Ac(p,b),{padInfo:x,outHeight:A,outWidth:C}=function(e,t,n,s,r,i,a,o,l){let u,c,h;if("number"==typeof e){u={top:e,bottom:e,left:e,right:e,type:0===e?"VALID":"NUMBER"};const r=function(e,t,n,s,r){null==s&&(s=wc(e,t,n));const i=e[0],a=e[1],o=Cc((i-t+2*s)/n+1,r),l=Cc((a-t+2*s)/n+1,r);return[o,l]}([t,n],i,s,e,o);c=r[0],h=r[1]}else if("same"===e){c=Math.ceil(t/s),h=Math.ceil(n/r);const e=Math.max(0,(c-1)*s+i-t),o=Math.max(0,(h-1)*r+a-n),l=Math.floor(e/2),d=e-l,p=Math.floor(o/2);u={top:l,bottom:d,left:p,right:o-p,type:"SAME"}}else if("valid"===e)u={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((t-i+1)/s),h=Math.ceil((n-a+1)/r);else{if("object"!=typeof e)throw Error(`Unknown padding parameter: ${e}`);{const d="channelsLast"===l?e[1][0]:e[2][0],p="channelsLast"===l?e[1][1]:e[2][1],f="channelsLast"===l?e[2][0]:e[3][0],m="channelsLast"===l?e[2][1]:e[3][1];u={top:d,bottom:p,left:f,right:m,type:0===d&&0===p&&0===f&&0===m?"VALID":"EXPLICIT"},c=Cc((t-i+d+p)/s+1,o),h=Cc((n-a+f+m)/r+1,o)}}return{padInfo:u,outHeight:c,outWidth:h}}(r,u,c,m,g,w,v,i,o),k=a?f*h:f;let S;return"channelsFirst"===o?S=[l,k,A,C]:"channelsLast"===o&&(S=[l,A,C,k]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:c,inChannels:h,outHeight:A,outWidth:C,outChannels:k,padInfo:x,strideHeight:m,strideWidth:g,filterHeight:d,filterWidth:p,effectiveFilterHeight:w,effectiveFilterWidth:v,dilationHeight:y,dilationWidth:b,inShape:e,outShape:S,filterShape:t}}function bc(e,t,n,s,r,i=!1,a="channelsLast",o){let[l,u,c,h,d]=[-1,-1,-1,-1,-1];if("channelsLast"===a)[l,u,c,h,d]=e;else{if("channelsFirst"!==a)throw new Error(`Unknown dataFormat ${a}`);[l,d,u,c,h]=e}const[p,f,m,,g]=t,[y,b,w]=xc(n),[v,x,A]=xc(s),C=Ac(p,v),k=Ac(f,x),S=Ac(m,A),{padInfo:_,outDepth:E,outHeight:I,outWidth:T}=function(e,t,n,s,r,i,a,o,l,u,c){let h,d,p,f;"valid"===e&&(e=0);if("number"==typeof e){h={top:e,bottom:e,left:e,right:e,front:e,back:e,type:0===e?"VALID":"NUMBER"};const m=function(e,t,n,s,r,i){null==r&&(r=wc(e,t[0],s[0]));const a=[0,0,0,n];for(let n=0;n<3;n++)e[n]+2*r>=t[n]&&(a[n]=Cc((e[n]-t[n]+2*r)/s[n]+1,i));return a}([t,n,s,1],[o,l,u],1,[r,i,a],e,c);d=m[0],p=m[1],f=m[2]}else{if("same"!==e)throw Error(`Unknown padding parameter: ${e}`);{d=Math.ceil(t/r),p=Math.ceil(n/i),f=Math.ceil(s/a);const e=(d-1)*r+o-t,c=(p-1)*i+l-n,m=(f-1)*a+u-s,g=Math.floor(e/2),y=e-g,b=Math.floor(c/2),w=c-b,v=Math.floor(m/2);h={top:b,bottom:w,left:v,right:m-v,front:g,back:y,type:"SAME"}}}return{padInfo:h,outDepth:d,outHeight:p,outWidth:f}}(r,u,c,h,y,b,w,C,k,S,o),N=i?g*d:g;let R;return"channelsFirst"===a?R=[l,N,E,I,T]:"channelsLast"===a&&(R=[l,E,I,T,N]),{batchSize:l,dataFormat:a,inDepth:u,inHeight:c,inWidth:h,inChannels:d,outDepth:E,outHeight:I,outWidth:T,outChannels:N,padInfo:_,strideDepth:y,strideHeight:b,strideWidth:w,filterDepth:p,filterHeight:f,filterWidth:m,effectiveFilterDepth:C,effectiveFilterHeight:k,effectiveFilterWidth:S,dilationDepth:v,dilationHeight:x,dilationWidth:A,inShape:e,outShape:R,filterShape:t}}function wc(e,t,n,s=1){const r=Ac(t,s);return Math.floor((e[0]*(n-1)-n+r)/2)}function vc(e){return"number"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}function xc(e){return"number"==typeof e?[e,e,e]:e}function Ac(e,t){return t<=1?e:e+(e-1)*(t-1)}function Cc(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function kc(e){const[t,n,s]=vc(e);return 1===t&&1===n&&1===s}function Sc(e,t){return kc(e)||kc(t)}function _c(e){return vc(e).every((e=>e>0))}function Ec(e){if("NHWC"===e)return"channelsLast";if("NCHW"===e)return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function Ic(e,t,n){if(null!=n){if("string"==typeof t)throw Error(`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);if("number"==typeof t)Gt(Xt(t),(()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`));else{if("object"!=typeof t)throw Error(`Error in ${e}: Unknown padding parameter: ${t}`);t.forEach((t=>{t.forEach((t=>{Gt(Xt(t),(()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`))}))}))}}}const Tc=fo({reshape_:function(e,t){const n={x:co(e,"x","reshape","string_or_numeric")},s={shape:t};return to.runKernel(Vr,n,s)}});const Nc=fo({avgPool_:function(e,t,n,s,r){const i=co(e,"x","avgPool","float32");Gt(Sc(n,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '1'`));let a=i,o=!1;3===i.rank&&(o=!0,a=Tc(i,[1,i.shape[0],i.shape[1],i.shape[2]])),Gt(4===a.rank,(()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`)),Ic("avgPool",s,r);const l={x:a},u={filterSize:t,strides:n,pad:s,dimRoundingMode:r};let c=to.runKernel(Gn,l,u);return c=Nl(c,i.dtype),o?Tc(c,[c.shape[1],c.shape[2],c.shape[3]]):c}});const Rc=fo({avgPool3d_:function(e,t,n,s,r,i="NDHWC"){const a=co(e,"x","avgPool3d","float32");let o=a,l=!1;4===a.rank&&(l=!0,o=Tc(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),Gt(5===o.rank,(()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`)),Gt("NDHWC"===i,(()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${i}`)),Gt("number"==typeof n&&n>0||Array.isArray(n)&&n[0]>0&&n[1]>0&&n[2]>0,(()=>`Error in avgPool3d: Stride must be > 0, but got '${n}'`)),Ic("avgPool3d",s,r);const u={x:o},c={filterSize:t,strides:n,pad:s,dimRoundingMode:r,dataFormat:i};let h=to.runKernel(Hn,u,c);return h=Nl(h,o.dtype),l?Tc(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}});const Oc=fo({concat_:function(e,t=0){Gt(e.length>=1,(()=>"Pass at least one tensor to concat"));const n=ho(e,"tensors","concat","string_or_numeric");if("complex64"===n[0].dtype&&n.forEach((e=>{if("complex64"!==e.dtype)throw new Error(`Cannot concatenate complex64 tensors with a tensor\n with dtype ${e.dtype}. `)})),1===n.length)return Rl(n[0]);const s=n,r={axis:t};return to.runKernel(rs,s,r)}});const Dc=fo({matMul_:function(e,t,n=!1,s=!1){let r=co(e,"a","matMul"),i=co(t,"b","matMul");[r,i]=Ka(r,i);const a={a:r,b:i},o={transposeA:n,transposeB:s};return to.runKernel($n,a,o)}});const Mc=fo({sigmoid_:function(e){const t={x:co(e,"x","sigmoid","float32")};return to.runKernel(ii,t)}});const zc=fo({slice_:function(e,t,n){const s=co(e,"x","slice","string_or_numeric");if(0===s.rank)throw new Error("Slicing scalar is not possible");const r={x:s},i={begin:t,size:n};return to.runKernel(ti,r,i)}});const Fc=fo({tanh_:function(e){const t={x:co(e,"x","tanh","float32")};return to.runKernel(_i,t)}});const Bc=fo({basicLSTMCell_:function(e,t,n,s,r,i){const a=co(e,"forgetBias","basicLSTMCell"),o=co(t,"lstmKernel","basicLSTMCell"),l=co(n,"lstmBias","basicLSTMCell"),u=co(s,"data","basicLSTMCell"),c=co(r,"c","basicLSTMCell"),h=co(i,"h","basicLSTMCell"),d=Oc([u,h],1),p=Dc(d,o),f=Dl(p,l),m=f.shape[0],g=f.shape[1]/4,y=[m,g],b=zc(f,[0,0],y),w=zc(f,[0,g],y),v=zc(f,[0,2*g],y),x=zc(f,[0,3*g],y),A=Dl(Fl(Mc(b),Fc(w)),Fl(c,Mc(Dl(a,v))));return[A,Fl(Fc(A),Mc(x))]}});const Lc=fo({batchToSpaceND_:function(e,t,n){const s=co(e,"x","batchToSpaceND"),r=t.reduce(((e,t)=>e*t));Gt(s.rank>=1+t.length,(()=>`input rank is ${s.rank} but should be > than blockShape.length ${t.length}`)),Gt(n.length===t.length,(()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`)),Gt(s.shape[0]%r==0,(()=>`input tensor batch is ${s.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${r}`));const i={x:s},a={blockShape:t,crops:n};return to.runKernel(Xn,i,a)}});const Pc=fo({batchNorm_:function(e,t,n,s,r,i){null==i&&(i=.001);const a=co(e,"x","batchNorm"),o=co(t,"mean","batchNorm"),l=co(n,"variance","batchNorm");let u,c;null!=r&&(u=co(r,"scale","batchNorm")),null!=s&&(c=co(s,"offset","batchNorm")),Gt(o.rank===l.rank,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),Gt(null==c||o.rank===c.rank,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),Gt(null==u||o.rank===u.rank,(()=>"Batch normalization gradient requires mean and scale to have equal ranks."));const h={x:function(e){let t;return t=0===e.rank||1===e.rank?Tc(e,[1,1,1,e.size]):2===e.rank?Tc(e,[1,1,e.shape[0],e.shape[1]]):3===e.rank?Tc(e,[1,e.shape[0],e.shape[1],e.shape[2]]):e,t}(a),scale:u,offset:c,mean:o,variance:l},d={varianceEpsilon:i},p=to.runKernel(Us,h,d);return Tc(p,a.shape)}});const Uc=fo({batchNorm2d_:function(e,t,n,s,r,i){const a=co(e,"x","batchNorm"),o=co(t,"mean","batchNorm"),l=co(n,"variance","batchNorm");let u,c;return null!=r&&(u=co(r,"scale","batchNorm")),null!=s&&(c=co(s,"offset","batchNorm")),Gt(2===a.rank,(()=>`Error in batchNorm2D: x must be rank 2 but got rank ${a.rank}.`)),Gt(2===o.rank||1===o.rank,(()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`)),Gt(2===l.rank||1===l.rank,(()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`)),null!=u&&Gt(2===u.rank||1===u.rank,(()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`)),null!=c&&Gt(2===c.rank||1===c.rank,(()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`)),Pc(a,o,l,c,u,i)}});const Vc=fo({batchNorm3d_:function(e,t,n,s,r,i){const a=co(e,"x","batchNorm"),o=co(t,"mean","batchNorm"),l=co(n,"variance","batchNorm");let u,c;return null!=r&&(u=co(r,"scale","batchNorm")),null!=s&&(c=co(s,"offset","batchNorm")),Gt(3===a.rank,(()=>`Error in batchNorm3D: x must be rank 3 but got rank ${a.rank}.`)),Gt(3===o.rank||1===o.rank,(()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`)),Gt(3===l.rank||1===l.rank,(()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`)),null!=u&&Gt(3===u.rank||1===u.rank,(()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`)),null!=c&&Gt(3===c.rank||1===c.rank,(()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`)),Pc(a,o,l,c,u,i)}});const Wc=fo({batchNorm4d_:function(e,t,n,s,r,i){const a=co(e,"x","batchNorm"),o=co(t,"mean","batchNorm"),l=co(n,"variance","batchNorm");let u,c;return null!=r&&(u=co(r,"scale","batchNorm")),null!=s&&(c=co(s,"offset","batchNorm")),Gt(4===a.rank,(()=>`Error in batchNorm4D: x must be rank 4 but got rank ${a.rank}.`)),Gt(4===o.rank||1===o.rank,(()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`)),Gt(4===l.rank||1===l.rank,(()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`)),null!=u&&Gt(4===u.rank||1===u.rank,(()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`)),null!=c&&Gt(4===c.rank||1===c.rank,(()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`)),Pc(a,o,l,c,u,i)}});const jc=fo({bincount_:function(e,t,n){const s=co(e,"x","bincount"),r=co(t,"weights","bincount");Gt("int32"===s.dtype,(()=>`Error in bincount: input dtype must be int32, but got ${s.dtype}`)),Gt(n>=0,(()=>`size must be non-negative, but got ${n}.`)),Gt(r.size===s.size||0===r.size,(()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${s.shape}, weights shape: ${r.shape}.`));const i={x:s,weights:r},a={size:n};return to.runKernel(Zn,i,a)}});const Gc=fo({bitwiseAnd_:function(e,t){const n=co(e,"x","bitwiseAnd"),s=co(t,"y","bitwiseAnd");if(!$t(n.shape,s.shape))throw new Error(`BitwiseAnd: Tensors must have the same shape. x: ${n.shape}, y: ${s.shape}`);if("int32"!==n.dtype||"int32"!==s.dtype)throw new Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${n.dtype} and type of y: ${s.dtype}`);const r={a:n,b:s};return to.runKernel(Yn,r)}});const qc=fo({broadcastArgs_:function(e,t){const n=co(e,"s0","broadcastArgs","int32"),s=co(t,"s1","broadcastArgs","int32");if(1!==n.rank)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${n.rank}`);if(1!==s.rank)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${s.rank}`);const r={s0:n,s1:s};return to.runKernel(Qn,r)}});const Hc=fo({broadcastTo_:function(e,t){let n=co(e,"broadcastTo","x");const s=n.shape;if(bn(t),t.lengthn.rank){const e=n.shape.slice();for(;e.length=0;e--)if(r[e]===t[e])i[e]=1;else if(1!==n.shape[e])throw new Error(`broadcastTo(): [${s}] cannot be broadcast to [${t}].`);if(0===i.map(((e,t)=>e>1?t:-1)).filter((e=>e>=0)).length)return Rl(n);const a={x:n},o={reps:i};return to.runKernel(Ei,a,o)}});const Kc=fo({ceil_:function(e){const t={x:co(e,"x","ceil","float32")};return to.runKernel(es,t)}});const $c=fo({clipByValue_:function(e,t,n){const s=co(e,"x","clipByValue");if(Gt(t<=n,(()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`)),t===n)return Xl(s.shape,t,s.dtype);const r={x:s},i={clipValueMin:t,clipValueMax:n};return to.runKernel(ts,r,i)}});const Xc=fo({concat1d_:function(e){return Oc(e,0)}});const Zc=fo({concat2d_:function(e,t){return Oc(e,t)}});const Yc=fo({concat3d_:function(e,t){return Oc(e,t)}});const Qc=fo({concat4d_:function(e,t){return Oc(e,t)}});const Jc=fo({conv2d_:function(e,t,n,s,r="NHWC",i=[1,1],a){const o=co(e,"x","conv2d","float32"),l=co(t,"filter","conv2d","float32");let u=o,c=!1;3===o.rank&&(c=!0,u=Tc(o,[1,o.shape[0],o.shape[1],o.shape[2]])),Gt(4===u.rank,(()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`)),Gt(4===l.rank,(()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`)),Ic("conv2d",s,a);const h="NHWC"===r?u.shape[3]:u.shape[1];Gt(h===l.shape[2],(()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${l.shape[2]}.`)),Gt(Sc(n,i),(()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`)),Gt(_c(i),(()=>"Error in conv2D: Dilated rates should be larger than 0.")),Gt(_c(n),(()=>"Error in conv2D: Strides should be larger than 0."));const d={x:u,filter:l},p={strides:n,pad:s,dataFormat:r,dilations:i,dimRoundingMode:a},f=to.runKernel(is,d,p);return c?Tc(f,[f.shape[1],f.shape[2],f.shape[3]]):f}});const eh=fo({conv1d_:function(e,t,n,s,r="NWC",i=1,a){const o=co(e,"x","conv1d"),l=co(t,"filter","conv1d");let u=o,c=!1;2===o.rank&&(c=!0,u=Tc(o,[1,o.shape[0],o.shape[1]])),Gt(3===u.rank,(()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`)),Gt(3===l.rank,(()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`)),Ic("conv1d",s,a),Gt(u.shape[2]===l.shape[1],(()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`)),Gt(Sc(n,i),(()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${i}'`)),Gt(_c(i),(()=>"Error in conv1D: Dilated rates should be larger than 0.")),Gt(_c(n),(()=>"Error in conv1D: Stride should be larger than 0.")),Gt("NWC"===r,(()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`));const h=Tc(l,[1,l.shape[0],l.shape[1],l.shape[2]]),d=Tc(u,[u.shape[0],1,u.shape[1],u.shape[2]]),p=Jc(d,h,[1,n],s,"NHWC",[1,i],a);return Tc(p,c?[p.shape[2],p.shape[3]]:[p.shape[0],p.shape[2],p.shape[3]])}});const th=fo({conv2DBackpropInput_:function(e,t,n,s,r,i="NHWC",a){Gt(e.length===t.rank,(()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`));let o=e,l=t,u=!1;3===t.rank&&(u=!0,l=Tc(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),Gt(4===o.length,(()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`)),Gt(4===l.rank,(()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`)),Gt(4===n.rank,(()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`));const c="NHWC"===i?o[3]:o[1],h="NHWC"===i?l.shape[3]:l.shape[1];Gt(c===n.shape[2],(()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${n.shape[2]}.`)),Gt(h===n.shape[3],(()=>`Error in conv2dDerInput: depth of output (${h}) must match output depth for filter ${n.shape[3]}.`)),Ic("conv2dDerInput",r,a);const d={dy:l,filter:n},p={strides:s,pad:r,dataFormat:i,dimRoundingMode:a,inputShape:o},f=to.runKernel(os,d,p);return u?Tc(f,[f.shape[1],f.shape[2],f.shape[3]]):f}});const nh=fo({conv2dTranspose_:function(e,t,n,s,r,i){const a=co(e,"x","conv2dTranspose"),o=co(t,"filter","conv2dTranspose");return th(n,a,o,s,r,"NHWC",i)}});const sh=fo({conv3d_:function(e,t,n,s,r="NDHWC",i=[1,1,1]){const a=co(e,"x","conv3d"),o=co(t,"filter","conv3d");let l=a,u=!1;4===a.rank&&(u=!0,l=Tc(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),Gt(5===l.rank,(()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`)),Gt(5===o.rank,(()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`)),Gt(l.shape[4]===o.shape[3],(()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`)),Gt(Sc(n,i),(()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`)),Gt("NDHWC"===r,(()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`)),Gt(_c(i),(()=>"Error in conv3D: Dilated rates should be larger than 0.")),Gt(_c(n),(()=>"Error in conv3D: Strides should be larger than 0."));const c={x:l,filter:o},h={strides:n,pad:s,dataFormat:r,dilations:i},d=to.runKernel(ls,c,h);return u?Tc(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}});const rh=fo({conv3DBackpropInput_:function(e,t,n,s,r){Gt(e.length===t.rank,(()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`));let i=e,a=t,o=!1;4===t.rank&&(o=!0,a=Tc(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),i=[1,e[0],e[1],e[2],e[3]]);const l=i[4],u=a.shape[4];Gt(5===i.length,(()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${i.length}.`)),Gt(5===a.rank,(()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${a.rank}`)),Gt(5===n.rank,(()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`)),Gt(l===n.shape[3],(()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`)),Gt(u===n.shape[4],(()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${n.shape[4]}.`));const c={dy:a,filter:n},h={pad:r,strides:s,inputShape:i},d=to.runKernel(cs,c,h);return o?Tc(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}});const ih=fo({conv3dTranspose_:function(e,t,n,s,r){const i=co(e,"x","conv3dTranspose"),a=co(t,"filter","conv3dTranspose");return rh(n,i,a,s,r)}});const ah=fo({cos_:function(e){const t={x:co(e,"x","cos","float32")};return to.runKernel(hs,t)}});const oh=fo({cosh_:function(e){const t={x:co(e,"x","cosh","float32")};return to.runKernel(ds,t)}});const lh=fo({cumprod_:function(e,t=0,n=!1,s=!1){const r={x:co(e,"x","cumprod")},i={axis:t,exclusive:n,reverse:s};return to.runKernel(ps,r,i)}});const uh=fo({cumsum_:function(e,t=0,n=!1,s=!1){const r={x:co(e,"x","cumsum")},i={axis:t,exclusive:n,reverse:s};return to.runKernel(fs,r,i)}});const ch=fo({denseBincount_:function(e,t,n,s=!1){const r=co(e,"x","denseBincount"),i=co(t,"weights","denseBincount");Gt("int32"===r.dtype,(()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`)),Gt(r.rank<=2,(()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`)),Gt(n>=0,(()=>`size must be non-negative, but got ${n}.`)),Gt(i.size===r.size||0===i.size,(()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${r.shape}, weights shape: ${i.shape}.`));const a={x:r,weights:i},o={size:n,binaryOutput:s};return to.runKernel(gs,a,o)}});const hh=fo({depthToSpace_:function(e,t,n="NHWC"){const s=co(e,"x","depthToSpace","float32"),r="NHWC"===n?s.shape[1]:s.shape[2],i="NHWC"===n?s.shape[2]:s.shape[3],a="NHWC"===n?s.shape[3]:s.shape[1];Gt(t>1,(()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`)),Gt(r*t>=0,(()=>`Negative dimension size caused by overflow when multiplying\n ${r} and ${t} for depthToSpace with input shape\n ${s.shape}`)),Gt(i*t>=0,(()=>`Negative dimension size caused by overflow when multiplying\n ${i} and ${t} for depthToSpace with input shape\n ${s.shape}`)),Gt(a%(t*t)==0,(()=>`Dimension size must be evenly divisible by ${t*t} but is ${a} for depthToSpace with input shape ${s.shape}`));const o={x:s},l={blockSize:t,dataFormat:n};return to.runKernel(ys,o,l)}});const dh=fo({depthwiseConv2d_:function(e,t,n,s,r="NHWC",i=[1,1],a){const o=co(e,"x","depthwiseConv2d","float32"),l=co(t,"filter","depthwiseConv2d","float32");let u=o,c=!1;3===o.rank&&(c=!0,u=Tc(o,[1,o.shape[0],o.shape[1],o.shape[2]])),Gt(4===u.rank,(()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`)),Gt(4===l.rank,(()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`));const h="NHWC"===r?u.shape[3]:u.shape[1];Gt(h===l.shape[2],(()=>`Error in depthwiseConv2d: number of input channels (${h}) must match the inChannels dimension in filter ${l.shape[2]}.`)),Ic("depthwiseConv2d",s,a);const d={x:u,filter:l},p={strides:n,pad:s,dataFormat:r,dilations:i,dimRoundingMode:a},f=to.runKernel(bs,d,p);return c?Tc(f,[f.shape[1],f.shape[2],f.shape[3]]):f}});const ph=fo({diag_:function(e){const t={x:co(e,"x","diag")};return to.runKernel(xs,t)}});const fh=fo({dilation2d_:function(e,t,n,s,r=[1,1],i="NHWC"){const a=co(e,"x","dilation2d"),o=co(t,"filter","dilation2d");Gt(3===a.rank||4===a.rank,(()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${a.rank}.`)),Gt(3===o.rank,(()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`)),Gt("NHWC"===i,(()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${i}`));let l=a,u=!1;3===a.rank&&(l=Tc(a,[1,a.shape[0],a.shape[1],a.shape[2]]),u=!0),Gt(l.shape[3]===o.shape[2],(()=>`Error in dilation2d: input and filter must have the same depth: ${l.shape[3]} vs ${o.shape[2]}`));const c={x:l,filter:o},h={strides:n,pad:s,dilations:r},d=to.runKernel(As,c,h);return u?Tc(d,[d.shape[1],d.shape[2],d.shape[3]]):d}});const mh=fo({equal_:function(e,t){let n=co(e,"a","equal","string_or_numeric"),s=co(t,"b","equal","string_or_numeric");[n,s]=Ka(n,s),su(n.shape,s.shape);const r={a:n,b:s};return to.runKernel(Rs,r)}});const gh=fo({where_:function(e,t,n){const s=co(t,"a","where"),r=co(n,"b","where"),i=co(e,"condition","where","bool"),a=su(su(i.shape,s.shape),r.shape),o={condition:Hc(i,a),t:Hc(s,a),e:Hc(r,a)};return to.runKernel(Jr,o)}});const yh=fo({divNoNan_:function(e,t){let n=co(e,"a","div"),s=co(t,"b","div");[n,s]=Ka(n,s);const r=zl(n,s),i=Pl(r),a=mh(s,i);return gh(a,i,r)}});const bh=fo({dot_:function(e,t){const n=co(e,"t1","dot"),s=co(t,"t2","dot");Gt(!(1!==n.rank&&2!==n.rank||1!==s.rank&&2!==s.rank),(()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${s.rank}.`));const r=1===n.rank?n.size:n.shape[1],i=1===s.rank?s.size:s.shape[0];if(Gt(r===i,(()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${i}.`)),1===n.rank&&1===s.rank){const e=Tc(n,[1,-1]),t=Tc(s,[-1,1]),r=Dc(e,t);return Tc(r,[])}if(1===n.rank&&2===s.rank){const e=Tc(n,[1,-1]),t=Tc(s,[s.shape[0],s.shape[1]]),r=Dc(e,t);return Tc(r,[r.size])}if(2===n.rank&&1===s.rank){const e=Tc(s,[-1,1]),t=Dc(n,e);return Tc(t,[t.size])}{const e=Tc(s,[s.shape[0],s.shape[1]]);return Dc(n,e)}}});const wh=fo({einsum_:function(e,...t){const n=t.map(((e,t)=>co(e,`tensors${t}`,"einsum"))),s={equation:e};return to.runKernel(Es,n,s)}});const vh=fo({elu_:function(e){const t={x:co(e,"x","elu","float32")};return to.runKernel(Is,t)}});const xh=fo({ensureShape_:function(e,t){const n=co(e,"x","ensureShape","string_or_numeric");if(!function(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;for(let n=0;n"Input dtype must be `int32` or `float32`.")),"int32"===t.dtype&&(t=Nl(t,"float32"));const n={x:t};return to.runKernel(Ns,n)}});function Ch(e,t){for(let n=0;ne[t]))]}function _h(e,t){return kh(e,t.map((e=>1)),t)}function Eh(e,t,n){Gt(Ch(t,n),(()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`))}function Ih(e,t){if(Ch(e,t))return null;const n=[];for(let s=0;sn.push(e))),n}function Th(e){return e.map(((e,t)=>[t,e])).sort(((e,t)=>e[1]-t[1])).map((e=>e[0]))}function Nh(e,t){const n=[];for(let s=t-e;s"Axis must be <= rank of the tensor"));const s={input:n},r={dim:t};return to.runKernel(Ds,s,r)}});const Ph=fo({expm1_:function(e){const t={x:co(e,"x","expm1")};return to.runKernel(Ms,t)}});const Uh=fo({tile_:function(e,t){const n=co(e,"x","tile","string_or_numeric");Gt(n.rank===t.length,(()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`));const s={x:n},r={reps:t};return to.runKernel(Ei,s,r)}});const Vh=fo({eye_:function(e,t,n,s="float32"){null==t&&(t=e);const r=Tl([e,t],s),i=e<=t?e:t;for(let e=0;e`Error in localResponseNormalization: x must be rank 3 or 4 but got\n rank ${i.rank}.`)),Gt(Xt(t),(()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`));let a=i,o=!1;3===i.rank&&(o=!0,a=Tc(i,[1,i.shape[0],i.shape[1],i.shape[2]]));const l={x:a},u={depthRadius:t,bias:n,alpha:s,beta:r},c=to.runKernel(ar,l,u);return o?Tc(c,[c.shape[1],c.shape[2],c.shape[3]]):c}});const td=fo({log_:function(e){const t={x:co(e,"x","log","float32")};return to.runKernel(tr,t)}});const nd=fo({log1p_:function(e){const t={x:co(e,"x","log1p")};return to.runKernel(nr,t)}});const sd=fo({neg_:function(e){const t={x:co(e,"x","neg")};return to.runKernel(Ar,t)}});const rd=fo({softplus_:function(e){const t={x:co(e,"x","softplus")};return to.runKernel(ai,t)}});const id=fo({logSigmoid_:function(e){const t=co(e,"x","logSigmoid");return Ul((e=>({value:sd(rd(sd(e))),gradFunc:t=>Fl(t,Mc(sd(e)))})))(t)}});const ad=fo({logSoftmax_:function(e,t=-1){const n=co(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}`);const s=Ul(((e,n)=>{const s=Rh(e,t,!0),r=Ql(e,s),i=Ql(Nl(r,"float32"),td(Dh(Bh(r),t,!0)));n([i]);return{value:i,gradFunc:(e,n)=>{const[s]=n,r=Bh(s);return Ql(e,Fl(Dh(e,t,!0),r))}}}));return s(n)}});const od=fo({logSumExp_:function(e,t=null,n=!1){const s=co(e,"x","logSumExp"),r=en(t,s.shape),i=Rh(s,r,!0),a=Ql(s,i),o=Bh(a),l=Dh(o,r),u=td(l),c=Dl(Tc(i,u.shape),u);if(n){const e=_h(c.shape,r);return Tc(c,e)}return c}});const ld=fo({logicalAnd_:function(e,t){const n=co(e,"a","logicalAnd","bool"),s=co(t,"b","logicalAnd","bool");su(n.shape,s.shape);const r={a:n,b:s};return to.runKernel(sr,r)}});const ud=fo({logicalNot_:function(e){const t={x:co(e,"x","logicalNot","bool")};return to.runKernel(rr,t)}});const cd=fo({logicalOr_:function(e,t){const n=co(e,"a","logicalOr","bool"),s=co(t,"b","logicalOr","bool");su(n.shape,s.shape);const r={a:n,b:s};return to.runKernel(ir,r)}});const hd=fo({logicalXor_:function(e,t){const n=co(e,"a","logicalXor","bool"),s=co(t,"b","logicalXor","bool");return su(n.shape,s.shape),ld(cd(e,t),ud(ld(e,t)))}}),dd=2147483648;const pd=fo({searchSorted_:function(e,t,n="left"){const s=co(e,"sortedSequence","searchSorted"),r=co(t,"values","searchSorted"),i=s.shape[s.shape.length-1],a=r.shape[r.shape.length-1],o=Tc(s,[-1,i]),l=Tc(r,[-1,a]);if(o.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(o.shape[0]!==l.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(Kt(l.shape)>=dd)throw new Error("values tensor size must less than 2147483648");if(o.shape[1]>=dd)throw new Error(`trailing dim_size must less than 2147483648 for int32 output type, was ${o.shape[1]}`);const u={sortedSequence:o,values:l},c={side:n};return to.runKernel(Qr,u,c)}});function fd(e,t){return pd(e,t,"left")}const md=fo({maxPool_:function(e,t,n,s,r){const i=co(e,"x","maxPool");let a=i,o=!1;3===i.rank&&(o=!0,a=Tc(i,[1,i.shape[0],i.shape[1],i.shape[2]])),Gt(4===a.rank,(()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`)),Gt(Sc(n,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '1'`)),Ic("maxPool",s,r);const l={x:a},u={filterSize:t,strides:n,pad:s,dimRoundingMode:r},c=to.runKernel(cr,l,u);return o?Tc(c,[c.shape[1],c.shape[2],c.shape[3]]):c}});const gd=fo({maxPool3d_:function(e,t=[1,1,1],n,s,r,i="NDHWC"){const a=co(e,"x","maxPool3d");let o=a,l=!1;4===a.rank&&(l=!0,o=Tc(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),Gt(5===o.rank,(()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`)),Gt("NDHWC"===i,(()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${i}`)),Ic("maxPool3d",s,r);const u={x:o},c={filterSize:t,strides:n,pad:s,dimRoundingMode:r,dataFormat:i},h=to.runKernel(dr,u,c);return l?Tc(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}});const yd=fo({maxPoolWithArgmax_:function(e,t,n,s,r=!1){const i={x:co(e,"x","maxPoolWithArgmax")},a={filterSize:t,strides:n,pad:s,includeBatchInIndex:r},o=to.runKernel(fr,i,a);return{result:o[0],indexes:o[1]}}});const bd=fo({mean_:function(e,t=null,n=!1){const s={x:co(e,"x","mean")},r={axis:t,keepDims:n};return to.runKernel(mr,s,r)}});function wd(e,t="float32"){if(bn(e),"complex64"===t){const t=wd(e,"float32"),n=wd(e,"float32");return mo(t,n)}const n=gn(Kt(e),t);return to.makeTensor(n,e,t)}function vd(e,t="float32"){if(bn(e),"complex64"===t){const t=vd(e,"float32"),n=wd(e,"float32");return mo(t,n)}const n=mn(Kt(e),t);return to.makeTensor(n,e,t)}function xd(e,t,{indexing:n="xy"}={}){if("xy"!==n&&"ij"!==n)throw new TypeError(`${n} is not a valid third argument to meshgrid`);if(void 0===e)return[];let s=co(e,"x","meshgrid",e instanceof Ma?e.dtype:"float32");if(void 0===t)return[s];let r=co(t,"y","meshgrid",t instanceof Ma?t.dtype:"float32");const i=Kt(s.shape),a=Kt(r.shape);return"xy"===n?(s=Tc(s,[1,-1]),r=Tc(r,[-1,1]),[Dc(vd([a,1],s.dtype),s),Dc(r,vd([1,i],r.dtype))]):(s=Tc(s,[-1,1]),r=Tc(r,[1,-1]),[Dc(s,vd([1,a],s.dtype)),Dc(vd([i,1],r.dtype),r)])}const Ad=fo({minimum_:function(e,t){let n=co(e,"a","minimum"),s=co(t,"b","minimum");[n,s]=Ka(n,s),"bool"===n.dtype&&(n=Nl(n,"int32"),s=Nl(s,"int32")),su(n.shape,s.shape);const r={a:n,b:s};return to.runKernel(yr,r)}});const Cd=fo({mirrorPad_:function(e,t,n){Gt("reflect"===n||"symmetric"===n,(()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`));const s=co(e,"x","mirrorPad");if(0===s.rank)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");Gt(t.length===s.rank,(()=>`Padding doesn't match input. Must be ${s.rank}. Got ${t.length}.`));const r="reflect"===n?1:0;for(let e=0;e"Invalid number of paddings. Must be length of 2 each.")),Gt(t[e][0]>=0&&t[e][0]<=s.shape[e]-r&&t[e][1]>=0&&t[e][1]<=s.shape[e]-r,(()=>`Padding in dimension ${e} cannot be greater than or equal to ${s.shape[e]-r} or less than 0 for input of shape ${s.shape}`));const i={paddings:t,mode:n},a={x:s};return to.runKernel(br,a,i)}});const kd=fo({mod_:function(e,t){let n=co(e,"a","mod"),s=co(t,"b","mod");[n,s]=Ka(n,s);const r={a:n,b:s};return to.runKernel(wr,r)}});const Sd=fo({moments_:function(e,t=null,n=!1){const s=en(t,(e=co(e,"x","moments")).shape),r=bd(e,s,n);let i=r.shape;n||(i=_h(r.shape,s));const a=Ll(Ql(Nl(e,"float32"),Tc(r,i)));return{mean:r,variance:bd(a,s,n)}}});const _d=fo({multiRNNCell_:function(e,t,n,s){const r=co(t,"data","multiRNNCell"),i=ho(n,"c","multiRNNCell"),a=ho(s,"h","multiRNNCell");let o=r;const l=[];for(let t=0;t2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${a}`);n=n||Math.random();const o={logits:1===a?Tc(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:s},u=to.runKernel(vr,o,l);return 1===a?Tc(u,[u.size]):u}});const Id=fo({notEqual_:function(e,t){let n=co(e,"a","notEqual","string_or_numeric"),s=co(t,"b","notEqual","string_or_numeric");[n,s]=Ka(n,s),su(n.shape,s.shape);const r={a:n,b:s};return to.runKernel(Cr,r)}});const Td=fo({oneHot_:function(e,t,n=1,s=0,r="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);const i={indices:co(e,"indices","oneHot","int32")},a={dtype:r,depth:t,onValue:n,offValue:s};return to.runKernel(Ir,i,a)}});const Nd=fo({onesLike_:function(e){const t={x:co(e,"x","onesLike")};return to.runKernel(Er,t)}});const Rd=fo({outerProduct_:function(e,t){const n=co(e,"v1","outerProduct"),s=co(t,"v2","outerProduct");Gt(1===n.rank&&1===s.rank,(()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${s.rank}.`));const r=Tc(n,[-1,1]),i=Tc(s,[1,-1]);return Dc(r,i)}});const Od=fo({pad_:function(e,t,n=0){const s=co(e,"x","pad");if(0===s.rank)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");const r={paddings:t,constantValue:n},i={x:s};return to.runKernel(Nr,i,r)}});const Dd=fo({pad1d_:function(e,t,n=0){return Gt(2===t.length,(()=>"Invalid number of paddings. Must be length of 2.")),Od(e,[t],n)}});const Md=fo({pad2d_:function(e,t,n=0){return Gt(2===t.length&&2===t[0].length&&2===t[1].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),Od(e,t,n)}});const zd=fo({pad3d_:function(e,t,n=0){return Gt(3===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),Od(e,t,n)}});const Fd=fo({pad4d_:function(e,t,n=0){return Gt(4===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length&&2===t[3].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),Od(e,t,n)}});const Bd=fo({spaceToBatchND_:function(e,t,n){const s=co(e,"x","spaceToBatchND");Gt(s.rank>=1+t.length,(()=>`input rank ${s.rank} should be > than [blockShape] ${t.length}`)),Gt(n.length===t.length,(()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`)),Gt(s.shape.reduce(((e,s,r)=>r>0&&r<=t.length?e&&(s+n[r-1][0]+n[r-1][1])%t[r-1]==0:e),!0),(()=>`input spatial dimensions ${s.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`));const r={x:s},i={blockShape:t,paddings:n};return to.runKernel(ui,r,i)}});const Ld=fo({pool_:function(e,t,n,s,r,i,a){null==r&&(r=[1,1]),null==i&&(i=1),0===s&&(s="valid");const o=co(e,"x","maxPool");let l=o,u=!1;3===o.rank&&(u=!0,l=Tc(o,[1,o.shape[0],o.shape[1],o.shape[2]])),Gt(Sc(i,r),(()=>`Error in pool: Either strides or dilations must be 1. Got strides ${i} and dilations '${r}'`));const c=mc(l.shape,t,i,r,s),h=[c.dilationHeight,c.dilationWidth];let d;d="same"===s?function(e,t){const n=e.map(((e,n)=>e+(e-1)*(t[n]-1))),s=n.map((e=>e-1)),r=s.map((e=>Math.floor(e/2))),i=s.map(((e,t)=>e-r[t]));return s.map(((e,t)=>[r[t],i[t]]))}([c.filterHeight,c.filterWidth],h):[[0,0],[0,0]];const p=1===h[0]&&1===h[1],[f,m]=function(e,t,n){const s=n.map((e=>e[0])),r=n.map((e=>e[1])),i=e.concat(s,r),a=t.map(((e,t)=>(e-i[t]%e)%e)),o=r.map(((e,t)=>e+a[t])),l=t.map(((e,t)=>[s[t],o[t]])),u=t.map(((e,t)=>[0,a[t]]));return[l,u]}([c.inHeight,c.inWidth],h,d),g=p?s:"valid",y=p?l:Bd(l,h,f),b=("avg"===n?()=>Nc(y,t,i,g,a):()=>md(y,t,i,g,a))(),w=p?b:Lc(b,h,m);return u?Tc(w,[w.shape[1],w.shape[2],w.shape[3]]):w}});const Pd=fo({prelu_:function(e,t){const n={x:co(e,"x","prelu"),alpha:co(t,"alpha","prelu")};return to.runKernel(Or,n)}});const Ud=fo({prod_:function(e,t=null,n=!1){let s=co(e,"x","prod");"bool"===s.dtype&&(s=Nl(s,"int32"));const r={x:s},i={axis:t,keepDims:n};return to.runKernel(Dr,r,i)}});const Vd=fo({raggedGather_:function(e,t,n,s){const r={paramsNestedSplits:e.map(((e,t)=>co(e,`tensors${t}`,"raggedGather","int32"))),paramsDenseValues:co(t,"paramsDenseValues","raggedGather"),indices:co(n,"indices","raggedGather","int32")},i={outputRaggedRank:s},a=to.runKernel(Mr,r,i);return{outputNestedSplits:a.slice(0,a.length-1),outputDenseValues:a[a.length-1]}}});const Wd=fo({raggedRange_:function(e,t,n){const s=co(e,"starts","raggedRange"),r={starts:s,limits:co(t,"limits","raggedRange",s.dtype),deltas:co(n,"deltas","raggedRange",s.dtype)},i=to.runKernel(zr,r);return{rtNestedSplits:i[0],rtDenseValues:i[1]}}});const jd=fo({raggedTensorToTensor_:function(e,t,n,s,r){const i=co(e,"shape","raggedTensorToTensor","int32"),a=co(t,"values","raggedTensorToTensor"),o={shape:i,values:a,defaultValue:co(n,"defaultValue","raggedTensorToTensor",a.dtype),rowPartitionTensors:s.map(((e,t)=>co(e,`tensors${t}`,"raggedTensorToTensor","int32")))},l={rowPartitionTypes:r};return to.runKernel(Fr,o,l)}});const Gd=fo({rand_:function(e,t,n){bn(e);const s=Kt(e);let r=null;if(null==n||"float32"===n)r=new Float32Array(s);else if("int32"===n)r=new Int32Array(s);else{if("bool"!==n)throw new Error(`Unknown data type ${n}`);r=new Uint8Array(s)}for(let e=0;e=1||0===i);const a=Math.sqrt(-2*Math.log(i)/i);e=this.mean+this.stdDev*s*a,t=this.mean+this.stdDev*r*a,this.truncated&&!this.isValidTruncated(e)||(n=!0)}return this.truncated&&!this.isValidTruncated(t)||(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return null==this.dtype||"float32"===this.dtype?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}}class Kd{constructor(e,t,n,s){this.alpha=e,this.beta=1/t,this.dtype=n;const r=s||Math.random();this.randu=qd.alea(r.toString()),this.randn=new Hd(0,1,n,!1,this.randu()),this.d=e<1?e+2/3:e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,s,r,i;for(;;){do{s=this.randn.nextValue(),i=1+this.c*s}while(i<=0);if(i*=i*i,e=s*s,t=1-.331*e*e,n=.5*e+this.d*(1-i+Math.log(i)),r=this.randu(),rnull==this.dtype||"float32"===this.dtype,this.min=e,this.range=t-e,this.dtype=n,null==s&&(s=Math.random()),"number"==typeof s&&(s=s.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=qd.alea(s)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}const Xd=fo({randomGamma_:function(e,t,n=1,s="float32",r){if(bn(e),null==n&&(n=1),null==s&&(s="float32"),"float32"!==s&&"int32"!==s)throw new Error(`Unsupported data type ${s}`);const i=new Kd(t,n,s,r),a=Tl(e,s);for(let e=0;e`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`)),ip(t,0)}});const op=fo({reverse2d_:function(e,t){const n=co(e,"x","reverse");return Gt(2===n.rank,(()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`)),ip(n,t)}});const lp=fo({reverse3d_:function(e,t){const n=co(e,"x","reverse");return Gt(3===n.rank,(()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`)),ip(n,t)}});const up=fo({reverse4d_:function(e,t){const n=co(e,"x","reverse");return Gt(4===n.rank,(()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`)),ip(n,t)}});const cp=fo({round_:function(e){const t={x:co(e,"x","round")};return to.runKernel($r,t)}});const hp=fo({rsqrt_:function(e){const t={x:co(e,"x","rsqrt","float32")};return to.runKernel(Xr,t)}});const dp=fo({selu_:function(e){const t={x:co(e,"x","selu")};return to.runKernel(ei,t)}});const pp=fo({separableConv2d_:function(e,t,n,s,r,i=[1,1],a="NHWC"){const o=co(e,"x","separableConv2d"),l=co(t,"depthwiseFilter","separableConv2d"),u=co(n,"pointwiseFilter","separableConv2d");let c=o,h=!1;if(3===o.rank&&(h=!0,c=Tc(o,[1,o.shape[0],o.shape[1],o.shape[2]])),"NCHW"===a)throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");Gt(4===c.rank,(()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`)),Gt(4===l.rank,(()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`)),Gt(4===u.rank,(()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`)),Gt(1===u.shape[0],(()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`)),Gt(1===u.shape[1],(()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`));const d=l.shape[2],p=l.shape[3];Gt(u.shape[2]===d*p,(()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${d*p}, but got ${u.shape[2]}.`));const f=dh(c,l,s,r,a,i),m=Jc(f,u,1,"valid",a);return h?Tc(m,[m.shape[1],m.shape[2],m.shape[3]]):m}});const fp=async function(e,t){const n=co(e,"x","setdiff1d"),s=co(t,"y","setdiff1d");Gt(n.dtype===s.dtype,(()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${s.dtype}).`)),Gt(1===n.rank,(()=>`x should be 1D tensor, but got x (${n.shape}).`)),Gt(1===s.rank,(()=>`y should be 1D tensor, but got y (${s.shape}).`));const r=await n.data(),i=await s.data(),a=new Set(i);let o=0;for(let e=0;e`slice1d expects a rank-1 tensor, but got a rank-${s.rank} tensor`)),zc(s,[t],[n])}});const wp=fo({slice2d_:function(e,t,n){const s=co(e,"x","slice2d");return Gt(2===s.rank,(()=>`slice2d expects a rank-2 tensor, but got a rank-${s.rank} tensor`)),zc(s,t,n)}});const vp=fo({slice3d_:function(e,t,n){const s=co(e,"x","slice3d");return Gt(3===s.rank,(()=>`slice3d expects a rank-3 tensor, but got a rank-${s.rank} tensor`)),zc(s,t,n)}});const xp=fo({slice4d_:function(e,t,n){const s=co(e,"x","slice4d");return Gt(4===s.rank,(()=>`slice4d expects a rank-4 tensor, but got a rank-${s.rank} tensor`)),zc(s,t,n)}});const Ap=fo({softmax_:function(e,t=-1){const n=co(e,"logits","softmax","float32");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}`);const s={logits:n},r={dim:t};return to.runKernel(hi,s,r)}});const Cp=fo({fft_:function(e){Gt("complex64"===e.dtype,(()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`));const t={input:e};return to.runKernel(zs,t)}});const kp=fo({ifft_:function(e){Gt("complex64"===e.dtype,(()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`));const t={input:e};return to.runKernel(Hs,t)}});const Sp=fo({irfft_:function(e){const t=e.shape[e.shape.length-1],n=e.size/t;let s;if(t<=2){const r=Tc(e,[n,t]);s=kp(r)}else{const r=[n,2*(t-1)],i=Tc(tp(e),[n,t]),a=Tc(Hh(e),[n,t]),o=ip(zc(i,[0,1],[n,t-2]),1),l=Fl(ip(zc(a,[0,1],[n,t-2]),1),Vl(-1)),u=Oc([i,o],1),c=Oc([a,l],1),h=Tc(mo(u,c),[r[0],r[1]]);s=kp(h)}if(s=tp(s),3===e.rank&&0!==e.shape[0]){const t=s,n=e.shape[0];s=Tc(s,[n,s.shape[0]/n,s.shape[1]]),t.dispose()}return s}});const _p=fo({split_:function(e,t,n=0){const s={x:co(e,"x","split")},r={numOrSizeSplits:t,axis:n};return to.runKernel(ci,s,r)}});const Ep=fo({rfft_:function(e,t){Gt("float32"===e.dtype,(()=>`The dtype for rfft() must be real value but got ${e.dtype}`));let n=e.shape[e.shape.length-1];const s=e.size/n;let r;if(null!=t&&t0)),i=e.shape.map((e=>e));i[e.shape.length-1]=t,r=zc(e,s,i),n=t}else if(null!=t&&t>n){const s=e.shape.map((e=>e));s[e.shape.length-1]=t-n,r=Oc([e,wd(s)],e.shape.length-1),n=t}else r=e;const i=Pl(r),a=Tc(mo(r,i),[s,n]),o=Cp(a),l=Math.floor(n/2)+1,u=tp(o),c=Hh(o),h=_p(u,[l,n-l],u.shape.length-1),d=_p(c,[l,n-l],c.shape.length-1),p=r.shape.slice();return p[r.shape.length-1]=l,Tc(mo(h[0],d[0]),p)}});const Ip=fo({squaredDifference_:function(e,t){let n=co(e,"a","squaredDifference"),s=co(t,"b","squaredDifference");[n,s]=Ka(n,s),su(n.shape,s.shape);const r={a:n,b:s};return to.runKernel(yi,r,{})}});const Tp=fo({squeeze_:function(e,t){const n=co(e,"x","squeeze","string_or_numeric");return Tc(n,tn(n.shape,t).newShape)}});const Np=fo({stack_:function(e,t=0){const n=ho(e,"tensors","stack","string_or_numeric");Gt(n.length>=1,(()=>"Pass at least one tensor to tf.stack")),n.length>0&&Gt(t<=n[0].rank,(()=>"Axis must be <= rank of the tensor"));const s=n,r={axis:t};return to.runKernel(Tr,s,r)}});const Rp=fo({step_:function(e,t=0){const n={x:co(e,"x","step")},s={alpha:t};return to.runKernel(zi,n,s)}});const Op=fo({stridedSlice_:function(e,t,n,s,r=0,i=0,a=0,o=0,l=0){const u={x:co(e,"x","stridedSlice","string_or_numeric")},c={begin:t,end:n,strides:s,beginMask:r,endMask:i,ellipsisMask:a,newAxisMask:o,shrinkAxisMask:l};return to.runKernel(vi,u,c)}});const Dp=fo({tan_:function(e){const t={x:co(e,"x","tan","float32")};return to.runKernel(Si,t)}});function Mp(e,t){Ht(e);const n=oo(e,t);if(1!==n.length)throw new Error("tensor1d() requires values to be a flat/TypedArray");return go(e,null,n,t)}function zp(e,t,n){if(Ht(e),null!=t&&2!==t.length)throw new Error("tensor2d() requires shape to have two numbers");const s=oo(e,n);if(2!==s.length&&1!==s.length)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(1===s.length&&null==t)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return go(e,t,s,n)}function Fp(e,t,n){if(Ht(e),null!=t&&4!==t.length)throw new Error("tensor4d() requires shape to have four numbers");const s=oo(e,n);if(4!==s.length&&1!==s.length)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(1===s.length&&null==t)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return go(e,t,s,n)}function Bp(e,t,n){if(Ht(e),null!=t&&5!==t.length)throw new Error("tensor5d() requires shape to have five numbers");const s=oo(e,n);if(5!==s.length&&1!==s.length)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(1===s.length&&null==t)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return go(e,t,s,n)}function Lp(e,t,n){if(Ht(e),null!=t&&6!==t.length)throw new Error("tensor6d() requires shape to have six numbers");const s=oo(e,n);if(6!==s.length&&1!==s.length)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(1===s.length&&null==t)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return go(e,t=t||s,s,n)}function Pp(e,t,n){const s=t.rank>1?t.shape[t.rank-1]:1,r=t.rank>1?t.rank-1:1,i=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${n.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${s}, and batchDim: ${r}.`;if(n.rank1?t.shape[s-1]:1,i=n.length;let a=1;for(let e=r;e= 0 but got ${t}`);if(t>r)throw new Error(`'k' passed to topk() must be <= the last dimension (${r}) but got ${t}`);const i={x:s},a={k:t,sorted:n},[o,l]=to.runKernel(Ii,i,a);return{values:o,indices:l}}});const Gp=fo({truncatedNormal_:function(e,t=0,n=1,s,r){if(bn(e),null!=s&&"bool"===s)throw new Error("Unsupported data type $ { dtype }");const i=new Hd(t,n,s,!0,r),a=Tl(e,s);for(let e=0;e0,(()=>"The input tensor must be at least 1D"));const s={x:n},r={axis:t},[i,a]=to.runKernel(Ri,s,r);return{values:i,indices:a}}});const Hp=fo({unsortedSegmentSum_:function(e,t,n){const s=co(e,"x","unsortedSegmentSum"),r=co(t,"segmentIds","unsortedSegmentSum","int32");Gt(Xt(n),(()=>"numSegments must be of dtype int"));const i={x:s,segmentIds:r},a={numSegments:n};return to.runKernel(Di,i,a)}});const Kp=fo({unstack_:function(e,t=0){const n=co(e,"x","unstack","string_or_numeric");Gt(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`));const s={value:n},r={axis:t};return to.runKernel(Oi,s,r)}});function $p(e,t){return pd(e,t,"right")}function Xp(e,t=!0,n,s){return to.makeVariable(e,t,n,s)}function Zp(e,t){const n=[];for(let e=0;e0,(()=>"mask cannot be scalar")),qt(o.slice(i,i+a),r.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let e=i;et)).reverse()),Gt(s.rank===t.length,(()=>`Error in transpose: rank of input ${s.rank} must match length of perm ${t}.`)),t.forEach((e=>{Gt(e>=0&&e"All entries in 'perm' must be between 0 and "+(s.rank-1)+` but got ${t}`))})),s.rank<=1)return s.clone();const r={x:s},i={perm:t};return"complex64"===s.dtype?Ao((()=>{let e=tp(s),t=Hh(s);return e=to.runKernel(Ni,{x:e},i),t=to.runKernel(Ni,{x:t},i),n&&(t=sd(t)),mo(e,t)})):to.runKernel(Ni,r,i)}});const ef=fo({movingAverage_:function(e,t,n,s,r=!0){const i=co(e,"v","movingAverage"),a=co(t,"x","movingAverage"),o=co(n,"decay","movingAverage");var l,u;u=a,Gt((l=i).dtype===u.dtype,(()=>`The dtypes of the first(${l.dtype}) and second(${u.dtype}) input must match`)),Gt($t(i.shape,a.shape),(()=>"Shape mismatch in v and x"));const c=Vl(1),h=Ql(c,o);let d=Fl(Ql(a,i),h);if(r){Gt(null!=s,(()=>"When using zeroDebias: true, step is required."));const e=co(s,"step","movingAverage");d=zl(d,Ql(c,Yl(o,e)))}return Dl(i,d)}});const tf=fo({scatterND_:function(e,t,n){bn(n);const s=co(e,"indices","scatterND","int32"),r=co(t,"updates","scatterND");Up(r,s,n);const i={indices:s,updates:r},a={shape:n};return to.runKernel(Zr,i,a)}});const nf=fo({sparseToDense_:function(e,t,n,s=0){bn(n);const r=co(e,"sparseIndices","sparseToDense","int32"),i=co(t,"sparseValues","sparseToDense","string_or_numeric"),a=co(s,"defaultValue","sparseToDense",i.dtype);!function(e,t,n,s){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}.`);const r=e.rank>0?e.shape[0]:1,i=e.rank>1?e.shape[1]:1;if(n.length!==i)throw new Error(`outputShape has incorrect number of elements:, ${n.length}, should be: ${i}.`);const a=t.size;if(0!==t.rank&&(1!==t.rank||a!==r))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${r}]`);if(t.dtype!==s.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}(r,i,n,a);const o={sparseIndices:r,sparseValues:i,defaultValue:a},l={outputShape:n};return to.runKernel(gi,o,l)}});const sf=fo({gatherND_:function(e,t){const n=co(t,"indices","gatherND","int32"),s={params:co(e,"x","gatherND","string_or_numeric"),indices:n};return to.runKernel(Ws,s)}});const rf=fo({dropout_:function(e,t,n,s){const r=co(e,"x","dropout");if(Gt("float32"===r.dtype,(()=>`x has to be a floating point tensor since it's going to be scaled, but got a ${r.dtype} tensor instead.`)),Gt(t>=0&&t<1,(()=>`rate must be a float in the range [0, 1), but got ${t}.`)),0===t)return e instanceof Ma?r.clone():r;const i=function(e,t){if(null==t)return e.shape.slice();if($t(e.shape,t))return t;if(e.shape.length===t.length){const n=[];for(let s=0;s1,(()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${s.rank}`)),Gt(s.rank-1===r.rank,(()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${s.rank} and targets rank ${r.rank}`)),qt(s.shape.slice(0,s.shape.length-1),r.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");const i=s.shape[s.shape.length-1];Gt(n>0&&n<=i,(()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${i}), but got ${n}`));const a=await s.data(),o=await r.data(),[l,u]=[a.length/i,i],c=nn("bool",l);for(let e=0;et.value-e.value)),c[e]=0;for(let t=0;t`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`)),Gt(4===l.rank,(()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`)),Gt(4===n.length,(()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`));const u="NHWC"===i?o.shape[3]:o.shape[1],c="NHWC"===i?l.shape[3]:l.shape[1];Gt(u===n[2],(()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`)),Gt(c===n[3],(()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${n[3]}).`)),Ic("conv2dDerFilter",r,a);const h={x:o,dy:l},d={strides:s,pad:r,dataFormat:i,dimRoundingMode:a,filterShape:n};return to.runKernel(as,h,d)}});function cf(e,t,n){if(null==n||"linear"===n)return e;if("relu"===n)return Fl(e,Rp(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function hf(e,t){let n=t;const s=nu(e.shape,t.shape);return s.length>0&&(n=Dh(n,s)),Tc(n,e.shape)}function df(e,t,n,s){if("linear"===t)return e;if("relu"===t)return sp(e);if("elu"===t)return vh(e);if("relu6"===t)return rp(e);if("prelu"===t)return Pd(e,n);if("leakyrelu"===t)return Zh(e,s);if("sigmoid"===t)return Mc(e);throw new Error(`Unknown fused activation ${t}.`)}const pf=(e,t)=>!(e>0)||"linear"===t;const ff=fo({fusedConv2d_:function({x:e,filter:t,strides:n,pad:s,dataFormat:r="NHWC",dilations:i=[1,1],dimRoundingMode:a,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(l=l||"linear",!1===pf(to.state.gradientDepth,l)){Gt("NHWC"===r,(()=>`Error in fused conv2d: got dataFormat of ${r} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`));let h=Jc(e,t,n,s,r,i,a);return null!=o&&(h=Dl(h,o)),df(h,l,u,c)}const h=co(e,"x","conv2d","float32"),d=co(t,"filter","conv2d","float32");let p=h,f=!1;3===h.rank&&(f=!0,p=Tc(h,[1,h.shape[0],h.shape[1],h.shape[2]])),Gt(4===p.rank,(()=>`Error in fused conv2d: input must be rank 4, but got rank ${p.rank}.`)),Gt(4===d.rank,(()=>`Error in fused conv2d: filter must be rank 4, but got rank ${d.rank}.`)),Ic("fused conv2d",s,a);const m="NHWC"===r?p.shape[3]:p.shape[1];Gt(d.shape[2]===m,(()=>`Error in conv2d: depth of input (${m}) must match input depth for filter ${d.shape[2]}.`)),Gt(Sc(n,i),(()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`));const g=yc(p.shape,d.shape,n,i,s,a);let y,b;if(null!=o&&(y=co(o,"bias","fused conv2d"),[y]=Ka(y,h),"NHWC"===r?su(g.outShape,y.shape):(Gt(y.shape.length<=1,(()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${y.shape.length}.`)),Gt(0===y.shape.length||y.shape[0]===g.outChannels||1===y.shape[0],(()=>`Error in fused conv2d: bias shape (${y.shape}) is not compatible with the number of output channels (${g.outChannels})`)))),null!=u){const e=u.shape;if(Gt(e.length<=1||3===e.length,(()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${e.length}.`)),1===e.length)Gt(1===e[0]||e[0]===g.outChannels,(()=>`Error in fused conv2d: PReLU activation weights (${e}) is not compatible with the number of output channels (${g.outChannels}).`));else if(3===e.length)try{su(e,g.outShape)}catch(t){const n=`Error in fused conv2d: PReLU activation weights (${e}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(n)}b=co(u,"prelu weights","fused conv2d")}const w=(e,t)=>{Gt("NHWC"===r,(()=>`Error in gradient of fused conv2D: got dataFormat of ${r} but only NHWC is currently supported.`));const[a,o,u,c]=t,h=cf(e,u,l);Gt(kc(i),(()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${i}'`));const d=[th(o.shape,h,a,n,s),uf(o,h,a.shape,n,s)];if(null!=c){const e=hf(c,h);d.push(e)}return d},v={x:p,filter:d,bias:y,preluActivationWeights:b},x={strides:n,pad:s,dataFormat:r,dilations:i,dimRoundingMode:a,activation:l,leakyreluAlpha:c};if(null==o){const e=Ul(((e,t,n)=>{let s=to.runKernel(Pi,v,x);return n([t,e,s]),f&&(s=Tc(s,[s.shape[1],s.shape[2],s.shape[3]])),{value:s,gradFunc:w}}));return e(p,d)}{const e=Ul(((e,t,n,s)=>{let r=to.runKernel(Pi,v,x);return s([t,e,r,n]),f&&(r=Tc(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:w}}));return e(p,d,y)}}});const mf=fo({depthwiseConv2dNativeBackpropFilter_:function(e,t,n,s,r,i=[1,1],a){let o=e;3===e.rank&&(o=Tc(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;3===l.rank&&(l=Tc(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const u={x:o,dy:l},c={strides:s,pad:r,dimRoundingMode:a,dilations:i,filterShape:n};return to.runKernel(ws,u,c)}});const gf=fo({depthwiseConv2dNativeBackpropInput_:function(e,t,n,s,r,i=[1,1],a){let o=t,l=!1;3===t.rank&&(l=!0,o=Tc(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const u={dy:o,filter:n},c={strides:s,pad:r,dimRoundingMode:a,dilations:i,inputShape:e},h=to.runKernel(vs,u,c);return l?Tc(h,[h.shape[1],h.shape[2],h.shape[3]]):h}});const yf=fo({fusedDepthwiseConv2d_:function({x:e,filter:t,strides:n,pad:s,dataFormat:r="NHWC",dilations:i=[1,1],dimRoundingMode:a,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(!1===pf(to.state.gradientDepth,l)){let h=dh(e,t,n,s,r,i,a);return null!=o&&(h=Dl(h,o)),df(h,l,u,c)}const h=co(e,"x","depthwiseConv2d","float32"),d=co(t,"filter","depthwiseConv2d","float32");let p=h,f=!1;3===h.rank&&(f=!0,p=Tc(h,[1,h.shape[0],h.shape[1],h.shape[2]])),Gt(4===p.rank,(()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${p.rank}.`)),Gt(4===d.rank,(()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${d.rank}.`)),Gt(p.shape[3]===d.shape[2],(()=>`Error in fused depthwiseConv2d: number of input channels (${p.shape[3]}) must match the inChannels dimension in filter ${d.shape[2]}.`)),null==i&&(i=[1,1]),Gt(Sc(n,i),(()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`)),Ic("fused depthwiseConv2d",s,a);const m=yc(p.shape,d.shape,n,i,s,a,!0);let g,y;null!=o&&(g=co(o,"bias","fused conv2d"),[g]=Ka(g,h),su(m.outShape,g.shape)),null!=u&&(y=co(u,"prelu weights","fused depthwiseConv2d"));const b=(e,t)=>{Gt(kc(i),(()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${i}'`));const[r,o,u,c]=t,h=cf(e,u,l),d=gf(o.shape,h,r,n,s,i,a),p=mf(o,h,r.shape,n,s,i,a);if(null!=c){return[d,p,hf(g,h)]}return[d,p]},w={x:p,filter:d,bias:g,preluActivationWeights:y},v={strides:n,pad:s,dataFormat:r,dilations:i,dimRoundingMode:a,activation:l,leakyreluAlpha:c};if(null==o){const e=Ul(((e,t,n)=>{let s=to.runKernel(Ui,w,v);return n([t,e,s]),f&&(s=Tc(s,[s.shape[1],s.shape[2],s.shape[3]])),{value:s,gradFunc:b}}));return e(p,d)}{const e=Ul(((e,t,n,s)=>{let r=to.runKernel(Ui,w,v);return s([t,e,r,n]),f&&(r=Tc(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:b}}));return e(p,d,g)}}});const bf=fo({fusedMatMul_:function({a:e,b:t,transposeA:n=!1,transposeB:s=!1,bias:r,activation:i="linear",preluActivationWeights:a,leakyreluAlpha:o=.2}){if(!1===pf(to.state.gradientDepth,i)){let l=Dc(e,t,n,s);return null!=r&&(l=Dl(l,r)),df(l,i,a,o)}let l=co(e,"a","fused matMul"),u=co(t,"b","fused matMul");[l,u]=Ka(l,u);const c=n?l.shape[l.rank-2]:l.shape[l.rank-1],h=s?u.shape[u.rank-1]:u.shape[u.rank-2],d=n?l.shape[l.rank-1]:l.shape[l.rank-2],p=s?u.shape[u.rank-2]:u.shape[u.rank-1],f=l.shape.slice(0,-2),m=u.shape.slice(0,-2),g=Kt(f),y=Kt(m);Gt(c===h,(()=>`Error in fused matMul: inner shapes (${c}) and (${h}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${n} and transposeB=${s} must match.`));const b=su(l.shape.slice(0,-2),u.shape.slice(0,-2)).concat([d,p]),w=Tc(l,n?[g,c,d]:[g,d,c]),v=Tc(u,s?[y,p,h]:[y,h,p]);let x,A;null!=r&&(x=co(r,"bias","fused matMul"),[x]=Ka(x,l),su(b,x.shape)),null!=a&&(A=co(a,"prelu weights","fused matMul"));const C=(e,t)=>{const[a,o,l,u]=t,c=cf(Tc(e,l.shape),l,i);let h,d;if(n||s?!n&&s?(h=Dc(c,o,!1,!1),d=Dc(c,a,!0,!1)):n&&!s?(h=Dc(o,c,!1,!0),d=Dc(a,c,!1,!1)):(h=Dc(o,c,!0,!0),d=Dc(c,a,!0,!0)):(h=Dc(c,o,!1,!0),d=Dc(a,c,!0,!1)),null!=r){return[h,d,hf(u,c)]}return[h,d]},k={a:w,b:v,bias:x,preluActivationWeights:A},S={transposeA:n,transposeB:s,activation:i,leakyreluAlpha:o};if(null==r){const e=Ul(((e,t,n)=>{const s=to.runKernel(Li,k,S);return n([e,t,s]),{value:Tc(s,b),gradFunc:C}}));return e(w,v)}{const e=Ul(((e,t,n,s)=>{const r=to.runKernel(Li,k,S);return s([e,t,r,n]),{value:Tc(r,b),gradFunc:C}}));return e(w,v,x)}}});const wf=fo({hammingWindow_:function(e){return of(e,.54,.46)}});const vf=fo({hannWindow_:function(e){return of(e,.5,.5)}});const xf=fo({frame_:function(e,t,n,s=!1,r=0){let i=0;const a=[];for(;i+t<=e.size;)a.push(zc(e,i,t)),i+=n;if(s)for(;i`Error in cropAndResize: image must be rank 4,but got rank ${a.rank}.`)),Gt(2===o.rank&&4===o.shape[1],(()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`)),Gt(1===l.rank&&l.shape[0]===u,(()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`)),Gt(2===s.length,(()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${s.length}.`)),Gt(s[0]>=1&&s[1]>=1,(()=>`cropSize must be atleast [1,1], but was ${s}`)),Gt("bilinear"===r||"nearest"===r,(()=>`method must be bilinear or nearest, but was ${r}`));const c={image:a,boxes:o,boxInd:l},h={method:r,extrapolationValue:i,cropSize:s};return to.runKernel(ms,c,h)}});const kf=fo({flipLeftRight_:function(e){const t=co(e,"image","flipLeftRight","float32");Gt(4===t.rank,(()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`));const n={image:t};return to.runKernel(Bs,n,{})}});const Sf=fo({grayscaleToRGB_:function(e){const t=co(e,"image","grayscaleToRGB"),n=t.rank-1,s=t.shape[n];Gt(t.rank>=2,(()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`)),Gt(1===s,(()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${s}.`));const r=new Array(t.rank);return r.fill(1,0,n),r[n]=3,Uh(t,r)}});const _f=fo({rgbToGrayscale_:function(e){const t=co(e,"image","RGBToGrayscale"),n=t.rank-1,s=t.shape[n];Gt(t.rank>=2,(()=>`Error in RGBToGrayscale: images must be at least rank 2, but got rank ${t.rank}.`)),Gt(3===s,(()=>`Error in RGBToGrayscale: last dimension of an RGB image should be size 3, but got size ${s}.`));const r=t.dtype,i=Nl(t,"float32"),a=Mp([.2989,.587,.114]);let o;switch(t.rank){case 2:o=wh("ij,j->i",i,a);break;case 3:o=wh("ijk,k->ij",i,a);break;case 4:o=wh("ijkl,l->ijk",i,a);break;case 5:o=wh("ijklm,m->ijkl",i,a);break;case 6:o=wh("ijklmn,n->ijklm",i,a);break;default:throw new Error("Not a valid tensor rank.")}return o=Lh(o,-1),Nl(o,r)}});const Ef=fo({rotateWithOffset_:function(e,t,n=0,s=.5){const r=co(e,"image","rotateWithOffset","float32");Gt(4===r.rank,(()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${r.rank}.`));const i={image:r},a={radians:t,fillValue:n,center:s};return to.runKernel(Bi,i,a)}});function If(e,t,n,s,r,i){null==s&&(s=.5),null==r&&(r=Number.NEGATIVE_INFINITY),null==i&&(i=0);const a=e.shape[0];return n=Math.min(n,a),Gt(0<=s&&s<=1,(()=>`iouThreshold must be in [0, 1], but was '${s}'`)),Gt(2===e.rank,(()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`)),Gt(4===e.shape[1],(()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`)),Gt(1===t.rank,(()=>"scores must be a 1D tensor")),Gt(t.shape[0]===a,(()=>`scores has incompatible shape with boxes. Expected ${a}, but was ${t.shape[0]}`)),Gt(0<=i&&i<=1,(()=>`softNmsSigma must be in [0, 1], but was '${i}'`)),{maxOutputSize:n,iouThreshold:s,scoreThreshold:r,softNmsSigma:i}}const Tf=fo({nonMaxSuppression_:function(e,t,n,s=.5,r=Number.NEGATIVE_INFINITY){const i=co(e,"boxes","nonMaxSuppression","float32"),a=co(t,"scores","nonMaxSuppression","float32"),o=If(i,a,n,s,r),l={maxOutputSize:n=o.maxOutputSize,iouThreshold:s=o.iouThreshold,scoreThreshold:r=o.scoreThreshold};return to.runKernel(kr,{boxes:i,scores:a},l)}});function Nf(e,t,n){const s=function(e,t,n){return function(e,t,n){let s=0,r=e.length,i=0,a=!1;for(;s>>1);const o=n(t,e[i]);o>0?s=i+1:(r=i,a=!o)}return a?s:-s-1}(e,t,n||Rf)}(e,t,n),r=s<0?-(s+1):s;e.splice(r,0,t)}function Rf(e,t){return e>t?1:er&&u.push({score:t[e],boxIndex:e,suppressBeginIndex:0});u.sort(Lf);const c=i>0?-.5/i:0,h=[],d=[];for(;h.length0;){const t=u.pop(),{score:n,boxIndex:i,suppressBeginIndex:a}=t;if(n=a;--n){const a=Ff(e,i,h[n]);if(a>=s){o=!0;break}if(t.score=t.score*Bf(s,c,a),t.score<=r)break}t.suppressBeginIndex=h.length,o||(t.score===n?(h.push(i),d.push(t.score)):t.score>r&&Nf(u,t,Lf))}const p=h.length,f=n-p;o&&f>0&&(h.push(...new Array(f).fill(0)),d.push(...new Array(f).fill(0)));const m={selectedIndices:h};return a&&(m.selectedScores=d),l&&(m.validOutputs=p),m}function Ff(e,t,n){const s=e.subarray(4*t,4*t+4),r=e.subarray(4*n,4*n+4),i=Math.min(s[0],s[2]),a=Math.min(s[1],s[3]),o=Math.max(s[0],s[2]),l=Math.max(s[1],s[3]),u=Math.min(r[0],r[2]),c=Math.min(r[1],r[3]),h=Math.max(r[0],r[2]),d=Math.max(r[1],r[3]),p=(o-i)*(l-a),f=(h-u)*(d-c);if(p<=0||f<=0)return 0;const m=Math.max(i,u),g=Math.max(a,c),y=Math.min(o,h),b=Math.min(l,d),w=Math.max(y-m,0)*Math.max(b-g,0);return w/(p+f-w)}function Bf(e,t,n){const s=Math.exp(t*n*n);return n<=e?s:0}function Lf(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}const Pf=async function(e,t,n,s=.5,r=Number.NEGATIVE_INFINITY){const i=co(e,"boxes","nonMaxSuppressionAsync"),a=co(t,"scores","nonMaxSuppressionAsync"),o=If(i,a,n,s,r);n=o.maxOutputSize,s=o.iouThreshold,r=o.scoreThreshold;const l=await Promise.all([i.data(),a.data()]),u=l[0],c=l[1],{selectedIndices:h}=Of(u,c,n,s,r);return i!==e&&i.dispose(),a!==t&&a.dispose(),Mp(h,"int32")};const Uf=fo({nonMaxSuppressionWithScore_:function(e,t,n,s=.5,r=Number.NEGATIVE_INFINITY,i=0){const a=co(e,"boxes","nonMaxSuppression"),o=co(t,"scores","nonMaxSuppression"),l=If(a,o,n,s,r,i),u={boxes:a,scores:o},c={maxOutputSize:n=l.maxOutputSize,iouThreshold:s=l.iouThreshold,scoreThreshold:r=l.scoreThreshold,softNmsSigma:i=l.softNmsSigma},h=to.runKernel(_r,u,c);return{selectedIndices:h[0],selectedScores:h[1]}}});const Vf=async function(e,t,n,s=.5,r=Number.NEGATIVE_INFINITY,i=0){const a=co(e,"boxes","nonMaxSuppressionAsync"),o=co(t,"scores","nonMaxSuppressionAsync"),l=If(a,o,n,s,r,i);n=l.maxOutputSize,s=l.iouThreshold,r=l.scoreThreshold,i=l.softNmsSigma;const u=await Promise.all([a.data(),o.data()]),c=u[0],h=u[1],{selectedIndices:d,selectedScores:p}=Mf(c,h,n,s,r,i);return a!==e&&a.dispose(),o!==t&&o.dispose(),{selectedIndices:Mp(d,"int32"),selectedScores:Mp(p)}};const Wf=fo({nonMaxSuppressionPadded_:function(e,t,n,s=.5,r=Number.NEGATIVE_INFINITY,i=!1){const a=co(e,"boxes","nonMaxSuppression"),o=co(t,"scores","nonMaxSuppression"),l=If(a,o,n,s,r,null),u={boxes:a,scores:o},c={maxOutputSize:l.maxOutputSize,iouThreshold:l.iouThreshold,scoreThreshold:l.scoreThreshold,padToMaxOutputSize:i},h=to.runKernel(Sr,u,c);return{selectedIndices:h[0],validOutputs:h[1]}}});const jf=async function(e,t,n,s=.5,r=Number.NEGATIVE_INFINITY,i=!1){const a=co(e,"boxes","nonMaxSuppressionAsync"),o=co(t,"scores","nonMaxSuppressionAsync"),l=If(a,o,n,s,r,null),u=l.maxOutputSize,c=l.iouThreshold,h=l.scoreThreshold,[d,p]=await Promise.all([a.data(),o.data()]),{selectedIndices:f,validOutputs:m}=Df(d,p,u,c,h,i);return a!==e&&a.dispose(),o!==t&&o.dispose(),{selectedIndices:Mp(f,"int32"),validOutputs:Vl(m,"int32")}};const Gf=fo({resizeBilinear_:function(e,t,n=!1,s=!1){const r=co(e,"images","resizeBilinear");Gt(3===r.rank||4===r.rank,(()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`)),Gt(2===t.length,(()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`)),Gt(!1===s||!1===n,(()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false."));let i=r,a=!1;3===r.rank&&(a=!0,i=Tc(r,[1,r.shape[0],r.shape[1],r.shape[2]]));const[]=t,o={images:i},l={alignCorners:n,halfPixelCenters:s,size:t},u=to.runKernel(Gr,o,l);return a?Tc(u,[u.shape[1],u.shape[2],u.shape[3]]):u}});const qf=fo({resizeNearestNeighbor_:function(e,t,n=!1,s=!1){const r=co(e,"images","resizeNearestNeighbor");Gt(3===r.rank||4===r.rank,(()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`)),Gt(2===t.length,(()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`)),Gt("float32"===r.dtype||"int32"===r.dtype,(()=>"`images` must have `int32` or `float32` as dtype")),Gt(!1===s||!1===n,(()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false."));let i=r,a=!1;3===r.rank&&(a=!0,i=Tc(r,[1,r.shape[0],r.shape[1],r.shape[2]]));const[]=t,o={images:i},l={alignCorners:n,halfPixelCenters:s,size:t},u=to.runKernel(Wr,o,l);return a?Tc(u,[u.shape[1],u.shape[2],u.shape[3]]):u}});const Hf=fo({threshold_:function(e,t="binary",n=!1,s=.5){const r=co(e,"image","threshold"),i=r.shape[0]*r.shape[1];let a,o,l,u,c=Fl(Mp([s]),255);if(Gt(3===r.rank,(()=>`Error in threshold: image must be rank 3,but got rank ${r.rank}.`)),Gt(3===r.shape[2]||1===r.shape[2],(()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${r.shape[2]}.`)),Gt("int32"===r.dtype||"float32"===r.dtype,(()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${r.dtype}.`)),Gt("otsu"===t||"binary"===t,(()=>`Method must be binary or otsu, but was ${t}`)),3===r.shape[2]){[a,o,l]=_p(r,[1,1,1],-1);const e=Fl(a,.2989),t=Fl(o,.587),n=Fl(l,.114);u=Dl(Dl(e,t),n)}else u=e;if("otsu"===t){c=function(e,t){let n,s,r,i,a,o,l=Mp([-1]),u=Mp([0]),c=Mp([0]);for(let h=0;h`Error in transform: image must be rank 4,but got rank ${a.rank}.`)),Gt(2===o.rank&&(o.shape[0]===a.shape[0]||1===o.shape[0])&&8===o.shape[1],(()=>"Error in transform: Input transform should be batch x 8 or 1 x 8")),Gt(null==i||2===i.length,(()=>`Error in transform: outputShape must be [height, width] or null, but got ${i}.`));const l={image:a,transforms:o},u={interpolation:n,fillMode:s,fillValue:r,outputShape:i};return to.runKernel(Ti,l,u)}});const $f=fo({bandPart_:function(e,t,n){const s=co(e,"a","bandPart");Gt(s.rank>=2,(()=>`bandPart(): Rank must be at least 2, got ${s.rank}.`));const r=s.shape,[i,a]=s.shape.slice(-2);let o,l;"number"==typeof t?(Gt(t%1==0,(()=>`bandPart(): numLower must be an integer, got ${t}.`)),Gt(t<=i,(()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${i}).`)),o=co(t<0?i:t,"numLower","bandPart")):(Gt("int32"===t.dtype,(()=>"bandPart(): numLower's dtype must be an int32.")),o=gh(Yh(t,0),i,Ad(t,i))),"number"==typeof n?(Gt(n%1==0,(()=>`bandPart(): numUpper must be an integer, got ${n}.`)),Gt(n<=a,(()=>`bandPart(): numUpper (${n}) must not be greater than the number of columns (${a}).`)),l=co(n<0?a:n,"numUpper","bandPart")):(Gt("int32"===n.dtype,(()=>"bandPart(): numUpper's dtype must be an int32.")),l=gh(Yh(n,0),a,Ad(n,a)));const u=Tc(ep(0,i,1,"int32"),[-1,1]),c=ep(0,a,1,"int32"),h=Ql(u,c),d=ld(Qh(h,o),qh(h,sd(l))),p=wd([i,a],s.dtype);return Tc(Np(Kp(Tc(s,[-1,i,a])).map((e=>gh(d,e,p)))),r)}});const Xf=fo({gramSchmidt_:function(e){let t;if(Array.isArray(e)){t=!1,Gt(null!=e&&e.length>0,(()=>"Gram-Schmidt process: input must not be null, undefined, or empty"));const n=e[0].shape[0];for(let t=1;t`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[t].shape[0]} vs. ${n})`))}else t=!0,e=_p(e,e.shape[0],0).map((e=>Tp(e,[0])));Gt(e.length<=e[0].shape[0],(()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`));const n=[],s=e;for(let t=0;t{let e=s[t];if(t>0)for(let s=0;s{Gt(2===e.shape.length,(()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`));const n=e.shape[0],s=e.shape[1];let r=Vh(n),i=Rl(e);const a=zp([[1]],[1,1]);let o=Rl(a);const l=n>=s?s:n;for(let e=0;e{const t=zc(i,[e,e],[n-e,1]),l=zh(t),u=zc(i,[e,e],[1,1]),c=gh(Gh(u,0),zp([[-1]]),zp([[1]])),h=Ql(u,Fl(c,l)),d=zl(t,h);o=1===d.shape[0]?Rl(a):Oc([a,zc(d,[1,0],[d.shape[0]-1,d.shape[1]])],0);const p=sd(zl(Dc(c,h),l)),f=zc(i,[e,0],[n-e,s]),m=Fl(p,o),g=Jp(o);if(0===e)i=Ql(f,Dc(m,Dc(g,f)));else{const t=Ql(f,Dc(m,Dc(g,f)));i=Oc([zc(i,[0,0],[e,s]),t],0)}const y=Jp(m),b=zc(r,[0,e],[n,r.shape[1]-e]);if(0===e)r=Ql(b,Dc(Dc(b,o),y));else{const t=Ql(b,Dc(Dc(b,o),y));r=Oc([zc(r,[0,0],[n,e]),t],1)}return[o,i,r]})),Co([t,l,u])}return!t&&n>s&&(r=zc(r,[0,0],[n,s]),i=zc(i,[0,0],[s,s])),[r,i]}))}const Yf=fo({qr_:function(e,t=!1){if(Gt(e.rank>=2,(()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`)),2===e.rank)return Zf(e,t);{const n=e.shape.slice(0,e.shape.length-2).reduce(((e,t)=>e*t)),s=Kp(Tc(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],i=[];s.forEach((e=>{const[n,s]=Zf(e,t);r.push(n),i.push(s)}));return[Tc(Np(r,0),e.shape),Tc(Np(i,0),e.shape)]}}});var Qf;!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"}(Qf||(Qf={}));const Jf=fo({computeWeightedLoss_:function(e,t,n=Qf.SUM_BY_NONZERO_WEIGHTS){const s=co(e,"losses","computeWeightedLoss");let r=null;null!=t&&(r=co(t,"weights","computeWeightedLoss"));const i=null==r?s:Fl(s,r);if(n===Qf.NONE)return i;if(n===Qf.SUM)return Dh(i);if(n===Qf.MEAN){if(null==r)return bd(i);{const e=s.size/r.size,t=zl(Dh(i),Dh(r));return e>1?zl(t,Vl(e)):t}}if(n===Qf.SUM_BY_NONZERO_WEIGHTS){if(null==r)return zl(Dh(i),Vl(s.size));{const e=Fl(r,vd(s.shape)),t=Nl(Dh(Id(e,Vl(0))),"float32");return zl(Dh(i),t)}}throw Error(`Unknown reduction: ${n}`)}});const em=fo({absoluteDifference_:function(e,t,n,s=Qf.SUM_BY_NONZERO_WEIGHTS){const r=co(e,"labels","absoluteDifference"),i=co(t,"predictions","absoluteDifference");let a=null;null!=n&&(a=co(n,"weights","absoluteDifference")),qt(r.shape,i.shape,"Error in absoluteDifference: ");const o=eu(Ql(r,i));return Jf(o,a,s)}});const tm=fo({cosineDistance_:function(e,t,n,s,r=Qf.SUM_BY_NONZERO_WEIGHTS){const i=co(e,"labels","cosineDistance"),a=co(t,"predictions","cosineDistance");let o=null;null!=s&&(o=co(s,"weights","cosineDistance")),qt(i.shape,a.shape,"Error in cosineDistance: ");const l=Vl(1),u=Ql(l,Dh(Fl(i,a),n,!0));return Jf(u,o,r)}});const nm=fo({hingeLoss_:function(e,t,n,s=Qf.SUM_BY_NONZERO_WEIGHTS){let r=co(e,"labels","hingeLoss");const i=co(t,"predictions","hingeLoss");let a=null;null!=n&&(a=co(n,"weights","hingeLoss")),qt(r.shape,i.shape,"Error in hingeLoss: ");const o=Vl(1);r=Ql(Fl(Vl(2),r),o);const l=sp(Ql(o,Fl(r,i)));return Jf(l,a,s)}});const sm=fo({huberLoss_:function(e,t,n,s=1,r=Qf.SUM_BY_NONZERO_WEIGHTS){const i=co(e,"labels","huberLoss"),a=co(t,"predictions","huberLoss");let o=null;null!=n&&(o=co(n,"weights","huberLoss")),qt(i.shape,a.shape,"Error in huberLoss: ");const l=Vl(s),u=eu(Ql(a,i)),c=Ad(u,l),h=Ql(u,c),d=Dl(Fl(Vl(.5),Ll(c)),Fl(l,h));return Jf(d,o,r)}});const rm=fo({logLoss_:function(e,t,n,s=1e-7,r=Qf.SUM_BY_NONZERO_WEIGHTS){const i=co(e,"labels","logLoss"),a=co(t,"predictions","logLoss");let o=null;null!=n&&(o=co(n,"weights","logLoss")),qt(i.shape,a.shape,"Error in logLoss: ");const l=Vl(1),u=Vl(s),c=sd(Fl(i,td(Dl(a,u)))),h=Fl(Ql(l,i),td(Dl(Ql(l,a),u))),d=Ql(c,h);return Jf(d,o,r)}});const im=fo({meanSquaredError_:function(e,t,n,s=Qf.SUM_BY_NONZERO_WEIGHTS){const r=co(e,"labels","meanSquaredError"),i=co(t,"predictions","meanSquaredError");let a=null;null!=n&&(a=co(n,"weights","meanSquaredError")),qt(r.shape,i.shape,"Error in meanSquaredError: ");const o=Ip(r,i);return Jf(o,a,s)}});const am=fo({sigmoidCrossEntropy_:function(e,t,n,s=0,r=Qf.SUM_BY_NONZERO_WEIGHTS){let i=co(e,"multiClassLabels","sigmoidCrossEntropy");const a=co(t,"logits","sigmoidCrossEntropy");let o=null;if(null!=n&&(o=co(n,"weights","sigmoidCrossEntropy")),qt(i.shape,a.shape,"Error in sigmoidCrossEntropy: "),s>0){const e=Vl(s),t=Vl(1),n=Vl(.5);i=Dl(Fl(i,Ql(t,e)),Fl(n,e))}const l=function(e,t){const n=co(e,"labels","sigmoidCrossEntropyWithLogits"),s=co(t,"logits","sigmoidCrossEntropyWithLogits");qt(n.shape,s.shape,"Error in sigmoidCrossEntropyWithLogits: ");const r=sp(s),i=Fl(s,n),a=nd(Bh(sd(eu(s))));return Dl(Ql(r,i),a)}(i,a);return Jf(l,o,r)}});const om=fo({softmaxCrossEntropy_:function(e,t,n,s=0,r=Qf.SUM_BY_NONZERO_WEIGHTS){let i=co(e,"onehotLabels","softmaxCrossEntropy");const a=co(t,"logits","softmaxCrossEntropy");let o=null;if(null!=n&&(o=co(n,"weights","softmaxCrossEntropy")),qt(i.shape,a.shape,"Error in softmaxCrossEntropy: "),s>0){const e=Vl(s),t=Vl(1),n=Vl(i.shape[1]);i=Dl(Fl(i,Ql(t,e)),zl(e,n))}const l=function(e,t,n=-1){if(-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}`);const s=Ul(((e,t,s)=>{const r=od(t,[n],!0),i=Ql(Nl(t,"float32"),r);s([e,i]);const a=sd(Fl(i,e));return{value:Dh(a,[n]),gradFunc:(e,t)=>{const[s,r]=t,i=_h(e.shape,[n]);return[Fl(Tc(e,i),Ql(Nl(s,"float32"),Bh(r))),Fl(Tc(e,i),Ql(Bh(r),Nl(s,"float32")))]}}}));return s(e,t)}(i,a);return Jf(l,o,r)}});const lm=fo({sparseFillEmptyRows_:function(e,t,n,s){const r=co(e,"indices","sparseFillEmptyRows","int32"),i=co(t,"values","sparseFillEmptyRows"),a=co(n,"denseShape","sparseFillEmptyRows","int32"),o=co(s,"defaultValue","sparseFillEmptyRows",i.dtype);if(2!==r.rank)throw new Error(`Indices should be Tensor2D but received shape\n ${r.shape}`);if(1!==i.rank)throw new Error(`Values should be Tensor1D but received shape ${i.shape}`);if(1!==a.rank)throw new Error(`Dense shape should be Tensor1D but received shape ${a.shape}`);if(0!==o.rank)throw new Error(`Default value should be a scalar but received shape ${o.shape}`);const l={indices:r,values:i,denseShape:a,defaultValue:o},u=to.runKernel(di,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}});const um=fo({sparseReshape_:function(e,t,n){const s=co(e,"inputIndices","sparseReshape","int32"),r=co(t,"inputShape","sparseReshape","int32"),i=co(n,"newShape","sparseReshape","int32");if(2!==s.rank)throw new Error(`Input indices should be Tensor2D but received shape\n ${s.shape}`);if(1!==r.rank)throw new Error(`Input shape should be Tensor1D but received shape ${r.shape}`);if(1!==i.rank)throw new Error(`New shape should be Tensor1D but received shape ${i.shape}`);const a={inputIndices:s,inputShape:r,newShape:i},o=to.runKernel(pi,a);return{outputIndices:o[0],outputShape:o[1]}}});const cm=fo({sparseSegmentMean_:function(e,t,n){const s=co(e,"data","sparseSegmentMean"),r=co(t,"indices","sparseSegmentMean","int32"),i=co(n,"segmentIds","sparseSegmentMean","int32");if(s.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(1!==r.rank)throw new Error(`Indices should be Tensor1D but received shape\n ${r.shape}`);if(1!==i.rank)throw new Error(`Segment ids should be Tensor1D but received shape\n ${i.shape}`);const a={data:s,indices:r,segmentIds:i};return to.runKernel(fi,a)}});const hm=fo({sparseSegmentSum_:function(e,t,n){const s=co(e,"data","sparseSegmentSum"),r=co(t,"indices","sparseSegmentSum","int32"),i=co(n,"segmentIds","sparseSegmentSum","int32");if(s.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(1!==r.rank)throw new Error(`Indices should be Tensor1D but received shape\n ${r.shape}`);if(1!==i.rank)throw new Error(`Segment ids should be Tensor1D but received shape\n ${i.shape}`);const a={data:s,indices:r,segmentIds:i};return to.runKernel(mi,a)}});const dm=fo({stringNGrams_:function(e,t,n,s,r,i,a,o){const l=co(e,"data","stringNGrams","string");if("string"!==l.dtype)throw new Error("Data must be of datatype string");if(1!==l.shape.length)throw new Error(`Data must be a vector, saw: ${l.shape}`);const u=co(t,"dataSplits","stringNGrams");if("int32"!==u.dtype)throw new Error("Data splits must be of datatype int32");const c={separator:n,nGramWidths:s,leftPad:r,rightPad:i,padWidth:a,preserveShortSequences:o},h={data:l,dataSplits:u},d=to.runKernel(xi,h,c);return{nGrams:d[0],nGramsSplits:d[1]}}});const pm=fo({stringSplit_:function(e,t,n=!0){const s=co(e,"input","stringSplit","string"),r=co(t,"delimiter","stringSplit","string");if(1!==s.rank)throw new Error(`Input should be Tensor1D but received shape ${s.shape}`);if(0!==r.rank)throw new Error(`Delimiter should be a scalar but received shape ${r.shape}`);const i={skipEmpty:n},a={input:s,delimiter:r},o=to.runKernel(Ai,a,i);return{indices:o[0],values:o[1],shape:o[2]}}});const fm=fo({stringToHashBucketFast_:function(e,t){const n=co(e,"input","stringToHashBucketFast","string"),s={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");const r={input:n};return to.runKernel(Ci,r,s)}});const mm=fo({staticRegexReplace_:function(e,t,n,s=!0){const r=co(e,"input","staticRegexReplace","string"),i={pattern:t,rewrite:n,replaceGlobal:s};return to.runKernel(wi,{x:r},i)}}),gm={fft:Cp,ifft:kp,rfft:Ep,irfft:Sp},ym={hammingWindow:wf,hannWindow:vf,frame:xf,stft:Af},bm={flipLeftRight:kf,grayscaleToRGB:Sf,resizeNearestNeighbor:qf,resizeBilinear:Gf,rgbToGrayscale:_f,rotateWithOffset:Ef,cropAndResize:Cf,nonMaxSuppression:Tf,nonMaxSuppressionAsync:Pf,nonMaxSuppressionWithScore:Uf,nonMaxSuppressionWithScoreAsync:Vf,nonMaxSuppressionPadded:Wf,nonMaxSuppressionPaddedAsync:jf,threshold:Hf,transform:Kf},wm={bandPart:$f,gramSchmidt:Xf,qr:Yf},vm={absoluteDifference:em,computeWeightedLoss:Jf,cosineDistance:tm,hingeLoss:nm,huberLoss:sm,logLoss:rm,meanSquaredError:im,sigmoidCrossEntropy:am,softmaxCrossEntropy:om},xm={sparseFillEmptyRows:lm,sparseReshape:um,sparseSegmentMean:cm,sparseSegmentSum:hm},Am={stringNGrams:dm,stringSplit:pm,stringToHashBucketFast:fm,staticRegexReplace:mm};const Cm=class{static sgd(e){return new au(e)}static momentum(e,t,n=!1){return new ou(e,t,n)}static rmsprop(e,t=.9,n=0,s=null,r=!1){return new lu(e,t,n,s,r)}static adam(e=.001,t=.9,n=.999,s=null){return new Jl(e,t,n,s)}static adadelta(e=.001,t=.95,n=null){return new $l(e,t,n)}static adamax(e=.002,t=.9,n=.999,s=null,r=0){return new iu(e,t,n,s,r)}static adagrad(e,t=.1){return new Zl(e,t)}},km="undefined"!=typeof requestAnimationFrame?requestAnimationFrame:"undefined"!=typeof setImmediate?setImmediate:e=>e();function Sm(){return new Promise((e=>km((()=>e()))))}function _m(e,t){const n=e[0].length;e.forEach(((e,t)=>{Gt(e.length===n,(()=>`Error in concat${n}D: rank of tensors[${t}] must be the same as the rank of the rest (${n})`))})),Gt(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`));const s=e[0];e.forEach(((e,r)=>{for(let i=0;i`Error in concat${n}D: Shape of tensors[${r}] (${e}) does not match the shape of the rest (${s}) along the non-concatenated axis ${r}.`))}))}function Em(e,t){const n=e[0].slice();for(let s=1;s=0)if(o>=0){if(o!==i)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${r+e}] = ${i} but shape[${r+e}] = ${o}`)}else s[a]=i}return s}function Nm(e){const t={FIRST_DIM_SIZE:Im.FIRST_DIM_SIZE,VALUE_ROWIDS:Im.VALUE_ROWIDS,ROW_LENGTHS:Im.ROW_LENGTHS,ROW_SPLITS:Im.ROW_SPLITS,ROW_LIMITS:Im.ROW_LIMITS,ROW_STARTS:Im.ROW_STARTS},n=[];for(const s of e){if(!(s in t))break;n.push(t[s])}return n}function Rm(e){return 0===e.length?0:e[0]===Im.FIRST_DIM_SIZE?e.length-1:e.length}function Om(e,t){if(null==e||null==t)return;const n=e.length,s=t.length;if(n>=s)throw new Error(`defaultValue.shape=${e} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${n} must be less than ragged tensor input flatValues.rank = ${s})`);for(let r=0;r=0&&s>=0&&1!==n&&n!==s)throw new Error(`defaultValue.shape=${e}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${r-e.length}] = ${n} but ragged tensor input.flatValues.shape[${r-e.length}] = ${s}`)}}!function(e){e[e.FIRST_DIM_SIZE=0]="FIRST_DIM_SIZE",e[e.VALUE_ROWIDS=1]="VALUE_ROWIDS",e[e.ROW_LENGTHS=2]="ROW_LENGTHS",e[e.ROW_SPLITS=3]="ROW_SPLITS",e[e.ROW_LIMITS=4]="ROW_LIMITS",e[e.ROW_STARTS=5]="ROW_STARTS"}(Im||(Im={}));const Dm=30;function Mm(e){return e<=Dm?e:hn(e,Math.floor(Math.sqrt(e)))}function zm(e,t,n){return[n*("number"==typeof e?e:e[0]),t*("number"==typeof e?e:e[1])]}function Fm(e,t,n,s=!0){let r=[];if(s)r=r.concat(t.slice(0)),r.push(e[0]/n),r=r.concat(e.slice(1));else{r=r.concat(e[0]);const n=t.length;for(let s=0;s=2*t+1||s%2==1?r.push(s):n.push(s);s.push(...n),s.push(0),s.push(...r)}return s}function Lm(e,t,n,s=!0){const r=[];s?r.push(e[0]/n):r.push(e[0]*n);for(let n=1;nn)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[s-1]} vs. ${n}`);if(0===Kt(e.shape))throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);const r=t.shape,i=r[r.length-1];let a=1;for(let e=0;ee/u)),1].slice(0,i);return[l,a,u,c]}const Wm=1.7580993408473768,jm=1.0507009873554805,Gm=.3275911,qm=.254829592,Hm=-.284496736,Km=1.421413741,$m=-1.453152027,Xm=1.061405429;function Zm(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}.`);const n=new Float32Array(2*e.length);for(let s=0;s/g,ag=",",og="...";function lg(e,t){const n=((e=e.replace(/\s/g,"")).length-e.replace(ig,"").length)/rg.length;if(n<1)throw new Error("Equations without an arrow are not supported.");if(n>1)throw new Error(`Equation must contain exactly one arrow ("${rg}").`);const[s,r]=e.split(rg);Gt(-1===s.indexOf(og),(()=>`The ellipsis notation ("${og}") is not supported yet.`));const i=s.split(ag),a=i.length;if(t!==a)throw new Error(`Expected ${a} input tensors, received ${t}`);if(a>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");const o=[];for(let e=0;e-1!==e.indexOf(t))))throw new Error(`Output subscripts contain the label ${t} not present in the input subscripts.`);-1===o.indexOf(t)&&o.push(t)}for(let e=0;e-1!==e)),{permutationIndices:n,expandDims:s}}function cg(e,t,n){const s=new Array(e);for(let e=0;e`Expected dimension ${s[t[e][n]]} at axis ${n} of input shaped ${JSON.stringify(r)}, but got dimension ${r[n]}`))}}function hg(e,t){const n=e,s=[];let r=0;0===e.length&&n.push(-1),r=e.length+1;for(let e=0;ee===t))}function pg(e,t){const n=[];for(let s=0;s"Number of splits must evenly divide the axis.")),s=new Array(t).fill(e.shape[n]/t);else{const r=t.reduce(((e,t)=>(-1===t&&(e+=1),e)),0);Gt(r<=1,(()=>"There should be only one negative value in split array."));const i=t.indexOf(-1);if(-1!==i){const s=t.reduce(((e,t)=>t>0?e+t:e));t[i]=e.shape[n]-s}Gt(e.shape[n]===t.reduce(((e,t)=>e+t)),(()=>"The sum of sizes must match the size of the axis dimension.")),s=t}return s}function mg(e){return`Received SparseTensor with denseShape[0] = 0 but\n indices.shape[0] = ${e}`}function gg(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function yg(e,t,n){return`indices(${e}, 0) is invalid: ${t} >= ${n}`}function bg(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function wg(e,t){return`size ${e} must be non-negative, not ${t}`}function vg(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function xg(e,t){return`Input to reshape is a SparseTensor with ${Kt(e)}\n dense values, but the requested shape requires a multiple of ${Kt(t)}. inputShape=${e} outputShape= ${t}`}function Ag(e,t){return`Input to reshape is a tensor with ${Kt(e)} dense values, but the requested shape has ${Kt(t)}. inputShape=${e} outputShape=${t}`}function Cg(){return"segment ids must be >= 0"}function kg(){return"segment ids are not increasing"}function Sg(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function _g(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}function Eg(e,t){let n,s=!1;for(e<=Dm?(n=e,s=!0):n=hn(e,Math.floor(Math.sqrt(e)));!s;)n>t||n===e?s=!0:n=hn(e,n+1);return n}function Ig(e,t,n){const s=[],r=e.length;for(let i=0;ir))throw new Error(`Expect batchDims in the range of [-${r}, ${r}], but got ${s}`);if(s<0&&(s+=r),s>i)throw new Error(`batchDims (${s}) must be less than rank(x) (\n ${i}).`);if(nga(e)))}catch(e){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${e}`)}}function Rg(e){return e.map((e=>ma(e)))}!function(){for(const e of uu)Hl(e)}();const Og={kernelName:Nn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(e,Rp(Nl(n,"float32"),-1))}}},Dg={kernelName:Rn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=Ll(Nl(n,"float32")),s=Bl(Ql(Vl(1),t));return sd(zl(e,s))}}}},Mg={kernelName:On,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=Bl(Ql(Ll(Nl(n,"float32")),1));return zl(e,t)}}}},zg={kernelName:Dn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,s]=t,r=su(n.shape,s.shape);return{a:()=>{let t=e;const s=nu(n.shape,r);return s.length>0&&(t=Dh(t,s)),Tc(t,n.shape)},b:()=>{let t=e;const n=nu(s.shape,r);return n.length>0&&(t=Dh(t,n)),Tc(t,s.shape)}}}},Fg={kernelName:Mn,saveAllInputs:!0,gradFunc:(e,t)=>{const n={};return t.forEach(((t,s)=>{n[s]=()=>e.clone()})),n}},Bg={kernelName:Bn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Pl(n)}}},Lg={kernelName:Ln,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Pl(n)}}},Pg={kernelName:Pn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>zl(e,Bl(Ql(Vl(1),Ll(Nl(n,"float32")))))}}},Ug={kernelName:Un,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=Bl(Dl(Vl(1),Ll(Nl(n,"float32"))));return zl(e,t)}}}},Vg={kernelName:jn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,s]=t,r=su(n.shape,s.shape);return{a:()=>{const t=Dl(Ll(n),Ll(s));let i=Fl(e,zl(s,t));const a=nu(n.shape,r);return a.length>0&&(i=Dh(i,a)),Tc(i,n.shape)},b:()=>{const t=Dl(Ll(n),Ll(s));let i=sd(Fl(e,zl(n,t)));const a=nu(s.shape,r);return a.length>0&&(i=Dh(i,a)),Tc(i,s.shape)}}}},Wg={kernelName:Vn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>zl(e,Dl(Ll(Nl(n,"float32")),1))}}},jg={kernelName:Wn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>zl(e,Ql(Vl(1),Ll(Nl(n,"float32"))))}}};const Gg=fo({avgPool3dGrad_:function(e,t,n,s,r,i){const a=co(e,"dy","avgPool3dGrad"),o=co(t,"input","avgPool3dGrad");let l=a,u=o,c=!1;4===o.rank&&(c=!0,l=Tc(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),u=Tc(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),Gt(5===l.rank,(()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`)),Gt(5===u.rank,(()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${u.rank}.`)),Ic("avgPool3dGrad",r,i);const h={dy:l,input:u},d={filterSize:n,strides:s,pad:r,dimRoundingMode:i},p=to.runKernel(Kn,h,d);return c?Tc(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}}),qg={kernelName:Hn,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[s]=t,{filterSize:r,strides:i,pad:a,dimRoundingMode:o}=n;return{x:()=>Gg(e,s,r,i,a,o)}}};const Hg=fo({avgPoolGrad_:function(e,t,n,s,r){const i=co(e,"dy","avgPoolGrad"),a=co(t,"input","avgPoolGrad");Gt(a.rank===i.rank,(()=>`Rank of input (${a.rank}) does not match rank of dy (${i.rank})`));let o=a,l=i,u=!1;3===a.rank&&(u=!0,o=Tc(a,[1,a.shape[0],a.shape[1],a.shape[2]]),l=Tc(i,[1,i.shape[0],i.shape[1],i.shape[2]])),Gt(4===l.rank,(()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`)),Gt(4===o.rank,(()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`));const c={dy:l,input:o},h={filterSize:n,strides:s,pad:r},d=to.runKernel(qn,c,h);return u?Tc(d,[d.shape[1],d.shape[2],d.shape[3]]):d}}),Kg={kernelName:Gn,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[s]=t,{filterSize:r,strides:i,pad:a}=n;return{x:()=>Hg(e,s,r,i,a)}}},$g={kernelName:$n,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{const[s,r]=t,{transposeA:i,transposeB:a}=n;return i||a?!i&&a?{a:()=>Dc(e,r,!1,!1),b:()=>Dc(e,s,!0,!1)}:i&&!a?{a:()=>Dc(r,e,!1,!0),b:()=>Dc(s,e,!1,!1)}:{a:()=>Dc(r,e,!0,!0),b:()=>Dc(e,s,!0,!0)}:{a:()=>Dc(e,r,!1,!0),b:()=>Dc(s,e,!0,!1)}}},Xg={kernelName:Xn,gradFunc:(e,t,n)=>{const{blockShape:s,crops:r}=n;return{x:()=>Bd(e,s,r)}}},Zg={kernelName:"BroadcastTo",gradFunc:(e,t,n)=>{const s=n,r=s.inputShape,i=s.shape,a=Array.from(i);for(let e=r.length-1;e>=0;e--)if(r[e]===i[e])a[e]=1;else if(1!==r[e])throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${i}].`);const o=[];for(let e=0;e1&&o.push(e);return{x:()=>Dh(e,o,!0)}}},Yg={kernelName:Jn,gradFunc:e=>({x:()=>e.clone()})},Qg={kernelName:es,gradFunc:e=>({x:()=>Pl(e)})},Jg={kernelName:ts,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[s]=t,{clipValueMin:r,clipValueMax:i}=n;return{x:()=>gh(ld(qh(s,r),Qh(s,i)),e,Pl(e))}}},ey={kernelName:ss,inputsToSave:["x"],gradFunc:Og.gradFunc},ty={kernelName:rs,saveAllInputs:!0,gradFunc:(e,t,n)=>{const s=t.map((e=>e.shape)),{axis:r}=n,i=en(r,t[0].shape)[0],a=s.map((e=>e[i]));return _p(e,a,i).map((e=>()=>e))}},ny={kernelName:is,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const[s,r]=t,{dilations:i,strides:a,pad:o,dataFormat:l}=n;return Gt(kc(i),(()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${i}'`)),{x:()=>th(s.shape,e,r,a,o,l),filter:()=>uf(s,e,r.shape,a,o,l)}}},sy={kernelName:os,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{const[s,r]=t,{strides:i,pad:a,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>Jc(e,r,i,a,o,1,l),filter:()=>uf(e,s,r.shape,i,a,o,l)}}};const ry=fo({conv3DBackpropFilter_:function(e,t,n,s,r){let i=e;4===e.rank&&(i=Tc(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let a=t;4===a.rank&&(a=Tc(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),Gt(5===i.rank,(()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${i.shape}.`)),Gt(5===a.rank,(()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${a.shape}.`)),Gt(5===n.length,(()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`)),Gt(i.shape[4]===n[3],(()=>`Error in conv3dDerFilter: depth of input ${i.shape[4]}) must match input depth in filter (${n[3]}.`)),Gt(a.shape[4]===n[4],(()=>`Error in conv3dDerFilter: depth of dy (${a.shape[4]}) must match output depth for filter (${n[4]}).`));const o={x:i,dy:a},l={strides:s,pad:r,filterShape:n};return to.runKernel(us,o,l)}}),iy={kernelName:ls,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const{dilations:s,strides:r,pad:i}=n;Gt(kc(s),(()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`));const[a,o]=t;return{x:()=>rh(a.shape,e,o,r,i),filter:()=>ry(a,e,o.shape,r,i)}}},ay={kernelName:hs,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(sd(gp(Nl(n,"float32"))),e)}}},oy={kernelName:ds,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(yp(Nl(n,"float32")),e)}}},ly={kernelName:fs,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[s]=t,{axis:r,exclusive:i,reverse:a}=n;return{x:()=>{const t=Ih([r],s.rank);let n=uh(e,r,i,!a);return null!=t&&(n=Jp(n,t)),n}}}},uy={kernelName:bs,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const{dilations:s,strides:r,pad:i,dimRoundingMode:a}=n,o=null==s?[1,1]:s;Gt(kc(o),(()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`));const[l,u]=t;return Gt(4===l.rank,(()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`)),Gt(4===u.rank,(()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`)),Gt(l.shape[3]===u.shape[2],(()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${u.shape[2]}.`)),Gt(Sc(r,o),(()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`)),Ic("depthwiseConv2d",i,a),{x:()=>gf(l.shape,e,u,r,i,o,a),filter:()=>mf(l,e,u.shape,r,i,o,a)}}},cy={kernelName:As,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const[s,r]=t,i={x:s,filter:r,dy:e},a={x:s,filter:r,dy:e};return{x:()=>to.runKernel(Cs,i,n),filter:()=>to.runKernel(ks,a,n)}}},hy={kernelName:Is,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t,s={dy:e,y:n};return{x:()=>to.runKernel(Ts,s)}}},dy={kernelName:Ns,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t,s=Fl(Bh(sd(Ll(n))),2/Math.sqrt(Math.PI));return{x:()=>Fl(e,s)}}},py={kernelName:Os,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(e,n)}}},fy={kernelName:Ds,inputsToSave:["input"],gradFunc:(e,t)=>{const[n]=t;return{input:()=>Tc(e,n.shape)}}},my={kernelName:Ms,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(e,Bh(n))}}},gy={kernelName:Ls,gradFunc:e=>({x:()=>Pl(e)})},yy={kernelName:Ps,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,s]=t,r=su(n.shape,s.shape);return{a:()=>{const t=zl(e,Nl(s,"float32")),i=nu(n.shape,r);return i.length>0?Tc(Dh(t,i),n.shape):t},b:()=>{let t=Fl(e,Nl(n,"float32"));const i=nu(s.shape,r);i.length>0&&(t=Tc(Dh(t,i),s.shape));const a=Ll(s);return sd(zl(t,Nl(a,"float32")))}}}},by={kernelName:Us,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{const{varianceEpsilon:s}=n,[r,i,a,o]=t,l=null==o?Vl(1):o,u=nu(i.shape,r.shape),c=[];if(1===i.rank){for(let e=0;e1===i.rank?Tc(Fl(Fl(e,Uh(Tc(p,[1,1,1,i.shape[0]]),c)),l),r.shape):Tc(Fl(Fl(e,p),l),r.shape),mean:()=>{let e=Fl(Fl(p,Vl(-1)),d);return 1===i.rank&&(e=Dh(e,u)),Tc(e,i.shape)},variance:()=>{let e=Fl(Fl(f,h),d);return 1===i.rank&&(e=Dh(e,u)),Tc(e,i.shape)},scale:()=>{const t=Fl(h,p);let n=Fl(e,t);return 1===i.rank&&(n=Dh(n,u)),Tc(n,i.shape)},offset:()=>{let t=e;return 1===i.rank&&(t=Dh(t,u)),Tc(t,i.shape)}}}},wy={kernelName:Vs,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{const[s,r]=t,{axis:i,batchDims:a}=n,o=en(i,s.shape)[0],l=(e,t,n)=>()=>{const s=e.shape,r=t.size,a=s.slice(0,o),l=a.length,u=s.slice(i,s.length).slice(1),c=u.length,h=vy(0,l),d=vy(l+1,l+1+c),p=xy([a,[r],u]),f=Tc(n,p),m=Tc(t,[r]),g=xy([[l],h,d]),y=Jp(f,g);let b=Hp(y,m,e.shape[o]);const w=Th(g);return b=Jp(b,w),b};if(1===a){const t=s.shape[0],n=s.split(t,0);return{x:()=>{const t=Np(n.map(((t,n)=>l(t,r.slice(n,1),e.slice(n,1))())));return t.reshape(s.shape)},indices:()=>r}}return{x:l(s,r,e),indices:()=>r}}};function vy(e,t){const n=[];for(let s=e;s{const[n,s]=t;return{a:()=>Pl(n),b:()=>Pl(s)}}},Cy={kernelName:qs,gradFunc:e=>({x:()=>Nl(e,"float32")})},ky={kernelName:$s,gradFunc:e=>({x:()=>Pl(e)})},Sy={kernelName:Xs,gradFunc:e=>({x:()=>Pl(e)})},_y={kernelName:Zs,gradFunc:e=>({x:()=>Pl(e)})},Ey={kernelName:Ys,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[s]=t,{alpha:r}=n,i=Gh(s,0);return{x:()=>gh(i,e,Fl(e,r))}}},Iy={kernelName:nr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>zl(e,Dl(n,1))}}},Ty={kernelName:tr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>zl(e,Nl(n,"float32"))}}},Ny={kernelName:"LogSoftmax",inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[s]=t,{axis:r}=n;return{logits:()=>{const t=Bh(s);return Ql(e,Fl(Dh(e,r,!0),t))}}}};const Ry=fo({localResponseNormalizationBackprop_:function(e,t,n,s=5,r=1,i=1,a=.5){const o={x:e,y:t,dy:n},l={depthRadius:s,bias:r,alpha:i,beta:a};return to.runKernel(or,o,l)}}),Oy={kernelName:ar,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[s,r]=t,{depthRadius:i,bias:a,alpha:o,beta:l}=n;return{x:()=>Ry(s,r,e,i,a,o,l)}}};function Dy(e,t,n,s){return t.rankFl(e,Nl(mh(n,t),e.dtype))}}const My={kernelName:lr,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const s=n,{reductionIndices:r}=s,i=t[0],a=Dy(e,t[1],i,en(r,i.shape));return{x:()=>a.x()}}},zy={kernelName:ur,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,s]=t;return{a:()=>Fl(e,Nl(qh(n,s),"float32")),b:()=>Fl(e,Nl(Yh(n,s),"float32"))}}};const Fy=fo({maxPool3dGrad_:function(e,t,n,s,r,i,a){const o=co(e,"dy","maxPool3dGrad"),l=co(t,"input","maxPool3dGrad"),u=co(n,"output","maxPool3dGrad");let c=o,h=l,d=u,p=!1;4===l.rank&&(p=!0,c=Tc(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),h=Tc(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),d=Tc(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),Gt(5===c.rank,(()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${c.rank}.`)),Gt(5===h.rank,(()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${h.rank}.`)),Gt(5===d.rank,(()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${d.rank}.`)),Ic("maxPool3dGrad",i,a);const f={dy:c,input:h,output:d},m={filterSize:s,strides:r,pad:i,dimRoundingMode:a},g=to.runKernel(pr,f,m);return p?Tc(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}}),By={kernelName:dr,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[s,r]=t,{filterSize:i,strides:a,pad:o,dimRoundingMode:l}=n;return{x:()=>Fy(e,s,r,i,a,o,l)}}};const Ly=fo({maxPoolGrad_:function(e,t,n,s,r,i,a){const o=co(e,"dy","maxPoolGrad"),l=co(t,"input","maxPoolGrad"),u=co(n,"output","maxPoolGrad");Gt(l.rank===o.rank,(()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`)),Gt(4===o.rank,(()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`)),Gt(4===l.rank,(()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`)),Ic("maxPoolGrad",i,a);const c={dy:o,input:l,output:u},h={filterSize:s,strides:r,pad:i,dimRoundingMode:a};return to.runKernel(hr,c,h)}}),Py={kernelName:cr,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[s,r]=t,{filterSize:i,strides:a,pad:o}=n;return{x:()=>Ly(e,s,r,i,a,o)}}},Uy={kernelName:br,inputsToSave:["x"],gradFunc:(e,t,n)=>{const s=t[0],{paddings:r}=n,i=r.map((e=>e[0]));return{x:()=>zc(e,i,s.shape)}}},Vy={kernelName:Tr,saveAllInputs:!0,gradFunc:(e,t,n)=>{const{axis:s}=n;return Kp(e,s).map((e=>()=>e))}},Wy={kernelName:Nr,inputsToSave:["x"],gradFunc:(e,t,n)=>{const s=t[0],{paddings:r}=n,i=r.map((e=>e[0]));return{x:()=>zc(e,i,s.shape)}}},jy={kernelName:Rr,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{const[n,s,r]=t,i=n,a=s,o=su(i.shape,a.shape);return{a:()=>{const t=Nl(a,"float32");let n=Fl(e,Fl(t,Yl(i,Ql(t,Vl(1)))));const s=nu(i.shape,o);return s.length>0&&(n=Dh(n,s)),Tc(n,i.shape)},b:()=>{const t=Gh(i,0),n=gh(t,td(i),Pl(i));let s=Fl(e,Fl(r,n));const l=nu(a.shape,o);return l.length>0&&(s=Dh(s,l)),Tc(s,a.shape)}}}};function Gy(e,t,n){const s=e.shape.length,r=s-n.length,i=Ih(n,s);let a=e;null!=i&&(a=Jp(e,i));const o=a.shape.slice(),l=o.splice(s-n.length,n.length).reduce(((e,t)=>e*t),1);o.push(l);let u=function(e,t,n){const s=e.shape.slice();s[n]=1;const r=Tc(t,s),i=lh(e,n,!0,!1),a=lh(e,n,!0,!0),o=Fl(i,a);return Fl(r,o)}(a.reshape(o),t,r);if(u=u.reshape(a.shape),null!=i){const e=Th(i);u=Jp(u,e)}return u}const qy={kernelName:ei,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=Gh(n,Vl(0)),s=Vl(Wm),r=Vl(jm),i=Fl(e,r),a=Fl(Fl(e,s),Bh(Nl(n,"float32")));return gh(t,i,a)}}}},Hy={kernelName:ui,gradFunc:(e,t,n)=>{const{blockShape:s,paddings:r}=n;return{x:()=>Lc(e,s,r)}}},Ky={kernelName:ci,gradFunc:(e,t,n)=>{const{axis:s}=n;return{x:()=>Oc(e,s)}}},$y={kernelName:Ei,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[s]=t,{reps:r}=n;return{x:()=>{let t=Pl(s);if(1===s.rank)for(let n=0;n{const[n,s]=t,r=su(n.shape,s.shape);return{a:()=>{const t=zl(e,Nl(s,"float32")),i=nu(n.shape,r);return i.length>0?Tc(Dh(t,i),n.shape):t},b:()=>{let t=Fl(e,Nl(n,"float32"));const i=nu(s.shape,r);i.length>0&&(t=Tc(Dh(t,i),s.shape));const a=Ll(s);return sd(zl(t,Nl(a,"float32")))}}}},hy,dy,py,fy,my,yy,gy,by,wy,Ay,Cy,ky,Sy,_y,Ey,Iy,Ty,Ny,Oy,My,My,zy,By,Py,{kernelName:mr,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[s]=t,{axis:r}=n,i=en(r,s.shape),a=Kt(Sh(s.shape,i)[1]);return{x:()=>{const t=s.shape.slice();i.forEach((e=>{t[e]=1}));const n=Tc(e,t);return zl(Fl(n,vd(s.shape,"float32")),a)}}}},{kernelName:gr,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const s=n,{axis:r}=s,[i,a]=t,o=Dy(e,a,i,en(r,i.shape));return{x:()=>o.x()}}},{kernelName:yr,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,s]=t;return{a:()=>Fl(e,Nl(Qh(n,s),"float32")),b:()=>Fl(e,Nl(Gh(n,s),"float32"))}}},Uy,{kernelName:wr,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,s]=t,r=su(n.shape,s.shape);return{a:()=>{const t=nu(n.shape,r);return t.length>0?Tc(Dh(e,t),n.shape):e},b:()=>{const t=Fl(e,sd(Wh(zl(n,s)))),i=nu(s.shape,r);return i.length>0?Tc(Dh(t,i),s.shape):t}}}},{kernelName:xr,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,s]=t,r=su(n.shape,s.shape);return{a:()=>{const t=Fl(e,Nl(s,"float32")),i=nu(n.shape,r);return i.length>0?Tc(Dh(t,i),n.shape):t},b:()=>{const t=Fl(e,Nl(n,"float32")),i=nu(s.shape,r);return i.length>0?Tc(Dh(t,i),s.shape):t}}}},{kernelName:Ar,gradFunc:e=>({x:()=>sd(e)})},{kernelName:Ir,inputsToSave:["indices"],gradFunc:(e,t)=>{const n=t[0];return{indices:()=>wd(n.shape,"float32")}}},{kernelName:Er,gradFunc:e=>({x:()=>Pl(e)})},Vy,Wy,Wy,jy,{kernelName:Or,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{const[n,s]=t,r=Gh(n,0);return{x:()=>gh(r,e,Fl(e,s)),alpha:()=>{let t=gh(r,Pl(e),Fl(e,n));const i=nu(s.shape,e.shape);return i.length>0&&(t=Dh(t,i)),Tc(t,s.shape)}}}},{kernelName:Dr,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[s]=t,{axis:r}=n;let i=[];return i=null==r?s.shape.map(((e,t)=>t)):"number"==typeof r?[r]:r,{x:()=>Gy(s,e,i)}}},{kernelName:Pr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>zl(e,sd(Ll(n)))}}},{kernelName:Hr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t,s=Fl(Qh(n,6),Rp(n));return{x:()=>Fl(e,Nl(s,"float32"))}}},{kernelName:Ur,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(e,Nl(Rp(n),"float32"))}}},{kernelName:Vr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Tc(e,n.shape)}}},{kernelName:Gr,inputsToSave:["images"],gradFunc:(e,t,n)=>{const[s]=t,r={dy:e,images:s};return{images:()=>to.runKernel(qr,r,n)}}},{kernelName:Wr,inputsToSave:["images"],gradFunc:(e,t,n)=>{const[s]=t,r={dy:e,images:s};return{images:()=>to.runKernel(jr,r,n)}}},{kernelName:Kr,gradFunc:(e,t,n)=>{const{dims:s}=n,r=en(s,e.shape);return{x:()=>ip(e,r)}}},{kernelName:$r,gradFunc:e=>({x:()=>Pl(e)})},{kernelName:Xr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>sd(zl(e,Fl(Yl(n,1.5),2)))}}},{kernelName:Jr,inputsToSave:["condition"],gradFunc:(e,t)=>{const[n]=t;return{condition:()=>Nl(Pl(n),"float32"),t:()=>Fl(e,Nl(n,e.dtype)),e:()=>Fl(e,Nl(ud(n),e.dtype))}}},qy,{kernelName:ii,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(e,Fl(n,Ql(Vl(1),n)))}}},{kernelName:ri,gradFunc:e=>({x:()=>Pl(e)})},{kernelName:ni,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(ah(Nl(n,"float32")),e)}}},{kernelName:si,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(oh(Nl(n,"float32")),e)}}},{kernelName:ti,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[s]=t,{begin:r,size:i}=n,a=s.shape,[o,l]=Ju(s,r,i),u=[];for(let t=0;tOd(e,u)}}},{kernelName:hi,outputsToSave:[!0],gradFunc:(e,t,n)=>{const[s]=t,{dim:r}=n,i=Fl(e,s);return{logits:()=>Ql(i,Fl(Dh(i,[r],true),s))}}},{kernelName:ai,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(e,Mc(n))}}},Hy,Hy,Ky,Ky,{kernelName:oi,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>zl(e,Fl(Bl(Nl(n,"float32")),2))}}},{kernelName:yi,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,s]=t,r=Vl(2);return{a:()=>Fl(e,Fl(r,Ql(n,s))),b:()=>Fl(e,Fl(r,Ql(s,n)))}}},{kernelName:bi,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(e,Fl(Nl(n,"float32"),2))}}},{kernelName:zi,gradFunc:e=>({x:()=>Pl(e)})},{kernelName:ki,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,s]=t,r=su(n.shape,s.shape);return{a:()=>{let t=e;const s=nu(n.shape,r);return s.length>0&&(t=Dh(t,s)),Tc(t,n.shape)},b:()=>{let t=e;const n=nu(s.shape,r);return n.length>0&&(t=Dh(t,n)),Tc(sd(t),s.shape)}}}},{kernelName:li,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[s]=t,r=s.shape.slice(),{axis:i}=n;en(i,s.shape).forEach((e=>{r[e]=1}));const a=Tc(e,r),o=Fl(a,vd(s.shape,"float32"));return{x:()=>o}}},{kernelName:Si,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>zl(e,Ll(ah(n)))}}},{kernelName:_i,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Fl(Ql(Vl(1),Ll(n)),e)}}},$y,{kernelName:Ni,gradFunc:(e,t,n)=>{const s=n,{perm:r}=s,i=Th(r);return{x:()=>Jp(e,i)}}},{kernelName:Oi,gradFunc:(e,t,n)=>{const s=n,{axis:r}=s;return{value:()=>Np(e,r)}}},{kernelName:Di,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>function(e,t){const n=ru(t,Pl(t)),s=jh(e,n);let r=qh(t,Vl(0,"int32"));const i=s.rank-r.rank;for(let e=0;e({x:()=>Pl(e)})}];for(const e of Xy)Xi(e);za().prototype.abs=function(){return this.throwIfDisposed(),eu(this)},za().prototype.acos=function(){return this.throwIfDisposed(),nc(this)},za().prototype.acosh=function(){return this.throwIfDisposed(),sc(this)},za().prototype.add=function(e){return this.throwIfDisposed(),Dl(this,e)},za().prototype.all=function(e,t){return this.throwIfDisposed(),ic(this,e,t)},za().prototype.any=function(e,t){return this.throwIfDisposed(),ac(this,e,t)},za().prototype.argMax=function(e){return this.throwIfDisposed(),oc(this,e)},za().prototype.argMin=function(e){return this.throwIfDisposed(),lc(this,e)},za().prototype.asScalar=function(){return this.throwIfDisposed(),Gt(1===this.size,(()=>"The array must have only 1 element.")),Tc(this,[])},za().prototype.asType=function(e){return this.throwIfDisposed(),Nl(this,e)},za().prototype.as1D=function(){return this.throwIfDisposed(),Tc(this,[this.size])},za().prototype.as2D=function(e,t){return this.throwIfDisposed(),Tc(this,[e,t])},za().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),Tc(this,[e,t,n])},za().prototype.as4D=function(e,t,n,s){return this.throwIfDisposed(),Tc(this,[e,t,n,s])},za().prototype.as5D=function(e,t,n,s,r){return this.throwIfDisposed(),Tc(this,[e,t,n,s,r])},za().prototype.asin=function(){return this.throwIfDisposed(),uc(this)},za().prototype.asinh=function(){return this.throwIfDisposed(),cc(this)},za().prototype.atan=function(){return this.throwIfDisposed(),hc(this)},za().prototype.atan2=function(e){return this.throwIfDisposed(),dc(this,e)},za().prototype.atanh=function(){return this.throwIfDisposed(),pc(this)},za().prototype.avgPool=function(e,t,n,s){return this.throwIfDisposed(),Nc(this,e,t,n,s)},za().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Lc(this,e,t)},za().prototype.batchNorm=function(e,t,n,s,r){return this.throwIfDisposed(),Pc(this,e,t,n,s,r)},za().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Hc(this,e)},za().prototype.cast=function(e){return this.throwIfDisposed(),Nl(this,e)},za().prototype.ceil=function(){return this.throwIfDisposed(),Kc(this)},za().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),$c(this,e,t)},za().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Ma&&(e=[e]),Oc([this,...e],t)},za().prototype.conv1d=function(e,t,n,s,r,i){return this.throwIfDisposed(),eh(this,e,t,n,s,r,i)},za().prototype.conv2dTranspose=function(e,t,n,s,r){return this.throwIfDisposed(),nh(this,e,t,n,s,r)},za().prototype.conv2d=function(e,t,n,s,r,i){return this.throwIfDisposed(),Jc(this,e,t,n,s,r,i)},za().prototype.cos=function(){return this.throwIfDisposed(),ah(this)},za().prototype.cosh=function(){return this.throwIfDisposed(),oh(this)},za().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),lh(this,e,t,n)},za().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),uh(this,e,t,n)},za().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),hh(this,e,t)},za().prototype.depthwiseConv2d=function(e,t,n,s,r,i){return this.throwIfDisposed(),dh(this,e,t,n,s,r,i)},za().prototype.dilation2d=function(e,t,n,s,r){return this.throwIfDisposed(),fh(this,e,t,n,s,r)},za().prototype.divNoNan=function(e){return this.throwIfDisposed(),yh(this,e)},za().prototype.div=function(e){return this.throwIfDisposed(),zl(this,e)},za().prototype.dot=function(e){return this.throwIfDisposed(),bh(this,e)},za().prototype.elu=function(){return this.throwIfDisposed(),vh(this)},za().prototype.equal=function(e){return this.throwIfDisposed(),mh(this,e)},za().prototype.erf=function(){return this.throwIfDisposed(),Ah(this)},za().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),Fh(this,e,t)},za().prototype.exp=function(){return this.throwIfDisposed(),Bh(this)},za().prototype.expandDims=function(e){return this.throwIfDisposed(),Lh(this,e)},za().prototype.expm1=function(){return this.throwIfDisposed(),Ph(this)},za().prototype.fft=function(){return this.throwIfDisposed(),Cp(this)},za().prototype.flatten=function(){return this.throwIfDisposed(),Tc(this,[this.size])},za().prototype.floor=function(){return this.throwIfDisposed(),Wh(this)},za().prototype.floorDiv=function(e){return this.throwIfDisposed(),Ml(this,e)},za().prototype.gather=function(e,t,n){return this.throwIfDisposed(),jh(this,e,t,n)},za().prototype.greaterEqual=function(e){return this.throwIfDisposed(),qh(this,e)},za().prototype.greater=function(e){return this.throwIfDisposed(),Gh(this,e)},za().prototype.ifft=function(){return this.throwIfDisposed(),kp(this)},za().prototype.irfft=function(){return this.throwIfDisposed(),Sp(this)},za().prototype.isFinite=function(){return this.throwIfDisposed(),Kh(this)},za().prototype.isInf=function(){return this.throwIfDisposed(),$h(this)},za().prototype.isNaN=function(){return this.throwIfDisposed(),Xh(this)},za().prototype.leakyRelu=function(e){return this.throwIfDisposed(),Zh(this,e)},za().prototype.lessEqual=function(e){return this.throwIfDisposed(),Qh(this,e)},za().prototype.less=function(e){return this.throwIfDisposed(),Yh(this,e)},za().prototype.localResponseNormalization=function(e,t,n,s){return this.throwIfDisposed(),ed(this,e,t,n,s)},za().prototype.logSigmoid=function(){return this.throwIfDisposed(),id(this)},za().prototype.logSoftmax=function(e){return this.throwIfDisposed(),ad(this,e)},za().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),od(this,e,t)},za().prototype.log=function(){return this.throwIfDisposed(),td(this)},za().prototype.log1p=function(){return this.throwIfDisposed(),nd(this)},za().prototype.logicalAnd=function(e){return this.throwIfDisposed(),ld(this,e)},za().prototype.logicalNot=function(){return this.throwIfDisposed(),ud(this)},za().prototype.logicalOr=function(e){return this.throwIfDisposed(),cd(this,e)},za().prototype.logicalXor=function(e){return this.throwIfDisposed(),hd(this,e)},za().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),Dc(this,e,t,n)},za().prototype.maxPool=function(e,t,n,s){return this.throwIfDisposed(),md(this,e,t,n,s)},za().prototype.max=function(e,t){return this.throwIfDisposed(),Rh(this,e,t)},za().prototype.maximum=function(e){return this.throwIfDisposed(),ru(this,e)},za().prototype.mean=function(e,t){return this.throwIfDisposed(),bd(this,e,t)},za().prototype.min=function(e,t){return this.throwIfDisposed(),Oh(this,e,t)},za().prototype.minimum=function(e){return this.throwIfDisposed(),Ad(this,e)},za().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),Cd(this,e,t)},za().prototype.mod=function(e){return this.throwIfDisposed(),kd(this,e)},za().prototype.mul=function(e){return this.throwIfDisposed(),Fl(this,e)},za().prototype.neg=function(){return this.throwIfDisposed(),sd(this)},za().prototype.norm=function(e,t,n){return this.throwIfDisposed(),zh(this,e,t,n)},za().prototype.notEqual=function(e){return this.throwIfDisposed(),Id(this,e)},za().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),Td(this,e,t,n)},za().prototype.onesLike=function(){return this.throwIfDisposed(),Nd(this)},za().prototype.pad=function(e,t){return this.throwIfDisposed(),Od(this,e,t)},za().prototype.pool=function(e,t,n,s,r,i){return this.throwIfDisposed(),Ld(this,e,t,n,s,r,i)},za().prototype.pow=function(e){return this.throwIfDisposed(),Yl(this,e)},za().prototype.prelu=function(e){return this.throwIfDisposed(),Pd(this,e)},za().prototype.prod=function(e,t){return this.throwIfDisposed(),Ud(this,e,t)},za().prototype.reciprocal=function(){return this.throwIfDisposed(),np(this)},za().prototype.relu=function(){return this.throwIfDisposed(),sp(this)},za().prototype.relu6=function(){return this.throwIfDisposed(),rp(this)},za().prototype.reshapeAs=function(e){return this.throwIfDisposed(),Tc(this,e.shape)},za().prototype.reshape=function(e){return this.throwIfDisposed(),Tc(this,e)},za().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),Gf(this,e,t,n)},za().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),qf(this,e,t,n)},za().prototype.reverse=function(e){return this.throwIfDisposed(),ip(this,e)},za().prototype.rfft=function(){return this.throwIfDisposed(),Ep(this)},za().prototype.round=function(){return this.throwIfDisposed(),cp(this)},za().prototype.rsqrt=function(){return this.throwIfDisposed(),hp(this)},za().prototype.selu=function(){return this.throwIfDisposed(),dp(this)},za().prototype.separableConv2d=function(e,t,n,s,r,i){return this.throwIfDisposed(),pp(this,e,t,n,s,r,i)},za().prototype.sigmoid=function(){return this.throwIfDisposed(),Mc(this)},za().prototype.sign=function(){return this.throwIfDisposed(),mp(this)},za().prototype.sin=function(){return this.throwIfDisposed(),gp(this)},za().prototype.sinh=function(){return this.throwIfDisposed(),yp(this)},za().prototype.slice=function(e,t){return this.throwIfDisposed(),zc(this,e,t)},za().prototype.softmax=function(e){return this.throwIfDisposed(),Ap(this,e)},za().prototype.softplus=function(){return this.throwIfDisposed(),rd(this)},za().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Bd(this,e,t)},za().prototype.split=function(e,t){return this.throwIfDisposed(),_p(this,e,t)},za().prototype.sqrt=function(){return this.throwIfDisposed(),Bl(this)},za().prototype.square=function(){return this.throwIfDisposed(),Ll(this)},za().prototype.squaredDifference=function(e){return this.throwIfDisposed(),Ip(this,e)},za().prototype.squeeze=function(e){return this.throwIfDisposed(),Tp(this,e)},za().prototype.stack=function(e,t){this.throwIfDisposed();const n=e instanceof Ma?[this,e]:[this,...e];return Np(n,t)},za().prototype.step=function(e){return this.throwIfDisposed(),Rp(this,e)},za().prototype.stridedSlice=function(e,t,n,s,r,i,a,o){return this.throwIfDisposed(),Op(this,e,t,n,s,r,i,a,o)},za().prototype.sub=function(e){return this.throwIfDisposed(),Ql(this,e)},za().prototype.sum=function(e,t){return this.throwIfDisposed(),Dh(this,e,t)},za().prototype.tan=function(){return this.throwIfDisposed(),Dp(this)},za().prototype.tanh=function(){return this.throwIfDisposed(),Fc(this)},za().prototype.tile=function(e){return this.throwIfDisposed(),Uh(this,e)},za().prototype.toBool=function(){return this.throwIfDisposed(),Nl(this,"bool")},za().prototype.toFloat=function(){return this.throwIfDisposed(),Nl(this,"float32")},za().prototype.toInt=function(){return this.throwIfDisposed(),Nl(this,"int32")},za().prototype.topk=function(e,t){return this.throwIfDisposed(),jp(this,e,t)},za().prototype.transpose=function(e){return this.throwIfDisposed(),Jp(this,e)},za().prototype.unique=function(e){return this.throwIfDisposed(),qp(this,e)},za().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),Hp(this,e,t)},za().prototype.unstack=function(e){return this.throwIfDisposed(),Kp(this,e)},za().prototype.where=function(e,t){return this.throwIfDisposed(),gh(e,this,t)},za().prototype.zerosLike=function(){return this.throwIfDisposed(),Pl(this)};class Zy extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Zy.prototype)}}class Yy extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Yy.prototype)}}class Qy extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Qy.prototype)}}class Jy extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Jy.prototype)}}class eb extends Error{constructor(e){super(e),Object.setPrototypeOf(this,eb.prototype)}}Error;class tb{constructor(e){this.maxEntries=e||100,this.cache=new Map}get(e){let t;return this.cache.has(e)&&(t=this.cache.get(e),this.cache.delete(e),this.cache.set(e,t)),t}put(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxEntries){const e=this.cache.keys().next().value;this.cache.delete(e)}this.cache.set(e,t)}getMaxEntries(){return this.maxEntries}setMaxEntries(e){if(e<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${e}.`);if(this.maxEntries>e)for(let t=0;tt.toUpperCase()))}let ub={};function cb(e){if(null==e)return null;const t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function hb(e){if(null!=e&&"object"==typeof e)if(Array.isArray(e))e.forEach((e=>hb(e)));else{const t=Object.keys(e);for(const n of t){const t=e[n];null!=t&&"object"==typeof t&&(Array.isArray(t)||"ndarray"!==t.type||"number"!=typeof t.value?hb(t):e[n]=t.value)}}}function db(e,t={},n={},s="object",r=!1){if("string"==typeof e){const r=e;let i;if(r in n)i=n[r];else if(r in ub)i=ub[r];else if(i=t[r],null==i)throw new Qy(`Unknown ${s}: ${e}. This may be due to one of the following reasons:\n1. The ${s} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${s} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}{const i=e;if(null==i.className||null==i.config)throw new Qy(`${s}: Improper config format: ${JSON.stringify(i)}.\n'className' and 'config' must set.`);const a=i.className;let o,l;if(a in n?[o,l]=n[a]:a in ub?[o,l]=ub.className:a in t&&([o,l]=t[a]),null==o)throw new Qy(`Unknown ${s}: ${a}. This may be due to one of the following reasons:\n1. The ${s} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${s} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(null!=l){const e={};for(const t of Object.keys(ub))e[t]=ub[t];for(const t of Object.keys(n))e[t]=n[t];i.config.customObjects=e;const t=Object.assign({},ub);for(const e of Object.keys(n))ub[e]=n[e];hb(i.config);const s=l(o,i.config,n,r);return ub=Object.assign({},t),s}{const e=Object.assign({},ub);for(const e of Object.keys(n))ub[e]=n[e];const t=new o(i.config);return ub=Object.assign({},e),t}}}function pb(e,t){return-1*function(e,t){return et?1:0}(e,t)}function fb(e){if(null==e)return e;const t=[];for(const n of e)-1===t.indexOf(n)&&t.push(n);return t}function mb(e){if(null==e)throw new Qy(`Invalid value in obj: ${JSON.stringify(e)}`);for(const t in e)if(e.hasOwnProperty(t))return!1;return!0}function gb(e,t,n){if(null!=n&&e.indexOf(n)<0)throw new Qy(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function yb(e,t,n=0,s=1/0){return sb(n>=0),sb(s>=n),Array.isArray(e)&&e.length>=n&&e.length<=s&&e.every((e=>typeof e===t))}function bb(e,t){Array.isArray(e)?(Gt(e.length>0,(()=>`${t} is unexpectedly an empty array.`)),e.forEach(((e,n)=>bb(e,`element ${n+1} of ${t}`)))):Gt(Number.isInteger(e)&&e>0,(()=>`Expected ${t} to be a positive integer, but got ${wb(e)}.`))}function wb(e){return null===e?"null":Array.isArray(e)?"["+e.map((e=>wb(e))).join(",")+"]":"string"==typeof e?`"${e}"`:`${e}`}function vb(e){return"relu"===e?"relu":"linear"===e?"linear":"elu"===e?"elu":null}let xb=0;function Ab(){return xb++}const Cb={};function kb(e=""){return e in Cb||(Cb[e]=0),Cb[e]+=1,e+Cb[e].toString()}const Sb=["channelsFirst","channelsLast"],_b=["nearest","bilinear"],Eb=["valid","same","causal"],Ib=["max","avg"],Tb=["sum","mul","concat","ave"],Nb=new Map;function Rb(e){gb(Sb,"DataFormat",e)}function Ob(e){gb(Eb,"PaddingMode",e)}function Db(e){gb(Ib,"PoolMode",e)}const Mb=[],zb="/";function Fb(e,t){Mb.push(e);try{const e=t();return Mb.pop(),e}catch(e){throw Mb.pop(),e}}function Bb(e){if(!Ub(e))throw new Error("Not a valid tensor name: '"+e+"'");return(0===Mb.length?"":Mb.join(zb)+zb)+e}function Lb(e){if(!Ub(e))throw new Error("Not a valid tensor name: '"+e+"'");Nb.has(e)||Nb.set(e,0);const t=Nb.get(e);if(Nb.set(e,Nb.get(e)+1),t>0){const n=`${e}_${t}`;return Nb.set(n,1),n}return e}const Pb=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function Ub(e){return!!e.match(Pb)}function Vb(e,t,n){null==t&&(t=0),null==n&&(n=e.length);let s=1;for(let r=t;rt&&(t=s)}return t}function Gb(e,t){if(t{switch(e.rank){case 1:return bp(e,t,n);case 2:return wp(e,[t,0],[n,e.shape[1]]);case 3:return vp(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return xp(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return zc(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return zc(e,[t,0,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new Qy(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function Zb(e,t,n){return Ao((()=>{switch(e.rank){case 1:return bp(e,t,n);case 2:return wp(e,[0,t],[e.shape[0],n]);case 3:return vp(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return xp(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new Qy(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function Yb(e,t,n,s){return Ao((()=>{switch(e.rank){case 1:return bp(e,t,n);case 2:switch(s){case 1:return Xb(e,t,n);case 2:return Zb(e,t,n);default:throw new Qy(`The axis is not within the rank of the tensor ${s}`)}case 3:switch(s){case 1:return Xb(e,t,n);case 2:return vp(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return Zb(e,t,n);default:throw new Qy(`The axis is not within the rank of the tensor ${s}`)}case 4:switch(s){case 1:return Xb(e,t,n);case 2:return xp(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return xp(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return Zb(e,t,n);default:throw new Qy(`The axis is not within the rank of the tensor ${s}`)}default:throw new Qy(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function Qb(e,t=-1){let n;return t<0&&(n=e[0].rank,t=0!==n?n:0),t===e[0].rank&&(t=-1),Oc(e,t)}function Jb(e,t){switch(e.rank){case 1:return Xc([e,t]);case 2:return Zc([e,t],0);case 3:return Yc([e,t],0);case 4:return Qc([e,t],0);default:throw new Qy(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function ew(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new Qy(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return Uh(e,t)}function tw(e,t=0,n=1,s,r){return Zd(e,t,n,s,r)}function nw(e,t,n,s){if(e.rank<2||t.rank<2)throw new Jy(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){if(e.shape.slice(-1)[0]!==t.shape.slice(-2)[0])throw new Jy(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`)}if(2===e.rank&&2===t.rank){return bf({a:e,b:t,transposeA:!1,transposeB:!1,bias:s?iw(e.rank,s,"channelsLast"):null,activation:n})}{const r=e.shape.slice(),i=r.pop();e=Tc(e,[-1,i]);const a=t.shape.slice(),o=a.pop(),l=a.pop(),u=[...a,o],c=Array.from({length:t.rank},((e,n)=>0===n?t.rank-2:n<=t.rank-2?n-1:n));t=Tc(Jp(t,c),[l,-1]);const h=[...r,...u];return Tc(bf({a:e,b:t,transposeA:!1,transposeB:!1,bias:s?iw(e.rank,s,"channelsLast"):null,activation:n}),h)}}function sw(e,t,n){return Ao((()=>(t=Array.isArray(t)?Mp(t,"int32"):Nl(t,"int32"),jh(e,t,n))))}function rw(e){return Fl(e,e)}function iw(e,t,n){const s=t.shape;if(1!==t.rank&&t.rank!==e)throw new Qy(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(5===e){if("channelsFirst"===n)return 1===s.length?Tc(t,[1,s[0],1,1,1]):Tc(t,[1,s[3],s[0],s[1],s[2]]);if("channelsLast"===n)return 1===s.length?Tc(t,[1,1,1,1,s[0]]):Tc(t,[1].concat(s))}else if(4===e){if("channelsFirst"===n)return 1===s.length?Tc(t,[1,s[0],1,1]):Tc(t,[1,s[2],s[0],s[1]]);if("channelsLast"===n)return 1===s.length?Tc(t,[1,1,1,s[0]]):Tc(t,[1].concat(s))}else if(3===e){if("channelsFirst"===n)return 1===s.length?Tc(t,[1,s[0],1]):Tc(t,[1,s[1],s[0]]);if("channelsLast"===n)return 1===s.length?Tc(t,[1,1,s[0]]):Tc(t,[1].concat(s))}else if(e<3)return t;throw new Qy(`Unsupported input rank by biasAdd: ${t.rank}`)}function aw(e,t,n){return Ao((()=>(null==n&&(n="channelsLast"),Rb(n),Dl(e,iw(e.rank,t,n)))))}function ow(e,t,n,s){return Ao((()=>rf(e,t,n,s)))}function lw(e,t,n=!1){return n?e():t()}const uw=["fanIn","fanOut","fanAvg"],cw=["normal","uniform","truncatedNormal"];class hw extends Gl{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}}class dw extends hw{apply(e,t){return wd(e,t)}}dw.className="Zeros",Hl(dw);class pw extends hw{apply(e,t){return vd(e,t)}}pw.className="Ones",Hl(pw);class fw extends hw{constructor(e){if(super(),"object"!=typeof e)throw new Qy(`Expected argument of type ConstantConfig but got ${e}`);if(void 0===e.value)throw new Qy(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return Ao((()=>Fl(Vl(this.value),vd(e,t))))}getConfig(){return{value:this.value}}}fw.className="Constant",Hl(fw);class mw extends hw{constructor(e){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return Qd(e,this.minval,this.maxval,t,this.seed)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}}mw.className="RandomUniform",Hl(mw);class gw extends hw{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if("float32"!==(t=t||"float32")&&"int32"!==t)throw new Jy(`randomNormal does not support dType ${t}.`);return tw(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}gw.className="RandomNormal",Hl(gw);class yw extends hw{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if("float32"!==(t=t||"float32")&&"int32"!==t)throw new Jy(`truncatedNormal does not support dType ${t}.`);return Gp(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}yw.className="TruncatedNormal",Hl(yw);class bw extends hw{constructor(e){super(),this.gain=null!=e.gain?e.gain:1}apply(e,t){return Ao((()=>{if(2!==e.length||e[0]!==e[1])throw new Qy("Identity matrix initializer can only be used for 2D square matrices.");return Fl(this.gain,Vh(e[0]))}))}getConfig(){return{gain:this.gain}}}bw.className="Identity",Hl(bw);class ww extends hw{constructor(e){if(super(),e.scale<0)throw new Qy(`scale must be a positive float. Got: ${e.scale}`);var t;this.scale=null==e.scale?1:e.scale,this.mode=null==e.mode?"fanIn":e.mode,t=this.mode,gb(uw,"FanMode",t),this.distribution=null==e.distribution?"normal":e.distribution,function(e){gb(cw,"Distribution",e)}(this.distribution),this.seed=e.seed}apply(e,t){const n=function(e,t="channelsLast"){let n,s;if(Rb(t),2===e.length)n=e[0],s=e[1];else if(-1!==[3,4,5].indexOf(e.length)){if("channelsFirst"===t){const t=Vb(e,2);n=e[1]*t,s=e[0]*t}else if("channelsLast"===t){const t=Vb(e,0,e.length-2);n=e[e.length-2]*t,s=e[e.length-1]*t}}else{const t=Vb(e);n=Math.sqrt(t),s=Math.sqrt(t)}return[n,s]}(e),s=n[0],r=n[1];let i=this.scale;if("fanIn"===this.mode?i/=Math.max(1,s):"fanOut"===this.mode?i/=Math.max(1,r):i/=Math.max(1,(s+r)/2),"normal"===this.distribution){const n=Math.sqrt(i);if("float32"!==(t=t||"float32")&&"int32"!==t)throw new Jy(`${this.getClassName()} does not support dType ${t}.`);return Gp(e,0,n,t,this.seed)}{const n=Math.sqrt(3*i);return Qd(e,-n,n,t,this.seed)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}}ww.className="VarianceScaling",Hl(ww);class vw extends ww{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return ww.className}}vw.className="GlorotUniform",Hl(vw);class xw extends ww{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return ww.className}}xw.className="GlorotNormal",Hl(xw);class Aw extends ww{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return ww.className}}Aw.className="HeNormal",Hl(Aw);class Cw extends ww{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return ww.className}}Cw.className="HeUniform",Hl(Cw);class kw extends ww{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return ww.className}}kw.className="LeCunNormal",Hl(kw);class Sw extends ww{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return ww.className}}Sw.className="LeCunUniform",Hl(Sw);class _w extends hw{constructor(e){super(),this.DEFAULT_GAIN=1,this.ELEMENTS_WARN_SLOW=2e3,this.gain=null==e.gain?this.DEFAULT_GAIN:e.gain,this.seed=e.seed}apply(e,t){return Ao((()=>{if(e.length<2)throw new Jy("Shape must be at least 2D.");if("int32"!==t&&"float32"!==t&&void 0!==t)throw new TypeError(`Unsupported data type ${t}.`);const n=Kt(e.slice(0,-1)),s=e[e.length-1];this.ELEMENTS_WARN_SLOW;const r=tw([Math.max(s,n),Math.min(s,n)],0,1,t,this.seed),i=wm.qr(r,!1);let a=i[0];const o=i[1].flatten().stridedSlice([0],[Math.min(s,n)*Math.min(s,n)],[Math.min(s,n)+1]);return a=Fl(a,o.sign()),ne*t));return t}const Fw="Variable";class Bw{constructor(e,t="float32",n=Fw,s=!0,r=null){this.dtype=null==t?"float32":t,this.shape=e.shape,this.id=Ab(),n=null==n?Fw:n,this.originalName=Bb(n),this.name=Lb(this.originalName),this.trainable_=s,this.constraint=r,this.val=Xp(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),function(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}(this.val,e),this.val.id!==e.id&&(this.val.assign(e),null!=this.constraint&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}}function Lw(e){return e.map((e=>e.read()))}function Pw(e){e.forEach((e=>{e[0].write(e[1])}))}class Uw{constructor(e){this.dtype=e.dtype,this.shape=e.shape,null!=e.shape?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}}class Vw{constructor(e,t,n,s,r,i,a){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=s,this.callArgs=r,this.outputTensorIndex=a,this.id=Ab(),null!=i&&(this.originalName=Bb(i),this.name=Lb(this.originalName)),this.rank=t.length}}let Ww=0;class jw{constructor(e,t){this.callArgs=t,this.id=Ww++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(const t of e.inboundLayers)null!=t&&t.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){const e=[];for(const t of this.inboundLayers)null!=t?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}}let Gw=0;class qw extends Gl{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=Gw++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){const e=this.getClassName();t=ob(e)+"_"+kb(e)}if(this.name=t,this.trainable_=null==e.trainable||e.trainable,null!=e.inputShape||null!=e.batchInputShape){let t;if(null!=e.batchInputShape)t=e.batchInputShape;else if(null!=e.inputShape){let n=null;null!=e.batchSize&&(n=e.batchSize),t=[n].concat(e.inputShape)}this.batchInputShape=t;let n=e.dtype;null==n&&(n=e.inputDType),null==n&&(n="float32"),this.dtype=n}null!=e.weights?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(0===this.inboundNodes.length)throw new Yy(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new Qy(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return ib(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return ib(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Zy(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(0===this.inboundNodes.length)throw new Zy(`Layer ${this.name} is not connected, no input to return.`);return ib(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(0===this.inboundNodes.length)throw new Zy(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Zy(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return ib(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map((e=>e()))}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach((t=>t.trainable=e)),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter((e=>e.trainable)):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter((e=>!e.trainable)).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){const t=ab(e);if(null==this.inputSpec||0===this.inputSpec.length)return;const n=ab(this.inputSpec);if(t.length!==n.length)throw new Qy(`Layer ${this.name} expects ${n.length} inputs, but it received ${t.length} input tensors. Input received: ${e}`);for(let e=0;er.maxNDim)throw new Qy(`Input ${e} is incompatible with layer ${this.name}: expected max_ndim=${r.maxNDim}, found ndim=${i}`);if(null!=r.minNDim&&i=0?t[s]:t[t.length+s];if(null!=i&&-1===[i,null].indexOf(a))throw new Qy(`Input ${e} is incompatible with layer ${this.name}: expected axis ${s} of input shape to have value ${i} but got shape ${t}.`)}}if(null!=r.shape)for(let t=0;t{if(!this.built){this.assertInputCompatibility(e);const t=[];for(const n of ab(e))t.push(n.shape);this.build(ib(t)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),null===this._refCount&&r&&(this._refCount=1)}if(this.assertInputCompatibility(e),r){let s=this.call(e,t);this.supportsMasking&&this.setMaskMetadata(e,s);const r=ab(s),i=[];for(let e of r)-1!==n.indexOf(e)&&(e=e.clone()),i.push(e);if(s=ib(i),null!=this.activityRegularizer)throw new Jy("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}{const n=function(e){e=ab(e);const t=[];for(const n of e)t.push(n.shape);return ib(t)}(e),s=this.computeOutputShape(n);let r;const i="float32";if(this.warnOnIncompatibleInputShape(Array.isArray(e)?n[0]:n),r=null!=s&&s.length>0&&Array.isArray(s[0])?s.map(((n,s)=>new Vw(i,n,this,ab(e),t,this.name,s))):new Vw(i,s,this,ab(e),t,this.name),this.addInboundNode(e,r,null,null,n,s,t),this._refCount++,null!=this.activityRegularizer)throw new Jy("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return r}}))}warnOnIncompatibleInputShape(e){if(null!=this.batchInputShape)if(e.length!==this.batchInputShape.length);else{let t=!1;this.batchInputShape.forEach(((n,s)=>{null!=n&&null!=e[s]&&e[s]!==n&&(t=!0)}))}}get outputShape(){if(null==this.inboundNodes||0===this.inboundNodes.length)throw new Zy(`The layer ${this.name} has never been called and thus has no defined output shape.`);const e=[];for(const t of this.inboundNodes){const n=JSON.stringify(t.outputShapes);-1===e.indexOf(n)&&e.push(n)}if(1===e.length){const e=this.inboundNodes[0].outputShapes;return Array.isArray(e)&&Array.isArray(e[0])&&1===e.length?e[0]:e}throw new Zy(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Yy(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return zw(this.weights)}build(e){this.built=!0}getWeights(e=!1){return Lw(e?this.trainableWeights:this.weights)}setWeights(e){Ao((()=>{const t=this.weights;if(t.length!==e.length)throw new Qy(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(0===t.length)return;const n=[],s=Lw(t);for(let r=0;rr.apply(u.read()))),null==i&&(i=!0),i?this._trainableWeights.push(u):this._nonTrainableWeights.push(u),u}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){null==e||Array.isArray(e)&&0===e.length||(e=ab(e),void 0!==this._losses&&null!==this._losses&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(null!=t){if(!Array.isArray(t))throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);t.forEach((e=>{if(null!=e)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)}))}return null}return t}setMaskMetadata(e,t,n){if(!this.supportsMasking)return;const s=this.computeMask(e,n),r=ab(t),i=ab(s);if(r.length!==i.length)throw new Error(`${this.name} outputs ${r.length} tensors but ${r.length} masks for those tensors`);for(let e=0;ee.dispose())),this.weights.length}assertNotDisposed(){if(0===this._refCount)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(null===this._refCount)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return 0==--this._refCount&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}}function Hw(e,t,n){if((null==t||null!=n&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),0===t.inboundNodes.length)return[e];{const e=t.inboundNodes[n];if(0===e.inboundLayers.length)return e.inputTensors;{const t=[];for(let n=0;ne.name)),l=[],u=t.names();for(const e of o)-1!==u.indexOf(e)?l.push(t.getValue(e)):l.push(null);null!=s&&(s.maxNumTensors=-1/0,s.minNumTensors=1/0);const c=o.join(",")+"|"+t.names().sort().join(",");let h,d=Xw.get(c);if(null==d){const e=function(e,t){Gt(null!=e&&e.length>0,(()=>"Expected at least one fetch, got none"));let n=[],s={};if(1===e.length){const r=Jw(e[0],t);n=r.sorted,s=r.recipientMap}else{const r=new Set;for(const i of e){const{sorted:e,recipientMap:a}=Jw(i,t);for(const t of e)r.has(t.name)||(n.push(t),r.add(t.name));for(const e in a)null==s[e]&&(s[e]=new Set),a[e].forEach((t=>s[e].add(t)))}}return{sorted:n,recipientCounts:Qw(s)}}(a,t);d=e.sorted,h=e.recipientCounts,Xw.put(c,d),Zw.put(c,h)}h={},r||Object.assign(h,Zw.get(c));const p=new $w(t);for(let e=0;es.maxNumTensors&&(s.maxNumTensors=e),e0;){const e=i[i.length-1];if(n.has(e.name)){i.pop();continue}const t=a[a.length-1]===i.length-1;if(0===e.inputs.length||t)i.pop(),s.push(e),n.add(e.name),t&&a.pop();else{a.push(i.length-1);for(const t of e.inputs)null==r[t.name]&&(r[t.name]=new Set),r[t.name].add(e.name),n.has(t.name)||i.push(t)}}return{sorted:s,recipientMap:r}}function ev(e){let t;if(1===e.sourceLayer.inboundNodes.length)t=e.sourceLayer.output;else{let n=null;for(let t=0;tBl(Dh(Fl(e,e),t,!0))))}Sn().registerFlag("TOPOLOGICAL_SORT_CACHE_MAX_ENTRIES",(()=>100),(function(e){null!=Xw&&Xw.setMaxEntries(e),null!=Zw&&Zw.setMaxEntries(e)}));class nv extends Gl{getConfig(){return{}}}class sv extends nv{constructor(e){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=null!=e.maxValue?e.maxValue:this.defaultMaxValue,this.axis=null!=e.axis?e.axis:this.defaultAxis}apply(e){return Ao((()=>{const t=tv(e,this.axis),n=$c(t,0,this.maxValue);return Fl(e,zl(n,Dl(Hb(),t)))}))}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}}sv.className="MaxNorm",Hl(sv);class rv extends nv{constructor(e){super(),this.defaultAxis=0,this.axis=null!=e.axis?e.axis:this.defaultAxis}apply(e){return Ao((()=>zl(e,Dl(Hb(),tv(e,this.axis)))))}getConfig(){return{axis:this.axis}}}rv.className="UnitNorm",Hl(rv);class iv extends nv{apply(e){return sp(e)}}iv.className="NonNeg",Hl(iv);class av extends nv{constructor(e){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=null!=e.minValue?e.minValue:this.defaultMinValue,this.maxValue=null!=e.maxValue?e.maxValue:this.defaultMaxValue,this.rate=null!=e.rate?e.rate:this.defaultRate,this.axis=null!=e.axis?e.axis:this.defaultAxis}apply(e){return Ao((()=>{const t=tv(e,this.axis),n=Dl(Fl(this.rate,$c(t,this.minValue,this.maxValue)),Fl(1-this.rate,t));return Fl(e,zl(n,Dl(Hb(),t)))}))}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}}av.className="MinMaxNorm",Hl(av);const ov={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function lv(e){return cb(e)}function uv(e,t={}){return db(e,ql.getMap().classNameMap,t,"constraint")}function cv(e){if(null==e)return null;if("string"==typeof e){return uv({className:e in ov?ov[e]:e,config:{}})}return e instanceof nv?e:uv(e)}async function hv(e){if(null==e)return;const t=[],n=[],s=[];for(const r in e){const i=e[r];if("number"!=typeof i){const e=i;t.push(e.data()),n.push(r),s.push(e)}}if(t.length>0){const r=await Promise.all(t);for(let t=0;tDl(this.totals[e],Fl(s,n))));this.totals[e]=r,null!=t&&t.dispose()}}}async onEpochEnd(e,t){if(null!=t)for(const e of this.params.metrics)null!=this.totals[e]&&("number"==typeof this.totals[e]?t[e]=this.totals[e]/this.seen:Ao((()=>{const n=Fl(zl(1,this.seen),this.totals[e]);t[e]=n,this.totals[e].dispose(),ko(t[e])})))}}class yv extends fv{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){null==t&&(t={}),this.epoch.push(e);for(const e in t)null==this.history[e]&&(this.history[e]=[]),this.history[e].push(t[e])}async syncData(){const e=[],t=[],n=[];for(const s in this.history){const r=this.history[s];for(let i=0;i{const a=null!=n?n():fa();return a-rnew bv(e,t)))}class vv{constructor(){}static registerCallbackConstructor(e,t){Gt(e>=0&&Number.isInteger(e),(()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`)),vv.checkForDuplicate(t),null==vv.constructors[e]&&(vv.constructors[e]=[]),vv.constructors[e].push(t)}static checkForDuplicate(e){for(const t in vv.constructors){vv.constructors[+t].forEach((t=>{if(t===e)throw new Qy("Duplicate callback constructor.")}))}}static clear(){vv.constructors={}}static createCallbacks(e){const t=[];for(const n in vv.constructors){const s=+n;e>=s&&t.push(...vv.constructors[s])}return t.map((e=>new e))}}function xv(e,t,n,s,r,i,a,o,l){const u=new yv,c=[new gv,...vv.createCallbacks(t)];null!=e&&c.push(...e),c.push(u);const h=new mv(c);return h.setParams({epochs:n,initialEpoch:s,samples:r,steps:i,batchSize:a,verbose:t,doValidation:o,metrics:l}),{callbackList:h,history:u}}function Av(e,t={},n=!1){return db(e,ql.getMap().classNameMap,t,"layer",n)}function Cv(e,t){return Ao((()=>{"float32"!==e.dtype&&(e=Nl(e,"float32"));const n=Dh(rw(e),t,!0),s=Xl(n.shape,Hb()),r=Bl(ru(n,s));return zl(e,r)}))}function kv(e,t){return Ao((()=>bd(rw(Ql(t,e)),-1)))}function Sv(e,t){return Ao((()=>bd(eu(Ql(t,e)),-1)))}function _v(e,t){return Ao((()=>{const n=Ql(e,t),s=$c(eu(e),Hb(),Number.MAX_VALUE),r=eu(zl(n,s));return Fl(100,bd(r,-1))}))}function Ev(e,t){return Ao((()=>{const n=$c(t,Hb(),Number.MAX_VALUE),s=td(Dl(1,n)),r=$c(e,Hb(),Number.MAX_VALUE),i=td(Dl(1,r));return bd(rw(Ql(s,i)),-1)}))}function Iv(e,t,n=!1){return Ao((()=>{if(n)t=Ap(t);else{const e=Dh(t,t.shape.length-1,!0);t=zl(t,e)}return t=$c(t,Hb(),1-Hb()),sd(Dh(Fl(Nl(e,"float32"),td(t)),t.shape.length-1))}))}function Tv(e,t,n=!1){return Ao((()=>{const s=Nl(Wh(function(e){const t=[Vb(e.shape)];return Tc(e,t)}(e)),"int32"),r=(t=$c(t,Hb(),1-Hb())).shape;return Iv(Tc(Td(s,r[r.length-1]),r),t,n)}))}function Nv(e,t){return Ao((()=>{let n;return n=$c(t,Hb(),1-Hb()),n=td(zl(n,Ql(1,n))),bd(function(e,t){if(!$t(e.shape,t.shape))throw new Qy(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return Ao((()=>{const n=sp(t),s=sd(eu(t));return Dl(Ql(n,Fl(t,e)),nd(Bh(s)))}))}(e,n),-1)}))}function Rv(e,t){return Ao((()=>{const n=$c(e,Hb(),1),s=$c(t,Hb(),1);return Dh(Fl(e,td(zl(n,s))),-1)}))}function Ov(e,t){return Ao((()=>{const n=Cv(e,-1),s=Cv(t,-1),r=Fl(n,s);return sd(Dh(r,-1))}))}vv.constructors={};const Dv={meanSquaredError:kv,meanAbsoluteError:Sv,meanAbsolutePercentageError:_v,meanSquaredLogarithmicError:Ev,squaredHinge:function(e,t){return Ao((()=>{const n=ru(0,Ql(1,Fl(e,t)));return bd(rw(n),-1)}))},hinge:function(e,t){return Ao((()=>{const n=ru(0,Ql(1,Fl(e,t)));return bd(n,-1)}))},categoricalHinge:function(e,t){return Ao((()=>{const n=Dh(Fl(e,t),-1),s=Rh(Fl(Ql(1,e),t),-1);return ru(0,Dl(1,Ql(s,n)))}))},logcosh:function(e,t){return Ao((()=>{const n=Math.log(2),s=Ql(t,e),r=Ql(Dl(s,rd(Fl(-2,s))),n);return bd(r,-1)}))},categoricalCrossentropy:Iv,sparseCategoricalCrossentropy:Tv,binaryCrossentropy:Nv,kullbackLeiblerDivergence:Rv,poisson:function(e,t){return Ao((()=>{const n=td(Dl(Hb(),t));return bd(Ql(t,Fl(e,n)),-1)}))},cosineProximity:Ov};function Mv(e){if("string"==typeof e){if(e in Dv)return Dv[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new Qy(t)}return e}function zv(e,t){return Ao((()=>{const n=Fl(.5,Nd(t)),s=Kb(Gh(t,n),e.dtype);return bd(mh(e,s),-1)}))}function Fv(e,t){return Ao((()=>Kb(mh(oc(e,-1),oc(t,-1)),"float32")))}function Bv(e,t){return Ao((()=>Nl(Dh(ld(mh(e,1),mh(t,1))),"float32")))}function Lv(e,t){return Nv(e,t)}function Pv(e,t){return e.rank===t.rank&&(e=Tp(e,[e.rank-1])),(t=oc(t,-1)).dtype!==e.dtype&&(t=Nl(t,e.dtype)),Nl(mh(e,t),"float32")}const Uv=Iv,Vv=Tv,Wv={binaryAccuracy:zv,categoricalAccuracy:Fv,precision:function(e,t){return Ao((()=>{const n=Bv(e,t),s=function(e,t){return Ao((()=>Nl(Dh(ld(mh(e,0),mh(t,1))),"float32")))}(e,t),r=Dl(n,s);return Nl(gh(Gh(r,0),zl(n,r),0),"float32")}))},categoricalCrossentropy:Uv,sparseCategoricalCrossentropy:Vv,mse:kv,MSE:kv,mae:Sv,MAE:Sv,mape:_v,MAPE:_v,cosine:Ov};function jv(e){if("string"==typeof e&&e in Wv)return Wv[e];if("string"!=typeof e&&null!=e)return e;throw new Qy(`Unknown metric ${e}`)}function Gv(e){if(sb(null!==e,`Unknown LossOrMetricFn ${e}`),"string"==typeof e)return e;{let t;for(const n of Object.keys(Dv))if(Dv[n]===e){t=n;break}if(void 0!==t)return t;for(const n of Object.keys(Wv))if(Wv[n]===e){t=n;break}return void 0!==t?t:e.name}}function qv(e,t,n=!1){if(null==e||"object"!=typeof e||Object.getPrototypeOf(e)!==Object.prototype||!Hv(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){JSON.stringify(e).length}}function Hv(e){if(null===e)return!0;if("object"==typeof e){if(Object.getPrototypeOf(e)===Object.prototype){const t=Object.keys(e);for(const n of t){if("string"!=typeof n)return!1;if(!Hv(e[n]))return!1}return!0}if(Array.isArray(e)){for(const t of e)if(!Hv(t))return!1;return!0}return!1}{const t=typeof e;return"string"===t||"number"===t||"boolean"===t}}function Kv(e,t,n,s=console.log){const r=function(e){let t=!0;const n=[],s=[];for(const t in e.nodesByDepth)n.push(e.nodesByDepth[t]);for(const e of n){if(e.length>1||1===e.length&&e[0].inboundLayers.length>1){t=!1;break}s.push(...e)}if(t)for(const n of e.layers){let e=!1;for(const r of n.inboundNodes)if(-1!==s.indexOf(r)){if(e){t=!1;break}e=!0}if(!t)break}return t}(e),i=["Layer (type)","Input Shape","Output shape","Param #"];let a;if(r?(t=t||90,n=n||[.32,.61,.89,1]):(t=t||115,n=n||[.24,.48,.7,.8,1]),n[n.length-1]<=1&&(n=n.map((e=>Math.floor(t*e)))),!r){i.push("Receives inputs"),a=[];for(const t in e.nodesByDepth)a.push(...e.nodesByDepth[t])}s("_".repeat(t)),$v(i,n,s),s("=".repeat(t));const o=e.layers;for(let e=0;e0&&(s=s.slice(0,s.length-1)+" "),s+=e[n],s=s.slice(0,t[n]),s+=" ".repeat(t[n]-s.length);n(s)}function Xv(e,t,n){let s,r;try{r=e.inboundNodes.map((e=>JSON.stringify(e.inputShapes))).join(",")}catch(e){r="multiple"}try{s=JSON.stringify(e.outputShape)}catch(e){s="multiple"}$v([`${e.name} (${e.getClassName()})`,r,s,e.countParams().toString()],t,n)}function Zv(e,t,n,s){let r,i;try{i=e.inboundNodes.map((e=>JSON.stringify(e.inputShapes))).join(",")}catch(e){i="multiple"}try{r=JSON.stringify(e.outputShape)}catch(e){r="multiple"}const a=[];for(const t of e.inboundNodes)if(!(null!=n&&n.length>0&&-1===n.indexOf(t)))for(let e=0;ee.name))}`);fb(this.outputs).length,this.outputs.length,this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(const e of this.outputs){const t=e.sourceLayer,n=e.nodeIndex,s=e.tensorIndex;this.outputLayers.push(t),this.outputLayersNodeIndices.push(n),this.outputLayersTensorIndices.push(s)}for(const e of this.inputs){const t=e.sourceLayer,n=e.nodeIndex,s=e.tensorIndex;sb(0===n,"input layer has >1 nodes"),sb(0===s,"input layer has >1 tensors"),this.inputLayers.push(t),this.inputLayersNodeIndices.push(n),this.inputLayersTensorIndices.push(s)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let t=0;te.shape)),this.internalOutputShapes=this.outputs.map((e=>e.shape));const t={},n={},s={},r={},i={},a=[],o=(e,t,n,s,r,l)=>{null!=s&&null!=r&&null!=l||(s=e.sourceLayer,r=e.nodeIndex,l=e.tensorIndex);const u=s.inboundNodes[r];if(-1!==n.indexOf(u))throw new Yy(`The tensor ${e.name} at layer "${s.name}" is part of a cycle.`);if(-1!==t.indexOf(u))return;this.containerNodes.add(tx.nodeKey(s,r)),s.id in i||(i[s.id]=Object.keys(i).length),-1===n.indexOf(u)&&n.push(u);const c=u.inboundLayers.length;for(let e=0;e=0;)n.splice(n.indexOf(u),1);a.push(u)},l=[],u=[];for(const e of this.outputs)o(e,l,u);const c=a.slice().reverse();for(const e of c){n[e.id]=e,e.id in t||(t[e.id]=0);let i=t[e.id];const a=null==s[e.outboundLayer.id]?0:s[e.outboundLayer.id];i=Math.max(i,a),s[e.outboundLayer.id]=i,r[e.outboundLayer.id]=e.outboundLayer,t[e.id]=i;for(let s=0;sparseInt(e,10))).sort(pb);this.layers=[];for(const e of p){const t=d[e];t.sort(((e,t)=>{const n=i[e.id],s=i[t.id];return ns?1:0}));for(const e of t)e instanceof tx&&this.internalContainerRefs.push(e),this.layers.push(e)}this.layersByDepth=d,p=Object.keys(h).map((e=>parseInt(e,10))).sort(pb);const f=this.inputs.slice(),m=[];for(const e of p)for(const t of h[e]){const e=t.outboundLayer;if(null!=e){for(const n of t.inputTensors)if(-1===f.indexOf(n))throw new Yy(`Graph disconnected: cannot obtain value for tensor ${n} at layer "${e.name}". The following previous layers were accessed without issue: ${m}`);for(const e of t.outputTensors)f.push(e);m.push(e.name)}}this.nodesByDepth=h;const g=this.layers.map((e=>e.name));for(const e of g){const t=g.filter((t=>t===e)).length;if(1!==t)throw new Yy(`The name "${e}" is used ${t} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new jw({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map((e=>null)),outputMasks:this.outputs.map((e=>null)),inputShapes:this.inputs.map((e=>e.shape)),outputShapes:this.outputs.map((e=>e.shape))}),this.built=!0,this._refCount=1}assertNotDisposed(){if(0===this._refCount)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();const e={refCountAfterDispose:null,numDisposedVariables:0};if(0==--this._refCount){for(const t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(const t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach((t=>{t._trainableWeights.forEach((t=>t.trainable=e))})),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new Qy("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(const t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const e of this.layers)t.push(...e.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){const n={};let s=0;const r=(e=>{const t=Object.keys(e);if(0===t.length)return!1;const n=t[0].split("/");return!isNaN(parseInt(n[n.length-1],10))})(e);r&&this.parseWeights(e);for(const e of this.layers)for(const[t,i]of e.weights.entries()){const e=r?`${i.name.split("/").slice(0,-1).join("/")+"/"}${t}`:i.originalName;if(null!=n[e])throw new Qy(`Duplicate weight name: ${e}`);n[e]=i,s++}const i=[];for(const s in e){let r=s;if(null==n[s]){const e=s.split("/");r=e.slice(0,-2).concat([e[e.length-1]]).join("/")}if(null!=n[r])i.push([n[r],e[s]]);else if(t)throw new Qy(`Provided weight data has no target variable: ${s}`);delete n[r]}if(t){const e=[];for(const t in n)e.push(t);if(e.length>0)throw new Qy(`${e.length} of ${s} weights are not set: ${e}`)}Pw(i)}parseWeights(e){for(const t in Object.keys(e)){const n=t.split("/"),s=["vars","layer_checkpoint_dependencies"],r=n.map((e=>e.startsWith("_")?e.slice(1):e)).filter((e=>!s.includes(e))).join("/");r!==t&&(e[r]=e[t],delete e[t])}}updatedConfig(){const e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${ex}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){const n=Jv(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return Ao((()=>{e=ab(e);const n=new $w;for(let t=0;t{let n;return e=ab(e),n=null==t?nb(null,e.length):ab(t),this.runInternalGraph(e,n)[1]}))}computeOutputShape(e){const t=Ow(e);if(t.length!==this.inputLayers.length)throw new Qy(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);const n={};for(let e=0;eparseInt(e,10))).sort(pb);if(s.length>1)for(const e of s){const t=this.nodesByDepth[e];for(const e of t){const t=e.outboundLayer;if(-1!==this.inputLayers.map((e=>e.id)).indexOf(t.id))continue;const s=[];for(let t=0;tparseInt(e,10))).sort(pb);for(const e of s){const t=this.nodesByDepth[e];for(const e of t){const t=e.outboundLayer,s=e.inputTensors,r=e.outputTensors,i=new Array;for(const e of s)e.id in n&&i.push(n[e.id]);if(i.length===s.length){let s,a,o,l,u={};if(null!=e.callArgs&&(u=e.callArgs),1===i.length){const[e,n]=i[0];null==u.mask&&(u.mask=n),o=ab(t.call(e,u)),l=ab(t.computeMask(e,n)),s=[e],a=[n]}else s=i.map((e=>e[0])),a=i.map((e=>e[1])),null==u.mask&&(u.mask=a),o=ab(t.call(s,u)),l=ab(t.computeMask(s,a));if(t.activityRegularizer)throw new Jy("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let e=0;e{const e=[];for(const t of this.layers)for(let n=0;n0){const e=[];for(let n=0;n0&&e.apply(ib(n),s)}function l(e){const n=e.name,i=Av(e,null!=t.customObjects?t.customObjects:{});i.setFastWeightInitDuringBuild(s),r[n]=i;e.inboundNodes.forEach((e=>{if(!(e instanceof Array))throw new Qy(`Corrupted configuration, expected array for nodeData: ${e}`);a(i,e)}))}const u=t.name,c=t.layers;for(const e of c)l(e);for(;!mb(i);)for(const e of c){const t=r[e.name];if(t.name in i){const e=i[t.name];delete i[t.name];for(const n of e)o(t,n)}}const h=[],d=[],p=t.inputLayers;for(const e of p){const t=e[0],n=e[1],s=e[2];sb(t in r);const i=r[t].inboundNodes[n].outputTensors;h.push(i[s])}const f=t.outputLayers;for(const e of f){const t=e[0],n=e[1],s=e[2];sb(t in r);const i=r[t].inboundNodes[n].outputTensors;d.push(i[s])}return new e({inputs:h,outputs:d,name:u})}get stateful(){if(this._stateful)throw new Qy("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(const e of this.layers)if(e.stateful)return!0;return!1}resetStates(){Ao((()=>{this.layers.forEach((e=>{e.stateful&&e.resetStates()}))}))}}function nx(e,t,n){const s=t.length;if(null==e||Array.isArray(e)&&0===e.length)return t.map((e=>null));if(1===s)return Array.isArray(e)&&1===e.length?e:"object"==typeof e&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==s)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${s} outputs. Make sure a set of weights is provided for each model output.`);return e}if("object"==typeof e&&Object.keys(e).length>0&&"object"==typeof e[Object.keys(e)[0]]){const n=[];return t.forEach((t=>{t in e?n.push(e[t]):n.push(null)})),n}throw new Error(`The model has multiple (${s}) outputs, so ${n} must be either an array with ${s} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}function sx(e,t){return nx(e,t,"classWeight")}async function rx(e,t,n,s){if(null!=t||null!=s)throw new Error("Support sampleWeight is not implemented yet");if(null!=n){const t=Ao((()=>{if(1===e.shape.length)return Rl(e);if(2===e.shape.length){if(e.shape[1]>1){return oc(e,1)}if(1===e.shape[1])return Tc(e,[e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)})),s=Array.from(await t.data());Co(t);const r=[];return s.forEach((e=>{if(null==n[e])throw new Error(`classWeight must contain all classes in the training data. The class ${e} exists in the data but not in classWeight`);r.push(n[e])})),Mp(r,"float32")}return null}function ix(e,t){return Fl(e,t)}function ax(e,t){let n,s;const r=t;n=r.xs,s=r.ys,Gt(null!=n&&null!=s,(()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`));const i=ox("input",e.inputNames,n),a=ox("output",e.outputNames,s),o=i[0].shape[0];Gt(i.length===e.inputs.length,(()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${i.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`)),Gt(a.length===e.outputs.length,(()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${a.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`));for(let t=0;t`Batch size mismatch: input ${e.inputNames[t]} has ${i[t].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`));for(let t=0;t`Batch size mismatch: output ${e.outputNames[t]} has ${a[t].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`));return{xs:i,ys:a}}function ox(e,t,n){if(n instanceof Ma)return[n];if(Array.isArray(n))return Gt(n.length===t.length,(()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`)),n;{const s=[];for(const r of t){if(null==n[r])throw new Qy(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);s.push(n[r])}return s}}async function lx(e,t,n){const s=null!=n.batchesPerEpoch;if(Gt(null!=e.optimizer,(()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig).")),Gt(null!=n,(()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call.")),Gt(null!=n.epochs&&n.epochs>0&&Number.isInteger(n.epochs),(()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`)),Gt(!s||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),(()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`)),Gt(null==n.validationSplit,(()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead.")),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{const r=null!=n.validationData;let i,a;if(r)if(ux(n.validationData))Gt(null==n.validationBatches||n.validationBatches>0&&Number.isInteger(n.validationBatches),(()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${n.validationBatches}`));else{const e=function(e){if(3===e.length)throw new Jy("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}(n.validationData);i=e.xs,a=e.ys}const o=e.makeTrainFunction(),l=e.getDedupedMetricsNames();let u;u=r?l.slice().concat(l.map((e=>"val_"+e))):l.slice();const c=wv(n.callbacks,n.yieldEvery),h=null==n.verbose?1:n.verbose,{callbackList:d,history:p}=xv(c,h,n.epochs,null,null,function(e,t){let n=null;null!=t.batchesPerEpoch?n=t.batchesPerEpoch:Number.isFinite(e.size)&&(n=e.size);return n}(t,n),null,r,u);d.setModel(e),e.history=p,await d.onTrainBegin(),e.stopTraining_=!1;let f=null==n.initialEpoch?0:n.initialEpoch,m=await t.iterator();for(;f=n.batchesPerEpoch:t.done){if(r){let t;t=ux(n.validationData)?ab(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):ab(e.evaluate(i,a,{batchSize:null==n.validationBatchSize?32:n.validationBatchSize,verbose:0}));for(let n=0;n0&&Number.isInteger(e),(()=>`batchSize is required to be a positive integer, but got ${e}`))}function hx(e,t,n){return null==e?[null]:Array.isArray(e)?e.map((e=>Xb(e,t,n-t))):Xb(e,t,n-t)}function dx(e,t){return Ao((()=>null==e?null:Array.isArray(e)?e.map((e=>dx(e,t))):sw(e,"int32"===t.dtype?t:Nl(t,"int32"))))}function px(e,t){const n=[];let s=0,r=null;for(;s=e&&(r=e),n.push([s,r]),s=r;return n}function fx(e){const t=[];e instanceof Ma&&(e=[e]);for(let n=0;nn.push(e.id)));else if(null!=t)for(const e in t){const s=t[e];n.push(s.id)}const s=[];if(e instanceof Ma)-1===n.indexOf(e.id)&&s.push(e);else if(Array.isArray(e))e.forEach((e=>{-1===n.indexOf(e.id)&&s.push(e)}));else if(null!=e)for(const t in e){const r=e[t];-1===n.indexOf(r.id)&&s.push(r)}s.forEach((e=>{e.isDisposed||e.dispose()}))}function gx(e){return Array.isArray(e)}function yx(e){return!function(e){return e instanceof Ma}(e)&&!gx(e)}function bx(e,t,n,s=!0,r=""){if(null==t||0===t.length){if(null!=e){let t=!1;if(gx(e)&&e.length>0)t=!0;else if(yx(e)){for(const n in e)if(e.hasOwnProperty(n)){t=!0;break}}else t=!0;if(t)throw new Qy(`Error when checking model ${r} expected no data, but got ${e}`)}return[]}if(null==e)return t.map((e=>null));let i;if(yx(e)){i=[];for(const n of t){if(null==e[n])throw new Qy(`No data provided for "${n}". Need data for each key in: ${t}`);i.push(e[n])}}else if(gx(e)){if(e.length!==t.length)throw new Qy(`Error when checking model ${r}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);i=e}else{if(t.length>1)throw new Qy(`The model ${r} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);i=[e]}if(i=fx(i),null!=n)for(let e=0;e=0&&i!==o)throw new Qy(`${r} expected a batch of elements where each example has shape [${n[e].slice(1,n[e].length)}] (i.e.,tensor shape [*,${n[e].slice(1,n[e].length)}]) but the ${r} received an input with ${a.shape[0]} examples, each with shape [${a.shape.slice(1,a.shape.length)}] (tensor shape [${a.shape}])`)}}return i}function wx(e,t,n,s=!0,r=""){let i;if(Array.isArray(e)){if(e.length!==t.length)throw new Qy(`Error when checking model ${r}: the Array of Tensors that you are passing to your model is not the size the the model expected. Expected to see ${t.length} Tensor(s), but instead got ${e.length} Tensors(s).`);i=e}else{if(t.length>1)throw new Qy(`The model expects ${t.length} ${r} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);i=[e]}if(null!=n)for(let e=0;eCm.adagrad(.01),Adadelta:()=>Cm.adadelta(1,.95,Hb()),Adam:()=>Cm.adam(.001,.9,.999,Hb()),Adamax:()=>Cm.adamax(.002,.9,.999,Hb(),0),RMSProp:()=>Cm.rmsprop(.001,.9,0,Hb()),SGD:()=>Cm.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new Qy(`Unknown Optimizer ${e}`)}(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Kl))throw new Qy("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(Array.isArray(e.loss)||"string"==typeof e.loss||"function"==typeof e.loss)if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new Qy(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);const n=e.loss;t=n.map((e=>Mv(e)))}else{const n=Mv(e.loss);this.outputs.forEach((e=>{t.push(n)}))}else{e.loss=e.loss;for(const t in e.loss)if(-1===this.outputNames.indexOf(t))throw new Qy(`Unknown entry in loss dictionary: "${t}". Only expected the following keys: ${this.outputNames}`);for(const n of this.outputNames)e.loss[n],t.push(Mv(e.loss[n]))}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let e=0;e{for(let e=0;e1&&(this.metricsTensors.push([t,e]),this.metricsNames.push(this.outputNames[e]+"_loss"))}}));const s=function(e,t){if(null==e||Array.isArray(e)&&0===e.length)return t.map((e=>[]));let n;if("string"==typeof e||"function"==typeof e)n=[e];else{if(!Array.isArray(e)&&"object"!=typeof e)throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);n=e}if(Array.isArray(n))return t.map((e=>n));{const e=[];for(const s of t){let t=n.hasOwnProperty(s)?n[s]:[];Array.isArray(t)||(t=[t]),e.push(t)}return e}}(e.metrics,this.outputNames),r=(e,t,n)=>{this.outputNames.length>1&&(t=this.outputNames[e]+"_"+t),this.metricsNames.push(t),this.metricsTensors.push([n,e])};Fb("metric",(()=>{for(let e=0;e{let n,s,i;for(const a of t){if("string"==typeof a&&-1!==["accuracy","acc","crossentropy","ce"].indexOf(a)){const t=this.internalOutputShapes[e];let r;1===t[t.length-1]||this.lossFunctions[e]===Nv?-1!==["accuracy","acc"].indexOf(a)?s=zv:-1!==["crossentropy","ce"].indexOf(a)&&(s=Lv):this.lossFunctions[e]===Tv?-1!==["accuracy","acc"].indexOf(a)?s=Pv:-1!==["crossentropy","ce"].indexOf(a)&&(s=Vv):-1!==["accuracy","acc"].indexOf(a)?s=Fv:-1!==["crossentropy","ce"].indexOf(a)&&(s=Uv),-1!==["accuracy","acc"].indexOf(a)?r="acc":-1!==["crossentropy","ce"].indexOf(a)&&(r="ce"),i=s,n=""+r}else{const e=jv(a);i=e,n=""+Gv(a)}let t;Fb(n,(()=>{t=i})),r(e,n,t)}})(s[e])}})),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){null!=this.collectedTrainableWeights&&(this.trainableWeights.length,this.collectedTrainableWeights.length)}evaluate(e,t,n={}){const s=null==n.batchSize?32:n.batchSize;cx(s);const r=this.standardizeUserDataXY(e,t,!0,s);try{const e=r[0].concat(r[1]);this.makeTestFunction();const t=this.testFunction;return ib(this.testLoop(t,e,s,n.verbose,n.steps))}finally{mx(r[0],e),mx(r[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),async function(e,t,n){const s=null!=(n=n||{}).batches,r=e.testFunction;let i=[];if(n.verbose>0)throw new Jy("Verbose mode is not implemented yet.");Gt(!s||n.batches>0&&Number.isInteger(n.batches),(()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`));const a="function"==typeof t.next?t:await t.iterator();let o=0,l=0;for(;!s||l{if(t.value){const{xs:n,ys:s}=ax(e,t.value),a=n.concat(s),u=Ao((()=>r(a)));if(Co(a),0===l)for(let e=0;eDl(i[e],Fl(c,t)))),l>0&&Co(n)}Co(u),o+=c,++l}return i})),t.done)break}for(let e=0;ee.name));for(let s=0;s0){const n=[];throw t.forEach(((t,s)=>{null==t&&n.push(e[s])})),new Qy(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(n)}`)}return t}predictLoop(e,t=32,n=!1){return Ao((()=>{const s=this.checkNumSamples(e);if(n)throw new Jy("Verbose predictLoop() is not implemented yet.");const r=px(s,t),i=this.outputs.map((e=>[]));for(let t=0;t{const n=r[t][0],s=r[t][1],i=hx(e,n,s),a=[];if(Array.isArray(i))for(let e=0;ei[t].push(e)))}return ib(i.map((e=>Oc(e,0))))}))}predict(e,t={}){const n=fx(e);wx(n,this.inputNames,this.feedInputShapes,!1);try{const e=null==t.batchSize?32:t.batchSize;return cx(e),this.predictLoop(n,e)}finally{mx(n,e)}}predictOnBatch(e){wx(e,this.inputNames,this.feedInputShapes,!0);const t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,s){if(null==this.optimizer_)throw new Yy("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");const r=[];for(let e=0;ee.shape[0])));s.sort();const r=fb(t.map((e=>e.shape[0])));if(r.sort(),s.length>1)throw new Qy(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map((e=>e.shape)))}`);if(r.length>1)throw new Qy(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map((e=>e.shape)))}`);if(s.length>0&&r.length>0&&!$t(s,r))throw new Qy(`Input Tensors should have the same number of samples as target Tensors. Found ${s[0]} input sample(s) and ${r[0]} target sample(s).`)}(e=bx(e,this.feedInputNames,this.feedInputShapes,!1,"input"),t=bx(t,this.feedOutputNames,r,!1,"target")),function(e,t,n){const s=[kv,Nv,Iv];for(let r=0;r0&&e[0].shape[0]%s!=0)throw new Qy(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${s}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,s,r=!0,i){const[a,o]=this.standardizeUserDataXY(e,t,r,i);if(null!=n)throw new Error("sample weight is not supported yet.");let l=null;if(null!=s){const e=sx(s,this.outputNames);l=[];for(let t=0;t{const i=this.checkNumSamples(t,n,r,"steps"),a=[];if(s>0)throw new Jy("Verbose mode is not implemented yet.");if(null!=r)throw new Jy("steps mode in testLoop() is not implemented yet");{const s=px(i,n),r=Mp(Gb(0,i));for(let n=0;n1){r+=`_${rb(e.slice(0,n),s)}`}t.push(r)}return t}makeTrainFunction(){return e=>{const t=[],n=e.slice(0,this.inputs.length),s=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+2*this.outputs.length),i=[],a=this.collectedTrainableWeights.map((e=>e.read()));return[this.optimizer_.minimize((()=>{const e=[];for(let t=0;t1&&e{l=Dl(l,e)})),l}),!0,a)].concat(i)}}makeTestFunction(){this.testFunction=e=>Ao((()=>{const t=[];let n;const s=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),i=[];for(let e=0;e0){if(g=!0,2!==n.validationData.length)throw 3===n.validationData.length?new Jy("validationData including sample weights is not supported yet."):new Qy(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${n.validationData} is invalid.`);o=n.validationData[0],l=n.validationData[1];const e=!0,t=await this.standardizeUserData(o,l,null,null,e,d);u=t[0],c=t[1],m=u.concat(c)}else if(null!=n.validationSplit&&n.validationSplit>0&&n.validationSplit<1){g=!0;const e=Math.floor(s[0].shape[0]*(1-n.validationSplit)),t=s[0].shape[0];u=hx(s,e,t),i=s,s=hx(s,0,e),c=hx(r,e,t),a=r,r=hx(r,0,e),m=u.concat(c)}else null!=n.validationSteps&&(g=!0);const y=s.concat(r).concat(h);this.checkTrainableWeightsConsistency();const b=this.makeTrainFunction(),w=this.getDedupedMetricsNames();let v,x;g?(this.makeTestFunction(),v=this.testFunction,x=w.slice().concat(w.map((e=>"val_"+e)))):(v=null,m=[],x=w.slice());const A=wv(n.callbacks,n.yieldEvery);return await this.fitLoop(b,y,w,d,n.epochs,n.verbose,A,v,m,n.shuffle,x,n.initialEpoch,null,null)}finally{this.isTraining=!1,mx(s,e),mx(r,t),mx(i,e),mx(a,t),mx(u,o),mx(c,l),null!=h&&Co(h)}}async fitLoop(e,t,n,s,r,i,a,o,l,u,c,h,d,p){null==s&&(s=32),null==r&&(r=1),null==u&&(u=!0),null==h&&(h=0);let f=!1;if(null!=o&&null!=l&&(f=!0),null!=p&&(f=!0,null==d))throw new Qy("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");const m=this.checkNumSamples(t,s,d,"steps_per_epoch");let g;null!=m&&(g=Gb(0,m)),null==i&&(i=1);const{callbackList:y,history:b}=xv(a,i,r,h,m,d,s,f,c);y.setModel(this),this.history=b,await y.onTrainBegin(),this.stopTraining_=!1;for(let i=h;i{const h=a[u][0],d=a[u][1],p=Xb(i,h,d-h);c.batch=u,c.size=d-h;const m=dx(t,p),g=e(m);for(let e=0;eob(e)))}else{const t=Object.keys(this.loss);e={};const n=this.loss;for(const s of t){if("string"!=typeof n[s])throw new Error("Serialization of non-string loss is not supported.");e[s]=ob(n[s])}}return e}getMetricIdentifiers(){if("string"==typeof this.metrics||"function"==typeof this.metrics)return[ob(Gv(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map((e=>ob(Gv(e))));{const e={};for(const t in this.metrics)e[t]=ob(Gv(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(null!=e.weighted_metrics)throw new Error("Loading weight_metrics is not supported yet.");if(null!=e.loss_weights)throw new Error("Loading loss_weights is not supported yet.");if(null!=e.sample_weight_mode)throw new Error("Loading sample_weight_mode is not supported yet.");const t=Av(Qv(e.optimizer_config));let n,s;if("string"==typeof e.loss)n=lb(e.loss);else if(Array.isArray(e.loss))n=e.loss.map((e=>lb(e)));else if(null!=e.loss){n={};for(const t in e.loss)n[t]=lb(e.loss[t])}if(Array.isArray(e.metrics))s=e.metrics.map((e=>lb(e)));else if(null!=e.metrics){s={};for(const t in e.metrics)s[t]=lb(e.metrics[t])}this.compile({loss:n,metrics:s,optimizer:t})}async save(e,t){if("string"==typeof e){const t=$o(e);if(0===t.length)throw new Qy(`Cannot find any save handlers for URL '${e}'`);if(t.length>1)throw new Qy(`Found more than one (${t.length}) save handlers for URL '${e}'`);e=t[0]}if(null==e.save)throw new Qy("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");const n=await Io(this.getNamedWeights(t)),s={modelTopology:this.toJSON(null,!1),format:"layers-model",generatedBy:`TensorFlow.js tfjs-layers v${ex}`,convertedBy:null};if(null!=t&&t.includeOptimizer&&null!=this.optimizer){s.trainingConfig=this.getTrainingConfig();const e="optimizer",{data:t,specs:r}=await Io(await this.optimizer.getWeights(),e);n.specs.push(...r),n.data=Lo([n.data,t])}if(null!=this.userDefinedMetadata){const e=!0;qv(this.userDefinedMetadata,this.name,e),s.userDefinedMetadata=this.userDefinedMetadata}return s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){qv(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}}vx.className="Model",Hl(vx);class xx extends vx{}xx.className="Functional",Hl(xx);class Ax extends vx{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=null!=e.name?e.name:kb("sequential_"),null!=e.layers)for(const t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some((e=>e<0)))throw new Qy(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){const t=e instanceof Ax||e instanceof vx;let n;if(t){if(n=e,1!==n.outputs.length)throw new Qy("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(1!==n.inputs.length)throw new Qy("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(0===this.outputs.length){if(0===e.inboundNodes.length){if(null==e.batchInputShape)throw new Qy("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");const t=function(e){if(null==e.batchShape&&null==e.shape)throw new Error("Please provide to Input either a `shape` or a `batchShape` argument. Note that `shape` does not include the batch dimension.");if(null!=e.batchShape&&null!=e.shape)throw new Qy("Please provide either a `shape` or `batchShape` argument to Input, but not both.");let t=e.batchShape;null!=e.shape&&null==t&&(t=[null].concat(e.shape));let n=e.dtype;return null==n&&(n="float32"),new Kw({batchInputShape:t,name:e.name,dtype:n,sparse:e.sparse}).inboundNodes[0].outputTensors[0]}({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(t)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(1!==e.inboundNodes.length)throw new Qy(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(1!==e.inboundNodes[0].outputTensors.length)throw new Qy("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=Hw(this.outputs[0])}this.inboundNodes=[],new jw({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:nb(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map((e=>e.shape)),outputShapes:this.outputs[0].shape})}else{const t=e.apply(this.outputs[0]);if(Array.isArray(t))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[t],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(0===this.layers.length)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),0===this.layers.length)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{const e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return null==this.model&&this.build(),this.model.call(e,t)}build(e){if(Mw(e),0===this.inputs.length||0===this.outputs.length)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new vx({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,n=console.log){this.built||this.build(),super.summary(e,t,n)}setWeights(e){null==this.model&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new Yy("The model needs to be compiled before being used.");return this.model.evaluate(e,t,n)}async evaluateDataset(e,t){if(!this.built)throw new Yy("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return null==this.model&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return null==this.model&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return null==this.model?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new Yy("The model needs to be compiled before being used.");return this.model.fit(e,t,n)}async fitDataset(e,t){if(!this.built)throw new Yy("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,n={},s=!1){let r,i={};if(t instanceof Array){if(null==t[0].className||"Merge"===t[0].className)throw new Qy("Legacy serialization format not supported yet.");r=t}else Gt(null!=t.layers,(()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field.")),r=t.layers,delete t.layers,i=t;const a=new e(i);if(!(a instanceof Ax))throw new Jy(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(const e of r){const t=Av(e,void 0,s);s&&t.setFastWeightInitDuringBuild(!0),a.add(t)}return a}set stopTraining(e){if(null==this.model)throw new Qy("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(null==this.model)throw new Qy("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){const e=[];for(const t of this.layers){const n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}}Ax.className="Sequential",Hl(Ax);class Cx extends Gl{getConfig(){return{}}}class kx extends Cx{apply(e,t=1){return function(e,t=1){if(1!==t)throw new Jy(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return vh(e)}(e,t)}}kx.className="elu",Hl(kx);class Sx extends Cx{apply(e){return dp(e)}}Sx.className="selu",Hl(Sx);class _x extends Cx{apply(e){return sp(e)}}_x.className="relu",Hl(_x);class Ex extends Cx{apply(e){return Ao((()=>Ad(6,sp(e))))}}Ex.className="relu6",Hl(Ex);class Ix extends Cx{apply(e){return e}}Ix.className="linear",Hl(Ix);class Tx extends Cx{apply(e){return Mc(e)}}Tx.className="sigmoid",Hl(Tx);class Nx extends Cx{apply(e){return function(e){return Ao((()=>{const t=Dl(.5,Fl(.2,e));return $c(t,0,1)}))}(e)}}Nx.className="hardSigmoid",Hl(Nx);class Rx extends Cx{apply(e){return rd(e)}}Rx.className="softplus",Hl(Rx);class Ox extends Cx{apply(e){return function(e){return Ao((()=>zl(e,Dl(eu(e),1))))}(e)}}Ox.className="softsign",Hl(Ox);class Dx extends Cx{apply(e){return Fc(e)}}Dx.className="tanh",Hl(Dx);class Mx extends Cx{apply(e,t=-1){return Ap(e,t)}}Mx.className="softmax",Hl(Mx);class zx extends Cx{apply(e,t=-1){return ad(e,t)}}zx.className="logSoftmax",Hl(zx);class Fx extends Cx{apply(e){return Ao((()=>Ao((()=>{const t=Math.sqrt(2),n=Fl(.5,Dl(1,Ah(zl(e,t))));return Fl(e,n)}))))}}Fx.className="gelu",Hl(Fx);class Bx extends Cx{apply(e){return Ao((()=>Fl(.5,Fl(e,Dl(1,Fc(Fl(Bl(zl(2,Math.PI)),Dl(e,Fl(.044715,Yl(e,3))))))))))}}Bx.className="gelu_new",Hl(Bx);class Lx extends Cx{apply(e){return Ao((()=>Fl(e,Fc(rd(e)))))}}Lx.className="mish",Hl(Lx);class Px extends Cx{apply(e,t=1){return Ao((()=>Fl(Mc(Fl(e,t)),e)))}}function Ux(e){return e.getClassName()}function Vx(e,t={}){return db(e,ql.getMap().classNameMap,t,"activation")}function Wx(e){if(null==e){const e={className:"linear",config:{}};return Vx(e)}if("string"==typeof e){const t={};return t.className=e,t.config={},Vx(t)}return e instanceof Cx?e:Vx(e)}function jx(e){if(null!=e&&"object"!=typeof e)throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}Px.className="swish",Hl(Px);class Gx extends Gl{}class qx extends Gx{constructor(e){super(),jx(e),this.l1=null==e||null==e.l1?.01:e.l1,this.l2=null==e||null==e.l2?.01:e.l2,this.hasL1=0!==this.l1,this.hasL2=0!==this.l2}apply(e){return Ao((()=>{let t=wd([1]);return this.hasL1&&(t=Dl(t,Dh(Fl(this.l1,eu(e))))),this.hasL2&&(t=Dl(t,Dh(Fl(this.l2,rw(e))))),Tc(t,[])}))}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}}qx.className="L1L2",Hl(qx);const Hx={l1l2:"L1L2"};function Kx(e){return cb(e)}function $x(e,t={}){return db(e,ql.getMap().classNameMap,t,"regularizer")}function Xx(e){if(null==e)return null;if("string"==typeof e){return $x({className:e in Hx?Hx[e]:e,config:{}})}return e instanceof Gx?e:$x(e)}class Zx extends qw{constructor(e){super(null==e?{}:e),this.supportsMasking=!0,null!=e&&(this.maxValue=e.maxValue)}call(e,t){e=Dw(e);let n=sp(e);return null!=this.maxValue&&(n=$c(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){const e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}}Zx.className="ReLU",Hl(Zx);class Yx extends qw{constructor(e){super(null==e?{}:e),this.DEFAULT_ALPHA=.3,null==e&&(e={}),this.alpha=null==e.alpha?this.DEFAULT_ALPHA:e.alpha}call(e,t){const n=Dw(e);return Zh(n,this.alpha)}computeOutputShape(e){return e}getConfig(){const e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}}Yx.className="LeakyReLU",Hl(Yx);class Qx extends qw{constructor(e){if(super(null==e?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",null==e&&(e={}),this.supportsMasking=!0,this.alphaInitializer=Nw(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Xx(e.alphaRegularizer),this.alphaConstraint=cv(e.alphaConstraint),null==e.sharedAxes)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else{if("number"!=typeof e.sharedAxes)throw new Qy(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`);this.sharedAxes=[e.sharedAxes]}}build(e){const t=(e=Mw(e)).slice(1);if(null!=this.sharedAxes)for(const e of this.sharedAxes)t[e-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);const n={};if(null!=this.sharedAxes)for(let t=1;t{let n=Dw(e);const s=t.mask;if(null!=s){const e=Fl(Ql(vd(n.shape),Nl(s,n.dtype)),Vl(-1e9));n=Dl(n,e)}return this.axis instanceof Array?this.axis.length>1?Bh(Ql(n,od(n,this.axis,!0))):this.softmax(n,this.axis[0]):this.softmax(n,this.axis)}))}computeOutputShape(e){return e}getConfig(){const e={axis:this.axis},t=super.getConfig();return Object.assign(e,t),e}}function nA(e,t,n){if("number"==typeof e)return nb(e,t);if(e.length!==t)throw new Qy(`The ${n} argument must be an integer or tuple of ${t} integers. Received: ${e.length} elements.`);for(let r=0;r(Rb(t),"channelsFirst"===t?Jp(e,[0,2,3,1]):e)))}function aA(e,t){return Ao((()=>(Rb(t),"channelsFirst"===t?Jp(e,[0,2,3,4,1]):e)))}function oA(e,t,n,s=1,r="valid",i,a=1){return Ao((()=>{if(null==i&&(i="channelsLast"),Rb(i),3!==e.shape.length)throw new Qy(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(3!==t.shape.length)throw new Qy(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(null!=n&&1!==n.shape.length)throw new Qy(`The bias for a conv1dWithBias operation should be 1, but is ${n.shape.length} instead`);if("channelsFirst"===i&&(e=Jp(e,[0,2,1])),"causal"===r)throw new Jy("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=eh(e,t,s,"same"===r?"same":"valid","NWC",a);return null!=n&&(o=aw(o,n)),o}))}function lA(e,t,n,s=[1,1],r="valid",i,a,o=null){return Ao((()=>{if(null==i&&(i="channelsLast"),Rb(i),3!==e.rank&&4!==e.rank)throw new Qy(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(3!==t.rank&&4!==t.rank)throw new Qy(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=iA(e,i);if("causal"===r)throw new Jy("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=ff({x:l,filter:t,strides:s,pad:"same"===r?"same":"valid",dilations:a,dataFormat:"NHWC",bias:n,activation:o}),"channelsFirst"===i&&(l=Jp(l,[0,3,1,2])),l}))}function uA(e,t,n,s=[1,1,1],r="valid",i,a){return Ao((()=>{if(null==i&&(i="channelsLast"),Rb(i),4!==e.rank&&5!==e.rank)throw new Qy(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(4!==t.rank&&5!==t.rank)throw new Qy(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=aA(e,i);if("causal"===r)throw new Jy("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=sh(o,t,s,"same"===r?"same":"valid","NDHWC",a),null!=n&&(o=aw(o,n)),"channelsFirst"===i&&(o=Jp(o,[0,4,1,2,3])),o}))}tA.className="Softmax",Hl(tA);class cA extends qw{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",cA.verifyArgs(t),this.rank=e,bb(this.rank,"rank"),1!==this.rank&&2!==this.rank&&3!==this.rank)throw new Jy(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=nA(t.kernelSize,e,"kernelSize"),this.strides=nA(null==t.strides?1:t.strides,e,"strides"),this.padding=null==t.padding?"valid":t.padding,Ob(this.padding),this.dataFormat=null==t.dataFormat?"channelsLast":t.dataFormat,Rb(this.dataFormat),this.activation=Wx(t.activation),this.useBias=null==t.useBias||t.useBias,this.biasInitializer=Nw(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=cv(t.biasConstraint),this.biasRegularizer=Xx(t.biasRegularizer),this.activityRegularizer=Xx(t.activityRegularizer),this.dilationRate=nA(null==t.dilationRate?1:t.dilationRate,e,"dilationRate"),1===this.rank&&Array.isArray(this.dilationRate)&&1!==this.dilationRate.length)throw new Qy(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(2===this.rank){if("number"==typeof this.dilationRate)this.dilationRate=[this.dilationRate,this.dilationRate];else if(2!==this.dilationRate.length)throw new Qy(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(3===this.rank)if("number"==typeof this.dilationRate)this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(3!==this.dilationRate.length)throw new Qy(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}static verifyArgs(e){if(sb("kernelSize"in e,"required key 'kernelSize' not in config"),"number"!=typeof e.kernelSize&&!yb(e.kernelSize,"number",1,3))throw new Qy(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){const e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:Ux(this.activation),useBias:this.useBias,biasInitializer:Tw(this.biasInitializer),biasRegularizer:Kx(this.biasRegularizer),activityRegularizer:Kx(this.activityRegularizer),biasConstraint:lv(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}class hA extends cA{constructor(e,t){super(e,t),this.kernel=null,hA.verifyArgs(t),this.filters=t.filters,bb(this.filters,"filters"),this.kernelInitializer=Nw(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=cv(t.kernelConstraint),this.kernelRegularizer=Xx(t.kernelRegularizer)}build(e){e=Mw(e);const t="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[t])throw new Qy(`The channel dimension of the input should be defined. Found ${e[t]}`);const n=e[t],s=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",s,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:n}}],this.built=!0}call(e,t){return Ao((()=>{let t;e=Dw(e);const n=null==this.bias?null:this.bias.read(),s=vb(this.activation.getClassName());if(null!=s&&2===this.rank)t=lA(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(1===this.rank)t=oA(e,this.kernel.read(),n,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(2===this.rank)t=lA(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else{if(3!==this.rank)throw new Jy("convolutions greater than 3D are not implemented yet.");t=uA(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate)}null!=this.activation&&(t=this.activation.apply(t))}return t}))}computeOutputShape(e){e=Mw(e);const t=[],n="channelsLast"===this.dataFormat?e.slice(1,e.length-1):e.slice(2);for(let e=0;e 0 but got ${JSON.stringify(e.filters)}`)}}class dA extends hA{constructor(e){super(2,e),dA.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if("number"!=typeof e.kernelSize&&!yb(e.kernelSize,"number",1,2))throw new Qy(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}}dA.className="Conv2D",Hl(dA);class pA extends hA{constructor(e){super(3,e),pA.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if("number"!=typeof e.kernelSize&&(!Array.isArray(e.kernelSize)||1!==e.kernelSize.length&&3!==e.kernelSize.length))throw new Qy(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}}pA.className="Conv3D",Hl(pA);class fA extends dA{constructor(e){if(super(e),this.inputSpec=[new Uw({ndim:4})],"same"!==this.padding&&"valid"!==this.padding)throw new Qy(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(4!==(e=Mw(e)).length)throw new Qy("Input should have rank 4; Received input shape: "+JSON.stringify(e));const t="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[t])throw new Qy("The channel dimension of the inputs should be defined. Found `None`.");const n=e[t],s=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",s,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new Uw({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return Ao((()=>{let t=Dw(e);if(4!==t.shape.length)throw new Qy(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${t.shape.length}`);const n=t.shape,s=n[0];let r,i;"channelsFirst"===this.dataFormat?(r=2,i=3):(r=1,i=2);const a=n[r],o=n[i],l=this.kernelSize[0],u=this.kernelSize[1],c=this.strides[0],h=this.strides[1],d=[s,rA(a,c,l,this.padding),rA(o,h,u,this.padding),this.filters];"channelsLast"!==this.dataFormat&&(t=Jp(t,[0,2,3,1]));let p=nh(t,this.kernel.read(),d,this.strides,this.padding);return"channelsLast"!==this.dataFormat&&(p=Jp(p,[0,3,1,2])),null!=this.bias&&(p=aw(p,this.bias.read(),this.dataFormat)),null!=this.activation&&(p=this.activation.apply(p)),p}))}computeOutputShape(e){const t=(e=Mw(e)).slice();let n,s,r;"channelsFirst"===this.dataFormat?(n=1,s=2,r=3):(n=3,s=1,r=2);const i=this.kernelSize[0],a=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[s]=rA(t[s],o,i,this.padding),t[r]=rA(t[r],l,a,this.padding),t}getConfig(){const e=super.getConfig();return delete e.dilationRate,e}}fA.className="Conv2DTranspose",Hl(fA);class mA extends pA{constructor(e){if(super(e),this.inputSpec=[new Uw({ndim:5})],"same"!==this.padding&&"valid"!==this.padding)throw new Qy(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(5!==(e=Mw(e)).length)throw new Qy("Input should have rank 5; Received input shape: "+JSON.stringify(e));const t="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[t])throw new Qy("The channel dimension of the inputs should be defined. Found `None`.");const n=e[t],s=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",s,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new Uw({ndim:5,axes:{[t]:n}})],this.built=!0}call(e,t){return Ao((()=>{let t=Dw(e);if(5!==t.shape.length)throw new Qy(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${t.shape.length}`);const n=t.shape,s=n[0];let r,i,a;"channelsFirst"===this.dataFormat?(a=2,r=3,i=4):(a=1,r=2,i=3);const o=n[a],l=n[r],u=n[i],c=this.kernelSize[0],h=this.kernelSize[1],d=this.kernelSize[2],p=this.strides[0],f=this.strides[1],m=this.strides[2],g=[s,rA(o,p,c,this.padding),rA(l,f,h,this.padding),rA(u,m,d,this.padding),this.filters];"channelsLast"!==this.dataFormat&&(t=Jp(t,[0,2,3,4,1]));let y=ih(t,this.kernel.read(),g,this.strides,this.padding);return"channelsLast"!==this.dataFormat&&(y=Jp(y,[0,4,1,2,3])),null!==this.bias&&(y=aw(y,this.bias.read(),this.dataFormat)),null!==this.activation&&(y=this.activation.apply(y)),y}))}computeOutputShape(e){const t=(e=Mw(e)).slice();let n,s,r,i;"channelsFirst"===this.dataFormat?(n=1,s=2,r=3,i=4):(n=4,s=1,r=2,i=3);const a=this.kernelSize[0],o=this.kernelSize[1],l=this.kernelSize[2],u=this.strides[0],c=this.strides[1],h=this.strides[2];return t[n]=this.filters,t[s]=rA(t[s],u,a,this.padding),t[r]=rA(t[r],c,o,this.padding),t[i]=rA(t[i],h,l,this.padding),t}getConfig(){const e=super.getConfig();return delete e.dilationRate,e}}mA.className="Conv3DTranspose",Hl(mA);class gA extends hA{constructor(e,t){if(super(e,t),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,null==t.filters)throw new Qy("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(null!=t.kernelInitializer||null!=t.kernelRegularizer||null!=t.kernelConstraint)throw new Qy("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(null!=t.padding&&"same"!==t.padding&&"valid"!==t.padding)throw new Qy(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=null==t.depthMultiplier?1:t.depthMultiplier,this.depthwiseInitializer=Nw(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Xx(t.depthwiseRegularizer),this.depthwiseConstraint=cv(t.depthwiseConstraint),this.pointwiseInitializer=Nw(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Xx(t.pointwiseRegularizer),this.pointwiseConstraint=cv(t.pointwiseConstraint)}build(e){if((e=Mw(e)).length{let t;if(e=Dw(e),1===this.rank)throw new Jy("1D separable convolution is not implemented yet.");return 2===this.rank&&("channelsFirst"===this.dataFormat&&(e=Jp(e,[0,2,3,1])),t=pp(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(t=aw(t,this.bias.read(),this.dataFormat)),null!=this.activation&&(t=this.activation.apply(t)),"channelsFirst"===this.dataFormat&&(t=Jp(t,[0,3,1,2])),t}))}getConfig(){const e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Tw(this.depthwiseInitializer),e.pointwiseInitializer=Tw(this.pointwiseInitializer),e.depthwiseRegularizer=Kx(this.depthwiseRegularizer),e.pointwiseRegularizer=Kx(this.pointwiseRegularizer),e.depthwiseConstraint=lv(this.depthwiseConstraint),e.pointwiseConstraint=lv(this.pointwiseConstraint),e}}gA.className="SeparableConv";class yA extends gA{constructor(e){super(2,e)}}yA.className="SeparableConv2D",Hl(yA);class bA extends hA{constructor(e){super(1,e),bA.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){const e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if("number"!=typeof e.kernelSize&&!yb(e.kernelSize,"number",1,1))throw new Qy(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}}bA.className="Conv1D",Hl(bA);class wA extends qw{constructor(e){super(e),"number"==typeof e.cropping?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:"number"==typeof e.cropping[0]?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=void 0===e.dataFormat?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return"channelsFirst"===this.dataFormat?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return Ao((()=>{if(e=Dw(e),"channelsLast"===this.dataFormat){const t=Yb(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Yb(t,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}{const t=Yb(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Yb(t,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}}))}getConfig(){const e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}wA.className="Cropping2D",Hl(wA);class vA extends qw{constructor(e){var t;super(e),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=null==e.size?this.DEFAULT_SIZE:e.size,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Rb(this.dataFormat),this.interpolation=null==e.interpolation?"nearest":e.interpolation,t=this.interpolation,gb(_b,"InterpolationFormat",t)}computeOutputShape(e){if("channelsFirst"===this.dataFormat){const t=null==e[2]?null:this.size[0]*e[2],n=null==e[3]?null:this.size[1]*e[3];return[e[0],e[1],t,n]}{const t=null==e[1]?null:this.size[0]*e[1],n=null==e[2]?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return Ao((()=>{let t=Dw(e);const n=t.shape;if("channelsFirst"===this.dataFormat){t=Jp(t,[0,2,3,1]);const e=this.size[0]*n[2],s=this.size[1]*n[3],r="nearest"===this.interpolation?bm.resizeNearestNeighbor(t,[e,s]):bm.resizeBilinear(t,[e,s]);return Jp(r,[0,3,1,2])}{const e=this.size[0]*n[1],s=this.size[1]*n[2];return"nearest"===this.interpolation?bm.resizeNearestNeighbor(t,[e,s]):bm.resizeBilinear(t,[e,s])}}))}getConfig(){const e={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},t=super.getConfig();return Object.assign(e,t),e}}vA.className="UpSampling2D",Hl(vA);class xA extends cA{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=null==e.depthMultiplier?1:e.depthMultiplier,this.depthwiseInitializer=Nw(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=cv(e.depthwiseConstraint),this.depthwiseRegularizer=Xx(e.depthwiseRegularizer)}build(e){if((e=Mw(e)).length<4)throw new Qy(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);const t="channelsFirst"===this.dataFormat?1:3;if(null==e[t]||e[t]<0)throw new Qy(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);const n=e[t],s=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",s,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return Ao((()=>{let t=function(e,t,n=[1,1],s="valid",r,i){return Ao((()=>{null==r&&(r="channelsLast"),Rb(r);let a=iA(e,r);if(4!==e.rank)throw new Qy(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(4!==t.rank)throw new Qy(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return a=dh(a,t,n,"same"===s?"same":"valid","NHWC",i),"channelsFirst"===r&&(a=Jp(a,[0,3,1,2])),a}))}(e=Dw(e),this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(t=aw(t,this.bias.read(),this.dataFormat)),null!=this.activation&&(t=this.activation.apply(t)),t}))}computeOutputShape(e){e=Mw(e);const t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2],s="channelsFirst"===this.dataFormat?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,r=sA(t,this.kernelSize[0],this.padding,this.strides[0]),i=sA(n,this.kernelSize[1],this.padding,this.strides[1]);return"channelsFirst"===this.dataFormat?[e[0],s,r,i]:[e[0],r,i,s]}getConfig(){const e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Tw(this.depthwiseInitializer),e.depthwiseRegularizer=Kx(this.depthwiseRegularizer),e.depthwiseConstraint=lv(this.depthwiseRegularizer),e}}function AA(e,t,n,s){if(Array.isArray(e)){if(null!=t||null!=n)throw new Qy("When inputs is an array, neither initialState or constants should be provided");null!=s&&(n=e.slice(e.length-s,e.length),e=e.slice(0,e.length-s)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function r(e){return null==e||Array.isArray(e)?e:[e]}return{inputs:e,initialState:t=r(t),constants:n=r(n)}}function CA(e,t,n,s=!1,r,i,a=!1,o=!1){return Ao((()=>{const a=t.shape.length;if(a<3)throw new Qy(`Input should be at least 3D, but is ${a}D.`);const l=[1,0].concat(Gb(2,a));if(t=Jp(t,l),null!=i)throw new Jy("The rnn() functoin of the deeplearn.js backend does not support constants yet.");null!=r&&((r=Nl(Nl(r,"bool"),"float32")).rank===a-1&&(r=Lh(r,-1)),r=Jp(r,l)),s&&(t=ip(t,0),null!=r&&(r=ip(r,0)));const u=[];let c,h=n;const d=t.shape[0],p=Kp(t);let f,m;null!=r&&(f=Kp(r));for(let t=0;te(n,h)));if(null==r)c=s[0],h=s[1];else{const e=Ao((()=>{const e=f[t],n=Ql(Nd(e),e);return{output:Dl(Fl(s[0],e),Fl(h[0],n)),newStates:h.map(((t,r)=>Dl(Fl(s[1][r],e),Fl(t,n))))}}));c=e.output,h=e.newStates}o&&u.push(c)}if(o){m=Np(u,1)}return[c,m,h]}))}xA.className="DepthwiseConv2D",Hl(xA);class kA extends qw{constructor(e){let t;if(super(e),null==e.cell)throw new Qy("cell property is missing for the constructor of RNN.");if(t=Array.isArray(e.cell)?new OA({cells:e.cell}):e.cell,null==t.stateSize)throw new Qy("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=null!=e.returnSequences&&e.returnSequences,this.returnState=null!=e.returnState&&e.returnState,this.goBackwards=null!=e.goBackwards&&e.goBackwards,this._stateful=null!=e.stateful&&e.stateful,this.unroll=null!=e.unroll&&e.unroll,this.supportsMasking=!0,this.inputSpec=[new Uw({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(null==this.states_){return Gb(0,Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1).map((e=>null))}return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Rw(e)&&(e=e[0]);let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);const n=t[0];let s;if(s=this.returnSequences?[e[0],e[1],n]:[e[0],n],this.returnState){const n=[];for(const s of t)n.push([e[0],s]);return[s].concat(n)}return s}computeMask(e,t){return Ao((()=>{Array.isArray(t)&&(t=t[0]);const e=this.returnSequences?t:null;if(this.returnState){const t=this.states.map((e=>null));return[e].concat(t)}return e}))}get states(){if(null==this.states_){const e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ne.shape[e.shape.length-1])),r))throw new Qy(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=r.map((e=>new Uw({shape:[null,e]})));this.stateful&&this.resetStates()}resetStates(e,t=!1){Ao((()=>{if(!this.stateful)throw new Zy("Cannot call resetStates() on an RNN Layer that is not stateful.");const n=this.inputSpec[0].shape[0];if(null==n)throw new Qy("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(null==this.states_)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((e=>wd([n,e]))):this.states_=[wd([n,this.cell.stateSize])];else if(null==e)Co(this.states_),null!=this.keptStates&&(Co(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((e=>wd([n,e]))):this.states_[0]=wd([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new Qy(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);!0===t?this.keptStates.push(this.states_.slice()):Co(this.states_);for(let t=0;tko(e.clone())))}))}apply(e,t){let n=null==t?null:t.initialState,s=null==t?null:t.constants;null==t&&(t={});const r=AA(e,n,s,this.numConstants);e=r.inputs,n=r.initialState,s=r.constants;let i=[],a=[];if(null!=n){t.initialState=n,i=i.concat(n),this.stateSpec=[];for(const e of n)this.stateSpec.push(new Uw({shape:e.shape}));a=a.concat(this.stateSpec)}null!=s&&(t.constants=s,i=i.concat(s),this.numConstants=s.length);if(i[0]instanceof Vw){const n=[e].concat(i),s=this.inputSpec.concat(a),r=this.inputSpec;this.inputSpec=s;const o=super.apply(n,t);return this.inputSpec=r,o}return super.apply(e,t)}call(e,t){return Ao((()=>{const n=null==t?null:t.mask,s=null==t?null:t.training;let r=null==t?null:t.initialState;e=Dw(e),null==r&&(r=this.stateful?this.states_:this.getInitialState(e));const i=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(r.length!==i)throw new Qy(`RNN Layer has ${i} state(s) but was passed ${r.length} initial state(s).`);this.unroll;const a={training:s},o=CA(((e,t)=>{const n=this.cell.call([e].concat(t),a);return[n[0],n.slice(1)]}),e,r,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],u=o[1],c=o[2];this.stateful&&this.resetStates(c,s);const h=this.returnSequences?u:l;return this.returnState?[h].concat(c):h}))}getInitialState(e){return Ao((()=>{let t=wd(e.shape);return t=Dh(t,[1,2]),t=$b(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map((e=>e>1?ew(t,[1,e]):t)):this.cell.stateSize>1?[ew(t,[1,this.cell.stateSize])]:[t]}))}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),null!=this.cell&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){const e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};null!=this.numConstants&&(t.numConstants=this.numConstants);const n=this.cell.getConfig();return this.getClassName()===kA.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),e),t)}static fromConfig(e,t,n={}){const s=Av(t.cell,n);return new e(Object.assign(t,{cell:s}))}}kA.className="RNN",Hl(kA);class SA extends qw{}class _A extends SA{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,bb(this.units,"units"),this.activation=Wx(null==e.activation?this.DEFAULT_ACTIVATION:e.activation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=Nw(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Nw(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Nw(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Xx(e.kernelRegularizer),this.recurrentRegularizer=Xx(e.recurrentRegularizer),this.biasRegularizer=Xx(e.biasRegularizer),this.kernelConstraint=cv(e.kernelConstraint),this.recurrentConstraint=cv(e.recurrentConstraint),this.biasConstraint=cv(e.biasConstraint),this.dropout=Wb([1,jb([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=Wb([1,jb([0,null==e.recurrentDropout?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Mw(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return Ao((()=>{if(2!==e.length)throw new Qy(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];const s=null!=t.training&&t.training;let r;0Nd(e),rate:this.dropout,training:s,dropoutFunc:this.dropoutFunc})),0Nd(n),rate:this.recurrentDropout,training:s,dropoutFunc:this.dropoutFunc}));const i=this.dropoutMask,a=this.recurrentDropoutMask;r=nw(null!=i?Fl(e,i):e,this.kernel.read()),null!=this.bias&&(r=aw(r,this.bias.read())),null!=a&&(n=Fl(n,a));let o=Dl(r,nw(n,this.recurrentKernel.read()));return null!=this.activation&&(o=this.activation.apply(o)),[o,o]}))}getConfig(){const e=super.getConfig(),t={units:this.units,activation:Ux(this.activation),useBias:this.useBias,kernelInitializer:Tw(this.kernelInitializer),recurrentInitializer:Tw(this.recurrentInitializer),biasInitializer:Tw(this.biasInitializer),kernelRegularizer:Kx(this.kernelRegularizer),recurrentRegularizer:Kx(this.recurrentRegularizer),biasRegularizer:Kx(this.biasRegularizer),activityRegularizer:Kx(this.activityRegularizer),kernelConstraint:lv(this.kernelConstraint),recurrentConstraint:lv(this.recurrentConstraint),biasConstraint:lv(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},e),t)}}_A.className="SimpleRNNCell",Hl(_A);class EA extends kA{constructor(e){e.cell=new _A(e),super(e)}call(e,t){return Ao((()=>{null!=this.cell.dropoutMask&&(Co(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(Co(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const n=null==t?null:t.mask,s=null==t?null:t.training,r=null==t?null:t.initialState;return super.call(e,{mask:n,training:s,initialState:r})}))}static fromConfig(e,t){return new e(t)}}EA.className="SimpleRNN",Hl(EA);class IA extends SA{constructor(e){if(super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new Qy("GRUCell does not support reset_after parameter set to true.");this.units=e.units,bb(this.units,"units"),this.activation=Wx(void 0===e.activation?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Wx(void 0===e.recurrentActivation?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=Nw(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Nw(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Nw(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Xx(e.kernelRegularizer),this.recurrentRegularizer=Xx(e.recurrentRegularizer),this.biasRegularizer=Xx(e.biasRegularizer),this.kernelConstraint=cv(e.kernelConstraint),this.recurrentConstraint=cv(e.recurrentConstraint),this.biasConstraint=cv(e.biasConstraint),this.dropout=Wb([1,jb([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=Wb([1,jb([0,null==e.recurrentDropout?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){const t=(e=Mw(e))[e.length-1];this.kernel=this.addWeight("kernel",[t,3*this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,3*this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[3*this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return Ao((()=>{if(2!==e.length)throw new Qy(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);const n=null!=t.training&&t.training;let s=e[1];e=e[0],0Nd(e),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0Nd(s),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));const r=this.dropoutMask,i=this.recurrentDropoutMask;let a,o,l;0{null!=this.cell.dropoutMask&&(Co(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(Co(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const n=null==t?null:t.mask,s=null==t?null:t.training,r=null==t?null:t.initialState;return super.call(e,{mask:n,training:s,initialState:r})}))}static fromConfig(e,t){return 0===t.implmentation&&(t.implementation=1),new e(t)}}TA.className="GRU",Hl(TA);class NA extends SA{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,bb(this.units,"units"),this.activation=Wx(void 0===e.activation?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Wx(void 0===e.recurrentActivation?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=Nw(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Nw(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Nw(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Xx(e.kernelRegularizer),this.recurrentRegularizer=Xx(e.recurrentRegularizer),this.biasRegularizer=Xx(e.biasRegularizer),this.kernelConstraint=cv(e.kernelConstraint),this.recurrentConstraint=cv(e.recurrentConstraint),this.biasConstraint=cv(e.biasConstraint),this.dropout=Wb([1,jb([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=Wb([1,jb([0,null==e.recurrentDropout?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;const n=(e=Mw(e))[e.length-1];let s;if(this.kernel=this.addWeight("kernel",[n,4*this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,4*this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){if(this.unitForgetBias){const e=this.biasInitializer,n=this.units;s=new((t=class extends hw{apply(t,s){const r=e.apply([n]),i=(new pw).apply([n]),a=e.apply([2*n]);return Jb(Jb(r,i),a)}}).className="CustomInit",t)}else s=this.biasInitializer;this.bias=this.addWeight("bias",[4*this.units],null,s,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return Ao((()=>{const n=null!=t.training&&t.training;if(3!==e.length)throw new Qy(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let s=e[1];const r=e[2];e=e[0],0Nd(e),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0Nd(s),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));const i=this.dropoutMask,a=this.recurrentDropoutMask;let o,l,u,c;0{null!=this.cell.dropoutMask&&(Co(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(Co(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const n=null==t?null:t.mask,s=null==t?null:t.training,r=null==t?null:t.initialState;return super.call(e,{mask:n,training:s,initialState:r})}))}static fromConfig(e,t){return 0===t.implmentation&&(t.implementation=1),new e(t)}}RA.className="LSTM",Hl(RA);class OA extends SA{constructor(e){super(e),this.cells=e.cells}get stateSize(){const e=[];for(const t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return Ao((()=>{let n=e.slice(1);const s=[];for(const e of this.cells.slice().reverse())Array.isArray(e.stateSize)?s.push(n.splice(0,e.stateSize.length)):s.push(n.splice(0,1));s.reverse();const r=[];let i;for(let a=0;a{Fb(`RNNCell_${s}`,(()=>{n.build(e),t=Array.isArray(n.stateSize)?n.stateSize[0]:n.stateSize,e=[e[0],t]}))})),this.built=!0}getConfig(){const e=super.getConfig(),t={cells:this.cells.map((e=>({className:e.getClassName(),config:e.getConfig()})))};return Object.assign(Object.assign({},e),t)}static fromConfig(e,t,n={}){const s=[];for(const e of t.cells)s.push(Av(e,n));return new e({cells:s})}get trainableWeights(){if(!this.trainable)return[];const e=[];for(const t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const e of this.cells)t.push(...e.trainableWeights);return t.concat(e)}return e}getWeights(){const e=[];for(const t of this.cells)e.push(...t.weights);return Lw(e)}setWeights(e){const t=[];for(const n of this.cells){const s=n.weights.length,r=e.splice(s);for(let e=0;enull!=i?i(t(),n):ow(t(),n),o=()=>lw(a,t,s);if(!r||r<=1)return ko(o().clone());return Array(r).fill(void 0).map(o).map((e=>ko(e.clone())))}OA.className="StackedRNNCells",Hl(OA);var MA=function(e,t){var n={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(n[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(s=Object.getOwnPropertySymbols(e);r{if(null!=this.cell.dropoutMask&&(Co(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(Co(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new Qy("ConvRNN2D cell does not support constants");const n=null==t?null:t.mask,s=null==t?null:t.training,r=null==t?null:t.initialState;return super.call(e,{mask:n,training:s,initialState:r})}))}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return Ao((()=>{const{stateSize:t}=this.cell,n=e.shape,s=this.computeSingleOutputShape(n),r=wd([s[0],...s.slice(2)]);return Array.isArray(t)?Array(t.length).fill(r):[r]}))}resetStates(e,t=!1){Ao((()=>{if(!this.stateful)throw new Zy("Cannot call resetStates() on an RNN Layer that is not stateful.");const n=this.inputSpec[0].shape,s=this.computeSingleOutputShape(n),r=[s[0],...s.slice(2)];if(null==n[0])throw new Qy("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(null==this.getStates())Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((()=>wd(r))):this.states_=[wd(r)];else if(null==e)Co(this.states_),null!=this.keptStates&&(Co(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((()=>wd(r))):this.states_[0]=wd(r);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new Qy(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):Co(this.states_);for(let t=0;tko(e.clone())))}))}computeSingleOutputShape(e){const{dataFormat:t,filters:n,kernelSize:s,padding:r,strides:i,dilationRate:a}=this.cell,o="channelsFirst"===t,l=e[o?3:2],u=e[o?4:3],c=sA(l,s[0],r,i[0],a[0]),h=sA(u,s[1],r,i[1],a[1]);return[...e.slice(0,2),...o?[n,c,h]:[c,h,n]]}}zA.className="ConvRNN2D";class FA extends NA{constructor(e){const{filters:t,kernelSize:n,strides:s,padding:r,dataFormat:i,dilationRate:a}=e;super(Object.assign(Object.assign({},e),{units:t})),this.filters=t,bb(this.filters,"filters"),this.kernelSize=nA(n,2,"kernelSize"),this.kernelSize.forEach((e=>bb(e,"kernelSize"))),this.strides=nA(s||1,2,"strides"),this.strides.forEach((e=>bb(e,"strides"))),this.padding=r||"valid",Ob(this.padding),this.dataFormat=i||"channelsLast",Rb(this.dataFormat),this.dilationRate=nA(a||1,2,"dilationRate"),this.dilationRate.forEach((e=>bb(e,"dilationRate")))}build(e){var t;e=Mw(e);const n="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[n])throw new Qy(`The channel dimension of the input should be defined. Found ${e[n]}`);const s=e[n],r=this.kernelSize.concat([s,4*this.filters]);this.kernel=this.addWeight("kernel",r,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);const i=this.kernelSize.concat([this.filters,4*this.filters]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let e;if(this.unitForgetBias){const n=this.biasInitializer,s=this.filters;e=new((t=class extends hw{apply(e,t){return Qb([n.apply([s]),vd([s]),n.apply([2*s])])}}).className="CustomInit",t)}else e=this.biasInitializer;this.bias=this.addWeight("bias",[4*this.filters],null,e,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return Ao((()=>{if(3!==e.length)throw new Qy(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);const n=t.training||!1,s=e[0],r=e[1],i=e[2];0Nd(s),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));const a=this.dropoutMask,o=(e,t,n)=>t&&t[n]?Fl(t[n],e):e;let l=o(s,a,0),u=o(s,a,1),c=o(s,a,2),h=o(s,a,3);0Nd(r),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));const d=this.recurrentDropoutMask;let p=o(r,d,0),f=o(r,d,1),m=o(r,d,2),g=o(r,d,3);const[y,b,w,v]=_p(this.kernel.read(),4,3),[x,A,C,k]=this.useBias?_p(this.bias.read(),4):[null,null,null,null];l=this.inputConv(l,y,x,this.padding),u=this.inputConv(u,b,A,this.padding),c=this.inputConv(c,w,C,this.padding),h=this.inputConv(h,v,k,this.padding);const[S,_,E,I]=_p(this.recurrentKernel.read(),4,3);p=this.recurrentConv(p,S),f=this.recurrentConv(f,_),m=this.recurrentConv(m,E),g=this.recurrentConv(g,I);const T=this.recurrentActivation.apply(Dl(l,p)),N=this.recurrentActivation.apply(Dl(u,f)),R=Dl(Fl(N,i),Fl(T,this.activation.apply(Dl(c,m)))),O=Fl(this.recurrentActivation.apply(Dl(h,g)),this.activation.apply(R));return[O,O,R]}))}getConfig(){const e=super.getConfig(),{units:t}=e,n=MA(e,["units"]),s={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),s)}inputConv(e,t,n,s){const r=Jc(e,t,this.strides,s||"valid","channelsFirst"===this.dataFormat?"NCHW":"NHWC",this.dilationRate);return n?aw(r,n,this.dataFormat):r}recurrentConv(e,t){return Jc(e,t,1,"same","channelsFirst"===this.dataFormat?"NCHW":"NHWC")}}FA.className="ConvLSTM2DCell",Hl(FA);class BA extends zA{constructor(e){const t=new FA(e);super(Object.assign(Object.assign({},e),{cell:t}))}static fromConfig(e,t){return new e(t)}}BA.className="ConvLSTM2D",Hl(BA);class LA extends qw{constructor(e){super(e),this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(null==this.noiseShape)return this.noiseShape;const t=e.shape,n=[];for(let e=0;e{this.invokeCallHook(e,t);const n=Dw(e);if(0ow(n,this.rate,s,this.seed)),(()=>n),e)}return e}))}getConfig(){const e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}}LA.className="Dropout",Hl(LA);class PA extends LA{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){const t=e.shape;return[t[0],1,t[2]]}}PA.className="SpatialDropout1D",Hl(PA);class UA extends qw{constructor(e){if(super(e),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",null==e.batchInputShape&&null==e.inputShape&&null!=e.inputDim){let t=null;null!=e.batchSize&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,bb(this.units,"units"),this.activation=Wx(e.activation),null!=e.useBias&&(this.useBias=e.useBias),this.kernelInitializer=Nw(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=Nw(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=cv(e.kernelConstraint),this.biasConstraint=cv(e.biasConstraint),this.kernelRegularizer=Xx(e.kernelRegularizer),this.biasRegularizer=Xx(e.biasRegularizer),this.activityRegularizer=Xx(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){const t=(e=Mw(e))[e.length-1];null==this.kernel&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){const t=(e=Mw(e)).slice();return t[t.length-1]=this.units,t}call(e,t){return Ao((()=>{this.invokeCallHook(e,t);const n=Dw(e),s=vb(this.activation.getClassName());let r;return null!=s?r=nw(n,this.kernel.read(),s,this.bias?this.bias.read():null):(r=nw(n,this.kernel.read()),null!=this.bias&&(r=aw(r,this.bias.read())),null!=this.activation&&(r=this.activation.apply(r))),r}))}getConfig(){const e={units:this.units,activation:Ux(this.activation),useBias:this.useBias,kernelInitializer:Tw(this.kernelInitializer),biasInitializer:Tw(this.biasInitializer),kernelRegularizer:Kx(this.kernelRegularizer),biasRegularizer:Kx(this.biasRegularizer),activityRegularizer:Kx(this.activityRegularizer),kernelConstraint:lv(this.kernelConstraint),biasConstraint:lv(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}UA.className="Dense",Hl(UA);class VA extends qw{constructor(e){super(e=e||{}),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Mw(e);for(const t of e.slice(1))if(null==t)throw new Qy(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],Vb(e,1)]}call(e,t){return Ao((()=>{this.invokeCallHook(e,t);let n=Dw(e);if("channelsFirst"===this.dataFormat&&n.rank>1){const e=[0];for(let t=2;t{this.invokeCallHook(e,t);const n=Dw(e);return this.activation.apply(n)}))}getConfig(){const e={activation:Ux(this.activation)},t=super.getConfig();return Object.assign(e,t),e}}WA.className="Activation",Hl(WA);class jA extends qw{constructor(e){super(e),this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return Ao((()=>{return e=Dw(e),t=e,n=this.n,Ao((()=>{if(2!==t.shape.length)throw new Qy(`repeat() expects a rank-2 tensor, but received a rank-${t.shape.length} tensor.`);return ew($b(t,1),[1,n,1])}));var t,n}))}getConfig(){const e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}}jA.className="RepeatVector",Hl(jA);class GA extends qw{constructor(e){super(e),this.targetShape=e.targetShape;for(let e=0;e{this.invokeCallHook(e,t);const n=Dw(e),s=n.shape,r=s.slice(0,1).concat(this.fixUnknownDimension(s.slice(1),this.targetShape));return Tc(n,r)}))}getConfig(){const e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}}GA.className="Reshape",Hl(GA);class qA extends qw{constructor(e){if(super(e),null==e.dims)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);const t=Gb(1,e.dims.length+1);if(!$t(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new Uw({ndim:this.dims.length+1})]}computeOutputShape(e){const t=(e=Mw(e)).slice();return this.dims.forEach(((n,s)=>{t[s+1]=e[n]})),t}call(e,t){return Jp(Dw(e),this.dimsIncludingBatch)}getConfig(){const e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}}qA.className="Permute",Hl(qA);class HA extends qw{constructor(e){super(null==e?{}:e),this.supportsMasking=!0,this.maskValue=null!=e?null==e.maskValue?0:e.maskValue:0}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){const n=Dw(e);return ac(Id(n,this.maskValue),-1)}call(e,t){return Ao((()=>{this.invokeCallHook(e,t);const n=Dw(e),s=ac(Id(n,this.maskValue),-1,!0);return Fl(n,Nl(s,n.dtype))}))}}HA.className="Masking",Hl(HA);class KA extends qw{constructor(e){if(super(e),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",null==e.batchInputShape&&null==e.inputShape){let t=null;null!=e.batchSize&&(t=e.batchSize),null==e.inputLength?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(ab(e.inputLength))}this.inputDim=e.inputDim,bb(this.inputDim,"inputDim"),this.outputDim=e.outputDim,bb(this.outputDim,"outputDim"),this.embeddingsInitializer=Nw(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Xx(e.embeddingsRegularizer),this.activityRegularizer=Xx(e.activityRegularizer),this.embeddingsConstraint=cv(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return Ao((()=>this.maskZero?(e=Dw(e),Id(e,Pl(e))):null))}computeOutputShape(e){if(e=Mw(e),null==this.inputLength)return[...e,this.outputDim];const t=ab(this.inputLength);if(t.length!==e.length-1)throw new Qy(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let s=0;s{this.invokeCallHook(e,t);let n=Dw(e);"int32"!==n.dtype&&(n=Kb(n,"int32"));const s=sw(this.embeddings.read(),Tc(n,[n.size]));return Tc(s,Mw(this.computeOutputShape(n.shape)))}))}getConfig(){const e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Tw(this.embeddingsInitializer),embeddingsRegularizer:Kx(this.embeddingsRegularizer),activityRegularizer:Kx(this.activityRegularizer),embeddingsConstraint:lv(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}}KA.className="Embedding",Hl(KA);class $A extends qw{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new Jy}computeElementwiseOpOutputShape(e,t){if(null==e||null==t)return null;if(e.length1)throw new Qy(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=null==e[0]?null:e[0].slice(1);for(let t=1;te.length));-1===e.indexOf(null)&&1===fb(s).length?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return Ao((()=>{if(this.reshapeRequired){const t=[],n=e.map((e=>e.rank));if(-1===n.indexOf(null)){const s=jb(n);for(let n of e){const e=n.rank;for(let t=0;t1){const r=Gb(1,e).concat([0]);t.push(Jp(s,r)),n=!0}else t.push(s)}let s=this.mergeFunction(t);const r=s.rank;if(n)if(null==r){const e=s.shape,t=e[e.length-1],n=[t].concat(e.slice(0,e.length-1));s=Tc(Jp(Tc(s,[-1,t]),[1,0]),n)}else if(r>1){const e=[r-1].concat(Gb(0,r-1));s=Jp(s,e)}return s}}return this.mergeFunction(e)}))}computeOutputShape(e){let t;t=null==e[0]?null:e[0].slice(1);for(let n=1;n{if(null==t)return null;if(!Array.isArray(t))throw new Qy("`mask` should be an Array");if(!Array.isArray(e))throw new Qy("`inputs` should be an Array");if(t.length!==e.length)throw new Qy(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every((e=>null==e)))return null;let n=(t=t.map((e=>null==e?e:Lh(e,0))))[0];for(let e=1;e{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0];for(let n=1;n{let t=e[0];for(let n=1;n1)throw new Qy("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return Ao((()=>Qb(e,this.axis)))}computeOutputShape(e){if(!Array.isArray(e)||!Array.isArray(e[0]))throw new Qy("A `Concatenate` layer should be called on a list of inputs.");const t=e,n=t[0].slice(),s=this.axis<0?n.length+this.axis:this.axis;for(const e of t.slice(1)){if(null==n[s]||null==e[s]){n[s]=null;break}n[s]+=e[s]}return n}computeMask(e,t){if(null==t)return null;if(!Array.isArray(t))throw new Qy("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new Qy("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new Qy(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return Ao((()=>{let n=!0;if(t.forEach((e=>{null==e||(n=!1)})),n)return null;const s=[];for(let n=0;n"A `Dot` layer should be called on a list of exactly 2 inputs."));const t=e[0],n=e[1];if(t.length>3||n.length>3)throw new Jy("Dot layer does not support tensors of 4D or higher rank yet.");const s=this.interpretAxes(t,n);if(t[s[0]]!==n[s[1]])throw new Qy(`Dimension incompatibility: ${t[s[0]]} !== ${n[s[1]]}`)}mergeFunction(e){if(2!==e.length)throw new Qy(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t,n=e[0],s=e[1];return t=Array.isArray(this.axes)?this.axes.map(((t,n)=>tC(t,e[n].shape.length))):[tC(this.axes,n.shape.length),tC(this.axes,s.shape.length)],this.normalize&&(n=Cv(n,t[0]),s=Cv(s,t[1])),function(e,t,n){if(e.shape.length>3||t.shape.length>3)throw new Jy("batchDot is not implemented for tensors of 4D or higher rank yet");if(Gt(e.shape.length>=2,(()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`)),Gt(e.shape.length>=2,(()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`)),"number"==typeof n&&(n=[n,n]),"complex64"===e.dtype||"complex64"===t.dtype)throw new Jy("batchDot is not implemented for complex64-type Tensors yet.");const s=e.shape.length,r=t.shape.length;null==n&&(n=[s-1,r-2]);const i=n;return Ao((()=>{let n,a;if(s>r){n=s-r;const e=[];for(let t=0;ts){n=r-s;const t=[];for(let e=0;e0){let e;e=s>r?s+r-3:s-1;const t=[];for(let s=e;s"A `Dot` layer should be called on a list of exactly 2 inputs."));const t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new Jy("Dot layer does not support tensors of 4D or higher rank yet.");const s=this.interpretAxes(t,n);t.splice(s[0],1),n.splice(s[1],1),n.splice(0,1);const r=t.concat(n);return 1===r.length&&r.push(1),r}computeMask(e,t){return null}getConfig(){const e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}}nC.className="Dot",Hl(nC);class sC extends qw{constructor(e){super(e),this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return Ao((()=>{this.invokeCallHook(e,t);const n=Dw(e);return lw((()=>Dl(tw(n.shape,0,this.stddev),n)),(()=>n),t.training||!1)}))}}sC.className="GaussianNoise",Hl(sC);class rC extends qw{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return Ao((()=>{this.invokeCallHook(e,t);const n=Dw(e);if(this.rate>0&&this.rate<1){return lw((()=>{const e=Math.sqrt(this.rate/(1-this.rate));return Fl(n,tw(n.shape,1,e))}),(()=>n),t.training||!1)}return n}))}}rC.className="GaussianDropout",Hl(rC);class iC extends qw{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Dw(e).shape}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return Ao((()=>{if(this.rate<1&&this.rate>0){const n=this._getNoiseShape(e),s=()=>{const t=Dw(e),s=-1.7580993408473766;let r=qh(Qd(n),this.rate);r=Kb(r,"float32");const i=((1-this.rate)*(1+this.rate*s**2))**-.5,a=-i*s*this.rate,o=Dl(Fl(t,r),Fl(Dl(r,-1),s));return Dl(Fl(o,i),a)};return lw(s,(()=>Dw(e)),t.training||!1)}return e}))}}function aC(e,t,n,s,r,i=.001){let a;if(2===e.rank)a=Uc(e,t,n,s,r,i);else if(3===e.rank)a=Vc(e,t,n,s,r,i);else{if(4!==e.rank)throw new Jy(`batchNormalization is not implemented for array of rank ${e.rank} yet`);a=Wc(e,t,n,s,r,i)}return a}function oC(e,t,n,s,r=.001){return $t(s.slice().sort(),Gb(0,e.rank-1))?function(e,t,n,s,r=.001){return Ao((()=>{const i=Sd(e,s),a=i.mean,o=i.variance;return[aC(e,a,o,n,t,r),a,o]}))}(e,t,n,s,r):function(e,t,n,s,r=.001){return Ao((()=>{const i=Sd(e,s),a=i.mean,o=i.variance,l=[];for(const t of Gb(0,e.rank))-1!==s.indexOf(t)?l.push(1):l.push(e.shape[t]);const u=Tc(a,l),c=Tc(o,l),h=null==t?null:Tc(t,l),d=null==n?null:Tc(n,l);return[aC(e,u,c,d,h,r),a,o]}))}(e,t,n,s,r)}iC.className="AlphaDropout",Hl(iC);class lC extends qw{constructor(e){null==e&&(e={}),super(e),this.supportsMasking=!0,this.axis=null==e.axis?-1:e.axis,this.momentum=null==e.momentum?.99:e.momentum,this.epsilon=null==e.epsilon?.001:e.epsilon,this.center=null==e.center||e.center,this.scale=null==e.scale||e.scale,this.betaInitializer=Nw(e.betaInitializer||"zeros"),this.gammaInitializer=Nw(e.gammaInitializer||"ones"),this.movingMeanInitializer=Nw(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=Nw(e.movingVarianceInitializer||"ones"),this.betaConstraint=cv(e.betaConstraint),this.gammaConstraint=cv(e.gammaConstraint),this.betaRegularizer=Xx(e.betaRegularizer),this.gammaRegularizer=Xx(e.gammaRegularizer)}build(e){e=Mw(e);const t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(null==n)throw new Qy(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new Uw({ndim:e.length,axes:{[t]:n}})];const s=[n];this.scale&&(this.gamma=this.addWeight("gamma",s,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",s,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",s,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",s,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return Ao((()=>{const n=null!=t.training&&t.training,s=Dw(e),r=s.shape,i=r.length,a=Gb(0,i),o=this.axis>=0?this.axis:this.axis+i;a.splice(o,1);const l=nb(1,i);l[o]=r[o];const u=a.slice();u.sort();const c=!$t(u,Gb(0,i).slice(0,i-1));if(!n)return(()=>{if(c){const e=Tc(this.movingMean.read(),l),t=Tc(this.movingVariance.read(),l),n=this.center?Tc(this.beta.read(),l):null,r=this.scale?Tc(this.gamma.read(),l):null;return aC(s,e,t,n,r,this.epsilon)}return aC(s,this.movingMean.read(),this.movingVariance.read(),null==this.beta?null:this.beta.read(),null==this.gamma?null:this.gamma.read(),this.epsilon)})();const[h,d,p]=oC(s,this.gamma.read(),this.beta.read(),a,this.epsilon),f=(e,t,n)=>{Ao((()=>{const s=1-n,r=e.read(),i=Fl(Ql(r,t),s);e.write(Ql(r,i))}))};return(()=>{f(this.movingMean,d,this.momentum),f(this.movingVariance,p,this.momentum)})(),h}))}getConfig(){const e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Tw(this.betaInitializer),gammaInitializer:Tw(this.gammaInitializer),movingMeanInitializer:Tw(this.movingMeanInitializer),movingVarianceInitializer:Tw(this.movingVarianceInitializer),betaRegularizer:Kx(this.betaRegularizer),gammaRegularizer:Kx(this.gammaRegularizer),betaConstraint:lv(this.betaConstraint),gammaConstraint:lv(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}}lC.className="BatchNormalization",Hl(lC);class uC extends qw{constructor(e){if(null==e&&(e={}),super(e),this.axis=null==e.axis?-1:e.axis,"number"==typeof this.axis){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else{if(!Array.isArray(this.axis))throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);for(const e of this.axis)if(!Number.isInteger(e))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}this.epsilon=null==e.epsilon?.001:e.epsilon,this.center=null==e.center||e.center,this.scale=null==e.scale||e.scale,this.betaInitializer=Nw(e.betaInitializer||"zeros"),this.gammaInitializer=Nw(e.gammaInitializer||"ones"),this.betaRegularizer=Xx(e.betaRegularizer),this.gammaRegularizer=Xx(e.gammaRegularizer),this.supportsMasking=!0}build(e){const t=(e=Mw(e)).length;"number"==typeof this.axis&&(this.axis=[this.axis]);for(let e=0;e=t)throw new Error(`Invalid axis: ${e}`);if(this.axis.length!==fb(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);const n=this.axis.map((t=>e[t])),s=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,s):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,s):this.beta=null,this.built=!0}call(e,t){const n=Dw(e),s=n.shape,r=s.length;return Ao((()=>{let{mean:e,variance:t}=Sd(n,this.axis,!0);const i=nb(1,r);for(const e of this.axis)i[e]=s[e];const a=e=>null!=e&&e.shape.length!==r?Tc(e,i):e;let o=this.scale?a(this.gamma.read()):null,l=this.center?a(this.beta.read()):null;const u=[],c=[];for(let e=0;e=0?e[2]+this.padding[0][0]+this.padding[0][1]:null,n=null!=e[3]&&e[3]>=0?e[3]+this.padding[1][0]+this.padding[1][1]:null,[e[0],e[1],t,n]):(t=null!=e[1]&&e[1]>=0?e[1]+this.padding[0][0]+this.padding[0][1]:null,n=null!=e[2]&&e[2]>=0?e[2]+this.padding[1][0]+this.padding[1][1]:null,[e[0],t,n,e[3]])}call(e,t){return Ao((()=>{return t=Dw(e),n=this.padding,s=this.dataFormat,Ao((()=>{if(4!==t.rank)throw new Qy(`temporalPadding expects input tensor to be 4-D, but received a ${t.rank}-D tensor.`);if(null==n&&(n=[[1,1],[1,1]]),2!==n.length||2!==n[0].length||2!==n[1].length)throw new Qy("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(null==s&&(s="channelsLast"),"channelsLast"!==s&&"channelsFirst"!==s)throw new Qy(`Unknown data format: ${s}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let e;return e="channelsFirst"===s?[[0,0],[0,0],n[0],n[1]]:[[0,0],n[0],n[1],[0,0]],Od(t,e)}));var t,n,s}))}getConfig(){const e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}function hC(e,t,n,s,r,i){return Ao((()=>{let a;Rb(r),Db(i),Ob(s),null==n&&(n=[1,1]),null==s&&(s="valid"),null==r&&(r="channelsLast"),null==i&&(i="max"),e=iA(e,r);const o="same"===s?"same":"valid";return a="max"===i?md(e,t,n,o):Nc(e,t,n,o),"channelsFirst"===r&&(a=Jp(a,[0,3,1,2])),a}))}function dC(e,t,n,s,r,i){return Ao((()=>{let a;Rb(r),Db(i),Ob(s),null==n&&(n=[1,1,1]),null==s&&(s="valid"),null==r&&(r="channelsLast"),null==i&&(i="max"),e=aA(e,r);const o="same"===s?"same":"valid";return a="max"===i?gd(e,t,n,o):Rc(e,t,n,o),"channelsFirst"===r&&(a=Jp(a,[0,4,1,2,3])),a}))}cC.className="ZeroPadding2D",Hl(cC);class pC extends qw{constructor(e){if(null==e.poolSize&&(e.poolSize=2),super(e),"number"==typeof e.poolSize)this.poolSize=[e.poolSize];else{if(!Array.isArray(e.poolSize)||1!==e.poolSize.length||"number"!=typeof e.poolSize[0])throw new Qy(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);this.poolSize=e.poolSize}if(bb(this.poolSize,"poolSize"),null==e.strides)this.strides=this.poolSize;else if("number"==typeof e.strides)this.strides=[e.strides];else{if(!Array.isArray(e.strides)||1!==e.strides.length||"number"!=typeof e.strides[0])throw new Qy(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);this.strides=e.strides}bb(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,Ob(this.padding),this.inputSpec=[new Uw({ndim:3})]}computeOutputShape(e){const t=sA((e=Mw(e))[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return Ao((()=>{this.invokeCallHook(e,t),e=$b(Dw(e),2);const n=this.poolingFunction(Dw(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Tp(n,[2])}))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}}class fC extends pC{constructor(e){super(e)}poolingFunction(e,t,n,s,r){return Rb(r),Ob(s),hC(e,t,n,s,r,"max")}}fC.className="MaxPooling1D",Hl(fC);class mC extends pC{constructor(e){super(e)}poolingFunction(e,t,n,s,r){return Rb(r),Ob(s),hC(e,t,n,s,r,"avg")}}mC.className="AveragePooling1D",Hl(mC);class gC extends qw{constructor(e){if(null==e.poolSize&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],null==e.strides)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(2!==e.strides.length)throw new Qy(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];bb(this.poolSize,"poolSize"),bb(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Rb(this.dataFormat),Ob(this.padding),this.inputSpec=[new Uw({ndim:4})]}computeOutputShape(e){e=Mw(e);let t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2];return t=sA(t,this.poolSize[0],this.padding,this.strides[0]),n=sA(n,this.poolSize[1],this.padding,this.strides[1]),"channelsFirst"===this.dataFormat?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return Ao((()=>(this.invokeCallHook(e,t),this.poolingFunction(Dw(e),this.poolSize,this.strides,this.padding,this.dataFormat))))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class yC extends gC{constructor(e){super(e)}poolingFunction(e,t,n,s,r){return Rb(r),Ob(s),hC(e,t,n,s,r,"max")}}yC.className="MaxPooling2D",Hl(yC);class bC extends gC{constructor(e){super(e)}poolingFunction(e,t,n,s,r){return Rb(r),Ob(s),hC(e,t,n,s,r,"avg")}}bC.className="AveragePooling2D",Hl(bC);class wC extends qw{constructor(e){if(null==e.poolSize&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],null==e.strides)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(3!==e.strides.length)throw new Qy(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];bb(this.poolSize,"poolSize"),bb(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Rb(this.dataFormat),Ob(this.padding),this.inputSpec=[new Uw({ndim:5})]}computeOutputShape(e){e=Mw(e);let t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2],s="channelsFirst"===this.dataFormat?e[4]:e[3];return t=sA(t,this.poolSize[0],this.padding,this.strides[0]),n=sA(n,this.poolSize[1],this.padding,this.strides[1]),s=sA(s,this.poolSize[2],this.padding,this.strides[2]),"channelsFirst"===this.dataFormat?[e[0],e[1],t,n,s]:[e[0],t,n,s,e[4]]}call(e,t){return Ao((()=>(this.invokeCallHook(e,t),this.poolingFunction(Dw(e),this.poolSize,this.strides,this.padding,this.dataFormat))))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class vC extends wC{constructor(e){super(e)}poolingFunction(e,t,n,s,r){return Rb(r),Ob(s),dC(e,t,n,s,r,"max")}}vC.className="MaxPooling3D",Hl(vC);class xC extends wC{constructor(e){super(e)}poolingFunction(e,t,n,s,r){return Rb(r),Ob(s),dC(e,t,n,s,r,"avg")}}xC.className="AveragePooling3D",Hl(xC);class AC extends qw{constructor(e){super(e),this.inputSpec=[new Uw({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Jy}}class CC extends AC{constructor(e){super(e||{})}call(e,t){return Ao((()=>{const t=Dw(e);return bd(t,1)}))}}CC.className="GlobalAveragePooling1D",Hl(CC);class kC extends AC{constructor(e){super(e||{})}call(e,t){return Ao((()=>{const t=Dw(e);return Rh(t,1)}))}}kC.className="GlobalMaxPooling1D",Hl(kC);class SC extends qw{constructor(e){super(e),this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Rb(this.dataFormat),this.inputSpec=[new Uw({ndim:4})]}computeOutputShape(e){return"channelsLast"===this.dataFormat?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new Jy}getConfig(){const e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class _C extends SC{call(e,t){return Ao((()=>{const t=Dw(e);return"channelsLast"===this.dataFormat?bd(t,[1,2]):bd(t,[2,3])}))}}_C.className="GlobalAveragePooling2D",Hl(_C);class EC extends SC{call(e,t){return Ao((()=>{const t=Dw(e);return"channelsLast"===this.dataFormat?Rh(t,[1,2]):Rh(t,[2,3])}))}}EC.className="GlobalMaxPooling2D",Hl(EC);class IC extends qw{constructor(e){super(e),this.layer=e.layer}build(e){this.built=!0}get trainable(){return null!=this.layer&&this.layer.trainable}set trainable(e){null!=this.layer&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){const e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),null!=this.layer&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){const s=Av(t.layer,n);delete t.layer;const r={layer:s};return Object.assign(r,t),new e(r)}}class TC extends IC{constructor(e){super(e),this.supportsMasking=!0}build(e){if((e=Mw(e)).length<3)throw new Qy(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];const t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){const t=[(e=Mw(e))[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),s=e[1];return[n[0],s].concat(n.slice(1))}call(e,t){return Ao((()=>CA(((e,n)=>[Dw(this.layer.call(e,t)),[]]),e=Dw(e),[],!1,null,null,!1,!0)[1]))}}TC.className="TimeDistributed",Hl(TC);class NC extends IC{constructor(e){super(e);const t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Av(n),t.goBackwards=!0!==t.goBackwards;const s={};var r;if(s.className=e.layer.getClassName(),s.config=t,this.backwardLayer=Av(s),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=void 0===e.mergeMode?"concat":e.mergeMode,r=this.mergeMode,gb(Tb,"BidirectionalMergeMode",r),e.weights)throw new Jy("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,null!=this.forwardLayer&&(this.forwardLayer.trainable=e),null!=this.backwardLayer&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){const t=e.length,n=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,n)),this.backwardLayer.setWeights(e.slice(n))}computeOutputShape(e){let t,n,s,r=this.forwardLayer.computeOutputShape(e);return Array.isArray(r)&&Array.isArray(r[0])||(r=[r]),this.returnState?(s=r.slice(1),t=r[0]):t=r[0],"concat"===this.mergeMode?(t[t.length-1]*=2,n=[t]):n=null==this.mergeMode?[t,t.slice()]:[t],this.returnState?null==this.mergeMode?n.concat(s).concat(s.slice()):[t].concat(s).concat(s.slice()):ib(n)}apply(e,t){let n=null==t?null:t.initialState,s=null==t?null:t.constants;null==t&&(t={});const r=AA(e,n,s,this.numConstants);if(e=r.inputs,n=r.initialState,s=r.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(null==n||0===n.length)&&null==s)return super.apply(e,t);const i=[],a=[];if(null!=n){const e=n.length;if(e%2>0)throw new Qy("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=n,i.push(...n);const s=n.map((e=>new Uw({shape:e.shape})));this.forwardLayer.stateSpec=s.slice(0,e/2),this.backwardLayer.stateSpec=s.slice(e/2),a.push(...s)}if(null!=s)throw new Jy("Support for constants in Bidirectional layers is not implemented yet.");const o=i[0]instanceof Vw;for(const e of i)if(e instanceof Vw!==o)throw new Qy("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){const n=[e].concat(i),s=this.inputSpec.concat(a),r=this.inputSpec;this.inputSpec=s;const o=super.apply(n,t);return this.inputSpec=r,o}return super.apply(e,t)}call(e,t){return Ao((()=>{const n=t.initialState;let s,r,i,a;if(null==n)s=this.forwardLayer.call(e,t),r=this.backwardLayer.call(e,t);else{const i=n.slice(0,n.length/2),a=n.slice(n.length/2);s=this.forwardLayer.call(e,Object.assign(t,{initialState:i})),r=this.backwardLayer.call(e,Object.assign(t,{initialState:a}))}return this.returnState&&(Array.isArray(s)&&(i=s.slice(1).concat(r.slice(1))),s=s[0],r=r[0]),this.returnSequences&&(r=ip(r,1)),"concat"===this.mergeMode?a=Qb([s,r]):"sum"===this.mergeMode?a=Dl(s,r):"ave"===this.mergeMode?a=Fl(.5,Dl(s,r)):"mul"===this.mergeMode?a=Fl(s,r):null==this.mergeMode&&(a=[s,r]),this.returnState?null==this.mergeMode?a.concat(i):[a].concat(i):a}))}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Fb(this.forwardLayer.name,(()=>{this.forwardLayer.build(e)})),Fb(this.backwardLayer.name,(()=>{this.backwardLayer.build(e)})),this.built=!0}computeMask(e,t){let n;if(Array.isArray(t)&&(t=t[0]),n=this.returnSequences?null==this.mergeMode?[t,t]:t:null==this.mergeMode?[null,null]:null,this.returnState){const e=this.forwardLayer.states.map((e=>null));return Array.isArray(n)?n.concat(e).concat(e):[n].concat(e).concat(e)}return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),null!=this.forwardLayer&&this.forwardLayer.setFastWeightInitDuringBuild(e),null!=this.backwardLayer&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){const e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){const n=Av(t.layer);if(delete t.layer,null!=t.numConstants)throw new Jy("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");const s=t;return s.layer=n,new e(s)}}NC.className="Bidirectional",Hl(NC);class RC extends qw{constructor(e){super(e),this.scale=e.scale,e.offset?this.offset=e.offset:this.offset=0}getConfig(){const e={scale:this.scale,offset:this.offset},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return Ao((()=>("float32"!==(e=Dw(e)).dtype&&(e=Kb(e,"float32")),Dl(Fl(e,this.scale),this.offset))))}}RC.className="Rescaling",Hl(RC);const{resizeBilinear:OC,cropAndResize:DC}=bm;class MC extends qw{constructor(e){super(e),this.height=e.height,this.width=e.width}centerCrop(e,t,n,s,r,i,a,o){return Ao((()=>{let l,u=!1;const c=[t/i,n/a,(s+t)/i,(r+n)/a],h=[];3===e.rank?(u=!0,l=Np([e])):l=e;for(let e=0;eKb(OC(e,[t,n]),s)))}call(e,t){return Ao((()=>{const t=Dw(e),n=t.dtype,s=t.shape,r=s[s.length-3],i=s[s.length-2];let a=0;r!==this.height&&(a=Math.floor((r-this.height)/2));let o=0;return i!==this.width&&(o=Math.floor((i-this.width)/2),0===o&&(o=1)),a>=0&&o>=0?this.centerCrop(t,a,o,this.height,this.width,r,i,n):this.upsize(e,this.height,this.width,n)}))}getConfig(){const e={height:this.height,width:this.width},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){const t=(e=Mw(e)).length-3,n=e.length-2;return e[t]=this.height,e[n]=this.width,e}}MC.className="CenterCrop",Hl(MC);class zC extends qw{constructor(e){super(e),this.numTokens=e.numTokens,e.outputMode?this.outputMode=e.outputMode:this.outputMode="multiHot"}getConfig(){const e={numTokens:this.numTokens,outputMode:this.outputMode},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){return null==(e=Mw(e))?[this.numTokens]:"oneHot"===this.outputMode&&1!==e[e.length-1]?(e.push(this.numTokens),e):(e[e.length-1]=this.numTokens,e)}call(e,t){return Ao((()=>{let n;if("int32"!==(e=Dw(e)).dtype&&(e=Kb(e,"int32")),void 0!==t.countWeights){if("count"!==this.outputMode)throw new Qy(`countWeights is not used when outputMode !== count.\n Received countWeights=${t.countWeights}`);n=Dw(t.countWeights)}const s=Rh(e),r=Oh(e),i=Gh(this.numTokens,s).bufferSync().get(0),a=qh(r,0).bufferSync().get(0);if(!i||!a)throw new Qy(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return function(e,t,n,s){let r=Dw(e);if("int32"!==r.dtype&&(r=Kb(r,"int32")),"int"===t)return r;const i=r.shape;if(0===r.rank&&(r=Lh(r,-1)),"oneHot"===t&&1!==r.shape[r.shape.length-1]&&(r=Lh(r,-1)),r.rank>2)throw new Qy(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${i} which would result in output rank ${r.rank}.`);const a=["multiHot","oneHot"].includes(t),o=r;let l;if(l=ch(o,void 0!==s&&"count"===t?s:[],n,a),"tfIdf"!==t)return l;if(s)return Fl(l,s);throw new Qy("When outputMode is 'tfIdf', weights must be provided.")}(e,this.outputMode,this.numTokens,n)}))}}zC.className="CategoryEncoding",Hl(zC);const FC=new Set(["bilinear","nearest"]);class BC extends qw{constructor(e){if(super(e),this.height=e.height,this.width=e.width,e.interpolation){if(!FC.has(e.interpolation))throw new Qy(`Invalid interpolation parameter: ${e.interpolation} is not implemented`);this.interpolation=e.interpolation}else this.interpolation="bilinear";this.cropToAspectRatio=Boolean(e.cropToAspectRatio)}computeOutputShape(e){const t=(e=Mw(e))[2];return[this.height,this.width,t]}getConfig(){const e={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return Ao((()=>{const t=[this.height,this.width];if("bilinear"===this.interpolation)return bm.resizeBilinear(e,t,!this.cropToAspectRatio);if("nearest"===this.interpolation)return bm.resizeNearestNeighbor(e,t,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...FC]} are supported`)}))}}BC.className="Resizing",Hl(BC);class LC{constructor(e){this.seed=e}next(){if(void 0!==this.seed)return this.seed++}}LC.className="RandomSeed";class PC extends qw{constructor(e){super(e),this.randomGenerator=new LC(e.seed)}getConfig(){const e={seed:this.randomGenerator.seed},t=super.getConfig();return Object.assign(e,t),e}}PC.className="BaseRandomLayer";const UC=new Set(["bilinear","nearest"]);class VC extends PC{constructor(e){super(e);const{factor:t,interpolation:n="bilinear"}=e;if(this.factor=t,Array.isArray(this.factor)&&2===this.factor.length)this.widthLower=this.factor[0],this.widthUpper=this.factor[1];else{if(Array.isArray(this.factor)||!(this.factor>0))throw new Qy(`Invalid factor: ${this.factor}. Must be positive number or tuple of 2 numbers`);this.widthLower=-this.factor,this.widthUpper=this.factor}if(this.widthLower<-1||this.widthUpper<-1)throw new Qy(`factor must have values larger than -1. Got: ${this.factor}`);if(this.widthUpper{const t=Dw(e);this.imgHeight=t.shape[t.shape.length-3];const n=t.shape[t.shape.length-2];this.widthFactor=Qd([1],1+this.widthLower,1+this.widthUpper,"float32",this.randomGenerator.next());let s=this.widthFactor.dataSync()[0]*n;s=Math.round(s);const r=[this.imgHeight,s];switch(this.interpolation){case"bilinear":return bm.resizeBilinear(e,r);case"nearest":return bm.resizeNearestNeighbor(e,r);default:throw new Error(`Interpolation is ${this.interpolation}\n but only ${[...UC]} are supported`)}}))}}VC.className="RandomWidth",Hl(VC);var WC,jC;Sn().registerFlag("KEEP_INTERMEDIATE_TENSORS",(()=>!1),(e=>{})),function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_QINT16=15]="DT_QINT16",e[e.DT_QUINT16=16]="DT_QUINT16",e[e.DT_UINT16=17]="DT_UINT16",e[e.DT_COMPLEX128=18]="DT_COMPLEX128",e[e.DT_HALF=19]="DT_HALF",e[e.DT_RESOURCE=20]="DT_RESOURCE",e[e.DT_VARIANT=21]="DT_VARIANT",e[e.DT_UINT32=22]="DT_UINT32",e[e.DT_UINT64=23]="DT_UINT64",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF",e[e.DT_QINT16_REF=115]="DT_QINT16_REF",e[e.DT_QUINT16_REF=116]="DT_QUINT16_REF",e[e.DT_UINT16_REF=117]="DT_UINT16_REF",e[e.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",e[e.DT_HALF_REF=119]="DT_HALF_REF",e[e.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",e[e.DT_VARIANT_REF=121]="DT_VARIANT_REF",e[e.DT_UINT32_REF=122]="DT_UINT32_REF",e[e.DT_UINT64_REF=123]="DT_UINT64_REF"}(WC||(WC={})),function(e){let t;!function(e){e[e.LEGACY=0]="LEGACY",e[e.V1=1]="V1",e[e.V2=2]="V2"}(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))}(jC||(jC={}));const GC={};function qC(e){return GC[e]}function HC(e,t,n,s,r){const i=t.inputParams[e];if(i&&void 0!==i.inputIndexStart){const e=i.inputIndexStart,a=0===i.inputIndexEnd?void 0:void 0===i.inputIndexEnd?e+1:i.inputIndexEnd,o=e<0?t.inputNames.length+e:e;if("tensor"===i.type)return KC(t.inputNames[o],n,s,r);if("tensors"===i.type){const i=t.inputs.slice(e,a);return t.inputNames.slice(e,a).filter(((e,t)=>{var n;return"NoOp"!==(null===(n=i[t])||void 0===n?void 0:n.op)})).map((e=>KC(e,n,s,r)))}const l=KC(t.inputNames[o],n,s,r),u=l.dataSync();return"number"===i.type?u[0]:fn(l.shape,u)}const a=t.attrParams[e];return a&&a.value}function KC(e,t,n,s){const[r,i]=YC(e,n);if(null!=s){const e=s.getHashTableHandleByName(r);if(null!=e)return e}const a=n.currentContextIds.find((e=>!!t[ZC(r,e)]));return void 0!==a?t[ZC(r,a)][i]:void 0}function $C(e,t,n){return t[ZC(e,n.currentContextId)]}function XC(e,t){const[n,s,r]=YC(e,t);return[ZC(n,t&&t.currentContextId),s,r]}function ZC(e,t){return t?`${e}-${t}`:e}function YC(e,t){if(""===e)return["",0,void 0];const n=null!=t&&null!=t.parseNodeNameCache;if(n){const n=t.parseNodeNameCache.get(e);if(null!=n)return n}const s=e.split(":");let r;if(1===s.length)r=[e,0,void 0];else{const e=s[0],t=3===s.length?s[1]:void 0;r=[e,Number(s[s.length-1]),t]}return n&&t.parseNodeNameCache.set(e,r),r}function QC(e,t,n){let s=HC("pad",e,t,n);if("explicit"===s){s=HC("explicitPaddings",e,t,n);const r=[[0,0],[0,0],[0,0],[0,0]];for(let e=0;e<4;e++)r[e][0]=s[2*e],r[e][1]=s[2*e+1];return r}return s}function JC(e){return e.kept?e:Rl(e)}const ek=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],tk=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsFinite",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsInf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],nk=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcatV2",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}],sk=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],rk=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"RandomUniformInt",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number"},{tfName:"maxval",name:"maxval",type:"number"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],ik=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],ak=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],ok=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],lk=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableSize",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"LookupTableSizeV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"InitializeTable",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]},{tfOpName:"InitializeTableV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]}],uk=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}],ck=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BitwiseAnd",category:"logical",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}]}],hk=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"MatrixBandPart",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"numLower",type:"tensor"},{start:1,name:"numUpper",type:"tensor"}]}],dk=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]}],pk=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cumprod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],fk=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]},{tfOpName:"TensorScatterUpdate",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"values",type:"tensor"}]}],mk=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}],gk=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],yk=[{tfOpName:"StaticRegexReplace",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"pattern",name:"pattern",type:"string"},{tfName:"rewrite",name:"rewrite",type:"string"},{tfName:"replace_global",name:"replaceGlobal",type:"bool"}]},{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}],bk=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"EnsureShape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}];class wk{static get Instance(){return this._instance||(this._instance=new this)}constructor(){const e=[].concat(...[i,a,o,l,u,c,h,d,p,f,m,g,y,b,w,v,x,A,C].map((e=>e.json)));this.opMappers=e.reduce(((e,t)=>(e[t.tfOpName]=t,e)),{})}transformGraph(e,t={}){const n=e.node,s=[],r=[],i=[],a=n.reduce(((e,t)=>(e[t.name]=this.mapNode(t),t.op.startsWith("Placeholder")?s.push(e[t.name]):"Const"===t.op?r.push(e[t.name]):null!=t.input&&0!==t.input.length||i.push(e[t.name]),e)),{});let o=[];const l=[];let u={},c={};null!=t&&(u=this.mapSignatureEntries(t.inputs),c=this.mapSignatureEntries(t.outputs));const h=Object.keys(a);h.forEach((e=>{const t=a[e];t.inputNames.forEach(((e,n)=>{const[s,,r]=XC(e),i=a[s];if(null!=i.outputs){const e=i.outputs.indexOf(r);if(-1!==e){const r=`${s}:${e}`;t.inputNames[n]=r}}t.inputs.push(i),i.children.push(t)}))})),0===Object.keys(c).length?h.forEach((e=>{const t=a[e];0===t.children.length&&l.push(t)})):Object.keys(c).forEach((e=>{const[t]=XC(e),n=a[t];null!=n&&(n.signatureKey=c[e],l.push(n))})),Object.keys(u).length>0?Object.keys(u).forEach((e=>{const[t]=XC(e),n=a[t];n&&(n.signatureKey=u[e],o.push(n))})):o=s;let d={};null!=e.library&&null!=e.library.function&&(d=e.library.function.reduce(((e,t)=>(e[t.signature.name]=this.mapFunction(t),e)),{}));const p={nodes:a,inputs:o,outputs:l,weights:r,placeholders:s,signature:t,functions:d};return i.length>0&&(p.initNodes=i),p}mapSignatureEntries(e){return Object.keys(e||{}).reduce(((t,n)=>(t[e[n].name]=n,t)),{})}mapNode(e){const t=qC(e.op)||this.opMappers[e.op]||{};null==e.attr&&(e.attr={});const n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map((e=>e.startsWith("^")?e.slice(1):e)),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr,outputs:t.outputs};return null!=t.inputs&&(n.inputParams=t.inputs.reduce(((e,t)=>(e[t.name]={type:t.type,inputIndexStart:t.start,inputIndexEnd:t.end},e)),{})),null!=t.attrs&&(n.attrParams=t.attrs.reduce(((t,n)=>{const s=n.type;let r;switch(n.type){case"string":r=xk(e.attr,n.tfName,n.defaultValue),void 0===r&&n.tfDeprecatedName&&(r=xk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"string[]":r=Rk(e.attr,n.tfName,n.defaultValue),void 0===r&&n.tfDeprecatedName&&(r=Rk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"number":r=Ck(e.attr,n.tfName,n.defaultValue||0),void 0===r&&n.tfDeprecatedName&&(r=Ck(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"number[]":r=Nk(e.attr,n.tfName,n.defaultValue),void 0===r&&n.tfDeprecatedName&&(r=Nk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"bool":r=Ak(e.attr,n.tfName,n.defaultValue),void 0===r&&n.tfDeprecatedName&&(r=Ak(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"bool[]":r=Dk(e.attr,n.tfName,n.defaultValue),void 0===r&&n.tfDeprecatedName&&(r=Dk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"shape":r=Tk(e.attr,n.tfName,n.defaultValue),void 0===r&&n.tfDeprecatedName&&(r=Tk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"shape[]":r=Ok(e.attr,n.tfName,n.defaultValue),void 0===r&&n.tfDeprecatedName&&(r=Ok(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"dtype":r=_k(e.attr,n.tfName,n.defaultValue),void 0===r&&n.tfDeprecatedName&&(r=_k(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"dtype[]":r=Ek(e.attr,n.tfName,n.defaultValue),void 0===r&&n.tfDeprecatedName&&(r=Ek(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"func":r=Sk(e.attr,n.tfName,n.defaultValue),void 0===r&&n.tfDeprecatedName&&(r=Sk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${n.type} for op: ${e.op}`)}return t[n.name]={value:r,type:s},t}),{})),n}mapFunction(e){const t=e.nodeDef,n=[];let s={};null!=t&&(s=t.reduce(((e,t)=>(e[t.name]=this.mapNode(t),"Const"===t.op&&n.push(e[t.name]),e)),{}));const r=[],i=[];e.signature.inputArg.forEach((e=>{const[t]=XC(e.name),n={name:t,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:kk(e.type),type:"dtype"}},children:[]};n.signatureKey=e.name,r.push(n),s[t]=n}));Object.keys(s).forEach((e=>{const t=s[e];t.inputNames.forEach(((e,n)=>{const[r,,i]=XC(e),a=s[r];if(null!=a.outputs){const e=a.outputs.indexOf(i);if(-1!==e){const s=`${r}:${e}`;t.inputNames[n]=s}}t.inputs.push(a),a.children.push(t)}))}));const a=e.ret;e.signature.outputArg.forEach((e=>{const[t,n]=XC(a[e.name]),r=s[t];null!=r&&(r.defaultOutput=n,i.push(r))}));const o=this.mapArgsToSignature(e);return{nodes:s,inputs:r,outputs:i,weights:n,placeholders:[],signature:o}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce(((e,t)=>(e[t.name]=this.mapArgToTensorInfo(t),e)),{}),outputs:e.signature.outputArg.reduce(((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t)),{})}}mapArgToTensorInfo(e,t){let n=e.name;return null!=t&&(n=t[n]),{name:n,dtype:e.type}}}function vk(e,t){const n=Array.isArray(e)?String.fromCharCode.apply(null,e):function(e){const t=Sn().global;if(void 0!==t.atob)return t.atob(e);if("undefined"!=typeof Buffer)return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}(e);return t?n:n.toLowerCase()}function xk(e,t,n,s=!1){const r=e[t];return null!=r?vk(r.s,s):n}function Ak(e,t,n){const s=e[t];return s?s.b:n}function Ck(e,t,n){const s=e[t]||{},r=null!=s.i?s.i:null!=s.f?s.f:n;return"number"==typeof r?r:parseInt(r,10)}function kk(e){switch("string"==typeof e&&(e=WC[e]),e){case WC.DT_FLOAT:case WC.DT_HALF:return"float32";case WC.DT_INT32:case WC.DT_INT64:case WC.DT_INT8:case WC.DT_UINT8:return"int32";case WC.DT_BOOL:return"bool";case WC.DT_DOUBLE:return"float32";case WC.DT_STRING:return"string";case WC.DT_COMPLEX64:case WC.DT_COMPLEX128:return"complex64";default:return null}}function Sk(e,t,n){const s=e[t];return s&&s.func?s.func.name:n}function _k(e,t,n){const s=e[t];return s&&s.type?kk(s.type):n}function Ek(e,t,n){const s=e[t];return s&&s.list&&s.list.type?s.list.type.map((e=>kk(e))):n}function Ik(e){if(!e.unknownRank)return null!=e.dim?e.dim.map((e=>"number"==typeof e.size?e.size:parseInt(e.size,10))):[]}function Tk(e,t,n){const s=e[t];return s&&s.shape?Ik(s.shape):n}function Nk(e,t,n){const s=e[t];return s?((s.list.f&&s.list.f.length?s.list.f:s.list.i)||[]).map((e=>"number"==typeof e?e:parseInt(e,10))):n}function Rk(e,t,n,s=!1){const r=e[t];return r&&r.list&&r.list.s?r.list.s.map((e=>vk(e,s))):n}function Ok(e,t,n){const s=e[t];return s&&s.list&&s.list.shape?s.list.shape.map((e=>Ik(e))):n}function Dk(e,t,n){const s=e[t];return s&&s.list&&s.list.b?s.list.b:n}class Mk{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map((e=>this.getInput(e))),null!=e.rawAttrs&&(this.attrs=Object.keys(e.rawAttrs).reduce(((e,t)=>(e[t]=this.getAttr(t),e)),{}))}getInput(e){return KC(e,this.tensorMap,this.context)}getAttr(e,t){const n=this.node.rawAttrs[e];if(null!=n.tensor)return KC(e,this.tensorMap,this.context);if(null!=n.i||null!=n.f)return Ck(this.node.rawAttrs,e,t);if(null!=n.s)return xk(this.node.rawAttrs,e,t);if(null!=n.b)return Ak(this.node.rawAttrs,e,t);if(null!=n.shape)return Tk(this.node.rawAttrs,e,t);if(null!=n.type)return _k(this.node.rawAttrs,e,t);if(null!=n.list){if(null!=n.list.i||null!=n.list.f)return Nk(this.node.rawAttrs,e,t);if(null!=n.list.s)return Rk(this.node.rawAttrs,e,t);if(null!=n.list.shape)return Ok(this.node.rawAttrs,e,t);if(null!=n.list.b)return Dk(this.node.rawAttrs,e,t);if(null!=n.list.type)return Ek(this.node.rawAttrs,e,t)}return t}}function zk(e,t,n=""){if("number"!=typeof e&&"number"!=typeof t){Gt(e.length===t.length,(()=>n+` Shapes ${e} and ${t} must match`));for(let s=0;sn+` Shapes ${e} and ${t} must match`))}}}function Fk(e){return"number"!=typeof e&&!e.some((e=>e<0))}function Bk(e,t,n){let s=Lk(e,n);const r=!Fk(s);if(r&&0===t.length)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${s}`);if(r&&t.forEach((e=>{s=Lk(e.shape,s)})),!Fk(s))throw new Error(`Non-fully-defined elementShape: ${s}`);return s}function Lk(e,t){if("number"==typeof e)return t;if("number"==typeof t)return e;if(e.length!==t.length)throw new Error(`Incompatible ranks during merge: ${e} vs. ${t}`);const n=[];for(let s=0;s=0&&i>=0&&r!==i)throw new Error(`Incompatible shape during merge: ${e} vs. ${t}`);n[s]=r>=0?r:i}return n}class Pk{constructor(e,t,n,s,r,i,a){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=s,this.identicalElementShapes=r,this.dynamicSize=i,this.clearAfterRead=a,this.tensors=[],this.closed_=!1,this.idTensor=Vl(0),ko(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach((t=>{null!=e&&e.has(t.tensor.id)||t.tensor.dispose()})),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);const t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map((e=>this.read(e)))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);const n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e},\n because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(0!==this.size()||null!=this.elementShape&&0!==this.elementShape.length||(this.elementShape=t.shape),zk(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);n.tensor=t,ko(t),n.written=!0,this.tensors[e]=n}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach(((e,n)=>this.write(e,t[n])))}gather(e,t){if(t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let t=0;t=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(e,Kp(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let n=0;const s=e.map((e=>(n+=e,n)));if(n!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${n}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);const r=0===n?0:t.size/n,i=[];Ao((()=>{t=Tc(t,[1,n,r]);for(let n=0;n{if(n!==e.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${e.dtype}`);zk(t,e.shape,"TensorList shape mismatch: "),ko(e)})),this.idTensor=Vl(0),this.maxNumElements=s,ko(this.idTensor)}copy(){return new Uk([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach((t=>{null!=e&&e.has(t.id)||t.dispose()})),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,n=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(-1!==n&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);zk(e,this.elementShape,"TensorList shape mismatch: ");const s=Bk(this.elementShape,this.tensors,e);return Ao((()=>{const e=this.tensors.map((e=>Tc(e,s)));return Np(e,0)}))}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(0===this.size())throw new Error("Trying to pop from an empty list.");const n=Bk(this.elementShape,this.tensors,e),s=this.tensors.pop();return s.kept=!1,zk(s.shape,e,"TensorList shape mismatch: "),Tc(s,n)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(zk(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");ko(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(-1!==this.maxNumElements&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);const t=new Uk([],this.elementShape,this.elementDtype,this.maxNumElements);t.tensors.length=e;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(null==this.tensors[e])throw new Error(`element at index ${e} is null.`);zk(this.tensors[e].shape,t,"TensorList shape mismatch: ");const s=Bk(this.elementShape,this.tensors,t);return Tc(this.tensors[e],s)}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||-1!==this.maxNumElements&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);zk(this.elementShape,t.shape,"TensorList shape mismatch: "),ko(t),null!=this.tensors[e]&&(this.tensors[e].kept=!1),this.tensors[e]=t}gather(e,t,n){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);zk(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());const s=Bk(this.elementShape,this.tensors,n);return 0===e.length?yo([],[0].concat(s)):Ao((()=>{const t=e.map((e=>Tc(this.tensors[e],s)));return Np(t,0)}))}concat(e,t){if(e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);zk(this.elementShape,t,"TensorList shape mismatch: ");const n=Bk(this.elementShape,this.tensors,t);return 0===this.size()?yo([],[0].concat(n)):Ao((()=>{const e=this.tensors.map((e=>Tc(e,n)));return Oc(e,0)}))}}const Vk=async(e,t,n)=>{switch(e.op){case"If":case"StatelessIf":{const s=HC("thenBranch",e,t,n),r=HC("elseBranch",e,t,n),i=HC("cond",e,t,n),a=HC("args",e,t,n);return(await i.data())[0]?n.functionMap[s].executeFunctionAsync(a,n.tensorArrayMap,n.tensorListMap):n.functionMap[r].executeFunctionAsync(a,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{const s=HC("body",e,t,n),r=HC("cond",e,t,n),i=HC("args",e,t,n),a=await n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap),o=i.map((e=>e.id));let l=await a[0].data();a.forEach((e=>{e.kept||-1!==o.indexOf(e.id)||e.dispose()}));let u=i;for(;l[0];){const e=u;u=await n.functionMap[s].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);const t=u.map((e=>e.id));e.forEach((e=>{e.kept||-1!==o.indexOf(e.id)||-1!==t.indexOf(e.id)||e.dispose()}));const i=await n.functionMap[r].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);l=await i[0].data(),i.forEach((e=>{e.kept||-1!==o.indexOf(e.id)||-1!==t.indexOf(e.id)||e.dispose()}))}return u}case"LoopCond":return[JC(HC("pred",e,t,n))];case"Switch":{const s=HC("pred",e,t,n);let r=HC("data",e,t,n);return r.kept||(r=JC(r)),(await s.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{const s=e.inputNames.find((e=>void 0!==KC(e,t,n)));if(s){return[JC(KC(s,t,n))]}return}case"Enter":{const s=HC("frameName",e,t,n),r=HC("tensor",e,t,n);return n.enterFrame(s),[JC(r)]}case"Exit":{const s=HC("tensor",e,t,n);return n.exitFrame(),[JC(s)]}case"NextIteration":{const s=HC("tensor",e,t,n);return n.nextIteration(),[JC(s)]}case"TensorArrayV3":{const s=HC("size",e,t,n),r=HC("dtype",e,t,n),i=HC("elementShape",e,t,n),a=HC("dynamicSize",e,t,n),o=HC("clearAfterRead",e,t,n),l=HC("identicalElementShapes",e,t,n),u=HC("name",e,t,n),c=new Pk(u,r,s,i,l,a,o);return n.addTensorArray(c),[c.idTensor,Vl(1)]}case"TensorArrayWriteV3":{const s=HC("tensorArrayId",e,t,n),r=HC("index",e,t,n),i=HC("tensor",e,t,n),a=n.getTensorArray(s.id);return a.write(r,i),[a.idTensor]}case"TensorArrayReadV3":{const s=HC("tensorArrayId",e,t,n),r=HC("index",e,t,n);return[n.getTensorArray(s.id).read(r)]}case"TensorArrayGatherV3":{const s=HC("tensorArrayId",e,t,n),r=HC("indices",e,t,n),i=HC("dtype",e,t,n);return[n.getTensorArray(s.id).gather(r,i)]}case"TensorArrayScatterV3":{const s=HC("tensorArrayId",e,t,n),r=HC("indices",e,t,n),i=HC("tensor",e,t,n),a=n.getTensorArray(s.id);return a.scatter(r,i),[a.idTensor]}case"TensorArrayConcatV3":{const s=HC("tensorArrayId",e,t,n),r=n.getTensorArray(s.id),i=HC("dtype",e,t,n);return[r.concat(i)]}case"TensorArraySplitV3":{const s=HC("tensorArrayId",e,t,n),r=HC("tensor",e,t,n),i=HC("lengths",e,t,n),a=n.getTensorArray(s.id);return a.split(i,r),[a.idTensor]}case"TensorArraySizeV3":{const s=HC("tensorArrayId",e,t,n);return[Vl(n.getTensorArray(s.id).size(),"int32")]}case"TensorArrayCloseV3":{const s=HC("tensorArrayId",e,t,n),r=n.getTensorArray(s.id);return r.clearAndClose(),[r.idTensor]}case"TensorListSetItem":{const s=HC("tensorListId",e,t,n),r=HC("index",e,t,n),i=HC("tensor",e,t,n),a=n.getTensorList(s.id);return a.setItem(r,i),[a.idTensor]}case"TensorListGetItem":{const s=HC("tensorListId",e,t,n),r=HC("index",e,t,n),i=HC("elementShape",e,t,n),a=HC("elementDType",e,t,n);return[n.getTensorList(s.id).getItem(r,i,a)]}case"TensorListScatterV2":case"TensorListScatter":{const s=HC("indices",e,t,n),r=function(e,t,n,s){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);const r=Math.max(...t);if(null!=s&&-1!==s&&r>=s)throw new Error(`Max index must be < array size (${r} vs. ${s})`);const i=new Uk([],n,e.dtype,s),a=Kp(e,0);return t.forEach(((e,t)=>{i.setItem(e,a[t])})),i}(HC("tensor",e,t,n),s,HC("elementShape",e,t,n),HC("numElements",e,t,n));return n.addTensorList(r),[r.idTensor]}case"TensorListReserve":case"EmptyTensorList":{const s=HC("elementShape",e,t,n),r=HC("elementDType",e,t,n);let i;i="TensorListReserve"===e.op?"numElements":"maxNumElements";const a=HC(i,e,t,n),o=function(e,t,n,s){return new Uk([],e,t,s)}(s,r,0,"TensorListReserve"===e.op?-1:a);return n.addTensorList(o),[o.idTensor]}case"TensorListGather":{const s=HC("tensorListId",e,t,n),r=HC("indices",e,t,n),i=HC("elementShape",e,t,n),a=HC("elementDType",e,t,n);return[n.getTensorList(s.id).gather(r,a,i)]}case"TensorListStack":{const s=HC("tensorListId",e,t,n),r=HC("elementShape",e,t,n),i=HC("elementDType",e,t,n),a=HC("numElements",e,t,n);return[n.getTensorList(s.id).stack(r,i,a)]}case"TensorListFromTensor":{const s=function(e,t,n){const s=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==n)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${n}`);zk(e.shape.slice(1),t,"TensorList shape mismatch: ");const r=Kp(e);return new Uk(r,t,s)}(HC("tensor",e,t,n),HC("elementShape",e,t,n),HC("elementDType",e,t,n));return n.addTensorList(s),[s.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{const s=HC("tensorListId",e,t,n),r=n.getTensorList(s.id),i=HC("dtype",e,t,n),a=HC("elementShape",e,t,n);return[r.concat(i,a)]}case"TensorListPushBack":{const s=HC("tensorListId",e,t,n),r=HC("tensor",e,t,n),i=n.getTensorList(s.id);return i.pushBack(r),[i.idTensor]}case"TensorListPopBack":{const s=HC("tensorListId",e,t,n),r=HC("elementShape",e,t,n),i=HC("elementDType",e,t,n);return[n.getTensorList(s.id).popBack(r,i)]}case"TensorListSplit":{const s=HC("tensor",e,t,n),r=HC("elementShape",e,t,n),i=function(e,t,n){let s=0;const r=t.map((e=>(s+=e,s)));if(s!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${s}, and tensor's shape is: ${e.shape}`);const i=Lk(e.shape.slice(1),n),a=0===s?0:e.size/s,o=Ao((()=>{const n=[];e=Tc(e,[1,s,a]);for(let s=0;se.dispose())),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return Vl(this.size(),"int32")}async import(e,t){this.checkKeyAndValueTensor(e,t);const n=await e.data();return this.tensorMap.forEach((e=>e.dispose())),this.tensorMap.clear(),Ao((()=>{const e=Kp(t),s=n.length,r=e.length;Gt(s===r,(()=>`The number of elements doesn't match, keys has ${s} elements, the values has ${r} elements.`));for(let t=0;t{const e=[];for(let s=0;s{switch(e.category){case"arithmetic":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[s.add(HC("a",e,t,n),HC("b",e,t,n))];case"AddN":return[s.addN(HC("tensors",e,t,n))];case"FloorMod":case"Mod":return[s.mod(HC("a",e,t,n),HC("b",e,t,n))];case"Mul":return[s.mul(HC("a",e,t,n),HC("b",e,t,n))];case"RealDiv":case"Div":return[s.div(HC("a",e,t,n),HC("b",e,t,n))];case"DivNoNan":return[s.divNoNan(HC("a",e,t,n),HC("b",e,t,n))];case"FloorDiv":return[s.floorDiv(HC("a",e,t,n),HC("b",e,t,n))];case"Sub":return[s.sub(HC("a",e,t,n),HC("b",e,t,n))];case"Minimum":return[s.minimum(HC("a",e,t,n),HC("b",e,t,n))];case"Maximum":return[s.maximum(HC("a",e,t,n),HC("b",e,t,n))];case"Pow":return[s.pow(HC("a",e,t,n),HC("b",e,t,n))];case"SquaredDifference":return[s.squaredDifference(HC("a",e,t,n),HC("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"basic_math":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"Abs":case"ComplexAbs":return[s.abs(HC("x",e,t,n))];case"Acos":return[s.acos(HC("x",e,t,n))];case"Acosh":return[s.acosh(HC("x",e,t,n))];case"Asin":return[s.asin(HC("x",e,t,n))];case"Asinh":return[s.asinh(HC("x",e,t,n))];case"Atan":return[s.atan(HC("x",e,t,n))];case"Atan2":return[s.atan2(HC("x",e,t,n),HC("y",e,t,n))];case"Atanh":return[s.atanh(HC("x",e,t,n))];case"Ceil":return[s.ceil(HC("x",e,t,n))];case"Complex":return[s.complex(HC("real",e,t,n),HC("imag",e,t,n))];case"Cos":return[s.cos(HC("x",e,t,n))];case"Cosh":return[s.cosh(HC("x",e,t,n))];case"Elu":return[s.elu(HC("x",e,t,n))];case"Erf":return[s.erf(HC("x",e,t,n))];case"Exp":return[s.exp(HC("x",e,t,n))];case"Expm1":return[s.expm1(HC("x",e,t,n))];case"Floor":return[s.floor(HC("x",e,t,n))];case"Log":return[s.log(HC("x",e,t,n))];case"Log1p":return[s.log1p(HC("x",e,t,n))];case"Imag":return[s.imag(HC("x",e,t,n))];case"Neg":return[s.neg(HC("x",e,t,n))];case"Reciprocal":return[s.reciprocal(HC("x",e,t,n))];case"Real":return[s.real(HC("x",e,t,n))];case"Relu":return[s.relu(HC("x",e,t,n))];case"Round":return[s.round(HC("x",e,t,n))];case"Selu":return[s.selu(HC("x",e,t,n))];case"Sigmoid":return[s.sigmoid(HC("x",e,t,n))];case"Sin":return[s.sin(HC("x",e,t,n))];case"Sign":return[s.sign(HC("x",e,t,n))];case"Sinh":return[s.sinh(HC("x",e,t,n))];case"Softplus":return[s.softplus(HC("x",e,t,n))];case"Sqrt":return[s.sqrt(HC("x",e,t,n))];case"Square":return[s.square(HC("x",e,t,n))];case"Tanh":return[s.tanh(HC("x",e,t,n))];case"Tan":return[s.tan(HC("x",e,t,n))];case"ClipByValue":return[s.clipByValue(HC("x",e,t,n),HC("clipValueMin",e,t,n),HC("clipValueMax",e,t,n))];case"Relu6":return[s.relu6(HC("x",e,t,n))];case"Rsqrt":return[s.rsqrt(KC(e.inputNames[0],t,n))];case"LeakyRelu":return[s.leakyRelu(HC("x",e,t,n),HC("alpha",e,t,n))];case"Prelu":return[s.prelu(HC("x",e,t,n),HC("alpha",e,t,n))];case"IsNan":return[s.isNaN(KC(e.inputNames[0],t,n))];case"IsInf":return[s.isInf(KC(e.inputNames[0],t,n))];case"IsFinite":return[s.isFinite(KC(e.inputNames[0],t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"control":return Vk(e,t,n);case"convolution":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"Conv1D":{const r=HC("stride",e,t,n),i=HC("pad",e,t,n),a=HC("dataFormat",e,t,n).toUpperCase(),o=HC("dilation",e,t,n);return[s.conv1d(HC("x",e,t,n),HC("filter",e,t,n),r,i,a,o)]}case"Conv2D":{const r=HC("strides",e,t,n),i=QC(e,t,n),a=HC("dataFormat",e,t,n).toUpperCase(),o=HC("dilations",e,t,n);return[s.conv2d(HC("x",e,t,n),HC("filter",e,t,n),[r[1],r[2]],i,a,[o[1],o[2]])]}case"_FusedConv2D":{const{stride:r,pad:i,dataFormat:a,dilations:o,biasArg:l,preluArg:u,activationFunc:c,leakyreluAlpha:h}=Wk(e,t,n);return[s.fused.conv2d({x:HC("x",e,t,n),filter:HC("filter",e,t,n),strides:[r[1],r[2]],pad:i,dataFormat:a,dilations:[o[1],o[2]],bias:l,activation:c,preluActivationWeights:u,leakyreluAlpha:h})]}case"FusedDepthwiseConv2dNative":{const{stride:r,pad:i,dataFormat:a,dilations:o,biasArg:l,preluArg:u,activationFunc:c,leakyreluAlpha:h}=Wk(e,t,n);return[s.fused.depthwiseConv2d({x:HC("x",e,t,n),filter:HC("filter",e,t,n),strides:[r[1],r[2]],pad:i,dataFormat:a,dilations:[o[1],o[2]],bias:l,activation:c,preluActivationWeights:u,leakyreluAlpha:h})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{const r=HC("outputShape",e,t,n),i=HC("strides",e,t,n),a=QC(e,t,n);return[s.conv2dTranspose(HC("x",e,t,n),HC("filter",e,t,n),r,[i[1],i[2]],a)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{const r=HC("strides",e,t,n),i=QC(e,t,n),a=HC("dilations",e,t,n),o=HC("dataFormat",e,t,n).toUpperCase();return[s.depthwiseConv2d(HC("input",e,t,n),HC("filter",e,t,n),[r[1],r[2]],i,o,[a[1],a[2]])]}case"Conv3D":{const r=HC("strides",e,t,n),i=HC("pad",e,t,n),a=HC("dataFormat",e,t,n).toUpperCase(),o=HC("dilations",e,t,n);return[s.conv3d(HC("x",e,t,n),HC("filter",e,t,n),[r[1],r[2],r[3]],i,a,[o[1],o[2],o[3]])]}case"AvgPool":{const r=HC("strides",e,t,n),i=HC("pad",e,t,n),a=HC("kernelSize",e,t,n);return[s.avgPool(HC("x",e,t,n),[a[1],a[2]],[r[1],r[2]],i)]}case"MaxPool":{const r=HC("strides",e,t,n),i=HC("pad",e,t,n),a=HC("kernelSize",e,t,n);return[s.maxPool(HC("x",e,t,n),[a[1],a[2]],[r[1],r[2]],i)]}case"MaxPoolWithArgmax":{const r=HC("strides",e,t,n),i=HC("pad",e,t,n),a=HC("kernelSize",e,t,n),o=HC("includeBatchInIndex",e,t,n),{result:l,indexes:u}=s.maxPoolWithArgmax(HC("x",e,t,n),[a[1],a[2]],[r[1],r[2]],i,o);return[l,u]}case"AvgPool3D":{const r=HC("strides",e,t,n),i=HC("pad",e,t,n),a=HC("kernelSize",e,t,n);return[s.avgPool3d(HC("x",e,t,n),[a[1],a[2],a[3]],[r[1],r[2],r[3]],i)]}case"MaxPool3D":{const r=HC("strides",e,t,n),i=HC("pad",e,t,n),a=HC("kernelSize",e,t,n);return[s.maxPool3d(HC("x",e,t,n),[a[1],a[2],a[3]],[r[1],r[2],r[3]],i)]}case"Dilation2D":{const r=HC("strides",e,t,n),i=HC("pad",e,t,n),a=HC("dilations",e,t,n),o=r[1],l=r[2],u=a[1],c=a[2];return[s.dilation2d(HC("x",e,t,n),HC("filter",e,t,n),[o,l],i,[u,c],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"creation":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"Fill":{const r=HC("shape",e,t,n),i=HC("dtype",e,t,n),a=HC("value",e,t,n);return[s.fill(r,a,i)]}case"LinSpace":{const r=HC("start",e,t,n),i=HC("stop",e,t,n),a=HC("num",e,t,n);return[s.linspace(r,i,a)]}case"Multinomial":{const r=HC("logits",e,t,n),i=HC("numSamples",e,t,n),a=HC("seed",e,t,n);return[s.multinomial(r,i,a)]}case"OneHot":{const r=HC("indices",e,t,n),i=HC("depth",e,t,n),a=HC("onValue",e,t,n),o=HC("offValue",e,t,n),l=HC("dtype",e,t,n);return[s.oneHot(r,i,a,o,l)]}case"Ones":return[s.ones(HC("shape",e,t,n),HC("dtype",e,t,n))];case"OnesLike":return[s.onesLike(HC("x",e,t,n))];case"RandomStandardNormal":return[s.randomStandardNormal(HC("shape",e,t,n),HC("dtype",e,t,n),HC("seed",e,t,n))];case"RandomUniform":return[s.randomUniform(HC("shape",e,t,n),HC("minval",e,t,n),HC("maxval",e,t,n),HC("dtype",e,t,n))];case"RandomUniformInt":return[s.randomUniformInt(HC("shape",e,t,n),HC("minval",e,t,n),HC("maxval",e,t,n),HC("seed",e,t,n))];case"Range":{const r=HC("start",e,t,n),i=HC("stop",e,t,n),a=HC("step",e,t,n);return[s.range(r,i,a,HC("dtype",e,t,n))]}case"TruncatedNormal":{const r=HC("shape",e,t,n),i=HC("mean",e,t,n),a=HC("stdDev",e,t,n),o=HC("seed",e,t,n);return[s.truncatedNormal(r,i,a,HC("dtype",e,t,n),o)]}case"Zeros":return[s.zeros(HC("shape",e,t,n),HC("dtype",e,t,n))];case"ZerosLike":return[s.zerosLike(HC("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"dynamic":return(async(e,t,n,s,r=k)=>{switch(e.op){case"NonMaxSuppressionV5":{const{boxes:s,scores:i,maxOutputSize:a,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=jk(e,t,n),c=await r.image.nonMaxSuppressionWithScoreAsync(s,i,a,o,l,u);return[c.selectedIndices,c.selectedScores]}case"NonMaxSuppressionV4":{const{boxes:s,scores:i,maxOutputSize:a,iouThreshold:o,scoreThreshold:l}=jk(e,t,n),u=HC("padToMaxOutputSize",e,t,n),c=await r.image.nonMaxSuppressionPaddedAsync(s,i,a,o,l,u);return[c.selectedIndices,c.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{const{boxes:s,scores:i,maxOutputSize:a,iouThreshold:o,scoreThreshold:l}=jk(e,t,n);return[await r.image.nonMaxSuppressionAsync(s,i,a,o,l)]}case"Where":{const s=r.cast(HC("condition",e,t,n),"bool"),i=[await r.whereAsync(s)];return s.dispose(),i}case"ListDiff":return r.setdiff1dAsync(HC("x",e,t,n),HC("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n);case"evaluation":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"LowerBound":{const r=HC("sortedSequence",e,t,n),i=HC("values",e,t,n);return[s.lowerBound(r,i)]}case"TopKV2":{const r=HC("x",e,t,n),i=HC("k",e,t,n),a=HC("sorted",e,t,n),o=s.topk(r,i,a);return[o.values,o.indices]}case"UpperBound":{const r=HC("sortedSequence",e,t,n),i=HC("values",e,t,n);return[s.upperBound(r,i)]}case"Unique":{const r=HC("x",e,t,n),i=s.unique(r);return[i.values,i.indices]}case"UniqueV2":{const r=HC("x",e,t,n),i=HC("axis",e,t,n),a=s.unique(r,i);return[a.values,a.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"image":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"ResizeBilinear":{const r=HC("images",e,t,n),i=HC("size",e,t,n),a=HC("alignCorners",e,t,n),o=HC("halfPixelCenters",e,t,n);return[s.image.resizeBilinear(r,[i[0],i[1]],a,o)]}case"ResizeNearestNeighbor":{const r=HC("images",e,t,n),i=HC("size",e,t,n),a=HC("alignCorners",e,t,n),o=HC("halfPixelCenters",e,t,n);return[s.image.resizeNearestNeighbor(r,[i[0],i[1]],a,o)]}case"CropAndResize":{const r=HC("image",e,t,n),i=HC("boxes",e,t,n),a=HC("boxInd",e,t,n),o=HC("cropSize",e,t,n),l=HC("method",e,t,n),u=HC("extrapolationValue",e,t,n);return[s.image.cropAndResize(r,i,a,o,l,u)]}case"ImageProjectiveTransformV3":{const r=HC("images",e,t,n),i=HC("transforms",e,t,n),a=HC("outputShape",e,t,n),o=HC("fillValue",e,t,n),l=HC("interpolation",e,t,n),u=HC("fillMode",e,t,n);return[s.image.transform(r,i,l.toLowerCase(),u.toLowerCase(),o,a)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"graph":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":const r=HC("default",e,t,n);return[KC(e.name,t,n)||r];case"Placeholder":return[KC(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":case"Snapshot":return[JC(HC("x",e,t,n))];case"IdentityN":return HC("x",e,t,n).map((e=>JC(e)));case"Shape":return[s.tensor1d(HC("x",e,t,n).shape,"int32")];case"ShapeN":return HC("x",e,t,n).map((e=>s.tensor1d(e.shape)));case"Size":return[s.scalar(HC("x",e,t,n).size,"int32")];case"Rank":return[s.scalar(HC("x",e,t,n).rank,"int32")];case"NoOp":return[s.scalar(1)];case"Print":const i=HC("x",e,t,n),a=HC("data",e,t,n);HC("message",e,t,n),HC("summarize",e,t,n);for(let e=0;e((e,t,n,s=k)=>{switch(e.op){case"Equal":return[s.equal(HC("a",e,t,n),HC("b",e,t,n))];case"NotEqual":return[s.notEqual(HC("a",e,t,n),HC("b",e,t,n))];case"Greater":return[s.greater(HC("a",e,t,n),HC("b",e,t,n))];case"GreaterEqual":return[s.greaterEqual(HC("a",e,t,n),HC("b",e,t,n))];case"Less":return[s.less(HC("a",e,t,n),HC("b",e,t,n))];case"LessEqual":return[s.lessEqual(HC("a",e,t,n),HC("b",e,t,n))];case"LogicalAnd":return[s.logicalAnd(HC("a",e,t,n),HC("b",e,t,n))];case"LogicalNot":return[s.logicalNot(HC("a",e,t,n))];case"LogicalOr":return[s.logicalOr(HC("a",e,t,n),HC("b",e,t,n))];case"Select":case"SelectV2":return[s.where(HC("condition",e,t,n),HC("a",e,t,n),HC("b",e,t,n))];case"BitwiseAnd":return[s.bitwiseAnd(HC("a",e,t,n),HC("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"matrices":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[s.matMul(HC("a",e,t,n),HC("b",e,t,n),HC("transposeA",e,t,n),HC("transposeB",e,t,n))];case"Einsum":return[s.einsum(HC("equation",e,t,n),...HC("tensors",e,t,n))];case"Transpose":return[s.transpose(HC("x",e,t,n),HC("perm",e,t,n))];case"_FusedMatMul":const[r,i]=HC("fusedOps",e,t,n),a="biasadd"===r,o="prelu"===i,l=HC("numArgs",e,t,n),u=HC("leakyreluAlpha",e,t,n);if(a){if(o&&2!==l)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&1!==l)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}const[c,h]=HC("args",e,t,n);return[s.fused.matMul({a:HC("a",e,t,n),b:HC("b",e,t,n),transposeA:HC("transposeA",e,t,n),transposeB:HC("transposeB",e,t,n),bias:c,activation:i,preluActivationWeights:h,leakyreluAlpha:u})];case"MatrixBandPart":return[s.linalg.bandPart(HC("a",e,t,n),HC("numLower",e,t,n),HC("numUpper",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"normalization":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"EuclideanNorm":return[s.euclideanNorm(HC("x",e,t,n),HC("axis",e,t,n),HC("keepDims",e,t,n))];case"FusedBatchNorm":case"FusedBatchNormV2":case"FusedBatchNormV3":return[s.batchNorm(HC("x",e,t,n),HC("mean",e,t,n),HC("variance",e,t,n),HC("offset",e,t,n),HC("scale",e,t,n),HC("epsilon",e,t,n))];case"LRN":return[s.localResponseNormalization(HC("x",e,t,n),HC("radius",e,t,n),HC("bias",e,t,n),HC("alpha",e,t,n),HC("beta",e,t,n))];case"Softmax":return[s.softmax(HC("x",e,t,n))];case"LogSoftmax":return[s.logSoftmax(HC("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"ragged":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"RaggedGather":{const{outputNestedSplits:r,outputDenseValues:i}=s.raggedGather(HC("paramsNestedSplits",e,t,n),HC("paramsDenseValues",e,t,n),HC("indices",e,t,n),HC("outputRaggedRank",e,t,n));return r.concat(i)}case"RaggedRange":{const{rtNestedSplits:r,rtDenseValues:i}=s.raggedRange(HC("starts",e,t,n),HC("limits",e,t,n),HC("splits",e,t,n));return[r,i]}case"RaggedTensorToTensor":return[s.raggedTensorToTensor(HC("shape",e,t,n),HC("values",e,t,n),HC("defaultValue",e,t,n),HC("rowPartitionTensors",e,t,n),HC("rowPartitionTypes",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"reduction":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"Max":{const r=HC("axis",e,t,n),i=HC("keepDims",e,t,n);return[s.max(HC("x",e,t,n),r,i)]}case"Mean":{const r=HC("axis",e,t,n),i=HC("keepDims",e,t,n);return[s.mean(HC("x",e,t,n),r,i)]}case"Min":{const r=HC("axis",e,t,n),i=HC("keepDims",e,t,n);return[s.min(HC("x",e,t,n),r,i)]}case"Sum":{const r=HC("axis",e,t,n),i=HC("keepDims",e,t,n);return[s.sum(HC("x",e,t,n),r,i)]}case"All":{const r=HC("axis",e,t,n),i=HC("keepDims",e,t,n);return[s.all(HC("x",e,t,n),r,i)]}case"Any":{const r=HC("axis",e,t,n),i=HC("keepDims",e,t,n);return[s.any(HC("x",e,t,n),r,i)]}case"ArgMax":{const r=HC("axis",e,t,n);return[s.argMax(HC("x",e,t,n),r)]}case"ArgMin":{const r=HC("axis",e,t,n);return[s.argMin(HC("x",e,t,n),r)]}case"Prod":{const r=HC("axis",e,t,n),i=HC("keepDims",e,t,n);return[s.prod(HC("x",e,t,n),r,i)]}case"Cumprod":{const r=HC("axis",e,t,n),i=HC("exclusive",e,t,n),a=HC("reverse",e,t,n);return[s.cumprod(HC("x",e,t,n),r,i,a)]}case"Cumsum":{const r=HC("axis",e,t,n),i=HC("exclusive",e,t,n),a=HC("reverse",e,t,n);return[s.cumsum(HC("x",e,t,n),r,i,a)]}case"Bincount":const r=HC("x",e,t,n),i=HC("weights",e,t,n),a=HC("size",e,t,n);return[s.bincount(r,i,a)];case"DenseBincount":{const r=HC("x",e,t,n),i=HC("weights",e,t,n),a=HC("size",e,t,n),o=HC("binaryOutput",e,t,n);return[s.denseBincount(r,i,a,o)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"slice_join":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"ConcatV2":case"Concat":{const r=HC("n",e,t,n),i=HC("axis",e,t,n);let a=HC("tensors",e,t,n);return a=a.slice(0,r),[s.concat(a,i)]}case"Gather":{const r=HC("x",e,t,n),i=HC("indices",e,t,n);return[s.gather(r,s.cast(i,"int32"),0)]}case"GatherV2":{const r=HC("axis",e,t,n),i=HC("batchDims",e,t,n),a=HC("x",e,t,n),o=HC("indices",e,t,n);return[s.gather(a,s.cast(o,"int32"),r,i)]}case"Reverse":{const r=HC("dims",e,t,n),i=[];for(let e=0;e{const r=HC("axis",e,t,n),i=HC("tensors",e,t,n),a=i[0].shape,o=s.squeeze(i[0]).shape,l=i.map((e=>{const t=$t(e.shape,a);if(!t&&!$t(s.squeeze(e).shape,o))throw new Error("the input tensors shape does not match");return t?e:s.reshape(e,a)}));return[s.stack(l,r)]}));case"Unpack":{const r=HC("axis",e,t,n),i=HC("tensor",e,t,n);return s.unstack(i,r)}case"Tile":{const r=HC("reps",e,t,n);return[s.tile(HC("x",e,t,n),r)]}case"Split":case"SplitV":{const r=HC("axis",e,t,n),i=HC("numOrSizeSplits",e,t,n),a=HC("x",e,t,n);return s.split(a,i,r)}case"ScatterNd":{const r=HC("indices",e,t,n),i=HC("values",e,t,n),a=HC("shape",e,t,n);return[s.scatterND(r,i,a)]}case"GatherNd":{const r=HC("x",e,t,n),i=HC("indices",e,t,n);return[s.gatherND(r,i)]}case"SparseToDense":{const r=HC("sparseIndices",e,t,n),i=HC("outputShape",e,t,n),a=HC("sparseValues",e,t,n),o=HC("defaultValue",e,t,n);return[s.sparseToDense(r,a,i,a.dtype===o.dtype?o:s.cast(o,a.dtype))]}case"TensorScatterUpdate":{const r=HC("indices",e,t,n),i=HC("values",e,t,n),a=HC("tensor",e,t,n);return[s.tensorScatterUpdate(a,r,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"sparse":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"SparseFillEmptyRows":{const{outputIndices:r,outputValues:i,emptyRowIndicator:a,reverseIndexMap:o}=s.sparse.sparseFillEmptyRows(HC("indices",e,t,n),HC("values",e,t,n),HC("denseShape",e,t,n),HC("defaultValue",e,t,n));return[r,i,a,o]}case"SparseReshape":{const{outputIndices:r,outputShape:i}=s.sparse.sparseReshape(HC("inputIndices",e,t,n),HC("inputShape",e,t,n),HC("newShape",e,t,n));return[r,i]}case"SparseSegmentMean":return[s.sparse.sparseSegmentMean(HC("data",e,t,n),HC("indices",e,t,n),HC("segmentIds",e,t,n))];case"SparseSegmentSum":return[s.sparse.sparseSegmentSum(HC("data",e,t,n),HC("indices",e,t,n),HC("segmentIds",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"spectral":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"FFT":return[s.fft(HC("x",e,t,n))];case"IFFT":return[s.ifft(HC("x",e,t,n))];case"RFFT":return[s.rfft(HC("x",e,t,n))];case"IRFFT":return[s.irfft(HC("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"string":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"StaticRegexReplace":return[s.string.staticRegexReplace(HC("input",e,t,n),HC("pattern",e,t,n),HC("rewrite",e,t,n),HC("replaceGlobal",e,t,n))];case"StringNGrams":{const{nGrams:r,nGramsSplits:i}=s.string.stringNGrams(HC("data",e,t,n),HC("dataSplits",e,t,n),HC("separator",e,t,n),HC("nGramWidths",e,t,n),HC("leftPad",e,t,n),HC("rightPad",e,t,n),HC("padWidth",e,t,n),HC("preserveShortSequences",e,t,n));return[r,i]}case"StringSplit":{const{indices:r,values:i,shape:a}=s.string.stringSplit(HC("input",e,t,n),HC("delimiter",e,t,n),HC("skipEmpty",e,t,n));return[r,i,a]}case"StringToHashBucketFast":return[s.string.stringToHashBucketFast(HC("input",e,t,n),HC("numBuckets",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"transformation":return r((()=>((e,t,n,s=k)=>{switch(e.op){case"Cast":return[s.cast(HC("x",e,t,n),HC("dtype",e,t,n))];case"ExpandDims":{const r=HC("axis",e,t,n);return[s.expandDims(HC("x",e,t,n),r)]}case"Squeeze":{const r=HC("axis",e,t,n);return[s.squeeze(HC("x",e,t,n),r)]}case"Reshape":return[s.reshape(HC("x",e,t,n),HC("shape",e,t,n))];case"EnsureShape":return[s.ensureShape(HC("x",e,t,n),HC("shape",e,t,n))];case"MirrorPad":return[s.mirrorPad(HC("x",e,t,n),HC("padding",e,t,n),HC("mode",e,t,n))];case"PadV2":case"Pad":return[s.pad(HC("x",e,t,n),HC("padding",e,t,n),HC("constantValue",e,t,n))];case"SpaceToBatchND":{const r=HC("blockShape",e,t,n),i=HC("paddings",e,t,n);return[s.spaceToBatchND(HC("x",e,t,n),r,i)]}case"BatchToSpaceND":{const r=HC("blockShape",e,t,n),i=HC("crops",e,t,n);return[s.batchToSpaceND(HC("x",e,t,n),r,i)]}case"DepthToSpace":{const r=HC("blockSize",e,t,n),i=HC("dataFormat",e,t,n).toUpperCase();return[s.depthToSpace(HC("x",e,t,n),r,i)]}case"BroadcastTo":return[s.broadcastTo(HC("x",e,t,n),HC("shape",e,t,n))];case"BroadcastArgs":return[s.broadcastArgs(HC("s0",e,t,n),HC("s1",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"hash_table":return(async(e,t,n,s)=>{switch(e.op){case"HashTable":case"HashTableV2":{const r=s.getHashTableHandleByName(e.name);if(null!=r)return[r];{const r=HC("keyDType",e,t,n),i=HC("valueDType",e,t,n),a=new Gk(r,i);return s.addHashTable(e.name,a),[a.handle]}}case"InitializeTable":case"InitializeTableV2":case"LookupTableImport":case"LookupTableImportV2":{const r=HC("tableHandle",e,t,n,s),i=HC("keys",e,t,n),a=HC("values",e,t,n),o=s.getHashTableById(r.id);return[await o.import(i,a)]}case"LookupTableFind":case"LookupTableFindV2":{const r=HC("tableHandle",e,t,n,s),i=HC("keys",e,t,n),a=HC("defaultValue",e,t,n),o=s.getHashTableById(r.id);return[await o.find(i,a)]}case"LookupTableSize":case"LookupTableSizeV2":{const r=HC("tableHandle",e,t,n,s);return[s.getHashTableById(r.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n,s);case"custom":const i=qC(e.op);if(i&&i.customExecutor)return i.customExecutor(new Mk(e,t,n));throw TypeError(`Custom op ${e.op} is not registered.`);default:throw TypeError(`Unknown op '${e.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,n);return xn(i)?i.then((e=>[].concat(e))):[].concat(i)}class Hk{constructor(e={},t={},n={},s={},r){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=s,this.parseNodeNameCache=r,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){const e=[];for(let t=0;t0===e.id&&0===e.iterationId?"":`${e.frameName}-${e.iterationId}`)).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(!(this.contexts&&this.contexts.length>1))throw new Error("Cannot exit frame, the context is empty");this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift()}nextIteration(){if(!(this.contexts&&this.contexts.length>0))throw new Error("Cannot increase frame iteration, the context is empty");{this.contexts=this.contexts.slice(),this.lastId++;const e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(const t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(const t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}}function Kk(e,t,n,s){const r=new Set,i=[];let a=null,o=null;const l=new Set,u=new Set(Object.keys(e).map((e=>YC(e)[0])));s=s||[];const c=new Set(s.map((e=>YC(e.name)[0]))),h=[...t];for(;h.length>0;){const e=h.pop();(Jk(e)||eS(e)||tS(e))&&null==a&&(a=e,o=a.children.map((e=>e.name)).filter((e=>r.has(e)))),r.add(e.name),null==n[e.name]&&(u.has(e.name)||c.has(e.name)||(0!==e.inputs.length?e.inputs.forEach((e=>{l.has(e.name)||(l.add(e.name),h.push(e))})):i.push(e.name)))}return{inputs:e,outputs:t,usedNodes:r,missingInputs:i,dynamicNode:a,syncInputs:o}}function $k(e,t){const{usedNodes:n,inputs:s}=t,r=Object.keys(s).map((e=>YC(e)[0])).map((t=>e.nodes[t])),i=e.initNodes||[],a=e=>n.has("string"==typeof e?e:e.name);function o(e){return[...new Map(e.map((e=>[e.name,e]))).values()]}const l=o([...r,...e.weights,...i]).filter(a),u=o([...l,...Object.values(e.nodes)]).filter(a),c=new Map(u.map((e=>[e.name,e]))),h={};for(const e of u){h[e.name]=h[e.name]||0;for(const t of e.children)a(t)||(h[t.name]=Number.POSITIVE_INFINITY),h[t.name]=(h[t.name]||0)+1}const d=Object.entries(h).filter((([,e])=>0===e)).map((([e])=>e)),p=[...d];for(;d.length>0;){const e=d.pop(),t=c.get(e);for(const e of t.children.filter(a))0==--h[e.name]&&(p.push(e.name),d.push(e.name))}const f=function(e,t){const n=new Map(e.map((e=>[e.name,e]))),s=t.map((e=>e.name)),r=new Set(s);for(;s.length>0;){const e=s.pop(),t=n.get(e);for(const e of t.children)n.has(e.name)&&!r.has(e.name)&&(r.add(e.name),s.push(e.name))}const i=e.filter((e=>r.has(e.name)));return i}(p.map((e=>c.get(e))),l);return function(e,t){const n=new Map(e.map(((e,t)=>[e.name,t]))),s=new Set(t.map((e=>e.name))),r=e=>s.has("string"==typeof e?e:e.name),i=new Set(e.map((e=>e.name))),a=e=>i.has("string"==typeof e?e:e.name);for(const t of e){for(const e of t.children.filter(a)){if(!n.has(e.name))throw new Xk(`Child ${e.name} of node ${t.name} is unreachable.`);if(n.get(t.name)>n.get(e.name))throw new Xk(`Node ${t.name} is scheduled to run after its child ${e.name}.`)}if(!r(t))for(const e of t.inputs){if(!n.has(e.name))throw new Xk(`Input ${e.name} of node ${t.name} is unreachable.`);if(n.get(e.name)>n.get(t.name))throw new Xk(`Node ${t.name} is scheduled to run before its input ${e.name}.`)}}}(f,l),f}class Xk extends Error{constructor(e){super(`NodesExecutionOrderError: ${e}`)}}const Zk=new Set(["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"]),Yk=new Set(["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"]),Qk=new Set(["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"]);function Jk(e){return Zk.has(e.op)}function eS(e){return Yk.has(e.op)}function tS(e){return Qk.has(e.op)}class nS{get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){const t=Object.keys(e).map((t=>e[t].map((e=>e.id))));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map((e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0})))}get outputs(){return this._outputs.map((e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0})))}get inputNodes(){return this._inputs.map((e=>e.signatureKey||e.name))}get outputNodes(){return this._outputs.map((e=>{const t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t}))}get functions(){return Object.keys(this._functions).reduce(((e,t)=>(e[t]=this._functions[t].signature,e)),{})}constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this.parseNodeNameCache=new Map,this._weightMap={},this.SEPARATOR=",",this._functions={},this._functionExecutorMap={},this.keepIntermediateTensors=!1,this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,null!=e.functions&&Object.keys(e.functions).forEach((t=>{this._functionExecutorMap[t]=new nS(e.functions[t],this)}))}getCompilationKey(e,t){const n=e.map((e=>e.name)).sort(),s=t.map((e=>e.name)).sort();return n.join(this.SEPARATOR)+"--"+s.join(this.SEPARATOR)}compile(e,t){const n=Kk(e,t,this.weightMap,this._initNodes),{missingInputs:s,dynamicNode:r,syncInputs:i}=n;if(null!=r)throw new Error(`This execution contains the node '${r.name}', which has the dynamic op '${r.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${i}]`);if(s.length>0){const n=t.map((e=>e.name)),r=Object.keys(e);throw new Error(`Cannot compute the outputs [${n}] from the provided inputs [${r}]. Missing the following inputs: [${s}]`)}const a=$k(this.graph,n),o=function(e){const t=new Map(e.map(((e,t)=>[e.name,t]))),n=Number.MAX_SAFE_INTEGER,s=e.map(((e,t)=>Jk(e)?n:t)),r=e=>{const n=s[t.get(e.name)];return null==n?-1:n},i=e.map(((e,t)=>e.children.map(r).reduce(((e,t)=>Math.max(e,t)),s[t]))),a=new Map;for(let t=0;tthis.cloneAndKeepTensor(e)));return t}cloneTensorMap(e){return Object.fromEntries(Object.entries(e).map((([e,t])=>[e,this.cloneTensorList(t)])))}execute(e,t){this.disposeIntermediateTensors(),e=this.mapInputs(e);const n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);const s=n.map((e=>this.graph.nodes[YC(e)[0]])),r=t.map((e=>YC(e)[0])),i=new Set(r);let a=r.map((e=>this.graph.nodes[e]));0===a.length&&(a=this._outputs);const o=this.getCompilationKey(s,a);let l=this.compiledMap.get(o);null==l&&(l=this.compile(e,a),this.compiledMap.set(o,l));try{this.keepIntermediateTensors=Sn().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(e){this.keepIntermediateTensors=!1}const u={},c={};return Ao((()=>{const n=new Hk(this.weightMap,u,c,this.functionExecutorMap,this.parseNodeNameCache),s=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(e).forEach((t=>{const[r,i]=YC(t,n),a=[];a[i]=e[t],s[r]=a,this.keepIntermediateTensors&&(this.clonedTensorsMap[r]=this.cloneTensorList(a))}));const r=this.getFrozenTensorIds(s),{orderedNodes:a,nodeLiveUntilMap:o}=l;for(const e of a){if(s[e.name])continue;const t=qk(e,s,n,this._resourceManager);if(xn(t))throw new Error(`The execution of the op '${e.op}' returned a promise. Please use model.executeAsync() instead.`);s[e.name]=t,this.keepIntermediateTensors&&(this.clonedTensorsMap[e.name]=this.cloneTensorList(t)),this.checkTensorForDisposalWithNodeLiveUntilInfo(e,s,n,r,i,o.get(e.name))}return null==this.parent&&n.dispose(r),t.map((e=>KC(e,s,n)))}))}getFrozenTensorIds(e){const t=[].concat.apply([],Object.keys(e).map((t=>e[t])).map((e=>e.map((e=>e.id)))));return new Set(t)}checkTensorForDisposal(e,t,n,s,r,i,a){if(!Jk(t)&&!i.has(e)){for(const s of n[e])null!=s&&(a[s.id]=(a[s.id]||0)+t.children.length);for(const e of t.inputs){if(Jk(e))continue;const t=$C(e.name,n,s);if(null!=t)for(const e of t){if(!e||e.kept||r.has(e.id))continue;const t=a[e.id];1===t?(e.dispose(),delete a[e.id]):null!=t&&a[e.id]--}}}}checkTensorForDisposalWithNodeLiveUntilInfo(e,t,n,s,r,i){function a(e){return Jk(e)||r.has(e.name)}if(!Jk(e)&&null!=i)for(const e of i){if(a(e))continue;const r=$C(e.name,t,n);for(const e of r)!e||e.kept||s.has(e.id)||e.dispose()}}async executeAsync(e,t){return this._executeAsync(e,t)}disposeIntermediateTensors(){this.clonedTensorsMap&&(Object.values(this.clonedTensorsMap).forEach((e=>{for(const t of e)t&&!t.isDisposed&&t.dispose()})),this.clonedTensorsMap=null)}getIntermediateTensors(){return this.clonedTensorsMap}async _executeAsync(e,t,n=!1,s={},r={}){this.disposeIntermediateTensors(),n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));try{this.keepIntermediateTensors=Sn().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(e){this.keepIntermediateTensors=!1}const i=new Hk(this.weightMap,s,r,this.functionExecutorMap,this.parseNodeNameCache);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));const a=await this.executeWithControlFlow(e,i,t,n),o=t.map((e=>KC(e,a,i))),l=o.map((e=>e.id)),u=Object.keys(e).map((t=>e[t].id)),c=new Set([...l,...u,...this.weightIds]);return Object.values(a).forEach((e=>{e.forEach((e=>{!e||e.isDisposed||c.has(e.id)||e.dispose()}))})),null==this.parent&&i.dispose(c),o}async executeFunctionAsync(e,t,n){const s=e.reduce(((e,t,n)=>(e[this.inputs[n].name]=t,e)),{});return this._executeAsync(s,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,s){const r=Object.keys(e),i=r.map((e=>this.graph.nodes[YC(e)[0]])),a=n.map((e=>YC(e)[0])),o=new Set(a);let l=a.map((e=>this.graph.nodes[e]));0===l.length&&(l=this._outputs);const{usedNodes:u,missingInputs:c,dynamicNode:h,syncInputs:d}=Kk(e,l,this.weightMap,this._initNodes),p=[...i,...this.graph.weights,...this._initNodes||[]].map((e=>({node:e,contexts:t.currentContext}))),f=Object.assign({},this.weightMap);Object.keys(e).forEach((t=>{const[n,s]=YC(t),r=[];r[s]=e[t],f[n]=r}));const m={},g=this.getFrozenTensorIds(f),y={};for(;p.length>0;){const e=this.processStack(i,p,t,f,y,g,o,m,u);await Promise.all(e)}const b=l.filter((e=>!Jk(e)&&!KC(e.name,f,t))).map((e=>e.name));if(b.length>0){let e="";throw null!=h&&(e=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${d}]`),new Error(`Cannot compute the outputs [${b}] from the provided inputs [${r}]. Consider providing the following inputs: [${c}]. ${e}`)}return f}processStack(e,t,n,s,r,i,a,o,l){const u=[];for(;t.length>0;){const e=t.pop();n.currentContext=e.contexts;let c="";if("Enter"===e.node.op&&HC("isConstant",e.node,s,n)&&([c]=XC(e.node.name,n)),null==s[e.node.name]){const h=qk(e.node,s,n,this._resourceManager);c||([c]=XC(e.node.name,n));const d=n.currentContext;xn(h)?u.push(h.then((u=>(s[c]=u,this.keepIntermediateTensors&&(this.clonedTensorsMap[c]=this.cloneTensorList(u)),n.currentContext=d,this.checkTensorForDisposal(c,e.node,s,n,i,a,o),this.processChildNodes(e.node,t,n,s,r,l),u)))):(s[c]=h,this.keepIntermediateTensors&&(this.clonedTensorsMap[c]=this.cloneTensorList(h)),this.checkTensorForDisposal(c,e.node,s,n,i,a,o),this.processChildNodes(e.node,t,n,s,r,l))}else this.processChildNodes(e.node,t,n,s,r,l)}return u}processChildNodes(e,t,n,s,r,i){e.children.forEach((e=>{const[a]=XC(e.name,n);!r[a]&&i.has(e.name)&&("Merge"===e.op?e.inputNames.some((e=>!!KC(e,s,n)))&&(r[a]=!0,t.push({contexts:n.currentContext,node:e})):e.inputNames.every((e=>!!KC(e,s,n)))&&(r[a]=!0,t.push({contexts:n.currentContext,node:e})))}))}dispose(){Object.keys(this.weightMap).forEach((e=>this.weightMap[e].forEach((e=>e.dispose()))))}checkInputShapeAndType(e){Object.keys(e).forEach((t=>{const n=e[t],[s]=YC(t),r=this.graph.nodes[s];if(r.attrParams.shape&&r.attrParams.shape.value){const e=r.attrParams.shape.value;Gt(e.length===n.shape.length&&n.shape.every(((t,n)=>-1===e[n]||e[n]===t)),(()=>`The shape of dict['${r.name}'] provided in model.execute(dict) must be [${e}], but was [${n.shape}]`))}r.attrParams.dtype&&r.attrParams.dtype.value&&Gt(n.dtype===r.attrParams.dtype.value,(()=>`The dtype of dict['${r.name}'] provided in model.execute(dict) must be ${r.attrParams.dtype.value}, but was ${n.dtype}`))}))}mapInputs(e){var t,n;const s={};for(const r in e){const i=null===(n=null===(t=this._signature)||void 0===t?void 0:t.inputs)||void 0===n?void 0:n[r];null!=i?s[i.name]=e[r]:s[r]=e[r]}return s}checkInputs(e){const t=Object.keys(e).filter((e=>{const[t]=YC(e);return null==this.graph.nodes[t]}));if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map((e=>{var t,n;const s=null===(n=null===(t=this._signature)||void 0===t?void 0:t.outputs)||void 0===n?void 0:n[e];return null!=s?s.name:e}),{})}checkOutputs(e){e.forEach((e=>{const[t]=YC(e);if(!this.graph.nodes[t])throw new Error(`The output '${e}' is not found in the graph`)}))}}class sS{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(const e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(const e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}}const rS="?tfjs-format=file",iS="model.json";class aS{get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}get modelStructuredOutputKeys(){return this.structuredOutputKeys}constructor(t,n={},s=e){this.modelUrl=t,this.loadOptions=n,this.version="n/a",this.io=s,null==n&&(this.loadOptions={}),this.resourceManager=new sS}findIOHandler(){const e=this.modelUrl;if(null!=e.load)this.handler=e;else if(null!=this.loadOptions.requestInit)this.handler=this.io.browserHTTPRequest(e,this.loadOptions);else{const t=this.io.getLoadHandlers(e,this.loadOptions);if(0===t.length)t.push(this.io.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}load(){if(this.findIOHandler(),null==this.handler.load)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const e=this.handler.load();return xn(e)?e.then((e=>null==e.getWeightStream?this.loadSync(e):this.loadStreaming(e))):this.loadSync(e)}loadSync(e){const t=this.io.decodeWeights(e.weightData,e.weightSpecs);return this.loadWithWeightMap(e,t)}async loadStreaming(e){if(null==e.getWeightStream)throw new Error("Model artifacts missing streamWeights function");const t=await Mo(e.getWeightStream(),e.weightSpecs);return this.loadWithWeightMap(e,t)}loadWithWeightMap(e,t){this.artifacts=e;const n=this.artifacts.modelTopology;let s=this.artifacts.signature;if(null!=this.artifacts.userDefinedMetadata){const e=this.artifacts.userDefinedMetadata;null!=e.signature&&(s=e.signature),null!=e.structuredOutputKeys&&(this.structuredOutputKeys=e.structuredOutputKeys)}if(this.signature=s,this.version=`${n.versions.producer}.${n.versions.minConsumer}`,this.executor=new nS(wk.Instance.transformGraph(n,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(t),this.executor.resourceManager=this.resourceManager,null!=e.modelInitializer&&null!=e.modelInitializer.node){const t=wk.Instance.transformGraph(e.modelInitializer);this.initializer=new nS(t),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=e.initializerSignature}return!0}async save(e,t){if("string"==typeof e){const t=this.io.getSaveHandlers(e);if(0===t.length)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(t.length>1)throw new Error(`Found more than one (${t.length}) save handlers for URL '${e}'`);e=t[0]}if(null==e.save)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}addStructuredOutputNames(e){if(this.structuredOutputKeys){const t={};return(e instanceof Ma?[e]:e).forEach(((e,n)=>t[this.structuredOutputKeys[n]]=e)),t}return e}predict(e,t){const n=this.execute(e,this.outputNodes);return this.addStructuredOutputNames(n)}async predictAsync(e,t){const n=await this.executeAsync(e,this.outputNodes);return this.addStructuredOutputNames(n)}normalizeInputs(e){var t;if(!(e instanceof Ma||Array.isArray(e))){const n=null===(t=this.signature)||void 0===t?void 0:t.inputs;if(null!=n)for(const t in n){const s=n[t];null!=s.resourceId&&(e[t]=this.resourceIdToCapturedInput[s.resourceId])}return e}e=Array.isArray(e)?e:[e];const n=Object.keys(this.resourceIdToCapturedInput).length;if(e.length+n!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-n} non-resource placeholders, while there are ${e.length} input tensors provided.`);let s=0;return this.inputNodes.reduce(((t,n)=>{var r,i,a;const o=null===(a=null===(i=null===(r=this.signature)||void 0===r?void 0:r.inputs)||void 0===i?void 0:i[n])||void 0===a?void 0:a.resourceId;return t[n]=null!=o?this.resourceIdToCapturedInput[o]:e[s++],t}),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}executeInitializerGraph(){return null==this.initializer?[]:null==this.initializerSignature?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return null==this.initializer?[]:null==this.initializerSignature?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(e){if(this.resourceIdToCapturedInput={},this.initializerSignature){const t=this.initializerSignature.outputs,n=Object.keys(t);for(let s=0;s1?n:n[0]}async executeAsync(e,t){null==this.resourceIdToCapturedInput&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce(((t,n)=>(t[n]=[e[n]],t)),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&Co(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}}async function oS(t,n={},s=e){if(null==t)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");null==n&&(n={}),n.fromTFHub&&"string"==typeof t&&(t=function(e){e.endsWith("/")||(e+="/");return`${e}${iS}${rS}`}(t));const r=new aS(t,n,s);return await r.load(),r}function lS(e,t,n=new Map,s=new Set){if(null==e)return null;if("function"==typeof Blob&&e instanceof Blob)return e.slice();if(s.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);const r=t(e);if(r.recurse&&null!==r.value)throw new Error("A deep map function may not return both a value and recurse=true.");if(r.recurse){if(dS(e)){const r=Array.isArray(e)?[]:{};s.add(e);for(const i in e){const a=lS(e[i],t,n,s);r[i]=a}return s.delete(e),e.__proto__&&(r.__proto__=e.__proto__),r}throw new Error(`Can't recurse into non-iterable type: ${e}`)}return n.set(e,r.value),r.value}function uS(e,t=hS){return cS(e,t)}function cS(e,t,n=new Set){const s=e[0];if(n.has(s))throw new Error("Circular references are not supported.");const r=t(e);if(r.recurse&&null!==r.value)throw new Error("A deep zip function may not return both a value and recurse=true.");if(r.recurse){if(dS(s)){const r=Array.isArray(s)?[]:{};n.add(s);for(const i in s){const s=cS(e.map((e=>e[i])),t,n);r[i]=s}return n.delete(s),r}throw new Error(`Can't recurse into non-iterable type: ${s}`)}return r.value}function hS(e){return null===e?null:dS(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}function dS(e){let t=!1;if(Sn().get("IS_BROWSER"))t=e instanceof TextDecoder;else{const{StringDecoder:n}=__webpack_require__(7695);t=e instanceof n}return null!=e&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||"object"==typeof e&&!(e instanceof Ma)&&!(e instanceof Promise)&&!t)}function pS(e){return function(e,t){return lS(e,t)}(e,fS)}function fS(e){return e instanceof Ma?{value:e.clone(),recurse:!1}:dS(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}class mS{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,null==e)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return 0===this.length()}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(const t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);const e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");const e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");const t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}}class gS extends mS{constructor(){super(gS.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){const e=2*this.capacity,t=new Array(e),n=this.length();for(let e=0;e!0===e))}rowMajorBatch(e,t=!0){return new SS(this,e,t)}columnMajorBatch(e,t=!0,n=hS){return this.rowMajorBatch(e,t).map((e=>uS(e,n)))}concatenate(e,t){return new OS(new vS([this,e]),t)}take(e){return e<0||null==e?this:new kS(this,e)}skip(e){return e<0||null==e?this:new CS(this,e)}prefetch(e){return new MS(this,e)}shuffle(e,t){return new zS(this,e,t)}serial(){return new AS(this)}}class vS extends wS{constructor(e){super(),this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};const e=this.items[this.trav];return this.trav++,{value:pS(e),done:!1}}}class xS extends wS{constructor(e){super(),this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}}class AS extends wS{constructor(e){super(),this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){return this.upstream.next()}}class CS extends wS{constructor(e,t){super(),this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}}class SS extends wS{constructor(e,t,n=!0){super(),this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){const e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}}class _S extends wS{constructor(e,t){super(),this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;;){const e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;Co(e.value)}}}class ES extends wS{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){const e=await this.upstream.next();if(e.done)return{value:null,done:!0};const t=Xa(e.value),n=this.transform(e.value),s=Xa(n);for(const e of t)$a(e,s)||e.dispose();return{value:n,done:!1}}}class IS extends wS{constructor(e,t){super(),this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}}class TS extends wS{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){const e=await this.upstream.next();if(e.done)return{value:null,done:!0};const t=Xa(e.value),n=await this.transform(e.value),s=Xa(n);for(const e of t)$a(e,s)||e.dispose();return{value:n,done:!1}}}class NS extends wS{constructor(){super(),this.outputQueue=new gS,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;0===this.outputQueue.length();)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}}class RS extends NS{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){const e=await this.upstream.next();if(e.done)return!1;const t=Xa(e.value),n=this.transform(e.value),s=Xa(n);this.outputQueue.pushAll(n);for(const e of t)$a(e,s)||e.dispose();return!0}}class OS extends wS{constructor(e,t){super(),this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,null==this.iterator){const e=await this.moreIterators.next();if(e.done)return{value:null,done:!0};this.iterator=e.value,null!=this.baseErrorHandler&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}const t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}}var DS;!function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"}(DS||(DS={}));class MS extends wS{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new mS(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){const e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}}class zS extends MS{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=qd.alea(n||fa().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){const e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(!t.done)return this.refill(),t;this.upstreamExhausted=!0}return{value:null,done:!0}}}class FS{constructor(){this.size=null}batch(e,t=!0){const n=this;let s;return Gt(e>0,(()=>`batchSize needs to be positive, but it is\n ${e}`)),s=this.size===1/0||null==this.size?this.size:t?Math.ceil(this.size/e):Math.floor(this.size/e),BS((async()=>(await n.iterator()).columnMajorBatch(e,t,LS)),s)}concatenate(e){const t=this;let n;return n=this.size===1/0||e.size===1/0?1/0:null!=this.size&&null!=e.size?this.size+e.size:null,BS((async()=>(await t.iterator()).concatenate(await e.iterator())),n)}filter(e){const t=this;let n;return n=this.size===1/0?1/0:null,BS((async()=>(await t.iterator()).filter((t=>Ao((()=>e(t)))))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){const t=this;return BS((async()=>(await t.iterator()).map((t=>Ao((()=>e(t)))))),this.size)}mapAsync(e){const t=this;return BS((async()=>(await t.iterator()).mapAsync(e)),this.size)}prefetch(e){if(null==e)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");const t=this;return BS((async()=>(await t.iterator()).prefetch(e)),this.size)}repeat(e){const t=this;let n;return n=null!=this.size&&e>0?this.size*e:0===e?0:null!=this.size&&(void 0===e||e<0)?1/0:null,BS((async()=>bS(yS((async()=>({value:await t.iterator(),done:!1}))).take(e))),n)}skip(e){const t=this;let n;return n=null!=this.size&&e>=0&&this.size>=e?this.size-e:null!=this.size&&(this.size(await t.iterator()).skip(e)),n)}shuffle(e,t,n=!0){if(null==e||e<0)throw null==this.size?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);const s=this,r=qd.alea(t||fa().toString());return BS((async()=>{let t=r.int32();return n&&(t+=r.int32()),(await s.iterator()).shuffle(e,t.toString())}),this.size)}take(e){const t=this;let n;return n=null!=this.size&&this.size>e?e:null!=this.size&&this.size<=e?this.size:null,BS((async()=>(await t.iterator()).take(e)),n)}async toArray(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}}function BS(e,t=null){return new class extends FS{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function LS(e){if(null===e)return null;const t=e[0];if(null==(n=t)||null===(s=n)||"object"!=typeof s&&"function"!=typeof s||Array.isArray(n)||"object"==typeof n&&n instanceof Ma||ya(n)){return{value:function(e){if(0===e.length)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Ma?Np(e):yo(e)}(e),recurse:!1}}var n,s;return{value:null,recurse:!0}}FS.MAX_BUFFER_SIZE=1e4;Symbol("out"),Symbol("field"),Symbol("quote"),Symbol("quoteafterquote"),Symbol("quoteinquote");function PS(e,t){Array.isArray(e)||(e=[e]),e.forEach((e=>{null!=e&&Gt("complex64"!==e.dtype,(()=>`${t} does not support complex64 tensors in the CPU backend.`))}))}const US=Zp;class VS extends Lt{nextDataId(){return VS.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new Bt(this,vo())}write(e,t,n){this.firstUse&&(this.firstUse=!1,Sn().get("IS_NODE")&&Vi());const s={id:this.nextDataId()};return this.data.set(s,{values:e,dtype:n,refCount:1}),s}makeTensorInfo(e,t,n){let s;if("string"===t&&null!=n&&n.length>0&&on(n[0])){const r=n.map((e=>ma(e)));s=this.write(r,e,t)}else s=this.write(n,e,t);return{dataId:s,shape:e,dtype:t}}refCount(e){if(this.data.has(e)){return this.data.get(e).refCount}return 0}incRef(e){this.data.get(e).refCount++}decRef(e){if(this.data.has(e)){this.data.get(e).refCount--}}move(e,t,n,s,r){this.data.set(e,{values:t,dtype:s,refCount:r})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){const{dtype:t,complexTensorInfos:n}=this.data.get(e);if("complex64"===t){return Zm(this.readSync(n.real.dataId),this.readSync(n.imag.dataId))}return function(e,t){if(Array.isArray(e))return e;if("float32"===t)return e instanceof Float32Array?e:new Float32Array(e);if("int32"===t)return e instanceof Int32Array?e:new Int32Array(e);if("bool"===t||"string"===t)return Uint8Array.from(new Int32Array(e));throw new Error(`Unknown dtype ${t}`)}(this.data.get(e).values,t)}bufferSync(e){const t=this.readSync(e.dataId);if("string"===e.dtype)try{const n=t.map((e=>ga(e)));return Tl(e.shape,e.dtype,n)}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return Tl(e.shape,e.dtype,t)}makeOutput(e,t,n){return vo().makeTensorFromTensorInfo(this.makeTensorInfo(t,n,e),this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;const{complexTensorInfos:n}=this.data.get(e);null!=n&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){const t=fa();e();return{kernelMs:fa()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){PS([e],"where");const t=this.readSync(e.dataId);return US(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}}VS.nextDataId=0;function WS(e){return(t,n,s)=>{const r=sn(n,t.length);for(let n=0;n{const{x:a}=s;PS(a,e);const o=i,l=o.data.get(a.dataId).values;let u;if("string"===a.dtype){if(!Array.isArray(l))throw new Error("String tensor's value was not an instance of Array");u=Ng(l)}else u=l;const c=n||a.dtype,h=t(u,c,r);return o.makeTensorInfo(a.shape,c,h)}}So("cpu",(()=>new VS),1);const qS=jS(Is,(e=>e>=0?e:Math.exp(e)-1)),HS={kernelName:Is,backendName:"cpu",kernelFunc:qS};function KS(e){const{inputs:t,backend:n}=e,{x:s}=t;return n.incRef(s.dataId),{dataId:s.dataId,shape:s.shape,dtype:s.dtype}}const $S={kernelName:qs,backendName:"cpu",kernelFunc:KS};function XS(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{alpha:i}=s;PS([r],"leakyRelu");const a=Kt(r.shape),o=n.data.get(r.dataId).values,l=nn("float32",a);for(let e=0;e{const a=su(t,n),o=a.length,l=dn(a),u=nn(i,Kt(a)),c=t.length,h=n.length,d=dn(t),p=dn(n),f=tu(t,a),m=tu(n,a);if(f.length+m.length===0)for(let t=0;ti[e]=0));const a=wn(i,c,d),g=n.slice(-h);m.forEach((e=>g[e]=0));const y=wn(g,h,p);u[t]=e(s[a],r[y])}return[u,a]}}const QS=YS(((e,t)=>e<0?t*e:e));function JS(e){const{inputs:t,backend:n}=e,{x:s,alpha:r}=t;PS([s,r],"prelu");const i=n.data.get(s.dataId).values,a=n.data.get(r.dataId).values,[o,l]=QS(s.shape,r.shape,i,a,"float32");return n.makeTensorInfo(l,"float32",o)}const e_={kernelName:Or,backendName:"cpu",kernelFunc:JS},t_=jS(Ur,(e=>Math.max(0,e))),n_={kernelName:Ur,backendName:"cpu",kernelFunc:t_},s_=jS(Hr,(e=>Math.min(Math.max(0,e),6))),r_={kernelName:Hr,backendName:"cpu",kernelFunc:s_},i_=WS((e=>1/(1+Math.exp(-e)))),a_=jS(ii,(e=>1/(1+Math.exp(-e)))),o_={kernelName:ii,backendName:"cpu",kernelFunc:a_};function l_(e,t,n,s,r){if("linear"===n)return KS({inputs:{x:t},backend:e});if("relu"===n)return t_({inputs:{x:t},backend:e});if("elu"===n)return qS({inputs:{x:t},backend:e});if("relu6"===n)return s_({inputs:{x:t},backend:e});if("prelu"===n)return JS({inputs:{x:t,alpha:s},backend:e});if("leakyrelu"===n)return XS({inputs:{x:t},backend:e,attrs:{alpha:r}});if("sigmoid"===n)return a_({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function u_(e){const{inputs:t,backend:n}=e,{real:s,imag:r}=t,i=n.data.get(s.dataId).values,a=n.data.get(r.dataId).values,o=n.makeTensorInfo(s.shape,"complex64");return n.data.get(o.dataId).complexTensorInfos={real:n.makeTensorInfo(s.shape,"float32",i),imag:n.makeTensorInfo(r.shape,"float32",a)},o}const c_={kernelName:ns,backendName:"cpu",kernelFunc:u_};function h_(e,t,n="float32"){if("complex64"===n){return u_({inputs:{real:h_(e,t,"float32"),imag:h_(e,t,"float32")},backend:e})}const s=gn(Kt(t),n);return e.makeTensorInfo(t,n,s)}function d_(e){const{inputs:t,backend:n}=e,{input:s}=t,r=n.data.get(s.dataId).complexTensorInfos.real,i=n.data.get(r.dataId).values;return n.makeTensorInfo(r.shape,r.dtype,i)}const p_={kernelName:Lr,backendName:"cpu",kernelFunc:d_};function f_(e,t,n,s){if("int32"===s){return[t,"int32",Int32Array.from(e)]}if("bool"===s){const s=pa([0],n),[r,i]=YS(((e,t)=>e!==t?1:0))(t,[],e,s,"bool");return[i,"bool",r]}throw new Error(`Error in Cast: failed to cast ${n} to ${s}`)}function m_(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{dtype:i}=s;if("complex64"===i){if("complex64"===r.dtype)return KS({inputs:{x:r},backend:n});const e=h_(n,r.shape,r.dtype),t=m_({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),s=u_({inputs:{real:t,imag:e},backend:n});return n.disposeIntermediateTensorInfo(e),n.disposeIntermediateTensorInfo(t),s}if("complex64"===r.dtype){const e=d_({inputs:{input:r},backend:n}),t=m_({inputs:{x:e},backend:n,attrs:{dtype:i}});return n.disposeIntermediateTensorInfo(e),t}if(!rn(r.dtype,i)){const e=KS({inputs:{x:r},backend:n});return{dataId:e.dataId,shape:e.shape,dtype:i}}const a=n.data.get(r.dataId).values,[o,l,u]=f_(a,r.shape,r.dtype,i);return n.makeTensorInfo(o,l,u)}const g_={kernelName:Jn,backendName:"cpu",kernelFunc:m_};function y_(e,t,n,s){return null==n?({inputs:n,backend:r})=>{const{a:i,b:a}=n,o=r;PS([i,a],e);const l=o.data.get(i.dataId).values,u=o.data.get(a.dataId).values,c="string"===i.dtype?Ng(l):l,h="string"===i.dtype?Ng(u):u,d=s||i.dtype,[p,f]=t(i.shape,a.shape,c,h,d);return o.makeTensorInfo(f,d,p)}:({inputs:e,backend:r})=>{const{a:i,b:a}=e,o=r;if("complex64"===i.dtype||"complex64"===a.dtype){const e=m_({inputs:{x:i},backend:o,attrs:{dtype:"complex64"}}),t=o.data.get(e.dataId),s=t.complexTensorInfos.real,r=t.complexTensorInfos.imag,l=o.data.get(s.dataId).values,u=o.data.get(r.dataId).values,c=m_({inputs:{x:a},backend:o,attrs:{dtype:"complex64"}}),h=o.data.get(c.dataId),d=h.complexTensorInfos.real,p=h.complexTensorInfos.imag,f=o.data.get(d.dataId).values,m=o.data.get(p.dataId).values,[g,y,b]=n(i.shape,a.shape,l,u,f,m),w=o.makeTensorInfo(b,"float32",g),v=o.makeTensorInfo(b,"float32",y),x=u_({inputs:{real:w,imag:v},backend:o});return o.disposeIntermediateTensorInfo(e),o.disposeIntermediateTensorInfo(c),o.disposeIntermediateTensorInfo(w),o.disposeIntermediateTensorInfo(v),x}{const e=o.data.get(i.dataId).values,n=o.data.get(a.dataId).values,r=s||i.dtype,[l,u]=t(i.shape,a.shape,e,n,r);return o.makeTensorInfo(u,r,l)}}}function b_(e){return(t,n,s,r,i,a)=>{const o=su(t,n),l=Kt(o),u=o.length,c=dn(o),h=nn("float32",l),d=nn("float32",l),p=tu(t,o),f=tu(n,o),m=Zm(s,r),g=Zm(i,a),y=t.length,b=dn(t),w=n.length,v=dn(n);if(p.length+f.length===0)for(let t=0;ts[e]=0));const r=wn(s,y,b),i=n.slice(-w);f.forEach((e=>i[e]=0));const a=wn(i,w,v),o=e(m[2*r],m[2*r+1],g[2*a],g[2*a+1]);h[t]=o.real,d[t]=o.imag}return[h,d,o]}}const w_=YS(((e,t)=>e+t)),v_=b_(((e,t,n,s)=>({real:e+n,imag:t+s}))),x_=y_(Dn,w_,v_),A_={kernelName:Dn,backendName:"cpu",kernelFunc:x_};function C_(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{shape:i}=s,a=Kt(r.shape),o=Jt(i,a),l=Kt(o);Gt(a===l,(()=>`The new shape (${o}) has ${l} elements and the old shape (${r.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`)),n.incRef(r.dataId);const u=n.data.get(r.dataId);if(null!=u.complexTensorInfos){const e=u.complexTensorInfos.real,t=u.complexTensorInfos.imag;e.shape=o,t.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}const k_={kernelName:Vr,backendName:"cpu",kernelFunc:C_};function S_(e){const{inputs:t,backend:n,attrs:s}=e,{a:r,b:i}=t,{transposeA:a,transposeB:o}=s;PS([r,i],"matMul");const l=r.shape.length,u=i.shape.length,c=a?r.shape[l-2]:r.shape[l-1],h=o?i.shape[u-1]:i.shape[u-2],d=a?r.shape[l-1]:r.shape[l-2],p=o?i.shape[u-2]:i.shape[u-1],f=r.shape.slice(0,-2),m=i.shape.slice(0,-2),g=Kt(f),y=Kt(m),b=su(r.shape.slice(0,-2),i.shape.slice(0,-2)).concat([d,p]);Gt(c===h,(()=>`Error in matMul: inner shapes (${c}) and (${h}) of Tensors with shapes ${r.shape} and ${i.shape} and transposeA=${a} and transposeB=${o} must match.`));const w=o?[y,p,h]:[y,h,p],v=C_({inputs:{x:r},backend:n,attrs:{shape:a?[g,c,d]:[g,d,c]}}),x=C_({inputs:{x:i},backend:n,attrs:{shape:w}}),A=a?v.shape[1]:v.shape[2],C=a?v.shape[2]:v.shape[1],k=o?x.shape[1]:x.shape[2],S=Math.max(g,y),_=n.data.get(v.dataId).values,E=n.data.get(x.dataId).values,I=dn(v.shape),T=dn(x.shape),[N,R,O]=a?[I[0],1,I[1]]:[I[0],I[1],1],[D,M,z]=o?[1,T[1],T[0]]:[T[1],1,T[0]],F=C*k,B=Tl([S,C,k],v.dtype),L=B.values,P=n.blockSize;for(let e=0;e{const{x:t}=e.inputs,n=e.backend;PS(t,"abs");let s=new Float32Array(Kt(t.shape));return s=I_(n.data.get(t.dataId).values),n.makeOutput(s,t.shape,t.dtype)}},N_=jS(Rn,(e=>Math.acos(e))),R_={kernelName:Rn,backendName:"cpu",kernelFunc:N_},O_=jS(On,(e=>Math.acosh(e))),D_={kernelName:On,backendName:"cpu",kernelFunc:O_};const M_={kernelName:Mn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,s=t;PS(t,"addN");const r=s.map((e=>n.data.get(e.dataId).values)),i=Tl(s[0].shape,s[0].dtype),a=i.values;for(let e=0;en&&(n=r,s=e)}d[e]=s}return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(c,"int32",d)}};const V_={kernelName:Ln,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i}=s;PS(r,"argMin");let a=en(i,r.shape);const o=Ih(a,r.shape.length);let l=r;const u=[];null!=o&&(l=F_({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),a=Nh(a.length,l.shape.length)),a=[a[0]],Eh("argMin",a,l.shape.length);const[c,h]=Sh(l.shape,a),d=gn(Kt(c),"int32"),p=Kt(h),f=n.data.get(l.dataId).values;for(let e=0;en.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(c,"int32",d)}},W_=jS(Pn,(e=>Math.asin(e))),j_={kernelName:Pn,backendName:"cpu",kernelFunc:W_},G_=jS(Un,(e=>Math.asinh(e))),q_={kernelName:Un,backendName:"cpu",kernelFunc:G_},H_=jS(Vn,(e=>Math.atan(e))),K_={kernelName:Vn,backendName:"cpu",kernelFunc:H_},$_=YS(((e,t)=>Math.atan2(e,t))),X_=y_(jn,$_),Z_={kernelName:jn,backendName:"cpu",kernelFunc:X_},Y_=jS(Wn,(e=>Math.atanh(e))),Q_={kernelName:Wn,backendName:"cpu",kernelFunc:Y_};function J_(e,t,n,s,r,i){const a=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,u=r.dilationWidth,c=r.effectiveFilterHeight,h=r.effectiveFilterWidth,d=r.padInfo.top,p=r.padInfo.left,f="max"===i?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,m=Tl(r.outShape,n),g=m.values,y=r.outShape[1]*r.outShape[2]*r.outShape[3],b=r.outShape[2]*r.outShape[3],w=r.outShape[3];for(let t=0;ty?y=a:"avg"===i&&(b+=a,v++)}if(isNaN(y))break}g[C+n*w+t]="avg"===i?b/v:y}}}return m}function eE(e,t,n,s,r=!1,i=!1){const a=Tl(s.outShape,"int32"),o=s.strideHeight,l=s.strideWidth,u=s.dilationHeight,c=s.dilationWidth,h=s.effectiveFilterHeight,d=s.effectiveFilterWidth,p=s.padInfo.top,f=s.padInfo.left,m=Tl(t,n,e);for(let e=0;ev&&(v=u,x=r?i?((e*s.inHeight+n)*s.inWidth+o)*s.inChannels+t:(n*s.inWidth+o)*s.inChannels+t:a*d+l)}}a.set(x,e,n,o,t)}}return a}function tE(e,t,n,s,r,i){const a=r.strideDepth,o=r.strideHeight,l=r.strideWidth,u=r.dilationDepth,c=r.dilationHeight,h=r.dilationWidth,d=r.effectiveFilterDepth,p=r.effectiveFilterHeight,f=r.effectiveFilterWidth,m=r.padInfo.front,g=r.padInfo.top,y=r.padInfo.left,b="max"===i?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,w=Tl(r.outShape,n),v=w.values,x=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],A=r.outShape[2]*r.outShape[3]*r.outShape[4],C=r.outShape[3]*r.outShape[4],k=r.outShape[4];for(let t=0;tA?A=r:"avg"===i&&(C+=r,S++),isNaN(A))break}if(isNaN(A))break}if(isNaN(A))break}v[g+t]="avg"===i?C/Math.max(S,1):A}}}}return w}const nE={kernelName:Gn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t;PS(r,"avgPool");const{filterSize:i,strides:a,pad:o,dimRoundingMode:l}=s;Gt(Sc(a,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${a} and dilations '1'`));const u=mc(r.shape,i,a,1,o,l);let c;if(1===u.filterWidth&&1===u.filterHeight&&$t(u.inShape,u.outShape))c=KS({inputs:{x:r},backend:n});else{const e=n.data.get(r.dataId).values,t=dn(r.shape),s=J_(e,r.shape,r.dtype,t,u,"avg");c=n.makeTensorInfo(u.outShape,r.dtype,s.values)}return c}};const sE={kernelName:Hn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{filterSize:i,strides:a,pad:o,dimRoundingMode:l,dataFormat:u}=s;PS(r,"avgPool3d");const c=gc(r.shape,i,a,1,o,l,u),h=tE(n.data.get(r.dataId).values,r.shape,r.dtype,dn(r.shape),c,"avg");return n.makeTensorInfo(h.shape,"float32",h.values)}};const rE={kernelName:Kn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,input:i}=t,{filterSize:a,strides:o,pad:l,dimRoundingMode:u}=s;PS([r,i],"avgPool3DGrad");const c=gc(i.shape,a,o,1,l,u),h=c.strideDepth,d=c.strideHeight,p=c.strideWidth,f=c.filterDepth,m=c.filterHeight,g=c.filterWidth,y=c.dilationDepth,b=c.dilationHeight,w=c.dilationWidth,v=c.effectiveFilterDepth,x=c.effectiveFilterHeight,A=c.effectiveFilterWidth,C=v-1-c.padInfo.front,k=A-1-c.padInfo.left,S=x-1-c.padInfo.top,_=Tl(i.shape,"float32"),E=1/(f*m*g),I=n.bufferSync(r);for(let e=0;e=c.outDepth||Math.floor(s)!==s))for(let n=0;n=c.outHeight||Math.floor(r)!==r))for(let n=0;n=c.outWidth||Math.floor(i)!==i)continue;l+=I.get(e,s,r,i,t)}}}_.set(l*E,e,n,s,r,t)}return n.makeTensorInfo(_.shape,_.dtype,_.values)}};const iE={kernelName:qn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,input:i}=t,a=i;PS([r,i],"avgPoolGrad");const{filterSize:o,strides:l,pad:u}=s,c=mc(a.shape,o,l,1,u),h=c.strideHeight,d=c.strideWidth,p=c.filterHeight,f=c.filterWidth,m=c.dilationHeight,g=c.dilationWidth,y=c.effectiveFilterHeight,b=c.effectiveFilterWidth,w=b-1-c.padInfo.left,v=y-1-c.padInfo.top,x=Tl(a.shape,"float32"),A=1/(p*f),C=n.data.get(r.dataId).values,k=Tl(r.shape,"float32",C);for(let e=0;e=c.outHeight||Math.floor(s)!==s))for(let n=0;n=c.outWidth||Math.floor(r)!==r)continue;a+=k.get(e,s,r,t)}}x.set(a*A,e,n,s,t)}return n.makeTensorInfo(x.shape,x.dtype,x.values)}};const aE={kernelName:Us,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,scale:i,offset:a,mean:o,variance:l}=t;Gt(o.shape.length===l.shape.length,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),Gt(null==a||o.shape.length===a.shape.length,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),Gt(null==i||o.shape.length===i.shape.length,(()=>"Batch normalization gradient requires mean and scale to have equal ranks.")),PS([r,o,l,i,a],"batchNorm");let{varianceEpsilon:u}=s;null==u&&(u=.001);const c=n.data.get(r.dataId).values,h=n.data.get(o.dataId).values,d=n.data.get(l.dataId).values,p=i?n.data.get(i.dataId).values:new Float32Array([1]),f=a?n.data.get(a.dataId).values:new Float32Array([0]),m=new Float32Array(c.length),g=f.length,y=p.length,b=d.length,w=h.length;let v=0,x=0,A=0,C=0;for(let e=0;e=g&&(v=0),x>=w&&(x=0),A>=y&&(A=0),C>=b&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,m)}};function oE(e,t,n,s,r){const i=Yu(s,t,n),a=Kt(n),o=dn(s);if(i){const n=Qu(t,o);return"string"===r?e.slice(n,n+a):e.subarray(n,n+a)}const l=Tl(s,r,"string"===r?Ng(e):e),u=Tl(n,r);for(let e=0;ee+t[n]));u.set(l.get(...s),...n)}return"string"===r?Rg(u.values):u.values}function lE(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{begin:i,size:a}=s;PS(r,"slice");const[o,l]=Ju(r,i,a);Pu(r,o,l);const u=oE(n.data.get(r.dataId).values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,u)}const uE={kernelName:ti,backendName:"cpu",kernelFunc:lE};const cE={kernelName:Xn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{blockShape:i,crops:a}=s;PS([r],"batchToSpaceND");const o=i.reduce(((e,t)=>e*t)),l=Fm(r.shape,i,o),u=Bm(l.length,i.length),c=Lm(r.shape,i,o),h=Pm(a,i.length),d=Um(c,a,i.length),p=C_({inputs:{x:r},backend:n,attrs:{shape:l}}),f=F_({inputs:{x:p},backend:n,attrs:{perm:u}}),m=C_({inputs:{x:f},backend:n,attrs:{shape:c}}),g=lE({inputs:{x:m},backend:n,attrs:{begin:h,size:d}});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(m),g}};function hE(e,t,n,s,r){const i=Kt(s),a=gn(r,n);for(let n=0;n=r||(a[s]+=i>0?t[n]:1)}return a}function dE(e,t,n,s=!1){const r=e.shape[0],i=e.shape[1],a=Tl([r,n],t.dtype);for(let o=0;o=n||(s?a.set(1,o,i):t.size>0?a.set(a.get(o,i)+t.get(o,r),o,i):a.set(a.get(o,i)+1,o,i))}return a}const pE={kernelName:Zn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,weights:i}=t,{size:a}=s,o=hE(n.data.get(r.dataId).values,n.data.get(i.dataId).values,i.dtype,i.shape,a);return n.makeTensorInfo([a],i.dtype,o)}},fE=YS(((e,t)=>e&t)),mE=y_(Yn,fE),gE={kernelName:Yn,backendName:"cpu",kernelFunc:mE};const yE={kernelName:Qn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{s0:s,s1:r}=t,i=n.data.get(s.dataId).values,a=n.data.get(r.dataId).values,o=su(Array.from(i),Array.from(a));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}},bE=WS((e=>Math.ceil(e))),wE=GS(es,bE),vE={kernelName:es,backendName:"cpu",kernelFunc:wE},xE=jS(ts,((e,t)=>{const n=t;return e>n.clipValueMax?n.clipValueMax:e{const{x:t}=e.inputs,n=e.backend,s=new Float32Array(Kt(t.shape)),r=n.data.get(t.dataId),i=r.complexTensorInfos.real,a=r.complexTensorInfos.imag,o=n.data.get(i.dataId).values,l=n.data.get(a.dataId).values;for(let e=0;e{const n=Kt(e.shape);r.set(e.vals,t),t+=n}))}else{let s=0;e.forEach((e=>{const i="string"===n?Ng(e.vals):e.vals;let a=0;for(let n=0;ne.shape)),i);let a=Em(t.map((e=>e.shape)),i);if(0===Kt(a))return n.makeTensorInfo(a,t[0].dtype,[]);const o=t.filter((e=>Kt(e.shape)>0));if(1===o.length)return KS({inputs:{x:o[0]},backend:n});if("complex64"===o[0].dtype){const e=o.map((e=>d_({inputs:{input:e},backend:n}))),t=o.map((e=>SE({inputs:{input:e},backend:n}))),s=EE({inputs:e,backend:n,attrs:{axis:i}}),r=EE({inputs:t,backend:n,attrs:{axis:i}}),a=u_({inputs:{real:s,imag:r},backend:n});return e.forEach((e=>n.disposeIntermediateTensorInfo(e))),t.forEach((e=>n.disposeIntermediateTensorInfo(e))),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(r),a}const l=o.map((e=>{const t=Kt(e.shape.slice(i));return C_({inputs:{x:e},backend:n,attrs:{shape:[-1,t]}})})),u=l.map((e=>({vals:n.data.get(e.dataId).values,shape:e.shape})));a=Em(l.map((e=>e.shape)),1);const c=1===l[0].shape[0],h=kE(u,a,t[0].dtype,c),d=Em(o.map((e=>e.shape)),i),p=n.makeTensorInfo(d,t[0].dtype,h);return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),p}const IE={kernelName:rs,backendName:"cpu",kernelFunc:EE};function TE(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,filter:i}=t,{strides:a,pad:o,dataFormat:l,dilations:u,dimRoundingMode:c}=s;PS([r,i],"conv2d");const h=Ec(l),d=yc(r.shape,i.shape,a,u,o,c,!1,h),p=d.filterHeight,f=d.filterWidth,m=d.dilationHeight,g=d.dilationWidth,y=d.padInfo.left,b=d.padInfo.top,w="channelsLast"===d.dataFormat,v=new Na(d.outShape,r.dtype),x=dn(r.shape),A=dn(i.shape),C=x[0],k=w?x[1]:x[2],S=w?x[2]:1,_=w?1:x[1],E=v.strides[0],I=w?v.strides[1]:v.strides[2],T=w?v.strides[2]:1,N=w?1:v.strides[1],R=n.data.get(r.dataId).values,O=n.data.get(i.dataId).values,D=v.values;for(let e=0;e=d.inHeight)continue;const i=e*A[0],a=t+n*k;for(let e=0;e=d.inWidth)continue;const r=a+s*S;let o=i+e*A[1];for(let e=0;e=u.inDepth)continue;const i=e*S[0],a=t+n*k[1];for(let e=0;e=u.inHeight)continue;const r=i+e*S[1],o=a+s*k[2];for(let e=0;e=u.inWidth)continue;const i=r+e*S[2],a=o+t*u.inChannels;let l=i;for(let e=0;eMath.cos(e))),BE={kernelName:hs,backendName:"cpu",kernelFunc:FE},LE=jS(ds,(e=>Math.cosh(e))),PE={kernelName:ds,backendName:"cpu",kernelFunc:LE};const UE={kernelName:ms,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{image:r,boxes:i,boxInd:a}=t,{cropSize:o,method:l,extrapolationValue:u}=s,[c,h,d,p]=r.shape,f=i.shape[0],[m,g]=o,y=Tl([f,m,g,p],"float32"),b=n.data.get(i.dataId).values,w=n.data.get(a.dataId).values,v=n.data.get(r.dataId).values,x=dn(r.shape),A=dn(y.shape);for(let e=0;e=c)continue;const o=m>1?(r-n)*(h-1)/(m-1):0,f=g>1?(i-s)*(d-1)/(g-1):0;for(let t=0;t1?n*(h-1)+t*o:.5*(n+r)*(h-1);if(c<0||c>h-1)for(let n=0;n1?s*(d-1)+l*f:.5*(s+i)*(d-1);if(c<0||c>d-1){for(let n=0;n1?s*(d-1)+n*f:.5*(s+i)*(d-1);if(r<0||r>d-1){for(let s=0;se+f-t-1:(e,t)=>e+t;for(let e=0;ee+f-t-1:(e,t)=>e+t;for(let e=0;e`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${a}`));const o=r.shape[0],l=r.shape[1],u=r.shape[2],c=r.shape[3],h=l*i,d=u*i,p=c/(i*i),f=n.data.get(r.dataId).values,m=new Float32Array(o*h*d*p);let g=0;for(let e=0;e`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${a} and dilations '${d}'`));const p=yc(r.shape,i.shape,a,d,o,u,!0),{filterHeight:f,filterWidth:m,dilationHeight:g,dilationWidth:y,padInfo:b}=p,w=b.left,v=b.top,x=p.outChannels/p.inChannels,A=new Na(p.outShape,r.dtype),C=n.data.get(r.dataId).values,k=n.data.get(i.dataId).values,S=A.values;for(let e=0;e=p.inHeight)continue;const i=e*h[0],a=t+n*c[1];for(let e=0;e=p.inWidth)continue;const r=i+e*h[1],o=a+s*p.inChannels;let l=t,u=r;for(let e=0;e{const{x:s,filter:r}=e,{strides:i,pad:a,dilations:o}=n,l=t,u=l.data.get(s.dataId).values,c=s.shape.length,h=l.data.get(r.dataId).values,d=r.shape.length,{batchSize:p,inHeight:f,inWidth:m,inChannels:g,outHeight:y,outWidth:b,padInfo:w,strideHeight:v,strideWidth:x,filterHeight:A,filterWidth:C,dilationHeight:k,dilationWidth:S,outShape:_}=fc(s.shape,r.shape,i,a,"NHWC",o),E=Kt(_),I=_.length,T=sn(s.dtype,E);for(let e=0;e=0&&i=0&&pl&&(l=m)}}}T[wn([e,t,i,o],I,dn(_))]=l}}}return{dataId:l.write(pa(T,s.dtype),_,s.dtype),shape:_,dtype:s.dtype}}},YE={kernelName:ks,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:s,filter:r,dy:i}=e,{strides:a,pad:o,dilations:l}=n,u=t,c=fn(s.shape,u.data.get(s.dataId).values),h=fn(r.shape,u.data.get(r.dataId).values),{batchSize:d,inHeight:p,inWidth:f,inChannels:m,outHeight:g,outWidth:y,padInfo:b,strideHeight:w,strideWidth:v,filterHeight:x,filterWidth:A,dilationHeight:C,dilationWidth:k,outShape:S}=fc(s.shape,r.shape,a,o,"NHWC",l);Gt(i.rank===S.length,(()=>`Error in ${ks}, dy must have the same rank as output ${S.length}, but got ${i.rank}`));const _=fn(S,u.data.get(i.dataId).values),E=yn(r.shape,r.dtype);for(let e=0;e=0&&s=0&&ua&&(a=r,o=t,l=n)}}}E[o][l][i]+=_[e][t][s][i]}}}return{dataId:u.write(pa(E,s.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},QE={kernelName:Cs,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:s,filter:r,dy:i}=e,{strides:a,pad:o,dilations:l}=n,u=t,c=fn(s.shape,u.data.get(s.dataId).values),h=fn(r.shape,u.data.get(r.dataId).values),{batchSize:d,inHeight:p,inWidth:f,inChannels:m,outHeight:g,outWidth:y,padInfo:b,strideHeight:w,strideWidth:v,filterHeight:x,filterWidth:A,dilationHeight:C,dilationWidth:k,outShape:S}=fc(s.shape,r.shape,a,o,"NHWC",l);Gt(i.rank===S.length,(()=>`Error in ${Cs}, dy must have the same rank as output ${S.length}, but got ${i.rank}`));const _=fn(S,u.data.get(i.dataId).values),E=yn(s.shape,s.dtype);for(let e=0;e=0&&s=0&&ua&&(a=r,o=s,l=u)}}}E[e][o][l][i]+=_[e][t][s][i]}}}return{dataId:u.write(pa(E,s.dtype),s.shape,s.dtype),shape:s.shape,dtype:s.dtype}}};const JE={kernelName:Ss,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{image:r}=t,{canvas:i,options:a}=s,{contextOptions:o,imageOptions:l}=a||{},u=(null==l?void 0:l.alpha)||1,c=(null==o?void 0:o.contextType)||"2d";if("2d"!==c)throw new Error(`Context type ${o.contextType} is not supported by the CPU backend.`);const h=i.getContext(c,(null==o?void 0:o.contextAttributes)||{});if(null==h)throw new Error(`Could not get the context with ${c} type.`);const[d,p]=r.shape.slice(0,2),f=2===r.shape.length?1:r.shape[2],m=n.data.get(r.dataId).values,g="float32"===r.dtype?255:1,y=new Uint8ClampedArray(p*d*4);for(let e=0;e1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${s}.`)}else if("int32"===r.dtype&&(s<0||s>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${s}.`);1===f?(t[0]=s*g,t[1]=s*g,t[2]=s*g):t[n]=s*g}const n=4*e;y[n+0]=Math.round(t[0]),y[n+1]=Math.round(t[1]),y[n+2]=Math.round(t[2]),y[n+3]=Math.round(t[3])}i.width=p,i.height=d;const b=new ImageData(y,p,d);return h.putImageData(b,0,0),r}},eI=YS(((e,t)=>e*t)),tI=b_(((e,t,n,s)=>({real:e*n-t*s,imag:e*s+t*n}))),nI=y_(xr,eI,tI),sI={kernelName:xr,backendName:"cpu",kernelFunc:nI};function rI(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i,keepDims:a}=s;let o;PS(r,"sum"),o="bool"===r.dtype?m_({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):KS({inputs:{x:r},backend:n});const l=o.shape.length,u=en(i,o.shape),c=Ih(u,l);let h=u,d=o;null!=c&&(d=F_({inputs:{x:o},backend:n,attrs:{perm:c}}),h=Nh(h.length,l)),Eh("sum",h,d.shape.length);const[p,f]=Sh(d.shape,h);let m=h_(n,p,ja(d.dtype,"int32"));const g=Kt(f),y=n.data.get(m.dataId).values,b=n.data.get(d.dataId).values;for(let e=0;e=0&&(d=rI({inputs:{x:d},backend:n,attrs:{axis:u[e]-(a.length-p),keepDims:!1}}),f.push(d)),p--)}for(const e of f)e!==d&&n.disposeIntermediateTensorInfo(e);return d}};const oI={kernelName:Ts,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{dy:s,y:r}=t;PS([s,r],"eluGrad");const i=new Float32Array(Kt(r.shape)),a=n.data.get(r.dataId).values,o=n.data.get(s.dataId).values;for(let e=0;e=0?o[e]:o[e]*(t+1)}return n.makeTensorInfo(r.shape,"float32",i)}},lI=YS(((e,t)=>e===t?1:0)),uI=y_(Rs,lI,null,"bool"),cI={kernelName:Rs,backendName:"cpu",kernelFunc:uI},hI=Gm,dI=qm,pI=Hm,fI=Km,mI=$m,gI=Xm,yI=jS(Ns,(e=>{const t=Math.sign(e),n=Math.abs(e),s=1/(1+hI*n);return t*(1-((((gI*s+mI)*s+fI)*s+pI)*s+dI)*s*Math.exp(-n*n))})),bI={kernelName:Ns,backendName:"cpu",kernelFunc:yI},wI=WS((e=>Math.exp(e))),vI=GS(Os,wI,"float32"),xI={kernelName:Os,backendName:"cpu",kernelFunc:vI};function AI(e){const{inputs:t,backend:n,attrs:s}=e,{input:r}=t,{dim:i}=s,a=r.shape.length,o=r.shape.slice();let l=i;return i<0&&(Gt(-(a+1)<=i,(()=>`Axis must be in the interval [${-(a+1)}, ${a}]`)),l=a+i+1),o.splice(l,0,1),C_({inputs:{x:r},backend:n,attrs:{shape:o}})}const CI={kernelName:Ds,backendName:"cpu",kernelFunc:AI},kI=WS((e=>Math.expm1(e))),SI=GS(Ms,kI),_I={kernelName:Ms,backendName:"cpu",kernelFunc:SI},EI=YS(((e,t)=>e/t)),II=y_(_s,EI),TI={kernelName:_s,backendName:"cpu",kernelFunc:II},NI=YS(((e,t)=>e-t)),RI=b_(((e,t,n,s)=>({real:e-n,imag:t-s}))),OI=y_(ki,NI,RI),DI={kernelName:ki,backendName:"cpu",kernelFunc:OI};function MI(e,t,n){const s=e.shape,r=s[0],i=s[1],a=n.data.get(e.dataId),o=a.complexTensorInfos.real,l=a.complexTensorInfos.imag,u=[r,i],c=Kt(u),h=nn("float32",c),d=nn("float32",c);for(let e=0;e{const{image:s}=e,r=n,i=nn(s.dtype,Kt(s.shape)),[a,o,l,u]=s.shape,c=r.data.get(s.dataId).values;for(let e=0;e=0&&aMath.floor(e))),WI=GS(Ls,VI),jI={kernelName:Ls,backendName:"cpu",kernelFunc:WI},GI=YS(((e,t)=>Math.floor(e/t))),qI=y_(Ps,GI,null,"int32"),HI={kernelName:Ps,backendName:"cpu",kernelFunc:qI};const KI={kernelName:Pi,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,filter:i,bias:a,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:d,activation:p,leakyreluAlpha:f}=s;let m=TE({inputs:{x:r,filter:i},backend:n,attrs:{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:d}});if(a){const e=m;if("NCHW"===c&&1===a.shape.length&&1!==a.shape[0]){const e=C_({inputs:{x:a},backend:n,attrs:{shape:[a.shape[0],1,1]}});m=x_({inputs:{a:m,b:e},backend:n}),n.disposeIntermediateTensorInfo(e)}else m=x_({inputs:{a:m,b:a},backend:n});n.disposeIntermediateTensorInfo(e)}if(p){const e=m;if("NCHW"===c&&"prelu"===p&&1===o.shape.length&&1!==o.shape[0]){const e=C_({inputs:{x:o},backend:n,attrs:{shape:[o.shape[0],1,1]}});m=l_(n,m,p,e,f),n.disposeIntermediateTensorInfo(e)}else m=l_(n,m,p,o,f);n.disposeIntermediateTensorInfo(e)}return m}};const $I={kernelName:Ui,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,filter:i,bias:a,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:d,activation:p,leakyreluAlpha:f}=s;let m=qE({inputs:{x:r,filter:i},backend:n,attrs:{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:d}});if(a){const e=m;m=x_({inputs:{a:m,b:a},backend:n}),n.disposeIntermediateTensorInfo(e)}if(p){const e=m;m=l_(n,m,p,o,f),n.disposeIntermediateTensorInfo(e)}return m}};function XI(e,t,n,s,r,i,a,o,l){const u=Tl([s,i],n);for(let n=0;n=l/i)throw new Error(`Invalid indices: ${s} does not index into ${o}`);for(let e=0;e=0,(()=>`GatherV2: the index value ${t} is not in [0, ${c-1}]`))}let h=o;null==o&&(h=0);const d=Kt(i.shape),p=Tg(r,i,l,h),f=C_({inputs:{x:r},backend:n,attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]}}),m=C_({inputs:{x:i},backend:n,attrs:{shape:[p.batchSize,d/p.batchSize]}}),g=[p.batchSize,p.outerSize,d/p.batchSize,p.sliceSize],y=n.bufferSync(m),b=YI(n.bufferSync(f),y,g);return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(m),n.makeTensorInfo(p.outputShape,b.dtype,b.values)}},JI=YS(((e,t)=>e>t?1:0)),eT=y_(js,JI,null,"bool"),tT={kernelName:js,backendName:"cpu",kernelFunc:eT},nT=YS(((e,t)=>e>=t?1:0)),sT=y_(Gs,nT,null,"bool"),rT={kernelName:Gs,backendName:"cpu",kernelFunc:sT};const iT={kernelName:Hs,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:s}=t,r=Kt(s.shape),i=s.shape[s.shape.length-1],a=C_({inputs:{x:s},backend:n,attrs:{shape:[r/i,i]}}),o=MI(a,!0,n),l=C_({inputs:{x:o},backend:n,attrs:{shape:s.shape}});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(o),l}},aT=jS($s,(e=>Number.isFinite(e)?1:0),"bool"),oT={kernelName:$s,backendName:"cpu",kernelFunc:aT},lT=jS(Xs,(e=>Math.abs(e)===1/0?1:0),"bool"),uT={kernelName:Xs,backendName:"cpu",kernelFunc:lT},cT=jS(Zs,(e=>Number.isNaN(e)?1:0),"bool"),hT={kernelName:Zs,backendName:"cpu",kernelFunc:cT},dT=YS(((e,t)=>ee<=t?1:0)),gT=y_(Js,mT,null,"bool"),yT={kernelName:Js,backendName:"cpu",kernelFunc:gT};function bT(e,t,n){const s=(t-e)/(n-1),r=gn(n,"float32");r[0]=e;for(let e=1;eMath.log(e))),xT=GS(tr,vT),AT={kernelName:tr,backendName:"cpu",kernelFunc:xT},CT=jS(nr,(e=>Math.log1p(e))),kT={kernelName:nr,backendName:"cpu",kernelFunc:CT},ST=YS(((e,t)=>e&&t)),_T=y_(sr,ST,null,"bool"),ET={kernelName:sr,backendName:"cpu",kernelFunc:_T},IT=jS(rr,(e=>e?0:1),"bool"),TT={kernelName:rr,backendName:"cpu",kernelFunc:IT},NT=YS(((e,t)=>e||t)),RT=y_(ir,NT,null,"bool"),OT={kernelName:ir,backendName:"cpu",kernelFunc:RT};const DT={kernelName:ar,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{depthRadius:i,bias:a,alpha:o,beta:l}=s;PS(r,"LRN");const u=r.shape[3],c=u-1,h=n.data.get(r.dataId).values,d=Kt(r.shape),p=new Float32Array(d);function f(e){const t=e%u;let n=e-t+Math.max(0,t-i);const s=e-t+Math.min(t+i,c);let r=0;for(;n<=s;n++){const e=h[n];r+=e*e}return r}for(let e=0;ei)&&(i=t)}r[n]=i}return r}function FT(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{reductionIndices:i,keepDims:a}=s,o=n;let l=r.shape;const u=l.length,c=en(i,l);let h=c;const d=Ih(h,u);let p=o.data.get(r.dataId).values;if(null!=d){const e=new Array(u);for(let t=0;tMath.max(e,t))),PT=y_(ur,LT),UT={kernelName:ur,backendName:"cpu",kernelFunc:PT};const VT={kernelName:cr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t;PS(r,"maxPool");const{filterSize:i,strides:a,pad:o,dimRoundingMode:l}=s;Gt(Sc(a,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${a} and dilations '1'`));const u=mc(r.shape,i,a,1,o,l);let c;if(1===u.filterWidth&&1===u.filterHeight&&$t(u.inShape,u.outShape))c=KS({inputs:{x:r},backend:n});else{const e=n.data.get(r.dataId).values,t=dn(r.shape),s=J_(e,r.shape,r.dtype,t,u,"max");c=n.makeTensorInfo(u.outShape,r.dtype,s.values)}return c}};const WT={kernelName:dr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{filterSize:i,strides:a,pad:o,dimRoundingMode:l,dataFormat:u}=s;PS(r,"maxPool3d");const c=gc(r.shape,i,a,1,o,l,u),h=tE(n.data.get(r.dataId).values,r.shape,r.dtype,dn(r.shape),c,"max");return n.makeTensorInfo(h.shape,"float32",h.values)}};const jT={kernelName:pr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,input:i}=t,{filterSize:a,strides:o,pad:l,dimRoundingMode:u}=s;PS([r,i],"maxPool3DGrad");const c=gc(i.shape,a,o,1,l,u),h=function(e,t){const n=Tl(t.outShape,"int32"),s=t.strideDepth,r=t.strideHeight,i=t.strideWidth,a=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,u=t.effectiveFilterDepth,c=t.effectiveFilterHeight,h=t.effectiveFilterWidth,d=t.padInfo.front,p=t.padInfo.top,f=t.padInfo.left;for(let m=0;m=k&&(k=o,S=n*c*h+r*c+a)}}}n.set(S,m,y,s,r,g)}}}return n}(n.bufferSync(i),c),d=c.strideDepth,p=c.strideHeight,f=c.strideWidth,m=c.dilationDepth,g=c.dilationHeight,y=c.dilationWidth,b=c.effectiveFilterDepth,w=c.effectiveFilterHeight,v=c.effectiveFilterWidth,x=b-1-c.padInfo.front,A=v-1-c.padInfo.left,C=w-1-c.padInfo.top,k=Tl(i.shape,"float32"),S=n.bufferSync(r);for(let e=0;e=c.outDepth||Math.floor(s)!==s))for(let r=0;r=c.outHeight||Math.floor(i)!==i))for(let a=0;a=c.outWidth||Math.floor(u)!==u)continue;const d=b*w*v-1-h.get(e,s,i,u,t)===n*w*v+r*v+a?1:0;if(0===d)continue;l+=S.get(e,s,i,u,t)*d}}}k.set(l,e,n,s,r,t)}return n.makeTensorInfo(k.shape,k.dtype,k.values)}};const GT={kernelName:hr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,input:i,output:a}=t,o=i;PS([i,a],"maxPoolGrad");const{filterSize:l,strides:u,pad:c,dimRoundingMode:h}=s,d=mc(o.shape,l,u,1,c,h),p=n.data.get(o.dataId).values,f=Tl(d.outShape,o.dtype,eE(p,o.shape,o.dtype,d).values),m=d.strideHeight,g=d.strideWidth,y=d.dilationHeight,b=d.dilationWidth,w=d.effectiveFilterHeight,v=d.effectiveFilterWidth,x=v-1-d.padInfo.left,A=w-1-d.padInfo.top,C=Tl(o.shape,"float32"),k=n.data.get(r.dataId).values,S=Tl(r.shape,"float32",k);for(let e=0;e=d.outHeight||Math.floor(s)!==s))for(let r=0;r=d.outWidth||Math.floor(o)!==o)continue;const l=w*v-1-f.get(e,s,o,t)===n*v+r?1:0;if(0===l)continue;a+=S.get(e,s,o,t)*l}}C.set(a,e,n,s,t)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}};const qT={kernelName:fr,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{x:s}=e,{filterSize:r,strides:i,pad:a,includeBatchInIndex:o}=t,l=n;PS(s,"MaxPoolWithArgmax");const u=l.data.get(s.dataId).values,c=mc(s.shape,r,i,[1,1],a),[h,d]=function(e,t,n,s,r){const i=J_(e,0,n,dn(t),r,"max"),a=eE(e,t,n,r,!0,s);return[i.values,a.values]}(u,s.shape,s.dtype,o,c),p=l.write(h,c.outShape,s.dtype),f=l.write(d,c.outShape,s.dtype);return[{dataId:p,shape:c.outShape,dtype:s.dtype},{dataId:f,shape:c.outShape,dtype:"int32"}]}};const HT={kernelName:mr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i,keepDims:a}=s,o=en(i,r.shape),l=Kt(Sh(r.shape,o)[1]),u=[],c=n.makeTensorInfo([],"float32",new Float32Array([l]));u.push(c);const h=m_({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});u.push(h);const d=II({inputs:{a:h,b:c},backend:n});u.push(d);const p=rI({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:a}});return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),p}};const KT={kernelName:gr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i,keepDims:a}=s;PS(r,"min");const o=en(i,r.shape);let l=o;const u=Ih(l,r.shape.length);let c=r;null!=u&&(c=F_({inputs:{x:r},backend:n,attrs:{perm:u}}),l=Nh(l.length,r.shape.length)),Eh("min",l,c.shape.length);const[h,d]=Sh(c.shape,l),p=Kt(d),f=gn(Kt(h),c.dtype),m=n.data.get(c.dataId).values;for(let e=0;eMath.min(e,t))),XT=y_(yr,$T),ZT={kernelName:yr,backendName:"cpu",kernelFunc:XT};const YT={kernelName:br,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{paddings:i,mode:a}=s;PS(r,"mirrorPad");const o=i.map(((e,t)=>e[0]+r.shape[t]+e[1])),l=i.map((e=>e[0])),u=i.map(((e,t)=>e[0]+r.shape[t])),c="reflect"===a?0:1,h=n.data.get(r.dataId).values,d=r.shape.length,p=dn(r.shape),f=Kt(o),m=o.length,g=dn(o),y=nn(r.dtype,f);for(let e=0;e=u[e]&&(t[e]=2*(u[e]-1)-t[e]+c);t=t.map(((e,t)=>e-l[t]));const n=wn(t,d,p);y[e]=h[n]}return{dataId:n.write(y,o,r.dtype),shape:o,dtype:r.dtype}}},QT=YS(((e,t)=>{const n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t})),JT=y_(wr,QT),eN={kernelName:wr,backendName:"cpu",kernelFunc:JT};function tN(e){const{inputs:t,backend:n,attrs:s}=e,{logits:r}=t,{dim:i}=s,a=r.shape.length;let o=i;if(-1===o&&(o=a-1),o!==a-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${a} and dim was ${o}`);const l=en([o],r.shape),u=FT({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),c=_h(u.shape,l),h=C_({inputs:{x:u},backend:n,attrs:{shape:c}}),d=OI({inputs:{a:r,b:h},backend:n}),p=vI({inputs:{x:d},backend:n}),f=rI({inputs:{x:p},backend:n,attrs:{axis:l,keepDims:!1}}),m=C_({inputs:{x:f},backend:n,attrs:{shape:c}}),g=II({inputs:{a:p,b:m},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(m),g}const nN={kernelName:hi,backendName:"cpu",kernelFunc:tN};const sN={kernelName:vr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{logits:r}=t,{numSamples:i,seed:a,normalized:o}=s;PS(r,"multinomial");const l=o?r:tN({inputs:{logits:r},backend:n,attrs:{dim:-1}}),u=l.shape[0],c=l.shape[1],h=n.data.get(l.dataId).values,d=[u,i],p=gn(Kt(d),"int32");for(let e=0;ee!==t?1:0)),pN=y_(Cr,dN,null,"bool"),fN={kernelName:Cr,backendName:"cpu",kernelFunc:pN};const mN={kernelName:Ir,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{indices:r}=t,{dtype:i,depth:a,onValue:o,offValue:l}=s;PS(r,"oneHot");const u=Kt(r.shape),c=new Float32Array(u*a);c.fill(l);const h=n.data.get(r.dataId).values;for(let e=0;e=0&&h[e]{qt(i,e.shape,"All tensors passed to stack must have matching shapes"),Gt(a===e.dtype,(()=>"All tensors passed to stack must have matching dtypes"))}));const o=[],l=EE({inputs:t.map((e=>{const t=AI({inputs:{input:e},backend:n,attrs:{dim:r}});return o.push(t),t})),backend:n,attrs:{axis:r}});return o.forEach((e=>n.disposeIntermediateTensorInfo(e))),l}const vN={kernelName:Tr,backendName:"cpu",kernelFunc:wN};const xN={kernelName:Nr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{paddings:i,constantValue:a}=s;PS(r,"pad");const o=i.map(((e,t)=>e[0]+r.shape[t]+e[1])),l=i.map((e=>e[0])),u=n.data.get(r.dataId).values,c=Kt(r.shape),h=r.shape.length,d=dn(r.shape),p=Kt(o),f=o.length,m=dn(o),g=nn(r.dtype,p);0!==a&&g.fill(a);for(let e=0;ee+l[t])),f,m)]=u[e]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}},AN=YS(((e,t)=>Math.pow(e,t))),CN=y_(Rr,AN),kN={kernelName:Rr,backendName:"cpu",kernelFunc:CN};function SN(e,t,n,s){const[r,i]=Sh(e,s),a=ja(t,"int32"),o=gn(Kt(r),a),l=Kt(i);for(let e=0;en.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(y,g,f)}};function EN(e,t,n,s){const r=[];let i=0;const a=t.length-1+n.length,o=new Array(a).fill(null).map((()=>[0]));!function(e,t){for(let n=0;nr)throw new Error("Ragged splits must not point past values");for(let e=1;es[e])throw new Error("Ragged splits must be sorted in ascending order")}}(n,s);let l=1;for(let e=0;e=0){const e=o[r],t=e[e.length-1]-s[a];for(let e=a;e{if(e<0||e>=n){const r=vn(s,t.length,dn(t)).join(",");throw new Error(`indices[${r}] = ${e} is not in [0, ${n})`)}}))}(i,a,t[0][0]-1),0===s.length)throw new Error("params.rank must be nonzero");const l=s[0],{outSplits:u,valueSlices:c,numValues:h}=EN(i,a,e,l),d=function(e){const t=[];for(let n=0;ns[t]=e))}return t}(u),p=TN(n,s,r,c,h);return[d,p[0],p[1]]}const RN={kernelName:Mr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{paramsNestedSplits:r,paramsDenseValues:i,indices:a}=t,{outputRaggedRank:o}=s,l=r.map((e=>n.data.get(e.dataId).values)),u=r.map((e=>e.shape)),c=n.data.get(i.dataId).values,h=n.data.get(a.dataId).values,[d,p,f]=NN(l,u,c,i.shape,i.dtype,h,a.shape),m=d.map((e=>n.makeTensorInfo([e.length],"int32",e))),g=n.makeTensorInfo(f,i.dtype,p);return m.concat([g])}},ON=2147483647;function DN(e,t,n,s,r,i,a){if(t.length>1)throw new Error("starts must be a scalar or vector");if(r.length>1)throw new Error("limits must be a scalar or vector");if(a.length>1)throw new Error("deltas must be a scalar or vector");const o=0===t.length,l=0===r.length,u=0===a.length,c=[];o||c.push(t[0]),l||c.push(r[0]),u||c.push(a[0]);for(let e=1;e0&&rn)c=0;else if(c=Math.ceil(Math.abs((r-n)/a)),c>ON)throw new Error(`Requires ((limit - start) / delta) <= ${ON}`);d[t+1]=d[t]+c}const p=sn(n,d[h]);let f=0;for(let t=0;tn&&(n=t)}return n}static getMaxWidthValueRowID(e){const t=e.length;if(0===t)return 0;let n=0,s=e[0],r=0;for(let i=1;i"Final length of result must be equal to firstDimension.")),r}calculateOutputIndexRowSplit(e,t,n,s){const r=e.length,i=[];for(let a=0;a0&&i.length!==e[r-1])throw new Error("Invalid row split size.");return i}calculateOutputIndexValueRowID(e,t,n,s){const r=e.length,i=[];if(0===r)return[];let a=0,o=e[0];if(o>=t.length)throw new Error(`Got currentValueRowId=${o}, which is not less than ${t.length}`);let l=t[o];i.push(l);for(let u=1;u=0&&(++a,a=t.length)throw new Error(`Got nextValueRowId=${r} which is not less than ${t.length}`);l=t[r]}i.push(l)}if(i.length!==e.length)throw new Error("Invalid row ids.");return i}calculateOutputIndex(e,t,n,s){const r=this.getRowPartitionTensor(e),i=this.getRowPartitionTypeByDimension(e);switch(i){case zN.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(r,t,n,s);case zN.ROW_SPLITS:if(r.length-1>t.length)throw new Error(`Row partition size is greater than output size: ${r.length-1} > ${t.length}`);return this.calculateOutputIndexRowSplit(r,t,n,s);default:throw new Error(`Unsupported partition type: ${zN[i]}`)}}getFirstDimensionSize(){const e=this.rowPartitionValues[0];if(0===this.rowPartitionTypes.length)throw new Error("No row_partition_types given.");const t=this.rowPartitionTypes[0];switch(t){case zN.FIRST_DIM_SIZE:return e[0];case zN.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case zN.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${zN[t]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");const e=this.getFirstDimensionSize(),t=this.calculateOutputSize(e),n=new Array(this.raggedRank+1);n[n.length-1]=1;for(let e=n.length-2;e>=0;--e)n[e]=n[e+1]*t[e+1];const s=LN(t,!1),r=sn(this.valuesDType,Kt(s));if(n[0]*t[0]>0){let i=this.calculateFirstParentOutputIndex(e,n[0],t[0]);for(let e=1;e<=this.raggedRank;++e){i=this.calculateOutputIndex(e-1,i,n[e],t[e])}this.setOutput(this.raggedRank,i,r,s)}return[s,r]}setOutput(e,t,n,s){if(0===n.length)return;const r=this.values,i=n;let a=s.slice();a=a.slice(e+1);const o=Kt(a),l=t.length;let u=this.defaultValue;if(u.length!==o&&1!==u.length){const e=this.defaultValueShape;Ao((()=>{const t=Tc(u,e),n=Hc(t,a);u=n.dataSync()}))}let c=0,h=0,d=0;for(let e=0;e<=l;++e){let s=e=l){const e=n.length;s=Math.floor(e/o)}if(s>d)if(1===this.defaultValue.length)i.subarray(d*o,s*o).fill(this.defaultValue[0]),d=s;else for(;s>d;){BN(i.slice(d*o),u,o),++d}s<0?(c=e+1,h=d):(c=e,h=d,d=h+1)}else++d}}}function BN(e,t,n){for(let s=0;s= 0`);if(s<-1)throw new Error(`Dimension ${s} must be >= -1`);s=-1}n.push(s)}return n}function PN(e,t,n,s,r,i,a,o,l,u){return new FN(e,t,n,s,r,i,a,o,l,u).compute()}const UN={kernelName:Fr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{shape:r,values:i,defaultValue:a,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=s,u=n.data.get(r.dataId).values,c=n.data.get(i.dataId).values,h=n.data.get(a.dataId).values,d=o.map((e=>n.data.get(e.dataId).values)),p=o.map((e=>e.shape)),[f,m]=PN(u,r.shape,c,i.shape,i.dtype,h,a.shape,d,p,l);return n.makeTensorInfo(f,i.dtype,m)}};function VN(e,t,n,s){if(e===t||e1)return gn(0,s);const r=gn(Math.abs(Math.ceil((t-e)/n)),s);t1/e)),GN={kernelName:Pr,backendName:"cpu",kernelFunc:jN};const qN={kernelName:Gr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{images:r}=t,{alignCorners:i,halfPixelCenters:a,size:o}=s;PS(r,"resizeBilinear");const l=dn(r.shape),[u,c]=o,[h,d,p,f]=r.shape,m=n.data.get(r.dataId).values,g=new Float32Array(Kt([h,u,c,f])),y=[i&&u>1?d-1:d,i&&c>1?p-1:p],b=[i&&u>1?u-1:u,i&&c>1?c-1:c];let w=0;const v=y[0]/b[0],x=y[1]/b[1];for(let e=0;e1?u-1:u,a&&p>1?c-1:c],g=[a&&d>1?d-1:d,a&&p>1?p-1:p],y=m[0]/g[0],b=m[1]/g[1],w=n.data.get(i.dataId).values;let v=0;for(let e=0;e1?d-1:d,i&&c>1?p-1:p],b=[i&&u>1?u-1:u,i&&c>1?c-1:c],w=y[0]/b[0],v=y[1]/b[1];let x=0;for(let e=0;e1?c-1:c,a&&f>1?h-1:h],b=[a&&p>1?p-1:p,a&&f>1?f-1:f],w=y[0]/b[0],v=y[1]/b[1],x=1/w,A=1/v,C=2*Math.ceil(x)+2,k=2*Math.ceil(A)+2;for(let e=0;e=p)continue;const d=t+u*l[1],m=u*w;if(e===Math.min(c-1,a?Math.round(m):Math.floor(m)))for(let e=0;e=f)continue;const r=d+t*l[2],i=t*v;s===Math.min(h-1,a?Math.round(i):Math.floor(i))&&(o+=g[r+n])}}m[i+n]=o}}}}return n.makeTensorInfo(r.shape,r.dtype,m)}};const XN={kernelName:Kr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{dims:i}=s;PS(r,"reverse");const a=r.shape.length,o=en(i,r.shape);if(0===a)return KS({inputs:{x:r},backend:n});const l=new Na(r.shape,r.dtype),u=n.bufferSync(r);for(let e=0;en[e]=r.shape[e]-1-n[e])),l.set(u.get(...n),...t)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}},ZN={kernelName:Bi,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{image:s}=e,{radians:r,fillValue:i,center:a}=t,o=n,l=nn(s.dtype,Kt(s.shape)),[u,c,h,d]=s.shape,[p,f]=zm(a,c,h),m=Math.sin(r),g=Math.cos(r),y=o.data.get(s.dataId).values;for(let e=0;e=0&&v=0&&x{const t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1})),QN={kernelName:$r,backendName:"cpu",kernelFunc:YN},JN=WS((e=>1/Math.sqrt(e))),eR=GS(Xr,JN),tR={kernelName:Xr,backendName:"cpu",kernelFunc:eR};function nR(e,t,n,s,r,i,a,o,l,u){const c=[s/r,r],h=e.values,d=t.values;if(0===s)return Tl(n,t.dtype);const p=l instanceof Na?l:Tl(c,t.dtype);"string"==typeof l||"number"==typeof l?p.values.fill(l):"boolean"==typeof l&&p.values.fill(+l);for(let e=0;e=s/r)throw new Error(`Invalid indices: ${i} does not index into ${n}`);for(let n=0;n1||1===r.shape.length?1:Kt(r.shape.slice(1));for(let e=0;ee>=0?uR*e:lR*(Math.exp(e)-1))),hR={kernelName:ei,backendName:"cpu",kernelFunc:cR},dR=jS(ri,(e=>e<0?-1:e>0?1:0)),pR={kernelName:ri,backendName:"cpu",kernelFunc:dR},fR=jS(ni,(e=>Math.sin(e))),mR={kernelName:ni,backendName:"cpu",kernelFunc:fR},gR=jS(si,(e=>Math.sinh(e))),yR={kernelName:si,backendName:"cpu",kernelFunc:gR},bR=Math.log(1.1920928955078125e-7)+2,wR=jS(ai,(e=>{const t=e>-bR,n=e=l)throw new Error(yg(t,n,l));++f[n],d=d&&n>=p,p=n}let m=!0;for(let e=0;e0&&(f[e]+=f[e-1])}if(m&&d){const t=e,n=s;for(let e=0;eNumber(e))))),n.makeTensorInfo([m.length],s.dtype,new Int32Array(m))]}};function kR(e,t,n,s,r){const i=Kt(s),a=t[0],o=r.length,l=[];let u=1,c=-1;for(let e=0;e0){d[h-1]=1;for(let e=h-2;e>=0;--e)d[e]=d[e+1]*s[e+1]}const p=[];if(o>0){p[o-1]=1;for(let e=o-2;e>=0;--e)p[e]=p[e+1]*l[e+1]}const f=sn(n,a*o);for(let t=0;t0?r[o-1]+1:0;if(c<0)throw new Error("segment ids must be >= 0");const h=t.slice();h[0]=c;const d=sn(n,h.reduce(((e,t)=>e*t),1));if(0===o)return c>0&&d.fill(a),[d,h];if(c<=0)throw new Error("segment ids must be >= 0");let p=0,f=1,m=0,g=r[p];for(;;){let t=0;if(f=t)throw new Error("segment ids are not increasing")}if(g<0||g>=c)throw new Error(Sg(g,c));g>m&&d.fill(a,m*u,g*u);for(let t=p;t=l[0])throw new Error(_g(t,s[t],l[0]));for(let t=0;to)break}return m{const t=[...c];t[o]=e;const s=lE({inputs:{x:r},backend:n,attrs:{begin:u,size:t}});return u[o]+=e,s}))}},RR=WS((e=>Math.sqrt(e))),OR=jS(oi,(e=>Math.sqrt(e))),DR={kernelName:oi,backendName:"cpu",kernelFunc:OR},MR={kernelName:bi,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{const{x:n}=e,s=t;PS(n,"square");const r=s.data.get(n.dataId).values,i=new Float32Array(r.length);for(let e=0;e{const n=e-t;return n*n})),FR=y_(yi,zR),BR={kernelName:yi,backendName:"cpu",kernelFunc:FR},LR=WS(((e,t)=>{const{pattern:n,replaceGlobal:s,rewrite:r}=t;return e.replace(new RegExp(n,s?"g":""),r)})),PR=GS(wi,LR),UR={kernelName:wi,backendName:"cpu",kernelFunc:PR},VR=jS(zi,((e,t)=>{const n=t;return isNaN(e)?NaN:e>0?1:n.alpha})),WR={kernelName:zi,backendName:"cpu",kernelFunc:VR};function jR(e,t,n,s){const r=Tl(e,t.dtype);for(let e=0;e=1,(()=>`Input must have rank at least 1, got: ${r.shape.length}`));const e=Vu(b,w,v),t=lE({inputs:{x:r},backend:n,attrs:{begin:b,size:e}});x=C_({inputs:{x:t},backend:n,attrs:{shape:f}}),n.disposeIntermediateTensorInfo(t)}else{const e=jR(p,n.bufferSync(r),v,b);x=n.makeTensorInfo(f,e.dtype,e.values)}return x}};class qR{constructor(e,t,n,s,r,i){this.separator=ma(e),this.nGramWidths=t,this.leftPad=ma(n),this.rightPad=ma(s),this.padWidth=r,this.preserveShort=i}getPadWidth(e){return Math.min(this.padWidth<0?e-1:this.padWidth,e-1)}getNumNGrams(e,t){const n=this.getPadWidth(t);return Math.max(0,e+2*n-t+1)}createNGrams(e,t,n,s,r,i){for(let a=0;a0?0:a-o);let d=0;d+=l*this.leftPad.length;for(let t=0;te.forEach((e=>p[f++]=e));for(let e=0;e0){m(e[h+c-1]);for(let e=0;e0){let e=t[0];if(0!==e)throw new Error(`First split value must be 0, got ${e}`);for(let r=1;r=e;if(s=s&&t[r]<=n,!s)throw new Error(`Invalid split value ${t[r]}, must be in [${e}, ${n}]`);e=t[r]}if(e!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${e}`)}const r=s-1,i=sn("int32",s);if(0===n||0===s){const e=new Array(n);for(let e=0;e<=r;++e)i[e]=0;return[e,i]}i[0]=0;for(let e=1;e<=r;++e){const n=t[e]-t[e-1];let s=0;this.nGramWidths.forEach((e=>{s+=this.getNumNGrams(n,e)})),this.preserveShort&&n>0&&0===s&&(s=1),i[e]=i[e-1]+s}const a=new Array(i[r]);for(let n=0;n{const o=t[n+1]-t[n],l=this.getNumNGrams(o,i);this.createNGrams(e,s,a,r,l,i),r+=l})),this.preserveShort&&r===i[n]){const i=t[n+1]-t[n];if(0===i)continue;const o=i+2*this.padWidth,l=1;this.createNGrams(e,s,a,r,l,o)}}return[a,i]}}function HR(e,t,n,s,r,i,a,o){return new qR(n,s,r,i,a,o).compute(e,t)}const KR={kernelName:xi,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{separator:r,nGramWidths:i,leftPad:a,rightPad:o,padWidth:l,preserveShortSequences:u}=s,{data:c,dataSplits:h}=t,d=n.data.get(c.dataId).values,p=n.data.get(h.dataId).values,[f,m]=HR(d,p,r,i,a,o,l,u);return[n.makeTensorInfo([f.length],"string",f),n.makeTensorInfo(h.shape,"int32",m)]}};function $R(e,t,n,s){if(!e.length)return;if(0===t.length){for(let t=0;tMath.tan(e))),eO={kernelName:Si,backendName:"cpu",kernelFunc:JR},tO=jS(_i,(e=>Math.tanh(e)));const nO={kernelName:Yr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{tensor:s,indices:r,updates:i}=t,{sliceRank:a,numUpdates:o,sliceSize:l,strides:u,outputSize:c}=Vp(0,r,s.shape),h=n.bufferSync(r),d=n.bufferSync(i),p=n.bufferSync(s),f=nR(h,d,s.shape,c,l,o,a,u,p,!1);return n.makeTensorInfo(s.shape,f.dtype,f.values)}};function sO(e,t){const n=new Array(e.rank);for(let s=0;s{const n=t.value-e.value;return 0===n?e.index-t.index:n};function aO(e,t,n=0,s=e.length-1){for(;s>n;){if(s-n>600){const r=s-n+1,i=t-n+1,a=Math.log(r),o=.5*Math.exp(2*a/3),l=.5*Math.sqrt(a*o*(r-o)/r)*Math.sign(i-r/2);aO(e,t,Math.max(n,Math.floor(t-i*o/r+l)),Math.min(s,Math.floor(t+(r-i)*o/r+l)))}const r=e[t];let i=n,a=s;for(jt(e,n,t),iO(e[s],r)>0&&jt(e,n,s);i0;)a-=1}0===iO(e[n],r)?jt(e,n,a):(a+=1,jt(e,a,s)),a<=t&&(n=a+1),t<=a&&(s=a-1)}}function oO(e,t,n,s,r){const i=t[t.length-1],[a,o]=[e.length/i,i],l=nn(n,a*s),u=nn("int32",a*s);for(let t=0;ta[t]={value:e,index:t})),st-1)if(t<=1)n=0;else{const e=2*t;n-=e*Math.trunc(n/e),n>=t&&(n=e-n-1)}return Vt(0,n,t-1)}(e,t);case"wrap":return function(e,t){let n=e;if(n<0)if(t<=1)n=0;else{const e=t-1;n+=t*(Math.trunc(-n/e)+1)}else if(n>t-1)if(t<=1)n=0;else{const e=t-1;n-=t*Math.trunc(n/e)}return Vt(0,n,t-1)}(e,t);case"nearest":return function(e,t){return Vt(0,e,t-1)}(e,t);default:return function(e,t){return e}(e)}}function hO(e,t,n,s,r,i,a,o,l,u,c){return 0<=o&&o{for(let n=0;nn.disposeIntermediateTensorInfo(e))),h}},bO=[E_,T_,R_,D_,A_,M_,L_,P_,U_,V_,j_,q_,K_,Z_,Q_,nE,sE,rE,iE,__,aE,cE,pE,gE,yE,g_,vE,AE,c_,CE,IE,NE,RE,OE,DE,ME,zE,BE,PE,UE,VE,WE,jE,GE,HE,KE,$E,XE,ZE,YE,QE,JE,aI,HS,oI,cI,bI,xI,CI,_I,BI,PI,UI,jI,HI,KI,$I,ZI,QI,tT,rT,$S,iT,_E,oT,uT,hT,ZS,fT,yT,wT,AT,kT,ET,TT,OT,DT,MT,BT,UT,VT,WT,jT,GT,qT,HT,KT,ZT,YT,eN,sN,sI,iN,oN,uN,hN,fN,mN,bN,vN,xN,kN,e_,_N,RN,MN,UN,WN,p_,TI,GN,n_,r_,k_,qN,HN,KN,$N,XN,ZN,QN,tR,sR,aR,oR,hR,o_,pR,mR,yR,uE,nN,vR,xR,CR,SR,ER,IR,TR,NR,DR,MR,BR,UR,WR,GR,KR,ZR,QR,DI,iI,eO,{kernelName:_i,backendName:"cpu",kernelFunc:tO},nO,rO,lO,uO,B_,mO,gO,yO,yN];for(const e of bO)$i(e);const wO={},vO={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function xO(e,t){if(!(e in wO)||null!=t){const n=function(e,t){if(1!==e&&2!==e)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");const n=null==t?function(e){if(Sn().getBool("IS_SAFARI")||"undefined"==typeof OffscreenCanvas||2!==e){if("undefined"!=typeof document)return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}return new OffscreenCanvas(300,150)}(e):t;n.addEventListener("webglcontextlost",(t=>{t.preventDefault(),delete wO[e]}),!1),Sn().getBool("SOFTWARE_WEBGL_ENABLED")&&(vO.failIfMajorPerformanceCaveat=!1);if(1===e)return n.getContext("webgl",vO)||n.getContext("experimental-webgl",vO);return n.getContext("webgl2",vO)}(e,t);if(null===n)return null;wO[e]=n}const n=wO[e];return null==n||n.isContextLost()?(delete wO[e],xO(e)):(n.disable(n.DEPTH_TEST),n.disable(n.STENCIL_TEST),n.disable(n.BLEND),n.disable(n.DITHER),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SAMPLE_COVERAGE),n.enable(n.SCISSOR_TEST),n.enable(n.CULL_FACE),n.cullFace(n.BACK),wO[e])}var AO,CO,kO;function SO(e,t){return[t,e]}function _O(e){const t=Kt(e);return Zt(Math.ceil(t/4))}function EO(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function IO(e,t){const n=e;let s,r,i,a,o,l,u,c,h,d;return 2===Sn().getNumber("WEBGL_VERSION")?(s=n.R32F,r=n.R16F,i=n.RGBA16F,a=n.RGBA32F,o=n.RED,u=4,c=1,h=n.HALF_FLOAT,d=n.FLOAT,l=n.RGBA8):(s=e.RGBA,r=e.RGBA,i=e.RGBA,a=n.RGBA,o=e.RGBA,u=4,c=4,h=null!=t?t.HALF_FLOAT_OES:null,d=e.FLOAT,l=e.RGBA),{internalFormatFloat:s,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:i,internalFormatPackedFloat:a,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:c,textureTypeHalfFloat:h,textureTypeFloat:d}}function TO(e,t){const n=t();return Sn().getBool("DEBUG")&&function(e){const t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+function(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}`}}(e,t))}(e),n}!function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"}(AO||(AO={})),function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"}(CO||(CO={})),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"}(kO||(kO={}));function NO(e){return!!(Sn().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||0===e||5.96e-8e.getExtension(t)),'Extension "'+t+'" not supported on this browser.')}const OO=/ERROR: [0-9]+:([0-9]+):/g;function DO(e,t){const n=OO.exec(t);if(null==n)return;const s=+n[1],r=e.split("\n"),i=r.length.toString().length+2,a=r.map(((e,t)=>Yt((t+1).toString(),i)+e));let o=0;for(let e=0;ee.validateProgram(t))),!1===e.getProgramParameter(t,e.VALIDATE_STATUS))throw new Error("Shader program validation failed.")}function zO(e,t,n,s,r,i,a){const o=e.getAttribLocation(t,n);return-1!==o&&(TO(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,s))),TO(e,(()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,i,a))),TO(e,(()=>e.enableVertexAttribArray(o))),!0)}function FO(e,t,n,s){TO(e,(()=>function(e,t,n){VO(e,n),TO(e,(()=>e.activeTexture(e.TEXTURE0+n))),TO(e,(()=>e.bindTexture(e.TEXTURE_2D,t)))}(e,t,s))),TO(e,(()=>e.uniform1i(n,s)))}function BO(e,t,n){TO(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,n))),TO(e,(()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0)))}function LO(e,t){TO(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,t))),TO(e,(()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0)))}function PO(e){const t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+function(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}`}}(e,t))}function UO(e,t,n){const s=TO(e,(()=>t()));if(null==s)throw new Error(n);return s}function VO(e,t){const n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,s=t+e.TEXTURE0;if(sn){throw new Error(`textureUnit must be in ${`[gl.TEXTURE0, gl.TEXTURE${n}]`}.`)}}function WO(e,t=2){return Kt(e.slice(0,e.length-t))}function jO(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 GO(e){let t=[1,1,1];return 0===e.length||1===e.length&&1===e[0]||(t=[WO(e),...jO(e)]),t}function qO(e){return e%2==0}function HO(e,t){if($t(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){const n=e[e.length-1],s=t[t.length-1];if(n===s)return!0;if(qO(n)&&qO(s)&&(1===e[0]||1===t[0]))return!0}return e[1]===t[1]&&qO(e[0])&&qO(t[0])}let KO,$O;function XO(e,t){return null!=e.getExtension(t)}function ZO(e){try{if(null!=xO(e))return!0}catch(e){return!1}return!1}function YO(e){if(0===e)return!1;const t=xO(e);if(1!==e){if(XO(t,"EXT_color_buffer_float"))return QO(t);const e="EXT_color_buffer_half_float";if(XO(t,e)){const n=t.getExtension(e);return function(e,t){const n=IO(e,t),s=e.createTexture();e.bindTexture(e.TEXTURE_2D,s);const r=1,i=1;e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,r,i,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);const a=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,a),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,s,0);const o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(s),e.deleteFramebuffer(a),o}(t,n)}return!1}if(!XO(t,"OES_texture_float"))return!1;if(!XO(t,"WEBGL_color_buffer_float"))return!1;return QO(t)}function QO(e){const t=IO(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);const s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);const r=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(s),r}function JO(e,t){Array.isArray(e)||(e=[e]),e.forEach((e=>{null!=e&&Gt("complex64"!==e.dtype,(()=>`${t} does not support complex64 tensors in the WebGL backend.`))}))}const eD=Sn();function tD(){let e,t,n,s,r,i,a,o,l,u;return 2===Sn().getNumber("WEBGL_VERSION")?(e="#version 300 es",t="in",n="out",s="in",r="texture",i="outputColor",a="out vec4 outputColor;",o=Sn().getBool("WEBGL2_ISNAN_CUSTOM")?"\n bool isnan_custom(float val) {\n uint floatToUint = floatBitsToUint(val);\n return (floatToUint & 0x7fffffffu) > 0x7f800000u;\n }\n\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan_custom(val.x),\n isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w));\n }\n\n #define isnan(value) isnan_custom(value)\n ":"",l="",u="\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",s="varying",r="texture2D",i="gl_FragColor",a="",o="\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 ",l="\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 ",u="\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:s,texture2D:r,output:i,defineOutput:a,defineSpecialNaN:o,defineSpecialInf:l,defineRound:u}}function nD(e,t,n="index"){const s=dn(t);return s.map(((t,r)=>`${`int ${e[r]} = ${n} / ${t}`}; ${r===s.length-1?`int ${e[r+1]} = ${n} - ${e[r]} * ${t}`:`index -= ${e[r]} * ${t}`};`)).join("")}function sD(e,t,n="index"){const s=dn(t);return s.map(((t,r)=>`${`int ${e[r]} = ${n} / outShapeStrides[${r}]`}; ${r===s.length-1?`int ${e[r+1]} = ${n} - ${e[r]} * outShapeStrides[${r}]`:`index -= ${e[r]} * outShapeStrides[${r}]`};`)).join("")}function rD(e,t,n="index"){const s=function(e,t){const n=e.length,s=e.map((e=>`${t}[${e}]`)),r=new Array(n-1);r[n-2]=s[n-1];for(let e=n-3;e>=0;--e)r[e]=`(${r[e+1]} * ${s[e+1]})`;return r}(e.map(((e,t)=>t)),t);return s.map(((t,r)=>`${`int ${e[r]} = ${n} / ${s[r]}`}; ${r===s.length-1?`int ${e[r+1]} = ${n} - ${e[r]} * ${s[r]}`:`index -= ${e[r]} * ${s[r]}`};`)).join("")}function iD(e){const t=dn(e).map((e=>e.toString()));return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z;\n }\n`}eD.registerFlag("HAS_WEBGL",(()=>eD.getNumber("WEBGL_VERSION")>0)),eD.registerFlag("WEBGL_VERSION",(()=>ZO(2)?2:ZO(1)?1:0)),eD.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",(()=>!1)),eD.registerFlag("WEBGL_BUFFER_SUPPORTED",(()=>2===eD.get("WEBGL_VERSION"))),eD.registerFlag("WEBGL_CPU_FORWARD",(()=>!0)),eD.registerFlag("WEBGL_FORCE_F16_TEXTURES",(()=>!1)),eD.registerFlag("WEBGL_PACK",(()=>eD.getBool("HAS_WEBGL"))),eD.registerFlag("WEBGL_PACK_NORMALIZATION",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_PACK_CLIP",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_PACK_DEPTHWISECONV",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_PACK_REDUCE",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_LAZILY_UNPACK",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_CONV_IM2COL",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_PACK_CONV2DTRANSPOSE",(()=>eD.getBool("WEBGL_PACK"))),eD.registerFlag("WEBGL_MAX_TEXTURE_SIZE",(()=>function(e){if(null==KO){const t=xO(e);KO=t.getParameter(t.MAX_TEXTURE_SIZE)}return KO}(eD.getNumber("WEBGL_VERSION")))),eD.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",(()=>function(e){if(null==$O){const t=xO(e);$O=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,$O)}(eD.getNumber("WEBGL_VERSION")))),eD.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",(()=>{const e=eD.getNumber("WEBGL_VERSION");return 0===e?0:function(e){if(0===e)return 0;let t;const n=xO(e);return t=XO(n,"EXT_disjoint_timer_query_webgl2")&&2===e?2:XO(n,"EXT_disjoint_timer_query")?1:0,t}(e)})),eD.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",(()=>eD.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!ro())),eD.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",(()=>function(e){if(0===e)return!1;const t=xO(e);if(1===e){if(!XO(t,"OES_texture_float"))return!1}else if(!XO(t,"EXT_color_buffer_float"))return!1;return QO(t)}(eD.getNumber("WEBGL_VERSION")))),eD.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",(()=>!eD.getBool("WEBGL_FORCE_F16_TEXTURES")&&eD.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"))),eD.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",(()=>YO(eD.getNumber("WEBGL_VERSION")))),eD.registerFlag("WEBGL_FENCE_API_ENABLED",(()=>{return 2===(e=eD.getNumber("WEBGL_VERSION"))&&null!=xO(e).fenceSync;var e})),eD.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",(()=>eD.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0)),eD.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",(()=>-1),(e=>{if("number"!=typeof e)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be a number but got ${e}.`);if(e<0&&-1!==e)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)})),eD.registerFlag("WEBGL_FLUSH_THRESHOLD",(()=>ro()?1:-1),(e=>{if("number"!=typeof e)throw new Error(`WEBGL_FLUSH_THRESHOLD must be a number but got ${e}.`);if(e<0&&-1!==e)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${e}.`)})),eD.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",(()=>128)),eD.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",(()=>!1)),eD.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",(()=>1e5)),eD.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",(()=>128)),eD.registerFlag("WEBGL_EXP_CONV",(()=>!1)),eD.registerFlag("SOFTWARE_WEBGL_ENABLED",(()=>eD.getBool("IS_TEST"))),eD.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",(()=>1/0)),eD.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",(()=>!1)),eD.registerFlag("WEBGL2_ISNAN_CUSTOM",(()=>!1)),eD.registerFlag("ENGINE_COMPILE_ONLY",(()=>!1));const aD="\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",{getBroadcastDims:oD}=r;function lD(e,t,n){const s=[];if(e.forEach((e=>{const t=Kt(e.shapeInfo.logicalShape);if(e.shapeInfo.isUniform?s.push(`uniform float ${e.name}${t>1?`[${t}]`:""};`):(s.push(`uniform sampler2D ${e.name};`),s.push(`uniform int offset${e.name};`)),n.enableShapeUniforms){const{uniformShape:t}=wD(n.packedInputs,e.shapeInfo.logicalShape,e.shapeInfo.texShape);switch(t.length){case 1:s.push(`uniform int ${e.name}Shape;`);break;case 2:s.push(`uniform ivec2 ${e.name}Shape;`);break;case 3:s.push(`uniform ivec3 ${e.name}Shape;`);break;case 4:s.push(`uniform ivec4 ${e.name}Shape;`)}s.push(`uniform ivec2 ${e.name}TexShape;`)}})),n.enableShapeUniforms){switch(t.logicalShape.length){case 1:s.push("uniform int outShape;");break;case 2:s.push("uniform ivec2 outShape;"),s.push("uniform int outShapeStrides;");break;case 3:s.push("uniform ivec3 outShape;"),s.push("uniform ivec2 outShapeStrides;");break;case 4:s.push("uniform ivec4 outShape;"),s.push("uniform ivec3 outShapeStrides;")}s.push("uniform ivec2 outTexShape;")}n.customUniforms&&n.customUniforms.forEach((e=>{s.push(`uniform ${e.type} ${e.name}${e.arrayIndex?`[${e.arrayIndex}]`:""};`)}));const r=s.join("\n"),i=e.map((e=>function(e,t,n=!1,s){let r="";r+=n?cD(e,s):uD(e,s);const i=e.shapeInfo.logicalShape,a=t.logicalShape;i.length<=a.length&&(r+=n?function(e,t){const n=e.name,s=n.charAt(0).toUpperCase()+n.slice(1),r="get"+s+"AtOutCoords",i=e.shapeInfo.logicalShape.length,a=t.logicalShape.length,o=oD(e.shapeInfo.logicalShape,t.logicalShape),l=bD(a),u=a-i;let c;const h=["x","y","z","w","u","v"];c=0===i?"":a<2&&o.length>=1?"coords = 0;":o.map((e=>`coords.${h[e+u]} = 0;`)).join("\n");let d="";d=a<2&&i>0?"coords":e.shapeInfo.logicalShape.map(((e,t)=>`coords.${h[t+u]}`)).join(", ");let p="return outputValue;";const f=1===Kt(e.shapeInfo.logicalShape),m=Kt(t.logicalShape),g=1===m;if(1!==i||f||g){if(f&&!g)p=1===a?"\n return vec4(outputValue.x, outputValue.x, 0., 0.);\n ":"\n return vec4(outputValue.x);\n ";else if(o.length){const e=i-2,t=i-1;o.indexOf(e)>-1&&o.indexOf(t)>-1?p="return vec4(outputValue.x);":o.indexOf(e)>-1?p="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":o.indexOf(t)>-1&&(p="return vec4(outputValue.xx, outputValue.zz);")}}else p="\n return vec4(outputValue.xy, outputValue.xy);\n ";return`\n vec4 ${r}() {\n ${l} coords = getOutputCoords();\n ${c}\n vec4 outputValue = get${s}(${d});\n ${p}\n }\n `}(e,t):function(e,t){const n=e.name,s=n.charAt(0).toUpperCase()+n.slice(1),r="get"+s+"AtOutCoords",i=t.texShape,a=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&null==e.shapeInfo.flatOffset&&$t(a,i))return`\n float ${r}() {\n return sampleTexture(${n}, resultUV);\n }\n `;const u=bD(l),c=oD(e.shapeInfo.logicalShape,t.logicalShape),h=l-o;let d;const p=["x","y","z","w","u","v"];d=0===o?"":l<2&&c.length>=1?"coords = 0;":c.map((e=>`coords.${p[e+h]} = 0;`)).join("\n");let f="";f=l<2&&o>0?"coords":e.shapeInfo.logicalShape.map(((e,t)=>`coords.${p[t+h]}`)).join(", ");return`\n float ${r}() {\n ${u} coords = getOutputCoords();\n ${d}\n return get${s}(${f});\n }\n `}(e,t));return r}(e,t,n.packedInputs,n.enableShapeUniforms))).join("\n"),a=t.texShape,o=tD(),l=function(e){return`\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\n return ${e.texture2D}(textureSampler, uv).r;\n }\n `}(o);let u,c,h=function(e){const t=`${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 ${hD}\n ${dD}\n ${pD}\n `;return t}(o);t.isPacked?(u=function(e,t,n){switch(e.length){case 0:return mD();case 1:return function(e,t,n){const s=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(1===s[0])return n?"\n int getOutputCoords() {\n return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0));\n }\n ":`\n int getOutputCoords() {\n return 2 * int(resultUV.x * ${s[1]}.0);\n }\n `;if(1===s[1])return n?"\n int getOutputCoords() {\n return 2 * int(resultUV.y * ceil(float(outTexShape[0]) / 2.0));\n }\n ":`\n int getOutputCoords() {\n return 2 * int(resultUV.y * ${s[0]}.0);\n }\n `;if(n)return"\n int getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n return 2 * (resTexRC.x * packedTexShape[1] + resTexRC.y);\n }\n ";return`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${s[0]}, ${s[1]}));\n return 2 * (resTexRC.x * ${s[1]} + resTexRC.y);\n }\n `}(0,t,n);case 2:return function(e,t,n){const s=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if($t(e,t))return n?"\n ivec2 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n return 2 * ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1]));\n }\n ":`\n ivec2 getOutputCoords() {\n return 2 * ivec2(resultUV.yx * vec2(${s[0]}, ${s[1]}));\n }\n `;const r=Math.ceil(e[1]/2);if(n)return"\n ivec2 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n int texelsInLogicalRow = int(ceil(float(outShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec2(r, c);\n }\n ";return`\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${s[0]}, ${s[1]}));\n\n int index = resTexRC.x * ${s[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,n);case 3:return function(e,t,n){if(n)return"\n ivec3 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0));\n int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n\n int b = index / texelsInBatch;\n index -= b * texelsInBatch;\n\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec3(b, r, c);\n }\n ";const s=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],r=Math.ceil(e[2]/2),i=r*Math.ceil(e[1]/2);return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${s[0]}, ${s[1]}));\n int index = resTexRC.x * ${s[1]} + resTexRC.y;\n\n int b = index / ${i};\n index -= b * ${i};\n\n int r = 2 * (index / ${r});\n int c = imod(index, ${r}) * 2;\n\n return ivec3(b, r, c);\n }\n `}(e,t,n);default:return function(e,t,n){if(n)return"\n ivec4 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n\n int texelsInLogicalRow = int(ceil(float(outShape[3]) / 2.0));\n int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[2]) / 2.0));\n int texelsInBatchN = texelsInBatch * outShape[1];\n\n int b2 = index / texelsInBatchN;\n index -= b2 * texelsInBatchN;\n\n int b = index / texelsInBatch;\n index -= b * texelsInBatch;\n\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec4(b2, b, r, c);\n }\n ";const s=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],r=Math.ceil(e[e.length-1]/2),i=r*Math.ceil(e[e.length-2]/2);let a=i,o="",l="b, r, c";for(let t=2;t1&&!$t(t,n)&&s.lengthe[t])).join(", ")}function AD(e,t,n,s){const r=n.map(((e,n)=>{const s={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&&(s.flatOffset=e.texData.slice.flatOffset),{name:t.variableNames[n],shapeInfo:s}})),i=r.map((e=>e.shapeInfo)),a={logicalShape:s.shape,texShape:s.texData.texShape,isUniform:!1,isPacked:s.texData.isPacked,flatOffset:null},o=lD(r,a,t),l=function(e,t){const n=UO(e,(()=>e.createShader(e.FRAGMENT_SHADER)),"Unable to create fragment WebGLShader.");if(TO(e,(()=>e.shaderSource(n,t))),TO(e,(()=>e.compileShader(n))),Sn().get("ENGINE_COMPILE_ONLY"))return n;if(!1===e.getShaderParameter(n,e.COMPILE_STATUS))throw DO(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}(e.gl,o),u=e.createProgram(l);return Sn().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:i,outShapeInfo:a,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(e.buildVao(u),Object.assign({program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:i,outShapeInfo:a},CD(e,t,u)))}function CD(e,t,n){const s=[],r=[];let i,a,o,l=null,u=null;u=e.getUniformLocation(n,"NAN",!1),1===Sn().getNumber("WEBGL_VERSION")&&(l=e.getUniformLocation(n,"INFINITY",!1));const c=!1;for(const r of t.variableNames){const i={name:r,uniform:e.getUniformLocation(n,r,c),offset:e.getUniformLocation(n,`offset${r}`,c)};t.enableShapeUniforms&&(i.shape=e.getUniformLocation(n,`${r}Shape`,c),i.texShape=e.getUniformLocation(n,`${r}TexShape`,c)),s.push(i)}if(t.enableShapeUniforms&&(i=e.getUniformLocation(n,"outShape",c),o=e.getUniformLocation(n,"outShapeStrides",c),a=e.getUniformLocation(n,"outTexShape",c)),t.customUniforms)for(const s of t.customUniforms)r.push(e.getUniformLocation(n,s.name,c));return{variablesLocations:s,customUniformLocations:r,infLoc:l,nanLoc:u,outShapeLocation:i,outShapeStridesLocation:o,outTexShapeLocation:a}}function kD(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach(((e,n)=>{const s=e.logicalShape,r=t[n],i=r.shape;if(!$t(s,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${s} and ${i} must match`);if(e.isUniform&&r.isUniform)return;const a=e.texShape,o=r.isUniform?null:r.texData.texShape;if(!$t(a,o))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${a} and ${o} must match`)}))}function SD(e){return Sn().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}class _D{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=AO.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];const t=tD();this.outputShape=e,this.enableShapeUniforms=SD(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?sD(["r","c","d"],e):nD(["r","c","d"],e)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1]));\n int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getA(rc.x, rc.y, rc.z);\n }\n\n ${t.output} = result;\n }\n `}}class ED{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=AO.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];const t=tD();this.outputShape=e,this.enableShapeUniforms=SD(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?sD(["r","c","d"],e):nD(["r","c","d"],e)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1]));\n int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z));\n }\n\n ${t.output} = result;\n }\n `}}class ID{constructor(e){this.variableNames=["A"],this.outTexUsage=CO.DOWNLOAD;const t=tD();this.outputShape=e,this.userCode=`\n ${aD}\n\n void main() {\n float x = getAAtOutCoords();\n ${t.output} = encode_float(x);\n }\n `}}class TD{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=CO.DOWNLOAD;const t=tD();this.outputShape=e,this.userCode=`\n ${aD}\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 `}}const ND={R:0,G:1,B:2,A:3};class RD{constructor(e,t=!1,n="RGBA"){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];const s=tD();this.outputShape=e,this.enableShapeUniforms=SD(this.outputShape.length);let r="result";t&&(r="floor(result * 255. + 0.5)");let i="";for(let e=0;ee.createShader(e.VERTEX_SHADER)),"Unable to create vertex WebGLShader.");if(TO(e,(()=>e.shaderSource(n,t))),TO(e,(()=>e.compileShader(n))),!1===e.getShaderParameter(n,e.COMPILE_STATUS))throw new Error("Failed to compile vertex shader.");return n}(e,`${t.version}\n precision highp float;\n ${t.attribute} vec3 clipSpacePos;\n ${t.attribute} vec2 uv;\n ${t.varyingVs} vec2 resultUV;\n\n void main() {\n gl_Position = vec4(clipSpacePos, 1);\n resultUV = uv;\n }`)}function MD(e){return function(e,t){const n=UO(e,(()=>e.createBuffer()),"Unable to create WebGLBuffer");return TO(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,n))),TO(e,(()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW))),n}(e,new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]))}function zD(e){return function(e,t){const n=UO(e,(()=>e.createBuffer()),"Unable to create WebGLBuffer");return TO(e,(()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n))),TO(e,(()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW))),n}(e,new Uint16Array([0,1,2,2,1,3]))}function FD(e,t,n,s,r,i){!function(e,t){const n=Sn().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0)throw new Error(`Requested texture size [${e}x${t}] is invalid.`);if(e>n||t>n)throw new Error(`Requested texture size [${e}x${t}] greater than WebGL maximum on this browser / GPU [${n}x${n}].`)}(t,n);const a=function(e){return UO(e,(()=>e.createTexture()),"Unable to create WebGLTexture.")}(e),o=e.TEXTURE_2D;return TO(e,(()=>e.bindTexture(o,a))),TO(e,(()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE))),TO(e,(()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE))),TO(e,(()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST))),TO(e,(()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST))),1===Sn().getNumber("WEBGL_VERSION")?TO(e,(()=>e.texImage2D(o,0,s,t,n,0,r,i,null))):TO(e,(()=>e.texStorage2D(o,1,s,t,n))),TO(e,(()=>e.bindTexture(e.TEXTURE_2D,null))),{texture:a,texShape:[n,t]}}function BD(e){return e.internalFormatFloat}function LD(e){return e.internalFormatHalfFloat}function PD(e){return e.downloadTextureFormat}function UD(e){return e.internalFormatPackedFloat}function VD(e){return e.internalFormatPackedHalfFloat}function WD(e,t,n,s,r,i,a,o){const l=e,u=new Float32Array(function(e,t){const[n,s]=EO(e,t);return n*s*4}(i,a));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,u),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),u}class jD{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];const t=Sn().getNumber("WEBGL_VERSION");if(null!=e?(this.gl=e,function(e,t){wO[e]=t}(t,e)):this.gl=xO(t),e=this.gl,2===Sn().getNumber("WEBGL_VERSION")){const t=e;this.createVertexArray=()=>TO(t,(()=>t.createVertexArray())),this.bindVertexArray=e=>TO(t,(()=>t.bindVertexArray(e))),this.deleteVertexArray=e=>TO(t,(()=>t.deleteVertexArray(e))),this.getVertexArray=()=>TO(t,(()=>t.getParameter(t.VERTEX_ARRAY_BINDING)))}else if(null!=e){const t=e.getExtension("OES_vertex_array_object");if(null==t)throw new Error("All WebGL1 implementations are expected to offer OES_vertex_array_object.");this.createVertexArray=()=>TO(e,(()=>t.createVertexArrayOES())),this.bindVertexArray=n=>TO(e,(()=>t.bindVertexArrayOES(n))),this.deleteVertexArray=n=>TO(e,(()=>t.deleteVertexArrayOES(n))),this.getVertexArray=()=>TO(e,(()=>e.getParameter(t.VERTEX_ARRAY_BINDING_OES)))}let n="WEBGL_color_buffer_float";const s="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),1===Sn().getNumber("WEBGL_VERSION")){const e="OES_texture_float",t="OES_texture_half_float";if(this.textureFloatExtension=RO(this.gl,e),XO(this.gl,t))this.textureHalfFloatExtension=RO(this.gl,t);else if(Sn().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),XO(this.gl,s))this.colorBufferHalfFloatExtension=RO(this.gl,s);else if(Sn().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",XO(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else{if(!XO(this.gl,s))throw new Error("GL context does not support color renderable floats");this.colorBufferHalfFloatExtension=this.gl.getExtension(s)}this.vertexBuffer=MD(this.gl),this.indexBuffer=zD(this.gl),this.framebuffer=function(e){return UO(e,(()=>e.createFramebuffer()),"Unable to create WebGLFramebuffer.")}(this.gl),this.textureConfig=IO(this.gl,this.textureHalfFloatExtension)}get debug(){return Sn().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program,this.outputTexture;const e=this.gl;TO(e,(()=>e.finish())),TO(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,null))),TO(e,(()=>e.deleteFramebuffer(this.framebuffer))),TO(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,null))),TO(e,(()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null))),TO(e,(()=>e.deleteBuffer(this.indexBuffer))),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,s){const[r,i]=SO(t,n);return FD(e,r,i,BD(s),s.textureFormatFloat,e.FLOAT)}(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,s){const[r,i]=SO(t,n);return FD(e,r,i,LD(s),s.textureFormatFloat,s.textureTypeHalfFloat)}(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,s){const[r,i]=SO(t,n);return FD(e,r,i,PD(s),e.RGBA,e.UNSIGNED_BYTE)}(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),function(e,t,n){TO(e,(()=>e.bindTexture(e.TEXTURE_2D,t))),n.data instanceof Uint8Array?2===Sn().getNumber("WEBGL_VERSION")?TO(e,(()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n.width,n.height,e.RGBA,e.UNSIGNED_BYTE,n.data))):TO(e,(()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data))):2===Sn().getNumber("WEBGL_VERSION")?TO(e,(()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n))):TO(e,(()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n))),TO(e,(()=>e.bindTexture(e.TEXTURE_2D,null)))}(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,s){this.throwIfDisposed(),function(e,t,n,s,r,i){let a,o,l;TO(e,(()=>e.bindTexture(e.TEXTURE_2D,t))),r instanceof Uint8Array?(a=new Uint8Array(n*s*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(a=new Float32Array(n*s*4),o=e.FLOAT,l=i.internalFormatPackedFloat),a.set(r),2===Sn().getNumber("WEBGL_VERSION")?TO(e,(()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,s,e.RGBA,o,a))):TO(e,(()=>e.texImage2D(e.TEXTURE_2D,0,l,n,s,0,e.RGBA,o,a))),TO(e,(()=>e.bindTexture(e.TEXTURE_2D,null)))}(this.gl,e,t,n,s,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,s){const[r,i]=EO(t,n);return FD(e,r,i,VD(s),e.RGBA,s.textureTypeHalfFloat)}(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,s){const[r,i]=EO(t,n);return FD(e,r,i,UD(s),e.RGBA,e.FLOAT)}(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(LO(this.gl,this.framebuffer),this.outputTexture=null),TO(this.gl,(()=>this.gl.deleteTexture(e)))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,(()=>function(e,t,n,s){const[r,i]=SO(t,n),a=new Uint8Array(t*n*4);return TO(e,(()=>e.readPixels(0,0,r,i,s.downloadTextureFormat,e.UNSIGNED_BYTE,a))),new Float32Array(a.buffer)}(this.gl,t,n,this.textureConfig)))}downloadPackedMatrixFromBuffer(e,t,n,s,r,i){return WD(this.gl,e,0,0,0,r,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return function(e,t,n){const s=e,r=new Float32Array(n);return s.bindBuffer(s.PIXEL_PACK_BUFFER,t),s.getBufferSubData(s.PIXEL_PACK_BUFFER,0,r),s.bindBuffer(s.PIXEL_PACK_BUFFER,null),r}(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);const s=function(e,t,n,s){const r=e.createBuffer();TO(e,(()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r)));const i=16*t*n;return TO(e,(()=>e.bufferData(e.PIXEL_PACK_BUFFER,i,e.STREAM_READ))),TO(e,(()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0))),TO(e,(()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null))),r}(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),s}createAndWaitForFence(){const e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(Sn().getBool("WEBGL_FENCE_API_ENABLED")){const s=e,r=s.fenceSync(s.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{const e=s.clientWaitSync(r,0,0);return e===s.ALREADY_SIGNALED||e===s.CONDITION_SATISFIED},t=r}else Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,(()=>function(e,t,n){const s=new Float32Array(t*n*4);return TO(e,(()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,s))),s}(this.gl,t,n)))}createProgram(e){this.throwIfDisposed();const t=this.gl;null==this.vertexShader&&(this.vertexShader=DD(t));const n=function(e){return UO(e,(()=>e.createProgram()),"Unable to create WebGLProgram.")}(t);TO(t,(()=>t.attachShader(n,this.vertexShader))),TO(t,(()=>t.attachShader(n,e))),function(e,t){if(TO(e,(()=>e.linkProgram(t))),!Sn().get("ENGINE_COMPILE_ONLY")&&!1===e.getProgramParameter(t,e.LINK_STATUS))throw new Error("Failed to link vertex and fragment shaders.")}(t,n);const s=Object.assign(n,{vao:this.createVertexArray()});return this.debug&&MO(t,s),s}buildVao(e){this.setProgram(e),this.bindVertexArray(e.vao);const t=this.gl;TO(t,(()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer))),function(e,t,n){TO(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,n))),zO(e,t,"clipSpacePos",n,3,20,0)&&zO(e,t,"uv",n,2,20,12)}(t,e,this.vertexBuffer)}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),null!=e&&(TO(this.gl,(()=>this.gl.deleteProgram(e))),this.deleteVertexArray(e.vao))}setProgram(e){this.throwIfDisposed(),this.program=e,null!=this.program&&this.debug&&MO(this.gl,this.program),TO(this.gl,(()=>this.gl.useProgram(e)))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?function(e,t,n){return UO(e,(()=>e.getUniformLocation(t,n)),'uniform "'+n+'" not present in program.')}(this.gl,e,t):function(e,t,n){return e.getUniformLocation(t,n)}(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),TO(this.gl,(()=>this.gl.getAttribLocation(e,t)))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),FO(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();const[s,r]=EO(t,n);this.setOutputMatrixTextureDriver(e,s,r)}setOutputMatrixWriteRegion(e,t,n,s){this.setOutputMatrixWriteRegionDriver(n,e,s,t)}setOutputPackedMatrixWriteRegion(e,t,n,s){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){null!=this.program&&MO(this.gl,this.program),PO(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();const e=this.gl;if(this.debug){this.getVertexArray();this.debugValidate()}TO(e,(()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0)))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),TO(this.gl,(()=>this.gl.finish()))}getQueryTimerExtension(){return null==this.disjointQueryTimerExtension&&(this.disjointQueryTimerExtension=RO(this.gl,2===Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(2===Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){const e=this.gl,t=this.getQueryTimerExtensionWebGL2(),n=e.createQuery();return e.beginQuery(t.TIME_ELAPSED_EXT,n),n}const e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(2===Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){const e=this.gl,t=this.getQueryTimerExtensionWebGL2();return void e.endQuery(t.TIME_ELAPSED_EXT)}const e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await Qt((()=>this.disposed||this.isQueryAvailable(e,Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")))),this.getQueryTime(e,Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(0===t)return null;if(2===t){const t=this.gl;return t.getQueryParameter(e,t.QUERY_RESULT)/1e6}{const t=this.getQueryTimerExtensionWebGL1();return t.getQueryObjectEXT(e,t.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(0===t)return!0;if(2===t){const t=this.gl,n=this.getQueryTimerExtensionWebGL2(),s=t.getQueryParameter(e,t.QUERY_RESULT_AVAILABLE);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),s&&!this.disjoint}{const t=this.getQueryTimerExtensionWebGL1(),n=t.getQueryObjectEXT(e,t.QUERY_RESULT_AVAILABLE_EXT);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(t.GPU_DISJOINT_EXT)),n&&!this.disjoint}}pollFence(e){return new Promise((t=>{this.addItemToPoll((()=>e.isFencePassed()),(()=>t()))}))}pollItems(){const e=function(e){let t=0;for(;te.isDoneFn)));for(let t=0;t<=e;++t){const{resolveFn:e}=this.itemsToPoll[t];e()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){if(this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1)return;let n;"setTimeoutCustom"in Sn().platform&&(n=Sn().platform.setTimeoutCustom.bind(Sn().platform)),Qt((()=>(this.pollItems(),0===this.itemsToPoll.length)),(()=>0),null,n)}bindTextureToFrameBuffer(e){this.throwIfDisposed(),BO(this.gl,e,this.framebuffer),this.debug&&PO(this.gl)}unbindTextureToFrameBuffer(){null!=this.outputTexture?(BO(this.gl,this.outputTexture,this.framebuffer),this.debug&&PO(this.gl)):LO(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);const n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();const s=this.gl;BO(s,e,this.framebuffer),this.debug&&PO(s),this.outputTexture=e,TO(s,(()=>s.viewport(0,0,t,n))),TO(s,(()=>s.scissor(0,0,t,n)))}setOutputMatrixWriteRegionDriver(e,t,n,s){this.throwIfDisposed(),TO(this.gl,(()=>this.gl.scissor(e,t,n,s)))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(null==this.program)throw new Error("No GPU program is currently set.")}}const{addImpl:GD,bincountImpl:qD,bincountReduceImpl:HD,bitwiseAndImpl:KD,castImpl:$D,ceilImpl:XD,concatImpl:ZD,equalImpl:YD,expImpl:QD,expm1Impl:JD,floorImpl:eM,gatherNdImpl:tM,gatherV2Impl:nM,greaterImpl:sM,greaterEqualImpl:rM,lessImpl:iM,lessEqualImpl:aM,linSpaceImpl:oM,logImpl:lM,maxImpl:uM,maximumImpl:cM,minimumImpl:hM,multiplyImpl:dM,negImpl:pM,notEqualImpl:fM,prodImpl:mM,raggedGatherImpl:gM,raggedRangeImpl:yM,raggedTensorToTensorImpl:bM,rangeImpl:wM,rsqrtImpl:vM,scatterImpl:xM,sigmoidImpl:AM,simpleAbsImpl:CM,sliceImpl:kM,sparseFillEmptyRowsImpl:SM,sparseReshapeImpl:_M,sparseSegmentReductionImpl:EM,sqrtImpl:IM,staticRegexReplaceImpl:TM,stridedSliceImpl:NM,stringNGramsImpl:RM,stringSplitImpl:OM,stringToHashBucketFastImpl:DM,subImpl:MM,tileImpl:zM,topKImpl:FM,transposeImpl:BM,uniqueImpl:LM}=S;function PM(e,t){return["x","y","z","w","u","v"].slice(0,t).map((t=>`${e}.${t}`))}function UM(e,t){return 1===t?[e]:PM(e,t)}class VM{constructor(e){if(this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.enableShapeUniforms=SD(this.outputShape.length),0===this.rank)this.userCode="\n void main() {\n setOutput(vec4(getA(), 0., 0., 0.));\n }\n ";else{const e=UM("rc",this.rank),t=bD(this.rank),n=this.getOutOfBoundsCondition(e),s=this.getSetup(e),r=this.getOutput(e);this.userCode=`\n void main() {\n ${t} rc = getOutputCoords();\n\n if(${n}) {\n setOutput(vec4(0));\n } else {\n ${s}\n\n setOutput(vec4(${r}));\n }\n }\n `}}getSourceCoordsArr(e){const t=[];for(let n=0;n<=1;n++)for(let s=0;s<=1;s++){let r=`${0===n?"r":"rp1"}, ${0===s?"c":"cp1"}`;for(let t=2;t ${this.enableShapeUniforms?"outShape":this.outputShape[0]}`;let t="";for(let n=this.rank-2;n= ${this.enableShapeUniforms?`outShape[${n}]`:this.outputShape[n]}`,n= ${n};\n bool rEdge = rp1 >= ${s};\n `}getOutput(e){const t=this.getSourceCoordsArr(e);if(1===this.rank){return`getA(rc), (rc + 1 >= ${this.enableShapeUniforms?"outShape":this.outputShape[0]} ? 0. : getA(rc + 1)), 0, 0`}return`getA(${t[0]}),\n cEdge ? 0. : getA(${t[1]}),\n rEdge ? 0. : getA(${t[2]}),\n rEdge || cEdge ? 0. : getA(${t[3]})`}}class WM{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=SD(this.outputShape.length);let n="";for(let e=0;e<4;e++){let t="thisRC = rc;";e%2==1&&(t+="thisRC.z += 1;"),e>1&&(t+="thisRC.y += 1;"),n+=`\n ${t}\n ${e>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[${e}] =\n getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\n ${e>0?"}":""}\n `}var s,r;this.userCode=`\n ${s=t,r=this.enableShapeUniforms,`\n ivec3 inputCoordsFromReshapedOutCoords(int index) {\n ${r?rD(["r","c","d"],"inputShape"):nD(["r","c","d"],s)}\n return ivec3(r, c, d);\n }\n `}\n ${this.enableShapeUniforms?"\n int getFlatIndex(ivec3 coords) {\n return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z;\n }\n":iD(e)}\n\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0.);\n\n ivec3 thisRC;\n int rows = ${this.enableShapeUniforms?"outShape[1]":e[1]};\n int cols = ${this.enableShapeUniforms?"outShape[2]":e[2]};\n\n ${n}\n\n setOutput(result);\n }\n `}}class jM{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(e,t,n){const s=qM(t,n),r=HM(e,s,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);const i=GM(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[r].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=i,this.log();const e=this.freeTextures[r].pop();return this.usedTextures[r].push(e),e}let a;return s===kO.PACKED_2X2_FLOAT32?a=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):s===kO.PACKED_2X2_FLOAT16?a=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):s===kO.UNPACKED_FLOAT32?a=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):s===kO.UNPACKED_FLOAT16?a=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):s===kO.PACKED_4X1_UNSIGNED_BYTE&&(a=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[r].push(a),this.numUsedTextures++,this._numBytesAllocated+=i,this.log(),a}releaseTexture(e,t,n,s){if(null==this.freeTextures)return;const r=qM(n,s),i=HM(t,r,s);i in this.freeTextures||(this.freeTextures[i]=[]);const a=GM(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,s),o=Sn().getNumber("WEBGL_DELETE_TEXTURE_THRESHOLD");-1!==o&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e.texture),this._numBytesAllocated-=a):(this.freeTextures[i].push(e),this.numFreeTextures++,this._numBytesFree+=a),this.numUsedTextures--;const l=this.usedTextures[i],u=l&&l.indexOf(e);if(null==u||u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l[u]=l[l.length-1],l.pop(),this.log()}log(){if(!this.logEnabled)return;this.numFreeTextures,this.numUsedTextures,this._numBytesFree,this._numBytesAllocated}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(null!=this.freeTextures){for(const e in this.freeTextures)this.freeTextures[e].forEach((e=>{this.gpgpu.deleteMatrixTexture(e.texture)}));for(const e in this.usedTextures)this.usedTextures[e].forEach((e=>{this.gpgpu.deleteMatrixTexture(e.texture)}));this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}}function GM(e,t,n,s,r){const i=function(e,t){switch(e){case kO.PACKED_2X2_FLOAT32:return UD(t);case kO.PACKED_2X2_FLOAT16:return VD(t);case kO.UNPACKED_FLOAT32:return BD(t);case kO.UNPACKED_FLOAT16:return LD(t);case kO.PACKED_4X1_UNSIGNED_BYTE:return PD(t);default:throw new Error(`Unknown physical texture type ${e}`)}}(t,s);let a;if(r){const[t,n]=EO(e[0],e[1]);a=t*n}else{const[t,n]=SO(e[0],e[1]);a=t*n}const o=function(e,t){const n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F)return 16;if(t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;if(t===n.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}(n,i);return a*o}function qM(e,t){if(e===CO.UPLOAD)return kO.PACKED_2X2_FLOAT32;if(e===CO.RENDER||null==e)return function(e){return Sn().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?kO.PACKED_2X2_FLOAT32:kO.UNPACKED_FLOAT32:e?kO.PACKED_2X2_FLOAT16:kO.UNPACKED_FLOAT16}(t);if(e===CO.DOWNLOAD||e===CO.PIXELS)return kO.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function HM(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}class KM{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=SD(this.outputShape.length),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 `}}const $M="if (isnan(x)) return x;",XM="return x;",ZM="return abs(x);";const YM="return (x >= 0.0) ? x : (exp(x) - 1.0);",QM=$M+"\n return (x < 0.0) ? 0.0 : x;\n",JM=$M+"\n return (x < 0.0) ? 0.0 : min(6.0, x);\n",ez="return x;",tz="return 1.0 / (1.0 + exp(-1.0 * x));",nz="return x;",sz="\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",rz="\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",iz="\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",az="return 1.0 / (1.0 + exp(-1.0 * x));";class oz{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=SD(this.outputShape.length),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 `}}class lz{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=SD(this.outputShape.length);const t=e.length,n=UM("rc",t),s=bD(t),r=function(e,t){if(1===e)return"rc";let n="";for(let s=0;st.push(e)))}const t=this.texData.get(e),{values:n,shape:s,slice:r,dtype:i,complexTensorInfos:a,isPacked:o}=t;if(null!=r){let t;t=o?new oz(s,ez):new KM(s,ez);const n=this.runWebGLProgram(t,[{dataId:e,shape:s,dtype:i}],i),r=this.read(n.dataId);return this.disposeIntermediateTensorInfo(n),r}if(null!=n)return this.convertAndCacheOnCPU(e);if(Sn().getBool("DEBUG")&&!Sn().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&2===Sn().getNumber("WEBGL_VERSION"))throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l,u,c=null;if("complex64"!==i&&Sn().get("WEBGL_BUFFER_SUPPORTED")){l=this.decode(e);const t=this.texData.get(l.dataId);c=this.gpgpu.createBufferFromTexture(t.texture.texture,..._O(s))}if(this.pendingRead.set(e,[]),"complex64"!==i&&await this.gpgpu.createAndWaitForFence(),"complex64"===i){const e=await Promise.all([this.read(a.real.dataId),this.read(a.imag.dataId)]);u=Zm(e[0],e[1])}else if(null==c)u=this.getValuesFromTexture(e);else{const e=Kt(s);u=this.gpgpu.downloadFloat32MatrixFromBuffer(c,e)}if(null!=l&&this.disposeIntermediateTensorInfo(l),null!=c){const e=this.gpgpu.gl;TO(e,(()=>e.deleteBuffer(c)))}const h=this.convertAndCacheOnCPU(e,u),d=this.pendingRead.get(e);return this.pendingRead.delete(e),d.forEach((e=>e(h))),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&vo().removeDataId(e,this),this.pendingDeletes--),h}readToGPU(e,t={}){const n=this.texData.get(e),{values:s,shape:r,slice:i,dtype:a,isPacked:o,texture:l}=n;if("complex64"===a)throw new Error("Does not support reading texture for complex64 dtype.");if(null!=i){let n;n=o?new oz(r,ez):new KM(r,ez);const s=this.runWebGLProgram(n,[{dataId:e,shape:r,dtype:a}],a),i=this.readToGPU(s,t);return this.disposeIntermediateTensorInfo(s),i}if(null==l)throw null!=s?new Error("Data is not on GPU but on CPU."):new Error("There is no data on GPU or CPU.");const u=this.decode(e,t.customTexShape),c=vo().makeTensorFromTensorInfo(u),h=this.texData.get(u.dataId);return Object.assign({tensorRef:c},h.texture)}bufferSync(e){const t=this.readSync(e.dataId);if("string"===e.dtype)try{const n=t.map((e=>ga(e)));return Tl(e.shape,e.dtype,n)}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return Tl(e.shape,e.dtype,t)}checkNumericalProblems(e){if(null!=e)for(let t=0;t0}time(e){const t=this.activeTimers,n=[];let s=!1;null==this.programTimersStack?(this.programTimersStack=n,s=!0):this.activeTimers.push(n),this.activeTimers=n,e();const r=ba(this.activeTimers.map((e=>e.query))).filter((e=>null!=e)),i=ba(this.activeTimers.map((e=>e.name))).filter((e=>null!=e));this.activeTimers=t,s&&(this.programTimersStack=null);const a={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){const e=await Promise.all(r);a.kernelMs=function(e){let t=0;for(let n=0;ne.map(((e,t)=>({name:i[t],ms:e}))).map((e=>`${e.name}: ${e.ms}`)).join(", ")}else a.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,a})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:fa(),endMs:null}}endTimer(e){return Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=fa(),e)}async getQueryTime(e){if(Sn().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);const t=e;return t.endMs-t.startMs}disposeData(e,t=!1){if(this.pendingDisposal.has(e))return!1;if(!this.texData.has(e))return!0;if(t?this.texData.get(e).refCount=0:this.texData.get(e).refCount--,!t&&this.texData.get(e).refCount>0)return!1;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),this.pendingDeletes++,!1;this.releaseGPUData(e);const{complexTensorInfos:n}=this.texData.get(e);return null!=n&&(this.disposeData(n.real.dataId,t),this.disposeData(n.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){const{texture:t,dtype:n,texShape:s,usage:r,isPacked:i,slice:a}=this.texData.get(e),o=a&&a.origDataId||e,l=this.dataRefCount.get(o);l>1?this.dataRefCount.set(o,l-1):(this.dataRefCount.delete(o),null!=t&&(this.numBytesInGPU-=this.computeBytes(s,n),this.textureManager.releaseTexture(t,s,r,i)));const u=this.texData.get(e);u.texture=null,u.texShape=null,u.isPacked=!1,u.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture.texture}getDataInfo(e){return this.texData.get(e)}shouldExecuteOnCPU(e,t=hz){return Sn().getBool("WEBGL_CPU_FORWARD")&&e.every((e=>null==this.texData.get(e.dataId).texture&&Kt(e.shape)0&&on(n[0])){const r=n.map((e=>ma(e)));s=this.write(r,e,t)}else s=this.write(n,e,t);return this.texData.get(s).usage=null,{dataId:s,shape:e,dtype:t}}makeOutput(e,t,n){return vo().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,n),this)}unpackTensor(e){const t=new lz(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){const t=new VM(e.shape);return this.runWebGLProgram(t,[e],e.dtype,null,!0)}packedReshape(e,t){const n=[WO(e.shape),...jO(e.shape)],s={dtype:e.dtype,shape:n,dataId:e.dataId},r=[WO(t),...jO(t)],i=new WM(r,n),a=[n],o=this.runWebGLProgram(i,[s],e.dtype,a,!0);return{dataId:o.dataId,shape:t,dtype:o.dtype}}decode(e,t){const n=this.texData.get(e),{isPacked:s,shape:r,dtype:i}=n;if(null!=t){Gt(Kt(r)<=t[0]*t[1]*4,(()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data."))}const a=GO(r);let o;o=s?new ED(a):new _D(a);const l=[null!=t?t:_O(a)];return{dtype:i,shape:r,dataId:this.runWebGLProgram(o,[{shape:a,dtype:i,dataId:e}],i,l,!0,t).dataId}}runWebGLProgram(e,t,n,s,r=!1,i){const a=this.makeTensorInfo(e.outputShape,n),o=this.texData.get(a.dataId);if(e.packedOutput&&(o.isPacked=!0),e.outPackingScheme===AO.DENSE){const t=null!=i?i:_O(e.outputShape);o.texShape=t.map((e=>2*e))}if(null!=e.outTexUsage&&(o.usage=e.outTexUsage),0===Kt(a.shape))return o.values=nn(a.dtype,0),a;const l=[],u=t.map((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.");let n=this.texData.get(t.dataId);if(null==n.texture){if(!e.packedInputs&&Kt(t.shape)<=Sn().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)}if(this.uploadToGPU(t.dataId),!!n.isPacked!=!!e.packedInputs)t=n.isPacked?this.unpackTensor(t):this.packTensor(t),l.push(t),n=this.texData.get(t.dataId);else if(n.isPacked&&!HO(n.shape,t.shape)){const e=t,s=t.shape;t.shape=n.shape,t=this.packedReshape(t,s),l.push(t),n=this.texData.get(t.dataId),e.shape=s}return{shape:t.shape,texData:n,isUniform:!1}}));this.uploadToGPU(a.dataId);const c={shape:a.shape,texData:o,isUniform:!1},h=function(e,t,n){let s="";t.concat(n).forEach((t=>{const r=null!=t.texData&&null!=t.texData.slice&&t.texData.slice.flatOffset>0;if(e.enableShapeUniforms&&!t.isUniform){const i=t.texData.texShape,{useSqueezeShape:a,uniformShape:o,keptDims:l}=wD(e.packedInputs,t.shape,i);let u="",c="",h="";if(1===o.length&&e.packedInputs){const e=[Math.ceil(i[0]/2),Math.ceil(i[1]/2)];u=`${e[0]>1}_${e[1]>1}`}else if(2!==o.length||e.packedInputs){if(o.length>2&&!e.packedInputs){const e=dn(o);h=`${e[0]===i[1]}_${e[e.length-1]===i[1]}`}}else c=`${o[0]>1}_${o[1]>1}`;const d=t.shape.length,p=2===o.length&&$t(t.shape,i),f=1===Kt(t.shape),m=tu(t.shape,n.shape),g=!e.packedInputs&&d===n.shape.length&&$t(i,n.texData.texShape),y=e.packedInputs||o.length>2?"":`${i[0]>1}_${i[1]>1}`;s+=`${d}_${g}_${a?l:""}_${o.length}_${f}_${m}_${p}_${u}_${c}_${h}_${y}_${r}`}else{const e=t.isUniform?"uniform":t.texData.texShape;s+=`${t.shape}_${e}_${r}`}}));const r=e.userCode;let i=e.constructor.name;return i+="_"+s+"_"+r+`${Sn().getNumber("WEBGL_VERSION")}`,i}(e,u,c),d=this.getAndSaveBinary(h,(()=>AD(this.gpgpu,e,u,c))),p=null!=this.activeTimers;let f;p&&(f=this.startTimer()),Sn().get("ENGINE_COMPILE_ONLY")||function(e,t,n,s,r){t.program.enableShapeUniforms||(kD(t.inShapeInfos,n),kD([t.outShapeInfo],[s]));const i=s.texData.texture,a=s.texData.texShape;s.texData.isPacked?e.setOutputPackedMatrixTexture(i.texture,a[0],a[1]):e.setOutputMatrixTexture(i.texture,a[0],a[1]),e.setProgram(t.webGLProgram),e.bindVertexArray(t.webGLProgram.vao),1===Sn().getNumber("WEBGL_VERSION")&&null!==t.infLoc&&e.gl.uniform1f(t.infLoc,1/0),null!==t.nanLoc&&e.gl.uniform1f(t.nanLoc,NaN);for(let s=0;sthis.disposeIntermediateTensorInfo(e))),p&&(f=this.endTimer(f),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(f)}));const m=Sn().getNumber("WEBGL_FLUSH_THRESHOLD");if(m>0){const e=fa();e-this.lastGlFlushTime>m&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=e)}if(!Sn().getBool("WEBGL_LAZILY_UNPACK")&&o.isPacked&&!1===r){const e=this.unpackTensor(a);return this.disposeIntermediateTensorInfo(a),e}return a}compileAndRun(e,t,n,s,r=!1){n=n||t[0].dtype;return this.runWebGLProgram(e,t,n,s,r)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){if(!this.disposed){if(!Sn().getBool("IS_TEST")){Object.keys(this.binaryCache).forEach((e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}))}this.textureManager.dispose(),null!=this.canvas&&"undefined"!=typeof HTMLCanvasElement&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0}}floatPrecision(){return null==this.floatPrecisionValue&&(this.floatPrecisionValue=Ao((()=>{if(!Sn().get("WEBGL_RENDER_FLOAT32_ENABLED")){const e=Sn().getBool("DEBUG");Sn().set("DEBUG",!1);const t=this.abs(Vl(1e-8)).dataSync()[0];if(Sn().set("DEBUG",e),t>0)return 32}return 16}))),this.floatPrecisionValue}epsilon(){return 32===this.floatPrecision()?1e-7:1e-4}uploadToGPU(e){const t=this.texData.get(e),{shape:n,dtype:s,values:r,texture:i,usage:a,isPacked:o}=t;if(null!=i)return;const l=null!=this.activeTimers;let u;l&&(u=fa());let c=t.texShape;if(null==c&&(c=function(e,t=!1){let n=Sn().getNumber("WEBGL_MAX_TEXTURE_SIZE"),s=Sn().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");if(s===1/0&&Sn().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(s=n/2),t&&(n*=2,s*=2,1===(e=e.map(((t,n)=>n>=e.length-2?Wt(e[n]):e[n]))).length&&(e=[2,e[0]])),2!==e.length){const t=tn(e);e=t.newShape}let r=Kt(e),i=null;e.length<=1&&r<=n?i=[1,r]:2===e.length&&e[0]<=n&&e[1]<=n?i=e:3===e.length&&e[0]*e[1]<=n&&e[2]<=n?i=[e[0]*e[1],e[2]]:3===e.length&&e[0]<=n&&e[1]*e[2]<=n?i=[e[0],e[1]*e[2]]:4===e.length&&e[0]*e[1]*e[2]<=n&&e[3]<=n?i=[e[0]*e[1]*e[2],e[3]]:4===e.length&&e[0]<=n&&e[1]*e[2]*e[3]<=n&&(i=[e[0],e[1]*e[2]*e[3]]);const a=null!=i&&Math.max(...i)>s&&Math.min(...i)<=(t?2:1)&&Math.min(...i)>0;if(null==i||a)if(t){const t=WO(e);let n=2,s=2;e.length&&([n,s]=jO(e)),r=t*(n/2)*(s/2),i=Zt(r).map((e=>2*e))}else i=Zt(r);return i}(n,o),t.texShape=c),null!=r){const e=GO(n);let i,a=c[1],h=c[0];const d=r instanceof Uint8Array||r instanceof Uint8ClampedArray;!o&&d||([a,h]=EO(c[0],c[1])),i=o?new OD(e,d):new RD(e,d);const p=d?[h,a]:c,f=this.makeTensorInfo(p,s),m=this.texData.get(f.dataId);m.usage=d?CO.PIXELS:CO.UPLOAD,m.texShape=p,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(f.dataId),a,h,r);const g=[[h,a]],y=!0,b=this.runWebGLProgram(i,[f],s,g,y),w=this.texData.get(b.dataId);t.texShape=w.texShape,t.isPacked=w.isPacked,t.usage=w.usage,Sn().get("ENGINE_COMPILE_ONLY")?this.disposeData(b.dataId):(t.texture=w.texture,t.values=null,this.texData.delete(b.dataId)),this.disposeIntermediateTensorInfo(f),l&&(this.uploadWaitMs+=fa()-u)}else{const e=this.acquireTexture(c,a,s,o);t.texture=e}}convertAndCacheOnCPU(e,t){const n=this.texData.get(e),{dtype:s}=n;return null!=t&&(n.values=function(e,t){if("float32"===t||"complex64"===t)return e;if("int32"===t||"bool"===t){const n="int32"===t?new Int32Array(e.length):new Uint8Array(e.length);for(let t=0;t1024*this.numMBBeforeWarning*1024){(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0}return this.textureManager.acquireTexture(e,t,s)}computeBytes(e,t){return e[0]*e[1]*an(t)}checkCompileCompletion(){for(const[,e]of Object.entries(this.binaryCache))this.checkCompletion_(e)}async checkCompileCompletionAsync(){const e=[];if(this.gpgpu.parallelCompilationExtension){for(const[,t]of Object.entries(this.binaryCache))e.push(this.checkCompletionAsync_(t));return Promise.all(e)}for(const[,t]of Object.entries(this.binaryCache)){const n=new Promise((e=>{try{this.checkCompletion_(t),e(!0)}catch(e){throw e}}));e.push(n)}return Promise.all(e)}async checkCompletionAsync_(e){return this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(e):(await Sm(),this.checkCompletionAsync_(e))}checkCompletion_(e){if(!1===this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.gl.LINK_STATUS)){if(!1===this.gpgpu.gl.getShaderParameter(e.fragmentShader,this.gpgpu.gl.COMPILE_STATUS))throw DO(e.source,this.gpgpu.gl.getShaderInfoLog(e.fragmentShader)),new Error("Failed to compile fragment shader.");throw new Error("Failed to link vertex and fragment shaders.")}return!0}getUniformLocations(){for(const e of Object.values(this.binaryCache)){this.gpgpu.buildVao(e.webGLProgram);const{variablesLocations:t,customUniformLocations:n,infLoc:s,nanLoc:r,outShapeLocation:i,outShapeStridesLocation:a,outTexShapeLocation:o}=CD(this.gpgpu,e.program,e.webGLProgram);e.variablesLocations=t,e.customUniformLocations=n,e.infLoc=s,e.nanLoc=r,e.outShapeLocation=i,e.outShapeStridesLocation=a,e.outTexShapeLocation=o}}createTensorFromGPUData(e,t,n){e.channels=e.channels||"RGBA";const{texture:s,height:r,width:i,channels:a}=e,o=vo().backend;if(!o.gpgpu.gl.isTexture(s))throw new Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");const l=o.writeTexture(s,t,n,r,i,a);return vo().makeTensorFromDataId(l,t,n,o)}}dz.nextDataId=0;io()&&So("webgl",(()=>new dz),2);const pz="\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n";class fz{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=su(t,n),this.enableShapeUniforms=SD(this.outputShape.length),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 `}}const mz="\n result.r = isNaN.r ? NAN : result.r;\n result.g = isNaN.g ? NAN : result.g;\n result.b = isNaN.b ? NAN : result.b;\n result.a = isNaN.a ? NAN : result.a;\n";class gz{constructor(e,t,n,s=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=su(t,n);const r=this.outputShape.length;this.enableShapeUniforms=SD(r);let i="";if(s)if(0===r||1===Kt(this.outputShape))i="\n result.y = 0.;\n result.z = 0.;\n result.w = 0.;\n ";else{if(i=`\n ${bD(r)} coords = getOutputCoords();\n `,1===r)this.enableShapeUniforms?i+="\n result.y = (coords + 1) >= outShape ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n ":i+=`\n result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n `;else{const e=UM("coords",r);this.enableShapeUniforms?i+=`\n bool nextRowOutOfBounds =\n (${e[r-2]} + 1) >= outShape[${r} - 2];\n bool nextColOutOfBounds =\n (${e[r-1]} + 1) >= outShape[${r} - 1];\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n `:i+=`\n bool nextRowOutOfBounds =\n (${e[r-2]} + 1) >= ${this.outputShape[r-2]};\n bool nextColOutOfBounds =\n (${e[r-1]} + 1) >= ${this.outputShape[r-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 ${i}\n\n setOutput(result);\n }\n `}}function yz(e){const{inputs:t,backend:n}=e,{x:s}=t;return n.incRef(s.dataId),{dataId:s.dataId,shape:s.shape,dtype:s.dtype}}const bz={kernelName:qs,backendName:"webgl",kernelFunc:yz};function wz(e){const{inputs:t,backend:n}=e,{real:s,imag:r}=t,i=n.makeTensorInfo(s.shape,"complex64"),a=n.texData.get(i.dataId),o=yz({inputs:{x:s},backend:n}),l=yz({inputs:{x:r},backend:n});return a.complexTensorInfos={real:o,imag:l},i}const vz={kernelName:ns,backendName:"webgl",kernelFunc:wz},xz="return (a < 0.) ? b * a : a;",Az="\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n";const Cz={kernelName:Ys,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{alpha:i}=s,a=n.makeTensorInfo([],"float32",da(i,"float32")),o=Sn().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new gz(Az,r.shape,a.shape):new fz(xz,r.shape,a.shape),l=n.runWebGLProgram(o,[r,a],"float32");return n.disposeIntermediateTensorInfo(a),l}},kz="return (a < 0.) ? b * a : a;",Sz="\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n";const _z={kernelName:Or,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:s,alpha:r}=t,i=Sn().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new gz(Sz,s.shape,r.shape):new fz(kz,s.shape,r.shape);return n.runWebGLProgram(i,[s,r],"float32")}},Ez="if (isnan(x)) return x;";function Iz({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:n,dtype:s}){return({inputs:r,backend:i})=>{const{x:a}=r,o=i,l=s||a.dtype;if(o.shouldExecuteOnCPU([a])&&null!=n){const e=o.texData.get(a.dataId),t=n(e.values,l);return o.makeTensorInfo(a.shape,l,t)}let u;return u=Sn().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&null!=t?new oz(a.shape,t):new KM(a.shape,e),o.runWebGLProgram(u,[a],l)}}function Tz({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:n=!1,supportsComplex:s=!1,cpuKernelImpl:r,dtype:i}){return({inputs:a,backend:o})=>{const{a:l,b:u}=a,c=o;if(s&&"complex64"===l.dtype){const t=c.texData.get(l.dataId),n=c.texData.get(u.dataId),[s,r]=[[t.complexTensorInfos.real,n.complexTensorInfos.real],[t.complexTensorInfos.imag,n.complexTensorInfos.imag]].map((t=>{const[n,s]=t,r={dataId:n.dataId,dtype:n.dtype,shape:l.shape},i={dataId:s.dataId,dtype:s.dtype,shape:u.shape},a=new fz(e,l.shape,u.shape);return c.runWebGLProgram(a,[r,i],ja(n.dtype,s.dtype))})),i=wz({inputs:{real:s,imag:r},backend:c});return c.disposeIntermediateTensorInfo(s),c.disposeIntermediateTensorInfo(r),i}const h=i||ja(l.dtype,u.dtype);if(("string"===l.dtype||"string"===u.dtype||c.shouldExecuteOnCPU([l,u]))&&null!=r){const e=c.texData.get(l.dataId).values,t=c.texData.get(u.dataId).values,n="string"===l.dtype?Ng(e):e,s="string"===l.dtype?Ng(t):t,[i,a]=r(l.shape,u.shape,n,s,h),o=c.makeTensorInfo(a,h);return c.texData.get(o.dataId).values=i,o}let d;return d=Sn().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&null!=t?new gz(t,l.shape,u.shape,n):new fz(e,l.shape,u.shape),c.runWebGLProgram(d,[l,u],h)}}function Nz(e,t=!1){if("linear"===e)return t?nz:XM;if("relu"===e)return t?rz:QM;if("elu"===e)return t?sz:YM;if("relu6"===e)return t?iz:JM;if("prelu"===e)return t?Sz:kz;if("leakyrelu"===e)return t?Az:xz;if("sigmoid"===e)return t?az:tz;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}class Rz{constructor(e,t,n,s=!1,r=!1,i=!1,a=null,o=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n,this.enableShapeUniforms=SD(this.outputShape.length);const u=s?e[1]:e[2],c=Math.ceil(u/2),h=s?"i * 2, rc.y":"rc.y, i * 2",d=r?"rc.z, i * 2":"i * 2, rc.z",p=s?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],f=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"];let m="",g="";a&&(m=o?`vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n ${a}\n }`:l?`vec4 activation(vec4 a) {\n vec4 b = getLeakyreluAlphaAtOutCoords();\n ${a}\n }`:`vec4 activation(vec4 x) {\n ${a}\n }`,g="result = activation(result);");const y=i?"result += getBiasAtOutCoords();":"";i&&this.variableNames.push("bias"),o&&this.variableNames.push("preluActivationWeights"),l&&this.variableNames.push("leakyreluAlpha");let b="rc.x",w="rc.x";e[0]`The new shape (${l}) has ${u} elements and the old shape (${r.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`));const c=a.texData.get(r.dataId);return!c.isPacked||HO(r.shape,l)||null!==c.texture&&HO(c.shape,l)?(a.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype}):function(e,t,n){const s=[WO(e.shape),...jO(e.shape)],r={dtype:e.dtype,shape:s,dataId:e.dataId},i=[WO(t),...jO(t)],a=new WM(i,s),o=[s],l=n.runWebGLProgram(a,[r],e.dtype,o,!0);return{dataId:l.dataId,shape:t,dtype:l.dtype}}(r,l,a)}const Lz={kernelName:Vr,backendName:"webgl",kernelFunc:Bz};class Pz{constructor(e,t){this.variableNames=["x"];const{windowSize:n,batchSize:s,inSize:r,outSize:i}=e;this.outputShape=[s,i];const a=4*Math.floor(n/4),o=n%4;let l="sumValue += dot(values, ones);";if(null!=t){const e=1/t;l=`sumValue += dot(values * ${Xt(e)?e.toPrecision(2):e}, ones);`}let u="";r%n>0&&(u=`\n if (inIdx < 0 || inIdx >= ${r}) {\n return 0.0;\n }\n `),this.userCode=`\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${u}\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${n};\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${a}; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n ${l}\n }\n\n int inIdx = inOffset + ${a};\n if (${1===o}) {\n vec4 values = vec4(getValue(batch, inIdx), 0.0, 0.0, 0.0);\n\n ${l}\n } else if (${2===o}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1), 0.0, 0.0);\n\n ${l}\n } else if (${3===o}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2), 0.0);\n\n ${l}\n }\n setOutput(sumValue);\n }\n `}}class Uz{constructor(e,t){this.variableNames=["x"];const{windowSize:n,batchSize:s,inSize:r,outSize:i}=e;this.outputShape=[s,i];let a="0.0",o="";"prod"===t?a="1.0":"min"===t?(a="1.0 / 1e-20",o="min"):"max"===t&&(a="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"sum"===t?l="sumValue":"prod"===t?l="prodValue":"all"===t?l="allValue":"any"===t&&(l="anyValue");const u=4*Math.floor(n/4),c=n%4;let h=`\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 = ${o}(values, minMaxValue);\n if (${"min"===t} || ${"max"===t}) {\n minMaxValue = ${o}(values, minMaxValue);\n bvec4 isNaN = isnan(values);\n if (isNaN.r || isNaN.g || isNaN.b || isNaN.a) {\n minMaxValue = vec4(NAN);\n }\n }\n }\n `,d="vec4";"all"===t?(a="1.0",h="\n bool reducedAllValue = all(values);\n float floatedReducedAllValue = float(reducedAllValue);\n allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\n ",d="bvec4"):"any"===t&&(a="0.0",h="\n bool reducedAnyValue = any(values);\n float floatedReducedAnyValue = float(reducedAnyValue);\n anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\n ",d="bvec4");let p="";r%n>0&&(p=`\n if (inIdx < 0 || inIdx >= ${r}) {\n return initializationValue;\n }\n `),this.userCode=`\n const float initializationValue = ${a};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${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(${a});\n float prodValue = 1.0;\n float sumValue = 0.0;\n float allValue = 1.0;\n float anyValue = 0.0;\n\n for (int i = 0; i < ${u}; 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 ${h}\n }\n\n int inIdx = inOffset + ${u};\n if (${1===c}) {\n ${d} values = ${d}(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${h}\n } else if (${2===c}) {\n ${d} values = ${d}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n ${h}\n } else if (${3===c}) {\n ${d} values = ${d}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n ${h}\n }\n setOutput(${l});\n }\n `}}function Vz(e,t,n,s){const r=function(e){const t=[];for(;0===t.length||1!==t[t.length-1].outSize;){const n=t.length?t[t.length-1].outSize:e[1],s=Mm(n);t.push({inSize:n,windowSize:s,outSize:Math.ceil(n/s)})}return t}(e.shape);let i=e;for(let a=0;a6)throw Error(`Transpose for rank ${t} is not yet supported`);const n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],s=new Array(t);for(let t=0;t6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);const s=bD(this.rank),r=PM("rc",this.rank),i=new Array(this.rank);for(let e=0;e`Error in matMul: inner shapes (${h}) and (${d}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${s} must match.`));const v=n?[y,h,p]:[y,p,h],x=s?[b,f,d]:[b,d,f],A=Bz({inputs:{x:e},backend:r,attrs:{shape:v}}),C=Bz({inputs:{x:t},backend:r,attrs:{shape:x}}),k=[A,C],S=Math.max(y,b),_=n?A.shape[1]:A.shape[2],E=null!=i,I=null!=a,T="leakyrelu"===l,N=null!=l?Nz(l,!0):null;let R;if((1===p||1===f)&&_>Xz&&!1===(E||I||T||null!=N)){let e=A,t=C;n&&(e=Kz({inputs:{x:A},backend:r,attrs:{perm:[0,2,1]}}),k.push(e)),s&&(t=Kz({inputs:{x:C},backend:r,attrs:{perm:[0,2,1]}}),k.push(t));const i=1===f;let a=e;1!==f&&(a=Bz({inputs:{x:e},backend:r,attrs:{shape:[S,_,1]}}),k.push(a));const o=1===f?2:1;let l=t;i&&(l=Bz({inputs:{x:t},backend:r,attrs:{shape:[S,1,_]}}),k.push(l));const u=zz({inputs:{a,b:l},backend:r});R=qz({inputs:{x:u},backend:r,attrs:{axis:o,keepDims:!0}}),k.push(u)}else{const l=ja(e.dtype,t.dtype),u=new Rz(v,x,[S,p,f],n,s,E,N,I,T),c=[A,C];if(null!=i&&c.push(i),I&&c.push(a),T){const e=r.makeTensorInfo([],"float32",da(o,"float32"));c.push(e),k.push(e)}R=r.runWebGLProgram(u,c,l)}const O=Bz({inputs:{x:R},backend:r,attrs:{shape:w}});k.push(R);for(const e of k)r.disposeIntermediateTensorInfo(e);return O}const Yz={kernelName:Li,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{a:r,b:i,bias:a,preluActivationWeights:o}=t,{transposeA:l,transposeB:u,activation:c,leakyreluAlpha:h}=s;return Zz({a:r,b:i,transposeA:l,transposeB:u,backend:n,bias:a,preluActivationWeights:o,leakyreluAlpha:h,activation:c})}},Qz="return abs(x);";const Jz={kernelName:Nn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:s}=t;if(n.shouldExecuteOnCPU([s])&&"complex64"!==s.dtype){const e=n.texData.get(s.dataId),t=CM(e.values);return n.makeTensorInfo(s.shape,s.dtype,t)}let r;return r=Sn().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new oz(s.shape,Qz):new KM(s.shape,Qz),n.runWebGLProgram(r,[s],s.dtype)}},eF=Iz({opSnippet:$M+"\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n"}),tF={kernelName:Rn,backendName:"webgl",kernelFunc:eF},nF=Iz({opSnippet:$M+"\n if (x < 1.0) return NAN;\nreturn log(x + sqrt(x * x - 1.0));"}),sF={kernelName:On,backendName:"webgl",kernelFunc:nF},rF="return a + b;",iF=Tz({opSnippet:rF,packedOpSnippet:rF,supportsComplex:!0,cpuKernelImpl:GD}),aF={kernelName:Dn,backendName:"webgl",kernelFunc:iF};class oF{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map(((e,t)=>`T${t}`));const n=[];this.variableNames.forEach((e=>{n.push(`float v${e} = get${e}AtOutCoords();`)}));const s=this.variableNames.map((e=>`v${e}`)).join(" + ");this.userCode=`\n void main() {\n ${n.join("\n ")}\n\n float result = ${s};\n setOutput(result);\n }\n `}}class lF{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map(((e,t)=>`T${t}`));const n=[];this.variableNames.forEach((e=>{n.push(`vec4 v${e} = get${e}AtOutCoords();`)}));const s=this.variableNames.map((e=>`v${e}`)).join(" + ");this.userCode=`\n void main() {\n ${n.join("\n ")}\n\n vec4 result = ${s};\n setOutput(result);\n }\n `}}const uF={kernelName:Mn,backendName:"webgl",kernelFunc:function e(t){const{inputs:n,backend:s}=t,r=n;if(1===r.length)return yz({inputs:{x:r[0]},backend:s});if(r.length>Sn().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){const t=Math.floor(r.length/2),n=e({inputs:r.slice(0,t),backend:s}),i=e({inputs:r.slice(t),backend:s});return e({inputs:[n,i],backend:s})}const i=r.map((e=>e.dtype)).reduce(((e,t)=>ja(e,t))),a=r.map((e=>e.shape)),o=Sn().getBool("WEBGL_PACK")?new lF(r[0].shape,a):new oF(r[0].shape,a);return s.runWebGLProgram(o,r,i)}};const cF={kernelName:zn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i,keepDims:a}=s,o=r.shape.length,l=en(i,r.shape);let u=l;const c=Ih(u,o);let h=r;null!=c&&(h=Kz({inputs:{x:r},backend:n,attrs:{perm:c}}),u=Nh(u.length,o)),Eh("all",u,o);const[d,p]=Sh(h.shape,u),f=Bz({inputs:{x:h},backend:n,attrs:{shape:[-1,Kt(p)]}}),m=Vz(f,f.dtype,"all",n);let g;if(a){g=Bz({inputs:{x:m},backend:n,attrs:{shape:_h(d,l)}})}else g=Bz({inputs:{x:m},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(m),null!=c&&n.disposeIntermediateTensorInfo(h),g}};const hF={kernelName:Fn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i,keepDims:a}=s,o=r.shape.length,l=en(i,r.shape);let u=l;const c=Ih(u,o);let h=r;null!=c&&(h=Kz({inputs:{x:r},backend:n,attrs:{perm:c}}),u=Nh(u.length,o)),Eh("any",u,o);const[d,p]=Sh(h.shape,u),f=Bz({inputs:{x:h},backend:n,attrs:{shape:[-1,Kt(p)]}}),m=Vz(f,f.dtype,"any",n);let g;if(a){g=Bz({inputs:{x:m},backend:n,attrs:{shape:_h(d,l)}})}else g=Bz({inputs:{x:m},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(m),null!=c&&n.disposeIntermediateTensorInfo(h),g}};class dF{constructor(e,t,n){this.variableNames=["A"];const{windowSize:s,batchSize:r,outSize:i}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[r,i];const a="max"===t?">":"<",o=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 * ${s};\n\n int bestIndex = inOffset;\n float bestValue = getA(batch, bestIndex);\n\n for (int i = 0; i < ${s}; i++) {\n int inIdx = ${o};\n float candidate = getA(batch, inIdx);\n if (candidate ${a} bestValue) {\n bestValue = candidate;\n bestIndex = inIdx;\n }\n }\n setOutput(float(bestIndex));\n }\n `}}class pF{constructor(e,t,n,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,Gt(e.length>2,(()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`));const r=e[e.length-1],i=Math.ceil(r/t);this.outputShape=e.slice(0,-1),i>1&&this.outputShape.push(i),s||this.variableNames.push("bestIndicesA");const a=this.outputShape,o=a.length,l=bD(o),u=UM("coords",o);let c,h;if(1===i){h=o+1;const e=bD(h);c=`\n ${e} sourceLocR = ${e}(${u.join()}, 0);\n ++${u[o-1]};\n ${e} sourceLocG = ${e}(${u.join()}, 0);\n ++${u[o-2]};\n ${e} sourceLocA = ${e}(${u.join()}, 0);\n --${u[o-1]};\n ${e} sourceLocB = ${e}(${u.join()}, 0);\n --${u[o-2]};`}else h=o,c=`\n ${l} sourceLocR = coords;\n ++${u[o-1]};\n ${l} sourceLocG = coords;\n ++${u[o-2]};\n ${l} sourceLocA = coords;\n --${u[o-1]};\n ${l} sourceLocB = coords;\n --${u[o-2]};`;const d=["x","y","z","w","u","v"].slice(0,h),p="."+d[h-1],f=d.map((e=>"int "+e)),m=UM("sourceLocR",h-1).concat("inIdx.r"),g=UM("sourceLocG",h-1).concat("inIdx.g"),y=UM("sourceLocB",h-1).concat("inIdx.b"),b=UM("sourceLocA",h-1).concat("inIdx.a"),w="max"===n?"greaterThan":"lessThan",v=s?"":`\n inIdx = round(vec4(getBestIndicesAChannel(${m.join()}),\n getBestIndicesAChannel(${g.join()}),\n getBestIndicesAChannel(${y.join()}),\n getBestIndicesAChannel(${b.join()})));`,x=`vec4(\n getAChannel(${m.join()}),\n hasNextCol ? getAChannel(${g.join()}) : 0.,\n hasNextRow ? getAChannel(${y.join()}) : 0.,\n hasNextRow && hasNextCol ? getAChannel(${b.join()}) : 0.)`,A=s?"":`\n float getBestIndicesAChannel(${f.join()}) {\n return getChannel(getBestIndicesA(${d.join()}),\n vec2(${d.slice(-2).join()}));\n }`;this.userCode=`\n float getAChannel(${f.join()}) {\n return getChannel(getA(${d.join()}),\n vec2(${d.slice(-2).join()}));\n }\n ${A}\n void main() {\n ${l} coords = getOutputCoords();\n bool hasNextCol = ${u[o-1]} < ${a[o-1]-1};\n bool hasNextRow = ${u[o-2]} < ${a[o-2]-1};\n ${c}\n ivec4 srcIdx = ivec4(sourceLocR${p}, sourceLocG${p},\n sourceLocB${p}, sourceLocA${p}) * ${t};\n ivec4 inIdx = srcIdx;\n vec4 bestIndex = vec4(inIdx);\n vec4 bestValue = ${x};\n\n for (int i = 0; i < ${t}; i++) {\n inIdx = srcIdx;\n ${v}\n vec4 candidate = ${x};\n bvec4 nan = isnan(candidate);\n bvec4 replace = bvec4(\n vec4(${w}(candidate, bestValue)) * (vec4(1.0) - vec4(nan)));\n\n bestValue = vec4(replace.x ? candidate.x : bestValue.x,\n replace.y ? candidate.y : bestValue.y,\n replace.z ? candidate.z : bestValue.z,\n replace.w ? candidate.w : bestValue.w);\n bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace));\n srcIdx++;\n }\n setOutput(bestIndex);\n }\n `}}function fF(e,t,n,s=null){let r=t.shape[0],i=t.shape[1];null!=s&&(r=s.shape[0],i=s.shape[1]);const a=Mm(i),o={windowSize:a,inSize:i,batchSize:r,outSize:Math.ceil(i/a)},l=new dF(o,n,null==s),u=[t];null!=s&&u.push(s);const c=e.runWebGLProgram(l,u,"int32");if(1===c.shape[1])return c;const h=fF(e,t,n,c);return e.disposeIntermediateTensorInfo(c),h}function mF(e,t,n,s=null){const r=null!=s?s.shape:t.shape,i=Mm(r[r.length-1]),a=new pF(r,i,n,null==s),o=null==s?[t]:[t,s],l=e.runWebGLProgram(a,o,"int32");if(l.shape.length===t.shape.length){const s=mF(e,t,n,l);return e.disposeIntermediateTensorInfo(l),s}return l}function gF(e,t,n,s){const r=[n];if(Eh("arg"+s.charAt(0).toUpperCase()+s.slice(1),r,t.shape.length),!Sn().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){const n=[],i=e.texData.get(t.dataId);let a=t;null!==i&&i.isPacked&&(a=e.unpackTensor(t),n.push(a));const[o,l]=Sh(a.shape,r),u=Kt(l),c=Bz({inputs:{x:a},backend:e,attrs:{shape:[-1,u]}});n.push(c);const h=fF(e,c,s);n.push(h);const d=Bz({inputs:{x:h},backend:e,attrs:{shape:o}});return n.forEach((t=>e.disposeIntermediateTensorInfo(t))),d}return mF(e,t,s)}const yF={kernelName:Bn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i}=s;let a=en(i,r.shape);const o=Ih(a,r.shape.length);let l=r;const u=[];null!=o&&(l=Kz({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),a=Nh(a.length,l.shape.length)),Eh("argMax",[a[0]],l.shape.length);const c=gF(n,l,a[0],"max");return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}};const bF={kernelName:Ln,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i}=s;let a=en(i,r.shape);const o=Ih(a,r.shape.length);let l=r;const u=[];null!=o&&(l=Kz({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),a=Nh(a.length,l.shape.length)),Eh("argMin",[a[0]],l.shape.length);const c=gF(n,l,a[0],"min");return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}},wF=Iz({opSnippet:$M+"\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n"}),vF={kernelName:Pn,backendName:"webgl",kernelFunc:wF},xF=Iz({opSnippet:$M+"return log(x + sqrt(x * x + 1.0));"}),AF={kernelName:Un,backendName:"webgl",kernelFunc:xF},CF=Iz({opSnippet:$M+"\n return atan(x);\n"}),kF={kernelName:Vn,backendName:"webgl",kernelFunc:CF},SF=Tz({opSnippet:pz+"\n return atan(a, b);\n",packedOpSnippet:"\n vec4 result = atan(a, b);\n bvec4 isNaNA = isnan(a);\n bvec4 isNaNB = isnan(b);\n bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w);\n "+mz+"\n return result;\n"}),_F={kernelName:jn,backendName:"webgl",kernelFunc:SF},EF=Iz({opSnippet:$M+"\n if ((x < -1.0) || (x > 1.0)) return NAN;\nreturn (log(1.0 + x) - log(1.0 - x)) / 2.0;"}),IF={kernelName:Wn,backendName:"webgl",kernelFunc:EF};class TF{constructor(e,t,n,s=!1,r=!1){if(this.variableNames=["x"],"avg"===t&&n)throw new Error("Cannot compute positions for average pool.");const i=e.filterWidth,a=e.strideHeight,o=e.strideWidth,l=e.dilationHeight,u=e.dilationWidth,c=e.effectiveFilterHeight,h=e.effectiveFilterWidth,d=e.padInfo.top,p=e.padInfo.left;this.outputShape=e.outShape;const f="avg"===t,m=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`;let y="0.0";if(f||(y="-1.0 / 1e-20"),n){const t=">=";return void(this.userCode=`\n const ivec2 strides = ivec2(${a}, ${o});\n const ivec2 pads = ivec2(${d}, ${p});\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 < ${c};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${h};\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 ${t} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${s?r?m:g:`wR * ${h} + wC`};\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `)}let b=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"avg"===t&&(b="avgValue / max(count, 1.0)");const w=4*Math.floor(i/4),v=i%4,x=`\n if (${f}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = max(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec2 strides = ivec2(${a}, ${o});\n const ivec2 pads = ivec2(${d}, ${p});\n const float initializationValue = ${y};\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(${y});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wR = 0; wR < ${c};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${w}; 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 ${x}\n }\n\n int xC = xCCorner + ${w};\n if (${1===v}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${x}\n } else if (${2===v}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${u}, d),\n initializationValue,\n initializationValue\n );\n\n ${x}\n } else if (${3===v}) {\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 ${x}\n }\n }\n setOutput(${b});\n }\n `}}class NF{constructor(e,t,n,s=!1,r=!1){if(this.variableNames=["x"],"avg"===t&&n)throw new Error("Cannot compute positions for average pool.");const i=e.filterWidth,a=e.strideDepth,o=e.strideHeight,l=e.strideWidth,u=e.dilationDepth,c=e.dilationHeight,h=e.dilationWidth,d=e.effectiveFilterDepth,p=e.effectiveFilterHeight,f=e.effectiveFilterWidth,m=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;const b="avg"===t;let w="0.0";if(b||(w="-1.0 / 1e-20"),n){const t=">=";return void(this.userCode=`\n const ivec3 strides =\n ivec3(${a}, ${o}, ${l});\n const ivec3 pads = ivec3(${m}, ${g}, ${y});\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 < ${d};\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 < ${p};\n wR += ${c}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${f};\n wC += ${h}) {\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 ${t} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${s?r?`(((batch * ${e.inDepth} + xD) * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`((xD * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`wD * ${p} * ${f} +\n wR * ${f} + wC`};\n }\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `)}let v=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"avg"===t&&(v="avgValue / max(count, 1.0)");const x=4*Math.floor(i/4),A=i%4,C=`\n if (${b}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = max(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec3 strides =\n ivec3(${a}, ${o}, ${l});\n const ivec3 pads = ivec3(${m}, ${g}, ${y});\n const float initializationValue = ${w};\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(${w});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wD = 0; wD < ${d};\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 < ${p};\n wR += ${c}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${x}; wC += 4) {\n int xC = xCCorner + wC * ${h};\n\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${h}, ch),\n getValue(batch, xD, xR, xC + 2 * ${h}, ch),\n getValue(batch, xD, xR, xC + 3 * ${h}, ch)\n );\n\n ${C}\n }\n\n int xC = xCCorner + ${x};\n if (${1===A}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${C}\n } else if (${2===A}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${h}, ch),\n initializationValue,\n initializationValue\n );\n\n ${C}\n } else if (${3===A}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${h}, ch),\n getValue(batch, xD, xR, xC + 2 * ${h}, ch),\n initializationValue\n );\n\n ${C}\n }\n }\n }\n setOutput(${v});\n }\n `}}const RF={kernelName:Gn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t;JO(r,"avgPool");const{filterSize:i,strides:a,pad:o,dimRoundingMode:l}=s;Gt(Sc(a,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${a} and dilations '1'`));const u=mc(r.shape,i,a,1,o,l);if(1===u.filterWidth&&1===u.filterHeight&&$t(u.inShape,u.outShape))return yz({inputs:{x:r},backend:n});const c=new TF(u,"avg",!1);return n.runWebGLProgram(c,[r],"float32")}};const OF={kernelName:Hn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{filterSize:i,strides:a,pad:o,dimRoundingMode:l,dataFormat:u}=s,c=gc(r.shape,i,a,[1,1,1],o,l,u),h=new NF(c,"avg",!1);return n.runWebGLProgram(h,[r],"float32")}};class DF{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterHeight,n=e.filterWidth,s=e.strideHeight,r=e.strideWidth,i=e.dilationHeight,a=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,u=o-1-e.padInfo.top,c=l-1-e.padInfo.left,h=1/(t*n);this.userCode=`\n const ivec2 pads = ivec2(${u}, ${c});\n const float avgMultiplier = float(${h});\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 += ${i}) {\n float dyR = float(dyRCorner + wR) / ${s}.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 < ${l};\n wC+= ${a}) {\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(b, idyR, idyC, d);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n setOutput(dotProd);\n }\n `}}class MF{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterDepth,n=e.filterHeight,s=e.filterWidth,r=e.strideDepth,i=e.strideHeight,a=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,c=e.effectiveFilterDepth,h=e.effectiveFilterHeight,d=e.effectiveFilterWidth,p=c-1-e.padInfo.front,f=h-1-e.padInfo.top,m=d-1-e.padInfo.left,g=1/(t*n*s);this.userCode=`\n const ivec3 pads = ivec3(${p}, ${f}, ${m});\n const float avgMultiplier = float(${g});\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 < ${c};\n wD += ${o}) {\n float dyD = float(dyDCorner + wD) / ${r}.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 < ${h};\n wR += ${l}) {\n float dyR = float(dyRCorner + wR) / ${i}.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 += ${u}) {\n float dyC = float(dyCCorner + wC) / ${a}.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 `}}const zF={kernelName:Kn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,input:i}=t,a=i,{filterSize:o,strides:l,pad:u,dimRoundingMode:c}=s,h=gc(a.shape,o,l,[1,1,1],u,c),d=new MF(h);return n.runWebGLProgram(d,[r],a.dtype)}};const FF={kernelName:qn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,input:i}=t,a=i;JO([r,i],"avgPoolGrad");const{filterSize:o,strides:l,pad:u}=s,c=mc(a.shape,o,l,1,u),h=new DF(c);return n.runWebGLProgram(h,[r],a.dtype)}};const BF={kernelName:$n,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{a:r,b:i}=t,{transposeA:a,transposeB:o}=s;return Zz({a:r,b:i,transposeA:a,transposeB:o,backend:n})}};class LF{constructor(e,t,n,s,r,i){this.outputShape=[],this.variableNames=["x","mean","variance"],su(e,t),su(e,n);let a="0.0";null!=s&&(su(e,s),this.variableNames.push("offset"),a="getOffsetAtOutCoords()");let o="1.0";null!=r&&(su(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=`\n void main() {\n float x = getXAtOutCoords();\n float mean = getMeanAtOutCoords();\n float variance = getVarianceAtOutCoords();\n float offset = ${a};\n float scale = ${o};\n float inv = scale * inversesqrt(variance + float(${i}));\n setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1)));\n }\n `}}class PF{constructor(e,t,n,s,r,i){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],su(e,t),su(e,n);let a="vec4(0.0)";null!=s&&(su(e,s),this.variableNames.push("offset"),a="getOffsetAtOutCoords()");let o="vec4(1.0)";null!=r&&(su(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=`\n void main() {\n vec4 offset = ${a};\n vec4 scale = ${o};\n\n vec4 x = getXAtOutCoords();\n vec4 mean = getMeanAtOutCoords();\n vec4 variance = getVarianceAtOutCoords();\n\n vec4 inv = scale * inversesqrt(variance + vec4(${i}));\n\n setOutput((x - mean) * inv + offset);\n }\n `}}const UF={kernelName:Us,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:s,mean:r,variance:i,offset:a,scale:o}=e;Gt(r.shape.length===i.shape.length,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),Gt(null==a||r.shape.length===a.shape.length,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),Gt(null==o||r.shape.length===o.shape.length,(()=>"Batch normalization gradient requires mean and scale to have equal ranks."));let{varianceEpsilon:l}=n;null==l&&(l=.001);const u=[s,r,i];let c=null;null!=a&&(c=a.shape,u.push(a));let h=null;null!=o&&(h=o.shape,u.push(o));const d=Sn().getBool("WEBGL_PACK_NORMALIZATION")?new PF(s.shape,r.shape,i.shape,c,h,l):new LF(s.shape,r.shape,i.shape,c,h,l);return t.runWebGLProgram(d,u,u[0].dtype)}};class VF{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;const t=bD(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];const n=function(e){if(1===e)return"sourceLoc";if(e<=6)return WF.slice(0,e).map((e=>"sourceLoc."+e)).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}(this.rank);let s;s=`\n ${t} sourceLoc;\n ${t} coords = getOutputCoords();\n ${e.map(((e,t)=>`sourceLoc.${WF[t]} = start[${t}] + coords.${WF[t]};`)).join("\n")}\n `,this.userCode=`\n void main() {\n ${s}\n setOutput(getSource(${n}));\n }\n `}}const WF=["x","y","z","w","u","v"];class jF{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];const t=bD(this.rank),n=UM("coords",this.rank),s=UM("sourceLoc",this.rank),r=1===this.rank?"sourceLoc":`vec2(${s.slice(-2).join()})`,i=`getChannel(getSource(${s.join()}), ${r})`,a=`\n result.x = ${i};\n if (++${n[this.rank-1]} < ${e[this.rank-1]}) {\n ++${s[this.rank-1]};\n result.y = ${i};\n --${s[this.rank-1]};\n }\n `,o=1===this.rank?"":`\n --${n[this.rank-1]};\n if (++${n[this.rank-2]} < ${e[this.rank-2]}) {\n ++${s[this.rank-2]};\n result.z = ${i};\n if (++${n[this.rank-1]} < ${e[this.rank-1]}) {\n ++${s[this.rank-1]};\n result.w = ${i};\n }\n }\n `,l=this.rank<=4?`sourceLoc = coords +\n ${t}(${e.map(((e,t)=>`start[${t}]`)).join()});`:e.map(((e,t)=>`${s[t]} = ${n[t]} + start[${t}];`)).join("\n");this.userCode=`\n void main() {\n ${t} coords = getOutputCoords();\n ${t} sourceLoc;\n ${l}\n vec4 result = vec4(0.);\n ${a}\n ${o}\n setOutput(result);\n }\n `}}function GF(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{begin:i,size:a}=s,[o,l]=Ju(r,i,a);if(Pu(r,o,l),0===Kt(l))return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||"string"===r.dtype){const e=n.texData.get(r.dataId),t=kM(e.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,t)}const{isPacked:u}=n.texData.get(r.dataId),c=Yu(r.shape,o,l);if(u||!c){const e=Sn().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new jF(l):new VF(l),t=[o];return n.runWebGLProgram(e,[r],r.dtype,t)}return n.uploadToGPU(r.dataId),function(e,t,n,s){const r=s.texData.get(e.dataId),i=s.makeTensorInfo(n,e.dtype),a=s.texData.get(i.dataId);Object.assign(a,r),a.refCount=1,a.shape=n,a.dtype=e.dtype;let o=Qu(t,dn(e.shape));r.slice&&(o+=r.slice.flatOffset),a.slice={flatOffset:o,origDataId:r.slice&&r.slice.origDataId||e.dataId};const l=s.dataRefCount.get(a.slice.origDataId)||1;return s.dataRefCount.set(a.slice.origDataId,l+1),i}(r,o,l,n)}const qF={kernelName:ti,backendName:"webgl",kernelFunc:GF},HF={kernelName:Xn,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{blockShape:i,crops:a}=s;Gt(r.shape.length<=4,(()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet"));const o=i.reduce(((e,t)=>e*t)),l=Fm(r.shape,i,o),u=Bm(l.length,i.length),c=Lm(r.shape,i,o),h=Pm(a,i.length),d=Um(c,a,i.length),p=[],f=Bz({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Kz({inputs:{x:f},backend:n,attrs:{perm:u}}),g=Bz({inputs:{x:m},backend:n,attrs:{shape:c}}),y=GF({inputs:{x:g},backend:n,attrs:{begin:h,size:d}});return p.push(f),p.push(m),p.push(g),p.forEach((e=>n.disposeIntermediateTensorInfo(e))),y}};const KF={kernelName:Zn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,weights:i}=t,{size:a}=s,o=n.readSync(r.dataId),l=n.readSync(i.dataId),u=qD(o,l,i.dtype,i.shape,a);return n.makeTensorInfo([a],i.dtype,u)}};const $F={kernelName:Yn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{a:s,b:r}=t,i=Sn().getBool("WEBGL_PACK_BINARY_OPERATIONS"),a=Sn().getNumber("WEBGL_VERSION");if(n.shouldExecuteOnCPU([s,r])||1===a){const e=n.texData.get(s.dataId).values,t=n.texData.get(r.dataId).values,[i,a]=KD(s.shape,r.shape,e,t,s.dtype),o=n.makeTensorInfo(a,s.dtype);return n.texData.get(o.dataId).values=i,o}let o;return o=i?new gz("\n int r = int(a.r) & int(b.r);\n int g = int(a.g) & int(b.g);\n int rb = int(a.b) & int(b.b);\n int ra = int(a.a) & int(b.a);\n return vec4(r, g, rb, ra);\n",s.shape,r.shape,!1):new fz("\n return float(int(a.r) & int(b.r));\n",s.shape,r.shape),n.runWebGLProgram(o,[s,r],s.dtype)}};const XF={kernelName:Qn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{s0:s,s1:r}=t,i=n.readSync(s.dataId),a=n.readSync(r.dataId),o=su(Array.from(i),Array.from(a));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}},ZF=Tz({opSnippet:"return float(a != b);",cpuKernelImpl:fM,dtype:"bool"}),YF={kernelName:Cr,backendName:"webgl",kernelFunc:ZF};function QF(e){const{inputs:t,backend:n}=e,{input:s}=t;return yz({inputs:{x:n.texData.get(s.dataId).complexTensorInfos.real},backend:n})}const JF={kernelName:Lr,backendName:"webgl",kernelFunc:QF},eB="return float(int(x));";const tB={kernelName:Jn,backendName:"webgl",kernelFunc:function e(t){const{inputs:n,backend:s,attrs:r}=t,{x:i}=n,{dtype:a}=r;if("complex64"===a){if("complex64"===i.dtype)return yz({inputs:{x:i},backend:s});const t=wd(i.shape),n=e({inputs:{x:i},backend:s,attrs:{dtype:"float32"}}),r=wz({inputs:{real:n,imag:t},backend:s});return t.dispose(),s.disposeIntermediateTensorInfo(n),r}if("complex64"===i.dtype){const t=QF({inputs:{input:i},backend:s}),n=e({inputs:{x:t},backend:s,attrs:{dtype:a}});return s.disposeIntermediateTensorInfo(t),n}if(!rn(i.dtype,a)){const e=yz({inputs:{x:i},backend:s});return{dataId:e.dataId,shape:e.shape,dtype:a}}if(s.shouldExecuteOnCPU([i])){const e=s.texData.get(i.dataId).values,[t,n,r]=$D(e,i.shape,i.dtype,a);return s.makeTensorInfo(t,n,r)}if("int32"===a)return function(e,t){const n=new KM(e.shape,eB),s=t.runWebGLProgram(n,[e],"int32");return{dataId:s.dataId,shape:s.shape,dtype:s.dtype}}(i,s);if("bool"===a){const e=s.makeTensorInfo([],"bool",nn("bool",1)),t=ZF({inputs:{a:i,b:e},backend:s});return s.disposeIntermediateTensorInfo(e),t}throw new Error(`Error in Cast: failed to cast ${i.dtype} to ${a}`)}},nB="return ceil(x);",sB=Iz({opSnippet:nB,packedOpSnippet:nB,cpuKernelImpl:XD}),rB={kernelName:es,backendName:"webgl",kernelFunc:sB};class iB{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode="\n\n void main() {\n float value = getAAtOutCoords();\n if (isnan(value)) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, minVal, maxVal));\n }\n "}}class aB{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode="\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 "}}const oB={kernelName:ts,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{clipValueMin:i,clipValueMax:a}=s;let o;o=Sn().getBool("WEBGL_PACK_CLIP")?new aB(r.shape):new iB(r.shape);const l=[[i],[a]];return n.runWebGLProgram(o,[r],r.dtype,l)}};class lB{constructor(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 "}}function uB(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}const cB={kernelName:ss,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:s}=t,r=n.texData.get(s.dataId),i=new lB(s.shape),a=[uB(s,r.complexTensorInfos.real),uB(s,r.complexTensorInfos.imag)];return n.runWebGLProgram(i,a,a[0].dtype)}};class hB{constructor(e){this.outputShape=[],this.outputShape=Em(e,1),this.variableNames=e.map(((e,t)=>`T${t}`));const t=new Array(e.length-1);t[0]=e[0][1];for(let n=1;n`T${t}`));const o=new Array(e.length-1);o[0]=e[0][t];for(let n=1;n= ${o[e-1]}) {\n return getChannel(\n getT${e}(${pB(a,l,t)}),\n vec2(${pB(u,l,t)}));\n }`}const d=o.length,p=o[o.length-1];h+=`\n return getChannel(\n getT${d}(${pB(a,l,p)}),\n vec2(${pB(u,l,p)}));`,this.userCode=`\n float getValue(${a.map((e=>"int "+e))}) {\n ${h}\n }\n\n void main() {\n ${r} coords = getOutputCoords();\n vec4 result = vec4(getValue(${i}), 0., 0., 0.);\n\n ${i[s-1]} = ${i[s-1]} + 1;\n if (${i[s-1]} < ${n[s-1]}) {\n result.g = getValue(${i});\n }\n\n ${i[s-2]} = ${i[s-2]} + 1;\n if (${i[s-2]} < ${n[s-2]}) {\n result.a = getValue(${i});\n }\n\n ${i[s-1]} = ${i[s-1]} - 1;\n if (${i[s-2]} < ${n[s-2]} &&\n ${i[s-1]} < ${n[s-1]}) {\n result.b = getValue(${i});\n }\n setOutput(result);\n }\n `}}function pB(e,t,n){const s=e.indexOf(t);return e.map(((e,t)=>t===s?`${e} - ${n}`:e)).join()}function fB(e){const{inputs:t,backend:n}=e,{input:s}=t;return yz({inputs:{x:n.texData.get(s.dataId).complexTensorInfos.imag},backend:n})}const mB={kernelName:Ks,backendName:"webgl",kernelFunc:fB};function gB(e,t,n){const s=e[0].dtype;if("complex64"===s){const s=e.map((e=>QF({inputs:{input:e},backend:n}))),r=e.map((e=>fB({inputs:{input:e},backend:n}))),i=gB(s,t,n),a=gB(r,t,n),o=wz({inputs:{real:i,imag:a},backend:n});return s.forEach((e=>n.disposeIntermediateTensorInfo(e))),r.forEach((e=>n.disposeIntermediateTensorInfo(e))),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(a),o}let r=n.shouldExecuteOnCPU(e);if("string"===s&&(r=!0),r){const r=e.map((e=>{const s=Kt(e.shape.slice(t));return Bz({inputs:{x:e},backend:n,attrs:{shape:[-1,s]}})})),i=r.map((e=>({vals:n.readSync(e.dataId),shape:e.shape}))),a=Em(r.map((e=>e.shape)),1),o=1===r[0].shape[0],l=ZD(i,a,s,o),u=Em(e.map((e=>e.shape)),t),c=n.makeTensorInfo(u,s,l);return r.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}const i=e.filter((e=>Kt(e.shape)>0)),a=Sn().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&i[0].shape.length>1;if(1===i.length){const t=a?new KM(e[0].shape,ez):new oz(e[0].shape,ez);return n.runWebGLProgram(t,e,s)}const o=Sn().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(i.length>o){const e=[];for(let s=0;se.shape)),t);return n.runWebGLProgram(e,i,s)}const{tensors2D:l,outShape:u}=function(e,t,n){const s=Em(e.map((e=>e.shape)),t),r=e.map((e=>Bz({inputs:{x:e},attrs:{shape:[-1,Kt(e.shape.slice(t))]},backend:n})));return{tensors2D:r,outShape:s}}(i,t,n),c=new hB(l.map((e=>e.shape))),h=n.runWebGLProgram(c,l,s);l.forEach((e=>n.disposeIntermediateTensorInfo(e)));const d=Bz({inputs:{x:h},attrs:{shape:u},backend:n});return n.disposeIntermediateTensorInfo(h),d}function yB(e){const{inputs:t,backend:n,attrs:s}=e,{axis:r}=s,i=en(r,t[0].shape)[0];_m(t.map((e=>e.shape)),i);const a=Em(t.map((e=>e.shape)),i);if(0===Kt(a))return n.makeTensorInfo(a,t[0].dtype,[]);const o=t.filter((e=>Kt(e.shape)>0));return 1===o.length?yz({inputs:{x:o[0]},backend:n}):gB(o,i,n)}const bB={kernelName:rs,backendName:"webgl",kernelFunc:yB};class wB{constructor(e,t=!1,n=null,s=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;const i=e.padInfo.top,a=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,u=e.dilationHeight,c=e.dilationWidth,h=e.filterHeight,d=e.filterWidth,p=4*Math.floor(e.inChannels/4),f=e.inChannels%4,m="channelsLast"===e.dataFormat,g=m?1:2,y=m?2:3,b=m?3:1;let w="",v="";n&&(w=s?`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:r?`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:`\n float activation(float x) {\n ${n}\n }\n `,v="result = activation(result);");const x=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),s&&this.variableNames.push("preluActivationWeights"),r&&this.variableNames.push("leakyreluAlpha"),this.userCode=`\n ${w}\n\n const ivec2 strides = ivec2(${o}, ${l});\n const ivec2 pads = ivec2(${i}, ${a});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d2 = coords[${b}];\n\n ivec2 xRCCorner =\n ivec2(coords[${g}], coords[${y}]) * 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 < ${h}; wR++) {\n int xR = xRCorner + wR * ${u};\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 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 (${m}) {\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===f}) {\n\n if (${m}) {\n dotProd +=\n getX(batch, xR, xC, ${p}) *\n getW(wR, wC, ${p}, d2);\n } else {\n dotProd +=\n getX(batch, ${p}, xR, xC) *\n getW(wR, wC, ${p}, d2);\n }\n\n } else if (${2===f}) {\n vec2 wValues = vec2(\n getW(wR, wC, ${p}, d2),\n getW(wR, wC, ${p} + 1, d2)\n );\n\n if (${m}) {\n vec2 xValues = vec2(\n getX(batch, xR, xC, ${p}),\n getX(batch, xR, xC, ${p} + 1)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec2 xValues = vec2(\n getX(batch, ${p}, xR, xC),\n getX(batch, ${p} + 1, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n } else if (${3===f}) {\n vec3 wValues = vec3(\n getW(wR, wC, ${p}, d2),\n getW(wR, wC, ${p} + 1, d2),\n getW(wR, wC, ${p} + 2, d2)\n );\n\n if (${m}) {\n vec3 xValues = vec3(\n getX(batch, xR, xC, ${p}),\n getX(batch, xR, xC, ${p} + 1),\n getX(batch, xR, xC, ${p} + 2)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec3 xValues = vec3(\n getX(batch, ${p}, xR, xC),\n getX(batch, ${p} + 1, xR, xC),\n getX(batch, ${p} + 2, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n }\n }\n }\n\n float result = dotProd;\n ${x}\n ${v}\n setOutput(result);\n }\n `}}class vB{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;const t=e.padInfo.front,n=e.padInfo.top,s=e.padInfo.left,r=e.strideDepth,i=e.strideHeight,a=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,c=e.filterDepth,h=e.filterHeight,d=e.filterWidth,p=4*Math.floor(e.inChannels/4),f=e.inChannels%4;this.userCode=`\n const ivec3 strides = ivec3(${r}, ${i}, ${a});\n const ivec3 pads = ivec3(${t}, ${n}, ${s});\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 < ${c}; wF++) {\n int xF = xFCorner + wF * ${o};\n\n if (xF < 0 || xF >= ${e.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${h}; wR++) {\n int xR = xRCorner + wR * ${l};\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 * ${u};\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===f}) {\n dotProd +=\n getX(batch, xF, xR, xC, ${p}) *\n getW(wF, wR, wC, ${p}, d2);\n } else if (${2===f}) {\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===f}) {\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 `}}class xB{constructor(e,t=!1,n=null,s=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=SD(this.outputShape.length);const i=e.padInfo.left,a=e.strideWidth,o=e.dilationWidth,l=e.filterHeight,u=e.filterWidth,c=u;let h="\n int xR; int xC; int xCOffset;\n vec4 wTexel; vec4 previous; vec4 final;";for(let e=0;e=0 && xR < inDims[0]) {\n ";for(let t=0;t<(c+1)/2;t++){const n=2*t;if(h+=`\n xC = xCCorner + ${n*o};\n `,1===a){if(n= 0 && xCOffset < inDims[1] && xTexelC${n}Ready == 0) {\n xTexelC${n} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${n}.zw = vec2(0.0);\n }\n xTexelC${n}Ready = 1;\n }\n `,h+=1===o&&n>0?`\n xC${n} = vec4(xTexelC${n-2}.zw, xTexelC${n}.xy);\n `:`\n xCOffset = xC + 1 - 2;\n\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n previous.zw = vec2(0.0);\n }\n\n xC${n} = vec4(previous.zw, xTexelC${n}.xy);\n } else {\n xC${n} = vec4(0.0, 0.0, xTexelC${n}.xy);\n }\n `):h+=`\n if (xC >= 0 && xC < inDims[1] && xTexelC${n}Ready == 0) {\n xTexelC${n} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${n}.zw = vec2(0.0);\n }\n xTexelC${n}Ready = 1;\n }\n\n xC${n} = xTexelC${n};\n `,n+1= 0 && xCOffset < inDims[1] && xTexelC${n+1}Ready == 0) {\n xTexelC${n+1} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${n+1}.zw = vec2(0.0);\n }\n xTexelC${n+1}Ready = 1;\n }\n `,h+=o>1?`\n xCOffset -= 2;\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n xC${n+1} = vec4(previous.zw, xTexelC${n+1}.xy);\n } else {\n xC${n+1} = vec4(0.0, 0.0, xTexelC${n+1}.xy);\n }\n `:`\n xC${n+1} = vec4(xTexelC${n}.zw, xTexelC${n+1}.xy);\n `):h+=1===e?`\n xC${n+1} = xTexelC${n};\n `:`\n xCOffset = xC + ${e};\n\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${n+1}Ready == 0) {\n xTexelC${n+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${n+1}.zw = vec2(0.0);\n }\n xTexelC${n+1}Ready = 1;\n }\n\n xC${n+1} = xTexelC${n+1};\n `}}else n= 0 && xCOffset < inDims[1] && xTexelC${n}Ready == 0) {\n xTexelC${n} = getX(batch, xR, xCOffset, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${n}.zw = vec2(0.0);\n }\n xTexelC${n}Ready = 1;\n }\n\n if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${n+1}Ready == 0) {\n xTexelC${n+1} = getX(batch, xR, xC + 1, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xC + 2 >= inDims[1]) {\n xTexelC${n+1}.zw = vec2(0.0);\n }\n xTexelC${n+1}Ready = 1;\n }\n\n xC${n} = vec4(xTexelC${n}.zw, xTexelC${n+1}.zw);\n `,n+1= 0 && xCOffset < inDims[1]) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xC${n+1} = vec4(xTexelC${n+1}.xy, final.xy);\n `)):(h+=`\n if(xC >= 0 && xC < inDims[1] && xTexelC${n}Ready == 0) {\n xTexelC${n} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${n}.zw = vec2(0.0);\n }\n xTexelC${n}Ready = 1;\n }\n\n xCOffset = xC + strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${n+1}Ready == 0) {\n xTexelC${n+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${n+1}.zw = vec2(0.);\n }\n xTexelC${n+1}Ready = 1;\n }\n\n xC${n} = vec4(\n xTexelC${n}.xy, xTexelC${n+1}.xy);\n `,n+1= 0) {\n // Use custom imod instead mod. On Intel GPU, mod may generate\n // unexpected value.\n // https://github.com/tensorflow/tfjs/issues/5447\n offsetX = imod(blockIndex, outWidth) * stride[1] - pad[1];\n d1 = offsetX + dilation[1] * (imod(pos, itemsPerBlockRow) /\n inChannels);\n\n if(d1 < inputShape[${a}] && d1 >= 0) {\n\n ch = imod(pos, inChannels);\n\n if (${r}) {\n innerDims = vec2(d1, ch);\n result[${2*e+t}] = getChannel(\n getA(rc.x, d0, int(innerDims.x),\n int(innerDims.y)), innerDims);\n } else {\n innerDims = vec2(d0, d1);\n result[${2*e+t}] = getChannel(\n getA(rc.x, ch, int(innerDims.x),\n int(innerDims.y)), innerDims);\n }\n }\n }\n }\n `;this.userCode=`\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0);\n\n int blockIndex, pos, offsetY, d0, offsetX, d1, ch;\n vec2 innerDims;\n\n ${l}\n\n ${s.output} = result;\n }\n `}}function CB(e,t){const n=e.length;return n>=3?t?[...e.slice(0,-3),e[n-3]*e[n-2],e[n-1]]:[...e.slice(0,-3),e[n-3],e[n-2]*e[n-1]]:!t&&1===n&&e[0]>1?[e[0],1]:null}function kB({x:e,filter:t,convInfo:n,backend:s,bias:r=null,preluActivationWeights:i=null,leakyreluAlpha:a=0,activation:o=null}){const l=e.shape,u=s.texData.get(e.dataId),c=n.inChannels,h=l[0]*l[1]*l[2],d=n.outChannels,p="channelsLast"===n.dataFormat,f=!1;let m;const g=[];if(null!=i){const e=CB(i.shape,p);null!=e&&(i=Bz({inputs:{x:i},backend:s,attrs:{shape:e}}),g.push(i))}if(null!=r){const e=CB(r.shape,p);null!=e&&(r=Bz({inputs:{x:r},backend:s,attrs:{shape:e}}),g.push(r))}if(!((1===h||1===d)&&c>Xz)&&u.isPacked&&p&&null!=u.texture&&l[2]%2!=0&&$t(u.shape.slice(-3),l.slice(-3))){const c=l[0]*l[1]*(l[2]+1),h={dataId:e.dataId,shape:[1,c,n.inChannels],dtype:e.dtype},d=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,Gt(HO(u.shape,h.shape),(()=>`packed reshape ${u.shape} to ${h.shape} isn't free`));const p=Bz({inputs:{x:t},backend:s,attrs:{shape:[1,n.inChannels,n.outChannels]}});g.push(p);const y=Zz({a:h,b:p,backend:s,transposeA:false,transposeB:f,bias:r,activation:o,preluActivationWeights:i,leakyreluAlpha:a}),b=s.texData.get(y.dataId);Gt(b.isPacked,(()=>"batchMatMul result is expected to be packed")),u.shape=d,b.shape=n.outShape,m=yz({inputs:{x:y},backend:s}),m.shape=n.outShape,g.push(y)}else{const l=n.outHeight*n.outWidth,u=Bz({inputs:{x:e},backend:s,attrs:{shape:p?[n.batchSize,l,n.inChannels]:[n.batchSize,n.inChannels,l]}}),c=Bz({inputs:{x:t},backend:s,attrs:{shape:[1,n.inChannels,n.outChannels]}}),h=Zz({a:p?u:c,b:p?c:u,transposeA:!p,transposeB:f,backend:s,bias:r,activation:o,preluActivationWeights:i,leakyreluAlpha:a});m=Bz({inputs:{x:h},backend:s,attrs:{shape:n.outShape}}),g.push(u),g.push(c),g.push(h)}for(const e of g)s.disposeIntermediateTensorInfo(e);return m}function SB({x:e,filter:t,convInfo:n,backend:s,bias:r=null,preluActivationWeights:i=null,leakyreluAlpha:a=0,activation:o=null}){const{filterWidth:l,filterHeight:u,inChannels:c,outWidth:h,outHeight:d,dataFormat:p}=n,f="channelsLast"===p,m=l*u*c,g=d*h,y=[n.batchSize,m,g],b=[];if(null!=i){const e=CB(i.shape,f);null!=e&&(i=Bz({inputs:{x:i},backend:s,attrs:{shape:e}}),b.push(i))}if(null!=r){const e=CB(r.shape,f);null!=e&&(r=Bz({inputs:{x:r},backend:s,attrs:{shape:e}}),b.push(r))}const w=Bz({inputs:{x:t},backend:s,attrs:{shape:[1,m,Kt(t.shape)/m]}});b.push(w);const v=new AB(y,n),x=[e.shape,[n.padInfo.top,n.padInfo.left],[n.strideHeight,n.strideWidth],[n.dilationHeight,n.dilationWidth],[n.inChannels],[n.filterWidth*n.inChannels],[n.outWidth]],A=s.runWebGLProgram(v,[e],"float32",x),C=Bz({inputs:{x:A},backend:s,attrs:{shape:y}});b.push(A),b.push(C);const k=null!=r,S=null!=i,_="leakyrelu"===o,E=o?Nz(o,!0):null,I=new Rz(f?C.shape:w.shape,f?w.shape:C.shape,f?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],!0,!1,k,E,S,_),T=f?[C,w]:[w,C];if(r&&T.push(r),S&&T.push(i),_){const e=s.makeTensorInfo([],"float32",da(a,"float32"));T.push(e),b.push(e)}const N=s.runWebGLProgram(I,T,"float32"),R=Bz({inputs:{x:N},backend:s,attrs:{shape:n.outShape}});b.push(N);for(const e of b)s.disposeIntermediateTensorInfo(e);return R}const _B={kernelName:is,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,filter:i}=t,{strides:a,pad:o,dataFormat:l,dilations:u,dimRoundingMode:c}=s,h=Ec(l),d=yc(r.shape,i.shape,a,u,o,c,!1,h);let p;if(1!==d.filterHeight||1!==d.filterWidth||1!==d.dilationHeight||1!==d.dilationWidth||1!==d.strideHeight||1!==d.strideWidth||"SAME"!==d.padInfo.type&&"VALID"!==d.padInfo.type)if(d.strideWidth<=2&&"channelsLast"===h&&Sn().getBool("WEBGL_EXP_CONV")){const e=new xB(d),t=[[d.padInfo.top,d.padInfo.left],[d.strideHeight,d.strideWidth],[d.dilationHeight,d.dilationWidth],[d.inHeight,d.inWidth]];p=n.runWebGLProgram(e,[r,i],"float32",t)}else if(Sn().getBool("WEBGL_CONV_IM2COL"))p=SB({x:r,filter:i,convInfo:d,backend:n});else{const e=new wB(d);p=n.runWebGLProgram(e,[r,i],"float32")}else p=kB({x:r,filter:i,convInfo:d,backend:n});const f=Bz({inputs:{x:p},backend:n,attrs:{shape:d.outShape}});return n.disposeIntermediateTensorInfo(p),f}};class EB{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,n=e.strideWidth,s=e.padInfo.top,r=e.padInfo.left,i="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} - ${s};\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} - ${r};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n ${i?"float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);":"float dyValue = getDy(b, d2, yR, yC);\n float xValue = getX(b, d1, xR, xC);\n dotProd += (xValue * dyValue);"}\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class IB{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,n=e.filterWidth,s=e.strideHeight,r=e.strideWidth,i="channelsLast"===e.dataFormat,a=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=i?1:2,u=i?2:3,c=i?3:1;this.userCode=`\n const ivec2 pads = ivec2(${a}, ${o});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[${c}];\n\n ivec2 dyCorner = ivec2(coords[${l}], coords[${u}]) - 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) / ${s}.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) / ${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 int wCPerm = ${n} - 1 - wC;\n\n for (int d2 = 0; d2 < ${e.outChannels}; d2++) {\n\n if (${i}) {\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n } else {\n float xValue = getDy(batch, d2, idyR, idyC);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class TB{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideDepth,n=e.strideHeight,s=e.strideWidth,r=e.padInfo.front,i=e.padInfo.top,a=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} - ${r};\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} - ${i};\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 * ${s} - ${a};\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 `}}class NB{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterDepth,n=e.filterHeight,s=e.filterWidth,r=e.strideDepth,i=e.strideHeight,a=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,u=s-1-e.padInfo.left;this.userCode=`\n const ivec3 pads = ivec3(${o}, ${l}, ${u});\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) / ${r}.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) / ${i}.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 < ${s}; wC++) {\n float dyC = float(dyCCorner + wC) / ${a}.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 = ${s} - 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 `}}const RB={kernelName:as,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,dy:i}=t,{strides:a,pad:o,dataFormat:l,dimRoundingMode:u,filterShape:c}=s,h=Ec(l),d=yc(r.shape,c,a,1,o,u,!1,h),p=new EB(d);return n.runWebGLProgram(p,[r,i],"float32")}};class OB{constructor(e){this.variableNames=["dy","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"strides",type:"vec2"}],this.outputShape=e.inShape,this.enableShapeUniforms=SD(this.outputShape.length);const t=e.filterHeight,n=e.filterWidth,s=t-1-e.padInfo.top,r=n-1-e.padInfo.left;this.userCode=`\n const ivec2 pads = ivec2(${s}, ${r});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n\n ivec2 dyCorner = ivec2(coords[1], coords[2]) - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n vec4 result = vec4(0.);\n for (int wR = 0; wR < ${t}; wR++) {\n float dyR = float(dyRCorner + wR) / strides[0];\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n int wRPerm = ${t} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n int wCPerm = ${n} - 1 - wC;\n\n float dyC = float(dyCCorner + wC) / strides[1];\n bool idyCVal = (dyC >= 0.0) && (dyC < ${e.outWidth}.0)\n && (fract(dyC) == 0.0);\n int idyC = int(dyC);\n\n float dyC2 = float(dyCCorner + wC + 1) / strides[1];\n bool idyCVal2 = (dyC2 >= 0.0) && (dyC2 < ${e.outWidth}.0)\n && (fract(dyC2) == 0.0);\n int idyC2 = int(dyC2);\n\n if (idyCVal && idyCVal2) {\n for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC, d2);\n vec4 dySample2 = (idyC / 2 == idyC2 / 2) ?\n dySample : getDy(batch, idyR, idyC2, d2);\n\n vec2 dyValue = mod(float(idyC), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.xy += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n\n dyValue = mod(float(idyC2), 2.) == 0. ?\n dySample2.xy : dySample2.zw;\n result.zw += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n } else if (idyCVal) {\n for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC, d2);\n vec2 dyValue = mod(float(idyC), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.xy += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n } else if (idyCVal2) {\n for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC2, d2);\n vec2 dyValue = mod(float(idyC2), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.zw += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n }\n }\n }\n setOutput(result);\n }\n `}}const DB={kernelName:os,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,filter:i}=t,{inputShape:a,strides:o,pad:l,dataFormat:u,dimRoundingMode:c}=s,h=Ec(u),d=yc(a,i.shape,o,1,l,c,!1,h);if(Sn().getBool("WEBGL_PACK_CONV2DTRANSPOSE")&&"channelsLast"===h){const e=[[d.strideHeight,d.strideWidth]],t=new OB(d);return n.runWebGLProgram(t,[r,i],"float32",e)}{const e=new IB(d);return n.runWebGLProgram(e,[r,i],"float32")}}};const MB={kernelName:ls,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,filter:i}=t,{strides:a,pad:o,dilations:l}=s,u=bc(r.shape,i.shape,a,l,o),c=new vB(u);return n.runWebGLProgram(c,[r,i],"float32")}};const zB={kernelName:us,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,dy:i}=t,{strides:a,pad:o,filterShape:l}=s,u=bc(r.shape,l,a,1,o),c=new TB(u);return n.runWebGLProgram(c,[r,i],"float32")}};const FB={kernelName:cs,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,filter:i}=t,{pad:a,strides:o,inputShape:l}=s,u=bc(l,i.shape,o,1,a),c=new NB(u);return n.runWebGLProgram(c,[r,i],"float32")}},BB=Iz({opSnippet:Ez+"\n return cos(x);\n",packedOpSnippet:`\n vec4 result = cos(x);\n bvec4 isNaN = isnan(x);\n ${mz}\n return result;\n`}),LB={kernelName:hs,backendName:"webgl",kernelFunc:BB},PB=Iz({opSnippet:"\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n"}),UB={kernelName:ds,backendName:"webgl",kernelFunc:PB};class VB{constructor(e,t,n,s,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];const[i,a,o,l]=e,[u]=t,[c,h]=n;this.outputShape=[u,c,h,l];const d="bilinear"===s?1:0,[p,f]=[a-1+".0",o-1+".0"],[m,g,y]=c>1?[""+(a-1)/(c-1),"(y2-y1) * height_ratio",`y1*${p} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${p}`],[b,w,v]=h>1?[""+(o-1)/(h-1),"(x2-x1) * width_ratio",`x1*${f} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${f}`];this.userCode=`\n const float height_ratio = float(${m});\n const float width_ratio = float(${b});\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int y = coords[1];\n int x = coords[2];\n int d = coords[3];\n\n // get box vals\n float y1 = getBoxes(b,0);\n float x1 = getBoxes(b,1);\n float y2 = getBoxes(b,2);\n float x2 = getBoxes(b,3);\n\n // get image in batch index\n int bInd = round(getBoxInd(b));\n if(bInd < 0 || bInd >= ${i}) {\n return;\n }\n\n float height_scale = ${g};\n float width_scale = ${w};\n\n float in_y = ${y};\n if( in_y < 0.0 || in_y > ${p} ) {\n setOutput(float(${r}));\n return;\n }\n float in_x = ${v};\n if( in_x < 0.0 || in_x > ${f} ) {\n setOutput(float(${r}));\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 `}}const WB={kernelName:ms,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:s}=e,{image:r,boxes:i,boxInd:a}=t,{cropSize:o,method:l,extrapolationValue:u}=s,c=new VB(r.shape,i.shape,o,l,u);return n.runWebGLProgram(c,[r,i,a],"float32")}};var jB;!function(e){e.Prod="*",e.Sum="+"}(jB||(jB={}));class GB{constructor(e,t,n,s){this.op=e,this.outputShape=t,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];const r=this.outputShape.length,i=this.op===jB.Prod?"1.0":"0.0",a=n?i:`getX(${qB(r,"coords",this.op)})`,o=this.outputShape[this.outputShape.length-1];let l="",u="";n?(l=s?"end != "+(o-1):"end != 0",u=s?"end + 1":"end - 1"):(l=s?`end + pow2 < ${o}`:"end >= pow2",u=s?"end + pow2":"end - pow2"),this.userCode=`\n void main() {\n ${bD(r)} coords = getOutputCoords();\n int end = ${HB(r,"coords",this.op)};\n float val = ${a};\n int pow2 = int(pow(2.0, index));\n if (${l}) {\n int idx = ${u};\n ${HB(r,"coords",this.op)} = idx;\n val ${this.op}= getX(${qB(r,"coords",this.op)});\n }\n setOutput(val);\n }\n `}}function qB(e,t,n){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 new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function HB(e,t,n){if(1===e)return`${t}`;if(2===e)return`${t}.y`;if(3===e)return`${t}.z`;if(4===e)return`${t}.w`;throw new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function KB(e,t,n,s,r,i){const a=t.shape.length,o=Ih([s],a);let l=t;null!=o&&(l=Kz({inputs:{x:t},backend:n,attrs:{perm:o}}));const u=Nh(1,a)[0];if(u!==a-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${s}`);const c=l.shape[u];let h=yz({inputs:{x:l},backend:n});for(let t=0;t<=Math.ceil(Math.log2(c))-1;t++){const s=new GB(e,l.shape,!1,i),r=[[t]],a=h;h=n.runWebGLProgram(s,[h],h.dtype,r),n.disposeIntermediateTensorInfo(a)}if(r){const t=new GB(e,l.shape,r,i),s=h;h=n.runWebGLProgram(t,[h],h.dtype),n.disposeIntermediateTensorInfo(s)}if(null!=o){const e=Kz({inputs:{x:h},backend:n,attrs:{perm:Th(o)}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(l),e}return h}const $B={kernelName:ps,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i,exclusive:a,reverse:o}=s;return KB(jB.Prod,r,n,i,a,o)}};const XB={kernelName:fs,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i,exclusive:a,reverse:o}=s;return KB(jB.Sum,r,n,i,a,o)}};const ZB={kernelName:gs,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,weights:i}=t,{size:a,binaryOutput:o}=s;if(1===r.shape.length){const e=n.readSync(r.dataId),t=n.readSync(i.dataId),s=qD(e,t,i.dtype,i.shape,a);return n.makeTensorInfo([a],i.dtype,s)}if(2===r.shape.length){const e=n.bufferSync(r),t=n.bufferSync(i),s=HD(e,t,a,o);return n.makeTensorInfo(s.shape,i.dtype,s.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${r.shape.length}.`)}};class YB{constructor(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 `}getHeightCoordString(){return"NHWC"===this.dataFormat?"coords[1]":"coords[2]"}getWidthCoordString(){return"NHWC"===this.dataFormat?"coords[2]":"coords[3]"}getDepthCoordString(){return"NHWC"===this.dataFormat?"coords[3]":"coords[1]"}getOutputDepthSize(){return"NHWC"===this.dataFormat?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return"NHWC"===this.dataFormat?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}}const QB={kernelName:ys,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{blockSize:i,dataFormat:a}=s,o=r.shape[0],l=("NHWC"===a?r.shape[1]:r.shape[2])*i,u=("NHWC"===a?r.shape[2]:r.shape[3])*i,c=("NHWC"===a?r.shape[3]:r.shape[1])/(i*i),h=new YB("NHWC"===a?[o,l,u,c]:[o,c,l,u],i,a);return n.runWebGLProgram(h,[r],r.dtype)}};class JB{constructor(e,t=!1,n=null,s=!1,r=!1){this.variableNames=["x","W"],this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=SD(this.outputShape.length);const i=e.filterHeight,a=e.filterWidth,o=e.outChannels/e.inChannels;let l="",u="";n&&(l=s?`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:r?`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:`\n float activation(float x) {\n ${n}\n }\n `,u="result = activation(result);");const c=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),s&&this.variableNames.push("preluActivationWeights"),r&&this.variableNames.push("leakyreluAlpha"),this.userCode=`\n ${l}\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n ivec2 xRCCorner = coords.yz * strides - pads;\n int d2 = coords.w;\n int d1 = d2 / ${o};\n int q = d2 - d1 * ${o};\n\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations.\n for (int wR = 0; wR < ${i}; wR++) {\n int xR = xRCorner + wR * dilations[0];\n\n if (xR < 0 || xR >= inDims[0]) {\n continue;\n }\n\n for (int wC = 0; wC < ${a}; wC++) {\n int xC = xCCorner + wC * dilations[1];\n\n if (xC < 0 || xC >= inDims[1]) {\n continue;\n }\n\n float xVal = getX(batch, xR, xC, d1);\n float wVal = getW(wR, wC, d1, q);\n dotProd += xVal * wVal;\n }\n }\n\n float result = dotProd;\n ${c}\n ${u}\n setOutput(result);\n }\n `}}class eL{constructor(e,t=!1,n=null,s=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=SD(this.outputShape.length);const i=e.outChannels/e.inChannels,a=e.padInfo.left,o=e.strideWidth,l=e.dilationWidth,u=e.filterHeight,c=e.filterWidth,h=c;let d="\n int xR; int xC; int xCOffset;\n vec4 wTexel; vec4 previous; vec4 final;";for(let e=0;e=0 && xR < inDims[0]) {\n ";for(let e=0;e<(h+1)/2;e++){const t=2*e;if(d+=`\n xC = xCCorner + ${t*l};\n `,1===o){if(t= 0 && xCOffset < inDims[1] && xTexelC${t}Ready == 0) {\n xTexelC${t} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${t}.zw = vec2(0.0);\n }\n xTexelC${t}Ready = 1;\n }\n `,d+=1===l&&t>0?`\n xC${t} = vec4(xTexelC${t-2}.zw, xTexelC${t}.xy);\n `:`\n xCOffset = xC + 1 - 2;\n\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n previous.zw = vec2(0.0);\n }\n\n xC${t} = vec4(previous.zw, xTexelC${t}.xy);\n } else {\n xC${t} = vec4(0.0, 0.0, xTexelC${t}.xy);\n }\n `):d+=`\n if (xC >= 0 && xC < inDims[1] && xTexelC${t}Ready == 0) {\n xTexelC${t} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${t}.zw = vec2(0.0);\n }\n xTexelC${t}Ready = 1;\n }\n\n xC${t} = xTexelC${t};\n `,t+1= 0 && xCOffset < inDims[1] && xTexelC${t+1}Ready == 0) {\n xTexelC${t+1} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${t+1}.zw = vec2(0.0);\n }\n xTexelC${t+1}Ready = 1;\n }\n `,d+=l>1?`\n xCOffset -= 2;\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n xC${t+1} = vec4(previous.zw, xTexelC${t+1}.xy);\n } else {\n xC${t+1} = vec4(0.0, 0.0, xTexelC${t+1}.xy);\n }\n `:`\n xC${t+1} = vec4(xTexelC${t}.zw, xTexelC${t+1}.xy);\n `):d+=1===e?`\n xC${t+1} = xTexelC${t};\n `:`\n xCOffset = xC + ${e};\n\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${t+1}Ready == 0) {\n xTexelC${t+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${t+1}.zw = vec2(0.0);\n }\n xTexelC${t+1}Ready = 1;\n }\n\n xC${t+1} = xTexelC${t+1};\n `}}else t= 0 && xCOffset < inDims[1] && xTexelC${t}Ready == 0) {\n xTexelC${t} = getX(batch, xR, xCOffset, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${t}.zw = vec2(0.0);\n }\n xTexelC${t}Ready = 1;\n }\n\n if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${t+1}Ready == 0) {\n xTexelC${t+1} = getX(batch, xR, xC + 1, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xC + 2 >= inDims[1]) {\n xTexelC${t+1}.zw = vec2(0.0);\n }\n xTexelC${t+1}Ready = 1;\n }\n\n xC${t} = vec4(xTexelC${t}.zw, xTexelC${t+1}.zw);\n `,t+1= 0 && xCOffset < inDims[1]) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xC${t+1} = vec4(xTexelC${t+1}.xy, final.xy);\n `)):(d+=`\n if(xC >= 0 && xC < inDims[1] && xTexelC${t}Ready == 0) {\n xTexelC${t} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${t}.zw = vec2(0.0);\n }\n xTexelC${t}Ready = 1;\n }\n\n xCOffset = xC + strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${t+1}Ready == 0) {\n xTexelC${t+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${t+1}.zw = vec2(0.);\n }\n xTexelC${t+1}Ready = 1;\n }\n\n xC${t} = vec4(\n xTexelC${t}.xy, xTexelC${t+1}.xy);\n `,t+1`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${a} and dilations '${c}'`));const h=yc(r.shape,i.shape,a,c,o,u,!0);let d;d=Sn().getBool("WEBGL_PACK_DEPTHWISECONV")&&h.strideWidth<=2&&h.outChannels/h.inChannels==1?new eL(h):new JB(h);const p=[[h.padInfo.top,h.padInfo.left],[h.strideHeight,h.strideWidth],[h.dilationHeight,h.dilationWidth],[h.inHeight,h.inWidth]];return n.runWebGLProgram(d,[r,i],"float32",p)}};class nL{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,n=e.strideWidth,s=e.padInfo.top,r=e.padInfo.left,i=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 * ${i} + 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} - ${s};\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} - ${r};\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 `}}class sL{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,n=e.filterWidth,s=e.strideHeight,r=e.strideWidth,i=t-1-e.padInfo.top,a=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=`\n const ivec2 pads = ivec2(${i}, ${a});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n ivec2 dyCorner = coords.yz - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n float dotProd = 0.0;\n\n for (int wR = 0; wR < ${t}; wR++) {\n float dyR = float(dyRCorner + wR) / ${s}.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) / ${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 int wCPerm = ${n} - 1 - wC;\n\n // TO DO: Vec4 over the channelMul\n for (int dm = 0; dm < ${o}; dm++) {\n int d2 = d1 * ${o} + 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 `}}const rL={kernelName:ws,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,dy:i}=t,{strides:a,dilations:o,pad:l,dimRoundingMode:u,filterShape:c}=s,h=yc(r.shape,c,a,o,l,u,!0),d=new nL(h);return n.runWebGLProgram(d,[r,i],"float32")}};const iL={kernelName:vs,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,filter:i}=t,{strides:a,dilations:o,pad:l,dimRoundingMode:u,inputShape:c}=s,h=yc(c,i.shape,a,o,l,u,!0),d=new sL(h);return n.runWebGLProgram(d,[r,i],"float32")}};class aL{constructor(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 "}}const oL={kernelName:xs,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:s}=t,r=[...s.shape,...s.shape],i=Kt(s.shape),a=Bz({inputs:{x:s},backend:n,attrs:{shape:[i]}}),o=new aL(i),l=n.runWebGLProgram(o,[a],a.dtype),u=Bz({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(l),u}};class lL{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;const{inHeight:t,inWidth:n,padInfo:s,strideHeight:r,strideWidth:i,filterHeight:a,filterWidth:o,dilationHeight:l,dilationWidth:u}=e,{top:c,left:h}=s;this.userCode=`\n const ivec2 strides = ivec2(${r}, ${i});\n const ivec2 pads = ivec2(${c}, ${h});\n const float neg_infinity = -3.4e38;\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.w;\n ivec2 outTopLeftCorner =\n coords.yz * strides - pads;\n int hBeg = outTopLeftCorner.x;\n int wBeg = outTopLeftCorner.y;\n\n float curVal = neg_infinity;\n for (int h = 0; h < ${a}; h++) {\n int hIn = hBeg + h * ${l};\n\n if (hIn >= 0 && hIn < ${t}) {\n for (int w = 0; w < ${o}; w++) {\n int wIn = wBeg + w * ${u};\n\n if (wIn >= 0 && wIn < ${n}) {\n float xVal = getX(batch, hIn, wIn, d1);\n float wVal = getW(h, w, d1);\n\n float val = xVal + wVal;\n if (val > curVal) {\n curVal = val;\n }\n }\n }\n }\n }\n\n float result = curVal;\n setOutput(result);\n }\n `}}const uL={kernelName:As,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,filter:i}=t,{strides:a,pad:o,dilations:l}=s,u=fc(r.shape,i.shape,a,o,"NHWC",l);let c;const h=new lL(u);c=n.runWebGLProgram(h,[r,i],"float32");const d=Bz({inputs:{x:c},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(c),d}};const cL={kernelName:Es,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{equation:r}=s,i=t,{allDims:a,summedDims:o,idDims:l}=lg(r,i.length);cg(a.length,l,i);const{path:u,steps:c}=hg(o,l),h=c.length;let d=null,p=a.length;const f=[];for(let e=0;e=0&&(d=qz({inputs:{x:d},backend:n,attrs:{axis:u[e]-(a.length-p),keepDims:!1}}),f.push(d)),p--)}for(const e of f)e!==d&&n.disposeIntermediateTensorInfo(e);return d}},hL=Iz({opSnippet:"return (x >= 0.0) ? x : (exp(x) - 1.0);",packedOpSnippet:"\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"}),dL={kernelName:Is,backendName:"webgl",kernelFunc:hL},pL={kernelName:Ts,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n}=e,{dy:s,y:r}=t,i=Sn().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new gz("\n vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n",s.shape,r.shape):new fz("return (b >= 0.0) ? a : a * (b + 1.0);",s.shape,r.shape);return n.runWebGLProgram(i,[s,r],s.dtype)}},fL=Tz({opSnippet:"return float(a == b);",packedOpSnippet:"\n return vec4(equal(a, b));\n",dtype:"bool",cpuKernelImpl:YD}),mL={kernelName:Rs,backendName:"webgl",kernelFunc:fL},gL=Iz({opSnippet:`\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 = ${Gm};\n float a1 = ${qm};\n float a2 = ${Hm};\n float a3 = ${Km};\n float a4 = ${$m};\n float a5 = ${Xm};\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`}),yL={kernelName:Ns,backendName:"webgl",kernelFunc:gL},bL=Iz({opSnippet:Ez+"\n return exp(x);\n",packedOpSnippet:"\n vec4 result = exp(x);\n bvec4 isNaN = isnan(x);\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n",cpuKernelImpl:QD,dtype:"float32"}),wL={kernelName:Os,backendName:"webgl",kernelFunc:bL};function vL(e){const{inputs:t,attrs:n,backend:s}=e,{dim:r}=n,{input:i}=t,a=i.shape.length,o=i.shape.slice();let l=r;return r<0&&(Gt(-(a+1)<=r,(()=>`Axis must be in the interval [${-(a+1)}, ${a}]`)),l=a+r+1),o.splice(l,0,1),Bz({inputs:{x:i},backend:s,attrs:{shape:o}})}const xL={kernelName:Ds,backendName:"webgl",kernelFunc:vL},AL="return exp(x) - 1.0;",CL=Iz({opSnippet:AL,packedOpSnippet:AL,cpuKernelImpl:JD}),kL={kernelName:Ms,backendName:"webgl",kernelFunc:CL};class SL{constructor(e,t,n){this.variableNames=["real","imag"];const s=t[1];this.outputShape=t;const r=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,i=n?`${s}.0`:"1.0";let a;if("real"===e)a="return real * expR - imag * expI;";else{if("imag"!==e)throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);a="return real * expI + imag * expR;"}this.userCode=`\n const float exponentMultiplier = ${r};\n\n float unaryOpComplex(float real, float expR, float imag, float expI) {\n ${a}\n }\n\n float mulMatDFT(int batch, int index) {\n float indexRatio = float(index) / float(${s});\n float exponentMultiplierTimesIndexRatio =\n exponentMultiplier * indexRatio;\n\n float result = 0.0;\n\n for (int i = 0; i < ${s}; i++) {\n // x = (-2|2 * PI / N) * index * i;\n float x = exponentMultiplierTimesIndexRatio * float(i);\n float expR = cos(x);\n float expI = sin(x);\n float real = getReal(batch, i);\n float imag = getImag(batch, i);\n\n result +=\n unaryOpComplex(real, expR, imag, expI) / ${i};\n }\n\n return result;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n setOutput(mulMatDFT(coords[0], coords[1]));\n }\n `}}function _L(e,t,n){const s=n.texData.get(e.dataId),r=Kt(e.shape),i=e.shape[e.shape.length-1],a=Bz({inputs:{x:e},backend:n,attrs:{shape:[r/i,i]}}),o=a.shape,l=new SL("real",o,t),u=new SL("imag",o,t),c=[{dataId:s.complexTensorInfos.real.dataId,dtype:s.complexTensorInfos.real.dtype,shape:o},{dataId:s.complexTensorInfos.imag.dataId,dtype:s.complexTensorInfos.imag.dtype,shape:o}],h=n.runWebGLProgram(l,c,"float32"),d=n.runWebGLProgram(u,c,"float32"),p=wz({inputs:{real:h,imag:d},backend:n});n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(d);const f=Bz({inputs:{x:p},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(p),f}const EL={kernelName:zs,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:s}=t;return _L(s,!1,n)}};class IL{constructor(e,t){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=e,this.userCode="\n void main() {\n // Input can be obtained from uniform value.\n setOutput(value);\n }\n "}}function TL(e){const{backend:t,attrs:n}=e,{shape:s,value:r}=n;let{dtype:i}=n;if(i=i||un(r),"string"===i){const e=sn(i,Kt(s));return e.fill(r),t.makeTensorInfo(s,i,e)}{const e=new IL(s,r),n=[[r]];return t.runWebGLProgram(e,[],i,n)}}const NL={kernelName:Fs,backendName:"webgl",kernelFunc:TL};class RL{constructor(e){this.variableNames=["Image"],this.outputShape=[];const t=e[2];this.outputShape=e,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n\n int coordX = ${t} - x - 1;\n float outputValue;\n if(coordX >= 0 && coordX < ${t}) {\n outputValue = getImage(coords[0], coords[1], coordX, coords[3]);\n } else {\n outputValue = getImage(coords[0], coords[1], coords[2], coords[3]);\n }\n setOutput(outputValue);\n }\n `}}const OL={kernelName:Bs,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{const{image:n}=e,s=t,r=new RL(n.shape);return s.runWebGLProgram(r,[n],n.dtype)}},DL="return floor(x);",ML=Iz({opSnippet:DL,packedOpSnippet:DL,cpuKernelImpl:eM}),zL={kernelName:Ls,backendName:"webgl",kernelFunc:ML},FL=Tz({opSnippet:"\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",packedOpSnippet:"\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",dtype:"int32"}),BL={kernelName:Ps,backendName:"webgl",kernelFunc:FL};class LL{constructor(e){this.variableNames=["A"];const t=tD(),[n,s]=e;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(${s}.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 `}}class PL{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const t=tD(),[n,s]=e;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(${s}.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 `}}const UL={kernelName:Fi,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e;let{pixels:r}=t;const{numChannels:i}=s,a="undefined"!=typeof HTMLVideoElement&&r instanceof HTMLVideoElement,o="undefined"!=typeof HTMLImageElement&&r instanceof HTMLImageElement,[l,u]=a?[r.videoWidth,r.videoHeight]:[r.width,r.height],c=[u,l],h=[u,l,i];if(o||a){const e=Sn().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");null!=VL&&e===WL||(WL=e,VL=document.createElement("canvas").getContext("2d",{willReadFrequently:WL})),VL.canvas.width=l,VL.canvas.height=u,VL.drawImage(r,0,0,l,u),r=VL.canvas}const d=n.makeTensorInfo(c,"int32");n.texData.get(d.dataId).usage=CO.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(d.dataId),r);const p=Sn().getBool("WEBGL_PACK")?new PL(h):new LL(h),f=n.runWebGLProgram(p,[d],"int32");return n.disposeData(d.dataId),f}};let VL,WL=Sn().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");const jL={kernelName:Pi,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,filter:i,bias:a,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:d,activation:p,leakyreluAlpha:f}=s,m=Ec(c),g=yc(r.shape,i.shape,l,h,u,d,!1,m);let y;const b=[],w=null!=a,v=null!=o,x="leakyrelu"===p,A=()=>{const e=[r,i],t=(e,t)=>{if("NCHW"===t&&1===e.shape.length&&1!==e.shape[0]){const t=Bz({inputs:{x:e},backend:n,attrs:{shape:[e.shape[0],1,1]}});return b.push(t),t}return e};if(w&&e.push(t(a,c)),v&&e.push(t(o,c)),x){const t=n.makeTensorInfo([],"float32",da(f,"float32"));e.push(t),b.push(t)}return e};if(1!==g.filterHeight||1!==g.filterWidth||1!==g.dilationHeight||1!==g.dilationWidth||1!==g.strideHeight||1!==g.strideWidth||"SAME"!==g.padInfo.type&&"VALID"!==g.padInfo.type)if(g.strideWidth<=2&&"channelsLast"===m&&Sn().getBool("WEBGL_EXP_CONV")){const e=p?Nz(p,!0):null,t=new xB(g,w,e,v,x),s=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],r=A();y=n.runWebGLProgram(t,r,"float32",s)}else if(Sn().getBool("WEBGL_CONV_IM2COL"))y=SB({x:r,filter:i,convInfo:g,backend:n,bias:a,activation:p,preluActivationWeights:o,leakyreluAlpha:f});else{const e=p?Nz(p,!1):null,t=new wB(g,w,e,v,x),s=A();y=n.runWebGLProgram(t,s,"float32")}else y=kB({x:r,filter:i,convInfo:g,backend:n,bias:a,activation:p,preluActivationWeights:o,leakyreluAlpha:f});const C=Bz({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach((e=>n.disposeIntermediateTensorInfo(e))),C}};const GL={kernelName:Ui,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,filter:i,bias:a,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:c,dimRoundingMode:h,activation:d,leakyreluAlpha:p}=s,f=[];let m=c;null==m&&(m=[1,1]),Gt(Sc(l,m),(()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${m}'`));const g=yc(r.shape,i.shape,l,m,u,h,!0),y=Sn().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels==1,b=d?Nz(d,y):null,w=[r,i],v=null!=a,x=null!=o,A="leakyrelu"===d;if(v&&w.push(a),x&&w.push(o),A){const e=n.makeTensorInfo([],"float32",da(p,"float32"));w.push(e),f.push(e)}let C;C=y?new eL(g,v,b,x,A):new JB(g,v,b,x,A);const k=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],S=n.runWebGLProgram(C,w,"float32",k);return f.forEach((e=>n.disposeIntermediateTensorInfo(e))),S}};class qL{constructor(e,t,n,s){this.sliceDim=e,this.strides=t,this.paramsShape=s,this.variableNames=["x","indices"],this.outputShape=n;const r=bD(n.length);let i="\n int index;";for(let e=0;e= ${this.paramsShape[e]};\n flattenIndex += index * ${this.strides[e]};`;this.userCode=`\n void main() {\n ${r} coords = getOutputCoords();\n int flattenIndex = 0;\n bool out_of_bounds = false;\n\n ${i}\n\n setOutput(out_of_bounds ? 0.0 : getX(flattenIndex, coords[1]));\n }\n `}}const HL={kernelName:Ws,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{params:s,indices:r}=t,i=r.shape,a=i[i.length-1],o=Kt(s.shape),[l,u,c,h]=Vm(s,r),d=Bz({inputs:{x:r},backend:n,attrs:{shape:[u,a]}}),p=Bz({inputs:{x:s},backend:n,attrs:{shape:[Kt(s.shape)/c,c]}});if(n.shouldExecuteOnCPU([s,r])||"string"===s.dtype){const e=n.readSync(r.dataId),t=n.bufferSync(s),i=tM(e,t,s.dtype,u,a,c,h,s.shape,o);return n.makeTensorInfo(l,s.dtype,i.values)}const f=new qL(a,h,[u,c],s.shape),m=n.runWebGLProgram(f,[p,d],p.dtype),g=Bz({inputs:{x:m},backend:n,attrs:{shape:l}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),g}};class KL{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;const n=bD(this.rank),s=function(e,t){const n=["resRC.x","resRC.y","resRC.z","resRC.w"],s=[];for(let t=0;t= 0) && (index < ${e[2]}) ? 1.0 : 0.0;\n setOutput(inBounds * getA(${s}));\n }\n `}}function $L(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,indices:i}=t,{axis:a,batchDims:o}=s,l=en(a,r.shape)[0];if(Sn().get("DEBUG")){const e=n.readSync(i.dataId),t=r.shape[l];for(let n=0;n=0,(()=>`GatherV2: the index value ${s} is not in [0, ${t-1}]`))}}const u=Tg(r,i,l,o),c=Kt(i.shape),h=[],d=Bz({inputs:{x:r},backend:n,attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]}}),p=Bz({inputs:{x:i},backend:n,attrs:{shape:[u.batchSize,c/u.batchSize]}});h.push(d),h.push(p);const f=[u.batchSize,u.outerSize,c/u.batchSize,u.sliceSize];if(n.shouldExecuteOnCPU([r,i])||"string"===r.dtype){const e=n.bufferSync(p),t=n.bufferSync(d),s=nM(t,e,f);return h.forEach((e=>n.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(u.outputShape,s.dtype,s.values)}const m=new KL(d.shape,f),g=n.runWebGLProgram(m,[d,p],d.dtype);h.push(g);const y=Bz({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return h.forEach((e=>n.disposeIntermediateTensorInfo(e))),y}const XL={kernelName:Vs,backendName:"webgl",kernelFunc:$L},ZL=Tz({opSnippet:"return float(a > b);",packedOpSnippet:"\n return vec4(greaterThan(a, b));\n",cpuKernelImpl:sM,dtype:"bool"}),YL={kernelName:js,backendName:"webgl",kernelFunc:ZL},QL=Tz({opSnippet:"return float(a >= b);",packedOpSnippet:"\n return vec4(greaterThanEqual(a, b));\n",dtype:"bool",cpuKernelImpl:rM}),JL={kernelName:Gs,backendName:"webgl",kernelFunc:QL};const eP={kernelName:Hs,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:s}=t;return _L(s,!0,n)}},tP=Iz({opSnippet:"return float(!isnan(x) && !isinf(x));",dtype:"bool"}),nP={kernelName:$s,backendName:"webgl",kernelFunc:tP},sP=Iz({opSnippet:"return float(isinf(x));",dtype:"bool"}),rP={kernelName:Xs,backendName:"webgl",kernelFunc:sP},iP=Iz({opSnippet:"return float(isnan(x));",dtype:"bool"}),aP={kernelName:Zs,backendName:"webgl",kernelFunc:iP},oP=Tz({opSnippet:"return float(a < b);",packedOpSnippet:"\n return vec4(lessThan(a, b));\n",cpuKernelImpl:iM,dtype:"bool"}),lP={kernelName:Qs,backendName:"webgl",kernelFunc:oP},uP=Tz({opSnippet:"return float(a <= b);",packedOpSnippet:"\n return vec4(lessThanEqual(a, b));\n",cpuKernelImpl:aM,dtype:"bool"}),cP={kernelName:Js,backendName:"webgl",kernelFunc:uP};const hP={kernelName:er,backendName:"webgl",kernelFunc:function(e){const{backend:t,attrs:n}=e,{start:s,stop:r,num:i}=n,a=oM(s,r,i);return t.makeTensorInfo([a.length],"float32",a)}},dP=Iz({opSnippet:Ez+"\n return x < 0.0 ? 0./0. : log(x);\n",packedOpSnippet:"\n vec4 result = log(x);\n bvec4 isNaN = isnan(x);\n result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r);\n result.g = isNaN.g ? x.g : (x.g < 0.0 ? 0./0. : result.g);\n result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b);\n result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a);\n return result;\n",cpuKernelImpl:lM}),pP={kernelName:tr,backendName:"webgl",kernelFunc:dP},fP=Iz({opSnippet:Ez+"\n return log(1.0 + x);\n"}),mP={kernelName:nr,backendName:"webgl",kernelFunc:fP},gP=Tz({opSnippet:"return float(a >= 1.0 && b >= 1.0);",packedOpSnippet:"\n return vec4(\n vec4(greaterThanEqual(a, vec4(1.0))) *\n vec4(greaterThanEqual(b, vec4(1.0))));\n",dtype:"bool"}),yP={kernelName:sr,backendName:"webgl",kernelFunc:gP},bP=Iz({opSnippet:"return float(!(x >= 1.0));"}),wP={kernelName:rr,backendName:"webgl",kernelFunc:bP},vP=Tz({opSnippet:"return float(a >= 1.0 || b >= 1.0);",packedOpSnippet:"\n return min(\n vec4(greaterThanEqual(a, vec4(1.0))) +\n vec4(greaterThanEqual(b, vec4(1.0))),\n vec4(1.0));\n",dtype:"bool"}),xP={kernelName:ir,backendName:"webgl",kernelFunc:vP};class AP{constructor(e,t,n,s,r){this.variableNames=["x"],this.outputShape=[];const i=t,a=e[3]-1;let o;this.outputShape=e;const l=`float(${n}) + float(${s}) * sum`;o=.5===r?`inversesqrt(${l})`:1===r?`1.0/(${l})`:`exp(log(${l}) * float(-${r}));`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n int d = coords[3];\n float x = getX(b, r, c, d);\n float sum = 0.0;\n for (int j = -${i}; j <= ${i}; j++) {\n int idx = d + j;\n if (idx >= 0 && idx <= ${a}) {\n float z = getX(b, r, c, idx);\n sum += z * z;\n }\n }\n float val = x * ${o};\n setOutput(val);\n }\n `}}class CP{constructor(e,t,n,s,r){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;const i=t,a=e[3]-1;let o;this.outputShape=e;const l=`float(${n}) + float(${s}) * sum`;o=.5===r?`inversesqrt(${l})`:1===r?`1.0/(${l})`:`exp(log(${l}) * float(-${r}));`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords.x;\n int r = coords.y;\n int c = coords.z;\n int d = coords.w;\n\n bool hasNextCol = d < ${this.outputShape[3]};\n bool hasNextRow = c < ${this.outputShape[2]};\n\n vec4 sum = vec4(0.);\n vec4 xFragAtOutputCoords = getX(b, r, c, d);\n\n vec4 xAtOutputCoords = vec4(\n getChannel(xFragAtOutputCoords, vec2(c, d)),\n hasNextCol ?\n getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0,\n hasNextRow ?\n getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0,\n (hasNextRow && hasNextCol) ?\n getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0\n );\n\n int firstChannel = d - ${i};\n vec2 cache = vec2(0.);\n if(firstChannel >= 0){\n vec4 firstChannelFrag = getX(b, r, c, firstChannel);\n cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel));\n if(hasNextRow){\n cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel));\n }\n }\n\n ivec2 depth = ivec2(d, d + 1);\n for (int j = - ${i}; j <= ${i}; j++) {\n ivec2 idx = depth + j;\n bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0));\n bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${a}));\n\n bool depthInRange = aboveLowerBound.x && belowUpperBound.x;\n bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y;\n\n if(depthInRange || depthPlusOneInRange){\n vec4 z = vec4(0.);\n vec4 xFragAtCurrentDepth;\n z.xz = cache.xy;\n if(depthPlusOneInRange && hasNextCol){\n xFragAtCurrentDepth = idx.y != d ?\n getX(b, r, c, idx.y) : xFragAtOutputCoords;\n z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y));\n if(hasNextRow){\n z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y));\n }\n }\n cache.xy = z.yw;\n sum += z * z;\n }\n }\n vec4 result = xAtOutputCoords * ${o};\n setOutput(result);\n }\n `}}const kP={kernelName:ar,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{depthRadius:i,bias:a,alpha:o,beta:l}=s,u=Sn().getBool("WEBGL_PACK_NORMALIZATION")?new CP(r.shape,i,a,o,l):new AP(r.shape,i,a,o,l);return n.runWebGLProgram(u,[r],r.dtype)}};class SP{constructor(e,t,n,s,r){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=s,this.beta=r,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(${s}) * 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(${s})\n * float(${r})\n * getInputImage(b, r, c, k) * getOutputImage(b, r, c, d)\n / norm;\n if (k == d) {\n dyi += pow(norm, -1.0 * ${r});\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 `}}const _P={kernelName:or,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:s}=e,{x:r,y:i,dy:a}=t,{depthRadius:o,bias:l,alpha:u,beta:c}=s,h=new SP(r.shape,o,l,u,c);return n.runWebGLProgram(h,[r,i,a],r.dtype)}};function EP(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{reductionIndices:i,keepDims:a}=s,o=r.shape.length,l=en(i,r.shape);let u=l;const c=Ih(u,o),h=null!=c,d=n.shouldExecuteOnCPU([r]);let p=r;if(h){if(d){const e=n.texData.get(p.dataId).values,t=new Array(o);for(let e=0;e`Error in maxPool: Either strides or dilations must be 1. Got strides ${a} and dilations '1'`));const u=mc(r.shape,i,a,1,o,l);if(1===u.filterWidth&&1===u.filterHeight&&$t(u.inShape,u.outShape))return yz({inputs:{x:r},backend:n});const c=new TF(u,"max",!1);return n.runWebGLProgram(c,[r],r.dtype)}};const OP={kernelName:dr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{filterSize:i,strides:a,pad:o,dataFormat:l,dimRoundingMode:u}=s,c=gc(r.shape,i,a,[1,1,1],o,u,l),h=new NF(c,"max",!1);return n.runWebGLProgram(h,[r],r.dtype)}};class DP{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideHeight,n=e.strideWidth,s=e.dilationHeight,r=e.effectiveFilterHeight,i=e.effectiveFilterWidth,a=r-1-e.padInfo.top,o=i-1-e.padInfo.left,l=r*i-1;this.userCode=`\n const ivec2 pads = ivec2(${a}, ${o});\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 < ${r};\n wR += ${s}) {\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 < ${i}; 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 = ${l} - int(getMaxPos(b, idyR, idyC, d));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue = wR * ${i} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n setOutput(dotProd);\n }\n `}}class MP{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideDepth,n=e.strideHeight,s=e.strideWidth,r=e.dilationDepth,i=e.dilationHeight,a=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,u=e.effectiveFilterWidth,c=o-1-e.padInfo.front,h=l-1-e.padInfo.top,d=u-1-e.padInfo.left,p=o*l*u-1;this.userCode=`\n const ivec3 pads = ivec3(${c}, ${h}, ${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 < ${o};\n wD += ${r}) {\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 < ${l};\n wR += ${i}) {\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 < ${u};\n wC += ${a}) {\n float dyC = float(dyCCorner + wC) / ${s}.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 * ${l} * ${u} +\n wR * ${u} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n }\n setOutput(dotProd);\n }\n `}}const zP={kernelName:pr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,input:i}=t,a=i,{filterSize:o,strides:l,pad:u,dimRoundingMode:c}=s,h=gc(a.shape,o,l,[1,1,1],u,c),d=new NF(h,"max",!0),p=n.runWebGLProgram(d,[a],a.dtype),f=new MP(h),m=n.runWebGLProgram(f,[r,p],a.dtype);return n.disposeIntermediateTensorInfo(p),m}};const FP={kernelName:hr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{dy:r,input:i,output:a}=t,o=i;JO([i,a],"maxPoolGrad");const{filterSize:l,strides:u,pad:c,dimRoundingMode:h}=s,d=mc(o.shape,l,u,1,c,h),p=new TF(d,"max",!0),f=n.runWebGLProgram(p,[o],o.dtype),m=new DP(d),g=n.runWebGLProgram(m,[r,f],o.dtype);return n.disposeIntermediateTensorInfo(f),g}};const BP={kernelName:fr,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{x:s}=e,{filterSize:r,strides:i,pad:a,includeBatchInIndex:o}=t,l=n;Gt(4===s.shape.length,(()=>`Error in maxPool: input must be rank 4 but got rank ${s.shape.length}.`));const u=[1,1];Gt(Sc(i,u),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`));const c=mc(s.shape,r,i,u,a),[h,d]=function(e,t,n,s){let r=new TF(n,"max",!1);const i=s.runWebGLProgram(r,[e],"float32");return r=new TF(n,"max",!0,!0,t),[i,s.runWebGLProgram(r,[e],"float32")]}(s,o,c,l);return[h,d]}};const LP={kernelName:mr,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{x:s}=e,{keepDims:r,axis:i}=t,a=n,o=s.shape.length,l=en(i,s.shape);let u=l;const c=Ih(u,o),h=null!=c,d=a.shouldExecuteOnCPU([s]),p=[];let f=s;if(h){if(d){const e=a.texData.get(f.dataId).values,t=new Array(o);for(let e=0;et[0]+e[n]+t[1]));const s=e.length,r=bD(s),i=t.map((e=>e[0])).join(","),a=t.map(((t,n)=>t[0]+e[n])).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,s),l="reflect"===n?0:1;this.userCode=1!==s?`\n ${r} start = ${r}(${i});\n ${r} end = ${r}(${a});\n\n void main() {\n ${r} outC = getOutputCoords();\n for (int i = 0; i < ${s}; i++) {\n if (outC[i] < start[i]) {\n outC[i] = start[i] * 2 - outC[i] - ${l};\n } else if(outC[i] >= end[i]) {\n outC[i] = (end[i] - 1) * 2 - outC[i] + ${l};\n }\n }\n ${r} coords = outC - start;\n setOutput(getX(${o}));\n }\n `:`\n int start = ${i};\n int end = ${a};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start) {\n outC = start * 2 - outC - ${l};\n } else if(outC >= end) {\n outC = (end - 1) * 2 - outC + ${l};\n }\n setOutput(getX(outC - start));\n }\n `}}class jP{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const s=e.length,r=bD(s),i=t.map((e=>e[0])).join(","),a=t.map(((t,n)=>t[0]+e[n])).join(","),o=UM("rc",s),l=UM("source",s),u=`${o[s-1]} < ${this.outputShape[s-1]}`,c=1===s?"source":`vec2(${l.slice(-2).join()})`,h="reflect"===n?0:1;let d="";if(1===s){const e=`\n ${r} source = rc;\n if (source < start) {\n source = start * 2 - source - ${h};\n } else if (source >= end) {\n source = (end - 1) * 2 - source + ${h};\n }\n source -= start;\n `;d=`\n ${r} rc = outputLoc;\n ${e}\n result[0] = getChannel(getX(${l.join()}), ${c});\n ${o[s-1]} += 1;\n if(${u}) {\n ${e}\n result[1] = getChannel(getX(${l.join()}), ${c});\n }\n `}else{const e=`\n ${r} source = rc;\n ${r} lt = ${r}(lessThan(source, start));\n ${r} gte = ${r}(greaterThanEqual(source, end));\n ${r} orig = 1 - (lt + gte);\n source = orig * source +\n lt * (start * 2 - source - ${h}) +\n gte * ((end - 1) * 2 - source + ${h});\n source -= start;\n `;d=`\n ${r} rc = outputLoc;\n ${e}\n result[0] = getChannel(getX(${l.join()}), ${c});\n ${o[s-1]} += 1;\n if(${u}) {\n ${e}\n result[1] = getChannel(getX(${l.join()}), ${c});\n }\n rc = outputLoc;\n ${o[s-2]} += 1;\n if(${o[s-2]} < ${this.outputShape[s-2]}) {\n ${e}\n result[2] = getChannel(getX(${l.join()}), ${c});\n ${o[s-1]} += 1;\n if(${u}) {\n ${e}\n result[3] = getChannel(getX(${l.join()}), ${c});\n }\n }\n `}this.userCode=`\n const ${r} start = ${r}(${i});\n const ${r} end = ${r}(${a});\n\n void main() {\n ${r} outputLoc = getOutputCoords();\n vec4 result = vec4(0.);\n ${d}\n setOutput(result);\n }\n `}}const GP={kernelName:br,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:s}=e,{paddings:r,mode:i}=n,a=Sn().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new jP(s.shape,r,i):new WP(s.shape,r,i);return t.runWebGLProgram(a,[s],s.dtype)}},qP=Tz({opSnippet:"if (b == 0.0) return NAN;\n return mod(a, b);",packedOpSnippet:"\n vec4 result = mod(a, b);\n bvec4 isNaN = equal(b, vec4(0.0));\n "+mz+"\n return result;\n"}),HP={kernelName:wr,backendName:"webgl",kernelFunc:qP};class KP{constructor(e,t,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,n],this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n\n float r = random(seed);\n float cdf = 0.0;\n\n for (int i = 0; i < ${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 `}}const $P=Tz({opSnippet:"\nif (a == b) {\n return 1.0;\n};\nreturn a / b;",packedOpSnippet:"\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",checkOutOfBounds:!0}),XP={kernelName:_s,backendName:"webgl",kernelFunc:$P},ZP="return a - b;",YP=Tz({opSnippet:ZP,packedOpSnippet:ZP,supportsComplex:!0,cpuKernelImpl:MM}),QP={kernelName:ki,backendName:"webgl",kernelFunc:YP};function JP(e){const{inputs:t,backend:n,attrs:s}=e,{logits:r}=t,{dim:i}=s,a=en([i],r.shape),o=EP({inputs:{x:r},backend:n,attrs:{reductionIndices:a,keepDims:!1}}),l=_h(o.shape,a),u=Bz({inputs:{x:o},backend:n,attrs:{shape:l}}),c=YP({inputs:{a:r,b:u},backend:n}),h=bL({inputs:{x:c},backend:n}),d=qz({inputs:{x:h},backend:n,attrs:{axis:a,keepDims:!1}}),p=Bz({inputs:{x:d},backend:n,attrs:{shape:l}}),f=$P({inputs:{a:h,b:p},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),f}const eU={kernelName:hi,backendName:"webgl",kernelFunc:JP};const tU={kernelName:vr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{logits:r}=t,{numSamples:i,seed:a,normalized:o}=s,l=o?r:JP({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],c=l.shape[1],h=new KP(u,c,i),d=[[a]],p=n.runWebGLProgram(h,[l],"int32",d);return o||n.disposeIntermediateTensorInfo(l),p}},nU=$M+"\n return -x;\n";const sU={kernelName:Ar,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:s}=t;if(n.shouldExecuteOnCPU([s])){const e=n.texData.get(s.dataId),[t,r]=pM(e.values,s.shape,s.dtype);return n.makeTensorInfo(r,s.dtype,t)}let r;return r=Sn().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new oz(s.shape,"\n vec4 result = -x;\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n"):new KM(s.shape,nU),n.runWebGLProgram(r,[s],s.dtype)}},rU=Of;const iU={kernelName:kr,backendName:"webgl",kernelFunc:function(e){Vi();const{inputs:t,backend:n,attrs:s}=e,{boxes:r,scores:i}=t,{maxOutputSize:a,iouThreshold:o,scoreThreshold:l}=s,u=n.readSync(r.dataId),c=n.readSync(i.dataId),{selectedIndices:h}=rU(u,c,a,o,l);return n.makeTensorInfo([h.length],"int32",new Int32Array(h))}},aU=Df;const oU={kernelName:Sr,backendName:"webgl",kernelFunc:function(e){Vi();const{inputs:t,backend:n,attrs:s}=e,{boxes:r,scores:i}=t,{maxOutputSize:a,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:u}=s,c=n.readSync(r.dataId),h=n.readSync(i.dataId),{selectedIndices:d,validOutputs:p}=aU(c,h,a,o,l,u);return[n.makeTensorInfo([d.length],"int32",new Int32Array(d)),n.makeTensorInfo([],"int32",new Int32Array([p]))]}},lU=Mf;const uU={kernelName:_r,backendName:"webgl",kernelFunc:function(e){Vi();const{inputs:t,backend:n,attrs:s}=e,{boxes:r,scores:i}=t,{maxOutputSize:a,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=s,c=n.readSync(r.dataId),h=n.readSync(i.dataId),d=a,p=o,f=l,m=u,{selectedIndices:g,selectedScores:y}=lU(c,h,d,p,f,m);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([y.length],"float32",new Float32Array(y))]}};class cU{constructor(e,t,n,s){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(${s}), float(${n}),\n float(index == coords.y)));\n }\n `}}const hU={kernelName:Ir,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:s}=e,{indices:r}=t,{dtype:i,depth:a,onValue:o,offValue:l}=s,u=Kt(r.shape),c=new cU(u,a,o,l),h=Bz({inputs:{x:r},backend:n,attrs:{shape:[u]}}),d=n.runWebGLProgram(c,[h],i);n.disposeIntermediateTensorInfo(h);const p=Bz({inputs:{x:d},backend:n,attrs:{shape:[...r.shape,a]}});return n.disposeIntermediateTensorInfo(d),p}};function dU(e){const{inputs:t,backend:n}=e,{x:s}=t;if("complex64"===s.dtype){const e=QF({inputs:{input:s},backend:n}),t=dU({inputs:{x:e},backend:n}),r=fB({inputs:{input:s},backend:n}),i=dU({inputs:{x:r},backend:n}),a=wz({inputs:{real:t,imag:i},backend:n});return n.disposeIntermediateTensorInfo(e),n.disposeIntermediateTensorInfo(t),n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(i),a}return TL({attrs:{shape:s.shape,dtype:s.dtype,value:"string"===s.dtype?"":0},backend:n})}const pU={kernelName:Mi,backendName:"webgl",kernelFunc:dU};const fU={kernelName:Er,backendName:"webgl",kernelFunc:function e(t){const{inputs:n,backend:s}=t,{x:r}=n;if("string"===r.dtype)throw new Error("onesLike is not supported under string dtype");if("complex64"===r.dtype){const t=QF({inputs:{input:r},backend:s}),n=e({inputs:{x:t},backend:s}),i=fB({inputs:{input:r},backend:s}),a=dU({inputs:{x:i},backend:s}),o=wz({inputs:{real:n,imag:a},backend:s});return s.disposeIntermediateTensorInfo(t),s.disposeIntermediateTensorInfo(n),s.disposeIntermediateTensorInfo(i),s.disposeIntermediateTensorInfo(a),o}return TL({attrs:{shape:r.shape,dtype:r.dtype,value:1},backend:s})}};const mU={kernelName:Tr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{axis:r}=s;if(1===t.length)return vL({inputs:{input:t[0]},backend:n,attrs:{dim:r}});const i=t[0].shape,a=t[0].dtype;t.forEach((e=>{qt(i,e.shape,"All tensors passed to stack must have matching shapes"),Gt(a===e.dtype,(()=>"All tensors passed to stack must have matching dtypes"))}));const o=[],l=yB({inputs:t.map((e=>{const t=vL({inputs:{input:e},backend:n,attrs:{dim:r}});return o.push(t),t})),backend:n,attrs:{axis:r}});return o.forEach((e=>n.disposeIntermediateTensorInfo(e))),l}};class gU{constructor(e,t,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const s=e.length,r=bD(s),i=t.map((e=>e[0])).join(","),a=t.map(((t,n)=>t[0]+e[n])).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,s);this.userCode=1!==s?`\n ${r} start = ${r}(${i});\n ${r} end = ${r}(${a});\n\n void main() {\n ${r} outC = getOutputCoords();\n if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n setOutput(value);\n } else {\n ${r} coords = outC - start;\n setOutput(getX(${o}));\n }\n }\n `:`\n int start = ${i};\n int end = ${a};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start || outC >= end) {\n setOutput(value);\n } else {\n setOutput(getX(outC - start));\n }\n }\n `}}class yU{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const s=e.length,r=bD(s),i=t.map((e=>e[0])).join(","),a=t.map(((t,n)=>t[0]+e[n])).join(","),o=UM("rc",s),l=UM("source",s),u=`${o[s-1]} < ${this.outputShape[s-1]}`,c=1===s?"source":`vec2(${l.slice(-2).join()})`,h=[`${r} rc = outputLoc;`,`${o[s-1]} += 1;\n if(${u}) {\n `,1===s?"":`}\n rc = outputLoc;\n ${o[s-2]} += 1;\n if(${o[s-2]} < ${this.outputShape[s-2]}) {`,1===s?"":` ${o[s-1]} += 1;\n if(${u}) {`],d=1===s?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))";let p="";for(let e=0,t=1===s?2:4;e{const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{paddings:i,constantValue:a}=s;if(0===Kt(r.shape)){const e=i.map(((e,t)=>e[0]+r.shape[t]+e[1]));return TL({backend:n,attrs:{shape:e,value:a,dtype:r.dtype}})}const o=Sn().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new yU(r.shape,i,a):new gU(r.shape,i,a),l=[[a]];return n.runWebGLProgram(o,[r],r.dtype,l)},wU={kernelName:Nr,backendName:"webgl",kernelFunc:bU},vU=Tz({opSnippet:"\n if(a < 0.0 && floor(b) < b){\n return NAN;\n }\n if (b == 0.0) {\n return 1.0;\n }\n return (round(mod(b, 2.0)) != 1) ?\n pow(abs(a), b) : sign(a) * pow(abs(a), b);\n",packedOpSnippet:"\n // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise.\n vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1)));\n vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1);\n vec4 result = multiplier * pow(abs(a), b);\n\n // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS\n bvec4 isExpZero = equal(b, vec4(0.0));\n result.r = isExpZero.r ? 1.0 : result.r;\n result.g = isExpZero.g ? 1.0 : result.g;\n result.b = isExpZero.b ? 1.0 : result.b;\n result.a = isExpZero.a ? 1.0 : result.a;\n\n bvec4 isNaN1 = lessThan(a, vec4(0.0));\n bvec4 isNaN2 = lessThan(floor(b), b);\n bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w);\n "+mz+"\n return result;\n"}),xU={kernelName:Rr,backendName:"webgl",kernelFunc:vU};const AU={kernelName:Dr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{axis:i,keepDims:a}=s,o=r.shape.length,l=[],u=en(i,r.shape);let c=u;const h=Ih(c,o);let d,p=r;if(null!=h&&(p=Kz({inputs:{x:r},backend:n,attrs:{perm:h}}),c=Nh(c.length,o),l.push(p)),Eh("prod",c,o),n.shouldExecuteOnCPU([p])){const e=n.texData.get(p.dataId).values,{outVals:t,outShape:s,outDtype:r}=mM(p.shape,p.dtype,e,c);d=n.makeTensorInfo(s,r,t)}else{const[e,t]=Sh(p.shape,c),s=Kt(t),i=Bz({inputs:{x:p},backend:n,attrs:{shape:[-1,s]}}),a=Vz(i,Ga(r.dtype),"prod",n);d=Bz({inputs:{x:a},backend:n,attrs:{shape:e}}),l.push(i),l.push(a)}if(a){l.push(d);const e=_h(d.shape,u);d=Bz({inputs:{x:d},backend:n,attrs:{shape:e}})}return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),d}};const CU={kernelName:Mr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{paramsNestedSplits:r,paramsDenseValues:i,indices:a}=t,{outputRaggedRank:o}=s,l=r.map((e=>n.readSync(e.dataId))),u=r.map((e=>e.shape)),c=n.readSync(i.dataId),h=n.readSync(a.dataId),[d,p,f]=gM(l,u,c,i.shape,i.dtype,h,a.shape,o),m=d.map((e=>n.makeTensorInfo([e.length],"int32",e))),g=n.makeTensorInfo(f,i.dtype,p);return m.concat([g])}};const kU={kernelName:zr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{starts:s,limits:r,deltas:i}=t,a=n.readSync(s.dataId),o=n.readSync(r.dataId),l=n.readSync(i.dataId),[u,c]=yM(a,s.shape,s.dtype,o,r.shape,l,i.shape);return[n.makeTensorInfo([u.length],"int32",u),n.makeTensorInfo([c.length],s.dtype,c)]}};const SU={kernelName:Fr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{shape:r,values:i,defaultValue:a,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=s,u=n.readSync(r.dataId),c=n.readSync(i.dataId),h=n.readSync(a.dataId),d=o.map((e=>n.readSync(e.dataId))),p=o.map((e=>e.shape)),[f,m]=bM(u,r.shape,c,i.shape,i.dtype,h,a.shape,d,p,l);return n.makeTensorInfo(f,i.dtype,m)}},_U=e=>{const{backend:t,attrs:n}=e,{start:s,stop:r,step:i,dtype:a}=n,o=wM(s,r,i,a);return t.makeTensorInfo([o.length],a,o)},EU={kernelName:Br,backendName:"webgl",kernelFunc:_U},IU=Iz({opSnippet:"return 1.0 / x;"}),TU={kernelName:Pr,backendName:"webgl",kernelFunc:IU},NU=Iz({opSnippet:$M+"\n return (x < 0.0) ? 0.0 : x;\n",packedOpSnippet:"\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"}),RU={kernelName:Ur,backendName:"webgl",kernelFunc:NU},OU=Iz({opSnippet:$M+"\n return (x < 0.0) ? 0.0 : min(6.0, x);\n",packedOpSnippet:"\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"}),DU={kernelName:Hr,backendName:"webgl",kernelFunc:OU};class MU{constructor(e,t,n,s,r){this.variableNames=["A"],this.outputShape=[];const[i,a,o,l]=e;this.outputShape=[i,t,n,l];const u=[s&&t>1?a-1:a,s&&n>1?o-1:o],c=[s&&t>1?t-1:t,s&&n>1?n-1:n];let h;h=r?"(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":"vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${u[0]/c[0]},\n ${u[1]/c[1]});\n const vec2 inputShapeRC = vec2(${a}.0, ${o}.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 = ${h};\n\n // Compute the four integer indices.\n ivec2 sourceFloorRC = ivec2(max(sourceFracIndexRC, vec2(0.0)));\n ivec2 sourceCeilRC = ivec2(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d);\n float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d);\n float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d);\n float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d);\n\n vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\n\n float top = topLeft + (topRight - topLeft) * fracRC.y;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\n float newValue = top + (bottom - top) * fracRC.x;\n\n setOutput(newValue);\n }\n `}}class zU{constructor(e,t,n,s,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];const[i,a,o,l]=e;this.outputShape=[i,t,n,l];const u=[s&&t>1?a-1:a,s&&n>1?o-1:o],c=[s&&t>1?t-1:t,s&&n>1?n-1:n];let h;h=r?"(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":"vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=`\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${u[0]/c[0]},\n ${u[1]/c[1]},\n ${u[1]/c[1]});\n const vec3 inputShapeRC = vec3(${a}.0, ${o}.0,\n ${o}.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 = ${h};\n\n // Compute the four integer indices.\n ivec3 sourceFloorRC = ivec3(max(sourceFracIndexRC, vec3(0.0)));\n ivec3 sourceCeilRC = ivec3(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < ${l-1};\n bool hasNextRow = coords.z < ${n-1};\n\n // In parallel, construct four corners for all four components in\n // packed 2x2 cell.\n vec4 topLeft = vec4(\n getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 bottomLeft = vec4(\n getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 topRight = vec4(\n getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec4 bottomRight = vec4(\n getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC);\n\n vec4 top = mix(topLeft, topRight, fracRC.yyzz);\n vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz);\n vec4 newValue = mix(top, bottom, fracRC.x);\n\n setOutput(newValue);\n }\n `}}const FU={kernelName:Gr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{images:r}=t,{alignCorners:i,halfPixelCenters:a,size:o}=s,[l,u]=o,c=Sn().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new zU(r.shape,l,u,i,a):new MU(r.shape,l,u,i,a);return n.runWebGLProgram(c,[r],"float32")}};class BU{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;const[,s,r]=t,[,i,a]=e,o=[n&&i>1?s-1:s,n&&a>1?r-1:r],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],u=o[0]/l[0],c=o[1]/l[1],h=1/u,d=1/c,p=2*Math.ceil(h)+2,f=2*Math.ceil(d)+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(${u});\n const float widthScale = float(${c});\n\n const float invHeightScale = float(${h});\n const float invWidthScale = float(${d});\n\n const int winHeight = int(${p});\n const int winWidth = int(${f});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(startRLerp - float(winHeight / 2));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(startCLerp - float(winWidth / 2));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${i}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${a}) {\n continue;\n }\n\n float dxR = float(dyR) * heightScale;\n int topDxRIndex = int(floor(dxR));\n int bottomDxRIndex = int(min(ceil(dxR), ${s-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), ${r-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 `}}const LU={kernelName:qr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{images:r,dy:i}=t,{alignCorners:a}=s,o=new BU(i.shape,r.shape,a);return n.runWebGLProgram(o,[i],i.dtype)}};class PU{constructor(e,t,n,s,r){this.variableNames=["A"],this.outputShape=[];const[i,a,o,l]=e;this.outputShape=[i,t,n,l];const u=[s&&t>1?a-1:a,s&&n>1?o-1:o],c=[s&&t>1?t-1:t,s&&n>1?n-1:n],h=s?"0.5":"0.0";let d;d=r?"max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":"vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${u[0]/c[0]},\n ${u[1]/c[1]});\n const vec2 inputShapeRC = vec2(${a}.0, ${o}.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 = ${d};\n\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestRC = ivec2(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${h})));\n float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\n\n setOutput(newValue);\n }\n `}}class UU{constructor(e,t,n,s,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];const[i,a,o,l]=e;this.outputShape=[i,t,n,l];const u=[s&&t>1?a-1:a,s&&n>1?o-1:o],c=[s&&t>1?t-1:t,s&&n>1?n-1:n],h=s?"0.5":"0.0";let d;d=r?"max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":"vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=`\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${u[0]/c[0]},\n ${u[1]/c[1]},\n ${u[1]/c[1]});\n const vec3 inputShapeRC = vec3(${a}.0, ${o}.0,\n ${o}.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 = ${d};\n\n // Compute the coordinators of nearest neighbor point.\n ivec3 sourceNearestRC = ivec3(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${h})));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < ${l-1};\n bool hasNextRow = coords.z < ${n-1};\n\n vec4 newValue = vec4(\n getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d),\n hasNextCol ? getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d + 1) : 0.0);\n\n setOutput(newValue);\n }\n `}}const VU={kernelName:Wr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{images:r}=t,{alignCorners:i,halfPixelCenters:a,size:o}=s,[l,u]=o,c=Sn().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new UU(r.shape,l,u,i,a):new PU(r.shape,l,u,i,a);return n.runWebGLProgram(c,[r],r.dtype)}};class WU{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;const[,s,r]=t,[,i,a]=e,o=[n&&i>1?s-1:s,n&&a>1?r-1:r],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],u=o[0]/l[0],c=o[1]/l[1],h=1/u,d=1/c,p=2*Math.ceil(h)+2,f=2*Math.ceil(d)+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(${u});\n const float widthScale = float(${c});\n\n const float invHeightScale = float(${h});\n const float invWidthScale = float(${d});\n\n const int winHeight = int(${p});\n const int winWidth = int(${f});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(floor(startRLerp - float(winHeight / 2)));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(floor(startCLerp - float(winWidth / 2)));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${i}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${a}) {\n continue;\n }\n\n float sourceFracRow =\n float(${o[0]}) *\n (float(dyR) / float(${l[0]}));\n\n float sourceFracCol =\n float(${o[1]}) *\n (float(dyC) / float(${l[1]}));\n\n int sourceNearestRow = int(min(\n float(int(${s}) - 1),\n ${n} ? float(round(sourceFracRow)) :\n float(floor(sourceFracRow))));\n\n int sourceNearestCol = int(min(\n float(int(${r}) - 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 `}}const jU={kernelName:jr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{images:r,dy:i}=t,{alignCorners:a}=s,o=new WU(i.shape,r.shape,a);return n.runWebGLProgram(o,[i],i.dtype)}};class GU{constructor(e,t){this.variableNames=["x"];const 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)return void(this.userCode=`\n void main() {\n int coord = getOutputCoords();\n setOutput(getX(${e[0]} - coord - 1));\n }\n `);const s=e.map(((n,s)=>(n=>-1!==t.indexOf(n)&&1!==e[n]?`${e[n]} - coords[${n}] - 1`:`coords[${n}]`)(s))).join(","),r=bD(n);this.userCode=`\n void main() {\n ${r} coords = getOutputCoords();\n setOutput(getX(${s}));\n }\n `}}class qU{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;const n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;const s=UM("rc",n),r=`${s[n-1]} + 1 < ${this.outputShape[n-1]}`,i=`${s[n-2]} + 1 < ${this.outputShape[n-2]}`,a=bD(n);function o(n){const s=e.map(((s,r)=>function(n,s){return-1!==t.indexOf(n)&&1!==e[n]?`${e[n]} - ${s[n]} - 1`:`${s[n]}`}(r,n)));return`getChannel(getX(${s.join(",")}), vec2(${s.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(${r}){\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 ${a} rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = ${function(e){return o(e)}(s.slice())};\n if(${r}){\n result.g = ${function(e){return e[n-1]="("+e[n-1]+" + 1)",o(e)}(s.slice())};\n }\n if(${i}) {\n result.b = ${function(e){return e[n-2]="("+e[n-2]+" + 1)",o(e)}(s.slice())};\n if(${r}) {\n result.a = ${function(e){return e[n-1]="("+e[n-1]+" + 1)",e[n-2]="("+e[n-2]+" + 1)",o(e)}(s.slice())};\n }\n }\n setOutput(result);\n }\n `}}const HU={kernelName:Kr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{dims:i}=s,a=r.shape.length,o=en(i,r.shape);if(0===a)return yz({inputs:{x:r},backend:n});const l=Sn().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new qU(r.shape,o):new GU(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}};class KU{constructor(e,t){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];const n=e[1],s=e[2];this.outputShape=e;let r="";r="number"==typeof t?`float outputValue = ${t.toFixed(2)};`:`\n vec3 fill = vec3(${t.join(",")});\n float outputValue = fill[coords[3]];`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n int y = coords[1];\n float coordXFloat = (float(x) - params[0]) * params[3] -\n (float(y) - params[1]) * params[2];\n float coordYFloat = (float(x) - params[0]) * params[2] +\n (float(y) - params[1]) * params[3];\n int coordX = int(round(coordXFloat + params[0]));\n int coordY = int(round(coordYFloat + params[1]));\n ${r}\n if(coordX >= 0 && coordX < ${s} && coordY >= 0 && coordY < ${n}) {\n outputValue = getImage(coords[0], coordY, coordX, coords[3]);\n }\n setOutput(outputValue);\n }\n `}}const $U={kernelName:Bi,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{image:s}=e,{radians:r,fillValue:i,center:a}=t,o=n,l=new KU(s.shape,i),[u,c]=zm(a,s.shape[1],s.shape[2]),h=[[u,c,Math.sin(r),Math.cos(r)]];return o.runWebGLProgram(l,[s],s.dtype,h)}},XU=Iz({opSnippet:"\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"}),ZU={kernelName:$r,backendName:"webgl",kernelFunc:XU},YU=Iz({opSnippet:"return inversesqrt(x);",cpuKernelImpl:vM}),QU={kernelName:Xr,backendName:"webgl",kernelFunc:YU};class JU{constructor(e,t,n,s,r,i,a=!0,o=!1){this.variableNames=["updates","indices","defaultValue"],this.outputShape=i;const l=bD(r.length),u=bD(i.length);let c="";1===n?c="i":2===n&&(c="i, j");const h=`getIndices(${c})`;let d="";1===s?d="i":2===s&&(d="i, coords[1]");const p=`getUpdates(${d})`;let f="";o&&(f="coords[0], coords[1]");const m=`getDefaultValue(${f})`,g=t>1?"strides[j]":"strides";this.userCode=`\n ${l} strides = ${l}(${r});\n\n void main() {\n ${u} 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(${h});\n flattenedIndex += index * ${g};\n }\n if (flattenedIndex == coords[0]) {\n sum += ${p};\n found = true;\n }\n }\n setOutput(mix(${m}, sum, float(found)));\n }\n `}}class eV{constructor(e,t,n,s,r,i,a=!0,o=!1){this.variableNames=["updates","indices","defaultValue"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=i;const l=bD(r.length),u=bD(i.length);let c="";1===n?c="i":2===n&&(c="i, j");const h=`getIndices(${c})`;let d="";1===s?d="i":2===s&&(d="i, coords[1]");const p=`getUpdates(${d})`;let f="";o&&(f="coords[0], coords[1]");const m=`getDefaultValue(${f})`,g=t>1?"strides[j]":"strides",y=t>1?"strides[j + 1]":"strides";this.userCode=`\n ${l} strides = ${l}(${r});\n\n void main() {\n ${u} coords = getOutputCoords();\n vec4 sum = vec4(0.);\n vec4 found = vec4(0.);\n for (int i = 0; i < ${e}; i+=2) {\n ivec2 flattenedIndex = ivec2(0);\n for (int j = 0; j < ${t}; j+=2) {\n ivec4 index = round(${h});\n flattenedIndex += index.xz * ${g};\n if (j + 1 < ${t}) {\n flattenedIndex += index.yw * ${y};\n }\n }\n if (flattenedIndex[0] == coords[0] || flattenedIndex[1] == coords[0] ||\n flattenedIndex[0] == coords[0] + 1 || flattenedIndex[1] == coords[0] + 1) {\n vec4 updVals = ${p};\n if (flattenedIndex[0] == coords[0]) {\n sum.xy += updVals.xy;\n found.xy = vec2(1.);\n } else if (flattenedIndex[0] == coords[0] + 1) {\n sum.zw += updVals.xy;\n found.zw = vec2(1.);\n }\n if (flattenedIndex[1] == coords[0]) {\n sum.xy += updVals.zw;\n found.xy = vec2(1.);\n } else if (flattenedIndex[1] == coords[0] + 1) {\n sum.zw += updVals.zw;\n found.zw = vec2(1.);\n }\n }\n }\n setOutput(mix(${m}, sum, found));\n }\n `}}const tV={kernelName:Zr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{indices:r,updates:i}=t,{shape:a}=s,{sliceRank:o,numUpdates:l,sliceSize:u,strides:c,outputSize:h}=Vp(0,r,a),d=[h/u,u];if(0===h)return n.makeTensorInfo(a,r.dtype);const p=Bz({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),f=Bz({inputs:{x:i},backend:n,attrs:{shape:[l,u]}}),m=n.makeTensorInfo([],"float32",new Float32Array([0]));let g;g=Sn().getBool("WEBGL_PACK")?new eV(l,o,p.shape.length,f.shape.length,c,d):new JU(l,o,p.shape.length,f.shape.length,c,d);const y=n.runWebGLProgram(g,[f,p,m],f.dtype),b=Bz({inputs:{x:y},backend:n,attrs:{shape:a}});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(m),b}};class nV{constructor(e,t,n,s){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[e,n];const r=`for (int i = 0; i < ${Math.ceil(Math.log2(t+1))}; ++i) { if (left >= right) break;`,i=2===Sn().getNumber("WEBGL_VERSION")?"while (left < right) {":r,a="left"===s?"<":"<=";this.userCode=`\n int findBound(int batch, float value) {\n int left = 0;\n int right = numInputs;\n int mid;\n ${i}\n mid = (left + right) / 2;\n if (getSortedSequence(batch, mid) ${a} value) {\n left = mid + 1;\n } else {\n right = mid;\n }\n }\n return right;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int valueIndex = coords[1];\n\n float value = getValues(batch, valueIndex);\n\n setOutput(float(findBound(batch, value)));\n }\n `}}const sV={kernelName:Qr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{sortedSequence:r,values:i}=t,{side:a}=s,o=new nV(r.shape[0],r.shape[1],i.shape[1],a),l=[[r.shape[1]]];return n.runWebGLProgram(o,[r,i],"int32",l)}};class rV{constructor(e,t,n){let s,r;if(this.variableNames=["c","a","b"],this.outputShape=t,n>4)throw Error(`Where for rank ${n} is not yet supported`);if(1===n)r="resRC",s="resRC";else{const n=["resRC.x","resRC.y","resRC.z","resRC.w"],i=[],a=[];for(let s=0;s= 1.0) {\n setOutput(getA(${r}));\n } else {\n setOutput(getB(${r}));\n }\n }\n `}}const iV={kernelName:Jr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{condition:s,t:r,e:i}=t,a=new rV(s.shape.length,r.shape,r.shape.length);return n.runWebGLProgram(a,[s,r,i],ja(r.dtype,i.dtype))}},aV=Iz({opSnippet:`\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n // see: https://arxiv.org/abs/1706.02515\n float scaleAlpha = ${Wm};\n float scale = ${jm};\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n`}),oV={kernelName:ei,backendName:"webgl",kernelFunc:aV},lV=Iz({opSnippet:Ez+"\n return 1.0 / (1.0 + exp(-1.0 * x));\n",packedOpSnippet:"\n vec4 result = 1.0 / (1.0 + exp(-1.0 * x));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n",cpuKernelImpl:AM}),uV={kernelName:ii,backendName:"webgl",kernelFunc:lV},cV=Iz({opSnippet:"\n if (isnan(x)) { return 0.0; }\n return sign(x);\n"}),hV={kernelName:ri,backendName:"webgl",kernelFunc:cV},dV=Iz({opSnippet:Ez+"\n return sin(x);\n",packedOpSnippet:`\n vec4 result = sin(x);\n bvec4 isNaN = isnan(x);\n ${mz}\n return result;\n`}),pV={kernelName:ni,backendName:"webgl",kernelFunc:dV},fV=Iz({opSnippet:"\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n"}),mV={kernelName:si,backendName:"webgl",kernelFunc:fV},gV=Iz({opSnippet:"\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"}),yV={kernelName:ai,backendName:"webgl",kernelFunc:gV},bV={kernelName:ui,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{blockShape:i,paddings:a}=s;Gt(r.shape.length<=4,(()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet"));const o=i.reduce(((e,t)=>e*t)),l=[[0,0]];l.push(...a);for(let e=1+i.length;en.disposeIntermediateTensorInfo(e))),g}};const wV={kernelName:di,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{indices:s,values:r,denseShape:i,defaultValue:a}=t;if(1!==i.shape.length)throw new Error(`Dense shape must be a vector, saw:\n ${i.shape}`);if(2!==s.shape.length)throw new Error(`Indices must be a matrix, saw:\n ${s.shape}`);if(1!==r.shape.length)throw new Error(`Values must be a vector, saw:\n ${r.shape}`);if(0!==a.shape.length)throw new Error(`Default value must be a scalar, saw:\n ${a.shape}`);const o=n.readSync(s.dataId),l=n.readSync(r.dataId),u=n.readSync(i.dataId),c=n.readSync(a.dataId)[0],[h,d,p,f,m]=SM(o,s.shape,s.dtype,l,r.dtype,u,c);return[n.makeTensorInfo(d,s.dtype,h),n.makeTensorInfo([d[0]],r.dtype,p),n.makeTensorInfo([f.length],"bool",new Uint8Array(f.map((e=>Number(e))))),n.makeTensorInfo([m.length],s.dtype,new Int32Array(m))]}};const vV={kernelName:pi,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{inputIndices:s,inputShape:r,newShape:i}=t;if(2!==s.shape.length)throw new Error(`Input indices should be a matrix but received shape ${s.shape}`);if(1!==r.shape.length)throw new Error(`Input shape should be a vector but received shape ${r.shape}`);if(1!==i.shape.length)throw new Error(`Target shape should be a vector but received shape ${i.shape}`);const a=Array.from(n.readSync(r.dataId)),o=n.readSync(s.dataId),l=Array.from(n.readSync(i.dataId)),[u,c,h]=_M(o,s.shape,s.dtype,a,l);return[n.makeTensorInfo(c,s.dtype,u),n.makeTensorInfo([h.length],i.dtype,new Int32Array(h))]}};const xV={kernelName:fi,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{data:s,indices:r,segmentIds:i}=t;if(s.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(1!==r.shape.length)throw new Error(`Indices should be a vector but received shape\n ${r.shape}`);if(1!==i.shape.length)throw new Error(`Segment ids should be a vector but received shape\n ${i.shape}`);const a=n.readSync(s.dataId),o=n.readSync(r.dataId),l=n.readSync(i.dataId),[u,c]=EM(a,s.shape,s.dtype,o,l,!0);return n.makeTensorInfo(c,s.dtype,u)}};const AV={kernelName:mi,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{data:s,indices:r,segmentIds:i}=t;if(s.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(1!==r.shape.length)throw new Error(`Indices should be a vector but received shape\n ${r.shape}`);if(1!==i.shape.length)throw new Error(`Segment ids should be a vector but received shape\n ${i.shape}`);const a=n.readSync(s.dataId),o=n.readSync(r.dataId),l=n.readSync(i.dataId),[u,c]=EM(a,s.shape,s.dtype,o,l);return n.makeTensorInfo(c,s.dtype,u)}};const CV={kernelName:gi,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{sparseIndices:r,sparseValues:i,defaultValue:a}=t,{outputShape:o}=s,{sliceRank:l,numUpdates:u,sliceSize:c,strides:h,outputSize:d}=Vp(0,r,o),p=!1;if("string"===i.dtype){const e=n.bufferSync(r),t=n.bufferSync(i),s=ga(n.readSync(a.dataId)[0]),f=xM(e,t,o,d,c,u,l,h,s,p);return n.makeTensorInfo(o,f.dtype,f.values)}const f=new JU(u,l,r.shape.length,i.shape.length,h,[d,1],p),m=n.runWebGLProgram(f,[i,r,a],i.dtype),g=Bz({inputs:{x:m},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(m),g}};const kV={kernelName:ci,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{numOrSizeSplits:i,axis:a}=s,o=en(a,r.shape)[0],l=fg(r,i,o),u=r.shape.length,c=new Array(u).fill(0),h=r.shape.slice();return l.map((e=>{const t=[...h];t[o]=e;const s=GF({inputs:{x:r},backend:n,attrs:{begin:c,size:t}});return c[o]+=e,s}))}},SV="return sqrt(x);",_V=Iz({opSnippet:SV,packedOpSnippet:SV,cpuKernelImpl:IM}),EV={kernelName:oi,backendName:"webgl",kernelFunc:_V},IV={kernelName:bi,backendName:"webgl",kernelFunc:Iz({opSnippet:"return x * x;"})},TV="return (a - b) * (a - b);",NV=Tz({opSnippet:TV,packedOpSnippet:TV}),RV={kernelName:yi,backendName:"webgl",kernelFunc:NV};const OV={kernelName:wi,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t;if("string"!==r.dtype)throw new Error("Input must be of datatype string");const i=Ng(n.readSync(r.dataId)),a=TM(i,"string",s);return n.makeTensorInfo(r.shape,"string",a)}};const DV={kernelName:zi,backendName:"webgl",kernelFunc:function({inputs:e,attrs:t,backend:n}){const{x:s}=e,r=$M+`\n return x > 0.0 ? 1.0 : float(${t.alpha});\n `,i=new KM(s.shape,r);return n.runWebGLProgram(i,[s],s.dtype)}};class MV{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;const s=n.length,r=bD(n.length),i=bD(n.length);let a="";if(1===s)a="coords * strides + begin";else{let e=0;a=n.map(((t,s)=>(e++,1===n.length?`coords * strides[${s}] + begin[${s}]`:`coords[${e-1}] * strides[${s}] + begin[${s}]`))).join(",")}this.userCode=`\n ${r} begin = ${r}(${e});\n ${r} strides = ${r}(${t});\n\n void main() {\n ${i} coords = getOutputCoords();\n setOutput(getX(${a}));\n }\n `}}const zV={kernelName:vi,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{begin:i,end:a,strides:o,beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:h,shrinkAxisMask:d}=s,{finalShapeSparse:p,finalShape:f,isIdentity:m,sliceDim0:g,isSimpleSlice:y,begin:b,end:w,strides:v}=ec(r.shape,i,a,o,l,u,c,h,d);let x;if(m)x=Bz({inputs:{x:r},backend:n,attrs:{shape:f}});else if(g||y){Gt(r.shape.length>=1,(()=>`Input must have rank at least 1, got: ${r.shape.length}`));const e=Vu(b,w,v),t=GF({inputs:{x:r},backend:n,attrs:{begin:b,size:e}});x=Bz({inputs:{x:t},backend:n,attrs:{shape:f}}),n.disposeIntermediateTensorInfo(t)}else{if(n.shouldExecuteOnCPU([r])){const e=n.readSync(r.dataId),t=Tl(r.shape,r.dtype,e),s=NM(p,t,v,b);x=n.makeTensorInfo(f,r.dtype,s.values)}else{const e=new MV(b,v,p);x=n.runWebGLProgram(e,[r],r.dtype)}}const A=Bz({inputs:{x},backend:n,attrs:{shape:f}});return n.disposeIntermediateTensorInfo(x),A}};const FV={kernelName:xi,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{separator:r,nGramWidths:i,leftPad:a,rightPad:o,padWidth:l,preserveShortSequences:u}=s,{data:c,dataSplits:h}=t,d=n.readSync(c.dataId),p=n.readSync(h.dataId),[f,m]=RM(d,p,r,i,a,o,l,u);return[n.makeTensorInfo([f.length],"string",f),n.makeTensorInfo(h.shape,"int32",m)]}};const BV={kernelName:Ai,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{skipEmpty:r}=s,{input:i,delimiter:a}=t;if("string"!==i.dtype)throw new Error("Input must be of datatype string");if(1!==i.shape.length)throw new Error(`Input must be a vector, got shape: ${i.shape}`);if(0!==a.shape.length)throw new Error(`Delimiter must be a scalar, got shape: ${a.shape}`);const o=n.readSync(i.dataId),l=n.readSync(a.dataId)[0],[u,c,h]=OM(o,l,r),d=c.length;return[n.makeTensorInfo([d,2],"int32",u),n.makeTensorInfo([d],"string",c),n.makeTensorInfo([2],"int32",new Int32Array(h))]}};const LV={kernelName:Ci,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{numBuckets:r}=s,{input:i}=t;if("string"!==i.dtype)throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");const a=n.readSync(i.dataId),o=DM(a,r);return n.makeTensorInfo(i.shape,"int32",o)}},PV=Iz({opSnippet:"return tan(x);"}),UV={kernelName:Si,backendName:"webgl",kernelFunc:PV},VV=Iz({opSnippet:"\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n"}),WV={kernelName:_i,backendName:"webgl",kernelFunc:VV};const jV={kernelName:Yr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{tensor:r,indices:i,updates:a}=t,{}=s,{sliceRank:o,numUpdates:l,sliceSize:u,strides:c,outputSize:h}=Vp(0,i,r.shape),d=[h/u,u];if(0===h)return n.makeTensorInfo(r.shape,i.dtype);const p=Bz({inputs:{x:i},backend:n,attrs:{shape:[l,o]}}),f=Bz({inputs:{x:a},backend:n,attrs:{shape:[l,u]}}),m=Bz({inputs:{x:r},backend:n,attrs:{shape:d}}),g=new JU(l,o,p.shape.length,f.shape.length,c,d,!1,!0),y=n.runWebGLProgram(g,[f,p,m],m.dtype),b=Bz({inputs:{x:y},backend:n,attrs:{shape:r.shape}});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(y),b}};class GV{constructor(e,t){this.variableNames=["A"];const n=new Array(e.length);for(let s=0;s5)throw Error(`Tile for rank ${t} is not yet supported`);if(1===t)return`imod(resRC, ${e[0]})`;const n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],s=[];for(let t=0;t5){const e=n.readSync(r.dataId),t="string"===r.dtype?e.map((e=>ga(e))):e,s=Tl(r.shape,r.dtype,t),a=zM(s,i);return n.makeTensorInfo(a.shape,a.dtype,a.values)}const a=new GV(r.shape,i);return n.runWebGLProgram(a,[r],r.dtype)}const HV={kernelName:Ei,backendName:"webgl",kernelFunc:qV};class KV{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"negativeInf",type:"float"},{name:"dir",type:"int"},{name:"inc",type:"int"}],this.outputShape=e,this.userCode="\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int elemIdx = coords[1];\n\n // We compare elements pair-wise within a group of size 2 * inc.\n // The comparing rule for each group alternates between ascending\n // and descending. Within each group, we compare each pair at\n // positions i and i+inc. To decide whether an element at position i\n // is x0 or x1, we mod it by 2 * inc, if the result is smaller than\n // inc, it is in the first half of the group, we denote it as x0,\n // otherwise we denote it as x1.\n // For example, as shown in the Bitonic top K paper referenced above,\n // Figure5(a) shows that element[1] is in the\n // second half of the group when group size is 2, but it is in the\n // first half of the group when group size is 4.\n\n bool isFirstInPair = imod(elemIdx, 2 * inc) < inc;\n int i = isFirstInPair ? elemIdx : elemIdx - inc;\n\n int i0 = firstPass == 1 ? i : int(getIndices(batch, i));\n int i1 = firstPass == 1 ? i + inc : int(getIndices(batch, i + inc));\n float x0 = i0 < n ? getX(batch, i0) : negativeInf;\n float x1 = i1 < n ? getX(batch, i1) : negativeInf;\n\n // Denotes which direction indices are in (ascending or descending).\n bool reverse = imod(elemIdx, 2 * dir) >= dir;\n bool isGreater = x0 > x1 || (x0 == x1 && i1 > i0);\n if (reverse == isGreater) { // Elements in opposite order of direction\n int iTemp = i0;\n i0 = i1;\n i1 = iTemp;\n }\n if (isFirstInPair) {\n setOutput(float(i0));\n } else {\n setOutput(float(i1));\n }\n }\n "}}class $V{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=e,this.userCode="\n void main() {\n // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ...\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int elemIdx = coords[1];\n\n // The output size is half of the previous size.\n // If the previous sequence is | | | | _ _ _ _ | | | | _ _ _ _ (k=4),\n // we only need to output the indices at positions |, the indices at\n // positions _ can be thrown away, see Figure5(b) After Phase 2\n // (Merge phase) in the Bitonic Top K paper referenced above.\n // For example, the paper shows we only need to output the orange bars.\n // The output sequence should look like this | | | | | | | |.\n // Because the sequence is halved, to map the output index back\n // to the previous sequence to find the corresponding value,\n // we need to double the index. When we double the index,\n // we basically interpolate a position, so 2i looks like\n // | _ | _ | _ | _ | _ | _ | _. We move the | to the first k position\n // of each 2k positions by - elemIdx % k. E.g. for output at\n // index 4,5,6,7, we want to get the corresponding element at\n // original index 8,9,10,11, for output at index 8,9,10,11,\n // we want to get the corresponding element at original index\n // 16,17,18,19, so on and so forth.\n\n int i = elemIdx < k ? elemIdx : (elemIdx * 2 - imod(elemIdx, k));\n int i0 = firstPass == 1 ? i : int(getIndices(batch, i));\n int i1 = firstPass == 1 ? i + k : int(getIndices(batch, i + k));\n\n float x0 = getX(batch, i0);\n float x1 = i1 < n ? getX(batch, i1) : x0;\n\n setOutput(x0 >= x1 ? float(i0) : float(i1));\n }\n "}}function XV(e,t){null!==t&&e.disposeIntermediateTensorInfo(t)}function ZV(e){let t=1;for(;tl){const e=n.readSync(r.dataId),[t,s]=FM(e,u,r.dtype,i,a);return[n.makeTensorInfo(t.shape,t.dtype,t.values),n.makeTensorInfo(s.shape,s.dtype,s.values)]}if(0===i)return u[u.length-1]=0,[n.makeTensorInfo(u,r.dtype,[]),n.makeTensorInfo(u,"int32",[])];if(1===c)return[r,TL({attrs:{shape:u,dtype:"int32",value:0},backend:n})];const h=n.texData.get(r.dataId),d=null!==h&&h.isPacked,p=d?n.unpackTensor(r):r,f=Kt(u)/c,m=Bz({inputs:{x:p},attrs:{shape:[f,c]},backend:n});d&&XV(n,p);const g=ZV(i),y=ZV(c);let b=null;const w=()=>null===b?[m,m]:[m,b],v=(e,t,s)=>{const r=w(),i=new KV(s),a=[[c],[null===b?1:0],[Number.NEGATIVE_INFINITY],[e],[t]],o=b;b=n.runWebGLProgram(i,r,"int32",a),XV(n,o)};for(let e=1;e=1;n/=2)v(t,n,[f,y])}for(let e=y;e>g;e/=2){const t=w(),s=new $V([f,e/2]),r=[[c],[null===b?1:0],[g]],i=b;b=n.runWebGLProgram(s,t,"int32",r),XV(n,i);const a=g/2,o=2*a;for(let e=a;e>=1;e/=2)v(o,e,b.shape)}let x=b;b=GF({inputs:{x:b},backend:n,attrs:{begin:0,size:[f,i]}}),XV(n,x);let A=$L({inputs:{x:m,indices:b},backend:n,attrs:{axis:1,batchDims:1}});XV(n,m);const C=u.slice(0,-1);C.push(i),x=b,b=Bz({inputs:{x:b},attrs:{shape:C},backend:n}),XV(n,x);const k=A;return A=Bz({inputs:{x:A},attrs:{shape:C},backend:n}),XV(n,k),[A,b]}};class QV{constructor(e,t,n,s,r,i){this.variableNames=["Image","Transforms"],this.outputShape=i;const a="nearest"===n?1:2;let o;switch(s){case"constant":default:o=1;break;case"reflect":o=2;break;case"wrap":o=3;break;case"nearest":o=4}this.userCode=`\n float mapCoord(float outCoord, float len) {\n float inCoord = outCoord;\n if(${o} == 2) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz2 = 2.0 * len;\n if (inCoord < sz2) {\n inCoord = sz2 * float(int(float(-inCoord / sz2))) +\n inCoord;\n }\n inCoord = inCoord < -len ? inCoord + sz2 : -inCoord - 1.0;\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz2 = 2.0 * len;\n inCoord -= sz2 * float(int(float(inCoord / sz2)));\n if (inCoord >= len) {\n inCoord = sz2 - inCoord - 1.0;\n }\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (${o} == 3) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz = len - 1.0;\n inCoord += len * (float(int(float(-inCoord / sz))) + 1.0);\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz = len - 1.0;\n inCoord -= len * float(int(float(inCoord / sz)));\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (${o} == 4) {\n return clamp(outCoord, 0.0, len - 1.0);\n } else {\n return outCoord;\n }\n }\n\n float readWithFillValue(int batch, int coordY, int coordX,\n int channel) {\n float outputValue;\n if (0 <= coordY && coordY < ${e} && 0 <= coordX && coordX < ${t}) {\n outputValue = getImage(batch, coordY, coordX, channel);\n } else {\n outputValue = float(${r});\n }\n return outputValue;\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n float outputValue;\n int batch = coords[0];\n int x = coords[2];\n int y = coords[1];\n int channel = coords[3];\n float xf = float(x);\n float yf = float(y);\n float a1 = getTransforms(batch, 0);\n float a2 = getTransforms(batch, 1);\n float a3 = getTransforms(batch, 2);\n float b1 = getTransforms(batch, 3);\n float b2 = getTransforms(batch, 4);\n float b3 = getTransforms(batch, 5);\n float c1 = getTransforms(batch, 6);\n float c2 = getTransforms(batch, 7);\n float projection = c1 * xf + c2 * yf + 1.0;\n if (projection == 0.0) {\n outputValue = float(${r});\n } else {\n float inX = (a1 * xf + a2 * yf + a3) / projection;\n float inY = (b1 * xf + b2 * yf + b3) / projection;\n float mapX = mapCoord(inX, float(${t}));\n float mapY = mapCoord(inY, float(${e}));\n\n if (${a} == 1) {\n int coordY = int(round(mapY));\n int coordX = int(round(mapX));\n outputValue = readWithFillValue(batch, coordY, coordX,\n channel);\n } else {\n float yFloor = floor(mapY);\n float xFloor = floor(mapX);\n float yCeil = yFloor + 1.0;\n float xCeil = xFloor + 1.0;\n float valueYFloor = (xCeil - mapX) *\n readWithFillValue(batch, int(yFloor), int(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, int(yFloor), int(xCeil), channel);\n float valueYCeil = (xCeil - mapX) *\n readWithFillValue(batch, int(yCeil), int(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, int(yCeil), int(xCeil), channel);\n outputValue = (yCeil - mapY) * valueYFloor +\n (mapY - yFloor) * valueYCeil;\n }\n }\n setOutput(outputValue);\n }\n `}}const JV={kernelName:Ti,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{image:r,transforms:i}=t,{interpolation:a,fillMode:o,fillValue:l,outputShape:u}=s,[c,h,d,p]=r.shape,[f,m]=null!=u?u:[h,d],g=new QV(h,d,a,o,l,[c,f,m,p]);return n.runWebGLProgram(g,[r,i],"float32")}};const eW={kernelName:Ri,backendName:"webgl",kernelFunc:function(e){const{inputs:t,attrs:n,backend:s}=e,{axis:r}=n,{x:i}=t;JO(i,"unique");const a=s.readSync(i.dataId),{outputValues:o,outputShape:l,indices:u}=LM(a,r,i.shape,i.dtype);return[s.makeTensorInfo(l,i.dtype,o),s.makeTensorInfo([u.length],"int32",u)]}};const tW={kernelName:Oi,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{value:r}=t;let{axis:i}=s;i<0&&(i+=r.shape.length);const a=r,o=a.shape.length,l=r.shape[i],u=new Array(o-1);let c=0;for(let e=0;en.disposeIntermediateTensorInfo(e))),f}};class nW{constructor(e,t){this.variableNames=["x","segmentIds"];const n=e.windowSize,s=e.batchSize,r=e.inSize,i=e.numSegments,a=i*Math.ceil(r/n);this.outputShape=[s,a];const o=4*Math.floor(n/4),l=n%4,u="\n sumValue += dot(values, segFilter);\n ";let c="";r%n>0&&(c=`\n if (inIdx < 0 || inIdx >= ${r}) {\n return initializationValue;\n }\n `);let h="";r%n>0&&(h=`\n if (inIdx < 0 || inIdx >= ${r}) {\n return -1.0;\n }\n `),this.userCode=`\n const float initializationValue = 0.0;\n\n float getValue(int batch, int inIdx) {\n ${c}\n return getX(batch, inIdx);\n }\n\n float getSegmentIdAtIndex(int inIdx) {\n ${h}\n return getSegmentIds(inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = int(floor(float(outIdx) / float(\n ${i})) * float(${n}));\n int currentSeg = int(mod(float(outIdx), float(${i})));\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${o}; 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 ${u}\n }\n\n int inIdx = inOffset + ${o};\n if (${1===l}) {\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 ${u}\n } else if (${2===l}) {\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 ${u}\n } else if (${3===l}) {\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 ${u}\n }\n setOutput(sumValue);\n }\n `}}const sW={kernelName:Di,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:s}=e,{x:r,segmentIds:i}=t,{numSegments:a}=s,o=r.shape.length,l=[];let u=0;const c=Ih([u],o);let h=r;null!=c&&(h=Kz({inputs:{x:r},backend:n,attrs:{perm:c}}),l.push(h),u=Nh(1,o)[0]);const d=Ig(h.shape,u,a),p=Kt([h.shape[u]]),f=Bz({inputs:{x:h},backend:n,attrs:{shape:[-1,p]}});l.push(f);const m=Ga(r.dtype),g=(e,t,s,r,i)=>{const a=e.shape[0],o=e.shape[1],u=Eg(o,i),c=new nW({windowSize:u,inSize:o,batchSize:a,numSegments:i},t),h=n.compileAndRun(c,[e,s],r);if(l.push(h),h.shape[1]===i)return h;const d=_U({backend:n,attrs:{start:0,stop:i,step:1,dtype:"float32"}}),p=qV({inputs:{x:d},backend:n,attrs:{reps:[o/u]}});l.push(d),l.push(p);return g(h,t,p,r,i)},y=Bz({inputs:{x:g(f,"unsortedSegmentSum",i,m,a)},backend:n,attrs:{shape:d}});let b=y;if(null!=c){l.push(y);const e=Th(c);b=Kz({inputs:{x:b},backend:n,attrs:{perm:e}})}return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),b}},rW=[Yz,Jz,tF,sF,aF,uF,cF,hF,yF,bF,vF,AF,kF,_F,IF,RF,OF,zF,FF,BF,UF,HF,KF,$F,XF,tB,rB,oB,vz,cB,bB,_B,RB,DB,MB,zB,FB,LB,UB,WB,$B,XB,ZB,QB,tL,rL,iL,oL,uL,cL,dL,pL,mL,yL,wL,xL,kL,EL,NL,OL,zL,BL,UL,jL,GL,HL,XL,YL,JL,bz,eP,mB,nP,rP,aP,Cz,lP,cP,hP,pP,mP,yP,wP,xP,kP,_P,IP,NP,RP,OP,zP,FP,BP,LP,PP,VP,GP,HP,tU,Fz,sU,iU,oU,uU,YF,hU,fU,mU,wU,xU,_z,AU,CU,kU,SU,EU,JF,XP,TU,RU,DU,Lz,FU,LU,VU,jU,HU,$U,ZU,QU,tV,sV,iV,oV,uV,hV,pV,mV,qF,eU,yV,bV,wV,vV,xV,AV,CV,kV,EV,IV,RV,OV,DV,zV,FV,BV,LV,QP,Hz,UV,WV,jV,HV,YV,JV,$z,eW,tW,sW,pU];for(const e of rW)$i(e);__webpack_require__(9464);const iW={moveTickSize:50,videoContainerId:"webgazerVideoContainer",videoElementId:"webgazerVideoFeed",videoElementCanvasId:"webgazerVideoCanvas",faceOverlayId:"webgazerFaceOverlay",faceFeedbackBoxId:"webgazerFaceFeedbackBox",gazeDotId:"webgazerGazeDot",videoViewerWidth:320,videoViewerHeight:240,faceFeedbackBoxRatio:.66,showVideo:!0,mirrorVideo:!0,showFaceOverlay:!0,showFaceFeedbackBox:!0,showGazeDot:!0,camConstraints:{video:{width:{min:320,ideal:640,max:1920},height:{min:240,ideal:480,max:1080},facingMode:"user"}},dataTimestep:50,showVideoPreview:!0,applyKalmanFilter:!0,saveDataAcrossSessions:!0,storingPoints:!1,videoIsOn:!1,trackEye:"both"};__webpack_require__(6003);var aW=__webpack_require__(7350),oW=__webpack_require__.n(aW),lW=__webpack_require__(8990),uW=function(){return uW=Object.assign||function(e){for(var t,n=1,s=arguments.length;n0&&r[r.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]>>0)+"_",r=0;return function e(n){if(this instanceof e)throw new TypeError("Symbol is not a constructor");return new t(s+(n||"")+"_"+r++,n)}})),r("Symbol.iterator",(function(e){if(e)return e;e=Symbol("Symbol.iterator");for(var r="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),a=0;a(t=t||0)&&(t=Math.max(t+s,0));t>2];a=t[(3&a)<<4|o>>4],o=t[(15&o)<<2|l>>6],l=t[63&l],n[i++]=u+a+o+l}switch(u=0,l=s,e.length-r){case 2:l=t[(15&(u=e[r+1]))<<2]||s;case 1:e=e[r],n[i]=t[e>>2]+t[(3&e)<<4|u>>4]+l+s}return n.join("")}function z(e){var t=e.length,n=3*t/4;n%3?n=Math.floor(n):-1!="=.".indexOf(e[t-1])&&(n=-1!="=.".indexOf(e[t-2])?n-2:n-1);var s=new Uint8Array(n),r=0;return function(e,t){function n(t){for(;s>4),64!=a&&(t(i<<4&240|a>>2),64!=o&&t(a<<6&192|o))}}(e,(function(e){s[r++]=e})),r!==n?s.subarray(0,r):s}function F(){if(!D){D={};for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),t=["+/=","+/","-_=","-_.","-_"],n=0;5>n;n++){var s=e.concat(t[n].split(""));O[n]=s;for(var r=0;re.i)throw Error("Tried to read past the end of the data "+e.g+" > "+e.i)}function $(e){var t=e.h,n=t[e.g],s=127&n;if(128>n)return e.g+=1,K(e),s;if(s|=(127&(n=t[e.g+1]))<<7,128>n)return e.g+=2,K(e),s;if(s|=(127&(n=t[e.g+2]))<<14,128>n)return e.g+=3,K(e),s;if(s|=(127&(n=t[e.g+3]))<<21,128>n)return e.g+=4,K(e),s;if(n=t[e.g+4],e.g+=5,s|=(15&n)<<28,128>n)return K(e),s;if(128<=t[e.g++]&&128<=t[e.g++]&&128<=t[e.g++]&&128<=t[e.g++]&&128<=t[e.g++])throw G();return K(e),s}q.prototype.reset=function(){this.g=this.j};var X=[];function Z(){this.g=[]}function Y(e,t){for(;127>>=7;e.g.push(t)}function Q(e){var t={},n=void 0!==t.W&&t.W;this.l={v:void 0!==t.v&&t.v},this.W=n,t=this.l,X.length?(n=X.pop(),t&&(n.v=t.v),e&&H(n,e),e=n):e=new q(e,t),this.g=e,this.j=this.g.g,this.h=this.i=-1}function J(e){var t=e.g;if(t.g==t.i)return!1;e.j=e.g.g;var n=$(e.g)>>>0;if(t=n>>>3,!(0<=(n&=7)&&5>=n))throw j(n,e.j);if(1>t)throw Error("Invalid field number: "+t+" (at position "+e.j+")");return e.i=t,e.h=n,!0}function ee(e){switch(e.h){case 0:if(0!=e.h)ee(e);else e:{for(var t=(e=e.g).g,n=t+10;t>>0,(e=e.g).g+=t,K(e));break;case 5:(e=e.g).g+=4,K(e);break;case 3:for(t=e.i;;){if(!J(e))throw Error("Unmatched start-group tag: stream EOF");if(4==e.h){if(e.i!=t)throw Error("Unmatched end-group tag");break}ee(e)}break;default:throw j(e.h,e.j)}}Z.prototype.length=function(){return this.g.length},Z.prototype.end=function(){var e=this.g;return this.g=[],e},Q.prototype.reset=function(){this.g.reset(),this.j=this.g.g,this.h=this.i=-1};var te=[];function ne(){this.i=[],this.h=0,this.g=new Z}function se(e,t){0!==t.length&&(e.i.push(t),e.h+=t.length)}var re="function"==typeof Symbol&&"symbol"==typeof Symbol()?Symbol(void 0):void 0;function ie(e,t){Object.isFrozen(e)||(re?e[re]|=t:void 0!==e.N?e.N|=t:Object.defineProperties(e,{N:{value:t,configurable:!0,writable:!0,enumerable:!1}}))}function ae(e){var t;return null==(t=re?e[re]:e.N)?0:t}function oe(e){return ie(e,1),e}function le(e){return!!Array.isArray(e)&&!!(2&ae(e))}function ue(e){if(!Array.isArray(e))throw Error("cannot mark non-array as immutable");ie(e,2)}function ce(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)&&e.constructor===Object}var he=Object.freeze(oe([]));function de(e){if(le(e.m))throw Error("Cannot mutate an immutable Message")}var pe,fe="undefined"!=typeof Symbol&&void 0!==Symbol.hasInstance;function me(e){return{value:e,configurable:!1,writable:!1,enumerable:!1}}function ge(e,t,n){return-1===t?null:t>=e.i?e.g?e.g[t]:void 0:void 0!==n&&n&&e.g&&null!=(n=e.g[t])?n:e.m[t+e.h]}function ye(e,t,n,s){s=void 0!==s&&s,de(e),tte.length&&te.push(e)}}function tt(e,t,n){for(var s=n.length,r=1==s%2,i=r?1:0;i>>0)>>31)+1,s=r>>>23&255,r&=8388607,ye(t,n,255==s?r?NaN:1/0*e:0==s?e*Math.pow(2,-149)*r:e*Math.pow(2,s-150)*(r+Math.pow(2,23))),!0}),(function(e,t,n){if(null!=(t=ge(t,n))){Y(e.g,8*n+5),e=e.g;var s=t;0===(s=(n=0>s?1:0)?-s:s)?W=0<1/s?0:2147483648:isNaN(s)?W=2147483647:34028234663852886e22>>0:11754943508222875e-54>s?(s=Math.round(s/Math.pow(2,-149)),W=(n<<31|s)>>>0):(t=Math.floor(Math.log(s)/Math.LN2),s*=Math.pow(2,-t),16777216<=(s=Math.round(8388608*s))&&++t,W=(n<<31|t+127<<23|8388607&s)>>>0),n=W,e.g.push(n>>>0&255),e.g.push(n>>>8&255),e.g.push(n>>>16&255),e.g.push(n>>>24&255)}})),it=st((function(e,t,n){if(0!==e.h)return!1;for(var s=e.g,r=128,i=0,a=e=0;4>a&&128<=r;a++)r=s.h[s.g++],K(s),i|=(127&r)<<7*a;if(128<=r&&(r=s.h[s.g++],K(s),i|=(127&r)<<28,e|=(127&r)>>4),128<=r)for(a=0;5>a&&128<=r;a++)r=s.h[s.g++],K(s),e|=(127&r)<<7*a+3;if(!(128>r))throw G();return s=i>>>0,(e=2147483648&(r=e>>>0))&&(r=~r>>>0,0==(s=1+~s>>>0)&&(r=r+1>>>0)),s=4294967296*r+(s>>>0),ye(t,n,e?-s:s),!0}),(function(e,t,n){if(null!=(t=ge(t,n))&&null!=t){Y(e.g,8*n),e=e.g;var s=t;for(n=0>s,t=(s=Math.abs(s))>>>0,s=Math.floor((s-t)/4294967296),s>>>=0,n&&(s=~s>>>0,4294967295<(t=1+(~t>>>0))&&(t=0,4294967295<++s&&(s=0))),n=W=t,t=s;0>>7|t<<25)>>>0,t>>>=7;e.g.push(n)}})),at=st((function(e,t,n){return 0===e.h&&(ye(t,n,$(e.g)),!0)}),(function(e,t,n){if(null!=(t=ge(t,n))&&null!=t)if(Y(e.g,8*n),e=e.g,0<=(n=t))Y(e,n);else{for(t=0;9>t;t++)e.g.push(127&n|128),n>>=7;e.g.push(1)}})),ot=st((function(e,t,n){if(2!==e.h)return!1;var s,r=$(e.g)>>>0,i=(e=e.g).g;if(e.g+=r,K(e),e=e.h,N)(s=I)||(s=I=new TextDecoder("utf-8",{fatal:!0})),s=s.decode(e.subarray(i,i+r));else{r=i+r;for(var a,o,l,u=[],c=null;i(a=e[i++])?u.push(a):224>a?i>=r?_():(o=e[i++],194>a||128!=(192&o)?(i--,_()):u.push((31&a)<<6|63&o)):240>a?i>=r-1?_():128!=(192&(o=e[i++]))||224===a&&160>o||237===a&&160<=o||128!=(192&(s=e[i++]))?(i--,_()):u.push((15&a)<<12|(63&o)<<6|63&s):244>=a?i>=r-2?_():128!=(192&(o=e[i++]))||o-144+(a<<28)>>30||128!=(192&(s=e[i++]))||128!=(192&(l=e[i++]))?(i--,_()):(a=(7&a)<<18|(63&o)<<12|(63&s)<<6|63&l,a-=65536,u.push(55296+(a>>10&1023),56320+(1023&a))):_(),8192<=u.length&&(c=E(c,u),u.length=0);s=E(c,u)}return ye(t,n,s),!0}),(function(e,t,n){if(null!=(t=ge(t,n))){var s=!1;if(s=void 0!==s&&s,R){if(s&&/(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])/.test(t))throw Error("Found an unpaired surrogate");t=(T||(T=new TextEncoder)).encode(t)}else{for(var r=0,i=new Uint8Array(3*t.length),a=0;ao)i[r++]=o;else{if(2048>o)i[r++]=o>>6|192;else{if(55296<=o&&57343>=o){if(56319>=o&&a=l){o=1024*(o-55296)+l-56320+65536,i[r++]=o>>18|240,i[r++]=o>>12&63|128,i[r++]=o>>6&63|128,i[r++]=63&o|128;continue}a--}if(s)throw Error("Found an unpaired surrogate");o=65533}i[r++]=o>>12|224,i[r++]=o>>6&63|128}i[r++]=63&o|128}}t=i.subarray(0,r)}Y(e.g,8*n+2),Y(e.g,t.length),se(e,e.g.end()),se(e,t)}})),lt=st((function(e,t,n,s,r){if(2!==e.h)return!1;t=xe(t,n,s),n=e.g.i,s=$(e.g)>>>0;var i=e.g.g+s,a=i-n;if(0>=a&&(e.g.i=i,r(t,e),a=i-e.g.g),a)throw Error("Message parsing ended unexpectedly. Expected to read "+s+" bytes, instead read "+(s-a)+" bytes, either the data ended unexpectedly or the message misreported its own length");return e.g.g=i,e.g.i=n,!0}),(function(e,t,n,s,r){if(null!=(t=ve(t,s,n)))for(s=0;s>>=7,a.h++;i.push(o),a.h++}}));function ut(){Ne.apply(this,arguments)}if(p(ut,Ne),fe){var ct={};Object.defineProperties(ut,(ct[Symbol.hasInstance]=me(Object[Symbol.hasInstance]),ct))}function ht(e){ut.call(this,e)}function dt(){return[1,at,2,rt,3,ot,4,ot]}function pt(e){ut.call(this,e,-1,mt)}function ft(){return[1,lt,ht,dt]}p(ht,ut),p(pt,ut),pt.prototype.addClassification=function(e,t){return xe(this,1,ht,e,t),this};var mt=[1];function gt(e){ut.call(this,e)}function yt(){return[1,rt,2,rt,3,rt,4,rt,5,rt]}function bt(e){ut.call(this,e,-1,vt)}function wt(){return[1,lt,gt,yt]}p(gt,ut),p(bt,ut);var vt=[1];function xt(e){ut.call(this,e)}function At(){return[1,rt,2,rt,3,rt,4,rt,5,rt,6,it]}p(xt,ut);var Ct=[[61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]],kt=[[263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]],St=[[276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]],_t=[[33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]],Et=[[46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]],It=[[10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]],Tt=[].concat(o(Ct),o(kt),o(St),o(_t),o(Et),o(It));function Nt(e,t,n){if(n=e.createShader(0===n?e.VERTEX_SHADER:e.FRAGMENT_SHADER),e.shaderSource(n,t),e.compileShader(n),!e.getShaderParameter(n,e.COMPILE_STATUS))throw Error("Could not compile WebGL shader.\n\n"+e.getShaderInfoLog(n));return n}function Rt(e){return ve(e,ht,1).map((function(e){return{index:Ae(e,1),ga:we(e,2),label:null!=ge(e,3)?Ce(e,3):void 0,displayName:null!=ge(e,4)?Ce(e,4):void 0}}))}function Ot(e){return{x:we(e,1),y:we(e,2),z:we(e,3),visibility:null!=ge(e,4)?we(e,4):void 0}}function Dt(e,t){this.h=e,this.g=t,this.l=0}function Mt(e,t,n){return function(e,t){var n=e.g;if(void 0===e.o){var s=Nt(n,"\n attribute vec2 aVertex;\n attribute vec2 aTex;\n varying vec2 vTex;\n void main(void) {\n gl_Position = vec4(aVertex, 0.0, 1.0);\n vTex = aTex;\n }",0),r=Nt(n,"\n precision mediump float;\n varying vec2 vTex;\n uniform sampler2D sampler0;\n void main(){\n gl_FragColor = texture2D(sampler0, vTex);\n }",1),i=n.createProgram();if(n.attachShader(i,s),n.attachShader(i,r),n.linkProgram(i),!n.getProgramParameter(i,n.LINK_STATUS))throw Error("Could not compile WebGL program.\n\n"+n.getProgramInfoLog(i));s=e.o=i,n.useProgram(s),r=n.getUniformLocation(s,"sampler0"),e.j={K:n.getAttribLocation(s,"aVertex"),J:n.getAttribLocation(s,"aTex"),ma:r},e.u=n.createBuffer(),n.bindBuffer(n.ARRAY_BUFFER,e.u),n.enableVertexAttribArray(e.j.K),n.vertexAttribPointer(e.j.K,2,n.FLOAT,!1,0,0),n.bufferData(n.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),n.STATIC_DRAW),n.bindBuffer(n.ARRAY_BUFFER,null),e.s=n.createBuffer(),n.bindBuffer(n.ARRAY_BUFFER,e.s),n.enableVertexAttribArray(e.j.J),n.vertexAttribPointer(e.j.J,2,n.FLOAT,!1,0,0),n.bufferData(n.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),n.STATIC_DRAW),n.bindBuffer(n.ARRAY_BUFFER,null),n.uniform1i(r,0)}s=e.j,n.useProgram(e.o),n.canvas.width=t.width,n.canvas.height=t.height,n.viewport(0,0,t.width,t.height),n.activeTexture(n.TEXTURE0),e.h.bindTexture2d(t.glName),n.enableVertexAttribArray(s.K),n.bindBuffer(n.ARRAY_BUFFER,e.u),n.vertexAttribPointer(s.K,2,n.FLOAT,!1,0,0),n.enableVertexAttribArray(s.J),n.bindBuffer(n.ARRAY_BUFFER,e.s),n.vertexAttribPointer(s.J,2,n.FLOAT,!1,0,0),n.bindFramebuffer(n.DRAW_FRAMEBUFFER?n.DRAW_FRAMEBUFFER:n.FRAMEBUFFER,null),n.clearColor(0,0,0,0),n.clear(n.COLOR_BUFFER_BIT),n.colorMask(!0,!0,!0,!0),n.drawArrays(n.TRIANGLE_FAN,0,4),n.disableVertexAttribArray(s.K),n.disableVertexAttribArray(s.J),n.bindBuffer(n.ARRAY_BUFFER,null),e.h.bindTexture2d(0)}(e,t),"function"==typeof e.g.canvas.transferToImageBitmap?Promise.resolve(e.g.canvas.transferToImageBitmap()):n?Promise.resolve(e.g.canvas):"function"==typeof createImageBitmap?createImageBitmap(e.g.canvas):(void 0===e.i&&(e.i=document.createElement("canvas")),new Promise((function(t){e.i.height=e.g.canvas.height,e.i.width=e.g.canvas.width,e.i.getContext("2d",{}).drawImage(e.g.canvas,0,0,e.g.canvas.width,e.g.canvas.height),t(e.i)})))}function zt(e){this.g=e}var Ft=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function Bt(e,t){return t+e}function Lt(e,t){window[e]=t}function Pt(e){if(this.g=e,this.listeners={},this.j={},this.H={},this.o={},this.u={},this.I=this.s=this.Z=!0,this.D=Promise.resolve(),this.Y="",this.C={},this.locateFile=e&&e.locateFile||Bt,"object"==typeof window)var t=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else{if("undefined"==typeof location)throw Error("solutions can only be loaded on a web page or in a web worker");t=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/"}if(this.$=t,e.options)for(var n=(t=a(Object.keys(e.options))).next();!n.done;n=t.next()){n=n.value;var s=e.options[n].default;void 0!==s&&(this.j[n]="function"==typeof s?s():s)}}function Ut(e,t){var n,s;return A((function(r){return t in e.H?r.return(e.H[t]):(n=e.locateFile(t,""),s=fetch(n).then((function(e){return e.arrayBuffer()})),e.H[t]=s,r.return(s))}))}function Vt(e,t,n){var s,r,i,o,l,u,c,h,d,p,f,m,g,b;return A((function(w){switch(w.g){case 1:if(!n)return w.return(t);for(s={},r=0,i=a(Object.keys(n)),o=i.next();!o.done;o=i.next())l=o.value,"string"!=typeof(u=n[l])&&"texture"===u.type&&void 0!==t[u.stream]&&++r;10&&r[r.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]0){var c=o===e.strides.length-1?1:MW(e.minScale,e.maxScale,o+1,e.strides.length);a.push(Math.sqrt(l*c)),i.push(e.interpolatedScaleAspectRatio)}}o++}for(var h=0;h0)p=e.featureMapHeight[n],f=e.featureMapWidth[n];else{var m=e.strides[n];p=Math.ceil(e.inputSizeHeight/m),f=Math.ceil(e.inputSizeWidth/m)}for(var g=0;g-1})),Co([s,r,i]),[2,o]}}))}))}function BW(e,t,n){return kW(this,void 0,void 0,(function(){var s,r,i,a,o;return SW(this,(function(l){switch(l.label){case 0:return s=e[0],r=e[1],i=function(e,t,n){return Ao((function(){var s,r,i,a;n.reverseOutputOrder?(r=Tp(zc(e,[0,n.boxCoordOffset+0],[-1,1])),s=Tp(zc(e,[0,n.boxCoordOffset+1],[-1,1])),a=Tp(zc(e,[0,n.boxCoordOffset+2],[-1,1])),i=Tp(zc(e,[0,n.boxCoordOffset+3],[-1,1]))):(s=Tp(zc(e,[0,n.boxCoordOffset+0],[-1,1])),r=Tp(zc(e,[0,n.boxCoordOffset+1],[-1,1])),i=Tp(zc(e,[0,n.boxCoordOffset+2],[-1,1])),a=Tp(zc(e,[0,n.boxCoordOffset+3],[-1,1]))),r=Dl(Fl(zl(r,n.xScale),t.w),t.x),s=Dl(Fl(zl(s,n.yScale),t.h),t.y),n.applyExponentialOnBoxSize?(i=Fl(Bh(zl(i,n.hScale)),t.h),a=Fl(Bh(zl(a,n.wScale)),t.w)):(i=Fl(zl(i,n.hScale),t.h),a=Fl(zl(a,n.wScale),t.h));var o=Ql(s,zl(i,2)),l=Ql(r,zl(a,2)),u=Dl(s,zl(i,2)),c=Dl(r,zl(a,2)),h=Oc([Tc(o,[n.numBoxes,1]),Tc(l,[n.numBoxes,1]),Tc(u,[n.numBoxes,1]),Tc(c,[n.numBoxes,1])],1);if(n.numKeypoints)for(var d=0;d0)for((c=l.locationData).relativeKeypoints=[],h=n.numKeypoints*n.numValuesPerKeypoint,d=0;dl?(i=e.width,a=e.width*o,c=(1-l/o)/2):(i=e.height/o,a=e.height,u=(1-o/l)/2),e.width=i,e.height=a,{top:c,left:u,right:u,bottom:c}}(l,s,r),c=function(e,t,n,s){var r=e.width,i=e.height,a=Math.cos(e.rotation),o=Math.sin(e.rotation),l=e.xCenter,u=e.yCenter,c=1/t,h=1/n,d=new Array(16);return d[0]=r*a*1*c,d[1]=-i*o*c,d[2]=0,d[3]=(-.5*r*a*1+.5*i*o+l)*c,d[4]=r*o*1*h,d[5]=i*a*h,d[6]=0,d[7]=(-.5*i*a-.5*r*o*1+u)*h,d[8]=0,d[9]=0,d[10]=r*c,d[11]=0,d[12]=0,d[13]=0,d[14]=0,d[15]=1,function(e){if(16!==e.length)throw new Error("Array length must be 16 but got "+e.length);return[[e[0],e[1],e[2],e[3]],[e[4],e[5],e[6],e[7]],[e[8],e[9],e[10],e[11]],[e[12],e[13],e[14],e[15]]]}(d)}(l,o.width,o.height),h=Ao((function(){var t=RW(e),n=zp(function(e,t,n){return OW(n,"inputResolution"),[1/n.width*e[0][0]*t.width,1/n.height*e[0][1]*t.width,e[0][3]*t.width,1/n.width*e[1][0]*t.height,1/n.height*e[1][1]*t.height,e[1][3]*t.height,0,0]}(c,o,s),[1,8]),r="zero"===i?"constant":"nearest",l=bm.transform(Lh(Nl(t,"float32")),n,"bilinear",r,0,[s.height,s.width]);return null!=a?function(e,t){var n=function(e,t,n,s){var r=(s-n)/255;return{scale:r,offset:n-0*r}}(0,0,t[0],t[1]);return Ao((function(){return Dl(Fl(e,n.scale),n.offset)}))}(l,a):l}));return{imageTensor:h,padding:u,transformationMatrix:c}}(n,this.imageToTensorConfig),r=s.imageTensor,i=s.transformationMatrix,a=this.detectorModel.execute(r,"Identity:0"),o=function(e){return Ao((function(){var t=function(e){return Ao((function(){return[zc(e,[0,0,0],[1,-1,1]),zc(e,[0,0,1],[1,-1,-1])]}))}(e),n=t[0],s=t[1];return{boxes:Tp(s),logits:Tp(n)}}))}(a),l=o.boxes,[4,BW([u=o.logits,l],this.anchorTensor,this.tensorsToDetectionConfig)]);case 1:return 0===(c=p.sent()).length?(Co([n,r,a,u,l]),[2,c]):[4,FW(c,this.maxFaces,.3)];case 2:return h=p.sent(),d=function(e,t){void 0===e&&(e=[]);var n,s=(n=t,[].concat.apply([],n));return e.forEach((function(e){var t=e.locationData;t.relativeKeypoints.forEach((function(e){var t=zW(s,[e.x,e.y]),n=t[0],r=t[1];e.x=n,e.y=r}));var n=t.relativeBoundingBox,r=Number.MAX_VALUE,i=Number.MAX_VALUE,a=Number.MIN_VALUE,o=Number.MIN_VALUE;[[n.xMin,n.yMin],[n.xMin+n.width,n.yMin],[n.xMin+n.width,n.yMin+n.height],[n.xMin,n.yMin+n.height]].forEach((function(e){var t=zW(s,e),n=t[0],l=t[1];r=Math.min(r,n),a=Math.max(a,n),i=Math.min(i,l),o=Math.max(o,l)})),t.relativeBoundingBox={xMin:r,xMax:a,yMin:i,yMax:o,width:a-r,height:o-i}})),e}(h,i),Co([n,r,a,u,l]),[2,d]}}))}))},e.prototype.estimateFaces=function(e,t){return kW(this,void 0,void 0,(function(){var n,s;return SW(this,(function(r){return n=NW(e),s=!!t&&t.flipHorizontal,[2,this.detectFaces(e,s).then((function(e){return e.map((function(e){for(var t=e.locationData.relativeKeypoints.map((function(e,t){return CW(CW({},e),{x:e.x*n.width,y:e.y*n.height,name:_W[t]})})),s=e.locationData.relativeBoundingBox,r=0,i=["width","xMax","xMin"];r-1,[4,oS(t.detectorModelUrl,{fromTFHub:n})];case 1:return s=r.sent(),[2,new $W(t.modelType,s,t.maxFaces)]}}))}))}function ZW(e,t){return kW(this,void 0,void 0,(function(){var n,s;return SW(this,(function(r){if(e===UW.MediaPipeFaceDetector){if(s=void 0,null!=(n=t)){if("tfjs"===n.runtime)return[2,XW(n)];if("mediapipe"===n.runtime)return[2,TW(n)];s=n.runtime}throw new Error("Expect modelConfig.runtime to be either 'tfjs' or 'mediapipe', but got "+s)}throw new Error(e+" is not a supported model name.")}))}))}function YW(e){return e.width*e.height}function QW(e){var t=e.xCenter-e.width/2,n=t+e.width,s=e.yCenter-e.height/2;return{xMin:t,xMax:n,yMin:s,yMax:s+e.height,width:e.width,height:e.height}}function JW(e){return e instanceof Ma?{height:e.shape[0],width:e.shape[1]}:{height:e.height,width:e.width}}function ej(e){return e-2*Math.PI*Math.floor((e+Math.PI)/(2*Math.PI))}function tj(e){return e instanceof Ma?e:Fu(e)}function nj(e,t){Gt(0!==e.width,(function(){return t+" width cannot be 0."})),Gt(0!==e.height,(function(){return t+" height cannot be 0."}))}function sj(e,t,n){var s=t.outputTensorSize,r=t.keepAspectRatio,i=t.borderMode,a=t.outputTensorFloatRange,o=JW(e),l=function(e,t){return t?{xCenter:t.xCenter*e.width,yCenter:t.yCenter*e.height,width:t.width*e.width,height:t.height*e.height,rotation:t.rotation}:{xCenter:.5*e.width,yCenter:.5*e.height,width:e.width,height:e.height,rotation:0}}(o,n),u=function(e,t,n){if(void 0===n&&(n=!1),!n)return{top:0,left:0,right:0,bottom:0};var s=t.height,r=t.width;nj(t,"targetSize"),nj(e,"roi");var i,a,o=s/r,l=e.height/e.width,u=0,c=0;return o>l?(i=e.width,a=e.width*o,c=(1-l/o)/2):(i=e.height/o,a=e.height,u=(1-o/l)/2),e.width=i,e.height=a,{top:c,left:u,right:u,bottom:c}}(l,s,r),c=function(e,t,n,s){var r=e.width,i=e.height,a=s?-1:1,o=Math.cos(e.rotation),l=Math.sin(e.rotation),u=e.xCenter,c=e.yCenter,h=1/t,d=1/n,p=new Array(16);return p[0]=r*o*a*h,p[1]=-i*l*h,p[2]=0,p[3]=(-.5*r*o*a+.5*i*l+u)*h,p[4]=r*l*a*d,p[5]=i*o*d,p[6]=0,p[7]=(-.5*i*o-.5*r*l*a+c)*d,p[8]=0,p[9]=0,p[10]=r*h,p[11]=0,p[12]=0,p[13]=0,p[14]=0,p[15]=1,function(e){if(16!==e.length)throw new Error("Array length must be 16 but got "+e.length);return[[e[0],e[1],e[2],e[3]],[e[4],e[5],e[6],e[7]],[e[8],e[9],e[10],e[11]],[e[12],e[13],e[14],e[15]]]}(p)}(l,o.width,o.height,!1),h=Ao((function(){var t=tj(e),n=zp(function(e,t,n){return nj(n,"inputResolution"),[1/n.width*e[0][0]*t.width,1/n.height*e[0][1]*t.width,e[0][3]*t.width,1/n.width*e[1][0]*t.height,1/n.height*e[1][1]*t.height,e[1][3]*t.height,0,0]}(c,o,s),[1,8]),r="zero"===i?"constant":"nearest",l=bm.transform(Lh(Nl(t,"float32")),n,"bilinear",r,0,[s.height,s.width]);return null!=a?function(e,t){var n=function(e,t,n,s){var r=(s-n)/255;return{scale:r,offset:n-0*r}}(0,0,t[0],t[1]);return Ao((function(){return Dl(Fl(e,n.scale),n.offset)}))}(l,a):l}));return{imageTensor:h,padding:u,transformationMatrix:c}}function rj(e){return{xCenter:e.xMin+e.width/2,yCenter:e.yMin+e.height/2,width:e.width,height:e.height}}function ij(e){var t=e.relativeKeypoints;if(t.length<=1)throw new Error("2 or more keypoints required to calculate a rect.");var n=Number.MAX_VALUE,s=Number.MAX_VALUE,r=Number.MIN_VALUE,i=Number.MIN_VALUE;return t.forEach((function(e){n=Math.min(n,e.x),r=Math.max(r,e.x),s=Math.min(s,e.y),i=Math.max(i,e.y)})),{xCenter:(n+r)/2,yCenter:(s+i)/2,width:r-n,height:i-s}}function aj(e,t,n,s,r){var i="rect"===n?function(e,t,n){var s,r=e.locationData;if("boundingbox"===t)s=rj(r.boundingBox);else{s=ij(r);var i=n.width,a=n.height;s.xCenter=Math.round(s.xCenter*i),s.yCenter=Math.round(s.yCenter*a),s.width=Math.round(s.width*i),s.height=Math.round(s.height*a)}return s}(e,t,s):function(e,t){var n=e.locationData;return"boundingbox"===t?rj(n.relativeBoundingBox):ij(n)}(e,t);return r&&(i.rotation=function(e,t,n){var s,r=e.locationData,i=n.rotationVectorStartKeypointIndex,a=n.rotationVectorEndKeypointIndex;s=n.rotationVectorTargetAngle?n.rotationVectorTargetAngle:Math.PI*n.rotationVectorTargetAngleDegree/180;var o=r.relativeKeypoints[i].x*t.width,l=r.relativeKeypoints[i].y*t.height,u=r.relativeKeypoints[a].x*t.width,c=r.relativeKeypoints[a].y*t.height;return ej(s-Math.atan2(-(c-l),u-o))}(e,s,r)),i}function oj(e,t,n){for(var s=0;s1&&(h.y=s?t.inputImageHeight-a[u+1]:a[u+1]),i>2&&(h.z=a[u+2]),i>3&&(h.score=hj(t.visibilityActivation,a[u+3])),o.push(h);for(c=0;c0?r/i:0}(e,t)<=.5}))).push(e)}))})),l=y,[4,Promise.all(l.map((function(e){return m.faceLandmark(e,r)})))];case 4:for(u=g.sent(),c=[],this.prevFaceRectsFromLandmarks=[],h=0;h-1,[4,oS(t.landmarkModelUrl,{fromTFHub:n})];case 1:return s=i.sent(),[4,ZW(UW.MediaPipeFaceDetector,{modelType:"short",maxFaces:t.maxFaces,detectorModelUrl:t.detectorModelUrl,runtime:t.runtime})];case 2:return r=i.sent(),[2,new Tj(r,s,t.maxFaces,t.refineLandmarks)]}}))}))}(fj||(fj={})).MediaPipeFaceMesh="MediaPipeFaceMesh";Object.freeze({__proto__:null,getKeypointIndexByContour:function(e){if(e===fj.MediaPipeFaceMesh)return pW;throw new Error("Model "+e+" is not supported.")},getAdjacentPairs:function(e){if(e===fj.MediaPipeFaceMesh)return fW;throw new Error("Model "+e+" is not supported.")}});const Rj=(e,t,n,s)=>1===s?.5*(e+t):e+(t-e)*n/(s-1),Oj={applyExponentialOnBoxSize:!1,flipVertically:!1,ignoreClasses:[],numClasses:1,numBoxes:2304,numCoords:16,boxCoordOffset:0,keypointCoordOffset:4,numKeypoints:6,numValuesPerKeypoint:2,sigmoidScore:!0,scoreClippingThresh:100,reverseOutputOrder:!0,xScale:192,yScale:192,hScale:192,wScale:192,minScoreThresh:.6},Dj={reduceBoxesInLowestLayer:!1,interpolatedScaleAspectRatio:0,featureMapHeight:[],featureMapWidth:[],numLayers:1,minScale:.1484375,maxScale:.75,inputSizeHeight:192,inputSizeWidth:192,anchorOffsetX:.5,anchorOffsetY:.5,strides:[4],aspectRatios:[1],fixedAnchorSize:!0},Mj={outputTensorSize:{width:192,height:192},keepAspectRatio:!0,outputTensorFloatRange:[-1,1],borderMode:"zero"},zj=e=>{e.detector.imageToTensorConfig=Mj,e.detector.tensorsToDetectionConfig=Oj,e.detector.anchors=(e=>{null===e.reduceBoxesInLowestLayer&&(e.reduceBoxesInLowestLayer=!1),null===e.interpolatedScaleAspectRatio&&(e.interpolatedScaleAspectRatio=1),null===e.fixedAnchorSize&&(e.fixedAnchorSize=!1);const t=[];let n=0;for(;n0){const n=o===e.strides.length-1?1:Rj(e.minScale,e.maxScale,o+1,e.strides.length);a.push(Math.sqrt(t*n)),i.push(e.interpolatedScaleAspectRatio)}}o++}for(let e=0;e0)l=e.featureMapHeight[n],u=e.featureMapWidth[n];else{const t=e.strides[n];l=Math.ceil(e.inputSizeHeight/t),u=Math.ceil(e.inputSizeWidth/t)}for(let n=0;ne.width))),n=Mp(e.detector.anchors.map((e=>e.height))),s=Mp(e.detector.anchors.map((e=>e.xCenter))),r=Mp(e.detector.anchors.map((e=>e.yCenter)));e.detector.anchorTensor={x:s,y:r,w:t,h:n}},Fj=function(){this.model=function(e,t){return cW(this,void 0,void 0,(function(){var n,s;return hW(this,(function(r){if(e===fj.MediaPipeFaceMesh){if(s=void 0,null!=(n=t)){if("tfjs"===n.runtime)return[2,Nj(n)];if("mediapipe"===n.runtime)return[2,vW(n)];s=n.runtime}throw new Error("Expect modelConfig.runtime to be either 'tfjs' or 'mediapipe', but got "+s)}throw new Error(e+" is not a supported model name.")}))}))}(fj.MediaPipeFaceMesh,{runtime:"tfjs",detectorModelUrl:"https://tfhub.dev/mediapipe/tfjs-model/face_detection/full/1"}),this.predictionReady=!1,this.modelLoaded=!1},Bj={current:!1,resolves:[]};Fj.prototype.loadModel=async function(){if(!this.modelLoaded){if(Bj.current){const e=new Promise((e=>{Bj.resolves.push(e)}));return await e}Bj.current=!0;try{this.model=await this.model,zj(this.model),this.modelLoaded=!0,Bj.resolves.forEach((e=>e()))}finally{Bj.current=!1,Bj.resolves=[]}}},Fj.prototype.positionsArray=null,Fj.prototype.getEyePatches=async function(e,t,n,s){if(0===t.width)return null;const r=this.model,i=await r.estimateFaces(t,{flipHorizontal:!1});if(0===i.length)return!1;this.positionsArray=i[0].keypoints;const a=i[0],[o,l]=[{eyeTopArc:[466,388,387,386,385,384,398].map((e=>a.keypoints[e])),eyeBottomArc:[263,249,390,373,374,380,381,382,362].map((e=>a.keypoints[e]))},{eyeTopArc:[246,161,160,159,158,157,173].map((e=>a.keypoints[e])),eyeBottomArc:[33,7,163,144,145,153,154,155,133].map((e=>a.keypoints[e]))}].map((({eyeTopArc:e,eyeBottomArc:t})=>{const n={x:Math.round(Math.min(...e.map((e=>e.x)))),y:Math.round(Math.min(...e.map((e=>e.y))))},s=Math.round(Math.max(...t.map((e=>e.x)))),r=Math.round(Math.max(...t.map((e=>e.y))));return{origin:n,width:s-n.x,height:r-n.y}}));var u=o.origin.x,c=o.origin.y,h=o.width,d=o.height,p=l.origin.x,f=l.origin.y,m=l.width,g=l.height;if(0===h||0===m)return null;if(0===d||0===g)return null;var y={},b=t.getContext("2d").getImageData(u,c,h,d);y.left={patch:b,imagex:u,imagey:c,width:h,height:d};var w=t.getContext("2d").getImageData(p,f,m,g);return y.right={patch:w,imagex:p,imagey:f,width:m,height:g},this.predictionReady=!0,y},Fj.prototype.getPositions=function(){return this.positionsArray},Fj.prototype.reset=function(){},Fj.prototype.drawFaceOverlay=function(e,t){if(t){e.fillStyle="#32EEDB",e.strokeStyle="#32EEDB",e.lineWidth=.5;for(let n=0;nn?n:e}Pj.Eye=function(e,t,n,s,r){this.patch=e,this.imagex=t,this.imagey=n,this.width=s,this.height=r},Pj.getEyeFeats=function(e){var t=this.resizeEye(e.left,10,6),n=this.resizeEye(e.right,10,6),s=this.grayscale(t.data,t.width,t.height),r=this.grayscale(n.data,n.width,n.height),i=[];this.equalizeHistogram(s,5,i);var a=[];return this.equalizeHistogram(r,5,a),i.concat(a)},Pj.DataWindow=function(e,t){this.data=[],this.windowSize=e,this.index=0,this.length=0,t&&(this.data=t.slice(t.length-e,t.length),this.length=this.data.length)},Pj.DataWindow.prototype.push=function(e){return this.data.length>2),r=0,i=0,a=0;at?255:0;return e},Pj.correlation=function(e,t){const n=Math.min(e.length,t.length);let s=0;for(let r=0;rWj(e,t,((e,t)=>e+t)),sub:(e,t)=>Wj(e,t,((e,t)=>e-t)),inv:e=>jj.solve(e,jj.identity(e.length,e[0].length)),identity(e,t=e){const n=new Array(e);for(let s=0;se.length===e[0].length?jj.LUDecomposition(e,t):jj.QRDecomposition(e,t),LUDecomposition(e,t){for(var n=new Array(e.length),s=0;sMath.abs(c[f])&&(f=s);if(f!=r){for(p=0;p=0;p--){for(r=0;r=0;u--){for(r=0;r=0;n--){var s=this.screenXTrailArray.get(n),r=this.screenYTrailArray.get(n);if(Math.sqrt(Math.pow(s-e,2)+Math.pow(r-t,2))>72)return n+1}return n},qj.addData=function(e,t,n){e&&("click"===n?(this.screenXClicksArray.push([t[0]]),this.screenYClicksArray.push([t[1]]),this.eyeFeaturesClicks.push(Vj.getEyeFeats(e)),this.dataClicks.push({eyes:e,screenPos:t,type:n})):"move"===n&&(this.screenXTrailArray.push([t[0]]),this.screenYTrailArray.push([t[1]]),this.eyeFeaturesTrail.push(Vj.getEyeFeats(e)),this.trailTimes.push(performance.now()),this.dataTrail.push({eyes:e,screenPos:t,type:n})))};const Hj=qj,Kj={RidgeReg:function(){this.init()}};Kj.RidgeReg.prototype.init=Hj.InitRegression,Kj.RidgeReg.prototype.addData=Hj.addData,Kj.RidgeReg.prototype.predict=function(e){if(!e||0===this.eyeFeaturesClicks.length)return null;for(var t=performance.now()-this.trailTime,n=[],s=[],r=[],i=0;it&&(n.push(this.screenXTrailArray.get(i)),s.push(this.screenYTrailArray.get(i)),r.push(this.eyeFeaturesTrail.get(i)));var a=this.screenXClicksArray.data.concat(n),o=this.screenYClicksArray.data.concat(s),l=this.eyeFeaturesClicks.data.concat(r),u=Hj.ridge(a,l,this.ridgeParameter),c=Hj.ridge(o,l,this.ridgeParameter),h=Vj.getEyeFeats(e),d=0;for(i=0;it&&(n.push(this.screenXTrailArray.get(i)),s.push(this.screenYTrailArray.get(i)),r.push(this.eyeFeaturesTrail.get(i)));var a=this.eyeFeaturesClicks.data.length,o=Array(a),l=Array(a),u=Array(a);for(i=0;isetTimeout(t,e)))}function nG(e,t){let n=Math.pow(10,t);return Math.round(e*n)/n}const sG={tracker:{}};sG.tracker.TFFaceMesh=Lj,sG.reg=$j,sG.reg.RidgeWeightedReg=Zj.RidgeWeightedReg,sG.reg.RidgeRegThreaded=eG.RidgeRegThreaded,sG.util=Vj,sG.params=iW;var rG=null,iG=null,aG=null,oG=null,lG=null,uG=null,cG=null,hG=!1,dG=new Array(50),pG=new Array(50),fG=(performance.now(),null),mG=null;sG.params.paused=!1,sG.params.greedyLearner=!1,sG.params.framerate=60,sG.params.showGazeDot=!1,sG.params.getLatestVideoFrameTimestamp=()=>{},sG.params.activeCamera={label:"",id:""};let gG=[];var yG=function(e){},bG=yG,wG=["click","move"],vG=performance.now(),xG=new sG.tracker.TFFaceMesh,AG=[new sG.reg.RidgeReg],CG={TFFacemesh:function(){return new sG.tracker.TFFaceMesh}},kG={ridge:function(){return new sG.reg.RidgeReg},weightedRidge:function(){return new sG.reg.RidgeWeightedReg},threadedRidge:function(){return new sG.reg.RidgeRegThreaded}},SG="webgazerGlobalData",_G="webgazerGlobalSettings",EG={},IG=[];let TG,NG,RG,OG,DG,MG,zG,FG,BG,LG,PG,UG;sG.computeValidationBoxSize=function(){var e=aG.videoWidth,t=aG.videoHeight,n=parseInt(aG.style.width),s=parseInt(aG.style.height),r=Math.min(e,t),i=e==Math.max(e,t)?n/e:s/t,a=r*sG.params.faceFeedbackBoxRatio*i;return[(s-a)/2,(n-a)/2,a,a]};let VG=!1,WG=!1;function jG(){null!==uG&&fG?(VG||WG||(WG=!0,setTimeout((()=>{TG=aG.videoWidth,NG=aG.videoHeight,RG=Math.min(TG,NG),OG=RG*sG.params.faceFeedbackBoxRatio,DG=(NG-OG)/2,MG=(TG-OG)/2,zG=MG+OG,FG=DG+OG,VG=!0,WG=!1}),500)),BG=TG-fG.left.imagex,PG=TG-fG.right.imagex,LG=fG.left.imagey,UG=fG.right.imagey,uG.style.border=VG&&BG>MG&&BGMG&&PGDG&&LGDG&&UG=1e3/sG.params.framerate&&(ZG=XG,mG=HG(),mG=await mG,bG(mG),YG=!0,mG)){KG.push(mG);var e=0,t=0,n=KG.length;for(var s in KG.data)e+=KG.get(s).x,t+=KG.get(s).y;var r=Vj.bound({x:e/n,y:t/n});sG.params.storingPoints&&(sG.storePoints(r.x,r.y,$G),50==++$G&&($G=0)),cG.style.opacity="",cG.style.left=`${r.x}px`,cG.style.top=`${r.y}px`}requestAnimationFrame(JG)}var eq=function(e,t,n){if(!sG.params.paused){if(0===AG.length)return null;for(var s in AG)fG&&AG[s].addData(fG,[e,t],n)}},tq=async function(e){eq(e.clientX,e.clientY,wG[0]),sG.params.saveDataAcrossSessions&&await async function(){var e=AG[0].getData()||IG;oW().setItem(_G,EG),oW().setItem(SG,e)}()},nq=function(e){if(!sG.params.paused){var t=performance.now();tsG.params.activeCamera.id?{video:{...e.video,deviceId:sG.params.activeCamera.id}}:e;function oq(e){navigator.vendor&&navigator.vendor.indexOf("Apple")>-1?(e.style.opacity=sG.params.showVideo?"1":"0",e.style.display="block"):e.style.display=sG.params.showVideo?"block":"none"}sG._begin=function(e,t){if(!sG.params.videoIsOn)return void 0===navigator.mediaDevices&&(navigator.mediaDevices={}),void 0===navigator.mediaDevices.getUserMedia&&(navigator.mediaDevices.getUserMedia=function(e){var t=navigator.webkitGetUserMedia||navigator.mozGetUserMedia;return t?new Promise((function(n,s){t.call(navigator,e,n,s)})):Promise.reject(new Error("Unfortunately, your browser does not support access to the webcam through the getUserMedia API. Try to use the latest version of Google Chrome, Mozilla Firefox, Opera, or Microsoft Edge instead."))}),new Promise((async(n,s)=>{let r;try{if(void 0!==navigator.mediaDevices&&"function"==typeof navigator.mediaDevices.enumerateDevices){const s=await navigator.mediaDevices.enumerateDevices();if((e=>{let t,n;gG=[],e.forEach((e=>{"videoinput"===e.kind&&gG.push(e),e.label.includes("FaceTime")&&(t=e.label,n=e.deviceId)})),gG.length&&(sG.params.activeCamera.label=t||gG[0].label,sG.params.activeCamera.id=n||gG[0].deviceId)})(s),0===gG.length)throw t(gG),JSON.stringify({message:"We can't find any video input devices.",devices:s});try{r=await navigator.mediaDevices.getUserMedia(aq(sG.params.camConstraints))}catch(e){throw t(gG),e}iq(e?"video":"all",r).then((()=>{gG.length>1&&(e=>{const t=iG,n=document.createElement("select");n.className=n.id="webgazer-videoinput-select",n.name="videoinput",e.forEach(((e,t)=>{var s;n.innerHTML+=``})),n.onchange=e=>{const[t,s]=n.value.split("%");sG.params.activeCamera.label=s,sG.params.activeCamera.id=t,sG.setCameraConstraints(aq(sG.params.camConstraints))},t.appendChild(n)})(gG)})),sG.params.videoIsOn=!0,e||n(sG)}else t([])}catch(e){throw aG=null,r=null,t([]),s(e),JSON.stringify({error:e,devices:await navigator.mediaDevices.enumerateDevices()})}}));iq("gaze")},sG.isReady=function(){return null!==oG&&oG.width>0},sG.pause=function(){return sG.params.paused=!0,sG},sG.stopLearning=function(e){return rq(e),sG},sG.startLearning=function(e){return sq(e),sG},sG.resume=async function(){return sG.params.paused?(sG.params.paused=!1,YG=!0,lq.current&&(clearInterval(lq.current),lq.current=void 0,hG=!1,cG.style.backgroundColor="",cG.style.opacity=""),await JG(),sG):sG},sG.end=function(e=!1){return e&&(KG=new Vj.DataWindow(4),$G=0,XG=null,ZG=-1,VG=!1,sG.params.videoIsOn=!1,setTimeout((()=>{sG.stopVideo(),iG.remove()}),500)),sG},sG.stopVideo=function(){return rG.getTracks()[0].stop(),sG},sG.detectCompatibility=function(){return void 0!==(navigator.mediaDevices.getUserMedia||navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia)},sG.showVideoPreview=function(e){return sG.params.showVideoPreview=e,sG.showVideo(e&&sG.params.showVideo),sG.showFaceOverlay(e&&sG.params.showFaceOverlay),sG.showFaceFeedbackBox(e&&sG.params.showFaceFeedbackBox),sG},sG.showVideo=function(e,t=.8){return sG.params.showVideo=e,aG&&oq(aG),iG&&oq(iG),sG},sG.showFaceOverlay=function(e){return sG.params.showFaceOverlay=e,lG&&(lG.style.display=e?"block":"none"),sG},sG.showFaceFeedbackBox=function(e){return sG.params.showFaceFeedbackBox=e,uG&&(uG.style.display=e?"block":"none"),sG},sG.showPredictionPoints=function(e){return sG.params.showGazeDot=e,cG&&(cG.style.display=e?"block":"none"),sG};const lq={current:void 0};function uq(e,t){oG&&(oG.width=e,oG.height=t),lG&&(lG.width=e,lG.height=t)}sG.popPredictionPoints=function(){return lq.current&&(clearInterval(lq.current),lq.current=void 0,hG=!1),cG&&sG.params.showGazeDot&&(hG=!0,cG.style.backgroundColor="red",cG.style.opacity=1,lq.current=setInterval((()=>{cG.style.opacity-=.02,cG.style.opacity<=.02&&(clearInterval(lq.current),lq.current=void 0,hG=!1,cG.style.backgroundColor="",cG.style.opacity="")}),50)),sG},sG.saveDataAcrossSessions=function(e){return sG.params.saveDataAcrossSessions=e,sG},sG.applyKalmanFilter=function(e){return sG.params.applyKalmanFilter=e,sG},sG.setCameraConstraints=async function(e){if(sG.params.camConstraints=e,rG){sG.pause();try{rG.getVideoTracks().forEach((e=>{e.stop()}));const e=await navigator.mediaDevices.getUserMedia(sG.params.camConstraints);setTimeout((()=>{const t=e.getVideoTracks()[0].getSettings();rG=e,aG.srcObject=e,uq(t.width,t.height)}),1500)}catch(e){return}await sG.resume()}},sG.setStaticVideo=function(e){return e,sG},sG.setVideoViewerSize=function(e,t){sG.params.videoViewerWidth=e,sG.params.videoViewerHeight=t,aG.style.width=e+"px",aG.style.height=t+"px",iG.style.width=e+"px",iG.style.height=t+"px",lG.style.width=e+"px",lG.style.height=t+"px";var n=sG.computeValidationBoxSize();uG.style.top=n[0]+"px",uG.style.left=n[1]+"px",uG.style.width=n[2]+"px",uG.style.height=n[3]+"px"},sG.addMouseEventListeners=function(){return sq(),sG},sG.removeMouseEventListeners=function(){return rq(),sG},sG.recordScreenPosition=function(e,t,n){return eq(e,t,n||wG[0]),sG},sG.storePoints=function(e,t,n){dG[n]=e,pG[n]=t},sG.setTracker=function(e){if(void 0===CG[e]){for(var t in CG);return sG}return xG=CG[e](),sG},sG.setRegression=function(e){if(void 0===kG[e]){for(var t in kG);return sG}return IG=AG[0].getData(),(AG=[kG[e]()])[0].setData(IG),sG},sG.addTrackerModule=function(e,t){CG[e]=function(){return new t}},sG.addRegressionModule=function(e,t){kG[e]=function(){return new t}},sG.addRegression=function(e){var t=kG[e]();return IG=AG[0].getData(),t.setData(IG),AG.push(t),sG},sG.setGazeListener=function(e){return bG=e,sG},sG.clearGazeListener=function(){return bG=yG,sG},sG.setVideoElementCanvas=function(e){return oG=e},sG.clearData=async function(){!function(){for(var e in oW().clear(),AG)AG[e].init()}()},sG.getTracker=function(){return xG},sG.getRegression=function(){return AG},sG.getCurrentPrediction=async function(e=0,t=150,n=5){let s=0;const r=[],i=[];for(let e=0;et.x>=0&&t.x<=window.innerWidth?e+t.x:e),0)/i.length),l=Math.round(i.reduce(((e,t)=>t.y>=0&&t.y<=window.innerHeight?e+t.y:e),0)/i.length);return cG&&(cG.style.left=`${o}px`,cG.style.top=`${l}px`),{x:o,y:l,raw:i.map((e=>({x:nG(e.x,0),y:nG(e.y,0)})))}},sG.params.getEventTypes=function(){return wG.slice()},sG.getVideoElementCanvas=function(){return oG},sG.getVideoPreviewToCameraResolutionRatio=function(){return[sG.params.videoViewerWidth/aG.videoWidth,sG.params.videoViewerHeight/aG.videoHeight]},sG.getStoredPoints=function(){return[dG,pG]};const cq=sG;class hq{constructor(e){this.calibrator=e,this.webgazer=cq,this.defaultGazeCallback=null,this.defaultDistanceTrackCallback=null,this._initialized={distance:!1,gaze:!1},this._learning=!0,this._running={distance:!1,gaze:!1},this._runningVideo=!1,this._toFixedN=1}begin({pipWidthPx:e},t){this.checkInitialized("gaze",!0)&&(this._running.gaze||(this.webgazer.begin(this.videoFailed.bind(this)),this._running.gaze=!0,this._runningVideo=!0),Oe(this.calibrator,e,this.calibrator.params.videoOpacity,this.webgazer,t))}beginVideo({pipWidthPx:e},t){this.checkInitialized("distance",!0)&&(this._runningVideo||(this.webgazer.beginVideo(this.videoFailed.bind(this)),this._runningVideo=!0),Oe(this.calibrator,e,this.calibrator.params.videoOpacity,this.webgazer,t))}videoFailed(e){const t=ie(this.calibrator,{showIcon:!0});Q().fire({...t,icon:"error",iconColor:this.calibrator._CONST.COLOR.DARK_RED,showConfirmButton:!1,html:e.length?W.H.RC_errorCameraUseDenied[this.calibrator.L]:W.H.RC_errorNoCamera[this.calibrator.L]})}attachNewCallback(e){this.checkInitialized("gaze",!0)&&this.webgazer.setGazeListener((t=>{if(t){const n=this.calibrator.newGazePositionData=this.getData(t);(0,E.nB)(e,n)}}))}async getGazeNow(e={},t){e=Object.assign({wait:0,frames:5},e);const n=this.calibrator.newGazePositionData=this.getData(await this.webgazer.getCurrentPrediction(0,e.wait,e.frames));return this.webgazer.popPredictionPoints(),(0,E.nB)(t,n),n}end(){this.webgazer.end()}}hq.prototype._init=function({greedyLearner:e,framerate:t,toFixedN:n,showVideo:s,showFaceOverlay:r,showGazer:i},a){this.checkInitialized(a)||("gaze"===a&&(this.webgazer.params.greedyLearner=e,this.webgazer.params.framerate=t,this.webgazer.params.getLatestVideoFrameTimestamp=this._getLatestVideoTimestamp.bind(this),this.showGazer(i)),this._toFixedN=n,this.showVideo(s),this.showFaceOverlay(r),this._initialized[a]=!0)},hq.prototype.checkInitialized=function(e,t=!1){return!!(""===e?this._initialized.gaze||this._initialized.distance:this._initialized[e])},hq.prototype.getData=function(e){const t=performance.now();return{value:{x:(0,E.Nh)(e.x,this._toFixedN),y:(0,E.Nh)(e.y,this._toFixedN),latencyMs:t-this.calibrator._trackingVideoFrameTimestamps.gaze},timestamp:t,raw:e.raw?e.raw:void 0}},hq.prototype.pause=function(){this.webgazer.pause()},hq.prototype.resume=function(){this.webgazer.resume()},hq.prototype.end=function(e,t=!1){if(!this.checkInitialized(e,!0))return;const n=t||!this._initialized.gaze||!this._initialized.distance;"gaze"===e?(this._endGaze(),n&&this.checkInitialized("distance")&&this.calibrator.endDistance(!1,!1),this.calibrator._trackingVideoFrameTimestamps.gaze=0):(this.defaultDistanceTrackCallback=null,n&&this.checkInitialized("gaze")&&this._endGaze()),n?(this._initialized={distance:!1,gaze:!1},this._running={distance:!1,gaze:!1},this.webgazer.end(!0),this._runningVideo=!1):(this._initialized[e]=!1,this._running[e]=!1)},hq.prototype._endGaze=function(){this.webgazer.params.paused=!0,this._learning=!0,this.defaultGazeCallback=null,this.webgazer.clearData(),this.webgazer.params.greedyLearner=!1,this.webgazer.params.framerate=60,this.webgazer.params.getLatestVideoFrameTimestamp=()=>{}},hq.prototype._getLatestVideoTimestamp=function(e){this.calibrator._trackingVideoFrameTimestamps.gaze=e},hq.prototype.startStoringPoints=function(){this.webgazer.params.storingPoints=!0},hq.prototype.stopStoringPoints=function(){this.webgazer.params.storingPoints=!1},hq.prototype.startLearning=function(e){this._learning||(this.webgazer.startLearning(e),this._learning=!0)},hq.prototype.stopLearning=function(e){this._learning&&(this.webgazer.stopLearning(e),this._learning=!1)},hq.prototype.showGazer=function(e){this.webgazer.showPredictionPoints(e)},hq.prototype.showVideo=function(e){this.webgazer.showVideo(e,this.calibrator._params.videoOpacity)},hq.prototype.showFaceOverlay=function(e){this.webgazer.showFaceOverlay(e)},_.A.prototype.performanceCompute=async function(e,t=!1){if(!this.checkInitialized())return;const n=performance.now(),s={_useless:void 0,time:0,randomTime:0};for(;performance.now()-n<500;)s._useless=Array(5e3).fill(Math.floor(10*Math.random())),s.time++;const r=performance.now();for(s._useless=0;performance.now()-r<500;)s._useless+=Math.random(),s.randomTime++;const i={value:{computeArrayFillMHz:(0,E.Nh)(2*s.time/1e6,3),computeRandomMHz:(0,E.Nh)(2*s.randomTime/1e6,3),idealFps:void 0,stressFps:void 0},timestamp:performance.now()};return t||(this.newPerformanceData=i),(0,E.nB)(e,i),i},_.A.prototype.performance=async function(e={},t){if(!this.checkInitialized())return;e=Object.assign({testComputation:!0,testFrameCount:180,testObjectCount:1e4,headline:"🚀 "+W.H.RC_performanceTitle[this.L],description:W.H.RC_performanceIntro[this.L]},e),this._addBackground(),this._addBackgroundText(e.headline,e.description),await(0,E.yy)(200);const n=e.testComputation?await this.performanceCompute(null,!0):{value:{computeArrayFillMHz:void 0,computeRandomMHz:void 0}},s=document.createElement("canvas"),r=s.getContext("2d");s.width=window.innerWidth,s.height=window.innerHeight,this.background.appendChild(s);const i=await dq(r),a=await pq(r,e.testFrameCount,e.testObjectCount),o=this.newPerformanceData={value:{computeArrayFillMHz:n.value.computeArrayFillMHz,computeRandomMHz:n.value.computeRandomMHz,idealFps:Math.round(6e4/(i.end-i.start)),stressFps:Math.round(1e3*e.testFrameCount/(a.end-a.start))},timestamp:performance.now()};return this._removeBackground(),(0,E.nB)(t,o),o};const dq=()=>{let e=60;const t=performance.now();return new Promise((n=>{const s=()=>{e--,e>0?requestAnimationFrame(s):n({start:t,end:performance.now()})};requestAnimationFrame(s)}))},pq=async(e,t,n)=>{let s=t;const r=[],i=["#000000","#333333","#999999"];for(let e=0;e{const n=()=>{e.clearRect(0,0,window.innerWidth,window.innerHeight),e.beginPath();for(const t of r)t.move(),t.draw(e);s--,s>0?requestAnimationFrame(n):t({start:a,end:performance.now()})};requestAnimationFrame(n)}))};class fq{constructor(e){this.w=(0,E.Av)(20,70),this.h=(0,E.Av)(30,70),this.x=-this.w+Math.random()*window.innerWidth,this.y=-this.h/2+Math.random()*(window.innerHeight+this.h/2),this.speed=(0,E.Av)(1,5),this.stroke=e[Math.floor(Math.random()*e.length)]}move(){this.x+=this.speed+.5*Math.random(),this.x>window.innerWidth&&(this.x=-this.w)}draw(e){e.strokeStyle=this.stroke,e.fillRect(this.x,this.y,this.w,this.h),e.strokeRect(this.x,this.y,this.w,this.h)}}_.A.prototype.getEquipment=async function(e,t=!1){if(this.equipment&&!t)return(0,E.nB)(e);this._replaceBackground();const{CM:n,IN_D:s,IN_F:r}=this._CONST.UNITS,i={};i[n]="centimeter",i[s]="inch (decimal, e.g. 11.5 in)",i[r]="inch (fractional, e.g. 12 3/8 in)";const{value:a}=await Q().fire({...ie(this,{showIcon:!1}),title:"Do you have a ruler or tape measure?",html:"Ideally, it should be long enough to measure your viewing distance, but even a 6 inch (15 cm) ruler can be useful. Please select the units you'll use, or indicate that no ruler or tape measure is available.",input:"select",inputOptions:{...i,none:"No ruler or tape measure is available"},inputPlaceholder:"Select an option",inputValidator:e=>new Promise((t=>{e.length||t("Please select an option.");const n="none"!==e;this.newEquipmentData={value:{has:n,unit:n?e:null,equipment:n?"":null},timestamp:performance.now()},t()}))});return a?(0,E.nB)(e):void 0};var mq=__webpack_require__(2016),gq=__webpack_require__(980),yq=__webpack_require__.n(gq),bq=__webpack_require__(3890),wq=__webpack_require__.n(bq);_.A.prototype._checkScreenSize=async function(e,t,n){await this.getEquipment((()=>{vq(this,e,t,n)}))};const vq=async(e,t,n,s)=>{if(e.equipment&&e.equipment.value.has){e._replaceBackground((0,E.$O)("📏 Measure the Length of the Arrow",'Use your ruler (or tape measure) to measure the length of the arrow. Type your numerical answer into the box. Just digits, period, decimal comma, and / (forward slash) for fractional inches. Then click OK or hit RETURN.'));const t=t=>[()=>{const n=document.createElement("div");e.background.appendChild(n),n.outerHTML=t},()=>{for(const t of e.background.getElementsByClassName("arrow-two-sided-svg"))t.remove()},{callback:()=>{},content:"Ruler is too short"}],n=await(0,mq.K)(e,...t(yq())),r=await(0,mq.K)(e,...t(wq())),i={};if(n){const t=n.value,s=e.windowWidthPx.value,r=(0,E.Nh)(2.54*s/e.screenPpi.value,1);i.horizontal={...t,calibratorArrowWidthCm:r,arrowWidthPx:s}}if(r){const t=r.value,n=e.windowHeightPx.value,s=(0,E.Nh)(2.54*n/e.screenPpi.value,1);i.vertical={...t,calibratorArrowHeightCm:s,arrowHeightPx:n}}if(i.vertical||i.horizontal){const t={value:i,timestamp:n?n.timestamp:r.timestamp,measure:"screenSize"};e.newCheckData=t,(0,E.nB)(s,t)}}e._removeBackground(),(0,E.nB)(t,n)};_.A.prototype._checkDistance=async function(e,t,n,s){await this.getEquipment((()=>xq(this,e,t,n,s)))};const xq=async(e,t,n,s,r)=>{const i="trackDistance"===s,a=()=>{e._removeBackground(),i||(0,E.nB)(t,n)};if(i&&(0,E.nB)(t,n),e.equipment&&e.equipment.value.has){e._replaceBackground((0,E.$O)("📏 Hold Still and Measure Viewing Distance with Ruler",'Hold still so that your viewing distance from the screen stays unchanged from the last measurement. Please measure the distance from the middle of your screen to one of your eyes using your ruler (or measuring tape). If your ruler is not long enough, then select "Ruler is too short" below. Type your numerical answer into the box, then click OK or hit RETURN.'));const t=await(0,mq.K)(e,null,null,{callback:()=>{},content:"Ruler is too short"});if(t){const n={value:{...t.value,calibratorCm:e.viewingDistanceCm.value,calibratorMethod:e.viewingDistanceCm.method},timestamp:t.timestamp,measure:s};return e.newCheckData=n,a(),void(0,E.nB)(r,n)}}a()};var Aq=__webpack_require__(7790),Cq=__webpack_require__(627),kq=__webpack_require__.n(Cq),Sq=__webpack_require__(8110),_q=__webpack_require__.n(Sq),Eq=__webpack_require__(5072),Iq=__webpack_require__.n(Eq),Tq=__webpack_require__(7825),Nq=__webpack_require__.n(Tq),Rq=__webpack_require__(7659),Oq=__webpack_require__.n(Rq),Dq=__webpack_require__(5056),Mq=__webpack_require__.n(Dq),zq=__webpack_require__(540),Fq=__webpack_require__.n(zq),Bq=__webpack_require__(1113),Lq=__webpack_require__.n(Bq),Pq=__webpack_require__(4636),Uq={};Uq.styleTagTransform=Lq(),Uq.setAttributes=Mq(),Uq.insert=Oq().bind(null,"head"),Uq.domAPI=Nq(),Uq.insertStyleElement=Fq();Iq()(Pq.A,Uq);Pq.A&&Pq.A.locals&&Pq.A.locals;_.A.prototype.removePanel=function(){return!!this._panelStatus.hasPanel&&(this._panel.panelObserver.unobserve(this._panel.panel),this._panel.panel.remove(),this._panel.panel=null,this._panel.panelObserver=null,this._panel.panelTasks=[],this._panel.panelParent=null,this._panel.panelOptions={},this._panel.panelCallback=null,this._panel.panelResolve=null,this._panelStatus.hasPanel=!1,this._panelStatus.panelFinished=!1,Yq(this),!0)},_.A.prototype.resetPanel=function(e=null,t=null,n=null,s=null,r=null){if(!this._panelStatus.hasPanel)return!1;const i=e||[...this._panel.panelTasks],a=n||{...this._panel.panelOptions},o=s&&"function"==typeof s?s:this._panel.panelCallback,l=r||this._panel.panelResolve;return null!==t&&t!==this._panel.panelParent?(this.removePanel(),this.panel(i,t,a,o,l)):(Yq(this),this.panel(i,this._panel.panelParent,a,o,l,!0))},_.A.prototype.panel=async function(e,t,n={},s=null,r=null,i=!1){if(this._panelStatus.hasPanel^i)return!1;if(!jq(e))return!1;const a=document.querySelector(t);if(!a)return!1;const o=je((n=Object.assign({headline:W.H.RC_panelTitle[this.L],description:W.H.RC_panelIntro[this.L],showNextButton:!1,nextHeadline:W.H.RC_panelTitleNext[this.L],nextDescription:W.H.RC_panelIntroNext[this.L],nextButton:W.H.RC_panelButton[this.L],color:"#3490de",debug:!1,i18n:!0,_demoActivateAll:!1},n)).color).darken(20).toString();document.documentElement.style.setProperty("--rc-panel-theme-color",n.color),document.documentElement.style.setProperty("--rc-panel-darken-color",o),document.documentElement.style.setProperty("--rc-panel-theme-color-semi",n.color+"66"),document.documentElement.style.setProperty("--rc-panel-darken-color-semi",o+"88");const l=document.createElement("div");l.className=l.id="rc-panel",this.LD===this._CONST.RTL?l.className+=" rc-lang-rtl":l.className+=" rc-lang-ltr",n.i18n&&(l.innerHTML+='
          '),l.innerHTML+=`

          ${n.headline}

          `,l.innerHTML+=`

          ${n.description}

          `,l.innerHTML+='
          ',i?a.replaceChild(l,this._panel.panel):a.appendChild(l);const u=l.querySelector("#rc-panel-steps"),c=new ResizeObserver((()=>{Hq(u,l.offsetWidth,this.LD)}));if(c.observe(l),Hq(u,l.offsetWidth,this.LD),0===e.length)u.className+=" rc-panel-no-steps";else for(const t in e){const s=Gq(this,t,e[t],n);u.appendChild(s)}(n.showNextButton||n._demoActivateAll)&&u.appendChild(qq(e.length,n));Kq(this,{index:0,finished:[]},e,n,s),this._panel.panel=l,this._panel.panelObserver=c,this._panel.panelTasks=e,this._panel.panelParent=t;const h={...n};return n.headline===W.H.RC_panelTitle[this.L]&&delete h.headline,n.description===W.H.RC_panelIntro[this.L]&&delete h.description,n.nextHeadline===W.H.RC_panelTitleNext[this.L]&&delete h.nextHeadline,n.nextDescription===W.H.RC_panelIntroNext[this.L]&&delete h.nextDescription,n.nextButton===W.H.RC_panelButton[this.L]&&delete h.nextButton,this._panel.panelOptions=h,this._panel.panelCallback=s,this._panel.panelResolve=r,this._panelStatus.hasPanel=!0,this._panelStatus.panelFinished=!1,n.i18n&&Qq(this,document.querySelector("#rc-panel-language-parent"),o),n.debug&&(0,Aq.K)(this,l,e,s),null===r&&(r=!0),new Promise((e=>{const t=setInterval((()=>{this._panelStatus.panelFinished&&(clearInterval(t),e(r))}),100);this._panelStatus.panelResolveIntervals.push(t)}))};const Vq={screenSize:{use:1,name:W.H.RC_screenSize["en-US"],phraseHandle:"RC_screenSize"},measureDistance:{use:1,name:W.H.RC_viewingDistance["en-US"],phraseHandle:"RC_viewingDistance"},trackDistance:{use:2,name:W.H.RC_distanceTracking["en-US"],phraseHandle:"RC_distanceTracking"},trackGaze:{use:2,name:W.H.RC_gazeTracking["en-US"],phraseHandle:"RC_gazeTracking"},performance:{use:1,name:W.H.RC_performance["en-US"],phraseHandle:"RC_performance"}},Wq=Object.keys(Vq),jq=e=>{if(!Array.isArray(e))return!1;for(const t of e){if(!("object"!=typeof t||null!==t&&Wq.includes(t.name)))return!1;if("string"==typeof t&&!Wq.includes(t))return!1}return!0},Gq=(e,t,n,s)=>{let r,i;switch(Vq[Xq(n)].use){case 0:case 1:default:r="",i="";break;case 2:r=kq(),i=W.H.RC_panelUsesWebcam[e.L];break;case 3:r=kq()+_q(),i=W.H.RC_panelUsesWebcamPhone[e.L]}const a=document.createElement("button");return a.className="rc-panel-step rc-panel-step-todo"+(s._demoActivateAll?" rc-panel-step-active":" rc-panel-step-inactive"),a.dataset.index=t,a.innerHTML=(r.length?`

          ${r}

          `:"")+`

          ${Number(t)+1}  ${W.H[Vq[Xq(n)].phraseHandle][e.L]}

          `+(r.length?`

          ${r} ${i}

          `:""),a},qq=(e,t)=>{const n=document.createElement("button");return n.className="rc-panel-step rc-panel-next-button rc-panel-step-inactive",n.dataset.index=e,n.innerHTML=`

          ${t.nextButton}

          `,n},Hq=(e,t,n)=>{t<640?(e.classList.add("rc-panel-steps-s"),e.classList.remove("rc-panel-steps-l"),e.childNodes.forEach((e=>{e.classList.add(`rc-lang-${n.toLowerCase()}`)}))):(e.classList.add("rc-panel-steps-l"),e.classList.remove("rc-panel-steps-s"),e.childNodes.forEach((e=>{e.classList.remove("rc-lang-ltr"),e.classList.remove("rc-lang-rtl")})))},Kq=(e,t,n,s,r)=>{document.querySelectorAll(".rc-panel-step").forEach(((i,a)=>{const o=Number(i.dataset.index);if(s._demoActivateAll)i.onclick=()=>{e[Xq(n[a])](...Zq(n[a])),$q(a),t.finished.push(Xq(n[a]));for(const e of n)if(!t.finished.includes(Xq(e)))return;const s=document.querySelector(".rc-panel-next-button");s.classList.replace("rc-panel-step-inactive","rc-panel-step-active"),s.onclick=()=>{e._panelStatus.panelFinished=!0,(0,E.nB)(r,{timestamp:performance.now()})}};else if(o===t.index)if(i.classList.replace("rc-panel-step-inactive","rc-panel-step-active"),i.focus(),o!==n.length)o!==n.length-1||s.showNextButton?i.onclick=()=>{e[Xq(n[t.index])](...Zq(n[t.index],(()=>{$q(t.index),t.index++,Kq(e,t,n,s,r)})))}:i.onclick=()=>{e[Xq(n[t.index])](...Zq(n[t.index],(()=>{$q(t.index)}),r,(()=>{e._panelStatus.panelFinished=!0})))};else if(o===n.length&&s.showNextButton){const{headline:t,nextHeadline:n,description:a,nextDescription:o}=s;t!==n&&(document.querySelector("#rc-panel-title").innerHTML=n),a!==o&&(document.querySelector("#rc-panel-description").innerHTML=o),i.onclick=()=>{e._panelStatus.panelFinished=!0,(0,E.nB)(r,{timestamp:performance.now()})}}}))},$q=e=>{document.querySelectorAll(".rc-panel-step").forEach((t=>{Number(t.dataset.index)===e&&(t.classList.replace("rc-panel-step-todo","rc-panel-step-finished"),t.classList.replace("rc-panel-step-active","rc-panel-step-inactive"))}))},Xq=e=>"string"==typeof e?e:e.name,Zq=(e,t,n=null,s=null)=>{"string"==typeof e&&(e={name:e});const r=()=>{(0,E.nB)(t),(0,E.nB)(n,{timestamp:performance.now()}),(0,E.nB)(s)};return["screenSize","measureDistance","performance"].includes(e.name)?[e.options||{},t=>{(0,E.nB)(e.callback,t),r()}]:"trackGaze"===e.name?[e.options||{},t=>{(0,E.nB)(e.callbackOnCalibrationEnd,t),r()},e.callbackTrack||null]:"trackDistance"===e.name?[e.options||{},t=>{(0,E.nB)(e.callbackStatic,t),r()},e.callbackTrack||null]:void 0},Yq=e=>{e._panelStatus.panelResolveIntervals.forEach((e=>clearInterval(e))),e._panelStatus.panelResolveIntervals=[]},Qq=(e,t,n)=>{let s=`",t.innerHTML=s,document.querySelector("#rc-panel-lang-picker").onchange=()=>{e.newLanguage(document.querySelector("#rc-panel-lang-picker").value),e.resetPanel()}};_.A.prototype.backgroundColor=function(e=null){if(!this.checkInitialized())return null;null!==e&&/^#([0-9A-F]{3}){1,2}$/i.test(e)?this._params.backgroundColor=e:this._params.backgroundColor="#eee";const t=document.querySelector("#calibration-background");return t&&(t.style.background=this.params.backgroundColor),this.params.backgroundColor},_.A.prototype.videoOpacity=function(e=null){if(!this.checkInitialized())return null;null===e||Number(e)!==e||Number(e)>1||Number(e)<0?this._params.videoOpacity=.8:this._params.videoOpacity=e;const t=document.querySelector("#webgazerVideoContainer");return t&&(t.style.opacity=this.params.videoOpacity),this.params.videoOpacity},_.A.prototype.showCancelButton=function(e=!0){return this.checkInitialized()?(this._params.showCancelButton=!!e,this.params.showCancelButton):null};var Jq=__webpack_require__(9725),eH={};eH.styleTagTransform=Lq(),eH.setAttributes=Mq(),eH.insert=Oq().bind(null,"head"),eH.domAPI=Nq(),eH.insertStyleElement=Fq();Iq()(Jq.A,eH);Jq.A&&Jq.A.locals&&Jq.A.locals;var tH=__webpack_require__(5151),nH={};nH.styleTagTransform=Lq(),nH.setAttributes=Mq(),nH.insert=Oq().bind(null,"head"),nH.domAPI=Nq(),nH.insertStyleElement=Fq();Iq()(tH.A,nH);tH.A&&tH.A.locals&&tH.A.locals;var sH=__webpack_require__(2945),rH={};rH.styleTagTransform=Lq(),rH.setAttributes=Mq(),rH.insert=Oq().bind(null,"head"),rH.domAPI=Nq(),rH.insertStyleElement=Fq();Iq()(sH.A,rH);sH.A&&sH.A.locals&&sH.A.locals;var iH=__webpack_require__(9057),aH={};aH.styleTagTransform=Lq(),aH.setAttributes=Mq(),aH.insert=Oq().bind(null,"head"),aH.domAPI=Nq(),aH.insertStyleElement=Fq();Iq()(iH.A,aH);iH.A&&iH.A.locals&&iH.A.locals;var oH=__webpack_require__(4889),lH={};lH.styleTagTransform=Lq(),lH.setAttributes=Mq(),lH.insert=Oq().bind(null,"head"),lH.domAPI=Nq(),lH.insertStyleElement=Fq();Iq()(oH.A,lH);oH.A&&oH.A.locals&&oH.A.locals;var uH=__webpack_require__(2636),cH={};cH.styleTagTransform=Lq(),cH.setAttributes=Mq(),cH.insert=Oq().bind(null,"head"),cH.domAPI=Nq(),cH.insertStyleElement=Fq();Iq()(uH.A,cH);uH.A&&uH.A.locals&&uH.A.locals;var hH=__webpack_require__(2921),dH={};dH.styleTagTransform=Lq(),dH.setAttributes=Mq(),dH.insert=Oq().bind(null,"head"),dH.domAPI=Nq(),dH.insertStyleElement=Fq();Iq()(hH.A,dH);hH.A&&hH.A.locals&&hH.A.locals;var pH=__webpack_require__(7271),fH={};fH.styleTagTransform=Lq(),fH.setAttributes=Mq(),fH.insert=Oq().bind(null,"head"),fH.domAPI=Nq(),fH.insertStyleElement=Fq();Iq()(pH.A,fH);pH.A&&pH.A.locals&&pH.A.locals;var mH=__webpack_require__(2551),gH={};gH.styleTagTransform=Lq(),gH.setAttributes=Mq(),gH.insert=Oq().bind(null,"head"),gH.domAPI=Nq(),gH.insertStyleElement=Fq();Iq()(mH.A,gH);mH.A&&mH.A.locals&&mH.A.locals;var yH=__webpack_require__(8470),bH={};bH.styleTagTransform=Lq(),bH.setAttributes=Mq(),bH.insert=Oq().bind(null,"head"),bH.domAPI=Nq(),bH.insertStyleElement=Fq();Iq()(yH.A,bH);yH.A&&yH.A.locals&&yH.A.locals;var wH=__webpack_require__(2535),vH={};vH.styleTagTransform=Lq(),vH.setAttributes=Mq(),vH.insert=Oq().bind(null,"head"),vH.domAPI=Nq(),vH.insertStyleElement=Fq();Iq()(wH.A,vH);wH.A&&wH.A.locals&&wH.A.locals;var xH=__webpack_require__(663),AH={};AH.styleTagTransform=Lq(),AH.setAttributes=Mq(),AH.insert=Oq().bind(null,"head"),AH.domAPI=Nq(),AH.insertStyleElement=Fq();Iq()(xH.A,AH);xH.A&&xH.A.locals&&xH.A.locals;var CH=__webpack_require__(5319),kH={};kH.styleTagTransform=Lq(),kH.setAttributes=Mq(),kH.insert=Oq().bind(null,"head"),kH.domAPI=Nq(),kH.insertStyleElement=Fq();Iq()(CH.A,kH);CH.A&&CH.A.locals&&CH.A.locals;var SH=__webpack_require__(290),_H={};_H.styleTagTransform=Lq(),_H.setAttributes=Mq(),_H.insert=Oq().bind(null,"head"),_H.domAPI=Nq(),_H.insertStyleElement=Fq();Iq()(SH.A,_H);SH.A&&SH.A.locals&&SH.A.locals;const EH=new _.A;EH.gazeTracker=new hq(EH);const IH=EH})(),__webpack_exports__=__webpack_exports__.default,__webpack_exports__})())); //# sourceMappingURL=RemoteCalibrator.min.js.map \ No newline at end of file diff --git a/lib/RemoteCalibrator.min.js.map b/lib/RemoteCalibrator.min.js.map index 911eddd..97847d8 100644 --- a/lib/RemoteCalibrator.min.js.map +++ b/lib/RemoteCalibrator.min.js.map @@ -1 +1 @@ -{"version":3,"file":"RemoteCalibrator.min.js","mappings":";CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAA0B,iBAAID,IAE9BD,EAAuB,iBAAIC,GAC5B,CATD,CASGK,MAAM,IACT,yCCLAC,OAAOC,iBACED,OAAOE,uBACZF,OAAOG,6BACPH,OAAOI,0BACPJ,OAAOK,wBACPL,OAAOM,yBACP,SAA6CC,EAAmCC,GAC9E,OAAOR,OAAOS,WAAWF,EAAU,IAAK,GAC1C,EAMJP,OAAOU,uBACEV,OAAOW,mCACZX,OAAOY,mCACPZ,OAAOa,gCACPb,OAAOc,8BACPd,OAAOe,+BACPf,OAAOgB,gFCvBJ,MAAMC,EAAaA,CACxBC,EACAC,GACEC,KAAIC,SAAQC,UACdC,EACAC,GAAsB,KAEtB,MAAMC,EAAUC,SAASC,cAAc,OAKvC,IAAIC,EAAUC,EAAcC,EAkB5B,GAtBAL,EAAQM,UACN,cAAgBP,EAAsB,uBAAyB,IACjEC,EAAQO,GAAK,aAITZ,IACFQ,EAAWF,SAASC,cAAc,UAClCC,EAASG,UAAY,yBACrBH,EAASK,QAAUb,EACnBQ,EAASM,UAAYC,EAAAA,EAAQC,MAAMlB,GACnCO,EAAQY,YAAYT,IAGlBP,GAAUE,IACZM,EAAeH,SAASC,cAAc,UACtCE,EAAaE,UAAY,6BACzBF,EAAaI,QAAUZ,EACvBQ,EAAaK,UAAYC,EAAAA,EAAQG,UAAUpB,GAC3CO,EAAQY,YAAYR,IAGlBP,EAAQ,CACV,MAAM,SAAEf,EAAQ,QAAEgC,GAAYjB,EAE9BQ,EAAeJ,SAASC,cAAc,UACtCG,EAAaC,UAAY,6BACzBD,EAAaG,QAAU1B,EACvBuB,EAAaI,UAAYK,EACzBd,EAAQY,YAAYP,EACtB,CAIA,OAFAX,EAAOkB,YAAYZ,GAEZ,CAACA,EAASG,EAAUC,EAAcC,EAAa,EAG3CU,EAAgBrB,IAC3BA,EAAOsB,cAAc,eAAeC,QAAQ,yVCrCvC,MAAMC,UAAYC,MACvBC,GACAC,cAAgB,KAChBC,iBAAmB,KACnBC,mBAAqB,QAErB,MAAMC,KAAOJ,GAAGK,UAAUC,MAAMF,KAC1BG,YAAcH,OAASJ,GAAGQ,OAAOC,MAAMC,GAAK,KAAO,KACnDC,eAAiBP,OAASJ,GAAGQ,OAAOC,MAAMG,KAG1CC,SAAW,4DAGfF,eACI,6MAA6MJ,qBAC7M,oDAAoDA,yCAMpDO,YAAcd,GAAGe,WAAWnB,cAAc,4BAChDkB,YAAYzB,WAAawB,SACzB,MAAMG,YAAcF,YAAYlB,cAAc,YACxCqB,iBAAmBH,YAAYlB,cAAc,kBAC7CsB,yBAA2BJ,YAAYlB,cAC3C,4BAEIuB,0BAA4BL,YAAYlB,cAC5C,6BAKFe,eAAiBO,yBAAyBE,QAAUH,iBAAiBG,QAErE,MAAMC,cAAejD,EAAAA,sCAAAA,GACnB4B,GAAGsB,EACHN,YACA,CACEzC,GAAIA,OAEJE,OAAQ0B,yBAA0CoB,IAEpD,GACA,GAEIxC,SAAWsC,aAAa,GACxBpC,aAAeoC,aAAa,GAGlCtC,SAASyC,UAAW,EAGpB,MAAMC,QAAUC,IACdA,EAAIC,UAAU9B,OAAO,kBACrBd,SAASyC,UAAW,CAAK,EAErBI,SAAWF,IACVG,sBAAsBH,EAAIpB,MAAMwB,OAAO,KAI1CJ,EAAIC,UAAUI,IAAI,kBAClBhD,SAASyC,UAAW,GAHpBE,EAAIpB,MAAQoB,EAAIpB,MAAM0B,UAAU,EAAGN,EAAIpB,MAAM2B,OAAS,EAIxD,EAEIC,gBAAkBA,CAACR,EAAKS,KAC5BT,EAAIU,QAAU,KACRD,EAAmBT,EAAIpB,OAAQmB,QAAQC,GACtCE,SAASF,EAAI,CACnB,EAEGW,uBAAyBA,KAC7B,IAAIC,GAAU,EASd,OARKC,kBAAkBrB,yBAAyBZ,OAGzCmB,QAAQP,2BAFbU,SAASV,0BACToB,GAAU,GAEPE,mBAAmBrB,0BAA0Bb,OAG3CmB,QAAQN,4BAFbS,SAAST,2BACTmB,GAAU,GAELA,CAAO,EAchB,OAXK3B,gBAEHO,yBAAyBkB,QAAUC,uBACnClB,0BAA0BiB,QAAUC,wBAHjBH,gBAAgBjB,iBAAkBwB,aAQvDC,EAAAA,oCAAAA,IAAgBzC,eAGT,IAAI0C,SAAQC,UACjB,MAAMC,UAAYA,KAChBC,oBAAoB9B,YAAad,mBACjC6C,EAAAA,wCAAAA,GAAWC,kBACXJ,QAAQ,KAAK,EAETK,UAAYA,KAChB,IAAIC,OAAQ,EACRC,eAAgBC,WAElBzC,gBACA4B,kBAAkBrB,yBAAyBZ,QAC3CkC,mBAAmBrB,0BAA0Bb,QAG7C4C,OAAQ,EACRC,eACEE,OAAOC,SAASpC,yBAAyBZ,OACzCiD,KAAKpC,0BAA0Bb,OACjC8C,WACElC,yBAAyBZ,MAAQ,IAAMa,0BAA0Bb,QACzDK,gBAAkB8B,WAAWxB,iBAAiBX,SAExD4C,OAAQ,EACRC,eACEE,OAAOpC,iBAAiBX,QACxB+C,OAAOpC,iBAAiBX,MAAMkD,QAAQ,IAAK,MAC7CJ,WAAanC,iBAAiBX,OAG5B4C,QACFJ,oBAAoB9B,YAAad,mBACjC6C,EAAAA,wCAAAA,GAAWC,kBACXJ,QAAQ,CACNtC,MAAO,CACLmD,UAAWN,eACXO,MAAON,WACPhD,MAEFuD,UAAWC,YAAYC,QAE3B,EAIF9E,SAASK,QAAU6D,UAEnBhE,aAAaG,QAAUyD,UAGvB,MAAMG,kBAAmBc,EAAAA,wCAAAA,GAAS,CAChCC,MAAOd,UACPe,OAAQnB,WACR,GACF,EAGEC,oBAAsBA,CAAC9B,EAAad,MAExCP,EAAAA,sCAAAA,GAAcqB,GACd,IAAK,MAAMiD,KAASjD,EAAYkD,SAAUD,EAAMpE,SAChDmB,EAAYnB,UAEZ6C,EAAAA,oCAAAA,IAAgBxC,EAAiB,EAK7BuC,WAAa0B,GAEfA,EAAKlC,OAAS,IACbkC,EAAKC,SAAS,QACbC,MAAMF,KAAUE,MAAMF,EAAKX,QAAQ,IAAK,OAIxCjB,kBAAoB4B,KACnB1B,WAAW0B,KACTd,OAAOC,SAASa,KAAUd,OAAOc,IAASd,OAAOc,GAAQ,GAG5D3B,mBAAqB2B,OACzB,GAAa,MAATA,KAAc,OAAO,EACzB,IAAKA,KAAKC,SAAS,MAAQD,KAAKG,MAAM,OAAOrC,OAAS,EAAG,OAAO,EAChE,MAAMsC,QAAUJ,KAAKK,MAAM,KAC3B,OACEjC,kBAAkBgC,QAAQ,KAC1BhC,kBAAkBgC,QAAQ,MAC1BE,EAAAA,oCAAAA,IAASF,QAAQ,KACjBhB,KAAKY,MAAQ,CAAC,EAIZtC,sBAAwB6C,GACrB,QAAQC,KAAKD,IAAS,CAAC,IAAK,IAAK,KAAKN,SAASM,uECrMjD,SAASZ,EAASc,EAAMC,EAAY,WACzC,MAAMC,EAAmBC,IACnBA,EAAEC,OAAOJ,IACXG,EAAEE,kBACFvC,EAAAA,EAAAA,IAAgBkC,EAAKG,EAAEC,KAAMD,GAC/B,EAIF,OADAlG,SAASqG,KAAKC,iBAAiBN,EAAWC,GACnCA,CACT,CAEO,SAAS/B,EAAWqC,EAAOP,EAAY,WAC5ChG,SAASqG,KAAKG,oBAAoBR,EAAWO,EAC/C,sEClBO,SAASE,EAAiBC,GAC/B,MAAMC,EAAeC,OAAOb,KAAKtF,EAAAA,EAAQoG,uBACzC,GAAIF,EAAapB,SAASmB,GAAO,OAAOI,EAAkBJ,GAE1D,MAAMK,EAAY,GAClBJ,EAAaK,SAAQC,IACnBF,EAAUG,KAAKD,EAAEtB,MAAM,KAAK,GAAG,IAGjC,MAAMwB,EAAYT,EAAKf,MAAM,KAAK,GAAGyB,cAErC,OAAIL,EAAUxB,SAAS4B,GACdL,EAAkBH,EAAaI,EAAUM,QAAQF,KAEnDL,EAAkB,QAC3B,CAEA,SAASA,EAAkBJ,GACzB,MAAO,CACLjF,MAAO,CACL6F,SAAUZ,EACVa,oBAAqB9G,EAAAA,EAAQ+G,uBAAuBd,GACpDe,mBAAoBhH,EAAAA,EAAQoG,sBAAsBH,GAClDgB,kBAAmBjH,EAAAA,EAAQkH,qBAAqBjB,GAChDkB,qBAAsBnH,EAAAA,EAAQoH,gBAAgBnB,IAEhD5B,UAAWC,YAAYC,MAE3B,CAEO,SAAS8C,EAAiBrF,GAC/B,MAA0C,MAAnChC,EAAAA,EAAQsH,oBAAoBtF,GAAa,IAAM,EACxD,+CChCA,MAAMuF,EAAqB,kBAARC,EAEnB,IAAIC,EAASC,EACb,IAAKH,EAAY,CACf,MAAMI,EAAOC,EAAQ,MACrBH,EAAUE,EAAKE,MACfH,EAAWC,EAAKG,MAClB,CAEA,MAAMC,EACJC,oBAAAA,GAAwB,EAG1B,MAAMC,EAAgBV,EAClB,IAAIQ,EACJ,IAAIN,EAAQ,CACVS,WAAY,CACVC,KAAM,QAERC,SAAU,CAAEC,OAAQ,KAAOC,MAAO,KAAOC,QAAS,EAAGC,QAAS,QAC7DC,QAAQ,IAAIf,GAAU,IAAIgB,iBAE3BC,EAAoBpB,EACtB,IAAIQ,EACJ,IAAIN,EAAQ,CACVS,WAAY,CACVC,KAAM,UAEPM,QAAQ,IAAIf,GAAU,GAAGgB,iBAEnBE,EAAgBA,CAACC,EAAQ,KACpC,OAAQA,GACN,KAAK,EAkBL,QAEE,YADAZ,EAAcD,qBAAqB,IAAM,KAf3C,KAAK,EAGH,YADAC,EAAcD,qBAAqB,IAAK,IAG1C,KAAK,EAGH,YADAC,EAAcD,qBAAqB,IAAK,IAG1C,KAAK,EAEH,YADAW,EAAkBX,qBAAqB,IAAK,IAMhD,+BCcK,SAAS5E,EAAgB0F,KAAMC,GACpC,GAAID,GAAkB,mBAANA,EACd,OAAIC,EAAEpG,OAAemG,KAAKC,GACdD,GAChB,4KAtEC,WAGC,IAFA,IAAIE,EAAW,EACXC,EAAU,CAAC,KAAM,MAAO,SAAU,KAC7BC,EAAI,EAAGA,EAAID,EAAQtG,SAAW9E,OAAOE,wBAAyBmL,EACrErL,OAAOE,sBAAwBF,OAAOoL,EAAQC,GAAK,yBACnDrL,OAAOsL,qBACLtL,OAAOoL,EAAQC,GAAK,yBACpBrL,OAAOoL,EAAQC,GAAK,+BAGnBrL,OAAOE,wBAEVF,OAAOE,sBAAwB,SAAUK,EAAUC,GACjD,IAAI+K,EAAW9E,YAAYC,MACvB8E,EAAaC,KAAKC,IAAI,EAAG,IAAMH,EAAWJ,IAC1CnJ,EAAKhC,OAAOS,YAAW,WACzBF,EAASgL,EAAWC,EACtB,GAAGA,GAEH,OADAL,EAAWI,EAAWC,EACfxJ,CACT,GAEGhC,OAAOsL,uBACVtL,OAAOsL,qBAAuB,SAAUtJ,GACtChB,aAAagB,EACf,GAIGsG,OAAOqD,QACVrD,OAAOsD,eAAetD,OAAQ,SAAU,CACtCuD,YAAY,EACZC,cAAc,EACdC,UAAU,EACV5I,MAAO,SAAU6I,GACf,GAAIA,QACF,MAAM,IAAIC,UAIZ,IADA,IAAIC,EAAK5D,OAAO0D,GACPG,EAAI,EAAGA,EAAIC,UAAUtH,OAAQqH,IAAK,CACzC,IAAIE,EAAaD,UAAUD,GAC3B,GAAIE,QAAJ,CAGAA,EAAa/D,OAAO+D,GAGpB,IADA,IAAIC,EAAYhE,OAAOb,KAAKa,OAAO+D,IAE7BE,EAAY,EAAGC,EAAMF,EAAUxH,OACnCyH,EAAYC,EACZD,IACA,CACA,IAAIE,EAAUH,EAAUC,GACpBG,EAAOpE,OAAOqE,yBAAyBN,EAAYI,QAC1CrI,IAATsI,GAAsBA,EAAKb,aAC7BK,EAAGO,GAAWJ,EAAWI,GAE7B,CAdA,CAeF,CACA,OAAOP,CACT,GAGL,CAhEA,GAwEM,MAAMU,EAAYA,OAGlB,SAASC,EAAMC,GACpB,OAAO,IAAItH,SAAQC,GAAWhF,WAAWgF,EAASqH,IACpD,CAKO,SAASC,IACd,GACErL,SAASsL,mBACTtL,SAASuL,yBACTvL,SAASwL,sBACTxL,SAASyL,oBACT,CACA,MAAM3M,EAAUkB,SAAS0L,gBACzB,OAAI5M,EAAQ6M,mBACV7M,EAAQ6M,qBACD,GACE7M,EAAQ8M,sBACjB9M,EAAQ8M,wBACD,GACE9M,EAAQ+M,yBACjB/M,EAAQ+M,2BACD,KACE/M,EAAQgN,sBACjBhN,EAAQgN,uBACD,EAIX,CACE,OAAO,CAEX,CAEO,SAASC,IACd,OACEhC,KAAKiC,IAAI1N,OAAO2N,YAAcC,OAAOC,QAAU,GAC/CpC,KAAKiC,IAAI1N,OAAO8N,WAAaF,OAAOG,OAAS,GAC7C/N,OAAOgO,QAAU,GACjBhO,OAAOiO,QAAU,CAErB,CAIO,SAASC,EACdC,EACAC,EAAc,KACdC,GAAa,EACbC,EAAmB,IAEnB,MACE,sCACED,EAAa,sCAAwC,WAC9CF,UACRC,EACG,oCACEE,EAAiBxJ,OAAS,IAAMwJ,EAAmB,OAChDF,cACL,GAER,CAIO,SAASG,EAAUrD,EAAGsD,EAAIC,GAC/B,OAAOvD,EAAIsD,EAAKA,EAAKtD,EAAIuD,EAAKA,EAAKvD,CACrC,CAEO,SAASwD,EAAMC,EAAGC,EAAIH,EAAII,EAAIC,GACnC,OAAOD,EAA8B,GAAVF,EAAIC,IAAcH,EAAKG,IAArCE,EAAKD,EACpB,CAEO,SAASE,EAAOC,EAAIC,EAAIC,EAAIC,GACjC,OAAO1D,KAAK2D,KAAK3D,KAAK4D,IAAIL,EAAKE,EAAI,GAAKzD,KAAK4D,IAAIJ,EAAKE,EAAI,GAC5D,CAGO,SAAS7H,EAASqH,GACvB,OAAOA,KAAOA,EAAKA,EAAI,EACzB,CAGO,SAASW,EAAQC,GACtB,IAAK,IAAIpD,EAAIoD,EAAMzK,OAAS,EAAGqH,EAAI,EAAGA,IAAK,CACzC,MAAMqD,EAAI/D,KAAKgE,MAAMhE,KAAKiE,UAAYvD,EAAI,KACxCoD,EAAMpD,GAAIoD,EAAMC,IAAM,CAACD,EAAMC,GAAID,EAAMpD,GAC3C,CACA,OAAOoD,CACT,CAEO,SAASI,EAAcC,EAAGC,GAC/B,MAAMR,EAAM5D,KAAK4D,IAAI,GAAIQ,GACzB,OAAOpE,KAAKqE,MAAMF,EAAIP,GAAOA,CAC/B,CAGO,MAAMU,EAASC,IACpB,MAAMC,EAAMxE,KAAKgE,MAAMO,EAAIlL,OAAS,GAClCoL,EAAM,IAAIF,GAAKG,MAAK,CAACjF,EAAGkF,IAAMlF,EAAIkF,IACpC,OAAOJ,EAAIlL,OAAS,GAAM,EAAIoL,EAAID,IAAQC,EAAID,EAAM,GAAKC,EAAID,IAAQ,CAAC,EAI3DI,EAAUd,GAASA,EAAMe,QAAO,CAACpF,EAAGkF,IAAMlF,EAAIkF,IAAKb,EAAMzK,OAG/D,SAASyL,EAASC,EAAK9E,EAAK+E,EAAO,GACxC,IAAIC,EAAI,EACN/B,EAAI,EACN,KAAa,IAAN+B,GAASA,EAAIjF,KAAKiE,SACzB,KAAa,IAANf,GAASA,EAAIlD,KAAKiE,SACzB,IAAIQ,EAAMzE,KAAK2D,MAAM,EAAM3D,KAAKkF,IAAID,IAAMjF,KAAKmF,IAAI,EAAMnF,KAAKoF,GAAKlC,GASnE,OAPAuB,EAAMA,EAAM,GAAO,GACfA,EAAM,GAAKA,EAAM,EAAGA,EAAMK,EAASC,EAAK9E,EAAK+E,IAE/CP,EAAMzE,KAAK4D,IAAIa,EAAKO,GACpBP,GAAOxE,EAAM8E,EACbN,GAAOM,GAEFN,CACT,CAEO,MAAMY,EAAQC,GACZC,KAAKC,MAAMD,KAAKE,UAAUH,IAQ5B,SAASI,IACV,kBAAmBzP,UAAUA,SAAS0P,cAAcC,MAC1D,CAIO,MAAMC,EAA0B1J,IACrC,GAAe,eAAXA,EAAE0C,MAAoC,cAAX1C,EAAE0C,KAAsB,CACrD,MAAMiH,EAAQ3J,EAAE4J,QAAQ,GACxB,MAAO,CAAEnG,EAAGkG,EAAME,QAASC,EAAGH,EAAMI,QACtC,CAAO,MAAO,CAAEtG,EAAGzD,EAAE6J,QAASC,EAAG9J,EAAE+J,QAAS,iGC5N9C,MAAMC,EAAa,CACjB,OACA,QACA,KACA,OACA,QACA,OACA,OACA,QACA,OACA,OACA,OACA,SACA,QACA,SACA,QACA,OACA,QACA,SACA,OACA,SACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QAGIC,EAAQ,CAEZ,MACA,OACA,OACA,MACA,MACA,OACA,MACA,OACA,SACA,OACA,QACA,OACA,MACA,OACA,QACA,OACA,QACA,MACA,MACA,MACA,OACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,OAEA,QACA,SACA,OACA,OACA,OACA,QACA,QACA,SACA,MACA,QACA,QACA,OACA,SACA,QACA,OACA,WACA,OACA,QACA,MACA,SAGIC,EAAS,CACb,OACA,SACA,OACA,SACA,OACA,OACA,QACA,OACA,SACA,MACA,SACA,MACA,SACA,OACA,QACA,QACA,QACA,QAQF,SAASC,EAAa7G,GACpB,OAAOA,EAAEO,KAAKgE,MAAMhE,KAAKiE,SAAWxE,EAAEpG,QACxC,CAOA,SAASkN,EAASC,GAChB,OAAOA,EAAEC,OAAO,GAAGC,cAAgBF,EAAEtN,MAAM,EAC7C,CAQe,SAASyN,IACtB,MAAMC,EAAa,OAAQ,IAAIC,MAAOC,kBAAkBC,WACxD,OACER,EAASD,EAAaH,IACtBI,EAASD,EAAaD,IACtBE,EAASD,EAAaF,IACtBQ,EAAWxN,UAAUwN,EAAWvN,OAAS,EAE7C,4CC9IA,MCqBa6E,EAAM8I,aAEnB,MAAMC,EACJC,WAAAA,GACE3S,OAAO4S,QAAQjC,IACb,kCAAkCkC,KAAKC,QAAQ3P,UAC/C,UAAU0P,KAAKxP,OAAO0P,MAAMC,UAG9BH,KAAKI,cAAe,EAEpBJ,KAAKK,IAAM,KAEXL,KAAKM,MAAQ,KACbN,KAAKO,UAAY,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lB,GACX,GAEF,MAEF,IAAK,gBACH+kB,EAAW90B,WAAam1B,oBACtBN,EACA,oBACAE,EAAY9zB,MAAMuV,kBAClB,SACAye,EAAWvnB,GAEbonB,EAAW90B,WAAam1B,oBACtBN,EACA,OACAE,EAAY9zB,MAAMyV,KAClB,SACAue,EAAWvnB,GAEbonB,EAAW90B,WAAam1B,oBACtBN,EACA,gBACAE,EAAY9zB,MAAMwV,YAAYtN,EAC9B,WACA8rB,EAAWvnB,GAEbonB,EAAW90B,WAAam1B,oBACtBN,EACA,gBACAE,EAAY9zB,MAAMwV,YAAYjH,EAC9B,WACAylB,EAAWvnB,GAEbonB,EAAW90B,WAAam1B,oBACtBN,EACA,YACAE,EAAY9zB,MAAMo0B,UAClB,aACAJ,EAAWvnB,GAEbonB,EAAW90B,WAAam1B,oBACtBN,EACA,SACAE,EAAYK,OACZ,UACAH,EAAWllB,GACX,GAEF,MAEF,IAAK,YACH+kB,EAAW90B,WAAam1B,oBACtBN,EACA,IACAE,EAAY9zB,MAAMkI,EAClB,WACA8rB,EAAWvnB,GAEbonB,EAAW90B,WAAam1B,oBACtBN,EACA,IACAE,EAAY9zB,MAAMuO,EAClB,WACAylB,EAAWvnB,GAEbonB,EAAW90B,WAAam1B,oBACtBN,EACA,YACAE,EAAY9zB,MAAMo0B,UAClB,mBACAJ,EAAWvnB,GAEb,MAEF,IAAK,cACHonB,EAAW90B,WAAam1B,oBACtBN,EACA,sBACAE,EAAY9zB,MAAMwT,oBAClB,6BACAwgB,EAAWvnB,GAEbonB,EAAW90B,WAAam1B,oBACtBN,EACA,mBACAE,EAAY9zB,MAAMyT,iBAClB,0BACAugB,EAAWvnB,GAEbonB,EAAW90B,WAAam1B,oBACtBN,EACA,WACAE,EAAY9zB,MAAM0T,SAClB,kBACAsgB,EAAWvnB,GAEbonB,EAAW90B,WAAam1B,oBACtBN,EACA,YACAE,EAAY9zB,MAAM2T,UAClB,mBACAqgB,EAAWvnB,GAQjBgnB,EAAoBv0B,YAAY20B,GAChCH,EAAiBjuB,KAAKmuB,EACxB,CACF,CAEA,MAAMS,EAAe91B,SAASC,cAAc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IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAClf,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IACnf,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACjf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IACrf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IACjf,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IACjf,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACjf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAChf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACjf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IACjf,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAClf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAChf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IACjf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAChf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACrf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAClf,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAClf,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAClf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KACjf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GACrf,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACjf,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACjf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IACpf,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IACjf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACrf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAClf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAClf,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAClf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAChf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAClf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACjf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,OAAOA,EAAE,sBAAqB,SAAStvB,G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ACAC,GACAI,GACAO,GACAQ,GACAO,GACAE,GACAxiB,GACAyiB,GACAvS,GACAwS,GACAC,GACAC,GACAziB,GACA2iB,GACAE,GACAE,GACAE,GACAC,GACAE,GACAC,GACAE,GACAC,GACAM,GACAQ,GACAE,GACAC,GACAC,GACA,GACA,GACAG,GACAM,GACAG,GACAE,GACAC,GACAI,GACAQ,GACAhM,GACA0M,GACAC,GACAC,GACAC,GACAM,GACAC,GACAI,GACAG,GACAC,GACAE,GACAjnB,GACAonB,GACA+B,GACAmB,GACAqE,GACAG,GACApuB,GACA6Z,GACAwU,GACA9uB,GACAC,GACAgD,GACA8rB,GACA,GACAkD,GACA,GACAgB,GACAE,GACAM,GACAE,GACAK,GACAC,GACAG,GACAI,GACAr0B,GACAs0B,GACAC,GACAC,GACA9nB,GACAoY,GACA8P,GACAC,GACAoB,GACAU,GACAQ,GACAG,GACAC,GACAC,GACAG,GACAC,GACAE,GACAE,GACAE,GACAE,GACA6B,GACAQ,GACAE,GACArgB,GACArB,GACA2hB,GXhVsB,CACtBj6J,WAAYkP,GACZkB,YAAa,MACb8M,WAAY,IW+UZg9I,GACAI,GACAS,GACAC,GACAl2B,GACA64B,GACAC,GACAG,GACApY,IAEJ,IAAK,MAAM0Y,KAAgBD,GACvB5tJ,GAAe6tJ,GC/VnB,MAAMvxC,GAAW,CAAC,EACZwxC,GAAmB,CACrBj9S,OAAO,EACP+tG,WAAW,EACXmvM,oBAAoB,EACpBC,uBAAuB,EACvBlpN,OAAO,EACPmpN,SAAS,EACTC,8BAA8B,GAQ3B,SAASC,GAAgBC,EAAcC,GAC1C,KAAMD,KAAgB9xC,KAA6B,MAAhB+xC,EAAsB,CACrD,MAAMC,EAuCd,SAAkCF,EAAcC,GAC5C,GAAqB,IAAjBD,GAAuC,IAAjBA,EACtB,MAAM,IAAIpwT,MAAM,0DAEpB,MAAM69G,EAAyB,MAAhBwyM,EAlBnB,SAAsBD,GAGlB,GAAK,KAAMx6J,QAAQ,cAA2C,oBAApBn1C,iBACrB,IAAjB2vM,EAGC,IAAwB,oBAAb/8V,SACZ,OAAOA,SAASC,cA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GC,KAAM2rN,EAAa1wL,KAAM,EAAG+jI,MAAO,aAEpDyjM,EAAW,GAAK,CAClB9pT,OAAQ,CAAE/tE,EAAG43X,GACbzkM,UACAyd,MAAO,CAAEg1B,KAAM,CAACo2B,EAASxrH,MAE7BmnM,EAAUp6U,KAAKq6X,GACfjgD,EAAUp6U,KAAKs6X,GAEf,OADeF,EAAa3uT,EAAQwuT,EAAWK,EAAUzjM,EAAO2sD,EACnD,EAGXqb,EAAW,GAAQ,CAAEruL,OAAQ,CAAE/tE,EADjB23X,EAAa1S,EAAK,qBAAsBnkI,EAAYw4B,EAAav4B,IAC9B5tD,UAASyd,MAAO,CAAEhhK,MAAO47K,KAChF,IAAIv+K,EAASmvN,EACb,GAAmB,MAAfqI,EAAqB,CACrBkzE,EAAUp6U,KAAK6+P,GACf,MAAMja,EAAO,GAAoCsiB,GACjDx3N,EAAS,GAAU,CAAE8gC,OAAQ,CAAE/tE,EAAGitC,GAAUkmJ,UAASyd,MAAO,CAAEuxC,SAClE,CAEA,OADAw1F,EAAUt6U,SAAQwxB,GAAKskK,EAAQu+H,8BAA8B7iS,KACtDoe,CACX,GC+GM,GAAgB,CAClB,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA0/U,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA0C,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA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CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,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ByI,IAAIzI,EAAE,4BAA4B,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,OAAOA,EAAE,UAAU,iBAAkB,GAAEX,KAAKhE,I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","sources":["webpack://RemoteCalibrator/webpack/universalModuleDefinition","webpack://RemoteCalibrator/./src/WebGazer4RC/src/dom_util.mjs","webpack://RemoteCalibrator/./src/components/buttons.js","webpack://RemoteCalibrator/./src/components/checkInput.js","webpack://RemoteCalibrator/./src/components/keyBinder.js","webpack://RemoteCalibrator/./src/components/language.js","webpack://RemoteCalibrator/./src/components/sound.js","webpack://RemoteCalibrator/./src/components/utils.js","webpack://RemoteCalibrator/./src/components/randomPhrases.js","webpack://RemoteCalibrator/./src/loadPhrases.js","webpack://RemoteCalibrator/./src/core.js","webpack://RemoteCalibrator/./src/debug.js","webpack://RemoteCalibrator/./src/i18n.js","webpack://RemoteCalibrator/./src/panel/panelDebugControl.js","webpack://RemoteCalibrator/./node_modules/animate.css/source/_base.css","webpack://RemoteCalibrator/./node_modules/animate.css/source/_vars.css","webpack://RemoteCalibrator/./node_modules/animate.css/source/fading_entrances/fadeInUp.css","webpack://RemoteCalibrator/./node_modules/animate.css/source/fading_exits/fadeOutDown.css","webpack://RemoteCalibrator/./node_modules/sweetalert2/src/sweetalert2.scss","webpack://RemoteCalibrator/./src/css/buttons.scss","webpack://RemoteCalibrator/./src/css/check.scss","webpack://RemoteCalibrator/./src/css/distance.scss","webpack://RemoteCalibrator/./src/css/panel.scss","webpack://RemoteCalibrator/./src/css/screenSize.scss","webpack://RemoteCalibrator/./src/css/slider.scss","webpack://RemoteCalibrator/./src/css/video.scss","webpack://RemoteCalibrator/./src/css/gaze.css","webpack://RemoteCalibrator/./src/css/main.css","webpack://RemoteCalibrator/./src/css/swal.css","webpack://RemoteCalibrator/./node_modules/css-loader/dist/runtime/api.js","webpack://RemoteCalibrator/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://RemoteCalibrator/./node_modules/leader-line-new/leader-line.min.js","webpack://RemoteCalibrator/./node_modules/platform/platform.js","webpack://RemoteCalibrator/./node_modules/react-fast-compare/index.js","webpack://RemoteCalibrator/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://RemoteCalibrator/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://RemoteCalibrator/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://RemoteCalibrator/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://RemoteCalibrator/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://RemoteCalibrator/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://RemoteCalibrator/./src/media/arrow.svg","webpack://RemoteCalibrator/./src/media/card.svg","webpack://RemoteCalibrator/./src/media/photo-camera.svg","webpack://RemoteCalibrator/./src/media/smartphone.svg","webpack://RemoteCalibrator/./src/media/two-sided-horizontal.svg","webpack://RemoteCalibrator/./src/media/two-sided-vertical.svg","webpack://RemoteCalibrator/./src/media/usba.svg","webpack://RemoteCalibrator/./src/media/usbc.svg","webpack://RemoteCalibrator/./node_modules/sweetalert2/dist/sweetalert2.all.js","webpack://RemoteCalibrator/./node_modules/sweetalert2/dist/sweetalert2.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/version.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/functions/create-extended-exponential-ramp-to-value-automation-event.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/functions/create-extended-linear-ramp-to-value-automation-event.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/functions/create-set-value-automation-event.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/functions/create-set-value-curve-automation-event.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/functions/get-target-value-at-time.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/guards/exponential-ramp-to-value-automation-event.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/guards/linear-ramp-to-value-automation-event.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/guards/any-ramp-to-value-automation-event.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/guards/set-value-automation-event.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/guards/set-value-curve-automation-event.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/functions/get-value-of-automation-event-at-index-at-time.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/functions/get-end-time-and-value-of-previous-automation-event.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/guards/cancel-and-hold-automation-event.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/guards/cancel-scheduled-values-automation-event.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/functions/get-event-time.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/functions/get-exponential-ramp-value-at-time.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/functions/get-linear-ramp-value-at-time.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/functions/get-value-curve-value-at-time.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/functions/interpolate-value.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/guards/set-target-automation-event.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/classes/automation-event-list.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/functions/create-cancel-and-hold-automation-event.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/globals.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/is-constructible.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/split-import-statements.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/add-audio-worklet-module.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/get-value-for-key.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/pick-element-from-set.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/delete-passive-input-connection-to-audio-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/get-event-listeners-of-audio-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/set-internal-state-to-active.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/guards/audio-worklet-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/set-internal-state-to-passive.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/set-internal-state-to-passive-when-necessary.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/analyser-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/is-owned-by-context.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/test-audio-buffer-copy-channel-methods-out-of-bounds-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/index-size-error.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/wrap-audio-buffer-get-channel-data-method.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/audio-buffer-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/constants.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/is-active-audio-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/audio-buffer-source-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/get-audio-node-connections.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/get-audio-param-connections.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/deactivate-active-audio-node-input-connections.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/guards/audio-buffer-source-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/guards/biquad-filter-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/guards/constant-source-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/guards/gain-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/guards/oscillator-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/guards/stereo-panner-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/deactivate-audio-graph.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/is-valid-latency-hint.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/guards/audio-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/guards/audio-node-output-connection.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/insert-element-in-set.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/add-active-input-connection-to-audio-param.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/add-passive-input-connection-to-audio-param.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/guards/native-audio-node-faker.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/connect-native-audio-node-to-native-audio-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/delete-active-input-connection.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/delete-event-listeners-of-audio-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/delete-passive-input-connection-to-audio-param.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/disconnect-native-audio-node-from-native-audio-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/get-native-audio-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/get-native-audio-param.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/is-part-of-a-cycle.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/is-passive-audio-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/test-audio-node-disconnect-method-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/visit-each-audio-node-once.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/guards/native-audio-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/wrap-audio-node-disconnect-method.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/audio-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/delete-active-input-connection-to-audio-param.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/read-only-map.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/audio-worklet-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/copy-from-channel.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/copy-to-channel.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/create-nested-arrays.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/audio-worklet-node-renderer-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/get-audio-worklet-processor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/biquad-filter-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/channel-merger-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/channel-splitter-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/constant-source-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/convolver-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/detach-array-buffer.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/delay-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/disconnect-multiple-outputs.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/dynamics-compressor-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/gain-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/invalid-state-error.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/invalid-access-error.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/iir-filter-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/filter-buffer.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/media-stream-audio-destination-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/test-promise-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/minimal-offline-audio-context-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/assign-native-audio-node-option.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/assign-native-audio-node-options.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/test-analyser-node-get-float-time-domain-data-method-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/assign-native-audio-node-audio-param-value.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/wrap-audio-scheduled-source-node-start-method-negative-parameters.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/wrap-audio-scheduled-source-node-stop-method-negative-parameters.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/compute-buffer-size.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/create-audio-worklet-processor-promise.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/clone-audio-worklet-node-options.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-biquad-filter-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-channel-splitter-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/wrap-channel-splitter-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/intercept-connections.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-delay-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-gain-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-iir-filter-node-faker-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-script-processor-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/not-supported-error.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/offline-audio-context-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/oscillator-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/panner-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/periodic-wave-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/stereo-panner-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/unknown-error.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/wave-shaper-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/get-first-sample.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/is-dc-curve.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/overwrite-accessors.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/set-value-at-time-until-possible.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/test-audio-scheduled-source-node-start-method-negative-parameters-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/test-audio-scheduled-source-node-stop-method-consecutive-calls-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/test-audio-scheduled-source-node-stop-method-negative-parameters-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/test-dom-exception-constructor-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/test-transferables-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/wrap-audio-scheduled-source-node-stop-method-consecutive-calls.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/wrap-event-listener.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/module.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/add-active-input-connection-to-audio-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/add-passive-input-connection-to-audio-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/delete-active-input-connection-to-audio-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/get-audio-node-tail-time.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/cache-test-result.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/window.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-analyser-node-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/wrap-analyser-node-get-float-time-domain-data-method.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/get-audio-node-renderer.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/render-inputs-of-audio-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/analyser-node-renderer-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/get-native-context.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-offline-audio-context-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/is-native-offline-audio-context.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/event-target-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-audio-context-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/is-native-audio-context.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/is-native-audio-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/is-native-audio-param.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-audio-worklet-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/add-audio-node-connections.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/add-connection-to-audio-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/increment-cycle-counter-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/decrement-cycle-counter.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/detect-cycles.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/guards/delay-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-audio-buffer-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/convert-number-to-unsigned-long.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/wrap-audio-buffer-copy-channel-methods.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/wrap-audio-buffer-copy-channel-methods-out-of-bounds.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/test-audio-buffer-constructor-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/add-silent-connection.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/render-inputs-of-audio-param.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/connect-audio-param.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-audio-buffer-source-node-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/wrap-audio-buffer-source-node-start-method-consecutive-calls.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/test-audio-buffer-source-node-start-method-consecutive-calls-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/test-audio-buffer-source-node-start-method-offset-clamping-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/test-audio-buffer-source-node-stop-method-nullified-buffer-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/wrap-audio-buffer-source-node-start-method-offset-clamping.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/wrap-audio-buffer-source-node-stop-method-nullified-buffer.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/render-automation.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/get-audio-param-renderer.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/audio-buffer-source-node-renderer-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/audio-param-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/add-audio-param-connections.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/audio-param-renderer.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/functions/create-cancel-scheduled-values-automation-event.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/functions/create-exponential-ramp-to-value-automation-event.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/functions/create-linear-ramp-to-value-automation-event.js","webpack://RemoteCalibrator/./node_modules/automation-events/build/es2019/functions/create-set-target-automation-event.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/audio-destination-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/audio-destination-node-renderer-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-audio-destination-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/biquad-filter-node-renderer-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/set-audio-node-tail-time.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/monitor-connections.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/wrap-channel-merger-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-channel-merger-node-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/channel-merger-node-renderer-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/channel-splitter-node-renderer-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/sanitize-channel-splitter-options.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-constant-source-node-faker-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-constant-source-node-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/constant-source-node-renderer-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-convolver-node-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/convolver-node-renderer-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/delay-node-renderer-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-dynamics-compressor-node-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/dynamics-compressor-node-renderer-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/gain-node-renderer-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/render-native-offline-audio-context.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/test-offline-audio-context-current-time-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/iir-filter-node-renderer-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-iir-filter-node-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/wrap-iir-filter-node-get-frequency-response-method.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/audio-listener-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/minimal-base-audio-context-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-oscillator-node-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/oscillator-node-renderer-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/connected-native-audio-buffer-source-node-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-wave-shaper-node-faker-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-wave-shaper-node-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-panner-node-faker-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-panner-node-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/panner-node-renderer-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-periodic-wave-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/sanitize-periodic-wave-options.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-stereo-panner-node-faker-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-stereo-panner-node-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/stereo-panner-node-renderer-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/wave-shaper-node-renderer-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/is-secure-context.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/expose-current-frame-and-current-time.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/get-or-create-backup-offline-audio-context.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/evaluate-source.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/fetch-source.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/abort-error.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/test-audio-worklet-processor-post-message-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/is-native-context.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/decode-audio-data.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/data-clone-error.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/encoding-error.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/base-audio-context-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/media-element-audio-source-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-media-element-audio-source-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-media-stream-audio-destination-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/media-stream-audio-source-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-media-stream-audio-source-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-media-stream-track-audio-source-node-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/media-stream-track-audio-source-node-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/audio-context-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/get-unrendered-audio-worklet-nodes.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/add-unrendered-audio-worklet-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/connect-multiple-outputs.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/delete-unrendered-audio-worklet-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/get-active-audio-worklet-node-inputs.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-audio-worklet-node-faker-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/create-audio-worklet-processor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/native-audio-worklet-node-factory.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/test-clonability-of-audio-worklet-node-options.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/get-backup-offline-audio-context.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/set-active-audio-worklet-node-inputs.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/sanitize-audio-worklet-node-options.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/helpers/test-audio-worklet-node-options-clonability.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/minimal-audio-context-constructor.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/create-native-offline-audio-context.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/start-rendering.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/is-any-audio-context.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/is-any-audio-node.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/is-any-audio-param.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/is-any-offline-audio-context.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/is-supported-promise.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/test-audio-buffer-copy-channel-methods-subarray-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/test-audio-context-close-method-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/test-audio-context-decode-audio-data-method-type-error-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/test-audio-context-options-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/test-audio-node-connect-method-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/test-audio-worklet-processor-no-outputs-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/test-channel-merger-node-channel-count-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/test-constant-source-node-accurate-scheduling-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/test-convolver-node-buffer-reassignability-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/test-convolver-node-channel-count-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/test-is-secure-context-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/test-media-stream-audio-source-node-media-stream-without-audio-track-support.js","webpack://RemoteCalibrator/./node_modules/standardized-audio-context/build/es2019/factories/test-stereo-panner-node-default-value-support.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/util/Debug.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/util/TypeCheck.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/context/AudioContext.js","webpack://RemoteCalibrator/./node_modules/tslib/tslib.es6.mjs","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/clock/Ticker.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/util/AdvancedTypeCheck.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/util/Defaults.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/Tone.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/util/Math.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/util/Timeline.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/context/ContextInitialization.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/util/Emitter.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/context/BaseContext.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/context/Context.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/util/Interface.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/context/ToneAudioBuffer.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/context/OfflineContext.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/Global.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/context/DummyContext.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/type/Conversions.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/type/TimeBase.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/type/Time.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/type/Frequency.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/type/TransportTime.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/context/ToneWithContext.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/util/StateTimeline.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/context/Param.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/context/ToneAudioNode.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/context/Gain.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/source/OneShotSource.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/signal/ToneConstantSource.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/signal/Signal.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/clock/TickParam.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/clock/TickSignal.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/clock/TickSource.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/clock/Clock.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/context/Delay.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/context/Offline.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/context/ToneAudioBuffers.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/type/Midi.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/type/Ticks.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/util/Draw.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/util/IntervalTimeline.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/channel/Volume.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/context/Destination.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/util/TimelineValue.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/clock/TransportEvent.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/clock/TransportRepeatEvent.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/clock/Transport.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/source/Source.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/source/buffer/ToneBufferSource.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/source/Noise.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/source/UserMedia.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/source/oscillator/OscillatorInterface.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/source/oscillator/ToneOscillatorNode.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/source/oscillator/Oscillator.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/signal/SignalOperator.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/signal/WaveShaper.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/signal/AudioToGain.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/signal/Multiply.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/source/oscillator/AMOscillator.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/source/oscillator/FMOscillator.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/source/oscillator/PulseOscillator.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/source/oscillator/FatOscillator.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/source/oscillator/PWMOscillator.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/source/oscillator/OmniOscillator.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/signal/Add.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/signal/Scale.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/signal/Zero.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/source/oscillator/LFO.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/util/Decorator.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/source/buffer/Player.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/source/buffer/Players.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/source/buffer/GrainPlayer.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/signal/Abs.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/signal/GainToAudio.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/signal/Negate.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/signal/Subtract.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/signal/GreaterThanZero.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/signal/GreaterThan.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/signal/Pow.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/signal/ScaleExp.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/signal/SyncedSignal.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/envelope/Envelope.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/instrument/Instrument.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/instrument/Monophonic.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/envelope/AmplitudeEnvelope.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/instrument/Synth.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/instrument/ModulationSynth.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/instrument/AMSynth.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/filter/BiquadFilter.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/filter/Filter.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/envelope/FrequencyEnvelope.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/instrument/MonoSynth.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/instrument/DuoSynth.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/instrument/FMSynth.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/instrument/MetalSynth.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/instrument/MembraneSynth.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/instrument/NoiseSynth.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/worklet/WorkletGlobalScope.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/worklet/ToneAudioWorklet.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/worklet/ToneAudioWorkletProcessor.worklet.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/worklet/SingleIOProcessor.worklet.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/worklet/DelayLine.worklet.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/filter/FeedbackCombFilter.worklet.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/filter/FeedbackCombFilter.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/filter/OnePoleFilter.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/filter/LowpassCombFilter.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/instrument/PluckSynth.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/instrument/PolySynth.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/instrument/Sampler.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/event/ToneEvent.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/event/Loop.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/event/Part.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/event/PatternGenerator.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/event/Pattern.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/event/Sequence.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/channel/CrossFade.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/Effect.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/LFOEffect.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/AutoFilter.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/channel/Panner.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/AutoPanner.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/analysis/Follower.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/AutoWah.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/BitCrusher.worklet.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/BitCrusher.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/Chebyshev.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/channel/Split.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/channel/Merge.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/StereoEffect.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/StereoFeedbackEffect.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/Chorus.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/Distortion.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/FeedbackEffect.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/FeedbackDelay.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/filter/PhaseShiftAllpass.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/FrequencyShifter.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/Freeverb.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/JCReverb.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/StereoXFeedbackEffect.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/PingPongDelay.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/PitchShift.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/Phaser.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/Reverb.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/channel/MidSideSplit.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/channel/MidSideMerge.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/MidSideEffect.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/StereoWidener.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/Tremolo.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/effect/Vibrato.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/analysis/Analyser.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/analysis/MeterBase.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/analysis/Meter.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/analysis/FFT.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/analysis/DCMeter.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/analysis/Waveform.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/channel/Solo.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/channel/PanVol.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/channel/Channel.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/channel/Mono.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/channel/MultibandSplit.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/core/context/Listener.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/channel/Panner3D.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/channel/Recorder.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/dynamics/Compressor.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/dynamics/Gate.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/dynamics/Limiter.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/dynamics/MidSideCompressor.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/dynamics/MultibandCompressor.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/filter/EQ3.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/component/filter/Convolver.js","webpack://RemoteCalibrator/./node_modules/tone/build/esm/index.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@mediapipe/face_mesh/face_mesh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/localforage/dist/localforage.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/long/src/long.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/regression/dist/regression.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/seedrandom/index.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/seedrandom/lib/alea.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/seedrandom/lib/tychei.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/seedrandom/lib/xor128.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/seedrandom/lib/xor4096.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/seedrandom/lib/xorshift7.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/seedrandom/lib/xorwow.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/seedrandom/seedrandom.js","webpack://RemoteCalibrator/webpack/bootstrap","webpack://RemoteCalibrator/webpack/runtime/amd define","webpack://RemoteCalibrator/webpack/runtime/amd options","webpack://RemoteCalibrator/webpack/runtime/compat get default export","webpack://RemoteCalibrator/webpack/runtime/define property getters","webpack://RemoteCalibrator/webpack/runtime/global","webpack://RemoteCalibrator/webpack/runtime/hasOwnProperty shorthand","webpack://RemoteCalibrator/webpack/runtime/make namespace object","webpack://RemoteCalibrator/webpack/runtime/node module decorator","webpack://RemoteCalibrator/webpack/runtime/nonce","webpack://RemoteCalibrator/./src/const.js","webpack://RemoteCalibrator/./src/components/slider.js","webpack://RemoteCalibrator/./src/screenSize.js","webpack://RemoteCalibrator/./src/components/onCanvas.js","webpack://RemoteCalibrator/./src/components/swalOptions.js","webpack://RemoteCalibrator/./src/distance/distance.js","webpack://RemoteCalibrator/./src/components/iRepeat.js","webpack://RemoteCalibrator/./src/media/allow-camera.png","webpack://RemoteCalibrator/./src/components/mediaPermission.js","webpack://RemoteCalibrator/./src/distance/distanceTrack.js","webpack://RemoteCalibrator/./src/distance/distanceNudge.js","webpack://RemoteCalibrator/./src/components/video.js","webpack://RemoteCalibrator/./src/distance/interPupillaryDistance.js","webpack://RemoteCalibrator/./src/media/pd.png","webpack://RemoteCalibrator/./node_modules/tinycolor2/esm/tinycolor.js","webpack://RemoteCalibrator/./src/components/converters.js","webpack://RemoteCalibrator/./src/gaze/gazeCalibration.js","webpack://RemoteCalibrator/./src/gaze/gaze.js","webpack://RemoteCalibrator/./src/gaze/gazeNudge.js","webpack://RemoteCalibrator/./src/gaze/gazeAccuracy.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/backends/backend.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/util_base.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/environment.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/global_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/kernel_names.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/log.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/kernel_registry.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/platforms/is_typed_array_browser.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/hash_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/profiler.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/tensor_format.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/tensor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/types.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/tensor_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/engine.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/tape.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/device_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/flags.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/operation.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/complex.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/tensor_ops_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/tensor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/io/types.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/io/composite_array_buffer.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/globals.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/io/io_utils.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/io/router_registry.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/io/indexed_db.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/io/local_storage.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/io/model_management.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/platforms/platform_browser.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/platforms/platform_node.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/buffer.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/cast.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/clone.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/print.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/base_side_effects.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/add.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/floorDiv.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/div.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/mul.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/sqrt.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/square.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/serialization.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/optimizers/adadelta_optimizer.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/fill.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/optimizers/adagrad_optimizer.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/pow.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/sub.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/optimizers/adam_optimizer.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/abs.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/maximum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/optimizers/adamax_optimizer.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/optimizers/sgd_optimizer.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/optimizers/momentum_optimizer.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/optimizers/rmsprop_optimizer.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/optimizers/register_optimizers.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/io/browser_files.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/io/progress.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/io/weights_loader.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/io/http.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/io/passthrough.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/tensor3d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/browser.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/slice_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/acos.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/acosh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/add_n.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/all.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/any.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/arg_max.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/arg_min.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/asin.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/asinh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/atan.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/atan2.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/atanh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/conv_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_3d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/concat.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/mat_mul.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/sigmoid.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/slice.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/tanh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/basic_lstm_cell.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/batch_to_space_nd.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm2d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm3d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm4d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/bincount.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/bitwise_and.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_args.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_to.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/ceil.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/clip_by_value.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/concat_1d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/concat_2d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/concat_3d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/concat_4d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/conv2d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/conv1d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_backprop_input.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_transpose.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/conv3d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_backprop_input.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_transpose.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/cos.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/cosh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/cumprod.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/cumsum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/dense_bincount.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/depth_to_space.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/diag.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/dilation2d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/equal.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/where.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/div_no_nan.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/dot.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/einsum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/elu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/ensure_shape.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/erf.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/axis_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/max.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/min.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/sum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/norm.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/euclidean_norm.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/exp.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/expand_dims.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/expm1.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/tile.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/eye.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/floor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/gather.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/greater.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/greater_equal.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/imag.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/is_finite.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/is_inf.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/is_nan.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/leaky_relu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/less.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/less_equal.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/linspace.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/local_response_normalization.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/log.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/log1p.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/neg.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/softplus.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/log_sigmoid.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/log_softmax.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/log_sum_exp.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/logical_and.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/logical_not.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/logical_or.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/logical_xor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/search_sorted.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/lower_bound.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/max_pool.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_3d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_with_argmax.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/mean.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/zeros.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/ones.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/meshgrid.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/minimum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/mirror_pad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/mod.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/moments.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/multi_rnn_cell.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/multinomial.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/not_equal.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/one_hot.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/ones_like.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/outer_product.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/pad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/pad1d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/pad2d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/pad3d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/pad4d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/space_to_batch_nd.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/pool.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/prelu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/prod.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/ragged_gather.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/ragged_range.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/ragged_tensor_to_tensor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/rand.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/rand_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/random_gamma.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/random_normal.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/random_standard_normal.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/random_uniform.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/random_uniform_int.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/range.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/real.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/reciprocal.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/relu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/relu6.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/reverse.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/reverse_1d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/reverse_2d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/reverse_3d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/reverse_4d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/round.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/rsqrt.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/selu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/separable_conv2d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/setdiff1d_async.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/sign.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/sin.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/sinh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/slice1d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/slice2d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/slice3d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/slice4d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/softmax.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/spectral/fft.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/spectral/ifft.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/spectral/irfft.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/split.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/spectral/rfft.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/squared_difference.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/squeeze.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/stack.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/step.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/strided_slice.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/tan.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/tensor1d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/tensor2d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/tensor4d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/tensor5d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/tensor6d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/scatter_nd_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/tensor_scatter_update.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/topk.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/truncated_normal.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/unique.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/unsorted_segment_sum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/unstack.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/upper_bound.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/variable.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/backends/where_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/where_async.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/boolean_mask.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/transpose.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/moving_average.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/scatter_nd.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/sparse_to_dense.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/sparse_to_dense_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/gather_nd.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/dropout.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/dropout_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/signal_ops_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/in_top_k.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_backprop_filter.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/fused_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/fused/conv2d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d_native_backprop_filter.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d_native_backprop_input.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/fused/depthwise_conv2d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/fused/mat_mul.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/signal/hamming_window.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/signal/hann_window.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/signal/frame.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/signal/stft.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/image/crop_and_resize.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/image/flip_left_right.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/image/grayscale_to_rgb.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/image/rgb_to_grayscale.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/image/rotate_with_offset.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/nonmax_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/backends/non_max_suppression_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/backends/non_max_suppression_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_async.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_with_score.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_with_score_async.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_padded.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_padded_async.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/image/resize_bilinear.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/image/resize_nearest_neighbor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/image/threshold.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/image/transform.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/linalg/band_part.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/linalg/gram_schmidt.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/linalg/qr.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/loss_ops_utils.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/losses/compute_weighted_loss.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/losses/absolute_difference.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/losses/cosine_distance.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/losses/hinge_loss.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/losses/huber_loss.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/losses/log_loss.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/losses/mean_squared_error.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/losses/sigmoid_cross_entropy.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/losses/softmax_cross_entropy.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/sparse/sparse_fill_empty_rows.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/sparse/sparse_reshape.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/sparse/sparse_segment_mean.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/sparse/sparse_segment_sum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/string/string_n_grams.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/string/string_split.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/string/string_to_hash_bucket_fast.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/string/static_regex_replace.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/ops.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/train.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer_constructors.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/browser_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/concat_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/ragged_to_dense_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/reduce_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/rotate_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/array_ops_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/gather_nd_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/selu_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/erf_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/backends/complex_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/backends/einsum_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/split_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/sparse/sparse_fill_empty_rows_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/sparse/sparse_reshape_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/sparse/sparse_segment_reduction_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/segment_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/backends/backend_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/index.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Abs_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Acos_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Acosh_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Add_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/AddN_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/ArgMax_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/ArgMin_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Asin_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Asinh_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Atan2_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Atan_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Atanh_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_3d_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/AvgPool3D_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/AvgPool_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/BatchMatMul_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/BatchToSpaceND_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/BroadcastTo_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Cast_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Ceil_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/ClipByValue_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/ComplexAbs_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Concat_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Conv2D_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Conv2DBackpropInput_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_backprop_filter.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Conv3D_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Cos_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Cosh_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Cumsum_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/DepthwiseConv2dNative_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Dilation2D_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Elu_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Erf_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Exp_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/ExpandDims_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Expm1_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Floor_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/FloorDiv_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/FusedBatchNorm_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/GatherV2_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/GreaterEqual_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Identity_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/IsFinite_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/IsInf_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/IsNan_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/LeakyRelu_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Log1p_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Log_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/LogSoftmax_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/local_response_normalization_backprop.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/LRN_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/min_max_grad_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Max_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Maximum_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_3d_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/MaxPool3D_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/MaxPool_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/MirrorPad_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Pack_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/PadV2_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Pow_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Prod_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Selu_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/SpaceToBatchND_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/SplitV_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Tile_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/ZerosLike_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/register_all_gradients.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/RealDiv_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Mean_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Min_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Minimum_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Mod_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Multiply_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Neg_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/OneHot_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/OnesLike_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Prelu_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Reciprocal_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Relu6_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Relu_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Reshape_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/ResizeBilinear_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/ResizeNearestNeighbor_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Reverse_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Round_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Rsqrt_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Select_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Sigmoid_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Sign_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Sin_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Sinh_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Slice_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Softmax_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Softplus_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Sqrt_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/SquaredDifference_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Square_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Step_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Sub_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Sum_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Tan_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Tanh_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Transpose_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/Unpack_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/gradients/UnsortedSegmentSum_grad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/abs.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/acos.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/acosh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/add.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/all.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/any.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/arg_max.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/arg_min.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as_scalar.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as_type.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as1d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as2d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as3d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as4d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as5d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/asin.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/asinh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atan.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atan2.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atanh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/avg_pool.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/batch_to_space_nd.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/batchnorm.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/broadcast_to.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cast.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ceil.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/clip_by_value.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/concat.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv1d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv2d_transpose.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv2d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cos.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cosh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cumprod.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cumsum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/depth_to_space.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/depthwise_conv2d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/dilation2d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/div_no_nan.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/div.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/dot.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/elu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/equal.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/erf.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/euclidean_norm.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/exp.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/expand_dims.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/expm1.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/fft.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/flatten.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/floor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/floorDiv.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/gather.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/greater_equal.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/greater.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ifft.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/irfft.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_finite.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_inf.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_nan.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/leaky_relu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/less_equal.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/less.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/local_response_normalization.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_sigmoid.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_softmax.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_sum_exp.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log1p.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_and.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_not.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_or.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_xor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mat_mul.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/max_pool.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/max.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/maximum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mean.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/min.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/minimum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mirror_pad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mod.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mul.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/neg.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/norm.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/not_equal.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/one_hot.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ones_like.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pool.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pow.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/prelu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/prod.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reciprocal.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/relu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/relu6.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reshape_as.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reshape.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/resize_bilinear.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/resize_nearest_neighbor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reverse.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/rfft.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/round.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/rsqrt.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/selu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/separable_conv2d.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sigmoid.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sign.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sin.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sinh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/slice.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/softmax.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/softplus.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/space_to_batch_nd.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/split.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sqrt.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/square.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/squared_difference.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/squeeze.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/stack.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/step.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/strided_slice.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sub.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tan.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tanh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tile.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_bool.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_float.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_int.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/topk.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/transpose.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unique.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unsorted_segment_sum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unstack.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/where.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/zeros_like.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/errors.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/utils/executor_utils.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/backend/state.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/keras_format/common.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/common.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/utils/math_utils.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/backend/common.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/keras_format/initializer_config.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/initializers.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/utils/variable_utils.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/variables.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/engine/input_layer.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/engine/executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/constraints.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/flags_layers.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/logs.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/base_callbacks.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/layers/serialization.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/losses.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/metrics.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/user_defined_metadata.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/utils/layer_utils.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/utils/serialization_utils.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/version.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/engine/container.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/engine/training_utils.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/engine/training_dataset.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/engine/training_tensors.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/engine/training.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/optimizers.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/models.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/activations.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/regularizers.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/layers/advanced_activations.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/utils/conv_utils.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional_depthwise.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/layers/recurrent.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional_recurrent.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/layers/core.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/layers/embeddings.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/layers/merge.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/layers/noise.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/layers/normalization.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/layers/padding.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/layers/pooling.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/layers/wrappers.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/layers/preprocessing/image_preprocessing.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/layers/preprocessing/center_crop.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/layers/preprocessing/category_encoding.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/layers/preprocessing/preprocessing_utils.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/layers/preprocessing/image_resizing.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/backend/random_seed.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/engine/base_random_layer.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-layers/dist/layers/preprocessing/random_width.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/data/compiled_api.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/flags.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/register.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/arithmetic.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/basic_math.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/control.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/convolution.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/creation.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/dynamic.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/evaluation.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/graph.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/hash_table.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/image.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/logical.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/matrices.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/normalization.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/reduction.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/slice_join.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/sparse.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/spectral.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/string.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/transformation.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/operation_mapper.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/node_value_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_utils.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_array.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_list.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/control_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/convolution_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/dynamic_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/executor/hash_table.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/operation_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/arithmetic_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/basic_math_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/creation_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/evaluation_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/image_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/graph_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/logical_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/matrices_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/normalization_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/ragged_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/reduction_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/slice_join_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/sparse_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/spectral_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/string_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/transformation_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/operations/executors/hash_table_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/executor/execution_context.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/executor/model_analysis.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/executor/graph_executor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/executor/resource_manager.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-converter/dist/executor/graph_model.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-data/dist/util/deep_map.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-data/dist/util/deep_clone.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-data/dist/util/ring_buffer.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-data/dist/util/growing_ring_buffer.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-data/dist/iterators/lazy_iterator.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-data/dist/dataset.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-data/dist/datasets/csv_dataset.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/backend_cpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/base.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Elu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Identity.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LeakyRelu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Prelu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Relu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Relu6.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sigmoid.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/fused_utils.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Complex.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/zeros_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Real.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cast.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Add.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchMatMul.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/_FusedMatMul.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Abs.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Acos.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Acosh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AddN.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/All.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Any.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ArgMax.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ArgMin.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Asin.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Asinh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atan.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atan2.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atanh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/pool_utils.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool3D.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool3DGrad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPoolGrad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchNorm.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Slice.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchToSpaceND.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Bincount_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Bincount.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BitwiseAnd.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BroadcastArgs.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Ceil.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ClipByValue.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ComplexAbs.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Concat_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Imag.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Concat.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2D.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2DBackpropFilter.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2DBackpropInput.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3D.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3DBackpropFilterV2.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3DBackpropInputV2.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cos.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cosh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/CropAndResize.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cumprod.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cumsum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DenseBincount.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthToSpace.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNative.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNativeBackpropFilter.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNativeBackpropInput.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Diag.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2D.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2DBackpropFilter.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2DBackpropInput.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Draw.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multiply.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Einsum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/EluGrad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Equal.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Erf.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Exp.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ExpandDims.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Expm1.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RealDiv.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sub.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/fft_utils.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FFT.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Fill.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FlipLeftRight.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Floor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FloorDiv.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FusedConv2D.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FusedDepthwiseConv2D.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherNd_Impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherNd.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherV2_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherV2.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Greater.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GreaterEqual.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IFFT.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsFinite.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsInf.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsNaN.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Less.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LessEqual.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LinSpace_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LinSpace.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Log.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Log1p.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalAnd.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalNot.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalOr.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LRN.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LRNGrad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Maximum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool3D.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool3DGrad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolGrad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolWithArgmax.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolWithArgmax_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Mean.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Min.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Minimum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MirrorPad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Mod.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Softmax.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multinomial.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Neg.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV3.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV4.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV5.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NotEqual.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/OneHot.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ZerosLike.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/OnesLike.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Pack.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/PadV2.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Pow.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Prod.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RaggedGather_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RaggedGather.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RaggedRange_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RaggedRange.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RaggedTensorToTensor_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RaggedTensorToTensor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Range_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Range.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reciprocal.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeBilinear.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeBilinearGrad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeNearestNeighbor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeNearestNeighborGrad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reverse.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RotateWithOffset.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Round.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Rsqrt.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Scatter_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ScatterNd.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SearchSorted_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SearchSorted.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Select.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Selu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sign.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sin.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sinh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Softplus.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SpaceToBatchND.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseFillEmptyRows_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseFillEmptyRows.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseReshape_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseReshape.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseSegmentReduction_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseSegmentMean.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseSegmentSum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseToDense.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SplitV.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sqrt.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Square.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SquaredDifference.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StaticRegexReplace.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Step.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StridedSlice_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StridedSlice.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StringNGrams_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StringNGrams.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StringSplit_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StringSplit.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StringToHashBucketFast_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StringToHashBucketFast.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tan.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tanh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/TensorScatterUpdate.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tile_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tile.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/TopK_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/TopK.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transform.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unique_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unique.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unpack.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/UnsortedSegmentSum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-cpu/dist/register_all_kernels.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/canvas_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/tex_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/flags_webgl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/glsl_version.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_math.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/decode_matrix_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/decode_matrix_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_float_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_float_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_matrix_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_matrix_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_context.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/packing_util.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/pack_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/reshape_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/texture_manager.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/unpack_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/backend_webgl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/base.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Identity.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Complex.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LeakyRelu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Prelu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/mulmat_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_complex_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Multiply.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reshape.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/mean_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/reduce_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reduce.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/transpose_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/transpose_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sum_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchMatMul_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/_FusedMatMul.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Abs.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Acos.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Acosh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Add.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/addn_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/addn_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AddN.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/All.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Any.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/argminmax_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/argminmax_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/arg_min_max.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ArgMax.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ArgMin.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Asin.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Asinh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atan.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atan2.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atanh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/pool_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool3D.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/avg_pool_backprop_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool3DGrad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPoolGrad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchMatMul.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/batchnorm_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/batchnorm_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchNorm.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/slice_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/slice_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Slice.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchToSpaceND.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Bincount.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BitwiseAnd.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BroadcastArgs.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NotEqual.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Real.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/int.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cast.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Ceil.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/clip_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/clip_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ClipByValue.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/complex_abs_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ComplexAbs.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/concat_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/concat_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Imag.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Concat_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Concat.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/im2col_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2D_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2D.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2DBackpropFilter.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2DBackpropInput.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3D.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3DBackpropFilterV2.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3DBackpropInputV2.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cos.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cosh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/crop_and_resize_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/CropAndResize.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/cum_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cum_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cumprod.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cumsum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DenseBincount.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/depth_to_space_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthToSpace.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu_depthwise.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_packed_gpu_depthwise.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNative.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu_depthwise.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNativeBackpropFilter.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNativeBackpropInput.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/diag_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Diag.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/dilation_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Dilation2D.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Einsum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Elu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/EluGrad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Equal.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Erf.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Exp.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ExpandDims.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Expm1.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/fft_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FFT_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FFT.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/fill_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Fill.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/flip_left_right_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FlipLeftRight.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Floor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FloorDiv.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/from_pixels_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/from_pixels_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FusedConv2D.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FusedDepthwiseConv2D.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/gather_nd_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GatherNd.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/gather_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GatherV2.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Greater.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GreaterEqual.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IFFT.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsFinite.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsInf.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsNaN.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Less.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LessEqual.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LinSpace.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Log.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Log1p.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalAnd.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalNot.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalOr.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LRN.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_grad_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LRNGrad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Max.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Max_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Maximum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool3D.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/max_pool_backprop_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool3DGrad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolGrad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolWithArgmax.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolWithArgmax_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mean.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mean_impl.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Min.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Minimum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/mirror_pad_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/mirror_pad_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MirrorPad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mod.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/multinomial_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RealDiv.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sub.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Softmax.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Multinomial.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Neg.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV3.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV4.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV5.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/onehot_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/OneHot.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ZerosLike.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/OnesLike.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Pack.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/pad_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/pad_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/PadV2.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Pow.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Prod.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RaggedGather.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RaggedRange.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RaggedTensorToTensor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Range.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reciprocal.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Relu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Relu6.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeBilinear.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_backprop_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeBilinearGrad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_nearest_neighbor_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_nearest_neighbor_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeNearestNeighbor.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_nearest_neighbor_backprop_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeNearestNeighborGrad.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/reverse_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/reverse_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reverse.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/rotate_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RotateWithOffset.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Round.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Rsqrt.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/scatter_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/scatter_packed_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ScatterNd.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/search_sorted_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SearchSorted.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/select_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Select.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Selu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sigmoid.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sign.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sin.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sinh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Softplus.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SpaceToBatchND.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SparseFillEmptyRows.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SparseReshape.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SparseSegmentMean.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SparseSegmentSum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SparseToDense.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SplitV.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sqrt.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Square.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SquaredDifference.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/StaticRegexReplace.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Step.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/strided_slice_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/StridedSlice.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/StringNGrams.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/StringSplit.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/StringToHashBucketFast.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tan.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tanh.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/TensorScatterUpdate.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/tile_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tile.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/top_k_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/TopK.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/transform_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transform.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Unique.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Unpack.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/segment_gpu.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/UnsortedSegmentSum.js","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow/tfjs-backend-webgl/dist/register_all_kernels.js","webpack://RemoteCalibrator/./src/WebGazer4RC/src/params.mjs","webpack://RemoteCalibrator/./src/WebGazer4RC/node_modules/@tensorflow-models/face-landmarks-detection/dist/face-landmarks-detection.esm.js","webpack://RemoteCalibrator/./src/WebGazer4RC/src/useFullRangeModel.mjs","webpack://RemoteCalibrator/./src/WebGazer4RC/src/facemesh.mjs","webpack://RemoteCalibrator/./src/WebGazer4RC/src/util.mjs","webpack://RemoteCalibrator/./src/WebGazer4RC/src/mat.mjs","webpack://RemoteCalibrator/./src/WebGazer4RC/src/util_regression.mjs","webpack://RemoteCalibrator/./src/WebGazer4RC/src/ridgeReg.mjs","webpack://RemoteCalibrator/./src/WebGazer4RC/src/ridgeWeightedReg.mjs","webpack://RemoteCalibrator/./src/WebGazer4RC/src/ridgeRegThreaded.mjs","webpack://RemoteCalibrator/./src/WebGazer4RC/src/index.mjs","webpack://RemoteCalibrator/./src/gaze/gazeTracker.js","webpack://RemoteCalibrator/./src/performance.js","webpack://RemoteCalibrator/./src/check/equipment.js","webpack://RemoteCalibrator/./src/check/checkScreenSize.js","webpack://RemoteCalibrator/./src/check/checkDistance.js","webpack://RemoteCalibrator/./src/css/panel.scss?b354","webpack://RemoteCalibrator/./src/panel/panel.js","webpack://RemoteCalibrator/./src/customization.js","webpack://RemoteCalibrator/./src/css/main.css?2749","webpack://RemoteCalibrator/./src/css/screenSize.scss?9ddb","webpack://RemoteCalibrator/./src/css/distance.scss?811b","webpack://RemoteCalibrator/./src/css/gaze.css?7a3c","webpack://RemoteCalibrator/./src/css/video.scss?0794","webpack://RemoteCalibrator/./node_modules/animate.css/source/_vars.css?2a6d","webpack://RemoteCalibrator/./node_modules/animate.css/source/_base.css?74db","webpack://RemoteCalibrator/./node_modules/animate.css/source/fading_entrances/fadeInUp.css?f282","webpack://RemoteCalibrator/./node_modules/animate.css/source/fading_exits/fadeOutDown.css?5e56","webpack://RemoteCalibrator/./node_modules/sweetalert2/src/sweetalert2.scss?e6f0","webpack://RemoteCalibrator/./src/css/swal.css?2ecf","webpack://RemoteCalibrator/./src/css/buttons.scss?0267","webpack://RemoteCalibrator/./src/css/slider.scss?45d7","webpack://RemoteCalibrator/./src/css/check.scss?d089","webpack://RemoteCalibrator/./src/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"RemoteCalibrator\"] = factory();\n\telse\n\t\troot[\"RemoteCalibrator\"] = factory();\n})(self, () => {\nreturn ","// helper functions\n\n/**\n * Provides requestAnimationFrame in a cross browser way.\n */\nwindow.requestAnimFrame = (function() {\n return window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n function(/* function FrameRequestCallback */ callback, /* DOMElement Element */ element) {\n return window.setTimeout(callback, 1000/60);\n };\n})();\n\n/**\n * Provides cancelRequestAnimationFrame in a cross browser way.\n */\nwindow.cancelRequestAnimFrame = (function() {\n return window.cancelCancelRequestAnimationFrame ||\n window.webkitCancelRequestAnimationFrame ||\n window.mozCancelRequestAnimationFrame ||\n window.oCancelRequestAnimationFrame ||\n window.msCancelRequestAnimationFrame ||\n window.clearTimeout;\n})();\n","import { phrases } from '../i18n'\n\nexport const addButtons = (\n RCL,\n parent,\n { go, cancel, custom },\n showCancelButton,\n absolutePositioning = true,\n) => {\n const buttons = document.createElement('div')\n buttons.className =\n 'rc-buttons' + (absolutePositioning ? ' rc-absolute-buttons' : '')\n buttons.id = 'rc-buttons'\n\n let goButton, cancelButton, customButton\n\n if (go) {\n goButton = document.createElement('button')\n goButton.className = 'rc-button rc-go-button'\n goButton.onclick = go\n goButton.innerHTML = phrases.RC_ok[RCL]\n buttons.appendChild(goButton)\n }\n\n if (cancel && showCancelButton) {\n cancelButton = document.createElement('button')\n cancelButton.className = 'rc-button rc-cancel-button'\n cancelButton.onclick = cancel\n cancelButton.innerHTML = phrases.RC_cancel[RCL]\n buttons.appendChild(cancelButton)\n }\n\n if (custom) {\n const { callback, content } = custom\n\n customButton = document.createElement('button')\n customButton.className = 'rc-button rc-custom-button'\n customButton.onclick = callback\n customButton.innerHTML = content\n buttons.appendChild(customButton)\n }\n\n parent.appendChild(buttons)\n\n return [buttons, goButton, cancelButton, customButton]\n}\n\nexport const removeButtons = parent => {\n parent.querySelector('#rc-buttons').remove()\n}\n","import { addButtons, removeButtons } from './buttons'\n\nimport { bindKeys, unbindKeys } from './keyBinder'\nimport { powerOf2, safeExecuteFunc } from './utils'\n\n// const _exampleMeasure = {\n// cm: '22.5',\n// inDecimal: '11.5',\n// inFractional: ['12', '3/16'],\n// }\n\nexport const takeInput = async (\n RC,\n extraFunction = null,\n extraFunctionOut = null,\n customButtonConfig = null,\n) => {\n const unit = RC.equipment.value.unit\n const unitDisplay = unit === RC._CONST.UNITS.CM ? 'cm' : 'in'\n const unitIsFraction = unit === RC._CONST.UNITS.IN_F\n\n // ! Elements\n const formItem = `
          \n
          \n ${\n unitIsFraction\n ? `${unitDisplay}`\n : `${unitDisplay}`\n // : `${unitDisplay}`\n }\n
          \n
          `\n\n const instruction = RC.background.querySelector('.calibration-instruction')\n instruction.innerHTML += formItem\n const formElement = instruction.querySelector('.rc-form')\n const formInputElement = instruction.querySelector('.rc-form-input')\n const formInputElementFInteger = instruction.querySelector(\n '.rc-form-input-f-integer',\n )\n const formInputElementFFraction = instruction.querySelector(\n '.rc-form-input-f-fraction',\n )\n // const formSubmitElement = instruction.querySelector('.rc-form-submit')\n\n // Focus on input element\n unitIsFraction ? formInputElementFInteger.focus() : formInputElement.focus()\n\n const addedButtons = addButtons(\n RC.L,\n formElement,\n {\n go: () => {},\n // cancel: () => {},\n custom: customButtonConfig ? customButtonConfig : undefined,\n },\n true,\n false,\n )\n const goButton = addedButtons[1]\n const customButton = addedButtons[3]\n // const cancelButton = addedButtons[2]\n\n goButton.disabled = true\n\n // ! oninput\n const eleOkay = ele => {\n ele.classList.remove('rc-input-error')\n goButton.disabled = false\n }\n const eleError = ele => {\n if (!isAcceptedSingleInput(ele.value.slice(-1))) {\n // Remove unaccepted chars\n ele.value = ele.value.substring(0, ele.value.length - 1)\n } else {\n ele.classList.add('rc-input-error')\n goButton.disabled = true\n }\n }\n const setupEleOninput = (ele, validationFunction) => {\n ele.oninput = () => {\n if (validationFunction(ele.value)) eleOkay(ele)\n else eleError(ele)\n }\n }\n const _validationForFraction = () => {\n let allOkay = true\n if (!validInputInteger(formInputElementFInteger.value)) {\n eleError(formInputElementFInteger)\n allOkay = false\n } else eleOkay(formInputElementFInteger)\n if (!validInputFraction(formInputElementFFraction.value)) {\n eleError(formInputElementFFraction)\n allOkay = false\n } else eleOkay(formInputElementFFraction)\n return allOkay\n }\n\n if (!unitIsFraction) setupEleOninput(formInputElement, validInput)\n else {\n formInputElementFInteger.oninput = _validationForFraction\n formInputElementFFraction.oninput = _validationForFraction\n }\n ////\n\n // ! Arrow, etc.\n safeExecuteFunc(extraFunction)\n\n // ! Finish\n return new Promise(resolve => {\n const bFunction = () => {\n removeInputElements(formElement, extraFunctionOut)\n unbindKeys(bindKeysFunction)\n resolve(null)\n }\n const fFunction = () => {\n let valid = false\n let numericalValue, inputValue\n if (\n unitIsFraction &&\n validInputInteger(formInputElementFInteger.value) &&\n validInputFraction(formInputElementFFraction.value)\n ) {\n // FRACTION\n valid = true\n numericalValue =\n Number.parseInt(formInputElementFInteger.value) +\n eval(formInputElementFFraction.value)\n inputValue =\n formInputElementFInteger.value + ' ' + formInputElementFFraction.value\n } else if (!unitIsFraction && validInput(formInputElement.value)) {\n // OTHERS\n valid = true\n numericalValue =\n Number(formInputElement.value) ||\n Number(formInputElement.value.replace(',', '.'))\n inputValue = formInputElement.value\n }\n\n if (valid) {\n removeInputElements(formElement, extraFunctionOut)\n unbindKeys(bindKeysFunction)\n resolve({\n value: {\n numerical: numericalValue, // Parsed numerical\n input: inputValue, // Original input\n unit: unit,\n },\n timestamp: performance.now(),\n })\n }\n }\n\n // Bind buttons\n goButton.onclick = fFunction\n // cancelButton.onclick = bFunction\n customButton.onclick = bFunction\n\n // Bind keys\n const bindKeysFunction = bindKeys({\n Enter: fFunction,\n Escape: bFunction,\n })\n })\n}\n\nconst removeInputElements = (formElement, extraFunctionOut) => {\n // Remove\n removeButtons(formElement)\n for (const child of formElement.children) child.remove()\n formElement.remove()\n //\n safeExecuteFunc(extraFunctionOut)\n}\n\n/* -------------------------------------------------------------------------- */\n\nconst validInput = text => {\n return (\n text.length > 0 &&\n !text.includes(' ') &&\n (!isNaN(text) || !isNaN(text.replace(',', '.')))\n )\n}\n\nconst validInputInteger = text => {\n if (!validInput(text)) return false\n return Number.parseInt(text) === Number(text) && Number(text) > 0\n}\n\nconst validInputFraction = text => {\n if (text === '0') return true\n if (!text.includes('/') || text.match(/\\//g).length > 1) return false\n const numbers = text.split('/')\n return (\n validInputInteger(numbers[0]) &&\n validInputInteger(numbers[1]) &&\n powerOf2(numbers[1]) &&\n eval(text) < 1\n )\n}\n\nconst isAcceptedSingleInput = char => {\n return /[0-9]/.test(char) || ['.', '/', ','].includes(char)\n}\n","import { safeExecuteFunc } from './utils'\n\n/**\n * Bind keys, e.g., SPACE (' '), ESC ('Escape')\n * keys is an object of keys of the keys, pointing to its binding functions\n */\nexport function bindKeys(keys, eventType = 'keydown') {\n const bindingFunctions = e => {\n if (e.key in keys) {\n e.preventDefault()\n safeExecuteFunc(keys[e.key], e)\n }\n }\n\n document.body.addEventListener(eventType, bindingFunctions)\n return bindingFunctions\n}\n\nexport function unbindKeys(event, eventType = 'keydown') {\n document.body.removeEventListener(eventType, event)\n}\n","import { phrases } from '../i18n'\n\nexport function looseSetLanguage(lang) {\n const originalKeys = Object.keys(phrases.EE_languageNameNative)\n if (originalKeys.includes(lang)) return constructLangData(lang)\n\n const shortKeys = []\n originalKeys.forEach(l => {\n shortKeys.push(l.split('-')[0])\n })\n\n const shortLang = lang.split('-')[0].toLowerCase()\n\n if (shortKeys.includes(shortLang))\n return constructLangData(originalKeys[shortKeys.indexOf(shortLang)])\n\n return constructLangData('en-US')\n}\n\nfunction constructLangData(lang) {\n return {\n value: {\n language: lang,\n languageNameEnglish: phrases.EE_languageNameEnglish[lang],\n languageNameNative: phrases.EE_languageNameNative[lang],\n languageDirection: phrases.EE_languageDirection[lang],\n languagePhraseSource: phrases.EE_phraseSource[lang],\n },\n timestamp: performance.now(),\n }\n}\n\nexport function spaceForLanguage(L) {\n return phrases.EE_languageUseSpace[L] === '1' ? ' ' : ''\n}\n","import { env } from '../core'\n\nconst usingMocha = env === 'mocha'\n\nlet MySynth, MyVolume\nif (!usingMocha) {\n const Tone = require('tone')\n MySynth = Tone.Synth\n MyVolume = Tone.Volume\n}\n\nclass FakeFeedbackSynth {\n triggerAttackRelease() {}\n}\n\nconst feedbackSynth = usingMocha\n ? new FakeFeedbackSynth()\n : new MySynth({\n oscillator: {\n type: 'sine',\n },\n envelope: { attack: 0.001, decay: 0.001, sustain: 1, release: 0.001 },\n }).connect(new MyVolume(-17).toDestination())\n\nconst softFeedbackSynth = usingMocha\n ? new FakeFeedbackSynth()\n : new MySynth({\n oscillator: {\n type: 'sine',\n },\n }).connect(new MyVolume(-5).toDestination())\n\nexport const soundFeedback = (style = 0) => {\n switch (style) {\n case 0:\n feedbackSynth.triggerAttackRelease(2000, 0.05)\n return\n\n case 1:\n // Negative feedback\n feedbackSynth.triggerAttackRelease(500, 0.5)\n return\n\n case 2:\n // Purr\n feedbackSynth.triggerAttackRelease(200, 0.6)\n return\n\n case 3:\n softFeedbackSynth.triggerAttackRelease(200, 0.2)\n return\n\n default:\n feedbackSynth.triggerAttackRelease(2000, 0.05)\n return\n }\n}\n","// requestAnimationFrame() polyfill by Erik Möller, Paul Irish, and Tino Zijdel.\n// https://gist.github.com/paulirish/1579671\n\n;(function () {\n var lastTime = 0\n var vendors = ['ms', 'moz', 'webkit', 'o']\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']\n window.cancelAnimationFrame =\n window[vendors[x] + 'CancelAnimationFrame'] ||\n window[vendors[x] + 'CancelRequestAnimationFrame']\n }\n\n if (!window.requestAnimationFrame)\n // eslint-disable-next-line no-unused-vars\n window.requestAnimationFrame = function (callback, element) {\n var currTime = performance.now()\n var timeToCall = Math.max(0, 16 - (currTime - lastTime))\n var id = window.setTimeout(function () {\n callback(currTime + timeToCall)\n }, timeToCall)\n lastTime = currTime + timeToCall\n return id\n }\n\n if (!window.cancelAnimationFrame)\n window.cancelAnimationFrame = function (id) {\n clearTimeout(id)\n }\n\n // Object.assign() polyfill by spiralx\n // https://gist.github.com/spiralx/68cf40d7010d829340cb\n if (!Object.assign) {\n Object.defineProperty(Object, 'assign', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: function (target) {\n if (target === undefined || target === null) {\n throw new TypeError()\n }\n\n var to = Object(target)\n for (var i = 1; i < arguments.length; i++) {\n var nextSource = arguments[i]\n if (nextSource === undefined || nextSource === null) {\n continue\n }\n nextSource = Object(nextSource)\n\n var keysArray = Object.keys(Object(nextSource))\n for (\n var nextIndex = 0, len = keysArray.length;\n nextIndex < len;\n nextIndex++\n ) {\n var nextKey = keysArray[nextIndex]\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey)\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey]\n }\n }\n }\n return to\n },\n })\n }\n})()\n\nexport function safeExecuteFunc(f, ...a) {\n if (f && typeof f === 'function')\n if (a.length) return f(...a)\n else return f()\n}\n\nexport const emptyFunc = () => {}\n\n// http://stackoverflow.com/questions/951021/what-is-the-javascript-version-of-sleep\nexport function sleep(time) {\n return new Promise(resolve => setTimeout(resolve, time))\n}\n\n/* -------------------------------------------------------------------------- */\n\n// Enter fullscreen\nexport function getFullscreen() {\n if (\n document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullscreenEnabled\n ) {\n const element = document.documentElement\n if (element.requestFullscreen) {\n element.requestFullscreen()\n return true\n } else if (element.mozRequestFullScreen) {\n element.mozRequestFullScreen()\n return true\n } else if (element.webkitRequestFullscreen) {\n element.webkitRequestFullscreen()\n return true\n } else if (element.msRequestFullscreen) {\n element.msRequestFullscreen()\n return true\n } else {\n return false\n }\n } else {\n return false\n }\n}\n\nexport function isFullscreen() {\n return (\n Math.abs(window.innerHeight - screen.height) < 5 &&\n Math.abs(window.innerWidth - screen.width) < 5 &&\n window.screenX < 5 &&\n window.screenY < 5\n )\n}\n\n/* -------------------------------------------------------------------------- */\n\nexport function constructInstructions(\n headline,\n description = null,\n scrollable = false,\n descriptionClass = '',\n) {\n return (\n `

          ${headline}

          ` +\n (description\n ? `

          ${description}

          `\n : '')\n )\n}\n\n/* ----------------------------- Tiny functions ----------------------------- */\n\nexport function constrain(a, b0, b1) {\n return a < b0 ? b0 : a > b1 ? b1 : a\n}\n\nexport function remap(v, a1, b1, a2, b2) {\n return a2 + (b2 - a2) * (((v - a1) * 1.0) / (b1 - a1))\n}\n\nexport function dist2d(aX, aY, bX, bY) {\n return Math.sqrt(Math.pow(aX - bX, 2) + Math.pow(aY - bY, 2))\n}\n\n// https://stackoverflow.com/a/30924333\nexport function powerOf2(v) {\n return v && !(v & (v - 1))\n}\n\n// https://stackoverflow.com/a/12646864\nexport function shuffle(array) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1))\n ;[array[i], array[j]] = [array[j], array[i]]\n }\n return array\n}\n\nexport function toFixedNumber(n, digits) {\n const pow = Math.pow(10, digits)\n return Math.round(n * pow) / pow\n}\n\n// https://github.com/30-seconds/30-seconds-of-code/blob/master/snippets/median.md\nexport const median = arr => {\n const mid = Math.floor(arr.length / 2),\n num = [...arr].sort((a, b) => a - b)\n return arr.length % 2 !== 0 ? num[mid] : (num[mid - 1] + num[mid]) / 2\n}\n\n// https://stackoverflow.com/a/41452260\nexport const average = array => array.reduce((a, b) => a + b) / array.length\n\n// https://stackoverflow.com/a/49434653\nexport function randn_bm(min, max, skew = 1) {\n let u = 0,\n v = 0\n while (u === 0) u = Math.random()\n while (v === 0) v = Math.random()\n let num = Math.sqrt(-2.0 * Math.log(u)) * Math.cos(2.0 * Math.PI * v)\n\n num = num / 10.0 + 0.5\n if (num > 1 || num < 0) num = randn_bm(min, max, skew)\n else {\n num = Math.pow(num, skew)\n num *= max - min\n num += min\n }\n return num\n}\n\nexport const _copy = obj => {\n return JSON.parse(JSON.stringify(obj))\n}\n\n/**\n *\n * BLUR ALL\n *\n */\nexport function blurAll() {\n if ('activeElement' in document) document.activeElement.blur()\n}\n\n/* -------------------------------------------------------------------------- */\n\nexport const getClickOrTouchLocation = e => {\n if (e.type === 'touchstart' || e.type === 'touchmove') {\n const touch = e.touches[0]\n return { x: touch.clientX, y: touch.clientY }\n } else return { x: e.clientX, y: e.clientY }\n}\n","// https://gist.github.com/cmacrander/bf864ff724f91bbe88d4\n\nconst adjectives = [\n 'tall',\n 'short',\n 'up',\n 'down',\n 'fancy',\n 'busy',\n 'loud',\n 'crazy',\n 'kind',\n 'nice',\n 'real',\n 'speedy',\n 'handy',\n 'active',\n 'alert',\n 'bold',\n 'brave',\n 'bright',\n 'calm',\n 'clever',\n 'cool',\n 'free',\n 'grand',\n 'great',\n 'happy',\n 'jolly',\n 'lucky',\n 'spicy',\n 'sunny',\n 'super',\n 'wise',\n]\n\nconst nouns = [\n // ANIMAL\n 'bat',\n 'bear',\n 'bird',\n 'cat',\n 'cow',\n 'deer',\n 'dog',\n 'dove',\n 'dragon',\n 'duck',\n 'eagle',\n 'fish',\n 'fox',\n 'frog',\n 'goose',\n 'lion',\n 'mouse',\n 'owl',\n 'pig',\n 'rat',\n 'seal',\n 'shark',\n 'sheep',\n 'snake',\n 'spider',\n 'tiger',\n 'turkey',\n 'viper',\n 'whale',\n 'wolf',\n // FOOD\n 'onion',\n 'carrot',\n 'pear',\n 'bean',\n 'corn',\n 'bread',\n 'apple',\n 'banana',\n 'fig',\n 'grape',\n 'lemon',\n 'lime',\n 'orange',\n 'peach',\n 'plum',\n 'dumpling',\n 'cake',\n 'pasta',\n 'pot',\n 'sushi',\n]\n\nconst colors = [\n 'blue',\n 'bronze',\n 'fire',\n 'forest',\n 'gold',\n 'gray',\n 'green',\n 'navy',\n 'purple',\n 'red',\n 'silver',\n 'sky',\n 'yellow',\n 'neon',\n 'black',\n 'white',\n 'brown',\n 'aqua',\n]\n\n/**\n *\n * Randomly choose an item from the array\n *\n */\nfunction randomChoice(a) {\n return a[Math.floor(Math.random() * a.length)]\n}\n\n/**\n *\n * Capitalize the first char of a string\n *\n */\nfunction capFirst(s) {\n return s.charAt(0).toUpperCase() + s.slice(1)\n}\n\n/**\n *\n * Construct a random phrase,\n * e.g. NiceGoldDumpling201\n *\n */\nexport default function randomPhrases() {\n const tailNumber = '000' + new Date().getMilliseconds().toString()\n return (\n capFirst(randomChoice(adjectives)) +\n capFirst(randomChoice(colors)) +\n capFirst(randomChoice(nouns)) +\n tailNumber.substring(tailNumber.length - 3)\n )\n}\n","import { phrases } from './i18n'\n\nconst PHRASES_URL =\n 'https://cdn.jsdelivr.net/gh/EasyEyes/remote-calibrator-phrases@latest/phrases/main.js'\n\nconst loadPhrases = async (customizedLanguagePhrasesJSON = null) => {\n // load from CDN\n const { remoteCalibratorPhrases } = await import(\n /* webpackIgnore: true */ PHRASES_URL\n )\n Object.assign(phrases, remoteCalibratorPhrases)\n\n // load from customized language phrases\n if (customizedLanguagePhrasesJSON)\n Object.assign(phrases, customizedLanguagePhrasesJSON)\n}\n\nexport { loadPhrases }\n","/**\n *\n * The fundamental functions, e.g. init\n *\n */\n\nimport platform from 'platform'\nimport isEqual from 'react-fast-compare'\n\nimport randomPhrases from './components/randomPhrases'\nimport { debug } from './debug'\nimport {\n getFullscreen,\n blurAll,\n constructInstructions,\n isFullscreen,\n safeExecuteFunc,\n} from './components/utils'\nimport { looseSetLanguage } from './components/language'\nimport { phrases } from './i18n'\nimport { loadPhrases } from './loadPhrases'\n\n// eslint-disable-next-line no-undef\nexport const env = process.env.BUILD_TARGET\n\nclass RemoteCalibrator {\n constructor() {\n window.console.log(\n `%c\\nEasyEyes Remote Calibrator ${this.version.value}\\n`,\n `color: ${this._CONST.COLOR.ORANGE}`,\n )\n\n this._initialized = false\n\n this._id = null\n\n this._lang = null // A single string, e.g., 'en-US'\n this._langData = []\n\n this._panelStatus = {\n hasPanel: false,\n panelFinished: false,\n panelResolveIntervals: [],\n }\n this._panel = {\n panel: null,\n panelObserver: null,\n panelTasks: [],\n panelParent: null,\n panelOptions: {},\n panelCallback: null,\n panelResolve: null,\n }\n\n // Calibration check\n this._participantCheckEquipment = {\n has: null,\n equipment: null,\n unit: null,\n }\n\n // Are we calibrating for setting up gaze or distance tracking?\n this._trackingSetupFinishedStatus = {\n gaze: true,\n distance: true,\n }\n this._trackingPaused = {\n gaze: false,\n distance: false,\n }\n this._trackingVideoFrameTimestamps = {\n gaze: 0,\n distance: 0,\n }\n\n this._distanceTrackNudging = {\n distanceCorrecting: null, // setInterval\n distanceCorrectEnabled: false, // Whether to correct or not, used for endNudger\n distanceDesired: null,\n distanceAllowedRatio: null,\n }\n\n this._gazeTrackNudging = {\n isCorrectingGaze: false,\n }\n\n // ! DATA\n\n this._environmentData = []\n\n this._displayData = [] // Px\n this._screenData = [] // Cm\n this._viewingDistanceData = []\n this._nearPointData = []\n this._PDData = []\n\n this._gazePositionData = []\n this._gazeAccuracyData = []\n\n // Status\n this._performanceData = []\n this._fullscreenData = []\n\n // Check\n this._equipmentData = []\n this._checkData = []\n\n ////\n\n this._background = {\n element: null,\n instructionElement: null,\n }\n\n this._nudger = {\n element: null,\n gazeElement: null,\n }\n\n this._params = {\n backgroundColor: '#eee',\n videoOpacity: 0.8,\n showCancelButton: true,\n }\n }\n\n /* --------------------------------- GETTERS -------------------------------- */\n\n get background() {\n return this._background.element\n }\n\n get instructionElement() {\n return this._background.instructionElement\n }\n\n get nudger() {\n return this._nudger.element\n }\n\n // PARAMS\n\n get params() {\n return this._params\n }\n\n ////\n\n get id() {\n if (!this._id) return null\n return {\n value: this._id.value,\n timestamp: this._id.timestamp,\n date: this._id.date,\n }\n }\n\n /**\n * Help get a certain item from a given category\n */\n _helper_get(cat, name) {\n if (!cat.length) return null\n const thisData = cat[cat.length - 1]\n return name\n ? { value: thisData.value[name], timestamp: thisData.timestamp }\n : thisData\n }\n\n get version() {\n return {\n // eslint-disable-next-line no-undef\n value: process.env.VERSION,\n }\n }\n\n get supportedLanguages() {\n const a = []\n for (const l in phrases.EE_languageNameEnglish) {\n a.push({\n language: l,\n languageNameEnglish: phrases.EE_languageNameEnglish[l],\n languageNameNative: phrases.EE_languageNameNative[l],\n })\n }\n\n return a\n }\n\n get L() {\n return this._lang\n }\n\n get LD() {\n return this.languageDirection.value\n }\n\n get language() {\n return this._helper_get(this._langData, 'language')\n }\n\n get languageNameEnglish() {\n return this._helper_get(this._langData, 'languageNameEnglish')\n }\n\n get languageNameNative() {\n return this._helper_get(this._langData, 'languageNameNative')\n }\n\n get languageDirection() {\n return this._helper_get(this._langData, 'languageDirection')\n }\n\n get languagePhraseSource() {\n return this._helper_get(this._langData, 'languagePhraseSource')\n }\n\n // Status\n\n get computeArrayFillMHz() {\n return this._helper_get(this._performanceData, 'computeArrayFillMHz')\n }\n\n get computeRandomMHz() {\n return this._helper_get(this._performanceData, 'computeRandomMHz')\n }\n\n get idealFps() {\n return this._helper_get(this._performanceData, 'idealFps')\n }\n\n get stressFps() {\n return this._helper_get(this._performanceData, 'stressFps')\n }\n\n get isFullscreen() {\n if (\n !this.fullscreenData.length ||\n !isEqual(isFullscreen(), this._helper_get(this._fullscreenData).value)\n )\n this.newFullscreenData = {\n value: isFullscreen(),\n timestamp: performance.now(),\n }\n return this._helper_get(this._fullscreenData)\n }\n\n // Environment\n\n get concurrency() {\n return this._helper_get(this._environmentData, 'concurrency')\n }\n\n // get bot() {\n // return this._helper_get(this._environmentData, 'bot')\n // }\n\n get browser() {\n return this._helper_get(this._environmentData, 'browser')\n }\n\n get browserVersion() {\n return this._helper_get(this._environmentData, 'browserVersion')\n }\n\n get deviceType() {\n return this._helper_get(this._environmentData, 'deviceType')\n }\n\n get isMobile() {\n const d = this._helper_get(this._environmentData, 'deviceType')\n return {\n value: d.value !== 'desktop',\n timestamp: d.timestamp,\n }\n }\n\n get model() {\n return this._helper_get(this._environmentData, 'model')\n }\n\n get manufacturer() {\n return this._helper_get(this._environmentData, 'manufacturer')\n }\n\n get engine() {\n return this._helper_get(this._environmentData, 'engine')\n }\n\n get system() {\n return this._helper_get(this._environmentData, 'system')\n }\n\n get systemFamily() {\n return this._helper_get(this._environmentData, 'systemFamily')\n }\n\n get description() {\n return this._helper_get(this._environmentData, 'description')\n }\n\n get fullDescription() {\n return this._helper_get(this._environmentData, 'fullDescription')\n }\n\n get userLanguage() {\n return this._helper_get(this._environmentData, 'userLanguage')\n }\n\n get equipment() {\n return this._helper_get(this._equipmentData)\n }\n\n // Screen\n\n get displayWidthPx() {\n this._displaySize()\n return this._helper_get(this._displayData, 'displayWidthPx')\n }\n\n get displayHeightPx() {\n this._displaySize()\n return this._helper_get(this._displayData, 'displayHeightPx')\n }\n\n get windowWidthPx() {\n this._displaySize()\n return this._helper_get(this._displayData, 'windowWidthPx')\n }\n\n get windowHeightPx() {\n this._displaySize()\n return this._helper_get(this._displayData, 'windowHeightPx')\n }\n\n get screenWidthCm() {\n return this._helper_get(this._screenData, 'screenWidthCm')\n }\n\n get screenHeightCm() {\n return this._helper_get(this._screenData, 'screenHeightCm')\n }\n\n get screenDiagonalCm() {\n return this._helper_get(this._screenData, 'screenDiagonalCm')\n }\n\n get screenDiagonalIn() {\n return this._helper_get(this._screenData, 'screenDiagonalIn')\n }\n\n get screenPpi() {\n return this._helper_get(this._screenData, 'screenPpi')\n }\n\n get screenPhysicalPpi() {\n return this._helper_get(this._screenData, 'screenPhysicalPpi')\n }\n\n // Distance\n\n get viewingDistanceCm() {\n return this._helper_get(this._viewingDistanceData)\n }\n\n get nearPointCm() {\n return this._helper_get(this._nearPointData)\n }\n\n get PDCm() {\n return this._helper_get(this._PDData)\n }\n\n // Gaze\n\n get gazePositionPx() {\n return this._helper_get(this._gazePositionData)\n }\n\n get gazeAccuracyDeg() {\n return this._helper_get(this._gazeAccuracyData)\n }\n\n /* -------------------------------- ALL DATA -------------------------------- */\n\n get displayData() {\n return this._displayData\n }\n\n get screenData() {\n return this._screenData\n }\n\n get viewingDistanceData() {\n return this._viewingDistanceData\n }\n\n get nearPointData() {\n return this._nearPointData\n }\n\n get PDData() {\n return this._PDData\n }\n\n get gazeData() {\n return this._gazePositionData\n }\n\n get performanceData() {\n return this._performanceData\n }\n\n get fullscreenData() {\n return this._fullscreenData\n }\n\n get environmentData() {\n return this._environmentData\n }\n\n get languageData() {\n return this._langData\n }\n\n get equipmentData() {\n return this._equipmentData\n }\n\n get checkData() {\n return this._checkData\n }\n\n /* --------------------------------- SETTERS -------------------------------- */\n\n /**\n * @param {{ value: { displayWidthPx: number; displayHeightPx: number; windowWidthPx: number; windowHeightPx: number; }; timestamp: Date; }} data\n */\n set newDisplayData(data) {\n this._displayData.push(data)\n }\n\n /**\n * @param {{ value: { screenWidthCm: number; screenHeightCm: number; screenDiagonalCm: number; screenDiagonalIn: number; screenPpi: number; screenPhysicalPpi: number; }; timestamp: Date; }} data\n */\n set newScreenData(data) {\n this._screenData.push(data)\n }\n\n /**\n * @param {{ value: number; timestamp: Date; method: string; }} data\n */\n set newViewingDistanceData(data) {\n this._viewingDistanceData.push(data)\n }\n\n /**\n * @param {{ value: { x: number; y: number; }; timestamp: Date; }} data\n */\n set newNearPointData(data) {\n this._nearPointData.push(data)\n }\n\n /**\n * @param {{ value: number; timestamp: Date; }} data\n */\n set newPDData(data) {\n this._PDData.push(data)\n }\n\n /**\n * @param {{ value: { x: number; y: number; }; timestamp: Date; }} data\n */\n set newGazePositionData(data) {\n this._gazePositionData.push(data)\n }\n\n /**\n * @param {{ value: number; timestamp: Date; }} data\n */\n set newGazeAccuracyData(data) {\n this._gazeAccuracyData.push(data)\n }\n\n /**\n * @param {{ value: { browser: string; browserVersion: string; model: string; manufacturer: string; engine: string; system: string; systemFamily: string; description: string; fullDescription: string; }; timestamp: Date; }} data\n */\n set newEnvironmentData(data) {\n this._environmentData.push(data)\n }\n\n /**\n * @param {{ value: { idealFps: number; stressFps: number; }; timestamp: number; }} data\n */\n set newPerformanceData(data) {\n this._performanceData.push(data)\n }\n\n /**\n * @param {{ value: boolean; timestamp: Date; }} data\n */\n set newFullscreenData(data) {\n this._fullscreenData.push(data)\n }\n\n /**\n * @param {{ value: { language: string; languageNameEnglish: string; languageNameNative: string; languageDirection: string; languagePhraseSource: string; }; timestamp: Date; }} data\n */\n set newLanguageData(data) {\n this._langData.push(data)\n }\n\n /**\n * @param {{ value: { has: boolean; unit: string; equipment: string; }; timestamp: Date; }} data\n */\n set newEquipmentData(data) {\n this._equipmentData.push(data)\n }\n\n /**\n * @param {any} data\n */\n set newCheckData(data) {\n this._checkData.push(data)\n }\n}\n\n/**\n *\n * Must be called before any other functions\n *\n */\nRemoteCalibrator.prototype.init = async function (options = {}, callback) {\n if (!this._initialized) {\n this._initialized = true\n\n options = Object.assign(\n {\n id: randomPhrases(),\n language: 'AUTO',\n languagePhrasesJSON: null,\n fullscreen: false,\n },\n options,\n )\n\n // load internationalization phrases\n await loadPhrases(options.languagePhrasesJSON)\n\n if (options.fullscreen && !debug) getFullscreen()\n\n this._id = {\n value: options.id,\n timestamp: performance.now(),\n date: new Date(), // only Date to save\n }\n\n this._environment()\n this._displaySize()\n\n if (this._CONST.S.AUTO === options.language)\n // AUTO\n this.newLanguageData = looseSetLanguage(this.userLanguage.value)\n else this.newLanguageData = looseSetLanguage(options.language)\n this._lang = this.language.value\n\n safeExecuteFunc(callback, this._id)\n }\n}\n\n/**\n *\n * Get the environment data, e.g. browser type\n *\n */\nRemoteCalibrator.prototype._environment = function () {\n if (this.checkInitialized()) {\n blurAll()\n\n const isMobile = userAgent => {\n const mobile = userAgent.match(/Mobi/i)\n return mobile ? 'mobile' : 'desktop'\n }\n\n const data = {\n value: {\n concurrency: window.navigator.hardwareConcurrency || -1,\n // bot: bot\n // ? `${bot.name} (${bot.category}) by ${bot.producer.name}`\n // : null,\n browser: platform.name,\n browserVersion: platform.version,\n deviceType: isMobile(navigator.userAgent),\n // model: platform.product || device.device.model,\n model: platform.product || 'unknown',\n // manufacturer: platform.manufacturer || device.device.brand,\n manufacturer: platform.manufacturer || 'unknown',\n engine: platform.layout,\n // system: platform.os.toString(),\n system: `${platform.os.family} ${platform.os.version}`,\n systemFamily: platform.os.family,\n description: platform.description,\n fullDescription: platform.ua,\n userLanguage:\n window.navigator.userLanguage || window.navigator.language,\n },\n timestamp: this.id.timestamp,\n }\n\n this.newEnvironmentData = data\n }\n}\n\n/**\n *\n * Check if RemoteCalibrator is initialized\n *\n */\nRemoteCalibrator.prototype.checkInitialized = function () {\n if (this._initialized) return true\n console.error('RemoteCalibrator is not initialized.')\n return false\n}\n\n/**\n * Get fullscreen\n * @param {Boolean} f Get fullscreen or not from options\n */\nRemoteCalibrator.prototype.getFullscreen = function (f = true) {\n if (isFullscreen()) {\n return true\n }\n\n this.newFullscreenData = {\n value: f && !debug ? getFullscreen() : false,\n timestamp: performance.now(),\n }\n\n // Minimize address bar on mobile devices\n // ! Experimental\n if (this.isMobile.value) window.scrollBy(0, 1)\n\n return this.isFullscreen\n}\n\n/**\n * Set a new language\n */\nRemoteCalibrator.prototype.newLanguage = function (lang) {\n if (this.checkInitialized()) {\n let data\n this.newLanguageData = data = looseSetLanguage(lang)\n this._lang = this.language.value\n return data\n }\n}\n\n/**\n *\n * Add background\n *\n */\nRemoteCalibrator.prototype._addBackground = function (inner) {\n if (this.background !== null) return\n\n let b = document.getElementById('calibration-background')\n if (!b) {\n b = document.createElement('div')\n b.id = 'calibration-background'\n b.className = 'calibration-background' + ` rc-lang-${this.LD.toLowerCase()}`\n\n document.body.classList.add('lock-view')\n document.body.appendChild(b)\n\n b.style.background = this.params.backgroundColor\n }\n\n if (inner) b.innerHTML = inner\n this._background.element = b\n\n return this.background\n}\n\n/**\n *\n * Replace background with a new one\n */\nRemoteCalibrator.prototype._replaceBackground = function (inner) {\n if (this.background !== null) this._removeBackground()\n return this._addBackground(inner)\n}\n\n/**\n *\n * Remove background\n *\n */\nRemoteCalibrator.prototype._removeBackground = function () {\n const b = document.getElementById('calibration-background')\n if (b) {\n document.body.classList.remove('lock-view')\n document.body.removeChild(b)\n\n this._background = {\n element: null,\n instructionElement: null,\n }\n // There is a background and remove successfully\n return true\n }\n // Cannot find the background\n return false\n}\n\n/**\n * Add page headline and short descriptions\n */\nRemoteCalibrator.prototype._addBackgroundText = function (\n headline,\n shortDescription,\n) {\n // Remove the old if there's any\n const ins = this.background.getElementsByClassName('calibration-instruction')\n\n for (let i = 0; i < ins.length; i++) {\n this.background.removeChild(ins[i])\n }\n\n this.background.innerHTML = constructInstructions(headline, shortDescription)\n}\n\n/**\n * Construct a floating

          element for instructions and append to the parent (background) element\n * @param {string} id id of the element\n * @param {string} text init text\n */\nRemoteCalibrator.prototype._constructFloatInstructionElement = function (\n id = null,\n text,\n) {\n if (this.background === null) this._addBackground()\n\n if (this.instructionElement !== null) {\n if (this.instructionElement.id === id) return\n else {\n this.background.removeChild(this.instructionElement)\n this._background.instructionElement = null\n }\n }\n\n const instP = document.createElement('p')\n instP.className = 'float-instruction'\n instP.id = id || 'float-instruction'\n\n instP.innerHTML = text // Init\n this.background.appendChild(instP)\n\n return (this._background.instructionElement = instP)\n}\n\nRemoteCalibrator.prototype._setFloatInstructionElementPos = function (\n side,\n yOffset = 16,\n) {\n // For blind spot test instructions\n const r = this.instructionElement.getBoundingClientRect()\n this.instructionElement.style.bottom = `calc(50% + ${yOffset + 10}px)`\n this.instructionElement.style.textAlign = 'left'\n // this.instructionElement.style.fontSize = '1.1em'\n if (side === 'left') {\n this.instructionElement.style.left = `max(10%, ${r.width / 2}px)`\n this.instructionElement.style.right = 'unset'\n this.instructionElement.style.transform = `translate(${-r.width / 2}px, 0)`\n } else if (side === 'right') {\n this.instructionElement.style.right = `max(10%, ${r.width / 2}px)`\n this.instructionElement.style.left = 'unset'\n this.instructionElement.style.transform = `translate(${r.width / 2}px, 0)`\n } else {\n // Reset to center\n this.instructionElement.style.left = '50%'\n this.instructionElement.style.right = 'unset'\n this.instructionElement.style.top = 'unset'\n this.instructionElement.style.transform = 'translate(-50%, 0)'\n this.instructionElement.style.textAlign = 'center'\n }\n}\n\nRemoteCalibrator.prototype._removeFloatInstructionElement = function () {\n if (this.instructionElement) {\n this.background.removeChild(this.instructionElement)\n this._background.instructionElement = null\n return this.background\n }\n return false\n}\n\nRemoteCalibrator.prototype._addCreditOnBackground = function (creditText) {\n if (this.background === null) this._addBackground()\n\n const p = document.createElement('p')\n p.className = 'calibration-credit-text'\n p.id = 'calibration-credit-text'\n p.innerHTML = creditText\n this.background.appendChild(p)\n\n return p\n}\n\nexport default RemoteCalibrator\n","// eslint-disable-next-line no-undef\nexport const debug = process.env.DEBUG\n","/*\n Do not modify this file! Run npm `npm run phrases` at ROOT of this project to fetch from the Google Sheets.\n https://docs.google.com/spreadsheets/d/1UFfNikfLuo8bSromE34uWDuJrMPFiJG3VpoQKdCGkII/edit#gid=0\n*/\n\nexport const phrases = {\n EE_languageNameEnglish: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_languageNameNative: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_languageDirection: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_languageUsesSpacesBool: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_languageUsesSpaces: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_languageUseSpace: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_languageFont: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_phraseSource: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_languageChoose: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_Initializing: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_OKToTakeCompletionCodeToProlific: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_Yes: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_No: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_Cancel: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_Exit: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needsTitle: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needsOk: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_ThankYou: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_FaceMeshLoading: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_NoPhonePleaseCancel: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needBrowserDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needBrowserNotOSDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needBrowserOSDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needBrowserVersionDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needBrowserVersionNotOSDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needBrowserVersionOSDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needNotBrowserDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needNotBrowserNotOSDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needNotBrowserOSDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needNotOSDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needOSDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needIncognito0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needBrowserDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needBrowserNotOSDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needBrowserOSDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needBrowserVersionDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needBrowserVersionNotOSDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needBrowserVersionOSDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needBrowserFeatures: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needNotBrowserDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needNotBrowserNotOSDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needNotBrowserOSDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needNotOSDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needOSDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needIncognito: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needExceptForScreenResolution: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needScreenHeight: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needScreenSize: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needScreenWidth: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibilityTitle: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatible: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleBrowserDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleBrowserNotOSDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleBrowserOSDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleBrowserVersionDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleBrowserVersionNotOSDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleBrowserVersionOSDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleNotBrowserDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleNotBrowserNotOSDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleNotBrowserOSDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleNotOSDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleOSDeviceCores0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleIncognito0: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleBrowserDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleBrowserNotOSDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleBrowserOSDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleBrowserVersionDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleBrowserVersionNotOSDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleBrowserVersionOSDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleNotBrowserDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleNotBrowserNotOSDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleNotBrowserOSDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleNotOSDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleOSDeviceCores: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleIncognito: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleExceptForScreenResolution: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleScreenHeight: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleScreenSize: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_compatibleScreenWidth: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_needColorimeter: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_notRecognized: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_ok: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_or: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_refresh: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_describeDevice: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_describeScreenSize: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_describeIncognito: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_IDRequested: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_noFileSelected: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_browseForID: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_ID_noLocalStorage: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_ID: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_ID_invalidFile: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_ID_invalidID: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_ID_uploadOrValidID: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_incompatible: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_studyURL: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n EE_unknown: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_smartphoneSurvey: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_phoneBrandAndModel: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_wrongIPhoneModel: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_customBuiltComputer: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_findComputerModelGeneric: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_findModelGeneric: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_findModelAndroid: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_findModelAndroidGeneric: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_findModelAndroidGoogle: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_findModelAndroidHuawei: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_findModelAndroidMotorola: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_findModelAndroidSamsung: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_findModelAndroidXiaomi: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_findModelBada: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_findModelBlackberry: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_findModelFirefox: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_findModelIOs: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_findModelIPad: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_findModelLinux: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_findModelMacOs: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_findModelMaemo: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_findModelPalm: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_findModelWebOS: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_findModelWindows: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_brand: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelName: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNameAndroidGeneric: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNameAndroidGenericLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNameAndroidGoogle: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNameAndroidGoogleLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNameAndroidHuawei: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNameAndroidHuaweiLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNameAndroidMotorola: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNameAndroidMotorolaLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNameAndroidSamsung: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNameAndroidSamsungLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNameAndroidXiaomi: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNameAndroidXiaomiLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNameIOs: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNameIOsLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNameIPad: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNameIPadLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNameMacOS: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNameMacOSLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumber: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberAndroid: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberAndroidGeneric: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberAndroidGenericLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberAndroidGoogle: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberAndroidGoogleLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberAndroidHuawei: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberAndroidHuaweiLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberAndroidLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberAndroidMotorola: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberAndroidMotorolaLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberAndroidSamsung: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberAndroidSamsungLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberAndroidXiaomi: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberAndroidXiaomiLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberBada: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberBadaLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberBlackberry: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberBlackberryLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberFirefox: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberFirefoxLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberIOs: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberIOsLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberIPad: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberIPadLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberLinux: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberLinuxLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberMacOS: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberMacOSLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberMaemo: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberMaemoLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberPalm: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberPalmLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberWebOS: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberWebOSLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberWindows: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_modelNumberWindowsLowercase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_manufacturer: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_serialNumber: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_connectUSBMicrophone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_loudspeakersInComputer: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_microphoneUSB: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_microphoneInDevice: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_reminderVolumeCase: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_reminderVolume: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_surveyPhoneModel: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_needPhoneModel: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_needPhoneModelToCalibrate: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_yourComputer: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_needModelNumberAndName: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_smartphoneOkThanks: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_connectingAndFixFreeze: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_reconnectYourPhone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_restoreSmartphoneCommunication: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_allowMicrophoneUse: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_calibrationReceivedMicrophone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_calibrationReceivedLoudspeaker: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_sorryUSBMicrophone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_sorryPhoneMicrophone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_SamplingHzBits: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_16Is24: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_angleDistanceIntro: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_angleDistanceTitle: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_calibrateMicrophone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_cancel: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_connectionFailed: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_distanceTracking: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_distanceTrackingCloseL: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_distanceTrackingCloseR: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_distanceTrackingGuide1: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_distanceTrackingGuide: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_distanceTrackingIntroEnd: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_distanceTrackingIntroStart: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_distanceTrackingMoveCloser: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_distanceTrackingMoveFarther: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_distanceTrackingMoveFurther: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_distanceTrackingFromFar: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_distanceTrackingWhenFar: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_reconnect: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_refreshBrowserChrome: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_refreshBrowserSafari: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_refreshBrowserFirefox: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_refreshBrowserSamsung: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_refreshBrowserOpera: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_refreshBrowserEdge: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_refreshBrowserGeneric: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_distanceTrackingRedo: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_distanceTrackingTitle: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_environment: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_errorCameraUseDenied: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_errorNoCamera: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_gazeTracking: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_gazeTrackingIntro: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_gazeTrackingNudge: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_gazeTrackingTitle: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_inDescription: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_needPhoneMicrophone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_needPhoneKeypad: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_needPhoneMicrophoneAndKeypad: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_needPhoneSurvey: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_needPhoneSurveyParticipate: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_skipQR_Explanation: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_cantDrawQR: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n \"RC_can'tDrawQR\": {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_cantConnectPhone_Button: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_preferNotToConnectPhone_Button: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_cantReadQR_Button: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_preferNotToReadQR_Button: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_whyCantConnect: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_whyWouldntConnect: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_noSmartphone_Button: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_haveSmartphone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_noSmartphone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_compatibleHaveSmartphone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_compatibleNoSmartphone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_needUSBMicrophone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_pointAndClick: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_tryAnotherPhone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_identifyUSBMicrophone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_goBack: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_identifySmartphone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_needsPointCameraAtQR: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_pointCameraAtQR: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_getPhoneMicrophoneReady: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_getUSBMicrophoneReady: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_calibrationEstimatedAndActualMinutes: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_howLongToCalibrate: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_identifyMicrophone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_lookForMicrophoneProfile: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_loudspeakerInstead: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_tryComputer: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_ifStuckPleaseReturn: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_nearPointIntro: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_nearPointTitle: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_needPortraitOrientation: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_ok: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_panelButton: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_panelIntro: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_panelTitle: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_panelTitleNext: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_panelUsesWebcam: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_panelUsesWebcamPhone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_performance: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_performanceIntro: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_performanceTitle: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_phoneMicrophoneInstructions: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_privacyCamera: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_privacyMicrophoneCalibration: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_proceedToExperiment: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_removeHeadphones: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_requestCamera: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_screenSize: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_screenSizeCredit: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_screenSizeCreditCard: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_screenSizeHave: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_screenSizeIntro: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_screenSizeTitle: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_screenSizeUSBA: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_screenSizeUSBC: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_selectMicrophone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_sound1000HzRecordingLevels: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_soundAllHzRecordingLevels: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_soundAllHzDetails: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_loudspeakerCalibrationResults: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_microphoneCalibrationResults: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_usbMicrophoneInstructions: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_testSounds: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_noSounds: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_phoneMicrophoneCalibration: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_loudspeakerCalibration: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_citeSoundCompressionModel: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_usbMicrophoneCalibration: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_microphoneCalibration: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_hopeMicrophoneIsInLibrary: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_helloCalibrator: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_selectMicrophoneTypeToBeCalibrated: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_selectMicrophoneTypeAlreadyCalibrated: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_selectMicrophoneType: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_OkToConnect: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_enterPhoneOrMicrophone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_nameMicrophone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_nameLoudspeaker: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_usingPhoneNamedMicrophone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_usingPhoneMicrophone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_usingSmartphoneMicrophone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_turnMeToReadBelow: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_placeSmartphoneMicrophone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_usingMicrophoneXXX: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_usingUSBMicrophone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_microphoneNotInCalibrationLibrary: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_loudspeakerIsInCalibrationLibrary: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_microphoneIsInCalibrationLibrary: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_smartphoneSurveyEnd: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_soundRecording: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_Quit: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_ReIdentify: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_ReRecord: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_smartphone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_usbMicrophone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_none: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_backToExperimentWindow: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_starting: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_SoundTest: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_NoCorrection: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_CorrectLoudspeaker: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_CorrectLoudspeakerAndMicrophone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_dB_gainAt1000Hz: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_dB_SPL_gainAt1000Hz: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_DesiredSoundLevel_dB_SPL: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_DesiredDIgitalOutput_dB: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_DesiredDIgitalInput_dB: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_DIgitalInput_dB: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_DIgitalInputMax: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_PlayingSound: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_Play: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_Record: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_StopRecording: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_Refresh: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_USB_Microphone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_UMIK_Microphone: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_AveragingSec: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_dB: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_viewingBlindSpotCredit: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_viewingBlindSpotRejected: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_viewingDistance: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_viewingDistanceIntro: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_viewingDistanceIntroTitle: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_viewingDistanceIntroLiMethod: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_viewingDistanceRedo: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n RC_viewingDistanceTitle: {\n 'en-US': '',\n ar: '',\n hy: '',\n bg: '',\n 'zh-CN': '',\n 'zh-HK': '',\n hr: '',\n cs: '',\n da: '',\n nl: '',\n 'en-UK': '',\n fi: '',\n fr: '',\n de: '',\n el: '',\n he: '',\n hi: '',\n hu: '',\n is: '',\n id: '',\n it: '',\n ja: '',\n kn: '',\n ko: '',\n lt: '',\n ms: '',\n ml: '',\n no: '',\n fa: '',\n pl: '',\n pt: '',\n ro: '',\n ru: '',\n sr: '',\n es: '',\n su: '',\n sw: '',\n sv: '',\n tl: '',\n tr: '',\n ur: '',\n },\n}\n","import { safeExecuteFunc, _copy } from '../components/utils'\n\nexport const _setDebugControl = (RC, panel, panelTasks, panelCallback) => {\n const debugControlElement = document.createElement('div')\n debugControlElement.className = 'rc-panel-debug-control'\n debugControlElement.innerHTML = `

          DEBUG CONTROL

          REMEMBER TO SET debug TO false FOR PRODUCTION MODE!

          `\n\n panel.appendChild(debugControlElement)\n const debugControlRows = [] // Array of task names\n\n for (const task of panelTasks) {\n const taskName = task.name ? task.name : task\n\n const rowElement = document.createElement('div')\n rowElement.className = 'rc-panel-debug-control-task-row'\n rowElement.id = 'rc-debugger-row-' + taskName\n\n const taskDefault = RC._debuggerDefault[taskName]\n\n if (taskDefault) {\n debugControlElement.innerHTML += `

          ${taskName}

          `\n\n const inputTypes = {\n n: 'number',\n s: 'string',\n }\n\n switch (taskName) {\n case 'screenSize':\n for (const valueName in taskDefault.value) {\n rowElement.innerHTML += _createValueElement(\n taskName,\n valueName,\n taskDefault.value[valueName],\n '.value.' + valueName,\n inputTypes.n,\n )\n }\n break\n\n case 'measureDistance':\n rowElement.innerHTML += _createValueElement(\n taskName,\n 'value',\n taskDefault.value,\n '.value',\n inputTypes.n,\n )\n rowElement.innerHTML += _createValueElement(\n taskName,\n 'method',\n taskDefault.method,\n '.method',\n inputTypes.s,\n true,\n )\n break\n\n case 'trackDistance':\n rowElement.innerHTML += _createValueElement(\n taskName,\n 'viewingDistanceCm',\n taskDefault.value.viewingDistanceCm,\n '.value',\n inputTypes.n,\n )\n rowElement.innerHTML += _createValueElement(\n taskName,\n 'PDCm',\n taskDefault.value.PDCm,\n '.value',\n inputTypes.n,\n )\n rowElement.innerHTML += _createValueElement(\n taskName,\n 'nearPointCm.x',\n taskDefault.value.nearPointCm.x,\n '.value.x',\n inputTypes.n,\n )\n rowElement.innerHTML += _createValueElement(\n taskName,\n 'nearPointCm.y',\n taskDefault.value.nearPointCm.y,\n '.value.y',\n inputTypes.n,\n )\n rowElement.innerHTML += _createValueElement(\n taskName,\n 'latencyMs',\n taskDefault.value.latencyMs,\n '.latencyMs',\n inputTypes.n,\n )\n rowElement.innerHTML += _createValueElement(\n taskName,\n 'method',\n taskDefault.method,\n '.method',\n inputTypes.s,\n true,\n )\n break\n\n case 'trackGaze':\n rowElement.innerHTML += _createValueElement(\n taskName,\n 'x',\n taskDefault.value.x,\n '.value.x',\n inputTypes.n,\n )\n rowElement.innerHTML += _createValueElement(\n taskName,\n 'y',\n taskDefault.value.y,\n '.value.y',\n inputTypes.n,\n )\n rowElement.innerHTML += _createValueElement(\n taskName,\n 'latencyMs',\n taskDefault.value.latencyMs,\n '.value.latencyMs',\n inputTypes.n,\n )\n break\n\n case 'performance':\n rowElement.innerHTML += _createValueElement(\n taskName,\n 'computeArrayFillMHz',\n taskDefault.value.computeArrayFillMHz,\n '.value.computeArrayFillMHz',\n inputTypes.n,\n )\n rowElement.innerHTML += _createValueElement(\n taskName,\n 'computeRandomMHz',\n taskDefault.value.computeRandomMHz,\n '.value.computeRandomMHz',\n inputTypes.n,\n )\n rowElement.innerHTML += _createValueElement(\n taskName,\n 'idealFps',\n taskDefault.value.idealFps,\n '.value.idealFps',\n inputTypes.n,\n )\n rowElement.innerHTML += _createValueElement(\n taskName,\n 'stressFps',\n taskDefault.value.stressFps,\n '.value.stressFps',\n inputTypes.n,\n )\n break\n\n default:\n break\n }\n\n debugControlElement.appendChild(rowElement)\n debugControlRows.push(taskName)\n }\n }\n\n const debuggerNext = document.createElement('button')\n debuggerNext.className = 'rc-panel-debug-control-next'\n debuggerNext.innerHTML = 'Simulate calibration and continue'\n debuggerNext.onclick = () => {\n _wrapValues(RC, debugControlRows)\n // Final callback\n safeExecuteFunc(panelCallback, { timestamp: performance.now() })\n // Fixed final callback\n RC._panelStatus.panelFinished = true\n }\n debugControlElement.appendChild(debuggerNext)\n}\n\nconst _createValueElement = (\n taskName,\n name,\n defaultValue,\n source,\n type,\n readonly = false,\n) => {\n return `
          \n \n

          ${name}

          \n
          `\n}\n\n/* -------------------------------------------------------------------------- */\n\nconst _wrapValues = (RC, rowTaskNames) => {\n for (const task of rowTaskNames) {\n const taskRow = document.querySelector('#rc-debugger-row-' + task)\n const newData = {}\n switch (task) {\n case 'screenSize':\n newData.value = {}\n _putData(RC, newData, taskRow)\n RC.newScreenData = _copy(newData)\n break\n\n case 'measureDistance':\n _putData(RC, newData, taskRow)\n RC.newViewingDistanceData = _copy(newData)\n break\n\n case 'trackDistance':\n RC.newViewingDistanceData = {\n value: _get(taskRow, '#trackDistance-viewingDistanceCm'),\n latencyMs: _get(taskRow, '#trackDistance-latencyMs'),\n method: _get(taskRow, '#trackDistance-method', 'string'),\n timestamp: RC._debuggerDefault.timestamp,\n }\n RC.newNearPointData = {\n value: {\n x: _get(taskRow, '#trackDistance-nearPointCm-x'),\n y: _get(taskRow, '#trackDistance-nearPointCm-y'),\n },\n timestamp: RC._debuggerDefault.timestamp,\n }\n RC.newPDData = {\n value: _get(taskRow, '#trackDistance-PDCm'),\n timestamp: RC._debuggerDefault.timestamp,\n }\n break\n\n case 'trackGaze':\n newData.value = {}\n _putData(RC, newData, taskRow)\n RC.newGazePositionData = _copy(newData)\n break\n\n case 'performance':\n newData.value = {}\n _putData(RC, newData, taskRow)\n RC.newPerformanceData = _copy(newData)\n break\n\n default:\n break\n }\n }\n}\n\nconst _get = (parent, id) => {\n const ele = parent.querySelector(id)\n return ele.dataset.type === 'number' ? Number(ele.value) : ele.value\n}\n\nconst _putData = (RC, newData, taskRow) => {\n for (const ele of taskRow.childNodes) {\n const eleInput = ele.querySelector('input')\n try {\n eval(\n `newData${eleInput.dataset.source} = eleInput.dataset.type === 'number' ? Number(eleInput.value) : eleInput.value`,\n )\n } catch (err) {\n err\n }\n\n newData.timestamp = RC._debuggerDefault.timestamp\n }\n return newData\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.animated{-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.repeat-1{-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animated.repeat-2{-webkit-animation-iteration-count:calc(var(--animate-repeat)*2);animation-iteration-count:calc(var(--animate-repeat)*2)}.animated.repeat-3{-webkit-animation-iteration-count:calc(var(--animate-repeat)*3);animation-iteration-count:calc(var(--animate-repeat)*3)}.animated.delay-1s{-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animated.delay-2s{-webkit-animation-delay:calc(var(--animate-delay)*2);animation-delay:calc(var(--animate-delay)*2)}.animated.delay-3s{-webkit-animation-delay:calc(var(--animate-delay)*3);animation-delay:calc(var(--animate-delay)*3)}.animated.delay-4s{-webkit-animation-delay:calc(var(--animate-delay)*4);animation-delay:calc(var(--animate-delay)*4)}.animated.delay-5s{-webkit-animation-delay:calc(var(--animate-delay)*5);animation-delay:calc(var(--animate-delay)*5)}.animated.faster{-webkit-animation-duration:calc(var(--animate-duration)/2);animation-duration:calc(var(--animate-duration)/2)}.animated.fast{-webkit-animation-duration:calc(var(--animate-duration)*.8);animation-duration:calc(var(--animate-duration)*.8)}.animated.slow{-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2)}.animated.slower{-webkit-animation-duration:calc(var(--animate-duration)*3);animation-duration:calc(var(--animate-duration)*3)}@media (prefers-reduced-motion:reduce),print{.animated{-webkit-animation-duration:1ms!important;animation-duration:1ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important;-webkit-transition-duration:1ms!important;transition-duration:1ms!important}.animated[class*=Out]{opacity:0}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/animate.css/source/_base.css\"],\"names\":[],\"mappings\":\"AAAA,UACE,kDAA2C,CAA3C,0CAA2C,CAC3C,gCAAyB,CAAzB,wBACF,CAEA,mBACE,0CAAmC,CAAnC,kCACF,CAEA,mBACE,uDAAgD,CAAhD,+CACF,CAEA,mBACE,+DAA0D,CAA1D,uDACF,CAEA,mBACE,+DAA0D,CAA1D,uDACF,CAEA,mBACE,4CAAqC,CAArC,oCACF,CAEA,mBACE,oDAA+C,CAA/C,4CACF,CAEA,mBACE,oDAA+C,CAA/C,4CACF,CAEA,mBACE,oDAA+C,CAA/C,4CACF,CAEA,mBACE,oDAA+C,CAA/C,4CACF,CAEA,iBACE,0DAAqD,CAArD,kDACF,CAEA,eACE,2DAAuD,CAAvD,mDACF,CAEA,eACE,0DAAqD,CAArD,kDACF,CAEA,iBACE,0DAAqD,CAArD,kDACF,CAEA,6CACE,UACE,wCAAkC,CAAlC,gCAAkC,CAElC,6CAAuC,CAAvC,qCAAuC,CADvC,yCAAmC,CAAnC,iCAEF,CAEA,sBACE,SACF,CACF\",\"sourcesContent\":[\".animated {\\n animation-duration: var(--animate-duration);\\n animation-fill-mode: both;\\n}\\n\\n.animated.infinite {\\n animation-iteration-count: infinite;\\n}\\n\\n.animated.repeat-1 {\\n animation-iteration-count: var(--animate-repeat);\\n}\\n\\n.animated.repeat-2 {\\n animation-iteration-count: calc(var(--animate-repeat) * 2);\\n}\\n\\n.animated.repeat-3 {\\n animation-iteration-count: calc(var(--animate-repeat) * 3);\\n}\\n\\n.animated.delay-1s {\\n animation-delay: var(--animate-delay);\\n}\\n\\n.animated.delay-2s {\\n animation-delay: calc(var(--animate-delay) * 2);\\n}\\n\\n.animated.delay-3s {\\n animation-delay: calc(var(--animate-delay) * 3);\\n}\\n\\n.animated.delay-4s {\\n animation-delay: calc(var(--animate-delay) * 4);\\n}\\n\\n.animated.delay-5s {\\n animation-delay: calc(var(--animate-delay) * 5);\\n}\\n\\n.animated.faster {\\n animation-duration: calc(var(--animate-duration) / 2);\\n}\\n\\n.animated.fast {\\n animation-duration: calc(var(--animate-duration) * 0.8);\\n}\\n\\n.animated.slow {\\n animation-duration: calc(var(--animate-duration) * 2);\\n}\\n\\n.animated.slower {\\n animation-duration: calc(var(--animate-duration) * 3);\\n}\\n\\n@media print, (prefers-reduced-motion: reduce) {\\n .animated {\\n animation-duration: 1ms !important;\\n transition-duration: 1ms !important;\\n animation-iteration-count: 1 !important;\\n }\\n\\n .animated[class*='Out'] {\\n opacity: 0;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/animate.css/source/_vars.css\"],\"names\":[],\"mappings\":\"AAAA,MACE,qBAAsB,CACtB,kBAAmB,CACnB,kBACF\",\"sourcesContent\":[\":root {\\n --animate-duration: 1s;\\n --animate-delay: 1s;\\n --animate-repeat: 1;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/animate.css/source/fading_entrances/fadeInUp.css\"],\"names\":[],\"mappings\":\"AAAA,4BACE,GACE,SAAU,CACV,uCAAkC,CAAlC,+BACF,CAEA,GACE,SAAU,CACV,+BAA+B,CAA/B,uBACF,CACF,CAVA,oBACE,GACE,SAAU,CACV,uCAAkC,CAAlC,+BACF,CAEA,GACE,SAAU,CACV,+BAA+B,CAA/B,uBACF,CACF,CAEA,UACE,+BAAwB,CAAxB,uBACF\",\"sourcesContent\":[\"@keyframes fadeInUp {\\n from {\\n opacity: 0;\\n transform: translate3d(0, 100%, 0);\\n }\\n\\n to {\\n opacity: 1;\\n transform: translate3d(0, 0, 0);\\n }\\n}\\n\\n.fadeInUp {\\n animation-name: fadeInUp;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/animate.css/source/fading_exits/fadeOutDown.css\"],\"names\":[],\"mappings\":\"AAAA,+BACE,GACE,SACF,CAEA,GACE,SAAU,CACV,uCAAkC,CAAlC,+BACF,CACF,CATA,uBACE,GACE,SACF,CAEA,GACE,SAAU,CACV,uCAAkC,CAAlC,+BACF,CACF,CAEA,aACE,kCAA2B,CAA3B,0BACF\",\"sourcesContent\":[\"@keyframes fadeOutDown {\\n from {\\n opacity: 1;\\n }\\n\\n to {\\n opacity: 0;\\n transform: translate3d(0, 100%, 0);\\n }\\n}\\n\\n.fadeOutDown {\\n animation-name: fadeOutDown;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.swal2-popup.swal2-toast{background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:min-content auto min-content;overflow-y:hidden;padding:1em;pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{font-size:1em;margin:.5em 1em;padding:0;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{font-size:1em;height:2em;margin:.5em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{font-size:.8em;margin:.5em 0 0;padding:.5em 0 0}.swal2-popup.swal2-toast .swal2-close{align-self:center;font-size:2em;grid-column:3/3;grid-row:1/99;height:.8em;margin:0;width:.8em}.swal2-popup.swal2-toast .swal2-html-container{font-size:1em;margin:.5em 1em;overflow:initial;padding:0;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{align-self:center;grid-column:1;grid-row:1/99;height:2em;margin:.25em;width:2em}.swal2-popup.swal2-toast .swal2-icon{align-self:center;grid-column:1;grid-row:1/99;height:2em;margin:0 .5em 0 0;min-width:2em;width:2em}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{align-items:center;display:flex;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{height:2em;width:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class\\$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class\\$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{height:auto;justify-content:flex-start;margin:.5em 0 0;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{font-size:1em;margin:.25em .5em;padding:.4em .6em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{border-radius:50%;height:3em;position:absolute;width:1.6em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class\\$=left]{border-radius:4em 0 0 4em;left:-.5em;top:-.8em;transform:rotate(-45deg);transform-origin:2em 2em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class\\$=right]{border-radius:0 4em 4em 0;left:.9375em;top:-.25em;transform-origin:0 1.5em}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{height:2em;width:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{height:2.6875em;left:.4375em;top:0;width:.4375em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class\\$=tip]{left:.1875em;top:1.125em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class\\$=long]{right:.1875em;top:.9375em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}div:where(.swal2-container){box-sizing:border-box;display:grid;grid-template-areas:\"top-start top top-end\" \"center-start center center-end\" \"bottom-start bottom-center bottom-end\";grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;inset:0;overflow-x:hidden;padding:.625em;position:fixed;transition:background-color .1s;z-index:1060;-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:rgba(0,0,0,.4)}div:where(.swal2-container).swal2-backdrop-hide{background:transparent!important}div:where(.swal2-container).swal2-bottom-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}div:where(.swal2-container).swal2-bottom,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-top{grid-template-columns:auto minmax(0,1fr) auto}div:where(.swal2-container).swal2-bottom-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-left>.swal2-popup,div:where(.swal2-container).swal2-center-start>.swal2-popup{align-self:center;grid-row:2}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-left>.swal2-popup,div:where(.swal2-container).swal2-bottom-start>.swal2-popup{align-self:end;grid-column:1;grid-row:3}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup,div:where(.swal2-container).swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{align-self:stretch;grid-row:1/4}div:where(.swal2-container).swal2-no-transition{transition:none!important}div:where(.swal2-container) div:where(.swal2-popup){background:#fff;border:none;border-radius:5px;box-sizing:border-box;color:#545454;display:none;font-family:inherit;font-size:1rem;grid-template-columns:minmax(0,100%);max-width:100%;padding:0 0 1.25em;position:relative;width:32em}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) h2:where(.swal2-title){color:inherit;font-size:1.875em;font-weight:600;margin:0;max-width:100%;padding:.8em 1em 0;position:relative;text-align:center;text-transform:none;word-wrap:break-word}div:where(.swal2-container) div:where(.swal2-actions){align-items:center;box-sizing:border-box;display:flex;flex-wrap:wrap;justify-content:center;margin:1.25em auto 0;padding:0;width:auto;z-index:1}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}div:where(.swal2-container) div:where(.swal2-loader){align-items:center;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-color:#2778c4 transparent;border-radius:100%;border-style:solid;border-width:.25em;display:none;height:2.2em;justify-content:center;margin:0 1.875em;width:2.2em}div:where(.swal2-container) button:where(.swal2-styled){box-shadow:0 0 0 3px transparent;font-weight:500;margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm{background:initial;background-color:#7066e0;border:0;border-radius:.25em;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny{background:initial;background-color:#dc3741;border:0;border-radius:.25em;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel{background:initial;background-color:#6e7881;border:0;border-radius:.25em;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel:focus{box-shadow:0 0 0 3px hsla(208,8%,47%,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-styled):focus{outline:none}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){border-top:1px solid #eee;color:inherit;font-size:1em;margin:1em 0 0;padding:1em 1em 0;text-align:center}div:where(.swal2-container) .swal2-timer-progress-bar-container{border-bottom-left-radius:5px;border-bottom-right-radius:5px;bottom:0;grid-column:auto!important;left:0;overflow:hidden;position:absolute;right:0}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){background:rgba(0,0,0,.2);height:.25em;width:100%}div:where(.swal2-container) img:where(.swal2-image){margin:2em auto 1em;max-width:100%}div:where(.swal2-container) button:where(.swal2-close){align-items:center;background:transparent;border:none;border-radius:5px;color:#ccc;cursor:pointer;font-family:monospace;font-size:2.5em;height:1.2em;justify-content:center;justify-self:end;margin-bottom:-1.2em;margin-right:0;margin-top:0;overflow:hidden;padding:0;transition:color .1s,box-shadow .1s;width:1.2em;z-index:2}div:where(.swal2-container) button:where(.swal2-close):hover{background:transparent;color:#f27474;transform:none}div:where(.swal2-container) button:where(.swal2-close):focus{box-shadow:inset 0 0 0 3px rgba(100,150,200,.5);outline:none}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) .swal2-html-container{color:inherit;font-size:1.125em;font-weight:400;justify-content:center;line-height:normal;margin:1em 1.6em .3em;overflow:auto;padding:0;text-align:center;z-index:1;word-wrap:break-word;word-break:break-word}div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) label:where(.swal2-checkbox),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) textarea:where(.swal2-textarea){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) textarea:where(.swal2-textarea){background:transparent;border:1px solid #d9d9d9;border-radius:.1875em;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;box-sizing:border-box;color:inherit;font-size:1.125em;transition:border-color .1s,box-shadow .1s;width:auto}div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:1px solid #b4dbed;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5);outline:none}div:where(.swal2-container) input:where(.swal2-file)::-moz-placeholder,div:where(.swal2-container) input:where(.swal2-input)::-moz-placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::-moz-placeholder{color:#ccc}div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{background:#fff;margin:1em 2em 3px}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{color:inherit;font-weight:600;text-align:center;width:20%}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{font-size:1.125em;height:2.625em;line-height:2.625em;padding:0}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{background:transparent;font-size:1.125em;margin-left:auto;margin-right:auto;width:75%}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{background:transparent;color:inherit;font-size:1.125em;max-width:100%;min-width:50%;padding:.375em .625em}div:where(.swal2-container) .swal2-checkbox,div:where(.swal2-container) .swal2-radio{align-items:center;background:#fff;color:inherit;justify-content:center}div:where(.swal2-container) .swal2-checkbox label,div:where(.swal2-container) .swal2-radio label{font-size:1.125em;margin:0 .6em}div:where(.swal2-container) .swal2-checkbox input,div:where(.swal2-container) .swal2-radio input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;background:#f0f0f0;color:#666;font-size:1em;font-weight:300;justify-content:center;margin:1em 0 0;overflow:hidden;padding:.625em}div:where(.swal2-container) div:where(.swal2-validation-message):before{background-color:#f27474;border-radius:50%;color:#fff;content:\"!\";display:inline-block;font-weight:600;height:1.5em;line-height:1.5em;margin:0 .625em;min-width:1.5em;text-align:center;width:1.5em}div:where(.swal2-container) .swal2-progress-steps{align-items:center;background:transparent;flex-wrap:wrap;font-weight:600;margin:1.25em auto;max-width:100%;padding:0}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{background:#2778c4;border-radius:2em;color:#fff;flex-shrink:0;height:2em;line-height:2em;text-align:center;width:2em;z-index:20}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{background:#2778c4;flex-shrink:0;height:.4em;margin:0 -1px;width:2.5em;z-index:10}div:where(.swal2-icon){border:.25em solid #000;border-radius:50%;box-sizing:content-box;cursor:default;font-family:inherit;height:5em;justify-content:center;line-height:5em;margin:2.5em auto .6em;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:5em}div:where(.swal2-icon) .swal2-icon-content{align-items:center;display:flex;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{flex-grow:1;position:relative}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{background-color:#f27474;border-radius:.125em;display:block;height:.3125em;position:absolute;top:2.3125em;width:2.9375em}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class\\$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class\\$=right]{right:1em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}div:where(.swal2-icon).swal2-warning{border-color:#facea8;color:#f8bb86}div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}div:where(.swal2-icon).swal2-info{border-color:#9de0f6;color:#3fc3ee}div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}div:where(.swal2-icon).swal2-question{border-color:#c9dae1;color:#87adbd}div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{border-radius:50%;height:7.5em;position:absolute;width:3.75em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class\\$=left]{border-radius:7.5em 0 0 7.5em;left:-2.0635em;top:-.4375em;transform:rotate(-45deg);transform-origin:3.75em 3.75em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class\\$=right]{border-radius:0 7.5em 7.5em 0;left:1.875em;top:-.6875em;transform:rotate(-45deg);transform-origin:0 3.75em}div:where(.swal2-icon).swal2-success .swal2-success-ring{border:.25em solid hsla(98,55%,69%,.3);border-radius:50%;box-sizing:content-box;height:100%;left:-.25em;position:absolute;top:-.25em;width:100%;z-index:2}div:where(.swal2-icon).swal2-success .swal2-success-fix{height:5.625em;left:1.625em;position:absolute;top:.5em;transform:rotate(-45deg);width:.4375em;z-index:1}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{background-color:#a5dc86;border-radius:.125em;display:block;height:.3125em;position:absolute;z-index:2}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class\\$=tip]{left:.8125em;top:2.875em;transform:rotate(45deg);width:1.5625em}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class\\$=long]{right:.5em;top:2.375em;transform:rotate(-45deg);width:2.9375em}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:swal2-show .3s}.swal2-hide{animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{height:50px;overflow:scroll;position:absolute;top:-9999px;width:50px}.swal2-rtl .swal2-close{margin-left:0;margin-right:0}.swal2-rtl .swal2-timer-progress-bar{left:auto;right:0}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotate(2deg)}33%{transform:translateY(0) rotate(-2deg)}66%{transform:translateY(.3125em) rotate(2deg)}to{transform:translateY(0) rotate(0deg)}}@keyframes swal2-toast-hide{to{opacity:0;transform:rotate(1deg)}}@keyframes swal2-toast-animate-success-line-tip{0%{left:.0625em;top:.5625em;width:0}54%{left:.125em;top:.125em;width:0}70%{left:-.25em;top:.625em;width:1.625em}84%{left:.75em;top:1.0625em;width:.5em}to{left:.1875em;top:1.125em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{right:1.375em;top:1.625em;width:0}65%{right:.9375em;top:1.25em;width:0}84%{right:0;top:.9375em;width:1.125em}to{right:.1875em;top:.9375em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}to{transform:scale(1)}}@keyframes swal2-hide{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.5)}}@keyframes swal2-animate-success-line-tip{0%{left:.0625em;top:1.1875em;width:0}54%{left:.125em;top:1.0625em;width:0}70%{left:-.375em;top:2.1875em;width:3.125em}84%{left:1.3125em;top:3em;width:1.0625em}to{left:.8125em;top:2.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{right:2.875em;top:3.375em;width:0}65%{right:2.875em;top:3.375em;width:0}84%{right:0;top:2.1875em;width:3.4375em}to{right:.5em;top:2.375em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}to{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;opacity:0;transform:scale(.4)}50%{margin-top:1.625em;opacity:0;transform:scale(.4)}80%{margin-top:-.375em;transform:scale(1.15)}to{margin-top:0;opacity:1;transform:scale(1)}}@keyframes swal2-animate-error-icon{0%{opacity:0;transform:rotateX(100deg)}to{opacity:1;transform:rotateX(0deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-1turn)}to{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{opacity:0;transform:rotate(45deg)}25%{opacity:.4;transform:rotate(-25deg)}50%{opacity:.8;transform:rotate(15deg)}75%{opacity:1;transform:rotate(-5deg)}to{opacity:1;transform:rotateX(0)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent;box-sizing:border-box;max-width:100%;pointer-events:none;width:360px}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/sweetalert2/src/scss/_toasts.scss\",\"webpack://./node_modules/sweetalert2/src/variables.scss\",\"webpack://./node_modules/sweetalert2/src/scss/_core.scss\",\"webpack://./node_modules/sweetalert2/src/scss/_icons.scss\",\"webpack://./node_modules/sweetalert2/src/scss/_toasts-animations.scss\",\"webpack://./node_modules/sweetalert2/src/scss/_animations.scss\",\"webpack://./node_modules/sweetalert2/src/scss/_mixins.scss\",\"webpack://./node_modules/sweetalert2/src/scss/_body.scss\",\"webpack://./node_modules/sweetalert2/src/scss/_toasts-body.scss\"],\"names\":[],\"mappings\":\"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CCjCrB,gCDqCwB,CCtCxB,kBDqCyB,CCpCzB,kBDqCwB,CCrCxB,kBDqCwB,CC/CxB,YAAA,CAIA,YDqCkB,CCvClB,sBDqC2B,CClC3B,gBDqCkB,CCvClB,WD4CwB,CClC1B,wDAIE,gCDdsB,CCetB,eDduB,CCUvB,cDdkB,CCelB,oBDdmB,CCenB,yBDZuB,CCgBvB,wEACE,cAAA,CAGF,sEAIE,kBAAA,CACA,wBDfkC,CCYlC,QDdwB,CCexB,mBDd+B,CCiB/B,UDtNQ,CCuNR,aDf2B,CCiB3B,4EACE,yCDjBgC,CCqBpC,mEAIE,kBAAA,CACA,wBDpB+B,CCiB/B,QDnBqB,CCoBrB,mBDnB4B,CCsB5B,UDpOQ,CCqOR,aDpBwB,CCsBxB,yEACE,uCDtB6B,CC0BjC,qEAIE,kBAAA,CACA,wBDzBiC,CCsBjC,QDxBuB,CCyBvB,mBDxB8B,CC2B9B,UDlPQ,CCmPR,aDzB0B,CC2B1B,2EACE,wCD3B+B,CCgCjC,oFACE,yCD5DwB,CCgE5B,8DACE,YDlEuB,CCqEzB,0EACE,QAAA,CAIJ,qDAGE,yBAAA,CACA,aDpIiB,CCqIjB,aDpIqB,CCgIrB,cDpIkB,CCqIlB,iBDpImB,CCwInB,iBDpIsB,CCuIxB,gEAQE,6BD9QkB,CC6QlB,8BD7QkB,CCyQlB,QAAA,CAEA,0BAAA,CADA,MAAA,CAEA,eAAA,CALA,iBAAA,CACA,ODxQkB,CCiRpB,iEAGE,yBDjJkC,CCgJlC,YDjJ8B,CCgJ9B,UD/IkC,CCoJpC,oDAEE,mBDvPiB,CCsPjB,cDtPiB,CC0PnB,uDAGE,kBDxJ6B,CCqK7B,sBDxJ4B,CCqJ5B,WDxJwB,CCyJxB,iBD1SkB,CC6SlB,UDxJuB,CC2JvB,cAAA,CAFA,qBDxJ6B,CCyJ7B,eDxJ2B,CC2I3B,YDxJwB,CCsJxB,sBDxJiC,CCyKjC,gBD3K8B,CC+J9B,oBAAA,CADA,cDxJqB,CCuJrB,YDvJqB,CC2JrB,eAAA,CADA,SDzJyB,CC2JzB,mCDzJF,CCkJE,WDxJuB,CCqJvB,SDxJ8B,CC6K9B,6DAEE,sBDxJgC,CCyJhC,aD1RQ,CCwRR,cDxRQ,CC6RV,6DAEE,+CD1JgC,CCyJhC,YDzJgC,CC6JlC,yEACE,QAAA,CAIJ,kDAME,aDtRyB,CCuRzB,iBDtR6B,CCuR7B,eDtR+B,CCgR/B,sBDtRmC,CC6RnC,kBDtR+B,CCgR/B,qBDtR0B,CCwR1B,aDtR4B,CCqR5B,SDtR2B,CC4R3B,iBDtR8B,CC6Q9B,SAAA,CAUA,oBDtR6B,CCuR7B,qBDtR8B,CCyRhC,4UAME,kBD5RiB,CC+RnB,uKAQE,sBD7RqB,CC2RrB,wBDjSiB,CCkSjB,qBDjSwB,CCmSxB,gEDjSF,CC2RE,qBAAA,CAOA,aD9RgB,CC+RhB,iBDjSoB,CC2RpB,0CDvRF,CCsRE,UD1RoB,CCmSpB,0NACE,8BAAA,CACA,oCAAA,CAGF,yLACE,wBDjSqB,CCmSrB,yEDhSJ,CC+RI,YD/RJ,CCmSE,6NACE,UAAA,CADF,8MACE,UAAA,CAIJ,yCAEE,eDtYU,CCqYV,kBDrYU,CCwYV,+CACE,SAAA,CAGF,gDAEE,aD3Tc,CC4Td,eAAA,CACA,iBAAA,CAHA,SAGA,CAGF,+FAIE,iBDtUkB,CCoUlB,cD3Ue,CC8Uf,mBD9Ue,CC4Uf,SD5Ue,CCkVnB,yCACE,cDnViB,CCoVjB,eDnVkB,CCsVpB,wCAIE,sBDnVqB,CCoVrB,iBDrVoB,CCmVpB,gBAAA,CADA,iBAAA,CADA,SDjVoB,CCwVtB,4CACE,aD1UoB,CC2UpB,aD1UqB,CC6UvB,0CAIE,sBDhWqB,CCiWrB,aDhWgB,CCiWhB,iBDnWoB,CC+VpB,cAAA,CADA,aAAA,CAEA,qBDhWoB,CCsWtB,qFAEE,kBAAA,CAEA,eD3bU,CC4bV,aDzWgB,CCuWhB,sBDvWgB,CC2WhB,iGAEE,iBD/WkB,CC8WlB,aD9WkB,CCkXpB,iGACE,aAAA,CACA,aAAA,CAIJ,4DACE,YAAA,CACA,sBDtWgC,CCuWhC,iBDxWuB,CC2WzB,iEACE,kBDxWmC,CC6WnC,kBDzWkC,CC0WlC,UDzW6B,CC0W7B,aDzWiC,CC0WjC,eDzWmC,CCkWnC,sBDxWuC,CCyWvC,cDxW8B,CC0W9B,eAAA,CADA,cDpWmC,CC2WnC,wEASE,wBD3bQ,CC0bR,iBAAA,CAEA,UDpeQ,CC2dR,WAAA,CACA,oBAA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\",\"sourcesContent\":[\".swal2-popup {\\n &.swal2-toast {\\n box-sizing: border-box;\\n grid-column: 1/4 !important;\\n grid-row: 1/4 !important;\\n grid-template-columns: min-content auto min-content;\\n padding: $swal2-toast-padding;\\n overflow-y: hidden;\\n background: $swal2-toast-background;\\n box-shadow: $swal2-toast-box-shadow;\\n pointer-events: all;\\n\\n > * {\\n grid-column: 2;\\n }\\n\\n .swal2-title {\\n margin: $swal2-toast-title-margin;\\n padding: $swal2-toast-title-padding;\\n font-size: $swal2-toast-title-font-size;\\n text-align: initial;\\n }\\n\\n .swal2-loading {\\n justify-content: center;\\n }\\n\\n .swal2-input {\\n height: $swal2-toast-input-height;\\n margin: $swal2-toast-input-margin;\\n font-size: $swal2-toast-input-font-size;\\n }\\n\\n .swal2-validation-message {\\n font-size: $swal2-toast-validation-font-size;\\n }\\n\\n .swal2-footer {\\n margin: $swal2-toast-footer-margin;\\n padding: $swal2-toast-footer-margin;\\n font-size: $swal2-toast-footer-font-size;\\n }\\n\\n .swal2-close {\\n grid-column: 3/3;\\n grid-row: 1/99;\\n align-self: center;\\n width: $swal2-toast-close-button-width;\\n height: $swal2-toast-close-button-height;\\n margin: $swal2-toast-close-button-margin;\\n font-size: $swal2-toast-close-button-font-size;\\n }\\n\\n .swal2-html-container {\\n margin: $swal2-toast-html-container-margin;\\n padding: $swal2-toast-html-container-padding;\\n overflow: initial;\\n font-size: $swal2-toast-html-container-font-size;\\n text-align: initial;\\n\\n &:empty {\\n padding: 0;\\n }\\n }\\n\\n .swal2-loader {\\n grid-column: 1;\\n grid-row: 1/99;\\n align-self: center;\\n width: 2em;\\n height: 2em;\\n margin: 0.25em;\\n }\\n\\n .swal2-icon {\\n grid-column: 1;\\n grid-row: 1/99;\\n align-self: center;\\n width: 2em;\\n min-width: 2em;\\n height: 2em;\\n margin: 0 0.5em 0 0;\\n\\n .swal2-icon-content {\\n display: flex;\\n align-items: center;\\n font-size: $swal2-toast-icon-font-size;\\n font-weight: bold;\\n }\\n\\n &.swal2-success {\\n .swal2-success-ring {\\n width: 2em;\\n height: 2em;\\n }\\n }\\n\\n &.swal2-error {\\n [class^='swal2-x-mark-line'] {\\n top: 0.875em;\\n width: 1.375em;\\n\\n &[class$='left'] {\\n left: 0.3125em;\\n }\\n\\n &[class$='right'] {\\n right: 0.3125em;\\n }\\n }\\n }\\n }\\n\\n .swal2-actions {\\n justify-content: flex-start;\\n height: auto;\\n margin: 0;\\n margin-top: 0.5em;\\n padding: 0 0.5em;\\n }\\n\\n .swal2-styled {\\n margin: 0.25em 0.5em;\\n padding: 0.4em 0.6em;\\n font-size: $swal2-toast-buttons-font-size;\\n }\\n\\n .swal2-success {\\n border-color: $swal2-success;\\n\\n [class^='swal2-success-circular-line'] {\\n // Emulate moving circular line\\n position: absolute;\\n width: 1.6em;\\n height: 3em;\\n border-radius: 50%;\\n\\n &[class$='left'] {\\n top: -0.8em;\\n left: -0.5em;\\n transform: rotate(-45deg);\\n transform-origin: 2em 2em;\\n border-radius: 4em 0 0 4em;\\n }\\n\\n &[class$='right'] {\\n top: -0.25em;\\n left: 0.9375em;\\n transform-origin: 0 1.5em;\\n border-radius: 0 4em 4em 0;\\n }\\n }\\n\\n .swal2-success-ring {\\n width: 2em;\\n height: 2em;\\n }\\n\\n .swal2-success-fix {\\n top: 0;\\n left: 0.4375em;\\n width: 0.4375em;\\n height: 2.6875em;\\n }\\n\\n [class^='swal2-success-line'] {\\n height: 0.3125em;\\n\\n &[class$='tip'] {\\n top: 1.125em;\\n left: 0.1875em;\\n width: 0.75em;\\n }\\n\\n &[class$='long'] {\\n top: 0.9375em;\\n right: 0.1875em;\\n width: 1.375em;\\n }\\n }\\n\\n &.swal2-icon-show {\\n @if $swal2-icon-animations {\\n .swal2-success-line-tip {\\n animation: swal2-toast-animate-success-line-tip 0.75s;\\n }\\n\\n .swal2-success-line-long {\\n animation: swal2-toast-animate-success-line-long 0.75s;\\n }\\n }\\n }\\n }\\n\\n &.swal2-show {\\n animation: $swal2-toast-show-animation;\\n }\\n\\n &.swal2-hide {\\n animation: $swal2-toast-hide-animation;\\n }\\n }\\n}\\n\",\"$swal2-white: #fff !default;\\n$swal2-black: #000 !default;\\n$swal2-outline-color: rgba(100, 150, 200, 0.5) !default;\\n\\n// CONTAINER\\n$swal2-container-padding: 0.625em !default;\\n\\n// POPUP\\n$swal2-width: 32em !default;\\n$swal2-padding: 0 0 1.25em !default;\\n$swal2-border: none !default;\\n$swal2-color: lighten($swal2-black, 33) !default;\\n$swal2-border-radius: 5px !default;\\n$swal2-box-shadow: #d9d9d9 !default;\\n\\n// ANIMATIONS\\n$swal2-show-animation: swal2-show 0.3s !default;\\n$swal2-hide-animation: swal2-hide 0.15s forwards !default;\\n\\n// BACKGROUND\\n$swal2-background: $swal2-white !default;\\n\\n// TYPOGRAPHY\\n$swal2-font: inherit !default;\\n$swal2-font-size: 1rem !default;\\n\\n// BACKDROP\\n$swal2-backdrop: rgba($swal2-black, 0.4) !default;\\n$swal2-backdrop-transition: background-color 0.1s !default;\\n\\n// ICONS\\n$swal2-icon-size: 5em !default;\\n$swal2-icon-animations: true !default;\\n$swal2-icon-margin: 2.5em auto 0.6em !default;\\n$swal2-icon-font-family: inherit !default;\\n$swal2-icon-font-size: 3.75em !default;\\n$swal2-icon-border-color: #000 !default;\\n$swal2-icon-zoom: null !default;\\n$swal2-success: #a5dc86 !default;\\n$swal2-success-border: rgba($swal2-success, 0.3) !default;\\n$swal2-error: #f27474 !default;\\n$swal2-warning: #f8bb86 !default;\\n$swal2-info: #3fc3ee !default;\\n$swal2-question: #87adbd !default;\\n\\n// IMAGE\\n$swal2-image-margin: 2em auto 1em !default;\\n\\n// TITLE\\n$swal2-title-position: relative !default;\\n$swal2-title-max-width: 100% !default;\\n$swal2-title-margin: 0 !default;\\n$swal2-title-padding: 0.8em 1em 0 !default;\\n$swal2-title-color: inherit !default;\\n$swal2-title-font-size: 1.875em !default;\\n$swal2-title-font-weight: 600 !default;\\n$swal2-title-text-align: center !default;\\n\\n// HTML CONTAINER\\n$swal2-html-container-justify-content: center !default;\\n$swal2-html-container-margin: 1em 1.6em 0.3em !default;\\n$swal2-html-container-padding: 0 !default;\\n$swal2-html-container-overflow: auto !default;\\n$swal2-html-container-color: inherit !default;\\n$swal2-html-container-font-size: 1.125em !default;\\n$swal2-html-container-font-weight: normal !default;\\n$swal2-html-container-line-height: normal !default;\\n$swal2-html-container-text-align: center !default;\\n$swal2-html-container-word-wrap: break-word !default;\\n$swal2-html-container-word-break: break-word !default;\\n\\n// INPUT\\n$swal2-input-margin: 1em 2em 3px !default;\\n$swal2-input-width: auto !default;\\n$swal2-input-height: 2.625em !default;\\n$swal2-input-padding: 0 0.75em !default;\\n$swal2-input-border: 1px solid lighten($swal2-black, 85) !default;\\n$swal2-input-border-radius: 0.1875em !default;\\n$swal2-input-box-shadow:\\n inset 0 1px 1px rgba($swal2-black, 0.06),\\n 0 0 0 3px transparent !default;\\n$swal2-input-font-size: 1.125em !default;\\n$swal2-input-background: transparent !default;\\n$swal2-input-color: inherit !default;\\n$swal2-input-transition:\\n border-color 0.1s,\\n box-shadow 0.1s !default;\\n\\n// INPUT:FOCUS\\n$swal2-input-focus-border: 1px solid #b4dbed !default;\\n$swal2-input-focus-outline: none !default;\\n$swal2-input-focus-box-shadow:\\n inset 0 1px 1px rgba($swal2-black, 0.06),\\n 0 0 0 3px $swal2-outline-color !default;\\n\\n// TEXTAREA SPECIFIC VARIABLES\\n$swal2-textarea-height: 6.75em !default;\\n$swal2-textarea-padding: 0.75em !default;\\n\\n// INPUT LABEL\\n$swal2-input-label-margin: 1em auto 0 !default;\\n$swal2-input-label-justify-content: center !default;\\n\\n// VALIDATION MESSAGE\\n$swal2-validation-message-align-items: center !default;\\n$swal2-validation-message-justify-content: center !default;\\n$swal2-validation-message-margin: 1em 0 0 !default;\\n$swal2-validation-message-padding: 0.625em !default;\\n$swal2-validation-message-background: lighten($swal2-black, 94) !default;\\n$swal2-validation-message-color: lighten($swal2-black, 40) !default;\\n$swal2-validation-message-font-size: 1em !default;\\n$swal2-validation-message-font-weight: 300 !default;\\n$swal2-validation-message-icon-background: $swal2-error !default;\\n$swal2-validation-message-icon-color: $swal2-white !default;\\n$swal2-validation-message-icon-zoom: null !default;\\n\\n// PROGRESS STEPS\\n$swal2-progress-steps-flex-wrap: wrap !default;\\n$swal2-progress-steps-align-items: center !default;\\n$swal2-progress-steps-max-width: 100% !default;\\n$swal2-progress-steps-background: transparent !default;\\n$swal2-progress-steps-margin: 1.25em auto !default;\\n$swal2-progress-steps-padding: 0 !default;\\n$swal2-progress-steps-font-weight: 600 !default;\\n$swal2-progress-steps-distance: 2.5em !default;\\n$swal2-progress-step-width: 2em;\\n$swal2-progress-step-height: 2em;\\n$swal2-progress-step-border-radius: 2em;\\n$swal2-progress-step-background: #add8e6 !default;\\n$swal2-progress-step-color: $swal2-white !default;\\n$swal2-active-step-background: #2778c4 !default;\\n$swal2-active-step-color: $swal2-white !default;\\n\\n// FOOTER\\n$swal2-footer-margin: 1em 0 0 !default;\\n$swal2-footer-padding: 1em 1em 0 !default;\\n$swal2-footer-border-color: #eee !default;\\n$swal2-footer-color: inherit !default;\\n$swal2-footer-font-size: 1em !default;\\n$swal2-footer-text-align: center !default;\\n\\n// TIMER PROGRESS BAR\\n$swal2-timer-progress-bar-height: 0.25em;\\n$swal2-timer-progress-bar-background: rgba($swal2-black, 0.2) !default;\\n\\n// CLOSE BUTTON\\n$swal2-close-button-justify-self: end !default;\\n$swal2-close-button-align-items: center !default;\\n$swal2-close-button-justify-content: center !default;\\n$swal2-close-button-width: 1.2em !default;\\n$swal2-close-button-height: 1.2em !default;\\n$swal2-close-button-position: null !default;\\n$swal2-close-button-gap: 0 !default;\\n$swal2-close-button-padding: 0 !default;\\n$swal2-close-button-transition:\\n color 0.1s,\\n box-shadow 0.1s !default;\\n$swal2-close-button-border: none !default;\\n$swal2-close-button-border-radius: $swal2-border-radius !default;\\n$swal2-close-button-outline: null !default;\\n$swal2-close-button-background: transparent !default;\\n$swal2-close-button-color: #ccc !default;\\n$swal2-close-button-font-family: monospace !default;\\n$swal2-close-button-font-size: 2.5em !default;\\n$swal2-close-button-box-shadow: inset 0 0 0 3px transparent !default;\\n\\n// CLOSE BUTTON:HOVER\\n$swal2-close-button-hover-transform: none !default;\\n$swal2-close-button-hover-color: $swal2-error !default;\\n$swal2-close-button-hover-background: transparent !default;\\n\\n// CLOSE BUTTON:FOCUS\\n$swal2-close-button-focus-outline: none !default;\\n$swal2-close-button-focus-box-shadow: inset 0 0 0 3px $swal2-outline-color !default;\\n\\n// ACTIONS\\n$swal2-actions-flex-wrap: wrap !default;\\n$swal2-actions-align-items: center !default;\\n$swal2-actions-justify-content: center !default;\\n$swal2-actions-width: auto !default;\\n$swal2-actions-margin: 1.25em auto 0 !default;\\n$swal2-actions-padding: 0 !default;\\n\\n// COMMON VARIABLES FOR ALL ACTION BUTTONS\\n$swal2-button-margin: 0.3125em !default;\\n$swal2-button-padding: 0.625em 1.1em !default;\\n$swal2-button-transition: box-shadow 0.1s !default;\\n$swal2-button-box-shadow: 0 0 0 3px transparent !default;\\n$swal2-button-font-weight: 500 !default;\\n$swal2-button-darken-hover: rgba($swal2-black, 0.1) !default;\\n$swal2-button-darken-active: rgba($swal2-black, 0.2) !default;\\n$swal2-button-focus-outline: none !default;\\n$swal2-button-focus-box-shadow: 0 0 0 3px $swal2-outline-color !default;\\n\\n// CONFIRM BUTTON\\n$swal2-confirm-button-order: null !default;\\n$swal2-confirm-button-border: 0 !default;\\n$swal2-confirm-button-border-radius: 0.25em !default;\\n$swal2-confirm-button-background-color: #7066e0 !default;\\n$swal2-confirm-button-color: $swal2-white !default;\\n$swal2-confirm-button-font-size: 1em !default;\\n$swal2-confirm-button-focus-box-shadow: 0 0 0 3px rgba($swal2-confirm-button-background-color, 0.5) !default;\\n\\n// DENY BUTTON\\n$swal2-deny-button-order: null !default;\\n$swal2-deny-button-border: 0 !default;\\n$swal2-deny-button-border-radius: 0.25em !default;\\n$swal2-deny-button-background-color: #dc3741 !default;\\n$swal2-deny-button-color: $swal2-white !default;\\n$swal2-deny-button-font-size: 1em !default;\\n$swal2-deny-button-focus-box-shadow: 0 0 0 3px rgba($swal2-deny-button-background-color, 0.5) !default;\\n\\n// CANCEL BUTTON\\n$swal2-cancel-button-order: null !default;\\n$swal2-cancel-button-border: 0 !default;\\n$swal2-cancel-button-border-radius: 0.25em !default;\\n$swal2-cancel-button-background-color: #6e7881 !default;\\n$swal2-cancel-button-color: $swal2-white !default;\\n$swal2-cancel-button-font-size: 1em !default;\\n$swal2-cancel-button-focus-box-shadow: 0 0 0 3px rgba($swal2-cancel-button-background-color, 0.5) !default;\\n\\n// LOADER\\n$swal2-loader-align-items: center !default;\\n$swal2-loader-justify-content: center !default;\\n$swal2-loader-width: 2.2em !default;\\n$swal2-loader-height: 2.2em !default;\\n$swal2-loader-margin: 0 1.875em !default;\\n$swal2-loader-animation: swal2-rotate-loading 1.5s linear 0s infinite normal !default;\\n$swal2-loader-border-width: 0.25em !default;\\n$swal2-loader-border-style: solid !default;\\n$swal2-loader-border-radius: 100% !default;\\n$swal2-loader-border-color: #2778c4 transparent #2778c4 transparent !default;\\n\\n// TOASTS\\n$swal2-toast-show-animation: swal2-toast-show 0.5s !default;\\n$swal2-toast-hide-animation: swal2-toast-hide 0.1s forwards !default;\\n$swal2-toast-border: none !default;\\n$swal2-toast-box-shadow:\\n 0 0 1px hsl(0deg 0% 0% / 0.075),\\n 0 1px 2px hsl(0deg 0% 0% / 0.075),\\n 1px 2px 4px hsl(0deg 0% 0% / 0.075),\\n 1px 3px 8px hsl(0deg 0% 0% / 0.075),\\n 2px 4px 16px hsl(0deg 0% 0% / 0.075) !default;\\n$swal2-toast-background: $swal2-white !default;\\n$swal2-toast-close-button-width: 0.8em !default;\\n$swal2-toast-close-button-height: 0.8em !default;\\n$swal2-toast-close-button-margin: 0 !default;\\n$swal2-toast-close-button-font-size: 2em !default;\\n$swal2-toast-width: 360px !default;\\n$swal2-toast-padding: 1em !default;\\n$swal2-toast-title-margin: 0.5em 1em !default;\\n$swal2-toast-title-padding: 0 !default;\\n$swal2-toast-title-font-size: 1em !default;\\n$swal2-toast-icon-font-size: 1.8em !default;\\n$swal2-toast-html-container-margin: 0.5em 1em !default;\\n$swal2-toast-html-container-padding: 0 !default;\\n$swal2-toast-html-container-font-size: 1em !default;\\n$swal2-toast-input-height: 2em !default;\\n$swal2-toast-input-margin: 0.5em !default;\\n$swal2-toast-input-font-size: 1em !default;\\n$swal2-toast-validation-font-size: 1em !default;\\n$swal2-toast-buttons-font-size: 1em !default;\\n$swal2-toast-footer-margin: 0.5em 0 0 !default;\\n$swal2-toast-footer-padding: 0.5em 0 0 !default;\\n$swal2-toast-footer-font-size: 0.8em !default;\\n\",\"@use 'sass:math';\\n\\ndiv:where(.swal2-container) {\\n display: grid;\\n position: fixed;\\n z-index: 1060;\\n inset: 0;\\n box-sizing: border-box;\\n grid-template-areas:\\n 'top-start top top-end'\\n 'center-start center center-end'\\n 'bottom-start bottom-center bottom-end';\\n grid-template-rows: minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);\\n height: 100%; // Safari\\n padding: $swal2-container-padding;\\n overflow-x: hidden;\\n transition: $swal2-backdrop-transition;\\n\\n // sweetalert2/issues/905\\n -webkit-overflow-scrolling: touch;\\n\\n &.swal2-backdrop-show,\\n &.swal2-noanimation {\\n background: $swal2-backdrop;\\n }\\n\\n &.swal2-backdrop-hide {\\n background: transparent !important;\\n }\\n\\n &.swal2-top-start,\\n &.swal2-center-start,\\n &.swal2-bottom-start {\\n grid-template-columns: minmax(0, 1fr) auto auto;\\n }\\n\\n &.swal2-top,\\n &.swal2-center,\\n &.swal2-bottom {\\n grid-template-columns: auto minmax(0, 1fr) auto;\\n }\\n\\n &.swal2-top-end,\\n &.swal2-center-end,\\n &.swal2-bottom-end {\\n grid-template-columns: auto auto minmax(0, 1fr);\\n }\\n\\n &.swal2-top-start > .swal2-popup {\\n align-self: start;\\n }\\n\\n &.swal2-top > .swal2-popup {\\n grid-column: 2;\\n place-self: start center;\\n }\\n\\n &.swal2-top-end > .swal2-popup,\\n &.swal2-top-right > .swal2-popup {\\n grid-column: 3;\\n place-self: start end;\\n }\\n\\n &.swal2-center-start > .swal2-popup,\\n &.swal2-center-left > .swal2-popup {\\n grid-row: 2;\\n align-self: center;\\n }\\n\\n &.swal2-center > .swal2-popup {\\n grid-column: 2;\\n grid-row: 2;\\n place-self: center center;\\n }\\n\\n &.swal2-center-end > .swal2-popup,\\n &.swal2-center-right > .swal2-popup {\\n grid-column: 3;\\n grid-row: 2;\\n place-self: center end;\\n }\\n\\n &.swal2-bottom-start > .swal2-popup,\\n &.swal2-bottom-left > .swal2-popup {\\n grid-column: 1;\\n grid-row: 3;\\n align-self: end;\\n }\\n\\n &.swal2-bottom > .swal2-popup {\\n grid-column: 2;\\n grid-row: 3;\\n place-self: end center;\\n }\\n\\n &.swal2-bottom-end > .swal2-popup,\\n &.swal2-bottom-right > .swal2-popup {\\n grid-column: 3;\\n grid-row: 3;\\n place-self: end end;\\n }\\n\\n &.swal2-grow-row > .swal2-popup,\\n &.swal2-grow-fullscreen > .swal2-popup {\\n grid-column: 1/4;\\n width: 100%;\\n }\\n\\n &.swal2-grow-column > .swal2-popup,\\n &.swal2-grow-fullscreen > .swal2-popup {\\n grid-row: 1/4;\\n align-self: stretch;\\n }\\n\\n &.swal2-no-transition {\\n transition: none !important;\\n }\\n\\n div:where(.swal2-popup) {\\n display: none;\\n position: relative;\\n box-sizing: border-box;\\n grid-template-columns: minmax(0, 100%);\\n width: $swal2-width;\\n max-width: 100%;\\n padding: $swal2-padding;\\n border: $swal2-border;\\n border-radius: $swal2-border-radius;\\n background: $swal2-background;\\n color: $swal2-color;\\n font-family: $swal2-font;\\n font-size: $swal2-font-size;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &.swal2-loading {\\n overflow-y: hidden;\\n }\\n }\\n\\n h2:where(.swal2-title) {\\n position: $swal2-title-position;\\n max-width: $swal2-title-max-width;\\n margin: $swal2-title-margin;\\n padding: $swal2-title-padding;\\n color: $swal2-title-color;\\n font-size: $swal2-title-font-size;\\n font-weight: $swal2-title-font-weight;\\n text-align: $swal2-title-text-align;\\n text-transform: none;\\n word-wrap: break-word;\\n }\\n\\n div:where(.swal2-actions) {\\n display: flex;\\n z-index: 1; // prevent success icon from overlapping buttons\\n box-sizing: border-box;\\n flex-wrap: $swal2-actions-flex-wrap;\\n align-items: $swal2-actions-align-items;\\n justify-content: $swal2-actions-justify-content;\\n width: $swal2-actions-width;\\n margin: $swal2-actions-margin;\\n padding: $swal2-actions-padding;\\n\\n &:not(.swal2-loading) {\\n .swal2-styled {\\n &[disabled] {\\n opacity: 0.4;\\n }\\n\\n &:hover {\\n background-image: linear-gradient($swal2-button-darken-hover, $swal2-button-darken-hover);\\n }\\n\\n &:active {\\n background-image: linear-gradient($swal2-button-darken-active, $swal2-button-darken-active);\\n }\\n }\\n }\\n }\\n\\n div:where(.swal2-loader) {\\n display: none;\\n align-items: $swal2-loader-align-items;\\n justify-content: $swal2-loader-justify-content;\\n width: $swal2-loader-width;\\n height: $swal2-loader-height;\\n margin: $swal2-loader-margin;\\n animation: $swal2-loader-animation;\\n border-width: $swal2-loader-border-width;\\n border-style: $swal2-loader-border-style;\\n border-radius: $swal2-loader-border-radius;\\n border-color: $swal2-loader-border-color;\\n }\\n\\n button:where(.swal2-styled) {\\n margin: $swal2-button-margin;\\n padding: $swal2-button-padding;\\n transition: $swal2-button-transition;\\n box-shadow: $swal2-button-box-shadow;\\n font-weight: $swal2-button-font-weight;\\n\\n &:not([disabled]) {\\n cursor: pointer;\\n }\\n\\n &.swal2-confirm {\\n order: $swal2-confirm-button-order;\\n border: $swal2-confirm-button-border;\\n border-radius: $swal2-confirm-button-border-radius;\\n background: initial;\\n background-color: $swal2-confirm-button-background-color;\\n color: $swal2-confirm-button-color;\\n font-size: $swal2-confirm-button-font-size;\\n\\n &:focus {\\n box-shadow: $swal2-confirm-button-focus-box-shadow;\\n }\\n }\\n\\n &.swal2-deny {\\n order: $swal2-deny-button-order;\\n border: $swal2-deny-button-border;\\n border-radius: $swal2-deny-button-border-radius;\\n background: initial;\\n background-color: $swal2-deny-button-background-color;\\n color: $swal2-deny-button-color;\\n font-size: $swal2-deny-button-font-size;\\n\\n &:focus {\\n box-shadow: $swal2-deny-button-focus-box-shadow;\\n }\\n }\\n\\n &.swal2-cancel {\\n order: $swal2-cancel-button-order;\\n border: $swal2-cancel-button-border;\\n border-radius: $swal2-cancel-button-border-radius;\\n background: initial;\\n background-color: $swal2-cancel-button-background-color;\\n color: $swal2-cancel-button-color;\\n font-size: $swal2-cancel-button-font-size;\\n\\n &:focus {\\n box-shadow: $swal2-cancel-button-focus-box-shadow;\\n }\\n }\\n\\n &.swal2-default-outline {\\n &:focus {\\n box-shadow: $swal2-button-focus-box-shadow;\\n }\\n }\\n\\n &:focus {\\n outline: $swal2-button-focus-outline;\\n }\\n\\n &::-moz-focus-inner {\\n border: 0;\\n }\\n }\\n\\n div:where(.swal2-footer) {\\n margin: $swal2-footer-margin;\\n padding: $swal2-footer-padding;\\n border-top: 1px solid $swal2-footer-border-color;\\n color: $swal2-footer-color;\\n font-size: $swal2-footer-font-size;\\n text-align: $swal2-footer-text-align;\\n }\\n\\n .swal2-timer-progress-bar-container {\\n position: absolute;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n grid-column: auto !important;\\n overflow: hidden;\\n border-bottom-right-radius: $swal2-border-radius;\\n border-bottom-left-radius: $swal2-border-radius;\\n }\\n\\n div:where(.swal2-timer-progress-bar) {\\n width: 100%;\\n height: $swal2-timer-progress-bar-height;\\n background: $swal2-timer-progress-bar-background;\\n }\\n\\n img:where(.swal2-image) {\\n max-width: 100%;\\n margin: $swal2-image-margin;\\n }\\n\\n button:where(.swal2-close) {\\n position: $swal2-close-button-position;\\n z-index: 2; // sweetalert2/issues/1617\\n align-items: $swal2-close-button-align-items;\\n justify-content: $swal2-close-button-justify-content;\\n width: $swal2-close-button-width;\\n height: $swal2-close-button-height;\\n margin-top: $swal2-close-button-gap;\\n margin-right: $swal2-close-button-gap;\\n margin-bottom: -$swal2-close-button-height;\\n padding: $swal2-close-button-padding;\\n overflow: hidden;\\n transition: $swal2-close-button-transition;\\n border: $swal2-close-button-border;\\n border-radius: $swal2-close-button-border-radius;\\n outline: $swal2-close-button-outline;\\n background: $swal2-close-button-background;\\n color: $swal2-close-button-color;\\n font-family: $swal2-close-button-font-family;\\n font-size: $swal2-close-button-font-size;\\n cursor: pointer;\\n justify-self: $swal2-close-button-justify-self;\\n\\n &:hover {\\n transform: $swal2-close-button-hover-transform;\\n background: $swal2-close-button-hover-background;\\n color: $swal2-close-button-hover-color;\\n }\\n\\n &:focus {\\n outline: $swal2-close-button-focus-outline;\\n box-shadow: $swal2-close-button-focus-box-shadow;\\n }\\n\\n &::-moz-focus-inner {\\n border: 0;\\n }\\n }\\n\\n .swal2-html-container {\\n z-index: 1; // prevent success icon overlapping the content\\n justify-content: $swal2-html-container-justify-content;\\n margin: $swal2-html-container-margin;\\n padding: $swal2-html-container-padding;\\n overflow: $swal2-html-container-overflow;\\n color: $swal2-html-container-color;\\n font-size: $swal2-html-container-font-size;\\n font-weight: $swal2-html-container-font-weight;\\n line-height: $swal2-html-container-line-height;\\n text-align: $swal2-html-container-text-align;\\n word-wrap: $swal2-html-container-word-wrap;\\n word-break: $swal2-html-container-word-break;\\n }\\n\\n input:where(.swal2-input),\\n input:where(.swal2-file),\\n textarea:where(.swal2-textarea),\\n select:where(.swal2-select),\\n div:where(.swal2-radio),\\n label:where(.swal2-checkbox) {\\n margin: $swal2-input-margin;\\n }\\n\\n input:where(.swal2-input),\\n input:where(.swal2-file),\\n textarea:where(.swal2-textarea) {\\n box-sizing: border-box;\\n width: $swal2-input-width;\\n transition: $swal2-input-transition;\\n border: $swal2-input-border;\\n border-radius: $swal2-input-border-radius;\\n background: $swal2-input-background;\\n box-shadow: $swal2-input-box-shadow;\\n color: $swal2-input-color;\\n font-size: $swal2-input-font-size;\\n\\n &.swal2-inputerror {\\n border-color: $swal2-error !important;\\n box-shadow: 0 0 2px $swal2-error !important;\\n }\\n\\n &:focus {\\n border: $swal2-input-focus-border;\\n outline: $swal2-input-focus-outline;\\n box-shadow: $swal2-input-focus-box-shadow;\\n }\\n\\n &::placeholder {\\n color: #ccc;\\n }\\n }\\n\\n .swal2-range {\\n margin: $swal2-input-margin;\\n background: $swal2-background;\\n\\n input {\\n width: 80%;\\n }\\n\\n output {\\n width: 20%;\\n color: $swal2-input-color;\\n font-weight: 600;\\n text-align: center;\\n }\\n\\n input,\\n output {\\n height: $swal2-input-height;\\n padding: 0;\\n font-size: $swal2-input-font-size;\\n line-height: $swal2-input-height;\\n }\\n }\\n\\n .swal2-input {\\n height: $swal2-input-height;\\n padding: $swal2-input-padding;\\n }\\n\\n .swal2-file {\\n width: 75%;\\n margin-right: auto;\\n margin-left: auto;\\n background: $swal2-input-background;\\n font-size: $swal2-input-font-size;\\n }\\n\\n .swal2-textarea {\\n height: $swal2-textarea-height;\\n padding: $swal2-textarea-padding;\\n }\\n\\n .swal2-select {\\n min-width: 50%;\\n max-width: 100%;\\n padding: 0.375em 0.625em;\\n background: $swal2-input-background;\\n color: $swal2-input-color;\\n font-size: $swal2-input-font-size;\\n }\\n\\n .swal2-radio,\\n .swal2-checkbox {\\n align-items: center;\\n justify-content: center;\\n background: $swal2-background;\\n color: $swal2-input-color;\\n\\n label {\\n margin: 0 0.6em;\\n font-size: $swal2-input-font-size;\\n }\\n\\n input {\\n flex-shrink: 0;\\n margin: 0 0.4em;\\n }\\n }\\n\\n label:where(.swal2-input-label) {\\n display: flex;\\n justify-content: $swal2-input-label-justify-content;\\n margin: $swal2-input-label-margin;\\n }\\n\\n div:where(.swal2-validation-message) {\\n align-items: $swal2-validation-message-align-items;\\n justify-content: $swal2-validation-message-justify-content;\\n margin: $swal2-validation-message-margin;\\n padding: $swal2-validation-message-padding;\\n overflow: hidden;\\n background: $swal2-validation-message-background;\\n color: $swal2-validation-message-color;\\n font-size: $swal2-validation-message-font-size;\\n font-weight: $swal2-validation-message-font-weight;\\n\\n &::before {\\n content: '!';\\n display: inline-block;\\n width: 1.5em;\\n min-width: 1.5em;\\n height: 1.5em;\\n margin: 0 0.625em;\\n zoom: $swal2-validation-message-icon-zoom;\\n border-radius: 50%;\\n background-color: $swal2-validation-message-icon-background;\\n color: $swal2-validation-message-icon-color;\\n font-weight: 600;\\n line-height: 1.5em;\\n text-align: center;\\n }\\n }\\n\\n .swal2-progress-steps {\\n flex-wrap: $swal2-progress-steps-flex-wrap;\\n align-items: $swal2-progress-steps-align-items;\\n max-width: $swal2-progress-steps-max-width;\\n margin: $swal2-progress-steps-margin;\\n padding: $swal2-progress-steps-padding;\\n background: $swal2-progress-steps-background;\\n font-weight: $swal2-progress-steps-font-weight;\\n\\n li {\\n display: inline-block;\\n position: relative;\\n }\\n\\n .swal2-progress-step {\\n z-index: 20;\\n flex-shrink: 0;\\n width: $swal2-progress-step-width;\\n height: $swal2-progress-step-height;\\n border-radius: $swal2-progress-step-border-radius;\\n background: $swal2-active-step-background;\\n color: $swal2-active-step-color;\\n line-height: $swal2-progress-step-height;\\n text-align: center;\\n\\n &.swal2-active-progress-step {\\n background: $swal2-active-step-background;\\n\\n ~ .swal2-progress-step {\\n background: $swal2-progress-step-background;\\n color: $swal2-progress-step-color;\\n }\\n\\n ~ .swal2-progress-step-line {\\n background: $swal2-progress-step-background;\\n }\\n }\\n }\\n\\n .swal2-progress-step-line {\\n z-index: 10;\\n flex-shrink: 0;\\n width: $swal2-progress-steps-distance;\\n height: 0.4em;\\n margin: 0 -1px;\\n background: $swal2-active-step-background;\\n }\\n }\\n}\\n\\n@import 'icons';\\n\\n// github.com/sweetalert2/sweetalert2/issues/268\\n[class^='swal2'] {\\n -webkit-tap-highlight-color: transparent;\\n}\\n\\n.swal2-show {\\n animation: $swal2-show-animation;\\n}\\n\\n.swal2-hide {\\n animation: $swal2-hide-animation;\\n}\\n\\n.swal2-noanimation {\\n transition: none;\\n}\\n\\n// Measure scrollbar width for padding body during modal show/hide\\n.swal2-scrollbar-measure {\\n position: absolute;\\n top: -9999px;\\n width: 50px;\\n height: 50px;\\n overflow: scroll;\\n}\\n\\n// Right-to-left support\\n.swal2-rtl {\\n .swal2-close {\\n margin-right: initial;\\n margin-left: $swal2-close-button-gap;\\n }\\n\\n .swal2-timer-progress-bar {\\n right: 0;\\n left: auto;\\n }\\n}\\n\",\"// https://stackoverflow.com/a/12335841/1331425\\n@function strip-units($number) {\\n @return math.div($number, ($number * 0 + 1));\\n}\\n$icon-zoom: math.div(strip-units($swal2-icon-size), 5);\\n\\ndiv:where(.swal2-icon) {\\n position: relative;\\n box-sizing: content-box;\\n justify-content: center;\\n width: $swal2-icon-size;\\n height: $swal2-icon-size;\\n margin: $swal2-icon-margin;\\n zoom: $swal2-icon-zoom;\\n border: #{0.25em * $icon-zoom} solid transparent;\\n border-radius: 50%;\\n border-color: $swal2-icon-border-color;\\n font-family: $swal2-icon-font-family;\\n line-height: $swal2-icon-size;\\n cursor: default;\\n user-select: none;\\n\\n .swal2-icon-content {\\n display: flex;\\n align-items: center;\\n font-size: $swal2-icon-font-size;\\n }\\n\\n &.swal2-error {\\n border-color: $swal2-error;\\n color: $swal2-error;\\n\\n .swal2-x-mark {\\n position: relative;\\n flex-grow: 1;\\n\\n @if $icon-zoom != 1 {\\n zoom: $icon-zoom;\\n }\\n }\\n\\n [class^='swal2-x-mark-line'] {\\n display: block;\\n position: absolute;\\n top: 2.3125em;\\n width: 2.9375em;\\n height: 0.3125em;\\n border-radius: 0.125em;\\n background-color: $swal2-error;\\n\\n &[class$='left'] {\\n left: 1.0625em;\\n transform: rotate(45deg);\\n }\\n\\n &[class$='right'] {\\n right: 1em;\\n transform: rotate(-45deg);\\n }\\n }\\n\\n // Error icon animation\\n &.swal2-icon-show {\\n @if $swal2-icon-animations {\\n animation: swal2-animate-error-icon 0.5s;\\n\\n .swal2-x-mark {\\n animation: swal2-animate-error-x-mark 0.5s;\\n }\\n }\\n }\\n }\\n\\n &.swal2-warning {\\n border-color: lighten($swal2-warning, 7);\\n color: $swal2-warning;\\n\\n // Warning icon animation\\n &.swal2-icon-show {\\n @if $swal2-icon-animations {\\n animation: swal2-animate-error-icon 0.5s;\\n\\n .swal2-icon-content {\\n animation: swal2-animate-i-mark 0.5s;\\n }\\n }\\n }\\n }\\n\\n &.swal2-info {\\n border-color: lighten($swal2-info, 20);\\n color: $swal2-info;\\n\\n // Info icon animation\\n &.swal2-icon-show {\\n @if $swal2-icon-animations {\\n animation: swal2-animate-error-icon 0.5s;\\n\\n .swal2-icon-content {\\n animation: swal2-animate-i-mark 0.8s;\\n }\\n }\\n }\\n }\\n\\n &.swal2-question {\\n border-color: lighten($swal2-question, 20);\\n color: $swal2-question;\\n\\n // Question icon animation\\n &.swal2-icon-show {\\n @if $swal2-icon-animations {\\n animation: swal2-animate-error-icon 0.5s;\\n\\n .swal2-icon-content {\\n animation: swal2-animate-question-mark 0.8s;\\n }\\n }\\n }\\n }\\n\\n &.swal2-success {\\n border-color: $swal2-success;\\n color: $swal2-success;\\n\\n [class^='swal2-success-circular-line'] {\\n // Emulate moving circular line\\n position: absolute;\\n width: 3.75em;\\n height: 7.5em;\\n border-radius: 50%;\\n\\n &[class$='left'] {\\n top: -0.4375em;\\n left: -2.0635em;\\n transform: rotate(-45deg);\\n transform-origin: 3.75em 3.75em;\\n border-radius: 7.5em 0 0 7.5em;\\n\\n @if $icon-zoom != 1 {\\n zoom: $icon-zoom;\\n }\\n }\\n\\n &[class$='right'] {\\n top: -0.6875em;\\n left: 1.875em;\\n transform: rotate(-45deg);\\n transform-origin: 0 3.75em;\\n border-radius: 0 7.5em 7.5em 0;\\n\\n @if $icon-zoom != 1 {\\n zoom: $icon-zoom;\\n }\\n }\\n }\\n\\n .swal2-success-ring {\\n // Ring\\n position: absolute;\\n z-index: 2;\\n top: -0.25em;\\n left: -0.25em;\\n box-sizing: content-box;\\n width: 100%;\\n height: 100%;\\n border: 0.25em solid $swal2-success-border;\\n border-radius: 50%;\\n\\n @if $icon-zoom != 1 {\\n zoom: $icon-zoom;\\n }\\n }\\n\\n .swal2-success-fix {\\n // Hide corners left from animation\\n position: absolute;\\n z-index: 1;\\n top: 0.5em;\\n left: 1.625em;\\n width: 0.4375em;\\n height: 5.625em;\\n transform: rotate(-45deg);\\n\\n @if $icon-zoom != 1 {\\n zoom: $icon-zoom;\\n }\\n }\\n\\n [class^='swal2-success-line'] {\\n display: block;\\n position: absolute;\\n z-index: 2;\\n height: 0.3125em;\\n border-radius: 0.125em;\\n background-color: $swal2-success;\\n\\n &[class$='tip'] {\\n top: 2.875em;\\n left: 0.8125em;\\n width: 1.5625em;\\n transform: rotate(45deg);\\n }\\n\\n &[class$='long'] {\\n top: 2.375em;\\n right: 0.5em;\\n width: 2.9375em;\\n transform: rotate(-45deg);\\n }\\n\\n @if $icon-zoom != 1 {\\n zoom: $icon-zoom;\\n }\\n }\\n\\n // Success icon animation\\n &.swal2-icon-show {\\n @if $swal2-icon-animations {\\n .swal2-success-line-tip {\\n animation: swal2-animate-success-line-tip 0.75s;\\n }\\n\\n .swal2-success-line-long {\\n animation: swal2-animate-success-line-long 0.75s;\\n }\\n\\n .swal2-success-circular-line-right {\\n animation: swal2-rotate-success-circular-line 4.25s ease-in;\\n }\\n }\\n }\\n }\\n}\\n\",\"// Animations\\n@keyframes swal2-toast-show {\\n 0% {\\n transform: translateY(-0.625em) rotateZ(2deg);\\n }\\n\\n 33% {\\n transform: translateY(0) rotateZ(-2deg);\\n }\\n\\n 66% {\\n transform: translateY(0.3125em) rotateZ(2deg);\\n }\\n\\n 100% {\\n transform: translateY(0) rotateZ(0deg);\\n }\\n}\\n\\n@keyframes swal2-toast-hide {\\n 100% {\\n transform: rotateZ(1deg);\\n opacity: 0;\\n }\\n}\\n\\n@keyframes swal2-toast-animate-success-line-tip {\\n 0% {\\n top: 0.5625em;\\n left: 0.0625em;\\n width: 0;\\n }\\n\\n 54% {\\n top: 0.125em;\\n left: 0.125em;\\n width: 0;\\n }\\n\\n 70% {\\n top: 0.625em;\\n left: -0.25em;\\n width: 1.625em;\\n }\\n\\n 84% {\\n top: 1.0625em;\\n left: 0.75em;\\n width: 0.5em;\\n }\\n\\n 100% {\\n top: 1.125em;\\n left: 0.1875em;\\n width: 0.75em;\\n }\\n}\\n\\n@keyframes swal2-toast-animate-success-line-long {\\n 0% {\\n top: 1.625em;\\n right: 1.375em;\\n width: 0;\\n }\\n\\n 65% {\\n top: 1.25em;\\n right: 0.9375em;\\n width: 0;\\n }\\n\\n 84% {\\n top: 0.9375em;\\n right: 0;\\n width: 1.125em;\\n }\\n\\n 100% {\\n top: 0.9375em;\\n right: 0.1875em;\\n width: 1.375em;\\n }\\n}\\n\",\"@import 'toasts-animations';\\n\\n// Appearance animation\\n@keyframes swal2-show {\\n 0% {\\n transform: scale(0.7);\\n }\\n\\n 45% {\\n transform: scale(1.05);\\n }\\n\\n 80% {\\n transform: scale(0.95);\\n }\\n\\n 100% {\\n transform: scale(1);\\n }\\n}\\n\\n// Disppearance animation\\n@keyframes swal2-hide {\\n 0% {\\n transform: scale(1);\\n opacity: 1;\\n }\\n\\n 100% {\\n transform: scale(0.5);\\n opacity: 0;\\n }\\n}\\n\\n// Success icon animations\\n@keyframes swal2-animate-success-line-tip {\\n 0% {\\n top: 1.1875em;\\n left: 0.0625em;\\n width: 0;\\n }\\n\\n 54% {\\n top: 1.0625em;\\n left: 0.125em;\\n width: 0;\\n }\\n\\n 70% {\\n top: 2.1875em;\\n left: -0.375em;\\n width: 3.125em;\\n }\\n\\n 84% {\\n top: 3em;\\n left: 1.3125em;\\n width: 1.0625em;\\n }\\n\\n 100% {\\n top: 2.8125em;\\n left: 0.8125em;\\n width: 1.5625em;\\n }\\n}\\n\\n@keyframes swal2-animate-success-line-long {\\n 0% {\\n top: 3.375em;\\n right: 2.875em;\\n width: 0;\\n }\\n\\n 65% {\\n top: 3.375em;\\n right: 2.875em;\\n width: 0;\\n }\\n\\n 84% {\\n top: 2.1875em;\\n right: 0;\\n width: 3.4375em;\\n }\\n\\n 100% {\\n top: 2.375em;\\n right: 0.5em;\\n width: 2.9375em;\\n }\\n}\\n\\n@keyframes swal2-rotate-success-circular-line {\\n 0% {\\n transform: rotate(-45deg);\\n }\\n\\n 5% {\\n transform: rotate(-45deg);\\n }\\n\\n 12% {\\n transform: rotate(-405deg);\\n }\\n\\n 100% {\\n transform: rotate(-405deg);\\n }\\n}\\n\\n// Error icon animations\\n@keyframes swal2-animate-error-x-mark {\\n 0% {\\n margin-top: 1.625em;\\n transform: scale(0.4);\\n opacity: 0;\\n }\\n\\n 50% {\\n margin-top: 1.625em;\\n transform: scale(0.4);\\n opacity: 0;\\n }\\n\\n 80% {\\n margin-top: -0.375em;\\n transform: scale(1.15);\\n }\\n\\n 100% {\\n margin-top: 0;\\n transform: scale(1);\\n opacity: 1;\\n }\\n}\\n\\n@keyframes swal2-animate-error-icon {\\n 0% {\\n transform: rotateX(100deg);\\n opacity: 0;\\n }\\n\\n 100% {\\n transform: rotateX(0deg);\\n opacity: 1;\\n }\\n}\\n\\n@keyframes swal2-rotate-loading {\\n 0% {\\n transform: rotate(0deg);\\n }\\n\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n\\n// Question mark animation\\n@keyframes swal2-animate-question-mark {\\n 0% {\\n transform: rotateY(-360deg);\\n }\\n\\n 100% {\\n transform: rotateY(0);\\n }\\n}\\n\\n// Info and Warning mark animation\\n@keyframes swal2-animate-i-mark {\\n 0% {\\n transform: rotateZ(45deg);\\n opacity: 0;\\n }\\n\\n 25% {\\n transform: rotateZ(-25deg);\\n opacity: 0.4;\\n }\\n\\n 50% {\\n transform: rotateZ(15deg);\\n opacity: 0.8;\\n }\\n\\n 75% {\\n transform: rotateZ(-5deg);\\n opacity: 1;\\n }\\n\\n 100% {\\n transform: rotateX(0);\\n opacity: 1;\\n }\\n}\\n\",\"// https://stackoverflow.com/a/30250161\\n@mixin not($ignor-list...) {\\n @if (length($ignor-list) == 1) {\\n $ignor-list: nth($ignor-list, 1);\\n }\\n\\n $not-output: '';\\n\\n @each $not in $ignor-list {\\n $not-output: $not-output + ':not(#{$not})'; // stylelint-disable-line scss/no-duplicate-dollar-variables\\n }\\n\\n &#{$not-output} {\\n @content;\\n }\\n}\\n\",\"@import 'toasts-body';\\n\\n@mixin sweetalert2-body() {\\n &.swal2-shown {\\n @include not('.swal2-no-backdrop', '.swal2-toast-shown') {\\n overflow: hidden; // not overflow-y because of Sarari, #1253\\n }\\n }\\n\\n &.swal2-height-auto {\\n height: auto !important; // #781 #1107\\n }\\n\\n &.swal2-no-backdrop {\\n .swal2-container {\\n background-color: transparent !important;\\n pointer-events: none;\\n\\n .swal2-popup {\\n pointer-events: all;\\n }\\n\\n .swal2-modal {\\n box-shadow: 0 0 10px $swal2-backdrop;\\n }\\n }\\n }\\n\\n @media print {\\n &.swal2-shown {\\n @include not('.swal2-no-backdrop', '.swal2-toast-shown') {\\n overflow-y: scroll !important;\\n\\n > [aria-hidden='true'] {\\n display: none;\\n }\\n\\n .swal2-container {\\n position: static !important;\\n }\\n }\\n }\\n }\\n}\\n\",\"@mixin sweetalert2-toasts-body() {\\n &.swal2-toast-shown {\\n .swal2-container {\\n box-sizing: border-box;\\n width: $swal2-toast-width;\\n max-width: 100%;\\n background-color: transparent;\\n pointer-events: none;\\n\\n &.swal2-top {\\n inset: 0 auto auto 50%;\\n transform: translateX(-50%);\\n }\\n\\n &.swal2-top-end,\\n &.swal2-top-right {\\n inset: 0 0 auto auto;\\n }\\n\\n &.swal2-top-start,\\n &.swal2-top-left {\\n inset: 0 auto auto 0;\\n }\\n\\n &.swal2-center-start,\\n &.swal2-center-left {\\n inset: 50% auto auto 0;\\n transform: translateY(-50%);\\n }\\n\\n &.swal2-center {\\n inset: 50% auto auto 50%;\\n transform: translate(-50%, -50%);\\n }\\n\\n &.swal2-center-end,\\n &.swal2-center-right {\\n inset: 50% 0 auto auto;\\n transform: translateY(-50%);\\n }\\n\\n &.swal2-bottom-start,\\n &.swal2-bottom-left {\\n inset: auto auto 0 0;\\n }\\n\\n &.swal2-bottom {\\n inset: auto auto 0 50%;\\n transform: translateX(-50%);\\n }\\n\\n &.swal2-bottom-end,\\n &.swal2-bottom-right {\\n inset: auto 0 0 auto;\\n }\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.rc-buttons{z-index:10}.rc-absolute-buttons{bottom:1.25rem;position:fixed;right:1.25rem;text-align:right}.rc-button{border:none!important;border-radius:7px!important;cursor:pointer;font-size:1rem!important;font-weight:700!important;line-height:150%!important;margin:.25rem!important;padding:1rem 1.5rem!important;text-align:center!important}.rc-go-button{background:rgba(255,154,0,.667)!important;color:#fff!important}.rc-go-button:hover{background:#ff9a00!important}.rc-go-button:active{background:#d68200!important}.rc-cancel-button,.rc-custom-button{background:hsla(0,0%,100%,.933)!important;color:#333!important}.rc-cancel-button:hover,.rc-custom-button:hover{background:#ddd!important}.rc-cancel-button:active,.rc-custom-button:active{background:#aaa!important;color:#000!important}.rc-button:disabled{background:#ddd!important;color:#999!important;cursor:default!important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/css/buttons.scss\"],\"names\":[],\"mappings\":\"AAAA,YACE,UAAA,CAGF,qBAGE,cAAA,CAFA,cAAA,CAGA,aAAA,CAFA,gBAEA,CAGF,WAEE,qBAAA,CAMA,2BAAA,CACA,cAAA,CALA,wBAAA,CACA,yBAAA,CAFA,0BAAA,CAIA,uBAAA,CADA,6BAAA,CALA,2BAQA,CAGF,cACE,yCAAA,CACA,oBAAA,CAEA,oBACE,4BAAA,CAGF,qBACE,4BAAA,CAIJ,oCAEE,yCAAA,CACA,oBAAA,CAEA,gDACE,yBAAA,CAGF,kDACE,yBAAA,CACA,oBAAA,CAIJ,oBACE,yBAAA,CACA,oBAAA,CACA,wBAAA\",\"sourcesContent\":[\".rc-buttons {\\n z-index: 10;\\n}\\n\\n.rc-absolute-buttons {\\n position: fixed;\\n text-align: right;\\n bottom: 1.25rem;\\n right: 1.25rem;\\n}\\n\\n.rc-button {\\n text-align: center !important;\\n border: none !important;\\n line-height: 150% !important;\\n font-size: 1rem !important;\\n font-weight: 700 !important;\\n padding: 1rem 1.5rem !important;\\n margin: 0.25rem !important;\\n border-radius: 7px !important;\\n cursor: pointer;\\n}\\n\\n.rc-go-button {\\n background: #ff9a00aa !important;\\n color: #fff !important;\\n\\n &:hover {\\n background: #ff9a00 !important;\\n }\\n\\n &:active {\\n background: #d68200 !important;\\n }\\n}\\n\\n.rc-cancel-button,\\n.rc-custom-button {\\n background: #ffffffee !important;\\n color: #333 !important;\\n\\n &:hover {\\n background: #ddd !important;\\n }\\n\\n &:active {\\n background: #aaa !important;\\n color: #000 !important;\\n }\\n}\\n\\n.rc-button:disabled {\\n background: #ddd !important;\\n color: #999 !important;\\n cursor: default !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.my__swal2__container .swal2-select{border:2px solid #aaa!important;border-radius:5px!important;font-family:inherit!important;font-size:1.2rem!important;margin:auto 1.6rem!important;outline:none!important;padding-top:.5rem!important}.rc-form{font-family:inherit;font-size:2rem;pointer-events:auto!important}.rc-form .rc-form-inputs{display:flex;justify-content:space-between!important;margin:1rem 0}.rc-form .rc-form-inputs .rc-form-input,.rc-form .rc-form-inputs span{flex-grow:1;font-family:inherit;font-size:inherit;padding:.5rem}.rc-form .rc-form-inputs span{font-weight:700}.rc-form .rc-form-input{border:2px solid #aaa;border-radius:5px;outline:none;width:min(100%,10rem)}.rc-form .rc-form-input.rc-input-error{border-color:#ac0d0d!important;color:#ac0d0d!important}.rc-form .rc-form-input+.rc-form-input{margin-left:.5rem}.arrow-two-sided-svg{position:fixed}.arrow-two-sided-svg .arrow-two-sided{fill:#ff9a00}.arrow-two-sided-horizontal{bottom:10%;left:0;right:0;width:100%}.arrow-two-sided-vertical{bottom:0;height:100%;right:5%;top:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/css/check.scss\"],\"names\":[],\"mappings\":\"AAAA,oCAME,+BAAA,CADA,2BAAA,CADA,6BAAA,CAHA,0BAAA,CACA,4BAAA,CAKA,sBAAA,CAJA,2BAIA,CAOF,SAEE,mBAAA,CADA,cAAA,CAEA,6BAAA,CAEA,yBACE,YAAA,CACA,uCAAA,CACA,aAAA,CAEA,sEAEE,WAAA,CAEA,mBAAA,CACA,iBAAA,CAFA,aAEA,CAGF,8BACE,eAAA,CAIJ,wBACE,qBAAA,CAEA,iBAAA,CADA,YAAA,CAEA,qBAAA,CAEA,uCACE,8BAAA,CACA,uBAAA,CAIJ,uCACE,iBAAA,CAIJ,qBACE,cAAA,CAEA,sCACE,YAAA,CAIJ,4BAEE,UAAA,CACA,MAAA,CACA,OAAA,CAHA,UAGA,CAGF,0BAIE,QAAA,CAHA,WAAA,CACA,QAAA,CACA,KACA\",\"sourcesContent\":[\".my__swal2__container .swal2-select {\\n font-size: 1.2rem !important;\\n margin: auto 1.6rem !important;\\n padding-top: 0.5rem !important;\\n font-family: inherit !important;\\n border-radius: 5px !important;\\n border: 2px solid #aaa !important;\\n outline: none !important;\\n}\\n\\n/* -------------------------------------------------------------------------- */\\n/* Measure Input */\\n/* -------------------------------------------------------------------------- */\\n\\n.rc-form {\\n font-size: 2rem;\\n font-family: inherit;\\n pointer-events: auto !important;\\n\\n .rc-form-inputs {\\n display: flex;\\n justify-content: space-between !important;\\n margin: 1rem 0;\\n\\n .rc-form-input,\\n span {\\n flex-grow: 1;\\n padding: 0.5rem;\\n font-family: inherit;\\n font-size: inherit;\\n }\\n\\n span {\\n font-weight: 700;\\n }\\n }\\n\\n .rc-form-input {\\n border: 2px solid #aaa;\\n outline: none;\\n border-radius: 5px;\\n width: min(100%, 10rem);\\n\\n &.rc-input-error {\\n border-color: #ac0d0d !important;\\n color: #ac0d0d !important;\\n }\\n }\\n\\n .rc-form-input + .rc-form-input {\\n margin-left: 0.5rem;\\n }\\n}\\n\\n.arrow-two-sided-svg {\\n position: fixed;\\n\\n .arrow-two-sided {\\n fill: #ff9a00;\\n }\\n}\\n\\n.arrow-two-sided-horizontal {\\n width: 100%;\\n bottom: 10%;\\n left: 0;\\n right: 0;\\n}\\n\\n.arrow-two-sided-vertical {\\n height: 100%;\\n right: 5%;\\n top: 0;\\n bottom: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `#eye-side{font-weight:700}#blind-spot-canvas{bottom:0;display:block;left:0;margin:0;padding:0;position:fixed;right:0;top:0;z-index:-1}#blind-spot-instruction{max-width:unset!important}@media(min-width:641px){#blind-spot-instruction{font-size:1.1rem!important;width:65%!important}}@media(max-width:640px){#blind-spot-instruction{font-size:.9rem!important;width:90%!important}}#pip-video{display:none}#video-canvas{border-radius:6px;bottom:1rem;display:block;left:1rem;position:absolute;z-index:1000}#rc-ruler{cursor:pointer;max-height:120px;overflow:hidden;position:fixed;-webkit-user-select:none;-moz-user-select:none;user-select:none}#rc-ruler-scales{left:30px;pointer-events:none;position:absolute;top:0;z-index:1}#rc-ruler-scales #size-arrow{opacity:.5;transform:rotate(90deg) translateY(calc(50% + 3px))}#rc-ruler-scales .rc-ruler-scale-text{color:rgba(44,46,67,.667);font-weight:700;margin:0!important;padding:0;position:absolute;top:32px!important;transform:translate(-50%)!important}#rc-ruler-scales .rc-ruler-scale{display:block;position:absolute;top:0;transform:translate(-1px);width:2px;z-index:2}#rc-ruler-scales .rc-ruler-major{background-color:rgba(44,46,67,.933);height:30px}#rc-ruler-scales .rc-ruler-secondary{background-color:rgba(89,82,96,.867);height:24px}#rc-ruler-scales .rc-ruler-minor{background-color:rgba(89,82,96,.4);height:16px}.hide-nudger .calibration-nudger{display:none!important;opacity:0!important}.calibration-nudger,.gaze-nudger{bottom:0;box-sizing:border-box;height:100%;left:0;margin:0;overflow:hidden;position:fixed;right:0;scrollbar-width:none;text-align:center;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:999999999}.calibration-nudger *,.gaze-nudger *{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}#rc-distance-correct{margin:0 auto auto;overflow-wrap:break-word;padding:2rem;text-align:center;width:100%}#rc-distance-correct #rc-distance-correct-instruction{font-size:7rem;font-weight:700;line-height:100%;margin:0 auto 2rem}#rc-distance-correct #rc-distance-correct-guide{font-size:3rem;font-weight:500;line-height:200%}#rc-distance-correct #rc-distance-correct-guide .rc-distance-num{border-radius:7px!important;font-family:monospace!important;font-size:9rem;font-weight:700;padding:.5rem;vertical-align:middle}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/css/distance.scss\"],\"names\":[],\"mappings\":\"AAAA,UACE,eAAA,CAGF,mBAME,QAAA,CAJA,aAAA,CAGA,MAAA,CAIA,QAAA,CADA,SAAA,CAPA,cAAA,CAMA,OAAA,CAHA,KAAA,CADA,UAMA,CAGF,wBAEE,yBAAA,CAGF,wBACE,wBAEE,0BAAA,CADA,mBACA,CAAA,CAIJ,wBACE,wBAEE,yBAAA,CADA,mBACA,CAAA,CAIJ,WACE,YAAA,CAGF,cAME,iBAAA,CAFA,WAAA,CADA,aAAA,CAEA,SAAA,CAHA,iBAAA,CADA,YAKA,CAKF,UAKE,cAAA,CAHA,gBAAA,CACA,eAAA,CAFA,cAAA,CAKA,wBAAA,CAAA,qBAAA,CAAA,gBAAA,CAGF,iBAGE,SAAA,CAEA,mBAAA,CAJA,iBAAA,CACA,KAAA,CAEA,SACA,CAEA,6BAEE,UAAA,CADA,mDACA,CAGF,sCAKE,yBAAA,CACA,eAAA,CAHA,kBAAA,CACA,SAAA,CAHA,iBAAA,CACA,kBAAA,CAKA,mCAAA,CAGF,iCAEE,aAAA,CADA,iBAAA,CAEA,KAAA,CAEA,yBAAA,CADA,SAAA,CAEA,SAAA,CAGF,iCACE,oCAAA,CACA,WAAA,CAGF,qCACE,oCAAA,CACA,WAAA,CAGF,iCACE,kCAAA,CACA,WAAA,CAOF,iCACE,sBAAA,CACA,mBAAA,CAIJ,iCASE,QAAA,CAIA,qBAAA,CARA,WAAA,CAEA,MAAA,CAGA,QAAA,CACA,eAAA,CARA,cAAA,CAKA,OAAA,CAOA,oBAAA,CADA,iBAAA,CARA,KAAA,CAMA,wBAAA,CAAA,qBAAA,CAAA,gBAAA,CARA,UAAA,CAFA,iBAaA,CAEA,qCACE,wHAAA,CAKJ,qBAGE,kBAAA,CAEA,wBAAA,CADA,YAAA,CAHA,iBAAA,CACA,UAGA,CAEA,sDAEE,cAAA,CADA,eAAA,CAGA,gBAAA,CADA,kBACA,CAGF,gDAEE,cAAA,CADA,eAAA,CAEA,gBAAA,CAEA,iEAEE,2BAAA,CAEA,+BAAA,CAEA,cAAA,CAHA,eAAA,CAFA,aAAA,CAIA,qBACA\",\"sourcesContent\":[\"#eye-side {\\n font-weight: bold;\\n}\\n\\n#blind-spot-canvas {\\n position: fixed;\\n display: block;\\n z-index: -1;\\n top: 0;\\n left: 0;\\n bottom: 0;\\n right: 0;\\n padding: 0;\\n margin: 0;\\n}\\n\\n#blind-spot-instruction {\\n // max-width: min(32rem, 100%) !important;\\n max-width: unset !important;\\n}\\n\\n@media (min-width: 641px) {\\n #blind-spot-instruction {\\n width: 65% !important;\\n font-size: 1.1rem !important;\\n }\\n}\\n\\n@media (max-width: 640px) {\\n #blind-spot-instruction {\\n width: 90% !important;\\n font-size: 0.9rem !important;\\n }\\n}\\n\\n#pip-video {\\n display: none;\\n}\\n\\n#video-canvas {\\n z-index: 1000;\\n position: absolute;\\n display: block;\\n bottom: 1rem;\\n left: 1rem;\\n border-radius: 6px;\\n}\\n\\n/* ----------------------------------- PD ----------------------------------- */\\n\\n#rc-ruler {\\n position: fixed;\\n max-height: 120px;\\n overflow: hidden;\\n\\n cursor: pointer;\\n user-select: none;\\n}\\n\\n#rc-ruler-scales {\\n position: absolute;\\n top: 0;\\n left: 30px;\\n z-index: 1;\\n pointer-events: none;\\n\\n #size-arrow {\\n transform: rotate(90deg) translate(0, calc(50% + 3px));\\n opacity: 0.5;\\n }\\n\\n .rc-ruler-scale-text {\\n position: absolute;\\n top: 32px !important;\\n margin: 0 !important;\\n padding: 0;\\n color: #2c2e43aa;\\n font-weight: 700;\\n transform: translate(-50%, 0) !important;\\n }\\n\\n .rc-ruler-scale {\\n position: absolute;\\n display: block;\\n top: 0;\\n width: 2px;\\n transform: translate(-1px, 0);\\n z-index: 2;\\n }\\n\\n .rc-ruler-major {\\n background-color: #2c2e43ee;\\n height: 30px;\\n }\\n\\n .rc-ruler-secondary {\\n background-color: #595260dd;\\n height: 24px;\\n }\\n\\n .rc-ruler-minor {\\n background-color: #59526066;\\n height: 16px;\\n }\\n}\\n\\n/* ---------------------------------- Check --------------------------------- */\\n\\n.hide-nudger {\\n .calibration-nudger {\\n display: none !important;\\n opacity: 0 !important;\\n }\\n}\\n\\n.calibration-nudger,\\n.gaze-nudger {\\n z-index: 999999999;\\n position: fixed;\\n width: 100%;\\n height: 100%;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n margin: 0;\\n overflow: hidden;\\n user-select: none;\\n box-sizing: border-box;\\n text-align: center;\\n scrollbar-width: none;\\n\\n * {\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\\n }\\n}\\n\\n#rc-distance-correct {\\n text-align: center;\\n width: 100%;\\n margin: 0 auto auto auto;\\n padding: 2rem;\\n overflow-wrap: break-word;\\n\\n #rc-distance-correct-instruction {\\n font-weight: 700;\\n font-size: 7rem;\\n margin: 0 auto 2rem auto;\\n line-height: 100%;\\n }\\n\\n #rc-distance-correct-guide {\\n font-weight: 500;\\n font-size: 3rem;\\n line-height: 200%;\\n\\n .rc-distance-num {\\n padding: 0.5rem;\\n border-radius: 7px !important;\\n font-weight: 700;\\n font-family: monospace !important;\\n vertical-align: middle;\\n font-size: 9rem;\\n }\\n\\n // .rc-distance-now {\\n // border: 2px solid #ff9a00;\\n // background-color: #ff9a0066;\\n // }\\n\\n // .rc-distance-desired {\\n // border: 2px solid #3490de;\\n // background-color: #3490de66;\\n // }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--rc-panel-theme-color:#3490de;--rc-panel-darken-color:#185b94;--rc-panel-theme-color-semi:#3490de66;--rc-panel-darken-color-semi:#185b9488}.rc-panel{background-color:var(--rc-panel-theme-color);border-radius:10px!important;box-shadow:var(--rc-panel-darken-color-semi) 0 50px 100px -20px,var(--rc-panel-theme-color-semi) 0 30px 60px -30px!important;display:block;margin-left:auto!important;margin-right:auto!important;max-width:720px!important;overflow:hidden;padding:.75rem!important;position:relative;width:100%}.rc-panel *{box-sizing:border-box;outline:none;text-rendering:optimizeLegibility;vertical-align:baseline;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-kerning:normal;scrollbar-width:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.rc-panel .rc-panel-title{color:#fff!important;font-size:2rem!important;font-weight:600!important;margin:1rem 1rem 0!important}.rc-panel .rc-panel-description{color:hsla(0,0%,100%,.8)!important;font-size:1rem!important;font-weight:500!important;margin:.5rem 1rem 0!important}.rc-panel #rc-panel-language-parent{display:flex;flex-direction:row-reverse;margin:0;padding:0}.rc-panel #rc-panel-language-parent #rc-panel-lang-picker{background-color:hsla(0,0%,100%,.8)!important;border:none!important;border-radius:5px!important;display:block;font-size:1rem!important;font-weight:500!important;margin:.25rem .25rem 0!important;outline:none!important;padding:.25rem!important}.rc-panel .rc-panel-steps{margin:-3rem 0 0!important;padding-top:4rem!important}.rc-panel .rc-panel-steps.rc-panel-steps-l,.rc-panel .rc-panel-steps.rc-panel-steps-s{display:flex!important;justify-content:space-between!important}.rc-panel .rc-panel-steps.rc-panel-steps-l .rc-panel-step,.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step{background:hsla(0,0%,100%,.8);flex-grow:1!important;margin:.25rem!important;padding:0!important;position:relative;text-align:center;transition:background-color .2s}.rc-panel .rc-panel-steps.rc-panel-steps-l .rc-panel-step .rc-panel-step-use,.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step .rc-panel-step-use{font-size:1rem!important;line-height:170%!important;margin:0!important;padding:0 .3rem!important;position:absolute;right:0;top:0}.rc-panel .rc-panel-steps.rc-panel-steps-l .rc-panel-step .rc-panel-step-use svg,.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step .rc-panel-step-use svg{height:1rem;width:1rem;fill:var(--rc-panel-darken-color)}.rc-panel .rc-panel-steps.rc-panel-steps-l .rc-panel-step .rc-panel-step-name,.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step .rc-panel-step-name{color:var(--rc-panel-darken-color);font-size:1rem!important;font-weight:700!important;line-height:150%!important;white-space:nowrap}.rc-panel .rc-panel-steps.rc-panel-steps-l{flex-flow:row nowrap;max-width:100%;overflow-x:scroll}.rc-panel .rc-panel-steps.rc-panel-steps-l .rc-panel-step-name{margin:1.5rem .5rem!important}.rc-panel .rc-panel-steps.rc-panel-steps-l .rc-panel-step-use-tip{bottom:110%!important;display:flex!important;left:50%!important;position:absolute!important;transform:translate(-50%)!important}.rc-panel .rc-panel-steps.rc-panel-steps-s{flex-flow:column nowrap;overflow-x:hidden}.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step{overflow-x:hidden;text-align:left;white-space:nowrap}.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step-name{margin:1.2rem .75rem 1.2rem 1.5rem!important}.rc-panel .rc-panel-steps.rc-panel-steps-s .rc-panel-step-use-tip{display:inline-flex!important;position:relative!important}.rc-panel .rc-panel-steps .rc-panel-step{border:none!important;border-radius:7px!important}.rc-panel .rc-panel-steps .rc-panel-step .rc-panel-step-name{display:inline-block!important;position:relative!important}.rc-panel .rc-panel-steps .rc-panel-step-use-tip{align-items:center!important;background-color:rgba(255,154,0,.933)!important;border:none!important;border-radius:7px!important;color:#fff!important;font-size:.75rem!important;font-weight:500!important;justify-content:center!important;line-height:100%!important;margin:0!important;opacity:0;padding:.7rem .5rem!important;pointer-events:none;text-align:center!important;transition:opacity .2s;width:-moz-max-content!important;width:max-content!important;z-index:10!important}.rc-panel .rc-panel-steps .rc-panel-step-use-tip svg{height:.75rem;width:.75rem;fill:#fff}.rc-panel .rc-panel-steps .rc-panel-step-use-tip svg:last-of-type{margin-right:5px}.rc-panel .rc-panel-steps .rc-panel-step-todo:focus,.rc-panel .rc-panel-steps .rc-panel-step-todo:hover{background-color:#fff}.rc-panel .rc-panel-steps .rc-panel-step-todo:focus .rc-panel-step-use-tip,.rc-panel .rc-panel-steps .rc-panel-step-todo:hover .rc-panel-step-use-tip{opacity:1!important}.rc-panel .rc-panel-steps .rc-panel-step-todo:active{background-color:hsla(0,0%,93%,.8)}.rc-panel .rc-panel-steps .rc-panel-step-finished{background-color:hsla(0,0%,73%,.8)!important}.rc-panel .rc-panel-steps .rc-panel-step-inactive{opacity:.6;pointer-events:none}.rc-panel .rc-panel-steps .rc-panel-step-active{cursor:pointer;opacity:1}.rc-panel ::-webkit-scrollbar{display:none;width:0}.rc-panel .rc-panel-debug-control{background-color:hsla(0,0%,100%,.8);border:3px solid #e00;border-radius:7px;margin:1rem 0 0;overflow:hidden;padding:.5rem}.rc-panel .rc-panel-debug-control *{color:#ac0d0d}.rc-panel .rc-panel-debug-control h2,.rc-panel .rc-panel-debug-control h3,.rc-panel .rc-panel-debug-control p{margin:0!important}.rc-panel .rc-panel-debug-control h2{font-size:1.2rem!important;font-weight:700!important}.rc-panel .rc-panel-debug-control h3{font-size:.9rem;font-variant:small-caps;font-weight:500;padding-bottom:.3rem;padding-top:.5rem}.rc-panel .rc-panel-debug-control .rc-panel-debug-bold-text{font-size:1rem!important;font-weight:700}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-next{background-color:#e00;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:.9rem!important;margin:1rem 0 0;padding:.5rem 1.2rem!important}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-next:hover{background-color:#ac0d0d}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-task-row{display:inline-flex;justify-content:flex-start!important;width:100%}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-task-row .value-element{flex-grow:1;overflow-x:hidden;padding:0 .1rem;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-task-row .value-element:first-of-type{padding-left:0}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-task-row .value-element:last-of-type{padding-right:0}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-task-row .value-element p{color:#ac0d0d;font-size:.65rem!important;line-height:150%!important;padding-left:1px!important}.rc-panel .rc-panel-debug-control .rc-panel-debug-control-task-row .value-element input{background-color:hsla(0,0%,100%,.8);border:1px solid #e99!important;border-radius:3px!important;font-size:.8rem;margin:0!important;padding:.3rem!important;pointer-events:auto;-webkit-user-select:auto;-moz-user-select:auto;user-select:auto;width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/css/panel.scss\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\":root {\\n --rc-panel-theme-color: #3490de;\\n --rc-panel-darken-color: #185b94;\\n --rc-panel-theme-color-semi: #3490de66;\\n --rc-panel-darken-color-semi: #185b9488;\\n}\\n\\n.rc-panel {\\n position: relative;\\n display: block;\\n margin-left: auto !important;\\n margin-right: auto !important;\\n background-color: var(--rc-panel-theme-color);\\n width: 100%;\\n max-width: 720px !important;\\n padding: 0.75rem !important;\\n border-radius: 10px !important;\\n box-shadow:\\n var(--rc-panel-darken-color-semi) 0px 50px 100px -20px,\\n var(--rc-panel-theme-color-semi) 0px 30px 60px -30px !important;\\n overflow: hidden;\\n\\n * {\\n outline: none;\\n vertical-align: baseline;\\n box-sizing: border-box;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: auto;\\n -moz-osx-font-smoothing: grayscale;\\n font-kerning: normal;\\n user-select: none;\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\\n scrollbar-width: none;\\n }\\n\\n .rc-panel-title {\\n color: #fff !important;\\n margin: 1rem 1rem 0 1rem !important;\\n font-size: 2rem !important;\\n font-weight: 600 !important;\\n }\\n\\n .rc-panel-description {\\n color: #ffffffcc !important;\\n margin: 0.5rem 1rem 0 1rem !important;\\n font-size: 1rem !important;\\n font-weight: 500 !important;\\n }\\n\\n #rc-panel-language-parent {\\n display: flex;\\n flex-direction: row-reverse;\\n margin: 0;\\n padding: 0;\\n\\n #rc-panel-lang-picker {\\n display: block;\\n background-color: #ffffffcc !important;\\n border: none !important;\\n outline: none !important;\\n margin: 0.25rem 0.25rem 0 0.25rem !important;\\n padding: 0.25rem !important;\\n font-size: 1rem !important;\\n font-weight: 500 !important;\\n border-radius: 5px !important;\\n }\\n }\\n\\n .rc-panel-steps {\\n margin: -3rem 0 0 0 !important;\\n padding-top: 4rem !important;\\n\\n &.rc-panel-steps-l,\\n &.rc-panel-steps-s {\\n display: flex !important;\\n justify-content: space-between !important;\\n\\n .rc-panel-step {\\n position: relative;\\n flex-grow: 1 !important;\\n margin: 0.25rem !important;\\n text-align: center;\\n padding: 0 !important;\\n background: #ffffffcc;\\n transition: background-color 0.2s;\\n\\n // &:focus {\\n // outline: 3px solid black !important;\\n // }\\n\\n .rc-panel-step-use {\\n position: absolute;\\n right: 0;\\n top: 0;\\n padding: 0 0.3rem !important;\\n margin: 0 !important;\\n font-size: 1rem !important;\\n line-height: 170% !important;\\n\\n svg {\\n width: 1rem;\\n height: 1rem;\\n fill: var(--rc-panel-darken-color);\\n }\\n }\\n\\n .rc-panel-step-name {\\n line-height: 150% !important;\\n font-size: 1rem !important;\\n font-weight: 700 !important;\\n color: var(--rc-panel-darken-color);\\n white-space: nowrap;\\n }\\n }\\n }\\n\\n &.rc-panel-steps-l {\\n flex-flow: row nowrap;\\n max-width: 100%;\\n overflow-x: scroll;\\n\\n .rc-panel-step-name {\\n margin: 1.5rem 0.5rem !important;\\n }\\n\\n .rc-panel-step-use-tip {\\n position: absolute !important;\\n display: flex !important;\\n bottom: 110% !important;\\n left: 50% !important;\\n transform: translate(-50%, 0) !important;\\n }\\n }\\n\\n &.rc-panel-steps-s {\\n flex-flow: column nowrap;\\n overflow-x: hidden;\\n\\n .rc-panel-step {\\n text-align: left;\\n overflow-x: hidden;\\n white-space: nowrap;\\n }\\n\\n .rc-panel-step-name {\\n margin: 1.2rem 0.75rem 1.2rem 1.5rem !important;\\n }\\n\\n .rc-panel-step-use-tip {\\n position: relative !important;\\n display: inline-flex !important;\\n }\\n }\\n\\n .rc-panel-step {\\n border-radius: 7px !important;\\n border: none !important;\\n\\n .rc-panel-step-name {\\n position: relative !important;\\n display: inline-block !important;\\n }\\n }\\n\\n // .rc-panel-next-button {\\n // .rc-panel-step-name::after {\\n // content: ' →' !important;\\n // }\\n // }\\n\\n .rc-panel-step-use-tip {\\n // visibility: hidden;\\n // backdrop-filter: blur(2px);\\n // box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 8px !important;\\n opacity: 0;\\n width: max-content !important;\\n background-color: #ff9a00ee !important;\\n color: #fff !important;\\n text-align: center !important;\\n justify-content: center !important;\\n align-items: center !important;\\n font-size: 0.75rem !important;\\n font-weight: 500 !important;\\n border-radius: 7px !important;\\n border: none !important;\\n padding: 0.7rem 0.5rem !important;\\n margin: 0 !important;\\n z-index: 10 !important;\\n line-height: 100% !important;\\n transition: opacity 0.2s;\\n pointer-events: none;\\n\\n svg {\\n width: 0.75rem;\\n height: 0.75rem;\\n fill: #fff;\\n }\\n\\n svg:last-of-type {\\n margin-right: 5px;\\n }\\n }\\n\\n .rc-panel-step-todo {\\n &:hover,\\n &:focus {\\n background-color: #fff;\\n\\n .rc-panel-step-use-tip {\\n // visibility: visible !important;\\n opacity: 1 !important;\\n }\\n }\\n\\n &:active {\\n background-color: #eeeeeecc;\\n }\\n }\\n\\n .rc-panel-step-finished {\\n background-color: #bbbbbbcc !important;\\n }\\n\\n .rc-panel-step-inactive {\\n opacity: 0.6;\\n pointer-events: none;\\n }\\n\\n .rc-panel-step-active {\\n opacity: 1;\\n cursor: pointer;\\n }\\n }\\n\\n ::-webkit-scrollbar {\\n width: 0;\\n display: none;\\n }\\n\\n /* ---------------------------------- DEBUG --------------------------------- */\\n\\n .rc-panel-debug-control {\\n margin: 0;\\n margin-top: 1rem;\\n padding: 0.5rem;\\n border: 3px solid #ee0000;\\n border-radius: 7px;\\n background-color: #ffffffcc;\\n overflow: hidden;\\n\\n * {\\n color: #ac0d0d;\\n }\\n\\n h2,\\n h3,\\n p {\\n margin: 0 !important;\\n }\\n\\n h2 {\\n font-weight: 700 !important;\\n font-size: 1.2rem !important;\\n }\\n\\n h3 {\\n font-variant: small-caps;\\n font-size: 0.9rem;\\n font-weight: 500;\\n padding-top: 0.5rem;\\n padding-bottom: 0.3rem;\\n }\\n\\n .rc-panel-debug-bold-text {\\n font-size: 1rem !important;\\n font-weight: bold;\\n }\\n\\n .rc-panel-debug-control-next {\\n font-size: 0.9rem !important;\\n margin: 1rem 0 0 0;\\n color: #fff;\\n background-color: #ee0000;\\n padding: 0.5rem 1.2rem !important;\\n border-radius: 5px;\\n border: none;\\n cursor: pointer;\\n\\n &:hover {\\n background-color: #ac0d0d;\\n }\\n }\\n\\n .rc-panel-debug-control-task-row {\\n display: inline-flex;\\n justify-content: flex-start !important;\\n width: 100%;\\n\\n .value-element {\\n flex-grow: 1;\\n padding: 0 0.1rem;\\n overflow-x: hidden;\\n white-space: nowrap;\\n // max-width: 10rem;\\n user-select: none;\\n pointer-events: none;\\n\\n &:first-of-type {\\n padding-left: 0;\\n }\\n\\n &:last-of-type {\\n padding-right: 0;\\n }\\n\\n p {\\n padding-left: 1px !important;\\n line-height: 150% !important;\\n font-size: 0.65rem !important;\\n color: #ac0d0d;\\n }\\n\\n input {\\n margin: 0 !important;\\n padding: 0.3rem !important;\\n font-size: 0.8rem;\\n width: 100%;\\n border: 1px solid #ee9999 !important;\\n border-radius: 3px !important;\\n background-color: #ffffffcc;\\n user-select: auto;\\n pointer-events: auto;\\n }\\n }\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `#size-card,#size-usba,#size-usbc{display:block;height:auto;left:2rem;position:absolute;z-index:2}#size-arrow{display:block;height:auto;position:absolute;width:70px;z-index:1}#size-arrow-fill{transition:fill .3s}.minor{transition:opacity .25s}.rc-slider:active~.size-obj .minor{opacity:0}#matching-obj{background-color:#fff;border:none;border-radius:7px;font-size:1.1rem;font-weight:600;margin-bottom:unset;margin-left:.3rem;margin-right:.3rem;margin-top:unset;padding-bottom:unset;padding-left:.3rem;padding-right:.3rem;padding-top:unset;pointer-events:auto!important;vertical-align:middle}@media(min-width:481px){.rc-size-obj-selection{display:inline-flex}}@media(max-width:480px){.rc-size-obj-selection{display:inline-block}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/css/screenSize.scss\"],\"names\":[],\"mappings\":\"AAAA,iCAIE,aAAA,CAGA,WAAA,CADA,SAAA,CAHA,iBAAA,CAKA,SAAA,CAGF,YAEE,aAAA,CAGA,WAAA,CAJA,iBAAA,CAGA,UAAA,CAEA,SAAA,CAGF,iBACE,mBAAA,CAGF,OACE,uBAAA,CAIF,mCACE,SAAA,CAKF,cAGE,qBAAA,CADA,WAAA,CADA,iBAAA,CAMA,gBAAA,CADA,eAAA,CADA,mBAAA,CAAA,iBAAA,CAAA,kBAAA,CAAA,gBAAA,CADA,oBAAA,CAAA,kBAAA,CAAA,mBAAA,CAAA,iBAAA,CAKA,6BAAA,CADA,qBACA,CAGF,wBACE,uBACE,mBAAA,CAAA,CAIJ,wBACE,uBACE,oBAAA,CAAA\",\"sourcesContent\":[\"#size-card,\\n#size-usba,\\n#size-usbc {\\n position: absolute;\\n display: block;\\n /* top: calc(max(45%, 200px) + 50px); */\\n left: 2rem;\\n height: auto;\\n z-index: 2;\\n}\\n\\n#size-arrow {\\n position: absolute;\\n display: block;\\n /* display: none; */\\n width: 70px;\\n height: auto;\\n z-index: 1;\\n}\\n\\n#size-arrow-fill {\\n transition: fill 0.3s;\\n}\\n\\n.minor {\\n transition: opacity 0.25s;\\n}\\n\\n/* .rc-slider:hover ~ .size-obj .minor, */\\n.rc-slider:active ~ .size-obj .minor {\\n opacity: 0;\\n}\\n\\n/* -------------------------------------------------------------------------- */\\n\\n#matching-obj {\\n border-radius: 7px;\\n border: none;\\n background-color: #fff;\\n padding: unset 0.3rem;\\n margin: unset 0.3rem;\\n font-weight: 600;\\n font-size: 1.1rem;\\n vertical-align: middle;\\n pointer-events: auto !important;\\n}\\n\\n@media (min-width: 481px) {\\n .rc-size-obj-selection {\\n display: inline-flex;\\n }\\n}\\n\\n@media (max-width: 480px) {\\n .rc-size-obj-selection {\\n display: inline-block;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.rc-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(90deg,#ffc772,#ffc772 60%,#fff 0);border-radius:5px;cursor:grab;direction:ltr!important;display:block;height:10px;left:2rem;opacity:1;position:absolute;transition:opacity .3s;width:calc(100% - 4rem);z-index:10}.rc-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#ff9a00;border:1px solid #cc7a00;border-radius:15px;box-shadow:0 0 12px 0 rgba(136,82,0,.2);cursor:inherit;height:30px;width:30px}.rc-slider::-moz-range-thumb{-moz-appearance:none;appearance:none;background:#ff9a00;border:1px solid #cc7a00;border-radius:15px;box-shadow:0 0 12px 0 rgba(136,82,0,.2);cursor:inherit;height:30px;width:30px}.rc-slider::-ms-thumb{appearance:none;background:#ff9a00;border:1px solid #cc7a00;border-radius:15px;box-shadow:0 0 12px 0 rgba(136,82,0,.2);cursor:inherit;height:30px;width:30px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/css/slider.scss\"],\"names\":[],\"mappings\":\"AAAA,WAGE,uBAAA,CAAA,oBAAA,CAAA,eAAA,CAGA,4DAAA,CAIA,iBAAA,CAEA,WAAA,CAEA,uBAAA,CAZA,aAAA,CAGA,WAAA,CAIA,SAAA,CAFA,SAAA,CANA,iBAAA,CAYA,sBAAA,CATA,uBAAA,CAOA,UAGA,CAkBF,iCAVE,uBAAA,CAAA,eAAA,CAKA,kBAAA,CADA,wBAAA,CADA,kBAAA,CAGA,uCAAA,CACA,cAAA,CALA,WAAA,CADA,UAMA,CAOF,6BAdE,oBAAA,CAAA,eAAA,CAKA,kBAAA,CADA,wBAAA,CADA,kBAAA,CAGA,uCAAA,CACA,cAAA,CALA,WAAA,CADA,UAMA,CAWF,sBAlBE,eAAA,CAKA,kBAAA,CADA,wBAAA,CADA,kBAAA,CAGA,uCAAA,CACA,cAAA,CALA,WAAA,CADA,UAMA\",\"sourcesContent\":[\".rc-slider {\\n position: absolute;\\n display: block;\\n appearance: none;\\n width: calc(100% - 4rem);\\n height: 10px;\\n background: linear-gradient(90deg, #ffc772, #ffc772 60%, #fff 60%);\\n opacity: 1;\\n /* top: max(45%, 200px); */\\n left: 2rem;\\n border-radius: 5px;\\n z-index: 10;\\n cursor: grab;\\n transition: opacity 0.3s;\\n direction: ltr !important;\\n}\\n\\n// .rc-slider:hover {\\n// opacity: 1;\\n// }\\n\\n@mixin thumb-style {\\n appearance: none;\\n width: 30px;\\n height: 30px;\\n border-radius: 15px;\\n border: 1px solid #cc7a00;\\n background: #ff9a00;\\n box-shadow: 0 0 12px 0 #88520033;\\n cursor: inherit;\\n}\\n\\n.rc-slider::-webkit-slider-thumb {\\n @include thumb-style;\\n}\\n\\n.rc-slider::-moz-range-thumb {\\n @include thumb-style;\\n}\\n\\n.rc-slider::-ms-thumb {\\n @include thumb-style;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `#webgazerVideoContainer .webgazer-videoinput-select{background:hsla(0,0%,100%,.8)!important;border:none!important;border-radius:.6rem!important;color:#666;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:.6rem;left:0;line-height:100%;margin:.3rem;outline:none!important;padding:.2rem .3rem;position:absolute;top:0;z-index:9}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/css/video.scss\"],\"names\":[],\"mappings\":\"AACE,oDAcE,uCAAA,CAHA,qBAAA,CAEA,6BAAA,CAEA,UAAA,CARA,wHAAA,CAEA,eAAA,CALA,MAAA,CAMA,gBAAA,CALA,YAAA,CAOA,sBAAA,CANA,mBAAA,CAJA,iBAAA,CACA,KAAA,CAFA,SAcA\",\"sourcesContent\":[\"#webgazerVideoContainer {\\n .webgazer-videoinput-select {\\n z-index: 9;\\n position: absolute;\\n top: 0;\\n left: 0;\\n margin: 0.3rem;\\n padding: 0.2rem 0.3rem;\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\\n font-size: 0.6rem;\\n line-height: 100%;\\n border: none !important;\\n outline: none !important;\\n border-radius: 0.6rem !important;\\n background: #ffffffcc !important;\\n color: #666;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `#gaze-system-instruction{top:65%;white-space:pre}.gaze-nudge-instruction{top:65%}.gaze-calibration-dot{background:#ff005c80;cursor:auto;display:block;position:fixed!important;transition-timing-function:ease-in-out;transition:left .5s,right .5s,top .5s,bottom .5s;z-index:999999998}.gaze-calibration-dot-click{background:#ff005c;cursor:pointer;margin:auto;position:absolute;text-align:center;vertical-align:middle}.gaze-calibration-dot-click:active{opacity:.3}.gaze-calibration-dot-text{color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:.9rem;font-weight:500;vertical-align:text-bottom}#webgazerGazeDot,#webgazerGazeDot-tempClone,.gaze-calibration-dot-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}#webgazerGazeDot,#webgazerGazeDot-tempClone{background-color:#111d5e;border-radius:5px;opacity:.5;position:fixed;z-index:9999999999}#webgazerVideoContainer{border-radius:5px;display:block;overflow:hidden;position:fixed!important;transform-origin:bottom left;z-index:999999997}#webgazerFaceFeedbackBox,#webgazerVideoContainer,#webgazerVideoContainer *{-webkit-user-select:none;-moz-user-select:none;user-select:none}#webgazerFaceFeedbackBox{border-radius:10px;box-sizing:border-box;opacity:.6;pointer-events:none}.rc-crosshair,.rc-gaze-nudger-arrows{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none}.rc-crosshair{border-radius:50%;cursor:pointer;display:block;height:40px;position:fixed!important;transition-timing-function:ease-in-out;transition:left .5s,right .5s,top .5s,bottom .5s;width:40px;z-index:999999999}.rc-crosshair-component{background-color:#000;left:50%;margin:auto;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);-webkit-user-select:none;-moz-user-select:none;user-select:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/css/gaze.css\"],\"names\":[],\"mappings\":\"AAAA,yBACE,OAAQ,CACR,eACF,CAEA,wBACE,OACF,CAEA,sBACE,oBAAqB,CAGrB,WAAe,CADf,aAAc,CADd,wBAA0B,CAI1B,sCAAuC,CACvC,gDAIa,CANb,iBAOF,CAEA,4BAEE,kBAAmB,CAEnB,cAAe,CADf,WAAY,CAFZ,iBAAkB,CAIlB,iBAAkB,CAClB,qBACF,CAEA,mCACE,UACF,CAEA,2BAIE,UAAW,CAHX,wHAC8D,CAG9D,eAAiB,CAFjB,eAAgB,CAGhB,0BAGF,CAIA,uEALE,mBAAoB,CADpB,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAeF,CATA,4CAKE,wBAAyB,CACzB,iBAAkB,CAFlB,UAAY,CAFZ,cAAe,CACf,kBAMF,CAEA,wBAKE,iBAAkB,CAHlB,aAAc,CAKd,eAAgB,CAJhB,wBAA0B,CAC1B,4BAA6B,CAH7B,iBASF,CAMA,2EAPE,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAcF,CAPA,yBAGE,kBAAmB,CADnB,qBAAsB,CAEtB,UAAY,CACZ,mBAEF,CAIA,qCAEE,iBAAkB,CAIlB,wBAAiB,CAAjB,qBAAiB,CAAjB,gBACF,CAEA,cAcE,iBAAkB,CARlB,cAAe,CAJf,aAAc,CAEd,WAAY,CAHZ,wBAA0B,CAM1B,sCAAuC,CACvC,gDAIa,CATb,UAAW,CAEX,iBAUF,CAEA,wBAQE,qBAAsB,CALtB,QAAS,CAET,WAAY,CACZ,mBAAoB,CALpB,iBAAkB,CAClB,OAAQ,CAER,8BAAgC,CAGhC,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAEF\",\"sourcesContent\":[\"#gaze-system-instruction {\\n top: 65%;\\n white-space: pre;\\n}\\n\\n.gaze-nudge-instruction {\\n top: 65%;\\n}\\n\\n.gaze-calibration-dot {\\n background: #ff005c80;\\n position: fixed !important;\\n display: block;\\n cursor: initial;\\n z-index: 999999998;\\n transition-timing-function: ease-in-out;\\n transition:\\n left 0.5s,\\n right 0.5s,\\n top 0.5s,\\n bottom 0.5s;\\n}\\n\\n.gaze-calibration-dot-click {\\n position: absolute;\\n background: #ff005c;\\n margin: auto;\\n cursor: pointer;\\n text-align: center;\\n vertical-align: middle;\\n}\\n\\n.gaze-calibration-dot-click:active {\\n opacity: 0.3;\\n}\\n\\n.gaze-calibration-dot-text {\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\\n font-weight: 500;\\n color: #fff;\\n font-size: 0.9rem;\\n vertical-align: text-bottom;\\n user-select: none;\\n pointer-events: none;\\n}\\n\\n/* ----------------------------- WebGazer Native ---------------------------- */\\n\\n#webgazerGazeDot,\\n#webgazerGazeDot-tempClone {\\n position: fixed;\\n z-index: 9999999999;\\n opacity: 0.5;\\n background-color: #111d5e;\\n border-radius: 5px;\\n pointer-events: none;\\n user-select: none;\\n}\\n\\n#webgazerVideoContainer {\\n z-index: 999999997;\\n display: block;\\n position: fixed !important;\\n transform-origin: bottom left;\\n border-radius: 5px;\\n /* opacity: 0.8; */\\n overflow: hidden;\\n /* pointer-events: none; */\\n user-select: none;\\n}\\n\\n#webgazerVideoContainer * {\\n user-select: none;\\n}\\n\\n#webgazerFaceFeedbackBox {\\n /* TODO Set style in sub-module */\\n box-sizing: border-box;\\n border-radius: 10px;\\n opacity: 0.6;\\n pointer-events: none;\\n user-select: none;\\n}\\n\\n/* ------------------------------- Gaze Nudger ------------------------------ */\\n\\n.rc-crosshair,\\n.rc-gaze-nudger-arrows {\\n position: absolute;\\n /* top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%); */\\n user-select: none;\\n}\\n\\n.rc-crosshair {\\n position: fixed !important;\\n display: block;\\n width: 40px;\\n height: 40px;\\n z-index: 999999999;\\n cursor: pointer;\\n transition-timing-function: ease-in-out;\\n transition:\\n left 0.5s,\\n right 0.5s,\\n top 0.5s,\\n bottom 0.5s;\\n /* filter: drop-shadow(0 0 3px #fff); */\\n border-radius: 50%;\\n}\\n\\n.rc-crosshair-component {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n margin: auto;\\n pointer-events: none;\\n user-select: none;\\n background-color: #000;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `#calibration-background{bottom:0;box-sizing:border-box;height:100%;left:0;margin:0;overflow:hidden;overflow-y:scroll;position:fixed;right:0;scrollbar-width:none;text-align:center;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:999999990}#calibration-background::-webkit-scrollbar{display:none;width:0}#calibration-background *{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}#calibration-background p{line-height:150%}.calibration-instruction{pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none}.calibration-instruction-scrollable{height:200%}.calibration-instruction h1{font-weight:700;min-width:360px}.calibration-instruction *{font-size:1.2rem;line-height:170%;margin:0;padding:0}.calibration-instruction p{margin-top:1rem;white-space:pre-line}.calibration-description{line-height:170%}.rc-hang-description{font-size:1rem!important;margin-top:50vh!important}@media (min-width:481px){.calibration-instruction{margin:2rem}.calibration-instruction h1{font-size:2.5rem!important;line-height:100%}.calibration-description{width:calc(100% - 4rem);width:max(min(100% - 4rem,960px),300px)}.calibration-description,.calibration-description *{font-size:1.2rem}.calibration-credit-text{font-size:.9rem!important}}@media (max-width:480px){.calibration-instruction{margin:1rem}.calibration-instruction h1{font-size:1.8rem!important;line-height:120%}.calibration-description{width:calc(100% - 1rem)}.calibration-description,.calibration-description *{font-size:1rem}.calibration-credit-text{font-size:.7rem!important}}.float-instruction{background:hsla(0,0%,100%,.9);border-radius:10px;font-size:1rem;font-weight:500;left:50%;margin:0;max-width:25rem;padding:10px 17px;position:fixed;text-align:center;transform:translate(-50%);-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:999999991}.swal2-container{z-index:999999999!important}.calibration-credit-text{bottom:3px!important;color:#999!important;line-height:100%!important;margin:0!important;padding:0!important;position:fixed!important;text-align:center!important;width:100%!important}.lock-view{overflow:hidden!important}.rc-lang-ltr{direction:ltr!important;text-align:left!important}.rc-lang-rtl{direction:rtl!important;text-align:right!important}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/css/main.css\"],\"names\":[],\"mappings\":\"AACA,wBAQE,QAAS,CAMT,qBAAsB,CAVtB,WAAY,CAEZ,MAAO,CAGP,QAAS,CAET,eAAgB,CAChB,iBAAkB,CAVlB,cAAe,CAKf,OAAQ,CASR,oBAAqB,CADrB,iBAAkB,CAVlB,KAAM,CAQN,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAAiB,CAVjB,UAAW,CAFX,iBAgBF,CAEA,2CAEE,YAAa,CADb,OAEF,CAEA,0BACE,wHAEF,CAEA,0BACE,gBACF,CAEA,yBAGE,mBAAoB,CAFpB,iBAAkB,CAClB,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAEF,CAEA,oCACE,WACF,CAEA,4BAEE,eAAgB,CADhB,eAEF,CAEA,2BACE,gBAAiB,CACjB,gBAAiB,CACjB,QAAS,CACT,SACF,CAEA,2BAEE,eAAgB,CADhB,oBAEF,CAEA,yBACE,gBACF,CAEA,qBAEE,wBAA0B,CAD1B,yBAEF,CAKA,yBACE,yBACE,WACF,CAEA,4BAEE,0BAA4B,CAD5B,gBAEF,CAEA,yBACE,uBAAwB,CACxB,uCACF,CAEA,oDAEE,gBACF,CAEA,yBACE,yBACF,CACF,CAEA,yBACE,yBACE,WACF,CAEA,4BAEE,0BAA4B,CAD5B,gBAEF,CAEA,yBACE,uBACF,CAEA,oDAEE,cACF,CAEA,yBACE,yBACF,CACF,CAEA,mBAIE,6BAAoC,CAMpC,kBAAmB,CACnB,cAAe,CACf,eAAgB,CALhB,QAAS,CADT,QAAS,CAET,eAAgB,CAHhB,iBAAkB,CAJlB,cAAe,CACf,iBAAkB,CAOlB,yBAA6B,CAN7B,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAAiB,CAUjB,iBACF,CAIA,iBACE,2BACF,CAIA,yBAGE,oBAAsB,CACtB,oBAAsB,CAGtB,0BAA4B,CAF5B,kBAAoB,CACpB,mBAAqB,CALrB,wBAA0B,CAO1B,2BAA6B,CAN7B,oBAOF,CAIA,WACE,yBACF,CAIA,aACE,uBAAyB,CACzB,yBACF,CAEA,aACE,uBAAyB,CACzB,0BACF,CAMA,aACE,WACF,CAEA,iBACE,eACF\",\"sourcesContent\":[\"/* background div */\\n#calibration-background {\\n z-index: 999999990;\\n position: fixed;\\n width: 100%;\\n height: 100%;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n margin: 0;\\n /* background: #eee; */\\n overflow: hidden;\\n overflow-y: scroll;\\n user-select: none;\\n box-sizing: border-box;\\n text-align: center;\\n scrollbar-width: none;\\n}\\n\\n#calibration-background::-webkit-scrollbar {\\n width: 0;\\n display: none;\\n}\\n\\n#calibration-background * {\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\\n}\\n\\n#calibration-background p {\\n line-height: 150%;\\n}\\n\\n.calibration-instruction {\\n position: absolute;\\n user-select: none;\\n pointer-events: none;\\n}\\n\\n.calibration-instruction-scrollable {\\n height: 200%;\\n}\\n\\n.calibration-instruction h1 {\\n min-width: 360px;\\n font-weight: 700;\\n}\\n\\n.calibration-instruction * {\\n font-size: 1.2rem;\\n line-height: 170%;\\n margin: 0;\\n padding: 0;\\n}\\n\\n.calibration-instruction p {\\n white-space: pre-line;\\n margin-top: 1rem;\\n}\\n\\n.calibration-description {\\n line-height: 170%;\\n}\\n\\n.rc-hang-description {\\n margin-top: 50vh !important;\\n font-size: 1rem !important;\\n}\\n\\n/* -------------------------------------------------------------------------- */\\n/* Screen size specific */\\n\\n@media (min-width: 481px) {\\n .calibration-instruction {\\n margin: 2rem;\\n }\\n\\n .calibration-instruction h1 {\\n line-height: 100%;\\n font-size: 2.5rem !important;\\n }\\n\\n .calibration-description {\\n width: calc(100% - 4rem);\\n width: max(min(100% - 4rem, 960px), 300px);\\n }\\n\\n .calibration-description,\\n .calibration-description * {\\n font-size: 1.2rem;\\n }\\n\\n .calibration-credit-text {\\n font-size: 0.9rem !important;\\n }\\n}\\n\\n@media (max-width: 480px) {\\n .calibration-instruction {\\n margin: 1rem;\\n }\\n\\n .calibration-instruction h1 {\\n line-height: 120%;\\n font-size: 1.8rem !important;\\n }\\n\\n .calibration-description {\\n width: calc(100% - 1rem);\\n }\\n\\n .calibration-description,\\n .calibration-description * {\\n font-size: 1rem;\\n }\\n\\n .calibration-credit-text {\\n font-size: 0.7rem !important;\\n }\\n}\\n\\n.float-instruction {\\n position: fixed;\\n text-align: center;\\n user-select: none;\\n background: rgba(255, 255, 255, 0.9);\\n padding: 10px 17px;\\n margin: 0;\\n left: 50%;\\n max-width: 25rem;\\n transform: translate(-50%, 0);\\n border-radius: 10px;\\n font-size: 1rem;\\n font-weight: 500;\\n z-index: 999999991;\\n}\\n\\n/* -------------------------------------------------------------------------- */\\n\\n.swal2-container {\\n z-index: 999999999 !important;\\n}\\n\\n/* -------------------------------------------------------------------------- */\\n\\n.calibration-credit-text {\\n position: fixed !important;\\n width: 100% !important;\\n bottom: 3px !important;\\n color: #999 !important;\\n margin: 0 !important;\\n padding: 0 !important;\\n line-height: 100% !important;\\n text-align: center !important;\\n}\\n\\n/* -------------------------------------------------------------------------- */\\n\\n.lock-view {\\n overflow: hidden !important;\\n}\\n\\n/* -------------------------------------------------------------------------- */\\n\\n.rc-lang-ltr {\\n direction: ltr !important;\\n text-align: left !important;\\n}\\n\\n.rc-lang-rtl {\\n direction: rtl !important;\\n text-align: right !important;\\n}\\n\\n/* -------------------------------------------------------------------------- */\\n/* --------------------------------- CURSOR --------------------------------- */\\n/* -------------------------------------------------------------------------- */\\n\\n.cursor-grab {\\n cursor: grab;\\n}\\n\\n.cursor-grabbing {\\n cursor: grabbing;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.swal2-container{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif!important}.my__swal2__icon{font-weight:700!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.my__swal2__icon *{color:#ff9a00!important}.my__swal2__title{color:#000!important;font-size:2rem!important;font-weight:700!important}.my__swal2__html,.my__swal2__title{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.my__swal2__html{color:#444!important;font-size:1.2rem!important;font-weight:400!important;line-height:150%!important;margin:1.6rem}.my__swal2__html__center{text-align:center!important}.animate__animated.animate__fadeInUp,.animate__animated.animate__fadeOutDown{--animate-duration:400ms!important;--animate-delay:0!important}.fadeInUp,.fadeOutDown{animation-delay:0!important;animation-duration:.4s!important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/css/swal.css\"],\"names\":[],\"mappings\":\"AAAA,iBACE,kIAEF,CAEA,iBACE,yBAA4B,CAC5B,kCAA4B,CAA5B,+BAA4B,CAA5B,0BACF,CAEA,mBACE,uBACF,CAEA,kBACE,oBAAsB,CACtB,wBAA0B,CAC1B,yBAEF,CAEA,mCAHE,kCAA4B,CAA5B,+BAA4B,CAA5B,0BAUF,CAPA,iBAEE,oBAAsB,CACtB,0BAA4B,CAE5B,yBAA8B,CAD9B,0BAA4B,CAH5B,aAMF,CAEA,yBACE,2BACF,CAEA,6EAEE,kCAAoC,CACpC,2BACF,CAEA,uBAGE,2BAA6B,CAD7B,gCAEF\",\"sourcesContent\":[\".swal2-container {\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif !important;\\n}\\n\\n.my__swal2__icon {\\n font-weight: bold !important;\\n user-select: none !important;\\n}\\n\\n.my__swal2__icon * {\\n color: #ff9a00 !important;\\n}\\n\\n.my__swal2__title {\\n color: #000 !important;\\n font-size: 2rem !important;\\n font-weight: bold !important;\\n user-select: none !important;\\n}\\n\\n.my__swal2__html {\\n margin: 1.6rem;\\n color: #444 !important;\\n font-size: 1.2rem !important;\\n line-height: 150% !important;\\n font-weight: normal !important;\\n user-select: none !important;\\n}\\n\\n.my__swal2__html__center {\\n text-align: center !important;\\n}\\n\\n.animate__animated.animate__fadeInUp,\\n.animate__animated.animate__fadeOutDown {\\n --animate-duration: 400ms !important;\\n --animate-delay: 0 !important;\\n}\\n\\n.fadeInUp,\\n.fadeOutDown {\\n animation-duration: 400ms !important;\\n animation-delay: 0 !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","/*! LeaderLine v1.1.5 (c) anseki https://anseki.github.io/leader-line/ */\nvar LeaderLine=function(){\"use strict\";var te,M,I,C,L,o,t,h,f,p,n,a,e,x,b,l,r,i,k,w,s,u,c,A=\"leader-line\",V=1,P=2,N=3,T=4,W={top:V,right:P,bottom:N,left:T},B=1,R=2,F=3,G=4,D=5,z={straight:B,arc:R,fluid:F,magnet:G,grid:D},ne=\"behind\",d=A+\"-defs\",y='',ae={disc:{elmId:\"leader-line-disc\",noRotate:!0,bBox:{left:-5,top:-5,width:10,height:10,right:5,bottom:5},widthR:2.5,heightR:2.5,bCircle:5,sideLen:5,backLen:5,overhead:0,outlineBase:1,outlineMax:4},square:{elmId:\"leader-line-square\",noRotate:!0,bBox:{left:-5,top:-5,width:10,height:10,right:5,bottom:5},widthR:2.5,heightR:2.5,bCircle:5,sideLen:5,backLen:5,overhead:0,outlineBase:1,outlineMax:4},arrow1:{elmId:\"leader-line-arrow1\",bBox:{left:-8,top:-8,width:16,height:16,right:8,bottom:8},widthR:4,heightR:4,bCircle:8,sideLen:8,backLen:8,overhead:8,outlineBase:2,outlineMax:1.5},arrow2:{elmId:\"leader-line-arrow2\",bBox:{left:-7,top:-8,width:11,height:16,right:4,bottom:8},widthR:2.75,heightR:4,bCircle:8,sideLen:8,backLen:7,overhead:4,outlineBase:1,outlineMax:1.75},arrow3:{elmId:\"leader-line-arrow3\",bBox:{left:-4,top:-5,width:12,height:10,right:8,bottom:5},widthR:3,heightR:2.5,bCircle:8,sideLen:5,backLen:4,overhead:8,outlineBase:1,outlineMax:2.5},hand:{elmId:\"leader-line-hand\",bBox:{left:-3,top:-12,width:40,height:24,right:37,bottom:12},widthR:10,heightR:6,bCircle:37,sideLen:12,backLen:3,overhead:37},crosshair:{elmId:\"leader-line-crosshair\",noRotate:!0,bBox:{left:-96,top:-96,width:192,height:192,right:96,bottom:96},widthR:48,heightR:48,bCircle:96,sideLen:96,backLen:96,overhead:0}},j={behind:ne,disc:\"disc\",square:\"square\",arrow1:\"arrow1\",arrow2:\"arrow2\",arrow3:\"arrow3\",hand:\"hand\",crosshair:\"crosshair\"},ie={disc:\"disc\",square:\"square\",arrow1:\"arrow1\",arrow2:\"arrow2\",arrow3:\"arrow3\",hand:\"hand\",crosshair:\"crosshair\"},H=[V,P,N,T],U=\"auto\",oe={x:\"left\",y:\"top\",width:\"width\",height:\"height\"},Z=80,Y=4,X=5,q=120,Q=8,K=3.75,J=10,$=30,ee=.5522847,le=.25*Math.PI,m=/^\\s*(\\-?[\\d\\.]+)\\s*(\\%)?\\s*$/,re=\"http://www.w3.org/2000/svg\",S=\"-ms-scroll-limit\"in document.documentElement.style&&\"-ms-ime-align\"in document.documentElement.style&&!window.navigator.msPointerEnabled,se=!S&&!!document.uniqueID,ue=\"MozAppearance\"in document.documentElement.style,he=!(S||ue||!window.chrome||!window.CSS),pe=!S&&!se&&!ue&&!he&&!window.chrome&&\"WebkitAppearance\"in document.documentElement.style,ce=se||S?.2:.1,de={path:F,lineColor:\"coral\",lineSize:4,plugSE:[ne,\"arrow1\"],plugSizeSE:[1,1],lineOutlineEnabled:!1,lineOutlineColor:\"indianred\",lineOutlineSize:.25,plugOutlineEnabledSE:[!1,!1],plugOutlineSizeSE:[1,1]},fe=(s={}.toString,u={}.hasOwnProperty.toString,c=u.call(Object),function(e){var t,n;return e&&\"[object Object]\"===s.call(e)&&(!(t=Object.getPrototypeOf(e))||(n=t.hasOwnProperty(\"constructor\")&&t.constructor)&&\"function\"==typeof n&&u.call(n)===c)}),ye=Number.isFinite||function(e){return\"number\"==typeof e&&window.isFinite(e)},g=(x={ease:[.25,.1,.25,1],linear:[0,0,1,1],\"ease-in\":[.42,0,1,1],\"ease-out\":[0,0,.58,1],\"ease-in-out\":[.42,0,.58,1]},b=1e3/60/2,l=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||function(e){setTimeout(e,b)},r=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.msCancelAnimationFrame||function(e){clearTimeout(e)},i=Number.isFinite||function(e){return\"number\"==typeof e&&window.isFinite(e)},k=[],w=0,{add:function(n,e,t,a,i,o,l){var r,s,u,h,p,c,d,f,y,m,S,g,_,v=++w;function E(e,t){return{value:n(t),timeRatio:e,outputRatio:t}}if(\"string\"==typeof i&&(i=x[i]),n=n||function(){},t=this._endIndex||this._string[this._currentIndex]<\"0\"||\"9\"=this._endIndex||this._string[this._currentIndex]<\"0\"||\"9\"=this._endIndex)return null;var e=null,t=this._string[this._currentIndex];if(this._currentIndex+=1,\"0\"===t)e=0;else{if(\"1\"!==t)return null;e=1}return this._skipOptionalSpacesOrDelimiter(),e}};function a(e){if(!e||0===e.length)return[];var t=new i(e),n=[];if(t.initialCommandIsMoveTo())for(;t.hasMoreData();){var a=t.parseSegment();if(null===a)break;n.push(a)}return n}function r(e){return e.map(function(e){return{type:e.type,values:Array.prototype.slice.call(e.values)}})}function d(e){var m=[],S=null,g=null,_=null,v=null,E=null,x=null,b=null;return e.forEach(function(e){var t,n,a,i,o,l,r,s,u,h,p,c,d,f,y;\"M\"===e.type?(f=e.values[0],y=e.values[1],m.push({type:\"M\",values:[f,y]}),v=x=f,E=b=y):\"C\"===e.type?(a=e.values[0],i=e.values[1],t=e.values[2],n=e.values[3],f=e.values[4],y=e.values[5],m.push({type:\"C\",values:[a,i,t,n,f,y]}),g=t,_=n,v=f,E=y):\"L\"===e.type?(f=e.values[0],y=e.values[1],m.push({type:\"L\",values:[f,y]}),v=f,E=y):\"H\"===e.type?(f=e.values[0],m.push({type:\"L\",values:[f,E]}),v=f):\"V\"===e.type?(y=e.values[0],m.push({type:\"L\",values:[v,y]}),E=y):\"S\"===e.type?(t=e.values[0],n=e.values[1],f=e.values[2],y=e.values[3],l=\"C\"===S||\"S\"===S?(o=v+(v-g),E+(E-_)):(o=v,E),m.push({type:\"C\",values:[o,l,t,n,f,y]}),g=t,_=n,v=f,E=y):\"T\"===e.type?(f=e.values[0],y=e.values[1],i=\"Q\"===S||\"T\"===S?(a=v+(v-g),E+(E-_)):(a=v,E),o=v+2*(a-v)/3,l=E+2*(i-E)/3,r=f+2*(a-f)/3,s=y+2*(i-y)/3,m.push({type:\"C\",values:[o,l,r,s,f,y]}),g=a,_=i,v=f,E=y):\"Q\"===e.type?(a=e.values[0],i=e.values[1],f=e.values[2],y=e.values[3],o=v+2*(a-v)/3,l=E+2*(i-E)/3,r=f+2*(a-f)/3,s=y+2*(i-y)/3,m.push({type:\"C\",values:[o,l,r,s,f,y]}),g=a,_=i,v=f,E=y):\"A\"===e.type?(u=e.values[0],h=e.values[1],p=e.values[2],c=e.values[3],d=e.values[4],f=e.values[5],y=e.values[6],0===u||0===h?(m.push({type:\"C\",values:[v,E,f,y,f,y]}),v=f,E=y):v===f&&E===y||U(v,E,f,y,u,h,p,c,d).forEach(function(e){m.push({type:\"C\",values:e}),v=f,E=y})):\"Z\"===e.type&&(m.push(e),v=x,E=b),S=e.type}),m}var n=e.SVGPathElement.prototype.setAttribute,s=e.SVGPathElement.prototype.removeAttribute,f=e.Symbol?e.Symbol():\"__cachedPathData\",y=e.Symbol?e.Symbol():\"__cachedNormalizedPathData\",U=function(e,t,n,a,i,o,l,r,s,u){function h(e,t,n){return{x:e*Math.cos(n)-t*Math.sin(n),y:e*Math.sin(n)+t*Math.cos(n)}}var p,c,d,f,y,m,S,g,_,v,E,x,b,k,w,O=(p=l,Math.PI*p/180),M=[];u?(k=u[0],w=u[1],x=u[2],b=u[3]):(e=(c=h(e,t,-O)).x,t=c.y,1<(m=(f=(e-(n=(d=h(n,a,-O)).x))/2)*f/(i*i)+(y=(t-(a=d.y))/2)*y/(o*o))&&(i*=m=Math.sqrt(m),o*=m),_=(S=i*i)*(g=o*o)-S*y*y-g*f*f,v=S*y*y+g*f*f,x=(E=(r===s?-1:1)*Math.sqrt(Math.abs(_/v)))*i*y/o+(e+n)/2,b=E*-o*f/i+(t+a)/2,k=Math.asin(parseFloat(((t-b)/o).toFixed(9))),w=Math.asin(parseFloat(((a-b)/o).toFixed(9))),e120*Math.PI/180&&(I=w,C=n,L=a,w=s&&k=e.duration&&e.count&&e.loopsLeft<=1)return a=e.frames[e.lastFrame=e.reverse?0:e.frames.length-1],e.frameCallback(a.value,!0,a.timeRatio,a.outputRatio),void(e.framesStart=null);if(t>e.duration){if(n=Math.floor(t/e.duration),e.count){if(n>=e.loopsLeft)return a=e.frames[e.lastFrame=e.reverse?0:e.frames.length-1],e.frameCallback(a.value,!0,a.timeRatio,a.outputRatio),void(e.framesStart=null);e.loopsLeft-=n}e.framesStart+=e.duration*n,t=i-e.framesStart}e.reverse&&(t=e.duration-t),a=e.frames[e.lastFrame=Math.round(t/b)],!1!==e.frameCallback(a.value,!1,a.timeRatio,a.outputRatio)?o=!0:e.framesStart=null}}),o&&(e=l.call(window,be))}function ke(e,t){e.framesStart=Date.now(),null!=t&&(e.framesStart-=e.duration*(e.reverse?1-t:t)),e.loopsLeft=e.count,e.lastFrame=null,be()}function we(t,n){var e,a;return typeof t!=typeof n||(e=fe(t)?\"obj\":Array.isArray(t)?\"array\":\"\")!=(fe(n)?\"obj\":Array.isArray(n)?\"array\":\"\")||(\"obj\"===e?we(a=Object.keys(t).sort(),Object.keys(n).sort())||a.some(function(e){return we(t[e],n[e])}):\"array\"===e?t.length!==n.length||t.some(function(e,t){return we(e,n[t])}):t!==n)}function Oe(n){return n?fe(n)?Object.keys(n).reduce(function(e,t){return e[t]=Oe(n[t]),e},{}):Array.isArray(n)?n.map(Oe):n:n}function Me(e){var t,n,a,i=1,o=e=(e+\"\").trim();function l(e){var t=1,n=m.exec(e);return n&&(t=parseFloat(n[1]),n[2]?t=0<=t&&t<=100?t/100:1:(t<0||1=Math.abs(n)?0<=t?P:T:0<=n?N:V))})),E.position_path!==x.position_path||E.position_lineStrokeWidth!==x.position_lineStrokeWidth||[0,1].some(function(e){return E.position_plugOverheadSE[e]!==x.position_plugOverheadSE[e]||(i=b[e],o=x.position_socketXYSE[e],i.x!==o.x||i.y!==o.y||i.socketId!==o.socketId)||(t=_[e],n=x.position_socketGravitySE[e],(a=null==t?\"auto\":Array.isArray(t)?\"array\":\"number\")!=(null==n?\"auto\":Array.isArray(n)?\"array\":\"number\")||(\"array\"==a?t[0]!==n[0]||t[1]!==n[1]:t!==n));var t,n,a,i,o})){switch(u.pathList.baseVal=v=[],u.pathList.animVal=null,E.position_path){case B:v.push([O(b[0]),O(b[1])]);break;case R:t=\"number\"==typeof _[0]&&0<_[0]||\"number\"==typeof _[1]&&0<_[1],o=le*(t?-1:1),l=Math.atan2(b[1].y-b[0].y,b[1].x-b[0].x),r=o-l,c=Math.PI-l-o,d=Ve(b[0],b[1])/Math.sqrt(2)*ee,m={x:b[0].x+Math.cos(r)*d,y:b[0].y+Math.sin(r)*d*-1},S={x:b[1].x+Math.cos(c)*d,y:b[1].y+Math.sin(c)*d*-1},v.push([O(b[0]),m,S,O(b[1])]);break;case F:case G:s=[_[0],E.position_path===G?0:_[1]],h=[],p=[],b.forEach(function(e,t){var n,a,i,o,l=s[t],r=Array.isArray(l)?{x:l[0],y:l[1]}:\"number\"==typeof l?e.socketId===V?{x:0,y:-l}:e.socketId===P?{x:l,y:0}:e.socketId===N?{x:0,y:l}:{x:-l,y:0}:(n=b[t?0:1],i=0<(a=E.position_plugOverheadSE[t])?q+(QY?(E.position_lineStrokeWidth-Y)*X:0),e.socketId===V?((o=(e.y-n.y)/2)=t.x:t.dirId===r?e.y>=t.y:e.x<=t.x}function y(e,t){return t.dirId===o||t.dirId===r?e.x===t.x:e.y===t.y}function m(e){return e[0]?{contain:0,notContain:1}:{contain:1,notContain:0}}function S(e,t,n){return Math.abs(t[n]-e[n])}function g(e,t,n){return\"x\"===n?e.x=$?g(h[t.notContain],h[t.contain],o[t.contain]):h[t.contain].dirId)):(i=[{x:h[0].x,y:h[0].y},{x:h[1].x,y:h[1].y}],u.forEach(function(e,t){var n=0===t?1:0,a=S(i[t],i[n],o[t]);a<$&&(h[t]=d(h[t],$-a)),e.push(h[t]),h[t]=d(h[t],$,g(h[t],h[n],o[n]))}))}return 1}(););u[1].reverse(),u[0].concat(u[1]).forEach(function(e,t){var n={x:e.x,y:e.y};0J&&(y[a]-eJ&&(y[a]-ea.outlineMax&&(t=a.outlineMax),t*=2*a.outlineBase,v=qe(S,_.plugOutline_strokeWidthSE,e,t)||v,v=qe(S,_.plugOutline_inStrokeWidthSE,e,_.plugOutline_colorTraSE[e]?t-ce/(_.line_strokeWidth/de.lineSize)/g.plugSizeSE[e]*2:t/2)||v)}),v)),(t.faces||ee.line||ee.plug||ee.lineOutline||ee.plugOutline)&&(ee.faces=(b=(E=e).curStats,k=E.aplStats,w=E.events,O=!1,!b.line_altColor&&qe(E,k,\"line_color\",x=b.line_color,w.apl_line_color)&&(E.lineFace.style.stroke=x,O=!0),qe(E,k,\"line_strokeWidth\",x=b.line_strokeWidth,w.apl_line_strokeWidth)&&(E.lineShape.style.strokeWidth=x+\"px\",O=!0,(ue||se)&&(He(E,E.lineShape),se&&(He(E,E.lineFace),He(E,E.lineMaskCaps)))),qe(E,k,\"lineOutline_enabled\",x=b.lineOutline_enabled,w.apl_lineOutline_enabled)&&(E.lineOutlineFace.style.display=x?\"inline\":\"none\",O=!0),b.lineOutline_enabled&&(qe(E,k,\"lineOutline_color\",x=b.lineOutline_color,w.apl_lineOutline_color)&&(E.lineOutlineFace.style.stroke=x,O=!0),qe(E,k,\"lineOutline_strokeWidth\",x=b.lineOutline_strokeWidth,w.apl_lineOutline_strokeWidth)&&(E.lineOutlineMaskShape.style.strokeWidth=x+\"px\",O=!0,se&&(He(E,E.lineOutlineMaskCaps),He(E,E.lineOutlineFace))),qe(E,k,\"lineOutline_inStrokeWidth\",x=b.lineOutline_inStrokeWidth,w.apl_lineOutline_inStrokeWidth)&&(E.lineMaskShape.style.strokeWidth=x+\"px\",O=!0,se&&(He(E,E.lineOutlineMaskCaps),He(E,E.lineOutlineFace)))),qe(E,k,\"plug_enabled\",x=b.plug_enabled,w.apl_plug_enabled)&&(E.plugsFace.style.display=x?\"inline\":\"none\",O=!0),b.plug_enabled&&[0,1].forEach(function(n){var e=b.plug_plugSE[n],t=e!==ne?ae[ie[e]]:null,a=Ye(n,t);qe(E,k.plug_enabledSE,n,x=b.plug_enabledSE[n],w.apl_plug_enabledSE)&&(E.plugsFace.style[a.prop]=x?\"url(#\"+E.plugMarkerIdSE[n]+\")\":\"none\",O=!0),b.plug_enabledSE[n]&&(qe(E,k.plug_plugSE,n,e,w.apl_plug_plugSE)&&(E.plugFaceSE[n].href.baseVal=\"#\"+t.elmId,Ze(E,E.plugMarkerSE[n],a.orient,t.bBox,E.svg,E.plugMarkerShapeSE[n],E.plugsFace),O=!0,ue&&He(E,E.plugsFace)),qe(E,k.plug_colorSE,n,x=b.plug_colorSE[n],w.apl_plug_colorSE)&&(E.plugFaceSE[n].style.fill=x,O=!0,(he||pe||se)&&!b.line_colorTra&&He(E,se?E.lineMaskCaps:E.capsMaskLine)),[\"markerWidth\",\"markerHeight\"].forEach(function(e){var t=\"plug_\"+e+\"SE\";qe(E,k[t],n,x=b[t][n],w[\"apl_\"+t])&&(E.plugMarkerSE[n][e].baseVal.value=x,O=!0)}),qe(E,k.plugOutline_enabledSE,n,x=b.plugOutline_enabledSE[n],w.apl_plugOutline_enabledSE)&&(x?(E.plugFaceSE[n].style.mask=\"url(#\"+E.plugMaskIdSE[n]+\")\",E.plugOutlineFaceSE[n].style.display=\"inline\"):(E.plugFaceSE[n].style.mask=\"none\",E.plugOutlineFaceSE[n].style.display=\"none\"),O=!0),b.plugOutline_enabledSE[n]&&(qe(E,k.plugOutline_plugSE,n,e,w.apl_plugOutline_plugSE)&&(E.plugOutlineFaceSE[n].href.baseVal=E.plugMaskShapeSE[n].href.baseVal=E.plugOutlineMaskShapeSE[n].href.baseVal=\"#\"+t.elmId,[E.plugMaskSE[n],E.plugOutlineMaskSE[n]].forEach(function(e){e.x.baseVal.value=t.bBox.left,e.y.baseVal.value=t.bBox.top,e.width.baseVal.value=t.bBox.width,e.height.baseVal.value=t.bBox.height}),O=!0),qe(E,k.plugOutline_colorSE,n,x=b.plugOutline_colorSE[n],w.apl_plugOutline_colorSE)&&(E.plugOutlineFaceSE[n].style.fill=x,O=!0,se&&(He(E,E.lineMaskCaps),He(E,E.lineOutlineMaskCaps))),qe(E,k.plugOutline_strokeWidthSE,n,x=b.plugOutline_strokeWidthSE[n],w.apl_plugOutline_strokeWidthSE)&&(E.plugOutlineMaskShapeSE[n].style.strokeWidth=x+\"px\",O=!0),qe(E,k.plugOutline_inStrokeWidthSE,n,x=b.plugOutline_inStrokeWidthSE[n],w.apl_plugOutline_inStrokeWidthSE)&&(E.plugMaskShapeSE[n].style.strokeWidth=x+\"px\",O=!0)))}),O)),(t.position||ee.line||ee.plug)&&(ee.position=Je(e)),(t.path||ee.position)&&(ee.path=(C=(M=e).curStats,L=M.aplStats,A=M.pathList.animVal||M.pathList.baseVal,V=C.path_edge,P=!1,A&&(V.x1=V.x2=A[0][0].x,V.y1=V.y2=A[0][0].y,C.path_pathData=I=Re(A,function(e){e.xV.x2&&(V.x2=e.x),e.y>V.y2&&(V.y2=e.y)}),Ge(I,L.path_pathData)&&(M.linePath.setPathData(I),L.path_pathData=I,P=!0,se?(He(M,M.plugsFace),He(M,M.lineMaskCaps)):ue&&He(M,M.linePath),M.events.apl_path&&M.events.apl_path.forEach(function(e){e(M,I)}))),P)),ee.viewBox=(T=(N=e).curStats,W=N.aplStats,B=T.path_edge,R=T.viewBox_bBox,F=W.viewBox_bBox,G=N.svg.viewBox.baseVal,D=N.svg.style,z=!1,j=Math.max(T.line_strokeWidth/2,T.viewBox_plugBCircleSE[0]||0,T.viewBox_plugBCircleSE[1]||0),H={x1:B.x1-j,y1:B.y1-j,x2:B.x2+j,y2:B.y2+j},N.events.new_edge4viewBox&&N.events.new_edge4viewBox.forEach(function(e){e(N,H)}),R.x=T.lineMask_x=T.lineOutlineMask_x=T.maskBGRect_x=H.x1,R.y=T.lineMask_y=T.lineOutlineMask_y=T.maskBGRect_y=H.y1,R.width=H.x2-H.x1,R.height=H.y2-H.y1,[\"x\",\"y\",\"width\",\"height\"].forEach(function(e){var t;(t=R[e])!==F[e]&&(G[e]=F[e]=t,D[oe[e]]=t+(\"x\"===e||\"y\"===e?N.bodyOffset[e]:0)+\"px\",z=!0)}),z),ee.mask=(Y=(U=e).curStats,X=U.aplStats,q=!1,Y.plug_enabled?[0,1].forEach(function(e){Y.capsMaskMarker_enabledSE[e]=Y.plug_enabledSE[e]&&Y.plug_colorTraSE[e]||Y.plugOutline_enabledSE[e]&&Y.plugOutline_colorTraSE[e]}):Y.capsMaskMarker_enabledSE[0]=Y.capsMaskMarker_enabledSE[1]=!1,Y.capsMaskMarker_enabled=Y.capsMaskMarker_enabledSE[0]||Y.capsMaskMarker_enabledSE[1],Y.lineMask_outlineMode=Y.lineOutline_enabled,Y.caps_enabled=Y.capsMaskMarker_enabled||Y.capsMaskAnchor_enabledSE[0]||Y.capsMaskAnchor_enabledSE[1],Y.lineMask_enabled=Y.caps_enabled||Y.lineMask_outlineMode,(Y.lineMask_enabled&&!Y.lineMask_outlineMode||Y.lineOutline_enabled)&&[\"x\",\"y\"].forEach(function(e){var t=\"maskBGRect_\"+e;qe(U,X,t,Z=Y[t])&&(U.maskBGRect[e].baseVal.value=Z,q=!0)}),qe(U,X,\"lineMask_enabled\",Z=Y.lineMask_enabled)&&(U.lineFace.style.mask=Z?\"url(#\"+U.lineMaskId+\")\":\"none\",q=!0,pe&&He(U,U.lineMask)),Y.lineMask_enabled&&(qe(U,X,\"lineMask_outlineMode\",Z=Y.lineMask_outlineMode)&&(Z?(U.lineMaskBG.style.display=\"none\",U.lineMaskShape.style.display=\"inline\"):(U.lineMaskBG.style.display=\"inline\",U.lineMaskShape.style.display=\"none\"),q=!0),[\"x\",\"y\"].forEach(function(e){var t=\"lineMask_\"+e;qe(U,X,t,Z=Y[t])&&(U.lineMask[e].baseVal.value=Z,q=!0)}),qe(U,X,\"caps_enabled\",Z=Y.caps_enabled)&&(U.lineMaskCaps.style.display=U.lineOutlineMaskCaps.style.display=Z?\"inline\":\"none\",q=!0,pe&&He(U,U.capsMaskLine)),Y.caps_enabled&&([0,1].forEach(function(e){var t;qe(U,X.capsMaskAnchor_enabledSE,e,Z=Y.capsMaskAnchor_enabledSE[e])&&(U.capsMaskAnchorSE[e].style.display=Z?\"inline\":\"none\",q=!0,pe&&He(U,U.lineMask)),Y.capsMaskAnchor_enabledSE[e]&&(Ge(t=Y.capsMaskAnchor_pathDataSE[e],X.capsMaskAnchor_pathDataSE[e])&&(U.capsMaskAnchorSE[e].setPathData(t),X.capsMaskAnchor_pathDataSE[e]=t,q=!0),qe(U,X.capsMaskAnchor_strokeWidthSE,e,Z=Y.capsMaskAnchor_strokeWidthSE[e])&&(U.capsMaskAnchorSE[e].style.strokeWidth=Z+\"px\",q=!0))}),qe(U,X,\"capsMaskMarker_enabled\",Z=Y.capsMaskMarker_enabled)&&(U.capsMaskLine.style.display=Z?\"inline\":\"none\",q=!0),Y.capsMaskMarker_enabled&&[0,1].forEach(function(n){var e=Y.capsMaskMarker_plugSE[n],t=e!==ne?ae[ie[e]]:null,a=Ye(n,t);qe(U,X.capsMaskMarker_enabledSE,n,Z=Y.capsMaskMarker_enabledSE[n])&&(U.capsMaskLine.style[a.prop]=Z?\"url(#\"+U.lineMaskMarkerIdSE[n]+\")\":\"none\",q=!0),Y.capsMaskMarker_enabledSE[n]&&(qe(U,X.capsMaskMarker_plugSE,n,e)&&(U.capsMaskMarkerShapeSE[n].href.baseVal=\"#\"+t.elmId,Ze(U,U.capsMaskMarkerSE[n],a.orient,t.bBox,U.svg,U.capsMaskMarkerShapeSE[n],U.capsMaskLine),q=!0,ue&&(He(U,U.capsMaskLine),He(U,U.lineFace))),[\"markerWidth\",\"markerHeight\"].forEach(function(e){var t=\"capsMaskMarker_\"+e+\"SE\";qe(U,X[t],n,Z=Y[t][n])&&(U.capsMaskMarkerSE[n][e].baseVal.value=Z,q=!0)}))}))),Y.lineOutline_enabled&&[\"x\",\"y\"].forEach(function(e){var t=\"lineOutlineMask_\"+e;qe(U,X,t,Z=Y[t])&&(U.lineOutlineMask[e].baseVal.value=Z,q=!0)}),q),t.effect&&(J=(Q=e).curStats,$=Q.aplStats,Object.keys(te).forEach(function(e){var t=te[e],n=e+\"_enabled\",a=e+\"_options\",i=J[a];qe(Q,$,n,K=J[n])?(K&&($[a]=Oe(i)),t[K?\"init\":\"remove\"](Q)):K&&we(i,$[a])&&(t.remove(Q),$[n]=!0,$[a]=Oe(i),t.init(Q))})),(he||pe)&&ee.line&&!ee.path&&He(e,e.lineShape),he&&ee.plug&&!ee.line&&He(e,e.plugsFace),Ue(e)}function tt(e,t){return{duration:ye(e.duration)&&0i.x2&&(i.x2=t.x2),t.y2>i.y2&&(i.y2=t.y2),[\"x\",\"y\"].forEach(function(e){var t,n=\"dropShadow_\"+e;o[n]=t=i[e+\"1\"],qe(a,l,n,t)&&(a.efc_dropShadow_elmFilter[e].baseVal.value=t)}))}}},Object.keys(te).forEach(function(e){var t=te[e],n=t.stats;n[e+\"_enabled\"]={iniValue:!1},n[e+\"_options\"]={hasProps:!0},t.anim&&(n[e+\"_animOptions\"]={},n[e+\"_animId\"]={})}),M={none:{defaultAnimOptions:{},init:function(e,t){var n=e.curStats;n.show_animId&&(g.remove(n.show_animId),n.show_animId=null),M.none.start(e,t)},start:function(e,t){M.none.stop(e,!0)},stop:function(e,t,n){var a=e.curStats;return n=null!=n?n:e.aplStats.show_on,a.show_inAnim=!1,t&&$e(e,n),n?1:0}},fade:{defaultAnimOptions:{duration:300,timing:\"linear\"},init:function(n,e){var t=n.curStats,a=n.aplStats;t.show_animId&&g.remove(t.show_animId),t.show_animId=g.add(function(e){return e},function(e,t){t?M.fade.stop(n,!0):(n.svg.style.opacity=e+\"\",se&&(He(n,n.svg),Ue(n)))},a.show_animOptions.duration,1,a.show_animOptions.timing,null,!1),M.fade.start(n,e)},start:function(e,t){var n,a=e.curStats;a.show_inAnim&&(n=g.stop(a.show_animId)),$e(e,1),a.show_inAnim=!0,g.start(a.show_animId,!e.aplStats.show_on,null!=t?t:n)},stop:function(e,t,n){var a,i=e.curStats;return n=null!=n?n:e.aplStats.show_on,a=i.show_inAnim?g.stop(i.show_animId):n?1:0,i.show_inAnim=!1,t&&(e.svg.style.opacity=n?\"\":\"0\",$e(e,n)),a}},draw:{defaultAnimOptions:{duration:500,timing:[.58,0,.42,1]},init:function(n,e){var t=n.curStats,a=n.aplStats,l=n.pathList.baseVal,i=Fe(l),r=i.segsLen,s=i.lenAll;t.show_animId&&g.remove(t.show_animId),t.show_animId=g.add(function(e){var t,n,a,i,o=-1;if(0===e)n=[[l[0][0],l[0][0]]];else if(1===e)n=l;else{for(t=s*e,n=[];t>=r[++o];)n.push(l[o]),t-=r[o];t&&(2===(a=l[o]).length?n.push([a[0],Pe(a[0],a[1],t/r[o])]):(i=Te(a[0],a[1],a[2],a[3],Be(a[0],a[1],a[2],a[3],t)),n.push([a[0],i.fromP1,i.fromP2,i])))}return n},function(e,t){t?M.draw.stop(n,!0):(n.pathList.animVal=e,et(n,{path:!0}))},a.show_animOptions.duration,1,a.show_animOptions.timing,null,!1),M.draw.start(n,e)},start:function(e,t){var n,a=e.curStats;a.show_inAnim&&(n=g.stop(a.show_animId)),$e(e,1),a.show_inAnim=!0,De(e,\"apl_position\",M.draw.update),g.start(a.show_animId,!e.aplStats.show_on,null!=t?t:n)},stop:function(e,t,n){var a,i=e.curStats;return n=null!=n?n:e.aplStats.show_on,a=i.show_inAnim?g.stop(i.show_animId):n?1:0,i.show_inAnim=!1,t&&(e.pathList.animVal=n?null:[[e.pathList.baseVal[0][0],e.pathList.baseVal[0][0]]],et(e,{path:!0}),$e(e,n)),a},update:function(e){ze(e,\"apl_position\",M.draw.update),e.curStats.show_inAnim?M.draw.init(e,M.draw.stop(e)):e.aplStats.show_animOptions={}}}},[[\"start\",\"anchorSE\",0],[\"end\",\"anchorSE\",1],[\"color\",\"lineColor\"],[\"size\",\"lineSize\"],[\"startSocketGravity\",\"socketGravitySE\",0],[\"endSocketGravity\",\"socketGravitySE\",1],[\"startPlugColor\",\"plugColorSE\",0],[\"endPlugColor\",\"plugColorSE\",1],[\"startPlugSize\",\"plugSizeSE\",0],[\"endPlugSize\",\"plugSizeSE\",1],[\"outline\",\"lineOutlineEnabled\"],[\"outlineColor\",\"lineOutlineColor\"],[\"outlineSize\",\"lineOutlineSize\"],[\"startPlugOutline\",\"plugOutlineEnabledSE\",0],[\"endPlugOutline\",\"plugOutlineEnabledSE\",1],[\"startPlugOutlineColor\",\"plugOutlineColorSE\",0],[\"endPlugOutlineColor\",\"plugOutlineColorSE\",1],[\"startPlugOutlineSize\",\"plugOutlineSizeSE\",0],[\"endPlugOutlineSize\",\"plugOutlineSizeSE\",1]].forEach(function(e){var t=e[0],n=e[1],a=e[2];Object.defineProperty(lt.prototype,t,{get:function(){var e=null!=a?ge[this._id].options[n][a]:n?ge[this._id].options[n]:ge[this._id].options[t];return null==e?U:Oe(e)},set:rt(t),enumerable:!0})}),[[\"path\",z],[\"startSocket\",W,\"socketSE\",0],[\"endSocket\",W,\"socketSE\",1],[\"startPlug\",j,\"plugSE\",0],[\"endPlug\",j,\"plugSE\",1]].forEach(function(e){var a=e[0],i=e[1],o=e[2],l=e[3];Object.defineProperty(lt.prototype,a,{get:function(){var t,n=null!=l?ge[this._id].options[o][l]:o?ge[this._id].options[o]:ge[this._id].options[a];return n?Object.keys(i).some(function(e){return i[e]===n&&(t=e,!0)})?t:new Error(\"It's broken\"):U},set:rt(a),enumerable:!0})}),Object.keys(te).forEach(function(n){var a=te[n];Object.defineProperty(lt.prototype,n,{get:function(){var u,e,t=ge[this._id].options[n];return fe(t)?(u=t,e=a.optionsConf.reduce(function(e,t){var n,a=t[0],i=t[1],o=t[2],l=t[3],r=t[4],s=null!=r?u[l][r]:l?u[l]:u[i];return e[i]=\"id\"===a?s?Object.keys(o).some(function(e){return o[e]===s&&(n=e,!0)})?n:new Error(\"It's broken\"):U:null==s?U:Oe(s),e},{}),a.anim&&(e.animation=Oe(u.animation)),e):t},set:rt(n),enumerable:!0})}),[\"startLabel\",\"endLabel\",\"middleLabel\"].forEach(function(e,n){Object.defineProperty(lt.prototype,e,{get:function(){var e=ge[this._id],t=e.options;return t.labelSEM[n]&&!e.optionIsAttach.labelSEM[n]?ve[t.labelSEM[n]._id].text:t.labelSEM[n]||\"\"},set:rt(e),enumerable:!0})}),lt.prototype.setOptions=function(e){return ot(ge[this._id],e),this},lt.prototype.position=function(){return et(ge[this._id],{position:!0}),this},lt.prototype.remove=function(){var t=ge[this._id],n=t.curStats;Object.keys(te).forEach(function(e){var t=e+\"_animId\";n[t]&&g.remove(n[t])}),n.show_animId&&g.remove(n.show_animId),t.attachments.slice().forEach(function(e){it(t,e)}),t.baseWindow&&t.svg&&t.baseWindow.document.body.removeChild(t.svg),delete ge[this._id]},lt.prototype.show=function(e,t){return nt(ge[this._id],!0,e,t),this},lt.prototype.hide=function(e,t){return nt(ge[this._id],!1,e,t),this},o=function(t){t&&ve[t._id]&&(t.boundTargets.slice().forEach(function(e){it(e.props,t,!0)}),t.conf.remove&&t.conf.remove(t),delete ve[t._id])},st.prototype.remove=function(){var t=this,n=ve[t._id];n&&(n.boundTargets.slice().forEach(function(e){n.conf.removeOption(n,e)}),je(function(){var e=ve[t._id];e&&(console.error(\"LeaderLineAttachment was not removed by removeOption\"),o(e))}))},C=st,window.LeaderLineAttachment=C,L=function(e,t){return e instanceof C&&(!(e.isRemoved||t&&ve[e._id].conf.type!==t)||null)},I={pointAnchor:{type:\"anchor\",argOptions:[{optionName:\"element\",type:Ie}],init:function(e,t){return e.element=I.pointAnchor.checkElement(t.element),e.x=I.pointAnchor.parsePercent(t.x,!0)||[.5,!0],e.y=I.pointAnchor.parsePercent(t.y,!0)||[.5,!0],!0},removeOption:function(e,t){var n=t.props,a={},i=e.element,o=n.options.anchorSE[\"start\"===t.optionName?1:0];i===o&&(i=o===document.body?new C(I.pointAnchor,[i]):document.body),a[t.optionName]=i,ot(n,a)},getBBoxNest:function(e,t){var n=Ae(e.element,t.baseWindow),a=n.width,i=n.height;return n.width=n.height=0,n.left=n.right=n.left+e.x[0]*(e.x[1]?a:1),n.top=n.bottom=n.top+e.y[0]*(e.y[1]?i:1),n},parsePercent:function(e,t){var n,a,i=!1;return ye(e)?a=e:\"string\"==typeof e&&(n=m.exec(e))&&n[2]&&(i=0!==(a=parseFloat(n[1])/100)),null!=a&&(t||0<=a)?[a,i]:null},checkElement:function(e){if(null==e)e=document.body;else if(!Ie(e))throw new Error(\"`element` must be Element\");return e}},areaAnchor:{type:\"anchor\",argOptions:[{optionName:\"element\",type:Ie},{optionName:\"shape\",type:\"string\"}],stats:{color:{},strokeWidth:{},elementWidth:{},elementHeight:{},elementLeft:{},elementTop:{},pathListRel:{},bBoxRel:{},pathData:{},viewBoxBBox:{hasProps:!0},dashLen:{},dashGap:{}},init:function(i,e){var t,n,a,o=[];return i.element=I.pointAnchor.checkElement(e.element),\"string\"==typeof e.color&&(i.color=e.color.trim()),\"string\"==typeof e.fillColor&&(i.fill=e.fillColor.trim()),ye(e.size)&&0<=e.size&&(i.size=e.size),e.dash&&(i.dash=!0,ye(e.dash.len)&&0i.right&&(i.right=t),ni.bottom&&(i.bottom=n)):i={left:t,right:t,top:n,bottom:n},o?P.pathListRel.push([o,{x:t,y:n}]):P.pathListRel=[],o={x:t,y:n}}),P.pathListRel.push([]),e=P.strokeWidth/2,l=[{x:i.left-e,y:i.top-e},{x:i.right+e,y:i.bottom+e}],P.bBoxRel={left:l[0].x,top:l[0].y,right:l[1].x,bottom:l[1].y,width:l[1].x-l[0].x,height:l[1].y-l[0].y}}W.pathListRel=W.bBoxRel=!0}return(W.pathListRel||W.elementLeft||W.elementTop)&&(P.pathData=Re(P.pathListRel,function(e){e.x+=a.left,e.y+=a.top})),qe(t,N,\"strokeWidth\",n=P.strokeWidth)&&(t.path.style.strokeWidth=n+\"px\"),Ge(n=P.pathData,N.pathData)&&(t.path.setPathData(n),N.pathData=n,W.pathData=!0),t.dash&&(!W.pathData&&(!W.strokeWidth||t.dashLen&&t.dashGap)||(P.dashLen=t.dashLen||2*P.strokeWidth,P.dashGap=t.dashGap||P.strokeWidth),W.dash=qe(t,N,\"dashLen\",P.dashLen)||W.dash,W.dash=qe(t,N,\"dashGap\",P.dashGap)||W.dash,W.dash&&(t.path.style.strokeDasharray=N.dashLen+\",\"+N.dashGap)),C=P.viewBoxBBox,L=N.viewBoxBBox,A=t.svg.viewBox.baseVal,V=t.svg.style,C.x=P.bBoxRel.left+a.left,C.y=P.bBoxRel.top+a.top,C.width=P.bBoxRel.width,C.height=P.bBoxRel.height,[\"x\",\"y\",\"width\",\"height\"].forEach(function(e){(n=C[e])!==L[e]&&(A[e]=L[e]=n,V[oe[e]]=n+(\"x\"===e||\"y\"===e?t.bodyOffset[e]:0)+\"px\")}),W.strokeWidth||W.pathListRel||W.bBoxRel}},mouseHoverAnchor:{type:\"anchor\",argOptions:[{optionName:\"element\",type:Ie},{optionName:\"showEffectName\",type:\"string\"}],style:{backgroundImage:\"url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48cG9seWdvbiBwb2ludHM9IjI0LDAgMCw4IDgsMTEgMCwxOSA1LDI0IDEzLDE2IDE2LDI0IiBmaWxsPSJjb3JhbCIvPjwvc3ZnPg==')\",backgroundSize:\"\",backgroundRepeat:\"no-repeat\",backgroundColor:\"#f8f881\",cursor:\"default\"},hoverStyle:{backgroundImage:\"none\",backgroundColor:\"#fadf8f\"},padding:{top:1,right:15,bottom:1,left:2},minHeight:15,backgroundPosition:{right:2,top:2},backgroundSize:{width:12,height:12},dirKeys:[[\"top\",\"Top\"],[\"right\",\"Right\"],[\"bottom\",\"Bottom\"],[\"left\",\"Left\"]],init:function(a,i){var o,t,e,n,l,r,s,u,h,p,c,d=I.mouseHoverAnchor,f={};if(a.element=I.pointAnchor.checkElement(i.element),u=a.element,!((p=u.ownerDocument)&&(h=p.defaultView)&&h.HTMLElement&&u instanceof h.HTMLElement))throw new Error(\"`element` must be HTML element\");return d.style.backgroundSize=d.backgroundSize.width+\"px \"+d.backgroundSize.height+\"px\",[\"style\",\"hoverStyle\"].forEach(function(e){var n=d[e];a[e]=Object.keys(n).reduce(function(e,t){return e[t]=n[t],e},{})}),\"inline\"===(o=a.element.ownerDocument.defaultView.getComputedStyle(a.element,\"\")).display?a.style.display=\"inline-block\":\"none\"===o.display&&(a.style.display=\"block\"),I.mouseHoverAnchor.dirKeys.forEach(function(e){var t=e[0],n=\"padding\"+e[1];parseFloat(o[n])e.x2&&(e.x2=a.x2),a.y2>e.y2&&(e.y2=a.y2)},newText:function(e,t,n,a,i){var o,l,r,s,u,h=t.createElementNS(re,\"text\");return h.textContent=e,[h.x,h.y].forEach(function(e){var t=n.createSVGLength();t.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PX,0),e.baseVal.initialize(t)}),\"boolean\"!=typeof f&&(f=\"paintOrder\"in h.style),i&&!f?(l=t.createElementNS(re,\"defs\"),h.id=a,l.appendChild(h),(s=(o=t.createElementNS(re,\"g\")).appendChild(t.createElementNS(re,\"use\"))).href.baseVal=\"#\"+a,(r=o.appendChild(t.createElementNS(re,\"use\"))).href.baseVal=\"#\"+a,(u=s.style).strokeLinejoin=\"round\",{elmPosition:h,styleText:h.style,styleFill:r.style,styleStroke:u,styleShow:o.style,elmsAppend:[l,o]}):(u=h.style,i&&(u.strokeLinejoin=\"round\",u.paintOrder=\"stroke\"),{elmPosition:h,styleText:u,styleFill:u,styleStroke:i?u:null,styleShow:u,elmsAppend:[h]})},getMidPoint:function(e,t){var n,a,i=Fe(e),o=i.segsLen,l=i.lenAll,r=-1,s=l/2+(t||0);if(s<=0)return 2===(n=e[0]).length?Pe(n[0],n[1],0):Te(n[0],n[1],n[2],n[3],0);if(l<=s)return 2===(n=e[e.length-1]).length?Pe(n[0],n[1],1):Te(n[0],n[1],n[2],n[3],1);for(a=[];s>o[++r];)a.push(e[r]),s-=o[r];return 2===(n=e[r]).length?Pe(n[0],n[1],s/o[r]):Te(n[0],n[1],n[2],n[3],Be(n[0],n[1],n[2],n[3],s))},initSvg:function(t,n){var e,a,i=I.captionLabel.newText(t.text,n.baseWindow.document,n.svg,A+\"-captionLabel-\"+t._id,t.outlineColor);[\"elmPosition\",\"styleFill\",\"styleShow\",\"elmsAppend\"].forEach(function(e){t[e]=i[e]}),t.isShown=!1,t.styleShow.visibility=\"hidden\",I.captionLabel.textStyleProps.forEach(function(e){null!=t[e]&&(i.styleText[e]=t[e])}),i.elmsAppend.forEach(function(e){n.svg.appendChild(e)}),e=i.elmPosition.getBBox(),t.width=e.width,t.height=e.height,t.outlineColor&&(a=10<(a=e.height/9)?10:a<2?2:a,i.styleStroke.strokeWidth=a+\"px\",i.styleStroke.stroke=t.outlineColor),t.strokeWidth=a||0,Xe(t.aplStats,I.captionLabel.stats),t.updateColor(n),t.refSocketXY?t.updateSocketXY(n):t.updatePath(n),pe&&et(n,{}),t.updateShow(n)},bind:function(e,t){var n=t.props;return e.color||De(n,\"cur_line_color\",e.updateColor),(e.refSocketXY=\"startLabel\"===t.optionName||\"endLabel\"===t.optionName)?(e.socketIndex=\"startLabel\"===t.optionName?0:1,De(n,\"apl_position\",e.updateSocketXY),e.offset||(De(n,\"cur_attach_plugSideLenSE\",e.updateSocketXY),De(n,\"cur_line_strokeWidth\",e.updateSocketXY))):De(n,\"apl_path\",e.updatePath),De(n,\"svgShow\",e.updateShow),pe&&De(n,\"new_edge4viewBox\",e.adjustEdge),I.captionLabel.initSvg(e,n),!0},unbind:function(e,t){var n=t.props;e.elmsAppend&&(e.elmsAppend.forEach(function(e){n.svg.removeChild(e)}),e.elmPosition=e.styleFill=e.styleShow=e.elmsAppend=null),Xe(e.curStats,I.captionLabel.stats),Xe(e.aplStats,I.captionLabel.stats),e.color||ze(n,\"cur_line_color\",e.updateColor),e.refSocketXY?(ze(n,\"apl_position\",e.updateSocketXY),e.offset||(ze(n,\"cur_attach_plugSideLenSE\",e.updateSocketXY),ze(n,\"cur_line_strokeWidth\",e.updateSocketXY))):ze(n,\"apl_path\",e.updatePath),ze(n,\"svgShow\",e.updateShow),pe&&(ze(n,\"new_edge4viewBox\",e.adjustEdge),et(n,{}))},removeOption:function(e,t){var n=t.props,a={};a[t.optionName]=\"\",ot(n,a)},remove:function(t){t.boundTargets.length&&(console.error(\"LeaderLineAttachment was not unbound by remove\"),t.boundTargets.forEach(function(e){I.captionLabel.unbind(t,e)}))}},pathLabel:{type:\"label\",argOptions:[{optionName:\"text\",type:\"string\"}],stats:{color:{},startOffset:{},pathData:{}},init:function(s,t){return\"string\"==typeof t.text&&(s.text=t.text.trim()),!!s.text&&(\"string\"==typeof t.color&&(s.color=t.color.trim()),s.outlineColor=\"string\"==typeof t.outlineColor?t.outlineColor.trim():\"#fff\",ye(t.lineOffset)&&(s.lineOffset=t.lineOffset),I.captionLabel.textStyleProps.forEach(function(e){null!=t[e]&&(s[e]=t[e])}),s.updateColor=function(e){I.captionLabel.updateColor(s,e)},s.updatePath=function(e){var t,n=s.curStats,a=s.aplStats,i=e.curStats,o=e.pathList.animVal||e.pathList.baseVal;o&&(n.pathData=t=I.pathLabel.getOffsetPathData(o,i.line_strokeWidth/2+s.strokeWidth/2+s.height/4,1.25*s.height),Ge(t,a.pathData)&&(s.elmPath.setPathData(t),a.pathData=t,s.bBox=s.elmPosition.getBBox(),s.updateStartOffset(e)))},s.updateStartOffset=function(e){var t,i,n,a,o=s.curStats,l=s.aplStats,r=e.curStats;o.pathData&&(2===s.semIndex&&!s.lineOffset||(n=o.pathData.reduce(function(e,t){var n,a=t.values;switch(t.type){case\"M\":i={x:a[0],y:a[1]};break;case\"L\":n={x:a[0],y:a[1]},i&&(e+=Ve(i,n)),i=n;break;case\"C\":n={x:a[4],y:a[5]},i&&(e+=We(i,{x:a[0],y:a[1]},{x:a[2],y:a[3]},n)),i=n}return e},0),a=0===s.semIndex?0:1===s.semIndex?n:n/2,2!==s.semIndex&&(t=Math.max(r.attach_plugBackLenSE[s.semIndex]||0,r.line_strokeWidth/2)+s.strokeWidth/2+s.height/4,a=(a+=0===s.semIndex?t:-t)<0?0:nx?((t=b.points)[1]=Ne(t[0],t[1],-x),b.len=Ve(t[0],t[1])):(b.points=null,b.len=0),e.len>x+n?((t=e.points)[0]=Ne(t[1],t[0],-(x+n)),e.len=Ve(t[0],t[1])):(e.points=null,e.len=0)),e):null}),k.reduce(function(t,e){var n=e.points;return n&&(a&&w(n[0],a)||t.push({type:\"M\",values:[n[0].x,n[0].y]}),\"line\"===e.type?t.push({type:\"L\",values:[n[1].x,n[1].y]}):(n.shift(),n.forEach(function(e){t.push({type:\"L\",values:[e.x,e.y]})})),a=n[n.length-1]),t},[])},newText:function(e,t,n,a){var i,o,l,r,s,u,h,p,c=t.createElementNS(re,\"defs\"),d=c.appendChild(t.createElementNS(re,\"path\"));return d.id=i=n+\"-path\",(r=(l=t.createElementNS(re,\"text\")).appendChild(t.createElementNS(re,\"textPath\"))).href.baseVal=\"#\"+i,r.startOffset.baseVal.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PX,0),r.textContent=e,\"boolean\"!=typeof f&&(f=\"paintOrder\"in l.style),a&&!f?(l.id=o=n+\"-text\",c.appendChild(l),(h=(s=t.createElementNS(re,\"g\")).appendChild(t.createElementNS(re,\"use\"))).href.baseVal=\"#\"+o,(u=s.appendChild(t.createElementNS(re,\"use\"))).href.baseVal=\"#\"+o,(p=h.style).strokeLinejoin=\"round\",{elmPosition:l,elmPath:d,elmOffset:r,styleText:l.style,styleFill:u.style,styleStroke:p,styleShow:s.style,elmsAppend:[c,s]}):(p=l.style,a&&(p.strokeLinejoin=\"round\",p.paintOrder=\"stroke\"),{elmPosition:l,elmPath:d,elmOffset:r,styleText:p,styleFill:p,styleStroke:a?p:null,styleShow:p,elmsAppend:[c,l]})},initSvg:function(t,n){var e,a,i=I.pathLabel.newText(t.text,n.baseWindow.document,A+\"-pathLabel-\"+t._id,t.outlineColor);[\"elmPosition\",\"elmPath\",\"elmOffset\",\"styleFill\",\"styleShow\",\"elmsAppend\"].forEach(function(e){t[e]=i[e]}),t.isShown=!1,t.styleShow.visibility=\"hidden\",I.captionLabel.textStyleProps.forEach(function(e){null!=t[e]&&(i.styleText[e]=t[e])}),i.elmsAppend.forEach(function(e){n.svg.appendChild(e)}),i.elmPath.setPathData([{type:\"M\",values:[0,100]},{type:\"h\",values:[100]}]),e=i.elmPosition.getBBox(),i.styleText.textAnchor=[\"start\",\"end\",\"middle\"][t.semIndex],2!==t.semIndex||t.lineOffset||i.elmOffset.startOffset.baseVal.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PERCENTAGE,50),t.height=e.height,t.outlineColor&&(a=10<(a=e.height/9)?10:a<2?2:a,i.styleStroke.strokeWidth=a+\"px\",i.styleStroke.stroke=t.outlineColor),t.strokeWidth=a||0,Xe(t.aplStats,I.pathLabel.stats),t.updateColor(n),t.updatePath(n),t.updateStartOffset(n),pe&&et(n,{}),t.updateShow(n)},bind:function(e,t){var n=t.props;return e.color||De(n,\"cur_line_color\",e.updateColor),De(n,\"cur_line_strokeWidth\",e.updatePath),De(n,\"apl_path\",e.updatePath),e.semIndex=\"startLabel\"===t.optionName?0:\"endLabel\"===t.optionName?1:2,2===e.semIndex&&!e.lineOffset||De(n,\"cur_attach_plugBackLenSE\",e.updateStartOffset),De(n,\"svgShow\",e.updateShow),pe&&De(n,\"new_edge4viewBox\",e.adjustEdge),I.pathLabel.initSvg(e,n),!0},unbind:function(e,t){var n=t.props;e.elmsAppend&&(e.elmsAppend.forEach(function(e){n.svg.removeChild(e)}),e.elmPosition=e.elmPath=e.elmOffset=e.styleFill=e.styleShow=e.elmsAppend=null),Xe(e.curStats,I.pathLabel.stats),Xe(e.aplStats,I.pathLabel.stats),e.color||ze(n,\"cur_line_color\",e.updateColor),ze(n,\"cur_line_strokeWidth\",e.updatePath),ze(n,\"apl_path\",e.updatePath),2===e.semIndex&&!e.lineOffset||ze(n,\"cur_attach_plugBackLenSE\",e.updateStartOffset),ze(n,\"svgShow\",e.updateShow),pe&&(ze(n,\"new_edge4viewBox\",e.adjustEdge),et(n,{}))},removeOption:function(e,t){var n=t.props,a={};a[t.optionName]=\"\",ot(n,a)},remove:function(t){t.boundTargets.length&&(console.error(\"LeaderLineAttachment was not unbound by remove\"),t.boundTargets.forEach(function(e){I.pathLabel.unbind(t,e)}))}}},Object.keys(I).forEach(function(e){lt[e]=function(){return new C(I[e],Array.prototype.slice.call(arguments))}}),lt.positionByWindowResize=!0,window.addEventListener(\"resize\",v.add(function(){lt.positionByWindowResize&&Object.keys(ge).forEach(function(e){et(ge[e],{position:!0})})}),!1),lt}();!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):e[\"leader-line\"]=t()}(this,function(){return LeaderLine});","/*!\n * Platform.js v1.3.6\n * Copyright 2014-2020 Benjamin Tan\n * Copyright 2011-2013 John-David Dalton\n * Available under MIT license\n */\n;(function() {\n 'use strict';\n\n /** Used to determine if values are of the language type `Object`. */\n var objectTypes = {\n 'function': true,\n 'object': true\n };\n\n /** Used as a reference to the global object. */\n var root = (objectTypes[typeof window] && window) || this;\n\n /** Backup possible global object. */\n var oldRoot = root;\n\n /** Detect free variable `exports`. */\n var freeExports = objectTypes[typeof exports] && exports;\n\n /** Detect free variable `module`. */\n var freeModule = objectTypes[typeof module] && module && !module.nodeType && module;\n\n /** Detect free variable `global` from Node.js or Browserified code and use it as `root`. */\n var freeGlobal = freeExports && freeModule && typeof global == 'object' && global;\n if (freeGlobal && (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal)) {\n root = freeGlobal;\n }\n\n /**\n * Used as the maximum length of an array-like object.\n * See the [ES6 spec](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength)\n * for more details.\n */\n var maxSafeInteger = Math.pow(2, 53) - 1;\n\n /** Regular expression to detect Opera. */\n var reOpera = /\\bOpera/;\n\n /** Possible global object. */\n var thisBinding = this;\n\n /** Used for native method references. */\n var objectProto = Object.prototype;\n\n /** Used to check for own properties of an object. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to resolve the internal `[[Class]]` of values. */\n var toString = objectProto.toString;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Capitalizes a string value.\n *\n * @private\n * @param {string} string The string to capitalize.\n * @returns {string} The capitalized string.\n */\n function capitalize(string) {\n string = String(string);\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n\n /**\n * A utility function to clean up the OS name.\n *\n * @private\n * @param {string} os The OS name to clean up.\n * @param {string} [pattern] A `RegExp` pattern matching the OS name.\n * @param {string} [label] A label for the OS.\n */\n function cleanupOS(os, pattern, label) {\n // Platform tokens are defined at:\n // http://msdn.microsoft.com/en-us/library/ms537503(VS.85).aspx\n // http://web.archive.org/web/20081122053950/http://msdn.microsoft.com/en-us/library/ms537503(VS.85).aspx\n var data = {\n '10.0': '10',\n '6.4': '10 Technical Preview',\n '6.3': '8.1',\n '6.2': '8',\n '6.1': 'Server 2008 R2 / 7',\n '6.0': 'Server 2008 / Vista',\n '5.2': 'Server 2003 / XP 64-bit',\n '5.1': 'XP',\n '5.01': '2000 SP1',\n '5.0': '2000',\n '4.0': 'NT',\n '4.90': 'ME'\n };\n // Detect Windows version from platform tokens.\n if (pattern && label && /^Win/i.test(os) && !/^Windows Phone /i.test(os) &&\n (data = data[/[\\d.]+$/.exec(os)])) {\n os = 'Windows ' + data;\n }\n // Correct character case and cleanup string.\n os = String(os);\n\n if (pattern && label) {\n os = os.replace(RegExp(pattern, 'i'), label);\n }\n\n os = format(\n os.replace(/ ce$/i, ' CE')\n .replace(/\\bhpw/i, 'web')\n .replace(/\\bMacintosh\\b/, 'Mac OS')\n .replace(/_PowerPC\\b/i, ' OS')\n .replace(/\\b(OS X) [^ \\d]+/i, '$1')\n .replace(/\\bMac (OS X)\\b/, '$1')\n .replace(/\\/(\\d)/, ' $1')\n .replace(/_/g, '.')\n .replace(/(?: BePC|[ .]*fc[ \\d.]+)$/i, '')\n .replace(/\\bx86\\.64\\b/gi, 'x86_64')\n .replace(/\\b(Windows Phone) OS\\b/, '$1')\n .replace(/\\b(Chrome OS \\w+) [\\d.]+\\b/, '$1')\n .split(' on ')[0]\n );\n\n return os;\n }\n\n /**\n * An iteration utility for arrays and objects.\n *\n * @private\n * @param {Array|Object} object The object to iterate over.\n * @param {Function} callback The function called per iteration.\n */\n function each(object, callback) {\n var index = -1,\n length = object ? object.length : 0;\n\n if (typeof length == 'number' && length > -1 && length <= maxSafeInteger) {\n while (++index < length) {\n callback(object[index], index, object);\n }\n } else {\n forOwn(object, callback);\n }\n }\n\n /**\n * Trim and conditionally capitalize string values.\n *\n * @private\n * @param {string} string The string to format.\n * @returns {string} The formatted string.\n */\n function format(string) {\n string = trim(string);\n return /^(?:webOS|i(?:OS|P))/.test(string)\n ? string\n : capitalize(string);\n }\n\n /**\n * Iterates over an object's own properties, executing the `callback` for each.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} callback The function executed per own property.\n */\n function forOwn(object, callback) {\n for (var key in object) {\n if (hasOwnProperty.call(object, key)) {\n callback(object[key], key, object);\n }\n }\n }\n\n /**\n * Gets the internal `[[Class]]` of a value.\n *\n * @private\n * @param {*} value The value.\n * @returns {string} The `[[Class]]`.\n */\n function getClassOf(value) {\n return value == null\n ? capitalize(value)\n : toString.call(value).slice(8, -1);\n }\n\n /**\n * Host objects can return type values that are different from their actual\n * data type. The objects we are concerned with usually return non-primitive\n * types of \"object\", \"function\", or \"unknown\".\n *\n * @private\n * @param {*} object The owner of the property.\n * @param {string} property The property to check.\n * @returns {boolean} Returns `true` if the property value is a non-primitive, else `false`.\n */\n function isHostType(object, property) {\n var type = object != null ? typeof object[property] : 'number';\n return !/^(?:boolean|number|string|undefined)$/.test(type) &&\n (type == 'object' ? !!object[property] : true);\n }\n\n /**\n * Prepares a string for use in a `RegExp` by making hyphens and spaces optional.\n *\n * @private\n * @param {string} string The string to qualify.\n * @returns {string} The qualified string.\n */\n function qualify(string) {\n return String(string).replace(/([ -])(?!$)/g, '$1?');\n }\n\n /**\n * A bare-bones `Array#reduce` like utility function.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function called per iteration.\n * @returns {*} The accumulated result.\n */\n function reduce(array, callback) {\n var accumulator = null;\n each(array, function(value, index) {\n accumulator = callback(accumulator, value, index, array);\n });\n return accumulator;\n }\n\n /**\n * Removes leading and trailing whitespace from a string.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} The trimmed string.\n */\n function trim(string) {\n return String(string).replace(/^ +| +$/g, '');\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Creates a new platform object.\n *\n * @memberOf platform\n * @param {Object|string} [ua=navigator.userAgent] The user agent string or\n * context object.\n * @returns {Object} A platform object.\n */\n function parse(ua) {\n\n /** The environment context object. */\n var context = root;\n\n /** Used to flag when a custom context is provided. */\n var isCustomContext = ua && typeof ua == 'object' && getClassOf(ua) != 'String';\n\n // Juggle arguments.\n if (isCustomContext) {\n context = ua;\n ua = null;\n }\n\n /** Browser navigator object. */\n var nav = context.navigator || {};\n\n /** Browser user agent string. */\n var userAgent = nav.userAgent || '';\n\n ua || (ua = userAgent);\n\n /** Used to flag when `thisBinding` is the [ModuleScope]. */\n var isModuleScope = isCustomContext || thisBinding == oldRoot;\n\n /** Used to detect if browser is like Chrome. */\n var likeChrome = isCustomContext\n ? !!nav.likeChrome\n : /\\bChrome\\b/.test(ua) && !/internal|\\n/i.test(toString.toString());\n\n /** Internal `[[Class]]` value shortcuts. */\n var objectClass = 'Object',\n airRuntimeClass = isCustomContext ? objectClass : 'ScriptBridgingProxyObject',\n enviroClass = isCustomContext ? objectClass : 'Environment',\n javaClass = (isCustomContext && context.java) ? 'JavaPackage' : getClassOf(context.java),\n phantomClass = isCustomContext ? objectClass : 'RuntimeObject';\n\n /** Detect Java environments. */\n var java = /\\bJava/.test(javaClass) && context.java;\n\n /** Detect Rhino. */\n var rhino = java && getClassOf(context.environment) == enviroClass;\n\n /** A character to represent alpha. */\n var alpha = java ? 'a' : '\\u03b1';\n\n /** A character to represent beta. */\n var beta = java ? 'b' : '\\u03b2';\n\n /** Browser document object. */\n var doc = context.document || {};\n\n /**\n * Detect Opera browser (Presto-based).\n * http://www.howtocreate.co.uk/operaStuff/operaObject.html\n * http://dev.opera.com/articles/view/opera-mini-web-content-authoring-guidelines/#operamini\n */\n var opera = context.operamini || context.opera;\n\n /** Opera `[[Class]]`. */\n var operaClass = reOpera.test(operaClass = (isCustomContext && opera) ? opera['[[Class]]'] : getClassOf(opera))\n ? operaClass\n : (opera = null);\n\n /*------------------------------------------------------------------------*/\n\n /** Temporary variable used over the script's lifetime. */\n var data;\n\n /** The CPU architecture. */\n var arch = ua;\n\n /** Platform description array. */\n var description = [];\n\n /** Platform alpha/beta indicator. */\n var prerelease = null;\n\n /** A flag to indicate that environment features should be used to resolve the platform. */\n var useFeatures = ua == userAgent;\n\n /** The browser/environment version. */\n var version = useFeatures && opera && typeof opera.version == 'function' && opera.version();\n\n /** A flag to indicate if the OS ends with \"/ Version\" */\n var isSpecialCasedOS;\n\n /* Detectable layout engines (order is important). */\n var layout = getLayout([\n { 'label': 'EdgeHTML', 'pattern': 'Edge' },\n 'Trident',\n { 'label': 'WebKit', 'pattern': 'AppleWebKit' },\n 'iCab',\n 'Presto',\n 'NetFront',\n 'Tasman',\n 'KHTML',\n 'Gecko'\n ]);\n\n /* Detectable browser names (order is important). */\n var name = getName([\n 'Adobe AIR',\n 'Arora',\n 'Avant Browser',\n 'Breach',\n 'Camino',\n 'Electron',\n 'Epiphany',\n 'Fennec',\n 'Flock',\n 'Galeon',\n 'GreenBrowser',\n 'iCab',\n 'Iceweasel',\n 'K-Meleon',\n 'Konqueror',\n 'Lunascape',\n 'Maxthon',\n { 'label': 'Microsoft Edge', 'pattern': '(?:Edge|Edg|EdgA|EdgiOS)' },\n 'Midori',\n 'Nook Browser',\n 'PaleMoon',\n 'PhantomJS',\n 'Raven',\n 'Rekonq',\n 'RockMelt',\n { 'label': 'Samsung Internet', 'pattern': 'SamsungBrowser' },\n 'SeaMonkey',\n { 'label': 'Silk', 'pattern': '(?:Cloud9|Silk-Accelerated)' },\n 'Sleipnir',\n 'SlimBrowser',\n { 'label': 'SRWare Iron', 'pattern': 'Iron' },\n 'Sunrise',\n 'Swiftfox',\n 'Vivaldi',\n 'Waterfox',\n 'WebPositive',\n { 'label': 'Yandex Browser', 'pattern': 'YaBrowser' },\n { 'label': 'UC Browser', 'pattern': 'UCBrowser' },\n 'Opera Mini',\n { 'label': 'Opera Mini', 'pattern': 'OPiOS' },\n 'Opera',\n { 'label': 'Opera', 'pattern': 'OPR' },\n 'Chromium',\n 'Chrome',\n { 'label': 'Chrome', 'pattern': '(?:HeadlessChrome)' },\n { 'label': 'Chrome Mobile', 'pattern': '(?:CriOS|CrMo)' },\n { 'label': 'Firefox', 'pattern': '(?:Firefox|Minefield)' },\n { 'label': 'Firefox for iOS', 'pattern': 'FxiOS' },\n { 'label': 'IE', 'pattern': 'IEMobile' },\n { 'label': 'IE', 'pattern': 'MSIE' },\n 'Safari'\n ]);\n\n /* Detectable products (order is important). */\n var product = getProduct([\n { 'label': 'BlackBerry', 'pattern': 'BB10' },\n 'BlackBerry',\n { 'label': 'Galaxy S', 'pattern': 'GT-I9000' },\n { 'label': 'Galaxy S2', 'pattern': 'GT-I9100' },\n { 'label': 'Galaxy S3', 'pattern': 'GT-I9300' },\n { 'label': 'Galaxy S4', 'pattern': 'GT-I9500' },\n { 'label': 'Galaxy S5', 'pattern': 'SM-G900' },\n { 'label': 'Galaxy S6', 'pattern': 'SM-G920' },\n { 'label': 'Galaxy S6 Edge', 'pattern': 'SM-G925' },\n { 'label': 'Galaxy S7', 'pattern': 'SM-G930' },\n { 'label': 'Galaxy S7 Edge', 'pattern': 'SM-G935' },\n 'Google TV',\n 'Lumia',\n 'iPad',\n 'iPod',\n 'iPhone',\n 'Kindle',\n { 'label': 'Kindle Fire', 'pattern': '(?:Cloud9|Silk-Accelerated)' },\n 'Nexus',\n 'Nook',\n 'PlayBook',\n 'PlayStation Vita',\n 'PlayStation',\n 'TouchPad',\n 'Transformer',\n { 'label': 'Wii U', 'pattern': 'WiiU' },\n 'Wii',\n 'Xbox One',\n { 'label': 'Xbox 360', 'pattern': 'Xbox' },\n 'Xoom'\n ]);\n\n /* Detectable manufacturers. */\n var manufacturer = getManufacturer({\n 'Apple': { 'iPad': 1, 'iPhone': 1, 'iPod': 1 },\n 'Alcatel': {},\n 'Archos': {},\n 'Amazon': { 'Kindle': 1, 'Kindle Fire': 1 },\n 'Asus': { 'Transformer': 1 },\n 'Barnes & Noble': { 'Nook': 1 },\n 'BlackBerry': { 'PlayBook': 1 },\n 'Google': { 'Google TV': 1, 'Nexus': 1 },\n 'HP': { 'TouchPad': 1 },\n 'HTC': {},\n 'Huawei': {},\n 'Lenovo': {},\n 'LG': {},\n 'Microsoft': { 'Xbox': 1, 'Xbox One': 1 },\n 'Motorola': { 'Xoom': 1 },\n 'Nintendo': { 'Wii U': 1, 'Wii': 1 },\n 'Nokia': { 'Lumia': 1 },\n 'Oppo': {},\n 'Samsung': { 'Galaxy S': 1, 'Galaxy S2': 1, 'Galaxy S3': 1, 'Galaxy S4': 1 },\n 'Sony': { 'PlayStation': 1, 'PlayStation Vita': 1 },\n 'Xiaomi': { 'Mi': 1, 'Redmi': 1 }\n });\n\n /* Detectable operating systems (order is important). */\n var os = getOS([\n 'Windows Phone',\n 'KaiOS',\n 'Android',\n 'CentOS',\n { 'label': 'Chrome OS', 'pattern': 'CrOS' },\n 'Debian',\n { 'label': 'DragonFly BSD', 'pattern': 'DragonFly' },\n 'Fedora',\n 'FreeBSD',\n 'Gentoo',\n 'Haiku',\n 'Kubuntu',\n 'Linux Mint',\n 'OpenBSD',\n 'Red Hat',\n 'SuSE',\n 'Ubuntu',\n 'Xubuntu',\n 'Cygwin',\n 'Symbian OS',\n 'hpwOS',\n 'webOS ',\n 'webOS',\n 'Tablet OS',\n 'Tizen',\n 'Linux',\n 'Mac OS X',\n 'Macintosh',\n 'Mac',\n 'Windows 98;',\n 'Windows '\n ]);\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Picks the layout engine from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected layout engine.\n */\n function getLayout(guesses) {\n return reduce(guesses, function(result, guess) {\n return result || RegExp('\\\\b' + (\n guess.pattern || qualify(guess)\n ) + '\\\\b', 'i').exec(ua) && (guess.label || guess);\n });\n }\n\n /**\n * Picks the manufacturer from an array of guesses.\n *\n * @private\n * @param {Array} guesses An object of guesses.\n * @returns {null|string} The detected manufacturer.\n */\n function getManufacturer(guesses) {\n return reduce(guesses, function(result, value, key) {\n // Lookup the manufacturer by product or scan the UA for the manufacturer.\n return result || (\n value[product] ||\n value[/^[a-z]+(?: +[a-z]+\\b)*/i.exec(product)] ||\n RegExp('\\\\b' + qualify(key) + '(?:\\\\b|\\\\w*\\\\d)', 'i').exec(ua)\n ) && key;\n });\n }\n\n /**\n * Picks the browser name from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected browser name.\n */\n function getName(guesses) {\n return reduce(guesses, function(result, guess) {\n return result || RegExp('\\\\b' + (\n guess.pattern || qualify(guess)\n ) + '\\\\b', 'i').exec(ua) && (guess.label || guess);\n });\n }\n\n /**\n * Picks the OS name from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected OS name.\n */\n function getOS(guesses) {\n return reduce(guesses, function(result, guess) {\n var pattern = guess.pattern || qualify(guess);\n if (!result && (result =\n RegExp('\\\\b' + pattern + '(?:/[\\\\d.]+|[ \\\\w.]*)', 'i').exec(ua)\n )) {\n result = cleanupOS(result, pattern, guess.label || guess);\n }\n return result;\n });\n }\n\n /**\n * Picks the product name from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected product name.\n */\n function getProduct(guesses) {\n return reduce(guesses, function(result, guess) {\n var pattern = guess.pattern || qualify(guess);\n if (!result && (result =\n RegExp('\\\\b' + pattern + ' *\\\\d+[.\\\\w_]*', 'i').exec(ua) ||\n RegExp('\\\\b' + pattern + ' *\\\\w+-[\\\\w]*', 'i').exec(ua) ||\n RegExp('\\\\b' + pattern + '(?:; *(?:[a-z]+[_-])?[a-z]+\\\\d+|[^ ();-]*)', 'i').exec(ua)\n )) {\n // Split by forward slash and append product version if needed.\n if ((result = String((guess.label && !RegExp(pattern, 'i').test(guess.label)) ? guess.label : result).split('/'))[1] && !/[\\d.]+/.test(result[0])) {\n result[0] += ' ' + result[1];\n }\n // Correct character case and cleanup string.\n guess = guess.label || guess;\n result = format(result[0]\n .replace(RegExp(pattern, 'i'), guess)\n .replace(RegExp('; *(?:' + guess + '[_-])?', 'i'), ' ')\n .replace(RegExp('(' + guess + ')[-_.]?(\\\\w)', 'i'), '$1 $2'));\n }\n return result;\n });\n }\n\n /**\n * Resolves the version using an array of UA patterns.\n *\n * @private\n * @param {Array} patterns An array of UA patterns.\n * @returns {null|string} The detected version.\n */\n function getVersion(patterns) {\n return reduce(patterns, function(result, pattern) {\n return result || (RegExp(pattern +\n '(?:-[\\\\d.]+/|(?: for [\\\\w-]+)?[ /-])([\\\\d.]+[^ ();/_-]*)', 'i').exec(ua) || 0)[1] || null;\n });\n }\n\n /**\n * Returns `platform.description` when the platform object is coerced to a string.\n *\n * @name toString\n * @memberOf platform\n * @returns {string} Returns `platform.description` if available, else an empty string.\n */\n function toStringPlatform() {\n return this.description || '';\n }\n\n /*------------------------------------------------------------------------*/\n\n // Convert layout to an array so we can add extra details.\n layout && (layout = [layout]);\n\n // Detect Android products.\n // Browsers on Android devices typically provide their product IDS after \"Android;\"\n // up to \"Build\" or \") AppleWebKit\".\n // Example:\n // \"Mozilla/5.0 (Linux; Android 8.1.0; Moto G (5) Plus) AppleWebKit/537.36\n // (KHTML, like Gecko) Chrome/70.0.3538.80 Mobile Safari/537.36\"\n if (/\\bAndroid\\b/.test(os) && !product &&\n (data = /\\bAndroid[^;]*;(.*?)(?:Build|\\) AppleWebKit)\\b/i.exec(ua))) {\n product = trim(data[1])\n // Replace any language codes (eg. \"en-US\").\n .replace(/^[a-z]{2}-[a-z]{2};\\s*/i, '')\n || null;\n }\n // Detect product names that contain their manufacturer's name.\n if (manufacturer && !product) {\n product = getProduct([manufacturer]);\n } else if (manufacturer && product) {\n product = product\n .replace(RegExp('^(' + qualify(manufacturer) + ')[-_.\\\\s]', 'i'), manufacturer + ' ')\n .replace(RegExp('^(' + qualify(manufacturer) + ')[-_.]?(\\\\w)', 'i'), manufacturer + ' $2');\n }\n // Clean up Google TV.\n if ((data = /\\bGoogle TV\\b/.exec(product))) {\n product = data[0];\n }\n // Detect simulators.\n if (/\\bSimulator\\b/i.test(ua)) {\n product = (product ? product + ' ' : '') + 'Simulator';\n }\n // Detect Opera Mini 8+ running in Turbo/Uncompressed mode on iOS.\n if (name == 'Opera Mini' && /\\bOPiOS\\b/.test(ua)) {\n description.push('running in Turbo/Uncompressed mode');\n }\n // Detect IE Mobile 11.\n if (name == 'IE' && /\\blike iPhone OS\\b/.test(ua)) {\n data = parse(ua.replace(/like iPhone OS/, ''));\n manufacturer = data.manufacturer;\n product = data.product;\n }\n // Detect iOS.\n else if (/^iP/.test(product)) {\n name || (name = 'Safari');\n os = 'iOS' + ((data = / OS ([\\d_]+)/i.exec(ua))\n ? ' ' + data[1].replace(/_/g, '.')\n : '');\n }\n // Detect Kubuntu.\n else if (name == 'Konqueror' && /^Linux\\b/i.test(os)) {\n os = 'Kubuntu';\n }\n // Detect Android browsers.\n else if ((manufacturer && manufacturer != 'Google' &&\n ((/Chrome/.test(name) && !/\\bMobile Safari\\b/i.test(ua)) || /\\bVita\\b/.test(product))) ||\n (/\\bAndroid\\b/.test(os) && /^Chrome/.test(name) && /\\bVersion\\//i.test(ua))) {\n name = 'Android Browser';\n os = /\\bAndroid\\b/.test(os) ? os : 'Android';\n }\n // Detect Silk desktop/accelerated modes.\n else if (name == 'Silk') {\n if (!/\\bMobi/i.test(ua)) {\n os = 'Android';\n description.unshift('desktop mode');\n }\n if (/Accelerated *= *true/i.test(ua)) {\n description.unshift('accelerated');\n }\n }\n // Detect UC Browser speed mode.\n else if (name == 'UC Browser' && /\\bUCWEB\\b/.test(ua)) {\n description.push('speed mode');\n }\n // Detect PaleMoon identifying as Firefox.\n else if (name == 'PaleMoon' && (data = /\\bFirefox\\/([\\d.]+)\\b/.exec(ua))) {\n description.push('identifying as Firefox ' + data[1]);\n }\n // Detect Firefox OS and products running Firefox.\n else if (name == 'Firefox' && (data = /\\b(Mobile|Tablet|TV)\\b/i.exec(ua))) {\n os || (os = 'Firefox OS');\n product || (product = data[1]);\n }\n // Detect false positives for Firefox/Safari.\n else if (!name || (data = !/\\bMinefield\\b/i.test(ua) && /\\b(?:Firefox|Safari)\\b/.exec(name))) {\n // Escape the `/` for Firefox 1.\n if (name && !product && /[\\/,]|^[^(]+?\\)/.test(ua.slice(ua.indexOf(data + '/') + 8))) {\n // Clear name of false positives.\n name = null;\n }\n // Reassign a generic name.\n if ((data = product || manufacturer || os) &&\n (product || manufacturer || /\\b(?:Android|Symbian OS|Tablet OS|webOS)\\b/.test(os))) {\n name = /[a-z]+(?: Hat)?/i.exec(/\\bAndroid\\b/.test(os) ? os : data) + ' Browser';\n }\n }\n // Add Chrome version to description for Electron.\n else if (name == 'Electron' && (data = (/\\bChrome\\/([\\d.]+)\\b/.exec(ua) || 0)[1])) {\n description.push('Chromium ' + data);\n }\n // Detect non-Opera (Presto-based) versions (order is important).\n if (!version) {\n version = getVersion([\n '(?:Cloud9|CriOS|CrMo|Edge|Edg|EdgA|EdgiOS|FxiOS|HeadlessChrome|IEMobile|Iron|Opera ?Mini|OPiOS|OPR|Raven|SamsungBrowser|Silk(?!/[\\\\d.]+$)|UCBrowser|YaBrowser)',\n 'Version',\n qualify(name),\n '(?:Firefox|Minefield|NetFront)'\n ]);\n }\n // Detect stubborn layout engines.\n if ((data =\n layout == 'iCab' && parseFloat(version) > 3 && 'WebKit' ||\n /\\bOpera\\b/.test(name) && (/\\bOPR\\b/.test(ua) ? 'Blink' : 'Presto') ||\n /\\b(?:Midori|Nook|Safari)\\b/i.test(ua) && !/^(?:Trident|EdgeHTML)$/.test(layout) && 'WebKit' ||\n !layout && /\\bMSIE\\b/i.test(ua) && (os == 'Mac OS' ? 'Tasman' : 'Trident') ||\n layout == 'WebKit' && /\\bPlayStation\\b(?! Vita\\b)/i.test(name) && 'NetFront'\n )) {\n layout = [data];\n }\n // Detect Windows Phone 7 desktop mode.\n if (name == 'IE' && (data = (/; *(?:XBLWP|ZuneWP)(\\d+)/i.exec(ua) || 0)[1])) {\n name += ' Mobile';\n os = 'Windows Phone ' + (/\\+$/.test(data) ? data : data + '.x');\n description.unshift('desktop mode');\n }\n // Detect Windows Phone 8.x desktop mode.\n else if (/\\bWPDesktop\\b/i.test(ua)) {\n name = 'IE Mobile';\n os = 'Windows Phone 8.x';\n description.unshift('desktop mode');\n version || (version = (/\\brv:([\\d.]+)/.exec(ua) || 0)[1]);\n }\n // Detect IE 11 identifying as other browsers.\n else if (name != 'IE' && layout == 'Trident' && (data = /\\brv:([\\d.]+)/.exec(ua))) {\n if (name) {\n description.push('identifying as ' + name + (version ? ' ' + version : ''));\n }\n name = 'IE';\n version = data[1];\n }\n // Leverage environment features.\n if (useFeatures) {\n // Detect server-side environments.\n // Rhino has a global function while others have a global object.\n if (isHostType(context, 'global')) {\n if (java) {\n data = java.lang.System;\n arch = data.getProperty('os.arch');\n os = os || data.getProperty('os.name') + ' ' + data.getProperty('os.version');\n }\n if (rhino) {\n try {\n version = context.require('ringo/engine').version.join('.');\n name = 'RingoJS';\n } catch(e) {\n if ((data = context.system) && data.global.system == context.system) {\n name = 'Narwhal';\n os || (os = data[0].os || null);\n }\n }\n if (!name) {\n name = 'Rhino';\n }\n }\n else if (\n typeof context.process == 'object' && !context.process.browser &&\n (data = context.process)\n ) {\n if (typeof data.versions == 'object') {\n if (typeof data.versions.electron == 'string') {\n description.push('Node ' + data.versions.node);\n name = 'Electron';\n version = data.versions.electron;\n } else if (typeof data.versions.nw == 'string') {\n description.push('Chromium ' + version, 'Node ' + data.versions.node);\n name = 'NW.js';\n version = data.versions.nw;\n }\n }\n if (!name) {\n name = 'Node.js';\n arch = data.arch;\n os = data.platform;\n version = /[\\d.]+/.exec(data.version);\n version = version ? version[0] : null;\n }\n }\n }\n // Detect Adobe AIR.\n else if (getClassOf((data = context.runtime)) == airRuntimeClass) {\n name = 'Adobe AIR';\n os = data.flash.system.Capabilities.os;\n }\n // Detect PhantomJS.\n else if (getClassOf((data = context.phantom)) == phantomClass) {\n name = 'PhantomJS';\n version = (data = data.version || null) && (data.major + '.' + data.minor + '.' + data.patch);\n }\n // Detect IE compatibility modes.\n else if (typeof doc.documentMode == 'number' && (data = /\\bTrident\\/(\\d+)/i.exec(ua))) {\n // We're in compatibility mode when the Trident version + 4 doesn't\n // equal the document mode.\n version = [version, doc.documentMode];\n if ((data = +data[1] + 4) != version[1]) {\n description.push('IE ' + version[1] + ' mode');\n layout && (layout[1] = '');\n version[1] = data;\n }\n version = name == 'IE' ? String(version[1].toFixed(1)) : version[0];\n }\n // Detect IE 11 masking as other browsers.\n else if (typeof doc.documentMode == 'number' && /^(?:Chrome|Firefox)\\b/.test(name)) {\n description.push('masking as ' + name + ' ' + version);\n name = 'IE';\n version = '11.0';\n layout = ['Trident'];\n os = 'Windows';\n }\n os = os && format(os);\n }\n // Detect prerelease phases.\n if (version && (data =\n /(?:[ab]|dp|pre|[ab]\\d+pre)(?:\\d+\\+?)?$/i.exec(version) ||\n /(?:alpha|beta)(?: ?\\d)?/i.exec(ua + ';' + (useFeatures && nav.appMinorVersion)) ||\n /\\bMinefield\\b/i.test(ua) && 'a'\n )) {\n prerelease = /b/i.test(data) ? 'beta' : 'alpha';\n version = version.replace(RegExp(data + '\\\\+?$'), '') +\n (prerelease == 'beta' ? beta : alpha) + (/\\d+\\+?/.exec(data) || '');\n }\n // Detect Firefox Mobile.\n if (name == 'Fennec' || name == 'Firefox' && /\\b(?:Android|Firefox OS|KaiOS)\\b/.test(os)) {\n name = 'Firefox Mobile';\n }\n // Obscure Maxthon's unreliable version.\n else if (name == 'Maxthon' && version) {\n version = version.replace(/\\.[\\d.]+/, '.x');\n }\n // Detect Xbox 360 and Xbox One.\n else if (/\\bXbox\\b/i.test(product)) {\n if (product == 'Xbox 360') {\n os = null;\n }\n if (product == 'Xbox 360' && /\\bIEMobile\\b/.test(ua)) {\n description.unshift('mobile mode');\n }\n }\n // Add mobile postfix.\n else if ((/^(?:Chrome|IE|Opera)$/.test(name) || name && !product && !/Browser|Mobi/.test(name)) &&\n (os == 'Windows CE' || /Mobi/i.test(ua))) {\n name += ' Mobile';\n }\n // Detect IE platform preview.\n else if (name == 'IE' && useFeatures) {\n try {\n if (context.external === null) {\n description.unshift('platform preview');\n }\n } catch(e) {\n description.unshift('embedded');\n }\n }\n // Detect BlackBerry OS version.\n // http://docs.blackberry.com/en/developers/deliverables/18169/HTTP_headers_sent_by_BB_Browser_1234911_11.jsp\n else if ((/\\bBlackBerry\\b/.test(product) || /\\bBB10\\b/.test(ua)) && (data =\n (RegExp(product.replace(/ +/g, ' *') + '/([.\\\\d]+)', 'i').exec(ua) || 0)[1] ||\n version\n )) {\n data = [data, /BB10/.test(ua)];\n os = (data[1] ? (product = null, manufacturer = 'BlackBerry') : 'Device Software') + ' ' + data[0];\n version = null;\n }\n // Detect Opera identifying/masking itself as another browser.\n // http://www.opera.com/support/kb/view/843/\n else if (this != forOwn && product != 'Wii' && (\n (useFeatures && opera) ||\n (/Opera/.test(name) && /\\b(?:MSIE|Firefox)\\b/i.test(ua)) ||\n (name == 'Firefox' && /\\bOS X (?:\\d+\\.){2,}/.test(os)) ||\n (name == 'IE' && (\n (os && !/^Win/.test(os) && version > 5.5) ||\n /\\bWindows XP\\b/.test(os) && version > 8 ||\n version == 8 && !/\\bTrident\\b/.test(ua)\n ))\n ) && !reOpera.test((data = parse.call(forOwn, ua.replace(reOpera, '') + ';'))) && data.name) {\n // When \"identifying\", the UA contains both Opera and the other browser's name.\n data = 'ing as ' + data.name + ((data = data.version) ? ' ' + data : '');\n if (reOpera.test(name)) {\n if (/\\bIE\\b/.test(data) && os == 'Mac OS') {\n os = null;\n }\n data = 'identify' + data;\n }\n // When \"masking\", the UA contains only the other browser's name.\n else {\n data = 'mask' + data;\n if (operaClass) {\n name = format(operaClass.replace(/([a-z])([A-Z])/g, '$1 $2'));\n } else {\n name = 'Opera';\n }\n if (/\\bIE\\b/.test(data)) {\n os = null;\n }\n if (!useFeatures) {\n version = null;\n }\n }\n layout = ['Presto'];\n description.push(data);\n }\n // Detect WebKit Nightly and approximate Chrome/Safari versions.\n if ((data = (/\\bAppleWebKit\\/([\\d.]+\\+?)/i.exec(ua) || 0)[1])) {\n // Correct build number for numeric comparison.\n // (e.g. \"532.5\" becomes \"532.05\")\n data = [parseFloat(data.replace(/\\.(\\d)$/, '.0$1')), data];\n // Nightly builds are postfixed with a \"+\".\n if (name == 'Safari' && data[1].slice(-1) == '+') {\n name = 'WebKit Nightly';\n prerelease = 'alpha';\n version = data[1].slice(0, -1);\n }\n // Clear incorrect browser versions.\n else if (version == data[1] ||\n version == (data[2] = (/\\bSafari\\/([\\d.]+\\+?)/i.exec(ua) || 0)[1])) {\n version = null;\n }\n // Use the full Chrome version when available.\n data[1] = (/\\b(?:Headless)?Chrome\\/([\\d.]+)/i.exec(ua) || 0)[1];\n // Detect Blink layout engine.\n if (data[0] == 537.36 && data[2] == 537.36 && parseFloat(data[1]) >= 28 && layout == 'WebKit') {\n layout = ['Blink'];\n }\n // Detect JavaScriptCore.\n // http://stackoverflow.com/questions/6768474/how-can-i-detect-which-javascript-engine-v8-or-jsc-is-used-at-runtime-in-androi\n if (!useFeatures || (!likeChrome && !data[1])) {\n layout && (layout[1] = 'like Safari');\n data = (data = data[0], data < 400 ? 1 : data < 500 ? 2 : data < 526 ? 3 : data < 533 ? 4 : data < 534 ? '4+' : data < 535 ? 5 : data < 537 ? 6 : data < 538 ? 7 : data < 601 ? 8 : data < 602 ? 9 : data < 604 ? 10 : data < 606 ? 11 : data < 608 ? 12 : '12');\n } else {\n layout && (layout[1] = 'like Chrome');\n data = data[1] || (data = data[0], data < 530 ? 1 : data < 532 ? 2 : data < 532.05 ? 3 : data < 533 ? 4 : data < 534.03 ? 5 : data < 534.07 ? 6 : data < 534.10 ? 7 : data < 534.13 ? 8 : data < 534.16 ? 9 : data < 534.24 ? 10 : data < 534.30 ? 11 : data < 535.01 ? 12 : data < 535.02 ? '13+' : data < 535.07 ? 15 : data < 535.11 ? 16 : data < 535.19 ? 17 : data < 536.05 ? 18 : data < 536.10 ? 19 : data < 537.01 ? 20 : data < 537.11 ? '21+' : data < 537.13 ? 23 : data < 537.18 ? 24 : data < 537.24 ? 25 : data < 537.36 ? 26 : layout != 'Blink' ? '27' : '28');\n }\n // Add the postfix of \".x\" or \"+\" for approximate versions.\n layout && (layout[1] += ' ' + (data += typeof data == 'number' ? '.x' : /[.+]/.test(data) ? '' : '+'));\n // Obscure version for some Safari 1-2 releases.\n if (name == 'Safari' && (!version || parseInt(version) > 45)) {\n version = data;\n } else if (name == 'Chrome' && /\\bHeadlessChrome/i.test(ua)) {\n description.unshift('headless');\n }\n }\n // Detect Opera desktop modes.\n if (name == 'Opera' && (data = /\\bzbov|zvav$/.exec(os))) {\n name += ' ';\n description.unshift('desktop mode');\n if (data == 'zvav') {\n name += 'Mini';\n version = null;\n } else {\n name += 'Mobile';\n }\n os = os.replace(RegExp(' *' + data + '$'), '');\n }\n // Detect Chrome desktop mode.\n else if (name == 'Safari' && /\\bChrome\\b/.exec(layout && layout[1])) {\n description.unshift('desktop mode');\n name = 'Chrome Mobile';\n version = null;\n\n if (/\\bOS X\\b/.test(os)) {\n manufacturer = 'Apple';\n os = 'iOS 4.3+';\n } else {\n os = null;\n }\n }\n // Newer versions of SRWare Iron uses the Chrome tag to indicate its version number.\n else if (/\\bSRWare Iron\\b/.test(name) && !version) {\n version = getVersion('Chrome');\n }\n // Strip incorrect OS versions.\n if (version && version.indexOf((data = /[\\d.]+$/.exec(os))) == 0 &&\n ua.indexOf('/' + data + '-') > -1) {\n os = trim(os.replace(data, ''));\n }\n // Ensure OS does not include the browser name.\n if (os && os.indexOf(name) != -1 && !RegExp(name + ' OS').test(os)) {\n os = os.replace(RegExp(' *' + qualify(name) + ' *'), '');\n }\n // Add layout engine.\n if (layout && !/\\b(?:Avant|Nook)\\b/.test(name) && (\n /Browser|Lunascape|Maxthon/.test(name) ||\n name != 'Safari' && /^iOS/.test(os) && /\\bSafari\\b/.test(layout[1]) ||\n /^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|SRWare Iron|Vivaldi|Web)/.test(name) && layout[1])) {\n // Don't add layout details to description if they are falsey.\n (data = layout[layout.length - 1]) && description.push(data);\n }\n // Combine contextual information.\n if (description.length) {\n description = ['(' + description.join('; ') + ')'];\n }\n // Append manufacturer to description.\n if (manufacturer && product && product.indexOf(manufacturer) < 0) {\n description.push('on ' + manufacturer);\n }\n // Append product to description.\n if (product) {\n description.push((/^on /.test(description[description.length - 1]) ? '' : 'on ') + product);\n }\n // Parse the OS into an object.\n if (os) {\n data = / ([\\d.+]+)$/.exec(os);\n isSpecialCasedOS = data && os.charAt(os.length - data[0].length - 1) == '/';\n os = {\n 'architecture': 32,\n 'family': (data && !isSpecialCasedOS) ? os.replace(data[0], '') : os,\n 'version': data ? data[1] : null,\n 'toString': function() {\n var version = this.version;\n return this.family + ((version && !isSpecialCasedOS) ? ' ' + version : '') + (this.architecture == 64 ? ' 64-bit' : '');\n }\n };\n }\n // Add browser/OS architecture.\n if ((data = /\\b(?:AMD|IA|Win|WOW|x86_|x)64\\b/i.exec(arch)) && !/\\bi686\\b/i.test(arch)) {\n if (os) {\n os.architecture = 64;\n os.family = os.family.replace(RegExp(' *' + data), '');\n }\n if (\n name && (/\\bWOW64\\b/i.test(ua) ||\n (useFeatures && /\\w(?:86|32)$/.test(nav.cpuClass || nav.platform) && !/\\bWin64; x64\\b/i.test(ua)))\n ) {\n description.unshift('32-bit');\n }\n }\n // Chrome 39 and above on OS X is always 64-bit.\n else if (\n os && /^OS X/.test(os.family) &&\n name == 'Chrome' && parseFloat(version) >= 39\n ) {\n os.architecture = 64;\n }\n\n ua || (ua = null);\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The platform object.\n *\n * @name platform\n * @type Object\n */\n var platform = {};\n\n /**\n * The platform description.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.description = ua;\n\n /**\n * The name of the browser's layout engine.\n *\n * The list of common layout engines include:\n * \"Blink\", \"EdgeHTML\", \"Gecko\", \"Trident\" and \"WebKit\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.layout = layout && layout[0];\n\n /**\n * The name of the product's manufacturer.\n *\n * The list of manufacturers include:\n * \"Apple\", \"Archos\", \"Amazon\", \"Asus\", \"Barnes & Noble\", \"BlackBerry\",\n * \"Google\", \"HP\", \"HTC\", \"LG\", \"Microsoft\", \"Motorola\", \"Nintendo\",\n * \"Nokia\", \"Samsung\" and \"Sony\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.manufacturer = manufacturer;\n\n /**\n * The name of the browser/environment.\n *\n * The list of common browser names include:\n * \"Chrome\", \"Electron\", \"Firefox\", \"Firefox for iOS\", \"IE\",\n * \"Microsoft Edge\", \"PhantomJS\", \"Safari\", \"SeaMonkey\", \"Silk\",\n * \"Opera Mini\" and \"Opera\"\n *\n * Mobile versions of some browsers have \"Mobile\" appended to their name:\n * eg. \"Chrome Mobile\", \"Firefox Mobile\", \"IE Mobile\" and \"Opera Mobile\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.name = name;\n\n /**\n * The alpha/beta release indicator.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.prerelease = prerelease;\n\n /**\n * The name of the product hosting the browser.\n *\n * The list of common products include:\n *\n * \"BlackBerry\", \"Galaxy S4\", \"Lumia\", \"iPad\", \"iPod\", \"iPhone\", \"Kindle\",\n * \"Kindle Fire\", \"Nexus\", \"Nook\", \"PlayBook\", \"TouchPad\" and \"Transformer\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.product = product;\n\n /**\n * The browser's user agent string.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.ua = ua;\n\n /**\n * The browser/environment version.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.version = name && version;\n\n /**\n * The name of the operating system.\n *\n * @memberOf platform\n * @type Object\n */\n platform.os = os || {\n\n /**\n * The CPU architecture the OS is built for.\n *\n * @memberOf platform.os\n * @type number|null\n */\n 'architecture': null,\n\n /**\n * The family of the OS.\n *\n * Common values include:\n * \"Windows\", \"Windows Server 2008 R2 / 7\", \"Windows Server 2008 / Vista\",\n * \"Windows XP\", \"OS X\", \"Linux\", \"Ubuntu\", \"Debian\", \"Fedora\", \"Red Hat\",\n * \"SuSE\", \"Android\", \"iOS\" and \"Windows Phone\"\n *\n * @memberOf platform.os\n * @type string|null\n */\n 'family': null,\n\n /**\n * The version of the OS.\n *\n * @memberOf platform.os\n * @type string|null\n */\n 'version': null,\n\n /**\n * Returns the OS string.\n *\n * @memberOf platform.os\n * @returns {string} The OS string.\n */\n 'toString': function() { return 'null'; }\n };\n\n platform.parse = parse;\n platform.toString = toStringPlatform;\n\n if (platform.version) {\n description.unshift(version);\n }\n if (platform.name) {\n description.unshift(name);\n }\n if (os && name && !(os == String(os).split(' ')[0] && (os == name.split(' ')[0] || product))) {\n description.push(product ? '(' + os + ')' : 'on ' + os);\n }\n if (description.length) {\n platform.description = description.join(' ');\n }\n return platform;\n }\n\n /*--------------------------------------------------------------------------*/\n\n // Export platform.\n var platform = parse();\n\n // Some AMD build optimizers, like r.js, check for condition patterns like the following:\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n // Expose platform on the global object to prevent errors when platform is\n // loaded by a script tag in the presence of an AMD loader.\n // See http://requirejs.org/docs/errors.html#mismatch for more details.\n root.platform = platform;\n\n // Define as an anonymous module so platform can be aliased through path mapping.\n define(function() {\n return platform;\n });\n }\n // Check for `exports` after `define` in case a build optimizer adds an `exports` object.\n else if (freeExports && freeModule) {\n // Export for CommonJS support.\n forOwn(platform, function(value, key) {\n freeExports[key] = value;\n });\n }\n else {\n // Export to the global object.\n root.platform = platform;\n }\n}.call(this));\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","/*!\n* sweetalert2 v11.11.0\n* Released under the MIT License.\n*/\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Sweetalert2 = factory());\n})(this, (function () { 'use strict';\n\n function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n }\n function _callSuper(t, o, e) {\n return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));\n }\n function _classPrivateFieldGet2(s, a) {\n return s.get(_assertClassBrand(s, a));\n }\n function _classPrivateFieldSet2(s, a, r) {\n return s.set(_assertClassBrand(s, a), r), r;\n }\n function _construct(t, e, r) {\n if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && _setPrototypeOf(p, r.prototype), p;\n }\n function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function () {\n return !!t;\n })();\n }\n function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n }\n function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n }\n function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n }\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n }\n function _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized(self);\n }\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n }\n function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n }\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n }\n function _classPrivateFieldInitSpec(obj, privateMap, value) {\n _checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n }\n\n var RESTORE_FOCUS_TIMEOUT = 100;\n\n /** @type {GlobalState} */\n var globalState = {};\n var focusPreviousActiveElement = function focusPreviousActiveElement() {\n if (globalState.previousActiveElement instanceof HTMLElement) {\n globalState.previousActiveElement.focus();\n globalState.previousActiveElement = null;\n } else if (document.body) {\n document.body.focus();\n }\n };\n\n /**\n * Restore previous active (focused) element\n *\n * @param {boolean} returnFocus\n * @returns {Promise}\n */\n var restoreActiveElement = function restoreActiveElement(returnFocus) {\n return new Promise(function (resolve) {\n if (!returnFocus) {\n return resolve();\n }\n var x = window.scrollX;\n var y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(function () {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n window.scrollTo(x, y);\n });\n };\n\n var swalPrefix = 'swal2-';\n\n /**\n * @typedef\n * { | 'container'\n * | 'shown'\n * | 'height-auto'\n * | 'iosfix'\n * | 'popup'\n * | 'modal'\n * | 'no-backdrop'\n * | 'no-transition'\n * | 'toast'\n * | 'toast-shown'\n * | 'show'\n * | 'hide'\n * | 'close'\n * | 'title'\n * | 'html-container'\n * | 'actions'\n * | 'confirm'\n * | 'deny'\n * | 'cancel'\n * | 'default-outline'\n * | 'footer'\n * | 'icon'\n * | 'icon-content'\n * | 'image'\n * | 'input'\n * | 'file'\n * | 'range'\n * | 'select'\n * | 'radio'\n * | 'checkbox'\n * | 'label'\n * | 'textarea'\n * | 'inputerror'\n * | 'input-label'\n * | 'validation-message'\n * | 'progress-steps'\n * | 'active-progress-step'\n * | 'progress-step'\n * | 'progress-step-line'\n * | 'loader'\n * | 'loading'\n * | 'styled'\n * | 'top'\n * | 'top-start'\n * | 'top-end'\n * | 'top-left'\n * | 'top-right'\n * | 'center'\n * | 'center-start'\n * | 'center-end'\n * | 'center-left'\n * | 'center-right'\n * | 'bottom'\n * | 'bottom-start'\n * | 'bottom-end'\n * | 'bottom-left'\n * | 'bottom-right'\n * | 'grow-row'\n * | 'grow-column'\n * | 'grow-fullscreen'\n * | 'rtl'\n * | 'timer-progress-bar'\n * | 'timer-progress-bar-container'\n * | 'scrollbar-measure'\n * | 'icon-success'\n * | 'icon-warning'\n * | 'icon-info'\n * | 'icon-question'\n * | 'icon-error'\n * } SwalClass\n * @typedef {Record} SwalClasses\n */\n\n /**\n * @typedef {'success' | 'warning' | 'info' | 'question' | 'error'} SwalIcon\n * @typedef {Record} SwalIcons\n */\n\n /** @type {SwalClass[]} */\n var classNames = ['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error'];\n var swalClasses = classNames.reduce(function (acc, className) {\n acc[className] = swalPrefix + className;\n return acc;\n }, /** @type {SwalClasses} */{});\n\n /** @type {SwalIcon[]} */\n var icons = ['success', 'warning', 'info', 'question', 'error'];\n var iconTypes = icons.reduce(function (acc, icon) {\n acc[icon] = swalPrefix + icon;\n return acc;\n }, /** @type {SwalIcons} */{});\n\n var consolePrefix = 'SweetAlert2:';\n\n /**\n * Capitalize the first letter of a string\n *\n * @param {string} str\n * @returns {string}\n */\n var capitalizeFirstLetter = function capitalizeFirstLetter(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n };\n\n /**\n * Standardize console warnings\n *\n * @param {string | string[]} message\n */\n var warn = function warn(message) {\n console.warn(\"\".concat(consolePrefix, \" \").concat(_typeof(message) === 'object' ? message.join(' ') : message));\n };\n\n /**\n * Standardize console errors\n *\n * @param {string} message\n */\n var error = function error(message) {\n console.error(\"\".concat(consolePrefix, \" \").concat(message));\n };\n\n /**\n * Private global state for `warnOnce`\n *\n * @type {string[]}\n * @private\n */\n var previousWarnOnceMessages = [];\n\n /**\n * Show a console warning, but only if it hasn't already been shown\n *\n * @param {string} message\n */\n var warnOnce = function warnOnce(message) {\n if (!previousWarnOnceMessages.includes(message)) {\n previousWarnOnceMessages.push(message);\n warn(message);\n }\n };\n\n /**\n * Show a one-time console warning about deprecated params/methods\n *\n * @param {string} deprecatedParam\n * @param {string} useInstead\n */\n var warnAboutDeprecation = function warnAboutDeprecation(deprecatedParam, useInstead) {\n warnOnce(\"\\\"\".concat(deprecatedParam, \"\\\" is deprecated and will be removed in the next major release. Please use \\\"\").concat(useInstead, \"\\\" instead.\"));\n };\n\n /**\n * If `arg` is a function, call it (with no arguments or context) and return the result.\n * Otherwise, just pass the value through\n *\n * @param {Function | any} arg\n * @returns {any}\n */\n var callIfFunction = function callIfFunction(arg) {\n return typeof arg === 'function' ? arg() : arg;\n };\n\n /**\n * @param {any} arg\n * @returns {boolean}\n */\n var hasToPromiseFn = function hasToPromiseFn(arg) {\n return arg && typeof arg.toPromise === 'function';\n };\n\n /**\n * @param {any} arg\n * @returns {Promise}\n */\n var asPromise = function asPromise(arg) {\n return hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n };\n\n /**\n * @param {any} arg\n * @returns {boolean}\n */\n var isPromise = function isPromise(arg) {\n return arg && Promise.resolve(arg) === arg;\n };\n\n /**\n * Gets the popup container which contains the backdrop and the popup itself.\n *\n * @returns {HTMLElement | null}\n */\n var getContainer = function getContainer() {\n return document.body.querySelector(\".\".concat(swalClasses.container));\n };\n\n /**\n * @param {string} selectorString\n * @returns {HTMLElement | null}\n */\n var elementBySelector = function elementBySelector(selectorString) {\n var container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n };\n\n /**\n * @param {string} className\n * @returns {HTMLElement | null}\n */\n var elementByClass = function elementByClass(className) {\n return elementBySelector(\".\".concat(className));\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getPopup = function getPopup() {\n return elementByClass(swalClasses.popup);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getIcon = function getIcon() {\n return elementByClass(swalClasses.icon);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getIconContent = function getIconContent() {\n return elementByClass(swalClasses['icon-content']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getTitle = function getTitle() {\n return elementByClass(swalClasses.title);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getHtmlContainer = function getHtmlContainer() {\n return elementByClass(swalClasses['html-container']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getImage = function getImage() {\n return elementByClass(swalClasses.image);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getProgressSteps = function getProgressSteps() {\n return elementByClass(swalClasses['progress-steps']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getValidationMessage = function getValidationMessage() {\n return elementByClass(swalClasses['validation-message']);\n };\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n var getConfirmButton = function getConfirmButton() {\n return /** @type {HTMLButtonElement} */elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.confirm));\n };\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n var getCancelButton = function getCancelButton() {\n return /** @type {HTMLButtonElement} */elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.cancel));\n };\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n var getDenyButton = function getDenyButton() {\n return /** @type {HTMLButtonElement} */elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.deny));\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getInputLabel = function getInputLabel() {\n return elementByClass(swalClasses['input-label']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getLoader = function getLoader() {\n return elementBySelector(\".\".concat(swalClasses.loader));\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getActions = function getActions() {\n return elementByClass(swalClasses.actions);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getFooter = function getFooter() {\n return elementByClass(swalClasses.footer);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getTimerProgressBar = function getTimerProgressBar() {\n return elementByClass(swalClasses['timer-progress-bar']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getCloseButton = function getCloseButton() {\n return elementByClass(swalClasses.close);\n };\n\n // https://github.com/jkup/focusable/blob/master/index.js\n var focusable = \"\\n a[href],\\n area[href],\\n input:not([disabled]),\\n select:not([disabled]),\\n textarea:not([disabled]),\\n button:not([disabled]),\\n iframe,\\n object,\\n embed,\\n [tabindex=\\\"0\\\"],\\n [contenteditable],\\n audio[controls],\\n video[controls],\\n summary\\n\";\n /**\n * @returns {HTMLElement[]}\n */\n var getFocusableElements = function getFocusableElements() {\n var popup = getPopup();\n if (!popup) {\n return [];\n }\n /** @type {NodeListOf} */\n var focusableElementsWithTabindex = popup.querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])');\n var focusableElementsWithTabindexSorted = Array.from(focusableElementsWithTabindex)\n // sort according to tabindex\n .sort(function (a, b) {\n var tabindexA = parseInt(a.getAttribute('tabindex') || '0');\n var tabindexB = parseInt(b.getAttribute('tabindex') || '0');\n if (tabindexA > tabindexB) {\n return 1;\n } else if (tabindexA < tabindexB) {\n return -1;\n }\n return 0;\n });\n\n /** @type {NodeListOf} */\n var otherFocusableElements = popup.querySelectorAll(focusable);\n var otherFocusableElementsFiltered = Array.from(otherFocusableElements).filter(function (el) {\n return el.getAttribute('tabindex') !== '-1';\n });\n return _toConsumableArray(new Set(focusableElementsWithTabindexSorted.concat(otherFocusableElementsFiltered))).filter(function (el) {\n return isVisible$1(el);\n });\n };\n\n /**\n * @returns {boolean}\n */\n var isModal = function isModal() {\n return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);\n };\n\n /**\n * @returns {boolean}\n */\n var isToast = function isToast() {\n var popup = getPopup();\n if (!popup) {\n return false;\n }\n return hasClass(popup, swalClasses.toast);\n };\n\n /**\n * @returns {boolean}\n */\n var isLoading = function isLoading() {\n var popup = getPopup();\n if (!popup) {\n return false;\n }\n return popup.hasAttribute('data-loading');\n };\n\n /**\n * Securely set innerHTML of an element\n * https://github.com/sweetalert2/sweetalert2/issues/1926\n *\n * @param {HTMLElement} elem\n * @param {string} html\n */\n var setInnerHtml = function setInnerHtml(elem, html) {\n elem.textContent = '';\n if (html) {\n var parser = new DOMParser();\n var parsed = parser.parseFromString(html, \"text/html\");\n var head = parsed.querySelector('head');\n head && Array.from(head.childNodes).forEach(function (child) {\n elem.appendChild(child);\n });\n var body = parsed.querySelector('body');\n body && Array.from(body.childNodes).forEach(function (child) {\n if (child instanceof HTMLVideoElement || child instanceof HTMLAudioElement) {\n elem.appendChild(child.cloneNode(true)); // https://github.com/sweetalert2/sweetalert2/issues/2507\n } else {\n elem.appendChild(child);\n }\n });\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {boolean}\n */\n var hasClass = function hasClass(elem, className) {\n if (!className) {\n return false;\n }\n var classList = className.split(/\\s+/);\n for (var i = 0; i < classList.length; i++) {\n if (!elem.classList.contains(classList[i])) {\n return false;\n }\n }\n return true;\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n */\n var removeCustomClasses = function removeCustomClasses(elem, params) {\n Array.from(elem.classList).forEach(function (className) {\n if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass || {}).includes(className)) {\n elem.classList.remove(className);\n }\n });\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n * @param {string} className\n */\n var applyCustomClass = function applyCustomClass(elem, params, className) {\n removeCustomClasses(elem, params);\n if (params.customClass && params.customClass[className]) {\n if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) {\n warn(\"Invalid type of customClass.\".concat(className, \"! Expected string or iterable object, got \\\"\").concat(_typeof(params.customClass[className]), \"\\\"\"));\n return;\n }\n addClass(elem, params.customClass[className]);\n }\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {import('./renderers/renderInput').InputClass | SweetAlertInput} inputClass\n * @returns {HTMLInputElement | null}\n */\n var getInput$1 = function getInput(popup, inputClass) {\n if (!inputClass) {\n return null;\n }\n switch (inputClass) {\n case 'select':\n case 'textarea':\n case 'file':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses[inputClass]));\n case 'checkbox':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.checkbox, \" input\"));\n case 'radio':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:checked\")) || popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:first-child\"));\n case 'range':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.range, \" input\"));\n default:\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.input));\n }\n };\n\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input\n */\n var focusInput = function focusInput(input) {\n input.focus();\n\n // place cursor at end of text in text input\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915\n var val = input.value;\n input.value = '';\n input.value = val;\n }\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n * @param {boolean} condition\n */\n var toggleClass = function toggleClass(target, classList, condition) {\n if (!target || !classList) {\n return;\n }\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean);\n }\n classList.forEach(function (className) {\n if (Array.isArray(target)) {\n target.forEach(function (elem) {\n condition ? elem.classList.add(className) : elem.classList.remove(className);\n });\n } else {\n condition ? target.classList.add(className) : target.classList.remove(className);\n }\n });\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\n var addClass = function addClass(target, classList) {\n toggleClass(target, classList, true);\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\n var removeClass = function removeClass(target, classList) {\n toggleClass(target, classList, false);\n };\n\n /**\n * Get direct child of an element by class name\n *\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {HTMLElement | undefined}\n */\n var getDirectChildByClass = function getDirectChildByClass(elem, className) {\n var children = Array.from(elem.children);\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (child instanceof HTMLElement && hasClass(child, className)) {\n return child;\n }\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {string} property\n * @param {*} value\n */\n var applyNumericalStyle = function applyNumericalStyle(elem, property, value) {\n if (value === \"\".concat(parseInt(value))) {\n value = parseInt(value);\n }\n if (value || parseInt(value) === 0) {\n elem.style.setProperty(property, typeof value === 'number' ? \"\".concat(value, \"px\") : value);\n } else {\n elem.style.removeProperty(property);\n }\n };\n\n /**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\n var show = function show(elem) {\n var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';\n elem && (elem.style.display = display);\n };\n\n /**\n * @param {HTMLElement | null} elem\n */\n var hide = function hide(elem) {\n elem && (elem.style.display = 'none');\n };\n\n /**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\n var showWhenInnerHtmlPresent = function showWhenInnerHtmlPresent(elem) {\n var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'block';\n if (!elem) {\n return;\n }\n new MutationObserver(function () {\n toggle(elem, elem.innerHTML, display);\n }).observe(elem, {\n childList: true,\n subtree: true\n });\n };\n\n /**\n * @param {HTMLElement} parent\n * @param {string} selector\n * @param {string} property\n * @param {string} value\n */\n var setStyle = function setStyle(parent, selector, property, value) {\n /** @type {HTMLElement | null} */\n var el = parent.querySelector(selector);\n if (el) {\n el.style.setProperty(property, value);\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {any} condition\n * @param {string} display\n */\n var toggle = function toggle(elem, condition) {\n var display = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'flex';\n condition ? show(elem, display) : hide(elem);\n };\n\n /**\n * borrowed from jquery $(elem).is(':visible') implementation\n *\n * @param {HTMLElement | null} elem\n * @returns {boolean}\n */\n var isVisible$1 = function isVisible(elem) {\n return !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n };\n\n /**\n * @returns {boolean}\n */\n var allButtonsAreHidden = function allButtonsAreHidden() {\n return !isVisible$1(getConfirmButton()) && !isVisible$1(getDenyButton()) && !isVisible$1(getCancelButton());\n };\n\n /**\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n var isScrollable = function isScrollable(elem) {\n return !!(elem.scrollHeight > elem.clientHeight);\n };\n\n /**\n * borrowed from https://stackoverflow.com/a/46352119\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n var hasCssAnimation = function hasCssAnimation(elem) {\n var style = window.getComputedStyle(elem);\n var animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n var transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n return animDuration > 0 || transDuration > 0;\n };\n\n /**\n * @param {number} timer\n * @param {boolean} reset\n */\n var animateTimerProgressBar = function animateTimerProgressBar(timer) {\n var reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n if (isVisible$1(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none';\n timerProgressBar.style.width = '100%';\n }\n setTimeout(function () {\n timerProgressBar.style.transition = \"width \".concat(timer / 1000, \"s linear\");\n timerProgressBar.style.width = '0%';\n }, 10);\n }\n };\n var stopTimerProgressBar = function stopTimerProgressBar() {\n var timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n var timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = '100%';\n var timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n var timerProgressBarPercent = timerProgressBarWidth / timerProgressBarFullWidth * 100;\n timerProgressBar.style.width = \"\".concat(timerProgressBarPercent, \"%\");\n };\n\n /**\n * Detect Node env\n *\n * @returns {boolean}\n */\n var isNodeEnv = function isNodeEnv() {\n return typeof window === 'undefined' || typeof document === 'undefined';\n };\n\n var sweetHTML = \"\\n
          \\n \\n
            \\n
            \\n \\n

            \\n
            \\n \\n \\n
            \\n \\n \\n
            \\n \\n
            \\n \\n \\n
            \\n
            \\n
            \\n \\n \\n \\n
            \\n
            \\n
            \\n
            \\n
            \\n
            \\n\").replace(/(^|\\n)\\s*/g, '');\n\n /**\n * @returns {boolean}\n */\n var resetOldContainer = function resetOldContainer() {\n var oldContainer = getContainer();\n if (!oldContainer) {\n return false;\n }\n oldContainer.remove();\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n return true;\n };\n var resetValidationMessage$1 = function resetValidationMessage() {\n globalState.currentInstance.resetValidationMessage();\n };\n var addInputChangeListeners = function addInputChangeListeners() {\n var popup = getPopup();\n var input = getDirectChildByClass(popup, swalClasses.input);\n var file = getDirectChildByClass(popup, swalClasses.file);\n /** @type {HTMLInputElement} */\n var range = popup.querySelector(\".\".concat(swalClasses.range, \" input\"));\n /** @type {HTMLOutputElement} */\n var rangeOutput = popup.querySelector(\".\".concat(swalClasses.range, \" output\"));\n var select = getDirectChildByClass(popup, swalClasses.select);\n /** @type {HTMLInputElement} */\n var checkbox = popup.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n var textarea = getDirectChildByClass(popup, swalClasses.textarea);\n input.oninput = resetValidationMessage$1;\n file.onchange = resetValidationMessage$1;\n select.onchange = resetValidationMessage$1;\n checkbox.onchange = resetValidationMessage$1;\n textarea.oninput = resetValidationMessage$1;\n range.oninput = function () {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n range.onchange = function () {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n };\n\n /**\n * @param {string | HTMLElement} target\n * @returns {HTMLElement}\n */\n var getTarget = function getTarget(target) {\n return typeof target === 'string' ? document.querySelector(target) : target;\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n var setupAccessibility = function setupAccessibility(params) {\n var popup = getPopup();\n popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n };\n\n /**\n * @param {HTMLElement} targetElement\n */\n var setupRTL = function setupRTL(targetElement) {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n }\n };\n\n /**\n * Add modal + backdrop + no-war message for Russians to DOM\n *\n * @param {SweetAlertOptions} params\n */\n var init = function init(params) {\n // Clean up the old popup container if it exists\n var oldContainerExisted = resetOldContainer();\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n var container = document.createElement('div');\n container.className = swalClasses.container;\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n setInnerHtml(container, sweetHTML);\n var targetElement = getTarget(params.target);\n targetElement.appendChild(container);\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n };\n\n /**\n * @param {HTMLElement | object | string} param\n * @param {HTMLElement} target\n */\n var parseHtmlToContainer = function parseHtmlToContainer(param, target) {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param);\n }\n\n // Object\n else if (_typeof(param) === 'object') {\n handleObject(param, target);\n }\n\n // Plain string\n else if (param) {\n setInnerHtml(target, param);\n }\n };\n\n /**\n * @param {any} param\n * @param {HTMLElement} target\n */\n var handleObject = function handleObject(param, target) {\n // JQuery element(s)\n if (param.jquery) {\n handleJqueryElem(target, param);\n }\n\n // For other objects use their string representation\n else {\n setInnerHtml(target, param.toString());\n }\n };\n\n /**\n * @param {HTMLElement} target\n * @param {any} elem\n */\n var handleJqueryElem = function handleJqueryElem(target, elem) {\n target.textContent = '';\n if (0 in elem) {\n for (var i = 0; (i in elem); i++) {\n target.appendChild(elem[i].cloneNode(true));\n }\n } else {\n target.appendChild(elem.cloneNode(true));\n }\n };\n\n /**\n * @returns {'webkitAnimationEnd' | 'animationend' | false}\n */\n var animationEndEvent = function () {\n // Prevent run in Node env\n if (isNodeEnv()) {\n return false;\n }\n var testEl = document.createElement('div');\n\n // Chrome, Safari and Opera\n if (typeof testEl.style.webkitAnimation !== 'undefined') {\n return 'webkitAnimationEnd';\n }\n\n // Standard syntax\n if (typeof testEl.style.animation !== 'undefined') {\n return 'animationend';\n }\n return false;\n }();\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderActions = function renderActions(instance, params) {\n var actions = getActions();\n var loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n\n // Actions (buttons) wrapper\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } else {\n show(actions);\n }\n\n // Custom class\n applyCustomClass(actions, params, 'actions');\n\n // Render all the buttons\n renderButtons(actions, loader, params);\n\n // Loader\n setInnerHtml(loader, params.loaderHtml || '');\n applyCustomClass(loader, params, 'loader');\n };\n\n /**\n * @param {HTMLElement} actions\n * @param {HTMLElement} loader\n * @param {SweetAlertOptions} params\n */\n function renderButtons(actions, loader, params) {\n var confirmButton = getConfirmButton();\n var denyButton = getDenyButton();\n var cancelButton = getCancelButton();\n if (!confirmButton || !denyButton || !cancelButton) {\n return;\n }\n\n // Render buttons\n renderButton(confirmButton, 'confirm', params);\n renderButton(denyButton, 'deny', params);\n renderButton(cancelButton, 'cancel', params);\n handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n if (params.reverseButtons) {\n if (params.toast) {\n actions.insertBefore(cancelButton, confirmButton);\n actions.insertBefore(denyButton, confirmButton);\n } else {\n actions.insertBefore(cancelButton, loader);\n actions.insertBefore(denyButton, loader);\n actions.insertBefore(confirmButton, loader);\n }\n }\n }\n\n /**\n * @param {HTMLElement} confirmButton\n * @param {HTMLElement} denyButton\n * @param {HTMLElement} cancelButton\n * @param {SweetAlertOptions} params\n */\n function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n return;\n }\n addClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n\n // Buttons background colors\n if (params.confirmButtonColor) {\n confirmButton.style.backgroundColor = params.confirmButtonColor;\n addClass(confirmButton, swalClasses['default-outline']);\n }\n if (params.denyButtonColor) {\n denyButton.style.backgroundColor = params.denyButtonColor;\n addClass(denyButton, swalClasses['default-outline']);\n }\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor;\n addClass(cancelButton, swalClasses['default-outline']);\n }\n }\n\n /**\n * @param {HTMLElement} button\n * @param {'confirm' | 'deny' | 'cancel'} buttonType\n * @param {SweetAlertOptions} params\n */\n function renderButton(button, buttonType, params) {\n var buttonName = /** @type {'Confirm' | 'Deny' | 'Cancel'} */capitalizeFirstLetter(buttonType);\n toggle(button, params[\"show\".concat(buttonName, \"Button\")], 'inline-block');\n setInnerHtml(button, params[\"\".concat(buttonType, \"ButtonText\")] || ''); // Set caption text\n button.setAttribute('aria-label', params[\"\".concat(buttonType, \"ButtonAriaLabel\")] || ''); // ARIA label\n\n // Add buttons custom classes\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, \"\".concat(buttonType, \"Button\"));\n }\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderCloseButton = function renderCloseButton(instance, params) {\n var closeButton = getCloseButton();\n if (!closeButton) {\n return;\n }\n setInnerHtml(closeButton, params.closeButtonHtml || '');\n\n // Custom class\n applyCustomClass(closeButton, params, 'closeButton');\n toggle(closeButton, params.showCloseButton);\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel || '');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderContainer = function renderContainer(instance, params) {\n var container = getContainer();\n if (!container) {\n return;\n }\n handleBackdropParam(container, params.backdrop);\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow);\n\n // Custom class\n applyCustomClass(container, params, 'container');\n };\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['backdrop']} backdrop\n */\n function handleBackdropParam(container, backdrop) {\n if (typeof backdrop === 'string') {\n container.style.background = backdrop;\n } else if (!backdrop) {\n addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n }\n }\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['position']} position\n */\n function handlePositionParam(container, position) {\n if (!position) {\n return;\n }\n if (position in swalClasses) {\n addClass(container, swalClasses[position]);\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n addClass(container, swalClasses.center);\n }\n }\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['grow']} grow\n */\n function handleGrowParam(container, grow) {\n if (!grow) {\n return;\n }\n addClass(container, swalClasses[\"grow-\".concat(grow)]);\n }\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\n var privateProps = {\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n };\n\n /** @type {InputClass[]} */\n var inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderInput = function renderInput(instance, params) {\n var popup = getPopup();\n if (!popup) {\n return;\n }\n var innerParams = privateProps.innerParams.get(instance);\n var rerender = !innerParams || params.input !== innerParams.input;\n inputClasses.forEach(function (inputClass) {\n var inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]);\n if (!inputContainer) {\n return;\n }\n\n // set attributes\n setAttributes(inputClass, params.inputAttributes);\n\n // set class\n inputContainer.className = swalClasses[inputClass];\n if (rerender) {\n hide(inputContainer);\n }\n });\n if (params.input) {\n if (rerender) {\n showInput(params);\n }\n // set custom class\n setCustomClass(params);\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n var showInput = function showInput(params) {\n if (!params.input) {\n return;\n }\n if (!renderInputType[params.input]) {\n error(\"Unexpected type of input! Expected \".concat(Object.keys(renderInputType).join(' | '), \", got \\\"\").concat(params.input, \"\\\"\"));\n return;\n }\n var inputContainer = getInputContainer(params.input);\n var input = renderInputType[params.input](inputContainer, params);\n show(inputContainer);\n\n // input autofocus\n if (params.inputAutoFocus) {\n setTimeout(function () {\n focusInput(input);\n });\n }\n };\n\n /**\n * @param {HTMLInputElement} input\n */\n var removeAttributes = function removeAttributes(input) {\n for (var i = 0; i < input.attributes.length; i++) {\n var attrName = input.attributes[i].name;\n if (!['id', 'type', 'value', 'style'].includes(attrName)) {\n input.removeAttribute(attrName);\n }\n }\n };\n\n /**\n * @param {InputClass} inputClass\n * @param {SweetAlertOptions['inputAttributes']} inputAttributes\n */\n var setAttributes = function setAttributes(inputClass, inputAttributes) {\n var input = getInput$1(getPopup(), inputClass);\n if (!input) {\n return;\n }\n removeAttributes(input);\n for (var attr in inputAttributes) {\n input.setAttribute(attr, inputAttributes[attr]);\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n var setCustomClass = function setCustomClass(params) {\n var inputContainer = getInputContainer(params.input);\n if (_typeof(params.customClass) === 'object') {\n addClass(inputContainer, params.customClass.input);\n }\n };\n\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions} params\n */\n var setInputPlaceholder = function setInputPlaceholder(input, params) {\n if (!input.placeholder || params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n };\n\n /**\n * @param {Input} input\n * @param {Input} prependTo\n * @param {SweetAlertOptions} params\n */\n var setInputLabel = function setInputLabel(input, prependTo, params) {\n if (params.inputLabel) {\n var label = document.createElement('label');\n var labelClass = swalClasses['input-label'];\n label.setAttribute('for', input.id);\n label.className = labelClass;\n if (_typeof(params.customClass) === 'object') {\n addClass(label, params.customClass.inputLabel);\n }\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n };\n\n /**\n * @param {SweetAlertOptions['input']} inputType\n * @returns {HTMLElement}\n */\n var getInputContainer = function getInputContainer(inputType) {\n return getDirectChildByClass(getPopup(), swalClasses[inputType] || swalClasses.input);\n };\n\n /**\n * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions['inputValue']} inputValue\n */\n var checkAndSetInputValue = function checkAndSetInputValue(input, inputValue) {\n if (['string', 'number'].includes(_typeof(inputValue))) {\n input.value = \"\".concat(inputValue);\n } else if (!isPromise(inputValue)) {\n warn(\"Unexpected type of inputValue! Expected \\\"string\\\", \\\"number\\\" or \\\"Promise\\\", got \\\"\".concat(_typeof(inputValue), \"\\\"\"));\n }\n };\n\n /** @type {Record Input>} */\n var renderInputType = {};\n\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = renderInputType.search = renderInputType.date = renderInputType['datetime-local'] = renderInputType.time = renderInputType.week = renderInputType.month = function (input, params) {\n checkAndSetInputValue(input, params.inputValue);\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n input.type = params.input;\n return input;\n };\n\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.file = function (input, params) {\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n return input;\n };\n\n /**\n * @param {HTMLInputElement} range\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.range = function (range, params) {\n var rangeInput = range.querySelector('input');\n var rangeOutput = range.querySelector('output');\n checkAndSetInputValue(rangeInput, params.inputValue);\n rangeInput.type = params.input;\n checkAndSetInputValue(rangeOutput, params.inputValue);\n setInputLabel(rangeInput, range, params);\n return range;\n };\n\n /**\n * @param {HTMLSelectElement} select\n * @param {SweetAlertOptions} params\n * @returns {HTMLSelectElement}\n */\n renderInputType.select = function (select, params) {\n select.textContent = '';\n if (params.inputPlaceholder) {\n var placeholder = document.createElement('option');\n setInnerHtml(placeholder, params.inputPlaceholder);\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n select.appendChild(placeholder);\n }\n setInputLabel(select, select, params);\n return select;\n };\n\n /**\n * @param {HTMLInputElement} radio\n * @returns {HTMLInputElement}\n */\n renderInputType.radio = function (radio) {\n radio.textContent = '';\n return radio;\n };\n\n /**\n * @param {HTMLLabelElement} checkboxContainer\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.checkbox = function (checkboxContainer, params) {\n var checkbox = getInput$1(getPopup(), 'checkbox');\n checkbox.value = '1';\n checkbox.checked = Boolean(params.inputValue);\n var label = checkboxContainer.querySelector('span');\n setInnerHtml(label, params.inputPlaceholder);\n return checkbox;\n };\n\n /**\n * @param {HTMLTextAreaElement} textarea\n * @param {SweetAlertOptions} params\n * @returns {HTMLTextAreaElement}\n */\n renderInputType.textarea = function (textarea, params) {\n checkAndSetInputValue(textarea, params.inputValue);\n setInputPlaceholder(textarea, params);\n setInputLabel(textarea, textarea, params);\n\n /**\n * @param {HTMLElement} el\n * @returns {number}\n */\n var getMargin = function getMargin(el) {\n return parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight);\n };\n\n // https://github.com/sweetalert2/sweetalert2/issues/2291\n setTimeout(function () {\n // https://github.com/sweetalert2/sweetalert2/issues/1699\n if ('MutationObserver' in window) {\n var initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n var textareaResizeHandler = function textareaResizeHandler() {\n // check if texarea is still in document (i.e. popup wasn't closed in the meantime)\n if (!document.body.contains(textarea)) {\n return;\n }\n var textareaWidth = textarea.offsetWidth + getMargin(textarea);\n if (textareaWidth > initialPopupWidth) {\n getPopup().style.width = \"\".concat(textareaWidth, \"px\");\n } else {\n applyNumericalStyle(getPopup(), 'width', params.width);\n }\n };\n new MutationObserver(textareaResizeHandler).observe(textarea, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n });\n return textarea;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderContent = function renderContent(instance, params) {\n var htmlContainer = getHtmlContainer();\n if (!htmlContainer) {\n return;\n }\n showWhenInnerHtmlPresent(htmlContainer);\n applyCustomClass(htmlContainer, params, 'htmlContainer');\n\n // Content as HTML\n if (params.html) {\n parseHtmlToContainer(params.html, htmlContainer);\n show(htmlContainer, 'block');\n }\n\n // Content as plain text\n else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block');\n }\n\n // No content\n else {\n hide(htmlContainer);\n }\n renderInput(instance, params);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderFooter = function renderFooter(instance, params) {\n var footer = getFooter();\n if (!footer) {\n return;\n }\n showWhenInnerHtmlPresent(footer);\n toggle(footer, params.footer, 'block');\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n }\n\n // Custom class\n applyCustomClass(footer, params, 'footer');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderIcon = function renderIcon(instance, params) {\n var innerParams = privateProps.innerParams.get(instance);\n var icon = getIcon();\n if (!icon) {\n return;\n }\n\n // if the given icon already rendered, apply the styling without re-rendering the icon\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n return;\n }\n if (!params.icon && !params.iconHtml) {\n hide(icon);\n return;\n }\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(\"Unknown icon! Expected \\\"success\\\", \\\"error\\\", \\\"warning\\\", \\\"info\\\" or \\\"question\\\", got \\\"\".concat(params.icon, \"\\\"\"));\n hide(icon);\n return;\n }\n show(icon);\n\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n\n // Animate icon\n addClass(icon, params.showClass && params.showClass.icon);\n };\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n var applyStyles = function applyStyles(icon, params) {\n for (var _i = 0, _Object$entries = Object.entries(iconTypes); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n iconType = _Object$entries$_i[0],\n iconClassName = _Object$entries$_i[1];\n if (params.icon !== iconType) {\n removeClass(icon, iconClassName);\n }\n }\n addClass(icon, params.icon && iconTypes[params.icon]);\n\n // Icon color\n setColor(icon, params);\n\n // Success icon background color\n adjustSuccessIconBackgroundColor();\n\n // Custom class\n applyCustomClass(icon, params, 'icon');\n };\n\n // Adjust success icon background color to match the popup background color\n var adjustSuccessIconBackgroundColor = function adjustSuccessIconBackgroundColor() {\n var popup = getPopup();\n if (!popup) {\n return;\n }\n var popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n /** @type {NodeListOf} */\n var successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n for (var i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n };\n var successIconHtml = \"\\n
            \\n \\n
            \\n
            \\n\";\n var errorIconHtml = \"\\n \\n \\n \\n \\n\";\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n var setContent = function setContent(icon, params) {\n if (!params.icon && !params.iconHtml) {\n return;\n }\n var oldContent = icon.innerHTML;\n var newContent = '';\n if (params.iconHtml) {\n newContent = iconContent(params.iconHtml);\n } else if (params.icon === 'success') {\n newContent = successIconHtml;\n oldContent = oldContent.replace(/ style=\".*?\"/g, ''); // undo adjustSuccessIconBackgroundColor()\n } else if (params.icon === 'error') {\n newContent = errorIconHtml;\n } else if (params.icon) {\n var defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i'\n };\n newContent = iconContent(defaultIconHtml[params.icon]);\n }\n if (oldContent.trim() !== newContent.trim()) {\n setInnerHtml(icon, newContent);\n }\n };\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n var setColor = function setColor(icon, params) {\n if (!params.iconColor) {\n return;\n }\n icon.style.color = params.iconColor;\n icon.style.borderColor = params.iconColor;\n for (var _i2 = 0, _arr = ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']; _i2 < _arr.length; _i2++) {\n var sel = _arr[_i2];\n setStyle(icon, sel, 'background-color', params.iconColor);\n }\n setStyle(icon, '.swal2-success-ring', 'border-color', params.iconColor);\n };\n\n /**\n * @param {string} content\n * @returns {string}\n */\n var iconContent = function iconContent(content) {\n return \"
            \").concat(content, \"
            \");\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderImage = function renderImage(instance, params) {\n var image = getImage();\n if (!image) {\n return;\n }\n if (!params.imageUrl) {\n hide(image);\n return;\n }\n show(image, '');\n\n // Src, alt\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt || '');\n\n // Width, height\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight);\n\n // Class\n image.className = swalClasses.image;\n applyCustomClass(image, params, 'image');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderPopup = function renderPopup(instance, params) {\n var container = getContainer();\n var popup = getPopup();\n if (!container || !popup) {\n return;\n }\n\n // Width\n // https://github.com/sweetalert2/sweetalert2/issues/2170\n if (params.toast) {\n applyNumericalStyle(container, 'width', params.width);\n popup.style.width = '100%';\n var loader = getLoader();\n loader && popup.insertBefore(loader, getIcon());\n } else {\n applyNumericalStyle(popup, 'width', params.width);\n }\n\n // Padding\n applyNumericalStyle(popup, 'padding', params.padding);\n\n // Color\n if (params.color) {\n popup.style.color = params.color;\n }\n\n // Background\n if (params.background) {\n popup.style.background = params.background;\n }\n hide(getValidationMessage());\n\n // Classes\n addClasses$1(popup, params);\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\n var addClasses$1 = function addClasses(popup, params) {\n var showClass = params.showClass || {};\n // Default Class + showClass when updating Swal.update({})\n popup.className = \"\".concat(swalClasses.popup, \" \").concat(isVisible$1(popup) ? showClass.popup : '');\n if (params.toast) {\n addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n addClass(popup, swalClasses.toast);\n } else {\n addClass(popup, swalClasses.modal);\n }\n\n // Custom class\n applyCustomClass(popup, params, 'popup');\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n }\n\n // Icon class (#1842)\n if (params.icon) {\n addClass(popup, swalClasses[\"icon-\".concat(params.icon)]);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderProgressSteps = function renderProgressSteps(instance, params) {\n var progressStepsContainer = getProgressSteps();\n if (!progressStepsContainer) {\n return;\n }\n var progressSteps = params.progressSteps,\n currentProgressStep = params.currentProgressStep;\n if (!progressSteps || progressSteps.length === 0 || currentProgressStep === undefined) {\n hide(progressStepsContainer);\n return;\n }\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\n if (currentProgressStep >= progressSteps.length) {\n warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n progressSteps.forEach(function (step, index) {\n var stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n if (index === currentProgressStep) {\n addClass(stepEl, swalClasses['active-progress-step']);\n }\n if (index !== progressSteps.length - 1) {\n var lineEl = createLineElement(params);\n progressStepsContainer.appendChild(lineEl);\n }\n });\n };\n\n /**\n * @param {string} step\n * @returns {HTMLLIElement}\n */\n var createStepElement = function createStepElement(step) {\n var stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n setInnerHtml(stepEl, step);\n return stepEl;\n };\n\n /**\n * @param {SweetAlertOptions} params\n * @returns {HTMLLIElement}\n */\n var createLineElement = function createLineElement(params) {\n var lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n if (params.progressStepsDistance) {\n applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);\n }\n return lineEl;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderTitle = function renderTitle(instance, params) {\n var title = getTitle();\n if (!title) {\n return;\n }\n showWhenInnerHtmlPresent(title);\n toggle(title, params.title || params.titleText, 'block');\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n if (params.titleText) {\n title.innerText = params.titleText;\n }\n\n // Custom class\n applyCustomClass(title, params, 'title');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var render = function render(instance, params) {\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderProgressSteps(instance, params);\n renderIcon(instance, params);\n renderImage(instance, params);\n renderTitle(instance, params);\n renderCloseButton(instance, params);\n renderContent(instance, params);\n renderActions(instance, params);\n renderFooter(instance, params);\n var popup = getPopup();\n if (typeof params.didRender === 'function' && popup) {\n params.didRender(popup);\n }\n };\n\n /*\n * Global function to determine if SweetAlert2 popup is shown\n */\n var isVisible = function isVisible() {\n return isVisible$1(getPopup());\n };\n\n /*\n * Global function to click 'Confirm' button\n */\n var clickConfirm = function clickConfirm() {\n var _dom$getConfirmButton;\n return (_dom$getConfirmButton = getConfirmButton()) === null || _dom$getConfirmButton === void 0 ? void 0 : _dom$getConfirmButton.click();\n };\n\n /*\n * Global function to click 'Deny' button\n */\n var clickDeny = function clickDeny() {\n var _dom$getDenyButton;\n return (_dom$getDenyButton = getDenyButton()) === null || _dom$getDenyButton === void 0 ? void 0 : _dom$getDenyButton.click();\n };\n\n /*\n * Global function to click 'Cancel' button\n */\n var clickCancel = function clickCancel() {\n var _dom$getCancelButton;\n return (_dom$getCancelButton = getCancelButton()) === null || _dom$getCancelButton === void 0 ? void 0 : _dom$getCancelButton.click();\n };\n\n /** @typedef {'cancel' | 'backdrop' | 'close' | 'esc' | 'timer'} DismissReason */\n\n /** @type {Record} */\n var DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n });\n\n /**\n * @param {GlobalState} globalState\n */\n var removeKeydownHandler = function removeKeydownHandler(globalState) {\n if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n };\n\n /**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {*} dismissWith\n */\n var addKeydownHandler = function addKeydownHandler(globalState, innerParams, dismissWith) {\n removeKeydownHandler(globalState);\n if (!innerParams.toast) {\n globalState.keydownHandler = function (e) {\n return keydownHandler(innerParams, e, dismissWith);\n };\n globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();\n globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = true;\n }\n };\n\n /**\n * @param {number} index\n * @param {number} increment\n */\n var setFocus = function setFocus(index, increment) {\n var _dom$getPopup;\n var focusableElements = getFocusableElements();\n // search for visible elements and select the next possible match\n if (focusableElements.length) {\n index = index + increment;\n\n // rollover to first item\n if (index === focusableElements.length) {\n index = 0;\n\n // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n focusableElements[index].focus();\n return;\n }\n // no visible focusable elements, focus the popup\n (_dom$getPopup = getPopup()) === null || _dom$getPopup === void 0 || _dom$getPopup.focus();\n };\n var arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];\n var arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {KeyboardEvent} event\n * @param {Function} dismissWith\n */\n var keydownHandler = function keydownHandler(innerParams, event, dismissWith) {\n if (!innerParams) {\n return; // This instance has already been destroyed\n }\n\n // Ignore keydown during IME composition\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition\n // https://github.com/sweetalert2/sweetalert2/issues/720\n // https://github.com/sweetalert2/sweetalert2/issues/2406\n if (event.isComposing || event.keyCode === 229) {\n return;\n }\n if (innerParams.stopKeydownPropagation) {\n event.stopPropagation();\n }\n\n // ENTER\n if (event.key === 'Enter') {\n handleEnter(event, innerParams);\n }\n\n // TAB\n else if (event.key === 'Tab') {\n handleTab(event);\n }\n\n // ARROWS - switch focus between buttons\n else if ([].concat(arrowKeysNextButton, arrowKeysPreviousButton).includes(event.key)) {\n handleArrows(event.key);\n }\n\n // ESC\n else if (event.key === 'Escape') {\n handleEsc(event, innerParams, dismissWith);\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n */\n var handleEnter = function handleEnter(event, innerParams) {\n // https://github.com/sweetalert2/sweetalert2/issues/2386\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return;\n }\n var input = getInput$1(getPopup(), innerParams.input);\n if (event.target && input && event.target instanceof HTMLElement && event.target.outerHTML === input.outerHTML) {\n if (['textarea', 'file'].includes(innerParams.input)) {\n return; // do not submit\n }\n clickConfirm();\n event.preventDefault();\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n */\n var handleTab = function handleTab(event) {\n var targetElement = event.target;\n var focusableElements = getFocusableElements();\n var btnIndex = -1;\n for (var i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n }\n\n // Cycle to the next button\n if (!event.shiftKey) {\n setFocus(btnIndex, 1);\n }\n\n // Cycle to the prev button\n else {\n setFocus(btnIndex, -1);\n }\n event.stopPropagation();\n event.preventDefault();\n };\n\n /**\n * @param {string} key\n */\n var handleArrows = function handleArrows(key) {\n var actions = getActions();\n var confirmButton = getConfirmButton();\n var denyButton = getDenyButton();\n var cancelButton = getCancelButton();\n if (!actions || !confirmButton || !denyButton || !cancelButton) {\n return;\n }\n /** @type HTMLElement[] */\n var buttons = [confirmButton, denyButton, cancelButton];\n if (document.activeElement instanceof HTMLElement && !buttons.includes(document.activeElement)) {\n return;\n }\n var sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n var buttonToFocus = document.activeElement;\n if (!buttonToFocus) {\n return;\n }\n for (var i = 0; i < actions.children.length; i++) {\n buttonToFocus = buttonToFocus[sibling];\n if (!buttonToFocus) {\n return;\n }\n if (buttonToFocus instanceof HTMLButtonElement && isVisible$1(buttonToFocus)) {\n break;\n }\n }\n if (buttonToFocus instanceof HTMLButtonElement) {\n buttonToFocus.focus();\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n * @param {Function} dismissWith\n */\n var handleEsc = function handleEsc(event, innerParams, dismissWith) {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n event.preventDefault();\n dismissWith(DismissReason.esc);\n }\n };\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\n var privateMethods = {\n swalPromiseResolve: new WeakMap(),\n swalPromiseReject: new WeakMap()\n };\n\n // From https://developer.paciellogroup.com/blog/2018/06/the-current-state-of-modal-dialog-accessibility/\n // Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n // elements not within the active modal dialog will not be surfaced if a user opens a screen\n // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\n var setAriaHidden = function setAriaHidden() {\n var container = getContainer();\n var bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(function (el) {\n if (el.contains(container)) {\n return;\n }\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden') || '');\n }\n el.setAttribute('aria-hidden', 'true');\n });\n };\n var unsetAriaHidden = function unsetAriaHidden() {\n var bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(function (el) {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden') || '');\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n };\n\n // @ts-ignore\n var isSafariOrIOS = typeof window !== 'undefined' && !!window.GestureEvent; // true for Safari desktop + all iOS browsers https://stackoverflow.com/a/70585394\n\n /**\n * Fix iOS scrolling\n * http://stackoverflow.com/q/39626302\n */\n var iOSfix = function iOSfix() {\n if (isSafariOrIOS && !hasClass(document.body, swalClasses.iosfix)) {\n var offset = document.body.scrollTop;\n document.body.style.top = \"\".concat(offset * -1, \"px\");\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n }\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1246\n */\n var lockBodyScroll = function lockBodyScroll() {\n var container = getContainer();\n if (!container) {\n return;\n }\n /** @type {boolean} */\n var preventTouchMove;\n /**\n * @param {TouchEvent} event\n */\n container.ontouchstart = function (event) {\n preventTouchMove = shouldPreventTouchMove(event);\n };\n /**\n * @param {TouchEvent} event\n */\n container.ontouchmove = function (event) {\n if (preventTouchMove) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n };\n\n /**\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n var shouldPreventTouchMove = function shouldPreventTouchMove(event) {\n var target = event.target;\n var container = getContainer();\n var htmlContainer = getHtmlContainer();\n if (!container || !htmlContainer) {\n return false;\n }\n if (isStylus(event) || isZoom(event)) {\n return false;\n }\n if (target === container) {\n return true;\n }\n if (!isScrollable(container) && target instanceof HTMLElement && target.tagName !== 'INPUT' &&\n // #1603\n target.tagName !== 'TEXTAREA' &&\n // #2266\n !(isScrollable(htmlContainer) &&\n // #1944\n htmlContainer.contains(target))) {\n return true;\n }\n return false;\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1786\n *\n * @param {*} event\n * @returns {boolean}\n */\n var isStylus = function isStylus(event) {\n return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1891\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n var isZoom = function isZoom(event) {\n return event.touches && event.touches.length > 1;\n };\n var undoIOSfix = function undoIOSfix() {\n if (hasClass(document.body, swalClasses.iosfix)) {\n var offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.style.top = '';\n document.body.scrollTop = offset * -1;\n }\n };\n\n /**\n * Measure scrollbar width for padding body during modal show/hide\n * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n *\n * @returns {number}\n */\n var measureScrollbar = function measureScrollbar() {\n var scrollDiv = document.createElement('div');\n scrollDiv.className = swalClasses['scrollbar-measure'];\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n };\n\n /**\n * Remember state in cases where opening and handling a modal will fiddle with it.\n * @type {number | null}\n */\n var previousBodyPadding = null;\n\n /**\n * @param {string} initialBodyOverflow\n */\n var replaceScrollbarWithPadding = function replaceScrollbarWithPadding(initialBodyOverflow) {\n // for queues, do not do this more than once\n if (previousBodyPadding !== null) {\n return;\n }\n // if the body has overflow\n if (document.body.scrollHeight > window.innerHeight || initialBodyOverflow === 'scroll' // https://github.com/sweetalert2/sweetalert2/issues/2663\n ) {\n // add padding so the content doesn't shift after removal of scrollbar\n previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = \"\".concat(previousBodyPadding + measureScrollbar(), \"px\");\n }\n };\n var undoReplaceScrollbarWithPadding = function undoReplaceScrollbarWithPadding() {\n if (previousBodyPadding !== null) {\n document.body.style.paddingRight = \"\".concat(previousBodyPadding, \"px\");\n previousBodyPadding = null;\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {Function} didClose\n */\n function removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (isToast()) {\n triggerDidCloseAndDispose(instance, didClose);\n } else {\n restoreActiveElement(returnFocus).then(function () {\n return triggerDidCloseAndDispose(instance, didClose);\n });\n removeKeydownHandler(globalState);\n }\n\n // workaround for https://github.com/sweetalert2/sweetalert2/issues/2088\n // for some reason removing the container in Safari will scroll the document to bottom\n if (isSafariOrIOS) {\n container.setAttribute('style', 'display:none !important');\n container.removeAttribute('class');\n container.innerHTML = '';\n } else {\n container.remove();\n }\n if (isModal()) {\n undoReplaceScrollbarWithPadding();\n undoIOSfix();\n unsetAriaHidden();\n }\n removeBodyClasses();\n }\n\n /**\n * Remove SweetAlert2 classes from body\n */\n function removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n }\n\n /**\n * Instance method to close sweetAlert\n *\n * @param {any} resolveValue\n */\n function close(resolveValue) {\n resolveValue = prepareResolveValue(resolveValue);\n var swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n var didClose = triggerClosePopup(this);\n if (this.isAwaitingPromise) {\n // A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335\n if (!resolveValue.isDismissed) {\n handleAwaitingPromise(this);\n swalPromiseResolve(resolveValue);\n }\n } else if (didClose) {\n // Resolve Swal promise\n swalPromiseResolve(resolveValue);\n }\n }\n var triggerClosePopup = function triggerClosePopup(instance) {\n var popup = getPopup();\n if (!popup) {\n return false;\n }\n var innerParams = privateProps.innerParams.get(instance);\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return false;\n }\n removeClass(popup, innerParams.showClass.popup);\n addClass(popup, innerParams.hideClass.popup);\n var backdrop = getContainer();\n removeClass(backdrop, innerParams.showClass.backdrop);\n addClass(backdrop, innerParams.hideClass.backdrop);\n handlePopupAnimation(instance, popup, innerParams);\n return true;\n };\n\n /**\n * @param {any} error\n */\n function rejectPromise(error) {\n var rejectPromise = privateMethods.swalPromiseReject.get(this);\n handleAwaitingPromise(this);\n if (rejectPromise) {\n // Reject Swal promise\n rejectPromise(error);\n }\n }\n\n /**\n * @param {SweetAlert} instance\n */\n var handleAwaitingPromise = function handleAwaitingPromise(instance) {\n if (instance.isAwaitingPromise) {\n delete instance.isAwaitingPromise;\n // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335\n if (!privateProps.innerParams.get(instance)) {\n instance._destroy();\n }\n }\n };\n\n /**\n * @param {any} resolveValue\n * @returns {SweetAlertResult}\n */\n var prepareResolveValue = function prepareResolveValue(resolveValue) {\n // When user calls Swal.close()\n if (typeof resolveValue === 'undefined') {\n return {\n isConfirmed: false,\n isDenied: false,\n isDismissed: true\n };\n }\n return Object.assign({\n isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} innerParams\n */\n var handlePopupAnimation = function handlePopupAnimation(instance, popup, innerParams) {\n var container = getContainer();\n // If animation is supported, animate\n var animationIsSupported = animationEndEvent && hasCssAnimation(popup);\n if (typeof innerParams.willClose === 'function') {\n innerParams.willClose(popup);\n }\n if (animationIsSupported) {\n animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose);\n } else {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {Function} didClose\n */\n var animatePopup = function animatePopup(instance, popup, container, returnFocus, didClose) {\n if (!animationEndEvent) {\n return;\n }\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);\n popup.addEventListener(animationEndEvent, function (e) {\n if (e.target === popup) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n });\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {Function} didClose\n */\n var triggerDidCloseAndDispose = function triggerDidCloseAndDispose(instance, didClose) {\n setTimeout(function () {\n if (typeof didClose === 'function') {\n didClose.bind(instance.params)();\n }\n // instance might have been destroyed already\n if (instance._destroy) {\n instance._destroy();\n }\n });\n };\n\n /**\n * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n *\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\n var showLoading = function showLoading(buttonToReplace) {\n var popup = getPopup();\n if (!popup) {\n new Swal(); // eslint-disable-line no-new\n }\n popup = getPopup();\n if (!popup) {\n return;\n }\n var loader = getLoader();\n if (isToast()) {\n hide(getIcon());\n } else {\n replaceButton(popup, buttonToReplace);\n }\n show(loader);\n popup.setAttribute('data-loading', 'true');\n popup.setAttribute('aria-busy', 'true');\n popup.focus();\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\n var replaceButton = function replaceButton(popup, buttonToReplace) {\n var actions = getActions();\n var loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n if (!buttonToReplace && isVisible$1(getConfirmButton())) {\n buttonToReplace = getConfirmButton();\n }\n show(actions);\n if (buttonToReplace) {\n hide(buttonToReplace);\n loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n actions.insertBefore(loader, buttonToReplace);\n }\n addClass([popup, actions], swalClasses.loading);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var handleInputOptionsAndValue = function handleInputOptionsAndValue(instance, params) {\n if (params.input === 'select' || params.input === 'radio') {\n handleInputOptions(instance, params);\n } else if (['text', 'email', 'number', 'tel', 'textarea'].some(function (i) {\n return i === params.input;\n }) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n showLoading(getConfirmButton());\n handleInputValue(instance, params);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} innerParams\n * @returns {SweetAlertInputValue}\n */\n var getInputValue = function getInputValue(instance, innerParams) {\n var input = instance.getInput();\n if (!input) {\n return null;\n }\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n case 'radio':\n return getRadioValue(input);\n case 'file':\n return getFileValue(input);\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n };\n\n /**\n * @param {HTMLInputElement} input\n * @returns {number}\n */\n var getCheckboxValue = function getCheckboxValue(input) {\n return input.checked ? 1 : 0;\n };\n\n /**\n * @param {HTMLInputElement} input\n * @returns {string | null}\n */\n var getRadioValue = function getRadioValue(input) {\n return input.checked ? input.value : null;\n };\n\n /**\n * @param {HTMLInputElement} input\n * @returns {FileList | File | null}\n */\n var getFileValue = function getFileValue(input) {\n return input.files && input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var handleInputOptions = function handleInputOptions(instance, params) {\n var popup = getPopup();\n if (!popup) {\n return;\n }\n /**\n * @param {Record} inputOptions\n */\n var processInputOptions = function processInputOptions(inputOptions) {\n if (params.input === 'select') {\n populateSelectOptions(popup, formatInputOptions(inputOptions), params);\n } else if (params.input === 'radio') {\n populateRadioOptions(popup, formatInputOptions(inputOptions), params);\n }\n };\n if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n showLoading(getConfirmButton());\n asPromise(params.inputOptions).then(function (inputOptions) {\n instance.hideLoading();\n processInputOptions(inputOptions);\n });\n } else if (_typeof(params.inputOptions) === 'object') {\n processInputOptions(params.inputOptions);\n } else {\n error(\"Unexpected type of inputOptions! Expected object, Map or Promise, got \".concat(_typeof(params.inputOptions)));\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var handleInputValue = function handleInputValue(instance, params) {\n var input = instance.getInput();\n if (!input) {\n return;\n }\n hide(input);\n asPromise(params.inputValue).then(function (inputValue) {\n input.value = params.input === 'number' ? \"\".concat(parseFloat(inputValue) || 0) : \"\".concat(inputValue);\n show(input);\n input.focus();\n instance.hideLoading();\n })[\"catch\"](function (err) {\n error(\"Error in inputValue promise: \".concat(err));\n input.value = '';\n show(input);\n input.focus();\n instance.hideLoading();\n });\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {InputOptionFlattened[]} inputOptions\n * @param {SweetAlertOptions} params\n */\n function populateSelectOptions(popup, inputOptions, params) {\n var select = getDirectChildByClass(popup, swalClasses.select);\n if (!select) {\n return;\n }\n /**\n * @param {HTMLElement} parent\n * @param {string} optionLabel\n * @param {string} optionValue\n */\n var renderOption = function renderOption(parent, optionLabel, optionValue) {\n var option = document.createElement('option');\n option.value = optionValue;\n setInnerHtml(option, optionLabel);\n option.selected = isSelected(optionValue, params.inputValue);\n parent.appendChild(option);\n };\n inputOptions.forEach(function (inputOption) {\n var optionValue = inputOption[0];\n var optionLabel = inputOption[1];\n // spec:\n // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n // check whether this is a \n if (Array.isArray(optionLabel)) {\n // if it is an array, then it is an \n var optgroup = document.createElement('optgroup');\n optgroup.label = optionValue;\n optgroup.disabled = false; // not configurable for now\n select.appendChild(optgroup);\n optionLabel.forEach(function (o) {\n return renderOption(optgroup, o[1], o[0]);\n });\n } else {\n // case of