1(function(u){var B,V,_,v=function(){try{return!!Symbol.iterator}catch{return!1}}(),p=function(V){var _={next:function(){var H=V.shift();return{done:void 0===H,value:H}}};return v&&(_[Symbol.iterator]=function(){return _}),_},s=function(V){return encodeURIComponent(V).replace(/%20/g,"+")},j=function(V){return decodeURIComponent(String(V).replace(/\+/g," "))};(function(){try{var V=u.URLSearchParams;return"a=1"===new V("?a=1").toString()&&"function"==typeof V.prototype.set}catch{return!1}})()||((_=(V=function(H){var Y,q,it,vt,at;if(Object.defineProperty(this,"_entries",{writable:!0,value:{}}),"undefined"!=(Y=typeof H))if("string"===Y)""!==H&&this._fromString(H);else if(H instanceof V)q=this,H.forEach(function(J,ht){q.append(ht,J)});else{if(null===H||"object"!==Y)throw new TypeError("Unsupported input's type for URLSearchParams");if("[object Array]"===Object.prototype.toString.call(H))for(it=0;it<H.length;it++){if(vt=H[it],"[object Array]"!==Object.prototype.toString.call(vt)&&2===vt.length)throw new TypeError("Expected [string, any] as entry at index "+it+" of URLSearchParams's input");this.append(vt[0],vt[1])}else for(at in H)H.hasOwnProperty(at)&&this.append(at,H[at])}}).prototype).append=function(H,Y){H in this._entries?this._entries[H].push(String(Y)):this._entries[H]=[String(Y)]},_.delete=function(H){delete this._entries[H]},_.get=function(H){return H in this._entries?this._entries[H][0]:null},_.getAll=function(H){return H in this._entries?this._entries[H].slice(0):[]},_.has=function(H){return H in this._entries},_.set=function(H,Y){this._entries[H]=[String(Y)]},_.forEach=function(H,Y){var q,it,vt;for(it in this._entries)if(this._entries.hasOwnProperty(it))for(q=this._entries[it],vt=0;vt<q.length;vt++)H.call(Y,q[vt],it,this)},_.keys=function(){var H=[];return this.forEach(function(Y,q){H.push(q)}
1),p(H)},_.values=function(){var H=[];return this.forEach(function(Y){H.push(Y)}),p(H)},_.entries=function(){var H=[];return this.forEach(function(Y,q){H.push([q,Y])}),p(H)},v&&(_[Symbol.iterator]=_.entries),_.toString=function(){var H=[];return this.forEach(function(Y,q){H.push(s(q)+"="+s(Y))}),H.join("&")},u.URLSearchParams=V),"function"!=typeof(B=u.URLSearchParams.prototype).sort&&(B.sort=function(){var H,V=this,_=[];for(this.forEach(function(Y,q){_.push([q,Y]),V._entries||V.delete(q)}),_.sort(function(Y,q){return Y[0]<q[0]?-1:Y[0]>q[0]?1:0}),V._entries&&(V._entries={}),H=0;H<_.length;H++)this.append(_[H][0],_[H][1])}),"function"!=typeof B._fromString&&Object.defineProperty(B,"_fromString",{enumerable:!1,configurable:!1,writable:!1,value:function(V){var _,H,Y,q;if(this._entries)this._entries={};else for(_=[],this.forEach(function(it,vt){_.push(vt)}),q=0;q<_.length;q++)this.delete(_[q]);for(H=(V=V.replace(/^\?/,"")).split("&"),q=0;q<H.length;q++)Y=H[q].split("="),this.append(j(Y[0]),Y.length>1?j(Y[1]):"")}})})(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:this),function(u){var p,s,j,k;if(function(){try{var s=new u.URL("b","http://a");return s.pathname="c d","http://a/c%20d"===s.href&&s.searchParams}catch{return!1}}()||(s=u.URL,j=function(B,V){var _,H,Y,q,it;if("string"!=typeof B&&(B=String(B)),_=document,V&&(void 0===u.location||V!==u.location.href)){(H=(_=document.implementation.createHTMLDocument("")).createElement("base")).href=V,_.head.appendChild(H);try{if(0!==H.href.indexOf(V))throw new Error(H.href)}catch(m){throw new Error("URL unable to set base "+V+" due to "+m)}}if((Y=_.createElement("a")).href=B,H&&(_.body.appendChild(Y),Y.href=Y.href),(q
1=_.createElement("input")).type="url",q.value=B,":"===Y.protocol||!/:/.test(Y.href)||!q.checkValidity()&&!V)throw new TypeError("Invalid URL");Object.defineProperty(this,"_anchorElement",{value:Y});var vt=new u.URLSearchParams(this.search),at=!0,J=!0,ht=this;["append","delete","set"].forEach(function(m){var M=vt[m];vt[m]=function(){M.apply(vt,arguments),at&&(J=!1,ht.search=vt.toString(),J=!0)}}),Object.defineProperty(this,"searchParams",{value:vt,enumerable:!0}),it=void 0,Object.defineProperty(this,"_updateSearchParams",{enumerable:!1,configurable:!1,writable:!1,value:function(){this.search!==it&&(it=this.search,J&&(at=!1,this.searchParams._fromString(this.search),at=!0))}})},k=j.prototype,["hash","host","hostname","port","protocol"].forEach(function(B){!function(B){Object.defineProperty(k,B,{get:function(){return this._anchorElement[B]},set:function(V){this._anchorElement[B]=V},enumerable:!0})}(B)}),Object.defineProperty(k,"search",{get:function(){return this._anchorElement.search},set:function(B){this._anchorElement.search=B,this._updateSearchParams()},enumerable:!0}),Object.defineProperties(k,{toString:{get:function(){var B=this;return function(){return B.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(B){this._anchorElement.href=B,this._updateSearchParams()},enumerable:!0},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(B){this._anchorElement.pathname=B},enumerable:!0},origin:{get:function(){return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(this._anchorElement.port!={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol]&&""!==this._anchorElement.port?":"+this._anchorElement.port:"")},enumerable:!0},password:{get:function(){return""},set:function(){},enumerable:!0},username:{get:function(){return""},set:function(){},enumerable:!0}}),j.createObjectURL=function(){return s.createObjectURL.apply(s,arguments)},j.revokeObjectURL=function(){return s.revokeObjectURL.apply(s,arguments)},u.URL=j),void 0!==u.location&&!("origin"in u.location)){p=function(){return u.location.protocol+"//"+u.location.hostname+(u.location.port?":"+u.location.port:"")};try{Object.defineProperty(u.location,"origin",{get:p,enumerable:!0})}catch{setInterval(function(){u.location.origin=p()},100)}}}(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:this),function(){var D;window.tableau=window.tableau||{},(D=window.tableau)._apiScripts=D._apiScripts||[],D._apiScripts.push(function v(){for(var p,s,j=document.getElementsByTagName("script"),k=j.length-1;k>=0&&!/viz_v1\.js/.test((p=j[k]).src);k-=1);
1return(s=new RegExp(".*?[^/:]/").exec(p.src))&&(-1!==s[0].toLowerCase().indexOf("http://")||-1!==s[0].toLowerCase().indexOf("https://"))||(s=new RegExp(".*?[^/:]/").exec(window.location.href)),s?s[0].toLowerCase():""}()),window.tableau._apiLoaded||(window.tableau._apiLoaded=!0,function(){function D(){return typeof pageXOffset<"u"?window.pageXOffset:document.documentElement.scrollLeft}function v(){return typeof pageYOffset<"u"?window.pageYOffset:document.documentElement.scrollTop}function p(et){return null==et}function s(et){return null==et||0===et.length}function j(){return!p(window.postMessage)}function k(et,ct){return et&&et.nodeType===Me&&et.tagName.toLowerCase()===ct.toLowerCase()}function b(et,ct){return et&&(" "+et.className+" ").replace(/[\n\t\r]/g," ").indexOf(" "+ct+" ")>-1}function V(et){var ct,Vt,Rt,ne;for(ct=et||"",Vt=0,Rt=(ne=[[/&/g,"&"],[/</g,"<"],[/>/g,">"],[/"/g,"""],[/'/g,"'"],[/\//g,"/"]]).length;Vt<Rt;Vt++)ct=ct.replace(ne[Vt][0],ne[Vt][1]);return ct}function _(et,ct){return window.getComputedStyle?window.getComputedStyle(et,ct):et.currentStyle}function H(et,ct){return s(et)?ct:!s(et.match(/^(yes|y|true|t|1)$/i))}function vt(et,ct){var Vt,ne,bt,kt,de,en,Rt=et.childNodes,Wt="";for(ct=ct||{},ne=0,bt=Rt.length;ne<bt;ne++)k(Vt=Rt[ne],"param")&&Vt.name?(de=Vt.value?Vt.value:null,"name"===(kt=Vt.name)?Wt=de:"filter"===kt?(ct.filter=ct.filter||[],ct.filter.push(de)):(ct[kt]=de,"mobile"===kt&&H(de,!1)&&(Qt=!0))):Vt.childNodes&&Vt.childNodes.length>0&&!k(Vt,"object")&&(en=vt(Vt,ct),Wt=s(Wt)?en:Wt);return Wt}function at(et){var ct,Vt,Rt,ne;return Rt=s(et.host_url)?s(et.serverRoot)?tableau._apiScripts[0]:et.serverRoot:decodeURIComponent(et.host_url),ct=new RegExp(".*//"),ne=new RegExp("https?://[-A-Za-z0-9]*public[-A-Za-z0-9]*\\.tableau"),(Vt=ct.exec(window.location.href)&&ct.exec(window.location.href)[0])&&-1===Vt.indexOf("file://")&&-1===Rt.indexOf(Vt)&&null!==Rt.match(ne)&&(Rt=Rt.replace(ct,Vt)),Rt}function J(et,ct){for(var Vt=0;void 0!==et[Vt];Vt+=1)if(et[Vt]===ct)return!0;return!1}function m(et){var ct=et.getBoundingClientRect(),Vt=_(et),Rt=parseInt(Vt.paddingLeft,10)||0,ne=parseInt(Vt.paddingRight,10)||0,bt=parseInt(Vt.paddingTop,10)||0,kt=parseInt(Vt.paddingBottom,10)||0,de=parseInt(Vt.borderLeftWidth,10)||0,Wt=parseInt(Vt.borderTopWidth,10)||0;return{left:ct.left+Rt+de+D(),top:ct.top+bt+Wt+v(),width:et.clientWidth-(Rt+ne),height:et.clientHeight-(bt+kt)}}function M(et,ct){var Vt=Math.max(et.left,ct.left),Rt=Math.max(et.top,ct.top),ne=Math.min(et.left+et.width,ct.left+ct.width),bt=Math.min(et.top+et.height,ct.top+ct.height);return ne<=Vt||bt<=Rt?{left:0,top:0,width:0,height:0}:{left:Vt,top:Rt,width:ne-Vt,height:bt-Rt}}function P(et,ct){var Vt=tableau.vizs[et]._loadOrder,Rt=tableau.vizs[ct]._loadOrder;return Vt<Rt?-1:Vt===Rt?0:1}function Q(et){var ct=et>-1?tableau.vizs[Mt[et]]:null;ct&&ct._onLoaded()}function U(et){var ct,Vt;et===Ee&&(Vt=Ee+1,(ct=tableau.vizs[Mt[Vt]])&&(Ee=Vt,ct.load(),window.postMessage&&setTimeout(function(){U(Ee)},3e3)))}function dt(){var et;Le?(et=tableau.vizs[Mt[Ee]])&&"complete"===et._iframe.readyState&&(Q(Ee),U(Ee)):(Q(Ee),U(Ee))}function wt(){setTimeout(dt,3e3)}function W(et){var ct,Vt,Rt,ne,bt;if(et.data&&("string"==typeof et.data||et.data instanceof String))if("tableau.completed"===(ne=(Rt=et.data.split(","))[0])||"completed"===ne){if(bt=parseInt(Rt[1],10),isNaN(bt))for(ct=0;ct<=Ee;ct++)(Vt=tableau.vizs[Mt[ct]])&&Vt._hideLoadIndicators();Q(bt),U(bt)}else if("tableau.loadIndicatorsLoaded"===ne)(Vt=tableau.vizs[Mt[Ee]])&&Vt._hideLoadIndicators();else if("layoutInfoReq"===ne)for(ct=0;ct<=Ee;ct++)(Vt=tableau.vizs[Mt[ct]])&&Vt._sendVisibleRect();else"tableau.listening"===ne?(Vt=tableau.vizs[Mt[Ee]])&&Vt._enableVisibleRectCommunication():"tableau.staticImageRedirect"===ne&&(Vt=(bt=parseInt(Rt[1],10))>-1?tableau.vizs[Mt[bt]]:null)&&Vt._hideLoadIndicators()}function Ae(et){this._objectElement=et}function rn(){var et,ct,Vt,Rt,ne,bt,kt=[];if(Rt=function ge(){for(var et,ct=document.getElementsByTagName("object"),Vt=[],Rt=0,ne=ct.length;Rt<ne;Rt++)b(et=ct[Rt],"tableauViz")&&!J(Ut,et)&&(Ut.push(et),Vt.push(et));return Vt}(),0!==Rt.length){for(function Cn(){for(var et=document.getElementById("tableau_hide_this");et;)et.parentNode.removeChild(et),et=document.getElementById("tableau_hide_this")}(),et=0,ct=Rt.length;et<ct;et++)bt=vt(Vt=Rt[et],ne={filter:[],ticket:"",path:""}),ne.width=parseInt(_(Vt,null).width,10),isNaN(ne.width)&&delete ne.width,ne.height=parseInt(_(Vt,null).height,10),isNaN(ne.height)&&delete ne.height,kt.push({name:bt,objectElement:Vt,params:ne});for(function We(et){for(var ct=window.tableau._apiScripts,Vt=0,Rt=Math.min(et.length,ct.length);Vt<Rt;Vt++)et[Vt].params.serverRoot=ct[Vt]}(kt),et=0,ct=kt.length;et<ct;et++)tableau.createViz(kt[et].name,kt[et].objectElement,kt[et].params);Mt.sort(P),U(Ee)}}var Qt,Me=1,Le=navigator.userAgent.indexOf("MSIE")>-1&&!window.opera,Ee=-1,Ut=[],Mt=[];Ae._instanceCounter=0,Ae.prototype.getRootElement=function(){return this._ensurePlaceholderDiv()?this._placeholderDiv:null},Ae.prototype.adjustSlopInWidth=function(et,ct){return ct-4},Ae.prototype.adjustSlopInHeight=function(et,ct){var Vt=4;return H(et.tabs,!1)&&(Vt+=3),!!H(et.toolbar,!0)&&(Vt+=5),ct-Vt},Ae.prototype.adjustHeightForPublic=function(et,ct){return!et.embed_code_version||et.embed_code_version<3?ct-33:ct},Ae.prototype.sizeIframeToObjectElement=function(et){var Rt,ne,ct=this._objectElement,Vt={};p(ct)||(vt(ct,Vt),Rt=_(ct,null).width,ne=_(ct,null).height,-1===Rt.indexOf("%")&&-1===ne.indexOf("%")&&(
1Rt=parseInt(Rt,10),ne=parseInt(ne,10),Vt.embed_code_version||(Rt=this.adjustSlopInWidth(Vt,Rt),ne=this.adjustSlopInHeight(Vt,ne)),Rt+="px",ne+="px"),et.style.width=Rt,et.style.height=ne)},Ae.prototype.sizeToObjectElement=function(et){var Vt,Rt,ct=this._objectElement;p(ct)||(Vt=_(ct,null).width,Rt=_(ct,null).height,et.style.width=Vt,et.style.height=Rt)};const It=function(et){return"number"==typeof et?et:"string"==typeof et&&+et.substr(0,et.indexOf("px"))||0},mt=function(et,ct,Vt){var Rt=et;return Vt>0&&Rt>Vt?Rt=Vt:Rt<ct&&(Rt=ct),Rt};Ae.prototype.determinePlaceholderSize=function(et,ct){var Vt=et.clientWidth,Rt=et.clientHeight;Vt=Math.round(It(Vt)),Rt=Math.round(It(Rt));var Wt=function(et,ct,Vt,Rt,ne,bt){return ct>0&&et>0&&(0==Rt||0==Vt)?ne>=ct&&bt>=et?[ne,bt]:[ct,et]:[mt(ne,ct,Rt),mt(bt,et,Vt)]}(Math.round(It(ct.style.minHeight)),Math.round(It(ct.style.minWidth)),Math.round(It(ct.style.maxHeight)),Math.round(It(ct.style.maxWidth)),Vt,Rt);return{placeholderWidth:Wt[0],placeholderHeight:Wt[1]}},Ae.prototype.createLoadingFeedback=function(et,ct){var Vt,Rt,ne,de,Wt,be,qe,kn,ur,en=H(ct.display_spinner,!0);if(de=function G(){return document.baseURI!==document.location.href}(),!0!==en||de||(ct.display_spinner="no"),this._ensurePlaceholderDiv()){this.sizeToObjectElement(this._placeholderDiv);try{if(qe=(kn=this.determinePlaceholderSize(this._placeholderDiv,this._objectElement)).placeholderHeight,"number"!=typeof(be=kn.placeholderWidth)||isNaN(be))throw"Invalid width- "+be;if("number"!=typeof qe||isNaN(qe))throw"Invalid height- "+qe}catch(ee){console.error("Failed to get iframe size: "+ee),be=0,qe=0}if((Rt=this._placeholderDiv.style).position="relative",Rt.overflow="hidden",Rt.display="none",Vt=['<div style="position:absolute;top:0;left:0;right:0;bottom:0;border:0;padding:0;margin:0">'],Wt=Ae._instanceCounter++,de||Vt.push('<div style="top:100px;left:0;right:0;position:absolute;z-index:991;box-shadow:none;display:flex;justify-content:center;"><style>#tableau-svg-spinner-container-%instId%{width:65px;height:65px;border-radius:10px;display:flex;justify-content:center;align-items:center}#tableau-svg-spinner-%instId%{width:50px;height:50px;-webkit-animation:tableau-svg-spinner-animation 1s linear infinite;animation:tableau-svg-spinner-animation 1s linear infinite}@-webkit-keyframes tableau-svg-spinner-animation{100%{-webkit-transform:rotate(360deg)}}@keyframes tableau-svg-spinner-animation{100%{transform:rotate(360deg)}}</style><div id="tableau-svg-spinner-container-%instId%"><svg id="tableau-svg-spinner-%instId%" viewBox="0 0 50 50"><style>#tail{fill:url(#tableau-fade-%instId%)}#head{fill:#616570}stop{stop-color:#616570}</style><linearGradient id="tableau-fade-%instId%" x2="50" y1="25" y2="25" gradientUnits="userSpaceOnUse"><stop offset="0" stop-opacity="0" /><stop offset=".15" stop-opacity=".04" /><stop offset=".3" stop-opacity=".16" /><stop offset=".45" stop-opacity=".36" /><stop offset=".61" stop-opacity=".64" /><stop offset=".76" /></linearGradient><path id="head" d="M0 25a25 25 0 1 0 50 0h-3.9a21.1 21.1 0 1 1-42.2 0" /><path id="tail" d="M50 25a25 25 0 0 0-50 0h3.9a21.1 21.1 0 1 1 42.2 0" /></svg></div></div>'.replace(/%instId%/g,Wt)),H(ct.display_overlay,!0)&&Vt.push("<div style='position:absolute;top:0;left:0;right:0;bottom:0;z-index:990;background-color:#EBEBEB;opacity:.24'></div>"),H(ct.display_static_image,!0)&&!s(ct.static_image)){let ee=function(Re,Be){var Lt,Ht,Jt;try{for(Ht in Lt=new URL(Re),Be)if(Be.hasOwnProperty(Ht)){if("number"!=typeof(Jt=Be[Ht])||isNaN(Jt)){console.error("Invalid query parameter- "+Ht+":"+Jt);continue}Lt.searchParams.append(encodeURIComponent(Ht),encodeURIComponent(Jt))}}catch(Ie){return console.error("Unable to append params to the url : "+Ie),Re}return Lt.toString()};Vt.push("<style>#tableau-svg-spinner-container-%instId%{border-radius:12px;background:rgba(255,255,255,.6);</style>".replace(/%instId%/g,Wt)),ct.display_static_image="no",Vt.push('<div style="position: absolute; top: 0; left: 0; right: 0; bottom: 0; '),Vt.push("background: transparent url('"),ur={height:qe,width:be,deviceScaleFactor:window.devicePixelRatio},Vt.push(V(ee(ct.static_image,ur))),Vt.push("') no-repeat scroll 0 0; background-size: "+V(ur.width+"px ")+V(ur.height+"px")+"; box-shadow: none; left:0px; top:"),Vt.push("1px"),Vt.push('"></div>')}return Vt.push("</div>"),(ne=document.createElement("div")).innerHTML=Vt.join(""),this._glassPaneElement=ne.firstChild,this._placeholderDiv.appendChild(this._glassPaneElement),ne.innerHTML="",ne=null,this._createAndAppendIframe()}},Ae.prototype.show=function(){this._placeholderDiv&&(this._placeholderDiv.style.display="block")},Ae.prototype.dispose=function(){var ct,Vt;this._glassPaneElement&&(this._glassPaneElement.style.transition="150ms opacity",this._glassPaneElement.style.opacity=0,ct=function(Rt){Rt.innerHTML="",Rt.parentNode.removeChild(Rt),Rt=null},Vt=this._glassPaneElement,window.setTimeout(function(){ct(Vt)},150)),this._objectElement&&(function ht(et,ct){for(var Vt=0;void 0!==et[Vt];Vt+=1)if(et[Vt]===ct)return et.splice(Vt,1),!0}(Ut,this._objectElement),this._objectElement.parentNode.removeChild(this._objectElement),this._objectElement=null)},Ae.prototype._ensurePlaceholderDiv=function(){var et;
1return!p(this._placeholderDiv)||!p(this._objectElement)&&((et=function B(et,ct,Vt){var Rt=et?et.parentNode:null;for(Vt=Vt||document.body;Rt;){if(b(Rt,ct))return Rt;Rt=Rt===Vt?null:Rt.parentNode}return Rt}(this._objectElement,"tableauPlaceholder"))||((et=document.createElement("div")).className="tableauPlaceholder",this._objectElement.parentNode.insertBefore(et,this._objectElement),et.appendChild(this._objectElement),this._objectElement.style.display="none"),this._placeholderDiv=et,!0)},Ae.prototype._createAndAppendIframe=function(){var et,ct,Vt,Rt,ne,bt,de,Wt,en,be;if(!p(this._objectElement)){for(et=this._objectElement.attributes,(Rt=document.createElement("iframe")).frameBorder="0",Rt.marginHeight="0",Rt.marginWidth="0",en=(Wt={en:"Data Visualization","en-GB":"Data Visualisation",fr:"Visualisation de donn\xc3\xa9es",es:"Visualizaci\xc3\xb3n de datos",it:"Visualizzazione dati",pt:"Visualiza\xc3\xa7\xc3\xa3o de dados",ja:"\xe3\u0192\u2021\xe3\u0192\xbc\xe3\u201a\xbf \xe3\u0192\u201c\xe3\u201a\xb8\xe3\u0192\xa5\xe3\u201a\xa2\xe3\u0192\xa9\xe3\u201a\xa4\xe3\u201a\xbc\xe3\u0192\xbc\xe3\u201a\xb7\xe3\u0192\xa7\xe3\u0192\xb3",de:"Datenvisualisierung",ko:"\xeb\x8d\xb0\xec\x9d\xb4\xed\u201e\xb0 \xeb\xb9\u201e\xec\xa3\xbc\xec\u2013\xbc\xeb\xa6\xac\xec \u0153\xec\x9d\xb4\xec\u2026\u02dc","zh-CN":"\xe6\u2022\xb0\xe6\x8d\xae\xe5\x8f\xaf\xe8\xa7\u2020\xe5\u0152\u2013","zh-TW":"\xe8\xb3\u2021\xe6\u2013\u2122\xe5\x8f\xaf\xe8\xa6\u2013\xe5\u0152\u2013"})[be=window.navigator.language]||Wt[be.substr(0,2)]||Wt.en,Rt.setAttribute("title",en),Rt.setAttribute("allowTransparency","true"),Rt.setAttribute("allowFullScreen","true"),ct=0,Vt=et.length;ct<Vt;ct++)et[ct].specified&&Rt.setAttribute(et[ct].name,et[ct].value);return Rt.style.cssText=this._objectElement.style.cssText,Rt.style.margin="0px",Rt.style.padding="0px",Rt.style.border="none",this.sizeIframeToObjectElement(Rt),bt=(de=navigator.userAgent).indexOf("WebKit")>=0,ne=de.indexOf("Chrome")>=0,(de.indexOf("Safari")>=0||bt&&!ne)&&Rt.addEventListener("mousewheel",function(){}),this._ensurePlaceholderDiv()&&this._placeholderDiv.appendChild(Rt),Rt}},window.tableau.Viz=function(et,ct,Vt){this._name=et,this._iframe=ct,this._filterArgs="",this._filterOpts=function Y(et){var ct,Vt,Rt=[];if(s(et.filter))return"";for(ct=0,Vt=et.filter.length;ct<Vt;ct++)Rt.push("&"+et.filter[ct]);return Rt.join("")}(Vt),this._serverRoot=at(Vt),this._baseUrl=function it(et,ct,Vt){var Rt,ne,bt,kt=[ct];for(Rt in(bt=Vt.site_root?Vt.site_root:"").length>0&&(bt=function q(et){return"/"!==(et=et.replace(/^\//,"")).charAt(et.length)&&(et+="/"),et}(bt)),s(Vt.path)?s(Vt.ticket)?kt.push(bt+"views/"+et):kt.push("trusted/"+Vt.ticket+"/"+bt+"views/"+et):kt.push(Vt.path),kt.push("?:embed=y"),kt.push("&:showVizHome=no"),ne={"load-order":1,width:1,height:1,embed:1,filter:1,path:1,ticket:1,serverRoot:1,static_image:1,site_prefix:1,site_root:1,bootstrapWhenNotified:1},Vt)Vt.hasOwnProperty(Rt)&&void 0===ne[Rt]&&kt.push("&:"+Rt+"="+Vt[Rt]);return kt.join("")}(this._name,this._serverRoot,Vt),this._loadOrder=Vt["load-order"]?parseInt(Vt["load-order"],10):0,this._filter={}},window.tableau.vizs=[],window.tableau.createViz=function(et,ct,Vt){var Rt,ne,bt,kt;bt=at(Vt),Rt=(ne=new Ae(ct)).createLoadingFeedback(bt,Vt),ne.show(),(kt=new tableau.Viz(et,Rt,Vt))._loadFeedback=ne,kt.show(),Mt.push(this.vizs.length),this.vizs.push(kt),s(et)||(this.vizs[et]=kt),window.postMessage||(Le?Rt.onreadystatechange=wt:Rt.onload=wt)},window.tableau.Viz.prototype.load=function(){var ct=window.top===window.self?"":"&:increment_view_count=no";this._iframe.src=this._baseUrl+this._filterOpts+"&:loadOrderID="+Ee+ct},window.tableau.Viz.prototype.show=function(){this._iframe.style.display="block"},window.tableau.Viz.prototype.hide=function(){this._iframe.style.display="none"},window.tableau.Viz.prototype.refresh=function(){this._iframe.src=this._baseUrl+this._filterOpts+this._filterArgs+"&:refresh=true"},window.tableau.Viz.prototype.revert=function(){this._iframe.src=this._baseUrl+"&:revert=all",this._filterArgs="",this._filter={}},window.tableau.Viz.prototype.filter=function(et){var ct;if(p(et))this.revert();else{for(ct in et)this._filter[ct]=et[ct];for(ct in this._filterArgs="",et)this._filterArgs+="&"+encodeURIComponent(ct)+"=",this._filterArgs+="str
1ing"==typeof et[ct]?encodeURIComponent(et[ct]):encodeURIComponent(et[ct].join(","));this._iframe.src=this._baseUrl+this._filterOpts+this._filterArgs}},window.tableau.Viz.prototype._sendVisibleRect=function(){var et,ct,Vt;j()&&this._iframe&&this._iframe.contentWindow&&(et=function x(et){for(var ct,Rt=m(et),ne=et.parentElement;ne&&ne.parentElement;ne=ne.parentElement)("auto"===(ct=_(ne).overflow)||"scroll"===ct||"hidden"===ct)&&(Rt=M(Rt,m(ne)));return M(Rt,function g(){var et;return(et=function N(){return window.visualViewport?{left:window.visualViewport.pageLeft,top:window.visualViewport.pageTop,width:window.visualViewport.width,height:window.visualViewport.height}:null}())||(et=m(document.documentElement),"BackCompat"===document.compatMode&&(et.height=document.body.clientHeight-et.left,et.width=document.body.clientWidth-et.top),et.left+=D(),et.top+=v(),et)}())}(this._iframe),ct=m(this._iframe),Vt=["layoutInfoResp",et.left-ct.left,et.top-ct.top,et.width,et.height].join(","),this._iframe.contentWindow.postMessage(Vt,"*"))},window.tableau.Viz.prototype._enableVisibleRectCommunication=function(){j()&&this._iframe&&this._iframe.contentWindow&&this._iframe.contentWindow.postMessage("tableau.enableVisibleRectCommunication","*")},window.tableau.Viz.prototype._onLoaded=function(){this._hideLoadIndicators(),this._enableVisibleRectCommunication()},window.tableau.Viz.prototype._hideLoadIndicators=function(){this._loadFeedback&&(this._loadFeedback.dispose(),this._loadFeedback=null,delete this._loadFeedback)},document.addEventListener?(document.addEventListener("DOMContentLoaded",rn,!1),document.addEventListener("message",W,!1),window.addEventListener("load",rn,!1),window.addEventListener("message",W,!1)):document.attachEvent?(document.attachEvent("onreadystatechange",rn),document.attachEvent("onmessage",W),window.attachEvent("onload",rn),window.attachEvent("onmessage",W)):(window.onload=rn,window.onmessage=W),(function te(){var et=navigator.userAgent;return-1!==et.indexOf("iPad")||-1!==et.indexOf("Android")||-1!==et.indexOf("AppleWebKit")&&-1!==et.indexOf("Mobile")}()||Qt)&&function ae(){function et(Rt,ne){var de;de=document.documentElement.clientWidth/window.innerWidth,Rt.postMessage("sf,"+ne+","+de+",0,0","*")}var Vt=!1;window.addEventListener&&window.addEventListener("message",function ct(Rt){if("string"==typeof Rt.data||Rt.data instanceof String)for(var kt,ne=Rt.data.split(","),bt=0;bt<ne.length;)Vt||"tableau.completed"!==ne[bt]&&"completed"!==ne[bt]||(Vt=!0,et(Rt.source,-1)),"sf?"===ne[bt]&&(kt=ne[++bt],et(Rt.source,kt)),++bt},!1)}(),tableau._createNewVizesAndStartLoading=rn}()),"complete"===document.readyState&&tableau._createNewVizesAndStartLoading()}(),(()=>{"use strict";var u,D={},v={};function p(s){var j=v[s];if(void 0!==j)return j.exports;var k=v[s]={exports:{}};return D[s](k,k.exports,p),k.exports}p.m=D,u=[],p.O=(s,j,k,b)=>{if(!j){var B=1/0;for(Y=0;Y<u.length;Y++){for(var[j,k,b]=u[Y],V=!0,_=0;_<j.length;_++)(!1&b||B>=b)&&Object.keys(p.O).every(at=>p.O[at](j[_]))?j.splice(_--,1):(V=!1,b<B&&(B=b));if(V){u.splice(Y--,1);var H=k();void 0!==H&&(s=H)}}return s}b=b||0;for(var Y=u.length;Y>0&&u[Y-1][2]>b;Y--)u[Y]=u[Y-1];u[Y]=[j,k,b]},p.d=(s,j)=>{for(var k in j)p.o(j,k)&&!p.o(s,k)&&Object.defineProperty(s,k,{enumerable:!0,get:j[k]})},p.o=(s,j)=>Object.prototype.hasOwnProperty.call(s,j),p.r=s=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})},(()=>{var s={666:0};p.O.j=b=>0===s[b];var j=(b,B)=>{var V,_,[H,Y,q]=B,it=0;if(H.some(at=>0!==s[at])){for(V in Y)p.o(Y,V)&&(p.m[V]=Y[V]);if(q)var vt=q(p)}for(b&&b(B);it<H.length;it++)p.o(s,_=H[it])&&s[_]&&s[_][0](),s[H[it]]=0;return p.O(vt)},k=self.webpackChunkwidgets=self.webpackChunkwidgets||[];k.forEach(j.bind(null,0)),k.push=j.bind(null,k.push.bind(k))})()})(),(self.webpackChunkwidgets=self.webpackChunkwidgets||[]).push([[429],{4911:(u,D,v)=>{const p=typeof globalThis<"u"&&globalThis,s=typeof window<"u"&&window,j=typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self,k=p||typeof global<"u"&&global||s||j,b=function(V,..._){if(b.translate){const Y=b.translate(V,_);V=Y[0],_=Y[1]}let H=B(V[0],V.raw[0]);for(let Y=1;Y<V.length;Y++)H+=_[Y-1]+B(V[Y],V.raw[Y]);return H};function B(V,_){return":"===_.charAt(0)?V.substring(function(Y,q){for(let it=1,vt=1;it<Y.length;it++,vt++)if("\\"===q[vt])vt++;else if(":"===Y[it])return it;throw new Error(`Unterminated $localize metadata block in "${q}".`)}(V,_)+1):V}k.$localize=b,v(8583)},8583:()=>{!function(ee){const Se=ee.performance;function Re(re){Se&&Se.mark&&Se.mark(re)}function Be(re,fe){Se&&Se.measure&&Se.measure(re,fe)}Re("Zone");const Lt=ee.__Zone_symbol_prefix||"__zone_symbol__";function Ht(re){return Lt+re}const Jt=!0===ee[Ht("forceDuplicateZoneCheck")];if(ee.Zone){if(Jt||"function"!=typeof ee.Zone.__symbol__)throw new Error("Zone already loaded.");return ee.Zone}let Ie=(()=>{class re{constructor(Ot,ie){this._parent=Ot,this._name=ie?ie.name||"unnamed":"<root>",this._properties=ie&&ie.properties||{},this._zoneDelegate=new Te(this,this._parent&&this._parent._zoneDelegate,ie)}static assertZonePatched(){if(ee.Promise!==cn.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let Ot=re.current;for(;Ot.parent;)Ot=Ot.parent;return Ot}static get current(){return zn.zone}static get currentTask(){return sn}static __load_patch(Ot,ie,je=!1){if(cn.hasOwnProperty(Ot)){if(!je&&Jt)throw Error("Already loaded patch: "+Ot)}else if(!ee["__Zone_disable_"+Ot]){const Ye="Zone:"+Ot;Re(Ye),cn[Ot]=ie(ee,re,Qn),Be(Ye,Ye)}}get parent(){return this._parent}get name(){return this._name}get(Ot){const ie=this.getZoneWith(Ot);if(ie)return ie._properties[Ot]}getZoneWith(Ot){let ie=this;for(;ie;){if(ie._properties.hasOwnProperty(Ot))return ie;ie=ie._parent}return null}fork(Ot){if(!Ot)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,Ot)}wrap(Ot,ie){if("function"!=typeof Ot)throw new Error("Expecting function got: "+Ot);const je=this._zoneDelegate.intercept(this,Ot,ie),Ye=this;return function(){return Ye.runGuarded(je,this,arguments,ie)}}run(Ot,ie,je,Ye){zn={parent:zn,zone:this};try{return this._zoneDelegate.invoke(this,Ot,ie,je,Ye)}finally{zn=zn.parent}}runGuarded(Ot,ie=null,je,Ye){zn={parent:zn,zone:this};try{try{return this._zoneDelegate.invoke(this,Ot,ie,je,Ye)}catch(On){if(this._zoneDelegate.handleError(this,On))throw On}}finally{zn=zn.parent}}runTask(Ot,ie,je){if(Ot.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(Ot.zone||le).name+"; Execution: "+this.name+")");if(Ot.state===pe&&(Ot.type===Zn||Ot.type===Nn))return;const Ye=Ot.state!=Kn;Ye&&Ot._transitionTo(Kn,Ze),Ot.runCount++;const On=sn;sn=Ot,zn={parent:zn,zone:this};try{Ot.type==Nn&&Ot.data&&!Ot.data.isPeriodic&&(Ot.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,Ot,ie,je)}catch(In){if(this._zoneDelegate.handleError(this,In))throw In}}finally{Ot.state!==pe&&Ot.state!==fn&&(Ot.type==Zn||Ot.data&&Ot.data.isPeriodic?Ye&&Ot._transitionTo(Ze,Kn):(Ot.runCount=0,this._updateTaskCount(Ot,-1),Ye&&Ot._transitionTo(pe,Kn,pe))),zn=zn.parent,sn=On}}scheduleTask(Ot){if(Ot.zone&&Ot.zone!==this){let je=this;for(;je;){if(je===Ot.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${Ot.zone.name}`);je=je.parent}}Ot._transitionTo(dn,pe);const ie=[];Ot._zoneDelegates=ie,Ot._zone=this;try{Ot=this._zoneDelegate.scheduleTask(this,Ot)}catch(je){throw Ot._transitionTo(fn,dn,pe),this._zoneDelegate.handleError(this,je),je}return Ot._zoneDelegates===ie&&this._updateTaskCount(Ot,1),Ot.state==dn&&Ot._transitionTo(Ze,dn),Ot}scheduleMicroTask(Ot,ie,je,Ye){return this.scheduleTask(new nn(on,Ot,ie,je,Ye,void 0))}scheduleMacroTask(Ot,ie,je,Ye,On){return this.scheduleTask(new nn(Nn,Ot,ie,je,Ye,On))}scheduleEventTask(Ot,ie,je,Ye,On){return this.scheduleTask(new nn(Zn,Ot,ie,je,Ye,On))}cancelTask(Ot){if(Ot.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(Ot.zone||le).name+"; Execution: "+this.name+")");Ot._transitionTo(un,Ze,Kn);try{this._zoneDelegate.cancelTask(this,Ot)}catch(ie){throw Ot._transitionTo(fn,un),this._zoneDelegate.handleError(this,ie),ie}return this._updateTaskCount(Ot,-1),Ot._transitionTo(pe,un),Ot.runCount=0,Ot}_updateTaskCount(Ot,ie){const je=Ot._zoneDelegates;-1==ie&&(Ot._zoneDelegates=null);for(let Ye=0;Ye<je.length;Ye++)je[Ye]._updateTaskCount(Ot.type,ie)}}return re.__symbol__=Ht,re})();const Je={name:"",onHasTask:(re,fe,Ot,ie)=>re.hasTask(Ot,ie),onScheduleTask:(re,fe,Ot,ie)=>re.scheduleTask(Ot,ie),onInvokeTask:(re,fe,Ot,ie,je,Ye)=>re.invokeTask(Ot,ie,je,Ye),onCancelTask:(re,fe,Ot,ie)=>re.cancelTask(Ot,ie)};class Te{constructor(fe,Ot,ie){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=fe,this._parentDelegate=Ot,this._forkZS=ie&&(ie&&ie.onFork?ie:Ot._forkZS),this._forkDlgt=ie&&(ie.onFork?Ot:Ot._forkDlgt),this._forkCurrZone=ie&&(ie.onFork?this.zone:Ot._forkCurrZone),this._interceptZS=ie&&(ie.onIntercept?ie:Ot._interceptZS),this._interceptDlgt=ie&&(ie.onIntercept?Ot:Ot._interceptDlgt),this._interceptCurrZone=ie&&(ie.onIntercept?this.zone:Ot._interceptCurrZone),this._invokeZS=ie&&(ie.onInvoke?ie:Ot._invokeZS),this._invokeDlgt=ie&&(ie.onInvoke?Ot:Ot._invokeDlgt),this._invokeCurrZone=ie&&(ie.onInvoke?this.zone:Ot._invokeCurrZone),this._handleErrorZS=ie&&(ie.onHandleError?ie:Ot._handleErrorZS),this._handleErrorDlgt=ie&&(ie.onHandleError?Ot:Ot._handleErrorDlgt),this._handleErrorCurrZone=ie&&(ie.onHandleError?this.zone:Ot._handleErrorCurrZone),this._scheduleTaskZS=ie&&(ie.onScheduleTask?ie:Ot._scheduleTaskZS),this._scheduleTaskDlgt=ie&&(ie.onScheduleTask?Ot:Ot._scheduleTaskDlgt),this._scheduleTaskCurrZone=ie&&(ie.onScheduleTask?this.zone:Ot._scheduleTaskCurrZone),this._invokeTaskZS=ie&&(ie.onInvokeTask?ie:Ot._invokeTaskZS),this._invokeTaskDlgt=ie&&(ie.onInvokeTask?Ot:Ot._invokeTaskDlgt),this._invokeTaskCurrZone=ie&&(ie.onInvokeTask?this.zone:Ot._invokeTaskCurrZone),this._cancelTaskZS=ie&&(ie.onCancelTask?ie:Ot._cancelTaskZS),this._cancelTaskDlgt=ie&&(ie.onCancelTask?Ot:Ot._cancelTaskDlgt),this._cancelTaskCurrZone=ie&&(ie.onCancelTask?this.zone:Ot._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const je=ie&&ie.onHasTask;(je||Ot&&Ot._hasTaskZS)&&(this._hasTaskZS=je?ie:Je,this._hasTaskDlgt=Ot,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=fe,ie.onScheduleTask||(this._scheduleTaskZS=Je,this._scheduleTaskDlgt=Ot,this._scheduleTaskCurrZone=this.zone),ie.onInvokeTask||(this._invokeTaskZS=Je,this._invokeTaskDlgt=Ot,this._invokeTaskCurrZone=this.zone),ie.onCancelTask||(this._cancelTaskZS=Je,this._cancelTaskDlgt=Ot,this._cancelTaskCurrZone=this.zone))}fork(fe,Ot){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,fe,Ot):new Ie(fe,Ot)}intercept(fe,Ot,ie){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,fe,Ot,ie):Ot}invoke(fe,Ot,ie,je,Ye){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,fe,Ot,ie,je,Ye):Ot.apply(ie,je)}handleError(fe,Ot){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,fe,Ot)}scheduleTask(fe,Ot){let ie=Ot;if(this._scheduleTaskZS)this._hasTaskZS&&ie._zoneDelegates.push(this._hasTaskDlgtOwner),ie=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,fe,Ot),ie||(ie=Ot);else if(Ot.scheduleFn)Ot.scheduleFn(Ot);else{if(Ot.type!=on)throw new Error("Task is missing scheduleFn.");me(Ot)}return ie}invokeTask(fe,Ot,ie,je){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,fe,Ot,ie,je):Ot.callback.apply(ie,je)}cancelTask(fe,Ot){let ie;if(this._cancelTaskZS)ie=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,fe,Ot);else{if(!Ot.cancelFn)throw Error("Task is not cancelable");ie=Ot.cancelFn(Ot)}return ie}hasTask(fe,Ot){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,fe,Ot)}catch(ie){this.handleError(fe,ie)}}_updateTaskCount(fe,Ot){const ie=this._taskCounts,je=ie[fe],Ye=ie[fe]=je+Ot;if(Ye<0)throw new Error("More tasks executed then were scheduled.");0!=je&&0!=Ye||this.hasTask(this.zone,{microTask:ie.microTask>0,macroTask:ie.macroTask>0,eventTask:ie.eventTask>0,change:fe})}}class nn{constructor(fe,Ot,ie,je,Ye,On){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=fe,this.source=Ot,this.data=je,this.scheduleFn=Ye,this.cancelFn=On,!ie)throw new Error("callback is not defined");this.callback=ie;const In=this;this.invoke=fe===Zn&&je&&je.useG?nn.invokeTask:function(){return nn.invokeTask.call(ee,In,this,arguments)}}static invokeTask(fe,Ot,ie){fe||(fe=this),xn++;try{return fe.runCount++,fe.zone.runTask(fe,Ot,ie)}finally{1==xn&&Dt(),xn--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(pe,dn)}_transitionTo(fe,Ot,ie){if(this._state!==Ot&&this._state!==ie)throw new Error(`${this.type} '${this.source}': can not transition to '${fe}', expecting state '${Ot}'${ie?" or '"+ie+"'":""}, was '${this._state}'.`);this._state=fe,fe==pe&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}
1toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const pn=Ht("setTimeout"),Pn=Ht("Promise"),Mn=Ht("then");let Ve,Pe=[],zt=!1;function me(re){if(0===xn&&0===Pe.length)if(Ve||ee[Pn]&&(Ve=ee[Pn].resolve(0)),Ve){let fe=Ve[Mn];fe||(fe=Ve.then),fe.call(Ve,Dt)}else ee[pn](Dt,0);re&&Pe.push(re)}function Dt(){if(!zt){for(zt=!0;Pe.length;){const re=Pe;Pe=[];for(let fe=0;fe<re.length;fe++){const Ot=re[fe];try{Ot.zone.runTask(Ot,null,null)}catch(ie){Qn.onUnhandledError(ie)}}}Qn.microtaskDrainDone(),zt=!1}}const le={name:"NO ZONE"},pe="notScheduled",dn="scheduling",Ze="scheduled",Kn="running",un="canceling",fn="unknown",on="microTask",Nn="macroTask",Zn="eventTask",cn={},Qn={symbol:Ht,currentZoneFrame:()=>zn,onUnhandledError:Oe,microtaskDrainDone:Oe,scheduleMicroTask:me,showUncaughtError:()=>!Ie[Ht("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:Oe,patchMethod:()=>Oe,bindArguments:()=>[],patchThen:()=>Oe,patchMacroTask:()=>Oe,patchEventPrototype:()=>Oe,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>Oe,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>Oe,wrapWithCurrentZone:()=>Oe,filterProperties:()=>[],attachOriginToPatched:()=>Oe,_redefineProperty:()=>Oe,patchCallbacks:()=>Oe};let zn={parent:null,zone:new Ie(null,null)},sn=null,xn=0;function Oe(){}Be("Zone","Zone"),ee.Zone=Ie}(typeof window<"u"&&window||typeof self<"u"&&self||global);const u=Object.getOwnPropertyDescriptor,D=Object.defineProperty,v=Object.getPrototypeOf,p=Object.create,s=Array.prototype.slice,j="addEventListener",k="removeEventListener",b=Zone.__symbol__(j),B=Zone.__symbol__(k),V="true",_="false",H=Zone.__symbol__("");function Y(ee,Se){return Zone.current.wrap(ee,Se)}function q(ee,Se,Re,Be,Lt){return Zone.current.scheduleMacroTask(ee,Se,Re,Be,Lt)}const it=Zone.__symbol__,vt=typeof window<"u",at=vt?window:void 0,J=vt&&at||"object"==typeof self&&self||global,ht=[null];function m(ee,Se){for(let Re=ee.length-1;Re>=0;Re--)"function"==typeof ee[Re]&&(ee[Re]=Y(ee[Re],Se+"_"+Re));return ee}function M(ee){return!ee||!1!==ee.writable&&!("function"==typeof ee.get&&void 0===ee.set)}const N=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,g=!("nw"in J)&&void 0!==J.process&&"[object process]"==={}.toString.call(J.process),x=!g&&!N&&!(!vt||!at.HTMLElement),P=void 0!==J.process&&"[object process]"==={}.toString.call(J.process)&&!N&&!(!vt||!at.HTMLElement),Q={},U=function(ee){if(!(ee=ee||J.event))return;let Se=Q[ee.type];Se||(Se=Q[ee.type]=it("ON_PROPERTY"+ee.type));const Re=this||ee.target||J,Be=Re[Se];let Lt;if(x&&Re===at&&"error"===ee.type){const Ht=ee;Lt=Be&&Be.call(this,Ht.message,Ht.filename,Ht.lineno,Ht.colno,Ht.error),!0===Lt&&ee.preventDefault()}else Lt=Be&&Be.apply(this,arguments),null!=Lt&&!Lt&&ee.preventDefault();return Lt};function G(ee,Se,Re){let Be=u(ee,Se);if(!Be&&Re&&u(Re,Se)&&(Be={enumerable:!0,configurable:!0}),!Be||!Be.configurable)return;const Lt=it("on"+Se+"patched");if(ee.hasOwnProperty(Lt)&&ee[Lt])return;delete Be.writable,delete Be.value;const Ht=Be.get,Jt=Be.set,Ie=Se.substr(2);let Je=Q[Ie];Je||(Je=Q[Ie]=it("ON_PROPERTY"+Ie)),Be.set=function(Te){let nn=this;!nn&&ee===J&&(nn=J),nn&&(nn[Je]&&nn.removeEventListener(Ie,U),Jt&&Jt.apply(nn,ht),"function"==typeof Te?(nn[Je]=Te,nn.addEventListener(Ie,U,!1)):nn[Je]=null)},Be.get=function(){let Te=this;if(!Te&&ee===J&&(Te=J),!Te)return null;const nn=Te[Je];if(nn)return nn;if(Ht){let pn=Ht&&Ht.call(this);if(pn)return Be.set.call(this,pn),"function"==typeof Te.removeAttribute&&Te.removeAttribute(Se),pn}return null},D(ee,Se,Be),ee[Lt]=!0}function dt(ee,Se,Re){if(Se)for(let Be=0;Be<Se.length;Be++)G(ee,"on"+Se[Be],Re);else{const Be=[];for(const Lt in ee)"on"==Lt.substr(0,2)&&Be.push(Lt);for(let Lt=0;Lt<Be.length;Lt++)G(ee,Be[Lt],Re)}}const wt=it("originalInstance");function W(ee){const Se=J[ee];if(!Se)return;J[it(ee)]=Se,J[ee]=function(){const Lt=m(arguments,ee);switch(Lt.length){case 0:this[wt]=new Se;break;case 1:this[wt]=new Se(Lt[0]);break;case 2:this[wt]=new Se(Lt[0],Lt[1]);break;case 3:this[wt]=new Se(Lt[0],Lt[1],Lt[2]);break;case 4:this[wt]=new Se(Lt[0],Lt[1],Lt[2],Lt[3]);break;default:throw new Error("Arg list too long.")}},Ae(J[ee],Se);const Re=new Se(function(){});let Be;for(Be in Re)"XMLHttpRequest"===ee&&"responseBlob"===Be||function(Lt){"function"==typeof Re[Lt]?J[ee].prototype[Lt]=function(){return this[wt][Lt].apply(this[wt],arguments)}:D(J[ee].prototype,Lt,{set:function(Ht){"function"==typeof Ht?(this[wt][Lt]=Y(Ht,ee+"."+Lt),Ae(this[wt][Lt],Ht)):this[wt][Lt]=Ht},get:function(){return this[wt][Lt]}})}(Be);for(Be in Se)"prototype"!==Be&&Se.hasOwnProperty(Be)&&(J[ee][Be]=Se[Be])}function te(ee,Se,Re){let Be=ee;for(;Be&&!Be.hasOwnProperty(Se);)Be=v(Be);!Be&&ee[Se]&&(Be=ee);const Lt=it(Se);let Ht=null;if(Be&&(!(Ht=Be[Lt])||!Be.hasOwnProperty(Lt))&&(Ht=Be[Lt]=Be[Se],M(Be&&u(Be,Se)))){const Jt=Re(Ht,Lt,Se);Be[Se]=function(){return Jt(this,arguments)},Ae(Be[Se],Ht)}return Ht}function ae(ee,Se,Re){let Be=null;function Lt(Ht){const Jt=Ht.data;
1return Jt.args[Jt.cbIdx]=function(){Ht.invoke.apply(this,arguments)},Be.apply(Jt.target,Jt.args),Ht}Be=te(ee,Se,Ht=>function(Jt,Ie){const Je=Re(Jt,Ie);return Je.cbIdx>=0&&"function"==typeof Ie[Je.cbIdx]?q(Je.name,Ie[Je.cbIdx],Je,Lt):Ht.apply(Jt,Ie)})}function Ae(ee,Se){ee[it("OriginalDelegate")]=Se}let ge=!1,We=!1;function Cn(){if(ge)return We;ge=!0;try{const ee=at.navigator.userAgent;(-1!==ee.indexOf("MSIE ")||-1!==ee.indexOf("Trident/")||-1!==ee.indexOf("Edge/"))&&(We=!0)}catch{}return We}Zone.__load_patch("ZoneAwarePromise",(ee,Se,Re)=>{const Be=Object.getOwnPropertyDescriptor,Lt=Object.defineProperty,Ht=Re.symbol,Jt=[],Ie=!0===ee[Ht("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],Je=Ht("Promise"),Te=Ht("then");Re.onUnhandledError=Oe=>{if(Re.showUncaughtError()){const re=Oe&&Oe.rejection;re?console.error("Unhandled Promise rejection:",re instanceof Error?re.message:re,"; Zone:",Oe.zone.name,"; Task:",Oe.task&&Oe.task.source,"; Value:",re,re instanceof Error?re.stack:void 0):console.error(Oe)}},Re.microtaskDrainDone=()=>{for(;Jt.length;){const Oe=Jt.shift();try{Oe.zone.runGuarded(()=>{throw Oe.throwOriginal?Oe.rejection:Oe})}catch(re){pn(re)}}};const nn=Ht("unhandledPromiseRejectionHandler");function pn(Oe){Re.onUnhandledError(Oe);try{const re=Se[nn];"function"==typeof re&&re.call(this,Oe)}catch{}}function Pn(Oe){return Oe&&Oe.then}function Mn(Oe){return Oe}function Ve(Oe){return Qn.reject(Oe)}const Pe=Ht("state"),zt=Ht("value"),me=Ht("finally"),Dt=Ht("parentPromiseValue"),le=Ht("parentPromiseState"),pe=null,Ze=!1;function Kn(Oe,re){return fe=>{try{fn(Oe,re,fe)}catch(Ot){fn(Oe,!1,Ot)}}}const un=Ht("currentTaskTrace");function fn(Oe,re,fe){const Ot=function(){let ie=!1;return function(je){return function(){ie||(ie=!0,je.apply(null,arguments))}}}();if(Oe===fe)throw new TypeError("Promise resolved with itself");if(Oe[Pe]===pe){let ie=null;try{("object"==typeof fe||"function"==typeof fe)&&(ie=fe&&fe.then)}catch(je){return Ot(()=>{fn(Oe,!1,je)})(),Oe}if(re!==Ze&&fe instanceof Qn&&fe.hasOwnProperty(Pe)&&fe.hasOwnProperty(zt)&&fe[Pe]!==pe)Nn(fe),fn(Oe,fe[Pe],fe[zt]);else if(re!==Ze&&"function"==typeof ie)try{ie.call(fe,Ot(Kn(Oe,re)),Ot(Kn(Oe,!1)))}catch(je){Ot(()=>{fn(Oe,!1,je)})()}else{Oe[Pe]=re;const je=Oe[zt];if(Oe[zt]=fe,Oe[me]===me&&!0===re&&(Oe[Pe]=Oe[le],Oe[zt]=Oe[Dt]),re===Ze&&fe instanceof Error){const Ye=Se.currentTask&&Se.currentTask.data&&Se.currentTask.data.__creationTrace__;Ye&&Lt(fe,un,{configurable:!0,enumerable:!1,writable:!0,value:Ye})}for(let Ye=0;Ye<je.length;)Zn(Oe,je[Ye++],je[Ye++],je[Ye++],je[Ye++]);if(0==je.length&&re==Ze){Oe[Pe]=0;let Ye=fe;try{throw new Error("Uncaught (in promise): "+((In=fe)&&In.toString===Object.prototype.toString?(In.constructor&&In.constructor.name||"")+": "+JSON.stringify(In):In?In.toString():Object.prototype.toString.call(In))+(fe&&fe.stack?"\n"+fe.stack:""))}catch(On){Ye=On}Ie&&(Ye.throwOriginal=!0),Ye.rejection=fe,Ye.promise=Oe,Ye.zone=Se.current,Ye.task=Se.currentTask,Jt.push(Ye),Re.scheduleMicroTask()}}}var In;return Oe}const on=Ht("rejectionHandledHandler");function Nn(Oe){if(0===Oe[Pe]){try{const re=Se[on];re&&"function"==typeof re&&re.call(this,{rejection:Oe[zt],promise:Oe})}catch{}Oe[Pe]=Ze;for(let re=0;re<Jt.length;re++)Oe===Jt[re].promise&&Jt.splice(re,1)}}function Zn(Oe,re,fe,Ot,ie){Nn(Oe);const je=Oe[Pe],Ye=je?"function"==typeof Ot?Ot:Mn:"function"==typeof ie?ie:Ve;re.scheduleMicroTask("Promise.then",()=>{try{const On=Oe[zt],In=!!fe&&me===fe[me];In&&(fe[Dt]=On,fe[le]=je);const gr=re.run(Ye,void 0,In&&Ye!==Ve&&Ye!==Mn?[]:[On]);fn(fe,!0,gr)}catch(On){fn(fe,!1,On)}},fe)}const cn=function(){};class Qn{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(re){return fn(new this(null),!0,re)}static reject(re){return fn(new this(null),Ze,re)}static race(re){let fe,Ot,ie=new this((On,In)=>{fe=On,Ot=In});function je(On){fe(On)}function Ye(On){Ot(On)}for(let On of re)Pn(On)||(On=this.resolve(On)),On.then(je,Ye);return ie}static all(re){return Qn.allWithCallback(re)}static allSettled(re){return(this&&this.prototype instanceof Qn?this:Qn).allWithCallback(re,{thenCallback:fe=>({status:"fulfilled",value:fe}),errorCallback:fe=>({status:"rejected",reason:fe})})}static allWithCallback(re,fe){let Ot,ie,je=new this((gr,Yn)=>{Ot=gr,ie=Yn}),Ye=2,On=0;const In=[];for(let gr of re){Pn(gr)||(gr=this.resolve(gr));const Yn=On;try{gr.then(qn=>{In[Yn]=fe?fe.thenCallback(qn):qn,Ye--,0===Ye&&Ot(In)},qn=>{fe?(In[Yn]=fe.errorCallback(qn),Ye--,0===Ye&&Ot(In)):ie(qn)})}catch(qn){ie(qn)}Ye++,On++}return Ye-=2,0===Ye&&Ot(In),je}constructor(re){const fe=this;
1if(!(fe instanceof Qn))throw new Error("Must be an instanceof Promise.");fe[Pe]=pe,fe[zt]=[];try{re&&re(Kn(fe,!0),Kn(fe,Ze))}catch(Ot){fn(fe,!1,Ot)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return Qn}then(re,fe){let Ot=this.constructor[Symbol.species];(!Ot||"function"!=typeof Ot)&&(Ot=this.constructor||Qn);const ie=new Ot(cn),je=Se.current;return this[Pe]==pe?this[zt].push(je,ie,re,fe):Zn(this,je,ie,re,fe),ie}catch(re){return this.then(null,re)}finally(re){let fe=this.constructor[Symbol.species];(!fe||"function"!=typeof fe)&&(fe=Qn);const Ot=new fe(cn);Ot[me]=me;const ie=Se.current;return this[Pe]==pe?this[zt].push(ie,Ot,re,re):Zn(this,ie,Ot,re,re),Ot}}Qn.resolve=Qn.resolve,Qn.reject=Qn.reject,Qn.race=Qn.race,Qn.all=Qn.all;const zn=ee[Je]=ee.Promise;ee.Promise=Qn;const sn=Ht("thenPatched");function xn(Oe){const re=Oe.prototype,fe=Be(re,"then");if(fe&&(!1===fe.writable||!fe.configurable))return;const Ot=re.then;re[Te]=Ot,Oe.prototype.then=function(ie,je){return new Qn((Ye,On)=>{Ot.call(this,Ye,On)}).then(ie,je)},Oe[sn]=!0}return Re.patchThen=xn,zn&&(xn(zn),te(ee,"fetch",Oe=>{return fe=Oe,function(Ot,ie){let je=fe.apply(Ot,ie);if(je instanceof Qn)return je;let Ye=je.constructor;return Ye[sn]||xn(Ye),je};var fe})),Promise[Se.__symbol__("uncaughtPromiseErrors")]=Jt,Qn}),Zone.__load_patch("toString",ee=>{const Se=Function.prototype.toString,Re=it("OriginalDelegate"),Be=it("Promise"),Lt=it("Error"),Ht=function(){if("function"==typeof this){const Ie=this[Re];if(Ie)return"function"==typeof Ie?Se.call(Ie):Object.prototype.toString.call(Ie);if(this===Promise){const Je=ee[Be];if(Je)return Se.call(Je)}if(this===Error){const Je=ee[Lt];if(Je)return Se.call(Je)}}return Se.call(this)};Ht[Re]=Se,Function.prototype.toString=Ht;const Jt=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":Jt.call(this)}});let rn=!1;if(typeof window<"u")try{const ee=Object.defineProperty({},"passive",{get:function(){rn=!0}});window.addEventListener("test",ee,ee),window.removeEventListener("test",ee,ee)}catch{rn=!1}const Me={useG:!0},Le={},Ee={},Qt=new RegExp("^"+H+"(\\w+)(true|false)$"),Ut=it("propagationStopped");function Mt(ee,Se){const Re=(Se?Se(ee):ee)+_,Be=(Se?Se(ee):ee)+V,Lt=H+Re,Ht=H+Be;Le[ee]={},Le[ee][_]=Lt,Le[ee][V]=Ht}function It(ee,Se,Re){const Be=Re&&Re.add||j,Lt=Re&&Re.rm||k,Ht=Re&&Re.listeners||"eventListeners",Jt=Re&&Re.rmAll||"removeAllListeners",Ie=it(Be),Je="."+Be+":",Te=function(Ve,Pe,zt){if(Ve.isRemoved)return;const me=Ve.callback;"object"==typeof me&&me.handleEvent&&(Ve.callback=le=>me.handleEvent(le),Ve.originalDelegate=me),Ve.invoke(Ve,Pe,[zt]);const Dt=Ve.options;
1Dt&&"object"==typeof Dt&&Dt.once&&Pe[Lt].call(Pe,zt.type,Ve.originalDelegate?Ve.originalDelegate:Ve.callback,Dt)},nn=function(Ve){if(!(Ve=Ve||ee.event))return;const Pe=this||Ve.target||ee,zt=Pe[Le[Ve.type][_]];if(zt)if(1===zt.length)Te(zt[0],Pe,Ve);else{const me=zt.slice();for(let Dt=0;Dt<me.length&&(!Ve||!0!==Ve[Ut]);Dt++)Te(me[Dt],Pe,Ve)}},pn=function(Ve){if(!(Ve=Ve||ee.event))return;const Pe=this||Ve.target||ee,zt=Pe[Le[Ve.type][V]];if(zt)if(1===zt.length)Te(zt[0],Pe,Ve);else{const me=zt.slice();for(let Dt=0;Dt<me.length&&(!Ve||!0!==Ve[Ut]);Dt++)Te(me[Dt],Pe,Ve)}};function Pn(Ve,Pe){if(!Ve)return!1;let zt=!0;Pe&&void 0!==Pe.useG&&(zt=Pe.useG);const me=Pe&&Pe.vh;let Dt=!0;Pe&&void 0!==Pe.chkDup&&(Dt=Pe.chkDup);let le=!1;Pe&&void 0!==Pe.rt&&(le=Pe.rt);let pe=Ve;for(;pe&&!pe.hasOwnProperty(Be);)pe=v(pe);if(!pe&&Ve[Be]&&(pe=Ve),!pe||pe[Ie])return!1;const dn=Pe&&Pe.eventNameToString,Ze={},Kn=pe[Ie]=pe[Be],un=pe[it(Lt)]=pe[Lt],fn=pe[it(Ht)]=pe[Ht],on=pe[it(Jt)]=pe[Jt];let Nn;function Zn(re,fe){return!rn&&"object"==typeof re&&re?!!re.capture:rn&&fe?"boolean"==typeof re?{capture:re,passive:!0}:re?"object"==typeof re&&!1!==re.passive?Object.assign(Object.assign({},re),{passive:!0}):re:{passive:!0}:re}
vendor: 6,519 bytes, line 1
1Pe&&Pe.prepend&&(Nn=pe[it(Pe.prepend)]=pe[Pe.prepend]);const cn=zt?function(re){if(!Ze.isExisting)return Kn.call(Ze.target,Ze.eventName,Ze.capture?pn:nn,Ze.options)}:function(re){return Kn.call(Ze.target,Ze.eventName,re.invoke,Ze.options)},Qn=zt?function(re){if(!re.isRemoved){const fe=Le[re.eventName];let Ot;fe&&(Ot=fe[re.capture?V:_]);const ie=Ot&&re.target[Ot];if(ie)for(let je=0;je<ie.length;je++)if(ie[je]===re){ie.splice(je,1),re.isRemoved=!0,0===ie.length&&(re.allRemoved=!0,re.target[Ot]=null);break}}if(re.allRemoved)return un.call(re.target,re.eventName,re.capture?pn:nn,re.options)}:function(re){return un.call(re.target,re.eventName,re.invoke,re.options)},zn=Pe&&Pe.diff?Pe.diff:function(re,fe){const Ot=typeof fe;return"function"===Ot&&re.callback===fe||"object"===Ot&&re.originalDelegate===fe},sn=Zone[it("UNPATCHED_EVENTS")],xn=ee[it("PASSIVE_EVENTS")],Oe=function(re,fe,Ot,ie,je=!1,Ye=!1){return function(){const On=this||ee;let In=arguments[0];Pe&&Pe.transferEventName&&(In=Pe.transferEventName(In));let gr=arguments[1];if(!gr)return re.apply(this,arguments);if(g&&"uncaughtException"===In)return re.apply(this,arguments);let Yn=!1;if("function"!=typeof gr){if(!gr.handleEvent)return re.apply(this,arguments);Yn=!0}if(me&&!me(re,gr,On,arguments))return;const qn=rn&&!!xn&&-1!==xn.indexOf(In),wr=Zn(arguments[2],qn);if(sn)for(let pt=0;pt<sn.length;pt++)if(In===sn[pt])return qn?re.call(On,In,gr,wr):re.apply(this,arguments);const Br=!!wr&&("boolean"==typeof wr||wr.capture),vr=!(!wr||"object"!=typeof wr)&&wr.once,wi=Zone.current;let Or=Le[In];Or||(Mt(In,dn),Or=Le[In]);const Nr=Or[Br?V:_];let Si,fi=On[Nr],ts=!1;if(fi){if(ts=!0,Dt)for(let pt=0;pt<fi.length;pt++)if(zn(fi[pt],gr))return}else fi=On[Nr]=[];const _t=On.constructor.name,w=Ee[_t];w&&(Si=w[In]),Si||(Si=_t+fe+(dn?dn(In):In)),Ze.options=wr,vr&&(Ze.options.once=!1),Ze.target=On,Ze.capture=Br,Ze.eventName=In,Ze.isExisting=ts;const T=zt?Me:void 0;T&&(T.taskData=Ze);const Z=wi.scheduleEventTask(Si,gr,T,Ot,ie);return Ze.target=null,T&&(T.taskData=null),vr&&(wr.once=!0),!rn&&"boolean"==typeof Z.options||(Z.options=wr),Z.target=On,Z.capture=Br,Z.eventName=In,Yn&&(Z.originalDelegate=gr),Ye?fi.unshift(Z):fi.push(Z),je?On:void 0}};return pe[Be]=Oe(Kn,Je,cn,Qn,le),Nn&&(pe.prependListener=Oe(Nn,".prependListener:",function(re){return Nn.call(Ze.target,Ze.eventName,re.invoke,Ze.options)},Qn,le,!0)),pe[Lt]=function(){const re=this||ee;let fe=arguments[0];Pe&&Pe.transferEventName&&(fe=Pe.transferEventName(fe));const Ot=arguments[2],ie=!!Ot&&("boolean"==typeof Ot||Ot.capture),je=arguments[1];if(!je)return un.apply(this,arguments);if(me&&!me(un,je,re,arguments))return;const Ye=Le[fe];let On;Ye&&(On=Ye[ie?V:_]);const In=On&&re[On];if(In)for(let gr=0;gr<In.length;gr++){const Yn=In[gr];if(zn(Yn,je))return In.splice(gr,1),Yn.isRemoved=!0,0===In.length&&(Yn.allRemoved=!0,re[On]=null,"string"==typeof fe)&&(re[H+"ON_PROPERTY"+fe]=null),Yn.zone.cancelTask(Yn),le?re:void 0}return un.apply(this,arguments)},pe[Ht]=function(){const re=this||ee;let fe=arguments[0];Pe&&Pe.transferEventName&&(fe=Pe.transferEventName(fe));const Ot=[],ie=mt(re,dn?dn(fe):fe);for(let je=0;je<ie.length;je++){const Ye=ie[je];Ot.push(Ye.originalDelegate?Ye.originalDelegate:Ye.callback)}return Ot},pe[Jt]=function(){const re=this||ee;let fe=arguments[0];if(fe){Pe&&Pe.transferEventName&&(fe=Pe.transferEventName(fe));const Ot=Le[fe];if(Ot){const ie=re[Ot[_]],je=re[Ot[V]];if(ie){const Ye=ie.slice();for(let On=0;On<Ye.length;On++){const In=Ye[On];this[Lt].call(this,fe,In.originalDelegate?In.originalDelegate:In.callback,In.options)}}if(je){const Ye=je.slice();for(let On=0;On<Ye.length;On++){const In=Ye[On];this[Lt].call(this,fe,In.originalDelegate?In.originalDelegate:In.callback,In.options)}}}}else{const Ot=Object.keys(re);for(let ie=0;ie<Ot.length;ie++){const je=Qt.exec(Ot[ie]);let Ye=je&&je[1];Ye&&"removeListener"!==Ye&&this[Jt].call(this,Ye)}this[Jt].call(this,"removeListener")}if(le)return this},Ae(pe[Be],Kn),Ae(pe[Lt],un),on&&Ae(pe[Jt],on),fn&&Ae(pe[Ht],fn),!0}let Mn=[];for(let Ve=0;Ve<Se.length;Ve++)Mn[Ve]=Pn(Se[Ve],Re);return Mn}function mt(ee,Se){if(!Se){const Ht=[];for(let Jt in ee){const Ie=Qt.exec(Jt);let Je=Ie&&Ie[1];if(Je&&(!Se||Je===Se)){const Te=ee[Jt];if(Te)for(let nn=0;nn<Te.length;nn++)Ht.push(Te[nn])}}return Ht}let Re=Le[Se];Re||(Mt(Se),Re=Le[Se]);const Be=ee[Re[_]],Lt=ee[Re[V]];return Be?Lt?Be.concat(Lt):Be.slice():Lt?Lt.slice():[]}function lt(ee,Se){const Re=ee.Event;Re&&Re.prototype&&Se.patchMethod(Re.prototype,"stopImmediatePropagation",Be=>function(Lt,Ht){Lt[Ut]=!0,Be&&Be.apply(Lt,Ht)})}function et(ee,Se,Re,Be,Lt){const Ht=Zone.__symbol__(Be);if(Se[Ht])return;const Jt=Se[Ht]=Se[Be];Se[Be]=function(Ie,Je,Te){return Je&&Je.prototype&&Lt.forEach(function(nn){const pn=`${Re}.${Be}::`+nn,Pn=Je.prototype;if(Pn.hasOwnProperty(nn)){const Mn=ee.ObjectGetOwnPropertyDescriptor(Pn,nn);Mn&&Mn.value?(Mn.value=ee.wrapWithCurrentZone(Mn.value,pn),ee._redefineProperty(Je.prototype,nn,Mn)):Pn[nn]&&(Pn[nn]=ee.wrapWithCurrentZone(Pn[nn],pn))}else Pn[nn]&&(Pn[nn]=ee.wrapWithCurrentZone(Pn[nn],pn))}),Jt.call(Se,Ie,Je,Te)},ee.attachOriginToPatched(Se[Be],Jt)}const ct=["absolutedeviceorientation","afterinput","afterprint","appinstalled","beforeinstallprompt","beforeprint","beforeunload","devicelight","devicemotion","deviceorientation","deviceorientationabsolute","deviceproximity","hashchange","languagechange","message","mozbeforepaint","offline","online","paint","pageshow","pagehide","popstate","rejectionhandled","storage","unhandledrejection","unload","userproximity","vrdisplayconnected","vrdisplaydisconnected","vrdisplaypresentchange"],Vt=["encrypted","waitingforkey","msneedkey","mozinterruptbegin","mozinterruptend"],Rt=["load"],ne=["blur","error","focus","load","resize","scroll","messageerror"],bt=["bounce","finish","start"],kt=["loadstart","progress","abort","error","load","progress","timeout","loadend","readystatechange"],de=["upgradeneeded","complete","abort","success","error","blocked","versionchange","close"],Wt=["close","error","open","message"],en=["error","message"],be=["abort","animationcancel","animationend","animationiteration","auxclick","beforeinput","blur","cancel","canplay","canplaythrough","change","compositionstart","compositionupdate","compositionend","cuechange","click","close","contextmenu","curechange","dblclick","drag","dragend","dragenter","dragexit","dragleave","dragover","drop","durationchange","emptied","ended","error","focus","focusin","focusout","gotpointercapture","input","invali
1d","keydown","keypress","keyup","load","loadstart","loadeddata","loadedmetadata","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","orientationchange","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointerlockchange","mozpointerlockchange","webkitpointerlockerchange","pointerlockerror","mozpointerlockerror","webkitpointerlockerror","pointermove","pointout","pointerover","pointerup","progress","ratechange","reset","resize","scroll","seeked","seeking","select","selectionchange","selectstart","show","sort","stalled","submit","suspend","timeupdate","volumechange","touchcancel","touchmove","touchstart","touchend","transitioncancel","transitionend","waiting","wheel"].concat(["webglcontextrestored","webglcontextlost","webglcontextcreationerror"],["autocomplete","autocompleteerror"],["toggle"],["afterscriptexecute","beforescriptexecute","DOMContentLoaded","freeze","fullscreenchange","mozfullscreenchange","webkitfullscreenchange","msfullscreenchange","fullscreenerror","mozfullscreenerror","webkitfullscreenerror","msfullscreenerror","readystatechange","visibilitychange","resume"],ct,["beforecopy","beforecut","beforepaste","copy","cut","paste","dragstart","loadend","animationstart","search","transitionrun","transitionstart","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend"],["activate","afterupdate","ariarequest","beforeactivate","beforedeactivate","beforeeditfocus","beforeupdate","cellchange","controlselect","dataavailable","datasetchanged","datasetcomplete","errorupdate","filterchange","layoutcomplete","losecapture","move","moveend","movestart","propertychange","resizeend","resizestart","rowenter","rowexit","rowsdelete","rowsinserted","command","compassneedscalibration","deactivate","help","mscontentzoom","msmanipulationstatechanged","msgesturechange","msgesturedoubletap","msgestureend","msgesturehold","msgesturestart","msgesturetap","msgotpointercapture","msinertiastart","mslostpointercapture","mspointercancel","mspointerdown","mspointerenter","mspointerhover","mspointerleave","mspointermove","mspointerout","mspointerover","mspointerup","pointerout","mssitemodejumplistitemremoved","msthumbnailclick","stop","storagecommit"]);function qe(ee,Se,Re){if(!Re||0===Re.length)return Se;const Be=Re.filter(Ht=>Ht.target===ee);if(!Be||0===Be.length)return Se;const Lt=Be[0].ignoreProperties;return Se.filter(Ht=>-1===Lt.indexOf(Ht))}function kn(ee,Se,Re,Be){ee&&dt(ee,qe(ee,Se,Re),Be)}Zone.__load_patch("util",(ee,Se,Re)=>{Re.patchOnProperties=dt,Re.patchMethod=te,Re.bindArguments=m,Re.patchMacroTask=ae;const Be=Se.__symbol__("BLACK_LISTED_EVENTS"),Lt=Se.__symbol__("UNPATCHED_EVENTS");ee[Lt]&&(ee[Be]=ee[Lt]),ee[Be]&&(Se[Be]=Se[Lt]=ee[Be]),Re.patchEventPrototype=lt,Re.patchEventTarget=It,Re.isIEOrEdge=Cn,Re.ObjectDefineProperty=D,Re.ObjectGetOwnPropertyDescriptor=u,Re.ObjectCreate=p,Re.ArraySlice=s,Re.patchClass=W,Re.wrapWithCurrentZone=Y,Re.filterProperties=qe,Re.attachOriginToPatched=Ae,Re._redefineProperty=Object.defineProperty,Re.patchCallbacks=et,Re.getGlobalObjects=()=>({globalSources:Ee,zoneSymbolEventNames:Le,eventNames:be,isBrowser:x,isMix:P,isNode:g,TRUE_STR:V,FALSE_STR:_,ZONE_SYMBOL_PREFIX:H,ADD_EVENT_LISTENER_STR:j,REMOVE_EVENT_LISTENER_STR:k})});const yr=it("zoneTask");function ur(ee,Se,Re,Be){let Lt=null,Ht=null;Re+=Be;const Jt={};function Ie(Te){const nn=Te.data;return nn.args[0]=function(){return Te.invoke.apply(this,arguments)},nn.handleId=Lt.apply(ee,nn.args),Te}function Je(Te){return Ht.call(ee,Te.data.handleId)}Lt=te(ee,Se+=Be,Te=>function(nn,pn){if("function"==typeof pn[0]){const Pn={isPeriodic:"Interval"===Be,delay:"Timeout"===Be||"Interval"===Be?pn[1]||0:void 0,args:pn},Mn=pn[0];pn[0]=function(){try{return Mn.apply(this,arguments)}finally{Pn.isPeriodic||("number"==typeof Pn.handleId?delete Jt[Pn.handleId]:Pn.handleId&&(Pn.handleId[yr]=null))}};const Ve=q(Se,pn[0],Pn,Ie,Je);if(!Ve)return Ve;const Pe=Ve.data.handleId;return"number"==typeof Pe?Jt[Pe]=Ve:Pe&&(Pe[yr]=Ve),Pe&&Pe.ref&&Pe.unref&&"function"==typeof Pe.ref&&"function"==typeof Pe.unref&&(Ve.ref=Pe.ref.bind(Pe),Ve.unref=Pe.unref.bind(Pe)),"number"==typeof Pe||Pe?Pe:Ve}return Te.apply(ee,pn)}),Ht=te(ee,Re,Te=>function(nn,pn){const Pn=pn[0];let Mn;"number"==typeof Pn?Mn=Jt[Pn]:(Mn=Pn&&Pn[yr],Mn||(Mn=Pn)),Mn&&"string"==typeof Mn.type?"notScheduled"!==Mn.state&&(Mn.cancelFn&&Mn.data.isPeriodic||0===Mn.runCount)&&("number"==typeof Pn?delete Jt[Pn]:Pn&&(Pn[yr]=null),Mn.zone.cancelTask(Mn)):Te.apply(ee,pn)})}Zone.__load_patch("legacy",ee=>{const Se=ee[Zone.__symbol__("legacyPatch")];Se&&Se()}),Zone.__load_patch("queueMicrotask",(ee,Se,Re)=>
1{Re.patchMethod(ee,"queueMicrotask",Be=>function(Lt,Ht){Se.current.scheduleMicroTask("queueMicrotask",Ht[0])})}),Zone.__load_patch("timers",ee=>{const Re="clear";ur(ee,"set",Re,"Timeout"),ur(ee,"set",Re,"Interval"),ur(ee,"set",Re,"Immediate")}),Zone.__load_patch("requestAnimationFrame",ee=>{ur(ee,"request","cancel","AnimationFrame"),ur(ee,"mozRequest","mozCancel","AnimationFrame"),ur(ee,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(ee,Se)=>{const Re=["alert","prompt","confirm"];for(let Be=0;Be<Re.length;Be++)te(ee,Re[Be],(Lt,Ht,Jt)=>function(Ie,Je){return Se.current.run(Lt,ee,Je,Jt)})}),Zone.__load_patch("EventTarget",(ee,Se,Re)=>{var Jt;(Jt=Re).patchEventPrototype(ee,Jt),function(Ht,Jt){if(Zone[Jt.symbol("patchEventTarget")])return;const{eventNames:Ie,zoneSymbolEventNames:Je,TRUE_STR:Te,FALSE_STR:nn,ZONE_SYMBOL_PREFIX:pn}=Jt.getGlobalObjects();for(let Mn=0;Mn<Ie.length;Mn++){const Ve=Ie[Mn],Pe=pn+(Ve+nn),zt=pn+(Ve+Te);Je[Ve]={},Je[Ve][nn]=Pe,Je[Ve][Te]=zt}const Pn=Ht.EventTarget;Pn&&Pn.prototype&&Jt.patchEventTarget(Ht,[Pn&&Pn.prototype])}(ee,Re);const Be=ee.XMLHttpRequestEventTarget;Be&&Be.prototype&&Re.patchEventTarget(ee,[Be.prototype])}),Zone.__load_patch("MutationObserver",(ee,Se,Re)=>{W("MutationObserver"),W("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(ee,Se,Re)=>{W("IntersectionObserver")}),Zone.__load_patch("FileReader",(ee,Se,Re)=>{W("FileReader")}),Zone.__load_patch("on_property",(ee,Se,Re)=>{!function(Lt,Ht){if(g&&!P||Zone[Lt.symbol("patchEvents")])return;const Jt=typeof WebSocket<"u",Ie=Ht.__Zone_ignore_on_properties;if(x){const nn=window,pn=function(){try{const Pe=at.navigator.userAgent;if(-1!==Pe.indexOf("MSIE ")||-1!==Pe.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:nn,ignoreProperties:["error"]}]:[];kn(nn,be.concat(["messageerror"]),Ie&&Ie.concat(pn),v(nn)),kn(Document.prototype,be,Ie),void 0!==nn.SVGElement&&kn(nn.SVGElement.prototype,be,Ie),kn(Element.prototype,be,Ie),kn(HTMLElement.prototype,be,Ie),kn(HTMLMediaElement.prototype,Vt,Ie),kn(HTMLFrameSetElement.prototype,ct.concat(ne),Ie),kn(HTMLBodyElement.prototype,ct.concat(ne),Ie),kn(HTMLFrameElement.prototype,Rt,Ie),kn(HTMLIFrameElement.prototype,Rt,Ie);const Pn=nn.HTMLMarqueeElement;Pn&&kn(Pn.prototype,bt,Ie);const Mn=nn.Worker;Mn&&kn(Mn.prototype,en,Ie)}const Je=Ht.XMLHttpRequest;Je&&kn(Je.prototype,kt,Ie);const Te=Ht.XMLHttpRequestEventTarget;Te&&kn(Te&&Te.prototype,kt,Ie),typeof IDBIndex<"u"&&(kn(IDBIndex.prototype,de,Ie),kn(IDBRequest.prototype,de,Ie),kn(IDBOpenDBRequest.prototype,de,Ie),kn(IDBDatabase.prototype,de,Ie),kn(IDBTransaction.prototype,de,Ie),kn(IDBCursor.prototype,de,Ie)),Jt&&kn(WebSocket.prototype,Wt,Ie)}(Re,ee)}),Zone.__load_patch("customElements",(ee,Se,Re)=>{!function(Lt,Ht){const{isBrowser:Jt,isMix:Ie}=Ht.getGlobalObjects();(Jt||Ie)&&Lt.customElements&&"customElements"in Lt&&Ht.patchCallbacks(Ht,Lt.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(ee,Re)}),Zone.__load_patch("XHR",(ee,Se)=>{!function(Te){const nn=Te.XMLHttpRequest;if(!nn)return;const pn=nn.prototype;let Pn=pn[b],Mn=pn[B];if(!Pn){const un=Te.XMLHttpRequestEventTarget;if(un){const fn=un.prototype;Pn=fn[b],Mn=fn[B]}}const Ve="readystatechange",Pe="scheduled";function zt(un){const fn=un.data,on=fn.target;on[Ht]=!1,on[Ie]=!1;const Nn=on[Lt];Pn||(Pn=on[b],Mn=on[B]),Nn&&Mn.call(on,Ve,Nn);const Zn=on[Lt]=()=>{if(on.readyState===on.DONE)if(!fn.aborted&&on[Ht]&&un.state===Pe){const cn=on[Se.__symbol__("loadfalse")];if(0!==on.status&&cn&&cn.length>0){const Qn=un.invoke;un.invoke=function(){const zn=on[Se.__symbol__("loadfalse")];for(let sn=0;sn<zn.length;sn++)zn[sn]===un&&zn.splice(sn,1);!fn.aborted&&un.state===Pe&&Qn.call(un)},cn.push(un)}else un.invoke()}else!fn.aborted&&!1===on[Ht]&&(on[Ie]=!0)};return Pn.call(on,Ve,Zn),on[Re]||(on[Re]=un),Ze.apply(on,fn.args),on[Ht]=!0,un}function me(){}function Dt(un){const fn=un.data;return fn.aborted=!0,Kn.apply(fn.target,fn.args)}const le=te(pn,"open",()=>function(un,fn){return un[Be]=0==fn[2],un[Jt]=fn[1],le.apply(un,fn)}),pe=it("fetchTaskAborting"),dn=it("fetchTaskScheduling"),Ze=te(pn,"send",()=>function(un,fn){if(!0===Se.current[dn]||un[Be])return Ze.apply(un,fn);{const on={target:un,url:un[Jt],isPeriodic:!1,args:fn,aborted:!1},Nn=q("XMLHttpRequest.send",me,on,zt,Dt);
1un&&!0===un[Ie]&&!on.aborted&&Nn.state===Pe&&Nn.invoke()}}),Kn=te(pn,"abort",()=>function(un,fn){const on=un[Re];if(on&&"string"==typeof on.type){if(null==on.cancelFn||on.data&&on.data.aborted)return;on.zone.cancelTask(on)}else if(!0===Se.current[pe])return Kn.apply(un,fn)})}(ee);const Re=it("xhrTask"),Be=it("xhrSync"),Lt=it("xhrListener"),Ht=it("xhrScheduled"),Jt=it("xhrURL"),Ie=it("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",ee=>{ee.navigator&&ee.navigator.geolocation&&function(Re,Be){const Lt=Re.constructor.name;for(let Ht=0;Ht<Be.length;Ht++){const Jt=Be[Ht],Ie=Re[Jt];if(Ie){if(!M(u(Re,Jt)))continue;Re[Jt]=(Je=>{const Te=function(){return Je.apply(this,m(arguments,Lt+"."+Jt))};return Ae(Te,Je),Te})(Ie)}}}(ee.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(ee,Se)=>{function Re(Be){return function(Lt){mt(ee,Be).forEach(Ht=>{const Jt=ee.PromiseRejectionEvent;if(Jt){const Ie=new Jt(Be,{promise:Lt.promise,reason:Lt.rejection});Ht.invoke(Ie)}})}}ee.PromiseRejectionEvent&&(Se[it("unhandledPromiseRejectionHandler")]=Re("unhandledrejection"),Se[it("rejectionHandledHandler")]=Re("rejectionhandled"))})}},u=>{u(u.s=4911)}]),function(u,D){"object"==typeof exports&&typeof module<"u"?D(exports):"function"==typeof define&&define.amd?define(["exports"],D):D(u.THREE={})}(this,function(u){"use strict";function D(){}void 0===Number.EPSILON&&(Number.EPSILON=Math.pow(2,-52)),void 0===Number.isInteger&&(Number.isInteger=function(t){return"number"==typeof t&&isFinite(t)&&Math.floor(t)===t}),void 0===Math.sign&&(Math.sign=function(t){return t<0?-1:t>0?1:+t}),"name"in Function.prototype||Object.defineProperty(Function.prototype,"name",{get:function(){return this.toString().match(/^\s*function\s*([^\(\s]*)/)[1]}}),void 0===Object.assign&&(Object.assign=function(t){if(null==t)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),n=1;n<arguments.length;n++){var r=arguments[n];if(null!=r)for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e}),Object.assign(D.prototype,{addEventListener:function(t,e){void 0===this._listeners&&(this._listeners={});var n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)},hasEventListener:function(t,e){if(void 0===this._listeners)return!1;var n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)},removeEventListener:function(t,e){if(void 0!==this._listeners){var n=this._listeners[t];if(void 0!==n){var r=n.indexOf(e);-1!==r&&n.splice(r,1)}}},dispatchEvent:function(t){if(void 0!==this._listeners){var e=this._listeners[t.type];if(void 0!==e){t.target=this;for(var n=e.slice(0),r=0,i=n.length;r<i;r++)n[r].call(this,t)}}}});var v,p,t,s=100,j=103,k=104,b=1e3,B=1001,V=1002,_=1003,H=1006,Y=1008,q=1012,it=1015,vt=1020,at=1022,J=1023,ht=1026,m=1027,M=2300,N=2301,g=2400,x=2401,P=2402,Q=3e3,U={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){for(var t=[],e=0;e<256;e++)t[e]=(e<16?"0":"")+e.toString(16);return function(){var n=4294967295*Math.random()|0,r=4294967295*Math.random()|0,i=4294967295*Math.random()|0,o=4294967295*Math.random()|0;return(t[255&n]+t[n>>8&255]+t[n>>16&255]+t[n>>24&255]+"-"+t[255&r]+t[r>>8&255]+"-"+t[r>>16&15|64]+t[r>>24&255]+"-"+t[63&i|128]+t[i>>8&255]+"-"+t[i>>16&255]+t[i>>24&255]+t[255&o]+t[o>>8&255]+t[o>>16&255]+t[o>>24&255]).toUpperCase()}}(),clamp:function(t,e,n){return Math.max(e,Math.min(n,t))},euclideanModulo:function(t,e){return(t%e+e)%e},mapLinear:function(t,e,n,r,i){return r+(t-e)*(i-r)/(n-e)},lerp:function(t,e,n){return(1-n)*t+n*e},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},degToRad:function(t){return t*U.DEG2RAD},radToDeg:function(t){return t*U.RAD2DEG},isPowerOfTwo:function(t){return 0==(t&t-1)&&0!==t},ceilPowerOfTwo:function(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))},floorPowerOfTwo:function(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}};function G(t,e){this.x=t||0,this.y=e||0}function dt(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}function wt(t,e,n,r){this._x=t||0,this._y=e||0,this._z=n||0,this._w=void 0!==r?r:1}function W(t,e,n){this.x=t||0,this.y=e||0,this.z=n||0}function te(){this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}Object.defineProperties(G.prototype,{width:{get:function(){return this.x},set:function(t){this.x=t}},height:{get:function(){return this.y},set:function(t){this.y=t}}}),Object.assign(G.prototype,{isVector2:!0,set:function(t,e){return this.x=t,this.y=e,this},setScalar:function(t){return this.x=t,this.y=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(t){return this.x=t.x,this.y=t.y,this},add:function(t,e){return void 0!==e?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)},addScalar:function(t){return this.x+=t,this.y+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this},sub:function(t,e){return void 0!==e?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)},subScalar:function(t){return this.x-=t,this.y-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this},multiply:function(t){return this.x*=t.x,this.y*=t.y,this},multiplyScalar:function(t){return this.x*=t,this.y*=t,this},divide:function(t){return this.x/=t.x,this.y/=t.y,this},divideScalar:function(t){return this.multiplyScalar(1/t)},applyMatrix3:function(t){var e=this.x,n=this.y,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6],this.y=r[1]*e+r[4]*n+r[7],this},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this},clampScalar:(v=new G,p=new G,function(t,e){return v.set(t,t),p.set(e,e),this.clamp(v,p)}),clampLength:function(t,e){var n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}
vendor: 4,176 bytes, line 1
1,round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this},negate:function(){return this.x=-this.x,this.y=-this.y,this},dot:function(t){return this.x*t.x+this.y*t.y},cross:function(t){return this.x*t.y-this.y*t.x},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length()||1)},angle:function(){var t=Math.atan2(this.y,this.x);return t<0&&(t+=2*Math.PI),t},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x,n=this.y-t.y;return e*e+n*n},manhattanDistanceTo:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this},lerpVectors:function(t,e,n){return this.subVectors(e,t).multiplyScalar(n).add(t)},equals:function(t){return t.x===this.x&&t.y===this.y},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t},fromBufferAttribute:function(t,e,n){return void 0!==n&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this},rotateAround:function(t,e){var n=Math.cos(e),r=Math.sin(e),i=this.x-t.x,o=this.y-t.y;return this.x=i*n-o*r+t.x,this.y=i*r+o*n+t.y,this}}),Object.assign(dt.prototype,{isMatrix4:!0,set:function(t,e,n,r,i,o,c,h,f,A,E,C,S,F,tt,rt){var ot=this.elements;return ot[0]=t,ot[4]=e,ot[8]=n,ot[12]=r,ot[1]=i,ot[5]=o,ot[9]=c,ot[13]=h,ot[2]=f,ot[6]=A,ot[10]=E,ot[14]=C,ot[3]=S,ot[7]=F,ot[11]=tt,ot[15]=rt,this},identity:function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this},clone:function(){return(new dt).fromArray(this.elements)},copy:function(t){var e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this},copyPosition:function(t){var e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this},extractBasis:function(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this},makeBasis:function(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this},extractRotation:(t=new W,function(e){var n=this.elements,r=e.elements,i=1/t.setFromMatrixColumn(e,0).length(),o=1/t.setFromMatrixColumn(e,1).length(),c=1/t.setFromMatrixColumn(e,2).length();return n[0]=r[0]*i,n[1]=r[1]*i,n[2]=r[2]*i,n[3]=0,n[4]=r[4]*o,n[5]=r[5]*o,n[6]=r[6]*o,n[7]=0,n[8]=r[8]*c,n[9]=r[9]*c,n[10]=r[10]*c,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,this}),makeRotationFromEuler:function(t){t&&t.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");var e=this.elements,n=t.x,r=t.y,i=t.z,o=Math.cos(n),c=Math.sin(n),h=Math.cos(r),f=Math.sin(r),A=Math.cos(i),E=Math.sin(i);if("XYZ"===t.order){var C=o*A,S=o*E,F=c*A,tt=c*E;e[0]=h*A,e[4]=-h*E,e[8]=f,e[1]=S+F*f,e[5]=C-tt*f,e[9]=-c*h,e[2]=tt-C*f,e[6]=F+S*f,e[10]=o*h}else if("YXZ"===t.order){var rt=h*E,ot=f*A;e[0]=(St=h*A)+(yt=f*E)*c,e[4]=ot*c-rt,e[8]=o*f,e[1]=o*E,e[5]=o*A,e[9]=-c,e[2]=rt*c-ot,e[6]=yt+St*c,e[10]=o*h}else if("ZXY"===t.order){var St,yt;rt=h*E,ot=f*A,e[0]=(St=h*A)-(yt=f*E)*c,e[4]=-o*E,e[8]=ot+rt*c,e[1]=rt+ot*c,e[5]=o*A,e[9]=yt-St*c,e[2]=-o*f,e[6]=c,e[10]=o*h}else if("ZYX"===t.order)C=o*A,S=o*E,F=c*A,tt=c*E,e[0]=h*A,e[4]=F*f-S,e[8]=C*f+tt,e[1]=h*E,e[5]=tt*f+C,e[9]=S*f-F,e[2]=-f,e[6]=c*h,e[10]=o*h;else if("YZX"===t.order){var Et=o*h,Pt=o*f,se=c*h,Bt=c*f;e[0]=h*A,e[4]=Bt-Et*E,e[8]=se*E+Pt,e[1]=E,e[5]=o*A,e[9]=-c*A,e[2]=-f*A,e[6]=Pt*E+se,e[10]=Et-Bt*E}else"XZY"===t.order&&(Et=o*h,Pt=o*f,se=c*h,Bt=c*f,e[0]=h*A,e[4]=-E,e[8]=f*A,e[1]=Et*E+Bt,e[5]=o
vendor: 48,459 bytes, line 1
1*A,e[9]=Pt*E-se,e[2]=se*E-Pt,e[6]=c*A,e[10]=Bt*E+Et);return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},makeRotationFromQuaternion:function(){var t=new W(0,0,0),e=new W(1,1,1);return function(n){return this.compose(t,n,e)}}(),lookAt:function(){var t=new W,e=new W,n=new W;return function(r,i,o){var c=this.elements;return n.subVectors(r,i),0===n.lengthSq()&&(n.z=1),n.normalize(),t.crossVectors(o,n),0===t.lengthSq()&&(1===Math.abs(o.z)?n.x+=1e-4:n.z+=1e-4,n.normalize(),t.crossVectors(o,n)),t.normalize(),e.crossVectors(n,t),c[0]=t.x,c[4]=e.x,c[8]=n.x,c[1]=t.y,c[5]=e.y,c[9]=n.y,c[2]=t.z,c[6]=e.z,c[10]=n.z,this}}(),multiply:function(t,e){return void 0!==e?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)},premultiply:function(t){return this.multiplyMatrices(t,this)},multiplyMatrices:function(t,e){var n=t.elements,r=e.elements,i=this.elements,o=n[0],c=n[4],h=n[8],f=n[12],A=n[1],E=n[5],C=n[9],S=n[13],F=n[2],tt=n[6],rt=n[10],ot=n[14],St=n[3],yt=n[7],Et=n[11],Pt=n[15],se=r[0],Bt=r[4],Ct=r[8],xe=r[12],Yt=r[1],Ft=r[5],He=r[9],Xe=r[13],_e=r[2],ke=r[6],Ne=r[10],Fe=r[14],gn=r[3],$e=r[7],ln=r[11],Ue=r[15];return i[0]=o*se+c*Yt+h*_e+f*gn,i[4]=o*Bt+c*Ft+h*ke+f*$e,i[8]=o*Ct+c*He+h*Ne+f*ln,i[12]=o*xe+c*Xe+h*Fe+f*Ue,i[1]=A*se+E*Yt+C*_e+S*gn,i[5]=A*Bt+E*Ft+C*ke+S*$e,i[9]=A*Ct+E*He+C*Ne+S*ln,i[13]=A*xe+E*Xe+C*Fe+S*Ue,i[2]=F*se+tt*Yt+rt*_e+ot*gn,i[6]=F*Bt+tt*Ft+rt*ke+ot*$e,i[10]=F*Ct+tt*He+rt*Ne+ot*ln,i[14]=F*xe+tt*Xe+rt*Fe+ot*Ue,i[3]=St*se+yt*Yt+Et*_e+Pt*gn,i[7]=St*Bt+yt*Ft+Et*ke+Pt*$e,i[11]=St*Ct+yt*He+Et*Ne+Pt*ln,i[15]=St*xe+yt*Xe+Et*Fe+Pt*Ue,this},multiplyScalar:function(t){var e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this},applyToBufferAttribute:function(){var t=new W;return function(e){for(var n=0,r=e.count;n<r;n++)t.x=e.getX(n),t.y=e.getY(n),t.z=e.getZ(n),t.applyMatrix4(this),e.setXYZ(n,t.x,t.y,t.z);return e}}(),determinant:function(){var t=this.elements,e=t[0],n=t[4],r=t[8],i=t[12],o=t[1],c=t[5],h=t[9],f=t[13],A=t[2],E=t[6],C=t[10],S=t[14];return t[3]*(+i*h*E-r*f*E-i*c*C+n*f*C+r*c*S-n*h*S)+t[7]*(+e*h*S-e*f*C+i*o*C-r*o*S+r*f*A-i*h*A)+t[11]*(+e*f*E-e*c*S-i*o*E+n*o*S+i*c*A-n*f*A)+t[15]*(-r*c*A-e*h*E+e*c*C+r*o*E-n*o*C+n*h*A)},transpose:function(){var t,e=this.elements;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this},setPosition:function(t){var e=this.elements;return e[12]=t.x,e[13]=t.y,e[14]=t.z,this},getInverse:function(t,e){var n=this.elements,r=t.elements,i=r[0],o=r[1],c=r[2],h=r[3],f=r[4],A=r[5],E=r[6],C=r[7],S=r[8],F=r[9],tt=r[10],rt=r[11],ot=r[12],St=r[13],yt=r[14],Et=r[15],Pt=F*yt*C-St*tt*C+St*E*rt-A*yt*rt-F*E*Et+A*tt*Et,se=ot*tt*C-S*yt*C-ot*E*rt+f*yt*rt+S*E*Et-f*tt*Et,Bt=S*St*C-ot*F*C+ot*A*rt-f*St*rt-S*A*Et+f*F*Et,Ct=ot*F*E-S*St*E-ot*A*tt+f*St*tt+S*A*yt-f*F*yt,xe=i*Pt+o*se+c*Bt+h*Ct;if(0===xe){var Yt="THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0";if(!0===e)throw new Error(Yt);return console.warn(Yt),this.identity()}var Ft=1/xe;return n[0]=Pt*Ft,n[1]=(St*tt*h-F*yt*h-St*c*rt+o*yt*rt+F*c*Et-o*tt*Et)*Ft,n[2]=(A*yt*h-St*E*h+St*c*C-o*yt*C-A*c*Et+o*E*Et)*Ft,n[3]=(F*E*h-A*tt*h-F*c*C+o*tt*C+A*c*rt-o*E*rt)*Ft,n[4]=se*Ft,n[5]=(S*yt*h-ot*tt*h+ot*c*rt-i*yt*rt-S*c*Et+i*tt*Et)*Ft,n[6]=(ot*E*h-f*yt*h-ot*c*C+i*yt*C+f*c*Et-i*E*Et)*Ft,n[7]=(f*tt*h-S*E*h+S*c*C-i*tt*C-f*c*rt+i*E*rt)*Ft,n[8]=Bt*Ft,n[9]=(ot*F*h-S*St*h-ot*o*rt+i*St*rt+S*o*Et-i*F*Et)*Ft,n[10]=(f*St*h-ot*A*h+ot*o*C-i*St*C-f*o*Et+i*A*Et)*Ft,n[11]=(S*A*h-f*F*h-S*o*C+i*F*C+f*o*rt-i*A*rt)*Ft,n[12]=Ct*Ft,n[13]=(S*St*c-ot*F*c+ot*o*tt-i*St*tt-S*o*yt+i*F*yt)*Ft,n[14]=(ot*A*c-f*St*c-ot*o*E+i*St*E+f*o*yt-i*A*yt)*Ft,n[15]=(f*F*c-S*A*c+S*o*E-i*F*E-f*o*tt+i*A*tt)*Ft,this},scale:function(t){var e=this.elements,n=t.x,r=t.y,i=t.z;return e[0]*=n,e[4]*=r,e[8]*=i,e[1]*=n,e[5]*=r,e[9]*=i,e[2]*=n,e[6]*=r,e[10]*=i,e[3]*=n,e[7]*=r,e[11]*=i,this},getMaxScaleOnAxis:function(){var t=this.elements;return Math.sqrt(Math.max(t[0]*t[0]+t[1]*t[1]+t[2]*t[2],t[4]*t[4]+t[5]*t[5]+t[6]*t[6],t[8]*t[8]+t[9]*t[9]+t[10]*t[10]))},makeTranslation:function(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this},makeRotationX:function(t){var e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this},makeRotationY:function(t){var e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this},makeRotationZ:function(t){var e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this},makeRotationAxis:function(t,e){var n=Math.cos(e),r=Math.sin(e),i=1-n,o=t.x,c=t.y,h=t.z,f=i*o,A=i*c;return this.set(f*o+n,f*c-r*h,f*h+r*c,0,f*c+r*h,A*c+n,A*h-r*o,0,f*h-r*c,A*h+r*o,i*h*h+n,0,0,0,0,1),this},makeScale:function(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this},makeShear:function(t,e,n){return this.set(1,e,n,0,t,1,n,0,t,e,1,0,0,0,0,1),this},compose:function(t,e,n){var r=this.elements,i=e._x,o=e._y,c=e._z,h=e._w,f=i+i,A=o+o,E=c+c,C=i*f,S=i*A,F=i*E,tt=o*A,rt=o*E,ot=c*E,St=h*f,yt=h*A,Et=h*E,Pt=n.x,se=n.y,Bt=n.z;return r[0]=(1-(tt+ot))*Pt,r[1]=(S+Et)*Pt,r[2]=(F-yt)*Pt,r[3]=0,r[4]=(S-Et)*se,r[5]=(1-(C+ot))*se,r[6]=(rt+St)*se,r[7]=0,r[8]=(F+yt)*Bt,r[9]=(rt-St)*Bt,r[10]=(1-(C+tt))*Bt,r[11]=0,r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=1,this},decompose:function(){var t=new W,e=new dt;return function(n,r,i){var o=this.elements,c=t.set(o[0],o[1],o[2]).length(),h=t.set(o[4],o[5],o[6]).length(),f=t.set(o[8],o[9],o[10]).length();this.determinant()<0&&(c=-c),n.x=o[12],n.y=o[13],n.z=o[14],e.copy(this);var A=1/c,E=1/h,C=1/f;return e.elements[0]*=A,e.elements[1]*=A,e.elements[2]*=A,e.elements[4]*=E,e.elements[5]*=E,e.elements[6]*=E,e.elements[8]*=C,e.elements[9]*=C,e.elements[10]*=C,r.setFromRotationMatrix(e),i.x=c,i.y=h,i.z=f,this}}(),makePerspective:function(t,e,n,r,i,o){void 0===o&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");var c=this.elements,h=2*i/(n-r),f=(e+t)/(e-t),A=(n+r)/(n-r),E=-(o+i)/(o-i),C=-2*o*i/(o-i);return c[0]=2*i/(e-t),c[4]=0,c[8]=f,c[12]=0,c[1]=0,c[5]=h,c[9]=A,c[13]=0,c[2]=0,c[6]=0,c[10]=E,c[14]=C,c[3]=0,c[7]=0,c[11]=-1,c[15]=0,this},makeOrthographic:function(t,e,n,r,i,o){var c=this.elements,h=1/(e-t),f=1/(n-r),A=1/(o-i),E=(e+t)*h,C=(n+r)*f,S=(o+i)*A;return c[0]=2*h,c[4]=0,c[8]=0,c[12]=-E,c[1]=0,c[5]=2*f,c[9]=0,c[13]=-C,c[2]=0,c[6]=0,c[10]=-2*A,c[14]=-S,c[3]=0,c[7]=0,c[11]=0,c[15]=1,this},equals:function(t){for(var e=this.elements,n=t.elements,r=0;r<16;r++)if(e[r]!==n[r])return!1;return!0},fromArray:function(t,e){void 0===e&&(e=0);for(var n=0;n<16;n++)this.elements[n]=t[n+e];return this},toArray:function(t,e){void 0===t&&(t=[]),void 0===e&&(e=0);var n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}),Object.assign(wt,{slerp:function(t,e,n,r){return n.copy(t).slerp(e,r)},slerpFlat:function(t,e,n,r,i,o,c){var h=n[r+0],f=n[r+1],A=n[r+2],E=n[r+3],C=i[o+0],S=i[o+1],F=i[o+2],tt=i[o+3];if(E!==tt||h!==C||f!==S||A!==F){var rt=1-c,ot=h*C+f*S+A*F+E*tt,St=ot>=0?1:-1,yt=1-ot*ot;if(yt>Number.EPSILON){var Et=Math.sqrt(yt),Pt=Math.atan2(Et,ot*St);rt=Math.sin(rt*Pt)/Et,c=Math.sin(c*Pt)/Et}var se=c*St;if(h=h*rt+C*se,f=f*rt+S*se,A=A*rt+F*se,E=E*rt+tt*se,rt===1-c){var Bt=1/Math.sqrt(h*h+f*f+A*A+E*E);h*=Bt,f*=Bt,A*=Bt,E*=Bt}}t[e]=h,t[e+1]=f,t[e+2]=A,t[e+3]=E}}),Object.defineProperties(wt.prototype,{x:{get:function(){return this._x},set:function(t){this._x=t,this.onChangeCallback()}},y:{get:function(){return this._y},set:function(t){this._y=t,this.onChangeCallback()}},z:{get:function(){return this._z},set:function(t){this._z=t,this.onChangeCallback()}},w:{get:function(){return this._w},set:function(t){this._w=t,this.onChangeCallback()}}}),Object.assign(wt.prototype,{isQuaternion:!0,set:function(t,e,n,r){return this._x=t,this._y=e,this._z=n,this._w=r,this.onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._w)},copy:function(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this.onChangeCallback(),this},setFromEuler:function(t,e){if(!t||!t.isEuler)throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");var n=t._x,r=t._y,i=t._z,o=t.order,c=Math.cos,h=Math.sin,f=c(n/2),A=c(r/2),E=c(i/2),C=h(n/2),S=h(r/2),F=h(i/2);return"XYZ"===o?(this._x=C*A*E+f*S*F,this._y=f*S*E-C*A*F,this._z=f*A*F+C*S*E,this._w=f*A*E-C*S*F):"YXZ"===o?(this._x=C*A*E+f*S*F,this._y=f*S*E-C*A*F,this._z=f*A*F-C*S*E,this._w=f*A*E+C*S*F):"ZXY"===o?(this._x=C*A*E-f*S*F,this._y=f*S*E+C*A*F,this._z=f*A*F+C*S*E,this._w=f*A*E-C*S*F):"ZYX"===o?(this._x=C*A*E-f*S*F,this._y=f*S*E+C*A*F,this._z=f*A*F-C*S*E,this._w=f*A*E+C*S*F):"YZX"===o?(this._x=C*A*E+f*S*F,this._y=f*S*E+C*A*F,this._z=f*A*F-C*S*E,this._w=f*A*E-C*S*F):"XZY"===o&&(this._x=C*A*E-f*S*F,this._y=f*S*E-C*A*F,this._z=f*A*F+C*S*E,this._w=f*A*E+C*S*F),!1!==e&&this.onChangeCallback(),this},setFromAxisAngle:function(t,e){var n=e/2,r=Math.sin(n);return this._x=t.x*r,this._y=t.y*r,this._z=t.z*r,this._w=Math.cos(n),this.onChangeCallback(),this},setFromRotationMatrix:function(t){var e,n=t.elements,r=n[0],i=n[4],o=n[8],c=n[1],h=n[5],f=n[9],A=n[2],E=n[6],C=n[10],S=r+h+C;return S>0?(e=.5/Math.sqrt(S+1),this._w=.25/e,this._x=(E-f)*e,this._y=(o-A)*e,this._z=(c-i)*e):r>h&&r>C?(e=2*Math.sqrt(1+r-h-C),this._w=(E-f)/e,this._x=.25*e,this._y=(i+c)/e,this._z=(o+A)/e):h>C?(e=2*Math.sqrt(1+h-r-C),this._w=(o-A)/e,this._x=(i+c)/e,this._y=.25*e,this._z=(f+E)/e):(e=2*Math.sqrt(1+C-r-h),this._w=(c-i)/e,this._x=(o+A)/e,this._y=(f+E)/e,this._z=.25*e),this.onChangeCallback(),this},setFromUnitVectors:function(){var t,e=new W;return function(n,r){return void 0===e&&(e=new W),(t=n.dot(r)+1)<1e-6?(t=0,Math.abs(n.x)>Math.abs(n.z)?e.set(-n.y,n.x,0):e.set(0,-n.z,n.y)):e.crossVectors(n,r),this._x=e.x,this._y=e.y,this._z=e.z,this._w=t,this.normalize()}}(),angleTo:function(t){return 2*Math.acos(Math.abs(U.clamp(this.dot(t),-1,1)))},rotateTowards:function(t,e){var n=this.angleTo(t);if(0===n)return this;var r=Math.min(1,e/n);return this.slerp(t,r),this},inverse:function(){return this.conjugate()},conjugate:function(){return this._x*=-1,this._y*=-1,this._z*=-1,this.onChangeCallback(),this},dot:function(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w},lengthSq:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(this._x=this._x*(t=1/t),this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this.onChangeCallback(),this},multiply:function(t,e){return void 0!==e?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)},premultiply:function(t){return this.multiplyQuaternions(t,this)},multiplyQuaternions:function(t,e){var n=t._x,r=t._y,i=t._z,o=t._w,c=e._x,h=e._y,f=e._z,A=e._w;return this._x=n*A+o*c+r*f-i*h,this._y=r*A+o*h+i*c-n*f,this._z=i*A+o*f+n*h-r*c,this._w=o*A-n*c-r*h-i*f,this.onChangeCallback(),this},slerp:function(t,e){if(0===e)return this;if(1===e)return this.copy(t);var n=this._x,r=this._y,i=this._z,o=this._w,c=o*t._w+n*t._x+r*t._y+i*t._z;if(c<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,c=-c):this.copy(t),c>=1)return this._w=o,this._x=n,this._y=r,this._z=i,this;var h=1-c*c;if(h<=Number.EPSILON){var f=1-e;return this._w=f*o+e*this._w,this._x=f*n+e*this._x,this._y=f*r+e*this._y,this._z=f*i+e*this._z,this.normalize()}var A=Math.sqrt(h),E=Math.atan2(A,c),C=Math.sin((1-e)*E)/A,S=Math.sin(e*E)/A;return this._w=o*C+this._w*S,this._x=n*C+this._x*S,this._y=r*C+this._y*S,this._z=i*C+this._z*S,this.onChangeCallback(),this},equals:function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w},fromArray:function(t,e){return void 0===e&&(e=0),this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this.onChangeCallback(),this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t},onChange:function(t){return this.onChangeCallback=t,this},onChangeCallback:function(){}}),Object.assign(W.prototype,{isVector3:!0,set:function(t,e,n){return this.x=t,this.y=e,this.z=n,this},setScalar:function(t){return this.x=t,this.y=t,this.z=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this},add:function(t,e){return void 0!==e?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)},addScalar:function(t){return this.x+=t,this.y+=t,this.z+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this},sub:function(t,e){return void 0!==e?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)},subScalar:function(t){return this.x-=t,this.y-=t,this.z-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this},multiply:function(t,e){return void 0!==e?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)},multiplyScalar:function(t){return this.x*=t,this.y*=t,this.z*=t,this},multiplyVectors:function(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this},applyEuler:function(){var t=new wt;return function(e){return e&&e.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(t.setFromEuler(e))}}(),applyAxisAngle:function(){var t=new wt;return function(e,n){return this.applyQuaternion(t.setFromAxisAngle(e,n))}}(),applyMatrix3:function(t){var e=this.x,n=this.y,r=this.z,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6]*r,this.y=i[1]*e+i[4]*n+i[7]*r,this.z=i[2]*e+i[5]*n+i[8]*r,this},applyMatrix4:function(t){var e=this.x,n=this.y,r=this.z,i=t.elements,o=1/(i[3]*e+i[7]*n+i[11]*r+i[15]);return this.x=(i[0]*e+i[4]*n+i[8]*r+i[12])*o,this.y=(i[1]*e+i[5]*n+i[9]*r+i[13])*o,this.z=(i[2]*e+i[6]*n+i[10]*r+i[14])*o,this},applyQuaternion:function(t){var e=this.x,n=this.y,r=this.z,i=t.x,o=t.y,c=t.z,h=t.w,f=h*e+o*r-c*n,A=h*n+c*e-i*r,E=h*r+i*n-o*e,C=-i*e-o*n-c*r;return this.x=f*h+C*-i+A*-c-E*-o,this.y=A*h+C*-o+E*-i-f*-c,this.z=E*h+C*-c+f*-o-A*-i,this},project:function(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)},unproject:function(){var t=new dt;return function(e){return this.applyMatrix4(t.getInverse(e.projectionMatrix)).applyMatrix4(e.matrixWorld)}}(),transformDirection:function(t){var e=this.x,n=this.y,r=this.z,i=t.elements;return this.x=i[0]*e+i[4]*n+i[8]*r,this.y=i[1]*e+i[5]*n+i[9]*r,this.z=i[2]*e+i[6]*n+i[10]*r,this.normalize()},divide:function(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this},divideScalar:function(t){return this.multiplyScalar(1/t)},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this},clampScalar:function(){var t=new W,e=new W;return function(n,r){return t.set(n,n,n),e.set(r,r,r),this.clamp(t,e)}}(),clampLength:function(t,e){var n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this},lerpVectors:function(t,e,n){return this.subVectors(e,t).multiplyScalar(n).add(t)},cross:function(t,e){return void 0!==e?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(t,e)):this.crossVectors(this,t)},crossVectors:function(t,e){var n=t.x,r=t.y,i=t.z,o=e.x,c=e.y,h=e.z;return this.x=r*h-i*c,this.y=i*o-n*h,this.z=n*c-r*o,this},projectOnVector:function(t){var e=t.dot(this)/t.lengthSq();return this.copy(t).multiplyScalar(e)},projectOnPlane:function(){var t=new W;return function(e){return t.copy(this).projectOnVector(e),this.sub(t)}}(),reflect:function(){var t=new W;return function(e){return this.sub(t.copy(e).multiplyScalar(2*this.dot(e)))}}(),angleTo:function(t){var e=this.dot(t)/Math.sqrt(this.lengthSq()*t.lengthSq());return Math.acos(U.clamp(e,-1,1))},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x,n=this.y-t.y,r=this.z-t.z;return e*e+n*n+r*r},manhattanDistanceTo:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)},setFromSpherical:function(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)},setFromSphericalCoords:function(t,e,n){var r=Math.sin(e)*t;return this.x=r*Math.sin(n),this.y=Math.cos(e)*t,this.z=r*Math.cos(n),this},setFromCylindrical:function(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)},setFromCylindricalCoords:function(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this},setFromMatrixPosition:function(t){var e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this},setFromMatrixScale:function(t){var e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),r=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=r,this},setFromMatrixColumn:function(t,e){return this.fromArray(t.elements,4*e)},equals:function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t},fromBufferAttribute:function(t,e,n){return void 0!==n&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}}),Object.assign(te.prototype,{isMatrix3:!0,set:function(t,e,n,r,i,o,c,h,f){var A=this.elements;return A[0]=t,A[1]=r,A[2]=c,A[3]=e,A[4]=i,A[5]=h,A[6]=n,A[7]=o,A[8]=f,this},identity:function(){return this.set(1,0,0,0,1,0,0,0,1),this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(t){var e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this},setFromMatrix4:function(t){var e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this},applyToBufferAttribute:function(){var t=new W;return function(e){for(var n=0,r=e.count;n<r;n++)t.x=e.getX(n),t.y=e.getY(n),t.z=e.getZ(n),t.applyMatrix3(this),e.setXYZ(n,t.x,t.y,t.z);return e}}(),multiply:function(t){return this.multiplyMatrices(this,t)},premultiply:function(t){return this.multiplyMatrices(t,this)},multiplyMatrices:function(t,e){var n=t.elements,r=e.elements,i=this.elements,o=n[0],c=n[3],h=n[6],f=n[1],A=n[4],E=n[7],C=n[2],S=n[5],F=n[8],tt=r[0],rt=r[3],ot=r[6],St=r[1],yt=r[4],Et=r[7],Pt=r[2],se=r[5],Bt=r[8];return i[0]=o*tt+c*St+h*Pt,i[3]=o*rt+c*yt+h*se,i[6]=o*ot+c*Et+h*Bt,i[1]=f*tt+A*St+E*Pt,i[4]=f*rt+A*yt+E*se,i[7]=f*ot+A*Et+E*Bt,i[2]=C*tt+S*St+F*Pt,i[5]=C*rt+S*yt+F*se,i[8]=C*ot+S*Et+F*Bt,this},multiplyScalar:function(t){var e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this},determinant:function(){var t=this.elements,e=t[0],n=t[1],r=t[2],i=t[3],o=t[4],c=t[5],h=t[6],f=t[7],A=t[8];return e*o*A-e*c*f-n*i*A+n*c*h+r*i*f-r*o*h},getInverse:function(t,e){t&&t.isMatrix4&&console.error("THREE.Matrix3: .getInverse() no longer takes a Matrix4 argument.");var n=t.elements,r=this.elements,i=n[0],o=n[1],c=n[2],h=n[3],f=n[4],A=n[5],E=n[6],C=n[7],S=n[8],F=S*f-A*C,tt=A*E-S*h,rt=C*h-f*E,ot=i*F+o*tt+c*rt;if(0===ot){var St="THREE.Matrix3: .getInverse() can't invert matrix, determinant is 0";if(!0===e)throw new Error(St);return console.warn(St),this.identity()}var yt=1/ot;return r[0]=F*yt,r[1]=(c*C-S*o)*yt,r[2]=(A*o-c*f)*yt,r[3]=tt*yt,r[4]=(S*i-c*E)*yt,r[5]=(c*h-A*i)*yt,r[6]=rt*yt,r[7]=(o*E-C*i)*yt,r[8]=(f*i-o*h)*yt,this},transpose:function(){var t,e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this},getNormalMatrix:function(t){return this.setFromMatrix4(t).getInverse(this).transpose()},transposeIntoArray:function(t){var e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this},setUvTransform:function(t,e,n,r,i,o,c){var h=Math.cos(i),f=Math.sin(i);this.set(n*h,n*f,-n*(h*o+f*c)+o+t,-r*f,r*h,-r*(-f*o+h*c)+c+e,0,0,1)},scale:function(t,e){var n=this.elements;return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=e,n[4]*=e,n[7]*=e,this},rotate:function(t){var e=Math.cos(t),n=Math.sin(t),r=this.elements,i=r[0],o=r[3],c=r[6],h=r[1],f=r[4],A=r[7];return r[0]=e*i+n*h,r[3]=e*o+n*f,r[6]=e*c+n*A,r[1]=-n*i+e*h,r[4]=-n*o+e*f,r[7]=-n*c+e*A,this},translate:function(t,e){var n=this.elements;return n[0]+=t*n[2],n[3]+=t*n[5],n[6]+=t*n[8],n[1]+=e*n[2],n[4]+=e*n[5],n[7]+=e*n[8],this},equals:function(t){for(var e=this.elements,n=t.elements,r=0;r<9;r++)if(e[r]!==n[r])return!1;return!0},fromArray:function(t,e){void 0===e&&(e=0);for(var n=0;n<9;n++)this.elements[n]=t[n+e];return this},toArray:function(t,e){void 0===t&&(t=[]),void 0===e&&(e=0);var n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}});var ae={getDataURL:function(t){var e;if(t instanceof HTMLCanvasElement)e=t;else{(e=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")).width=t.width,e.height=t.height;var n=e.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height)}return e.width>2048||e.height>2048?e.toDataURL("image/jpeg",.6):e.toDataURL("image/png")}},Ae=0;function ge(t,e,n,r,i,o,c,h,f,A){Object.defineProperty(this,"id",{value:Ae++}),this.uuid=U.generateUUID(),this.name="",this.image=void 0!==t?t:ge.DEFAULT_IMAGE,this.mipmaps=[],this.mapping=void 0!==e?e:ge.DEFAULT_MAPPING,this.wrapS=void 0!==n?n:B,this.wrapT=void 0!==r?r:B,this.magFilter=void 0!==i?i:H,this.minFilter=void 0!==o?o:Y,this.anisotropy=void 0!==f?f:1,this.format=void 0!==c?c:J,this.type=void 0!==h?h:1009,this.offset=new G(0,0),this.repeat=new G(1,1),this.center=new G(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new te,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=void 0!==A?A:Q,this.version=0,this.onUpdate=null}function We(t,e,n,r){this.x=t||0,this.y=e||0,this.z=n||0,this.w=void 0!==r?r:1}function Cn(t,e,n){this.width=t,this.height=e,this.scissor=new We(0,0,t,e),this.scissorTest=!1,this.viewport=new We(0,0,t,e),void 0===(n=n||{}).minFilter&&(n.minFilter=H),this.texture=new ge(void 0,void 0,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.generateMipmaps=void 0===n.generateMipmaps||n.generateMipmaps,this.depthBuffer=void 0===n.depthBuffer||n.depthBuffer,this.stencilBuffer=void 0===n.stencilBuffer||n.stencilBuffer,this.depthTexture=void 0!==n.depthTexture?n.depthTexture:null}function rn(t,e,n){Cn.call(this,t,e,n),this.activeCubeFace=0,this.activeMipMapLevel=0}function Me(t,e,n,r,i,o,c,h,f,A,E,C){ge.call(this,null,o,c,h,f,A,r,i,E,C),this.image={data:t,width:e,height:n},this.magFilter=void 0!==f?f:_,this.minFilter=void 0!==A?A:_,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}function Le(t,e){this.min=void 0!==t?t:new W(1/0,1/0,1/0),this.max=void 0!==e?e:new W(-1/0,-1/0,-1/0)}function Ee(t,e){this.center=void 0!==t?t:new W,this.radius=void 0!==e?e:0}function Qt(t,e){this.normal=void 0!==t?t:new W(1,0,0),this.constant=void 0!==e?e:0}function Ut(t,e,n,r,i,o){this.planes=[void 0!==t?t:new Qt,void 0!==e?e:new Qt,void 0!==n?n:new Qt,void 0!==r?r:new Qt,void 0!==i?i:new Qt,void 0!==o?o:new Qt]}ge.DEFAULT_IMAGE=void 0,ge.DEFAULT_MAPPING=300,ge.prototype=Object.assign(Object.create(D.prototype),{constructor:ge,isTexture:!0,updateMatrix:function(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.name=t.name,this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this},toJSON:function(t){var e=void 0===t||"string"==typeof t;if(!e&&void 0!==t.textures[this.uuid])return t.textures[this.uuid];var n={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY};if(void 0!==this.image){var r=this.image;if(void 0===r.uuid&&(r.uuid=U.generateUUID()),!e&&void 0===t.images[r.uuid]){var i;if(Array.isArray(r)){i=[];for(var o=0,c=r.length;o<c;o++)i.push(ae.getDataURL(r[o]))}else i=ae.getDataURL(r);t.images[r.uuid]={uuid:r.uuid,url:i}}n.image=r.uuid}return e||(t.textures[this.uuid]=n),n},dispose:function(){this.dispatchEvent({type:"dispose"})},transformUv:function(t){if(300!==this.mapping)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case b:t.x=t.x-Math.floor(t.x);break;case B:t.x=t.x<0?0:1;break;case V:t.x=1===Math.abs(Math.floor(t.x)%2)?Math.ceil(t.x)-t.x:t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case b:t.y=t.y-Math.floor(t.y);break;case B:t.y=t.y<0?0:1;break;case V:t.y=1===Math.abs(Math.floor(t.y)%2)?Math.ceil(t.y)-t.y:t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}}),Object.defineProperty(ge.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),Object.assign(We.prototype,{isVector4:!0,set:function(t,e,n,r){return this.x=t,this.y=e,this.z=n,this.w=r,this},setScalar:function(t){return this.x=t,this.y=t,this.z=t,this.w=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setW:function(t){return this.w=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}},clone:function(){return new this.constructor(this.x,this.y,this.z,this.w)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this},add:function(t,e){return void 0!==e?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)},addScalar:function(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this},sub:function(t,e){return void 0!==e?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)},subScalar:function(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this},multiplyScalar:function(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this},applyMatrix4:function(t){var e=this.x,n=this.y,r=this.z,i=this.w,o=t.elements;return this.x=o[0]*e+o[4]*n+o[8]*r+o[12]*i,this.y=o[1]*e+o[5]*n+o[9]*r+o[13]*i,this.z=o[2]*e+o[6]*n+o[10]*r+o[14]*i,this.w=o[3]*e+o[7]*n+o[11]*r+o[15]*i,this},divideScalar:function(t){return this.multiplyScalar(1/t)},setAxisAngleFromQuaternion:function(t){this.w=2*Math.acos(t.w);var e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this},setAxisAngleFromRotationMatrix:function(t){var e,n,r,i,o=.01,c=.1,h=t.elements,f=h[0],A=h[4],E=h[8],C=h[1],S=h[5],F=h[9],tt=h[2],rt=h[6],ot=h[10];if(Math.abs(A-C)<o&&Math.abs(E-tt)<o&&Math.abs(F-rt)<o){if(Math.abs(A+C)<c&&Math.abs(E+tt)<c&&Math.abs(F+rt)<c&&Math.abs(f+S+ot-3)<c)return this.set(1,0,0,0),this;e=Math.PI;var St=(f+1)/2,yt=(S+1)/2,Et=(ot+1)/2,Pt=(A+C)/4,se=(E+tt)/4,Bt=(F+rt)/4;return St>yt&&St>Et?St<o?(n=0,r=.707106781,i=.707106781):(r=Pt/(n=Math.sqrt(St)),i=se/n):yt>Et?yt<o?(n=.707106781,r=0,i=.707106781):(n=Pt/(r=Math.sqrt(yt)),i=Bt/r):Et<o?(n=.707106781,r=.707106781,i=0):(n=se/(i=Math.sqrt(Et)),r=Bt/i),this.set(n,r,i,e),this}var Ct=Math.sqrt((rt-F)*(rt-F)+(E-tt)*(E-tt)+(C-A)*(C-A));return Math.abs(Ct)<.001&&(Ct=1),this.x=(rt-F)/Ct,this.y=(E-tt)/Ct,this.z=(C-A)/Ct,this.w=Math.acos((f+S+ot-1)/2),this},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this},clampScalar:function(){var t,e;return function(n,r){return void 0===t&&(t=new We,e=new We),t.set(n,n,n,n),e.set(r,r,r,r),this.clamp(t,e)}}(),clampLength:function(t,e){var n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this},lerpVectors:function(t,e,n){return this.subVectors(e,t).multiplyScalar(n).add(t)},equals:function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t},fromBufferAttribute:function(t,e,n){return void 0!==n&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}}),Cn.prototype=Object.assign(Object.create(D.prototype),{constructor:Cn,isWebGLRenderTarget:!0,setSize:function(t,e){(this.width!==t||this.height!==e)&&(this.width=t,this.height=e,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.width=t.width,this.height=t.height,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),(rn.prototype=Object.create(Cn.prototype)).constructor=rn,rn.prototype.isWebGLRenderTargetCube=!0,(Me.prototype=Object.create(ge.prototype)).constructor=Me,Me.prototype.isDataTexture=!0,Object.assign(Le.prototype,{isBox3:!0,set:function(t,e){return this.min.copy(t),this.max.copy(e),this},setFromArray:function(t){for(var e=1/0,n=1/0,r=1/0,i=-1/0,o=-1/0,c=-1/0,h=0,f=t.length;h<f;h+=3){var A=t[h],E=t[h+1],C=t[h+2];A<e&&(e=A),E<n&&(n=E),C<r&&(r=C),A>i&&(i=A),E>o&&(o=E),C>c&&(c=C)}return this.min.set(e,n,r),this.max.set(i,o,c),this},setFromBufferAttribute:function(t){for(var e=1/0,n=1/0,r=1/0,i=-1/0,o=-1/0,c=-1/0,h=0,f=t.count;h<f;h++){var A=t.getX(h),E=t.getY(h),C=t.getZ(h);A<e&&(e=A),E<n&&(n=E),C<r&&(r=C),A>i&&(i=A),E>o&&(o=E),C>c&&(c=C)}return this.min.set(e,n,r),this.max.set(i,o,c),this},setFromPoints:function(t){this.makeEmpty();for(var e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this},setFromCenterAndSize:function(){var t=new W;return function(e,n){var r=t.copy(n).multiplyScalar(.5);return this.min.copy(e).sub(r),this.max.copy(e).add(r),this}}(),setFromObject:function(t){return this.makeEmpty(),this.expandByObject(t)},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.min.copy(t.min),this.max.copy(t.max),this},makeEmpty:function(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this},isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z},getCenter:function(t){return void 0===t&&(console.warn("THREE.Box3: .getCenter() target is now required"),t=new W),this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(t){return void 0===t&&(console.warn("THREE.Box3: .getSize() target is now required"),t=new W),this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)},expandByPoint:function(t){return this.min.min(t),this.max.max(t),this},expandByVector:function(t){return this.min.sub(t),this.max.add(t),this},expandByScalar:function(t){return this.min.addScalar(-t),this.max.addScalar(t),this},expandByObject:function(){var t,e,n,r=new W;function i(o){var c=o.geometry;if(void 0!==c)if(c.isGeometry){var h=c.vertices;for(e=0,n=h.length;e<n;e++)r.copy(h[e]),r.applyMatrix4(o.matrixWorld),t.expandByPoint(r)}else if(c.isBufferGeometry){var f=c.attributes.position;if(void 0!==f)for(e=0,n=f.count;e<n;e++)r.fromBufferAttribute(f,e).applyMatrix4(o.matrixWorld),t.expandByPoint(r)}}return function(o){return t=this,o.updateMatrixWorld(!0),o.traverse(i),this}}(),containsPoint:function(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)},containsBox:function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z},getParameter:function(t,e){return void 0===e&&(console.warn("THREE.Box3: .getParameter() target is now required"),e=new W),e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))},intersectsBox:function(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)},intersectsSphere:function(){var t=new W;return function(e){return this.clampPoint(e.center,t),t.distanceToSquared(e.center)<=e.radius*e.radius}}(),intersectsPlane:function(t){var e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant},intersectsTriangle:function(){var t=new W,e=new W,n=new W,r=new W,i=new W,o=new W,c=new W,h=new W,f=new W,A=new W;function E(C){var S,F;for(S=0,F=C.length-3;S<=F;S+=3){c.fromArray(C,S);var tt=f.x*Math.abs(c.x)+f.y*Math.abs(c.y)+f.z*Math.abs(c.z),rt=t.dot(c),ot=e.dot(c),St=n.dot(c);if(Math.max(-Math.max(rt,ot,St),Math.min(rt,ot,St))>tt)return!1}return!0}return function(C){if(this.isEmpty())return!1;this.getCenter(h),f.subVectors(this.max,h),t.subVectors(C.a,h),e.subVectors(C.b,h),n.subVectors(C.c,h),r.subVectors(e,t),i.subVectors(n,e),o.subVectors(t,n);var S=[0,-r.z,r.y,0,-i.z,i.y,0,-o.z,o.y,r.z,0,-r.x,i.z,0,-i.x,o.z,0,-o.x,-r.y,r.x,0,-i.y,i.x,0,-o.y,o.x,0];return!(!E(S)||(S=[1,0,0,0,1,0,0,0,1],!E(S)))&&(A.crossVectors(r,i),E(S=[A.x,A.y,A.z]))}}(),clampPoint:function(t,e){return void 0===e&&(console.warn("THREE.Box3: .clampPoint() target is now required"),e=new W),e.copy(t).clamp(this.min,this.max)},distanceToPoint:function(){var t=new W;return function(e){return t.copy(e).clamp(this.min,this.max).sub(e).length()}}(),getBoundingSphere:function(){var t=new W;return function(e){return void 0===e&&(console.warn("THREE.Box3: .getBoundingSphere() target is now required"),e=new Ee),this.getCenter(e.center),e.radius=.5*this.getSize(t).length(),e}}(),intersect:function(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this},union:function(t){return this.min.min(t.min),this.max.max(t.max),this},applyMatrix4:function(){var t=[new W,new W,new W,new W,new W,new W,new W,new W];return function(e){return this.isEmpty()||(t[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),t[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),t[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),t[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),t[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),t[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),t[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),t[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(t)),this}}(),translate:function(t){return this.min.add(t),this.max.add(t),this},equals:function(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}),Object.assign(Ee.prototype,{set:function(t,e){return this.center.copy(t),this.radius=e,this},setFromPoints:function(){var t=new Le;return function(e,n){var r=this.center;void 0!==n?r.copy(n):t.setFromPoints(e).getCenter(r);for(var i=0,o=0,c=e.length;o<c;o++)i=Math.max(i,r.distanceToSquared(e[o]));return this.radius=Math.sqrt(i),this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.center.copy(t.center),this.radius=t.radius,this},empty:function(){return this.radius<=0},containsPoint:function(t){return t.distanceToSquared(this.center)<=this.radius*this.radius},distanceToPoint:function(t){return t.distanceTo(this.center)-this.radius},intersectsSphere:function(t){var e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e},intersectsBox:function(t){return t.intersectsSphere(this)},intersectsPlane:function(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius},clampPoint:function(t,e){var n=this.center.distanceToSquared(t);return void 0===e&&(console.warn("THREE.Sphere: .clampPoint() target is now required"),e=new W),e.copy(t),n>this.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e},getBoundingBox:function(t){return void 0===t&&(console.warn("THREE.Sphere: .getBoundingBox() target is now required"),t=new Le),t.set(this.center,this.center),t.expandByScalar(this.radius),t},applyMatrix4:function(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this},translate:function(t){return this.center.add(t),this},equals:function(t){return t.center.equals(this.center)&&t.radius===this.radius}}),Object.assign(Qt.prototype,{set:function(t,e){return this.normal.copy(t),this.constant=e,this},setComponents:function(t,e,n,r){return this.normal.set(t,e,n),this.constant=r,this},setFromNormalAndCoplanarPoint:function(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this},setFromCoplanarPoints:function(){var t=new W,e=new W;return function(n,r,i){var o=t.subVectors(i,r).cross(e.subVectors(n,r)).normalize();return this.setFromNormalAndCoplanarPoint(o,n),this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.normal.copy(t.normal),this.constant=t.constant,this},normalize:function(){var t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this},negate:function(){return this.constant*=-1,this.normal.negate(),this},distanceToPoint:function(t){return this.normal.dot(t)+this.constant},distanceToSphere:function(t){return this.distanceToPoint(t.center)-t.radius},projectPoint:function(t,e){return void 0===e&&(console.warn("THREE.Plane: .projectPoint() target is now required"),e=new W),e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)},intersectLine:function(){var t=new W;return function(e,n){void 0===n&&(console.warn("THREE.Plane: .intersectLine() target is now required"),n=new W);var r=e.delta(t),i=this.normal.dot(r);if(0===i)return 0===this.distanceToPoint(e.start)?n.copy(e.start):void 0;var o=-(e.start.dot(this.normal)+this.constant)/i;return o<0||o>1?void 0:n.copy(r).multiplyScalar(o).add(e.start)}}(),intersectsLine:function(t){var e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0},intersectsBox:function(t){return t.intersectsPlane(this)},intersectsSphere:function(t){return t.intersectsPlane(this)},coplanarPoint:function(t){return void 0===t&&(console.warn("THREE.Plane: .coplanarPoint() target is now required"),t=new W),t.copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(){var t=new W,e=new te;return function(n,r){var i=r||e.getNormalMatrix(n),o=this.coplanarPoint(t).applyMatrix4(n),c=this.normal.applyMatrix3(i).normalize();return this.constant=-o.dot(c),this}}(),translate:function(t){return this.constant-=t.dot(this.normal),this},equals:function(t){return t.normal.equals(this.normal)&&t.constant===this.constant}}),Object.assign(Ut.prototype,{set:function(t,e,n,r,i,o){var c=this.planes;return c[0].copy(t),c[1].copy(e),c[2].copy(n),c[3].copy(r),c[4].copy(i),c[5].copy(o),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){for(var e=this.planes,n=0;n<6;n++)e[n].copy(t.planes[n]);return this},setFromMatrix:function(t){var e=this.planes,n=t.elements,r=n[0],i=n[1],o=n[2],c=n[3],h=n[4],f=n[5],A=n[6],E=n[7],C=n[8],S=n[9],F=n[10],tt=n[11],rt=n[12],ot=n[13],St=n[14],yt=n[15];return e[0].setComponents(c-r,E-h,tt-C,yt-rt).normalize(),e[1].setComponents(c+r,E+h,tt+C,yt+rt).normalize(),e[2].setComponents(c+i,E+f,tt+S,yt+ot).normalize(),e[3].setComponents(c-i,E-f,tt-S,yt-ot).normalize(),e[4].setComponents(c-o,E-A,tt-F,yt-St).normalize(),e[5].setComponents(c+o,E+A,tt+F,yt+St).normalize(),this},intersectsObject:function(){var t=new Ee;return function(e){var n=e.geometry;return null===n.boundingSphere&&n.computeBoundingSphere(),t.copy(n.boundingSphere).applyMatrix4(e.matrixWorld),this.intersectsSphere(t)}}(),intersectsSprite:function(){var t=new Ee;return function(e){return t.center.set(0,0,0),t.radius=.7071067811865476,t.applyMatrix4(e.matrixWorld),this.intersectsSphere(t)}}(),intersectsSphere:function(t){for(var e=this.planes,n=t.center,r=-t.radius,i=0;i<6;i++)if(e[i].distanceToPoint(n)<r)return!1;return!0},intersectsBox:function(){var t=new W;return function(e){for(var n=this.planes,r=0;r<6;r++){var i=n[r];if(t.x=i.normal.x>0?e.max.x:e.min.x,t.y=i.normal.y>0?e.max.y:e.min.y,t.z=i.normal.z>0?e.max.z:e.min.z,i.distanceToPoint(t)<0)return!1}return!0}}(),containsPoint:function(t){for(var e=this.planes,n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}});var Mt={alphamap_fragment:"#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif\n",alphamap_pars_fragment:"#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif\n",alphatest_fragment:"#ifdef ALPHATEST\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n#endif\n",aomap_fragment:"#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_ENVMAP ) && defined( PHYSICAL )\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\n\t#endif\n#endif\n",aomap_pars_fragment:"#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif",begin_vertex:"\nvec3 transformed = vec3( position );\n",beginnormal_vertex:"\nvec3 objectNormal = vec3( normal );\n",bsdfs:"float punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\tif( cutoffDistance > 0.0 ) {\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n#else\n\tif( cutoffDistance > 0.0 ) {\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t}\n\treturn 1.0;\n#endif\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor
vendor: 3,896 bytes, line 1
1;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNL = saturate( dot( geometry.normal, incidentLight.direction ) );\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nvec3 BRDF_Specular_GGX_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t
1const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 AB = vec2( -1.04, 1.04 ) * a004 + r.zw;\n\treturn specularColor * AB.x + AB.y;\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 );\n\t\tfDet *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif\n",clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vViewPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vViewPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\tif ( clipped ) discard;\n\t#endif\n#endif\n",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\t#if ! defined( PHYSICAL ) && ! defined( PHONG ) && ! defined( MATCAP )\n\t\tvarying vec3 vViewPosition;\n\t#endif\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif\n",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG ) && ! defined( MATCAP )\n\tvarying vec3 vViewPosition;\n#endif\n",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG ) && ! defined( MATCAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n",color_fragment:"#ifdef USE_COLOR\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif\n",color_pars_vertex:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",color_vertex:"#ifdef USE_COLOR\n\tvColor.xyz = color.xyz;\n#endif",common:"#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI_HALF 1.5707963267949\n#define RECIPROCAL_PI 0.31830988618\n#define RECIPROCAL_PI2 0.15915494\n#define LOG2 1.442695\n#define EPSILON 1e-6\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#define whiteCompliment(a) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract(sin(sn) * c);\n}\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance = dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\n",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n#define cubeUV_textureSize (1024.0)\nint getFaceFromDirection(vec3 direction) {\n\tvec3 absDirection = abs(direction);\n\tint face = -1;\n\tif( absDirection.x > absDirection.z ) {\n\t\tif(absDirection.x > absDirection.y )\n\t\t\tface = direction.x > 0.0 ? 0 : 3;\n\t\telse\n\t\t\tface = direction.y > 0.0 ? 1 : 4;\n\t}\n\telse {\n\t\tif(absDirection.z > absDirection.y )\n\t\t\tface = direction.z > 0.0 ? 2 : 5;\n\t\telse\n\t\t\tface = direction.y > 0.0 ? 1 : 4;\n\t}\n\treturn face;\n}\n#define cubeUV_maxLods1 (log2(cubeUV_textureSize*0.25) - 1.0)\n#define cubeUV_rangeClamp (exp2((6.0 - 1.0) * 2.0))\nvec2 MipLevelInfo( vec3 vec, float roughnessLevel, float roughness ) {\n\tfloat scale = exp2(cubeUV_maxLods1 - roughnessLevel);\n\tfloat dxRoughness = dFdx(roughness);\n\tfloat dyRoughness = dFdy(roughness);\n\tvec3 dx = dFdx( vec * scale * dxRoughness );\n\tvec3 dy = dFdy( vec * scale * dyRoughness );\n\tfloat d = max( dot( dx, dx ), dot( dy, dy ) );\n\td = clamp(d, 1.0, cubeUV_rangeClamp);
1\n\tfloat mipLevel = 0.5 * log2(d);\n\treturn vec2(floor(mipLevel), fract(mipLevel));\n}\n#define cubeUV_maxLods2 (log2(cubeUV_textureSize*0.25) - 2.0)\n#define cubeUV_rcpTextureSize (1.0 / cubeUV_textureSize)\nvec2 getCubeUV(vec3 direction, float roughnessLevel, float mipLevel) {\n\tmipLevel = roughnessLevel > cubeUV_maxLods2 - 3.0 ? 0.0 : mipLevel;\n\tfloat a = 16.0 * cubeUV_rcpTextureSize;\n\tvec2 exp2_packed = exp2( vec2( roughnessLevel, mipLevel ) );\n\tvec2 rcp_exp2_packed = vec2( 1.0 ) / exp2_packed;\n\tfloat powScale = exp2_packed.x * exp2_packed.y;\n\tfloat scale = rcp_exp2_packed.x * rcp_exp2_packed.y * 0.25;\n\tfloat mipOffset = 0.75*(1.0 - rcp_exp2_packed.y) * rcp_exp2_packed.x;\n\tbool bRes = mipLevel == 0.0;\n\tscale = bRes && (scale < a) ? a : scale;\n\tvec3 r;\n\tvec2 offset;\n\tint face = getFaceFromDirection(direction);\n\tfloat rcpPowScale = 1.0 / powScale;\n\tif( face == 0) {\n\t\tr = vec3(direction.x, -direction.z, direction.y);\n\t\toffset = vec2(0.0+mipOffset,0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 1) {\n\t\tr = vec3(direction.y, direction.x, direction.z);\n\t\toffset = vec2(scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 2) {\n\t\tr = vec3(direction.z, direction.x, direction.y);\n\t\toffset = vec2(2.0*scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 3) {\n\t\tr = vec3(direction.x, direction.z, direction.y);\n\t\toffset = vec2(0.0+mipOffset,0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse if( face == 4) {\n\t\tr = vec3(direction.y, direction.x, -direction.z);\n\t\toffset = vec2(scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse {\n\t\tr = vec3(direction.z, -direction.x, direction.y);\n\t\toffset = vec2(2.0*scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\tr = normalize(r);\n\tfloat texelOffset = 0.5 * cubeUV_rcpTextureSize;\n\tvec2 s = ( r.yz / abs( r.x ) + vec2( 1.0 ) ) * 0.5;\n\tvec2 base = offset + vec2( texelOffset );\n\treturn base + s * ( scale - 2.0 * texelOffset );\n}\n#define cubeUV_maxLods3 (log2(cubeUV_textureSize*0.25) - 3.0)\nvec4 textureCubeUV( sampler2D envMap, vec3 reflectedDirection, float roughness ) {\n\tfloat roughnessVal = roughness* cubeUV_maxLods3;\n\tfloat r1 = floor(roughnessVal);\n\tfloat r2 = r1 + 1.0;\n\tfloat t = fract(roughnessVal);\n\tvec2 mipInfo = MipLevelInfo(reflectedDirection, r1, roughness);\n\tfloat s = mipInfo.y;\n\tfloat level0 = mipInfo.x;\n\tfloat level1 = level0 + 1.0;\n\tlevel1 = level1 > 5.0 ? 5.0 : level1;\n\tlevel0 += min( floor( s + 0.5 ), 5.0 );\n\tvec2 uv_10 = getCubeUV(reflectedDirection, r1, level0);\n\tvec4 color10 = envMapTexelToLinear(texture2D(envMap, uv_10));\n\tvec2 uv_20 = getCubeUV(reflectedDirection, r2, level0);\n\tvec4 color20 = envMapTexelToLinear(texture2D(envMap, uv_20));\n\tvec4 result = mix(color10, color20, t);\n\treturn vec4(result.rgb, 1.0);\n}\n#endif\n",defaultnormal_vertex:"vec3 transformedNormal = normalMatrix * objectNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif\n",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, uv ).x * displacementScale + displacementBias );\n#endif\n",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif\n",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif\n",encodings_fragment:" gl_FragColor = linearToOutputTexel( gl_FragColor );\n",encodings_pars_fragment:"\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}
1\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent = max( max( value.r, value.g ), value.b );\n\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM = ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat D = max( maxRange / maxRGB, 1.0 );\n\tD = min( floor( D ) / 255.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value ) {\n\tvec3 Xp_Y_XYZp = value.rgb * cLogLuvM;\n\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\n\tvec4 vResult;\n\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w = fract( Le );\n\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le = value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\n\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB = Xp_Y_XYZp.rgb * cLogLuvInverseM;\n\treturn vec4( max( vRGB, 0.0 ), 1.0 );\n}\n",envmap_fragment:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\tvec2 sampleUV;\n\t\treflectVec = normalize( reflectVec );\n\t\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\tvec4 envColor = texture2D( envMap, sampleUV );\n\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\treflectVec = normalize( reflectVec );\n\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );\n\t\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\tenvColor = envMapTexelToLinear( envColor );\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif\n",envmap_pars_fragment:"#if defined( USE_ENVMAP ) || defined( PHYSICAL )\n\tuniform float reflectivity;\n\tuniform float envMapIntensity;\n#endif\n#ifdef USE_ENVMAP\n\t#if ! defined( PHYSICAL ) && ( defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) )\n\t\tvarying vec3 vWorldPosition;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\tuniform float flipEnvMap;\n\tuniform int maxMipLevel;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( PHYSICAL )\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif\n",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif\n",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP ) && defined( PHYSICAL )\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, queryVec, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor = vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}
1\n\tfloat getSpecularMIPLevel( const in float blinnShininessExponent, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar = float( maxMIPLevel );\n\t\tfloat desiredMIPLevel = maxMIPLevelScalar + 0.79248 - 0.5 * log2( pow2( blinnShininessExponent ) + 1.0 );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in GeometricContext geometry, const in float blinnShininessExponent, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( -geometry.viewDir, geometry.normal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( -geometry.viewDir, geometry.normal, refractionRatio );\n\t\t#endif\n\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel = getSpecularMIPLevel( blinnShininessExponent, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, queryReflectVec, BlinnExponentToGGXRoughness(blinnShininessExponent ));\n\t\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\t\tvec2 sampleUV;\n\t\t\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\t\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0,0.0,1.0 ) );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif\n",envmap_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvWorldPosition = worldPosition.xyz;
1\n\t#else\n\t\tvec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif\n",fog_vertex:"#ifdef USE_FOG\n\tfogDepth = -mvPosition.z;\n#endif\n",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float fogDepth;\n#endif\n",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * fogDepth * fogDepth * LOG2 ) );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif\n",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif\n",gradientmap_pars_fragment:"#ifdef TOON\n\tuniform sampler2D gradientMap;\n\tvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\t\tfloat dotNL = dot( normal, lightDirection );\n\t\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t\t#ifdef USE_GRADIENTMAP\n\t\t\treturn texture2D( gradientMap, coord ).rgb;\n\t\t#else\n\t\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t\t#endif\n\t}\n#endif\n",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\treflectedLight.indirectDiffuse += PI * texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n#endif\n",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_vertex:"vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvLightFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\n\t\t#endif\n\t}\n#endif\n",lights_pars_begin:"uniform vec3 ambientLightColor;\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treturn irradiance;\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color = directionalLight.color;\n\t\tdirectLight.direction = directionalLight.direction;\n\t\tdirectLight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t\tfloat shadowCameraNear;\n\t\tfloat shadowCameraFar;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tdirectLight.color = pointLight.color;\n\t\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\n\t}
1\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tfloat angleCos = dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos > spotLight.coneCos ) {\n\t\t\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color = spotLight.color;\n\t\t\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\n\t\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *= PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif\n",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;\n",lights_phong_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct BlinnPhongMaterial {\n\tvec3\tdiffuseColor;\n\tvec3\tspecularColor;\n\tfloat\tspecularShininess;\n\tfloat\tspecularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\t#ifdef TOON\n\t\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\t#else\n\t\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\t\tvec3 irradiance = dotNL * directLight.color;\n\t#endif\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)\n",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nmaterial.specularRoughness = clamp( roughnessFactor, 0.04, 1.0 );\n#ifdef STANDARD\n\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.clearCoat = saturate( clearCoat );\tmaterial.clearCoatRoughness = clamp( clearCoatRoughness, 0.04, 1.0 );\n#endif\n",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3\tdiffuseColor;\n\tfloat\tspecularRoughness;\n\tvec3\tspecularColor;\n\t#ifndef STANDARD\n\t\tfloat clearCoat;\n\t\tfloat clearCoatRoughness;\n\t#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearCoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;
1\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.specularRoughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos - halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos + halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos + halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos - halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\t#ifndef STANDARD\n\t\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\n\t#else\n\t\tfloat clearCoatDHR = 0.0;\n\t#endif\n\treflectedLight.directSpecular += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry, material.specularColor, material.specularRoughness );\n\treflectedLight.directDiffuse += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\t#ifndef STANDARD\n\t\treflectedLight.directSpecular += irradiance * material.clearCoat * BRDF_Specular_GGX( directLight, geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\n\t#endif\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 clearCoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t#ifndef STANDARD\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\tfloat dotNL = dotNV;\n\t\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\n\t#else\n\t\tfloat clearCoatDHR = 0.0;\n\t#endif\n\treflectedLight.indirectSpecular += ( 1.0 - clearCoatDHR ) * radiance * BRDF_Specular_GGX_Environment( geometry, material.specularColor, material.specularRoughness );\n\t#ifndef STANDARD\n\t\treflectedLight.indirectSpecular += clearCoatRadiance * material.clearCoat * BRDF_Specular_GGX_Environment( geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\n\t#endif\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\n#define Material_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.specularRoughness )\n#define Material_ClearCoat_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.clearCoatRoughness )\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}\n",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = normalize( vViewPosition );\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( pointLight.shadow, directLight.visible ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}
1\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( spotLight.shadow, directLight.visible ) ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( directionalLight.shadow, directLight.visible ) ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t}\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearCoatRadiance = vec3( 0.0 );\n#endif\n",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec3 lightMapIrradiance = texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( PHYSICAL ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tirradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getLightProbeIndirectRadiance( geometry, Material_BlinnShininessExponent( material ), maxMipLevel );\n\t#ifndef STANDARD\n\t\tclearCoatRadiance += getLightProbeIndirectRadiance( geometry, Material_ClearCoat_BlinnShininessExponent( material ), maxMipLevel );\n\t#endif\n#endif\n",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, clearCoatRadiance, geometry, material, reflectedLight );\n#endif\n",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n#endif\n",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif\n",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t#else\n\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\tgl_Position.z *= gl_Position.w;\n\t#endif\n#endif\n",map_fragment:"#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif\n",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n",map_particle_fragment:"#ifdef USE_MAP\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n",map_particle_pars_fragment:"#ifdef USE_MAP\n\tuniform mat3 uvTransform;\n\tuniform sampler2D map;\n#endif\n",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif\n",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\n\tobjectNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\n\tobjectNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\n\tobjectNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\n#endif\n",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\t#ifndef USE_MORPHNORMALS\n\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\n\ttransformed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\n\ttransformed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\n\ttransformed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\ttransformed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\n\ttransformed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\n\ttransformed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\n\ttransformed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\n\t#endif\n#endif\n",normal_fragment_begin:"#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n#endif\n",normal_fragment_maps:"#ifdef USE_NORMALMAP\n\t#ifdef OBJECTSPACE_NORMALMAP\n\t\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\t#ifdef FLIP_SIDED\n\t\t\tnormal = - normal;\n\t\t#endif\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t#endif\n\t\tnormal = normalize( normalMatrix * normal );
1\n\t#else\n\t\tnormal = perturbNormal2Arb( -vViewPosition, normal );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n#endif\n",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n\t#ifdef OBJECTSPACE_NORMALMAP\n\t\tuniform mat3 normalMatrix;\n\t#else\n\t\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\n\t\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\t\tvec2 st0 = dFdx( vUv.st );\n\t\t\tvec2 st1 = dFdy( vUv.st );\n\t\t\tfloat scale = sign( st1.t * st0.s - st0.t * st1.s );\n\t\t\tvec3 S = normalize( ( q0 * st1.t - q1 * st0.t ) * scale );\n\t\t\tvec3 T = normalize( ( - q0 * st1.s + q1 * st0.s ) * scale );\n\t\t\tvec3 N = normalize( surf_norm );\n\t\t\tmat3 tsn = mat3( S, T, N );\n\t\t\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\t\tmapN.xy *= normalScale;\n\t\t\tmapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t\treturn normalize( tsn * mapN );\n\t\t}\n\t#endif\n#endif\n",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}\n",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif\n",project_vertex:"vec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );\ngl_Position = projectionMatrix * mvPosition;\n",dithering_fragment:"#if defined( DITHERING )\n gl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif\n",dithering_pars_fragment:"#if defined( DITHERING )\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif\n",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif\n",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHTS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHTS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHTS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tfloat texture2DShadowLerp( sampler2D depths, vec2 size, vec2 uv, float compare ) {\n\t\tconst vec2 offset = vec2( 0.0, 1.0 );\n\t\tvec2 texelSize = vec2( 1.0 ) / size;\n\t\tvec2 centroidUV = floor( uv * size + 0.5 ) / size;\n\t\tfloat lb = texture2DCompare( depths, centroidUV + texelSize * offset.xx, compare );\n\t\tfloat lt = texture2DCompare( depths, centroidUV + texelSize * offset.xy, compare );\n\t\tfloat rb = texture2DCompare( depths, centroidUV + texelSize * offset.yx, compare );\n\t\tfloat rt = texture2DCompare( depths, centroidUV + texelSize * offset.yy, compare );\n\t\tvec2 f = fract( uv * size + 0.5 );\n\t\tfloat a = mix( lb, lt, f.y );\n\t\tfloat b = mix( rb, rt, f.y );\n\t\tfloat c = mix( a, b, f.x );\n\t\treturn c;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tshadow = (\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );
1\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif\n",shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHTS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHTS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHTS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\n\t#endif\n#endif\n",shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n#endif\n",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\tDirectionalLight directionalLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tshadow *= bool( directionalLight.shadow ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\tSpotLight spotLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tshadow *= bool( spotLight.shadow ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\tPointLight pointLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tshadow *= bool( pointLight.shadow ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#endif\n\t#endif\n\treturn shadow;\n}\n",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif\n",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif\n",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;
1\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n#endif\n",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif\n",tonemapping_pars_fragment:"#ifndef saturate\n\t#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nuniform float toneMappingWhitePoint;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\n#define Uncharted2Helper( x ) max( ( ( x * ( 0.15 * x + 0.10 * 0.50 ) + 0.20 * 0.02 ) / ( x * ( 0.15 * x + 0.50 ) + 0.20 * 0.30 ) ) - 0.02 / 0.30, vec3( 0.0 ) )\nvec3 Uncharted2ToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\n",uv_pars_fragment:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\n",uv_vertex:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",uv2_pars_fragment:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif",uv2_pars_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n#endif",uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = uv2;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n\tvec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\n#endif\n",background_frag:"uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tgl_FragColor = texture2D( t2D, vUv );\n}\n",background_vert:"varying vec2 vUv;\nvoid main() {\n\tvUv = uv;\n\tgl_Position = vec4( position, 1.0 );\n\tgl_Position.z = 1.0;\n}\n",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldPosition;\nvoid main() {\n\tgl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );\n\tgl_FragColor.a *= opacity;\n}\n",cube_vert:"varying vec3 vWorldPosition;\n#include <common>\nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}\n",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <logdepthbuf_fragment>\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - gl_FragCoord.z ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( gl_FragCoord.z );\n\t#endif\n}\n",depth_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n}\n",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main () {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}\n",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}\n",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldPosition;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldPosition );\n\tvec2 sampleUV;\n\tsampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n}\n",equirect_vert:"varying vec3 vWorldPosition;\n#include <common>\nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}\n",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <premultiplied_alpha_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}\n",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <color_vertex>\n\tvLineDistance = scale * lineDistance;\n\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}\n",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\treflectedLight.indirectDiffuse += texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <premultiplied_alpha_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}\n",meshbasic_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_ENVMAP\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}\n",meshlambert_frag:"uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <fog_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <emissivemap_fragment>\n\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\n\t#include <lightmap_fragment>\n\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n",meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <lights_lambert_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}\n",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;
1\n\tvec4 matcapColor = texture2D( matcap, uv );\n\tmatcapColor = matcapTexelToLinear( matcapColor );\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <premultiplied_alpha_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}\n",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#ifndef FLAT_SHADED\n\t\tvNormal = normalize( transformedNormal );\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n\tvViewPosition = - mvPosition.xyz;\n}\n",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_phong_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}\n",meshphysical_frag:"#define PHYSICAL\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifndef STANDARD\n\tuniform float clearCoat;\n\tuniform float clearCoatRoughness;\n#endif\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <bsdfs>\n#include <cube_uv_reflection_fragment>\n#include <envmap_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <lights_physical_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <roughnessmap_fragment>\n\t#include <metalnessmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n",meshphysical_vert:"#define PHYSICAL\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}\n",normal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || ( defined( USE_NORMALMAP ) && ! defined( OBJECTSPACE_NORMALMAP ) )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\nvoid main() {\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n}\n",normal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || ( defined( USE_NORMALMAP ) && ! defined( OBJECTSPACE_NORMALMAP ) )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || ( defined( USE_NORMALMAP ) && ! defined( OBJECTSPACE_NORMALMAP ) )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}\n",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <premultiplied_alpha_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}\n",points_vert:"uniform float size;\nuniform float scale;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <fog_vertex>\n}\n",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include <fog_fragment>\n}\n",shadow_vert:"#include <fog_pars_vertex>\n#include <shadowmap_pars_vertex>\nvoid main() {\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}\n",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}\n",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include <common>\n#include <uv_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}\n"},It={merge:function(t){for(var e={},n=0;n<t.length;n++){var r=this.clone(t[n]);for(var i in r)e[i]=r[i]}return e},clone:function(t){var e={};for(var n in t)for(var r in e[n]={},t[n]){var i=t[n][r];e[n][r]=i&&(i.isColor||i.isMatrix3||i.isMatrix4||i.isVector2||i.isVector3||i.isVector4||i.isTexture)?i.clone():Array.isArray(i)?i.slice():i}return e}},mt={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,sil
vendor: 10,666 bytes, line 1
1ver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function lt(t,e,n){return void 0===e&&void 0===n?this.set(t):this.setRGB(t,e,n)}Object.assign(lt.prototype,{isColor:!0,r:1,g:1,b:1,set:function(t){return t&&t.isColor?this.copy(t):"number"==typeof t?this.setHex(t):"string"==typeof t&&this.setStyle(t),this},setScalar:function(t){return this.r=t,this.g=t,this.b=t,this},setHex:function(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this},setRGB:function(t,e,n){return this.r=t,this.g=e,this.b=n,this},setHSL:function(){function t(e,n,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+6*(n-e)*r:r<.5?n:r<2/3?e+6*(n-e)*(2/3-r):e}return function(e,n,r){if(e=U.euclideanModulo(e,1),n=U.clamp(n,0,1),r=U.clamp(r,0,1),0===n)this.r=this.g=this.b=r;else{var i=r<=.5?r*(1+n):r+n-r*n,o=2*r-i;this.r=t(o,i,e+1/3),this.g=t(o,i,e),this.b=t(o,i,e-1/3)}return this}}(),setStyle:function(t){function e(E){void 0!==E&&parseFloat(E)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}var n;if(n=/^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec(t)){var r,i=n[2];switch(n[1]){case"rgb":case"rgba":if(r=/^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(i))return this.r=Math.min(255,parseInt(r[1],10))/255,this.g=Math.min(255,parseInt(r[2],10))/255,this.b=Math.min(255,parseInt(r[3],10))/255,e(r[5]),this;if(r=/^(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(i))return this.r=Math.min(100,parseInt(r[1],10))/100,this.g=Math.min(100,parseInt(r[2],10))/100,this.b=Math.min(100,parseInt(r[3],10))/100,e(r[5]),this;break;case"hsl":case"hsla":if(r=/^([0-9]*\.?[0-9]+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(i)){var o=parseFloat(r[1])/360,c=parseInt(r[2],10)/100,h=parseInt(r[3],10)/100;return e(r[5]),this.setHSL(o,c,h)}}}else if(n=/^\#([A-Fa-f0-9]+)$/.exec(t)){var f,A=(f=n[1]).length;if(3===A)return this.r=parseInt(f.charAt(0)+f.charAt(0),16)/255,this.g=parseInt(f.charAt(1)+f.charAt(1),16)/255,this.b=parseInt(f.charAt(2)+f.charAt(2),16)/255,this;if(6===A)return this.r=parseInt(f.charAt(0)+f.charAt(1),16)/255,this.g=parseInt(f.charAt(2)+f.charAt(3),16)/255,this.b=parseInt(f.charAt(4)+f.charAt(5),16)/255,this}return t&&t.length>0&&(void 0!==(f=mt[t])?this.setHex(f):console.warn("THREE.Color: Unknown color "+t)),this},clone:function(){return new this.constructor(this.r,this.g,this.b)},copy:function(t){return this.r=t.r,this.g=t.g,this.b=t.b,this},copyGammaToLinear:function(t,e){return void 0===e&&(e=2),this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this},copyLinearToGamma:function(t,e){void 0===e&&(e=2);var n=e>0?1/e:1;return this.r=Math.pow(t.r,n),this.g=Math.pow(t.g,n),this.b=Math.pow(t.b,n),this},convertGammaToLinear:function(t){return this.copyGammaToLinear(this,t),this},convertLinearToGamma:function(t){return this.copyLinearToGamma(this,t),this},copySRGBToLinear:function(){function t(e){return e<.04045?.0773993808*e:Math.pow(.9478672986*e+.0521327014,2.4)}return function(e){return this.r=t(e.r),this.g=t(e.g),this.b=t(e.b),this}}(),copyLinearToSRGB:function(){function t(e){return e<.0031308?12.92*e:1.055*Math.pow(e,.41666)-.055}return function(e){return this.r=t(e.r),this.g=t(e.g),this.b=t(e.b),this}}(),convertSRGBToLinear:function(){return this.copySRGBToLinear(this),this},convertLinearToSRGB:function(){return this.copyLinearToSRGB(this),this},getHex:function(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0},getHexString:function(){return("000000"+this.getHex().toString(16)).slice(-6)},getHSL:function(t){void 0===t&&(console.warn("THREE.Color: .getHSL() target is now required"),t={h:0,s:0,l:0});var e,n,r=this.r,i=this.g,o=this.b,c=Math.max(r,i,o),h=Math.min(r,i,o),f=(h+c)/2;if(h===c)e=0,n=0;else{var A=c-h;switch(n=f<=.5?A/(c+h):A/(2-c-h),c){case r:e=(i-o)/A+(i<o?6:0);break;case i:e=(o-r)/A+2;break;case o:e=(r-i)/A+4}e/=6}return t.h=e,t.s=n,t.l=f,t},getStyle:function(){return"rgb("+(255*this.r|0)+","+(255*this.g|0)+","+(255*this.b|0)+")"},offsetHSL:function(){var t={};return function(e,n,r){return this.getHSL(t),t.h+=e,t.s+=n,t.l+=r,this.setHSL(t.h,t.s,t.l),this}}(),add:function(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this},addColors:function(t,e){return this.r=t.r+e.r,this.g=t.g+e.g,this.b=t.b+e.b,this},addScalar:function(t){return this.r+=t,this.g+=t,this.b+=t,this},sub:function(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this},multiply:function(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this},multiplyScalar:function(t){return this.r*=t,this.g*=t,this.b*=t,this},lerp:function(t,e){return this.r+=(t.r-this.r)*e,this.g+=(t.g-this.g)*e,this.b+=(t.b-this.b)*e,this},lerpHSL:function(){var t={h:0,s:0,l:0},e={h:0,s:0,l:0};return function(n,r){this.getHSL(t),n.getHSL(e);var i=U.lerp(t.h,e.h,r),o=U.lerp(t.s,e.s,r),c=U.lerp(t.l,e.l,r);return this.setHSL(i,o,c),this}}(),equals:function(t){return t.r===this.r&&t.g===this.g&&t.b===this.b},fromArray:function(t,e){return void 0===e&&(e=0),this.r=t[e],this.g=t[e+1],this.b=t[e+2],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.r,t[e+1]=this.g,t[e+2]=this.b,t},toJSON:function(){return this.getHex()}});var et={common:{diffuse:{value:new lt(15658734)},opacity:{value:1},map:{value:null},uvTransform:{value:new te},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new G(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new lt(16777215)}},lights:{ambientLightColor:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}}},points:{diffuse:{value:new lt(15658734)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},uvTransform:{value:new te}},sprite:{diffuse:{value:new lt(15658734)},opacity:{value:1},center:{value:new G(.5,.5)},rotation:{value:0},map:{value:null},uvTransform:{value:new te}}},ct={basic:{uniforms:It.merge([et.common,et.specularmap,et.envmap,et.aomap,et.lightmap,et.fog]),vertexShader:Mt.meshbasic_vert,fragmentShader:Mt.meshbasic_frag},lambert:{uniforms:It.merge([et.common,et.specularmap,et.envmap,et.aomap,et.lightmap,et.emissivemap,et.fog,et.lights,{emissive:{value:new lt(0)}}]),vertexShader:Mt.meshlambert_vert,fragmentShader:Mt.meshlambert_frag},phong:{uniforms:It.merge([et.common,et.specularmap,et.envmap,et.aomap,et.lightmap,et.emissivemap,et.bumpmap,et.normalmap,et.displacementmap,et.gradientmap,et.fog,et.lights,{emissive:{value:new lt(0)},specular:{value:new lt(1118481)},shininess:{value:30}}]),vertexShader:Mt.meshphong_vert,fragmentShader:Mt.meshphong_frag},standard:{uniforms:It.merge([et.common,et.envmap,et.aomap,et.lightmap,et.emissivemap,et.bumpmap,et.normalmap,et.displacementmap,et.roughnessmap,et.metalnessmap,et.fog,et.lights,{emissive:{value:new lt(0)},roughness:{value:.5},metalness:{value:.5},envMapIntensity:{value:1}}]),vertexShader:Mt.meshphysical_vert,fragmentShader:Mt.meshphysical_frag},matcap:{uniforms:It.merge([et.common,et.bumpmap,et.normalmap,et.displacementmap,et.fog,{matcap:{value:null}}]),vertexShader:Mt.meshmatcap_vert,fragmentShader:Mt.meshmatcap_frag},points:{uniforms:It.merge([et.points,et.fog]),vertexShader:Mt.points_vert,fragmentShader:Mt.points_frag},dashed:{uniforms:It.merge([et.common,et.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Mt.linedashed_vert,fragmentShader:Mt.linedashed_frag},depth:{uniforms:It.merge([et.common,et.displacementmap]),vertexShader:Mt.depth_vert,fragmentShader:Mt.depth_frag},normal:{uniforms:It.merge([et.common,et.bumpmap,et.normalmap,et.displacementmap,{opacity:{value:1}}]),vertexShader:Mt.normal_vert,fragmentShader:Mt.normal_frag},sprite:{uniforms:It.merge([et.sprite,et.fog]),vertexShader:Mt.sprite_vert,fragmentShader:Mt.sprite_frag},background:{uniforms:{t2D:{value:null}},vertexShader:Mt.background_vert,fragmentShader:Mt.background_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Mt.cube_vert,fragmentShader:Mt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Mt.equirect_vert,fragmentShader:Mt.equirect_frag},distanceRGBA:{uniforms:It.merge([et.common,et.displacementmap,{referencePosition:{value:new W},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Mt.distanceRGBA_vert,fragmentShader:Mt.distanceRGBA_frag},shadow:{uniforms:It.merge([et.lights,et.fog,{color:{value:new lt(0)},opacity:{value:1}}]),vertexShader:Mt.shadow_vert,fragmentShader:Mt.shadow_frag}};function Vt(){var t=null,e=!1,n=null;function r(i,o){!1!==e&&(n(i,o),t.requestAnimationFrame(r))}return{start:function(){!0!==e&&null!==n&&(t.requestAnimationFrame(r),e=!0)},stop:function(){e=!1},setAnimationLoop:function(i){n=i},setContext:function(i){t=i}}}function Rt(t){var e=new WeakMap;return{get:function(r){return r.isInterleavedBufferAttribute&&(r=r.data),e.get(r)},remove:function(r){r.isInterleavedBufferAttribute&&(r=r.data);var i=e.get(r);i&&(t.deleteBuffer(i.buffer),e.delete(r))},update:function(r,i){r.isInterleavedBufferAttribute&&(r=r.data);var f,A,E,C,o=e.get(r);
1void 0===o?e.set(r,function(h,f){var A=h.array,E=h.dynamic?t.DYNAMIC_DRAW:t.STATIC_DRAW,C=t.createBuffer();t.bindBuffer(f,C),t.bufferData(f,A,E),h.onUploadCallback();var S=t.FLOAT;return A instanceof Float32Array?S=t.FLOAT:A instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):A instanceof Uint16Array?S=t.UNSIGNED_SHORT:A instanceof Int16Array?S=t.SHORT:A instanceof Uint32Array?S=t.UNSIGNED_INT:A instanceof Int32Array?S=t.INT:A instanceof Int8Array?S=t.BYTE:A instanceof Uint8Array&&(S=t.UNSIGNED_BYTE),{buffer:C,type:S,bytesPerElement:A.BYTES_PER_ELEMENT,version:h.version}}(r,i)):o.version<r.version&&(E=(f=r).array,C=f.updateRange,t.bindBuffer(A=i,o.buffer),!1===f.dynamic?t.bufferData(A,E,t.STATIC_DRAW):-1===C.count?t.bufferSubData(A,0,E):0===C.count?console.error("THREE.WebGLObjects.updateBuffer: dynamic THREE.BufferAttribute marked as needsUpdate but updateRange.count is 0, ensure you are using set methods or updating manually."):(t.bufferSubData(A,C.offset*E.BYTES_PER_ELEMENT,E.subarray(C.offset,C.offset+C.count)),C.count=-1),o.version=r.version)}}}function ne(t,e,n,r,i,o){this.a=t,this.b=e,this.c=n,this.normal=r&&r.isVector3?r:new W,this.vertexNormals=Array.isArray(r)?r:[],this.color=i&&i.isColor?i:new lt,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=void 0!==o?o:0}function bt(t,e,n,r){this._x=t||0,this._y=e||0,this._z=n||0,this._order=r||bt.DefaultOrder}function kt(){this.mask=1}ct.physical={uniforms:It.merge([ct.standard.uniforms,{clearCoat:{value:0},clearCoatRoughness:{value:0}}]),vertexShader:Mt.meshphysical_vert,fragmentShader:Mt.meshphysical_frag},Object.assign(ne.prototype,{clone:function(){return(new this.constructor).copy(this)},copy:function(t){this.a=t.a,this.b=t.b,this.c=t.c,this.normal.copy(t.normal),this.color.copy(t.color),this.materialIndex=t.materialIndex;for(var e=0,n=t.vertexNormals.length;e<n;e++)this.vertexNormals[e]=t.vertexNormals[e].clone();for(e=0,n=t.vertexColors.length;e<n;e++)this.vertexColors[e]=t.vertexColors[e].clone();return this}}),bt.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"],bt.DefaultOrder="XYZ",Object.defineProperties(bt.prototype,{x:{get:function(){return this._x},set:function(t){this._x=t,this.onChangeCallback()}},y:{get:function(){return this._y},set:function(t){this._y=t,this.onChangeCallback()}},z:{get:function(){return this._z},set:function(t){this._z=t,this.onChangeCallback()}},order:{get:function(){return this._order},set:function(t){this._order=t,this.onChangeCallback()}}}),Object.assign(bt.prototype,{isEuler:!0,set:function(t,e,n,r){return this._x=t,this._y=e,this._z=n,this._order=r||this._order,this.onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._order)},copy:function(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this.onChangeCallback(),this},setFromRotationMatrix:function(t,e,n){var r=U.clamp,i=t.elements,o=i[0],c=i[4],h=i[8],f=i[1],A=i[5],E=i[9],C=i[2],S=i[6],F=i[10];return"XYZ"===(e=e||this._order)?(this._y=Math.asin(r(h,-1,1)),Math.abs(h)<.99999?(this._x=Math.atan2(-E,F),this._z=Math.atan2(-c,o)):(this._x=Math.atan2(S,A),this._z=0)):"YXZ"===e?(this._x=Math.asin(-r(E,-1,1)),Math.abs(E)<.99999?(this._y=Math.atan2(h,F),this._z=Math.atan2(f,A)):(this._y=Math.atan2(-C,o),this._z=0)):"ZXY"===e?(this._x=Math.asin(r(S,-1,1)),Math.abs(S)<.99999?(this._y=Math.atan2(-C,F),this._z=Math.atan2(-c,A)):(this._y=0,this._z=Math.atan2(f,o))):"ZYX"===e?(this._y=Math.asin(-r(C,-1,1)),Math.abs(C)<.99999?(this._x=Math.atan2(S,F),this._z=Math.atan2(f,o)):(this._x=0,this._z=Math.atan2(-c,A))):"YZX"===e?(this._z=Math.asin(r(f,-1,1)),Math.abs(f)<.99999?(this._x=Math.atan2(-E,A),this._y=Math.atan2(-C,o)):(this._x=0,this._y=Math.atan2(h,F))):"XZY"===e?(this._z=Math.asin(-r(c,-1,1)),Math.abs(c)<.99999?(this._x=Math.atan2(S,A),this._y=Math.atan2(h,o)):(this._x=Math.atan2(-E,F),this._y=0)):console.warn("THREE.Euler: .setFromRotationMatrix() given unsupported order: "+e),this._order=e,!1!==n&&this.onChangeCallback(),this},setFromQuaternion:function(){var t=new dt;return function(e,n,r){return t.makeRotationFromQuaternion(e),this.setFromRotationMatrix(t,n,r)}}(),setFromVector3:function(t,e){return this.set(t.x,t.y,t.z,e||this._order)},reorder:function(){var t=new wt;return function(e){return t.setFromEuler(this),this.setFromQuaternion(t,e)}}(),equals:function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order},fromArray:function(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this.onChangeCallback(),this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t},toVector3:function(t){return t?t.set(this._x,this._y,this._z):new W(this._x,this._y,this._z)},onChange:function(t){return this.onChangeCallback=t,this},onChangeCallback:function(){}}),Object.assign(kt.prototype,{set:function(t){this.mask=1<<t|0},enable:function(t){this.mask|=1<<t|0},toggle:function(t){this.mask^=1<<t|0},disable:function(t){this.mask&=~(1<<t|0)},test:function(t){return 0!=(this.mask&t.mask)}});var de=0;function Wt(){Object.defineProperty(this,"id",{value:de++}),this.uuid=U.generateUUID(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=Wt.DefaultUp.clone();var t=new W,e=new bt,n=new wt,r=new W(1,1,1);e.onChange(function(){n.setFromEuler(e,!1)}),n.onChange(function(){e.setFromQuaternion(n,void 0,!1)}),Object.defineProperties(this,{position:{enumerable:!0,value:t},rotation:{enumerable:!0,value:e},quaternion:{enumerable:!0,value:n},scale:{enumerable:!0,value:r},modelViewMatrix:{value:new dt},normalMatrix:{value:new te}}),this.matrix=new dt,this.matrixWorld=new dt,this.matrixAutoUpdate=Wt.DefaultMatrixAutoUpdate,this.matrixWorldNeedsUpdate=!1,this.layers=new kt,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.userData={}}Wt.DefaultUp=new W(0,1,0),Wt.DefaultMatrixAutoUpdate=!0,Wt.prototype=Object.assign(Object.create(D.prototype),{constructor:Wt,isObject3D:!0,onBeforeRender:function(){},onAfterRender:function(){},applyMatrix:function(t){this.matrix.multiplyMatrices(t,this.matrix
vendor: 4,506 bytes, line 1
1),this.matrix.decompose(this.position,this.quaternion,this.scale)},applyQuaternion:function(t){return this.quaternion.premultiply(t),this},setRotationFromAxisAngle:function(t,e){this.quaternion.setFromAxisAngle(t,e)},setRotationFromEuler:function(t){this.quaternion.setFromEuler(t,!0)},setRotationFromMatrix:function(t){this.quaternion.setFromRotationMatrix(t)},setRotationFromQuaternion:function(t){this.quaternion.copy(t)},rotateOnAxis:function(){var t=new wt;return function(e,n){return t.setFromAxisAngle(e,n),this.quaternion.multiply(t),this}}(),rotateOnWorldAxis:function(){var t=new wt;return function(e,n){return t.setFromAxisAngle(e,n),this.quaternion.premultiply(t),this}}(),rotateX:function(){var t=new W(1,0,0);return function(e){return this.rotateOnAxis(t,e)}}(),rotateY:function(){var t=new W(0,1,0);return function(e){return this.rotateOnAxis(t,e)}}(),rotateZ:function(){var t=new W(0,0,1);return function(e){return this.rotateOnAxis(t,e)}}(),translateOnAxis:function(){var t=new W;return function(e,n){return t.copy(e).applyQuaternion(this.quaternion),this.position.add(t.multiplyScalar(n)),this}}(),translateX:function(){var t=new W(1,0,0);return function(e){return this.translateOnAxis(t,e)}}(),translateY:function(){var t=new W(0,1,0);return function(e){return this.translateOnAxis(t,e)}}(),translateZ:function(){var t=new W(0,0,1);return function(e){return this.translateOnAxis(t,e)}}(),localToWorld:function(t){return t.applyMatrix4(this.matrixWorld)},worldToLocal:function(){var t=new dt;return function(e){return e.applyMatrix4(t.getInverse(this.matrixWorld))}}(),lookAt:function(){var t=new wt,e=new dt,n=new W,r=new W;return function(i,o,c){i.isVector3?n.copy(i):n.set(i,o,c);var h=this.parent;this.updateWorldMatrix(!0,!1),r.setFromMatrixPosition(this.matrixWorld),this.isCamera?e.lookAt(r,n,this.up):e.lookAt(n,r,this.up),this.quaternion.setFromRotationMatrix(e),h&&(e.extractRotation(h.matrixWorld),t.setFromRotationMatrix(e),this.quaternion.premultiply(t.inverse()))}}(),add:function(t){if(arguments.length>1){for(var e=0;e<arguments.length;e++)this.add(arguments[e]);return this}return t===this?(console.error("THREE.Object3D.add: object can't be added as a child of itself.",t),this):(t&&t.isObject3D?(null!==t.parent&&t.parent.remove(t),t.parent=this,t.dispatchEvent({type:"added"}),this.children.push(t)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",t),this)},remove:function(t){if(arguments.length>1){for(var e=0;e<arguments.length;e++)this.remove(arguments[e]);return this}var n=this.children.indexOf(t);return-1!==n&&(t.parent=null,t.dispatchEvent({type:"removed"}),this.children.splice(n,1)),this},getObjectById:function(t){return this.getObjectByProperty("id",t)},getObjectByName:function(t){return this.getObjectByProperty("name",t)},getObjectByProperty:function(t,e){if(this[t]===e)return this;for(var n=0,r=this.children.length;n<r;n++){var i=this.children[n].getObjectByProperty(t,e);if(void 0!==i)return i}},getWorldPosition:function(t){return void 0===t&&(console.warn("THREE.Object3D: .getWorldPosition() target is now required"),t=new W),this.updateMatrixWorld(!0),t.setFromMatrixPosition(this.matrixWorld)},getWorldQuaternion:function(){var t=new W,e=new W;return function(n){return void 0===n&&(console.warn("THREE.Object3D: .getWorldQuaternion() target is now required"),n=new wt),this.updateMatrixWorld(!0),this.matrixWorld.decompose(t,n,e),n}}(),getWorldScale:function(){var t=new W,e=new wt;return function(n){return void 0===n&&(console.warn("THREE.Object3D: .getWorldScale() target is now required"),n=new W),this.updateMatrixWorld(!0),this.matrixWorld.decompose(t,e,n),n}}(),getWorldDirection:function(t){void 0===t&&(console.warn("THREE.Object3D: .getWorldDirection() target is now required"),t=new W),this.updateMatrixWorld(!0);var e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()},raycast:function(){},traverse:function(t){t(this);for(var e=this.children,n=0,r=e.length;n<r;n++)e[n].traverse(t)},traverseVisible:function(t){if(!1!==this.visible){t(this);for(var e=this.children,n=0,r=e.length;n<r;n++)e[n].traverseVisible(t)}},traverseAncestors:function(t){var e=this.parent;null!==e&&(t(e),e.traverseAncestors(t))},updateMatrix:function(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0},updateMatrixWorld:function(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(null===this.parent?this.matrixWorld.copy(this.matrix
vendor: 4,972 bytes, line 1
1):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,t=!0);for(var e=this.children,n=0,r=e.length;n<r;n++)e[n].updateMatrixWorld(t)},updateWorldMatrix:function(t,e){var n=this.parent;if(!0===t&&null!==n&&n.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),!0===e)for(var r=this.children,i=0,o=r.length;i<o;i++)r[i].updateWorldMatrix(!1,!0)},toJSON:function(t){var e=void 0===t||"string"==typeof t,n={};e&&(t={geometries:{},materials:{},textures:{},images:{},shapes:{}},n.metadata={version:4.5,type:"Object",generator:"Object3D.toJSON"});var r={};function i(rt,ot){return void 0===rt[ot.uuid]&&(rt[ot.uuid]=ot.toJSON(t)),ot.uuid}if(r.uuid=this.uuid,r.type=this.type,""!==this.name&&(r.name=this.name),!0===this.castShadow&&(r.castShadow=!0),!0===this.receiveShadow&&(r.receiveShadow=!0),!1===this.visible&&(r.visible=!1),!1===this.frustumCulled&&(r.frustumCulled=!1),0!==this.renderOrder&&(r.renderOrder=this.renderOrder),"{}"!==JSON.stringify(this.userData)&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),!1===this.matrixAutoUpdate&&(r.matrixAutoUpdate=!1),this.isMesh||this.isLine||this.isPoints){r.geometry=i(t.geometries,this.geometry);var o=this.geometry.parameters;if(void 0!==o&&void 0!==o.shapes){var c=o.shapes;if(Array.isArray(c))for(var h=0,f=c.length;h<f;h++)i(t.shapes,c[h]);else i(t.shapes,c)}}if(void 0!==this.material)if(Array.isArray(this.material)){var A=[];for(h=0,f=this.material.length;h<f;h++)A.push(i(t.materials,this.material[h]));r.material=A}else r.material=i(t.materials,this.material);if(this.children.length>0)for(r.children=[],h=0;h<this.children.length;h++)r.children.push(this.children[h].toJSON(t).object);if(e){var E=tt(t.geometries),C=tt(t.materials),S=tt(t.textures),F=tt(t.images);c=tt(t.shapes),E.length>0&&(n.geometries=E),C.length>0&&(n.materials=C),S.length>0&&(n.textures=S),F.length>0&&(n.images=F),c.length>0&&(n.shapes=c)}return n.object=r,n;function tt(rt){var ot=[];for(var St in rt){var yt=rt[St];delete yt.metadata,ot.push(yt)}return ot}},clone:function(t){return(new this.constructor).copy(this,t)},copy:function(t,e){if(void 0===e&&(e=!0),this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(var n=0;n<t.children.length;n++)this.add(t.children[n].clone());return this}});var en=0;function be(){Object.defineProperty(this,"id",{value:en+=2}),this.uuid=U.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}function qe(t,e,n){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=!0===n,this.dynamic=!1,this.updateRange={offset:0,count:-1},this.version=0}function kn(t,e,n){qe.call(this,new Int8Array(t),e,n)}function yr(t,e,n){qe.call(this,new Uint8Array(t),e,n)}function ur(t,e,n){qe.call(this,new Uint8ClampedArray(t),e,n)}function ee(t,e,n){qe.call(this,new Int16Array(t),e,n)}function Se(t,e,n){qe.call(this,new Uint16Array(t),e,n)}function Re(t,e,n){qe.call(this,new Int32Array(t),e,n)}function Be(t,e,n){qe.call(this,new Uint32Array(t),e,n)}function Lt(t,e,n){qe.call(this,new Float32Array(t),e,n)}function Ht(t,e,n){qe.call(this,new Float64Array(t),e,n)}function Jt(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}function Ie(t){if(0===t.length)return-1/0;for(var e=t[0],n=1,r=t.length;n<r;++n)t[n]>e&&(e=t[n]);return e}be.prototype=Object.assign(Object.create(D.prototype),{constructor:be,isGeometry:!0,applyMatrix:function(t){for(var e=(new te).getNormalMatrix(t),n=0,r=this.vertices.length;n<r;n++)this.vertices[n].applyMatrix4(t);for(n=0,r=this.faces.length;n<r;n++){var i=this.faces[n];
1i.normal.applyMatrix3(e).normalize();for(var o=0,c=i.vertexNormals.length;o<c;o++)i.vertexNormals[o].applyMatrix3(e).normalize()}return null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this},rotateX:function(){var t=new dt;return function(e){return t.makeRotationX(e),this.applyMatrix(t),this}}(),rotateY:function(){var t=new dt;return function(e){return t.makeRotationY(e),this.applyMatrix(t),this}}(),rotateZ:function(){var t=new dt;return function(e){return t.makeRotationZ(e),this.applyMatrix(t),this}}(),translate:function(){var t=new dt;return function(e,n,r){return t.makeTranslation(e,n,r),this.applyMatrix(t),this}}(),scale:function(){var t=new dt;return function(e,n,r){return t.makeScale(e,n,r),this.applyMatrix(t),this}}(),lookAt:function(){var t=new Wt;return function(e){t.lookAt(e),t.updateMatrix(),this.applyMatrix(t.matrix)}}(),fromBufferGeometry:function(t){var e=this,n=null!==t.index?t.index.array:void 0,r=t.attributes,i=r.position.array,o=void 0!==r.normal?r.normal.array:void 0,c=void 0!==r.color?r.color.array:void 0,h=void 0!==r.uv?r.uv.array:void 0,f=void 0!==r.uv2?r.uv2.array:void 0;void 0!==f&&(this.faceVertexUvs[1]=[]);for(var A=[],E=[],C=[],S=0,F=0;S<i.length;S+=3,F+=2)e.vertices.push(new W(i[S],i[S+1],i[S+2])),void 0!==o&&A.push(new W(o[S],o[S+1],o[S+2])),void 0!==c&&e.colors.push(new lt(c[S],c[S+1],c[S+2])),void 0!==h&&E.push(new G(h[F],h[F+1])),void 0!==f&&C.push(new G(f[F],f[F+1]));function tt(Et,Pt,se,Bt){var Ct=new ne(Et,Pt,se,void 0!==o?[A[Et].clone(),A[Pt].clone(),A[se].clone()]:[],void 0!==c?[e.colors[Et].clone(),e.colors[Pt].clone(),e.colors[se].clone()]:[],Bt);e.faces.push(Ct),void 0!==h&&e.faceVertexUvs[0].push([E[Et].clone(),E[Pt].clone(),E[se].clone()]),void 0!==f&&e.faceVertexUvs[1].push([C[Et].clone(),C[Pt].clone(),C[se].clone()])}var rt=t.groups;if(rt.length>0)for(S=0;S<rt.length;S++)for(var ot=rt[S],St=ot.start,yt=(F=St,St+ot.count);F<yt;F+=3)void 0!==n?tt(n[F],n[F+1],n[F+2],ot.materialIndex):tt(F,F+1,F+2,ot.materialIndex);else if(void 0!==n)for(S=0;S<n.length;S+=3)tt(n[S],n[S+1],n[S+2]);else for(S=0;S<i.length/3;S+=3)tt(S,S+1,S+2);return this.computeFaceNormals(),null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone()),null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),this},center:function(){var t=new W;return function(){return this.computeBoundingBox(),this.boundingBox.getCenter(t).negate(),this.translate(t.x,t.y,t.z),this}}(),normalize:function(){this.computeBoundingSphere();var t=this.boundingSphere.center,e=this.boundingSphere.radius,n=0===e?1:1/e,r=new dt;return r.set(n,0,0,-n*t.x,0,n,0,-n*t.y,0,0,n,-n*t.z,0,0,0,1),this.applyMatrix(r),this},computeFaceNormals:function(){for(var t=new W,e=new W,n=0,r=this.faces.length;n<r;n++){var i=this.faces[n],o=this.vertices[i.a],c=this.vertices[i.b];t.subVectors(this.vertices[i.c],c),e.subVectors(o,c),t.cross(e),t.normalize(),i.normal.copy(t)}},computeVertexNormals:function(t){var e,n,r,i,o,c;for(void 0===t&&(t=!0),c=new Array(this.vertices.length),e=0,n=this.vertices.length;e<n;e++)c[e]=new W;if(t){var h,f,A=new W,E=new W;for(r=0,i=this.faces.length;r<i;r++)h=this.vertices[(o=this.faces[r]).a],A.subVectors(this.vertices[o.c],f=this.vertices[o.b]),E.subVectors(h,f),A.cross(E),c[o.a].add(A),c[o.b].add(A),c[o.c].add(A)}else for(this.computeFaceNormals(),r=0,i=this.faces.length;r<i;r++)c[(o=this.faces[r]).a].add(o.normal),c[o.b].add(o.normal),c[o.c].add(o.normal);for(e=0,n=this.vertices.length;e<n;e++)c[e].normalize();for(r=0,i=this.faces.length;r<i;r++){var C=(o=this.faces[r]).vertexNormals;3===C.length?(C[0].copy(c[o.a]),C[1].copy(c[o.b]),C[2].copy(c[o.c])):(C[0]=c[o.a].clone(),C[1]=c[o.b].clone(),C[2]=c[o.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)},computeFlatVertexNormals:function(){var t,e,n;for(this.computeFaceNormals(),t=0,e=this.faces.length;t<e;t++){var r=(n=this.faces[t]).vertexNormals;3===r.length?(r[0].copy(n.normal),r[1].copy(n.normal),r[2].copy(n.normal)):(r[0]=n.normal.clone(),r[1]=n.normal.clone(),r[2]=n.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)},computeMorphNormals:function(){var t,e,n,r,i;for(n=0,r=this.faces.length;n<r;
1n++)for((i=this.faces[n]).__originalFaceNormal?i.__originalFaceNormal.copy(i.normal):i.__originalFaceNormal=i.normal.clone(),i.__originalVertexNormals||(i.__originalVertexNormals=[]),t=0,e=i.vertexNormals.length;t<e;t++)i.__originalVertexNormals[t]?i.__originalVertexNormals[t].copy(i.vertexNormals[t]):i.__originalVertexNormals[t]=i.vertexNormals[t].clone();var o=new be;for(o.faces=this.faces,t=0,e=this.morphTargets.length;t<e;t++){if(!this.morphNormals[t]){this.morphNormals[t]={},this.morphNormals[t].faceNormals=[],this.morphNormals[t].vertexNormals=[];var c=this.morphNormals[t].faceNormals,h=this.morphNormals[t].vertexNormals;for(n=0,r=this.faces.length;n<r;n++)f=new W,A={a:new W,b:new W,c:new W},c.push(f),h.push(A)}var f,A,E=this.morphNormals[t];for(o.vertices=this.morphTargets[t].vertices,o.computeFaceNormals(),o.computeVertexNormals(),n=0,r=this.faces.length;n<r;n++)A=E.vertexNormals[n],(f=E.faceNormals[n]).copy((i=this.faces[n]).normal),A.a.copy(i.vertexNormals[0]),A.b.copy(i.vertexNormals[1]),A.c.copy(i.vertexNormals[2])}for(n=0,r=this.faces.length;n<r;
vendor: 7,427 bytes, line 1
1n++)(i=this.faces[n]).normal=i.__originalFaceNormal,i.vertexNormals=i.__originalVertexNormals},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new Le),this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new Ee),this.boundingSphere.setFromPoints(this.vertices)},merge:function(t,e,n){if(t&&t.isGeometry){var r,i=this.vertices.length,o=this.vertices,c=t.vertices,h=this.faces,f=t.faces,A=this.faceVertexUvs[0],E=t.faceVertexUvs[0],C=this.colors,S=t.colors;void 0===n&&(n=0),void 0!==e&&(r=(new te).getNormalMatrix(e));for(var F=0,tt=c.length;F<tt;F++){var rt=c[F].clone();void 0!==e&&rt.applyMatrix4(e),o.push(rt)}for(F=0,tt=S.length;F<tt;F++)C.push(S[F].clone());for(F=0,tt=f.length;F<tt;F++){var ot,St,yt=f[F],Et=yt.vertexNormals,Pt=yt.vertexColors;(ot=new ne(yt.a+i,yt.b+i,yt.c+i)).normal.copy(yt.normal),void 0!==r&&ot.normal.applyMatrix3(r).normalize();for(var se=0,Bt=Et.length;se<Bt;se++)St=Et[se].clone(),void 0!==r&&St.applyMatrix3(r).normalize(),ot.vertexNormals.push(St);for(ot.color.copy(yt.color),se=0,Bt=Pt.length;se<Bt;se++)ot.vertexColors.push(Pt[se].clone());ot.materialIndex=yt.materialIndex+n,h.push(ot)}for(F=0,tt=E.length;F<tt;F++){var Ct=E[F],xe=[];if(void 0!==Ct){for(se=0,Bt=Ct.length;se<Bt;se++)xe.push(Ct[se].clone());A.push(xe)}}}else console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",t)},mergeMesh:function(t){t&&t.isMesh?(t.matrixAutoUpdate&&t.updateMatrix(),this.merge(t.geometry,t.matrix)):console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",t)},mergeVertices:function(){var t,e,n,r,i,o,c,h,f={},A=[],E=[],C=Math.pow(10,4);for(n=0,r=this.vertices.length;n<r;n++)t=this.vertices[n],void 0===f[e=Math.round(t.x*C)+"_"+Math.round(t.y*C)+"_"+Math.round(t.z*C)]?(f[e]=n,A.push(this.vertices[n]),E[n]=A.length-1):E[n]=E[f[e]];var S=[];for(n=0,r=this.faces.length;n<r;n++){(i=this.faces[n]).a=E[i.a],i.b=E[i.b],i.c=E[i.c],o=[i.a,i.b,i.c];for(var F=0;F<3;F++)if(o[F]===o[(F+1)%3]){S.push(n);break}}for(n=S.length-1;n>=0;n--){var tt=S[n];for(this.faces.splice(tt,1),c=0,h=this.faceVertexUvs.length;c<h;c++)this.faceVertexUvs[c].splice(tt,1)}var rt=this.vertices.length-A.length;return this.vertices=A,rt},setFromPoints:function(t){this.vertices=[];for(var e=0,n=t.length;e<n;e++){var r=t[e];this.vertices.push(new W(r.x,r.y,r.z||0))}return this},sortFacesByMaterialIndex:function(){for(var t=this.faces,e=t.length,n=0;n<e;n++)t[n]._id=n;t.sort(function(A,E){return A.materialIndex-E.materialIndex});var r,i,o=this.faceVertexUvs[0],c=this.faceVertexUvs[1];for(o&&o.length===e&&(r=[]),c&&c.length===e&&(i=[]),n=0;n<e;n++){var h=t[n]._id;r&&r.push(o[h]),i&&i.push(c[h])}r&&(this.faceVertexUvs[0]=r),i&&(this.faceVertexUvs[1]=i)},toJSON:function(){var t={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,""!==this.name&&(t.name=this.name),void 0!==this.parameters){var e=this.parameters;for(var n in e)void 0!==e[n]&&(t[n]=e[n]);return t}for(var r=[],i=0;i<this.vertices.length;i++){var o=this.vertices[i];r.push(o.x,o.y,o.z)}var c=[],h=[],f={},A=[],E={},C=[],S={};for(i=0;i<this.faces.length;i++){var F=this.faces[i],tt=void 0!==this.faceVertexUvs[0][i],rt=F.normal.length()>0,ot=F.vertexNormals.length>0,St=1!==F.color.r||1!==F.color.g||1!==F.color.b,yt=F.vertexColors.length>0,Et=0;if(Et=Ct(Et,0,0),Et=Ct(Et,1,!0),Et=Ct(Et,2,!1),Et=Ct(Et,3,tt),Et=Ct(Et,4,rt),Et=Ct(Et,5,ot),Et=Ct(Et,6,St),Et=Ct(Et,7,yt),c.push(Et),c.push(F.a,F.b,F.c),c.push(F.materialIndex),tt){var Pt=this.faceVertexUvs[0][i];c.push(Ft(Pt[0]),Ft(Pt[1]),Ft(Pt[2]))}if(rt&&c.push(xe(F.normal)),ot){var se=F.vertexNormals;c.push(xe(se[0]),xe(se[1]),xe(se[2]))}if(St&&c.push(Yt(F.color)),yt){var Bt=F.vertexColors;c.push(Yt(Bt[0]),Yt(Bt[1]),Yt(Bt[2]))}}function Ct(He,Xe,_e){return _e?He|1<<Xe:He&~(1<<Xe)}function xe(He){var Xe=He.x.toString()+He.y.toString()+He.z.toString();return void 0!==f[Xe]||(f[Xe]=h.length/3,h.push(He.x,He.y,He.z)),f[Xe]}function Yt(He){var Xe=He.r.toString()+He.g.toString()+He.b.toString();return void 0!==E[Xe]||(E[Xe]=A.length,A.push(He.getHex())),E[Xe]}function Ft(He){var Xe=He.x.toString()+He.y.toString();return void 0!==S[Xe]||(S[Xe]=C.length/2,C.push(He.x,He.y)),S[Xe]}return t.data={},t.data.vertices=r,t.data.normals=h,A.length>0&&(t.data.colors=A),C.length>0&&(t.data.uvs=[C]),t.data.faces=c,t},clone:function(){return(new be).copy(this)},copy:function(t){var e,n,r,i,o,c;this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;var h=t.vertices;for(e=0,n=h.length;e<n;e++)this.vertices.push(h[e].clone());var f=t.colors;for(e=0,n=f.length;e<n;e++)this.colors.push(f[e].clone());var A=t.faces;for(e=0,n=A.length;e<n;e++)this.faces.push(A[e].clone());for(e=0,n=t.faceVertexUvs.length;e<n;e++){var E=t.faceVertexUvs[e];for(void 0===this.faceVertexUvs[e]&&(this.faceVertexUvs[e]=[]),r=0,i=E.length;r<i;r++){var C=E[r],S=[];for(o=0,c=C.length;o<c;o++)S.push(C[o].clone());this.faceVertexUvs[e].push(S)}}var F=t.morphTargets;for(e=0,n=F.length;e<n;e++){var tt={};if(tt.name=F[e].name,void 0!==F[e].vertices)for(tt.vertices=[],r=0,i=F[e].vertices.length;r<i;r++)tt.vertices.push(F[e].vertices[r].clone());if(void 0!==F[e].normals)for(tt.normals=[],r=0,i=F[e].normals.length;r<i;r++)tt.normals.push(F[e].normals[r].clone());this.morphTargets.push(tt)}var rt=t.morphNormals;for(e=0,n=rt.length;e<n;e++){var ot={};if(void 0!==rt[e].vertexNormals)for(ot.vertexNormals=[],r=0,i=rt[e].vertexNormals.length;r<i;r++){var St=rt[e].vertexNormals[r],yt={};yt.a=St.a.clone(),yt.b=St.b.clone(),yt.c=St.c.clone(),ot.vertexNormals.push(yt)}if(void 0!==rt[e].faceNormals)for(ot.faceNormals=[],r=0,i=rt[e].faceNormals.length;r<i;r++)ot.faceNormals.push(rt[e].faceNormals[r].clone());this.morphNormals.push(ot)}var Et=t.skinWeights;for(e=0,n=Et.length;e<n;e++)this.skinWeights.push(Et[e].clone());var Pt=t.skinIndices;for(e=0,n=Pt.length;e<n;e++)this.skinIndices.push(Pt[e].clone());var se=t.lineDistances;for(e=0,n=se.length;e<n;e++)this.lineDistances.push(se[e]);var Bt=t.boundingBox;null!==Bt&&(this.boundingBox=Bt.clone());var Ct=t.boundingSphere;return null!==Ct&&(this.boundingSphere=Ct.clone()),this.elementsNeedUpdate=t.elementsNeedUpdate,this.verticesNeedUpdate=t.verticesNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.lineDistancesNeedUpdate=t.lineDistancesNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),Object.defineProperty(qe.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),Object.assign(qe.prototype,{isBufferAttribute:!0,onUploadCallback:function(){},setArray:function(t){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");return this.count=void 0!==t?t.length/this.itemSize:0,this.array=t,this},setDynamic:function(t){return this.dynamic=t,this},copy:function(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.dynamic=t.dynamic,this},copyAt:function(t,e,n){t*=this.itemSize,n*=e.itemSize;
vendor: 12,641 bytes, line 1
1for(var r=0,i=this.itemSize;r<i;r++)this.array[t+r]=e.array[n+r];return this},copyArray:function(t){return this.array.set(t),this},copyColorsArray:function(t){for(var e=this.array,n=0,r=0,i=t.length;r<i;r++){var o=t[r];void 0===o&&(console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined",r),o=new lt),e[n++]=o.r,e[n++]=o.g,e[n++]=o.b}return this},copyVector2sArray:function(t){for(var e=this.array,n=0,r=0,i=t.length;r<i;r++){var o=t[r];void 0===o&&(console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined",r),o=new G),e[n++]=o.x,e[n++]=o.y}return this},copyVector3sArray:function(t){for(var e=this.array,n=0,r=0,i=t.length;r<i;r++){var o=t[r];void 0===o&&(console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined",r),o=new W),e[n++]=o.x,e[n++]=o.y,e[n++]=o.z}return this},copyVector4sArray:function(t){for(var e=this.array,n=0,r=0,i=t.length;r<i;r++){var o=t[r];void 0===o&&(console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",r),o=new We),e[n++]=o.x,e[n++]=o.y,e[n++]=o.z,e[n++]=o.w}return this},set:function(t,e){return void 0===e&&(e=0),this.array.set(t,e),this},getX:function(t){return this.array[t*this.itemSize]},setX:function(t,e){return this.array[t*this.itemSize]=e,this},getY:function(t){return this.array[t*this.itemSize+1]},setY:function(t,e){return this.array[t*this.itemSize+1]=e,this},getZ:function(t){return this.array[t*this.itemSize+2]},setZ:function(t,e){return this.array[t*this.itemSize+2]=e,this},getW:function(t){return this.array[t*this.itemSize+3]},setW:function(t,e){return this.array[t*this.itemSize+3]=e,this},setXY:function(t,e,n){return this.array[0+(t*=this.itemSize)]=e,this.array[t+1]=n,this},setXYZ:function(t,e,n,r){return this.array[0+(t*=this.itemSize)]=e,this.array[t+1]=n,this.array[t+2]=r,this},setXYZW:function(t,e,n,r,i){return this.array[0+(t*=this.itemSize)]=e,this.array[t+1]=n,this.array[t+2]=r,this.array[t+3]=i,this},onUpload:function(t){return this.onUploadCallback=t,this},clone:function(){return new this.constructor(this.array,this.itemSize).copy(this)}}),(kn.prototype=Object.create(qe.prototype)).constructor=kn,(yr.prototype=Object.create(qe.prototype)).constructor=yr,(ur.prototype=Object.create(qe.prototype)).constructor=ur,(ee.prototype=Object.create(qe.prototype)).constructor=ee,(Se.prototype=Object.create(qe.prototype)).constructor=Se,(Re.prototype=Object.create(qe.prototype)).constructor=Re,(Be.prototype=Object.create(qe.prototype)).constructor=Be,(Lt.prototype=Object.create(qe.prototype)).constructor=Lt,(Ht.prototype=Object.create(qe.prototype)).constructor=Ht,Object.assign(Jt.prototype,{computeGroups:function(t){for(var e,n=[],r=void 0,i=t.faces,o=0;o<i.length;o++){var c=i[o];c.materialIndex!==r&&(r=c.materialIndex,void 0!==e&&(e.count=3*o-e.start,n.push(e)),e={start:3*o,materialIndex:r})}void 0!==e&&(e.count=3*o-e.start,n.push(e)),this.groups=n},fromGeometry:function(t){var e,n=t.faces,r=t.vertices,i=t.faceVertexUvs,o=i[0]&&i[0].length>0,c=i[1]&&i[1].length>0,h=t.morphTargets,f=h.length;if(f>0){e=[];for(var A=0;A<f;A++)e[A]={name:h[A].name,data:[]};this.morphTargets.position=e}var E,C=t.morphNormals,S=C.length;if(S>0){for(E=[],A=0;A<S;A++)E[A]={name:C[A].name,data:[]};this.morphTargets.normal=E}var F=t.skinIndices,tt=t.skinWeights,rt=F.length===r.length,ot=tt.length===r.length;for(r.length>0&&0===n.length&&console.error("THREE.DirectGeometry: Faceless geometries are not supported."),A=0;A<n.length;A++){var St=n[A];this.vertices.push(r[St.a],r[St.b],r[St.c]);var yt=St.vertexNormals;if(3===yt.length)this.normals.push(yt[0],yt[1],yt[2]);else{var Et=St.normal;this.normals.push(Et,Et,Et)}var Pt,se=St.vertexColors;if(3===se.length)this.colors.push(se[0],se[1],se[2]);else{var Bt=St.color;this.colors.push(Bt,Bt,Bt)}!0===o&&(void 0!==(Pt=i[0][A])?this.uvs.push(Pt[0],Pt[1],Pt[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",A),this.uvs.push(new G,new G,new G))),!0===c&&(void 0!==(Pt=i[1][A])?this.uvs2.push(Pt[0],Pt[1],Pt[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",A),this.uvs2.push(new G,new G,new G)));for(var Ct=0;Ct<f;Ct++){var xe=h[Ct].vertices;e[Ct].data.push(xe[St.a],xe[St.b],xe[St.c])}for(Ct=0;Ct<S;Ct++){var Yt=C[Ct].vertexNormals[A];E[Ct].data.push(Yt.a,Yt.b,Yt.c)}rt&&this.skinIndices.push(F[St.a],F[St.b],F[St.c]),ot&&this.skinWeights.push(tt[St.a],tt[St.b],tt[St.c])}return this.computeGroups(t),this.verticesNeedUpdate=t.verticesNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,this}});var Je=1;function Te(){Object.defineProperty(this,"id",{value:Je+=2}),this.uuid=U.generateUUID(),this.name="",this.type="BufferGeometry",this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}function nn(t,e,n,r,i,o){be.call(this),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:r,heightSegments:i,depthSegments:o},this.fromBufferGeometry(new pn(t,e,n,r,i,o)),this.mergeVertices()}function pn(t,e,n,r,i,o){Te.call(this),this.type="BoxBufferGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:r,heightSegments:i,depthSegments:o};var c=this;t=t||1,e=e||1,n=n||1,r=Math.floor(r)||1,i=Math.floor(i)||1,o=Math.floor(o)||1;var h=[],f=[],A=[],E=[],C=0,S=0;function F(tt,rt,ot,St,yt,Et,Pt,se,Bt,Ct,xe){var Yt,Ft,He=Et/Bt,Xe=Pt/Ct,_e=Et/2,ke=Pt/2,Ne=se/2,Fe=Bt+1,gn=Ct+1,$e=0,ln=0,Ue=new W;for(Ft=0;Ft<gn;Ft++){var Xn=Ft*Xe-ke;for(Yt=0;Yt<Fe;Yt++)Ue[tt]=(Yt*He-_e)*St,Ue[rt]=Xn*yt,Ue[ot]=Ne,f.push(Ue.x,Ue.y,Ue.z),Ue[tt]=0,Ue[rt]=0,Ue[ot]=se>0?1:-1,A.push(Ue.x,Ue.y,Ue.z),E.push(Yt/Bt),E.push(1-Ft/Ct),$e+=1}for(Ft=0;Ft<Ct;Ft++)for(Yt=0;Yt<Bt;Yt++){var Un=C+Yt+Fe*(Ft+1),Jn=C+(Yt+1)+Fe*(Ft+1),Lr=C+(Yt+1)+Fe*Ft;h.push(C+Yt+Fe*Ft,Un,Lr),h.push(Un,Jn,Lr),ln+=6}c.addGroup(S,ln,xe),S+=ln,C+=$e}F("z","y","x",-1,-1,n,e,t,o,i,0),F("z","y","x",1,-1,n,e,-t,o,i,1),F("x","z","y",1,1,t,n,e,r,o,2),F("x","z","y",1,-1,t,n,-e,r,o,3),F("x","y","z",1,-1,t,e,n,r,i,4),F("x","y","z",-1,-1,t,e,-n,r,i,5),this.setIndex(h),this.addAttribute("position",new Lt(f,3)),this.addAttribute("normal",new Lt(A,3)),this.addAttribute("uv",new Lt(E,2))}function Pn(t,e,n,r){be.call(this),this.type="PlaneGeometry",this.parameters={width:t,height:e,widthSegments:n,heightSegments:r},this.fromBufferGeometry(new Mn(t,e,n,r)),this.mergeVertices()}function Mn(t,e,n,r){Te.call(this),this.type="PlaneBufferGeometry",this.parameters={width:t,height:e,widthSegments:n,heightSegments:r};var i,o,c=(t=t||1)/2,h=(e=e||1)/2,f=Math.floor(n)||1,A=Math.floor(r)||1,E=f+1,C=A+1,S=t/f,F=e/A,tt=[],rt=[],ot=[],St=[];for(o=0;o<C;o++){var yt=o*F-h;for(i=0;i<E;i++)rt.push(i*S-c,-yt,0),ot.push(0,0,1),St.push(i/f),St.push(1-o/A)}for(o=0;o<A;o++)for(i=0;i<f;i++){var Et=i+E*(o+1),Pt=i+1+E*(o+1),se=i+1+E*o;tt.push(i+E*o,Et,se),tt.push(Et,Pt,se)}this.setIndex(tt),this.addAttribute("position",new Lt(rt,3)),this.addAttribute("normal",new Lt(ot,3)),this.addAttribute("uv",new Lt(St,2))}Te.prototype=Object.assign(Object.create(D.prototype),{constructor:Te,isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(t){this.index=Array.isArray(t)?new(Ie(t)>65535?Be:Se)(t,1):t},addAttribute:function(t,e){return e&&e.isBufferAttribute||e&&e.isInterleavedBufferAttribute?"index"===t?(console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(e),this):(this.attributes[t]=e,this):(console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.addAttribute(t,new qe(arguments[1],arguments[2])))},getAttribute:function(t){return this.attributes[t]},removeAttribute:function(t){return delete this.attributes[t],this},addGroup:function(t,e,n){this.groups.push({start:t,count:e,materialIndex:void 0!==n?n:0})},clearGroups:function(){this.groups=[]},setDrawRange:function(t,e){this.drawRange.start=t,this.drawRange.count=e},applyMatrix:function(t){var e=this.attributes.position;void 0!==e&&(t.applyToBufferAttribute(e),e.needsUpdate=!0);var n=this.attributes.normal;return void 0!==n&&((new te).getNormalMatrix(t).applyToBufferAttribute(n),n.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this},rotateX:function(){var t=new dt;return function(e){return t.makeRotationX(e),this.applyMatrix(t),this}}(),rotateY:function(){var t=new dt;return function(e){return t.makeRotationY(e),this.applyMatrix(t),this}}(),rotateZ:function(){var t=new dt;return function(e){return t.makeRotationZ(e),this.applyMatrix(t),this}}(),translate:function(){var t=new dt;return function(e,n,r){return t.makeTranslation(e,n,r),this.applyMatrix(t),this}}(),scale:function(){var t=new dt;return function(e,n,r){return t.makeScale(e,n,r),this.applyMatrix(t),this}}(),lookAt:function(){var t=new Wt;return function(e){t.lookAt(e),t.updateMatrix(),this.applyMatrix(t.matrix)}}(),center:function(){var t=new W;return function(){return this.computeBoundingBox(),this.boundingBox.getCenter(t).negate(),this.translate(t.x,t.y,t.z),this}}(),setFromObject:function(t){var e=t.geometry;if(t.isPoints||t.isLine){var n=new Lt(3*e.vertices.length,3),r=new Lt(3*e.colors.length,3);if(this.addAttribute("position",n.copyVector3sArray(e.vertices)),this.addAttribute("color",r.copyColorsArray(e.colors)),e.lineDistances&&e.lineDistances.length===e.vertices.length){var i=new Lt(e.lineDistances.length,1);this.addAttribute("lineDistance",i.copyArray(e.lineDistances))}null!==e.boundingSphere&&(this.boundingSphere=e.boundingSphere.clone()),null!==e.boundingBox&&(this.boundingBox=e.boundingBox.clone())}else t.isMesh&&e&&e.isGeometry&&this.fromGeometry(e);return this},setFromPoints:function(t){for(var e=[],n=0,r=t.length;n<r;n++){var i=t[n];e.push(i.x,i.y,i.z||0)}return this.addAttribute("position",new Lt(e,3)),this},updateFromObject:function(t){var e,n=t.geometry;if(t.isMesh){var r=n.__directGeometry;if(!0===n.elementsNeedUpdate&&(r=void 0,n.elementsNeedUpdate=!1),void 0===r)return this.fromGeometry(n);r.verticesNeedUpdate=n.verticesNeedUpdate,r.normalsNeedUpdate=n.normalsNeedUpdate,r.colorsNeedUpdate=n.colorsNeedUpdate,r.uvsNeedUpdate=n.uvsNeedUpdate,r.groupsNeedUpdate=n.groupsNeedUpdate,n.verticesNeedUpdate=!1,n.normalsNeedUpdate=!1,n.colorsNeedUpdate=!1,n.uvsNeedUpdate=!1,n.groupsNeedUpdate=!1,n=r}return!0===n.verticesNeedUpdate&&(void 0!==(e=this.attributes.position)&&(e.copyVector3sArray(n.vertices),e.needsUpdate=!0),n.verticesNeedUpdate=!1),!0===n.normalsNeedUpdate&&(void 0!==(e=this.attributes.normal)&&(e.copyVector3sArray(n.normals),e.needsUpdate=!0),n.normalsNeedUpdate=!1),!0===n.colorsNeedUpdate&&(void 0!==(e=this.attributes.color)&&(e.copyColorsArray(n.colors),e.needsUpdate=!0),n.colorsNeedUpdate=!1),n.uvsNeedUpdate&&(void 0!==(e=this.attributes.uv)&&(e.copyVector2sArray(n.uvs),e.needsUpdate=!0),n.uvsNeedUpdate=!1),n.lineDistancesNeedUpdate&&(void 0!==(e=this.attributes.lineDistance)&&(e.copyArray(n.lineDistances),e.needsUpdate=!0),n.lineDistancesNeedUpdate=!1),n.groupsNeedUpdate&&(n.computeGroups(t.geometry),this.groups=n.groups,n.groupsNeedUpdate=!1),this},fromGeometry:function(t){return t.__directGeometry=(new Jt).fromGeometry(t),this.fromDirectGeometry(t.__directGeometry)},fromDirectGeometry:function(t){var e=new Float32Array(3*t.vertices.length);if(this.addAttribute("position",new qe(e,3).copyVector3sArray(t.vertices)),t.normals.length>0){var n=new Float32Array(3*t.normals.length);this.addAttribute("normal",new qe(n,3).copyVector3sArray(t.normals))}if(t.colors.length>0){var r=new Float32Array(3*t.colors.length);this.addAttribute("color",new qe(r,3).copyColorsArray(t.colors))}if(t.uvs.length>0){var i=new Float32Array(2*t.uvs.length);this.addAttribute("uv",new qe(i,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){var o=new Float32Array(2*t.uvs2.length);this.addAttribute("uv2",new qe(o,2).copyVector2sArray(t.uvs2))}for(var c in this.groups=t.groups,t.morphTargets){for(var h=[],f=t.morphTargets[c],A=0,E=f.length;A<E;A++){var C=f[A],S=new Lt(3*C.data.length,3);S.name=C.name,h.push(S.copyVector3sArray(C.data))}this.morphAttributes[c]=h}if(t.skinIndices.length>0){var F=new Lt(4*t.skinIndices.length,4);this.addAttribute("skinIndex",F.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){var tt=new Lt(4*t.skinWeights.length,4);this.addAttribute("skinWeight",tt.copyVector4sArray(t.skinWeights))}return null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),null!==t.boundingBox&&
1(this.boundingBox=t.boundingBox.clone()),this},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new Le);var t=this.attributes.position;void 0!==t?this.boundingBox.setFromBufferAttribute(t):this.boundingBox.makeEmpty(),(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)},computeBoundingSphere:function(){var t=new Le,e=new W;return function(){null===this.boundingSphere&&(this.boundingSphere=new Ee);var n=this.attributes.position;if(n){var r=this.boundingSphere.center;t.setFromBufferAttribute(n),t.getCenter(r);for(var i=0,o=0,c=n.count;o<c;o++)e.x=n.getX(o),e.y=n.getY(o),e.z=n.getZ(o),i=Math.max(i,r.distanceToSquared(e));this.boundingSphere.radius=Math.sqrt(i),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}}}(),computeFaceNormals:function(){},computeVertexNormals:function(){var t=this.index,e=this.attributes;if(e.position){var n=e.position.array;if(void 0===e.normal)this.addAttribute("normal",new qe(new Float32Array(n.length),3));else for(var r=e.normal.array,i=0,o=r.length;i<o;i++)r[i]=0;var c,h,f,A=e.normal.array,E=new W,C=new W,S=new W,F=new W,tt=new W;if(t){var rt=t.array;for(i=0,o=t.count;i<o;i+=3)h=3*rt[i+1],f=3*rt[i+2],E.fromArray(n,c=3*rt[i+0]),C.fromArray(n,h),S.fromArray(n,f),F.subVectors(S,C),tt.subVectors(E,C),F.cross(tt),A[c]+=F.x,A[c+1]+=F.y,A[c+2]+=F.z,A[h]+=F.x,A[h+1]+=F.y,A[h+2]+=F.z,A[f]+=F.x,A[f+1]+=F.y,A[f+2]+=F.z}else for(i=0,o=n.length;i<o;i+=9)E.fromArray(n,i),C.fromArray(n,i+3),S.fromArray(n,i+6),F.subVectors(S,C),tt.subVectors(E,C),F.cross(tt),A[i]=F.x,A[i+1]=F.y,A[i+2]=F.z,A[i+3]=F.x,A[i+4]=F.y,A[i+5]=F.z,A[i+6]=F.x,A[i+7]=F.y,A[i+8]=F.z;this.normalizeNormals(),e.normal.needsUpdate=!0}},merge:function(t,e){if(t&&t.isBufferGeometry){void 0===e&&(e=0,console.warn("THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge."));var n=this.attributes;for(var r in n)if(void 0!==t.attributes[r])for(var i=n[r].array,o=t.attributes[r],c=o.array,h=0,f=o.itemSize*e;h<c.length;h++,f++)i[f]=c[h];return this}console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.",t)},normalizeNormals:function(){var t=new W;return function(){for(var e=this.attributes.normal,n=0,r=e.count;n<r;n++)t.x=e.getX(n),t.y=e.getY(n),t.z=e.getZ(n),t.normalize(),e.setXYZ(n,t.x,t.y,t.z)}}(),toNonIndexed:function(){if(null===this.index)return console.warn("THREE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed."),this;var t=new Te,e=this.index.array,n=this.attributes;for(var r in n){for(var i=n[r],o=i.array,c=i.itemSize,h=new o.constructor(e.length*c),f=0,A=0,E=0,C=e.length;E<C;E++){f=e[E]*c;for(var S=0;S<c;S++)h[A++]=o[f++]}t.addAttribute(r,new qe(h,c))}var F=this.groups;for(E=0,C=F.length;E<C;E++){var tt=F[E];t.addGroup(tt.start,tt.count,tt.materialIndex)}return t},toJSON:function(){var t={metadata:{version:4.5,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,""!==this.name&&(t.name=this.name),Object.keys(this.userData).length>0&&(t.userData=this.userData),void 0!==this.parameters){var e=this.parameters;for(var n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};var r=this.index;if(null!==r){var i=Array.prototype.slice.call(r.array);t.data.index={type:r.array.constructor.name,array:i}}var o=this.attributes;for(var n in o){var c=o[n];i=Array.prototype.slice.call(c.array),t.data.attributes[n]={itemSize:c.itemSize,type:c.array.constructor.name,array:i,normalized:c.normalized}}var h=this.groups;h.length>0&&(t.data.groups=JSON.parse(JSON.stringify(h)));var f=this.boundingSphere;return null!==f&&(t.data.boundingSphere={center:f.center.toArray(),radius:f.radius}),t},clone:function(){return(new Te).copy(this)},copy:function(t){var e,n,r;this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;var i=t.index;null!==i&&this.setIndex(i.clone());var o=t.attributes;for(e in o)this.addAttribute(e,o[e].clone());var c=t.morphAttributes;for(e in c){var h=[],f=c[e];for(n=0,r=f.length;n<r;n++)h.push(f[n].clone());this.morphAttributes[e]=h}var A=t.groups;for(n=0,r=A.length;n<r;n++){var E=A[n];this.addGroup(E.start,E.count,E.materialIndex)}var C=t.boundingBox;null!==C&&(this.boundingBox=C.clone());var S=t.boundingSphere;return null!==S&&(this.boundingSphere=S.clone()),this.drawRange.start=t.drawRange.start,this.drawRange.count=t.drawRange.count,this.userData=t.userData,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),(nn.prototype=Object.create(be.prototype)).constructor=nn,(pn.prototype=Object.create(Te.prototype)).constructor=pn,(Pn.prototype=Object.create(be.prototype)).constructor=Pn,(Mn.prototype=Object.create(Te.prototype)).constructor=Mn;var Ve=0;function Pe(){Object.defineProperty(this,"id",{value:Ve++}),this.uuid=U.generateUUID(),this.name="",this.type="Material",this.fog=!0,this.lights=!0,this.blending=1,this.side=0,this.flatShading=!1,this.vertexColors=0,this.opacity=1,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=s,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaTest=0,this.premultipliedAlpha=!1,this.overdraw=0,this.visible=!0,this.userData={},this.needsUpdate=!0}function zt(t){Pe.call(this),this.type="ShaderMaterial",this.defines={},this.uniforms={},this.vertexShader="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",this.fragmentShader="void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}",this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,void 0!==t&&(void 0!==t.attributes&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),this.setValues(t))}function me(t,e){this.origin=void 0!==t?t:new W,this.direction=void 0!==e?e:new W}function Dt(t,e,n){this.a=void 0!==t?t:new W,this.b=void 0!==e?e:new W,this.c=void 0!==n?n:new W}function le(t){Pe.call(this),this.type="MeshBasicMaterial",this.color=new lt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.lights=!1,this.setValues(t)}function pe(t,e){Wt.call(this),this.type="Mesh",this.geometry=void 0!==t?t:new Te,this.material=void 0!==e?e:new le({color:16777215*Math.random()}),this.drawMode=0,this.updateMorphTargets()}function dn(t,e,n,r){var i,o,c=new lt(0),h=0;function f(A,E){e.buffers.color.setClear(A.r,A.g,A.b,E,r)}return{getClearColor:function(){return c},setClearColor:function(A,E){c.set(A),f(c,h=void 0!==E?E:1)},getClearAlpha:function(){return h},setClearAlpha:function(A){f(c,h=A)},render:function(E,C,S,F){var tt=C.background;null===tt?f(c,h):tt&&tt.isColor&&(f(tt,1),F=!0),(t.autoClear||F)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),tt&&tt.isCubeTexture?(void 0===o&&((o=new pe(new pn(1,1,1),new zt({uniforms:It.clone(ct.cube.uniforms),vertexShader:ct.cube.vertexShader,fragmentShader:ct.cube.fragmentShader,side:1,depthTest:!0,depthWrite:!1,fog:!1}))).geometry.removeAttribute("normal"),o.geometry.removeAttribute("uv"),o.onBeforeRender=function(rt,ot,St){this.matrixWorld.copyPosition(St.matrixWorld)},n.update(o)),o.material.uniforms.tCube.value=tt,E.push(o,o.geometry,o.material,0,null)):tt&&tt.isTexture&&(void 0===i&&((i=new pe(new Mn(2,2),new zt({uniforms:It.clone(ct.background.uniforms),vertexShader:ct.background.vertexShader,fragmentShader:ct.background.fragmentShader,side:0,depthTest:!0,depthWrite:!1,fog:!1}))).geometry.removeAttribute("normal"),n.update(i)),i.material.uniforms.t2D.value=tt,E.push(i,i.geometry,i.material,0,null))}}}function Ze(t,e,n,r){var i;this.setMode=function(c){i=c},this.render=function(c,h){t.drawArrays(i,c,h),n.update(h,i)},this.renderInstances=function(c,h,f){var A;if(r.isWebGL2)A=t;else if(null===(A=e.get("ANGLE_instanced_arrays")))return void console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_
1instanced_arrays.");A[r.isWebGL2?"drawArraysInstanced":"drawArraysInstancedANGLE"](i,h,f,c.maxInstancedCount),n.update(f,i,c.maxInstancedCount)}}function Kn(t,e,n){var r;function i(Et){if("highp"===Et){if(t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.HIGH_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return"highp";Et="mediump"}return"mediump"===Et&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}var o=typeof WebGL2RenderingContext<"u"&&t instanceof WebGL2RenderingContext,c=void 0!==n.precision?n.precision:"highp",h=i(c);h!==c&&(console.warn("THREE.WebGLRenderer:",c,"not supported, using",h,"instead."),c=h);var f=!0===n.logarithmicDepthBuffer,A=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),E=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),C=t.getParameter(t.MAX_TEXTURE_SIZE),S=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),F=t.getParameter(t.MAX_VERTEX_ATTRIBS),tt=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),rt=t.getParameter(t.MAX_VARYING_VECTORS),ot=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),St=E>0,yt=o||!!e.get("OES_texture_float");return{isWebGL2:o,getMaxAnisotropy:function(){if(void 0!==r)return r;var Pt=e.get("EXT_texture_filter_anisotropic");return r=null!==Pt?t.getParameter(Pt.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0},getMaxPrecision:i,precision:c,logarithmicDepthBuffer:f,maxTextures:A,maxVertexTextures:E,maxTextureSize:C,maxCubemapSize:S,maxAttributes:F,maxVertexUniforms:tt,maxVaryings:rt,maxFragmentUniforms:ot,vertexTextures:St,floatFragmentTextures:yt,floatVertexTextures:St&&yt}}function un(){var t=this,e=null,n=0,r=!1,i=!1,o=new Qt,c=new te,h={value:null,needsUpdate:!1};function f(){h.value!==e&&(h.value=e,h.needsUpdate=n>0),t.numPlanes=n,t.numIntersection=0}function A(E,C,S,F){var tt=null!==E?E.length:0,rt=null;if(0!==tt){if(rt=h.value,!0!==F||null===rt){var ot=S+4*tt,St=C.matrixWorldInverse;c.getNormalMatrix(St),(null===rt||rt.length<ot)&&(rt=new Float32Array(ot));for(var yt=0,Et=S;yt!==tt;++yt,Et+=4)o.copy(E[yt]).applyMatrix4(St,c),o.normal.toArray(rt,Et),rt[Et+3]=o.constant}h.value=rt,h.needsUpdate=!0}return t.numPlanes=tt,rt}this.uniform=h,this.numPlanes=0,this.numIntersection=0,this.init=function(E,C,S){var F=0!==E.length||C||0!==n||r;return r=C,e=A(E,S,0),n=E.length,F},this.beginShadows=function(){i=!0,A(null)},this.endShadows=function(){i=!1,f()},this.setState=function(E,C,S,F,tt,rt){if(!r||null===E||0===E.length||i&&!S)i?A(null):f();else{var ot=i?0:n,St=4*ot,yt=tt.clippingState||null;h.value=yt,yt=A(E,F,St,rt);for(var Et=0;Et!==St;++Et)yt[Et]=e[Et];tt.clippingState=yt,this.numIntersection=C?this.numPlanes:0,this.numPlanes+=ot}}}function fn(t){var e={};return{get:function(n){if(void 0!==e[n])return e[n];var r;switch(n){case"WEBGL_depth_texture":r=t.getExtension("WEBGL_depth_texture")||t.getExtension("MOZ_WEBGL_depth_texture")||t.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":r=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":r=t.getExtension("WEBGL_compressed_texture_s3tc")||t.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":r=t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:r=t.getExtension(n)}return null===r&&console.warn("THREE.WebGLRenderer: "+n+" extension not supported."),e[n]=r,r}}}function on(t,e,n){var r={},i={};function o(c){var h=c.target,f=r[h.id];for(var A in null!==f.index&&e.remove(f.index),f.attributes)e.remove(f.attributes[A]);h.removeEventListener("dispose",o),delete r[h.id];var E=i[f.id];E&&(e.remove(E),delete i[f.id]),n.memory.geometries--}return{get:function(h,f){var A=r[f.id];return A||(f.addEventListener("dispose",o),f.isBufferGeometry?A=f:f.isGeometry&&(void 0===f._bufferGeometry&&(f._bufferGeometry=(new Te).setFromObject(h)),A=f._bufferGeometry),r[f.id]=A,n.memory.geometries++,A)},update:function(h){var f=h.index,A=h.attributes;for(var E in null!==f&&e.update(f,t.ELEMENT_ARRAY_BUFFER),A)e.update(A[E],t.ARRAY_BUFFER);var C=h.morphAttributes;for(var E in C)for(var S=C[E],F=0,tt=S.length;F<tt;F++)e.update(S[F],t.ARRAY_BUFFER)},getWireframeAttribute:function(h){var f=i[h.id];if(f)return f;var A,E=[],C=h.index,S=h.attributes;if(null!==C)for(var F=0,tt=(A=C.array).length;F<tt;F+=3)E.push(rt=A[F+0],ot=A[F+1],ot,St=A[F+2],St,rt);else for(F=0,tt=(A=S.position.array).length/3-1;F<tt;F+=3){var rt,ot,St;E.push(rt=F+0,ot=F+1,ot,St=F+2,St,rt)}return f=new(Ie(E)>65535?Be:Se)(E,1),e.update(f,t.ELEMENT_ARRAY_BUFFER),i[h.id]=f,f}}}function Nn(t,e,n,r){var i,o,c;this.setMode=function(f){i=f},this.setIndex=function(f){o=f.type,c=f.bytesPerElement},this.render=function(f,A){t.drawElements(i,A,o,f*c),n.update(A,i)},this.renderInstances=function(f,A,E){var C;if(r.isWebGL2)C=t;else if(null===(C=e.get("ANGLE_instanced_arrays")))return void console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_
1instanced_arrays.");C[r.isWebGL2?"drawElementsInstanced":"drawElementsInstancedANGLE"](i,E,o,A*c,f.maxInstancedCount),n.update(E,i,f.maxInstancedCount)}}function Zn(t){var e={frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:e,programs:null,autoReset:!0,reset:function(){e.frame++,e.calls=0,e.triangles=0,e.points=0,e.lines=0},update:function(r,i,o){switch(o=o||1,e.calls++,i){case t.TRIANGLES:e.triangles+=o*(r/3);break;case t.TRIANGLE_STRIP:case t.TRIANGLE_FAN:e.triangles+=o*(r-2);break;case t.LINES:e.lines+=o*(r/2);break;case t.LINE_STRIP:e.lines+=o*(r-1);break;case t.LINE_LOOP:e.lines+=o*r;break;case t.POINTS:e.points+=o*r;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",i)}}}}function cn(t,e){return Math.abs(e[1])-Math.abs(t[1])}function Qn(t){var e={},n=new Float32Array(8);return{update:function(i,o,c,h){var f=i.morphTargetInfluences,A=f.length,E=e[o.id];if(void 0===E){E=[];for(var C=0;C<A;C++)E[C]=[C,0];e[o.id]=E}var S=c.morphTargets&&o.morphAttributes.position,F=c.morphNormals&&o.morphAttributes.normal;for(C=0;C<A;C++)0!==(tt=E[C])[1]&&(S&&o.removeAttribute("morphTarget"+C),F&&o.removeAttribute("morphNormal"+C));for(C=0;C<A;C++)(tt=E[C])[0]=C,tt[1]=f[C];for(E.sort(cn),C=0;C<8;C++){var tt;if(tt=E[C]){var rt=tt[0],ot=tt[1];if(ot){S&&o.addAttribute("morphTarget"+C,S[rt]),F&&o.addAttribute("morphNormal"+C,F[rt]),n[C]=ot;continue}}n[C]=0}h.getUniforms().setValue(t,"morphTargetInfluences",n)}}}function zn(t,e){var n={};return{update:function(i){var o=e.render.frame,c=i.geometry,h=t.get(i,c);return n[h.id]!==o&&(c.isGeometry&&h.updateFromObject(i),t.update(h),n[h.id]=o),h},dispose:function(){n={}}}}function sn(t,e,n,r,i,o,c,h,f,A){ge.call(this,t=void 0!==t?t:[],e=void 0!==e?e:301,n,r,i,o,c,h,f,A),this.flipY=!1}function xn(t,e,n,r){ge.call(this,null),this.image={data:t,width:e,height:n,depth:r},this.magFilter=_,this.minFilter=_,this.generateMipmaps=!1,this.flipY=!1}Pe.prototype=Object.assign(Object.create(D.prototype),{constructor:Pe,isMaterial:!0,onBeforeCompile:function(){},setValues:function(t){if(void 0!==t)for(var e in t){var n=t[e];if(void 0!==n)if("shading"!==e){var r=this[e];void 0!==r?r&&r.isColor?r.set(n):r&&r.isVector3&&n&&n.isVector3?r.copy(n):this[e]="overdraw"===e?Number(n):n:console.warn("THREE."+this.type+": '"+e+"' is not a property of this material.")}else console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===n;else console.warn("THREE.Material: '"+e+"' parameter is undefined.")}},toJSON:function(t){var e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});var n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function r(c){var h=[];for(var f in c){var A=c[f];delete A.metadata,h.push(A)}return h}
vendor: 12,859 bytes, line 1
1if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearCoat&&(n.clearCoat=this.clearCoat),void 0!==this.clearCoatRoughness&&(n.clearCoatRoughness=this.clearCoatRoughness),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,n.reflectivity=this.reflectivity,void 0!==this.combine&&(n.combine=this.combine),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity)),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.size&&(n.size=this.size),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),!0===this.flatShading&&(n.flatShading=this.flatShading),0!==this.side&&(n.side=this.side),0!==this.vertexColors&&(n.vertexColors=this.vertexColors),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.morphTargets&&(n.morphTargets=!0),!0===this.skinning&&(n.skinning=!0),!1===this.visible&&(n.visible=!1),"{}"!==JSON.stringify(this.userData)&&(n.userData=this.userData),e){var i=r(t.textures),o=r(t.images);i.length>0&&(n.textures=i),o.length>0&&(n.images=o)}return n},clone:function(){return(new this.constructor).copy(this)},copy:function(t){this.name=t.name,this.fog=t.fog,this.lights=t.lights,this.blending=t.blending,this.side=t.side,this.flatShading=t.flatShading,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.premultipliedAlpha=t.premultipliedAlpha,this.overdraw=t.overdraw,this.visible=t.visible,this.userData=JSON.parse(JSON.stringify(t.userData)),this.clipShadows=t.clipShadows,this.clipIntersection=t.clipIntersection;var e=t.clippingPlanes,n=null;if(null!==e){var r=e.length;n=new Array(r);for(var i=0;i!==r;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.shadowSide=t.shadowSide,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),(zt.prototype=Object.create(Pe.prototype)).constructor=zt,zt.prototype.isShaderMaterial=!0,zt.prototype.copy=function(t){return Pe.prototype.copy.call(this,t),this.fragmentShader=t.fragmentShader,this.vertexShader=t.vertexShader,this.uniforms=It.clone(t.uniforms),this.defines=Object.assign({},t.defines),this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.lights=t.lights,this.clipping=t.clipping,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.extensions=t.extensions,this},zt.prototype.toJSON=function(t){var e=Pe.prototype.toJSON.call(this,t);for(var n in e.uniforms={},this.uniforms){var r=this.uniforms[n].value;e.uniforms[n]=r.isTexture?{type:"t",value:r.toJSON(t).uuid}:r.isColor?{type:"c",value:r.getHex()}:r.isVector2?{type:"v2",value:r.toArray()}:r.isVector3?{type:"v3",value:r.toArray()}:r.isVector4?{type:"v4",value:r.toArray()}:r.isMatrix4?{type:"m4",value:r.toArray()}:{value:r}}return Object.keys(this.defines).length>0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e},Object.assign(me.prototype,{set:function(t,e){return this.origin.copy(t),this.direction.copy(e),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this},at:function(t,e){return void 0===e&&(console.warn("THREE.Ray: .at() target is now required"),e=new W),e.copy(this.direction).multiplyScalar(t).add(this.origin)},lookAt:function(t){return this.direction.copy(t).sub(this.origin).normalize(),this},recast:function(){var t=new W;return function(e){return this.origin.copy(this.at(e,t)),this}}(),closestPointToPoint:function(t,e){void 0===e&&(console.warn("THREE.Ray: .closestPointToPoint() target is now required"),e=new W),e.subVectors(t,this.origin);var n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)},distanceToPoint:function(t){return Math.sqrt(this.distanceSqToPoint(t))},distanceSqToPoint:function(){var t=new W;return function(e){var n=t.subVectors(e,this.origin).dot(this.direction);return n<0?this.origin.distanceToSquared(e):(t.copy(this.direction).multiplyScalar(n).add(this.origin),t.distanceToSquared(e))}}(),distanceSqToSegment:function(){var t=new W,e=new W,n=new W;return function(r,i,o,c){t.copy(r).add(i).multiplyScalar(.5),e.copy(i).sub(r).normalize(),n.copy(this.origin).sub(t);var h,f,A,E,C=.5*r.distanceTo(i),S=-this.direction.dot(e),F=n.dot(this.direction),tt=-n.dot(e),rt=n.lengthSq(),ot=Math.abs(1-S*S);if(ot>0)if(f=S*F-tt,E=C*ot,(h=S*tt-F)>=0)if(f>=-E)if(f<=E){var St=1/ot;A=(h*=St)*(h+S*(f*=St)+2*F)+f*(S*h+f+2*tt)+rt}else f=C,A=-(h=Math.max(0,-(S*f+F)))*h+f*(f+2*tt)+rt;else f=-C,A=-(h=Math.max(0,-(S*f+F)))*h+f*(f+2*tt)+rt;else f<=-E?A=-(h=Math.max(0,-(-S*C+F)))*h+(f=h>0?-C:Math.min(Math.max(-C,-tt),C))*(f+2*tt)+rt:f<=E?(h=0,A=(f=Math.min(Math.max(-C,-tt),C))*(f+2*tt)+rt):A=-(h=Math.max(0,-(S*C+F)))*h+(f=h>0?C:Math.min(Math.max(-C,-tt),C))*(f+2*tt)+rt;else f=S>0?-C:C,A=-(h=Math.max(0,-(S*f+F)))*h+f*(f+2*tt)+rt;return o&&o.copy(this.direction).multiplyScalar(h).add(this.origin),c&&c.copy(e).multiplyScalar(f).add(t),A}}(),intersectSphere:function(){var t=new W;return function(e,n){t.subVectors(e.center,this.origin);var r=t.dot(this.direction),i=t.dot(t)-r*r,o=e.radius*e.radius;if(i>o)return null;var c=Math.sqrt(o-i),h=r-c,f=r+c;return h<0&&f<0?null:this.at(h<0?f:h,n)}}(),intersectsSphere:function(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius},distanceToPlane:function(t){var e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;var n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null},intersectPlane:function(t,e){var n=this.distanceToPlane(t);return null===n?null:this.at(n,e)},intersectsPlane:function(t){var e=t.distanceToPoint(this.origin);return 0===e||t.normal.dot(this.direction)*e<0},intersectBox:function(t,e){var n,r,i,o,c,h,f=1/this.direction.x,A=1/this.direction.y,E=1/this.direction.z,C=this.origin;return f>=0?(n=(t.min.x-C.x)*f,r=(t.max.x-C.x)*f):(n=(t.max.x-C.x)*f,r=(t.min.x-C.x)*f),A>=0?(i=(t.min.y-C.y)*A,o=(t.max.y-C.y)*A):(i=(t.max.y-C.y)*A,o=(t.min.y-C.y)*A),n>o||i>r||((i>n||n!=n)&&(n=i),(o<r||r!=r)&&(r=o),E>=0?(c=(t.min.z-C.z)*E,h=(t.max.z-C.z)*E):(c=(t.max.z-C.z)*E,h=(t.min.z-C.z)*E),n>h||c>r)||((c>n||n!=n)&&(n=c),(h<r||r!=r)&&(r=h),r<0)?null:this.at(n>=0?n:r,e)},intersectsBox:function(){var t=new W;return function(e){return null!==this.intersectBox(e,t)}}(),intersectTriangle:function(){var t=new W,e=new W,n=new W,r=new W;return function(i,o,c,h,f){e.subVectors(o,i),n.subVectors(c,i),r.crossVectors(e,n);var A,E=this.direction.dot(r);if(E>0){if(h)return null;A=1}else{if(!(E<0))return null;A=-1,E=-E}t.subVectors(this.origin,i);var C=A*this.direction.dot(n.crossVectors(t,n));if(C<0)return null;var S=A*this.direction.dot(e.cross(t));if(S<0||C+S>E)return null;var F=-A*t.dot(r);return F<0?null:this.at(F/E,f)}}(),applyMatrix4:function(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this},equals:function(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}}),Object.assign(Dt,{getNormal:function(){var t=new W;return function(e,n,r,i){void 0===i&&(console.warn("THREE.Triangle: .getNormal() target is now required"),i=new W),i.subVectors(r,n),t.subVectors(e,n),i.cross(t);var o=i.lengthSq();return o>0?i.multiplyScalar(1/Math.sqrt(o)):i.set(0,0,0)}}(),getBarycoord:function(){var t=new W,e=new W,n=new W;return function(r,i,o,c,h){t.subVectors(c,i),e.subVectors(o,i),n.subVectors(r,i);var f=t.dot(t),A=t.dot(e),E=t.dot(n),C=e.dot(e),S=e.dot(n),F=f*C-A*A;if(void 0===h&&(console.warn("THREE.Triangle: .getBarycoord() target is now required"),h=new W),0===F)return h.set(-2,-1,-1);var tt=1/F,rt=(C*E-A*S)*tt,ot=(f*S-A*E)*tt;return h.set(1-rt-ot,ot,rt)}}(),containsPoint:function(){var t=new W;return function(e,n,r,i){return Dt.getBarycoord(e,n,r,i,t),t.x>=0&&t.y>=0&&t.x+t.y<=1}}(),getUV:function(){var t=new W;return function(e,n,r,i,o,c,h,f){return this.getBarycoord(e,n,r,i,t),f.set(0,0),f.addScaledVector(o,t.x),f.addScaledVector(c,t.y),f.addScaledVector(h,t.z),f}}()}),Object.assign(Dt.prototype,{set:function(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this},setFromPointsAndIndices:function(t,e,n,r){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[r]),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this},getArea:function(){var t=new W,e=new W;return function(){return t.subVectors(this.c,this.b),e.subVectors(this.a,this.b),.5*t.cross(e).length()}}(),getMidpoint:function(t){return void 0===t&&(console.warn("THREE.Triangle: .getMidpoint() target is now required"),t=new W),t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},getNormal:function(t){return Dt.getNormal(this.a,this.b,this.c,t)},getPlane:function(t){return void 0===t&&(console.warn("THREE.Triangle: .getPlane() target is now required"),t=new W),t.setFromCoplanarPoints(this.a,this.b,this.c)},getBarycoord:function(t,e){return Dt.getBarycoord(t,this.a,this.b,this.c,e)},containsPoint:function(t){return Dt.containsPoint(t,this.a,this.b,this.c)},getUV:function(t,e,n,r,i){return Dt.getUV(t,this.a,this.b,this.c,e,n,r,i)},intersectsBox:function(t){return t.intersectsTriangle(this)},closestPointToPoint:function(){var t=new W,e=new W,n=new W,r=new W,i=new W,o=new W;return function(c,h){void 0===h&&(console.warn("THREE.Triangle: .closestPointToPoint() target is now required"),h=new W);var f,A,E=this.a,C=this.b,S=this.c;t.subVectors(C,E),e.subVectors(S,E),r.subVectors(c,E);var F=t.dot(r),tt=e.dot(r);if(F<=0&&tt<=0)return h.copy(E);i.subVectors(c,C);
1var rt=t.dot(i),ot=e.dot(i);if(rt>=0&&ot<=rt)return h.copy(C);var St=F*ot-rt*tt;if(St<=0&&F>=0&&rt<=0)return f=F/(F-rt),h.copy(E).addScaledVector(t,f);o.subVectors(c,S);var yt=t.dot(o),Et=e.dot(o);if(Et>=0&&yt<=Et)return h.copy(S);var Pt=yt*tt-F*Et;if(Pt<=0&&tt>=0&&Et<=0)return A=tt/(tt-Et),h.copy(E).addScaledVector(e,A);var se=rt*Et-yt*ot;if(se<=0&&ot-rt>=0&&yt-Et>=0)return n.subVectors(S,C),A=(ot-rt)/(ot-rt+(yt-Et)),h.copy(C).addScaledVector(n,A);var Bt=1/(se+Pt+St);return f=Pt*Bt,A=St*Bt,h.copy(E).addScaledVector(t,f).addScaledVector(e,A)}}(),equals:function(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}),(le.prototype=Object.create(Pe.prototype)).constructor=le,le.prototype.isMeshBasicMaterial=!0,le.prototype.copy=function(t){return Pe.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this},pe.prototype=Object.assign(Object.create(Wt.prototype),{constructor:pe,isMesh:!0,setDrawMode:function(t){this.drawMode=t},copy:function(t){return Wt.prototype.copy.call(this,t),this.drawMode=t.drawMode,void 0!==t.morphTargetInfluences&&(this.morphTargetInfluences=t.morphTargetInfluences.slice()),void 0!==t.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this},updateMorphTargets:function(){var t,e,n,r=this.geometry;if(r.isBufferGeometry){var i=r.morphAttributes,o=Object.keys(i);if(o.length>0){var c=i[o[0]];if(void 0!==c)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},t=0,e=c.length;t<e;t++)n=c[t].name||String(t),this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=t}}else{var h=r.morphTargets;if(void 0!==h&&h.length>0)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},t=0,e=h.length;t<e;t++)n=h[t].name||String(t),this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=t}},raycast:function(){var t=new dt,e=new me,n=new Ee,r=new W,i=new W,o=new W,c=new W,h=new W,f=new W,A=new G,E=new G,C=new G,S=new W,F=new W;function tt(ot,St,yt,Et,Pt,se,Bt,Ct){if(null===(1===St.side?Et.intersectTriangle(Bt,se,Pt,!0,Ct):Et.intersectTriangle(Pt,se,Bt,2!==St.side,Ct)))return null;F.copy(Ct),F.applyMatrix4(ot.matrixWorld);var xe=yt.ray.origin.distanceTo(F);return xe<yt.near||xe>yt.far?null:{distance:xe,point:F.clone(),object:ot}}function rt(ot,St,yt,Et,Pt,se,Bt,Ct,xe){r.fromBufferAttribute(Pt,Bt),i.fromBufferAttribute(Pt,Ct),o.fromBufferAttribute(Pt,xe);var Yt=tt(ot,St,yt,Et,r,i,o,S);if(Yt){se&&(A.fromBufferAttribute(se,Bt),E.fromBufferAttribute(se,Ct),C.fromBufferAttribute(se,xe),Yt.uv=Dt.getUV(S,r,i,o,A,E,C,new G));var Ft=new ne(Bt,Ct,xe);Dt.getNormal(r,i,o,Ft.normal),Yt.face=Ft}return Yt}return function(ot,St){var yt,Et=this.geometry,Pt=this.material,se=this.matrixWorld;if(void 0!==Pt&&(null===Et.boundingSphere&&Et.computeBoundingSphere(),n.copy(Et.boundingSphere),n.applyMatrix4(se),!1!==ot.ray.intersectsSphere(n)&&(t.getInverse(se),e.copy(ot.ray).applyMatrix4(t),null===Et.boundingBox||!1!==e.intersectsBox(Et.boundingBox))))if(Et.isBufferGeometry){var Bt,Ct,xe,Yt,Ft,He,Xe,_e,ke,Ne=Et.index,Fe=Et.attributes.position,gn=Et.attributes.uv,$e=Et.groups,ln=Et.drawRange;if(null!==Ne)if(Array.isArray(Pt))for(Yt=0,He=$e.length;Yt<He;Yt++)for(ke=Pt[(_e=$e[Yt]).materialIndex],Ft=Math.max(_e.start,ln.start),Xe=Math.min(_e.start+_e.count,ln.start+ln.count);Ft<Xe;Ft+=3)Bt=Ne.getX(Ft),Ct=Ne.getX(Ft+1),xe=Ne.getX(Ft+2),(yt=rt(this,ke,ot,e,Fe,gn,Bt,Ct,xe))&&(yt.faceIndex=Math.floor(Ft/3),St.push(yt));else for(Yt=Math.max(0,ln.start),He=Math.min(Ne.count,ln.start+ln.count);Yt<He;Yt+=3)Bt=Ne.getX(Yt),Ct=Ne.getX(Yt+1),xe=Ne.getX(Yt+2),(yt=rt(this,Pt,ot,e,Fe,gn,Bt,Ct,xe))&&(yt.faceIndex=Math.floor(Yt/3),St.push(yt));else if(void 0!==Fe)if(Array.isArray(Pt))for(Yt=0,He=$e.length;Yt<He;Yt++)for(ke=Pt[(_e=$e[Yt]).materialIndex],Ft=Math.max(_e.start,ln.start),Xe=Math.min(_e.start+_e.count,ln.start+ln.count);Ft<Xe;Ft+=3)(yt=rt(this,ke,ot,e,Fe,gn,Bt=Ft,Ct=Ft+1,xe=Ft+2))&&(yt.faceIndex=Math.floor(Ft/3),St.push(yt));else for(Yt=Math.max(0,ln.start),He=Math.min(Fe.count,ln.start+ln.count);Yt<He;Yt+=3)(yt=rt(this,Pt,ot,e,Fe,gn,Bt=Yt,Ct=Yt+1,xe=Yt+2))&&(yt.faceIndex=Math.floor(Yt/3),St.push(yt))}else if(Et.isGeometry){var Ue,Xn,Un,Jn,Lr=Array.isArray(Pt),bi=Et.vertices,ss=Et.faces,Ti=Et.faceVertexUvs[0];Ti.length>0&&(Jn=Ti);for(var Rn=0,Cr=ss.length;Rn<Cr;Rn++){var Tn=ss[Rn],Ge=Lr?Pt[Tn.materialIndex]:Pt;if(void 0!==Ge){if(Ue=bi[Tn.a],Xn=bi[Tn.b],Un=bi[Tn.c],!0===Ge.morphTargets){var lr=Et.morphTargets,mr=this.morphTargetInfluences;r.set(0,0,0),i.set(0,0,0),o.set(0,0,0);for(var xr=0,or=lr.length;xr<or;xr++){var hi=mr[xr];if(0!==hi){var Qr=lr[xr].vertices;r.addScaledVector(c.subVectors(Qr[Tn.a],Ue),hi),i.addScaledVector(h.subVectors(Qr[Tn.b],Xn),hi),o.addScaledVector(f.subVectors(Qr[Tn.c],Un),hi)}}r.add(Ue),i.add(Xn),o.add(Un),Ue=r,Xn=i,Un=o}if(yt=tt(this,Ge,ot,e,Ue,Xn,Un,S)){if(Jn&&Jn[Rn]){var ni=Jn[Rn];A.copy(ni[0]),E.copy(ni[1]),C.copy(ni[2]),yt.uv=Dt.getUV(S,Ue,Xn,Un,A,E,C,new G)}yt.face=Tn,yt.faceIndex=Rn,St.push(yt)}}}}}}(),clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),(sn.prototype=Object.create(ge.prototype)).constructor=sn,sn.prototype.isCubeTexture=!0,Object.defineProperty(sn.prototype,"images",{get:function(){return this.image},set:function(t){this.image=t}}),(xn.prototype=Object.create(ge.prototype)).constructor=xn,xn.prototype.isDataTexture3D=!0;var Oe=new ge,re=new xn,fe=new sn;function Ot(){this.seq=[],this.map={}}var ie=[],je=[],Ye=new Float32Array(16),On=new Float32Array(9),In=new Float32Array(4);function gr(t,e,n){var r=t[0];if(r<=0||r>0)return t;var i=e*n,o=ie[i];if(void 0===o&&(o=new Float32Array(i),ie[i]=o),0!==e){r.toArray(o,0);for(var c=1,h=0;c!==e;++c)t[c].toArray(o,h+=n)}return o}function Yn(t,e){if(t.length!==e.length)return!1;for(var n=0,r=t.length;n<r;n++)if(t[n]!==e[n])return!1;return!0}function qn(t,e){for(var n=0,r=e.length;n<r;n++)t[n]=e[n]}function wr(t,e){var n=je[e];void 0===n&&(n=new Int32Array(e),je[e]=n);for(var r=0;r!==e;++r)n[r]=t.allocTextureUnit();return n}function Br(t,e){var n=this.cache;n[0]!==e&&(t.uniform1f(this.addr,e),n[0]=e)}function vr(t,e){var n=this.cache;n[0]!==e&&(t.uniform1i(this.addr,e),n[0]=e)}function wi(t,e){var n=this.cache;
1if(void 0!==e.x)(n[0]!==e.x||n[1]!==e.y)&&(t.uniform2f(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(Yn(n,e))return;t.uniform2fv(this.addr,e),qn(n,e)}}function Or(t,e){var n=this.cache;if(void 0!==e.x)(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z)&&(t.uniform3f(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else if(void 0!==e.r)(n[0]!==e.r||n[1]!==e.g||n[2]!==e.b)&&(t.uniform3f(this.addr,e.r,e.g,e.b),n[0]=e.r,n[1]=e.g,n[2]=e.b);else{if(Yn(n,e))return;t.uniform3fv(this.addr,e),qn(n,e)}}function Nr(t,e){var n=this.cache;if(void 0!==e.x)(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z||n[3]!==e.w)&&(t.uniform4f(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(Yn(n,e))return;t.uniform4fv(this.addr,e),qn(n,e)}}function Si(t,e){var n=this.cache,r=e.elements;if(void 0===r){if(Yn(n,e))return;t.uniformMatrix2fv(this.addr,!1,e),qn(n,e)}else{if(Yn(n,r))return;In.set(r),t.uniformMatrix2fv(this.addr,!1,In),qn(n,r)}}function fi(t,e){var n=this.cache,r=e.elements;if(void 0===r){if(Yn(n,e))return;t.uniformMatrix3fv(this.addr,!1,e),qn(n,e)}else{if(Yn(n,r))return;On.set(r),t.uniformMatrix3fv(this.addr,!1,On),qn(n,r)}}function ts(t,e){var n=this.cache,r=e.elements;if(void 0===r){if(Yn(n,e))return;t.uniformMatrix4fv(this.addr,!1,e),qn(n,e)}else{if(Yn(n,r))return;Ye.set(r),t.uniformMatrix4fv(this.addr,!1,Ye),qn(n,r)}}function _t(t,e,n){var r=this.cache,i=n.allocTextureUnit();r[0]!==i&&(t.uniform1i(this.addr,i),r[0]=i),n.setTexture2D(e||Oe,i)}function w(t,e,n){var r=this.cache,i=n.allocTextureUnit();r[0]!==i&&(t.uniform1i(this.addr,i),r[0]=i),n.setTexture3D(e||re,i)}function T(t,e,n){var r=this.cache,i=n.allocTextureUnit();r[0]!==i&&(t.uniform1i(this.addr,i),r[0]=i),n.setTextureCube(e||fe,i)}function Z(t,e){var n=this.cache;Yn(n,e)||(t.uniform2iv(this.addr,e),qn(n,e))}function pt(t,e){var n=this.cache;Yn(n,e)||(t.uniform3iv(this.addr,e),qn(n,e))}function Nt(t,e){var n=this.cache;Yn(n,e)||(t.uniform4iv(this.addr,e),qn(n,e))}function Kt(t,e){var n=this.cache;Yn(n,e)||(t.uniform1fv(this.addr,e),qn(n,e))}function oe(t,e){var n=this.cache;Yn(n,e)||(t.uniform1iv(this.addr,e),qn(n,e))}function ye(t,e){var n=this.cache,r=gr(e,this.size,2);Yn(n,r)||(t.uniform2fv(this.addr,r),this.updateCache(r))}function De(t,e){var n=this.cache,r=gr(e,this.size,3);Yn(n,r)||(t.uniform3fv(this.addr,r),this.updateCache(r))}function hn(t,e){var n=this.cache,r=gr(e,this.size,4);Yn(n,r)||(t.uniform4fv(this.addr,r),this.updateCache(r))}function mn(t,e){var n=this.cache,r=gr(e,this.size,4);Yn(n,r)||(t.uniformMatrix2fv(this.addr,!1,r),this.updateCache(r))}function gt(t,e){var n=this.cache,r=gr(e,this.size,9);Yn(n,r)||(t.uniformMatrix3fv(this.addr,!1,r),this.updateCache(r))}function L(t,e){var n=this.cache,r=gr(e,this.size,16);Yn(n,r)||(t.uniformMatrix4fv(this.addr,!1,r),this.updateCache(r))}function z(t,e,n){var r=this.cache,i=e.length,o=wr(n,i);!1===Yn(r,o)&&(t.uniform1iv(this.addr,o),qn(r,o));for(var c=0;c!==i;++c)n.setTexture2D(e[c]||Oe,o[c])}function $(t,e,n){var r=this.cache,i=e.length,o=wr(n,i);!1===Yn(r,o)&&(t.uniform1iv(this.addr,o),qn(r,o));for(var c=0;c!==i;++c)n.setTextureCube(e[c]||fe,o[c])}function Tt(t,e,n){this.id=t,this.addr=n,this.cache=[],this.setValue=function(i){switch(i){case 5126:return Br;case 35664:return wi;case 35665:return Or;case 35666:return Nr;case 35674:return Si;case 35675:return fi;case 35676:return ts;case 35678:case 36198:return _t;case 35679:return w;case 35680:return T;case 5124:case 35670:return vr;case 35667:case 35671:return Z;case 35668:case 35672:return pt;case 35669:case 35673:return Nt}}(e.type)}function qt(t,e,n){this.id=t,this.addr=n,this.cache=[],this.size=e.size,this.setValue=function(i){switch(i){case 5126:return Kt;case 35664:return ye;case 35665:return De;case 35666:return hn;case 35674:return mn;case 35675:return gt;case 35676:return L;case 35678:return z;case 35680:return $;case 5124:case 35670:return oe;case 35667:case 35671:return Z;case 35668:case 35672:return pt;case 35669:case 35673:return Nt}}(e.type)}function we(t){this.id=t,Ot.call(this)}qt.prototype.updateCache=function(t){var e=this.cache;t instanceof Float32Array&&e.length!==t.length&&(this.cache=new Float32Array(t.length)),qn(e,t)},we.prototype.setValue=function(t,e,n){for(var r=this.seq,i=0,o=r.length;i!==o;++i){var c=r[i];c.setValue(t,e[c.id],n)}};var Ce=/([\w\d_]+)(\])?(\[|\.)?/g;function Ke(t,e){t.seq.push(e),t.map[e.id]=e}function wn(t,e,n){var r=t.name,i=r.length;for(Ce.lastIndex=0;;){var o=Ce.exec(r),c=o[1],h=o[3];if("]"===o[2]&&(c|=0),void 0===h||"["===h&&Ce.lastIndex+2===i){Ke(n,void 0===h?new Tt(c,t,e):new qt(c,t,e));break}var f=n.map[c];void 0===f&&Ke(n,f=new we(c)),n=f}}function Gn(t,e,n){Ot.call(this),this.renderer=n;for(var r=t.getProgramParameter(e,t.ACTIVE_UNIFORMS),i=0;i<r;++i){var o=t.getActiveUniform(e,i);wn(o,t.getUniformLocation(e,o.name),this)}}function dr(t,e,n){var r=t.createShader(e);return t.shaderSource(r,n),t.compileShader(r),!1===t.getShaderParameter(r,t.COMPILE_STATUS)&&console.error("THREE.WebGLShader: Shader couldn't compile."),""!==t.getShaderInfoLog(r)&&console.warn("THREE.WebGLShader: gl.getShaderInfoLog()",e===t.VERTEX_SHADER?"vertex":"fragment",t.getShaderInfoLog(r),function(o){for(var c=o.split("\n"),h=0;h<c.length;h++)c[h]=h+1+": "+c[h];return c.join("\n")}(n)),r}Gn.prototype.setValue=function(t,e,n){var r=this.map[e];void 0!==r&&r.setValue(t,n,this.renderer)},Gn.prototype.setOptional=function(t,e,n){var r=e[n];void 0!==r&&this.setValue(t,n,r)},Gn.upload=function(t,e,n,r){for(var i=0,o=e.length;i!==o;++i){var c=e[i],h=n[c.id];!1!==h.needsUpdate&&c.setValue(t,h.value,r)}},Gn.seqWithValue=function(t,e){for(var n=[],r=0,i=t.length;r!==i;++r){var o=t[r];o.id in e&&n.push(o)}return n};var jr=0;function Pi(t){switch(t){case Q:return["Linear","( value )"];case 3001:return["sRGB","( value )"];case 3002:return["RGBE","( value )"];case 3004:return["RGBM","( value, 7.0 )"];case 3005:return["RGBM","( value, 16.0 )"];case 3006:return["RGBD","( value, 256.0 )"];case 3007:return["Gamma","( value, float( GAMMA_FACTOR ) )"];default:throw new Error("unsupported encoding: "+t)}}function Ri(t,e){var n=Pi(e);return"vec4 "+t+"( vec4 value ) { return "+n[0]+"ToLinear"+n[1]+"; }"}function ji(t,e){var n=Pi(e);return"vec4 "+t+"( vec4 value ) { return LinearTo"+n[0]+n[1]+"; }"}function Bi(t,e){var n;switch(e){case 1:n="Linear";break;case 2:n="Reinhard";break;case 3:n="Uncharted2";break;case 4:n="OptimizedCineon";break;default:throw new Error("unsupported toneMapping: "+e)}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function es(t){return""!==t}function As(t,e){return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_L
1IGHTS/g,e.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights)}function Vn(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}function Hn(t){return t.replace(/^[ \t]*#include +<([\w\d./]+)>/gm,function(n,r){var i=Mt[r];if(void 0===i)throw new Error("Can not resolve #include <"+r+">");return Hn(i)})}function $n(t){return t.replace(/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,function(n,r,i,o){for(var c="",h=parseInt(r);h<parseInt(i);h++)c+=o.replace(/\[ i \]/g,"[ "+h+" ]");return c})}function zr(t,e,n,r,i,o,c){var h=t.context,f=r.defines,A=i.vertexShader,E=i.fragmentShader,C="SHADOWMAP_TYPE_BASIC";1===o.shadowMapType?C="SHADOWMAP_TYPE_PCF":2===o.shadowMapType&&(C="SHADOWMAP_TYPE_PCF_SOFT");var S="ENVMAP_TYPE_CUBE",F="ENVMAP_MODE_REFLECTION",tt="ENVMAP_BLENDING_MULTIPLY";if(o.envMap){switch(r.envMap.mapping){case 301:case 302:S="ENVMAP_TYPE_CUBE";break;case 306:case 307:S="ENVMAP_TYPE_CUBE_UV";break;case 303:case 304:S="ENVMAP_TYPE_EQUIREC";break;case 305:S="ENVMAP_TYPE_SPHERE"}switch(r.envMap.mapping){case 302:case 304:F="ENVMAP_MODE_REFRACTION"}switch(r.combine){case 0:tt="ENVMAP_BLENDING_MULTIPLY";break;case 1:tt="ENVMAP_BLENDING_MIX";break;case 2:tt="ENVMAP_BLENDING_ADD"}}var rt,ot,$e,ln,Ue,St=t.gammaFactor>0?t.gammaFactor:1,yt=c.isWebGL2?"":(ln=o,Ue=e,[($e=($e=r.extensions)||{}).derivatives||ln.envMapCubeUV||ln.bumpMap||ln.normalMap&&!ln.objectSpaceNormalMap||ln.flatShading?"#extension GL_OES_standard_derivatives : enable":"",($e.fragDepth||ln.logarithmicDepthBuffer)&&Ue.get("EXT_frag_depth")?"#extension GL_EXT_frag_depth : enable":"",$e.drawBuffers&&Ue.get("WEBGL_draw_buffers")?"#extension GL_EXT_draw_buffers : require":"",($e.shaderTextureLOD||ln.envMap)&&Ue.get("EXT_shader_texture_lod")?"#extension GL_EXT_shader_texture_lod : enable":""].filter(es).join("\n")),Et=function($e){var ln=[];for(var Ue in $e){var Xn=$e[Ue];!1!==Xn&&ln.push("#define "+Ue+" "+Xn)}return ln.join("\n")}(f),Pt=h.createProgram();if(r.isRawShaderMaterial?((rt=[Et].filter(es).join("\n")).length>0&&(rt+="\n"),(ot=[yt,Et].filter(es).join("\n")).length>0&&(ot+="\n")):(rt=["precision "+o.precision+" float;","precision "+o.precision+" int;","#define SHADER_NAME "+i.name,Et,o.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+St,"#define MAX_BONES "+o.maxBones,o.useFog&&o.fog?"#define USE_FOG":"",o.useFog&&o.fogExp?"#define FOG_EXP2":"",o.map?"#define USE_MAP":"",o.envMap?"#define USE_ENVMAP":"",o.envMap?"#define "+F:"",o.lightMap?"#define USE_LIGHTMAP":"",o.aoMap?"#define USE_AOMAP":"",o.emissiveMap?"#define USE_EMISSIVEMAP":"",o.bumpMap?"#define USE_BUMPMAP":"",o.normalMap?"#define USE_NORMALMAP":"",o.normalMap&&o.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",o.displacementMap&&o.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",o.specularMap?"#define USE_SPECULARMAP":"",o.roughnessMap?"#define USE_ROUGHNESSMAP":"",o.metalnessMap?"#define USE_METALNESSMAP":"",o.alphaMap?"#define USE_ALPHAMAP":"",o.vertexColors?"#define USE_COLOR":"",o.flatShading?"#define FLAT_SHADED":"",o.skinning?"#define USE_SKINNING":"",o.useVertexTexture?"#define BONE_TEXTURE":"",o.morphTargets?"#define USE_MORPHTARGETS":"",o.morphNormals&&!1===o.flatShading?"#define USE_MORPHNORMALS":"",o.doubleSided?"#define DOUBLE_SIDED":"",o.flipSided?"#define FLIP_SIDED":"",o.shadowMapEnabled?"#define USE_SHADOWMAP":"",o.shadowMapEnabled?"#define "+C:"",o.sizeAttenuation?"#define USE_SIZEATTENUATION":"",o.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",o.logarithmicDepthBuffer&&(c.isWebGL2||e.get("EXT_frag_depth"))?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_COLOR","\tattribute vec3 color;","#endif","#ifdef USE_MORPHTARGETS","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(es).join("\n"),ot=[yt,"precision "+o.precision+" float;","precision "+o.precision+" int;","#define SHADER_NAME "+i.name,Et,o.alphaTest?"#define ALPHATEST "+o.alph
1aTest+(o.alphaTest%1?"":".0"):"","#define GAMMA_FACTOR "+St,o.useFog&&o.fog?"#define USE_FOG":"",o.useFog&&o.fogExp?"#define FOG_EXP2":"",o.map?"#define USE_MAP":"",o.envMap?"#define USE_ENVMAP":"",o.envMap?"#define "+S:"",o.envMap?"#define "+F:"",o.envMap?"#define "+tt:"",o.lightMap?"#define USE_LIGHTMAP":"",o.aoMap?"#define USE_AOMAP":"",o.emissiveMap?"#define USE_EMISSIVEMAP":"",o.bumpMap?"#define USE_BUMPMAP":"",o.normalMap?"#define USE_NORMALMAP":"",o.normalMap&&o.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",o.specularMap?"#define USE_SPECULARMAP":"",o.roughnessMap?"#define USE_ROUGHNESSMAP":"",o.metalnessMap?"#define USE_METALNESSMAP":"",o.alphaMap?"#define USE_ALPHAMAP":"",o.vertexColors?"#define USE_COLOR":"",o.gradientMap?"#define USE_GRADIENTMAP":"",o.flatShading?"#define FLAT_SHADED":"",o.doubleSided?"#define DOUBLE_SIDED":"",o.flipSided?"#define FLIP_SIDED":"",o.shadowMapEnabled?"#define USE_SHADOWMAP":"",o.shadowMapEnabled?"#define "+C:"",o.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",o.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",o.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",o.logarithmicDepthBuffer&&(c.isWebGL2||e.get("EXT_frag_depth"))?"#define USE_LOGDEPTHBUF_EXT":"",o.envMap&&(c.isWebGL2||e.get("EXT_shader_texture_lod"))?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;",0!==o.toneMapping?"#define TONE_MAPPING":"",0!==o.toneMapping?Mt.tonemapping_pars_fragment:"",0!==o.toneMapping?Bi("toneMapping",o.toneMapping):"",o.dithering?"#define DITHERING":"",o.outputEncoding||o.mapEncoding||o.matcapEncoding||o.envMapEncoding||o.emissiveMapEncoding?Mt.encodings_pars_fragment:"",o.mapEncoding?Ri("mapTexelToLinear",o.mapEncoding):"",o.matcapEncoding?Ri("matcapTexelToLinear",o.matcapEncoding):"",o.envMapEncoding?Ri("envMapTexelToLinear",o.envMapEncoding):"",o.emissiveMapEncoding?Ri("emissiveMapTexelToLinear",o.emissiveMapEncoding):"",o.outputEncoding?ji("linearToOutputTexel",o.outputEncoding):"",o.depthPacking?"#define DEPTH_PACKING "+r.depthPacking:"","\n"].filter(es).join("\n")),A=Vn(A=As(A=Hn(A),o),o),E=Vn(E=As(E=Hn(E),o),o),A=$n(A),E=$n(E),c.isWebGL2&&!r.isRawShaderMaterial){var se=!1,Bt=/^\s*#version\s+300\s+es\s*\n/;r.isShaderMaterial&&null!==A.match(Bt)&&null!==E.match(Bt)&&(se=!0,A=A.replace(Bt,""),E=E.replace(Bt,"")),rt=["#version 300 es\n","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+rt,ot=["#version 300 es\n","#define varying in",se?"":"out highp vec4 pc_fragColor;",se?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+ot}var Ct=ot+E,xe=dr(h,h.VERTEX_SHADER,rt+A),Yt=dr(h,h.FRAGMENT_SHADER,Ct);h.attachShader(Pt,xe),h.attachShader(Pt,Yt),void 0!==r.index0AttributeName?h.bindAttribLocation(Pt,0,r.index0AttributeName):!0===o.morphTargets&&h.bindAttribLocation(Pt,0,"position"),h.linkProgram(Pt);var Ft,He,Xe=h.getProgramInfoLog(Pt).trim(),_e=h.getShaderInfoLog(xe).trim(),ke=h.getShaderInfoLog(Yt).trim(),Ne=!0,Fe=!0;return!1===h.getProgramParameter(Pt,h.LINK_STATUS)?(Ne=!1,console.error("THREE.WebGLProgram: shader error: ",h.getError(),"gl.VALIDATE_STATUS",h.getProgramParameter(Pt,h.VALIDATE_STATUS),"gl.getProgramInfoLog",Xe,_e,ke)):""!==Xe?console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()",Xe):(""===_e||""===ke)&&(Fe=!1),Fe&&(this.diagnostics={runnable:Ne,material:r,programLog:Xe,vertexShader:{log:_e,prefix:rt},fragmentShader:{log:ke,prefix:ot}}),h.deleteShader(xe),h.deleteShader(Yt),this.getUniforms=function(){return void 0===Ft&&(Ft=new Gn(h,Pt,t)),Ft},this.getAttributes=function(){return void 0===He&&(He=function($e,ln){for(var Ue={},Xn=$e.getProgramParameter(ln,$e.ACTIVE_ATTRIBUTES),Un=0;Un<Xn;Un++){var Jn=$e.getActiveAttrib(ln,Un).name;Ue[Jn]=$e.getAttribLocation(ln,Jn)}return Ue}(h,Pt)),He},this.destroy=function(){h.deleteProgram(Pt),this.program=void 0},Object.defineProperties(this,{uniforms:{get:function(){return console.warn("THREE.WebGLProgram: .uniforms is now .getUniforms()."),this.getUniforms()}},attributes:{get:function(){return console.warn("THREE.WebGLProgram: .attributes is now .getAttributes()."),this.getAttributes()}}}),this.name=i.name,this.id=jr++,this.code=n,this.usedTimes=1,this.program=Pt,this.vertexShader=xe,this.fragmentShader=Yt,this}function os(t,e,n){var r=[],i={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"phong",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"},o=["precision","supportsVertexTextures","map","mapEncoding","matcapEncoding","envMap","envMapMode","envMapEncoding","lightMap","aoMap","emissiveMap","emissiveMapEncoding","bumpMap","normalMap","objectSpaceNormalMap","displacementMap","specularMap","roughnessMap","metalnessMap","gradientMap","alphaMap","combine","vertexColors","fog","useFog","fogExp","flatShading","sizeAttenuation","logarithmicDepthBuffer","skinning","maxBones","useVertexTexture","morphTargets","morphNormals","maxMorphTargets","maxMorphNormals","premultipliedAlpha","numDirLights","numPointLights","numSpotLights","numHemiLights","numRectAreaLights","shadowMapEnabled","shadowMapType","toneMapping","physicallyCorrectLights","alphaTest","doubleSided","flipSided","numClippingPlanes","numClipIntersection","depthPacking","dithering"];function c(h,f){var A;return h?h.isTexture?A=h.encoding:h.isWebGLRenderTarget&&(console.warn("THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead."),A=h.texture.encoding):A=Q,A===Q&&f&&(A=3007),A}
1this.getParameters=function(h,f,A,E,C,S,F){var tt=i[h.type],rt=F.isSkinnedMesh?function(Et){var Pt=Et.skeleton.bones;if(n.floatVertexTextures)return 1024;var se=Math.floor((n.maxVertexUniforms-20)/4),Bt=Math.min(se,Pt.length);return Bt<Pt.length?(console.warn("THREE.WebGLRenderer: Skeleton has "+Pt.length+" bones. This GPU supports "+Bt+"."),0):Bt}(F):0,ot=n.precision;null!==h.precision&&(ot=n.getMaxPrecision(h.precision))!==h.precision&&console.warn("THREE.WebGLProgram.getParameters:",h.precision,"not supported, using",ot,"instead.");var St=t.getRenderTarget();return{shaderID:tt,precision:ot,supportsVertexTextures:n.vertexTextures,outputEncoding:c(St?St.texture:null,t.gammaOutput),map:!!h.map,mapEncoding:c(h.map,t.gammaInput),matcap:!!h.matcap,matcapEncoding:c(h.matcap,t.gammaInput),envMap:!!h.envMap,envMapMode:h.envMap&&h.envMap.mapping,envMapEncoding:c(h.envMap,t.gammaInput),envMapCubeUV:!!h.envMap&&(306===h.envMap.mapping||307===h.envMap.mapping),lightMap:!!h.lightMap,aoMap:!!h.aoMap,emissiveMap:!!h.emissiveMap,emissiveMapEncoding:c(h.emissiveMap,t.gammaInput),bumpMap:!!h.bumpMap,normalMap:!!h.normalMap,objectSpaceNormalMap:1===h.normalMapType,displacementMap:!!h.displacementMap,roughnessMap:!!h.roughnessMap,metalnessMap:!!h.metalnessMap,specularMap:!!h.specularMap,alphaMap:!!h.alphaMap,gradientMap:!!h.gradientMap,combine:h.combine,vertexColors:h.vertexColors,fog:!!E,useFog:h.fog,fogExp:E&&E.isFogExp2,flatShading:h.flatShading,sizeAttenuation:h.sizeAttenuation,logarithmicDepthBuffer:n.logarithmicDepthBuffer,skinning:h.skinning&&rt>0,maxBones:rt,useVertexTexture:n.floatVertexTextures,morphTargets:h.morphTargets,morphNormals:h.morphNormals,maxMorphTargets:t.maxMorphTargets,maxMorphNormals:t.maxMorphNormals,numDirLights:f.directional.length,numPointLights:f.point.length,numSpotLights:f.spot.length,numRectAreaLights:f.rectArea.length,numHemiLights:f.hemi.length,numClippingPlanes:C,numClipIntersection:S,dithering:h.dithering,shadowMapEnabled:t.shadowMap.enabled&&F.receiveShadow&&A.length>0,shadowMapType:t.shadowMap.type,toneMapping:t.toneMapping,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:h.premultipliedAlpha,alphaTest:h.alphaTest,doubleSided:2===h.side,flipSided:1===h.side,depthPacking:void 0!==h.depthPacking&&h.depthPacking}},this.getProgramCode=function(h,f){var A=[];if(f.shaderID?A.push(f.shaderID):(A.push(h.fragmentShader),A.push(h.vertexShader)),void 0!==h.defines)for(var E in h.defines)A.push(E),A.push(h.defines[E]);for(var C=0;C<o.length;C++)A.push(f[o[C]]);return A.push(h.onBeforeCompile.toString()),A.push(t.gammaOutput),A.join()},this.acquireProgram=function(h,f,A,E){for(var C,S=0,F=r.length;S<F;S++){var tt=r[S];if(tt.code===E){++(C=tt).usedTimes;break}}return void 0===C&&(C=new zr(t,e,E,h,f,A,n),r.push(C)),C},this.releaseProgram=function(h){if(0==--h.usedTimes){var f=r.indexOf(h);r[f]=r[r.length-1],r.pop(),h.destroy()}},this.programs=r}function Vi(){var t=new WeakMap;return{get:function(n){var r=t.get(n);return void 0===r&&t.set(n,r={}),r},remove:function(n){t.delete(n)},update:function(n,r,i){t.get(n)[r]=i},dispose:function(){t=new WeakMap}}}function Mi(t,e){return t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.program&&e.program&&t.program!==e.program?t.program.id-e.program.id:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function oi(t,e){return t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function Hi(){var t=[],e=0,n=[],r=[];return{opaque:n,transparent:r,init:function(){e=0,n.length=0,r.length=0},push:function(o,c,h,f,A){var E=t[e];void 0===E?t[e]=E={id:o.id,object:o,geometry:c,material:h,program:h.program,renderOrder:o.renderOrder,z:f,group:A}:(E.id=o.id,E.object=o,E.geometry=c,E.material=h,E.program=h.program,E.renderOrder=o.renderOrder,E.z=f,E.group=A),(!0===h.transparent?r
1:n).push(E),e++},sort:function(){n.length>1&&n.sort(Mi),r.length>1&&r.sort(oi)}}}function Hr(){var t={};return{get:function(n,r){var i=n.id+","+r.id,o=t[i];return void 0===o&&(o=new Hi,t[i]=o),o},dispose:function(){t={}}}}function xs(){var t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];var n;switch(e.type){case"DirectionalLight":n={direction:new W,color:new lt,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new G};break;case"SpotLight":n={position:new W,direction:new W,color:new lt,distance:0,coneCos:0,penumbraCos:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new G};break;case"PointLight":n={position:new W,color:new lt,distance:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new G,shadowCameraNear:1,shadowCameraFar:1e3};break;case"HemisphereLight":n={direction:new W,skyColor:new lt,groundColor:new lt};break;case"RectAreaLight":n={color:new lt,position:new W,halfWidth:new W,halfHeight:new W}}return t[e.id]=n,n}}}var Li,as=0;function ms(){var t=new xs,e={id:as++,hash:{stateID:-1,directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,shadowsLength:-1},ambient:[0,0,0],directional:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]},n=new W,r=new dt,i=new dt;return{setup:function(c,h,f){for(var A=0,E=0,C=0,S=0,F=0,tt=0,rt=0,ot=0,St=f.matrixWorldInverse,yt=0,Et=c.length;yt<Et;yt++){var Pt=c[yt],se=Pt.color,Bt=Pt.intensity,Ct=Pt.distance,xe=Pt.shadow&&Pt.shadow.map?Pt.shadow.map.texture:null;if(Pt.isAmbientLight)A+=se.r*Bt,E+=se.g*Bt,C+=se.b*Bt;else if(Pt.isDirectionalLight)(Ft=t.get(Pt)).color.copy(Pt.color).multiplyScalar(Pt.intensity),Ft.direction.setFromMatrixPosition(Pt.matrixWorld),n.setFromMatrixPosition(Pt.target.matrixWorld),Ft.direction.sub(n),Ft.direction.transformDirection(St),Ft.shadow=Pt.castShadow,Pt.castShadow&&(Ft.shadowBias=(Yt=Pt.shadow).bias,Ft.shadowRadius=Yt.radius,Ft.shadowMapSize=Yt.mapSize),e.directionalShadowMap[S]=xe,e.directionalShadowMatrix[S]=Pt.shadow.matrix,e.directional[S]=Ft,S++;else if(Pt.isSpotLight)(Ft=t.get(Pt)).position.setFromMatrixPosition(Pt.matrixWorld),Ft.position.applyMatrix4(St),Ft.color.copy(se).multiplyScalar(Bt),Ft.distance=Ct,Ft.direction.setFromMatrixPosition(Pt.matrixWorld),n.setFromMatrixPosition(Pt.target.matrixWorld),Ft.direction.sub(n),Ft.direction.transformDirection(St),Ft.coneCos=Math.cos(Pt.angle),Ft.penumbraCos=Math.cos(Pt.angle*(1-Pt.penumbra)),Ft.decay=Pt.decay,Ft.shadow=Pt.castShadow,Pt.castShadow&&(Ft.shadowBias=(Yt=Pt.shadow).bias,Ft.shadowRadius=Yt.radius,Ft.shadowMapSize=Yt.mapSize),e.spotShadowMap[tt]=xe,e.spotShadowMatrix[tt]=Pt.shadow.matrix,e.spot[tt]=Ft,tt++;else if(Pt.isRectAreaLight)(Ft=t.get(Pt)).color.copy(se).multiplyScalar(Bt),Ft.position.setFromMatrixPosition(Pt.matrixWorld),Ft.position.applyMatrix4(St),i.identity(),r.copy(Pt.matrixWorld),r.premultiply(St),i.extractRotation(r),Ft.halfWidth.set(.5*Pt.width,0,0),Ft.halfHeight.set(0,.5*Pt.height,0),Ft.halfWidth.applyMatrix4(i),Ft.halfHeight.applyMatrix4(i),e.rectArea[rt]=Ft,rt++;else if(Pt.isPointLight){var Yt;(Ft=t.get(Pt)).position.setFromMatrixPosition(Pt.matrixWorld),Ft.position.applyMatrix4(St),Ft.color.copy(Pt.color).multiplyScalar(Pt.intensity),Ft.distance=Pt.distance,Ft.decay=Pt.decay,Ft.shadow=Pt.castShadow,Pt.castShadow&&(Ft.shadowBias=(Yt=Pt.shadow).bias,Ft.shadowRadius=Yt.radius,Ft.shadowMapSize=Yt.mapSize,Ft.shadowCameraNear=Yt.camera.near,Ft.shadowCameraFar=Yt.camera.far),e.pointShadowMap[F]=xe,e.pointShadowMatrix[F]=Pt.shadow.matrix,e.point[F]=Ft,F++}else if(Pt.isHemisphereLight){var Ft;(Ft=t.get(Pt)).direction.setFromMatrixPosition(Pt.matrixWorld),Ft.direction.transformDirection(St),Ft.direction.normalize(),Ft.skyColor.copy(Pt.color).multiplyScalar(Bt),Ft.groundColor.copy(Pt.groundColor).multiplyScalar(Bt),e.hemi[ot]=Ft,ot++}}e.ambient[0]=A,e.ambient[1]=E,e.ambient[2]=C,e.directional.length=S,e.spot.length=tt,e.rectArea.length=rt,e.point.length=F,e.hemi.length=ot,e.hash.stateID=e.id,e.hash.directionalLength=S,e.hash.pointLength=F,e.hash.spotLength=tt,e.hash.rectAreaLength=rt,e.hash.hemiLength=ot,e.hash.shadowsLength=h.length},state:e}}function to(){var t=new ms,e=[],n=[];return{init:function(){e.length=0,n.length=0},state:{lightsArray:e,shadowsArray:n,lights:t},setupLights:function(i){t.setup(e,n,i)},pushLight:function(i){e.push(i)},pushShadow:function(i){n.push(i)}}}function Oi(){var t={};return{get:function(n,r){var i;return void 0===t[n.id]?(i=new to,t[n.id]={},t[n.id][r.id]=i):void 0===t[n.id][r.id]?(i=new to,t[n.id][r.id]=i):i=t[n.id][r.id],i},dispose:function(){t={}}}}function Fs(t){Pe.call(this),this.type="MeshDepthMaterial",this.depthPacking=3200,this.skinning=!1,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.setValues(t)}function ls(t){Pe.call(this),this.type="MeshDistanceMaterial",this.referencePosition=new W,this.nearDistance=1,this.farDistance=1e3,this.skinning=!1,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.lights=!1,this.setValues(t)}
vendor: 2,064 bytes, line 1
1function ks(t,e,n){for(var r=new Ut,i=new dt,o=new G,c=new G(n,n),h=new W,f=new W,A=new Array(4),E=new Array(4),C={},S={0:1,1:0,2:2},F=[new W(1,0,0),new W(-1,0,0),new W(0,0,1),new W(0,0,-1),new W(0,1,0),new W(0,-1,0)],tt=[new W(0,1,0),new W(0,1,0),new W(0,1,0),new W(0,1,0),new W(0,0,1),new W(0,0,-1)],rt=[new We,new We,new We,new We,new We,new We],ot=0;4!==ot;++ot){var St=0!=(1&ot),yt=0!=(2&ot),Et=new Fs({depthPacking:3201,morphTargets:St,skinning:yt});A[ot]=Et;var Pt=new ls({morphTargets:St,skinning:yt});E[ot]=Pt}var se=this;function Bt(xe,Yt,Ft,He,Xe,_e){var ke=xe.geometry,Ne=null,Fe=A,gn=xe.customDepthMaterial;if(Ft&&(Fe=E,gn=xe.customDistanceMaterial),gn)Ne=gn;else{var $e=!1;Yt.morphTargets&&(ke&&ke.isBufferGeometry?$e=ke.morphAttributes&&ke.morphAttributes.position&&ke.morphAttributes.position.length>0:ke&&ke.isGeometry&&($e=ke.morphTargets&&ke.morphTargets.length>0)),xe.isSkinnedMesh&&!1===Yt.skinning&&console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",xe);var ln=0;$e&&(ln|=1),xe.isSkinnedMesh&&Yt.skinning&&(ln|=2),Ne=Fe[ln]}if(t.localClippingEnabled&&!0===Yt.clipShadows&&0!==Yt.clippingPlanes.length){var Ue=Ne.uuid,Xn=Yt.uuid,Un=C[Ue];void 0===Un&&(C[Ue]=Un={});var Jn=Un[Xn];void 0===Jn&&(Jn=Ne.clone(),Un[Xn]=Jn),Ne=Jn}return Ne.visible=Yt.visible,Ne.wireframe=Yt.wireframe,Ne.side=null!=Yt.shadowSide?Yt.shadowSide:S[Yt.side],Ne.clipShadows=Yt.clipShadows,Ne.clippingPlanes=Yt.clippingPlanes,Ne.clipIntersection=Yt.clipIntersection,Ne.wireframeLinewidth=Yt.wireframeLinewidth,Ne.linewidth=Yt.linewidth,Ft&&Ne.isMeshDistanceMaterial&&(Ne.referencePosition.copy(He),Ne.nearDistance=Xe,Ne.farDistance=_e),Ne}function Ct(xe,Yt,Ft,He){if(!1!==xe.visible){if(xe.layers.test(Yt.layers)&&(xe.isMesh||xe.isLine||xe.isPoints)&&xe.castShadow&&(!xe.frustumCulled||r.intersectsObject(xe))){xe.modelViewMatrix.multiplyMatrices(Ft.matrixWorldInverse,xe.matrixWorld);var Xe=e.update(xe),_e=xe.material;if(Array.isArray(_e))for(var ke=Xe.groups,Ne=0,Fe=ke.length;Ne<Fe;Ne++){var gn=ke[Ne],$e=_e[gn.materialIndex];
1if($e&&$e.visible){var ln=Bt(xe,$e,He,f,Ft.near,Ft.far);t.renderBufferDirect(Ft,null,Xe,ln,xe,gn)}}else _e.visible&&(ln=Bt(xe,_e,He,f,Ft.near,Ft.far),t.renderBufferDirect(Ft,null,Xe,ln,xe,null))}for(var Ue=xe.children,Xn=0,Un=Ue.length;Xn<Un;Xn++)Ct(Ue[Xn],Yt,Ft,He)}}this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1,this.render=function(xe,Yt,Ft){if(!1!==se.enabled&&(!1!==se.autoUpdate||!1!==se.needsUpdate)&&0!==xe.length){var He=t.state;He.disable(t.context.BLEND),He.buffers.color.setClear(1,1,1,1),He.buffers.depth.setTest(!0),He.setScissorTest(!1);for(var Xe,_e=0,ke=xe.length;_e<ke;_e++){var Ne=xe[_e],Fe=Ne.shadow,gn=Ne&&Ne.isPointLight;if(void 0!==Fe){var $e=Fe.camera;if(o.copy(Fe.mapSize),o.min(c),gn){var ln=o.x,Ue=o.y;rt[0].set(2*ln,Ue,ln,Ue),rt[1].set(0,Ue,ln,Ue),rt[2].set(3*ln,Ue,ln,Ue),rt[3].set(ln,Ue,ln,Ue),rt[4].set(3*ln,0,ln,Ue),rt[5].set(ln,0,ln,Ue),o.x*=4,o.y*=2}null===Fe.map&&(Fe.map=new Cn(o.x,o.y,{minFilter:_,magFilter:_,format:J}),Fe.map.texture.name=Ne.name+".shadowMap",$e.updateProjectionMatrix()),Fe.isSpotLightShadow&&Fe.update(Ne);var Xn=Fe.map,Un=Fe.matrix;f.setFromMatrixPosition(Ne.matrixWorld),$e.position.copy(f),gn?(Xe=6,Un.makeTranslation(-f.x,-f.y,-f.z)):(Xe=1,h.setFromMatrixPosition(Ne.target.matrixWorld),$e.lookAt(h),$e.updateMatrixWorld(),Un.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),Un.multiply($e.projectionMatrix),Un.multiply($e.matrixWorldInverse)),t.setRenderTarget(Xn),t.clear();for(var Jn=0;Jn<Xe;Jn++)gn&&(h.copy($e.position),h.add(F[Jn]),$e.up.copy(tt[Jn]),$e.lookAt(h),$e.updateMatrixWorld(),He.viewport(rt[Jn])),i.multiplyMatrices($e.projectionMatrix,$e.matrixWorldInverse),r.setFromMatrix(i),Ct(Yt,Ft,$e,gn)}else console.warn("THREE.WebGLShadowMap:",Ne,"has no shadow.")}se.needsUpdate=!1}}}function No(t,e,n,r){var i=new function(){var Ge=!1,lr=new We,mr=null,xr=new We(0,0,0,0);return{setMask:function(or){mr!==or&&!Ge&&(t.colorMask(or,or,or,or),mr=or)},setLocked:function(or){Ge=or},setClear:function(or,hi,Qr,ni,Hs){!0===Hs&&(or*=ni,hi*=ni,Qr*=ni),lr.set(or,hi,Qr,ni),!1===xr.equals(lr)&&(t.clearColor(or,hi,Qr,ni),xr.copy(lr))},reset:function(){Ge=!1,mr=null,xr.set(-1,0,0,0)}}},o=new function(){var Ge=!1,lr=null,mr=null,xr=null;return{setTest:function(or){or?Jn(t.DEPTH_TEST):Lr(t.DEPTH_TEST)},setMask:function(or){lr!==or&&!Ge&&(t.depthMask(or),lr=or)},setFunc:function(or){if(mr!==or){if(or)switch(or){case 0:t.depthFunc(t.NEVER);break;case 1:t.depthFunc(t.ALWAYS);break;case 2:t.depthFunc(t.LESS);break;case 3:default:t.depthFunc(t.LEQUAL);break;case 4:t.depthFunc(t.EQUAL);break;case 5:t.depthFunc(t.GEQUAL);break;case 6:t.depthFunc(t.GREATER);break;case 7:t.depthFunc(t.NOTEQUAL)}else t.depthFunc(t.LEQUAL);mr=or}},setLocked:function(or){Ge=or},setClear:function(or){xr!==or&&(t.clearDepth(or),xr=or)},reset:function(){Ge=!1,lr=null,mr=null,xr=null}}},c=new function(){var Ge=!1,lr=null,mr=null,xr=null,or=null,hi=null,Qr=null,ni=null,Hs=null;return{setTest:function(Fr){Fr?Jn(t.STENCIL_TEST):Lr(t.STENCIL_TEST)},setMask:function(Fr){lr!==Fr&&!Ge&&(t.stencilMask(Fr),lr=Fr)},setFunc:function(Fr,mi,pr){(mr!==Fr||xr!==mi||or!==pr)&&(t.stencilFunc(Fr,mi,pr),mr=Fr,xr=mi,or=pr)},setOp:function(Fr,mi,pr){(hi!==Fr||Qr!==mi||ni!==pr)&&(t.stencilOp(Fr,mi,pr),hi=Fr,Qr=mi,ni=pr)},setLocked:function(Fr){Ge=Fr},setClear:function(Fr){Hs!==Fr&&(t.clearStencil(Fr),Hs=Fr)},reset:function(){Ge=!1,lr=null,mr=null,xr=null,or=null,hi=null,Qr=null,ni=null,Hs=null}}},h=t.getParameter(t.MAX_VERTEX_ATTRIBS),f=new Uint8Array(h),A=new Uint8Array(h),E=new Uint8Array(h),C={},S=null,F=null,tt=null,rt=null,ot=null,St=null,yt=null,Et=null,Pt=null,se=null,Bt=!1,Ct=null,xe=null,Yt=null,Ft=null,He=null,Xe=t.getParameter(t.MAX_COMBINED_TEXTURE_IMAGE_UNITS),_e=!1,ke=0,Ne=t.getParameter(t.VERSION);-1!==Ne.indexOf("WebGL")?(ke=parseFloat(/^WebGL\ ([0-9])/.exec(Ne)[1]),_e=ke>=1):-1!==Ne.indexOf("OpenGL ES")&&(ke=parseFloat(/^OpenGL\ ES\ ([0-9])/.exec(Ne)[1]),_e=ke>=2);var Fe=null,gn={},$e=new We,ln=new We;function Ue(Tn,Ge,lr){var mr=new Uint8Array(4),xr=t.createTexture();t.bindTexture(Tn,xr),t.texParameteri(Tn,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(Tn,t.TEXTURE_MAG_FILTER,t.NEAREST);for(var or=0;or<lr;or++)t.texImage2D(Ge+or,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,mr);return xr}var Xn={};function Un(Tn,Ge){f[Tn]=1,0===A[Tn]&&(t.enableVertexAttribArray(Tn),A[Tn]=1),E[Tn]!==Ge&&((r.isWebGL2?t:e.get("ANGLE_instanced_arrays"))[r.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](Tn,Ge),E[Tn]=Ge)}function Jn(Tn){!0!==C[Tn]&&(t.enable(Tn),C[Tn]=!0)}function Lr(Tn){!1!==C[Tn]&&(t.disable(Tn),C[Tn]=!1)}function bi(Tn,Ge,lr,mr,xr,or,hi,Qr){if(0!==Tn){if(tt||(Jn(t.BLEND),tt=!0),5===Tn)xr=xr||Ge,or=or||lr,hi=hi||mr,(Ge!==ot||xr!==Et)&&(t.blendEquationSeparate(n.convert(Ge),n.convert(xr)),ot=Ge,Et=xr),(lr!==St||mr!==yt||or!==Pt||hi!==se)&&(t.blendFuncSeparate(n.convert(lr),n.convert(mr),n.convert(or),n.convert(hi)),St=lr,yt=mr,Pt=or,se=hi),rt=Tn,Bt=null;
1else if(Tn!==rt||Qr!==Bt){if((ot!==s||Et!==s)&&(t.blendEquation(t.FUNC_ADD),ot=s,Et=s),Qr)switch(Tn){case 1:t.blendFuncSeparate(t.ONE,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA);break;case 2:t.blendFunc(t.ONE,t.ONE);break;case 3:t.blendFuncSeparate(t.ZERO,t.ZERO,t.ONE_MINUS_SRC_COLOR,t.ONE_MINUS_SRC_ALPHA);break;case 4:t.blendFuncSeparate(t.ZERO,t.SRC_COLOR,t.ZERO,t.SRC_ALPHA);break;default:console.error("THREE.WebGLState: Invalid blending: ",Tn)}else switch(Tn){case 1:t.blendFuncSeparate(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA);break;case 2:t.blendFunc(t.SRC_ALPHA,t.ONE);break;case 3:t.blendFunc(t.ZERO,t.ONE_MINUS_SRC_COLOR);break;case 4:t.blendFunc(t.ZERO,t.SRC_COLOR);break;default:console.error("THREE.WebGLState: Invalid blending: ",Tn)}St=null,yt=null,Pt=null,se=null,rt=Tn,Bt=Qr}}else tt&&(Lr(t.BLEND),tt=!1)}function ss(Tn){Ct!==Tn&&(t.frontFace(Tn?t.CW:t.CCW),Ct=Tn)}function Ti(Tn){0!==Tn?(Jn(t.CULL_FACE),Tn!==xe&&t.cullFace(1===Tn?t.BACK:2===Tn?t.FRONT:t.FRONT_AND_BACK)):Lr(t.CULL_FACE),xe=Tn}function Rn(Tn,Ge,lr){Tn?(Jn(t.POLYGON_OFFSET_FILL),(Ft!==Ge||He!==lr)&&(t.polygonOffset(Ge,lr),Ft=Ge,He=lr)):Lr(t.POLYGON_OFFSET_FILL)}function Cr(Tn){void 0===Tn&&(Tn=t.TEXTURE0+Xe-1),Fe!==Tn&&(t.activeTexture(Tn),Fe=Tn)}return Xn[t.TEXTURE_2D]=Ue(t.TEXTURE_2D,t.TEXTURE_2D,1),Xn[t.TEXTURE_CUBE_MAP]=Ue(t.TEXTURE_CUBE_MAP,t.TEXTURE_CUBE_MAP_POSITIVE_X,6),i.setClear(0,0,0,1),o.setClear(1),c.setClear(0),Jn(t.DEPTH_TEST),o.setFunc(3),ss(!1),Ti(1),Jn(t.CULL_FACE),bi(0),{buffers:{color:i,depth:o,stencil:c},initAttributes:function(){for(var Ge=0,lr=f.length;Ge<lr;Ge++)f[Ge]=0},enableAttribute:function(Ge){Un(Ge,0)},enableAttributeAndDivisor:Un,disableUnusedAttributes:function(){for(var Ge=0,lr=A.length;Ge!==lr;++Ge)A[Ge]!==f[Ge]&&(t.disableVertexAttribArray(Ge),A[Ge]=0)},enable:Jn,disable:Lr,getCompressedTextureFormats:function(){if(null===S&&(S=[],e.get("WEBGL_compressed_texture_pvrtc")||e.get("WEBGL_compressed_texture_s3tc")||e.get("WEBGL_compressed_texture_etc1")||e.get("WEBGL_compressed_texture_astc")))for(var Ge=t.getParameter(t.COMPRESSED_TEXTURE_FORMATS),lr=0;lr<Ge.length;lr++)S.push(Ge[lr]);return S},useProgram:function(Ge){return F!==Ge&&(t.useProgram(Ge),F=Ge,!0)},setBlending:bi,setMaterial:function(Ge,lr){2===Ge.side?Lr(t.CULL_FACE):Jn(t.CULL_FACE);var mr=1===Ge.side;lr&&(mr=!mr),ss(mr),1===Ge.blending&&!1===Ge.transparent?bi(0):bi(Ge.blending,Ge.blendEquation,Ge.blendSrc,Ge.blendDst,Ge.blendEquationAlpha,Ge.blendSrcAlpha,Ge.blendDstAlpha,Ge.premultipliedAlpha),o.setFunc(Ge.depthFunc),o.setTest(Ge.depthTest),o.setMask(Ge.depthWrite),i.setMask(Ge.colorWrite),Rn(Ge.polygonOffset,Ge.polygonOffsetFactor,Ge.polygonOffsetUnits)},setFlipSided:ss,setCullFace:Ti,setLineWidth:function(Ge){Ge!==Yt&&(_e&&t.lineWidth(Ge),Yt=Ge)},setPolygonOffset:Rn,setScissorTest:function(Ge){Ge?Jn(t.SCISSOR_TEST):Lr(t.SCISSOR_TEST)},activeTexture:Cr,bindTexture:function(Ge,lr){null===Fe&&Cr();var mr=gn[Fe];void 0===mr&&(gn[Fe]=mr={type:void 0,texture:void 0}),(mr.type!==Ge||mr.texture!==lr)&&(t.bindTexture(Ge,lr||Xn[Ge]),mr.type=Ge,mr.texture=lr)},compressedTexImage2D:function(){try{t.compressedTexImage2D.apply(t,arguments)}catch(Ge){console.error("THREE.WebGLState:",Ge)}},texImage2D:function(){try{t.texImage2D.apply(t,arguments)}catch(Ge){console.error("THREE.WebGLState:",Ge)}},texImage3D:function(){try{t.texImage3D.apply(t,arguments)}catch(Ge){console.error("THREE.WebGLState:",Ge)}},scissor:function(Ge){!1===$e.equals(Ge)&&(t.scissor(Ge.x,Ge.y,Ge.z,Ge.w),$e.copy(Ge))},viewport:function(Ge){!1===ln.equals(Ge)&&(t.viewport(Ge.x,Ge.y,Ge.z,Ge.w),ln.copy(Ge))},reset:function(){for(var Ge=0;Ge<A.length;Ge++)1===A[Ge]&&(t.disableVertexAttribArray(Ge),A[Ge]=0);C={},S=null,Fe=null,gn={},F=null,rt=null,Ct=null,xe=null,i.reset(),o.reset(),c.reset()}}}function Fo(t,e,n,r,i,o,c){var h,f={};function A(Bt,Ct){if(Bt.width>Ct||Bt.height>Ct){if("data"in Bt)return void console.warn("THREE.WebGLRenderer: image in DataTexture is too big ("+Bt.width+"x"+Bt.height+").");var xe=Ct/Math.max(Bt.width,Bt.height),Yt=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");return Yt.width=Math.floor(Bt.width*xe),Yt.height=Math.floor(Bt.height*xe),Yt.getContext("2d").drawImage(Bt,0,0,Bt.width,Bt.height,0,0,Yt.width,Yt.height),console.warn("THREE.WebGLRenderer: image is too big ("+Bt.width+"x"+Bt.height+"). Resized to "+Yt.width+"x"+Yt.height),Yt}return Bt}function E(Bt){return U.isPowerOfTwo(Bt.width)&&U.isPowerOfTwo(Bt.height)}function C(Bt,Ct){return Bt.generateMipmaps&&Ct&&Bt.minFilter!==_&&Bt.minFilter!==H}function S(Bt,Ct,xe,Yt){t.generateMipmap(Bt),r.get(Ct).__maxMipLevel=Math.log(Math.max(xe,Yt))*Math.LOG2E}
1function F(Bt,Ct){if(!i.isWebGL2)return Bt;if(Bt===t.RED){if(Ct===t.FLOAT)return t.R32F;if(Ct===t.HALF_FLOAT)return t.R16F;if(Ct===t.UNSIGNED_BYTE)return t.R8}if(Bt===t.RGB){if(Ct===t.FLOAT)return t.RGB32F;if(Ct===t.HALF_FLOAT)return t.RGB16F;if(Ct===t.UNSIGNED_BYTE)return t.RGB8}if(Bt===t.RGBA){if(Ct===t.FLOAT)return t.RGBA32F;if(Ct===t.HALF_FLOAT)return t.RGBA16F;if(Ct===t.UNSIGNED_BYTE)return t.RGBA8}return Bt}function tt(Bt){return Bt===_||1004===Bt||1005===Bt?t.NEAREST:t.LINEAR}function rt(Bt){var Ct=Bt.target;Ct.removeEventListener("dispose",rt),function(Yt){var Ft=r.get(Yt);if(Yt.image&&Ft.__image__webglTextureCube)t.deleteTexture(Ft.__image__webglTextureCube);else{if(void 0===Ft.__webglInit)return;t.deleteTexture(Ft.__webglTexture)}r.remove(Yt)}(Ct),Ct.isVideoTexture&&delete f[Ct.id],c.memory.textures--}function ot(Bt){var Ct=Bt.target;Ct.removeEventListener("dispose",ot),function(Yt){var Ft=r.get(Yt),He=r.get(Yt.texture);if(Yt){if(void 0!==He.__webglTexture&&t.deleteTexture(He.__webglTexture),Yt.depthTexture&&Yt.depthTexture.dispose(),Yt.isWebGLRenderTargetCube)for(var Xe=0;Xe<6;Xe++)t.deleteFramebuffer(Ft.__webglFramebuffer[Xe]),Ft.__webglDepthbuffer&&t.deleteRenderbuffer(Ft.__webglDepthbuffer[Xe]);else t.deleteFramebuffer(Ft.__webglFramebuffer),Ft.__webglDepthbuffer&&t.deleteRenderbuffer(Ft.__webglDepthbuffer);r.remove(Yt.texture),r.remove(Yt)}}(Ct),c.memory.textures--}function St(Bt,Ct){var He,Xe,_e,xe=r.get(Bt);if(Bt.isVideoTexture&&f[Xe=(He=Bt).id]!==(_e=c.render.frame)&&(f[Xe]=_e,He.update(
1)),Bt.version>0&&xe.__version!==Bt.version){var Yt=Bt.image;if(void 0===Yt)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");else{if(!1!==Yt.complete)return void Et(xe,Bt,Ct);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.activeTexture(t.TEXTURE0+Ct),n.bindTexture(t.TEXTURE_2D,xe.__webglTexture)}function yt(Bt,Ct,xe){var Yt;if(xe?(t.texParameteri(Bt,t.TEXTURE_WRAP_S,o.convert(Ct.wrapS)),t.texParameteri(Bt,t.TEXTURE_WRAP_T,o.convert(Ct.wrapT)),t.texParameteri(Bt,t.TEXTURE_MAG_FILTER,o.convert(Ct.magFilter)),t.texParameteri(Bt,t.TEXTURE_MIN_FILTER,o.convert(Ct.minFilter))):(t.texParameteri(Bt,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(Bt,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),(Ct.wrapS!==B||Ct.wrapT!==B)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(Bt,t.TEXTURE_MAG_FILTER,tt(Ct.magFilter)),t.texParameteri(Bt,t.TEXTURE_MIN_FILTER,tt(Ct.minFilter)),Ct.minFilter!==_&&Ct.minFilter!==H&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),Yt=e.get("EXT_texture_filter_anisotropic")){if(Ct.type===it&&null===e.get("OES_texture_float_linear")||1016===Ct.type&&null===(i.isWebGL2||e.get("OES_texture_half_float_linear")))return;(Ct.anisotropy>1||r.get(Ct).__currentAnisotropy)&&(t.texParameterf(Bt,Yt.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(Ct.anisotropy,i.getMaxAnisotropy())),r.get(Ct).__currentAnisotropy=Ct.anisotropy)}}function Et(Bt,Ct,xe){var Yt;Yt=Ct.isDataTexture3D?t.TEXTURE_3D:t.TEXTURE_2D,void 0===Bt.__webglInit&&(Bt.__webglInit=!0,Ct.addEventListener("dispose",rt),Bt.__webglTexture=t.createTexture(),c.memory.textures++),n.activeTexture(t.TEXTURE0+xe),n.bindTexture(Yt,Bt.__webglTexture),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,Ct.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Ct.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,Ct.unpackAlignment);var Ue,Ft=A(Ct.image,i.maxTextureSize);Ue=Ct,!i.isWebGL2&&(Ue.wrapS!==B||Ue.wrapT!==B||Ue.minFilter!==_&&Ue.minFilter!==H)&&!1===E(Ft)&&(Ft=function(Ue){return Ue instanceof HTMLImageElement||Ue instanceof HTMLCanvasElement||Ue instanceof ImageBitmap?(void 0===h&&(h=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")),h.width=U.floorPowerOfTwo(Ue.width),h.height=U.floorPowerOfTwo(Ue.height),h.getContext("2d").drawImage(Ue,0,0,h.width,h.height),console.warn("THREE.WebGLRenderer: image is not power of two ("+Ue.width+"x"+Ue.height+"). Resized to "+h.width+"x"+h.height),h):Ue}(Ft));var He=E(Ft),Xe=o.convert(Ct.format),_e=o.convert(Ct.type),ke=F(Xe,_e);yt(Yt,Ct,He);var Ne,Fe=Ct.mipmaps;if(Ct.isDepthTexture){if(ke=t.DEPTH_COMPONENT,Ct.type===it){if(!i.isWebGL2)throw new Error("Float Depth Texture only supported in WebGL2.0");ke=t.DEPTH_COMPONENT32F}else i.isWebGL2&&(ke=t.DEPTH_COMPONENT16);Ct.format===ht&&ke===t.DEPTH_COMPONENT&&Ct.type!==q&&1014!==Ct.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),Ct.type=q,_e=o.convert(Ct.type)),Ct.format===m&&(ke=t.DEPTH_STENCIL,Ct.type!==vt&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),Ct.type=vt,_e=o.convert(Ct.type))),n.texImage2D(t.TEXTURE_2D,0,ke,Ft.width,Ft.height,0,Xe,_e,null)}else if(Ct.isDataTexture)if(Fe.length>0&&He){for(var gn=0,$e=Fe.length;gn<$e;gn++)n.texImage2D(t.TEXTURE_2D,gn,ke,(Ne=Fe[gn]).width,Ne.height,0,Xe,_e,Ne.data);Ct.generateMipmaps=!1,Bt.__maxMipLevel=Fe.length-1}else n.texImage2D(t.TEXTURE_2D,0,ke,Ft.width,Ft.height,0,Xe,_e,Ft.data),Bt.__maxMipLevel=0;else if(Ct.isCompressedTexture){for(gn=0,$e=Fe.length;gn<$e;gn++)Ne=Fe[gn],Ct.format!==J&&Ct.format!==at?n.getCompressedTextureFormats().indexOf(Xe)>-1?n.compressedTexImage2D(t.TEXTURE_2D,gn,ke,Ne.width,Ne.height,0,Ne.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):n.texImage2D(t.TEXTURE_2D,gn,ke,Ne.width,Ne.height,0,Xe,_e,Ne.data);Bt.__maxMipLevel=Fe.length-1}else if(Ct.isDataTexture3D)n.texImage3D(t.TEXTURE_3D,0,ke,Ft.width,Ft.height,Ft.depth,0,Xe,_e,Ft.data),Bt.__maxMipLevel=0;else if(Fe.length>0&&He){for(gn=0,$e=Fe.length;gn<$e;gn++)n.texImage2D(t.TEXTURE_2D,gn,ke,Xe,_e,Ne=Fe[gn]);Ct.generateMipmaps=!1,Bt.__maxMipLevel=Fe.length-1}else n.texImage2D(t.TEXTURE_2D,0,ke,Xe,_e,Ft),Bt.__maxMipLevel=0;C(Ct,He)&&S(t.TEXTURE_2D,Ct,Ft.width,Ft.height),Bt.__version=Ct.version,Ct.onUpdate&&Ct.onUpdate(Ct)}function Pt(Bt,Ct,xe,Yt){var Ft=o.convert(Ct.texture.format),He=o.convert(Ct.texture.type),Xe=F(Ft,He);n.texImage2D(Yt,0,Xe,Ct.width,Ct.height,0,Ft,He,null),t.bindFramebuffer(t.FRAMEBUFFER,Bt),t.framebufferTexture2D(t.FRAMEBUFFER,xe,Yt,r.get(Ct.texture).__webglTexture,0),t.bindFramebuffer(t.FRAMEBUFFER,null)}function se(Bt,Ct){t.bindRenderbuffer(t.RENDERBUFFER,Bt),Ct.depthBuffer&&!Ct.stencilBuffer?(t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_COMPONENT16,Ct.width,Ct.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,Bt)):Ct.depthBuffer&&Ct.stencilBuffer?(t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_STENCIL,Ct.width,Ct.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,Bt)):t.renderbufferStorage(t.RENDERBUFFER,t.RGBA4,Ct.width,Ct.height),t.bindRenderbuffer(t.RENDERBUFFER,null)}this.setTexture2D=St,this.setTexture3D=function(Ct,xe){var Yt=r.get(Ct);Ct.version>0&&Yt.__version!==Ct.version?Et(Yt,Ct,xe):(n.activeTexture(t.TEXTURE0+xe),n.bindTexture(t.TEXTURE_3D,Yt.__webglTexture))},this.setTextureCube=function(Ct,xe){var Yt=r.get(Ct);if(6===Ct.image.length)if(Ct.version>0&&Yt.__version!==Ct.version){Yt.__image__webglTextureCube||(Ct.addEventListener("dispose",rt),Yt.__image__webglTextureCube=t.createTexture(),c.memory.textures++),n.activeTexture(t.TEXTURE0+xe),n.bindTexture(t.TEXTURE_CUBE_MAP,Yt.__image__webglTextureCube),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,Ct.flipY);for(var Ft=Ct&&Ct.isCompressedTexture,He=Ct.image[0]&&Ct.image[0].isDataTexture,Xe=[],_e=0;_e<6;_e++)Xe[_e]=Ft||He?He?Ct.image[_e].image:Ct.image[_e]:A(Ct.image[_e],i.maxCubemapSize);var ke=Xe[0],Ne=E(ke),Fe=o.convert(Ct.format),gn=o.convert(Ct.type),$e=F(Fe,gn);for(yt(t.TEXTURE_CUBE_MAP,Ct,Ne),_e=0;_e<6;_e++)if(Ft)for(var ln,Ue=Xe[_e].mipmaps,Xn=0,Un=Ue.length;Xn<Un;Xn++)ln=Ue[Xn],Ct.format!==J&&Ct.format!==at?n.getCompressedTextureFormats().indexOf(Fe)>-1?n.compressedTexImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+_e,Xn,$e,ln.width,ln.height,0,ln.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+_e,Xn,$e,ln.width,ln.height,0,Fe,gn,ln.data);else He?n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+_e,0,$e,Xe[_e].width,Xe[_e].height,0,Fe,gn,Xe[_e].data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+_e,0,$e,Fe,gn,Xe[_e]);Yt.__maxMipLevel=Ft?Ue.length-1:0,C(Ct,Ne)&&S(t.TEXTURE_CUBE_MAP,Ct,ke.width,ke.height),Yt.__version=Ct.version,Ct.onUpdate&&Ct.onUpdate(Ct)}else n.activeTexture(t.TEXTURE0+xe),n.bindTexture(t.TEXTURE_CUBE_MAP,Yt.__image__webglTextureCube)},this.setTextureCubeDynamic=function(Ct,xe){n.activeTexture(t.TEXTURE0+xe),n.bindTexture(t.TEXTURE_CUBE_MAP,r.get(Ct).__webglTexture)},this.setupRenderTarget=function(Ct){var xe=r.get(Ct),Yt=r.get(Ct.texture);Ct.addEventListener("dispose",ot),Yt.__webglTexture=t.createTexture(),c.memory.textures++;var Ft=!0===Ct.isWebGLRenderTargetCube,He=E(Ct);if(Ft){xe.__webglFramebuffer=[];for(var Xe=0;Xe<6;Xe++)xe.__webglFramebuffer[Xe]=t.createFramebuffer()}else xe.__webglFramebuffer=t.createFramebuffer();if(Ft){for(n.bindTexture(t.TEXTURE_CUBE_MAP,Yt.__webglTexture),yt(t.TEXTURE_CUBE_MAP,Ct.texture,He),Xe=0;Xe<6;Xe++)Pt(xe.__webglFramebuffer[Xe],Ct,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+Xe);C(Ct.texture,He)&&S(t.TEXTURE_CUBE_MAP,Ct.texture,Ct.width,Ct.height),n.bindTexture(t.TEXTURE_CUBE_MAP,null)}else n.bindTexture(t.TEXTURE_2D,Yt.__webglTexture),yt(t.TEXTURE_2D,Ct.texture,He),Pt(xe.__webglFramebuffer,Ct,t.COLOR_ATTACHMENT0,t.TEXTURE_2D),C(Ct.texture,He)&&S(t.TEXTURE_2D,Ct.texture,Ct.width,Ct.height),n.bindTexture(t.TEXTURE_2D,null);Ct.depthBuffer&&function(ke){var Ne=r.get(ke),Fe=!0===ke.isWebGLRenderTargetCube;if(ke.depthTexture){if(Fe)throw new Error("target.depthTexture not supported in Cube render targets");!function(ln,Ue){if(Ue&&Ue.isWebGLRenderTargetCube)throw new Error("Depth Texture with cube render targets is not supported");if(t.bindFramebuffer(t.FRAMEBUFFER,ln),!Ue.depthTexture||!Ue.depthTexture.isDepthTexture)throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");(!r.get(Ue.depthTexture).__webglTexture||Ue.depthTexture.image.width!==Ue.width||Ue.depthTexture.image.height!==Ue.height)&&(Ue.depthTexture.image.width=Ue.width,Ue.depthTexture.image.height=Ue.height,Ue.depthTexture.needsUpdate=!0),St(Ue.depthTexture,0);var Xn=r.get(Ue.depthTexture).__webglTexture;if(Ue.depthTexture.format===ht)t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,Xn,0);else{if(Ue.depthTexture.format!==m)throw new Error("Unknown depthTexture format");t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,Xn,0)}}(Ne.__webglFramebuffer,ke)}else if(Fe){Ne.__webglDepthbuffer=[];for(var gn=0;gn<6;gn++)t.bindFramebuffer(t.FRAMEBUFFER,Ne.__webglFramebuffer[gn]),Ne.__webglDepthbuffer[gn]=t.createRenderbuffer(),se(Ne.__webglDepthbuffer[gn],ke)}else t.bindFramebuffer(t.FRAMEBUFFER,Ne.__webglFramebuffer),Ne.__webglDepthbuffer=t.createRenderbuffer(),se(Ne.__webglDepthbuffer,ke);t.bindFramebuffer(t.FRAMEBUFFER,null)}(Ct)},this.updateRenderTargetMipmap=function(Ct){var xe=Ct.texture;if(C(xe,E(Ct))){var Yt=Ct.isWebGLRenderTargetCube?t.TEXTURE_CUBE_MAP:t.TEXTURE_2D,Ft=r.get(xe).__webglTexture;n.bindTexture(Yt,Ft),S(Yt,xe,Ct.width,Ct.height),n.bindTexture(Yt,null)}}}function al(t,e,n){return{convert:function(i){var o;if(i===b)return t.REPEAT;if(i===B)return t.CLAMP_TO_EDGE;if(i===V)return t.MIRRORED_REPEAT;if(i===_)return t.NEAREST;if(1004===i)return t.NEAREST_MIPMAP_NEAREST;if(1005===i)return t.NEAREST_MIPMAP_LINEAR;if(i===H)return t.LINEAR;if(1007===i)return t.LINEAR_MIPMAP_NEAREST;if(i===Y)return t.LINEAR_MIPMAP_LINEAR;if(1009===i)return t.UNSIGNED_BYTE;if(1017===i)return t.UNSIGNED_SHORT_4_4_4_4;if(1018===i)return t.UNSIGNED_SHORT_5_5_5_1;if(1019===i)return t.UNSIGNED_SHORT_5_6_5;if(1010===i)return t.BYTE;if(1011===i)return t.SHORT;if(i===q)return t.UNSIGNED_SHORT;if(1013===i)return t.INT;if(1014===i)return t.UNSIGNED_INT;if(i===it)return t.FLOAT;
1if(1016===i){if(n.isWebGL2)return t.HALF_FLOAT;if(null!==(o=e.get("OES_texture_half_float")))return o.HALF_FLOAT_OES}if(1021===i)return t.ALPHA;if(i===at)return t.RGB;if(i===J)return t.RGBA;if(1024===i)return t.LUMINANCE;if(1025===i)return t.LUMINANCE_ALPHA;if(i===ht)return t.DEPTH_COMPONENT;if(i===m)return t.DEPTH_STENCIL;if(1028===i)return t.RED;if(i===s)return t.FUNC_ADD;if(101===i)return t.FUNC_SUBTRACT;if(102===i)return t.FUNC_REVERSE_SUBTRACT;if(200===i)return t.ZERO;if(201===i)return t.ONE;if(202===i)return t.SRC_COLOR;if(203===i)return t.ONE_MINUS_SRC_COLOR;if(204===i)return t.SRC_ALPHA;if(205===i)return t.ONE_MINUS_SRC_ALPHA;if(206===i)return t.DST_ALPHA;if(207===i)return t.ONE_MINUS_DST_ALPHA;if(208===i)return t.DST_COLOR;if(209===i)return t.ONE_MINUS_DST_COLOR;if(210===i)return t.SRC_ALPHA_SATURATE;if((33776===i||33777===i||33778===i||33779===i)&&null!==(o=e.get("WEBGL_compressed_texture_s3tc"))){if(33776===i)return o.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===i)return o.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(33778===i)return o.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===i)return o.COMPRESSED_RGBA_S3TC_DXT5_EXT}if((35840===i||35841===i||35842===i||35843===i)&&null!==(o=e.get("WEBGL_compressed_texture_pvrtc"))){if
1(35840===i)return o.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(35841===i)return o.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===i)return o.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===i)return o.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===i&&null!==(o=e.get("WEBGL_compressed_texture_etc1")))return o.COMPRESSED_RGB_ETC1_WEBGL;if((37808===i||37809===i||37810===i||37811===i||37812===i||37813===i||37814===i||37815===i||37816===i||37817===i||37818===i||37819===i||37820===i||37821===i)&&null!==(o=e.get("WEBGL_compressed_texture_astc")))return i;if(i===j||i===k){if(n.isWebGL2){if(i===j)return t.MIN;if(i===k)return t.MAX}if(null!==(o=e.get("EXT_blend_minmax"))){if(i===j)return o.MIN_EXT;if(i===k)return o.MAX_EXT}}if(i===vt){if(n.isWebGL2)return t.UNSIGNED_INT_24_8;if(null!==(o=e.get("WEBGL_depth_texture")))return o.UNSIGNED_INT_24_8_WEBGL}return 0}}}function js(){Wt.call(this),this.type="Group"}function Di(){Wt.call(this),this.type="Camera",this.matrixWorldInverse=new dt,this.projectionMatrix=new dt,this.projectionMatrixInverse=new dt}function ei(t,e,n,r){Di.call(this),this.type="PerspectiveCamera",this.fov=void 0!==t?t:50,this.zoom=1,this.near=void 0!==n?n:.1,this.far=void 0!==r?r:2e3,this.focus=10,this.aspect=void 0!==e?e:1,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}function Vs(t){ei.call(this),this.cameras=t||[]}function ko(t){var e=this,n=null,r=null,i=null,o=[],c=new dt,h=new dt,f="stage";typeof window<"u"&&"VRFrameData"in window&&(r=new window.VRFrameData,window.addEventListener("vrdisplaypresentchange",yt,!1));var A=new dt,E=new wt,C=new W,S=new ei;S.bounds=new We(0,0,.5,1),S.layers.enable(1);var F=new ei;F.bounds=new We(.5,0,.5,1),F.layers.enable(2);var tt,rt,ot=new Vs([S,F]);function St(){return null!==n&&!0===n.isPresenting}function yt(){if(St()){var Bt=n.getEyeParameters("left"),Ct=Bt.renderWidth,xe=Bt.renderHeight;rt=t.getPixelRatio(),tt=t.getSize(),t.setDrawingBufferSize(2*Ct,xe,1),se.start()}else e.enabled&&t.setDrawingBufferSize(tt.width,tt.height,rt),se.stop()}ot.layers.enable(1),ot.layers.enable(2);var Et=[];function Pt(Bt){for(var Ct=navigator.getGamepads&&navigator.getGamepads(),xe=0,Yt=0,Ft=Ct.length;xe<Ft;xe++){var He=Ct[xe];if(He&&("Daydream Controller"===He.id||"Gear VR Controller"===He.id||"Oculus Go Controller"===He.id||"OpenVR Gamepad"===He.id||He.id.startsWith("Oculus Touch")||He.id.startsWith("Spatial Controller"))){if(Yt===Bt)return He;Yt++}}}this.enabled=!1,this.getController=function(Bt){var Ct=o[Bt];return void 0===Ct&&((Ct=new js).matrixAutoUpdate=!1,Ct.visible=!1,o[Bt]=Ct),Ct},this.getDevice=function(){return n},this.setDevice=function(Bt){void 0!==Bt&&(n=Bt),se.setContext(Bt)},this.setFrameOfReferenceType=function(Bt){f=Bt},this.setPoseTarget=function(Bt){void 0!==Bt&&(i=Bt)},this.getCamera=function(Bt){var Ct="stage"===f?1.6:0;if(null===n)return Bt.position.set(0,Ct,0),Bt;if(n.depthNear=Bt.near,n.depthFar=Bt.far,n.getFrameData(r),"stage"===f){var xe=n.stageParameters;xe?c.fromArray(xe.sittingToStandingTransform):c.makeTranslation(0,Ct,0)}var Yt=r.pose,Ft=null!==i?i:Bt;if(Ft.matrix.copy(c),Ft.matrix.decompose(Ft.position,Ft.quaternion,Ft.scale),null!==Yt.orientation&&(E.fromArray(Yt.orientation),Ft.quaternion.multiply(E)),null!==Yt.position&&(E.setFromRotationMatrix(c),C.fromArray(Yt.position),C.applyQuaternion(E),Ft.position.add(C)),Ft.updateMatrixWorld(),!1===n.isPresenting)return Bt;S.near=Bt.near,F.near=Bt.near,S.far=Bt.far,F.far=Bt.far,ot.matrixWorld.copy(Bt.matrixWorld),ot.matrixWorldInverse.copy(Bt.matrixWorldInverse),S.matrixWorldInverse.fromArray(r.leftViewMatrix),F.matrixWorldInverse.fromArray(r.rightViewMatrix),h.getInverse(c),"stage"===f&&(S.matrixWorldInverse.multiply(h),F.matrixWorldInverse.multiply(h));var He=Ft.parent;null!==He&&(A.getInverse(He.matrixWorld),S.matrixWorldInverse.multiply(A),F.matrixWorldInverse.multiply(A)),S.matrixWorld.getInverse(S.matrixWorldInverse),F.matrixWorld.getInverse(F.matrixWorldInverse),S.projectionMatrix.fromArray(r.leftProjectionMatrix),F.projectionMatrix.fromArray(r.rightProjectionMatrix),ot.projectionMatrix.copy(S.projectionMatrix);var Xe=n.getLayers();if(Xe.length){var _e=Xe[0];null!==_e.leftBounds&&4===_e.leftBounds.length&&S.bounds.fromArray(_e.leftBounds),null!==_e.rightBounds&&4===_e.rightBounds.length&&F.bounds.fromArray(_e.rightBounds)}return function(){for(var Ne=0;Ne<o.length;Ne++){var Fe=o[Ne],gn=Pt(Ne);if(void 0!==gn&&void 0!==gn.pose){if(null===gn.pose)return;var $e=gn.pose;!1===$e.hasPosition&&Fe.position.set(.2,-.6,-.05),null!==$e.position&&Fe.position.fromArray($e.position),null!==$e.orientation&&Fe.quaternion.fromArray($e.orientation),Fe.matrix.compose(Fe.position,Fe.quaternion,Fe.scale),Fe.matrix.premultiply(c),Fe.matrix.decompose(Fe.position,Fe.quaternion,Fe.scale),Fe.matrixWorldNeedsUpdate=!0,Fe.visible=!0;var ln="Daydream Controller"===gn.id?0:1;Et[Ne]!==gn.buttons[ln].pressed&&(Et[Ne]=gn.buttons[ln].pressed,!0===Et[Ne]?Fe.dispatchEvent({type:"selectstart"}):(Fe.dispatchEvent({type:"selectend"}),Fe.dispatchEvent({type:"select"})))}else Fe.visible=!1}}(),ot}
1,this.getStandingMatrix=function(){return c},this.isPresenting=St;var se=new Vt;this.setAnimationLoop=function(Bt){se.setAnimationLoop(Bt)},this.submitFrame=function(){St()&&n.submitFrame()},this.dispose=function(){typeof window<"u"&&window.removeEventListener("vrdisplaypresentchange",yt)}}function sa(t){var e=t.context,n=null,r=null,i=null,o="stage",c=null,h=[],f=[];function A(){return null!==r&&null!==i}var E=new ei;E.layers.enable(1),E.viewport=new We;var C=new ei;C.layers.enable(2),C.viewport=new We;var S=new Vs([E,C]);function F(yt){var Et=h[f.indexOf(yt.inputSource)];Et&&Et.dispatchEvent({type:yt.type})}function tt(){t.setFramebuffer(null),St.stop()}function rt(yt,Et){null===Et?yt.matrixWorld.copy(yt.matrix):yt.matrixWorld.multiplyMatrices(Et.matrixWorld,yt.matrix),yt.matrixWorldInverse.getInverse(yt.matrixWorld)}S.layers.enable(1),S.layers.enable(2),this.enabled=!1,this.getController=function(yt){var Et=h[yt];return void 0===Et&&((Et=new js).matrixAutoUpdate=!1,Et.visible=!1,h[yt]=Et),Et},this.getDevice=function(){return n},this.setDevice=function(yt){void 0!==yt&&(n=yt),yt instanceof XRDevice&&e.setCompatibleXRDevice(yt)},this.setFrameOfReferenceType=function(yt){o=yt},this.setSession=function(yt){null!==(r=yt)&&(r.addEventListener("select",F),r.addEventListener("selectstart",F),r.addEventListener("selectend",F),r.addEventListener("end",tt),r.baseLayer=new XRWebGLLayer(r,e),r.requestFrameOfReference(o).then(function(Et){i=Et,t.setFramebuffer(r.baseLayer.framebuffer),St.setContext(r),St.start()}),f=r.getInputSources(),r.addEventListener("inputsourceschange",function(){f=r.getInputSources(),console.log(f)}))},this.getCamera=function(yt){if(A()){var Et=yt.parent,Pt=S.cameras;rt(S,Et);for(var se=0;se<Pt.length;se++)rt(Pt[se],Et);yt.matrixWorld.copy(S.matrixWorld);for(var Bt=yt.children,Ct=(se=0,Bt.length);se<Ct;se++)Bt[se].updateMatrixWorld(!0);return S}return yt},this.isPresenting=A;var ot=null,St=new Vt;St.setAnimationLoop(function(Et,Pt){if(null!==(c=Pt.getDevicePose(i)))for(var se=r.baseLayer,Bt=Pt.views,Ct=0;Ct<Bt.length;Ct++){var xe=Bt[Ct],Yt=se.getViewport(xe),Ft=c.getViewMatrix(xe),He=S.cameras[Ct];He.matrix.fromArray(Ft).getInverse(He.matrix),He.projectionMatrix.fromArray(xe.projectionMatrix),He.viewport.set(Yt.x,Yt.y,Yt.width,Yt.height),0===Ct&&(S.matrix.copy(He.matrix),S.projectionMatrix.copy(He.projectionMatrix))}for(Ct=0;Ct<h.length;Ct++){var Xe=h[Ct],_e=f[Ct];if(_e){var ke=Pt.getInputPose(_e,i);if(null!==ke){"targetRay"in ke?Xe.matrix.elements=ke.targetRay.transformMatrix:"pointerMatrix"in ke&&(Xe.matrix.elements=ke.pointerMatrix),Xe.matrix.decompose(Xe.position,Xe.rotation,Xe.scale),Xe.visible=!0;continue}}Xe.visible=!1}ot&&ot(Et)}),this.setAnimationLoop=function(yt){ot=yt},this.dispose=function(){},this.getStandingMatrix=function(){return console.warn("THREE.WebXRManager: getStandingMatrix() is no longer needed."),new THREE.Matrix4},this.submitFrame=function(){}}function co(t){console.log("THREE.WebGLRenderer","97");var e=void 0!==(t=t||{}).canvas?t.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),n=void 0!==t.context?t.context:null,r=void 0!==t.alpha&&t.alpha,i=void 0===t.depth||t.depth,o=void 0===t.stencil||t.stencil,c=void 0!==t.antialias&&t.antialias,h=void 0===t.premultipliedAlpha||t.premultipliedAlpha,f=void 0!==t.preserveDrawingBuffer&&t.preserveDrawingBuffer,A=void 0!==t.powerPreference?t.powerPreference:"default",E=null,C=null;this.domElement=e,this.context=null,this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.gammaFactor=2,this.gammaInput=!1,this.gammaOutput=!1,this.physicallyCorrectLights=!1,this.toneMapping=1,this.toneMappingExposure=1,this.toneMappingWhitePoint=1,this.maxMorphTargets=8,this.maxMorphNormals=4;var S,F,tt,rt,ot,St,yt,Et,Pt,se,Bt,Ct,xe,Yt,Ft,He,Xe,_e,ke=this,Ne=!1,Fe=null,gn=null,$e=null,ln=-1,Ue={geometry:null,program:null,wireframe:!1},Xn=null,Un=null,Jn=new We,Lr=new We,bi=null,ss=0,Ti=e.width,Rn=e.height,Cr=1,Tn=new We(0,0,Ti,Rn),Ge=new We(0,0,Ti,Rn),lr=!1,mr=new
1Ut,xr=new un,or=!1,hi=!1,Qr=new dt,ni=new W;function Hs(){return null===gn?Cr:1}try{var Fr={alpha:r,depth:i,stencil:o,antialias:c,premultipliedAlpha:h,preserveDrawingBuffer:f,powerPreference:A};if(e.addEventListener("webglcontextlost",ri,!1),e.addEventListener("webglcontextrestored",Kr,!1),null===(S=n||e.getContext("webgl",Fr)||e.getContext("experimental-webgl",Fr)))throw null!==e.getContext("webgl")?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.");void 0===S.getShaderPrecisionFormat&&(S.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(Xt){console.error("THREE.WebGLRenderer: "+Xt.message)}function mi(){F=new fn(S),(tt=new Kn(S,F,t)).isWebGL2||(F.get("WEBGL_depth_texture"),F.get("OES_texture_float"),F.get("OES_texture_half_float"),F.get("OES_texture_half_float_linear"),F.get("OES_standard_derivatives"),F.get("OES_element_index_uint"),F.get("ANGLE_instanced_arrays")),F.get("OES_texture_float_linear"),_e=new al(S,F,tt),(rt=new No(S,F,_e,tt)).scissor(Lr.copy(Ge).multiplyScalar(Cr)),rt.viewport(Jn.copy(Tn).multiplyScalar(Cr)),ot=new Zn(S),St=new Vi,yt=new Fo(S,F,rt,St,tt,_e,ot),Et=new Rt(S),Pt=new on(S,Et,ot),se=new zn(Pt,ot),Ft=new Qn(S),Bt=new os(ke,F,tt),Ct=new Hr,xe=new Oi,Yt=new dn(ke,rt,se,h),He=new Ze(S,F,ot,tt),Xe=new Nn(S,F,ot,tt),ot.programs=Bt.programs,ke.context=S,ke.capabilities=tt,ke.extensions=F,ke.properties=St,ke.renderLists=Ct,ke.state=rt,ke.info=ot}mi();var pr=null;typeof navigator<"u"&&(pr="xr"in navigator?new sa(ke):new ko(ke)),this.vr=pr;var kr=new ks(ke,se,tt.maxTextureSize);function ri(Xt){Xt.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),Ne=!0}function Kr(){console.log("THREE.WebGLRenderer: Context Restored."),Ne=!1,mi()}function ai(Xt){var Sn,he=Xt.target;he.removeEventListener("dispose",ai),Fi(Sn=he),St.remove(Sn)}function Fi(Xt){var he=St.get(Xt).program;Xt.program=void 0,void 0!==he&&Bt.releaseProgram(he)}this.shadowMap=kr,this.getContext=function(){return S},this.getContextAttributes=function(){return S.getContextAttributes()},this.forceContextLoss=function(){var Xt=F.get("WEBGL_lose_context");Xt&&Xt.loseContext()},this.forceContextRestore=function(){var Xt=F.get("WEBGL_lose_context");Xt&&Xt.restoreContext()},this.getPixelRatio=function(){return Cr},this.setPixelRatio=function(Xt){void 0!==Xt&&(Cr=Xt,this.setSize(Ti,Rn,!1))},this.getSize=function(){return{width:Ti,height:Rn}},this.setSize=function(Xt,he,ve){pr.isPresenting()?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(Ti=Xt,Rn=he,e.width=Xt*Cr,e.height=he*Cr,!1!==ve&&(e.style.width=Xt+"px",e.style.height=he+"px"),this.setViewport(0,0,Xt,he))},this.getDrawingBufferSize=function(){return{width:Ti*Cr,height:Rn*Cr}},this.setDrawingBufferSize=function(Xt,he,ve){Ti=Xt,Rn=he,Cr=ve,e.width=Xt*ve,e.height=he*ve,this.setViewport(0,0,Xt,he)},this.getCurrentViewport=function(){return Jn},this.setViewport=function(Xt,he,ve,Sn){Tn.set(Xt,Rn-he-Sn,ve,Sn),rt.viewport(Jn.copy(Tn).multiplyScalar(Cr))},this.setScissor=function(Xt,he,ve,Sn){Ge.set(Xt,Rn-he-Sn,ve,Sn),rt.scissor(Lr.copy(Ge).multiplyScalar(Cr))},this.setScissorTest=function(Xt){rt.setScissorTest(lr=Xt)},this.getClearColor=function(){return Yt.getClearColor()},this.setClearColor=function(){Yt.setClearColor.apply(Yt,arguments)},this.getClearAlpha=function(){return Yt.getClearAlpha()},this.setClearAlpha=function(){Yt.setClearAlpha.apply(Yt,arguments)},this.clear=function(Xt,he,ve){var Sn=0;(void 0===Xt||Xt)&&(Sn|=S.COLOR_BUFFER_BIT),(void 0===he||he)&&(Sn|=S.DEPTH_BUFFER_BIT),(void 0===ve||ve)&&(Sn|=S.STENCIL_BUFFER_BIT),S.clear(Sn)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){e.removeEventListener("webglcontextlost",ri,!1),e.removeEventListener("webglcontextrestored",Kr,!1),Ct.dispose(),xe.dispose(),St.dispose(),se.dispose(),pr.dispose(),fs.stop()},this.renderBufferImmediate=function(Xt,he){rt.initAttributes();var ve=St.get(Xt);Xt.hasPositions&&!ve.position&&(ve.position=S.createBuffer()),Xt.hasNormals&&!ve.normal&&(ve.normal=S.createBuffer()),Xt.hasUvs&&!ve.uv&&(ve.uv=S.createBuffer()),Xt.hasColors&&!ve.color&&(ve.color=S.createBuffer());var Sn=he.getAttributes();Xt.hasPositions&&(S.bindBuffer(S.ARRAY_BUFFER,ve.position),S.bufferData(S.ARRAY_BUFFER,Xt.positionArray,S.DYNAMIC_DRAW),rt.enableAttribute(Sn.position),S.vertexAttribPointer(Sn.position,3,S.FLOAT,!1,0,0)),Xt.hasNormals&&
1(S.bindBuffer(S.ARRAY_BUFFER,ve.normal),S.bufferData(S.ARRAY_BUFFER,Xt.normalArray,S.DYNAMIC_DRAW),rt.enableAttribute(Sn.normal),S.vertexAttribPointer(Sn.normal,3,S.FLOAT,!1,0,0)),Xt.hasUvs&&(S.bindBuffer(S.ARRAY_BUFFER,ve.uv),S.bufferData(S.ARRAY_BUFFER,Xt.uvArray,S.DYNAMIC_DRAW),rt.enableAttribute(Sn.uv),S.vertexAttribPointer(Sn.uv,2,S.FLOAT,!1,0,0)),Xt.hasColors&&(S.bindBuffer(S.ARRAY_BUFFER,ve.color),S.bufferData(S.ARRAY_BUFFER,Xt.colorArray,S.DYNAMIC_DRAW),rt.enableAttribute(Sn.color),S.vertexAttribPointer(Sn.color,3,S.FLOAT,!1,0,0)),rt.disableUnusedAttributes(),S.drawArrays(S.TRIANGLES,0,Xt.count),Xt.count=0},this.renderBufferDirect=function(Xt,he,ve,Sn,_n,nr){var rr=_n.isMesh&&_n.normalMatrix.determinant()<0;rt.setMaterial(Sn,rr);var $r=el(Xt,he,Sn,_n),gi=!1;(Ue.geometry!==ve.id||Ue.program!==$r.id||Ue.wireframe!==(!0===Sn.wireframe))&&(Ue.geometry=ve.id,Ue.program=$r.id,Ue.wireframe=!0===Sn.wireframe,gi=!0),_n.morphTargetInfluences&&(Ft.update(_n,ve,Sn,$r),gi=!0);var Ir=ve.index,li=ve.attributes.position,ti=1;!0===Sn.wireframe&&(Ir=Pt.getWireframeAttribute(ve),ti=2);var Ar,di=He;null!==Ir&&(Ar=Et.get(Ir),(di=Xe).setIndex(Ar)),gi&&(function(hc,dc,ia){if(ia&&ia.isInstancedBufferGeometry&!tt.isWebGL2&&null===F.get("ANGLE_instanced_arrays"))console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");else{rt.initAttributes();var pc=ia.attributes,Ql=dc.getAttributes(),ql=hc.defaultAttributeValues;for(var Pl in Ql){var Ds=Ql[Pl];if(Ds>=0){var Ns=pc[Pl];if(void 0!==Ns){var Zl=Ns.normalized,rl=Ns.itemSize,il=Et.get(Ns);if(void 0===il)continue;var sl=il.buffer,sc=il.type,oc=il.bytesPerElement;if(Ns.isInterleavedBufferAttribute){var Ma=Ns.data,fc=Ma.stride,mc=Ns.offset;Ma&&Ma.isInstancedInterleavedBuffer?(rt.enableAttributeAndDivisor(Ds,Ma.meshPerAttribute),void 0===ia.maxInstancedCount&&(ia.maxInstancedCount=Ma.meshPerAttribute*Ma.count)):rt.enableAttribute(Ds),S.bindBuffer(S.ARRAY_BUFFER,sl),S.vertexAttribPointer(Ds,rl,sc,Zl,fc*oc,mc*oc)}else Ns.isInstancedBufferAttribute?(rt.enableAttributeAndDivisor(Ds,Ns.meshPerAttribute),void 0===ia.maxInstancedCount&&(ia.maxInstancedCount=Ns.meshPerAttribute*Ns.count)):rt.enableAttribute(Ds),S.bindBuffer(S.ARRAY_BUFFER,sl),S.vertexAttribPointer(Ds,rl,sc,Zl,0,0)}else if(void 0!==ql){var La=ql[Pl];if(void 0!==La)switch(La.length){case 2:S.vertexAttrib2fv(Ds,La);break;case 3:S.vertexAttrib3fv(Ds,La);break;case 4:S.vertexAttrib4fv(Ds,La);break;default:S.vertexAttrib1fv(Ds,La)}}}}rt.disableUnusedAttributes()}}(Sn,$r,ve),null!==Ir&&S.bindBuffer(S.ELEMENT_ARRAY_BUFFER,Ar.buffer));var Rr=1/0;null!==Ir?Rr=Ir.count:void 0!==li&&(Rr=li.count);var Ii=ve.drawRange.start*ti,Do=ve.drawRange.count*ti,ao=null!==nr?nr.start*ti:0,$i=null!==nr?nr.count*ti:1/0,Bn=Math.max(Ii,ao),vn=Math.min(Rr,Ii+Do,ao+$i)-1,Gl=Math.max(0,vn-Bn+1);if(0!==Gl){if(_n.isMesh)if(!0===Sn.wireframe)rt.setLineWidth(Sn.wireframeLinewidth*Hs()),di.setMode(S.LINES);else switch(_n.drawMode){case 0:di.setMode(S.TRIANGLES);break;case 1:di.setMode(S.TRIANGLE_STRIP);break;case 2:di.setMode(S.TRIANGLE_FAN)}else if(_n.isLine){var Wl=Sn.linewidth;void 0===Wl&&(Wl=1),rt.setLineWidth(Wl*Hs()),di.setMode(_n.isLineSegments?S.LINES:_n.isLineLoop?S.LINE_LOOP:S.LINE_STRIP)}else _n.isPoints?di.setMode(S.POINTS):_n.isSprite&&di.setMode(S.TRIANGLES);ve&&ve.isInstancedBufferGeometry?ve.maxInstancedCount>0&&di.renderInstances(ve,Bn,Gl):di.render(Bn,Gl)}},this.compile=function(Xt,he){(C=xe.get(Xt,he)).init(),Xt.traverse(function(ve){ve.isLight&&(C.pushLight(ve),ve.castShadow&&C.pushShadow(ve))}),C.setupLights(he),Xt.traverse(function(ve){if(ve.material)if(Array.isArray(ve.material))for(var Sn=0;Sn<ve.material.length;Sn++)Ho(ve.material[Sn],Xt.fog,ve);else Ho(ve.material,Xt.fog,ve)})};var ki,Xt,Wi=null,fs=new Vt;function gs(Xt,he,ve){if(!1!==Xt.visible){if(Xt.layers.test(he.layers))if(Xt.isLight)C.pushLight(Xt),Xt.castShadow&&C.pushShadow(Xt);else if(Xt.isSprite){if(!Xt.frustumCulled||mr.intersectsSprite(Xt)){ve&&ni.setFromMatrixPosition(Xt.matrixWorld).applyMatrix4(Qr);var Sn=se.update(Xt);E.push(Xt,Sn,_n=Xt.material,ni.z,null)}}else if(Xt.isImmediateRenderObject)ve&&ni.setFromMatrixPosition(Xt.matrixWorld).applyMatrix4(Qr),E.push(Xt,null,Xt.material,ni.z,null);else if((Xt.isMesh||Xt.isLine||Xt.isPoints)&&(Xt.isSkinnedMesh&&Xt.skeleton.update(),!Xt.frustumCulled||mr.intersectsObject(Xt))){ve&&ni.setFromMatrixPosition(Xt.matrixWorld).applyMatrix4(Qr),Sn=se.update(Xt);var _n=Xt.material;if(Array.isArray(_n))for(var nr=Sn.groups,rr=0,$r=nr.length;rr<$r;rr++){var gi=nr[rr],Ir=_n[gi.materialIndex];Ir&&Ir.visible&&E.push(Xt,Sn,Ir,ni.z,gi)}else _n.visible&&E.push(Xt,Sn,_n,ni.z,null)}var li=Xt.children;for(rr=0,$r=li.length;rr<$r;rr++)gs(li[rr],he,ve)}}function oo(Xt,he,ve,Sn){for(var _n=0,nr=Xt.length;_n<nr;_n++){var rr=Xt[_n],$r=rr.object,gi=rr.geometry,Ir=void 0===Sn?rr.material:Sn,li=rr.group;if(ve.isArrayCamera){Un=ve;for(var ti=ve.cameras,Ar=0,di=ti.length;Ar<di;Ar++){var Rr=ti[Ar];if($r.layers.test(Rr.layers)){if("viewport"in Rr)rt.viewport(Jn.copy(Rr.viewport));else{var Ii=Rr.bounds;rt.viewport(Jn.set(Ii.x*Ti,Ii.y*Rn,Ii.z*Ti,Ii.w*Rn).multiplyScalar(Cr))}C.setupLights(Rr),tl($r,he,Rr,gi,Ir,li)}}}else Un=null,tl($r,he,ve,gi,Ir,li)}}function tl(Xt,he,ve,Sn,_n,nr){if(Xt.onBeforeRender(ke,he,ve,Sn,_n,nr),C=xe.get(he,Un||ve),Xt.modelViewMatrix.multiplyMatrices(ve.matrixWorldInverse,Xt.matrixWorld),Xt.normalMatrix.getNormalMatrix(Xt.modelViewMatrix),Xt.isImmediateRenderObject){rt.setMaterial(_n);var rr=el(ve,he.fog,_n,Xt);Ue.geometry=null,Ue.program=null,Ue.wireframe=!1,Ir=rr,Xt.render(function(li){ke.renderBufferImmediate(li,Ir)})}else ke.renderBufferDirect(ve,he.fog,Sn,_n,Xt,nr);var Ir;Xt.onAfterRender(ke,he,ve,Sn,_n,nr),C=xe.get(he,Un||ve)}function Ho(Xt,he,ve){var Sn=St.get(Xt),_n=C.state.lights,nr=Sn.lightsHash,rr=_n.state.hash,$r=Bt.getParameters(Xt,_n.state,C.state.shadowsArray,he,xr.numPlanes,xr.numIntersection,ve),gi=Bt.getProgramCode(Xt,$r),Ir=Sn.program,li=!0;if(void 0===Ir)Xt.addEventListener("dispose",ai);else if(Ir.code!==gi)Fi(Xt);else if(nr.stateID!==rr.stateID||nr.directionalLength!==rr.directionalLength||nr.pointLength!==rr.pointLength||nr.spotLength!==rr.spotLength||nr.rectAreaLength!==rr.rectAreaLength||nr.hemiLength!==rr.hemiLength||nr.shadowsLength!==rr.shadowsLength)nr.stateID=rr.stateID,nr.directionalLength=rr.directionalLength,nr.pointLength=rr.pointLength,nr.spotLength=rr.spotLength,nr.rectAreaLength=rr.rectAreaLength,nr.hemiLength=rr.hemiLength,nr.shadowsLength=rr.shadowsLength,li=!1;else{if(void 0!==$r.shaderID)return;li=!1}if(li){if($r.shaderID){var ti=ct[$r.shaderID];Sn.shader={name:Xt.type,uniforms:It.clone(ti.uniforms),vertexShader:ti.vertexShader,fragmentShader:ti.fragmentShader}}else Sn.shader={name:Xt.type,uniforms:Xt.uniforms,vertexShader:Xt.vertexShader,fragmentShader:Xt.fragmentShader};Xt.onBeforeCompile(Sn.shader,ke),gi=Bt.getProgramCode(Xt,$r),Ir=Bt.acquireProgram(Xt,Sn.shader,$r,gi),Sn.program=Ir,Xt.program=Ir}var Ar=Ir.getAttributes();
1if(Xt.morphTargets){Xt.numSupportedMorphTargets=0;for(var di=0;di<ke.maxMorphTargets;di++)Ar["morphTarget"+di]>=0&&Xt.numSupportedMorphTargets++}if(Xt.morphNormals)for(Xt.numSupportedMorphNormals=0,di=0;di<ke.maxMorphNormals;di++)Ar["morphNormal"+di]>=0&&Xt.numSupportedMorphNormals++;var Rr=Sn.shader.uniforms;(!Xt.isShaderMaterial&&!Xt.isRawShaderMaterial||!0===Xt.clipping)&&(Sn.numClippingPlanes=xr.numPlanes,Sn.numIntersection=xr.numIntersection,Rr.clippingPlanes=xr.uniform),Sn.fog=he,void 0===nr&&(Sn.lightsHash=nr={}),nr.stateID=rr.stateID,nr.directionalLength=rr.directionalLength,nr.pointLength=rr.pointLength,nr.spotLength=rr.spotLength,nr.rectAreaLength=rr.rectAreaLength,nr.hemiLength=rr.hemiLength,nr.shadowsLength=rr.shadowsLength,Xt.lights&&(Rr.ambientLightColor.value=_n.state.ambient,Rr.directionalLights.value=_n.state.directional,Rr.spotLights.value=_n.state.spot,Rr.rectAreaLights.value=_n.state.rectArea,Rr.pointLights.value=_n.state.point,Rr.hemisphereLights.value=_n.state.hemi,Rr.directionalShadowMap.value=_n.state.directionalShadowMap,Rr.directionalShadowMatrix.value=_n.state.directionalShadowMatrix,Rr.spotShadowMap.value=_n.state.spotShadowMap,Rr.spotShadowMatrix.value=_n.state.spotShadowMatrix,Rr.pointShadowMap.value=_n.state.pointShadowMap,Rr.pointShadowMatrix.value=_n.state.pointShadowMatrix);var Ii=Sn.program.getUniforms(),Do=Gn.seqWithValue(Ii.seq,Rr);Sn.uniformsList=Do}function el(Xt,he,ve,Sn){ss=0;var _n=St.get(ve),nr=_n.lightsHash,rr=C.state.lights.state.hash;or&&(hi||Xt!==Xn)&&xr.setState(ve.clippingPlanes,ve.clipIntersection,ve.clipShadows,Xt,_n,Xt===Xn&&ve.id===ln),!1===ve.needsUpdate&&(void 0===_n.program||ve.fog&&_n.fog!==he||ve.lights&&(nr.stateID!==rr.stateID||nr.directionalLength!==rr.directionalLength||nr.pointLength!==rr.pointLength||nr.spotLength!==rr.spotLength||nr.rectAreaLength!==rr.rectAreaLength||nr.hemiLength!==rr.hemiLength||nr.shadowsLength!==rr.shadowsLength)||void 0!==_n.numClippingPlanes&&(_n.numClippingPlanes!==xr.numPlanes||_n.numIntersection!==xr.numIntersection))&&(ve.needsUpdate=!0),ve.needsUpdate&&(Ho(ve,he,Sn),ve.needsUpdate=!1);var Bn,vn,$r=!1,gi=!1,Ir=!1,li=_n.program,ti=li.getUniforms(),Ar=_n.shader.uniforms;if(rt.useProgram(li.program)&&($r=!0,gi=!0,Ir=!0),ve.id!==ln&&(ln=ve.id,gi=!0),$r||Xn!==Xt){if(ti.setValue(S,"projectionMatrix",Xt.projectionMatrix),tt.logarithmicDepthBuffer&&ti.setValue(S,"logDepthBufFC",2/(Math.log(Xt.far+1)/Math.LN2)),Xn!==Xt&&(Xn=Xt,gi=!0,Ir=!0),ve.isShaderMaterial||ve.isMeshPhongMaterial||ve.isMeshStandardMaterial||ve.envMap){var di=ti.map.cameraPosition;void 0!==di&&di.setValue(S,ni.setFromMatrixPosition(Xt.matrixWorld))}(ve.isMeshPhongMaterial||ve.isMeshLambertMaterial||ve.isMeshBasicMaterial||ve.isMeshStandardMaterial||ve.isShaderMaterial||ve.skinning)&&ti.setValue(S,"viewMatrix",Xt.matrixWorldInverse)}if(ve.skinning){ti.setOptional(S,Sn,"bindMatrix"),ti.setOptional(S,Sn,"bindMatrixInverse");var Rr=Sn.skeleton;if(Rr)if(tt.floatVertexTextures){if(void 0===Rr.boneTexture){var Ii=Math.sqrt(4*Rr.bones.length);Ii=U.ceilPowerOfTwo(Ii),Ii=Math.max(Ii,4);var Do=new Float32Array(Ii*Ii*4);Do.set(Rr.boneMatrices);var ao=new Me(Do,Ii,Ii,J,it);ao.needsUpdate=!0,Rr.boneMatrices=Do,Rr.boneTexture=ao,Rr.boneTextureSize=Ii}ti.setValue(S,"boneTexture",Rr.boneTexture),ti.setValue(S,"boneTextureSize",Rr.boneTextureSize)}else ti.setOptional(S,Rr,"boneMatrices")}return gi&&(ti.setValue(S,"toneMappingExposure",ke.toneMappingExposure),ti.setValue(S,"toneMappingWhitePoint",ke.toneMappingWhitePoint),ve.lights&&((Bn=Ar).ambientLightColor.needsUpdate=vn=Ir,Bn.directionalLights.needsUpdate=vn,Bn.pointLights.needsUpdate=vn,Bn.spotLights.needsUpdate=vn,Bn.rectAreaLights.needsUpdate=vn,Bn.hemisphereLights.needsUpdate=vn),he&&ve.fog&&function(Bn,vn){Bn.fogColor.value=vn.color,vn.isFog?(Bn.fogNear.value=vn.near,Bn.fogFar.value=vn.far):vn.isFogExp2&&(Bn.fogDensity.value=vn.density)}(Ar,he),ve.isMeshBasicMaterial?vs(Ar,ve):ve.isMeshLambertMaterial?(vs(Ar,ve),function(Bn,vn){vn.emissiveMap&&(Bn.emissiveMap.value=vn.emissiveMap)}(Ar,ve)):ve.isMeshPhongMaterial?(vs(Ar,ve),ve.isMeshToonMaterial?function(Bn,vn){Qi(Bn,vn),vn.gradientMap&&(Bn.gradientMap.value=vn.gradientMap)}(Ar,ve):Qi(Ar,ve)):ve.isMeshStandardMaterial?(vs(Ar,ve),ve.isMeshPhysicalMaterial?function(Bn,vn){nl(Bn,vn),Bn.reflectivity.value=vn.reflectivity,Bn.clearCoat.value=vn.clearCoat,Bn.clearCoatRoughness.value=vn.clearCoatRoughness}
1(Ar,ve):nl(Ar,ve)):ve.isMeshMatcapMaterial?(vs(Ar,ve),function(Bn,vn){vn.matcap&&(Bn.matcap.value=vn.matcap),vn.bumpMap&&(Bn.bumpMap.value=vn.bumpMap,Bn.bumpScale.value=vn.bumpScale,1===vn.side&&(Bn.bumpScale.value*=-1)),vn.normalMap&&(Bn.normalMap.value=vn.normalMap,Bn.normalScale.value.copy(vn.normalScale),1===vn.side&&Bn.normalScale.value.negate()),vn.displacementMap&&(Bn.displacementMap.value=vn.displacementMap,Bn.displacementScale.value=vn.displacementScale,Bn.displacementBias.value=vn.displacementBias)}(Ar,ve)):ve.isMeshDepthMaterial?(vs(Ar,ve),function(Bn,vn){vn.displacementMap&&(Bn.displacementMap.value=vn.displacementMap,Bn.displacementScale.value=vn.displacementScale,Bn.displacementBias.value=vn.displacementBias)}(Ar,ve)):ve.isMeshDistanceMaterial?(vs(Ar,ve),function(Bn,vn){vn.displacementMap&&(Bn.displacementMap.value=vn.displacementMap,Bn.displacementScale.value=vn.displacementScale,Bn.displacementBias.value=vn.displacementBias),Bn.referencePosition.value.copy(vn.referencePosition),Bn.nearDistance.value=vn.nearDistance,Bn.farDistance.value=vn.farDistance}(Ar,ve)):ve.isMeshNormalMaterial?(vs(Ar,ve),function(Bn,vn){vn.bumpMap&&(Bn.bumpMap.value=vn.bumpMap,Bn.bumpScale.value=vn.bumpScale,1===vn.side&&(Bn.bumpScale.value*=-1)),vn.normalMap&&(Bn.normalMap.value=vn.normalMap,Bn.normalScale.value.copy(vn.normalScale),1===vn.side&&Bn.normalScale.value.negate()),vn.displacementMap&&(Bn.displacementMap.value=vn.displacementMap,Bn.displacementScale.value=vn.displacementScale,Bn.displacementBias.value=vn.displacementBias)}(Ar,ve)):ve.isLineBasicMaterial?(function(Bn,vn){Bn.diffuse.value=vn.color,Bn.opacity.value=vn.opacity}(Ar,ve),ve.isLineDashedMaterial&&function(Bn,vn){Bn.dashSize.value=vn.dashSize,Bn.totalSize.value=vn.dashSize+vn.gapSize,Bn.scale.value=vn.scale}(Ar,ve)):ve.isPointsMaterial?function(Bn,vn){Bn.diffuse.value=vn.color,Bn.opacity.value=vn.opacity,Bn.size.value=vn.size*Cr,Bn.scale.value=.5*Rn,Bn.map.value=vn.map,null!==vn.map&&(!0===vn.map.matrixAutoUpdate&&vn.map.updateMatrix(),Bn.uvTransform.value.copy(vn.map.matrix))}(Ar,ve):ve.isSpriteMaterial?function(Bn,vn){Bn.diffuse.value=vn.color,Bn.opacity.value=vn.opacity,Bn.rotation.value=vn.rotation,Bn.map.value=vn.map,null!==vn.map&&(!0===vn.map.matrixAutoUpdate&&vn.map.updateMatrix(),Bn.uvTransform.value.copy(vn.map.matrix))}(Ar,ve):ve.isShadowMaterial&&(Ar.color.value=ve.color,Ar.opacity.value=ve.opacity),void 0!==Ar.ltc_1&&(Ar.ltc_1.value=et.LTC_1),void 0!==Ar.ltc_2&&(Ar.ltc_2.value=et.LTC_2),Gn.upload(S,_n.uniformsList,Ar,ke)),ve.isShaderMaterial&&!0===ve.uniformsNeedUpdate&&(Gn.upload(S,_n.uniformsList,Ar,ke),ve.uniformsNeedUpdate=!1),ve.isSpriteMaterial&&ti.setValue(S,"center",Sn.center),ti.setValue(S,"modelViewMatrix",Sn.modelViewMatrix),ti.setValue(S,"normalMatrix",Sn.normalMatrix),ti.setValue(S,"modelMatrix",Sn.matrixWorld),li}function vs(Xt,he){var ve;Xt.opacity.value=he.opacity,he.color&&(Xt.diffuse.value=he.color),he.emissive&&Xt.emissive.value.copy(he.emissive).multiplyScalar(he.emissiveIntensity),he.map&&(Xt.map.value=he.map),he.alphaMap&&(Xt.alphaMap.value=he.alphaMap),he.specularMap&&(Xt.specularMap.value=he.specularMap),he.envMap&&(Xt.envMap.value=he.envMap,Xt.flipEnvMap.value=he.envMap&&he.envMap.isCubeTexture?-1:1,Xt.reflectivity.value=he.reflectivity,Xt.refractionRatio.value=he.refractionRatio,Xt.maxMipLevel.value=St.get(he.envMap).__maxMipLevel),he.lightMap&&(Xt.lightMap.value=he.lightMap,Xt.lightMapIntensity.value=he.lightMapIntensity),he.aoMap&&(Xt.aoMap.value=he.aoMap,Xt.aoMapIntensity.value=he.aoMapIntensity),he.map?ve=he.map:he.specularMap?ve=he.specularMap:he.displacementMap?ve=he.displacementMap:he.normalMap?ve=he.normalMap:he.bumpMap?ve=he.bumpMap:he.roughnessMap?ve=he.roughnessMap:he.metalnessMap?ve=he.metalnessMap:he.alphaMap?ve=he.alphaMap:he.emissiveMap&&(ve=he.emissiveMap),void 0!==ve&&(ve.isWebGLRenderTarget&&(ve=ve.texture),!0===ve.matrixAutoUpdate&&ve.updateMatrix(),Xt.uvTransform.value.copy(ve.matrix))}function Qi(Xt,he){Xt.specular.value=he.specular,Xt.shininess.value=Math.max(he.shininess,1e-4),he.emissiveMap&&(Xt.emissiveMap.value=he.emissiveMap),he.bumpMap&&(Xt.bumpMap.value=he.bumpMap,Xt.bumpScale.value=he.bumpScale,1===he.side&&(Xt.bumpScale.value*=-1)),he.normalMap&&(Xt.normalMap.value=he.normalMap,Xt.normalScale.value.copy(he.normalScale),1===he.side&&Xt.normalScale.value.negate()),he.displacementMap&&(Xt.displacementMap.value=he.displacementMap,Xt.displacementScale.value=he.displacementScale,Xt.displacementBias.value=he.displacementBias)}function nl(Xt,he){Xt.roughness.value=he.roughness,Xt.metalness.value=he.metalness,he.roughnessMap&&(Xt.roughnessMap.value=he.roughnessMap),he.metalnessMap&&(Xt.metalnessMap.value=he.metalnessMap),he.emissiveMap&&(Xt.emissiveMap.value=he.emissiveMap),he.bumpMap&&(Xt.bumpMap.value=he.bumpMap,Xt.bumpScale.value=he.bumpScale,1===he.side&&(Xt.bumpScale.value*=-1)),he.normalMap&&(Xt.normalMap.value=he.normalMap,Xt.normalScale.value.copy(he.normalScale),1===he.side&&Xt.normalScale.value.negate()),he.displacementMap&&(Xt.displacementMap.value=he.displacementMap,Xt.displacementScale.value=he.displacementScale,Xt.displacementBias.value=he.displacementBias),he.envMap&&(Xt.envMapIntensity.value=he.envMapIntensity)}fs.setAnimationLoop(function(he){pr.isPresenting()||Wi&&Wi(he)}),typeof window<"u"&&fs.setContext(window),this.setAnimationLoop=function(Xt){Wi=Xt,pr.setAnimationLoop(Xt),fs.start()},this.render=function(Xt,he,ve,Sn){if(he&&he.isCamera){if(!Ne){Ue.geometry=null,Ue.program=null,Ue.wireframe=!1,ln=-1,Xn=null,!0===Xt.autoUpdate&&Xt.updateMatrixWorld(),null===he.parent&&he.updateMatrixWorld(),pr.enabled&&(he=pr.getCamera(he)),(C=xe.get(Xt,he)).init(),Xt.onBeforeRender(ke,Xt,he,ve),Qr.multiplyMatrices(he.projectionMatrix,he.matrixWorldInverse),mr.setFromMatrix(Qr),or=xr.init(this.clippingPlanes,hi=this.localClippingEnabled,he),(E=Ct.get(Xt,he)).init(),gs(Xt,he,ke.sortObjects),!0===ke.sortObjects&&E.sort(),or&&xr.beginShadows(),kr.render(C.state.shadowsArray,Xt,he),C.setupLights(he),or&&xr.endShadows(),this.info.autoReset&&this.info.reset(),void 0===ve&&(ve=null),this.setRenderTarget(ve),Yt.render(E,Xt,he,Sn);var _n=E.opaque,nr=E.transparent;if(Xt.overrideMaterial){var rr=Xt.overrideMaterial;_n.length&&oo(_n,Xt,he,rr),nr.length&&oo(nr,Xt,he,rr)}else _n.length&&oo(_n,Xt,he),nr.length&&oo(nr,Xt,he);ve&&yt.updateRenderTargetMipmap(ve),rt.buffers.depth.setTest(!0),rt.buffers.depth.setMask(!0),rt.buffers.color.setMask(!0),rt.setPolygonOffset(!1),Xt.onAfterRender(ke,Xt,he),pr.enabled&&pr.submitFrame(),E=null,C=null}}else console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.")},this.allocTextureUnit=function(){var he=ss;return he>=tt.maxTextures&&console.warn("THREE.WebGLRenderer: Trying to use "+he+" texture units while this GPU supports only "+tt.maxTextures),ss+=1,he},this.setTexture2D=(ki=!1,function(Xt,he){Xt&&Xt.isWebGLRenderTarget&&(ki||(console.warn("THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead."),ki=!0),Xt=Xt.texture),yt.setTexture2D(Xt,he)}),this.setTexture3D=function(Xt,he){yt.setTexture3D(Xt,he)},this.setTexture=(Xt=!1,function(he,ve){Xt||(console.warn("THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead."),Xt=!0),yt.setTexture2D(he,ve)}),this.setTextureCube=function(){var Xt=!1;return function(he,ve){he&&he.isWebGLRenderTargetCube&&(Xt||(console.warn("THREE.WebGLRenderer.setTextureCube: don't use cube render targets as textures. Use their .texture property instead."),Xt=!0),he=he.texture),he&&he.isCubeTexture||Array.isArray(he.image)&&6===he.image.length?yt.setTextureCube(he,ve):yt.setTextureCubeDynamic(he,ve)}}(),this.setFramebuffer=function(Xt){Fe=Xt},this.getRenderTarget=function(){return gn},this.setRenderTarget=function(Xt){gn=Xt,Xt&&void 0===St.get(Xt).__webglFramebuffer&&yt.setupRenderTarget(Xt);var he=Fe,ve=!1;if(Xt){var Sn=St.get(Xt).__webglFramebuffer;Xt.isWebGLRenderTargetCube?(he=Sn[Xt.activeCubeFace],ve=!0):he=Sn,Jn.copy(Xt.viewport),Lr.copy(Xt.scissor),bi=Xt.scissorTest}else Jn.copy(Tn).multiplyScalar(Cr),Lr.copy(Ge).multiplyScalar(Cr),bi=lr;if($e!==he&&(S.bindFramebuffer(S.FRAMEBUFFER,he),$e=he),rt.viewport(Jn),rt.scissor(Lr),rt.setScissorTest(bi),ve){var _n=St.get(Xt.texture);S.framebufferTexture2D(S.FRAMEBUFFER,S.COLOR_ATTACHMENT0,S.TEXTURE_CUBE_MAP_POSITIVE_X+Xt.activeCubeFace,_n.__webglTexture,Xt.activeMipMapLevel)}},this.readRenderTargetPixels=function(Xt,he,ve,Sn,_n,nr){if(Xt&&Xt.isWebGLRenderTarget){var rr=St.get(Xt).__webglFramebuffer;if(rr){var $r=!1;rr!==$e&&(S.bindFramebuffer(S.FRAMEBUFFER,rr),$r=!0);try{var gi=Xt.texture,Ir=gi.format,li=gi.type;
1if(Ir!==J&&_e.convert(Ir)!==S.getParameter(S.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");if(!(1009===li||_e.convert(li)===S.getParameter(S.IMPLEMENTATION_COLOR_READ_TYPE)||li===it&&(tt.isWebGL2||F.get("OES_texture_float")||F.get("WEBGL_color_buffer_float"))||1016===li&&F.get(tt.isWebGL2?"EXT_color_buffer_float":"EXT_color_buffer_half_float")))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");S.checkFramebufferStatus(S.FRAMEBUFFER)===S.FRAMEBUFFER_COMPLETE?he>=0&&he<=Xt.width-Sn&&ve>=0&&ve<=Xt.height-_n&&S.readPixels(he,ve,Sn,_n,_e.convert(Ir),_e.convert(li),nr):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.")}finally{$r&&S.bindFramebuffer(S.FRAMEBUFFER,$e)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")},this.copyFramebufferToTexture=function(Xt,he,ve){var Sn=he.image.width,_n=he.image.height,nr=_e.convert(he.format);this.setTexture2D(he,0),S.copyTexImage2D(S.TEXTURE_2D,ve||0,nr,Xt.x,Xt.y,Sn,_n,0)},this.copyTextureToTexture=function(Xt,he,ve,Sn){var _n=he.image.width,nr=he.image.height,rr=_e.convert(ve.format),$r=_e.convert(ve.type);this.setTexture2D(ve,0),he.isDataTexture?S.texSubImage2D(S.TEXTURE_2D,Sn||0,Xt.x,Xt.y,_n,nr,rr,$r,he.image.data):S.texSubImage2D(S.TEXTURE_2D,Sn||0,Xt.x,Xt.y,rr,$r,he.image)}}function _s(t,e){this.name="",this.color=new lt(t),this.density=void 0!==e?e:25e-5}function bs(t,e,n){this.name="",this.color=new lt(t),this.near=void 0!==e?e:1,this.far=void 0!==n?n:1e3}function uo(){Wt.call(this),this.type="Scene",this.background=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0}function eo(t,e){this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.dynamic=!1,this.updateRange={offset:0,count:-1},this.version=0}function vi(t,e,n,r){this.data=t,this.itemSize=e,this.offset=n,this.normalized=!0===r}function Xs(t){Pe.call(this),this.type="SpriteMaterial",this.color=new lt(16777215),this.map=null,this.rotation=0,this.sizeAttenuation=!0,this.lights=!1,this.transparent=!0,this.setValues(t)}function Us(t){if(Wt.call(this),this.type="Sprite",void 0===Li){Li=new Te;var e=new eo(new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),5);Li.setIndex([0,1,2,0,2,3]),Li.addAttribute("position",new vi(e,3,0,!1)),Li.addAttribute("uv",new vi(e,2,3,!1))}this.geometry=Li,this.material=void 0!==t?t:new Xs,this.center=new G(.5,.5)}function Gs(){Wt.call(this),this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function ho(t,e){if(this.bones=(t=t||[]).slice(0),this.boneMatrices=new Float32Array(16*this.bones.length),void 0===e)this.calculateInverses();else if(this.bones.length===e.length)this.boneInverses=e.slice(0);else{console.warn("THREE.Skeleton boneInverses is the wrong length."),this.boneInverses=[];for(var n=0,r=this.bones.length;n<r;n++)this.boneInverses.push(new dt)}}function po(){Wt.call(this),this.type="Bone"}function ws(t,e){pe.call(this,t,e),this.type="SkinnedMesh",this.bindMode="attached",this.bindMatrix=new dt,this.bindMatrixInverse=new dt;var n=new ho(this.initBones());this.bind(n,this.matrixWorld),this.normalizeSkinWeights()}function Wr(t){Pe.call(this),this.type="LineBasicMaterial",this.color=new lt(16777215),this.linewidth=1,this.linecap="round",this.linejoin="round",this.lights=!1,this.setValues(t)}function Ei(t,e,n){1===n&&console.error("THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead."),Wt.call(this),this.type="Line",this.geometry=void 0!==t?t:new Te,this.material=void 0!==e?e:new Wr({color:16777215*Math.random()})}function Vr(t,e){Ei.call(this,t,e),this.type="LineSegments"}function Es(t,e){Ei.call(this,t,e),this.type="LineLoop"}function Cs(t){Pe.call(this),this.type="PointsMaterial",this.color=new lt(16777215),this.map=null,this.size=1,this.sizeAttenuation=!0,this.morphTargets=!1,this.lights=!1,this.setValues(t)}function fo(t,e){Wt.call(this),this.type="Points",this.geometry=void 0!==t?t:new Te,this.material=void 0!==e?e:new Cs({color:16777215*Math.random()})}function oa(t,e,n,r,i,o,c,h,f){ge.call(this,t,e,n,r,i,o,c,h,f),this.generateMipmaps=!1}function jo(t,e,n,r,i,o,c,h,f,A,E,C){ge.call(this,null,o,c,h,f,A,r,i,E,C),this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}function aa(t,e,n,r,i,o,c,h,f){ge.call(this,t,e,n,r,i,o,c,h,f),this.needsUpdate=!0}function _i(t,e,n,r,i,o,c,h,f,A){if((A=void 0!==A?A:ht)!==ht&&A!==m)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&A===ht&&(n=q),void 0===n&&A===m&&(n=vt),ge.call(this,null,r,i,o,
1c,h,A,n,f),this.image={width:t,height:e},this.magFilter=void 0!==c?c:_,this.minFilter=void 0!==h?h:_,this.flipY=!1,this.generateMipmaps=!1}function Rs(t){Te.call(this),this.type="WireframeGeometry";var e,n,r,i,o,c,h,f,A,E,C=[],S=[0,0],F={},tt=["a","b","c"];if(t&&t.isGeometry){var rt=t.faces;for(e=0,r=rt.length;e<r;e++){var ot=rt[e];for(n=0;n<3;n++)h=ot[tt[n]],f=ot[tt[(n+1)%3]],S[0]=Math.min(h,f),S[1]=Math.max(h,f),void 0===F[A=S[0]+","+S[1]]&&(F[A]={index1:S[0],index2:S[1]})}for(A in F)C.push((E=t.vertices[(c=F[A]).index1]).x,E.y,E.z),C.push((E=t.vertices[c.index2]).x,E.y,E.z)}else if(t&&t.isBufferGeometry){var St,yt,Et,Pt,se;if(E=new W,null!==t.index){for(St=t.attributes.position,yt=t.index,0===(Et=t.groups).length&&(Et=[{start:0,count:yt.count,materialIndex:0}]),i=0,o=Et.length;i<o;++i)for(e=se=(Pt=Et[i]).start,r=se+Pt.count;e<r;e+=3)for(n=0;n<3;n++)h=yt.getX(e+n),f=yt.getX(e+(n+1)%3),S[0]=Math.min(h,f),S[1]=Math.max(h,f),void 0===F[A=S[0]+","+S[1]]&&(F[A]={index1:S[0],index2:S[1]});for(A in F)E.fromBufferAttribute(St,(c=F[A]).index1),C.push(E.x,E.y,E.z),E.fromBufferAttribute(St,c.index2),C.push(E.x,E.y,E.z)}else for(e=0,r=(St=t.attributes.position).count/3;e<r;e++)for(n=0;n<3;n++)E.fromBufferAttribute(St,3*e+n),C.push(E.x,E.y,E.z),E.fromBufferAttribute(St,3*e+(n+1)%3),C.push(E.x,E.y,E.z)}this.addAttribute("position",new Lt(C,3))}function mo(t,e,n){be.call(this),this.type="ParametricGeometry",this.parameters={func:t,slices:e,stacks:n},this.fromBufferGeometry(new go(t,e,n)),this.mergeVertices()}function go(t,e,n){Te.call(this),this.type="ParametricBufferGeometry",this.parameters={func:t,slices:e,stacks:n};var r,i,o=[],c=[],h=[],f=[],A=1e-5,E=new W,C=new W,S=new W,F=new W,tt=new W;t.length<3&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");var rt=e+1;for(r=0;r<=n;r++){var ot=r/n;for(i=0;i<=e;i++){var St=i/e;t(St,ot,C),c.push(C.x,C.y,C.z),St-A>=0?(t(St-A,ot,S),F.subVectors(C,S)):(t(St+A,ot,S),F.subVectors(S,C)),ot-A>=0?(t(St,ot-A,S),tt.subVectors(C,S)):(t(St,ot+A,S),tt.subVectors(S,C)),E.crossVectors(F,tt).normalize(),h.push(E.x,E.y,E.z),f.push(St,ot)}}for(r=0;r<n;r++)for(i=0;i<e;i++){var yt=r*rt+i+1,Et=(r+1)*rt+i+1,Pt=(r+1)*rt+i;o.push(r*rt+i,yt,Pt),o.push(yt,Et,Pt)}this.setIndex(o),this.addAttribute("position",new Lt(c,3)),this.addAttribute("normal",new Lt(h,3)),this.addAttribute("uv",new Lt(f,2))}function Vo(t,e,n,r){be.call(this),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:n,detail:r},this.fromBufferGeometry(new Xi(t,e,n,r)),this.mergeVertices()}function Xi(t,e,n,r){Te.call(this),this.type="PolyhedronBufferGeometry",this.parameters={vertices:t,indices:e,radius:n,detail:r},n=n||1;var i=[],o=[];function c(S,F,tt,rt){var ot,St,yt=Math.pow(2,rt),Et=[];for(ot=0;ot<=yt;ot++){Et[ot]=[];var Pt=S.clone().lerp(tt,ot/yt),se=F.clone().lerp(tt,ot/yt),Bt=yt-ot;for(St=0;St<=Bt;St++)Et[ot][St]=0===St&&ot===yt?Pt:Pt.clone().lerp(se,St/Bt)}for(ot=0;ot<yt;ot++)for(St=0;St<2*(yt-ot)-1;St++){var Ct=Math.floor(St/2);St%2==0?(h(Et[ot][Ct+1]),h(Et[ot+1][Ct]),h(Et[ot][Ct])):(h(Et[ot][Ct+1]),h(Et[ot+1][Ct+1]),h(Et[ot+1][Ct]))}}function h(S){i.push(S.x,S.y,S.z)}function f(S,F){var tt=3*S;F.x=t[tt+0],F.y=t[tt+1],F.z=t[tt+2]}function A(S,F,tt,rt){rt<0&&1===S.x&&(o[F]=S.x-1),0===tt.x&&0===tt.z&&(o[F]=rt/2/Math.PI+.5)}function E(S){return Math.atan2(S.z,-S.x)}(function(F){for(var tt=new W,rt=new W,ot=new W,St=0;St<e.length;St+=3)f(e[St+0],tt),f(e[St+1],rt),f(e[St+2],ot),c(tt,rt,ot,F)})(r=r||0),function(F){for(var tt=new W,rt=0;rt<i.length;rt+=3)tt.x=i[rt+0],tt.y=i[rt+1],tt.z=i[rt+2],tt.normalize().multiplyScalar(F),i[rt+0]=tt.x,i[rt+1]=tt.y,i[rt+2]=tt.z}(n),function(){for(var F=new W,tt=0;tt<i.length;tt+=3){F.x=i[tt+0],F.y=i[tt+1],F.z=i[tt+2];var rt=E(F)/2/Math.PI+.5,ot=(S=F,Math.atan2(-S.y,Math.sqrt(S.x*S.x+S.z*S.z))/Math.PI+.5);o.push(rt,1-ot)}var S;(function(){for(var yt=new W,Et=new W,Pt=new W,se=new W,Bt=new G,Ct=new G,xe=new G,Yt=0,Ft=0;Yt<i.length;Yt+=9,Ft+=6){yt.set(i[Yt+0],i[Yt+1],i[Yt+2]),Et.set(i[Yt+3],i[Yt+4],i[Yt+5]),Pt.set(i[Yt+6],i[Yt+7],i[Yt+8]),Bt.set(o[Ft+0],o[Ft+1]),Ct.set(o[Ft+2],o[Ft+3]),xe.set(o[Ft+4],o[Ft+5]),se.copy(yt).add(Et).add(Pt).divideScalar(3);var He=E(se);A(Bt,Ft+0,yt,He),A(Ct,Ft+2,Et,He),A(xe,Ft+4,Pt,He)}})(),function(){for(var yt=0;yt<o.length;yt+=6){var Et=o[yt+0],Pt=o[yt+2],se=o[yt+4],Bt=Math.max(Et,Pt,se),Ct=Math.min(Et,Pt,se);Bt>.9&&Ct<.1&&(Et<.2&&(o[yt+0]+=1),Pt<.2&&(o[yt+2]+=1),se<.2&&(o[yt+4]+=1))}}()}(),this.addAttribute("position",new Lt(i,3)),this.addAttribute("normal",new Lt(i.slice(),3)),this.addAttribute("uv",new Lt(o,2)),0===r?this.computeVertexNormals():this.normalizeNormals()}function Ts(t,e){be.call(this),this.type="TetrahedronGeometry",this.parameters={radiu
1s:t,detail:e},this.fromBufferGeometry(new vo(t,e)),this.mergeVertices()}function vo(t,e){Xi.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],t,e),this.type="TetrahedronBufferGeometry",this.parameters={radius:t,detail:e}}function la(t,e){be.call(this),this.type="OctahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new yo(t,e)),this.mergeVertices()}function yo(t,e){Xi.call(this,[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],t,e),this.type="OctahedronBufferGeometry",this.parameters={radius:t,detail:e}}function ca(t,e){be.call(this),this.type="IcosahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new _o(t,e)),this.mergeVertices()}function _o(t,e){var n=(1+Math.sqrt(5))/2;Xi.call(this,[-1,n,0,1,n,0,-1,-n,0,1,-n,0,0,-1,n,0,1,n,0,-1,-n,0,1,-n,n,0,-1,n,0,1,-n,0,-1,-n,0,1],[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],t,e),this.type="IcosahedronBufferGeometry",this.parameters={radius:t,detail:e}}function no(t,e){be.call(this),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new qi(t,e)),this.mergeVertices()}function qi(t,e){var n=(1+Math.sqrt(5))/2,r=1/n;Xi.call(this,[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-r,-n,0,-r,n,0,r,-n,0,r,n,-r,-n,0,-r,n,0,r,-n,0,r,n,0,-n,0,-r,n,0,-r,-n,0,r,n,0,r],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,
vendor: 16,321 bytes, line 1
119,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this.type="DodecahedronBufferGeometry",this.parameters={radius:t,detail:e}}function Ms(t,e,n,r,i,o){be.call(this),this.type="TubeGeometry",this.parameters={path:t,tubularSegments:e,radius:n,radialSegments:r,closed:i},void 0!==o&&console.warn("THREE.TubeGeometry: taper has been removed.");var c=new Ws(t,e,n,r,i);this.tangents=c.tangents,this.normals=c.normals,this.binormals=c.binormals,this.fromBufferGeometry(c),this.mergeVertices()}function Ws(t,e,n,r,i){Te.call(this),this.type="TubeBufferGeometry",this.parameters={path:t,tubularSegments:e,radius:n,radialSegments:r,closed:i},n=n||1,r=r||8;var o=t.computeFrenetFrames(e=e||64,i=i||!1);this.tangents=o.tangents,this.normals=o.normals,this.binormals=o.binormals;var c,h,f=new W,A=new W,E=new G,C=new W,S=[],F=[],tt=[],rt=[];function ot(St){C=t.getPointAt(St/e,C);var yt=o.normals[St],Et=o.binormals[St];for(h=0;h<=r;h++){var Pt=h/r*Math.PI*2,se=Math.sin(Pt),Bt=-Math.cos(Pt);A.x=Bt*yt.x+se*Et.x,A.y=Bt*yt.y+se*Et.y,A.z=Bt*yt.z+se*Et.z,A.normalize(),F.push(A.x,A.y,A.z),f.x=C.x+n*A.x,f.y=C.y+n*A.y,f.z=C.z+n*A.z,S.push(f.x,f.y,f.z)}}(function(){for(c=0;c<e;c++)ot(c);ot(!1===i?e:0),function(){for(c=0;c<=e;c++)for(h=0;h<=r;h++)E.x=c/e,E.y=h/r,tt.push(E.x,E.y)}(),function(){for(h=1;h<=e;h++)for(c=1;c<=r;c++){var Et=(r+1)*h+(c-1),Pt=(r+1)*h+c,se=(r+1)*(h-1)+c;rt.push((r+1)*(h-1)+(c-1),Et,se),rt.push(Et,Pt,se)}}()})(),this.setIndex(rt),this.addAttribute("position",new Lt(S,3)),this.addAttribute("normal",new Lt(F,3)),this.addAttribute("uv",new Lt(tt,2))}function Xo(t,e,n,r,i,o,c){be.call(this),this.type="TorusKnotGeometry",this.parameters={radius:t,tube:e,tubularSegments:n,radialSegments:r,p:i,q:o},void 0!==c&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead."),this.fromBufferGeometry(new Ao(t,e,n,r,i,o)),this.mergeVertices()}function Ao(t,e,n,r,i,o){Te.call(this),this.type="TorusKnotBufferGeometry",this.parameters={radius:t,tube:e,tubularSegments:n,radialSegments:r,p:i,q:o},t=t||1,e=e||.4,n=Math.floor(n)||64,r=Math.floor(r)||8,i=i||2,o=o||3;var c,h,f=[],A=[],E=[],C=[],S=new W,F=new W,tt=new W,rt=new W,ot=new W,St=new W,yt=new W;for(c=0;c<=n;++c){var Et=c/n*i*Math.PI*2;for(Ft(Et,i,o,t,tt),Ft(Et+.01,i,o,t,rt),St.subVectors(rt,tt),yt.addVectors(rt,tt),ot.crossVectors(St,yt),yt.crossVectors(ot,St),ot.normalize(),yt.normalize(),h=0;h<=r;++h){var Pt=h/r*Math.PI*2,se=-e*Math.cos(Pt),Bt=e*Math.sin(Pt);S.x=tt.x+(se*yt.x+Bt*ot.x),S.y=tt.y+(se*yt.y+Bt*ot.y),S.z=tt.z+(se*yt.z+Bt*ot.z),A.push(S.x,S.y,S.z),F.subVectors(S,tt).normalize(),E.push(F.x,F.y,F.z),C.push(c/n),C.push(h/r)}}for(h=1;h<=n;h++)for(c=1;c<=r;c++){var Ct=(r+1)*h+(c-1),xe=(r+1)*h+c,Yt=(r+1)*(h-1)+c;f.push((r+1)*(h-1)+(c-1),Ct,Yt),f.push(Ct,xe,Yt)}function Ft(He,Xe,_e,ke,Ne){var Fe=Math.cos(He),gn=Math.sin(He),$e=_e/Xe*He,ln=Math.cos($e);Ne.x=ke*(2+ln)*.5*Fe,Ne.y=ke*(2+ln)*gn*.5,Ne.z=ke*Math.sin($e)*.5}this.setIndex(f),this.addAttribute("position",new Lt(A,3)),this.addAttribute("normal",new Lt(E,3)),this.addAttribute("uv",new Lt(C,2))}function xo(t,e,n,r,i){be.call(this),this.type="TorusGeometry",this.parameters={radius:t,tube:e,radialSegments:n,tubularSegments:r,arc:i},this.fromBufferGeometry(new st(t,e,n,r,i)),this.mergeVertices()}function st(t,e,n,r,i){Te.call(this),this.type="TorusBufferGeometry",this.parameters={radius:t,tube:e,radialSegments:n,tubularSegments:r,arc:i},t=t||1,e=e||.4,n=Math.floor(n)||8,r=Math.floor(r)||6,i=i||2*Math.PI;var o,c,h=[],f=[],A=[],E=[],C=new W,S=new W,F=new W;for(o=0;o<=n;o++)for(c=0;c<=r;c++){var tt=c/r*i,rt=o/n*Math.PI*2;S.x=(t+e*Math.cos(rt))*Math.cos(tt),S.y=(t+e*Math.cos(rt))*Math.sin(tt),S.z=e*Math.sin(rt),f.push(S.x,S.y,S.z),C.x=t*Math.cos(tt),C.y=t*Math.sin(tt),F.subVectors(S,C).normalize(),A.push(F.x,F.y,F.z),E.push(c/r),E.push(o/n)}for(o=1;o<=n;o++)for(c=1;c<=r;c++){var ot=(r+1)*(o-1)+c-1,St=(r+1)*(o-1)+c,yt=(r+1)*o+c;h.push((r+1)*o+c-1,ot,yt),h.push(ot,St,yt)}this.setIndex(h),this.addAttribute("position",new Lt(f,3)),this.addAttribute("normal",new Lt(A,3)),this.addAttribute("uv",new Lt(E,2))}function O(t,e,n,r,i){var o,c;if(i===function(f,A,E,C){for(var S=0,F=A,tt=E-C;F<E;F+=C)S+=(f[tt]-f[F])*(f[F+1]+f[tt+1]),tt=F;return S}(t,e,n,r)>0)for(o=e;o<n;o+=r)c=Sr(o,t[o],t[o+1],c);else for(o=n-r;o>=e;o-=r)c=Sr(o,t[o],t[o+1],c);return c&&sr(c,c.next)&&(Zr(c),c=c.next),c}function R(t,e){if(!t)return t;e||(e=t);var n,r=t;do{if(n=!1,r.steiner||!sr(r,r.next)&&0!==Dn(r.prev,r,r.next))r=r.next;else{if(Zr(r),(r=e=r.prev)===r.next)break;n=!0}}while(n||r!==e);return e}function K(t,e,n,r,i,o,c){if(t){!c&&o&&function(C,S,F,tt){var rt=C;do{null===rt.z&&(rt.z=tn(rt.x,rt.y,S,F,tt)),rt.prevZ=rt.prev,rt.nextZ=rt.next,rt=rt.next}while(rt!==C);rt.prevZ.nextZ=null,rt.prevZ=null,function(St){var yt,Et,Pt,se,Bt,Ct,xe,Yt,Ft=1;do{for(Et=St,St=null,Bt=null,Ct=0;Et;){for(Ct++,Pt=Et,xe=0,yt=0;yt<Ft&&(xe++,Pt=Pt.nextZ);yt++);for(Yt=Ft;xe>0||Yt>0&&Pt;)0!==xe&&(0===Yt||!Pt||Et.z<=Pt.z)?(se=Et,Et=Et.nextZ,xe--):(se=Pt,Pt=Pt.nextZ,Yt--),Bt?Bt.nextZ=se:St=se,se.prevZ=Bt,Bt=se;Et=Pt}Bt.nextZ=null,Ft*=2}while(Ct>1)}(rt)}(t,r,i,o);for(var h,f,A=t;t.prev!==t.next;)if(h=t.prev,f=t.next,o?jt(t,r,i,o):ft(t))e.push(h.i/n),e.push(t.i/n),e.push(f.i/n),Zr(t),t=f.next,A=f.next;else if((t=f)===A){c?1===c?K(t=Zt(t,e,n),e,n,r,i,o,2):2===c&&ce(t,e,n,r,i,o):K(R(t),e,n,r,i,o,1);break}}}function ft(t){var e=t.prev,n=t,r=t.next;if(Dn(e,n,r)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(Ln(e.x,e.y,n.x,n.y,r.x,r.y,i.x,i.y)&&Dn(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function jt(t,e,n,r){var i=t.prev,o=t,c=t.next;if(Dn(i,o,c)>=0)return!1;for(var h=i.x>o.x?i.x>c.x?i.x:c.x:o.x>c.x?o.x:c.x,f=i.y>o.y?i.y>c.y?i.y:c.y:o.y>c.y?o.y:c.y,A=tn(i.x<o.x?i.x<c.x?i.x:c.x:o.x<c.x?o.x:c.x,i.y<o.y?i.y<c.y?i.y:c.y:o.y<c.y?o.y:c.y,e,n,r),E=tn(h,f,e,n,r),C=t.nextZ;C&&C.z<=E;){if(C!==t.prev&&C!==t.next&&Ln(i.x,i.y,o.x,o.y,c.x,c.y,C.x,C.y)&&Dn(C.prev,C,C.next)>=0)return!1;C=C.nextZ}for(C=t.prevZ;C&&C.z>=A;){if(C!==t.prev&&C!==t.next&&Ln(i.x,i.y,o.x,o.y,c.x,c.y,C.x,C.y)&&Dn(C.prev,C,C.next)>=0)return!1;C=C.prevZ}return!0}function Zt(t,e,n){var r=t;do{var i=r.prev,o=r.next.next;!sr(i,o)&&Tr(i,r,r.next,o)&&_r(i,o)&&_r(o,i)&&(e.push(i.i/n),e.push(r.i/n),e.push(o.i/n),Zr(r),Zr(r.next),r=t=o),r=r.next}while(r!==t);return r}function ce(t,e,n,r,i,o){var c=t;do{for(var h=c.next.next;h!==c.prev;){if(c.i!==h.i&&jn(c,h)){var f=Xr(c,h);return c=R(c,c.next),f=R(f,f.next),K(c,e,n,r,i,o),void K(f,e,n,r,i,o)}h=h.next}c=c.next}while(c!==t)}function ze(t,e){return t.x-e.x}function En(t,e){if(e=function(i,o){var c,h=o,f=i.x,A=i.y,E=-1/0;do{if(A<=h.y&&A>=h.next.y&&h.next.y!==h.y){var C=h.x+(A-h.y)*(h.next.x-h.x)/(h.next.y-h.y);if(C<=f&&C>E){if(E=C,C===f){if(A===h.y)return h;if(A===h.next.y)return h.next}c=h.x<h.next.x?h:h.next}}h=h.next}while(h!==o);if(!c)return null;if(f===E)return c.prev;var S,F=c,tt=c.x,rt=c.y,ot=1/0;for(h=c.next;h!==F;)f>=h.x&&h.x>=tt&&f!==h.x&&Ln(A<rt?f:E,A,tt,rt,A<rt?E:f,A,h.x,h.y)&&((S=Math.abs(A-h.y)/(f-h.x))<ot||S===ot&&h.x>c.x)&&_r(h,i)&&(c=h,ot=S),h=h.next;return c}(t,e)){var n=Xr(e,t);R(n,n.next)}}function tn(t,e,n,r,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-r)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function bn(t){var e=t,n=t;do{e.x<n.x&&(n=e),e=e.next}while(e!==t);return n}function Ln(t,e,n,r,i,o,c,h){return(i-c)*(e-h)-(t-c)*(o-h)>=0&&(t-c)*(r-h)-(n-c)*(e-h)>=0&&(n-c)*(o-h)-(i-c)*(r-h)>=0}function jn(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(r,i){var o=r;do{if(o.i!==r.i&&o.next.i!==r.i&&o.i!==i.i&&o.next.i!==i.i&&Tr(o,o.next,r,i))return!0;o=o.next}while(o!==r);return!1}(t,e)&&_r(t,e)&&_r(e,t)&&function(r,i){var o=r,c=!1,h=(r.x+i.x)/2,f=(r.y+i.y)/2;do{o.y>f!=o.next.y>f&&o.next.y!==o.y&&h<(o.next.x-o.x)*(f-o.y)/(o.next.y-o.y)+o.x&&(c=!c),o=o.next}while(o!==r);return c}(t,e)}function Dn(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function sr(t,e){return t.x===e.x&&t.y===e.y}function Tr(t,e,n,r){return!!(sr(t,e)&&sr(n,r)||sr(t,r)&&sr(n,e))||Dn(t,e,n)>0!=Dn(t,e,r)>0&&Dn(n,r,t)>0!=Dn(n,r,e)>0}function _r(t,e){return Dn(t.prev,t,t.next)<0?Dn(t,e,t.next)>=0&&Dn(t,t.prev,e)>=0:Dn(t,e,t.prev)<0||Dn(t,t.next,e)<0}function Xr(t,e){var n=new ii(t.i,t.x,t.y),r=new ii(e.i,e.x,e.y),i=t.next,o=e.prev;return t.next=e,e.prev=t,n.next=i,i.prev=n,r.next=n,n.prev=r,o.next=r,r.prev=o,r}function Sr(t,e,n,r){var i=new ii(t,e,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function Zr(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function ii(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}(Fs.prototype=Object.create(Pe.prototype)).constructor=Fs,Fs.prototype.isMeshDepthMaterial=!0,Fs.prototype.copy=function(t){return Pe.prototype.copy.call(this,t),this.depthPacking=t.depthPacking,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this},(ls.prototype=Object.create(Pe.prototype)).constructor=ls,ls.prototype.isMeshDistanceMaterial=!0,ls.prototype.copy=function(t){return Pe.prototype.copy.call(this,t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this},js.prototype=Object.assign(Object.create(Wt.prototype),{constructor:js,isGroup:!0}),Di.prototype=Object.assign(Object.create(Wt.prototype),{constructor:Di,isCamera:!0,copy:function(t,e){return Wt.prototype.copy.call(this,t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this},getWorldDirection:function(t){void 0===t&&(console.warn("THREE.Camera: .getWorldDirection() target is now required"),t=new W),this.updateMatrixWorld(!0);var e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()},updateMatrixWorld:function(t){Wt.prototype.updateMatrixWorld.call(this,t),this.matrixWorldInverse.getInverse(this.matrixWorld)},clone:function(){return(new this.constructor).copy(this)}}),ei.prototype=Object.assign(Object.create(Di.prototype),{constructor:ei,isPerspectiveCamera:!0,copy:function(t,e){return Di.prototype.copy.call(this,t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this},setFocalLength:function(t){var e=.5*this.getFilmHeight()/t;this.fov=2*U.RAD2DEG*Math.atan(e),this.updateProjectionMatrix()},getFocalLength:function(){var t=Math.tan(.5*U.DEG2RAD*this.fov);return.5*this.getFilmHeight()/t},getEffectiveFOV:function(){return 2*U.RAD2DEG*Math.atan(Math.tan(.5*U.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,1)},setViewOffset:function(t,e,n,r,i,o){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=r,this.view.width=i,this.view.height=o,this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()},updateProjectionMatrix:function(){var t=this.near,e=t*Math.tan(.5*U.DEG2RAD*this.fov)/this.zoom,n=2*e,r=this.aspect*n,i=-.5*r,o=this.view;if(null!==this.view&&this.view.enabled){var c=o.fullWidth,h=o.fullHeight;i+=o.offsetX*r/c,e-=o.offsetY*n/h,r*=o.width/c,n*=o.height/h}var f=this.filmOffset;0!==f&&(i+=t*f/this.getFilmWidth()),this.projectionMatrix.makePerspective(i,i+r,e,e-n,t,this.far),this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(t){var e=Wt.prototype.toJSON.call(this,t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}),Vs.prototype=Object.assign(Object.create(ei.prototype),{constructor:Vs,isArrayCamera:!0}),_s.prototype.isFogExp2=!0,_s.prototype.clone=function(){return new _s(this.color,this.density)},_s.prototype.toJSON=function(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}},bs.prototype.isFog=!0,bs.prototype.clone=function(){return new bs(this.color,this.near,this.far)},bs.prototype.toJSON=function(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}},uo.prototype=Object.assign(Object.create(Wt.prototype),{constructor:uo,copy:function(t,e){return Wt.prototype.copy.call(this,t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.fog&&(this.fog=t.fog.clone()),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.autoUpdate=t.autoUpdate,this.matrixAutoUpdate=t.matrixAutoUpdate,this},toJSON:function(t){var e=Wt.prototype.toJSON.call(this,t);return null!==this.background&&(e.object.background=this.background.toJSON(t)),null!==this.fog&&(e.object.fog=this.fog.toJSON()),e}}),Object.defineProperty(eo.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),Object.assign(eo.prototype,{isInterleavedBuffer:!0,onUploadCallback:function(){},setArray:function(t){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");return this.count=void 0!==t?t.length/this.stride:0,this.array=t,this},setDynamic:function(t){return this.dynamic=t,this},copy:function(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.dynamic=t.dynamic,this},copyAt:function(t,e,n){t*=this.stride,n*=e.stride;for(var r=0,i=this.stride;r<i;r++)this.array[t+r]=e.array[n+r];return this},set:function(t,e){return void 0===e&&(e=0),this.array.set(t,e),this},clone:function(){return(new this.constructor).copy(this)},onUpload:function(t){return this.onUploadCallback=t,this}}),Object.defineProperties(vi.prototype,{count:{get:function(){return this.data.count}},array:{get:function(){return this.data.array}}}),Object.assign(vi.prototype,{isInterleavedBufferAttribute:!0,setX:function(t,e){return this.data.array[t*this.data.stride+this.offset]=e,this},setY:function(t,e){return this.data.array[t*this.data.stride+this.offset+1]=e,this},setZ:function(t,e){return this.data.array[t*this.data.stride+this.offset+2]=e,this},setW:function(t,e){return this.data.array[t*this.data.stride+this.offset+3]=e,this},getX:function(t){return this.data.array[t*this.data.stride+this.offset]},getY:function(t){return this.data.array[t*this.data.stride+this.offset+1]},getZ:function(t){return this.data.array[t*this.data.stride+this.offset+2]},getW:function(t){return this.data.array[t*this.data.stride+this.offset+3]},setXY:function(t,e,n){return this.data.array[(t=t*this.data.stride+this.offset)+0]=e,this.data.array[t+1]=n,this},setXYZ:function(t,e,n,r){return this.data.array[(t=t*this.data.stride+this.offset)+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=r,this},setXYZW:function(t,e,n,r,i){return this.data.array[(t=t*this.data.stride+this.offset)+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=r,this.data.array[t+3]=i,this}}),(Xs.prototype=Object.create(Pe.prototype)).constructor=Xs,Xs.prototype.isSpriteMaterial=!0,Xs.prototype.copy=function(t){return Pe.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.rotation=t.rotation,this.sizeAttenuation=t.sizeAttenuation,this},Us.prototype=Object.assign(Object.create(Wt.prototype),{constructor:Us,isSprite:!0,raycast:function(){var t=new W,e=new W,n=new W,r=new G,i=new G,o=new dt,c=new W,h=new W,f=new W,A=ne
1w G,E=new G,C=new G;function S(F,tt,rt,ot,St,yt){r.subVectors(F,rt).addScalar(.5).multiply(ot),void 0!==St?(i.x=yt*r.x-St*r.y,i.y=St*r.x+yt*r.y):i.copy(r),F.copy(tt),F.x+=i.x,F.y+=i.y,F.applyMatrix4(o)}return function(F,tt){e.setFromMatrixScale(this.matrixWorld),o.getInverse(this.modelViewMatrix).premultiply(this.matrixWorld),n.setFromMatrixPosition(this.modelViewMatrix);var rt,ot,St=this.material.rotation;0!==St&&(ot=Math.cos(St),rt=Math.sin(St));var yt=this.center;S(c.set(-.5,-.5,0),n,yt,e,rt,ot),S(h.set(.5,-.5,0),n,yt,e,rt,ot),S(f.set(.5,.5,0),n,yt,e,rt,ot),A.set(0,0),E.set(1,0),C.set(1,1);var Et=F.ray.intersectTriangle(c,h,f,!1,t);if(null!==Et||(S(h.set(-.5,.5,0),n,yt,e,rt,ot),E.set(0,1),null!==(Et=F.ray.intersectTriangle(c,f,h,!1,t)))){var Pt=F.ray.origin.distanceTo(t);Pt<F.near||Pt>F.far||tt.push({distance:Pt,point:t.clone(),uv:Dt.getUV(t,c,h,f,A,E,C,new G),face:null,object:this})}}}(),clone:function(){return new this.constructor(this.material).copy(this)},copy:function(t){return Wt.prototype.copy.call(this,t),void 0!==t.center&&this.center.copy(t.center),this}}),Gs.prototype=Object.assign(Object.create(Wt.prototype),{constructor:Gs,copy:function(t){Wt.prototype.copy.call(this,t,!1);for(var e=t.levels,n=0,r=e.length;n<r;n++){var i=e[n];this.addLevel(i.object.clone(),i.distance)}return this},addLevel:function(t,e){void 0===e&&(e=0),e=Math.abs(e);for(var n=this.levels,r=0;r<n.length&&!(e<n[r].distance);r++);n.splice(r,0,{distance:e,object:t}),this.add(t)},getObjectForDistance:function(t){for(var e=this.levels,n=1,r=e.length;n<r&&!(t<e[n].distance);n++);return e[n-1].object},raycast:function(){var t=new W;return function(e,n){t.setFromMatrixPosition(this.matrixWorld);var r=e.ray.origin.distanceTo(t);this.getObjectForDistance(r).raycast(e,n)}}(),update:function(){var t=new W,e=new W;return function(n){var r=this.levels;if(r.length>1){t.setFromMatrixPosition(n.matrixWorld),e.setFromMatrixPosition(this.matrixWorld);var i=t.distanceTo(e);r[0].object.visible=!0;for(var o=1,c=r.length;o<c&&i>=r[o].distance;o++)r[o-1].object.visible=!1,r[o].object.visible=!0;for(;o<c;o++)r[o].object.visible=!1}}}(),toJSON:function(t){var e=Wt.prototype.toJSON.call(this,t);e.object.levels=[];for(var n=this.levels,r=0,i=n.length;r<i;r++){var o=n[r];e.object.levels.push({object:o.object.uuid,distance:o.distance})}return e}}),Object.assign(ho.prototype,{calculateInverses:function(){this.boneInverses=[];for(var t=0,e=this.bones.length;t<e;t++){var n=new dt;this.bones[t]&&n.getInverse(this.bones[t].matrixWorld),this.boneInverses.push(n)}},pose:function(){var t,e,n;for(e=0,n=this.bones.length;e<n;e++)(t=this.bones[e])&&t.matrixWorld.getInverse(this.boneInverses[e]);for(e=0,n=this.bones.length;e<n;e++)(t=this.bones[e])&&(t.parent&&t.parent.isBone?(t.matrix.getInverse(t.parent.matrixWorld),t.matrix.multiply(t.matrixWorld)):t.matrix.copy(t.matrixWorld),t.matrix.decompose(t.position,t.quaternion,t.scale))},update:function(){var t=new dt,e=new dt;return function(){for(var n=this.bones,r=this.boneInverses,i=this.boneMatrices,o=this.boneTexture,c=0,h=n.length;c<h;c++)t.multiplyMatrices(n[c]?n[c].matrixWorld:e,r[c]),t.toArray(i,16*c);void 0!==o&&(o.needsUpdate=!0)}}(),clone:function(){return new ho(this.bones,this.boneInverses)},getBoneByName:function(t){for(var e=0,n=this.bones.length;e<n;e++){var r=this.bones[e];if(r.name===t)return r}}}),po.prototype=Object.assign(Object.create(Wt.prototype),{constructor:po,isBone:!0}),ws.prototype=Object.assign(Object.create(pe.prototype),{constructor:ws,isSkinnedMesh:!0,initBones:function(){var t,e,n,r,i=[];if(this.geometry&&void 0!==this.geometry.bones){for(n=0,r=this.geometry.bones.length;n<r;n++)e=this.geometry.bones[n],t=new po,i.push(t),t.name=e.name,t.position.fromArray(e.pos),t.quaternion.fromArray(e.rotq),void 0!==e.scl&&t.scale.fromArray(e.scl);for(n=0,r=this.geometry.bones.length;n<r;n++)-1!==(e=this.geometry.bones[n]).parent&&null!==e.parent&&void 0!==i[e.parent]?i[e.parent].add(i[n]):this.add(i[n])}return this.updateMatrixWorld(!0),i},bind:function(t,e){this.skeleton=t,void 0===e&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),e=this.matrixWorld),this.bindMatrix.copy(e),this.bindMatrixInverse.getInverse(e)},pose:function(){this.skeleton.pose()},normalizeSkinWeights:function(){var t,e;if(this.geometry&&this.geometry.isGeometry)for(e=0;e<this.geometry.skinWeights.length;e++){var n=this.geometry.skinWeights[e];(t=1/n.manhattanLength())!=1/0?n.multiplyScalar(t):n.set(1,0,0,0)}else if(this.geometry&&this.geometry.isBufferGeometry){var r=new We,i=this.geometry.attributes.skinWeight;for(e=0;e<i.count;
vendor: 6,477 bytes, line 1
1e++)r.x=i.getX(e),r.y=i.getY(e),r.z=i.getZ(e),r.w=i.getW(e),(t=1/r.manhattanLength())!=1/0?r.multiplyScalar(t):r.set(1,0,0,0),i.setXYZW(e,r.x,r.y,r.z,r.w)}},updateMatrixWorld:function(t){pe.prototype.updateMatrixWorld.call(this,t),"attached"===this.bindMode?this.bindMatrixInverse.getInverse(this.matrixWorld):"detached"===this.bindMode?this.bindMatrixInverse.getInverse(this.bindMatrix):console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)},clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),(Wr.prototype=Object.create(Pe.prototype)).constructor=Wr,Wr.prototype.isLineBasicMaterial=!0,Wr.prototype.copy=function(t){return Pe.prototype.copy.call(this,t),this.color.copy(t.color),this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this},Ei.prototype=Object.assign(Object.create(Wt.prototype),{constructor:Ei,isLine:!0,computeLineDistances:function(){var t=new W,e=new W;return function(){var n=this.geometry;if(n.isBufferGeometry)if(null===n.index){for(var r=n.attributes.position,i=[0],o=1,c=r.count;o<c;o++)t.fromBufferAttribute(r,o-1),e.fromBufferAttribute(r,o),i[o]=i[o-1],i[o]+=t.distanceTo(e);n.addAttribute("lineDistance",new Lt(i,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(n.isGeometry){var h=n.vertices;for((i=n.lineDistances)[0]=0,o=1,c=h.length;o<c;o++)i[o]=i[o-1],i[o]+=h[o-1].distanceTo(h[o])}return this}}(),raycast:function(){var t=new dt,e=new me,n=new Ee;return function(r,i){var o=r.linePrecision,c=this.geometry,h=this.matrixWorld;if(null===c.boundingSphere&&c.computeBoundingSphere(),n.copy(c.boundingSphere),n.applyMatrix4(h),n.radius+=o,!1!==r.ray.intersectsSphere(n)){t.getInverse(h),e.copy(r.ray).applyMatrix4(t);var f=o/((this.scale.x+this.scale.y+this.scale.z)/3),A=f*f,E=new W,C=new W,S=new W,F=new W,tt=this&&this.isLineSegments?2:1;if(c.isBufferGeometry){var rt=c.index,ot=c.attributes.position.array;if(null!==rt)for(var St=rt.array,yt=0,Et=St.length-1;yt<Et;yt+=tt){var Pt=St[yt+1];E.fromArray(ot,3*St[yt]),C.fromArray(ot,3*Pt),e.distanceSqToSegment(E,C,F,S)>A||(F.applyMatrix4(this.matrixWorld),(Ct=r.ray.origin.distanceTo(F))<r.near||Ct>r.far||i.push({distance:Ct,point:S.clone().applyMatrix4(this.matrixWorld),index:yt,face:null,faceIndex:null,object:this}))}else for(yt=0,Et=ot.length/3-1;yt<Et;yt+=tt)E.fromArray(ot,3*yt),C.fromArray(ot,3*yt+3),e.distanceSqToSegment(E,C,F,S)>A||(F.applyMatrix4(this.matrixWorld),(Ct=r.ray.origin.distanceTo(F))<r.near||Ct>r.far||i.push({distance:Ct,point:S.clone().applyMatrix4(this.matrixWorld),index:yt,face:null,faceIndex:null,object:this}))}else if(c.isGeometry){var se=c.vertices,Bt=se.length;for(yt=0;yt<Bt-1;yt+=tt){var Ct;e.distanceSqToSegment(se[yt],se[yt+1],F,S)>A||(F.applyMatrix4(this.matrixWorld),(Ct=r.ray.origin.distanceTo(F))<r.near||Ct>r.far||i.push({distance:Ct,point:S.clone().applyMatrix4(this.matrixWorld),index:yt,face:null,faceIndex:null,object:this}))}}}}}(),clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),Vr.prototype=Object.assign(Object.create(Ei.prototype),{constructor:Vr,isLineSegments:!0,computeLineDistances:function(){var t=new W,e=new W;return function(){var n=this.geometry;if(n.isBufferGeometry)if(null===n.index){for(var r=n.attributes.position,i=[],o=0,c=r.count;o<c;o+=2)t.fromBufferAttribute(r,o),e.fromBufferAttribute(r,o+1),i[o]=0===o?0:i[o-1],i[o+1]=i[o]+t.distanceTo(e);n.addAttribute("lineDistance",new Lt(i,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(n.isGeometry){var h=n.vertices;for(i=n.lineDistances,o=0,c=h.length;o<c;o+=2)t.copy(h[o]),e.copy(h[o+1]),i[o]=0===o?0:i[o-1],i[o+1]=i[o]+t.distanceTo(e)}return this}}()}),Es.prototype=Object.assign(Object.create(Ei.prototype),{constructor:Es,isLineLoop:!0}),(Cs.prototype=Object.create(Pe.prototype)).constructor=Cs,Cs.prototype.isPointsMaterial=!0,Cs.prototype.copy=function(t){return Pe.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this.morphTargets=t.morphTargets,this},fo.prototype=Object.assign(Object.create(Wt.prototype),{constructor:fo,isPoints:!0,raycast:function(){var t=new dt,e=new me,n=new Ee;return function(r,i){var o=this,c=this.geometry,h=this.matrixWorld,f=r.params.Points.threshold;if(null===c.boundingSphere&&c.computeBoundingSphere(),n.copy(c.boundingSphere),n.applyMatrix4(h),n.radius+=f,!1!==r.ray.intersectsSphere(n)){t.getInverse(h),e.copy(r.ray).applyMatrix4(t);var A=f/((this.scale.x+this.scale.y+this.scale.z)/3),E=A*A,C=new W,S=new W;if(c.isBufferGeometry){var F=c.index,tt=c.attributes.position.array;if(null!==F)for(var rt=F.array,ot=0,St=rt.length;ot<St;ot++){var yt=rt[ot];C.fromArray(tt,3*yt),se(C,yt)}else{ot=0;for(var Et=tt.length/3;ot<Et;ot++)C.fromArray(tt,3*ot),se(C,ot)}}else{var Pt=c.vertices;for(ot=0,Et=Pt.length;ot<Et;ot++)se(Pt[ot],ot)}}function se(Bt,Ct){var xe=e.distanceSqToPoint(Bt);if(xe<E){e.closestPointToPoint(Bt,S),S.applyMatrix4(h);var Yt=r.ray.origin.distanceTo(S);if(Yt<r.near||Yt>r.far)return;i.push({distance:Yt,distanceToRay:Math.sqrt(xe),point:S.clone(),index:Ct,face:null,object:o})}}}}(),clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),oa.prototype=Object.assign(Object.create(ge.prototype),{constructor:oa,isVideoTexture:!0,update:function(){var t=this.image;t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}),(jo.prototype=Object.create(ge.prototype)).constructor=jo,jo.prototype.isCompressedTexture=!0,(aa.prototype=Object.create(ge.prototype)).constructor=aa,aa.prototype.isCanvasTexture=!0,(_i.prototype=Object.create(ge.prototype)).constructor=_i,_i.prototype.isDepthTexture=!0,(Rs.prototype=Object.create(Te.prototype)).constructor=Rs,(mo.prototype=Object.create(be.prototype)).constructor=mo,(go.prototype=Object.create(Te.prototype)).constructor=go,(Vo.prototype=Object.create(be.prototype)).constructor=Vo,(Xi.prototype=Object.create(Te.prototype)).constructor=Xi,(Ts.prototype=Object.create(be.prototype)).constructor=Ts,(vo.prototype=Object.create(Xi.prototype)).constructor=vo,(la.prototype=Object.create(be.prototype)).constructor=la,(yo.prototype=Object.create(Xi.prototype)).constructor=yo,(ca.prototype=Object.create(be.prototype)).constructor=ca,(_o.prototype=Object.create(Xi.prototype)).constructor=_o,
1(no.prototype=Object.create(be.prototype)).constructor=no,(qi.prototype=Object.create(Xi.prototype)).constructor=qi,(Ms.prototype=Object.create(be.prototype)).constructor=Ms,(Ws.prototype=Object.create(Te.prototype)).constructor=Ws,(Xo.prototype=Object.create(be.prototype)).constructor=Xo,(Ao.prototype=Object.create(Te.prototype)).constructor=Ao,(xo.prototype=Object.create(be.prototype)).constructor=xo,(st.prototype=Object.create(Te.prototype)).constructor=st;var Ur={area:function(t){for(var e=t.length,n=0,r=e-1,i=0;i<e;r=i++)n+=t[r].x*t[i].y-t[i].x*t[r].y;return.5*n},isClockWise:function(t){return Ur.area(t)<0},triangulateShape:function(t,e){var n=[],r=[],i=[];Dr(t),Er(n,t);var o=t.length;e.forEach(Dr);for(var c=0;c<e.length;c++)r.push(o),o+=e[c].length,Er(n,e[c]);var h=function(f,A,E){E=E||2;var C,S,F,tt,rt,ot,St,yt=A&&A.length,Et=yt?A[0]*E:f.length,Pt=O(f,0,Et,E,!0),se=[];if(!Pt)return se;if(yt&&(Pt=function(xe,Yt,Ft,He){var Xe,_e,ke,Ne=[];for(Xe=0,_e=Yt.length;Xe<_e;Xe++)(ke=O(xe,Yt[Xe]*He,Xe<_e-1?Yt[Xe+1]*He:xe.length,He,!1))===ke.next&&(ke.steiner=!0),Ne.push(bn(ke));for(Ne.sort(ze),Xe=0;Xe<Ne.length;Xe++)En(Ne[Xe],Ft),Ft=R(Ft,Ft.next);return Ft}(f,A,Pt,E)),f.length>80*E){C=F=f[0],S=tt=f[1];for(var Bt=E;Bt<Et;Bt+=E)(rt=f[Bt])<C&&(C=rt),(ot=f[Bt+1])<S&&(S=ot),rt>F&&(F=rt),ot>tt&&(tt=ot);St=0!==(St=Math.max(F-C,tt-S))?1/St:0}return K(Pt,se,E,C,S,St),se}(n,r);for(c=0;c<h.length;c+=3)i.push(h.slice(c,c+3));return i}};function Dr(t){var e=t.length;e>2&&t[e-1].equals(t[0])&&t.pop()}function Er(t,e){for(var n=0;n<e.length;n++)t.push(e[n].x),t.push(e[n].y)}function Ci(t,e){be.call(this),this.type="ExtrudeGeometry",this.parameters={shapes:t,options:e},this.fromBufferGeometry(new Gr(t,e)),this.mergeVertices()}function Gr(t,e){Te.call(this),this.type="ExtrudeBufferGeometry",this.parameters={shapes:t,options:e},t=Array.isArray(t)?t:[t];for(var n=this,r=[],i=[],o=0,c=t.length;o<c;o++)h(t[o]);function h(f){var A=[],E=void 0!==e.curveSegments?e.curveSegments:12,C=void 0!==e.steps?e.steps:1,S=void 0!==e.depth?e.depth:100,F=void 0===e.bevelEnabled||e.bevelEnabled,tt=void 0!==e.bevelThickness?e.bevelThickness:6,rt=void 0!==e.bevelSize?e.bevelSize:tt-2,ot=void 0!==e.bevelSegments?e.bevelSegments:3,St=e.extrudePath,yt=void 0!==e.UVGenerator?e.UVGenerator:Yr;void 0!==e.amount&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),S=e.amount);var Et,Pt,se,Bt,Ct,xe=!1;St&&(Et=St.getSpacedPoints(C),xe=!0,F=!1,Pt=St.computeFrenetFrames(C,!1),se=new W,Bt=new W,Ct=new W),F||(ot=0,tt=0,rt=0);var Yt,Ft,He,Xe=f.extractPoints(E),_e=Xe.shape,ke=Xe.holes;if(!Ur.isClockWise(_e))for(_e=_e.reverse(),Ft=0,He=ke.length;Ft<He;Ft++)Ur.isClockWise(Yt=ke[Ft])&&(ke[Ft]=Yt.reverse());var Ne=Ur.triangulateShape(_e,ke),Fe=_e;for(Ft=0,He=ke.length;Ft<He;Ft++)_e=_e.concat(Yt=ke[Ft]);function gn(pr,kr,ri){return kr||console.error("THREE.ExtrudeGeometry: vec does not exist"),kr.clone().multiplyScalar(ri).add(pr)}var $e,ln,Ue,Xn,Un,Jn,Lr=_e.length,bi=Ne.length;function ss(pr,kr,ri){var Kr,ai,Fi,ki=pr.x-kr.x,Wi=pr.y-kr.y,fs=ri.x-pr.x,gs=ri.y-pr.y,oo=ki*ki+Wi*Wi;if(Math.abs(ki*gs-Wi*fs)>Number.EPSILON){var tl=Math.sqrt(oo),Ho=Math.sqrt(fs*fs+gs*gs),el=kr.x-Wi/tl,vs=kr.y+ki/tl,Qi=((ri.x-gs/Ho-el)*gs-(ri.y+fs/Ho-vs)*fs)/(ki*gs-Wi*fs),nl=(Kr=el+ki*Qi-pr.x)*Kr+(ai=vs+Wi*Qi-pr.y)*ai;if(nl<=2)return new G(Kr,ai);Fi=Math.sqrt(nl/2)}else{var Xt=!1;ki>Number.EPSILON?fs>Number.EPSILON&&(Xt=!0):ki<-Number.EPSILON?fs<-Number.EPSILON&&(Xt=!0):Math.sign(Wi)===Math.sign(gs)&&(Xt=!0),Xt?(Kr=-Wi,ai=ki,Fi=Math.sqrt(oo)):(Kr=ki,ai=Wi,Fi=Math.sqrt(oo/2))}return new G(Kr/Fi,ai/Fi)}for(var Ti=[],Rn=0,Cr=Fe.length,Tn=Cr-1,Ge=Rn+1;Rn<Cr;Rn++,Tn++,Ge++)Tn===Cr&&(Tn=0),Ge===Cr&&(Ge=0),Ti[Rn]=ss(Fe[Rn],Fe[Tn],Fe[Ge]);var lr,mr,xr=[],or=Ti.concat();for(Ft=0,He=ke.length;Ft<He;Ft++){for(lr=[],Tn=(Cr=(Yt=ke[Ft]).length)-1,Ge=1+(Rn=0);Rn<Cr;Rn++,Tn++,Ge++)Tn===Cr&&(Tn=0),Ge===Cr&&(Ge=0),lr[Rn]=ss(Yt[Rn],Yt[Tn],Yt[Ge]);xr.push(lr),or=or.concat(lr)}for($e=0;$e<ot;$e++){for(Ue=$e/ot,Xn=tt*Math.cos(Ue*Math.PI/2),ln=rt*Math.sin(Ue*Math.PI/2),Rn=0,Cr=Fe.length;Rn<Cr;Rn++)Qr((Un=gn(Fe[Rn],Ti[Rn],ln)).x,Un.y,-Xn);for(Ft=0,He=ke.length;Ft<He;Ft++)for(lr=xr[Ft],Rn=0,Cr=(Yt=ke[Ft]).length;Rn<Cr;
vendor: 4,160 bytes, line 1
1Rn++)Qr((Un=gn(Yt[Rn],lr[Rn],ln)).x,Un.y,-Xn)}for(ln=rt,Rn=0;Rn<Lr;Rn++)Un=F?gn(_e[Rn],or[Rn],ln):_e[Rn],xe?(Bt.copy(Pt.normals[0]).multiplyScalar(Un.x),se.copy(Pt.binormals[0]).multiplyScalar(Un.y),Ct.copy(Et[0]).add(Bt).add(se),Qr(Ct.x,Ct.y,Ct.z)):Qr(Un.x,Un.y,0);for(mr=1;mr<=C;mr++)for(Rn=0;Rn<Lr;Rn++)Un=F?gn(_e[Rn],or[Rn],ln):_e[Rn],xe?(Bt.copy(Pt.normals[mr]).multiplyScalar(Un.x),se.copy(Pt.binormals[mr]).multiplyScalar(Un.y),Ct.copy(Et[mr]).add(Bt).add(se),Qr(Ct.x,Ct.y,Ct.z)):Qr(Un.x,Un.y,S/C*mr);for($e=ot-1;$e>=0;$e--){for(Ue=$e/ot,Xn=tt*Math.cos(Ue*Math.PI/2),ln=rt*Math.sin(Ue*Math.PI/2),Rn=0,Cr=Fe.length;Rn<Cr;Rn++)Qr((Un=gn(Fe[Rn],Ti[Rn],ln)).x,Un.y,S+Xn);for(Ft=0,He=ke.length;Ft<He;Ft++)for(lr=xr[Ft],Rn=0,Cr=(Yt=ke[Ft]).length;Rn<Cr;Rn++)Un=gn(Yt[Rn],lr[Rn],ln),xe?Qr(Un.x,Un.y+Et[C-1].y,Et[C-1].x+Xn):Qr(Un.x,Un.y,S+Xn)}function hi(pr,kr){var ri,Kr;for(Rn=pr.length;--Rn>=0;){ri=Rn,(Kr=Rn-1)<0&&(Kr=pr.length-1);var ai=0,Fi=C+2*ot;for(ai=0;ai<Fi;ai++){var ki=Lr*ai,Wi=Lr*(ai+1);Hs(kr+ri+ki,kr+Kr+ki,kr+Kr+Wi,kr+ri+Wi)}}}function Qr(pr,kr,ri){A.push(pr),A.push(kr),A.push(ri)}function ni(pr,kr,ri){Fr(pr),Fr(kr),Fr(ri);var Kr=r.length/3,ai=yt.generateTopUV(n,r,Kr-3,Kr-2,Kr-1);mi(ai[0]),mi(ai[1]),mi(ai[2])}function Hs(pr,kr,ri,Kr){Fr(pr),Fr(kr),Fr(Kr),Fr(kr),Fr(ri),Fr(Kr);var ai=r.length/3,Fi=yt.generateSideWallUV(n,r,ai-6,ai-3,ai-2,ai-1);mi(Fi[0]),mi(Fi[1]),mi(Fi[3]),mi(Fi[1]),mi(Fi[2]),mi(Fi[3])}function Fr(pr){r.push(A[3*pr+0]),r.push(A[3*pr+1]),r.push(A[3*pr+2])}function mi(pr){i.push(pr.x),i.push(pr.y)}(function(){var kr=r.length/3;if(F){var ri=0,Kr=Lr*ri;for(Rn=0;Rn<bi;Rn++)ni((Jn=Ne[Rn])[2]+Kr,Jn[1]+Kr,Jn[0]+Kr);for(Kr=Lr*(ri=C+2*ot),Rn=0;Rn<bi;Rn++)ni((Jn=Ne[Rn])[0]+Kr,Jn[1]+Kr,Jn[2]+Kr)}else{for(Rn=0;Rn<bi;Rn++)ni((Jn=Ne[Rn])[2],Jn[1],Jn[0]);for(Rn=0;Rn<bi;Rn++)ni((Jn=Ne[Rn])[0]+Lr*C,Jn[1]+Lr*C,Jn[2]+Lr*C)}n.addGroup(kr,r.length/3-kr,0)})(),function(){var kr=r.length/3,ri=0;for(hi(Fe,ri),ri+=Fe.length,Ft=0,He=ke.length;Ft<He;Ft++)hi(Yt=ke[Ft],ri),ri+=Yt.length;n.addGroup(kr,r.length/3-kr,1)}()}this.addAttribute("position",new Lt(r,3)),this.addAttribute("uv",new Lt(i,2)),this.computeVertexNormals()}(Ci.prototype=Object.create(be.prototype)).constructor=Ci,Ci.prototype.toJSON=function(){var t=be.prototype.toJSON.call(this);return yi(this.parameters.shapes,this.parameters.options,t)},(Gr.prototype=Object.create(Te.prototype)).constructor=Gr,Gr.prototype.toJSON=function(){var t=Te.prototype.toJSON.call(this);return yi(this.parameters.shapes,this.parameters.options,t)};var Yr={generateTopUV:function(t,e,n,r,i){var o=e[3*r],c=e[3*r+1],h=e[3*i],f=e[3*i+1];return[new G(e[3*n],e[3*n+1]),new G(o,c),new G(h,f)]},generateSideWallUV:function(t,e,n,r,i,o){var c=e[3*n],h=e[3*n+1],f=e[3*n+2],A=e[3*r],E=e[3*r+1],C=e[3*r+2],S=e[3*i],F=e[3*i+1],tt=e[3*i+2],rt=e[3*o],ot=e[3*o+1],St=e[3*o+2];return Math.abs(h-E)<.01?[new G(c,1-f),new G(A,1-C),new G(S,1-tt),new G(rt,1-St)]:[new G(h,1-f),new G(E,1-C),new G(F,1-tt),new G(ot,1-St)]}};function yi(t,e,n){if(n.shapes=[],Array.isArray(t))for(var r=0,i=t.length;r<i;r++)n.shapes.push(t[r].uuid);else n.shapes.push(t.uuid);return void 0!==e.extrudePath&&(n.options.extrudePath=e.extrudePath.toJSON()),n}function qr(t,e){be.call(this),this.type="TextGeometry",this.parameters={text:t,parameters:e},this.fromBufferGeometry(new Pr(t,e)),this.mergeVertices()}function Pr(t,e){var n=(e=e||{}).font;if(!n||!n.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),new be;var r=n.generateShapes(t,e.size);e.depth=void 0!==e.height?e.height:50,void 0===e.bevelThickness&&(e.bevelThickness=10),void 0===e.bevelSize&&(e.bevelSize=8),void 0===e.bevelEnabled&&(e.bevelEnabled=!1),Gr.call(this,r,e),this.type="TextBufferGeometry"}function Jr(t,e,n,r,i,o,c){be.call(this),this.type="SphereGeometry",this.parameters={radius:t,widthSegments:e,heightSegments:n,phiStart:r,phiLength:i,thetaStart:o,thetaLength:c},this.fromBufferGeometry(new Ai(t,e,n,r,i,o,c)),this.mergeVertices()}function Ai(t,e,n,r,i,o,c){Te.call(this),this.type="SphereBufferGeometry",this.parameters={radius:t,widthSegments:e,heightSegments:n,phiStart:r,phiLength:i,thetaStart:
1o,thetaLength:c},t=t||1,e=Math.max(3,Math.floor(e)||8),n=Math.max(2,Math.floor(n)||6),r=void 0!==r?r:0,i=void 0!==i?i:2*Math.PI;var h,f,A=(o=void 0!==o?o:0)+(c=void 0!==c?c:Math.PI),E=0,C=[],S=new W,F=new W,tt=[],rt=[],ot=[],St=[];for(f=0;f<=n;f++){var yt=[],Et=f/n;for(h=0;h<=e;h++){var Pt=h/e;S.x=-t*Math.cos(r+Pt*i)*Math.sin(o+Et*c),S.y=t*Math.cos(o+Et*c),S.z=t*Math.sin(r+Pt*i)*Math.sin(o+Et*c),rt.push(S.x,S.y,S.z),F.set(S.x,S.y,S.z).normalize(),ot.push(F.x,F.y,F.z),St.push(Pt,1-Et),yt.push(E++)}C.push(yt)}for(f=0;f<n;f++)for(h=0;h<e;h++){var se=C[f][h],Bt=C[f+1][h],Ct=C[f+1][h+1];(0!==f||o>0)&&tt.push(C[f][h+1],se,Ct),(f!==n-1||A<Math.PI)&&tt.push(se,Bt,Ct)}this.setIndex(tt),this.addAttribute("position",new Lt(rt,3)),this.addAttribute("normal",new Lt(ot,3)),this.addAttribute("uv",new Lt(St,2))}function Ss(t,e,n,r,i,o){be.call(this),this.type="RingGeometry",this.parameters={innerRadius:t,outerRadius:e,thetaSegments:n,phiSegments:r,thetaStart:i,thetaLength:o},this.fromBufferGeometry(new cs(t,e,n,r,i,o)),this.mergeVertices()}function cs(t,e,n,r,i,o){Te.call(this),this.type="RingBufferGeometry",this.parameters={innerRadius:t,outerRadius:e,thetaSegments:n,phiSegments:r,thetaStart:i,thetaLength:o},t=t||.5,e=e||1,i=void 0!==i?i:0,o=void 0!==o?o:2*Math.PI,n=void 0!==n?Math.max(3,n):8;var c,h,f,A=[],E=[],C=[],S=[],F=t,tt=(e-t)/(r=void 0!==r?Math.max(1,r):1),rt=new W,ot=new G;for(h=0;h<=r;h++){for(f=0;f<=n;f++)c=i+f/n*o,rt.x=F*Math.cos(c),rt.y=F*Math.sin(c),E.push(rt.x,rt.y,rt.z),C.push(0,0,1),ot.x=(rt.x/e+1)/2,ot.y=(rt.y/e+1)/2,S.push(ot.x,ot.y);F+=tt}for(h=0;h<r;h++){var St=h*(n+1);for(f=0;f<n;f++){var yt=(c=f+St)+n+1,Et=c+n+2,Pt=c+1;A.push(c,yt,Pt),A.push(yt,Et,Pt)}}this.setIndex(A),this.addAttribute("position",new Lt(E,3)),this.addAttribute("normal",new Lt(C,3)),this.addAttribute("uv",new Lt(S,2))}function Uo(t,e,n,r){be.call(this),this.type="LatheGeometry",this.parameters={points:t,segments:e,phiStart:n,phiLength:r},this.fromBufferGeometry(new Qs(t,e,n,r)),this.mergeVertices()}function Qs(t,e,n,r){Te.call(this),this.type="LatheBufferGeometry",this.parameters={points:t,segments:e,phiStart:n,phiLength:r},e=Math.floor(e)||12,n=n||0,r=r||2*Math.PI,r=U.clamp(r,0,2*Math.PI);var i,o,c,h=[],f=[],A=[],E=1/e,C=new W,S=new G;for(o=0;o<=e;o++){var F=n+o*E*r,tt=Math.sin(F),rt=Math.cos(F);for(c=0;c<=t.length-1;c++)C.x=t[c].x*tt,C.y=t[c].y,C.z=t[c].x*rt,f.push(C.x,C.y,C.z),S.x=o/e,S.y=c/(t.length-1),A.push(S.x,S.y)}for(o=0;o<e;o++)for(c=0;c<t.length-1;c++){var ot=(i=c+o*t.length)+t.length,St=i+t.length+1,yt=i+1;h.push(i,ot,yt),h.push(ot,St,yt)}if(this.setIndex(h),this.addAttribute("position",new Lt(f,3)),this.addAttribute("uv",new Lt(A,2)),this.computeVertexNormals(),r===2*Math.PI){var Et=this.attributes.normal.array,Pt=new W,se=new W,Bt=new W;for(i=e*t.length*3,o=0,c=0;o<t.length;o++,c+=3)Pt.x=Et[c+0],Pt.y=Et[c+1],Pt.z=Et[c+2],se.x=Et[i+c+0],se.y=Et[i+c+1],se.z=Et[i+c+2],Bt.addVectors(Pt,se).normalize(),Et[c+0]=Et[i+c+0]=Bt.x,Et[c+1]=Et[i+c+1]=Bt.y,Et[c+2]=Et[i+c+2]=Bt.z}}function bo(t,e){be.call(this),this.type="ShapeGeometry","object"==typeof e&&(console.warn("THREE.ShapeGeometry: Options parameter has been removed."),e=e.curveSegments),this.parameters={shapes:t,curveSegments:e},this.fromBufferGeometry(new ua(t,e)),this.mergeVertices()}function ua(t,e){Te.call(this),this.type="ShapeBufferGeometry",this.parameters={shapes:t,curveSegments:e},e=e||12;var n=[],r=[],i=[],o=[],c=0,h=0;if(!1===Array.isArray(t))A(t);else for(var f=0;f<t.length;f++)A(t[f]),this.addGroup(c,h,f),c+=h,h=0;function A(E){var C,S,F,tt=r.length/3,rt=E.extractPoints(e),ot=rt.shape,St=rt.holes;if(!1===Ur.isClockWise(ot))for(ot=ot.reverse(),C=0,S=St.length;C<S;C++)!0===Ur.isClockWise(F=St[C])&&(St[C]=F.reverse());var yt=Ur.triangulateShape(ot,St);for(C=0,S=St.length;C<S;C++)ot=ot.concat(F=St[C]);for(C=0,S=ot.length;C<S;C++){var Et=ot[C];r.push(Et.x,Et.y,0),i.push(0,0,1),o.push(Et.x,Et.y)}for(C=0,S=yt.length;C<S;C++){var Pt=yt[C];n.push(Pt[0]+tt,Pt[1]+tt,Pt[2]+tt),h+=3}}this.setIndex(n),this.addAttribute("position",new Lt(r,3)),this.addAttribute("normal",new Lt(i,3)),this.addAttribute("uv",new Lt(o,2))}function ll(t,e){if(e.shapes=[],Array.isArray(t))for(var n=0,r=t.length;n<r;n++)e.shapes.push(t[n].uuid);else e.shapes.push(t.uuid);return e}function wo(t,e){Te.call(this),this.type="EdgesGeometry",this.parameters={thresholdAngle:e},e=void 0!==e?e:1;var n,r,i,o,c=[],h=Math.cos(U.DEG2RAD*e),f=[0,0],A={},E=["a","b","c"];t.isBufferGeometry?(o=new be).fromBufferGeometry(t):o=t.clone(),o.mergeVertices(),o.computeFaceNormals();for(var C=o.vertices,S=o.faces,F=0,tt=S.length;F<tt;F++)for(var rt=S[F],ot=0;ot<3;ot++)n=rt[E[ot]],r=rt[E[(ot+1)%3]],f[0]=Math.min(n,r),f[1]=Math.max(n,r),void 0===A[i=f[0]+","+f[1]]?A[i]={index1:f[0],index2:f[1],face1:F,face2:void 0}:A[i].face2=F;for(i in A){var St=A[i];if(void 0===St.face2||S[St.face1].normal.dot(S[St.face2].normal)<=h){var yt=C[St.index1];c.push(yt.x,yt.y,yt.z),c.push((yt=C[St.index2]).x,yt.y,yt.z)}}this.addAttribute("position",new Lt(c,3))}function Go(t,e,n,r,i,o,c,h){be.call(this),this.type="CylinderGeometry",this.parameters={radiu
vendor: 1,808 bytes, line 1
1sTop:t,radiusBottom:e,height:n,radialSegments:r,heightSegments:i,openEnded:o,thetaStart:c,thetaLength:h},this.fromBufferGeometry(new qs(t,e,n,r,i,o,c,h)),this.mergeVertices()}function qs(t,e,n,r,i,o,c,h){Te.call(this),this.type="CylinderBufferGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:n,radialSegments:r,heightSegments:i,openEnded:o,thetaStart:c,thetaLength:h};var f=this;t=void 0!==t?t:1,e=void 0!==e?e:1,n=n||1,r=Math.floor(r)||8,i=Math.floor(i)||1,o=void 0!==o&&o,c=void 0!==c?c:0,h=void 0!==h?h:2*Math.PI;var A=[],E=[],C=[],S=[],F=0,tt=[],rt=n/2,ot=0;function St(yt){var Et,Pt,se,Bt=new G,Ct=new W,xe=0,Yt=!0===yt?t:e,Ft=!0===yt?1:-1;for(Pt=F,Et=1;Et<=r;Et++)E.push(0,rt*Ft,0),C.push(0,Ft,0),S.push(.5,.5),F++;for(se=F,Et=0;Et<=r;Et++){var He=Et/r*h+c,Xe=Math.cos(He),_e=Math.sin(He);Ct.x=Yt*_e,Ct.y=rt*Ft,Ct.z=Yt*Xe,E.push(Ct.x,Ct.y,Ct.z),C.push(0,Ft,0),Bt.x=.5*Xe+.5,Bt.y=.5*_e*Ft+.5,S.push(Bt.x,Bt.y),F++}for(Et=0;Et<r;Et++){var ke=Pt+Et,Ne=se+Et;!0===yt?A.push(Ne,Ne+1,ke):A.push(Ne+1,Ne,ke),xe+=3}f.addGroup(ot,xe,!0===yt?1:2),ot+=xe}(function(){var Et,Pt,se=new W,Bt=new W,Ct=0,xe=(e-t)/n;for(Pt=0;Pt<=i;Pt++){var Yt=[],Ft=Pt/i,He=Ft*(e-t)+t;for(Et=0;Et<=r;Et++){var Xe=Et/r,_e=Xe*h+c,ke=Math.sin(_e),Ne=Math.cos(_e);Bt.x=He*ke,Bt.y=-Ft*n+rt,Bt.z=He*Ne,E.push(Bt.x,Bt.y,Bt.z),se.set(ke,xe,Ne).normalize(),C.push(se.x,se.y,se.z),S.push(Xe,1-Ft),Yt.push(F++)}tt.push(Yt)}for(Et=0;Et<r;Et++)for(Pt=0;Pt<i;Pt++){var Fe=tt[Pt+1][Et],gn=tt[Pt+1][Et+1],$e=tt[Pt][Et+1];A.push(tt[Pt][Et],Fe,$e),A.push(Fe,gn,$e),Ct+=6}f.addGroup(ot,Ct,0),ot+=Ct})(),!1===o&&(t>0&&St(!0),e>0&&St(!1)),this.setIndex(A),this.addAttribute("position",new Lt(E,3)),this.addAttribute("normal",new Lt(C,3)),this.addAttribute("uv",new Lt(S,2))}function ha(t,e,n,r,i,o,c){Go.call(this,0,t,e,n,r,i,o,c),this.type="C
1oneGeometry",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:r,openEnded:i,thetaStart:o,thetaLength:c}}function Eo(t,e,n,r,i,o,c){qs.call(this,0,t,e,n,r,i,o,c),this.type="ConeBufferGeometry",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:r,openEnded:i,thetaStart:o,thetaLength:c}}function cl(t,e,n,r){be.call(this),this.type="CircleGeometry",this.parameters={radius:t,segments:e,thetaStart:n,thetaLength:r},this.fromBufferGeometry(new da(t,e,n,r)),this.mergeVertices()}function da(t,e,n,r){Te.call(this),this.type="CircleBufferGeometry",this.parameters={radius:t,segments:e,thetaStart:n,thetaLength:r},t=t||1,e=void 0!==e?Math.max(3,e):8,n=void 0!==n?n:0,r=void 0!==r?r:2*Math.PI;var i,o,c=[],h=[],f=[],A=[],E=new W,C=new G;for(h.push(0,0,0),f.push(0,0,1),A.push(.5,.5),o=0,i=3;o<=e;o++,i+=3){var S=n+o/e*r;E.x=t*Math.cos(S),E.y=t*Math.sin(S),h.push(E.x,E.y,E.z),f.push(0,0,1),C.x=(h[i]/t+1)/2,C.y=(h[i+1]/t+1)/2,A.push(C.x,C.y)}for(i=1;i<=e;i++)c.push(i,i+1,0);this.setIndex(c),this.addAttribute("position",new Lt(h,3)),this.addAttribute("normal",new Lt(f,3)),this.addAttribute("uv",new Lt(A,2))}(qr.prototype=Object.create(be.prototype)).constructor=qr,(Pr.prototype=Object.create(Gr.prototype)).constructor=Pr,(Jr.prototype=Object.create(be.prototype)).constructor=Jr,(Ai.prototype=Object.create(Te.prototype)).constructor=Ai,(Ss.prototype=Object.create(be.prototype)).constructor=Ss,(cs.prototype=Object.create(Te.prototype)).constructor=cs,(Uo.prototype=Object.create(be.prototype)).constructor=Uo,(Qs.prototype=Object.create(Te.prototype)).constructor=Qs,(bo.prototype=Object.create(be.prototype)).constructor=bo,bo.prototype.toJSON=function(){var t=be.prototype.toJSON.call(this);return ll(this.parameters.shapes,t)},(ua.prototype=Object.create(Te.prototype)).constructor=ua,ua.prototype.toJSON=function(){var t=Te.prototype.toJSON.call(this);return ll(this.parameters.shapes,t)},(wo.prototype=Object.create(Te.prototype)).constructor=wo,(Go.prototype=Object.create(be.prototype)).constructor=Go,(qs.prototype=Object.create(Te.prototype)).constructor=qs,(ha.prototype=Object.create(Go.prototype)).constructor=ha,(Eo.prototype=Object.create(qs.prototype)).constructor=Eo,(cl.prototype=Object.create(be.prototype)).constructor=cl,(da.prototype=Object.create(Te.prototype)).constructor=da;var Zi=Object.freeze({WireframeGeometry:Rs,ParametricGeometry:mo,ParametricBufferGeometry:go,TetrahedronGeometry:Ts,TetrahedronBufferGeometry:vo,OctahedronGeometry:la,OctahedronBufferGeometry:yo,IcosahedronGeometry:ca,IcosahedronBufferGeometry:_o,DodecahedronGeometry:no,DodecahedronBufferGeometry:qi,PolyhedronGeometry:Vo,PolyhedronBufferGeometry:Xi,TubeGeometry:Ms,TubeBufferGeometry:Ws,TorusKnotGeometry:Xo,TorusKnotBufferGeometry:Ao,TorusGeometry:xo,TorusBufferGeometry:st,TextGeometry:qr,TextBufferGeometry:Pr,SphereGeometry:Jr,SphereBufferGeometry:Ai,RingGeometry:Ss,RingBufferGeometry:cs,PlaneGeometry:Pn,PlaneBufferGeometry:Mn,LatheGeometry:Uo,LatheBufferGeometry:Qs,ShapeGeometry:bo,ShapeBufferGeometry:ua,ExtrudeGeometry:Ci,ExtrudeBufferGeometry:Gr,EdgesGeometry:wo,ConeGeometry:ha,ConeBufferGeometry:Eo,CylinderGeometry:Go,CylinderBufferGeometry:qs,CircleGeometry:cl,CircleBufferGeometry:da,BoxGeometry:nn,BoxBufferGeometry:pn});function Wo(t){Pe.call(this),this.type="ShadowMaterial",this.color=new lt(0),this.transparent=!0,this.setValues(t)}function pa(t){zt.call(this,t),this.type="RawShaderMaterial"}function ro(t){Pe.call(this),this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new lt(16777215),this.roughness=.5,this.metalness=.5,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new lt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new G(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function Qo(t){ro.call(this),this.defines={PHYSICAL:""},this.type="MeshPhysicalMaterial",this.reflectivity=.5,this.clearCoat=0,this.clearCoatRoughness=0,this.setValues(t)}function Zs(t){Pe.call(this),this.type="MeshPhongMaterial",this.color=new lt(16777215),this.specular=new lt(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new lt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new G(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function fa(t){Zs.call(this),this.defines={TOON:""},this.type="MeshToonMaterial",this.gradientMap=null,this.setValues(t)}function Yi(t){Pe.call(this),this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new G(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function ma(t){Pe.call(this),this.type="MeshLambertMaterial",this.color=new lt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new lt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function ga(t){if(Pe.call(this),this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new lt(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new G(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.lights=!1,this.setValues(t),null===this.matcap){var e=document.createElement("canvas");e.width=1,e.height=1;var n=e.getContext("2d");
1n.fillStyle="#fff",n.fillRect(0,0,1,1),this.matcap=new THREE.CanvasTexture(e)}}function qo(t){Wr.call(this),this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}(Wo.prototype=Object.create(Pe.prototype)).constructor=Wo,Wo.prototype.isShadowMaterial=!0,Wo.prototype.copy=function(t){return Pe.prototype.copy.call(this,t),this.color.copy(t.color),this},(pa.prototype=Object.create(zt.prototype)).constructor=pa,pa.prototype.isRawShaderMaterial=!0,(ro.prototype=Object.create(Pe.prototype)).constructor=ro,ro.prototype.isMeshStandardMaterial=!0,ro.prototype.copy=function(t){return Pe.prototype.copy.call(this,t),this.defines={STANDARD:""},this.color.copy(t.color),this.roughness=t.roughness,this.metalness=t.metalness,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.roughnessMap=t.roughnessMap,this.metalnessMap=t.metalnessMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapIntensity=t.envMapIntensity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},(Qo.prototype=Object.create(ro.prototype)).constructor=Qo,Qo.prototype.isMeshPhysicalMaterial=!0,Qo.prototype.copy=function(t){return ro.prototype.copy.call(this,t),this.defines={PHYSICAL:""},this.reflectivity=t.reflectivity,this.clearCoat=t.clearCoat,this.clearCoatRoughness=t.clearCoatRoughness,this},(Zs.prototype=Object.create(Pe.prototype)).constructor=Zs,Zs.prototype.isMeshPhongMaterial=!0,Zs.prototype.copy=function(t){return Pe.prototype.copy.call(this,t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},(fa.prototype=Object.create(Zs.prototype)).constructor=fa,fa.prototype.isMeshToonMaterial=!0,fa.prototype.copy=function(t){return Zs.prototype.copy.call(this,t),this.gradientMap=t.gradientMap,this},(Yi.prototype=Object.create(Pe.prototype)).constructor=Yi,Yi.prototype.isMeshNormalMaterial=!0,Yi.prototype.copy=function(t){return Pe.prototype.copy.call(this,t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},(ma.prototype=Object.create(Pe.prototype)).constructor=ma,ma.prototype.isMeshLambertMaterial=!0,ma.prototype.copy=function(t){return Pe.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},(ga.prototype=Object.create(Pe.prototype)).constructor=ga,ga.prototype.isMeshMat
vendor: 8,331 bytes, line 1
1capMaterial=!0,ga.prototype.copy=function(t){return Pe.prototype.copy.call(this,t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},(qo.prototype=Object.create(Wr.prototype)).constructor=qo,qo.prototype.isLineDashedMaterial=!0,qo.prototype.copy=function(t){return Wr.prototype.copy.call(this,t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this};var ac=Object.freeze({ShadowMaterial:Wo,SpriteMaterial:Xs,RawShaderMaterial:pa,ShaderMaterial:zt,PointsMaterial:Cs,MeshPhysicalMaterial:Qo,MeshStandardMaterial:ro,MeshPhongMaterial:Zs,MeshToonMaterial:fa,MeshNormalMaterial:Yi,MeshLambertMaterial:ma,MeshDepthMaterial:Fs,MeshDistanceMaterial:ls,MeshBasicMaterial:le,MeshMatcapMaterial:ga,LineDashedMaterial:qo,LineBasicMaterial:Wr,Material:Pe}),ns={enabled:!1,files:{},add:function(t,e){!1!==this.enabled&&(this.files[t]=e)},get:function(t){if(!1!==this.enabled)return this.files[t]},remove:function(t){delete this.files[t]},clear:function(){this.files={}}};function Rl(t,e,n){var r=this,i=!1,o=0,c=0,h=void 0;this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=n,this.itemStart=function(f){c++,!1===i&&void 0!==r.onStart&&r.onStart(f,o,c),i=!0},this.itemEnd=function(f){o++,void 0!==r.onProgress&&r.onProgress(f,o,c),o===c&&(i=!1,void 0!==r.onLoad&&r.onLoad())},this.itemError=function(f){void 0!==r.onError&&r.onError(f)},this.resolveURL=function(f){return h?h(f):f},this.setURLModifier=function(f){return h=f,this}}var rs=new Rl,us={};function Ui(t){this.manager=void 0!==t?t:rs}function ul(t){this.manager=void 0!==t?t:rs,this._parser=null}function Co(t){this.manager=void 0!==t?t:rs,this._parser=null}function Zo(t){this.manager=void 0!==t?t:rs}function Ia(t){this.manager=void 0!==t?t:rs}function Ba(t){this.manager=void 0!==t?t:rs}function tr(){this.type="Curve",this.arcLengthDivisions=200}function is(t,e,n,r,i,o,c,h){tr.call(this),this.type="EllipseCurve",this.aX=t||0,this.aY=e||0,this.xRadius=n||1,this.yRadius=r||1,this.aStartAngle=i||0,this.aEndAngle=o||2*Math.PI,this.aClockwise=c||!1,this.aRotation=h||0}function Yo(t,e,n,r,i,o){is.call(this,t,e,n,n,r,i,o),this.type="ArcCurve"}function va(){var t=0,e=0,n=0,r=0;function i(o,c,h,f){t=o,e=h,n=-3*o+3*c-2*h-f,r=2*o-2*c+h+f}return{initCatmullRom:function(o,c,h,f,A){i(c,h,A*(h-o),A*(f-c))},initNonuniformCatmullRom:function(o,c,h,f,A,E,C){var S=(c-o)/A-(h-o)/(A+E)+(h-c)/E,F=(h-c)/E-(f-c)/(E+C)+(f-h)/C;i(c,h,S*=E,F*=E)},calc:function(o){var c=o*o;return t+e*o+n*c+r*(c*o)}}}Object.assign(Ui.prototype,{load:function(t,e,n,r){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);var i=this,o=ns.get(t);if(void 0!==o)return i.manager.itemStart(t),setTimeout(function(){e&&e(o),i.manager.itemEnd(t)},0),o;if(void 0===us[t]){var c=t.match(/^data:(.*?)(;base64)?,(.*)$/);if(c){var h=c[1],f=!!c[2],A=c[3];A=window.decodeURIComponent(A),f&&(A=window.atob(A));try{var E,C=(this.responseType||"").toLowerCase();switch(C){case"arraybuffer":case"blob":for(var S=new Uint8Array(A.length),F=0;F<A.length;F++)S[F]=A.charCodeAt(F);E="blob"===C?new Blob([S.buffer],{type:h}):S.buffer;break;case"document":var tt=new DOMParser;E=tt.parseFromString(A,h);break;case"json":E=JSON.parse(A);break;default:E=A}window.setTimeout(function(){e&&e(E),i.manager.itemEnd(t)},0)}catch(St){window.setTimeout(function(){r&&r(St),i.manager.itemEnd(t),i.manager.itemError(t)},0)}}else{us[t]=[],us[t].push({onLoad:e,onProgress:n,onError:r});var rt=new XMLHttpRequest;for(var ot in rt.open("GET",t,!0),rt.addEventListener("load",function(St){var yt=this.response;ns.add(t,yt);var Et=us[t];if(delete us[t],200===this.status||0===this.status){0===this.status&&console.warn("THREE.FileLoader: HTTP Status 0 received.");for(var Pt=0,se=Et.length;Pt<se;Pt++)(Bt=Et[Pt]).onLoad&&Bt.onLoad(yt);i.manager.itemEnd(t)}else{for(Pt=0,se=Et.length;Pt<se;Pt++){var Bt;(Bt=Et[Pt]).onError&&Bt.onError(St)}i.manager.itemEnd(t),i.manager.itemError(t)}},!1),rt.addEventListener("progress",function(St){for(var yt=us[t],Et=0,Pt=yt.length;Et<Pt;Et++){var se=yt[Et];se.onProgress&&se.onProgress(St)}},!1),rt.addEventListener("error",function(St){var yt=us[t];delete us[t];for(var Et=0,Pt=yt.length;Et<Pt;Et++){var se=yt[Et];se.onError&&se.onError(St)}i.manager.itemEnd(t),i.manager.itemError(t)},!1),rt.addEventListener("abort",function(St){var yt=us[t];delete us[t];for(var Et=0,Pt=yt.length;Et<Pt;Et++){var se=yt[Et];se.onError&&se.onError(St)}i.manager.itemEnd(t),i.manager.itemError(t)},!1),void 0!==this.responseType&&(rt.responseType=this.responseType),void 0!==this.withCredentials&&(rt.withCredentials=this.withCredentials),rt.overrideMimeType&&rt.overrideMimeType(void 0!==this.mimeType?this.mimeType:"text/plain"),this.requestHeader)rt.setRequestHeader(ot,this.requestHeader[ot]);rt.send(null)}return i.manager.itemStart(t),rt}us[t].push({onLoad:e,onProgress:n,onError:r})},setPath:function(t){return this.path=t,this},setResponseType:function(t){return this.responseType=t,this},setWithCredentials:function(t){return this.withCredentials=t,this},setMimeType:function(t){return this.mimeType=t,this},setRequestHeader:function(t){return this.requestHeader=t,this}}),Object.assign(ul.prototype,{load:function(t,e,n,r){var i=this,o=[],c=new jo;c.image=o;var h=new Ui(this.manager);function f(S){h.load(t[S],function(F){var tt=i._parser(F,!0);o[S]={width:tt.width,height:tt.height,format:tt.format,mipmaps:tt.mipmaps},6===(A+=1)&&(1===tt.mipmapCount&&(c.minFilter=H),c.format=tt.format,c.needsUpdate=!0,e&&e(c))},n,r)}if(h.setPath(this.path),h.setResponseType("arraybuffer"),Array.isArray(t))for(var A=0,E=0,C=t.length;E<C;++E)f(E);else h.load(t,function(S){var F=i._parser(S,!0);if(F.isCubemap)for(var tt=F.mipmaps.length/F.mipmapCount,rt=0;rt<tt;rt++){o[rt]={mipmaps:[]};for(var ot=0;ot<F.mipmapCount;ot++)o[rt].mipmaps.push(F.mipmaps[rt*F.mipmapCount+ot]),o[rt].format=F.format,o[rt].width=F.width,o[rt].height=F.height}else c.image.width=F.width,c.image.height=F.height,c.mipmaps=F.mipmaps;1===F.mipmapCount&&(c.minFilter=H),c.format=F.format,c.needsUpdate=!0,e&&e(c)},n,r);return c},setPath:function(t){return this.path=t,this}}),Object.assign(Co.prototype,{load:function(t,e,n,r){var i=this,o=new Me,c=new Ui(this.manager);return c.setResponseType("arraybuffer"),c.load(t,function(h){var f=i._parser(h);!f||(void 0!==f.image?o.image=f.image:void 0!==f.data&&(o.image.width=f.width,o.image.height=f.height,o.image.data=f.data),o.wrapS=void 0!==f.wrapS?f.wrapS:B,o.wrapT=void 0!==f.wrapT?f.wrapT:B,o.magFilter=void 0!==f.magFilter?f.magFilter:H,o.minFilter=void 0!==f.minFilter?f.minFilter:Y,o.anisotropy=void 0!==f.anisotropy?f.anisotropy:1,void 0!==f.format&&(o.format=f.format),void 0!==f.type&&(o.type=f.type),void 0!==f.mipmaps&&(o.mipmaps=f.mipmaps),1===f.mipmapCount&&(o.minFilter=H),o.needsUpdate=!0,e&&e(o,f))},n,r),o}}),Object.assign(Zo.prototype,{crossOrigin:"anonymous",load:function(t,e,n,r){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);var i=this,o=ns.get(t);if(void 0!==o)return i.manager.itemStart(t),setTimeout(function(){e&&e(o),i.manager.itemEnd(t)},0),o;var c=document.createElementNS("http://www.w3.org/1999/xhtml","img");function h(){c.removeEventListener("load",h,!1),c.removeEventListener("error",f,!1),ns.add(t,this),e&&e(this),i.manager.itemEnd(t)}function f(A){c.removeEventListener("load",h,!1),c.removeEventListener("error",f,!1),r&&r(A),i.manager.itemEnd(t),i.manager.itemError(t)}return c.addEventListener("load",h,!1),c.addEventListener("error",f,!1),"data:"!==t.substr(0,5)&&void 0!==this.crossOrigin&&(c.crossOrigin=this.crossOrigin),i.manager.itemStart(t),c.src=t,c},setCrossOrigin:function(t){return this.crossOrigin=t,this},setPath:function(t){return this.path=t,this}}),Object.assign(Ia.prototype,{crossOrigin:"anonymous",load:function(t,e,n,r){var i=new sn,o=new Zo(this.manager);o.setCrossOrigin(this.crossOrigin),o.setPath(this.path);var c=0;
vendor: 5,013 bytes, line 1
1function h(A){o.load(t[A],function(E){i.images[A]=E,6==++c&&(i.needsUpdate=!0,e&&e(i))},void 0,r)}for(var f=0;f<t.length;++f)h(f);return i},setCrossOrigin:function(t){return this.crossOrigin=t,this},setPath:function(t){return this.path=t,this}}),Object.assign(Ba.prototype,{crossOrigin:"anonymous",load:function(t,e,n,r){var i=new ge,o=new Zo(this.manager);return o.setCrossOrigin(this.crossOrigin),o.setPath(this.path),o.load(t,function(c){i.image=c;var h=t.search(/\.jpe?g$/i)>0||0===t.search(/^data\:image\/jpeg/);i.format=h?at:J,i.needsUpdate=!0,void 0!==e&&e(i)},n,r),i},setCrossOrigin:function(t){return this.crossOrigin=t,this},setPath:function(t){return this.path=t,this}}),Object.assign(tr.prototype,{getPoint:function(){return console.warn("THREE.Curve: .getPoint() not implemented."),null},getPointAt:function(t,e){var n=this.getUtoTmapping(t);return this.getPoint(n,e)},getPoints:function(t){void 0===t&&(t=5);for(var e=[],n=0;n<=t;n++)e.push(this.getPoint(n/t));return e},getSpacedPoints:function(t){void 0===t&&(t=5);for(var e=[],n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e},getLength:function(){var t=this.getLengths();return t[t.length-1]},getLengths:function(t){if(void 0===t&&(t=this.arcLengthDivisions),this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var e,n,r=[],i=this.getPoint(0),o=0;for(r.push(0),n=1;n<=t;n++)o+=(e=this.getPoint(n/t)).distanceTo(i),r.push(o),i=e;return this.cacheArcLengths=r,r},updateArcLengths:function(){this.needsUpdate=!0,this.getLengths()},getUtoTmapping:function(t,e){var n,r=this.getLengths(),i=0,o=r.length;n=e||t*r[o-1];for(var c,h=0,f=o-1;h<=f;)if((c=r[i=Math.floor(h+(f-h)/2)]-n)<0)h=i+1;else{if(!(c>0)){f=i;break}f=i-1}if(r[i=f]===n)return i/(o-1);var A=r[i];return(i+(n-A)/(r[i+1]-A))/(o-1)},getTangent:function(t){var e=1e-4,n=t-e,r=t+e;n<0&&(n=0),r>1&&(r=1);var i=this.getPoint(n);return this.getPoint(r).clone().sub(i).normalize()},getTangentAt:function(t){var e=this.getUtoTmapping(t);return this.getTangent(e)},computeFrenetFrames:function(t,e){var n,r,i=new W,o=[],c=[],h=[],f=new W,A=new dt;for(n=0;n<=t;n++)o[n]=this.getTangentAt(n/t),o[n].normalize();c[0]=new W,h[0]=new W;var E=Number.MAX_VALUE,C=Math.abs(o[0].x),S=Math.abs(o[0].y),F=Math.abs(o[0].z);for(C<=E&&(E=C,i.set(1,0,0)),S<=E&&(E=S,i.set(0,1,0)),F<=E&&i.set(0,0,1),f.crossVectors(o[0],i).normalize(),c[0].crossVectors(o[0],f),h[0].crossVectors(o[0],c[0]),n=1;n<=t;n++)c[n]=c[n-1].clone(),h[n]=h[n-1].clone(),f.crossVectors(o[n-1],o[n]),f.length()>Number.EPSILON&&(f.normalize(),r=Math.acos(U.clamp(o[n-1].dot(o[n]),-1,1)),c[n].applyMatrix4(A.makeRotationAxis(f,r))),h[n].crossVectors(o[n],c[n]);if(!0===e)for(r=Math.acos(U.clamp(c[0].dot(c[t]),-1,1)),r/=t,o[0].dot(f.crossVectors(c[0],c[t]))>0&&(r=-r),n=1;n<=t;n++)c[n].applyMatrix4(A.makeRotationAxis(o[n],r*n)),h[n].crossVectors(o[n],c[n]);return{tangents:o,normals:c,binormals:h}},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.arcLengthDivisions=t.arcLengthDivisions,this},toJSON:function(){var t={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t},fromJSON:function(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}),(is.prototype=Object.create(tr.prototype)).constructor=is,is.prototype.isEllipseCurve=!0,is.prototype.getPoint=function(t,e){for(var n=e||new G,r=2*Math.PI,i=this.aEndAngle-this.aStartAngle,o=Math.abs(i)<Number.EPSILON;i<0;)i+=r;for(;i>r;)i-=r;i<Number.EPSILON&&(i=o?0:r),!0===this.aClockwise&&!o&&(i===r?i=-r:i-=r);var c=this.aStartAngle+t*i,h=this.aX+this.xRadius*Math.cos(c),f=this.aY+this.yRadius*Math.sin(c);if(0!==this.aRotation){var A=Math.cos(this.aRotation),E=Math.sin(this.aRotation),C=h-this.aX,S=f-this.aY;h=C*A-S*E+this.aX,f=C*E+S*A+this.aY}return n.set(h,f)},is.prototype.copy=function(t){return tr.prototype.copy.call(this,t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this},is.prototype.toJSON=function(){var t=tr.prototype.toJSON.call(this);return t.aX=this.aX,t.aY=this.aY,t.xRadius=this.xRadius,t.yRadius=this.yRadius,t.aStartAngle=this.aStartAngle,t.aEndAngle=this.aEndAngle,t.aClockwise=this.aClockwise,t.aRotation=this.aRotation,t},is.prototype.fromJSON=function(t){return tr.prototype.fromJSON.call(this,t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this},(Yo.prototype=Object.create(is.prototype)).constructor=Yo,Yo.prototype.isArcCurve=!0;var To=new W,Ml=new va,hl=new va,dl=new va;function Ji(t,e,n,r){tr.call(this),this.type="CatmullRomCurve3",this.points=t||[],this.closed=e||!1,this.curveType=n||"centripetal",this.tension=r||.5}function Ll(t,e,n,r,i){var o=.5*(r-e),c=.5*(i-n),h=t*t;
1return(2*n-2*r+o+c)*(t*h)+(-3*n+3*r-2*o-c)*h+o*t+n}function Jo(t,e,n,r){return(h=1-t)*h*e+2*(1-(o=t))*o*n+function(o,c){return o*o*c}(t,r);var o,h}function ya(t,e,n,r,i){return(f=1-t)*f*f*e+function(c,h){var f=1-c;return 3*f*f*c*h}(t,n)+3*(1-(c=t))*c*c*r+function(c,h){return c*c*c*h}(t,i);var c,f}function Ls(t,e,n,r){tr.call(this),this.type="CubicBezierCurve",this.v0=t||new G,this.v1=e||new G,this.v2=n||new G,this.v3=r||new G}function Is(t,e,n,r){tr.call(this),this.type="CubicBezierCurve3",this.v0=t||new W,this.v1=e||new W,this.v2=n||new W,this.v3=r||new W}function hs(t,e){tr.call(this),this.type="LineCurve",this.v1=t||new G,this.v2=e||new G}function Bs(t,e){tr.call(this),this.type="LineCurve3",this.v1=t||new W,this.v2=e||new W}function Os(t,e,n){tr.call(this),this.type="QuadraticBezierCurve",this.v0=t||new G,this.v1=e||new G,this.v2=n||new G}function Ys(t,e,n){tr.call(this),this.type="QuadraticBezierCurve3",this.v0=t||new W,this.v1=e||new W,this.v2=n||new W}function Js(t){tr.call(this),this.type="SplineCurve",this.points=t||[]}(Ji.prototype=Object.create(tr.prototype)).constructor=Ji,Ji.prototype.isCatmullRomCurve3=!0,Ji.prototype.getPoint=function(t,e){var n,r,i,o,c=e||new W,h=this.points,f=h.length,A=(f-(this.closed?0:1))*t,E=Math.floor(A),C=A-E;if(this.closed?E+=E>0?0:(Math.floor(Math.abs(E)/f)+1)*f:0===C&&E===f-1&&(E=f-2,C=1),this.closed||E>0?n=h[(E-1)%f]:(To.subVectors(h[0],h[1]).add(h[0]),n=To),r=h[E%f],i=h[(E+1)%f],this.closed||E+2<f?o=h[(E+2)%f]:(To.subVectors(h[f-1],h[f-2]).add(h[f-1]),o=To),"centripetal"===this.curveType||"chordal"===this.curveType){var S="chordal"===this.curveType?.5:.25,F=Math.pow(n.distanceToSquared(r),S),tt=Math.pow(r.distanceToSquared(i),S),rt=Math.pow(i.distanceToSquared(o),S);tt<1e-4&&(tt=1),F<1e-4&&(F=tt),rt<1e-4&&(rt=tt),Ml.initNonuniformCatmullRom(n.x,r.x,i.x,o.x,F,tt,rt),hl.initNonuniformCatmullRom(n.y,r.y,i.y,o.y,F,tt,rt),dl.initNonuniformCatmullRom(n.z,r.z,i.z,o.z,F,tt,rt)}else"catmullrom"===this.curveType&&(Ml.initCatmullRom(n.x,r.x,i.x,o.x,this.tension),hl.initCatmullRom(n.y,r.y,i.y,o.y,this.tension),dl.initCatmullRom(n.z,r.z,i.z,o.z,this.tension));return c.set(Ml.calc(C),hl.calc(C),dl.calc(C)),c},Ji.prototype.copy=function(t){tr.prototype.copy.call(this,t),this.points=[];for(var e=0,n=t.points.length;e<n;e++)this.points.push(t.points[e].clone());return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this},Ji.prototype.toJSON=function(){var t=tr.prototype.toJSON.call(this);t.points=[];for(var e=0,n=this.points.length;e<n;e++)t.points.push(this.points[e].toArray());return t.closed=this.closed,t.curveType=this.curveType,t.tension=this.tension,t},Ji.prototype.fromJSON=function(t){tr.prototype.fromJSON.call(this,t),this.points=[];for(var e=0,n=t.points.length;e<n;e++){var r=t.points[e];this.points.push((new W).fromArray(r))}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this},(Ls.prototype=Object.create(tr.prototype)).constructor=Ls,Ls.prototype.isCubicBezierCurve=!0,Ls.prototype.getPoint=function(t,e){var n=e||new G,r=this.v0,i=this.v1,o=this.v2,c=this.v3;return n.set(ya(t,r.x,i.x,o.x,c.x),ya(t,r.y,i.y,o.y,c.y)),n},Ls.prototype.copy=function(t){return tr.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this},Ls.prototype.toJSON=function(){var t=tr.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t},Ls.prototype.fromJSON=function(t){return tr.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this},(Is.prototype=Object.create(tr.prototype)).constructor=Is,Is.prototype.isCubicBezierCurve3=!0,Is.prototype.getPoint=function(t,e){var n=e||new W,r=this.v0,i=this.v1,o=this.v2,c=this.v3;return n.set(ya(t,r.x,i.x,o.x,c.x),ya(t,r.y,i.y,o.y,c.y),ya(t,r.z,i.z,o.z,c.z)),n},Is.prototype.copy=function(t){return tr.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this},Is.prototype.toJSON=function(){var t=tr.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t},Is.prototype.fromJSON=function(t){return tr.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this},(hs.prototype=Object.create(tr.prototype)).constructor=hs,hs.prototype.isLineCurve=!0,hs.prototype.getPoint=function(t,e){var n=e||new G;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n},hs.prototype.getPointAt=function(t,e){return this.getPoint(t,e)},hs.prototype.getTangent=function(){return this.v2.clone().sub(this.v1).normalize()},hs.prototype.copy=function(t){return tr.prototype.copy.call(this,t),this.v1.copy(t.v1),this.v2.copy(t.v2),this},hs.prototype.toJSON=function(){var t=tr.prototype.toJSON.call(this);return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},hs.prototype.fromJSON=function(t){return tr.prototype.fromJSON.call(this,t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},(Bs.prototype=Object.create(tr.prototype)).constructor=Bs,Bs.prototype.isLineCurve3=!0,Bs.prototype.getPoint=function(t,e){var n=e||new W;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n},Bs.prototype.getPointAt=function(t,e){return this.getPoint(t,e)},Bs.prototype.copy=function(t){return tr.prototype.copy.call(this,t),this.v1.copy(t.v1),this.v2.copy(t.v2),this},Bs.prototype.toJSON=function(){var t=tr.prototype.toJSON.call(this);return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},Bs.prototype.fromJSON=function(t){return tr.prototype.fromJSON.call(this,t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},(Os.prototype=Object.create(tr.prototype)).constructor=Os,Os.prototype.isQuadraticBezierCurve=!0,Os.prototype.getPoint=function(t,e){var n=e||new G,r=this.v0,i=this.v1,o=this.v2;return n.set(Jo(t,r.x,i.x,o.x),Jo(t,r.y,i.y,o.y)),n},Os.prototype.copy=function(t){return tr.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this},Os.prototype.toJSON=function(){var t=tr.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},Os.prototype.fromJSON=function(t){return tr.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},(Ys.prototype=Object.create(tr.prototype)).constructor=Ys,Ys.prototype.isQuadraticBezierCurve3=!0,Ys.prototype.getPoint=function(t,e){var n=e||new W,r=this.v0,i=this.v1,o=this.v2;return n.set(Jo(t,r.x,i.x,o.x),Jo(t,r.y,i.y,o.y),Jo(t,r.z,i.z,o.z)),n},Ys.prototype.copy=function(t){return tr.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this},Ys.prototype.toJSON=function(){var t=tr.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},Ys.prototype.fromJSON=function(t){return tr.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},(Js.prototype=Object.create(tr.prototype)).constructor=Js,Js.prototype.isSplineCurve=!0,Js.prototype.getPoint=function(t,e){var n=e||new G,r=this.points,i=(r.length-1)*t,o=Math.floor(i),c=i-o,h=r[0===o?o:o-1],f=r[o],A=r[o>r.length-2?r.length-1:o+1],E=r[o>r.length-3?r.length-1:o+2];return n.set(Ll(c,h.x,f.x,A.x,E.x),Ll(c,h.y,f.y,A.y,E.y)),n},Js.prototype.copy=function(t){tr.prototype.copy.call(this,t),this.points=[];for(var e=0,n=t.points.length;e<n;e++)this.points.push(t.points[e].clone());return this},Js.prototype.toJSON=function(){var t=tr.prototype.toJSON.call(this);t.points=[];for(var e=0,n=this.points.length;e<n;e++)t.points.push(this.points[e].toArray());return t},Js.prototype.fromJSON=function(t){tr.prototype.fromJSON.call(this,t),this.points=[];for(var e=0,n=t.points.length;e<n;e++){var r=t.points[e];this.points.push((new G).fromArray(r))}return this};var Il=Object.freeze({ArcCurve:Yo,CatmullRomCurve3:Ji,CubicBezierCurve:Ls,CubicBezierCurve3:Is,EllipseCurve:is,LineCurve:hs,LineCurve3:Bs,QuadraticBezierCurve:Os,QuadraticBezierCurve3:Ys,SplineCurve:Js});function Ks(){tr.call(this),this.type="CurvePath",this.curves=[],this.autoClose=!1}function zs(t){Ks.call(this),this.type="Path",this.currentPoint=new G,t&&this.setFromPoints(t)}
vendor: 13,223 bytes, line 1
1function So(t){zs.call(this,t),this.uuid=U.generateUUID(),this.type="Shape",this.holes=[]}function xi(t,e){Wt.call(this),this.type="Light",this.color=new lt(t),this.intensity=void 0!==e?e:1,this.receiveShadow=void 0}function pl(t,e,n){xi.call(this,t,n),this.type="HemisphereLight",this.castShadow=void 0,this.position.copy(Wt.DefaultUp),this.updateMatrix(),this.groundColor=new lt(e)}function Po(t){this.camera=t,this.bias=0,this.radius=1,this.mapSize=new G(512,512),this.map=null,this.matrix=new dt}function fl(){Po.call(this,new ei(50,1,.5,500))}function Aa(t,e,n,r,i,o){xi.call(this,t,e),this.type="SpotLight",this.position.copy(Wt.DefaultUp),this.updateMatrix(),this.target=new Wt,Object.defineProperty(this,"power",{get:function(){return this.intensity*Math.PI},set:function(c){this.intensity=c/Math.PI}}),this.distance=void 0!==n?n:0,this.angle=void 0!==r?r:Math.PI/3,this.penumbra=void 0!==i?i:0,this.decay=void 0!==o?o:1,this.shadow=new fl}function ml(t,e,n,r){xi.call(this,t,e),this.type="PointLight",Object.defineProperty(this,"power",{get:function(){return 4*this.intensity*Math.PI},set:function(i){this.intensity=i/(4*Math.PI)}}),this.distance=void 0!==n?n:0,this.decay=void 0!==r?r:1,this.shadow=new Po(new ei(90,1,.5,500))}function Ro(t,e,n,r,i,o){Di.call(this),this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=r,this.near=void 0!==i?i:.1,this.far=void 0!==o?o:2e3,this.updateProjectionMatrix()}function Oa(){Po.call(this,new Ro(-5,5,5,-5,.5,500))}function za(t,e){xi.call(this,t,e),this.type="DirectionalLight",this.position.copy(Wt.DefaultUp),this.updateMatrix(),this.target=new Wt,this.shadow=new Oa}function Ha(t,e){xi.call(this,t,e),this.type="AmbientLight",this.castShadow=void 0}function xa(t,e,n,r){xi.call(this,t,e),this.type="RectAreaLight",this.width=void 0!==n?n:10,this.height=void 0!==r?r:10}Ks.prototype=Object.assign(Object.create(tr.prototype),{constructor:Ks,add:function(t){this.curves.push(t)},closePath:function(){var t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);t.equals(e)||this.curves.push(new hs(e,t))},getPoint:function(t){for(var e=t*this.getLength(),n=this.getCurveLengths(),r=0;r<n.length;){if(n[r]>=e){var i=n[r]-e,o=this.curves[r],c=o.getLength();return o.getPointAt(0===c?0:1-i/c)}r++}return null},getLength:function(){var t=this.getCurveLengths();return t[t.length-1]},updateArcLengths:function(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var t=[],e=0,n=0,r=this.curves.length;n<r;n++)e+=this.curves[n].getLength(),t.push(e);return this.cacheLengths=t,t},getSpacedPoints:function(t){void 0===t&&(t=40);for(var e=[],n=0;n<=t;n++)e.push(this.getPoint(n/t));return this.autoClose&&e.push(e[0]),e},getPoints:function(t){t=t||12;for(var e,n=[],r=0,i=this.curves;r<i.length;r++)for(var o=i[r],c=o.getPoints(o&&o.isEllipseCurve?2*t:o&&(o.isLineCurve||o.isLineCurve3)?1:o&&o.isSplineCurve?t*o.points.length:t),h=0;h<c.length;h++){var f=c[h];e&&e.equals(f)||(n.push(f),e=f)}return this.autoClose&&n.length>1&&!n[n.length-1].equals(n[0])&&n.push(n[0]),n},copy:function(t){tr.prototype.copy.call(this,t),this.curves=[];for(var e=0,n=t.curves.length;e<n;e++)this.curves.push(t.curves[e].clone());return this.autoClose=t.autoClose,this},toJSON:function(){var t=tr.prototype.toJSON.call(this);t.autoClose=this.autoClose,t.curves=[];for(var e=0,n=this.curves.length;e<n;e++)t.curves.push(this.curves[e].toJSON());return t},fromJSON:function(t){tr.prototype.fromJSON.call(this,t),this.autoClose=t.autoClose,this.curves=[];for(var e=0,n=t.curves.length;e<n;e++){var r=t.curves[e];this.curves.push((new Il[r.type]).fromJSON(r))}return this}}),zs.prototype=Object.assign(Object.create(Ks.prototype),{constructor:zs,setFromPoints:function(t){this.moveTo(t[0].x,t[0].y);for(var e=1,n=t.length;e<n;e++)this.lineTo(t[e].x,t[e].y)},moveTo:function(t,e){this.currentPoint.set(t,e)},lineTo:function(t,e){var n=new hs(this.currentPoint.clone(),new G(t,e));this.curves.push(n),this.currentPoint.set(t,e)},quadraticCurveTo:function(t,e,n,r){var i=new Os(this.currentPoint.clone(),new G(t,e),new G(n,r));this.curves.push(i),this.currentPoint.set(n,r)},bezierCurveTo:function(t,e,n,r,i,o){var c=new Ls(this.currentPoint.clone(),new G(t,e),new G(n,r),new G(i,o));this.curves.push(c),this.currentPoint.set(i,o)},splineThru:function(t){var e=new Js([this.currentPoint.clone()].concat(t));this.curves.push(e),this.currentPoint.copy(t[t.length-1])},arc:function(t,e,n,r,i,o){this.absarc(t+this.currentPoint.x,e+this.currentPoint.y,n,r,i,o)},absarc:function(t,e,n,r,i,o){this.absellipse(t,e,n,n,r,i,o)},ellipse:function(t,e,n,r,i,o,c,h){this.absellipse(t+this.currentPoint.x,e+this.currentPoint.y,n,r,i,o,c,h)},absellipse:function(t,e,n,r,i,o,c,h){var f=new is(t,e,n,r,i,o,c,h);if(this.curves.length>0){var A=f.getPoint(0);A.equals(this.currentPoint)||this.lineTo(A.x,A.y)}this.curves.push(f);var E=f.getPoint(1);this.currentPoint.copy(E)},copy:function(t){return Ks.prototype.copy.call(this,t),this.currentPoint.copy(t.currentPoint),this},toJSON:function(){var t=Ks.prototype.toJSON.call(this);return t.currentPoint=this.currentPoint.toArray(),t},fromJSON:function(t){return Ks.prototype.fromJSON.call(this,t),this.currentPoint.fromArray(t.currentPoint),this}}),So.prototype=Object.assign(Object.create(zs.prototype),{constructor:So,getPointsHoles:function(t){for(var e=[],n=0,r=this.holes.length;n<r;n++)e[n]=this.holes[n].getPoints(t);return e},extractPoints:function(t){return{shape:this.getPoints(t),holes:this.getPointsHoles(t)}},copy:function(t){zs.prototype.copy.call(this,t),this.holes=[];for(var e=0,n=t.holes.length;e<n;e++)this.holes.push(t.holes[e].clone());return this},toJSON:function(){var t=zs.prototype.toJSON.call(this);t.uuid=this.uuid,t.holes=[];for(var e=0,n=this.holes.length;e<n;e++)t.holes.push(this.holes[e].toJSON());return t},fromJSON:function(t){zs.prototype.fromJSON.call(this,t),this.uuid=t.uuid,this.holes=[];for(var e=0,n=t.holes.length;e<n;e++){var r=t.holes[e];this.holes.push((new zs).fromJSON(r))}return this}}),xi.prototype=Object.assign(Object.create(Wt.prototype),{constructor:xi,isLight:!0,copy:function(t){return Wt.prototype.copy.call(this,t),this.color.copy(t.color),this.intensity=t.intensity,this},toJSON:function(t){var e=Wt.prototype.toJSON.call(this,t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}),pl.prototype=Object.assign(Object.create(xi.prototype),{constructor:pl,isHemisphereLight:!0,copy:function(t){return xi.prototype.copy.call(this,t),this.groundColor.copy(t.groundColor),this}}),Object.assign(Po.prototype,{copy:function(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var t={};return 0!==this.bias&&(t.bias=this.bias),1!==this.radius&&(t.radius=this.radius),(512!==this.mapSize.x||512!==this.mapSize.y)&&(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}),fl.prototype=Object.assign(Object.create(Po.prototype),{constructor:fl,isSpotLightShadow:!0,update:function(t){var e=this.camera,n=2*U.RAD2DEG*t.angle,r=this.mapSize.width/this.mapSize.height,i=t.distance||e.far;(n!==e.fov||r!==e.aspect||i!==e.far)&&(e.fov=n,e.aspect=r,e.far=i,e.updateProjectionMatrix())}}),Aa.prototype=Object.assign(Object.create(xi.prototype),{constructor:Aa,isSpotLight:!0,copy:function(t){return xi.prototype.copy.call(this,t),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}),ml.prototype=Object.assign(Object.create(xi.prototype),{constructor:ml,isPointLight:!0,copy:function(t){return xi.prototype.copy.call(this,t),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}),Ro.prototype=Object.assign(Object.create(Di.prototype),{constructor:Ro,isOrthographicCamera:!0,copy:function(t,e){return Di.prototype.copy.call(this,t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this},setViewOffset:function(t,e,n,r,i,o){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=r,this.view.width=i,this.view.height=o,this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()},updateProjectionMatrix:function(){var t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,r=(this.top+this.bottom)/2,i=n-t,o=n+t,c=r+e,h=r-e;if(null!==this.view&&this.view.enabled){var f=this.zoom/(this.view.width/this.view.fullWidth),A=this.zoom/(this.view.height/this.view.fullHeight),E=(this.right-this.left)/this.view.width,C=(this.top-this.bottom)/this.view.height;o=(i+=E*(this.view.offsetX/f))+E*(this.view.width/f),h=(c-=C*(this.view.offsetY/A))-C*(this.view.height/A)}this.projectionMatrix.makeOrthographic(i,o,c,h,this.near,this.far),this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(t){var e=Wt.prototype.toJSON.call(this,t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}),Oa.prototype=Object.assign(Object.create(Po.prototype),{constructor:Oa}),za.prototype=Object.assign(Object.create(xi.prototype),{constructor:za,isDirectionalLight:!0,copy:function(t){return xi.prototype.copy.call(this,t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}),Ha.prototype=Object.assign(Object.create(xi.prototype),{constructor:Ha,isAmbientLight:!0}),xa.prototype=Object.assign(Object.create(xi.prototype),{constructor:xa,isRectAreaLight:!0,copy:function(t){return xi.prototype.copy.call(this,t),this.width=t.width,this.height=t.height,this},toJSON:function(t){var e=xi.prototype.toJSON.call(this,t);return e.object.width=this.width,e.object.height=this.height,e}});var Ki={arraySlice:function(t,e,n){return Ki.isTypedArray(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)},convertArray:function(t,e,n){return!t||!n&&t.constructor===e?t:"number"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)},isTypedArray:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)},getKeyframeOrder:function(t){for(var e=t.length,n=new Array(e),r=0;r!==e;++r)n[r]=r;return n.sort(function(o,c){return t[o]-t[c]}),n},sortedArray:function(t,e,n){for(var r=t.length,i=new t.constructor(r),o=0,c=0;c!==r;++o)for(var h=n[o]*e,f=0;f!==e;++f)i[c++]=t[h+f];return i},flattenJSON:function(t,e,n,r){for(var i=1,o=t[0];void 0!==o&&void 0===o[r];)o=t[i++];if(void 0!==o){var c=o[r];if(void 0!==c)if(Array.isArray(c))do{void 0!==(c=o[r])&&(e.push(o.time),n.push.apply(n,c)),o=t[i++]}while(void 0!==o);else if(void 0!==c.toArray)do{void 0!==(c=o[r])&&(e.push(o.time),c.toArray(n,n.length)),o=t[i++]}while(void 0!==o);else do{void 0!==(c=o[r])&&(e.push(o.time),n.push(c)),o=t[i++]}while(void 0!==o)}}};function ds(t,e,n,r){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=void 0!==r?r:new e.constructor(n),this.sampleValues=e,this.valueSize=n}function Da(t,e,n,r){ds.call(this,t,e,n,r),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0}function ba(t,e,n,r){ds.call(this,t,e,n,r)}function Na(t,e,n,r){ds.call(this,t,e,n,r)}function Ni(t,e,n,r){if(void 0===t)throw new Error("THREE.KeyframeTrack: track name is undefined");if(void 0===e||0===e.length)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+t);this.name=t,this.times=Ki.convertArray(e,this.TimeBufferType),this.values=Ki.convertArray(n,this.ValueBufferType),this.setInterpolation(r||this.DefaultInterpolation)}function Fa(t,e,n){Ni.call(this,t,e,n)}function wa(t,e,n,r){Ni.call(this,t,e,n,r)}function Mo(t,e,n,r){Ni.call(this,t,e,n,r)}function ka(t,e,n,r){ds.call(this,t,e,n,r)}function Ko(t,e,n,r){Ni.call(this,t,e,n,r)}function Lo(t,e,n,r){Ni.call(this,t,e,n,r)}function Ea(t,e,n,r){Ni.call(this,t,e,n,r)}function ps(t,e,n){this.name=t,this.tracks=n,this.duration=void 0!==e?e:-1,this.uuid=U.generateUUID(),this.duration<0&&this.resetDuration()}function Yl(t){if(void 0===t.type)throw new Error("THREE.KeyframeTrack: track type undefined, can not parse");var e=function(o){switch(o.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return Mo;
vendor: 12,832 bytes, line 1
1case"vector":case"vector2":case"vector3":case"vector4":return Ea;case"color":return wa;case"quaternion":return Ko;case"bool":case"boolean":return Fa;case"string":return Lo}throw new Error("THREE.KeyframeTrack: Unsupported typeName: "+o)}(t.type);if(void 0===t.times){var n=[],r=[];Ki.flattenJSON(t.keys,n,r,"value"),t.times=n,t.values=r}return void 0!==e.parse?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}function ja(t){this.manager=void 0!==t?t:rs,this.textures={}}function gl(t){this.manager=void 0!==t?t:rs}Object.assign(ds.prototype,{evaluate:function(t){var e=this.parameterPositions,n=this._cachedIndex,r=e[n],i=e[n-1];t:{e:{var o;n:{r:if(!(t<r)){for(var c=n+2;;){if(void 0===r){if(t<i)break r;return this._cachedIndex=n=e.length,this.afterEnd_(n-1,t,i)}if(n===c)break;if(i=r,t<(r=e[++n]))break e}o=e.length;break n}if(t>=i)break t;var h=e[1];for(t<h&&(n=2,i=h),c=n-2;;){if(void 0===i)return this._cachedIndex=0,this.beforeStart_(0,t,r);if(n===c)break;if(r=i,t>=(i=e[--n-1]))break e}o=n,n=0}for(;n<o;){var f=n+o>>>1;t<e[f]?o=f:n=f+1}if(r=e[n],void 0===(i=e[n-1]))return this._cachedIndex=0,this.beforeStart_(0,t,r);if(void 0===r)return this._cachedIndex=n=e.length,this.afterEnd_(n-1,i,t)}this._cachedIndex=n,this.intervalChanged_(n,i,r)}return this.interpolate_(n,i,t,r)},settings:null,DefaultSettings_:{},getSettings_:function(){return this.settings||this.DefaultSettings_},copySampleValue_:function(t){for(var e=this.resultBuffer,n=this.sampleValues,r=this.valueSize,i=t*r,o=0;o!==r;++o)e[o]=n[i+o];return e},interpolate_:function(){throw new Error("call to abstract method")},intervalChanged_:function(){}}),Object.assign(ds.prototype,{beforeStart_:ds.prototype.copySampleValue_,afterEnd_:ds.prototype.copySampleValue_}),Da.prototype=Object.assign(Object.create(ds.prototype),{constructor:Da,DefaultSettings_:{endingStart:g,endingEnd:g},intervalChanged_:function(t,e,n){var r=this.parameterPositions,i=t-2,o=t+1,c=r[i],h=r[o];if(void 0===c)switch(this.getSettings_().endingStart){case x:i=t,c=2*e-n;break;case P:c=e+r[i=r.length-2]-r[i+1];break;default:i=t,c=n}if(void 0===h)switch(this.getSettings_().endingEnd){case x:o=t,h=2*n-e;break;case P:o=1,h=n+r[1]-r[0];break;default:o=t-1,h=e}var f=.5*(n-e),A=this.valueSize;this._weightPrev=f/(e-c),this._weightNext=f/(h-n),this._offsetPrev=i*A,this._offsetNext=o*A},interpolate_:function(t,e,n,r){for(var i=this.resultBuffer,o=this.sampleValues,c=this.valueSize,h=t*c,f=h-c,A=this._offsetPrev,E=this._offsetNext,C=this._weightPrev,S=this._weightNext,F=(n-e)/(r-e),tt=F*F,rt=tt*F,ot=-C*rt+2*C*tt-C*F,St=(1+C)*rt+(-1.5-2*C)*tt+(-.5+C)*F+1,yt=(-1-S)*rt+(1.5+S)*tt+.5*F,Et=S*rt-S*tt,Pt=0;Pt!==c;++Pt)i[Pt]=ot*o[A+Pt]+St*o[f+Pt]+yt*o[h+Pt]+Et*o[E+Pt];return i}}),ba.prototype=Object.assign(Object.create(ds.prototype),{constructor:ba,interpolate_:function(t,e,n,r){for(var i=this.resultBuffer,o=this.sampleValues,c=this.valueSize,h=t*c,f=h-c,A=(n-e)/(r-e),E=1-A,C=0;C!==c;++C)i[C]=o[f+C]*E+o[h+C]*A;return i}}),Na.prototype=Object.assign(Object.create(ds.prototype),{constructor:Na,interpolate_:function(t){return this.copySampleValue_(t-1)}}),Object.assign(Ni,{toJSON:function(t){var e,n=t.constructor;if(void 0!==n.toJSON)e=n.toJSON(t);else{e={name:t.name,times:Ki.convertArray(t.times,Array),values:Ki.convertArray(t.values,Array)};var r=t.getInterpolation();r!==t.DefaultInterpolation&&(e.interpolation=r)}return e.type=t.ValueTypeName,e}}),Object.assign(Ni.prototype,{constructor:Ni,TimeBufferType:Float32Array,ValueBufferType:Float32Array,DefaultInterpolation:N,InterpolantFactoryMethodDiscrete:function(t){return new Na(this.times,this.values,this.getValueSize(),t)},InterpolantFactoryMethodLinear:function(t){return new ba(this.times,this.values,this.getValueSize(),t)},InterpolantFactoryMethodSmooth:function(t){return new Da(this.times,this.values,this.getValueSize(),t)},setInterpolation:function(t){var e;switch(t){case M:e=this.InterpolantFactoryMethodDiscrete;break;case N:e=this.InterpolantFactoryMethodLinear;break;case 2302:e=this.InterpolantFactoryMethodSmooth}if(void 0===e){var n="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(void 0===this.createInterpolant){if(t===this.DefaultInterpolation)throw new Error(n);this.setInterpolation(this.DefaultInterpolation)}return console.warn("THREE.KeyframeTrack:",n),this}return this.createInterpolant=e,this},getInterpolation:function(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return M;case this.InterpolantFactoryMethodLinear:return N;case this.InterpolantFactoryMethodSmooth:return 2302}},getValueSize:function(){return this.values.length/this.times.length},shift:function(t){if(0!==t)for(var e=this.times,n=0,r=e.length;n!==r;++n)e[n]+=t;return this},scale:function(t){if(1!==t)for(var e=this.times,n=0,r=e.length;n!==r;++n)e[n]*=t;return this},trim:function(t,e){for(var n=this.times,r=n.length,i=0,o=r-1;i!==r&&n[i]<t;)++i;for(;-1!==o&&n[o]>e;)--o;if(++o,0!==i||o!==r){i>=o&&(i=(o=Math.max(o,1))-1);var c=this.getValueSize();this.times=Ki.arraySlice(n,i,o),this.values=Ki.arraySlice(this.values,i*c,o*c)}return this},validate:function(){var t=!0,e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);var n=this.times,r=this.values,i=n.length;0===i&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);for(var o=null,c=0;c!==i;c++){var h=n[c];if("number"==typeof h&&isNaN(h)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,c,h),t=!1;break}if(null!==o&&o>h){console.error("THREE.KeyframeTrack: Out of order keys.",this,c,h,o),t=!1;break}o=h}if(void 0!==r&&Ki.isTypedArray(r)){c=0;for(var f=r.length;c!==f;++c){var A=r[c];if(isNaN(A)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,c,A),t=!1;break}}}return t},optimize:function(){for(var t=this.times,e=this.values,n=this.getValueSize(),r=2302===this.getInterpolation(),i=1,o=t.length-1,c=1;c<o;++c){var h=!1,f=t[c];if(f!==t[c+1]&&(1!==c||f!==f[0]))if(r)h=!0;else for(var A=c*n,E=A-n,C=A+n,S=0;S!==n;++S){var F=e[A+S];if(F!==e[E+S]||F!==e[C+S]){h=!0;break}}if(h){if(c!==i){t[i]=t[c];var tt=c*n,rt=i*n;for(S=0;S!==n;++S)e[rt+S]=e[tt+S]}++i}}if(o>0){for(t[i]=t[o],tt=o*n,rt=i*n,S=0;S!==n;++S)e[rt+S]=e[tt+S];++i}return i!==t.length&&(this.times=Ki.arraySlice(t,0,i),this.values=Ki.arraySlice(e,0,i*n)),this}}),Fa.prototype=Object.assign(Object.create(Ni.prototype),{constructor:Fa,ValueTypeName:"bool",ValueBufferType:Array,DefaultInterpolation:M,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),wa.prototype=Object.assign(Object.create(Ni.prototype),{constructor:wa,ValueTypeName:"color"}),Mo.prototype=Object.assign(Object.create(Ni.prototype),{constructor:Mo,ValueTypeName:"number"}),ka.prototype=Object.assign(Object.create(ds.prototype),{constructor:ka,interpolate_:function(t,e,n,r){for(var i=this.resultBuffer,o=this.sampleValues,c=this.valueSize,h=t*c,f=(n-e)/(r-e),A=h+c;h!==A;h+=4)wt.slerpFlat(i,0,o,h-c,o,h,f);return i}}),Ko.prototype=Object.assign(Object.create(Ni.prototype),{constructor:Ko,ValueTypeName:"quaternion",DefaultInterpolation:N,InterpolantFactoryMethodLinear:function(t){return new ka(this.times,this.values,this.getValueSize(),t)},InterpolantFactoryMethodSmooth:void 0}),Lo.prototype=Object.assign(Object.create(Ni.prototype),{constructor:Lo,ValueTypeName:"string",ValueBufferType:Array,DefaultInterpolation:M,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),Ea.prototype=Object.assign(Object.create(Ni.prototype),{constructor:Ea,ValueTypeName:"vector"}),Object.assign(ps,{parse:function(t){for(var e=[],n=t.tracks,r=1/(t.fps||1),i=0,o=n.length;i!==o;++i)e.push(Yl(n[i]).scale(r));return new ps(t.name,t.duration,e)},toJSON:function(t){for(var e=[],n=t.tracks,r={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid},i=0,o=n.length;i!==o;++i)e.push(Ni.toJSON(n[i]));return r},CreateFromMorphTargetSequence:function(t,e,n,r){for(var i=e.length,o=[],c=0;c<i;c++){var h=[],f=[];h.push((c+i-1)%i,c,(c+1)%i),f.push(0,1,0);var A=Ki.getKeyframeOrder(h);h=Ki.sortedArray(h,1,A),f=Ki.sortedArray(f,1,A),!r&&0===h[0]&&(h.push(i),f.push(f[0])),o.push(new Mo(".morphTargetInfluences["+e[c].name+"]",h,f).scale(1/n))}return new ps(t,-1,o)},findByName:function(t,e){var n=t;Array.isArray(t)||(n=t.geometry&&t.geometry.animations||t.animations);for(var r=0;r<n.length;r++)if(n[r].name===e)return n[r];return null},CreateClipsFromMorphTargetSequences:function(t,e,n){for(var r={},i=/^([\w-]*?)([\d]+)$/,o=0,c=t.length;o<c;o++){var h=t[o],f=h.name.match(i);if(f&&f.length>1){var A=r[C=f[1]];A||(r[C]=A=[]),A.push(h)}}var E=[];for(var C in r)E.push(ps.CreateFromMorphTargetSequence(C,r[C],e,n));return E},parseAnimation:function(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;for(var n=function(yt,Et,Pt,se,Bt){if(0!==Pt.length){var Ct=[],xe=[];Ki.flattenJSON(Pt,Ct,xe,se),0!==Ct.length&&Bt.push(new yt(Et,Ct,xe))}},r=[],i=t.name||"default",o=t.length||-1,c=t.fps||30,h=t.hierarchy||[],f=0;f<h.length;f++){var A=h[f].keys;if(A&&0!==A.length)if(A[0].morphTargets){for(var E={},C=0;C<A.length;C++)if(A[C].morphTargets)for(var S=0;S<A[C].morphTargets.length;S++)E[A[C].morphTargets[S]]=-1;for(var F in E){var tt=[],rt=[];for(S=0;S!==A[C].morphTargets.length;++S){var ot=A[C];tt.push(ot.time),rt.push(ot.morphTarget===F?1:0)}r.push(new Mo(".morphTargetInfluence["+F+"]",tt,rt))}o=E.length*(c||1)}else{var St=".bones["+e[f].name+"]";n(Ea,St+".position",A,"pos",r),n(Ko,St+".quaternion",A,"rot",r),n(Ea,St+".scale",A,"scl",r)}}return 0===r.length?null:new ps(i,o,r)}}),Object.assign(ps.prototype,{resetDuration:function(){for(var t=0,e=0,n=this.tracks.length;e!==n;++e){var r=this.tracks[e];t=Math.max(t,r.times[r.times.length-1])}return this.duration=t,this},trim:function(){for(var t=0;t<this.tracks.length;t++)this.tracks[t].trim(0,this.duration);return this},validate:function(){for(var t=!0,e=0;e<this.tracks.length;e++)t=t&&this.tracks[e].validate();return t},optimize:function(){for(var t=0;t<this.tracks.length;t++)this.tracks[t].optimize();return this}}),Object.assign(ja.prototype,{load:function(t,e,n,r){var i=this;new Ui(i.manager).load(t,function(o){e(i.parse(JSON.parse(o)))},n,r)},setTextures:function(t){this.textures=t},parse:function(t){var e=this.textures;function n(h){return void 0===e[h]&&console.warn("THREE.MaterialLoader: Undefined texture",h),e[h]}var r=new ac[t.type];if(void 0!==t.uuid&&(r.uuid=t.uuid),void 0!==t.name&&(r.name=t.name),void 0!==t.color&&r.color.setHex(t.color),void 0!==t.roughness&&(r.roughness=t.roughness),void 0!==t.metalness&&(r.metalness=t.metalness),void 0!==t.emissive&&r.emissive.setHex(t.emissive),void 0!==t.specular&&r.specular.setHex(t.specular),void 0!==t.shininess&&(r.shininess=t.shininess),void 0!==t.clearCoat&&(r.clearCoat=t.clearCoat),void 0!==t.clearCoatRoughness&&(r.clearCoatRoughness=t.clearCoatRoughness),void 0!==t.vertexColors&&(r.vertexColors=t.vertexColors),void 0!==t.fog&&(r.fog=t.fog),void 0!==t.flatShading&&(r.flatShading=t.flatShading),void 0!==t.blending&&(r.blending=t.blending),void 0!==t.combine&&(r.combine=t.combine),void 0!==t.side&&(r.side=t.side),void 0!==t.opacity&&(r.opacity=t.opacity),void 0!==t.transparent&&(r.transparent=t.transparent),void 0!==t.alphaTest&&(r.alphaTest=t.alphaTest),void 0!==t.depthTest&&(r.depthTest=t.depthTest),void 0!==t.depthWrite&&(r.depthWrite=t.depthWrite),void 0!==t.colorWrite&&(r.colorWrite=t.colorWrite),void 0!==t.wireframe&&(r.wireframe=t.wireframe),void 0!==t.wireframeLinewidth&&(r.wireframeLinewidth=t.wireframeLinewidth),void 0!==t.wireframeLinecap&&(r.wireframeLinecap=t.wireframeLinecap),void 0!==t.wireframeLinejoin&&(r.wireframeLinejoin=t.wireframeLinejoin),void 0!==t.rotation&&(r.rotation=t.rotation),1!==t.linewidth&&(r.linewidth=t.linewidth),void 0!==t.dashSize&&(r.dashSize=t.dashSize),void 0!==t.gapSize&&(r.gapSize=t.gapSize),void 0!==t.scale&&(r.scale=t.scale),void 0!==t.polygonOffset&&(r.polygonOffset=t.polygonOffset),void 0!==t.polygonOffsetFactor&&(r.polygonOffsetFactor=t.polygonOffsetFactor),void 0!==t.polygonOffsetUnits&&(r.polygonOffsetUnits=t.polygonOffsetUnits),void 0!==t.skinning&&(r.skinning=t.skinning),void 0!==t.morphTargets&&(r.morphTargets=t.morphTargets),void 0!==t.dithering&&(r.dithering=t.dithering),void 0!==t.visible&&(r.visible=t.visible),void 0!==t.userData&&(r.userData=t.userData),void 0!==t.uniforms)for(var i in t.uniforms){var o=t.uniforms[i];switch(r.uniforms[i]={},o.type){case"t":r.uniforms[i].value=n(o.value);break;case"c":r.uniforms[i].value=(new lt).setHex(o.value);break;case"v2":r.uniforms[i].value=(new G).fromArray(o.value);break;case"v3":r.uniforms[i].value=(new W).fromArray(o.value);break;case"v4":r.uniforms[i].value=(new We).fromArray(o.value);break;
1case"m4":r.uniforms[i].value=(new dt).fromArray(o.value);break;default:r.uniforms[i].value=o.value}}if(void 0!==t.defines&&(r.defines=t.defines),void 0!==t.vertexShader&&(r.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(r.fragmentShader=t.fragmentShader),void 0!==t.shading&&(r.flatShading=1===t.shading),void 0!==t.size&&(r.size=t.size),void 0!==t.sizeAttenuation&&(r.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(r.map=n(t.map)),void 0!==t.alphaMap&&(r.alphaMap=n(t.alphaMap),r.transparent=!0),void 0!==t.bumpMap&&(r.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(r.bumpScale=t.bumpScale),void 0!==t.normalMap&&(r.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(r.normalMapType=t.normalMapType),void 0!==t.normalScale){var c=t.normalScale;!1===Array.isArray(c)&&(c=[c,c]),r.normalScale=(new G).fromArray(c)}return void 0!==t.displacementMap&&(r.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(r.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(r.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(r.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(r.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(r.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(r.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(r.specularMap=n(t.specularMap)),void 0!==t.envMap&&(r.envMap=n(t.envMap)),void 0!==t.envMapIntensity&&(r.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(r.reflectivity=t.reflectivity),void 0!==t.lightMap&&(r.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(r.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(r.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(r.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(r.gradientMap=n(t.gradientMap)),r}}),Object.assign(gl.prototype,{load:function(t,e,n,r){var i=this;new Ui(i.manager).load(t,function(o){e(i.parse(JSON.parse(o)))},n,r)},parse:function(t){var e=new Te,n=t.data.index;if(void 0!==n){var r=new Jl[n.type](n.array);e.setIndex(new qe(r,1))}var i=t.data.attributes;for(var o in i){var c=i[o];r=new Jl[c.type](c.array),e.addAttribute(o,new qe(r,c.itemSize,c.normalized))}var h=t.data.groups||t.data.drawcalls||t.data.offsets;if(void 0!==h)for(var f=0,A=h.length;f!==A;++f){var E=h[f];e.addGroup(E.start,E.count,E.materialIndex)}var C=t.data.boundingSphere;if(void 0!==C){var S=new W;void 0!==C.center&&S.fromArray(C.center),e.boundingSphere=new Ee(S,C.radius)}return e}});var Jl={Int8Array,Uint8Array,Uint8ClampedArray:typeof Uint8ClampedArray<"u"?Uint8ClampedArray:Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function Io(){}Io.Handlers={handlers:[],add:function(t,e){this.handlers.push(t,e)},get:function(t){for(var e=this.handlers,n=0,r=e.length;n<r;n+=2){var i=e[n+1];if(e[n].test(t))return i}return null}},Object.assign(Io.prototype,{crossOrigin:"anonymous",onLoadStart:function(){},onLoadProgress:function(){},onLoadComplete:function(){},initMaterials:function(t,e,n){for(var r=[],i=0;i<t.length;++i)r[i]=this.createMaterial(t[i],e,n);return r},createMaterial:function(){var t={NoBlending:0,NormalBlending:1,AdditiveBlending:2,SubtractiveBlending:3,MultiplyBlending:4,CustomBlending:5},e=new lt,n=new Ba,r=new ja;return function(i,o,c){var h={};function f(S,F,tt,rt,ot){var St,yt=o+S,Et=Io.Handlers.get(yt);null!==Et?St=Et.load(yt):(n.setCrossOrigin(c),St=n.load(yt)),void 0!==F&&(St.repeat.fromArray(F),1!==F[0]&&(St.wrapS=b),1!==F[1]&&(St.wrapT=b)),void 0!==tt&&St.offset.fromArray(tt),void 0!==rt&&("repeat"===rt[0]&&(St.wrapS=b),"mirror"===rt[0]&&(St.wrapS=V),"repeat"===rt[1]&&(St.wrapT=b),"mirror"===rt[1]&&(St.wrapT=V)),void 0!==ot&&(St.anisotropy=ot);var Pt=U.generateUUID();return h[Pt]=St,Pt}var A={uuid:U.generateUUID(),type:"MeshLambertMaterial"};for(var E in i){var C=i[E];switch(E){case"DbgColor":case"DbgIndex":case"opticalDensity":case"illumination":case"mapDiffuseRepeat":case"mapDiffuseOffset":case"mapDiffuseWrap":case"mapDiffuseAnisotropy":case"mapEmissiveRepeat":case"mapEmissiveOffset":case"mapEmissiveWrap":case"mapEmissiveAnisotropy":case"mapLightRepeat":case"mapLightOffset":case"mapLightWrap":case"mapLightAnisotropy":case"mapAORepeat":case"mapAOOffset":case"mapAOWrap":case"mapAOAnisotropy":case"mapBumpRepeat":case"mapBumpOffset":case"mapBumpWrap":case"mapBumpAnisotropy":case"mapNormalRepeat":case"mapNormalOffset":case"mapNormalWrap":case"mapNormalAnisotropy":case"mapSpecularRepeat":case"mapSpecularOffset":case"mapSpecularWrap":case"mapSpecularAnisotropy":case"mapMetalnessRepeat":case"mapMetalnessOffset":case"mapMetalnessWrap":case"mapMetalnessAnisotropy":case"mapRoughnessRepeat":case"mapRoughnessOffset":case"mapRoughnessWrap":case"mapRoughnessAnisotropy":case"mapAlpha
1Repeat":case"mapAlphaOffset":case"mapAlphaWrap":case"mapAlphaAnisotropy":break;case"DbgName":A.name=C;break;case"blending":A.blending=t[C];break;case"colorAmbient":case"mapAmbient":console.warn("THREE.Loader.createMaterial:",E,"is no longer supported.");break;case"colorDiffuse":A.color=e.fromArray(C).getHex();break;case"colorSpecular":A.specular=e.fromArray(C).getHex();break;case"colorEmissive":A.emissive=e.fromArray(C).getHex();break;case"specularCoef":A.shininess=C;break;case"shading":"basic"===C.toLowerCase()&&(A.type="MeshBasicMaterial"),"phong"===C.toLowerCase()&&(A.type="MeshPhongMaterial"),"standard"===C.toLowerCase()&&(A.type="MeshStandardMaterial");break;case"mapDiffuse":A.map=f(C,i.mapDiffuseRepeat,i.mapDiffuseOffset,i.mapDiffuseWrap,i.mapDiffuseAnisotropy);break;case"mapEmissive":A.emissiveMap=f(C,i.mapEmissiveRepeat,i.mapEmissiveOffset,i.mapEmissiveWrap,i.mapEmissiveAnisotropy);break;case"mapLight":A.lightMap=f(C,i.mapLightRepeat,i.mapLightOffset,i.mapLightWrap,i.mapLightAnisotropy);break;case"mapAO":A.aoMap=f(C,i.mapAORepeat,i.mapAOOffset,i.mapAOWrap,i.mapAOAnisotropy);break;case"mapBump":A.bumpMap=f(C,i.mapBumpRepeat,i.mapBumpOffset,i.mapBumpWrap,i.mapBumpAnisotropy);break;case"mapBumpScale":A.bumpScale=C;break;case"mapNormal":A.normalMap=f(C,i.mapNormalRepeat,i.mapNormalOffset,i.mapNormalWrap,i.mapNormalAnisotropy);break;case"mapNormalFactor":A.normalScale=C;break;case"mapSpecular":A.specularMap=f(C,i.mapSpecularRepeat,i.mapSpecularOffset,i.mapSpecularWrap,i.mapSpecularAnisotropy);break;case"mapMetalness":A.metalnessMap=f(C,i.mapMetalnessRepeat,i.mapMetalnessOffset,i.mapMetalnessWrap,i.mapMetalnessAnisotropy);break;case"mapRoughness":A.roughnessMap=f(C,i.mapRoughnessRepeat,i.mapRoughnessOffset,i.mapRoughnessWrap,i.mapRoughnessAnisotropy);break;case"mapAlpha":A.alphaMap=f(C,i.mapAlphaRepeat,i.mapAlphaOffset,i.mapAlphaWrap,i.mapAlphaAnisotropy);break;case"flipSided":A.side=1;break;case"doubleSided":A.side=2;break;case"transparency":console.warn("THREE.Loader.createMaterial: transparency has been renamed to opacity"),A.opacity=C;break;case"depthTest":case"depthWrite":case"colorWrite":case"opacity":case"reflectivity":case"transparent":case"visible":case"wireframe":A[E]=C;break;case"vertexColors":!0===C&&(A.vertexColors=2),"face"===C&&(A.vertexColors=1);break;default:console.error("THREE.Loader.createMaterial: Unsupported",E,C)}}return"MeshBasicMaterial"===A.type&&delete A.emissive,"MeshPhongMaterial"!==A.type&&delete A.specular,A.opacity<1&&(A.transparent=!0),r.setTextures(h),r.parse(A)}}()});var Bo={decodeText:function(t){if(typeof TextDecoder<"u")return(new TextDecoder).decode(t);for(var e="",n=0,r=t.length;n<r;n++)e+=String.fromCharCode(t[n]);return decodeURIComponent(escape(e))},extractUrlBase:function(t){var e=t.lastIndexOf("/");return-1===e?"./":t.substr(0,e+1)}};function Va(t){"boolean"==typeof t&&(console.warn("THREE.JSONLoader: showStatus parameter has been removed from constructor."),t=void 0),this.manager=void 0!==t?t:rs,this.withCredentials=!1}function vl(t){this.manager=void 0!==t?t:rs,this.texturePath=""}Object.assign(Va.prototype,{crossOrigin:"anonymous",load:function(t,e,n,r){var i=this,o=void 0===this.path?Bo.extractUrlBase(t):this.path,c=new Ui(this.manager);c.setPath(this.path),c.setWithCredentials(this.withCredentials),c.load(t,function(h){var f=JSON.parse(h),A=f.metadata;if(void 0!==A){var E=A.type;if(void 0!==E&&"object"===E.toLowerCase())return void console.error("THREE.JSONLoader: "+t+" should be loaded with THREE.ObjectLoader instead.")}var C=i.parse(f,o);e(C.geometry,C.materials)},n,r)},setPath:function(t){return this.path=t,this},setResourcePath:function(t){return this.resourcePath=t,this},setCrossOrigin:function(t){return this.crossOrigin=t,this},parse:function(t,e){void 0!==t.data&&(t=t.data),t.scale=void 0!==t.scale?1/t.scale:1;var n=new be;return function(i,o){function c(Un,Jn){return Un&1<<Jn}var h,f,A,E,C,S,F,tt,rt,ot,St,yt,Et,Pt,se,Bt,Ct,xe,Yt,Ft,He,Xe,_e,ke,Ne,Fe=i.faces,gn=i.vertices,$e=i.normals,ln=i.colors,Ue=i.scale,Xn=0;if(void 0!==i.uvs){for(h=0;h<i.uvs.length;h++)i.uvs[h].length&&Xn++;for(h=0;h<Xn;
1h++)o.faceVertexUvs[h]=[]}for(E=0,C=gn.length;E<C;)(xe=new W).x=gn[E++]*Ue,xe.y=gn[E++]*Ue,xe.z=gn[E++]*Ue,o.vertices.push(xe);for(E=0,C=Fe.length;E<C;)if(St=c(ot=Fe[E++],0),yt=c(ot,1),Et=c(ot,3),Pt=c(ot,4),se=c(ot,5),Bt=c(ot,6),Ct=c(ot,7),St){if((Ft=new ne).a=Fe[E],Ft.b=Fe[E+1],Ft.c=Fe[E+3],(He=new ne).a=Fe[E+1],He.b=Fe[E+2],He.c=Fe[E+3],E+=4,yt&&(rt=Fe[E++],Ft.materialIndex=rt,He.materialIndex=rt),A=o.faces.length,Et)for(h=0;h<Xn;h++)for(ke=i.uvs[h],o.faceVertexUvs[h][A]=[],o.faceVertexUvs[h][A+1]=[],f=0;f<4;f++)Ne=new G(ke[2*(tt=Fe[E++])],ke[2*tt+1]),2!==f&&o.faceVertexUvs[h][A].push(Ne),0!==f&&o.faceVertexUvs[h][A+1].push(Ne);if(Pt&&(F=3*Fe[E++],Ft.normal.set($e[F++],$e[F++],$e[F]),He.normal.copy(Ft.normal)),se)for(h=0;h<4;h++)F=3*Fe[E++],_e=new W($e[F++],$e[F++],$e[F]),2!==h&&Ft.vertexNormals.push(_e),0!==h&&He.vertexNormals.push(_e);if(Bt&&(S=Fe[E++],Ft.color.setHex(Xe=ln[S]),He.color.setHex(Xe)),Ct)for(h=0;h<4;h++)Xe=ln[S=Fe[E++]],2!==h&&Ft.vertexColors.push(new lt(Xe)),0!==h&&He.vertexColors.push(new lt(Xe));o.faces.push(Ft),o.faces.push(He)}else{if((Yt=new ne).a=Fe[E++],Yt.b=Fe[E++],Yt.c=Fe[E++],yt&&(rt=Fe[E++],Yt.materialIndex=rt),A=o.faces.length,Et)for(h=0;h<Xn;h++)for(ke=i.uvs[h],o.faceVertexUvs[h][A]=[],f=0;f<3;f++)Ne=new G(ke[2*(tt=Fe[E++])],ke[2*tt+1]),o.faceVertexUvs[h][A].push(Ne);if(Pt&&(F=3*Fe[E++],Yt.normal.set($e[F++],$e[F++],$e[F])),se)for(h=0;h<3;h++)F=3*Fe[E++],_e=new W($e[F++],$e[F++],$e[F]),Yt.vertexNormals.push(_e);if(Bt&&(S=Fe[E++],Yt.color.setHex(ln[S])),Ct)for(h=0;h<3;h++)S=Fe[E++],Yt.vertexColors.push(new lt(ln[S]));o.faces.push(Yt)}}(t,n),function(i,o){var c=void 0!==i.influencesPerVertex?i.influencesPerVertex:2;if(i.skinWeights)for(var h=0,f=i.skinWeights.length;h<f;h+=c)o.skinWeights.push(new We(i.skinWeights[h],c>1?i.skinWeights[h+1]:0,c>2?i.skinWeights[h+2]:0,c>3?i.skinWeights[h+3]:0));if(i.skinIndices)for(h=0,f=i.skinIndices.length;h<f;h+=c)o.skinIndices.push(new We(i.skinIndices[h],c>1?i.skinIndices[h+1]:0,c>2?i.skinIndices[h+2]:0,c>3?i.skinIndices[h+3]:0));o.bones=i.bones,o.bones&&o.bones.length>0&&(o.skinWeights.length!==o.skinIndices.length||o.skinIndices.length!==o.vertices.length)&&console.warn("When skinning, number of vertices ("+o.vertices.length+"), skinIndices ("+o.skinIndices.length+"), and skinWeights ("+o.skinWeights.length+") should match.")}(t,n),function(i,o){var c=i.scale;if(void 0!==i.morphTargets)for(var h=0,f=i.morphTargets.length;h<f;h++){o.morphTargets[h]={},o.morphTargets[h].name=i.morphTargets[h].name,o.morphTargets[h].vertices=[];for(var A=o.morphTargets[h].vertices,E=i.morphTargets[h].vertices,C=0,S=E.length;C<S;C+=3){var F=new W;F.x=E[C]*c,F.y=E[C+1]*c,F.z=E[C+2]*c,A.push(F)}}if(void 0!==i.morphColors&&i.morphColors.length>0){console.warn('THREE.JSONLoader: "morphColors" no longer supported. Using them as face colors.');var tt=o.faces,rt=i.morphColors[0].colors;for(h=0,f=tt.length;h<f;h++)tt[h].color.fromArray(rt,3*h)}}(t,n),function(i,o){var c=[],h=[];void 0!==i.animation&&h.push(i.animation),void 0!==i.animations&&(i.animations.length?h=h.concat(i.animations):h.push(i.animations));for(var f=0;f<h.length;f++){var A=ps.parseAnimation(h[f],o.bones);A&&c.push(A)}if(o.morphTargets){var E=ps.CreateClipsFromMorphTargetSequences(o.morphTargets,10);c=c.concat(E)}c.length>0&&(o.animations=c)}(t,n),n.computeFaceNormals(),n.computeBoundingSphere(),void 0===t.materials||0===t.materials.length?{geometry:n}:{geometry:n,materials:Io.prototype.initMaterials(t.materials,this.resourcePath||e,this.crossOrigin)}}}),Object.assign(vl.prototype,{crossOrigin:"anonymous",load:function(t,e,n,r){""===this.texturePath&&(this.texturePath=t.substring(0,t.lastIndexOf("/")+1));var i=this;new Ui(i.manager).load(t,function(o){var c=null;try{c=JSON.parse(o)}catch(f){return void 0!==r&&r(f),void console.error("THREE:ObjectLoader: Can't parse "+t+".",f.message)}var h=c.metadata;void 0!==h&&void 0!==h.type&&"geometry"!==h.type.toLowerCase()?i.parse(c,e):console.error("THREE.ObjectLoader: Can't load "+t+". Use THREE.JSONLoader instead.")},n,r)},setTexturePath:function(t){return this.texturePath=t,this},setCrossOrigin:function(t){return this.crossOrigin=t,this}
1,parse:function(t,e){var n=this.parseShape(t.shapes),r=this.parseGeometries(t.geometries,n),i=this.parseImages(t.images,function(){void 0!==e&&e(h)}),o=this.parseTextures(t.textures,i),c=this.parseMaterials(t.materials,o),h=this.parseObject(t.object,r,c);return t.animations&&(h.animations=this.parseAnimations(t.animations)),(void 0===t.images||0===t.images.length)&&void 0!==e&&e(h),h},parseShape:function(t){var e={};if(void 0!==t)for(var n=0,r=t.length;n<r;n++){var i=(new So).fromJSON(t[n]);e[i.uuid]=i}return e},parseGeometries:function(t,e){var n={};if(void 0!==t)for(var r=new Va,i=new gl,o=0,c=t.length;o<c;o++){var h,f=t[o];switch(f.type){case"PlaneGeometry":case"PlaneBufferGeometry":h=new Zi[f.type](f.width,f.height,f.widthSegments,f.heightSegments);break;case"BoxGeometry":case"BoxBufferGeometry":case"CubeGeometry":h=new Zi[f.type](f.width,f.height,f.depth,f.widthSegments,f.heightSegments,f.depthSegments);break;case"CircleGeometry":case"CircleBufferGeometry":h=new Zi[f.type](f.radius,f.segments,f.thetaStart,f.thetaLength);break;case"CylinderGeometry":case"CylinderBufferGeometry":h=new Zi[f.type](f.radiusTop,f.radiusBottom,f.height,f.radialSegments,f.heightSegments,f.openEnded,f.thetaStart,f.thetaLength);break;case"ConeGeometry":case"ConeBufferGeometry":h=new Zi[f.type](f.radius,f.height,f.radialSegments,f.heightSegments,f.openEnded,f.thetaStart,f.thetaLength);break;case"SphereGeometry":case"SphereBufferGeometry":h=new Zi[f.type](f.radius,f.widthSegments,f.heightSegments,f.phiStart,f.phiLength,f.thetaStart,f.thetaLength);break;case"DodecahedronGeometry":case"DodecahedronBufferGeometry":case"IcosahedronGeometry":case"IcosahedronBufferGeometry":case"OctahedronGeometry":case"OctahedronBufferGeometry":case"TetrahedronGeometry":case"TetrahedronBufferGeometry":h=new Zi[f.type](f.radius,f.detail);break;case"RingGeometry":case"RingBufferGeometry":h=new Zi[f.type](f.innerRadius,f.outerRadius,f.thetaSegments,f.phiSegments,f.thetaStart,f.thetaLength);break;case"TorusGeometry":case"TorusBufferGeometry":h=new Zi[f.type](f.radius,f.tube,f.radialSegments,f.tubularSegments,f.arc);break;case"TorusKnotGeometry":case"TorusKnotBufferGeometry":h=new Zi[f.type](f.radius,f.tube,f.tubularSegments,f.radialSegments,f.p,f.q);break;case"LatheGeometry":case"LatheBufferGeometry":h=new Zi[f.type](f.points,f.segments,f.phiStart,f.phiLength);break;case"PolyhedronGeometry":case"PolyhedronBufferGeometry":h=new Zi[f.type](f.vertices,f.indices,f.radius,f.details);break;case"ShapeGeometry":case"ShapeBufferGeometry":for(var A=[],E=0,C=f.shapes.length;E<C;E++)A.push(e[f.shapes[E]]);h=new Zi[f.type](A,f.curveSegments);break;case"ExtrudeGeometry":case"ExtrudeBufferGeometry":for(A=[],E=0,C=f.shapes.length;E<C;E++)A.push(e[f.shapes[E]]);var S=f.options.extrudePath;void 0!==S&&(f.options.extrudePath=(new Il[S.type]).fromJSON(S)),h=new Zi[f.type](A,f.options);break;case"BufferGeometry":h=i.parse(f);break;case"Geometry":h=r.parse(f,this.texturePath).geometry;break;default:console.warn('THREE.ObjectLoader: Unsupported geometry type "'+f.type+'"');continue}h.uuid=f.uuid,void 0!==f.name&&(h.name=f.name),!0===h.isBufferGeometry&&void 0!==f.userData&&(h.userData=f.userData),n[f.uuid]=h}return n},parseMaterials:function(t,e){var n={};if(void 0!==t){var r=new ja;r.setTextures(e);for(var i=0,o=t.length;i<o;i++){var c=t[i];if("MultiMaterial"===c.type){for(var h=[],f=0;f<c.materials.length;f++)h.push(r.parse(c.materials[f]));n[c.uuid]=h}else n[c.uuid]=r.parse(c)}}return n},parseAnimations:function(t){for(var e=[],n=0;n<t.length;n++){var r=t[n],i=ps.parse(r);void 0!==r.uuid&&(i.uuid=r.uuid),e.push(i)}return e},parseImages:function(t,e){var n=this,r={};function i(tt){return n.manager.itemStart(tt),o.load(tt,function(){n.manager.itemEnd(tt)},void 0,function(){n.manager.itemEnd(tt),n.manager.itemError(tt)})}if(void 0!==t&&t.length>0){var o=new Zo(new Rl(e));o.setCrossOrigin(this.crossOrigin);for(var c=0,h=t.length;c<h;c++){var f=t[c],A=f.url;if(Array.isArray(A)){r[f.uuid]=[];for(var E=0,C=A.length;E<C;E++){var S=A[E],F=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(S)?S:n.texturePath+S;r[f.uuid].push(i(F))}}else F=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(f.url)?f.url:n.texturePath+f.url,r[f.uuid]=i(F)}}return r},parseTextures:function(t,e){function n(f,A){return"number"==typeof f?f:(console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",f),A[f])}
vendor: 5,376 bytes, line 1
1var r={};if(void 0!==t)for(var i=0,o=t.length;i<o;i++){var c,h=t[i];void 0===h.image&&console.warn('THREE.ObjectLoader: No "image" specified for',h.uuid),void 0===e[h.image]&&console.warn("THREE.ObjectLoader: Undefined image",h.image),(c=Array.isArray(e[h.image])?new sn(e[h.image]):new ge(e[h.image])).needsUpdate=!0,c.uuid=h.uuid,void 0!==h.name&&(c.name=h.name),void 0!==h.mapping&&(c.mapping=n(h.mapping,$s)),void 0!==h.offset&&c.offset.fromArray(h.offset),void 0!==h.repeat&&c.repeat.fromArray(h.repeat),void 0!==h.center&&c.center.fromArray(h.center),void 0!==h.rotation&&(c.rotation=h.rotation),void 0!==h.wrap&&(c.wrapS=n(h.wrap[0],Kl),c.wrapT=n(h.wrap[1],Kl)),void 0!==h.format&&(c.format=h.format),void 0!==h.minFilter&&(c.minFilter=n(h.minFilter,Bl)),void 0!==h.magFilter&&(c.magFilter=n(h.magFilter,Bl)),void 0!==h.anisotropy&&(c.anisotropy=h.anisotropy),void 0!==h.flipY&&(c.flipY=h.flipY),r[h.uuid]=c}return r},parseObject:function(t,e,n){var r;function i(tt){return void 0===e[tt]&&console.warn("THREE.ObjectLoader: Undefined geometry",tt),e[tt]}function o(tt){if(void 0!==tt){if(Array.isArray(tt)){for(var rt=[],ot=0,St=tt.length;ot<St;ot++){var yt=tt[ot];void 0===n[yt]&&console.warn("THREE.ObjectLoader: Undefined material",yt),rt.push(n[yt])}return rt}return void 0===n[tt]&&console.warn("THREE.ObjectLoader: Undefined material",tt),n[tt]}}switch(t.type){case"Scene":r=new uo,void 0!==t.background&&Number.isInteger(t.background)&&(r.background=new lt(t.background)),void 0!==t.fog&&("Fog"===t.fog.type?r.fog=new bs(t.fog.color,t.fog.near,t.fog.far):"FogExp2"===t.fog.type&&(r.fog=new _s(t.fog.color,t.fog.density)));break;case"PerspectiveCamera":r=new ei(t.fov,t.aspect,t.near,t.far),void 0!==t.focus&&(r.focus=t.focus),void 0!==t.zoom&&(r.zoom=t.zoom),void 0!==t.filmGauge&&(r.filmGauge=t.filmGauge),void 0!==t.filmOffset&&(r.filmOffset=t.filmOffset),void 0!==t.view&&(r.view=Object.assign({},t.view));break;case"OrthographicCamera":r=new Ro(t.left,t.right,t.top,t.bottom,t.near,t.far),void 0!==t.zoom&&(r.zoom=t.zoom),void 0!==t.view&&(r.view=Object.assign({},t.view));break;case"AmbientLight":r=new Ha(t.color,t.intensity);break;case"DirectionalLight":r=new za(t.color,t.intensity);break;case"PointLight":r=new ml(t.color,t.intensity,t.distance,t.decay);break;case"RectAreaLight":r=new xa(t.color,t.intensity,t.width,t.height);break;case"SpotLight":r=new Aa(t.color,t.intensity,t.distance,t.angle,t.penumbra,t.decay);break;case"HemisphereLight":r=new pl(t.color,t.groundColor,t.intensity);break;case"SkinnedMesh":console.warn("THREE.ObjectLoader.parseObject() does not support SkinnedMesh yet.");case"Mesh":var c=i(t.geometry),h=o(t.material);r=c.bones&&c.bones.length>0?new ws(c,h):new pe(c,h);break;case"LOD":r=new Gs;break;case"Line":r=new Ei(i(t.geometry),o(t.material),t.mode);break;case"LineLoop":r=new Es(i(t.geometry),o(t.material));break;case"LineSegments":r=new Vr(i(t.geometry),o(t.material));break;case"PointCloud":case"Points":r=new fo(i(t.geometry),o(t.material));break;case"Sprite":r=new Us(o(t.material));break;case"Group":r=new js;break;default:r=new Wt}if(r.uuid=t.uuid,void 0!==t.name&&(r.name=t.name),void 0!==t.matrix?(r.matrix.fromArray(t.matrix),void 0!==t.matrixAutoUpdate&&(r.matrixAutoUpdate=t.matrixAutoUpdate),r.matrixAutoUpdate&&r.matrix.decompose(r.position,r.quaternion,r.scale)):(void 0!==t.position&&r.position.fromArray(t.position),void 0!==t.rotation&&r.rotation.fromArray(t.rotation),void 0!==t.quaternion&&r.quaternion.fromArray(t.quaternion),void 0!==t.scale&&r.scale.fromArray(t.scale)),void 0!==t.castShadow&&(r.castShadow=t.castShadow),void 0!==t.receiveShadow&&(r.receiveShadow=t.receiveShadow),t.shadow&&(void 0!==t.shadow.bias&&(r.shadow.bias=t.shadow.bias),void 0!==t.shadow.radius&&(r.shadow.radius=t.shadow.radius),void 0!==t.shadow.mapSize&&r.shadow.mapSize.fromArray(t.shadow.mapSize),void 0!==t.shadow.camera&&(r.shadow.camera=this.parseObject(t.shadow.camera))),void 0!==t.visible&&(r.visible=t.visible),void 0!==t.frustumCulled&&(r.frustumCulled=t.frustumCulled),void 0!==t.renderOrder&&(r.renderOrder=t.renderOrder),void 0!==t.userData&&(r.userData=t.userData),void 0!==t.layers&&(r.layers.mask=t.layers),void 0!==t.children)for(var f=t.children,A=0;A<f.length;A++)r.add(this.parseObject(f[A],e,n));if("LOD"===t.type)for(var E=t.levels,C=0;C<E.length;C++){var S=E[C],F=r.getObjectByProperty("uuid",S.object);void 0!==F&&r.addLevel(F,S.distance)}return r}});var $s={UVMapping:300,CubeReflectionMapping:301,CubeRefractionMapping:302,EquirectangularReflectionMapping:303,EquirectangularRefractionMapping:304,SphericalReflectionMapping:305,CubeUVReflectionMapping:306,CubeUVRefractionMapping:307},Kl={RepeatWrapping:b,ClampToEdgeWrapping:B,MirroredRepeatWrapping:V},Bl={NearestFilter:_,NearestMipMapNearestFilter:1004,NearestMipMapLinearFilter:1005,LinearFilter:H,LinearMipMapNearestFilter:1007,LinearMipMapLinearFilter:Y};function _a(t){typeof createImageBitmap>"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.manager=void 0!==t?t:rs,this.options=void 0}function Ol(){this.type="ShapePath",this.color=new lt,this.subPaths=[],this.currentPath=null}function zl(t){this.type="Font",this.data=t}function lc(t,e,n,r,i){var o=i.glyphs[t]||i.glyphs["?"];if(o){var c,h,f,A,E,C,S,F,tt=new Ol;
1if(o.o)for(var rt=o._cachedOutline||(o._cachedOutline=o.o.split(" ")),ot=0,St=rt.length;ot<St;)switch(rt[ot++]){case"m":c=rt[ot++]*e+n,h=rt[ot++]*e+r,tt.moveTo(c,h);break;case"l":c=rt[ot++]*e+n,h=rt[ot++]*e+r,tt.lineTo(c,h);break;case"q":f=rt[ot++]*e+n,A=rt[ot++]*e+r,E=rt[ot++]*e+n,C=rt[ot++]*e+r,tt.quadraticCurveTo(E,C,f,A);break;case"b":f=rt[ot++]*e+n,A=rt[ot++]*e+r,E=rt[ot++]*e+n,C=rt[ot++]*e+r,S=rt[ot++]*e+n,F=rt[ot++]*e+r,tt.bezierCurveTo(E,C,S,F,f,A)}return{offsetX:o.ha*e,path:tt}}}function Xa(t){this.manager=void 0!==t?t:rs}_a.prototype={constructor:_a,setOptions:function(t){return this.options=t,this},load:function(t,e,n,r){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);var i=this,o=ns.get(t);if(void 0!==o)return i.manager.itemStart(t),setTimeout(function(){e&&e(o),i.manager.itemEnd(t)},0),o;fetch(t).then(function(c){return c.blob()}).then(function(c){return createImageBitmap(c,i.options)}).then(function(c){ns.add(t,c),e&&e(c),i.manager.itemEnd(t)}).catch(function(c){r&&r(c),i.manager.itemEnd(t),i.manager.itemError(t)})},setCrossOrigin:function(){return this},setPath:function(t){return this.path=t,this}},Object.assign(Ol.prototype,{moveTo:function(t,e){this.currentPath=new zs,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e)},lineTo:function(t,e){this.currentPath.lineTo(t,e)},quadraticCurveTo:function(t,e,n,r){this.currentPath.quadraticCurveTo(t,e,n,r)},bezierCurveTo:function(t,e,n,r,i,o){this.currentPath.bezierCurveTo(t,e,n,r,i,o)},splineThru:function(t){this.currentPath.splineThru(t)},toShapes:function(t,e){function n(Ne){for(var Fe=[],gn=0,$e=Ne.length;gn<$e;gn++){var ln=Ne[gn],Ue=new So;Ue.curves=ln.curves,Fe.push(Ue)}return Fe}function r(Ne,Fe){for(var gn=Fe.length,$e=!1,ln=gn-1,Ue=0;Ue<gn;ln=Ue++){var Xn=Fe[ln],Un=Fe[Ue],Jn=Un.x-Xn.x,Lr=Un.y-Xn.y;if(Math.abs(Lr)>Number.EPSILON){if(Lr<0&&(Xn=Fe[Ue],Jn=-Jn,Un=Fe[ln],Lr=-Lr),Ne.y<Xn.y||Ne.y>Un.y)continue;if(Ne.y===Xn.y){if(Ne.x===Xn.x)return!0}else{var bi=Lr*(Ne.x-Xn.x)-Jn*(Ne.y-Xn.y);if(0===bi)return!0;if(bi<0)continue;$e=!$e}}else{if(Ne.y!==Xn.y)continue;if(Un.x<=Ne.x&&Ne.x<=Xn.x||Xn.x<=Ne.x&&Ne.x<=Un.x)return!0}}return $e}var i=Ur.isClockWise,o=this.subPaths;if(0===o.length)return[];if(!0===e)return n(o);var c,h,f,A=[];if(1===o.length)return h=o[0],(f=new So).curves=h.curves,A.push(f),A;var E=!i(o[0].getPoints());E=t?!E:E;var C,S=[],F=[],tt=[],rt=0;F[rt]=void 0,tt[rt]=[];for(var ot=0,St=o.length;ot<St;ot++)c=i(C=(h=o[ot]).getPoints()),(c=t?!c:c)?(!E&&F[rt]&&rt++,F[rt]={s:new So,p:C},F[rt].s.curves=h.curves,E&&rt++,tt[rt]=[]):tt[rt].push({h,p:C[0]});if(!F[0])return n(o);if(F.length>1){for(var yt=!1,Et=[],Pt=0,se=F.length;Pt<se;Pt++)S[Pt]=[];for(Pt=0,se=F.length;Pt<se;Pt++)for(var Bt=tt[Pt],Ct=0;Ct<Bt.length;Ct++){for(var xe=Bt[Ct],Yt=!0,Ft=0;Ft<F.length;
1Ft++)r(xe.p,F[Ft].p)&&(Pt!==Ft&&Et.push({froms:Pt,tos:Ft,hole:Ct}),Yt?(Yt=!1,S[Ft].push(xe)):yt=!0);Yt&&S[Pt].push(xe)}Et.length>0&&(yt||(tt=S))}ot=0;for(var He,Xe=F.length;ot<Xe;ot++){A.push(f=F[ot].s);for(var _e=0,ke=(He=tt[ot]).length;_e<ke;_e++)f.holes.push(He[_e].h)}return A}}),Object.assign(zl.prototype,{isFont:!0,generateShapes:function(t,e){void 0===e&&(e=100);for(var n=[],r=function(h,f,A){for(var E=Array.from?Array.from(h):String(h).split(""),C=f/A.resolution,S=(A.boundingBox.yMax-A.boundingBox.yMin+A.underlineThickness)*C,F=[],tt=0,rt=0,ot=0;ot<E.length;ot++){var St=E[ot];if("\n"===St)tt=0,rt-=S;else{var yt=lc(St,C,tt,rt,A);tt+=yt.offsetX,F.push(yt.path)}}return F}(t,e,this.data),i=0,o=r.length;i<o;i++)Array.prototype.push.apply(n,r[i].toShapes());return n}}),Object.assign(Xa.prototype,{load:function(t,e,n,r){var i=this,o=new Ui(this.manager);o.setPath(this.path),o.load(t,function(c){var h;try{h=JSON.parse(c)}catch{console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."),h=JSON.parse(c.substring(65,c.length-2))}var f=i.parse(h);e&&e(f)},n,r)},parse:function(t){return new zl(t)},setPath:function(t){return this.path=t,this}});var $o,Ua={getContext:function(){return void 0===$o&&($o=new(window.AudioContext||window.webkitAudioContext)),$o},setContext:function(t){$o=t}};function Ga(t){this.manager=void 0!==t?t:rs}function Hl(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new ei,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new ei,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1}function Ps(t,e,n){Wt.call(this),this.type="CubeCamera";var r=90,i=new ei(r,1,t,e);i.up.set(0,-1,0),i.lookAt(new W(1,0,0)),this.add(i);var o=new ei(r,1,t,e);o.up.set(0,-1,0),o.lookAt(new W(-1,0,0)),this.add(o);var c=new ei(r,1,t,e);c.up.set(0,0,1),c.lookAt(new W(0,1,0)),this.add(c);var h=new ei(r,1,t,e);h.up.set(0,0,-1),h.lookAt(new W(0,-1,0)),this.add(h);var f=new ei(r,1,t,e);f.up.set(0,-1,0),f.lookAt(new W(0,0,1)),this.add(f);var A=new ei(r,1,t,e);A.up.set(0,-1,0),A.lookAt(new W(0,0,-1)),this.add(A),this.renderTarget=new rn(n,n,{format:at,magFilter:H,minFilter:H}),this.renderTarget.texture.name="CubeCamera",this.update=function(E,C){null===this.parent&&this.updateMatrixWorld();var S=this.renderTarget,F=S.texture.generateMipmaps;S.texture.generateMipmaps=!1,S.activeCubeFace=0,E.render(C,i,S),S.activeCubeFace=1,E.render(C,o,S),S.activeCubeFace=2,E.render(C,c,S),S.activeCubeFace=3,E.render(C,h,S),S.activeCubeFace=4,E.render(C,f,S),S.texture.generateMipmaps=F,S.activeCubeFace=5,E.render(C,A,S),E.setRenderTarget(null)},this.clear=function(E,C,S,F){for(var tt=this.renderTarget,rt=0;rt<6;rt++)tt.activeCubeFace=rt,E.setRenderTarget(tt),E.clear(C,S,F);E.setRenderTarget(null)}}function yl(){Wt.call(this),this.type="AudioListener",this.context=Ua.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null}function ta(t){Wt.call(this),this.type="Audio",this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.loop=!1,this.startTime=0,this.offset=0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.sourceType="empty",this.filters=[]}function Dl(t){ta.call(this,t),this.panner=this.context.createPanner(),this.panner.connect(this.gain)}function Nl(t,e){this.analyser=t.context.createAnalyser(),this.analyser.fftSize=void 0!==e?e:2048,this.data=new Uint8Array(this.analyser.frequencyBinCount),t.getOutput().connect(this.analyser)}function Al(t,e,n){this.binding=t,this.valueSize=n;var r,i=Float64Array;switch(e){case"quaternion":r=this._slerp;break;case"string":case"bool":i=Array,r=this._select;break;default:r=this._lerp}this.buffer=new i(4*n),this._mixBufferRegion=r,this.cumulativeWeight=0,this.useCount=0,this.referenceCount=0}Object.assign(Ga.prototype,{load:function(t,e,n,r){var i=new Ui(this.manager);i.setResponseType("arraybuffer"),i.load(t,function(o){var c=o.slice(0);Ua.getContext().decodeAudioData(c,function(h){e(h)})},n,r)}}),Object.assign(Hl.prototype,{update:function(){var t,e,n,r,i,o,c,h,f=new dt,A=new dt;return function(E){if(t!==this||e!==E.focus||n!==E.fov||r!==E.aspect*this.aspect||i!==E.near||o!==E.far||c!==E.zoom||h!==this.eyeSep){t=this,e=E.focus,n=E.fov,r=E.aspect*this.aspect,i=E.near,o=E.far,c=E.zoom;var C,S,F=E.projectionMatrix.clone(),tt=(h=this.eyeSep/2)*i/e,rt=i*Math.tan(U.DEG2RAD*n*.5)/c;A.elements[12]=-h,f.elements[12]=h,F.elements[0]=2*i/((S=rt*r+tt)-(C=-rt*r+tt)),F.elements[8]=(S+C)/(S-C),this.cameraL.projectionMatrix.copy(
1F),F.elements[0]=2*i/((S=rt*r-tt)-(C=-rt*r-tt)),F.elements[8]=(S+C)/(S-C),this.cameraR.projectionMatrix.copy(F)}this.cameraL.matrixWorld.copy(E.matrixWorld).multiply(A),this.cameraR.matrixWorld.copy(E.matrixWorld).multiply(f)}}()}),(Ps.prototype=Object.create(Wt.prototype)).constructor=Ps,yl.prototype=Object.assign(Object.create(Wt.prototype),{constructor:yl,getInput:function(){return this.gain},removeFilter:function(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this},getFilter:function(){return this.filter},setFilter:function(t){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=t,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this},getMasterVolume:function(){return this.gain.gain.value},setMasterVolume:function(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this},updateMatrixWorld:function(){var t=new W,e=new wt,n=new W,r=new W;return function(i){Wt.prototype.updateMatrixWorld.call(this,i);var o=this.context.listener,c=this.up;this.matrixWorld.decompose(t,e,n),r.set(0,0,-1).applyQuaternion(e),o.positionX?(o.positionX.setValueAtTime(t.x,this.context.currentTime),o.positionY.setValueAtTime(t.y,this.context.currentTime),o.positionZ.setValueAtTime(t.z,this.context.currentTime),o.forwardX.setValueAtTime(r.x,this.context.currentTime),o.forwardY.setValueAtTime(r.y,this.context.currentTime),o.forwardZ.setValueAtTime(r.z,this.context.currentTime),o.upX.setValueAtTime(c.x,this.context.currentTime),o.upY.setValueAtTime(c.y,this.context.currentTime),o.upZ.setValueAtTime(c.z,this.context.currentTime)):(o.setPosition(t.x,t.y,t.z),o.setOrientation(r.x,r.y,r.z,c.x,c.y,c.z))}}()}),ta.prototype=Object.assign(Object.create(Wt.prototype),{constructor:ta,getOutput:function(){return this.gain},setNodeSource:function(t){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=t,this.connect(),this},setMediaElementSource:function(t){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(t),this.connect(),this},setBuffer:function(t){return this.buffer=t,this.sourceType="buffer",this.autoplay&&this.play(),this},play:function(){if(!0!==this.isPlaying){if(!1!==this.hasPlaybackControl){var t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.onended=this.onEnded.bind(this),t.playbackRate.setValueAtTime(this.playbackRate,this.startTime),this.startTime=this.context.currentTime,t.start(this.startTime,this.offset),this.isPlaying=!0,this.source=t,this.connect()}console.warn("THREE.Audio: this Audio has no playback control.")}else console.warn("THREE.Audio: Audio is already playing.")},pause:function(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this.source.stop(),this.source.onended=null,this.offset+=(this.context.currentTime-this.startTime)*this.playbackRate,this.isPlaying=!1),this;console.warn("THREE.Audio: this Audio has no playback control.")},stop:function(){if(!1!==this.hasPlaybackControl)return this.source.stop(),this.source.onended=null,this.offset=0,this.isPlaying=!1,this;console.warn("THREE.Audio: this Audio has no playback control.")},connect:function(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(var t=1,e=this.filters.length;t<e;t++)this.filters[t-1].connect(this.filters[t]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this},disconnect:function(){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(var t=1,e=this.filters.length;t<e;t++)this.filters[t-1].disconnect(this.filters[t]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this},getFilters:function(){return this.filters},setFilters:function(t){return t||(t=[]),!0===this.isPlaying?(this.disconnect(),this.filters=t,this.connect()):this.filters=t,this},getFilter:function(){return this.getFilters()[0]},setFilter:function(t){return this.setFilters(t?[t]:[])},setPlaybackRate:function(t){if(!1!==this.hasPlaybackControl)return this.playbackRate=t,!0===this.isPlaying&&this.source.playbackRate.setValueAtTime(this.playbackRate,this.context.currentTime),this;console.warn("THREE.Audio: this Audio has no playback control.")},getPlaybackRate:function(){return this.playbackRate},onEnded:function(){this.isPlaying=!1},getLoop:function(){return!1===this.hasPlaybackControl?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop},setLoop:function(t){if(!1!==this.hasPlaybackControl)return this.loop=t,!0===this.isPlaying&&(this.source.loop=this.loop),this;console.warn("THREE.Audio: this Audio has no playback control.")},getVolume:function(){return this.gain.gain.value},setVolume:function(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}}),Dl.prototype=Object.assign(Object.create(ta.prototype),{constructor:Dl,getOutput:function(){return this.panner},getRefDistance:function(){return this.panner.refDistance},setRefDistance:function(t){return this.panner.refDistance=t,this},getRolloffFactor:function(){return this.panner.rolloffFactor},setRolloffFactor:function(t){return this.panner.rolloffFactor=t,this},getDistanceModel:function(){return this.panner.distanceModel},setDistanceModel:function(t){return this.panner.distanceModel=t,this},getMaxDistance:function(){return this.panner.maxDistance},setMaxDistance:function(t){return this.panner.maxDistance=t,this},setDirectionalCone:function(t,e,n){return this.panner.coneInnerAngle=t,this.panner.coneOuterAngle=e,this.panner.coneOuterGain=n,this},updateMatrixWorld:function(){var t=new W,e=new wt,n=new W,r=new W;return function(i){Wt.prototype.updateMatrixWorld.call(this,i);var o=this.panner;this.matrixWorld.decompose(t,e,n),r.set(0,0,1).applyQuaternion(e),o.setPosition(t.x,t.y,t.z),o.setOrientation(r.x,r.y,r.z)}}()}),Object.assign(Nl.prototype,{getFrequencyData:function(){return this.analyser.getByteFrequencyData(this.data),this.data},getAverageFrequency:function(){for(var t=0,e=this.getFrequencyData(),n=0;n<e.length;n++)t+=e[n];return t/e.length}}),Object.assign(Al.prototype,{accumulate:function(t,e){var n=this.buffer,r=this.valueSize,i=t*r+r,o=this.cumulativeWeight;if(0===o){for(var c=0;c!==r;++c)n[i+c]=n[c];o=e}else this._mixBufferRegion(n,i,0,e/(o+=e),r);this.cumulativeWeight=o},apply:function(t){var e=this.valueSize,n=this.buffer,r=t*e+e,i=this.cumulativeWeight,o=this.binding;this.cumulativeWeight=0,i<1&&this._mixBufferRegion(n,r,3*e,1-i,e);for(var c=e,h=e+e;c!==h;++c)if(n[c]!==n[c+e]){o.setValue(n,r);break}},saveOriginalState:function(){var t=this.buffer,e=this.valueSize,n=3*e;this.binding.getValue(t,n);for(var r=e,i=n;r!==i;++r)t[r]=t[n+r%e];this.cumulativeWeight=0},restoreOriginalState:function(){this.binding.setValue(this.buffer,3*this.valueSize)},_select:function(t,e,n,r,i){if(r>=.5)for(var o=0;o!==i;++o)t[e+o]=t[n+o]},_slerp:function(t,e,n,r){wt.slerpFlat(t,e,t,e,t,n,r)},_lerp:function(t,e,n,r,i){for(var o=1-r,c=0;c!==i;++c){var h=e+c;t[h]=t[h]*o+t[n+c]*r}}});var Fl,kl,xl="\\[\\]\\.:\\/";function jl(t,e,n){var r=n||Gi.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,r)}function Gi(t,e,n){this.path=e,this.parsedPath=n||Gi.parseTrackName(e),this.node=Gi.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t}function $l(){this.uuid=U.generateUUID(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;var t={};this._indicesByUUID=t;
vendor: 5,758 bytes, line 1
1for(var e=0,n=arguments.length;e!==n;++e)t[arguments[e].uuid]=e;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};var r=this;this.stats={objects:{get total(){return r._objects.length},get inUse(){return this.total-r.nCachedObjects_}},get bindingsPerObject(){return r._bindings.length}}}function tc(t,e,n){this._mixer=t,this._clip=e,this._localRoot=n||null;for(var r=e.tracks,i=r.length,o=new Array(i),c={endingStart:g,endingEnd:g},h=0;h!==i;++h){var f=r[h].createInterpolant(null);o[h]=f,f.settings=c}this._interpolantSettings=c,this._interpolants=o,this._propertyBindings=new Array(i),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}function Wa(t){this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}function Qa(t){"string"==typeof t&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),t=arguments[1]),this.value=t}function bl(){Te.call(this),this.type="InstancedBufferGeometry",this.maxInstancedCount=void 0}function wl(t,e,n){eo.call(this,t,e),this.meshPerAttribute=n||1}function El(t,e,n,r){"number"==typeof n&&(r=n,n=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.")),qe.call(this,t,e,n),this.meshPerAttribute=r||1}function Vl(t,e,n,r){this.ray=new me(t,e),this.near=n||0,this.far=r||1/0,this.params={Mesh:{},Line:{},LOD:{},Points:{threshold:1},Sprite:{}},Object.defineProperties(this.params,{PointCloud:{get:function(){return console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points."),this.Points}}})}function _l(t,e){return t.distance-e.distance}function qa(t,e,n,r){if(!1!==t.visible&&(t.raycast(e,n),!0===r))for(var i=t.children,o=0,c=i.length;o<c;o++)qa(i[o],e,n,!0)}function ec(t){this.autoStart=void 0===t||t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}function Xl(t,e,n){return this.radius=void 0!==t?t:1,this.phi=void 0!==e?e:0,this.theta=void 0!==n?n:0,this}function nc(t,e,n){return this.radius=void 0!==t?t:1,this.theta=void 0!==e?e:0,this.y=void 0!==n?n:0,this}function Cl(t,e){this.min=void 0!==t?t:new G(1/0,1/0),this.max=void 0!==e?e:new G(-1/0,-1/0)}function Za(t,e){this.start=void 0!==t?t:new W,this.end=void 0!==e?e:new W}function Oo(t){Wt.call(this),this.material=t,this.render=function(){}}function Ya(t,e,n,r){this.object=t,this.size=void 0!==e?e:1;var i=void 0!==n?n:16711680,o=void 0!==r?r:1,c=0,h=this.object.geometry;h&&h.isGeometry?c=3*h.faces.length:h&&h.isBufferGeometry&&(c=h.attributes.normal.count);var f=new Te,A=new Lt(2*c*3,3);f.addAttribute("position",A),Vr.call(this,f,new Wr({color:i,linewidth:o})),this.matrixAutoUpdate=!1,this.update()}function zo(t,e){Wt.call(this),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=e;for(var n=new Te,r=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1],i=0,o=1;i<32;i++,o++){var c=i/32*Math.PI*2,h=o/32*Math.PI*2;r.push(Math.cos(c),Math.sin(c),1,Math.cos(h),Math.sin(h),1)}n.addAttribute("position",new Lt(r,3));var f=new Wr({fog:!1});this.cone=new Vr(n,f),this.add(this.cone),this.update()}function rc(t){var e=[];t&&t.isBone&&e.push(t);for(var n=0;n<t.children.length;n++)e.push.apply(e,rc(t.children[n]));return e}function Ca(t){for(var e=rc(t),n=new Te,r=[],i=[],o=new lt(0,0,1),c=new lt(0,1,0),h=0;h<e.length;h++){var f=e[h];f.parent&&f.parent.isBone&&(r.push(0,0,0),r.push(0,0,0),i.push(o.r,o.g,o.b),i.push(c.r,c.g,c.b))}n.addAttribute("position",new Lt(r,3)),n.addAttribute("color",new Lt(i,3));var A=new Wr({vertexColors:2,depthTest:!1,depthWrite:!1,transparent:!0});Vr.call(this,n,A),this.root=t,this.bones=e,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1}function ea(t,e,n){this.light=t,this.light.updateMatrixWorld(),this.color=n;var r=new Ai(e,4,2),i=new le({wireframe:!0,fog:!1});pe.call(this,r,i),this.matrix=this.light.matrixWorld,this.matrixAutoUpdate=!1,this.update()}function Ta(t,e){Wt.call(this),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=e;var n=new Wr({fog:!1}),r=new Te;r.addAttribute("position",new qe(new Float32Array(15),3)),this.line=new Ei(r,n),this.add(this.line),this.update()}function Sa(t,e,n){Wt.call(this),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n;var r=new yo(e);r.rotateY(.5*Math.PI),this.material=new le({wireframe:!0,fog:!1}),void 0===this.color&&(this.material.vertexColors=2);var i=r.getAttribute("position"),o=new Float32Array(3*i.count);r.addAttribute("color",new qe(o,3)),this.add(new pe(r,this.material)),this.update()}function Ja(t,e,n,r){t=t||10,e=e||10,n=new lt(void 0!==n?n:4473924),r=new lt(void 0!==r?r:8947848);for(var i=e/2,o=t/e,c=t/2,h=[],f=[],A=0,E=0,C=-c;A<=e;A++,C+=o){h.push(-c,0,C,c,0,C),h.push(C,0,-c,C,0,c);var S=A===i?n:r;S.toArray(f,E),S.toArray(f,E+=3),S.toArray(f,E+=3),S.toArray(f,E+=3),E+=3}var F=new Te;F.addAttribute("position",new Lt(h,3)),F.addAttribute("color",new Lt(f,3));var tt=new Wr({vertexColors:2});Vr.call(this,F,tt)}function io(t,e,n,r,i,o){t=t||10,e=e||16,n=n||8,r=r||64,i=new lt(void 0!==i?i:4473924),o=new lt(void 0!==o?o:8947848);var c,h,f,A,E,C,S,F=[],tt=[];for(A=0;A<=e;A++)f=A/e*(2*Math.PI),c=Math.sin(f)*t,h=Math.cos(f)*t,F.push(0,0,0),F.push(c,0,h),tt.push((S=1&A?i:o).r,S.g,S.b),tt.push(S.r,S.g,S.b);for(A=0;A<=n;A++)for(S=1&A?i:o,C=t-t/n*A,E=0;
vendor: 5,571 bytes, line 1
1E<r;E++)f=E/r*(2*Math.PI),c=Math.sin(f)*C,h=Math.cos(f)*C,F.push(c,0,h),tt.push(S.r,S.g,S.b),f=(E+1)/r*(2*Math.PI),c=Math.sin(f)*C,h=Math.cos(f)*C,F.push(c,0,h),tt.push(S.r,S.g,S.b);var rt=new Te;rt.addAttribute("position",new Lt(F,3)),rt.addAttribute("color",new Lt(tt,3));var ot=new Wr({vertexColors:2});Vr.call(this,rt,ot)}function Tl(t,e,n,r){this.object=t,this.size=void 0!==e?e:1;var i=void 0!==n?n:16776960,o=void 0!==r?r:1,c=0,h=this.object.geometry;h&&h.isGeometry?c=h.faces.length:console.warn("THREE.FaceNormalsHelper: only THREE.Geometry is supported. Use THREE.VertexNormalsHelper, instead.");var f=new Te,A=new Lt(2*c*3,3);f.addAttribute("position",A),Vr.call(this,f,new Wr({color:i,linewidth:o})),this.matrixAutoUpdate=!1,this.update()}function na(t,e,n){Wt.call(this),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n,void 0===e&&(e=1);var r=new Te;r.addAttribute("position",new Lt([-e,e,0,e,e,0,e,-e,0,-e,-e,0,-e,e,0],3));var i=new Wr({fog:!1});this.lightPlane=new Ei(r,i),this.add(this.lightPlane),(r=new Te).addAttribute("position",new Lt([0,0,0,0,0,1],3)),this.targetLine=new Ei(r,i),this.add(this.targetLine),this.update()}function Ka(t){var e=new Te,n=new Wr({color:16777215,vertexColors:1}),r=[],i=[],o={},c=new lt(16755200),h=new lt(16711680),f=new lt(43775),A=new lt(16777215),E=new lt(3355443);function C(F,tt,rt){S(F,rt),S(tt,rt)}function S(F,tt){r.push(0,0,0),i.push(tt.r,tt.g,tt.b),void 0===o[F]&&(o[F]=[]),o[F].push(r.length/3-1)}C("n1","n2",c),C("n2","n4",c),C("n4","n3",c),C("n3","n1",c),C("f1","f2",c),C("f2","f4",c),C("f4","f3",c),C("f3","f1",c),C("n1","f1",c),C("n2","f2",c),C("n3","f3",c),C("n4","f4",c),C("p","n1",h),C("p","n2",h),C("p","n3",h),C("p","n4",h),C("u1","u2",f),C("u2","u3",f),C("u3","u1",f),C("c","t",A),C("p","c",E),C("cn1","cn2",E),C("cn3","cn4",E),C("cf1","cf2",E),C("cf3","cf4",E),e.addAttribute("position",new Lt(r,3)),e.addAttribute("color",new Lt(i,3)),Vr.call(this,e,n),this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=o,this.update()}function Pa(t,e){this.object=t,void 0===e&&(e=16776960);var n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),r=new Float32Array(24),i=new Te;i.setIndex(new qe(n,1)),i.addAttribute("position",new qe(r,3)),Vr.call(this,i,new Wr({color:e})),this.matrixAutoUpdate=!1,this.update()}function $a(t,e){this.type="Box3Helper",this.box=t;var n=void 0!==e?e:16776960,r=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new Te;i.setIndex(new qe(r,1)),i.addAttribute("position",new Lt([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),Vr.call(this,i,new Wr({color:n})),this.geometry.computeBoundingSphere()}function hr(t,e,n){this.type="PlaneHelper",this.plane=t,this.size=void 0===e?1:e;var r=void 0!==n?n:16776960,i=new Te;i.addAttribute("position",new Lt([1,-1,1,-1,1,1,-1,-1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,0,0,1,0,0,0],3)),i.computeBoundingSphere(),Ei.call(this,i,new Wr({color:r}));var o=new Te;o.addAttribute("position",new Lt([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3)),o.computeBoundingSphere(),this.add(new pe(o,new le({color:r,opacity:.2,transparent:!0,depthWrite:!1})))}function so(t,e,n,r,i,o){Wt.call(this),void 0===r&&(r=16776960),void 0===n&&(n=1),void 0===i&&(i=.2*n),void 0===o&&(o=.2*i),void 0===Fl&&((Fl=new Te).addAttribute("position",new Lt([0,0,0,0,1,0],3)),(kl=new qs(0,.5,1,5,1)).translate(0,-.5,0)),this.position.copy(e),this.line=new Ei(Fl,new Wr({color:r})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new pe(kl,new le({color:r})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(n,i,o)}function Sl(t){var e=[0,0,0,t=t||1,0,0,0,0,0,0,t,0,0,0,0,0,0,t],n=new Te;n.addAttribute("position",new Lt(e,3)),n.addAttribute("color",new Lt([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));var r=new Wr({vertexColors:2});Vr.call(this,n,r)}function Ul(t){console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead."),Ji.call(this,t),this.type="catmullrom",this.closed=!0}function ic(t){console.warn("THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead."),Ji.call(this,t),this.type="catmullrom"}function ra(t){console.warn("THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead."),Ji.call(this,t),this.type="catmullrom"}Object.assign(jl.prototype,{getValue:function(t,e){this.bind();var n=this._bindings[this._targetGroup.nCachedObjects_];void 0!==n&&n.getValue(t,e)},setValue:function(t,e){for(var n=this._bindings,r=this._targetGroup.nCachedObjects_,i=n.length;r!==i;++r)n[r].setValue(t,e)},bind:function(){for(var t=this._bindings,e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()},unbind:function(){for(var t=this._bindings,e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}}),Object.assign(Gi,{Composite:jl,create:function(t,e,n){return t&&t.isAnimationObjectGroup?new Gi.Composite(t,e,n):new Gi(t,e,n)},sanitizeNodeName:function(){var t=new RegExp("["+xl+"]","g");return function(e){return e.replace(/\s/g,"_").replace(t,"")}}(),parseTrackName:function(){var t="[^"+xl+"]",e="[^"+xl.replace("\\.","")+"]",n=/((?:WC+[\/:])*)/.source.replace("WC",t),r=/(WCOD+)?/.source.replace("WCOD",e),i=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",t),o=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",t),c=new RegExp("^"+n+r+i+o+"$"),h=["material","materials","bones"];return function(f){var A=c.exec(f);
vendor: 13,124 bytes, line 1
1if(!A)throw new Error("PropertyBinding: Cannot parse trackName: "+f);var E={nodeName:A[2],objectName:A[3],objectIndex:A[4],propertyName:A[5],propertyIndex:A[6]},C=E.nodeName&&E.nodeName.lastIndexOf(".");if(void 0!==C&&-1!==C){var S=E.nodeName.substring(C+1);-1!==h.indexOf(S)&&(E.nodeName=E.nodeName.substring(0,C),E.objectName=S)}if(null===E.propertyName||0===E.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+f);return E}}(),findNode:function(t,e){if(!e||""===e||"root"===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){var n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){var r=function(o){for(var c=0;c<o.length;c++){var h=o[c];if(h.name===e||h.uuid===e)return h;var f=r(h.children);if(f)return f}return null},i=r(t.children);if(i)return i}return null}}),Object.assign(Gi.prototype,{_getValue_unavailable:function(){},_setValue_unavailable:function(){},BindingType:{Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},Versioning:{None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},GetterByBindingType:[function(t,e){t[e]=this.node[this.propertyName]},function(t,e){for(var n=this.resolvedProperty,r=0,i=n.length;r!==i;++r)t[e++]=n[r]},function(t,e){t[e]=this.resolvedProperty[this.propertyIndex]},function(t,e){this.resolvedProperty.toArray(t,e)}],SetterByBindingTypeAndVersioning:[[function(t,e){this.targetObject[this.propertyName]=t[e]},function(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.needsUpdate=!0},function(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}],[function(t,e){for(var n=this.resolvedProperty,r=0,i=n.length;r!==i;++r)n[r]=t[e++]},function(t,e){for(var n=this.resolvedProperty,r=0,i=n.length;r!==i;++r)n[r]=t[e++];this.targetObject.needsUpdate=!0},function(t,e){for(var n=this.resolvedProperty,r=0,i=n.length;r!==i;++r)n[r]=t[e++];this.targetObject.matrixWorldNeedsUpdate=!0}],[function(t,e){this.resolvedProperty[this.propertyIndex]=t[e]},function(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.needsUpdate=!0},function(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}],[function(t,e){this.resolvedProperty.fromArray(t,e)},function(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.needsUpdate=!0},function(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.matrixWorldNeedsUpdate=!0}]],getValue:function(t,e){this.bind(),this.getValue(t,e)},setValue:function(t,e){this.bind(),this.setValue(t,e)},bind:function(){var t=this.node,e=this.parsedPath,n=e.objectName,r=e.propertyName,i=e.propertyIndex;if(t||(t=Gi.findNode(this.rootNode,e.nodeName)||this.rootNode,this.node=t),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,t){if(n){var o=e.objectIndex;switch(n){case"materials":if(!t.material)return void console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);if(!t.material.materials)return void console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);t=t.material.materials;break;case"bones":if(!t.skeleton)return void console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);t=t.skeleton.bones;for(var c=0;c<t.length;c++)if(t[c].name===o){o=c;break}break;default:if(void 0===t[n])return void console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);t=t[n]}if(void 0!==o){if(void 0===t[o])return void console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,t);t=t[o]}}var h=t[r];if(void 0!==h){var f=this.Versioning.None;this.targetObject=t,void 0!==t.needsUpdate?f=this.Versioning.NeedsUpdate:void 0!==t.matrixWorldNeedsUpdate&&(f=this.Versioning.MatrixWorldNeedsUpdate);var A=this.BindingType.Direct;if(void 0!==i){if("morphTargetInfluences"===r){if(!t.geometry)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);if(t.geometry.isBufferGeometry){if(!t.geometry.morphAttributes)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);for(c=0;c<this.node.geometry.morphAttributes.position.length;c++)if(t.geometry.morphAttributes.position[c].name===i){i=c;break}}else{if(!t.geometry.morphTargets)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphTargets.",this);for(c=0;c<this.node.geometry.morphTargets.length;c++)if(t.geometry.morphTargets[c].name===i){i=c;break}}}A=this.BindingType.ArrayElement,this.resolvedProperty=h,this.propertyIndex=i}else void 0!==h.fromArray&&void 0!==h.toArray?(A=this.BindingType.HasFromToArray,this.resolvedProperty=h):Array.isArray(h)?(A=this.BindingType.EntireArray,this.resolvedProperty=h):this.propertyName=r;this.getValue=this.GetterByBindingType[A],this.setValue=this.SetterByBindingTypeAndVersioning[A][f]}else console.error("THREE.PropertyBinding: Trying to update property for track: "+e.nodeName+"."+r+" but it wasn't found.",t)}else console.error("THREE.PropertyBinding: Trying to update node for track: "+this.path+" but it wasn't found.")},unbind:function(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}),Object.assign(Gi.prototype,{_getValue_unbound:Gi.prototype.getValue,_setValue_unbound:Gi.prototype.setValue}),Object.assign($l.prototype,{isAnimationObjectGroup:!0,add:function(){for(var t=this._objects,e=t.length,n=this.nCachedObjects_,r=this._indicesByUUID,i=this._paths,o=this._parsedPaths,c=this._bindings,h=c.length,f=void 0,A=0,E=arguments.length;A!==E;++A){var C=arguments[A],S=C.uuid,F=r[S];if(void 0===F){F=e++,r[S]=F,t.push(C);for(var tt=0,rt=h;tt!==rt;++tt)c[tt].push(new Gi(C,i[tt],o[tt]))}else if(F<n){f=t[F];var ot=--n,St=t[ot];for(r[St.uuid]=F,t[F]=St,r[S]=ot,t[ot]=C,tt=0,rt=h;tt!==rt;++tt){var yt=c[tt],Et=yt[ot],Pt=yt[F];yt[F]=Et,void 0===Pt&&(Pt=new Gi(C,i[tt],o[tt])),yt[ot]=Pt}}else t[F]!==f&&console.error("THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.")}this.nCachedObjects_=n},remove:function(){for(var t=this._objects,e=this.nCachedObjects_,n=this._indicesByUUID,r=this._bindings,i=r.length,o=0,c=arguments.length;o!==c;++o){var h=arguments[o],f=h.uuid,A=n[f];if(void 0!==A&&A>=e){var E=e++,C=t[E];n[C.uuid]=A,t[A]=C,n[f]=E,t[E]=h;for(var S=0,F=i;S!==F;++S){var tt=r[S],rt=tt[E],ot=tt[A];tt[A]=rt,tt[E]=ot}}}this.nCachedObjects_=e},uncache:function(){for(var t=this._objects,e=t.length,n=this.nCachedObjects_,r=this._indicesByUUID,i=this._bindings,o=i.length,c=0,h=arguments.length;c!==h;++c){var f=arguments[c],A=f.uuid,E=r[A];if(void 0!==E)if(delete r[A],E<n){var C=--n,S=t[C],F=t[yt=--e];r[S.uuid]=E,t[E]=S,r[F.uuid]=C,t[C]=F,t.pop();for(var tt=0,rt=o;tt!==rt;++tt){var ot=(Et=i[tt])[C],St=Et[yt];Et[E]=ot,Et[C]=St,Et.pop()}}else{var yt;for(r[(F=t[yt=--e]).uuid]=E,t[E]=F,t.pop(),tt=0,rt=o;tt!==rt;++tt){var Et;(Et=i[tt])[E]=Et[yt],Et.pop()}}}this.nCachedObjects_=n},subscribe_:function(t,e){var n=this._bindingsIndicesByPath,r=n[t],i=this._bindings;if(void 0!==r)return i[r];var o=this._paths,c=this._parsedPaths,h=this._objects,f=this.nCachedObjects_,A=new Array(h.length);n[t]=r=i.length,o.push(t),c.push(e),i.push(A);for(var E=f,C=h.length;E!==C;++E)A[E]=new Gi(h[E],t,e);return A},unsubscribe_:function(t){var e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){var r=this._paths,i=this._parsedPaths,o=this._bindings,c=o.length-1,h=o[c];e[t[c]]=n,o[n]=h,o.pop(),i[n]=i[c],i.pop(),r[n]=r[c],r.pop()}}}),Object.assign(tc.prototype,{play:function(){return this._mixer._activateAction(this),this},stop:function(){return this._mixer._deactivateAction(this),this.reset()},reset:function(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()},isRunning:function(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)},isScheduled:function(){return this._mixer._isActiveAction(this)},startAt:function(t){return this._startTime=t,this},setLoop:function(t,e){return this.loop=t,this.repetitions=e,this},setEffectiveWeight:function(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()},getEffectiveWeight:function(){return this._effectiveWeight},fadeIn:function(t){return this._scheduleFading(t,0,1)},fadeOut:function(t){return this._scheduleFading(t,1,0)},crossFadeFrom:function(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){var r=this._clip.duration,i=t._clip.duration,o=r/i;t.warp(1,i/r,e),this.warp(o,1,e)}return this},crossFadeTo:function(t,e,n){return t.crossFadeFrom(this,e,n)},stopFading:function(){var t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this},setEffectiveTimeScale:function(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()},getEffectiveTimeScale:function(){return this._effectiveTimeScale},setDuration:function(t){return this.timeScale=this._clip.duration/t,this.stopWarping()},syncWith:function(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()},halt:function(t){return this.warp(this._effectiveTimeScale,0,t)},warp:function(t,e,n){var r=this._mixer,i=r.time,o=this._timeScaleInterpolant,c=this.timeScale;null===o&&(o=r._lendControlInterpolant(),this._timeScaleInterpolant=o);var h=o.parameterPositions,f=o.sampleValues;return h[0]=i,h[1]=i+n,f[0]=t/c,f[1]=e/c,this},stopWarping:function(){var t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this},getMixer:function(){return this._mixer},getClip:function(){return this._clip},getRoot:function(){return this._localRoot||this._mixer._root},_update:function(t,e,n,r){if(this.enabled){var i=this._startTime;if(null!==i){var o=(t-i)*n;if(o<0||0===n)return;this._startTime=null,e=n*o}e*=this._updateTimeScale(t);var c=this._updateTime(e),h=this._updateWeight(t);if(h>0)for(var f=this._interpolants,A=this._propertyBindings,E=0,C=f.length;E!==C;++E)f[E].evaluate(c),A[E].accumulate(r,h)}else this._updateWeight(t)},_updateWeight:function(t){var e=0;if(this.enabled){e=this.weight;var n=this._weightInterpolant;if(null!==n){var r=n.evaluate(t)[0];e*=r,t>n.parameterPositions[1]&&(this.stopFading(),0===r&&(this.enabled=!1))}}return this._effectiveWeight=e,e},_updateTimeScale:function(t){var e=0;if(!this.paused){e=this.timeScale;var n=this._timeScaleInterpolant;null!==n&&(e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e))}return this._effectiveTimeScale=e,e},_updateTime:function(t){var e=this.time+t,n=this._clip.duration,r=this.loop,i=this._loopCount,o=2202===r;if(0===t)return-1===i?e:o&&1==(1&i)?n-e:e;if(2200===r){-1===i&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(e>=n)e=n;else{if(!(e<0))break t;e=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===i&&(t>=0?(i=0,this._setEndings(!0,0===this.repetitions,o)):this._setEndings(0===this.repetitions,!0,o)),e>=n||e<0){var c=Math.floor(e/n);e-=n*c,i+=Math.abs(c);var h=this.repetitions-i;if(h<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,e=t>0?n:0,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===h){var f=t<0;this._setEndings(f,!f,o)}else this._setEndings(!1,!1,o);this._loopCount=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:c})}}if(o&&1==(1&i))return this.time=e,n-e}return this.time=e,e},_setEndings:function(t,e,n){var r=this._interpolantSettings;n?(r.endingStart=x,r.endingEnd=x):(r.endingStart=t?this.zeroSlopeAtStart?x:g:P,r.endingEnd=e?this.zeroSlopeAtEnd?x:g:P)},_scheduleFading:function(t,e,n){var r=this._mixer,i=r.time,o=this._weightInterpolant;null===o&&(o=r._lendControlInterpolant(),this._weightInterpolant=o);var c=o.parameterPositions,h=o.sampleValues;return c[0]=i,h[0]=e,c[1]=i+t,h[1]=n,this}}),Wa.prototype=Object.assign(Object.create(D.prototype),{constructor:Wa,_bindAction:function(t,e){var n=t._localRoot||this._root,r=t._clip.tracks,i=r.length,o=t._propertyBindings,c=t._interpolants,h=n.uuid,f=this._bindingsByRootAndName,A=f[h];void 0===A&&(f[h]=A={});for(var E=0;E!==i;++E){var C=r[E],S=C.name,F=A[S];if(void 0!==F)o[E]=F;else{if(void 0!==(F=o[E])){null===F._cacheIndex&&(++F.referenceCount,this._addInactiveBinding(F,h,S));continue}++(F=new Al(Gi.create(n,S,e&&e._propertyBindings[E].binding.parsedPath),C.ValueTypeName,C.getValueSize())).referenceCount,this._addInactiveBinding(F,h,S),o[E]=F}c[E].resultBuffer=F.buffer}},_activateAction:function(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){var e=(t._localRoot||this._root).uuid,n=t._clip.uuid,r
vendor: 11,569 bytes, line 1
1=this._actionsByClip[n];this._bindAction(t,r&&r.knownActions[0]),this._addInactiveAction(t,n,e)}for(var i=t._propertyBindings,o=0,c=i.length;o!==c;++o){var h=i[o];0==h.useCount++&&(this._lendBinding(h),h.saveOriginalState())}this._lendAction(t)}},_deactivateAction:function(t){if(this._isActiveAction(t)){for(var e=t._propertyBindings,n=0,r=e.length;n!==r;++n){var i=e[n];0==--i.useCount&&(i.restoreOriginalState(),this._takeBackBinding(i))}this._takeBackAction(t)}},_initMemoryManager:function(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;var t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}},_isActiveAction:function(t){var e=t._cacheIndex;return null!==e&&e<this._nActiveActions},_addInactiveAction:function(t,e,n){var r=this._actions,i=this._actionsByClip,o=i[e];if(void 0===o)o={knownActions:[t],actionByRoot:{}},t._byClipCacheIndex=0,i[e]=o;else{var c=o.knownActions;t._byClipCacheIndex=c.length,c.push(t)}t._cacheIndex=r.length,r.push(t),o.actionByRoot[n]=t},_removeInactiveAction:function(t){var e=this._actions,n=e[e.length-1],r=t._cacheIndex;n._cacheIndex=r,e[r]=n,e.pop(),t._cacheIndex=null;var i=t._clip.uuid,o=this._actionsByClip,c=o[i],h=c.knownActions,f=h[h.length-1],A=t._byClipCacheIndex;f._byClipCacheIndex=A,h[A]=f,h.pop(),t._byClipCacheIndex=null,delete c.actionByRoot[(t._localRoot||this._root).uuid],0===h.length&&delete o[i],this._removeInactiveBindingsForAction(t)},_removeInactiveBindingsForAction:function(t){for(var e=t._propertyBindings,n=0,r=e.length;n!==r;++n){var i=e[n];0==--i.referenceCount&&this._removeInactiveBinding(i)}},_lendAction:function(t){var e=this._actions,n=t._cacheIndex,r=this._nActiveActions++,i=e[r];t._cacheIndex=r,e[r]=t,i._cacheIndex=n,e[n]=i},_takeBackAction:function(t){var e=this._actions,n=t._cacheIndex,r=--this._nActiveActions,i=e[r];t._cacheIndex=r,e[r]=t,i._cacheIndex=n,e[n]=i},_addInactiveBinding:function(t,e,n){var r=this._bindingsByRootAndName,i=r[e],o=this._bindings;void 0===i&&(r[e]=i={}),i[n]=t,t._cacheIndex=o.length,o.push(t)},_removeInactiveBinding:function(t){var e=this._bindings,n=t.binding,r=n.rootNode.uuid,i=n.path,o=this._bindingsByRootAndName,c=o[r],h=e[e.length-1],f=t._cacheIndex;h._cacheIndex=f,e[f]=h,e.pop(),delete c[i];t:{for(var A in c)break t;delete o[r]}},_lendBinding:function(t){var e=this._bindings,n=t._cacheIndex,r=this._nActiveBindings++,i=e[r];t._cacheIndex=r,e[r]=t,i._cacheIndex=n,e[n]=i},_takeBackBinding:function(t){var e=this._bindings,n=t._cacheIndex,r=--this._nActiveBindings,i=e[r];t._cacheIndex=r,e[r]=t,i._cacheIndex=n,e[n]=i},_lendControlInterpolant:function(){var t=this._controlInterpolants,e=this._nActiveControlInterpolants++,n=t[e];return void 0===n&&((n=new ba(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer)).__cacheIndex=e,t[e]=n),n},_takeBackControlInterpolant:function(t){var e=this._controlInterpolants,n=t.__cacheIndex,r=--this._nActiveControlInterpolants,i=e[r];t.__cacheIndex=r,e[r]=t,i.__cacheIndex=n,e[n]=i},_controlInterpolantsResultBuffer:new Float32Array(1),clipAction:function(t,e){var n=e||this._root,r=n.uuid,i="string"==typeof t?ps.findByName(n,t):t,o=null!==i?i.uuid:t,c=this._actionsByClip[o],h=null;if(void 0!==c){var f=c.actionByRoot[r];if(void 0!==f)return f;h=c.knownActions[0],null===i&&(i=h._clip)}if(null===i)return null;var A=new tc(this,i,e);return this._bindAction(A,h),this._addInactiveAction(A,o,r),A},existingAction:function(t,e){var n=e||this._root,r=n.uuid,i="string"==typeof t?ps.findByName(n,t):t,o=this._actionsByClip[i?i.uuid:t];return void 0!==o&&o.actionByRoot[r]||null},stopAllAction:function(){var t=this._actions,e=this._nActiveActions,n=this._bindings,r=this._nActiveBindings;this._nActiveActions=0,this._nActiveBindings=0;for(var i=0;i!==e;++i)t[i].reset();for(i=0;i!==r;++i)n[i].useCount=0;return this},update:function(t){for(var e=this._actions,n=this._nActiveActions,r=this.time+=t*=this.timeScale,i=Math.sign(t),o=this._accuIndex^=1,c=0;c!==n;++c)e[c]._update(r,t,i,o);var h=this._bindings,f=this._nActiveBindings;for(c=0;c!==f;++c)h[c].apply(o);return this},getRoot:function(){return this._root},uncacheClip:function(t){var e=this._actions,n=t.uuid,r=this._actionsByClip,i=r[n];if(void 0!==i){for(var o=i.knownActions,c=0,h=o.length;c!==h;++c){var f=o[c];this._deactivateAction(f);var A=f._cacheIndex,E=e[e.length-1];f._cacheIndex=null,f._byClipCacheIndex=null,E._cacheIndex=A,e[A]=E,e.pop(),this._removeInactiveBindingsForAction(f)}delete r[n]}},uncacheRoot:function(t){var e=t.uuid,n=this._actionsByClip;for(var r in n){var i=n[r].actionByRoot[e];void 0!==i&&(this._deactivateAction(i),this._removeInactiveAction(i))}var o=this._bindingsByRootAndName[e];if(void 0!==o)for(var c in o){var h=o[c];h.restoreOriginalState(),this._removeInactiveBinding(h)}},uncacheAction:function(t,e){var n=this.existingAction(t,e);null!==n&&(this._deactivateAction(n),this._removeInactiveAction(n))}}),Qa.prototype.clone=function(){return new Qa(void 0===this.value.clone?this.value:this.value.clone())},bl.prototype=Object.assign(Object.create(Te.prototype),{constructor:bl,isInstancedBufferGeometry:!0,copy:function(t){return Te.prototype.copy.call(this,t),this.maxInstancedCount=t.maxInstancedCount,this},clone:function(){return(new this.constructor).copy(this)}}),wl.prototype=Object.assign(Object.create(eo.prototype),{constructor:wl,isInstancedInterleavedBuffer:!0,copy:function(t){return eo.prototype.copy.call(this,t),this.meshPerAttribute=t.meshPerAttribute,this}}),El.prototype=Object.assign(Object.create(qe.prototype),{constructor:El,isInstancedBufferAttribute:!0,copy:function(t){return qe.prototype.copy.call(this,t),this.meshPerAttribute=t.meshPerAttribute,this}}),Object.assign(Vl.prototype,{linePrecision:1,set:function(t,e){this.ray.set(t,e)},setFromCamera:function(t,e){e&&e.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(e.matrixWorld),this.ray.direction.set(t.x,t.y,.5).unproject(e).sub(this.ray.origin).normalize()):e&&e.isOrthographicCamera?(this.ray.origin.set(t.x,t.y,(e.near+e.far)/(e.near-e.far)).unproject(e),this.ray.direction.set(0,0,-1).transformDirection(e.matrixWorld)):console.error("THREE.Raycaster: Unsupported camera type.")},intersectObject:function(t,e,n){var r=n||[];return qa(t,this,r,e),r.sort(_l),r},intersectObjects:function(t,e,n){var r=n||[];if(!1===Array.isArray(t))return console.warn("THREE.Raycaster.intersectObjects: objects is not an Array."),r;for(var i=0,o=t.length;i<o;i++)qa(t[i],this,r,e);return r.sort(_l),r}}),Object.assign(ec.prototype,{start:function(){this.startTime=(typeof performance>"u"?Date:performance).now(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0},stop:function(){this.getElapsedTime(),this.running=!1,this.autoStart=!1},getElapsedTime:function(){return this.getDelta(),this.elapsedTime},getDelta:function(){var t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){var e=(typeof performance>"u"?Date:performance).now();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}),Object.assign(Xl.prototype,{set:function(t,e,n){return this.radius=t,this.phi=e,this.theta=n,this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.radius=t.radius,this.phi=t.phi,this.theta=t.theta,this},makeSafe:function(){var t=1e-6;return this.phi=Math.max(t,Math.min(Math.PI-t,this.phi)),this},setFromVector3:function(t){return this.setFromCartesianCoords(t.x,t.y,t.z)},setFromCartesianCoords:function(t,e,n){return this.radius=Math.sqrt(t*t+e*e+n*n),0===this.radius?(this.theta=0,this.phi=0):(this.theta=Math.atan2(t,n),this.phi=Math.acos(U.clamp(e/this.radius,-1,1))),this}}),Object.assign(nc.prototype,{set:function(t,e,n){return this.radius=t,this.theta=e,this.y=n,this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.radius=t.radius,this.theta=t.theta,this.y=t.y,this},setFromVector3:function(t){return this.setFromCartesianCoords(t.x,t.y,t.z)},setFromCartesianCoords:function(t,e,n){return this.radius=Math.sqrt(t*t+n*n),this.theta=Math.atan2(t,n),this.y=e,this}}),Object.assign(Cl.prototype,{set:function(t,e){return this.min.copy(t),this.max.copy(e),this},setFromPoints:function(t){this.makeEmpty();for(var e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this},setFromCenterAndSize:function(){var t=new G;return function(e,n){var r=t.copy(n).multiplyScalar(.5);return this.min.copy(e).sub(r),this.max.copy(e).add(r),this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.min.copy(t.min),this.max.copy(t.max),this},makeEmpty:function(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this},isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y},getCenter:function(t){return void 0===t&&(console.warn("THREE.Box2: .getCenter() target is now required"),t=new G),this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(t){return void 0===t&&(console.warn("THREE.Box2: .getSize() target is now required"),t=new G),this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min)},expandByPoint:function(t){return this.min.min(t),this.max.max(t),this},expandByVector:function(t){return this.min.sub(t),this.max.add(t),this},expandByScalar:function(t){return this.min.addScalar(-t),this.max.addScalar(t),this},containsPoint:function(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y)},containsBox:function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y},getParameter:function(t,e){return void 0===e&&(console.warn("THREE.Box2: .getParameter() target is now required"),e=new G),e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y)},clampPoint:function(t,e){return void 0===e&&(console.warn("THREE.Box2: .clampPoint() target is now required"),e=new G),e.copy(t).clamp(this.min,this.max)},distanceToPoint:function(){var t=new G;return function(e){return t.copy(e).clamp(this.min,this.max).sub(e).length()}}(),intersect:function(t){return this.min.max(t.min),this.max.min(t.max),this},union:function(t){return this.min.min(t.min),this.max.max(t.max),this},translate:function(t){return this.min.add(t),this.max.add(t),this},equals:function(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}),Object.assign(Za.prototype,{set:function(t,e){return this.start.copy(t),this.end.copy(e),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.start.copy(t.start),this.end.copy(t.end),this},getCenter:function(t){return void 0===t&&(console.warn("THREE.Line3: .getCenter() target is now required"),t=new W),t.addVectors(this.start,this.end).multiplyScalar(.5)},delta:function(t){return void 0===t&&(console.warn("THREE.Line3: .delta() target is now required"),t=new W),t.subVectors(this.end,this.start)},distanceSq:function(){return this.start.distanceToSquared(this.end)},distance:function(){return this.start.distanceTo(this.end)},at:function(t,e){return void 0===e&&(console.warn("THREE.Line3: .at(
1) target is now required"),e=new W),this.delta(e).multiplyScalar(t).add(this.start)},closestPointToPointParameter:function(){var t=new W,e=new W;return function(n,r){t.subVectors(n,this.start),e.subVectors(this.end,this.start);var i=e.dot(e),o=e.dot(t)/i;return r&&(o=U.clamp(o,0,1)),o}}(),closestPointToPoint:function(t,e,n){var r=this.closestPointToPointParameter(t,e);return void 0===n&&(console.warn("THREE.Line3: .closestPointToPoint() target is now required"),n=new W),this.delta(n).multiplyScalar(r).add(this.start)},applyMatrix4:function(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this},equals:function(t){return t.start.equals(this.start)&&t.end.equals(this.end)}}),(Oo.prototype=Object.create(Wt.prototype)).constructor=Oo,Oo.prototype.isImmediateRenderObject=!0,(Ya.prototype=Object.create(Vr.prototype)).constructor=Ya,Ya.prototype.update=function(){var t=new W,e=new W,n=new te;return function(){var r=["a","b","c"];this.object.updateMatrixWorld(!0),n.getNormalMatrix(this.object.matrixWorld);var i=this.object.matrixWorld,o=this.geometry.attributes.position,c=this.object.geometry;if(c&&c.isGeometry)for(var h=c.vertices,f=c.faces,A=0,E=0,C=f.length;E<C;E++)for(var S=f[E],F=0,tt=S.vertexNormals.length;F<tt;F++){var rt=S.vertexNormals[F];t.copy(h[S[r[F]]]).applyMatrix4(i),e.copy(rt).applyMatrix3(n).normalize().multiplyScalar(this.size).add(t),o.setXYZ(A,t.x,t.y,t.z),o.setXYZ(A+=1,e.x,e.y,e.z),A+=1}else if(c&&c.isBufferGeometry){var ot=c.attributes.position,St=c.attributes.normal;for(A=0,F=0,tt=ot.count;F<tt;F++)t.set(ot.getX(F),ot.getY(F),ot.getZ(F)).applyMatrix4(i),e.set(St.getX(F),St.getY(F),St.getZ(F)),e.applyMatrix3(n).normalize().multiplyScalar(this.size).add(t),o.setXYZ(A,t.x,t.y,t.z),o.setXYZ(A+=1,e.x,e.y,e.z),A+=1}o.needsUpdate=!0}}(),(zo.prototype=Object.create(Wt.prototype)).constructor=zo,zo.prototype.dispose=function(){this.cone.geometry.dispose(),this.cone.material.dispose()},zo.prototype.update=function(){var t=new W,e=new W;return function(){this.light.updateMatrixWorld();var n=this.light.distance?this.light.distance:1e3,r=n*Math.tan(this.light.angle);this.cone.scale.set(r,r,n),t.setFromMatrixPosition(this.light.matrixWorld),e.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(e.sub(t)),void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}}(),(Ca.prototype=Object.create(Vr.prototype)).constructor=Ca,Ca.prototype.updateMatrixWorld=function(){var t=new W,e=new dt,n=new dt;return function(r){var i=this.bones,o=this.geometry,c=o.getAttribute("position");n.getInverse(this.root.matrixWorld);for(var h=0,f=0;h<i.length;h++){var A=i[h];A.parent&&A.parent.isBone&&(e.multiplyMatrices(n,A.matrixWorld),t.setFromMatrixPosition(e),c.setXYZ(f,t.x,t.y,t.z),e.multiplyMatrices(n,A.parent.matrixWorld),t.setFromMatrixPosition(e),c.setXYZ(f+1,t.x,t.y,t.z),f+=2)}o.getAttribute("position").needsUpdate=!0,Wt.prototype.updateMatrixWorld.call(this,r)}}(),(ea.prototype=Object.create(pe.prototype)).constructor=ea,ea.prototype.dispose=function(){this.geometry.dispose(),this.material.dispose()},ea.prototype.update=function(){void 0!==this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)},(Ta.prototype=Object.create(Wt.prototype)).constructor=Ta,Ta.prototype.dispose=function(){this.children[0].geometry.dispose(),this.children[0].material.dispose()},Ta.prototype.update=function(){var t=.5*this.light.width,e=.5*this.light.height,n=this.line.geometry.attributes.position,r=n.array;r[0]=t,r[1]=-e,r[2]=0,r[3]=t,r[4]=e,r[5]=0,r[6]=-t,r[7]=e,r[8]=0,r[9]=-t,r[10]=-e,r[11]=0,r[12]=t,r[13]=-e,r[14]=0,n.needsUpdate=!0,void 0!==this.color?this.line.material.color.set(this.color):this.line.material.color.copy(this.light.color)},(Sa.prototype=Object.create(Wt.prototype)).constructor=Sa,Sa.prototype.dispose=function(){this.children[0].geometry.dispose(),this.children[0].material.dispose()},Sa.prototype.update=function(){var t=new W,e=new lt,n=new lt;return function(){var r=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{var i=r.geometry.getAttribute("color");e.copy(this.light.color),n.copy(this.light.groundColor);for(var o=0,c=i.count;o<c;o++){var h=o<c/2?e:n;i.setXYZ(o,h.r,h.g,h.b)}i.needsUpdate=!0}r.lookAt(t.setFromMatrixPosition(this.light.matrixWorld).negate())}}(),(Ja.prototype=Object.create(Vr.prototype)).constructor=Ja,(io.prototype=Object.create(Vr.prototype)).constructor=io,(Tl.prototype=Object.create(Vr.prototype)).constructor=Tl,Tl.prototype.update=function(){var t=new W,e=new W,n=new te;return function(){this.object.updateMatrixWorld(!0),n.getNormalMatrix(this.object.matrixWorld);for(var r=this.object.matrixWorld,i=this.geometry.attributes.position,o=this.object.geometry,c=o.vertices,h=o.faces,f=0,A=0,E=h.length;A<E;A++){var C=h[A],S=C.normal;t.copy(c[C.a]).add(c[C.b]).add(c[C.c]).divideScalar(3).applyMatrix4(r),e.copy(S).applyMatrix3(n).normalize().multiplyScalar(this.size).add(t),i.setXYZ(f,t.x,t.y,t.z),i.setXYZ(f+=1,e.x,e.y,e.z),f+=1}i.needsUpdate=!0}}(),(na.prototype=Object.create(Wt.prototype)).constructor=na,na.prototype.dispose=function(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()},na.prototype.update=function(){var t=new W,e=new W,n=new W;return function(){t.setFromMatrixPosition(this.light.matrixWorld),e.setFromMatrixPosition(this.light.target.matrixWorld),n.subVectors(e,t),this.lightPlane.lookAt(n),void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color)),this.targetLine.lookAt(n),this.targetLine.scale.z
vendor: 4,488 bytes, line 1
1=n.length()}}(),(Ka.prototype=Object.create(Vr.prototype)).constructor=Ka,Ka.prototype.update=function(){var t,e,n=new W,r=new Di;function i(o,c,h,f){n.set(c,h,f).unproject(r);var A=e[o];if(void 0!==A)for(var E=t.getAttribute("position"),C=0,S=A.length;C<S;C++)E.setXYZ(A[C],n.x,n.y,n.z)}return function(){t=this.geometry,e=this.pointMap,r.projectionMatrix.copy(this.camera.projectionMatrix),i("c",0,0,-1),i("t",0,0,1),i("n1",-1,-1,-1),i("n2",1,-1,-1),i("n3",-1,1,-1),i("n4",1,1,-1),i("f1",-1,-1,1),i("f2",1,-1,1),i("f3",-1,1,1),i("f4",1,1,1),i("u1",.7,1.1,-1),i("u2",-.7,1.1,-1),i("u3",0,2,-1),i("cf1",-1,0,1),i("cf2",1,0,1),i("cf3",0,-1,1),i("cf4",0,1,1),i("cn1",-1,0,-1),i("cn2",1,0,-1),i("cn3",0,-1,-1),i("cn4",0,1,-1),t.getAttribute("position").needsUpdate=!0}}(),(Pa.prototype=Object.create(Vr.prototype)).constructor=Pa,Pa.prototype.update=function(){var t=new Le;return function(e){if(void 0!==e&&console.warn("THREE.BoxHelper: .update() has no longer arguments."),void 0!==this.object&&t.setFromObject(this.object),!t.isEmpty()){var n=t.min,r=t.max,i=this.geometry.attributes.position,o=i.array;o[0]=r.x,o[1]=r.y,o[2]=r.z,o[3]=n.x,o[4]=r.y,o[5]=r.z,o[6]=n.x,o[7]=n.y,o[8]=r.z,o[9]=r.x,o[10]=n.y,o[11]=r.z,o[12]=r.x,o[13]=r.y,o[14]=n.z,o[15]=n.x,o[16]=r.y,o[17]=n.z,o[18]=n.x,o[19]=n.y,o[20]=n.z,o[21]=r.x,o[22]=n.y,o[23]=n.z,i.needsUpdate=!0,this.geometry.computeBoundingSphere()}}}(),Pa.prototype.setFromObject=function(t){return this.object=t,this.update(),this},($a.prototype=Object.create(Vr.prototype)).constructor=$a,$a.prototype.updateMatrixWorld=function(t){var e=this.box;e.isEmpty()||(e.getCenter(this.position),e.getSize(this.scale),this.scale.multiplyScalar(.5),Wt.prototype.updateMatrixWorld.call(this,t))},(hr.prototype=Object.create(Ei.prototype)).constructor=hr,hr.prototype.updateMatrixWorld=function(t){var e=-this.plane.constant;Math.abs(e)<1e-8&&(e=1e-8),this.scale.set(.5*this.size,.5*this.size,e),this.children[0].material.side=e<0?1:0,this.lookAt(this.plane.normal),Wt.prototype.updateMatrixWorld.call(this,t)},(so.prototype=Object.create(Wt.prototype)).constructor=so,so.prototype.setDirection=function(){var t,e=new W;return function(n){n.y>.99999?this.quaternion.set(0,0,0,1):n.y<-.99999?this.quaternion.set(1,0,0,0):(e.set(n.z,0,-n.x).normalize(),t=Math.acos(n.y),this.quaternion.setFromAxisAngle(e,t))}}(),so.prototype.setLength=function(t,e,n){void 0===e&&(e=.2*t),void 0===n&&(n=.2*e),this.line.scale.set(1,Math.max(0,t-e),1),this.line.updateMatrix(),this.cone.scale.set(n,e,n),this.cone.position.y=t,this.cone.updateMatrix()},so.prototype.setColor=function(t){this.line.material.color.copy(t),this.cone.material.color.copy(t)},(Sl.prototype=Object.create(Vr.prototype)).constructor=Sl,tr.create=function(t,e){return console.log("THREE.Curve.create() has been deprecated"),t.prototype=Object.create(tr.prototype),t.prototype.constructor=t,t.prototype.getPoint=e,t},Object.assign(Ks.prototype,{createPointsGeometry:function(t){console.warn("THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");var e=this.getPoints(t);return this.createGeometry(e)},createSpacedPointsGeometry:function(t){console.warn("THREE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");var e=this.getSpacedPoints(t);return this.createGeometry(e)},createGeometry:function(t){console.warn("THREE.CurvePath: .createGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");for(var e=new be,n=0,r=t.length;n<r;n++){var i=t[n];e.vertices.push(new W(i.x,i.y,i.z||0))}return e}}),Object.assign(zs.prototype,{fromPoints:function(t){console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints()."),this.setFromPoints(t)}}),Ul.prototype=Object.create(Ji.prototype),ic.prototype=Object.create(Ji.prototype),ra.prototype=Object.create(Ji.prototype),Object.assign(ra.prototype,{initFromArray:function(){console.error("THREE.Spline: .initFromArray() has been removed.")},getControlPointsArray:function(){console.error("THREE.Spline: .getControlPointsArray() has been removed.")},reparametrizeByArcLength:function(){console.error("THREE.Spline: .reparametrizeByArcLength() has been removed.")}}),Ja.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")},Ca.prototype.update=function(){console.error("THREE.SkeletonHelper: update(
1) no longer needs to be called.")},Object.assign(Io.prototype,{extractUrlBase:function(t){return console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead."),Bo.extractUrlBase(t)}}),Object.assign(Va.prototype,{setTexturePath:function(t){return console.warn("THREE.JSONLoader: .setTexturePath() has been renamed to .setResourcePath()."),this.setResourcePath(t)}}),Object.assign(Cl.prototype,{center:function(t){return console.warn("THREE.Box2: .center() has been renamed to .getCenter()."),this.getCenter(t)},empty:function(){return console.warn("THREE.Box2: .empty() has been renamed to .isEmpty()."),this.isEmpty()},isIntersectionBox:function(t){return console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},size:function(t){return console.warn("THREE.Box2: .size() has been renamed to .getSize()."),this.getSize(t)}}),Object.assign(Le.prototype,{center:function(t){return console.warn("THREE.Box3: .center() has been renamed to .getCenter()."),this.getCenter(t)},empty:function(){return console.warn("THREE.Box3: .empty() has been renamed to .isEmpty()."),this.isEmpty()},isIntersectionBox:function(t){return console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},isIntersectionSphere:function(t){return console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)},size:function(t){return console.warn("THREE.Box3: .size() has been renamed to .getSize()."),this.getSize(t)}}),Za.prototype.center=function(t){return console.warn("THREE.Line3: .center() has been renamed to .getCenter()."),this.getCenter(t)},Object.assign(U,{random16:function(){return console.warn("THREE.Math: .random16() has been deprecated. Use Math.random() instead."),Math.random()},nearestPowerOfTwo:function(t){return console.warn("THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo()."),U.floorPowerOfTwo(t)},nextPowerOfTwo:function(t){return console.warn("THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo()."),U.ceilPowerOfTwo(t)}}),Object.assign(te.prototype,{flattenToArrayOffset:function(t,e){return console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(t,e)},multiplyVector3:function(t){return console.warn("THREE.Matrix3: .multiplyVector3(
1) has been removed. Use vector.applyMatrix3( matrix ) instead."),t.applyMatrix3(this)},multiplyVector3Array:function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},applyToBuffer:function(t){return console.warn("THREE.Matrix3: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead."),this.applyToBufferAttribute(t)},applyToVector3Array:function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")}}),Object.assign(dt.prototype,{extractPosition:function(t){return console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition()."),this.copyPosition(t)},flattenToArrayOffset:function(t,e){return console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(t,e)},getPosition:function(){var t;return function(){return void 0===t&&(t=new W),console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead."),t.setFromMatrixColumn(this,3)}}(),setRotationFromQuaternion:function(t){return console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion()."),this.makeRotationFromQuaternion(t)},multiplyToArray:function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},multiplyVector3:function(t){return console.warn("THREE.Matrix4: .multiplyVector3(
1) has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},multiplyVector4:function(t){return console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},multiplyVector3Array:function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},rotateAxis:function(t){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead."),t.transformDirection(this)},crossVector:function(t){return console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},translate:function(){console.error("THREE.Matrix4: .translate() has been removed.")},rotateX:function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},rotateY:function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},rotateZ:function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},rotateByAxis:function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},applyToBuffer:function(t){return console.warn("THREE.Matrix4: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead."),this.applyToBufferAttribute(t)},applyToVector3Array:function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},makeFrustum:function(t,e,n,r,i,o){return console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead."),this.makePerspective(t,e,r,n,i,o)}}),Qt.prototype.isIntersectionLine=function(t){return console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine()."),this.intersectsLine(t)},wt.prototype.multiplyVector3=function(t){return console.warn("THREE.Quaternion: .multiplyVector3(
1) has been removed. Use is now vector.applyQuaternion( quaternion ) instead."),t.applyQuaternion(this)},Object.assign(me.prototype,{isIntersectionBox:function(t){return console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},isIntersectionPlane:function(t){return console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane()."),this.intersectsPlane(t)},isIntersectionSphere:function(t){return console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)}}),Object.assign(Dt.prototype,{area:function(){return console.warn("THREE.Triangle: .area() has been renamed to .getArea()."),this.getArea()},barycoordFromPoint:function(t,e){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),this.getBarycoord(t,e)},midpoint:function(t){return console.warn("THREE.Triangle: .midpoint() has been renamed to .getMidpoint()."),this.getMidpoint(t)},normal:function(t){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),this.getNormal(t)},plane:function(t){return console.warn("THREE.Triangle: .plane() has been renamed to .getPlane()."),this.getPlane(t)}}),Object.assign(Dt,{barycoordFromPoint:function(t,e,n,r,i){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),Dt.getBarycoord(t,e,n,r,i)},normal:function(t,e,n,r){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),Dt.getNormal(t,e,n,r)}}),Object.assign(So.prototype,{extractAllPoints:function(t){return console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead."),this.extractPoints(t)},extrude:function(t){return console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead."),new Ci(this,t)},makeGeometry:function(t){return console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead."),new bo(this,t)}}),Object.assign(G.prototype,{fromAttribute:function(t,e,n){return console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,n)},distanceToManhattan:function(t){return console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(t)},lengthManhattan:function(){return console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(W.prototype,{setEulerFromRotationMatrix:function(){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},setEulerFromQuaternion:function(){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},getPositionFromMatrix:function(t){return console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition()."),this.setFromMatrixPosition(t)},getScaleFromMatrix:function(t){return console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale()."),this.setFromMatrixScale(t)},getColumnFromMatrix:function(t,e){return console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn()."),this.setFromMatrixColumn(e,t)},applyProjection:function(t){return console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead."),this.applyMatrix4(t)},fromAttribute:function(t,e,n){return console.warn("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,n)},distanceToManhattan:function(t){return console.warn("THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(t)},lengthManhattan:function(){return console.warn("THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(We.prototype,{fromAttribute:function(t,e,n){return console.warn("THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,n)},lengthManhattan:function(){return console.warn("THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(be.prototype,{computeTangents:function(){console.error("THREE.Geometry: .computeTangents() has been removed.")},computeLineDistances:function(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}}),Object.assign(Wt.prototype,{getChildByName:function(t){return console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName()."),this.getObjectByName(t)},renderDepth:function(){console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.")},translate:function(t,e){return console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead."),this.translateOnAxis(e,t)},getWorldRotation:function(){console.error("THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.")}}),Object.defineProperties(Wt.prototype,{eulerOrder:{get:function(){return console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order},set:function(t){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order=t}},useQuaternion:{get:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library n
1ow uses quaternions by default.")},set:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")}}}),Object.defineProperties(Gs.prototype,{objects:{get:function(){return console.warn("THREE.LOD: .objects has been renamed to .levels."),this.levels}}}),Object.defineProperty(ho.prototype,"useVertexTexture",{get:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")},set:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")}}),Object.defineProperty(tr.prototype,"__arcLengthDivisions",{get:function(){return console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions."),this.arcLengthDivisions},set:function(t){console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions."),this.arcLengthDivisions=t}}),ei.prototype.setLens=function(t,e){console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup."),void 0!==e&&(this.filmGauge=e),this.setFocalLength(t)},Object.defineProperties(xi.prototype,{onlyShadow:{set:function(){console.warn("THREE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(t){console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov."),this.shadow.camera.fov=t}},shadowCameraLeft:{set:function(t){console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left."),this.shadow.camera.left=t}},shadowCameraRight:{set:function(t){console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right."),this.shadow.camera.right=t}},shadowCameraTop:{set:function(t){console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top."),this.shadow.camera.top=t}},shadowCameraBottom:{set:function(t){console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom."),this.shadow.camera.bottom=t}},shadowCameraNear:{set:function(t){console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near."),this.shadow.camera.near=t}},shadowCameraFar:{set:function(t){console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far."),this.shadow.camera.far=t}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(t){console.warn("THREE.Light: .shadowBias is now .shadow.bias."),this.shadow.bias=t}},shadowDarkness:{set:function(){console.warn("THREE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(t){console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width."),this.shadow.mapSize.width=t}},shadowMapHeight:{set:function(t){console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height."),this.shadow.mapSize.height=t}}}),Object.defineProperties(qe.prototype,{length:{get:function(){return console.warn("THREE.BufferAttribute: .length has been deprecated. Use .count instead."),this.array.length}},copyIndicesArray:function(){console.error("THREE.BufferAttribute: .copyIndicesArray() has been removed.")}}),Object.assign(Te.prototype,{addIndex:function(t){console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex()."),this.setIndex(t)},addDrawCall:function(t,e,n){void 0!==n&&console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset."),console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup()."),this.addGroup(t,e)},clearDrawCalls:function(){console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups()."),this.clearGroups()},computeTangents:function(){console.warn("THREE.BufferGeometry: .computeTangents() has been removed.")},computeOffsets:function(){console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.")}}),Object.defineProperties(Te.prototype,{drawcalls:{get:function(){return console.error("THREE.BufferGeometry: .drawcalls has been renamed to .groups."),this.groups}},offsets:{get:function(){return console.warn("THREE.BufferGeometry: .offsets has been renamed to .groups."),this.groups}}}),Object.assign(Gr.prototype,{getArrays:function(){console.error("THREE.ExtrudeBufferGeometry: .getArrays() has been removed.")},addShapeList:function(){console.error("THREE.ExtrudeBufferGeometry: .addShapeList() has been removed.")},addShape:function(){console.error("THREE.ExtrudeBufferGeometry: .addShape() has been removed.")}}),Object.defineProperties(Qa.prototype,{dynamic:{set:function(){console.warn("THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.")}},onUpdate:{value:function(){return console.warn("THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead."),this}}}),Object.defineProperties(Pe.prototype,{wrapAround:{get:function(){console.warn("THREE.Material: .wrapAround has been removed.")}
vendor: 4,288 bytes, line 1
1,set:function(){console.warn("THREE.Material: .wrapAround has been removed.")}},wrapRGB:{get:function(){return console.warn("THREE.Material: .wrapRGB has been removed."),new lt}},shading:{get:function(){console.error("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead.")},set:function(t){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===t}}}),Object.defineProperties(Zs.prototype,{metal:{get:function(){return console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead."),!1},set:function(){console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead")}}}),Object.defineProperties(zt.prototype,{derivatives:{get:function(){return console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives},set:function(t){console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives=t}}}),Object.assign(co.prototype,{clearTarget:function(t,e,n,r){console.warn("THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead."),this.setRenderTarget(t),this.clear(e,n,r)},animate:function(t){console.warn("THREE.WebGLRenderer: .animate() is now .setAnimationLoop()."),this.setAnimationLoop(t)},getCurrentRenderTarget:function(){return console.warn("THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget()."),this.getRenderTarget()},getMaxAnisotropy:function(){return console.warn("THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy()."),this.capabilities.getMaxAnisotropy()},getPrecision:function(){return console.warn("THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision."),this.capabilities.precision},resetGLState:function(){return console.warn("THREE.WebGLRenderer: .resetGLState() is now .state.reset()."),this.state.reset()},supportsFloatTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' )."),this.extensions.get("OES_texture_float")},supportsHalfFloatTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' )."),this.extensions.get("OES_texture_half_float")},supportsStandardDerivatives:function(){return console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' )."),this.extensions.get("OES_standard_derivatives")},supportsCompressedTextureS3TC:function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' )."),this.extensions.get("WEBGL_compressed_texture_s3tc")},supportsCompressedTexturePVRTC:function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' )."),this.extensions.get("WEBGL_compressed_texture_pvrtc")},supportsBlendMinMax:function(){return console.warn("THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' )."),this.extensions.get("EXT_blend_minmax")},supportsVertexTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures."),this.capabilities.vertexTextures},supportsInstancedArrays:function(){return console.warn("THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' )."),this.extensions.get("ANGLE_instanced_arrays")},enableScissorTest:function(t){console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest()."),this.setScissorTest(t)},initMaterial:function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")},addPrePlugin:function(){console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.")},addPostPlugin:function(){console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.")},updateShadowMap:function(){console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.")},setFaceCulling:function(){console.warn("THREE.WebGLRenderer: .setFaceCulling(
1) has been removed.")}}),Object.defineProperties(co.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled."),this.shadowMap.enabled=t}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type."),this.shadowMap.type=t}},shadowMapCullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")}}}),Object.defineProperties(ks.prototype,{cullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")}},renderReverseSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")}},renderSingleSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")}}}),Object.defineProperties(Cn.prototype,{wrapS:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS},set:function(t){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS=t}},wrapT:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT},set:function(t){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT=t}},magFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter},set:function(t){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter=t}},minFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter},set:function(t){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter=t}},anisotropy:{get:function(){return console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy},set:function(t){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy=t}},offset:{get:function(){return console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset},set:function(t){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset=t}},repeat:{get:function(){return console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat},set:function(t){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat=t}},format:{get:function(){return console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format},set:function(t){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format=t}},type:{get:function(){return console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type},set:function(t){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type=t}},generateMipmaps:{get:function(){return console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps},set:function(t){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps=t}}}),Object.defineProperties(ko.prototype,{standing:{set:function(){console.warn("THREE.WebVRManager: .standing has been removed.")}},userHeight:{set:function(){console.warn("THREE.WebVRManager: .userHeight has been removed.")}}}),ta.prototype.load=function(t){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");var e=this;
vendor: 7,309 bytes, line 1
1return(new Ga).load(t,function(n){e.setBuffer(n)}),this},Nl.prototype.getData=function(){return console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData()."),this.getFrequencyData()},Ps.prototype.updateCubeMap=function(t,e){return console.warn("THREE.CubeCamera: .updateCubeMap() is now .update()."),this.update(t,e)};var cc={merge:function(t,e,n){var r;console.warn("THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead."),e.isMesh&&(e.matrixAutoUpdate&&e.updateMatrix(),r=e.matrix,e=e.geometry),t.merge(e,r,n)},center:function(t){return console.warn("THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead."),t.center()}};ae.crossOrigin=void 0,ae.loadTexture=function(t,e,n,r){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");var i=new Ba;i.setCrossOrigin(this.crossOrigin);var o=i.load(t,n,void 0,r);return e&&(o.mapping=e),o},ae.loadTextureCube=function(t,e,n,r){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");var i=new Ia;i.setCrossOrigin(this.crossOrigin);var o=i.load(t,n,void 0,r);return e&&(o.mapping=e),o},ae.loadCompressedTexture=function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")},ae.loadCompressedTextureCube=function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")};var Ra={createMultiMaterialObject:function(){console.error("THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")},detach:function(){console.error("THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")},attach:function(){console.error("THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")}};u.WebGLRenderTargetCube=rn,u.WebGLRenderTarget=Cn,u.WebGLRenderer=co,u.ShaderLib=ct,u.UniformsLib=et,u.UniformsUtils=It,u.ShaderChunk=Mt,u.FogExp2=_s,u.Fog=bs,u.Scene=uo,u.Sprite=Us,u.LOD=Gs,u.SkinnedMesh=ws,u.Skeleton=ho,u.Bone=po,u.Mesh=pe,u.LineSegments=Vr,u.LineLoop=Es,u.Line=Ei,u.Points=fo,u.Group=js,u.VideoTexture=oa,u.DataTexture=Me,u.DataTexture3D=xn,u.CompressedTexture=jo,u.CubeTexture=sn,u.CanvasTexture=aa,u.DepthTexture=_i,u.Texture=ge,u.CompressedTextureLoader=ul,u.DataTextureLoader=Co,u.CubeTextureLoader=Ia,u.TextureLoader=Ba,u.ObjectLoader=vl,u.MaterialLoader=ja,u.BufferGeometryLoader=gl,u.DefaultLoadingManager=rs,u.LoadingManager=Rl,u.JSONLoader=Va,u.ImageLoader=Zo,u.ImageBitmapLoader=_a,u.FontLoader=Xa,u.FileLoader=Ui,u.Loader=Io,u.LoaderUtils=Bo,u.Cache=ns,u.AudioLoader=Ga,u.SpotLightShadow=fl,u.SpotLight=Aa,u.PointLight=ml,u.RectAreaLight=xa,u.HemisphereLight=pl,u.DirectionalLightShadow=Oa,u.DirectionalLight=za,u.AmbientLight=Ha,u.LightShadow=Po,u.Light=xi,u.StereoCamera=Hl,u.PerspectiveCamera=ei,u.OrthographicCamera=Ro,u.CubeCamera=Ps,u.ArrayCamera=Vs,u.Camera=Di,u.AudioListener=yl,u.PositionalAudio=Dl,u.AudioContext=Ua,u.AudioAnalyser=Nl,u.Audio=ta,u.VectorKeyframeTrack=Ea,u.StringKeyframeTrack=Lo,u.QuaternionKeyframeTrack=Ko,u.NumberKeyframeTrack=Mo,u.ColorKeyframeTrack=wa,u.BooleanKeyframeTrack=Fa,u.PropertyMixer=Al,u.PropertyBinding=Gi,u.KeyframeTrack=Ni,u.AnimationUtils=Ki,u.AnimationObjectGroup=$l,u.AnimationMixer=Wa,u.AnimationClip=ps,u.Uniform=Qa,u.InstancedBufferGeometry=bl,u.BufferGeometry=Te,u.Geometry=be,u.InterleavedBufferAttribute=vi,u.InstancedInterleavedBuffer=wl,u.InterleavedBuffer=eo,u.InstancedBufferAttribute=El,u.Face3=ne,u.Object3D=Wt,u.Raycaster=Vl,u.Layers=kt,u.EventDispatcher=D,u.Clock=ec,u.QuaternionLinearInterpolant=ka,u.LinearInterpolant=ba,u.DiscreteInterpolant=Na,u.CubicInterpolant=Da,u.Interpolant=ds,u.Triangle=Dt,u.Math=U,u.Spherical=Xl,u.Cylindrical=nc,u.Plane=Qt,u.Frustum=Ut,u.Sphere=Ee,u.Ray=me,u.Matrix4=dt,u.Matrix3=te,u.Box3=Le,u.Box2=Cl,u.Line3=Za,u.Euler=bt,u.Vector4=We,u.Vector3=W,u.Vector2=G,u.Quaternion=wt,u.Color=lt,u.ImmediateRenderObject=Oo,u.VertexNormalsHelper=Ya,u.SpotLightHelper=zo,u.SkeletonHelper=Ca,u.PointLightHelper=ea,u.RectAreaLightHelper=Ta,u.HemisphereLightHelper=Sa,u.GridHelper=Ja,u.PolarGridHelper=io,u.FaceNormalsHelper=Tl,u.DirectionalLightHelper=na,u.CameraHelper=Ka,u.BoxHelper=Pa,u.Box3Helper=$a,u.PlaneHelper=hr,u.ArrowHelper=so,u.AxesHelper=Sl,u.Shape=So,u.Path=zs,u.ShapePath=Ol,u.Font=zl,u.CurvePath=Ks,u.Curve=tr,u.ImageUtils=ae,u.ShapeUtils=Ur,u.WebGLUtils=al,u.WireframeGeometry=Rs,u.ParametricGeometry=mo,u.ParametricBufferGeometry=go,u.TetrahedronGeometry=Ts,u.TetrahedronBufferGeometry=vo,u.OctahedronGeometry=la,u.OctahedronBufferGeometry=yo,u.IcosahedronGeometry=ca,u.IcosahedronBufferGeometry=_o,u.DodecahedronGeometry=no,u.DodecahedronBufferGeometry=qi,u.PolyhedronGeometry=Vo,u.PolyhedronBufferGeometry=Xi,u.TubeGeometry=Ms,u.TubeBufferGeometry=Ws,u.TorusKnotGeometry=Xo,u.TorusKnotBufferGeometry=Ao,u.TorusGeometry=xo,u.TorusBufferGeometry=st,u.TextGeometry=qr,u.TextBufferGeometry=Pr,u.SphereGeometry=Jr,u.SphereBufferGeometry=Ai,u.RingGeometry=Ss,u.RingBufferGeometry=cs,u.PlaneGeometry=Pn,u.PlaneBufferGeometry=Mn,u.LatheGeometry=Uo,u.LatheBufferGeometry=Qs,u.ShapeGeometry=bo,u.ShapeBufferGeometry=ua,u.ExtrudeGeometry=Ci,u.ExtrudeBufferGeometry=Gr,u.EdgesGeometry=wo,u.ConeGeometry=ha,u.ConeBufferGeometry=Eo,u.CylinderGeometry=Go,u.CylinderBufferGeometry=qs,u.CircleGeometry=cl,u.CircleBufferGeometry=da,u.BoxGeometry=nn,u.BoxBufferGeometry=pn,u.ShadowMaterial=Wo,u.SpriteMaterial=Xs,u.RawShaderMaterial=pa,u.ShaderMaterial=zt,u.PointsMaterial=Cs,u.MeshPhysicalMaterial=Qo,u.MeshStandardMaterial=ro,u.MeshPhongMaterial=Zs,u.MeshToonMaterial=fa,u.MeshNormalMaterial=Yi,u.MeshLambertMaterial=ma,u.MeshDepthMaterial=Fs,u.MeshDistanceMaterial=ls,u.MeshBasicMaterial=le,u.MeshMatcapMaterial=ga,u.LineDashedMaterial=qo,u.LineBasicMaterial=Wr,u.Material=Pe,u.Float64BufferAttribute=Ht,u.Float32BufferAttribute=Lt,u.Uint32BufferAttribute=Be,u.Int32BufferAttribute=Re,u.Uint16BufferAttribute=Se,u.Int16BufferAttribute=ee,u.Uint8ClampedBufferAttribute=ur,u.Uint8BufferAttribute=yr,u.Int8BufferAttribute=kn,u.BufferAttribute=qe,u.ArcCurve=Yo,u.CatmullRomCurve3=Ji,u.CubicBezierCurve=Ls,u.CubicBezierCurve3=Is,u.EllipseCurve=is,u.LineCurve=hs,u.LineCurve3=Bs,u.QuadraticBezierCurve=Os,u.QuadraticBezierCurve3=Ys,u.SplineCurve=Js,u.REVISION="97",u.MOUSE={LEFT:0,MIDDLE:1,RIGHT:2},u.CullFaceNone=0,u.CullFaceBack=1,u.CullFaceFront=2,u.CullFaceFrontBack=3,u.FrontFaceDirectionCW=0,u.FrontFaceDirectionCCW=1,u.BasicShadowMap=0,u.PCFShadowMap=1,u.PCFSoftShadowMap=2,u.FrontSide=0,u.BackSide=1,u.DoubleSide=2,u.FlatShading=1,u.SmoothShading=2,u.NoColors=0,u.FaceColors=1,u.VertexColors=2,u.NoBlending=0,u.NormalBlending=1,u.AdditiveBlending=2,u.SubtractiveBlending=3,u.MultiplyBlending=4,u.CustomBlending=5,u.AddEquation=s,u.SubtractEquation=101,u.ReverseSubtractEquation=102,u.MinEquation=j,u.MaxEquation=k,u.ZeroFactor=200,u.OneFactor=201,u.SrcColorFactor=202,u.OneMinusSrcColorFactor=203,u.SrcAlphaFactor=204,u.OneMinusSrcAlphaFactor=205,u.DstAlphaFactor=206,u.OneMinusDstAlphaFactor=207,u.DstColorFactor=208,u.OneMinusDstColorFactor=209,u.SrcAlphaSaturateFactor=210,u.NeverDepth=0,u.AlwaysDepth=1,u.LessDepth=2,u.LessEqualDepth=3,u.EqualDepth=4,u.GreaterEqualDepth=5,u.GreaterDepth=6,u.NotEqualDepth=
17,u.MultiplyOperation=0,u.MixOperation=1,u.AddOperation=2,u.NoToneMapping=0,u.LinearToneMapping=1,u.ReinhardToneMapping=2,u.Uncharted2ToneMapping=3,u.CineonToneMapping=4,u.UVMapping=300,u.CubeReflectionMapping=301,u.CubeRefractionMapping=302,u.EquirectangularReflectionMapping=303,u.EquirectangularRefractionMapping=304,u.SphericalReflectionMapping=305,u.CubeUVReflectionMapping=306,u.CubeUVRefractionMapping=307,u.RepeatWrapping=b,u.ClampToEdgeWrapping=B,u.MirroredRepeatWrapping=V,u.NearestFilter=_,u.NearestMipMapNearestFilter=1004,u.NearestMipMapLinearFilter=1005,u.LinearFilter=H,u.LinearMipMapNearestFilter=1007,u.LinearMipMapLinearFilter=Y,u.UnsignedByteType=1009,u.ByteType=1010,u.ShortType=1011,u.UnsignedShortType=q,u.IntType=1013,u.UnsignedIntType=1014,u.FloatType=it,u.HalfFloatType=1016,u.UnsignedShort4444Type=1017,u.UnsignedShort5551Type=1018,u.UnsignedShort565Type=1019,u.UnsignedInt248Type=vt,u.AlphaFormat=1021,u.RGBFormat=at,u.RGBAFormat=J,u.LuminanceFormat=1024,u.LuminanceAlphaFormat=1025,u.RGBEFormat=1023,u.DepthFormat=ht,u.DepthStencilFormat=m,u.RedFormat=1028,u.RGB_S3TC_DXT1_Format=33776,u.RGBA_S3TC_DXT1_Format=33777,u.RGBA_S3TC_DXT3_Format=33778,u.RGBA_S3TC_DXT5_Format=33779,u.RGB_PVRTC_4BPPV1_Format=35840,u.RGB_PVRTC_2BPPV1_Format=35841,u.RGBA_PVRTC_4BPPV1_Format=35842,u.RGBA_PVRTC_2BPPV1_Format=35843,u.RGB_ETC1_Format=36196,u.RGBA_ASTC_4x4_Format=37808,u.RGBA_ASTC_5x4_Format=37809,u.RGBA_ASTC_5x5_Format=37810,u.RGBA_ASTC_6x5_Format=37811,u.RGBA_ASTC_6x6_Format=37812,u.RGBA_ASTC_8x5_Format=37813,u.RGBA_ASTC_8x6_Format=37814,u.RGBA_ASTC_8x8_Format=37815,u.RGBA_ASTC_10x5_Format=37816,u.RGBA_ASTC_10x6_Format=37817,u.RGBA_ASTC_10x8_Format=37818,u.RGBA_ASTC_10x10_Format=37819,u.RGBA_ASTC_12x10_Format=37820,u.RGBA_ASTC_12x12_Format=37821,u.LoopOnce=2200,u.LoopRepeat=2201,u.LoopPingPong=2202,u.InterpolateDiscrete=M,u.InterpolateLinear=N,u.InterpolateSmooth=2302,u.ZeroCurvatureEnding=g,u.ZeroSlopeEnding=x,u.WrapAroundEnding=P,u.TrianglesDrawMode=0,u.TriangleStripDrawMode=1,u.TriangleFanDrawMode=2,u.LinearEncoding=Q,u.sRGBEncoding=3001,u.GammaEncoding=3007,u.RGBEEncoding=3002,u.LogLuvEncoding=3003,u.RGBM7Encoding=3004,u.RGBM16Encoding=3005,u.RGBDEncoding=3006,u.BasicDepthPacking=3200,u.RGBADepthPacking=3201,u.TangentSpaceNormalMap=0,u.ObjectSpaceNormalMap=1,u.CubeGeometry=nn,u.Face4=function(e,n,r,i,o,c,h){return console.warn("THREE.Face4 has been removed. A THREE.Face3 will be created instead."),new ne(e,n,r,o,c,h)},u.LineStrip=0,u.LinePieces=1,u.MeshFaceMaterial=function(e){return console.warn("THREE.MeshFaceMaterial has been removed. Use an Array instead."),e},u.MultiMaterial=function(e){return void 0===e&&(e=[]),console.warn("THREE.MultiMaterial has been removed. Use an Array instead."),e.isMultiMaterial=!0,e.materials=e,e.clone=function(){return e.slice()},e},u.PointCloud=function(e,n){return console.warn("THREE.PointCloud has been renamed to THREE.Points."),new fo(e,n)},u.Particle=function(e){return console.warn("THREE.Particle has been renamed to THREE.Sprite."),new Us(e)},u.ParticleSystem=function(e,n){return console.warn("THREE.ParticleSystem has been renamed to THREE.Points."),new fo(e,n)},u.PointCloudMaterial=function(e){return console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial."),new Cs(e)},u.ParticleBasicMaterial=function(e){return console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial."),new Cs(e)},u.ParticleSystemMaterial=function(e){return console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial."),new Cs(e)},u.Vertex=function(e,n,r){return console.warn("THREE.Vertex has been removed. Use THREE.Vector3 instead."),new W(e,n,r)},u.DynamicBufferAttribute=function(e,n){return console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setDynamic( true ) instead."),new qe(e,n).setDynamic(!0)},u.Int8Attribute=function(e,n){return console.warn("THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead."),new kn(e,n)},u.Uint8Attribute=function(e,n){return console.warn("THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead."),new yr(e,n)},u.Uint8ClampedAttribute=function(e,n){return console.warn("THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead."),new ur(e,n)},u.Int16Attribute=function(e,n){return console.warn("THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead."),new ee(e,n)},u.Uint16Attribute=function(e,n){return console.warn("THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead."),new Se(e,n)},u.Int32Attribute=function(e,n){return console.warn("THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead."),new Re(e,n)},u.Uint32Attribute=function(e,n){return console.warn("THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead."),new Be(e,n)},u.Float32Attribute=function(e,n){return console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead."),new Lt(e,n)},u.Float64Attribute=function(e,n){return console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead."),new Ht(e,n)},u.ClosedSplineCurve3=Ul,u.SplineCurve3=ic,u.Spline=ra,u.AxisHelper=function(e){return console.warn("THREE.AxisHelper has been renamed to THREE.AxesHelper."),new Sl(e)},u.BoundingBoxHelper=function(e,n){return console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead."),new Pa(e,n)},u.EdgesHelper=function(e,n){return console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead."),new Vr(new wo(e.geometry),new Wr({color:void 0!==n?n:16777215}))},u.WireframeHelper=function(e,n){return console.warn("THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead."),new Vr(new Rs(e.geometry),new Wr({color:void 0!==n?n:16777215}))},u.XHRLoader=function(e){return console.warn("THREE.XHRLoader has been renamed to THREE.FileLoader."),new Ui(e)},u.BinaryTextureLoader=function(e){return console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader."),new Co(e)},u.GeometryUtils=cc,u.Projector=function(){console.error("THREE.Projector has been moved to /examples/js/renderers/Projector.js."),this.project
1Vector=function(e,n){console.warn("THREE.Projector: .projectVector() is now vector.project()."),e.project(n)},this.unprojectVector=function(e,n){console.warn("THREE.Projector: .unprojectVector() is now vector.unproject()."),e.unproject(n)},this.pickingRay=function(){console.error("THREE.Projector: .pickingRay() is now raycaster.setFromCamera().")}},u.CanvasRenderer=function(){console.error("THREE.CanvasRenderer has been moved to /examples/js/renderers/CanvasRenderer.js"),this.domElement=document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),this.clear=function(){},this.render=function(){},this.setClearColor=function(){},this.setSize=function(){}},u.SceneUtils=Ra,u.LensFlare=function(){console.error("THREE.LensFlare has been moved to /examples/js/objects/Lensflare.js")},Object.defineProperty(u,"__esModule",{value:!0})}),THREE.OrbitControls=function(u,D){var v,p,s,j,k;this.object=u,this.domElement=void 0!==D?D:document,this.enabled=!0,this.target=new THREE.Vector3,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.25,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!1,this.keyPanSpeed=7,this.autoRotate=!1,this.autoRotateSpeed=2,this.enableKeys=!0,this.keys={LEFT:37,UP:38,RIGHT:39,BOTTOM:40},this.mouseButtons={LEFT:THREE.MOUSE.LEFT,MIDDLE:THREE.MOUSE.MIDDLE,RIGHT:THREE.MOUSE.RIGHT},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=function(){return it.phi},this.getAzimuthalAngle=function(){return it.theta},this.saveState=function(){b.target0.copy(b.target),b.position0.copy(b.object.position),b.zoom0=b.object.zoom},this.reset=function(){b.target.copy(b.target0),b.object.position.copy(b.position0),b.object.zoom=b.zoom0,b.object.updateProjectionMatrix(),b.dispatchEvent(B),b.update(),Y=H.NONE},this.update=(v=new THREE.Vector3,p=(new THREE.Quaternion).setFromUnitVectors(u.up,new THREE.Vector3(0,1,0)),s=p.clone().inverse(),j=new THREE.Vector3,k=new THREE.Quaternion,function(){var lt=b.object.position;return v.copy(lt).sub(b.target),v.applyQuaternion(p),it.setFromVector3(v),b.autoRotate&&Y===H.NONE&&wt(2*Math.PI/60/60*b.autoRotateSpeed),it.theta+=vt.theta,it.phi+=vt.phi,it.theta=Math.max(b.minAzimuthAngle,Math.min(b.maxAzimuthAngle,it.theta)),it.phi=Math.max(b.minPolarAngle,Math.min(b.maxPolarAngle,it.phi)),it.makeSafe(),it.radius*=at,it.radius=Math.max(b.minDistance,Math.min(b.maxDistance,it.radius)),b.target.add(J),v.setFromSpherical(it),v.applyQuaternion(s),lt.copy(b.target).add(v),b.object.lookAt(b.target),!0===b.enableDamping?(vt.theta*=1-b.dampingFactor,vt.phi*=1-b.dampingFactor,J.multiplyScalar(1-b.dampingFactor)):(vt.set(0,0,0),J.set(0,0,0)),at=1,!!(ht||j.distanceToSquared(b.object.position)>q||8*(1-k.dot(b.object.quaternion))>q)&&(b.dispatchEvent(B),j.copy(b.object.position),k.copy(b.object.quaternion),ht=!1,!0)}),this.dispose=function(){b.domElement.removeEventListener("contextmenu",mt,!1),b.domElement.removeEventListener("mousedown",rn,!1),b.domElement.removeEventListener("wheel",Ee,!1),b.domElement.removeEventListener("touchstart",Ut,!1),b.domElement.removeEventListener("touchend",It,!1),b.domElement.removeEventListener("touchmove",Mt,!1),document.removeEventListener("mousemove",Me,!1),document.removeEventListener("mouseup",Le,!1),window.removeEventListener("keydown",Qt,!1)};var b=this,B={type:"change"},V={type:"start"},_={type:"end"},H={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_DOLLY_PAN:4},Y=H.NONE,q=1e-6,it=new THREE.Spherical,vt=new THREE.Spherical,at=1,J=new THREE.Vector3,ht=!1,m=new THREE.Vector2,M=new THREE.Vector2,N=new THREE.Vector2,g=new THREE.Vector2,x=new THREE.Vector2,P=new THREE.Vector2,Q=new THREE.Vector2,U=new THREE.Vector2,G=new THREE.Vector2;function dt(){return Math.pow(.95,b.zoomSpeed)}function wt(lt){vt.theta-=lt}function W(lt){vt.phi-=lt}var lt,te=(lt=new THREE.Vector3,function(et,ct){lt.setFromMatrixColumn(ct,0),lt.multiplyScalar(-et),J.add(lt)}),ae=function(){var lt=new THREE.Vector3;return function(et,ct){!0===b.screenSpacePanning?lt.setFromMatrixColumn(ct,1):(lt.setFromMatrixColumn(ct,0),lt.crossVectors(b.object.up,lt)),lt.multiplyScalar(et),J.add(lt)}}(),Ae=function(){var lt=new THREE.Vector3;return function(et,ct){var Vt=b.domElement===document?b.domElement.body:b.domElement;if(b.object.isPerspectiveCamera){lt.copy(b.object.position).sub(b.target);var Rt=lt.length();Rt*=Math.tan(b.object.fov/2*Math.PI/180),te(2*et*Rt/Vt.clientHeight,b.object.matrix),ae(2*ct*Rt/Vt.clientHeight,b.object.matrix)}else b.object.isOrthographicCamera?(te(et*(b.object.right-b.object.left)/b.object.zoom/Vt.clientWidth,b.object.matrix),ae(ct*(b.object.top-b.object.bottom)/b.object.zoom/Vt.clientHeight,b.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),b.enablePan=!1)}}();function ge(lt){b.object.isPerspectiveCamera?at/=lt:b.object.isOrthographicCamera?(b.object.zoom=Math.max(b.minZoom,Math.min(b.maxZoom,b.object.zoom*lt)),b.object.updateProjectionMatrix(),ht=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),b.enableZoom=!1)}function We(lt){b.object.isPerspectiveCamera?at*=lt:b.object.isOrthographicCamera?(b.object.zoom=Math.max(b.minZoom,Math.min(b.maxZoom,b.object.zoom/lt)),b.object.updateProjectionMatrix(),ht=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),b.enableZoom=!1)}function Cn(lt){g.set(lt.clientX,lt.clientY)}function rn(lt){if(!1!==b.enabled){switch(lt.preventDefault(),lt.button){case b.mouseButtons.LEFT:if(lt.ctrlKey||lt.metaKey){if(!1===b.enablePan)return;Cn(lt),Y=H.PAN}else{if(!1===b.enableRotate)return;m.set((ct=lt).clientX,ct.clientY),Y=H.ROTATE}break;case b.mouseButtons.MIDDLE:if(!1===b.enableZoom)return;(function(ct){Q.set(ct.clientX,ct.clientY)})(lt),Y=H.DOLLY;break;case b.mouseButtons.RIGHT:if(!1===b.enablePan)return;Cn(lt),Y=H.PAN}Y!==H.NONE&&(document.addEventListener("mousemove",Me,!1),document.addEventListener("mouseup",Le,!1),b.dispatchEvent(V))}var ct}function Me(lt){if(!1!==b.enabled)switch(lt.preventDefault(),Y){case H.ROTATE:if(!1===b.enableRotate)return;!function(ct){M.set(ct.clientX,ct.clientY),N.subVectors(M,m).multiplyScalar(b.rotateSpeed);var Vt=b.domElement===document?b.domElement.body:b.domElement;wt(2*Math.PI*N.x/Vt.clientHeight),W(2*Math.PI*N.y/Vt.clientHeight),m.copy(M),b.update(
1)}(lt);break;case H.DOLLY:if(!1===b.enableZoom)return;U.set((ct=lt).clientX,ct.clientY),G.subVectors(U,Q),G.y>0?ge(dt()):G.y<0&&We(dt()),Q.copy(U),b.update();break;case H.PAN:if(!1===b.enablePan)return;!function(ct){x.set(ct.clientX,ct.clientY),P.subVectors(x,g).multiplyScalar(b.panSpeed),Ae(P.x,P.y),g.copy(x),b.update()}(lt)}var ct}function Le(lt){!1!==b.enabled&&(document.removeEventListener("mousemove",Me,!1),document.removeEventListener("mouseup",Le,!1),b.dispatchEvent(_),Y=H.NONE)}function Ee(lt){var ct;!1===b.enabled||!1===b.enableZoom||Y!==H.NONE&&Y!==H.ROTATE||(lt.preventDefault(),lt.stopPropagation(),b.dispatchEvent(V),(ct=lt).deltaY<0?We(dt()):ct.deltaY>0&&ge(dt()),b.update(),b.dispatchEvent(_))}function Qt(lt){!1===b.enabled||!1===b.enableKeys||!1===b.enablePan||function(ct){switch(ct.keyCode){case b.keys.UP:Ae(0,b.keyPanSpeed),b.update();break;case b.keys.BOTTOM:Ae(0,-b.keyPanSpeed),b.update();break;case b.keys.LEFT:Ae(b.keyPanSpeed,0),b.update();break;case b.keys.RIGHT:Ae(-b.keyPanSpeed,0),b.update()}}(lt)}function Ut(lt){if(!1!==b.enabled){switch(lt.preventDefault(),lt.touches.length){case 1:if(!1===b.enableRotate)return;m.set((ct=lt).touches[0].pageX,ct.touches[0].pageY),Y=H.TOUCH_ROTATE;break;case 2:if(!1===b.enableZoom&&!1===b.enablePan)return;(function(ct){if(b.enableZoom){var Vt=ct.touches[0].pageX-ct.touches[1].pageX,Rt=ct.touches[0].pageY-ct.touches[1].pageY,ne=Math.sqrt(Vt*Vt+Rt*Rt);Q.set(0,ne)}b.enablePan&&g.set(.5*(ct.touches[0].pageX+ct.touches[1].pageX),.5*(ct.touches[0].pageY+ct.touches[1].pageY))})(lt),Y=H.TOUCH_DOLLY_PAN;break;default:Y=H.NONE}Y!==H.NONE&&b.dispatchEvent(V)}var ct}function Mt(lt){if(!1!==b.enabled)switch(lt.preventDefault(),lt.stopPropagation(),lt.touches.length){case 1:if(!1===b.enableRotate||Y!==H.TOUCH_ROTATE)return;!function(ct){M.set(ct.touches[0].pageX,ct.touches[0].pageY),N.subVectors(M,m).multiplyScalar(b.rotateSpeed);var Vt=b.domElement===document?b.domElement.body:b.domElement;wt(2*Math.PI*N.x/Vt.clientHeight),W(2*Math.PI*N.y/Vt.clientHeight),m.copy(M),b.update()}(lt);break;case 2:if(!1===b.enableZoom&&!1===b.enablePan||Y!==H.TOUCH_DOLLY_PAN)return;!function(ct){if(b.enableZoom){var Vt=ct.touches[0].pageX-ct.touches[1].pageX,Rt=ct.touches[0].pageY-ct.touches[1].pageY,ne=Math.sqrt(Vt*Vt+Rt*Rt);U.set(0,ne),G.set(0,Math.pow(U.y/Q.y,b.zoomSpeed)),ge(G.y),Q.copy(U)}b.enablePan&&(x.set(.5*(ct.touches[0].pageX+ct.touches[1].pageX),.5*(ct.touches[0].pageY+ct.touches[1].pageY)),P.subVectors(x,g).multiplyScalar(b.panSpeed),Ae(P.x,P.y),g.copy(x)),b.update()}(lt);break;default:Y=H.NONE}}function It(lt){!1!==b.enabled&&(b.dispatchEvent(_),Y=H.NONE)}function mt(lt){!1!==b.enabled&<.preventDefault()}b.domElement.addEventListener("contextmenu",mt,!1),b.domElement.addEventListener("mousedown",rn,!1),b.domElement.addEventListener("wheel",Ee,!1),b.domElement.addEventListener("touchstart",Ut,!1),b.domElement.addEventListener("touchend",It,!1),b.domElement.addEventListener("touchmove",Mt,!1),window.addEventListener("keydown",Qt,!1),this.update()},THREE.OrbitControls.prototype=Object.create(THREE.EventDispatcher.prototype),THREE.OrbitControls.prototype.constructor=THREE.OrbitControls,Object.defineProperties(THREE.OrbitControls.prototype,{center:{get:function(){return console.warn("THREE.OrbitControls: .center has been renamed to .target"),this.target}},noZoom:{get:function(){return console.warn("THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead."),!this.enableZoom},set:function(u){console.warn("THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead."),this.enableZoom=!u}},noRotate:{get:function(){return console.warn("THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead."),!this.enableRotate},set:function(u){console.warn("THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead."),this.enableRotate=!u}},noPan:{get:function(){return console.warn("THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead."),!this.enablePan},set:function(u){console.warn("THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead."),this.enablePan=!u}},noKeys:{get:function(){return console.warn("THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead."),!this.enableKeys},set:function(u){console.warn("THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead."),this.enableKeys=!u}},staticMoving:{get:function(){return console.warn("THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead."),!this.enableDamping},set:function(u){console.warn("THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead."),this.enableDamping=!u}},dynamicDampingFactor:{get:function(){return console.warn("THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead."),this.dampingFactor},set:function(u){console.warn("THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead."),this.dampingFactor=u}}}),THREE.FBXLoader=function(){var u,D,v;function p(g){this.manager=void 0!==g?g:THREE.DefaultLoadingManager}function s(g){this.textureLoader=g}function j(){}function k(){}function b(){}function B(){}function V(g,x){this.dv=new DataView(g),this.offset=0,this.littleEndian=void 0===x||x}function _(){}function H(g){var x=g.match(/FBXVersion: (\d+)/);if(x)return parseInt(x[1]);throw new Error("THREE.FBXLoader: Cannot find the version number for the file given.")}function Y(g){return g/46186158e3}p.prototype={constructor:p,crossOrigin:"anonymous",load:function(g,x,P,Q){var U=this,G=void 0===U.path?THREE.LoaderUtils.extractUrlBase(g):U.path,dt=new THREE.FileLoader(this.manager);dt.setResponseType("arraybuffer"),dt.load(g,function(wt){try{x(U.parse(wt,G))}catch(W){setTimeout(function(){Q&&Q(W),U.manager.itemError(g)},0)}},P,Q)},setPath:function(g){return this.path=g,this},setResourcePath:function(g){return this.resourcePath=g,this},setCrossOrigin:function(g){return this.crossOrigin=g,this},parse:function(g,x){if((U=g).byteLength>=(G="Kaydara FBX Binary \0").length&&G===M(U,0,G.length))u=(new B).parse(g);else{var P=M(g);if(!function(U){for(var dt,wt=["K","a","y","d","a","r","a","\\","F","B","X","\\","B","i","n","a","r","y","\\","\\"],W=0,te=0;te<wt.length;++te)if(dt=U[0],U=U.slice(W+1),W++,dt===wt[te])return!1;return!0}(P))throw new Error("THREE.FBXLoader: Unknown format.");if(H(P)<7e3)throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: "+H(P));u=(new b).parse(P)}var U,G;return new s(new THREE.TextureLoader(this.manager).setPath(this.resourcePath||x).setCrossOrigin(this.crossOrigin)).parse(u)}},s.prototype={constructor:s,parse:function(){D=this.parseConnections();var g=this.parseImages(),x=this.parseTextures(g),P=this.parseMaterials(x),Q=this.parseDeformers(),U=(new j).parse(Q);return this.parseScene(Q,U,P),v},parseConnections:function(){var g=new Map;return"Connections"in u&&u.Connections.connections.forEach(function(x){var P=x[0],Q=x[1],U=x[2];g.has(P)||g.set(P,{parents:[],children:[]});var G={ID:Q,relationship:U};g.get(P).parents.push(G),g.has(Q)||g.set(Q,{parents:[],children:[]});var dt={ID:P,relationship:U};g.get(Q).children.push(dt)}),g},parseImages:function(){var g={},x={};if("Video"in u.Objects){var P=u.Objects.Video;for(var Q in P){var U=P[Q];if(g[dt=parseInt(Q)]=U.RelativeFilename||U.Filename,"Content"in U&&(U.Content instanceof ArrayBuffer&&U.Content.byteLength>0||"string"==typeof U.Content&&""!==U.Content)){var G=this.parseImage(P[Q]);x[U.RelativeFilename||U.Filename]=G}}}for(var dt in g){var wt=g[dt];g[dt]=void 0!==x[wt]?x[wt]:g[dt].split("\\").pop()}return g},parseImage:function(g){var x,P=g.Content,Q=g.RelativeFilename||g.Filename,U=Q.slice(Q.lastIndexOf(".")+1).toLowerCase();switch(U){case"bmp":x="image/bmp";break;case"jpg":case"jpeg":x="image/jpeg";break;case"png":x="image/png";break;case"tif":x="image/tiff";break;case"tga":if("function"!=typeof THREE.TGALoader)return void console.warn("FBXLoader: THREE.TGALoader is required to load TGA textures");if(null===THREE.Loader.Handlers.get(".tga")){var G=new THREE.TGALoader;G.setPath(this.textureLoader.path),THREE.Loader.Handlers.add(/\.tga$/i,G)}x="image/tga";break;default:return void console.warn('FBXLoader: Image type "'+U+'" is not supported.')}if("string"==typeof P)return"data:"+x+";base64,"+P;var dt=new Uint8Array(P);return window.URL.createObjectURL(new Blob([dt],{type:x}))},parseTextures:function(g){var x=new Map;if("Texture"in u.Objects){var P=u.Objects.Texture;for(var Q in P){var U=this.parseTexture(P[Q],g);x.set(parseInt(Q),U)}}return x},parseTexture:function(g,x){var P=this.loadTexture(g,x);P.ID=g.id,P.name=g.attrName;var Q=g.WrapModeU,U=g.WrapModeV,G=void 0!==U?U.value:0;if(P.wrapS=0===(void 0!==Q?Q.value:0)?THREE.RepeatWrapping:THREE.ClampToEdgeWrapping,P.wrapT=0===G?THREE.RepeatWrapping:THREE.ClampToEdgeWrapping,"Scaling"in g){var dt=g.Scaling.value;P.repeat.x=dt[0],P.repeat.y=dt[1]}return P},loadTexture:function(g,x){var P,Q=this.textureLoader.path,U=D.get(g.id).children;void 0!==U&&U.length>0&&void 0!==x[U[0].ID]&&(0===(P=x[U[0].ID]).indexOf("blob:")||0===P.indexOf("data:"))&&this.textureLoader.setPath(void 0);var G,dt=g.FileName.slice(-3).toLowerCase();if("tga"===dt){var wt=THREE.Loader.Handlers.get(".tga");null===wt?(console.warn("FBXLoader: TGALoader not found, creating empty placeholder texture for",P),G=new THREE.Texture):G=wt.load(P)}else"psd"===dt?(console.warn("FBXLoader: PSD textures are not supported, creating empty placeholder texture for",P),G=new THREE.Texture):G=this.textureLoader.load(P);return this.textureLoader.setPath(Q),G},parseMaterials:function(g){var x=new Map;if("Material"in u.Objects){var P=u.Objects.Material;for(var Q in P){var U=this.parseMaterial(P[Q],g);null!==U&&x.set(parseInt(Q),U)}}return x},parseMaterial:function(g,x){var P=g.id,Q=g.attrName,U=g.ShadingModel;if("object"==typeof U&&(U=U.value),!D.has(P))return null;var G,dt=this.parseParameters(g,x,P);switch(U.toLowerCase()){case"phong":G=new THREE.MeshPhongMaterial;break;case"lambert":G=new THREE.MeshLambertMaterial;break;default:console.warn('THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.',U),G=new THREE.MeshPhongMaterial({color:3342591})}return G.setValues(dt),G.name=Q,G},parseParameters:function(g,x,P){var Q={};g.BumpFactor&&(Q.bumpScale=g.BumpFactor.value),g.Diffuse?Q.color=(new THREE.Color).fromArray(g.Diffuse.value):g.DiffuseColor&&"Color"===g.DiffuseColor.type&&(Q.color=(new THREE.Color).fromArray(g.DiffuseColor.value)),g.DisplacementFactor&&(Q.displacementScale=g.DisplacementFactor.value),g.Emissive?Q.emissive=(new THREE.Color).fromArray(g.Emissive.value):g.EmissiveColor&&"Color"===g.EmissiveColor.type&&(Q.emissive=(new THREE.Color).fromArray(g.EmissiveColor.value)),g.EmissiveFactor&&(Q.emissiveIntensity=parseFloat(g.EmissiveFactor.value)),g.Opacity&&(Q.opacity=parseFloat(g.Opacity.value)),Q.opacity<1&&(Q.transparent=!0),g.ReflectionFactor&&(Q.reflectivity=g.ReflectionFactor.value),g.Shininess&&(Q.shininess=g.Shininess.value),g.Specular?Q.specular=(new THREE.Color).fromArray(g.Specular.value):g.SpecularColor&&"Color"===g.SpecularColor.type&&(Q.specular=(new THREE.Color).fromArray(g.SpecularColor.value));var U=this;
1return D.get(P).children.forEach(function(G){var dt=G.relationship;switch(dt){case"Bump":Q.bumpMap=U.getTexture(x,G.ID);break;case"DiffuseColor":Q.map=U.getTexture(x,G.ID);break;case"DisplacementColor":Q.displacementMap=U.getTexture(x,G.ID);break;case"EmissiveColor":Q.emissiveMap=U.getTexture(x,G.ID);break;case"NormalMap":Q.normalMap=U.getTexture(x,G.ID);break;case"ReflectionColor":Q.envMap=U.getTexture(x,G.ID),Q.envMap.mapping=THREE.EquirectangularReflectionMapping;break;case"SpecularColor":Q.specularMap=U.getTexture(x,G.ID);break;case"TransparentColor":Q.alphaMap=U.getTexture(x,G.ID),Q.transparent=!0;break;default:console.warn("THREE.FBXLoader: %s map is not supported in three.js, skipping texture.",dt)}}),Q},getTexture:function(g,x){return"LayeredTexture"in u.Objects&&x in u.Objects.LayeredTexture&&(console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."),x=D.get(x).children[0].ID),g.get(x)},parseDeformers:function(){var g={},x={};if("Deformer"in u.Objects){var P=u.Objects.Deformer;for(var Q in P){var U=P[Q],G=D.get(parseInt(Q));if("Skin"===U.attrType){var dt=this.parseSkeleton(G,P);dt.ID=Q,G.parents.length>1&&console.warn("THREE.FBXLoader: skeleton attached to more than one geometry is not supported."),dt.geometryID=G.parents[0].ID,g[Q]=dt}else if("BlendShape"===U.attrType){var wt={id:Q};wt.rawTargets=this.parseMorphTargets(G,P),wt.id=Q,G.parents.length>1&&console.warn("THREE.FBXLoader: morph target attached to more than one geometry is not supported."),x[Q]=wt}}}return{skeletons:g,morphTargets:x}},parseSkeleton:function(g,x){var P=[];return g.children.forEach(function(Q){var U=x[Q.ID];if("Cluster"===U.attrType){var G={ID:Q.ID,indices:[],weights:[],transformLink:(new THREE.Matrix4).fromArray(U.TransformLink.a)};"Indexes"in U&&(G.indices=U.Indexes.a,G.weights=U.Weights.a),P.push(G)}}),{rawBones:P,bones:[]}},parseMorphTargets:function(g,x){for(var P=[],Q=0;Q<g.children.length;Q++){var U=g.children[Q],G=x[U.ID],dt={name:G.attrName,initialWeight:G.DeformPercent,id:G.id,fullWeights:G.FullWeights.a};if("BlendShapeChannel"!==G.attrType)return;D.get(parseInt(U.ID)).children.forEach(function(wt){void 0===wt.relationship&&(dt.geoID=wt.ID)}),P.push(dt)}return P},parseScene:function(g,x,P){v=new THREE.Group;var Q=this.parseModels(g.skeletons,x,P),U=u.Objects.Model,G=this;Q.forEach(function(wt){G.setLookAtProperties(wt,U[wt.ID]),D.get(wt.ID).parents.forEach(function(W){var te=Q.get(W.ID);void 0!==te&&te.add(wt)}),null===wt.parent&&v.add(wt)}),this.bindSkeleton(g.skeletons,x,Q),this.createAmbientLight(),this.setupMorphMaterials(),v.traverse(function(wt){if(wt.userData.transformData){wt.parent&&(wt.userData.transformData.parentMatrixWorld=wt.parent.matrix);var W=J(wt.userData.transformData);wt.applyMatrix(W)}});var dt=(new k).parse();1===v.children.length&&v.children[0].isGroup&&(v.children[0].animations=dt,v=v.children[0]),v.animations=dt},parseModels:function(g,x,P){var Q=new Map,U=u.Objects.Model;for(var G in U){var dt=parseInt(G),wt=U[G],W=D.get(dt),te=this.buildSkeleton(W,g,dt,wt.attrName);if(!te){switch(wt.attrType){case"Camera":te=this.createCamera(W);break;case"Light":te=this.createLight(W);break;case"Mesh":te=this.createMesh(W,x,P);break;case"NurbsCurve":te=this.createCurve(W,x);break;case"LimbNode":case"Root":te=new THREE.Bone;break;default:te=new THREE.Group}te.name=THREE.PropertyBinding.sanitizeNodeName(wt.attrName),te.ID=dt}this.getTransformData(te,wt),Q.set(dt,te)}return Q},buildSkeleton:function(g,x,P,Q){var U=null;return g.parents.forEach(function(G){for(var dt in x){var wt=x[dt];wt.rawBones.forEach(function(W,te){if(W.ID===G.ID){var ae=U;(U=new THREE.Bone).matrixWorld.copy(W.transformLink),U.name=THREE.PropertyBinding.sanitizeNodeName(Q),U.ID=P,wt.bones[te]=U,null!==ae&&U.add(ae)}})}}),U},createCamera:function(g){var x,P;if(g.children.forEach(function(Ae){var ge=u.Objects.NodeAttribute[Ae.ID];void 0!==ge&&(P=ge)}),void 0===P)x=new THREE.Object3D;else{var Q=0;void 0!==P.CameraProjectionType&&1===P.CameraProjectionType.value&&(Q=1);var U=1;void 0!==P.NearPlane&&(U=P.NearPlane.value/1e3);var G=1e3;void 0!==P.FarPlane&&(G=P.FarPlane.value/1e3);var dt=window.innerWidth,wt=window.innerHeight;void 0!==P.AspectWidth&&void 0!==P.AspectHeight&&(dt=P.AspectWidth.value,wt=P.AspectHeight.value);var W=dt/wt,te=45;void 0!==P.FieldOfView&&(te=P.FieldOfView.value);var ae=P.FocalLength?P.FocalLength.value:null;switch(Q){case 0:x=new THREE.PerspectiveCamera(te,W,U,G),null!==ae&&x.setFocalLength(ae);break;
1case 1:x=new THREE.OrthographicCamera(-dt/2,dt/2,wt/2,-wt/2,U,G);break;default:console.warn("THREE.FBXLoader: Unknown camera type "+Q+"."),x=new THREE.Object3D}}return x},createLight:function(g){var x,P;if(g.children.forEach(function(te){var ae=u.Objects.NodeAttribute[te.ID];void 0!==ae&&(P=ae)}),void 0===P)x=new THREE.Object3D;else{var Q;Q=void 0===P.LightType?0:P.LightType.value;var U=16777215;void 0!==P.Color&&(U=(new THREE.Color).fromArray(P.Color.value));var G=void 0===P.Intensity?1:P.Intensity.value/100;void 0!==P.CastLightOnObject&&0===P.CastLightOnObject.value&&(G=0);var dt=0;switch(void 0!==P.FarAttenuationEnd&&(dt=void 0!==P.EnableFarAttenuation&&0===P.EnableFarAttenuation.value?0:P.FarAttenuationEnd.value),Q){case 0:x=new THREE.PointLight(U,G,dt,1);break;case 1:x=new THREE.DirectionalLight(U,G);break;case 2:var wt=Math.PI/3;void 0!==P.InnerAngle&&(wt=THREE.Math.degToRad(P.InnerAngle.value));var W=0;void 0!==P.OuterAngle&&(W=THREE.Math.degToRad(P.OuterAngle.value),W=Math.max(W,1)),x=new THREE.SpotLight(U,G,dt,wt,W,1);break;default:console.warn("THREE.FBXLoader: Unknown light type "+P.LightType.value+", defaulting to a THREE.PointLight."),x=new THREE.PointLight(U,G)}void 0!==P.CastShadows&&1===P.CastShadows.value&&(x.castShadow=!0)}return x},createMesh:function(g,x,P){var Q,U=null,G=null,dt=[];return g.children.forEach(function(wt){x.has(wt.ID)&&(U=x.get(wt.ID)),P.has(wt.ID)&&dt.push(P.get(wt.ID))}),dt.length>1?G=dt:dt.length>0?G=dt[0]:(G=new THREE.MeshPhongMaterial({color:13421772}),dt.push(G)),"color"in U.attributes&&dt.forEach(function(wt){wt.vertexColors=THREE.VertexColors}),U.FBX_Deformer?(dt.forEach(function(wt){wt.skinning=!0}),Q=new THREE.SkinnedMesh(U,G)):Q=new THREE.Mesh(U,G),Q},createCurve:function(g,x){var P=g.children.reduce(function(U,G){return x.has(G.ID)&&(U=x.get(G.ID)),U},null),Q=new THREE.LineBasicMaterial({color:3342591,linewidth:1});return new THREE.Line(P,Q)},getTransformData:function(g,x){var P={};"InheritType"in x&&(P.inheritType=parseInt(x.InheritType.value)),P.eulerOrder="RotationOrder"in x?ht(x.RotationOrder.value):"ZYX","Lcl_Translation"in x&&(P.translation=x.Lcl_Translation.value),"PreRotation"in x&&(P.preRotation=x.PreRotation.value),"Lcl_Rotation"in x&&(P.rotation=x.Lcl_Rotation.value),"PostRotation"in x&&(P.postRotation=x.PostRotation.value),"Lcl_Scaling"in x&&(P.scale=x.Lcl_Scaling.value),"ScalingOffset"in x&&(P.scalingOffset=x.ScalingOffset.value),"ScalingPivot"in x&&(P.scalingPivot=x.ScalingPivot.value),"RotationOffset"in x&&(P.rotationOffset=x.RotationOffset.value),"RotationPivot"in x&&(P.rotationPivot=x.RotationPivot.value),g.userData.transformData=P},setLookAtProperties:function(g,x){"LookAtProperty"in x&&D.get(g.ID).children.forEach(function(P){if("LookAtProperty"===P.relationship){var Q=u.Objects.Model[P.ID];if("Lcl_Translation"in Q){var U=Q.Lcl_Translation.value;void 0!==g.target?(g.target.position.fromArray(U),v.add(g.target)):g.lookAt((new THREE.Vector3).fromArray(U))}}})},bindSkeleton:function(g,x,P){var Q=this.parsePoseNodes();for(var U in g){var G=g[U];D.get(parseInt(G.ID)).parents.forEach(function(dt){x.has(dt.ID)&&D.get(dt.ID).parents.forEach(function(wt){P.has(wt.ID)&&P.get(wt.ID).bind(new THREE.Skeleton(G.bones),Q[wt.ID])})})}},parsePoseNodes:function(){var g={};if("Pose"in u.Objects){var x=u.Objects.Pose;for(var P in x)if("BindPose"===x[P].attrType){var Q=x[P].PoseNode;Array.isArray(Q)?Q.forEach(function(U){g[U.Node]=(new THREE.Matrix4).fromArray(U.Matrix.a)}):g[Q.Node]=(new THREE.Matrix4).fromArray(Q.Matrix.a)}}return g},createAmbientLight:function(){if("GlobalSettings"in u&&"AmbientColor"in u.GlobalSettings){var g=u.GlobalSettings.AmbientColor.value,x=g[0],P=g[1],Q=g[2];if(0!==x||0!==P||0!==Q){var U=new THREE.Color(x,P,Q);v.add(new THREE.AmbientLight(U,1))}}},setupMorphMaterials:function(){var g=this;v.traverse(function(x){x.isMesh&&x.geometry.morphAttributes.position&&x.geometry.morphAttributes.position.length&&(Array.isArray(x.material)?x.material.forEach(function(P,Q){g.setupMorphMaterial(x,P,Q)}):g.setupMorphMaterial(x,x.material))})},setupMorphMaterial:function(g,x,P){var Q=g.uuid,U=x.uuid,G=!1;if(v.traverse(function(wt){wt.isMesh&&(Array.isArray(wt.material)?wt.material.forEach(function(W){W.uuid===U&&wt.uuid!==Q&&(G=!0)}):wt.material.uuid===U&&wt.uuid!==Q&&(G=!0))}),!0===G){var dt=x.clone();dt.morphTargets=!0,void 0===P?g.material=dt:g.material[P]=dt}else x.morphTargets=!0}},j.prototype={constructor:j,parse:function(g){var x=new Map;if("Geometry"in u.Objects){var P=u.Objects.Geometry;for(var Q in P){var U=D.get(parseInt(Q)),G=this.parseGeometry(U,P[Q],g);x.set(parseInt(Q),G)}}return x},parseGeometry:function(g,x,P){switch(x.attrType){case"Mesh":return this.parseMeshGeometry(g,x,P);case"NurbsCurve":return this.parseNurbsGeometry(x)}},parseMeshGeometry:function(g,x,P){var Q=P.skeletons,U=P.morphTargets,G=g.parents.map(function(Ae){return u.Objects.Model[Ae.ID]});if(0!==G.length){var dt=g.children.reduce(function(Ae,ge){return void 0!==Q[ge.ID]&&(Ae=Q[ge.ID]),Ae},null),wt=g.children.reduce(function(Ae,ge){return void 0!==U[ge.ID]&&(Ae=U[ge.ID]),Ae},null),W=G[0],te={};"RotationOrder"in W&&(te.eulerOrder=ht(W.RotationOrder.value)),"InheritType"in W&&(te.inheritType=parseInt(W.InheritType.value)),"GeometricTranslation"in W&&(te.translation=W.GeometricTranslation.value),"GeometricRotation"in W&&(te.rotation=W.GeometricRotation.value),"GeometricScaling"in W&&(te.scale=W.GeometricScaling.value);var ae=J(te);return this.genGeometry(x,dt,wt,ae)}},genGeometry:function(g,x,P,Q){var U=new THREE.BufferGeometry;g.attrName&&(U.name=g.attrName);var G=this.parseGeoNode(g,x),dt=this.genBuffers(G),wt=new THREE.Float32BufferAttribute(dt.vertex,3);if(Q.applyToBufferAttribute(wt),U.addAttribute("position",wt),dt.colors.length>0&&U.addAttribute("color",new THREE.Float32BufferAttribute(dt.colors,3)),x&&(U.addAttribute("skinIndex",new THREE.Uint16BufferAttribute(dt.weightsIndices,4)),U.addAttribute("skinWeight",new THREE.Float32BufferAttribute(dt.vertexWeights,4)),U.FBX_Deformer=x),dt.normal.length>0){var W=new THREE.Float32BufferAttribute(dt.normal,3);(new THREE.Matrix3).getNormalMatrix(Q).applyToBufferAttribute(W),U.addAttribute("normal",W)}
1if(dt.uvs.forEach(function(We,Cn){var rn="uv"+(Cn+1).toString();0===Cn&&(rn="uv"),U.addAttribute(rn,new THREE.Float32BufferAttribute(dt.uvs[Cn],2))}),G.material&&"AllSame"!==G.material.mappingType){var te=dt.materialIndex[0],ae=0;if(dt.materialIndex.forEach(function(We,Cn){We!==te&&(U.addGroup(ae,Cn-ae,te),te=We,ae=Cn)}),U.groups.length>0){var Ae=U.groups[U.groups.length-1],ge=Ae.start+Ae.count;ge!==dt.materialIndex.length&&U.addGroup(ge,dt.materialIndex.length-ge,te)}0===U.groups.length&&U.addGroup(0,dt.materialIndex.length,dt.materialIndex[0])}return this.addMorphTargets(U,g,P,Q),U},parseGeoNode:function(g,x){var P={};if(P.vertexPositions=void 0!==g.Vertices?g.Vertices.a:[],P.vertexIndices=void 0!==g.PolygonVertexIndex?g.PolygonVertexIndex.a:[],g.LayerElementColor&&(P.color=this.parseVertexColors(g.LayerElementColor[0])),g.LayerElementMaterial&&(P.material=this.parseMaterialIndices(g.LayerElementMaterial[0])),g.LayerElementNormal&&(P.normal=this.parseNormals(g.LayerElementNormal[0])),g.LayerElementUV){P.uv=[];for(var Q=0;g.LayerElementUV[Q];)P.uv.push(this.parseUVs(g.LayerElementUV[Q])),Q++}return P.weightTable={},null!==x&&(P.skeleton=x,x.rawBones.forEach(function(U,G){U.indices.forEach(function(dt,wt){void 0===P.weightTable[dt]&&(P.weightTable[dt]=[]),P.weightTable[dt].push({id:G,weight:U.weights[wt]})})})),P},genBuffers:function(g){var x={vertex:[],normal:[],colors:[],uvs:[],materialIndex:[],vertexWeights:[],weightsIndices:[]},P=0,Q=0,U=!1,G=[],dt=[],wt=[],W=[],te=[],ae=[],Ae=this;return g.vertexIndices.forEach(function(ge,We){var Cn=!1;ge<0&&(ge^=-1,Cn=!0);var rn=[],Me=[];if(G.push(3*ge,3*ge+1,3*ge+2),g.color){var Le=it(We,P,ge,g.color);wt.push(Le[0],Le[1],Le[2])}if(g.skeleton){if(void 0!==g.weightTable[ge]&&g.weightTable[ge].forEach(function(It){Me.push(It.weight),rn.push(It.id)}),Me.length>4){U||(console.warn("THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."),U=!0);var Ee=[0,0,0,0],Qt=[0,0,0,0];Me.forEach(function(It,mt){var lt=It,et=rn[mt];Qt.forEach(function(ct,Vt,Rt){if(lt>ct){Rt[Vt]=lt,lt=ct;var ne=Ee[Vt];Ee[Vt]=et,et=ne}})}),rn=Ee,Me=Qt}for(;Me.length<4;)Me.push(0),rn.push(0);for(var Ut=0;Ut<4;++Ut)te.push(Me[Ut]),ae.push(rn[Ut])}if(g.normal&&(Le=it(We,P,ge,g.normal),dt.push(Le[0],Le[1],Le[2])),g.material&&"AllSame"!==g.material.mappingType)var Mt=it(We,P,ge,g.material)[0];g.uv&&g.uv.forEach(function(It,mt){var lt=it(We,P,ge,It);void 0===W[mt]&&(W[mt]=[]),W[mt].push(lt[0]),W[mt].push(lt[1])}),Q++,Cn&&(Ae.genFace(x,g,G,Mt,dt,wt,W,te,ae,Q),P++,Q=0,G=[],dt=[],wt=[],W=[],te=[],ae=[])}),x},genFace:function(g,x,P,Q,U,G,dt,wt,W,te){for(var ae=2;ae<te;ae++)g.vertex.push(x.vertexPositions[P[0]]),g.vertex.push(x.vertexPositions[P[1]]),g.vertex.push(x.vertexPositions[P[2]]),g.vertex.push(x.vertexPositions[P[3*(ae-1)]]),g.vertex.push(x.vertexPositions[P[3*(ae-1)+1]]),g.vertex.push(x.vertexPositions[P[3*(ae-1)+2]]),g.vertex.push(x.vertexPositions[P[3*ae]]),g.vertex.push(x.vertexPositions[P[3*ae+1]]),g.vertex.push(x.vertexPositions[P[3*ae+2]]),x.skeleton&&(g.vertexWeights.push(wt[0]),g.vertexWeights.push(wt[1]),g.vertexWeights.push(wt[2]),g.vertexWeights.push(wt[3]),g.vertexWeights.push(wt[4*(ae-1)]),g.vertexWeights.push(wt[4*(ae-1)+1]),g.vertexWeights.push(wt[4*(ae-1)+2]),g.vertexWeights.push(wt[4*(ae-1)+3]),g.vertexWeights.push(wt[4*ae]),g.vertexWeights.push(wt[4*ae+1]),g.vertexWeights.push(wt[4*ae+2]),g.vertexWeights.push(wt[4*ae+3]),g.weightsIndices.push(W[0]),g.weightsIndices.push(W[1]),g.weightsIndices.push(W[2]),g.weightsIndices.push(W[3]),g.weightsIndices.push(W[4*(ae-1)]),g.weightsIndices.push(W[4*(ae-1)+1]),g.weightsIndices.push(W[4*(ae-1)+2]),g.weightsIndices.push(W[4*(ae-1)+3]),g.weightsIndices.push(W[4*ae]),g.weightsIndices.push(W[4*ae+1]),g.weightsIndices.push(W[4*ae+2]),g.weightsIndices.push(W[4*ae+3])),x.color&&(g.colors.push(G[0]),g.colors.push(G[1]),g.colors.push(G[2]),g.colors.push(G[3*(ae-1)]),g.colors.push(G[3*(ae-1)+1]),g.colors.push(G[3*(ae-1)+2]),g.colors.push(G[3*ae]),g.colors.push(G[3*ae+1]),g.colors.push(G[3*ae+2])),x.material&&"AllSame"!==x.material.mappingType&&(g.materialIndex.push(Q),g.materialIndex.push(Q),g.materialIndex.push(Q)),x.normal&&(g.normal.push(U[0]),g.normal.push(U[1]),g.normal.push(U[2]),g.normal.push(U[3*(ae-1)]),g.normal.push(U[3*(ae-1)+1]
1),g.normal.push(U[3*(ae-1)+2]),g.normal.push(U[3*ae]),g.normal.push(U[3*ae+1]),g.normal.push(U[3*ae+2])),x.uv&&x.uv.forEach(function(Ae,ge){void 0===g.uvs[ge]&&(g.uvs[ge]=[]),g.uvs[ge].push(dt[ge][0]),g.uvs[ge].push(dt[ge][1]),g.uvs[ge].push(dt[ge][2*(ae-1)]),g.uvs[ge].push(dt[ge][2*(ae-1)+1]),g.uvs[ge].push(dt[ge][2*ae]),g.uvs[ge].push(dt[ge][2*ae+1])})},addMorphTargets:function(g,x,P,Q){if(null!==P){g.morphAttributes.position=[];var U=this;P.rawTargets.forEach(function(G){var dt=u.Objects.Geometry[G.geoID];void 0!==dt&&U.genMorphGeometry(g,x,dt,Q,G.name)})}},genMorphGeometry:function(g,x,P,Q,U){var G=new THREE.BufferGeometry;P.attrName&&(G.name=P.attrName);for(var dt=void 0!==x.PolygonVertexIndex?x.PolygonVertexIndex.a:[],wt=void 0!==x.Vertices?x.Vertices.a.slice():[],W=void 0!==P.Vertices?P.Vertices.a:[],te=void 0!==P.Indexes?P.Indexes.a:[],ae=0;ae<te.length;ae++){var Ae=3*te[ae];wt[Ae]+=W[3*ae],wt[Ae+1]+=W[3*ae+1],wt[Ae+2]+=W[3*ae+2]}var ge=this.genBuffers({vertexIndices:dt,vertexPositions:wt}),We=new THREE.Float32BufferAttribute(ge.vertex,3);We.name=U||P.attrName,Q.applyToBufferAttribute(We),g.morphAttributes.position.push(We)},parseNormals:function(g){var x=g.ReferenceInformationType,P=[];return"IndexToDirect"===x&&("NormalIndex"in g?P=g.NormalIndex.a:"NormalsIndex"in g&&(P=g.NormalsIndex.a)),{dataSize:3,buffer:g.Normals.a,indices:P,mappingType:g.MappingInformationType,referenceType:x}},parseUVs:function(g){var x=g.ReferenceInformationType,P=[];return"IndexToDirect"===x&&(P=g.UVIndex.a),{dataSize:2,buffer:g.UV.a,indices:P,mappingType:g.MappingInformationType,referenceType:x}},parseVertexColors:function(g){var x=g.ReferenceInformationType,P=[];return"IndexToDirect"===x&&(P=g.ColorIndex.a),{dataSize:4,buffer:g.Colors.a,indices:P,mappingType:g.MappingInformationType,referenceType:x}},parseMaterialIndices:function(g){var x=g.MappingInformationType,P=g.ReferenceInformationType;if("NoMappingInformation"===x)return{dataSize:1,buffer:[0],indices:[0],mappingType:"AllSame",referenceType:P};for(var Q=g.Materials.a,U=[],G=0;G<Q.length;++G)U.push(G);return{dataSize:1,buffer:Q,indices:U,mappingType:x,referenceType:P}},parseNurbsGeometry:function(g){if(void 0===THREE.NURBSCurve)return console.error("THREE.FBXLoader: The loader relies on THREE.NURBSCurve for any nurbs present in the model. Nurbs will show up as empty geometry."),new THREE.BufferGeometry;var x,P,Q=parseInt(g.Order);if(isNaN(Q))return console.error("THREE.FBXLoader: Invalid Order %s given for geometry ID: %s",g.Order,g.id),new THREE.BufferGeometry;for(var U=Q-1,G=g.KnotVector.a,dt=[],wt=g.Points.a,W=0,te=wt.length;W<te;W+=4)dt.push((new THREE.Vector4).fromArray(wt,W));if("Closed"===g.Form)dt.push(dt[0]);else if("Periodic"===g.Form)for(P=G.length-1-(x=U),W=0;W<U;++W)dt.push(dt[W]);var ae=new THREE.NURBSCurve(U,G,dt,x,P).getPoints(7*dt.length),Ae=new Float32Array(3*ae.length);ae.forEach(function(We,Cn){We.toArray(Ae,3*Cn)});var ge=new THREE.BufferGeometry;return ge.addAttribute("position",new THREE.BufferAttribute(Ae,3)),ge}},k.prototype={constructor:k,parse:function(){var g=[],x=this.parseClips();if(void 0!==x){for(var P in x){var Q=this.addClip(x[P]);g.push(Q)}return g}},parseClips:function(){if(void 0!==u.Objects.AnimationCurve){var g=this.parseAnimationCurveNodes();this.parseAnimationCurves(g);var x=this.parseAnimationLayers(g);return this.parseAnimStacks(x)}},parseAnimationCurveNodes:function(){var g=u.Objects.AnimationCurveNode,x=new Map;for(var P in g){var Q=g[P];if(null!==Q.attrName.match(/S|R|T|DeformPercent/)){var U={id:Q.id,attr:Q.attrName,curves:{}};x.set(U.id,U)}}return x},parseAnimationCurves:function(g){var x=u.Objects.AnimationCurve;for(var P in x){var Q={id:x[P].id,times:x[P].KeyTime.a.map(Y),values:x[P].KeyValueFloat.a},U=D.get(Q.id);if(void 0!==U){var G=U.parents[0].ID,dt=U.parents[0].relationship;dt.match(/X/)?g.get(G).curves.x=Q:dt.match(/Y/)?g.get(G).curves.y=Q:dt.match(/Z/)?g.get(G).curves.z=Q:dt.match(/d|DeformPercent/)&&g.has(G)&&(g.get(G).curves.morph=Q)}}},parseAnimationLayers:function(g){var x=u.Objects.AnimationLayer,P=new Map;for(var Q in x){var U=[],G=D.get(parseInt(Q));
1void 0!==G&&(G.children.forEach(function(dt,wt){if(g.has(dt.ID)){var W=g.get(dt.ID);if(void 0!==W.curves.x||void 0!==W.curves.y||void 0!==W.curves.z){if(void 0===U[wt]){D.get(dt.ID).parents.forEach(function(rn){void 0!==rn.relationship&&(Cn=rn.ID)});var te=u.Objects.Model[Cn.toString()],ae={modelName:THREE.PropertyBinding.sanitizeNodeName(te.attrName),ID:te.id,initialPosition:[0,0,0],initialRotation:[0,0,0],initialScale:[1,1,1]};v.traverse(function(rn){(rn.ID=te.id)&&(ae.transform=rn.matrix,rn.userData.transformData&&(ae.eulerOrder=rn.userData.transformData.eulerOrder))}),ae.transform||(ae.transform=new THREE.Matrix4),"PreRotation"in te&&(ae.preRotation=te.PreRotation.value),"PostRotation"in te&&(ae.postRotation=te.PostRotation.value),U[wt]=ae}U[wt][W.attr]=W}else if(void 0!==W.curves.morph){if(void 0===U[wt]){var Ae;D.get(dt.ID).parents.forEach(function(rn){void 0!==rn.relationship&&(Ae=rn.ID)});var ge=D.get(Ae).parents[0].ID,We=D.get(ge).parents[0].ID,Cn=D.get(We).parents[0].ID;te=u.Objects.Model[Cn],ae={modelName:THREE.PropertyBinding.sanitizeNodeName(te.attrName),morphName:u.Objects.Deformer[Ae].attrName},U[wt]=ae}U[wt][W.attr]=W}}}),P.set(parseInt(Q),U))}return P},parseAnimStacks:function(g){var x=u.Objects.AnimationStack,P={};for(var Q in x){var U=D.get(parseInt(Q)).children;U.length>1&&console.warn("THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.");var G=g.get(U[0].ID);P[Q]={name:x[Q].attrName,layer:G}}return P},addClip:function(g){var x=[],P=this;return g.layer.forEach(function(Q){x=x.concat(P.generateTracks(Q))}),new THREE.AnimationClip(g.name,-1,x)},generateTracks:function(g){var x=[],P=new THREE.Vector3,Q=new THREE.Quaternion,U=new THREE.Vector3;if(g.transform&&g.transform.decompose(P,Q,U),P=P.toArray(),Q=(new THREE.Euler).setFromQuaternion(Q,g.eulerOrder).toArray(),U=U.toArray(),void 0!==g.T&&Object.keys(g.T.curves).length>0){var G=this.generateVectorTrack(g.modelName,g.T.curves,P,"position");void 0!==G&&x.push(G)}if(void 0!==g.R&&Object.keys(g.R.curves).length>0){var dt=this.generateRotationTrack(g.modelName,g.R.curves,Q,g.preRotation,g.postRotation,g.eulerOrder);void 0!==dt&&x.push(dt)}if(void 0!==g.S&&Object.keys(g.S.curves).length>0){var wt=this.generateVectorTrack(g.modelName,g.S.curves,U,"scale");void 0!==wt&&x.push(wt)}if(void 0!==g.DeformPercent){var W=this.generateMorphTrack(g);void 0!==W&&x.push(W)}return x},generateVectorTrack:function(g,x,P,Q){var U=this.getTimesForAllAxes(x),G=this.getKeyframeTrackValues(U,x,P);return new THREE.VectorKeyframeTrack(g+"."+Q,U,G)},generateRotationTrack:function(g,x,P,Q,U,G){void 0!==x.x&&(this.interpolateRotations(x.x),x.x.values=x.x.values.map(THREE.Math.degToRad)),void 0!==x.y&&(this.interpolateRotations(x.y),x.y.values=x.y.values.map(THREE.Math.degToRad)),void 0!==x.z&&(this.interpolateRotations(x.z),x.z.values=x.z.values.map(THREE.Math.degToRad));var dt=this.getTimesForAllAxes(x),wt=this.getKeyframeTrackValues(dt,x,P);void 0!==Q&&((Q=Q.map(THREE.Math.degToRad)).push(G),Q=(new THREE.Euler).fromArray(Q),Q=(new THREE.Quaternion).setFromEuler(Q)),void 0!==U&&((U=U.map(THREE.Math.degToRad)).push(G),U=(new THREE.Euler).fromArray(U),U=(new THREE.Quaternion).setFromEuler(U).inverse());for(var W=new THREE.Quaternion,te=new THREE.Euler,ae=[],Ae=0;Ae<wt.length;Ae+=3)te.set(wt[Ae],wt[Ae+1],wt[Ae+2],G),W.setFromEuler(te),void 0!==Q&&W.premultiply(Q),void 0!==U&&W.multiply(U),W.toArray(ae,Ae/3*4);return new THREE.QuaternionKeyframeTrack(g+".quaternion",dt,ae)},generateMorphTrack:function(g){var x=g.DeformPercent.curves.morph,P=x.values.map(function(U){return U/100}),Q=v.getObjectByName(g.modelName).morphTargetDictionary[g.morphName];return new THREE.NumberKeyframeTrack(g.modelName+".morphTargetInfluences["+Q+"]",x.times,P)},getTimesForAllAxes:function(g){var x=[];return void 0!==g.x&&(x=x.concat(g.x.times)),void 0!==g.y&&(x=x.concat(g.y.times)),void 0!==g.z&&(x=x.concat(g.z.times)),x.sort(function(P,Q){return P-Q}).filter(function(P,Q,U){return U.indexOf(P)==Q})},getKeyframeTrackValues:function(g,x,P){var Q=P,U=[],G=-1,dt=-1,wt=-1;return g.forEach(function(W){if(x.x&&(G=x.x.times.indexOf(W)),x.y&&(dt=x.y.times.indexOf(W)),x.z&&(wt=x.z.times.indexOf(W)),-1!==G){var te=x.x.values[G];U.push(te),Q[0]=te}else U.push(Q[0]);if(-1!==dt){var ae=x.y.values[dt];U.push(ae),Q[1]=ae}
1else U.push(Q[1]);if(-1!==wt){var Ae=x.z.values[wt];U.push(Ae),Q[2]=Ae}else U.push(Q[2])}),U},interpolateRotations:function(g){for(var x=1;x<g.values.length;x++){var P=g.values[x-1],Q=g.values[x]-P,U=Math.abs(Q);if(U>=180){for(var G=U/180,dt=Q/G,wt=P+dt,W=g.times[x-1],te=(g.times[x]-W)/G,ae=W+te,Ae=[],ge=[];ae<g.times[x];)Ae.push(ae),ae+=te,ge.push(wt),wt+=dt;g.times=N(g.times,x,Ae),g.values=N(g.values,x,ge)}}}},b.prototype={constructor:b,getPrevNode:function(){return this.nodeStack[this.currentIndent-2]},getCurrentNode:function(){return this.nodeStack[this.currentIndent-1]},getCurrentProp:function(){return this.currentProp},pushStack:function(g){this.nodeStack.push(g),this.currentIndent+=1},popStack:function(){this.nodeStack.pop(),this.currentIndent-=1},setCurrentProp:function(g,x){this.currentProp=g,this.currentPropName=x},parse:function(g){this.currentIndent=0,this.allNodes=new _,this.nodeStack=[],this.currentProp=[],this.currentPropName="";var x=this,P=g.split(/[\r\n]+/);return P.forEach(function(Q,U){var G=Q.match(/^[\s\t]*;/),dt=Q.match(/^[\s\t]*$/);if(!G&&!dt){var wt=Q.match("^\\t{"+x.currentIndent+"}(\\w+):(.*){",""),W=Q.match("^\\t{"+x.currentIndent+"}(\\w+):[\\s\\t\\r\\n](.*)"),te=Q.match("^\\t{"+(x.currentIndent-1)+"}}");wt?x.parseNodeBegin(Q,wt):W?x.parseNodeProperty(Q,W,P[++U]):te?x.popStack():Q.match(/^[^\s\t}]/)&&x.parseNodePropertyContinued(Q)}}),this.allNodes},parseNodeBegin:function(g,x){var P=x[1].trim().replace(/^"/,"").replace(/"$/,""),Q=x[2].split(",").map(function(wt){return wt.trim().replace(/^"/,"").replace(/"$/,"")}),U={name:P},G=this.parseNodeAttr(Q),dt=this.getCurrentNode();0===this.currentIndent?this.allNodes.add(P,U):P in dt?("PoseNode"===P?dt.PoseNode.push(U):void 0!==dt[P].id&&(dt[P]={},dt[P][dt[P].id]=dt[P]),""!==G.id&&(dt[P][G.id]=U)):"number"==typeof G.id?(dt[P]={},dt[P][G.id]=U):"Properties70"!==P&&(dt[P]="PoseNode"===P?[U]:U),"number"==typeof G.id&&(U.id=G.id),""!==G.name&&(U.attrName=G.name),""!==G.type&&(U.attrType=G.type),this.pushStack(U)},parseNodeAttr:function(g){var x=g[0];""!==g[0]&&(x=parseInt(g[0]),isNaN(x)&&(x=g[0]));var P="",Q="";return g.length>1&&(P=g[1].replace(/^(\w+)::/,""),Q=g[2]),{id:x,name:P,type:Q}},parseNodeProperty:function(g,x,P){var Q=x[1].replace(/^"/,"").replace(/"$/,"").trim(),U=x[2].replace(/^"/,"").replace(/"$/,"").trim();"Content"===Q&&","===U&&(U=P.replace(/"/g,"").replace(/,$/,"").trim());var G=this.getCurrentNode();if("Properties70"!==G.name){if("C"===Q){var dt=U.split(",").slice(1),wt=parseInt(dt[0]),W=parseInt(dt[1]),te=U.split(",").slice(3);Q="connections",function(Ae,ge){for(var We=0,Cn=Ae.length,rn=ge.length;We<rn;We++,Cn++)Ae[Cn]=ge[We]}(U=[wt,W],te=te.map(function(ae){return ae.trim().replace(/^"/,"")})),void 0===G[Q]&&(G[Q]=[])}"Node"===Q&&(G.id=U),Q in G&&Array.isArray(G[Q])?G[Q].push(U):"a"!==Q?G[Q]=U:G.a=U,this.setCurrentProp(G,Q),"a"===Q&&","!==U.slice(-1)&&(G.a=m(U))}else this.parseNodeSpecialProperty(g,Q,U)},parseNodePropertyContinued:function(g){var x=this.getCurrentNode();x.a+=g,","!==g.slice(-1)&&(x.a=m(x.a))},parseNodeSpecialProperty:function(g,x,P){var Q=P.split('",').map(function(te){return te.trim().replace(/^\"/,"").replace(/\s/,"_")}),U=Q[0],G=Q[1],dt=Q[2],wt=Q[3],W=Q[4];switch(G){case"int":case"enum":case"bool":case"ULongLong":case"double":case"Number":case"FieldOfView":W=parseFloat(W);break;case"Color":case"ColorRGB":case"Vector3D":case"Lcl_Translation":case"Lcl_Rotation":case"Lcl_Scaling":W=m(W)}this.getPrevNode()[U]={type:G,type2:dt,flag:wt,value:W},this.setCurrentProp(this.getPrevNode(),U)}},B.prototype={constructor:B,parse:function(g){var x=new V(g);x.skip(23);var P=x.getUint32();console.log("THREE.FBXLoader: FBX binary version: "+P);for(var Q=new _;!this.endOfContent(x);){var U=this.parseNode(x,P);null!==U&&Q.add(U.name,U)}return Q},endOfContent:function(g){return g.size()%16==0?(g.getOffset()+160+16&-16)>=g.size():g.getOffset()+160+16>=g.size()},parseNode:function(g,x){var P={},Q=x>=7500?g.getUint64():g.getUint32(),U=x>=7500?g.getUint64():g.getUint32(),G=(x>=7500?g.getUint64():g.getUint32(),g.getUint8()),dt=g.getString(G);if(0===Q)return null;for(var wt=[],W=0;W<U;W++)wt.push(this.parseProperty(g));var te=wt.length>0?wt[0]:"",ae=wt.length>1?wt[1]:"",Ae=wt.length>2?wt[2]:"";for(P.singleProperty=1===U&&g.getOffset()===Q;Q>g.getOffset();){var ge=this.parseNode(g,x);null!==ge&&this.parseSubNode(dt,P,ge)}return P.propertyList=wt,"number"==typeof te&&(P.id=te),""!==ae&&(P.attrName=ae),""!==Ae&&(P.attrType=Ae),""!==dt&&(P.name=dt),P},parseSubNode:function(g,x,P){if(!0===P.singleProperty){var Q=P.propertyList[0];Array.isArray(Q)?(x[P.name]=P,P.a=Q):x[P.name]=Q}else if("Connections"===g&&"C"===P.name){var U=[];P.propertyList.forEach(function(ae,Ae){0!==Ae&&U.push(ae)}),void 0===x.connections&&(x.connections=[]),x.connections.push(U)}else if("Properties70"===P.name)Object.keys(P).forEach(function(ae){x[ae]=P[ae]});else if("Properties70"===g&&"P"===P.name){var G,dt=P.propertyList[0],wt=P.propertyList[1],W=P.propertyList[2],te=P.propertyList[3];0===dt.indexOf("Lcl ")&&(dt=dt.replace("Lcl ","Lcl_")),0===wt.indexOf("Lcl ")&&(wt=wt.replace("Lcl ","Lcl_")),G="Color"===wt||"ColorRGB"===wt||"Vector"===wt||"Vector3D"===wt||0===wt.indexOf("Lcl_")?[P.propertyList[4],P.propertyList[5],P.propertyList[6]]:P.propertyList[4],x[dt]={type:wt,type2:W,flag:te,value:G}}else void 0===x[P.name]?"number"==typeof P.id?(x[P.name]={},x[P.name][P.id]=P):x[P.name]=P:"PoseNode"===P.name?(Array.isArray(x[P.name])||(x[P.n
1ame]=[x[P.name]]),x[P.name].push(P)):void 0===x[P.name][P.id]&&(x[P.name][P.id]=P)},parseProperty:function(g){var x=g.getString(1);switch(x){case"C":return g.getBoolean();case"D":return g.getFloat64();case"F":return g.getFloat32();case"I":return g.getInt32();case"L":return g.getInt64();case"R":var P=g.getUint32();return g.getArrayBuffer(P);case"S":return P=g.getUint32(),g.getString(P);case"Y":return g.getInt16();case"b":case"c":case"d":case"f":case"i":case"l":var Q=g.getUint32(),U=g.getUint32(),G=g.getUint32();if(0===U)switch(x){case"b":case"c":return g.getBooleanArray(Q);case"d":return g.getFloat64Array(Q);case"f":return g.getFloat32Array(Q);case"i":return g.getInt32Array(Q);case"l":return g.getInt64Array(Q)}typeof Zlib>"u"&&console.error("THREE.FBXLoader: External library Inflate.min.js required, obtain or import from https://github.com/imaya/zlib.js");var dt=new V(new Zlib.Inflate(new Uint8Array(g.getArrayBuffer(G))).decompress().buffer);switch(x){case"b":case"c":return dt.getBooleanArray(Q);case"d":return dt.getFloat64Array(Q);case"f":return dt.getFloat32Array(Q);case"i":return dt.getInt32Array(Q);case"l":return dt.getInt64Array(Q)}default:throw new Error("THREE.FBXLoader: Unknown property type "+x)}}},V.prototype={constructor:V,getOffset:function(){return this.offset},size:function(){return this.dv.buffer.byteLength},skip:function(g){this.offset+=g},getBoolean:function(){return 1==(1&this.getUint8())},getBooleanArray:function(g){for(var x=[],P=0;P<g;P++)x.push(this.getBoolean());return x},getUint8:function(){var g=this.dv.getUint8(this.offset);return this.offset+=1,g},getInt16:function(){var g=this.dv.getInt16(this.offset,this.littleEndian);return this.offset+=2,g},getInt32:function(){var g=this.dv.getInt32(this.offset,this.littleEndian);return this.offset+=4,g},getInt32Array:function(g){for(var x=[],P=0;P<g;P++)x.push(this.getInt32());return x},getUint32:function(){var g=this.dv.getUint32(this.offset,this.littleEndian);return this.offset+=4,g},getInt64:function(){var g,x;return this.littleEndian?(g=this.getUint32(),x=this.getUint32()):(x=this.getUint32(),g=this.getUint32()),2147483648&x?(x=4294967295&~x,4294967295==(g=4294967295&~g)&&(x=x+1&4294967295),-(4294967296*x+(g=g+1&4294967295))):4294967296*x+g},getInt64Array:function(g){for(var x=[],P=0;P<g;P++)x.push(this.getInt64());return x},getUint64:function(){var g,x;return this.littleEndian?(g=this.getUint32(),x=this.getUint32()):(x=this.getUint32(),g=this.getUint32()),4294967296*x+g},getFloat32:function(){var g=this.dv.getFloat32(this.offset,this.littleEndian);return this.offset+=4,g},getFloat32Array:function(g){for(var x=[],P=0;P<g;P++)x.push(this.getFloat32());return x},getFloat64:function(){var g=this.dv.getFloat64(this.offset,this.littleEndian);return this.offset+=8,g},getFloat64Array:function(g){for(var x=[],P=0;P<g;P++)x.push(this.getFloat64());return x},getArrayBuffer:function(g){var x=this.dv.buffer.slice(this.offset,this.offset+g);return this.offset+=g,x},getString:function(g){for(var x=[],P=0;P<g;P++)x[P]=this.getUint8();var Q=x.indexOf(0);return Q>=0&&(x=x.slice(0,Q)),THREE.LoaderUtils.decodeText(new Uint8Array(x))}},_.prototype={constructor:_,add:function(g,x){this[g]=x}};var q=[];function it(g,x,P,Q){var U;switch(Q.mappingType){case"ByPolygonVertex":U=g;break;case"ByPolygon":U=x;break;case"ByVertice":U=P;break;case"AllSame":U=Q.indices[0];break;default:console.warn("THREE.FBXLoader: unknown attribute mapping type "+Q.mappingType)}"IndexToDirect"===Q.referenceType&&(U=Q.indices[U]);var G=U*Q.dataSize;return function(wt,W,te,ae){for(var Ae=te,ge=0;Ae<ae;Ae++,ge++)wt[ge]=W[Ae];return wt}(q,Q.buffer,G,G+Q.dataSize)}var vt=new THREE.Euler,at=new THREE.Vector3;function J(g){var x,P=new THREE.Matrix4,Q=new THREE.Matrix4,U=new THREE.Matrix4,G=new THREE.Matrix4,dt=new THREE.Matrix4,wt=new THREE.Matrix4,W=new THREE.Matrix4,te=new THREE.Matrix4,ae=new THREE.Matrix4,Ae=new THREE.Matrix4,ge=new THREE.Matrix4,We=new THREE.Matrix4,Cn=new THREE.Matrix4,rn=g.inheritType?g.inheritType:0;g.translation&&P.setPosition(at.fromArray(g.translation)),g.preRotation&&((x=g.preRotation.map(THREE.Math.degToRad)).push(g.eulerOrder),Q.makeRotationFromEuler(vt.fromArray(x)
1)),g.rotation&&((x=g.rotation.map(THREE.Math.degToRad)).push(g.eulerOrder),U.makeRotationFromEuler(vt.fromArray(x))),g.postRotation&&((x=g.postRotation.map(THREE.Math.degToRad)).push(g.eulerOrder),G.makeRotationFromEuler(vt.fromArray(x))),g.scale&&wt.scale(at.fromArray(g.scale)),g.scalingOffset&&te.setPosition(at.fromArray(g.scalingOffset)),g.scalingPivot&&W.setPosition(at.fromArray(g.scalingPivot)),g.rotationOffset&&ae.setPosition(at.fromArray(g.rotationOffset)),g.rotationPivot&&Ae.setPosition(at.fromArray(g.rotationPivot)),g.parentMatrixWorld&&(ge=g.parentMatrixWorld);var Me=Q.multiply(U).multiply(G),Le=new THREE.Matrix4;ge.extractRotation(Le);var Ee=new THREE.Matrix4,Qt=new THREE.Matrix4,Ut=new THREE.Matrix4,Mt=new THREE.Matrix4;if(Mt.copyPosition(ge),Ut=Mt.getInverse(Mt).multiply(ge),Qt=Le.getInverse(Le).multiply(Ut),Ee=wt,0===rn)Cn=Le.multiply(Me).multiply(Qt).multiply(Ee);else if(1===rn)Cn=Le.multiply(Qt).multiply(Me).multiply(Ee);else{var It=(new THREE.Matrix4).copy(wt),mt=Qt.multiply(It.getInverse(It));Cn=Le.multiply(Me).multiply(mt).multiply(Ee)}dt=P.multiply(ae).multiply(Ae).multiply(Q).multiply(U).multiply(G).multiply(Ae.getInverse(Ae)).multiply(te).multiply(W).multiply(wt).multiply(W.getInverse(W));var lt=(new THREE.Matrix4).copyPosition(dt),et=ge.multiply(lt);return We.copyPosition(et),We.multiply(Cn)}function ht(g){var x=["ZYX","YZX","XZY","ZXY","YXZ","XYZ"];return 6===(g=g||0)?(console.warn("THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect."),x[0]):x[g]}function m(g){return g.split(",").map(function(x){return parseFloat(x)})}function M(g,x,P){return void 0===x&&(x=0),void 0===P&&(P=g.byteLength),THREE.LoaderUtils.decodeText(new Uint8Array(g,x,P))}function N(g,x,P){return g.slice(0,x).concat(P).concat(g.slice(x))}return p}(),THREE.PCDLoader=function(u){this.manager=void 0!==u?u:THREE.DefaultLoadingManager,this.littleEndian=!0},THREE.PCDLoader.prototype={constructor:THREE.PCDLoader,load:function(u,D,v,p){var s=this,j=new THREE.FileLoader(s.manager);j.setPath(s.path),j.setResponseType("arraybuffer"),j.load(u,function(k){try{D(s.parse(k,u))}catch(b){if(!p)throw b;p(b)}},v,p)},setPath:function(u){return this.path=u,this},parse:function(u,D){var v=THREE.LoaderUtils.decodeText(u),p=function(M){var N={},g=M.search(/[\r\n]DATA\s(\S*)\s/i),x=/[\r\n]DATA\s(\S*)\s/i.exec(M.substr(g-1));if(N.data=x[1],N.headerLen=x[0].length+g,N.str=M.substr(0,N.headerLen),N.str=N.str.replace(/\#.*/gi,""),N.version=/VERSION (.*)/i.exec(N.str),N.fields=/FIELDS (.*)/i.exec(N.str),N.size=/SIZE (.*)/i.exec(N.str),N.type=/TYPE (.*)/i.exec(N.str),N.count=/COUNT (.*)/i.exec(N.str),N.width=/WIDTH (.*)/i.exec(N.str),N.height=/HEIGHT (.*)/i.exec(N.str),N.viewpoint=/VIEWPOINT (.*)/i.exec(N.str),N.points=/POINTS (.*)/i.exec(N.str),null!==N.version&&(N.version=parseFloat(N.version[1])),null!==N.fields&&(N.fields=N.fields[1].split(" ")),null!==N.type&&(N.type=N.type[1].split(" ")),null!==N.width&&(N.width=parseInt(N.width[1])),null!==N.height&&(N.height=parseInt(N.height[1])),null!==N.viewpoint&&(N.viewpoint=N.viewpoint[1]),null!==N.points&&(N.points=parseInt(N.points[1],10)),null===N.points&&(N.points=N.width*N.height),null!==N.size&&(N.size=N.size[1].split(" ").map(function(G){return parseInt(G,10)})),null!==N.count)N.count=N.count[1].split(" ").map(function(G){return parseInt(G,10)});else{N.count=[];for(var P=0,Q=N.fields.length;P<Q;P++)N.count.push(1)}N.offset={};var U=0;for(P=0,Q=N.fields.length;P<Q;P++)"ascii"===N.data?N.offset[N.fields[P]]=P:(N.offset[N.fields[P]]=U,U+=N.size[P]);return N.rowSize=U,N}(v),s=[],j=[],k=[];if("ascii"===p.data)for(var b=p.offset,B=v.substr(p.headerLen).split("\n"),V=0,_=B.length;V<_;V++)if(""!==B[V]){var H=B[V].split(" ");if(void 0!==b.x&&(s.push(parseFloat(H[b.x])),s.push(parseFloat(H[b.y])),s.push(parseFloat(H[b.z]))),void 0!==b.rgb){var Y=new Float32Array([parseFloat(H[b.rgb])]),q=new DataView(Y.buffer,0);k.push(q.getUint8(0)/255),k.push(q.getUint8(1)/255),k.push(q.getUint8(2)/255)}void 0!==b.normal_x&&(j.push(parseFloat(H[b.normal_x])),j.push(parseFloat(H[b.normal_y])),j.push(parseFloat(H[b.normal_z])))}if("binary_compressed"!==p.data){if("binary"===p.data){q=new DataView(u,p.headerLen),b=p.offset,V=0;for(var it=0;V<p.points;V++,it+=p.rowSize)void 0!==b.x&&(s.push(q.getFloat32(it+b.x,this.littleEndian)),s.push(q.getFloat32(it+b.y,this.littleEndian)),s.push(q.getFloat32(it+b.z,this.littleEndian))),void 0!==b.rgb&&(k.push(q.getUint8(it+b.rgb+0)/255),k.push(q.getUint8(it+b.rgb+1)/255),k.push(q.getUint8(it+b.rgb+2)/255)),void 0!==b.normal_x&&(j.push(q.getFloat32(it+b.normal_x,this.littleEndian)),j.push(q.getFloat32(it+b.normal_y,this.littleEndian)),j.push(q.getFloat32(it+b.normal_z,this.littleEndian)))}var vt=new THREE.BufferGeometry;s.length>0&&vt.addAttribute("position",new THREE.Float32BufferAttribute(s,3)),j.length>0&&vt.addAttribute("normal",new THREE.Float32BufferAttribute(j,3)),k.length>0&&vt.addAttribute("color",new THREE.Float32BufferAttribute(k,3)),vt.computeBoundingSphere();var at=new THREE.PointsMaterial({size:.005});k.length>0?at.vertexColors=!0:at.color.setHex(16777215*Math.random());var J=new THREE.Points(vt,at),ht=D.split("").reverse().join("");return ht=(ht=/([^\/]*)/.exec(ht))[1].split("").reverse().join(""),J.name=ht,J}console.error("THREE.PCDLoader: binary_compressed files are not supported")}},THREE.OBJLoader=function(){var u=/^[og]\s*(.+)?/,D=/^mtllib /,v=/^usemtl /;function p(){var j={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materialLibraries:[],startObject:function(k,b){if(this.object&&!1===this.object.fromDeclaration)return this.object.name=k,void(this.object.fromDeclaration=!1!==b);var B=this.object&&"function"==typeof this.object.currentMaterial?this.object.currentMaterial():void 0;if(this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0),this.object={name:k||"",fromDeclaration:!1!==b,geometry:{vertices:[],normals:[],colors:[],uvs:[]},materials:[],smooth:!0,startMaterial:function(_,H){var Y=this._finalize(!1);Y&&(Y.inherited||Y.groupCount<=0)&&this.materials.splice(Y.index,1);var q={index:this.materials.length,name:_||"",mtllib:Array.isArray(H)&&H.length>0?H[H.length-1]:"",smooth:void 0!==Y?Y.smooth:this.smooth,groupStart:void 0!==Y?Y.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(it){var vt={index:"number"==typeof it?it:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return vt.clone=this.clone.bind(vt),vt}};return this.materials.push(q),q},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(_){var H=this.currentMaterial();if(H&&-1===H.groupEnd&&(H.groupEnd=this.geometry.vertices.length/3,H.groupCount=H.groupEnd-H.groupStart,H.inherited=!1),_&&this.materials.length>1)for(var Y=this.materials.length-1;Y>=0;Y--)this.materials[Y].groupCount<=0&&this.materials.splice(Y,1);return _&&0===this.materials.length&&this.materials.push({name:"",smooth:this.smooth}),H}},B&&B.name&&"function"==typeof B.clone){var V=B.clone(0);V.inherited=!0,this.object.materials.push(V)}this.objects.push(this.object)},finalize:function(){this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0)},parseVertexIndex:function(k,b){var B=parseInt(k,10);return 3*(B>=0?B-1:B+b/3)},parseNormalIndex:function(k,b){var B=parseInt(k,10);return 3*(B>=0?B-1:B+b/3)},parseUVIndex:function(k,b){var B=parseInt(k,10);return 2*(B>=0?B-1:B+b/2)},addVertex:function(k,b,B){var V=this.vertices,_=this.object.geometry.vertices;_.push(V[k+0],V[k+1],V[k+2]),_.push(V[b+0],V[b+1],V[b+2]),_.push(V[B+0],V[B+1],V[B+2])},addVertexPoint:function(k){var b=this.vertices;this.object.geometry.vertices.push(b[k+0],b[k+1],b[k+2])},addVertexLine:function(k){var b=this.vertices;this.object.geometry.vertices.push(b[k+0],b[k+1],b[k+2])},addNormal:function(k,b,B){var V=this.normals,_=this.object.geometry.normals;_.push(V[k+0],V[k+1],V[k+2]),_.push(V[b+0],V[b+1],V[b+2]),_.push(V[B+0],V[B+1],V[B+2])},addColor:function(k,b,B){var V=this.colors,_=this.object.geometry.colors;_.push(V[k+0],V[k+1],V[k+2]),_.push(V[b+0],V[b+1],V[b+2]),_.push(V[B+0],V[B+1],V[B+2])},addUV:function(k,b,B){var V=this.uvs,_=this.object.geometry.uvs;_.push(V[k+0],V[k+1]),_.push(V[b+0],V[b+1]),_.push(V[B+0],V[B+1])},addUVLine:function(k){var b=this.uvs;this.object.geometry.uvs.push(b[k+0],b[k+1])},addFace:function(k,b,B,V,_,H,Y,q,it){var vt=this.vertices.length,at=this.parseVertexIndex(k,vt),J=this.parseVertexIndex(b,vt),ht=this.parseVertexIndex(B,vt);
1if(this.addVertex(at,J,ht),void 0!==V&&""!==V){var m=this.uvs.length;at=this.parseUVIndex(V,m),J=this.parseUVIndex(_,m),ht=this.parseUVIndex(H,m),this.addUV(at,J,ht)}if(void 0!==Y&&""!==Y){var M=this.normals.length;at=this.parseNormalIndex(Y,M),J=Y===q?at:this.parseNormalIndex(q,M),ht=Y===it?at:this.parseNormalIndex(it,M),this.addNormal(at,J,ht)}this.colors.length>0&&this.addColor(at,J,ht)},addPointGeometry:function(k){this.object.geometry.type="Points";for(var b=this.vertices.length,B=0,V=k.length;B<V;B++)this.addVertexPoint(this.parseVertexIndex(k[B],b))},addLineGeometry:function(k,b){this.object.geometry.type="Line";for(var B=this.vertices.length,V=this.uvs.length,_=0,H=k.length;_<H;_++)this.addVertexLine(this.parseVertexIndex(k[_],B));var Y=0;for(H=b.length;Y<H;Y++)this.addUVLine(this.parseUVIndex(b[Y],V))}};return j.startObject("",!1),j}function s(j){this.manager=void 0!==j?j:THREE.DefaultLoadingManager,this.materials=null}return s.prototype={constructor:s,load:function(j,k,b,B){var V=this,_=new THREE.FileLoader(V.manager);_.setPath(this.path),_.load(j,function(H){k(V.parse(H))},b,B)},setPath:function(j){return this.path=j,this},setMaterials:function(j){return this.materials=j,this},parse:function(j){console.time("OBJLoader");var k=new p;-1!==j.indexOf("\r\n")&&(j=j.replace(/\r\n/g,"\n")),-1!==j.indexOf("\\\n")&&(j=j.replace(/\\\n/g,""));for(var b=j.split("\n"),B="",V="",_=[],H="function"==typeof"".trimLeft,Y=0,q=b.length;Y<q;Y++)if(B=b[Y],0!==(B=H?B.trimLeft():B.trim()).length&&"#"!==(V=B.charAt(0)))if("v"===V){var it=B.split(/\s+/);switch(it[0]){case"v":k.vertices.push(parseFloat(it[1]),parseFloat(it[2]),parseFloat(it[3])),8===it.length&&k.colors.push(parseFloat(it[4]),parseFloat(it[5]),parseFloat(it[6]));break;case"vn":k.normals.push(parseFloat(it[1]),parseFloat(it[2]),parseFloat(it[3]));break;case"vt":k.uvs.push(parseFloat(it[1]),parseFloat(it[2]))}}else if("f"===V){for(var vt=B.substr(1).trim().split(/\s+/),at=[],J=0,ht=vt.length;J<ht;J++){var m=vt[J];if(m.length>0){var M=m.split("/");at.push(M)}}var N=at[0];for(J=1,ht=at.length-1;J<ht;J++){var g=at[J],x=at[J+1];k.addFace(N[0],g[0],x[0],N[1],g[1],x[1],N[2],g[2],x[2])}}else if("l"===V){var P=B.substring(1).trim().split(" "),Q=[],U=[];if(-1===B.indexOf("/"))Q=P;else for(var G=0,dt=P.length;G<dt;G++){var wt=P[G].split("/");""!==wt[0]&&Q.push(wt[0]),""!==wt[1]&&U.push(wt[1])}k.addLineGeometry(Q,U)}else if("p"===V){var W=B.substr(1).trim().split(" ");k.addPointGeometry(W)}else if(null!==(_=u.exec(B))){var te=(" "+_[0].substr(1).trim()).substr(1);k.startObject(te)}else if(v.test(B))k.object.startMaterial(B.substring(7).trim(),k.materialLibraries);else if(D.test(B))k.materialLibraries.push(B.substring(7).trim());else{if("s"!==V){if("\0"===B)continue;throw new Error('THREE.OBJLoader: Unexpected line: "'+B+'"')}if((_=B.split(" ")).length>1){var ae=_[1].trim().toLowerCase();k.object.smooth="0"!==ae&&"off"!==ae}else k.object.smooth=!0;(lt=k.object.currentMaterial())&&(lt.smooth=k.object.smooth)}k.finalize();var Ae=new THREE.Group;for(Ae.materialLibraries=[].concat(k.materialLibraries),Y=0,q=k.objects.length;Y<q;Y++){var ge=k.objects[Y],We=ge.geometry,Cn=ge.materials,rn="Line"===We.type,Me="Points"===We.type,Le=!1;if(0!==We.vertices.length){var Ee,Qt=new THREE.BufferGeometry;Qt.addAttribute("position",new THREE.Float32BufferAttribute(We.vertices,3)),We.normals.length>0?Qt.addAttribute("normal",new THREE.Float32BufferAttribute(We.normals,3)):Qt.computeVertexNormals(),We.colors.length>0&&(Le=!0,Qt.addAttribute("color",new THREE.Float32BufferAttribute(We.colors,3))),We.uvs.length>0&&Qt.addAttribute("uv",new THREE.Float32BufferAttribute(We.uvs,2));for(var Ut=[],Mt=0,It=Cn.length;Mt<It;Mt++){var mt=Cn[Mt],lt=void 0;if(null!==this.materials)if(lt=this.materials.create(mt.name),!rn||!lt||lt instanceof THREE.LineBasicMaterial){if(Me&<&&!(lt instanceof THREE.PointsMaterial)){var et=new THREE.PointsMaterial({size:10,sizeAttenuation:!1});ct.copy(lt),lt=et}}else{var ct=new THREE.LineBasicMaterial;ct.copy(lt),ct.lights=!1,lt=ct}lt||((lt=rn?new THREE.LineBasicMaterial:Me?new THREE.PointsMaterial({size:1,sizeAttenuation:!1}):new THREE.MeshPhongMaterial).name=mt.name),lt.flatShading=!mt.smooth,lt.vertexColors=Le?THREE.VertexColors:THREE.NoColors,Ut.push(lt)}if(Ut.length>1){for(Mt=0,It=Cn.length;Mt<It;Mt++)Qt.addGroup((mt=Cn[Mt]).groupStart,mt.groupCount,Mt);Ee=rn?new THREE.LineSegments(Qt,Ut):Me?new THREE.Points(Qt,Ut):new THREE.Mesh(Qt,Ut)}else Ee=rn?new THREE.LineSegments(Qt,Ut[0]):Me?new THREE.Points(Qt,Ut[0]):new THREE.Mesh(Qt,Ut[0]);Ee.name=ge.name,Ae.add(Ee)}}return console.timeEnd("OBJLoader"),Ae}},s}(),void 0===THREE.LoaderSupport&&(THREE.LoaderSupport={}),THREE.LoaderSupport.Validator={isValid:function(u){return null!=u},verifyInput:function(u,D){return u??D}},THREE.LoaderSupport.Callbacks=function(){var u=THREE.LoaderSupport.Validator;function D(){this.onProgress=null,this.onReportError=null,this.onMeshAlter=null,this.onLoad=null,this.onLoadMaterials=null}return D.prototype.setCallbackOnProgress=function(v){this.onProgress=u.verifyInput(v,this.onProgress)},D.prototype.setCallbackOnReportError=function(v){this.onReportError=u.verifyInput(v,this.onReportError)},D.prototype.setCallbackOnMeshAlter=function(v){this.onMeshAlter=u.verifyInput(v,this.onMeshAlter)},D.prototype.setCallbackOnLoad=function(v){this.onLoad=u.verifyInput(v,this.onLoad)},D.prototype.setCallbackOnLoadMaterials=function(v){this.onLoadMaterials=u.verifyInput(v,this.onLoadMaterials)},D}(),THREE.LoaderSupport.LoadedMeshUserOverride=function(){function u(D,v){this.disregardMesh=!0===D,this.alteredMesh=!0===v,this.meshes=[]}return u.prototype.addMesh=function(D){this.meshes.push(D),this.alteredMesh=!0},u.prototype.isDisregardMesh=function(){return this.disregardMesh},u.prototype.providesAlteredMeshes=function(){return this.alteredMesh},u}(),THREE.LoaderSupport.ResourceDescriptor=function(){var u=THREE.LoaderSupport.Validator;function D(v,p){var s=v.split("/");s.length<2?(this.path=null,this.name=v,this.url=v):(this.path=u.verifyInput(s.slice(0,s.length-1).join("/")+"/",null),this.name=s[s.length-1],this.url=v),this.name=u.verifyInput(this.name,"Unnamed_Resource"),this.extension=u.verifyInput(p,"default"),this.extension=this.extension.trim(),this.content=null}return D.prototype.setContent=function(v){this.content=u.verifyInput(v,null)},D}(),THREE.LoaderSupport.PrepData=function(){var u=THREE.LoaderSupport.Validator;function D(v){this.logging={enabled:!0,debug:!1},this.modelName=u.verifyInput(v,""),this.resources=[],this.callbacks=new THREE.LoaderSupport.Callbacks}return D.prototype.setLogging=function(v,p){this.logging.enabled=!0===v,this.logging.debug=!0===p},D.prototype.getCallbacks=function(){return this.callbacks},D.prototype.addResource=function(v){this.resources.push(v)},D.prototype.clone=function(){var v,p,s=new THREE.LoaderSupport.PrepData(this.modelName);for(v in s.logging.enabled=this.logging.enabled,s.logging.debug=this.logging.debug,s.resources=this.resources,s.callbacks=this.callbacks,this)p=this[v],!s.hasOwnProperty(v)&&"function"!=typeof this[v]&&(s[v]=p);return s},D.prototype.checkResourceDescriptorFiles=function(v,p){var s,j,k,b,B={};for(var V in v)if(b=!1,u.isValid((s=v[V]).name))if(u.isValid(s.content)){for(k=0;k<p.length&&!b;k++)if(j=p[k],s.extension.toLowerCase()===j.ext.toLowerCase())if(j.ignore)b=!0;else if("ArrayBuffer"===j.type){if(!(s.content instanceof ArrayBuffer||s.content instanceof Uint8Array))throw"Provided content is not of type ArrayBuffer! Aborting...";B[j.ext]=s,b=!0}else if("String"===j.type){if(!("string"==typeof s.content||s.content instanceof String))throw"Provided content is not of type Str
1ing! Aborting...";B[j.ext]=s,b=!0}if(!b)throw'Unidentified resource "'+s.name+'": '+s.url}else{if(!("string"==typeof s.name||s.name instanceof String))throw"Provided file is not properly defined! Aborting...";for(k=0;k<p.length&&!b;k++)j=p[k],s.extension.toLowerCase()===j.ext.toLowerCase()&&(j.ignore||(B[j.ext]=s),b=!0);if(!b)throw'Unidentified resource "'+s.name+'": '+s.url}return B},D}(),THREE.LoaderSupport.MeshBuilder=function(){var u=THREE.LoaderSupport.Validator;function D(){console.info("Using THREE.LoaderSupport.MeshBuilder version: 1.2.2"),this.logging={enabled:!0,debug:!1},this.callbacks=new THREE.LoaderSupport.Callbacks,this.materials=[]}return D.prototype.setLogging=function(v,p){this.logging.enabled=!0===v,this.logging.debug=!0===p},D.prototype.init=function(){var v=new THREE.MeshStandardMaterial({color:14479871});v.name="defaultMaterial";var p=new THREE.MeshStandardMaterial({color:14479871});p.name="defaultVertexColorMaterial",p.vertexColors=THREE.VertexColors;var s=new THREE.LineBasicMaterial;s.name="defaultLineMaterial";var j=new THREE.PointsMaterial({size:1});j.name="defaultPointMaterial";var k={};k[v.name]=v,k[p.name]=p,k[s.name]=s,k[j.name]=j,this.updateMaterials({cmd:"materialData",materials:{materialCloneInstructions:null,serializedMaterials:null,runtimeMaterials:k}})},D.prototype.setMaterials=function(v){var p={cmd:"materialData",materials:{materialCloneInstructions:null,serializedMaterials:null,runtimeMaterials:u.isValid(this.callbacks.onLoadMaterials)?this.callbacks.onLoadMaterials(v):v}};this.updateMaterials(p)},D.prototype._setCallbacks=function(v){u.isValid(v.onProgress)&&this.callbacks.setCallbackOnProgress(v.onProgress),u.isValid(v.onReportError)&&this.callbacks.setCallbackOnReportError(v.onReportError),u.isValid(v.onMeshAlter)&&this.callbacks.setCallbackOnMeshAlter(v.onMeshAlter),u.isValid(v.onLoad)&&this.callbacks.setCallbackOnLoad(v.onLoad),u.isValid(v.onLoadMaterials)&&this.callbacks.setCallbackOnLoadMaterials(v.onLoadMaterials)},D.prototype.processPayload=function(v){return"meshData"===v.cmd?this.buildMeshes(v):"materialData"===v.cmd?(this.updateMaterials(v),null):void 0},D.prototype.buildMeshes=function(v){var p=v.params.meshName,s=new THREE.BufferGeometry;s.addAttribute("position",new THREE.BufferAttribute(new Float32Array(v.buffers.vertices),3)),u.isValid(v.buffers.indices)&&s.setIndex(new THREE.BufferAttribute(new Uint32Array(v.buffers.indices),1)),u.isValid(v.buffers.colors)&&s.addAttribute("color",new THREE.BufferAttribute(new Float32Array(v.buffers.colors),3)),u.isValid(v.buffers.normals)?s.addAttribute("normal",new THREE.BufferAttribute(new Float32Array(v.buffers.normals),3)):s.computeVertexNormals(),u.isValid(v.buffers.uvs)&&s.addAttribute("uv",new THREE.BufferAttribute(new Float32Array(v.buffers.uvs),2));var j,k,b=v.materials.materialNames,B=v.materials.multiMaterial,V=[];for(k in b)j=this.materials[b[k]],B&&V.push(j);if(B){j=V;var _,H=v.materials.materialGroups;for(k in H)s.addGroup((_=H[k]).start,_.count,_.index)}var Y,q,it,vt=[],at=this.callbacks.onMeshAlter,J=!0,ht=u.verifyInput(v.geometryType,0);if(u.isValid(at)&&(q=at({detail:{meshName:p,bufferGeometry:s,material:j,geometryType:ht}}),u.isValid(q)))if(q.isDisregardMesh())J=!1;else if(q.providesAlteredMeshes()){for(var m in q.meshes)vt.push(q.meshes[m]);J=!1}if(J&&(v.computeBoundingSphere&&s.computeBoundingSphere(),(Y=0===ht?new THREE.Mesh(s,j):1===ht?new THREE.LineSegments(s,j):new THREE.Points(s,j)).name=p,vt.push(Y)),u.isValid(vt)&&vt.length>0){var M=[];for(var m in vt)M[m]=(Y=vt[m]).name;it="Adding mesh(es) ("+M.length+": "+M+") from input mesh: "+p,it+=" ("+(100*v.progress.numericalValue).toFixed(2)+"%)"}else it="Not adding mesh: "+p,it+=" ("+(100*v.progress.numericalValue).toFixed(2)+"%)";var N=this.callbacks.onProgress;return u.isValid(N)&&N(new CustomEvent("MeshBuilderEvent",{detail:{type:"progress",modelName:v.params.meshName,text:it,numericalValue:v.progress.numericalValue}})),vt},D.prototype.updateMaterials=function(v){var p,s,j=v.materials.materialCloneInstructions;if(u.isValid(j)){var k=j.materialNameOrg,b=this.materials[k];if(u.isValid(k)){(p=b.clone()).name=s=j.materialName;var B=j.materialProperties;for(var V in B)p.hasOwnProperty(V)&&B.hasOwnProperty(V)&&(p[V]=B[V]);this.materials[s]=p}else console.warn('Requested material "'+k+'" is not available!')}var _=v.materials.serializedMaterials;if(u.isValid(_)&&Object.keys(_).length>0){var H,Y=new THREE.MaterialLoader;for(s in _)u.isValid(H=_[s])&&(p=Y.parse(H),this.logging.enabled&&console.info('De-serialized material with name "'+s+'" will be added.'),this.materials[s]=p)}if(u.isValid(_=v.materials.runtimeMaterials)&&Object.keys(_).length>0)for(s in _)p=_[s],this.logging.enabled&&console.info('Material with name "'+s+'" will be added.'),this.materials[s]=p},D.prototype.getMaterialsJSON=function(){var v={};for(var p in this.materials)v[p]=this.materials[p].toJSON();return v},D.prototype.getMaterials=function(){return this.materials},D}(),THREE.LoaderSupport.WorkerRunnerRefImpl=function(){function u(){var D=this;self.addEventListener("message",function(v){D.processMessage(v.data)},!1)}return u.prototype.applyProperties=function(D,v){var p,s,j;for(p in v)s="set"+p.substring(0,1).toLocaleUpperCase()+p.substring(1),j=v[p],"function"==typeof D[s]?D[s](j):D.hasOwnProperty(p)&&(D[p]=j)},u.prototype.processMessage=function(D){if("run"===D.cmd){var v={callbackMeshBuilder:function(s){self.postMessage(s)},callbackProgress:function(s){D.logging.enabled&&D.logging.debug&&console.debug("WorkerRunner: progress: "+s)}},p=new Parser;"function"==typeof p.setLogging&&p.setLogging(D.logging.enabled,D.logging.debug),this.applyProperties(p,D.params),this.applyProperties(p,D.materials),this.applyProperties(p,v),p.workerScope=self,p.parse(D.data.input,D.data.options),D.logging.enabled&&console.log("WorkerRunner: Run complete!"),v.callbackMeshBuilder({cmd:"complete",msg:"WorkerRunner completed run."})}else console.error("WorkerRunner: Received unknown command: "+D.cmd)},u}(),THREE.LoaderSupport.WorkerSupport=function(){var u=THREE.LoaderSupport.Validator,D=function(){function j(){this._reset()}return j.prototype._reset=function(){this.logging={enabled:!0,debug:!1},this.worker=null,this.runnerImplName=null,this.callbacks={meshBuilder:null,onLoad:null},this.terminateRequested=!1,this.queuedMessage=null,this.started=!1,this.forceCopy=!1},j.prototype.setLogging=function(k,b){this.logging.enabled=!0===k,this.logging.debug=!0===b},j.prototype.setForceCopy=function(k){this.forceCopy=!0===k}
1,j.prototype.initWorker=function(k,b){this.runnerImplName=b;var B=new Blob([k],{type:"application/javascript"});this.worker=new Worker(window.URL.createObjectURL(B)),this.worker.onmessage=this._receiveWorkerMessage,this.worker.runtimeRef=this,this._postMessage()},j.prototype._receiveWorkerMessage=function(k){var b=k.data;switch(b.cmd){case"meshData":case"materialData":case"imageData":this.runtimeRef.callbacks.meshBuilder(b);break;case"complete":this.runtimeRef.queuedMessage=null,this.started=!1,this.runtimeRef.callbacks.onLoad(b.msg),this.runtimeRef.terminateRequested&&(this.runtimeRef.logging.enabled&&console.info("WorkerSupport ["+this.runtimeRef.runnerImplName+"]: Run is complete. Terminating application on request!"),this.runtimeRef._terminate());break;case"error":console.error("WorkerSupport ["+this.runtimeRef.runnerImplName+"]: Reported error: "+b.msg),this.runtimeRef.queuedMessage=null,this.started=!1,this.runtimeRef.callbacks.onLoad(b.msg),this.runtimeRef.terminateRequested&&(this.runtimeRef.logging.enabled&&console.info("WorkerSupport ["+this.runtimeRef.runnerImplName+"]: Run reported error. Terminating application on request!"),this.runtimeRef._terminate());break;default:console.error("WorkerSupport ["+this.runtimeRef.runnerImplName+"]: Received unknown command: "+b.cmd)}},j.prototype.setCallbacks=function(k,b){this.callbacks.meshBuilder=u.verifyInput(k,this.callbacks.meshBuilder),this.callbacks.onLoad=u.verifyInput(b,this.callbacks.onLoad)},j.prototype.run=function(k){if(u.isValid(this.queuedMessage))console.warn("Already processing message. Rejecting new run instruction");else{if(this.queuedMessage=k,this.started=!0,!u.isValid(this.callbacks.meshBuilder))throw'Unable to run as no "MeshBuilder" callback is set.';if(!u.isValid(this.callbacks.onLoad))throw'Unable to run as no "onLoad" callback is set.';"run"!==k.cmd&&(k.cmd="run"),u.isValid(k.logging)?(k.logging.enabled=!0===k.logging.enabled,k.logging.debug=!0===k.logging.debug):k.logging={enabled:!0,debug:!1},this._postMessage()}},j.prototype._postMessage=function(){if(u.isValid(this.queuedMessage)&&u.isValid(this.worker))if(this.queuedMessage.data.input instanceof ArrayBuffer){var k;k=this.forceCopy?this.queuedMessage.data.input.slice(0):this.queuedMessage.data.input,this.worker.postMessage(this.queuedMessage,[k])}else this.worker.postMessage(this.queuedMessage)},j.prototype.setTerminateRequested=function(k){this.terminateRequested=!0===k,this.terminateRequested&&u.isValid(this.worker)&&!u.isValid(this.queuedMessage)&&this.started&&(this.logging.enabled&&console.info("Worker is terminated immediately as it is not running!"),this._terminate())},j.prototype._terminate=function(){this.worker.terminate(),this._reset()},j}();function v(){if(console.info("Using THREE.LoaderSupport.WorkerSupport version: 2.2.1"),this.logging={enabled:!0,debug:!1},void 0===window.Worker)throw"This browser does not support web workers!";if(void 0===window.Blob)throw"This browser does not support Blob!";if("function"!=typeof window.URL.createObjectURL)throw"This browser does not support Object creation from URL!";this.loaderWorker=new D}v.prototype.setLogging=function(j,k){this.logging.enabled=!0===j,this.logging.debug=!0===k,this.loaderWorker.setLogging(this.logging.enabled,this.logging.debug)},v.prototype.setForceWorkerDataCopy=function(j){this.loaderWorker.setForceCopy(j)},v.prototype.validate=function(j,k,b,B,V){if(!u.isValid(this.loaderWorker.worker)){this.logging.enabled&&(console.info("WorkerSupport: Building worker code..."),console.time("buildWebWorkerCode")),u.isValid(V)?this.logging.enabled&&console.info('WorkerSupport: Using "'+V.name+'" as Runner class for worker.'):(V=THREE.LoaderSupport.WorkerRunnerRefImpl,this.logging.enabled&&console.info('WorkerSupport: Using DEFAULT "THREE.LoaderSupport.WorkerRunnerRefImpl" as Runner class for worker.'));var _=j(p,s);_+="var Parser = "+k+";\n\n",_+=s(V.name,V),_+="new "+V.name+"();\n\n";var H=this;if(u.isValid(b)&&b.length>0){var Y="",q=function(it,vt){if(0===vt.length)H.loaderWorker.initWorker(Y+_,V.name),H.logging.enabled&&console.timeEnd("buildWebWorkerCode");else{var at=new THREE.FileLoader;at.setPath(it),at.setResponseType("text"),at.load(vt[0],function(J){Y+=J,q(it,vt)}),vt.shift()}};q(B,b)}else this.loaderWorker.initWorker(_,V.name),this.logging.enabled&&console.timeEnd("buildWebWorkerCode")}},v.prototype.setCallbacks=function(j,k){this.loaderWorker.setCallbacks(j,k)},v.prototype.run=function(j){this.loaderWorker.run(j)},v.prototype.setTerminateRequested=function(j){this.loaderWorker.setTerminateRequested(j)};var p=function(j,k){var b,B=j+" = {\n";for(var V in k)"string"==typeof(b=k[V])||b instanceof String?B+="\t"+V+': "'+(b=(b=b.replace("\n","\\n")).replace("\r","\\r"))+'",\n':b instanceof Array?B+="\t"+V+": ["+b+"],\n":(Number.isInteger(b)||"function"==typeof b)&&(B+="\t"+V+": "+b+",\n");return B+"}\n\n"},s=function(j,k,b,B,V){var _,H,Y="",q=u.isValid(b)?b:k.name;for(var it in V=u.verifyInput(V,[]),k.prototype)_=k.prototype[it],"constructor"===it?H="\tfunction "+q+_.toString().replace("function","")+";\n\n":"function"==typeof _&&V.indexOf(it)<0&&(Y+="\t"+q+".prototype."+it+" = "+_.toString()+";\n\n");Y+="\treturn "+q+";
1\n",Y+="})();\n\n";var vt="";return u.isValid(B)&&(vt+="\n",vt+=q+".prototype = Object.create( "+B+".prototype );\n",vt+=q+".constructor = "+q+";\n",vt+="\n"),u.isValid(H)?Y=j+" = (function () {\n\n"+vt+H+Y:(H=j+" = (function () {\n\n",Y=(H+=vt+"\t"+k.prototype.constructor.toString()+"\n\n")+Y),Y};return v}(),THREE.LoaderSupport.WorkerDirector=function(){var u=THREE.LoaderSupport.Validator;function D(v){if(console.info("Using THREE.LoaderSupport.WorkerDirector version: 2.2.2"),this.logging={enabled:!0,debug:!1},this.maxQueueSize=8192,this.maxWebWorkers=16,this.crossOrigin=null,!u.isValid(v))throw"Provided invalid classDef: "+v;this.workerDescription={classDef:v,globalCallbacks:{},workerSupports:{},forceWorkerDataCopy:!0},this.objectsCompleted=0,this.instructionQueue=[],this.instructionQueuePointer=0,this.callbackOnFinishedProcessing=null}return D.prototype.setLogging=function(v,p){this.logging.enabled=!0===v,this.logging.debug=!0===p},D.prototype.getMaxQueueSize=function(){return this.maxQueueSize},D.prototype.getMaxWebWorkers=function(){return this.maxWebWorkers},D.prototype.setCrossOrigin=function(v){this.crossOrigin=v},D.prototype.setForceWorkerDataCopy=function(v){this.workerDescription.forceWorkerDataCopy=!0===v},D.prototype.prepareWorkers=function(v,p,s){u.isValid(v)&&(this.workerDescription.globalCallbacks=v),this.maxQueueSize=Math.min(p,8192),this.maxWebWorkers=Math.min(s,16),this.maxWebWorkers=Math.min(this.maxWebWorkers,this.maxQueueSize),this.objectsCompleted=0,this.instructionQueue=[],this.instructionQueuePointer=0;for(var j=0;j<this.maxWebWorkers;j++){var k=new THREE.LoaderSupport.WorkerSupport;k.setLogging(this.logging.enabled,this.logging.debug),k.setForceWorkerDataCopy(this.workerDescription.forceWorkerDataCopy),this.workerDescription.workerSupports[j]={instanceNo:j,inUse:!1,terminateRequested:!1,workerSupport:k,loader:null}}},D.prototype.enqueueForRun=function(v){this.instructionQueue.length<this.maxQueueSize&&this.instructionQueue.push(v)},D.prototype.isRunning=function(){var v=Object.keys(this.workerDescription.workerSupports);return this.instructionQueue.length>0&&this.instructionQueuePointer<this.instructionQueue.length||v.length>0},D.prototype.processQueue=function(){var v;for(var p in this.workerDescription.workerSupports)(v=this.workerDescription.workerSupports[p]).inUse||(this.instructionQueuePointer<this.instructionQueue.length?(this._kickWorkerRun(this.instructionQueue[this.instructionQueuePointer],v),this.instructionQueuePointer++):this._deregister(v));!this.isRunning()&&null!==this.callbackOnFinishedProcessing&&(this.callbackOnFinishedProcessing(),this.callbackOnFinishedProcessing=null)},D.prototype._kickWorkerRun=function(v,p){p.inUse=!0,p.workerSupport.setTerminateRequested(p.terminateRequested),this.logging.enabled&&console.info("\nAssigning next item from queue to worker (queue length: "+this.instructionQueue.length+")\n\n");var s=this,j=v.getCallbacks(),k=this.workerDescription.globalCallbacks;p.loader=this._buildLoader(p.instanceNo);var b=new THREE.LoaderSupport.Callbacks;b.setCallbackOnLoad(function(B){u.isValid(k.onLoad)&&k.onLoad(B),u.isValid(j.onLoad)&&j.onLoad(B),s.objectsCompleted++,p.inUse=!1,s.processQueue()}),b.setCallbackOnProgress(function(B){u.isValid(k.onProgress)&&k.onProgress(B),u.isValid(j.onProgress)&&j.onProgress(B)}),b.setCallbackOnReportError(function(B){var V=!0;u.isValid(k.onReportError)&&(V=k.onReportError(p,B)),u.isValid(j.onReportError)&&(V=j.onReportError(p,B)),!u.isValid(k.onReportError)&&!u.isValid(j.onReportError)&&(console.error("Loader reported an error: "),console.error(B)),V&&(p.inUse=!1,s.processQueue())}),b.setCallbackOnMeshAlter(function(B,V){return u.isValid(k.onMeshAlter)&&(V=k.onMeshAlter(B,V)),u.isValid(j.onMeshAlter)&&(V=k.onMeshAlter(B,V)),V}),b.setCallbackOnLoadMaterials(function(B){return u.isValid(k.onLoadMaterials)&&(B=k.onLoadMaterials(B)),u.isValid(j.onLoadMaterials)&&(B=j.onLoadMaterials(B)),B}),v.callbacks=b,p.loader.run(v,p.workerSupport)},D.prototype._buildLoader=function(v){var p=this.workerDescription.classDef,s=Object.create(p.prototype);if(p.call(s,THREE.DefaultLoadingManager),!s.hasOwnProperty("instanceNo"))throw p.name+' has no property "instanceNo".';if(s.instanceNo=v,!s.hasOwnProperty("workerSupport"))throw p.name+' has no property "workerSupport".';if("function"!=typeof s.run)throw p.name+' has no function "run".';return(!s.hasOwnProperty("callbacks")||!u.isValid(s.callbacks))&&(console.warn(p.name+' has an invali
1d property "callbacks". Will change to "THREE.LoaderSupport.Callbacks"'),s.callbacks=new THREE.LoaderSupport.Callbacks),s},D.prototype._deregister=function(v){if(u.isValid(v)){v.workerSupport.setTerminateRequested(!0),this.logging.enabled&&console.info("Requested termination of worker #"+v.instanceNo+".");var p=v.loader.callbacks;u.isValid(p.onProgress)&&p.onProgress({detail:{text:""}}),delete this.workerDescription.workerSupports[v.instanceNo]}},D.prototype.tearDown=function(v){for(var p in this.logging.enabled&&console.info("WorkerDirector received the deregister call. Terminating all workers!"),this.instructionQueuePointer=this.instructionQueue.length,this.callbackOnFinishedProcessing=u.verifyInput(v,null),this.workerDescription.workerSupports)this.workerDescription.workerSupports[p].terminateRequested=!0},D}(),THREE.MTLLoader=function(u){this.manager=void 0!==u?u:THREE.DefaultLoadingManager},THREE.MTLLoader.prototype={constructor:THREE.MTLLoader,load:function(u,D,v,p){var s=this,j=void 0===this.path?THREE.LoaderUtils.extractUrlBase(u):this.path,k=new THREE.FileLoader(this.manager);k.setPath(this.path),k.load(u,function(b){D(s.parse(b,j))},v,p)},setPath:function(u){return this.path=u,this},setResourcePath:function(u){return this.resourcePath=u,this},setTexturePath:function(u){return console.warn("THREE.MTLLoader: .setTexturePath() has been renamed to .setResourcePath()."),this.setResourcePath(u)},setCrossOrigin:function(u){return this.crossOrigin=u,this},setMaterialOptions:function(u){return this.materialOptions=u,this},parse:function(u,D){for(var v=u.split("\n"),p={},s=/\s+/,j={},k=0;k<v.length;k++){var b=v[k];if(0!==(b=b.trim()).length&&"#"!==b.charAt(0)){var B=b.indexOf(" "),V=B>=0?b.substring(0,B):b;V=V.toLowerCase();var _=B>=0?b.substring(B+1):"";if(_=_.trim(),"newmtl"===V)j[_]=p={name:_};else if("ka"===V||"kd"===V||"ks"===V){var H=_.split(s,3);p[V]=[parseFloat(H[0]),parseFloat(H[1]),parseFloat(H[2])]}else p[V]=_}}var Y=new THREE.MTLLoader.MaterialCreator(this.resourcePath||D,this.materialOptions);return Y.setCrossOrigin(this.crossOrigin),Y.setManager(this.manager),Y.setMaterials(j),Y}},THREE.MTLLoader.MaterialCreator=function(u,D){this.baseUrl=u||"",this.options=D,this.materialsInfo={},this.materials={},this.materialsArray=[],this.nameLookup={},this.side=this.options&&this.options.side?this.options.side:THREE.FrontSide,this.wrap=this.options&&this.options.wrap?this.options.wrap:THREE.RepeatWrapping},THREE.MTLLoader.MaterialCreator.prototype={constructor:THREE.MTLLoader.MaterialCreator,crossOrigin:"anonymous",setCrossOrigin:function(u){return this.crossOrigin=u,this},setManager:function(u){this.manager=u},setMaterials:function(u){this.materialsInfo=this.convert(u),this.materials={},this.materialsArray=[],this.nameLookup={}},convert:function(u){if(!this.options)return u;var D={};for(var v in u){var p=u[v],s={};for(var j in D[v]=s,p){var k=!0,b=p[j],B=j.toLowerCase();switch(B){case"kd":case"ka":case"ks":this.options&&this.options.normalizeRGB&&(b=[b[0]/255,b[1]/255,b[2]/255]),this.options&&this.options.ignoreZeroRGBs&&0===b[0]&&0===b[1]&&0===b[2]&&(k=!1)}k&&(s[B]=b)}}return D},preload:function(){for(var u in this.materialsInfo)this.create(u)},getIndex:function(u){return this.nameLookup[u]},getAsArray:function(){var u=0;for(var D in this.materialsInfo)this.materialsArray[u]=this.create(D),this.nameLookup[D]=u,u++;return this.materialsArray},create:function(u){return void 0===this.materials[u]&&this.createMaterial_(u),this.materials[u]},createMaterial_:function(u){var D=this,v=this.materialsInfo[u],p={name:u,side:this.side};function s(B,V){if(!p[B]){var _=D.getTextureParams(V,p),H=D.loadTexture((q=D.baseUrl,"string"!=typeof(it=_.url)||""===it?"":/^https?:\/\//i.test(it)?it:q+it));H.repeat.copy(_.scale),H.offset.copy(_.offset),H.wrapS=D.wrap,H.wrapT=D.wrap,p[B]=H}var q,it}for(var j in v){var k,b=v[j];if(""!==b)switch(j.toLowerCase()){case"kd":p.color=(new THREE.Color).fromArray(b);break;case"ks":p.specular=(new THREE.Color).fromArray(b);break;case"map_kd":s("map",b);break;case"map_ks":s("specularMap",b);break;case"norm":s("normalMap",b);break;case"map_bump":case"bump":s("bumpMap",b);break;case"map_d":s("alphaMap",b),p.transparent=!0;break;case"ns":p.shininess=parseFloat(b);break;case"d":(k=parseFloat(b))<1&&(p.opacity=k,p.transparent=!0);break;case"tr":k=parseFloat(b),this.options&&this.options.invertTrProperty&&(k=1-k),k>0&&(p.opacity=1-k,p.transparent=!0)}}return this.materials[u]=new THREE.MeshPhongMaterial(p),this.materials[u]}
1,getTextureParams:function(u,D){var v,p={scale:new THREE.Vector2(1,1),offset:new THREE.Vector2(0,0)},s=u.split(/\s+/);return(v=s.indexOf("-bm"))>=0&&(D.bumpScale=parseFloat(s[v+1]),s.splice(v,2)),(v=s.indexOf("-s"))>=0&&(p.scale.set(parseFloat(s[v+1]),parseFloat(s[v+2])),s.splice(v,4)),(v=s.indexOf("-o"))>=0&&(p.offset.set(parseFloat(s[v+1]),parseFloat(s[v+2])),s.splice(v,4)),p.url=s.join(" ").trim(),p},loadTexture:function(u,D,v,p,s){var j,k=THREE.Loader.Handlers.get(u),b=void 0!==this.manager?this.manager:THREE.DefaultLoadingManager;return null===k&&(k=new THREE.TextureLoader(b)),k.setCrossOrigin&&k.setCrossOrigin(this.crossOrigin),j=k.load(u,v,p,s),void 0!==D&&(j.mapping=D),j}},void 0===THREE.OBJLoader2&&(THREE.OBJLoader2={}),void 0===THREE.LoaderSupport&&console.error('"THREE.LoaderSupport" is not available. "THREE.OBJLoader2" requires it. Please include "LoaderSupport.js" in your HTML.'),THREE.OBJLoader2=function(){var u=THREE.LoaderSupport.Validator;function D(p){console.info("Using THREE.OBJLoader2 version: 2.4.2"),this.manager=u.verifyInput(p,THREE.DefaultLoadingManager),this.logging={enabled:!0,debug:!1},this.modelName="",this.instanceNo=0,this.path="",this.useIndices=!1,this.disregardNormals=!1,this.materialPerSmoothingGroup=!1,this.useOAsMesh=!1,this.loaderRootNode=new THREE.Group,this.meshBuilder=new THREE.LoaderSupport.MeshBuilder,this.callbacks=new THREE.LoaderSupport.Callbacks,this.workerSupport=new THREE.LoaderSupport.WorkerSupport,this.terminateWorkerOnLoad=!0}D.prototype.setLogging=function(p,s){this.logging.enabled=!0===p,this.logging.debug=!0===s,this.meshBuilder.setLogging(this.logging.enabled,this.logging.debug)},D.prototype.setModelName=function(p){this.modelName=u.verifyInput(p,this.modelName)},D.prototype.setPath=function(p){this.path=u.verifyInput(p,this.path)},D.prototype.setStreamMeshesTo=function(p){this.loaderRootNode=u.verifyInput(p,this.loaderRootNode)},D.prototype.setMaterials=function(p){this.meshBuilder.setMaterials(p)},D.prototype.setUseIndices=function(p){this.useIndices=!0===p},D.prototype.setDisregardNormals=function(p){this.disregardNormals=!0===p},D.prototype.setMaterialPerSmoothingGroup=function(p){this.materialPerSmoothingGroup=!0===p},D.prototype.setUseOAsMesh=function(p){this.useOAsMesh=!0===p},D.prototype._setCallbacks=function(p){u.isValid(p.onProgress)&&this.callbacks.setCallbackOnProgress(p.onProgress),u.isValid(p.onReportError)&&this.callbacks.setCallbackOnReportError(p.onReportError),u.isValid(p.onMeshAlter)&&this.callbacks.setCallbackOnMeshAlter(p.onMeshAlter),u.isValid(p.onLoad)&&this.callbacks.setCallbackOnLoad(p.onLoad),u.isValid(p.onLoadMaterials)&&this.callbacks.setCallbackOnLoadMaterials(p.onLoadMaterials),this.meshBuilder._setCallbacks(this.callbacks)},D.prototype.onProgress=function(p,s,j){var k=u.isValid(s)?s:"",b={detail:{type:p,modelName:this.modelName,instanceNo:this.instanceNo,text:k,numericalValue:j}};u.isValid(this.callbacks.onProgress)&&this.callbacks.onProgress(b),this.logging.enabled&&this.logging.debug&&console.debug(k)},D.prototype._onError=function(p){var s="Error occurred while downloading!";p.currentTarget&&null!==p.currentTarget.statusText&&(s+="\nurl: "+p.currentTarget.responseURL+"\nstatus: "+p.currentTarget.statusText),this.onProgress("error",s,-1),this._throwError(s)},D.prototype._throwError=function(p){if(!u.isValid(this.callbacks.onReportError))throw p;this.callbacks.onReportError(p)},D.prototype.load=function(p,s,j,k,b,B){var V=new THREE.LoaderSupport.ResourceDescriptor(p,"OBJ");this._loadObj(V,s,j,k,b,B)},D.prototype._loadObj=function(p,s,j,k,b,B){var V=this;u.isValid(k)||(k=function(it){V._onError(it)}),u.isValid(p)||k("An invalid ResourceDescriptor was provided. Unable to continue!");var _=function(it){if(p.content=it,B)V.parseAsync(it,s);else{var vt=new THREE.LoaderSupport.Callbacks;vt.setCallbackOnMeshAlter(b),V._setCallbacks(vt),s({detail:{loaderRootNode:V.parse(it),modelName:V.modelName,instanceNo:V.instanceNo}})}};if(!u.isValid(p.url)||u.isValid(p.content))_(u.isValid(p.content)?p.content:null);else{if(!u.isValid(j)){var H=0,Y=0;j=function(it){if(it.lengthComputable&&(Y=it.loaded/it.total)>H){H=Y;var vt='Download of "'+p.url+'": '+(100*Y).toFixed(2)+"%";V.onProgress("progressLoad",vt,Y)}}}var q=new THREE.FileLoader(this.manager);
1q.setPath(this.path),q.setResponseType("arraybuffer"),q.load(p.url,_,j,k)}},D.prototype.run=function(p,s){this._applyPrepData(p);var j=p.checkResourceDescriptorFiles(p.resources,[{ext:"obj",type:"ArrayBuffer",ignore:!1},{ext:"mtl",type:"String",ignore:!1},{ext:"zip",type:"String",ignore:!0}]);u.isValid(s)&&(this.terminateWorkerOnLoad=!1,this.workerSupport=s,this.logging.enabled=this.workerSupport.logging.enabled,this.logging.debug=this.workerSupport.logging.debug);var k=this;this._loadMtl(j.mtl,function(b){null!==b&&k.meshBuilder.setMaterials(b),k._loadObj(j.obj,k.callbacks.onLoad,null,null,k.callbacks.onMeshAlter,p.useAsync)},null,null,p.crossOrigin,p.materialOptions)},D.prototype._applyPrepData=function(p){u.isValid(p)&&(this.setLogging(p.logging.enabled,p.logging.debug),this.setModelName(p.modelName),this.setStreamMeshesTo(p.streamMeshesTo),this.meshBuilder.setMaterials(p.materials),this.setUseIndices(p.useIndices),this.setDisregardNormals(p.disregardNormals),this.setMaterialPerSmoothingGroup(p.materialPerSmoothingGroup),this.setUseOAsMesh(p.useOAsMesh),this._setCallbacks(p.getCallbacks()))},D.prototype.parse=function(p){if(!u.isValid(p))return console.warn("Provided content is not a valid ArrayBuffer or String."),this.loaderRootNode;this.logging.enabled&&console.time("OBJLoader2 parse: "+this.modelName),this.meshBuilder.init();var s=new v;s.setLogging(this.logging.enabled,this.logging.debug),s.setMaterialPerSmoothingGroup(this.materialPerSmoothingGroup),s.setUseOAsMesh(this.useOAsMesh),s.setUseIndices(this.useIndices),s.setDisregardNormals(this.disregardNormals),s.setMaterials(this.meshBuilder.getMaterials());var j=this;return s.setCallbackMeshBuilder(function(k){var b=j.meshBuilder.processPayload(k);for(var B in b)j.loaderRootNode.add(b[B])}),s.setCallbackProgress(function(k,b){j.onProgress("progressParse",k,b)}),p instanceof ArrayBuffer||p instanceof Uint8Array?(this.logging.enabled&&console.info("Parsing arrayBuffer..."),s.parse(p)):"string"==typeof p||p instanceof String?(this.logging.enabled&&console.info("Parsing text..."),s.parseText(p)):this._throwError("Provided content was neither of type String nor Uint8Array! Aborting..."),this.logging.enabled&&console.timeEnd("OBJLoader2 parse: "+this.modelName),this.loaderRootNode},D.prototype.parseAsync=function(p,s){var j=this,k=!1,b=function(){s({detail:{loaderRootNode:j.loaderRootNode,modelName:j.modelName,instanceNo:j.instanceNo}}),k&&j.logging.enabled&&console.timeEnd("OBJLoader2 parseAsync: "+j.modelName)};u.isValid(p)?k=!0:(console.warn("Provided content is not a valid ArrayBuffer."),b()),k&&this.logging.enabled&&console.time("OBJLoader2 parseAsync: "+this.modelName),this.meshBuilder.init(),this.workerSupport.validate(function(H,Y){var q="";return q+="/**\n",q+=" * This code was constructed by OBJLoader2 buildCode.\n",q+=" */\n\n",q+="THREE = { LoaderSupport: {} };\n\n",(q+=H("THREE.LoaderSupport.Validator",u))+Y("Parser",v)},"Parser"),this.workerSupport.setCallbacks(function(H){var Y=j.meshBuilder.processPayload(H);for(var q in Y)j.loaderRootNode.add(Y[q])},b),j.terminateWorkerOnLoad&&this.workerSupport.setTerminateRequested(!0);var B={},V=this.meshBuilder.getMaterials();for(var _ in V)B[_]=_;this.workerSupport.run({params:{useAsync:!0,materialPerSmoothingGroup:this.materialPerSmoothingGroup,useOAsMesh:this.useOAsMesh,useIndices:this.useIndices,disregardNormals:this.disregardNormals},logging:{enabled:this.logging.enabled,debug:this.logging.debug},materials:{materials:B},data:{input:p,options:null}})};var v=function(){function p(){this.callbackProgress=null,this.callbackMeshBuilder=null,this.contentRef=null,this.legacyMode=!1,this.materials={},this.useAsync=!1,this.materialPerSmoothingGroup=!1,this.useOAsMesh=!1,this.useIndices=!1,this.disregardNormals=!1,this.vertices=[],this.colors=[],this.normals=[],this.uvs=[],this.rawMesh={objectName:"",groupName:"",activeMtlName:"",mtllibName:"",faceType:-1,subGroups:[],subGroupInUse:null,smoothingGroup:{splitMaterials:!1,normalized:-1,real:-1},counts:{doubleIndicesCount:0,faceCount:0,mtlCount:0,smoothingGroupCount:0}},this.inputObjectCount=1,this.outputObjectCount=1,this.globalCounts={vertices:0,faces:0,doubleIndicesCount:0,lineByte:0,currentByte:0,totalBytes:0},this.logging={enabled:!0,debug:!1}}return p.prototype.resetRawMesh=function(){this.rawMesh.subGroups=[],this.rawMesh.subGroupInUse=null,this.rawMesh.smoothingGroup.normalized=-1,this.rawMesh.smoothingGroup.real=-1,this.pushSmoothingGroup(1),this.rawMesh.counts.doubleIndicesCount=0,this.rawMesh.counts.faceCount=0,this.rawMesh.counts.mtlCount=0,this.rawMesh.counts.smoothingGroupCount=0},p.prototype.setUseAsync=function(s){this.useAsync=s},p.prototype.setMaterialPerSmoothingGroup=function(s){this.materialPerSmoothingGroup=s},p.prototype.setUseOAsMesh=function(s){this.useOAsMesh=s},p.prototype.setUseIndices=function(s){this.useIndices=s},p.prototype.setDisregardNormals=function(s){this.disregardNormals=s},p.prototype.setMaterials=function(s){this.materials=THREE.LoaderSupport.Validator.verifyInput(s,this.materials),this.materials=THREE.LoaderSupport.Validator.verifyInput(this.materials,{})},p.prototype.setCallbackMeshBuilder=function(s){THREE.LoaderSupport.Validator.isValid(s)||this._throwError('Unable to run as no "MeshBuilder" callback is set.'),this.callbackMeshBuilder=s},p.prototype.setCallbackProgress=function(s){this.callbackProgress=s},p.prototype.setLogging=function(s,j){this.logging.enabled=!0===s,this.logging.debug=!0===j},p.prototype.configure=function(){if(this.pushSmoothingGroup(1),this.logging.enabled){var s=Object.keys(this.materials),j=s.length>0?"\n\tmaterialNames:\n\t\t- "+s.join("\n\t\t- "):"\n\tmaterialNames: None";console.info("OBJLoader2.Parser configuration:"+j+"\n\tuseAsync: "+this.useAsync+"\
1n\tmaterialPerSmoothingGroup: "+this.materialPerSmoothingGroup+"\n\tuseOAsMesh: "+this.useOAsMesh+"\n\tuseIndices: "+this.useIndices+"\n\tdisregardNormals: "+this.disregardNormals+"\n\tcallbackMeshBuilderName: "+this.callbackMeshBuilder.name+"\n\tcallbackProgressName: "+this.callbackProgress.name)}},p.prototype.parse=function(s){this.logging.enabled&&console.time("OBJLoader2.Parser.parse"),this.configure();var j=new Uint8Array(s);this.contentRef=j;var k=j.byteLength;this.globalCounts.totalBytes=k;for(var b,B=new Array(128),V="",_=0,H=0,Y=0;Y<k;Y++)switch(b=j[Y],b){case 32:V.length>0&&(B[_++]=V),V="";break;case 47:V.length>0&&(B[_++]=V),H++,V="";break;case 10:V.length>0&&(B[_++]=V),V="",this.globalCounts.lineByte=this.globalCounts.currentByte,this.globalCounts.currentByte=Y,this.processLine(B,_,H),_=0,H=0;break;case 13:break;default:V+=String.fromCharCode(b)}this.finalizeParsing(),this.logging.enabled&&console.timeEnd("OBJLoader2.Parser.parse")},p.prototype.parseText=function(s){this.logging.enabled&&console.time("OBJLoader2.Parser.parseText"),this.configure(),this.legacyMode=!0,this.contentRef=s;var j=s.length;this.globalCounts.totalBytes=j;for(var k,b=new Array(128),B="",V=0,_=0,H=0;H<j;H++)switch(k=s[H],k){case" ":B.length>0&&(b[V++]=B),B="";break;case"/":B.length>0&&(b[V++]=B),_++,B="";break;case"\n":B.length>0&&(b[V++]=B),B="",this.globalCounts.lineByte=this.globalCounts.currentByte,this.globalCounts.currentByte=H,this.processLine(b,V,_),V=0,_=0;break;case"\r":break;default:B+=k}this.finalizeParsing(),this.logging.enabled&&console.timeEnd("OBJLoader2.Parser.parseText")}
1,p.prototype.processLine=function(s,j,k){if(!(j<1)){var b,B,V,_,H=function(q,it,vt,at){var J="";if(at>vt){var ht;if(it)for(ht=vt;ht<at;ht++)J+=q[ht];else for(ht=vt;ht<at;ht++)J+=String.fromCharCode(q[ht]);J=J.trim()}return J};switch(_=s[0]){case"v":this.vertices.push(parseFloat(s[1])),this.vertices.push(parseFloat(s[2])),this.vertices.push(parseFloat(s[3])),j>4&&(this.colors.push(parseFloat(s[4])),this.colors.push(parseFloat(s[5])),this.colors.push(parseFloat(s[6])));break;case"vt":this.uvs.push(parseFloat(s[1])),this.uvs.push(parseFloat(s[2]));break;case"vn":this.normals.push(parseFloat(s[1])),this.normals.push(parseFloat(s[2])),this.normals.push(parseFloat(s[3]));break;case"f":if(b=j-1,0===k)for(this.checkFaceType(0),V=2,B=b;V<B;V++)this.buildFace(s[1]),this.buildFace(s[V]),this.buildFace(s[V+1]);else if(b===2*k)for(this.checkFaceType(1),V=3,B=b-2;V<B;V+=2)this.buildFace(s[1],s[2]),this.buildFace(s[V],s[V+1]),this.buildFace(s[V+2],s[V+3]);else if(2*b==3*k)for(this.checkFaceType(2),V=4,B=b-3;V<B;V+=3)this.buildFace(s[1],s[2],s[3]),this.buildFace(s[V],s[V+1],s[V+2]),this.buildFace(s[V+3],s[V+4],s[V+5]);else for(this.checkFaceType(3),V=3,B=b-2;V<B;V+=2)this.buildFace(s[1],void 0,s[2]),this.buildFace(s[V],void 0,s[V+1]),this.buildFace(s[V+2],void 0,s[V+3]);break;case"l":case"p":if((b=j-1)==2*k)for(this.checkFaceType(4),V=1,B=b+1;V<B;V+=2)this.buildFace(s[V],s[V+1]);else for(this.checkFaceType("l"===_?5:6),V=1,B=b+1;V<B;V++)this.buildFace(s[V]);break;case"s":this.pushSmoothingGroup(s[1]);break;case"g":this.processCompletedMesh(),this.rawMesh.groupName=H(this.contentRef,this.legacyMode,this.globalCounts.lineByte+2,this.globalCounts.currentByte);break;case"o":this.useOAsMesh&&this.processCompletedMesh(),this.rawMesh.objectName=H(this.contentRef,this.legacyMode,this.globalCounts.lineByte+2,this.globalCounts.currentByte);break;case"mtllib":this.rawMesh.mtllibName=H(this.contentRef,this.legacyMode,this.globalCounts.lineByte+7,this.globalCounts.currentByte);break;case"usemtl":var Y=H(this.contentRef,this.legacyMode,this.globalCounts.lineByte+7,this.globalCounts.currentByte);""!==Y&&this.rawMesh.activeMtlName!==Y&&(this.rawMesh.activeMtlName=Y,this.rawMesh.counts.mtlCount++,this.checkSubGroup())}}},p.prototype.pushSmoothingGroup=function(s){var j=parseInt(s);isNaN(j)&&(j="off"===s?0:1);var k=this.rawMesh.smoothingGroup.normalized;this.rawMesh.smoothingGroup.normalized=this.rawMesh.smoothingGroup.splitMaterials?j:0===j?0:1,this.rawMesh.smoothingGroup.real=j,k!==j&&(this.rawMesh.counts.smoothingGroupCount++,this.checkSubGroup())},p.prototype.checkFaceType=function(s){this.rawMesh.faceType!==s&&(this.processCompletedMesh(),this.rawMesh.faceType=s,this.checkSubGroup())},p.prototype.checkSubGroup=function(){var s=this.rawMesh.activeMtlName+"|"+this.rawMesh.smoothingGroup.normalized;this.rawMesh.subGroupInUse=this.rawMesh.subGroups[s],THREE.LoaderSupport.Validator.isValid(this.rawMesh.subGroupInUse)||(this.rawMesh.subGroupInUse={index:s,objectName:this.rawMesh.objectName,groupName:this.rawMesh.groupName,materialName:this.rawMesh.activeMtlName,smoothingGroup:this.rawMesh.smoothingGroup.normalized,vertices:[],indexMappingsCount:0,indexMappings:[],indices:[],colors:[],uvs:[],normals:[]},this.rawMesh.subGroups[s]=this.rawMesh.subGroupInUse)},p.prototype.buildFace=function(s,j,k){this.disregardNormals&&(k=void 0);var b=this,B=function(){var H=parseInt(s),Y=3*(H>0?H-1:H+b.vertices.length/3),q=b.rawMesh.subGroupInUse.vertices;q.push(b.vertices[Y++]),q.push(b.vertices[Y++]),q.push(b.vertices[Y]);var it=b.colors.length>0?Y+1:null;if(null!==it){var vt=b.rawMesh.subGroupInUse.colors;vt.push(b.colors[it++]),vt.push(b.colors[it++]),vt.push(b.colors[it])}if(j){var at=parseInt(j),J=2*(at>0?at-1:at+b.uvs.length/2),ht=b.rawMesh.subGroupInUse.uvs;ht.push(b.uvs[J++]),ht.push(b.uvs[J])}if(k){var m=parseInt(k),M=3*(m>0?m-1:m+b.normals.length/3),N=b.rawMesh.subGroupInUse.normals;N.push(b.normals[M++]),N.push(b.normals[M++]),N.push(b.normals[M])}};if(this.useIndices){var V=s+(j?"_"+j:"_n")+(k?"_"+k:"_n"),_=this.rawMesh.subGroupInUse.indexMappings[V];THREE.LoaderSupport.Validator.isValid(_)?this.rawMesh.counts.doubleIndicesCount++:(_=this.rawMesh.subGroupInUse.vertices.length/3,B(),this.rawMesh.subGroupInUse.indexMappings[V]=_,this.rawMesh.subGroupInUse.indexMappingsCount++),this.rawMesh.subGroupInUse.indices.push(_)}else B();this.rawMesh.counts.faceCount++},p.prototype.createRawMeshReport=function(s){return"Input Object number: "+s+"\n\tObject name: "+this.rawMesh.objectName+"\n\tGroup name: "+this.rawMesh.groupName+"\n\tMtllib name: "+this.rawMesh.mtllibName+"\n\tVertex count: "+this.vertices.length/3+"\n\tNormal count: "+this.normals.length/3+"\n\tUV count: "+this.uvs.length/2+"\n\tSmoothingGroup count: "+this.rawMesh.counts.smoothingGroupCount+"\n\tMaterial count: "+this.rawMesh.counts.mtlCount+"\n\tReal MeshOutputGroup count: "+this.rawMesh.subGroups.length},p.prototype.finalizeRawMesh=function(){var s,j,k=[],b=0,B=0,V=0,_=0,H=0,Y=0;for(var q in this.rawMesh.subGroups)if((s=this.rawMesh.subGroups[q]).vertices.length>0){if((j=s.indices).length>0&&B>0)for(var it in j)j[it]=j[it]+B;k.push(s),b+=s.vertices.length,B+=s.indexMappingsCount,V+=s.indices.length,_+=s.colors.length,Y+=s.uvs.length,H+=s.normals.length}var vt=null;return k.length>0&&(vt={name:""!==this.rawMesh.groupName?this.rawMesh.groupName:this.rawMesh.objectName,subGroups:k,absoluteVertexCount:b,absoluteIndexCount:V,absoluteColorCount:_,absoluteNormalCount:H,absoluteUvCount:Y,faceCount:this.rawMesh.counts.faceCount,doubleIndicesCount:this.rawMesh.counts.doubleIndicesCount}),vt},p.prototype.processCompletedMesh=function(){var s=this.finalizeRawMesh();if(THREE.LoaderSupport.Validator.isValid(s)){this.colors.length>0&&this.colors.length!==this.vertices.length&&this._throwError("Vertex Colors were detected, but vertex count and color count do not match!"),this.logging.enabled&&this.logging.debug&&console.debug(this.createRawMeshReport(this.inputObjectCount)),this.inputObjectCount++,this.buildMesh(s);var j=this.globalCounts.currentByte/this.globalCounts.totalBytes;return this.callbackProgress("Completed [o: "+this.rawMesh.objectName+" g:"+this.rawMesh.groupName+"] Total progress: "+(100*j).toFixed(2)+"%",j),this.resetRawMesh(),!0}return!1},p.prototype.buildMesh=function(s){var j=s.subGroups,k=new Float32Array(s.absoluteVertexCount);this.globalCounts.vertices+=s.absoluteVertexCount/3,this.globalCounts.faces+=s.faceCount,this.globalCounts.doubleIndicesCount+=s.doubleIndicesCount;var b,B,V,_,H,Y,q=s.absoluteIndexCount>0?new Uint32Array(s.absoluteIndexCount):null,it=s.absoluteColorCount>0?new Float32Array(s.absoluteColorCount):null,vt=s.absoluteNormalCount>0?new Float32Array(s.absoluteNormalCount):null,at=s.absoluteUvCount>0?new Float32Array(s.absoluteUvCount):null,J=THREE.LoaderSupport.Validator.isValid(it),ht=[],m=j.length>1,M=0,N=[],g=[],x=0,P=0,Q=0,U=0,G=0,dt=0,wt=0;for(var W in j)if(j.hasOwnProperty(W)){if(V=this.materials[Y=(b=j[W]).materialName],_=this.materials[H=this.rawMesh.faceType<4?Y+(J?"_vertexColor":"")+(0===b.smoothingGroup?"_flat":""):6===this.rawMesh.faceType?"defaultPointMaterial":"defaultLineMaterial"],!THREE.LoaderSupport.Validator.isValid(V)&&!THREE.LoaderSupport.Validator.isValid(_)){var te=J?"defaultVertexColorMaterial":"defaultMaterial";V=this.materials[te],this.logging.enabled&&console.warn('object_group "'+b.objectName+"_"+b.groupName+'" was defined with unresolvable material "'+Y+'"! Assigning "'+te+'".'),(Y=te)===H&&(_=V,H=te)}if(!THREE.LoaderSupport.Validator.isValid(_)){var ae={materialNameOrg:Y,materialName:H,materialProperties:{vertexColors:J?2:0,flatShading:0===b.smoothingGroup}};this.callbackMeshBuilder({cmd:"materialData",materials:{materialCloneInstru
1ctions:ae}}),this.useAsync&&(this.materials[H]=ae)}if(m?((B=N[H])||(B=M,N[H]=M,ht.push(H),M++),g.push({start:dt,count:wt=this.useIndices?b.indices.length:b.vertices.length/3,index:B}),dt+=wt):ht.push(H),k.set(b.vertices,x),x+=b.vertices.length,q&&(q.set(b.indices,P),P+=b.indices.length),it&&(it.set(b.colors,Q),Q+=b.colors.length),vt&&(vt.set(b.normals,U),U+=b.normals.length),at&&(at.set(b.uvs,G),G+=b.uvs.length),this.logging.enabled&&this.logging.debug){var Ae=THREE.LoaderSupport.Validator.isValid(B)?"\n\t\tmaterialIndex: "+B:"";console.debug("\tOutput Object no.: "+this.outputObjectCount+"\n\t\tgroupName: "+b.groupName+"\n\t\tIndex: "+b.index+"\n\t\tfaceType: "+this.rawMesh.faceType+"\n\t\tmaterialName: "+b.materialName+"\n\t\tsmoothingGroup: "+b.smoothingGroup+Ae+"\n\t\tobjectName: "+b.objectName+"\n\t\t#vertices: "+b.vertices.length/3+"\n\t\t#indices: "+b.indices.length+"\n\t\t#colors: "+b.colors.length/3+"\n\t\t#uvs: "+b.uvs.length/2+"\n\t\t#normals: "+b.normals.length/3)}}this.outputObjectCount++,this.callbackMeshBuilder({cmd:"meshData",progress:{numericalValue:this.globalCounts.currentByte/this.globalCounts.totalBytes},params:{meshName:s.name},materials:{multiMaterial:m,materialNames:ht,materialGroups:g},buffers:{vertices:k,indices:q,colors:it,normals:vt,uvs:at},geometryType:this.rawMesh.faceType<4?0:6===this.rawMesh.faceType?2:1},[k.buffer],THREE.LoaderSupport.Validator.isValid(q)?[q.buffer]:null,THREE.LoaderSupport.Validator.isValid(it)?[it.buffer]:null,THREE.LoaderSupport.Validator.isValid(vt)?[vt.buffer]:null,THREE.LoaderSupport.Validator.isValid(at)?[at.buffer]:null)},p.prototype.finalizeParsing=function(){this.logging.enabled&&console.info("Global output object count: "+this.outputObjectCount),this.processCompletedMesh()&&this.logging.enabled&&console.info("Overall counts: \n\tVertices: "+this.globalCounts.vertices+"\n\tFaces: "+this.globalCounts.faces+"\n\tMultiple definitions: "+this.globalCounts.doubleIndicesCount)},p}();return D.prototype.loadMtl=function(p,s,j,k,b,B,V){var _=new THREE.LoaderSupport.ResourceDescriptor(p,"MTL");_.setContent(s),this._loadMtl(_,j,k,b,B,V)},D.prototype._loadMtl=function(p,s,j,k,b,B){void 0===THREE.MTLLoader&&console.error('"THREE.MTLLoader" is not available. "THREE.OBJLoader2" requires it for loading MTL files.'),u.isValid(p)&&this.logging.enabled&&console.time("Loading MTL: "+p.name);var V=[],_=this,H=function(J){var ht=[];if(u.isValid(J))for(var m in J.preload(),ht=J.materials)ht.hasOwnProperty(m)&&(V[m]=ht[m]);u.isValid(p)&&_.logging.enabled&&console.timeEnd("Loading MTL: "+p.name),s(V,J)};
1if(u.isValid(p)&&(u.isValid(p.content)||u.isValid(p.url))){var Y=new THREE.MTLLoader(this.manager);b=u.verifyInput(b,"anonymous"),Y.setCrossOrigin(b),Y.setResourcePath(p.path),u.isValid(B)&&Y.setMaterialOptions(B);var q=function(J){var ht=J;"string"!=typeof J&&!(J instanceof String)&&(J.length>0||J.byteLength>0?ht=THREE.LoaderUtils.decodeText(J):this._throwError("Unable to parse mtl as it it seems to be neither a String, an Array or an ArrayBuffer!")),H(Y.parse(ht))};if(u.isValid(p.content))q(p.content);else if(u.isValid(p.url)){var it=new THREE.FileLoader(this.manager);if(u.isValid(k)||(k=function(J){_._onError(J)}),!u.isValid(j)){var vt=0,at=0;j=function(J){if(J.lengthComputable&&(at=J.loaded/J.total)>vt){vt=at;var ht='Download of "'+p.url+'": '+(100*at).toFixed(2)+"%";_.onProgress("progressLoad",ht,at)}}}it.load(p.url,q,j,k)}}else H()},D}(),THREE.PLYLoader=function(u){this.manager=void 0!==u?u:THREE.DefaultLoadingManager,this.propertyNameMapping={}},THREE.PLYLoader.prototype={constructor:THREE.PLYLoader,load:function(u,D,v,p){var s=this,j=new THREE.FileLoader(this.manager);j.setPath(this.path),j.setResponseType("arraybuffer"),j.load(u,function(k){D(s.parse(k))},v,p)},setPath:function(u){return this.path=u,this},setPropertyNameMapping:function(u){this.propertyNameMapping=u},parse:function(u){function D(q){var it="",vt=0,at=/ply([\s\S]*)end_header\s/.exec(q);null!==at&&(it=at[1],vt=at[0].length);for(var J,ht,m,M,N,g,x={comments:[],elements:[],headerLength:vt},P=it.split("\n"),Q=0;Q<P.length;Q++){var U=P[Q];if(""!==(U=U.trim()))switch(m=U.split(/\s+/),ht=m.shift(),U=m.join(" "),ht){case"format":x.format=m[0],x.version=m[1];break;case"comment":x.comments.push(U);break;case"element":void 0!==J&&x.elements.push(J),(J={}).name=m[0],J.count=parseInt(m[1]),J.properties=[];break;case"property":J.properties.push((N=_.propertyNameMapping,g=void 0,"list"===(g={type:(M=m)[0]}).type?(g.name=M[3],g.countType=M[1],g.itemType=M[2]):g.name=M[1],g.name in N&&(g.name=N[g.name]),g));break;default:console.log("unhandled",ht,m)}}return void 0!==J&&x.elements.push(J),x}function v(q,it){switch(it){case"char":case"uchar":case"short":case"ushort":case"int":case"uint":case"int8":case"uint8":case"int16":case"uint16":case"int32":case"uint32":return parseInt(q);case"float":case"double":case"float32":case"float64":return parseFloat(q)}}function p(q,it){for(var vt=it.split(/\s+/),at={},J=0;J<q.length;J++)if("list"===q[J].type){for(var ht=[],m=v(vt.shift(),q[J].countType),M=0;M<m;M++)ht.push(v(vt.shift(),q[J].itemType));at[q[J].name]=ht}else at[q[J].name]=v(vt.shift(),q[J].type);return at}function s(q,it){var vt,at={indices:[],vertices:[],normals:[],uvs:[],faceVertexUvs:[],colors:[]},J="";null!==(vt=/end_header\s([\s\S]*)$/.exec(q))&&(J=vt[1]);for(var ht=J.split("\n"),m=0,M=0,N=0;N<ht.length;N++){var g=ht[N];if(""!==(g=g.trim())){M>=it.elements[m].count&&(m++,M=0);var x=p(it.elements[m].properties,g);k(at,it.elements[m].name,x),M++}}return j(at)}function j(q){var it=new THREE.BufferGeometry;return q.indices.length>0&&it.setIndex(q.indices),it.addAttribute("position",new THREE.Float32BufferAttribute(q.vertices,3)),q.normals.length>0&&it.addAttribute("normal",new THREE.Float32BufferAttribute(q.normals,3)),q.uvs.length>0&&it.addAttribute("uv",new THREE.Float32BufferAttribute(q.uvs,2)),q.colors.length>0&&it.addAttribute("color",new THREE.Float32BufferAttribute(q.colors,3)),q.faceVertexUvs.length>0&&(it=it.toNonIndexed()).addAttribute("uv",new THREE.Float32BufferAttribute(q.faceVertexUvs,2)),it.computeBoundingSphere(),it}function k(q,it,vt){if("vertex"===it)q.vertices.push(vt.x,vt.y,vt.z),"nx"in vt&&"ny"in vt&&"nz"in vt&&q.normals.push(vt.nx,vt.ny,vt.nz),"s"in vt&&"t"in vt&&q.uvs.push(vt.s,vt.t),"red"in vt&&"green"in vt&&"blue"in vt&&q.colors.push(vt.red/255,vt.green/255,vt.blue/255);else if("face"===it){var at=vt.vertex_indices||vt.vertex_index,J=vt.texcoord;3===at.length?(q.indices.push(at[0],at[1],at[2]),J&&6===J.length&&(q.faceVertexUvs.push(J[0],J[1]),q.faceVertexUvs.push(J[2],J[3]),q.faceVertexUvs.push(J[4],J[5]))):4===at.length&&(q.indices.push(at[0],at[1],at[3]),q.indices.push(at[1],at[2],at[3]))}}function b(q,it,vt,at){switch(vt){case"int8":case"char":return[q.getInt8(it),1];case"uint8":case"uchar":return[q.getUint8(it),1];case"int16":case"short":return[q.getInt16(it,at),2];case"uint16":case"ushort":return[q.getUint16(it,at),2];case"int32":case"int":return[q.getInt32(it,at),4];case"uint32":case"uint":return[q.getUint32(it,at),4];case"float32":case"float":return[q.getFloat32(it,at),4];case"float64":case"double":return[q.getFloat64(it,at),8]}}function B(q,it,vt,at){for(var J,ht={},m=0,M=0;M<vt.length;M++)if("list"===vt[M].type){var N=[],g=(J=b(q,it+m,vt[M].countType,at))[0];m+=J[1];for(var x=0;x<g;x++)J=b(q,it+m,vt[M].itemType,at),N.push(J[0]),m+=J[1];ht[vt[M].name]=N}else J=b(q,it+m,vt[M].type,at),ht[vt[M].name]=J[0],m+=J[1];return[ht,m]}var V,_=this;if(u instanceof ArrayBuffer){var H=THREE.LoaderUtils.decodeText(new Uint8Array(u)),Y=D(H);V="ascii"===Y.format?s(H,Y):function(it,vt){for(var at,J={indices:[],vertices:[],normals:[],uvs:[],faceVertexUvs:[],colors:[]},ht="binary_little_endian"===vt.format,m=new DataView(it,vt.headerLength),M=0,N=0;N<vt.elements.length;N++)for(var g=0;g<vt.elements[N].count;g++)M+=(at=B(m,M,vt.elements[N].properties,ht))[1],k(J,vt.elements[N].name,at[0]);return j(J)}(u,Y)}else V=s(u,D(u));return V}},THREE.ThreeMFLoader=function(u){this.manager=void 0!==u?u:THREE.DefaultLoadingManager,this.availableExtensions=[]},THREE.ThreeMFLoader.prototype={constructor:THREE.ThreeMFLoader,load:function(u,D,v,p){var s=this,j=new THREE.FileLoader(s.manager);j.setPath(s.path),j.setResponseType("arraybuffer"),j.load(u,function(k){D(s.parse(k))},v,p)},setPath:function(u){return this.path=u,this},parse:function(u){var D=this;function v(b){var B={type:b.getAttribute("type")},V=b.getAttribute("id");V&&(B.id=V);var _=b.getAttribute("pid");_&&(B.pid=_);var H=b.getAttribute("pindex");H&&(B.pindex=H);var Y=b.getAttribute("thumbnail");Y&&(B.thumbnail=Y);var q=b.getAttribute("partnumber");q&&(B.partnumber=q);var it=b.getAttribute("name");it&&(B.name=it);var vt=b.querySelector("mesh");return vt&&(B.mesh=function(J,ht){for(var m={},M=[],N=J.querySelectorAll("vertices vertex"),g=0;g<N.length;g++){var x=N[g],P=x.getAttribute("x"),Q=x.getAttribute("y"),U=x.getAttribute("z");M.push(parseFloat(P),parseFloat(Q),parseFloat(U))}for(m.vertices=new Float32Array(M.length),g=0;g<M.length;g++)m.vertices[g]=M[g];var G=[],dt=[],wt=J.querySelectorAll("triangles triangle");for(g=0;g<wt.length;g++){var W=wt[g],te=W.getAttribute("v1"),ae=W.getAttribute("v2"),Ae=W.getAttribute("v3"),ge=W.getAttribute("p1"),We=W.getAttribute("p2"),Cn=W.getAttribute("p3"),rn=W.getAttribute("pid");dt.push(parseInt(te,10),parseInt(ae,10),parseInt(Ae,10));var Me={};ge&&(Me.p1=parseInt(ge,10)),We&&(Me.p2=parseInt(We,10)),Cn&&(Me.p3=parseInt(Cn,10)),rn&&(Me.pid=rn),0<Object.keys(Me).length&&G.push(Me)}for(m.triangleProperties=G,m.triangles=new Uint32Array(dt.length),g=0;g<dt.length;g++)m.triangles[g]=dt[g];return m}(vt)),b.querySelector("components")&&(B.components=void 0),B}function p(b){var B={unit:b.getAttribute("unit")||"millimeter"},V=b.querySelectorAll("metadata");V&&(B.metadata=function(q){for(var it={},vt=0;vt<q.length;vt++){var at=q[vt],J=at.getAttribute("name");0<=["Title","Designer","Description","Copyright","LicenseTerms","Rating","CreationDate","ModificationDate"].indexOf(J)&&(it[J]=at.textContent)}return it}(V));var _=b.querySelector("resources");_&&(B.resources=function(q){var it={};q.querySelector("basematerials")&&(it.basematerial=void 0),it.object={};for(var vt=q.querySelectorAll("object"),at=0;at<vt.length;at++){var J=v(vt[at]);it.object[J.id]=J}return it}(_));var H=b.querySelector("build");return H&&(B.build=function(q){for(var it=[],vt=q.querySelectorAll("item"),at=0;at<vt.length;at++){var J=vt[at],ht={objectid:J.getAttribute("objectid")},m=J.getAttribute("transform");if(m){var M=[];m.split(" ").forEach(function(g){M.push(parseFloat(g))});var N=new THREE.Matrix4;ht.transform=N.set(M[0],M[3],M[6],M[9],M[1],M[4],M[7],M[10],M[2],M[5],M[8],M[11],0,0,0,1)}it.push(ht)}return it}(H)),B}function s(b,B){var V=new THREE.BufferGeometry;V.setIndex(new THREE.BufferAttribute(b.triangles,1)),V.addAttribute("position",new THREE.BufferAttribute(b.vertices,3)),b.colors&&V.addAttribute("color",new THREE.BufferAttribute(b.colors,3)),V.computeBoundingSphere();var _={flatShading:!0};b.colors&&0<b.colors.length?_.vertexColors=THREE.VertexColors:_.color=11184895;var H=new THREE.MeshPhongMaterial(_);return new THREE.Mesh(V,H)}function j(b,B,V,_){if(b){for(var H=[],Y=Object.keys(b),q=0;q<Y.length;q++)for(var it=Y[q],vt=0;vt<D.availableExtensions.length;vt++)(at=D.availableExtensions[vt]).ns===it&&H.push(at);for(q=0;q<H.length;q++){var at;(at=H[q]).apply(V,b[at.ns],B)}}}var k=function(B){var V,_,H=null,Y=null,q=[],it=[],vt=[],at=[],J={},ht={};try{H=new JSZip(B)}catch(W){if(W instanceof ReferenceError)return console.error("THREE.ThreeMFLoader: jszip missing and file is compressed."),null}for(Y in H.files)Y.match(/\.rels$/)?V=Y:Y.match(/^3D\/.*\.model$/)?q.push(Y):Y.match(/^3D\/Metadata\/.*\.xml$/)?it.push(Y):Y.match(/^3D\/Textures\/.*/)?vt.push(Y):Y.match(/^3D\/Other\/.*/)&&at.push(Y);var te,ae,m=new Uint8Array(H.file(V).asArrayBuffer());te=THREE.LoaderUtils.decodeText(m),_={target:(ae=(new DOMParser).parseFromString(te,"application/xml").querySelector("Relationship")).getAttribute("Target"),id:ae.getAttribute("Id"),type:ae.getAttribute("Type")};for(var M=0;M<q.length;M++){var N=q[M],g=new Uint8Array(H.file(N).asArrayBuffer()),x=THREE.LoaderUtils.decodeText(g),P=(new DOMParser).parseFromString(x,"application/xml");"model"!==P.documentElement.nodeName.toLowerCase()&&console.error("THREE.ThreeMFLoader: Error loading 3MF - no 3MF document found: ",
1N);var Q=P.querySelector("model"),U={};for(M=0;M<Q.attributes.length;M++){var G=Q.attributes[M];G.name.match(/^xmlns:(.+)$/)&&(U[G.value]=RegExp.$1)}var dt=p(Q);dt.xml=Q,0<Object.keys(U).length&&(dt.extensions=U),J[N]=dt}for(M=0;M<vt.length;M++){var wt=vt[M];ht[wt]=H.file(wt).asBinary()}return{rels:_,model:J,printTicket:{},texture:ht,other:{}}}(u);return function(B,V,_){for(var H=new THREE.Group,Y=_.model[V.target.substring(1)].build,q=0;q<Y.length;q++){var it=Y[q],vt=B[it.objectid];it.transform&&vt.geometry.applyMatrix(it.transform),H.add(vt)}return H}(function(B){for(var V=B.model,_={},H=Object.keys(V),Y=0;Y<H.length;Y++)for(var q=V[H[Y]],it=q.xml,vt=q.extensions,at=Object.keys(q.resources.object),J=0;J<at.length;J++){var ht=at[J],m=q.resources.object[ht].mesh;j(vt,m,it),_[ht]=s(m)}return _}(k),k.rels,k)},addExtension:function(u){this.availableExtensions.push(u)}},THREE.HorizontalBlurShader={uniforms:{tDiffuse:{value:null},h:{value:1/512}},vertexShader:["varying vec2 vUv;","void main() {","vUv = uv;","gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform float h;","varying vec2 vUv;","void main() {","vec4 sum = vec4( 0.0 );","sum += texture2D( tDiffuse, vec2( vUv.x - 4.0 * h, vUv.y ) ) * 0.051;","sum += texture2D( tDiffuse, vec2( vUv.x - 3.0 * h, vUv.y ) ) * 0.0918;","sum += texture2D( tDiffuse, vec2( vUv.x - 2.0 * h, vUv.y ) ) * 0.12245;","sum += texture2D( tDiffuse, vec2( vUv.x - 1.0 * h, vUv.y ) ) * 0.1531;","sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;","sum += texture2D( tDiffuse, vec2( vUv.x + 1.0 * h, vUv.y ) ) * 0.1531;","sum += texture2D( tDiffuse, vec2( vUv.x + 2.0 * h, vUv.y ) ) * 0.12245;","sum += texture2D( tDiffuse, vec2( vUv.x + 3.0 * h, vUv.y ) ) * 0.0918;","sum += texture2D( tDiffuse, vec2( vUv.x + 4.0 * h, vUv.y ) ) * 0.051;","gl_FragColor = sum;","}"].join("\n")},THREE.VerticalBlurShader={uniforms:{tDiffuse:{value:null},v:{value:1/512}},vertexShader:["varying vec2 vUv;","void main() {","vUv = uv;","gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform float v;","varying vec2 vUv;","void main() {","vec4 sum = vec4( 0.0 );","sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 4.0 * v ) ) * 0.051;","sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 3.0 * v ) ) * 0.0918;","sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 2.0 * v ) ) * 0.12245;","sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 1.0 * v ) ) * 0.1531;","sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;","sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 1.0 * v ) ) * 0.1531;","sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 2.0 * v ) ) * 0.12245;","sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 3.0 * v ) ) * 0.0918;","sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 4.0 * v ) ) * 0.051;","gl_FragColor = sum;","}"].join("\n")};var WEBGL={isWebGLAvailable:function(){try{var u=document.createElement("canvas");return!(!window.WebGLRenderingContext||!u.getContext("webgl")&&!u.getContext("experimental-webgl"))}catch{return!1}},isWebGL2Available:function(){try{var u=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!u.getContext("webgl2"))}catch{return!1}},getWebGLErrorMessage:function(){return this.getErrorMessage(1)},getWebGL2ErrorMessage:function(){return this.getErrorMessage(2)},getErrorMessage:function(u){var D={1:window.WebGLRenderingContext,2:window.WebGL2RenderingContext},v='Your $0 does not seem to support <a href="http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation" style="color:#000">$1</a>',p=document.createElement("div");return p.id="webglmessage",p.style.fontFamily="monospace",p.style.fontSize="13px",p.style.fontWeight="normal",p.style.textAlign="center",p.style.background="#fff",p.style.color="#000",p.style.padding="1.5em",p.style.width="400px",p.style.margin="5em auto 0",v=(v=v.replace("$0",D[u]?"graphics card":"browser")).replace("$1",{1:"WebGL",2:"WebGL 2"}[u]),p.innerHTML=v,p}};THREE.UniformsLib.line={linewidth:{value:1},resolution:{value:new THREE.Vector2(1,1)},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1}},THREE.ShaderLib.line={uniforms:THREE.UniformsUtils.merge([THREE.UniformsLib.common,THREE.UniformsLib.fog,THREE.UniformsLib.line]),vertexShader:"\n\t\t#include <common>\n\t\t#include <color_pars_vertex>\n\t\t#include <fog_pars_vertex>\n\t\t#include <logdepthbuf_pars_vertex>\n\t\t#include <clipping_planes_pars_vertex>\n\n\t\tuniform float linewidth;\n\t\tuniform vec2 resolution;\n\n\t\tattribute vec3 instanceStart;\n\t\tattribute vec3 instanceEnd;\n\n\t\tattribute vec3 instanceColorStart;\n\t\tattribute vec3 instanceColorEnd;\n\n\t\tvarying vec2 vUv;\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashScale;\n\t\t\tattribute float instanceDistanceStart;\n\t\t\tattribute float instanceDistanceEnd;\n\t\t\tvarying float vLineDistance;\n\n\t\t#endif\n\n\t\tvoid trimSegment( const in vec4 start, inout vec4 end ) {\n\n\t\t\t// trim end segment so it terminates between the camera plane and the near plane\n\n\t\t\t// conservative estimate of the near plane\n\t\t\tfloat a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\n\t\t\tfloat b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\n\t\t\tfloat nearEstimate = - 0.5 * b / a;\n\n\t\t\tfloat alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\n\n\t\t\tend.xyz = mix( start.xyz, end.xyz, alpha );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#ifdef USE_COLOR\n\n\t\t\t\tvColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;\n\n\t\t\t#endif\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\n\n\t\t\t#endif\n\n\t\t\tfloat aspect = resolution.x / resolution.y;\n\n\t\t\tvUv = uv;\n\n\t\t\t// camera space\n\t\t\tvec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\n\t\t\tvec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\n\n\t\t\t// special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n\t\t\t// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n\t\t\t// but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n\t\t\t// perhaps there is a more elegant solution -- WestLangley\n\n\t\t\tbool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\n\n\t\t\tif ( perspective ) {\n\n\t\t\t\tif ( start.z < 0.0 && end.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( start, end );\n\n\t\t\t\t} else if ( end.z < 0.0 && start.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( end, start );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// clip space\n\t\t\tvec4 clipStart = projectionMatrix * start;\n\t\t\tvec4 clipEnd = projectionMatrix * end;\n\n\t\t\t// ndc space\n\t\t\tvec2 ndcStart = clipStart.xy / clipStart.w;\n\t\t\tvec2 ndcEnd = clipEnd.xy / clipEnd.w;\n\n\t\t\t// direction\n\t\t\tvec2 dir = ndcEnd - ndcStart;\n\n\t\t\t// account for clip-space aspect ratio\n\t\t\tdir.x *= aspect;\n\t\t\tdir = normalize( dir );\n\n\t\t\t// perpendicular to dir\n\t\t\tvec2 offset = vec2( dir.y, - dir.x );\n\n\t\t\t// undo aspect ratio adjustment\n\t\t\tdir.x /= aspect;\n\t\t\toffset.x /= aspect;\n\n\t\t\t// sign flip\n\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t// endcaps\n\t\t\tif ( position.y < 0.0 ) {\n\n\t\t\t\toffset += - dir;\n\n\t\t\t} else if ( position.y > 1.0 ) {\n\n\t\t\t\toffset += dir;\n\n\t\t\t}\n\n\t\t\t// adjust for linewidth\n\t\t\toffset *= linewidth;\n\n\t\t\t// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\n\t\t\toffset /= resolution.y;\n\n\t\t\t// select end\n\t\t\tvec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;\n\n\t\t\t// back to clip space\n\t\t\toffset *= clip.w;\n\n\t\t\tclip.xy += offset;\n\n\t\t\tgl_Position = clip;\n\n\t\t\tvec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation\n\n\t\t\t#include <logdepthbuf_vertex>\n\t\t\t#include <clipping_planes_vertex>\n\t\t\t#include <fog_vertex>\n\n\t\t}\n\t\t",fragmentShader:"\n\t\tuniform vec3 diffuse;\n\t\tuniform float opacity;\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashSize;\n\t\t\tuniform float gapSize;\n\n\t\t#endif\n\n\t\tvarying float vLineDistance;\n\n\t\t#include <common>\n\t\t#include <color_pars_fragment>\n\t\t#include <fog_pars_fragment>\n\t\t#include <logdepthbuf_pars_fragment>\n\t\t#include <clipping_planes_pars_fragment>\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\t#include <clipping_planes_fragment>\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tif ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\n\n\t\t\t\tif ( mod( vLineDistance, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\n\n\t\t\t#endif\n\n\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\tfloat a = vUv.x;\n\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\tfloat len2 = a * a + b * b;\n\n\t\t\t\tif ( len2 > 1.0 ) discard;\n\n\t\t\t}\n\n\t\t\tvec4 diffuseColor = vec4( diffuse, opacity );\n\n\t\t\t#include <logdepthbuf_fragment>\n\t\t\t#include <color_fragment>\n\n\t\t\tgl_FragColor = vec4( diffuseColor.rgb, diffuseColor.a );\n\n\t\t\t#include <premultiplied_alpha_fragment>\n\t\t\t#include <tonemapping_fragment>\n\t\t\t#include <encodings_fragment>\n\t\t\t#include <fog_fragment>\n\n\t\t}\n\t\t"},THREE.LineMaterial=function(u){THREE.ShaderMaterial.call(this,{type:"LineMaterial",uniforms:THREE.UniformsUtils.clone(THREE.ShaderLib.line.uniforms),vertexShader:THREE.ShaderLib.line.vertexShader,fragmentShader:THREE.ShaderLib.line.fragmentShader}),this.dashed=!1,Object.defineProperties(this,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(D){this.uniforms.diffuse.value=D}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(D){this.uniforms.linewidth.value=D}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(D){this.uniforms.dashScale.value=D}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(D){this.uniforms.dashSize.value=D}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(D){this.uniforms.gapSize.value=D}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(D){this.uniforms.resolution.value.copy(D)}}}),this.setValues(u)},THREE.LineMaterial.prototype=Object.create(THREE.ShaderMaterial.prototype),THREE.LineMaterial.prototype.constructor=THREE.LineMaterial,THREE.LineMaterial.prototype.isLineMaterial=!0,THREE.LineMaterial.prototype.copy=function(u){return THREE.ShaderMaterial.prototype.copy.call(this,u),this.color.copy(u.color),this.linewidth=u.linewidth,this.resolution=u.resolution,this},THREE.LineSegments2=function(u,D){THREE.Mesh.call(this),this.type="LineSegments2",this.geometry=void 0!==u?u:new THREE.LineSegmentsGeometry,this.material=void 0!==D?D:new THREE.LineMaterial({color:16777215*Math.random()})},THREE.LineSegments2.prototype=Object.assign(Object.create(THREE.Mesh.prototype),{constructor:THREE.LineSegments2,isLineSegments2:!0,computeLineDistances:function(){var u=new THREE.Vector3,D=new THREE.Vector3;return function(){for(var v=this.geometry,p=v.attributes.instanceStart,s=v.attributes.instanceEnd,j=new Float32Array(2*p.data.count),k=0,b=0,B=p.data.count;k<B;k++,b+=2)u.fromBufferAttribute(p,k),D.fromBufferAttribute(s,k),j[b]=0===b?0:j[b-1],j[b+1]=j[b]+u.distanceTo(D);var V=new THREE.InstancedInterleavedBuffer(j,2,1);return v.addAttribute("instanceDistanceStart",new THREE.InterleavedBufferAttribute(V,1,0)),v.addAttribute("instanceDistanceEnd",new THREE.InterleavedBufferAttribute(V,1,1)),this}}(),copy:function(u){return this}}),THREE.Line2=function(u,D){THREE.LineSegments2.call(this),this.type="Line2",this.geometry=void 0!==u?u:new THREE.LineGeometry,this.material=void 0!==D?D:new THREE.LineMaterial({color:16777215*Math.random()})},THREE.Line2.prototype=Object.assign(Object.create(THREE.LineSegments2.prototype),{constructor:THREE.Line2,isLine2:!0,copy:function(u){return this}}),THREE.LineSegmentsGeometry=function(){THREE.InstancedBufferGeometry.call(this),this.type="LineSegmentsGeometry",new THREE.BufferGeometry,this.setIndex([0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5]),this.addAttribute("position",new THREE.Float32BufferAttribute([-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],3)),this.addAttribute("uv",new THREE.Float32BufferAttribute([-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],2))},THREE.LineSegmentsGeometry.prototype=Object.assign(Object.create(THREE.InstancedBufferGeometry.prototype),{constructor:THREE.LineSegmentsGeometry,isLineSegmentsGeometry:!0,applyMatrix:function(u){var D=this.attributes.instanceStart,v=this.attributes.instanceEnd;return void 0!==D&&(u.applyToBufferAttribute(D),u.applyToBufferAttribute(v),D.data.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this},setPositions:function(u){var D;u instanceof Float32Array?D=u:Array.isArray(u)&&(D=new Float32Array(u));var v=new THREE.InstancedInterleavedBuffer(D,6,1);return this.addAttribute("instanceStart",new THREE.InterleavedBufferAttribute(v,3,0)),this.addAttribute("instanceEnd",new THREE.InterleavedBufferAttribute(v,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this},setColors:function(u){var D;u instanceof Float32Array?D=u:Array.isArray(u)&&(D=new Float32Array(u));var v=new THREE.InstancedInterleavedBuffer(D,6,1);return this.addAttribute("instanceColorStart",new THREE.InterleavedBufferAttribute(v,3,0)),this.addAttribute("instanceColorEnd",new THREE.InterleavedBufferAttribute(v,3,3)),this},fromWireframeGeometry:function(u){return this.setPositions(u.attributes.position.array),this},fromEdgesGeometry:function(u){return this.setPositions(u.attributes.position.array),this},fromMesh:function(u){return this.fromWireframeGeometry(new THREE.WireframeGeometry(u.geometry)),this},fromLineSegements:function(u){var D=u.geometry;return D.isGeometry?this.setPositions(D.vertices):D.isBufferGeometry&&this.setPositions(D.position.array),this},computeBoundingBox:function(){var u=new THREE.Box3;
1return function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var D=this.attributes.instanceStart,v=this.attributes.instanceEnd;void 0!==D&&void 0!==v&&(this.boundingBox.setFromBufferAttribute(D),u.setFromBufferAttribute(v),this.boundingBox.union(u))}}(),computeBoundingSphere:function(){var u=new THREE.Vector3;return function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere),null===this.boundingBox&&this.computeBoundingBox();var D=this.attributes.instanceStart,v=this.attributes.instanceEnd;if(void 0!==D&&void 0!==v){var p=this.boundingSphere.center;this.boundingBox.getCenter(p);for(var s=0,j=0,k=D.count;j<k;j++)u.fromBufferAttribute(D,j),s=Math.max(s,p.distanceToSquared(u)),u.fromBufferAttribute(v,j),s=Math.max(s,p.distanceToSquared(u));this.boundingSphere.radius=Math.sqrt(s),isNaN(this.boundingSphere.radius)&&console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.",this)}}}(),toJSON:function(){},clone:function(){},copy:function(u){return this}}),THREE.LineGeometry=function(){THREE.LineSegmentsGeometry.call(this),this.type="LineGeometry"},THREE.LineGeometry.prototype=Object.assign(Object.create(THREE.LineSegmentsGeometry.prototype),{constructor:THREE.LineGeometry,isLineGeometry:!0,setPositions:function(u){for(var D=u.length-3,v=new Float32Array(2*D),p=0;p<D;p+=3)v[2*p]=u[p],v[2*p+1]=u[p+1],v[2*p+2]=u[p+2],v[2*p+3]=u[p+3],v[2*p+4]=u[p+4],v[2*p+5]=u[p+5];return THREE.LineSegmentsGeometry.prototype.setPositions.call(this,v),this},setColors:function(u){for(var D=u.length-3,v=new Float32Array(2*D),p=0;p<D;p+=3)v[2*p]=u[p],v[2*p+1]=u[p+1],v[2*p+2]=u[p+2],v[2*p+3]=u[p+3],v[2*p+4]=u[p+4],v[2*p+5]=u[p+5];return THREE.LineSegmentsGeometry.prototype.setColors.call(this,v),this},fromLine:function(u){var D=u.geometry;return D.isGeometry?this.setPositions(D.vertices):D.isBufferGeometry&&this.setPositions(D.position.array),this},copy:function(u){return this}}),THREE.NURBSCurve=function(u,D,v,p,s){THREE.Curve.call(this),this.degree=u,this.knots=D,this.controlPoints=[],this.startKnot=p||0,this.endKnot=s||this.knots.length-1;for(var j=0;j<v.length;++j){var k=v[j];this.controlPoints[j]=new THREE.Vector4(k.x,k.y,k.z,k.w)}},THREE.NURBSCurve.prototype=Object.create(THREE.Curve.prototype),THREE.NURBSCurve.prototype.constructor=THREE.NURBSCurve,THREE.NURBSCurve.prototype.getPoint=function(u){var D=THREE.NURBSUtils.calcBSplinePoint(this.degree,this.knots,this.controlPoints,this.knots[this.startKnot]+u*(this.knots[this.endKnot]-this.knots[this.startKnot]));return 1!=D.w&&D.divideScalar(D.w),new THREE.Vector3(D.x,D.y,D.z)},THREE.NURBSCurve.prototype.getTangent=function(u){var D=THREE.NURBSUtils.calcNURBSDerivatives(this.degree,this.knots,this.controlPoints,this.knots[0]+u*(this.knots[this.knots.length-1]-this.knots[0]),1)[1].clone();return D.normalize(),D},THREE.NURBSUtils={findSpan:function(u,D,v){var p=v.length-u-1;if(D>=v[p])return p-1;if(D<=v[u])return u;for(var s=u,j=p,k=Math.floor((s+j)/2);D<v[k]||D>=v[k+1];)D<v[k]?j=k:s=k,k=Math.floor((s+j)/2);return k},calcBasisFunctions:function(u,D,v,p){var s=[],j=[],k=[];s[0]=1;for(var b=1;b<=v;++b){j[b]=D-p[u+1-b],k[b]=p[u+b]-D;for(var B=0,V=0;V<b;++V){var _=k[V+1],H=j[b-V],Y=s[V]/(_+H);s[V]=B+_*Y,B=H*Y}s[b]=B}return s},calcBSplinePoint:function(u,D,v,p){for(var s=this.findSpan(u,p,D),j=this.calcBasisFunctions(s,p,u,D),k=new THREE.Vector4(0,0,0,0),b=0;b<=u;++b){var B=v[s-u+b],V=j[b],_=B.w*V;k.x+=B.x*_,k.y+=B.y*_,k.z+=B.z*_,k.w+=B.w*V}return k},calcBasisFunctionDerivatives:function(u,D,v,p,s){for(var j=[],k=0;k<=v;++k)j[k]=0;var b=[];for(k=0;k<=p;++k)b[k]=j.slice(0);var B=[];for(k=0;k<=v;++k)B[k]=j.slice(0);B[0][0]=1;for(var V=j.slice(0),_=j.slice(0),H=1;H<=v;++H){V[H]=D-s[u+1-H],_[H]=s[u+H]-D;for(var Y=0,q=0;q<H;++q){var it=_[q+1],vt=V[H-q];B[H][q]=it+vt;var at=B[q][H-1]/B[H][q];B[q][H]=Y+it*at,Y=vt*at}B[H][H]=Y}for(H=0;H<=v;++H)b[0][H]=B[H][v];for(q=0;q<=v;++q){var J=0,ht=1,m=[];for(k=0;k<=v;++k)m[k]=j.slice(0);m[0][0]=1;for(var M=1;M<=p;++M){var N=0,g=q-M,x=v-M;q>=M&&(m[ht][0]=m[J][0]/B[x+1][g],N=m[ht][0]*B[g][x]);var P=q-1<=x?M-1:v-q;for(H=g>=-1?1:-g;H<=P;++H)m[ht][H]=(m[J][H]-m[J][H-1])/B[x+1][g+H],N+=m[ht][H]*B[g+H][x];q<=x&&(m[ht][M]=-m[J][M-1]/B[x+1][q],N+=m[ht][M]*B[q][x]),b[M][q]=N,H=J,J=ht,ht=H}}for(q=v,M=1;M<=p;++M){for(H=0;H<=v;++H)b[M][H]*=q;q*=v-M}return b},calcBSplineDerivatives:function(u,D,v,p,s){for(var j=s<u?s:u,k=[],b=this.findSp
1an(u,p,D),B=this.calcBasisFunctionDerivatives(b,p,u,j,D),V=[],_=0;_<v.length;++_){var H=(q=v[_].clone()).w;q.x*=H,q.y*=H,q.z*=H,V[_]=q}for(var Y=0;Y<=j;++Y){for(var q=V[b-u].clone().multiplyScalar(B[Y][0]),it=1;it<=u;++it)q.add(V[b-u+it].clone().multiplyScalar(B[Y][it]));k[Y]=q}for(Y=j+1;Y<=s+1;++Y)k[Y]=new THREE.Vector4(0,0,0);return k},calcKoverI:function(u,D){for(var v=1,p=2;p<=u;++p)v*=p;var s=1;for(p=2;p<=D;++p)s*=p;for(p=2;p<=u-D;++p)s*=p;return v/s},calcRationalCurveDerivatives:function(u){for(var D=u.length,v=[],p=[],s=0;s<D;++s){var j=u[s];v[s]=new THREE.Vector3(j.x,j.y,j.z),p[s]=j.w}for(var k=[],b=0;b<D;++b){var B=v[b].clone();for(s=1;s<=b;++s)B.sub(k[b-s].clone().multiplyScalar(this.calcKoverI(b,s)*p[s]));k[b]=B.divideScalar(p[0])}return k},calcNURBSDerivatives:function(u,D,v,p,s){var j=this.calcBSplineDerivatives(u,D,v,p,s);return this.calcRationalCurveDerivatives(j)},calcSurfacePoint:function(u,D,v,p,s,j,k,b){for(var B=this.findSpan(u,j,v),V=this.findSpan(D,k,p),_=this.calcBasisFunctions(B,j,u,v),H=this.calcBasisFunctions(V,k,D,p),Y=[],q=0;q<=D;++q){Y[q]=new THREE.Vector4(0,0,0,0);for(var it=0;
1it<=u;++it){var vt=s[B-u+it][V-D+q].clone(),at=vt.w;vt.x*=at,vt.y*=at,vt.z*=at,Y[q].add(vt.multiplyScalar(_[it]))}}var J=new THREE.Vector4(0,0,0,0);for(q=0;q<=D;++q)J.add(Y[q].multiplyScalar(H[q]));J.divideScalar(J.w),b.set(J.x,J.y,J.z)}};var Stats=function(){function u(_){return p.appendChild(_.dom),_}function D(_){for(var H=0;H<p.children.length;H++)p.children[H].style.display=H===_?"block":"none";v=_}var v=0,p=document.createElement("div");p.style.cssText="position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000",p.addEventListener("click",function(_){_.preventDefault(),D(++v%p.children.length)},!1);var s=(performance||Date).now(),j=s,k=0,b=u(new Stats.Panel("FPS","#0ff","#002")),B=u(new Stats.Panel("MS","#0f0","#020"));if(self.performance&&self.performance.memory)var V=u(new Stats.Panel("MB","#f08","#201"));return D(0),{REVISION:16,dom:p,addPanel:u,showPanel:D,begin:function(){s=(performance||Date).now()},end:function(){k++;var _=(performance||Date).now();if(B.update(_-s,200),_>j+1e3&&(b.update(1e3*k/(_-j),100),j=_,k=0,V)){var H=performance.memory;V.update(H.usedJSHeapSize/1048576,H.jsHeapSizeLimit/1048576)}return _},update:function(){s=this.end()},domElement:p,setMode:D}};Stats.Panel=function(u,D,v){var p=1/0,s=0,j=Math.round,k=j(window.devicePixelRatio||1),b=80*k,B=48*k,V=3*k,_=2*k,H=3*k,Y=15*k,q=74*k,it=30*k,vt=document.createElement("canvas");vt.width=b,vt.height=B,vt.style.cssText="width:80px;height:48px";var at=vt.getContext("2d");return at.font="bold "+9*k+"px Helvetica,Arial,sans-serif",at.textBaseline="top",at.fillStyle=v,at.fillRect(0,0,b,B),at.fillStyle=D,at.fillText(u,V,_),at.fillRect(H,Y,q,it),at.fillStyle=v,at.globalAlpha=.9,at.fillRect(H,Y,q,it),{dom:vt,update:function(J,ht){p=Math.min(p,J),s=Math.max(s,J),at.fillStyle=v,at.globalAlpha=1,at.fillRect(0,0,b,Y),at.fillStyle=D,at.fillText(j(J)+" "+u+" ("+j(p)+"-"+j(s)+")",V,_),at.drawImage(vt,H+k,Y,q-k,it,H,Y,q-k,it),at.fillRect(H+q-k,Y,k,it),at.fillStyle=v,at.globalAlpha=.9,at.fillRect(H+q-k,Y,k,j((1-J/ht)*it))}}},"object"==typeof module&&(module.exports=Stats);var TWEEN=TWEEN||function(){var u=[];return{REVISION:"7",getAll:function(){return u},removeAll:function(){u=[]},add:function(D){u.push(D)},remove:function(D){-1!==(D=u.indexOf(D))&&u.splice(D,1)},update:function(D){if(0===u.length)return!1;var v=0,p=u.length;for(D=void 0!==D?D:Date.now();v<p;)u[v].update(D)?v++:(u.splice(v,1),p--);return!0}}}();TWEEN.Tween=function(u){var D={},v={},p=1e3,s=0,j=null,k=TWEEN.Easing.Linear.None,b=TWEEN.Interpolation.Linear,B=[],V=null,_=!1,H=null,Y=null;this.to=function(q,it){return null!==it&&(p=it),v=q,this},this.start=function(q){for(var it in TWEEN.add(this),_=!1,j=void 0!==q?q:Date.now(),j+=s,v)if(null!==u[it]){if(v[it]instanceof Array){if(0===v[it].length)continue;v[it]=[u[it]].concat(v[it])}D[it]=u[it]}return this},this.stop=function(){return TWEEN.remove(this),this},this.delay=function(q){return s=q,this},this.easing=function(q){return k=q,this},this.interpolation=function(q){return b=q,this},this.chain=function(){return B=arguments,this},this.onStart=function(q){return V=q,this},this.onUpdate=function(q){return H=q,this},this.onComplete=function(q){return Y=q,this},this.update=function(q){if(q<j)return!0;!1===_&&(null!==V&&V.call(u),_=!0);var it,vt,at=k(it=1<(it=(q-j)/p)?1:it);for(vt in D){var J=D[vt],ht=v[vt];u[vt]=ht instanceof Array?b(ht,at):J+(ht-J)*at}if(null!==H&&H.call(u,at),1==it){for(null!==Y&&Y.call(u),it=0,at=B.length;it<at;it++)B[it].start(q);return!1}return!0}},TWEEN.Easing={Linear:{None:function(u){return u}},Quadratic:{In:function(u){return u*u},Out:function(u){return u*(2-u)},InOut:function(u){return 1>(u*=2)?.5*u*u:-.5*(--u*(u-2)-1)}},Cubic:{In:function(u){return u*u*u},Out:function(u){return--u*u*u+1},InOut:function(u){return 1>(u*=2)?.5*u*u*u:.5*((u-=2)*u*u+2)}},Quartic:{In:function(u){return u*u*u*u},Out:function(u){return 1- --u*u*u*u},InOut:function(u){return 1>(u*=2)?.5*u*u*u*u:-.5*((u-=2)*u*u*u-2)}},Quintic:{In:function(u){return u*u*u*u*u},Out:function(u){return--u*u*u*u*u+1},InOut:function(u){return 1>(u*=2)?.5*u*u*u*u*u:.5*((u-=2)*u*u*u*u+2)}},Sinusoidal:{In:function(u){return 1-Math.cos(u*Math.PI/2)},Out:function(u){return Math.sin(u*Math.PI/2)},InOut:function(u){return.5*(1-Math.cos(Math.PI*u))}},Exponential:{In:function(u){return 0===u?0:Math.pow(1024,u-1)},Out:function(u){return 1===u?1:1-Math.pow(2,-10*u)},InOut:function(u){return 0===u?0:1===u?1:1>(u*=2)?.5*Math.pow(1024,u-1):.5*(2-Math.pow(2,-10*(u-1)))}},Circular:{In:function(u){return 1-Math.sqrt(1-u*u)},Out:function(u){return Math.sqrt(1- --u*u)},InOut:function(u){return 1>(u*=2)?-.5*(Math.sqrt(1-u*u)-1):.5*(Math.sqrt(1-(u-=2)*u)+1)}},Elastic:{In:function(u){var D,v=.1;return 0===u?0:1===u?1:(!v||1>
1v?(v=1,D=.1):D=.4*Math.asin(1/v)/(2*Math.PI),-v*Math.pow(2,10*(u-=1))*Math.sin(2*(u-D)*Math.PI/.4))},Out:function(u){var D,v=.1;return 0===u?0:1===u?1:(!v||1>v?(v=1,D=.1):D=.4*Math.asin(1/v)/(2*Math.PI),v*Math.pow(2,-10*u)*Math.sin(2*(u-D)*Math.PI/.4)+1)},InOut:function(u){var D,v=.1;return 0===u?0:1===u?1:(!v||1>v?(v=1,D=.1):D=.4*Math.asin(1/v)/(2*Math.PI),1>(u*=2)?-.5*v*Math.pow(2,10*(u-=1))*Math.sin(2*(u-D)*Math.PI/.4):.5*v*Math.pow(2,-10*(u-=1))*Math.sin(2*(u-D)*Math.PI/.4)+1)}},Back:{In:function(u){return u*u*(2.70158*u-1.70158)},Out:function(u){return--u*u*(2.70158*u+1.70158)+1},InOut:function(u){return 1>(u*=2)?.5*u*u*(3.5949095*u-2.5949095):.5*((u-=2)*u*(3.5949095*u+2.5949095)+2)}},Bounce:{In:function(u){return 1-TWEEN.Easing.Bounce.Out(1-u)},Out:function(u){return u<1/2.75?7.5625*u*u:u<2/2.75?7.5625*(u-=1.5/2.75)*u+.75:u<2.5/2.75?7.5625*(u-=2.25/2.75)*u+.9375:7.5625*(u-=2.625/2.75)*u+.984375},InOut:function(u){return.5>u?.5*TWEEN.Easing.Bounce.In(2*u):.5*TWEEN.Easing.Bounce.Out(2*u-1)+.5}}},TWEEN.Interpolation={Linear:function(u,D){var v=u.length-1,p=v*D,s=Math.floor(p),j=TWEEN.Interpolation.Utils.Linear;return 0>D?j(u[0],u[1],p):1<D?j(u[v],u[v-1],v-p):j(u[s],u[s+1>v?v:s+1],p-s)},Bezier:function(u,D){var v,p=0,s=u.length-1,j=Math.pow,k=TWEEN.Interpolation.Utils.Bernstein;for(v=0;v<=s;v++)p+=j(1-D,s-v)*j(D,v)*u[v]*k(s,v);return p},CatmullRom:function(u,D){var v=u.length-1,p=v*D,s=Math.floor(p),j=TWEEN.Interpolation.Utils.CatmullRom;return u[0]===u[v]?(0>D&&(s=Math.floor(p=v*(1+D))),j(u[(s-1+v)%v],u[s],u[(s+1)%v],u[(s+2)%v],p-s)):0>D?u[0]-(j(u[0],u[0],u[1],u[1],-p)-u[0]):1<D?u[v]-(j(u[v],u[v],u[v-1],u[v-1],p-v)-u[v]):j(u[s?s-1:0],u[s],u[v<s+1?v:s+1],u[v<s+2?v:s+2],p-s)},Utils:{Linear:function(u,D,v){return(D-u)*v+u},Bernstein:function(u,D){var v=TWEEN.Interpolation.Utils.Factorial;return v(u)/v(D)/v(u-D)},Factorial:function(){var u=[1];return function(D){var v,p=1;if(u[D])return u[D];for(v=D;1<v;v--)p*=v;return u[D]=p}}(),CatmullRom:function(u,D,v,p,s){var j=s*s;return(2*D-2*v+(u=.5*(v-u))+(p=.5*(p-D)))*s*j+(-3*D+3*v-2*u-p)*j+u*s+D}}},THREE.PMREMGenerator=function(u,D,v){this.sourceTexture=u,this.resolution=void 0!==v?v:256,this.samplesPerLevel=void 0!==D?D:16;var p=u.encoding===THREE.LinearEncoding||u.encoding===THREE.GammaEncoding||u.encoding===THREE.sRGBEncoding;this.sourceTexture.minFilter=p?THREE.LinearFilter:THREE.NearestFilter,this.sourceTexture.magFilter=p?THREE.LinearFilter:THREE.NearestFilter,this.sourceTexture.generateMipmaps=this.sourceTexture.generateMipmaps&&p,this.cubeLods=[];var s=this.resolution,j={format:this.sourceTexture.format,magFilter:this.sourceTexture.magFilter,minFilter:this.sourceTexture.minFilter,type:this.sourceTexture.type,generateMipmaps:this.sourceTexture.generateMipmaps,anisotropy:this.sourceTexture.anisotropy,encoding:this.sourceTexture.encoding};this.numLods=Math.log(s)/Math.log(2)-2;for(var k=0;k<this.numLods;k++){var b=new THREE.WebGLRenderTargetCube(s,s,j);b.texture.name="PMREMGenerator.cube"+k,this.cubeLods.push(b),s=Math.max(16,s/2)}this.camera=new THREE.OrthographicCamera(-1,1,1,-1,0,1e3),this.shader=this.getShader(),this.shader.defines.SAMPLES_PER_LEVEL=this.samplesPerLevel,this.planeMesh=new THREE.Mesh(new THREE.PlaneBufferGeometry(2,2,0),this.shader),this.planeMesh.material.side=THREE.DoubleSide,this.scene=new THREE.Scene,this.scene.add(this.planeMesh),this.scene.add(this.camera),this.shader.uniforms.envMap.value=this.sourceTexture,this.shader.envMap=this.sourceTexture},THREE.PMREMGenerator.prototype={constructor:THREE.PMREMGenerator,update:function(u){this.shader.uniforms.envMap.value=this.sourceTexture,this.shader.envMap=this.sourceTexture;var D=u.gammaInput,v=u.gammaOutput,p=u.toneMapping,s=u.toneMappingExposure,j=u.getRenderTarget();u.toneMapping=THREE.LinearToneMapping,u.toneMappingExposure=1,u.gammaInput=!1,u.gammaOutput=!1;for(var k=0;k<this.numLods;k++)this.shader.uniforms.roughness.value=k/(this.numLods-1)*.9,this.shader.uniforms.queryScale.value.x=0==k?-1:1,this.shader.uniforms.mapSize.value=this.cubeLods[k].width,this.renderToCubeMapTarget(u,this.cubeLods[k]),k<5&&(this.shader.uniforms.envMap.value=this.cubeLods[k].texture);u.setRenderTarget(j),u.toneMapping=p,u.toneMappingExposure=s,u.gammaInput=D,u.gammaOutput=v},renderToCubeMapTarget:function(u,D){for(var v=0;v<6;v++)this.renderToCubeMapTargetFace(u,D,v)},renderToCubeMapTargetFace:function(u,D,v){D.activeCubeFace=v,this.shader.uniforms.faceIndex.value=v,u.render(this.scene,this.camera,D,!0)},getShader:function(){var u=new THREE.ShaderMaterial({defines:{SAMPLES_PER_LEVEL:20},uniforms:{faceIndex:{value:0},roughness:{value:.5},mapSize:{value:.5},envMap:{value:null},queryScale:{value:new THREE.Vector3(1,1,1)}
1,testColor:{value:new THREE.Vector3(1,1,1)}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"#include <common>\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform int faceIndex;\n\t\t\t\tuniform float roughness;\n\t\t\t\tuniform samplerCube envMap;\n\t\t\t\tuniform float mapSize;\n\t\t\t\tuniform vec3 testColor;\n\t\t\t\tuniform vec3 queryScale;\n\t\t\t\t\n\t\t\t\tfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\t\t\t\t\tfloat a = ggxRoughness + 0.0001;\n\t\t\t\t\ta *= a;\n\t\t\t\t\treturn ( 2.0 / a - 2.0 );\n\t\t\t\t}\n\t\t\t\tvec3 ImportanceSamplePhong(vec2 uv, mat3 vecSpace, float specPow) {\n\t\t\t\t\tfloat phi = uv.y * 2.0 * PI;\n\t\t\t\t\tfloat cosTheta = pow(1.0 - uv.x, 1.0 / (specPow + 1.0));\n\t\t\t\t\tfloat sinTheta = sqrt(1.0 - cosTheta * cosTheta);\n\t\t\t\t\tvec3 sampleDir = vec3(cos(phi) * sinTheta, sin(phi) * sinTheta, cosTheta);\n\t\t\t\t\treturn vecSpace * sampleDir;\n\t\t\t\t}\n\t\t\t\tvec3 ImportanceSampleGGX( vec2 uv, mat3 vecSpace, float Roughness )\n\t\t\t\t{\n\t\t\t\t\tfloat a = Roughness * Roughness;\n\t\t\t\t\tfloat Phi = 2.0 * PI * uv.x;\n\t\t\t\t\tfloat CosTheta = sqrt( (1.0 - uv.y) / ( 1.0 + (a*a - 1.0) * uv.y ) );\n\t\t\t\t\tfloat SinTheta = sqrt( 1.0 - CosTheta * CosTheta );\n\t\t\t\t\treturn vecSpace * vec3(SinTheta * cos( Phi ), SinTheta * sin( Phi ), CosTheta);\n\t\t\t\t}\n\t\t\t\tmat3 matrixFromVector(vec3 n) {\n\t\t\t\t\tfloat a = 1.0 / (1.0 + n.z);\n\t\t\t\t\tfloat b = -n.x * n.y * a;\n\t\t\t\t\tvec3 b1 = vec3(1.0 - n.x * n.x * a, b, -n.x);\n\t\t\t\t\tvec3 b2 = vec3(b, 1.0 - n.y * n.y * a, -n.y);\n\t\t\t\t\treturn mat3(b1, b2, n);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tvec4 testColorMap(float Roughness) {\n\t\t\t\t\tvec4 color;\n\t\t\t\t\tif(faceIndex == 0)\n\t\t\t\t\t\tcolor = vec4(1.0,0.0,0.0,1.0);\n\t\t\t\t\telse if(faceIndex == 1)\n\t\t\t\t\t\tcolor = vec4(0.0,1.0,0.0,1.0);\n\t\t\t\t\telse if(faceIndex == 2)\n\t\t\t\t\t\tcolor = vec4(0.0,0.0,1.0,1.0);\n\t\t\t\t\telse if(faceIndex == 3)\n\t\t\t\t\t\tcolor = vec4(1.0,1.0,0.0,1.0);\n\t\t\t\t\telse if(faceIndex == 4)\n\t\t\t\t\t\tcolor = vec4(0.0,1.0,1.0,1.0);\n\t\t\t\t\telse\n\t\t\t\t\t\tcolor = vec4(1.0,0.0,1.0,1.0);\n\t\t\t\t\tcolor *= ( 1.0 - Roughness );\n\t\t\t\t\treturn color;\n\t\t\t\t}\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec3 sampleDirection;\n\t\t\t\t\tvec2 uv = vUv*2.0 - 1.0;\n\t\t\t\t\tfloat offset = -1.0/mapSize;\n\t\t\t\t\tconst float a = -1.0;\n\t\t\t\t\tconst float b = 1.0;\n\t\t\t\t\tfloat c = -1.0 + offset;\n\t\t\t\t\tfloat d = 1.0 - offset;\n\t\t\t\t\tfloat bminusa = b - a;\n\t\t\t\t\tuv.x = (uv.x - a)/bminusa * d - (uv.x - b)/bminusa * c;\n\t\t\t\t\tuv.y = (uv.y - a)/bminusa * d - (uv.y - b)/bminusa * c;\n\t\t\t\t\tif (faceIndex==0) {\n\t\t\t\t\t\tsampleDirection = vec3(1.0, -uv.y, -uv.x);\n\t\t\t\t\t} else if (faceIndex==1) {\n\t\t\t\t\t\tsampleDirection = vec3(-1.0, -uv.y, uv.x);\n\t\t\t\t\t} else if (faceIndex==2) {\n\t\t\t\t\t\tsampleDirection = vec3(uv.x, 1.0, uv.y);\n\t\t\t\t\t} else if (faceIndex==3) {\n\t\t\t\t\t\tsampleDirection = vec3(uv.x, -1.0, -uv.y);\n\t\t\t\t\t} else if (faceIndex==4) {\n\t\t\t\t\t\tsampleDirection = vec3(uv.x, -uv.y, 1.0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsampleDirection = vec3(-uv.x, -uv.y, -1.0);\n\t\t\t\t\t}\n\t\t\t\t\tmat3 vecSpace = matrixFromVector(normalize(sampleDirection * queryScale));\n\t\t\t\t\tvec3 rgbColor = vec3(0.0);\n\t\t\t\t\tconst int NumSamples = SAMPLES_PER_LEVEL;\n\t\t\t\t\tvec3 vect;\n\t\t\t\t\tfloat weight = 0.0;\n\t\t\t\t\tfor( int i = 0; i < NumSamples; i ++ ) {\n\t\t\t\t\t\tfloat sini = sin(float(i));\n\t\t\t\t\t\tfloat cosi = cos(float(i));\n\t\t\t\t\t\tfloat r = rand(vec2(sini, cosi));\n\t\t\t\t\t\tvect = ImportanceSampleGGX(vec2(float(i) / float(NumSamples), r), vecSpace, roughness);\n\t\t\t\t\t\tfloat dotProd = dot(vect, normalize(sampleDirection));\n\t\t\t\t\t\tweight += dotProd;\n\t\t\t\t\t\tvec3 color = envMapTexelToLinear(textureCube(envMap,vect)).rgb;\n\t\t\t\t\t\trgbColor.rgb += color;\n\t\t\t\t\t}\n\t\t\t\t\trgbColor /= float(NumSamples);\n\t\t\t\t\t//rgbColor = testColorMap( roughness ).rgb;\n\t\t\t\t\tgl_FragColor = linearToOutputTexel( vec4( rgbColor, 1.0 ) );\n\t\t\t\t}",blending:THREE.NoBlending});return u.type="PMREMGenerator",u},dispose:function(){for(var u=0,D=this.cubeLods.length;u<D;u++)this.cubeLods[u].dispose();this.planeMesh.geometry.dispose(),this.planeMesh.material.dispose()}},THREE.PMREMCubeUVPacker=function(u){this.cubeLods=u;var D=4*u[0].width,v=u[0].texture,p={format:v.format,magFilter:v.magFilter,minFilter:v.minFilter,type:v.type,generateMipmaps:v.generateMipmaps,anisotropy:v.anisotropy,encoding:v.encoding===THREE.RGBEEncoding?THREE.RGBM16Encoding:v.encoding};p.encoding===THREE.RGBM16Encoding&&(p.magFilter=THREE.LinearFilter,p.minFilter=THREE.LinearFilter),this.CubeUVRenderTarget=new THREE.WebGLRenderTarget(D,D,p),this.CubeUVRenderTarget.texture.name="PMREMCubeUVPacker.cubeUv",this.CubeUVRenderTarget.texture.mapping=THREE.CubeUVReflectionMapping,this.camera=new THREE.Orthogra
1phicCamera(.5*-D,.5*D,.5*-D,.5*D,0,1),this.scene=new THREE.Scene,this.objects=[];var s=new THREE.PlaneBufferGeometry(1,1),j=[];j.push(new THREE.Vector2(0,0)),j.push(new THREE.Vector2(1,0)),j.push(new THREE.Vector2(2,0)),j.push(new THREE.Vector2(0,1)),j.push(new THREE.Vector2(1,1)),j.push(new THREE.Vector2(2,1));var k=D;D=u[0].width;var b=0,B=4;this.numLods=Math.log(u[0].width)/Math.log(2)-2;for(var V=0;V<this.numLods;V++){var _=.5*(k-k/B);D>16&&(B*=2);for(var H=D>16?6:1,Y=0,q=0,it=D,vt=0;vt<H;vt++){for(var at=0;at<6;at++){var J=this.getShader();J.uniforms.envMap.value=this.cubeLods[V].texture,J.envMap=this.cubeLods[V].texture,J.uniforms.faceIndex.value=at,J.uniforms.mapSize.value=it;var ht=new THREE.Mesh(s,J);ht.position.x=j[at].x*it-_+Y,ht.position.y=j[at].y*it-_+b+q,ht.material.side=THREE.BackSide,ht.scale.setScalar(it),this.scene.add(ht),this.objects.push(ht)}q+=1.75*it,Y+=1.25*it,it/=2}b+=2*D,D>16&&(D/=2)}},THREE.PMREMCubeUVPacker.prototype={constructor:THREE.PMREMCubeUVPacker,update:function(u){var D=u.gammaInput,v=u.gammaOutput,p=u.toneMapping,s=u.toneMappingExposure,j=u.getRenderTarget();u.gammaInput=!1,u.gammaOutput=!1,u.toneMapping=THREE.LinearToneMapping,u.toneMappingExposure=1,u.render(this.scene,this.camera,this.CubeUVRenderTarget,!1),u.setRenderTarget(j),u.toneMapping=p,u.toneMappingExposure=s,u.gammaInput=D,u.gammaOutput=v},getShader:function(){var u=new THREE.ShaderMaterial({uniforms:{faceIndex:{value:0},mapSize:{value:0},envMap:{value:null},testColor:{value:new THREE.Vector3(1,1,1)}},vertexShader:"precision highp float;\t\t\t\tvarying vec2 vUv;\t\t\t\tvoid main() {\t\t\t\t\tvUv = uv;\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\t\t\t\t}",fragmentShader:"precision highp float;\t\t\t\tvarying vec2 vUv;\t\t\t\tuniform samplerCube envMap;\t\t\t\tuniform float mapSize;\t\t\t\tuniform vec3 testColor;\t\t\t\tuniform int faceIndex;\t\t\t\t\t\t\t\tvoid main() {\t\t\t\t\tvec3 sampleDirection;\t\t\t\t\tvec2 uv = vUv;\t\t\t\t\tuv = uv * 2.0 - 1.0;\t\t\t\t\tuv.y *= -1.0;\t\t\t\t\tif(faceIndex == 0) {\t\t\t\t\t\tsampleDirection = normalize(vec3(1.0, uv.y, -uv.x));\t\t\t\t\t} else if(faceIndex == 1) {\t\t\t\t\t\tsampleDirection = normalize(vec3(uv.x, 1.0, uv.y));\t\t\t\t\t} else if(faceIndex == 2) {\t\t\t\t\t\tsampleDirection = normalize(vec3(uv.x, uv.y, 1.0));\t\t\t\t\t} else if(faceIndex == 3) {\t\t\t\t\t\tsampleDirection = normalize(vec3(-1.0, uv.y, uv.x));\t\t\t\t\t} else if(faceIndex == 4) {\t\t\t\t\t\tsampleDirection = normalize(vec3(uv.x, -1.0, -uv.y));\t\t\t\t\t} else {\t\t\t\t\t\tsampleDirection = normalize(vec3(-uv.x, uv.y, -1.0));\t\t\t\t\t}\t\t\t\t\tvec4 color = envMapTexelToLinear( textureCube( envMap, sampleDirection ) );\t\t\t\t\tgl_FragColor = linearToOutputTexel( color );\t\t\t\t}",blending:THREE.NoBlending});return u.type="PMREMCubeUVPacker",u},dispose:function(){for(var u=0,D=this.objects.length;u<D;u++)this.objects[u].material.dispose();this.objects[0].geometry.dispose()}},(self.webpackChunkwidgets=self.webpackChunkwidgets||[]).push([[179],{8017:(u,D,v)=>{v.d(D,{z:()=>k});var p=v(6026),s=v(6435),j=v(520);let k=(()=>{class b{constructor(V){this.http=V}getProfileLastScan(V){return this.http.post(p.N.url+"/check_profile",{profile_email:V})}getScore(V,_,H){return Array.isArray(H)||(H=[H]),this.http.post(p.N.url+"/shoeid_em_fgscores",{domain:_,profile_email:V,skus:H})}getShoesize(V,_,H){return this.http.post(p.N.url+"/fetch_profile_shoesize",{domain:_,profile_email:V,skus:H})}}return b.\u0275fac=function(B){return new(B||b)(s.LFG(j.eN))},b.\u0275prov=s.Yz7({token:b,factory:b.\u0275fac}),b})()},545:(u,D,v)=>{v.d(D,{F:()=>vt});var p=v(5683),s=v(6435),j=v(8017),k=v(7688),b=v(9808),B=v(7093),V=v(3322),_=v(8231);function H(at,J){if(1&at){const ht=s.EpF();s.TgZ(0,"div",5),s.TgZ(1,"div",6),s._UZ(2,"app-threedfeetmodule",7),s.qZA(),s.TgZ(3,"div",8),s.TgZ(4,"div",9),s._uU(5,"Your 3D Foot Profile"),s.qZA(),s.TgZ(6,"div",10),s.TgZ(7,"div",11),s._UZ(8,"div",12),s.qZA(),s.TgZ(9,"div",13),s.TgZ(10,"div"),s._uU(11,"CM"),s.qZA(),s.qZA(),s.TgZ(12,"div",13),s.TgZ(13,"div"),s._uU(14,"Percentile"),s.qZA(),s.qZA(),s.qZA(),s.TgZ(15,"div",14),s.TgZ(16,"div",11),s.TgZ(17,"div",12),s._uU(18,"Length"),s.qZA(),s.TgZ(19,"div",12),s._uU(20,"Width"),s.qZA(),s.TgZ(21,"div",12),s._uU(22,"Instep"),s.qZA(),s.TgZ(23,"div",12),s._uU(24,"Girth"),s.qZA(),s.qZA(),s.TgZ(25,"div",15),s.TgZ(26,"div",12),s._uU(27),s.ALo(28,"number"),s.qZA(),s.TgZ(29,"div",12),s._uU(30),s.ALo(31,"number"),s.qZA(),s.TgZ(32,"div",12),s._uU(33),s.ALo(34,"number"),s.qZA(),s.TgZ(35,"div",12),s._uU(36),s.ALo(37,"number"),s.qZA(),s.qZA(),s.TgZ(38,"div",15),s.TgZ(39,"div",12),s._uU(40),s.qZA(),s.TgZ(41,"div",12),s._uU(42),s.qZA(),s.TgZ(43,"div",12),s._uU(44),s.qZA(),s.TgZ(45,"div",12),s._uU(46),s.qZA(),s.qZA(),s.qZA(),s.TgZ(47,"div",16),s.TgZ(48,"div",17),s.NdJ("
1click",function(){return s.CHM(ht),s.oxw(2).selectFoot("leftfoot")}),s._uU(49," Left Foot"),s.qZA(),s.TgZ(50,"div",17),s.NdJ("click",function(){return s.CHM(ht),s.oxw(2).selectFoot("rightfoot")}),s._uU(51,"Right Foot"),s.qZA(),s.qZA(),s.qZA(),s.qZA()}if(2&at){const ht=s.oxw(2);s.xp6(2),s.Q6J("lfoot",ht.footData.leftfoot.objurl)("rfoot",ht.footData.leftfoot.objurl),s.xp6(25),s.Oqu(s.xi3(28,14,ht.selectedFootData.length,"1.1-1")),s.xp6(3),s.Oqu(s.xi3(31,17,ht.selectedFootData.width,"1.1-1")),s.xp6(3),s.Oqu(s.xi3(34,20,ht.selectedFootData.instep,"1.1-1")),s.xp6(3),s.Oqu(s.xi3(37,23,ht.selectedFootData.girth,"1.1-1")),s.xp6(4),s.Oqu(ht.selectedFootData.lengthPercentile),s.xp6(2),s.Oqu(ht.selectedFootData.widthPercentile),s.xp6(2),s.Oqu(ht.selectedFootData.instepPercentile),s.xp6(2),s.Oqu(ht.selectedFootData.girthPercentile),s.xp6(2),s.ekj("selected","rightfoot"===ht.selectedFoot),s.xp6(2),s.ekj("selected","leftfoot"===ht.selectedFoot)}}function Y(at,J){if(1&at){const ht=s.EpF();s.TgZ(0,"div",18),s.TgZ(1,"div",19),s.TgZ(2,"div",20),s._uU(3,"Your 3D Foot Profile"),s.qZA(),s._UZ(4,"app-threedfeetmodule",7),s.qZA(),s.TgZ(5,"div",21),s.TgZ(6,"div",10),s.TgZ(7,"div",11),s._UZ(8,"div",12),s.qZA(),s.TgZ(9,"div",13),s.TgZ(10,"div"),s._uU(11,"CM"),s.qZA(),s.qZA(),s.TgZ(12,"div",13),s.TgZ(13,"div"),s._uU(14,"Percentile"),s.qZA(),s.qZA(),s.qZA(),s.TgZ(15,"div",14),s.TgZ(16,"div",11),s.TgZ(17,"div",12),s._uU(18,"Length"),s.qZA(),s.TgZ(19,"div",12),s._uU(20,"Width"),s.qZA(),s.TgZ(21,"div",12),s._uU(22,"Instep"),s.qZA(),s.TgZ(23,"div",12),s._uU(24,"Girth"),s.qZA(),s.qZA(),s.TgZ(25,"div",15),s.TgZ(26,"div",12),s._uU(27),s.ALo(28,"number"),s.qZA(),s.TgZ(29,"div",12),s._uU(30),s.ALo(31,"number"),s.qZA(),s.TgZ(32,"div",12),s._uU(33),s.ALo(34,"number"),s.qZA(),s.TgZ(35,"div",12),s._uU(36),s.ALo(37,"number"),s.qZA(),s.qZA(),s.TgZ(38,"div",15),s.TgZ(39,"div",12),s._uU(40),s.qZA(),s.TgZ(41,"div",12),s._uU(42),s.qZA(),s.TgZ(43,"div",12),s._uU(44),s.qZA(),s.TgZ(45,"div",12),s._uU(46),s.qZA(),s.qZA(),s.qZA(),s.TgZ(47,"div",16),s.TgZ(48,"div",17),s.NdJ("click",function(){return s.CHM(ht),s.oxw(2).selectFoot("leftfoot")}),s._uU(49," Left Foot"),s.qZA(),s.TgZ(50,"div",17),s.NdJ("click",function(){return s.CHM(ht),s.oxw(2).selectFoot("rightfoot")}),s._uU(51,"Right Foot"),s.qZA(),s.qZA(),s.qZA(),s.qZA()}if(2&at){const ht=s.oxw(2);s.xp6(4),s.Q6J("lfoot",ht.footData.leftfoot.objurl)("rfoot",ht.footData.leftfoot.objurl),s.xp6(23),s.Oqu(s.xi3(28,14,ht.selectedFootData.length,"1.1-1")),s.xp6(3),s.Oqu(s.xi3(31,17,ht.selectedFootData.width,"1.1-1")),s.xp6(3),s.Oqu(s.xi3(34,20,ht.selectedFootData.instep,"1.1-1")),s.xp6(3),s.Oqu(s.xi3(37,23,ht.selectedFootData.girth,"1.1-1")),s.xp6(4),s.Oqu(ht.selectedFootData.lengthPercentile),s.xp6(2),s.Oqu(ht.selectedFootData.widthPercentile),s.xp6(2),s.Oqu(ht.selectedFootData.instepPercentile),s.xp6(2),s.Oqu(ht.selectedFootData.girthPercentile),s.xp6(2),s.ekj("selected","rightfoot"===ht.selectedFoot),s.xp6(2),s.ekj("selected","leftfoot"===ht.selectedFoot)}}function q(at,J){if(1&at){const ht=s.EpF();s.TgZ(0,"div"),s.TgZ(1,"div",22),s.TgZ(2,"div",23),s.TgZ(3,"span"),s.TgZ(4,"b"),s._uU(5,"Fit Genius"),s.qZA(),s._uU(6," Recommended Size for this style "),s.TgZ(7,"span",24),s._uU(8),s.qZA(),s.qZA(),s.TgZ(9,"span",25),s.NdJ("click",function(){return s.CHM(ht),s.oxw(2).openDialog()}),s.qZA(),s.qZA(),s.TgZ(10,"div",26),s.TgZ(11,"div",27),s.NdJ("click",function(){return s.CHM(ht),s.oxw(2).openDialog()}),s._uU(12,"Why is this size being recommended for me?"),s.qZA(),s.qZA(),s.qZA(),s.qZA()}if(2&at){const ht=s.oxw(2);s.xp6(8),s.hij(" US ",ht.recommended_shoe_size,"")}}function it(at,J){if(1&at&&(s.TgZ(0,"div",1),s.YNc(1,H,52,26,"div",2),s.YNc(2,Y,52,26,"div",3),s.YNc(3,q,13,1,"div",4),s.qZA()),2&at){const ht=s.oxw();s.xp6(1),s.Q6J("ngIf",ht.showRecommendationInfo),s.xp6(1),s.Q6J("ngIf",!ht.showRecommendationInfo),s.xp6(1),s.Q6J("ngIf",ht.showRecommendationInfo)}}let vt=(()=>{class at{constructor(ht,m){this.appService=ht,this.dialog=m,this.user="3eca8f3390f700a35b54a0e40bbbf6cf",this.showRecommendationInfo=!0,this.domain="aetrex",this.sku="AE683W",this.selectedFoot="leftfoot"}ngOnInit(){this.appService.getShoesize(this.user,this.domain,this.sku).subscribe(ht=>{ht&&ht.footdata&&(this.recommended_shoe_size=ht.recommended_shoe_size,this.footData=ht.footdata,this.selectFoot(this.selectedFoot))})}selectFoot(ht){this.selectedFoot=ht,this.selectedFootData=this.footData[ht]}openDialog(){this.dialog.open(p.O,{data:{user:this.user},width:"50%;"})}}return at.\u0275fac=function(J){return new(J||at)(s.Y36(j.z),s.Y36(k.uw))},at.\u0275cmp=s.Xpm({type:at,selectors:[["app-fg-foot-profile"]],inputs:{user:"user",showRecommendationInfo:"showRecommendationInfo",domain:"domain",sku:"sku"},decls:1,vars:1,consts:[["class"," profile-container",4,"ngIf"],[1,"profile-container"],["fxLayout","row wrap","fxFlexFill","","fx
1Hide","","fxShow.gt-md","",4,"ngIf"],["class","mobile-modal","fxLayout","row wrap","fxFlexFill","","fxHide","","fxShow.lt-lg","",4,"ngIf"],[4,"ngIf"],["fxLayout","row wrap","fxFlexFill","","fxHide","","fxShow.gt-md",""],["fxFlex","50%","fxFlex.md","100%","fxFlex.sm","50%","fxFlex.xs","100%",1,"modal-feet",2,"padding","2%"],[3,"lfoot","rfoot"],["fxFlex","50%","fxFlex.md","100%","fxFlex.sm","50%","fxFlex.xs","100%",1,"details"],[1,"title","text-center"],["fxLayout","row",1,"sub-title"],["fxFlex","40%"],[1,"key"],["fxFlex","30%"],["fxLayout","row",1,"size-details"],["fxFlex","30%",1,"text-center"],["fxLayout","row","fxLayoutAlign","space-around",1,"foot-btn"],[1,"foot-btn-toggle",3,"click"],["fxLayout","row wrap","fxFlexFill","","fxHide","","fxShow.lt-lg","",1,"mobile-modal"],["fxFlex","50%","fxFlex.md","100%","fxFlex.sm","100%","fxFlex.xs","100%",1,"modal-feet"],[1,"title","text-center","sub-title"],["fxFlex","50%","fxFlex.md","100%","fxFlex.sm","100%","fxFlex.xs","100%",1,"details"],["fxLayout","row wrap",1,"recommendedSize"],["fxLayout","row wrap","fxFlex","100%"],[1,"size"],["fxHide","","fxShow.gt-md","",1,"aetrex_fitgenius_score_info_icon",3,"click"],["fxFlex","100%","fxLayoutAlign","center","fxHide","","fxShow.lt-lg",""],[1,"aetrex_fitgenius_score_info",3,"click"]],template:function(J,ht){1&J&&s.YNc(0,it,4,3,"div",0),2&J&&s.Q6J("ngIf",ht.selectedFootData)},directives:[b.O5,B.xw,B.s9,V.b8,B.yH,_.z,B.Wh],pipes:[b.JJ],styles:['.profile-container[_ngcontent-%COMP%]{max-width:652px;border-radius:17px 0 0 17px;font: 16px/31px Open Sans}.profile-container[_ngcontent-%COMP%] .modal-feet[_ngcontent-%COMP%]{background-color:#f2f2f2}.profile-container[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:100%;height:100%;max-height:270px}.profile-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%]{letter-spacing:.96px;color:#707070;padding:0;margin-left:auto;margin-right:auto;border-radius:0}.profile-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{letter-spacing:0px;color:#363636;height:38px;background-color:#c8c8c8;line-height:40px;border-radius:0 17px 0 0;font: 600 18px/28px Open Sans}.profile-container[_ngcontent-%COMP%] .sub-title[_ngcontent-%COMP%]{height:26px;font-size:14px;color:#fff;line-height:26px;background-color:#d06263;padding:0% 10%;text-align:center}.profile-container[_ngcontent-%COMP%] .size-details[_ngcontent-%COMP%]{color:#707070;background:#F1F1F1 0% 0% no-repeat padding-box;padding:4% 10%}.profile-container[_ngcontent-%COMP%] .key[_ngcontent-%COMP%]{margin-bottom:5px}.profile-container[_ngcontent-%COMP%] .foot-btn[_ngcontent-%COMP%]{background-color:#c8c8c8;border-radius:0 0 17px}.profile-container[_ngcontent-%COMP%] .foot-btn[_ngcontent-%COMP%] .foot-btn-toggle[_ngcontent-%COMP%]{padding-top:4px}.profile-container[_ngcontent-%COMP%] .text-center[_ngcontent-%COMP%]{text-align:center}.profile-container[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{text-decoration:underline;color:#363636;cursor:pointer}.profile-container[_ngcontent-%COMP%] .recommendedSize[_ngcontent-%COMP%]{margin-top:20px;white-space:nowrap;line-height:20px;display:flex;position:relative;text-transform:none!important;letter-spacing:.5px!important;font-weight:400!important}.profile-container[_ngcontent-%COMP%] .recommendedSize[_ngcontent-%COMP%] .size[_ngcontent-%COMP%]{color:#d60000;font-weight:700;margin-left:8px}.profile-container[_ngcontent-%COMP%] .recommendedSize[_ngcontent-%COMP%] .aetrex_fitgenius_score_info_icon[_ngcontent-%COMP%]{width:23px;height:23px;margin:3px 10px;background-color:#c8c8c8;border-radius:15px;position:relative;top:-6px;cursor:pointer}.profile-container[_ngcontent-%COMP%] .recommendedSize[_ngcontent-%COMP%] .aetrex_fitgenius_score_info_icon[_ngcontent-%COMP%]:after{content:"i";color:#fff;position:absolute;top:2px;left:8.5px;font-family:Times New Roman,Times,serif;font-weight:700;font-size:21px}.profile-container[_ngcontent-%COMP%] .aetrex_fitgenius_score_info[_ngcontent-%COMP%]{background:#838383 0% 0% no-repeat padding-box;border-radius:26px;color:#fff;font: 600 14px/28px Open Sans;padding:4px 8px;text-align:center;margin-top:18px;margin-bottom:18px;
1cursor:pointer}.profile-container[_ngcontent-%COMP%] .mat-dialog-container[_ngcontent-%COMP%]{border-radius:36px}.profile-container[_ngcontent-%COMP%] .mobile-modal[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{border-radius:17px 17px 0 0}.profile-container[_ngcontent-%COMP%] .mobile-modal[_ngcontent-%COMP%] .foot-btn[_ngcontent-%COMP%]{border-radius:0 0 17px 17px}@media only screen and (max-width: 599px){.profile-container[_ngcontent-%COMP%] .profile-container[_ngcontent-%COMP%], .profile-container[_ngcontent-%COMP%] .profile-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{border-radius:0}.profile-container[_ngcontent-%COMP%] .profile-container[_ngcontent-%COMP%] .foot-btn[_ngcontent-%COMP%]{border-radius:0 0 17px 17px}.profile-container[_ngcontent-%COMP%] .modal-feet[_ngcontent-%COMP%]{border-radius:17px 17px 0 0}.profile-container[_ngcontent-%COMP%] .recommendedSize[_ngcontent-%COMP%]{font-size:13px;max-width:min-content}}@media only screen and (min-width: 600px) and (max-width: 959px){.profile-container[_ngcontent-%COMP%] .recommendedSize[_ngcontent-%COMP%]{font-size:14px;max-width:min-content}}@media only screen and (min-width: 960px) and (max-width: 1279px){.profile-container[_ngcontent-%COMP%] .profile-container[_ngcontent-%COMP%], .profile-container[_ngcontent-%COMP%] .profile-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{border-radius:0}.profile-container[_ngcontent-%COMP%] .profile-container[_ngcontent-%COMP%] .foot-btn[_ngcontent-%COMP%]{border-radius:0 0 17px 17px}.profile-container[_ngcontent-%COMP%] .modal-feet[_ngcontent-%COMP%]{border-radius:17px 17px 0 0}.profile-container[_ngcontent-%COMP%] .recommendedSize[_ngcontent-%COMP%]{font-size:14px;max-width:min-content}}@media only screen and (min-width: 1280px) and (max-width: 1920px){.profile-container[_ngcontent-%COMP%] .modal-feet[_ngcontent-%COMP%]{border-radius:16px 0 0 16px}}@media only screen and (min-width: 1921px){.profile-container[_ngcontent-%COMP%] .modal-feet[_ngcontent-%COMP%]{border-radius:16px 0 0 16px}}']}),at})()},9788:(u,D,v)=>{v.r(D),v.d(D,{FgFootProfileModule:()=>it});var p=v(9808),s=v(545),j=v(1171),k=v(110),b=v(2155),B=v(5683),V=v(7688),_=v(6435),H=v(7093),Y=v(3322);const q=[{path:"",component:s.F}];let it=(()=>{class vt{}return vt.\u0275fac=function(at){return new(at||vt)},vt.\u0275mod=_.oAB({type:vt}),vt.\u0275inj=_.cJS({imports:[[p.ez,j.Bz.forChild(q),b.o9,V.Is,k.ThreedfeetmoduleModule]]}),vt})();_.B6R(B.O,[H.xw,s.F,Y.b8],[])},5683:(u,D,v)=>{v.d(D,{O:()=>j});var p=v(7688),s=v(6435);let j=(()=>{class k{constructor(B,V){this.dialogRef=B,this.data=V}ngOnInit(){this.user=this.data.user}closeDialog(){this.dialogRef.close()}}return k.\u0275fac=function(b){return new(b||k)(s.Y36(p.so),s.Y36(p.WI))},k.\u0275cmp=s.Xpm({type:k,selectors:[["app-info"]],decls:16,vars:2,consts:[[1,"info-container"],["fxLayout","row"],[1,"header_button"],[1,"close-icon",3,"click"],[1,"info-content"],[1,"profile-info"],["fxHide","","fxShow.lt-lg","",3,"user","showRecommendationInfo"]],template:function(b,B){1&b&&(s.TgZ(0,"div",0),s.TgZ(1,"div",1),s.TgZ(2,"div",2),s.TgZ(3,"span"),s._uU(4,"Fit Genius"),s.qZA(),s._uU(5," Size Recommendation"),s.qZA(),s.TgZ(6,"div"),s.TgZ(7,"div",3),s.NdJ("click",function(){return B.closeDialog()}),s.qZA(),s.qZA(),s.qZA(),s.TgZ(8,"div",4),s._uU(9," As you may know, some shoes run small, some shoes run big, while others seem to fit truer to your most common shoe size. That\u2019s why most of us have different sized footwear in our closet. "),s._UZ(10,"br"),s._UZ(11,"br"),s._uU(12,"FitGenius uses Artificial Intelligence to help determine how a particular shoe runs, to help you get the right fit the first time. A \u201cFitGenius Size Recommendation\u201d is the size recommendation of that particular footwear style for you. You will most likely have several different sizes recommended to you between the different shoes on this website."),s._UZ(13,"br"),s.qZA(),s.TgZ(14,"div",5),s._UZ(15,"app-fg-foot-profile",6),s.qZA(),s.qZA()),2&b&&(s.xp6(15),s.Q6J("user",B.user)("showRecommendationInfo",!1))},styles:['@charset "UTF-8";.info-container[_ngcontent-%COMP%]{max-height:90vh;padding:3%}.header_button[_ngcontent-%COMP%]{background:#cf6262;border-radius:26px;border:none;vertical-align:middle;text-align:center;font-size:22px;letter-spacing:0px;color:#fff;margin-left:auto;margin-right:auto;width:auto;padding:10px 30px}.info-content[_ngcontent-%COMP%]{padding:5%;font-family:Open Sans,sans-serif;font-size:19px;letter-spacing:.48px;max-width:50vw;text-align:center}.close-icon[_ngcontent-%COMP%]{position:relative;top:-30px}.close-icon[_ngcontent-%COMP%]:after{display:inline-block;content:"\\d7";font-size:36px;cursor:pointer}@media only screen and (max-width: 1279px){.info-container[_ngcontent-%COMP%]{max-height:90vh}.profile-info[_ngcontent-%COMP%]{display:flex;justify-content:center;padding-bottom:10%}.info-content[_ngcontent-%COMP%]{max-width:75vw}}@media only screen and (max-width: 599px){.info-content[_ngcontent-%COMP%]{font-size:14px}.header_button[_ngcontent-%COMP%]{height:100%;font-size:14px;padding:4px 16px}.info-content[_ngcontent-%COMP%]{max-width:95vw}.close-icon[_ngcontent-%COMP%]{position:relative;top:-15px;left:4px}.close-icon[_ngcontent-%COMP%]:after{display:inline-block;content:"\\d7";font-size:24px;
1cursor:pointer}}']}),k})()},7448:(u,D,v)=>{v.d(D,{L:()=>j});var p=v(8929),s=v(6435);let j=(()=>{class k{constructor(){this._Type3D=1,this._Type2D=2,this._currentTypeUpdate=new p.xQ,this._storeName="",this._showLeftFoot=!0,this._showRightFoot=!0,this._showGrid=!0,this.convertPixelsToCm=function(B,V,_){const H=B*V/_/10;return(isFinite(H)?H:0).toFixed(2)}}setDefaults(){this._storeName="Fit2Run Disney",this.defaultScan(),this.defaultPopulation()}get storeName(){return this._storeName}set storeName(B){this._storeName=B}get currentType(){return this._currentType}set currentType(B){this._currentType=B,this._currentTypeUpdate.next(this._currentType)}get pressureImage(){return this._pressureImage}set pressureImage(B){this._pressureImage=B}get currentTypeUpdate(){return this._currentTypeUpdate}set currentTypeUpdate(B){this._currentTypeUpdate=B}get current3DType(){return this._current3DType}set current3DType(B){this._current3DType=B}get current2DType(){return this._current2DType}set current2DType(B){this._current2DType=B}get scan(){return this._scan}set scan(B){this._scan=B}get population(){return this._population}set population(B){this._population=B}get fbxPbject(){return this._fbxPbject}set fbxPbject(B){this._fbxPbject=B}get showLeftFoot(){return this._showLeftFoot}set showLeftFoot(B){this._showLeftFoot=B}get showRightFoot(){return this._showRightFoot}set showRightFoot(B){this._showRightFoot=B}get showGrid(){return this._showGrid}set showGrid(B){this._showGrid=B}defaultPopulation(){this._population={Length:"26.30cm",Width:"9.80cm",DorsalHeight:"6.98cm",ArchHeight:"0.73cm",Girth:"25.20cm",RecommendedShoeSizeUs:"9",RecommendedShoeSizeEu:"43",ArchType:"Medium",MaxWeightTop:"0.028 Kg",MaxWeightBottom:"0.214 Kg",TotalArea:"119cm",PressureDistribution:{Top:"45%",Bottom:"30%"},AverageKgPressure:"0.118 Kg",ArchDepth:"4cm",MetpadRecommended:"Yes"}}defaultScan(){this.setScan({OrthoticCode:"05",LeftLengthMm:263,RightLengthMm:260,LeftWidthMm:98,RightWidthMm:94,ShoeWidth_code:"D",ShoeWidth_description:"M",ShoeSize_us:"9",ShoeSize_eu:"43",PressureMap:"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,35,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,48,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29,30,27,0,0,0,41,33,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,39,37,50,25,0,0,18,19,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,46,24,27,32,16,6,0,8,32,52,41,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,56,52,58,36,0,0,6,18,15,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,27,21,35,34,27,0,0,24,46,59,58,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,62,67,60,39,21,0,0,11,31,21,33,16,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,24,20,38,28,33,0,0,12,50,66,70,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,67,68,58,46,0,0,0,0,0,0,24,25,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,37,27,51,25,0,0,0,0,0,0,36,65,77,70,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,65,57,24,41,0,0,0,0,0,0,8,31,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,29,28,16,0,0,0,0,0,0,0,0,2,53,64,72,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,36,25,14,0,0,0,0,0,0,0,27,15,11,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,20,25,0,0,2,0,0,0,0,0,0,23,47,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,13,20,0,0,0,24,8,17,25,0,31,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,28,30,34,19,50,58,16,0,0,0,0,2,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22,29,34,41,45,51,47,44,43,43,43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,49,38,31,25,45,58,66,59,51,35,11,8,25,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,41,48,50,49,59,62,68,65,63,62,54,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,27,50,58,64,65,75,80,77,63,42,33,29,30,29,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,48,58,65,58,61,69,79,78,77,75,69,60,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,42,60,82,88,93,91,87,83,68,52,42,37,36,28,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,50,59,62,60,67,68,79,84,89,91,91,78,63,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,59,75,90,97,98,97,88,77,63,49,37,35,35,27,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,39,50,56,60,
165,67,65,74,80,89,91,93,87,72,53,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,69,82,93,96,99,98,96,89,69,54,42,32,26,25,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,51,53,50,54,59,62,67,76,87,93,94,94,86,71,57,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,62,76,89,93,98,98,97,93,84,62,47,35,29,24,23,17,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,45,51,51,47,46,51,60,68,82,89,94,95,91,84,73,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,35,67,84,92,96,97,97,94,87,70,50,34,25,25,26,23,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,47,41,42,37,36,52,65,79,87,92,92,91,91,87,89,18,0,0,0,0,0,0,0,0,0,0,0,0,0,49,69,88,94,96,96,95,90,74,56,35,18,14,15,19,23,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,32,33,24,27,34,53,75,84,88,89,88,89,88,81,26,0,0,0,0,0,0,0,0,0,0,0,0,0,26,67,85,92,93,93,90,80,60,38,23,12,10,10,9,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,27,20,17,3,21,44,56,72,80,82,81,84,78,78,8,0,0,0,0,0,0,0,0,0,0,0,0,0,32,60,79,87,89,88,84,70,52,12,2,2,6,5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,27,46,58,66,70,71,76,68,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,65,79,83,84,81,74,56,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,35,47,59,64,66,69,63,61,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,74,81,82,77,66,48,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,42,53,63,65,68,60,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,59,73,73,64,57,41,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,33,51,64,69,63,56,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,53,67,66,60,49,30,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,39,54,63,67,57,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,55,57,56,46,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29,46,61,66,61,51,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,55,65,57,52,57,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,49,60,60,54,42,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,52,65,66,55,44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,49,61,63,56,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,53,65,70,55,45,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,30,52,63,67,58,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,58,66,72,58,41,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,33,52,62,62,56,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,55,61,51,42,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,36,53,63,53,47,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,49,51,46,38,22,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,34,51,58,50,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,45,48,40,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,22,32,43,44,40,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,35,49,44,34,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,30,37,45,40,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,37,48,53,46,35,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,34,39,45,43,38,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,35,51,68,64,55,35,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,50,46,48,48,37,20,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,52,74,83,77,60,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,45,59,67,66,63,54,39,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,64,84,91,92,79,63,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,63,71,79,79,75,59,42,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,65,84,95,99,96,84,69,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,61,74,86,87,82,77,57,36,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,82,88,96,99,100,99,90,74,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,77,90,97,96,88,79,62,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,81,92,98,99,100,100,99,85,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,80,90,98,99,100,96,88,72,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,77,92,98,99,100,100,100,93,76,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,70,85,95,99,100,100,99,94,93,55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,74,93,98,99,100,100,99,97,77,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,35,80,91,97,99,99,99,98,94,87,70,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,76,93,98,99,99,99,99,97,82,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,78,93,97,99,99,99,97,90,72,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,79,93,97,98,99,99,99,97,83,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,80,91,96,98,98,97,95,83,61,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,83,90,95,97,98,98,97,95,82,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,72,88,93,95,96,95,90,78,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,58,87,91,94,95,95,94,90,80,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,63,81,88,91,91,88,82,56,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,75,81,88,90,88,85,81,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,68,76,82,80,75,63,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,65,79,76,75,67,55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,50,77,61,28,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,45,51,36,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0",LeftArch:"Medium",RightArch:"Medium",LeftMT:!0,RightMT:!0,LeftDorsalHeightPx:173,RightDorsalHeightPx:171,LeftArchHeightPx:18,RightArchHeightPx:16,LeftLengthPx:652,RightLengthPx:650,LeftGirthMm:252,RightGirthMm:250,LeftMin:2,RightMin:2,LeftMax:100,RightMax:100,LeftTotal3DFrames:16,RightTotal3DFrames:16,LeftLength3DFrameIndex:4,RightLength3DFrameIndex:12,LeftWidth3DFrameIndex:0,RightWidth3DFrameIndex:0,LeftArchMaxZero1:8,RightArchMaxZero1:10,RightTotalPressureAmount:10,LeftTotalPressureAmount:10,LeftHeelToBallPoint:18,RightHeelToBallPoint:20,LeftHeelToToe:25.5,RightHeelToToe:25.5,LeftTotalArea:119,RightTotalArea:115,LeftTopArea:46,RightTopArea:45,LeftBottomArea:46,RightBottomArea:45,LeftTotalDist:51,RightTotalDist:49,LeftTopDist:46,RightTopDist:45,LeftBottomDist:54,RightBottomDist:56,LeftTotalWholeAverage:2
16094,RightTotalWholeAverage:25075,LeftMaxWeight:.2138,RightMaxWeight:.2052,LeftMaxWeightTopXLoct:21,RightMaxWeightTopXLoct:61,LeftMaxWeightTopYLoct:22,RightMaxWeightTopYLoct:35,LeftMaxWeightTop:.02808,RightMaxWeightTop:.1015,LeftMaxWeightXLoct:12,RightMaxWeightXLoct:59,LeftMaxWeightYLoct:48,RightMaxWeightYLoct:47,LeftMaxWeightBottom:.2138,RightMaxWeightBottom:.2052,LeftAvgWeight:.1184,RightAvgWeight:.1177,ComparisonExist:!0,TreadmillVideos:2,Is2DOnly:!1,FinishUpload:!0,PronationPoints:'{"Left":{"Before":{"top":[{"x":339.7392,"y":38.3144},{"x":445.4728,"y":42.5648},{"x":551.2064,"y":46.8152}],"middle":[{"x":300.0542,"y":204.2215},{"x":423.8423,"y":205.75475},{"x":547.6304,"y":207.288}],"bottom":[{"x":272.6739,"y":403.163},{"x":388.1574,"y":402.0815},{"x":503.6409,"y":401}]},"After":{"top":[{"x":286.4777,"y":56.0217},{"x":399.1842,"y":58.4293},{"x":509.5645,"y":58.5109}],"middle":[{"x":274.6191,"y":211.0106},{"x":394.5919,"y":213.5432},{"x":514.5644,"y":216.0761}],"bottom":[{"x":266.4776,"y":408.3338},{"x":378.7058,"y":411.4438},{"x":488.6077,"y":412.2283}]},"sideBefore":{"top":[{"x":0,"y":11.5},{"x":175.097,"y":320.3152},{"x":0,"y":11.5}],"middle":[{"x":0,"y":11.5},{"x":273.0744,"y":315.9457},{"x":0,"y":11.5}],"bottom":[{"x":0,"y":11.5},{"x":440.6716,"y":338.4564},{"x":0,"y":11.5}]},"sideAfter":{"top":[{"x":0,"y":11.5},{"x":176.2601,"y":317.9892},{"x":0,"y":11.5}],"middle":[{"x":0,"y":11.5},{"x":266.0958,"y":283.3804},{"x":0,"y":11.5}],"bottom":[{"x":0,"y":11.5},{"x":444.161,"y":337.2935},{"x":0,"y":11.5}]}},"Right":{"Before":{"top":[{"x":276.7501,"y":46.3913},{"x":377.8859,"y":49.3858},{"x":479.0217,"y":52.3803}],"middle":[{"x":267.5106,"y":158.3422},{"x":385.26635,"y":174.57325},{"x":503.0221,"y":190.8043}],"bottom":[{"x":319.555,"y":397.6957},{"x":415.77755,"y":398.72825},{"x":512.0001,"y":399.7608}]},"After":{"top":[{"x":261.0764,"y":52.7825},{"x":367.7394,"y":55.9289},{"x":467.4239,"y":56.7491}],"middle":[{"x":241.4129,"y":126.2163},{"x":360.84765,"y":148.89155},{"x":480.2824,"y":171.5668}],"bottom":[{"x":280.6415,"y":392.8528},{"x":379.11475,"y":390.4721},{"x":477.588,"y":388.0914}]},"sideBefore":{"top":[{"x":0,"y":11.5},{"x":523.1405,"y":291.2609},{"x":0,"y":11.5}],"middle":[{"x":0,"y":11.5},{"x":429.5222,"y":290.3804},{"x":0,"y":11.5}],"bottom":[{"x":0,"y":11.5},{"x":254.6534,"y":315.7717},{"x":0,"y":11.5}]},"sideAfter":{"top":[{"x":0,"y":11.5},{"x":580.1302,"y":285.4457},{"x":0,"y":11.5}],"middle":[{"x":0,"y":11.5},{"x":492.3272,"y":253.163},{"x":0,"y":11.5}],"bottom":[{"x":0,"y":11.5},{"x":263.9576,"y":316.9347},{"x":0,"y":11.5}]}}}',LyncoSelectionOptions:'{"mtCombinations":[{"leftMt":false,"rightMt":false,"archCombinations":[{"leftArch":1,"rightArch":1,"lyncoCode":{"code":"20","name":"20: Posted"}},{"leftArch":1,"rightArch":2,"lyncoCode":{"code":"20","name":"20: Posted"}},{"leftArch":1,"rightArch":3,"lyncoCode":{"code":"00","name":"00: Neutral"}},{"leftArch":2,"rightArch":1,"lyncoCode":{"code":"20","name":"20: Posted"}},{"leftArch":2,"rightArch":2,"lyncoCode":{"code":"00","name":"00: Neutral"}},{"leftArch":2,"rightArch":3,"lyncoCode":{"code":"00","name":"00: Neutral"}},{"leftArch":3,"rightArch":1,"lyncoCode":{"code":"00","name":"00: Neutral"}},{"leftArch":3,"rightArch":2,"lyncoCode":{"code":"00","name":"00: Neutral"}},{"leftArch":3,"rightArch":3,"lyncoCode":{"code":"05","name":"05: Metatarsal Pad"}}]},{"leftMt":true,"rightMt":false,"archCombinations":[{"leftArch":1,"rightArch":1,"lyncoCode":{"code":"20","name":"20: Posted"}},{"leftArch":1,"rightArch":2,"lyncoCode":{"code":"20","name":"20: Posted"}},{"leftArch":1,"rightArch":3,"lyncoCode":{"code":"05","name":"05: Metatarsal Pad"}},{"leftArch":2,"rightArch":1,"lyncoCode":{"code":"20","name":"20: Posted"}},{"leftArch":2,"rightArch":2,"lyncoCode":{"code":"00","name":"00: Neutral"}},{"leftArch":2,"rightArch":3,"lyncoCode":{"code":"05","name":"05: Metatarsal Pad"}},{"leftArch":3,"rightArch":1,"lyncoCode":{"code":"00","name":"00: Neutral"}},{"leftArch":3,"rightArch":2,"lyncoCode":{"code":"00","name":"00: Neutral"}},{"leftArch":3,"rightArch":3,"lyncoCode":{"code":"05","name":"05: Metatarsal Pad"}}]},{"leftMt":false,"rightMt":true,"archCombinations":[{"leftArch":1,"rightArch":1,"lyncoCode":{"code":"20","name":"20: Posted"}},{"leftArch":1,"rightArch":2,"lyncoCode":{"code":"20","name":"20: Posted"}},{"leftArch":1,"rightArch":3,"lyncoCode":{"code":"00","name":"00: Neutral"}},{"leftArch":2,"rightArch":1,"lyncoCode":{"code":"20","name":"20: Posted"}},{"leftArch":2,"rightArch":2,"lyncoCode":{"code":"00","name":"00: Neutral"}},{"leftArch":2,"rightArch":3,"lyncoCode":{"code":"00","name":"00: Neutral"}},{"leftArch":3,"rightArch":1,"lyncoCode":{"code":"05","name":"05: Metatarsal Pad"}},{"leftArch":3,"rightArch":2,"lyncoCode":{"code":"05","name":"05: Metatarsal Pad"}},{"leftArch":3,"rightArch":3,"lyncoCode":{"code":"05","name":"05: Metatarsal Pad"}}]},{"leftMt":true,"rightMt":true,"archCombinations":[{"leftArch":1,"rightArch":1,"lyncoCode":{"code":"25","name":"25: Posted & Metatarsal Pad"}},{"leftArch":1,"rightArch":2,"lyncoCode":{"code":"25","name":"25: Posted & Metatarsal Pad"}},{"leftArch":1,"rightArch":3,"lyncoCode":{"code":"05","name":"05: Metatarsal Pad"}},{"leftArch":2,"rightArch":1,"lyncoCode":{"code":"25","name":"25: Posted & Metatarsal Pad"}},{"leftArch":2,"rightArch":2,"lyncoCode":{"code":"05","name":"05: Metatarsal Pad"}},{"leftArch":2,"rightArch":3,"lyncoCode":{"code":"05","name":"05: Metatarsal Pad"}},{"leftArch":3,"rightArch":1,"lyncoCode":{"code":"05","name":"05: Metatarsal Pad"}},{"leftArch":3,"rightArch":2,"lyncoCode":{"code":"05","name":"05: Metatarsal Pad"}},{"leftArch":3,"rightArch":3,"lyncoCode":{"code":"05","name":"05: Metatarsal Pad"}}]}]}',FinalSizeDisplaySize:'{"option":"U.S.","isUS":false,"isEU":true}',Sensitivity:'{"removeNoiseLevel":2,"fixLevel":2,"staticSensitivity":5,"gain":0,"offset":9}',IStepMozaic:'{"insoleSensorsNum":2,"forefootEnable":true,"forefoot":14,"rearfootEnable":true,"rearfoot":15}',StoreID:1304,Gender:"Male",Name:"",Language:"en",CustomerEmail:"[email protected]",TestID:"0000000000000000",OrthoticCategories:'{"lyncho":{"selected":true,"series":[{"name":"L1","description":"Fashion Series","show":false,"order":5},{"name":"L4","description":"Sports Series","show":false,"order":6},{"name":"L5","description":"Dress Series","show":false,"order":4},{"name":"L6","description":"Casual Series","show":true,"order":3,"suffix":"05","$$hashKey":"object:36"}
1,{"name":"L7","description":"Speed Series","show":true,"order":1,"suffix":"05","$$hashKey":"object:34"},{"name":"L8","description":"Train Series","show":true,"order":2,"suffix":"05","$$hashKey":"object:35"},{"name":"L11","description":"Low Profile Series","show":false,"order":7},{"name":"L15","description":"Heritage Series","show":false,"order":8},{"name":"L19","description":"Active Series","show":false,"order":9},{"name":"L22","description":"Memory Foam","show":true,"order":10,"suffix":"05","$$hashKey":"object:37"},{"name":"L24","description":"Customizable","show":false,"order":11}]},"css":{"selected":false,"series":[{"name":"1740","description":"","show":true,"order":0},{"name":"1760","description":"","show":true,"order":0},{"name":"1780","description":"","show":true,"order":0}]}}',PressureImage:"data:image/png;base64,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C3UZ82CJABEgAkSACCgCJNi8EEYSgeqE29/9pNKNRsmEdF+vfGwTnvQjfNGEVapLqtT2OpLqyrBzRSJABIgAESACY4kACfZYntbxOaihiTYggIa76lDyXDSKK9V4JYl1VbC5HhEgAkSACBCB8UaABHu8z+/YH91wBPx4sJBIHw8/vpoIEAEiQASIwLgjQII97mf4ghzfaRBtEusLcjHxMIkAESACRIAIHBMBEuxjAsiXEwEiQASIABEgAkSACBABHwESbF4PRIAIEAEiQASIABEgAkSgRgRIsGsEk5siAkSACBABIkA
1EiAARIAIk2LwGiAARIAJEgAgQASJABIhAjQiQYNcIJjdFBIgAESACRIAIEAEiQARIsHkNEAEiQASIABEgAkSACBCBGhEgwa4RTG6KCBABIkAEiAARIAJEgAiQYPMaIAJEgAgQASJABIgAESACNSJAgl0jmNwUESACRIAIEAEiQASIABEgweY1QASIABEgAkSACBABIkAEakSABLtGMLkpIkAEiAARIAJEgAgQASJAgs1rgAgQASJABIgAESACRIAI1IgACXaNYHJTRIAIEAEiQASIABEgAkSABJvXABEgAkSACBABIkAEiAARqBEBEuwaweSmiAARIAJEgAgQASJABIgACTavASJABIgAESACRIAIEAEiUCMCJNg1gslNEQEiQASIABEgAkSACBABEmxeA0SACBABIkAEiAARIAJEoEYESLBrBJObIgJEgAgQASJABIgAESACJNi8BogAESACRIAIEAEiQASIQI0IkGDXCCY3RQSIABEgAkSACBABIkAESLB5DRABIkAEiAARIAJEgAgQgRoRIMGuEUxuiggQASJABIgAESACRIAIkGDzGiACRIAIEAEiQASIABEgAjUiQIJdI5jcFBEgAkSACBABIkAEiAARIMHmNUAEiAARIAJEgAgQASJABGpEgAS7RjC5KSJABIgAESACRIAIEAEiQILNa4AIEAEiQASIABEgAkSACNSIAAl2jWByU0SACBABIkAEiAARIAJE4P8Be2RwaLseuksAAAAASUVORK5CYII="})}setScan(B){const V={Right:{LengthMm:B.RightLengthMm,WidthMm:B.RightWidthMm,DorsalHeightPx:B.RightDorsalHeightPx,ArchHeightPx:B.RightArchHeightPx,LengthPx:B.RightLengthPx,GirthMm:B.RightGirthMm,Min:B.RightMin,Max:B.RightMax,Total3DFrames:B.RightTotal3DFrames,Length3DFrameIndex:B.RightLength3DFrameIndex,Width3DFrameIndex:B.RightWidth3DFrameIndex},Left:{LengthMm:B.LeftLengthMm,WidthMm:B.LeftWidthMm,DorsalHeightPx:B.LeftDorsalHeightPx,ArchHeightPx:B.LeftArchHeightPx,LengthPx:B.LeftLengthPx,GirthMm:B.LeftGirthMm,Min:B.LeftMin,Max:B.LeftMax,Total3DFrames:B.LeftTotal3DFrames,Length3DFrameIndex:B.LeftLength3DFrameIndex,Width3DFrameIndex:B.LeftWidth3DFrameIndex}},_={right:{Length:V.Right.LengthMm,Width:V.Right.WidthMm,DorsalHeightPx:V.Right.DorsalHeightPx,ArchHeightPx:V.Right.ArchHeightPx,LengthPx:V.Right.LengthPx,GirthMm:V.Right.GirthMm,ArchMaxZero1:B.RightArchMaxZero1,TotalPressureAmount:B.RightTotalPressureAmount,MT:B.RightMT,Arch:B.RightArch}
1,left:{Length:V.Left.LengthMm,Width:V.Left.WidthMm,DorsalHeightPx:V.Left.DorsalHeightPx,ArchHeightPx:V.Left.ArchHeightPx,LengthPx:V.Left.LengthPx,GirthMm:V.Left.GirthMm,ArchMaxZero1:B.LeftArchMaxZero1,TotalPressureAmount:B.LeftTotalPressureAmount,MT:B.LeftMT,Arch:B.LeftArch}},H={left:{HeelToBallPoint:B.LeftHeelToBallPoint,HeelToToe:B.LeftHeelToToe,TotalArea:B.LeftTotalArea,TopArea:B.LeftTopArea,BottomArea:B.LeftBottomArea,TotalDist:B.LeftTotalDist,TopDist:B.LeftTopDist,BottomDist:B.LeftBottomDist,TotalWholeAverage:B.LeftTotalWholeAverage,MaxWeight:B.LeftMaxWeight,MaxWeightTopXLoct:B.LeftMaxWeightTopXLoct,MaxWeightTopYLoct:B.LeftMaxWeightTopYLoct,MaxWeightTop:B.LeftMaxWeightTop,MaxWeightXLoct:B.LeftMaxWeightXLoct,MaxWeightYLoct:B.LeftMaxWeightYLoct,MaxWeightBottom:B.LeftMaxWeightBottom,AvgWeight:B.LeftAvgWeight},right:{HeelToBallPoint:B.RightHeelToBallPoint,HeelToToe:B.RightHeelToToe,TotalArea:B.RightTotalArea,TopArea:B.RightTopArea,BottomArea:B.RightBottomArea,TotalDist:B.RightTotalDist,TopDist:B.RightTopDist,BottomDist:B.RightBottomDist,TotalWholeAverage:B.RightTotalWholeAverage,MaxWeight:B.RightMaxWeight,MaxWeightTopXLoct:B.RightMaxWeightTopXLoct,MaxWeightTopYLoct:B.RightMaxWeightTopYLoct,MaxWeightTop:B.RightMaxWeightTop,MaxWeightXLoct:B.RightMaxWeightXLoct,MaxWeightYLoct:B.RightMaxWeightYLoct,MaxWeightBottom:B.RightMaxWeightBottom,AvgWeight:B.RightAvgWeight}},Y={Left:{Length:(Math.round(_.left.Length/10*100)/100).toFixed(2)+"cm",Width:(Math.round(_.left.Width/10*100)/100).toFixed(2)+"cm",LengthMm:_.left.Length,WidthMm:_.left.Width,DorsalHeight:this.convertPixelsToCm(_.left.Length,_.left.DorsalHeightPx,_.left.LengthPx)+"cm",ArchHeight:this.convertPixelsToCm(_.left.Length,_.left.ArchHeightPx,_.left.LengthPx)+"cm",Girth:(_.left.GirthMm/10).toFixed(2)+"cm",TotalArea:H.left.TotalArea+"cm",PressureDistribution:{Top:H.left.TopDist+"%",Bottom:H.left.BottomDist+"%"},AverageKgPressure:H.left.AvgWeight.toFixed(3)+" Kg",MaxWeightTop:H.left.MaxWeightTop.toFixed(3)+" Kg",MaxWeightBottom:H.left.MaxWeightBottom.toFixed(3)+" Kg",ArchDepth:_.left.ArchMaxZero1/2+"cm",ArchType:_.left.Arch,PronationDegree:"0\xb0",MedialArchDegree:"0\xb0",MetpadRecommended:_.left.MT?"Yes":"No"},Right:{Length:(Math.round(_.right.Length/10*100)/100).toFixed(2)+"cm",Width:(Math.round(_.right.Width/10*100)/100).toFixed(2)+"cm",LengthMm:_.right.Length,WidthMm:_.right.Width,DorsalHeight:this.convertPixelsToCm(_.right.Length,_.right.DorsalHeightPx,_.right.LengthPx)+"cm",ArchHeight:this.convertPixelsToCm(_.right.Length,_.right.ArchHeightPx,_.right.LengthPx)+"cm",Girth:(_.right.GirthMm/10).toFixed(2)+"cm",TotalArea:H.right.TotalArea+"cm",PressureDistribution:{Top:H.right.TopDist+"%",Bottom:H.right.BottomDist+"%"},AverageKgPressure:H.right.AvgWeight.toFixed(3)+" Kg",MaxWeightTop:H.right.MaxWeightTop.toFixed(3)+" Kg",MaxWeightBottom:H.right.MaxWeightBottom.toFixed(3)+" Kg",ArchDepth:_.right.ArchMaxZero1/2+"cm",ArchType:_.right.Arch,PronationDegree:"0\xb0",MedialArchDegree:"0\xb0",MetpadRecommended:_.left.MT?"Yes":"No"},RecommendedShoeSize:{Us:B.ShoeSize_us,Eu:B.ShoeSize_eu},MetpadRecommended:{both:B.OrthoticCode.indexOf("5")>-1?"Yes":"No"}};this._pressureImage=B.PressureImage,this._scan=Y}defaultPressureImage(){this._pressureImage="data:image/png;base64,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HlDFQgQIECAAAECBAgQIECAQLmAAF9OrAMCBAgQIECAAAECBAgQIJAXEODzhioQIECAAAECBAgQIECAAIFyAQG+nFgHBAgQIECAAAECBAgQIEAgLyDA5w1VIECAAAECBAgQIECAAAEC5QICfDmxDggQIECAAAECBAgQIECAQF5AgM8bqkCAAAECBAgQIECAAAECBMoFBPhyYh0QIECAAAECBAgQIECAAIG8gACfN1SBAAECBAgQIECAAAECBAiUCwjw5cQ6IECAAAECBAgQIECAAAECeQEBPm+oAgECBAgQIECAAAECBAgQKBcQ4MuJdUCAAAECBAgQIECAAAECBPICAnzeUAUCBAgQIECAAAECBAgQIFAuIMCXE+uAAAECBAgQIECAAAECBAjkBQT4vKEKBAgQIECAAAECBAgQIECgXECALyfWAQECBAgQIECAAAECBAgQyAsI8HlDFQgQIECAAAECBAgQIECAQLmAAF9OrAMCBAgQIECAAAECBAgQIJAXEODzhioQIECAAAECBAgQIECAAIFyAQG+nFgHBAgQIECAAAECBAgQIEAgLyDA5w1VIECAAAECBAgQIECAAAEC5QICfDmxDggQIECAAAECBAgQIECAQF5AgM8bqkCAAAECBAgQIECAAAECBMoFBPhyYh0QIECAAAECBAgQIECAAIG8gACfN1SBAAECBAgQIECAAAECBAiUCwjw5cQ6IECAAAECBAgQIECAAAECeQEBPm+oAgECBAgQIECAAAECBAgQKBcQ4MuJdUCAAAECBAgQIECAAAECBPICAnzeUAUCBAgQIECAAAECBAgQIFAuIMCXE+uAAAECBAgQIECAAAECBAjkBQT4vKEKBAgQIECAAAECBAgQIECgXECALyfWAQECBAgQIECAAAECBAgQyAsI8HlDFQgQIECAAAECBAgQIECAQLmAAF9OrAMCBAgQIECAAAECBAgQIJAXEODzhioQIECAAAECBAgQIECAAIFyAQG+nFgHBAgQIECAAAECBAgQIEAgLyDA5w1VIECAAAECBAgQIECAAAEC5QICfDmxDggQIECAAAECBAgQIECAQF5AgM8bqkCAAAECBAgQIECAAAECBMoFBPhyYh0QIECAAAECBAgQIECAAIG8gACfN1SBAAECBAgQIECAAAECBAiUCwjw5cQ6IECAAAECBAgQIECAAAECeQEBPm+oAgECBAgQIECAAAECBAgQKBcQ4MuJdUCAAAECBAgQIECAAAECBPICAnzeUAUCBAgQIECAAAECBAgQIFAuIMCXE+uAAAECBAgQIECAAAECBAjkBQT4vKEKBAgQIECAAAECBAgQIECgXECALyfWAQECBAgQIECAAAECBAgQyAsI8HlDFQgQIECAAAECBAgQIECAQLmAAF9OrAMCBAgQIECAAAECBAgQIJAXEODzhioQIECAAAECBAgQIECAAIFyAQG+nFgHBAgQIECAAAECBAgQIEAgLyDA5w1VIECAAAECBAgQIECAAAEC5QICfDmxDggQIECAAAECBAgQIECAQF5AgM8bqkCAAAECBAgQIECAAAECBMoFBPhyYh0QIECAAAECBAgQIECAAIG8gACfN1SBAAECBAgQIECAAAECBAiUCwjw5cQ6IECAAAECBAgQIECAAAECeQEBPm+oAgECBAgQIECAAAECBAgQKBcQ4MuJdUCAAAECBAgQIECAAAECBPICAnzeUAUCBAgQIECAAAECBAgQIFAuIMCXE+uAAAECBAgQIECAAAECBAjkBQT4vKEKBAgQIECAAAECBAgQIECgXECALyfWAQECBAgQIECAAAECBAgQyAsI8HlDFQgQIECAAAECBAgQIECAQLmAAF9OrAMCBAgQIECAAAECBAgQIJAXEODzhioQIECAAAECBAgQIECAAIFyAQG+nFgHBAgQIECAAAECBAgQIEAgLyDA5w1VIECAAAECBAgQIECAAAEC5QICfDmxDggQIECAAAECBAgQIECAQF5AgM8bqkCAAAECBAgQIECAAAECBMoFBPhyYh0QIECAAAECBAgQIECAAIG8gACfN1SBAAECBAgQIECAAAECBAiUCwjw5cQ6IECAAAECBAgQIECAAAECeQEBPm+oAgECBAgQIECAAAECBAgQKBcQ4MuJdUCAAAECBAgQIECAAAECBPICAnzeUAUCBAgQIECAAAECBAgQIFAuIMCXE+uAAAECBAgQIECAAAECBAjkBQT4vKEKBAgQIECAAAECBAgQIECgXECALyfWAQECBAgQIECAAAECBAgQyAsI8HlDFQgQIECAAAECBAgQIECAQLmAAF9OrAMCBAgQIECAAAECBAgQIJAXEODzhioQIECAAAECBAgQIECAAIFyAQG+nFgHBAgQIECAAAECBAgQIEAgLyDA5w1VIECAAAECBAgQIECAAAEC5QICfDmxDggQIECAAAECBAgQIECAQF5AgM8bqkCAAAECBAgQIECAAAECBMoFBPhyYh0QIECAAAECBAgQIECAAIG8gACfN1SBAAECBAgQIECAAAECBAiUCwjw5cQ6IECAAAECBAgQIECAAAECeQEBPm+oAgECBAgQIECAAAECBAgQKBcQ4MuJdUCAAAECBAgQIECAAAECBPICAnzeUAUCBAgQIECAAAECBAgQIFAuIMCXE+uAAAECBAgQIECAAAECBAjkBQT4vKEKBAgQIECAAAECBAgQIECgXECALyfWAQECBAgQIECAAAECBAgQyAsI8HlDFQgQIECAAAECBAgQIECAQLmAAF9OrAMCBAgQIECAAAECBAgQIJAXEODzhioQIECAAAECBAgQIECAAIFyAQG+nFgHBAgQIECAAAECBAgQIEAgLyDA5w1VIECAAAECBAgQIECAAAEC5QICfDmxDggQIECAAAECBAgQIECAQF5AgM8bqkCAAAECBAgQIECAAAECBMoFBPhyYh0QIECAAAECBAgQIECAAIG8gACfN1SBAAECBAgQIECAAAECBAiUCwjw5cQ6IECAAAECBAgQIECAAAECeQEBPm+oAgECBAgQIECAAAECBAgQKBcQ4MuJdUCAAAECBAgQIECAAAECBPICAnzeUAUCBAgQIECAAAECBAgQIFAuIMCXE+uAAAECBAgQIECAAAECBAjkBQT4vKEKBAgQIECAAAECBAgQIECgXECALyfWAQECBAgQIECAAAECBAgQyAsI8HlDFQgQIECAAAECBAgQIECAQLmAAF9OrAMCBAgQIECAAAECBAgQIJAXEODzhioQIECAAAECBAgQIECAAIFyAQG+nFgHBAgQIECAAAECBAgQIEAgLyDA5w1VIECAAAECBAgQIECAAAEC5QICfDmxDggQIECAAAECBAgQIECAQF5AgM8bqkCAAAECBAgQIECAAAECBMoFBPhyYh0QIECAAAECBAgQIECAAIG8gACfN1SBAAECBAgQIECAAAECBAiUCwjw5cQ6IECAAAECBAgQIECAAAECeQEBPm+oAgECBAgQIECAAAECBAgQKBcQ4MuJdUCAAAECBAgQIECAAAECBPICAnzeUAUCBAgQIECAAAECBAgQIFAuIMCXE+uAAAECBAgQIECAAAECBAjkBQT4vKEKBAgQIECAAAECBAgQIECgXECALyfWAQECBAgQIECAAAECBAgQyAsI8HlDFQgQIECAAAECBAgQIECAQLmAAF9OrAMCBAgQIECAAAECBAgQIJAXEODzhioQIECAAAECBAgQIECAAIFyAQG+nFgHBAgQIECAAAECBAgQIEAgLyDA5w1VIECAAAECBAgQIECAAAEC5QICfDmxDggQIECAAAECBAgQIECAQF5AgM8bqkCAAAECBAgQIECAAAECBMoFBPhyYh0QIECAAAECBAgQIECAAIG8gACfN1SBAAECBAgQIECAAAECBAiUCwjw5cQ6IECAAAECBAgQIECAAAECeQEBPm+oAgECBAgQIECAAAECBAgQKBcQ4MuJdUCAAAECBAgQIECAAAECBPICAnzeUAUCBAgQIECAAAECBAgQIFAuIMCXE+uAAAECBAgQIECAAAECBAjkBQT4vKEKBAgQIECAAAECBAgQIECgXECALyfWAQECBAgQIECAAAECBAgQyAsI8HlDFQgQIECAAAECBAgQIECAQLmAAF9OrAMCBAgQIECAAAECBAgQIJAXEODzhioQIECAAAECBAgQIECAAIFyAQG+nFgHBAgQIECAAAECBAgQIEAgLyDA5w1VIECAAAECBAgQIECAAAEC5QICfDmxDggQIECAAAECBAgQIECAQF5AgM8bqkCAAAECBAgQIECAAAECBMoFBPhyYh0QIECAAAECBAgQIECAAIG8gACfN1SBAAECBAgQIECAAAECBAiUCwjw5cQ6IECAAAECBAgQIECAAAECeQEBPm+oAgECBAgQIECAAAECBAgQKBcQ4MuJdUCAAAECBAgQIECAAAECBPIC/w8BJHFkZl5q+wAAAABJRU5ErkJggg=="}defaultSmallPressureImage(){this._pressureImage="data:image/png;base64,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
1yCwAAAABJRU5ErkJggg=="}}return k.\u0275fac=function(b){return new(b||k)},k.\u0275prov=s.Yz7({token:k,factory:k.\u0275fac}),k})()},997:(u,D,v)=>{v.d(D,{S:()=>q});var p=v(591),s=v(2916),j=v(6688),k=v(4850),b=v(7830),B=v(5254);function V(it,vt){return new s.y(at=>{const J=it.length;if(0===J)return void at.complete();const ht=new Array(J);let m=0,M=0;for(let N=0;N<J;N++){const g=(0,B.D)(it[N]);let x=!1;at.add(g.subscribe({next:P=>{x||(x=!0,M++),ht[N]=P},error:P=>at.error(P),complete:()=>{m++,(m===J||!x)&&(M===J&&at.next(vt?vt.reduce((P,Q,U)=>(P[Q]=ht[U],P),{}):ht),at.complete())}}))}})}var _=v(7545),H=v(2868),Y=v(6435);let q=(()=>{class it{constructor(){this.position=new p.X("Init"),this.clipingPlane=new THREE.Plane(new THREE.Vector3(0,2,0),0),this.objects={rFoot:null,boxRight:null,instepBoxRight:null,lFoot:null,boxLeft:null,instepBoxLeft:null,materials:{materialClipPlane:this.clipingPlane,footMaterial:new THREE.MeshStandardMaterial({color:15066597,polygonOffset:!0,polygonOffsetFactor:1,polygonOffsetUnits:1,metalness:0,roughness:.5,side:THREE.DoubleSide,transparent:!0,clippingPlanes:[this.clipingPlane]}),wireMaterial:new THREE.MeshStandardMaterial({color:12303291,metalness:0,roughness:1,clippingPlanes:[this.clipingPlane],transparent:!0,opacity:1}),groundMaterial:new THREE.MeshBasicMaterial({color:16777215,opacity:.5,transparent:!0})}},this.finalResults=null,this.preloaded=!1}setFinalResults(at){this.finalResults={Borders:{left:{MinX:0,MaxX:0,MinY:0,MaxY:0},right:{MinX:0,MaxX:0,MinY:0,MaxY:0}},Statistics:{left:{HeelToBallPoint:0,HeelToToe:0,TotalArea:0,TopArea:0,BottomArea:0,TotalDist:0,TopDist:0,BottomDist:0,TotalWholeAverage:0,MaxWeight:0,MaxWeightTopXLoct:0,MaxWeightTopYLoct:0,MaxWeightTop:0,MaxWeightXLoct:0,MaxWeightYLoct:0,MaxWeightBottom:0,AvgPressure:0,AvgWeight:0},right:{HeelToBallPoint:0,HeelToToe:0,TotalArea:0,TopArea:0,BottomArea:0,TotalDist:0,TopDist:0,BottomDist:0,TotalWholeAverage:0,MaxWeight:0,MaxWeightTopXLoct:0,MaxWeightTopYLoct:0,MaxWeightTop:0,MaxWeightXLoct:0,MaxWeightYLoct:0,MaxWeightBottom:0,AvgPressure:0,AvgWeight:0},footDiffrentiation:0},HeelToBallPointDetails:{left:{TopHighX:0,TopHighY:0,TopLowX:0,TopLowY:0},right:{TopHighX:0,TopHighY:0,TopLowX:0,TopLowY:0}},HeelToToeDetails:{left:{BottomMaxX:0,BottomMaxY:0,BottomMinX:0,BottomMinY:0,TopMaxX:0,TopMaxY:0,TopMinX:0,TopMinY:0},right:{BottomMaxX:0,BottomMaxY:0,BottomMinX:0,BottomMinY:0,TopMaxX:0,TopMaxY:0,TopMinX:0,TopMinY:0}},ArchLineDetails:{TopRightX:0,TopRightY:0,BottomRightX:0,BottomRightY:0,TopLeftX:0,TopLeftY:0,BottomLeftX:0,BottomLeftY:0},FinalResults:{right:{Length:at[0].measurementProperties[1].magnitude,Width:at[1].measurementProperties[1].magnitude,DorsalHeightMm:at[2].measurementProperties[1].magnitude,ArchHeightMm:at[4].measurementProperties[1].magnitude,GirthMm:at[6].measurementProperties[1].magnitude,ArchMaxZero1:0,TotalPressureAmount:0,MT:!1,Arch:at[3].measurementProperties[1].magnitude,DorsalType:"Medium"},left:{Length:at[0].measurementProperties[0].magnitude,Width:at[1].measurementProperties[0].magnitude,DorsalHeightMm:at[2].measurementProperties[0].magnitude,ArchHeightMm:at[4].measurementProperties[1].magnitude,GirthMm:at[6].measurementProperties[0].magnitude,ArchMaxZero1:0,TotalPressureAmount:0,MT:!1,Arch:at[3].measurementProperties[0].magnitude,DorsalType:"Medium"}},Sizes:{male:{},female:{}},IsChild:!1,Matrix32:null}}getFinalResults(){return this.finalResults.FinalResults}resetObjects(){this.objects.rFoot=null,this.objects.boxRight=null,this.objects.instepBoxRight=null,this.objects.lFoot=null,this.objects.boxLeft=null,this.objects.instepBoxLeft=null,this.preloaded=!1}getMaterials(){return this.objects.materials}get(at){return this.objects[at]}getLeftFoot(){return this.objects.lFoot}getRightFoot(){return this.objects.rFoot}setLeftFoot(at){this.objects.lFoot=at}setRightFoot(at){this.objects.rFoot=at}getBoxLeft(){return this.objects.boxLeft}getBoxRight(){return this.objects.boxRight}setBoxLeft(at){this.objects.boxLeft=at}setBoxRight(at){this.objects.boxRight=at}getInstepBoxLeft(){return this.objects.instepBoxLeft}getInstepBoxRight(){return this.objects.instepBoxRight}setInstepBoxLeft(at){this.objects.instepBoxLeft=at}setInstepBoxRight(at){this.objects.instepBoxRight=at}preloadFoot(at,J,ht,m,M=null){return function(...g){if(1===g.length){const x=g[0];if((0,j.k)(x))return V(x,null);if((0,b.K)(x)&&Object.getPrototypeOf(x)===Object.prototype){const P=Object.keys(x);return V(P.map(Q=>x[Q]),P)}}if("function"==typeof g[g.length-1]){const x=g.pop();return V(g=1===g.length&&(0,j.k)(g[0])?g[0]:g,null).pipe((0,k.U)(P=>x(...P)))}return V(g,null)}(ht&&m?[this.preloadTextureFoot(ht).pipe((0,_.w)(N=>this.loaderObservable(new THREE.OBJLoader2,at,M).pipe((0,H.b)(g=>{this.setupLeftFoot(g,N)})))),this.preloadTextureFoot(m).pipe((0,_.w)(N=>this.loaderObservable(new THREE.OBJLoader2,J,M).pipe((0,H.b)(g=>{this.setupRightFoot(g,N)}))))]:[this.loaderObservable(new THREE.OBJLoader2,at,M).pipe((0,H.b)(N=>{this.setupLeftFoot(N)})),this.loaderObservable(new THREE.OBJLoader2,J,M).pipe((0,H.b)(N=>{this.setupRightFoot(N)}))])}setupRightFoot(at,J){const ht=at.detail.loaderRootNode;ht.name="rFoot",this.setupFoot(ht,!1,J),this.setRightFoot(ht);var m=(new THREE.Box3).setFromObject(ht);this.setBoxRight(m);
1var M=this.cloneBufferGeometryToHalf(ht.children[0],"y"),N=(new THREE.Box3).setFromObject(M);this.setInstepBoxRight(N),M=null}setupLeftFoot(at,J){const ht=at.detail.loaderRootNode;ht.name="lFoot",this.setupFoot(ht,!0,J),this.setLeftFoot(ht);var m=(new THREE.Box3).setFromObject(ht);this.setBoxLeft(m);var M=this.cloneBufferGeometryToHalf(ht.children[0],"y"),N=(new THREE.Box3).setFromObject(M);this.setInstepBoxLeft(N),M=null}preloadTextureFoot(at,J=null){const ht=new THREE.TextureLoader;return ht.setCrossOrigin("anonymous"),this.loaderObservable(ht,at,J)}loaderObservable(at,J,ht=null){return new s.y(m=>{at.load(J,M=>{m.next(M),m.complete()},M=>{ht&&ht.next(M.loaded/M.total)},M=>m.error(M))})}setupFoot(at,J,ht){J||(J=!1),this.reCalculateNormals(at.children[0]),at.children[0].geometry.computeBoundingBox();var m=at.children[0].geometry.boundingBox,M=new THREE.Vector3;M.subVectors(m.max,m.min),M.multiplyScalar(.5),M.add(m.min),M.applyMatrix4(at.children[0].matrixWorld),at.children[0].geometry.center(),at.children[0].position.x=J?1*(m.max.x-m.min.x-.005):1*-(m.max.x-m.min.x-.005),at.children[0].position.y=0,at.children[0].position.z=1*M.z+2e-4,new THREE.MeshBasicMaterial({vertexColors:!0,color:"white",wireframe:!1}),at.children[0].name=(J?"left":"right")+"FootMesh",ht?(at.children[0].material.needsUpdate=!0,at.children[0].material.vertexColors=!1,at.children[0].material.metalness=.05,at.children[0].material.roughness=.9,at.children[0].material.map=ht,at.children[0].material.needsUpdate=!0):(at.children[0].material=this.objects.materials.footMaterial,at.children[0].material.needsUpdate=!0)}getWireframeGeometry(at){for(var J=(new THREE.Geometry).fromBufferGeometry(at),ht=[],m=0;m<J.faces.length;m++){var M=J.faces[m],N=J.vertices[M.a],g=J.vertices[M.b],x=J.vertices[M.c],P=N.distanceTo(g),Q=g.distanceTo(x),U=x.distanceTo(N);P>Q&&P>U?ht.push(M.a,M.c,M.b,M.c):ht.push(M.a,M.b,Q>P&&Q>U?M.a:M.b,M.c)}var G=(new THREE.BufferGeometry).fromGeometry(J);return G.setIndex(ht),G}cloneBufferGeometryToHalf(at,J){const ht=[],m=[],M=[],N=[],g=[],x=[];for(var P=0;P<at.geometry.attributes.position.array.length;P+=at.geometry.attributes.position.itemSize)x.push(at.geometry.attributes.position.array[P+2]),g.push(at.geometry.attributes.position.array[P+1]),N.push(at.geometry.attributes.position.array[P]);const[Q,U]=this.arrayMinMax(x);var G=Q+(U-Q)/2;const[dt,wt]=this.arrayMinMax(N);var W=dt+(wt-dt)/2;const[te,ae]=this.arrayMinMax(g);var Ae=te+(ae-te)/2;for(P=0;P<at.geometry.attributes.position.array.length;P+=at.geometry.attributes.position.itemSize)if("x"===J&&at.geometry.attributes.position.array[P]<W||"y"===J&&at.geometry.attributes.position.array[P+1]<Ae||"z"===J&&at.geometry.attributes.position.array[P+2]<G)for(var ge=0;ge<at.geometry.attributes.position.itemSize;ge++)ht.push(at.geometry.attributes.position.array[P+ge]),m.push(at.geometry.attributes.normal.array[P+ge]),M.push(at.geometry.attributes.color.array[P+ge]);var We=new THREE.BufferGeometry,Cn=at.geometry.attributes.position.itemSize;We.addAttribute("position",new THREE.BufferAttribute(new Float32Array(ht),Cn));var rn=new THREE.Mesh(We,new THREE.MeshStandardMaterial({color:0}));return rn.position.set(at.position.x,at.position.y,at.position.z),rn}arrayMinMax(at){return at.reduce(([J,ht],m)=>[Math.min(J,m),Math.max(ht,m)],[Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY])}reCalculateNormals(at){var J=(new THREE.Geometry).fromBufferGeometry(at.geometry);J.mergeVertices(),J.computeVertexNormals(),at.geometry=(new THREE.BufferGeometry).fromGeometry(J)}getZoomValues(){let at;window.screen.availHeight>670&&(at={Init:1.65,Length:1.65,Width:1.25,DorsalHeight:1.65,ArchHeight:1.65,Girth:1.65,LengthLeft:1.9,LengthRight:1.9,WidthRight:1.9,WidthLeft:1.9,DorsalHeightLeft:1.9,DorsalHeightRight:1.9,ArchHeightLeft:1.9,ArchHeightRight:1.9,GirthRight:1.9,GirthLeft:1.9,MedianShoeSize:1.65})}}return it.\u0275fac=function(vt){return new(vt||it)},it.\u0275prov=Y.Yz7({token:it,factory:it.\u0275fac}),it})()},8231:(u,D,v)=>{v.d(D,{z:()=>at});var p=v(6435),s=v(997),j=v(8017),k=v(9808);class b{constructor(){this.renderer=null,this.scene=null,this.planeW=40,this.planeH=40,this.planeOpacity=0,this.planeColor=new THREE.Color(16777215),this.camHeight=1,this.shadowBlur=2.5,this.shadowDarkness=2,this.shadowOpacity=.6,this.shadowGroup=null,this.renderTarget=null,this.renderTargetBlur=null,this.plane=null,this.blurPlane=null,this.fillPlane=null,this.shadowCamera=null,this.cameraHelper=null,this.depthMaterial=null,this.horizontalBlurMaterial=null,this.verticalBlurMaterial=null}init(ht,m,M){this.renderer=ht,this.scene=m,this.shadowGroup=new THREE.Group,M.add(this.shadowGroup),this.renderTarget=new THREE.WebGLRenderTarget(1024,1024),this.renderTarget.texture.generateMipmaps=!1,this.renderTargetBlur=new THREE.WebGLRenderTarget(1024,1024),this.renderTargetBlur.texture.generateMipmaps=!1;var N=new THREE.PlaneBufferGeometry(this.planeW,this.planeH).rotateX(Math.PI/2),g=new THREE.MeshBasicMaterial({map:this.renderTarget.texture,opacity:this.shadowOpacity,transparent:!0});this.plane=new THREE.Mesh(N,g),this.shadowGroup.add(this.plane),this.plane.scale.y=-1,this.blurPlane=new THREE.Mesh(N),this.blurPlane.visible=!1,this.shadowGroup.add(this.blurPlane),g=new THREE.MeshBasicMaterial({color:this.planeColor,opacity:this.planeOpacity,transparent:!0}),this.fillPlane=new THREE.Mesh(N,g),this.fillPlane.rotateX(Math.PI),this.fillPlane.position.y-=.1,this.shadowGroup.add(this.fillPlane),this.shadowCamera=new THREE.Orthogra
1phicCamera(-this.planeW/2,this.planeW/2,this.planeH/2,-this.planeH/2,0,this.camHeight),this.shadowCamera.rotation.x=Math.PI/2,this.shadowGroup.add(this.shadowCamera),this.cameraHelper=new THREE.CameraHelper(this.shadowCamera);var x=new THREE.MeshDepthMaterial;x.userData.darkness={value:this.shadowDarkness},x.onBeforeCompile=function(P){P.uniforms.darkness=x.userData.darkness,P.fragmentShader=`\n uniform float darkness;\n ${P.fragmentShader.replace("gl_FragColor = vec4( vec3( 1.0 - gl_FragCoord.z ), opacity );","gl_FragColor = vec4( vec3( 0.0 ), ( 1.0 - gl_FragCoord.z ) * darkness );")}\n `},x.depthTest=!1,x.depthWrite=!1,this.depthMaterial=x,this.horizontalBlurMaterial=new THREE.ShaderMaterial(THREE.HorizontalBlurShader),this.horizontalBlurMaterial.depthTest=!1,this.verticalBlurMaterial=new THREE.ShaderMaterial(THREE.VerticalBlurShader),this.verticalBlurMaterial.depthTest=!1}blurShadow(ht){this.blurPlane.visible=!0,this.blurPlane.material=this.horizontalBlurMaterial,this.blurPlane.material.uniforms.tDiffuse.value=this.renderTarget.texture,this.horizontalBlurMaterial.uniforms.h.value=1*ht/256,this.renderer.setRenderTarget(this.renderTargetBlur),this.renderer.render(this.blurPlane,this.shadowCamera,this.renderTargetBlur),this.blurPlane.material=this.verticalBlurMaterial,this.blurPlane.material.uniforms.tDiffuse.value=this.renderTargetBlur.texture,this.verticalBlurMaterial.uniforms.v.value=1*ht/256,this.renderer.setRenderTarget(this.renderTarget),this.renderer.render(this.blurPlane,this.shadowCamera,this.renderTarget),this.blurPlane.visible=!1}renderShadow(){var ht=this.scene.background;this.scene.background=null,this.cameraHelper.visible=!1,this.scene.overrideMaterial=this.depthMaterial,this.renderer.setRenderTarget(this.renderTarget),this.renderer.render(this.scene,this.shadowCamera,this.renderTarget),this.scene.overrideMaterial=null,this.cameraHelper.visible=!0,this.blurShadow(this.shadowBlur),this.blurShadow(.4*this.shadowBlur),this.renderer.setRenderTarget(null),this.scene.background=ht}}var B=v(591),V=v(7545),_=v(7625),H=v(8929);let Y=(()=>{class J{constructor(){this.destroy$=new H.xQ}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return J.\u0275fac=function(ht){return new(ht||J)},J.\u0275cmp=p.Xpm({type:J,selectors:[["ng-component"]],decls:0,vars:0,template:function(ht,m){},encapsulation:2}),J})();var q=v(7448);let it=(()=>{class J extends Y{constructor(m,M,N,g){super(),this.ngZone=N,this.threeDService=g,this.footUrls=[],this.urlFoots$=new B.X([]),this.threeDPosition="Init",this.passportMeasurements=[],this.isLoadingFoot$=new B.X(!0),this.isNaturalZone=!1,this.treeDPosition$=new B.X(this.threeDPosition),this._clock=new THREE.Clock,this._mixers=[],this._drawedLines=[],this._currentWidth=96,this._currentLength=250,this.boxLeft=null,this.boxRight=null,this.instepBoxLeft=null,this.instepBoxRight=null,this.mainGroup=new THREE.Group,this.modelGroup=new THREE.Group,this.drawTimeout=750,this.main_color=4737096,this.size=.001,this.lineWidth=this.size,this.dashedSize=4e-4,this.dashedPadding=.005,this.gapSize=5e-4,this.arrowHeadLength=this.size,this.arrowHeadWidth=this.size,this.archHeight=.004,this.currentThreeDPosition="Length",this.initializePos=!1,this.finalResults=null,this.currentData="",this.tween=null,this.animations={appearingAnimation:{durationSec:4,from:{x:.2},to:{x:15},start:x=>{x||(x=0);var P=this.animations.appearingAnimation.from;this.tween=new TWEEN.Tween(P).to(this.animations.appearingAnimation.to,1e3*this.animations.appearingAnimation.durationSec).onUpdate(Q=>{this.threeDService.getMaterials().footMaterial&&(this.threeDService.getMaterials().materialClipPlane.constant=P.x),this.threeDService.getMaterials().wireMaterial.opacity=Q,this._shadowRenderer.plane.material.opacity=Math.pow(Q,2),this.threeDService.getMaterials().footMaterial.opacity=6*Q}).easing(TWEEN.Easing.Quadratic.InOut),this.tween.update(),this.tween.delay(x).start()},stop:()=>{!this.tween||(this.tween.stop(),this.tween=null)}},flyAroundAnimation:{durationSec:3.5,to:{radius:101.41815806148391,phi:.8879862278968219,theta:.5599207383332273},start:x=>{if(x||(x=0),this._camera){var P=this._camera.position,Q=new THREE.Spherical(0,0,0).setFromCartesianCoords(P.x,P.y,P.z);this.tween=new TWEEN.Tween(Q).to(this.animations.flyAroundAnimation.to,1e3*this.animations.flyAroundAnimation.durationSec).onUpdate(U=>{var G=new THREE.Vector3(0,0,0).setFromSpherical(Q);this._camera&&(this._camera.position.set(G.x,G.y,G.z),this._camera.lookAt(this._scene.position))}).onComplete(()=>{}).easing(TWEEN.Easing.Quadratic.InOut),this.tween.update(),this.tween.delay(x).start()}},stop:()=>{!this.tween||(this.tween.stop(),this.tween=null)}},rotateAnimation:{durationSec:.5,start:(x,P)=>{x||(x=0),this._controls.enabled=!1;var Q=this._camera.position,U=new THREE.Spherical(0,0,0).setFromCartesianCoords(Q.x,Q.y,Q.z);this.tween=new TWEEN.Tween(U).to(P,1e3*this.animations.rotateAnimation.durationSec).onUpdate(G=>{var dt=new THREE.Vector3(0,0,0).setFromSpherical(U);this._camera.position.set(dt.x,dt.y,dt.z),this._camera.lookAt(this._scene.position)}).onComplete(()=>{this._controls.enabled=!0}).easing(TWEEN.Easing.Quadratic.InOut),this.tween.update(),this.tween.delay(x).start()},stop:()=>{!this.tween||this.tween.stop()}},arrowAnimation2:{},arrowLengthAnimation:{durationSec:1,start:(x,P,Q,U,G,dt)=>{x||(x=0),this.tween=new TWEEN.Tween(Q).to(U,1e3*this.animations.arrowLengthAnimation.durationSec).onUpdate(wt=>{wt||(wt=1),P.setLength(G+(U-G)*wt,G,dt)}).onComplete(()=>{}).easing(TWEEN.Easing.Quadratic.InOut),this.tween.update(),this.tween.delay(x).start()},stop:()=>{!this.tween||this.tween.stop()}},lineAnimation:{durationSec:1,start:(x,P,Q,U)=>{x||(x=0),this.tween=new TWEEN.Tween(Q).to(U,1e3*this.animations.lineAnimation.durationSec).onUpdate(G=>{G||(G=1),P.geometry.vertices.push(new THREE.Vector3(U.x*G,U.y,U.z)),P.geometry.verticesNeedUpdate=!0}).onComplete(()=>{}).easing(TWEEN.Easing.Quadratic.InOut),this.tween.update(),this.tween.delay(x).start()},stop:()=>{!this.tween||this.tween.stop()}},lineAnimation2:{durationSec:1,start:(x,P,Q,U,G,dt)=>{x||(x=0);var wt=Q.x+(U.x-Q.x)/2,W=Q.y+(U.y-Q.y)/2,te=Q.z+(U.z-Q.z)/2;this.tween=new TWEEN.Tween(Q).to(U,1e3*this.animations.lineAnimation2.durationSec).onUpdate(function(ae){ae||(ae=1),"x"===G&&(P.scale.set(1*ae,1,1),P.position.set(wt-wt*ae,0,0)),"y"===G&&(P.scale.set(1,1*ae,1),P.position.set(0,W-W*ae,0)),"z"===G&&(P.scale.set(1,1,1*ae),P.position.set(0,0,te-te*ae)),P.geometry.verticesNeedUpdate=!0}).onComplete(()=>{}).easing(TWEEN.Easing.Quadratic.InOut),this.tween.update(),this.tween.delay(x).start()},stop:()=>{!this.tween||this.tween.stop()}},fadeAnimation:{durationSec:1,start:(x,P,Q,U,G)=>{x||(x=0),this._shadowRenderer.plane.material.opacity=Math.pow(5,2),this.tween=new TWEEN.Tween(Q).to(U,1e3*this.animations.fadeAnimation.durationSec).onUpdate(function(dt){if(dt||(dt=1),U>Q)for(var wt in P.children)P.children[wt].material.opacity=U*dt;else for(var wt in P.children)P.children[wt].material.opacity=Q-(Q-U)*dt}).onComplete(()=>{G()}).easing(TWEEN.Easing.Quadratic.InOut),this.tween.update(),this.tween.delay(x).start()},stop:()=>{!this.tween||this.tween.stop()}}},this.once=!1,this.lfoot&&this.footUrls.push(this.lfoot),this.rfoot&&this.footUrls.push(this.rfoot),0===this.footUrls.length&&(this.footUrls=["https://s3.amazonaws.com/aetrex-scanneros-scans/QA/7b8a15af330a274b1629363f358f52e9a24904f03117523bdd4295f856e086c9/CurrentTest/3DModel/left_foot.obj","https://s3.amazonaws.com/aetrex-scanneros-scans/QA/7b8a15af330a274b1629363f358f52e9a24904f03117523bdd4295f856e086c9/CurrentTest/3DModel/right_foot.obj"]),console.log("feet obj files are read from iframe attrbutes",this.footUrls),this.threeDService.change3DPosition=this.change3DPosition.bind(this),this._element=m,this._footService=M,this._footService.setDefaults(),this._footService.current3DType=this._footService._Type3D.toString(),this._realLengthLeft=this._footService.scan.Left.LengthMm,this._realWidthLeft=this._footService.scan.Left.W
1idthMm,this._realLengthRight=this._footService.scan.Right.LengthMm,this._realWidthRight=this._footService.scan.Right.WidthMm,this.footUrls&&(this.removeFromSceneAlbert2("rFoot"),this.removeFromSceneAlbert2("lFoot"),this.urlFoots$.next(this.footUrls),this.isLoadingFoot$.next(!0),this.threeDPosition="PreInit",this.updateLighting())}ngOnInit(){this._threeDPositions={PreInit:{x:-64.89671436191402,y:133.73029609667967,z:-118.34071093613572},Init:{x:42.33546883625148,y:64.82966653789856,z:67.32188867412223},Length:{x:42.33546883625148,y:64.82966653789856,z:67.32188867412223},Width:{x:-11.160508871010546,y:103.18589792548828,z:-.013815762631599138},LengthLeft:{x:79.71414244324305,y:49.59331006150612,z:44.24981097706696},LengthRight:{x:-82.49161081240399,y:47.475757279184286,z:41.389289631103516},WidthRight:{x:-82.49161081240399,y:47.475757279184286,z:41.389289631103516},WidthLeft:{x:79.71414244324305,y:49.59331006150612,z:44.24981097706696},DorsalHeight:{x:-82.49161081240399,y:47.475757279184286,z:41.389289631103516},DorsalHeightLeft:{x:-82.49161081240399,y:47.475757279184286,z:41.389289631103516},DorsalHeightRight:{x:79.71414244324305,y:49.59331006150612,z:44.24981097706696},InstepHeight:{x:-82.49161081240399,y:47.475757279184286,z:41.389289631103516},InstepHeightLeft:{x:-82.49161081240399,y:47.475757279184286,z:41.389289631103516},InstepHeightRight:{x:79.71414244324305,y:49.59331006150612,z:44.24981097706696},ArchHeight:{x:-82.49161081240399,y:47.475757279184286,z:41.389289631103516},ArchHeightLeft:{x:-82.49161081240399,y:47.475757279184286,z:41.389289631103516},ArchHeightRight:{x:79.71414244324305,y:49.59331006150612,z:44.24981097706696},Girth:{x:-82.49161081240399,y:47.475757279184286,z:41.389289631103516},GirthLeft:{x:-82.49161081240399,y:47.475757279184286,z:41.389289631103516},GirthRight:{x:79.71414244324305,y:49.59331006150612,z:44.24981097706696},MedianShoeSize:{x:-97.28811860356257,y:33.37367980248364,z:13.896264060707129},RecommendedShoeSize:{x:-30.116061591275248,y:10.873292867585818,z:-7.123093934625116},BackBoth:{x:0,y:0,z:-120},BackLeft:{x:0,y:0,z:-120},BackRight:{x:0,y:0,z:-120},ArchLeft:{x:-90,y:0,z:0},ArchRight:{x:90,y:0,z:0}},this.currentThreeDPosition="Length",this.currentData=""}ngAfterViewInit(){this._footService.fbxPbject=void 0,this.set3DModel()}ngOnChanges(m){m.threeDPosition&&!m.threeDPosition.firstChange&&this.rotateCamera2(this.threeDPosition),this.footUrls=["https://s3.amazonaws.com/aetrex-scanneros-scans/QA/7b8a15af330a274b1629363f358f52e9a24904f03117523bdd4295f856e086c9/CurrentTest/3DModel/left_foot.obj","https://s3.amazonaws.com/aetrex-scanneros-scans/QA/7b8a15af330a274b1629363f358f52e9a24904f03117523bdd4295f856e086c9/CurrentTest/3DModel/right_foot.obj"]}change3DPosition(m){this.threeDPosition=m,this.rotateCamera2(this.threeDPosition)}calcParentHeight(m){this._parentHeight=m.clientHeight,this._parentWidth=m.clientWidth}set3DModel(){if(this._container=this._element.nativeElement,this.calcParentHeight(this._container),this.setupRenderer(),this.createSceneWithLighting(),this.setupCamera(),this._footService.fbxPbject)this._footService.showRightFoot&&this._scene.add(this._footService.fbxPbject.rFoot),this._footService.showLeftFoot&&this._scene.add(this._footService.fbxPbject.lFoot),this._footService.showGrid&&this._scene.add(this._footService.fbxPbject.groundGridFoot);else{const m=this._realLengthRight/this._currentLength,M=this._realLengthLeft/this._currentLength;this._selectedRatioForHeight=M<m?M:m,this._footService.fbxPbject={},this.LeftArch=this._footService.scan.Left.ArchType,this.RightArch=this._footService.scan.Right.ArchType,this.urlFoots$.pipe((0,V.w)(([N,g,x,P])=>this.threeDService.preloadFoot(N,g,x,P)),(0,_.R)(this.destroy$)).subscribe(()=>{this.isLoadingFoot$.next(!1),this._footService.showLeftFoot&&this.modelGroup.add(this.threeDService.getLeftFoot()),this._footService.showRightFoot&&this.modelGroup.add(this.threeDService.getRightFoot()),this.boxLeft=this.threeDService.getBoxLeft(),this.boxRight=this.threeDService.getBoxRight(),this.instepBoxLeft=this.threeDService.getInstepBoxLeft(),this.instepBoxRight=this.threeDService.getInstepBoxRight(),this.rotateCamera2(this.threeDPosition),this.animate(),this.animations.flyAroundAnimation.start(0)}),this.modelGroup.rotation.x=-Math.PI/2,this.modelGroup.scale.set(175,175,175),this.modelGroup.scale.multiplyScalar(.3),this.mainGroup.add(this.modelGroup)}window.addEventListener("resize",()=>{this._footService.currentType===this._footService._Type3D&&(this.calcParentHeight(this._container),this.onWindowResize())},!1),this._footService.currentTypeUpdate.subscribe(m=>{this._footService.currentType===this._footService._Type3D&&setTimeout(()=>{this.calcParentHeight(this._container),this.onWindowResize()})}),this.mainGroup.add(this.modelGroup),this._scene.add(this.mainGroup)}setupCamera(){this._camera=new THREE.PerspectiveCamera(12,this._parentWidth/this._parentHeight,1,1e3),this._camera.position.set(this._threeDPositions.PreInit.x,this._threeDPositions.PreInit.y,this._threeDPositions.PreInit.z),this._camera.lookAt(this._scene.position),this._controls=new THREE.OrbitControls(this._camera,this._renderer.domElement),this._controls.enablePan=!1,this._controls.target.set(0,0,0),this._controls.maxPolarAngle=.48*Math.PI,this._controls.minDistance=50,this._controls.maxDistance=200,this._controls.update()}createSceneWithLighting(){this._scene=new THREE.Scene,this._shadowRenderer=new b,this._shadowRenderer.init(this._renderer,this._scene,this.mainGroup),this._light=new THREE.DirectionalLight(16777215,.45),this._light.position.set(-50,50,50),this._scene.add(this._light),this._ambientLight=new THREE.AmbientLight(16777215,.6),this._ambientLight.name="ambientlLight",this._scene.add(this._ambientLight),this._rimLight=new THREE.PointLight(7373710,1,200,2),this._rimLight.name="PointLight",this._rimLight.position.set(50,50,-50),this._scene.add(this._rimLight)}updateLighting(){!this._light||(this.isNaturalZone?(this._light.intensity=.5,this._light.position.set(50,50,50),this._ambientLight.intensity=3,this._rimLight.color.setHex("0xffffff"),this._rimLight.position.set(-50,50,-50)):(this._light.intensity=.45,this._light.position.set(-50,50,50),this._ambientLight.intensity=.6,this._rimLight.color.setHex("0x70838e"),this._rimLight.position.set(50,50,-50)))}setupRenderer(){this._renderer=new THREE.WebGLRenderer({antialias:!0,alpha:!0}),this._renderer.setPixelRatio(1),this._renderer.setSize(this._parentWidth,this._parentHeight,!1),this._renderer.gammaInput=!0,this._renderer.gammaOutput=!0,this._renderer.setClearColor(16777215,0
1),this._renderer.localClippingEnabled=!0,this._container.appendChild(this._renderer.domElement)}removeFromScene(m){const M=this._scene.getObjectByName(m);this._scene.remove(M)}addToScene(m){this._scene.add(this._footService.fbxPbject[m])}removeFromSceneAlbert2(m){let M=this.modelGroup.getObjectByName(m);this.modelGroup.remove(M)}addToSceneAlbert2(m){this.modelGroup.add("lFoot"==m?this.threeDService.getLeftFoot():this.threeDService.getRightFoot())}onWindowResize(){this.calcParentHeight(this._container),window,this._camera.aspect=this._container.clientWidth/this._parentHeight,this._camera.updateProjectionMatrix(),this._renderer.setSize(this._container.clientWidth,this._parentHeight)}animate(){this.ngZone.runOutsideAngular(()=>{this.animateRender()})}animateRender(){this.frameId=requestAnimationFrame(()=>{this.animateRender()}),TWEEN.update(),this._controls.update(),this.render()}rotateToPos(m,M,N){Math.abs(this._camera.position.x-m.x)>Math.abs(M.x)?this._camera.position.x-=M.x:this._camera.position.x-=this._camera.position.x-m.x,Math.abs(this._camera.position.y-m.y)>Math.abs(M.y)?this._camera.position.y-=M.y:this._camera.position.y-=this._camera.position.y-m.y,Math.abs(this._camera.position.z-m.z)>Math.abs(M.z)?this._camera.position.z-=M.z:this._camera.position.z-=this._camera.position.z-m.z,this._controls.update(),N?this._animationRequestID=requestAnimationFrame(()=>{this.rotateToPos(m,M,--N)}):window.cancelAnimationFrame(this._animationRequestID)}rotateCamera(m){window.cancelAnimationFrame(this._animationRequestID);const M={x:(this._camera.position.x-this._threeDPositions[m].x)/80,y:(this._camera.position.y-this._threeDPositions[m].y)/80,z:(this._camera.position.z-this._threeDPositions[m].z)/80};this.threeDPosition=m,this.rotateToPos(this._threeDPositions[m],M,80)}rotateCamera2(m){this._controls.enabled=!1,this.clearDrawedLines(),this.LeftArch="Medium",this.RightArch="Medium","Init"==m&&(this.initializePos=!0,this.currentThreeDPosition="Length"),this.currentData!==m&&(this.clearDrawedLines(),"Length"===m?this.drawLengthAlbert2():"LengthLeft"===m?this.drawLeftLengthAlbert2():"LengthRight"===m?this.drawRightLengthAlbert2():"Width"===m?this.drawWidthAlbert2():"WidthLeft"===m?this.drawLeftWidthAlbert2():"WidthRight"===m?this.drawRightWidthAlbert2():"DorsalHeight"===m||"InstepHeight"===m?this.drawDorsalHeightAlbert2():"DorsalHeightLeft"===m||"InstepHeightLeft"===m?this.drawLeftDorsalHeightAlbert2():"DorsalHeightRight"===m||"InstepHeightRight"===m?this.drawRightDorsalHeightAlbert2():"ArchHeight"===m?this.drawArchHeightAlbert2():"ArchHeightLeft"===m?this.drawArchLeftAlbert2(this.LeftArch):"ArchHeightRight"===m?this.drawArchRightAlbert2(this.RightArch):"Girth"===m?this.drawGirthAlbert2():"GirthLeft"===m?this.drawGirthLeftAlbert2():"GirthRight"===m&&this.drawGirthRightAlbert2()),"Init"!=m?(this.currentThreeDPosition=m,this.currentData=m):this.currentData="",window.cancelAnimationFrame(this._animationRequestID),"DorsalHeightLeft"===m||"ArchHeightLeft"===m||"GirthLeft"===m||"DorsalHeightRight"===m||"ArchHeightRight"===m||"GirthRight"===m||"LengthLeft"===m||"LengthRight"===m||"WidthRight"===m||"WidthLeft"===m||"InstepHeightLeft"===m||"InstepHeightRight"===m||"BackRight"===m||"BackLeft"===m||"ArchRight"===m||"ArchLeft"===m?m.indexOf("Right")>-1?(this.removeFromSceneAlbert2("lFoot"),this._footService.showRightFoot&&this.addToSceneAlbert2("rFoot")):(this.removeFromSceneAlbert2("rFoot"),this._footService.showLeftFoot&&this.addToSceneAlbert2("lFoot")):(this._footService.showRightFoot&&this.addToSceneAlbert2("rFoot"),this._footService.showLeftFoot&&this.addToSceneAlbert2("lFoot"));var M=Math.sqrt(Math.pow(this._camera.position.x,2)+Math.pow(this._camera.position.y,2)+Math.pow(this._camera.position.z,2)),N=Math.acos(this._camera.position.y/M),g=Math.atan2(this._camera.position.x,this._camera.position.z),x=Math.sqrt(Math.pow(this._threeDPositions[m].x,2)+Math.pow(this._threeDPositions[m].y,2)+Math.pow(this._threeDPositions[m].z,2)),P=Math.acos(this._threeDPositions[m].y/x),Q=Math.atan2(this._threeDPositions[m].x,this._threeDPositions[m].z);Q-g&&P-N&&this.animations.rotateAnimation.start(0,{radius:x,phi:P,theta:Q})}rotateToPos2(m,M,N,g,x,P,Q,U){const G=m+U*(g-m)/Q,dt=M+U*(x-M)/Q,wt=(P-N)/(x-M)*(dt-M)+N,W={x:G*Math.sin(dt)*Math.sin(wt),y:G*Math.cos(dt),z:G*Math.sin(dt)*Math.cos(wt)};this._camera.position.x=W.x,this._camera.position.y=W.y,this._camera.position.z=W.z,this._controls.update(),U<Q?(U++,this._animationRequestID=requestAnimationFrame(()=>{this.rotateToPos2(m,M,N,g,x,P,Q,U)})):(window.cancelAnimationFrame(this._animationRequestID),this._controls.enabled=!0)}rotateCamera3(m){this._controls.enabled=!1,this.clearDrawedLines(),"Length"===m?this.drawLength():"Width"===m&&this.drawWidth(),window.cancelAnimationFrame(this._animationRequestID);const M=Math.sqrt(Math.pow(this._camera.position.x,2)+Math.pow(this._camera.position.y,2)+Math.pow(this._camera.position.z,2)),N=Math.asin(this._camera.position.z/M),g=Math.acos(this._camera.position.x/Math.sqrt(Math.pow(this._camera.position.x,2)+Math.pow(this._camera.position.y,2))),x=Math.sqrt(Math.pow(this._threeDPositions[m].x,2)+Math.pow(this._threeDPositions[m].y,2)+Math.pow(this._threeDPositions[m].z,2)),P=Math.asin(this._threeDPositions[m].z/x),Q=Math.acos(this._threeDPositions[m].x/Math.sqrt(Math.pow(this._threeDPositions[m].x,2)+Math.pow(this._threeDPositions[m].y,2)));"DorsalHeight"===m||"ArchHeight"===m||"Girth"===m||"InstepHeight"===m?this.removeFromScene("rFoot"):this.addToScene("rFoot"),this.rotateToPos3(M,N,g,x,P,Q,200,m,0)}rotateToPos3(m,M,N,g,x,P,Q,U,G){Math.abs(N-P)>Math.PI&&(P+=2*Math.PI*(N-P<0?-1:1));const dt=m+G*(g-m)/Q,wt=N+G*(P-N)/Q;let W;W=N===P?M+G*(x-M)/Q:Math.atan((Math.sin(M)*Math.cos(x)*Math.sin(wt-P)-Math.sin(x)*Math.cos(M)*Math.sin(wt-N))/(Math.cos(M)*Math.cos(x)*Math.sin(N-P)));const te={x:dt*Math.cos(W)*Math.cos(wt),y:dt*Math.cos(W)*Math.sin(wt),z:dt*Math.sin(W)};this._camera.position.x=te.x,this._camera.position.y=te.y,this._camera.position.z=te.z,this._controls.update(),G<Q?(G++,this._animationRequestID=requestAnimationFrame(()=>{this.rotateToPos3(m,M,N,g,x,P,Q,U,G)})):(window.cancelAnimationFrame(this._animationRequestID),this._controls.enabled=!0)}calcLength(){}calcWidth(){}clearDrawedLines(){for(let m=0;m<this._drawedLines.length;m++){let M=this.modelGroup.getObjectByName(this._drawedLines[m]);this.modelGroup.remove(M)}}drawLength(){this.drawLeftLength(),this.drawRightLength()}drawLeftLength(){if(!this._boxLeft)return;const m=1.5,M=10132122,N=new THREE.LineDashedMaterial({color:M,dashSize:.3,gapSize:.3,linewidth:1});let g,x,P,Q,U,G,dt,wt,W;P=Math.abs(this._boxLeft.max.z+0+0-this._boxLeft.min.z)/2,Q=new THREE.Vector3(0,0,1),Q.normalize(),U=new THREE.Vector3(this._boxLeft.max.x+1,m,this._boxLeft.min.z+P+0),G=P,dt=M,wt=.3,W=.3;const te=new THREE.ArrowHelper(Q,U,G,dt,wt,W);te.name="LeftTopArrow",this._scene.add(te),this._drawedLines.push(te.name),P=Math.abs(this._boxLeft.max.z+0+0-this._boxLeft.min.z)/2,Q=new THREE.Vector3(0,0,-1),Q.normalize(),U=new THREE.Vector3(this._boxLeft.max.x+1,m,this._boxLeft.min.z+P+0),G=P,dt=M,wt=.3,W=.3;const ae=new THREE.ArrowHelper(Q,U,G,dt,wt,W);ae.name="LeftBottomArrow",this._scene.add(ae),this._drawedLines.push(ae.name),x=new THREE.Geometry,x.vertices.push(new THREE.Vector3(this._boxLeft.max.x+0+1+1,m,this._boxLeft.min.z-0),new THREE.Vector3(this._boxLeft.min.x+0+1,m,this._boxLeft.min.z-0)),x.computeLineDistances(),g=new THREE.Line(x,N),g.name="leftHeel",this._scene.add(g),this._drawedLines.push(g.name),x=new THREE.Geometry,x.vertices.push(new THREE.Vector3(this._boxLeft.max.x+0+1+1,m,this._boxLeft.max.z+0),new THREE.Vector3(this._boxLeft.min.x+0+1,m,this._boxLeft.max.z+0)),x.computeLineDistances(),g=new THREE.Line(x,N),g.name="leftToe",this._scene.add(g),this._drawedLines.push(g.name)}drawRightLength(){if(!this._boxRight)return;const m=1.5,M=10132122,N=new THREE.LineDashedMaterial({color:M,dashSize:.3,gapSize:.3,linewidth:1});let g,x,P,Q,U,G,dt,wt,W;P=Math.abs(this._boxRight.max.z+0+0-this._boxRight.min.z)/2,Q=new THREE.Vector3(0,0,1),Q.normalize(),U=new THREE.Vector3(this._boxRight.min.x-1,m,this._boxRight.min.z+P+0),G=P,dt=M,wt=.3,W=.3;const te=new THREE.ArrowHelper(Q,U,G,dt,wt,W);te.name="RightTopArrow",this._scene.add(te),this._drawedLines.push(te.name),P=Math.abs(this._boxRight.max.z+0+0-this._boxRight.min.z)/2,Q=new THREE.Vector3(0,0,-1),Q.normalize(),U=new THREE.Vector3(this._boxRight.min.x-1,m,this._boxRight.min.z+P+0),G=P,dt=M,wt=.3,W=.3;const ae=new THREE.ArrowHelper(Q,U,G,dt,wt,W);ae.name="RightBottomArrow",this._scene.add(ae),this._drawedLines.push(ae.name),x=new THREE.Geometry,x.vertices.push(new THREE.Vector3(this._boxRight.max.x-0-1,m,this._boxRight.min.z-0),new THREE.Vector3(this._boxRight.min.x-0-1-1,m,this._boxRight.min.z-0)),x.computeLineDistances(),g=new THREE.Line(x,N),g.name="rightHeel",this._scene.add(g),this._drawedLines.push(g.name),x=new THREE.Geometry,x.vertices.push(new THREE.Vector3(this._boxRight.max.x-0-1,m,this._boxRight.max.z+0),new THREE.Vector3(this._boxRight.min.x-0-1-1,m,this._boxRight.max.z+0)),x.computeLineDistances(),g=new THREE.Line(x,N),g.name="rightToe",this._scene.add(g),this._drawedLines.push(g.name)}drawWidth(){this.drawLeftWidth(),this.drawRightWidth()}drawLeftWidth(){const N=new THREE.LineDashedMaterial({color:10132122,dashSize:.3,gapSize:.3,linewidth:1});let g,x,P,Q,U,G,dt,wt,W;P=Math.abs(this._boxLeft.max.x+0+0-this._boxLeft.min.x)/2,Q=new THREE.Vector3(1,0,0),Q.normalize(),U=new THREE.Vector3(this._boxLeft.min.x+P+0,1.5,this._boxLeft.max.z),G=P,dt=10132122,wt=.3,W=.3;const te=new THREE.ArrowHelper(Q,U,G,dt,wt,W);te.name="LeftToeLeftArrow",this._scene.add(te),this._drawedLines.push(te.name),P=Math.abs(this._boxLeft.max.x+0+0-this._boxLeft.min.x)/2,Q=new THREE.Vector3(-1,0,0),Q.normalize(),U=new THREE.Vector3(this._boxLeft.min.x+P+0,1.5,this._boxLeft.max.z),G=P,dt=10132122,wt=.3,W=.3;const ae=new THREE.ArrowHelper(Q,U,G,dt,wt,W);ae.name="LeftToeRightArrow",this._scene.add(ae),this._drawedLines.push(ae.name),x=new THREE.Geometry,x.vertices.push(new THREE.Vector3(this._boxLeft.max.x-0,1.5,this._boxLeft.max.z+0+1+1),new THREE.Vector3(this._boxLeft.max.x-0,1.5,this._boxLeft.min.z+(this._boxLeft.max.z-this._boxLeft.min.z)/2+0+1)),x.computeLineDistances(),g=new THREE.Line(x,N),g.name="rightLine",this._scene.add(g),this._drawedLines.push(g.name),x=new THREE.Geometry,x.vertices.push(new THREE.Vector3(this._boxLeft.min.x-0,1.5,this._boxLeft.max.z+0+1+1),new THREE.Vector3(this._boxLeft.min.x-0,1.5,this._boxLeft.min.z+(this._boxLeft.max.z-this._boxLeft.min.z)/2+0+1)),x.computeLineDistances(),g=new THREE.Line(x,N),g.name="leftLine",this._scene.add(g),this._drawedLines.push(g.name)}drawRightWidth(){const N=new THREE.LineDashedMaterial({color:10132122,dashSize:.3,gapSize:.3,linewidth:1});let g,x,P,Q,U,G,dt,wt,W;P=Math.abs(this._boxRight.max.x+0+0-this._boxRight.min.x)/2,Q=new THREE.Vector3(1,0,0),Q.normalize(),U=new THREE.Vector3(this._boxRight.min.x+P+0,1.5,this._boxRight.max.z),G=P,dt=10132122,wt=.3,W=.3;const te=new THREE.ArrowHelper(Q,U,G,dt,wt,W);te.name="RightToeLeftArrow",this._scene.add(te),this._drawedLines.push(te.name),P=Math.abs(this._boxRight.max.x+0+0-this._boxRight.min.x)/2,Q=new THREE.Vector3(-1,0,0),Q.normalize(),U=new THREE.Vector3(this._boxRight.min.x+P+0,1.5,this._boxRight.max.z),G=P,dt=10132122,wt=.3,W=.3;const ae=new THREE.ArrowHelper(Q,U,G,dt,wt,W);ae.name="RightToeRightArrow",this._scene.add(ae),this._drawedLines.push(ae.name),x=new THREE.Geometry,x.vertices.push(new THREE.Vector3(this._boxRight.max.x-0,1.5,this._boxRight.max.z+0+1+1),new THREE.Vector3(this._boxRight.max.x-0,1.5,this._boxRight.min.z+(this._boxRight.max.z-this._boxRight.min.z)/2+0+1)),x.computeLineDistances(),g=new THREE.Line(x,N),g.name="rightLine",this._scene.add(g),this._drawedLines.push(g.name),x=new THREE.Geometry,x.vertices.push(new THREE.Vector3(this._boxRight.min.x-0,1.5,this._boxRight.max.z+0+1+1),new THREE.Vector3(this._boxRight.min.x-0,1.5,this._boxRight.min.z+(this._boxRight.max.z-this._boxRight.min.z)/2+0+1)),x.computeLineDistances(),g=new THREE.Line(x,N),g.name="leftLine",this._scene.add(g),this._drawedLines.push(g.name)}render(){this._shadowRenderer.renderShadow(),this._renderer.render(this._scene,this._camera)}scaleLeftFoot(m,M,N){const g=this.getCenterOfMass(m);return m=this.TranslateVertices(m,g,!0,!0),m=this.DoFootRatio(m,M/this._currentLength,N/this._currentWidth),this.TranslateVertices(m,g,!1,!0)}scaleRightFoot(m,M,N){const g=this.getCenterOfMass(m);return m=this.TranslateVertices(m,g,!0,!1),m=this.DoFootRatio(m,M/this._currentLength,N/this._currentWidth),this.TranslateVertices(m,g,!1,!1)}
1DoFootRatio(m,M,N){const g=m.length;let x=9999,P=9999,Q=0;for(let G=0;G<g;G+=3)x>m[G+1]&&(x=m[G+1]),m[G+2]=m[G+2]*M,m[G]=m[G]*N,m[G+1]=m[G+1]*this._selectedRatioForHeight,Q<m[G+1]&&(Q=m[G+1]),P>m[G+1]&&(P=m[G+1]);const U=P-x;for(let G=0;G<g;G+=3)m[G+1]=m[G+1]-U;return m}TranslateVertices(m,M,N,g){const x=m.length;let P=9999,Q=0;for(let U=0;U<x;U+=3)N?(m[U]=m[U]-M[0],m[U+1]=m[U+1]-M[1],m[U+2]=m[U+2]-M[2]):(m[U]=m[U]+M[0],m[U+1]=m[U+1]+M[1],m[U+2]=m[U+2]+M[2],Q<m[U]&&(Q=m[U]),P>m[U]&&(P=m[U]));if(!N){let U;if(g){U=this._boxLeftBeforeScale.min.x-P+1;for(let G=0;G<x;G+=3)m[G]=m[G]+U}else{U=this._boxRightBeforeScale.min.x-P+1;for(let G=0;G<x;G+=3)m[G]=m[G]-U}}return m}getCenterOfMass(m){const M=m.length;let N=0,g=0,x=0;for(let P=0;P<M;P+=3)N+=m[P],g+=m[P+1],x+=m[P+2];return[N/(M/3),g/(M/3),x/(M/3)]}drawDorsal(){this.drawLeftDorsalHeight(),this.drawRightDorsalHeight()}drawLeftDorsalHeight(){const m=new THREE.LineDashedMaterial({color:10132122,dashSize:.3,gapSize:.3,linewidth:1}),M=this._boxLeft.min.z+(this._boxLeft.max.z-this._boxLeft.min.z)/2,N=this._LeftLengthWidthDorsal,g=new THREE.Vector3(0,1,0);g.normalize();const x=new THREE.Vector3(this._boxLeft.min.x-0,-0,M),P=new THREE.ArrowHelper(g,x,N+0,10132122,.3,.3);P.name="LeftDorsalArrow",this._scene.add(P),this._drawedLines.push(P.name);const Q=new THREE.Geometry;Q.vertices.push(new THREE.Vector3(this._boxLeft.max.x,-0,M),new THREE.Vector3(this._boxLeft.min.x-1,-0,M)),Q.computeLineDistances();const U=new THREE.Line(Q,m);U.name="WidthLineLeftBottomForDorsal",this._scene.add(U),this._drawedLines.push(U.name);const G=new THREE.Geometry;G.vertices.push(new THREE.Vector3(this._boxLeft.max.x,.1+N,M),new THREE.Vector3(this._boxLeft.min.x-1,.1+N,M)),G.computeLineDistances();const dt=new THREE.Line(G,m);dt.name="WidthLineLeftTopForDorsal",this._scene.add(dt),this._drawedLines.push(dt.name)}drawRightDorsalHeight(){const m=new THREE.LineDashedMaterial({color:10132122,dashSize:.3,gapSize:.3,linewidth:1}),M=this._boxRight.min.z+(this._boxRight.max.z-this._boxRight.min.z)/2,N=this._RightLengthWidthDorsal,g=new THREE.Vector3(0,1,0);g.normalize();const x=new THREE.Vector3(this._boxRight.min.x-0,-0,M),P=new THREE.ArrowHelper(g,x,N+0,10132122,.3,.3);P.name="RightDorsalArrow",this._scene.add(P),this._drawedLines.push(P.name);const Q=new THREE.Geometry;Q.vertices.push(new THREE.Vector3(this._boxRight.min.x,-0,M),new THREE.Vector3(this._boxRight.max.x+1,-0,M)),Q.computeLineDistances();const U=new THREE.Line(Q,m);U.name="WidthLineRightBottomForDorsal",this._scene.add(U),this._drawedLines.push(U.name);const G=new THREE.Geometry;G.vertices.push(new THREE.Vector3(this._boxRight.min.x,.1+N,M),new THREE.Vector3(this._boxRight.max.x+1,.1+N,M)),G.computeLineDistances();const dt=new THREE.Line(G,m);dt.name="WidthLineRightTopForDorsal",this._scene.add(dt),this._drawedLines.push(dt.name)}GetLengthWidthDorsal(m){const M=m.length;let N=9999,g=0,x=9999,P=0,Q=9999,U=0;for(let dt=0;dt<M;dt+=3)P<m[dt+2]&&(P=m[dt+2]),x>m[dt+2]&&(x=m[dt+2]),U<m[dt]&&(U=m[dt]),Q>m[dt]&&(Q=m[dt]);const G=x+(P-x)/2;for(let dt=0;dt<M;dt+=3)m[dt+2]-.1<=G&&G<=m[dt+2]+.1&&(g<m[dt+1]&&(g=m[dt+1]),N>m[dt+1]&&(N=m[dt+1]));return g}drawArch(){this.drawArchLeft(this.LeftArch),this.drawArchRight(this.RightArch)}drawArchLeft(m){let M,N;switch(m){case"Flat":M=-4,N=.5;break;case"Low":M=-4,N=.8;break;case"Medium":default:M=-4,N=1.3;break;case"High":M=-4,N=1.5}const g=100*(M-this._boxLeftBeforeScale.min.z)/Math.abs(this._boxLeftBeforeScale.max.z-this._boxLeftBeforeScale.min.z);M=this._boxLeft.min.z+Math.abs(this._boxLeft.max.z-this._boxLeft.min.z)*g/100;const x=Math.abs(this._boxLeftBeforeScale.max.y-this._boxLeftBeforeScale.min.y);N*=Math.abs(this._boxLeft.max.y-this._boxLeft.min.y)/x;const P=new THREE.LineDashedMaterial({color:10132122,dashSize:.3,gapSize:.3,linewidth:1}),Q=N,U=new THREE.Vector3(0,1,0);U.normalize();const G=new THREE.Vector3(this._boxLeftBeforeScale.min.x+1,0,M),dt=new THREE.ArrowHelper(U,G,Q,10132122,.3,.3);dt.name="ArchLeftArrow",this._scene.add(dt),this._drawedLines.push(dt.name);const wt=new THREE.Geometry;wt.vertices.push(new THREE.Vector3(this._boxLeftBeforeScale.min.x,.1,M),new THREE.Vector3(this._boxLeftBeforeScale.max.x+1,.1,M)),wt.computeLineDistances();const W=new THREE.Line(wt,P);W.name="WidthLineLeftBottomForArch",this._scene.add(W),this._drawedLines.push(W.name);const te=new THREE.Geometry;te.vertices.push(new THREE.Vector3(this._boxLeftBeforeScale.min.x,.1+Q,M),new THREE.Vector3(this._boxLeftBeforeScale.min.x+(this._boxLeftBeforeScale.max.x-this._boxLeftBeforeScale.min.x)/2,.1+Q,M)),te.computeLineDistances();const ae=new THREE.Line(te,P);ae.name="WidthLineLeftTopForArch",this._scene.add(ae),this._drawedLines.push(ae.name)}
1drawArchRight(m){let M,N;switch(m){case"Flat":M=-4,N=.5;break;case"Low":M=-4,N=.8;break;case"Medium":default:M=-4,N=1.3;break;case"High":M=-4,N=1.5}const g=100*(M-this._boxRightBeforeScale.min.z)/Math.abs(this._boxRightBeforeScale.max.z-this._boxRightBeforeScale.min.z);M=this._boxRight.min.z+Math.abs(this._boxRight.max.z-this._boxRight.min.z)*g/100;const x=Math.abs(this._boxRightBeforeScale.max.y-this._boxRightBeforeScale.min.y);N*=Math.abs(this._boxRight.max.y-this._boxRight.min.y)/x;const P=new THREE.LineDashedMaterial({color:10132122,dashSize:.3,gapSize:.3,linewidth:1}),Q=N,U=new THREE.Vector3(0,1,0);U.normalize();const G=new THREE.Vector3(this._boxRightBeforeScale.max.x-1,0,M),dt=new THREE.ArrowHelper(U,G,Q,10132122,.3,.3);dt.name="ArchRightArrow",this._scene.add(dt),this._drawedLines.push(dt.name);const wt=new THREE.Geometry;wt.vertices.push(new THREE.Vector3(this._boxRightBeforeScale.max.x,.1,M),new THREE.Vector3(this._boxRightBeforeScale.min.x-1,.1,M)),wt.computeLineDistances();const W=new THREE.Line(wt,P);W.name="WidthLineRightBottomForArch",this._scene.add(W),this._drawedLines.push(W.name);const te=new THREE.Geometry;te.vertices.push(new THREE.Vector3(this._boxRightBeforeScale.max.x,.1+Q,M),new THREE.Vector3(this._boxRightBeforeScale.min.x+(this._boxRightBeforeScale.max.x-this._boxRightBeforeScale.min.x)/2,.1+Q,M)),te.computeLineDistances();const ae=new THREE.Line(te,P);ae.name="WidthLineRightTopForArch",this._scene.add(ae),this._drawedLines.push(ae.name)}drawLineToesAlbert2(m){var M={x:this["box"+m].min.x+this.arrowHeadLength,y:this["box"+m].min.y,z:this["box"+m].min.z},N={x:this["box"+m].max.x-this.arrowHeadLength,y:this["box"+m].min.y,z:this["box"+m].min.z},g=new THREE.Vector3(M.x,M.y-this.dashedPadding/2,M.z),x=new THREE.Vector3(N.x,N.y-this.dashedPadding/2,N.z);this.drawLineFromToAlbert2(g,x,!1)}drawLineSideOutAlbert2(m){var M,N,g,x;"Left"===m?(M={x:this["box"+m].max.x,y:this["box"+m].min.y+this.arrowHeadLength,z:this["box"+m].min.z},N={x:this["box"+m].max.x,y:this["box"+m].max.y-this.arrowHeadLength,z:this["box"+m].min.z},g=new THREE.Vector3(M.x+this.dashedPadding/2,M.y,M.z),x=new THREE.Vector3(N.x+this.dashedPadding/2,N.y,N.z)):(M={x:this["box"+m].min.x,y:this["box"+m].min.y+this.arrowHeadLength,z:this["box"+m].min.z},N={x:this["box"+m].min.x,y:this["box"+m].max.y-this.arrowHeadLength,z:this["box"+m].min.z},g=new THREE.Vector3(M.x-this.dashedPadding/2,M.y,M.z),x=new THREE.Vector3(N.x-this.dashedPadding/2,N.y,N.z)),this.drawLineFromToAlbert2(g,x,!1)}drawLineSideInAlbert2(m){var M,N,g,x;"Left"===m?(M={x:this["box"+m].min.x,y:this["box"+m].min.y+this.arrowHeadLength,z:this["box"+m].min.z},N={x:this["box"+m].min.x,y:this["box"+m].max.y-this.arrowHeadLength,z:this["box"+m].min.z},g=new THREE.Vector3(M.x-this.dashedPadding/2,M.y,M.z),x=new THREE.Vector3(N.x-this.dashedPadding/2,N.y,N.z)):(M={x:this["box"+m].max.x,y:this["box"+m].min.y+this.arrowHeadLength,z:this["box"+m].min.z},N={x:this["box"+m].max.x,y:this["box"+m].max.y-this.arrowHeadLength,z:this["box"+m].min.z},g=new THREE.Vector3(M.x+this.dashedPadding/2,M.y,M.z),x=new THREE.Vector3(N.x+this.dashedPadding/2,N.y,N.z)),this.drawLineFromToAlbert2(g,x,!1)}drawLineHeelAlbert2(m){var M={x:this["box"+m].min.x+this.arrowHeadLength,y:this["box"+m].max.y,z:this["box"+m].min.z},N={x:this["box"+m].max.x-this.arrowHeadLength,y:this["box"+m].max.y,z:this["box"+m].min.z},g=new THREE.Vector3(M.x,M.y+this.dashedPadding/2,M.z),x=new THREE.Vector3(N.x,N.y+this.dashedPadding/2,N.z);this.drawLineFromToAlbert2(g,x,!1)}drawLineVerticalMiddleSideInAlbert2(m){var M,N,g,x;"Left"===m?(M={x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z+this.arrowHeadLength},N={x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].max.z-this.arrowHeadLength},g=new THREE.Vector3(M.x-this.dashedPadding/2,M.y,M.z),x=new THREE.Vector3(N.x-this.dashedPadding/2,N.y,N.z)):(M={x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z+this.arrowHeadLength},N={x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].max.z-this.arrowHeadLength},g=new THREE.Vector3(M.x+this.dashedPadding/2,M.y,M.z),x=new THREE.Vector3(N.x+this.dashedPadding/2,N.y,N.z)),this.drawLineFromToAlbert2(g,x,!1)}drawLineVerticalMiddleSideOutAlbert2(m){var M,N,g,x;"Left"===m?(M={x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z+this.arrowHeadLength},N={x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].max.z-this.arrowHeadLength},g=new THREE.Vector3(M.x+this.dashedPadding/2,M.y,M.z),x=new THREE.Vector3(N.x+this.dashedPadding/2,N.y,N.z)):(M={x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z+this.arrowHeadLength},N={x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].max.z-this.arrowHeadLength},g=new THREE.Vector3(M.x-this.dashedPadding/2,M.y,M.z),x=new THREE.Vector3(N.x-this.dashedPadding/2,N.y,N.z)),this.drawLineFromToAlbert2(g,x,!1)}drawArrowsOutAlbert2(m){var M,N;M="Left"===m?{x:this["box"+m].max.x,y:this["box"+m].min.y,z:this["box"+m].min.z}:{x:this["box"+m].min.x,y:this["box"+m].min.y,z:this["box"+m].min.z};var g=(this["box"+m].max.y-this["box"+m].min.y)/2;N="Left"===m?new THREE.Vector3(M.x+this.dashedPadding/2,M.y+g,M.z):new THREE.Vector3(M.x-this.dashedPadding/2,M.y+g,M.z);var x=new THREE.Vector3(0,1,0).normalize();this.drawArrowAlbert2(m,g,N,x),x=new THREE.Vector3(0,-1,0).normalize(),this.drawArrowAlbert2(m,g,N,x)}drawArrowsInAlbert2(m){var M,N;M="Left"===m?{x:this["box"+m].min.x,y:this["box"+m].min.y,z:this["box"+m].min.z}:{x:this["box"+m].max.x,y:this["box"+m].min.y,z:this["box"+m].min.z};var g=(this["box"+m].max.y-this["box"+m].min.y)/2;N="Left"===m?new THREE.Vector3(M.x-this.dashedPadding/2,M.y+g,M.z):new THREE.Vector3(M.x+this.dashedPadding/2,M.y+g,M.z);var x=new THREE.Vector3(0,1,0).normalize();this.drawArrowAlbert2(m,g,N,x),x=new THREE.Vector3(0,-1,0).normalize(),this.drawArrowAlbert2(m,g,N,x)}drawArrowsToesAlbert2(m){var M={x:this["box"+m].min.x,y:this["box"+m].min.y,z:this["box"+m].min.z},N=(this["box"+m].max.x-this["box"+m].min.x)/2,g=new THREE.Vector3(M.x+N,M.y-this.dashedPadding/2,M.z),x=new THREE.Vector3(1,0,0).normalize();this.drawArrowAlbert2(m,N,g,x),x=new THREE.Vector3(-1,0,0).normalize(),this.drawArrowAlbert2(m,N,g,x)}drawArrowsHeelAlbert2(m){var M={x:this["box"+m].min.x,y:this["box"+m].max.y,z:this["box"+m].min.z},N=(this["box"+m].max.x-this["box"+m].min.x)/2,g=new THREE.Vector3(M.x+N,M.y+this.dashedPadding/2,M.z),x=new THREE.Vector3(1,0,0).normalize();this.drawArrowAlbert2(m,N,g,x),x=new THREE.Vector3(-1,0,0).normalize(),this.drawArrowAlbert2(m,N,g,x)}drawArrowsVerticalMiddleInAlbert2(m){var M,N;M="Left"===m?{x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z}:{x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z};var g=(this["instepBox"+m].max.z-this["instepBox"+m].min.z)/2;N="Left"===m?new THREE.Vector3(M.x-this.dashedPadding/2,M.y,M.z+g):new THREE.Vector3(M.x+this.dashedPadding/2,M.y,M.z+g);var x=new THREE.Vector3(0,0,1).normalize();this.drawArrowAlbert2(m,g,N,x),x=new THREE.Vector3(0,0,-1).normalize(),this.drawArrowAlbert2(m,g,N,x)}drawArrowsVerticalMiddleOutAlbert2(m){var M,N;M="Left"===m?{x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z}:{x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z};var g=(this["instepBox"+m].max.z-this["instepBox"+m].min.z)/2;N="Left"===m?new THREE.Vector3(M.x+this.dashedPadding/2,M.y,M.z+g):new THREE.Vector3(M.x-this.dashedPadding/2,M.y,M.z+g);var x=new THREE.Vector3(0,0,1).normalize();this.drawArrowAlbert2(m,g,N,x),x=new THREE.Vector3(0,0,-1).normalize(),this.drawArrowAlbert2(m,g,N,x)}drawArrowsVerticalMiddleArchOutAlbert2(m){var M,N;M="Left"===m?{x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z}:{x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z};var g=(this.archHeight-this["instepBox"+m].min.z)/2;N="Left"===m?new THREE.Vector3(M.x+this.dashedPadding/2,M.y,M.z+g):new THREE.Vector3(M.x-this.dashedPadding/2,M.y,M.z+g);var x=new THREE.Vector3(0,0,1).normalize();this.drawArrowAlbert2(m,g,N,x),x=new THREE.Vector3(0,0,-1).normalize(),this.drawArrowAlbert2(m,g,N,x)}drawArrowsVerticalMiddleArchInAlbert2(m,M){var N,g;M||(M=0),N="Left"===m?{x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y+M,z:this["instepBox"+m].min.z}:{x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y-M,z:this["instepBox"+m].min.z};var x=(this.archHeight-this["instepBox"+m].min.z)/2;g="Left"===m?new THREE.Vector3(N.x-this.dashedPadding/2,N.y+M,N.z+x):new THREE.Vector3(N.x+this.dashedPadding/2,N.y-M,N.z+x);var P=new THREE.Vector3(0,0,1).normalize();this.drawArrowAlbert2(m,x,g,P),P=new THREE.Vector3(0,0,-1).normalize(),this.drawArrowAlbert2(m,x,g,P)}
1drawDashedToesAlbert2(m){var M,N,g,x;"Left"===m?(M={x:this["box"+m].max.x,y:this["box"+m].min.y,z:this["box"+m].min.z},N={x:this["box"+m].min.x,y:this["box"+m].min.y,z:this["box"+m].min.z},g=new THREE.Vector3(M.x+this.dashedPadding,M.y,M.z),x=new THREE.Vector3(N.x-this.dashedPadding,N.y,N.z)):(M={x:this["box"+m].min.x,y:this["box"+m].min.y,z:this["box"+m].min.z},N={x:this["box"+m].max.x,y:this["box"+m].min.y,z:this["box"+m].min.z},g=new THREE.Vector3(M.x-this.dashedPadding,M.y,M.z),x=new THREE.Vector3(N.x+this.dashedPadding,N.y,N.z)),this.drawLineFromToAlbert2(g,x,!0)}drawDashedSideOutAlbert2(m){var M={x:this["box"+m].max.x,y:this["box"+m].min.y,z:this["box"+m].min.z},N={x:this["box"+m].max.x,y:this["box"+m].max.y,z:this["box"+m].min.z},g=new THREE.Vector3(M.x,M.y-this.dashedPadding,M.z),x=new THREE.Vector3(N.x,N.y+this.dashedPadding,N.z);this.drawLineFromToAlbert2(g,x,!0)}drawDashedSideOutToToesAlbert2(m){var M={x:this["box"+m].max.x,y:this["box"+m].min.y,z:this["box"+m].min.z},N={x:this["box"+m].max.x,y:this["box"+m].min.y+(this["box"+m].max.y-this["box"+m].min.y)/2,z:this["box"+m].min.z},g=new THREE.Vector3(M.x,M.y-this.dashedPadding,M.z),x=new THREE.Vector3(N.x,N.y+this.dashedPadding,N.z);this.drawLineFromToAlbert2(g,x,!0)}drawDashedSideOutToHeelAlbert2(m){var M={x:this["box"+m].max.x,y:this["box"+m].max.y-(this["box"+m].max.y-this["box"+m].min.y)/2,z:this["box"+m].min.z},N={x:this["box"+m].max.x,y:this["box"+m].max.y,z:this["box"+m].min.z},g=new THREE.Vector3(M.x,M.y-this.dashedPadding,M.z),x=new THREE.Vector3(N.x,N.y+this.dashedPadding,N.z);this.drawLineFromToAlbert2(g,x,!0)}drawDashedSideInAlbert2(m){var M={x:this["box"+m].min.x,y:this["box"+m].min.y,z:this["box"+m].min.z},N={x:this["box"+m].min.x,y:this["box"+m].max.y,z:this["box"+m].min.z},g=new THREE.Vector3(M.x,M.y-this.dashedPadding,M.z),x=new THREE.Vector3(N.x,N.y+this.dashedPadding,N.z);this.drawLineFromToAlbert2(g,x,!0)}drawDashedSideInToToesAlbert2(m){var M={x:this["box"+m].min.x,y:this["box"+m].min.y,z:this["box"+m].min.z},N={x:this["box"+m].min.x,y:this["box"+m].min.y+(this["box"+m].max.y-this["box"+m].min.y)/2,z:this["box"+m].min.z},g=new THREE.Vector3(M.x,M.y-this.dashedPadding,M.z),x=new THREE.Vector3(N.x,N.y+this.dashedPadding,N.z);this.drawLineFromToAlbert2(g,x,!0)}drawDashedSideInToHeelAlbert2(m){var M={x:this["box"+m].min.x,y:this["box"+m].max.y-(this["box"+m].max.y-this["box"+m].min.y)/2,z:this["box"+m].min.z},N={x:this["box"+m].min.x,y:this["box"+m].max.y,z:this["box"+m].min.z},g=new THREE.Vector3(M.x,M.y-this.dashedPadding,M.z),x=new THREE.Vector3(N.x,N.y+this.dashedPadding,N.z);this.drawLineFromToAlbert2(g,x,!0)}drawDashedHeelAlbert2(m){var M,N,g,x;"Left"===m?(M={x:this["box"+m].max.x,y:this["box"+m].max.y,z:this["box"+m].min.z},N={x:this["box"+m].min.x,y:this["box"+m].max.y,z:this["box"+m].min.z},g=new THREE.Vector3(M.x+this.dashedPadding,M.y,M.z),x=new THREE.Vector3(N.x-this.dashedPadding,N.y,N.z)):(M={x:this["box"+m].min.x,y:this["box"+m].max.y,z:this["box"+m].min.z},N={x:this["box"+m].max.x,y:this["box"+m].max.y,z:this["box"+m].min.z},g=new THREE.Vector3(M.x-this.dashedPadding,M.y,M.z),x=new THREE.Vector3(N.x+this.dashedPadding,N.y,N.z)),this.drawLineFromToAlbert2(g,x,!0)}drawDashedMiddleBottomInAlbert2(m){var M,N,g,x;"Left"===m?(M={x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z},N={x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z},g=new THREE.Vector3(M.x,M.y,M.z),x=new THREE.Vector3(N.x-this.dashedPadding,N.y,N.z)):(M={x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z},N={x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z},g=new THREE.Vector3(M.x,M.y,M.z),x=new THREE.Vector3(N.x+this.dashedPadding,N.y,N.z)),this.drawLineFromToAlbert2(g,x,!0,!0)}drawDashedMiddleBottomInHalfAlbert2(m,M){var N,g,x,P;M||(M=0),"Left"===m?(N={x:this["instepBox"+m].max.x/2,y:this["instepBox"+m].max.y+M,z:this["instepBox"+m].min.z},g={x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y+M,z:this["instepBox"+m].min.z},x=new THREE.Vector3(N.x+this.dashedPadding,N.y+M,N.z),P=new THREE.Vector3(g.x-this.dashedPadding,g.y+M,g.z)):(N={x:this["instepBox"+m].min.x/2,y:this["instepBox"+m].max.y-M,z:this["instepBox"+m].min.z},g={x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y-M,z:this["instepBox"+m].min.z},x=new THREE.Vector3(N.x-this.dashedPadding,N.y-M,N.z),P=new THREE.Vector3(g.x+this.dashedPadding,g.y-M,g.z)),this.drawLineFromToAlbert2(x,P,!0,!0)}drawDashedMiddleTopInAlbert2(m){var M,N,g,x,P=35e-5;"Left"===m?(M={x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].max.z+P},N={x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].max.z+P},g=new THREE.Vector3(M.x,M.y,M.z),x=new THREE.Vector3(N.x-this.dashedPadding,N.y,N.z)):(M={x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].max.z+P},N={x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].max.z+P},g=new THREE.Vector3(M.x,M.y,M.z),x=new THREE.Vector3(N.x+this.dashedPadding,N.y,N.z)),this.drawLineFromToAlbert2(g,x,!0,!0)}drawDashedMiddleTopInHalfAlbert2(m){var M,N,g,x;"Left"===m?(M={x:this["instepBox"+m].max.x/2,y:this["instepBox"+m].max.y,z:this["instepBox"+m].max.z},N={x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].max.z},g=new THREE.Vector3(M.x+this.dashedPadding,M.y,M.z),x=new THREE.Vector3(N.x-this.dashedPadding,N.y,N.z)):(M={x:this["instepBox"+m].min.x/2,y:this["instepBox"+m].max.y,z:this["instepBox"+m].max.z},N={x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].max.z},g=new THREE.Vector3(M.x-this.dashedPadding,M.y,M.z),x=new THREE.Vector3(N.x+this.dashedPadding,N.y,N.z)),this.drawLineFromToAlbert2(g,x,!0,!0)}drawDashedMiddleBottomOut(m){var M,N,g,x;"Left"===m?(M={x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z},N={x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z},g=new THREE.Vector3(M.x,M.y,M.z),x=new THREE.Vector3(N.x+this.dashedPadding,N.y,N.z)):(M={x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z},N={x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z},g=new THREE.Vector3(M.x,M.y,M.z),x=new THREE.Vector3(N.x-this.dashedPadding,N.y,N.z)),this.drawLineFromToAlbert2(g,x,!0)}drawDashedMiddleTopOutAlbert2(m){var M,N,g,x;"Left"===m?(M={x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].max.z},N={x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].max.z},g=new THREE.Vector3(M.x,M.y,M.z),x=new THREE.Vector3(N.x+this.dashedPadding,N.y,N.z)):(M={x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].max.z},N={x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].max.z},g=new THREE.Vector3(M.x,M.y,M.z),x=new THREE.Vector3(N.x-this.dashedPadding,N.y,N.z)),this.drawLineFromToAlbert2(g,x,!0)}drawDashedMiddleArchOutAlbert2(m){var M,N,g,x;"Left"===m?(M={x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z+this.archHeight},N={x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z+this.archHeight},g=new THREE.Vector3(M.x,M.y,M.z),x=new THREE.Vector3(N.x+this.dashedPadding,N.y,N.z)):(M={x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z+this.archHeight},N={x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z+this.archHeight},g=new THREE.Vector3(M.x,M.y,M.z),x=new THREE.Vector3(N.x-this.dashedPadding,N.y,N.z)),this.drawLineFromToAlbert2(g,x,!0)}drawDashedMiddleArchInAlbert2(m){var M,N,g,x;"Left"===m?(M={x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z+this.archHeight},N={x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z+this.archHeight},g=new THREE.Vector3(M.x,M.y,M.z),x=new THREE.Vector3(N.x-this.dashedPadding,N.y,N.z)):(M={x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z+this.archHeight},N={x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y,z:this["instepBox"+m].min.z+this.archHeight},g=new THREE.Vector3(M.x,M.y,M.z),x=new THREE.Vector3(N.x+this.dashedPadding,N.y,N.z)),this.drawLineFromToAlbert2(g,x,!0)}drawDashedMiddleArchInHalfAlbert2(m,M){var N,g,x,P;M||(M=0),"Left"===m?(N={x:this["instepBox"+m].max.x/2,y:this["instepBox"+m].max.y+M,z:this["instepBox"+m].min.z+this.archHeight},g={x:this["instepBox"+m].min.x,y:this["instepBox"+m].max.y+M,z:this["instepBox"+m].min.z+this.archHeight},x=new THREE.Vector3(N.x+this.dashedPadding,N.y+M,N.z),P=new THREE.Vector3(g.x-this.dashedPadding,g.y+M,g.z)):(N={x:this["instepBox"+m].min.x/2,y:this["instepBox"+m].max.y-M,z:this["instepBox"+m].min.z+this.archHeight},g={x:this["instepBox"+m].max.x,y:this["instepBox"+m].max.y-M,z:this["instepBox"+m].min.z+this.archHeight},x=new THREE.Vector3(N.x-this.dashedPadding,N.y-M,N.z),P=new THREE.Vector3(g.x+this.dashedPadding,g.y-M,g.z)),this.drawLineFromToAlbert2(x,P,!0,!0)}drawLineFromToAlbert2(m,M,N,g,x){var P=[];P.push(m),P.push(M),this.drawLineAlbert2(P,N,g,x)}drawLineAlbert2(m,M,N,g){var x=[],P=[],Q=!1;
1N&&(Q=!0),g&&(this.lineWidth=g),new THREE.CatmullRomCurve3(m),Math.round(12*m.length);var U=new THREE.Color;x.push(m[0].x,m[0].y,m[0].z),P.push(U.r,U.g,U.b),x.push(m[m.length-1].x,m[m.length-1].y,m[m.length-1].z),P.push(U.r,U.g,U.b);var G=new THREE.LineGeometry;G.setPositions(x),G.setColors(P);var dt=new THREE.LineMaterial({color:this.main_color,linewidth:this.lineWidth,vertexColors:!0,dashSize:this.dashedSize,gapSize:this.gapSize,dashed:!0});M&&(dt.defines.USE_DASH="");var wt=new THREE.Line2(G,dt);wt.computeLineDistances(),wt.name=this.currentThreeDPosition,this._drawedLines.push(wt.name),this.modelGroup.add(wt);var W,te=m[0],ae=m[1],Ae=!1;M&&(Ae=!0),m[0].x===m[1].x&&m[0].y===m[1].y?(W="z",wt.scale.set(1,1,1e-8),M&&(te.z-=te.z)):m[0].x===m[1].x?(W="y",wt.scale.set(1,1e-8,1),M&&(te.y+=te.y-(te.y-ae.y)/2)):m[0].y===m[1].y&&(W="x",wt.scale.set(1e-8,1,1),M&&(Q?te.x-=te.x:te.x+=te.x));var ge=0;M?(ge=750,this.once||(this.once=!0)):this.animations.lineAnimation2.start(ge,wt,te,ae,W,Ae),this.animations.lineAnimation2.start(ge,wt,te,ae,W,Ae)}drawArrowAlbert2(m,M,N,g){var x=new THREE.ArrowHelper(g,N,this.arrowHeadLength+1e-9,this.main_color,this.arrowHeadLength,this.arrowHeadWidth);x.name=m+"Arrow",this.modelGroup.add(x),this._drawedLines.push(x.name),this.animations.arrowLengthAnimation.start(0,x,this.arrowHeadLength+1e-9,M,this.arrowHeadLength,this.arrowHeadWidth)}drawLengthAlbert2(){setTimeout(()=>{"Length"===this.currentData&&(this.drawLeftLengthAlbert2(),this.drawRightLengthAlbert2())},this.drawTimeout)}drawLeftLengthAlbert2(){setTimeout(()=>{("LengthLeft"===this.currentData||"Length"===this.currentData)&&(this.drawLineSideOutAlbert2("Left"),this.drawArrowsOutAlbert2("Left"),this.drawDashedToesAlbert2("Left"),this.drawDashedHeelAlbert2("Left"))},this.drawTimeout)}drawRightLengthAlbert2(){setTimeout(()=>{("LengthRight"===this.currentData||"Length"===this.currentData)&&(this.drawLineSideOutAlbert2("Right"),this.drawArrowsOutAlbert2("Right"),this.drawDashedToesAlbert2("Right"),this.drawDashedHeelAlbert2("Right"))},this.drawTimeout)}drawWidthAlbert2(){setTimeout(()=>{"Width"===this.currentData&&(this.drawLeftWidthAlbert2(),this.drawRightWidthAlbert2())},this.drawTimeout)}drawLeftWidthAlbert2(){setTimeout(()=>{if("WidthLeft"===this.currentData||"Width"===this.currentData){var m="Left",M={x:this.instepBoxLeft.min.x+this.arrowHeadLength,y:this.instepBoxLeft.min.y,z:this.instepBoxLeft.min.z},N={x:this.instepBoxLeft.max.x-this.arrowHeadLength,y:this.instepBoxLeft.min.y,z:this.instepBoxLeft.min.z},g=new THREE.Vector3(M.x,M.y-this.dashedPadding/2,M.z),x=new THREE.Vector3(N.x,N.y-this.dashedPadding/2,N.z);this.drawLineFromToAlbert2(g,x,!1),N={x:this.instepBoxLeft.min.x,y:this.instepBoxLeft.min.y,z:this.instepBoxLeft.min.z};var P=(this.instepBoxLeft.max.x-this.instepBoxLeft.min.x)/2,Q=new THREE.Vector3(N.x+P,N.y-this.dashedPadding/2,N.z),U=new THREE.Vector3(1,0,0).normalize();this.drawArrowAlbert2(m,P,Q,U),U=new THREE.Vector3(-1,0,0).normalize(),this.drawArrowAlbert2(m,P,Q,U),M={x:this.instepBoxLeft.max.x,y:this.instepBoxLeft.min.y,z:this.instepBoxLeft.min.z},N={x:this.instepBoxLeft.max.x,y:this.instepBoxLeft.min.y+(this.instepBoxLeft.max.y-this.instepBoxLeft.min.y)/2,z:this.instepBoxLeft.min.z},g=new THREE.Vector3(M.x,M.y-this.dashedPadding,M.z),x=new THREE.Vector3(N.x,N.y+this.dashedPadding,N.z),this.drawLineFromToAlbert2(g,x,!0),M={x:this.instepBoxLeft.min.x,y:this.instepBoxLeft.min.y,z:this.instepBoxLeft.min.z},N={x:this.instepBoxLeft.min.x,y:this.instepBoxLeft.min.y+(this.instepBoxLeft.max.y-this.instepBoxLeft.min.y)/2,z:this.instepBoxLeft.min.z},g=new THREE.Vector3(M.x,M.y-this.dashedPadding,M.z),x=new THREE.Vector3(N.x,N.y+this.dashedPadding,N.z),this.drawLineFromToAlbert2(g,x,!0)}},this.drawTimeout)}drawRightWidthAlbert2(){setTimeout(()=>{if("WidthRight"===this.currentData||"Width"===this.currentData){var m="Right",M={x:this.instepBoxRight.min.x+this.arrowHeadLength,y:this.instepBoxRight.min.y,z:this.instepBoxRight.min.z},N={x:this.instepBoxRight.max.x-this.arrowHeadLength,y:this.instepBoxRight.min.y,z:this.instepBoxRight.min.z},g=new THREE.Vector3(M.x,M.y-this.dashedPadding/2,M.z),x=new THREE.Vector3(N.x,N.y-this.dashedPadding/2,N.z);this.drawLineFromToAlbert2(g,x,!1),N={x:this.instepBoxRight.min.x,y:this.instepBoxRight.min.y,z:this.instepBoxRight.min.z};var P=(this.instepBoxRight.max.x-this.instepBoxRight.min.x)/2,Q=new THREE.Vector3(N.x+P,N.y-this.dashedPadding/2,N.z),U=new THREE.Vector3(1,0,0).normalize();this.drawArrowAlbert2(m,P,Q,U),U=new THREE.Vector3(-1,0,0).normalize(),this.drawArrowAlbert2(m,P,Q,U),M={x:this.instepBoxRight.max.x,y:this.instepBoxRight.min.y,z:this.instepBoxRight.min.z},N={x:this.instepBoxRight.max.x,y:this.instepBoxRight.min.y+(this.instepBoxRight.max.y-this.instepBoxRight.min.y)/2,z:this.instepBoxRight.min.z},g=new THREE.Vector3(M.x,M.y-this.dashedPadding,M.z),x=new THREE.Vector3(N.x,N.y+this.dashedPadding,N.z),this.drawLineFromToAlbert2(g,x,!0),M={x:this.instepBoxRight.min.x,y:this.instepBoxRight.min.y,z:this.instepBoxRight.min.z},N={x:this.instepBoxRight.min.x,y:this.instepBoxRight.min.y+(this.instepBoxRight.max.y-this.instepBoxRight.min.y)/2,z:this.instepBoxRight.min.z},g=new THREE.Vector3(M.x,M.y-this.dashedPadding,M.z),x=new THREE.Vector3(N.x,N.y+this.dashedPadding,N.z),this.drawLineFromToAlbert2(g,x,!0)}},this.drawTimeout)}drawDorsalHeightAlbert2(){setTimeout(()=>{("DorsalHeight"===this.currentData||"InstepHeight"===this.currentData)&&(this.drawLeftDorsalHeightAlbert2(),this.drawRightDorsalHeightAlbert2())},this.drawTimeout)}drawLeftDorsalHeightAlbert2(){setTimeout(()=>{("DorsalHeightLeft"===this.currentData||"DorsalHeight"===this.currentData||"InstepHeight"===this.currentData||"InstepHeightLeft"===this.currentData)&&(this.drawDashedMiddleBottomInAlbert2("Left"),this.drawDashedMiddleTopInAlbert2("Left"),this.drawLineVerticalMiddleSideInAlbert2("Left"),this.drawArrowsVerticalMiddleInAlbert2("Left"))},this.drawTimeout)}drawRightDorsalHeightAlbert2(){setTimeout(()=>{("DorsalHeightRight"===this.currentData||"DorsalHeight"===this.currentData||"InstepHeight"===this.currentData||"InstepHeightRight"===this.currentData)&&(this.drawDashedMiddleBottomInAlbert2("Right"),this.drawDashedMiddleTopInAlbert2("Right"),this.drawLineVerticalMiddleSideInAlbert2("Right"),this.drawArrowsVerticalMiddleInAlbert2("Right"))},this.drawTimeout)}GetLengthWidthDorsalAlbert2(m){for(var M=m.length,N=9999,g=0,x=9999,P=0,Q=9999,U=0,G=0;G<M;G+=3)P<m[G+2]&&(P=m[G+2]),x>m[G+2]&&(x=m[G+2]),U<m[G]&&(U=m[G]),Q>m[G]&&(Q=m[G]);var dt=x+(P-x)/2;for(G=0;G<M;G+=3)m[G+2]-.1<=dt&&dt<=m[G+2]+.1&&(g<m[G+1]&&(g=m[G+1]),N>m[G+1]&&(N=m[G+1]));return g}drawArchHeightAlbert2(){setTimeout(()=>{"ArchHeight"===this.currentData&&(this.drawArchLeftAlbert2(this.LeftArch),this.drawArchRightAlbert2(this.RightArch))},this.drawTimeout)}drawArchLeftAlbert2(m){var M=.085*(this.boxLeft.max.x-this.boxLeft.min.x);setTimeout(()=>{("ArchHeightLeft"===this.currentData||"ArchHeight"===this.currentData)&&(this.drawDashedMiddleBottomInHalfAlbert2("Left",M),this.drawDashedMiddleArchInHalfAlbert2("Left",M),this.drawArrowsVerticalMiddleArchInAlbert2("Left",M))},this.drawTimeout)}drawArchRightAlbert2(m){var M=.085*(this.boxLeft.max.x-this.boxLeft.min.x);setTimeout(()=>{("ArchHeightRight"===this.currentData||"ArchHeight"===this.currentData)&&(this.drawDashedMiddleBottomInHalfAlbert2("Right",-M),this.drawDashedMiddleArchInHalfAlbert2("Right",-M),this.drawArrowsVerticalMiddleArchInAlbert2("Right",-M))},this.drawTimeout)}drawGirthAlbert2(){setTimeout(()=>{"Girth"===this.currentData&&(this.drawGirthLeftAlbert2(),this.drawGirthRightAlbert2())},this.drawTimeout)}drawGirthLeftAlbert2(){var m=(this.instepBoxLeft.max.z-this.instepBoxLeft.min.z)/2,M={x:this.instepBoxLeft.min.x,y:this.instepBoxLeft.max.y-0,z:m},N={x:this.instepBoxLeft.min.x+(this.instepBoxLeft.max.x-this.instepBoxLeft.min.x)/2,y:this.instepBoxLeft.max.y-0,z:this.instepBoxLeft.max.z},g={x:this.instepBoxLeft.max.x,y:this.instepBoxLeft.max.y-0,z:m},x=new THREE.LineMaterial({color:this.main_color,linewidth:this.lineWidth,vertexColors:!0,dashSize:this.dashedSize,gapSize:this.gapSize,dashed:!1}),P=(this.instepBoxLeft.max.z-this.instepBoxLeft.min.z)/2,Q=.15*(this.instepBoxLeft.max.x-this.instepBoxLeft.min.x),U=.15*(this.instepBoxLeft.max.x-this.instepBoxLeft.min.x),G=new THREE.QuadraticBezierCurve3(new THREE.Vector3(M.x+Q-U,M.y,M.z+P),new THREE.Vector3(N.x-U,N.y,N.z+.001+P),new THREE.Vector3(g.x-Q-U,g.y,g.z+P)).getPoints(50),dt=[],wt=[],W=new THREE.Color;this.addLineLeft(dt,wt,void 0,x,!1);var te=Math.floor(G.length/2),ae=new THREE.ArrowHelper(new THREE.Vector3(0,0,-1).normalize(),new THREE.Vector3(0,0,0),this.arrowHeadLength+1e-7,this.main_color,this.arrowHeadLength,this.arrowHeadWidth),Ae=(M.z-N.z)/(M.x-N.x),ge=new THREE.Object3D;ge.position.x=M.x+Q-U,ge.position.y=M.y,ge.position.z=M.z+P,ge.rotation.order="YXZ",ge.rotation.x=0,ge.rotation.y=Ae,ge.rotation.z=0,ge.add(ae),ge.name="LeftTopArrow",this.modelGroup.add(ge),this._drawedLines.push(ge.name),ge.visible=!1;var We=new THREE.ArrowHelper(new THREE.Vector3(0,0,-1).normalize(),new THREE.Vector3(0,0,0),this.arrowHeadLength+1e-7,this.main_color,this.arrowHeadLength,this.arrowHeadWidth),Cn=(N.z-g.z)/(N.x-g.x),rn=new THREE.Object3D;rn.position.x=g.x-Q-U,rn.position.y=g.y,rn.position.z=g.z+P,rn.rotation.order="XYZ",rn.rotation.x=0,rn.rotation.y=Cn,rn.rotation.z=0,rn.add(We),rn.name="RightTopArrow",this.modelGroup.add(rn),this._drawedLines.push(rn.name),rn.visible=!1,setTimeout(()=>{("GirthLeft"===this.currentData||"Girth"===this.currentData)&&(this.addPointsLeft(te,te+1,dt,wt,void 0,x,!1,W,G,0),this.animateArrowsLeft(te-1,te+1,G,0,ge,rn))},this.drawTimeout)}addLineLeft(m,M,N,g,x){if(m.length>1){var P=new THREE.LineGeometry;P.setPositions(m),P.setColors(M),(N=new THREE.Line2(P,g)).computeLineDistances(),N.name="curveLine",this.modelGroup.add(N),this._drawedLines.push(N.name)}}addPointsLeft(m,M,N,g,x,P,Q,U,G,dt){var wt=!1;if(G[m]&&(N.unshift(G[m].z),N.unshift(G[m].y),N.unshift(G[m].x),g.unshift(U.r,U.g,U.b),wt=!0),G[M]&&(N.push(G[M].x),N.push(G[M].y),N.push(G[M].z),g.push(U.r,U.g,U.b),wt=!0),Q){var W=new THREE.LineGeometry;W.setPositions(N),W.setColors(g),x.geometry=W,x.computeLineDistances()}else this.addLineLeft(N,g,x,P,Q);wt&&setTimeout(()=>{this.addPointsLeft(m-1,M+1,N,g,x,P,Q,U,G,dt)},dt)}animateArrowsLeft(m,M,N,g,x,P){N[m]&&(x.position.x=N[m].x,x.position.y=N[m].y,x.position.z=N[m].z),N[M]&&(P.position.x=N[M].x,P.position.y=N[M].y,P.position.z=N[M].z),x.visible=!0,P.visible=!0,N[m]&&setTimeout(()=>{this.animateArrowsLeft(m-1,M+1,N,g,x,P)},g)}drawGirthRightAlbert2(){var m=(this.instepBoxRight.max.z-this.instepBoxRight.min.z)/2,M={x:this.instepBoxRight.min.x,y:this.instepBoxRight.max.y-0,z:m},N={x:this.instepBoxRight.min.x+(this.instepBoxRight.max.x-this.instepBoxRight.min.x)/2,y:this.instepBoxRight.max.y-0,z:this.instepBoxRight.max.z},g={x:this.instepBoxRight.max.x,y:this.instepBoxRight.max.y-0,z:m},x=new THREE.LineMaterial({color:this.main_color,linewidth:this.lineWidth,vertexColors:!0,dashSize:this.dashedSize,gapSize:this.gapSize,dashed:!1}),P=(this.instepBoxRight.max.z-this.instepBoxRight.min.z)/2,Q=.15*(this.instepBoxRight.max.x-this.instepBoxRight.min.x),U=.15*-(this.instepBoxRight.max.x-this.instepBoxRight.min.x),G=new THREE.QuadraticBezierCurve3(new THREE.Vector3(M.x+Q-U,M.y,M.z+P),new THREE.Vector3(N.x-U,N.y,N.z+.001+P),new THREE.Vector3(g.x-Q-U,g.y,g.z+P)).getPoints(50),dt=[],wt=[],W=new THREE.Color;this.addLineRight(dt,wt,void 0,x,!1);var te=Math.floor(G.length/2),ae=new THREE.ArrowHelper(new THREE.Vector3(0,0,-1).normalize(),new THREE.Vector3(0,0,0),this.arrowHeadLength+1e-7,this.main_color,this.arrowHeadLength,this.arrowHeadWidth),Ae=(M.z-N.z)/(M.x-N.x),ge=new THREE.Object3D;ge.position.x=M.x+Q-U,ge.position.y=M.y,ge.position.z=M.z+P,ge.rotation.order="XYZ",ge.rotation.x=0,ge.rotation.y=Ae,ge.rotation.z=0,ge.add(ae),ge.name="LeftTopArrow",this.modelGroup.add(ge),this._drawedLines.push(ge.name),ge.visible=!1;var We=new THREE.ArrowHelper(new THREE.Vector3(0,0,-1).normalize(),new THREE.Vector3(0,0,0),this.arrowHeadLength+1e-7,this.main_color,this.arrowHeadLength,this.arrowHeadWidth),Cn=(Ae=(N.z-g.z)/(N.x-g.x),new THREE.Object3D);Cn.position.x=g.x-Q-U,Cn.position.y=g.y,Cn.position.z=g.z+P,Cn.rotation.order="XYZ",Cn.rotation.x=0,Cn.rotation.y=Ae,Cn.rotation.z=0,Cn.add(We),Cn.name="RightTopArrow",this.modelGroup.add(Cn),this._drawedLines.push(Cn.name),Cn.visible=!1,setTimeout(()=>{("GirthRight"===this.currentData||"Girth"===this.currentData)&&(this.addPointsRight(te,te+1,dt,wt,void 0,x,!1,W,G,0),this.animateArrowsRight(te-1,te+1,G,0,ge,Cn))},this.drawTimeout)}addLineRight(m,M,N,g,x){if(m.length>1){var P=new THREE.LineGeometry;P.setPositions(m),P.setColors(M),(N=new THREE.Line2(P,g)).computeLineDistances(),N.name="curveLine",this.modelGroup.add(N),this._drawedLines.push(N.name)}}addPointsRight(m,M,N,g,x,P,Q,U,G,dt){var wt=!1;if(G[m]&&(N.unshift(G[m].z),N.unshift(G[m].y),N.unshift(G[m].x),g.unshift(U.r,U.g,U.b),wt=!0),G[M]&&(N.push(G[M].x),N.push(G[M].y),N.push(G[M].z),g.push(U.r,U.g,U.b),wt=!0),Q){var W=new THREE.LineGeometry;W.setPositions(N),W.setColors(g),x.geometry=W,x.computeLineDistances()}else this.addLineRight(N,g,x,P,Q);wt&&setTimeout(()=>{this.addPointsRight(m-1,M+1,N,g,x,P,Q,U,G,dt)},dt)}animateArrowsRight(m,M,N,g,x,P){N[m]&&(x.position.x=N[m].x,x.position.y=N[m].y,x.position.z=N[m].z),N[M]&&(P.position.x=N[M].x,P.position.y=N[M].y,P.position.z=N[M].z),x.visible=!0,P.visible=!0,N[m]&&setTimeout(()=>{this.animateArrowsRight(m-1,M+1,N,g,x,P)},g)}cleanThreeJs(){for(var m=this._scene.children.length-1;m>=0;m--){var M=this._scene.children[m];("Mesh"===M.type||"LineSegments"===M.type)&&(this._scene.remove(M),M.material&&(M.material.dispose(),M.material.map&&M.material.map.dispose()),M.geometry&&(M.geometry.dispose(),M.geometry.attributes&&M.geometry.attributes.normal&&(M.geometry.attributes.normal.array=null,M.geometry.attributes.normal.position=null,M.geometry.attributes.normal.uv=null)),M.indices=[],M.vertices=[],M.uvs=[]),"Orthogra
1phicCamera"===M.type&&this._scene.remove(M),"PointLight"===M.type&&this._scene.remove(M),"AmbientLight"===M.type&&this._scene.remove(M),"DirectionalLight"===M.type&&this._scene.remove(M),"Group"===M.type&&this._scene.remove(M),M=null}this.animations.rotateAnimation.stop(),this.animations.arrowLengthAnimation.stop(),this.animations.lineAnimation.stop(),this.animations.fadeAnimation.stop(),this._renderer.forceContextLoss(),this.mainGroup=null,this.modelGroup=null,this._camera=null,this._controls.dispose(),this._controls=null,this._scene=null,this._light=null,this._renderer.renderLists.dispose(),this._renderer.clear(),this._renderer.dispose(),this._renderer=null,this._shadowRenderer.shadowGroup=null,this._shadowRenderer.renderTarget=null,this._shadowRenderer.renderTargetBlur=null,this._shadowRenderer.plane=null,this._shadowRenderer.blurPlane=null,this._shadowRenderer.fillPlane=null,this._shadowRenderer.shadowCamera=null,this._shadowRenderer.cameraHelper=null,this._shadowRenderer.horizontalBlurMaterial=null,this._shadowRenderer.verticalBlurMaterial=null}ngOnDestroy(){super.ngOnDestroy(),this._footService.fbxPbject=void 0,null!=this.frameId&&cancelAnimationFrame(this.frameId),this.cleanThreeJs(),this.threeDService.resetObjects(),this.urlFoots$.next(null),this.urlFoots$.complete()}}return J.\u0275fac=function(ht){return new(ht||J)(p.Y36(p.SBq),p.Y36(q.L),p.Y36(p.R0b),p.Y36(s.S))},J.\u0275cmp=p.Xpm({type:J,selectors:[["app-feet-renderer"]],inputs:{threeDPosition:"threeDPosition",passportMeasurements:"passportMeasurements",lfoot:"lfoot",rfoot:"rfoot"},features:[p.qOj,p.TTD],decls:1,vars:0,consts:[["id","threeDProgressBarOuter"]],template:function(ht,m){1&ht&&p._UZ(0,"div",0)},styles:["[_nghost-%COMP%]{display:block;aspect-ratio:4/3;height:258px;width:380px}@media only screen and (max-width: 599px){[_nghost-%COMP%]{height:150px;width:200px}}@media only screen and (min-width: 600px) and (max-width: 959px){[_nghost-%COMP%]{height:180px;width:240px}}@media only screen and (min-width: 960px) and (max-width: 1279px){[_nghost-%COMP%]{height:210px;width:280px}}@media only screen and (min-width: 1280px){[_nghost-%COMP%]{height:240px;width:320px}}"]}),J})();function vt(J,ht){if(1&J&&p._UZ(0,"app-feet-renderer",2),2&J){const m=p.oxw();p.Q6J("threeDPosition",m.treeDPosition)("lfoot",m.lfoot)("rfoot",m.rfoot)}}let at=(()=>{class J{constructor(m,M){this.threeDService=m,this.appService=M,this.isLoaded=!1,this.treeDPosition="Init",this.threeDPosition="Length",this.threeDService.position.subscribe(N=>{this.threeDPosition=N})}ngOnInit(){this.lfoot&&this.rfoot?this.isLoaded=!0:this.appService.getProfileLastScan(this.user).subscribe(m=>{m.footdata&&(this.lfoot=m.footdata.leftfoot.objurl,this.rfoot=m.footdata.rightfoot.objurl,this.isLoaded=!0)})}}return J.\u0275fac=function(ht){return new(ht||J)(p.Y36(s.S),p.Y36(j.z))},J.\u0275cmp=p.Xpm({type:J,selectors:[["app-threedfeetmodule"]],inputs:{user:"user",lfoot:"lfoot",rfoot:"rfoot"},decls:2,vars:1,consts:[[1,"feet-container"],[3,"threeDPosition","lfoot","rfoot",4,"ngIf"],[3,"threeDPosition","lfoot","rfoot"]],template:function(ht,m){1&ht&&(p.TgZ(0,"div",0),p.YNc(1,vt,1,3,"app-feet-renderer",1),p.qZA()),2&ht&&(p.xp6(1),p.Q6J("ngIf",m.isLoaded))},directives:[k.O5,it],styles:[".feet-container[_ngcontent-%COMP%]{display:flex;justify-content:center;background:#F1F1F1 0% 0% no-repeat padding-box}"]}),J})()},110:(u,D,v)=>{v.r(D),v.d(D,{ThreedfeetmoduleModule:()=>V});var p=v(9808),s=v(1171),j=v(6435);let k=(()=>{class _{}return _.\u0275fac=function(H){return new(H||_)},_.\u0275mod=j.oAB({type:_}),_.\u0275inj=j.cJS({imports:[[],s.Bz]}),_})();var b=v(997),B=v(7448);let V=(()=>{class _{}return _.\u0275fac=function(H){return new(H||_)},_.\u0275mod=j.oAB({type:_}),_.\u0275inj=j.cJS({providers:[b.S,B.L],imports:[[p.ez,k]]}),_})()},6026:(u,D,v)=>{v.d(D,{N:()=>p});const p={production:!0,url:" https://fitgeniuswebpluginapi.aetrextechnology.com"}},585:(u,D,v)=>{var p=v(2313),s=v(6435),j=v(8929),k=v(6686),b=v(2268);const B=new class extends b.v{}(class extends k.o{constructor(Ht,Jt){super(Ht,Jt),this.scheduler=Ht,this.work=Jt}schedule(Ht,Jt=0){return Jt>0?super.schedule(Ht,Jt):(this.delay=Jt,this.state=Ht,this.scheduler.flush(this),this)}execute(Ht,Jt){return Jt>0||this.closed?super.execute(Ht,Jt):this._execute(Ht,Jt)}
1requestAsyncId(Ht,Jt,Ie=0){return null!==Ie&&Ie>0||null===Ie&&this.delay>0?super.requestAsyncId(Ht,Jt,Ie):Ht.flush(this)}});var V=v(2654),_=v(3489),H=v(8896),Y=v(1086),q=v(2916);class vt{constructor(Ht,Jt,Ie){this.kind=Ht,this.value=Jt,this.error=Ie,this.hasValue="N"===Ht}observe(Ht){switch(this.kind){case"N":return Ht.next&&Ht.next(this.value);case"E":return Ht.error&&Ht.error(this.error);case"C":return Ht.complete&&Ht.complete()}}do(Ht,Jt,Ie){switch(this.kind){case"N":return Ht&&Ht(this.value);case"E":return Jt&&Jt(this.error);case"C":return Ie&&Ie()}}accept(Ht,Jt,Ie){return Ht&&"function"==typeof Ht.next?this.observe(Ht):this.do(Ht,Jt,Ie)}toObservable(){switch(this.kind){case"N":return(0,Y.of)(this.value);case"E":return Jt=this.error,new q.y(Je=>Je.error(Jt));case"C":return(0,H.c)()}var Jt;throw new Error("unexpected notification kind value")}static createNext(Ht){return void 0!==Ht?new vt("N",Ht):vt.undefinedValueNotification}static createError(Ht){return new vt("E",void 0,Ht)}static createComplete(){return vt.completeNotification}}vt.completeNotification=new vt("C"),vt.undefinedValueNotification=new vt("N",void 0);class at extends _.L{constructor(Ht,Jt,Ie=0){super(Ht),this.scheduler=Jt,this.delay=Ie}static dispatch(Ht){const{notification:Jt,destination:Ie}=Ht;Jt.observe(Ie),this.unsubscribe()}scheduleMessage(Ht){this.destination.add(this.scheduler.schedule(at.dispatch,this.delay,new J(Ht,this.destination)))}_next(Ht){this.scheduleMessage(vt.createNext(Ht))}_error(Ht){this.scheduleMessage(vt.createError(Ht)),this.unsubscribe()}_complete(){this.scheduleMessage(vt.createComplete()),this.unsubscribe()}}class J{constructor(Ht,Jt){this.notification=Ht,this.destination=Jt}}var ht=v(5279),m=v(5283);class M extends j.xQ{constructor(Ht=Number.POSITIVE_INFINITY,Jt=Number.POSITIVE_INFINITY,Ie){super(),this.scheduler=Ie,this._events=[],this._infiniteTimeWindow=!1,this._bufferSize=Ht<1?1:Ht,this._windowTime=Jt<1?1:Jt,Jt===Number.POSITIVE_INFINITY?(this._infiniteTimeWindow=!0,this.next=this.nextInfiniteTimeWindow):this.next=this.nextTimeWindow}nextInfiniteTimeWindow(Ht){if(!this.isStopped){const Jt=this._events;Jt.push(Ht),Jt.length>this._bufferSize&&Jt.shift()}super.next(Ht)}nextTimeWindow(Ht){this.isStopped||(this._events.push(new N(this._getNow(),Ht)),this._trimBufferThenGetEvents()),super.next(Ht)}_subscribe(Ht){const Jt=this._infiniteTimeWindow,Ie=Jt?this._events:this._trimBufferThenGetEvents(),Je=this.scheduler,Te=Ie.length;let nn;if(this.closed)throw new ht.N;if(this.isStopped||this.hasError?nn=V.w.EMPTY:(this.observers.push(Ht),nn=new m.W(this,Ht)),Je&&Ht.add(Ht=new at(Ht,Je)),Jt)for(let pn=0;pn<Te&&!Ht.closed;pn++)Ht.next(Ie[pn]);else for(let pn=0;pn<Te&&!Ht.closed;pn++)Ht.next(Ie[pn].value);return this.hasError?Ht.error(this.thrownError):this.isStopped&&Ht.complete(),nn}_getNow(){return(this.scheduler||B).now()}_trimBufferThenGetEvents(){const Ht=this._getNow(),Jt=this._bufferSize,Ie=this._windowTime,Je=this._events,Te=Je.length;let nn=0;for(;nn<Te&&!(Ht-Je[nn].time<Ie);)nn++;return Te>Jt&&(nn=Math.max(nn,Te-Jt)),nn>0&&Je.splice(0,nn),Je}}class N{constructor(Ht,Jt){this.time=Ht,this.value=Jt}}var g=v(6787),x=v(7545),P=v(4850);const Q={schedule(Lt,Ht){const Jt=setTimeout(Lt,Ht);return()=>clearTimeout(Jt)},scheduleBeforeRender(Lt){if(typeof window>"u")return Q.schedule(Lt,0);if(void 0===window.requestAnimationFrame)return Q.schedule(Lt,16);const Ht=window.requestAnimationFrame(Lt);return()=>window.cancelAnimationFrame(Ht)}};let U;function G(Lt,Ht,Jt){let Ie=Jt;return!!(Te=Lt)&&Te.nodeType===Node.ELEMENT_NODE&&Ht.some((Je,Te)=>!("*"===Je||!function(pn,Pn){if(!U){const Mn=Element.prototype;U=Mn.matches||Mn.matchesSelector||Mn.mozMatchesSelector||Mn.msMatchesSelector||Mn.oMatchesSelector||Mn.webkitMatchesSelector}return pn.nodeType===Node.ELEMENT_NODE&&U.call(pn,Pn)}(Lt,Je)||(Ie=Te,0))),Ie;var Te}class dt{constructor(Ht,Jt){this.componentFactory=Jt.get(s._Vd).resolveComponentFactory(Ht)}create(Ht){return new wt(this.componentFactory,Ht)}}class wt{constructor(Ht,Jt){this.componentFactory=Ht,this.injector=Jt,this.eventEmitters=new M(1),this.events=this.eventEmitters.pipe((0,x.w)(Ie=>(0,g.T)(...Ie))),this.componentRef=null,this.viewChangeDetectorRef=null,this.inputChanges=null,this.hasInputChanges=!1,this.implementsOnChanges=!1,this.scheduledChangeDetectionFn=null,this.scheduledDestroyFn=null,this.initialInputValues=new Map,this.unchangedInputs=new Set(this.componentFactory.inputs.map(({propName:Ie})=>Ie)),this.ngZone=this.injector.get(s.R0b),this.elementZone=typeof Zone>"u"?null:this.ngZone.run(()=>Zone.current)}connect(Ht){this.runInZone(()=>{if(null!==this.scheduledDestroyFn)return this.scheduledDestroyFn(),void(this.scheduledDestroyFn=null);null===this.componentRef&&this.initializeComponent(Ht)})}disconnect(){this.runInZone(()=>{null===this.componentRef||null!==this.scheduledDestroyFn||(this.scheduledDestroyFn=Q.schedule(()=>{null!==this.componentRef&&(this.componentRef.destroy(),this.componentRef=null,this.viewChangeDetectorRef=null)},10))})}getInputValue(Ht){return this.runInZone(()=>null===this.componentRef?this.initialInputValues.get(Ht):this.componentRef.instance[Ht])}setInputValue(Ht,Jt){this.runInZone(()=>{var Je,Te;null!==this.componentRef?((Je=Jt)===(Te=this.getInputValue(Ht))||Je!=Je&&Te!=Te)&&(void 0!==Jt||!this.unchangedInputs.has(Ht))||(this.recordInputChange(Ht,Jt),this.unchangedInputs.delete(Ht),this.hasInputChanges=!0,this.componentRef.instance[Ht]=Jt,this.scheduleDetectChanges()):this.initialInputValues.set(Ht,Jt)})}initializeComponent(Ht){const Jt=s.zs3.create({providers:[],parent:this.injector}),Ie=function(Te,nn){const pn=Te.childNodes,Pn=nn.map(()=>[]);let Mn=-1;nn.some((Ve,Pe)=>"*"===Ve&&(Mn=Pe,!0));for(let Ve=0,Pe=pn.length;Ve<Pe;
1++Ve){const zt=pn[Ve],me=G(zt,nn,Mn);-1!==me&&Pn[me].push(zt)}return Pn}(Ht,this.componentFactory.ngContentSelectors);this.componentRef=this.componentFactory.create(Jt,Ie,Ht),this.viewChangeDetectorRef=this.componentRef.injector.get(s.sBO),this.implementsOnChanges="function"==typeof this.componentRef.instance.ngOnChanges,this.initializeInputs(),this.initializeOutputs(this.componentRef),this.detectChanges(),this.injector.get(s.z2F).attachView(this.componentRef.hostView)}initializeInputs(){this.componentFactory.inputs.forEach(({propName:Ht})=>{this.initialInputValues.has(Ht)&&this.setInputValue(Ht,this.initialInputValues.get(Ht))}),this.initialInputValues.clear()}initializeOutputs(Ht){const Jt=this.componentFactory.outputs.map(({propName:Ie,templateName:Je})=>Ht.instance[Ie].pipe((0,P.U)(Te=>({name:Je,value:Te}))));this.eventEmitters.next(Jt)}callNgOnChanges(Ht){if(!this.implementsOnChanges||null===this.inputChanges)return;const Jt=this.inputChanges;this.inputChanges=null,Ht.instance.ngOnChanges(Jt)}markViewForCheck(Ht){this.hasInputChanges&&(this.hasInputChanges=!1,Ht.markForCheck())}scheduleDetectChanges(){this.scheduledChangeDetectionFn||(this.scheduledChangeDetectionFn=Q.scheduleBeforeRender(()=>{this.scheduledChangeDetectionFn=null,this.detectChanges()}))}recordInputChange(Ht,Jt){if(!this.implementsOnChanges)return;null===this.inputChanges&&(this.inputChanges={});const Ie=this.inputChanges[Ht];if(Ie)return void(Ie.currentValue=Jt);const Je=this.unchangedInputs.has(Ht),Te=Je?void 0:this.getInputValue(Ht);this.inputChanges[Ht]=new s.WD2(Te,Jt,Je)}detectChanges(){null!==this.componentRef&&(this.callNgOnChanges(this.componentRef),this.markViewForCheck(this.viewChangeDetectorRef),this.componentRef.changeDetectorRef.detectChanges())}runInZone(Ht){return this.elementZone&&Zone.current!==this.elementZone?this.ngZone.run(Ht):Ht()}}class W extends HTMLElement{constructor(){super(...arguments),this.ngElementEventsSubscription=null}}function te(Lt,Ht){const Jt=(pn=Lt,Ht.injector.get(s._Vd).resolveComponentFactory(pn).inputs),Ie=Ht.strategyFactory||new dt(Lt,Ht.injector),Je=function(pn){const Pn={};return pn.forEach(({propName:Mn,templateName:Ve})=>{var zt;Pn[(zt=Ve,zt.replace(/[A-Z]/g,me=>`-${me.toLowerCase()}`))]=Mn}),Pn}(Jt);var pn;class Te extends W{constructor(pn){super(),this.injector=pn}get ngElementStrategy(){if(!this._ngElementStrategy){const pn=this._ngElementStrategy=Ie.create(this.injector||Ht.injector);Jt.forEach(({propName:Pn})=>{if(!this.hasOwnProperty(Pn))return;const Mn=this[Pn];delete this[Pn],pn.setInputValue(Pn,Mn)})}return this._ngElementStrategy}attributeChangedCallback(pn,Pn,Mn,Ve){this.ngElementStrategy.setInputValue(Je[pn],Mn)}connectedCallback(){let pn=!1;this.ngElementStrategy.events&&(this.subscribeToEvents(),pn=!0),this.ngElementStrategy.connect(this),pn||this.subscribeToEvents()}disconnectedCallback(){this._ngElementStrategy&&this._ngElementStrategy.disconnect(),this.ngElementEventsSubscription&&(this.ngElementEventsSubscription.unsubscribe(),this.ngElementEventsSubscription=null)}subscribeToEvents(){this.ngElementEventsSubscription=this.ngElementStrategy.events.subscribe(pn=>{const Pn=function(Ve,Pe,zt){if("function"!=typeof CustomEvent){const me=Ve.createEvent("CustomEvent");return me.initCustomEvent(Pe,!1,!1,zt),me}return new CustomEvent(Pe,{bubbles:!1,cancelable:!1,detail:zt})}(this.ownerDocument,pn.name,pn.value);this.dispatchEvent(Pn)})}}return Te.observedAttributes=Object.keys(Je),Jt.forEach(({propName:nn})=>{Object.defineProperty(Te.prototype,nn,{get(){return this.ngElementStrategy.getInputValue(nn)},set(pn){this.ngElementStrategy.setInputValue(nn,pn)},configurable:!0,enumerable:!0})}),Te}var ae=v(520),Ae=v(1171);const ge=[{path:"fgfootprofile",loadChildren:()=>Promise.resolve().then(v.bind(v,9788)).then(Lt=>Lt.FgFootProfileModule)},{path:"threedfeet",loadChildren:()=>Promise.resolve().then(v.bind(v,110)).then(Lt=>Lt.ThreedfeetmoduleModule)}];let We=(()=>{class Lt{}return Lt.\u0275fac=function(Ht){return new(Ht||Lt)},Lt.\u0275mod=s.oAB({type:Lt}),Lt.\u0275inj=s.cJS({imports:[[Ae.Bz.forRoot(ge)],Ae.Bz]}),Lt})();
1var Cn=v(8231),rn=v(110),Me=v(8017),Le=v(9808),Ee=v(9788),Qt=v(545),Ut=v(6360),Mt=v(2155);function It(Lt,Ht,Jt,Ie,Je,Te,nn){try{var pn=Lt[Te](nn),Pn=pn.value}catch(Mn){return void Jt(Mn)}pn.done?Ht(Pn):Promise.resolve(Pn).then(Ie,Je)}var mt=v(7688),lt=v(7093);function et(Lt,Ht){if(1&Lt&&(s.TgZ(0,"div",39),s._UZ(1,"img",40),s.qZA()),2&Lt){const Jt=s.oxw(2);s.xp6(1),s.Q6J("src",Jt.pressureImg,s.LSH)}}function ct(Lt,Ht){if(1&Lt&&(s.TgZ(0,"div",41),s._UZ(1,"app-threedfeetmodule",42),s.qZA()),2&Lt){const Jt=s.oxw(2);s.xp6(1),s.Q6J("lfoot",Jt.footData.leftfoot.objurl)("rfoot",Jt.footData.rightfoot.objurl)}}function Vt(Lt,Ht){if(1&Lt){const Jt=s.EpF();s.TgZ(0,"div",1),s.TgZ(1,"div",2),s.TgZ(2,"div",3),s.TgZ(3,"div",4),s.TgZ(4,"div",5),s.NdJ("click",function(){return s.CHM(Jt),s.oxw().closeDialog()}),s.qZA(),s.qZA(),s.TgZ(5,"div",6),s._uU(6,"FIT PROFILE"),s.qZA(),s.qZA(),s.TgZ(7,"div",7),s._uU(8),s.qZA(),s.TgZ(9,"div",8),s.TgZ(10,"div",9),s.TgZ(11,"div"),s.TgZ(12,"div",10),s.TgZ(13,"div",11),s.TgZ(14,"div"),s._UZ(15,"img",12),s.qZA(),s.TgZ(16,"div",13),s.TgZ(17,"div",14),s._uU(18,"Your most recent scan was at "),s.qZA(),s.TgZ(19,"div",15),s._uU(20),s.qZA(),s.qZA(),s.qZA(),s.qZA(),s.TgZ(21,"div",10),s.TgZ(22,"div",11),s.TgZ(23,"div"),s._UZ(24,"img",16),s.qZA(),s.TgZ(25,"div",17),s.TgZ(26,"div",15),s._uU(27),s.ALo(28,"date"),s.ALo(29,"date"),s.qZA(),s.qZA(),s.qZA(),s.qZA(),s.qZA(),s.qZA(),s.TgZ(30,"div",18),s.TgZ(31,"div",19),s._uU(32,"Your Median Shoe Size"),s.qZA(),s.TgZ(33,"div",20),s._uU(34),s.qZA(),s.TgZ(35,"div",21),s.TgZ(36,"div",22),s.TgZ(37,"div",23),s._uU(38,"Left"),s.qZA(),s.TgZ(39,"div",24),s._uU(40),s.qZA(),s.qZA(),s.TgZ(41,"div",25),s.TgZ(42,"div",23),s._uU(43,"ARCH TYPE"),s.qZA(),s.qZA(),s.TgZ(44,"div",26),s.TgZ(45,"div"),s.TgZ(46,"div",27),s._uU(47,"Right"),s.qZA(),s.TgZ(48,"div",28),s._uU(49),s.qZA(),s.qZA(),s.qZA(),s.qZA(),s.qZA(),s.TgZ(50,"div",29),s.TgZ(51,"div",22),s.TgZ(52,"div",30),s.TgZ(53,"span"),s._uU(54,"LEFT"),s.qZA(),s.qZA(),s.TgZ(55,"div"),s._uU(56),s.ALo(57,"number"),s.qZA(),s.TgZ(58,"div"),s._uU(59),s.ALo(60,"number"),s.qZA(),s.TgZ(61,"div"),s._uU(62),s.ALo(63,"number"),s.qZA(),s.TgZ(64,"div"),s._uU(65),s.ALo(66,"number"),s.qZA(),s.TgZ(67,"div"),s._uU(68),s.ALo(69,"number"),s.qZA(),s.qZA(),s.TgZ(70,"div",31),s.TgZ(71,"div",32),s._uU(72,"MEASUREMENTS"),s.qZA(),s.TgZ(73,"div"),s._uU(74,"LENGTH"),s.qZA(),s.TgZ(75,"div"),s._uU(76,"WIDTH"),s.qZA(),s.TgZ(77,"div"),s._uU(78,"INSTEP"),s.qZA(),s.TgZ(79,"div"),s._uU(80,"ARCH HEIGHT"),s.qZA(),s.TgZ(81,"div"),s._uU(82,"GIRTH"),s.qZA(),s.qZA(),s.TgZ(83,"div",33),s.TgZ(84,"div",30),s.TgZ(85,"span"),s._uU(86,"RIGHT"),s.qZA(),s.qZA(),s.TgZ(87,"div"),s._uU(88),s.ALo(89,"number"),s.qZA(),s.TgZ(90,"div"),s._uU(91),s.ALo(92,"number"),s.qZA(),s.TgZ(93,"div"),s._uU(94),s.ALo(95,"number"),s.qZA(),s.TgZ(96,"div"),s._uU(97),s.ALo(98,"number"),s.qZA(),s.TgZ(99,"div"),s._uU(100),s.ALo(101,"number"),s.qZA(),s.qZA(),s.qZA(),s.TgZ(102,"div",34),s.TgZ(103,"div"),s.TgZ(104,"button",35),s.NdJ("click",function(){s.CHM(Jt);const Ie=s.oxw();return Ie.showPressure=!Ie.showPressure}),s._uU(105,"Your 3D Scan"),s.qZA(),s.TgZ(106,"button",36),s.NdJ("click",function(){s.CHM(Jt);const Ie=s.oxw();return Ie.showPressure=!Ie.showPressure}),s._uU(107,"Your Pressure Map"),s.qZA(),s.TgZ(108,"div"),s.YNc(109,et,2,1,"div",37),s.YNc(110,ct,2,2,"div",38),s.qZA(),s.qZA(),s.qZA(),s.qZA(),s.qZA(),s.qZA()}if(2&Lt){const Jt=s.oxw();s.xp6(8),s.hij("Welcome back ",Jt.name,"!"),s.xp6(12),s.Oqu(Jt.scanData.StoreName),s.xp6(7),s.AsE("on ",s.xi3(28,23,Jt.scanData.ScanDate," d,MMMM y"),", ",s.xi3(29,26,Jt.scanData.ScanDate," h:mm:ss a")," "),s.xp6(7),s.hij("US ",Jt.footData.medianshoesize,""),s.xp6(6),s.Oqu(Jt.footData.leftfoot.archtype),s.xp6(9),s.Oqu(Jt.footData.rightfoot.archtype),s.xp6(7),s.hij("",s.xi3(57,29,Jt.footData.leftfoot.length,"1.1-1")," cm"),s.xp6(3),s.hij("",s.xi3(60,32,Jt.footData.leftfoot.width,"1.1-1")," cm"),s.xp6(3),s.hij("",s.xi3(63,35,Jt.footData.leftfoot.instep,"1.1-1")," cm"),s.xp6(3),s.hij("",s.xi3(66,38,Jt.footData.leftfoot.archheight,"1.1-1")," cm"),s.xp6(3),s.hij("",s.xi3(69,41,Jt.footData.leftfoot.girth,"1.1-1")," cm"),s.xp6(20),s.hij("",s.xi3(89,44,Jt.footData.rightfoot.length,"1.1-1")," cm"),s.xp6(3),s.hij("",s.xi3(92,47,Jt.footData.rightfoot.width,"1.1-1")," cm"),s.xp6(3),s.hij("",s.xi3(95,50,Jt.footData.rightfoot.instep,"1.1-1")," cm"),s.xp6(3),s.hij("",s.xi3(98,53,Jt.footData.rightfoot.archheight,"1.1-1")," cm"),s.xp6(3),s.hij("",s.xi3(101,56,Jt.footData.rightfoot.girth,"1.1-1")," cm"),s.xp6(4),s.ekj("tab-selected",!Jt.showPressure),s.xp6(2),s.ekj("tab-selected",Jt.showPressure),s.xp6(3),s.Q6J("ngIf",Jt.showPressure),s.xp6(1),s.Q6J("ngIf",!Jt.showPressure)}}let Rt=(()=>{class Lt{constructor(Jt,Ie){this.dialogRef=Jt,this.data=Ie,this.showPressure=!1}ngOnInit(){this.pressureImg=this.data.pressureImg,this.footData=this.data.profileData.footdata,this.scanData=this.data.profileData.scandata,this.name=this.data.profileData.profileName,console.log(this.name)}closeDialog(){this.dialogRef.close()}}return Lt.\u0275fac=function(Ht){return new(Ht||Lt)(s.Y36(mt.so),s.Y36(mt.WI))},Lt.\u0275cmp=s.Xpm({type:Lt,selectors:[["app-profile-detail"]],decls:1,vars:1,consts:[["class","profile-content",4,"ngIf"],[1,"profile-content"],[1,"profile-detail-container"],[1,"aetrex_profile_expanded_header_container"],[2,"text-align","end"],[1,"close-icon",3,"click"],[1,"aetrex_profile_expanded_header_container_label"],[1,"aetrex_profile_expanded_welcome_back_label"],[1,"data-container"],["fxLayout","row","fxLayoutAlign","center center"],["fxLayout","row"],["fxLayout","row wrap"],["src","https://fitgenius-widgets.aetrextechnology.com/assets/images/pin.png",1,"pin-icon"],[1,"aetrex_profile_expanded_recent_scan_container"],[1,"aetrex_profile_expanded_recent_scan_label"],[1,"aetrex_profile_expanded_recent_scan_value_label"],["src","https://fitgenius-widgets.aetrextechnology.com/assets/images/calendar.png",1,"pin-icon"],["fxLayout","row wrap","fxLayoutAlign","center center"],[1,"aetrex_profile_expanded_shoe_size_container"],[1,"aetrex_profile_expanded_med_shoe_size"],[1,"aetrex_profile_expanded_med_shoe_size_value"],["fxLayout","row",2,"margin-top","24px"],["fxFlex","33%"],[1,"detail-key"],[1,"detail-value"],["fxFlex","33%","fxLayoutAlign","center"],["fxFlex","33%","fxLayoutAlign","end"],[1,"detail-key",2,"text-align","right"],[1,"detail-value",2,"text-align","right"],[1,"measurement-container"],[1,"measurement-header"],["fxFlex","33%",2,"text-align","center"],[1,"measurement-header","center-value"],["fxFlex","33%",2,"text-align","end"],["fxLayout","row","fxLayoutAlign","center",1,"scan-data"],[1,"scandata-tab","model-tab",3,"click"],[1,"scandata-tab","pressure-tab",3,"click"],["class","scandata-img foot-modal",4,"ngIf"],["class","scandata-img threed-feet foot-modal",4,"ngIf"],[1,"scandata-img","foot-modal"],[1,"aetrex_profile_dialog_header_img",3,"src"],[1,"scandata-img","threed-feet","foot-modal"],[3,"lfoot","rfoot"]],template:function(Ht,Jt){1&Ht&&s.YNc(0,Vt,111,59,"div",0),2&Ht&&s.Q6J("ngIf",Jt.footData)},directives:[Le.O5,lt.xw,lt.Wh,lt.yH,Cn.z],pipes:[Le.uU,Le.JJ],styles:['@charset "UTF-8";.profile-content[_ngcontent-%COMP%]{max-height:90vh;width:100%;overflow:scroll}.profile-content[_ngcontent-%COMP%] .close-icon[_ngcontent-%COMP%]{position:relative;
1left:-15px}.profile-content[_ngcontent-%COMP%] .close-icon[_ngcontent-%COMP%]:after{display:inline-block;content:"\\d7";font-size:36px;cursor:pointer}.profile-content[_ngcontent-%COMP%] .aetrex_profile_expanded_header_container[_ngcontent-%COMP%]{background-color:#dbdbdb;height:180px;border-top:solid 1px #f2f2f2;text-align:center;position:relative}.profile-content[_ngcontent-%COMP%] .aetrex_profile_expanded_header_container_label[_ngcontent-%COMP%]{text-align:center;font-size:36px;font-weight:600;letter-spacing:1.44px;color:#656565;text-transform:uppercase;margin-top:50px}.profile-content[_ngcontent-%COMP%] .aetrex_profile_expanded_welcome_back_label[_ngcontent-%COMP%]{text-align:center;font-size:40px;letter-spacing:2px;color:#656565;margin-top:37px;padding:5%}.profile-content[_ngcontent-%COMP%] .pin-icon[_ngcontent-%COMP%]{margin-top:5px;margin-right:10px}.profile-content[_ngcontent-%COMP%] .aetrex_profile_expanded_recent_scan_label[_ngcontent-%COMP%]{font-size:20px;letter-spacing:.44px;color:#656565}.profile-content[_ngcontent-%COMP%] .aetrex_profile_expanded_recent_scan_value_label[_ngcontent-%COMP%]{font-size:24px;letter-spacing:.55px;color:#656565}.profile-content[_ngcontent-%COMP%] .aetrex_profile_expanded_shoe_size_container[_ngcontent-%COMP%]{width:45%;border-radius:20px;background-color:#838383;color:#fff;margin:5% auto;padding:4%}.profile-content[_ngcontent-%COMP%] .aetrex_profile_expanded_med_shoe_size[_ngcontent-%COMP%]{text-align:center;font-size:23px;letter-spacing:2.3px;text-transform:uppercase}.profile-content[_ngcontent-%COMP%] .aetrex_profile_expanded_med_shoe_size_value[_ngcontent-%COMP%]{margin-top:8px;letter-spacing:4px;font-size:40px;text-align:center}.profile-content[_ngcontent-%COMP%] .detail-key[_ngcontent-%COMP%]{text-align:left;font-size:18px;letter-spacing:1.08px;text-transform:uppercase}.profile-content[_ngcontent-%COMP%] .detail-value[_ngcontent-%COMP%]{text-align:left;font-size:28px;letter-spacing:1.08px}.profile-content[_ngcontent-%COMP%] .measurement-container[_ngcontent-%COMP%]{border-radius:20px;border:solid 1px #c9c9c9;background-color:#fff;color:#565656;padding:2% 4%;width:55%;margin:5% auto}.profile-content[_ngcontent-%COMP%] .measurement-container[_ngcontent-%COMP%] *[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{margin-top:10px}.profile-content[_ngcontent-%COMP%] .center-value[_ngcontent-%COMP%]{font-weight:600;color:#565656}.profile-content[_ngcontent-%COMP%] .measurement-header[_ngcontent-%COMP%]{font-size:18px;letter-spacing:1.8px;text-transform:uppercase;color:#b4b4b4}.profile-content[_ngcontent-%COMP%] .scan-data[_ngcontent-%COMP%]{margin-bottom:16px}.profile-content[_ngcontent-%COMP%] .scandata-tab[_ngcontent-%COMP%]{border:solid 1px black;border-radius:17px 17px 0 0;padding:5px 13px;text-align:center;font-size:14px;letter-spacing:1.8px;background-color:#fff;color:#000;text-transform:uppercase;height:68px;width:215px;margin-left:5px}.profile-content[_ngcontent-%COMP%] .tab-selected[_ngcontent-%COMP%]{background:#cf6262!important;color:#fff!important;border:solid 1px #cf6262!important}.profile-content[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:100%;max-height:100%;aspect-ratio:auto}.profile-content[_ngcontent-%COMP%] .data-container[_ngcontent-%COMP%]{padding:16px}.profile-content[_ngcontent-%COMP%] .foot-modal[_ngcontent-%COMP%]{width:100%;height:258px;background:#F1F1F1 0% 0% no-repeat padding-box;display:flex;justify-content:center;align-items:center}@media only screen and (min-width: 1280px){.profile-content[_ngcontent-%COMP%] .profile-detail-container[_ngcontent-%COMP%]{width:60vw}.profile-content[_ngcontent-%COMP%] .foot-modal[_ngcontent-%COMP%]{height:240px}}@media only screen and (min-width: 960px) and (max-width: 1279px){.profile-content[_ngcontent-%COMP%] .profile-detail-container[_ngcontent-%COMP%]{width:100%}.profile-content[_ngcontent-%COMP%] .measurement-container[_ngcontent-%COMP%], .profile-content[_ngcontent-%COMP%] .aetrex_profile_expanded_shoe_size_container[_ngcontent-%COMP%]{width:70%}.profile-content[_ngcontent-%COMP%] .foot-modal[_ngcontent-%COMP%]{height:210px}.profile-content[_ngcontent-%COMP%] .detail-key[_ngcontent-%COMP%]{font-size:14px}.profile-content[_ngcontent-%COMP%] .detail-value[_ngcontent-%COMP%]{font-size:18px}.profile-content[_ngcontent-%COMP%] .measurement-container[_ngcontent-%COMP%], .profile-content[_ngcontent-%COMP%] .measurement-header[_ngcontent-%COMP%]{font-size:12px}}@media only screen and (min-width: 600px) and (max-width: 959px){.profile-content[_ngcontent-%COMP%] .profile-detail-container[_ngcontent-%COMP%]{width:100%}.profile-content[_ngcontent-%COMP%] .aetrex_profile_expanded_welcome_back_label[_ngcontent-%COMP%]{margin-top:8px;font-size:24px}.profile-content[_ngcontent-%COMP%] .measurement-container[_ngcontent-%COMP%], .profile-content[_ngcontent-%COMP%] .aetrex_profile_expanded_shoe_size_container[_ngcontent-%COMP%]{width:90%}.profile-content[_ngcontent-%COMP%] .foot-modal[_ngcontent-%COMP%]{height:180px}.profile-content[_ngcontent-%COMP%] .detail-key[_ngcontent-%COMP%]{font-size:14px}.profile-content[_ngcontent-%COMP%] .detail-value[_ngcontent-%COMP%]{font-size:18px}.profile-content[_ngcontent-%COMP%] .measurement-container[_ngcontent-%COMP%], .profile-content[_ngcontent-%COMP%] .measurement-header[_ngcontent-%COMP%]{font-size:12px}}@media only screen and (max-width: 599px){.profile-content[_ngcontent-%COMP%] .profile-detail-container[_ngcontent-%COMP%]{width:100%}.profile-content[_ngcontent-%COMP%] .measurement-container[_ngcontent-%COMP%]{width:100%;margin:5% auto}.profile-content[_ngcontent-%COMP%] .measurement-container[_ngcontent-%COMP%] *[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{margin-top:10px;font-size:12px}.profile-content[_ngcontent-%COMP%] .aetrex_profile_expanded_shoe_size_container[_ngcontent-%COMP%]{width:90%}.profile-content[_ngcontent-%COMP%] .foot-modal[_ngcontent-%COMP%]{height:150px}.profile-content[_ngcontent-%COMP%] .aetrex_profile_expanded_header_container[_ngcontent-%COMP%]{height:auto}.profile-content[_ngcontent-%COMP%] .close-icon[_ngcontent-%COMP%]:after{font-size:24px}.profile-content[_ngcontent-%COMP%] .aetrex_profile_expanded_header_container_label[_ngcontent-%COMP%]{font-size:24px;margin-top:0}.profile-content[_ngcontent-%COMP%] .aetrex_profile_expanded_welcome_back_label[_ngcontent-%COMP%]{margin-top:8px;font-size:16px}.profile-content[_ngcontent-%COMP%] .pin-icon[_ngcontent-%COMP%]{width:30px;height:35px}.profile-content[_ngcontent-%COMP%] .aetrex_profile_expanded_recent_scan_label[_ngcontent-%COMP%], .profile-content[_ngcontent-%COMP%] .aetrex_profile_expanded_recent_scan_value_label[_ngcontent-%COMP%]{font-size:14px}.profile-content[_ngcontent-%COMP%] .aetrex_profile_expanded_med_shoe_size[_ngcontent-%COMP%]{font-size:16px}.profile-content[_ngcontent-%COMP%] .aetrex_profile_expanded_med_shoe_size_value[_ngcontent-%COMP%]{font-size:24px}.profile-content[_ngcontent-%COMP%] .detail-key[_ngcontent-%COMP%], .profile-content[_ngcontent-%COMP%] .detail-value[_ngcontent-%COMP%]{font-size:12px}.profile-content[_ngcontent-%COMP%] .scandata-tab[_ngcontent-%COMP%]{height:auto;letter-spacing:normal}.profile-content[_ngcontent-%COMP%] .model-tab[_ngcontent-%COMP%]{width:40%;font-size:12px}.profile-content[_ngcontent-%COMP%] .pressure-tab[_ngcontent-%COMP%]{width:50%;font-size:12px}}']}),Lt})();function ne(Lt,Ht){if(1&Lt){const Jt=s.EpF();s.TgZ(0,"div",2),s.TgZ(1,"div",3),s.TgZ(2,"div",4),s.TgZ(3,"div",5),s._uU(4,"YOUR FOOT PROFILE"),s.qZA(),s.qZA(),s.TgZ(5,"div",6),s.TgZ(6,"div",7),s.TgZ(7,"div",8),s._UZ(8,"img",9),s.qZA(),s.TgZ(9,"div",10),s._uU(10,"Arch Type"),s.qZA(),s._UZ(11,"hr",11),s.TgZ(12,"div",12),s.TgZ(13,"div"),s.TgZ(14,"div"),s._uU(15,"Left"),s.qZA(),s.TgZ(16,"div",13),s._uU(17),s.qZA(),s.qZA(),s.TgZ(18,"div"),s.TgZ(19,"div",14),s._uU(20,"Right"),s.qZA(),s.TgZ(21,"div",15),s._uU(22),s.qZA(),s.qZA(),s.qZA(),s.qZA(),s.TgZ(23,"div",16),s.TgZ(24,"div",17),s._UZ(25,"app-threedfeetmodule",18),s.qZA(),s.TgZ(26,"div",10),s._uU(27,"Your Median Shoe Size"),s.qZA(),s.TgZ(28,"div",19),s.TgZ(29,"div",13),s._uU(30),s.qZA(),s.qZA(),s.qZA(),s.qZA(),s.TgZ(31,"div",19),s.TgZ(32,"button",20),s.NdJ("
1click",function(){return s.CHM(Jt),s.oxw().openDialog()}),s._uU(33," EXPAND PROFILE"),s.qZA(),s.qZA(),s.qZA(),s.qZA()}if(2&Lt){const Jt=s.oxw();s.xp6(8),s.Q6J("src",Jt.pressureImg,s.LSH),s.xp6(9),s.Oqu(Jt.footData.leftfoot.archtype),s.xp6(5),s.Oqu(Jt.footData.rightfoot.archtype),s.xp6(3),s.Q6J("lfoot",Jt.footData.leftfoot.objurl)("rfoot",Jt.footData.rightfoot.objurl),s.xp6(5),s.hij("US ",Jt.footData.medianshoesize,"")}}function bt(Lt,Ht){if(1&Lt){const Jt=s.EpF();s.TgZ(0,"div",21),s.TgZ(1,"div",22),s.TgZ(2,"div",23),s._UZ(3,"img",24),s.qZA(),s.TgZ(4,"div",25),s.TgZ(5,"div"),s.TgZ(6,"div"),s._uU(7,"Get the perfect fit with an Albert 3D foot scan"),s.qZA(),s.TgZ(8,"div"),s.TgZ(9,"button",26),s.NdJ("click",function(){return s.CHM(Jt),s.oxw().openWindow()}),s._uU(10,"SCANNER LOCATOR"),s.qZA(),s.qZA(),s.qZA(),s.qZA(),s.qZA(),s.qZA()}}let kt=(()=>{class Lt{constructor(Jt,Ie,Je){this.appService=Jt,this.dialog=Ie,this._sanitizer=Je,this.user="as1dbc0e0b048086edb70e413b5e22e208",this.footData=null}ngOnInit(){this.appService.getProfileLastScan(this.user).subscribe(Jt=>{Jt&&(this.profileData=Jt,this.footData=Jt.footdata,this.footData.pressureImage&&this.getPressureImage(this.footData.pressureImage))})}openDialog(){this.dialog.open(Rt,{width:"70%;",data:{profileData:this.profileData,pressureImg:this.pressureImg},panelClass:"custom-modalbox"})}openWindow(){window.open("https://www.aetrex.com/store-locator.html","_blank").focus()}getPressureImage(Jt){var Te,Ie=this;return(Te=function*(){"png"!==Jt.split(".").pop()&&(yield fetch(Jt).then(Je=>Je.text()).then(Je=>{Ie.pressureImg=Ie._sanitizer.bypassSecurityTrustResourceUrl(Je.substring(1,Je.length-1))}))},function(){var nn=this,pn=arguments;return new Promise(function(Pn,Mn){var Ve=Te.apply(nn,pn);function Pe(me){It(Ve,Pn,Mn,Pe,zt,"next",me)}function zt(me){It(Ve,Pn,Mn,Pe,zt,"throw",me)}Pe(void 0)})})()}}return Lt.\u0275fac=function(Ht){return new(Ht||Lt)(s.Y36(Me.z),s.Y36(mt.uw),s.Y36(p.H7))},Lt.\u0275cmp=s.Xpm({type:Lt,selectors:[["app-profile"]],inputs:{user:"user"},decls:2,vars:2,consts:[["class","profile-container",4,"ngIf"],["class","no-profile-container",4,"ngIf"],[1,"profile-container"],[1,"aetrex_profile_top_container"],[1,"aetrex_profile_header_container"],[1,"aetrex_profile_header_container_label"],["fxLayout","row",1,"aetrex_profile_dialog_body"],["fxFlex","50%",1,"pressure-container"],[1,"foot-modal",2,"background-color","white"],[1,"aetrex_profile_dialog_header_img",3,"src"],[1,"aetrex_profile_dialog_body_text_arch_type"],[1,"aetrex_profile_dialog_body_separator"],["fxLayout","row","fxLayoutAlign","space-between"],[1,"pressure-value"],["fxLayoutAlign","end"],["fxLayoutAlign","end",1,"pressure-value"],["fxFlex","50%",1,"foot-container"],[1,"foot-modal"],[3,"lfoot","rfoot"],["fxLayoutAlign","center"],[1,"aetrex_profile_top_container_expanded",3,"click"],[1,"no-profile-container"],["fxLayout","row"],["fxFlex","40%"],["src","https://fitgenius-widgets.aetrextechnology.com/assets/images/3DFit_scanner_02b.jpg",1,"img-section"],["fxFlex","60%",1,"text-section"],[1,"scan-locator-btn",3,"click"]],template:function(Ht,Jt){1&Ht&&(s.YNc(0,ne,34,6,"div",0),s.YNc(1,bt,11,0,"div",1)),2&Ht&&(s.Q6J("ngIf",Jt.footData),s.xp6(1),s.Q6J("ngIf",void 0===Jt.footData))},directives:[Le.O5,lt.xw,lt.yH,lt.Wh,Cn.z],styles:[".no-profile-container[_ngcontent-%COMP%]{max-width:617px;max-height:100%}.no-profile-container[_ngcontent-%COMP%] .img-section[_ngcontent-%COMP%]{width:100%;height:100%;border-radius:22px 0 0 22px}.no-profile-container[_ngcontent-%COMP%] .text-section[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;padding:4%;text-align:center;font: 600 16px/30px Open Sans;letter-spacing:1.32px;color:#575555;background:#F2F2F2 0% 0% no-repeat padding-box;border-radius:0 22px 22px 0}.no-profile-container[_ngcontent-%COMP%] .scan-locator-btn[_ngcontent-%COMP%]{text-align:center;font: 600 16px/24px Open Sans;letter-spacing:1.8px;color:#fff;text-transform:uppercase;background:#CF6262 0% 0% no-repeat padding-box;border-radius:26px;border:none;padding:8px;margin-top:18px;
1cursor:pointer;width:100%}@media only screen and (max-width: 599px){.no-profile-container[_ngcontent-%COMP%] .text-section[_ngcontent-%COMP%]{font: 600 11px/30px Open Sans}.no-profile-container[_ngcontent-%COMP%] .scan-locator-btn[_ngcontent-%COMP%]{font: 600 11px/24px Open Sans}.no-profile-container[_ngcontent-%COMP%] .text-section[_ngcontent-%COMP%]{padding:4% 5%}}.profile-container[_ngcontent-%COMP%] .aetrex_profile_top_container[_ngcontent-%COMP%]{max-width:599px;border-radius:16px;background-color:#fff;position:relative;border:solid 1px #dbdbdb;padding-bottom:16px}.profile-container[_ngcontent-%COMP%] .aetrex_profile_header_container[_ngcontent-%COMP%]{background-color:#dbdbdb;height:177px;border-top:solid 1px #f2f2f2;border-top-left-radius:16px;border-top-right-radius:16px;margin-top:-2px;margin-bottom:-100px;position:relative;padding-top:26px;text-align:center}.profile-container[_ngcontent-%COMP%] .aetrex_profile_header_container_label[_ngcontent-%COMP%]{font-size:24px;font-weight:700;color:#000;text-transform:uppercase}.profile-container[_ngcontent-%COMP%] .aetrex_profile_dialog_body[_ngcontent-%COMP%]{margin:20px 5% 0}.profile-container[_ngcontent-%COMP%] .aetrex_profile_dialog_header_img[_ngcontent-%COMP%]{padding:1%}.profile-container[_ngcontent-%COMP%] .pressure-container[_ngcontent-%COMP%]{z-index:1}.profile-container[_ngcontent-%COMP%] .aetrex_profile_dialog_body_text_arch_type[_ngcontent-%COMP%]{text-align:center;font-weight:600;font-size:16px;letter-spacing:.35px;color:#393939;margin-top:30px}.profile-container[_ngcontent-%COMP%] .aetrex_profile_dialog_body_separator[_ng
1content-%COMP%]{margin:15px 0;border:none;border-top:solid 1px #b4b4b4}.profile-container[_ngcontent-%COMP%] .pressure-value[_ngcontent-%COMP%]{float:left;font-size:18px;letter-spacing:1.2px;color:#d60000;margin-top:10px}.profile-container[_ngcontent-%COMP%] .foot-container[_ngcontent-%COMP%]{width:100%;height:100%;max-width:230px;max-height:230px;border-radius:10px;border:solid 3px #fff;background-color:#fff;margin-bottom:30px;z-index:1;margin-left:16px}.profile-container[_ngcontent-%COMP%] .aetrex_profile_top_container_expanded[_ngcontent-%COMP%]{margin-top:40px;background:#cf6262 0% 0% no-repeat padding-box;border-radius:26px;border:none;padding:7px 35px;text-align:center;font-size:large;color:#fff;text-transform:uppercase;margin-left:auto;margin-right:auto}.profile-container[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:99%}.profile-container[_ngcontent-%COMP%] .foot-modal[_ngcontent-%COMP%]{width:100%;background:#f1f1f1 0% 0% no-repeat padding-box;border-radius:16px;aspect-ratio:auto;text-align:center}@media only screen and (min-width: 1280px){.profile-container[_ngcontent-%COMP%] .foot-modal[_ngcontent-%COMP%]{height:240px}}@media only screen and (min-width: 600px) and (max-width: 1279px){.profile-container[_ngcontent-%COMP%] .foot-modal[_ngcontent-%COMP%]{height:240px}}@media only screen and (max-width: 599px){.profile-container[_ngcontent-%COMP%] .pressure-value[_ngcontent-%COMP%]{font-size:16px}.profile-container[_ngcontent-%COMP%] .aetrex_profile_dialog_body_text_arch_type[_ngcontent-%COMP%]{font-size:14px}.profile-container[_ngcontent-%COMP%] .foot-modal[_ngcontent-%COMP%]{height:180px}}.custom-modalbox[_ngcontent-%COMP%] .mat-dialog-container[_ngcontent-%COMP%]{border-radius:36px;padding:0}"]}),Lt})();const de=[{path:"",component:kt}];let Wt=(()=>{class Lt{}return Lt.\u0275fac=function(Ht){return new(Ht||Lt)},Lt.\u0275mod=s.oAB({type:Lt}),Lt.\u0275inj=s.cJS({imports:[[Le.ez,Ae.Bz.forChild(de),Mt.o9,mt.Is,rn.ThreedfeetmoduleModule]]}),Lt})();var en=v(3322);function be(Lt,Ht){if(1&Lt&&(s.TgZ(0,"span"),s._uU(1),s._UZ(2,"span",5),s.qZA()),2&Lt){const Jt=s.oxw(2);s.xp6(1),s.hij(" Score ",Jt.score,"")}}function qe(Lt,Ht){1&Lt&&(s.TgZ(0,"span"),s._uU(1,"Recommended"),s.qZA())}function kn(Lt,Ht){if(1&Lt){const Jt=s.EpF();s.TgZ(0,"div",6),s.NdJ("click",function(){return s.CHM(Jt),s.oxw(2).openDialog()}),s.qZA()}}const yr=function(Lt){return{scoreCenterAlign:Lt}};function ur(Lt,Ht){if(1&Lt&&(s.TgZ(0,"div",1),s.TgZ(1,"div",2),s.TgZ(2,"b"),s._uU(3,"FitGenius "),s.qZA(),s.YNc(4,be,3,1,"span",3),s.YNc(5,qe,2,0,"span",3),s.qZA(),s.YNc(6,kn,1,0,"div",4),s.qZA()),2&Lt){const Jt=s.oxw();s.Q6J("ngClass",s.VKq(4,yr,!0===Jt.showInfoIcon)),s.xp6(4),s.Q6J("ngIf",Jt.score>60),s.xp6(1),s.Q6J("ngIf",Jt.score<61),s.xp6(1),s.Q6J("ngIf",Jt.showInfoIcon)}}let ee=(()=>{class Lt{constructor(Jt){this.appService=Jt,this.user="[email protected]",this.domain="aetrex.com",this.sku="id1",this.showInfoIcon=!1,this.score=null}ngOnInit(){this.appService.getScore(this.user,this.domain,this.sku).subscribe(Jt=>{Jt&&(this.score=Jt.results[0].FitGenius_Score)})}openDialog(){}}return Lt.\u0275fac=function(Ht){return new(Ht||Lt)(s.Y36(Me.z))},Lt.\u0275cmp=s.Xpm({type:Lt,selectors:[["app-fg-score"]],inputs:{user:"user",domain:"domain",sku:"sku",showInfoIcon:"showInfoIcon"},decls:1,vars:1,consts:[["class","fg-score",3,"ngClass",4,"ngIf"],[1,"fg-score",3,"ngClass"],[1,"score-label"],[4,"ngIf"],["class","aetrex_fitgenius_score_info_icon",3,"click",4,"ngIf"],[1,"star"],[1,"aetrex_fitgenius_score_info_icon",3,"click"]],template:function(Ht,Jt){1&Ht&&s.YNc(0,ur,7,6,"div",0),2&Ht&&s.Q6J("ngIf",Jt.score)},directives:[Le.O5,Le.mk,en.oO],styles:['@charset "UTF-8";.fg-score[_ngcontent-%COMP%]{display:flex;align-items:center}.fg-score[_ngcontent-%COMP%] .score-label[_ngcontent-%COMP%]{background:#d06263;border-radius:26px;text-align:center;color:#fff;padding:4px 28px 4px 14px;font-size:14px;font-family:Open Sans,sans-serif;margin:0 25px;white-space:nowrap}@media (max-width: 992px){.fg-score[_ngcontent-%COMP%] .score-label[_ngcontent-%COMP%]{font-size:12px;padding:4px 24px 4px 12px}}.fg-score[_ngcontent-%COMP%] .star[_ngcontent-%COMP%]:before{content:"\\2605";position:absolute;margin-left:4px}.fg-score[_ngcontent-%COMP%] .aetrex_fitgenius_score_info_icon[_ngcontent-%COMP%]{width:23px;height:23px;background-color:#c8c8c8;border-radius:15px;position:relative;cursor:pointer}.fg-score[_ngcontent-%COMP%] .aetrex_fitgenius_score_info_icon[_ngcontent-%COMP%]:after{content:"i";color:#fff;position:absolute;top:-4px;left:8px;font-family:Times New Roman,Times,serif;font-weight:700;font-size:21px}.scoreCenterAlign[_ngcontent-%COMP%]{justify-content:center}']}),Lt})();const Se=[{path:"",component:ee}];let Re=(()=>{class Lt{}return Lt.\u0275fac=function(Ht){return new(Ht||Lt)},Lt.\u0275mod=s.oAB({type:Lt}),Lt.\u0275inj=s.cJS({imports:[[Le.ez,Ae.Bz.forChild(Se),Mt.o9,mt.Is]]}),Lt})(),Be=(()=>{class Lt{constructor(Jt){this.injector=Jt}ngDoBootstrap(){const Jt=te(Cn.z,{injector:this.injector});customElements.define("three-feet",Jt);const Ie=te(Qt.F,{injector:this.injector});customElements.define("fg-foot-profile",Ie);const Je=te(kt,{injector:this.injector});customElements.define("fg-profile",Je);const Te=te(ee,{injector:this.injector});customElements.define("fg-score",Te)}}return Lt.\u0275fac=function(Ht){return new(Ht||Lt)(s.LFG(s.zs3))},Lt.\u0275mod=s.oAB({type:Lt}),Lt.\u0275inj=s.cJS({providers:[{provide:Le.mr,useValue:"/"},Me.z],imports:[[p.b2,We,ae.JF,Mt.o9,Ut.rT,rn.ThreedfeetmoduleModule,Wt,Ee.FgFootProfileModule,Re]]}),Lt})();v(6026).N.production&&(0,s.G48)(),p.q6().bootstrapModule(Be).catch(Lt=>console.error(Lt))},591:(u,D,v)=>{v.d(D,{X:()=>j});var p=v(8929),s=v(5279);class j extends p.xQ{constructor(b){super(),this._value=b}get value(){return this.getValue()}_subscribe(b){const B=super._subscribe(b);return B&&!B.closed&&b.next(this._value),B}getValue(){if(this.hasError)throw this.thrownError;if(this.closed)throw new s.N;return this._value}next(b){super.next(this._value=b)}}},2916:(u,D,v)=>{v.d(D,{y:()=>V});var p=v(3489),s=v(7668),j=v(3292),k=v(3821),b=v(5379),B=v(2830);let V=(()=>{class H{constructor(q){this._isScalar=!1,q&&(this._subscribe=q)}lift(q){const it=new H;return it.source=this,it.operator=q,it}subscribe(q,it,vt){const{operator:at}=this,J=function(m,M,N){if(m){if(m instanceof p.L)return m;if(m[s.b])return m[s.b]()}return m||M||N?new p.L(m,M,N):new p.L(j.c)}(q,it,vt);if(J.add(at?at.call(J,this.source):this.source||B.v.useDeprecatedSynchronousErrorHandling&&!J.syncErrorThrowable?this._subscribe(J):this._trySubscribe(J)),B.v.useDeprecatedSynchronousErrorHandling&&J.syncErrorThrowable&&(J.syncErrorThrowable=!1,J.syncErrorThrown))throw J.syncErrorValue;return J}_trySubscribe(q){try{return this._subscribe(q)}catch(it){B.v.useDeprecatedSynchronousErrorHandling&&(q.syncErrorThrown=!0,q.syncErrorValue=it),function(at){for(;at;){const{closed:J,destination:ht,isStopped:m}=at;if(J||m)return!1;at=ht&&ht instanceof p.L?ht:null}return!0}(q)?q.error(it):console.warn(it)}}forEach(q,it){return new(it=_(it))((vt,at)=>{let J;J=this.subscribe(ht=>{try{q(ht)}catch(m){at(m),J&&J.unsubscribe()}},at,vt)})}_subscribe(q){const{source:it}=this;return it&&it.subscribe(q)}[k.L](){return this}pipe(...q){return 0===q.length?this:(0===(vt=q).length?b.y:1===vt.length?vt[0]:function(at){return vt.reduce((J,ht)=>ht(J),at)})(this);var vt}toPromise(q){return new(q=_(q))((it,vt)=>{let at;this.subscribe(J=>at=J,J=>vt(J),()=>it(at))})}}return H.create=Y=>new H(Y),H})();
1function _(H){if(H||(H=B.v.Promise||Promise),!H)throw new Error("no Promise impl found");return H}},3292:(u,D,v)=>{v.d(D,{c:()=>j});var p=v(2830),s=v(2782);const j={closed:!0,next(k){},error(k){if(p.v.useDeprecatedSynchronousErrorHandling)throw k;(0,s.z)(k)},complete(){}}},8929:(u,D,v)=>{v.d(D,{Yc:()=>V,xQ:()=>_});var p=v(2916),s=v(3489),j=v(2654),k=v(5279),b=v(5283),B=v(7668);class V extends s.L{constructor(q){super(q),this.destination=q}}let _=(()=>{class Y extends p.y{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[B.b](){return new V(this)}lift(it){const vt=new H(this,this);return vt.operator=it,vt}next(it){if(this.closed)throw new k.N;if(!this.isStopped){const{observers:vt}=this,at=vt.length,J=vt.slice();for(let ht=0;ht<at;ht++)J[ht].next(it)}}error(it){if(this.closed)throw new k.N;this.hasError=!0,this.thrownError=it,this.isStopped=!0;const{observers:vt}=this,at=vt.length,J=vt.slice();for(let ht=0;ht<at;ht++)J[ht].error(it);this.observers.length=0}complete(){if(this.closed)throw new k.N;this.isStopped=!0;const{observers:it}=this,vt=it.length,at=it.slice();for(let J=0;J<vt;J++)at[J].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(it){if(this.closed)throw new k.N;return super._trySubscribe(it)}_subscribe(it){if(this.closed)throw new k.N;return this.hasError?(it.error(this.thrownError),j.w.EMPTY):this.isStopped?(it.complete(),j.w.EMPTY):(this.observers.push(it),new b.W(this,it))}asObservable(){const it=new p.y;return it.source=this,it}}return Y.create=(q,it)=>new H(q,it),Y})();class H extends _{constructor(q,it){super(),this.destination=q,this.source=it}next(q){const{destination:it}=this;it&&it.next&&it.next(q)}error(q){const{destination:it}=this;it&&it.error&&this.destination.error(q)}complete(){const{destination:q}=this;q&&q.complete&&this.destination.complete()}_subscribe(q){const{source:it}=this;return it?this.source.subscribe(q):j.w.EMPTY}}},5283:(u,D,v)=>{v.d(D,{W:()=>s});var p=v(2654);class s extends p.w{constructor(k,b){super(),this.subject=k,this.subscriber=b,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const k=this.subject,b=k.observers;if(this.subject=null,!b||0===b.length||k.isStopped||k.closed)return;const B=b.indexOf(this.subscriber);-1!==B&&b.splice(B,1)}}},3489:(u,D,v)=>{v.d(D,{L:()=>V});var p=v(7043),s=v(3292),j=v(2654),k=v(7668),b=v(2830),B=v(2782);class V extends j.w{constructor(Y,q,it){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=s.c;break;case 1:if(!Y){this.destination=s.c;break}if("object"==typeof Y){Y instanceof V?(this.syncErrorThrowable=Y.syncErrorThrowable,this.destination=Y,Y.add(this)):(this.syncErrorThrowable=!0,this.destination=new _(this,Y));break}default:this.syncErrorThrowable=!0,this.destination=new _(this,Y,q,it)}}[k.b](){return this}static create(Y,q,it){const vt=new V(Y,q,it);return vt.syncErrorThrowable=!1,vt}next(Y){this.isStopped||this._next(Y)}error(Y){this.isStopped||(this.isStopped=!0,this._error(Y))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(Y){this.destination.next(Y)}_error(Y){this.destination.error(Y),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:Y}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=Y,this}}class _ extends V{constructor(Y,q,it,vt){super(),this._parentSubscriber=Y;let at,J=this;(0,p.m)(q)?at=q:q&&(at=q.next,it=q.error,vt=q.complete,q!==s.c&&(J=Object.create(q),(0,p.m)(J.unsubscribe)&&this.add(J.unsubscribe.bind(J)),J.unsubscribe=this.unsubscribe.bind(this))),this._context=J,this._next=at,this._error=it,this._complete=vt}next(Y){if(!this.isStopped&&this._next){const{_parentSubscriber:q}=this;b.v.useDeprecatedSynchronousErrorHandling&&q.syncErrorThrowable?this.__tryOrSetError(q,this._next,Y)&&this.unsubscribe():this.__tryOrUnsub(this._next,Y)}}error(Y){if(!this.isStopped){const{_parentSubscriber:q}=this,{useDeprecatedSynchronousErrorHandling:it}=b.v;if(this._error)it&&q.syncErrorThrowable?(this.__tryOrSetError(q,this._error,Y),this.unsubscribe()):(this.__tryOrUnsub(this._error,Y),this.unsubscribe());else if(q.syncErrorThrowable)it?(q.syncErrorValue=Y,q.syncErrorThrown=!0):(0,B.z)(Y),this.unsubscribe();else{if(this.unsubscribe(),it)throw Y;(0,B.z)(Y)}}}complete(){if(!this.isStopped){const{_parentSubscriber:Y}=this;if(this._complete){const q=()=>this._complete.call(this._context);b.v.useDeprecatedSynchronousErrorHandling&&Y.syncErrorThrowable?(this.__tryOrSetError(Y,q),this.unsubscribe()):(this.__tryOrUnsub(q),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(Y,q){try{Y.call(this._context,q)}catch(it){if(this.unsubscribe(),b.v.useDeprecatedSynchronousErrorHandling)throw it;(0,B.z)(it)}}__tryOrSetError(Y,q,it){if(!b.v.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{q.call(this._context,it)}catch(vt){return b.v.useDeprecatedSynchronousErrorHandling?(Y.syncErrorValue=vt,Y.syncErrorThrown=!0,!0):((0,B.z)(vt),!0)}return!1}_unsubscribe(){const{_parentSubscriber:Y}=this;this._context=null,this._parentSubscriber=null,Y.unsubscribe()}}},2654:(u,D,v)=>{v.d(D,{w:()=>b});var p=v(6688),s=v(7830),j=v(7043);const k=(()=>{function _(H){return Error.call(this),this.message=H?`${H.length} errors occurred during unsubscription:\n${H.map((Y,q)=>`${q+1}) ${Y.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=H,this}return _.prototype=Object.create(Error.prototype),_})();class b{constructor(H){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,H&&(this._ctorUnsubscribe=!0,this._unsubscribe=H)}unsubscribe(){let H;if(this.closed)return;let{_parentOrParents:Y,_ctorUnsubscribe:q,_unsubscribe:it,_subscriptions:vt}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,Y instanceof b)Y.remove(this);else if(null!==Y)for(let at=0;at<Y.length;++at)Y[at].remove(this);if((0,j.m)(it)){q&&(this._unsubscribe=void 0);try{it.call(this)}catch(at){H=at instanceof k?V(at.errors):[at]}}if((0,p.k)(vt)){let at=-1,J=vt.length;for(;++at<J;){const ht=vt[at];if((0,s.K)(ht))try{ht.unsubscribe()}catch(m){H=H||[],m instanceof k?H=H.concat(V(m.errors)):H.push(m)}}}if(H)throw new k(H)}add(H){let Y=H;if(!H)return b.EMPTY;switch(typeof H){case"function":Y=new b(H);case"object":if(Y===this||Y.closed||"function"!=typeof Y.unsubscribe)return Y;if(this.closed)return Y.unsubscribe(),Y;if(!(Y instanceof b)){const vt=Y;Y=new b,Y._subscriptions=[vt]}break;default:throw new Error("unrecognized teardown "+H+" added to Subscription.")}let{_parentOrParents:q}=Y;if(null===q)Y._parentOrParents=this;else if(q instanceof b){if(q===this)return Y;Y._parentOrParents=[q,this]}else{if(-1!==q.indexOf(this))return Y;q.push(this)}const it=this._subscriptions;return null===it?this._subscriptions=[Y]:it.push(Y),Y}remove(H){const Y=this._subscriptions;if(Y){const q=Y.indexOf(H);-1!==q&&Y.splice(q,1)}}}var B;function V(_){return _.reduce((H,Y)=>
1H.concat(Y instanceof k?Y.errors:Y),[])}b.EMPTY=((B=new b).closed=!0,B)},2830:(u,D,v)=>{v.d(D,{v:()=>s});let p=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(j){if(j){const k=new Error;console.warn("DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n"+k.stack)}else p&&console.log("RxJS: Back to a better error behavior. Thank you. <3");p=j},get useDeprecatedSynchronousErrorHandling(){return p}}},1177:(u,D,v)=>{v.d(D,{IY:()=>k,Ds:()=>b,ft:()=>B});var p=v(3489),s=v(2916),j=v(9249);class k extends p.L{constructor(_){super(),this.parent=_}_next(_){this.parent.notifyNext(_)}_error(_){this.parent.notifyError(_),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class b extends p.L{notifyNext(_){this.destination.next(_)}notifyError(_){this.destination.error(_)}notifyComplete(){this.destination.complete()}}function B(V,_){if(_.closed)return;if(V instanceof s.y)return V.subscribe(_);let H;try{H=(0,j.s)(V)(_)}catch(Y){_.error(Y)}return H}},1762:(u,D,v)=>{v.d(D,{c:()=>b,N:()=>B});var p=v(8929),s=v(2916),j=v(2654),k=v(4327);class b extends s.y{constructor(H,Y){super(),this.source=H,this.subjectFactory=Y,this._refCount=0,this._isComplete=!1}_subscribe(H){return this.getSubject().subscribe(H)}getSubject(){const H=this._subject;return(!H||H.isStopped)&&(this._subject=this.subjectFactory()),this._subject}connect(){let H=this._connection;return H||(this._isComplete=!1,H=this._connection=new j.w,H.add(this.source.subscribe(new V(this.getSubject(),this))),H.closed&&(this._connection=null,H=j.w.EMPTY)),H}refCount(){return(0,k.x)()(this)}}const B=(()=>{const _=b.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:_._subscribe},_isComplete:{value:_._isComplete,writable:!0},getSubject:{value:_.getSubject},connect:{value:_.connect},refCount:{value:_.refCount}}})();class V extends p.Yc{constructor(H,Y){super(H),this.connectable=Y}_error(H){this._unsubscribe(),super._error(H)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const H=this.connectable;if(H){this.connectable=null;const Y=H._connection;H._refCount=0,H._subject=null,H._connection=null,Y&&Y.unsubscribe()}}}},1221:(u,D,v)=>{v.d(D,{z:()=>j});var p=v(1086),s=v(9146);function j(...k){return(0,s.J)(1)((0,p.of)(...k))}},8514:(u,D,v)=>{v.d(D,{P:()=>k});var p=v(2916),s=v(5254),j=v(8896);function k(b){return new p.y(B=>{let V;try{V=b()}catch(_){return void B.error(_)}return(V?(0,s.D)(V):(0,j.c)()).subscribe(B)})}},8896:(u,D,v)=>{v.d(D,{E:()=>s,c:()=>j});var p=v(2916);const s=new p.y(k=>k.complete());function j(k){return k?(B=k,new p.y(V=>B.schedule(()=>V.complete()))):s;var B}},5254:(u,D,v)=>{v.d(D,{D:()=>H});var p=v(2916),s=v(9249),j=v(2654),k=v(3821),b=v(6454),B=v(5430),V=v(8955),_=v(8515);function H(Y,q){return q?function(vt,at){if(null!=vt){if((ht=vt)&&"function"==typeof ht[k.L])return function(ht,m){return new p.y(M=>{const N=new j.w;return N.add(m.schedule(()=>{const g=ht[k.L]();N.add(g.subscribe({next(x){N.add(m.schedule(()=>M.next(x)))},error(x){N.add(m.schedule(()=>M.error(x)))},complete(){N.add(m.schedule(()=>M.complete()))}}))})),N})}(vt,at);if((0,V.t)(vt))return function(ht,m){return new p.y(M=>{const N=new j.w;return N.add(m.schedule(()=>ht.then(g=>{N.add(m.schedule(()=>{M.next(g),N.add(m.schedule(()=>M.complete()))}))},g=>{N.add(m.schedule(()=>M.error(g)))}))),N})}(vt,at);if((0,_.z)(vt))return(0,b.r)(vt,at);if(function(ht){return ht&&"function"==typeof ht[B.hZ]}(vt)||"string"==typeof vt)return function(ht,m){if(!ht)throw new Error("Iterable cannot be null");return new p.y(M=>{const N=new j.w;let g;return N.add(()=>{g&&"function"==typeof g.return&&g.return()}),N.add(m.schedule(()=>{g=ht[B.hZ](),N.add(m.schedule(function(){if(M.closed)return;let x,P;try{const Q=g.next();x=Q.value,P=Q.done}catch(Q){return void M.error(Q)}P?M.complete():(M.next(x),this.schedule())}))})),N})}(vt,at)}var ht;throw new TypeError((null!==vt&&typeof vt||vt)+" is not observable")}(Y,q):Y instanceof p.y?Y:new p.y((0,s.s)(Y))}},3009:(u,D,v)=>{v.d(D,{n:()=>k}
1);var p=v(2916),s=v(3650),j=v(6454);function k(b,B){return B?(0,j.r)(b,B):new p.y((0,s.V)(b))}},6787:(u,D,v)=>{v.d(D,{T:()=>b});var p=v(2916),s=v(2866),j=v(9146),k=v(3009);function b(...B){let V=Number.POSITIVE_INFINITY,_=null,H=B[B.length-1];return(0,s.K)(H)?(_=B.pop(),B.length>1&&"number"==typeof B[B.length-1]&&(V=B.pop())):"number"==typeof H&&(V=B.pop()),null===_&&1===B.length&&B[0]instanceof p.y?B[0]:(0,j.J)(V)((0,k.n)(B,_))}},1086:(u,D,v)=>{v.d(D,{of:()=>k});var p=v(2866),s=v(3009),j=v(6454);function k(...b){let B=b[b.length-1];return(0,p.K)(B)?(b.pop(),(0,j.r)(b,B)):(0,s.n)(b)}},1406:(u,D,v)=>{v.d(D,{b:()=>s});var p=v(1709);function s(j,k){return(0,p.zg)(j,k,1)}},2198:(u,D,v)=>{v.d(D,{h:()=>s});var p=v(3489);function s(b,B){return function(V){return V.lift(new j(b,B))}}class j{constructor(B,V){this.predicate=B,this.thisArg=V}call(B,V){return V.subscribe(new k(B,this.predicate,this.thisArg))}}class k extends p.L{constructor(B,V,_){super(B),this.predicate=V,this.thisArg=_,this.count=0}_next(B){let V;try{V=this.predicate.call(this.thisArg,B,this.count++)}catch(_){return void this.destination.error(_)}V&&this.destination.next(B)}}},4850:(u,D,v)=>{v.d(D,{U:()=>s});var p=v(3489);function s(b,B){return function(V){if("function"!=typeof b)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return V.lift(new j(b,B))}}class j{constructor(B,V){this.project=B,this.thisArg=V}call(B,V){return V.subscribe(new k(B,this.project,this.thisArg))}}class k extends p.L{constructor(B,V,_){super(B),this.project=V,this.count=0,this.thisArg=_||this}_next(B){let V;try{V=this.project.call(this.thisArg,B,this.count++)}catch(_){return void this.destination.error(_)}this.destination.next(V)}}},9146:(u,D,v)=>{v.d(D,{J:()=>j});var p=v(1709),s=v(5379);function j(k=Number.POSITIVE_INFINITY){return(0,p.zg)(s.y,k)}},1709:(u,D,v)=>{v.d(D,{zg:()=>k});var p=v(4850),s=v(5254),j=v(1177);function k(V,_,H=Number.POSITIVE_INFINITY){return"function"==typeof _?Y=>Y.pipe(k((q,it)=>(0,s.D)(V(q,it)).pipe((0,p.U)((vt,at)=>_(q,vt,it,at))),H)):("number"==typeof _&&(H=_),Y=>Y.lift(new b(V,H)))}class b{constructor(_,H=Number.POSITIVE_INFINITY){this.project=_,this.concurrent=H}call(_,H){return H.subscribe(new B(_,this.project,this.concurrent))}}class B extends j.Ds{constructor(_,H,Y=Number.POSITIVE_INFINITY){super(_),this.project=H,this.concurrent=Y,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(_){this.active<this.concurrent?this._tryNext(_):this.buffer.push(_)}_tryNext(_){let H;const Y=this.index++;try{H=this.project(_,Y)}catch(q){return void this.destination.error(q)}this.active++,this._innerSub(H)}_innerSub(_){const H=new j.IY(this),Y=this.destination;Y.add(H);const q=(0,j.ft)(_,H);q!==H&&Y.add(q)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(_){this.destination.next(_)}notifyComplete(){const _=this.buffer;this.active--,_.length>0?this._next(_.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}},4327:(u,D,v)=>{v.d(D,{x:()=>s});var p=v(3489);function s(){return function(b){return b.lift(new j(b))}}class j{constructor(B){this.connectable=B}call(B,V){const{connectable:_}=this;_._refCount++;const H=new k(B,_),Y=V.subscribe(H);return H.closed||(H.connection=_.connect()),Y}}class k extends p.L{constructor(B,V){super(B),this.connectable=V}_unsubscribe(){const{connectable:B}=this;if(!B)return void(this.connection=null);this.connectable=null;const V=B._refCount;if(V<=0)return void(this.connection=null);if(B._refCount=V-1,V>1)return void(this.connection=null);const{connection:_}=this,H=B._connection;this.connection=null,H&&(!_||H===_)&&H.unsubscribe()}}},1059:(u,D,v)=>{v.d(D,{O:()=>j});var p=v(1221),s=v(2866);function j(...k){const b=k[k.length-1];return(0,s.K)(b)?(k.pop(),B=>(0,p.z)(k,B,b)):B=>(0,p.z)(k,B)}},7545:(u,D,v)=>{v.d(D,{w:()=>k});var p=v(4850),s=v(5254),j=v(1177);function k(V,_){return"function"==typeof _?H=>H.pipe(k((Y,q)=>(0,s.D)(V(Y,q)).pipe((0,p.U)((it,vt)=>_(Y,it,q,vt))))):H=>H.lift(new b(V))}class b{constructor(_){this.project=_}call(_,H){return H.subscribe(new B(_,this.project))}}class B extends j.Ds{constructor(_,H){super(_),this.project=H,this.index=0}_next(_){let H;const Y=this.index++;try{H=this.project(_,Y)}catch(q){return void this.destination.error(q)}this._innerSub(H)}_innerSub(_){const H=this.innerSubscription;H&&H.unsubscribe();const Y=new j.IY(this),q=this.destination;q.add(Y),this.innerSubscription=(0,j.ft)(_,Y),this.innerSubscription!==Y&&q.add(this.innerSubscription)}_complete(){const{innerSubscription:_}=this;(!_||_.closed)&&super._complete(),this.unsubscribe()}_unsubscribe(){this.innerSubscription=void 0}notifyComplete(){this.innerSubscription=void 0,this.isStopped&&super._complete()}notifyNext(_){this.destination.next(_)}}},2986:(u,D,v)=>{v.d(D,{q:()=>k});var p=v(3489),s=v(4231),j=v(8896);function k(V){return _=>0===V?(0,j.c)():_.lift(new b(V))}class b{constructor(_){if(this.total=_,this.total<0)throw new s.W}call(_,H){return H.subscribe(new B(_,this.total))}}class B extends p.L{constructor(_,H){super(_),this.total=H,this.count=0}_next(_){const H=this.total,Y=++this.count;Y<=H&&(this.destination.next(_),Y===H&&(this.destination.complete(),this.unsubscribe()))}}},7625:(u,D,v)=>{v.d(D,{R:()=>s});var p=v(1177);function s(b){return B=>B.lift(new j(b))}class j{constructor(B){this.notifier=B}call(B,V){const _=new k(B),H=(0,p.ft)(this.notifier,new p.IY(_));return H&&!_.seenValue?(_.add(H),V.subscribe(_)):_}}class k extends p.Ds{constructor(B){super(B),this.seenValue=!1}notifyNext(){this.seenValue=!0,this.complete()}notifyComplete(){}}},2868:(u,D,v)=>{v.d(D,{b:()=>k});var p=v(3489);function s(){}var j=v(7043);function k(V,_,H){return function(Y){return Y.lift(new b(V,_,H))}}class b{constructor(_,H,Y){this.nextOrObserver=_,this.error=H,this.complete=Y}call(_,H){return H.subscribe(new B(_,this.nextOrObserver,this.error,this.complete))}}class B extends p.L{constructor(_,H,Y,q){super(_),this._tapNext=s,this._tapError=s,this._tapComplete=s,this._tapError=Y||s,this._tapComplete=q||s,(0,j.m)(H)?(this._context=this,this._tapNext=H):H&&(this._context=H,this._tapNext=H.next||s,this._tapError=H.error||s,this._tapComplete=H.complete||s)}_next(_){try{this._tapNext.call(this._context,_)}catch(H){return void this.destination.error(H)}this.destination.next(_)}_error(_){try{this._tapError.call(this._context,_)}catch(H){return void this.destination.error(H)}this.destination.error(_)}_complete(){try{this._tapComplete.call(this._context)}catch(_){return void this.destination.error(_)}return this.destination.complete()}}},6454:(u,D,v)=>{v.d(D,{r:()=>j});var p=v(2916),s=v(2654);function j(k,b){return new p.y(B=>{const V=new s.w;let _=0;return V.add(b.schedule(function(){_!==k.length?(B.next(k[_++]),B.closed||V.add(this.schedule())):B.complete()}
1)),V})}},6686:(u,D,v)=>{v.d(D,{o:()=>j});var p=v(2654);class s extends p.w{constructor(b,B){super()}schedule(b,B=0){return this}}class j extends s{constructor(b,B){super(b,B),this.scheduler=b,this.work=B,this.pending=!1}schedule(b,B=0){if(this.closed)return this;this.state=b;const V=this.id,_=this.scheduler;return null!=V&&(this.id=this.recycleAsyncId(_,V,B)),this.pending=!0,this.delay=B,this.id=this.id||this.requestAsyncId(_,this.id,B),this}requestAsyncId(b,B,V=0){return setInterval(b.flush.bind(b,this),V)}recycleAsyncId(b,B,V=0){if(null!==V&&this.delay===V&&!1===this.pending)return B;clearInterval(B)}execute(b,B){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const V=this._execute(b,B);if(V)return V;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(b,B){let V,_=!1;try{this.work(b)}catch(H){_=!0,V=!!H&&H||new Error(H)}if(_)return this.unsubscribe(),V}_unsubscribe(){const b=this.id,B=this.scheduler,V=B.actions,_=V.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==_&&V.splice(_,1),null!=b&&(this.id=this.recycleAsyncId(B,b,null)),this.delay=null}}},2268:(u,D,v)=>{v.d(D,{v:()=>s});let p=(()=>{class j{constructor(b,B=j.now){this.SchedulerAction=b,this.now=B}schedule(b,B=0,V){return new this.SchedulerAction(this,b).schedule(V,B)}}return j.now=()=>Date.now(),j})();class s extends p{constructor(k,b=p.now){super(k,()=>s.delegate&&s.delegate!==this?s.delegate.now():b()),this.actions=[],this.active=!1,this.scheduled=void 0}schedule(k,b=0,B){return s.delegate&&s.delegate!==this?s.delegate.schedule(k,b,B):super.schedule(k,b,B)}flush(k){const{actions:b}=this;if(this.active)return void b.push(k);let B;this.active=!0;do{if(B=k.execute(k.state,k.delay))break}while(k=b.shift());if(this.active=!1,B){for(;k=b.shift();)k.unsubscribe();throw B}}}},5430:(u,D,v)=>{v.d(D,{hZ:()=>p});const p="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"},3821:(u,D,v)=>{v.d(D,{L:()=>p});const p="function"==typeof Symbol&&Symbol.observable||"@@observable"},7668:(u,D,v)=>{v.d(D,{b:()=>p});const p="function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random()},4231:(u,D,v)=>{v.d(D,{W:()=>p});const p=(()=>{function s(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return s.prototype=Object.create(Error.prototype),s})()},5279:(u,D,v)=>{v.d(D,{N:()=>p});const p=(()=>{function s(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return s.prototype=Object.create(Error.prototype),s})()},2782:(u,D,v)=>{function p(s){setTimeout(()=>{throw s},0)}v.d(D,{z:()=>p})},5379:(u,D,v)=>{function p(s){return s}v.d(D,{y:()=>p})},6688:(u,D,v)=>{v.d(D,{k:()=>p});const p=Array.isArray||(s=>s&&"number"==typeof s.length)},8515:(u,D,v)=>{v.d(D,{z:()=>p});const p=s=>s&&"number"==typeof s.length&&"function"!=typeof s},7043:(u,D,v)=>{function p(s){return"function"==typeof s}v.d(D,{m:()=>p})},7830:(u,D,v)=>{function p(s){return null!==s&&"object"==typeof s}v.d(D,{K:()=>p})},8955:(u,D,v)=>{function p(s){return!!s&&"function"!=typeof s.subscribe&&"function"==typeof s.then}v.d(D,{t:()=>p})},2866:(u,D,v)=>{function p(s){return s&&"function"==typeof s.schedule}v.d(D,{K:()=>p})},9249:(u,D,v)=>{v.d(D,{s:()=>_});var p=v(3650),s=v(2782),j=v(5430),k=v(3821),b=v(8515),B=v(8955),V=v(7830);const _=H=>{if(H&&"function"==typeof H[k.L])return Y=H,q=>{const it=Y[k.L]();if("function"!=typeof it.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return it.subscribe(q)};var Y;if((0,b.z)(H))return(0,p.V)(H);if((0,B.t)(H))return(Y=>q=>(Y.then(it=>{q.closed||(q.next(it),q.complete())},it=>q.error(it)).then(null,s.z),q))(H);if(H&&"function"==typeof H[j.hZ])return(Y=>q=>{const it=Y[j.hZ]();for(;;){let vt;try{vt=it.next()}catch(at){return q.error(at),q}if(vt.done){q.complete();break}if(q.next(vt.value),q.closed)break}return"function"==typeof it.return&&q.add(()=>{it.return&&it.return()}),q})(H);
1{const Y=`You provided ${(0,V.K)(H)?"an invalid object":`'${H}'`} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`;throw new TypeError(Y)}}},3650:(u,D,v)=>{v.d(D,{V:()=>p});const p=s=>j=>{for(let k=0,b=s.length;k<b&&!j.closed;k++)j.next(s[k]);j.complete()}},1777:(u,D,v)=>{v.d(D,{l3:()=>j,_j:()=>p,LC:()=>s,ZN:()=>q,jt:()=>b,vP:()=>B,SB:()=>_,oB:()=>V,eR:()=>H,X$:()=>k,ZE:()=>it,k1:()=>vt});class p{}class s{}const j="*";function k(at,J){return{type:7,name:at,definitions:J,options:{}}}function b(at,J=null){return{type:4,styles:J,timings:at}}function B(at,J=null){return{type:2,steps:at,options:J}}function V(at){return{type:6,styles:at,offset:null}}function _(at,J,ht){return{type:0,name:at,styles:J,options:ht}}function H(at,J,ht=null){return{type:1,expr:at,animation:J,options:ht}}function Y(at){Promise.resolve(null).then(at)}class q{constructor(J=0,ht=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=J+ht}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(J=>J()),this._onDoneFns=[])}onStart(J){this._onStartFns.push(J)}onDone(J){this._onDoneFns.push(J)}onDestroy(J){this._onDestroyFns.push(J)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){Y(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(J=>J()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(J=>J()),this._onDestroyFns=[])}reset(){this._started=!1}setPosition(J){this._position=this.totalTime?J*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(J){const ht="start"==J?this._onStartFns:this._onDoneFns;ht.forEach(m=>m()),ht.length=0}}class it{constructor(J){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=J;let ht=0,m=0,M=0;const N=this.players.length;0==N?Y(()=>this._onFinish()):this.players.forEach(g=>{g.onDone(()=>{++ht==N&&this._onFinish()}),g.onDestroy(()=>{++m==N&&this._onDestroy()}),g.onStart(()=>{++M==N&&this._onStart()})}),this.totalTime=this.players.reduce((g,x)=>Math.max(g,x.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(J=>J()),this._onDoneFns=[])}init(){this.players.forEach(J=>J.init())}onStart(J){this._onStartFns.push(J)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(J=>J()),this._onStartFns=[])}onDone(J){this._onDoneFns.push(J)}onDestroy(J){this._onDestroyFns.push(J)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(J=>J.play())}pause(){this.players.forEach(J=>J.pause())}restart(){this.players.forEach(J=>J.restart())}finish(){this._onFinish(),this.players.forEach(J=>J.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(J=>J.destroy()),this._onDestroyFns.forEach(J=>J()),this._onDestroyFns=[])}reset(){this.players.forEach(J=>J.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(J){const ht=J*this.totalTime;this.players.forEach(m=>{const M=m.totalTime?Math.min(1,ht/m.totalTime):1;m.setPosition(M)})}getPosition(){const J=this.players.reduce((ht,m)=>null===ht||m.totalTime>ht.totalTime?m:ht,null);return null!=J?J.getPosition():0}beforeDestroy(){this.players.forEach(J=>{J.beforeDestroy&&J.beforeDestroy()})}triggerCallback(J){const ht="start"==J?this._onStartFns:this._onDoneFns;ht.forEach(m=>m()),ht.length=0}}const vt="!"},226:(u,D,v)=>{v.d(D,{vT:()=>B,Is:()=>b});var p=v(6435),s=v(9808);const j=new p.OlP("cdk-dir-doc",{providedIn:"root",factory:function(){return(0,p.f3M)(s.K0)}}),k=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let b=(()=>
1{class V{constructor(H){if(this.value="ltr",this.change=new p.vpe,H){const Y=H.documentElement?H.documentElement.dir:null;this.value=function(it){const vt=it?.toLowerCase()||"";return"auto"===vt&&typeof navigator<"u"&&navigator?.language?k.test(navigator.language)?"rtl":"ltr":"rtl"===vt?"rtl":"ltr"}((H.body?H.body.dir:null)||Y||"ltr")}}ngOnDestroy(){this.change.complete()}}return V.\u0275fac=function(_){return new(_||V)(p.LFG(j,8))},V.\u0275prov=p.Yz7({token:V,factory:V.\u0275fac,providedIn:"root"}),V})(),B=(()=>{class V{}return V.\u0275fac=function(_){return new(_||V)},V.\u0275mod=p.oAB({type:V}),V.\u0275inj=p.cJS({}),V})()},3191:(u,D,v)=>{v.d(D,{Eq:()=>j,Ig:()=>s,HM:()=>k,fI:()=>b});var p=v(6435);function s(B){return null!=B&&"false"!=`${B}`}function j(B){return Array.isArray(B)?B:[B]}function k(B){return null==B?"":"string"==typeof B?B:`${B}px`}function b(B){return B instanceof p.SBq?B.nativeElement:B}},9808:(u,D,v)=>{v.d(D,{mr:()=>J,ez:()=>Je,K0:()=>B,uU:()=>Jt,JJ:()=>Ie,Do:()=>m,V_:()=>_,Ye:()=>M,S$:()=>at,mk:()=>ur,O5:()=>ee,PC:()=>Be,b0:()=>ht,lw:()=>V,EM:()=>Pn,JF:()=>Pe,NF:()=>nn,PM:()=>pn,w_:()=>b,bD:()=>Te,q:()=>j,Mx:()=>yr,HT:()=>k});var p=v(6435);let s=null;function j(){return s}function k(zt){s||(s=zt)}class b{}const B=new p.OlP("DocumentToken");let V=(()=>{class zt{historyGo(Dt){throw new Error("Not implemented")}}return zt.\u0275fac=function(me){return new(me||zt)},zt.\u0275prov=p.Yz7({token:zt,factory:function(){return(0,p.LFG)(H)},providedIn:"platform"}),zt})();const _=new p.OlP("Location Initialized");let H=(()=>{class zt extends V{constructor(Dt){super(),this._doc=Dt,this._init()}_init(){this.location=window.location,this._history=window.history}getBaseHrefFromDOM(){return j().getBaseHref(this._doc)}onPopState(Dt){const le=j().getGlobalEventTarget(this._doc,"window");return le.addEventListener("popstate",Dt,!1),()=>le.removeEventListener("popstate",Dt)}onHashChange(Dt){const le=j().getGlobalEventTarget(this._doc,"window");return le.addEventListener("hashchange",Dt,!1),()=>le.removeEventListener("hashchange",Dt)}get href(){return this.location.href}get protocol(){return this.location.protocol}get hostname(){return this.location.hostname}get port(){return this.location.port}get pathname(){return this.location.pathname}get search(){return this.location.search}get hash(){return this.location.hash}set pathname(Dt){this.location.pathname=Dt}pushState(Dt,le,pe){Y()?this._history.pushState(Dt,le,pe):this.location.hash=pe}replaceState(Dt,le,pe){Y()?this._history.replaceState(Dt,le,pe):this.location.hash=pe}forward(){this._history.forward()}back(){this._history.back()}historyGo(Dt=0){this._history.go(Dt)}getState(){return this._history.state}}return zt.\u0275fac=function(me){return new(me||zt)(p.LFG(B))},zt.\u0275prov=p.Yz7({token:zt,factory:function(){return new H((0,p.LFG)(B))},providedIn:"platform"}),zt})();function Y(){return!!window.history.pushState}function q(zt,me){if(0==zt.length)return me;if(0==me.length)return zt;let Dt=0;return zt.endsWith("/")&&Dt++,me.startsWith("/")&&Dt++,2==Dt?zt+me.substring(1):1==Dt?zt+me:zt+"/"+me}function it(zt){const me=zt.match(/#|\?|$/),Dt=me&&me.index||zt.length;return zt.slice(0,Dt-("/"===zt[Dt-1]?1:0))+zt.slice(Dt)}function vt(zt){return zt&&"?"!==zt[0]?"?"+zt:zt}let at=(()=>{class zt{historyGo(Dt){throw new Error("Not implemented")}}return zt.\u0275fac=function(me){return new(me||zt)},zt.\u0275prov=p.Yz7({token:zt,factory:function(){return function(Dt){const le=(0,p.LFG)(B).location;return new ht((0,p.LFG)(V),le&&le.origin||"")}()},providedIn:"root"}),zt})();const J=new p.OlP("appBaseHref");let ht=(()=>{class zt extends at{constructor(Dt,le){if(super(),this._platformLocation=Dt,this._removeListenerFns=[],null==le&&(le=this._platformLocation.getBaseHrefFromDOM()),null==le)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");this._baseHref=le}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(Dt){this._removeListenerFns.push(this._platformLocation.onPopState(Dt),this._platformLocation.on
1HashChange(Dt))}getBaseHref(){return this._baseHref}prepareExternalUrl(Dt){return q(this._baseHref,Dt)}path(Dt=!1){const le=this._platformLocation.pathname+vt(this._platformLocation.search),pe=this._platformLocation.hash;return pe&&Dt?`${le}${pe}`:le}pushState(Dt,le,pe,dn){const Ze=this.prepareExternalUrl(pe+vt(dn));this._platformLocation.pushState(Dt,le,Ze)}replaceState(Dt,le,pe,dn){const Ze=this.prepareExternalUrl(pe+vt(dn));this._platformLocation.replaceState(Dt,le,Ze)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}historyGo(Dt=0){var le,pe;null===(pe=(le=this._platformLocation).historyGo)||void 0===pe||pe.call(le,Dt)}}return zt.\u0275fac=function(me){return new(me||zt)(p.LFG(V),p.LFG(J,8))},zt.\u0275prov=p.Yz7({token:zt,factory:zt.\u0275fac}),zt})(),m=(()=>{class zt extends at{constructor(Dt,le){super(),this._platformLocation=Dt,this._baseHref="",this._removeListenerFns=[],null!=le&&(this._baseHref=le)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(Dt){this._removeListenerFns.push(this._platformLocation.onPopState(Dt),this._platformLocation.onHashChange(Dt))}getBaseHref(){return this._baseHref}path(Dt=!1){let le=this._platformLocation.hash;return null==le&&(le="#"),le.length>0?le.substring(1):le}prepareExternalUrl(Dt){const le=q(this._baseHref,Dt);return le.length>0?"#"+le:le}pushState(Dt,le,pe,dn){let Ze=this.prepareExternalUrl(pe+vt(dn));0==Ze.length&&(Ze=this._platformLocation.pathname),this._platformLocation.pushState(Dt,le,Ze)}replaceState(Dt,le,pe,dn){let Ze=this.prepareExternalUrl(pe+vt(dn));0==Ze.length&&(Ze=this._platformLocation.pathname),this._platformLocation.replaceState(Dt,le,Ze)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}historyGo(Dt=0){var le,pe;null===(pe=(le=this._platformLocation).historyGo)||void 0===pe||pe.call(le,Dt)}}return zt.\u0275fac=function(me){return new(me||zt)(p.LFG(V),p.LFG(J,8))},zt.\u0275prov=p.Yz7({token:zt,factory:zt.\u0275fac}),zt})(),M=(()=>{class zt{constructor(Dt,le){this._subject=new p.vpe,this._urlChangeListeners=[],this._platformStrategy=Dt;const pe=this._platformStrategy.getBaseHref();this._platformLocation=le,this._baseHref=it(N(pe)),this._platformStrategy.onPopState(dn=>{this._subject.emit({url:this.path(!0),pop:!0,state:dn.state,type:dn.type})})}path(Dt=!1){return this.normalize(this._platformStrategy.path(Dt))}getState(){return this._platformLocation.getState()}isCurrentPathEqualTo(Dt,le=""){return this.path()==this.normalize(Dt+vt(le))}normalize(Dt){return zt.stripTrailingSlash((pe=this._baseHref,dn=N(Dt),pe&&dn.startsWith(pe)?dn.substring(pe.length):dn));var pe,dn}prepareExternalUrl(Dt){return Dt&&"/"!==Dt[0]&&(Dt="/"+Dt),this._platformStrategy.prepareExternalUrl(Dt)}go(Dt,le="",pe=null){this._platformStrategy.pushState(pe,"",Dt,le),this._notifyUrlChangeListeners(this.prepareExternalUrl(Dt+vt(le)),pe)}replaceState(Dt,le="",pe=null){this._platformStrategy.replaceState(pe,"",Dt,le),this._notifyUrlChangeListeners(this.prepareExternalUrl(Dt+vt(le)),pe)}forward(){this._platformStrategy.forward()}back(){this._platformStrategy.back()}historyGo(Dt=0){var le,pe;null===(pe=(le=this._platformStrategy).historyGo)||void 0===pe||pe.call(le,Dt)}onUrlChange(Dt){this._urlChangeListeners.push(Dt),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(le=>{this._notifyUrlChangeListeners(le.url,le.state)}))}_notifyUrlChangeListeners(Dt="",le){this._urlChangeListeners.forEach(pe=>pe(Dt,le))}subscribe(Dt,le,pe){return this._subject.subscribe({next:Dt,error:le,complete:pe})}}return zt.normalizeQueryParams=vt,zt.joinWithSlash=q,zt.stripTrailingSlash=it,zt.\u0275fac=function(me){return new(me||zt)(p.LFG(at),p.LFG(V))},zt.\u0275prov=p.Yz7({token:zt,factory:function(){return new M((0,p.LFG)(at),(0,p.LFG)(V))},providedIn:"root"}),zt})();function N(zt){return zt.replace(/\/index.html$/,"")}var g=((g=g||{})[g.Decimal=0]="Decimal",g[g.Percent=1]="Percent",g[g.Currency=2]="Currency",g[g.Scientific=3]="Scientific",g),x=((x=x||{})[x.Zero=0]="Zero",x[x.One=1]="One",x[x.Two=2]="Two",x[x.Few=3]="Few",x[x.Many=4]="Many",x[x.Other=5]="Other",x),P=((P=P||{})[P.Format=0]="Format",P[P.Standalone=1]="Standalone",P),Q=((Q=Q||{})[Q.Narrow=0]="Narrow",Q[Q.Abbreviated=1]="Abbreviated",Q[Q.Wide=2]="Wide",Q[Q.Short=3]="Short",Q),U=((U=U||{})[U.Short=0]="Short",U[U.Medium=1]="Medium",U[U.Long=2]="Long",U[U.Full=3]="Full",U),G=((G=G||{})[G.Decimal=0]="Decimal",G[G.Group=1]="Group",G[G.List=2]="List",G[G.PercentSign=3]="PercentSign",G[G.PlusSign=4]="PlusSign",G[G.MinusSign=5]="MinusSign",G[G.Exponential=6]="Exponential",G[G.SuperscriptingExponent=7]="SuperscriptingExponent",G[G.PerMille=8]="PerMille",G[G.Infinity=9]="Infinity",G[G.NaN=10]="NaN",G[G.TimeSeparator=11]="TimeSeparator",G[G.CurrencyDecimal=12]="CurrencyDecimal",G[G.CurrencyGroup=13]="CurrencyGroup",G);function dt(zt,me){return ge((0,p.cg1)(zt)[p.wAp.DateFormat],me)}function wt(zt,me){return ge((0,p.cg1)(zt)[p.wAp.TimeFormat],me)}function W(zt,me){return ge((0,p.cg1)(zt)[p.wAp.DateTimeFormat],me)}function te(zt,me){const Dt=(0,p.cg1)(zt),le=Dt[p.wAp.NumberSymbols][me];if(void 0===le){if(me===G.CurrencyDecimal)return Dt[p.wAp.NumberSymbols][G.Decimal];if(me===G.CurrencyGroup)return Dt[p.wAp.NumberSymbols][G.Group]}return le}const ae=p.kL8;function Ae(zt){if(!zt[p.wAp.ExtraData])throw new Error(`Missing extra locale data for the locale "${zt[p.wAp.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function ge(zt,me){for(let Dt=me;Dt>-1;Dt--)if(void 0!==zt[Dt])return zt[Dt];throw new Error("Locale data API: locale data undefined")}function We(zt){const[me,Dt]=zt.split(":");return{hours:+me,minutes:+Dt}}const Cn=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,rn={},Me=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var Le=((Le=Le||{})[Le.Short=0]="Short",Le[Le.ShortGMT=1]="ShortGMT",Le[Le.Long=2]="Long",Le[Le.Extended=3]="Extended",Le),Ee=((Ee=Ee||{})[Ee.FullYear=0]="FullYear",Ee[Ee.Month=1]="Month",Ee[Ee.Date=2]="Date",Ee[Ee.Hours=3]="Hours",Ee[Ee.Minutes=4]="Minutes",Ee[Ee.Seconds=5]="Seconds",Ee[Ee.FractionalSeconds=6]="FractionalSeconds",Ee[Ee.Day=7]="Day",Ee),Qt=((Qt=Qt||{})[Qt.DayPeriods=0]="DayPeriods",Qt[Qt.Days=1]="Days",Qt[Qt.Months=2]="Months",Qt[Qt.Eras=3]="Eras",Qt);function Ut(zt,me,Dt,le){let pe=function(on){if(Wt(on))return on;if("number"==typeof on&&!isNaN(on))return new Date(on);if("string"==typeof on){if(on=on.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(on)){const[Qn,zn=1,sn=1]=on.split("-").map(xn=>+xn);return Mt(Qn,zn-1,sn)}const Zn=parseFloat(on);if(!isNaN(on-Zn))return new Date(Zn);let cn;if(cn=on.match(Cn))return function(zn){const sn=new Date(0);let xn=0,Oe=0;const re=zn[8]?sn.setUTCFullYear:sn.setFullYear,fe=zn[8]?sn.setUTCHours:sn.setHours;zn[9]&&(xn=Number(zn[9]+zn[10]),Oe=Number(zn[9]+zn[11])),re.call(sn,Number(zn[1]),Number(zn[2])-1,Number(zn[3]));const Ot=Number(zn[4]||0)-xn,ie=Number(zn[5]||0)-Oe,je=Number(zn[6]||0),Ye=Math.floor(1e3*parseFloat("0."+(zn[7]||0)));return fe.call(sn,Ot,ie,je,Ye),sn}(cn)}const Nn=new Date(on);if(!Wt(Nn))throw new Error(`Unable to convert "${on}" into a date`);return Nn}(zt);
vendor: 10,989 bytes, line 1
1me=It(Dt,me)||me;let dn,Ze=[];for(;me;){if(dn=Me.exec(me),!dn){Ze.push(me);break}{Ze=Ze.concat(dn.slice(1));const fn=Ze.pop();if(!fn)break;me=fn}}let Kn=pe.getTimezoneOffset();le&&(Kn=de(le,Kn),pe=function(on,Nn,Zn){const Qn=on.getTimezoneOffset();return sn=on,xn=-1*(de(Nn,Qn)-Qn),(sn=new Date(sn.getTime())).setMinutes(sn.getMinutes()+xn),sn;var sn,xn}(pe,le));let un="";return Ze.forEach(fn=>{const on=function(Zn){if(kt[Zn])return kt[Zn];let cn;switch(Zn){case"G":case"GG":case"GGG":cn=ct(Qt.Eras,Q.Abbreviated);break;case"GGGG":cn=ct(Qt.Eras,Q.Wide);break;case"GGGGG":cn=ct(Qt.Eras,Q.Narrow);break;case"y":cn=et(Ee.FullYear,1,0,!1,!0);break;case"yy":cn=et(Ee.FullYear,2,0,!0,!0);break;case"yyy":cn=et(Ee.FullYear,3,0,!1,!0);break;case"yyyy":cn=et(Ee.FullYear,4,0,!1,!0);break;case"Y":cn=bt(1);break;case"YY":cn=bt(2,!0);break;case"YYY":cn=bt(3);break;case"YYYY":cn=bt(4);break;case"M":case"L":cn=et(Ee.Month,1,1);break;case"MM":case"LL":cn=et(Ee.Month,2,1);break;case"MMM":cn=ct(Qt.Months,Q.Abbreviated);break;case"MMMM":cn=ct(Qt.Months,Q.Wide);break;case"MMMMM":cn=ct(Qt.Months,Q.Narrow);break;case"LLL":cn=ct(Qt.Months,Q.Abbreviated,P.Standalone);break;case"LLLL":cn=ct(Qt.Months,Q.Wide,P.Standalone);break;case"LLLLL":cn=ct(Qt.Months,Q.Narrow,P.Standalone);break;case"w":cn=ne(1);break;case"ww":cn=ne(2);break;case"W":cn=ne(1,!0);break;case"d":cn=et(Ee.Date,1);break;case"dd":cn=et(Ee.Date,2);break;case"c":case"cc":cn=et(Ee.Day,1);break;case"ccc":cn=ct(Qt.Days,Q.Abbreviated,P.Standalone);break;case"cccc":cn=ct(Qt.Days,Q.Wide,P.Standalone);break;case"ccccc":cn=ct(Qt.Days,Q.Narrow,P.Standalone);break;case"cccccc":cn=ct(Qt.Days,Q.Short,P.Standalone);break;case"E":case"EE":case"EEE":cn=ct(Qt.Days,Q.Abbreviated);break;case"EEEE":cn=ct(Qt.Days,Q.Wide);break;case"EEEEE":cn=ct(Qt.Days,Q.Narrow);break;case"EEEEEE":cn=ct(Qt.Days,Q.Short);break;case"a":case"aa":case"aaa":cn=ct(Qt.DayPeriods,Q.Abbreviated);break;case"aaaa":cn=ct(Qt.DayPeriods,Q.Wide);break;case"aaaaa":cn=ct(Qt.DayPeriods,Q.Narrow);break;case"b":case"bb":case"bbb":cn=ct(Qt.DayPeriods,Q.Abbreviated,P.Standalone,!0);break;case"bbbb":cn=ct(Qt.DayPeriods,Q.Wide,P.Standalone,!0);break;case"bbbbb":cn=ct(Qt.DayPeriods,Q.Narrow,P.Standalone,!0);break;case"B":case"BB":case"BBB":cn=ct(Qt.DayPeriods,Q.Abbreviated,P.Format,!0);break;case"BBBB":cn=ct(Qt.DayPeriods,Q.Wide,P.Format,!0);break;case"BBBBB":cn=ct(Qt.DayPeriods,Q.Narrow,P.Format,!0);break;case"h":cn=et(Ee.Hours,1,-12);break;case"hh":cn=et(Ee.Hours,2,-12);break;case"H":cn=et(Ee.Hours,1);break;case"HH":cn=et(Ee.Hours,2);break;case"m":cn=et(Ee.Minutes,1);break;case"mm":cn=et(Ee.Minutes,2);break;case"s":cn=et(Ee.Seconds,1);break;case"ss":cn=et(Ee.Seconds,2);break;case"S":cn=et(Ee.FractionalSeconds,1);break;case"SS":cn=et(Ee.FractionalSeconds,2);break;case"SSS":cn=et(Ee.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":cn=Vt(Le.Short);break;case"ZZZZZ":cn=Vt(Le.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":cn=Vt(Le.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":cn=Vt(Le.Long);break;default:return null}return kt[Zn]=cn,cn}(fn);un+=on?on(pe,Dt,Kn):"''"===fn?"'":fn.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),un}function Mt(zt,me,Dt){const le=new Date(0);return le.setFullYear(zt,me,Dt),le.setHours(0,0,0),le}function It(zt,me){const Dt=(0,p.cg1)(zt)[p.wAp.LocaleId];if(rn[Dt]=rn[Dt]||{},rn[Dt][me])return rn[Dt][me];let le="";switch(me){case"shortDate":le=dt(zt,U.Short);break;case"mediumDate":le=dt(zt,U.Medium);break;case"longDate":le=dt(zt,U.Long);break;case"fullDate":le=dt(zt,U.Full);break;case"shortTime":le=wt(zt,U.Short);break;case"mediumTime":le=wt(zt,U.Medium);break;case"longTime":le=wt(zt,U.Long);break;case"fullTime":le=wt(zt,U.Full);break;case"short":const pe=It(zt,"shortTime"),dn=It(zt,"shortDate");le=mt(W(zt,U.Short),[pe,dn]);break;case"medium":const Ze=It(zt,"mediumTime"),Kn=It(zt,"mediumDate");le=mt(W(zt,U.Medium),[Ze,Kn]);break;case"long":const un=It(zt,"longTime"),fn=It(zt,"longDate");le=mt(W(zt,U.Long),[un,fn]);break;case"full":const on=It(zt,"fullTime"),Nn=It(zt,"fullDate");le=mt(W(zt,U.Full),[on,Nn])}return le&&(rn[Dt][me]=le),le}function mt(zt,me){return me&&(zt=zt.replace(/\{([^}]+)}/g,function(Dt,le){return null!=me&&le in me?me[le]:Dt})),zt}function lt(zt,me,Dt="-",le,pe){let dn="";(zt<0||pe&&zt<=0)&&(pe?zt=1-zt:(zt=-zt,dn=Dt));let Ze=String(zt);for(;Ze.length<me;)Ze="0"+Ze;return le&&(Ze=Ze.substr(Ze.length-me)),dn+Ze}function et(zt,me,Dt=0,le=!1,pe=!1){return function(dn,Ze){let Kn=function(on,Nn){switch(on){case Ee.FullYear:return Nn.getFullYear();case Ee.Month:return Nn.getMonth();case Ee.Date:return Nn.getDate();case Ee.Hours:return Nn.getHours();case Ee.Minutes:return Nn.getMinutes();case Ee.Seconds:return Nn.getSeconds();case Ee.FractionalSeconds:return Nn.getMilliseconds();case Ee.Day:return Nn.getDay();default:throw new Error(`Unknown DateType value "${on}".`)}}(zt,dn);if((Dt>0||Kn>-Dt)&&(Kn+=Dt),zt===Ee.Hours)0===Kn&&-12===Dt&&(Kn=12);else if(zt===Ee.FractionalSeconds)return Nn=me,lt(Kn,3).substr(0,Nn);var Nn;const un=te(Ze,G.MinusSign);return lt(Kn,me,un,le,pe)}}function ct(zt,me,Dt=P.Format,le=!1){return function(pe,dn){return function(Kn,un,fn,on,Nn,Zn){switch(fn){case Qt.Months:return function(sn,xn,Oe){const re=(0,p.cg1)(sn),fe=ge([re[p.wAp.MonthsFormat],re[p.wAp.MonthsStandalone]],xn);return ge(fe,Oe)}(un,Nn,on)[Kn.getMonth()];case Qt.Days:return function(sn,xn,Oe){const re=(0,p.cg1)(sn),fe=ge([re[p.wAp.DaysFormat],re[p.wAp.DaysStandalone]],xn);return ge(fe,Oe)}(un,Nn,on)[Kn.getDay()];case Qt.DayPeriods:const cn=Kn.getHours(),Qn=Kn.getMinutes();if(Zn){const zn=function(re){const fe=(0,p.cg1)(re);return Ae(fe),(fe[p.wAp.ExtraData][2]||[]).map(Ot=>"string"==typeof Ot?We(Ot):[We(Ot[0]),We(Ot[1])])}(un),sn=function(re,fe,Ot){const ie=(0,p.cg1)(re);Ae(ie);const je=ge([ie[p.wAp.ExtraData][0],ie[p.wAp.ExtraData][1]],fe)||[];return ge(je,Ot)||[]}(un,Nn,on),xn=zn.findIndex(Oe=>{if(Array.isArray(Oe)){const[re,fe]=Oe,Ot=cn>=re.hours&&Qn>=re.minutes,ie=cn<fe.hours||cn===fe.hours&&Qn<fe.minutes;if(re.hours<fe.hours){if(Ot&&ie)return!0}else if(Ot||ie)return!0}else if(Oe.hours===cn&&Oe.minutes===Qn)return!0;return!1});if(-1!==xn)return sn[xn]}return function(sn,xn,Oe){const re=(0,p.cg1)(sn),fe=ge([re[p.wAp.DayPeriodsFormat],re[p.wAp.DayPeriodsStandalone]],xn);return ge(fe,Oe)}(un,Nn,on)[cn<12?0:1];case Qt.Eras:return(sn=un,xn=on,ge((0,p.cg1)(sn)[p.wAp.Eras],xn))[Kn.getFullYear()<=0?0:1];default:throw new Error(`unexpected translation type ${fn}`)}var sn,xn}(pe,dn,zt,me,Dt,le)}}function Vt(zt){return function(me,Dt,le){const pe=-1*le,dn=te(Dt,G.MinusSign),Ze=pe>0?Math.floor(pe/60):Math.ceil(pe/60);switch(zt){case Le.Short:return(pe>=0?"+":"")+lt(Ze,2,dn)+lt(Math.abs(pe%60),2,dn);case Le.ShortGMT:return"GMT"+(pe>=0?"+":"")+lt(Ze,1,dn);case Le.Long:return"GMT"+(pe>=0?"+":"")+lt(Ze,2,dn)+":"+lt(Math.abs(pe%60),2,dn);case Le.Extended:return 0===le?"Z":(pe>=0?"+":"")+lt(Ze,2,dn)+":"+lt(Math.abs(pe%60),2,dn);default:throw new Error(`Unknown zone width "${zt}"`)}}}function Rt(zt){return Mt(zt.getFullYear(),zt.getMonth(),zt.getDate()+(4-zt.getDay()))}function ne(zt,me=!1){return function(Dt,le){let pe;if(me){const dn=new Date(Dt.getFullYear(),Dt.getMonth(),1).getDay()-1,Ze=Dt.getDate();pe=1+Math.floor((Ze+dn)/7)}else{const dn=Rt(Dt),Ze=function(fn){const on=Mt(fn,0,1).getDay();return Mt(fn,0,1+(on<=4?4:11)-on)}(dn.getFullYear()),Kn=dn.getTime()-Ze.getTime();pe=1+Math.round(Kn/6048e5)}return lt(pe,zt,te(le,G.MinusSign))}}function bt(zt,me=!1){return function(Dt,le){return lt(Rt(Dt).getFullYear(),zt,te(le,G.MinusSign),me)}}const kt={};function de(zt,me){zt=zt.replace(/:/g,"");const Dt=Date.parse("Jan 01, 1970 00:00:00 "+zt)/6e4;return isNaN(Dt)?me:Dt}function Wt(zt){return zt instanceof Date&&!isNaN(zt.valueOf())}const en=/^(\d+)?\.((\d+)(-(\d+))?)?$/;function be(zt){const me=parseInt(zt);if(isNaN(me))throw new Error("Invalid integer literal when parsing "+zt);return me}class qe{}let kn=(()=>{class zt extends qe{constructor(Dt){super(),this.locale=Dt}getPluralCategory(Dt,le){switch(ae(le||this.locale)(Dt)){case x.Zero:return"zero";case x.One:return"one";case x.Two:return"two";case x.Few:return"few";case x.Many:return"many";default:return"other"}}}return zt.\u0275fac=function(me){return new(me||zt)(p.LFG(p.soG))},zt.\u0275prov=p.Yz7({token:zt,factory:zt.\u0275fac}),zt})();function yr(zt,me){me=encodeURIComponent(me);for(const Dt of zt.split(";")){const le=Dt.indexOf("="),[pe,dn]=-1==le?[Dt,""]:[Dt.slice(0,le),Dt.slice(le+1)];if(pe.trim()===me)return decodeURIComponent(dn)}return null}let ur=(()=>{class zt{constructor(Dt,le,pe,dn){this._iterableDiffers=Dt,this._keyValueDiffers=le,this._ngEl=pe,this._renderer=dn,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(Dt){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof Dt?Dt.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(Dt){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof Dt?Dt.split(/\s+/):Dt,this._rawClass&&((0,p.sIi)(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const Dt=this._iterableDiffer.diff(this._rawClass);Dt&&this._applyIterableChanges(Dt)}else if(this._keyValueDiffer){const Dt=this._keyValueDiffer.diff(this._rawClass);Dt&&this._applyKeyValueChanges(Dt)}}_applyKeyValueChanges(Dt){Dt.forEachAddedItem(le=>this._toggleClass(le.key,le.currentValue)),Dt.forEachChangedItem(le=>this._toggleClass(le.key,le.currentValue)),Dt.forEachRemovedItem(le=>{le.previousValue&&this._toggleClass(le.key,!1)})}_applyIterableChanges(Dt){Dt.forEachAddedItem(le=>{if("string"!=typeof le.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${(0,p.AaK)(le.item)}`);this._toggleClass(le.item,!0)}),Dt.forEachRemovedItem(le=>this._toggleClass(le.item,!1))}_applyClasses(Dt){Dt&&(Array.isArray(Dt)||Dt instanceof Set?Dt.forEach(le=>this._toggleClass(le,!0)):Object.keys(Dt).forEach(le=>this._toggleClass(le,!!Dt[le])))}_removeClasses(Dt){Dt&&(Array.isArray(Dt)||Dt instanceof Set?Dt.forEach(le=>this._toggleClass(le,!1)):Object.keys(Dt).forEach(le=>this._toggleClass(le,!1)))}_toggleClass(Dt,le){(Dt=Dt.trim())&&Dt.split(/\s+/g).forEach(pe=>{le?this._renderer.addClass(this._ngEl.nativeElement,pe):this._renderer.removeClass(this._ngEl.nativeElement,pe)})}}return zt.\u0275fac=function(me){return new(me||zt)(p.Y36(p.ZZ4),p.Y36(p.aQg),p.Y36(p.SBq),p.Y36(p.Qsj))},zt.\u0275dir=p.lG2({type:zt,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"}}),zt})(),ee=(()=>{class zt{constructor(Dt,le){this._viewContainer=Dt,this._context=new Se,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenView
1Ref=null,this._elseViewRef=null,this._thenTemplateRef=le}set ngIf(Dt){this._context.$implicit=this._context.ngIf=Dt,this._updateView()}set ngIfThen(Dt){Re("ngIfThen",Dt),this._thenTemplateRef=Dt,this._thenViewRef=null,this._updateView()}set ngIfElse(Dt){Re("ngIfElse",Dt),this._elseTemplateRef=Dt,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(Dt,le){return!0}}return zt.\u0275fac=function(me){return new(me||zt)(p.Y36(p.s_b),p.Y36(p.Rgc))},zt.\u0275dir=p.lG2({type:zt,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}}),zt})();class Se{constructor(){this.$implicit=null,this.ngIf=null}}function Re(zt,me){if(me&&!me.createEmbeddedView)throw new Error(`${zt} must be a TemplateRef, but received '${(0,p.AaK)(me)}'.`)}let Be=(()=>{class zt{constructor(Dt,le,pe){this._ngEl=Dt,this._differs=le,this._renderer=pe,this._ngStyle=null,this._differ=null}set ngStyle(Dt){this._ngStyle=Dt,!this._differ&&Dt&&(this._differ=this._differs.find(Dt).create())}ngDoCheck(){if(this._differ){const Dt=this._differ.diff(this._ngStyle);Dt&&this._applyChanges(Dt)}}_setStyle(Dt,le){const[pe,dn]=Dt.split(".");null!=(le=null!=le&&dn?`${le}${dn}`:le)?this._renderer.setStyle(this._ngEl.nativeElement,pe,le):this._renderer.removeStyle(this._ngEl.nativeElement,pe)}_applyChanges(Dt){Dt.forEachRemovedItem(le=>this._setStyle(le.key,null)),Dt.forEachAddedItem(le=>this._setStyle(le.key,le.currentValue)),Dt.forEachChangedItem(le=>this._setStyle(le.key,le.currentValue))}}return zt.\u0275fac=function(me){return new(me||zt)(p.Y36(p.SBq),p.Y36(p.aQg),p.Y36(p.Qsj))},zt.\u0275dir=p.lG2({type:zt,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}}),zt})();function Lt(zt,me){return Error(`InvalidPipeArgument: '${me}' for pipe '${(0,p.AaK)(zt)}'`)}const Ht=new p.OlP("DATE_PIPE_DEFAULT_TIMEZONE");let Jt=(()=>{class zt{constructor(Dt,le){this.locale=Dt,this.defaultTimezone=le}transform(Dt,le="mediumDate",pe,dn){var Ze;if(null==Dt||""===Dt||Dt!=Dt)return null;try{return Ut(Dt,le,dn||this.locale,null!==(Ze=pe??this.defaultTimezone)&&void 0!==Ze?Ze:void 0)}catch(Kn){throw Lt(zt,Kn.message)}}}return zt.\u0275fac=function(me){return new(me||zt)(p.Y36(p.soG,16),p.Y36(Ht,24))},zt.\u0275pipe=p.Yjl({name:"date",type:zt,pure:!0}),zt})(),Ie=(()=>{class zt{constructor(Dt){this._locale=Dt}transform(Dt,le,pe){if(null==(Ze=Dt)||""===Ze||Ze!=Ze)return null;var Ze;pe=pe||this._locale;try{return function(Ze,Kn,un){return function(on,Nn,Zn,cn,Qn,zn,sn=!1){let xn="",Oe=!1;if(isFinite(on)){let re=function(qn){let wr,Br,vr,wi,Or,Nr=Math.abs(qn)+"",Si=0;for((Br=Nr.indexOf("."))>-1&&(Nr=Nr.replace(".","")),(vr=Nr.search(/e/i))>0?(Br<0&&(Br=vr),Br+=+Nr.slice(vr+1),Nr=Nr.substring(0,vr)):Br<0&&(Br=Nr.length),vr=0;"0"===Nr.charAt(vr);vr++);if(vr===(Or=Nr.length))wr=[0],Br=1;else{for(Or--;"0"===Nr.charAt(Or);)Or--;for(Br-=vr,wr=[],wi=0;vr<=Or;vr++,wi++)wr[wi]=Number(Nr.charAt(vr))}return Br>22&&(wr=wr.splice(0,21),Si=Br-1,Br=1),{digits:wr,exponent:Si,integerLen:Br}}(on);sn&&(re=function(qn){if(0===qn.digits[0])return qn;const wr=qn.digits.length-qn.integerLen;return qn.exponent?qn.exponent+=2:(0===wr?qn.digits.push(0,0):1===wr&&qn.digits.push(0),qn.integerLen+=2),qn}(re));let fe=Nn.minInt,Ot=Nn.minFrac,ie=Nn.maxFrac;if(zn){const Yn=zn.match(en);if(null===Yn)throw new Error(`${zn} is not a valid digit info`);const qn=Yn[1],wr=Yn[3],Br=Yn[5];null!=qn&&(fe=be(qn)),null!=wr&&(Ot=be(wr)),null!=Br?ie=be(Br):null!=wr&&Ot>ie&&(ie=Ot)}!function(qn,wr,Br){if(wr>Br)throw new Error(`The minimum number of digits after fraction (${wr}) is higher than the maximum (${Br}).`);let vr=qn.digits,wi=vr.length-qn.integerLen;const Or=Math.min(Math.max(wr,wi),Br);let Nr=Or+qn.integerLen,Si=vr[Nr];if(Nr>0){vr.splice(Math.max(qn.integerLen,Nr));for(let w=Nr;w<vr.length;w++)vr[w]=0}else{wi=Math.max(0,wi),qn.integerLen=1,vr.length=Math.max(1,Nr=Or+1),vr[0]=0;for(let w=1;w<Nr;w++)vr[w]=0}if(Si>=5)if(Nr-1<0){for(let w=0;w>Nr;w--)vr.unshift(0),qn.integerLen++;vr.unshift(1),qn.integerLen++}
1else vr[Nr-1]++;for(;wi<Math.max(0,Or);wi++)vr.push(0);let fi=0!==Or;const ts=wr+qn.integerLen,_t=vr.reduceRight(function(w,T,Z,pt){return pt[Z]=(T+=w)<10?T:T-10,fi&&(0===pt[Z]&&Z>=ts?pt.pop():fi=!1),T>=10?1:0},0);_t&&(vr.unshift(_t),qn.integerLen++)}(re,Ot,ie);let je=re.digits,Ye=re.integerLen;const On=re.exponent;let In=[];for(Oe=je.every(Yn=>!Yn);Ye<fe;Ye++)je.unshift(0);for(;Ye<0;Ye++)je.unshift(0);Ye>0?In=je.splice(Ye,je.length):(In=je,je=[0]);const gr=[];for(je.length>=Nn.lgSize&&gr.unshift(je.splice(-Nn.lgSize,je.length).join(""));je.length>Nn.gSize;)gr.unshift(je.splice(-Nn.gSize,je.length).join(""));je.length&&gr.unshift(je.join("")),xn=gr.join(te(Zn,cn)),In.length&&(xn+=te(Zn,Qn)+In.join("")),On&&(xn+=te(Zn,G.Exponential)+"+"+On)}else xn=te(Zn,G.Infinity);return xn=on<0&&!Oe?Nn.negPre+xn+Nn.negSuf:Nn.posPre+xn+Nn.posSuf,xn}(Ze,function(on,Nn="-"){const Zn={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},cn=on.split(";"),Qn=cn[0],zn=cn[1],sn=-1!==Qn.indexOf(".")?Qn.split("."):[Qn.substring(0,Qn.lastIndexOf("0")+1),Qn.substring(Qn.lastIndexOf("0")+1)],xn=sn[0],Oe=sn[1]||"";Zn.posPre=xn.substr(0,xn.indexOf("#"));for(let fe=0;fe<Oe.length;fe++){const Ot=Oe.charAt(fe);"0"===Ot?Zn.minFrac=Zn.maxFrac=fe+1:"#"===Ot?Zn.maxFrac=fe+1:Zn.posSuf+=Ot}const re=xn.split(",");if(Zn.gSize=re[1]?re[1].length:0,Zn.lgSize=re[2]||re[1]?(re[2]||re[1]).length:0,zn){const fe=Qn.length-Zn.posPre.length-Zn.posSuf.length,Ot=zn.indexOf("#");Zn.negPre=zn.substr(0,Ot).replace(/'/g,""),Zn.negSuf=zn.substr(Ot+fe).replace(/'/g,"")}else Zn.negPre=Nn+Zn.posPre,Zn.negSuf=Zn.posSuf;return Zn}((Nn=g.Decimal,(0,p.cg1)(Kn)[p.wAp.NumberFormats][Nn]),te(Kn,G.MinusSign)),Kn,G.Group,G.Decimal,un);var Nn}(function(Ze){if("string"==typeof Ze&&!isNaN(Number(Ze)-parseFloat(Ze)))return Number(Ze);if("number"!=typeof Ze)throw new Error(`${Ze} is not a number`);return Ze}(Dt),pe,le)}catch(dn){throw Lt(zt,dn.message)}}}return zt.\u0275fac=function(me){return new(me||zt)(p.Y36(p.soG,16))},zt.\u0275pipe=p.Yjl({name:"number",type:zt,pure:!0}),zt})(),Je=(()=>{class zt{}return zt.\u0275fac=function(me){return new(me||zt)},zt.\u0275mod=p.oAB({type:zt}),zt.\u0275inj=p.cJS({providers:[{provide:qe,useClass:kn}]}),zt})();const Te="browser";function nn(zt){return zt===Te}function pn(zt){return"server"===zt}let Pn=(()=>{class zt{}return zt.\u0275prov=(0,p.Yz7)({token:zt,providedIn:"root",factory:()=>new Mn((0,p.LFG)(B),window)}),zt})();class Mn{constructor(me,Dt){this.document=me,this.window=Dt,this.offset=()=>[0,0]}setOffset(me){this.offset=Array.isArray(me)?()=>me:me}getScrollPosition(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}scrollToPosition(me){this.supportsScrolling()&&this.window.scrollTo(me[0],me[1])}scrollToAnchor(me){if(!this.supportsScrolling())return;const Dt=function(pe,dn){const Ze=pe.getElementById(dn)||pe.getElementsByName(dn)[0];if(Ze)return Ze;if("function"==typeof pe.createTreeWalker&&pe.body&&(pe.body.createShadowRoot||pe.body.attachShadow)){const Kn=pe.createTreeWalker(pe.body,NodeFilter.SHOW_ELEMENT);let un=Kn.currentNode;for(;un;){const fn=un.shadowRoot;if(fn){const on=fn.getElementById(dn)||fn.querySelector(`[name="${dn}"]`);if(on)return on}un=Kn.nextNode()}}return null}(this.document,me);Dt&&(this.scrollToElement(Dt),this.attemptFocus(Dt))}setHistoryScrollRestoration(me){if(this.supportScrollRestoration()){const Dt=this.window.history;Dt&&Dt.scrollRestoration&&(Dt.scrollRestoration=me)}}scrollToElement(me){const Dt=me.getBoundingClientRect(),le=Dt.left+this.window.pageXOffset,pe=Dt.top+this.window.pageYOffset,dn=this.offset();this.window.scrollTo(le-dn[0],pe-dn[1])}attemptFocus(me){return me.focus(),this.document.activeElement===me}supportScrollRestoration(){try{if(!this.supportsScrolling())return!1;const me=Ve(this.window.history)||Ve(Object.getPrototypeOf(this.window.history));return!(!me||!me.writable&&!me.set)}catch{return!1}}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch{return!1}}}function Ve(zt){return Object.getOwnPropertyDescriptor(zt,"scrollRestoration")}class Pe{}},520:(u,D,v)=>{v.d(D,{eN:()=>W,JF:()=>Mt});var p=v(9808),s=v(6435),j=v(1086),k=v(2916),b=v(1406),B=v(2198),V=v(4850);class _{}class H{}class Y{constructor(mt){this.normalizedNames=new Map,this.lazyUpdate=null,mt?this.lazyInit="string"==typeof mt?()=>{this.headers=new Map,mt.split("\n").forEach(lt=>{const et=lt.indexOf(":");if(et>0){const ct=lt.slice(0,et),Vt=ct.toLowerCase(),Rt=lt.slice(et+1).trim();this.maybeSetNormalizedName(ct,Vt),this.headers.has(Vt)?this.headers.get(Vt).push(Rt):this.headers.set(Vt,[Rt])}})}:()=>{this.headers=new Map,Object.keys(mt).forEach(lt=>{let et=mt[lt];const ct=lt.toLowerCase();"string"==typeof et&&(et=[et]),et.length>0&&(this.headers.set(ct,et),this.maybeSetNormalizedName(lt,ct))})}:this.headers=new Map}has(mt){return this.init(),this.headers.has(mt.toLowerCase())}get(mt){this.init();const lt=this.headers.get(mt.toLowerCase());return lt&<.length>0?lt[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(mt){return this.init(),this.headers.get(mt.toLowerCase())||null}append(mt,lt){return this.clone({name:mt,value:lt,op:"a"})}set(mt,lt){return this.clone({name:mt,value:lt,op:"s"})}delete(mt,lt){return this.clone({name:mt,value:lt,op:"d"})}maybeSetNormalizedName(mt,lt){this.normalizedNames.has(lt)||this.normalizedNames.set(lt,mt)}init(){this.lazyInit&&(this.lazyInit instanceof Y?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(mt=>this.applyUpdate(mt)),this.lazyUpdate=null))}
vendor: 6,818 bytes, line 1
1copyFrom(mt){mt.init(),Array.from(mt.headers.keys()).forEach(lt=>{this.headers.set(lt,mt.headers.get(lt)),this.normalizedNames.set(lt,mt.normalizedNames.get(lt))})}clone(mt){const lt=new Y;return lt.lazyInit=this.lazyInit&&this.lazyInit instanceof Y?this.lazyInit:this,lt.lazyUpdate=(this.lazyUpdate||[]).concat([mt]),lt}applyUpdate(mt){const lt=mt.name.toLowerCase();switch(mt.op){case"a":case"s":let et=mt.value;if("string"==typeof et&&(et=[et]),0===et.length)return;this.maybeSetNormalizedName(mt.name,lt);const ct=("a"===mt.op?this.headers.get(lt):void 0)||[];ct.push(...et),this.headers.set(lt,ct);break;case"d":const Vt=mt.value;if(Vt){let Rt=this.headers.get(lt);if(!Rt)return;Rt=Rt.filter(ne=>-1===Vt.indexOf(ne)),0===Rt.length?(this.headers.delete(lt),this.normalizedNames.delete(lt)):this.headers.set(lt,Rt)}else this.headers.delete(lt),this.normalizedNames.delete(lt)}}forEach(mt){this.init(),Array.from(this.normalizedNames.keys()).forEach(lt=>mt(this.normalizedNames.get(lt),this.headers.get(lt)))}}class q{encodeKey(mt){return at(mt)}encodeValue(mt){return at(mt)}decodeKey(mt){return decodeURIComponent(mt)}decodeValue(mt){return decodeURIComponent(mt)}}const it=/%(\d[a-f0-9])/gi,vt={40:"@","3A":":",24:"$","2C":",","3B":";","2B":"+","3D":"=","3F":"?","2F":"/"};function at(It){return encodeURIComponent(It).replace(it,(mt,lt)=>{var et;return null!==(et=vt[lt])&&void 0!==et?et:mt})}function J(It){return`${It}`}class ht{constructor(mt={}){if(this.updates=null,this.cloneFrom=null,this.encoder=mt.encoder||new q,mt.fromString){if(mt.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function(et,ct){const Vt=new Map;return et.length>0&&et.replace(/^\?/,"").split("&").forEach(Rt=>{const ne=Rt.indexOf("="),[bt,kt]=-1==ne?[ct.decodeKey(Rt),""]:[ct.decodeKey(Rt.slice(0,ne)),ct.decodeValue(Rt.slice(ne+1))],de=Vt.get(bt)||[];de.push(kt),Vt.set(bt,de)}),Vt}(mt.fromString,this.encoder)}else mt.fromObject?(this.map=new Map,Object.keys(mt.fromObject).forEach(lt=>{const et=mt.fromObject[lt];this.map.set(lt,Array.isArray(et)?et:[et])})):this.map=null}has(mt){return this.init(),this.map.has(mt)}get(mt){this.init();const lt=this.map.get(mt);return lt?lt[0]:null}getAll(mt){return this.init(),this.map.get(mt)||null}keys(){return this.init(),Array.from(this.map.keys())}append(mt,lt){return this.clone({param:mt,value:lt,op:"a"})}appendAll(mt){const lt=[];return Object.keys(mt).forEach(et=>{const ct=mt[et];Array.isArray(ct)?ct.forEach(Vt=>{lt.push({param:et,value:Vt,op:"a"})}):lt.push({param:et,value:ct,op:"a"})}),this.clone(lt)}set(mt,lt){return this.clone({param:mt,value:lt,op:"s"})}delete(mt,lt){return this.clone({param:mt,value:lt,op:"d"})}toString(){return this.init(),this.keys().map(mt=>{const lt=this.encoder.encodeKey(mt);return this.map.get(mt).map(et=>lt+"="+this.encoder.encodeValue(et)).join("&")}).filter(mt=>""!==mt).join("&")}clone(mt){const lt=new ht({encoder:this.encoder});return lt.cloneFrom=this.cloneFrom||this,lt.updates=(this.updates||[]).concat(mt),lt}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(mt=>this.map.set(mt,this.cloneFrom.map.get(mt))),this.updates.forEach(mt=>{switch(mt.op){case"a":case"s":const lt=("a"===mt.op?this.map.get(mt.param):void 0)||[];lt.push(J(mt.value)),this.map.set(mt.param,lt);break;case"d":if(void 0===mt.value){this.map.delete(mt.param);break}{let et=this.map.get(mt.param)||[];const ct=et.indexOf(J(mt.value));-1!==ct&&et.splice(ct,1),et.length>0?this.map.set(mt.param,et):this.map.delete(mt.param)}}}),this.cloneFrom=this.updates=null)}}class m{constructor(){this.map=new Map}set(mt,lt){return this.map.set(mt,lt),this}get(mt){return this.map.has(mt)||this.map.set(mt,mt.defaultValue()),this.map.get(mt)}delete(mt){return this.map.delete(mt),this}has(mt){return this.map.has(mt)}keys(){return this.map.keys()}}function M(It){return typeof ArrayBuffer<"u"&&It instanceof ArrayBuffer}function N(It){return typeof Blob<"u"&&It instanceof Blob}function g(It){return typeof FormData<"u"&&It instanceof FormData}class x{constructor(mt,lt,et,ct){let Vt;if(this.url=lt,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=mt.toUpperCase(),function(ne){switch(ne){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||ct?(this.body=void 0!==et?et:null,Vt=ct):Vt=et,Vt&&(this.reportProgress=!!Vt.reportProgress,this.withCredentials=!!Vt.withCredentials,Vt.responseType&&(this.responseType=Vt.responseType),Vt.headers&&(this.headers=Vt.headers),Vt.context&&(this.context=Vt.context),Vt.params&&(this.params=Vt.params)),this.headers||(this.headers=new Y),this.context||(this.context=new m),this.params){const Rt=this.params.toString();if(0===Rt.length)this.urlWithParams=lt;else{const ne=lt.indexOf("?");this.urlWithParams=lt+(-1===ne?"?":ne<lt.length-1?"&":"")+Rt}}else this.params=new ht,this.urlWithParams=lt}serializeBody(){return null===this.body?null:M(this.body)||N(this.body)||g(this.body)||typeof URLSearchParams<"u"&&this.body instanceof URLSearchParams||"string"==typeof this.body?this.body:this.body instanceof ht?this.body.toString():"object"==typeof this.body||"boolean"==typeof this.body||Array.isArray(this.body)?JSON.stringify(this.body):this.body.toString()}detectContentTypeHeader(){return null===this.body||g(this.body)?null:N(this.body)?this.body.type||null:M(this.body)?null:"string"==typeof this.body?"text/plain":this.body instanceof ht?"application/x-www-form-urlencoded;charset=UTF-8":"object"==typeof this.body||"number"==typeof this.body||"boolean"==typeof this.body?"application/json":null}clone(mt={}){var lt;const et=mt.method||this.method,ct=mt.url||this.url,Vt=mt.responseType||this.responseType,Rt=void 0!==mt.body?mt.body:this.body,ne=void 0!==mt.withCredentials?mt.withCredentials:this.withCredentials,bt=void 0!==mt.reportProgress?mt.reportProgress:this.reportProgress;let kt=mt.headers||this.headers,de=mt.params||this.params;const Wt=null!==(lt=mt.context)&&void 0!==lt?lt:this.context;return void 0!==mt.setHeaders&&(kt=Object.keys(mt.setHeaders).reduce((en,be)=>en.set(be,mt.setHeaders[be]),kt)),mt.setParams&&(de=Object.keys(mt.setParams).reduce((en,be)=>en.set(be,mt.setParams[be]),de)),new x(et,ct,Rt,{params:de,headers:kt,context:Wt,reportProgress:bt,responseType:Vt,withCredentials:ne})}}var P=((P=P||{})[P.Sent=0]="Sent",P[P.UploadProgress=1]="UploadProgress",P[P.ResponseHeader=2]="ResponseHeader",P[P.DownloadProgress=3]="DownloadProgress",P[P.Response=4]="Response",P[P.User=5]="User",P);class Q{constructor(mt,lt=200,et="OK"){this.headers=mt.headers||new Y,this.status=void 0!==mt.status?mt.status:lt,this.statusText=mt.statusText||et,this.url=mt.url||null,this.ok=this.status>=200&&this.status<300}}
1class U extends Q{constructor(mt={}){super(mt),this.type=P.ResponseHeader}clone(mt={}){return new U({headers:mt.headers||this.headers,status:void 0!==mt.status?mt.status:this.status,statusText:mt.statusText||this.statusText,url:mt.url||this.url||void 0})}}class G extends Q{constructor(mt={}){super(mt),this.type=P.Response,this.body=void 0!==mt.body?mt.body:null}clone(mt={}){return new G({body:void 0!==mt.body?mt.body:this.body,headers:mt.headers||this.headers,status:void 0!==mt.status?mt.status:this.status,statusText:mt.statusText||this.statusText,url:mt.url||this.url||void 0})}}class dt extends Q{constructor(mt){super(mt,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${mt.url||"(unknown url)"}`:`Http failure response for ${mt.url||"(unknown url)"}: ${mt.status} ${mt.statusText}`,this.error=mt.error||null}}function wt(It,mt){return{body:mt,headers:It.headers,context:It.context,observe:It.observe,params:It.params,reportProgress:It.reportProgress,responseType:It.responseType,withCredentials:It.withCredentials}}let W=(()=>{class It{constructor(lt){this.handler=lt}request(lt,et,ct={}){let Vt;if(lt instanceof x)Vt=lt;else{let bt,kt;bt=ct.headers instanceof Y?ct.headers:new Y(ct.headers),ct.params&&(kt=ct.params instanceof ht?ct.params:new ht({fromObject:ct.params})),Vt=new x(lt,et,void 0!==ct.body?ct.body:null,{headers:bt,context:ct.context,params:kt,reportProgress:ct.reportProgress,responseType:ct.responseType||"json",withCredentials:ct.withCredentials})}const Rt=(0,j.of)(Vt).pipe((0,b.b)(bt=>this.handler.handle(bt)));if(lt instanceof x||"events"===ct.observe)return Rt;const ne=Rt.pipe((0,B.h)(bt=>bt instanceof G));switch(ct.observe||"body"){case"body":switch(Vt.responseType){case"arraybuffer":return ne.pipe((0,V.U)(bt=>{if(null!==bt.body&&!(bt.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return bt.body}));case"blob":return ne.pipe((0,V.U)(bt=>{if(null!==bt.body&&!(bt.body instanceof Blob))throw new Error("Response is not a Blob.");return bt.body}));case"text":return ne.pipe((0,V.U)(bt=>{if(null!==bt.body&&"string"!=typeof bt.body)throw new Error("Response is not a string.");return bt.body}));default:return ne.pipe((0,V.U)(bt=>bt.body))}case"response":return ne;default:throw new Error(`Unreachable: unhandled observe type ${ct.observe}}`)}}delete(lt,et={}){return this.request("DELETE",lt,et)}get(lt,et={}){return this.request("GET",lt,et)}head(lt,et={}){return this.request("HEAD",lt,et)}jsonp(lt,et){return this.request("JSONP",lt,{params:(new ht).append(et,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(lt,et={}){return this.request("OPTIONS",lt,et)}patch(lt,et,ct={}){return this.request("PATCH",lt,wt(ct,et))}post(lt,et,ct={}){return this.request("POST",lt,wt(ct,et))}put(lt,et,ct={}){return this.request("PUT",lt,wt(ct,et))}}return It.\u0275fac=function(mt){return new(mt||It)(s.LFG(_))},It.\u0275prov=s.Yz7({token:It,factory:It.\u0275fac}),It})();class te{constructor(mt,lt){this.next=mt,this.interceptor=lt}handle(mt){return this.interceptor.intercept(mt,this.next)}}const ae=new s.OlP("HTTP_INTERCEPTORS");let Ae=(()=>{class It{intercept(lt,et){return et.handle(lt)}}return It.\u0275fac=function(mt){return new(mt||It)},It.\u0275prov=s.Yz7({token:It,factory:It.\u0275fac}),It})();const ge=/^\)\]\}',?\n/;let We=(()=>{class It{constructor(lt){this.xhrFactory=lt}handle(lt){if("JSONP"===lt.method)throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");return new k.y(et=>{const ct=this.xhrFactory.build();if(ct.open(lt.method,lt.urlWithParams),lt.withCredentials&&(ct.withCredentials=!0),lt.headers.forEach((be,qe)=>ct.setRequestHeader(be,qe.join(","))),lt.headers.has("Accept")||ct.setRequestHeader("Accept","application/json, text/plain, */*"),!lt.headers.has("Content-Type")){const be=lt.detectContentTypeHeader();null!==be&&ct.setRequestHeader("Content-Type",be)}if(lt.responseType){const be=lt.responseType.toLowerCase();ct.responseType="json"!==be?be:"text"}const Vt=lt.serializeBody();let Rt=null;const ne=()=>{if(null!==Rt)return Rt;const be=1223===ct.status?204:ct.status,qe=ct.statusText||"OK",kn=new Y(ct.getAllResponseHeaders()),yr=("responseURL"in(ee=ct)&&ee.responseURL?ee.responseURL:/^X-Request-URL:/m.test(ee.getAllResponseHeaders())?ee.getResponseHeader("X-Request-URL"):null)||lt.url;var ee;return Rt=new U({headers:kn,status:be,statusText:qe,url:yr}),Rt},bt=()=>{let{headers:be,status:qe,statusText:kn,url:yr}=ne(),ur=null;204!==qe&&(ur=void 0===ct.response?ct.responseText:ct.response),0===qe&&(qe=ur?200:0);let ee=qe>=200&&qe<300;
1if("json"===lt.responseType&&"string"==typeof ur){const Se=ur;ur=ur.replace(ge,"");try{ur=""!==ur?JSON.parse(ur):null}catch(Re){ur=Se,ee&&(ee=!1,ur={error:Re,text:ur})}}ee?(et.next(new G({body:ur,headers:be,status:qe,statusText:kn,url:yr||void 0})),et.complete()):et.error(new dt({error:ur,headers:be,status:qe,statusText:kn,url:yr||void 0}))},kt=be=>{const{url:qe}=ne(),kn=new dt({error:be,status:ct.status||0,statusText:ct.statusText||"Unknown Error",url:qe||void 0});et.error(kn)};let de=!1;const Wt=be=>{de||(et.next(ne()),de=!0);let qe={type:P.DownloadProgress,loaded:be.loaded};be.lengthComputable&&(qe.total=be.total),"text"===lt.responseType&&!!ct.responseText&&(qe.partialText=ct.responseText),et.next(qe)},en=be=>{let qe={type:P.UploadProgress,loaded:be.loaded};be.lengthComputable&&(qe.total=be.total),et.next(qe)};return ct.addEventListener("load",bt),ct.addEventListener("error",kt),ct.addEventListener("timeout",kt),ct.addEventListener("abort",kt),lt.reportProgress&&(ct.addEventListener("progress",Wt),null!==Vt&&ct.upload&&ct.upload.addEventListener("progress",en)),ct.send(Vt),et.next({type:P.Sent}),()=>{ct.removeEventListener("error",kt),ct.removeEventListener("abort",kt),ct.removeEventListener("load",bt),ct.removeEventListener("timeout",kt),lt.reportProgress&&(ct.removeEventListener("progress",Wt),null!==Vt&&ct.upload&&ct.upload.removeEventListener("progress",en)),ct.readyState!==ct.DONE&&ct.abort()}})}}return It.\u0275fac=function(mt){return new(mt||It)(s.LFG(p.JF))},It.\u0275prov=s.Yz7({token:It,factory:It.\u0275fac}),It})();const Cn=new s.OlP("XSRF_COOKIE_NAME"),rn=new s.OlP("XSRF_HEADER_NAME");class Me{}let Le=(()=>{class It{constructor(lt,et,ct){this.doc=lt,this.platform=et,this.cookieName=ct,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const lt=this.doc.cookie||"";return lt!==this.lastCookieString&&(this.parseCount++,this.lastToken=(0,p.Mx)(lt,this.cookieName),this.lastCookieString=lt),this.lastToken}}return It.\u0275fac=function(mt){return new(mt||It)(s.LFG(p.K0),s.LFG(s.Lbi),s.LFG(Cn))},It.\u0275prov=s.Yz7({token:It,factory:It.\u0275fac}),It})(),Ee=(()=>{class It{constructor(lt,et){this.tokenService=lt,this.headerName=et}intercept(lt,et){const ct=lt.url.toLowerCase();if("GET"===lt.method||"HEAD"===lt.method||ct.startsWith("http://")||ct.startsWith("https://"))return et.handle(lt);const Vt=this.tokenService.getToken();return null!==Vt&&!lt.headers.has(this.headerName)&&(lt=lt.clone({headers:lt.headers.set(this.headerName,Vt)})),et.handle(lt)}}return It.\u0275fac=function(mt){return new(mt||It)(s.LFG(Me),s.LFG(rn))},It.\u0275prov=s.Yz7({token:It,factory:It.\u0275fac}),It})(),Qt=(()=>{class It{constructor(lt,et){this.backend=lt,this.injector=et,this.chain=null}handle(lt){if(null===this.chain){const et=this.injector.get(ae,[]);this.chain=et.reduceRight((ct,Vt)=>new te(ct,Vt),this.backend)}return this.chain.handle(lt)}}return It.\u0275fac=function(mt){return new(mt||It)(s.LFG(H),s.LFG(s.zs3))},It.\u0275prov=s.Yz7({token:It,factory:It.\u0275fac}),It})(),Ut=(()=>{class It{static disable(){return{ngModule:It,providers:[{provide:Ee,useClass:Ae}]}}static withOptions(lt={}){return{ngModule:It,providers:[lt.cookieName?{provide:Cn,useValue:lt.cookieName}:[],lt.headerName?{provide:rn,useValue:lt.headerName}:[]]}}}return It.\u0275fac=function(mt){return new(mt||It)},It.\u0275mod=s.oAB({type:It}),It.\u0275inj=s.cJS({providers:[Ee,{provide:ae,useExisting:Ee,multi:!0},{provide:Me,useClass:Le},{provide:Cn,useValue:"XSRF-TOKEN"},{provide:rn,useValue:"X-XSRF-TOKEN"}]}),It})(),Mt=(()=>{class It{}return It.\u0275fac=function(mt){return new(mt||It)},It.\u0275mod=s.oAB({type:It}),It.\u0275inj=s.cJS({providers:[W,{provide:_,useClass:Qt},We,{provide:H,useExisting:We}],imports:[[Ut.withOptions({cookieName:"XSRF-TOKEN",headerName:"X-XSRF-TOKEN"})]]}),It})()},6435:(u,D,v)=>{v.d(D,{deG:()=>Fs,tb:()=>Wi,AFp:()=>ri,ip1:()=>pr,CZH:()=>kr,hGG:()=>La,z2F:()=>ao,sBO:()=>Gl,Sil:()=>Ho,_Vd:()=>ra,EJc:()=>oo,SBq:()=>t,qLn:()=>Xr,vpe:()=>Ft,tBr:()=>po,XFs:()=>Ae,OlP:()=>Oi,zs3:()=>$s,ZZ4:()=>rl,aQg:()=>sl,soG:()=>gs,YKP:()=>St,h0i:()=>ot,PXZ:()=>Ar,R0b:()=>Qi,FiY:()=>ws,Lbi:()=>ki,g9A:()=>Fi,Qsj:()=>r,FYo:()=>n,JOm:()=>ii,q3G:()=>bn,WD2:()=>pn,tp0:()=>Wr,Rgc:()=>_e,dDg:()=>nr,GfV:()=>o,s_b:()=>$e,ifc:()=>Le,eFA:()=>di,G48:()=>vn,f3M:()=>Xs,_c5:()=>fc,VLi:()=>gi,c2e:()=>fs,zSh:()=>Ko,wAp:()=>hr,vHH:()=>m,EiD:()=>En,mCW:()=>no,qzn:()=>Rs,JVY:()=>go,pB0:()=>vo,eBb:()=>Xi,L6k:()=>Vo,LAX:()=>Ts,cg1:()=>Ka,kL8:()=>Pa,yhl:()=>mo,dqk:()=>Mt,sIi:()=>Ua,CqO:()=>bl,QGY:()=>Wa,F4k:()=>Qa,RDi:()=>le,AaK:()=>q,z3N:()=>_i,qOj:()=>Bl,TTD:()=>Pn,xp6:()=>Rl,uIk:()=>ta,ekj:()=>Cl,Suo:()=>hi,Xpm:()=>kt,lG2:()=>yr,Yz7:()=>P,cJS:()=>Q,oAB:()=>qe,Yjl:()=>ur,Y36:()=>Al,_UZ:()=>$l,qZA:()=>Gi,TgZ:()=>jl,EpF:()=>tc,n5z:()=>xs,Ikx:()=>Sa,LFG:()=>vi,$8M:()=>as,$Z:()=>Fl,NdJ:()=>wl,CRH:()=>Qr,oxw:()=>ec,ALo:()=>Ct,xi3:()=>xe,Q6J:()=>kl,VKq:()=>se,iGM:()=>xr,CHM:()=>fe,LSH:()=>Ln,B6R:()=>de,WFA:()=>El,d8E:()=>Ja,YNc:()=>Nl,_uU:()=>rc,Oqu:()=>Ca,hij:()=>ea,AsE:()=>Ta,Gf:()=>or});var p=v(8929),s=v(2654),j=v(2916),k=v(6787),b=v(1762),V=v(4327);function _(){return new p.xQ}function H(l){for(let a in l)if(l[a]===H)return a;throw Error("Could not find renamed property on target object.")}function Y(l,a){for(const d in a)a.hasOwnProperty(d)&&!l.hasOwnProperty(d)&&(l[d]=a[d])}function q(l){if("string"==typeof l)return l;if(Array.isArray(l))return"["+l.map(q).join(", ")+"]";if(null==l)return""+l;if(l.overriddenName)return`${l.overriddenName}`;if(l.name)return`${l.name}`;const a=l.toString();if(null==a)return""+a;const d=a.indexOf("\n");return-1===d?a:a.substring(0,d)}function it(l,a){return null==l||""===l?null===a?"":a:null==a||""===a?l:l+" "+a}const vt=H({__forward_ref__:H});function at(l){return l.__forward_ref__=at,l.toString=function(){return q(this())},l}function J(l){return ht(l)?l():l}function ht(l){return"function"==typeof l&&l.hasOwnProperty(vt)&&l.__forward_ref__===at}
1class m extends Error{constructor(a,d){var X;super((X=d,`NG0${Math.abs(a)}${X?": "+X:""}`)),this.code=a}}function M(l){return"string"==typeof l?l:null==l?"":String(l)}function N(l){return"function"==typeof l?l.name||l.toString():"object"==typeof l&&null!=l&&"function"==typeof l.type?l.type.name||l.type.toString():M(l)}function g(l,a){const d=a?` in ${a}`:"";throw new m(-201,`No provider for ${N(l)} found${d}`)}function P(l){return{token:l.token,providedIn:l.providedIn||null,factory:l.factory,value:void 0}}function Q(l){return{providers:l.providers||[],imports:l.imports||[]}}function U(l){return G(l,wt)||G(l,te)}function G(l,a){return l.hasOwnProperty(a)?l[a]:null}function dt(l){return l&&(l.hasOwnProperty(W)||l.hasOwnProperty(ae))?l[W]:null}const wt=H({\u0275prov:H}),W=H({\u0275inj:H}),te=H({ngInjectableDef:H}),ae=H({ngInjectorDef:H});var Ae=((Ae=Ae||{})[Ae.Default=0]="Default",Ae[Ae.Host=1]="Host",Ae[Ae.Self=2]="Self",Ae[Ae.SkipSelf=4]="SkipSelf",Ae[Ae.Optional=8]="Optional",Ae);let ge;function We(l){const a=ge;return ge=l,a}function Cn(l,a,d){const y=U(l);return y&&"root"==y.providedIn?void 0===y.value?y.value=y.factory():y.value:d&Ae.Optional?null:void 0!==a?a:void g(q(l),"Injector")}function rn(l){return{toString:l}.toString()}var l,Me=((Me=Me||{})[Me.OnPush=0]="OnPush",Me[Me.Default=1]="Default",Me),Le=((l=Le||(Le={}))[l.Emulated=0]="Emulated",l[l.None=2]="None",l[l.ShadowDom=3]="ShadowDom",Le);const Ee=typeof globalThis<"u"&&globalThis,Qt=typeof window<"u"&&window,Ut=typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self,Mt=Ee||typeof global<"u"&&global||Qt||Ut,It={},mt=[],lt=H({\u0275cmp:H}),et=H({\u0275dir:H}),ct=H({\u0275pipe:H}),Vt=H({\u0275mod:H}),Rt=H({\u0275fac:H}),ne=H({__NG_ELEMENT_ID__:H});let bt=0;function kt(l){return rn(()=>{const a={},d={type:l.type,providersResolver:null,decls:l.decls,vars:l.vars,factory:null,template:l.template||null,consts:l.consts||null,ngContentSelectors:l.ngContentSelectors,hostBindings:l.hostBindings||null,hostVars:l.hostVars||0,hostAttrs:l.hostAttrs||null,contentQueries:l.contentQueries||null,declaredInputs:a,inputs:null,outputs:null,exportAs:l.exportAs||null,onPush:l.changeDetection===Me.OnPush,directiveDefs:null,pipeDefs:null,selectors:l.selectors||mt,viewQuery:l.viewQuery||null,features:l.features||null,data:l.data||{},encapsulation:l.encapsulation||Le.Emulated,id:"c",styles:l.styles||mt,_:null,setInput:null,schemas:l.schemas||null,tView:null},y=l.directives,I=l.features,X=l.pipes;return d.id+=bt++,d.inputs=kn(l.inputs,a),d.outputs=kn(l.outputs),I&&I.forEach(nt=>nt(d)),d.directiveDefs=y?()=>("function"==typeof y?y():y).map(Wt):null,d.pipeDefs=X?()=>("function"==typeof X?X():X).map(en):null,d})}function de(l,a,d){const y=l.\u0275cmp;y.directiveDefs=()=>a.map(Wt),y.pipeDefs=()=>d.map(en)}function Wt(l){return ee(l)||l[et]||null}function en(l){return l[ct]||null}const be={};function qe(l){return rn(()=>{const a={type:l.type,bootstrap:l.bootstrap||mt,declarations:l.declarations||mt,imports:l.imports||mt,exports:l.exports||mt,transitiveCompileScopes:null,schemas:l.schemas||null,id:l.id||null};return null!=l.id&&(be[l.id]=l.type),a})}function kn(l,a){if(null==l)return It;const d={};for(const y in l)if(l.hasOwnProperty(y)){let I=l[y],X=I;Array.isArray(I)&&(X=I[1],I=I[0]),d[I]=y,a&&(a[I]=X)}return d}const yr=kt;function ur(l){return{type:l.type,name:l.name,factory:null,pure:!1!==l.pure,onDestroy:l.type.prototype.ngOnDestroy||null}}function ee(l){return l[lt]||null}function Se(l,a){const d=l[Vt]||null;if(!d&&!0===a)throw new Error(`Type ${q(l)} does not have '\u0275mod' property.`);return d}function Be(l){return Array.isArray(l)&&"object"==typeof l[1]}function Lt(l){return Array.isArray(l)&&!0===l[1]}function Ht(l){return 0!=(8&l.flags)}function Jt(l){return 2==(2&l.flags)}function Ie(l){return 1==(1&l.flags)}function Je(l){return null!==l.template}function Te(l){return 0!=(512&l[2])}function nn(l,a){return l.hasOwnProperty(Rt)?l[Rt]:null}class pn{constructor(a,d,y){this.previousValue=a,this.currentValue=d,this.firstChange=y}isFirstChange(){return this.firstChange}}function Pn(){return Mn}function Mn(l){return l.type.prototype.ngOnChanges&&(l.setInput=Pe),Ve}function Ve(){const l=me(this),a=l?.current;if(a){const d=l.previous;if(d===It)l.previous=a;else for(let y in a)d[y]=a[y];l.current=null,this.ngOnChanges(a)}}function Pe(l,a,d,y){const I=me(l)||(l[zt]={previous:It,current:null}),X=I.current||(I.current={}),nt=I.previous,ut=this.declaredInputs[d],xt=nt[ut];X[ut]=new pn(xt&&xt.currentValue,a,nt===It),l[y]=a}Pn.ngInherit=!0;
vendor: 8,223 bytes, line 1
1const zt="__ngSimpleChanges__";function me(l){return l[zt]||null}let Dt;function le(l){Dt=l}function pe(l){return!!l.listen}const dn={createRenderer:(l,a)=>void 0!==Dt?Dt:typeof document<"u"?document:void 0};function Ze(l){for(;Array.isArray(l);)l=l[0];return l}function Kn(l,a){return Ze(a[l])}function un(l,a){return Ze(a[l.index])}function fn(l,a){return l.data[a]}function on(l,a){const d=a[l];return Be(d)?d:d[0]}function Nn(l){return 4==(4&l[2])}function Zn(l){return 128==(128&l[2])}function cn(l,a){return null==a?null:l[a]}function Qn(l){l[18]=0}function zn(l,a){l[5]+=a;let d=l,y=l[3];for(;null!==y&&(1===a&&1===d[5]||-1===a&&0===d[5]);)y[5]+=a,d=y,y=y[3]}const sn={lFrame:_t(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function xn(){return sn.bindingsEnabled}function Oe(){return sn.lFrame.lView}function re(){return sn.lFrame.tView}function fe(l){return sn.lFrame.contextLView=l,l[8]}function Ot(){let l=ie();for(;null!==l&&64===l.type;)l=l.parent;return l}function ie(){return sn.lFrame.currentTNode}function je(l,a){const d=sn.lFrame;d.currentTNode=l,d.isParent=a}function Ye(){return sn.lFrame.isParent}function On(){return sn.isInCheckNoChangesMode}function In(l){sn.isInCheckNoChangesMode=l}function gr(){const l=sn.lFrame;let a=l.bindingRootIndex;return-1===a&&(a=l.bindingRootIndex=l.tView.bindingStartIndex),a}function Yn(){return sn.lFrame.bindingIndex++}function qn(l){const a=sn.lFrame,d=a.bindingIndex;return a.bindingIndex=a.bindingIndex+l,d}function wr(l,a){const d=sn.lFrame;d.bindingIndex=d.bindingRootIndex=l,Br(a)}function Br(l){sn.lFrame.currentDirectiveIndex=l}function vr(l){const a=sn.lFrame.currentDirectiveIndex;return-1===a?null:l[a]}function wi(){return sn.lFrame.currentQueryIndex}function Or(l){sn.lFrame.currentQueryIndex=l}function Nr(l){const a=l[1];return 2===a.type?a.declTNode:1===a.type?l[6]:null}function Si(l,a,d){if(d&Ae.SkipSelf){let I=a,X=l;for(;I=I.parent,!(null!==I||d&Ae.Host||(I=Nr(X),null===I||(X=X[15],10&I.type))););if(null===I)return!1;a=I,l=X}const y=sn.lFrame=ts();return y.currentTNode=a,y.lView=l,!0}function fi(l){const a=ts(),d=l[1];sn.lFrame=a,a.currentTNode=d.firstChild,a.lView=l,a.tView=d,a.contextLView=l,a.bindingIndex=d.bindingStartIndex,a.inI18n=!1}function ts(){const l=sn.lFrame,a=null===l?null:l.child;return null===a?_t(l):a}function _t(l){const a={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:l,child:null,inI18n:!1};return null!==l&&(l.child=a),a}function w(){const l=sn.lFrame;return sn.lFrame=l.parent,l.currentTNode=null,l.lView=null,l}const T=w;function Z(){const l=w();l.isParent=!0,l.tView=null,l.selectedIndex=-1,l.contextLView=null,l.elementDepthCount=0,l.currentDirectiveIndex=-1,l.currentNamespace=null,l.bindingRootIndex=-1,l.bindingIndex=-1,l.currentQueryIndex=0}function pt(){return sn.lFrame.selectedIndex}function Nt(l){sn.lFrame.selectedIndex=l}function Kt(){const l=sn.lFrame;return fn(l.tView,l.selectedIndex)}function oe(l,a){for(let d=a.directiveStart,y=a.directiveEnd;d<y;d++){const I=l.data[d].type.prototype,{ngAfterContentInit:X,ngAfterContentChecked:nt,ngAfterViewInit:ut,ngAfterViewChecked:xt,ngOnDestroy:At}=I;X&&(l.contentHooks||(l.contentHooks=[])).push(-d,X),nt&&((l.contentHooks||(l.contentHooks=[])).push(d,nt),(l.contentCheckHooks||(l.contentCheckHooks=[])).push(d,nt)),ut&&(l.viewHooks||(l.viewHooks=[])).push(-d,ut),xt&&((l.viewHooks||(l.viewHooks=[])).push(d,xt),(l.viewCheckHooks||(l.viewCheckHooks=[])).push(d,xt)),null!=At&&(l.destroyHooks||(l.destroyHooks=[])).push(d,At)}}function ye(l,a,d){mn(l,a,3,d)}function De(l,a,d,y){(3&l[2])===d&&mn(l,a,d,y)}function hn(l,a){let d=l[2];(3&d)===a&&(d&=2047,d+=1,l[2]=d)}function mn(l,a,d,y){const I=y??-1,X=a.length-1;let nt=0;for(let ut=void 0!==y?65535&l[18]:0;ut<X;ut++)if("number"==typeof a[ut+1]){if(nt=a[ut],null!=y&&nt>=y)break}else a[ut]<0&&(l[18]+=65536),(nt<I||-1==I)&&(gt(l,d,a,ut),l[18]=(4294901760&l[18])+ut+2),ut++}function gt(l,a,d,y){const I=d[y]<0,X=d[y+1],nt=l[I?-d[y]:d[y]];if(I){if(l[2]>>11<l[18]>>16&&(3&l[2])===a){l[2]+=2048;try{X.call(nt)}finally{}}}else try{X.call(nt)}finally{}}class L{constructor(a,d,y){this.factory=a,this.resolving=!1,this.canSeeViewProviders=d,this.injectImpl=y}}function z(l,a,d){const y=pe(l);let I=0;for(;I<d.length;){const X=d[I];if("number"==typeof X){if(0!==X)break;I++;const nt=d[I++],ut=d[I++],xt=d[I++];y?l.setAttribute(a,ut,xt,nt):a.setAttributeNS(nt,ut,xt)}else{const nt=X,ut=d[++I];Tt(nt)?y&&l.setProperty(a,nt,ut):y?l.setAttribute(a,nt,ut):a.setAttribute(nt,ut),I++}}return I}function $(l){return 3===l||4===l||6===l}function Tt(l){return 64===l.charCodeAt(0)}function qt(l,a){if(null!==a&&0!==a.length)if(null===l||0===l.length)l=a.slice();else{let d=-1;for(let y=0;y<a.length;y++){const I=a[y];"number"==typeof I?d=I:0===d||we(l,d,I,null,-1===d||2===d?a[++y]:null)}}return l}function we(l,a,d,y,I){let X=0,nt=l.length;if(-1===a)nt=-1;else for(;X<l.length;){const ut=l[X++];if("number"==typeof ut){if(ut===a){nt=-1;break}if(ut>a){nt=X-1;break}}}for(;X<l.length;){const ut=l[X];if("number"==typeof ut)break;if(ut===d){if(null===y)return void(null!==I&&(l[X+1]=I));if(y===l[X+1])return void(l[X+2]=I)}X++,null!==y&&X++,null!==I&&X++}-1!==nt&&(l.splice(nt,0,a),X=nt+1),l.splice(X++,0,d),null!==y&&l.splice(X++,0,y),null!==I&&l.splice(X++,0,I)}function Ce(l){return-1!==l}function Ke(l){return 32767&l}function wn(l,a){let d=l>>16,y=a;for(;d>0;)y=y[15],d--;return y}let Gn=!0;function dr(l){const a=Gn;return Gn=l,a}let jr=0;function Pi(l,a){const d=ji(l,a);if(-1!==d)return d;const y=a[1];y.firstCreatePass&&(l.injectorIndex=a.length,Ri(y.data,l),Ri(a,null),Ri(y.blueprint,null));const I=Bi(l,a),X=l.injectorIndex;if(Ce(I)){const nt=Ke(I),ut=wn(I,a),xt=ut[1].data;for(let At=0;At<8;At++)a[X+At]=ut[nt+At]|xt[nt+At]}return a[X+8]=I,X}function Ri(l,a){l.push(0,0,0,0,0,0,0,0,a)}function ji(l,a){return-1===l.injectorIndex||l.parent&&l.parent.injectorIndex===l.injectorIndex||null===a[l.injectorIndex+8]?-1:l.injectorIndex}function Bi(l,a){if(l.parent&&-1!==l.parent.injectorIndex)return l.parent.injectorIndex;let d=0,y=null,I=a;for(;null!==I;){const X=I[1],nt=X.type;if(y=2===nt?X.declTNode:1===nt?I[6]:null,null===y)return-1;if(d++,I=I[15],-1!==y.injectorIndex)return y.injectorIndex|d<<16}return-1}function es(l,a,d){!function(I,X,nt){let ut;"string"==typeof nt?ut=nt.charCodeAt(0)||0:nt.hasOwnProperty(ne)&&(ut=nt[ne]),null==ut&&(ut=nt[ne]=jr++);const xt=255&ut;X.data[I+(xt>>5)]|=1<<xt}(l,a,d)}function As(l,a,d){if(d&Ae.Optional)return l;g(a,"NodeInjector")}function Vn(l,a,d,y){if(d&Ae.Optional&&void 0===y&&(y=null),0==(d&(Ae.Self|Ae.Host))){const I=l[9],X=We(void 0);try{return I?I.get(a,y,d&Ae.Optional):Cn(a,y,d&Ae.Optional)}finally{We(X)}}return As(y,a,d)}function Hn(l,a,d,y=Ae.Default,I){if(null!==l){const X=function(ut){if("string"==typeof ut)return ut.charCodeAt(0)||0;const xt=ut.hasOwnProperty(ne)?ut[ne]:void 0;return"number"==typeof xt?xt>=0?255&xt:zr:xt}(d);if("function"==typeof X){if(!Si(a,l,y))return y&Ae.Host?As(I,d,y):Vn(a,d,y,I);try{const nt=X(y);if(null!=nt||y&Ae.Optional)return nt;g(d)}finally{T()}}else if("number"==typeof X){let nt=null,ut=ji(l,a),xt=-1,At=y&Ae.Host?a[16][6]:null;for((-1===ut||y&Ae.SkipSelf)&&(xt=-1===ut?Bi(l,a):a[ut+8],-1!==xt&&Hi(y,!1)?(nt=a[1],ut=Ke(xt),a=wn(xt,a)):ut=-1);-1!==ut;){const $t=a[1];if(oi(X,ut,$t.data)){const Gt=os(ut,a,d,nt,y,At);if(Gt!==$n)return Gt}xt=a[ut+8],-1!==xt&&Hi(y,a[1].data[ut+8]===At)&&oi(X,ut,a)?(nt=$t,ut=Ke(xt),a=wn(xt,a)):ut=-1}}}return Vn(a,d,y,I)}const $n={};function zr(){return new Hr(Ot(),Oe())}function os(l,a,d,y,I,X){const nt=a[1],ut=nt.data[l+8],xt=Vi(ut,nt,d,null==y?Jt(ut)&&Gn:y!=nt&&0!=(3&ut.type),I&Ae.Host&&X===ut);return null!==xt?Mi(a,nt,xt,ut):$n}function Vi(l,a,d,y,I){const X=l.providerIndexes,nt=a.data,ut=1048575&X,xt=l.directiveStart,At=X>>20,$t=I?ut+At:l.directiveEnd;for(let Gt=y?ut:ut+At;Gt<$t;Gt++){const ue=nt[Gt];if(Gt<xt&&d===ue||Gt>=xt&&ue.type===d)return Gt}if(I){const Gt=nt[xt];if(Gt&&Je(Gt)&&Gt.type===d)return xt}return null}function Mi(l,a,d,y){let I=l[d];const X=a.data;if(I instanceof L){const nt=I;
1nt.resolving&&function($t,Gt){throw new m(-200,`Circular dependency in DI detected for ${$t}`)}(N(X[d]));const ut=dr(nt.canSeeViewProviders);nt.resolving=!0;const xt=nt.injectImpl?We(nt.injectImpl):null;Si(l,y,Ae.Default);try{I=l[d]=nt.factory(void 0,X,l,y),a.firstCreatePass&&d>=y.directiveStart&&function($t,Gt,ue){const{ngOnChanges:Qe,ngOnInit:an,ngDoCheck:yn}=Gt.type.prototype;if(Qe){const er=Mn(Gt);(ue.preOrderHooks||(ue.preOrderHooks=[])).push($t,er),(ue.preOrderCheckHooks||(ue.preOrderCheckHooks=[])).push($t,er)}an&&(ue.preOrderHooks||(ue.preOrderHooks=[])).push(0-$t,an),yn&&((ue.preOrderHooks||(ue.preOrderHooks=[])).push($t,yn),(ue.preOrderCheckHooks||(ue.preOrderCheckHooks=[])).push($t,yn))}(d,X[d],a)}finally{null!==xt&&We(xt),dr(ut),nt.resolving=!1,T()}}return I}function oi(l,a,d){return!!(d[a+(l>>5)]&1<<l)}function Hi(l,a){return!(l&Ae.Self||l&Ae.Host&&a)}class Hr{constructor(a,d){this._tNode=a,this._lView=d}get(a,d,y){return Hn(this._tNode,this._lView,a,y,d)}}function xs(l){return rn(()=>{const a=l.prototype.constructor,d=a[Rt]||Li(a),y=Object.prototype;let I=Object.getPrototypeOf(l.prototype).constructor;for(;I&&I!==y;){const X=I[Rt]||Li(I);if(X&&X!==d)return X;I=Object.getPrototypeOf(I)}return X=>new X})}function Li(l){return ht(l)?()=>{const a=Li(J(l));return a&&a()}:nn(l)}function as(l){return function(d,y){if("class"===y)return d.classes;if("style"===y)return d.styles;const I=d.attrs;if(I){const X=I.length;let nt=0;for(;nt<X;){const ut=I[nt];if($(ut))break;if(0===ut)nt+=2;else if("number"==typeof ut)for(nt++;nt<X&&"string"==typeof I[nt];)nt++;else{if(ut===y)return I[nt+1];nt+=2}}}return null}(Ot(),l)}const ms="__parameters__";function to(l,a,d){return rn(()=>{const y=(nt=a,function(...ut){if(nt){const xt=nt(...ut);for(const At in xt)this[At]=xt[At]}});var nt;function I(...X){if(this instanceof I)return y.apply(this,X),this;const nt=new I(...X);return ut.annotation=nt,ut;function ut(xt,At,$t){const Gt=xt.hasOwnProperty(ms)?xt[ms]:Object.defineProperty(xt,ms,{value:[]})[ms];for(;Gt.length<=$t;)Gt.push(null);return(Gt[$t]=Gt[$t]||[]).push(nt),xt}}return d&&(I.prototype=Object.create(d.prototype)),I.prototype.ngMetadataName=l,I.annotationCls=I,I})}class Oi{constructor(a,d){this._desc=a,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof d?this.__NG_ELEMENT_ID__=d:void 0!==d&&(this.\u0275prov=P({token:this,providedIn:d.providedIn||"root",factory:d.factory}))}toString(){return`InjectionToken ${this._desc}`}}const Fs=new Oi("AnalyzeForEntryComponents");function ls(l,a){void 0===a&&(a=l);for(let d=0;d<l.length;d++){let y=l[d];Array.isArray(y)?(a===l&&(a=l.slice(0,d)),ls(y,a)):a!==l&&a.push(y)}return a}function ks(l,a){l.forEach(d=>Array.isArray(d)?ks(d,a):a(d))}function No(l,a,d){a>=l.length?l.push(d):l.splice(a,0,d)}function Fo(l,a){return a>=l.length-1?l.pop():l.splice(a,1)[0]}function al(l,a,d){let y=Di(l,a);return y>=0?l[1|y]=d:(y=~y,function(X,nt,ut,xt){let At=X.length;if(At==nt)X.push(ut,xt);else if(1===At)X.push(xt,X[0]),X[0]=ut;else{for(At--,X.push(X[At-1],X[At]);At>nt;)X[At]=X[At-2],At--;X[nt]=ut,X[nt+1]=xt}}(l,y,a,d)),y}function js(l,a){const d=Di(l,a);if(d>=0)return l[1|d]}function Di(l,a){return function(y,I,X){let nt=0,ut=y.length>>1;for(;ut!==nt;){const xt=nt+(ut-nt>>1),At=y[xt<<1];if(I===At)return xt<<1;At>I?ut=xt:nt=xt+1}return~(ut<<1)}(l,a)}const ei={},Vs="__NG_DI_FLAG__",ko="ngTempTokenPath",sa=/\n/gm,co="__source",_s=H({provide:String,useValue:H});let bs;function uo(l){const a=bs;return bs=l,a}function eo(l,a=Ae.Default){if(void 0===bs)throw new Error("inject() must be called from an injection context");return null===bs?Cn(l,void 0,a):bs.get(l,a&Ae.Optional?null:void 0,a)}function vi(l,a=Ae.Default){return(ge||eo)(J(l),a)}const Xs=vi;function Us(l){const a=[];for(let d=0;d<l.length;d++){const y=J(l[d]);if(Array.isArray(y)){if(0===y.length)throw new Error("Arguments array must have arguments.");let I,X=Ae.Default;for(let nt=0;nt<y.length;nt++){const ut=y[nt],xt=ho(ut);"number"==typeof xt?-1===xt?I=ut.token:X|=xt:I=ut}a.push(vi(I,X))}else a.push(vi(y))}return a}function Gs(l,a){return l[Vs]=a,l.prototype[Vs]=a,l}function ho(l){return l[Vs]}const po=Gs(to("Inject",l=>({token:l})),-1),ws=Gs(to("Optional"),8),Wr=Gs(to("SkipSelf"),4);let Ei;function Vr(l){var a;return(null===(a=function(){if(void 0===Ei&&(Ei=null,Mt.trustedTypes))try{Ei=Mt.trustedTypes.createPolicy("angular",{createHTML:y=>y,createScript:y=>y,createScriptURL:y=>y})}catch{}return Ei}())||void 0===a?void 0:a.createHTML(l))||l}class Es{constructor(a){this.changingThisBreaksApplicationSecurity=a}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see https://g.co/ng/security#xss)`}}
vendor: 5,660 bytes, line 1
1class Cs extends Es{getTypeName(){return"HTML"}}class fo extends Es{getTypeName(){return"Style"}}class oa extends Es{getTypeName(){return"Script"}}class jo extends Es{getTypeName(){return"URL"}}class aa extends Es{getTypeName(){return"ResourceURL"}}function _i(l){return l instanceof Es?l.changingThisBreaksApplicationSecurity:l}function Rs(l,a){const d=mo(l);if(null!=d&&d!==a){if("ResourceURL"===d&&"URL"===a)return!0;throw new Error(`Required a safe ${a}, got a ${d} (see https://g.co/ng/security#xss)`)}return d===a}function mo(l){return l instanceof Es&&l.getTypeName()||null}function go(l){return new Cs(l)}function Vo(l){return new fo(l)}function Xi(l){return new oa(l)}function Ts(l){return new jo(l)}function vo(l){return new aa(l)}class la{constructor(a){this.inertDocumentHelper=a}getInertBodyElement(a){a="<body><remove></remove>"+a;try{const d=(new window.DOMParser).parseFromString(Vr(a),"text/html").body;return null===d?this.inertDocumentHelper.getInertBodyElement(a):(d.removeChild(d.firstChild),d)}catch{return null}}}class yo{constructor(a){if(this.defaultDoc=a,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),null==this.inertDocument.body){const d=this.inertDocument.createElement("html");this.inertDocument.appendChild(d);const y=this.inertDocument.createElement("body");d.appendChild(y)}}getInertBodyElement(a){const d=this.inertDocument.createElement("template");if("content"in d)return d.innerHTML=Vr(a),d;const y=this.inertDocument.createElement("body");return y.innerHTML=Vr(a),this.defaultDoc.documentMode&&this.stripCustomNsAttrs(y),y}stripCustomNsAttrs(a){const d=a.attributes;for(let I=d.length-1;0<I;I--){const X=d.item(I).name;("xmlns:ns1"===X||0===X.indexOf("ns1:"))&&a.removeAttribute(X)}let y=a.firstChild;for(;y;)y.nodeType===Node.ELEMENT_NODE&&this.stripCustomNsAttrs(y),y=y.nextSibling}}const ca=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi,_o=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i;function no(l){return(l=String(l)).match(ca)||l.match(_o)?l:"unsafe:"+l}function qi(l){const a={};for(const d of l.split(","))a[d]=!0;return a}function Ms(...l){const a={};for(const d of l)for(const y in d)d.hasOwnProperty(y)&&(a[y]=!0);return a}const Ws=qi("area,br,col,hr,img,wbr"),Xo=qi("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),Ao=qi("rp,rt"),xo=Ms(Ws,Ms(Xo,qi("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Ms(Ao,qi("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),Ms(Ao,Xo)),st=qi("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),O=qi("srcset"),R=Ms(st,O,qi("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),qi("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),K=qi("script,style,template");class ft{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(a){let d=a.firstChild,y=!0;for(;d;)if(d.nodeType===Node.ELEMENT_NODE?y=this.startElement(d):d.nodeType===Node.TEXT_NODE?this.chars(d.nodeValue):this.sanitizedSomething=!0,y&&d.firstChild)d=d.firstChild;else for(;d;){d.nodeType===Node.ELEMENT_NODE&&this.endElement(d);let I=this.checkClobberedElement(d,d.nextSibling);if(I){d=I;break}d=this.checkClobberedElement(d,d.parentNode)}return this.buf.join("")}startElement(a){const d=a.nodeName.toLowerCase();if(!xo.hasOwnProperty(d))return this.sanitizedSomething=!0,!K.hasOwnProperty(d);this.buf.push("<"),this.buf.push(d);const y=a.attributes;for(let X=0;X<y.length;X++){const nt=y.item(X),ut=nt.name,xt=ut.toLowerCase();if(!R.hasOwnProperty(xt)){this.sanitizedSomething=!0;continue}let At=nt.value;st[xt]&&(At=no(At)),O[xt]&&(I=At,At=(I=String(I)).split(",").map($t=>no($t.trim())).join(", ")),this.buf.push(" ",ut,'="',ce(At),'"')}var I;return this.buf.push(">"),!0}endElement(a){const d=a.nodeName.toLowerCase();xo.hasOwnProperty(d)&&!Ws.hasOwnProperty(d)&&(this.buf.push("</"),this.buf.push(d),this.buf.push(">"))}chars(a){this.buf.push(ce(a))}checkClobberedElement(a,d){if(d&&(a.compareDocumentPosition(d)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${a.outerHTML}`);return d}}const jt=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Zt=/([^\#-~ |!])/g;function ce(l){return l.replace(/&/g,"&
1").replace(jt,function(a){return"&#"+(1024*(a.charCodeAt(0)-55296)+(a.charCodeAt(1)-56320)+65536)+";"}).replace(Zt,function(a){return"&#"+a.charCodeAt(0)+";"}).replace(/</g,"<").replace(/>/g,">")}let ze;function En(l,a){let d=null;try{ze=ze||function(ut){const xt=new yo(ut);return function(){try{return!!(new window.DOMParser).parseFromString(Vr(""),"text/html")}catch{return!1}}()?new la(xt):xt}(l);let y=a?String(a):"";d=ze.getInertBodyElement(y);let I=5,X=y;do{if(0===I)throw new Error("Failed to sanitize html because the input is unstable");I--,y=X,X=d.innerHTML,d=ze.getInertBodyElement(y)}while(y!==X);return Vr((new ft).sanitizeChildren(tn(d)||d))}finally{if(d){const y=tn(d)||d;for(;y.firstChild;)y.removeChild(y.firstChild)}}}function tn(l){return"content"in l&&(d=l).nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===d.nodeName?l.content:null;var d}var bn=((bn=bn||{})[bn.NONE=0]="NONE",bn[bn.HTML=1]="HTML",bn[bn.STYLE=2]="STYLE",bn[bn.SCRIPT=3]="SCRIPT",bn[bn.URL=4]="URL",bn[bn.RESOURCE_URL=5]="RESOURCE_URL",bn);function Ln(l){const a=function(){const y=Oe();return y&&y[12]}();return a?a.sanitize(bn.URL,l)||"":Rs(l,"URL")?_i(l):no(M(l))}const jn="__ngContext__";function Dn(l,a){l[jn]=a}function sr(l){const a=l[jn]||null;return a?Array.isArray(a)?a:a.lView:null}function Tr(l){return l.ngOriginalError}function _r(l,...a){l.error(...a)}class Xr{constructor(){this._console=console}handleError(a){const d=this._findOriginalError(a),y=(X=a)&&X.ngErrorLogger||_r;var X;y(this._console,"ERROR",a),d&&y(this._console,"ORIGINAL ERROR",d)}_findOriginalError(a){let d=a&&Tr(a);for(;d&&Tr(d);)d=Tr(d);return d||null}}const Sr=(typeof requestAnimationFrame<"u"&&requestAnimationFrame||setTimeout).bind(Mt);function Zr(l){return l instanceof Function?l():l}var ii=((ii=ii||{})[ii.Important=1]="Important",ii[ii.DashCase=2]="DashCase",ii);function Ur(l,a){return(void 0)(l,a)}function Dr(l){const a=l[3];return Lt(a)?a[3]:a}function Er(l){return Gr(l[13])}function Ci(l){return Gr(l[4])}function Gr(l){for(;null!==l&&!Lt(l);)l=l[4];return l}function Yr(l,a,d,y,I){if(null!=y){let X,nt=!1;Lt(y)?X=y:Be(y)&&(nt=!0,y=y[0]);const ut=Ze(y);0===l&&null!==d?null==I?Uo(a,d,ut):cs(a,d,ut,I||null,!0):1===l&&null!==d?cs(a,d,ut,I||null,!0):2===l?function(At,$t,Gt){const ue=bo(At,$t);var an,yn,er,fr;ue&&(yn=ue,er=$t,fr=Gt,pe(an=At)?an.removeChild(yn,er,fr):yn.removeChild(er))}(a,ut,nt):3===l&&a.destroyNode(ut),null!=X&&function(At,$t,Gt,ue,Qe){const an=Gt[7];an!==Ze(Gt)&&Yr($t,At,ue,an,Qe);for(let yn=10;yn<Gt.length;yn++){const er=Gt[yn];Eo(er[1],er,At,$t,ue,an)}}(a,l,X,d,I)}}function yi(l,a,d){return pe(l)?l.createElement(a,d):null===d?l.createElement(a):l.createElementNS(d,a)}function qr(l,a){const d=l[9],y=d.indexOf(a),I=a[3];1024&a[2]&&(a[2]&=-1025,zn(I,-1)),d.splice(y,1)}function Pr(l,a){if(l.length<=10)return;const d=10+a,y=l[d];if(y){const I=y[17];null!==I&&I!==l&&qr(I,y),a>0&&(l[d-1][4]=y[4]);const X=Fo(l,10+a);Eo(y[1],At=y,At[11],2,null,null),At[0]=null,At[6]=null;const nt=X[19];null!==nt&&nt.detachView(X[1]),y[3]=null,y[4]=null,y[2]&=-129}var At;return y}function Jr(l,a){if(!(256&a[2])){const d=a[11];pe(d)&&d.destroyNode&&Eo(l,a,d,3,null,null),function(I){let X=I[13];if(!X)return Ai(I[1],I);for(;X;){let nt=null;if(Be(X))nt=X[13];else{const ut=X[10];ut&&(nt=ut)}if(!nt){for(;X&&!X[4]&&X!==I;)Be(X)&&Ai(X[1],X),X=X[3];null===X&&(X=I),Be(X)&&Ai(X[1],X),nt=X&&X[4]}X=nt}}(a)}}function Ai(l,a){if(!(256&a[2])){a[2]&=-129,a[2]|=256,function(I,X){let nt;if(null!=I&&null!=(nt=I.destroyHooks))for(let ut=0;ut<nt.length;ut+=2){const xt=X[nt[ut]];if(!(xt instanceof L)){const At=nt[ut+1];if(Array.isArray(At))for(let $t=0;$t<At.length;$t+=2){const Gt=xt[At[$t]],ue=At[$t+1];try{ue.call(Gt)}finally{}}else try{At.call(xt)}finally{}}}}(l,a),function(I,X){const nt=I.cleanup,ut=X[7];let xt=-1;if(null!==nt)for(let At=0;At<nt.length-1;At+=2)if("string"==typeof nt[At]){const $t=nt[At+1],Gt="function"==typeof $t?$t(X):Ze(X[$t]),ue=ut[xt=nt[At+2]],Qe=nt[At+3];"boolean"==typeof Qe?Gt.removeEventListener(nt[At],ue,Qe):Qe>=0?ut[xt=Qe]():ut[xt=-Qe].unsubscribe(),At+=2}else{const $t=ut[xt=nt[At+1]];nt[At].call($t)}if(null!==ut){for(let At=xt+1;At<ut.length;At++)ut[At]();X[7]=null}}(l,a),1===a[1].type&&pe(a[11])&&a[11].destroy();const d=a[17];if(null!==d&&Lt(a[3])){d!==a[3]&&qr(d,a);const y=a[19];null!==y&&y.detachView(l)}}}function cs(l,a,d,y,I){pe(l)?l.insertBefore(a,d,y,I):a.insertBefore(d,y,I)}function Uo(l,a,d){pe(l)?l.appendChild(a,d):a.appendChild(d)}function Qs(l,a,d,y,I){null!==y?cs(l,a,d,y,I):Uo(l,a,d)}function bo(l,a){return pe(l)?l.parentNode(a):a.parentNode}function ll(l,a,d,y){const I=function Ss(l,a,d){return function(I,X,nt){let ut=X;for(;null!==ut&&40&ut.type;)ut=(X=ut).parent;if(null===ut)return nt[0];if(2&ut.flags){const xt=I.data[ut.directiveStart].encapsulation;if(xt===Le.None||xt===Le.Emulated)return null}return un(ut,nt)}(l,a.parent,d)}(l,y,a),X=a[11],nt=function(a,d,y){return 40&a.type?un(a,y):null}(y.parent||a[6],0,a);if(null!=I)if(Array.isArray(d))for(let ut=0;ut<d.length;ut++)Qs(X,I,d[ut],nt,!1);else Qs(X,I,d,nt,!1)}function wo(l,a){if(null!==a){const d=a.type;if(3&d)return un(a,l);if(4&d)return qs(-1,l[a.index]);if(8&d){const y=a.child;if(null!==y)return wo(l,y);{const I=l[a.index];return Lt(I)?qs(-1,I):Ze(I)}}if(32&d)return Ur(a,l)()||Ze(l[a.index]);{const y=Go(l,a);
vendor: 11,095 bytes, line 1
1return null!==y?Array.isArray(y)?y[0]:wo(Dr(l[16]),y):wo(l,a.next)}}return null}function Go(l,a){return null!==a?l[16][6].projection[a.projection]:null}function qs(l,a){const d=10+l+1;if(d<a.length){const y=a[d],I=y[1].firstChild;if(null!==I)return wo(y,I)}return a[7]}function ha(l,a,d,y,I,X,nt){for(;null!=d;){const ut=y[d.index],xt=d.type;if(nt&&0===a&&(ut&&Dn(Ze(ut),y),d.flags|=4),64!=(64&d.flags))if(8&xt)ha(l,a,d.child,y,I,X,!1),Yr(a,l,I,ut,X);else if(32&xt){const At=Ur(d,y);let $t;for(;$t=At();)Yr(a,l,I,$t,X);Yr(a,l,I,ut,X)}else 16&xt?cl(l,a,y,d,I,X):Yr(a,l,I,ut,X);d=nt?d.projectionNext:d.next}}function Eo(l,a,d,y,I,X){ha(d,y,l.firstChild,a,I,X,!1)}function cl(l,a,d,y,I,X){const nt=d[16],ut=nt[6].projection[y.projection];if(Array.isArray(ut))for(let xt=0;xt<ut.length;xt++)Yr(a,l,I,ut[xt],X);else ha(l,a,ut,nt[3],I,X,!0)}function da(l,a,d){pe(l)?l.setAttribute(a,"style",d):a.style.cssText=d}function Zi(l,a,d){pe(l)?""===d?l.removeAttribute(a,"class"):l.setAttribute(a,"class",d):a.className=d}function Wo(l,a,d){let y=l.length;for(;;){const I=l.indexOf(a,d);if(-1===I)return I;if(0===I||l.charCodeAt(I-1)<=32){const X=a.length;if(I+X===y||l.charCodeAt(I+X)<=32)return I}d=I+1}}const pa="ng-template";function ro(l,a,d){let y=0;for(;y<l.length;){let I=l[y++];if(d&&"class"===I){if(I=l[y],-1!==Wo(I.toLowerCase(),a,0))return!0}else if(1===I){for(;y<l.length&&"string"==typeof(I=l[y++]);)if(I.toLowerCase()===a)return!0;return!1}}return!1}function Qo(l){return 4===l.type&&l.value!==pa}function Zs(l,a,d){return a===(4!==l.type||d?l.value:pa)}function fa(l,a,d){let y=4;const I=l.attrs||[],X=function(xt){for(let At=0;At<xt.length;At++)if($(xt[At]))return At;return xt.length}(I);let nt=!1;for(let ut=0;ut<a.length;ut++){const xt=a[ut];if("number"!=typeof xt){if(!nt)if(4&y){if(y=2|1&y,""!==xt&&!Zs(l,xt,d)||""===xt&&1===a.length){if(Yi(y))return!1;nt=!0}}else{const At=8&y?xt:a[++ut];if(8&y&&null!==l.attrs){if(!ro(l.attrs,At,d)){if(Yi(y))return!1;nt=!0}continue}const $t=ma(8&y?"class":xt,I,Qo(l),d);if(-1===$t){if(Yi(y))return!1;nt=!0;continue}if(""!==At){let Gt;Gt=$t>X?"":I[$t+1].toLowerCase();const ue=8&y?Gt:null;if(ue&&-1!==Wo(ue,At,0)||2&y&&At!==Gt){if(Yi(y))return!1;nt=!0}}}}else{if(!nt&&!Yi(y)&&!Yi(xt))return!1;if(nt&&Yi(xt))continue;nt=!1,y=xt|1&y}}return Yi(y)||nt}function Yi(l){return 0==(1&l)}function ma(l,a,d,y){if(null===a)return-1;let I=0;if(y||!d){let X=!1;for(;I<a.length;){const nt=a[I];if(nt===l)return I;if(3===nt||6===nt)X=!0;else{if(1===nt||2===nt){let ut=a[++I];for(;"string"==typeof ut;)ut=a[++I];continue}if(4===nt)break;if(0===nt){I+=4;continue}}I+=X?1:2}return-1}return function(nt,ut){let xt=nt.indexOf(4);if(xt>-1)for(xt++;xt<nt.length;){const At=nt[xt];if("number"==typeof At)return-1;if(At===ut)return xt;xt++}return-1}(a,l)}function ga(l,a,d=!1){for(let y=0;y<a.length;y++)if(fa(l,a[y],d))return!0;return!1}function qo(l,a){return l?":not("+a.trim()+")":a}function ac(l){let a=l[0],d=1,y=2,I="",X=!1;for(;d<l.length;){let nt=l[d];if("string"==typeof nt)if(2&y){const ut=l[++d];I+="["+nt+(ut.length>0?'="'+ut+'"':"")+"]"}else 8&y?I+="."+nt:4&y&&(I+=" "+nt);else""!==I&&!Yi(nt)&&(a+=qo(X,I),I=""),y=nt,X=X||!Yi(y);d++}return""!==I&&(a+=qo(X,I)),a}const ns={};function Rl(l){rs(re(),Oe(),pt()+l,On())}function rs(l,a,d,y){if(!y)if(3==(3&a[2])){const I=l.preOrderCheckHooks;null!==I&&ye(a,I,d)}else{const I=l.preOrderHooks;null!==I&&De(a,I,0,d)}Nt(d)}function us(l,a){return l<<17|a<<2}function Ui(l){return l>>17&32767}function ul(l){return 2|l}function Co(l){return(131068&l)>>2}function Zo(l,a){return-131069&l|a<<2}function Ia(l){return 1|l}function Ba(l,a){const d=l.contentQueries;if(null!==d)for(let y=0;y<d.length;y+=2){const I=d[y],X=d[y+1];if(-1!==X){const nt=l.data[X];Or(I),nt.contentQueries(2,a[X],X)}}}function tr(l,a,d,y,I,X,nt,ut,xt,At){const $t=a.blueprint.slice();return $t[0]=I,$t[2]=140|y,Qn($t),$t[3]=$t[15]=l,$t[8]=d,$t[10]=nt||l&&l[10],$t[11]=ut||l&&l[11],$t[12]=xt||l&&l[12]||null,$t[9]=At||l&&l[9]||null,$t[6]=X,$t[16]=2==a.type?l[16]:$t,$t}function is(l,a,d,y,I){let X=l.data[a];if(null===X)X=function(ut,xt,At,$t,Gt){const ue=ie(),Qe=Ye(),an=ut.data[xt]={type:At,index:xt,insertBeforeIndex:null,injectorIndex:(fr=Qe?ue:ue&&ue.parent)?fr.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,value:$t,attrs:Gt,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:fr,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0};var fr;return null===ut.firstChild&&(ut.firstChild=an),null!==ue&&(Qe?null==ue.child&&null!==an.parent&&(ue.child=an):null===ue.next&&(ue.next=an)),an}(l,a,d,y,I),sn.lFrame.inI18n&&(X.flags|=64);else if(64&X.type){X.type=d,X.value=y,X.attrs=I;const nt=function(){const xt=sn.lFrame,At=xt.currentTNode;return xt.isParent?At:At.parent}();X.injectorIndex=null===nt?-1:nt.injectorIndex}return je(X,!0),X}function Yo(l,a,d,y){if(0===d)return-1;const I=a.length;for(let X=0;X<d;X++)a.push(y),l.blueprint.push(y),l.data.push(null);return I}function va(l,a,d){fi(a);try{const y=l.viewQuery;null!==y&&xa(1,y,d);const I=l.template;null!==I&&hl(l,a,I,1,d),l.firstCreatePass&&(l.firstCreatePass=!1),l.staticContentQueries&&Ba(l,a),l.staticViewQueries&&xa(2,l.viewQuery,d);const X=l.components;null!==X&&function(ut,xt){for(let At=0;At<xt.length;At++)ml(ut,xt[At])}(a,X)}catch(y){throw l.firstCreatePass&&(l.incompleteFirstPass=!0,l.firstCreatePass=!1),y}finally{a[2]&=-5,Z()}}function To(l,a,d,y){const I=a[2];if(256==(256&I))return;fi(a);const X=On();try{Qn(a),sn.lFrame.bindingIndex=l.bindingStartIndex,null!==d&&hl(l,a,d,2,y);const nt=3==(3&I);if(!X)if(nt){const At=l.preOrderCheckHooks;null!==At&&ye(a,At,null)}else{const At=l.preOrderHooks;null!==At&&De(a,At,0,null),hn(a,0)}if(function($t){for(let Gt=Er($t);null!==Gt;Gt=Ci(Gt)){if(!Gt[2])continue;const ue=Gt[9];for(let Qe=0;Qe<ue.length;Qe++){const an=ue[Qe],yn=an[3];0==(1024&an[2])&&zn(yn,1),an[2]|=1024}}}(a),function($t){for(let Gt=Er($t);null!==Gt;Gt=Ci(Gt))for(let ue=10;ue<Gt.length;ue++){const Qe=Gt[ue],an=Qe[1];Zn(Qe)&&To(an,Qe,an.template,Qe[8])}}(a),null!==l.contentQueries&&Ba(l,a),!X)if(nt){const At=l.contentCheckHooks;null!==At&&ye(a,At)}else{const At=l.contentHooks;null!==At&&De(a,At,1),hn(a,1)}!function($t,Gt){const ue=$t.hostBindingOpCodes;if(null!==ue)try{for(let Qe=0;Qe<ue.length;Qe++){const an=ue[Qe];if(an<0)Nt(~an);else{const yn=an,er=ue[++Qe],fr=ue[++Qe];wr(er,yn),fr(2,Gt[yn])}}}finally{Nt(-1)}}(l,a);const ut=l.components;null!==ut&&function($t,Gt){for(let ue=0;ue<Gt.length;ue++)fl($t,Gt[ue])}(a,ut);const xt=l.viewQuery;if(null!==xt&&xa(2,xt,y),!X)if(nt){const At=l.viewCheckHooks;null!==At&&ye(a,At)}else{const At=l.viewHooks;null!==At&&De(a,At,2),hn(a,2)}!0===l.firstUpdatePass&&(l.firstUpdatePass=!1),X||(a[2]&=-73),1024&a[2]&&(a[2]&=-1025,zn(a[3],-1))}finally{Z()}}function Ml(l,a,d,y){const I=a[10],X=!On(),nt=Nn(a);try{X&&!nt&&I.begin&&I.begin(),nt&&va(l,a,y),To(l,a,d,y)}finally{X&&!nt&&I.end&&I.end()}}function hl(l,a,d,y,I){const X=pt(),nt=2&y;try{Nt(-1),nt&&a.length>20&&rs(l,a,20,On()),d(y,I)}finally{Nt(X)}}function dl(l,a,d){!xn()||(function(I,X,nt,ut){const xt=nt.directiveStart,At=nt.directiveEnd;I.firstCreatePass||Pi(nt,X),Dn(ut,X);const $t=nt.initialInputs;for(let Gt=xt;Gt<At;Gt++){const ue=I.data[Gt],Qe=Je(ue);Qe&&zs(X,nt,ue);const an=Mi(X,I,Gt,nt);Dn(an,X),null!==$t&&xi(0,Gt-xt,an,ue,0,$t),Qe&&(on(nt.index,X)[8]=an)}}(l,a,d,un(d,a)),128==(128&d.flags)&&function(I,X,nt){const ut=nt.directiveStart,xt=nt.directiveEnd,At=nt.index,$t=sn.lFrame.currentDirectiveIndex;try{Nt(At);for(let Gt=ut;Gt<xt;Gt++){const ue=I.data[Gt],Qe=X[Gt];Br(Gt),(null!==ue.hostBindings||0!==ue.hostVars||null!==ue.hostAttrs)&&Os(ue,Qe)}}finally{Nt(-1),Br($t)}}(l,a,d))}function Ji(l,a,d=un){const y=a.localNames;if(null!==y){let I=a.index+1;for(let X=0;X<y.length;X+=2){const nt=y[X+1],ut=-1===nt?d(a,l):l[nt];l[I++]=ut}}}function Ll(l){const a=l.tView;return null===a||a.incompleteFirstPass?l.tView=Jo(1,null,l.template,l.decls,l.vars,l.directiveDefs,l.pipeDefs,l.viewQuery,l.schemas,l.consts):a}function Jo(l,a,d,y,I,X,nt,ut,xt,At){const $t=20+y,Gt=$t+I,ue=function(yn,er){const fr=[];for(let cr=0;cr<er;cr++)fr.push(cr<yn?null:ns);return fr}($t,Gt),Qe="function"==typeof At?At():At;return ue[1]={type:l,blueprint:ue,template:d,queries:null,viewQuery:ut,declTNode:a,data:ue.slice().fill(null,$t),bindingStartIndex:$t,expandoStartIndex:Gt,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:"function"==typeof X?X():X,pipeRegistry:"function"==typeof nt?nt():nt,firstChild:null,schemas:xt,consts:Qe,incompleteFirstPass:!1}}function ya(l,a,d,y){const I=ds(a);null===d?I.push(y):(I.push(d),l.firstCreatePass&&Da(l).push(y,I.length-1))}function Ls(l,a,d){for(let y in l)if(l.hasOwnProperty(y)){const I=l[y];(d=null===d?{}:d).hasOwnProperty(y)?d[y].push(a,I):d[y]=[a,I]}return d}function Is(l,a,d,y,I,X,nt,ut){const xt=un(a,d);let At,$t=a.inputs;var ue;!ut&&null!=$t&&(At=$t[y])?(Ni(l,d,At,y,I),Jt(a)&&function(ue,Qe){const an=on(Qe,ue);16&an[2]||(an[2]|=64)}(d,a.index)):3&a.type&&(y="class"===(ue=y)?"className":"for"===ue?"htmlFor":"formaction"===ue?"formAction":"innerHtml"===ue?"innerHTML":"readonly"===ue?"readOnly":"tabindex"===ue?"tabIndex":ue,I=null!=nt?nt(I,a.value||"",y):I,pe(X)?X.setProperty(xt,y,I):Tt(y)||(xt.setProperty?xt.setProperty(y,I):xt[y]=I))}function hs(l,a,d,y){let I=!1;if(xn()){const X=function(xt,At,$t){const Gt=xt.directiveRegistry;let ue=null;if(Gt)for(let Qe=0;Qe<Gt.length;Qe++){const an=Gt[Qe];ga($t,an.selectors,!1)&&(ue||(ue=[]),es(Pi($t,At),xt,an.type),Je(an)?(Ys(xt,$t),ue.unshift(an)):ue.push(an))}return ue}(l,a,d),nt=null===y?null:{"":-1};if(null!==X){I=!0,Il(d,l.data.length,X.length);for(let $t=0;$t<X.length;$t++){const Gt=X[$t];Gt.providersResolver&&Gt.providersResolver(Gt)}let ut=!1,xt=!1,At=Yo(l,a,X.length,null);for(let $t=0;$t<X.length;$t++){const Gt=X[$t];d.mergedAttrs=qt(d.mergedAttrs,Gt.hostAttrs),Ks(l,d,a,At,Gt),Js(At,Gt,nt),null!==Gt.contentQueries&&(d.flags|=8),(null!==Gt.hostBindings||null!==Gt.hostAttrs||0!==Gt.hostVars)&&(d.flags|=128);const ue=Gt.type.prototype;!ut&&(ue.ngOnChanges||ue.ngOnInit||ue.ngDoCheck)&&((l.preOrderHooks||(l.preOrderHooks=[])).push(d.index),ut=!0),!xt&&(ue.ngOnChanges||ue.ngDoCheck)&&((l.preOrderCheckHooks||(l.preOrderCheckHooks=[])).push(d.index),xt=!0),At++}!function(Gt,ue){const Qe=ue.directiveEnd,an=Gt.data,yn=ue.attrs,er=[];let fr=null,cr=null;for(let An=ue.directiveStart;An<Qe;An++){const Fn=an[An],ar=Fn.inputs,Wn=null===yn||Qo(ue)?null:pl(ar,yn);er.push(Wn),fr=Ls(ar,An,fr),cr=Ls(Fn.outputs,An,cr)}null!==fr&&(fr.hasOwnProperty("class")&&(ue.flags|=16),fr.hasOwnProperty("style")&&(ue.flags|=32)),ue.
vendor: 4,158 bytes, line 1
1initialInputs=er,ue.inputs=fr,ue.outputs=cr}(l,d)}nt&&function(xt,At,$t){if(At){const Gt=xt.localNames=[];for(let ue=0;ue<At.length;ue+=2){const Qe=$t[At[ue+1]];if(null==Qe)throw new m(-301,`Export of name '${At[ue+1]}' not found!`);Gt.push(At[ue],Qe)}}}(d,y,nt)}return d.mergedAttrs=qt(d.mergedAttrs,d.attrs),I}function Bs(l,a,d,y,I,X){const nt=X.hostBindings;if(nt){let ut=l.hostBindingOpCodes;null===ut&&(ut=l.hostBindingOpCodes=[]);const xt=~a.index;(function($t){let Gt=$t.length;for(;Gt>0;){const ue=$t[--Gt];if("number"==typeof ue&&ue<0)return ue}return 0})(ut)!=xt&&ut.push(xt),ut.push(y,I,nt)}}function Os(l,a){null!==l.hostBindings&&l.hostBindings(1,a)}function Ys(l,a){a.flags|=2,(l.components||(l.components=[])).push(a.index)}function Js(l,a,d){if(d){if(a.exportAs)for(let y=0;y<a.exportAs.length;y++)d[a.exportAs[y]]=l;Je(a)&&(d[""]=l)}}function Il(l,a,d){l.flags|=1,l.directiveStart=a,l.directiveEnd=a+d,l.providerIndexes=a}function Ks(l,a,d,y,I){l.data[y]=I;const X=I.factory||(I.factory=nn(I.type)),nt=new L(X,Je(I),null);l.blueprint[y]=nt,d[y]=nt,Bs(l,a,0,y,Yo(l,d,I.hostVars,ns),I)}function zs(l,a,d){const y=un(a,l),I=Ll(d),X=l[10],nt=Ro(l,tr(l,I,null,d.onPush?64:16,y,a,X,X.createRenderer(y,d),null,null));l[a.index]=nt}function xi(l,a,d,y,I,X){const nt=X[a];if(null!==nt){const ut=y.setInput;for(let xt=0;xt<nt.length;){const At=nt[xt++],$t=nt[xt++],Gt=nt[xt++];null!==ut?y.setInput(d,Gt,At,$t):d[$t]=Gt}}}function pl(l,a){let d=null,y=0;for(;y<a.length;){const I=a[y];if(0!==I)if(5!==I){if("number"==typeof I)break;l.hasOwnProperty(I)&&(null===d&&(d=[]),d.push(I,l[I],a[y+1])),y+=2}else y+=2;else y+=4}return d}function Po(l,a,d,y){return new Array(l,!0,!1,a,null,0,y,d,null,null)}function fl(l,a){const d=on(a,l);if(Zn(d)){const y=d[1];80&d[2]?To(y,d,y.template,d[8]):d[5]>0&&Aa(d)}}function Aa(l){for(let d=Er(l);null!==d;d=Ci(d))for(let y=10;y<d.length;y++){const I=d[y];if(1024&I[2]){const X=I[1];To(X,I,X.template,I[8])}else I[5]>0&&Aa(I)}const a=l[1].components;if(null!==a)for(let d=0;d<a.length;d++){const y=on(a[d],l);Zn(y)&&y[5]>0&&Aa(y)}}function ml(l,a){const d=on(a,l),y=d[1];(function(X,nt){for(let ut=nt.length;ut<X.blueprint.length;ut++)nt.push(X.blueprint[ut])})(y,d),va(y,d,d[8])}function Ro(l,a){return l[13]?l[14][4]=a:l[13]=a,l[14]=a,a}function Oa(l){for(;l;){l[2]|=64;const a=Dr(l);if(Te(l)&&!a)return l;l=a}return null}function za(l,a,d){const y=a[10];y.begin&&y.begin();try{To(l,a,l.template,d)}catch(I){throw Na(a,I),I}finally{y.end&&y.end()}}function Ha(l){!function(d){for(let y=0;y<d.components.length;y++){const I=d.components[y],X=sr(I),nt=X[1];Ml(nt,X,nt.template,I)}}(l[8])}function xa(l,a,d){Or(0),a(l,d)}const Ki=Promise.resolve(null);function ds(l){return l[7]||(l[7]=[])}function Da(l){return l.cleanup||(l.cleanup=[])}function ba(l,a,d){return(null===l||Je(l))&&(d=function(I){for(;Array.isArray(I);){if("object"==typeof I[1])return I;I=I[0]}return null}(d[a.index])),d[11]}function Na(l,a){const d=l[9],y=d?d.get(Xr,null):null;y&&y.handleError(a)}function Ni(l,a,d,y,I){for(let X=0;X<d.length;){const nt=d[X++],ut=d[X++],xt=a[nt],At=l.data[nt];null!==At.setInput?At.setInput(xt,I,y,ut):xt[ut]=I}}function Fa(l,a,d){var X,nt,ut;nt=Kn(a,l),ut=d,pe(X=l[11])?X.setValue(nt,ut):nt.textContent=ut}function wa(l,a,d){let y=d?l.styles:null,I=d?l.classes:null,X=0;if(null!==a)for(let nt=0;nt<a.length;nt++){const ut=a[nt];"number"==typeof ut?X=ut:1==X?I=it(I,ut):2==X&&(y=it(y,ut+": "+a[++nt]+";"))}d?l.styles=y:l.stylesWithoutHost=y,d?l.classes=I:l.classesWithoutHost=I}const Mo=new Oi("INJECTOR",-1);class ka{get(a,d=ei){if(d===ei){const y=new Error(`NullInjectorError: No provider for ${q(a)}!`);throw y.name="NullInjectorError",y}return d}}const Ko=new Oi("Set Injector scope."),Lo={},Ea={};let ps;function Yl(){return void 0===ps&&(ps=new ka),ps}function ja(l,a=null,d=null,y){const I=gl(l,a,d,y);return I._resolveInjectorDefTypes(),I}function gl(l,a=null,d=null,y){return new Jl(l,d,a||Yl(),y)}class Jl{constructor(a,d,y,I=null){this.parent=y,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const X=[];d&&ks(d,ut=>this.processProvider(ut,a,d)),ks([a],ut=>
1this.processInjectorType(ut,[],X)),this.records.set(Mo,Bo(void 0,this));const nt=this.records.get(Ko);this.scope=null!=nt?nt.value:null,this.source=I||("object"==typeof a?null:q(a))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(a=>a.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(a,d=ei,y=Ae.Default){this.assertNotDestroyed();const I=uo(this),X=We(void 0);try{if(!(y&Ae.SkipSelf)){let nt=this.records.get(a);if(void 0===nt){const ut=("function"==typeof(At=a)||"object"==typeof At&&At instanceof Oi)&&U(a);nt=ut&&this.injectableDefInScope(ut)?Bo(Io(a),Lo):null,this.records.set(a,nt)}if(null!=nt)return this.hydrate(a,nt)}return(y&Ae.Self?Yl():this.parent).get(a,d=y&Ae.Optional&&d===ei?null:d)}catch(nt){if("NullInjectorError"===nt.name){if((nt[ko]=nt[ko]||[]).unshift(q(a)),I)throw nt;return function(xt,At,$t,Gt){const ue=xt[ko];throw At[co]&&ue.unshift(At[co]),xt.message=function(an,yn,er,fr=null){an=an&&"\n"===an.charAt(0)&&"\u0275"==an.charAt(1)?an.substr(2):an;let cr=q(yn);if(Array.isArray(yn))cr=yn.map(q).join(" -> ");else if("object"==typeof yn){let An=[];for(let Fn in yn)if(yn.hasOwnProperty(Fn)){let ar=yn[Fn];An.push(Fn+":"+("string"==typeof ar?JSON.stringify(ar):q(ar)))}cr=`{${An.join(", ")}}`}return`${er}${fr?"("+fr+")":""}[${cr}]: ${an.replace(sa,"\n ")}`}("\n"+xt.message,ue,"R3InjectorError",Gt),xt.ngTokenPath=ue,xt[ko]=null,xt}(nt,a,0,this.source)}throw nt}finally{We(X),uo(I)}var At}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(a=>this.get(a))}toString(){const a=[];return this.records.forEach((d,y)=>a.push(q(y))),`R3Injector[${a.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error("Injector has already been destroyed.")}processInjectorType(a,d,y){if(!(a=J(a)))return!1;let I=dt(a);const X=null==I&&a.ngModule||void 0,nt=void 0===X?a:X,ut=-1!==y.indexOf(nt);if(void 0!==X&&(I=dt(X)),null==I)return!1;if(null!=I.imports&&!ut){let $t;y.push(nt);try{ks(I.imports,Gt=>{this.processInjectorType(Gt,d,y)&&(void 0===$t&&($t=[]),$t.push(Gt))})}finally{}if(void 0!==$t)for(let Gt=0;Gt<$t.length;Gt++){const{ngModule:ue,providers:Qe}=$t[Gt];ks(Qe,an=>this.processProvider(an,ue,Qe||mt))}}this.injectorDefTypes.add(nt);const xt=nn(nt)||(()=>new nt);this.records.set(nt,Bo(xt,Lo));const At=I.providers;if(null!=At&&!ut){const $t=a;ks(At,Gt=>this.processProvider(Gt,$t,At))}return void 0!==X&&void 0!==a.providers}processProvider(a,d,y){let I=vl(a=J(a))?a:J(a&&a.provide);const X=Va(ut=a)?Bo(void 0,ut.useValue):Bo(function(Gt,ue,Qe){let an;if(vl(Gt)){const yn=J(Gt);return nn(yn)||Io(yn)}if(Va(Gt))an=()=>J(Gt.useValue);else if((er=Gt)&&er.useFactory)an=()=>Gt.useFactory(...Us(Gt.deps||[]));else if(function(er){return!(!er||!er.useExisting)}(Gt))an=()=>vi(J(Gt.useExisting));else{const yn=J(Gt&&(Gt.useClass||Gt.provide));if(!Gt.deps)return nn(yn)||Io(yn);an=()=>new yn(...Us(Gt.deps))}var er;return an}(ut),Lo);var ut;if(vl(a)||!0!==a.multi)this.records.get(I);else{let nt=this.records.get(I);nt||(nt=Bo(void 0,Lo,!0),nt.factory=()=>Us(nt.multi),this.records.set(I,nt)),I=a,nt.multi.push(a)}this.records.set(I,X)}hydrate(a,d){return d.value===Lo&&(d.value=Ea,d.value=d.factory()),"object"==typeof d.value&&d.value&&null!==(I=d.value)&&"object"==typeof I&&"function"==typeof I.ngOnDestroy&&this.onDestroy.add(d.value),d.value;var I}injectableDefInScope(a){if(!a.providedIn)return!1;const d=J(a.providedIn);return"string"==typeof d?"any"===d||d===this.scope:this.injectorDefTypes.has(d)}}function Io(l){const a=U(l),d=null!==a?a.factory:nn(l);if(null!==d)return d;if(l instanceof Oi)throw new Error(`Token ${q(l)} is missing a \u0275prov definition.`);if(l instanceof Function)return function(I){const X=I.length;if(X>0){const ut=function(At,$t){const Gt=[];for(let ue=0;ue<At;ue++)Gt.push("?");return Gt}(X);throw new Error(`Can't resolve all parameters for ${q(I)}: (${ut.join(", ")}).`)}const nt=function(xt){const At=xt&&(xt[wt]||xt[te]);if(At){const $t=function(ue){if(ue.hasOwnProperty("name"))return ue.name;const Qe=(""+ue).match(/^function\s*([^\s(]+)/);return null===Qe?"":Qe[1]}(xt);return console.warn(`DEPRECATED: DI is instantiating a token "${$t}" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in a future version of Angular. Please add @Injectable() to the "${$t}" class.`),At}return null}(I);return null!==nt?()=>nt.factory(I):()=>new I}(l);throw new Error("unreachable")}function Bo(l,a,d=!1){return{factory:l,value:a,multi:d?[]:void 0}}function Va(l){return null!==l&&"object"==typeof l&&_s in l}function vl(l){return"function"==typeof l}let $s=(()=>{class l{static create(d,y){var I;if(Array.isArray(d))return ja({name:""},y,d,"");{const X=null!==(I=d.name)&&void 0!==I?I:"";return ja({name:X},d.parent,d.providers,X)}}}return l.THROW_IF_NOT_FOUND=ei,l.NULL=new ka,l.\u0275prov=P({token:l,providedIn:"any",factory:()=>vi(Mo)}),l.__NG_ELEMENT_ID__=-1,l})();function Kl(l,a){oe(sr(l)[1],Ot())}function Bl(l){let a=Object.getPrototypeOf(l.type.prototype).constructor,d=!0;const y=[l];for(;a;){let I;if(Je(l))I=a.\u0275cmp||a.\u0275dir;else{if(a.\u0275cmp)throw new Error("Directives cannot inherit Components");I=a.\u0275dir}if(I){if(d){y.push(I);const nt=l;nt.inputs=_a(l.inputs),nt.declaredInputs=_a(l.declaredInputs),nt.outputs=_a(l.outputs);const ut=I.hostBindings;ut&&lc(l,ut);const xt=I.viewQuery,At=I.contentQueries;
vendor: 4,115 bytes, line 1
1if(xt&&Ol(l,xt),At&&zl(l,At),Y(l.inputs,I.inputs),Y(l.declaredInputs,I.declaredInputs),Y(l.outputs,I.outputs),Je(I)&&I.data.animation){const $t=l.data;$t.animation=($t.animation||[]).concat(I.data.animation)}}const X=I.features;if(X)for(let nt=0;nt<X.length;nt++){const ut=X[nt];ut&&ut.ngInherit&&ut(l),ut===Bl&&(d=!1)}}a=Object.getPrototypeOf(a)}!function(X){let nt=0,ut=null;for(let xt=X.length-1;xt>=0;xt--){const At=X[xt];At.hostVars=nt+=At.hostVars,At.hostAttrs=qt(At.hostAttrs,ut=qt(ut,At.hostAttrs))}}(y)}function _a(l){return l===It?{}:l===mt?[]:l}function Ol(l,a){const d=l.viewQuery;l.viewQuery=d?(y,I)=>{a(y,I),d(y,I)}:a}function zl(l,a){const d=l.contentQueries;l.contentQueries=d?(y,I,X)=>{a(y,I,X),d(y,I,X)}:a}function lc(l,a){const d=l.hostBindings;l.hostBindings=d?(y,I)=>{a(y,I),d(y,I)}:a}let Xa=null;function $o(){if(!Xa){const l=Mt.Symbol;if(l&&l.iterator)Xa=l.iterator;else{const a=Object.getOwnPropertyNames(Map.prototype);for(let d=0;d<a.length;++d){const y=a[d];"entries"!==y&&"size"!==y&&Map.prototype[y]===Map.prototype.entries&&(Xa=y)}}}return Xa}function Ua(l){return!!Ga(l)&&(Array.isArray(l)||!(l instanceof Map)&&$o()in l)}function Ga(l){return null!==l&&("function"==typeof l||"object"==typeof l)}function Hl(l,a,d){return l[a]=d}function Ps(l,a,d){return!Object.is(l[a],d)&&(l[a]=d,!0)}function yl(l,a,d,y){const I=Ps(l,a,d);return Ps(l,a+1,y)||I}function ta(l,a,d,y){const I=Oe();return Ps(I,Yn(),a)&&(re(),function So(l,a,d,y,I,X){const nt=un(l,a);!function(xt,At,$t,Gt,ue,Qe,an){if(null==Qe)pe(xt)?xt.removeAttribute(At,ue,$t):At.removeAttribute(ue);else{const yn=null==an?M(Qe):an(Qe,Gt||"",ue);pe(xt)?xt.setAttribute(At,ue,yn,$t):$t?At.setAttributeNS($t,ue,yn):At.setAttribute(ue,yn)}}(a[11],nt,X,l.value,d,y,I)}(Kt(),I,l,a,d,y)),ta}function Nl(l,a,d,y,I,X,nt,ut){const xt=Oe(),At=re(),$t=l+20,Gt=At.firstCreatePass?function(an,yn,er,fr,cr,An,Fn,ar,Wn){const pi=yn.consts,Mr=is(yn,an,4,Fn||null,cn(pi,ar));hs(yn,er,Mr,cn(pi,Wn)),oe(yn,Mr);const br=Mr.tViews=Jo(2,Mr,fr,cr,An,yn.directiveRegistry,yn.pipeRegistry,null,yn.schemas,pi);return null!==yn.queries&&(yn.queries.template(yn,Mr),br.queries=yn.queries.embeddedTView(Mr)),Mr}($t,At,xt,a,d,y,I,X,nt):At.data[$t];je(Gt,!1);const ue=xt[11].createComment("");ll(At,xt,ue,Gt),Dn(ue,xt),Ro(xt,xt[$t]=Po(ue,xt,ue,Gt)),Ie(Gt)&&dl(At,xt,Gt),null!=nt&&Ji(xt,Gt,ut)}function Al(l,a=Ae.Default){const d=Oe();return null===d?vi(l,a):Hn(Ot(),d,J(l),a)}function Fl(){throw new Error("invalid")}function kl(l,a,d){const y=Oe();return Ps(y,Yn(),a)&&Is(re(),Kt(),y,l,a,y[11],d,!1),kl}function xl(l,a,d,y,I){const X=I?"class":"style";Ni(l,d,a.inputs[X],X,y)}function jl(l,a,d,y){const I=Oe(),X=re(),nt=20+l,ut=I[11],xt=I[nt]=yi(ut,a,sn.lFrame.currentNamespace),At=X.firstCreatePass?function(an,yn,er,fr,cr,An,Fn){const ar=yn.consts,Wn=is(yn,an,2,cr,cn(ar,An));return hs(yn,er,Wn,cn(ar,Fn)),null!==Wn.attrs&&wa(Wn,Wn.attrs,!1),null!==Wn.mergedAttrs&&wa(Wn,Wn.mergedAttrs,!0),null!==yn.queries&&yn.queries.elementStart(yn,Wn),Wn}(nt,X,I,0,a,d,y):X.data[nt];je(At,!0);const $t=At.mergedAttrs;null!==$t&&z(ut,xt,$t);const Gt=At.classes;null!==Gt&&Zi(ut,xt,Gt);const ue=At.styles;null!==ue&&da(ut,xt,ue),64!=(64&At.flags)&&ll(X,I,xt,At),0===sn.lFrame.elementDepthCount&&Dn(xt,I),sn.lFrame.elementDepthCount++,Ie(At)&&(dl(X,I,At),function(an,yn,er){if(Ht(yn)){const fr=yn.directiveEnd;for(let cr=yn.directiveStart;cr<fr;cr++){const An=an.data[cr];An.contentQueries&&An.contentQueries(1,er[cr],cr)}}}(X,At,I)),null!==y&&Ji(I,At)}function Gi(){let l=Ot();Ye()?sn.lFrame.isParent=!1:(l=l.parent,je(l,!1));const a=l;sn.lFrame.elementDepthCount--;const d=re();d.firstCreatePass&&(oe(d,l),Ht(l)&&d.queries.elementEnd(l)),null!=a.classesWithoutHost&&0!=(16&a.flags)&&xl(d,a,Oe(),a.classesWithoutHost,!0),null!=a.stylesWithoutHost&&0!=(32&a.flags)&&xl(d,a,Oe(),a.stylesWithoutHost,!1)}function $l(l,a,d,y){jl(l,a,d,y),Gi()}function tc(){return Oe()}function Wa(l){return!!l&&"function"==typeof l.then}function Qa(l){return!!l&&"function"==typeof l.subscribe}const bl=Qa;function wl(l,a,d,y){const I=Oe(),X=re(),nt=Ot();return Vl(X,I,I[11],nt,l,a,!!d,y),wl}
1function El(l,a){const d=Ot(),y=Oe(),I=re();return Vl(I,y,ba(vr(I.data),d,y),d,l,a,!1),El}function Vl(l,a,d,y,I,X,nt,ut){const xt=Ie(y),At=l.firstCreatePass&&Da(l),Gt=ds(a);let ue=!0;if(3&y.type||ut){const yn=un(y,a),er=ut?ut(yn):yn,fr=Gt.length,cr=ut?An=>ut(Ze(An[y.index])):y.index;if(pe(d)){let An=null;if(!ut&&xt&&(An=function(ar,Wn,pi,Mr){const br=ar.cleanup;if(null!=br)for(let ir=0;ir<br.length-1;ir+=2){const ci=br[ir];if(ci===pi&&br[ir+1]===Mr){const si=Wn[7],ui=br[ir+2];return si.length>ui?si[ui]:null}"string"==typeof ci&&(ir+=2)}return null}(l,a,I,y.index)),null!==An)(An.__ngLastListenerFn__||An).__ngNextListenerFn__=X,An.__ngLastListenerFn__=X,ue=!1;else{X=qa(y,a,0,X,!1);const Fn=d.listen(er,I,X);Gt.push(X,Fn),At&&At.push(I,cr,fr,fr+1)}}else X=qa(y,a,0,X,!0),er.addEventListener(I,X,nt),Gt.push(X),At&&At.push(I,cr,fr,nt)}else X=qa(y,a,0,X,!1);const Qe=y.outputs;let an;if(ue&&null!==Qe&&(an=Qe[I])){const yn=an.length;if(yn)for(let er=0;er<yn;er+=2){const fr=a[an[er]][an[er+1]].subscribe(X),cr=Gt.length;Gt.push(X,fr),At&&At.push(I,y.index,cr,-(cr+1))}}}function _l(l,a,d,y){try{return!1!==d(y)}catch(I){return Na(l,I),!1}}function qa(l,a,d,y,I){return function X(nt){if(nt===Function)return y;const ut=2&l.flags?on(l.index,a):a;0==(32&a[2])&&Oa(ut);let xt=_l(a,0,y,nt),At=X.__ngNextListenerFn__;for(;At;)xt=_l(a,0,At,nt)&&xt,At=At.__ngNextListenerFn__;return I&&!1===xt&&(nt.preventDefault(),nt.returnValue=!1),xt}}function ec(l=1){return(sn.lFrame.contextLView=function(I,X){for(;I>0;)X=X[15],I--;return X}(l,sn.lFrame.contextLView))[8]}function Xl(l,a,d,y,I){const X=l[d+1],nt=null===a;let ut=y?Ui(X):Co(X),xt=!1;for(;0!==ut&&(!1===xt||nt);){const At=l[ut+1];nc(l[ut],a)&&(xt=!0,l[ut+1]=y?Ia(At):ul(At)),ut=y?Ui(At):Co(At)}xt&&(l[d+1]=y?ul(X):Ia(X))}function nc(l,a){return null===l||null==a||(Array.isArray(l)?l[1]:l)===a||!(!Array.isArray(l)||"string"!=typeof a)&&Di(l,a)>=0}function Cl(l,a){return function(y,I,X,nt){const ut=Oe(),xt=re(),At=qn(2);var Gt;xt.firstUpdatePass&&function(Gt,ue,Qe,an){const yn=Gt.data;if(null===yn[Qe+1]){const er=yn[pt()],fr=Qe>=Gt.expandoStartIndex;0!=(16&er.flags)&&null===ue&&!fr&&(ue=!1),ue=function(An,Fn,ar,Wn){const pi=vr(An);let Mr=Fn.residualClasses;if(null===pi)0===Fn.classBindings&&(ar=Oo(ar=Za(null,An,Fn,ar,Wn),Fn.attrs,Wn),Mr=null);else{const br=Fn.directiveStylingLast;if(-1===br||An[br]!==pi)if(ar=Za(pi,An,Fn,ar,Wn),null===Mr){let ir=function(si,ui,zi){const ys=ui.classBindings;if(0!==Co(ys))return si[Ui(ys)]}(An,Fn);void 0!==ir&&Array.isArray(ir)&&(ir=Za(null,An,Fn,ir[1],Wn),ir=Oo(ir,Fn.attrs,Wn),ys=ir,An[Ui(Fn.classBindings)]=ys)}else Mr=function(ci,si,ui){let zi;const ys=si.directiveEnd;for(let lo=1+si.directiveStylingLast;lo<ys;lo++)zi=Oo(zi,ci[lo].hostAttrs,!0);return Oo(zi,si.attrs,!0)}(An,Fn)}var ys;return void 0!==Mr&&(Fn.residualClasses=Mr),ar}(yn,er,ue,!0),function(An,Fn,ar,Wn,pi,Mr){let br=Fn.classBindings,ir=Ui(br),ci=Co(br);An[Wn]=ar;let si,ui=!1;if(Array.isArray(ar)){const zi=ar;si=zi[1],(null===si||Di(zi,si)>0)&&(ui=!0)}else si=ar;if(pi)if(0!==ci){const zi=Ui(An[ir+1]);An[Wn+1]=us(zi,ir),0!==zi&&(An[zi+1]=Zo(An[zi+1],Wn)),An[ir+1]=131071&An[ir+1]|Wn<<17}else An[Wn+1]=us(ir,0),0!==ir&&(An[ir+1]=Zo(An[ir+1],Wn)),ir=Wn;else An[Wn+1]=us(ci,0),0===ir?ir=Wn:An[ci+1]=Zo(An[ci+1],Wn),ci=Wn;ui&&(An[Wn+1]=ul(An[Wn+1])),Xl(An,si,Wn,!0),Xl(An,si,Wn,!1),function(ys,lo,ol,gc,yc){const vc=ys.residualClasses;null!=vc&&"string"==typeof lo&&Di(vc,lo)>=0&&(ol[gc+1]=Ia(ol[gc+1]))}(Fn,si,An,Wn),br=us(ir,ci),Fn.classBindings=br}(yn,er,ue,Qe,fr)}}(xt,y,At),I!==ns&&Ps(ut,At,I)&&function(Gt,ue,Qe,an,yn,er,fr,cr){if(!(3&ue.type))return;const An=Gt.data,Fn=An[cr+1];zo(1==(1&Fn)?Ya(An,ue,Qe,yn,Co(Fn),!0):void 0)||(zo(er)||2==(2&Fn)&&(er=Ya(An,null,Qe,yn,cr,!0)),function(Wn,pi,Mr,br,ir){const ci=pe(Wn);ir?ci?Wn.addClass(Mr,br):Mr.classList.add(br):ci?Wn.removeClass(Mr,br):Mr.classList.remove(br)}(an,0,Kn(pt(),Qe),yn,er))}(xt,xt.data[pt()],ut,ut[11],y,ut[At+1]=(null==(Gt=I)||"object"==typeof Gt&&(Gt=q(_i(Gt))),Gt),0,At)}(l,a),Cl}function Za(l,a,d,y,I){let X=null;const nt=d.directiveEnd;let ut=d.directiveStylingLast;
1for(-1===ut?ut=d.directiveStart:ut++;ut<nt&&(X=a[ut],y=Oo(y,X.hostAttrs,I),X!==l);)ut++;return null!==l&&(d.directiveStylingLast=ut),y}function Oo(l,a,d){const y=d?1:2;let I=-1;if(null!==a)for(let X=0;X<a.length;X++){const nt=a[X];"number"==typeof nt?I=nt:I===y&&(Array.isArray(l)||(l=void 0===l?[]:["",l]),al(l,nt,!!d||a[++X]))}return void 0===l?null:l}function Ya(l,a,d,y,I,X){const nt=null===a;let ut;for(;I>0;){const xt=l[I],At=Array.isArray(xt),$t=At?xt[1]:xt,Gt=null===$t;let ue=d[I+1];ue===ns&&(ue=Gt?mt:void 0);let Qe=Gt?js(ue,y):$t===y?ue:void 0;if(At&&!zo(Qe)&&(Qe=js(xt,y)),zo(Qe)&&(ut=Qe,nt))return ut;const an=l[I+1];I=nt?Ui(an):Co(an)}if(null!==a){let xt=X?a.residualClasses:a.residualStyles;null!=xt&&(ut=js(xt,y))}return ut}function zo(l){return void 0!==l}function rc(l,a=""){const d=Oe(),y=re(),I=l+20,X=y.firstCreatePass?is(y,I,1,a,null):y.data[I],nt=d[I]=(At=a,pe(xt=d[11])?xt.createText(At):xt.createTextNode(At));var xt,At;ll(y,d,nt,X),je(X,!1)}function Ca(l){return ea("",l,""),Ca}function ea(l,a,d){const y=Oe(),I=(ut=l,xt=a,At=d,Ps(y,Yn(),xt)?ut+M(xt)+At:ns);var ut,xt,At;return I!==ns&&Fa(y,pt(),I),ea}function Ta(l,a,d,y,I){const X=Oe(),nt=function Dl(l,a,d,y,I,X){const nt=yl(l,sn.lFrame.bindingIndex,d,I);return qn(2),nt?a+M(d)+y+M(I)+X:ns}(X,l,a,d,y,I);return nt!==ns&&Fa(X,pt(),nt),Ta}function Sa(l,a,d){const y=Oe();return Ps(y,Yn(),a)&&Is(re(),Kt(),y,l,a,y[11],d,!0),Sa}function Ja(l,a,d){const y=Oe();if(Ps(y,Yn(),a)){const I=re(),X=Kt();Is(I,X,y,l,a,ba(vr(I.data),X,y),d,!0)}return Ja}const io=void 0;var Tl=["en",[["a","p"],["AM","PM"],io],[["AM","PM"],io,io],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],io,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],io,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",io,"{1} 'at' {0}",io],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function(a){const d=Math.floor(Math.abs(a)),y=a.toString().replace(/^[^.]*\.?/,"").length;return 1===d&&0===y?1:5}];let na={};function Ka(l){const a=l.toLowerCase().replace(/_/g,"-");let d=$a(a);if(d)return d;const y=a.split("-")[0];if(d=$a(y),d)return d;if("en"===y)return Tl;throw new Error(`Missing locale data for the locale "${l}".`)}function Pa(l){return Ka(l)[hr.PluralCase]}function $a(l){return l in na||(na[l]=Mt.ng&&Mt.ng.common&&Mt.ng.common.locales&&Mt.ng.common.locales[l]),na[l]}var hr=((hr=hr||{})[hr.LocaleId=0]="LocaleId",hr[hr.DayPeriodsFormat=1]="DayPeriodsFormat",hr[hr.DayPeriodsStandalone=2]="DayPeriodsStandalone",hr[hr.DaysFormat=3]="DaysFormat",hr[hr.DaysStandalone=4]="DaysStandalone",hr[hr.MonthsFormat=5]="MonthsFormat",hr[hr.MonthsStandalone=6]="MonthsStandalone",hr[hr.Eras=7]="Eras",hr[hr.FirstDayOfWeek=8]="FirstDayOfWeek",hr[hr.WeekendRange=9]="WeekendRange",hr[hr.DateFormat=10]="DateFormat",hr[hr.TimeFormat=11]="TimeFormat",hr[hr.DateTimeFormat=12]="DateTimeFormat",hr[hr.NumberSymbols=13]="NumberSymbols",hr[hr.NumberFormats=14]="NumberFormats",hr[hr.CurrencyCode=15]="CurrencyCode",hr[hr.CurrencySymbol=16]="CurrencySymbol",hr[hr.CurrencyName=17]="CurrencyName",hr[hr.Currencies=18]="Currencies",hr[hr.Directionality=19]="Directionality",hr[hr.PluralCase=20]="PluralCase",hr[hr.ExtraData=21]="ExtraData",hr);const so="en-US";let Sl=so;class Ul{}class ic{resolveComponentFactory(a){throw function(y){const I=Error(`No component factory found for ${q(y)}. Did you add it to @NgModule.entryComponents?`);return I.ngComponent=y,I}(a)}}let ra=(()=>{class l{}return l.NULL=new ic,l})();function cc(){return Ra(Ot(),Oe())}function Ra(l,a){return new t(un(l,a))}let t=(()=>{class l{constructor(d){this.nativeElement=d}}return l.__NG_ELEMENT_ID__=cc,l})();function e(l){return l instanceof t?l.nativeElement:l}class n{}let r=(()=>{class l{}return l.__NG_ELEMENT_ID__=()=>function(){const d=Oe(),y=on(Ot().index,d);return(Be(y)?y:d)[11]}(),l})(),i=(()=>{class l{}return l.\u0275prov=P({token:l,providedIn:"root",factory:()=>null}),l})();class o{constructor(a){this.full=a,this.major=a.split(".")[0],this.minor=a.split(".")[1],this.patch=a.split(".").slice(2).join(".")}}const c=new o("13.1.2"),h={};function f(l,a,d,y,I=!1){for(;null!==d;){const X=a[d.index];if(null!==X&&y.push(Ze(X)),Lt(X))for(let ut=10;ut<X.length;ut++){const xt=X[ut],At=xt[1].firstChild;null!==At&&f(xt[1],xt,At,y)}const nt=d.type;if(8&nt)f(l,a,d.child,y);else if(32&nt){const ut=Ur(d,a);let xt;for(;xt=ut();)y.push(xt)}else if(16&nt){const ut=Go(a,d);if(Array.isArray(ut))y.push(...ut);else{const xt=Dr(a[16]);f(xt[1],xt,ut,y,!0)}}d=I?d.projectionNext:d.next}return y}class A{constructor(a,d){this._lView=a,this._cdRefInjectingView=d,this._appRef=null,this._attachedToViewContainer=!1}get rootNodes(){const a=this._lView,d=a[1];return f(d,a,d.firstChild,[])}get context(){return this._lView[8]}set context(a){this._lView[8]=a}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._attachedToViewContainer){const a=this._lView[3];if(Lt(a)){const d=a[8],y=d?d.indexOf(this):-1;y>-1&&(Pr(a,y),Fo(d,y))}this._attachedToViewContainer=!1}Jr(this._lView[1],this._lView)}onDestroy(a){ya(this._lView[1],this._lView,null,a)}markForCheck(){Oa(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){za(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(d,y,I){In(!0);try{za(d,y,I)}finally{In(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._attachedToViewContainer=!0}detachFromAppRef(){var y;this._appRef=null,Eo(this._lView[1],y=this._lView,y[11],2,null,null)}attachToAppRef(a){if(this._attachedToViewContainer)throw new Error("This view is already attached to a Vie
1wContainer!");this._appRef=a}}class E extends A{constructor(a){super(a),this._view=a}detectChanges(){Ha(this._view)}checkNoChanges(){!function(d){In(!0);try{Ha(d)}finally{In(!1)}}(this._view)}get context(){return null}}class C extends ra{constructor(a){super(),this.ngModule=a}resolveComponentFactory(a){const d=ee(a);return new tt(d,this.ngModule)}}function S(l){const a=[];for(let d in l)l.hasOwnProperty(d)&&a.push({propName:l[d],templateName:d});return a}const F=new Oi("SCHEDULER_TOKEN",{providedIn:"root",factory:()=>Sr});class tt extends Ul{constructor(a,d){super(),this.componentDef=a,this.ngModule=d,this.componentType=a.type,this.selector=a.selectors.map(ac).join(","),this.ngContentSelectors=a.ngContentSelectors?a.ngContentSelectors:[],this.isBoundToModule=!!d}get inputs(){return S(this.componentDef.inputs)}get outputs(){return S(this.componentDef.outputs)}create(a,d,y,I){const X=(I=I||this.ngModule)?(cr=a,An=I.injector,{get:(Fn,ar,Wn)=>{const pi=cr.get(Fn,h,Wn);return pi!==h||ar===h?pi:An.get(Fn,ar,Wn)}}):a,nt=X.get(n,dn),ut=X.get(i,null),xt=nt.createRenderer(null,this.componentDef),At=this.componentDef.selectors[0][0]||"div",$t=y?function(cr,An,Fn){if(pe(cr))return cr.selectRootElement(An,Fn===Le.ShadowDom);let ar="string"==typeof An?cr.querySelector(An):An;return ar.textContent="",ar}(xt,y,this.componentDef.encapsulation):yi(nt.createRenderer(null,this.componentDef),At,function(cr){const An=cr.toLowerCase();return"svg"===An?"http://www.w3.org/2000/svg":"math"===An?"http://www.w3.org/1998/MathML/":null}(At)),Gt=this.componentDef.onPush?576:528,ue={components:[],scheduler:Sr,clean:Ki,playerHandler:null,flags:0},Qe=Jo(0,null,null,1,0,null,null,null,null,null),an=tr(null,Qe,ue,Gt,null,null,nt,xt,ut,X);var cr,An;let yn,er;fi(an);try{const fr=function(An,Fn,ar,Wn,pi,Mr){const br=ar[1];ar[20]=An;const ir=is(br,20,2,"#host",null),ci=ir.mergedAttrs=Fn.hostAttrs;null!==ci&&(wa(ir,ci,!0),null!==An&&(z(pi,An,ci),null!==ir.classes&&Zi(pi,An,ir.classes),null!==ir.styles&&da(pi,An,ir.styles)));const si=Wn.createRenderer(An,Fn),ui=tr(ar,Ll(Fn),null,Fn.onPush?64:16,ar[20],ir,Wn,si,null,null);return br.firstCreatePass&&(es(Pi(ir,ar),br,Fn.type),Ys(br,ir),Il(ir,ar.length,1)),Ro(ar,ui),ar[20]=ui}($t,this.componentDef,an,nt,xt);if($t)if(y)z(xt,$t,["ng-version",c.full]);else{const{attrs:cr,classes:An}=function(ar){const Wn=[],pi=[];let Mr=1,br=2;for(;Mr<ar.length;){let ir=ar[Mr];if("string"==typeof ir)2===br?""!==ir&&Wn.push(ir,ar[++Mr]):8===br&&pi.push(ir);else{if(!Yi(br))break;br=ir}Mr++}return{attrs:Wn,classes:pi}}(this.componentDef.selectors[0]);cr&&z(xt,$t,cr),An&&An.length>0&&Zi(xt,$t,An.join(" "))}if(er=fn(Qe,20),void 0!==d){const cr=er.projection=[];for(let An=0;An<this.ngContentSelectors.length;An++){const Fn=d[An];cr.push(null!=Fn?Array.from(Fn):null)}}yn=function(An,Fn,ar,Wn,pi){const Mr=ar[1],br=function(si,ui,zi){const ys=Ot();si.firstCreatePass&&(zi.providersResolver&&zi.providersResolver(zi),Ks(si,ys,ui,Yo(si,ui,1,null),zi));const lo=Mi(ui,si,ys.directiveStart,ys);Dn(lo,ui);const ol=un(ys,ui);return ol&&Dn(ol,ui),lo}(Mr,ar,Fn);if(Wn.components.push(br),An[8]=br,pi&&pi.forEach(ci=>ci(br,Fn)),Fn.contentQueries){const ci=Ot();Fn.contentQueries(1,br,ci.directiveStart)}const ir=Ot();return!Mr.firstCreatePass||null===Fn.hostBindings&&null===Fn.hostAttrs||(Nt(ir.index),Bs(ar[1],ir,0,ir.directiveStart,ir.directiveEnd,Fn),Os(Fn,br)),br}(fr,this.componentDef,an,ue,[Kl]),va(Qe,an,null)}finally{Z()}return new rt(this.componentType,yn,Ra(er,an),an,er)}}class rt extends class{}{constructor(a,d,y,I,X){super(),this.location=y,this._rootLView=I,this._tNode=X,this.instance=d,this.hostView=this.changeDetectorRef=new E(I),this.componentType=a}get injector(){return new Hr(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(a){this.hostView.onDestroy(a)}}class ot{}class St{}const yt=new Map;class Et extends ot{constructor(a,d){super(),this._parent=d,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new C(this);const y=Se(a);this._bootstrapComponents=Zr(y.bootstrap),this._r3Injector=gl(a,d,[{provide:ot,useValue:this},{provide:ra,useValue:this.componentFactoryResolver}],q(a)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(a)}get(a,d=$s.THROW_IF_NOT_FOUND,y=Ae.Default){return a===$s||a===ot||a===Mo?this:this._r3Injector.get(a,d,y)}destroy(){const a=this._r3Injector;
1!a.destroyed&&a.destroy(),this.destroyCbs.forEach(d=>d()),this.destroyCbs=null}onDestroy(a){this.destroyCbs.push(a)}}class Pt extends St{constructor(a){super(),this.moduleType=a,null!==Se(a)&&function(y){const I=new Set;!function X(nt){const ut=Se(nt,!0),xt=ut.id;null!==xt&&(function(Gt,ue,Qe){if(ue&&ue!==Qe)throw new Error(`Duplicate module registered for ${Gt} - ${q(ue)} vs ${q(ue.name)}`)}(xt,yt.get(xt),nt),yt.set(xt,nt));const At=Zr(ut.imports);for(const $t of At)I.has($t)||(I.add($t),X($t))}(y)}(a)}create(a){return new Et(this.moduleType,a)}}function se(l,a,d,y){return function(X,nt,ut,xt,At,$t){const Gt=nt+ut;return Ps(X,Gt,At)?Hl(X,Gt+1,$t?xt.call($t,At):xt(At)):Bt(X,Gt+1)}(Oe(),gr(),l,a,d,y)}function Bt(l,a){const d=l[a];return d===ns?void 0:d}function Ct(l,a){const d=re();let y;const I=l+20;d.firstCreatePass?(y=function(xt,At){if(At)for(let $t=At.length-1;$t>=0;$t--){const Gt=At[$t];if(xt===Gt.name)return Gt}}(a,d.pipeRegistry),d.data[I]=y,y.onDestroy&&(d.destroyHooks||(d.destroyHooks=[])).push(I,y.onDestroy)):y=d.data[I];const X=y.factory||(y.factory=nn(y.type)),nt=We(Al);try{const ut=dr(!1),xt=X();return dr(ut),$t=d,Gt=Oe(),Qe=xt,(ue=I)>=$t.data.length&&($t.data[ue]=null,$t.blueprint[ue]=null),Gt[ue]=Qe,xt}finally{We(nt)}var $t,Gt,ue,Qe}function xe(l,a,d,y){const I=l+20,X=Oe(),nt=X[I];return X[1].data[I].pure?function(xt,At,$t,Gt,ue,Qe,an){const yn=At+$t;return yl(xt,yn,ue,Qe)?Hl(xt,yn+2,an?Gt.call(an,ue,Qe):Gt(ue,Qe)):Bt(xt,yn+2)}(X,gr(),a,nt.transform,d,y,nt):nt.transform(d,y)}function Yt(l){return a=>{setTimeout(l,void 0,a)}}const Ft=class extends p.xQ{constructor(a=!1){super(),this.__isAsync=a}emit(a){super.next(a)}subscribe(a,d,y){var I,X,nt;let ut=a,xt=d||(()=>null),At=y;if(a&&"object"==typeof a){const Gt=a;ut=null===(I=Gt.next)||void 0===I?void 0:I.bind(Gt),xt=null===(X=Gt.error)||void 0===X?void 0:X.bind(Gt),At=null===(nt=Gt.complete)||void 0===nt?void 0:nt.bind(Gt)}this.__isAsync&&(xt=Yt(xt),ut&&(ut=Yt(ut)),At&&(At=Yt(At)));const $t=super.subscribe({next:ut,error:xt,complete:At});return a instanceof s.w&&a.add($t),$t}};function He(){return this._results[$o()]()}class Xe{constructor(a=!1){this._emitDistinctChangesOnly=a,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const d=$o(),y=Xe.prototype;y[d]||(y[d]=He)}get changes(){return this._changes||(this._changes=new Ft)}get(a){return this._results[a]}map(a){return this._results.map(a)}filter(a){return this._results.filter(a)}find(a){return this._results.find(a)}reduce(a,d){return this._results.reduce(a,d)}forEach(a){this._results.forEach(a)}some(a){return this._results.some(a)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(a,d){const y=this;y.dirty=!1;const I=ls(a);(this._changesDetected=!function(nt,ut,xt){if(nt.length!==ut.length)return!1;for(let At=0;At<nt.length;At++){let $t=nt[At],Gt=ut[At];if(xt&&($t=xt($t),Gt=xt(Gt)),Gt!==$t)return!1}return!0}(y._results,I,d))&&(y._results=I,y.length=I.length,y.last=I[this.length-1],y.first=I[0])}notifyOnChanges(){this._changes&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.emit(this)}setDirty(){this.dirty=!0}destroy(){this.changes.complete(),this.changes.unsubscribe()}}let _e=(()=>{class l{}return l.__NG_ELEMENT_ID__=Fe,l})();const ke=_e,Ne=class extends ke{constructor(l,a,d){super(),this._declarationLView=l,this._declarationTContainer=a,this.elementRef=d}createEmbeddedView(l){const a=this._declarationTContainer.tViews,d=tr(this._declarationLView,a,l,16,null,a.declTNode,null,null,null,null);d[17]=this._declarationLView[this._declarationTContainer.index];const y=this._declarationLView[19];return null!==y&&(d[19]=y.createEmbeddedView(a)),va(a,d,l),new A(d)}};function Fe(){return gn(Ot(),Oe())}function gn(l,a){return 4&l.type?new Ne(a,l,Ra(l,a)):null}let $e=(()=>{class l{}return l.__NG_ELEMENT_ID__=ln,l})();function ln(){return Lr(Ot(),Oe())}const Ue=$e,Xn=class extends Ue{constructor(l,a,d){super(),this._lContainer=l,this._hostTNode=a,this._hostLView=d}get element(){return Ra(this._hostTNode,this._hostLView)}get injector(){return new Hr(this._hostTNode,this._hostLView)}get parentInjector(){const l=Bi(this._hostTNode,this._hostLView);if(Ce(l)){const a=wn(l,this._hostLView),d=Ke(l);return new Hr(a[1].data[d+8],a)}return new Hr(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(l){const a=Un(this._lContainer);return null!==a&&a[l]||null}get length(){return this._lContainer.length-10}createEmbeddedView(l,a,d){const y=l.createEmbeddedView(a||{});return this.insert(y,d),y}createComponent(l,a,d,y,I){const X=l&&!("function"==typeof l);let nt;if(X)nt=a;else{const $t=a||{};nt=$t.index,d=$t.injector,y=$t.projectableNodes,I=$t.ngModuleRef}const ut=X?l:new tt(ee(l)),xt=d||this.parentInjector;if(!I&&null==ut.ngModule&&xt){const $t=xt.get(ot,null);$t&&(I=$t)}const At=ut.create(xt,y,void 0,I);return this.insert(At.hostView,nt),At}insert(l,a){const d=l._lView,y=d[1];if(Lt(d[3])){const At=this.indexOf(l);if(-1!==At)this.detach(At);else{const $t=d[3],Gt=new Xn($t,$t[6],$t[3]);Gt.detach(Gt.indexOf(l))}}const I=this._adjustIndex(a),X=this._lContainer;
1!function($t,Gt,ue,Qe){const an=10+Qe,yn=ue.length;Qe>0&&(ue[an-1][4]=Gt),Qe<yn-10?(Gt[4]=ue[an],No(ue,10+Qe,Gt)):(ue.push(Gt),Gt[4]=null),Gt[3]=ue;const er=Gt[17];null!==er&&ue!==er&&function(An,Fn){const ar=An[9];Fn[16]!==Fn[3][3][16]&&(An[2]=!0),null===ar?An[9]=[Fn]:ar.push(Fn)}(er,Gt);const fr=Gt[19];null!==fr&&fr.insertView($t),Gt[2]|=128}(y,d,X,I);const nt=qs(I,X),ut=d[11],xt=bo(ut,X[7]);return null!==xt&&($t=y,Gt=X[6],ue=ut,yn=nt,(Qe=d)[0]=an=xt,Qe[6]=Gt,Eo($t,Qe,ue,1,an,yn)),l.attachToViewContainerRef(),No(Jn(X),I,l),l;var $t,Gt,ue,Qe,an,yn}move(l,a){return this.insert(l,a)}indexOf(l){const a=Un(this._lContainer);return null!==a?a.indexOf(l):-1}remove(l){const a=this._adjustIndex(l,-1),d=Pr(this._lContainer,a);d&&(Fo(Jn(this._lContainer),a),Jr(d[1],d))}detach(l){const a=this._adjustIndex(l,-1),d=Pr(this._lContainer,a);return d&&null!=Fo(Jn(this._lContainer),a)?new A(d):null}_adjustIndex(l,a=0){return l??this.length+a}};function Un(l){return l[8]}function Jn(l){return l[8]||(l[8]=[])}function Lr(l,a){let d;const y=a[l.index];if(Lt(y))d=y;else{let I;if(8&l.type)I=Ze(y);else{const X=a[11];I=X.createComment("");const nt=un(l,a);cs(X,bo(X,nt),I,(At=nt,pe(xt=X)?xt.nextSibling(At):At.nextSibling),!1)}a[l.index]=d=Po(y,a,I,l),Ro(a,d)}var xt,At;return new Xn(d,l,a)}class bi{constructor(a){this.queryList=a,this.matches=null}clone(){return new bi(this.queryList)}setDirty(){this.queryList.setDirty()}}class ss{constructor(a=[]){this.queries=a}createEmbeddedView(a){const d=a.queries;if(null!==d){const y=null!==a.contentQueries?a.contentQueries[0]:d.length,I=[];for(let X=0;X<y;X++){const nt=d.getByIndex(X);I.push(this.queries[nt.indexInDeclarationView].clone())}return new ss(I)}return null}insertView(a){this.dirtyQueriesWithMatches(a)}detachView(a){this.dirtyQueriesWithMatches(a)}dirtyQueriesWithMatches(a){for(let d=0;d<this.queries.length;d++)null!==Fr(a,d).matches&&this.queries[d].setDirty()}}class Ti{constructor(a,d,y=null){this.predicate=a,this.flags=d,this.read=y}}class Rn{constructor(a=[]){this.queries=a}elementStart(a,d){for(let y=0;y<this.queries.length;y++)this.queries[y].elementStart(a,d)}elementEnd(a){for(let d=0;d<this.queries.length;d++)this.queries[d].elementEnd(a)}embeddedTView(a){let d=null;for(let y=0;y<this.length;y++){const I=null!==d?d.length:0,X=this.getByIndex(y).embeddedTView(a,I);X&&(X.indexInDeclarationView=y,null!==d?d.push(X):d=[X])}return null!==d?new Rn(d):null}template(a,d){for(let y=0;y<this.queries.length;y++)this.queries[y].template(a,d)}getByIndex(a){return this.queries[a]}get length(){return this.queries.length}track(a){this.queries.push(a)}}class Cr{constructor(a,d=-1){this.metadata=a,this.matches=null,this.indexInDeclarationView=-1,this.crossesNgTemplate=!1,this._appliesToNextNode=!0,this._declarationNodeIndex=d}elementStart(a,d){this.isApplyingToNode(d)&&this.matchTNode(a,d)}elementEnd(a){this._declarationNodeIndex===a.index&&(this._appliesToNextNode=!1)}template(a,d){this.elementStart(a,d)}embeddedTView(a,d){return this.isApplyingToNode(a)?(this.crossesNgTemplate=!0,this.addMatch(-a.index,d),new Cr(this.metadata)):null}isApplyingToNode(a){if(this._appliesToNextNode&&1!=(1&this.metadata.flags)){const d=this._declarationNodeIndex;let y=a.parent;for(;null!==y&&8&y.type&&y.index!==d;)y=y.parent;return d===(null!==y?y.index:-1)}return this._appliesToNextNode}matchTNode(a,d){const y=this.metadata.predicate;if(Array.isArray(y))for(let I=0;I<y.length;I++){const X=y[I];this.matchTNodeWithReadOption(a,d,Tn(d,X)),this.matchTNodeWithReadOption(a,d,Vi(d,a,X,!1,!1))}else y===_e?4&d.type&&this.matchTNodeWithReadOption(a,d,-1):this.matchTNodeWithReadOption(a,d,Vi(d,a,y,!1,!1))}matchTNodeWithReadOption(a,d,y){if(null!==y){const I=this.metadata.read;if(null!==I)if(I===t||I===$e||I===_e&&4&d.type)this.addMatch(d.index,-2);else{const X=Vi(d,a,I,!1,!1);null!==X&&this.addMatch(d.index,X)}else this.addMatch(d.index,y)}}addMatch(a,d){null===this.matches?this.matches=[a,d]:this.matches.push(a,d)}}function Tn(l,a){const d=l.localNames;if(null!==d)for(let y=0;y<d.length;y+=2)if(d[y]===a)return d[y+1];return null}function Ge(l,a,d,y){return-1===d?(nt=l,11&(X=a).type?Ra(X,nt):4&X.type?gn(X,nt):null):-2===d?function(X,nt,ut){return ut===t?Ra(nt,X):ut===_e?gn(nt,X):ut===$e?Lr(nt,X):void 0}(l,a,y):Mi(l,l[1],d,a);var X,nt}function lr(l,a,d,y){const I=a[19].queries[y];if(null===I.matches){const X=l.data,nt=d.matches,ut=[];for(let xt=0;xt<nt.length;xt+=2){const At=nt[xt];ut.push(At<0?null:Ge(a,X[At],nt[xt+1],d.metadata.read))}I.matches=ut}return I.matches}function mr(l,a,d,y){const I=l.queries.getByIndex(d),X=I.matches;if(null!==X){const nt=lr(l,a,I,d);for(let ut=0;ut<X.length;ut+=2){const xt=X[ut];if(xt>0)y.push(nt[ut/2]);else{const At=X[ut+1],$t=a[-xt];for(let Gt=10;Gt<$t.length;Gt++){const ue=$t[Gt];ue[17]===ue[3]&&mr(ue[1],ue,At,y)}if(null!==$t[9]){const Gt=$t[9];for(let ue=0;ue<Gt.length;ue++){const Qe=Gt[ue];mr(Qe[1],Qe,At,y)}}}}}return y}function xr(l){const a=Oe(),d=re(),y=wi();Or(y+1);const I=Fr(d,y);if(l.dirty&&Nn(a)===(2==(2&I.metadata.flags))){if(null===I.matches)l.reset([]);else{const X=I.crossesNgTemplate?mr(d,a,y,[]):lr(d,a,I,y);l.reset(X,e),l.notifyOnChanges()}return!0}return!1}function or(l,a,d){const y=re();y.firstCreatePass&&(Hs(y,new Ti(l,a,d),-1),2==(2&a)&&(y.staticViewQueries=!0)),ni(y,Oe(),a)}function hi(l,a,d,y){const I=re();if(I.firstCreatePass){const X=Ot();Hs(I,new Ti(a,d,y),X.index),function(ut,xt){const At=ut.contentQueries||(ut.contentQueries=[]);xt!==(At.length?At[At.length-1]:-1)&&At.push(ut.queries.length-1,xt)}(I,l),2==(2&d)&&(I.staticContentQueries=!0)}
1ni(I,Oe(),d)}function Qr(){return a=Oe(),d=wi(),a[19].queries[d].queryList;var a,d}function ni(l,a,d){const y=new Xe(4==(4&d));ya(l,a,y,y.destroy),null===a[19]&&(a[19]=new ss),a[19].queries.push(new bi(y))}function Hs(l,a,d){null===l.queries&&(l.queries=new Rn),l.queries.track(new Cr(a,d))}function Fr(l,a){return l.queries.getByIndex(a)}function mi(...l){}const pr=new Oi("Application Initializer");let kr=(()=>{class l{constructor(d){this.appInits=d,this.resolve=mi,this.reject=mi,this.initialized=!1,this.done=!1,this.donePromise=new Promise((y,I)=>{this.resolve=y,this.reject=I})}runInitializers(){if(this.initialized)return;const d=[],y=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let I=0;I<this.appInits.length;I++){const X=this.appInits[I]();if(Wa(X))d.push(X);else if(bl(X)){const nt=new Promise((ut,xt)=>{X.subscribe({complete:ut,error:xt})});d.push(nt)}}Promise.all(d).then(()=>{y()}).catch(I=>{this.reject(I)}),0===d.length&&y(),this.initialized=!0}}return l.\u0275fac=function(a){return new(a||l)(vi(pr,8))},l.\u0275prov=P({token:l,factory:l.\u0275fac}),l})();const ri=new Oi("AppId"),Kr={provide:ri,useFactory:function(){return`${ai()}${ai()}${ai()}`},deps:[]};function ai(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const Fi=new Oi("Platform Initializer"),ki=new Oi("Platform ID"),Wi=new Oi("appBootstrapListener");let fs=(()=>{class l{log(d){console.log(d)}warn(d){console.warn(d)}}return l.\u0275fac=function(a){return new(a||l)},l.\u0275prov=P({token:l,factory:l.\u0275fac}),l})();const gs=new Oi("LocaleId"),oo=new Oi("DefaultCurrencyCode");class tl{constructor(a,d){this.ngModuleFactory=a,this.componentFactories=d}}let Ho=(()=>{class l{compileModuleSync(d){return new Pt(d)}compileModuleAsync(d){return Promise.resolve(this.compileModuleSync(d))}compileModuleAndAllComponentsSync(d){const y=this.compileModuleSync(d),I=Zr(Se(d).declarations).reduce((X,nt)=>{const ut=ee(nt);return ut&&X.push(new tt(ut)),X},[]);return new tl(y,I)}compileModuleAndAllComponentsAsync(d){return Promise.resolve(this.compileModuleAndAllComponentsSync(d))}clearCache(){}clearCacheFor(d){}getModuleId(d){}}return l.\u0275fac=function(a){return new(a||l)},l.\u0275prov=P({token:l,factory:l.\u0275fac}),l})();const el=Promise.resolve(0);function vs(l){typeof Zone>"u"?el.then(()=>{l&&l.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",l)}class Qi{constructor({enableLongStackTrace:a=!1,shouldCoalesceEventChangeDetection:d=!1,shouldCoalesceRunChangeDetection:y=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Ft(!1),this.onMicrotaskEmpty=new Ft(!1),this.onStable=new Ft(!1),this.onError=new Ft(!1),typeof Zone>"u")throw new Error("In this configuration Angular requires Zone.js");Zone.assertZonePatched();const I=this;I._nesting=0,I._outer=I._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(I._inner=I._inner.fork(new Zone.TaskTrackingZoneSpec)),a&&Zone.longStackTraceZoneSpec&&(I._inner=I._inner.fork(Zone.longStackTraceZoneSpec)),I.shouldCoalesceEventChangeDetection=!y&&d,I.shouldCoalesceRunChangeDetection=y,I.lastRequestAnimationFrameId=-1,I.nativeRequestAnimationFrame=function(){let nt=Mt.requestAnimationFrame,ut=Mt.cancelAnimationFrame;if(typeof Zone<"u"&&nt&&ut){const xt=nt[Zone.__symbol__("OriginalDelegate")];xt&&(nt=xt);const At=ut[Zone.__symbol__("OriginalDelegate")];At&&(ut=At)}return{nativeRequestAnimationFrame:nt,nativeCancelAnimationFrame:ut}}().nativeRequestAnimationFrame,function(nt){const ut=()=>{var At;(At=nt).isCheckStableRunning||-1!==At.lastRequestAnimationFrameId||(At.lastRequestAnimationFrameId=At.nativeRequestAnimationFrame.call(Mt,()=>{At.fakeTopEventTask||(At.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{At.lastRequestAnimationFrameId=-1,he(At),At.isCheckStableRunning=!0,Xt(At),At.isCheckStableRunning=!1},void 0,()=>{},()=>{})),At.fakeTopEventTask.invoke()}),he(At))};nt._inner=nt._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(xt,At,$t,Gt,ue,Qe)=>{try{return ve(nt),xt.invokeTask($t,Gt,ue,Qe)}finally{(nt.shouldCoalesceEventChangeDetection&&"eventTask"===Gt.type||nt.shouldCoalesceRunChangeDetection)&&ut(),Sn(nt)}},onInvoke:(xt,At,$t,Gt,ue,Qe,an)=>{try{return ve(nt),xt.invoke($t,Gt,ue,Qe,an)}finally{nt.shouldCoalesceRunChangeDetection&&ut(),Sn(nt)}},onHasTask:(xt,At,$t,Gt)=>{xt.hasTask($t,Gt),At===$t&&("microTask"==Gt.change?(nt._hasPendingMicrotasks=Gt.microTask,he(nt),Xt(nt)):"macroTask"==Gt.change&&(nt.hasPendingMacrotasks=Gt.macroTask))},onHandleError:(xt,At,$t,Gt)=>(xt.handleError($t,Gt),nt.runOutsideAngular(()=>nt.onError.emit(Gt)),!1)})}(I)}
vendor: 4,218 bytes, line 1
1static isInAngularZone(){return!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!Qi.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")}static assertNotInAngularZone(){if(Qi.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")}run(a,d,y){return this._inner.run(a,d,y)}runTask(a,d,y,I){const X=this._inner,nt=X.scheduleEventTask("NgZoneEvent: "+I,a,nl,mi,mi);try{return X.runTask(nt,d,y)}finally{X.cancelTask(nt)}}runGuarded(a,d,y){return this._inner.runGuarded(a,d,y)}runOutsideAngular(a){return this._outer.run(a)}}const nl={};function Xt(l){if(0==l._nesting&&!l.hasPendingMicrotasks&&!l.isStable)try{l._nesting++,l.onMicrotaskEmpty.emit(null)}finally{if(l._nesting--,!l.hasPendingMicrotasks)try{l.runOutsideAngular(()=>l.onStable.emit(null))}finally{l.isStable=!0}}}function he(l){l.hasPendingMicrotasks=!!(l._hasPendingMicrotasks||(l.shouldCoalesceEventChangeDetection||l.shouldCoalesceRunChangeDetection)&&-1!==l.lastRequestAnimationFrameId)}function ve(l){l._nesting++,l.isStable&&(l.isStable=!1,l.onUnstable.emit(null))}function Sn(l){l._nesting--,Xt(l)}class _n{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Ft,this.onMicrotaskEmpty=new Ft,this.onStable=new Ft,this.onError=new Ft}run(a,d,y){return a.apply(d,y)}runGuarded(a,d,y){return a.apply(d,y)}runOutsideAngular(a){return a()}runTask(a,d,y,I){return a.apply(d,y)}}let nr=(()=>{class l{constructor(d){this._ngZone=d,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),d.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{Qi.assertNotInAngularZone(),vs(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())vs(()=>{for(;0!==this._callbacks.length;){let d=this._callbacks.pop();clearTimeout(d.timeoutId),d.doneCb(this._didWork)}this._didWork=!1});else{let d=this.getPendingTasks();this._callbacks=this._callbacks.filter(y=>!y.updateCb||!y.updateCb(d)||(clearTimeout(y.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(d=>({source:d.source,creationLocation:d.creationLocation,data:d.data})):[]}addCallback(d,y,I){let X=-1;y&&y>0&&(X=setTimeout(()=>{this._callbacks=this._callbacks.filter(nt=>nt.timeoutId!==X),d(this._didWork,this.getPendingTasks())},y)),this._callbacks.push({doneCb:d,timeoutId:X,updateCb:I})}whenStable(d,y,I){if(I&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(d,y,I),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(d,y,I){return[]}}return l.\u0275fac=function(a){return new(a||l)(vi(Qi))},l.\u0275prov=P({token:l,factory:l.\u0275fac}),l})(),rr=(()=>{class l{constructor(){this._applications=new Map,li.addToWindow(this)}registerApplication(d,y){this._applications.set(d,y)}unregisterApplication(d){this._applications.delete(d)}unregisterAllApplications(){this._applications.clear()}getTestability(d){return this._applications.get(d)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(d,y=!0){return li.findTestabilityInTree(this,d,y)}}return l.\u0275fac=function(a){return new(a||l)},l.\u0275prov=P({token:l,factory:l.\u0275fac}),l})();function gi(l){li=l}let Ir,li=new class $r{addToWindow(a){}
1findTestabilityInTree(a,d,y){return null}};const ti=new Oi("AllowMultipleToken");class Ar{constructor(a,d){this.name=a,this.token=d}}function di(l,a,d=[]){const y=`Platform: ${a}`,I=new Oi(y);return(X=[])=>{let nt=Rr();if(!nt||nt.injector.get(ti,!1))if(l)l(d.concat(X).concat({provide:I,useValue:!0}));else{const ut=d.concat(X).concat({provide:I,useValue:!0},{provide:Ko,useValue:"platform"});!function(At){if(Ir&&!Ir.destroyed&&!Ir.injector.get(ti,!1))throw new m(400,"");Ir=At.get(Ii);const $t=At.get(Fi,null);$t&&$t.forEach(Gt=>Gt())}($s.create({providers:ut,name:y}))}return function(xt){const At=Rr();if(!At)throw new m(401,"");return At}()}}function Rr(){return Ir&&!Ir.destroyed?Ir:null}let Ii=(()=>{class l{constructor(d){this._injector=d,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(d,y){const I=function(ut,xt){let At;return At="noop"===ut?new _n:("zone.js"===ut?void 0:ut)||new Qi({enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!!xt?.ngZoneEventCoalescing,shouldCoalesceRunChangeDetection:!!xt?.ngZoneRunCoalescing}),At}(y?y.ngZone:void 0,{ngZoneEventCoalescing:y&&y.ngZoneEventCoalescing||!1,ngZoneRunCoalescing:y&&y.ngZoneRunCoalescing||!1}),X=[{provide:Qi,useValue:I}];return I.run(()=>{const nt=$s.create({providers:X,parent:this.injector,name:d.moduleType.name}),ut=d.create(nt),xt=ut.injector.get(Xr,null);if(!xt)throw new m(402,"");return I.runOutsideAngular(()=>{const At=I.onError.subscribe({next:$t=>{xt.handleError($t)}});ut.onDestroy(()=>{$i(this._modules,ut),At.unsubscribe()})}),function($t,Gt,ue){try{const Qe=ue();return Wa(Qe)?Qe.catch(an=>{throw Gt.runOutsideAngular(()=>$t.handleError(an)),an}):Qe}catch(Qe){throw Gt.runOutsideAngular(()=>$t.handleError(Qe)),Qe}}(xt,I,()=>{const At=ut.injector.get(kr);return At.runInitializers(),At.donePromise.then(()=>{return function x(l,a){null==l&&function(y,I,X,nt){throw new Error(`ASSERTION ERROR: ${y} [Expected=> null != ${I} <=Actual]`)}(a,l)}(Gt=ut.injector.get(gs,so)||so,"Expected localeId to be defined"),"string"==typeof Gt&&(Sl=Gt.toLowerCase().replace(/_/g,"-")),this._moduleDoBootstrap(ut),ut;var Gt})})})}bootstrapModule(d,y=[]){const I=Do({},y);return function(nt,ut,xt){const At=new Pt(xt);return Promise.resolve(At)}(0,0,d).then(X=>this.bootstrapModuleFactory(X,I))}_moduleDoBootstrap(d){const y=d.injector.get(ao);if(d._bootstrapComponents.length>0)d._bootstrapComponents.forEach(I=>y.bootstrap(I));else{if(!d.instance.ngDoBootstrap)throw new m(403,"");d.instance.ngDoBootstrap(y)}this._modules.push(d)}onDestroy(d){this._destroyListeners.push(d)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new m(404,"");this._modules.slice().forEach(d=>d.destroy()),this._destroyListeners.forEach(d=>d()),this._destroyed=!0}get destroyed(){return this._destroyed}}return l.\u0275fac=function(a){return new(a||l)(vi($s))},l.\u0275prov=P({token:l,factory:l.\u0275fac}),l})();function Do(l,a){return Array.isArray(a)?a.reduce(Do,l):Object.assign(Object.assign({},l),a)}let ao=(()=>{class l{constructor(d,y,I,X,nt){this._zone=d,this._injector=y,this._exceptionHandler=I,this._componentFactoryResolver=X,this._initStatus=nt,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const ut=new j.y(At=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{At.next(this._stable),At.complete()})}),xt=new j.y(At=>{let $t;this._zone.runOutsideAngular(()=>{$t=this._zone.onStable.subscribe(()=>{Qi.assertNotInAngularZone(),vs(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,At.next(!0))})})});const Gt=this._zone.onUnstable.subscribe(()=>{Qi.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{At.next(!1)}))});return()=>{$t.unsubscribe(),Gt.unsubscribe()}});this.isStable=(0,k.T)(ut,xt.pipe($t=>{return(0,V.x)()((ue=_,function(an){let yn;yn="function"==typeof ue?ue:function(){return ue};const er=Object.create(an,b.N);return er.source=an,er.subjectFactory=yn,er})($t));var ue}))}
vendor: 12,566 bytes, line 1
1bootstrap(d,y){if(!this._initStatus.done)throw new m(405,"");let I;I=d instanceof Ul?d:this._componentFactoryResolver.resolveComponentFactory(d),this.componentTypes.push(I.componentType);const X=I.isBoundToModule?void 0:this._injector.get(ot),nt=I.create($s.NULL,[],y||I.selector,X),ut=nt.location.nativeElement,xt=nt.injector.get(nr,null),At=xt&&nt.injector.get(rr);return xt&&At&&At.registerApplication(ut,xt),nt.onDestroy(()=>{this.detachView(nt.hostView),$i(this.components,nt),At&&At.unregisterApplication(ut)}),this._loadComponent(nt),nt}tick(){if(this._runningTick)throw new m(101,"");try{this._runningTick=!0;for(let d of this._views)d.detectChanges()}catch(d){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(d))}finally{this._runningTick=!1}}attachView(d){const y=d;this._views.push(y),y.attachToAppRef(this)}detachView(d){const y=d;$i(this._views,y),y.detachFromAppRef()}_loadComponent(d){this.attachView(d.hostView),this.tick(),this.components.push(d),this._injector.get(Wi,[]).concat(this._bootstrapListeners).forEach(y=>y(d))}ngOnDestroy(){this._views.slice().forEach(d=>d.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}get viewCount(){return this._views.length}}return l.\u0275fac=function(a){return new(a||l)(vi(Qi),vi($s),vi(Xr),vi(ra),vi(kr))},l.\u0275prov=P({token:l,factory:l.\u0275fac}),l})();function $i(l,a){const d=l.indexOf(a);d>-1&&l.splice(d,1)}let Bn=!0;function vn(){Bn=!1}let Gl=(()=>{class l{}return l.__NG_ELEMENT_ID__=Wl,l})();function Wl(l){return function(d,y,I){if(Jt(d)&&!I){const X=on(d.index,y);return new A(X,X)}return 47&d.type?new A(y[16],y):null}(Ot(),Oe(),16==(16&l))}class uc{constructor(){}supports(a){return Ua(a)}create(a){return new dc(a)}}const hc=(l,a)=>a;class dc{constructor(a){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=a||hc}forEachItem(a){let d;for(d=this._itHead;null!==d;d=d._next)a(d)}forEachOperation(a){let d=this._itHead,y=this._removalsHead,I=0,X=null;for(;d||y;){const nt=!y||d&&d.currentIndex<ql(y,I,X)?d:y,ut=ql(nt,I,X),xt=nt.currentIndex;if(nt===y)I--,y=y._nextRemoved;else if(d=d._next,null==nt.previousIndex)I++;else{X||(X=[]);const At=ut-I,$t=xt-I;if(At!=$t){for(let Gt=0;Gt<At;Gt++){const ue=Gt<X.length?X[Gt]:X[Gt]=0,Qe=ue+Gt;$t<=Qe&&Qe<At&&(X[Gt]=ue+1)}X[nt.previousIndex]=$t-At}}ut!==xt&&a(nt,ut,xt)}}forEachPreviousItem(a){let d;for(d=this._previousItHead;null!==d;d=d._nextPrevious)a(d)}forEachAddedItem(a){let d;for(d=this._additionsHead;null!==d;d=d._nextAdded)a(d)}forEachMovedItem(a){let d;for(d=this._movesHead;null!==d;d=d._nextMoved)a(d)}forEachRemovedItem(a){let d;for(d=this._removalsHead;null!==d;d=d._nextRemoved)a(d)}forEachIdentityChange(a){let d;for(d=this._identityChangesHead;null!==d;d=d._nextIdentityChange)a(d)}diff(a){if(null==a&&(a=[]),!Ua(a))throw new Error(`Error trying to diff '${q(a)}'. Only arrays and iterables are allowed`);return this.check(a)?this:null}onDestroy(){}check(a){this._reset();let d,y,I,X=this._itHead,nt=!1;if(Array.isArray(a)){this.length=a.length;for(let ut=0;ut<this.length;ut++)y=a[ut],I=this._trackByFn(ut,y),null!==X&&Object.is(X.trackById,I)?(nt&&(X=this._verifyReinsertion(X,y,I,ut)),Object.is(X.item,y)||this._addIdentityChange(X,y)):(X=this._mismatch(X,y,I,ut),nt=!0),X=X._next}else d=0,function(xt,At){if(Array.isArray(xt))for(let $t=0;$t<xt.length;$t++)At(xt[$t]);else{const $t=xt[$o()]();let Gt;for(;!(Gt=$t.next()).done;)At(Gt.value)}}(a,ut=>{I=this._trackByFn(d,ut),null!==X&&Object.is(X.trackById,I)?(nt&&(X=this._verifyReinsertion(X,ut,I,d)),Object.is(X.item,ut)||this._addIdentityChange(X,ut)):(X=this._mismatch(X,ut,I,d),nt=!0),X=X._next,d++}),this.length=d;return this._truncate(X),this.collection=a,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let a;for(a=this._previousItHead=this._itHead;null!==a;a=a._next)a._nextPrevious=a._next;for(a=this._additionsHead;null!==a;a=a._nextAdded)a.previousIndex=a.currentIndex;for(this._additionsHead=this._additionsTail=null,a=this._movesHead;null!==a;a=a._nextMoved)a.previousIndex=a.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(a,d,y,I){let X;return null===a?X=this._itTail:(X=a._prev,this._remove(a)),null!==(a=null===this._unlinkedRecords?null:this._unlinkedRecords.get(y,null))?(Object.is(a.item,d)||this._addIdentityChange(a,d),this._reinsertAfter(a,X,I)):null!==(a=null===this._linkedRecords?null:this._linkedRecords.get(y,I))?(Object.is(a.item,d)||this._addIdentityChange(a,d),this._moveAfter(a,X,I)):a=this._addAfter(new ia(d,y),X,I),a}_verifyReinsertion(a,d,y,I){let X=null===this._unlinkedRecords?null:this._unlinkedRecords.get(y,null);return null!==X?a=this._reinsertAfter(X,a._prev,I):a.currentIndex!=I&&(a.currentIndex=I,this._addToMoves(a,I)),a}_truncate(a){for(;null!==a;){const d=a._next;this._addToRemovals(this._unlink(a)),a=d}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(a,d,y){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(a);const I=a._prevRemoved,X=a._nextRemoved;return null===I?this._removalsHead=X:I._nextRemoved=X,null===X?this._removalsTail=I:X._prevRemoved=I,this._insertAfter(a,d,y),this._addToMoves(a,y),a}_moveAfter(a,d,y){return this._unlink(a),this._insertAfter(a,d,y),this._addToMoves(a,y),a}_addAfter(a,d,y){return this._insertAfter(a,d,y),this._additionsTail=null===this._additionsTail?this._additionsHead=a:this._additionsTail._nextAdded=a,a}_insertAfter(a,d,y){const I=null===d?this._itHead:d._next;return a._next=I,a._prev=d,null===I?this._itTail=a:I._prev=a,null===d?this._itHead=a:d._next=a,null===this._linkedRecords&&(this._linkedRecords=new Ql),this._linkedRecords.put(a),a.currentIndex=y,a}_remove(a){return this._addToRemovals(this._unlink(a))}_unlink(a){null!==this._linkedRecords&&this._linkedRecords.remove(a);const d=a._prev,y=a._next;return null===d?this._itHead=y:d._next=y,null===y?this._itTail=d:y._prev=d,a}_addToMoves(a,d){return a.previousIndex===d||(this._movesTail=null===this._movesTail?this._movesHead=a:this._movesTail._nextMoved=a),a}_addToRemovals(a){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Ql),this._unlinkedRecords.put(a),a.currentIndex=null,a._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=a,a._prevRemoved=null):(a._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=a),a}_addIdentityChange(a,d){return a.item=d,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=a:this._identityChangesTail._nextIdentityChange=a,a}}class ia{constructor(a,d){this.item=a,this.trackById=d,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class pc{constructor(){this._head=null,this._tail=null}add(a){null===this._head?(this._head=this._tail=a,a._nextDup=null,a._prevDup=null):(this._tail._nextDup=a,a._prevDup=this._tail,a._nextDup=null,this._tail=a)}get(a,d){let y;for(y=this._head;null!==y;y=y._nextDup)if((null===d||d<=y.currentIndex)&&Object.is(y.trackById,a))return y;return null}remove(a){const d=a._prevDup,y=a._nextDup;return null===d?this._head=y:d._nextDup=y,null===y?this._tail=d:y._prevDup=d,null===this._head}}class Ql{constructor(){this.map=new Map}put(a){const d=a.trackById;let y=this.map.get(d);y||(y=new pc,this.map.set(d,y)),y.add(a)}get(a,d){const y=this.map.get(a);return y?y.get(a,d):null}remove(a){const d=a.trackById;return this.map.get(d).remove(a)&&this.map.delete(d),a}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function ql(l,a,d){const y=l.previousIndex;if(null===y)return y;let I=0;return d&&y<d.length&&(I=d[y]),y+a+I}class Pl{constructor(){}supports(a){return a instanceof Map||Ga(a)}create(){return new Ds}}class Ds{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(a){let d;for(d=this._mapHead;null!==d;d=d._next)a(d)}forEachPreviousItem(a){let d;for(d=this._previousMapHead;null!==d;d=d._nextPrevious)a(d)}forEachChangedItem(a){let d;for(d=this._changesHead;null!==d;d=d._nextChanged)a(d)}forEachAddedItem(a){let d;for(d=this._additionsHead;null!==d;d=d._nextAdded)a(d)}forEachRemovedItem(a){let d;for(d=this._removalsHead;null!==d;d=d._nextRemoved)a(d)}diff(a){if(a){if(!(a instanceof Map||Ga(a)))throw new Error(`Error trying to diff '${q(a)}'. Only maps and objects are allowed`)}else a=new Map;return this.check(a)?this:null}onDestroy(){}check(a){this._reset();let d=this._mapHead;if(this._appendAfter=null,this._forEach(a,(y,I)=>{if(d&&d.key===I)this._maybeAddToChanges(d,y),this._appendAfter=d,d=d._next;else{const X=this._getOrCreateRecordForKey(I,y);d=this._insertBeforeOrAppend(d,X)}}),d){d._prev&&(d._prev._next=null),this._removalsHead=d;for(let y=d;null!==y;y=y._nextRemoved)y===this._mapHead&&(this._mapHead=null),this._records.delete(y.key),y._nextRemoved=y._next,y.previousValue=y.currentValue,y.currentValue=null,y._prev=null,y._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(a,d){if(a){const y=a._prev;return d._next=a,d._prev=y,a._prev=d,y&&(y._next=d),a===this._mapHead&&(this._mapHead=d),this._appendAfter=a,a}return this._appendAfter?(this._appendAfter._next=d,d._prev=this._appendAfter):this._mapHead=d,this._appendAfter=d,null}_getOrCreateRecordForKey(a,d){if(this._records.has(a)){const I=this._records.get(a);this._maybeAddToChanges(I,d);const X=I._prev,nt=I._next;return X&&(X._next=nt),nt&&(nt._prev=X),I._next=null,I._prev=null,I}const y=new Ns(a);return this._records.set(a,y),y.currentValue=d,this._addToAdditions(y),y}_reset(){if(this.isDirty){let a;for(this._previousMapHead=this._mapHead,a=this._previousMapHead;null!==a;a=a._next)a._nextPrevious=a._next;for(a=this._changesHead;null!==a;a=a._nextChanged)a.previousValue=a.currentValue;for(a=this._additionsHead;null!=a;a=a._nextAdded)a.previousValue=a.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(a,d){Object.is(d,a.currentValue)||(a.previousValue=a.currentValue,a.currentValue=d,this._addToChanges(a))}_addToAdditions(a){null===this._additionsHead?this._additionsHead=this._additionsTail=a:(this._additionsTail._nextAdded=a,this._additionsTail=a)}_addToChanges(a){null===this._changesHead?this._changesHead=this._changesTail=a:(this._changesTail._nextChanged=a,this._changesTail=a)}_forEach(a,d){a instanceof Map?a.forEach(d):Object.keys(a).forEach(y=>d(a[y],y))}}class Ns{constructor(a){this.key=a,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function Zl(){return new rl([new uc])}let rl=(()=>{class l{constructor(d){this.factories=d}static create(d,y){if(null!=y){const I=y.factories.slice();d=d.concat(I)}return new l(d)}static extend(d){return{provide:l,useFactory:y=>l.create(d,y||Zl()),deps:[[l,new Wr,new ws]]}}find(d){const y=this.factories.find(I=>I.supports(d));if(null!=y)return y;throw new Error(`Cannot find a differ supporting object '${d}' of type '${X=d,X.name||typeof X}'`);var X}}return l.\u0275prov=P({token:l,providedIn:"root",factory:Zl}),l})();function il(){return new sl([new Pl])}let sl=(()=>{class l{constructor(d){this.factories=d}
1static create(d,y){if(y){const I=y.factories.slice();d=d.concat(I)}return new l(d)}static extend(d){return{provide:l,useFactory:y=>l.create(d,y||il()),deps:[[l,new Wr,new ws]]}}find(d){const y=this.factories.find(I=>I.supports(d));if(y)return y;throw new Error(`Cannot find a differ supporting object '${d}'`)}}return l.\u0275prov=P({token:l,providedIn:"root",factory:il}),l})();const sc=[new Pl],oc=new rl([new uc]),Ma=new sl(sc),fc=di(null,"core",[{provide:ki,useValue:"unknown"},{provide:Ii,deps:[$s]},{provide:rr,deps:[]},{provide:fs,deps:[]}]),mc=[{provide:ao,useClass:ao,deps:[Qi,$s,Xr,ra,kr]},{provide:F,deps:[Qi],useFactory:function(a){let d=[];return a.onStable.subscribe(()=>{for(;d.length;)d.pop()()}),function(y){d.push(y)}}},{provide:kr,useClass:kr,deps:[[new ws,pr]]},{provide:Ho,useClass:Ho,deps:[]},Kr,{provide:rl,useFactory:function(){return oc},deps:[]},{provide:sl,useFactory:function(){return Ma},deps:[]},{provide:gs,useFactory:function(a){return a||typeof $localize<"u"&&$localize.locale||so},deps:[[new po(gs),new ws,new Wr]]},{provide:oo,useValue:"USD"}];let La=(()=>{class l{constructor(d){}}return l.\u0275fac=function(a){return new(a||l)(vi(ao))},l.\u0275mod=qe({type:l}),l.\u0275inj=Q({providers:mc}),l})()},9042:(u,D,v)=>{function p(H){for(let Y in H){let q=H[Y]||"";switch(Y){case"display":H.display="flex"===q?["-webkit-flex","flex"]:"inline-flex"===q?["-webkit-inline-flex","inline-flex"]:q;break;case"align-items":case"align-self":case"align-content":case"flex":case"flex-basis":case"flex-flow":case"flex-grow":case"flex-shrink":case"flex-wrap":case"justify-content":H["-webkit-"+Y]=q;break;case"flex-direction":q=q||"row",H["-webkit-flex-direction"]=q,H["flex-direction"]=q;break;case"order":H.order=H["-webkit-"+Y]=isNaN(+q)?"0":q}}return H}v.d(D,{iQ:()=>j,GK:()=>p,Ar:()=>k,kt:()=>_,tj:()=>B});const s="inline",j=["row","column","row-reverse","column-reverse"];function k(H){let[Y,q,it]=b(H);return function(at,J=null,ht=!1){return{display:ht?"inline-flex":"flex","box-sizing":"border-box","flex-direction":at,"flex-wrap":J||null}}(Y,q,it)}function b(H){H=H?H.toLowerCase():"";let[Y,q,it]=H.split(" ");return j.find(vt=>vt===Y)||(Y=j[0]),q===s&&(q=it!==s?it:"",it=s),[Y,V(q),!!it]}function B(H){let[Y]=b(H);return Y.indexOf("row")>-1}function V(H){if(H)switch(H.toLowerCase()){case"reverse":case"wrap-reverse":case"reverse-wrap":H="wrap-reverse";break;case"no":case"none":case"nowrap":H="nowrap";break;default:H="wrap"}return H}function _(H,...Y){if(null==H)throw TypeError("Cannot convert undefined or null to object");for(let q of Y)if(null!=q)for(let it in q)q.hasOwnProperty(it)&&(H[it]=q[it]);return H}},3270:(u,D,v)=>{v.d(D,{Bs:()=>M,iR:()=>et,IR:()=>it,g5:()=>J,WU:()=>ht,yB:()=>mt,wY:()=>m,QI:()=>g,RK:()=>x,Ot:()=>ct});var p=v(6435),s=v(9808),j=v(591),k=v(2916),b=v(6787),B=v(8929),V=v(9042),_=v(2198),H=v(2868);const Y={provide:p.tb,useFactory:function(ne,bt){return()=>{if((0,s.NF)(bt)){const kt=Array.from(ne.querySelectorAll(`[class*=${q}]`)),de=/\bflex-layout-.+?\b/g;kt.forEach(Wt=>{Wt.classList.contains(`${q}ssr`)&&Wt.parentNode?Wt.parentNode.removeChild(Wt):Wt.className.replace(de,"")})}}},deps:[s.K0,p.Lbi],multi:!0},q="flex-layout-";let it=(()=>{class Rt{}return Rt.\u0275fac=function(ne){return new(ne||Rt)},Rt.\u0275mod=p.oAB({type:Rt}),Rt.\u0275inj=p.cJS({providers:[Y]}),Rt})();class vt{constructor(ne=!1,bt="all",kt="",de="",Wt=0){this.matches=ne,this.mediaQuery=bt,this.mqAlias=kt,this.suffix=de,this.priority=Wt,this.property=""}clone(){return new vt(this.matches,this.mediaQuery,this.mqAlias,this.suffix)}}let at=(()=>{class Rt{constructor(){this.stylesheet=new Map}addStyleToElement(bt,kt,de){const Wt=this.stylesheet.get(bt);Wt?Wt.set(kt,de):this.stylesheet.set(bt,new Map([[kt,de]]))}clearStyles(){this.stylesheet.clear()}getStyleForElement(bt,kt){const de=this.stylesheet.get(bt);let Wt="";if(de){const en=de.get(kt);("number"==typeof en||"string"==typeof en)&&(Wt=en+"")}return Wt}}return Rt.\u0275fac=function(ne){return new(ne||Rt)},Rt.\u0275prov=p.Yz7({token:Rt,factory:Rt.\u0275fac,providedIn:"root"}),Rt})();const J={addFlexToParent:!0,addOrientationBps:!1,disableDefaultBps:!1,disableVendorPrefixes:!1,serverLoaded:!1,useColumnBasisZero:!0,printWithBreakpoints:[],mediaTriggerAutoRestore:!0,ssrObserveBreakpoints:[]},ht=new p.OlP("Flex Layout token, config options for the library",{providedIn:"root",factory:()=>J}),m=new p.OlP("FlexLayoutServerLoaded",{providedIn:"root",factory:()=>!1}),M=new p.OlP("Flex Layout token, collect all breakpoints into one provider",{providedIn:"root",factory:()=>null});function N(Rt,ne){return Rt=Rt?Rt.clone():new vt,ne&&(Rt.mqAlias=ne.alias,Rt.mediaQuery=ne.mediaQuery,Rt.suffix=ne.suffix,Rt.priority=ne.priority),Rt}class g{constructor(){this.shouldCache=!0}sideEffect(ne,bt,kt){}}let x=(()=>{class Rt{constructor(bt,kt,de,Wt){this._serverStylesheet=bt,this._serverModuleLoaded=kt,this._platformId=de,this.layoutConfig=Wt}applyStyleToElement(bt,kt,de=null){let Wt={};"string"==typeof kt&&(Wt[kt]=de,kt=Wt),Wt=this.layoutConfig.disableVendorPrefixes?kt:(0,V.GK)(kt),this._applyMultiValueStyleToElement(Wt,bt)}applyStyleToElements(bt,kt=[]){const de=this.layoutConfig.disableVendorPrefixes?bt:(0,V.GK)(bt);kt.forEach(Wt=>{this._applyMultiValueStyleToElement(de,Wt)})}getFlowDirection(bt){const kt="flex-direction";let de=this.lookupStyle(bt,kt);return[de||"row",this.lookupInlineStyle(bt,kt)||(0,s.PM)(this._platformId)&&this._serverModuleLoaded?de:""]}hasWrap(bt){return"wrap"===this.lookupStyle(bt,"flex-wrap")}lookupAttributeValue(bt,kt){return bt.getAttribute(kt)||""}lookupInlineStyle(bt,kt){return(0,s.NF)(this._platformId)?bt.style.getPropertyValue(kt):this._getServerStyle(bt,kt)}lookupStyle(bt,kt,de=!1){let Wt="";return bt&&((Wt=this.lookupInlineStyle(bt,kt))||((0,s.NF)(this._platformId)?de||(Wt=getComputedStyle(bt).getPropertyValue(kt)):this._serverModuleLoaded&&(Wt=this._serverStylesheet.getStyleForElement(bt,kt)))),Wt?Wt.trim():""}_applyMultiValueStyleToElement(bt,kt){Object.keys(bt).sort().forEac
1h(de=>{const Wt=bt[de],en=Array.isArray(Wt)?Wt:[Wt];en.sort();for(let be of en)be=be?be+"":"",(0,s.NF)(this._platformId)||!this._serverModuleLoaded?(0,s.NF)(this._platformId)?kt.style.setProperty(de,be):this._setServerStyle(kt,de,be):this._serverStylesheet.addStyleToElement(kt,de,be)})}_setServerStyle(bt,kt,de){kt=kt.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();const Wt=this._readStyleAttribute(bt);Wt[kt]=de||"",this._writeStyleAttribute(bt,Wt)}_getServerStyle(bt,kt){return this._readStyleAttribute(bt)[kt]||""}_readStyleAttribute(bt){const kt={},de=bt.getAttribute("style");if(de){const Wt=de.split(/;+/g);for(let en=0;en<Wt.length;en++){const be=Wt[en].trim();if(be.length>0){const qe=be.indexOf(":");if(-1===qe)throw new Error(`Invalid CSS style: ${be}`);kt[be.substr(0,qe).trim()]=be.substr(qe+1).trim()}}}return kt}_writeStyleAttribute(bt,kt){let de="";for(const Wt in kt)kt[Wt]&&(de+=Wt+":"+kt[Wt]+";");bt.setAttribute("style",de)}}return Rt.\u0275fac=function(ne){return new(ne||Rt)(p.LFG(at),p.LFG(m),p.LFG(p.Lbi),p.LFG(ht))},Rt.\u0275prov=p.Yz7({token:Rt,factory:Rt.\u0275fac,providedIn:"root"}),Rt})();function P(Rt,ne){return(ne&&ne.priority||0)-(Rt&&Rt.priority||0)}function Q(Rt,ne){return(Rt.priority||0)-(ne.priority||0)}let U=(()=>{class Rt{constructor(bt,kt,de){this._zone=bt,this._platformId=kt,this._document=de,this.source=new j.X(new vt(!0)),this.registry=new Map,this.pendingRemoveListenerFns=[],this._observable$=this.source.asObservable()}get activations(){const bt=[];return this.registry.forEach((kt,de)=>{kt.matches&&bt.push(de)}),bt}isActive(bt){const kt=this.registry.get(bt);return kt?kt.matches:this.registerQuery(bt).some(de=>de.matches)}observe(bt,kt=!1){if(bt&&bt.length){const de=this._observable$.pipe((0,_.h)(en=>!kt||bt.indexOf(en.mediaQuery)>-1)),Wt=new k.y(en=>{const be=this.registerQuery(bt);if(be.length){const qe=be.pop();be.forEach(kn=>{en.next(kn)}),this.source.next(qe)}en.complete()});return(0,b.T)(Wt,de)}return this._observable$}registerQuery(bt){const kt=Array.isArray(bt)?bt:[bt],de=[];return function(en,be){const qe=en.filter(kn=>!G[kn]);if(qe.length>0){const kn=qe.join(", ");try{const yr=be.createElement("style");yr.setAttribute("type","text/css"),yr.styleSheet||yr.appendChild(be.createTextNode(`\n/*\n @angular/flex-layout - workaround for possible browser quirk with mediaQuery listeners\n see http://bit.ly/2sd4HMP\n*/\n@media ${kn} {.fx-query-test{ }}\n`)),be.head.appendChild(yr),qe.forEach(ur=>G[ur]=yr)}catch(yr){console.error(yr)}}}(kt,this._document),kt.forEach(Wt=>{const en=qe=>{this._zone.run(()=>this.source.next(new vt(qe.matches,Wt)))};let be=this.registry.get(Wt);be||(be=this.buildMQL(Wt),be.addListener(en),this.pendingRemoveListenerFns.push(()=>be.removeListener(en)),this.registry.set(Wt,be)),be.matches&&de.push(new vt(!0,Wt))}),de}ngOnDestroy(){let bt;for(;bt=this.pendingRemoveListenerFns.pop();)bt()}buildMQL(bt){return de=bt,(0,s.NF)(this._platformId)&&window.matchMedia("all").addListener?window.matchMedia(de):{matches:"all"===de||""===de,media:de,addListener:()=>{},removeListener:()=>{},onchange:null,addEventListener(){},removeEventListener(){},dispatchEvent:()=>!1};var de}}return Rt.\u0275fac=function(ne){return new(ne||Rt)(p.LFG(p.R0b),p.LFG(p.Lbi),p.LFG(s.K0))},Rt.\u0275prov=p.Yz7({token:Rt,factory:Rt.\u0275fac,providedIn:"root"}),Rt})();const G={},dt=[{alias:"xs",mediaQuery:"screen and (min-width: 0px) and (max-width: 599.98px)",priority:1e3},{alias:"sm",mediaQuery:"screen and (min-width: 600px) and (max-width: 959.98px)",priority:900},{alias:"md",mediaQuery:"screen and (min-width: 960px) and (max-width: 1279.98px)",priority:800},{alias:"lg",mediaQuery:"screen and (min-width: 1280px) and (max-width: 1919.98px)",priority:700},{alias:"xl",mediaQuery:"screen and (min-width: 1920px) and (max-width: 4999.98px)",priority:600},{alias:"lt-sm",overlapping:!0,mediaQuery:"screen and (max-width: 599.98px)",priority:950},{alias:"lt-md",overlapping:!0,mediaQuery:"screen and (max-width: 959.98px)",priority:850},{alias:"lt-lg",overlapping:!0,mediaQuery:"screen and (max-width: 1279.98px)",priority:750},{alias:"lt-xl",overlapping:!0,priority:650,mediaQuery:"screen and (max-width: 1919.98px)"},{alias:"gt-xs",overlapping:!0,mediaQuery:"screen and (min-width: 600px)",priority:-950},{alias:"gt-sm",overlapping:!0,mediaQuery:"screen and (min-width: 960px)",priority:-850},{alias:"gt-md",overlapping:!0,mediaQuery:"screen and (min-width: 1280px)",priority:-750},{alias:"gt-lg",overlapping:!0,mediaQuery:"screen and (min-width: 1920px)",priority:-650}
1],wt="(orientation: portrait) and (max-width: 599.98px)",W="(orientation: landscape) and (max-width: 959.98px)",te="(orientation: portrait) and (min-width: 600px) and (max-width: 839.98px)",ae="(orientation: landscape) and (min-width: 960px) and (max-width: 1279.98px)",Ae="(orientation: portrait) and (min-width: 840px)",ge="(orientation: landscape) and (min-width: 1280px)",We={HANDSET:`${wt}, ${W}`,TABLET:`${te} , ${ae}`,WEB:`${Ae}, ${ge} `,HANDSET_PORTRAIT:`${wt}`,TABLET_PORTRAIT:`${te} `,WEB_PORTRAIT:`${Ae}`,HANDSET_LANDSCAPE:`${W}`,TABLET_LANDSCAPE:`${ae}`,WEB_LANDSCAPE:`${ge}`},Cn=[{alias:"handset",priority:2e3,mediaQuery:We.HANDSET},{alias:"handset.landscape",priority:2e3,mediaQuery:We.HANDSET_LANDSCAPE},{alias:"handset.portrait",priority:2e3,mediaQuery:We.HANDSET_PORTRAIT},{alias:"tablet",priority:2100,mediaQuery:We.TABLET},{alias:"tablet.landscape",priority:2100,mediaQuery:We.TABLET_LANDSCAPE},{alias:"tablet.portrait",priority:2100,mediaQuery:We.TABLET_PORTRAIT},{alias:"web",priority:2200,mediaQuery:We.WEB,overlapping:!0},{alias:"web.landscape",priority:2200,mediaQuery:We.WEB_LANDSCAPE,overlapping:!0},{alias:"web.portrait",priority:2200,mediaQuery:We.WEB_PORTRAIT,overlapping:!0}],rn=/(\.|-|_)/g;function Me(Rt){let ne=Rt.length>0?Rt.charAt(0):"",bt=Rt.length>1?Rt.slice(1):"";return ne.toUpperCase()+bt}const Le=new p.OlP("Token (@angular/flex-layout) Breakpoints",{providedIn:"root",factory:()=>{const Rt=(0,p.f3M)(M),ne=(0,p.f3M)(ht),bt=[].concat.apply([],(Rt||[]).map(kt=>Array.isArray(kt)?kt:[kt]));return function(de,Wt=[]){const en={};return de.forEach(be=>{en[be.alias]=be}),Wt.forEach(be=>{en[be.alias]?(0,V.kt)(en[be.alias],be):en[be.alias]=be}),(qe=Object.keys(en).map(be=>en[be])).forEach(kn=>{kn.suffix||(kn.suffix=kn.alias.replace(rn,"|").split("|").map(Me).join(""),kn.overlapping=!!kn.overlapping)}),qe;var qe}((ne.disableDefaultBps?[]:dt).concat(ne.addOrientationBps?Cn:[]),bt)}});let Ee=(()=>{class Rt{constructor(bt){this.findByMap=new Map,this.items=[...bt].sort(Q)}findByAlias(bt){return bt?this.findWithPredicate(bt,kt=>kt.alias==bt):null}findByQuery(bt){return this.findWithPredicate(bt,kt=>kt.mediaQuery==bt)}get overlappings(){return this.items.filter(bt=>1==bt.overlapping)}get aliases(){return this.items.map(bt=>bt.alias)}get suffixes(){return this.items.map(bt=>bt.suffix?bt.suffix:"")}findWithPredicate(bt,kt){let de=this.findByMap.get(bt);return de||(de=this.items.find(kt)||null,this.findByMap.set(bt,de)),de||null}}return Rt.\u0275fac=function(ne){return new(ne||Rt)(p.LFG(Le))},Rt.\u0275prov=p.Yz7({token:Rt,factory:Rt.\u0275fac,providedIn:"root"}),Rt})();const Qt="print",Ut={alias:Qt,mediaQuery:Qt,priority:1e3};let Mt=(()=>{class Rt{constructor(bt,kt,de){this.breakpoints=bt,this.layoutConfig=kt,this._document=de,this.registeredBeforeAfterPrintHooks=!1,this.isPrintingBeforeAfterEvent=!1,this.beforePrintEventListeners=[],this.afterPrintEventListeners=[],this.isPrinting=!1,this.queue=new It,this.deactivations=[]}withPrintQuery(bt){return[...bt,Qt]}isPrintEvent(bt){return bt.mediaQuery.startsWith(Qt)}get printAlias(){return this.layoutConfig.printWithBreakpoints||[]}get printBreakPoints(){return this.printAlias.map(bt=>this.breakpoints.findByAlias(bt)).filter(bt=>null!==bt)}getEventBreakpoints({mediaQuery:bt}){const kt=this.breakpoints.findByQuery(bt);return(kt?[...this.printBreakPoints,kt]:this.printBreakPoints).sort(P)}updateEvent(bt){let kt=this.breakpoints.findByQuery(bt.mediaQuery);return this.isPrintEvent(bt)&&(kt=this.getEventBreakpoints(bt)[0],bt.mediaQuery=kt?kt.mediaQuery:""),N(bt,kt)}registerBeforeAfterPrintHooks(bt){if(!this._document.defaultView||this.registeredBeforeAfterPrintHooks)return;this.registeredBeforeAfterPrintHooks=!0;const kt=()=>{this.isPrinting||(this.isPrintingBeforeAfterEvent=!0,this.startPrinting(bt,this.getEventBreakpoints(new vt(!0,Qt))),bt.updateStyles())},de=()=>{this.isPrintingBeforeAfterEvent=!1,this.isPrinting&&(this.stopPrinting(bt),bt.updateStyles())};this._document.defaultView.addEventListener("beforeprint",kt),this._document.defaultView.addEventListener("afterprint",de),this.beforePrintEventListeners.push(kt),this.afterPrintEventListeners.push(de)}interceptEvents(bt){return this.registerBeforeAfterPrintHooks(bt),kt=>{this.isPrintEvent(kt)?kt.matches&&!this.isPrinting?(this.startPrinting(bt,this.getEventBreakpoints(kt)),bt.updateStyles()):!kt.matches&&this.isPrinting&&!this.isPrintingBeforeAfterEvent&&(this.stopPrinting(bt),bt.updateStyles()):this.collectActivations(kt)}}blockPropagation(){return bt=>!(this.isPrinting||this.isPrintEvent(bt))}startPrinting(bt,kt){this.isPrinting=!0,bt.activatedBreakpoints=this.queue.addPrintBreakpoints(kt)}stopPrinting(bt){bt.activatedBreakpoints=this.deactivations,this.deactivations=[],this.queue.clear(),this.isPrinting=!1}collectActivations(bt){if(!this.isPrinting||this.isPrintingBeforeAfterEvent)if(bt.matches)this.isPrintingBeforeAfterEvent||(this.deactivations=[]);
1else{const kt=this.breakpoints.findByQuery(bt.mediaQuery);kt&&(this.deactivations.push(kt),this.deactivations.sort(P))}}ngOnDestroy(){this._document.defaultView&&(this.beforePrintEventListeners.forEach(bt=>this._document.defaultView.removeEventListener("beforeprint",bt)),this.afterPrintEventListeners.forEach(bt=>this._document.defaultView.removeEventListener("afterprint",bt)))}}return Rt.\u0275fac=function(ne){return new(ne||Rt)(p.LFG(Ee),p.LFG(ht),p.LFG(s.K0))},Rt.\u0275prov=p.Yz7({token:Rt,factory:Rt.\u0275fac,providedIn:"root"}),Rt})();class It{constructor(){this.printBreakpoints=[]}addPrintBreakpoints(ne){return ne.push(Ut),ne.sort(P),ne.forEach(bt=>this.addBreakpoint(bt)),this.printBreakpoints}addBreakpoint(ne){var kt;ne&&void 0===this.printBreakpoints.find(bt=>bt.mediaQuery===ne.mediaQuery)&&(this.printBreakpoints=(kt=ne)&&kt.mediaQuery.startsWith(Qt)?[ne,...this.printBreakpoints]:[...this.printBreakpoints,ne])}clear(){this.printBreakpoints=[]}}let mt=(()=>{class Rt{constructor(bt,kt,de){this.matchMedia=bt,this.breakpoints=kt,this.hook=de,this.activatedBreakpoints=[],this.elementMap=new Map,this.elementKeyMap=new WeakMap,this.watcherMap=new WeakMap,this.updateMap=new WeakMap,this.clearMap=new WeakMap,this.subject=new B.xQ,this.observeActivations()}get activatedAlias(){return this.activatedBreakpoints[0]?this.activatedBreakpoints[0].alias:""}onMediaChange(bt){const kt=this.findByQuery(bt.mediaQuery);kt&&((bt=N(bt,kt)).matches&&-1===this.activatedBreakpoints.indexOf(kt)?(this.activatedBreakpoints.push(kt),this.activatedBreakpoints.sort(P),this.updateStyles()):!bt.matches&&-1!==this.activatedBreakpoints.indexOf(kt)&&(this.activatedBreakpoints.splice(this.activatedBreakpoints.indexOf(kt),1),this.activatedBreakpoints.sort(P),this.updateStyles()))}init(bt,kt,de,Wt,en=[]){lt(this.updateMap,bt,kt,de),lt(this.clearMap,bt,kt,Wt),this.buildElementKeyMap(bt,kt),this.watchExtraTriggers(bt,kt,en)}getValue(bt,kt,de){const Wt=this.elementMap.get(bt);if(Wt){const en=void 0!==de?Wt.get(de):this.getActivatedValues(Wt,kt);if(en)return en.get(kt)}}hasValue(bt,kt){const de=this.elementMap.get(bt);if(de){const Wt=this.getActivatedValues(de,kt);if(Wt)return void 0!==Wt.get(kt)||!1}return!1}setValue(bt,kt,de,Wt){let en=this.elementMap.get(bt);if(en){const qe=(en.get(Wt)||new Map).set(kt,de);en.set(Wt,qe),this.elementMap.set(bt,en)}else en=(new Map).set(Wt,(new Map).set(kt,de)),this.elementMap.set(bt,en);const be=this.getValue(bt,kt);void 0!==be&&this.updateElement(bt,kt,be)}trackValue(bt,kt){return this.subject.asObservable().pipe((0,_.h)(de=>de.element===bt&&de.key===kt))}updateStyles(){this.elementMap.forEach((bt,kt)=>{const de=new Set(this.elementKeyMap.get(kt));let Wt=this.getActivatedValues(bt);Wt&&Wt.forEach((en,be)=>{this.updateElement(kt,be,en),de.delete(be)}),de.forEach(en=>{if(Wt=this.getActivatedValues(bt,en),Wt){const be=Wt.get(en);this.updateElement(kt,en,be)}else this.clearElement(kt,en)})})}clearElement(bt,kt){const de=this.clearMap.get(bt);if(de){const Wt=de.get(kt);Wt&&(Wt(),this.subject.next({element:bt,key:kt,value:""}))}}updateElement(bt,kt,de){const Wt=this.updateMap.get(bt);if(Wt){const en=Wt.get(kt);en&&(en(de),this.subject.next({element:bt,key:kt,value:de}))}}releaseElement(bt){const kt=this.watcherMap.get(bt);kt&&(kt.forEach(Wt=>Wt.unsubscribe()),this.watcherMap.delete(bt));const de=this.elementMap.get(bt);de&&(de.forEach((Wt,en)=>de.delete(en)),this.elementMap.delete(bt))}triggerUpdate(bt,kt){const de=this.elementMap.get(bt);if(de){const Wt=this.getActivatedValues(de,kt);Wt&&(kt?this.updateElement(bt,kt,Wt.get(kt)):Wt.forEach((en,be)=>this.updateElement(bt,be,en)))}}buildElementKeyMap(bt,kt){let de=this.elementKeyMap.get(bt);de||(de=new Set,this.elementKeyMap.set(bt,de)),de.add(kt)}watchExtraTriggers(bt,kt,de){if(de&&de.length){let Wt=this.watcherMap.get(bt);if(Wt||(Wt=new Map,this.watcherMap.set(bt,Wt)),!Wt.get(kt)){const en=(0,b.T)(...de).subscribe(()=>{const be=this.getValue(bt,kt);this.updateElement(bt,kt,be)});Wt.set(kt,en)}}}findByQuery(bt){return this.breakpoints.findByQuery(bt)}getActivatedValues(bt,kt){for(let Wt=0;Wt<this.activatedBreakpoints.length;Wt++){const en=bt.get(this.activatedBreakpoints[Wt].alias);if(en&&(void 0===kt||en.has(kt)&&null!=en.get(kt)))return en}const de=bt.get("");return void 0===kt||de&&de.has(kt)?de:void 0}observeActivations(){const bt=this.breakpoints.items.map(kt=>kt.mediaQuery);this.matchMedia.observe(this.hook.withPrintQuery(bt)).pipe((0,H.b)(this.hook.interceptEvents(this)),(0,_.h)(this.hook.blockPropagation())).subscribe(this.onMediaChange.bind(this))}}return Rt.\u0275fac=function(ne){return new(ne||Rt)(p.LFG(U),p.LFG(Ee),p.LFG(Mt))},Rt.\u0275prov=p.Yz7({token:Rt,factory:Rt.\u0275fac,providedIn:"root"}),Rt})();function lt(Rt,ne,bt,kt){if(void 0!==kt){let de=Rt.get(ne);de||(de=new Map,Rt.set(ne,de)),de.set(bt,kt)}}let et=(()=>{class Rt{constructor(bt,kt,de,Wt){this.elementRef=bt,this.styleBuilder=kt,this.styler=de,this.marshal=Wt,this.DIRECTIVE_KEY="",this.inputs=[],this.mru={}
1,this.destroySubject=new B.xQ,this.styleCache=new Map}get parentElement(){return this.elementRef.nativeElement.parentElement}get nativeElement(){return this.elementRef.nativeElement}get activatedValue(){return this.marshal.getValue(this.nativeElement,this.DIRECTIVE_KEY)}set activatedValue(bt){this.marshal.setValue(this.nativeElement,this.DIRECTIVE_KEY,bt,this.marshal.activatedAlias)}ngOnChanges(bt){Object.keys(bt).forEach(kt=>{if(-1!==this.inputs.indexOf(kt)){const de=kt.split(".").slice(1).join(".");this.setValue(bt[kt].currentValue,de)}})}ngOnDestroy(){this.destroySubject.next(),this.destroySubject.complete(),this.marshal.releaseElement(this.nativeElement)}init(bt=[]){this.marshal.init(this.elementRef.nativeElement,this.DIRECTIVE_KEY,this.updateWithValue.bind(this),this.clearStyles.bind(this),bt)}addStyles(bt,kt){const de=this.styleBuilder,Wt=de.shouldCache;let en=this.styleCache.get(bt);(!en||!Wt)&&(en=de.buildStyles(bt,kt),Wt&&this.styleCache.set(bt,en)),this.mru=Object.assign({},en),this.applyStyleToElement(en),de.sideEffect(bt,en,kt)}clearStyles(){Object.keys(this.mru).forEach(bt=>{this.mru[bt]=""}),this.applyStyleToElement(this.mru),this.mru={}}triggerUpdate(){this.marshal.triggerUpdate(this.nativeElement,this.DIRECTIVE_KEY)}getFlexFlowDirection(bt,kt=!1){if(bt){const[de,Wt]=this.styler.getFlowDirection(bt);if(!Wt&&kt){const en=(0,V.Ar)(de);this.styler.applyStyleToElements(en,[bt])}return de.trim()}return"row"}hasWrap(bt){return this.styler.hasWrap(bt)}applyStyleToElement(bt,kt,de=this.nativeElement){this.styler.applyStyleToElement(de,bt,kt)}setValue(bt,kt){this.marshal.setValue(this.nativeElement,this.DIRECTIVE_KEY,bt,kt)}updateWithValue(bt){this.currentValue!==bt&&(this.addStyles(bt),this.currentValue=bt)}}return Rt.\u0275fac=function(ne){return new(ne||Rt)(p.Y36(p.SBq),p.Y36(g),p.Y36(x),p.Y36(mt))},Rt.\u0275dir=p.lG2({type:Rt,features:[p.TTD]}),Rt})();function ct(Rt,ne="1",bt="1"){let kt=[ne,bt,Rt],de=Rt.indexOf("calc");if(de>0){kt[2]=Vt(Rt.substring(de).trim());let Wt=Rt.substr(0,de).trim().split(" ");2==Wt.length&&(kt[0]=Wt[0],kt[1]=Wt[1])}else if(0==de)kt[2]=Vt(Rt.trim());else{let Wt=Rt.split(" ");kt=3===Wt.length?Wt:[ne,bt,Rt]}return kt}function Vt(Rt){return Rt.replace(/[\s]/g,"").replace(/[\/\*\+\-]/g," $& ")}},3322:(u,D,v)=>{v.d(D,{oO:()=>_,b8:()=>vt,aT:()=>at});var p=v(6435),s=v(3270),j=v(9808),k=v(3191),b=v(7625);v(2313);let B=(()=>{class J extends s.iR{constructor(m,M,N,g,x,P,Q){super(m,null,M,N),this.ngClassInstance=Q,this.DIRECTIVE_KEY="ngClass",this.ngClassInstance||(this.ngClassInstance=new j.mk(g,x,m,P)),this.init(),this.setValue("","")}set klass(m){this.ngClassInstance.klass=m,this.setValue(m,"")}updateWithValue(m){this.ngClassInstance.ngClass=m,this.ngClassInstance.ngDoCheck()}ngDoCheck(){this.ngClassInstance.ngDoCheck()}}return J.\u0275fac=function(ht){return new(ht||J)(p.Y36(p.SBq),p.Y36(s.RK),p.Y36(s.yB),p.Y36(p.ZZ4),p.Y36(p.aQg),p.Y36(p.Qsj),p.Y36(j.mk,10))},J.\u0275dir=p.lG2({type:J,inputs:{klass:["class","klass"]},features:[p.qOj]}),J})();const V=["ngClass","ngClass.xs","ngClass.sm","ngClass.md","ngClass.lg","ngClass.xl","ngClass.lt-sm","ngClass.lt-md","ngClass.lt-lg","ngClass.lt-xl","ngClass.gt-xs","ngClass.gt-sm","ngClass.gt-md","ngClass.gt-lg"];let _=(()=>{class J extends B{constructor(){super(...arguments),this.inputs=V}}return J.\u0275fac=function(){let ht;return function(m){return(ht||(ht=p.n5z(J)))(m||J)}}(),J.\u0275dir=p.lG2({type:J,selectors:[["","ngClass",""],["","ngClass.xs",""],["","ngClass.sm",""],["","ngClass.md",""],["","ngClass.lg",""],["","ngClass.xl",""],["","ngClass.lt-sm",""],["","ngClass.lt-md",""],["","ngClass.lt-lg",""],["","ngClass.lt-xl",""],["","ngClass.gt-xs",""],["","ngClass.gt-sm",""],["","ngClass.gt-md",""],["","ngClass.gt-lg",""]],inputs:{ngClass:"ngClass","ngClass.xs":"ngClass.xs","ngClass.sm":"ngClass.sm","ngClass.md":"ngClass.md","ngClass.lg":"ngClass.lg","ngClass.xl":"ngClass.xl","ngClass.lt-sm":"ngClass.lt-sm","ngClass.lt-md":"ngClass.lt-md","ngClass.lt-lg":"ngClass.lt-lg","ngClass.lt-xl":"ngClass.lt-xl","ngClass.gt-xs":"ngClass.gt-xs","ngClass.gt-sm":"ngClass.gt-sm","ngClass.gt-md":"ngClass.gt-md","ngClass.gt-lg":"ngClass.gt-lg"},features:[p.qOj]}),J})(),H=(()=>{class J extends s.QI{buildStyles(m,M){return{display:"true"===m?M.display||(M.isServer?"initial":""):"none"}}}return J.\u0275fac=function(){let ht;
1return function(m){return(ht||(ht=p.n5z(J)))(m||J)}}(),J.\u0275prov=p.Yz7({token:J,factory:J.\u0275fac,providedIn:"root"}),J})(),Y=(()=>{class J extends s.iR{constructor(m,M,N,g,x,P,Q){super(m,M,N,g),this.layoutConfig=x,this.platformId=P,this.serverModuleLoaded=Q,this.DIRECTIVE_KEY="show-hide",this.display="",this.hasLayout=!1,this.hasFlexChild=!1}ngAfterViewInit(){this.trackExtraTriggers();const m=Array.from(this.nativeElement.children);for(let N=0;N<m.length;N++)if(this.marshal.hasValue(m[N],"flex")){this.hasFlexChild=!0;break}q.has(this.nativeElement)?this.display=q.get(this.nativeElement):(this.display=this.getDisplayStyle(),q.set(this.nativeElement,this.display)),this.init();const M=this.marshal.getValue(this.nativeElement,this.DIRECTIVE_KEY,"");void 0===M||""===M?this.setValue(!0,""):this.triggerUpdate()}ngOnChanges(m){Object.keys(m).forEach(M=>{if(-1!==this.inputs.indexOf(M)){const N=M.split("."),g=N.slice(1).join("."),x=m[M].currentValue;let P=""===x||0!==x&&(0,k.Ig)(x);"fxHide"===N[0]&&(P=!P),this.setValue(P,g)}})}trackExtraTriggers(){this.hasLayout=this.marshal.hasValue(this.nativeElement,"layout"),["layout","layout-align"].forEach(m=>{this.marshal.trackValue(this.nativeElement,m).pipe((0,b.R)(this.destroySubject)).subscribe(this.triggerUpdate.bind(this))})}getDisplayStyle(){return this.hasLayout||this.hasFlexChild&&this.layoutConfig.addFlexToParent?"flex":this.styler.lookupStyle(this.nativeElement,"display",!0)}updateWithValue(m=!0){if(""===m)return;const M=(0,j.PM)(this.platformId);this.addStyles(m?"true":"false",{display:this.display,isServer:M}),M&&this.serverModuleLoaded&&this.nativeElement.style.setProperty("display",""),this.marshal.triggerUpdate(this.parentElement,"layout-gap")}}return J.\u0275fac=function(ht){return new(ht||J)(p.Y36(p.SBq),p.Y36(H),p.Y36(s.RK),p.Y36(s.yB),p.Y36(s.WU),p.Y36(p.Lbi),p.Y36(s.wY))},J.\u0275dir=p.lG2({type:J,features:[p.qOj,p.TTD]}),J})();const q=new WeakMap,it=["fxShow","fxShow.print","fxShow.xs","fxShow.sm","fxShow.md","fxShow.lg","fxShow.xl","fxShow.lt-sm","fxShow.lt-md","fxShow.lt-lg","fxShow.lt-xl","fxShow.gt-xs","fxShow.gt-sm","fxShow.gt-md","fxShow.gt-lg","fxHide","fxHide.print","fxHide.xs","fxHide.sm","fxHide.md","fxHide.lg","fxHide.xl","fxHide.lt-sm","fxHide.lt-md","fxHide.lt-lg","fxHide.lt-xl","fxHide.gt-xs","fxHide.gt-sm","fxHide.gt-md","fxHide.gt-lg"];let vt=(()=>{class J extends Y{constructor(){super(...arguments),this.inputs=it}}return J.\u0275fac=function(){let ht;return function(m){return(ht||(ht=p.n5z(J)))(m||J)}}(),J.\u0275dir=p.lG2({type:J,selectors:[["","fxShow",""],["","fxShow.print",""],["","fxShow.xs",""],["","fxShow.sm",""],["","fxShow.md",""],["","fxShow.lg",""],["","fxShow.xl",""],["","fxShow.lt-sm",""],["","fxShow.lt-md",""],["","fxShow.lt-lg",""],["","fxShow.lt-xl",""],["","fxShow.gt-xs",""],["","fxShow.gt-sm",""],["","fxShow.gt-md",""],["","fxShow.gt-lg",""],["","fxHide",""],["","fxHide.print",""],["","fxHide.xs",""],["","fxHide.sm",""],["","fxHide.md",""],["","fxHide.lg",""],["","fxHide.xl",""],["","fxHide.lt-sm",""],["","fxHide.lt-md",""],["","fxHide.lt-lg",""],["","fxHide.lt-xl",""],["","fxHide.gt-xs",""],["","fxHide.gt-sm",""],["","fxHide.gt-md",""],["","fxHide.gt-lg",""]],inputs:{fxShow:"fxShow","fxShow.print":"fxShow.print","fxShow.xs":"fxShow.xs","fxShow.sm":"fxShow.sm","fxShow.md":"fxShow.md","fxShow.lg":"fxShow.lg","fxShow.xl":"fxShow.xl","fxShow.lt-sm":"fxShow.lt-sm","fxShow.lt-md":"fxShow.lt-md","fxShow.lt-lg":"fxShow.lt-lg","fxShow.lt-xl":"fxShow.lt-xl","fxShow.gt-xs":"fxShow.gt-xs","fxShow.gt-sm":"fxShow.gt-sm","fxShow.gt-md":"fxShow.gt-md","fxShow.gt-lg":"fxShow.gt-lg",fxHide:"fxHide","fxHide.print":"fxHide.print","fxHide.xs":"fxHide.xs","fxHide.sm":"fxHide.sm","fxHide.md":"fxHide.md","fxHide.lg":"fxHide.lg","fxHide.xl":"fxHide.xl","fxHide.lt-sm":"fxHide.lt-sm","fxHide.lt-md":"fxHide.lt-md","fxHide.lt-lg":"fxHide.lt-lg","fxHide.lt-xl":"fxHide.lt-xl","fxHide.gt-xs":"fxHide.gt-xs","fxHide.gt-sm":"fxHide.gt-sm","fxHide.gt-md":"fxHide.gt-md","fxHide.gt-lg":"fxHide.gt-lg"},features:[p.qOj]}),J})(),at=(()=>{class J{}return J.\u0275fac=function(ht){return new(ht||J)},J.\u0275mod=p.oAB({type:J}),J.\u0275inj=p.cJS({imports:[[s.IR]]}),J})()},7093:(u,D,v)=>{v.d(D,{yH:()=>at,Wh:()=>dt,xw:()=>
1H,s9:()=>x,ae:()=>rn});var p=v(6435),s=v(226),j=v(3270),k=v(9042),b=(v(8929),v(7625));let B=(()=>{class Me extends j.QI{buildStyles(Ee){return(0,k.Ar)(Ee)}}return Me.\u0275fac=function(){let Le;return function(Ee){return(Le||(Le=p.n5z(Me)))(Ee||Me)}}(),Me.\u0275prov=p.Yz7({token:Me,factory:Me.\u0275fac,providedIn:"root"}),Me})();const V=["fxLayout","fxLayout.xs","fxLayout.sm","fxLayout.md","fxLayout.lg","fxLayout.xl","fxLayout.lt-sm","fxLayout.lt-md","fxLayout.lt-lg","fxLayout.lt-xl","fxLayout.gt-xs","fxLayout.gt-sm","fxLayout.gt-md","fxLayout.gt-lg"];let _=(()=>{class Me extends j.iR{constructor(Ee,Qt,Ut,Mt){super(Ee,Ut,Qt,Mt),this.DIRECTIVE_KEY="layout",this.styleCache=Y,this.init()}}return Me.\u0275fac=function(Le){return new(Le||Me)(p.Y36(p.SBq),p.Y36(j.RK),p.Y36(B),p.Y36(j.yB))},Me.\u0275dir=p.lG2({type:Me,features:[p.qOj]}),Me})(),H=(()=>{class Me extends _{constructor(){super(...arguments),this.inputs=V}}return Me.\u0275fac=function(){let Le;return function(Ee){return(Le||(Le=p.n5z(Me)))(Ee||Me)}}(),Me.\u0275dir=p.lG2({type:Me,selectors:[["","fxLayout",""],["","fxLayout.xs",""],["","fxLayout.sm",""],["","fxLayout.md",""],["","fxLayout.lg",""],["","fxLayout.xl",""],["","fxLayout.lt-sm",""],["","fxLayout.lt-md",""],["","fxLayout.lt-lg",""],["","fxLayout.lt-xl",""],["","fxLayout.gt-xs",""],["","fxLayout.gt-sm",""],["","fxLayout.gt-md",""],["","fxLayout.gt-lg",""]],inputs:{fxLayout:"fxLayout","fxLayout.xs":"fxLayout.xs","fxLayout.sm":"fxLayout.sm","fxLayout.md":"fxLayout.md","fxLayout.lg":"fxLayout.lg","fxLayout.xl":"fxLayout.xl","fxLayout.lt-sm":"fxLayout.lt-sm","fxLayout.lt-md":"fxLayout.lt-md","fxLayout.lt-lg":"fxLayout.lt-lg","fxLayout.lt-xl":"fxLayout.lt-xl","fxLayout.gt-xs":"fxLayout.gt-xs","fxLayout.gt-sm":"fxLayout.gt-sm","fxLayout.gt-md":"fxLayout.gt-md","fxLayout.gt-lg":"fxLayout.gt-lg"},features:[p.qOj]}),Me})();const Y=new Map;let q=(()=>{class Me extends j.QI{constructor(Ee){super(),this.layoutConfig=Ee}buildStyles(Ee,Qt){let[Ut,Mt,...It]=Ee.split(" "),mt=It.join(" ");const lt=Qt.direction.indexOf("column")>-1?"column":"row",et=(0,k.tj)(lt)?"max-width":"max-height",ct=(0,k.tj)(lt)?"min-width":"min-height",Vt=String(mt).indexOf("calc")>-1,Rt=Vt||"auto"===mt,ne=String(mt).indexOf("%")>-1&&!Vt,bt=String(mt).indexOf("px")>-1||String(mt).indexOf("rem")>-1||String(mt).indexOf("em")>-1||String(mt).indexOf("vw")>-1||String(mt).indexOf("vh")>-1;let kt=Vt||bt;Ut="0"==Ut?0:Ut,Mt="0"==Mt?0:Mt;const de=!Ut&&!Mt;let Wt={};const en={"max-width":null,"max-height":null,"min-width":null,"min-height":null};switch(mt||""){case"":const be=!1!==this.layoutConfig.useColumnBasisZero;mt="row"===lt?"0%":be?"0.000000001px":"auto";break;case"initial":case"nogrow":Ut=0,mt="auto";break;case"grow":mt="100%";break;case"noshrink":Mt=0,mt="auto";break;case"auto":break;case"none":Ut=0,Mt=0,mt="auto";break;default:!kt&&!ne&&!isNaN(mt)&&(mt+="%"),"0%"===mt&&(kt=!0),"0px"===mt&&(mt="0%"),Wt=(0,k.kt)(en,Vt?{"flex-grow":Ut,"flex-shrink":Mt,"flex-basis":kt?mt:"100%"}:{flex:`${Ut} ${Mt} ${kt?mt:"100%"}`})}return Wt.flex||Wt["flex-grow"]||(Wt=(0,k.kt)(en,Vt?{"flex-grow":Ut,"flex-shrink":Mt,"flex-basis":mt}:{flex:`${Ut} ${Mt} ${mt}`})),"0%"!==mt&&"0px"!==mt&&"0.000000001px"!==mt&&"auto"!==mt&&(Wt[ct]=de||kt&&Ut?mt:null,Wt[et]=de||!Rt&&Mt?mt:null),Wt[ct]||Wt[et]?Qt.hasWrap&&(Wt[Vt?"flex-basis":"flex"]=Wt[et]?Vt?Wt[et]:`${Ut} ${Mt} ${Wt[et]}`:Vt?Wt[ct]:`${Ut} ${Mt} ${Wt[ct]}`):Wt=(0,k.kt)(en,Vt?{"flex-grow":Ut,"flex-shrink":Mt,"flex-basis":mt}:{flex:`${Ut} ${Mt} ${mt}`}),(0,k.kt)(Wt,{"box-sizing":"border-box"})}}return Me.\u0275fac=function(Le){return new(Le||Me)(p.LFG(j.WU))},Me.\u0275prov=p.Yz7({token:Me,factory:Me.\u0275fac,providedIn:"root"}),Me})();const it=["fxFlex","fxFlex.xs","fxFlex.sm","fxFlex.md","fxFlex.lg","fxFlex.xl","fxFlex.lt-sm","fxFlex.lt-md","fxFlex.lt-lg","fxFlex.lt-xl","fxFlex.gt-xs","fxFlex.gt-sm","fxFlex.gt-md","fxFlex.gt-lg"];let vt=(()=>{class Me extends j.iR{constructor(Ee,Qt,Ut,Mt,It){super(Ee,Mt,Qt,It),this.layoutConfig=Ut,this.marshal=It,this.DIRECTIVE_KEY="flex",this.direction=void 0,this.wrap=void 0,this.flexGrow="1",this.flexShrink="1",this.init()}get shrink(){return this.flexShrink}set shrink(Ee){this.flexShrink=Ee||"1",this.triggerReflow()}get grow(){return this.flexGrow}set grow(Ee){this.flexGrow=Ee||"1",this.triggerReflow()}ngOnInit(){this.parentElement&&(this.marshal.trackValue(this.parentElement,"layout").pipe((0,b.R)(this.destroySubject)).subscribe(this.onLayoutChange.bind(this)),this.marshal.trackValue(this.nativeElement,"layout-align").pipe((0,b.R)(this.destroySubject)).subscribe(this.triggerReflow.bind(this)))}onLayoutChange(Ee){const Qt=Ee.value.split(" ");this.direction=Qt[0],this.wrap=void 0!==Qt[1]&&"wrap"===Qt[1],this.triggerUpdate()}updateWithValue(Ee){void 0===this.direction&&(this.direction=this.getFlexFlowDirection(this.parentElement,!1!==this.layoutConfig.addFlexToParent)),void 0===this.wrap&&(this.wrap=this.hasWrap(this.parentElement));const Qt=this.direction,Ut=Qt.startsWith("row"),Mt=this.wrap;Ut&&Mt?this.styleCache=m:Ut&&!Mt?this.styleCache=J:!Ut&&Mt?this.styleCache=M:!Ut&&!Mt&&(this.styleCache=ht);const It=String(Ee).replace(";",""),mt=(0,j.Ot)(It,this.flexGrow,this.flexShrink);this.addStyles(mt.join(" "),{direction:Qt,hasWrap:Mt})}triggerReflow(){const Ee=this.activatedValue;if(void 0!==Ee){const Qt=(0,j.Ot)(Ee+"",this.flexGrow,this.flexShrink);this.marshal.updateElement(this.nativeElement,this.DIRECTIVE_KEY,Qt.join(" "))}}}return Me.\u0275fac=function(Le){return new(Le||Me)(p.Y36(p.SBq),p.Y36(j.RK),p.Y36(j.WU),p.Y36(q),p.Y36(j.yB))},Me.\u0275dir=p.lG2({type:Me,inputs:{shrink:["fxShrink","shrink"],grow:["fxGrow","grow"]},features:[p.qOj]}),Me})(),at=(()=>{class Me extends vt{constructor(){super(...arguments),this.inputs=it}}return Me.\u0275fac=function(){let Le;return function(Ee){return(Le||(Le=p.n5z(Me)))(Ee||Me)}}(),Me.\u0275dir=p.lG2({type:Me,selectors:[["","fxFlex",""],["","fxFlex.xs",""],["","fxFlex.sm",""],["","fxFlex.md",""],["","fxFlex.lg",""],["","fxFlex.xl",""],["","fxFlex.lt-sm",""],["","fxFlex.lt-md",""],["","fxFlex.lt-lg",""],["","fxFlex.lt-xl",""],["","fxFlex.gt-xs",""],["","fxFlex.gt-sm",""],["","fxFlex.gt-md",""],["","fxFlex.gt-lg",""]],inputs:{fxFlex:"fxFlex","fxFlex.xs":"fxFlex.xs","fxFlex.sm":"fxFlex.sm","fxFlex.md":"fxFlex.md","fxFlex.lg":"fxFlex.lg","fxFlex.xl":"fxFlex.xl","fxFlex.lt-sm":"fxFlex.lt-sm","fxFlex.lt-md":"fxFlex.lt-md","fxFlex.lt-lg":"fxFlex.lt-lg","fxFlex.lt-xl":"fxFlex.lt-xl","fxFlex.gt-xs":"fxFlex.gt-xs","fxFlex.gt-sm":"fxFlex.gt-sm","fxFlex.gt-md":"fxFlex.gt-md","fxFlex.gt-lg":"fxFlex.gt-lg"},features:[p.qOj]}),Me})();const J=new Map,ht=new Map,m=new Map,M=new Map,N={margin:0,width:"100%",height:"100%","min-width":"100%","min-height":"100%"};let g=(()=>{class Me extends j.QI{buildStyles(Ee){return N}}return Me.\u0275fac=function(){let Le;return function(Ee){return(Le||(Le=p.n5z(Me)))(Ee||Me)}}(),Me.\u0275prov=p.Yz7({token:Me,factory:Me.\u0275fac,providedIn:"root"}),Me})(),x=(()=>{class Me extends j.iR{constructor(Ee,Qt,Ut,Mt){super(Ee,Ut,Qt,Mt),this.styleCache=P,this.addStyles("")}}return Me.\u0275fac=function(Le){return new(Le||Me)(p.Y36(p.SBq),p.Y36(j.RK),p.Y36(g),p.Y36(j.yB))},Me.\u0275dir=p.lG2({type:Me,selectors:[["","fxFill",""],["","fxFlexFill",""]],features:[p.qOj]}),Me})();const P=new Map;let Q=(()=>{class Me extends j.QI{buildStyles(Ee,Qt){const Ut={},[Mt,It]=Ee.split(" ");switch(Mt){case"center":Ut["justify-content"]="center";break;case"space-around":Ut["justify-content"]="space-around";break;case"space-between":Ut["justify-content"]="space-between";break;case"space-evenly":Ut["justify-content"]="space-evenly";break;case"end":case"flex-end":Ut["justify-content"]="flex-end";break;default:Ut["justify-content"]="flex-start"}switch(It){case"start":case"flex-start":Ut["align-items"]=Ut["align-content"]="flex-start";break;case"center":Ut["align-items"]=Ut["align-content"]="center";break;case"end":case"flex-end":Ut["align-items"]=Ut["align-content"]="flex-end";break;case"space-between":Ut["align-content"]="space-between",Ut["align-items"]="stretch";break;case"space-around":Ut["align-content"]="space-around",Ut["align-items"]="stretch";break;case"baseline":Ut["align-content"]="stretch",Ut["align-items"]="baseline";break;default:Ut["align-items"]=Ut["align-content"]="stretch"}return(0,k.kt)(Ut,{display:Qt.inline?"inline-flex":"flex","flex-direction":Qt.layout,"box-sizing":"border-box","max-width":"stretch"===It?(0,k.tj)(Qt.layout)?
1null:"100%":null,"max-height":"stretch"===It&&(0,k.tj)(Qt.layout)?"100%":null})}}return Me.\u0275fac=function(){let Le;return function(Ee){return(Le||(Le=p.n5z(Me)))(Ee||Me)}}(),Me.\u0275prov=p.Yz7({token:Me,factory:Me.\u0275fac,providedIn:"root"}),Me})();const U=["fxLayoutAlign","fxLayoutAlign.xs","fxLayoutAlign.sm","fxLayoutAlign.md","fxLayoutAlign.lg","fxLayoutAlign.xl","fxLayoutAlign.lt-sm","fxLayoutAlign.lt-md","fxLayoutAlign.lt-lg","fxLayoutAlign.lt-xl","fxLayoutAlign.gt-xs","fxLayoutAlign.gt-sm","fxLayoutAlign.gt-md","fxLayoutAlign.gt-lg"];let G=(()=>{class Me extends j.iR{constructor(Ee,Qt,Ut,Mt){super(Ee,Ut,Qt,Mt),this.DIRECTIVE_KEY="layout-align",this.layout="row",this.inline=!1,this.init(),this.marshal.trackValue(this.nativeElement,"layout").pipe((0,b.R)(this.destroySubject)).subscribe(this.onLayoutChange.bind(this))}updateWithValue(Ee){const Qt=this.layout||"row",Ut=this.inline;"row"===Qt&&Ut?this.styleCache=Ae:"row"!==Qt||Ut?"row-reverse"===Qt&&Ut?this.styleCache=We:"row-reverse"!==Qt||Ut?"column"===Qt&&Ut?this.styleCache=ge:"column"!==Qt||Ut?"column-reverse"===Qt&&Ut?this.styleCache=Cn:"column-reverse"===Qt&&!Ut&&(this.styleCache=ae):this.styleCache=W:this.styleCache=te:this.styleCache=wt,this.addStyles(Ee,{layout:Qt,inline:Ut})}onLayoutChange(Ee){const Qt=Ee.value.split(" ");this.layout=Qt[0],this.inline=Ee.value.includes("inline"),k.iQ.find(Ut=>Ut===this.layout)||(this.layout="row"),this.triggerUpdate()}}return Me.\u0275fac=function(Le){return new(Le||Me)(p.Y36(p.SBq),p.Y36(j.RK),p.Y36(Q),p.Y36(j.yB))},Me.\u0275dir=p.lG2({type:Me,features:[p.qOj]}),Me})(),dt=(()=>{class Me extends G{constructor(){super(...arguments),this.inputs=U}}return Me.\u0275fac=function(){let Le;return function(Ee){return(Le||(Le=p.n5z(Me)))(Ee||Me)}}(),Me.\u0275dir=p.lG2({type:Me,selectors:[["","fxLayoutAlign",""],["","fxLayoutAlign.xs",""],["","fxLayoutAlign.sm",""],["","fxLayoutAlign.md",""],["","fxLayoutAlign.lg",""],["","fxLayoutAlign.xl",""],["","fxLayoutAlign.lt-sm",""],["","fxLayoutAlign.lt-md",""],["","fxLayoutAlign.lt-lg",""],["","fxLayoutAlign.lt-xl",""],["","fxLayoutAlign.gt-xs",""],["","fxLayoutAlign.gt-sm",""],["","fxLayoutAlign.gt-md",""],["","fxLayoutAlign.gt-lg",""]],inputs:{fxLayoutAlign:"fxLayoutAlign","fxLayoutAlign.xs":"fxLayoutAlign.xs","fxLayoutAlign.sm":"fxLayoutAlign.sm","fxLayoutAlign.md":"fxLayoutAlign.md","fxLayoutAlign.lg":"fxLayoutAlign.lg","fxLayoutAlign.xl":"fxLayoutAlign.xl","fxLayoutAlign.lt-sm":"fxLayoutAlign.lt-sm","fxLayoutAlign.lt-md":"fxLayoutAlign.lt-md","fxLayoutAlign.lt-lg":"fxLayoutAlign.lt-lg","fxLayoutAlign.lt-xl":"fxLayoutAlign.lt-xl","fxLayoutAlign.gt-xs":"fxLayoutAlign.gt-xs","fxLayoutAlign.gt-sm":"fxLayoutAlign.gt-sm","fxLayoutAlign.gt-md":"fxLayoutAlign.gt-md","fxLayoutAlign.gt-lg":"fxLayoutAlign.gt-lg"},features:[p.qOj]}),Me})();const wt=new Map,W=new Map,te=new Map,ae=new Map,Ae=new Map,ge=new Map,We=new Map,Cn=new Map;let rn=(()=>{class Me{}return Me.\u0275fac=function(Le){return new(Le||Me)},Me.\u0275mod=p.oAB({type:Me}),Me.\u0275inj=p.cJS({imports:[[j.IR,s.vT]]}),Me})()},2155:(u,D,v)=>{v.d(D,{o9:()=>V});var p=v(6435),s=v(3270),j=v(3322),k=v(7093);v(3191);let b=(()=>{class _{}return _.\u0275fac=function(H){return new(H||_)},_.\u0275mod=p.oAB({type:_}),_.\u0275inj=p.cJS({imports:[[s.IR]]}),_})();var B=v(9808);let V=(()=>{class _{constructor(Y,q){(0,B.PM)(q)&&!Y&&console.warn("Warning: Flex Layout loaded on the server without FlexLayoutServerModule")}static withConfig(Y,q=[]){return{ngModule:_,providers:Y.serverLoaded?[{provide:s.WU,useValue:Object.assign(Object.assign({},s.g5),Y)},{provide:s.Bs,useValue:q,multi:!0},{provide:s.wY,useValue:!0}]:[{provide:s.WU,useValue:Object.assign(Object.assign({},s.g5),Y)},{provide:s.Bs,useValue:q,multi:!0}]}}}return _.\u0275fac=function(H){return new(H||_)(p.LFG(s.wY),p.LFG(p.Lbi))},_.\u0275mod=p.oAB({type:_}),_.\u0275inj=p.cJS({imports:[[k.ae,j.aT,b],k.ae,j.aT,b]}),_})()},7688:(u,D,v)=>{v.d(D,{WI:()=>Nt,uw:()=>hn,Is:()=>mn,so:()=>Z});
1var p=v(3191),s=v(6435),j=v(8929),k=v(1086),b=v(2916),B=v(6688),V=v(7043),_=v(4850);function H(gt,L,z,$){return(0,V.m)(z)&&($=z,z=void 0),$?H(gt,L,z).pipe((0,_.U)(Tt=>(0,B.k)(Tt)?$(...Tt):$(Tt))):new b.y(Tt=>{Y(gt,L,function(we){Tt.next(arguments.length>1?Array.prototype.slice.call(arguments):we)},Tt,z)})}function Y(gt,L,z,$,Tt){let qt;if((Ce=gt)&&"function"==typeof Ce.addEventListener&&"function"==typeof Ce.removeEventListener){const we=gt;gt.addEventListener(L,z,Tt),qt=()=>we.removeEventListener(L,z,Tt)}else if(function(Ce){return Ce&&"function"==typeof Ce.on&&"function"==typeof Ce.off}(gt)){const we=gt;gt.on(L,z),qt=()=>we.off(L,z)}else if(function(Ce){return Ce&&"function"==typeof Ce.addListener&&"function"==typeof Ce.removeListener}(gt)){const we=gt;gt.addListener(L,z),qt=()=>we.removeListener(L,z)}else{if(!gt||!gt.length)throw new TypeError("Invalid event target");for(let we=0,Ce=gt.length;we<Ce;we++)Y(gt[we],L,z,$,Tt)}var Ce;$.add(qt)}var q=v(6686),it=v(2268);new class extends it.v{flush(L){this.active=!0,this.scheduled=void 0;const{actions:z}=this;let $,Tt=-1,qt=z.length;L=L||z.shift();do{if($=L.execute(L.state,L.delay))break}while(++Tt<qt&&(L=z.shift()));if(this.active=!1,$){for(;++Tt<qt&&(L=z.shift());)L.unsubscribe();throw $}}}(class extends q.o{constructor(L,z){super(L,z),this.scheduler=L,this.work=z}requestAsyncId(L,z,$=0){return null!==$&&$>0?super.requestAsyncId(L,z,$):(L.actions.push(this),L.scheduled||(L.scheduled=requestAnimationFrame(()=>L.flush(null))))}recycleAsyncId(L,z,$=0){if(null!==$&&$>0||null===$&&this.delay>0)return super.recycleAsyncId(L,z,$);0===L.actions.length&&(cancelAnimationFrame(z),L.scheduled=void 0)}});let vt=1;const at=Promise.resolve(),J={};function ht(gt){return gt in J&&(delete J[gt],!0)}const m={setImmediate(gt){const L=vt++;return J[L]=!0,at.then(()=>ht(L)&>()),L},clearImmediate(gt){ht(gt)}},M=(new class extends it.v{flush(L){this.active=!0,this.scheduled=void 0;const{actions:z}=this;let $,Tt=-1,qt=z.length;L=L||z.shift();do{if($=L.execute(L.state,L.delay))break}while(++Tt<qt&&(L=z.shift()));if(this.active=!1,$){for(;++Tt<qt&&(L=z.shift());)L.unsubscribe();throw $}}}(class extends q.o{constructor(L,z){super(L,z),this.scheduler=L,this.work=z}requestAsyncId(L,z,$=0){return null!==$&&$>0?super.requestAsyncId(L,z,$):(L.actions.push(this),L.scheduled||(L.scheduled=m.setImmediate(L.flush.bind(L,null))))}recycleAsyncId(L,z,$=0){if(null!==$&&$>0||null===$&&this.delay>0)return super.recycleAsyncId(L,z,$);0===L.actions.length&&(m.clearImmediate(z),L.scheduled=void 0)}}),new it.v(q.o));var N=v(1177);class g{constructor(L){this.durationSelector=L}call(L,z){return z.subscribe(new x(L,this.durationSelector))}}class x extends N.Ds{constructor(L,z){super(L),this.durationSelector=z,this.hasValue=!1}_next(L){if(this.value=L,this.hasValue=!0,!this.throttled){let z;try{const{durationSelector:Tt}=this;z=Tt(L)}catch(Tt){return this.destination.error(Tt)}const $=(0,N.ft)(z,new N.IY(this));!$||$.closed?this.clearThrottle():this.add(this.throttled=$)}}clearThrottle(){const{value:L,hasValue:z,throttled:$}=this;$&&(this.remove($),this.throttled=void 0,$.unsubscribe()),z&&(this.value=void 0,this.hasValue=!1,this.destination.next(L))}notifyNext(){this.clearThrottle()}notifyComplete(){this.clearThrottle()}}function P(gt){return!(0,B.k)(gt)&>-parseFloat(gt)+1>=0}var Q=v(2866);function U(gt){const{index:L,period:z,subscriber:$}=gt;if($.next(L),!$.closed){if(-1===z)return $.complete();gt.index=L+1,this.schedule(gt,z)}}function G(gt,L=M){return $=()=>function($=0,Tt,qt){let we=-1;return P(Tt)?we=Number(Tt)<1?1:Number(Tt):(0,Q.K)(Tt)&&(qt=Tt),(0,Q.K)(qt)||(qt=M),new b.y(Ce=>{const Ke=P($)?$:+$-qt.now();return qt.schedule(U,Ke,{index:0,period:we,subscriber:Ce})})}(gt,L),function(Tt){return Tt.lift(new g($))};var $}
1var dt=v(2198),wt=v(9808);let W;try{W=typeof Intl<"u"&&Intl.v8BreakIterator}catch{W=!1}let te,ae,Ae,ge=(()=>{class gt{constructor(z){this._platformId=z,this.isBrowser=this._platformId?(0,wt.NF)(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!W)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}}return gt.\u0275fac=function(L){return new(L||gt)(s.LFG(s.Lbi))},gt.\u0275prov=s.Yz7({token:gt,factory:gt.\u0275fac,providedIn:"root"}),gt})(),We=(()=>{class gt{}return gt.\u0275fac=function(L){return new(L||gt)},gt.\u0275mod=s.oAB({type:gt}),gt.\u0275inj=s.cJS({}),gt})();function Cn(gt){return function(){if(null==te&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>te=!0}))}finally{te=te||!1}return te}()?gt:!!gt.capture}function Me(){let gt=typeof document<"u"&&document?document.activeElement:null;for(;gt&>.shadowRoot;){const L=gt.shadowRoot.activeElement;if(L===gt)break;gt=L}return gt}function Le(gt){return gt.composedPath?gt.composedPath()[0]:gt.target}function Ee(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}var Qt=v(226);let Ut=(()=>{class gt{constructor(z,$,Tt){this._ngZone=z,this._platform=$,this._scrolled=new j.xQ,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=Tt}register(z){this.scrollContainers.has(z)||this.scrollContainers.set(z,z.elementScrolled().subscribe(()=>this._scrolled.next(z)))}deregister(z){const $=this.scrollContainers.get(z);$&&($.unsubscribe(),this.scrollContainers.delete(z))}scrolled(z=20){return this._platform.isBrowser?new b.y($=>{this._globalSubscription||this._addGlobalListener();const Tt=z>0?this._scrolled.pipe(G(z)).subscribe($):this._scrolled.subscribe($);return this._scrolledCount++,()=>{Tt.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):(0,k.of)()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((z,$)=>this.deregister($)),this._scrolled.complete()}ancestorScrolled(z,$){const Tt=this.getAncestorScrollContainers(z);return this.scrolled($).pipe((0,dt.h)(qt=>!qt||Tt.indexOf(qt)>-1))}getAncestorScrollContainers(z){const $=[];return this.scrollContainers.forEach((Tt,qt)=>{this._scrollableContainsElement(qt,z)&&$.push(qt)}),$}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(z,$){let Tt=(0,p.fI)($),qt=z.getElementRef().nativeElement;do{if(Tt==qt)return!0}while(Tt=Tt.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>H(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}}return gt.\u0275fac=function(L){return new(L||gt)(s.LFG(s.R0b),s.LFG(ge),s.LFG(wt.K0,8))},gt.\u0275prov=s.Yz7({token:gt,factory:gt.\u0275fac,providedIn:"root"}),gt})(),Mt=(()=>{class gt{constructor(z,$,Tt){this._platform=z,this._change=new j.xQ,this._changeListener=qt=>{this._change.next(qt)},this._document=Tt,$.runOutsideAngular(()=>{if(z.isBrowser){const qt=this._getWindow();qt.addEventListener("resize",this._changeListener),qt.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const z=this._getWindow();z.removeEventListener("resize",this._changeListener),z.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const z={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),z}getViewportRect(){const z=this.getViewportScrollPosition(),{width:$,height:Tt}=this.getViewportSize();
1return{top:z.top,left:z.left,bottom:z.top+Tt,right:z.left+$,height:Tt,width:$}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const z=this._document,$=this._getWindow(),Tt=z.documentElement,qt=Tt.getBoundingClientRect();return{top:-qt.top||z.body.scrollTop||$.scrollY||Tt.scrollTop||0,left:-qt.left||z.body.scrollLeft||$.scrollX||Tt.scrollLeft||0}}change(z=20){return z>0?this._change.pipe(G(z)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const z=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:z.innerWidth,height:z.innerHeight}:{width:0,height:0}}}return gt.\u0275fac=function(L){return new(L||gt)(s.LFG(ge),s.LFG(s.R0b),s.LFG(wt.K0,8))},gt.\u0275prov=s.Yz7({token:gt,factory:gt.\u0275fac,providedIn:"root"}),gt})(),It=(()=>{class gt{}return gt.\u0275fac=function(L){return new(L||gt)},gt.\u0275mod=s.oAB({type:gt}),gt.\u0275inj=s.cJS({}),gt})(),mt=(()=>{class gt{}return gt.\u0275fac=function(L){return new(L||gt)},gt.\u0275mod=s.oAB({type:gt}),gt.\u0275inj=s.cJS({imports:[[Qt.vT,We,It],Qt.vT,It]}),gt})();class lt{attach(L){return this._attachedHost=L,L.attach(this)}detach(){let L=this._attachedHost;null!=L&&(this._attachedHost=null,L.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(L){this._attachedHost=L}}class et extends lt{constructor(L,z,$,Tt){super(),this.component=L,this.viewContainerRef=z,this.injector=$,this.componentFactoryResolver=Tt}}class ct extends lt{constructor(L,z,$){super(),this.templateRef=L,this.viewContainerRef=z,this.context=$}get origin(){return this.templateRef.elementRef}attach(L,z=this.context){return this.context=z,super.attach(L)}detach(){return this.context=void 0,super.detach()}}class Vt extends lt{constructor(L){super(),this.element=L instanceof s.SBq?L.nativeElement:L}}class Rt{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(L){return L instanceof et?(this._attachedPortal=L,this.attachComponentPortal(L)):L instanceof ct?(this._attachedPortal=L,this.attachTemplatePortal(L)):this.attachDomPortal&&L instanceof Vt?(this._attachedPortal=L,this.attachDomPortal(L)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(L){this._disposeFn=L}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class ne extends Rt{constructor(L,z,$,Tt,qt){super(),this.outletElement=L,this._componentFactoryResolver=z,this._appRef=$,this._defaultInjector=Tt,this.attachDomPortal=we=>{const Ce=we.element,Ke=this._document.createComment("dom-portal");Ce.parentNode.insertBefore(Ke,Ce),this.outletElement.appendChild(Ce),this._attachedPortal=we,super.setDisposeFn(()=>{Ke.parentNode&&Ke.parentNode.replaceChild(Ce,Ke)})},this._document=qt}attachComponentPortal(L){const z=(L.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(L.component);let $;return L.viewContainerRef?($=L.viewContainerRef.createComponent(z,L.viewContainerRef.length,L.injector||L.viewContainerRef.injector),this.setDisposeFn(()=>$.destroy())):($=z.create(L.injector||this._defaultInjector),this._appRef.attachView($.hostView),this.setDisposeFn(()=>{this._appRef.detachView($.hostView),$.destroy()})),this.outletElement.appendChild(this._getComponentRootNode($)),this._attachedPortal=L,$}attachTemplatePortal(L){let z=L.viewContainerRef,$=z.createEmbeddedView(L.templateRef,L.context);return $.rootNodes.forEach(Tt=>this.outletElement.appendChild(Tt)),$.detectChanges(),this.setDisposeFn(()=>{let Tt=z.indexOf($);-1!==Tt&&z.remove(Tt)}),this._attachedPortal=L,$}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(L){return L.hostView.rootNodes[0]}}let bt=(()=>{class gt extends Rt{constructor(z,$,Tt){super(),this._componentFactoryResolver=z,this._viewContainerRef=$,this._isInitialized=!1,this.attached=new s.vpe,this.attachDomPortal=qt=>{const we=qt.element,Ce=this._document.createComment("dom-portal");qt.setAttachedHost(this),we.parentNode.insertBefore(Ce,we),this._getRootNode().appendChild(we),this._attachedPortal=qt,super.setDisposeFn(()=>{Ce.parentNode&&Ce.parentNode.replaceChild(we,Ce)})},this._document=Tt}get portal(){return this._attachedPortal}set portal(z){this.hasAttached()&&!z&&!this._isInitialized||(this.hasAttached()&&super.detach(),z&&super.attach(z),this._attachedPortal=z||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedPortal=null,this._attachedRef=null}attachComponentPortal(z){z.setAttachedHost(this);const $=null!=z.viewContainerRef?z.viewContainerRef:this._viewContainerRef,Tt=(z.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(z.component),qt=$.createComponent(Tt,$.length,z.injector||$.injector);return $!==this._viewContainerRef&&this._getRootNode().appendChild(qt.hostView.rootNodes[0]),super.setDisposeFn(()=>qt.destroy()),this._attachedPortal=z,this._attachedRef=qt,this.attached.emit(qt),qt}attachTemplatePortal(z){z.setAttachedHost(this);const $=this._viewContainerRef.createEmbeddedView(z.templateRef,z.context);return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=z,this._attachedRef=$,this.attached.emit($),$}_getRootNode(){const z=this._viewContainerRef.element.nativeElement;return z.nodeType===z.ELEMENT_NODE?z:z.parentNode}}return gt.\u0275fac=function(L){return new(L||gt)(s.Y36(s._Vd),s.Y36(s.s_b),s.Y36(wt.K0))},gt.\u0275dir=s.lG2({type:gt,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:["cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[s.qOj]}),gt})(),kt=(()=>{class gt{}return gt.\u0275fac=function(L){return new(L||gt)},gt.\u0275mod=s.oAB({type:gt}),gt.\u0275inj=s.cJS({}),gt})();var de=v(2654),Wt=v(6787),en=v(2986),be=v(7625);const qe=function rn(){if(null==ae){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return ae=!1,ae;if("scrollBehavior"in document.documentElement.style)ae=!0;else{const gt=Element.prototype.scrollTo;ae=!!gt&&!/\{\s*\[native code\]\s*\}/.test(gt.toString())}}return ae}();
1class kn{constructor(L,z){this._viewportRuler=L,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=z}attach(){}enable(){if(this._canBeEnabled()){const L=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=L.style.left||"",this._previousHTMLStyles.top=L.style.top||"",L.style.left=(0,p.HM)(-this._previousScrollPosition.left),L.style.top=(0,p.HM)(-this._previousScrollPosition.top),L.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const L=this._document.documentElement,z=L.style,$=this._document.body.style,Tt=z.scrollBehavior||"",qt=$.scrollBehavior||"";this._isEnabled=!1,z.left=this._previousHTMLStyles.left,z.top=this._previousHTMLStyles.top,L.classList.remove("cdk-global-scrollblock"),qe&&(z.scrollBehavior=$.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),qe&&(z.scrollBehavior=Tt,$.scrollBehavior=qt)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const L=this._document.body,z=this._viewportRuler.getViewportSize();return L.scrollHeight>z.height||L.scrollWidth>z.width}}class yr{constructor(L,z,$,Tt){this._scrollDispatcher=L,this._ngZone=z,this._viewportRuler=$,this._config=Tt,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(L){this._overlayRef=L}enable(){if(this._scrollSubscription)return;const L=this._scrollDispatcher.scrolled(0);this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=L.subscribe(()=>{const z=this._viewportRuler.getViewportScrollPosition().top;Math.abs(z-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=L.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class ur{enable(){}disable(){}attach(){}}function ee(gt,L){return L.some(z=>gt.bottom<z.top||gt.top>z.bottom||gt.right<z.left||gt.left>z.right)}function Se(gt,L){return L.some(z=>gt.top<z.top||gt.bottom>z.bottom||gt.left<z.left||gt.right>z.right)}class Re{constructor(L,z,$,Tt){this._scrollDispatcher=L,this._viewportRuler=z,this._ngZone=$,this._config=Tt,this._scrollSubscription=null}attach(L){this._overlayRef=L}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const L=this._overlayRef.overlayElement.getBoundingClientRect(),{width:z,height:$}=this._viewportRuler.getViewportSize();ee(L,[{width:z,height:$,bottom:$,right:z,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let Be=(()=>{class gt{constructor(z,$,Tt,qt){this._scrollDispatcher=z,this._viewportRuler=$,this._ngZone=Tt,this.noop=()=>new ur,this.close=we=>new yr(this._scrollDispatcher,this._ngZone,this._viewportRuler,we),this.block=()=>new kn(this._viewportRuler,this._document),this.reposition=we=>new Re(this._scrollDispatcher,this._viewportRuler,this._ngZone,we),this._document=qt}}return gt.\u0275fac=function(L){return new(L||gt)(s.LFG(Ut),s.LFG(Mt),s.LFG(s.R0b),s.LFG(wt.K0))},gt.\u0275prov=s.Yz7({token:gt,factory:gt.\u0275fac,providedIn:"root"}),gt})();class Lt{constructor(L){if(this.scrollStrategy=new ur,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,L){const z=Object.keys(L);for(const $ of z)void 0!==L[$]&&(this[$]=L[$])}}}class Ht{constructor(L,z){this.connectionPair=L,this.scrollableViewProperties=z}}class Jt{constructor(L,z,$,Tt,qt,we,Ce,Ke,wn){this._portalOutlet=L,this._host=z,this._pane=$,this._config=Tt,this._ngZone=qt,this._keyboardDispatcher=we,this._document=Ce,this._location=Ke,this._outsideClickDispatcher=wn,this._backdropElement=null,this._backdropClick=new j.xQ,this._attachments=new j.xQ,this._detachments=new j.xQ,this._locationChanges=de.w.EMPTY,this._backdropClickHandler=Gn=>
1this._backdropClick.next(Gn),this._keydownEvents=new j.xQ,this._outsidePointerEvents=new j.xQ,Tt.scrollStrategy&&(this._scrollStrategy=Tt.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=Tt.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(L){let z=this._portalOutlet.attach(L);return!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host),this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe((0,en.q)(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),z}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const L=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),L}dispose(){var L;const z=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),null===(L=this._host)||void 0===L||L.remove(),this._previousHostParent=this._pane=this._host=null,z&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(L){L!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=L,this.hasAttached()&&(L.attach(this),this.updatePosition()))}updateSize(L){this._config=Object.assign(Object.assign({},this._config),L),this._updateElementSize()}setDirection(L){this._config=Object.assign(Object.assign({},this._config),{direction:L}),this._updateElementDirection()}addPanelClass(L){this._pane&&this._toggleClasses(this._pane,L,!0)}removePanelClass(L){this._pane&&this._toggleClasses(this._pane,L,!1)}getDirection(){const L=this._config.direction;return L?"string"==typeof L?L:L.value:"ltr"}updateScrollStrategy(L){L!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=L,this.hasAttached()&&(L.attach(this),L.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const L=this._pane.style;L.width=(0,p.HM)(this._config.width),L.height=(0,p.HM)(this._config.height),L.minWidth=(0,p.HM)(this._config.minWidth),L.minHeight=(0,p.HM)(this._config.minHeight),L.maxWidth=(0,p.HM)(this._config.maxWidth),L.maxHeight=(0,p.HM)(this._config.maxHeight)}_togglePointerEvents(L){this._pane.style.pointerEvents=L?"":"none"}_attachBackdrop(){const L="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(L)})}):this._backdropElement.classList.add(L)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const L=this._backdropElement;if(!L)return;let z;const $=()=>{L&&(L.removeEventListener("click",this._backdropClickHandler),L.removeEventListener("transitionend",$),this._disposeBackdrop(L)),this._config.backdropClass&&this._toggleClasses(L,this._config.backdropClass,!1),clearTimeout(z)};L.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{L.addEventListener("transitionend",$)}),L.style.pointerEvents="none",z=this._ngZone.runOutsideAngular(()=>setTimeout($,500))}_toggleClasses(L,z,$){const Tt=(0,p.Eq)(z||[]).filter(qt=>!!qt);Tt.length&&($?L.classList.add(...Tt):L.classList.remove(...Tt))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const L=this._ngZone.onStable.pipe((0,be.R)((0,Wt.T)(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),L.unsubscribe())})})}_disposeScrollStrategy(){const L=this._scrollStrategy;L&&(L.disable(),L.detach&&L.detach())}_disposeBackdrop(L){L&&(L.remove(),this._backdropElement===L&&(this._backdropElement=null))}}let Ie=(()=>{class gt{constructor(z,$){this._platform=$,this._document=z}ngOnDestroy(){var z;null===(z=this._containerElement)||void 0===z||z.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const z="cdk-overlay-container";if(this._platform.isBrowser||Ee()){const Tt=this._document.querySelectorAll(`.${z}[platform="server"], .${z}[platform="test"]`);for(let qt=0;qt<Tt.length;qt++)Tt[qt].remove()}const $=this._document.createElement("div");$.classList.add(z),Ee()?$.setAttribute("platform","test"):this._platform.isBrowser||$.setAttribute("platform","server"),this._document.body.appendChild($),this._containerElement=$}}return gt.\u0275fac=function(L){return new(L||gt)(s.LFG(wt.K0),s.LFG(ge))},gt.\u0275prov=s.Yz7({token:gt,factory:gt.\u0275fac,providedIn:"root"}),gt})();const Je="cdk-overlay-connected-position-bounding-box",Te=/([A-Za-z%]+)$/;
1class nn{constructor(L,z,$,Tt,qt){this._viewportRuler=z,this._document=$,this._platform=Tt,this._overlayContainer=qt,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new j.xQ,this._resizeSubscription=de.w.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(L)}get positions(){return this._preferredPositions}attach(L){this._validatePositions(),L.hostElement.classList.add(Je),this._overlayRef=L,this._boundingBox=L.hostElement,this._pane=L.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const L=this._originRect,z=this._overlayRect,$=this._viewportRect,Tt=this._containerRect,qt=[];let we;for(let Ce of this._preferredPositions){let Ke=this._getOriginPoint(L,Tt,Ce),wn=this._getOverlayPoint(Ke,z,Ce),Gn=this._getOverlayFit(wn,z,$,Ce);if(Gn.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(Ce,Ke);this._canFitWithFlexibleDimensions(Gn,wn,$)?qt.push({position:Ce,origin:Ke,overlayRect:z,boundingBoxRect:this._calculateBoundingBoxRect(Ke,Ce)}):(!we||we.overlayFit.visibleArea<Gn.visibleArea)&&(we={overlayFit:Gn,overlayPoint:wn,originPoint:Ke,position:Ce,overlayRect:z})}if(qt.length){let Ce=null,Ke=-1;for(const wn of qt){const Gn=wn.boundingBoxRect.width*wn.boundingBoxRect.height*(wn.position.weight||1);Gn>Ke&&(Ke=Gn,Ce=wn)}return this._isPushed=!1,void this._applyPosition(Ce.position,Ce.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(we.position,we.originPoint);this._applyPosition(we.position,we.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&pn(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(Je),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(!this._isDisposed&&(!this._platform||this._platform.isBrowser)){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const L=this._lastPosition||this._preferredPositions[0],z=this._getOriginPoint(this._originRect,this._containerRect,L);this._applyPosition(L,z)}}withScrollableContainers(L){return this._scrollables=L,this}withPositions(L){return this._preferredPositions=L,-1===L.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(L){return this._viewportMargin=L,this}withFlexibleDimensions(L=!0){return this._hasFlexibleDimensions=L,this}withGrowAfterOpen(L=!0){return this._growAfterOpen=L,this}withPush(L=!0){return this._canPush=L,this}withLockedPosition(L=!0){return this._positionLocked=L,this}setOrigin(L){return this._origin=L,this}withDefaultOffsetX(L){return this._offsetX=L,this}withDefaultOffsetY(L){return this._offsetY=L,this}withTransformOriginOn(L){return this._transformOriginSelector=L,this}_getOriginPoint(L,z,$){let Tt,qt;if("center"==$.originX)Tt=L.left+L.width/2;else{const we=this._isRtl()?L.right:L.left,Ce=this._isRtl()?L.left:L.right;Tt="start"==$.originX?we:Ce}return z.left<0&&(Tt-=z.left),qt="center"==$.originY?L.top+L.height/2:"top"==$.originY?L.top:L.bottom,z.top<0&&(qt-=z.top),{x:Tt,y:qt}}_getOverlayPoint(L,z,$){let Tt,qt;return Tt="center"==$.overlayX?-z.width/2:"start"===$.overlayX?this._isRtl()?-z.width:0:this._isRtl()?0:-z.width,qt="center"==$.overlayY?-z.height/2:"top"==$.overlayY?0:-z.height,{x:L.x+Tt,y:L.y+qt}}_getOverlayFit(L,z,$,Tt){const qt=Mn(z);let{x:we,y:Ce}=L,Ke=this._getOffset(Tt,"x"),wn=this._getOffset(Tt,"y");Ke&&(we+=Ke),wn&&(Ce+=wn);
1let Gn=0-Ce,dr=Ce+qt.height-$.height,jr=this._subtractOverflows(qt.width,0-we,we+qt.width-$.width),Pi=this._subtractOverflows(qt.height,Gn,dr),Ri=jr*Pi;return{visibleArea:Ri,isCompletelyWithinViewport:qt.width*qt.height===Ri,fitsInViewportVertically:Pi===qt.height,fitsInViewportHorizontally:jr==qt.width}}_canFitWithFlexibleDimensions(L,z,$){if(this._hasFlexibleDimensions){const Tt=$.bottom-z.y,qt=$.right-z.x,we=Pn(this._overlayRef.getConfig().minHeight),Ce=Pn(this._overlayRef.getConfig().minWidth),Ke=L.fitsInViewportHorizontally||null!=Ce&&Ce<=qt;return(L.fitsInViewportVertically||null!=we&&we<=Tt)&&Ke}return!1}_pushOverlayOnScreen(L,z,$){if(this._previousPushAmount&&this._positionLocked)return{x:L.x+this._previousPushAmount.x,y:L.y+this._previousPushAmount.y};const Tt=Mn(z),qt=this._viewportRect,we=Math.max(L.x+Tt.width-qt.width,0),Ce=Math.max(L.y+Tt.height-qt.height,0),Ke=Math.max(qt.top-$.top-L.y,0),wn=Math.max(qt.left-$.left-L.x,0);let Gn=0,dr=0;return Gn=Tt.width<=qt.width?wn||-we:L.x<this._viewportMargin?qt.left-$.left-L.x:0,dr=Tt.height<=qt.height?Ke||-Ce:L.y<this._viewportMargin?qt.top-$.top-L.y:0,this._previousPushAmount={x:Gn,y:dr},{x:L.x+Gn,y:L.y+dr}}_applyPosition(L,z){if(this._setTransformOrigin(L),this._setOverlayElementStyles(z,L),this._setBoundingBoxStyles(z,L),L.panelClass&&this._addPanelClasses(L.panelClass),this._lastPosition=L,this._positionChanges.observers.length){const $=this._getScrollVisibility(),Tt=new Ht(L,$);this._positionChanges.next(Tt)}this._isInitialRender=!1}_setTransformOrigin(L){if(!this._transformOriginSelector)return;const z=this._boundingBox.querySelectorAll(this._transformOriginSelector);let $,Tt=L.overlayY;$="center"===L.overlayX?"center":this._isRtl()?"start"===L.overlayX?"right":"left":"start"===L.overlayX?"left":"right";for(let qt=0;qt<z.length;qt++)z[qt].style.transformOrigin=`${$} ${Tt}`}_calculateBoundingBoxRect(L,z){const $=this._viewportRect,Tt=this._isRtl();let qt,we,Ce,Ke,wn,Gn;if("top"===z.overlayY)we=L.y,qt=$.height-we+this._viewportMargin;else if("bottom"===z.overlayY)Ce=$.height-L.y+2*this._viewportMargin,qt=$.height-Ce+this._viewportMargin;else{const dr=Math.min($.bottom-L.y+$.top,L.y),jr=this._lastBoundingBoxSize.height;qt=2*dr,we=L.y-dr,qt>jr&&!this._isInitialRender&&!this._growAfterOpen&&(we=L.y-jr/2)}if("end"===z.overlayX&&!Tt||"start"===z.overlayX&&Tt)Gn=$.width-L.x+this._viewportMargin,Ke=L.x-this._viewportMargin;else if("start"===z.overlayX&&!Tt||"end"===z.overlayX&&Tt)wn=L.x,Ke=$.right-L.x;else{const dr=Math.min($.right-L.x+$.left,L.x),jr=this._lastBoundingBoxSize.width;Ke=2*dr,wn=L.x-dr,Ke>jr&&!this._isInitialRender&&!this._growAfterOpen&&(wn=L.x-jr/2)}return{top:we,left:wn,bottom:Ce,right:Gn,width:Ke,height:qt}}_setBoundingBoxStyles(L,z){const $=this._calculateBoundingBoxRect(L,z);!this._isInitialRender&&!this._growAfterOpen&&($.height=Math.min($.height,this._lastBoundingBoxSize.height),$.width=Math.min($.width,this._lastBoundingBoxSize.width));const Tt={};if(this._hasExactPosition())Tt.top=Tt.left="0",Tt.bottom=Tt.right=Tt.maxHeight=Tt.maxWidth="",Tt.width=Tt.height="100%";else{const qt=this._overlayRef.getConfig().maxHeight,we=this._overlayRef.getConfig().maxWidth;Tt.height=(0,p.HM)($.height),Tt.top=(0,p.HM)($.top),Tt.bottom=(0,p.HM)($.bottom),Tt.width=(0,p.HM)($.width),Tt.left=(0,p.HM)($.left),Tt.right=(0,p.HM)($.right),Tt.alignItems="center"===z.overlayX?"center":"end"===z.overlayX?"flex-end":"flex-start",Tt.justifyContent="center"===z.overlayY?"center":"bottom"===z.overlayY?"flex-end":"flex-start",qt&&(Tt.maxHeight=(0,p.HM)(qt)),we&&(Tt.maxWidth=(0,p.HM)(we))}this._lastBoundingBoxSize=$,pn(this._boundingBox.style,Tt)}_resetBoundingBoxStyles(){pn(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){pn(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(L,z){const $={},Tt=this._hasExactPosition(),qt=this._hasFlexibleDimensions,we=this._overlayRef.getConfig();if(Tt){const Gn=this._viewportRuler.getViewportScrollPosition();pn($,this._getExactOverlayY(z,L,Gn)),pn($,this._getExactOverlayX(z,
1L,Gn))}else $.position="static";let Ce="",Ke=this._getOffset(z,"x"),wn=this._getOffset(z,"y");Ke&&(Ce+=`translateX(${Ke}px) `),wn&&(Ce+=`translateY(${wn}px)`),$.transform=Ce.trim(),we.maxHeight&&(Tt?$.maxHeight=(0,p.HM)(we.maxHeight):qt&&($.maxHeight="")),we.maxWidth&&(Tt?$.maxWidth=(0,p.HM)(we.maxWidth):qt&&($.maxWidth="")),pn(this._pane.style,$)}_getExactOverlayY(L,z,$){let Tt={top:"",bottom:""},qt=this._getOverlayPoint(z,this._overlayRect,L);return this._isPushed&&(qt=this._pushOverlayOnScreen(qt,this._overlayRect,$)),"bottom"===L.overlayY?Tt.bottom=this._document.documentElement.clientHeight-(qt.y+this._overlayRect.height)+"px":Tt.top=(0,p.HM)(qt.y),Tt}_getExactOverlayX(L,z,$){let Tt,qt={left:"",right:""},we=this._getOverlayPoint(z,this._overlayRect,L);return this._isPushed&&(we=this._pushOverlayOnScreen(we,this._overlayRect,$)),Tt=this._isRtl()?"end"===L.overlayX?"left":"right":"end"===L.overlayX?"right":"left","right"===Tt?qt.right=this._document.documentElement.clientWidth-(we.x+this._overlayRect.width)+"px":qt.left=(0,p.HM)(we.x),qt}_getScrollVisibility(){const L=this._getOriginRect(),z=this._pane.getBoundingClientRect(),$=this._scrollables.map(Tt=>Tt.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:Se(L,$),isOriginOutsideView:ee(L,$),isOverlayClipped:Se(z,$),isOverlayOutsideView:ee(z,$)}}_subtractOverflows(L,...z){return z.reduce(($,Tt)=>$-Math.max(Tt,0),L)}_getNarrowedViewportRect(){const L=this._document.documentElement.clientWidth,z=this._document.documentElement.clientHeight,$=this._viewportRuler.getViewportScrollPosition();return{top:$.top+this._viewportMargin,left:$.left+this._viewportMargin,right:$.left+L-this._viewportMargin,bottom:$.top+z-this._viewportMargin,width:L-2*this._viewportMargin,height:z-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(L,z){return"x"===z?L.offsetX??this._offsetX:L.offsetY??this._offsetY}_validatePositions(){}
1_addPanelClasses(L){this._pane&&(0,p.Eq)(L).forEach(z=>{""!==z&&-1===this._appliedPanelClasses.indexOf(z)&&(this._appliedPanelClasses.push(z),this._pane.classList.add(z))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(L=>{this._pane.classList.remove(L)}),this._appliedPanelClasses=[])}_getOriginRect(){const L=this._origin;if(L instanceof s.SBq)return L.nativeElement.getBoundingClientRect();if(L instanceof Element)return L.getBoundingClientRect();const z=L.width||0,$=L.height||0;return{top:L.y,bottom:L.y+$,left:L.x,right:L.x+z,height:$,width:z}}}function pn(gt,L){for(let z in L)L.hasOwnProperty(z)&&(gt[z]=L[z]);return gt}function Pn(gt){if("number"!=typeof gt&&null!=gt){const[L,z]=gt.split(Te);return z&&"px"!==z?null:parseFloat(L)}return gt||null}function Mn(gt){return{top:Math.floor(gt.top),right:Math.floor(gt.right),bottom:Math.floor(gt.bottom),left:Math.floor(gt.left),width:Math.floor(gt.width),height:Math.floor(gt.height)}}const Ve="cdk-global-overlay-wrapper";class Pe{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._leftOffset="",this._rightOffset="",this._alignItems="",this._justifyContent="",this._width="",this._height=""}attach(L){const z=L.getConfig();this._overlayRef=L,this._width&&!z.width&&L.updateSize({width:this._width}),this._height&&!z.height&&L.updateSize({height:this._height}),L.hostElement.classList.add(Ve),this._isDisposed=!1}top(L=""){return this._bottomOffset="",this._topOffset=L,this._alignItems="flex-start",this}left(L=""){return this._rightOffset="",this._leftOffset=L,this._justifyContent="flex-start",this}bottom(L=""){return this._topOffset="",this._bottomOffset=L,this._alignItems="flex-end",this}right(L=""){return this._leftOffset="",this._rightOffset=L,this._justifyContent="flex-end",this}width(L=""){return this._overlayRef?this._overlayRef.updateSize({width:L}):this._width=L,this}height(L=""){return this._overlayRef?this._overlayRef.updateSize({height:L}):this._height=L,this}centerHorizontally(L=""){return this.left(L),this._justifyContent="center",this}centerVertically(L=""){return this.top(L),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const L=this._overlayRef.overlayElement.style,z=this._overlayRef.hostElement.style,$=this._overlayRef.getConfig(),{width:Tt,height:qt,maxWidth:we,maxHeight:Ce}=$,Ke=!("100%"!==Tt&&"100vw"!==Tt||we&&"100%"!==we&&"100vw"!==we),wn=!("100%"!==qt&&"100vh"!==qt||Ce&&"100%"!==Ce&&"100vh"!==Ce);L.position=this._cssPosition,L.marginLeft=Ke?"0":this._leftOffset,L.marginTop=wn?"0":this._topOffset,L.marginBottom=this._bottomOffset,L.marginRight=this._rightOffset,Ke?z.justifyContent="flex-start":"center"===this._justifyContent?z.justifyContent="center":"rtl"===this._overlayRef.getConfig().direction?"flex-start"===this._justifyContent?z.justifyContent="flex-end":"flex-end"===this._justifyContent&&(z.justifyContent="flex-start"):z.justifyContent=this._justifyContent,z.alignItems=wn?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const L=this._overlayRef.overlayElement.style,z=this._overlayRef.hostElement,$=z.style;z.classList.remove(Ve),$.justifyContent=$.alignItems=L.marginTop=L.marginBottom=L.marginLeft=L.marginRight=L.position="",this._overlayRef=null,this._isDisposed=!0}}let zt=(()=>{class gt{constructor(z,$,Tt,qt){this._viewportRuler=z,this._document=$,this._platform=Tt,this._overlayContainer=qt}global(){return new Pe}flexibleConnectedTo(z){return new nn(z,this._viewportRuler,this._document,this._platform,this._overlayContainer)}}return gt.\u0275fac=function(L){return new(L||gt)(s.LFG(Mt),s.LFG(wt.K0),s.LFG(ge),s.LFG(Ie))},gt.\u0275prov=s.Yz7({token:gt,factory:gt.\u0275fac,providedIn:"root"}),gt})(),me=(()=>{class gt{constructor(z){this._attachedOverlays=[],this._document=z}ngOnDestroy(){this.detach()}add(z){this.remove(z),this._attachedOverlays.push(z)}remove(z){const $=this._attachedOverlays.indexOf(z);$>-1&&this._attachedOverlays.splice($,1),0===this._attachedOverlays.length&&this.detach()}}return gt.\u0275fac=function(L){return new(L||gt)(s.LFG(wt.K0))},gt.\u0275prov=s.Yz7({token:gt,factory:gt.\u0275fac,providedIn:"root"}),gt})(),Dt=(()=>
1{class gt extends me{constructor(z){super(z),this._keydownListener=$=>{const Tt=this._attachedOverlays;for(let qt=Tt.length-1;qt>-1;qt--)if(Tt[qt]._keydownEvents.observers.length>0){Tt[qt]._keydownEvents.next($);break}}}add(z){super.add(z),this._isAttached||(this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}}return gt.\u0275fac=function(L){return new(L||gt)(s.LFG(wt.K0))},gt.\u0275prov=s.Yz7({token:gt,factory:gt.\u0275fac,providedIn:"root"}),gt})(),le=(()=>{class gt extends me{constructor(z,$){super(z),this._platform=$,this._cursorStyleIsSet=!1,this._pointerDownListener=Tt=>{this._pointerDownEventTarget=Le(Tt)},this._clickListener=Tt=>{const qt=Le(Tt),we="click"===Tt.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:qt;this._pointerDownEventTarget=null;const Ce=this._attachedOverlays.slice();for(let Ke=Ce.length-1;Ke>-1;Ke--){const wn=Ce[Ke];if(!(wn._outsidePointerEvents.observers.length<1)&&wn.hasAttached()){if(wn.overlayElement.contains(qt)||wn.overlayElement.contains(we))break;wn._outsidePointerEvents.next(Tt)}}}}add(z){if(super.add(z),!this._isAttached){const $=this._document.body;$.addEventListener("pointerdown",this._pointerDownListener,!0),$.addEventListener("click",this._clickListener,!0),$.addEventListener("auxclick",this._clickListener,!0),$.addEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=$.style.cursor,$.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const z=this._document.body;z.removeEventListener("pointerdown",this._pointerDownListener,!0),z.removeEventListener("click",this._clickListener,!0),z.removeEventListener("auxclick",this._clickListener,!0),z.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(z.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}}return gt.\u0275fac=function(L){return new(L||gt)(s.LFG(wt.K0),s.LFG(ge))},gt.\u0275prov=s.Yz7({token:gt,factory:gt.\u0275fac,providedIn:"root"}),gt})(),pe=0,dn=(()=>{class gt{constructor(z,$,Tt,qt,we,Ce,Ke,wn,Gn,dr,jr){this.scrollStrategies=z,this._overlayContainer=$,this._componentFactoryResolver=Tt,this._positionBuilder=qt,this._keyboardDispatcher=we,this._injector=Ce,this._ngZone=Ke,this._document=wn,this._directionality=Gn,this._location=dr,this._outsideClickDispatcher=jr}create(z){const $=this._createHostElement(),Tt=this._createPaneElement($),qt=this._createPortalOutlet(Tt),we=new Lt(z);return we.direction=we.direction||this._directionality.value,new Jt(qt,$,Tt,we,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher)}position(){return this._positionBuilder}_createPaneElement(z){const $=this._document.createElement("div");return $.id="cdk-overlay-"+pe++,$.classList.add("cdk-overlay-pane"),z.appendChild($),$}_createHostElement(){const z=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(z),z}_createPortalOutlet(z){return this._appRef||(this._appRef=this._injector.get(s.z2F)),new ne(z,this._componentFactoryResolver,this._appRef,this._injector,this._document)}}return gt.\u0275fac=function(L){return new(L||gt)(s.LFG(Be),s.LFG(Ie),s.LFG(s._Vd),s.LFG(zt),s.LFG(Dt),s.LFG(s.zs3),s.LFG(s.R0b),s.LFG(wt.K0),s.LFG(Qt.Is),s.LFG(wt.Ye),s.LFG(le))},gt.\u0275prov=s.Yz7({token:gt,factory:gt.\u0275fac}),gt})();const Ze={provide:new s.OlP("cdk-connected-overlay-scroll-strategy"),deps:[dn],useFactory:function(L){return()=>L.scrollStrategies.reposition()}};let Kn=(()=>{class gt{}return gt.\u0275fac=function(L){return new(L||gt)},gt.\u0275mod=s.oAB({type:gt}),gt.\u0275inj=s.cJS({providers:[dn,Ze],imports:[[Qt.vT,kt,mt],mt]}),gt})();var un=v(591),fn=v(3489);class on{constructor(L){this.total=L}call(L,z){return z.subscribe(new Nn(L,this.total))}}class Nn extends fn.L{constructor(L,z){super(L),this.total=z,this.count=0}_next(L){++this.count>this.total&&this.destination.next(L)}}class Zn{constructor(L,z){this.compare=L,this.keySelector=z}call(L,z){return z.subscribe(new cn(L,this.compare,this.keySelector))}}class cn extends fn.L{constructor(L,z,$){super(L),this.keySelector=$,this.hasKey=!1,"function"==typeof z&&(this.compare=z)}compare(L,z){return L===z}_next(L){let z;try{const{keySelector:Tt}=this;z=Tt?Tt(L):L}catch(Tt){return this.destination.error(Tt)}let $=!1;if(this.hasKey)try{const{compare:Tt}=this;$=Tt(this.key,z)}catch(Tt){return this.destination.error(Tt)}else this.hasKey=!0;$||(this.key=z,this.destination.next(L))}}let Qn=(()=>{class gt{constructor(z){this._platform=z}isDisabled(z){return z.hasAttribute("disabled")}isVisible(z){return!!((Tt=z).offsetWidth||Tt.offsetHeight||"function"==typeof Tt.getClientRects&&Tt.getClientRects().length)&&"visible"===getComputedStyle(z).visibility;var Tt}isTabbable(z){if(!this._platform.isBrowser)return!1;const $=function(Ce){try{return Ce.frameElement}catch{return null}}((Ce=z).ownerDocument&&Ce.ownerDocument.defaultView||window);var Ce;if($&&(-1===sn($)||!this.isVisible($)))return!1;let Tt=z.nodeName.toLowerCase(),qt=sn(z);return z.hasAttribute("contenteditable")?-1!==qt:!("iframe"===Tt||"object"===Tt||this._platform.WEBKIT&&this._platform.IOS&&!function(Ce){let Ke=Ce.nodeName.toLowerCase(),wn="input"===Ke&&Ce.type;return"text"===wn||"password"===wn||"select"===Ke||"textarea"===Ke}(z))&&("audio"===Tt?!!z.hasAttribute("controls")&&-1!==qt:"video"===Tt?-1!==qt&&(null!==qt||this._platform.FIRE
1FOX||z.hasAttribute("controls")):z.tabIndex>=0)}isFocusable(z,$){return!("input"==(Ce=qt=z).nodeName.toLowerCase()&&"hidden"==Ce.type)&&(function(Ce){let Ke=Ce.nodeName.toLowerCase();return"input"===Ke||"select"===Ke||"button"===Ke||"textarea"===Ke}(qt)||function(Ce){return"a"==Ce.nodeName.toLowerCase()&&Ce.hasAttribute("href")}(qt)||qt.hasAttribute("contenteditable")||zn(qt))&&!this.isDisabled(z)&&($?.ignoreVisibility||this.isVisible(z));var qt,Ce}}return gt.\u0275fac=function(L){return new(L||gt)(s.LFG(ge))},gt.\u0275prov=s.Yz7({token:gt,factory:gt.\u0275fac,providedIn:"root"}),gt})();function zn(gt){if(!gt.hasAttribute("tabindex")||void 0===gt.tabIndex)return!1;let L=gt.getAttribute("tabindex");return!(!L||isNaN(parseInt(L,10)))}function sn(gt){if(!zn(gt))return null;const L=parseInt(gt.getAttribute("tabindex")||"",10);return isNaN(L)?-1:L}class xn{constructor(L,z,$,Tt,qt=!1){this._element=L,this._checker=z,this._ngZone=$,this._document=Tt,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,qt||this.attachAnchors()}get enabled(){return this._enabled}set enabled(L){this._enabled=L,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(L,this._startAnchor),this._toggleAnchorTabIndex(L,this._endAnchor))}destroy(){const L=this._startAnchor,z=this._endAnchor;L&&(L.removeEventListener("focus",this.startAnchorListener),L.remove()),z&&(z.removeEventListener("focus",this.endAnchorListener),z.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(L){return new Promise(z=>{this._executeOnStable(()=>z(this.focusInitialElement(L)))})}focusFirstTabbableElementWhenReady(L){return new Promise(z=>{this._executeOnStable(()=>z(this.focusFirstTabbableElement(L)))})}focusLastTabbableElementWhenReady(L){return new Promise(z=>{this._executeOnStable(()=>z(this.focusLastTabbableElement(L)))})}_getRegionBoundary(L){const z=this._element.querySelectorAll(`[cdk-focus-region-${L}], [cdkFocusRegion${L}], [cdk-focus-${L}]`);return"start"==L?z.length?z[0]:this._getFirstTabbableElement(this._element):z.length?z[z.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(L){const z=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(z){if(!this._checker.isFocusable(z)){const $=this._getFirstTabbableElement(z);return $?.focus(L),!!$}return z.focus(L),!0}return this.focusFirstTabbableElement(L)}focusFirstTabbableElement(L){const z=this._getRegionBoundary("start");return z&&z.focus(L),!!z}focusLastTabbableElement(L){const z=this._getRegionBoundary("end");return z&&z.focus(L),!!z}hasAttached(){return this._hasAttached}_getFirstTabbableElement(L){if(this._checker.isFocusable(L)&&this._checker.isTabbable(L))return L;const z=L.children;for(let $=0;$<z.length;$++){const Tt=z[$].nodeType===this._document.ELEMENT_NODE?this._getFirstTabbableElement(z[$]):null;if(Tt)return Tt}return null}_getLastTabbableElement(L){if(this._checker.isFocusable(L)&&this._checker.isTabbable(L))return L;const z=L.children;for(let $=z.length-1;$>=0;$--){const Tt=z[$].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(z[$]):null;if(Tt)return Tt}return null}_createAnchor(){const L=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,L),L.classList.add("cdk-visually-hidden"),L.classList.add("cdk-focus-trap-anchor"),L.setAttribute("aria-hidden","true"),L}_toggleAnchorTabIndex(L,z){L?z.setAttribute("tabindex","0"):z.removeAttribute("tabindex")}toggleAnchors(L){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(L,this._startAnchor),this._toggleAnchorTabIndex(L,this._endAnchor))}_executeOnStable(L){this._ngZone.isStable?L():this._ngZone.onStable.pipe((0,en.q)(1)).subscribe(L)}}let Oe=(()=>{class gt{constructor(z,$,Tt){this._checker=z,this._ngZone=$,this._document=Tt}create(z,$=!1){return new xn(z,this._checker,this._ngZone,this._document,$)}}return gt.\u0275fac=function(L){return new(L||gt)(s.LFG(Qn),s.LFG(s.R0b),s.LFG(wt.K0))},gt.\u0275prov=s.Yz7({token:gt,factory:gt.\u0275fac,providedIn:"root"}),gt})();const re=new s.OlP("cdk-input-modality-detector-options"),fe={ignoreKeys:[18,17,224,91,16]},Ot=Cn({passive:!0,capture:!0});let ie=(()=>{class gt{constructor(z,$,Tt,qt){this._platform=z,this._mostRecentTarget=null,this._modality=new un.X(null),this._lastTouchMs=0,this._onKeydown=we=>{var Ce,Ke;null!==(Ke=null===(Ce=this._options)||void 0===Ce?void 0:Ce.ignoreKeys)&&void 0!==Ke&&Ke.some(wn=>wn===we.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=Le(we))},this._onMousedown=we=>{var Ke;Date.now()-this._lastTouchMs<650||(this._modality.next(0===(Ke=we).offsetX&&0===Ke.offsetY?"keyboard":"mouse"),this._mostRecentTarget=Le(we))},this._onTouchstart=we=>{!function(Ke){const wn=Ke.touches&&Ke.touches[0]||Ke.changedTouches&&Ke.changedTouches[0];return!(!wn||-1!==wn.identifier||null!=wn.radiusX&&1!==wn.radiusX||null!=wn.radiusY&&1!==wn.radiusY)}(we)?(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=Le(we)):this._modality.next("keyboard")},this._options=Object.assign(Object.assign({},fe),qt),this.modalityDetected=this._modality.pipe(Ke=>Ke.lift(new on(1))),this.modalityChanged=this.modalityDetected.pipe(wn=>wn.lift(new Zn(void 0,void 0))),z.isBrowser&&$.runOutsideAngular(()=>{Tt.addEventListener("keydown",this._onKeydown,Ot),Tt.addEventListener("mousedown",this._onMousedown,Ot),Tt.addEventListener("touchstart",this._onTouchstart,Ot)})}get mostRecentModality(){return this._modality.value}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,Ot),document.removeEventListener("mousedown",this._onMousedown,Ot),document.removeEventListener("touchstart",this._onTouchstart,Ot))}}return gt.\u0275fac=function(L){return new(L||gt)(s.LFG(ge),s.LFG(s.R0b),s.LFG(wt.K0),s.LFG(re,8))},gt.\u0275prov=s.Yz7({token:gt,factory:gt.\u0275fac,providedIn:"root"}),gt})();const je=new s.OlP("cdk-focus-monitor-default-options"),Ye=Cn({passive:!0,capture:!0});let On=(()=>{class gt{constructor(z,$,Tt,qt,we){this._ngZone=z,this._platform=$,this._inputModalityDetector=Tt,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new j.xQ,this._rootNodeFocusAndBlurListener=Ce=>{const Ke=Le(Ce),wn="focus"===Ce.type?this._onFocus:this._onBlur;for(let Gn=Ke;Gn;Gn=Gn.parentElement)wn.call(this,Ce,Gn)},this._document=qt,this._detectionMode=we?.detectionMode||0}monitor(z,$=!1){const Tt=(0,p.fI)(z);if(!this._platform.isBrowser||1!==Tt.nodeType)return(0,k.of)(null);const qt=function(wn){if(function(){if(null==Ae){const dr=typeof document<"u"?document.head:null;Ae=!(!dr||!dr.createShadowRoot&&!dr.attachShadow)}return Ae}()){const Gn=wn.getRootNode?wn.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&Gn instanceof ShadowRoot)return Gn}return null}(Tt)||this._getDocument(),we=this._elementInfo.get(Tt);if(we)return $&&(we.checkChildren=!0),we.subject;
1const Ce={checkChildren:$,subject:new j.xQ,rootNode:qt};return this._elementInfo.set(Tt,Ce),this._registerGlobalListeners(Ce),Ce.subject}stopMonitoring(z){const $=(0,p.fI)(z),Tt=this._elementInfo.get($);Tt&&(Tt.subject.complete(),this._setClasses($),this._elementInfo.delete($),this._removeGlobalListeners(Tt))}focusVia(z,$,Tt){const qt=(0,p.fI)(z);qt===this._getDocument().activeElement?this._getClosestElementsInfo(qt).forEach(([we,Ce])=>this._originChanged(we,$,Ce)):(this._setOrigin($),"function"==typeof qt.focus&&qt.focus(Tt))}ngOnDestroy(){this._elementInfo.forEach((z,$)=>this.stopMonitoring($))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(z){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(z)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:"program"}_shouldBeAttributedToTouch(z){return 1===this._detectionMode||!!z?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(z,$){z.classList.toggle("cdk-focused",!!$),z.classList.toggle("cdk-touch-focused","touch"===$),z.classList.toggle("cdk-keyboard-focused","keyboard"===$),z.classList.toggle("cdk-mouse-focused","mouse"===$),z.classList.toggle("cdk-program-focused","program"===$)}_setOrigin(z,$=!1){this._ngZone.runOutsideAngular(()=>{this._origin=z,this._originFromTouchInteraction="touch"===z&&$,0===this._detectionMode&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(z,$){const Tt=this._elementInfo.get($),qt=Le(z);!Tt||!Tt.checkChildren&&$!==qt||this._originChanged($,this._getFocusOrigin(qt),Tt)}_onBlur(z,$){const Tt=this._elementInfo.get($);!Tt||Tt.checkChildren&&z.relatedTarget instanceof Node&&$.contains(z.relatedTarget)||(this._setClasses($),this._emitOrigin(Tt.subject,null))}_emitOrigin(z,$){this._ngZone.run(()=>z.next($))}_registerGlobalListeners(z){if(!this._platform.isBrowser)return;const $=z.rootNode,Tt=this._rootNodeFocusListenerCount.get($)||0;Tt||this._ngZone.runOutsideAngular(()=>{$.addEventListener("focus",this._rootNodeFocusAndBlurListener,Ye),$.addEventListener("blur",this._rootNodeFocusAndBlurListener,Ye)}),this._rootNodeFocusListenerCount.set($,Tt+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe((0,be.R)(this._stopInputModalityDetector)).subscribe(qt=>{this._setOrigin(qt,!0)}))}_removeGlobalListeners(z){const $=z.rootNode;if(this._rootNodeFocusListenerCount.has($)){const Tt=this._rootNodeFocusListenerCount.get($);Tt>1?this._rootNodeFocusListenerCount.set($,Tt-1):($.removeEventListener("focus",this._rootNodeFocusAndBlurListener,Ye),$.removeEventListener("blur",this._rootNodeFocusAndBlurListener,Ye),this._rootNodeFocusListenerCount.delete($))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(z,$,Tt){this._setClasses(z,$),this._emitOrigin(Tt.subject,$),this._lastFocusOrigin=$}_getClosestElementsInfo(z){const $=[];return this._elementInfo.forEach((Tt,qt)=>{(qt===z||Tt.checkChildren&&qt.contains(z))&&$.push([qt,Tt])}),$}}return gt.\u0275fac=function(L){return new(L||gt)(s.LFG(s.R0b),s.LFG(ge),s.LFG(ie),s.LFG(wt.K0,8),s.LFG(je,8))},gt.\u0275prov=s.Yz7({token:gt,factory:gt.\u0275fac,providedIn:"root"}),gt})();const In="cdk-high-contrast-black-on-white",gr="cdk-high-contrast-white-on-black",Yn="cdk-high-contrast-active";let qn=(()=>{class gt{constructor(z,$){this._platform=z,this._document=$}getHighContrastMode(){if(!this._platform.isBrowser)return 0;const z=this._document.createElement("div");z.style.backgroundColor="rgb(1,2,3)",z.style.position="absolute",this._document.body.appendChild(z);const $=this._document.defaultView||window,Tt=$&&$.getComputedStyle?$.getComputedStyle(z):null,qt=(Tt&&Tt.backgroundColor||"").replace(/ /g,"");switch(z.remove(),qt){case"rgb(0,0,0)":return 2;case"rgb(255,255,255)":return 1}return 0}
1_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const z=this._document.body.classList;z.remove(Yn),z.remove(In),z.remove(gr),this._hasCheckedHighContrastMode=!0;const $=this.getHighContrastMode();1===$?(z.add(Yn),z.add(In)):2===$&&(z.add(Yn),z.add(gr))}}}return gt.\u0275fac=function(L){return new(L||gt)(s.LFG(ge),s.LFG(wt.K0))},gt.\u0275prov=s.Yz7({token:gt,factory:gt.\u0275fac,providedIn:"root"}),gt})();const wr=new s.OlP("mat-sanity-checks",{providedIn:"root",factory:function(){return!0}});let Br=(()=>{class gt{constructor(z,$,Tt){this._sanityChecks=$,this._document=Tt,this._hasDoneGlobalChecks=!1,z._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(z){return!Ee()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[z])}}return gt.\u0275fac=function(L){return new(L||gt)(s.LFG(qn),s.LFG(wr,8),s.LFG(wt.K0))},gt.\u0275mod=s.oAB({type:gt}),gt.\u0275inj=s.cJS({imports:[[Qt.vT],Qt.vT]}),gt})();var vr=v(8514),wi=v(1059),Or=v(1777),Nr=v(6360);function Si(gt,L){}class fi{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.maxWidth="80vw",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.closeOnNavigation=!0}}const ts={dialogContainer:(0,Or.X$)("dialogContainer",[(0,Or.SB)("void, exit",(0,Or.oB)({opacity:0,transform:"scale(0.7)"})),(0,Or.SB)("enter",(0,Or.oB)({transform:"none"})),(0,Or.eR)("* => enter",(0,Or.jt)("150ms cubic-bezier(0, 0, 0.2, 1)",(0,Or.oB)({transform:"none",opacity:1}))),(0,Or.eR)("* => void, * => exit",(0,Or.jt)("75ms cubic-bezier(0.4, 0.0, 0.2, 1)",(0,Or.oB)({opacity:0})))])};let _t=(()=>{class gt extends Rt{constructor(z,$,Tt,qt,we,Ce,Ke,wn){super(),this._elementRef=z,this._focusTrapFactory=$,this._changeDetectorRef=Tt,this._config=we,this._interactivityChecker=Ce,this._ngZone=Ke,this._focusMonitor=wn,this._animationStateChanged=new s.vpe,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this.attachDomPortal=Gn=>(this._portalOutlet.hasAttached(),this._portalOutlet.attachDomPortal(Gn)),this._ariaLabelledBy=we.ariaLabelledBy||null,this._document=qt}_initializeWithAttachedContent(){this._setupFocusTrap(),this._capturePreviouslyFocusedElement()}attachComponentPortal(z){return this._portalOutlet.hasAttached(),this._portalOutlet.attachComponentPortal(z)}attachTemplatePortal(z){return this._portalOutlet.hasAttached(),this._portalOutlet.attachTemplatePortal(z)}_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(z,$){this._interactivityChecker.isFocusable(z)||(z.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{z.addEventListener("blur",()=>z.removeAttribute("tabindex")),z.addEventListener("mousedown",()=>z.removeAttribute("tabindex"))})),z.focus($)}_focusByCssSelector(z,$){let Tt=this._elementRef.nativeElement.querySelector(z);Tt&&this._forceFocus(Tt,$)}_trapFocus(){const z=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||z.focus();break;case!0:case"first-tabbable":this._focusTrap.focusInitialElementWhenReady().then($=>{$||this._focusDialogContainer()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus)}}_restoreFocus(){const z=this._elementFocusedBeforeDialogWasOpened;if(this._config.restoreFocus&&z&&"function"==typeof z.focus){const $=Me(),Tt=this._elementRef.nativeElement;(!$||$===this._document.body||$===Tt||Tt.contains($))&&(this._focusMonitor?(this._focusMonitor.focusVia(z,this._closeInteractionType),this._closeInteractionType=null):z.focus())}this._focusTrap&&this._focusTrap.destroy()}_setupFocusTrap(){this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement)}_capturePreviouslyFocusedElement(){this._document&&(this._elementFocusedBeforeDialogWasOpened=Me())}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const z=this._elementRef.nativeElement,$=Me();return z===$||z.contains($)}}return gt.\u0275fac=function(L){return new(L||gt)(s.Y36(s.SBq),s.Y36(Oe),s.Y36(s.sBO),s.Y36(wt.K0,8),s.Y36(fi),s.Y36(Qn),s.Y36(s.R0b),s.Y36(On))},gt.\u0275dir=s.lG2({type:gt,viewQuery:function(L,z){if(1&L&&s.Gf(bt,7),2&L){let $;s.iGM($=s.CRH())&&(z._portalOutlet=$.first)}},features:[s.qOj]}),gt})(),w=(()=>{class gt extends _t{constructor(){super(...arguments),this._state="enter"}_onAnimationDone({toState:z,totalTime:$}){"enter"===z?(this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:$})):"exit"===z&&(this._restoreFocus(),this._animationStateChanged.next({state:"closed",totalTime:$}))}_onAnimationStart({toState:z,totalTime:$}){"enter"===z?this._animationStateChanged.next({state:"opening",totalTime:$}):("exit"===z||"void"===z)&&this._animationStateChanged.next({state:"closing",totalTime:$})}_startExitAnimation(){this._state="exit",this._changeDetectorRef.markForCheck()}}return gt.\u0275fac=function(){let L;return function(z){return(L||(L=s.n5z(gt)))(z||gt)}}(),gt.\u0275cmp=s.Xpm({type:gt,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1","aria-modal","true",1,"mat-dialog-container"],hostVars:6,hostBindings:function(L,z){1&L&&s.WFA("@dialogContainer.start",function($){return z._onAnimationStart($)})("@dialogContainer.done",function($){return z._onAnimationDone($)}),2&L&&(s.Ikx("id",z._id),s.uIk("role",z._config.role)("aria-labelledby",z._config.ariaLabel?null:z._ariaLabelledBy)("aria-label",z._config.ariaLabel)("aria-describedby",z._config.ariaDescribedBy||null),s.d8E("@dialogContainer",z._state))},features:[s.qOj],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(L,z){1&L&&s.YNc(0,Si,0,0,"ng-template",0)},directives:[bt],styles:[".mat-dialog-container{display:block;padding:24px;border-radius:4px;box-sizing:border-box;overflow:auto;outline:0;width:100%;height:100%;min-height:inherit;max-height:inherit}.cdk-high-contrast-active .mat-dialog-container{outline:solid 1px}.mat-dialog-content{display:block;margin:0 -24px;padding:0 24px;max-height:65vh;overflow:auto;-webkit-overflow-scrolling:touch}.mat-dialog-title{margin:0 0 20px;display:block}.mat-dialog-actions{padding:8px 0;display:flex;flex-wrap:wrap;min-height:52px;align-items:center;box-sizing:content-box;margin-bottom:-24px}.mat-dialog-actions[align=end]{justify-content:flex-end}.mat-dialog-actions[align=center]{justify-content:center}.mat-dialog-actions .mat-button-base+.mat-button-base,.mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}\n"],encapsulation:2,data:{animation:[ts.dialogContainer]}}),gt})(),T=0;class Z{constructor(L,z,$="mat-dialog-"+T++){this._overlayRef=L,this._containerInstance=z,this.id=$,this.disableClose=this._containerInstance._config.disableClose,this._afterOpened=new j.xQ,this._afterClosed=new j.xQ,this._beforeClosed=new j.xQ,this._state=0,z._id=$,z._animationStateChanged.pipe((0,dt.h)(Tt=>"opened"===Tt.state),(0,en.q)(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),z._animationStateChanged.pipe((0,dt.h)(Tt=>"closed"===Tt.state),(0,en.q)(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),L.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._afterClosed.next(this._result),this._afterClosed.complete(),this.componentInstance=null,this._overlayRef.dispose()}
1),L.keydownEvents().pipe((0,dt.h)(Tt=>27===Tt.keyCode&&!this.disableClose&&!function(we,...Ce){return Ce.length?Ce.some(Ke=>we[Ke]):we.altKey||we.shiftKey||we.ctrlKey||we.metaKey}(Tt))).subscribe(Tt=>{Tt.preventDefault(),pt(this,"keyboard")}),L.backdropClick().subscribe(()=>{this.disableClose?this._containerInstance._recaptureFocus():pt(this,"mouse")})}close(L){this._result=L,this._containerInstance._animationStateChanged.pipe((0,dt.h)(z=>"closing"===z.state),(0,en.q)(1)).subscribe(z=>{this._beforeClosed.next(L),this._beforeClosed.complete(),this._overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),z.totalTime+100)}),this._state=1,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._afterClosed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._overlayRef.backdropClick()}keydownEvents(){return this._overlayRef.keydownEvents()}updatePosition(L){let z=this._getPositionStrategy();return L&&(L.left||L.right)?L.left?z.left(L.left):z.right(L.right):z.centerHorizontally(),L&&(L.top||L.bottom)?L.top?z.top(L.top):z.bottom(L.bottom):z.centerVertically(),this._overlayRef.updatePosition(),this}updateSize(L="",z=""){return this._overlayRef.updateSize({width:L,height:z}),this._overlayRef.updatePosition(),this}addPanelClass(L){return this._overlayRef.addPanelClass(L),this}removePanelClass(L){return this._overlayRef.removePanelClass(L),this}getState(){return this._state}_finishDialogClose(){this._state=2,this._overlayRef.dispose()}_getPositionStrategy(){return this._overlayRef.getConfig().positionStrategy}}function pt(gt,L,z){return void 0!==gt._containerInstance&&(gt._containerInstance._closeInteractionType=L),gt.close(z)}const Nt=new s.OlP("MatDialogData"),Kt=new s.OlP("mat-dialog-default-options"),oe=new s.OlP("mat-dialog-scroll-strategy"),ye={provide:oe,deps:[dn],useFactory:function(L){return()=>L.scrollStrategies.block()}};let De=(()=>{class gt{constructor(z,$,Tt,qt,we,Ce,Ke,wn,Gn,dr){this._overlay=z,this._injector=$,this._defaultOptions=Tt,this._parentDialog=qt,this._overlayContainer=we,this._dialogRefConstructor=Ke,this._dialogContainerType=wn,this._dialogDataToken=Gn,this._animationMode=dr,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new j.xQ,this._afterOpenedAtThisLevel=new j.xQ,this._ariaHiddenElements=new Map,this._dialogAnimatingOpen=!1,this.afterAllClosed=(0,vr.P)(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe((0,wi.O)(void 0))),this._scrollStrategy=Ce}get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){const z=this._parentDialog;return z?z._getAfterAllClosed():this._afterAllClosedAtThisLevel}open(z,$){if(Ke=$,wn=this._defaultOptions||new fi,($=Object.assign(Object.assign({},wn),Ke)).id&&this.getDialogById($.id),this._dialogAnimatingOpen)return this._lastDialogRef;var Ke,wn;const Tt=this._createOverlay($),qt=this._attachDialogContainer(Tt,$);if("NoopAnimations"!==this._animationMode){const Ce=qt._animationStateChanged.subscribe(Ke=>{"opening"===Ke.state&&(this._dialogAnimatingOpen=!0),"opened"===Ke.state&&(this._dialogAnimatingOpen=!1,Ce.unsubscribe())});this._animationStateSubscriptions||(this._animationStateSubscriptions=new de.w),this._animationStateSubscriptions.add(Ce)}const we=this._attachDialogContent(z,qt,Tt,$);return this._lastDialogRef=we,this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(we),we.afterClosed().subscribe(()=>this._removeOpenDialog(we)),this.afterOpened.next(we),qt._initializeWithAttachedContent(),we}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(z){return this.openDialogs.find($=>$.id===z)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._animationStateSubscriptions&&this._animationStateSubscriptions.unsubscribe()}_createOverlay(z){const $=this._getOverlayConfig(z);return this._overlay.create($)}_getOverlayConfig(z){const $=new Lt({positionStrategy:this._overlay.position().global(),scrollStrategy:z.scrollStrategy||this._scrollStrategy(),panelClass:z.panelClass,hasBackdrop:z.hasBackdrop,direction:z.direction,minWidth:z.minWidth,minHeight:z.minHeight,maxWidth:z.maxWidth,maxHeight:z.maxHeight,disposeOnNavigation:z.closeOnNavigation});return z.backdropClass&&($.backdropClass=z.backdropClass),$}_attachDialogContainer(z,$){const Tt=s.zs3.create({parent:$&&$.viewContainerRef&&$.viewContainerRef.injector||this._injector,providers:[{provide:fi,useValue:$}]}),qt=new et(this._dialogContainerType,$.viewContainerRef,Tt,$.componentFactoryResolver);return z.attach(qt).instance}_attachDialogContent(z,$,Tt,qt){const we=new this._dialogRefConstructor(Tt,$,qt.id);if(z instanceof s.Rgc)$.attachTemplatePortal(new ct(z,null,{$implicit:qt.data,dialogRef:we}));else{const Ce=this._createInjector(qt,we,$),Ke=$.attachComponentPortal(new et(z,qt.viewContainerRef,Ce));we.componentInstance=Ke.instance}return we.updateSize(qt.width,qt.height).updatePosition(qt.position),we}_createInjector(z,$,Tt){const qt=z&&z.viewContainerRef&&z.viewContainerRef.injector,we=[{provide:this._dialogContainerType,useValue:Tt},{provide:this._dialogDataToken,useValue:z.data},{provide:this._dialogRefConstructor,useValue:$}];return z.direction&&(!qt||!qt.get(Qt.Is,null,s.XFs.Optional))&&we.push({provide:Qt.Is,useValue:{value:z.direction,change:(0,k.of)()}}),s.zs3.create({parent:qt||this._injector,providers:we})}_removeOpenDialog(z){const $=this.openDialogs.indexOf(z);$>-1&&(this.openDialogs.splice($,1),this.openDialogs.length||(this._ariaHiddenElements.forEac
1h((Tt,qt)=>{Tt?qt.setAttribute("aria-hidden",Tt):qt.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const z=this._overlayContainer.getContainerElement();if(z.parentElement){const $=z.parentElement.children;for(let Tt=$.length-1;Tt>-1;Tt--){let qt=$[Tt];qt!==z&&"SCRIPT"!==qt.nodeName&&"STYLE"!==qt.nodeName&&!qt.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(qt,qt.getAttribute("aria-hidden")),qt.setAttribute("aria-hidden","true"))}}}_closeDialogs(z){let $=z.length;for(;$--;)z[$].close()}}return gt.\u0275fac=function(L){s.$Z()},gt.\u0275dir=s.lG2({type:gt}),gt})(),hn=(()=>{class gt extends De{constructor(z,$,Tt,qt,we,Ce,Ke,wn){super(z,$,qt,Ce,Ke,we,Z,w,Nt,wn)}}return gt.\u0275fac=function(L){return new(L||gt)(s.LFG(dn),s.LFG(s.zs3),s.LFG(wt.Ye,8),s.LFG(Kt,8),s.LFG(oe),s.LFG(gt,12),s.LFG(Ie),s.LFG(Nr.Qb,8))},gt.\u0275prov=s.Yz7({token:gt,factory:gt.\u0275fac}),gt})(),mn=(()=>{class gt{}return gt.\u0275fac=function(L){return new(L||gt)},gt.\u0275mod=s.oAB({type:gt}),gt.\u0275inj=s.cJS({providers:[hn,ye],imports:[[Kn,kt,Br],Br]}),gt})()},6360:(u,D,v)=>{v.d(D,{Qb:()=>Si,rT:()=>ts});var p=v(6435),s=v(2313),j=v(1777);function b(){return typeof process<"u"&&"[object process]"==={}.toString.call(process)}function B(_t){switch(_t.length){case 0:return new j.ZN;case 1:return _t[0];default:return new j.ZE(_t)}}function V(_t,w,T,Z,pt={},Nt={}){const Kt=[],oe=[];let ye=-1,De=null;if(Z.forEach(hn=>{const mn=hn.offset,gt=mn==ye,L=gt&&De||{};Object.keys(hn).forEach(z=>{let $=z,Tt=hn[z];if("offset"!==z)switch($=w.normalizePropertyName($,Kt),Tt){case j.k1:Tt=pt[z];break;case j.l3:Tt=Nt[z];break;default:Tt=w.normalizeStyleValue(z,$,Tt,Kt)}L[$]=Tt}),gt||oe.push(L),De=L,ye=mn}),Kt.length){const hn="\n - ";throw new Error(`Unable to animate due to the following errors:${hn}${Kt.join(hn)}`)}return oe}function _(_t,w,T,Z){switch(w){case"start":_t.onStart(()=>Z(T&&H(T,"start",_t)));break;case"done":_t.onDone(()=>Z(T&&H(T,"done",_t)));break;case"destroy":_t.onDestroy(()=>Z(T&&H(T,"destroy",_t)))}}function H(_t,w,T){const pt=Y(_t.element,_t.triggerName,_t.fromState,_t.toState,w||_t.phaseName,T.totalTime??_t.totalTime,!!T.disabled),Nt=_t._data;return null!=Nt&&(pt._data=Nt),pt}function Y(_t,w,T,Z,pt="",Nt=0,Kt){return{element:_t,triggerName:w,fromState:T,toState:Z,phaseName:pt,totalTime:Nt,disabled:!!Kt}}function q(_t,w,T){let Z;return _t instanceof Map?(Z=_t.get(w),Z||_t.set(w,Z=T)):(Z=_t[w],Z||(Z=_t[w]=T)),Z}function it(_t){const w=_t.indexOf(":");return[_t.substring(1,w),_t.substr(w+1)]}let vt=(_t,w)=>!1,at=(_t,w,T)=>[];(b()||typeof Element<"u")&&(vt=function k(){return typeof window<"u"&&void 0!==window.document}()?(_t,w)=>{for(;w&&w!==document.documentElement;){if(w===_t)return!0;w=w.parentNode||w.host}return!1}:(_t,w)=>_t.contains(w),at=(_t,w,T)=>{let Z=[];if(T){const pt=_t.querySelectorAll(w);for(let Nt=0;Nt<pt.length;Nt++)Z.push(pt[Nt])}else{const pt=_t.querySelector(w);pt&&Z.push(pt)}return Z});let J=null,ht=!1;const M=vt,N=at;let g=(()=>{class _t{validateStyleProperty(T){return function m(_t){J||(J=(typeof document<"u"?document.body:null)||{},ht=!!J.style&&"WebkitAppearance"in J.style);let w=!0;return J.style&&!("ebkit"==_t.substring(1,6))&&(w=_t in J.style,!w&&ht&&(w="Webkit"+_t.charAt(0).toUpperCase()+_t.substr(1)in J.style)),w}(T)}matchesElement(T,Z){return!1}containsElement(T,Z){return M(T,Z)}query(T,Z,pt){return N(T,Z,pt)}computeStyle(T,Z,pt){return pt||""}animate(T,Z,pt,Nt,Kt,oe=[],ye){return new j.ZN(pt,Nt)}}return _t.\u0275fac=function(w){return new(w||_t)},_t.\u0275prov=p.Yz7({token:_t,factory:_t.\u0275fac}),_t})(),x=(()=>{class _t{}return _t.NOOP=new g,_t})();const P="ng-enter",Q="ng-leave",U="ng-trigger",G=".ng-trigger",dt="ng-animating",wt=".ng-animating";function W(_t){if("number"==typeof _t)return _t;const w=_t.match(/^(-?[\.\d]+)(m?s)/);return!w||w.length<2?0:te(parseFloat(w[1]),w[2])}function te(_t,w){return"s"===w?1e3*_t:_t}function ae(_t,w,T){return _t.hasOwnProperty("duration")?_t:function(pt,Nt,Kt){let oe,ye=0,De="";if("string"==typeof pt){const hn=pt.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===hn)return Nt.push(`The provided timing value "${pt}
1" is invalid.`),{duration:0,delay:0,easing:""};oe=te(parseFloat(hn[1]),hn[2]);const mn=hn[3];null!=mn&&(ye=te(parseFloat(mn),hn[4]));const gt=hn[5];gt&&(De=gt)}else oe=pt;if(!Kt){let hn=!1,mn=Nt.length;oe<0&&(Nt.push("Duration values below 0 are not allowed for this animation step."),hn=!0),ye<0&&(Nt.push("Delay values below 0 are not allowed for this animation step."),hn=!0),hn&&Nt.splice(mn,0,`The provided timing value "${pt}" is invalid.`)}return{duration:oe,delay:ye,easing:De}}(_t,w,T)}function Ae(_t,w={}){return Object.keys(_t).forEach(T=>{w[T]=_t[T]}),w}function ge(_t,w,T={}){if(w)for(let Z in _t)T[Z]=_t[Z];else Ae(_t,T);return T}function We(_t,w,T){return T?w+":"+T+";":""}function Cn(_t){let w="";for(let T=0;T<_t.style.length;T++){const Z=_t.style.item(T);w+=We(0,Z,_t.style.getPropertyValue(Z))}for(const T in _t.style)_t.style.hasOwnProperty(T)&&!T.startsWith("_")&&(w+=We(0,lt(T),_t.style[T]));_t.setAttribute("style",w)}function rn(_t,w,T){_t.style&&(Object.keys(w).forEach(Z=>{const pt=mt(Z);T&&!T.hasOwnProperty(Z)&&(T[Z]=_t.style[pt]),_t.style[pt]=w[Z]}),b()&&Cn(_t))}
1function Me(_t,w){_t.style&&(Object.keys(w).forEach(T=>{const Z=mt(T);_t.style[Z]=""}),b()&&Cn(_t))}function Le(_t){return Array.isArray(_t)?1==_t.length?_t[0]:(0,j.vP)(_t):_t}const Ee=new RegExp("{{\\s*(.+?)\\s*}}","g");function Qt(_t){let w=[];if("string"==typeof _t){let T;for(;T=Ee.exec(_t);)w.push(T[1]);Ee.lastIndex=0}return w}function Ut(_t,w,T){const Z=_t.toString(),pt=Z.replace(Ee,(Nt,Kt)=>{let oe=w[Kt];return w.hasOwnProperty(Kt)||(T.push(`Please provide a value for the animation param ${Kt}`),oe=""),oe.toString()});return pt==Z?_t:pt}function Mt(_t){const w=[];let T=_t.next();for(;!T.done;)w.push(T.value),T=_t.next();return w}const It=/-+([a-z0-9])/g;function mt(_t){return _t.replace(It,(...w)=>w[1].toUpperCase())}function lt(_t){return _t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function et(_t,w,T){switch(w.type){case 7:return _t.visitTrigger(w,T);case 0:return _t.visitState(w,T);case 1:return _t.visitTransition(w,T);case 2:return _t.visitSequence(w,T);case 3:return _t.visitGroup(w,T);case 4:return _t.visitAnimate(w,T);case 5:return _t.visitKeyframes(w,T);case 6:return _t.visitStyle(w,T);case 8:return _t.visitReference(w,T);case 9:return _t.visitAnimateChild(w,T);case 10:return _t.visitAnimateRef(w,T);case 11:return _t.visitQuery(w,T);case 12:return _t.visitStagger(w,T);default:throw new Error(`Unable to resolve animation metadata node #${w.type}`)}}function ct(_t,w){const T=[];return"string"==typeof _t?_t.split(/\s*,\s*/).forEach(Z=>function(Nt,Kt,oe){if(":"==Nt[0]){const gt=function(z,$){switch(z){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(Tt,qt)=>parseFloat(qt)>parseFloat(Tt);case":decrement":return(Tt,qt)=>parseFloat(qt)<parseFloat(Tt);default:return $.push(`The transition alias value "${z}" is not supported`),"* => *"}}(Nt,oe);if("function"==typeof gt)return void Kt.push(gt);Nt=gt}const ye=Nt.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);if(null==ye||ye.length<4)return oe.push(`The provided transition expression "${Nt}" is not supported`),Kt;const De=ye[1],hn=ye[2],mn=ye[3];Kt.push(ne(De,mn)),"<"==hn[0]&&("*"!=De||"*"!=mn)&&Kt.push(ne(mn,De))}(Z,T,w)):T.push(_t),T}const Vt=new Set(["true","1"]),Rt=new Set(["false","0"]);function ne(_t,w){const T=Vt.has(_t)||Rt.has(_t),Z=Vt.has(w)||Rt.has(w);return(pt,Nt)=>{let Kt="*"==_t||_t==pt,oe="*"==w||w==Nt;return!Kt&&T&&"boolean"==typeof pt&&(Kt=pt?Vt.has(_t):Rt.has(_t)),!oe&&Z&&"boolean"==typeof Nt&&(oe=Nt?Vt.has(w):Rt.has(w)),Kt&&oe}}const kt=new RegExp("s*:selfs*,?","g");function de(_t,w,T){return new Wt(_t).build(w,T)}class Wt{constructor(w){this._driver=w}build(w,T){const Z=new en(T);return this._resetContextStyleTimingState(Z),et(this,Le(w),Z)}_resetContextStyleTimingState(w){w.currentQuerySelector="",w.collectedStyles={},w.collectedStyles[""]={},w.currentTime=0}visitTrigger(w,T){let Z=T.queryCount=0,pt=T.depCount=0;const Nt=[],Kt=[];return"@"==w.name.charAt(0)&&T.errors.push("animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))"),w.definitions.forEach(oe=>{if(this._resetContextStyleTimingState(T),0==oe.type){const ye=oe,De=ye.name;De.toString().split(/\s*,\s*/).forEach(hn=>{ye.name=hn,Nt.push(this.visitState(ye,T))}),ye.name=De}else if(1==oe.type){const ye=this.visitTransition(oe,T);Z+=ye.queryCount,pt+=ye.depCount,Kt.push(ye)}else T.errors.push("only state() and transition() definitions can sit inside of a trigger()")}),{type:7,name:w.name,states:Nt,transitions:Kt,queryCount:Z,depCount:pt,options:null}}visitState(w,T){const Z=this.visitStyle(w.styles,T),pt=w.options&&w.options.params||null;if(Z.containsDynamicStyles){const Nt=new Set,Kt=pt||{};if(Z.styles.forEach(oe=>{if(be(oe)){const ye=oe;Object.keys(ye).forEach(De=>{Qt(ye[De]).forEach(hn=>{Kt.hasOwnProperty(hn)||Nt.add(hn)})})}}),Nt.size){const oe=Mt(Nt.values());T.errors.push(`state("${w.name}", ...) must define default values for all the following style substitutions: ${oe.join(", ")}`)}}return{type:0,name:w.name,style:Z,options:pt?{params:pt}:null}}visitTransition(w,T){T.queryCount=0,T.depCount=0;const Z=et(this,Le(w.animation),T);return{type:1,matchers:ct(w.expr,T.errors),animation:Z,queryCount:T.queryCount,depCount:T.depCount,options:qe(w.options)}}visitSequence(w,T){return{type:2,steps:w.steps.map(Z=>et(this,Z,T)),options:qe(w.options)}}visitGroup(w,T){const Z=T.currentTime;let pt=0;const Nt=w.steps.map(Kt=>{T.currentTime=Z;const oe=et(this,Kt,T);return pt=Math.max(pt,T.currentTime),oe});return T.currentTime=pt,{type:3,steps:Nt,options:qe(w.options)}}visitAnimate(w,T){const Z=function(oe,ye){let De=null;if(oe.hasOwnProperty("duration"))De=oe;else if("number"==typeof oe)return kn(ae(oe,ye).duration,0,"");const hn=oe;if(hn.split(/\s+/).some(mn=>"{"==mn.charAt(0)&&"{"==mn.charAt(1))){const mn=kn(0,0,"");return mn.dynamic=!0,mn.strValue=hn,mn}return De=De||ae(hn,ye),kn(De.duration,De.delay,De.easing)}(w.timings,T.errors);T.currentAnimateTimings=Z;let pt,Nt=w.styles?w.styles:(0,j.oB)({});if(5==Nt.type)pt=this.visitKeyframes(Nt,T);else{let Kt=w.styles,oe=!1;if(!Kt){oe=!0;const De={};Z.easing&&(De.easing=Z.easing),Kt=(0,j.oB)(De)}T.currentTime+=Z.duration+Z.delay;const ye=this.visitStyle(Kt,T);ye.isEmptyStep=oe,pt=ye}return T.currentAnimateTimings=null,{type:4,timings:Z,style:pt,options:null}}visitStyle(w,T){const Z=this._makeStyleAst(w,T);
1return this._validateStyleAst(Z,T),Z}_makeStyleAst(w,T){const Z=[];Array.isArray(w.styles)?w.styles.forEach(Kt=>{"string"==typeof Kt?Kt==j.l3?Z.push(Kt):T.errors.push(`The provided style string value ${Kt} is not allowed.`):Z.push(Kt)}):Z.push(w.styles);let pt=!1,Nt=null;return Z.forEach(Kt=>{if(be(Kt)){const oe=Kt,ye=oe.easing;if(ye&&(Nt=ye,delete oe.easing),!pt)for(let De in oe)if(oe[De].toString().indexOf("{{")>=0){pt=!0;break}}}),{type:6,styles:Z,easing:Nt,offset:w.offset,containsDynamicStyles:pt,options:null}}_validateStyleAst(w,T){const Z=T.currentAnimateTimings;let pt=T.currentTime,Nt=T.currentTime;Z&&Nt>0&&(Nt-=Z.duration+Z.delay),w.styles.forEach(Kt=>{"string"!=typeof Kt&&Object.keys(Kt).forEach(oe=>{if(!this._driver.validateStyleProperty(oe))return void T.errors.push(`The provided animation property "${oe}" is not a supported CSS property for animations`);const ye=T.collectedStyles[T.currentQuerySelector],De=ye[oe];let hn=!0;De&&(Nt!=pt&&Nt>=De.startTime&&pt<=De.endTime&&(T.errors.push(`The CSS property "${oe}" that exists between the times of "${De.startTime}ms" and "${De.endTime}ms" is also being animated in a parallel animation between the times of "${Nt}ms" and "${pt}ms"`),hn=!1),Nt=De.startTime),hn&&(ye[oe]={startTime:Nt,endTime:pt}),T.options&&function(gt,L,z){const $=L.params||{},Tt=Qt(gt);Tt.length&&Tt.forEach(qt=>{$.hasOwnProperty(qt)||z.push(`Unable to resolve the local animation param ${qt} in the given list of values`)})}(Kt[oe],T.options,T.errors)})})}visitKeyframes(w,T){const Z={type:5,styles:[],options:null};if(!T.currentAnimateTimings)return T.errors.push("keyframes() must be placed inside of a call to animate()"),Z;let pt=0;const Nt=[];let Kt=!1,oe=!1,ye=0;const De=w.steps.map(Tt=>{const qt=this._makeStyleAst(Tt,T);let we=null!=qt.offset?qt.offset:function(wn){if("string"==typeof wn)return null;let Gn=null;if(Array.isArray(wn))wn.forEach(dr=>{if(be(dr)&&dr.hasOwnProperty("offset")){const jr=dr;Gn=parseFloat(jr.offset),delete jr.offset}});else if(be(wn)&&wn.hasOwnProperty("offset")){const dr=wn;Gn=parseFloat(dr.offset),delete dr.offset}return Gn}(qt.styles),Ce=0;return null!=we&&(pt++,Ce=qt.offset=we),oe=oe||Ce<0||Ce>1,Kt=Kt||Ce<ye,ye=Ce,Nt.push(Ce),qt});oe&&T.errors.push("Please ensure that all keyframe offsets are between 0 and 1"),Kt&&T.errors.push("Please ensure that all keyframe offsets are in order");const hn=w.steps.length;let mn=0;pt>0&&pt<hn?T.errors.push("Not all style() steps within the declared keyframes() contain offsets"):0==pt&&(mn=1/(hn-1));const gt=hn-1,L=T.currentTime,z=T.currentAnimateTimings,$=z.duration;return De.forEach((Tt,qt)=>{const we=mn>0?qt==gt?1:mn*qt:Nt[qt],Ce=we*$;T.currentTime=L+z.delay+Ce,z.duration=Ce,this._validateStyleAst(Tt,T),Tt.offset=we,Z.styles.push(Tt)}),Z}visitReference(w,T){return{type:8,animation:et(this,Le(w.animation),T),options:qe(w.options)}}visitAnimateChild(w,T){return T.depCount++,{type:9,options:qe(w.options)}}visitAnimateRef(w,T){return{type:10,animation:this.visitReference(w.animation,T),options:qe(w.options)}}visitQuery(w,T){const Z=T.currentQuerySelector,pt=w.options||{};T.queryCount++,T.currentQuery=w;const[Nt,Kt]=function(De){const hn=!!De.split(/\s*,\s*/).find(mn=>":self"==mn);return hn&&(De=De.replace(kt,"")),[De=De.replace(/@\*/g,G).replace(/@\w+/g,mn=>G+"-"+mn.substr(1)).replace(/:animating/g,wt),hn]}(w.selector);T.currentQuerySelector=Z.length?Z+" "+Nt:Nt,q(T.collectedStyles,T.currentQuerySelector,{});const oe=et(this,Le(w.animation),T);return T.currentQuery=null,T.currentQuerySelector=Z,{type:11,selector:Nt,limit:pt.limit||0,optional:!!pt.optional,includeSelf:Kt,animation:oe,originalSelector:w.selector,options:qe(w.options)}}visitStagger(w,T){T.currentQuery||T.errors.push("stagger() can only be used inside of query()");const Z="full"===w.timings?{duration:0,delay:0,easing:"full"}:ae(w.timings,T.errors,!0);return{type:12,animation:et(this,Le(w.animation),T),timings:Z,options:null}}}class en{constructor(w){this.errors=w,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles={},this.options=null}}function be(_t){return!Array.isArray(_t)&&"object"==typeof _t}function qe(_t){return _t?(_t=Ae(_t)).params&&(_t.params=(T=_t.params)?Ae(T):null):_t={},_t;var T}function kn(_t,w,T){return{duration:_t,delay:w,easing:T}}function yr(_t,w,T,Z,pt,Nt,Kt=null,oe=!1){return{type:1,element:_t,keyframes:w,preStyleProps:T,postStyleProps:Z,duration:pt,delay:Nt,totalTime:pt+Nt,easing:Kt,subTimeline:oe}}class ur{constructor(){this._map=new Map}get(w){return this._map.get(w)||[]}append(w,T){let Z=this._map.get(w);Z||this._map.set(w,Z=[]),Z.push(...T)}has(w){return this._map.has(w)}clear(){this._map.clear()}}const ee=new RegExp(":enter","g"),Se=new RegExp(":leave","g");function Re(_t,w,T,Z,pt,Nt={},Kt={},oe,ye,De=[]){return(new Be).buildKeyframes(_t,w,T,Z,pt,Nt,Kt,oe,ye,De)}class Be{buildKeyframes(w,T,Z,pt,Nt,Kt,oe,ye,De,hn=[]){De=De||new ur;const mn=new Ht(w,T,De,pt,Nt,hn,[]);mn.options=ye,mn.currentTimeline.setStyles([Kt],null,mn.errors,ye),et(this,Z,mn);const gt=mn.timelines.filter(L=>L.containsAnimation());if(gt.length&&Object.keys(oe).length){const L=gt[gt.length-1];L.allowOnlyTimelineStyles()||L.setStyles([oe],null,mn.errors,ye)}return gt.length?gt.map(L=>L.buildKeyframes()):[yr(T,[],[],[],0,0,"",!1)]}visitTrigger(w,T){}visitState(w,T){}visitTransition(w,T){}
vendor: 4,267 bytes, line 1
1visitAnimateChild(w,T){const Z=T.subInstructions.get(T.element);if(Z){const pt=T.createSubContext(w.options),Nt=T.currentTimeline.currentTime,Kt=this._visitSubInstructions(Z,pt,pt.options);Nt!=Kt&&T.transformIntoNewTimeline(Kt)}T.previousNode=w}visitAnimateRef(w,T){const Z=T.createSubContext(w.options);Z.transformIntoNewTimeline(),this.visitReference(w.animation,Z),T.transformIntoNewTimeline(Z.currentTimeline.currentTime),T.previousNode=w}_visitSubInstructions(w,T,Z){let pt=T.currentTimeline.currentTime;const Nt=null!=Z.duration?W(Z.duration):null,Kt=null!=Z.delay?W(Z.delay):null;return 0!==Nt&&w.forEach(oe=>{const ye=T.appendInstructionToTimeline(oe,Nt,Kt);pt=Math.max(pt,ye.duration+ye.delay)}),pt}visitReference(w,T){T.updateOptions(w.options,!0),et(this,w.animation,T),T.previousNode=w}visitSequence(w,T){const Z=T.subContextCount;let pt=T;const Nt=w.options;if(Nt&&(Nt.params||Nt.delay)&&(pt=T.createSubContext(Nt),pt.transformIntoNewTimeline(),null!=Nt.delay)){6==pt.previousNode.type&&(pt.currentTimeline.snapshotCurrentStyles(),pt.previousNode=Lt);const Kt=W(Nt.delay);pt.delayNextStep(Kt)}w.steps.length&&(w.steps.forEach(Kt=>et(this,Kt,pt)),pt.currentTimeline.applyStylesToKeyframe(),pt.subContextCount>Z&&pt.transformIntoNewTimeline()),T.previousNode=w}visitGroup(w,T){const Z=[];let pt=T.currentTimeline.currentTime;const Nt=w.options&&w.options.delay?W(w.options.delay):0;w.steps.forEach(Kt=>{const oe=T.createSubContext(w.options);Nt&&oe.delayNextStep(Nt),et(this,Kt,oe),pt=Math.max(pt,oe.currentTimeline.currentTime),Z.push(oe.currentTimeline)}),Z.forEach(Kt=>T.currentTimeline.mergeTimelineCollectedStyles(Kt)),T.transformIntoNewTimeline(pt),T.previousNode=w}_visitTiming(w,T){if(w.dynamic){const Z=w.strValue;return ae(T.params?Ut(Z,T.params,T.errors):Z,T.errors)}return{duration:w.duration,delay:w.delay,easing:w.easing}}visitAnimate(w,T){const Z=T.currentAnimateTimings=this._visitTiming(w.timings,T),pt=T.currentTimeline;Z.delay&&(T.incrementTime(Z.delay),pt.snapshotCurrentStyles());const Nt=w.style;5==Nt.type?this.visitKeyframes(Nt,T):(T.incrementTime(Z.duration),this.visitStyle(Nt,T),pt.applyStylesToKeyframe()),T.currentAnimateTimings=null,T.previousNode=w}visitStyle(w,T){const Z=T.currentTimeline,pt=T.currentAnimateTimings;!pt&&Z.getCurrentStyleProperties().length&&Z.forwardFrame();const Nt=pt&&pt.easing||w.easing;w.isEmptyStep?Z.applyEmptyStep(Nt):Z.setStyles(w.styles,Nt,T.errors,T.options),T.previousNode=w}visitKeyframes(w,T){const Z=T.currentAnimateTimings,pt=T.currentTimeline.duration,Nt=Z.duration,Kt=T.createSubContext().currentTimeline;Kt.easing=Z.easing,w.styles.forEach(oe=>{Kt.forwardTime((oe.offset||0)*Nt),Kt.setStyles(oe.styles,oe.easing,T.errors,T.options),Kt.applyStylesToKeyframe()}),T.currentTimeline.mergeTimelineCollectedStyles(Kt),T.transformIntoNewTimeline(pt+Nt),T.previousNode=w}visitQuery(w,T){const Z=T.currentTimeline.currentTime,pt=w.options||{},Nt=pt.delay?W(pt.delay):0;Nt&&(6===T.previousNode.type||0==Z&&T.currentTimeline.getCurrentStyleProperties().length)&&(T.currentTimeline.snapshotCurrentStyles(),T.previousNode=Lt);let Kt=Z;const oe=T.invokeQuery(w.selector,w.originalSelector,w.limit,w.includeSelf,!!pt.optional,T.errors);T.currentQueryTotal=oe.length;let ye=null;oe.forEach((De,hn)=>{T.currentQueryIndex=hn;const mn=T.createSubContext(w.options,De);Nt&&mn.delayNextStep(Nt),De===T.element&&(ye=mn.currentTimeline),et(this,w.animation,mn),mn.currentTimeline.applyStylesToKeyframe(),Kt=Math.max(Kt,mn.currentTimeline.currentTime)}),T.currentQueryIndex=0,T.currentQueryTotal=0,T.transformIntoNewTimeline(Kt),ye&&(T.currentTimeline.mergeTimelineCollectedStyles(ye),T.currentTimeline.snapshotCurrentStyles()),T.previousNode=w}visitStagger(w,T){const Z=T.parentContext,pt=T.currentTimeline,Nt=w.timings,Kt=Math.abs(Nt.duration),oe=Kt*(T.currentQueryTotal-1);let ye=Kt*T.currentQueryIndex;switch(Nt.duration<0?"reverse":Nt.easing){case"reverse":ye=oe-ye;break;case"full":ye=Z.currentStaggerTime}const De=T.currentTimeline;ye&&De.delayNextStep(ye);const hn=De.currentTime;et(this,w.animation,T),T.previousNode=w,Z.currentStaggerTime=pt.currentTime-hn+(pt.startTime-Z.currentTimeline.startTime)}}const Lt={};class Ht{constructor(w,T,Z,pt,Nt,Kt,oe,ye){this._driver=w,this.element=T,this.subInstru
1ctions=Z,this._enterClassName=pt,this._leaveClassName=Nt,this.errors=Kt,this.timelines=oe,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=Lt,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=ye||new Jt(this._driver,T,0),oe.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(w,T){if(!w)return;const Z=w;let pt=this.options;null!=Z.duration&&(pt.duration=W(Z.duration)),null!=Z.delay&&(pt.delay=W(Z.delay));const Nt=Z.params;if(Nt){let Kt=pt.params;Kt||(Kt=this.options.params={}),Object.keys(Nt).forEach(oe=>{(!T||!Kt.hasOwnProperty(oe))&&(Kt[oe]=Ut(Nt[oe],Kt,this.errors))})}}_copyOptions(){const w={};if(this.options){const T=this.options.params;if(T){const Z=w.params={};Object.keys(T).forEach(pt=>{Z[pt]=T[pt]})}}return w}createSubContext(w=null,T,Z){const pt=T||this.element,Nt=new Ht(this._driver,pt,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(pt,Z||0));return Nt.previousNode=this.previousNode,Nt.currentAnimateTimings=this.currentAnimateTimings,Nt.options=this._copyOptions(),Nt.updateOptions(w),Nt.currentQueryIndex=this.currentQueryIndex,Nt.currentQueryTotal=this.currentQueryTotal,Nt.parentContext=this,this.subContextCount++,Nt}transformIntoNewTimeline(w){return this.previousNode=Lt,this.currentTimeline=this.currentTimeline.fork(this.element,w),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(w,T,Z){const pt={duration:T??w.duration,delay:this.currentTimeline.currentTime+(Z??0)+w.delay,easing:""},Nt=new Ie(this._driver,w.element,w.keyframes,w.preStyleProps,w.postStyleProps,pt,w.stretchStartingKeyframe);return this.timelines.push(Nt),pt}incrementTime(w){this.currentTimeline.forwardTime(this.currentTimeline.duration+w)}delayNextStep(w){w>0&&this.currentTimeline.delayNextStep(w)}invokeQuery(w,T,Z,pt,Nt,Kt){let oe=[];if(pt&&oe.push(this.element),w.length>0){w=(w=w.replace(ee,"."+this._enterClassName)).replace(Se,"."+this._leaveClassName);let ye=this._driver.query(this.element,w,1!=Z);0!==Z&&(ye=Z<0?ye.slice(ye.length+Z,ye.length):ye.slice(0,Z)),oe.push(...ye)}return!Nt&&0==oe.length&&Kt.push(`\`query("${T}")\` returned zero elements. (Use \`query("${T}", { optional: true })\` if you wish to allow this.)`),oe}}class Jt{constructor(w,T,Z,pt){this._driver=w,this.element=T,this.startTime=Z,this._elementTimelineStylesLookup=pt,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(T),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(T,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.getCurrentStyleProperties().length>0;default:return!0}}getCurrentStyleProperties(){return Object.keys(this._currentKeyframe)}get currentTime(){return this.startTime+this.duration}delayNextStep(w){const T=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||T?(this.forwardTime(this.currentTime+w),T&&this.snapshotCurrentStyles()):this.startTime+=w}fork(w,T){return this.applyStylesToKeyframe(),new Jt(this._driver,w,T||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=Object.create(this._backFill,{}),this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(w){this.applyStylesToKeyframe(),this.duration=w,this._loadKeyframe()}_updateStyle(w,T){this._localTimelineStyles[w]=T,this._globalTimelineStyles[w]=T,this._styleSummary[w]={time:this.currentTime,value:T}}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(w){w&&(this._previousKeyframe.easing=w),Object.keys(this._globalTimelineStyles).forEac
1h(T=>{this._backFill[T]=this._globalTimelineStyles[T]||j.l3,this._currentKeyframe[T]=j.l3}),this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(w,T,Z,pt){T&&(this._previousKeyframe.easing=T);const Nt=pt&&pt.params||{},Kt=function(ye,De){const hn={};let mn;return ye.forEach(gt=>{"*"===gt?(mn=mn||Object.keys(De),mn.forEach(L=>{hn[L]=j.l3})):ge(gt,!1,hn)}),hn}(w,this._globalTimelineStyles);Object.keys(Kt).forEach(oe=>{const ye=Ut(Kt[oe],Nt,Z);this._pendingStyles[oe]=ye,this._localTimelineStyles.hasOwnProperty(oe)||(this._backFill[oe]=this._globalTimelineStyles.hasOwnProperty(oe)?this._globalTimelineStyles[oe]:j.l3),this._updateStyle(oe,ye)})}applyStylesToKeyframe(){const w=this._pendingStyles,T=Object.keys(w);0!=T.length&&(this._pendingStyles={},T.forEach(Z=>{this._currentKeyframe[Z]=w[Z]}),Object.keys(this._localTimelineStyles).forEach(Z=>{this._currentKeyframe.hasOwnProperty(Z)||(this._currentKeyframe[Z]=this._localTimelineStyles[Z])}))}snapshotCurrentStyles(){Object.keys(this._localTimelineStyles).forEach(w=>{const T=this._localTimelineStyles[w];this._pendingStyles[w]=T,this._updateStyle(w,T)})}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const w=[];for(let T in this._currentKeyframe)w.push(T);return w}mergeTimelineCollectedStyles(w){Object.keys(w._styleSummary).forEach(T=>{const Z=this._styleSummary[T],pt=w._styleSummary[T];(!Z||pt.time>Z.time)&&this._updateStyle(T,pt.value)})}buildKeyframes(){this.applyStylesToKeyframe();const w=new Set,T=new Set,Z=1===this._keyframes.size&&0===this.duration;let pt=[];this._keyframes.forEach((oe,ye)=>{const De=ge(oe,!0);Object.keys(De).forEach(hn=>{const mn=De[hn];mn==j.k1?w.add(hn):mn==j.l3&&T.add(hn)}),Z||(De.offset=ye/this.duration),pt.push(De)});const Nt=w.size?Mt(w.values()):[],Kt=T.size?Mt(T.values()):[];if(Z){const oe=pt[0],ye=Ae(oe);oe.offset=0,ye.offset=1,pt=[oe,ye]}return yr(this.element,pt,Nt,Kt,this.duration,this.startTime,this.easing,!1)}}class Ie extends Jt{constructor(w,T,Z,pt,Nt,Kt,oe=!1){super(w,T,Kt.delay),this.keyframes=Z,this.preStyleProps=pt,this.postStyleProps=Nt,this._stretchStartingKeyframe=oe,this.timings={duration:Kt.duration,delay:Kt.delay,easing:Kt.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let w=this.keyframes,{delay:T,duration:Z,easing:pt}=this.timings;if(this._stretchStartingKeyframe&&T){const Nt=[],Kt=Z+T,oe=T/Kt,ye=ge(w[0],!1);ye.offset=0,Nt.push(ye);const De=ge(w[0],!1);De.offset=Je(oe),Nt.push(De);const hn=w.length-1;for(let mn=1;mn<=hn;mn++){let gt=ge(w[mn],!1);gt.offset=Je((T+gt.offset*Z)/Kt),Nt.push(gt)}Z=Kt,T=0,pt="",w=Nt}return yr(this.element,w,this.preStyleProps,this.postStyleProps,Z,T,pt,!0)}}function Je(_t,w=3){const T=Math.pow(10,w-1);return Math.round(_t*T)/T}class Te{}class nn extends Te{normalizePropertyName(w,T){return mt(w)}normalizeStyleValue(w,T,Z,pt){let Nt="";const Kt=Z.toString().trim();if(pn[T]&&0!==Z&&"0"!==Z)if("number"==typeof Z)Nt="px";else{const oe=Z.match(/^[+-]?[\d\.]+([a-z]*)$/);oe&&0==oe[1].length&&pt.push(`Please provide a CSS unit value for ${w}:${Z}`)}return Kt+Nt}}const pn=function(w){const T={};return w.forEach(Z=>T[Z]=!0),T}("width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective".split(","));function Pn(_t,w,T,Z,pt,Nt,Kt,oe,ye,De,hn,mn,gt){return{type:0,element:_t,triggerName:w,isRemovalTransition:pt,fromState:T,fromStyles:Nt,toState:Z,toStyles:Kt,timelines:oe,queriedElements:ye,preStyleProps:De,postStyleProps:hn,totalTime:mn,errors:gt}}const Mn={};class Ve{constructor(w,T,Z){this._triggerName=w,this.ast=T,this._stateStyles=Z}match(w,T,Z,pt){return oe=w,ye=T,De=Z,hn=pt,this.ast.matchers.some(mn=>mn(oe,ye,De,hn));var oe,ye,De,hn}buildStyles(w,T,Z){const pt=this._stateStyles["*"],Nt=this._stateStyles[w],Kt=pt?pt.buildStyles(T,Z):{};return Nt?Nt.buildStyles(T,Z):Kt}build(w,T,Z,pt,Nt,Kt,oe,ye,De,hn){const mn=[],gt=this.ast.options&&this.ast.options.params||Mn,L=this.buildStyles(Z,oe&&oe.params||Mn,mn),z=ye&&ye.params||Mn,$=this.buildStyles(pt,z,mn),Tt=new Set,qt=new Map,we=new Map,Ce="void"===pt,Ke={params:Object.assign(Object.assign({},gt),z)},wn=hn?[]:Re(w,T,this.ast.animation,Nt,Kt,L,$,Ke,De,mn);let Gn=0;if(wn.forEach(jr=>{Gn=Math.max(jr.duration+jr.delay,Gn)}),mn.length)return Pn(T,this._triggerName,Z,pt,Ce,L,$,[],[],qt,we,Gn,mn);wn.forEach(jr=>{const Pi=jr.element,Ri=q(qt,Pi,{});jr.preStyleProps.forEach(Bi=>Ri[Bi]=!0);const ji=q(we,Pi,{});jr.postStyleProps.forEach(Bi=>ji[Bi]=!0),Pi!==T&&Tt.add(Pi)});const dr=Mt(Tt.values());return Pn(T,this._triggerName,Z,pt,Ce,L,$,wn,dr,qt,we,Gn)}}class Pe{constructor(w,T,Z){this.styles=w,this.defaultParams=T,this.normalizer=Z}buildStyles(w,T){const Z={},pt=Ae(this.defaultParams);
1return Object.keys(w).forEach(Nt=>{const Kt=w[Nt];null!=Kt&&(pt[Nt]=Kt)}),this.styles.styles.forEach(Nt=>{if("string"!=typeof Nt){const Kt=Nt;Object.keys(Kt).forEach(oe=>{let ye=Kt[oe];ye.length>1&&(ye=Ut(ye,pt,T));const De=this.normalizer.normalizePropertyName(oe,T);ye=this.normalizer.normalizeStyleValue(oe,De,ye,T),Z[De]=ye})}}),Z}}class zt{constructor(w,T,Z){this.name=w,this.ast=T,this._normalizer=Z,this.transitionFactories=[],this.states={},T.states.forEach(pt=>{this.states[pt.name]=new Pe(pt.style,pt.options&&pt.options.params||{},Z)}),me(this.states,"true","1"),me(this.states,"false","0"),T.transitions.forEach(pt=>{this.transitionFactories.push(new Ve(w,pt,this.states))}),this.fallbackTransition=new Ve(w,{type:1,animation:{type:2,steps:[],options:null},matchers:[(ye,De)=>!0],options:null,queryCount:0,depCount:0},this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(w,T,Z,pt){return this.transitionFactories.find(Nt=>Nt.match(w,T,Z,pt))||null}matchStyles(w,T,Z){return this.fallbackTransition.buildStyles(w,T,Z)}}function me(_t,w,T){_t.hasOwnProperty(w)?_t.hasOwnProperty(T)||(_t[T]=_t[w]):_t.hasOwnProperty(T)&&(_t[w]=_t[T])}const Dt=new ur;class le{constructor(w,T,Z){this.bodyNode=w,this._driver=T,this._normalizer=Z,this._animations={},this._playersById={},this.players=[]}register(w,T){const Z=[],pt=de(this._driver,T,Z);if(Z.length)throw new Error(`Unable to build the animation due to the following errors: ${Z.join("\n")}`);this._animations[w]=pt}_buildPlayer(w,T,Z){const pt=w.element,Nt=V(0,this._normalizer,0,w.keyframes,T,Z);return this._driver.animate(pt,Nt,w.duration,w.delay,w.easing,[],!0)}create(w,T,Z={}){const pt=[],Nt=this._animations[w];let Kt;const oe=new Map;if(Nt?(Kt=Re(this._driver,T,Nt,P,Q,{},{},Z,Dt,pt),Kt.forEach(De=>{const hn=q(oe,De.element,{});De.postStyleProps.forEach(mn=>hn[mn]=null)})):(pt.push("The requested animation doesn't exist or has already been destroyed"),Kt=[]),pt.length)throw new Error(`Unable to create the animation due to the following errors: ${pt.join("\n")}`);oe.forEach((De,hn)=>{Object.keys(De).forEach(mn=>{De[mn]=this._driver.computeStyle(hn,mn,j.l3)})});const ye=B(Kt.map(De=>{const hn=oe.get(De.element);return this._buildPlayer(De,{},hn)}));return this._playersById[w]=ye,ye.onDestroy(()=>this.destroy(w)),this.players.push(ye),ye}destroy(w){const T=this._getPlayer(w);T.destroy(),delete this._playersById[w];const Z=this.players.indexOf(T);Z>=0&&this.players.splice(Z,1)}_getPlayer(w){const T=this._playersById[w];if(!T)throw new Error(`Unable to find the timeline player referenced by ${w}`);return T}listen(w,T,Z,pt){const Nt=Y(T,"","","");return _(this._getPlayer(w),Z,Nt,pt),()=>{}}command(w,T,Z,pt){if("register"==Z)return void this.register(w,pt[0]);if("create"==Z)return void this.create(w,T,pt[0]||{});const Nt=this._getPlayer(w);switch(Z){case"play":Nt.play();break;case"pause":Nt.pause();break;case"reset":Nt.reset();break;case"restart":Nt.restart();break;case"finish":Nt.finish();break;case"init":Nt.init();break;case"setPosition":Nt.setPosition(parseFloat(pt[0]));break;case"destroy":this.destroy(w)}}}const pe="ng-animate-queued",dn="ng-animate-disabled",Ze=[],Kn={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},un={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},fn="__ng_removed";class on{constructor(w,T=""){this.namespaceId=T;const Z=w&&w.hasOwnProperty("value");if(this.value=(Z?w.value:w)??null,Z){const pt=Ae(w);delete pt.value,this.options=pt}else this.options={};this.options.params||(this.options.params={})}get params(){return this.options.params}absorbOptions(w){const T=w.params;if(T){const Z=this.options.params;Object.keys(T).forEach(pt=>{null==Z[pt]&&(Z[pt]=T[pt])})}}}const Nn="void",Zn=new on(Nn);class cn{constructor(w,T,Z){this.id=w,this.hostElement=T,this._engine=Z,this.players=[],this._triggers={},this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"
1+w,fe(T,this._hostClassName)}listen(w,T,Z,pt){if(!this._triggers.hasOwnProperty(T))throw new Error(`Unable to listen on the animation trigger event "${Z}" because the animation trigger "${T}" doesn't exist!`);if(null==Z||0==Z.length)throw new Error(`Unable to listen on the animation trigger "${T}" because the provided event is undefined!`);if("start"!=(De=Z)&&"done"!=De)throw new Error(`The provided animation trigger event "${Z}" for the animation trigger "${T}" is not supported!`);var De;const Nt=q(this._elementListeners,w,[]),Kt={name:T,phase:Z,callback:pt};Nt.push(Kt);const oe=q(this._engine.statesByElement,w,{});return oe.hasOwnProperty(T)||(fe(w,U),fe(w,U+"-"+T),oe[T]=Zn),()=>{this._engine.afterFlush(()=>{const ye=Nt.indexOf(Kt);ye>=0&&Nt.splice(ye,1),this._triggers[T]||delete oe[T]})}}register(w,T){return!this._triggers[w]&&(this._triggers[w]=T,!0)}_getTrigger(w){const T=this._triggers[w];if(!T)throw new Error(`The provided animation trigger "${w}" has not been registered!`);return T}trigger(w,T,Z,pt=!0){const Nt=this._getTrigger(T),Kt=new zn(this.id,T,w);let oe=this._engine.statesByElement.get(w);oe||(fe(w,U),fe(w,U+"-"+T),this._engine.statesByElement.set(w,oe={}));let ye=oe[T];const De=new on(Z,this.id);if(!(Z&&Z.hasOwnProperty("value"))&&ye&&De.absorbOptions(ye.options),oe[T]=De,ye||(ye=Zn),De.value!==Nn&&ye.value===De.value){if(!function(z,$){const Tt=Object.keys(z),qt=Object.keys($);if(Tt.length!=qt.length)return!1;for(let we=0;we<Tt.length;we++){const Ce=Tt[we];if(!$.hasOwnProperty(Ce)||z[Ce]!==$[Ce])return!1}return!0}(ye.params,De.params)){const L=[],z=Nt.matchStyles(ye.value,ye.params,L),$=Nt.matchStyles(De.value,De.params,L);L.length?this._engine.reportError(L):this._engine.afterFlush(()=>{Me(w,z),rn(w,$)})}return}const hn=q(this._engine.playersByElement,w,[]);hn.forEach(L=>{L.namespaceId==this.id&&L.triggerName==T&&L.queued&&L.destroy()});let mn=Nt.matchTransition(ye.value,De.value,w,De.params),gt=!1;if(!mn){if(!pt)return;mn=Nt.fallbackTransition,gt=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:w,triggerName:T,transition:mn,fromState:ye,toState:De,player:Kt,isFallbackTransition:gt}),gt||(fe(w,pe),Kt.onStart(()=>{Ot(w,pe)})),Kt.onDone(()=>{let L=this.players.indexOf(Kt);L>=0&&this.players.splice(L,1);const z=this._engine.playersByElement.get(w);if(z){let $=z.indexOf(Kt);$>=0&&z.splice($,1)}}),this.players.push(Kt),hn.push(Kt),Kt}deregister(w){delete this._triggers[w],this._engine.statesByElement.forEach((T,Z)=>{delete T[w]}),this._elementListeners.forEach((T,Z)=>{this._elementListeners.set(Z,T.filter(pt=>pt.name!=w))})}clearElementCache(w){this._engine.statesByElement.delete(w),this._elementListeners.delete(w);const T=this._engine.playersByElement.get(w);T&&(T.forEach(Z=>Z.destroy()),this._engine.playersByElement.delete(w))}_signalRemovalForInnerTriggers(w,T){const Z=this._engine.driver.query(w,G,!0);Z.forEach(pt=>{if(pt[fn])return;const Nt=this._engine.fetchNamespacesByElement(pt);Nt.size?Nt.forEach(Kt=>Kt.triggerLeaveAnimation(pt,T,!1,!0)):this.clearElementCache(pt)}),this._engine.afterFlushAnimationsDone(()=>Z.forEach(pt=>this.clearElementCache(pt)))}triggerLeaveAnimation(w,T,Z,pt){const Nt=this._engine.statesByElement.get(w),Kt=new Map;if(Nt){const oe=[];if(Object.keys(Nt).forEach(ye=>{if(Kt.set(ye,Nt[ye].value),this._triggers[ye]){const De=this.trigger(w,ye,Nn,pt);De&&oe.push(De)}}),oe.length)return this._engine.markElementAsRemoved(this.id,w,!0,T,Kt),Z&&B(oe).onDone(()=>this._engine.processLeaveNode(w)),!0}return!1}prepareLeaveAnimationListeners(w){const T=this._elementListeners.get(w),Z=this._engine.statesByElement.get(w);if(T&&Z){const pt=new Set;T.forEach(Nt=>{const Kt=Nt.name;if(pt.has(Kt))return;pt.add(Kt);const oe=this._triggers[Kt].fallbackTransition,ye=Z[Kt]||Zn,De=new on(Nn),hn=new zn(this.id,Kt,w);this._engine.totalQueuedPlayers++,this._queue.push({element:w,triggerName:Kt,transition:oe,fromState:ye,toState:De,player:hn,isFallbackTransition:!0})})}}removeNode(w,T){const Z=this._engine;if(w.childElementCount&&this._signalRemovalForInnerTriggers(w,T),this.triggerLeaveAnimation(w,T,!0))return;let pt=!1;if(Z.totalAnimations){const Nt=Z.players.length?Z.playersByQueriedElement.get(w):[];if(Nt&&Nt.length)pt=!0;else{let Kt=w;for(;Kt=Kt.parentNode;)if(Z.statesByElement.get(Kt)){pt=!0;break}}}if(this.prepareLeaveAnimationListeners(w),pt)Z.markElementAsRemoved(this.id,w,!1,T);else{const Nt=w[fn];(!Nt||Nt===Kn)&&(Z.afterFlush(()=>this.clearElementCache(w)),Z.destroyInnerAnimations(w),Z._onRemovalComplete(w,T))}}insertNode(w,T){fe(w,this._hostClassName)}drainQueuedTransitions(w){const T=[];return this._queue.forEach(Z=>{const pt=Z.player;if(pt.destroyed)return;const Nt=Z.element,Kt=this._elementListeners.get(Nt);Kt&&Kt.forEach(oe=>{if(oe.name==Z.triggerName){const ye=Y(Nt,Z.triggerName,Z.fromState.value,Z.toState.value);ye._data=w,_(Z.player,oe.phase,ye,oe.callback)}}),pt.markedForDestroy?this._engine.afterFlush(()=>{pt.destroy()}):T.push(Z)}),this._queue=[],T.sort((Z,pt)=>{const Nt=Z.transition.ast.depCount,Kt=pt.transition.ast.depCount;return 0==Nt||0==Kt?Nt-Kt:this._engine.driver.containsElement(Z.element,pt.element)?1:-1})}
1destroy(w){this.players.forEach(T=>T.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,w)}elementContainsData(w){let T=!1;return this._elementListeners.has(w)&&(T=!0),T=!!this._queue.find(Z=>Z.element===w)||T,T}}class Qn{constructor(w,T,Z){this.bodyNode=w,this.driver=T,this._normalizer=Z,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(pt,Nt)=>{}}_onRemovalComplete(w,T){this.onRemovalComplete(w,T)}get queuedPlayers(){const w=[];return this._namespaceList.forEach(T=>{T.players.forEach(Z=>{Z.queued&&w.push(Z)})}),w}createNamespace(w,T){const Z=new cn(w,T,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,T)?this._balanceNamespaceList(Z,T):(this.newHostElements.set(T,Z),this.collectEnterElement(T)),this._namespaceLookup[w]=Z}_balanceNamespaceList(w,T){const Z=this._namespaceList.length-1;if(Z>=0){let pt=!1;for(let Nt=Z;Nt>=0;Nt--)if(this.driver.containsElement(this._namespaceList[Nt].hostElement,T)){this._namespaceList.splice(Nt+1,0,w),pt=!0;break}pt||this._namespaceList.splice(0,0,w)}else this._namespaceList.push(w);return this.namespacesByHostElement.set(T,w),w}register(w,T){let Z=this._namespaceLookup[w];return Z||(Z=this.createNamespace(w,T)),Z}registerTrigger(w,T,Z){let pt=this._namespaceLookup[w];pt&&pt.register(T,Z)&&this.totalAnimations++}destroy(w,T){if(!w)return;const Z=this._fetchNamespace(w);this.afterFlush(()=>{this.namespacesByHostElement.delete(Z.hostElement),delete this._namespaceLookup[w];const pt=this._namespaceList.indexOf(Z);pt>=0&&this._namespaceList.splice(pt,1)}),this.afterFlushAnimationsDone(()=>Z.destroy(T))}_fetchNamespace(w){return this._namespaceLookup[w]}fetchNamespacesByElement(w){const T=new Set,Z=this.statesByElement.get(w);if(Z){const pt=Object.keys(Z);for(let Nt=0;Nt<pt.length;Nt++){const Kt=Z[pt[Nt]].namespaceId;if(Kt){const oe=this._fetchNamespace(Kt);oe&&T.add(oe)}}}return T}trigger(w,T,Z,pt){if(sn(T)){const Nt=this._fetchNamespace(w);if(Nt)return Nt.trigger(T,Z,pt),!0}return!1}insertNode(w,T,Z,pt){if(!sn(T))return;const Nt=T[fn];if(Nt&&Nt.setForRemoval){Nt.setForRemoval=!1,Nt.setForMove=!0;const Kt=this.collectedLeaveElements.indexOf(T);Kt>=0&&this.collectedLeaveElements.splice(Kt,1)}if(w){const Kt=this._fetchNamespace(w);Kt&&Kt.insertNode(T,Z)}pt&&this.collectEnterElement(T)}collectEnterElement(w){this.collectedEnterElements.push(w)}markElementAsDisabled(w,T){T?this.disabledNodes.has(w)||(this.disabledNodes.add(w),fe(w,dn)):this.disabledNodes.has(w)&&(this.disabledNodes.delete(w),Ot(w,dn))}removeNode(w,T,Z,pt){if(sn(T)){const Nt=w?this._fetchNamespace(w):null;if(Nt?Nt.removeNode(T,pt):this.markElementAsRemoved(w,T,!1,pt),Z){const Kt=this.namespacesByHostElement.get(T);Kt&&Kt.id!==w&&Kt.removeNode(T,pt)}}else this._onRemovalComplete(T,pt)}markElementAsRemoved(w,T,Z,pt,Nt){this.collectedLeaveElements.push(T),T[fn]={namespaceId:w,setForRemoval:pt,hasAnimation:Z,removedBeforeQueried:!1,previousTriggersValues:Nt}}listen(w,T,Z,pt,Nt){return sn(T)?this._fetchNamespace(w).listen(T,Z,pt,Nt):()=>{}}_buildInstruction(w,T,Z,pt,Nt){return w.transition.build(this.driver,w.element,w.fromState.value,w.toState.value,Z,pt,w.fromState.options,w.toState.options,T,Nt)}destroyInnerAnimations(w){let T=this.driver.query(w,G,!0);T.forEach(Z=>this.destroyActiveAnimationsForElement(Z)),0!=this.playersByQueriedElement.size&&(T=this.driver.query(w,wt,!0),T.forEach(Z=>this.finishActiveQueriedAnimationOnElement(Z)))}destroyActiveAnimationsForElement(w){const T=this.playersByElement.get(w);T&&T.forEach(Z=>{Z.queued?Z.markedForDestroy=!0:Z.destroy()})}finishActiveQueriedAnimationOnElement(w){const T=this.playersByQueriedElement.get(w);T&&T.forEach(Z=>Z.finish())}whenRenderingDone(){return new Promise(w=>{if(this.players.length)return B(this.players).onDone(()=>w());w()})}processLeaveNode(w){var T;const Z=w[fn];if(Z&&Z.setForRemoval){if(w[fn]=Kn,Z.namespaceId){this.destroyInnerAnimations(w);const pt=this._fetchNamespace(Z.namespaceId);pt&&pt.clearElementCache(w)}this._onRemovalComplete(w,Z.setForRemoval)}!(null===(T=w.classList)||void 0===T)&&T.contains(dn)&&this.markElementAsDisabled(w,!1),this.driver.query(w,".ng-animate-disabled",!0).forEac
vendor: 4,085 bytes, line 1
1h(pt=>{this.markElementAsDisabled(pt,!1)})}flush(w=-1){let T=[];if(this.newHostElements.size&&(this.newHostElements.forEach((Z,pt)=>this._balanceNamespaceList(Z,pt)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let Z=0;Z<this.collectedEnterElements.length;Z++)fe(this.collectedEnterElements[Z],"ng-star-inserted");if(this._namespaceList.length&&(this.totalQueuedPlayers||this.collectedLeaveElements.length)){const Z=[];try{T=this._flushAnimations(Z,w)}finally{for(let pt=0;pt<Z.length;pt++)Z[pt]()}}else for(let Z=0;Z<this.collectedLeaveElements.length;Z++)this.processLeaveNode(this.collectedLeaveElements[Z]);if(this.totalQueuedPlayers=0,this.collectedEnterElements.length=0,this.collectedLeaveElements.length=0,this._flushFns.forEach(Z=>Z()),this._flushFns=[],this._whenQuietFns.length){const Z=this._whenQuietFns;this._whenQuietFns=[],T.length?B(T).onDone(()=>{Z.forEach(pt=>pt())}):Z.forEach(pt=>pt())}}reportError(w){throw new Error(`Unable to process animations due to the following failed trigger transitions\n ${w.join("\n")}`)}_flushAnimations(w,T){const Z=new ur,pt=[],Nt=new Map,Kt=[],oe=new Map,ye=new Map,De=new Map,hn=new Set;this.disabledNodes.forEach(Vn=>{hn.add(Vn);const Hn=this.driver.query(Vn,".ng-animate-queued",!0);for(let $n=0;$n<Hn.length;$n++)hn.add(Hn[$n])});const mn=this.bodyNode,gt=Array.from(this.statesByElement.keys()),L=re(gt,this.collectedEnterElements),z=new Map;let $=0;L.forEach((Vn,Hn)=>{const $n=P+$++;z.set(Hn,$n),Vn.forEach(zr=>fe(zr,$n))});const Tt=[],qt=new Set,we=new Set;for(let Vn=0;Vn<this.collectedLeaveElements.length;Vn++){const Hn=this.collectedLeaveElements[Vn],$n=Hn[fn];$n&&$n.setForRemoval&&(Tt.push(Hn),qt.add(Hn),$n.hasAnimation?this.driver.query(Hn,".ng-star-inserted",!0).forEach(zr=>qt.add(zr)):we.add(Hn))}const Ce=new Map,Ke=re(gt,Array.from(qt));Ke.forEach((Vn,Hn)=>{const $n=Q+$++;Ce.set(Hn,$n),Vn.forEach(zr=>fe(zr,$n))}),w.push(()=>{L.forEach((Vn,Hn)=>{const $n=z.get(Hn);Vn.forEach(zr=>Ot(zr,$n))}),Ke.forEach((Vn,Hn)=>{const $n=Ce.get(Hn);Vn.forEach(zr=>Ot(zr,$n))}),Tt.forEach(Vn=>{this.processLeaveNode(Vn)})});const wn=[],Gn=[];for(let Vn=this._namespaceList.length-1;Vn>=0;Vn--)this._namespaceList[Vn].drainQueuedTransitions(T).forEach(Hn=>{const $n=Hn.player,zr=Hn.element;if(wn.push($n),this.collectedEnterElements.length){const Hr=zr[fn];if(Hr&&Hr.setForMove){if(Hr.previousTriggersValues&&Hr.previousTriggersValues.has(Hn.triggerName)){const xs=Hr.previousTriggersValues.get(Hn.triggerName),Li=this.statesByElement.get(Hn.element);Li&&Li[Hn.triggerName]&&(Li[Hn.triggerName].value=xs)}return void $n.destroy()}}const os=!mn||!this.driver.containsElement(mn,zr),Vi=Ce.get(zr),Mi=z.get(zr),oi=this._buildInstruction(Hn,Z,Mi,Vi,os);if(oi.errors&&oi.errors.length)return void Gn.push(oi);if(os)return $n.onStart(()=>Me(zr,oi.fromStyles)),$n.onDestroy(()=>rn(zr,oi.toStyles)),void pt.push($n);if(Hn.isFallbackTransition)return $n.onStart(()=>Me(zr,oi.fromStyles)),$n.onDestroy(()=>rn(zr,oi.toStyles)),void pt.push($n);const Hi=[];oi.timelines.forEach(Hr=>{Hr.stretchStartingKeyframe=!0,this.disabledNodes.has(Hr.element)||Hi.push(Hr)}),oi.timelines=Hi,Z.append(zr,oi.timelines),Kt.push({instruction:oi,player:$n,element:zr}),oi.queriedElements.forEach(Hr=>q(oe,Hr,[]).push($n)),oi.preStyleProps.forEach((Hr,xs)=>{const Li=Object.keys(Hr);if(Li.length){let as=ye.get(xs);as||ye.set(xs,as=new Set),Li.forEach(ms=>as.add(ms))}}),oi.postStyleProps.forEach((Hr,xs)=>{const Li=Object.keys(Hr);let as=De.get(xs);as||De.set(xs,as=new Set),Li.forEach(ms=>as.add(ms))})});if(Gn.length){const Vn=[];Gn.forEach(Hn=>{Vn.push(`@${Hn.triggerName} has failed due to:\n`),Hn.errors.forEach($n=>Vn.push(`- ${$n}\n`))}),wn.forEach(Hn=>Hn.destroy()),this.reportError(Vn)}const dr=new Map,jr=new Map;Kt.forEach(Vn=>{const Hn=Vn.element;Z.has(Hn)&&(jr.set(Hn,Hn),this._beforeAnimationBuild(Vn.player.namespaceId,Vn.instruction,dr))}),pt.forEach(Vn=>{const Hn=Vn.element;this._getPreviousPlayers(Hn,!1,Vn.namespaceId,Vn.triggerName,null).forEach($n=>{q(dr,Hn,[]).push($n),$n.destroy()})});
1const Pi=Tt.filter(Vn=>Ye(Vn,ye,De)),Ri=new Map;Oe(Ri,this.driver,we,De,j.l3).forEach(Vn=>{Ye(Vn,ye,De)&&Pi.push(Vn)});const ji=new Map;L.forEach((Vn,Hn)=>{Oe(ji,this.driver,new Set(Vn),ye,j.k1)}),Pi.forEach(Vn=>{const Hn=Ri.get(Vn),$n=ji.get(Vn);Ri.set(Vn,Object.assign(Object.assign({},Hn),$n))});const Bi=[],es=[],As={};Kt.forEach(Vn=>{const{element:Hn,player:$n,instruction:zr}=Vn;if(Z.has(Hn)){if(hn.has(Hn))return $n.onDestroy(()=>rn(Hn,zr.toStyles)),$n.disabled=!0,$n.overrideTotalTime(zr.totalTime),void pt.push($n);let os=As;if(jr.size>1){let Mi=Hn;const oi=[];for(;Mi=Mi.parentNode;){const Hi=jr.get(Mi);if(Hi){os=Hi;break}oi.push(Mi)}oi.forEach(Hi=>jr.set(Hi,os))}const Vi=this._buildAnimation($n.namespaceId,zr,dr,Nt,ji,Ri);if($n.setRealPlayer(Vi),os===As)Bi.push($n);else{const Mi=this.playersByElement.get(os);Mi&&Mi.length&&($n.parentPlayer=B(Mi)),pt.push($n)}}else Me(Hn,zr.fromStyles),$n.onDestroy(()=>rn(Hn,zr.toStyles)),es.push($n),hn.has(Hn)&&pt.push($n)}),es.forEach(Vn=>{const Hn=Nt.get(Vn.element);if(Hn&&Hn.length){const $n=B(Hn);Vn.setRealPlayer($n)}}),pt.forEach(Vn=>{Vn.parentPlayer?Vn.syncPlayerEvents(Vn.parentPlayer):Vn.destroy()});for(let Vn=0;Vn<Tt.length;Vn++){const Hn=Tt[Vn],$n=Hn[fn];if(Ot(Hn,Q),$n&&$n.hasAnimation)continue;let zr=[];if(oe.size){let Vi=oe.get(Hn);Vi&&Vi.length&&zr.push(...Vi);let Mi=this.driver.query(Hn,wt,!0);for(let oi=0;oi<Mi.length;oi++){let Hi=oe.get(Mi[oi]);Hi&&Hi.length&&zr.push(...Hi)}}const os=zr.filter(Vi=>!Vi.destroyed);os.length?ie(this,Hn,os):this.processLeaveNode(Hn)}return Tt.length=0,Bi.forEach(Vn=>{this.players.push(Vn),Vn.onDone(()=>{Vn.destroy();const Hn=this.players.indexOf(Vn);this.players.splice(Hn,1)}),Vn.play()}),Bi}elementContainsData(w,T){let Z=!1;const pt=T[fn];return pt&&pt.setForRemoval&&(Z=!0),this.playersByElement.has(T)&&(Z=!0),this.playersByQueriedElement.has(T)&&(Z=!0),this.statesByElement.has(T)&&(Z=!0),this._fetchNamespace(w).elementContainsData(T)||Z}afterFlush(w){this._flushFns.push(w)}afterFlushAnimationsDone(w){this._whenQuietFns.push(w)}_getPreviousPlayers(w,T,Z,pt,Nt){let Kt=[];if(T){const oe=this.playersByQueriedElement.get(w);oe&&(Kt=oe)}else{const oe=this.playersByElement.get(w);if(oe){const ye=!Nt||Nt==Nn;oe.forEach(De=>{De.queued||!ye&&De.triggerName!=pt||Kt.push(De)})}}return(Z||pt)&&(Kt=Kt.filter(oe=>!(Z&&Z!=oe.namespaceId||pt&&pt!=oe.triggerName))),Kt}_beforeAnimationBuild(w,T,Z){const pt=T.element,Nt=T.isRemovalTransition?void 0:w,Kt=T.isRemovalTransition?void 0:T.triggerName;for(const oe of T.timelines){const ye=oe.element,De=ye!==pt,hn=q(Z,ye,[]);this._getPreviousPlayers(ye,De,Nt,Kt,T.toState).forEach(mn=>{const gt=mn.getRealPlayer();gt.beforeDestroy&>.beforeDestroy(),mn.destroy(),hn.push(mn)})}Me(pt,T.fromStyles)}_buildAnimation(w,T,Z,pt,Nt,Kt){const oe=T.triggerName,ye=T.element,De=[],hn=new Set,mn=new Set,gt=T.timelines.map(z=>{const $=z.element;hn.add($);const Tt=$[fn];if(Tt&&Tt.removedBeforeQueried)return new j.ZN(z.duration,z.delay);const qt=$!==ye,we=function(jr){const Pi=[];return je(jr,Pi),Pi}((Z.get($)||Ze).map(dr=>dr.getRealPlayer())).filter(dr=>!!dr.element&&dr.element===$),Ce=Nt.get($),Ke=Kt.get($),wn=V(0,this._normalizer,0,z.keyframes,Ce,Ke),Gn=this._buildPlayer(z,wn,we);if(z.subTimeline&&pt&&mn.add($),qt){const dr=new zn(w,oe,$);dr.setRealPlayer(Gn),De.push(dr)}return Gn});De.forEach(z=>{q(this.playersByQueriedElement,z.element,[]).push(z),z.onDone(()=>function(Tt,qt,we){let Ce;if(Tt instanceof Map){if(Ce=Tt.get(qt),Ce){if(Ce.length){const Ke=Ce.indexOf(we);Ce.splice(Ke,1)}0==Ce.length&&Tt.delete(qt)}}else if(Ce=Tt[qt],Ce){if(Ce.length){const Ke=Ce.indexOf(we);Ce.splice(Ke,1)}0==Ce.length&&delete Tt[qt]}return Ce}(this.playersByQueriedElement,z.element,z))}),hn.forEach(z=>fe(z,dt));const L=B(gt);return L.onDestroy(()=>{hn.forEach(z=>Ot(z,dt)),rn(ye,T.toStyles)}),mn.forEach(z=>{q(pt,z,[]).push(L)}),L}_buildPlayer(w,T,Z){return T.length>0?this.driver.animate(w.element,T,w.duration,w.delay,w.easing,Z):new j.ZN(w.duration,w.delay)}}class zn{constructor(w,T,Z){this.namespaceId=w,this.triggerName=T,this.element=Z,this._player=new j.ZN,this._containsRealPlayer=!1,this._queuedCallbacks={},this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(w){this._containsRealPlayer||(this._player=w,Object.keys(this._queuedCallbacks).forEac
1h(T=>{this._queuedCallbacks[T].forEach(Z=>_(w,T,void 0,Z))}),this._queuedCallbacks={},this._containsRealPlayer=!0,this.overrideTotalTime(w.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(w){this.totalTime=w}syncPlayerEvents(w){const T=this._player;T.triggerCallback&&w.onStart(()=>T.triggerCallback("start")),w.onDone(()=>this.finish()),w.onDestroy(()=>this.destroy())}_queueEvent(w,T){q(this._queuedCallbacks,w,[]).push(T)}onDone(w){this.queued&&this._queueEvent("done",w),this._player.onDone(w)}onStart(w){this.queued&&this._queueEvent("start",w),this._player.onStart(w)}onDestroy(w){this.queued&&this._queueEvent("destroy",w),this._player.onDestroy(w)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(w){this.queued||this._player.setPosition(w)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(w){const T=this._player;T.triggerCallback&&T.triggerCallback(w)}}function sn(_t){return _t&&1===_t.nodeType}function xn(_t,w){const T=_t.style.display;return _t.style.display=w??"none",T}function Oe(_t,w,T,Z,pt){const Nt=[];T.forEach(ye=>Nt.push(xn(ye)));const Kt=[];Z.forEach((ye,De)=>{const hn={};ye.forEach(mn=>{const gt=hn[mn]=w.computeStyle(De,mn,pt);(!gt||0==gt.length)&&(De[fn]=un,Kt.push(De))}),_t.set(De,hn)});let oe=0;return T.forEach(ye=>xn(ye,Nt[oe++])),Kt}function re(_t,w){const T=new Map;if(_t.forEach(Kt=>T.set(Kt,[])),0==w.length)return T;const Z=new Set(w),pt=new Map;function Nt(Kt){if(!Kt)return 1;let oe=pt.get(Kt);if(oe)return oe;const ye=Kt.parentNode;return oe=T.has(ye)?ye:Z.has(ye)?1:Nt(ye),pt.set(Kt,oe),oe}return w.forEach(Kt=>{const oe=Nt(Kt);1!==oe&&T.get(oe).push(Kt)}),T}function fe(_t,w){var T;null===(T=_t.classList)||void 0===T||T.add(w)}function Ot(_t,w){var T;null===(T=_t.classList)||void 0===T||T.remove(w)}function ie(_t,w,T){B(T).onDone(()=>_t.processLeaveNode(w))}function je(_t,w){for(let T=0;T<_t.length;T++){const Z=_t[T];Z instanceof j.ZE?je(Z.players,w):w.push(Z)}}function Ye(_t,w,T){const Z=T.get(_t);if(!Z)return!1;let pt=w.get(_t);return pt?Z.forEach(Nt=>pt.add(Nt)):w.set(_t,Z),T.delete(_t),!0}class On{constructor(w,T,Z){this.bodyNode=w,this._driver=T,this._normalizer=Z,this._triggerCache={},this.onRemovalComplete=(pt,Nt)=>{},this._transitionEngine=new Qn(w,T,Z),this._timelineEngine=new le(w,T,Z),this._transitionEngine.onRemovalComplete=(pt,Nt)=>this.onRemovalComplete(pt,Nt)}registerTrigger(w,T,Z,pt,Nt){const Kt=w+"-"+pt;let oe=this._triggerCache[Kt];if(!oe){const ye=[],De=de(this._driver,Nt,ye);if(ye.length)throw new Error(`The animation trigger "${pt}" has failed to build due to the following errors:\n - ${ye.join("\n - ")}`);oe=new zt(pt,De,this._normalizer),this._triggerCache[Kt]=oe}this._transitionEngine.registerTrigger(T,pt,oe)}register(w,T){this._transitionEngine.register(w,T)}destroy(w,T){this._transitionEngine.destroy(w,T)}onInsert(w,T,Z,pt){this._transitionEngine.insertNode(w,T,Z,pt)}onRemove(w,T,Z,pt){this._transitionEngine.removeNode(w,T,pt||!1,Z)}disableAnimations(w,T){this._transitionEngine.markElementAsDisabled(w,T)}process(w,T,Z,pt){if("@"==Z.charAt(0)){const[Nt,Kt]=it(Z);this._timelineEngine.command(Nt,T,Kt,pt)}else this._transitionEngine.trigger(w,T,Z,pt)}listen(w,T,Z,pt,Nt){if("@"==Z.charAt(0)){const[Kt,oe]=it(Z);return this._timelineEngine.listen(Kt,T,oe,Nt)}return this._transitionEngine.listen(w,T,Z,pt,Nt)}flush(w=-1){this._transitionEngine.flush(w)}get players(){return this._transitionEngine.players.concat(this._timelineEngine.players)}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}}var In=v(9808);let gr=(()=>{class _t extends j._j{constructor(T,Z){super(),this._nextAnimationId=0,this._renderer=T.createRenderer(Z.body,{id:"0",encapsulation:p.ifc.None,styles:[],data:{animation:[]}})}build(T){const Z=this._nextAnimationId.toString();this._nextAnimationId++;const pt=Array.isArray(T)?(0,j.vP)(T):T;return wr(this._renderer,null,Z,"register",[pt]),new Yn(Z,this._renderer)}}return _t.\u0275fac=function(w){return new(w||_t)(p.LFG(p.FYo),p.LFG(In.K0))},_t.\u0275prov=p.Yz7({token:_t,factory:_t.\u0275fac}),_t})();class Yn extends j.LC{constructor(w,T){super(),this._id=w,this._renderer=T}create(w,T){return new qn(this._id,w,T||{},this._renderer)}}class qn{constructor(w,T,Z,pt){this.id=w,this.element=T,this._renderer=pt,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",Z)}_listen(w,T){return this._renderer.listen(this.element,`@@${this.id}:${w}`,T)}_command(w,...T){return wr(this._renderer,this.element,this.id,w,T)}onDone(w){this._listen("done",w)}onStart(w){this._listen("start",w)}onDestroy(w){this._listen("destroy",w)}init(){this._command("init")}hasStarted(){return this._started}play(){this._command("play"),this._started=!0}pause(){this._command("pause")}restart(){this._command("restart")}finish(){this._command("finish")}destroy(){this._command("destroy")}reset(){this._command("reset"),this._started=!1}setPosition(w){this._command("setPosition",w)}getPosition(){var w,T;return null!==(T=null===(w=this._renderer.engine.players[+this.id])||void 0===w?void 0:w.getPosition())&&void 0!==T?T:0}}function wr(_t,w,T,Z,pt){return _t.setProperty(w,`@@${T}:${Z}`,pt)}const Br="@.disabled";let vr=(()=>{class _t{constructor(T,Z,pt){this.delegate=T,this.engine=Z,this._zone=pt,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,this.promise=Promise.resolve(0),Z.onRemovalComplete=(Nt,Kt)=>{const oe=Kt?.parentNode(Nt);oe&&Kt.removeChild(oe,Nt)}}createRenderer(T,Z){const pt=this.delegate.createRenderer(T,Z);if(!(T&&Z&&Z.data&&Z.data.animation)){let ye=this._rendererCache.get(pt);return ye||(ye=new wi("",pt,this.engine),this._rendererCache.set(pt,ye)),ye}const Nt=Z.id,Kt=Z.id+"-"+this._currentId;this._currentId++,this.engine.register(Kt,T);const oe=ye=>{Array.isArray(ye)?ye.forEach(oe):this.engine.registerTrigger(Nt,Kt,T,ye.name,ye)};return Z.data.animation.forEach(oe),new Or(this,Kt,pt,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){this.promise.then(()=>{this._microtaskId++})}scheduleListenerCallback(T,Z,pt){T>=0&&T<this._microtaskId?this._zone.run(()=>Z(pt)):(0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(()=>{this._zone.run(()=>{this._animationCallbacksBuffer.forEach(Nt=>{const[Kt,oe]=Nt;Kt(oe)}),this._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([Z,pt]))}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}return _t.\u0275fac=function(w){return new(w||_t)(p.LFG(p.FYo),p.LFG(On),p.LFG(p.R0b))},_t.\u0275prov=p.Yz7({token:_t,factory:_t.\u0275fac}),_t})();class wi{constructor(w,T,Z){this.namespaceId=w,this.delegate=T,this.engine=Z,this.destroyNode=this.delegate.destroyNode?pt=>T.destroyNode(pt):null}get data(){return this.delegate.data}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy()}createElement(w,T){return this.delegate.createElement(w,T)}createComment(w){return this.delegate.createComment(w)}createText(w){return this.delegate.createText(w)}appendChild(w,T){this.delegate.appendChild(w,T),this.engine.onInsert(this.namespaceId,T,w,!1)}insertBefore(w,T,Z,pt=!0){this.delegate.insertBefore(w,T,Z),this.engine.onInsert(this.namespaceId,T,w,pt)}removeChild(w,T,Z){this.engine.onRemove(this.namespaceId,T,this.delegate,Z)}selectRootElement(w,T){return this.delegate.selectRootElement(w,T)}parentNode(w){return this.delegate.parentNode(w)}nextSibling(w){return this.delegate.nextSibling(w)}setAttribute(w,T,Z,pt){this.delegate.setAttribute(w,T,Z,pt)}removeAttribute(w,T,Z){this.delegate.removeAttribute(w,T,Z)}addClass(w,T){this.delegate.addClass(w,T)}removeClass(w,T){this.delegate.removeClass(w,T)}setStyle(w,T,Z,pt){this.delegate.setStyle(w,T,Z,pt)}removeStyle(w,T,Z){this.delegate.removeStyle(w,T,Z)}setProperty(w,T,Z){"@"==T.charAt(0)&&T==Br?this.disableAnimations(w,!!Z):this.delegate.setProperty(w,T,Z)}setValue(w,T){this.delegate.setValue(w,T)}listen(w,T,Z){return this.delegate.listen(w,T,Z)}disableAnimations(w,T){this.engine.disableAnimations(w,T)}}class Or extends wi{constructor(w,T,Z,pt){super(T,Z,pt),this.factory=w,this.namespaceId=T}setProperty(w,T,Z){"@"==T.charAt(0)?"."==T.charAt(1)&&T==Br?this.disableAnimations(w,Z=void 0===Z||!!Z):this.engine.process(this.namespaceId,w,T.substr(1),Z):this.delegate.setProperty(w,T,Z)}listen(w,T,Z){if("@"==T.charAt(0)){const pt=function(ye){switch(ye){case"body":return document.body;case"document":return document;case"window":return window;default:return ye}}(w);let Nt=T.substr(1),Kt="";return"@"!=Nt.charAt(0)&&([Nt,Kt]=function(ye){const De=ye.indexOf(".");return[ye.substring(0,De),ye.substr(De+1)]}(Nt)),this.engine.listen(this.namespaceId,pt,Nt,Kt,oe=>{this.factory.scheduleListenerCallback(oe._data||-1,Z,oe)})}return this.delegate.listen(w,T,Z)}}let Nr=(()=>{class _t extends On{constructor(T,Z,pt){super(T.body,Z,pt)}ngOnDestroy(){this.flush()}}return _t.\u0275fac=function(w){return new(w||_t)(p.LFG(In.K0),p.LFG(x),p.LFG(Te))},_t.\u0275prov=p.Yz7({token:_t,factory:_t.\u0275fac}),_t})();const Si=new p.OlP("AnimationModuleType"),fi=[{provide:x,useClass:g},{provide:Si,useValue:"NoopAnimations"},{provide:j._j,useClass:gr},{provide:Te,useFactory:function(){return new nn}},{provide:On,useClass:Nr},{provide:p.FYo,useFactory:function(w,T,Z){return new vr(w,T,Z)},deps:[s.se,On,p.R0b]}];let ts=(()=>{class _t{}return _t.\u0275fac=function(w){return new(w||_t)},_t.\u0275mod=p.oAB({type:_t}),_t.\u0275inj=p.cJS({providers:fi,imports:[s.b2]}),_t})()},2313:(u,D,v)=>{v.d(D,{b2:()=>Me,H7:()=>Le,q6:()=>Cn,se:()=>U});var p=v(9808),s=v(6435);
1class j extends p.w_{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class k extends j{static makeCurrent(){(0,p.HT)(new k)}onAndCancel(Ut,Mt,It){return Ut.addEventListener(Mt,It,!1),()=>{Ut.removeEventListener(Mt,It,!1)}}dispatchEvent(Ut,Mt){Ut.dispatchEvent(Mt)}remove(Ut){Ut.parentNode&&Ut.parentNode.removeChild(Ut)}createElement(Ut,Mt){return(Mt=Mt||this.getDefaultDocument()).createElement(Ut)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(Ut){return Ut.nodeType===Node.ELEMENT_NODE}isShadowRoot(Ut){return Ut instanceof DocumentFragment}getGlobalEventTarget(Ut,Mt){return"window"===Mt?window:"document"===Mt?Ut:"body"===Mt?Ut.body:null}getBaseHref(Ut){const Mt=(B=B||document.querySelector("base"),B?B.getAttribute("href"):null);return null==Mt?null:function(mt){b=b||document.createElement("a"),b.setAttribute("href",mt);const lt=b.pathname;return"/"===lt.charAt(0)?lt:`/${lt}`}(Mt)}resetBaseElement(){B=null}getUserAgent(){return window.navigator.userAgent}getCookie(Ut){return(0,p.Mx)(document.cookie,Ut)}}let b,B=null;const V=new s.OlP("TRANSITION_ID"),_=[{provide:s.ip1,useFactory:function(Ut,Mt,It){return()=>{It.get(s.CZH).donePromise.then(()=>{const mt=(0,p.q)(),lt=Mt.querySelectorAll(`style[ng-transition="${Ut}"]`);for(let et=0;et<lt.length;et++)mt.remove(lt[et])})}},deps:[V,p.K0,s.zs3],multi:!0}];class H{static init(){(0,s.VLi)(new H)}addToWindow(Ut){s.dqk.getAngularTestability=(Mt,It=!0)=>{const mt=Ut.findTestabilityInTree(Mt,It);if(null==mt)throw new Error("Could not find testability for element.");return mt},s.dqk.getAllAngularTestabilities=()=>Ut.getAllTestabilities(),s.dqk.getAllAngularRootElements=()=>Ut.getAllRootElements(),s.dqk.frameworkStabilizers||(s.dqk.frameworkStabilizers=[]),s.dqk.frameworkStabilizers.push(Mt=>{const It=s.dqk.getAllAngularTestabilities();let mt=It.length,lt=!1;const et=function(ct){lt=lt||ct,mt--,0==mt&&Mt(lt)};It.forEach(function(ct){ct.whenStable(et)})})}findTestabilityInTree(Ut,Mt,It){return null==Mt?null:Ut.getTestability(Mt)??(It?(0,p.q)().isShadowRoot(Mt)?this.findTestabilityInTree(Ut,Mt.host,!0):this.findTestabilityInTree(Ut,Mt.parentElement,!0):null)}}let Y=(()=>{class Qt{build(){return new XMLHttpRequest}}return Qt.\u0275fac=function(Ut){return new(Ut||Qt)},Qt.\u0275prov=s.Yz7({token:Qt,factory:Qt.\u0275fac}),Qt})();const q=new s.OlP("EventManagerPlugins");let it=(()=>{class Qt{constructor(Mt,It){this._zone=It,this._eventNameToPlugin=new Map,Mt.forEach(mt=>mt.manager=this),this._plugins=Mt.slice().reverse()}addEventListener(Mt,It,mt){return this._findPluginFor(It).addEventListener(Mt,It,mt)}addGlobalEventListener(Mt,It,mt){return this._findPluginFor(It).addGlobalEventListener(Mt,It,mt)}getZone(){return this._zone}_findPluginFor(Mt){const It=this._eventNameToPlugin.get(Mt);if(It)return It;const mt=this._plugins;for(let lt=0;lt<mt.length;lt++){const et=mt[lt];if(et.supports(Mt))return this._eventNameToPlugin.set(Mt,et),et}throw new Error(`No event manager plugin found for event ${Mt}`)}}return Qt.\u0275fac=function(Ut){return new(Ut||Qt)(s.LFG(q),s.LFG(s.R0b))},Qt.\u0275prov=s.Yz7({token:Qt,factory:Qt.\u0275fac}),Qt})();class vt{constructor(Ut){this._doc=Ut}addGlobalEventListener(Ut,Mt,It){const mt=(0,p.q)().getGlobalEventTarget(this._doc,Ut);if(!mt)throw new Error(`Unsupported event target ${mt} for event ${Mt}`);return this.addEventListener(mt,Mt,It)}}let at=(()=>{class Qt{constructor(){this._stylesSet=new Set}addStyles(Mt){const It=new Set;Mt.forEach(mt=>{this._stylesSet.has(mt)||(this._stylesSet.add(mt),It.add(mt))}),this.onStylesAdded(It)}onStylesAdded(Mt){}getAllStyles(){return Array.from(this._stylesSet)}}return Qt.\u0275fac=function(Ut){return new(Ut||Qt)},Qt.\u0275prov=s.Yz7({token:Qt,factory:Qt.\u0275fac}),Qt})(),J=(()=>{class Qt extends at{constructor(Mt){super(),this._doc=Mt,this._hostNodes=new Map,this._hostNodes.set(Mt.head,[])}_addStylesToHost(Mt,It,mt){Mt.forEach(lt=>{const et=this._doc.createElement("style");et.textContent=lt,mt.push(It.appendChild(et))})}addHost(Mt){const It=[];this._addStylesToHost(this._stylesSet,Mt,It),this._hostNodes.set(Mt,It)}removeHost(Mt){const It=this._hostNodes.get(Mt);It&&It.forEach(ht),this._hostNodes.delete(Mt)}
1onStylesAdded(Mt){this._hostNodes.forEach((It,mt)=>{this._addStylesToHost(Mt,mt,It)})}ngOnDestroy(){this._hostNodes.forEach(Mt=>Mt.forEach(ht))}}return Qt.\u0275fac=function(Ut){return new(Ut||Qt)(s.LFG(p.K0))},Qt.\u0275prov=s.Yz7({token:Qt,factory:Qt.\u0275fac}),Qt})();function ht(Qt){(0,p.q)().remove(Qt)}const m={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},M=/%COMP%/g,N="%COMP%",g=`_nghost-${N}`,x=`_ngcontent-${N}`;function P(Qt,Ut,Mt){for(let It=0;It<Ut.length;It++){let mt=Ut[It];Array.isArray(mt)?P(Qt,mt,Mt):(mt=mt.replace(M,Qt),Mt.push(mt))}return Mt}function Q(Qt){return Ut=>{if("__ngUnwrap__"===Ut)return Qt;!1===Qt(Ut)&&(Ut.preventDefault(),Ut.returnValue=!1)}}let U=(()=>{class Qt{constructor(Mt,It,mt){this.eventManager=Mt,this.sharedStylesHost=It,this.appId=mt,this.rendererByCompId=new Map,this.defaultRenderer=new G(Mt)}createRenderer(Mt,It){if(!Mt||!It)return this.defaultRenderer;switch(It.encapsulation){case s.ifc.Emulated:{let mt=this.rendererByCompId.get(It.id);return mt||(mt=new dt(this.eventManager,this.sharedStylesHost,It,this.appId),this.rendererByCompId.set(It.id,mt)),mt.applyToHost(Mt),mt}case 1:case s.ifc.ShadowDom:return new wt(this.eventManager,this.sharedStylesHost,Mt,It);default:if(!this.rendererByCompId.has(It.id)){const mt=P(It.id,It.styles,[]);this.sharedStylesHost.addStyles(mt),this.rendererByCompId.set(It.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return Qt.\u0275fac=function(Ut){return new(Ut||Qt)(s.LFG(it),s.LFG(J),s.LFG(s.AFp))},Qt.\u0275prov=s.Yz7({token:Qt,factory:Qt.\u0275fac}),Qt})();class G{constructor(Ut){this.eventManager=Ut,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(Ut,Mt){return Mt?document.createElementNS(m[Mt]||Mt,Ut):document.createElement(Ut)}createComment(Ut){return document.createComment(Ut)}createText(Ut){return document.createTextNode(Ut)}appendChild(Ut,Mt){Ut.appendChild(Mt)}insertBefore(Ut,Mt,It){Ut&&Ut.insertBefore(Mt,It)}removeChild(Ut,Mt){Ut&&Ut.removeChild(Mt)}selectRootElement(Ut,Mt){let It="string"==typeof Ut?document.querySelector(Ut):Ut;if(!It)throw new Error(`The selector "${Ut}" did not match any elements`);return Mt||(It.textContent=""),It}parentNode(Ut){return Ut.parentNode}nextSibling(Ut){return Ut.nextSibling}setAttribute(Ut,Mt,It,mt){if(mt){Mt=mt+":"+Mt;const lt=m[mt];lt?Ut.setAttributeNS(lt,Mt,It):Ut.setAttribute(Mt,It)}else Ut.setAttribute(Mt,It)}removeAttribute(Ut,Mt,It){if(It){const mt=m[It];mt?Ut.removeAttributeNS(mt,Mt):Ut.removeAttribute(`${It}:${Mt}`)}else Ut.removeAttribute(Mt)}addClass(Ut,Mt){Ut.classList.add(Mt)}removeClass(Ut,Mt){Ut.classList.remove(Mt)}setStyle(Ut,Mt,It,mt){mt&(s.JOm.DashCase|s.JOm.Important)?Ut.style.setProperty(Mt,It,mt&s.JOm.Important?"important":""):Ut.style[Mt]=It}removeStyle(Ut,Mt,It){It&s.JOm.DashCase?Ut.style.removeProperty(Mt):Ut.style[Mt]=""}setProperty(Ut,Mt,It){Ut[Mt]=It}setValue(Ut,Mt){Ut.nodeValue=Mt}listen(Ut,Mt,It){return"string"==typeof Ut?this.eventManager.addGlobalEventListener(Ut,Mt,Q(It)):this.eventManager.addEventListener(Ut,Mt,Q(It))}}class dt extends G{constructor(Ut,Mt,It,mt){super(Ut),this.component=It;const lt=P(mt+"-"+It.id,It.styles,[]);Mt.addStyles(lt),this.contentAttr=x.replace(M,mt+"-"+It.id),this.hostAttr=g.replace(M,mt+"-"+It.id)}applyToHost(Ut){super.setAttribute(Ut,this.hostAttr,"")}createElement(Ut,Mt){const It=super.createElement(Ut,Mt);return super.setAttribute(It,this.contentAttr,""),It}}class wt extends G{constructor(Ut,Mt,It,mt){super(Ut),this.sharedStylesHost=Mt,this.hostEl=It,this.shadowRoot=It.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const lt=P(mt.id,mt.styles,[]);for(let et=0;et<lt.length;et++){const ct=document.createElement("style");ct.textContent=lt[et],this.shadowRoot.appendChild(ct)}}nodeOrShadowRoot(Ut){return Ut===this.hostEl?this.shadowRoot:Ut}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(Ut,Mt){return super.appendChild(this.nodeOrShadowRoot(Ut),Mt)}insertBefore(Ut,Mt,It){return super.insertBefore(this.nodeOrShadowRoot(Ut),Mt,It)}removeChild(Ut,Mt){return super.removeChild(this.nodeOrShadowRoot(Ut),Mt)}parentNode(Ut){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(Ut)))}}let W=(()=>{class Qt extends vt{constructor(Mt){super(Mt)}supports(Mt){return!0}addEventListener(Mt,It,mt){return Mt.addEventListener(It,mt,!1),()=>this.removeEventListener(Mt,It,mt)}removeEventListener(Mt,It,mt){return Mt.removeEventListener(It,mt)}}return Qt.\u0275fac=function(Ut){return new(Ut||Qt)(s.LFG(p.K0))},Qt.\u0275prov=s.Yz7({token:Qt,factory:Qt.\u0275fac}),Qt})();const te=["alt","control","meta","shift"],ae={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},Ae={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","\x90":"NumLock"},ge={alt:Qt=>Qt.altKey,control:Qt=>Qt.ctrlKey,meta:Qt=>Qt.metaKey,shift:Qt=>Qt.shiftKey};let We=(()=>{class Qt extends vt{constructor(Mt){super(Mt)}supports(Mt){return null!=Qt.parseEventName(Mt)}addEventListener(Mt,It,mt){const lt=Qt.parseEventName(It),et=Qt.eventCallback(lt.fullKey,mt,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>(0,p.q)().onAndCancel(Mt,lt.domEventName,et))}static parseEventName(Mt){const It=Mt.toLowerCase().split("."),mt=It.shift();if(0===It.length||"keydown"!==mt&&"keyup"!==mt)return null;const lt=Qt._normalizeKey(It.pop());let et="";if(te.forEach(Vt=>{const Rt=It.indexOf(Vt);Rt>-1&&(It.splice(Rt,1),et+=Vt+".")}),et+=lt,0!=It.length||0===lt.length)return null;const ct={};return ct.domEventName=mt,ct.fullKey=et,ct}static getEventFullKey(Mt){let It="",mt=function(et){let ct=et.key;
1if(null==ct){if(ct=et.keyIdentifier,null==ct)return"Unidentified";ct.startsWith("U+")&&(ct=String.fromCharCode(parseInt(ct.substring(2),16)),3===et.location&&Ae.hasOwnProperty(ct)&&(ct=Ae[ct]))}return ae[ct]||ct}(Mt);return mt=mt.toLowerCase()," "===mt?mt="space":"."===mt&&(mt="dot"),te.forEach(lt=>{lt!=mt&&ge[lt](Mt)&&(It+=lt+".")}),It+=mt,It}static eventCallback(Mt,It,mt){return lt=>{Qt.getEventFullKey(lt)===Mt&&mt.runGuarded(()=>It(lt))}}static _normalizeKey(Mt){return"esc"===Mt?"escape":Mt}}return Qt.\u0275fac=function(Ut){return new(Ut||Qt)(s.LFG(p.K0))},Qt.\u0275prov=s.Yz7({token:Qt,factory:Qt.\u0275fac}),Qt})();const Cn=(0,s.eFA)(s._c5,"browser",[{provide:s.Lbi,useValue:p.bD},{provide:s.g9A,useValue:function(){k.makeCurrent(),H.init()},multi:!0},{provide:p.K0,useFactory:function(){return(0,s.RDi)(document),document},deps:[]}]),rn=[{provide:s.zSh,useValue:"root"},{provide:s.qLn,useFactory:function(){return new s.qLn},deps:[]},{provide:q,useClass:W,multi:!0,deps:[p.K0,s.R0b,s.Lbi]},{provide:q,useClass:We,multi:!0,deps:[p.K0]},{provide:U,useClass:U,deps:[it,J,s.AFp]},{provide:s.FYo,useExisting:U},{provide:at,useExisting:J},{provide:J,useClass:J,deps:[p.K0]},{provide:s.dDg,useClass:s.dDg,deps:[s.R0b]},{provide:it,useClass:it,deps:[q,s.R0b]},{provide:p.JF,useClass:Y,deps:[]}];let Me=(()=>{class Qt{constructor(Mt){if(Mt)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}static withServerTransition(Mt){return{ngModule:Qt,providers:[{provide:s.AFp,useValue:Mt.appId},{provide:V,useExisting:s.AFp},_]}}}return Qt.\u0275fac=function(Ut){return new(Ut||Qt)(s.LFG(Qt,12))},Qt.\u0275mod=s.oAB({type:Qt}),Qt.\u0275inj=s.cJS({providers:rn,imports:[p.ez,s.hGG]}),Qt})(),Le=(()=>{class Qt{}return Qt.\u0275fac=function(Ut){return new(Ut||Qt)},Qt.\u0275prov=s.Yz7({token:Qt,factory:function(Ut){let Mt=null;return Mt=Ut?new(Ut||Qt):s.LFG(Ee),Mt},providedIn:"root"}),Qt})(),Ee=(()=>{class Qt extends Le{constructor(Mt){super(),this._doc=Mt}sanitize(Mt,It){if(null==It)return null;switch(Mt){case s.q3G.NONE:return It;case s.q3G.HTML:return(0,s.qzn)(It,"HTML")?(0,s.z3N)(It):(0,s.EiD)(this._doc,String(It)).toString();case s.q3G.STYLE:return(0,s.qzn)(It,"Style")?(0,s.z3N)(It):It;case s.q3G.SCRIPT:if((0,s.qzn)(It,"Script"))return(0,s.z3N)(It);throw new Error("unsafe value used in a script context");case s.q3G.URL:return(0,s.yhl)(It),(0,s.qzn)(It,"URL")?(0,s.z3N)(It):(0,s.mCW)(String(It));case s.q3G.RESOURCE_URL:if((0,s.qzn)(It,"ResourceURL"))return(0,s.z3N)(It);throw new Error("unsafe value used in a resource URL context (see https://g.co/ng/security#xss)");default:throw new Error(`Unexpected SecurityContext ${Mt} (see https://g.co/ng/security#xss)`)}}bypassSecurityTrustHtml(Mt){return(0,s.JVY)(Mt)}bypassSecurityTrustStyle(Mt){return(0,s.L6k)(Mt)}bypassSecurityTrustScript(Mt){return(0,s.eBb)(Mt)}bypassSecurityTrustUrl(Mt){return(0,s.LAX)(Mt)}bypassSecurityTrustResourceUrl(Mt){return(0,s.pB0)(Mt)}}return Qt.\u0275fac=function(Ut){return new(Ut||Qt)(s.LFG(p.K0))},Qt.\u0275prov=s.Yz7({token:Qt,factory:function(Ut){let Mt=null;return Mt=Ut?new Ut:(mt=s.LFG(s.zs3),new Ee(mt.get(p.K0))),Mt;var mt},providedIn:"root"}),Qt})()},1171:(u,D,v)=>{v.d(D,{Bz:()=>ca});var p=v(6435),s=v(2866),j=v(6688),k=v(3489);class b extends k.L{notifyNext(O,R,K,ft,jt){this.destination.next(R)}notifyError(O,R){this.destination.error(O)}notifyComplete(O){this.destination.complete()}}class B extends k.L{constructor(O,R,K){super(),this.parent=O,this.outerValue=R,this.outerIndex=K,this.index=0}_next(O){this.parent.notifyNext(this.outerValue,O,this.outerIndex,this.index++,this)}_error(O){this.parent.notifyError(O,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}var V=v(9249),_=v(2916);function H(st,O,R,K,ft=new B(st,R,K)){if(!ft.closed)return O instanceof _.y?O.subscribe(ft):(0,V.s)(O)(ft)}var Y=v(3009);const q={};class it{constructor(O){this.resultSelector=O}call(O,R){return R.subscribe(new vt(O,this.resultSelector))}}class vt extends b{constructor(O,R){super(O),this.resultSelector=R,this.active=0,this.values=[],this.observables=[]}_next(O){this.values.push(q),this.observables.push(O)}_complete(){const O=this.observables,R=O.length;if(0===R)this.destination.complete();else{this.active=R,this.toRespond=R;for(let K=0;K<R;K++)this.add(H(this,O[K],void 0,K))}}notifyComplete(O){0==(this.active-=1)&&this.destination.complete()}
1notifyNext(O,R,K){const ft=this.values,jt=this.toRespond?ft[K]===q?--this.toRespond:this.toRespond:0;ft[K]=R,0===jt&&(this.resultSelector?this._tryResultSelector(ft):this.destination.next(ft.slice()))}_tryResultSelector(O){let R;try{R=this.resultSelector.apply(this,O)}catch(K){return void this.destination.error(K)}this.destination.next(R)}}const at=(()=>{function st(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}return st.prototype=Object.create(Error.prototype),st})();var J=v(5254),ht=v(1086),m=v(591),M=v(1221),N=v(8514),g=v(8896),x=v(1762),P=v(8929);function Q(st,O){let R=!1;return arguments.length>=2&&(R=!0),function(K){return K.lift(new U(st,O,R))}}class U{constructor(O,R,K=!1){this.accumulator=O,this.seed=R,this.hasSeed=K}call(O,R){return R.subscribe(new G(O,this.accumulator,this.seed,this.hasSeed))}}class G extends k.L{constructor(O,R,K,ft){super(O),this.accumulator=R,this._seed=K,this.hasSeed=ft,this.index=0}get seed(){return this._seed}set seed(O){this.hasSeed=!0,this._seed=O}_next(O){if(this.hasSeed)return this._tryNext(O);this.seed=O,this.destination.next(O)}_tryNext(O){const R=this.index++;let K;try{K=this.accumulator(this.seed,O,R)}catch(ft){this.destination.error(ft)}this.seed=K,this.destination.next(K)}}var dt=v(1177);function wt(st){return function(O){const R=new W(st),K=O.lift(R);return R.caught=K}}class W{constructor(O){this.selector=O}call(O,R){return R.subscribe(new te(O,this.selector,this.caught))}}class te extends dt.Ds{constructor(O,R,K){super(O),this.selector=R,this.caught=K}error(O){if(!this.isStopped){let R;try{R=this.selector(O,this.caught)}catch(jt){return void super.error(jt)}this._unsubscribeAndRecycle();const K=new dt.IY(this);this.add(K);
1const ft=(0,dt.ft)(R,K);ft!==K&&this.add(ft)}}}var ae=v(2198),Ae=v(4231);function ge(st){return function(O){return 0===st?(0,g.c)():O.lift(new We(st))}}class We{constructor(O){if(this.total=O,this.total<0)throw new Ae.W}call(O,R){return R.subscribe(new Cn(O,this.total))}}class Cn extends k.L{constructor(O,R){super(O),this.total=R,this.ring=new Array,this.count=0}_next(O){const R=this.ring,K=this.total,ft=this.count++;R.length<K?R.push(O):R[ft%K]=O}_complete(){const O=this.destination;let R=this.count;if(R>0){const K=this.count>=this.total?this.total:this.count,ft=this.ring;for(let jt=0;jt<K;jt++){const Zt=R++%K;O.next(ft[Zt])}}O.complete()}}function rn(st=Ee){return O=>O.lift(new Me(st))}class Me{constructor(O){this.errorFactory=O}call(O,R){return R.subscribe(new Le(O,this.errorFactory))}}class Le extends k.L{constructor(O,R){super(O),this.errorFactory=R,this.hasValue=!1}_next(O){this.hasValue=!0,this.destination.next(O)}_complete(){if(this.hasValue)return this.destination.complete();{let O;try{O=this.errorFactory()}catch(R){O=R}this.destination.error(O)}}}function Ee(){return new at}function Qt(st=null){return O=>O.lift(new Ut(st))}class Ut{constructor(O){this.defaultValue=O}call(O,R){return R.subscribe(new Mt(O,this.defaultValue))}}class Mt extends k.L{constructor(O,R){super(O),this.defaultValue=R,this.isEmpty=!0}_next(O){this.isEmpty=!1,this.destination.next(O)}_complete(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()}}var It=v(5379),mt=v(2986);function lt(st,O){const R=arguments.length>=2;return K=>K.pipe(st?(0,ae.h)((ft,jt)=>st(ft,jt,K)):It.y,(0,mt.q)(1),R?Qt(O):rn(()=>new at))}var et=v(2654);class ct{constructor(O){this.callback=O}call(O,R){return R.subscribe(new Vt(O,this.callback))}}class Vt extends k.L{constructor(O,R){super(O),this.add(new et.w(R))}}var Rt=v(4850),ne=v(7545),bt=v(1059),kt=v(1406),de=v(1709),Wt=v(2868),en=v(4327),be=v(9146),qe=v(9808);class kn{constructor(O,R){this.id=O,this.url=R}}class yr extends kn{constructor(O,R,K="imperative",ft=null){super(O,R),this.navigationTrigger=K,this.restoredState=ft}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class ur extends kn{constructor(O,R,K){super(O,R),this.urlAfterRedirects=K}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class ee extends kn{constructor(O,R,K){super(O,R),this.reason=K}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Se extends kn{constructor(O,R,K){super(O,R),this.error=K}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class Re extends kn{constructor(O,R,K,ft){super(O,R),this.urlAfterRedirects=K,this.state=ft}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Be extends kn{constructor(O,R,K,ft){super(O,R),this.urlAfterRedirects=K,this.state=ft}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Lt extends kn{constructor(O,R,K,ft,jt){super(O,R),this.urlAfterRedirects=K,this.state=ft,this.shouldActivate=jt}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class Ht extends kn{constructor(O,R,K,ft){super(O,R),this.urlAfterRedirects=K,this.state=ft}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Jt extends kn{constructor(O,R,K,ft){super(O,R),this.urlAfterRedirects=K,this.state=ft}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ie{constructor(O){this.route=O}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class Je{constructor(O){this.route=O}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class Te{constructor(O){this.snapshot=O}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class nn{constructor(O){this.snapshot=O}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class pn{constructor(O){this.snapshot=O}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Pn{constructor(O){this.snapshot=O}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Mn{constructor(O,R,K){this.routerEvent=O,this.position=R,this.anchor=K}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}const Ve="primary";class Pe{constructor(O){this.params=O||{}}has(O){return Object.prototype.hasOwnProperty.call(this.params,O)}get(O){if(this.has(O)){const R=this.params[O];return Array.isArray(R)?R[0]:R}return null}getAll(O){if(this.has(O)){const R=this.params[O];return Array.isArray(R)?R:[R]}return[]}get keys(){return Object.keys(this.params)}}function zt(st){return new Pe(st)}const me="ngNavigationCancelingError";function Dt(st){const O=Error("NavigationCancelingError: "+st);return O[me]=!0,O}function le(st,O,R){const K=R.path.split("/");if(K.length>st.length||"full"===R.pathMatch&&(O.hasChildren()||K.length<st.length))return null;
1const ft={};for(let jt=0;jt<K.length;jt++){const Zt=K[jt],ce=st[jt];if(Zt.startsWith(":"))ft[Zt.substring(1)]=ce;else if(Zt!==ce.path)return null}return{consumed:st.slice(0,K.length),posParams:ft}}function pe(st,O){const R=st?Object.keys(st):void 0,K=O?Object.keys(O):void 0;if(!R||!K||R.length!=K.length)return!1;let ft;for(let jt=0;jt<R.length;jt++)if(ft=R[jt],!dn(st[ft],O[ft]))return!1;return!0}function dn(st,O){if(Array.isArray(st)&&Array.isArray(O)){if(st.length!==O.length)return!1;const R=[...st].sort(),K=[...O].sort();return R.every((ft,jt)=>K[jt]===ft)}return st===O}function Ze(st){return Array.prototype.concat.apply([],st)}function Kn(st){return st.length>0?st[st.length-1]:null}function un(st,O){for(const R in st)st.hasOwnProperty(R)&&O(st[R],R)}function fn(st){return(0,p.CqO)(st)?st:(0,p.QGY)(st)?(0,J.D)(Promise.resolve(st)):(0,ht.of)(st)}const on={exact:function st(O,R,K){if(!re(O.segments,R.segments)||!zn(O.segments,R.segments,K)||O.numberOfChildren!==R.numberOfChildren)return!1;for(const ft in R.children)if(!O.children[ft]||!st(O.children[ft],R.children[ft],K))return!1;return!0},subset:cn},Nn={exact:function(O,R){return pe(O,R)},subset:function(O,R){return Object.keys(R).length<=Object.keys(O).length&&Object.keys(R).every(K=>dn(O[K],R[K]))},ignored:()=>!0};function Zn(st,O,R){return on[R.paths](st.root,O.root,R.matrixParams)&&Nn[R.queryParams](st.queryParams,O.queryParams)&&!("exact"===R.fragment&&st.fragment!==O.fragment)}function cn(st,O,R){return Qn(st,O,O.segments,R)}function Qn(st,O,R,K){if(st.segments.length>R.length){const ft=st.segments.slice(0,R.length);return!(!re(ft,R)||O.hasChildren()||!zn(ft,R,K))}if(st.segments.length===R.length){if(!re(st.segments,R)||!zn(st.segments,R,K))return!1;for(const ft in O.children)if(!st.children[ft]||!cn(st.children[ft],O.children[ft],K))return!1;return!0}{const ft=R.slice(0,st.segments.length),jt=R.slice(st.segments.length);return!!(re(st.segments,ft)&&zn(st.segments,ft,K)&&st.children[Ve])&&Qn(st.children[Ve],O,jt,K)}}function zn(st,O,R){return O.every((K,ft)=>Nn[R](st[ft].parameters,K.parameters))}class sn{constructor(O,R,K){this.root=O,this.queryParams=R,this.fragment=K}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=zt(this.queryParams)),this._queryParamMap}toString(){return ie.serialize(this)}}class xn{constructor(O,R){this.segments=O,this.children=R,this.parent=null,un(R,(K,ft)=>K.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return je(this)}}class Oe{constructor(O,R){this.path=O,this.parameters=R}get parameterMap(){return this._parameterMap||(this._parameterMap=zt(this.parameters)),this._parameterMap}toString(){return wr(this)}}function re(st,O){return st.length===O.length&&st.every((R,K)=>R.path===O[K].path)}class fe{}class Ot{parse(O){const R=new Nr(O);return new sn(R.parseRootSegment(),R.parseQueryParams(),R.parseFragment())}serialize(O){const R=`/${Ye(O.root,!0)}`,K=function(jt){const Zt=Object.keys(jt).map(ce=>{const ze=jt[ce];return Array.isArray(ze)?ze.map(En=>`${In(ce)}=${In(En)}`).join("&"):`${In(ce)}=${In(ze)}`}).filter(ce=>!!ce);return Zt.length?`?${Zt.join("&")}`:""}(O.queryParams);return`${R}${K}${"string"==typeof O.fragment?`#${jt=O.fragment,encodeURI(jt)}`:""}`;var jt}}const ie=new Ot;function je(st){return st.segments.map(O=>wr(O)).join("/")}function Ye(st,O){if(!st.hasChildren())return je(st);if(O){const R=st.children[Ve]?Ye(st.children[Ve],!1):"",K=[];return un(st.children,(ft,jt)=>{jt!==Ve&&K.push(`${jt}:${Ye(ft,!1)}`)}),K.length>0?`${R}(${K.join("//")})`:R}{const R=function(ft,jt){let Zt=[];return un(ft.children,(ce,ze)=>{ze===Ve&&(Zt=Zt.concat(jt(ce,ze)))}),un(ft.children,(ce,ze)=>{ze!==Ve&&(Zt=Zt.concat(jt(ce,ze)))}),Zt}(st,(K,ft)=>ft===Ve?[Ye(st.children[Ve],!1)]:[`${ft}:${Ye(K,!1)}`]);return 1===Object.keys(st.children).length&&null!=st.children[Ve]?`${je(st)}/${R[0]}`:`${je(st)}/(${R.join("//")})`}}function On(st){return encodeURIComponent(st).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function In(st){return On(st).replace(/%3B/gi,";")}function gr(st){return On(st).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function Yn(st){return decodeURIComponent(st)}function qn(st){return Yn(st.replace(/\+/g,"%20"))}function wr(st){return`${gr(st.path)}${R=st.parameters,Object.keys(R).map(K=>`;${gr(K)}=${gr(R[K])}`).join("")}`;var R}const Br=/^[^\/()?;=#]+/;function vr(st){const O=st.match(Br);return O?O[0]:""}const wi=/^[^=?&#]+/,Or=/^[^&#]+/;class Nr{constructor(O){this.url=O,this.remaining=O}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new xn([],{}):new xn([],this.parseChildren())}parseQueryParams(){const O={};if(this.consumeOptional("?"))do{this.parseQueryParam(O)}while(this.consumeOptional("&"));return O}
1parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const O=[];for(this.peekStartsWith("(")||O.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),O.push(this.parseSegment());let R={};this.peekStartsWith("/(")&&(this.capture("/"),R=this.parseParens(!0));let K={};return this.peekStartsWith("(")&&(K=this.parseParens(!1)),(O.length>0||Object.keys(R).length>0)&&(K[Ve]=new xn(O,R)),K}parseSegment(){const O=vr(this.remaining);if(""===O&&this.peekStartsWith(";"))throw new Error(`Empty path url segment cannot have parameters: '${this.remaining}'.`);return this.capture(O),new Oe(Yn(O),this.parseMatrixParams())}parseMatrixParams(){const O={};for(;this.consumeOptional(";");)this.parseParam(O);return O}parseParam(O){const R=vr(this.remaining);if(!R)return;this.capture(R);let K="";if(this.consumeOptional("=")){const ft=vr(this.remaining);ft&&(K=ft,this.capture(K))}O[Yn(R)]=Yn(K)}parseQueryParam(O){const R=function(ce){const ze=ce.match(wi);return ze?ze[0]:""}(this.remaining);if(!R)return;this.capture(R);let K="";if(this.consumeOptional("=")){const Zt=function(ze){const En=ze.match(Or);return En?En[0]:""}(this.remaining);Zt&&(K=Zt,this.capture(K))}const ft=qn(R),jt=qn(K);if(O.hasOwnProperty(ft)){let Zt=O[ft];Array.isArray(Zt)||(Zt=[Zt],O[ft]=Zt),Zt.push(jt)}else O[ft]=jt}parseParens(O){const R={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const K=vr(this.remaining),ft=this.remaining[K.length];if("/"!==ft&&")"!==ft&&";"!==ft)throw new Error(`Cannot parse url '${this.url}'`);let jt;K.indexOf(":")>-1?(jt=K.substr(0,K.indexOf(":")),this.capture(jt),this.capture(":")):O&&(jt=Ve);const Zt=this.parseChildren();R[jt]=1===Object.keys(Zt).length?Zt[Ve]:new xn([],Zt),this.consumeOptional("//")}return R}peekStartsWith(O){return this.remaining.startsWith(O)}consumeOptional(O){return!!this.peekStartsWith(O)&&(this.remaining=this.remaining.substring(O.length),!0)}capture(O){if(!this.consumeOptional(O))throw new Error(`Expected "${O}".`)}}class Si{constructor(O){this._root=O}get root(){return this._root.value}parent(O){const R=this.pathFromRoot(O);return R.length>1?R[R.length-2]:null}children(O){const R=fi(O,this._root);return R?R.children.map(K=>K.value):[]}firstChild(O){const R=fi(O,this._root);return R&&R.children.length>0?R.children[0].value:null}siblings(O){const R=ts(O,this._root);return R.length<2?[]:R[R.length-2].children.map(K=>K.value).filter(K=>K!==O)}pathFromRoot(O){return ts(O,this._root).map(R=>R.value)}}function fi(st,O){if(st===O.value)return O;for(const R of O.children){const K=fi(st,R);if(K)return K}return null}function ts(st,O){if(st===O.value)return[O];for(const R of O.children){const K=ts(st,R);if(K.length)return K.unshift(O),K}return[]}class _t{constructor(O,R){this.value=O,this.children=R}toString(){return`TreeNode(${this.value})`}}function w(st){const O={};return st&&st.children.forEach(R=>O[R.value.outlet]=R),O}class T extends Si{constructor(O,R){super(O),this.snapshot=R,ye(this,O)}toString(){return this.snapshot.toString()}}function Z(st,O){const R=function(tn,bn){const Ln=new Kt([],{},{},"",{},Ve,bn,null,tn.root,-1,{});return new oe("",new _t(Ln,[]))}(st,O),K=new m.X([new Oe("",{})]),ft=new m.X({}),jt=new m.X({}),Zt=new m.X({}),ce=new m.X(""),ze=new pt(K,ft,Zt,ce,jt,Ve,O,R.root);return ze.snapshot=R.root,new T(new _t(ze,[]),R)}class pt{constructor(O,R,K,ft,jt,Zt,ce,ze){this.url=O,this.params=R,this.queryParams=K,this.fragment=ft,this.data=jt,this.outlet=Zt,this.component=ce,this._futureSnapshot=ze}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=this.params.pipe((0,Rt.U)(O=>zt(O)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe((0,Rt.U)(O=>zt(O)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function Nt(st,O="emptyOnly"){const R=st.pathFromRoot;let K=0;if("always"!==O)for(K=R.length-1;K>=1;
1){const ft=R[K],jt=R[K-1];if(ft.routeConfig&&""===ft.routeConfig.path)K--;else{if(jt.component)break;K--}}return R.slice(K).reduce((Zt,ce)=>({params:Object.assign(Object.assign({},Zt.params),ce.params),data:Object.assign(Object.assign({},Zt.data),ce.data),resolve:Object.assign(Object.assign({},Zt.resolve),ce._resolvedData)}),{params:{},data:{},resolve:{}})}class Kt{constructor(O,R,K,ft,jt,Zt,ce,ze,En,tn,bn){this.url=O,this.params=R,this.queryParams=K,this.fragment=ft,this.data=jt,this.outlet=Zt,this.component=ce,this.routeConfig=ze,this._urlSegment=En,this._lastPathIndex=tn,this._resolve=bn}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=zt(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=zt(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(O=>O.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class oe extends Si{constructor(O,R){super(R),this.url=O,ye(this,R)}toString(){return De(this._root)}}function ye(st,O){O.value._routerState=st,O.children.forEach(R=>ye(st,R))}function De(st){const O=st.children.length>0?` { ${st.children.map(De).join(", ")} } `:"";return`${st.value}${O}`}function hn(st){if(st.snapshot){const O=st.snapshot,R=st._futureSnapshot;st.snapshot=R,pe(O.queryParams,R.queryParams)||st.queryParams.next(R.queryParams),O.fragment!==R.fragment&&st.fragment.next(R.fragment),pe(O.params,R.params)||st.params.next(R.params),function(ft,jt){if(ft.length!==jt.length)return!1;for(let Zt=0;Zt<ft.length;++Zt)if(!pe(ft[Zt],jt[Zt]))return!1;return!0}(O.url,R.url)||st.url.next(R.url),pe(O.data,R.data)||st.data.next(R.data)}else st.snapshot=st._futureSnapshot,st.data.next(st._futureSnapshot.data)}function mn(st,O){return pe(st.params,O.params)&&re(ft=st.url,jt=O.url)&&ft.every((Zt,ce)=>pe(Zt.parameters,jt[ce].parameters))&&!st.parent==!O.parent&&(!st.parent||mn(st.parent,O.parent));var ft,jt}function gt(st,O,R){if(R&&st.shouldReuseRoute(O.value,R.value.snapshot)){const K=R.value;K._futureSnapshot=O.value;const ft=(Zt=st,ze=R,O.children.map(En=>{for(const tn of ze.children)if(Zt.shouldReuseRoute(En.value,tn.value.snapshot))return gt(Zt,En,tn);return gt(Zt,En)}));return new _t(K,ft)}var Zt,ze;{if(st.shouldAttach(O.value)){const jt=st.retrieve(O.value);if(null!==jt){const Zt=jt.route;return Zt.value._futureSnapshot=O.value,Zt.children=O.children.map(ce=>gt(st,ce)),Zt}}const K=function(Zt){return new pt(new m.X(Zt.url),new m.X(Zt.params),new m.X(Zt.queryParams),new m.X(Zt.fragment),new m.X(Zt.data),Zt.outlet,Zt.component,Zt)}(O.value),ft=O.children.map(jt=>gt(st,jt));return new _t(K,ft)}}function L(st){return"object"==typeof st&&null!=st&&!st.outlets&&!st.segmentPath}function z(st){return"object"==typeof st&&null!=st&&st.outlets}function $(st,O,R,K,ft){let jt={};return K&&un(K,(Zt,ce)=>{jt[ce]=Array.isArray(Zt)?Zt.map(ze=>`${ze}`):`${Zt}`}),new sn(R.root===st?O:Tt(R.root,st,O),jt,ft)}function Tt(st,O,R){const K={};return un(st.children,(ft,jt)=>{K[jt]=ft===O?R:Tt(ft,O,R)}),new xn(st.segments,K)}class qt{constructor(O,R,K){if(this.isAbsolute=O,this.numberOfDoubleDots=R,this.commands=K,O&&K.length>0&&L(K[0]))throw new Error("Root segment cannot have matrix parameters");const ft=K.find(z);if(ft&&ft!==Kn(K))throw new Error("{outlets:{}} has to be the last command")}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class we{constructor(O,R,K){this.segmentGroup=O,this.processChildren=R,this.index=K}}function Ce(st,O,R){if(st||(st=new xn([],{})),0===st.segments.length&&st.hasChildren())return Ke(st,O,R);const K=function(Zt,ce,ze){let En=0,tn=ce;const bn={match:!1,pathIndex:0,commandIndex:0};for(;tn<Zt.segments.length;){if(En>=ze.length)return bn;const Ln=Zt.segments[tn],jn=ze[En];if(z(jn))break;const Dn=`${jn}`,sr=En<ze.length-1?ze[En+1]:null;if(tn>0&&void 0===Dn)break;if(Dn&&sr&&"object"==typeof sr&&void 0===sr.outlets){if(!jr(Dn,sr,Ln))return bn;En+=2}else{if(!jr(Dn,{},Ln))return bn;En++}tn++}return{match:!0,pathIndex:tn,commandIndex:En}}(st,O,R),ft=R.slice(K.commandIndex);if(K.match&&K.pathIndex<st.segments.length){const jt=new xn(st.segments.slice(0,K.pathIndex),{});return jt.children[Ve]=new xn(st.segments.slice(K.pathIndex),st.children),Ke(jt,0,ft)}return K.match&&0===ft.length?new xn(st.segments,{}):K.match&&!st.hasChildren()?wn(st,O,R):K.match?Ke(st,0,ft):wn(st,O,R)}function Ke(st,O,R){if(0===R.length)return new xn(st.segments,{});{const K=z((Zt=R)[0])?Zt[0].outlets:{[Ve]:Zt},ft={};return un(K,(jt,Zt)=>{"string"==typeof jt&&(jt=[jt]),null!==jt&&(ft[Zt]=Ce(st.children[Zt],O,jt))}),un(st.children,(jt,Zt)=>{void 0===K[Zt]&&(ft[Zt]=jt)}),new xn(st.segments,ft)}var Zt}function wn(st,O,R){const K=st.segments.slice(0,O);let ft=0;for(;ft<R.length;){const jt=R[ft];if(z(jt)){const ze=Gn(jt.outlets);return new xn(K,ze)}if(0===ft&&L(R[0])){K.push(new Oe(st.segments[O].path,dr(R[0]))),ft++;continue}const Zt=z(jt)?jt.outlets[Ve]:`${jt}`,ce=ft<R.length-1?R[ft+1]:null;Zt&&ce&&L(ce)?(K.push(new Oe(Zt,dr(ce))),ft+=2):(K.push(new Oe(Zt,{})),ft++)}return new xn(K,{})}function Gn(st){const O={};return un(st,(R,K)=>{"string"==typeof R&&(R=[R]),null!==R&&(O[K]=wn(new xn([],{}),0,R))}),O}function dr(st){const O={};return un(st,(R,K)=>O[K]=`${R}`),O}function jr(st,O,R){return st==R.path&&pe(O,R.parameters)}class Pi{constructor(O,R,K,ft){this.routeReuseStrategy=O,this.futureState=R,this.currState=K,this.forwardEvent=ft}activate(O){const R=this.futureState._root,K=this.currState?this.currState._root:null;this.deactivateChildRoutes(R,K,O),hn(this.futureState.root),this.activateChildRoutes(R,K,O)}
1deactivateChildRoutes(O,R,K){const ft=w(R);O.children.forEach(jt=>{const Zt=jt.value.outlet;this.deactivateRoutes(jt,ft[Zt],K),delete ft[Zt]}),un(ft,(jt,Zt)=>{this.deactivateRouteAndItsChildren(jt,K)})}deactivateRoutes(O,R,K){const ft=O.value,jt=R?R.value:null;if(ft===jt)if(ft.component){const Zt=K.getContext(ft.outlet);Zt&&this.deactivateChildRoutes(O,R,Zt.children)}else this.deactivateChildRoutes(O,R,K);else jt&&this.deactivateRouteAndItsChildren(R,K)}deactivateRouteAndItsChildren(O,R){O.value.component&&this.routeReuseStrategy.shouldDetach(O.value.snapshot)?this.detachAndStoreRouteSubtree(O,R):this.deactivateRouteAndOutlet(O,R)}detachAndStoreRouteSubtree(O,R){const K=R.getContext(O.value.outlet),ft=K&&O.value.component?K.children:R,jt=w(O);for(const Zt of Object.keys(jt))this.deactivateRouteAndItsChildren(jt[Zt],ft);if(K&&K.outlet){const Zt=K.outlet.detach(),ce=K.children.onOutletDeactivated();this.routeReuseStrategy.store(O.value.snapshot,{componentRef:Zt,route:O,contexts:ce})}}deactivateRouteAndOutlet(O,R){const K=R.getContext(O.value.outlet),ft=K&&O.value.component?K.children:R,jt=w(O);for(const Zt of Object.keys(jt))this.deactivateRouteAndItsChildren(jt[Zt],ft);K&&K.outlet&&(K.outlet.deactivate(),K.children.onOutletDeactivated(),K.attachRef=null,K.resolver=null,K.route=null)}activateChildRoutes(O,R,K){const ft=w(R);O.children.forEach(jt=>{this.activateRoutes(jt,ft[jt.value.outlet],K),this.forwardEvent(new Pn(jt.value.snapshot))}),O.children.length&&this.forwardEvent(new nn(O.value.snapshot))}activateRoutes(O,R,K){const ft=O.value,jt=R?R.value:null;if(hn(ft),ft===jt)if(ft.component){const Zt=K.getOrCreateContext(ft.outlet);this.activateChildRoutes(O,R,Zt.children)}else this.activateChildRoutes(O,R,K);else if(ft.component){const Zt=K.getOrCreateContext(ft.outlet);if(this.routeReuseStrategy.shouldAttach(ft.snapshot)){const ce=this.routeReuseStrategy.retrieve(ft.snapshot);this.routeReuseStrategy.store(ft.snapshot,null),Zt.children.onOutletReAttached(ce.contexts),Zt.attachRef=ce.componentRef,Zt.route=ce.route.value,Zt.outlet&&Zt.outlet.attach(ce.componentRef,ce.route.value),hn(ce.route.value),this.activateChildRoutes(O,null,Zt.children)}else{const ce=function(tn){for(let bn=tn.parent;bn;bn=bn.parent){const Ln=bn.routeConfig;if(Ln&&Ln._loadedConfig)return Ln._loadedConfig;if(Ln&&Ln.component)return null}return null}(ft.snapshot),ze=ce?ce.module.componentFactoryResolver:null;Zt.attachRef=null,Zt.route=ft,Zt.resolver=ze,Zt.outlet&&Zt.outlet.activateWith(ft,ze),this.activateChildRoutes(O,null,Zt.children)}}else this.activateChildRoutes(O,null,K)}}class Ri{constructor(O,R){this.routes=O,this.module=R}}function ji(st){return"function"==typeof st}function Bi(st){return st instanceof sn}const es=Symbol("INITIAL_VALUE");function As(){return(0,ne.w)(st=>function(...R){let K,ft;return(0,s.K)(R[R.length-1])&&(ft=R.pop()),"function"==typeof R[R.length-1]&&(K=R.pop()),1===R.length&&(0,j.k)(R[0])&&(R=R[0]),(0,Y.n)(R,ft).lift(new it(K))}(st.map(O=>O.pipe((0,mt.q)(1),(0,bt.O)(es)))).pipe(Q((O,R)=>{let K=!1;return R.reduce((ft,jt,Zt)=>ft!==es?ft:(jt===es&&(K=!0),K||!1!==jt&&Zt!==R.length-1&&!Bi(jt)?ft:jt),O)},es),(0,ae.h)(O=>O!==es),(0,Rt.U)(O=>Bi(O)?O:!0===O),(0,mt.q)(1)))}class Vn{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.children=new Hn,this.attachRef=null}}class Hn{constructor(){this.contexts=new Map}onChildOutletCreated(O,R){const K=this.getOrCreateContext(O);K.outlet=R,this.contexts.set(O,K)}onChildOutletDestroyed(O){const R=this.getContext(O);R&&(R.outlet=null,R.attachRef=null)}onOutletDeactivated(){const O=this.contexts;return this.contexts=new Map,O}onOutletReAttached(O){this.contexts=O}getOrCreateContext(O){let R=this.getContext(O);return R||(R=new Vn,this.contexts.set(O,R)),R}getContext(O){return this.contexts.get(O)||null}}let $n=(()=>{class st{constructor(R,K,ft,jt,Zt){this.parentContexts=R,this.location=K,this.resolver=ft,this.changeDetector=Zt,this.activated=null,this._activatedRoute=null,this.activateEvents=new p.vpe,this.deactivateEvents=new p.vpe,this.attachEvents=new p.vpe,this.detachEvents=new p.vpe,this.name=jt||Ve,R.onChildOutletCreated(this.name,this)}ngOnDestroy(){this.parentContexts.onChildOutletDestroyed(this.name)}ngOnInit(){if(!this.activated){const R=this.parentContexts.getContext(this.name);R&&R.route&&(R.attachRef?this.attach(R.attachRef,R.route):this.activateWith(R.route,R.resolver||null))}}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Error("Outlet is not activated");return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Error("Outlet is not activated");return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Error("Outlet is not activated");this.location.detach();const R=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(R.instance),R}attach(R,K){this.activated=R,this._activatedRoute=K,this.location.insert(R.hostView),this.attachEvents.emit(R.instance)}deactivate(){if(this.activated){const R=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(R)}}
1activateWith(R,K){if(this.isActivated)throw new Error("Cannot activate an already activated outlet");this._activatedRoute=R;const ft=(K=K||this.resolver).resolveComponentFactory(R._futureSnapshot.routeConfig.component),jt=this.parentContexts.getOrCreateContext(this.name).children,Zt=new zr(R,jt,this.location.injector);this.activated=this.location.createComponent(ft,this.location.length,Zt),this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}return st.\u0275fac=function(O){return new(O||st)(p.Y36(Hn),p.Y36(p.s_b),p.Y36(p._Vd),p.$8M("name"),p.Y36(p.sBO))},st.\u0275dir=p.lG2({type:st,selectors:[["router-outlet"]],outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"]}),st})();class zr{constructor(O,R,K){this.route=O,this.childContexts=R,this.parent=K}get(O,R){return O===pt?this.route:O===Hn?this.childContexts:this.parent.get(O,R)}}let os=(()=>{class st{}return st.\u0275fac=function(O){return new(O||st)},st.\u0275cmp=p.Xpm({type:st,selectors:[["ng-component"]],decls:1,vars:0,template:function(O,R){1&O&&p._UZ(0,"router-outlet")},directives:[$n],encapsulation:2}),st})();function Vi(st,O=""){for(let R=0;R<st.length;R++){const K=st[R];Mi(K,oi(O,K))}}function Mi(st,O){st.children&&Vi(st.children,O)}function oi(st,O){return O?st||O.path?st&&!O.path?`${st}/`:!st&&O.path?O.path:`${st}/${O.path}`:"":st}function Hi(st){const O=st.children&&st.children.map(Hi),R=O?Object.assign(Object.assign({},st),{children:O}):Object.assign({},st);return!R.component&&(O||R.loadChildren)&&R.outlet&&R.outlet!==Ve&&(R.component=os),R}function Hr(st){return st.outlet||Ve}function xs(st,O){const R=st.filter(K=>Hr(K)===O);return R.push(...st.filter(K=>Hr(K)!==O)),R}const Li={matched:!1,consumedSegments:[],lastChild:0,parameters:{},positionalParamSegments:{}};function as(st,O,R){var K;if(""===O.path)return"full"===O.pathMatch&&(st.hasChildren()||R.length>0)?Object.assign({},Li):{matched:!0,consumedSegments:[],lastChild:0,parameters:{},positionalParamSegments:{}};const ft=(O.matcher||le)(R,st,O);if(!ft)return Object.assign({},Li);const jt={};un(ft.posParams,(ce,ze)=>{jt[ze]=ce.path});const Zt=ft.consumed.length>0?Object.assign(Object.assign({},jt),ft.consumed[ft.consumed.length-1].parameters):jt;return{matched:!0,consumedSegments:ft.consumed,lastChild:ft.consumed.length,parameters:Zt,positionalParamSegments:null!==(K=ft.posParams)&&void 0!==K?K:{}}}function ms(st,O,R,K,ft="corrected"){if(R.length>0&&(ce=st,ze=R,K.some(tn=>to(ce,ze,tn)&&Hr(tn)!==Ve))){const Zt=new xn(O,function(ze,En,tn,bn){const Ln={};Ln[Ve]=bn,bn._sourceSegment=ze,bn._segmentIndexShift=En.length;for(const jn of tn)if(""===jn.path&&Hr(jn)!==Ve){const Dn=new xn([],{});Dn._sourceSegment=ze,Dn._segmentIndexShift=En.length,Ln[Hr(jn)]=Dn}return Ln}(st,O,K,new xn(R,st.children)));return Zt._sourceSegment=st,Zt._segmentIndexShift=O.length,{segmentGroup:Zt,slicedSegments:[]}}var ce,ze;if(0===R.length&&function(ce,ze,En){return En.some(tn=>to(ce,ze,tn))}(st,R,K)){const Zt=new xn(st.segments,function(ze,En,tn,bn,Ln,jn){const Dn={};for(const sr of bn)if(to(ze,tn,sr)&&!Ln[Hr(sr)]){const Tr=new xn([],{});Tr._sourceSegment=ze,Tr._segmentIndexShift="legacy"===jn?ze.segments.length:En.length,Dn[Hr(sr)]=Tr}return Object.assign(Object.assign({},Ln),Dn)}(st,O,R,K,st.children,ft));return Zt._sourceSegment=st,Zt._segmentIndexShift=O.length,{segmentGroup:Zt,slicedSegments:R}}const jt=new xn(st.segments,st.children);return jt._sourceSegment=st,jt._segmentIndexShift=O.length,{segmentGroup:jt,slicedSegments:R}}function to(st,O,R){return(!(st.hasChildren()||O.length>0)||"full"!==R.pathMatch)&&""===R.path}function Oi(st,O,R,K){return!!(Hr(st)===K||K!==Ve&&to(O,R,st))&&("**"===st.path||as(O,st,R).matched)}function Fs(st,O,R){return 0===O.length&&!st.children[R]}class ls{constructor(O){this.segmentGroup=O||null}}class ks{constructor(O){this.urlTree=O}}function No(st){return new _.y(O=>O.error(new ls(st)))}function Fo(st){return new _.y(O=>O.error(new ks(st)))}function al(st){return new _.y(O=>O.error(new Error(`Only absolute redirects can have named outlets. redirectTo: '${st}'`)))}class js{constructor(O,R,K,ft,jt){this.configLoader=R,this.urlSerializer
1=K,this.urlTree=ft,this.config=jt,this.allowRedirects=!0,this.ngModule=O.get(p.h0i)}apply(){const O=ms(this.urlTree.root,[],[],this.config).segmentGroup,R=new xn(O.segments,O.children);return this.expandSegmentGroup(this.ngModule,this.config,R,Ve).pipe((0,Rt.U)(K=>this.createUrlTree(Di(K),this.urlTree.queryParams,this.urlTree.fragment))).pipe(wt(K=>{if(K instanceof ks)return this.allowRedirects=!1,this.match(K.urlTree);throw K instanceof ls?this.noMatchError(K):K}))}match(O){return this.expandSegmentGroup(this.ngModule,this.config,O.root,Ve).pipe((0,Rt.U)(R=>this.createUrlTree(Di(R),O.queryParams,O.fragment))).pipe(wt(R=>{throw R instanceof ls?this.noMatchError(R):R}))}noMatchError(O){return new Error(`Cannot match any routes. URL Segment: '${O.segmentGroup}'`)}createUrlTree(O,R,K){const ft=O.segments.length>0?new xn([],{[Ve]:O}):O;return new sn(ft,R,K)}expandSegmentGroup(O,R,K,ft){return 0===K.segments.length&&K.hasChildren()?this.expandChildren(O,R,K).pipe((0,Rt.U)(jt=>new xn([],jt))):this.expandSegment(O,K,R,K.segments,ft,!0)}expandChildren(O,R,K){const ft=[];for(const jt of Object.keys(K.children))"primary"===jt?ft.unshift(jt):ft.push(jt);return(0,J.D)(ft).pipe((0,kt.b)(jt=>{const Zt=K.children[jt],ce=xs(R,jt);return this.expandSegmentGroup(O,ce,Zt,jt).pipe((0,Rt.U)(ze=>({segment:ze,outlet:jt})))}),Q((jt,Zt)=>(jt[Zt.outlet]=Zt.segment,jt),{}),function(Zt,ce){const ze=arguments.length>=2;return En=>En.pipe(Zt?(0,ae.h)((tn,bn)=>Zt(tn,bn,En)):It.y,ge(1),ze?Qt(ce):rn(()=>new at))}())}expandSegment(O,R,K,ft,jt,Zt){return(0,J.D)(K).pipe((0,kt.b)(ce=>this.expandSegmentAgainstRoute(O,R,K,ce,ft,jt,Zt).pipe(wt(ze=>{if(ze instanceof ls)return(0,ht.of)(null);throw ze}))),lt(ce=>!!ce),wt((ce,ze)=>{if(ce instanceof at||"EmptyError"===ce.name){if(Fs(R,ft,jt))return(0,ht.of)(new xn([],{}));throw new ls(R)}throw ce}))}expandSegmentAgainstRoute(O,R,K,ft,jt,Zt,ce){return Oi(ft,R,jt,Zt)?void 0===ft.redirectTo?this.matchSegmentAgainstRoute(O,R,ft,jt,Zt):ce&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(O,R,K,ft,jt,Zt):No(R):No(R)}expandSegmentAgainstRouteUsingRedirect(O,R,K,ft,jt,Zt){return"**"===ft.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(O,K,ft,Zt):this.expandRegularSegmentAgainstRouteUsingRedirect(O,R,K,ft,jt,Zt)}expandWildCardWithParamsAgainstRouteUsingRedirect(O,R,K,ft){const jt=this.applyRedirectCommands([],K.redirectTo,{});return K.redirectTo.startsWith("/")?Fo(jt):this.lineralizeSegments(K,jt).pipe((0,de.zg)(Zt=>{const ce=new xn(Zt,{});return this.expandSegment(O,ce,R,Zt,ft,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(O,R,K,ft,jt,Zt){const{matched:ce,consumedSegments:ze,lastChild:En,positionalParamSegments:tn}=as(R,ft,jt);if(!ce)return No(R);const bn=this.applyRedirectCommands(ze,ft.redirectTo,tn);return ft.redirectTo.startsWith("/")?Fo(bn):this.lineralizeSegments(ft,bn).pipe((0,de.zg)(Ln=>this.expandSegment(O,R,K,Ln.concat(jt.slice(En)),Zt,!1)))}matchSegmentAgainstRoute(O,R,K,ft,jt){if("**"===K.path)return K.loadChildren?(K._loadedConfig?(0,ht.of)(K._loadedConfig):this.configLoader.load(O.injector,K)).pipe((0,Rt.U)(tn=>(K._loadedConfig=tn,new xn(ft,{})))):(0,ht.of)(new xn(ft,{}));const{matched:Zt,consumedSegments:ce,lastChild:ze}=as(R,K,ft);if(!Zt)return No(R);const En=ft.slice(ze);return this.getChildConfig(O,K,ft).pipe((0,de.zg)(tn=>{const bn=tn.module,Ln=tn.routes,{segmentGroup:jn,slicedSegments:Dn}=ms(R,ce,En,Ln),sr=new xn(jn.segments,jn.children);if(0===Dn.length&&sr.hasChildren())return this.expandChildren(bn,Ln,sr).pipe((0,Rt.U)(_r=>new xn(ce,_r)));if(0===Ln.length&&0===Dn.length)return(0,ht.of)(new xn(ce,{}));const Tr=Hr(K)===jt;return this.expandSegment(bn,sr,Ln,Dn,Tr?Ve:jt,!0).pipe((0,Rt.U)(_r=>new xn(ce.concat(_r.segments),_r.children)))}))}getChildConfig(O,R,K){return R.children?(0,ht.of)(new Ri(R.children,O)):R.loadChildren?void 0!==R._loadedConfig?(0,ht.of)(R._loadedConfig):this.runCanLoadGuards(O.injector,R,K).pipe((0,de.zg)(ft=>{return ft?this.configLoader.load(O.injector,R).pipe((0,Rt.U)(jt=>(R._loadedConfig=jt,jt))):(Zt=R,new _.y(ce=>ce.error(Dt(`Cannot load children because the guard of the route "path: '${Zt.path}'" returned false`))));var Zt})):(0,ht.of)(new Ri([],O))}
1runCanLoadGuards(O,R,K){const ft=R.canLoad;if(!ft||0===ft.length)return(0,ht.of)(!0);const jt=ft.map(Zt=>{const ce=O.get(Zt);let ze;if((tn=ce)&&ji(tn.canLoad))ze=ce.canLoad(R,K);else{if(!ji(ce))throw new Error("Invalid CanLoad guard");ze=ce(R,K)}var tn;return fn(ze)});return(0,ht.of)(jt).pipe(As(),(0,Wt.b)(Zt=>{if(!Bi(Zt))return;const ce=Dt(`Redirecting to "${this.urlSerializer.serialize(Zt)}"`);throw ce.url=Zt,ce}),(0,Rt.U)(Zt=>!0===Zt))}lineralizeSegments(O,R){let K=[],ft=R.root;for(;;){if(K=K.concat(ft.segments),0===ft.numberOfChildren)return(0,ht.of)(K);if(ft.numberOfChildren>1||!ft.children[Ve])return al(O.redirectTo);ft=ft.children[Ve]}}applyRedirectCommands(O,R,K){return this.applyRedirectCreatreUrlTree(R,this.urlSerializer.parse(R),O,K)}applyRedirectCreatreUrlTree(O,R,K,ft){const jt=this.createSegmentGroup(O,R.root,K,ft);return new sn(jt,this.createQueryParams(R.queryParams,this.urlTree.queryParams),R.fragment)}createQueryParams(O,R){const K={};return un(O,(ft,jt)=>{if("string"==typeof ft&&ft.startsWith(":")){const Zt=ft.substring(1);K[jt]=R[Zt]}else K[jt]=ft}),K}createSegmentGroup(O,R,K,ft){const jt=this.createSegments(O,R.segments,K,ft);let Zt={};return un(R.children,(ce,ze)=>{Zt[ze]=this.createSegmentGroup(O,ce,K,ft)}),new xn(jt,Zt)}createSegments(O,R,K,ft){return R.map(jt=>jt.path.startsWith(":")?this.findPosParam(O,jt,ft):this.findOrReturn(jt,K))}findPosParam(O,R,K){const ft=K[R.path.substring(1)];if(!ft)throw new Error(`Cannot redirect to '${O}'. Cannot find '${R.path}'.`);return ft}findOrReturn(O,R){let K=0;for(const ft of R){if(ft.path===O.path)return R.splice(K),ft;K++}return O}}function Di(st){const O={};for(const R of Object.keys(st.children)){const K=Di(st.children[R]);(K.segments.length>0||K.hasChildren())&&(O[R]=K)}return function(K){if(1===K.numberOfChildren&&K.children[Ve]){const ft=K.children[Ve];return new xn(K.segments.concat(ft.segments),ft.children)}return K}(new xn(st.segments,O))}class ei{constructor(O){this.path=O,this.route=this.path[this.path.length-1]}}class Vs{constructor(O,R){this.component=O,this.route=R}}function ko(st,O,R){const K=st._root;return co(K,O?O._root:null,R,[K.value])}function sa(st,O,R){const K=function(jt){if(!jt)return null;for(let Zt=jt.parent;Zt;Zt=Zt.parent){const ce=Zt.routeConfig;if(ce&&ce._loadedConfig)return ce._loadedConfig}return null}(O);return(K?K.module.injector:R).get(st)}function co(st,O,R,K,ft={canDeactivateChecks:[],canActivateChecks:[]}){const jt=w(O);return st.children.forEach(Zt=>{(function(ze,En,tn,bn,Ln={canDeactivateChecks:[],canActivateChecks:[]}){const jn=ze.value,Dn=En?En.value:null,sr=tn?tn.getContext(ze.value.outlet):null;if(Dn&&jn.routeConfig===Dn.routeConfig){const Tr=function(Xr,Sr,Zr){if("function"==typeof Zr)return Zr(Xr,Sr);switch(Zr){case"pathParamsChange":return!re(Xr.url,Sr.url);case"pathParamsOrQueryParamsChange":return!re(Xr.url,Sr.url)||!pe(Xr.queryParams,Sr.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!mn(Xr,Sr)||!pe(Xr.queryParams,Sr.queryParams);default:return!mn(Xr,Sr)}}(Dn,jn,jn.routeConfig.runGuardsAndResolvers);Tr?Ln.canActivateChecks.push(new ei(bn)):(jn.data=Dn.data,jn._resolvedData=Dn._resolvedData),co(ze,En,jn.component?sr?sr.children:null:tn,bn,Ln),Tr&&sr&&sr.outlet&&sr.outlet.isActivated&&Ln.canDeactivateChecks.push(new Vs(sr.outlet.component,Dn))}else Dn&&_s(En,sr,Ln),Ln.canActivateChecks.push(new ei(bn)),co(ze,null,jn.component?sr?sr.children:null:tn,bn,Ln)})(Zt,jt[Zt.value.outlet],R,K.concat([Zt.value]),ft),delete jt[Zt.value.outlet]}),un(jt,(Zt,ce)=>_s(Zt,R.getContext(ce),ft)),ft}function _s(st,O,R){const K=w(st),ft=st.value;un(K,(jt,Zt)=>{_s(jt,ft.component?O?O.children.getContext(Zt):null:O,R)}),R.canDeactivateChecks.push(new Vs(ft.component&&O&&O.outlet&&O.outlet.isActivated?O.outlet.component:null,ft))}class bs{}function uo(st){return new _.y(O=>O.error(st))}class eo{constructor(O,R,K,ft,jt,Zt){this.rootComponentType=O,this.config=R,this.urlTree=K,this.url=ft,this.paramsInheritanceStrategy=jt,this.relativeLinkResolution=Zt}recognize(){const O=ms(this.urlTree.root,[],[],this.config.filter(Zt=>void 0===Zt.redirectTo),this.relativeLinkResolution).segmentGroup,R=this.processSegmentGroup(this.config,O,Ve);if(null===R)return null;const K=new Kt([],Object.freeze({}),Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,{},Ve,this.rootComponentType,null,this.urlTree.root,-1,{}
1),ft=new _t(K,R),jt=new oe(this.url,ft);return this.inheritParamsAndData(jt._root),jt}inheritParamsAndData(O){const R=O.value,K=Nt(R,this.paramsInheritanceStrategy);R.params=Object.freeze(K.params),R.data=Object.freeze(K.data),O.children.forEach(ft=>this.inheritParamsAndData(ft))}processSegmentGroup(O,R,K){return 0===R.segments.length&&R.hasChildren()?this.processChildren(O,R):this.processSegment(O,R,R.segments,K)}processChildren(O,R){const K=[];for(const jt of Object.keys(R.children)){const Zt=R.children[jt],ce=xs(O,jt),ze=this.processSegmentGroup(ce,Zt,jt);if(null===ze)return null;K.push(...ze)}const ft=Xs(K);return ft.sort((ce,ze)=>ce.value.outlet===Ve?-1:ze.value.outlet===Ve?1:ce.value.outlet.localeCompare(ze.value.outlet)),ft}processSegment(O,R,K,ft){for(const jt of O){const Zt=this.processSegmentAgainstRoute(jt,R,K,ft);if(null!==Zt)return Zt}return Fs(R,K,ft)?[]:null}processSegmentAgainstRoute(O,R,K,ft){if(O.redirectTo||!Oi(O,R,K,ft))return null;let jt,Zt=[],ce=[];if("**"===O.path){const jn=K.length>0?Kn(K).parameters:{};jt=new Kt(K,jn,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,ho(O),Hr(O),O.component,O,Us(R),Gs(R)+K.length,po(O))}else{const jn=as(R,O,K);if(!jn.matched)return null;Zt=jn.consumedSegments,ce=K.slice(jn.lastChild),jt=new Kt(Zt,jn.parameters,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,ho(O),Hr(O),O.component,O,Us(R),Gs(R)+Zt.length,po(O))}const ze=(Dn=O).children?Dn.children:Dn.loadChildren?Dn._loadedConfig.routes:[],{segmentGroup:En,slicedSegments:tn}=ms(R,Zt,ce,ze.filter(jn=>void 0===jn.redirectTo),this.relativeLinkResolution);var Dn;if(0===tn.length&&En.hasChildren()){const jn=this.processChildren(ze,En);return null===jn?null:[new _t(jt,jn)]}if(0===ze.length&&0===tn.length)return[new _t(jt,[])];const bn=Hr(O)===ft,Ln=this.processSegment(ze,En,tn,bn?Ve:ft);return null===Ln?null:[new _t(jt,Ln)]}}function vi(st){const O=st.value.routeConfig;return O&&""===O.path&&void 0===O.redirectTo}function Xs(st){const O=[],R=new Set;for(const K of st){if(!vi(K)){O.push(K);continue}const ft=O.find(jt=>K.value.routeConfig===jt.value.routeConfig);void 0!==ft?(ft.children.push(...K.children),R.add(ft)):O.push(K)}for(const K of R){const ft=Xs(K.children);O.push(new _t(K.value,ft))}return O.filter(K=>!R.has(K))}function Us(st){let O=st;for(;O._sourceSegment;)O=O._sourceSegment;return O}function Gs(st){let O=st,R=O._segmentIndexShift?O._segmentIndexShift:0;for(;O._sourceSegment;)O=O._sourceSegment,R+=O._segmentIndexShift?O._segmentIndexShift:0;return R-1}function ho(st){return st.data||{}}function po(st){return st.resolve||{}}function ws(st){return(0,ne.w)(O=>{const R=st(O);return R?(0,J.D)(R).pipe((0,Rt.U)(()=>O)):(0,ht.of)(O)})}class Wr extends class{shouldDetach(R){return!1}store(R,K){}shouldAttach(R){return!1}retrieve(R){return null}shouldReuseRoute(R,K){return R.routeConfig===K.routeConfig}}{}const Ei=new p.OlP("ROUTES");class Vr{constructor(O,R,K,ft){this.injector=O,this.compiler=R,this.onLoadStartListener=K,this.onLoadEndListener=ft}load(O,R){if(R._loader$)return R._loader$;this.onLoadStartListener&&this.onLoadStartListener(R);const K=this.loadModuleFactory(R.loadChildren).pipe((0,Rt.U)(ft=>{this.onLoadEndListener&&this.onLoadEndListener(R);const jt=ft.create(O);return new Ri(Ze(jt.injector.get(Ei,void 0,p.XFs.Self|p.XFs.Optional)).map(Hi),jt)}),wt(ft=>{throw R._loader$=void 0,ft}));return R._loader$=new x.c(K,()=>new P.xQ).pipe((0,en.x)()),R._loader$}loadModuleFactory(O){return fn(O()).pipe((0,de.zg)(R=>R instanceof p.YKP?(0,ht.of)(R):(0,J.D)(this.compiler.compileModuleAsync(R))))}}class Es{shouldProcessUrl(O){return!0}extract(O){return O}merge(O,R){return O}}function Cs(st){throw st}function fo(st,O,R){return O.parse("/")}function oa(st,O){return(0,ht.of)(null)}const jo={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},aa={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let _i=(()=>{class st{constructor(R,K,ft,jt,Zt,ce,ze){this.rootComponentType=R,this.urlSerializer=K,this.rootContexts=ft,this.location=jt,this.config=ze,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.disposed=!1,this.navigationId=0,this.currentPageId=0,this.isNgZoneEnabled=!1,this.events=new P.xQ,this.errorHandler=Cs,this.malformedUriErrorHandler=fo,this.navigated=!1,this.lastSuccessfulId=-1,this.hooks={beforePreactivation:oa,afterPreactivation:oa},this.urlHandlingStrategy=new Es,this.routeReuseStrategy=new Wr,this.onSameUrlNavigation="ignore",this.paramsInheritanceStrategy="emptyOnly",this.urlUpdateStrategy="deferred",this.relativeLinkResolution="corrected",this.canceledNavigationResolution="replace",this.ngModule=Zt.get(p.h0i),this.console=Zt.get(p.c2e);const En=Zt.get(p.R0b);this.isNgZoneEnabled=En instanceof p.R0b&&p.R0b.isInAngularZone(),this.resetConfig(ze),this.currentUrlTree=new sn(new xn([],{}),{},null),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.configLoader=new Vr(Zt,ce,tn=>this.triggerEvent(new Ie(tn)),tn=>this.triggerEvent(new Je(tn))),this.routerState=Z(this.currentUrlTree,this.rootComponentType),this.transitions=new m.X({id:0,targetPageId:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}get browserPageId(){var R;return null===(R=this.location.getState())||void 0===R?void 0:R.\u0275routerPageId}setupNavigations(R){const K=this.events;return R.pipe((0,ae.h)(ft=>0!==ft.id),(0,Rt.U)(ft=>Object.assign(Object.assign({},ft),{extractedUrl:this.urlHandlingStrategy.extract(ft.rawUrl)})),(0,ne.w)(ft=>{let jt=!1,Zt=!1;
1return(0,ht.of)(ft).pipe((0,Wt.b)(ce=>{this.currentNavigation={id:ce.id,initialUrl:ce.currentRawUrl,extractedUrl:ce.extractedUrl,trigger:ce.source,extras:ce.extras,previousNavigation:this.lastSuccessfulNavigation?Object.assign(Object.assign({},this.lastSuccessfulNavigation),{previousNavigation:null}):null}}),(0,ne.w)(ce=>{const ze=this.browserUrlTree.toString(),En=!this.navigated||ce.extractedUrl.toString()!==ze||ze!==this.currentUrlTree.toString();if(("reload"===this.onSameUrlNavigation||En)&&this.urlHandlingStrategy.shouldProcessUrl(ce.rawUrl))return Rs(ce.source)&&(this.browserUrlTree=ce.extractedUrl),(0,ht.of)(ce).pipe((0,ne.w)(tn=>{const bn=this.transitions.getValue();return K.next(new yr(tn.id,this.serializeUrl(tn.extractedUrl),tn.source,tn.restoredState)),bn!==this.transitions.getValue()?g.E:Promise.resolve(tn)}),(bn=this.ngModule.injector,Ln=this.configLoader,jn=this.urlSerializer,Dn=this.config,(0,ne.w)(sr=>{return(_r=bn,Xr=Ln,Sr=jn,Zr=sr.extractedUrl,ii=Dn,new js(_r,Xr,Sr,Zr,ii).apply()).pipe((0,Rt.U)(Tr=>Object.assign(Object.assign({},sr),{urlAfterRedirects:Tr})));var _r,Xr,Sr,Zr,ii})),(0,Wt.b)(tn=>{this.currentNavigation=Object.assign(Object.assign({},this.currentNavigation),{finalUrl:tn.urlAfterRedirects})}),function(bn,Ln,jn,Dn,sr){return(0,de.zg)(Tr=>function(Xr,Sr,Zr,ii,Ur="emptyOnly",Dr="legacy"){try{const Er=new eo(Xr,Sr,Zr,ii,Ur,Dr).recognize();return null===Er?uo(new bs):(0,ht.of)(Er)}catch(Er){return uo(Er)}}(bn,Ln,Tr.urlAfterRedirects,jn(Tr.urlAfterRedirects),Dn,sr).pipe((0,Rt.U)(_r=>Object.assign(Object.assign({},Tr),{targetSnapshot:_r}))))}(this.rootComponentType,this.config,tn=>this.serializeUrl(tn),this.paramsInheritanceStrategy,this.relativeLinkResolution),(0,Wt.b)(tn=>{if("eager"===this.urlUpdateStrategy){if(!tn.extras.skipLocationChange){const Ln=this.urlHandlingStrategy.merge(tn.urlAfterRedirects,tn.rawUrl);this.setBrowserUrl(Ln,tn)}this.browserUrlTree=tn.urlAfterRedirects}const bn=new Re(tn.id,this.serializeUrl(tn.extractedUrl),this.serializeUrl(tn.urlAfterRedirects),tn.targetSnapshot);K.next(bn)}));var bn,Ln,jn,Dn;if(En&&this.rawUrlTree&&this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)){const{id:tn,extractedUrl:bn,source:Ln,restoredState:jn,extras:Dn}=ce,sr=new yr(tn,this.serializeUrl(bn),Ln,jn);K.next(sr);const Tr=Z(bn,this.rootComponentType).snapshot;return(0,ht.of)(Object.assign(Object.assign({},ce),{targetSnapshot:Tr,urlAfterRedirects:bn,extras:Object.assign(Object.assign({},Dn),{skipLocationChange:!1,replaceUrl:!1})}))}return this.rawUrlTree=ce.rawUrl,ce.resolve(null),g.E}),ws(ce=>{const{targetSnapshot:ze,id:En,extractedUrl:tn,rawUrl:bn,extras:{skipLocationChange:Ln,replaceUrl:jn}}=ce;return this.hooks.beforePreactivation(ze,{navigationId:En,appliedUrlTree:tn,rawUrlTree:bn,skipLocationChange:!!Ln,replaceUrl:!!jn})}),(0,Wt.b)(ce=>{const ze=new Be(ce.id,this.serializeUrl(ce.extractedUrl),this.serializeUrl(ce.urlAfterRedirects),ce.targetSnapshot);this.triggerEvent(ze)}),(0,Rt.U)(ce=>Object.assign(Object.assign({},ce),{guards:ko(ce.targetSnapshot,ce.currentSnapshot,this.rootContexts)})),(ze=this.ngModule.injector,En=ce=>this.triggerEvent(ce),(0,de.zg)(tn=>{const{targetSnapshot:bn,currentSnapshot:Ln,guards:{canActivateChecks:jn,canDeactivateChecks:Dn}}=tn;return 0===Dn.length&&0===jn.length?(0,ht.of)(Object.assign(Object.assign({},tn),{guardsResult:!0})):(Tr=Dn,_r=bn,Xr=Ln,Sr=ze,(0,J.D)(Tr).pipe((0,de.zg)(Zr=>function(Ur,Dr,Er,Ci,Gr){const Yr=Dr&&Dr.routeConfig?Dr.routeConfig.canDeactivate:null;if(!Yr||0===Yr.length)return(0,ht.of)(!0);const yi=Yr.map(qr=>{const Pr=sa(qr,Dr,Gr);let Jr;if((Ss=Pr)&&ji(Ss.canDeactivate))Jr=fn(Pr.canDeactivate(Ur,Dr,Er,Ci));else{if(!ji(Pr))throw new Error("Invalid CanDeactivate guard");Jr=fn(Pr(Ur,Dr,Er,Ci))}var Ss;return Jr.pipe(lt())});return(0,ht.of)(yi).pipe(As())}(Zr.component,Zr.route,Xr,_r,Sr)),lt(Zr=>!0!==Zr,!0))).pipe((0,de.zg)(sr=>sr&&function(_r){return"boolean"==typeof _r}(sr)?function(_r,Xr,Sr,Zr){return(0,J.D)(Xr).pipe((0,kt.b)(ii=>{return(0,M.z)((Er=Zr,null!==(Dr=ii.route.parent)&&Er&&Er(new Te(Dr)),(0,ht.of)(!0)),function(Dr,Er){return null!==Dr&&Er&&Er(new pn(Dr)),(0,ht.of)(!0)}(ii.route,Zr),function(Dr,Er,Ci){const Gr=Er[Er.length-1],Yr=Er.slice(0,Er.length-1).reverse().map(yi=>function(Pr){const Jr=Pr.routeConfig?Pr.routeConfig.canActivateChild:null;return Jr&&0!==Jr.length?{node:Pr,guards:Jr}:null}(yi)).filter(yi=>null!==yi).map(yi=>(0,N.P)(()=>{const qr=yi.guards.map(Pr=>{const Jr=sa(Pr,yi.node,Ci);let Ai;if((cs=Jr)&&ji(cs.canActivateChild))Ai=fn(Jr.canActivateChild(Gr,Dr));else{if(!ji(Jr))throw new Error("Invalid CanActivateChild guard");Ai=fn(Jr(Gr,Dr))}var cs;return Ai.pipe(lt())});return(0,ht.of)(qr).pipe(As())}));return(0,ht.of)(Yr).pipe(As())}(_r,ii.path,Sr),function(Dr,Er,Ci){const Gr=Er.routeConfig?Er.routeConfig.canActivate:null;if(!Gr||0===Gr.length)return(0,ht.of)(!0);const Yr=Gr.map(yi=>(0,N.P)(()=>{const qr=sa(yi,Er,Ci);let Pr;if((Ai=qr)&&ji(Ai.canActivate))Pr=fn(qr.canActivate(Er,Dr));else{if(!ji(qr))throw new Error("Invalid CanActivate guard");Pr=fn(qr(Er,Dr))}var Ai;return Pr.pipe(lt())}));return(0,ht.of)(Yr).pipe(As())}(_r,ii.route,Sr));var Dr,Er}),lt(ii=>!0!==ii,!0))}(bn,jn,ze,En):(0,ht.of)(sr)),(0,Rt.U)(sr=>Object.assign(Object.assign({},tn),{guardsResult:sr})));var Tr,_r,Xr,Sr})),(0,Wt.b)(ce=>{if(Bi(ce.guardsResult)){const En=Dt(`Redirecting to "${this.serializeUrl(ce.guardsResult)}"`);throw En.url=ce.guardsResult,En}const ze=new Lt(ce.id,this.serializeUrl(ce.extractedUrl),this.serializeUrl(ce.urlAfterRedirects),ce.targetSnapshot,!!ce.guardsResult);this.triggerEvent(ze)}),(0,ae.h)(ce=>!!ce.guardsResult||(this.restoreHistory(ce),this.cancelNavigationTransition(ce,""),!1)),ws(ce=>{if(ce.guards.canActivateChecks.length)return(0,ht.of)(ce).pipe((0,Wt.b)(ze=>{const En=new Ht(ze.id,this.serializeUrl(ze.extractedUrl),this.serializeUrl(ze.urlAfterRedirects),ze.targetSnapshot);this.triggerEvent(En)}),(0,ne.w)(ze=>{let En=!1;return(0,ht.of)(ze).pipe((bn=this.paramsInheritanceStrategy,Ln=this.ngModule.injector,(0,de.zg)(jn=>{const{targetSnapshot:Dn,guards:{canActivateChecks:sr}}=jn;if(!sr.length)return(0,ht.of)(jn);let Tr=0;return(0,J.D)(sr).pipe((0,kt.b)(_r=>{return ii=bn,function(Er,Ci,Gr,Yr){const yi=Object.keys(Er);if(0===yi.length)return(0,ht.of)({});const qr={};return(0,J.D)(yi).pipe((0,de.zg)(Pr=>
1function(Ai,Ss,cs,Uo){const Qs=sa(Ai,Ss,Uo);return fn(Qs.resolve?Qs.resolve(Ss,cs):Qs(Ss,cs))}(Er[Pr],Ci,Gr,Yr).pipe((0,Wt.b)(Jr=>{qr[Pr]=Jr}))),ge(1),(0,de.zg)(()=>Object.keys(qr).length===yi.length?(0,ht.of)(qr):g.E))}((Sr=_r.route)._resolve,Sr,Dn,Ln).pipe((0,Rt.U)(Dr=>(Sr._resolvedData=Dr,Sr.data=Object.assign(Object.assign({},Sr.data),Nt(Sr,ii).resolve),null)));var Sr,ii}),(0,Wt.b)(()=>Tr++),ge(1),(0,de.zg)(_r=>Tr===sr.length?(0,ht.of)(jn):g.E))})),(0,Wt.b)({next:()=>En=!0,complete:()=>{En||(this.restoreHistory(ze),this.cancelNavigationTransition(ze,"At least one route resolver didn't emit any value."))}}));var bn,Ln}),(0,Wt.b)(ze=>{const En=new Jt(ze.id,this.serializeUrl(ze.extractedUrl),this.serializeUrl(ze.urlAfterRedirects),ze.targetSnapshot);this.triggerEvent(En)}))}),ws(ce=>{const{targetSnapshot:ze,id:En,extractedUrl:tn,rawUrl:bn,extras:{skipLocationChange:Ln,replaceUrl:jn}}=ce;return this.hooks.afterPreactivation(ze,{navigationId:En,appliedUrlTree:tn,rawUrlTree:bn,skipLocationChange:!!Ln,replaceUrl:!!jn})}),(0,Rt.U)(ce=>{const ze=function(tn,bn,Ln){const jn=gt(tn,bn._root,Ln?Ln._root:void 0);return new T(jn,bn)}(this.routeReuseStrategy,ce.targetSnapshot,ce.currentRouterState);return Object.assign(Object.assign({},ce),{targetRouterState:ze})}),(0,Wt.b)(ce=>{this.currentUrlTree=ce.urlAfterRedirects,this.rawUrlTree=this.urlHandlingStrategy.merge(ce.urlAfterRedirects,ce.rawUrl),this.routerState=ce.targetRouterState,"deferred"===this.urlUpdateStrategy&&(ce.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,ce),this.browserUrlTree=ce.urlAfterRedirects)}),((ce,ze,En)=>(0,Rt.U)(tn=>(new Pi(ze,tn.targetRouterState,tn.currentRouterState,En).activate(ce),tn)))(this.rootContexts,this.routeReuseStrategy,ce=>this.triggerEvent(ce)),(0,Wt.b)({next(){jt=!0},complete(){jt=!0}}),function(ze){return En=>En.lift(new ct(ze))}(()=>{var ce;jt||Zt||this.cancelNavigationTransition(ft,`Navigation ID ${ft.id} is not equal to the current navigation id ${this.navigationId}`),(null===(ce=this.currentNavigation)||void 0===ce?void 0:ce.id)===ft.id&&(this.currentNavigation=null)}),wt(ce=>{if(Zt=!0,function(En){return En&&En[me]}(ce)){const ze=Bi(ce.url);ze||(this.navigated=!0,this.restoreHistory(ft,!0));const En=new ee(ft.id,this.serializeUrl(ft.extractedUrl),ce.message);K.next(En),ze?setTimeout(()=>{const tn=this.urlHandlingStrategy.merge(ce.url,this.rawUrlTree),bn={skipLocationChange:ft.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||Rs(ft.source)};this.scheduleNavigation(tn,"imperative",null,bn,{resolve:ft.resolve,reject:ft.reject,promise:ft.promise})},0):ft.resolve(!1)}else{this.restoreHistory(ft,!0);const ze=new Se(ft.id,this.serializeUrl(ft.extractedUrl),ce);K.next(ze);try{ft.resolve(this.errorHandler(ce))}catch(En){ft.reject(En)}}return g.E}));var ze,En}))}resetRootComponentType(R){this.rootComponentType=R,this.routerState.root.component=this.rootComponentType}setTransition(R){this.transitions.next(Object.assign(Object.assign({},this.transitions.value),R))}initialNavigation(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(R=>{const K="popstate"===R.type?"popstate":"hashchange";"popstate"===K&&setTimeout(()=>{var ft;const jt={replaceUrl:!0},Zt=null!==(ft=R.state)&&void 0!==ft&&ft.navigationId?R.state:null;if(Zt){const ze=Object.assign({},Zt);delete ze.navigationId,delete ze.\u0275routerPageId,0!==Object.keys(ze).length&&(jt.state=ze)}const ce=this.parseUrl(R.url);this.scheduleNavigation(ce,K,Zt,jt)},0)}))}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.currentNavigation}triggerEvent(R){this.events.next(R)}resetConfig(R){Vi(R),this.config=R.map(Hi),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.transitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0}createUrlTree(R,K={}){const{relativeTo:ft,queryParams:jt,fragment:Zt,queryParamsHandling:ce,preserveFragment:ze}=K,En=ft||this.routerState.root,tn=ze?this.currentUrlTree.fragment:Zt;let bn=null;switch(ce){case"merge":bn=Object.assign(Object.assign({},this.currentUrlTree.queryParams),jt);break;case"preserve":bn=this.currentUrlTree.queryParams;break;default:bn=jt||null}return null!==bn&&(bn=this.removeEmptyProps(bn)),function(jn,Dn,sr,Tr,_r){if(0===sr.length)return $(Dn.root,Dn.root,Dn,Tr,_r);const Xr=function(Ur){if("string"==typeof Ur[0]&&1===Ur.length&&"/"===Ur[0])return new qt(!0,0,Ur);let Dr=0,Er=!1;const Ci=Ur.reduce((Gr,Yr,yi)=>
1{if("object"==typeof Yr&&null!=Yr){if(Yr.outlets){const qr={};return un(Yr.outlets,(Pr,Jr)=>{qr[Jr]="string"==typeof Pr?Pr.split("/"):Pr}),[...Gr,{outlets:qr}]}if(Yr.segmentPath)return[...Gr,Yr.segmentPath]}return"string"!=typeof Yr?[...Gr,Yr]:0===yi?(Yr.split("/").forEach((qr,Pr)=>{0==Pr&&"."===qr||(0==Pr&&""===qr?Er=!0:".."===qr?Dr++:""!=qr&&Gr.push(qr))}),Gr):[...Gr,Yr]},[]);return new qt(Er,Dr,Ci)}(sr);if(Xr.toRoot())return $(Dn.root,new xn([],{}),Dn,Tr,_r);const Sr=function(Ur,Dr,Er){if(Ur.isAbsolute)return new we(Dr.root,!0,0);if(-1===Er.snapshot._lastPathIndex){const Gr=Er.snapshot._urlSegment;return new we(Gr,Gr===Dr.root,0)}const Ci=L(Ur.commands[0])?0:1;return function(Yr,yi,qr){let Pr=Yr,Jr=yi,Ai=qr;for(;Ai>Jr;){if(Ai-=Jr,Pr=Pr.parent,!Pr)throw new Error("Invalid number of '../'");Jr=Pr.segments.length}return new we(Pr,!1,Jr-Ai)}(Er.snapshot._urlSegment,Er.snapshot._lastPathIndex+Ci,Ur.numberOfDoubleDots)}(Xr,Dn,jn),Zr=Sr.processChildren?Ke(Sr.segmentGroup,Sr.index,Xr.commands):Ce(Sr.segmentGroup,Sr.index,Xr.commands);return $(Sr.segmentGroup,Zr,Dn,Tr,_r)}(En,this.currentUrlTree,R,bn,tn??null)}navigateByUrl(R,K={skipLocationChange:!1}){const ft=Bi(R)?R:this.parseUrl(R),jt=this.urlHandlingStrategy.merge(ft,this.rawUrlTree);return this.scheduleNavigation(jt,"imperative",null,K)}navigate(R,K={skipLocationChange:!1}){return function(jt){for(let Zt=0;Zt<jt.length;Zt++){const ce=jt[Zt];if(null==ce)throw new Error(`The requested path contains ${ce} segment at index ${Zt}`)}}(R),this.navigateByUrl(this.createUrlTree(R,K),K)}serializeUrl(R){return this.urlSerializer.serialize(R)}parseUrl(R){let K;try{K=this.urlSerializer.parse(R)}catch(ft){K=this.malformedUriErrorHandler(ft,this.urlSerializer,R)}return K}isActive(R,K){let ft;if(ft=!0===K?Object.assign({},jo):!1===K?Object.assign({},aa):K,Bi(R))return Zn(this.currentUrlTree,R,ft);const jt=this.parseUrl(R);return Zn(this.currentUrlTree,jt,ft)}removeEmptyProps(R){return Object.keys(R).reduce((K,ft)=>{const jt=R[ft];return null!=jt&&(K[ft]=jt),K},{})}processNavigations(){this.navigations.subscribe(R=>{this.navigated=!0,this.lastSuccessfulId=R.id,this.currentPageId=R.targetPageId,this.events.next(new ur(R.id,this.serializeUrl(R.extractedUrl),this.serializeUrl(this.currentUrlTree))),this.lastSuccessfulNavigation=this.currentNavigation,R.resolve(!0)},R=>{this.console.warn(`Unhandled Navigation Error: ${R}`)})}scheduleNavigation(R,K,ft,jt,Zt){var ce,ze,En;if(this.disposed)return Promise.resolve(!1);const tn=this.transitions.value,bn=Rs(K)&&tn&&!Rs(tn.source),Ln=tn.rawUrl.toString()===R.toString(),jn=tn.id===(null===(ce=this.currentNavigation)||void 0===ce?void 0:ce.id);if(bn&&Ln&&jn)return Promise.resolve(!0);let Dn,sr,Tr;Zt?(Dn=Zt.resolve,sr=Zt.reject,Tr=Zt.promise):Tr=new Promise((Sr,Zr)=>{Dn=Sr,sr=Zr});const _r=++this.navigationId;let Xr;return"computed"===this.canceledNavigationResolution?(0===this.currentPageId&&(ft=this.location.getState()),Xr=ft&&ft.\u0275routerPageId?ft.\u0275routerPageId:jt.replaceUrl||jt.skipLocationChange?null!==(ze=this.browserPageId)&&void 0!==ze?ze:0:(null!==(En=this.browserPageId)&&void 0!==En?En:0)+1):Xr=0,this.setTransition({id:_r,targetPageId:Xr,source:K,restoredState:ft,currentUrlTree:this.currentUrlTree,currentRawUrl:this.rawUrlTree,rawUrl:R,extras:jt,resolve:Dn,reject:sr,promise:Tr,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),Tr.catch(Sr=>Promise.reject(Sr))}setBrowserUrl(R,K){const ft=this.urlSerializer.serialize(R),jt=Object.assign(Object.assign({},K.extras.state),this.generateNgRouterState(K.id,K.targetPageId));this.location.isCurrentPathEqualTo(ft)||K.extras.replaceUrl?this.location.replaceState(ft,"",jt):this.location.go(ft,"",jt)}restoreHistory(R,K=!1){var ft,jt;if("computed"===this.canceledNavigationResolution){const Zt=this.currentPageId-R.targetPageId;"popstate"!==R.source&&"eager"!==this.urlUpdateStrategy&&this.currentUrlTree!==(null===(ft=this.currentNavigation)||void 0===ft?void 0:ft.finalUrl)||0===Zt?this.currentUrlTree===(null===(jt=this.currentNavigation)||void 0===jt?void 0:jt.finalUrl)&&0===Zt&&(this.resetState(R),this.browserUrlTree=R.currentUrlTree,this.resetUrlToCurrentUrlTree()):this.location.historyGo(Zt)}else"replace"===this.canceledNavigationResolution&&(K&&this.resetState(R),this.resetUrlToCurrentUrlTree())}resetState(R){this.routerState=R.currentRouterState,this.currentUrlTree=R.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,R.rawUrl)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}
1cancelNavigationTransition(R,K){const ft=new ee(R.id,this.serializeUrl(R.extractedUrl),K);this.triggerEvent(ft),R.resolve(!1)}generateNgRouterState(R,K){return"computed"===this.canceledNavigationResolution?{navigationId:R,\u0275routerPageId:K}:{navigationId:R}}}return st.\u0275fac=function(O){p.$Z()},st.\u0275prov=p.Yz7({token:st,factory:st.\u0275fac}),st})();function Rs(st){return"imperative"!==st}class mo{}class go{preload(O,R){return(0,ht.of)(null)}}let Vo=(()=>{class st{constructor(R,K,ft,jt){this.router=R,this.injector=ft,this.preloadingStrategy=jt,this.loader=new Vr(ft,K,Zt=>R.triggerEvent(new Ie(Zt)),Zt=>R.triggerEvent(new Je(Zt)))}setUpPreloading(){this.subscription=this.router.events.pipe((0,ae.h)(R=>R instanceof ur),(0,kt.b)(()=>this.preload())).subscribe(()=>{})}preload(){const R=this.injector.get(p.h0i);return this.processRoutes(R,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(R,K){const ft=[];for(const jt of K)if(jt.loadChildren&&!jt.canLoad&&jt._loadedConfig){const Zt=jt._loadedConfig;ft.push(this.processRoutes(Zt.module,Zt.routes))}else jt.loadChildren&&!jt.canLoad?ft.push(this.preloadConfig(R,jt)):jt.children&&ft.push(this.processRoutes(R,jt.children));return(0,J.D)(ft).pipe((0,be.J)(),(0,Rt.U)(jt=>{}))}preloadConfig(R,K){return this.preloadingStrategy.preload(K,()=>(K._loadedConfig?(0,ht.of)(K._loadedConfig):this.loader.load(R.injector,K)).pipe((0,de.zg)(ft=>(K._loadedConfig=ft,this.processRoutes(ft.module,ft.routes)))))}}return st.\u0275fac=function(O){return new(O||st)(p.LFG(_i),p.LFG(p.Sil),p.LFG(p.zs3),p.LFG(mo))},st.\u0275prov=p.Yz7({token:st,factory:st.\u0275fac}),st})(),Xi=(()=>{class st{constructor(R,K,ft={}){this.router=R,this.viewportScroller=K,this.options=ft,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},ft.scrollPositionRestoration=ft.scrollPositionRestoration||"disabled",ft.anchorScrolling=ft.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.router.events.subscribe(R=>{R instanceof yr?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=R.navigationTrigger,this.restoredId=R.restoredState?R.restoredState.navigationId:0):R instanceof ur&&(this.lastId=R.id,this.scheduleScrollEvent(R,this.router.parseUrl(R.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.router.events.subscribe(R=>{R instanceof Mn&&(R.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(R.position):R.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(R.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(R,K){this.router.triggerEvent(new Mn(R,"popstate"===this.lastSource?this.store[this.restoredId]:null,K))}ngOnDestroy(){this.routerEventsSubscription&&this.routerEventsSubscription.unsubscribe(),this.scrollEventsSubscription&&this.scrollEventsSubscription.unsubscribe()}}return st.\u0275fac=function(O){p.$Z()},st.\u0275prov=p.Yz7({token:st,factory:st.\u0275fac}),st})();const Ts=new p.OlP("ROUTER_CONFIGURATION"),vo=new p.OlP("ROUTER_FORROOT_GUARD"),la=[qe.Ye,{provide:fe,useClass:Ot},{provide:_i,useFactory:function(O,R,K,ft,jt,Zt,ce={},ze,En){const tn=new _i(null,O,R,K,ft,jt,Ze(Zt));return ze&&(tn.urlHandlingStrategy=ze),En&&(tn.routeReuseStrategy=En),jn=tn,(Ln=ce).errorHandler&&(jn.errorHandler=Ln.errorHandler),Ln.malformedUriErrorHandler&&(jn.malformedUriErrorHandler=Ln.malformedUriErrorHandler),Ln.onSameUrlNavigation&&(jn.onSameUrlNavigation=Ln.onSameUrlNavigation),Ln.paramsInheritanceStrategy&&(jn.paramsInheritanceStrategy=Ln.paramsInheritanceStrategy),Ln.relativeLinkResolution&&(jn.relativeLinkResolution=Ln.relativeLinkResolution),Ln.urlUpdateStrategy&&(jn.urlUpdateStrategy=Ln.urlUpdateStrategy),Ln.canceledNavigationResolution&&(jn.
1canceledNavigationResolution=Ln.canceledNavigationResolution),ce.enableTracing&&tn.events.subscribe(bn=>{var Ln,jn;null===(Ln=console.group)||void 0===Ln||Ln.call(console,`Router Event: ${bn.constructor.name}`),console.log(bn.toString()),console.log(bn),null===(jn=console.groupEnd)||void 0===jn||jn.call(console)}),tn;var Ln,jn},deps:[fe,Hn,qe.Ye,p.zs3,p.Sil,Ei,Ts,[class{},new p.FiY],[class{},new p.FiY]]},Hn,{provide:pt,useFactory:function(O){return O.routerState.root},deps:[_i]},Vo,go,class{preload(O,R){return R().pipe(wt(()=>(0,ht.of)(null)))}},{provide:Ts,useValue:{enableTracing:!1}}];function yo(){return new p.PXZ("Router",_i)}let ca=(()=>{class st{constructor(R,K){}static forRoot(R,K){return{ngModule:st,providers:[la,Ms(R),{provide:vo,useFactory:qi,deps:[[_i,new p.FiY,new p.tp0]]},{provide:Ts,useValue:K||{}},{provide:qe.S$,useFactory:no,deps:[qe.lw,[new p.tBr(qe.mr),new p.FiY],Ts]},{provide:Xi,useFactory:_o,deps:[_i,qe.EM,Ts]},{provide:mo,useExisting:K&&K.preloadingStrategy?K.preloadingStrategy:go},{provide:p.PXZ,multi:!0,useFactory:yo},[Ws,{provide:p.ip1,multi:!0,useFactory:Xo,deps:[Ws]},{provide:xo,useFactory:Ao,deps:[Ws]},{provide:p.tb,multi:!0,useExisting:xo}]]}}static forChild(R){return{ngModule:st,providers:[Ms(R)]}}}return st.\u0275fac=function(O){return new(O||st)(p.LFG(vo,8),p.LFG(_i,8))},st.\u0275mod=p.oAB({type:st}),st.\u0275inj=p.cJS({}),st})();function _o(st,O,R){return R.scrollOffset&&O.setOffset(R.scrollOffset),new Xi(st,O,R)}function no(st,O,R={}){return R.useHash?new qe.Do(st,O):new qe.b0(st,O)}function qi(st){return"guarded"}function Ms(st){return[{provide:p.deG,multi:!0,useValue:st},{provide:Ei,multi:!0,useValue:st}]}let Ws=(()=>{class st{constructor(R){this.injector=R,this.initNavigation=!1,this.destroyed=!1,this.resultOfPreactivationDone=new P.xQ}appInitializer(){return this.injector.get(qe.V_,Promise.resolve(null)).then(()=>{if(this.destroyed)return Promise.resolve(!0);let R=null;const K=new Promise(Zt=>R=Zt),ft=this.injector.get(_i),jt=this.injector.get(Ts);return"disabled"===jt.initialNavigation?(ft.setUpLocationChangeListener(),R(!0)):"enabled"===jt.initialNavigation||"enabledBlocking"===jt.initialNavigation?(ft.hooks.afterPreactivation=()=>this.initNavigation?(0,ht.of)(null):(this.initNavigation=!0,R(!0),this.resultOfPreactivationDone),ft.initialNavigation()):R(!0),K})}bootstrapListener(R){const K=this.injector.get(Ts),ft=this.injector.get(Vo),jt=this.injector.get(Xi),Zt=this.injector.get(_i),ce=this.injector.get(p.z2F);R===ce.components[0]&&(("enabledNonBlocking"===K.initialNavigation||void 0===K.initialNavigation)&&Zt.initialNavigation(),ft.setUpPreloading(),jt.init(),Zt.resetRootComponentType(ce.componentTypes[0]),this.resultOfPreactivationDone.next(null),this.resultOfPreactivationDone.complete())}ngOnDestroy(){this.destroyed=!0}}return st.\u0275fac=function(O){return new(O||st)(p.LFG(p.zs3))},st.\u0275prov=p.Yz7({token:st,factory:st.\u0275fac}),st})();function Xo(st){return st.appInitializer.bind(st)}function Ao(st){return st.bootstrapListener.bind(st)}const xo=new p.OlP("Router Initializer")}},u=>{u(u.s=585)}]);class WidgetFactory{constructor(D,v){this._controlIdent=D,this._container=v}get controlIdent(){return this._controlIdent}get container(){return this._container}get urlProfile(){return"https://fitgeniuswebpluginapi.aetrextechnology.com/check_profile"}get urlFGscore2(){return"https://fitgeniuswebpluginapi.aetrextechnology.com/shoeid_em_fgscores"}static getInstance(D,v){var p=null;switch(D){case"aetrex_profile_container":p=new AetrexFitGeniusProfileWidget(D,v);break;case"aetrex_foot_profile_container":p=new AetrexFitGeniusFootProfileWidget(D,v);break;case"aetrex_fitgenius_score_container":p=new AetrexFitGeniusScoreWidget(D,v);break;case"aetrex_three_d_feet_container":p=new AetrexFitGenius3DFeetWidget(D,v);break;case"aetrex_fitvision_container":p=new AetrexFitGeniusFitVisionWidget(D,v)}return p}draw(){}ordi(D){var v="th";return(1===D||21==D||31==D)&&(v="st"),(2===D||22==D)&&(v="nd"),(3===D||23==D)&&(v="rd"),D+v}dragElement(D){var v=0,p=0,s=0,j=0;function k(V){(V=V||window.event).preventDefault(),s=V.clientX,j=V.clientY,document.onmouseup=B,document.onmousemove=b}function b(V){(V=V||window.event).preventDefault(),v=s-V.clientX,p=j-V.clientY,s=V.clientX,j=V.clientY,D.style.top=D.offsetTop-p+"px",D.style.left=D.offsetLeft-v+"px"}function B(){document.onmouseup=null,document.onmousemove=null}document.getElementById(D.id+"header")?document.getElementById(D.id+"header").onmousedown=k:D.onmousedown=k}}class AetrexFitGeniusProfileWidget extends WidgetFactory{constructor(D,v){super(D,v)}draw(){let D=this.container.getAttribute("user");var v=document.createElement("fg-profile");v.setAttribute("user",D),this.container.appendChild(v)}}class AetrexFitGeniusFootProfileWidget extends WidgetFactory{constructor(D,v){super(D,v)}draw(){let D=this.container.getAttribute("user"),v=this.container.getAttribute("sku"),p=this.container.getAttribute("domain");var s=document.createElement("fg-foot-profile");s.setAttribute("user",D),s.setAttribute("sku",v),s.setAttribute("domain",p),this.container.appendChild(s)}get_ui_footProfileCondensed(D,v){var p=document.createElement("div");p.setAttribute("id","aetrex_profile_top_container"),p.classList.add("container","px-0","text-center"),D.appendChild(p);var s=document.createElement("div");s.classList.add("row","px-0"),s.setAttribute("id","aetrex_no_profile_container"),p.appendChild(s);var j=document.createElement("div");j.classList.add("col-12","col-sm-6","col-md-12","col-lg-12","col-xl-5"),j.setAttribute("id","aetrex_profile_container_left");var k=document.createElement("img");k.setAttribute("id","aetrex_profile_container_left_img"),k.setAttribute("src","https://fitgenius-widgets.aetrextechnology.com/assets/images/demo-right-foot.png"),j.appendChild(k),s.appendChild(j);var b=document.createElement("div");b.classList.add("col-12","col-sm-6","col-md-12","col-lg-12","col-xl-7","undoCapGemAttribute"),b.setAttribute("id","aetrex_profile_container_right");var B=document.createElement("div");B.setAttribute("id","aetrex_foot_profile_container_right_header_top"),B.innerText="Your 3D Foot Profile",b.appendChild(B),s.appendChild(b);var V=document.createElement("div");V.setAttribute("id","aetrex_foot_profile_container_right_header_sub");var _=document.createElement("span");_.setAttribute("id","aetrex_foot_profile_container_right_header_sub_text1"),_.innerText="CM";var H=document.createElement("span");H.setAttribute("id","aetrex_foot_profile_container_right_header_sub_text2"),H.innerText="Percentile",V.appendChild(_),V.appendChild(H
1),b.appendChild(V);var Y=document.createElement("div");Y.setAttribute("id","aetrex_foot_profile_container_right_body"),b.appendChild(Y);var q=document.createElement("div");q.setAttribute("id","aetrex_foot_profile_container_right_footer");var it=document.createElement("a");it.setAttribute("id","aetrex_foot_profile_container_right_footer_text1"),it.onclick=()=>{this.get_ui_footProfileBody(Y,v,!0)},it.innerText="Left Foot",q.appendChild(it);var vt=document.createElement("a");vt.setAttribute("id","aetrex_foot_profile_container_right_footer_text2"),vt.onclick=()=>{this.get_ui_footProfileBody(Y,v,!1)},vt.innerText="Right Foot",q.appendChild(vt),b.appendChild(q),s.appendChild(b);var at=document.createElement("div");at.setAttribute("id","aetrex_foot_profile_container_recommendedSize"),at.innerHTML='<p><b>FitGenius</b> Recommended Size for this style <span class="redText">US '+v.footdata.medianshoesize+"</span></p>",D.appendChild(at);var J=document.createElement("span");return J.setAttribute("id","aetrex_fitgenius_score_info_icon"),J.setAttribute("type","button"),J.setAttribute("data-bs-toggle","modal"),J.setAttribute("data-bs-target","#aetrex_fitgenius_recommended_size_container_expanded"),this.get_ui_fitgeniusRecommendedSizeContainerExpandedFactory(D,v),at.appendChild(J),this.get_ui_footProfileBody(Y,v,!0),s.appendChild(b),D}get_ui_footProfileBody(D,v,p){if(D&&v){var s=p?v.footdata.leftfoot:v.footdata.rightfoot,j=document.getElementById("aetrex_foot_profile_container_right_footer_text1"),k=document.getElementById("aetrex_foot_profile_container_right_footer_text2");for(p?(k.classList.remove("linkActive"),j.classList.add("linkActive")):(j.classList.remove("linkActive"),k.classList.add("linkActive"));D.firstChild;)D.firstChild.remove();var b=document.createElement("div");b.setAttribute("id","aetrex_foot_profile_container_right_body_length"),b.innerText="Length",D.appendChild(b);var B=document.createElement("div");B.setAttribute("id","aetrex_foot_profile_container_right_body_length_text1"),B.innerText=Number(s.length).toFixed(2),D.appendChild(B);var V=document.createElement("div");V.setAttribute("id","aetrex_foot_profile_container_right_body_length_text2"),V.innerText=s.lengthPercentile,D.appendChild(V);var _=document.createElement("div");_.setAttribute("id","aetrex_foot_profile_container_right_body_width"),_.innerText="Width",D.appendChild(_);var H=document.createElement("div");H.setAttribute("id","aetrex_foot_profile_container_right_body_width_text1"),H.innerText=Number(s.width).toFixed(2),D.appendChild(H);var Y=document.createElement("div");Y.setAttribute("id","aetrex_foot_profile_container_right_body_width_text2"),Y.innerText=s.widthPercentile,D.appendChild(Y);var q=document.createElement("div");q.setAttribute("id","aetrex_foot_profile_container_right_body_Instep"),q.innerText="Instep",D.appendChild(q);var it=document.createElement("div");it.setAttribute("id","aetrex_foot_profile_container_right_body_Instep_text1"),it.innerText=Number(s.instep).toFixed(2),D.appendChild(it);var vt=document.createElement("div");vt.setAttribute("id","aetrex_foot_profile_container_right_body_Instep_text2"),vt.innerText=s.instepPercentile,D.appendChild(vt);var at=document.createElement("div");at.setAttribute("id","aetrex_foot_profile_container_right_body_Girth"),at.innerText="Girth",D.appendChild(at);var J=document.createElement("div");J.setAttribute("id","aetrex_foot_profile_container_right_body_Girth_text1"),J.innerText=Number(s.girth).toFixed(2),D.appendChild(J);var ht=document.createElement("div");ht.setAttribute("id","aetrex_foot_profile_container_right_body_Girth_text2"),ht.innerText=s.girthPercentile,D.appendChild(ht)}}get_ui_fitgeniusRecommendedSizeContainerExpandedFactory(D,v){var p=document.createElement("div");p.classList.add("modal"),p.setAttribute("id","aetrex_fitgenius_recommended_size_container_expanded"),p.setAttribute("aria-labelledby","exampleModalLabel"),p.setAttribute("aria-hidden","true");var s=document.createElement("div");s.classList.add("modal-dialog");var j=document.createElement("div");j.setAttribute("id","aetrex_fitgenius_recommended_size_container_expanded_header");var k=document.createElement("div");k.innerHTML="<b>FitGenius</b> Size Recommendation",k.setAttribute("id","aetrex_fitgenius_recommended_size_container_expanded_header_button"),j.appendChild(k);var b=document.createElement("button");b.setAttribute("id","aetrex_profile_expanded_header_close_cmd"),b.setAttribute("data-bs-dismiss","modal"),b.innerText="x",j.appendChild(b);var B=document.createElement("div");B.classList.add("modal-content"),B.setAttribute("id","aetrex_fitgenius_score_container_expanded_body"),B.innerHTML="<br/>As you may know, some shoes run small, some shoes run big, while others seem to fit truer to your most common shoe size. That\u2019s why most of us have different sized footwear in our
1closet.<br/><br/>",B.innerHTML+="FitGenius uses Artificial Intelligence to help determine how a particular shoe runs, to help you get the right fit the first time. A \u201cFitGenius Size Recommendation\u201d is the size recommendation of that particular footwear style for you. You will most likely have several different sizes recommended to you between the different shoes on this website.",B.appendChild(B.firstChild);var V=document.createElement("div");V.setAttribute("id","aetrex_profile_top_container"),V.classList.add("container","px-0","text-center","d-block","d-sm-none","d-none","d-sm-block","d-md-none"),D.appendChild(V);var _=document.createElement("div");_.classList.add("row","px-0"),_.setAttribute("id","aetrex_no_profile_container"),V.appendChild(_);var H=document.createElement("div");H.classList.add("col-12","col-sm-6","col-md-12","col-lg-12","col-xl-5"),H.setAttribute("id","aetrex_profile_container_left");var Y=document.createElement("img");Y.setAttribute("id","aetrex_profile_container_left_img"),Y.setAttribute("src","https://fitgenius-widgets.aetrextechnology.com/assets/images/demo-right-foot.png"),H.appendChild(Y),_.appendChild(H);var q=document.createElement("div");q.classList.add("col-12","col-sm-6","col-md-12","col-lg-12","col-xl-7","undoCapGemAttribute"),q.setAttribute("id","aetrex_profile_container_right");var it=document.createElement("div");it.setAttribute("id","aetrex_foot_profile_container_right_header_top"),it.innerText="Your 3D Foot Profile",q.appendChild(it),_.appendChild(q);var vt=document.createElement("div");vt.setAttribute("id","aetrex_foot_profile_container_right_header_sub");var at=document.createElement("span");at.setAttribute("id","aetrex_foot_profile_container_right_header_sub_text1"),at.innerText="CM";var J=document.createElement("span");J.setAttribute("id","aetrex_foot_profile_container_right_header_sub_text2"),J.innerText="Percentile",vt.appendChild(at),vt.appendChild(J),q.appendChild(vt);var ht=document.createElement("div");ht.setAttribute("id","aetrex_foot_profile_container_right_body"),q.appendChild(ht);var m=document.createElement("div");m.setAttribute("id","aetrex_foot_profile_container_right_footer");var M=document.createElement("a");M.setAttribute("id","aetrex_foot_profile_container_right_footer_text1"),M.onclick=()=>{this.get_ui_footProfileBody(ht,v,!0)},M.innerText="Left Foot",m.appendChild(M);var N=document.createElement("a");N.setAttribute("id","aetrex_foot_profile_container_right_footer_text2"),N.onclick=()=>{this.get_ui_footProfileBody(ht,v,!1)},N.innerText="Right Foot",m.appendChild(N),q.appendChild(m),_.appendChild(q),B.appendChild(_),s.appendChild(j),s.appendChild(B),p.appendChild(s),D.appendChild(p),document.body.insertBefore(p,document.body.firstChild);var g=document.createElement("script");g.setAttribute("src","https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"),g.setAttribute("integrity","sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"),g.setAttribute("crossorigin","anonymous"),document.head.appendChild(g)}}class AetrexFitGeniusScoreWidget extends WidgetFactory{constructor(D,v){super(D,v)}draw(){let D=this.container.getAttribute("user"),v=this.container.getAttribute("sku"),p=this.container.getAttribute("domain"),s="true"==this.container.getAttribute("showInfoIcon");var j=document.createElement("fg-score");j.setAttribute("user",D),j.setAttribute("sku",v),j.setAttribute("domain",p),j.setAttribute("showInfo",s),this.container.appendChild(j)}get_ui_gitGeniusScoreFactory(D,v,p,s,j){if(D){let k=new XMLHttpRequest;k.open("POST",this.urlFGscore2),k.setRequestHeader("Content-type","application/json"),k.send(JSON.stringify({profile_email:v,domain:p,skus:[s]})),k.onload=()=>{if(200==k.status){var b=JSON.parse(k.response);if(console.log("fitGenius score response",b),b.results){var B=b.results[0];if(B){if(null==B.FitGenius_Score&&null==B.FitGenius_Rec)return;var _=Number(B.FitGenius_Score),H=document.createElement("span");if(H.innerHTML=_>=60?"<b>FitGenius</b> Score "+_+"<span class='star'></span>":"FitGenius Recommended",H.setAttribute("id","aetrex_fitgenius_score_label"),D.appendChild(H
1),j){var Y=document.createElement("span");Y.setAttribute("id","aetrex_fitgenius_score_info_icon"),Y.onclick=()=>{var q=document.getElementById("aetrex_fitgenius_score_container_expanded");q?D.removeChild(q):_>=60?this.get_ui_fitgeniusScoreContainerExpandedFactory(D):this.get_ui_fitgeniusRecommendedContainerExpandedFactory(D)},D.appendChild(Y)}}}}else console.log("response returned status "+k.status,k.responseText)}}}get_ui_fitgeniusScoreContainerExpandedFactory(D){var v=document.createElement("div");v.setAttribute("id","aetrex_fitgenius_score_container_expanded");var p=document.createElement("div");p.setAttribute("id","aetrex_fitgenius_score_container_expanded_header");var s=document.createElement("div");s.innerHTML="<b>FitGenius</b> Score",s.setAttribute("id","aetrex_fitgenius_score_container_expanded_header_button"),p.appendChild(s);var j=document.createElement("button");j.setAttribute("id","aetrex_fitgenius_score_container_expanded_close"),j.onclick=()=>{D.removeChild(document.getElementById("aetrex_fitgenius_score_container_expanded"))};var k=document.createElement("div");k.setAttribute("id","aetrex_fitgenius_score_container_expanded_body"),k.innerHTML="Your feet are 3-dimensional. So are your shoes. Since most people only know the length and width of their feet, return rates for shopping for footwear online can be very high. FitGenius AI Software was developed to improve this shopping experience. <br/><br/>",k.innerHTML+="A \u201cFitGenius Score\u201d is when the software assigns a number between 1-100 based on the likelihood of a shoe fitting the 3-Dimensional characteristics of your actual feet. The higher the number the more likely the shoe will feet your feet. Scores will vary between different shoppers, so a style with a high score for you may have a low score for others. ",p.appendChild(j),v.appendChild(p),v.appendChild(k),D.appendChild(v)}get_ui_fitgeniusRecommendedContainerExpandedFactory(D){var v=document.createElement("div");v.setAttribute("id","aetrex_fitgenius_score_container_expanded");var p=document.createElement("div");p.setAttribute("id","aetrex_fitgenius_score_container_expanded_header");var s=document.createElement("div");s.innerHTML="<b>FitGenius</b> Recommended",s.setAttribute("id","aetrex_fitgenius_score_container_expanded_header_button"),p.appendChild(s);var j=document.createElement("button");j.setAttribute("id","aetrex_fitgenius_score_container_expanded_close"),j.onclick=()=>{D.removeChild(document.getElementById("aetrex_fitgenius_score_container_expanded"))};var k=document.createElement("div");k.setAttribute("id","aetrex_fitgenius_score_container_expanded_body"),k.innerHTML="Your feet are 3-dimensional. So are your shoes. Since most people only know the length and width of their feet, return rates for shopping for footwear online can be very high. FitGenius AI Software was developed to improve this shopping experience. <br/><br/>",k.innerHTML+="\u201cFitGenius Recommended\u201d is a designation assigned to shoes that have the best fit characteristics for you based on the 3-Dimensional measurements of your feet. Footwear styles recommended for you, may or may not be recommended for others with different 3D foot profiles.",p.appendChild(j),v.appendChild(p),v.appendChild(k),D.appendChild(v)}}class AetrexFitGenius3DFeetWidget extends WidgetFactory{constructor(D,v){super(D,v)}draw(){let D=this.container.getAttribute("user");var v=document.createElement("three-feet");v.setAttribute("user",D),this.container.appendChild(v)}}class AetrexFitGeniusFitVisionWidget extends WidgetFactory{constructor(D,v){super(D,v)}draw(){var D=document.createElement("div");D.setAttribute("id","aetrex_fitvision_top");var v=document.createElement("div");v.setAttribute("id","aetrex_fitvision_bottom"),D.appendChild(v),this.container.appendChild(D),this.dragElement(D)}}var fg=(()=>(init3dFeet=()=>{let u="aetrex_three_d_feet_container";document.querySelectorAll("[id="+u+"]").forEach(D=>{WidgetFactory.getInstance(u,D)?.draw()})},initFitGeniusProfile=()=>{let u="aetrex_profile_container";document.querySelectorAll("[id="+u+"]").forEach(D=>{WidgetFactory.getInstance(u,D)?.draw()})},initFootProfile=()=>{let u="aetrex_foot_profile_container";document.querySelectorAll("[id="+u+"]").forEach(D=>{WidgetFactory.getInstance(u,D)?.draw()})},initFitGeniusScore=()=>{let u="aetrex_fitgenius_score_container";document.querySelectorAll("[name="+u+"]").forEach(D=>{WidgetFactory.getInstance(u,D)?.draw()})},initFitVision=()=>{let u="aetrex_fitvision_container";document.querySelectorAll("[id="+u+"]").forEach(D=>{WidgetFactory.getInstance(u,D)?.draw()})},this.init3dFeet(),this.initFitGeniusProfile(),this.initFootProfile(),this.initFitGeniusScore(),this.initFitVision(),{init3dFeet,initFitGeniusProfile,initFootProfile,initFitGeniusScore,initFitVision}))();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.