try { (function() { /* RequireJS 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved. Available via the MIT or new BSD license. see: http://github.com/jrburke/requirejs for details */ var requirejs,require,define; (function(){var version="0.25.0",commentRegExp=/(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg,cjsRequireRegExp=/require\(["']([^'"\s]+)["']\)/g,currDirRegExp=/^\.\//,jsSuffixRegExp=/\.js$/,ostring=Object.prototype.toString,ap=Array.prototype,aps=ap.slice,apsp=ap.splice,isBrowser=!!(typeof window!=="undefined"&&navigator&&document),isWebWorker=!isBrowser&&typeof importScripts!=="undefined",readyRegExp=/^(complete|loaded)$/,defContextName="_",isOpera=typeof opera!=="undefined"&&opera.toString()==="[object Opera]", reqWaitIdPrefix="_r@@",empty={},contexts={},globalDefQueue=[],interactiveScript=null,isDone=false,checkLoadedDepth=0,useInteractive=false,req,cfg={},currentlyAddingScript,s,head,scripts,script,src,subPath,mainScript,dataMain,i,scrollIntervalId,ctx,checkLoadedTimeoutId;function isFunction(it){return ostring.call(it)==="[object Function]"}function isArray(it){return ostring.call(it)==="[object Array]"}function mixin(target,source,force){for(var prop in source)if(!(prop in empty)&&(!(prop in target)|| force))target[prop]=source[prop];return req}function makeError(id,msg,err){var e=new Error(msg+"\nhttp://requirejs.org/docs/errors.html#"+id);if(err)e.originalError=err;return e}function configurePackageDir(pkgs,currentPackages,dir){var i,location,pkgObj;for(i=0;pkgObj=currentPackages[i];i++){pkgObj=typeof pkgObj==="string"?{name:pkgObj}:pkgObj;location=pkgObj.location;if(dir&&(!location||location.indexOf("/")!==0&&location.indexOf(":")===-1))location=dir+"/"+(location||pkgObj.name);pkgs[pkgObj.name]= {name:pkgObj.name,location:location||pkgObj.name,main:(pkgObj.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}}}if(typeof define!=="undefined")return;if(typeof requirejs!=="undefined")if(isFunction(requirejs))return;else{cfg=requirejs;requirejs=undefined}if(typeof require!=="undefined"&&!isFunction(require)){cfg=require;require=undefined}function newContext(contextName){var context,resume,config={waitSeconds:7,baseUrl:s.baseUrl||"./",paths:{},pkgs:{}},defQueue=[],specified={"require":true, "exports":true,"module":true},urlMap={},defined={},loaded={},waiting={},waitAry=[],waitIdCounter=0,managerCallbacks={},plugins={},pluginsQueue={},resumeDepth=0,normalizedWaiting={};function trimDots(ary){var i,part;for(i=0;part=ary[i];i++)if(part==="."){ary.splice(i,1);i-=1}else if(part==="..")if(i===1&&(ary[2]===".."||ary[0]===".."))break;else if(i>0){ary.splice(i-1,2);i-=2}}function normalize(name,baseName){var pkgName,pkgConfig;if(name.charAt(0)===".")if(baseName){if(config.pkgs[baseName])baseName= [baseName];else{baseName=baseName.split("/");baseName=baseName.slice(0,baseName.length-1)}name=baseName.concat(name.split("/"));trimDots(name);pkgConfig=config.pkgs[pkgName=name[0]];name=name.join("/");if(pkgConfig&&name===pkgName+"/"+pkgConfig.main)name=pkgName}return name}function makeModuleMap(name,parentModuleMap){var index=name?name.indexOf("!"):-1,prefix=null,parentName=parentModuleMap?parentModuleMap.name:null,originalName=name,normalizedName,url,pluginModule;if(index!==-1){prefix=name.substring(0, index);name=name.substring(index+1,name.length)}if(prefix)prefix=normalize(prefix,parentName);if(name){if(prefix){pluginModule=defined[prefix];if(pluginModule)if(pluginModule.normalize)normalizedName=pluginModule.normalize(name,function(name){return normalize(name,parentName)});else normalizedName=normalize(name,parentName);else normalizedName="__$p"+parentName+"@"+name}else normalizedName=normalize(name,parentName);url=urlMap[normalizedName];if(!url){if(req.toModuleUrl)url=req.toModuleUrl(context, normalizedName,parentModuleMap);else url=context.nameToUrl(normalizedName,null,parentModuleMap);urlMap[normalizedName]=url}}return{prefix:prefix,name:normalizedName,parentMap:parentModuleMap,url:url,originalName:originalName,fullName:prefix?prefix+"!"+normalizedName:normalizedName}}function isPriorityDone(){var priorityDone=true,priorityWait=config.priorityWait,priorityName,i;if(priorityWait){for(i=0;priorityName=priorityWait[i];i++)if(!loaded[priorityName]){priorityDone=false;break}if(priorityDone)delete config.priorityWait}return priorityDone} function makeSetExports(moduleObj){return function(exports){moduleObj.exports=exports}}function makeContextModuleFunc(func,relModuleMap,enableBuildCallback){return function(){var args=[].concat(aps.call(arguments,0)),lastArg;if(enableBuildCallback&&isFunction(lastArg=args[args.length-1]))lastArg.__requireJsBuild=true;args.push(relModuleMap);return func.apply(null,args)}}function makeRequire(relModuleMap,enableBuildCallback){var modRequire=makeContextModuleFunc(context.require,relModuleMap,enableBuildCallback); mixin(modRequire,{nameToUrl:makeContextModuleFunc(context.nameToUrl,relModuleMap),toUrl:makeContextModuleFunc(context.toUrl,relModuleMap),defined:makeContextModuleFunc(context.requireDefined,relModuleMap),specified:makeContextModuleFunc(context.requireSpecified,relModuleMap),ready:req.ready,isBrowser:req.isBrowser});if(req.paths)modRequire.paths=req.paths;return modRequire}function updateNormalizedNames(pluginName){var oldFullName,oldModuleMap,moduleMap,fullName,callbacks,i,j,k,depArray,existingCallbacks, maps=normalizedWaiting[pluginName];if(maps)for(i=0;oldModuleMap=maps[i];i++){oldFullName=oldModuleMap.fullName;moduleMap=makeModuleMap(oldModuleMap.originalName,oldModuleMap.parentMap);fullName=moduleMap.fullName;callbacks=managerCallbacks[oldFullName]||[];existingCallbacks=managerCallbacks[fullName];if(fullName!==oldFullName){if(oldFullName in specified){delete specified[oldFullName];specified[fullName]=true}if(existingCallbacks)managerCallbacks[fullName]=existingCallbacks.concat(callbacks);else managerCallbacks[fullName]= callbacks;delete managerCallbacks[oldFullName];for(j=0;j0)return undefined;if(config.priorityWait)if(isPriorityDone())resume();else return undefined;for(prop in loaded)if(!(prop in empty)){hasLoadedProp=true;if(!loaded[prop])if(expired)noLoads+=prop+" ";else{stillLoading=true;break}}if(!hasLoadedProp&&!context.waitCount)return undefined;if(expired&&noLoads){err=makeError("timeout","Load timeout for modules: "+noLoads);err.requireType="timeout";err.requireModules=noLoads;return req.onError(err)}if(stillLoading|| context.scriptCount){if((isBrowser||isWebWorker)&&!checkLoadedTimeoutId)checkLoadedTimeoutId=setTimeout(function(){checkLoadedTimeoutId=0;checkLoaded()},50);return undefined}if(context.waitCount){for(i=0;manager=waitAry[i];i++)forceExec(manager,{});if(checkLoadedDepth<5){checkLoadedDepth+=1;checkLoaded()}}checkLoadedDepth=0;req.checkReadyState();return undefined}function callPlugin(pluginName,dep){var name=dep.name,fullName=dep.fullName,load;if(fullName in defined||fullName in loaded)return;if(!plugins[pluginName])plugins[pluginName]= defined[pluginName];if(!loaded[fullName])loaded[fullName]=false;load=function(ret){if(req.onPluginLoad)req.onPluginLoad(context,pluginName,name,ret);execManager({prefix:dep.prefix,name:dep.name,fullName:dep.fullName,callback:function(){return ret}});loaded[fullName]=true};load.fromText=function(moduleName,text){var hasInteractive=useInteractive;context.loaded[moduleName]=false;context.scriptCount+=1;if(hasInteractive)useInteractive=false;req.exec(text);if(hasInteractive)useInteractive=true;context.completeLoad(moduleName)}; plugins[pluginName].load(name,makeRequire(dep.parentMap,true),load,config)}function loadPaused(dep){if(dep.prefix&&dep.name.indexOf("__$p")===0&&defined[dep.prefix])dep=makeModuleMap(dep.originalName,dep.parentMap);var pluginName=dep.prefix,fullName=dep.fullName,urlFetched=context.urlFetched;if(specified[fullName]||loaded[fullName])return;else specified[fullName]=true;if(pluginName)if(defined[pluginName])callPlugin(pluginName,dep);else{if(!pluginsQueue[pluginName]){pluginsQueue[pluginName]=[];(managerCallbacks[pluginName]|| (managerCallbacks[pluginName]=[])).push({onDep:function(name,value){if(name===pluginName){var i,oldModuleMap,ary=pluginsQueue[pluginName];for(i=0;i0;i--){parentModule=syms.slice(0,i).join("/");if(paths[parentModule]){syms.splice(0,i,paths[parentModule]);break}else if(pkg=pkgs[parentModule]){if(moduleName===pkg.name)pkgPath=pkg.location+"/"+pkg.main;else pkgPath=pkg.location;syms.splice(0,i,pkgPath);break}}url=syms.join("/")+(ext||".js");url=(url.charAt(0)=== "/"||url.match(/^\w+:/)?"":config.baseUrl)+url}return config.urlArgs?url+((url.indexOf("?")===-1?"?":"&")+config.urlArgs):url}};context.resume=resume;return context}req=requirejs=function(deps,callback){var contextName=defContextName,context,config;if(!isArray(deps)&&typeof deps!=="string"){config=deps;if(isArray(callback)){deps=callback;callback=arguments[2]}else deps=[]}if(config&&config.context)contextName=config.context;context=contexts[contextName]||(contexts[contextName]=newContext(contextName)); if(config)context.configure(config);return context.require(deps,callback)};if(typeof require==="undefined")require=req;req.toUrl=function(moduleNamePlusExt){return contexts[defContextName].toUrl(moduleNamePlusExt)};req.version=version;req.isArray=isArray;req.isFunction=isFunction;req.mixin=mixin;req.jsExtRegExp=/^\/|:|\?|\.js$/;s=req.s={contexts:contexts,skipAsync:{},isPageLoaded:!isBrowser,readyCalls:[]};req.isAsync=req.isBrowser=isBrowser;if(isBrowser)head=s.head=document.getElementsByTagName("head")[0]; req.onError=function(err){throw err;};req.load=function(context,moduleName,url){var loaded=context.loaded;isDone=false;if(!loaded[moduleName])loaded[moduleName]=false;context.scriptCount+=1;req.attach(url,context,moduleName)};function getInteractiveScript(){var scripts,i,script;if(interactiveScript&&interactiveScript.readyState==="interactive")return interactiveScript;scripts=document.getElementsByTagName("script");for(i=scripts.length-1;i>-1&&(script=scripts[i]);i--)if(script.readyState==="interactive")return interactiveScript= script;return null}define=req.def=function(name,deps,callback){var node,context;if(typeof name!=="string"){callback=deps;deps=name;name=null}if(!req.isArray(deps)){callback=deps;deps=[]}if(!name&&!deps.length&&req.isFunction(callback))if(callback.length){callback.toString().replace(commentRegExp,"").replace(cjsRequireRegExp,function(match,dep){deps.push(dep)});deps=(callback.length===1?["require"]:["require","exports","module"]).concat(deps)}if(useInteractive){node=currentlyAddingScript||getInteractiveScript(); if(!node)return req.onError(makeError("interactive","No matching script interactive for "+callback));if(!name)name=node.getAttribute("data-requiremodule");context=contexts[node.getAttribute("data-requirecontext")]}(context?context.defQueue:globalDefQueue).push([name,deps,callback]);return undefined};define.amd={multiversion:true,plugins:true};req.exec=function(text){return eval(text)};req.execCb=function(name,callback,args,exports){return callback.apply(exports,args)};req.onScriptLoad=function(evt){var node= evt.currentTarget||evt.srcElement,contextName,moduleName,context;if(evt.type==="load"||readyRegExp.test(node.readyState)){interactiveScript=null;contextName=node.getAttribute("data-requirecontext");moduleName=node.getAttribute("data-requiremodule");context=contexts[contextName];contexts[contextName].completeLoad(moduleName);node.removeEventListener("load",req.onScriptLoad,false)}};req.attach=function(url,context,moduleName,callback,type){var node,loaded;if(isBrowser){callback=callback||req.onScriptLoad; node=context&&context.config&&context.config.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");node.type=type||"text/javascript";node.charset="utf-8";node.async=!s.skipAsync[url];if(context)node.setAttribute("data-requirecontext",context.contextName);node.setAttribute("data-requiremodule",moduleName);node.addEventListener("load",callback,false);node.src=url;currentlyAddingScript=node;head.appendChild(node);currentlyAddingScript=null;return node}else if(isWebWorker){loaded= context.loaded;loaded[moduleName]=false;importScripts(url);context.completeLoad(moduleName)}return null};if(isBrowser){scripts=document.getElementsByTagName("script");for(i=scripts.length-1;i>-1&&(script=scripts[i]);i--){if(!head)head=script.parentNode;if(dataMain=script.getAttribute("data-main")){if(!cfg.baseUrl){src=dataMain.split("/");mainScript=src.pop();subPath=src.length?src.join("/")+"/":"./";cfg.baseUrl=subPath;dataMain=mainScript.replace(jsSuffixRegExp,"")}cfg.deps=cfg.deps?cfg.deps.concat(dataMain): [dataMain];break}}}s.baseUrl=cfg.baseUrl;req.pageLoaded=function(){if(!s.isPageLoaded){s.isPageLoaded=true;if(scrollIntervalId)clearInterval(scrollIntervalId);req.callReady()}};req.checkReadyState=function(){var contexts=s.contexts,prop;for(prop in contexts)if(!(prop in empty))if(contexts[prop].waitCount)return;s.isDone=true;req.callReady()};req.callReady=function(){var callbacks=s.readyCalls,i,callback,contexts,context,prop;if(s.isPageLoaded&&s.isDone)if(callbacks.length){s.readyCalls=[];for(i=0;callback= callbacks[i];i++)callback()}};req.ready=function(callback){if(s.isPageLoaded&&s.isDone)callback();else s.readyCalls.push(callback);return req};if(isBrowser){if(document.addEventListener){document.addEventListener("DOMContentLoaded",req.pageLoaded,false);window.addEventListener("load",req.pageLoaded,false)}else if(window.attachEvent){window.attachEvent("onload",req.pageLoaded);if(self===self.top)scrollIntervalId=setInterval(function(){try{if(document.body){document.documentElement.doScroll("left"); req.pageLoaded()}}catch(e){}},30)}if(document.readyState==="complete")req.pageLoaded()}req(cfg);if(req.isAsync&&typeof setTimeout!=="undefined"){ctx=s.contexts[cfg.context||defContextName];ctx.requireWait=true;setTimeout(function(){ctx.requireWait=false;ctx.takeGlobalQueue();if(!ctx.scriptCount)ctx.resume();req.checkReadyState()},0)}})();var qa=typeof Object.defineProperties=="function"?Object.defineProperty:function(a,m,h){if(a==Array.prototype||a==Object.prototype)return a;a[m]=h.value;return a};function ra(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var m=0;m0;){var d=this.uU[0];this.uU=this.uU.slice(1);this.R4.push(d);this.$_a(d)}};h.prototype.PAa=function(d){var f=document.createElement("a");f.href=d;return f.href};h.prototype.x2a=function(){var d=document.currentScript;d||(d=document.getElementsByTagName("head")[0].getElementsByTagName("script"),d=d[d.length-1]);return this.PAa(d.src)};h.prototype.$_a=function(d){var f=this,l=d.tr.get(m.SELECTED_SCRIPT_URL); setTimeout(function(){var p=document.createElement("script");p.type="text/javascript";p.src=l;document.getElementsByTagName("head")[0].appendChild(p);f.J_.Xmb(d)},1)};h.prototype.defineScript=function(d){for(var f=[],l=this.x2a(),p=0;p0){for(var f=0;f|=|<=|>=)\s*(\d+)\s*x\s*(\d+)\s*$/)){d=parseInt(f[2]);var l=parseInt(f[3]);switch(f[1]){case "<":var p=function(q,r){return q":p=function(q,r){return q>r};break;case "=":p=function(q,r){return q==r};break;case "<=":p=function(q, r){return q<=r};break;case ">=":p=function(q,r){return q>=r}}return p(screen.width,d)&&p(screen.height,l)||this.mobile&&p(screen.width,l)&&p(screen.height,d)}return!1}if(n(d)){for(f=0;f1?h.prototype.s_:h.prototype.Yba:k("linux")||k("x11")?h.prototype.fua:h.prototype.Zba;h.prototype.browser=h.prototype.Yb=k("ipad")||k("iphone")||k("ipod")||k("macintosh")&&navigator.maxTouchPoints>1?h.prototype.sj:k("opera")?h.prototype.TZ:k("edge")?h.prototype.NK:k("chrome")||k("crmo")?h.prototype.Pp:k("safari")?h.prototype.Nk:k("trident")||k("msie")?h.prototype.qF:!k("compatible")&& k("mozilla")?h.prototype.ox:k("android")?h.prototype.SZ:h.prototype.Haa;h.prototype.browserType=h.prototype.AO=h.prototype.Yb==h.prototype.sj||h.prototype.Yb==h.prototype.Pp||h.prototype.Yb==h.prototype.SZ||h.prototype.Yb==h.prototype.Nk||k("webkit")?h.prototype.CQ:h.prototype.Yb==h.prototype.TZ||k("opera")?h.prototype.Maa:k("trident")||k("msie")?h.prototype.Laa:!k("compatible")&&k("mozilla")?h.prototype.Kaa:h.prototype.Naa;h.prototype.browserSubtype=h.prototype.xc=window.location.hash&&window.location.hash.indexOf("xrapp")>= 0?h.prototype.tu:window.location.hash&&window.location.hash.indexOf("vrapp")>=0?h.prototype.su:k("picobrowser")?h.prototype.ru:k("oculusbrowser")?h.prototype.qx:k("xiaomi")||k("miui")?h.prototype.Iaa:k("samsungbrowser")&&k("android")?k("mobile vr")?h.prototype.WZ:h.prototype.VZ:k("ipad")||k("iphone")||k("ipod")?k("crios")?h.prototype.OK:k("fban")||k("fbav")?h.prototype.UZ:k("safari")&&k("version")&&!navigator.standalone?h.prototype.AQ:h.prototype.BQ:k("electron")?h.prototype.zB:k("chrome")&&k("wv")? h.prototype.PK:k("edg/")?h.prototype.Zsa:!k("compatible")&&k("mozilla")&&k("mobile vr")?h.prototype.yB:h.prototype.Jaa;h.prototype.browserVersion=h.prototype.NIa=function(){if(h.prototype.Yb==h.prototype.qF){var d=b.match(RegExp("MSIE ([0-9]{1,}[.0-9]{0,})"));if(d!=null)return parseFloat(d[1]);d=b.match(RegExp("Trident/.*rv:([0-9]{1,}[.0-9]{0,})"));if(d!=null)return parseFloat(d[1])}return h.prototype.Oaa}();h.prototype.device=h.prototype.wk=k("ipad")||k("macintosh")&&navigator.maxTouchPoints>1?h.prototype.FQ: k("iphone")?h.prototype.$Z:k("ipod")?h.prototype.Saa:g("picog2")?h.prototype.a_:g("piconeo2")?h.prototype.b_:g("piconeo3")?h.prototype.UK:g("vivefocus")?h.prototype.c_:g("oculusquest3")?h.prototype.GQ:g("oculusquest2")?h.prototype.TK:g("oculusquest")?h.prototype.TK:h.prototype.xc==h.prototype.ru&&k("pico 4 ultra")?h.prototype.IQ:h.prototype.xc==h.prototype.tu&&k("picoa9210")?h.prototype.IQ:h.prototype.xc==h.prototype.ru&&k("pico 4")?h.prototype.HQ:h.prototype.xc==h.prototype.tu&&k("picoa8110")?h.prototype.HQ: h.prototype.xc==h.prototype.ru&&k("pico g3")?h.prototype.JQ:h.prototype.xc==h.prototype.tu&&k("picoa7q10")?h.prototype.JQ:h.prototype.xc==h.prototype.tu&&k("pico neo 3")?h.prototype.UK:h.prototype.xc==h.prototype.ru&&k("pico neo 3")?h.prototype.UK:h.prototype.xc==h.prototype.qx&&(k("quest 3")||k("quest pro"))?h.prototype.GQ:h.prototype.xc==h.prototype.qx&&k("quest 2")?h.prototype.TK:h.prototype.Taa;a:{switch(h.prototype.Nd){case h.prototype.Xba:case h.prototype.s_:case h.prototype.aca:case h.prototype.$ba:var c= !0;break a}c=!1}h.prototype.mobile=h.prototype.mobile=c;e.PlayerAPI=e.qb=new h;m.prototype.append=m.prototype.append=function(d,f,l){d==m.SCRIPT_URL&&(typeof l=="undefined"&&(l=f,f="default"),f=[f,l]);n(this.yj[d])||(this.yj[d]=[]);this.yj[d].push(f)};m.prototype.set=m.prototype.set=function(d,f){this.yj[d]=f};m.prototype.get=m.prototype.get=function(d){return this.yj[d]};m.SCRIPT_URL=m.SCRIPT_URL="ScriptURL";m.SCRIPT_DATA=m.SCRIPT_DATA="ScriptData";m.FLASH_EXPRESS_INSTALLER_URL=m.FLASH_EXPRESS_INSTALLER_URL= "FlashExpressInstallerURL";m.FLASH_AUDIO_PLAYER_URL=m.FLASH_AUDIO_PLAYER_URL="FlashAudioPlayerURL";m.FLASH_VIDEO_PLAYER_URL=m.FLASH_VIDEO_PLAYER_URL="FlashVideoPlayerURL";m.FLASH_PANORAMA_PLAYER_URL=m.FLASH_PANORAMA_PLAYER_URL="FlashPanoramaPlayerURL";m.GS_URL=m.GS_URL="GSURL";m.THREE_JS_WEBGL_URL=m.THREE_JS_WEBGL_URL="ThreeJSWebGLURL";m.WEBVR_POLYFILL_URL=m.WEBVR_POLYFILL_URL="WebVRPolyfillURL";m.WEBXR_POLYFILL_URL=m.WEBXR_POLYFILL_URL="WebXRPolyfillURL";m.WEBXR_INPUT_PROFILES_DIR_URL=m.YB="WebXRInputProfilesDirURL"; m.CAPTURA_VIEWER_URL=m.CAPTURA_VIEWER_URL="CapturaViewerURL";m.DASH_URL=m.DASH_URL="DashURL";m.HLS_URL=m.HLS_URL="HlsURL";m.BASIS_URL=m.Gaa="BasisURL";m.DRACO_URL=m.Xaa="DRACOURL";m.CONTAINER=m.CONTAINER="Container";m.SELECTED_SCRIPT_URL=m.SELECTED_SCRIPT_URL="SelectedScriptURL";m.BASE_DIR_URL=m.BASE_DIR_URL="BaseDirURL";m.QUERY_STRING_PARAMETERS=m.QUERY_STRING_PARAMETERS="QueryStringParameters";m.CURSORS_DIR_URL=m.CURSORS_DIR_URL="CursorsDirURL";m.BACKGROUND_PRELOAD_ENABLED=m.BACKGROUND_PRELOAD_ENABLED= "BackgroundPreloadEnabled";m.ACTIVE_VIDEO_ELEMENT=m.ACTIVE_VIDEO_ELEMENT="ActiveVideoElement";m.SERVICE_WORKER_URL=m.SERVICE_WORKER_URL="ServiceWorkerURL";m.PINCH_TO_ZOOM_ENABLED=m.IVa="PinchToZoomEnabled";m.DOWNLOAD_DISABLED=m.d_="DownloadDisabled";e.PlayerSettings=e.PlayerSettings=m;e.PlayerEvent=e.w_=function(d,f,l,p){this.name=d;this.data=this.originalEvent=f;this.sourceClassName=l[l.length-1];this.sourceClassPath=l;this.sourceId=p};a.prototype.ilb=function(d){this.xv=d};a.prototype["delete"]= function(){this.xv&&(this.xv.clear(),this.xv=null)};a.prototype.getById=a.prototype.ZD=function(d){return this.xv?this.xv.Qfb(d):null};a.prototype.getByClassName=a.prototype.Ci=function(d){return this.xv?this.xv.Ci(d):[]};a.prototype.createInstance=a.prototype.Ai=function(d){return this.xv.Ai(d)};a.prototype.disposeInstance=a.prototype.iw=function(d){return this.xv.iw(d)};a.prototype.bind=a.prototype.bind=function(d,f,l,p){var q=d.split(":");d=q[0];q=q.length>1?q[1]:"*";this.bd[d]=this.bd[d]||{}; this.bd[d][q]=this.bd[d][q]||[];this.bd[d][q].push({handler:f,context:l,immediate:p});return this};a.prototype.unbind=a.prototype.h=function(d,f,l,p){var q=d.split(":");d=q[0];q=q.length>1?q[1]:"*";if(d in this.bd&&q in this.bd[d]){for(var r=[],t=this.bd[d][q],u=0;uq?(v&&(clearTimeout(v),v=null),z=A,x=p.apply(w,y),v||(w=y=null)):v||r.qqb===!1||(v=setTimeout(u,D));return x}function u(){z=r.Nhb===!1?0:Date.now();v=null;x=p.apply(w,y);v||(w=y=null)}var v,w,y,x,z=0;r||(r={});t.cancel= function(){v&&clearTimeout(v);z=0;v=w=y=null};return t},voa:function(p,q,r){var t=new XMLHttpRequest;t.responseType="json";t.open("GET",p,!0);t.onload=function(){q(t.response)};t.onerror=function(){r(t.statusText)};t.send(null)},ueb:function(p,q,r){var t=new XMLHttpRequest;t.open("GET",p,!1);t.onreadystatechange=function(){if(t.readyState===4)if(t.status===200){var u=t.responseText,v=document.createElement("script");v.textContent=u;document.head.appendChild(v);document.head.removeChild(v);q(u)}else r(t.statusText)}; t.onerror=function(){r("Network Error")};t.send()},ggb:function(p){var q=document.createElement("script");q.textContent=p;document.head.appendChild(q);document.head.removeChild(q)},offset:function(p){p=p.getBoundingClientRect();return{left:p.left+window.scrollX,top:p.top+window.scrollY}},peb:function(p){document.readyState==="complete"||document.readyState==="interactive"?setTimeout(p,1):document.addEventListener("DOMContentLoaded",p)}}}); define("tdv/constants/EventName",["require","exports"],function(){return{L:function(a){return a+"_change"},De:"default",Sa:"mouseDown",gb:"mouseMove",$a:"mouseUp",Qk:"mouseWheel",ma:"click",fi:"doubleClick",uc:"rollOver",Eb:"rollOut",RF:"mouseEnter",Or:"mouseLeave",Im:"pointerOver",Mob:"pointerOut",Cu:"pointerDown",TB:"pointerUp",Xf:"pointerClick",JUa:"focusIn",KUa:"focusOut",HB:"gestureStart",Mba:"gestureChange",WK:"gestureEnd",UUa:"gestureRotate",XK:"gestureScale",yc:"progress",CB:"close",OPEN:"open", Vr:"select",$b:"resize",ZZ:"changing",V:"change",Pd:"stateChange",Al:"cueChange",VF:"preloaded",ia:"loaded",$c:"loadingError",Vp:"start",Fg:"stop",Fx:"play",gL:"pause",RZ:"beforeFrame",Zd:"frame",vd:"ready",aVa:"instanceCreation",Br:"begin",Tb:"end",yob:"cancel",Rk:"press",Km:"release",Tr:"repeatEnd",Ur:"scroll",Mta:"movementChange",xob:"beforeShow",cUa:"beforeHide",INIT:"init",od:"show",jd:"hide",TQ:"showEnd",ZK:"hideEnd",bVa:"loadingScript",LVa:"processingScript",VK:"enableCookies",$Ta:"applicationSet", bG:"userInteraction",Pua:"userInteractionStart",Oua:"userInteractionEnd",pca:"transitionEnd",cWa:"toolTipShow",Dua:"toolTipHide",Jm:"positionSet",xua:"sizeSet",cta:"controllerConnected",dta:"controllerDisconnected"}});define("tdv/events/Event",["require","exports"],function(){return function(){return function(a,m){m===void 0&&(m=void 0);this.name=a;this.data=m;this.source=void 0}}()}); define("tdv/player/script/definitions",["require"],function(){return[123,34,70,97,100,101,73,110,69,102,102,101,99,116,34,58,32,256,112,114,111,112,101,114,116,105,101,115,270,272,125,44,32,34,112,97,114,101,110,269,271,34,264,266,268,34,286,288,77,111,260,108,51,68,68,105,115,112,108,97,121,298,267,295,272,289,291,293,319,34,66,97,115,101,79,98,106,318,301,287,34,80,104,111,116,111,65,108,98,117,109,80,314,121,76,311,116,73,116,101,109,284,273,275,277,279,281,283,271,256,109,101,100,105,97,357,34, 116,121,277,284,336,338,340,342,344,356,302,289,348,278,371,373,375,296,337,339,341,343,345,347,315,386,125,383,290,292,294,376,396,349,351,353,355,334,288,396,110,101,304,306,308,330,332,300,364,289,359,278,280,282,371,293,99,305,105,110,103,371,260,102,97,117,108,324,115,114,103,98,34,335,388,101,376,293,345,91,108,431,101,291,287,441,443,93,410,34,117,112,89,387,374,448,296,110,345,98,398,335,260,112,116,104,84,282,319,256,435,437,439,284,116,114,117,101,446,467,376,98,111,111,108,461,104,101, 105,103,104,481,372,492,469,471,473,288,119,105,100,477,466,389,288,470,109,472,114,461,463,90,515,468,517,508,521,383,463,88,525,376,518,520,461,99,327,116,83,104,259,111,119,533,296,494,496,461,97,116,116,97,99,478,111,80,322,403,421,483,438,319,436,108,328,491,516,34,548,497,383,110,111,114,109,97,108,532,421,447,534,528,461,574,576,578,465,581,506,527,519,509,34,586,577,108,524,590,569,535,594,115,512,526,482,101,436,563,376,102,275,403,568,526,34,450,109,91,100,111,117,98,108,490,32,612,111, 294,287,98,554,107,460,399,335,401,323,376,69,120,354,114,110,578,415,101,307,68,418,333,383,81,117,259,72,339,312,339,558,586,97,577,79,118,278,348,77,97,112,371,274,276,424,362,357,400,559,324,654,656,658,112,660,97,662,664,666,114,348,73,577,103,101,326,328,461,86,605,111,51,54,48,82,282,622,114,99,606,422,674,361,426,421,115,623,280,116,625,115,85,82,76,546,288,115,487,431,433,335,311,85,690,486,488,101,383,663,98,311,629,105,99,434,608,484,324,574,413,445,288,582,296,618,91,749,626,102,111,97, 635,335,625,666,566,725,34,291,114,315,91,699,260,701,703,705,115,707,709,76,101,765,762,288,103,97,431,745,609,485,271,49,615,583,593,529,335,542,115,65,117,368,111,789,747,735,489,794,547,495,572,678,402,324,773,101,775,704,706,117,708,101,781,765,461,405,632,99,107,326,521,421,673,360,425,363,320,632,114,326,829,103,275,117,110,100,67,496,575,310,292,268,105,629,767,755,338,114,105,122,629,553,108,287,689,280,538,108,784,34,727,101,112,541,543,545,600,616,571,461,328,625,268,367,83,354,874,542, 621,877,320,753,288,880,400,348,499,259,841,107,843,622,846,848,108,575,82,551,854,837,256,893,768,114,770,121,756,528,870,882,318,885,887,87,512,514,878,376,575,918,796,287,360,709,294,870,839,66,575,260,114,908,368,117,911,505,601,584,896,315,898,100,875,890,83,274,455,100,767,602,797,726,887,939,114,941,943,105,945,960,949,335,872,112,900,902,845,847,849,114,851,318,854,110,856,518,91,858,860,862,578,865,675,868,920,648,922,953,887,954,544,79,290,99,105,373,971,796,881,997,884,999,873,965,941, 83,860,710,913,961,1010,883,354,1013,888,876,657,859,861,294,578,781,432,927,892,591,595,972,726,1011,1024,886,1014,633,977,904,980,908,280,111,946,913,769,771,961,870,100,821,909,855,928,507,1009,950,121,952,1001,119,1003,554,1006,121,1008,536,383,974,1068,956,292,259,1074,603,1E3,889,544,86,994,1032,293,103,1035,912,1037,1021,1076,887,1070,1005,1007,1062,592,1075,637,897,958,1015,278,968,970,1101,1038,1064,1104,951,958,1068,905,575,767,429,906,962,871,1041,923,873,1068,66,108,821,1109,1052,1094, 1039,570,291,1107,114,1118,832,1036,569,1121,1119,1065,1067,1085,119,1087,361,868,1033,1091,104,1082,1123,921,1012,1043,975,940,278,1140,1120,980,881,1084,1027,575,990,1031,108,1153,1092,947,616,1095,335,839,1098,1072,1156,461,313,1115,259,1068,1028,1171,863,1174,1155,1111,1178,963,873,925,513,1193,1142,616,930,961,933,278,935,116,870,1185,1066,1106,1162,1139,1166,1111,1144,1123,1210,952,1198,1175,913,1203,528,1205,822,936,461,938,1213,1017,122,1019,1134,1113,894,1137,1045,844,1047,1122,1049,910, 767,1054,917,1056,1184,1105,899,1231,1018,1183,1076,1125,1025,1254,973,1168,890,1164,1216,1166,1255,1023,1126,975,1239,903,979,1122,767,930,1246,91,1217,93,287,1277,1229,1238,842,1240,1271,1119,1111,1274,915,771,1277,1279,980,920,964,1269,978,1262,1201,929,114,91,1275,1291,32,1280,1146,1116,1148,767,895,1114,1211,656,500,502,504,1223,1301,1204,32,934,323,1294,1044,1283,1270,1140,1243,1051,1245,1289,1247,919,1167,873,72,1315,503,1273,1319,1225,1321,1206,1323,1022,998,1160,1138,1132,1258,1040,1266, 1025,976,1284,1140,982,853,1061,1299,754,987,989,1030,863,993,1151,578,1324,1026,890,1129,1131,259,969,1133,948,1236,871,1260,1002,1004,1182,1194,1135,1158,1042,1381,119,1079,958,1351,384,1186,100,1181,1100,1361,1102,594,1219,1308,876,1373,942,1375,1110,1399,1112,1103,1352,1347,887,1337,501,1339,1287,1341,932,1343,1227,1208,1249,1395,1355,1327,980,1358,1050,985,1111,857,1170,1365,992,32,866,743,1369,1335,1161,966,1163,1215,1409,1217,1441,1138,1232,1234,1378,1411,1124,1353,1160,1117,1445,1093,1143, 1264,1312,952,1426,1297,1458,1176,1300,1302,1332,1276,1293,1292,1122,1370,1377,1177,1386,1256,1456,1148,1150,867,1089,1034,1200,1459,1477,1379,684,604,1430,1393,1387,1267,1397,1073,1385,1064,813,639,296,85,73,848,109,684,413,403,383,816,818,777,779,823,782,648,672,423,713,911,1500,560,288,1511,1513,821,780,1516,572,335,405,350,727,408,356,421,1516,294,946,727,276,371,311,68,608,278,292,959,271,487,489,1096,291,504,1544,1546,915,367,807,737,1179,101,103,788,421,1556,266,1558,1549,32,1551,1561,288, 293,1570,256,1567,1547,1559,1550,736,636,288,638,1523,325,327,329,331,333,637,1519,836,371,366,368,370,1111,77,367,369,1167,551,1451,616,755,1541,112,277,100,457,553,361,432,933,348,729,1612,276,112,729,870,314,472,497,1111,727,859,432,301,1583,34,956,499,292,647,649,651,420,320,834,675,714,320,1447,561,746,610,296,35,265,1652,102,751,1467,296,1447,383,770,944,946,562,791,32,53,809,1400,1123,577,120,1350,1498,1453,475,477,479,727,805,1649,1571,736,1667,570,811,461,109,431,1672,1409,1095,1522,324, 641,643,645,108,1637,417,1590,300,383,692,97,694,412,414,305,648,1699,419,504,1642,1520,1543,693,1605,376,1703,694,1526,822,461,428,430,1630,1647,790,440,442,444,1683,755,453,413,456,32,458,98,635,1692,404,314,413,1698,650,1700,269,653,655,100,657,116,659,116,661,575,663,97,665,667,315,1518,712,1594,364,1741,296,1752,1754,1756,770,688,1761,1073,1749,682,1753,684,1755,686,1757,1773,690,315,1719,695,1588,427,666,1539,371,104,605,1543,115,1545,1568,1548,1560,1076,338,891,1577,1796,1557,1799,1581,1552, 1767,288,696,1589,1711,1655,1713,1765,320,276,1071,1398,607,1728,284,793,752,1235,1674,351,686,709,1393,105,1716,767,1786,1721,1831,1065,828,107,80,1051,1006,984,1476,376,1275,681,100,1771,1758,1760,176,1784,121,827,633,1842,1491,984,870,1438,709,1846,296,1275,1851,577,1842,431,1423,399,383,84,104,471,645,105,1173,351,1789,323,946,555,686,694,1795,1797,1579,1570,1572,1632,1585,324,1503,1505,1507,639,1592,1764,676,421,275,108,108,1853,1535,558,100,368,432,84,1542,1673,594,1006,355,76,97,1625,70,862, 87,1338,1317,1037,755,494,108,1611,32,1928,941,287,453,1316,278,287,49,48,48,287,50,1940,287,51,1944,32,52,1947,53,1947,703,1941,32,55,1947,56,1947,57,1947,596,1440,383,1916,346,259,1910,103,1912,671,1914,1157,1256,1535,1464,1241,907,1060,1864,288,1275,1248,1659,496,1905,689,1535,1918,1625,479,642,1068,1496,1832,354,109,1989,648,1991,540,1481,1088,1173,1090,1222,1827,594,1903,1986,278,1975,1213,781,102,116,1689,1487,795,1453,2009,1906,1996,1138,939,552,111,109,82,1416,2016,1407,1980,1410,594,348, 622,1925,569,755,1862,1436,1364,991,869,461,1965,1349,2030,1298,2018,1657,1461,1412,1012,2012,1443,840,339,340,2028,2030,2017,1656,1668,461,2021,1987,1996,1998,108,2E3,1457,1272,1263,1272,1265,998,1535,1874,1876,787,108,1993,1383,1821,2064,2034,1973,1353,2056,941,1970,2063,1020,1478,2090,2023,1213,2029,1316,2050,2087,1658,335,2067,2011,2098,2057,2100,503,1450,1995,355,1068,1310,1685,1984,1904,2022,355,1976,1285,1141,2051,288,1288,916,1471,1474,1473,575,870,2106,114,2091,278,1970,2112,1972,2046,2069, 1919,1999,101,1992,1148,1994,2140,1964,1996,1908,1968,2110,2038,1488,1453,1494,100,2079,1875,519,1877,2083,2002,1368,2004,1485,1393,2134,2136,114,1970,2014,2031,1661,2169,1985,2120,109,2122,1405,1679,1664,1954,2087,1195,1454,2078,2142,1990,2145,2001,876,2148,1690,1135,2170,2108,941,2174,2102,913,2104,2054,1024,1907,1967,729,2174,2113,2180,1213,2138,1253,2149,731,2023,1296,1977,2124,2087,2127,1290,1472,1305,1293,2141,2121,1213,2025,2060,2202,1037,2204,2188,2055,2199,2137,276,2154,2094,2007,1123,2047, 2219,100,2182,1727,806,271,2185,2095,1379,2047,2013,608,116,2233,1460,2076,2217,355,2080,2162,2082,669,120,1415,1316,1493,99,2009,831,2195,2125,2088,881,2272,1985,831,1221,1486,2186,2096,2189,355,2152,729,2231,2027,2211,2024,2059,2027,2139,2196,1379,2158,1975,2246,1357,105,852,1492,1432,1363,1434,2044,1367,1483,2045,1065,1533,2155,1742,315,2314,2228,109,2264,98,2163,2269,1417,2297,1453,1965,2321,2163,1188,2308,1172,1192,2177,2119,2068,2229,2057,2174,2296,2276,2187,2255,2109,2030,2341,2284,2298,1974, 2238,942,2346,2215,2326,1915,2151,2208,432,2290,1536,2355,2089,2286,2320,2161,2322,2082,1138,2259,616,2235,2344,967,2062,2032,1493,2350,2338,941,2370,376,2372,2190,2144,2146,1169,1029,2044,2334,2216,2205,367,2160,2081,1878,1078,957,1081,2391,34,2198,2379,278,2347,2253,2157,2378,2180,2246,2275,2348,2327,2351,2360,2242,1452,2356,1917,2143,108,1858,1844,1360,2276,1733,2257,287,340,112,287,859,1316,631,2294,109,996,2097,2263,2366,2330,1148,1189,1435,2167,1154,2377,2438,109,2411,2406,603,2408,2293,2026, 109,2381,2052,2261,288,2373,2239,112,2457,288,2235,2402,2365,2395,2164,876,2116,549,2150,355,1482,1439,108,342,501,1431,1409,1927,2435,287,1687,1909,625,2428,276,2133,2178,2337,2212,2057,2360,2405,2243,2278,2273,291,2443,2044,669,442,1565,2362,2319,2329,2082,2115,1111,1311,2392,2159,2218,1326,978,2248,320,1663,319,2252,2498,2474,2409,2517,846,2450,2524,973,2408,2070,1921,294,2497,569,1224,1420,604,1233,460,731,115,2296,1891,2105,2492,2107,2439,2469,2529,2417,1123,2467,2070,2072,2442,2332,1191,2005, 2283,2451,1123,1793,260,83,2279,1904,66,117,2026,110,2033,2513,34,2461,2172,276,2174,2416,2156,2418,1997,2420,70,845,1359,2481,2276,42,2508,2440,2368,1252,1233,2447,2364,2509,1878,2552,2582,2244,2384,2071,2192,2073,1286,1446,2053,2401,2548,2135,2604,2534,2258,1466,2203,2610,2041,2478,1935,2589,2087,2483,2455,2485,512,100,2488,1571,2490,1346,2237,2403,2578,112,2580,2376,2400,2577,2464,34,2383,2419,1625,2502,1172,2479,103,2623,913,755,1207,1937,32,625,2015,2431,2030,870,2328,2593,1878,1349,2639,2507, 2525,2070,71,670,2271,2500,114,699,604,624,1717,1362,451,2134,287,578,119,315,115,2491,2336,2549,2494,2380,2617,2234,2610,2467,2122,1328,1979,1331,2128,1983,2547,2688,2613,2645,648,2615,1923,2030,986,451,1932,2434,1929,2655,1935,503,2655,1939,1954,1943,1954,1946,1954,1949,1954,1951,1954,1953,287,1956,1954,1958,1954,1960,1954,1962,2312,2702,2010,2704,2526,901,1356,1428,2303,983,2424,2624,2307,2388,1172,2310,2477,2661,2414,2435,2241,2666,2342,2197,2612,1535,2601,2019,2583,2533,862,886,121,625,2710, 619,1006,578,743,287,2737,2755,2550,2265,2396,2147,2085,1497,2667,2739,2179,2288,2359,2435,2211,2599,1905,2784,2792,2663,108,2282,2597,2634,2468,2781,2470,1261,2692,2260,1145,2787,2493,2665,2176,2400,2299,2357,1909,729,1970,2800,2206,2614,862,2642,2235,344,2572,2567,2009,85,1971,1409,2223,917,930,1812,2570,2572,287,73,429,110,2836,340,110,93,1278,32,2834,1588,2842,629,2838,2840,2850,2844,2437,2364,2511,1409,2575,2245,2527,2123,1329,2033,1982,1334,2525,1138,2340,2354,2760,1379,553,98,262,260,120,1393, 2043,2648,2622,2772,1276,323,2715,2427,32,2432,503,920,2568,108,831,2823,2610,2662,2469,2567,578,1707,260,2883,757,287,102,1878,864,627,1006,95,431,604,260,2905,2910,2037,2913,758,2910,340,95,511,1199,2915,116,95,2921,499,2660,2633,2820,2635,2496,2871,2412,2452,2448,2869,2257,2895,2459,2576,2351,2093,2375,2812,2786,288,2467,2858,2276,2860,2351,2581,2765,2554,2762,1996,2793,1128,1130,1406,2947,2872,2407,2938,2230,2435,2638,2964,2936,2957,2703,2171,2360,2941,2808,2460,2944,2240,2759,2972,2319,2556, 2192,1545,429,770,2305,2482,987,978,667,454,287,111,689,1734,626,2999,45,477,844,502,2777,629,101,937,2571,2843,2827,1985,2154,1340,1469,2128,2848,328,2854,2852,629,2854,2845,2996,1301,2835,3010,2851,32,2839,3022,3028,2855,461,786,2830,2965,2008,2958,2287,2358,103,2210,2400,2555,2420,2557,876,2476,1152,2561,2819,2393,2959,2797,1449,2935,2563,2499,2280,291,2504,1564,2651,2530,2949,3040,2584,1920,2768,373,2771,2306,451,2774,453,99,3006,587,2738,2979,2780,2367,2782,3049,2003,2390,2948,2236,2932,3069, 2385,2193,1372,2962,2955,1063,2413,355,647,2183,748,575,597,1655,2652,987,2737,2428,2797,45,629,108,121,1934,2420,3112,110,3114,2779,2742,1046,2123,1429,984,2883,2880,1366,1437,2003,3121,2960,1148,2977,2363,2801,2985,2386,890,2647,2560,2168,2813,2453,2301,2806,1202,1301,1303,2225,1306,2262,2802,3084,2893,1213,3135,2066,3068,1138,1970,3158,2118,2740,2171,2093,2982,3059,3164,2179,2048,1316,3097,2065,1076,2892,831,3050,646,291,3064,2335,3165,2815,2153,2709,3144,2967,2339,2257,3174,2277,3170,2493,3133, 876,1391,2399,3089,2467,2793,3057,2596,3045,3068,3138,3094,544,1405,3192,2187,2814,2635,3211,2761,2974,3055,2898,2783,1820,2785,3038,2603,2705,108,2615,2536,3148,931,520,457,1018,2542,2460,2544,2354,2546,3067,3217,2933,2757,3168,3066,2943,355,2764,3098,3039,3240,3154,2163,2369,3147,2382,2610,3213,2690,278,2870,3204,3089,2897,2803,2267,2799,3188,2364,3172,503,3215,2254,2351,3228,2956,537,862,323,1070,113,489,2472,1530,2514,1988,2585,1922,1924,2883,2712,1931,496,1933,2656,2030,2718,1947,2721,1945,1947, 2725,287,2727,287,2729,1955,1957,1959,1961,3104,1963,3153,2767,294,258,1687,3114,767,1628,729,3159,3250,3269,2616,2074,2609,2942,1965,3207,2961,1374,2971,3169,1179,3033,3012,1904,3044,2831,3149,1470,3018,695,3033,3021,2841,3033,3024,2847,3026,2849,3344,3030,2853,3347,2856,2801,3161,276,3274,3248,3136,3091,3358,2463,3254,2458,2978,3090,3054,3225,3048,2805,3325,2276,2466,3068,3196,3140,2559,1484,2446,3267,3137,3286,2535,3072,2678,1574,987,3076,2776,32,2778,2931,3370,3092,2605,642,2987,1757,2990,2425, 2992,846,2994,413,2996,2998,2995,3294,413,3002,104,3004,104,3006,413,3356,3091,2789,103,3014,3383,3091,3378,544,3282,3395,2515,3083,2441,1404,3096,3243,2553,2984,3385,3324,2608,3375,2896,1996,3141,578,2649,3065,2039,987,2654,114,1934,2887,2889,1871,2809,2689,3207,3400,2989,3126,3074,619,2993,690,3410,2997,3406,3E3,454,3413,3415,3417,3008,3321,3184,3225,3227,3058,1037,2538,3231,1737,3233,1655,311,2545,1582,3334,2826,2892,68,544,3447,3229,1275,3342,3020,3353,3032,2572,3348,3497,3352,3031,3346,3501, 3121,3421,3338,3223,2319,2454,2060,2970,1376,3053,3430,3397,3372,1086,3087,3052,3205,3250,3426,1149,3522,3143,3262,3218,2803,2397,1080,1576,2983,2868,2256,2015,3271,2020,3377,2797,2607,2221,2618,2942,2695,2410,2795,3424,3396,3513,2027,3540,3249,3476,3258,2058,2455,3515,1408,3511,2525,3526,3210,3435,2602,3475,3171,2213,2240,2946,3516,3551,3518,3203,3388,3193,1632,1867,97,67,663,278,1598,1641,1593,1901,285,637,679,376,82,339,1060,1696,3583,366,770,826,378,557,348,2318,833,3588,1644,1577,1996,2865,1470, 391,340,1532,407,1996,1740,3591,814,2316,406,1678,383,848,111,107,362,1842,3077,3222,711,835,3589,256,821,1626,1409,3319,1630,2543,733,3637,3238,34,694,111,843,670,1793,99,65,1080,3015,1275,3639,103,2846,3656,3618,1584,3592,296,1812,1639,1748,335,1769,1779,3581,1853,691,1834,3606,1900,3608,1810,34,3668,685,687,1759,2998,1785,1716,1812,826,1781,1772,97,1869,1523,358,3675,946,121,97,1803,3536,637,1006,555,1254,3677,3664,1747,461,669,112,3615,1534,1996,1763,3633,3608,34,1596,1602,1599,2671,1065,386, 3719,3709,385,529,3677,3710,352,3712,1510,700,67,3281,1537,1790,1753,371,472,3182,1566,1805,1798,1580,1681,1552,335,1575,1887,1806,3744,1891,3704,1588,3665,1815,3607,946,1575,84,1833,3578,3212,1613,116,3760,366,3703,3731,101,119,278,3652,455,3713,1643,1540,717,1006,720,3520,119,3163,1312,1840,831,2181,2962,3102,284,2523,3436,383,109,1708,2071,557,3688,1758,84,770,115,314,1430,68,1059,3402,34,2521,1824,3303,1826,3792,3784,633,831,2324,2315,296,3481,2655,1322,1228,1076,3778,719,282,3544,1165,2942,487, 686,1859,629,3101,3462,91,2677,846,1618,627,259,101,95,2037,95,436,260,2911,2844,461,118,114,2670,1233,3691,643,72,605,3766,3762,1135,673,843,282,115,2122,3247,3175,474,741,108,666,3800,3832,2423,110,3805,3460,2748,3333,1584,275,3864,115,3866,2595,3861,1379,2825,2843,777,3764,3654,3341,3350,3019,3504,3354,3507,3025,91,3027,2837,3499,3506,2843,2845,1424,121,3785,291,80,3883,292,3885,3868,3193,1899,3884,3866,1282,2743,1427,3374,2222,3340,2128,1304,3152,726,3825,720,2360,3015,1320,3822,3455,1584,348, 3911,114,350,666,68,770,103,3064,433,2512,2117,3814,829,831,3594,2703,310,312,348,3428,383,3852,2321,727,743,107,3594,553,1430,1160,3789,2251,1683,2187,2906,114,727,3874,2573,3876,3878,3596,1393,1210,3941,2696,3366,2126,3927,2224,2130,2226,1474,537,291,100,494,3995,3856,1444,3925,3546,3368,3890,629,405,558,945,3578,2832,91,3503,3904,3505,3023,2846,4012,2843,3345,4015,3909,3941,1337,1187,1148,3566,3332,3244,3984,3815,2501,1106,3146,4001,3480,3989,917,3929,2227,3961,114,3999,114,83,1041,984,2102,3809, 1650,265,54,1953,3106,2693,2942,4029,3953,291,3510,3926,3230,3821,1344,3823,3952,830,3912,3914,3865,3986,1122,3125,3880,1926,2750,1190,1436,2620,3009,2572,1912,3947,625,83,3932,3715,1318,3016,771,4017,3029,4014,3355,3901,3903,4018,3905,4020,383,759,99,945,3773,97,2899,3073,2520,1648,2184,46,1666,3812,3568,3824,114,436,709,705,867,4083,4045,629,4047,4108,324,1651,1653,1654,1683,2235,4056,4066,4041,4068,3885,3577,1493,4085,3886,2057,3360,3869,288,120,942,1985,1393,4004,110,405,3894,3017,3896,3343,4013, 3899,3907,4016,4153,3498,4092,3507,881,821,4116,101,4118,743,625,2411,4048,32,48,46,54,3973,1386,4138,3253,4034,2807,1157,4138,2E3,3459,3982,3836,3464,2999,3408,3468,1934,3470,3003,622,3005,3393,3007,1209,3940,4030,840,4033,850,2746,2588,3127,3380,2908,4078,1229,3335,2429,4151,4089,4159,3898,3500,4157,4094,3351,4155,4218,629,3908,1839,4201,4023,953,1309,3950,2473,4065,3816,1403,3373,3440,2103,2610,368,3958,315,1912,496,280,112,262,4084,4115,554,101,4044,1023,3461,4107,1823,1808,626,2087,2575,4131, 3786,2099,3567,3275,3824,98,718,720,3509,2257,4147,3033,65,82,699,3770,4214,2833,4216,4222,3906,4224,4158,3902,4221,4096,4161,4157,4021,4201,3423,3339,4061,3451,1421,1207,920,4138,2951,4259,3951,1981,97,69,645,2677,3535,4171,1572,1683,4260,4134,115,3817,3935,1342,3937,4199,315,3941,3913,3647,3915,3921,2862,2697,1050,3611,2700,2867,973,4138,4305,1919,625,4308,4124,1560,4311,4302,34,3852,4042,4123,4256,288,4126,1653,4053,4181,4163,4249,4117,101,4119,4251,4121,110,4170,4338,792,4176,1489,4313,4059,4087, 3936,4063,3938,1394,3910,4201,3934,1418,4294,1226,4297,1184,4313,3786,4203,1406,4328,2699,1055,4331,288,4343,111,1870,278,3957,553,110,1831,2249,1680,50,4363,2157,4138,3421,4374,3089,2192,278,1696,1856,4057,3545,1037,4409,4132,4290,4410,4228,2811,3574,3089,4261,4031,259,3266,4293,4368,1422,4319,4372,4416,958,3917,3212,4183,2606,4025,3434,4027,3813,3882,4323,4069,3157,3987,2643,2619,4041,4390,294,278,1853,4345,2250,4347,1940,55,554,744,4129,2610,3863,4324,4418,3562,3699,3939,4320,4373,3549,3221,1393, 4406,644,578,4322,3920,831,767,4475,4462,291,4415,4132,4228,2331,2751,3142,3382,3089,4144,80,3701,2562,3244,3852,1921,666,4186,4255,4453,3791,4113,335,538,966,3997,966,4042,4393,1830,3888,1453,4461,4069,291,4432,3862,4200,4410,4136,2400,4389,4391,4043,4358,3860,3971,32,49,3298,4112,4265,4332,4267,3779,282,3421,2818,2400,4513,4135,4382,2864,4385,1333,796,4428,4321,4380,4263,4438,4502,4466,4429,4132,4424,2276,3820,4295,4318,4482,2274,3550,3089,716,4534,3826,2544,2558,4486,3381,2006,4439,871,4138,2670, 3037,4465,372,622,555,1853,4103,4105,710,4171,1825,4578,3831,2573,3803,984,3978,3833,110,956,101,3744,3563,4503,3995,4506,1850,4448,643,4252,2747,110,3783,3931,4566,3780,4435,2387,4076,2445,4572,4552,711,4476,1137,4550,4419,4599,4610,4268,282,3867,4563,4624,4619,4480,4326,2745,2304,4254,3403,451,3128,4077,3131,4163,4611,282,2615,3315,1878,3631,913,3656,4642,4626,4568,3433,3331,4623,4578,4565,4652,4070,4237,4002,1218,4518,4483,1212,2057,4609,372,770,4590,3596,4593,3980,3806,4636,4578,290,3681,1912, 1637,3874,3802,3596,3981,3807,4586,1940,4501,4532,4625,4535,115,4516,1489,4664,4234,899,4382,4072,3494,449,4075,2444,2753,995,4561,4422,4229,3086,2166,3088,4630,4540,4693,4629,4677,4380,2246,2519,1822,4500,4400,594,4148,86,4275,281,3698,4087,3496,4280,4287,4156,4283,4220,3897,4281,4098,4233,4067,4441,4541,4633,4180,3495,1470,4038,3993,383,4240,4394,4396,4499,1680,4587,3881,4574,4643,4653,890,3179,4616,4493,4573,4658,4692,4762,3446,2883,2429,2627,2487,626,494,2455,4298,4353,4166,4355,4168,101,4452, 1680,34,4348,1652,4350,2371,4239,311,1210,4243,439,105,4246,110,1912,117,555,2827,4597,2573,3960,3919,4480,4202,4744,4204,4635,4073,3448,4638,4208,4705,3311,4440,3920,4292,4557,1419,3482,4560,383,4148,4007,697,4375,4731,4285,4737,4733,4223,2855,4736,4154,4832,4282,3034,4226,4430,1314,3187,4425,4317,4369,937,625,3839,1911,4670,4594,4685,4676,4757,4589,4852,4675,4811,4618,4766,4567,2084,4470,2813,4138,3444,2621,2480,2883,2657,116,1279,2885,4295,3454,870,4856,4591,629,4673,1430,4334,4307,4804,4691,4567, 3781,4694,4512,4664,886,1604,2883,1608,1610,1616,315,3840,290,4008,100,1057,622,2677,67,3077,107,65,4206,4397,1664,4579,4082,3843,102,438,566,2272,4802,4788,4702,451,340,4914,3846,4917,115,4919,293,3473,4298,4759,3421,4819,4677,3798,577,1912,3581,4681,4851,3876,4883,4336,4527,4310,4531,810,4232,4886,720,3478,3261,4820,4376,3483,2541,4379,4742,4325,3923,1465,4745,1468,3150,3991,3930,4631,4514,2058,4667,4444,4130,4696,4708,3533,1392,4865,4759,3781,4762,4712,4717,4960,4404,4955,4426,4378,383,4504,3996, 760,4507,4604,2404,4525,3761,3983,4718,4971,1016,3479,4573,4144,89,3697,4137,4759,2615,4668,4421,114,4417,4542,2698,1111,2866,4546,4707,5013,4666,5002,4954,4677,4975,5021,4024,2194,4716,4757,5012,4479,4442,4972,4964,3367,4182,4980,1913,4844,1420,4823,335,118,4728,3835,2991,451,1736,727,686,100,3995,865,114,4932,4652,2707,3288,3836,3290,1932,2715,3295,4295,2719,1942,1947,2723,287,3301,1665,1952,1947,2731,287,2733,287,2735,3079,597,5057,4692,3227,3387,2883,3391,3078,4197,3080,4547,4373,4443,5036,2465, 1264,383,1538,3737,421,5045,3770,647,67,542,432,710,1578,1569,1800,3677,1895,2027,1897,614,288,366,477,305,946,1210,677,3591,4008,5123,963,5040,123,1659,480,1554,677,1632,3760,4336,1836,820,822,824,1517,3674,3714,946,275,3782,903,3818,4142,4445,108,848,845,5148,3579,3619,1501,288,5137,778,1527,1515,825,383,83,453,260,79,2571,317,1640,3693,5143,387,804,3836,4871,2489,2430,2888,2030,2434,4776,1631,5156,1586,5170,3666,1811,111,120,1745,3755,3735,1882,672,1843,3969,4355,3749,3743,1890,3488,726,1018,4044, 1555,3742,1889,5111,5185,1693,642,4407,646,3795,1710,1591,4440,5173,561,3946,786,2677,88,848,294,1903,115,4783,4912,4126,4688,48,4921,5037,461,2999,4556,3808,4361,4528,4723,1123,4165,5230,4125,4127,4128,4948,5096,2942,1687,110,5239,4757,2999,4360,4346,4756,3244,5253,4315,2400,100,5222,4335,101,89,5226,487,496,5229,1466,4171,4785,1940,265,1940,5235,5251,3368,1675,478,480,4946,1682,5250,1684,4950,3808,5266,2677,90,5270,5228,5246,376,35,5233,265,5280,5150,5282,5292,625,3652,5145,4983,4171,1951,5243, 461,2923,1175,4586,5312,4750,873,5315,5241,5260,4573,5253,1545,476,4764,4618,2999,5297,4049,4127,5302,2235,5265,1704,5223,4083,112,1635,4166,2982,5310,5317,798,5060,4754,1664,5322,4618,1490,3980,5305,4585,5241,565,567,5288,2575,2540,101,3945,5336,5267,4527,5356,4258,913,2575,4165,5258,4722,5288,1691,383,3679,116,3708,3671,315,3708,3775,1714,1766,5211,376,5376,5378,3683,121,1786,3686,383,1745,1837,710,1816,3634,289,5197,984,599,5347,2522,5344,1584,5400,629,580,5403,3790,5405,5399,4594,589,5410,3972, 5373,2761,3968,5401,4527,4689,3361,3159,5420,629,5415,4721,1680,5423,5149,275,5426,4359,2057,4527,34,88,89,524,1732,987,5439,90,287,88,90,89,287,89,5447,5450,90,88,287,5454,5449,32,5448,88,870,3636,3318,728,3640,3235,3642,1800,2547,5434,5409,5429,2184,5412,764,648,1662,5241,91,2846,2087,1275,5394,5138,1528,783,2278,2900,4527,5349,4690,2576,110,866,5402,5473,564,578,5357,4301,5290,431,866,5428,5240,4346,5366,4340,5502,5494,424,5472,5506,4453,5508,5358,4341,4878,3596,5513,4171,5431,3918,752,4851,4879, 110,5505,5522,5412,5519,1430,5496,5514,5430,5317,3677,5484,5160,5139,1529,461,5165,605,262,5187,5382,1817,256,628,2361,4637,619,5177,2631,5179,3454,5182,2060,3660,321,3620,296,5547,383,70,3803,3670,5389,4413,2422,3807,5397,3715,1819,1099,4648,3244,280,366,5051,1506,1393,3696,4729,3244,2009,3983,4492,3703,5385,3663,3754,3706,5566,3803,5376,5569,1774,5391,1788,5194,1791,421,2565,5108,5208,5110,4257,1801,3427,3741,1888,5609,3745,737,3753,328,3755,1899,5220,1818,4716,5316,5418,1379,4751,4510,2271,5489, 4911,319,5491,5424,4840,1841,5407,4803,5017,1470,5567,551,5599,1854,5571,5638,2661,3673,1409,5159,1514,461,111,265,328,116,5513,4757,5654,102,5656,5505,4757,2929,2270,2400,4639,4868,2650,2883,3450,3452,2658,5180,1316,870,5314,5327,5492,1621,116,3702,4521,2003,4769,5061,2484,32,2486,2629,626,2429,2891,2900,5047,5553,91,2906,1904,2925,3849,2918,5701,2917,605,5701,2921,5678,5707,111,95,5665,503,4931,461,5585,3183,3768,335,1812,925,846,5612,320,5099,1883,906,4827,320,5109,1807,5616,4824,608,575,101,3858, 2902,5613,3750,5202,1809,5592,288,5270,787,413,521,5621,3776,371,99,5728,4836,4005,4324,367,4889,594,5753,1051,5755,2841,5015,4384,5640,4330,5019,4990,5754,2854,3913,3865,367,4179,4661,4054,3368,952,278,4660,4411,2537,4036,2129,2132,2131,5056,537,5771,3033,4403,2791,5667,958,5781,4469,5577,2879,5796,5001,5781,2435,4668,5761,4831,629,3955,2740,5782,4700,4207,4570,4209,4641,383,4626,5464,1629,433,5770,5762,2854,5809,1853,5776,5783,4789,3830,4535,5010,4973,2610,5780,4807,4962,2220,5812,3836,5668,4815, 3081,2643,5791,2572,5263,3089,5835,4520,5848,5801,5827,3829,3368,5806,5763,5825,689,5782,4278,5786,5056,5788,937,305,121,3323,4141,5524,1684,100,5867,5798,1384,5851,3842,5802,2636,4668,759,339,5803,2345,2101,5833,2942,5856,5772,5757,2247,4382,5861,4748,2132,1229,5866,5793,2455,1393,5888,3033,3787,821,5422,5412,5881,643,3553,2456,5886,4003,5866,5909,4668,494,5872,5860,4828,4747,3151,4039,5345,5877,4934,4843,4630,5901,2572,5773,3885,5775,4699,4205,3807,3107,4813,5814,5842,870,5907,5797,4808,5828,4965, 5920,4967,5922,2465,5845,2843,3505,5847,4630,5835,5898,2060,1393,5941,5878,3260,4511,4724,5913,5094,5777,4351,4824,5964,2057,2214,5024,4757,5916,1855,3042,4538,3089,4626,4953,4009,4821,2655,5360,3234,2576,3236,3261,3644,5928,5951,2840,5255,3244,5849,3538,540,5003,4618,5959,3364,5869,2187,5990,629,3505,5915,5913,4719,3788,5632,5411,5626,1453,5974,5925,5666,3089,6004,4149,3042,4366,3244,5974,5782,4543,5767,4386,5769,1179,5969,941,2934,5972,5579,4535,4888,5030,5994,5801,4537,5128,4578,5995,5970,3359, 5998,5492,3794,5053,3637,2952,4341,6024,5996,5805,5950,5808,2612,6025,5016,1409,5018,520,4877,5831,3287,5926,2749,2711,3292,2713,3293,2716,643,1938,3297,5069,3300,1950,5074,1954,5076,32,5078,32,5080,5090,5082,461,6E3,2099,2353,6034,4573,6019,5930,328,2247,3887,4147,6031,2404,6047,5635,4503,6057,110,5858,5883,5023,5962,1123,6096,5976,6042,5664,5852,6092,1316,6002,1135,6091,6045,3365,5095,5303,6113,6107,6097,5932,5943,6026,6062,1470,2701,5949,5823,5902,5965,5944,5236,383,5849,5765,1244,6027,4545,6064, 461,4626,4184,267,3401,4854,4074,451,4188,3466,3409,3407,3411,101,3471,4195,3416,4197,3418,5790,6138,2572,6109,5836,3123,4720,5535,5474,6013,594,5835,5953,4578,6019,5759,1123,4626,4867,5686,5048,5554,2887,5672,5675,2890,6169,5807,6020,2816,432,4935,4757,6019,5993,4573,6151,4613,4236,6141,5281,1123,6054,6124,6007,5917,5996,6121,1379,6123,2200,2940,5911,6210,5897,6021,4271,2400,6211,2374,5885,6126,2235,4626,4270,2015,5800,5924,6224,6234,5795,5877,5903,2221,5530,6178,6128,6170,2843,6130,2159,2840,350, 413,6203,4618,6232,6115,4577,4855,6036,6206,544,4867,4983,6201,6107,4463,2033,2187,6205,3139,3521,4711,3523,6018,6265,5892,5919,3928,5921,4749,335,6E3,5874,2086,6258,3826,5085,2770,3578,755,5088,5081,4816,372,6259,6270,119,4026,4656,6285,625,5956,2291,6239,6032,6119,503,4668,5835,4768,2882,5687,2626,5689,2628,2630,5693,6195,5763,6248,6006,6221,6318,5824,2762,6250,454,6253,5492,6019,6172,4628,4864,3089,6024,5933,4810,4701,2679,619,5841,3130,2166,870,6330,6325,4122,6322,5822,6196,3505,6251,101,6328, 6105,288,6218,4E3,5966,5829,3368,6282,2862,6175,6243,4657,1802,3320,6011,271,5516,5501,3283,5844,6246,5756,5774,5891,2862,6184,6323,5902,6336,4607,5813,4615,5939,6090,495,5908,2968,2455,6216,1453,5959,6181,6264,6375,6108,2612,6380,6143,6118,3190,2015,6056,6398,5850,5954,6403,6305,6392,6104,5149,5979,862,4646,3317,1627,5465,5821,6281,6389,5942,5837,2863,6061,2276,6063,278,5940,6423,6173,2744,4071,5934,6155,4812,6340,4814,6342,2311,6431,5882,5878,6393,594,6255,6198,3422,6068,6397,6196,6248,6241,5905, 6244,6381,2572,6332,5799,2149,1632,1849,5644,348,5646,4594,5548,5398,5576,5875,4630,5580,5131,5583,5684,1151,4086,1037,1866,4937,3690,4604,5561,1893,376,3705,1814,383,3581,3598,3585,3957,1210,5572,4676,5574,1521,5744,34,3967,3596,578,6492,770,6494,6466,5638,461,79,114,740,116,350,6017,256,5726,5196,4594,5206,5200,5209,5610,3677,6515,1339,5750,5383,320,115,1148,1912,625,4670,4753,5497,3790,4110,5412,1646,5416,4347,5248,5333,2610,5717,6369,4172,6540,539,4300,4171,6371,5368,4341,6531,876,2063,4171,56, 5412,4391,3979,2086,5625,4578,4240,1210,1337,108,360,5365,5499,5367,1037,2575,6049,5354,4346,34,2906,120,367,2927,5711,1613,694,269,5442,451,6582,6584,2921,538,3599,97,2915,6583,100,6585,2927,3181,4355,2491,5434,5362,3947,5364,6548,6554,6576,4341,5681,5683,6542,5523,3212,4025,369,5478,4346,6617,1386,1148,3708,2347,4171,1949,57,4175,6457,1872,335,4509,4395,101,6491,3584,770,304,666,366,3692,3632,5751,5384,3661,5563,288,6635,4117,3595,1430,6504,6639,97,6641,355,639,383,1033,115,5642,292,6465,1762,5142, 6646,320,6547,4420,5590,6226,625,554,1793,1726,6616,5412,2677,6676,729,6651,6579,4500,46,52,5537,6500,6666,1775,335,1511,3581,1881,5604,5725,846,6522,5615,5989,489,5105,1885,5607,5614,5732,3752,6690,6482,3756,3694,5752,489,4329,771,1511,3733,3474,383,906,6042,6553,6574,5509,6373,437,2429,3959,6548,4947,6372,1631,5375,683,339,5388,5600,3685,5602,3587,6713,5101,5685,6311,6542,3716,6315,448,6590,619,4775,2060,4772,5691,5178,5648,1704,3578,5651,5161,5653,5655,4355,5521,5241,6623,1379,5660,5662,6456,6043, 5346,6537,5417,6043,4208,6188,6775,2465,4874,5302,2653,4874,5673,4872,6193,4370,5678,6772,4757,3631,6365,4757,2878,6548,6768,2157,868,2901,6685,4784,5699,497,6751,756,3007,2915,5700,2909,2926,2912,5706,6811,3844,2571,5703,6815,5708,926,6166,2906,2926,2928,1924,6485,3662,1811,5594,6489,1531,276,463,6691,6469,3715,5053,114,107,293,2122,5286,808,5517,5290,4131,6496,629,6716,917,1842,112,6834,6482,5379,1855,4664,6848,3850,1964,5649,2276,6761,1722,3961,311,105,2677,6573,566,6575,569,2575,5045,774,767, 1525,5485,448,400,6673,4420,6833,112,6684,2177,5434,5534,4757,5433,3596,5663,5587,6653,984,5658,3244,6671,4630,6722,4908,2684,121,1912,5738,101,4526,6548,2721,6798,1083,4893,6548,1380,1620,1559,6806,4895,367,4897,121,4899,437,6098,1209,6884,2267,6396,4035,4376,5043,288,5606,69,327,6368,6747,2999,4481,6806,6939,4295,3280,259,3849,287,6944,6600,2037,6947,1750,3849,6816,6787,4101,740,99,6946,1305,623,743,6954,1279,6961,6958,431,6963,32,6944,279,6959,6970,2926,6950,6969,655,6971,6967,6975,3280,1870,6972, 117,6982,6980,6984,294,6953,2037,125,1623,495,6902,4242,111,6906,6843,6872,879,6556,1802,6935,604,6678,6780,34,6942,6783,987,6942,6951,6945,431,7011,6949,2571,7014,6989,7016,6960,6957,6959,6956,6962,6975,7023,6966,110,6968,6973,6983,1554,7029,6977,6812,7028,6986,6982,7013,6976,6985,7019,6981,6988,6979,2571,870,5606,4853,2748,4687,1947,4677,6927,97,120,6354,3988,6931,4846,881,1802,7049,2623,7051,6911,2564,759,118,1393,6722,6257,6612,5290,6728,276,6730,2859,2117,5098,3736,946,6934,6699,5740,5201,5469, 963,1604,6704,5107,6700,6708,5203,617,7084,5730,5608,7093,3746,5949,3965,7092,3744,5366,5611,119,4305,3535,5731,3751,1582,3727,6855,5389,1655,5118,338,100,1540,4213,6647,4371,5126,321,5125,7122,5606,7124,6531,5724,5129,1632,1634,278,743,3581,70,1772,5396,3757,371,312,5340,3015,6864,709,287,1511,702,819,5540,709,1324,292,111,7134,292,7145,1716,5395,7148,700,7150,5395,6827,6649,336,6482,7138,3584,3707,450,1535,6696,5100,320,2021,2571,7103,5742,1573,2611,2703,7180,7087,5844,7102,7085,6523,3841,6871, 1892,6828,1587,5619,3706,6528,5549,2643,1793,1929,402,4544,91,1600,470,1535,1623,2420,5819,3320,6633,288,4248,4165,4167,5753,6801,1638,3706,6668,6529,482,1829,6636,6791,5994,4208,6870,5500,6555,5290,5283,1677,504,4309,5287,6733,7193,7167,1694,5214,1697,5216,1746,6831,7214,1779,6526,504,6518,833,5638,6521,7189,6701,7112,6500,7250,6712,5622,7224,5051,7226,6797,5412,5351,3804,5353,7230,6998,493,4341,1885,4106,6780,703,5412,260,538,6793,5241,4399,6632,4503,5274,5241,4785,6544,4459,2942,6899,6176,5404, 7285,1584,6882,6780,7066,7061,6558,5342,5321,5412,6557,1372,6620,7227,4573,6563,1491,7282,5259,7279,4791,348,6570,6572,6610,6725,6845,6373,6796,6679,7296,2611,6606,7270,7320,6871,6726,3994,727,6552,5355,7321,7239,335,7313,5372,4677,618,98,3600,7266,7326,122,7309,4860,6625,670,6627,5241,6629,6631,3536,3580,3602,801,803,6836,6499,6648,5157,34,1600,1597,7360,854,3601,392,6505,6483,6468,7222,7199,5578,5004,1393,861,2027,258,268,6359,4265,5618,1813,652,3667,6736,1780,3681,6856,4103,7175,946,3794,4008, 781,97,666,7185,5610,335,7398,328,2829,7403,7191,328,3793,622,328,3492,119,2623,7110,1570,7105,2787,7179,7256,7099,7182,2134,7409,5989,4907,7409,7420,5117,7413,101,4305,643,7427,7258,7364,1586,6488,5218,6645,7223,2643,821,778,6208,7095,451,2521,287,3648,98,287,5106,1930,3794,666,1057,7316,6994,4244,4795,262,4798,4800,4929,5639,6542,6732,7232,6373,577,6125,7385,3819,1301,1217,44,6290,1716,44,4856,1893,44,686,121,4225,335,4008,72,5052,3733,3976,7476,894,5518,811,3760,7072,569,4650,7213,34,1849,5598, 7114,6739,6759,7362,7124,6486,296,7506,7391,6691,5601,697,383,6511,6513,1745,7373,7511,1566,110,1844,578,6886,6548,5634,5149,1670,7530,3089,5324,7225,6536,6567,4904,625,4906,3965,4909,4686,7288,3450,7008,451,6192,757,7166,7365,7523,6656,461,2070,7525,320,759,3386,6288,5087,863,3392,3394,3961,6745,4869,3836,4771,6314,4773,5559,2027,4877,2986,6153,3879,6338,3389,6157,3405,3465,6161,3467,7585,3469,3412,4194,117,4196,7552,6388,3314,663,4647,7211,1630,5817,2192,7599,6421,752,6260,3527,6272,3529,6473,7606, 6298,4464,5664,6778,6746,5697,5555,6192,4876,7595,116,2708,6516,6069,6752,6071,3291,2714,4295,6074,3296,2720,6078,2724,6080,2728,5075,3307,2734,3309,5091,7621,5869,4558,3232,4958,2543,3487,7100,372,7606,4668,354,6296,6401,6422,294,7653,7606,6262,6273,3563,5112,1504,5114,3007,1509,335,3665,308,7396,371,906,3842,7109,7098,7111,5743,7439,1894,7665,1506,7667,6589,5219,6669,5550,7139,6850,91,7146,6720,7339,5007,6462,5596,551,7507,7393,7115,7376,3634,3677,7699,1782,3682,1774,461,262,5748,5192,7221,6742, 7262,2401,267,500,666,4300,7472,5653,1747,73,3535,4649,6420,7333,3208,5586,6873,7079,6500,7712,7247,7366,670,6856,7559,5129,6500,7441,1701,5720,4286,2748,7252,3587,3865,7437,7650,292,6675,5729,1804,6707,7678,7182,5753,7188,7097,7756,7419,6574,7240,7365,5113,7683,1508,7685,7443,7199,957,5931,100,6331,6383,4910,6189,988,6440,4210,400,5890,4981,3528,4488,4713,5890,6172,6152,2988,4498,5697,6158,7586,6160,7589,6163,7591,7593,4198,6150,7652,6348,1592,6377,7558,6419,5820,5237,7210,7809,7212,7806,7774,6172, 5980,4316,2539,3484,7648,3237,7094,2134,4863,6461,3089,2036,7422,7779,6341,7782,446,7578,7792,5935,6156,3463,7584,4189,2847,7797,4192,7590,3414,6165,5715,7783,6377,7817,6067,7624,5936,7626,1929,6072,5064,1936,5066,6077,2722,6079,2726,6081,2730,7639,5079,7641,6089,3194,278,5832,6230,4460,7789,2612,3781,7612,6267,3862,7876,2703,5914,7805,3882,6377,4645,7597,6418,3638,7727,1964,5992,6821,7819,4822,7060,7849,7816,6059,6306,5997,6094,5350,5890,5952,6774,4060,4988,1345,7899,6098,7720,7073,6373,7773,6098, 6331,3571,874,6413,5870,2134,6037,6333,7788,6377,6001,7922,6268,7660,4208,6263,4028,7882,3165,7894,1199,7896,4062,4427,4379,7850,2612,7888,3316,7378,616,7503,7834,6296,7879,3183,1853,6287,7276,7625,91,6291,6088,6293,7917,5775,6100,3524,2740,3828,2075,3368,6578,2883,6853,6531,2489,4914,1209,7936,1853,1068,4982,7662,4578,2134,3323,4668,7825,4230,7078,6846,7978,5859,6009,5904,7346,4717,7944,2703,7785,7608,7787,7996,7774,2939,6405,7885,7651,7655,6038,4573,7561,3439,7448,3376,2703,3330,2963,6299,7935, 7997,2740,7925,7827,7927,8003,7993,6242,6767,5412,7984,8026,7349,5680,7991,6110,2462,5011,7906,7938,4617,1468,7910,4064,3239,5810,6145,1330,6147,4294,7977,8020,1906,2840,6929,5784,4956,6932,422,8051,5859,7902,8037,7887,7852,2325,5697,5062,3292,7858,2717,7860,7633,7862,7635,7864,7637,6082,7867,6086,7869,7962,5890,7884,7874,2942,8011,7644,5982,4295,5984,3485,5987,526,3644,2874,2876,2145,4999,6377,3781,7661,7609,8002,7918,7945,3071,7563,3836,7960,7567,7815,7913,3134,8006,7963,7775,7901,2495,2435,6446, 2973,5810,6215,7930,3216,8021,7606,7981,8102,5031,8034,5960,2257,8120,3569,689,7818,4375,1320,8090,7822,5988,7094,8086,5086,8108,7565,5089,8110,7886,7900,8015,8113,8084,3368,8115,6460,6472,4578,8011,7623,8065,7958,8067,7629,4192,7859,6076,8072,3299,8074,3302,7865,3306,2732,3308,2736,3310,5843,8156,8123,7904,8033,8059,2137,7932,5814,7934,4573,8115,8022,8158,8130,8184,6433,3924,1978,5766,6134,5768,6149,7912,7964,5035,7496,6127,7943,8003,8061,8006,7987,4614,2444,8188,7905,8063,7658,8006,7654,7729,8128, 8001,8193,8151,7967,4436,4655,7613,8019,8208,8118,6412,8182,6355,7183,8225,4710,2311,8214,5492,7984,6391,2232,8114,8131,7873,8205,4130,8131,8004,8012,5854,8121,1853,8100,7933,7982,6890,8117,6411,2060,8134,6143,7615,7570,7779,6192,5555,7620,8202,6099,5884,2111,8124,3889,3033,71,844,7501,7949,7892,8111,367,7776,5943,5893,6279,5895,8270,7791,6154,4859,4922,7839,941,7841,7587,7841,3001,7800,199,6166,7594,7871,8195,978,7656,8150,6098,6060,8198,6428,6135,4387,3645,2671,4539,8249,7965,3200,8259,8036,8244, 8216,540,8145,7779,8109,8178,1861,7569,5670,6312,6754,7573,6756,5556,2687,7937,629,8054,3229,8042,4370,8115,7980,7786,8040,8234,8156,7777,7837,6438,7780,5938,6441,2754,2046,2853,5735,292,7808,7989,7916,5890,8016,3555,1218,8131,7914,7731,5290,7924,7804,8154,8253,689,8290,7580,2883,7795,626,8297,3410,8299,7846,7592,8301,7802,8270,4885,8235,7979,1148,3198,7725,6894,7883,6055,8322,8224,5826,6140,8252,8207,8104,7998,8373,8247,2694,8320,2636,8262,8282,4709,3379,8187,8257,3244,8011,6417,7948,376,7950,8044, 8401,8204,8013,7875,8099,8407,8427,4055,8249,6283,8421,8348,7784,7611,4437,8018,4573,8030,8285,6277,3990,5787,3992,8288,3456,6445,8274,3541,8406,7952,8439,8228,8189,8364,8393,2398,8395,8457,8194,4977,3199,8024,8405,2740,8306,8058,7774,8469,8115,6172,4485,4615,8239,8436,7928,6276,4293,4966,8446,4968,8344,3220,8023,7983,6059,8350,6437,1606,4703,2309,8355,4706,8270,8474,8486,8192,8396,8122,8272,7903,6112,8135,2011,8039,5679,7477,8056,7898,8413,8137,5041,3482,8140,3235,7649,7182,8180,6212,8210,8105,7596, 7947,7603,8357,8339,7908,4367,4845,7942,8303,5059,6451,7838,3837,7627,5063,7630,5065,8168,5068,8073,5071,7636,3304,7638,8175,7640,8177,7642,7504,699,2650,4355,354,1745,1858,116,673,1863,7003,3949,7714,7687,8206,6914,5299,5233,5234,7291,3368,431,5748,6559,6767,46,55,5412,6471,6565,8578,51,8581,2571,1108,7303,7314,6632,5538,7245,8560,8562,3865,7814,6650,359,7415,2623,7747,256,1884,7091,7423,7757,7765,1586,7767,5115,7770,6498,371,8211,890,8390,1210,3605,1409,3728,4959,1506,5154,8423,3369,4603,112,2829, 5918,3326,8155,276,2829,6041,8279,5680,8633,1371,1382,7926,7053,8628,112,4576,8098,7774,5307,544,5880,6416,7889,8435,963,7810,7601,6296,5011,8638,8157,6284,3244,769,3209,8359,823,7812,8362,7621,8658,8643,6266,3983,8638,8475,8213,8417,6204,1919,8096,7324,4630,8442,6425,2642,4010,5894,5789,8656,116,4185,8351,8492,7583,8295,6159,4191,6162,6164,8386,7848,637,8674,8226,8017,8456,4618,8683,3123,4327,6146,8199,6028,8201,7951,8220,8346,8509,5149,1624,5141,7891,8655,798,8264,8331,7779,7618,6785,6788,6926, 8671,8480,3441,8085,2768,7922,7645,4957,3474,8141,8093,7094,8473,2612,8648,5146,8374,550,915,544,7057,5870,8744,7883,8733,4060,8482,5863,8447,8688,8413,8630,4955,8758,2846,8484,8703,2471,4231,7916,8659,8031,7995,5031,8638,6016,8162,4855,7606,8472,8082,8046,7690,6136,914,5145,8645,8316,6377,8369,6999,6846,8768,4761,8717,1393,3036,5958,8064,5154,2483,7856,7628,6073,8542,4528,7861,8170,8546,8075,8548,8077,8550,7868,8552,7870,2531,1353,6852,2829,8246,8431,3368,2134,8820,1268,8443,8631,1218,8794,8649, 8218,8186,8476,8677,5999,8106,7957,7854,7959,8147,6292,8179,8776,6237,5154,2187,684,8643,8822,8403,8497,2612,8791,7273,8793,8643,8464,8461,8707,8745,8750,8747,8408,3830,8438,8227,7880,1379,8663,119,8340,5492,8871,8062,8400,7992,6132,6427,5482,8312,6029,5406,8643,6302,5552,8488,2703,8826,8851,7969,3726,6735,1778,6737,7737,5389,1786,7739,7704,7391,6738,1854,7518,6880,3667,84,77,724,7702,3715,8144,8107,8326,8842,7961,5843,8219,8691,8491,8293,91,8380,4190,7588,7844,7799,8385,7801,6168,4099,8651,8526, 7813,7600,8715,8345,8E3,8347,6414,8867,8705,8869,1453,2840,354,6644,7726,8723,6356,8800,3289,8539,8068,8541,8167,8807,8169,32,5070,1948,8547,32,3305,6083,6085,6087,8149,6581,8736,8233,7058,8139,7821,8518,7823,7650,8219,7968,8829,7803,8008,8641,4757,8011,7659,642,6779,7958,6192,106,945,280,102,3115,2656,3453,2930,8689,8675,2389,8836,7386,6500,8610,7684,461,968,5215,416,309,7461,316,265,333,8911,5478,2573,6907,3761,1545,7077,6780,51,46,7300,1076,401,328,258,260,7383,340,8027,6622,46,7532,5870,260,9019, 9031,101,9033,4237,5522,9037,5412,5253,1833,395,4604,7353,4346,50,9026,7305,277,367,9044,9035,6686,50,4111,7357,7733,7245,6507,315,5565,335,1923,98,7170,3767,421,7117,5120,8614,608,3915,1486,8608,7681,1896,9007,7198,5398,5463,8935,730,5467,734,7404,726,2892,4944,4598,7338,1981,1904,544,1970,78,7401,501,7793,7294,4339,7322,522,3119,760,100,87,499,110,5738,9040,8390,2912,4355,1138,3960,1632,1511,7672,1537,7096,7755,5741,7186,4101,4782,5106,1886,8606,7181,9083,376,7367,1602,9087,3715,5668,8989,5275, 7548,6806,8267,8998,5676,537,6715,7204,6718,489,6344,821,814,6908,7536,8587,7271,7332,4990,7846,4938,3414,282,338,1929,5800,8536,6095,9167,3582,8006,6790,2813,3968,6289,987,1210,6923,4901,1619,1609,367,1861,700,6877,700,5395,1229,4848,1968,8032,8234,1058,8378,6477,2311,9146,7288,5690,2771,6806,6753,2027,6755,6316,2632,3176,5695,1708,5437,6823,5702,1794,6806,2904,6815,6813,2914,6815,5705,9225,9218,6820,2924,6819,5711,5713,4370,7075,5122,6731,7238,7721,6721,495,4577,6724,7331,9110,9166,275,577,83,3794, 339,6677,8565,7663,383,65,519,281,294,79,99,5753,945,984,8559,1051,8561,275,8563,6937,5172,8567,4928,5631,6542,5067,7326,2037,6853,7236,7288,3809,6806,7451,32,97,111,2661,4449,6564,7340,4755,6680,7308,8774,6023,8455,6621,4453,6688,7326,455,8564,7063,4527,3811,4578,6840,644,648,8577,9054,9064,4757,5253,1513,1130,7546,6622,6689,7680,9140,8593,9267,8595,3885,8597,7168,3681,7373,4044,3280,428,7140,6743,3590,9322,296,6502,6654,5151,6656,9332,489,7226,6490,6482,3728,7174,9017,1595,1601,3586,2276,6695,4990, 7556,1111,6638,6596,3909,3722,8620,9348,3725,5184,9338,411,3604,3616,409,5164,574,119,6835,9351,715,3764,9305,6909,5233,7305,2429,9380,6542,6910,9027,1259,6913,6747,9184,5466,7958,9392,103,9187,1610,9289,7528,2083,9181,5437,9395,7549,619,9395,9397,9189,1603,279,4892,354,7972,1617,1615,1737,2429,9398,2046,9290,7312,5422,6539,7326,312,4597,4337,9036,9063,9321,5562,7365,6835,6661,6068,8613,7122,7513,6829,7196,7735,5642,116,7705,3689,7394,3653,9377,9337,9432,1586,9445,1852,5389,7395,383,6684,9340,984, 6655,6596,6658,6643,1712,7141,5605,7068,9022,553,5584,3697,9469,9354,4677,4492,9473,5591,9368,6501,6895,629,9461,3585,9463,6660,5720,3033,7739,8391,1987,2840,722,8910,8722,3320,3641,9093,5733,731,9492,723,8527,9497,3643,8743,8038,629,9493,9503,9092,9505,7650,8754,8338,110,9509,9090,8091,5468,6524,7741,7745,985,9347,3681,7369,5175,8566,7223,5538,9353,9527,461,4103,5387,8897,7708,9449,7740,9479,9536,112,7738,3624,6965,7137,7139,9489,6956,6760,7160,6879,5896,5899,1111,7692,6150,6116,1037,9557,4824,633, 1835,9552,7152,8906,1196,7155,3733,472,9564,6759,9194,1659,9174,616,9561,6281,613,5154,9578,288,4871,9572,1720,9553,9139,390,7169,9548,6490,3725,7206,117,9350,5725,7081,5752,7429,9137,284,7105,7387,5620,7686,7444,8720,6051,2087,7503,6463,1750,9074,6637,7508,1854,9127,320,7406,1515,7401,6706,9131,9094,34,7128,9601,9625,7130,3698,7418,7186,4100,945,5168,5207,7762,7186,7178,9637,9624,9499,8951,4101,115,262,7750,7425,2612,9648,5770,7760,9130,7086,6370,7764,7405,7433,7435,9363,9654,7190,6709,9479,6835, 9143,5121,6858,5638,7690,6464,9616,6466,9669,4594,5462,328,7492,904,7446,8205,2575,9179,3089,9089,9495,9393,732,9498,3644,6568,348,4793,4245,7465,4580,104,4801,293,2574,4341,293,5267,9428,4453,7471,7915,3851,994,6479,569,6481,3681,3856,4877,7499,4795,8527,6402,9576,5492,4523,554,4882,4306,4945,9238,6844,9099,4445,9290,352,4449,770,853,7402,7330,7231,9708,6861,7510,9556,9565,5652,5817,4851,9439,6780,6611,8370,812,6490,3602,9489,9684,4630,1833,9742,5650,9744,6762,9720,7853,8418,453,4246,1716,4867,7890, 6052,7233,4858,7581,5870,437,803,7690,3613,341,802,854,7553,1586,9141,370,1702,6862,617,9598,421,7759,829,7430,7764,7664,9085,7769,7261,8567,9145,7616,8990,8729,8268,8999,7490,9498,2276,4650,9504,7186,9274,625,5696,7958,9222,6804,5701,9224,2919,6974,6817,6814,9229,5711,5709,9232,5712,6826,9709,2166,8989,8840,9209,109,9211,5692,9213,1632,65,7527,577,2206,9761,1722,9539,7716,277,551,9198,5149,612,3584,9385,4630,2906,1696,9614,5437,314,1678,6806,3975,727,3116,727,2491,5146,5153,1493,9402,6914,6919,959, 6918,9418,6920,1321,9415,9396,1321,6924,9409,4990,496,5152,8948,4494,6867,2677,79,4595,7121,7470,9239,9740,9579,3584,9887,8847,1135,9236,9023,9108,4257,9165,7080,5195,9378,5132,9628,9643,7095,7676,9638,9625,292,9849,116,7108,9651,3677,9557,7405,4355,7118,9668,6667,9450,4900,7754,1096,5128,7504,84,6603,2016,9481,3597,6656,9068,121,9485,6644,9437,892,9937,1043,7155,3648,5339,743,9060,1393,6587,4355,72,7068,9955,9937,5006,7730,5350,551,8718,7449,6190,5674,5558,1737,858,354,9865,2656,629,694,9867,1335, 9950,770,9952,99,9060,4596,9098,4855,9937,4491,5682,9966,1691,6500,9459,9482,9342,9462,3467,9464,826,5E3,9489,938,8490,8292,6339,8353,6386,8495,6293,10003,8828,8764,5946,8483,5948,1136,5878,8366,1184,4369,4147,4621,8426,8852,1179,4515,8009,4618,1230,4140,8451,4724,3922,8709,1048,8880,1053,8882,8201,9796,7666,9798,5375,8908,76,2E3,9489,4928,2673,8752,3212,3177,291,4668,10049,3061,114,3063,2506,4630,10056,2569,10027,8984,3244,10062,2893,291,2675,6868,8839,8537,2681,9286,108,6903,2686,498,116,109,9609, 8949,9328,10067,3178,2003,10059,9774,2187,7587,102,906,9963,8922,10067,7455,2628,4930,1437,9890,625,2891,2673,4867,10088,9478,9451,9084,10042,9486,288,1849,6694,9673,9929,9272,7444,6847,9670,7204,9672,7700,1774,6467,3876,870,9703,4307,262,4726,6997,9165,4503,9176,1874,9081,3292,1393,9692,7462,4794,4796,7466,9698,7468,9701,5290,3847,329,2571,9855,9905,32,4530,4578,1862,9711,616,9713,7706,9715,1723,9726,2393,9893,5052,3995,10132,9246,5044,9191,1111,6878,9566,9195,1575,9271,10153,9388,3389,9704,262, 3583,4505,4993,9705,1680,9707,9751,9153,10158,1847,1470,9156,7693,4388,700,10070,9891,9893,9559,10190,9247,2027,9177,8748,1553,9413,9873,9877,9875,5288,1607,10211,6921,9185,6925,2046,9788,913,9582,34,8582,9292,5348,5531,9717,8636,296,8625,9723,2588,9097,10187,1664,10189,8792,6373,368,6337,3445,9781,9528,9749,7337,9240,10134,9248,4104,9251,477,10178,4757,5628,7265,9685,9678,7493,9681,7448,2575,10128,9727,9895,9729,10247,6356,3842,262,10152,4171,10155,5256,9242,8390,9903,10116,7239,9908,6697,365,7433, 7400,9737,7761,9642,3644,5051,354,7090,9136,10286,9655,9913,9627,10293,9663,7094,9630,9651,6422,9645,9636,10301,7088,279,10305,7445,9134,6705,10308,9640,10308,3748,9912,3644,9634,9646,7417,7677,9138,8449,10308,9792,107,9794,7192,9658,4008,9660,2221,9632,9521,9665,10115,1073,9925,5119,7119,672,9023,678,7126,9450,1608,5133,9435,1744,7245,5193,9529,7199,10224,5490,6540,7287,6580,4786,5301,8573,1123,7234,5285,9728,7272,4949,6373,9756,10153,9038,6268,9937,5534,6794,5579,9937,6766,9320,7326,9956,116,5529, 8028,8591,6500,7242,4473,7244,9011,3755,1873,9937,7555,9997,6642,5157,10117,7199,10381,7535,6473,9961,7695,3089,5585,558,5320,6580,7130,279,5285,6941,9151,5714,9971,575,9973,6787,906,5107,9978,5817,10373,9960,442,6765,10425,6588,6893,8678,10426,116,4496,10428,4355,9989,6615,7663,9066,9011,7373,9944,5188,7366,339,984,1405,9266,727,9326,8564,9489,7311,8158,6566,4757,115,663,313,6837,7283,9027,8592,9011,8594,9269,8596,8936,288,9542,9447,3774,5603,7176,256,10313,10316,7824,9650,10478,7650,10325,10327, 7411,9604,7197,9606,7199,7474,8685,7478,980,7480,3390,7482,7484,679,7486,110,7488,9677,5737,10259,7495,10261,7498,496,7500,9719,9125,9193,6879,5140,9609,9946,3635,9808,9610,7727,9811,9625,893,9809,8281,9100,5339,6657,670,9517,9687,9091,5986,9520,9913,1490,643,10530,10524,7810,10521,9913,9853,6596,10209,4564,708,10351,2590,498,8530,3244,10369,6201,1708,744,5840,50,54,4111,104,10558,52,937,1006,2989,8505,9588,9440,7388,7743,303,7245,9331,101,9333,10256,10398,5398,9918,455,9281,8590,4578,577,846,551, 575,10225,5498,9245,9730,3915,3764,10443,9892,85,328,2135,9734,9724,4676,9244,9739,10203,2105,5131,279,10443,9022,10278,9315,9998,323,8680,1393,7458,6659,10281,8881,2128,10394,9484,10613,3823,10280,10475,1380,7089,9135,9623,10294,3644,3739,10060,5986,9916,9913,10315,10297,7257,7751,873,10581,9921,10481,5617,9522,9441,7442,9077,10340,833,10342,5124,9932,1259,9934,5134,9988,6482,10442,10624,9465,9336,9540,10108,376,9936,10432,9994,9940,10395,10618,10444,4288,7746,9790,7748,3885,10312,997,6741,9662, 10641,7758,9600,10640,5732,9603,9005,7682,8611,9799,7444,2170,9501,9494,10539,9496,9511,7186,8115,3505,10538,10519,10540,10701,9625,2620,9833,8537,9835,9837,6757,8404,8283,6400,10028,8183,8877,8507,9508,9502,9518,8263,5814,10711,8352,8728,9734,2659,9152,7893,10723,10698,10706,10700,10533,9690,7094,7971,3836,7973,6166,4924,103,10102,4211,2572,8277,622,10229,8654,9328,8095,3405,8681,8888,8468,10719,8234,10497,402,99,121,7545,105,10285,9771,8363,6377,8781,6377,9124,5393,9532,10243,9489,10277,8653,5289, 812,6500,9533,383,10671,9483,6640,10663,9618,6517,9129,10636,10287,7438,10667,5593,10649,300,9667,434,9773,4471,6936,7004,7958,7010,6976,7012,110,7017,6986,10810,6968,7026,7022,6965,10815,10818,7045,6787,7030,7039,7030,10813,6978,7036,7042,6987,7035,6951,7041,10822,10830,7018,4370,5585,9985,8860,5492,104,7068,10839,5589,9990,10844,7696,1531,9365,397,2221,10516,570,5792,9904,4730,3895,4830,5763,4019,4093,3349,10859,4160,4734,4839,3489,2843,10184,4992,3995,4276,10094,8510,4829,4095,4091,10866,3502, 4732,10878,4833,7489,1981,8863,75,101,121,800,7778,7005,6891,9413,6806,10893,5692,5526,1604,8701,10197,3770,3772,9448,1409,10873,10903,3774,4114,4165,4606,2588,4768,432,10072,4573,4148,90,495,109,9647,8444,4279,10864,4217,4838,10880,10924,4738,3355,10749,2843,6658,6200,6930,10876,9523,10861,3900,10863,10877,10811,4097,10930,4750,9013,405,7738,9738,10366,7497,5290,4148,886,10202,4746,4152,10928,4837,4015,4835,10865,10883,7047,9959,6226,5792,9883,5861,4090,10942,10676,4834,10940,10937,10943,4162,6866, 6876,10173,7163,703,5425,3596,10234,8617,7298,4578,4148,3892,9911,8481,10858,10941,10938,4219,10974,6196,10995,4283,461,6840,3910,10186,4593,3803,4357,4253,629,9841,10747,6802,1664,1960,9048,670,405,9661,8757,1470,3708,11017,8759,11021,3725,9190,5103,9216,3836,7264,6838,1930,4991,4602,5055,1623,10768,9615,3681,9942,4413,831,1160,10147,6373,7381,109,10985,8770,7943,7674,100,11048,10265,10950,10782,1686,8593,9366,1599,11058,10851,5716,10404,4630,6875,817,3581,11040,5026,8390,716,4778,10911,1430,6187, 10914,10567,335,9724,655,108,72,70,79,86,9871,9390,5697,9874,10216,9416,9931,9884,4600,9361,9359,10661,7556,5817,9697,5295,496,9815,8840,5335,103,95,4457,997,7580,287,11106,95,10893,1860,550,4304,10164,10840,10367,5237,11037,11068,10946,11070,11049,383,786,1233,647,11053,10245,10591,10267,768,268,11081,86,11084,11086,5667,5265,11124,4241,6857,4467,4410,8390,621,623,7542,4907,10767,7050,7288,431,1635,1006,9405,91,10746,625,4926,1904,10049,4802,2428,10898,354,287,11157,7135,4370,11129,6801,10887,121, 848,5739,10531,3035,121,275,4928,674,4762,6607,3948,11132,9730,4148,4081,11011,71,11183,1051,429,516,10013,10957,10994,10976,10996,10970,10999,10867,894,10855,315,10934,8055,10936,10998,11203,4735,10997,10860,11215,11207,10854,5929,6466,10968,10922,4011,10881,10971,10879,4284,11202,10972,10884,6581,120,97,11118,9704,11149,11125,11147,4414,11127,9389,279,9161,5927,9159,323,11246,10988,11209,121,8600,10969,11227,11206,10927,11231,11229,10931,4005,348,7408,11225,11205,11219,11258,10975,11232,4079,3011, 10146,378,11255,10958,10882,10926,11230,11269,11260,10909,4250,11074,984,11190,11135,9620,11102,10389,9182,7450,3946,11108,9262,11110,3596,11112,11293,11115,4224,11261,4149,3604,6225,10992,11201,11280,10963,10961,10925,4739,11208,4080,3647,11011,5376,2033,4010,11266,11270,11310,10929,10977,10868,3834,3467,6022,11212,10993,11308,11278,11322,10959,10944,11325,110,4726,10873,11275,11259,11309,11217,10962,11278,498,7391,115,11190,7237,10266,9897,7101,829,11154,7064,7288,757,11160,1210,95,11093,10900, 11221,2843,10918,2027,10304,11265,11256,11267,11279,11214,11270,3475,4272,2572,6658,11264,11306,4215,11276,11228,11342,11320,11281,11336,11193,625,3854,6801,11340,11331,10960,11343,11311,11335,11313,10932,3467,11254,11369,11382,11257,11372,11218,11374,678,3681,4478,6711,4824,3033,11388,4251,4164,11283,4358,11392,11373,11229,11333,11277,11312,3716,11028,7779,436,9974,6944,453,373,870,6840,873,1745,76,9113,367,925,5119,2571,11437,538,9319,5515,10246,11352,768,100,106,4250,294,3581,6859,11348,11119, 8390,103,11196,11185,277,11286,11448,104,11143,6482,11069,11241,11042,887,11044,9367,9789,9909,320,5102,119,5104,10630,10308,10617,9464,10291,10631,10298,7650,10289,10310,8605,10688,8607,9925,1597,6996,10646,3793,9353,541,7131,10794,10632,7094,4008,10599,643,10601,629,10645,11491,10322,7886,11051,9785,11499,9631,10321,9132,6656,6859,11484,10308,11051,729,5033,10680,11496,7490,10598,262,11506,2588,4892,10307,11496,10486,1814,10338,9927,1595,3467,1912,672,291,3584,643,837,91,3511,335,645,9075,288,5717, 302,11549,517,7171,296,6614,1155,11555,2983,11550,11558,8044,410,11556,595,11565,9626,9959,125,93,7412,3944,3493,7124,11046,11368,9450,10617,4819,1255,101,10326,833,11544,5118,278,11547,11568,11551,616,7268,3126,11573,10343,10656,7432,666,11379,10666,10458,7719,11273,339,7512,9883,7524,9438,10654,1040,10433,7139,10125,5573,11588,4355,11590,284,11548,11563,11557,11552,5413,3876,301,11574,1312,11583,10657,3037,1065,11602,1255,1755,6509,11587,7139,11546,11621,11592,11570,11554,287,11643,11625,11560, 11567,11623,11569,11625,5588,11562,3059,11564,11625,10842,2997,11628,11636,9614,4881,984,6859,11543,11640,11620,271,11622,11656,11624,11594,6509,11597,10606,5051,11534,11581,11327,11305,10666,6588,9699,4149,11638,7177,4355,821,7469,372,115,58,123,120,271,1320,121,11697,528,125,47,11695,58,1954,11699,48,125,1815,11618,11641,11670,11647,616,11645,2507,11657,11594,5590,11676,4553,3510,11128,10436,9348,11687,10476,11689,644,837,11692,11694,5585,11700,5042,4492,11735,520,11702,123,11734,1954,11560,11705, 11709,3619,11545,11669,32,11671,2498,11718,376,2878,11655,11752,11673,376,1775,11629,2949,282,345,4782,9358,9930,348,11401,9450,11046,10921,285,9840,10243,9194,9847,4861,720,10705,10083,9688,721,10740,7650,9686,10699,11782,10534,3644,739,741,7527,10556,6747,11358,9221,6808,627,760,870,11315,10534,11787,10532,9689,9512,7182,1506,51,11803,10737,11788,11784,7182,10149,9636,11250,10375,4573,786,10635,10456,2524,11536,7389,411,10336,11616,6497,9466,5623,10065,8441,9939,10430,8861,5471,9955,3761,5582,10753, 5870,7293,5664,10965,6672,9990,1393,118,11846,8682,4146,6462,10648,10570,10444,8621,10474,1883,9135,10178,10333,7410,7758,11480,11535,11855,9605,7771,5398,2299,10757,2211,9778,9370,3711,355,1740,9525,7706,10662,10396,9945,11831,10666,9439,9480,5434,10788,6657,10790,3624,11016,10336,10791,11425,7399,455,10769,11501,11486,9649,2119,7830,10684,7424,8303,10324,10687,11906,7104,9657,7432,10330,9734,9922,6710,10123,9617,10801,561,7538,11078,3067,9872,6542,9750,10238,550,11077,9851,5870,7491,10504,7447, 9120,10220,9560,9845,1838,798,11851,4578,454,361,9474,10603,11055,895,1632,1745,9841,9758,5573,11885,5493,2877,1393,686,11954,984,5839,11795,8178,11160,3109,10075,1695,1604,870,11593,9719,4503,11248,294,11250,8985,431,578,9859,6914,9861,7770,8840,9864,10419,539,9158,1558,294,11963,5697,759,114,2684,966,631,633,11996,4902,1603,10545,7005,9874,11160,11090,9879,4898,11092,9883,12001,4750,10803,2400,7071,9164,10170,1981,2571,7076,10278,11948,9907,3747,10678,256,11488,11521,9912,7431,9914,10484,7425,10643, 551,11509,11911,7763,7192,11825,10800,5117,9926,9078,10653,10116,11598,606,9933,11633,10606,689,9932,3580,11098,6596,11666,9539,3677,10787,9996,3585,11666,383,5547,9847,9200,9107,4757,9303,10253,8537,10808,6948,7031,7015,10834,10814,7025,10820,10942,10816,12080,7021,10821,7011,10827,12087,9822,12078,10827,7033,7038,10942,7043,12090,10832,7044,10828,9235,9842,4684,6436,10005,7582,619,11967,578,11969,354,6991,10955,8856,10783,1574,12026,10628,11679,12038,9602,11913,6581,9548,12030,12122,292,12053,7434, 10793,11863,12031,10639,12120,9656,10328,11762,12128,11533,9641,10294,10690,9479,7742,7770,10651,1883,4510,6051,1065,7129,9894,10666,12127,11590,12049,335,6588,12058,11688,116,11690,11731,5374,6693,10981,48,9349,3712,9847,3717,9474,913,7149,10982,9357,11096,1409,12061,7524,1553,11245,4998,4539,11059,9364,9714,9366,10568,336,11876,3729,9372,7390,8895,5377,9537,9617,12170,8315,1409,10471,5389,5381,8303,9942,8390,11934,9680,10505,12017,10592,2762,11938,569,12202,7509,1886,8303,5381,1111,12216,1854,12204, 731,12214,616,12222,3672,7510,2077,1012,12211,11135,10263,9098,11350,11949,6556,1974,12226,5386,8902,12197,12229,12218,8818,998,12220,12201,12243,9543,12203,3720,11079,1080,7690,12228,315,4103,9783,324,8903,3959,1873,859,684,847,11894,11919,9904,10516,3677,3583,3709,11895,10392,10670,9939,11890,10443,9489,290,8940,9967,452,10414,6787,10410,10418,1934,9976,480,4877,9988,10987,9987,10432,9958,11660,2400,10381,9962,10107,11887,12179,6656,12281,11880,3689,9489,7474,11443,3596,9299,1680,5480,1683,10160, 3689,3708,12313,1430,870,6578,1173,111,11444,1845,4527,12317,5288,12319,1758,11436,12327,3596,1209,1554,369,10082,11464,7068,77,10635,8531,932,8057,11649,9296,4573,11659,7069,2400,11033,10186,9594,767,12357,738,10243,9778,6482,9527,1861,11943,8985,7689,7204,9547,3584,870,259,11451,1207,3581,7690,65,11450,11452,7392,7706,10964,2997,2267,10139,11923,1912,5567,495,9061,4755,8579,5906,9766,1786,9769,10781,6874,10058,450,12358,12401,383,8297,2685,12369,10336,12261,9140,9353,698,700,9376,10352,5398,10119, 4594,12362,12270,315,11829,11301,5098,11119,10130,82,10169,9730,555,10249,10136,9170,10138,5264,9013,9694,7464,4797,9697,11685,11472,4824,9196,10178,11819,5999,3842,9636,10271,10462,10180,6581,10269,3877,12014,9386,7052,12070,12425,10166,10586,966,12428,11135,11066,10244,2087,10174,9745,3700,11848,2813,6800,11104,8537,9818,9223,3979,9228,2916,9823,12480,6824,9826,6821,5710,9829,5181,6167,10196,4342,12366,3244,12235,2159,4608,4601,10186,12464,11448,9133,7690,10195,6605,6892,6887,5520,9471,10874,5149, 12466,10199,4169,10201,11842,2575,12430,10205,10055,11926,12004,10211,12006,10215,12008,6922,12010,4901,6758,10292,6863,11940,9567,10223,5624,7304,10380,10228,11973,2460,10600,10233,11457,10365,10133,288,10240,4607,10242,7361,10949,12546,7200,10249,9250,6389,9253,12386,7264,7539,4757,12208,847,10260,51,8390,12495,12500,10605,6933,12493,11834,1904,7070,10275,11243,12019,6729,10611,9740,10626,7397,10283,11899,11485,10685,10208,11489,12531,11901,12586,798,1794,11527,726,1802,10308,10318,11580,12134, 9913,11678,12140,11902,4990,6703,11866,11510,9639,2178,11905,12590,11907,3747,12130,11517,9625,10318,11772,12600,3644,7426,12594,7187,9793,12125,12136,11897,328,10331,11917,10335,12420,10337,12043,10339,9928,3222,12048,12151,10658,3731,774,7150,9489,12466,3015,12174,7151,1514,2682,10194,12166,7165,9190,774,9949,817,12647,12653,6879,12651,2128,12648,12654,11473,11887,10114,11409,5393,11016,12185,10578,3715,7474,12358,12254,11398,6058,9181,4906,12327,107,511,7754,11019,11307,11420,11384,11370,11407, 9658,11883,5377,11426,5697,2840,1628,5747,9878,612,4597,95,11106,2905,292,3843,11113,5052,11114,9939,457,121,4395,2922,1006,104,3846,281,1929,3844,102,95,11477,11271,12679,7089,5147,1163,906,829,12684,5981,4088,10923,11341,11332,11395,11323,4289,11412,2572,11366,2449,12611,10857,12687,11406,11421,12738,11334,11324,12678,110,12743,12619,12686,11381,12736,11394,11385,10963,3851,4728,10907,12172,1037,10906,114,9456,12581,11540,12693,12029,12608,10334,10797,10569,11869,12146,371,11579,11905,383,11771, 2589,12050,7124,10896,9900,12729,12682,12732,12788,6653,4782,12730,12683,311,12049,11951,12401,11859,8614,12610,12603,12591,8424,689,11909,9653,12612,11912,12040,7733,7173,3712,11921,11832,8487,10254,11923,4527,7284,10759,5826,8756,4662,8506,114,8891,8981,8932,8525,7598,10725,12247,1012,8763,4238,2942,1840,10035,10207,8449,8469,2158,12831,8734,6361,2822,6348,5134,68,5135,282,5539,5652,9847,11051,1017,624,729,12315,10236,9896,9751,455,9524,3747,8750,2172,9937,4527,7356,5031,291,328,2267,74,111,98, 12864,319,8585,7326,108,488,3583,555,414,431,9053,4453,3305,4578,1547,575,12432,7130,9172,12015,12888,6676,414,7055,12893,1680,6085,7540,7416,11513,7055,12880,12882,12874,11015,120,5325,12284,9992,9479,12857,9762,12194,1770,11895,12803,421,12618,10320,10637,10317,12327,9635,12611,11863,9664,12777,9329,7706,7738,12818,3693,1711,12236,7336,11134,11448,2134,12206,12576,7095,10182,11337,12427,12552,12018,3716,670,12883,11621,5481,10038,10957,9443,9453,1783,668,670,287,12967,7707,12223,12970,32,7515,12195, 6691,3708,11233,1965,12961,11670,12963,6480,10858,12966,7516,10336,1786,12971,12989,12633,12991,12976,1750,12972,6856,1786,11233,12495,4247,11416,709,11284,11155,4346,10237,12114,2066,10575,6984,5732,11133,10604,11929,12424,11238,12545,12958,608,299,5154,9070,12808,278,12066,1409,13025,12453,260,10270,12456,6780,10273,12494,12460,4892,12462,10235,319,13009,11121,1964,12542,9725,13019,11054,12553,13002,12955,11440,104,11390,4042,8390,2467,12983,11750,12985,9712,12987,5597,12993,12941,8898,7482,32, 12998,13067,6759,287,12977,12926,12994,1716,11233,12563,7494,11936,12952,3450,1853,12951,8668,13018,10129,12497,10185,10168,12957,9730,11816,10151,13034,10153,13036,12572,2740,3708,13059,12331,10620,11381,12988,12978,10336,3708,12992,13107,12633,13109,12996,1777,13075,13066,1774,12980,12372,12256,12330,13061,10159,13063,7698,13065,9446,9455,1080,13110,13116,13128,1774,4103,13073,12997,13127,9454,13134,1080,4225,1632,12306,6596,9344,9334,9489,10580,9850,2400,10585,5053,9034,12398,4341,10593,1554,10595, 9516,11529,13046,8921,13044,11677,10594,10663,10610,10781,2187,11482,10614,11873,13151,10663,7690,13144,10623,12693,5561,8602,12032,12623,13149,9920,12615,12932,10796,11887,12144,7116,12044,10652,1641,11612,7125,12054,7697,9444,13138,12968,5380,12200,12673,7363,12939,13106,13132,13139,8904,6740,7519,335,9266,4523,11896,9620,6658,11481,7433,11769,12620,7094,10483,12623,11150,4905,11910,12812,11511,12628,101,11602,13229,5210,12143,6830,7442,10853,1170,3064,11836,5492,13240,431,6897,4573,13244,12754, 12386,6337,6889,3244,12548,2588,13242,9199,12104,110,13246,4113,5134,2797,8277,512,11896,8604,12589,12937,13188,7194,9006,9798,12943,9490,2689,8635,2211,3313,7622,10551,8352,8164,8805,8957,9277,4530,8961,5072,3811,8965,8078,8968,8328,2319,13277,3575,2300,8879,8310,13104,6148,6430,12829,3285,2191,8983,12820,3244,3328,3047,8127,8796,7966,3570,6404,2175,8440,8861,3322,8242,3554,3573,8706,9722,2954,2049,8006,3257,5909,2758,4551,8240,3206,13311,8657,13328,2408,3526,12846,2453,7920,10019,12231,3363,8209, 12844,13026,2741,5868,10032,3224,109,8855,13164,13348,13298,8684,4444,8686,8287,8761,13356,2980,7921,8972,5870,13310,13306,7729,8469,1965,8777,9901,2349,2448,3526,8221,12920,8125,13315,2092,2579,3191,4264,8234,3548,6363,6010,7325,4657,2532,13335,13370,10761,5432,3160,8398,13347,8626,2207,6449,11328,4618,2577,5971,11924,3245,3122,6434,8205,13360,5947,6280,3082,3558,2976,13337,3189,13382,112,13331,13318,13325,2121,8773,13390,4757,2577,2201,8006,3263,3155,6928,13281,4860,10053,114,8469,3201,3543,7988, 10770,3060,10063,114,10051,2285,2801,8886,2292,13321,13353,13351,3429,13357,12843,4809,6384,5840,7781,5816,1312,8619,9355,12191,2592,2469,8873,8234,13432,3432,8415,8835,8129,13309,1996,8752,8738,8057,2577,2154,8412,3284,13326,6120,13454,2525,13450,13297,3531,3155,5853,8892,3512,7902,13343,12837,13345,10024,13494,2668,13393,9001,2333,9003,8234,3257,3526,8394,7954,2810,8318,10061,3145,6379,13395,13367,2756,2455,13497,13415,2070,12159,7617,2887,7572,9970,9835,3419,3396,3526,8101,8222,10066,2408,13340, 13419,5803,2455,4668,13405,276,13541,1996,12344,5254,7895,2640,1996,6310,8265,8066,5688,9206,9838,112,8337,13381,13539,8261,13487,973,13437,10105,3181,12345,13476,3431,2510,13442,9730,13329,13426,7299,6562,2516,6425,13537,2364,13279,8087,4956,8517,5986,8519,8303,2394,2803,13439,13334,13369,13504,4487,13379,1379,5606,3336,2893,3033,12442,3153,3364,3561,8944,2583,3202,13513,13391,13376,2797,13371,2604,3781,7986,13591,2706,12851,13399,10710,9802,9834,13554,6749,10715,13344,3552,7920,13604,2211,13469, 8973,8532,4989,13602,8402,13501,3312,2420,6187,13621,8537,9150,9969,9806,13415,13607,2109,13385,5149,13368,648,8788,4564,13437,12513,11291,619,10074,2683,2685,13558,13512,13500,12832,8449,13456,13410,4383,8711,8311,8200,13303,13587,2821,294,8161,8801,987,13283,8069,6075,8958,8544,8809,8962,8811,8964,8549,5077,8176,8843,13662,2689,5811,13258,6385,4704,10009,5843,2577,2415,13323,13605,8375,2689,13612,3477,8838,13657,8841,2775,8148,13294,3564,13441,5029,11833,13319,3557,13489,3530,13569,2600,13517,2343, 13491,2163,13447,13375,2598,13716,6207,10025,13363,3214,13649,5870,3257,13296,4564,13392,3070,8217,13399,10953,2892,13233,12746,12758,11393,10862,12761,11345,13626,3518,13354,10951,6373,2861,13358,1242,10037,12986,13672,13362,13408,8250,13483,372,8679,13173,5848,8725,9774,6784,10731,8997,13644,10733,13563,2673,13544,3225,3265,13548,13722,3251,2510,12474,12695,9816,11798,12477,9218,9820,5704,12482,9821,6601,9827,9825,12488,13780,13484,3241,8232,13407,13329,13398,8865,8574,13364,13422,13324,13386,3068, 13757,11056,3537,13648,13332,13816,3525,13732,3209,9298,3517,2975,2969,13384,13822,13396,13320,8231,8243,13399,13542,13421,13737,13726,3371,7835,8291,13775,3404,8695,7796,8697,8384,3472,12490,13530,3518,3565,13827,2400,8798,13314,2493,6233,13374,8452,3557,3329,2165,8238,13506,5149,13508,3056,13608,13428,13545,7055,13631,7923,13616,3226,13709,7564,13712,13692,5653,689,10092,11500,8840,10096,32,2565,9040,865,10101,12491,13471,13570,8237,2477,8477,13869,13742,3093,8365,13840,1135,1965,12475,8352,11967, 477,2469,3118,3114,3116,1625,13913,7488,3512,10004,13845,5937,10008,7833,13646,13825,8864,8823,3362,3396,13865,8212,9002,13475,4765,13515,13761,13411,5785,8687,3132,13871,13664,12849,13705,13349,7920,13615,13834,6219,2015,13769,2695,13342,13905,1379,13953,8503,13521,13408,13546,13876,10052,2673,4762,10106,13859,13276,3042,11211,13404,13874,7056,13786,13514,13538,3942,13831,13423,13823,3557,13509,8460,13511,2689,13647,6111,13984,2741,13931,3095,8868,13828,2954,13955,13863,2179,13339,13725,13906,13675, 8504,7940,8089,8975,13585,8977,11903,3557,13330,13995,2583,13590,13824,2469,13493,13665,13805,3558,5961,2796,2469,13785,7939,13490,3214,13703,13451,10031,13366,6003,3277,9260,290,9333,11071,13902,13879,13676,13435,8922,13680,8956,8070,8543,10154,7634,8810,8172,8076,7866,8814,8079,8816,6293,10085,3062,13566,10089,14E3,13708,12834,9770,11812,7604,13275,13946,8503,13783,3519,8942,13959,13809,6124,13769,14073,13420,10055,14037,13614,8523,14014,3532,4569,13474,13534,13935,2448,13581,8325,5697,8327,8553, 13498,13930,13393,8920,12105,12285,8924,7842,13849,4193,8929,8387,8931,14094,3518,13373,13993,13723,2804,13887,11448,13651,14038,8251,13637,13415,13640,13552,9803,13777,9805,13804,14066,13305,3093,14097,13921,8294,8697,8382,6161,13850,7847,13852,13304,14001,13582,8974,7647,8976,8142,7650,13746,2009,13221,12757,12735,13751,10939,13753,11424,13372,8846,14028,8260,2027,13629,14025,14070,6296,13378,9991,13380,3195,13926,14164,14021,14083,3197,13983,13549,2635,14160,8319,14082,3155,8980,13944,14138,13425, 13516,13718,5492,14076,13560,3554,14011,13945,13829,3560,13978,13815,13650,13727,13897,13991,8943,13988,3166,3572,3173,14190,13455,3273,13487,1632,3943,11038,7706,11896,13184,12037,13234,192,12776,11887,6695,13274,431,9400,9614,10615,2400,10543,6907,4942,1430,11977,8418,7139,9942,14230,3792,1632,9557,12859,1529,7690,7692,10514,12409,10798,11856,461,9936,98,661,8721,6517,12117,13267,12585,11907,12273,991,11945,10694,7199,2158,14247,14080,13399,2874,6663,13618,13811,13929,100,14247,12848,12840,8155, 6759,13740,10402,12882,7790,8430,13734,13770,14278,8524,8324,8914,14091,8916,8969,14265,14279,8454,13992,12301,1919,115,8377,12069,8537,14100,14133,7798,8699,8930,12491,290,1705,3042,4986,13609,998,14247,8660,13169,1135,14290,7877,8780,13999,2873,14295,8255,8416,13934,6254,14295,8514,4987,1342,13584,3486,14007,10423,14283,2703,14272,12828,14333,115,143,13524,10807,13526,276,10732,10415,13529,6150,14295,14313,3517,14312,12827,6930,7479,9286,10014,5056,12294,14334,8126,14163,13313,5978,14326,8933,12835, 11181,14338,8535,9764,13282,8954,8165,3294,13285,8808,8960,7863,14049,8812,14051,13690,8551,13883,13755,14351,13299,13670,13301,8049,14347,12882,12839,4087,14354,8765,13853,14271,8971,12733,14141,8740,14143,8742,8978,14348,8783,7204,8785,14261,1919,14297,8692,8922,14300,7843,8698,8300,11363,14265,13769,14265,7999,13867,14324,5492,14422,14071,14205,14338,8284,13937,7448,930,14395,14356,11233,14410,98,8191,8661,8678,12882,14440,14314,13730,1012,14398,14039,9721,10006,14042,8166,14044,13683,14046,8545, 13686,14379,13688,8813,14382,8815,14384,446,14295,3421,9960,14359,8254,13843,9201,7779,14415,14102,7845,13851,8302,3591,14307,13402,11682,4588,14295,7851,2535,8737,8088,7646,14402,14006,14144,7182,11872,11958,14294,12882,7956,13710,14092,8817,3661,9977,7204,14247,14249,2421,6759,14358,115,14431,3123,13579,14447,14411,8834,8676,14425,13507,1256,14262,13312,8939,14165,14320,14443,14280,14118,8626,14521,14292,14200,14496,14510,8489,14387,8047,8712,13302,13766,14265,13653,14277,14534,14335,8952,5687, 8803,8540,14453,13682,13286,14047,14458,5073,14050,8174,14462,14053,14464,14502,9615,6449,13970,14426,14484,14317,6296,13533,13595,2966,14311,1919,14498,13881,3077,14560,14282,800,13641,13909,8178,11171,5511,3976,626,3450,11879,335,14505,686,648,558,12589,10853,9608,10510,6500,5746,14258,11893,5494,327,1706,7734,9016,12415,3715,538,14602,2033,2591,9357,14610,3860,11841,4471,4395,1725,9254,10153,871,1730,11160,10808,1738,14243,9369,14591,14605,10571,377,392,12168,409,12170,12411,9359,9754,12176,3585, 4478,3602,12180,3727,12191,7174,9457,11923,10622,10789,12693,9489,5585,9477,12435,12560,5361,648,9470,14225,2997,14655,11847,555,14663,4630,12918,14659,12766,4573,122,14666,4578,11253,14669,12304,7194,14650,11891,14652,13198,13070,12217,9335,7262,3677,13207,3669,12990,13211,12534,9785,9489,13911,2803,11811,11781,11805,11783,11807,6721,8667,11804,12666,7194,13190,5164,274,1916,14630,10664,7715,5532,984,6352,5330,6543,5332,10361,6150,11169,14715,454,5371,9293,7326,11595,629,11188,6609,11927,11447,12569, 871,1018,65,552,450,9107,12023,13021,14618,9197,9873,14623,6941,454,5050,1730,12530,9551,9573,9587,474,5353,6352,5239,11823,4573,10363,1678,13020,9730,9234,10139,14756,14724,12536,10583,10254,5353,5225,862,5296,10357,4453,7289,102,5233,6545,2942,9813,11012,5633,5531,14722,14729,7329,14732,12948,14734,10553,13253,5353,5294,14774,5272,14717,5276,4688,10360,5288,6231,14787,110,6352,13656,12233,11448,11106,5337,4251,5339,278,4782,14776,4784,10359,5249,14273,10362,14767,413,14799,14819,14781,3368,14714, 629,14757,13974,10370,7279,5353,5269,14797,566,14825,5277,14779,8572,14803,2610,14829,14806,13868,9039,5353,7157,5341,2971,5343,10380,14805,10374,10384,4588,14805,10383,10379,14858,3832,5527,10378,7341,4757,1830,858,14865,5430,9424,4578,14868,575,14860,6686,9314,14794,5363,2677,8746,5309,5241,5311,9425,1018,14730,6869,13092,9240,12771,7253,6520,5199,12623,5360,7255,12775,5733,3677,10387,1696,14711,13191,12636,371,12158,105,6583,2083,6800,9079,12161,11730,8041,1342,2993,9857,9884,3580,6884,6691,12422, 2623,10853,11300,13249,3205,5434,13256,13396,11838,12301,11840,553,6476,10405,11064,6043,12571,5350,12296,11824,11868,5595,10849,12633,8900,14945,9442,11615,12927,9597,11475,10282,11898,9622,10308,10296,13222,11487,12596,12623,12598,12936,12616,9913,10477,14899,12933,9645,12756,13269,7751,10480,14970,13223,13228,12131,12122,9620,12630,11867,12632,13117,11920,10488,5398,11850,12300,4420,9675,3876,12419,14986,9674,11241,6859,10502,9679,12564,12210,12952,14927,14931,13877,14933,9685,10518,14698,9519, 11814,3164,12559,4792,811,9695,12439,4799,10145,12706,7469,13443,13087,10264,6780,13043,13758,498,14941,14426,12539,12836,6933,14040,13470,13162,11508,12544,13049,12958,14793,4573,11844,4028,14943,6095,14032,9733,11531,280,11900,14741,9730,9758,12589,10221,12533,14721,3832,9748,10153,11928,13010,8554,12166,11022,14949,14985,3689,15068,12642,11067,12672,11870,3715,4825,10856,10935,11330,12688,12737,14153,11397,3808,11240,121,14,10948,14790,13016,15065,11336,4006,11224,11380,14150,15082,12760,12690, 11386,2465,11975,3765,12183,6274,7544,10891,14621,11796,10213,9183,348,11361,9883,11363,10953,12152,14149,11226,11403,11371,11422,11383,13754,335,4144,11463,14734,4825,15095,11200,13750,15098,13752,15100,12762,12587,4894,12525,9407,9882,12529,12763,10979,10905,9191,10945,11145,11041,4481,12952,4008,1511,9614,1049,14784,9109,11191,3033,10990,12119,15119,15084,14152,15136,15125,12547,15087,3941,262,88,12956,13086,10171,10902,12769,10904,2276,12768,12770,12025,14955,10628,10290,12607,14961,11808,9353, 11495,14977,7650,12171,11515,12631,12939,13190,11538,12045,6530,12152,12150,9438,15131,11584,11586,1641,11711,11749,11751,3436,11753,11559,11675,11761,7716,12602,10347,335,15172,5722,8616,9076,13192,7082,12593,10345,14963,15207,11668,3976,11642,6733,15212,6781,9734,1559,11597,7387,15221,3427,13274,14811,14731,13015,12238,7074,12020,67,6782,14890,12580,12309,12334,670,12322,11830,10665,34,14445,1453,12675,3723,11930,11011,1393,10758,4757,5045,2676,10915,13017,12041,11857,6482,83,645,112,7130,14712, 8567,14728,9774,9360,12063,11675,12225,9759,12532,14753,10175,12189,14707,13213,7245,5395,10514,9489,11786,14064,15012,14701,14465,103,13102,13123,5945,2128,755,3794,740,10102,2846,15309,12881,1878,3008,14627,7195,14245,9787,15290,1514,15297,9847,553,15304,5861,755,957,11051,44,15310,15316,44,4795,259,673,44,12934,1130,115,103,111,15332,15315,764,3451,15333,15347,50,694,10811,629,260,13152,3348,15329,7752,9113,15345,15311,490,15336,100,15338,15340,945,15343,15361,15316,3852,15370,15350,15352,15339, 3405,15356,5462,15010,1037,9810,10708,9913,3648,10889,14912,12952,14765,2400,15043,8215,109,563,4795,453,367,342,10527,9124,14950,11826,34,15249,1878,729,12274,12414,13204,11608,7167,15407,12276,3667,68,82,6695,12859,345,11979,6636,11484,14234,4618,1670,9050,1997,15419,645,10577,10584,7055,76,15428,4510,11484,10847,7536,14221,15393,15427,5253,5629,11854,15070,1758,461,14683,12974,4577,12272,6500,15448,12245,1787,13212,10572,10465,9325,10467,9327,10806,10853,4240,13048,15245,12553,15464,2677,9115, 15316,6641,12445,12947,15091,13355,12953,4884,14763,11135,15468,625,15470,625,10597,2011,13162,10806,15054,14891,15401,14631,12681,6196,10453,6326,6252,14832,8223,6098,6351,6327,15498,8229,8467,8052,6347,13399,9514,15506,14806,15502,14024,14177,9515,14831,15513,9757,2840,8876,15500,15519,14081,9515,3163,7387,2854,461,14599,5748,9352,14906,715,2892,11530,111,11339,11639,11748,15231,11713,2087,13272,1898,11758,1657,7201,959,11721,871,2892,11542,15538,11589,15540,11750,11714,11754,11650,11672,11652, 11715,11661,10041,7768,15544,15076,1540,13655,13894,2883,13659,10076,13661,13444,10068,5013,4208,13966,7828,315,2037,2883,14295,496,8587,5842,7455,4208,10103,10057,5805,15049,3279,3734,15174,2465,15547,402,11530,3585,12543,15465,13572,13437,13729,6799,2673,15579,10061,13437,8469,13858,13773,10727,14580,8693,619,13643,6787,8269,5044,8330,14130,8538,6313,13555,13625,13781,10057,13965,14058,1393,10091,10093,4894,2892,10097,1909,10099,15269,10071,12491,555,1878,5265,293,7204,15543,8043,2643,1080,1430, 3629,743,10781,6290,110,12378,118,4510,11112,648,397,12012,1632,15649,7251,12117,9620,10284,14254,7757,1683,304,10330,3736,9558,10508,4795,15194,12623,14960,14216,11864,7106,12033,7412,4008,13233,14974,11055,15675,12629,15677,11100,15679,112,15190,15187,13045,11159,12623,9620,14148,15691,15674,9659,15695,474,7541,12796,12811,15706,5288,15693,7434,15709,8424,14966,13187,11351,569,15716,69,15718,14066,9648,15707,15676,10111,12624,15206,15187,15729,15694,15731,3915,2935,15691,15688,12629,11916,10646, 15735,15717,6660,15273,14259,5398,12842,1284,6364,14857,4855,10228,14109,6226,13452,13814,13704,15678,2071,4795,7878,13856,6334,13496,14429,446,15756,14308,5794,3089,11080,578,13962,1135,15751,1270,1786,14697,15381,10520,15383,8094,10228,14327,7909,14329,14005,14331,14492,15696,15763,112,14369,8778,10712,14372,13284,14454,14552,14457,13289,8173,8966,13691,8917,12324,431,15606,6447,10228,14233,15105,5927,4874,13260,6329,4874,15006,6618,8769,15596,11136,12161,578,15812,6222,13316,7653,15787,14365,14063, 15011,9562,5943,11992,7958,7832,13462,7497,14029,13407,494,6124,14072,7001,9015,5171,2087,13030,340,15697,14574,8146,13882,15809,2066,14450,13632,5042,8512,12541,15537,15825,7306,544,13510,15758,13835,14159,14194,15761,5968,14074,13562,15843,13950,13317,14195,5870,9835,14003,4377,7911,15770,15697,14276,4936,6449,5977,4630,15846,13420,15760,1493,8153,14268,1281,10012,15119,13940,15762,7500,14423,13899,14847,6268,10228,14120,8726,13525,5674,7619,13645,1684,8503,13769,15895,14188,2028,15769,752,15033, 14367,6030,15872,13453,14030,14315,10228,8672,8316,1819,786,10290,13228,11135,431,9263,13032,14806,15581,12745,11448,290,14481,6238,5978,10228,14180,14821,7301,8795,14523,9955,10228,14322,14085,14570,15813,15697,8938,14424,14086,7350,13717,13308,10916,4622,15882,2187,15921,2352,6229,15900,9763,15798,8055,8342,9190,15270,3578,2575,15854,15795,14336,5778,6210,8434,15958,15964,8704,13959,15975,5011,15772,9555,15951,11842,13479,15864,34,15391,14916,15863,8533,15888,15795,14393,14353,10493,32,755,10763, 1323,13693,13438,14319,15261,431,15777,2254,15038,263,15040,15024,973,14084,14517,15967,15032,15697,6408,6182,12565,3836,9285,7456,9716,16035,13636,14017,4579,15697,14263,15978,16030,4654,14532,15767,6124,14176,5954,605,13028,2276,15853,15952,16031,13933,16033,10762,15833,9101,11478,7433,8390,1670,15829,15901,14432,6133,13671,8713,13673,15928,14077,8218,15933,15992,12301,16061,14172,3534,15993,15795,8469,10354,16084,15994,15969,8500,6204,15771,15949,13862,5963,13316,15920,13452,15832,16047,14318, 14185,8234,1670,16024,4512,13969,15861,5870,9584,8138,13633,7911,1632,4700,4474,12363,10778,9847,15045,5323,7055,15426,11010,15271,5680,15047,13261,11918,7706,10785,15294,9011,12282,5638,14888,7957,15489,11448,1724,14744,6747,1738,14624,14748,8089,14750,4352,7216,4780,7218,13546,15996,2246,3581,11780,15783,10707,10739,15302,3235,11437,7675,14809,15129,97,6840,14270,2192,821,10461,5507,14733,13017,11079,294,12340,6620,2209,5542,12350,4618,12068,14413,8348,4995,7448,13214,11916,9214,625,16141,15157, 12135,15475,15029,9028,11158,868,7492,576,742,99,115,2267,1545,3864,16198,6549,12538,15697,12540,7006,2030,7690,7250,1294,11088,14621,12005,6806,15141,11093,1930,9874,6344,11766,2276,14679,10163,5045,613,9464,15600,9291,10355,7326,538,7334,13571,11135,759,103,1545,16240,16186,14186,13004,11007,4607,11349,15474,15246,6373,11072,10910,4358,848,608,4527,12885,4657,16253,7217,9814,7055,16158,15902,14394,16014,16016,9747,679,11233,13886,1978,14852,5321,12452,15660,859,686,8624,10525,7716,709,11037,13818, 2575,11960,778,5271,1621,9983,1878,643,16184,825,16251,8234,9857,11980,12124,6938,539,11160,11986,9866,4370,12881,1711,15305,12318,11020,10350,1747,6431,103,14825,7290,14843,3547,9939,16197,16169,16179,1981,12102,1430,7690,11952,16333,11116,4099,6722,5021,6068,12446,5492,10140,9014,13023,12358,9067,9013,13030,1621,14910,1329,13546,4584,16241,10988,2246,15781,10724,11181,10541,3644,4144,12357,1599,12403,11974,11990,15104,11552,9856,16340,14725,10226,7326,1670,78,455,10593,3665,115,14808,16304,5149, 119,575,1929,85,7527,3765,111,1600,11712,6883,10450,15460,10452,6548,13103,12964,771,10449,9268,12327,10468,3657,16153,4250,16269,14851,4656,14759,4618,293,16236,629,9464,16161,7502,15784,16164,9633,16340,10491,5862,287,16276,15061,16278,12324,3795,16348,9011,9574,8702,4523,16317,12332,16319,15458,4523,12112,12516,7274,12020,9237,15090,16258,11473,13181,13224,15191,15692,7433,1745,15725,15731,13226,11152,15713,14967,15028,10445,4008,16457,15695,9531,1597,14905,11539,421,16387,690,100,4700,1912,12313, 9609,292,14914,11691,1087,7384,114,51,11710,15230,11591,12468,318,575,16487,15234,15086,6337,15559,1037,669,728,120,52,1655,11972,296,9843,859,7056,16388,15548,15215,16448,11886,15204,335,16474,1929,6859,16478,12336,16480,11729,16483,16492,16486,16488,15539,16490,12173,16525,16494,15545,5406,6468,11756,15723,551,16508,16503,16495,16507,14909,87,16510,11661,12157,4355,16394,259,551,9474,16481,12162,4965,10500,287,14918,454,12012,11632,7124,11684,7468,14340,16553,14915,296,1753,11694,11696,3393,1342, 11699,16572,1420,15641,2677,271,571,12868,125,124,470,12573,11747,15554,16529,12767,16531,16504,11570,15282,16498,8055,3656,16557,3405,14919,12001,16495,16315,652,15215,6588,6684,12388,16340,14913,16554,8510,1320,16558,413,16600,6648,16528,15232,16530,16485,16532,15561,376,16593,15549,16298,15733,7716,16482,11731,930,1745,15716,15600,14585,2588,16597,435,16559,5985,401,16617,15541,15560,16505,4143,16594,3568,16495,11760,7601,1534,9734,328,15108,16566,11691,930,571,16637,608,16639,16527,16587,16618, 16589,16620,16591,11648,5638,49,16647,376,16484,9034,16621,16645,11626,1430,50,16546,785,16548,16538,16543,16545,1902,16523,16630,1301,16500,16539,16660,16599,16640,15208,15555,15210,3229,16596,32,16613,9409,16495,13265,15238,3624,15547,14904,12928,1641,7254,14895,16454,12189,14902,9010,1709,7246,13238,11956,15282,16329,15251,14734,5253,16544,16475,4939,14909,648,16356,14225,11979,3226,16308,7005,11983,16311,2303,9974,11983,2661,115,16167,260,13041,12121,14791,16331,1136,16172,2E3,16175,13059,15064, 15476,16188,13163,13869,15387,9276,8029,9939,14856,14861,8258,14930,11932,2187,14927,14870,6177,4657,12521,16224,12523,16226,9880,933,12011,9408,16560,6356,16340,9312,4453,1939,7267,5638,16765,14866,4028,5638,16772,7295,7053,5414,16769,1386,6800,16723,16449,12553,14927,6511,941,5437,5451,5441,15111,451,5444,5446,5448,5450,5452,32,5440,5455,5459,5439,5456,5451,16231,16244,15824,16029,4388,291,369,9888,16421,8950,10223,1747,16439,14389,14711,12505,7269,14880,16142,16257,12553,11960,9843,12329,8048, 16336,11961,12423,11079,552,6676,4939,6828,15466,12958,16280,16341,7624,16343,10762,14855,16799,2873,14859,16866,8945,15103,15423,5492,16860,16375,16796,4855,14805,16795,6012,4578,12016,12952,16071,16510,16729,14910,16732,7536,16433,11060,16435,14754,11762,16291,7719,16245,11448,10780,16330,15065,1632,71,495,11011,13101,308,12855,16209,15295,9553,9847,9029,12905,120,12914,13059,16788,7326,670,105,11177,16217,12897,12872,10432,12823,12452,10420,1564,12161,11180,4630,16924,12899,9171,16747,792,16928, 12903,12890,2267,12907,1664,2727,16928,909,16931,13407,890,9112,259,12879,12881,13059,1946,5475,16940,499,16355,2935,4171,2723,10463,6500,84,12854,15316,16909,16892,15291,335,13264,979,1031,14258,9847,13907,15811,15503,4765,13564,15578,15632,9202,2477,10728,15617,15625,8333,15627,8336,15575,2894,8006,8946,3278,14034,15595,16828,7200,15645,15599,16026,15128,16750,14056,13446,16980,13971,355,13876,16003,16009,9095,15608,16984,13654,2673,15612,13203,6777,15615,14121,8840,15619,14344,4370,1965,13478, 14488,4296,15887,13415,13434,16113,13841,109,13961,15036,16760,13964,15570,3836,15572,10077,15590,13445,15631,2505,14059,6769,13885,15635,11029,15637,13890,10098,10942,16577,10748,2525,14023,15962,6113,15598,15647,8048,15667,6344,15652,11665,496,15655,5087,15658,100,15660,6636,15662,385,15665,10691,9797,15731,15240,3698,12780,5605,15226,11603,15228,273,16696,16588,569,15529,386,16495,6486,16536,11929,16495,3450,15237,11574,15239,431,8616,13274,666,2782,544,16058,15852,15850,10444,17111,5151,13359, 13939,13361,8329,1878,6906,17114,913,13030,17118,15753,16766,4494,500,2794,16107,12511,17133,8710,14537,16076,14539,17123,17119,6435,16497,13460,8354,7782,1632,15172,14506,9489,1875,16937,11864,15467,12822,7531,5412,7293,16863,17136,1878,14839,8571,14827,6113,15049,767,15667,550,15248,15250,16803,12958,15243,14889,17174,9730,6049,578,16900,15476,12349,13427,15046,16887,16761,7299,9026,48,10371,1135,17118,16875,16880,14771,16842,5361,17157,17178,15490,13236,10799,10444,16709,14954,10619,15683,15740, 16030,11500,17210,11914,7407,4577,17213,13231,15705,16463,10479,11904,12806,12613,13348,12810,12625,16714,15748,13274,16091,16762,9302,12460,4274,12568,16750,5606,1812,1396,3877,17200,16858,9730,13051,10131,15479,11448,16017,294,4103,10767,15053,16844,12958,13079,16038,15041,17244,16028,10153,16464,10262,17116,767,13030,2134,17126,1037,13030,13051,13039,11031,17236,15092,10181,13088,4726,13053,13055,16191,8390,1121,5166,15244,17261,12866,17237,605,149,15483,13232,13161,15051,15473,16177,16749,17275, 16046,15795,16217,5606,17290,15472,15488,17254,12212,2703,16256,13008,17287,17297,15330,9113,17182,16201,6106,3965,17308,9706,17310,13044,1632,13190,12067,16551,767,14612,731,11120,2460,9040,8994,281,8893,1531,7359,394,8887,13181,12133,15684,12938,11887,14693,13274,8618,1880,14638,14633,13466,9241,12113,15476,9776,14388,16402,6851,17336,381,12364,6734,335,16716,11290,7220,1814,16124,16869,594,10758,17161,5870,7348,16385,8753,679,7724,14597,12922,16320,7735,10443,9779,11610,14607,1662,13096,12070, 10805,14620,8840,12074,6952,10824,6952,10813,6600,12086,7020,6962,7039,12083,7019,10816,17398,10823,12095,7034,7033,7032,17405,10835,17394,10833,12098,7035,6954,9399,280,4474,11727,2087,17383,11519,15286,752,9988,17421,913,17423,12057,11675,3727,14643,11099,7390,2751,16973,17206,15409,421,17231,6780,17192,5627,10768,6867,6849,5490,12452,14761,10582,17319,15722,16750,843,512,16324,14719,16326,5855,4874,6352,5273,3925,5275,14826,14720,1076,16961,16283,9431,11887,17363,14904,9256,9258,323,7260,9847, 6541,7005,17467,17460,2244,9421,10455,12537,9065,9479,7260,5596,15088,689,16234,9847,11434,15698,7908,12237,17156,14657,17368,1669,16023,17040,9039,15711,7543,11354,15108,5275,11046,11160,11046,7848,10464,16718,12180,14947,7706,11981,17385,387,2797,15782,16833,10738,11806,7186,12405,10889,12407,12633,920,15277,15279,14995,3689,15276,12960,378,15318,15293,288,12755,9788,13181,11504,16634,11507,16027,9915,10795,7650,11051,9098,17217,15779,1297,14979,17220,11785,17292,15601,3969,3893,14896,6800,12774, 15700,15564,10693,14220,1716,13403,14186,17188,11944,1716,13080,8205,755,16040,5052,14751,9585,4779,16971,15102,1541,109,17012,14488,8057,9645,2060,17030,7059,17014,2576,9768,17506,2343,1716,16072,9741,694,15893,4657,13790,16932,7958,13795,12479,13799,9227,13799,9230,477,12487,9234,6964,17591,14588,1524,10512,10175,9847,3771,98,109,17526,8280,16163,17529,9629,4138,16420,17634,17528,14700,7186,1506,52,17633,8422,16422,17636,10295,327,9533,17247,14734,15389,3089,16006,8234,11802,15380,17527,11813,16165, 7006,14239,9155,17627,15323,1529,870,11821,11356,14770,8662,9258,778,11793,5437,15110,13792,6161,759,761,14705,7167,17544,6501,5747,15408,15567,371,17442,10179,46,9430,9425,9379,13096,10272,9382,17696,276,12450,9054,17700,6182,14817,5231,16325,15954,15138,6914,9404,16778,12009,9881,16230,9420,9400,9412,16213,4371,10738,8840,15141,17717,12181,8324,16223,17724,16779,9417,6916,16783,5493,8947,9422,6797,14872,10457,9058,17154,4173,14878,14235,16134,13133,9617,5393,10573,16232,17690,9076,7055,13252,16126, 120,15819,16108,7055,15822,13906,5691,13146,15430,913,14679,17764,11941,1040,10576,1863,13122,16318,10621,17750,13145,13012,9334,15810,110,10434,14934,366,1912,7724,16130,8348,16132,6048,7055,10437,14524,1453,15127,17260,16143,14734,15031,8234,16125,13404,16391,12340,17768,3578,17767,17778,9346,9389,12003,16776,17733,11359,17731,16228,16782,12372,12020,16379,291,258,12391,1664,16756,17315,5117,13245,10616,431,17761,1379,5253,17755,4618,77,3852,17318,1680,17825,13819,446,14805,15437,17443,9048,431, 17792,17829,5528,14939,9315,7055,17782,3262,17803,11980,14991,6780,55,17744,12447,17823,5633,12458,8662,17819,16380,17822,6533,3585,15430,17371,16770,9939,17843,14833,7326,14221,17419,579,17503,17718,17879,14876,5536,17877,17855,598,17881,383,11002,4602,17837,12865,17454,17297,17878,12340,12303,17374,2187,10255,12561,13309,17887,17847,17900,1135,14982,17796,5241,17262,4341,1670,17899,3089,1735,17862,6538,17191,17159,15266,7380,10107,13181,15282,14898,15700,11528,15486,17293,15039,17553,11502,17563, 17930,17565,984,12139,15195,13189,13237,12042,3716,15224,7142,10436,17421,16641,16664,16643,1037,2591,17099,15214,15202,9930,16515,5127,12051,11613,10954,1548,14340,17949,11619,16697,10549,17954,16535,17106,1702,8053,12251,15089,17440,17957,7167,12258,6692,15457,17518,12307,10790,16710,7688,11565,17928,3389,17933,12604,17229,14988,3715,121,17875,6795,17996,15046,10846,17741,5958,3842,7138,2027,10152,8985,3842,1912,18006,3244,122,17998,8010,2997,18013,12447,260,1912,8658,7375,17185,14760,17387,12494, 17389,4870,16150,7017,17394,6945,17396,10836,6964,12085,12082,10818,12084,17400,12100,12089,7031,6971,10826,17416,7037,12099,17415,12093,12099,17417,6090,18003,9248,4668,10838,18001,14656,4752,14813,9427,5719,17981,649,14634,8887,10853,12171,16434,16718,9362,16192,11061,121,398,14645,2317,9371,382,12165,774,18065,12311,14637,15146,6876,17727,16872,8348,15075,12173,12413,12188,18076,3622,12192,18079,10112,13137,13111,14996,12259,15178,17752,17977,7365,15453,18102,10908,335,13177,770,17964,11956,872, 9980,3649,9953,9724,8205,2187,17801,10841,17799,5149,17184,10439,17203,15320,13213,9303,16175,17439,11474,10619,17902,12588,15672,13230,6578,17570,17341,13270,7241,5213,10388,14904,13274,322,97,13581,14487,13583,3484,14702,1625,17195,4362,7326,18136,13279,4668,18160,2420,8469,17451,17314,17840,10885,455,18157,16214,7053,1870,2267,13959,18149,2070,16012,5967,16437,13744,9045,7288,17483,17710,12255,455,13279,8420,16217,401,17879,6684,18178,14352,18180,18169,11947,15754,4028,12339,7529,11923,2070,8469, 5257,14769,16787,16789,1870,6607,15998,11946,108,18194,3438,18190,15034,462,16391,13059,17944,728,4458,16811,619,5118,859,5089,1833,360,12340,6926,1870,4451,8218,591,12004,729,9207,18226,91,8564,2630,15393,10142,17061,3870,14657,18189,8652,16217,16345,558,18214,18216,1625,17274,17353,1080,18205,16021,2035,3438,16943,5633,12824,12346,8516,15791,8092,7186,9608,7946,14366,14704,738,18261,3438,8658,18174,1688,15924,15086,18250,2420,18179,6360,8830,1870,13959,18192,12340,18257,13617,18182,13928,461,18136, 17889,763,18280,17707,5247,17459,18186,9583,18287,8756,17466,8571,14842,18307,18285,1210,18295,9609,17500,12958,18149,17458,4349,17468,18249,1210,4103,8361,17243,11135,18293,18203,18286,13743,14002,16116,7820,4958,400,4604,16837,17356,7205,18131,1636,17380,318,10162,7412,17612,17025,15652,626,1601,6787,12724,11122,14824,18304,5298,17709,14337,18249,18059,18151,13366,8738,8090,6721,15512,10408,18209,8591,8894,13208,13201,5390,14691,11896,17209,17562,14493,17092,18142,7679,15196,17942,8612,11956,17692, 16414,16344,17242,17610,9275,17844,14727,14993,16334,17533,18101,11146,4554,14999,10983,1430,17831,3541,15008,9757,12241,296,10222,12352,12509,2879,13774,5671,9804,12287,1209,17789,8234,13620,17024,15799,15626,13624,16992,16195,11391,3836,13794,2910,13796,9226,13798,12487,13801,2920,9233,1924,11363,14990,12353,15514,18062,7736,15450,11956,9049,15440,12743,9954,2400,17531,16335,12244,315,5940,12719,1396,102,10873,12999,17615,8469,17657,13650,17887,18453,18119,7448,17604,15288,2087,18413,17603,6122, 18461,79,18463,4728,6856,1132,16888,9856,18480,18482,3770,18465,2918,5880,12395,9768,4208,15835,11448,2906,648,18462,18464,5389,9636,18492,13328,17611,13710,9817,18434,17615,13797,1753,9824,18440,12715,9231,13802,9234,12324,16127,18452,10919,18454,3089,18499,1929,18481,18502,1774,18504,605,6401,16469,1602,9753,392,380,345,17652,17523,15203,7167,9785,16136,288,12378,12374,323,15417,17207,10627,1387,15687,17992,18104,7263,18059,3983,6711,11097,12669,12614,12954,7215,11417,11008,17672,17453,16450,15025, 12946,17309,17895,15476,18122,8234,1840,12E3,17915,9255,18110,12279,12062,6506,10946,17948,18114,643,817,9951,3650,18524,18127,12939,18111,7374,11627,18536,379,17337,15068,9847,15078,12579,11329,12747,11344,15099,15121,12691,17214,14227,3875,16189,12106,3837,12444,9416,10067,12725,110,16379,642,11419,12748,12689,18610,15101,11364,11262,12421,15131,15163,15166,18609,12759,15085,11477,12765,9192,15176,9456,15770,15020,11664,14098,1927,18618,17716,2892,18621,10954,16002,5785,15164,11204,18635,15085, 17795,15603,11135,15130,10344,15132,15097,18626,15083,18658,12752,15184,13710,12007,16227,12011,16432,4008,18646,12455,14472,15894,15160,10607,5154,11319,18669,18657,18628,15137,637,17358,345,14642,18537,17337,11302,5773,5045,7413,18625,18608,15135,18688,15167,4579,18645,14228,11962,18024,17745,12116,15183,12028,15186,18384,15188,11494,17090,18715,11497,1597,15681,17228,15491,12145,17945,12046,12638,10655,12156,17959,7124,413,18624,7122,13157,12119,7849,18698,3562,7504,17430,14641,11777,18507,2903, 13793,18510,6818,9218,17617,18438,12486,9828,18519,17684,7365,17686,18540,17976,12027,16775,5275,16225,18242,18673,17815,18675,17171,12551,1409,9527,16436,4951,282,15180,18103,18091,18642,3653,17351,9243,17305,17202,18134,18552,17567,16714,17810,18137,10314,13186,17554,10647,18128,12779,18726,13194,12047,18729,12640,11633,1632,9042,9636,17114,15451,9479,13030,6694,1743,7219,5217,15851,17339,18792,17934,7758,12606,10311,14984,12939,14604,18346,17943,10853,12502,17666,774,6719,11989,9160,15816,10584, 9163,16724,16750,15056,14752,9586,17589,7095,429,16146,12004,14746,18242,14625,16152,10204,9168,10137,12901,6018,9176,12520,17729,8537,18674,9186,17732,9188,17734,12646,10980,774,18773,570,18649,18301,12547,18709,4618,16899,18836,17297,16882,17201,12501,9176,12556,9252,12072,14235,10786,18583,17384,18760,768,12020,16847,99,10671,17875,4687,6562,17763,17808,17903,569,18596,17805,17882,12340,14340,251,913,18596,12064,731,17887,18902,1111,18901,18898,12534,14811,729,18593,17876,6567,9013,10443,7690, 10669,6588,18596,9942,10443,17818,2060,909,99,12743,18894,17471,18159,9013,6511,501,17846,17428,1037,18926,18586,16535,12614,643,3856,2817,6995,2332,18167,6577,686,11081,18893,18057,9276,12909,4757,17497,262,9400,6859,9892,11005,14740,18783,11448,328,17771,10192,1865,1470,18913,18971,18520,470,578,18933,18957,18396,6777,8136,18472,18870,6294,17784,111,17786,10567,15748,10776,327,18132,18824,11637,1870,14653,17922,2400,17373,2667,18992,17520,12320,7245,15256,2748,10853,18576,9852,575,709,1637,16745, 17294,11446,17296,17183,18422,5149,15260,17369,10616,16890,1409,1745,461,19002,18594,17941,17204,461,70,16740,1755,11590,11326,10441,17751,10853,17497,6181,18319,17179,12906,1414,18478,1379,17283,17447,3877,11619,17511,17911,17320,17826,3808,17508,11153,19055,6580,5532,6750,18242,19064,11363,12797,15716,18952,7732,17379,19040,9361,9592,11062,3741,86,2775,8116,11607,9906,17993,946,4389,3114,6804,18486,14873,538,15355,743,87,1604,587,6839,14309,18269,7941,13634,15925,15020,1545,5045,18899,16750,1170, 323,14298,8352,684,279,770,1006,3116,846,9274,277,18621,16390,15393,17811,13749,18666,18701,15165,18703,11424,19122,15985,7274,19091,355,19093,19095,577,6839,17609,19099,4559,16004,554,3842,1687,99,19094,643,19137,107,17576,16611,16117,15650,12355,3995,65,15660,1878,17285,16246,4927,7468,17005,17297,16260,18566,4607,19157,2082,19160,11448,4148,77,18835,15096,15120,18637,19127,19178,12740,7286,3626,3628,17073,10765,5861,3625,3627,4536,19185,7488,287,19188,19184,3630,9716,15020,19164,15476,3852,11289, 6534,19169,19159,17177,17E3,6643,117,12369,9593,12816,11878,11302,11414,19174,19123,15080,18607,11396,19179,14151,19181,12547,3493,11051,17893,10590,16200,18168,1136,2862,5773,19226,17910,18573,18570,11336,10331,2586,11165,7468,18700,19220,18687,19180,11E3,11128,11460,11198,101,19204,1624,17787,19058,311,304,15362,11149,4124,4726,13056,11982,1588,5749,18242,11175,9866,16078,4143,4041,14591,766,8048,17150,19272,7047,327,9966,8625,2684,19148,291,16627,19045,11287,15346,12891,112,7474,1621,432,19199, 19058,19143,19092,19146,19136,19283,14564,19152,16008,19101,7006,12682,5758,859,19109,18615,12285,19112,3831,19115,2656,5052,19118,12491,4148,641,1006,19240,4918,15022,19243,12739,11216,18656,19247,11387,11315,625,19321,11166,17067,19176,19327,10973,19336,11233,19295,19134,19297,19282,6839,19071,7074,12769,19158,19253,19131,10148,19162,15022,258,1904,1840,5437,3845,5654,3846,9548,6806,19358,12722,14226,11363,4490,19272,11456,15603,17797,16750,3852,19252,19171,16725,9532,9736,3596,9815,5275,511,5723, 545,6806,19382,890,631,3347,6090,19352,4802,19374,19206,9730,16638,17803,17448,8048,12144,5985,1213,3790,5318,115,107,2429,12344,19289,670,19291,103,19293,19230,9620,9115,4597,108,19227,15158,15480,4124,16366,14538,91,755,4916,19241,15022,2485,15586,2888,9939,13142,15182,10619,15217,12626,7411,335,19108,1031,1430,18141,14980,12627,17549,16026,15687,18909,14657,67,17071,2748,15740,14256,16975,15530,15198,13193,256,6588,65,12882,15585,354,11811,16656,11731,15382,5562,16642,15556,15300,16495,5463,15549, 10601,15660,354,18759,19471,17950,19473,913,16569,40,41,32,61,62,1437,4390,10212,16622,1657,578,343,9563,15549,4919,1604,262,17502,16687,16629,6487,18387,16663,17966,17095,17640,9393,16677,5753,327,115,9104,3767,15549,311,19503,18059,18481,4906,19516,16609,16567,15029,16586,19510,16665,17661,10532,19514,9861,19517,7171,17101,19507,19033,16704,2573,18558,15549,6568,5762,19522,15443,15229,19472,16698,19540,14245,19542,17502,15549,6588,66,11178,19536,19518,710,19468,10193,2128,19400,19509,16395,19552, 10230,16422,19535,19516,19562,15563,9457,8993,17689,13239,18208,14871,17444,1828,19504,6616,17739,10066,9384,17698,12451,17864,4765,17697,18680,13097,17705,10554,17465,18184,18361,15990,12002,17721,17713,18242,17725,10211,17418,17804,18762,7288,19605,9394,17731,17726,11244,17728,19217,19111,19615,19608,9420,17736,17487,9036,19583,603,18981,17693,18268,14944,15445,18376,1E4,111,12945,100,16500,7135,16717,17365,14606,18888,9566,18580,4657,1514,15398,542,18986,10381,9570,6907,16174,7158,1111,17327,517, 16380,1706,19345,6675,12869,726,1514,17834,14565,10432,19646,12297,19462,6571,19650,17907,2298,1514,19653,16753,19656,1409,19658,13770,10432,19667,10762,10377,10435,10382,1493,107,5867,5190,19662,12868,881,1514,17758,13869,1514,18407,18075,10386,18145,14903,18996,3707,18073,11018,10853,18604,10781,18685,19128,18702,19246,11220,19711,4826,12733,11213,18667,18636,19222,19328,12753,11414,1079,1916,11318,18655,18686,19326,19732,11220,4101,16370,18088,5149,15117,17352,7058,19721,19126,19245,19724,19717, 10967,18664,18634,19714,19221,15134,18670,11488,15139,17733,11091,9881,16228,7460,15149,11126,15867,14709,9973,19419,19083,15159,6171,18683,19324,12751,19745,19753,19223,11425,306,18069,649,12763,18779,10473,15146,19782,9786,14892,7560,16736,15684,12031,17312,16952,11498,18383,17217,18713,18820,18788,12043,18717,17612,17217,15193,19795,18381,15292,19508,19459,12637,11608,18664,11724,12694,306,4491,17187,18395,16628,16610,13869,15201,4600,476,16175,18009,16551,10705,19564,19571,16834,11604,4251,11606, 481,5130,19437,11773,9256,16181,2775,327,16404,10451,10178,10853,3885,11236,83,10459,625,15324,9386,9048,13791,18763,10458,370,6918,19857,44,102,11235,17683,12189,19843,16398,7212,125,19614,17034,1598,14085,17583,6736,18655,8047,13964,12313,14839]}); define("tdv/events/async",["require","exports","tdv/utils"],function(a,m,h){function n(){var d=e.length,f=e.splice(0,d);k+=d;for(var l=0;l0&&(new Date).getTime()-b>100&&n()},100);return{LE:function(d,f){f===void 0&&(f=void 0);if(f!==void 0&&f>0)return-1-setTimeout(d,f||1);e.length==0&&(c.then(n),b=(new Date).getTime());g++;e.push(d);return g-1}, cancel:function(d){if(d<0)clearTimeout(-1-d);else{var f=d-k;if(f>=0){if(!e[f])throw"invalid async handle: "+d;e[f]=null}}}}}); define("tdv/events/EventDispatcher",["require","exports","tdv/events/Event","tdv/events/async","tdv/utils"],function(a,m,h,n,g){var k=function(){return function(){}}();return function(){function e(){this.bd={}}e.prototype.rcb=function(b,c,d){this.bwa(b,c,d,!0,c,!0,!1)};e.prototype.bind=function(b,c,d,f,l,p){p===void 0&&(p=!1);return this.bwa(b,c,d,f,l||c,!1,p)};e.prototype.bwa=function(b,c,d,f,l,p,q){if(b===void 0)throw"Event name undefined";if(c===void 0)throw"Event handler undefined";d=d||this; f=f?!0:!1;b in this.bd||(this.bd[b]=[]);var r=new k;r.BX=c;r.ogb=l||c;r.context=d;r.DMa=f;r.SMa=q;b=this.bd[b];p?b.unshift(r):b.push(r);return this};e.prototype.h=function(b,c,d){b in this.bd&&(d=d||this,this.bd[b]=this.bd[b].filter(function(f){return f.BX!=c||f.context!=d}),this.bd[b].length==0&&delete this.bd[b]);return this};e.prototype.dnb=function(b){b in this.bd&&delete this.bd[b]};e.prototype.ssa=function(){this.bd={}};e.prototype.o=function(b,c){c===void 0&&(c=void 0);typeof b=="string"&& (b=new h(b,c));b.name in this.bd&&(b.source=this,this.jC(b,!0),b.name in this.bd&&this.I_a(b));return this};e.prototype.I_a=function(b){e.I0.push({caller:this,event:b});e.yea||(e.yea=!0,n.LE(e.sxa))};e.sxa=function(){for(var b=(new Date).getTime()+1E3;e.I0.length;){var c=e.I0.shift();e.prototype.jC.call(c.caller,c.event,!1);if((new Date).getTime()>b)break}e.I0.length>0?n.LE(e.sxa,1):e.yea=!1};e.prototype.c8=function(b){return b in this.bd};e.prototype.CX=function(b){if(b in this.bd){b=this.bd[b]; for(var c=0;c=0&&(g=h.substr(0,n+2), h=h.substr(n+2));n=h.indexOf("/");n>0&&(h=h.substr(0,n));m=g+h+m}else m=h+m;this.Yo.href=m;m=this.Yo.href}return m};a.ohb=function(){switch(window.location.protocol){case "http:":case "https:":return!0;default:return!1}};a.Ehb=function(m){return m.indexOf("//")===0};a.s8=function(m){if(!m)return!1;var h=m.indexOf("://");return h>=3&&h<=5?!0:m.indexOf("filesystem:")==0};a.yhb=function(m){return m&&m.indexOf("/pdfjs/")>=0};a.getDirectory=function(m){m=this.lB(m);m=m.split("?")[0];m=m.split("/");m.length> 1&&m.splice(m.length-1,1);return m.join("/")+"/"};a.Ak=function(m){this.gN||(this.gN=this.bza());return this.gN[m]!==void 0};a.getQueryParameter=function(m){this.gN||(this.gN=this.bza());return this.gN[m]};a.bSa=function(m,h){var n=m.split(h);m=n[0];(n=n.slice(1).join(h))&&(n=h+n);return[m,n]};a.MD=function(m,h){if(!h)return m;var n=this.bSa(m,"#"),g=n[1];n=this.bSa(n[0],"?");var k=n[1];return k.indexOf(h)>=0?m:n[0]+(k+(k?"&":"?")+h)+g};a.parse=function(m){this.Yo.href=m;m={};m.protocol=this.Yo.protocol; m.hostname=this.Yo.hostname;m.port=this.Yo.port;m.pathname=this.Yo.pathname;m.search=this.Yo.search;m.hash=this.Yo.hash;m.host=this.Yo.host;var h=m.pathname?m.pathname.lastIndexOf("."):-1;m.veb=h>=0?m.pathname.substr(h).toLowerCase():"";return m};a.getExtension=function(m){m=this.parse(m).pathname;var h=m.lastIndexOf(".");return h>=0?m.substr(h,m.length):""};a.Tg=function(m,h){m=(this.getQueryParameter(m)||"").toLowerCase();return this.Xib(m,h)};a.Xib=function(m,h){switch(m){case "false":case "0":case "no":case "n":return!1; case "true":case "1":case "yes":case "y":return!0;default:return h}};a.nLa=function(m,h){m=parseInt(this.getQueryParameter(m));return isNaN(m)?h:m};a.H7=function(m){m=parseFloat(this.getQueryParameter(m));return isNaN(m)?void 0:m};a.bza=function(){for(var m={},h=window.location.hash.substring(1).split("&").concat(window.location.search.substring(1).split("&")),n=0;n1?decodeURIComponent(g[1]):null;m[k]=g}return m};a.Yo=document.createElement("a"); a.gN=null;a.iE=function(m){return m&&m.indexOf("data:")==0};return a}()}); define("tdv/player/view/util/Device",["require","exports","tdv/utils","tdv/player/view/util/URL"],function(a,m,h,n){var g={};g.vj=TDV.qb.s_;g.uB=TDV.qb.Xba;g.Tua=TDV.qb.gua;g.fpb=TDV.qb.aca;g.o_=TDV.qb.Yba;g.Bta=TDV.qb.fua;g.Pob=TDV.qb.$ba;g.Zba=TDV.qb.Zba;g.CQ=TDV.qb.CQ;g.Maa=TDV.qb.Maa;g.Laa=TDV.qb.Laa;g.Kaa=TDV.qb.Kaa;g.Naa=TDV.qb.Naa;g.sj=TDV.qb.sj;g.TZ=TDV.qb.TZ;g.Nk=TDV.qb.Nk;g.Pp=TDV.qb.Pp;g.NK=TDV.qb.NK;g.qF=TDV.qb.qF;g.SZ=TDV.qb.SZ;g.ox=TDV.qb.ox;g.Haa=TDV.qb.Haa;g.VZ=TDV.qb.VZ;g.qx=TDV.qb.qx; g.ru=TDV.qb.ru;g.WZ=TDV.qb.WZ;g.Iaa=TDV.qb.Iaa;g.AQ=TDV.qb.AQ;g.OK=TDV.qb.OK;g.PK=TDV.qb.PK;g.BQ=TDV.qb.BQ;g.zB=TDV.qb.zB;g.Zsa=TDV.qb.Zsa;g.yB=TDV.qb.yB;g.su=TDV.qb.su;g.tu=TDV.qb.tu;g.UZ=TDV.qb.UZ;g.Jaa=TDV.qb.Jaa;g.Oaa=TDV.qb.Oaa;g.$Z=TDV.qb.$Z;g.FQ=TDV.qb.FQ;g.Saa=TDV.qb.Saa;g.TK=TDV.qb.TK;g.GQ=TDV.qb.GQ;g.a_=TDV.qb.a_;g.JQ=TDV.qb.JQ;g.b_=TDV.qb.b_;g.UK=TDV.qb.UK;g.HQ=TDV.qb.HQ;g.IQ=TDV.qb.IQ;g.c_=TDV.qb.c_;g.Taa=TDV.qb.Taa;g.$G=function(e){e="force_"+e;if(n.Ak("debug")&&n.Ak(e))return n.getQueryParameter(e)}; g.V0a=g.$G("os");g.Nd=function(){return g.V0a||TDV.qb.Nd};g.Q0a=g.$G("browser");g.Yb=function(){return g.Q0a||TDV.qb.Yb};g.R0a=g.$G("browser_type");g.AO=function(){return g.R0a||TDV.qb.AO};g.gya=g.$G("browser_subtype");g.xc=function(){return g.gya?g.gya:TDV.qb.xc};g.S0a=g.$G("browser_version");g.NIa=function(){return g.S0a||TDV.qb.NIa};g.U0a=g.$G("device");g.wk=function(){return g.U0a||TDV.qb.wk};g.ub=function(){return TDV.qb.mobile};g.z0a=function(){for(var e=navigator.userAgent.toLowerCase(),b= ["SM-G960","SM-G965"],c=0;c=0)return!0;return!1}();g.dZa=g.Yb()!=g.Pp||navigator.userAgent.indexOf("; wv")<0?!1:!0;g.T0a=!!g.$G("chromewebview");g.eJa=function(){return g.T0a||g.dZa};g.kf=function(){return g.xc()==g.qx||g.xc()==g.ru||g.xc()==g.WZ||g.xc()==g.su||g.xc()==g.tu||g.xc()==g.yB};g.B8=function(){return g.HJ()};g.A8=function(){return g.tP()||g.VMa()||g.fNa()||g.$Ma()};g.bpa=function(){return g.xc()==g.su};g.Ama=void 0;g.nob=function(){if(g.Ama=== void 0){var e=void 0;g.jE()&&(window.location.hash.split("&").forEach(function(b){b.split("=")[0]=="app-version"&&(e=b.split("=")[1])}),e&&(e=parseInt(e)));e=e||0;g.Ama=e}return g.Ama};g.jE=function(){return g.QX()||g.bpa()};g.QX=function(){return g.xc()==g.tu};g.Bhb=function(){return g.wk()==g.a_};g.shb=function(){return g.wk()==g.b_};g.VMa=function(){return g.wk()==g.UK};g.zhb=function(){return g.wk()==g.HQ};g.Ahb=function(){return g.wk()==g.IQ};g.ZMa=function(){return g.wk()==g.JQ};g.$Ma=function(){return!!(window.location.hash&& window.location.hash.indexOf("device=picoxr")>=0)};g.fNa=function(){return g.wk()==g.c_};g.HJ=function(){return g.wk()==g.GQ};g.tP=function(){return g.wk()==g.TK};g.cI=void 0;g.kjb=function(){g.cI===void 0&&(g.cI=parseInt(n.getQueryParameter("sts")),isNaN(g.cI)&&(g.kf()&&!g.z0a?g.cI=512:g.ub()&&g.Nd()==g.vj?g.cI=512:g.cI=g.ub()?256:1024));return g.cI};g.q7a=function(){if(g.Yb()==g.Nk||g.Yb()==g.sj)try{var e=/Version\/([0-9]+\.[0-9]+)/i.exec(navigator.userAgent);if(e)return parseFloat(e[1])}catch(b){}}(); g.uQa=function(){return g.q7a};g.$2a=function(){try{var e=parseFloat((""+(/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))||!1}catch(b){}e||(e=g.uQa());return e}();g.Qoa=function(){return g.$2a};g.yXa=function(){if(g.Nd()==g.uB)try{var e=/Android ([0-9]+\.?[0-9]*)/i.exec(navigator.userAgent);if(e)return parseFloat(e[1])}catch(b){}}();g.ccb=function(){return g.yXa};g.rza=function(){var e={ZLa:"unknown", Rhb:1},b=document.createElement("canvas");if(b&&(b=b.getContext("webgl")||b.getContext("experimental-webgl"))){var c=b.getExtension("WEBGL_debug_renderer_info");c&&(e.ZLa=b.getParameter(c.UNMASKED_RENDERER_WEBGL));e.maxTextureSize=b.getParameter(b.MAX_TEXTURE_SIZE);if(c=b.getExtension("EXT_texture_filter_anisotropic")||b.getExtension("MOZ_EXT_texture_filter_anisotropic")||b.getExtension("WEBKIT_EXT_texture_filter_anisotropic"))e.Rhb=b.getParameter(c.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}return e}();g.hgb= function(){return g.rza};g.AXa=function(){var e=g.rza.ZLa.match(/Apple\s+(.+)\s+GPU/);return e?e[1].toUpperCase():"unknown"}();g.Gpb=function(){return g.AXa};g.O3a=g.wk()==g.FQ?!0:!1;g.DA=function(){return g.O3a};g.VIa=function(){return g.Yb()==g.Nk&&g.uQa()>=14};var k=!1;try{k=window.localStorage.getItem("tdvp_video_drift_2")=="true"}catch(e){}g.Egb=function(){return k};g.ylb=function(){k=!0;try{window.localStorage.setItem("tdvp_video_drift_2","true")}catch(e){}};g.NS="ontouchstart"in window||typeof window.PointerEvent!== "undefined"&&typeof navigator.maxTouchPoints!=="undefined"&&navigator.maxTouchPoints>0?!0:!1;g.nsa=function(){return g.NS};g.V3a=n.Ak("touchenabled")?n.Tg("touchenabled"):"ontouchstart"in window?g.Nd()==g.Tua?!1:!0:!1;g.Jp=function(){return g.V3a};g.summary=function(){return["browser: "+g.Yb(),"browserType: "+g.AO(),"browserSubtype: "+g.xc(),"device: "+g.wk(),"isMobile: "+g.ub(),"chromeWebView: "+g.eJa(),"touchDevice"+g.nsa(),"touchEnabled"+g.Jp()].join(", ")};g.log=function(){h.log("browser: "+g.Yb()); h.log("browserType: "+g.AO());h.log("browserSubtype: "+g.xc());h.log("device: "+g.wk());h.log("isMobile: "+g.ub());h.log("chromeWebView: "+g.eJa());h.log("touchDevice: "+g.nsa());h.log("touchEnabled: "+g.Jp())};return g}); define("tdv/player/view/util/Flags",["require","exports","tdv/player/view/util/URL"],function(a,m,h){a={};a.uu=h.Tg("debug",!1);a.XUa=h.Ak("hqhls");a.Xsa=h.Tg("audiocontext",!0);a.Zob=h.Tg("testhash",!1);a.IUa=h.Tg("exitvronblur",!1);a.rUa=h.Tg("download",!0);a.hWa=h.Tg("updatewhilehidden",!1);a.OUa=h.Tg("webgl2",!1);a.NUa=h.Tg("webgl1",!1);a.LUa=h.Tg("lowp",!1);a.tta=h.Tg("antialias");a.lWa=h.Tg("unlimited-video-resolution",!1);return a}); define("tdv/player/texts",["require"],function(){return{"bg-bg":{mute:"\u0417\u0430\u0433\u043b\u0443\u0448\u0430\u0432\u0430\u043d\u0435","cardboard-v1":"\u0410\u043a\u043e \u043d\u0435 \u0441\u0442\u0435 \u0441\u0438\u0433\u0443\u0440\u043d\u0438 \u043a\u043e\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430 Cardboard \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435, \u0438\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430 \u0445\u043e\u0442\u0441\u043f\u043e\u0442 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435. \u0421\u043b\u0435\u0434 \u0442\u043e\u0432\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0449\u0435 \u043f\u043e\u0433\u043b\u0435\u0434\u043d\u0435\u0442\u0435 \u0445\u043e\u0442\u0441\u043f\u043e\u0442\u0430 \u0438 \u0449\u0435 \u0438\u0437\u0447\u0430\u043a\u0430\u0442\u0435, \u0434\u043e\u043a\u0430\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u0442\u043e \u0441\u0435 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u0430.", "download-tour":"\u0418\u0437\u0442\u0435\u0433\u043b\u044f\u043d\u0435 \u043d\u0430 \u0442\u0443\u0440\u0430 \u0437\u0430 \u0432\u044a\u0437\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043e\u0444\u043b\u0430\u0439\u043d","change-to-drag-and-release":"\u041f\u0440\u043e\u043c\u0435\u043d\u0435\u0442\u0435 \u0440\u0435\u0436\u0438\u043c\u0430 \u043d\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u041f\u043b\u044a\u0437\u0433\u0430\u043d\u0435 \u0438 \u041f\u0443\u0441\u043a\u0430\u043d\u0435", accept:"\u041f\u0440\u0438\u0435\u043c\u0435\u0442\u0435",cancel:"\u041e\u0442\u043a\u0430\u0437","storage-not-provided-bookmark":"\u041f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0442\u043e \u0441\u044a\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0435 \u043e\u0442\u043a\u0430\u0437\u0430\u043d\u043e. \u041e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u0434\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0435 \u0442\u0430\u0437\u0438 \u0443\u0435\u0431 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0432 \u043e\u0442\u043c\u0435\u0442\u043a\u0438 \u0438 \u0434\u0430 \u044f \u043f\u0440\u0435\u0437\u0430\u0440\u0435\u0434\u0438\u0442\u0435.", "dont-display-again":"\u041d\u0435 \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u0439 \u0442\u0430\u0437\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0442\u043d\u043e\u0432\u043e","web-server-required":"\u0422\u043e\u0437\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u0435\u043b\u0435\u043d \u0442\u0443\u0440 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043f\u0443\u0441\u043d\u0430\u0442 \u043e\u0442 \u043b\u043e\u043a\u0430\u043b\u043d\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e. \u041c\u043e\u043b\u044f, \u043a\u0430\u0447\u0435\u0442\u0435 \u0433\u043e \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0438 \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e.\n\u0410\u043a\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0442\u0435, \u0438\u0437\u0442\u0435\u0433\u043b\u0435\u0442\u0435 htm \u0444\u0430\u0439\u043b\u0430 (\u0438\u043b\u0438 \u0446\u044f\u043b\u0430\u0442\u0430 \u043f\u0430\u043f\u043a\u0430 \u043d\u0430 \u0442\u0443\u0440\u0430) \u0432\u044a\u0440\u0445\u0443 \u0438\u043a\u043e\u043d\u0430\u0442\u0430 \u043d\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e TourViewer.", download:"\u0418\u0437\u0442\u0435\u0433\u043b\u044f\u043d\u0435","change-to-click-and-move":"\u041f\u0440\u043e\u043c\u0435\u043d\u0435\u0442\u0435 \u0440\u0435\u0436\u0438\u043c\u0430 \u043d\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u041a\u043b\u0438\u043a\u0432\u0430\u043d\u0435 \u0438 \u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435",yes:"\u0434\u0430","delete-downloaded":"\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435","use-safari-for-vr":"\u041f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0432\u0430\u043c\u0435 Safari, \u0437\u0430 \u0434\u0430 \u0440\u0430\u0437\u0433\u043b\u0435\u0434\u0430\u0442\u0435 \u0442\u043e\u0437\u0438 \u0442\u0443\u0440 \u0432 \u0440\u0435\u0436\u0438\u043c VR", "exit-fullscreen":"\u0418\u0437\u043b\u0435\u0437\u0442\u0435 \u043e\u0442 \u0446\u044f\u043b \u0435\u043a\u0440\u0430\u043d",no:"\u043d\u0435","download-failed":"\u0418\u0437\u0442\u0435\u0433\u043b\u044f\u043d\u0435\u0442\u043e \u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438","giroscope-disabled-http":"\u0418\u043c\u0430\u0442\u0435 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u0442\u0430\u0437\u0438 \u0443\u0435\u0431 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0447\u0440\u0435\u0437 http, \u0442\u0430\u043a\u0430 \u0447\u0435 \u0434\u043e\u0441\u0442\u044a\u043f\u044a\u0442 \u0434\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435\u0442\u043e \u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 \u0432\u0430\u0448\u0435\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438 \u0440\u0435\u0436\u0438\u043c\u044a\u0442 VR \u0441\u0430 \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0438, \u043c\u043e\u043b\u044f, \u043e\u0442\u0432\u043e\u0440\u0435\u0442\u0435 \u0433\u043e \u0447\u0440\u0435\u0437 https, \u0437\u0430 \u0434\u0430 \u0433\u0438 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u0442\u0435.", "cookies-notice":"\u0422\u0430\u0437\u0438 \u0443\u0435\u0431 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u0431\u0438\u0441\u043a\u0432\u0438\u0442\u043a\u0438 \u0437\u0430 \u0441\u044a\u0431\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u0430\u043d\u043d\u0438 \u0437\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435\u0442\u043e. \u0417\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u043c\u043e\u043b\u044f, \u043f\u043e\u0441\u0435\u0442\u0435\u0442\u0435 \u041f\u0440\u0430\u0432\u0438\u043b\u0430\u0442\u0430 \u0437\u0430 \u0431\u0438\u0441\u043a\u0432\u0438\u0442\u043a\u0438\u0442\u0435 .", "use-cardboard":"\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439 Cardboard","launch-default-browser":"\u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u0432 \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u0430 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435","refresh-downloaded":"\u041e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435","rotate-device":"\u041c\u043e\u043b\u044f \u0437\u0430\u0432\u044a\u0440\u0442\u0435\u0442\u0435 \u0432\u0430\u0448\u0435\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e", "exit-vr":"\u0418\u0437\u043b\u0438\u0437\u0430\u043d\u0435 \u043e\u0442 \u0440\u0435\u0436\u0438\u043c VR",reject:"\u041e\u0442\u0445\u0432\u044a\u0440\u043b\u0435\u0442\u0435","disable-measure":"Stop measuring",downloading:"\u0418\u0437\u0442\u0435\u0433\u043b\u044f\u043d\u0435","cardboard-v2":"\u0410\u043a\u043e \u0438\u043c\u0430\u0442\u0435 \u043e\u0447\u0438\u043b\u0430 Cardboard v2, \u043a\u043e\u0438\u0442\u043e \u0440\u0430\u0437\u043f\u043e\u043b\u0430\u0433\u0430\u0442 \u0441 \u0431\u0443\u0442\u043e\u043d, \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u043f\u043e\u0433\u043b\u0435\u0434\u043d\u0435\u0442\u0435 \u0445\u043e\u0442\u0441\u043f\u043e\u0442\u0430 \u0438 \u0434\u0430 \u043d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 \u0431\u0443\u0442\u043e\u043d\u0430, \u0437\u0430 \u0434\u0430 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u0442\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u0442\u043e \u043c\u0443.", "enable-video-audio-prompt":"\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u0438 \u0430\u0443\u0434\u0438\u043e?","storage-not-provided-launch-from-desktop":"\u041c\u043e\u043b\u044f, \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0439\u0442\u0435 \u043e\u0431\u0438\u043a\u043e\u043b\u043a\u0430\u0442\u0430 \u043e\u0442 \u0438\u043a\u043e\u043d\u0430\u0442\u0430 \u043d\u0430 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u0430, \u0437\u0430 \u0434\u0430 \u044f \u0438\u0437\u0442\u0435\u0433\u043b\u0438\u0442\u0435.", downloaded:"\u0422\u043e\u0437\u0438 \u0442\u0443\u0440 \u0435 \u0438\u0437\u0442\u0435\u0433\u043b\u0435\u043d \u0437\u0430 \u0432\u044a\u0437\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043e\u0444\u043b\u0430\u0439\u043d.","samsung-internet-vr-app-info":"\u0410\u043a\u043e \u0438\u043c\u0430\u0442\u0435 \u043e\u0447\u0438\u043b\u0430 Gear VR, \u0441\u044a\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0438 \u0441 \u0442\u043e\u0432\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0438 \u0441\u0442\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043b\u0438 Samsung Internet for VR, \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0433\u0438 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u0438 \u0437\u0430 \u043f\u0440\u0435\u0433\u043b\u0435\u0434 \u043d\u0430 \u0442\u043e\u0432\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 \u0432\u044a\u0432 VR. \u0422\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u0435 Samsung Internet \u0431\u0440\u0430\u0443\u0437\u044a\u0440 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435.", "samsung-internet-vr-info":"\u0410\u043a\u043e \u0438\u043c\u0430\u0442\u0435 \u043e\u0447\u0438\u043b\u0430 Gear VR, \u0441\u044a\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0438 \u0441 \u0442\u043e\u0432\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0438 \u0441\u0442\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043b\u0438 Samsung Internet for VR, \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0433\u0438 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u0438 \u0437\u0430 \u043f\u0440\u0435\u0433\u043b\u0435\u0434 \u043d\u0430 \u0442\u043e\u0432\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 \u0432\u044a\u0432 VR. \u0421\u0435\u0433\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u043b\u043e\u0436\u0438\u0442\u0435 \u043c\u043e\u0431\u0438\u043b\u043d\u0438\u044f \u0441\u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0432 \u043e\u0447\u0438\u043b\u0430\u0442\u0430 \u0437\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043d\u0430 \u0440\u0435\u0430\u043b\u043d\u043e\u0441\u0442.", "enable-video-prompt":"\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e?","giroscope-disabled-safari-request-permission":["\u0414\u043e\u0441\u0442\u044a\u043f\u044a\u0442 \u0437\u0430 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043d\u0430 \u0432\u0430\u0448\u0435\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438 \u0440\u0435\u0436\u0438\u043c\u044a\u0442 VR \u0441\u0430 \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0438 \u0437\u0430 \u0442\u043e\u0437\u0438 \u0441\u0430\u0439\u0442.", "\u0417\u0430 \u0434\u0430 \u0432\u0438\u0434\u0438\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043d\u043e \u0442\u0430\u0437\u0438 \u0443\u0435\u0431 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430, \u043c\u043e\u043b\u044f, \u043a\u043b\u0438\u043a\u043d\u0435\u0442\u0435 \u0432\u044a\u0440\u0445\u0443 \u043f\u0440\u043e\u0434\u044a\u043b\u0436\u0438 \u0438 \u043f\u0440\u0438\u0435\u043c\u0435\u0442\u0435 \u0438\u0441\u043a\u0430\u043d\u0435\u0442\u043e \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435."], "storage-not-provided-launch-from-homescreen":"\u041c\u043e\u043b\u044f, \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0439\u0442\u0435 \u043e\u0431\u0438\u043a\u043e\u043b\u043a\u0430\u0442\u0430 \u043e\u0442 \u0438\u043a\u043e\u043d\u0430\u0442\u0430 \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u043d\u0438\u044f \u0435\u043a\u0440\u0430\u043d, \u0437\u0430 \u0434\u0430 \u044f \u0438\u0437\u0442\u0435\u0433\u043b\u0438\u0442\u0435.","enter-fullscreen":"\u0412\u043b\u0435\u0437\u0442\u0435 \u0432 \u0446\u044f\u043b \u0435\u043a\u0440\u0430\u043d", "use-cardboard-v2":"\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439 Cardboard v2",unmute:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435 \u0437\u0432\u0443\u043a","enter-vr":"\u0412\u043b\u0435\u0437 \u0432\u044a\u0432 VR \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435","enable-measure":"Start measuring","use-cardboard-info":"\u041c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u0432\u0441\u044f\u043a\u0430\u043a\u0432\u0438 \u0441\u044a\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0438 Google Cardboard \u043e\u0447\u0438\u043b\u0430, \u0437\u0430 \u0434\u0430 \u0432\u0438\u0434\u0438\u0442\u0435 \u0442\u043e\u0432\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 \u0432\u044a\u0432 VR.", "ar-mobile-info":"\u041c\u0435\u0434\u043b\u0435\u043d\u043e \u043f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u0439\u0442\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u0441\u0438, \u0437\u0430 \u0434\u0430 \u0441\u043a\u0430\u043d\u0438\u0440\u0430\u0442\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e\u0442\u043e \u0441\u0438.\n\u0429\u0435 \u0441\u0435 \u043f\u043e\u044f\u0432\u0438 \u043a\u0440\u044a\u0433, \u043a\u043e\u0433\u0430\u0442\u043e \u0431\u044a\u0434\u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d \u043f\u043e\u0432\u044a\u0440\u0445\u043d\u043e\u0441\u0442\u0442\u0430.\n\u041d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430, \u0437\u0430 \u0434\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u0435 \u043e\u0431\u0435\u043a\u0442\u0430 \u0442\u0430\u043c.", "use-default-cardboard":"\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435","enable-audio-prompt":"\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0430\u0443\u0434\u0438\u043e?"},"fi-fi":{mute:"Poista \u00e4\u00e4ni k\u00e4yt\u00f6st\u00e4","cardboard-v1":"Mik\u00e4li et ole varma, mit\u00e4 Cardboard-versiota k\u00e4yt\u00e4t, valitse oletusarvoinen hotspot-hallinta. T\u00e4m\u00e4n j\u00e4lkeen katsomalla hotspotia, toiminto k\u00e4ynnistyy.", "download-tour":"Lataa t\u00e4m\u00e4 sis\u00e4lt\u00f6 offline-toistoa varten","change-to-drag-and-release":"Muuta ohjaustilaa vet\u00e4m\u00e4ll\u00e4 ja vapauttamalla",accept:"Hyv\u00e4ksy",download:"Lataa","storage-not-provided-bookmark":"Tallennus ep\u00e4onnistui. Kokeile lis\u00e4t\u00e4 t\u00e4m\u00e4 verkkosivu kirjanmerkkeihin ja suorita lataus uudelleen.","dont-display-again":"\u00c4l\u00e4 n\u00e4yt\u00e4 t\u00e4t\u00e4 ilmoitusta uudelleen","web-server-required":"T\u00e4t\u00e4 sis\u00e4lt\u00f6\u00e4 ei voi toistaa paikalliselta asemalta. Lataa sis\u00e4lt\u00f6 internet-palvelimelle ja yrit\u00e4 uudelleen.\nVoit my\u00f6s vet\u00e4\u00e4 htm-tiedoston (tai koko kansion) TourViewer-sovelluskuvakkeen p\u00e4\u00e4lle.", cancel:"Sulje","change-to-click-and-move":"Muuta ohjaustilaa klikkaamalla ja siirt\u00e4m\u00e4ll\u00e4",yes:"Kyll\u00e4","delete-downloaded":"Poista","use-safari-for-vr":"Suosittelemme Safari-selainta t\u00e4m\u00e4n sis\u00e4ll\u00f6n katseluun VR-tilassa.","exit-fullscreen":"Sulje koko n\u00e4yt\u00f6n n\u00e4kym\u00e4",no:"Ei","download-failed":"Lataus ep\u00e4onnistui","giroscope-disabled-http":"K\u00e4yt\u00e4t t\u00e4t\u00e4 verkkosivua http:n kautta, joten laitteesi liiketunnistimet sek\u00e4 VR-tila on poistettu k\u00e4yt\u00f6st\u00e4. Ota ne k\u00e4ytt\u00f6\u00f6n siirtym\u00e4ll\u00e4 sivulle https:n kautta.", "cookies-notice":"T\u00e4m\u00e4 verkkosivu k\u00e4ytt\u00e4\u00e4 ev\u00e4steit\u00e4 k\u00e4ytt\u00f6tilastojen ker\u00e4\u00e4miseen. Lis\u00e4tietoja ev\u00e4stek\u00e4yt\u00e4nn\u00f6st\u00e4.","use-cardboard":"K\u00e4yt\u00e4 Cardboardia","launch-default-browser":"K\u00e4ynnist\u00e4 oletusselaimessa","refresh-downloaded":"P\u00e4ivit\u00e4","rotate-device":"K\u00e4\u00e4nn\u00e4 laitettasi","exit-vr":"Poistu VR-tilasta",reject:"Hylk\u00e4\u00e4","disable-measure":"Lopeta mittaaminen", downloading:"Ladataan","cardboard-v2":"Mik\u00e4li sinulla on Cardboard v2 -virtuaalilasit, joissa on painike, voit katsoa hotspotia ja aktivoida sen painamalla painiketta.","enable-video-audio-prompt":"Otetaanko \u00e4\u00e4ni ja video k\u00e4ytt\u00f6\u00f6n?","storage-not-provided-launch-from-desktop":"Uudelleenk\u00e4ynnist\u00e4 t\u00e4m\u00e4 sis\u00e4lt\u00f6 ty\u00f6p\u00f6yd\u00e4n kuvakkeesta aloittaaksesi lataamisen.",downloaded:"T\u00e4m\u00e4 sis\u00e4lt\u00f6 on ladattu offline-toistoa varten", "samsung-internet-vr-app-info":"Mik\u00e4li sinulla on t\u00e4m\u00e4n laitteen kanssa yhteensopivat Gear VR -virtuaalilasit ja olet asentanut Samsung Internet for VR:n, voit k\u00e4ytt\u00e4\u00e4 virtuaalilaseja t\u00e4m\u00e4n sis\u00e4ll\u00f6n katseluun VR-tilassa. Sinun on lis\u00e4ksi m\u00e4\u00e4ritett\u00e4v\u00e4 Samsung Internet oletusselaimeksi.","samsung-internet-vr-info":"Mik\u00e4li sinulla on t\u00e4m\u00e4n laitteen kanssa yhteensopivat Gear VR -virtuaalilasit ja olet asentanut Samsung Internet for VR:n, voit k\u00e4ytt\u00e4\u00e4 virtuaalilaseja t\u00e4m\u00e4n sis\u00e4ll\u00f6n katseluun VR-tilassa. Aseta \u00e4lypuhelin virtuaalilaseihin aloittaaksesi.", "enable-video-prompt":"Otetaanko video k\u00e4ytt\u00f6\u00f6n?","giroscope-disabled-safari-request-permission":["Laitteesi liiketunnistimen k\u00e4ytt\u00f6oikeus ja VR-tila on poistettu k\u00e4yt\u00f6st\u00e4 t\u00e4ll\u00e4 sivustolla.","N\u00e4hd\u00e4ksesi t\u00e4m\u00e4n verkkosivun oikein, valitse jatka ja hyv\u00e4ksy lupapyynt\u00f6 pyydett\u00e4ess\u00e4."],"storage-not-provided-launch-from-homescreen":"Uudelleenk\u00e4ynnist\u00e4 t\u00e4m\u00e4 sis\u00e4lt\u00f6 kotin\u00e4yt\u00f6n kuvakkeesta aloittaaksesi lataamisen", "enter-fullscreen":"Avaa koko n\u00e4yt\u00f6n n\u00e4kym\u00e4","use-cardboard-v2":"K\u00e4yt\u00e4 Cardboard v2:sta",unmute:"Ota \u00e4\u00e4ni k\u00e4ytt\u00f6\u00f6n","enter-vr":"Siirry VR-tilaan","enable-measure":"Aloita mittaaminen","use-cardboard-info":"Voit k\u00e4ytt\u00e4\u00e4 mit\u00e4 tahansa yhteensopivia Google Cardboard -virtuaalilaseja katsellaksesi t\u00e4t\u00e4 sis\u00e4lt\u00f6\u00e4 VR-tilassa.","ar-mobile-info":"Liikuta laitteesi hitaasti avaruuteesi skannataksesi.\nYmpyr\u00e4 ilmestyy, kun pinta l\u00f6ytyy.\nPit\u00e4k\u00f6nt\u00e4n\u00e4 n\u00e4pp\u00e4in paikkaa objektia siell\u00e4.", "use-default-cardboard":"K\u00e4yt\u00e4 oletuksena","enable-audio-prompt":"Otetaanko \u00e4\u00e4ni k\u00e4ytt\u00f6\u00f6n?"},"sk-sk":{mute:"St\u00ed\u0161i\u0165","cardboard-v1":"Ak ste si nie ist\u00ed, ktor\u00fa verziu Cardboardu pou\u017e\u00edvate, vyberte si predvolen\u00e9 ovl\u00e1danie hotspotu. Potom sa jednoducho pozriete na hotspot a po\u010dkajte, k\u00fdm sa akcia nespust\u00ed.","download-tour":"Stiahnu\u0165 prehliadku na hranie v offline re\u017eime","change-to-drag-and-release":"Zmeni\u0165 re\u017eim ovl\u00e1dania na Presun\u00fa\u0165 a Uvo\u013eni\u0165", accept:"s\u00fahlasi\u0165",cancel:"Zru\u0161i\u0165","storage-not-provided-bookmark":"Trval\u00e9 \u00falo\u017eisko odmietnut\u00e9. Sk\u00faste si t\u00fato webov\u00fa str\u00e1nku ulo\u017ei\u0165 a na\u010d\u00edta\u0165 ju znova.","dont-display-again":"Tieto inform\u00e1cie u\u017e nezobrazova\u0165","web-server-required":"T\u00e1to virtu\u00e1lna prehliadka sa ned\u00e1 prehra\u0165 z lok\u00e1lneho disku. Nahrajte ju na internet a sk\u00faste to znova.\nAk chcete, potiahnite s\u00fabor htm (alebo cel\u00fd prie\u010dinok prehliadky) na ikonu aplik\u00e1cie TourViewer.", download:"Stiahnu\u0165","change-to-click-and-move":"Zmeni\u0165 re\u017eim ovl\u00e1dania na Klikn\u00fa\u0165 a Presun\u00fa\u0165",yes:"\u00e1no","delete-downloaded":"Zmaza\u0165","use-safari-for-vr":"Odpor\u00fa\u010dame pou\u017e\u00edva\u0165 Safari prehliada\u010d pre t\u00fato prehliadku v re\u017eime VR","exit-fullscreen":"Ukon\u010di\u0165 cel\u00fa obrazovku",no:"nie","download-failed":"S\u0165ahovanie zlyhalo","giroscope-disabled-http":"Na t\u00fato webov\u00fa str\u00e1nku pristupujete cez http protokol, preto pr\u00edstup k pohybu a orient\u00e1cii v\u00e1\u0161ho zariadenia a re\u017eim VR s\u00fa deaktivovan\u00e9. Ak ich chcete povoli\u0165, nav\u0161t\u00edvte str\u00e1nku cez https.", "cookies-notice":"T\u00e1to webov\u00e1 str\u00e1nka pou\u017e\u00edva s\u00fabory cookie na zhroma\u017e\u010fovanie \u0161tatist\u00edk pou\u017e\u00edvania. \u010eal\u0161ie inform\u00e1cie n\u00e1jdete v pravidl\u00e1ch pou\u017e\u00edvania s\u00faborov cookie .","use-cardboard":"Pou\u017eite Cardboard okuliare.","launch-default-browser":"Spusti\u0165 v predvolenom prehliada\u010di","refresh-downloaded":"Obnovi\u0165","rotate-device":"Oto\u010dte svoje zariadenie","exit-vr":"Ukon\u010denie VR", reject:"Odmietnu\u0165","disable-measure":"Ukon\u010di\u0165 meranie",downloading:"S\u0165ahovanie","cardboard-v2":"Ak m\u00e1te n\u00e1hlavn\u00fa s\u00fapravu Cardboard v2, ktor\u00e1 je dod\u00e1van\u00e1 s tla\u010didlom, m\u00f4\u017eete sa pozrie\u0165 na hotspot a stla\u010den\u00edm tla\u010didla spusti\u0165 akciu.","enable-video-audio-prompt":"Povoli\u0165 video a zvuk?","storage-not-provided-launch-from-desktop":"Znovu na\u010d\u00edtajte prehliadku pomocou desktop ikony pre jej stiahnite.", downloaded:"T\u00e1to prehliadka je stiahnut\u00e1 na hranie v offline re\u017eime.","samsung-internet-vr-app-info":"Ak m\u00e1te Gear VR sl\u00fachadl\u00e1\u00e1 kompatibiln\u00e9 s t\u00fdmto zariaden\u00edm a m\u00e1te nain\u0161talovan\u00fd program Samsung Internet pre VR, m\u00f4\u017eete ho tie\u017e pou\u017ei\u0165 na prezeranie tohto obsahu vo VR. Mus\u00edte si nastavi\u0165 Samsung Internet ako predvolen\u00fd prehliada\u010d.","samsung-internet-vr-info":"Ak m\u00e1te Gear VR sl\u00fachadl\u00e1 kompatibiln\u00e9 s t\u00fdmto zariaden\u00edm a m\u00e1te nain\u0161talovan\u00fd program Samsung Internet pre VR, m\u00f4\u017eete ho tie\u017e pou\u017ei\u0165 na prezeranie tohto obsahu vo VR. Sta\u010d\u00ed teraz vlo\u017ei\u0165 mobiln\u00fd telef\u00f3n do n\u00e1hlavnej s\u00fapravy.", "enable-video-prompt":"Povoli\u0165 video?","giroscope-disabled-safari-request-permission":["Pre t\u00fato str\u00e1nku s\u00fa pr\u00edstup k pohybu a orient\u00e1cii v\u00e1\u0161ho zariadenia a re\u017eim VR deaktivovan\u00e9.","Aby ste korektne videli t\u00fato webov\u00fa str\u00e1nku, pros\u00edm kliknite pokra\u010dova\u0165 a akceptujte po\u017eadovan\u00e9 povolenie."],"storage-not-provided-launch-from-homescreen":"Znovu na\u010d\u00edtajte prehliadku pomocou ikony na ploche pre jej stiahnite.", "enter-fullscreen":"Prejs\u0165 na cel\u00fa obrazovku","use-cardboard-v2":"Pou\u017eite Cardboard v2",unmute:"Zapn\u00fa\u0165 zvuk","enter-vr":"Vlo\u017ei\u0165 VR obsah","enable-measure":"Za\u010da\u0165 meranie","use-cardboard-info":"Na zobrazenie tohto obsahu vo VR m\u00f4\u017eete pou\u017ei\u0165 \u013eubovo\u013en\u00fa kompatibiln\u00fa n\u00e1hlavn\u00fa s\u00fapravu Google Cardboard.","ar-mobile-info":"Pomaly pohybujte svojim zariaden\u00edm, aby ste skanovali svoj priestor.\nKruh sa zobraz\u00ed, ke\u010f sa n\u00e1jde povrch.\nDotknite sa obrazovky, aby ste umiestnili objekt tam.", "use-default-cardboard":"Pou\u017ei\u0165 predvolen\u00e9","enable-audio-prompt":"Povoli\u0165 zvuk?"},"uk-ua":{mute:"\u0412\u0438\u043c\u043a\u043d\u0443\u0442\u0438 \u0437\u0432\u0443\u043a","cardboard-v1":"\u042f\u043a\u0449\u043e \u0432\u0438 \u043d\u0435 \u0432\u043f\u0435\u0432\u043d\u0435\u043d\u0456, \u044f\u043a\u0443 \u0432\u0435\u0440\u0441\u0456\u044e Cardboard \u0432\u0438 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0454\u0442\u0435, \u0432\u0438\u0431\u0435\u0440\u0456\u0442\u044c \u0442\u043e\u0447\u043a\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\u0443 \u0437\u0430 \u0437\u0430\u043c\u043e\u0432\u0447\u0443\u0432\u0430\u043d\u043d\u044f\u043c. \u041f\u043e\u0442\u0456\u043c \u0432\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0434\u0438\u0432\u0438\u0442\u0435\u0441\u044f \u043d\u0430 \u0442\u043e\u0447\u043a\u0443 \u0442\u0430 \u043f\u043e\u0447\u0435\u043a\u0430\u0439\u0442\u0435, \u0434\u043e\u043a\u0438 \u0434\u0456\u044f \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u044f.", "download-tour":"\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0442\u0435 \u0442\u0443\u0440 \u0434\u043b\u044f \u0432\u0456\u0434\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f \u0432 \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e\u043c\u0443 \u0440\u0435\u0436\u0438\u043c\u0456","change-to-drag-and-release":"\u0417\u043c\u0456\u043d\u0456\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u043a\u0435\u0440\u0443\u0432\u0430\u043d\u043d\u044f \u043d\u0430 \u041f\u0435\u0440\u0435\u0442\u044f\u0433\u043d\u0456\u0442\u044c \u0456 \u0432\u0456\u0434\u043f\u0443\u0441\u0442\u0456\u0442\u044c", accept:"\u041f\u0440\u0438\u0439\u043c\u0456\u0442\u044c",cancel:"\u0412\u0456\u0434\u043c\u0456\u043d\u0438\u0442\u0438","storage-not-provided-bookmark":"\u041f\u043e\u0441\u0442\u0456\u0439\u043d\u0435 \u0437\u0431\u0435\u0440\u0456\u0433\u0430\u043d\u043d\u044f \u0437\u0430\u0431\u043e\u0440\u043e\u043d\u0435\u043d\u043e. \u0421\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0434\u043e\u0434\u0430\u0442\u0438 \u0446\u044e \u0432\u0435\u0431-\u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0443 \u0432 \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0438 \u0442\u0430 \u043f\u0435\u0440\u0435\u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438 \u0457\u0457.", "dont-display-again":"\u041d\u0435 \u043f\u043e\u043a\u0430\u0437\u0443\u0439\u0442\u0435 \u0446\u044e \u0456\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u044e \u0437\u043d\u043e\u0432\u0443","web-server-required":"\u0426\u0435\u0439 \u0432\u0456\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0438\u0439 \u0442\u0443\u0440 \u043d\u0435 \u043c\u043e\u0436\u043d\u0430 \u0432\u0456\u0434\u0442\u0432\u043e\u0440\u0438\u0442\u0438 \u0437 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430. \u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0442\u0435 \u0439\u043e\u0433\u043e \u0432 \u0406\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0456 \u043f\u043e\u0432\u0442\u043e\u0440\u0456\u0442\u044c \u0441\u043f\u0440\u043e\u0431\u0443.\n\u042f\u043a\u0449\u043e \u0431\u0430\u0436\u0430\u0454\u0442\u0435, \u043f\u0435\u0440\u0435\u0442\u044f\u0433\u043d\u0456\u0442\u044c \u0444\u0430\u0439\u043b htm (\u0430\u0431\u043e \u0432\u0441\u044e \u043f\u0430\u043f\u043a\u0443 \u0442\u0443\u0440\u0443) \u043d\u0430 \u043f\u0456\u043a\u0442\u043e\u0433\u0440\u0430\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0438 TourViewer.", download:"\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438","change-to-click-and-move":"\u0417\u043c\u0456\u043d\u0456\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u043a\u0435\u0440\u0443\u0432\u0430\u043d\u043d\u044f \u043d\u0430 \u041a\u043b\u0430\u0446\u043d\u0456\u0442\u044c \u0456 \u043f\u0435\u0440\u0435\u043c\u0456\u0441\u0442\u0456\u0442\u044c",yes:"\u0442\u0430\u043a","delete-downloaded":"\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438","use-safari-for-vr":"\u041c\u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0454\u043c\u043e Safari \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434\u0443 \u0446\u044c\u043e\u0433\u043e \u0442\u0443\u0440\u0443 \u0432 \u0440\u0435\u0436\u0438\u043c\u0456 VR", "exit-fullscreen":"\u0412\u0438\u0439\u0442\u0438 \u0437 \u043f\u043e\u0432\u043d\u043e\u0435\u043a\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0443",no:"\u043d\u0456","download-failed":"\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438","giroscope-disabled-http":"\u0412\u0438 \u043e\u0442\u0440\u0438\u043c\u0443\u0454\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u043e \u0446\u0456\u0454\u0457 \u0432\u0435\u0431-\u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 http, \u0442\u043e\u043c\u0443 \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u043e \u0440\u0443\u0445\u0443 \u0442\u0430 \u043e\u0440\u0456\u0454\u043d\u0442\u0430\u0446\u0456\u0457 \u0432\u0430\u0448\u043e\u0433\u043e \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u044e \u0442\u0430 \u0440\u0435\u0436\u0438\u043c VR \u0432\u0438\u043c\u043a\u043d\u0435\u043d\u043e. \u0429\u043e\u0431 \u0443\u0432\u0456\u043c\u043a\u043d\u0443\u0442\u0438 \u0457\u0445, \u043f\u0435\u0440\u0435\u0439\u0434\u0456\u0442\u044c \u0434\u043e \u043d\u0438\u0445 \u0447\u0435\u0440\u0435\u0437 https.", "cookies-notice":"\u0426\u044f \u0432\u0435\u0431-\u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0430 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0454 \u0444\u0430\u0439\u043b\u0438 cookie \u0434\u043b\u044f \u0437\u0431\u043e\u0440\u0443 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043d\u044f. \u0414\u043b\u044f \u043e\u0442\u0440\u0438\u043c\u0430\u043d\u043d\u044f \u0434\u043e\u0434\u0430\u0442\u043a\u043e\u0432\u043e\u0457 \u0456\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u0457 \u0432\u0456\u0434\u0432\u0456\u0434\u0430\u0439\u0442\u0435 \u041f\u043e\u043b\u0456\u0442\u0438\u043a\u0443 \u0449\u043e\u0434\u043e \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043d\u044f \u0444\u0430\u0439\u043b\u0456\u0432 cookie.", "use-cardboard":"\u0412\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0439\u0442\u0435 Cardboard","launch-default-browser":"\u0417\u0430\u043f\u0443\u0441\u0442\u0456\u0442\u044c \u0443 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0456 \u0437\u0430 \u0437\u0430\u043c\u043e\u0432\u0447\u0443\u0432\u0430\u043d\u043d\u044f\u043c","refresh-downloaded":"\u041e\u043d\u043e\u0432\u0438\u0442\u0438","rotate-device":"\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u043f\u043e\u0432\u0435\u0440\u043d\u0456\u0442\u044c \u0441\u0432\u0456\u0439 \u043f\u0440\u0438\u0441\u0442\u0440\u0456\u0439", "exit-vr":"\u0412\u0438\u0439\u0434\u0456\u0442\u044c \u0456\u0437 VR",reject:"\u0412\u0456\u0434\u0445\u0438\u043b\u0438\u0442\u0438","disable-measure":"\u041f\u0440\u0438\u043f\u0438\u043d\u0456\u0442\u044c \u0432\u0438\u043c\u0456\u0440\u044e\u0432\u0430\u043d\u043d\u044f",downloading:"\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f","cardboard-v2":"\u042f\u043a\u0449\u043e \u0443 \u0432\u0430\u0441 \u0454 \u0433\u0430\u0440\u043d\u0456\u0442\u0443\u0440\u0430 Cardboard v2, \u044f\u043a\u0430 \u043f\u043e\u0441\u0442\u0430\u0447\u0430\u0454\u0442\u044c\u0441\u044f \u0437 \u043a\u043d\u043e\u043f\u043a\u043e\u044e, \u0432\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0434\u0438\u0432\u0438\u0442\u0438\u0441\u044f \u043d\u0430 \u0442\u043e\u0447\u043a\u0443 \u0442\u0430 \u043d\u0430\u0442\u0438\u0441\u043d\u0443\u0442\u0438 \u043a\u043d\u043e\u043f\u043a\u0443, \u0449\u043e\u0431 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0438 \u0457\u0457.", "enable-video-audio-prompt":"\u0423\u0432\u0456\u043c\u043a\u043d\u0443\u0442\u0438 \u0432\u0456\u0434\u0435\u043e \u0442\u0430 \u0430\u0443\u0434\u0456\u043e?","storage-not-provided-launch-from-desktop":"\u0429\u043e\u0431 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438, \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0456\u0442\u044c \u043e\u0433\u043b\u044f\u0434 \u0456\u0437 \u0437\u043d\u0430\u0447\u043a\u0430 \u043d\u0430 \u0440\u043e\u0431\u043e\u0447\u043e\u043c\u0443 \u0441\u0442\u043e\u043b\u0456.", downloaded:"\u0426\u0435\u0439 \u0442\u0443\u0440 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043e \u0434\u043b\u044f \u0432\u0456\u0434\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f \u0432 \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e\u043c\u0443 \u0440\u0435\u0436\u0438\u043c\u0456.","samsung-internet-vr-app-info":"\u042f\u043a\u0449\u043e \u0443 \u0432\u0430\u0441 \u0454 \u0433\u0430\u0440\u043d\u0456\u0442\u0443\u0440\u0430 Gear VR, \u0441\u0443\u043c\u0456\u0441\u043d\u0430 \u0437 \u0446\u0438\u043c \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u0454\u043c, \u0456 \u0432\u0438 \u0432\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 Samsung Internet \u0434\u043b\u044f VR, \u0432\u0438 \u0442\u0430\u043a\u043e\u0436 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0457\u0457 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434\u0443 \u0446\u044c\u043e\u0433\u043e \u0432\u043c\u0456\u0441\u0442\u0443 \u0443 VR, \u0432\u0430\u043c \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u043e \u0437\u0440\u043e\u0431\u0438\u0442\u0438 Samsung Internet \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c \u0437\u0430 \u0437\u0430\u043c\u043e\u0432\u0447\u0443\u0432\u0430\u043d\u043d\u044f\u043c.", "samsung-internet-vr-info":"\u042f\u043a\u0449\u043e \u0443 \u0432\u0430\u0441 \u0454 \u0433\u0430\u0440\u043d\u0456\u0442\u0443\u0440\u0430 Gear VR, \u0441\u0443\u043c\u0456\u0441\u043d\u0430 \u0437 \u0446\u0438\u043c \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u0454\u043c, \u0456 \u0432\u0438 \u0432\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 Samsung Internet \u0434\u043b\u044f \u0432\u0456\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0457 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0456, \u0432\u0438 \u0442\u0430\u043a\u043e\u0436 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0457\u0457 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434\u0443 \u0446\u044c\u043e\u0433\u043e \u0432\u043c\u0456\u0441\u0442\u0443 \u0443 VR, \u0432\u0430\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0440\u0430\u0437 \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u043e \u043f\u0456\u0434\u2019\u0454\u0434\u043d\u0430\u0442\u0438 \u043c\u043e\u0431\u0456\u043b\u044c\u043d\u0438\u0439 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0434\u043e \u0433\u0430\u0440\u043d\u0456\u0442\u0443\u0440\u0438.", "enable-video-prompt":"\u0423\u0432\u0456\u043c\u043a\u043d\u0443\u0442\u0438 \u0432\u0456\u0434\u0435\u043e?","giroscope-disabled-safari-request-permission":["\u0414\u043e\u0441\u0442\u0443\u043f \u0434\u043e \u0440\u0443\u0445\u0443 \u0442\u0430 \u043e\u0440\u0456\u0454\u043d\u0442\u0430\u0446\u0456\u0457 \u0432\u0430\u0448\u043e\u0433\u043e \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u044e, \u0430 \u0442\u0430\u043a\u043e\u0436 \u0440\u0435\u0436\u0438\u043c VR \u0432\u0438\u043c\u043a\u043d\u0435\u043d\u043e \u0434\u043b\u044f \u0446\u044c\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0443.", "\u0429\u043e\u0431 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u043d\u0443\u0442\u0438 \u0446\u044e \u0432\u0435\u0431-\u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0443, \u043d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u00ab\u041f\u0440\u043e\u0434\u043e\u0432\u0436\u0438\u0442\u0438\u00bb \u0442\u0430 \u043f\u0440\u0438\u0439\u043c\u0456\u0442\u044c \u0437\u0430\u043f\u0438\u0442 \u043d\u0430 \u0434\u043e\u0437\u0432\u0456\u043b, \u044f\u043a\u0449\u043e \u0437\u2019\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u0437\u0430\u043f\u0438\u0442."], "storage-not-provided-launch-from-homescreen":"\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0456\u0442\u044c \u0442\u0443\u0440 \u0437\u0456 \u0437\u043d\u0430\u0447\u043a\u0430 \u0433\u043e\u043b\u043e\u0432\u043d\u043e\u0433\u043e \u0435\u043a\u0440\u0430\u043d\u0430, \u0449\u043e\u0431 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438.","enter-fullscreen":"\u041f\u0435\u0440\u0435\u0439\u0434\u0456\u0442\u044c \u0443 \u043f\u043e\u0432\u043d\u043e\u0435\u043a\u0440\u0430\u043d\u043d\u0438\u0439 \u0440\u0435\u0436\u0438\u043c", "use-cardboard-v2":"\u0412\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0439\u0442\u0435 Cardboard v2",unmute:"\u0423\u0432\u0456\u043c\u043a\u043d\u0443\u0442\u0438 \u0437\u0432\u0443\u043a","enter-vr":"\u041e\u0431\u0435\u0440\u0456\u0442\u044c \u0432\u043c\u0456\u0441\u0442 VR","enable-measure":"\u041f\u043e\u0447\u043d\u0456\u0442\u044c \u0432\u0438\u043c\u0456\u0440\u044e\u0432\u0430\u0442\u0438","use-cardboard-info":"\u0412\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0431\u0443\u0434\u044c-\u044f\u043a\u0443 \u0441\u0443\u043c\u0456\u0441\u043d\u0443 \u0433\u0430\u0440\u043d\u0456\u0442\u0443\u0440\u0443 Google Cardboard \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434\u0443 \u0446\u044c\u043e\u0433\u043e \u0432\u043c\u0456\u0441\u0442\u0443 \u0443 VR.", "ar-mobile-info":"\u041f\u043e\u0432\u0456\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u043c\u0456\u0449\u0443\u0439\u0442\u0435 \u043f\u0440\u0438\u0441\u0442\u0440\u0456\u0439, \u0449\u043e\u0431 \u043f\u0440\u043e\u0441\u043a\u0430\u043d\u0443\u0432\u0430\u0442\u0438 \u043f\u0440\u043e\u0441\u0442\u0456\u0440.\n\u041a\u043e\u043b\u0438 \u0431\u0443\u0434\u0435 \u0437\u043d\u0430\u0439\u0434\u0435\u043d\u043e \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u044e, \u0437\u2019\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u043a\u0456\u043b\u044c\u0446\u0435.\n\u0422\u043e\u0440\u043a\u043d\u0456\u0442\u044c\u0441\u044f \u0435\u043a\u0440\u0430\u043d\u0430, \u0449\u043e\u0431 \u0440\u043e\u0437\u043c\u0456\u0441\u0442\u0438\u0442\u0438 \u0442\u0430\u043c \u043e\u0431\u2019\u0454\u043a\u0442.", "use-default-cardboard":"\u0412\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0437\u0430 \u0437\u0430\u043c\u043e\u0432\u0447\u0443\u0432\u0430\u043d\u043d\u044f\u043c","enable-audio-prompt":"\u0423\u0432\u0456\u043c\u043a\u043d\u0443\u0442\u0438 \u0430\u0443\u0434\u0456\u043e?"},"en-us":{mute:"Mute","cardboard-v1":"If you are not sure, which Cardboard version you're using, select the default hotspot control. You'll then simply gaze at a hotspot and wait until the action is triggered.", "download-tour":"Download Tour for offline playing","change-to-drag-and-release":"Change control mode to Drag and Release",accept:"Accept",cancel:"Cancel","storage-not-provided-bookmark":"Persistent storage denied. Try bookmarking this webpage and reloading it.","dont-display-again":"Don't display this info again","web-server-required":"This virtual tour cannot be played from a local drive. Please upload it to the internet and try again.\nIf you prefer, drag the htm file (or the entire folder of the tour) onto the icon of the TourViewer app.", download:"Download","change-to-click-and-move":"Change control mode to Click and Move",yes:"yes","delete-downloaded":"Delete","use-safari-for-vr":"We recommend Safari to view this tour in VR mode","exit-fullscreen":"Exit fullscreen",no:"no","download-failed":"Download failed","giroscope-disabled-http":"You are accessing this webpage through http so your device's motion and orientation access and VR mode are disabled, please access it through https to enable them.","cookies-notice":"This web page uses cookies to collect usage statistics. For more information, please visit the Cookie Policy.", "use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","refresh-downloaded":"Refresh","rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"Reject","disable-measure":"Stop measuring",downloading:"Downloading","cardboard-v2":"If you have a Cardboard v2 headset, which comes with a button, you can gaze at a hotspot and press the button to trigger its action.","enable-video-audio-prompt":"Enable video and audio?","storage-not-provided-launch-from-desktop":"Please relaunch the tour from the desktop icon to download.", downloaded:"This tour is downloaded for offline playing.","samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.", "enable-video-prompt":"Enable video?","giroscope-disabled-safari-request-permission":["Your device's motion and orientation access and VR mode are disabled for this site.","To properly see this webpage, please click continue and accept the permission request if prompted."],"storage-not-provided-launch-from-homescreen":"Please relaunch the tour from the home screen icon to download.","enter-fullscreen":"Enter fullscreen","use-cardboard-v2":"Use Cardboard v2",unmute:"Unmute","enter-vr":"Enter VR content", "enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","ar-mobile-info":"Slowly move your device to scan your space.\nA ring will appear when a surface is found.\nTap the screen to place the object there.","use-default-cardboard":"Use Default","enable-audio-prompt":"Enable audio?"},"sv-se":{mute:"Inaktivera ljud","cardboard-v1":"If you are not sure, which Cardboard version you're using, select the default hotspot control. You'll then simply gaze at a hotspot and wait until the action is triggered.", "download-tour":"Download Tour for offline playing","change-to-drag-and-release":"\u00c4ndra kontrolll\u00e4ge f\u00f6r att dra och sl\u00e4ppa",accept:"Acceptera",download:"Download","storage-not-provided-bookmark":"Persistent storage denied. Try bookmarking this webpage and reloading it.","dont-display-again":"Don't display this info again","web-server-required":"This virtual tour cannot be played from a local drive. Please upload it to the internet and try again.\nIf you prefer, drag the htm file (or the entire folder of the tour) onto the icon of the TourViewer app.", cancel:"Cancel","change-to-click-and-move":"\u00c4ndra kontrolll\u00e4ge f\u00f6r att klicka och flytta",yes:"ja","delete-downloaded":"Delete","use-safari-for-vr":"We recommend Safari to view this tour in VR mode","exit-fullscreen":"Avsluta fullsk\u00e4rmen",no:"Nej","download-failed":"Download failed","giroscope-disabled-http":"You are accessing this webpage through http so your device's motion and orientation access and VR mode are disabled, please access it through https to enable them.","cookies-notice":"Denna webbsida anv\u00e4nder cookies f\u00f6r att samla in anv\u00e4ndningsstatistik. F\u00f6r mer information, bes\u00f6k Cookie Policy.", "use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","refresh-downloaded":"Refresh","rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"Avvisa","disable-measure":"Stop measuring",downloading:"Downloading","cardboard-v2":"If you have a Cardboard v2 headset, which comes with a button, you can gaze at a hotspot and press the button to trigger its action.","enable-video-audio-prompt":"Aktivera ljud och video?","storage-not-provided-launch-from-desktop":"Please relaunch the tour from the desktop icon to download.", downloaded:"This tour is downloaded for offline playing.","samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.", "enable-video-prompt":"Aktivera video?","giroscope-disabled-safari-request-permission":["Your device's motion and orientation access and VR mode are disabled for this site.","To properly see this webpage, please click continue and accept the permission request if prompted."],"storage-not-provided-launch-from-homescreen":"Please relaunch the tour from the home screen icon to download.","enter-fullscreen":"Ange fullsk\u00e4rm","use-cardboard-v2":"Use Cardboard v2",unmute:"Aktivera ljud","enter-vr":"Enter VR content", "enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","ar-mobile-info":"Flytta enheten sakta f\u00f6r att skanna rummet.\nEn ring kommer att visas n\u00e4r en yta hittas.\nTryck p\u00e5 sk\u00e4rmen f\u00f6r att placera objektet d\u00e4r.","use-default-cardboard":"Use Default","enable-audio-prompt":"Aktivera ljud?"},"id-id":{mute:"Mute","cardboard-v1":"If you are not sure, which Cardboard version you're using, select the default hotspot control. You'll then simply gaze at a hotspot and wait until the action is triggered.", "download-tour":"Download Tour for offline playing","change-to-drag-and-release":"Change control mode to Drag and Release",accept:"Menerima",cancel:"Cancel","storage-not-provided-bookmark":"Persistent storage denied. Try bookmarking this webpage and reloading it.","dont-display-again":"Don't display this info again","web-server-required":"This virtual tour cannot be played from a local drive. Please upload it to the internet and try again.\nIf you prefer, drag the htm file (or the entire folder of the tour) onto the icon of the TourViewer app.", download:"Download","change-to-click-and-move":"Change control mode to Click and Move",yes:"yes","delete-downloaded":"Delete","use-safari-for-vr":"We recommend Safari to view this tour in VR mode","exit-fullscreen":"Exit fullscreen",no:"no","download-failed":"Download failed","giroscope-disabled-http":"You are accessing this webpage through http so your device's motion and orientation access and VR mode are disabled, please access it through https to enable them.","cookies-notice":"Halaman web ini menggunakan cookie untuk mengumpulkan statistik penggunaan. Untuk informasi lebih lanjut, silakan kunjungi Kebijakan Cookie.", "use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","refresh-downloaded":"Refresh","rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"Menolak","disable-measure":"Stop measuring",downloading:"Downloading","cardboard-v2":"If you have a Cardboard v2 headset, which comes with a button, you can gaze at a hotspot and press the button to trigger its action.","enable-video-audio-prompt":"Enable video and audio?","storage-not-provided-launch-from-desktop":"Please relaunch the tour from the desktop icon to download.", downloaded:"This tour is downloaded for offline playing.","samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.", "enable-video-prompt":"Enable video?","giroscope-disabled-safari-request-permission":["Your device's motion and orientation access and VR mode are disabled for this site.","To properly see this webpage, please click continue and accept the permission request if prompted."],"storage-not-provided-launch-from-homescreen":"Please relaunch the tour from the home screen icon to download.","enter-fullscreen":"Enter fullscreen","use-cardboard-v2":"Use Cardboard v2",unmute:"Unmute","enter-vr":"Enter VR content", "enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","ar-mobile-info":"Gerakkan perangkat Anda perlahan untuk memindai ruang Anda.\nLingkaran akan muncul ketika permukaan ditemukan.\nSentuh layar untuk meletakkan objek di sana.","use-default-cardboard":"Use Default","enable-audio-prompt":"Enable audio?"},"pt-br":{mute:"Desativar som","cardboard-v1":"Se voc\u00ea n\u00e3o tiver certeza de qual vers\u00e3o do Cardboard est\u00e1 usando, selecione o controle de ponto de acesso padr\u00e3o. Voc\u00ea simplesmente olha para um ponto de acesso e espera at\u00e9 que a a\u00e7\u00e3o seja acionada.", "download-tour":"Download do Tour para reprodu\u00e7\u00e3o offline","change-to-drag-and-release":"Alterar controle para arrastar e soltar",accept:"Aceitar",cancel:"Cancelar","storage-not-provided-bookmark":"Armazenamento persistente negado. Tente marcar esta p\u00e1gina da Web e recarreg\u00e1-la.","dont-display-again":"N\u00e3o exibir essas informa\u00e7\u00f5es novamente","web-server-required":"Este passeio virtual n\u00e3o pode ser reproduzido a partir de uma unidade local. Envie-o para a Internet e tente novamente.\nSe preferir, arraste o arquivo htm (ou toda a pasta do tour) para o \u00edcone do aplicativo TourViewer.", download:"Download","change-to-click-and-move":"Alterar controle para clicar e mover",yes:"sim","delete-downloaded":"Apagar","use-safari-for-vr":"Recomendamos o Safari para ver este passeio no modo VR","exit-fullscreen":"Sair da tela cheia",no:"n\u00e3o","download-failed":"Falha no Download","giroscope-disabled-http":"Voc\u00ea est\u00e1 acessando esta p\u00e1gina da Web por meio do http, para que o acesso \u00e0 orienta\u00e7\u00e3o e movimento do dispositivo e o modo VR sejam desativados, acesse-o atrav\u00e9s de https para ativ\u00e1-los.", "cookies-notice":"Esta p\u00e1gina da web usa cookies para coletar estat\u00edsticas de uso. Para obter mais informa\u00e7\u00f5es, visite a Pol\u00edtica de cookies.","use-cardboard":"Use Cardboard","launch-default-browser":"Iniciar no navegador padr\u00e3o","refresh-downloaded":"Atualizar","rotate-device":"Por favor, gire seu dispositivo","exit-vr":"Sair do VR",reject:"Rejeitar","disable-measure":"Stop measuring",downloading:"Baixando","cardboard-v2":"Se voc\u00ea tiver um fone de ouvido Cardboard v2, que vem com um bot\u00e3o, poder\u00e1 observar um ponto de acesso e pressionar o bot\u00e3o para acionar sua a\u00e7\u00e3o.", "enable-video-audio-prompt":"Ativar \u00e1udio e v\u00eddeo?","storage-not-provided-launch-from-desktop":"Por favor, reinicie o tour no \u00edcone da \u00e1rea de trabalho para fazer o download.",downloaded:"This tour is downloaded for offline playing.","samsung-internet-vr-app-info":"Se voc\u00ea possui um fone de ouvido Gear VR compat\u00edvel com este dispositivo e instalou o Samsung Internet for VR, tamb\u00e9m pode us\u00e1-lo para visualizar esse conte\u00fado em VR. Voc\u00ea precisa tornar o Samsung Internet o seu padr\u00e3o. browser.", "samsung-internet-vr-info":"Se voc\u00ea possui um fone de ouvido Gear VR compat\u00edvel com este dispositivo e instalou o Samsung Internet for VR, tamb\u00e9m pode us\u00e1-lo para visualizar esse conte\u00fado em VR. Basta colocar o celular no fone de ouvido agora.","enable-video-prompt":"Ativar v\u00eddeo?","giroscope-disabled-safari-request-permission":["O acesso a movimento e orienta\u00e7\u00e3o do dispositivo e o modo VR est\u00e3o desativados para este site.","Para ver corretamente esta p\u00e1gina da web, clique em continuar e aceite a solicita\u00e7\u00e3o de permiss\u00e3o, se solicitado."], "storage-not-provided-launch-from-homescreen":"Reinicie o tour no \u00edcone da tela inicial para fazer o download.","enter-fullscreen":"Entrar em tela cheia","use-cardboard-v2":"Use Cardboard v2",unmute:"Ativar som","enter-vr":"Inserir conte\u00fado VR","enable-measure":"Start measuring","use-cardboard-info":"Voc\u00ea pode usar qualquer fone de ouvido compat\u00edvel do Google Cardboard para visualizar este conte\u00fado em VR","ar-mobile-info":"Mova lentamente o dispositivo para escanear o espa\u00e7o.\nUm anel aparecer\u00e1 quando uma superf\u00edcie for encontrada.\nToque na tela para colocar o objeto ali.", "use-default-cardboard":"Use o padr\u00e3o","enable-audio-prompt":"Ativar \u00e1udio?"},"it-it":{mute:"Disattiva audio","cardboard-v1":"Se non sei sicuro della versione di Cardboard, seleziona il controllo hotspot predefinito. Baster\u00e0 guardare un hotspot e attendere che l'azione venga attivata.","download-tour":"Scarica il tour per la riproduzione offline","change-to-drag-and-release":"Cambia modalit\u00e0 di controllo in Trascina e Rilascia",accept:"Accetta",cancel:"Annulla","storage-not-provided-bookmark":"Archiviazione persistente negata. Prova ad aggiungere questa pagina ai segnalibri e ricaricala.", "dont-display-again":"Non mostrare pi\u00f9 queste informazioni","web-server-required":"Questo tour virtuale non pu\u00f2 essere riprodotto da un'unit\u00e0 locale. Caricalo su internet e riprova.\nIn alternativa, trascina il file html (o l'intera cartella del tour) sull'icona dell'app TourViewer.",download:"Scarica","change-to-click-and-move":"Cambia modalit\u00e0 di controllo in Clicca e Sposta",yes:"s\u00ec","delete-downloaded":"Elimina","use-safari-for-vr":"Consigliamo l'uso di Safari per visualizzare questo tour in modalit\u00e0 VR", "exit-fullscreen":"Esci da schermo intero",no:"no","download-failed":"Download fallito","giroscope-disabled-http":"Stai accedendo a questa pagina tramite http, quindi l'accesso al movimento, all'orientamento e alla modalit\u00e0 VR del dispositivo \u00e8 disabilitato. Accedi tramite https per abilitarli.","cookies-notice":"Questo sito web utilizza i cookie per raccogliere statistiche di utilizzo. Per ulteriori informazioni, visita la Politica sui Cookie.","use-cardboard":"Usa Cardboard","launch-default-browser":"Apri nel browser predefinito", "refresh-downloaded":"Aggiorna","rotate-device":"Ruota il dispositivo","exit-vr":"Esci dalla VR",reject:"Rifiuta","disable-measure":"Interrompi misurazione",downloading:"Download in corso","cardboard-v2":"Se hai un visore Cardboard v2, con un pulsante, guarda l'hotspot e premi il pulsante per attivare l'azione.","enable-video-audio-prompt":"Abilitare video e audio?","storage-not-provided-launch-from-desktop":"Avvia il tour dall'icona sul desktop per scaricarlo.",downloaded:"Questo tour \u00e8 stato scaricato per la riproduzione offline.", "samsung-internet-vr-app-info":"Se hai un visore Gear VR compatibile con questo dispositivo e hai installato Samsung Internet for VR, puoi usarlo per visualizzare questo contenuto in VR. \u00c8 necessario impostare Samsung Internet come browser predefinito.","samsung-internet-vr-info":"Se hai un visore Gear VR compatibile con questo dispositivo e hai installato Samsung Internet for VR, puoi usarlo per visualizzare questo contenuto in VR. Basta inserire il telefono nel visore ora.","enable-video-prompt":"Abilitare il video?", "giroscope-disabled-safari-request-permission":["L'accesso al movimento e all'orientamento del dispositivo e la modalit\u00e0 VR sono disabilitati per questo sito.","Per visualizzare correttamente questa pagina, fai clic su continua e accetta la richiesta di autorizzazione se viene mostrata."],"storage-not-provided-launch-from-homescreen":"Avvia il tour dall'icona nella schermata iniziale per scaricarlo.","enter-fullscreen":"Vai a schermo intero","use-cardboard-v2":"Usa Cardboard v2",unmute:"Attiva audio", "enter-vr":"Accedi ai contenuti VR","enable-measure":"Inizia misurazione","use-cardboard-info":"Puoi usare un visore compatibile con Google Cardboard per visualizzare questo contenuto in VR.","ar-mobile-info":"Muovi lentamente il dispositivo per scansionare lo spazio.\nUn anello apparir\u00e0 quando viene trovata una superficie.\nTocca lo schermo per posizionare l'oggetto l\u00ec.","use-default-cardboard":"Usa Predefinito","enable-audio-prompt":"Abilitare l'audio?"},"zh-tw":{mute:"\u975c\u97f3","cardboard-v1":"If you are not sure, which Cardboard version you're using, select the default hotspot control. You'll then simply gaze at a hotspot and wait until the action is triggered.", "download-tour":"\u4e0b\u8f09\u865b\u64ec\u5c0e\u89bd\uff0c\u4ee5\u9032\u884c\u96e2\u7dda\u64ad\u653e","change-to-drag-and-release":"\u5c07\u63a7\u5236\u6a21\u5f0f\u66f4\u6539\u70ba\u201c\u62d6\u653e\u6a21\u5f0f\u201c",accept:"\u63a5\u53d7",cancel:"\u53d6\u6d88","storage-not-provided-bookmark":"\u88dd\u7f6e\u5167\u6c38\u4e45\u5b58\u5132\u88ab\u62d2\u7d55\u3002\u8acb\u5617\u8a66\u5c07\u6b64\u7db2\u9801\u65b0\u589e\u70ba\u66f8\u7c64\uff0c\u4e26\u91cd\u65b0\u8f09\u5165\u3002","dont-display-again":"\u4e0d\u518d\u986f\u793a\u672c\u8a0a\u606f", "web-server-required":"\u672c\u865b\u64ec\u5c0e\u89bd\u7121\u6cd5\u5728\u672c\u5730\u96fb\u8166\u4e0a\u64ad\u653e\u3002 \u8acb\u5c07\u5176\u4e0a\u50b3\u5230\u7db2\u969b\u7db2\u8def\u4f3a\u670d\u5668\uff0c\u7136\u5f8c\u91cd\u8a66\u3002\n\u5982\u679c\u9700\u8981\u672c\u5730\u9810\u89bd\uff0c\u8acb\u5c07htm\u6a94\u6848\uff08\u6216\u865b\u64ec\u5c0e\u89bd\u7684\u6574\u500b\u8cc7\u6599\u593e\uff09\u62d6\u653e\u5230TourViewer\u61c9\u7528\u7a0b\u793a\u7684\u5716\u793a\u4e0a\u3002",download:"\u4e0b\u8f09", "change-to-click-and-move":"\u5c07\u63a7\u5236\u6a21\u5f0f\u66f4\u6539\u70ba\u201c\u9ede\u64ca\u4e26\u79fb\u52d5\u201d",yes:"\u662f","delete-downloaded":"\u522a\u9664","use-safari-for-vr":"We recommend Safari to view this tour in VR mode","exit-fullscreen":"\u9000\u51fa\u5168\u87a2\u5e55",no:"\u5426","download-failed":"\u4e0b\u8f09\u5931\u6557","giroscope-disabled-http":"\u60a8\u6b63\u5728\u901a\u904ehttp(\u672a\u52a0\u5bc6)\u700f\u89bd\u672c\u7db2\u9801\uff0c\u56e0\u6b64\u8a2d\u5099\u7684\u904b\u52d5\u548c\u65b9\u5411\u53d6\u7528\u6b0a\u9650\uff0c\u4ee5\u53caVR\u6a21\u5f0f\u5747\u5df2\u7981\u7528\uff0c\u8acb\u53e6\u901a\u904ehttps(\u52a0\u5bc6)\u7db2\u5740\u5c0d\u5176\u9032\u884c\u555f\u7528\u3002", "cookies-notice":"\u8a72\u7db2\u9801\u4f7f\u7528cookie\u4f86\u6536\u96c6\u4f7f\u7528\u60c5\u6cc1\u7d71\u8a08\u4fe1\u606f\u3002 \u6709\u95dc\u66f4\u591a\u4fe1\u606f\uff0c\u8acb\u8a2a\u554f Cookie\u653f\u7b56\u3002","use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","refresh-downloaded":"\u91cd\u65b0\u6574\u7406","rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"\u62d2\u7d55","disable-measure":"Stop measuring",downloading:"\u6b63\u5728\u4e0b\u8f09", "cardboard-v2":"If you have a Cardboard v2 headset, which comes with a button, you can gaze at a hotspot and press the button to trigger its action.","enable-video-audio-prompt":"\u5141\u8a31\u5f71\u7247\u53ca\u8072\u97f3\u64ad\u653e?","storage-not-provided-launch-from-desktop":"\u8acb\u5f9e\u684c\u9762\u9ede\u64ca\u5716\u793a\uff0c\u91cd\u65b0\u555f\u52d5\u865b\u64ec\u5c0e\u89bd\uff0c\u4ee5\u9032\u884c\u4e0b\u8f09\u3002",downloaded:"\u865b\u64ec\u5c0e\u89bd\u5df2\u4e0b\u8f09\uff0c\u53ef\u9032\u884c\u96e2\u7dda\u64ad\u653e\u3002", "samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.","enable-video-prompt":"\u5141\u8a31\u5f71\u7247\u64ad\u653e?", "giroscope-disabled-safari-request-permission":["\u8a72\u7db2\u7ad9\u5df2\u7981\u7528\u60a8\u8a2d\u5099\u7684\u904b\u52d5\u548c\u65b9\u5411\u53d6\u7528\u6b0a\u9650\uff0cVR\u6a21\u5f0f\u4e5f\u88ab\u7981\u7528\u3002","\u8981\u6b63\u78ba\u67e5\u770b\u672c\u7db2\u9801\uff0c\u8acb\u55ae\u64ca\u7e7c\u7e8c\uff0c\u4e26\u5728\u51fa\u73fe\u63d0\u793a\u6642\u63a5\u53d7\u8a31\u53ef\u8acb\u6c42\u3002"],"storage-not-provided-launch-from-homescreen":"\u8acb\u4e3b\u9801\u9762\u87a2\u5e55\u9ede\u64ca\u5716\u793a\uff0c\u91cd\u65b0\u555f\u52d5\u865b\u64ec\u5c0e\u89bd\uff0c\u4ee5\u9032\u884c\u4e0b\u8f09\u3002", "enter-fullscreen":"\u9032\u5165\u5168\u87a2\u5e55","use-cardboard-v2":"Use Cardboard v2",unmute:"\u53d6\u6d88\u975c\u97f3","enter-vr":"Enter VR content","enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","ar-mobile-info":"\u7de9\u6162\u79fb\u52d5\u8a2d\u5099\uff0c\u4ee5\u6383\u63cf\u7a7a\u9593\u3002\n\u7576\u627e\u5230\u8868\u9762\u6642\uff0c\u6703\u51fa\u73fe\u4e00\u500b\u5713\u5708\u3002\n\u9ede\u64ca\u5c4f\u5e55\uff0c\u5c07\u7269\u9ad4\u653e\u5728\u90a3\u88e1\u3002", "use-default-cardboard":"Use Default","enable-audio-prompt":"\u5141\u8a31\u8072\u97f3\u64ad\u653e?"},"nb-no":{mute:"Skru av lyd","cardboard-v1":"Hvis du ikke er sikker, hvilken Cardboard versjon du bruker, velger du standard hotspot-kontrollen. Du vil da bare se p\u00e5 et hotspot og vente til handlingen utl\u00f8ses.","download-tour":"Last ned visningen, s\u00e5 den kan bli sett uten internett","change-to-drag-and-release":"Endre kontrollmodus til Trekk og Slipp",accept:"Aksepterer",cancel:"Avbryt", "storage-not-provided-bookmark":"Vedvarende lagring nektet. Pr\u00f8v \u00e5 bokmerke denne nettsiden og laste den inn p\u00e5 nytt.","dont-display-again":"Ikke vis denne informasjonen igjen","web-server-required":"Denne virtuelle visningen kan ikke spilles av lokalt. Vennligst last den opp til internett, og fors\u00f8k igjen.\ndersom du prefererer det, kan du dra htm filen (eller hele mappen som inneholder visningen) over 'TourViewer' appen.",download:"Last ned","change-to-click-and-move":"Endre kontrollmodus til Klikk og Flytt", yes:"Ja","delete-downloaded":"Slett","use-safari-for-vr":"Vi anbefaler Safari for \u00e5 se p\u00e5 venne visningen i VR modus","exit-fullscreen":"G\u00e5 ut av full skjerm",no:"Nei","download-failed":"Nedlastning feilet","giroscope-disabled-http":"Du er koblet til denne nettsiden via http. Dermed er enhetens bevegelses- og orienteringstilgang og VR-modus deaktivert. Koble til via https for \u00e5 aktivere denne.","cookies-notice":"Denne websiden bruker informasjonskapsler for \u00e5 samle inn bruksstatistikk. For mer informasjon, bes\u00f8k retningslinjer for informasjonskapsler.", "use-cardboard":"Bruk Cardboard","launch-default-browser":"\u00c5pne i standard nettleser","refresh-downloaded":"Last inn p\u00e5 nytt","rotate-device":"Vennligst roter enheten","exit-vr":"G\u00e5 ut av VR",reject:"Avvis","disable-measure":"Stop measuring",downloading:"Laster ned","cardboard-v2":"Dersom du har Cardboard versjon 2, hvilket kommer med en knapp, kan du kikke p\u00e5 en klikkbar ting i visningen, og bruke knappen for \u00e5 bruke disse tingene, p\u00e5 samme m\u00e5te som p\u00e5 en laptop eller telefon.", "enable-video-audio-prompt":"Aktivere video og lyd?","storage-not-provided-launch-from-desktop":"Start turen p\u00e5 nytt fra skrivebordsikonet for \u00e5 laste ned.",downloaded:"Denne visningen er lastet ned, s\u00e5 den kan bli sett uten internett.","samsung-internet-vr-app-info":"Hvis du har et Gear VR-headset som er kompatibelt med denne enheten og har installert Samsung Internet for VR, kan du ogs\u00e5 bruke det til \u00e5 se dette innholdet i VR, du m\u00e5 ogs\u00e5 gj\u00f8re Samsung Internet til standard nettleser.", "samsung-internet-vr-info":"Hvis du har et Gear VR-headset som er kompatibelt med denne enheten, og du har installert Samsung Internet for VR, kan du ogs\u00e5 bruke det til \u00e5 se dette innholdet i VR, du trenger bare \u00e5 sette mobiltelefonen p\u00e5 headsettet n\u00e5.","enable-video-prompt":"Aktivere video?","giroscope-disabled-safari-request-permission":["Din enhet sin bevegelses- og orienterings tilgang, samt VR modus er deaktivert for denne nettsiden.","For \u00e5 se denne siden korrekt, vennligst klikk p\u00e5 fortsett og godta tillatelsesforesp\u00f8rselen hvis du blir bedt om dette."], "storage-not-provided-launch-from-homescreen":"Start turen p\u00e5 nytt fra startskjermikonet for \u00e5 laste ned.","enter-fullscreen":"G\u00e5 til full skjerm","use-cardboard-v2":"Bruk Cardboard Versjon 2",unmute:"Skru p\u00e5 lyd","enter-vr":"\u00c5pne VR Modus","enable-measure":"Start measuring","use-cardboard-info":"Du kan bruke hvilke some helst Google Cardboard kompatible headsett for \u00e5 se denne visningen i VR.","ar-mobile-info":"Flytt enheten din sakte for \u00e5 skanne rommet ditt.\nEn ring vil vises n\u00e5r en overflate blir funnet.\nTrykk p\u00e5 skjermen for \u00e5 plassere objektet der.", "use-default-cardboard":"Bruk Standard","enable-audio-prompt":"Aktivere audio?"},"pt-pt":{mute:"Desativar som","cardboard-v1":"Se voc\u00ea n\u00e3o tiver certeza de qual vers\u00e3o do Cardboard est\u00e1 usando, selecione o controle de ponto de acesso padr\u00e3o. Voc\u00ea simplesmente olha para um ponto de acesso e espera at\u00e9 que a a\u00e7\u00e3o seja acionada.","download-tour":"Download do Tour para reprodu\u00e7\u00e3o offline","change-to-drag-and-release":"Alterar controle para arrastar e soltar", accept:"Aceitar",cancel:"Cancelar","storage-not-provided-bookmark":"Armazenamento persistente negado. Tente marcar esta p\u00e1gina da Web e recarreg\u00e1-la.","dont-display-again":"N\u00e3o exibir essas informa\u00e7\u00f5es novamente","web-server-required":"Este passeio virtual n\u00e3o pode ser reproduzido a partir de uma unidade local. Envie-o para a Internet e tente novamente.\nSe preferir, arraste o arquivo htm (ou toda a pasta do tour) para o \u00edcone do aplicativo TourViewer.",download:"Download", "change-to-click-and-move":"Alterar controle para clicar e mover",yes:"sim","delete-downloaded":"Apagar","use-safari-for-vr":"Recomendamos o Safari para ver este passeio no modo VR","exit-fullscreen":"Sair da tela cheia",no:"n\u00e3o","download-failed":"Falha no Download","giroscope-disabled-http":"Voc\u00ea est\u00e1 acessando esta p\u00e1gina da Web por meio do http, para que o acesso \u00e0 orienta\u00e7\u00e3o e movimento do dispositivo e o modo VR sejam desativados, acesse-o atrav\u00e9s de https para ativ\u00e1-los.", "cookies-notice":"Esta p\u00e1gina da web usa cookies para coletar estat\u00edsticas de uso. Para obter mais informa\u00e7\u00f5es, visite a Pol\u00edtica de cookies.","use-cardboard":"Use Cardboard","launch-default-browser":"Iniciar no navegador padr\u00e3o","refresh-downloaded":"Atualizar","rotate-device":"Por favor, gire seu dispositivo","exit-vr":"Sair do VR",reject:"Rejeitar","disable-measure":"Stop measuring",downloading:"Baixando","cardboard-v2":"Se voc\u00ea tiver um fone de ouvido Cardboard v2, que vem com um bot\u00e3o, poder\u00e1 observar um ponto de acesso e pressionar o bot\u00e3o para acionar sua a\u00e7\u00e3o.", "enable-video-audio-prompt":"Ativar \u00e1udio e v\u00eddeo?","storage-not-provided-launch-from-desktop":"Por favor, reinicie o tour no \u00edcone da \u00e1rea de trabalho para fazer o download.",downloaded:"This tour is downloaded for offline playing.","samsung-internet-vr-app-info":"Se voc\u00ea possui um fone de ouvido Gear VR compat\u00edvel com este dispositivo e instalou o Samsung Internet for VR, tamb\u00e9m pode us\u00e1-lo para visualizar esse conte\u00fado em VR. Voc\u00ea precisa tornar o Samsung Internet o seu padr\u00e3o. browser.", "samsung-internet-vr-info":"Se voc\u00ea possui um fone de ouvido Gear VR compat\u00edvel com este dispositivo e instalou o Samsung Internet for VR, tamb\u00e9m pode us\u00e1-lo para visualizar esse conte\u00fado em VR. Basta colocar o celular no fone de ouvido agora.","enable-video-prompt":"Ativar v\u00eddeo?","giroscope-disabled-safari-request-permission":["O acesso a movimento e orienta\u00e7\u00e3o do dispositivo e o modo VR est\u00e3o desativados para este site.","Para ver corretamente esta p\u00e1gina da web, clique em continuar e aceite a solicita\u00e7\u00e3o de permiss\u00e3o, se solicitado."], "storage-not-provided-launch-from-homescreen":"Reinicie o tour no \u00edcone da tela inicial para fazer o download.","enter-fullscreen":"Entrar em tela cheia","use-cardboard-v2":"Use Cardboard v2",unmute:"Ativar som","enter-vr":"Inserir conte\u00fado VR","enable-measure":"Start measuring","use-cardboard-info":"Voc\u00ea pode usar qualquer fone de ouvido compat\u00edvel do Google Cardboard para visualizar este conte\u00fado em VR","ar-mobile-info":"Mova lentamente o dispositivo para escanear o espa\u00e7o.\nUm anel aparecer\u00e1 quando uma superf\u00edcie for encontrada.\nToque na tela para colocar o objeto ali.", "use-default-cardboard":"Use o padr\u00e3o","enable-audio-prompt":"Ativar \u00e1udio?"},"hr-hr":{mute:"nijem","cardboard-v1":"If you are not sure, which Cardboard version you're using, select the default hotspot control. You'll then simply gaze at a hotspot and wait until the action is triggered.","download-tour":"Download Tour for offline playing","change-to-drag-and-release":"Promijenite na\u010din upravljanja u povla\u010denje i otpu\u0161tanje",accept:"Prihvatiti",download:"Download","storage-not-provided-bookmark":"Persistent storage denied. Try bookmarking this webpage and reloading it.", "dont-display-again":"Don't display this info again","web-server-required":"This virtual tour cannot be played from a local drive. Please upload it to the internet and try again.\nIf you prefer, drag the htm file (or the entire folder of the tour) onto the icon of the TourViewer app.",cancel:"Cancel","change-to-click-and-move":"Promijenite na\u010din upravljanja na Klik i Premjesti",yes:"Da","delete-downloaded":"Delete","use-safari-for-vr":"We recommend Safari to view this tour in VR mode","exit-fullscreen":"Iza\u0111ite s punog zaslona", no:"Ne","download-failed":"Download failed","giroscope-disabled-http":"You are accessing this webpage through http so your device's motion and orientation access and VR mode are disabled, please access it through https to enable them.","cookies-notice":"Ova web stranica koristi kola\u010di\u0107e za prikupljanje statistike upotrebe. Za vi\u0161e informacija posjetite Pravila o kola\u010di\u0107ima.","use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","refresh-downloaded":"Refresh", "rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"Odbiti","disable-measure":"Stop measuring",downloading:"Downloading","cardboard-v2":"If you have a Cardboard v2 headset, which comes with a button, you can gaze at a hotspot and press the button to trigger its action.","enable-video-audio-prompt":"Omogu\u0107iti videozapis i zvuk?","storage-not-provided-launch-from-desktop":"Please relaunch the tour from the desktop icon to download.",downloaded:"This tour is downloaded for offline playing.", "samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.","enable-video-prompt":"Omogu\u0107ite videozapis?", "giroscope-disabled-safari-request-permission":["Your device's motion and orientation access and VR mode are disabled for this site.","To properly see this webpage, please click continue and accept the permission request if prompted."],"storage-not-provided-launch-from-homescreen":"Please relaunch the tour from the home screen icon to download.","enter-fullscreen":"Unesite cijeli zaslon","use-cardboard-v2":"Use Cardboard v2",unmute:"Uklju\u010di mikrofon","enter-vr":"Enter VR content","enable-measure":"Start measuring", "use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","ar-mobile-info":"Pomaknite ure\u0111aj sporo kako biste skenirali svoj prostor.\nKrug \u0107e se pojaviti kada se prona\u0111e povr\u0161ina.\nTapnite ekran kako biste postavili objekt tamo.","use-default-cardboard":"Use Default","enable-audio-prompt":"\u017delite li omogu\u0107iti zvuk?"},"ja-jp":{mute:"\u30df\u30e5\u30fc\u30c8","cardboard-v1":"\u4f7f\u7528\u3057\u3066\u3044\u308bCardboard\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u308f\u304b\u3089\u306a\u3044\u5834\u5408\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30db\u30c3\u30c8\u30b9\u30dd\u30c3\u30c8\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u3092\u9078\u629e\u3057\u307e\u3059\u3002\u6b21\u306b\u3001\u30db\u30c3\u30c8\u30b9\u30dd\u30c3\u30c8\u3092\u6ce8\u8996\u3057\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u304c\u52d5\u4f5c\u3059\u308b\u307e\u3067\u5f85\u6a5f\u3057\u307e\u3059\u3002\uff08\u4e00\u90e8\u52d5\u4f5c\u3057\u306a\u3044\u30a2\u30af\u30b7\u30e7\u30f3\u6709\u308a\uff09", "download-tour":"\u30aa\u30d5\u30e9\u30a4\u30f3\u518d\u751f\u7528\u30c4\u30a2\u30fc\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b","change-to-drag-and-release":"\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30e2\u30fc\u30c9\u3092\u30c9\u30e9\u30c3\u30b0\uff06\u30ea\u30ea\u30fc\u30b9\u306b\u5909\u66f4",accept:"\u53d7\u3051\u5165\u308c\u308b",cancel:"\u30ad\u30e3\u30f3\u30bb\u30eb","storage-not-provided-bookmark":"\u6c38\u7d9a\u7684\u306a\u4fdd\u5b58\u304c\u62d2\u5426\u3055\u308c\u305f\u3002\u3053\u306eWeb\u30da\u30fc\u30b8\u3092\u30d6\u30c3\u30af\u30de\u30fc\u30af\u3057\u3001\u66f4\u65b0\u3057\u3066\u304f\u3060\u3055\u3044", "dont-display-again":"\u4eca\u5f8c\u3053\u306e\u60c5\u5831\u3092\u8868\u793a\u3057\u306a\u3044","web-server-required":"\u3053\u306e\u30d0\u30fc\u30c1\u30e3\u30eb\u30c4\u30a2\u30fc\u306f\u3001\u30ed\u30fc\u30ab\u30eb\u30c9\u30e9\u30a4\u30d6\u304b\u3089\u518d\u751f\u3067\u304d\u307e\u305b\u3093\u3002\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u306b\u63a5\u7d9a\u3057\u3001\u3082\u3046\u4e00\u5ea6\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3092\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\n\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u3001htm\u30d5\u30a1\u30a4\u30eb\uff08\u307e\u305f\u306f\u30c4\u30a2\u30fc\u306e\u30d5\u30a9\u30eb\u30c0\u30fc\u5168\u4f53\uff09\u3092\u300eTourViewer\u300f\u30a2\u30d7\u30ea\u306e\u30a2\u30a4\u30b3\u30f3\u306b\u30c9\u30e9\u30c3\u30b0\u3057\u307e\u3059", download:"\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9","change-to-click-and-move":"\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30e2\u30fc\u30c9\u3092\u30af\u30ea\u30c3\u30af\uff06\u30e0\u30fc\u30d6\u306b\u5909\u66f4",yes:"\u306f\u3044","delete-downloaded":"\u524a\u9664","use-safari-for-vr":"\u3053\u306e\u30c4\u30a2\u30fc\u3092VR\u30d3\u30e5\u30fc\u3067\u8868\u793a\u3059\u308b\u306b\u306f\u3001Safari\u30d6\u30e9\u30a6\u30b6\u306e\u5229\u7528\u3092\u304a\u52e7\u3081\u3057\u307e\u3059","exit-fullscreen":"\u30d5\u30eb\u30b9\u30af\u30ea\u30fc\u30f3\u3092\u7d42\u4e86\u3059\u308b", no:"\u3044\u3044\u3048","download-failed":"\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u5931\u6557\u3057\u307e\u3057\u305f","giroscope-disabled-http":"\u3053\u306eWeb\u30da\u30fc\u30b8\u306b\u300ehttp\u300f\u7d4c\u7531\u3067\u30a2\u30af\u30bb\u30b9\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u3054\u5229\u7528\u7aef\u672b\u306e\u30e2\u30fc\u30b7\u30e7\u30f3\u3068\u753b\u9762\u306e\u5411\u304d\u3078\u30a2\u30af\u30bb\u30b9\u304c\u3067\u304d\u305a\u3001VR\u30e2\u30fc\u30c9\u304c\u7121\u52b9\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u300ehttps\u300f\u7d4c\u7531\u3067\u30a2\u30af\u30bb\u30b9\u3057\u6709\u52b9\u306b\u3057\u3066\u304f\u3060\u3055\u3044", "cookies-notice":"\u3053\u306e\u30a6\u30a7\u30d6\u30b5\u30a4\u30c8\u306fCookie\u3092\u4f7f\u7528\u3057\u3066\u4f7f\u7528\u7d71\u8a08\u3092\u53ce\u96c6\u3057\u307e\u3059\u3002 \u8a73\u7d30\u306b\u3064\u3044\u3066\u306f\u3001Cookie\u30dd\u30ea\u30b7\u30fc\u3092\u3054\u89a7\u304f\u3060\u3055\u3044\u3002","use-cardboard":"Cardboard\u5229\u7528","launch-default-browser":"\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30d6\u30e9\u30a6\u30b6\u3067\u8d77\u52d5","refresh-downloaded":"\u66f4\u65b0","rotate-device":"\u7aef\u672b\u3092\u56de\u8ee2\u3055\u305b\u3066\u304f\u3060\u3055\u3044", "exit-vr":"VR\u30d3\u30e5\u30fc \u7d42\u4e86",reject:"\u62d2\u5426\u3059\u308b","disable-measure":"Stop measuring",downloading:"\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u4e2d","cardboard-v2":"\u30dc\u30bf\u30f3\u304c\u4ed8\u5c5e\u3057\u3066\u3044\u308bCardboard v2\u30d8\u30c3\u30c9\u30bb\u30c3\u30c8\u3092\u304a\u6301\u3061\u306e\u5834\u5408\u306f\u3053\u3061\u3089\u3002","enable-video-audio-prompt":"\u30d3\u30c7\u30aa\u3068\u97f3\u58f0\u3092\u6709\u52b9\u306b\u3057\u307e\u3059\u304b\uff1f","storage-not-provided-launch-from-desktop":"\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u306e\u30a2\u30a4\u30b3\u30f3\u304b\u3089\u30c4\u30a2\u30fc\u3092\u518d\u8d77\u52d5\u3057\u3001\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u304f\u3060\u3055\u3044", downloaded:"\u3053\u306e\u30c4\u30a2\u30fc\u306f\u3001\u30aa\u30d5\u30e9\u30a4\u30f3\u3067\u518d\u751f\u3059\u308b\u305f\u3081\u306b\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3092\u3059\u308b","samsung-internet-vr-app-info":"\u3053\u306e\u7aef\u672b\u3068\u4e92\u63db\u6027\u306e\u3042\u308bVR\u30d8\u30c3\u30c9\u30bb\u30c3\u30c8\u6a5f\u5668\u3092\u304a\u6301\u3061\u3067\u3001VR\u7528\u306e\u300eSamsung Internet\u300f\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u3044\u308b\u5834\u5408\u3002VR\u30d3\u30e5\u30fc\u3067\u3053\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u8868\u793a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002\u305d\u306e\u969b\u3001\u300eSamsung Internet\u300f\u3092\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30d6\u30e9\u30a6\u30b6\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059", "samsung-internet-vr-info":"\u3053\u306e\u7aef\u672b\u3068\u4e92\u63db\u6027\u306e\u3042\u308bVR\u30d8\u30c3\u30c9\u30bb\u30c3\u30c8\u6a5f\u5668\u3092\u304a\u6301\u3061\u3067\u3001VR\u7528\u306e\u300eSamsung Internet\u300f\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u3044\u308b\u5834\u5408\u3002VR\u30d3\u30e5\u30fc\u3067\u3053\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u8868\u793a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002\u305d\u306e\u969b\u3001\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u3092\u30d8\u30c3\u30c9\u30bb\u30c3\u30c8\u306b\u88c5\u7740\u3059\u308b\u3060\u3051\u3067\u3059", "enable-video-prompt":"\u30d3\u30c7\u30aa\u3092\u6709\u52b9\u306b\u3057\u307e\u3059\u304b\uff1f","giroscope-disabled-safari-request-permission":["\u3054\u5229\u7528\u7aef\u672b\u306e\u30e2\u30fc\u30b7\u30e7\u30f3\u3068\u753b\u9762\u306e\u5411\u304d\u3078\u30a2\u30af\u30bb\u30b9\u304c\u3067\u304d\u305a\u3001VR\u30e2\u30fc\u30c9\u304c\u7121\u52b9\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002","\u3053\u306eWeb\u30da\u30fc\u30b8\u3092\u6b63\u3057\u304f\u8868\u793a\u3059\u308b\u306b\u306f\u3001\u300eOK\u300f\u3092\u30af\u30ea\u30c3\u30af\u3057\u300e\u8a31\u53ef\u300f\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u53d7\u3051\u5165\u308c\u3066\u304f\u3060\u3055\u3044"], "storage-not-provided-launch-from-homescreen":"\u30db\u30fc\u30e0\u753b\u9762\u306e\u30a2\u30a4\u30b3\u30f3\u304b\u3089\u30c4\u30a2\u30fc\u3092\u518d\u8d77\u52d5\u3057\u3001\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u304f\u3060\u3055\u3044","enter-fullscreen":"\u30d5\u30eb\u30b9\u30af\u30ea\u30fc\u30f3\u3067\u5165\u529b\u3059\u308b","use-cardboard-v2":"Cardboard v2\u5229\u7528",unmute:"\u30df\u30e5\u30fc\u30c8\u89e3\u9664","enter-vr":"VR\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u5165\u529b","enable-measure":"Start measuring", "use-cardboard-info":"\u3053\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u3092VR\u30d3\u30e5\u30fc\u3067\u8868\u793a\u3059\u308b\u306b\u306f\u3001\u4e92\u63db\u6027\u306e\u3042\u308b\u4efb\u610f\u306eGoogle Cardboard\u30d8\u30c3\u30c9\u30bb\u30c3\u30c8\u3092\u5229\u7528\u3067\u304d\u307e\u3059","ar-mobile-info":"\u30b9\u30da\u30fc\u30b9\u3092\u30b9\u30ad\u30e3\u30f3\u3059\u308b\u305f\u3081\u306b\u3001\u30c7\u30d0\u30a4\u30b9\u3092\u3086\u3063\u304f\u308a\u3068\u52d5\u304b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n\u8868\u9762\u304c\u898b\u3064\u304b\u308b\u3068\u3001\u5186\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\n\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u305d\u3053\u306b\u914d\u7f6e\u3059\u308b\u306b\u306f\u3001\u753b\u9762\u3092\u30bf\u30c3\u30d7\u3057\u3066\u304f\u3060\u3055\u3044\u3002", "use-default-cardboard":"\u30c7\u30d5\u30a9\u30eb\u30c8\u5229\u7528","enable-audio-prompt":"\u97f3\u58f0\u3092\u6709\u52b9\u306b\u3057\u307e\u3059\u304b\uff1f"},"zh-cn":{mute:"\u9759\u97f3","cardboard-v1":"If you are not sure, which Cardboard version you're using, select the default hotspot control. You'll then simply gaze at a hotspot and wait until the action is triggered.","download-tour":"\u4e0b\u8f7d\u5168\u666f\u6f2b\u6e38\uff0c\u4ee5\u8fdb\u884c\u79bb\u7ebf\u64ad\u653e","change-to-drag-and-release":"\u5c06\u63a7\u5236\u6a21\u5f0f\u66f4\u6539\u4e3a\u201c\u62d6\u653e\u201d", accept:"\u63a5\u53d7",cancel:"\u53d6\u6d88","storage-not-provided-bookmark":"\u88c5\u7f6e\u5185\u6c38\u4e45\u5b58\u50a8\u88ab\u62d2\u7edd\u3002\u5c1d\u8bd5\u5c06\u6b64\u7f51\u9875\u6dfb\u52a0\u4e3a\u4e66\u7b7e\uff0c \u5e76\u91cd\u65b0\u52a0\u8f7d\u3002","dont-display-again":"\u4e0d\u518d\u663e\u793a\u6b64\u4fe1\u606f","web-server-required":"\u6b64\u5168\u666f\u6f2b\u6e38\u65e0\u6cd5\u4ece\u672c\u5730\u9a71\u52a8\u5668\u4e0a\u64ad\u653e\u3002 \u8bf7\u5c06\u5176\u4e0a\u4f20\u5230\u4e92\u8054\u7f51\u670d\u52a1\u5668\uff0c\u7136\u540e\u91cd\u8bd5\u3002\n\u5982\u679c\u9700\u8981\u672c\u5730\u9884\u89c8\uff0c\u53ef\u4ee5\u5c06htm\u6587\u4ef6\uff08\u6216\u5168\u666f\u6f2b\u6e38\u7684\u6574\u4e2a\u6587\u4ef6\u5939\uff09\u62d6\u5230TourViewer\u5e94\u7528\u7a0b\u5e8f\u7684\u56fe\u6807\u4e0a\u3002", download:"\u4e0b\u8f7d","change-to-click-and-move":"\u5c06\u63a7\u5236\u6a21\u5f0f\u66f4\u6539\u4e3a\u201c\u5355\u51fb\u5e76\u79fb\u52a8\u201d",yes:"\u662f","delete-downloaded":"\u5220\u9664","use-safari-for-vr":"We recommend Safari to view this tour in VR mode","exit-fullscreen":"\u9000\u51fa\u5168\u5c4f",no:"\u5426","download-failed":"\u4e0b\u8f7d\u5931\u8d25","giroscope-disabled-http":"\u60a8\u6b63\u5728\u901a\u8fc7http(\u672a\u52a0\u5bc6)\u8bbf\u95ee\u6b64\u7f51\u9875\uff0c\u56e0\u6b64\u8bbe\u5907\u7684\u8fd0\u52a8\u548c\u65b9\u5411\u8bbf\u95ee\u6743\u9650\u4ee5\u53caVR\u6a21\u5f0f\u5747\u5df2\u7981\u7528\uff0c\u8bf7\u901a\u8fc7https(\u52a0\u5bc6)\u5bf9\u5176\u8fdb\u884c\u542f\u7528\u3002", "cookies-notice":"\u8be5\u7f51\u9875\u4f7f\u7528cookie\u6765\u6536\u96c6\u4f7f\u7528\u60c5\u51b5\u7edf\u8ba1\u4fe1\u606f\u3002 \u6709\u5173\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u8bbf\u95eeCookie\u653f\u7b56\u3002","use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","refresh-downloaded":"\u5237\u65b0","rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"\u62d2\u7edd","disable-measure":"Stop measuring",downloading:"\u6b63\u5728\u4e0b\u8f7d", "cardboard-v2":"If you have a Cardboard v2 headset, which comes with a button, you can gaze at a hotspot and press the button to trigger its action.","enable-video-audio-prompt":"\u542f\u7528\u89c6\u9891\u548c\u97f3\u9891\uff1f","storage-not-provided-launch-from-desktop":"\u8bf7\u4ece\u684c\u9762\u70b9\u51fb\u56fe\u6807\uff0c\u91cd\u65b0\u542f\u52a8\u5168\u666f\u6f2b\u6e38\uff0c\u4ee5\u8fdb\u884c\u4e0b\u8f7d\u3002",downloaded:"\u6b64\u5168\u666f\u6f2b\u6e38\u5df2\u4e0b\u8f7d\uff0c\u53ef\u8fdb\u884c\u79bb\u7ebf\u64ad\u653e\u3002", "samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.","enable-video-prompt":"\u542f\u7528\u89c6\u9891\uff1f", "giroscope-disabled-safari-request-permission":["\u8be5\u7ad9\u70b9\u5df2\u7981\u7528\u8bbe\u5907\u7684\u8fd0\u52a8\u548c\u65b9\u5411\u8bbf\u95ee\u6743\u9650\uff0cVR\u6a21\u5f0f\u4e5f\u88ab\u7981\u7528\u3002","\u8981\u6b63\u786e\u67e5\u770b\u6b64\u7f51\u9875\uff0c\u8bf7\u5355\u51fb\u7ee7\u7eed\uff0c\u5e76\u5728\u51fa\u73b0\u63d0\u793a\u65f6\u63a5\u53d7\u8bb8\u53ef\u8bf7\u6c42"],"storage-not-provided-launch-from-homescreen":"\u8bf7\u4ece\u4e3b\u5c4f\u5e55\u70b9\u51fb\u56fe\u6807\uff0c\u91cd\u65b0\u542f\u52a8\u5168\u666f\u6f2b\u6e38\uff0c\u4ee5\u8fdb\u884c\u4e0b\u8f7d\u3002", "enter-fullscreen":"\u8fdb\u5165\u5168\u5c4f","use-cardboard-v2":"Use Cardboard v2",unmute:"\u53d6\u6d88\u9759\u97f3","enter-vr":"Enter VR content","enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","ar-mobile-info":"\u7f13\u6162\u79fb\u52a8\u8bbe\u5907\uff0c\u4ee5\u626b\u63cf\u7a7a\u95f4\u3002\n\u5f53\u627e\u5230\u8868\u9762\u65f6\uff0c\u4f1a\u51fa\u73b0\u4e00\u4e2a\u5706\u5708\u3002\n\u70b9\u51fb\u5c4f\u5e55\uff0c\u5c06\u5bf9\u8c61\u653e\u5728\u90a3\u91cc\u3002", "use-default-cardboard":"Use Default","enable-audio-prompt":"\u542f\u7528\u97f3\u9891\uff1f"},"nl-nl":{mute:"Schakel audio uit","cardboard-v1":"Als u niet weet wat voor versie van Cardboard u gebruikt, selecteer dan de default hotspot control. Dan zult u moeten wachten op een hotspot tot er een bepaald actie is gestart.","download-tour":"Download Tour voor offline afspelen","change-to-drag-and-release":"Verander de besturingsmodus om te slepen en los te laten",accept:"Aanvaarden",download:"Download", "storage-not-provided-bookmark":"Aanhoudende inhoud geweigerd. Probeer deze pagina als bookmark op te slaan en te verversen.","dont-display-again":"Niet meer laten zien","web-server-required":"Deze virtuele tour kan niet worden afgespeeld vanaf een lokale schijf. Upload dit alstublieft op het internet. Je kan ook de htm bestand slepen naar het icoon van de TourViewer app.",cancel:"Annuleren","change-to-click-and-move":"Verander de bedieningsmodus om te klikken en te verplaatsen",yes:"Ja","delete-downloaded":"Verwijderen", "use-safari-for-vr":"We raden aan om in Safari deze tour te bekijken in VR mode","exit-fullscreen":"Volledig scherm verlaten",no:"Nee","download-failed":"Download mislukt","giroscope-disabled-http":"Jij betreedt deze pagina door http, dus uw toestel's motion en orientation access en VR modus zijn uitgeschakeld. Betreed deze pagina door https om ze weer aan te schakelen.","cookies-notice":"Deze webpagina maakt gebruik van cookies om gebruiksstatistieken te verzamelen. Raadpleeg het Cookiebeleid voor meer informatie.", "use-cardboard":"Gebruik Cardboard","launch-default-browser":"Start op in standaard browser","refresh-downloaded":"Verversen","rotate-device":"Draai uw toestel om, alstublieft","exit-vr":"VR verlaten",reject:"Weigeren","disable-measure":"Stop meten",downloading:"Downloaden","cardboard-v2":"Als u een Cardboard v2 headset heeft, wat met een knop komt, kunt u wachten op een hotspot en een op een knop drukken om een actie te starten.","enable-video-audio-prompt":"Audio en video inschakelen?","storage-not-provided-launch-from-desktop":"Start de tour alstublieft opnieuw up vanaf het bureaublad om te kunnen downloaden.", downloaded:"Deze tour is gedownload voor offline afspelen.","samsung-internet-vr-app-info":"Als u een Gear VR headset heeft dat werkt met dit toestel en u Samsung Internet voor VR heeft ge\u00efnstalleerd, kunt u dit ook bekijken in VR. U moet alleen Samsung Internet instellen als uw standaard browser.","samsung-internet-vr-info":"Als u een Gear VR headset heeft dat werkt met dit toestel en u Samsung Internet voor VR heeft ge\u00efnstalleerd, kunt u dit ook bekijken in VR, u moet alleen uw mobiele toestel op uw headset zetten.", "enable-video-prompt":"Video inschakelen?","giroscope-disabled-safari-request-permission":["Uw toestel's motion en orientation access en VR modus zijn uitgeschakeld voor deze site..","Om deze pagina goed te kunnen zien, druk op doorgaan en geef toestemming als dat gevraagd wordt."],"storage-not-provided-launch-from-homescreen":"Start de tour alstublieft opnieuw up vanaf het homescherm om te kunnen downloaden.","enter-fullscreen":"Volledig scherm inschakelen","use-cardboard-v2":"Gebruik Cardboard v2", unmute:"Schakel audio in","enter-vr":"Voer VR inhoud in","enable-measure":"Begin meten","use-cardboard-info":"U kunt elk werkend Google Cardboard headset gebruiken om dit te bekijken.","ar-mobile-info":"Verplaats uw apparaat langzaam om uw ruimte te scannen.\nEen ring verschijnt wanneer een oppervlak wordt gevonden.\nTik op het scherm om het object daar te plaatsen.","use-default-cardboard":"Standaard gebruiken","enable-audio-prompt":"Audio inschakelen?"},"hu-hu":{mute:"N\u00e9m\u00edt\u00e1s","cardboard-v1":"Ha nem vagy biztos benne, hogy milyen VR eszk\u00f6zt haszn\u00e1lsz, akkor v\u00e1laszd az alap\u00e9rtelmezettet \u00e9s az egyes hotspot-ok megtekint\u00e9s\u00e9hez csak tartsd ott a jel\u00f6l\u0151t.", "download-tour":"T\u00fara let\u00f6lt\u00e9se offline megtekint\u00e9shez","change-to-drag-and-release":"Ir\u00e1ny\u00edt\u00e1s \u00e1t\u00e1ll\u00edt\u00e1sa: megfog \u00e9s mozgat m\u00f3dra",accept:"Elfogad",cancel:"M\u00e9gsem","storage-not-provided-bookmark":"Pr\u00f3b\u00e1lja meg az oldalt megjel\u00f6lni \u00e9s \u00fajrat\u00f6lteni!","dont-display-again":"Ne mutasd \u00fajra","web-server-required":"Ez a t\u00fara nem j\u00e1tszat\u00f3 le helyi futtat\u00e1ssal, k\u00e9rlek t\u00f6lsd fel az internetre \u00e9s pr\u00f3b\u00e1ld meg \u00fajra\nM\u00e1sik megold\u00e1s, ha a Tourviewer applik\u00e1ci\u00f3ra h\u00fazod a t\u00fara f\u00e1jlt, vagy az azt tartalmaz\u00f3 t\u00fara mapp\u00e1t.", download:"Let\u00f6lt\u00e9s","change-to-click-and-move":"Ir\u00e1ny\u00edt\u00e1s \u00e1t\u00e1ll\u00edt\u00e1sa kattint \u00e9s k\u00f6rben\u00e9z m\u00f3dra",yes:"igen","delete-downloaded":"T\u00f6rl\u00e9s","use-safari-for-vr":"Azt javasoljuk, hogy haszn\u00e1lj Safari b\u00f6ng\u00e9sz\u0151t a VR n\u00e9zet megtekint\u00e9s\u00e9hez","exit-fullscreen":"Kil\u00e9p\u00e9s a teljesk\u00e9perny\u0151 m\u00f3db\u00f3l",no:"nem","download-failed":"Let\u00f6lt\u00e9s sikertelen","giroscope-disabled-http":"Az oldalt https el\u0151taggal sz\u00fcks\u00e9ges megnyitnod ahhoz, hogy a k\u00e9sz\u00fcl\u00e9ked mozg\u00e1s\u00e1t \u00e9rz\u00e9kelni tudja.", "cookies-notice":"Ez a weboldal s\u00fctiket haszn\u00e1l a haszn\u00e1lati statisztik\u00e1k gy\u0171jt\u00e9s\u00e9hez. Tov\u00e1bbi inform\u00e1ci\u00f3\u00e9rt l\u00e1togasson el a s\u00fctikre vonatkoz\u00f3 ir\u00e1nyelvekbe.","use-cardboard":"Cardboard haszn\u00e1lata","launch-default-browser":"Futtat\u00e1s az alap\u00e9rtelmezett b\u00f6ng\u00e9sz\u0151ben","refresh-downloaded":"Friss\u00edt\u00e9s","rotate-device":"Forgasd el a telefont!","exit-vr":"Kil\u00e9p\u00e9s a VR m\u00f3db\u00f3l", reject:"Elutas\u00edt","disable-measure":"Stop measuring",downloading:"Let\u00f6lt\u00e9s","cardboard-v2":"Ha Cardboard 2.0 t\u00edpus\u00fa eszk\u00f6zt haszn\u00e1lsz, akkor a kapcsol\u00f3kkal ir\u00e1ny\u00edthatod a t\u00far\u00e1t, kattinthatsz az egyes hotspotokra","enable-video-audio-prompt":"Hang \u00e9s vide\u00f3 enged\u00e9lyez\u00e9se","storage-not-provided-launch-from-desktop":"K\u00e9rlek ind\u00edtsd \u00fajra az oldalt az asztalon tal\u00e1lhat\u00f3 iconra kattintva.",downloaded:"Let\u00f6ltve offline megtekint\u00e9shez", "samsung-internet-vr-app-info":"Ha Samsung Gear VR szem\u00fcveget szeretn\u00e9l haszn\u00e1lni, akkor nyisd meg a Samsung internetb\u00f6ng\u00e9sz\u0151ben a t\u00far\u00e1t.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.","enable-video-prompt":"Vide\u00f3 enged\u00e9lyez\u00e9se","giroscope-disabled-safari-request-permission":["A megjelen\u00edt\u0151 eszk\u00f6z\u00f6d nem adott hozz\u00e1f\u00e9r\u00e9st a mozg\u00e1s \u00e9rz\u00e9kel\u00e9s\u00e9hez ezen az oldalon.", "Ahhoz hogy megfelel\u0151en l\u00e1sd az oldalt k\u00e9rlek enged\u00e9lyezd a hozz\u00e1f\u00e9r\u00e9st."],"storage-not-provided-launch-from-homescreen":"Ind\u00edtsd \u00fajra a t\u00far\u00e1t a home ikonra kattintva.","enter-fullscreen":"Teljesk\u00e9perny\u0151","use-cardboard-v2":"Cardboard 2.0 haszn\u00e1lata",unmute:"N\u00e9m\u00edt\u00e1s kikapcsol\u00e1sa","enter-vr":"VR tartalom megtekint\u00e9se","enable-measure":"Start measuring","use-cardboard-info":"Haszn\u00e1lhatsz b\u00e1rmilyen google cardboard-ot ahhoz, hogy VR m\u00f3dban l\u00e1sd a t\u00far\u00e1t.", "ar-mobile-info":"Mozgasson lassan a k\u00e9sz\u00fcl\u00e9k\u00e9t, hogy a teret skann\u00e1lja.\nEgy k\u00f6r jelenik meg, amikor egy fel\u00fcletet tal\u00e1l.\n\u00c9rintse meg a k\u00e9perny\u0151t, hogy oda helyezzen el egy objektumot.","use-default-cardboard":"Alap\u00e9rtelmezett haszn\u00e1lata","enable-audio-prompt":"Hang enged\u00e9lyez\u00e9se"},"ar-ar":{mute:"\u062a\u0639\u0637\u064a\u0644 \u0627\u0644\u0635\u0648\u062a","cardboard-v1":"If you are not sure, which Cardboard version you're using, select the default hotspot control. You'll then simply gaze at a hotspot and wait until the action is triggered.", "download-tour":"Download Tour for offline playing","change-to-drag-and-release":"\u062a\u063a\u064a\u064a\u0631 \u0648\u0636\u0639 \u0627\u0644\u062a\u062d\u0643\u0645 \u0644\u0644\u0633\u062d\u0628 \u0648\u0627\u0644\u0625\u0641\u0631\u0627\u062c",accept:"\u0642\u0628\u0648\u0644",download:"Download","storage-not-provided-bookmark":"Persistent storage denied. Try bookmarking this webpage and reloading it.","dont-display-again":"Don't display this info again","web-server-required":"This virtual tour cannot be played from a local drive. Please upload it to the internet and try again.\nIf you prefer, drag the htm file (or the entire folder of the tour) onto the icon of the TourViewer app.", cancel:"Cancel","change-to-click-and-move":"\u062a\u063a\u064a\u064a\u0631 \u0648\u0636\u0639 \u0627\u0644\u062a\u062d\u0643\u0645 \u0644\u0644\u0646\u0642\u0631 \u0648\u0627\u0644\u062a\u062d\u0631\u0643",yes:"\u0646\u0639\u0645 \u0641\u0639\u0644\u0627","delete-downloaded":"Delete","use-safari-for-vr":"We recommend Safari to view this tour in VR mode","exit-fullscreen":"\u0627\u0644\u062e\u0631\u0648\u062c \u0645\u0646 \u0648\u0636\u0639 \u0645\u0644\u0626 \u0644\u0644\u0634\u0627\u0634\u0629", no:"\u0644\u0627","download-failed":"Download failed","giroscope-disabled-http":"You are accessing this webpage through http so your device's motion and orientation access and VR mode are disabled, please access it through https to enable them.","cookies-notice":"\u062a\u0633\u062a\u062e\u062f\u0645 \u0635\u0641\u062d\u0629 \u0627\u0644\u0648\u064a\u0628 \u0647\u0630\u0647 \u0645\u0644\u0641\u0627\u062a \u062a\u0639\u0631\u064a\u0641 \u0627\u0644\u0627\u0631\u062a\u0628\u0627\u0637 \u0644\u062c\u0645\u0639 \u0625\u062d\u0635\u0627\u0626\u064a\u0627\u062a \u0627\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645. \u0644\u0645\u0632\u064a\u062f \u0645\u0646 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u060c \u064a\u0631\u062c\u0649 \u0632\u064a\u0627\u0631\u0629 \u0633\u064a\u0627\u0633\u0629 \u0645\u0644\u0641\u0627\u062a \u062a\u0639\u0631\u064a\u0641 \u0627\u0644\u0627\u0631\u062a\u0628\u0627\u0637 .", "use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","refresh-downloaded":"Refresh","rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"\u064a\u0631\u0641\u0636","disable-measure":"Stop measuring",downloading:"Downloading","cardboard-v2":"If you have a Cardboard v2 headset, which comes with a button, you can gaze at a hotspot and press the button to trigger its action.","enable-video-audio-prompt":"\u062a\u0645\u0643\u064a\u0646 \u0627\u0644\u0635\u0648\u062a \u0648\u0627\u0644\u0641\u064a\u062f\u064a\u0648\u061f", "storage-not-provided-launch-from-desktop":"Please relaunch the tour from the desktop icon to download.",downloaded:"This tour is downloaded for offline playing.","samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.", "enable-video-prompt":"\u062a\u0645\u0643\u064a\u0646 \u0627\u0644\u0641\u064a\u062f\u064a\u0648\u061f","giroscope-disabled-safari-request-permission":["Your device's motion and orientation access and VR mode are disabled for this site.","To properly see this webpage, please click continue and accept the permission request if prompted."],"storage-not-provided-launch-from-homescreen":"Please relaunch the tour from the home screen icon to download.","enter-fullscreen":"\u0623\u062f\u062e\u0644 \u0645\u0644\u0621 \u0627\u0644\u0634\u0627\u0634\u0629", "use-cardboard-v2":"Use Cardboard v2",unmute:"\u062a\u0645\u0643\u064a\u0646 \u0627\u0644\u0635\u0648\u062a","enter-vr":"Enter VR content","enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","ar-mobile-info":"\u062a\u0642\u0631\u064a\u0628\u0627\u064b \u062d\u0631\u0643 \u062c\u0647\u0627\u0632\u0643 \u0628\u0628\u0637\u0621 \u0644\u062a\u0645\u0631\u064a\u0631 \u0627\u0644\u0645\u0633\u0627\u062d\u0629.\n\u0633\u064a\u0638\u0647\u0631 \u062d\u0644\u0642\u0629 \u0639\u0646\u062f \u0627\u0644\u0639\u062b\u0648\u0631 \u0639\u0644\u0649 \u0633\u0637\u062d.\n\u0627\u0636\u063a\u0637 \u0639\u0644\u0649 \u0627\u0644\u0634\u0627\u0634\u0629 \u0644\u0648\u0636\u0639 \u0627\u0644\u0643\u0627\u0626\u0646 \u0647\u0646\u0627\u0643.", "use-default-cardboard":"Use Default","enable-audio-prompt":"\u062a\u0645\u0643\u064a\u0646 \u0627\u0644\u0635\u0648\u062a\u061f"},"ca-es":{mute:"Silenciar","cardboard-v1":"Si no esteu segurs de quina versi\u00f3 de cartr\u00f3 utilitzeu, seleccioneu el control de punt d'acc\u00e9s per defecte. Despr\u00e9s, simplement veureu un punt d'acc\u00e9s i espereu fins que s'activi l'acci\u00f3.","download-tour":"Descarregueu la visita virtual per a jugar fora de l\u00ednia","change-to-drag-and-release":"Canvieu el mode de control a Arrossegar i deixeu anar", accept:"Accepta",cancel:"Cancel\u00b7lar","storage-not-provided-bookmark":"S'ha denegat l'emmagatzematge persistent. Proveu de marcar aquesta p\u00e0gina web i torneu-la a carregar.","dont-display-again":"No tornis a mostrar aquesta informaci\u00f3","web-server-required":"Aquesta visita virtual no es pot reproduir des d'una unitat local. Carregueu-lo a Internet i torneu-ho a provar.\nSi ho preferiu, arrossegueu el fitxer htm (o tota la carpeta de la visita virtual) a la icona de l'aplicaci\u00f3 TourViewer.", download:"Descarregar","change-to-click-and-move":"Canvieu el mode de control a Fer clic i desplaceu",yes:"s\u00ed","delete-downloaded":"Suprimeix","use-safari-for-vr":"Recomanem Safari per a visualitzar aquesta visita virtual en mode VR","exit-fullscreen":"Surt de pantalla completa",no:"no","download-failed":"Error de desc\u00e0rrega","giroscope-disabled-http":"Accediu a aquesta p\u00e0gina web a trav\u00e9s de http de manera que el moviment i l\u2019orientaci\u00f3 del dispositiu i el mode VR estan desactivats, accediu-hi mitjan\u00e7ant https per habilitar-les.", "cookies-notice":"Aquesta p\u00e0gina web utilitza cookies per recopilar estad\u00edstiques d\u2019\u00fas. Per obtenir m\u00e9s informaci\u00f3, visiteu la Pol\u00edtica de cookies.","use-cardboard":"Utilitzeu Cardboard","launch-default-browser":"Inicieu el navegador per defecte","refresh-downloaded":"Actualitzaci\u00f3","rotate-device":"Gireu el dispositiu","exit-vr":"Surt de VR",reject:"Rebutjar","disable-measure":"Stop measuring",downloading:"Baixant","cardboard-v2":"Si teniu unes Cardboard v2, que venen amb un bot\u00f3, podeu mirar cap a un punt de vista i pr\u00e9mer el bot\u00f3 per activar-lo.", "enable-video-audio-prompt":"Habilitar v\u00eddeo i \u00e0udio?","storage-not-provided-launch-from-desktop":"Torneu a iniciar la visita virtual des de la icona de l'escriptori per a descarregar-la.",downloaded:"Aquesta visita virtual es descarrega per a reproduir-la fora de l\u00ednia.","samsung-internet-vr-app-info":"Si teniu un auricular Gear VR compatible amb aquest dispositiu i heu instal\u00b7lat Samsung Internet per a VR, tamb\u00e9 podeu utilitzar-lo per visualitzar aquest contingut en VR, heu de fer que Samsung Internet sigui el vostre navegador predeterminat.", "samsung-internet-vr-info":"Si teniu un auricular Gear VR compatible amb aquest dispositiu i heu instal\u00b7lat Samsung Internet per a VR, tamb\u00e9 podeu utilitzar-lo per visualitzar aquest contingut en VR, nom\u00e9s heu de posar el tel\u00e8fon m\u00f2bil als auriculars.","enable-video-prompt":"Activar v\u00eddeo?","giroscope-disabled-safari-request-permission":["Aquest lloc web est\u00e0 desactivat en el moviment i en la direcci\u00f3 o en mode VR del dispositiu.","Per veure correctament aquesta p\u00e0gina web, feu clic a Continuar i accepteu la sol\u00b7licitud de perm\u00eds si se us demana."], "storage-not-provided-launch-from-homescreen":"Torneu a iniciar la visita virtual des de la icona de la pantalla inicial.","enter-fullscreen":"Entra a pantalla completa","use-cardboard-v2":"Utilitzeu Cardboard v2",unmute:"No activa","enter-vr":"Introdu\u00efu contingut de VR","enable-measure":"Start measuring","use-cardboard-info":"Podeu utilitzar qualsevol auricular de Google Cardboard compatible per a visualitzar aquest contingut en VR.","ar-mobile-info":"Mou lentament el dispositiu per a escanejar l'espai.\nUn anell apareixer\u00e0 quan es trobi una superf\u00edcie.\nToca la pantalla per a situar l'objecte all\u00e0.", "use-default-cardboard":"\u00das per defecte","enable-audio-prompt":"Activar \u00e0udio?"},"ru-ru":{mute:"\u0411\u0435\u0437 \u0437\u0432\u0443\u043a\u0430","cardboard-v1":"\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u043a\u0430\u043a\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e Cardboard \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0445\u043e\u0442\u0441\u043f\u043e\u0442 \u043a\u0430\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u0417\u0430\u0442\u0435\u043c \u0432\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u0445\u043e\u0442\u0441\u043f\u043e\u0442 \u0438 \u0434\u043e\u0436\u0434\u0438\u0442\u0435\u0441\u044c, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435.", "download-tour":"\u0421\u043a\u0430\u0447\u0430\u0442\u044c \u0442\u0443\u0440 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f","change-to-drag-and-release":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u0440\u0435\u0436\u0438\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u043f\u0435\u0440\u0435\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u043d\u0438\u0435", accept:"\u041f\u0440\u0438\u043d\u044f\u0442\u044c",download:"\u0421\u043a\u0430\u0447\u0430\u0442\u044c","storage-not-provided-bookmark":"\u0412 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043e\u0442\u043a\u0430\u0437\u0430\u043d\u043e. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u0443 \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0432 \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0438 \u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0435\u0435.", "dont-display-again":"\u0411\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u044d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e","web-server-required":"\u042d\u0442\u043e\u0442 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0443\u0440 \u043d\u0435\u043b\u044c\u0437\u044f \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430. \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0435\u0433\u043e \u0432 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0435 \u0440\u0430\u0437.\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043f\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 htm-\u0444\u0430\u0439\u043b (\u0438\u043b\u0438 \u0432\u0441\u044e \u043f\u0430\u043f\u043a\u0443 \u0442\u0443\u0440\u0430) \u043d\u0430 \u0437\u043d\u0430\u0447\u043e\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f TourViewer.", cancel:"\u041e\u0442\u043c\u0435\u043d\u0430","change-to-click-and-move":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u0440\u0435\u0436\u0438\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u043d\u0430\u0436\u0430\u043d\u0438\u0435 \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435",yes:"\u0434\u0430","delete-downloaded":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c","use-safari-for-vr":"\u041c\u044b \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c Safari \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u044d\u0442\u043e\u0433\u043e \u0442\u0443\u0440\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 VR.", "exit-fullscreen":"\u0412\u044b\u0439\u0442\u0438 \u0438\u0437 \u043f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430",no:"\u043d\u0435\u0442","download-failed":"\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438","giroscope-disabled-http":"\u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u044d\u0442\u043e\u0439 \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0447\u0435\u0440\u0435\u0437 http, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044e \u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432\u0430\u0448\u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u0440\u0435\u0436\u0438\u043c VR \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u044b, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u043e\u0439\u0434\u0438\u0442\u0435 \u043d\u0430 \u043d\u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 https, \u0447\u0442\u043e\u0431\u044b \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u0445.", "cookies-notice":"\u042d\u0442\u0430 \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0444\u0430\u0439\u043b\u044b cookie \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0441\u043c. \u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0432 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 cookie.", "use-cardboard":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Cardboard","launch-default-browser":"\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e","refresh-downloaded":"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c","rotate-device":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u0432\u0435\u0440\u043d\u0438\u0442\u0435 \u0432\u0430\u0448\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e", "exit-vr":"\u0412\u044b\u0439\u0442\u0438 \u0438\u0437 VR",reject:"\u041e\u0442\u043a\u043b\u043e\u043d\u0438\u0442\u044c","disable-measure":"\u041f\u0440\u0435\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f",downloading:"\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435","cardboard-v2":"\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u0430 Cardboard v2 \u0441 \u043a\u043d\u043e\u043f\u043a\u043e\u0439, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u0445\u043e\u0442\u0441\u043f\u043e\u0442 \u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0435\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435.", "enable-video-audio-prompt":"\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u0438\u0434\u0435\u043e \u0438 \u0430\u0443\u0434\u0438\u043e?","storage-not-provided-launch-from-desktop":"\u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c, \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0442\u0443\u0440 \u0441\u043e \u0437\u043d\u0430\u0447\u043a\u0430 \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u0441\u0442\u043e\u043b\u0435..", downloaded:"\u042d\u0442\u043e\u0442 \u0442\u0443\u0440 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f.","samsung-internet-vr-app-info":"\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u0430 Gear VR, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0430\u044f \u0441 \u044d\u0442\u0438\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c, \u0438 \u0432\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 Samsung Internet \u0434\u043b\u044f VR, \u0432\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0432 VR, \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c Samsung Internet \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.", "samsung-internet-vr-info":"\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u0430 Gear VR, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0430\u044f \u0441 \u044d\u0442\u0438\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c, \u0438 \u0432\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 Samsung Internet \u0434\u043b\u044f VR, \u0432\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0432 VR, \u0432\u0430\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0434\u0435\u0442\u044c \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043d\u0430 \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u0443 \u0441\u0435\u0439\u0447\u0430\u0441.", "enable-video-prompt":"\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u0438\u0434\u0435\u043e?","giroscope-disabled-safari-request-permission":["\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044e \u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432\u0430\u0448\u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0435\u0436\u0438\u043c VR \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430.", "\u0427\u0442\u043e\u0431\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u044d\u0442\u0443 \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u00ab\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c\u00bb \u0438 \u043f\u0440\u0438\u043c\u0438\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0435\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043e."], "storage-not-provided-launch-from-homescreen":"\u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c, \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0442\u0443\u0440 \u0441\u043e \u0437\u043d\u0430\u0447\u043a\u0430 \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u044d\u043a\u0440\u0430\u043d\u0435.","enter-fullscreen":"\u0412\u043e\u0439\u0442\u0438 \u0432 \u043f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c", "use-cardboard-v2":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Cardboard v2",unmute:"\u0421\u043e \u0437\u0432\u0443\u043a\u043e\u043c","enter-vr":"\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c VR \u043a\u043e\u043d\u0442\u0435\u043d\u0442","enable-measure":"\u041d\u0430\u0447\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f","use-cardboard-info":"\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0443\u044e \u0433\u0430\u0440\u043d\u0438\u0442\u0443\u0440\u0443 Google Cardboard \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0432 VR.", "ar-mobile-info":"\u041c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0439\u0442\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e.\n\u0411\u0443\u0434\u0435\u0442 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043a\u043e\u043b\u044c\u0446\u043e, \u043a\u043e\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0439\u0434\u0435\u043d\u0430 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u044c.\n\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0430\u043c.", "use-default-cardboard":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e","enable-audio-prompt":"\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0430\u0443\u0434\u0438\u043e?"},"nn-no":{mute:"Skru av lyd","cardboard-v1":"Hvis du ikke er sikker, hvilken Cardboard versjon du bruker, velger du standard hotspot-kontrollen. Du vil da bare se p\u00e5 et hotspot og vente til handlingen utl\u00f8ses.","download-tour":"Last ned visningen, s\u00e5 den kan bli sett uten internett", "change-to-drag-and-release":"Endre kontrollmodus til Trekk og Slipp",accept:"Aksepterer",cancel:"Avbryt","storage-not-provided-bookmark":"Vedvarende lagring nektet. Pr\u00f8v \u00e5 bokmerke denne nettsiden og laste den inn p\u00e5 nytt.","dont-display-again":"Ikke vis denne informasjonen igjen","web-server-required":"Denne virtuelle visningen kan ikke spilles av lokalt. Vennligst last den opp til internett, og fors\u00f8k igjen.\ndersom du prefererer det, kan du dra htm filen (eller hele mappen som inneholder visningen) over 'TourViewer' appen.", download:"Last ned","change-to-click-and-move":"Endre kontrollmodus til Klikk og Flytt",yes:"Ja","delete-downloaded":"Slett","use-safari-for-vr":"Vi anbefaler Safari for \u00e5 se p\u00e5 venne visningen i VR modus","exit-fullscreen":"G\u00e5 ut av full skjerm",no:"Nei","download-failed":"Nedlastning feilet","giroscope-disabled-http":"Du er koblet til denne nettsiden via http. Dermed er enhetens bevegelses- og orienteringstilgang og VR-modus deaktivert. Koble til via https for \u00e5 aktivere denne.", "cookies-notice":"Denne websiden bruker informasjonskapsler for \u00e5 samle inn bruksstatistikk. For mer informasjon, bes\u00f8k retningslinjer for informasjonskapsler.","use-cardboard":"Bruk Cardboard","launch-default-browser":"\u00c5pne i standard nettleser","refresh-downloaded":"Last inn p\u00e5 nytt","rotate-device":"Vennligst roter enheten","exit-vr":"G\u00e5 ut av VR",reject:"Avvis","disable-measure":"Stop measuring",downloading:"Laster ned","cardboard-v2":"Dersom du har Cardboard versjon 2, hvilket kommer med en knapp, kan du kikke p\u00e5 en klikkbar ting i visningen, og bruke knappen for \u00e5 bruke disse tingene, p\u00e5 samme m\u00e5te som p\u00e5 en laptop eller telefon.", "enable-video-audio-prompt":"Aktivere video og lyd?","storage-not-provided-launch-from-desktop":"Start turen p\u00e5 nytt fra skrivebordsikonet for \u00e5 laste ned.",downloaded:"Denne visningen er lastet ned, s\u00e5 den kan bli sett uten internett.","samsung-internet-vr-app-info":"Hvis du har et Gear VR-headset som er kompatibelt med denne enheten og har installert Samsung Internet for VR, kan du ogs\u00e5 bruke det til \u00e5 se dette innholdet i VR, du m\u00e5 ogs\u00e5 gj\u00f8re Samsung Internet til standard nettleser.", "samsung-internet-vr-info":"Hvis du har et Gear VR-headset som er kompatibelt med denne enheten, og du har installert Samsung Internet for VR, kan du ogs\u00e5 bruke det til \u00e5 se dette innholdet i VR, du trenger bare \u00e5 sette mobiltelefonen p\u00e5 headsettet n\u00e5.","enable-video-prompt":"Aktivere video?","giroscope-disabled-safari-request-permission":["Din enhet sin bevegelses- og orienterings tilgang, samt VR modus er deaktivert for denne nettsiden.","For \u00e5 se denne siden korrekt, vennligst klikk p\u00e5 fortsett og godta tillatelsesforesp\u00f8rselen hvis du blir bedt om dette."], "storage-not-provided-launch-from-homescreen":"Start turen p\u00e5 nytt fra startskjermikonet for \u00e5 laste ned.","enter-fullscreen":"G\u00e5 til full skjerm","use-cardboard-v2":"Bruk Cardboard Versjon 2",unmute:"Skru p\u00e5 lyd","enter-vr":"\u00c5pne VR Modus","enable-measure":"Start measuring","use-cardboard-info":"Du kan bruke hvilke some helst Google Cardboard kompatible headsett for \u00e5 se denne visningen i VR.","ar-mobile-info":"Flytt enheten din sakte for \u00e5 skanne rommet ditt.\nEn ring vil vises n\u00e5r en overflate blir funnet.\nTrykk p\u00e5 skjermen for \u00e5 plassere objektet der.", "use-default-cardboard":"Bruk Standard","enable-audio-prompt":"Aktivere audio?"},"es-es":{mute:"Silenciar","cardboard-v1":"Si no esta seguro de que versi\u00f3n de Cardboard debe usar escoja la selecci\u00f3n de hotspot por defecto. Solo tendr\u00e1 que apuntar al hotspot y esperar para que se ejecute la acci\u00f3n.","download-tour":"Descargar el tour para reproducirlo sin conexi\u00f3n","change-to-drag-and-release":"Cambiar el modo de control a arrastrar y soltar",accept:"Aceptar","use-cardboard-v2":"Usar Cardboard v2", "storage-not-provided-bookmark":"Almacenamiento persistente denagado. Intente a\u00f1adir la p\u00e1gina a los marcadores y recargarla.","dont-display-again":"No volver a mostrar esta informaci\u00f3n","web-server-required":"Este tour virtual no puede reproducirse desde una unidad local. Por favor s\u00fabalo a internet y pruebe de nuevo.\nSi lo prefiere puede arrastrar el archivo html o la carpeta con el tour sobre el icono de la aplicaci\u00f3n Tour Viewer de su escritorio.",download:"Descargar", "change-to-click-and-move":"Cambiar el modo de control a pulsar y mover",yes:"s\u00ed","delete-downloaded":"Borrar","use-safari-for-vr":"Recomendamos Safari para ver este tour en modo VR","exit-fullscreen":"Salir de pantalla completa",no:"no","download-failed":"La descarga ha fallado","giroscope-disabled-http":"Est\u00e1 accediendo a esta p\u00e1gina web por http por lo que el acceso al movimiento y la orientaci\u00f3n del dispositivo est\u00e1 deshabilitado, por favor acceda por https.","cookies-notice":"Esta p\u00e1gina usa cookies para recolectar estad\u00edsticas de uso. Para m\u00e1s informaci\u00f3n, visite la Pol\u00edtica de Cookies.", "use-cardboard":"Usar Cardboard","launch-default-browser":"Lanzar en el navegador por defecto","refresh-downloaded":"Actualizar","rotate-device":"Por favor, gire el dispositivo","exit-vr":"Salir de VR","storage-not-provided-launch-from-desktop":"Por favor lance el tour desde el escritorio para descargarlo.","disable-measure":"Stop measuring",cancel:"Cancel",downloading:"Descargando","cardboard-v2":"Si tiene unas gafas Cardboard v2, que vienen con un bot\u00f3n, puede apuntar al hotspot y pulsar el bot\u00f3n para que se ejecute su acci\u00f3n.", "enable-video-audio-prompt":"\u00bfActivar v\u00eddeo y audio?",reject:"Rechazar",downloaded:"Este tour esta descargado para reproducirlo sin conexi\u00f3n.","samsung-internet-vr-app-info":"Si tiene unas gafas Gear VR compatibles con este dispositivo y tiene instalado Samsung Internet for VR puede usarlo para ver este contenido en VR, necesita hacer Samsung Internet su navegador por defecto.","samsung-internet-vr-info":"Si tiene unas gafas Gear VR compatibles con este dispositivo y tiene instalado Samsung Internet for VR puede usarlo para ver este contenido en VR, solo tiene que poner ahora el dispositivo en las gafas.", "enable-video-prompt":"\u00bfActivar v\u00eddeo?","giroscope-disabled-safari-request-permission":["El acceso al movimiento y la orientaci\u00f3n del dispositivo est\u00e1 deshabiltado para este sitio.","Para ver correctamente la p\u00e1gina por favor pulse Continuar y acepte la petici\u00f3n de permiso si se muestra."],"storage-not-provided-launch-from-homescreen":"Por favor lance el tour desde el icono de la pantalla de inicio para descargarlo.","enter-fullscreen":"Mostrar en pantalla completa", unmute:"Habilitar sonido","enter-vr":"Entrar al contenido VR","enable-measure":"Start measuring","use-cardboard-info":"Puede usar unas gafas compatibles con Google Cardboard para ver este contenido en VR.","ar-mobile-info":"Mueve lentamente el dispositivo para escanear el espacio.\nAparecer\u00e1 un anillo cuando se encuentre una superficie.\nToca la pantalla para colocar el objeto all\u00ed.","use-default-cardboard":"Usar versi\u00f3n por defecto","enable-audio-prompt":"\u00bfActivar audio?"},"el-gr":{mute:"\u0391\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03c4\u03b5 \u03c4\u03bf\u03bd \u03ae\u03c7\u03bf", "cardboard-v1":"If you are not sure, which Cardboard version you're using, select the default hotspot control. You'll then simply gaze at a hotspot and wait until the action is triggered.","download-tour":"Download Tour for offline playing","change-to-drag-and-release":"\u0391\u03bb\u03bb\u03ac\u03be\u03c4\u03b5 \u03c4\u03b7 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b5\u03bb\u03ad\u03b3\u03c7\u03bf\u03c5 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c3\u03cd\u03c1\u03b5\u03c4\u03b5 \u03ba\u03b1\u03b9 \u03bd\u03b1 \u03b1\u03c0\u03b5\u03bb\u03b5\u03c5\u03b8\u03b5\u03c1\u03ce\u03c3\u03b5\u03c4\u03b5", accept:"\u0391\u03c0\u03bf\u03b4\u03ad\u03c7\u03bf\u03bc\u03b1\u03b9",download:"Download","storage-not-provided-bookmark":"Persistent storage denied. Try bookmarking this webpage and reloading it.","dont-display-again":"Don't display this info again","web-server-required":"This virtual tour cannot be played from a local drive. Please upload it to the internet and try again.\nIf you prefer, drag the htm file (or the entire folder of the tour) onto the icon of the TourViewer app.",cancel:"Cancel","change-to-click-and-move":"\u0391\u03bb\u03bb\u03ac\u03be\u03c4\u03b5 \u03c4\u03b7 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b5\u03bb\u03ad\u03b3\u03c7\u03bf\u03c5 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5 \u03ba\u03bb\u03b9\u03ba \u03ba\u03b1\u03b9 \u03bd\u03b1 \u03bc\u03b5\u03c4\u03b1\u03ba\u03b9\u03bd\u03b7\u03b8\u03b5\u03af\u03c4\u03b5", yes:"\u039d\u03b1\u03af","delete-downloaded":"Delete","use-safari-for-vr":"We recommend Safari to view this tour in VR mode","exit-fullscreen":"\u0388\u03be\u03bf\u03b4\u03bf\u03c2 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03c0\u03bb\u03ae\u03c1\u03b7 \u03bf\u03b8\u03cc\u03bd\u03b7",no:"\u03cc\u03c7\u03b9","download-failed":"Download failed","giroscope-disabled-http":"You are accessing this webpage through http so your device's motion and orientation access and VR mode are disabled, please access it through https to enable them.", "cookies-notice":"\u0391\u03c5\u03c4\u03ae \u03b7 \u03b9\u03c3\u03c4\u03bf\u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b5\u03af cookie \u03b3\u03b9\u03b1 \u03c4\u03b7 \u03c3\u03c5\u03bb\u03bb\u03bf\u03b3\u03ae \u03c3\u03c4\u03b1\u03c4\u03b9\u03c3\u03c4\u03b9\u03ba\u03ce\u03bd \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03c9\u03bd \u03c7\u03c1\u03ae\u03c3\u03b7\u03c2. \u0393\u03b9\u03b1 \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03b5\u03c2 \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2, \u03b5\u03c0\u03b9\u03c3\u03ba\u03b5\u03c6\u03b8\u03b5\u03af\u03c4\u03b5 \u03c4\u03b7\u03bd \u03a0\u03bf\u03bb\u03b9\u03c4\u03b9\u03ba\u03ae cookie .", "use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","refresh-downloaded":"Refresh","rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"\u0391\u03c0\u03bf\u03c1\u03c1\u03af\u03c0\u03c4\u03c9","disable-measure":"Stop measuring",downloading:"Downloading","cardboard-v2":"If you have a Cardboard v2 headset, which comes with a button, you can gaze at a hotspot and press the button to trigger its action.","enable-video-audio-prompt":"\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03ae\u03c7\u03bf\u03c5 \u03ba\u03b1\u03b9 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf;", "storage-not-provided-launch-from-desktop":"Please relaunch the tour from the desktop icon to download.",downloaded:"This tour is downloaded for offline playing.","samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.", "enable-video-prompt":"\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf;","giroscope-disabled-safari-request-permission":["Your device's motion and orientation access and VR mode are disabled for this site.","To properly see this webpage, please click continue and accept the permission request if prompted."],"storage-not-provided-launch-from-homescreen":"Please relaunch the tour from the home screen icon to download.","enter-fullscreen":"\u0395\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03c0\u03bb\u03ae\u03c1\u03b7 \u03bf\u03b8\u03cc\u03bd\u03b7", "use-cardboard-v2":"Use Cardboard v2",unmute:"\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03ae\u03c7\u03bf\u03c5","enter-vr":"Enter VR content","enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","ar-mobile-info":"\u039c\u03b5\u03c4\u03b1\u03ba\u03b9\u03bd\u03ae\u03c3\u03c4\u03b5 \u03c4\u03b7 \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae \u03c3\u03b1\u03c2 \u03b1\u03c1\u03b3\u03ac \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c3\u03b1\u03c1\u03ce\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03c7\u03ce\u03c1\u03bf \u03c3\u03b1\u03c2.\n\u0398\u03b1 \u03b5\u03bc\u03c6\u03b1\u03bd\u03b9\u03c3\u03c4\u03b5\u03af \u03ad\u03bd\u03b1\u03c2 \u03b4\u03b1\u03ba\u03c4\u03cd\u03bb\u03b9\u03bf\u03c2 \u03cc\u03c4\u03b1\u03bd \u03b5\u03bd\u03c4\u03bf\u03c0\u03b9\u03c3\u03c4\u03b5\u03af \u03bc\u03b9\u03b1 \u03b5\u03c0\u03b9\u03c6\u03ac\u03bd\u03b5\u03b9\u03b1.\n\u039a\u03ac\u03bd\u03c4\u03b5 \u03ba\u03bb\u03b9\u03ba \u03c3\u03c4\u03b7\u03bd \u03bf\u03b8\u03cc\u03bd\u03b7 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c4\u03bf\u03c0\u03bf\u03b8\u03b5\u03c4\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03b1\u03bd\u03c4\u03b9\u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u03b5\u03ba\u03b5\u03af.", "use-default-cardboard":"Use Default","enable-audio-prompt":"\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03ae\u03c7\u03bf\u03c5;"},"da-dk":{mute:"Deaktiver lyd","cardboard-v1":"If you are not sure, which Cardboard version you're using, select the default hotspot control. You'll then simply gaze at a hotspot and wait until the action is triggered.","download-tour":"Download Tour for offline playing","change-to-drag-and-release":"Skift kontroltilstand for at tr\u00e6kke og slippe", accept:"Acceptere",download:"Download","storage-not-provided-bookmark":"Persistent storage denied. Try bookmarking this webpage and reloading it.","dont-display-again":"Don't display this info again","web-server-required":"This virtual tour cannot be played from a local drive. Please upload it to the internet and try again.\nIf you prefer, drag the htm file (or the entire folder of the tour) onto the icon of the TourViewer app.",cancel:"Cancel","change-to-click-and-move":"Skift kontroltilstand for at klikke og flytte", yes:"Ja","delete-downloaded":"Delete","use-safari-for-vr":"We recommend Safari to view this tour in VR mode","exit-fullscreen":"Afslut fuldsk\u00e6rm",no:"ingen","download-failed":"Download failed","giroscope-disabled-http":"You are accessing this webpage through http so your device's motion and orientation access and VR mode are disabled, please access it through https to enable them.","cookies-notice":"Denne webside bruger cookies til at indsamle brugsstatistikker. For mere information, se venligst Cookiepolitik .", "use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","refresh-downloaded":"Refresh","rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"Afvise","disable-measure":"Stop measuring",downloading:"Downloading","cardboard-v2":"If you have a Cardboard v2 headset, which comes with a button, you can gaze at a hotspot and press the button to trigger its action.","enable-video-audio-prompt":"Aktiv\u00e9r lyd og video?","storage-not-provided-launch-from-desktop":"Please relaunch the tour from the desktop icon to download.", downloaded:"This tour is downloaded for offline playing.","samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.", "enable-video-prompt":"Aktiv\u00e9r video?","giroscope-disabled-safari-request-permission":["Your device's motion and orientation access and VR mode are disabled for this site.","To properly see this webpage, please click continue and accept the permission request if prompted."],"storage-not-provided-launch-from-homescreen":"Please relaunch the tour from the home screen icon to download.","enter-fullscreen":"Indtast fuldsk\u00e6rm","use-cardboard-v2":"Use Cardboard v2",unmute:"Aktiv\u00e9r lyd","enter-vr":"Enter VR content", "enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","ar-mobile-info":"Flyt dit enhed langsomt for at skanne dit rum.\nEn ring vil vises, n\u00e5r en overflade findes.\nTryk p\u00e5 sk\u00e6rmen for at placere objektet der.","use-default-cardboard":"Use Default","enable-audio-prompt":"Aktiv\u00e9r lyd?"},"pl-pl":{mute:"Wycisz","cardboard-v1":"Je\u015bli nie masz pewno\u015bci, kt\u00f3rej wersji Cardboard u\u017cywasz, wybierz domy\u015blne sterowanie hotspotem. Nast\u0119pnie skieruj wzrok na hotspot i poczekaj na uruchomienie ich dzia\u0142ania.", "download-tour":"Pobierz spacer do odtwarzania w trybie offline","change-to-drag-and-release":"Zmie\u0144 tryb na Przeci\u0105gnij i Upu\u015b\u0107",accept:"Zaakceptowa\u0107",cancel:"Anuluj","storage-not-provided-bookmark":"Odmowa zapisu w pami\u0119ci sta\u0142ej. Spr\u00f3buj doda\u0107 stron\u0119 do zak\u0142adek i za\u0142aduj j\u0105 ponownie.","dont-display-again":"Nie wy\u015bwietlaj tego ponownie","web-server-required":"Nie mo\u017cna odtworzy\u0107 tego spaceru z dysku lokalnego. Prze\u015blij go do internetu i spr\u00f3buj ponownie.\nMo\u017cesz te\u017c przeci\u0105gn\u0105\u0107 plik htm (lub ca\u0142y folder spaceru) na ikon\u0119 aplikacji TourViewer.", download:"Pobierz","change-to-click-and-move":"Zmie\u0144 tryb na to Kliknij i Przenie\u015b",yes:"tak","delete-downloaded":"Usu\u0144","use-safari-for-vr":"Zalecamy Safari, jako przegl\u0105dark\u0119 spacer\u00f3w w trybie VR","exit-fullscreen":"Wyjd\u017a z trybu pe\u0142nego ekranu",no:"nie","download-failed":"Pobieranie nie powiod\u0142o si\u0119","giroscope-disabled-http":"To jest dost\u0119p za po\u015brednictwem protoko\u0142u http, wi\u0119c dost\u0119p do ruchu i orientacji oraz tryb VR s\u0105 wy\u0142\u0105czone. Prze\u0142\u0105cz si\u0119\u00a0na protok\u00f3\u0142 https, aby je w\u0142\u0105czy\u0107.", "cookies-notice":"Ta strona u\u017cywa plik\u00f3w cookie do zbierania statystyk u\u017cytkowania. Aby uzyska\u0107 wi\u0119cej informacji, odwied\u017a Zasady dotycz\u0105ce plik\u00f3w cookie.","use-cardboard":"U\u017cyj Cardboard","launch-default-browser":"Uruchom w domy\u015blnej przegl\u0105darce","refresh-downloaded":"Od\u015bwie\u017c","rotate-device":"Obr\u00f3\u0107 urz\u0105dzenie","exit-vr":"Wyjd\u017a z VR",reject:"Odrzuca\u0107","disable-measure":"Stop measuring",downloading:"Pobieranie", "cardboard-v2":"Je\u015bli masz okulary Cardboard v2, kt\u00f3re maj\u0105 przycisk, mo\u017cesz spojrze\u0107 na hotspot i nacisn\u0105\u0107 przycisk, aby uruchomi\u0107 ich dzia\u0142anie.","enable-video-audio-prompt":"W\u0142\u0105czy\u0107 video i d\u017awi\u0119k?","storage-not-provided-launch-from-desktop":"Aby pobra\u0107, uruchom ponownie spacer klikaj\u0105c ikon\u0119 pulpitu.",downloaded:"Spacer jest pobierany do odtwarzania w trybie offline.","samsung-internet-vr-app-info":"Je\u015bli masz okulary zgodne z Gear VR i zainstalowa\u0142e\u015b Samsung Internet for VR, mo\u017cesz je u\u017cy\u0107 do przegl\u0105dania zawarto\u015bci w VR. Musisz w tym przypadku ustawi\u0107 Samsung Internet jako domy\u015bln\u0105 przegl\u0105dark\u0119.", "samsung-internet-vr-info":"Je\u015bli masz okulary Gear VR i zainstalowa\u0142e\u015b Samsung Internet for VR, to mo\u017cesz u\u017cy\u0107 ich do przegl\u0105dania zawarto\u015bci w VR. Umie\u015b\u0107 teraz telefon w okularach Gear VR.","enable-video-prompt":"W\u0142\u0105czy\u0107 video?","giroscope-disabled-safari-request-permission":["Dost\u0119p do funkcji ruchu i orientacji oraz tryb VR s\u0105 wy\u0142\u0105czone dla tej strony.","Aby poprawnie wy\u015bwietli\u0107 stron\u0119, kliknij kontynuuj i zaakceptuj wszystkie zgody."], "storage-not-provided-launch-from-homescreen":"Aby pobra\u0107, uruchom ponownie spacer klikaj\u0105c ikon\u0119 strony g\u0142\u00f3wnej.","enter-fullscreen":"Uruchom pe\u0142ny ekran","use-cardboard-v2":"U\u017cyj Cardboard v2",unmute:"Wy\u0142\u0105cz Wycisz","enter-vr":"Wejd\u017a do VR","enable-measure":"Start measuring","use-cardboard-info":"Do wy\u015bwietlania w VR mo\u017cesz u\u017cy\u0107 oklular\u00f3w zgodnych z Google Cardboard.","ar-mobile-info":"Poruszaj urz\u0105dzeniem powoli, aby zeskanowa\u0107 sw\u00f3j obszar.\nPojawi si\u0119 okr\u0105g, gdy zostanie znaleziona powierzchnia.\nDotknij ekranu, aby umie\u015bci\u0107 obiekt tam.", "use-default-cardboard":"U\u017cyj Domy\u015blnych","enable-audio-prompt":"W\u0142\u0105czy\u0107 d\u017awi\u0119k?"},"fr-fr":{mute:"Couper le son","cardboard-v1":"Si vous n'\u00eates pas s\u00fbr de la version de votre Cardboard, s\u00e9lectionnez le contr\u00f4le de hotspot par d\u00e9faut. Ensuite, vous n'aurez qu'\u00e0 fixer un hotspot du regard et attendre que l'action se d\u00e9clenche.","download-tour":"T\u00e9l\u00e9charger la visite pour jouer hors ligne","change-to-drag-and-release":"Changer le mode de contr\u00f4le en glisser-d\u00e9poser", accept:"Accepter",cancel:"Annuler","storage-not-provided-bookmark":"Stockage persistant refus\u00e9. Essayez de mettre cette page Web en signet et de la recharger.","dont-display-again":"Ne plus afficher ces informations","web-server-required":"Cette visite virtuelle ne peut pas \u00eatre lue \u00e0 partir d'un lecteur local. Veuillez la t\u00e9l\u00e9charger sur Internet et r\u00e9essayer.\nSi vous pr\u00e9f\u00e9rez, faites glisser le fichier htm (ou l'int\u00e9gralit\u00e9 du dossier de la visite) sur l'ic\u00f4ne de l'application TourViewer.", download:"T\u00e9l\u00e9charger","change-to-click-and-move":"Changer le mode de contr\u00f4le pour cliquer et d\u00e9placer",yes:"Oui","delete-downloaded":"Supprimer","use-safari-for-vr":"Nous recommandons Safari pour visionner cette visite en mode VR","exit-fullscreen":"Quitter le mode plein \u00e9cran",no:"Non","download-failed":"\u00c9chec du t\u00e9l\u00e9chargement","giroscope-disabled-http":"Vous acc\u00e9dez \u00e0 cette page Web via http, donc l'acc\u00e8s au mouvement et \u00e0 l'orientation de votre appareil et le mode VR sont d\u00e9sactiv\u00e9s, veuillez y acc\u00e9der via https pour les activer.", "cookies-notice":"Cette page Web utilise des cookies pour collecter des statistiques d'utilisation. Pour plus d'informations, veuillez consulter la Politique en mati\u00e8re de cookies.","use-cardboard":"Utiliser le Cardboard","launch-default-browser":"Lancer dans le navigateur par d\u00e9faut","refresh-downloaded":"Rafra\u00eechir","rotate-device":"Veuillez faire pivoter votre appareil","exit-vr":"Quitter la r\u00e9alit\u00e9 virtuelle",reject:"Rejeter","disable-measure":"Arr\u00eatez de mesurer", downloading:"T\u00e9l\u00e9chargement","cardboard-v2":"Si vous disposez d'un casque Cardboard v2, qui est \u00e9quip\u00e9 d'un bouton, vous pouvez fixer un hotspot du regard et appuyer sur le bouton pour d\u00e9clencher son action.","enable-video-audio-prompt":"Activer la vid\u00e9o et l'audio?","storage-not-provided-launch-from-desktop":"Veuillez relancer la visite \u00e0 partir de l'ic\u00f4ne du bureau pour t\u00e9l\u00e9charger.",downloaded:"Cette visite est t\u00e9l\u00e9charg\u00e9e pour jouer hors ligne.", "samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"Si vous disposez d'un casque Gear VR compatible avec cet appareil et que vous avez install\u00e9 Samsung Internet pour VR, vous pouvez \u00e9galement l'utiliser pour visualiser ce contenu en r\u00e9alit\u00e9 virtuelle. Il vous suffit de placer maintenant le t\u00e9l\u00e9phone mobile sur le casque.", "enable-video-prompt":"Activer la vid\u00e9o?","giroscope-disabled-safari-request-permission":["L'acc\u00e8s au mouvement et \u00e0 l'orientation de votre appareil et le mode VR sont d\u00e9sactiv\u00e9s pour ce site.","Pour voir correctement cette page Web, veuillez cliquer sur Continuer et accepter la demande d'autorisation si vous y \u00eates invit\u00e9."],"storage-not-provided-launch-from-homescreen":"Veuillez relancer la visite \u00e0 partir de l'ic\u00f4ne de l'\u00e9cran d'accueil pour t\u00e9l\u00e9charger.", "enter-fullscreen":"Passer en mode plein \u00e9cran","use-cardboard-v2":"Utiliser le Cardboard v2",unmute:"R\u00e9tablir le son","enter-vr":"Entrez le contenu VR","enable-measure":"Commencer \u00e0 mesurer","use-cardboard-info":"Vous pouvez utiliser n'importe quel casque Google Cardboard compatible pour visualiser ce contenu en r\u00e9alit\u00e9 virtuelle.","ar-mobile-info":"D\u00e9placez lentement votre appareil pour scanner votre espace.\nUn anneau appara\u00eetra lorsqu'une surface sera trouv\u00e9e.\nAppuyez sur l'\u00e9cran pour placer l'objet l\u00e0.", "use-default-cardboard":"Utiliser par d\u00e9faut","enable-audio-prompt":"Activer le son?"},"de-de":{mute:"Deaktiviere Audio","cardboard-v1":"Wenn Sie sich nicht sicher sind, welche Cardboard-Version Sie verwenden, w\u00e4hlen Sie die Standard-Hotspot-Steuerung. Sie schauen dann einfach auf einen Hotspot und warten, bis die jeweilige Aktion ausgel\u00f6st wird.","download-tour":"Tour zum Offline-Abspielen herunterladen","giroscope-disabled-safari-request-permission":["Der Bewegungs- und Orientierungszugriff, sowie VR Modus Ihres Ger\u00e4ts ist f\u00fcr diese Seite deaktiviert.", "Um diese Webseite korrekt anzuzeigen, klicken Sie auf Weiter und akzeptieren Sie die Erlaubnisanfrage, wenn Sie dazu aufgefordert werden."],accept:"Akzeptieren",download:"Download",downloading:"Downloading","dont-display-again":"Diese Info nicht mehr anzeigen","web-server-required":"Diese Virtual Tour kann nicht von einem lokalen Laufwerk abgespielt werden. Laden Sie Ihre Tour ins Internet und versuchen Sie es erneut.\nAlternativ, ziehen Sie die htm Datei (oder den ganzen Tour Ordner) auf das Icon der Tour Viewer App, um die Tour direkt lokal abzuspielen.", cancel:"Abbrechen","change-to-click-and-move":"\u00c4ndern Sie den Steuerungsmodus, um zu klicken und zu drehen",yes:"ja","delete-downloaded":"L\u00f6schen","use-safari-for-vr":"Wir empfehlen Safari, um diese Tour im VR-Modus zu sehen","exit-fullscreen":"Vollbild verlassen",no:"nein","storage-not-provided-bookmark":"Dauerhafte Speicherung verweigert. Versuchen Sie, diese Seite als Lesezeichen zu speichern und erneut zu laden.","download-failed":"Download fehlgeschlagen","giroscope-disabled-http":"Der Bewegungs- und Ausrichtungsszugriff Ihres Ger\u00e4ts ist f\u00fcr diese Webseite deaktiviert. Greifen Sie bitte \u00fcber https darauf zu.", "cookies-notice":"Diese Webseite verwendet Cookies, um Nutzungsstatistiken zu sammeln. Weitere Informationen finden Sie in der Cookie-Richtlinie.","use-cardboard":"Cardboard verwenden","launch-default-browser":"Im Standardbrowser starten","refresh-downloaded":"Aktualisieren","rotate-device":"Bitte drehen Sie Ihr Ger\u00e4t","exit-vr":"VR verlassen",reject:"Ablehnen","disable-measure":"Messung beenden","change-to-drag-and-release":"\u00c4ndern Sie den Steuerungsmodus zu Ziehen und Loslassen", "cardboard-v2":"Wenn Sie ein Cardboard v2-Headset haben, das mit einer Taste ausgestattet ist, k\u00f6nnen Sie auf einen Hotspot blicken und die Taste dr\u00fccken, um dessen Aktion auszul\u00f6sen.","enable-video-audio-prompt":"Video und Audio aktivieren?","storage-not-provided-launch-from-desktop":"Bitte starten Sie die Tour erneut \u00fcber das Desktop-Symbol, um sie herunterzuladen.",downloaded:"Diese Tour ist zum Offline-Abspielen heruntergeladen.","samsung-internet-vr-app-info":"Wenn Sie ein Gear VR-Headset haben, das mit diesem Ger\u00e4t kompatibel ist, und Sie Samsung Internet f\u00fcr VR installiert haben, k\u00f6nnen Sie es auch verwenden, um diese Inhalte in VR anzusehen. Machen Sie dazu Samsung Internet zu Ihrem Standardbrowser.", "samsung-internet-vr-info":"Wenn Sie ein Gear VR-Headset haben, das mit diesem Ger\u00e4t kompatibel ist, und Sie Samsung Internet f\u00fcr VR installiert haben, k\u00f6nnen Sie es auch verwenden, um diese Inhalte in VR zu sehen. Setzen Sie dazu nun das Mobiltelefon auf das Headset.","enable-video-prompt":"Video aktivieren?","storage-not-provided-launch-from-homescreen":"Bitte starten Sie die Tour erneut \u00fcber das Symbol auf dem Startbildschirm, um sie herunterzuladen.","enter-fullscreen":"Vollbildmodus aktivieren", "use-cardboard-v2":"Cardboard v2 verwenden",unmute:"Audio aktivieren","enter-vr":"VR Inhalt eingeben","enable-measure":"Messung beginnen","use-cardboard-info":"Sie k\u00f6nnen jedes kompatible Google Cardboard-Headset verwenden, um diese Inhalte in VR zu sehen.","ar-mobile-info":"Bewegen Sie Ihr Ger\u00e4t langsam, um Ihr Raum zu scannen.\nEin Ring wird angezeigt, wenn eine Oberfl\u00e4che gefunden wird.\nTippen Sie auf den Bildschirm, um das Objekt dort zu platzieren.","use-default-cardboard":"Standard verwenden", "enable-audio-prompt":"Audio aktivieren?"},"tr-tr":{mute:"Sesi devre d\u0131s\u0131 b\u0131rakmak","cardboard-v1":"If you are not sure, which Cardboard version you're using, select the default hotspot control. You'll then simply gaze at a hotspot and wait until the action is triggered.","download-tour":"Download Tour for offline playing","change-to-drag-and-release":"S\u00fcr\u00fckleyip b\u0131rakmak i\u00e7in kontrol modunu de\u011fi\u015ftirin",accept:"Kabul etmek",download:"Download","storage-not-provided-bookmark":"Persistent storage denied. Try bookmarking this webpage and reloading it.", "dont-display-again":"Don't display this info again","web-server-required":"This virtual tour cannot be played from a local drive. Please upload it to the internet and try again.\nIf you prefer, drag the htm file (or the entire folder of the tour) onto the icon of the TourViewer app.",cancel:"Cancel","change-to-click-and-move":"T\u0131klamak ve ta\u015f\u0131mak i\u00e7in kontrol modunu de\u011fi\u015ftirin",yes:"evet","delete-downloaded":"Delete","use-safari-for-vr":"We recommend Safari to view this tour in VR mode", "exit-fullscreen":"Tam ekrandan \u00e7\u0131k",no:"hay\u0131r","download-failed":"Download failed","giroscope-disabled-http":"You are accessing this webpage through http so your device's motion and orientation access and VR mode are disabled, please access it through https to enable them.","cookies-notice":"Bu web sayfas\u0131, kullan\u0131m istatistiklerini toplamak i\u00e7in tan\u0131mlama bilgileri kullan\u0131r. Daha fazla bilgi i\u00e7in l\u00fctfen \u00c7erez Politikas\u0131n\u0131 ziyaret edin.", "use-cardboard":"Use Cardboard","launch-default-browser":"Launch in default browser","refresh-downloaded":"Refresh","rotate-device":"Please rotate your device","exit-vr":"Exit VR",reject:"Reddet","disable-measure":"Stop measuring",downloading:"Downloading","cardboard-v2":"If you have a Cardboard v2 headset, which comes with a button, you can gaze at a hotspot and press the button to trigger its action.","enable-video-audio-prompt":"Ses ve video etkinle\u015ftirilsin mi?","storage-not-provided-launch-from-desktop":"Please relaunch the tour from the desktop icon to download.", downloaded:"This tour is downloaded for offline playing.","samsung-internet-vr-app-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you need to make Samsung Internet your default browser.","samsung-internet-vr-info":"If you have a Gear VR headset compatible with this device and you have installed Samsung Internet for VR you can also use it to view this content in VR, you just need to put the mobile phone on the headset now.", "enable-video-prompt":"Video aktif edilsin mi?","giroscope-disabled-safari-request-permission":["Your device's motion and orientation access and VR mode are disabled for this site.","To properly see this webpage, please click continue and accept the permission request if prompted."],"storage-not-provided-launch-from-homescreen":"Please relaunch the tour from the home screen icon to download.","enter-fullscreen":"Tam ekran yap","use-cardboard-v2":"Use Cardboard v2",unmute:"Sesi etkinle\u015ftir","enter-vr":"Enter VR content", "enable-measure":"Start measuring","use-cardboard-info":"You can use any compatible Google Cardboard headset to view this content in VR.","ar-mobile-info":"Cihaz\u0131n\u0131z\u0131 yava\u015f\u00e7a hareket ettirerek alan\u0131n\u0131z\u0131 taray\u0131n.\nBir daire g\u00f6r\u00fcnecektir kullan\u0131c\u0131 aray\u00fcz\u00fcnde bir y\u00fczey bulundu\u011funda.\nEkran\u0131na dokunun ve objeyi oraya yerle\u015ftirin.","use-default-cardboard":"Use Default","enable-audio-prompt":"Ses aktif edilsin mi?"}}}); define("tdv/player/l10n",["require","exports","tdv/player/texts","tdv/utils","tdv/player/view/util/URL"],function(a,m,h,n,g){function k(f){return h[d][f]||h.en[f]||f}for(var e in h)h[e.substring(0,2)]=h[e];h["zh-hk"]=h["zh-mo"]=h["zh-tw"];h.no=h.nn;var b=function(){var f=window.navigator,l=["language","browserLanguage","systemLanguage","userLanguage"],p,q,r=[];(p=g.getQueryParameter("language"))&&r.push(p.toLowerCase());var t=f.languages;if(Array.isArray(t))for(p=0;p=0)return l;l=l.substr(0,2);if(c.indexOf(l)>=0)return l}return"en"}();k.log=function(){n.log("translation lang: "+d);n.log("browser lang: "+b.join(", "))};return k}); define("tdv/view/util/UserInitiatedAction",["require","exports","tdv/player/view/util/Device"],function(a,m,h){function n(){for(;l.length;)l.shift()();document.body.removeEventListener("click",n,!0);document.body.removeEventListener("touchstart",e,!0);document.body.removeEventListener("touchmove",k,!0);document.body.removeEventListener("touchend",g,!0);d=!1}function g(){f&&n()}function k(){f=!1}function e(){f=!0;h.Nd()==h.vj&&n()}function b(){document.body.addEventListener("click",n,!0);document.body.addEventListener("touchstart", e,!0);document.body.addEventListener("touchmove",k,!0);document.body.addEventListener("touchend",g,!0)}function c(q,r){var t=this;return function(){r&&n();p+=1;var u=q.apply(t,arguments);--p;return u}}var d=!1,f=!1,l=[];a={wait:function(q){l.push(q);d||(d=!0,document.body?b():document.addEventListener("DOMContentLoaded",b))},oqb:function(q){q=l.indexOf(q);q>=0&&l.splice(q,1)}};var p=0;a.zr=c;a.Usa=c;a.y8=function(){return p>0};return a}); define("tdv/view/av/DummyVideoData",["require","exports"],function(){var a={};a.src=a.jqb="data:video/mp4;base64,AAAAHGZ0eXBpc29tAAACAGlzb21pc28ybXA0MQAAAAhmcmVlAAAC721kYXQhEAUgpBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcCEQBSCkG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAsJtb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAALwABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAB7HRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAIAAAAAAAAALwAAAAAAAAAAAAAAAQEAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAAC8AAAAAAAEAAAAAAWRtZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAAKxEAAAIAFXEAAAAAAAtaGRscgAAAAAAAAAAc291bgAAAAAAAAAAAAAAAFNvdW5kSGFuZGxlcgAAAAEPbWluZgAAABBzbWhkAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEAAADTc3RibAAAAGdzdHNkAAAAAAAAAAEAAABXbXA0YQAAAAAAAAABAAAAAAAAAAAAAgAQAAAAAKxEAAAAAAAzZXNkcwAAAAADgICAIgACAASAgIAUQBUAAAAAAfQAAAHz+QWAgIACEhAGgICAAQIAAAAYc3R0cwAAAAAAAAABAAAAAgAABAAAAAAcc3RzYwAAAAAAAAABAAAAAQAAAAIAAAABAAAAHHN0c3oAAAAAAAAAAAAAAAIAAAFzAAABdAAAABRzdGNvAAAAAAAAAAEAAAAsAAAAYnVkdGEAAABabWV0YQAAAAAAAAAhaGRscgAAAAAAAAAAbWRpcmFwcGwAAAAAAAAAAAAAAAAtaWxzdAAAACWpdG9vAAAAHWRhdGEAAAABAAAAAExhdmY1Ni40MC4xMDE="; return a}); define("tdv/view/av/PlaybackRequiresUserAction",["require","exports","tdv/view/av/DummyVideoData","tdv/player/view/util/Device"],function(a,m,h,n){function g(p){l=p;for(d=!0;f.length;)f.shift()(l)}function k(p){var q=!1,r=document.createElement("video");r.setAttribute("webkit-playsinline","true");r.setAttribute("playsinline","true");r.src="";r.play()["catch"](function(t){q=t.name!=="NotAllowedError"}).finally(function(){p(!q)})}function e(p){var q=document.createElement("video");q.setAttribute("webkit-playsinline","true"); q.setAttribute("playsinline","true");q.src=h.src;var r=!1;q.play().then(function(){r=!0;q.pause();p(!1)})["catch"](function(){r||p(!0)})}function b(){c||(c=!0,n.Yb()==n.Nk?g(!0):n.Yb()==n.sj?e(g):k(function(p){p?e(g):g(!1)}))}var c=!1,d=!1,f=[],l;return{test:function(p){d||c||b();f.push(p);if(d)for(;f.length;)f.shift()(l)}}}); define("tdv/view/util/AudioActivation",["require","tdv/player/l10n","tdv/view/util/UserInitiatedAction","tdv/view/av/PlaybackRequiresUserAction"],function(a){function m(e,b){this.dg=e;this.Fn=b;this.Qs=this.Qs.bind(this);this.Rs=!1}function h(){this.Qs=this.Qs.bind(this);this.qma=this.qma.bind(this);this.I="not tested";this.yva=[];this.Tx=[];this.X3=!1;g.wait(this.qma)}var n=a("tdv/player/l10n"),g=a("tdv/view/util/UserInitiatedAction"),k=a("tdv/view/av/PlaybackRequiresUserAction");h.prototype.Omb= function(){this.I=="not tested"&&(this.I="testing",k.test(function(e){this.I=e?"requires action":"allowed";this.L4a()}.bind(this)))};h.prototype.L4a=function(){this.I=="allowed"?this.Qs(!0):this.X3&&(this.X3=!1,this.Tx.forEach(function(e){e.request()}))};h.prototype.Rsa=function(e){this.I=="allowed"?e.call(this,!0):this.yva.push(e)};h.prototype.request=function(e){this.rD(e)};h.prototype.cancel=function(e){this.vR(e)};h.prototype.active=function(){return this.I=="allowed"};h.prototype.rlb=function(){this.I== "allowed"&&(this.I="requires action")};h.prototype.qma=function(){setTimeout(this.ZYa.bind(this),300);this.Mu(!0)};h.prototype.ZYa=function(){for(;this.Tx.length;)this.Tx.pop().cancel()};h.prototype.rD=function(e){this.I=="testing"||this.I=="not tested"?(this.Oca(e),this.X3=!0):this.I=="requires action"&&this.Oca(e).request()};h.prototype.vR=function(e){this.I=="testing"||this.I=="not tested"?this.X3=!1:this.I=="requires action"&&this.Oca(e).cancel()};h.prototype.Qs=function(e){var b=this.Tx;this.Tx= [];b.forEach(function(c){e||c.dg.set("mute",!0);c.cancel()});this.Mu(e)};h.prototype.Mu=function(e){this.I="allowed";this.yva.forEach(function(b){b.call(window,e)})};h.prototype.Oca=function(e){for(var b=null,c=0;c=10&&c<11||c>=11.3)return!0}return!1};b.S2a=function(){return g.Yb()==g.Nk||g.Yb()==g.sj?!0:!1};b.YIa=function(c){try{return this.EIa||(this.EIa=document.createElement("audio")),!!this.EIa.canPlayType(c).replace(/^no$/,"")}catch(d){}return!1};b.FO=function(c){try{return this.H6||(this.H6=document.createElement("video"),this.H6.setAttribute("webkit-playsinline","true"),this.H6.setAttribute("playsinline","true")),!!this.H6.canPlayType(c).replace(/^no$/, "")}catch(d){}return!1};b.xcb=function(){return g.Yb()==g.sj?g.Qoa()>=15||n?!0:!1:!0};b.U2a=function(){try{if(document.createElement("canvas").getContext("webgl"))return!0}catch(c){}try{if(document.createElement("canvas").getContext("experimental-webgl"))return!0}catch(c){}return!1};b.zSa=function(c,d,f,l){if(k.lWa)return!0;if(g.Nd()==g.vj){if(c<=4096&&d<=2048)return!0}else if((g.tP()||g.HJ())&&!g.jE()){if(c<=4320&&d<=4320||c<=8192&&d<=4096)return!0}else if((g.tP()||g.HJ())&&g.bpa()){if(l=="h264"&& (c<=5760&&d<=5760||c<=7680&&d<=3840)||c<=3840&&d<=2160)return!0}else if(g.QX())if(l=="h264"){if(c<=5760&&d<=5760||c<=7680&&d<=3840)return!0}else{if(c<=4400&&d<=2200)return!0}else if(g.ub()){if(c<=3840&&d<=2160)return!0}else if(c<=4096&&d<=2048)return!0;return!1};b.zcb=function(){return g.QX()||(g.tP()||g.HJ())&&g.xc()==g.qx||!g.ub()&&b.Bma&&g.Yb()==g.Pp?!0:!1};b.ySa=function(c){return b.zSa(c.get("width"),c.get("height"),c.get("framerate"),c.get("codec"))};b.ycb=function(){return b.Bma?!0:!1};b.Acb= function(){return k.tta!==void 0?k.tta:g.HJ()||g.QX()||g.zhb()||g.Ahb()||g.ZMa()||g.tP()&&!g.jE()||!g.kf()&&g.Nd()!=g.uB&&g.Nd()!=g.vj?!0:!1};b.Jmb=function(c,d){return b.zSa(c,d,0)};b.log=function(){h.log("webgl: "+b.ci);h.log("html5 audio: "+b.yMa);h.log("html5 video: "+b.BMa)};b.Bma=!1;b.LPa=!k.OUa&&k.NUa?1:2;b.AMa=b.YIa('audio/ogg; codecs="vorbis"');b.zMa=b.YIa("audio/mpeg");b.yMa=b.AMa||b.zMa;b.Moa=b.FO('video/ogg; codecs="theora"');b.FO('video/mp4; codecs="avc1.42E01E"');b.Noa=b.FO('video/webm; codecs="vp8, vorbis"'); b.Pgb=b.FO('video/mp4; codecs="hev1"');b.h8=b.FO("video/mp4");b.Qgb=b.FO("video/quicktime");b.Rgb=b.a3a();b.mMa=b.S2a();b.wgb=b.mMa||b.h8&&b.R2a();b.BMa=b.Moa||b.h8||b.Noa;b.ci=b.U2a();b.summary=["webgl:"+b.ci,"html5audio:"+b.yMa,"html5video:"+b.BMa].join(" ");return b}();e.Ak("debug")&&e.Ak("capabilities")&&a.log();return a}); define("tdv/player/view/util/geo/Quaternion",["require"],function(){var a=Math.PI/180,m=180/Math.PI,h=new THREE.Euler(0,0,0,"YXZ"),n=new THREE.Quaternion;return{create:function(){return{x:0,y:0,z:0,w:0}},gX:function(g,k,e,b){n.setFromEuler(h.set(k*a,-g*a,e*a,"YXZ"));g=b||{};g.x=n.x;g.y=n.y;g.z=n.z;g.w=n.w;return g},haa:function(g,k){h.setFromQuaternion(n.set(g.x,g.y,g.z,g.w),"YXZ");g={};g.Xa=-h.y*m;g.pitch=h.x*m;g.Mg=h.z*m;k||(g.pitch=Math.min(90,Math.max(-90,g.pitch)));return g},Xa:function(g){h.setFromQuaternion(n.set(g.x, g.y,g.z,g.w),"YXZ");return-h.y*m}}}); define("tdv/player/view/util/MathUtil",["require"],function(){var a={};a.degToRad=Math.PI/180;a.radToDeg=180/Math.PI;a.Vector2=function(m,h){this.x=m||0;this.y=h||0};a.Vector2.prototype={constructor:a.Vector2,set:function(m,h){this.x=m;this.y=h;return this},copy:function(m){this.x=m.x;this.y=m.y;return this},subVectors:function(m,h){this.x=m.x-h.x;this.y=m.y-h.y;return this}};a.Vector3=function(m,h,n){this.x=m||0;this.y=h||0;this.z=n||0};a.Vector3.prototype={constructor:a.Vector3,set:function(m,h, n){this.x=m;this.y=h;this.z=n;return this},copy:function(m){this.x=m.x;this.y=m.y;this.z=m.z;return this},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},normalize:function(){var m=this.length();m!==0?this.multiplyScalar(1/m):this.z=this.y=this.x=0;return this},multiplyScalar:function(m){this.x*=m;this.y*=m;this.z*=m},applyQuaternion:function(m){var h=this.x,n=this.y,g=this.z,k=m.x,e=m.y,b=m.z;m=m.w;var c=m*h+e*g-b*n,d=m*n+b*h-k*g,f=m*g+k*n-e*h;h=-k*h-e*n-b*g;this.x= c*m+h*-k+d*-b-f*-e;this.y=d*m+h*-e+f*-k-c*-b;this.z=f*m+h*-b+c*-e-d*-k;return this},dot:function(m){return this.x*m.x+this.y*m.y+this.z*m.z},crossVectors:function(m,h){var n=m.x,g=m.y;m=m.z;var k=h.x,e=h.y;h=h.z;this.x=g*h-m*e;this.y=m*k-n*h;this.z=n*e-g*k;return this}};a.Quaternion=function(m,h,n,g){this.x=m||0;this.y=h||0;this.z=n||0;this.w=g!==void 0?g:1};a.Quaternion.prototype={constructor:a.Quaternion,set:function(m,h,n,g){this.x=m;this.y=h;this.z=n;this.w=g;return this},copy:function(m){this.x= m.x;this.y=m.y;this.z=m.z;this.w=m.w;return this},cRa:function(m,h,n){var g=Math.cos(m/2),k=Math.cos(h/2),e=Math.cos(n/2);m=Math.sin(m/2);h=Math.sin(h/2);n=Math.sin(n/2);this.x=m*k*e+g*h*n;this.y=g*h*e-m*k*n;this.z=g*k*n-m*h*e;this.w=g*k*e+m*h*n;return this},setFromAxisAngle:function(m,h){h/=2;var n=Math.sin(h);this.x=m.x*n;this.y=m.y*n;this.z=m.z*n;this.w=Math.cos(h);return this},multiply:function(m){return this.multiplyQuaternions(this,m)},multiplyQuaternions:function(m,h){var n=m.x,g=m.y,k=m.z; m=m.w;var e=h.x,b=h.y,c=h.z;h=h.w;this.x=n*h+m*e+g*c-k*b;this.y=g*h+m*b+k*e-n*c;this.z=k*h+m*c+n*b-g*e;this.w=m*h-n*e-g*b-k*c;return this},inverse:function(){this.x*=-1;this.y*=-1;this.z*=-1;this.normalize();return this},normalize:function(){var m=Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w);m===0?(this.z=this.y=this.x=0,this.w=1):(m=1/m,this.x*=m,this.y*=m,this.z*=m,this.w*=m);return this},slerp:function(m,h){if(h===0)return this;if(h===1)return this.copy(m);var n=this.x,g= this.y,k=this.z,e=this.w,b=e*m.w+n*m.x+g*m.y+k*m.z;b<0?(this.w=-m.w,this.x=-m.x,this.y=-m.y,this.z=-m.z,b=-b):this.copy(m);if(b>=1)return this.w=e,this.x=n,this.y=g,this.z=k,this;m=Math.acos(b);var c=Math.sqrt(1-b*b);if(Math.abs(c)<.001)return this.w=.5*(e+this.w),this.x=.5*(n+this.x),this.y=.5*(g+this.y),this.z=.5*(k+this.z),this;b=Math.sin((1-h)*m)/c;h=Math.sin(h*m)/c;this.w=e*b+this.w*h;this.x=n*b+this.x*h;this.y=g*b+this.y*h;this.z=k*b+this.z*h;return this},setFromUnitVectors:function(){var m, h;return function(n,g){m===void 0&&(m=new a.Vector3);h=n.dot(g)+1;h<1E-6?(h=0,Math.abs(n.x)>Math.abs(n.z)?m.set(-n.y,n.x,0):m.set(0,-n.z,n.y)):m.crossVectors(n,g);this.x=m.x;this.y=m.y;this.z=m.z;this.w=h;this.normalize();return this}}()};return a}); define("tdv/player/view/util/DeviceOrientationSensor",["require","tdv/constants/EventName","tdv/events/Event","tdv/events/EventDispatcher","tdv/player/view/util/MathUtil"],function(a){function m(){d||(d=!0,q=new c.Vector3(0,0,1),r=new c.Quaternion,t=new c.Quaternion(-Math.sqrt(.5),0,0,Math.sqrt(.5)),u=new c.Quaternion,n(),window.addEventListener("orientationchange",n,!1),window.addEventListener("deviceorientation",g,!1),h())}function h(){if(v&&l!==void 0&&p!==void 0){v=!1;var x=c.degToRad*p;u.cRa(c.degToRad* l.beta,c.degToRad*l.alpha,-(c.degToRad*l.gamma));u.multiply(t);u.multiply(r.setFromAxisAngle(q,-x));w||(y++,y>=5&&(w=!0,f.o(new e(k.vd))));f.o(new e(k.V))}}function n(){p=window.orientation||0;v=!0;h()}function g(x){l=x;v=!0;h()}var k=a("tdv/constants/EventName"),e=a("tdv/events/Event"),b=a("tdv/events/EventDispatcher"),c=a("tdv/player/view/util/MathUtil"),d=!1,f=new b,l,p,q,r,t,u,v,w=!1,y=0;m.prototype.Et=function(){h();return u};m.prototype.bind=function(){f.bind.apply(f,arguments)};m.prototype.h= function(){f.h.apply(f,arguments)};m.prototype.stop=function(){window.removeEventListener("orientationchange",n,!1);window.removeEventListener("deviceorientation",g,!1)};return m}); define("tdv/player/view/util/FusionPoseSensor","require tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/util/Device tdv/player/view/util/MathUtil".split(" "),function(a){function m(l){this.Lhb=l;this.wna=new g;this.b7=new g;this.yqa=new g;this.oJ=new c.Quaternion;this.xqa=new c.Quaternion;this.PHa=new c.Quaternion;this.XMa=!1;this.j7=new c.Vector3;this.Bpa=new c.Vector3;this.igb=new c.Quaternion}function h(){this.deviceId="webvr-polyfill:fused";this.QNa=!1;this.PNa= 0;this.uW=new c.Vector3;this.a8=new c.Vector3;this.filter=new m(.98);this.hjb=new n(.04);this.pP=f.pP();this.gr=f.gr();f.joa();this.lpa=f.khb();this.o7=new c.Quaternion;f.gr()?this.o7.setFromAxisAngle(new c.Vector3(1,0,0),Math.PI/2):this.o7.setFromAxisAngle(new c.Vector3(1,0,0),-Math.PI/2);this.r8=new c.Quaternion;this.wQ=new c.Quaternion;this.ePa=new c.Quaternion;this.ePa.setFromAxisAngle(new c.Vector3(0,0,1),-window.orientation*Math.PI/180);this.BRa();f.UMa()&&this.o7.multiply(this.r8);this.Rw= new c.Quaternion;this.pP=f.pP();this.gr=f.gr();this.jhb=f.joa()>=66;this.RJ=this.RJ.bind(this);this.hY=this.hY.bind(this);this.gY=this.gY.bind(this);screen&&screen.orientation&&screen.orientation.addEventListener?screen.orientation.addEventListener("change",this.RJ):window.addEventListener("orientationchange",this.RJ);this.lpa?window.addEventListener("deviceorientation",this.hY):window.addEventListener("devicemotion",this.gY)}function n(l){this.jjb=l;this.R9=new c.Quaternion;this.VP=null;this.UJa= new c.Quaternion;this.pY=new c.Quaternion}function g(l,p){this.set(l,p)}var k=a("tdv/constants/EventName"),e=a("tdv/events/Event"),b=a("tdv/events/EventDispatcher");a("tdv/player/view/util/Device");var c=a("tdv/player/view/util/MathUtil"),d=new b;m.prototype.Ebb=function(l,p){this.wna.set(l,p)};m.prototype.Mbb=function(l,p){this.b7.set(l,p);f.Ghb(p-this.yqa.faa)&&this.Xjb();this.yqa.copy(this.b7)};m.prototype.Xjb=function(){if(this.XMa){var l=this.jgb(this.b7.sample,this.b7.faa-this.yqa.faa);this.igb.multiply(l); this.oJ.copy(this.xqa);this.oJ.multiply(l);l=new c.Quaternion;l.copy(this.oJ);l.inverse();this.j7.set(0,0,-1);this.j7.applyQuaternion(l);this.j7.normalize();this.Bpa.copy(this.wna.sample);this.Bpa.normalize();l=new c.Quaternion;l.setFromUnitVectors(this.j7,this.Bpa);l.inverse();var p=new c.Quaternion;p.copy(this.oJ);p.multiply(l);this.oJ.slerp(p,1-this.Lhb);this.xqa.copy(this.oJ)}else this.PHa=this.Dbb(this.wna.sample),this.xqa.copy(this.PHa),this.XMa=!0};m.prototype.Et=function(){return this.oJ}; m.prototype.Dbb=function(l){var p=new c.Vector3;p.copy(l);p.normalize();l=new c.Quaternion;l.setFromUnitVectors(new c.Vector3(0,0,-1),p);l.inverse();return l};m.prototype.jgb=function(l,p){var q=new c.Quaternion,r=new c.Vector3;r.copy(l);r.normalize();q.setFromAxisAngle(r,l.length()*p);return q};h.prototype.stop=function(){screen&&screen.orientation&&screen.orientation.addEventListener&&screen.orientation.removeEventListener("change",this.RJ);window.removeEventListener("orientationchange",this.RJ); window.removeEventListener("deviceorientation",this.hY);window.removeEventListener("devicemotion",this.gY)};h.prototype.tm=function(){return null};h.prototype.Et=function(){var l=void 0;if(this.lpa&&this.J0){this.WJa=this.WJa||function(){var q=(new c.Quaternion).setFromAxisAngle(new c.Vector3(0,0,-1),0),r=new c.Quaternion;this.Q4=="landscape-secondary"?r.setFromAxisAngle(new c.Vector3(0,1,0),Math.PI/-2):r.setFromAxisAngle(new c.Vector3(0,1,0),Math.PI/2);return q.multiply(r)}();this.VJa=this.VJa|| function(){var q=new c.Quaternion;q.setFromAxisAngle(new c.Vector3(1,0,0),-Math.PI/2);return q}();l=this.J0;var p=new c.Quaternion;p.copy(l);p.multiply(this.VJa);p.multiply(this.Rw);p.multiply(this.wQ);p.multiplyQuaternions(this.WJa,p);this.uqb&&(p.x=0,p.z=0,p.normalize());this.E9[0]=p.x;this.E9[1]=p.y;this.E9[2]=p.z;this.E9[3]=p.w;return this.E9}l=this.filter.Et();l=this.hjb.Mfb(l,this.a8,this.VP);p=new c.Quaternion;p.copy(this.o7);p.multiply(this.Rw);p.multiply(l);p.multiply(this.wQ);return p}; h.prototype.resetPose=function(){this.Rw.copy(this.filter.Et());this.Rw.x=0;this.Rw.y=0;this.Rw.z*=-1;this.Rw.normalize();f.UMa()&&this.Rw.multiply(this.r8);this.Rw.multiply(this.ePa)};h.prototype.hY=function(l){this.J0=this.J0||new c.Quaternion;var p=l.alpha,q=l.beta;l=l.gamma;p=(p||0)*Math.PI/180;q=(q||0)*Math.PI/180;l=(l||0)*Math.PI/180;this.J0.cRa(q,p,-l)};h.prototype.gY=function(l){var p=l.rotationRate;if(p){var q=l.accelerationIncludingGravity;l=l.timeStamp/1E3;this.pP&&(l/=1E3);var r=l-this.VP; r<=f.Ita||r>f.Eta?this.VP=l:(this.uW.set(-q.x,-q.y,-q.z),this.a8.set(p.alpha,p.beta,p.gamma),(this.gr||this.pP||this.jhb)&&this.a8.multiplyScalar(Math.PI/180),this.filter.Ebb(this.uW,l),this.filter.Mbb(this.a8,l),this.VP=l,this.QNa||(this.PNa++,this.PNa>=5&&(this.QNa=!0,d.o(new e(k.vd)))),this.Q4!=this.YKa()&&this.RJ(),d.o(new e(k.V)))}else this.lpa=!0,window.addEventListener("deviceorientation",this.hY),window.removeEventListener("devicemotion",this.gY)};h.prototype.bind=function(){d.bind.apply(d, arguments)};h.prototype.h=function(){d.h.apply(d,arguments)};h.prototype.RJ=function(){this.BRa();d.o(new e(k.V))};h.prototype.BRa=function(){this.wQ.set(0,0,0,1);this.Q4=this.YKa();switch(this.Q4){case "landscape-primary":this.wQ.setFromAxisAngle(new c.Vector3(0,0,1),-Math.PI/2);break;case "landscape-secondary":this.wQ.setFromAxisAngle(new c.Vector3(0,0,1),Math.PI/2)}this.r8.copy(this.wQ);this.r8.inverse()};h.prototype.YKa=function(){var l=screen.orientation&&screen.orientation.type;if(!l)switch(window.orientation){case 0:l= "portrait-primary";break;case 90:l="landscape-primary";break;case -90:l="landscape-secondary";break;case 180:l="portrait-secondary"}l=="landscape-primary"&&(this.uW.z>4.9||this.uW.z<-4.9?l=this.Q4||l:this.uW.x>0&&(l="landscape-secondary"));return l};n.prototype.Mfb=function(l,p,q){if(!this.VP)return this.R9.copy(l),this.VP=q,l;q=new c.Vector3;q.copy(p);q.normalize();p=p.length();if(pf.Eta?!1:!0}};f.gr=function(){var l=/iPad|iPhone|iPod/.test(navigator.platform);return function(){return l}}();f.bqb=function(){var l=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);return function(){return l}}();f.pP=function(){var l=navigator.userAgent.indexOf("Firefox")!== -1&&navigator.userAgent.indexOf("Android")!==-1;return function(){return l}}();f.joa=function(){var l=navigator.userAgent.match(/.*Chrome\/([0-9]+)/),p=l?parseInt(l[1],10):null;return function(){return p}}();f.khb=function(){var l=!1;if(f.joa()===65){var p=navigator.userAgent.match(/.*Chrome\/([0-9\.]*)/);if(p){p=p[1].split(".");var q=p[3];l=parseInt(p[2],10)===3325&&parseInt(q,10)<148}}return function(){return l}}();f.UMa=function(){return window.orientation==90||window.orientation==-90};return h}); define("tdv/player/view/util/Gyroscope","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/util/geo/Quaternion tdv/player/view/util/Device tdv/player/view/util/DeviceOrientationSensor tdv/player/view/util/FusionPoseSensor tdv/player/view/util/URL".split(" "),function(a){function m(){function w(){p=!0;f.o(new n(h.V))}function y(){var C;!F||!x&&A?A&&(C=z):C=D;q!=C&&(q&&(q.h(h.V,w),q.stop()),q=C)&&(q.bind(h.V,w,this,!0),w())}var x=e.Nd()==e.vj||d.Ak("debug")&& d.getQueryParameter("sensor")=="deviceorientation",z=new c,A=!1;z.bind(h.vd,function(){A=!0;y()},this,!0);var D=new b,F=!1;D.bind(h.vd,function(){F=!0;y()},this,!0)}a("tdv/utils");var h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/util/geo/Quaternion"),e=a("tdv/player/view/util/Device"),b=a("tdv/player/view/util/DeviceOrientationSensor"),c=a("tdv/player/view/util/FusionPoseSensor"),d=a("tdv/player/view/util/URL"),f=new g,l={},p=!1,q,r= [],t=!1,u=!1;l.Nqa=function(w){w&&r.push(w);if(!l.disabled)for(;r.length;)r.pop()();else if(e.Nd()==e.vj&&window.DeviceMotionEvent&&DeviceMotionEvent.requestPermission){DeviceOrientationEvent.requestPermission().then(function(x){x==="granted"&&(u=!0,y())})["catch"](function(){});DeviceMotionEvent.requestPermission().then(function(x){x==="granted"&&(t=!0,y())})["catch"](function(){});var y=function(){if(l.disabled&&t&&u)for(l.disabled=!1,m();r.length;)r.pop()()};y()}};l.bind=function(w,y){f.bind(h.V, w,y)};l.h=function(w,y){f.h(h.V,w,y)};l.Qib=function(){return p};l.Et=function(){p=!1;if(q){var w=q.Et();w=k.haa(w);return{yaw:w.Xa,pitch:w.pitch,roll:w.Mg}}return{yaw:0,pitch:0,roll:0}};if(e.Nd()==e.Tua||e.Nd()==e.o_||e.Nd()==e.Bta||e.kf())l.ol=!1,l.disabled=!1;else if(e.Nd()==e.uB&&e.Yb()==e.Pp&&window.location.protocol!="https:"&&window.location.hostname!="localhost")l.ol=!0,l.disabled=!0;else if(e.Nd()==e.vj)if(l.ol=!0,l.disabled=!0,window.DeviceMotionEvent&&DeviceMotionEvent.requestPermission)l.Nqa(); else{var v=function(){window.removeEventListener("deviceorientation",v,!1);l.disabled=!1;m()};window.addEventListener("deviceorientation",v,!1)}else l.ol=window.DeviceMotionEvent!=void 0,l.disabled=!1;l.ol&&!l.disabled&&m();return l}); define("tdv/player/view/util/LibsLoader",["require","exports","tdv/player/view/util/URL"],function(a,m,h){m=function(){function g(){this.L8=null;this.M6=[]}g.prototype.initialize=function(k){this.L8=h.lB(k);this.LZ=this.LZ.bind(this);this.update()};g.prototype.load=function(k,e){this.M6.push({call:k,context:e||window});this.AP||(this.AP=this.p7());this.update()};g.prototype.oj=function(){return this.AP!==void 0};g.prototype.update=function(){this.M6.length>0&&(this.AP!==void 0?this.Zdb():this.L8&& this.upa())};g.prototype.LZ=function(){var k=this.p7();k===void 0?setTimeout(this.LZ,250):(this.AP=k,this.update())};g.prototype.upa=function(){throw Error("Method not implemented.");};g.prototype.p7=function(){throw Error("Method not implemented.");};g.prototype.Zdb=function(){for(;this.M6.length>0;){var k=this.M6.pop();k.call.call(k.context,this.AP)}};return g}();a=function(g){function k(e){var b=g.call(this)||this;b.oNa=e;return b}P(k,g);k.prototype.upa=function(){this.script||(this.script=document.createElement("script"), this.script.type="text/javascript",this.script.src=this.L8,document.getElementsByTagName("head")[0].appendChild(this.script),this.LZ())};k.prototype.p7=function(){for(var e=window,b=0;b-1&&b!==this.XR.Un.length-1&&(this.XR.Un.splice(b,1),this.XR.Un.splice(this.XR.Un.length,0,g));this.XR.Lqa.set(g,k);this.XR.Kqa.set(g,e);g!==this.XR.Ag||this.XR.XA===k&&this.XR.Nw===e||(this.XR.XA=k,this.XR.Nw=e,this.XR.M.o(h.Pd))};n.add=function(g){this.remove(g);this.XR.Un.push(g)};n.remove=function(g){var k= this.XR.Un.indexOf(g);k!=-1&&(this.XR.Un.splice(k,1),this.XR.Lqa.delete(g),this.XR.Kqa.delete(g))};return n}()});define("tdv/player/view/util/xr/RendererType",["require","exports"],function(){return{bca:"Panorama",Tba:"Model3D"}});define("tdv/player/view/util/xr/pointer/SelectionMode",["require","exports"],function(){return{OF:"gaze",RUa:"gaze_click"}});define("tdv/player/view/util/xr/SessionMode",["require","exports"],function(){return{Yp:"immersive-vr",Np:"immersive-ar"}}); define("tdv/player/view/util/xr/Type",["require","exports"],function(){return{lo:"Cardboard",epb:"WebVR",rWa:"WebXR"}});define("tdv/constants/RenderOrder",["require","exports"],function(){return{mVa:-1,wVa:0,nVa:0,VUa:0,Cob:1,sUa:2,tUa:101,UVa:0,VVa:2,aWa:2,iVa:2,$Va:2,SUa:2,gWa:100,G_:900,MVa:10,bUa:-1E3,qta:1E3,vWa:999,uWa:998,tWa:999,sWa:1E3,RVa:1E3,hpb:1001,wWa:1E3,DVa:1E3,Vua:1E4}}); define("tdv/player/view/util/xr/ui/DraggingPointerState",["require","exports"],function(){var a=function(){return function(){}}();a;return a});define("tdv/player/view/util/xr/ui/UIPointerState",["require","exports"],function(){return function(){return function(){}}()});define("tdv/view/util/EaseDimension",["require","exports"],function(){return function(){return function(a,m,h,n){n===void 0&&(n=void 0);this.name=a;this.from=m;this.to=h;this.Shb=n}}()}); define("tdv/view/util/Ease",["require","exports","tdv/view/util/EaseDimension"],function(a,m,h){function n(c){return function(d,f,l){d=Math.abs(f-d);return d/l<1?0:1/(1-Math.pow((d-l)/d,1/c))}}function g(c){var d=new b;d.doa=function(f,l,p,q){return f+(l-f)*Math.pow(p<=0?0:p>=q?1:p/q,c)};d.Epa=n(c);return d}function k(c){var d=new b;d.doa=function(f,l,p,q){return f+(l-f)*(1-Math.pow(1-(p<=0?0:p>=q?1:p/q),c))};d.Epa=n(c);return d}function e(c){var d=new b;d.doa=function(f,l,p,q){p=p<=0?0:p>=q?1:p/ q;p<.5?p=Math.pow(p*2,c):(p=1-Math.pow(1-(p*2-1),c),p+=1);return f+p*.5*(l-f)};d.Epa=n(c);return d}a=function(){function c(d,f,l){l===void 0&&(l=void 0);switch(d){case "quad_in":this.curve=g(2);break;case "quad_out":this.curve=k(2);break;case "quad_in_out":this.curve=e(2);break;case "cubic_in":this.curve=g(3);break;case "cubic_out":this.curve=k(3);break;case "cubic_in_out":this.curve=e(3);break;case "quart_in":this.curve=g(4);break;case "quart_out":this.curve=k(4);break;case "quart_in_out":this.curve= e(4);break;case "quint_in":this.curve=g(5);break;case "quint_out":this.curve=k(5);break;case "quint_in_out":this.curve=e(5);break;default:this.curve=g(1)}this.mA=f.slice();this.time=0;this.duration=this.RIa(f,l);this.Bna={};for(d=0;d0};c.prototype.Ve= function(){return this.time>=this.duration};c.prototype.lj=function(){return this.duration};c.prototype.tm=function(){return this.time/this.duration};c.prototype.getTime=function(){return this.time};c.prototype.setTime=function(d){this.time=Math.min(Math.max(0,d),this.duration);for(d=0;d0&&p.push(this.curve.Epa(r.from,r.to,t/1E3))}if(p.length>0){d=p[0];for(q=1;q0?Math.max(f,d):d}return f!==void 0?Math.max(f,.001):this.RIa(d,f,1E3)};c.lj=function(){return(new c(void 0,[new h("",void 0,void 0,void 0)])).lj()};return c}();var b=function(){return function(){}}();return a}); define("tdv/view/util/Animation",["require","exports","tdv/utils","tdv/view/util/Visibility","tdv/player/view/util/Flags"],function(a,m,h,n,g){var k=window.requestAnimationFrame.bind(window),e=window.cancelAnimationFrame.bind(window),b=function(){function d(){}d.requestFrame=function(f,l,p){for(var q=0;q0&&(d.Qw=d.DY(d.w7)))};d.ARa=function(f,l){d.DY!=f&&(d.Qw!==void 0&&(d.fna(d.Qw),d.Qw=f(d.w7)),d.DY=f,d.fna=l)};d.Qjb=function(){d.ARa(k,e)};d.w7=function(f){d.vKa(f);d.Qw=d.Pt.length>0?d.DY(d.w7):void 0};d.vKa=function(f){f1?p<100?p:100:1;d.zf=f;d.eX=p;for(f=0;f0?E[0]:null)&&E.uv.x>= 0&&E.uv.x<=1&&E.uv.y>=0&&E.uv.y<=1){var G=E.uv.x;var N=E.uv.y;var O=E.distance}else if((H=this.Cg)===null||H===void 0?0:H.pressed)E=x.intersectObjects([this.nJ],!1),(E=E.length>0?E[0]:null)&&E.uv.x>=0&&E.uv.x<=1&&E.uv.y>=0&&E.uv.y<=1&&(G=(E.uv.x-.5)*this.nJ.scale.x+.5,N=(E.uv.y-.5)*this.nJ.scale.y+.5,O=E.distance);E?(H=G*this.canvas.width,N=(1-N)*this.canvas.height,this.Cg||(this.Cg=new e),this.Cg.nPa=H,this.Cg.oPa=N,this.Cg.distance=O,this.Cg.pressed=B.pressed,this.Cg.Qmb=B.Qb.x,this.Cg.Rmb=B.Qb.y): this.Cg=null}else this.Cg=null};C.prototype.vnb=function(B){var H;if(B&&this.draggable){x.ray.copy(B.ray).applyMatrix4(B.matrixWorld);if(B.pressed){if(!this.Bi)return;this.Bi.pressed||(this.Bi.pressed=!0,this.imb(x))}else this.Wra(),B=x.intersectObjects([this.st],!1),B.length>0?(this.Bi||(this.Bi=new k),this.Bi.We=!0,this.Bi.mr=!0,this.Bi.pressed=!1,this.Bi.distance=B[0].distance):this.Bi=null;if((H=this.Bi)===null||H===void 0?0:H.pressed)this.tnb(x),x.ray.intersectSphere(this.g7,t)&&(this.Bi.distance= t.distanceTo(x.ray.origin))}else this.Bi=null};C.prototype.unb=function(){var B,H,E;(B=this.Bi)===null||B===void 0||!B.We||(H=this.Bi)!==null&&H!==void 0&&H.pressed?this.YQa(.75):this.YQa(1);this.tkb(((E=this.Bi)===null||E===void 0?0:E.pressed)?1:.75)};C.prototype.imb=function(B){B=B.intersectObjects([this.st],!1);B.length===0?this.Wra():(this.kKa=B[0].distance,t.copy(B[0].point).applyMatrix4(r.copy(this.group.matrixWorld).invert()),this.g7.radius=t.length(),t.normalize(),this.group.add(this.tt), this.tt.rotation.set(t.y==0&&t.z==0?0:-Math.atan2(t.y,Math.sqrt(t.z*t.z+t.x*t.x)),t.x==0&&t.z==0?0:Math.atan2(t.x,t.z),0,"YXZ"),this.tt.updateMatrixWorld(!0),this.Ke.updateMatrixWorld(!0),t.setFromMatrixPosition(this.Ke.matrixWorld).applyMatrix4(r.copy(this.tt.matrixWorld).invert()),this.e7.position.set(t.x,t.y,t.z))};C.prototype.Wra=function(){var B;(B=this.tt.parent)===null||B===void 0||B.remove(this.tt)};C.prototype.tnb=function(B){this.tt.updateMatrixWorld(!0);if(this.Kna)t.copy(B.ray.origin).addScaledVector(B.ray.direction, this.kKa);else if(this.g7.center.setFromMatrixPosition(this.tt.matrixWorld),!B.ray.intersectSphere(this.g7,t)){this.Wra();return}this.group.updateMatrixWorld(!0);t.applyMatrix4(r.copy(this.group.matrixWorld).invert());this.tt.rotation.set(t.y==0&&t.z==0?0:-Math.atan2(t.y,Math.sqrt(t.z*t.z+t.x*t.x)),t.x==0&&t.z==0?0:Math.atan2(t.x,t.z),0,"YXZ");B=t.length();this.tt.scale.set(B,B,B);this.group.updateMatrixWorld(!0);this.e7.updateMatrixWorld(!0);B=w;var H=y;t.setFromMatrixPosition(this.e7.matrixWorld).applyMatrix4(r.copy(this.group.matrixWorld).invert()); this.Kna&&this.Xn(t.length());H.setFromUnitVectors(u,t.normalize());B.setFromEuler(v.set(this.ul.rotation.x,this.ul.rotation.y,0,"YXZ"));B.slerp(H,.2);B.angleTo(H)<.001&&B.copy(H);v.setFromQuaternion(B,"YXZ");this.ul.rotation.x=v.x;this.ul.rotation.y=v.y};C.prototype.Qc=function(){return this.group};C.prototype.Yn=function(B){this.Ke.material.opacity=B;this.Ke.material.needsUpdate=!0};C.prototype.Xn=function(B){this.Ke.position.set(0,0,-B)};C.prototype.rj=function(B){this.ul.rotation.y=-B*p};C.prototype.Jc= function(){return-this.ul.rotation.y*q};C.prototype.Zn=function(B){this.ul.rotation.x=B*p};C.prototype.Ic=function(){return this.ul.rotation.x*q};C.prototype.Tcb=function(){this.vTa(l)};C.prototype.vTa=function(B){B.width!==this.Sj||B.height!==this.Rj?(this.Cna(this.Ke.material),this.Ke.material=this.tna(B)):this.canvas!==B&&(this.ZJa(this.Ke.material),this.Ke.material.map=this.EJa(B));this.Ke.material.map.needsUpdate=!0;this.Ke.material.needsUpdate=!0;this.canvas=B;this.Sj=this.canvas.width;this.Rj= this.canvas.height;this.rTa();this.hTa();this.tsa()};C.prototype.Hgb=function(){return this.canvas!==l};C.prototype.iZ=function(B){this.M9!==B&&(this.M9=B,this.rTa())};C.prototype.rTa=function(){this.Ke.scale.set(this.Sj*this.M9,this.Rj*this.M9,1);this.tsa()};C.prototype.Lra=function(B){this.jx.material.opacity=B;this.jx.material.needsUpdate=!0;this.jx.visible=B>0};C.prototype.I$=function(B){this.jx.material.color=f.Ip(B||"#000000");this.jx.material.needsUpdate=!0};C.prototype.Kg=function(){this.i8? this.jTa():this.G6&&this.inb()};C.prototype.p$=function(B){this.i8!=B&&((this.i8=B)?this.jTa():this.group.rotation.set(0,0,0,"YXZ"))};C.prototype.jTa=function(){this.group.rotation.setFromQuaternion(C.XR.xl)};C.prototype.h$=function(B){this.G6!=B&&(this.G6=B)&&(v.setFromQuaternion(C.XR.xl,"YXZ"),this.ul.rotation.x=v.x,this.ul.rotation.y=v.y)};C.prototype.inb=function(){v.setFromQuaternion(C.XR.xl,"YXZ");v.z=0;z.setFromEuler(v);A.setFromEuler(this.ul.rotation);if(this.yO){if(this.yO.Nb(d.eX),A.slerp(z, this.yO.ob("centering")),v.setFromQuaternion(A,"YXZ"),this.ul.rotation.x=v.x,this.ul.rotation.y=v.y,z.angleTo(A)D&&(this.ncb.copy(z),this.yO=new b("linear",[new c("centering",0,1)],2E3))};C.prototype.SY=function(B){this.draggable!=B&&((this.draggable=B)?this.Ke.add(this.st):this.Ke.remove(this.st))};C.prototype.k$=function(B){this.Kna=B};C.prototype.skb=function(B,H){this.hKa=B;this.iKa=H;this.tsa()};C.prototype.YQa=function(B){this.Lna=B;this.hTa()}; C.prototype.hTa=function(){this.st.scale.set(128/this.Sj*this.Lna,32/this.Rj*this.Lna,1)};C.prototype.tkb=function(B){this.st.material.opacity=B;this.st.material.needsUpdate=!0};C.prototype.tsa=function(){this.st.position.set(-.5+this.hKa/this.Sj,.5-this.iKa/this.Rj,0)};return C}();var p=Math.PI/180,q=180/Math.PI,r=new h.Matrix4,t=new h.Vector3,u=new h.Vector3(0,0,-1),v=new h.Euler,w=new h.Quaternion,y=new h.Quaternion,x=new h.Raycaster,z=new h.Quaternion,A=new h.Quaternion,D=35*p,F=2*p;return a}); define("tdv/player/view/util/xr/ui/UI",["require","exports","tdv/player/view/util/xr/ui/UIPanel","tdv/constants/EventName"],function(a,m,h,n){return function(){function g(){}g.Adb=function(){var k=new h;this.Ek.push(k);this.XR.Zq.add(k.Qc());return k};g.Xdb=function(k){var e=this.Ek.indexOf(k);e!==-1&&(this.XR.Zq.remove(k.Qc()),this.Ek.splice(e,1),k.dispose())};g.initialize=function(){this.XR.M.bind(n.V,this.Ta,this,!0);this.Ta()};g.Ta=function(){this.XR.isPresenting?this.XR.M.bind(n.Zd,this.Kg,this, !0):this.XR.M.h(n.Zd,this.Kg,this)};g.Hnb=function(){this.Ek=[].concat(this.Ek.filter(function(k){return!k.aY&&!k.oP()}),this.Ek.filter(function(k){return!k.aY&&k.oP()}),this.Ek.filter(function(k){return k.aY}));this.Ek.forEach(function(k,e){return k.clb(e)})};g.Kg=function(){this.Hnb();this.DZ()};g.DZ=function(){for(var k,e,b=this.XR.ud.reduce(function(t,u){return t===null||t.UP= 0;q--)if(c||p)this.Ek[q].tQ(null);else{l=l||((k=this.Ek[q].Bi)===null||k===void 0?void 0:k.pressed)||((e=this.Ek[q].Cg)===null||e===void 0?void 0:e.pressed)||!1;this.Ek[q].tQ(b);var r=this.Ek[q].Bi;r&&r.We&&r.distance0&&(p=!0)}l&&b&&!b.pressed&&this.XR.OY(b,50);k=this.Ek.some(function(t){return t.aY});if(c||this.We||k||p)for(q=0;q-1;this.yTa=n.Ak("vr");if(this.jE||this.yTa)this.ZSa(),document.addEventListener("visibilitychange",function(){document.hidden||this.ZSa()}.bind(this),!1)};k.ZSa=function(){this.Ucb();this.Uma=0;this.kSa()};k.kSa=function(){this.Uma++; this.eaa=setTimeout(this.Nib.bind(this),this.yTa?500:this.Uma*1E3)};k.Ucb=function(){this.eaa&&(clearTimeout(this.eaa),this.eaa=null)};k.Nib=function(){this.eaa=null;this.jE&&this.Uma>5?window.location.reload():document.hidden||k.XR.isPresenting||(!this.vt(g.Yp)||this.jE)&&this.kSa()};k.vt=function(e){if(!this.XR.XJ)return!1;for(var b=this.XR.XJ.Ci("Model3DPlayer"),c=0;c0!==u)if(u){var w=new c.DirectionalLight(16777215,Math.PI);w.position.set(10, 20,0);(v=this.Tn)===null||v===void 0||v.add(w);this.Ei.push(w)}else for(;this.Ei.length;)v=this.Ei.pop(),(w=this.Tn)===null||w===void 0||w.remove(v)};t.FRa=function(u){this.jaa!==u&&((this.jaa=u)?this.gw.forEach(this.ONa.bind(this)):this.gw.forEach(this.pQa.bind(this)))};t.dkb=function(u,v){u=this.Jfb(u);u!=-1&&(u=this.X6[u])&&u.hapticActuators&&u.hapticActuators.length&&(u=u.hapticActuators[0],u.pulse&&u.pulse(.6,v))};t.Ta=function(){this.XR.isPresenting?this.Wa():this.ya()};t.Wa=function(){d.forEach(function(u){this.Ilb(u); this.Jlb(u)}.bind(this))};t.ya=function(){d.forEach(function(u){this.Imb(u);this.Hmb(u);this.Gmb(u)}.bind(this))};t.Kg=function(){this.flb(this.enabled&&this.XR.Vh||null);this.DZ();this.qnb()};t.DZ=function(){var u=this;if(this.enabled){for(;this.XR.ud.length;)this.XR.ud.pop();d.forEach(function(v){var w=u.controllers[v];if(w&&u.MO[v]){var y=u.jA[v];y&&(u.rnb(v),y.matrixWorld.copy(w.matrixWorld),y.ray.origin.set(0,0,0),y.ray.direction.set(0,0,-1),w=(w=(w=u.gw[v].motionController)&&w.components["xr-standard-thumbstick"])&& w.values,y.hx=w&&w.state=="pressed"||!1,y.Qb.set(w&&w.xAxis||0,w&&w.yAxis||0),y.PIa=u.$oa(v,"buttonB"),u.Mnb(v),u.XR.ud.push(y))}})}};t.Mnb=function(u){var v=this,w,y=this.jA[u];if(y)if(y.f8){var x=!1;if(!this.iA[u])this.iA[u]=this.XR.session.requestHitTestSource({space:this.pna[u].targetRaySpace,offsetRay:new XRRay({x:0,y:0,z:0,w:1},{x:0,y:0,z:-1,w:0})}).then(function(A){v.iA[u]=A}).catch(function(A){console.error(A);v.iA[u]=null});else if(this.iA[u]instanceof XRHitTestSource){var z=(w=this.XR.Ag)=== null||w===void 0?void 0:w.xr.getFrame();(w=z&&z.getHitTestResults(this.iA[u]))&&w.length&&(w=w[0],z=w.getPose(this.XR.referenceSpace))&&(this.MW[u]=w,y.Gt||(y.Gt=new c.Matrix4),y.Gt.fromArray(z.transform.matrix).premultiply(this.XR.Vh.matrixWorld).decompose(l,q,r).compose(l,q,r.set(1,1,1)),x=l.setFromMatrixPosition(y.matrixWorld).distanceTo(p.setFromMatrixPosition(y.Gt))/this.XR.zi>.2)}x||(y.Gt=null,this.MW[u]=null)}else this.iA[u]instanceof XRHitTestSource&&(this.iA[u].cancel(),this.iA[u]=null,this.MW[u]= null)};t.qnb=function(){this.enabled&&d.forEach(function(u){u=this.NW[u];u===null||u===void 0||u.update()}.bind(this))};t.Plb=function(){if(!this.Xna){var u=this.XR.Ag,v=u.xr.enabled;u.$q=!0;u.xr.enabled=!1;var w=new c.RoomEnvironment(u);this.Xna=(new c.PMREMGenerator(u)).fromScene(w).texture;u.$q=!1;u.xr.enabled=v}};t.Ilb=function(u){var v=this.XR.Ag.xr.getController(u);this.controllers[u]!=v&&(v.addEventListener("selectstart",this.Gw),v.addEventListener("selectend",this.PA),v.addEventListener("connected", this.f9),v.addEventListener("disconnected",this.i9),v.userData.MJ=!0,this.controllers[u]=v,this.jA[u]=new e,this.qna[u]=0,this.jA[u].type=e.E_)};t.Gmb=function(u){var v=this.controllers[u];v&&(v.removeEventListener("selectstart",this.Gw),v.removeEventListener("selectend",this.PA),v.removeEventListener("connected",this.f9),v.removeEventListener("disconnected",this.i9),this.controllers[u]=null)};t.Jlb=function(u){if(!this.fJ[u]){var v=this.XR.Ag.xr.getControllerGrip(u);v.userData.MJ=!0;this.Y6||(this.Y6= new c.XRControllerModelFactory);this.Y6.path=c.YB.endsWith("/")?c.YB.slice(0,-1):c.YB;var w=this.Y6.createControllerModel(v,this.uob);w.addEventListener("loaded",this.g9);this.gw[u]=w;v.add(w);this.fJ[u]=v}};t.uob=function(u){u=Array.from(u.profiles);if(g.HJ())u=["meta-quest-touch-plus"].concat(u);else if(g.tP())u=["oculus-touch-v3"].concat(u);else if(g.ZMa())u=["generic-trigger"].concat(u);else if(g.$Ma()||u.indexOf("pico-phoenix")>=0||u.indexOf("pico-4")>=0)u=["pico-4"].concat(u);else if(g.fNa()|| u.indexOf("htc-vive-focus-3")>=0||u.indexOf("htc-vive-focus-3-plus")>=0)u=["htc-vive-focus-3"].concat(u);else if(g.Bhb()||g.shb()||g.VMa()||u.indexOf("pico-g2")>=0||u.indexOf("pico-neo2")>=0||u.indexOf("pico-neo3")>=0)u=["generic-trigger"].concat(u);return u};t.Hmb=function(u){var v,w=this.fJ[u];if(w){var y=this.gw[u];this.gw[u]=null;y.removeEventListener("loaded",this.g9);w.remove(y);this.fJ[u]=null;(v=w.parent)===null||v===void 0||v.remove(w)}};t.Klb=function(u){if(!this.NW[u]){var v=new k(this.jA[u], this.XR.zl);this.NW[u]=v;this.controllers[u].add(v.sa)}};t.Imb=function(u){var v=this.NW[u];v&&(v.dispose(),this.NW[u]=null)};t.flb=function(u){this.Tn!==u&&(this.Tn=u,this.Jnb())};t.Jnb=function(){this.controllers.forEach(function(u){var v,w;u&&u.parent!=this.Tn&&((v=u.parent)===null||v===void 0||v.remove(u),(w=this.Tn)===null||w===void 0||w.add(u))}.bind(this));this.fJ.forEach(function(u){var v,w;u&&u.parent!=this.Tn&&((v=u.parent)===null||v===void 0||v.remove(u),(w=this.Tn)===null||w===void 0|| w.add(u))}.bind(this));this.Ei.forEach(function(u){var v,w;u.parent!==this.Tn&&((v=u.parent)===null||v===void 0||v.remove(u),(w=this.Tn)===null||w===void 0||w.add(u))}.bind(this))};t.Gw=function(u){var v=this.C7(u.target);if(this.MO[v]){var w=Date.now()-this.CJa[v];if(w<60){var y={target:u.target};setTimeout(function(){t.Gw(y)},60-w)}else u=this.jA[v],u.pressed=!0,u.UP=Date.now(),this.XR.M.o(h.Cu,{pointerState:u}),this.qna[v]=Date.now()}};t.PA=function(u){var v=this;u=this.C7(u.target);if(this.MO[u]){var w= this.jA[u];w.pressed=!1;this.Wma&&(this.$oa(u,"buttonB")||this.$oa(u,"pico"))?window.location.href=this.Wma:(this.XR.M.o(h.TB,{pointerState:w}),this.qna[u]+300>Date.now()&&(this.XR.Wq&&this.MW[u]&&this.MW[u].createAnchor().then(function(y){v.XR.Wq(y)}).catch(function(y){v.XR.sO(y)}),this.XR.M.o(h.Xf,{pointerState:w})))}};t.f9=function(u){var v,w;if(u.data.targetRayMode!="gaze"){var y=this.C7(u.target);this.Klb(y);(v=this.Tn)===null||v===void 0||v.add(this.controllers[y]);(w=this.Tn)===null||w===void 0|| w.add(this.fJ[y]);this.MO[y]=!0;this.CJa[y]=Date.now();this.X6[y]=u.data.gamepad;this.pna[y]=u.data;this.jA[y].handedness=u.data.handedness;this.XR.M.o(h.cta)}};t.dpa=function(u){return u.profiles.some(function(v){return v.indexOf("hand")>=0})};t.i9=function(u){var v,w;u=this.C7(u.target);(v=this.Tn)===null||v===void 0||v.remove(this.controllers[u]);(w=this.Tn)===null||w===void 0||w.remove(this.fJ[u]);this.MO[u]=!1;this.X6[u]=null;this.pna[u]=null;this.XR.M.o(h.dta)};t.g9=function(u){var v=this.gw[this.bfb(u.target)]; v.userData.dpa=this.dpa(u.target.motionController.xrInputSource);v.userData.oj=!0;v.userData.cNa=!1};t.Llb=function(u){u=this.gw[u];this.Plb();u.setEnvironmentMap(this.Xna);this.jaa?this.ONa(u):this.pQa(u);u.userData.cNa=!0};t.rnb=function(u){var v=this.gw[u];v.userData.oj&&(v.userData.cNa||this.Llb(u),u=this.jA[u],v.visible=v.userData.dpa||u.hidden?!1:!0)};t.$oa=function(u,v){v=f.indexOf(v);u=this.X6[u];if(!u)return!1;u=u.buttons.length>v?u.buttons[v]:null;return!!u&&u.pressed};t.ONa=function(u){u&& u.traverse(function(v){if("isMesh"in v&&v.material){var w=v.material;if(!w.userData.Ot){var y=w.userData.Xhb;y||(y=w.clone(),w.userData.Xhb=y,y.userData.Ot=w,y.transparent||(y.transparent=!0,y.opacity=1,"map"in y&&y.map&&(y.map=this.kdb(y.map)),y.needsUpdate=!0));v.material=y}v.userData.jqa===void 0&&(v.userData.jqa=v.renderOrder);v.renderOrder=n.sWa}}.bind(this))};t.pQa=function(u){u&&u.traverse(function(v){if("isMesh"in v&&v.material){var w=v.material;w.userData.Ot&&(v.material=w.userData.Ot);v.userData.jqa== void 0&&(v.renderOrder=v.userData.jqa)}}.bind(this))};t.kdb=function(u){if(!u)return null;var v=document.createElement("canvas");v.width=u.image.width;v.height=u.image.height;var w=v.getContext("2d");w.drawImage(u.image,0,0);for(var y=w.getImageData(0,0,v.width,v.height),x=y.data,z=0;zthis.Yca;)this.mG-=this.Yca;this.bZa(this.mG/this.Yca);this.EM=a.ZZ;return!0};a.prototype.Kxa=function(m,h){this.Xk(this.Exa*h+this.Jq,0,this.Qz,this.g5,0,2*Math.PI);this.Xk(this.Exa*h,0,this.Qz,m,0,2*Math.PI)};a.prototype.g0a=function(m){this.Xk(this.m0-(this.Pm+this.Jq)*.5,this.Pm+this.Jq,this.g5,this.Qz,0,2*Math.PI);this.Xk(this.m0-this.Pm*.5,this.Pm,this.gZa,this.Qz,0,2*Math.PI);this.Xk(this.m0- this.Pm*.5,this.Pm,this.hZa,this.Qz,.5*Math.PI,(.5+m*2)*Math.PI)};a.prototype.b0a=function(m,h){this.Xk(this.Gwa-(this.Pm+this.Jq)*.5,this.Pm+this.Jq,this.g5,this.Qz,0,2*Math.PI);this.Xk(this.Gwa-this.Pm*.5,this.Pm,this.eZa,this.Qz,0,2*Math.PI);m=(.5+m*2)*Math.PI;for(h=(.5+h*2)*Math.PI;h1||f<0||f>1))))return{$Sa:e.x+(d.x-e.x)*b+(k.x-e.x)*f,ATa:e.y+(d.y-e.y)*b+(k.y-e.y)*f,materialIndex:c.materialIndex}};m.Kya=function(k,e,b,c){var d=k.faces[e], f=g[0],l=g[1],p=g[2];f.copy(k.vertices[d.a]).applyMatrix4(b);l.copy(k.vertices[d.b]).applyMatrix4(b);p.copy(k.vertices[d.c]).applyMatrix4(b);b=l.x-f.x;var q=l.y-f.y,r=l.z-f.z;l=p.x-f.x;var t=p.y-f.y;p=p.z-f.z;var u=q*p-r*t,v=r*l-b*p,w=b*t-q*l,y=c.direction.x*u+c.direction.y*v+c.direction.z*w;if(y!=0&&(w=-(u*(c.origin.x-f.x)+v*(c.origin.y-f.y)+w*(c.origin.z-f.z))/y,!(w<=0))){u=c.origin.x+c.direction.x*w-f.x;v=c.origin.y+c.direction.y*w-f.y;c=c.origin.z+c.direction.z*w-f.z;if((f=t*b-l*q)!=0)b=(v*b- u*q)/f,q=(v*l-u*t)/-f;else if((f=p*b-l*r)!=0)b=(v*b-u*q)/f,q=(v*l-u*t)/-f;else if((f=p*q-t*r)!=0)b=(c*q-v*r)/f,q=(c*t-v*p)/-f;else return;if(!(q<0||q>1||b<0||b>1||q+b>1))return l=k.faceVertexUvs[0][e][0],t=k.faceVertexUvs[0][e][1],k=k.faceVertexUvs[0][e][2],{$Sa:l.x+(t.x-l.x)*q+(k.x-l.x)*b,ATa:l.y+(t.y-l.y)*q+(k.y-l.y)*b,materialIndex:d.materialIndex}}};m.C2a=function(k,e,b){var c=Array.prototype.concat.apply([],k.userData.ajb.map(function(d){return m.dza(e,b,d,k.vertices,0,0,k.userData.xMa,k.userData.DTa).map(function(f){return f.materialIndex})})); return m.pza(c)};m.D2a=function(k){k=k.faces.map(function(e){return e.materialIndex});return m.pza(k)};m.pza=function(k){var e={};k.forEach(function(c){e[c]=!0});k=[];for(var b in e)k.push(b);return k};m.dza=function(k,e,b,c,d,f,l,p){var q=[];if(m.m$a(k,e,c[b[f][d][0].a],c[b[f+p-1][d][0].b],c[b[f+p-1][d+l-1][0].c],c[b[f][d+l-1][1].c]))if(l==1&&p==1)q.push(b[f][d][0]);else for(f=p>1?[f,f+Math.ceil(p*.5),f+p]:[f,f+p],d=l>1?[d,d+Math.ceil(l*.5),d+l]:[d,d+l],l=1;l2){for(k=0;k1&&c.x>1&&d.x>1||b.x<-1&&c.x<-1&&d.x<-1||b.y>1&&c.y>1&&d.y>1||b.y<-1&&c.y<-1&&d.y<-1))return!0}return!1};m.NJa=function(k,e,b,c,d,f,l,p,q){var r=k*h,t=-r*.5+Math.PI*.5,u=e*h,v=(Math.PI-u)*.5-b*h,w=m.TVa*.5,y=64/Math.PI,x=Math.max(2,Math.ceil(r/c*y));y=Math.max(2,Math.ceil(u/d*y));for(var z=c*x,A=d*y,D=this.RL(),F=0,C=[],B=0;B<=A;B++){for(var H=[],E=v+B*u/A, G=0;G<=z;G++){var N=-(t+G*r/z);D.vertices.push(new THREE.Vector3(-w*Math.cos(N)*Math.sin(E),+w*Math.cos(E),+w*Math.sin(N)*Math.sin(E)));H.push(F++)}C.push(H)}for(t=r=0;t=y&&this.XR.M.o(h.Xf,{pointerState:this.cb});this.lPa= w;(q=this.Cf)===null||q===void 0||q.oK(this.We&&this.cb.mr,Math.min(1,w/y))}else(w=this.Cf)===null||w===void 0||w.oK(this.cb.mr);this.cb.We||this.cb.Gn?this.EX=void 0:this.EX==void 0&&(q=this.XR.zl.TKa,q!==void 0&&(this.EX=v+q));v=(this.EX!==void 0?this.EX:Infinity)-v;(r=this.Cf)===null||r===void 0||r.nf(this.cb.hidden?0:Math.max(.01,Math.min(1,v/500)));(t=this.Cf)===null||t===void 0||t.cB(this.cb.Gn);(u=this.Cf)===null||u===void 0||u.update()}};p.Gw=function(){this.cb.pressed=!0;this.cb.UP=Date.now(); this.XR.M.o(h.Cu,{pointerState:this.cb})};p.PA=function(){this.cb.pressed=!1;this.XR.M.o(h.Cu,{pointerState:this.cb});this.XR.M.o(h.Xf,{pointerState:this.cb})};p.cb=new n;p.enabled=!1;p.camera=null;p.Cf=null;p.We=!1;p.jSa=0;p.lPa=0;p.EX=void 0;p.controller=null;p.AA=null;p.FX=null;return p}();var b=new e.Vector3,c=new e.Quaternion,d=new e.Vector3,f=new e.Matrix4,l=new e.Vector3(1,1,1);return a}); define("tdv/player/view/util/xr/pointer/XRPointer","require exports tdv/constants/EventName tdv/player/view/util/Device tdv/player/view/util/xr/pointer/PointerType tdv/player/view/util/xr/SessionMode tdv/player/view/util/xr/pointer/XRControllers tdv/player/view/util/xr/pointer/XRGazePointer".split(" "),function(a,m,h,n,g,k,e,b){return function(){function c(){}c.plb=function(d){this.uqa=d};c.initialize=function(){this.XR.M.bind(h.V,this.Ta.bind(this),this,!0);this.XR.M.bind(h.Zd,this.Kg.bind(this), this,!0);this.XR.M.bind(h.cta,this.jib.bind(this),this,!0);this.XR.M.bind(h.dta,this.kib.bind(this),this,!0)};c.Ta=function(){this.saa()};c.Kg=function(){this.Wq!==this.XR.Wq&&(this.Wq=this.XR.Wq,this.saa())};c.jib=function(){this.saa()};c.kib=function(){this.saa()};c.saa=function(){var d=this.XR.isPresenting?this.XR.Wq&&n.ub()&&!n.kf()?g.OF:this.uqa===g.PF&&e.isConnected()?g.PF:this.uqa!==g.PF||this.XR.Cm!==k.Np||n.kf()?g.OF:g.PF:null;this.pointerType!==d&&(this.pointerType=d,e.Ra(d===g.PF),b.Ra(d=== g.OF))};c.uqa=g.PF;c.pointerType=null;c.Wq=null;return c}()});define("tdv/player/view/util/xr/XRSettings",["require","exports"],function(){return function(){return function(){this.TKa=1E3;this.N9="#ffffff";this.CPa=2;this.qqa="#007acc";this.P9="#ff6600";this.GPa=1200;this.PKa=0}}()});define("tdv/view/core/ZIndex",["require","exports"],function(){return{dUa:"2",Mua:"1",kWa:"auto",SVa:"1",hua:"2",zVa:"auto",Faa:"2",bta:"3",gUa:"auto",wua:"5",dWa:"100",Aob:"101",MUa:999998,dpb:999999,$Ua:1E6}}); define("tdv/view/util/Assets",["require","exports"],function(){return{lo:"data:image/png;base64,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", TUa:"data:image/png;base64,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", Sba:"data:image/jpeg;base64,/9j/4QDKRXhpZgAATU0AKgAAAAgABgESAAMAAAABAAEAAAEaAAUAAAABAAAAVgEbAAUAAAABAAAAXgEoAAMAAAABAAIAAAITAAMAAAABAAEAAIdpAAQAAAABAAAAZgAAAAAAAABIAAAAAQAAAEgAAAABAAeQAAAHAAAABDAyMjGRAQAHAAAABAECAwCgAAAHAAAABDAxMDCgAQADAAAAAQABAACgAgAEAAAAAQAAAtKgAwAEAAAAAQAABI6kBgADAAAAAQAAAAAAAAAAAAD/4g/wSUNDX1BST0ZJTEUAAQEAAA/gYXBwbAIQAABtbnRyUkdCIFhZWiAH6gABAAEAEwApAARhY3NwQVBQTAAAAABBUFBMAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFkZXNjAAABUAAAAGJkc2NtAAABtAAABLxjcHJ0AAAGcAAAACN3dHB0AAAGlAAAABRyWFlaAAAGqAAAABRnWFlaAAAGvAAAABRiWFlaAAAG0AAAABRyVFJDAAAG5AAACAxhYXJnAAAO8AAAACB2Y2d0AAAPEAAAADBuZGluAAAPQAAAAD5tbW9kAAAPgAAAACh2Y2dwAAAPqAAAADhiVFJDAAAG5AAACAxnVFJDAAAG5AAACAxhYWJnAAAO8AAAACBhYWdnAAAO8AAAACBkZXNjAAAAAAAAAAhEaXNwbGF5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWx1YwAAAAAAAAAnAAAADGhySFIAAAAUAAAB5GtvS1IAAAAMAAAB+G5iTk8AAAASAAACBGlkAAAAAAASAAACFmh1SFUAAAAUAAACKGNzQ1oAAAAWAAACPHNsU0kAAAAUAAACUmRhREsAAAAcAAACZm5sTkwAAAAWAAACgmZpRkkAAAAQAAACmGl0SVQAAAAYAAACqGVzRVMAAAAWAAACwHJvUk8AAAASAAAC1mZyQ0EAAAAWAAAC6GFyAAAAAAAUAAAC/nVrVUEAAAAcAAADEmhlSUwAAAAWAAADLnpoVFcAAAAKAAADRHZpVk4AAAAOAAADTnNrU0sAAAAWAAADXHpoQ04AAAAKAAADRHJ1UlUAAAAkAAADcmVuR0IAAAAUAAADlmZyRlIAAAAWAAADqm1zAAAAAAASAAADwGhpSU4AAAASAAAD0nRoVEgAAAAMAAAD5GNhRVMAAAAYAAAD8GVuQVUAAAAUAAADlmVzWEwAAAASAAAC1mRlREUAAAAQAAAECGVuVVMAAAASAAAEGHB0QlIAAAAYAAAEKnBsUEwAAAASAAAEQmVsR1IAAAAiAAAEVHN2U0UAAAAQAAAEdnRyVFIAAAAUAAAEhnB0UFQAAAAWAAAEmmphSlAAAAAMAAAEsABMAEMARAAgAHUAIABiAG8AagBpzuy37AAgAEwAQwBEAEYAYQByAGcAZQAtAEwAQwBEAEwAQwBEACAAVwBhAHIAbgBhAFMAegDtAG4AZQBzACAATABDAEQAQgBhAHIAZQB2AG4A/QAgAEwAQwBEAEIAYQByAHYAbgBpACAATABDAEQATABDAEQALQBmAGEAcgB2AGUAcwBrAOYAcgBtAEsAbABlAHUAcgBlAG4ALQBMAEMARABWAOQAcgBpAC0ATABDAEQATABDAEQAIABhACAAYwBvAGwAbwByAGkATABDAEQAIABhACAAYwBvAGwAbwByAEwAQwBEACAAYwBvAGwAbwByAEEAQwBMACAAYwBvAHUAbABlAHUAciAPAEwAQwBEACAGRQZEBkgGRgYpBBoEPgQ7BEwEPgRABD4EMgQ4BDkAIABMAEMARCAPAEwAQwBEACAF5gXRBeIF1QXgBdlfaYJyAEwAQwBEAEwAQwBEACAATQDgAHUARgBhAHIAZQBiAG4A/QAgAEwAQwBEBCYEMgQ1BEIEPQQ+BDkAIAQWBBoALQQ0BDgEQQQ/BDsENQQ5AEMAbwBsAG8AdQByACAATABDAEQATABDAEQAIABjAG8AdQBsAGUAdQByAFcAYQByAG4AYQAgAEwAQwBECTAJAgkXCUAJKAAgAEwAQwBEAEwAQwBEACAOKg41AEwAQwBEACAAZQBuACAAYwBvAGwAbwByAEYAYQByAGIALQBMAEMARABDAG8AbABvAHIAIABMAEMARABMAEMARAAgAEMAbwBsAG8AcgBpAGQAbwBLAG8AbABvAHIAIABMAEMARAOIA7MDxwPBA8kDvAO3ACADvwO4A8wDvQO3ACAATABDAEQARgDkAHIAZwAtAEwAQwBEAFIAZQBuAGsAbABpACAATABDAEQATABDAEQAIABhACAAYwBvAHIAZQBzMKsw6TD8AEwAQwBEdGV4dAAAAABDb3B5cmlnaHQgQXBwbGUgSW5jLiwgMjAyNgAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAg98AAD2/////u1hZWiAAAAAAAABKvwAAsTcAAAq5WFlaIAAAAAAAACg4AAARCwAAyLljdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgALQAyADYAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8AowCoAK0AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//3BhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbdmNndAAAAAAAAAABAAEAAAAAAAAAAQAAAAEAAAAAAAAAAQAAAAEAAAAAAAAAAQAAbmRpbgAAAAAAAAA2AACuFAAAUewAAEPXAACwpAAAJmYAAA9cAABQDQAAVDkAAjMzAAIzMwACMzMAAAAAAAAAAG1tb2QAAAAAAAAGEAAAoEX9Ym1iAAAAAAAAAAAAAAAAAAAAAAAAAAB2Y2dwAAAAAAADAAAAAmZmAAMAAAACZmYAAwAAAAJmZgAAAAIzMzQAAAAAAjMzNAAAAAACMzM0AP/bAIQAAwMDAwMDBAMDBAYEBAQGCAYGBgYICggICAgICg0KCgoKCgoNDQ0NDQ0NDQ8PDw8PDxISEhISFBQUFBQUFBQUFAEDAwMFBQUJBQUJFQ4LDhUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUV/90ABAAT/8AAEQgB5AEsAwEiAAIRAQMRAf/EAaIAAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCxAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6AQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgsRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A/VCiiigAooooAKKKKACiiigAooooAKKKKACiszUda0fR08zVtQtrBMZzcSpEMf8AAiKTT9c0XVUEml6ja3qHobeZJB/46TQBqUUlFAC0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//0P1QooooAKKKKACiiigAooooAKKKKACvDfip4x8WNq+k/C34ZvFB4r8QxSXE+pTIJYtG02P5ZL1oukkhYiOCM8M/J+VSK9tnmhtoZLidxHFCpd2PAVVGST7AV8pfCzVdW8Vavc+OLT/RdV+I8kl/DPJGHax8M6fmHTgqsMBrlm85VfH+skOPkxQB6JoX7Pfwv02Qalrmjp4v158NPrHiHGo3kj45IaYFYl64jiVI1zwop+qfs5/A/VZWuZfA2l2l0zF/tOnxfYZ1Y9WWW2MbqfcEV3X2bx1a8RX2maio7TQS2zf99xvIP/HKb/bniq1/4/vDDTgdTp93FN/47P5B/AUAeYn4AWum/P4N8e+MPDUgwNqaq+oRYHbytSW5Uf8AAcU5PB/7QOjOq6T8SNJ123TGE1zRcTNjsZrKeFefURcfpXpn/Cc6PB/yFLe/0vHU3VnMqD/toitH/wCPYrU0/wAU+GtVwNM1ezumP8MUyFv++c5H5UAeS/8ACU/tA6RvbVfh/omvQxg/NoustHM+Om2G9t40BI7GbA6Z70z/AIXpc6YufFvw28Y6Eucb0sE1KMD1zp0lwQPqorvPiTP8Sbfw00nwrs9LvdeE0f7rVpHjg8jP7zaYx9/sM4Hftivng/Gr9pLw7OV8W/A2S+s4ly9zoWoxz5/3YiM/56UAerWn7SPwSnkFteeMLPRbrjNtrCyaZOM8DMd2sTDp6V6xpfiHQdbjWbRtUtNQjcZVraeOUEe2wmuL8B+JLL4reE4vEGseErzRPNllgbT9dtUWdfLbaW2tnKN/Ce4rB1T9nP4H6rI9w/gbS7K6ck/adOi+wXCs3VlmtTG6tz1BBoA9rpK8APwDi03B8G/EDxh4bIOdi6mdQi6YA8vUluBgegxRH4Q/aD0QgaT8RtJ8Q26EYj13RtkzDuDPYzQqPQHyePQ0AfQFFfPf/CZ/tA6DGZ/Efw30vXLeIfvP+Eb1ffcH3S3vYbcHA7eZnsAa7D4bfGTwL8U47uLw3eSQ6pphC3+lX0TWt/aN6S28gDAZ4yMr70AeqUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf/0f1QooooAKKKKACiiigAooooAKKKQ8CgDwT47XtxrGn6R8J9Ln8i98eTtbXkgbabfRbcCTU5yf4QYsQqezyL0rqvhhYQ3Fld+Mhbi3/t8xixjxjydJtQY7CIDAIDJmYr2aUjtXgllLL8SvF+seIlbnxldS+GNF/vQeGdJkzq12nOR9snzFvU8gwHHFfZMUUcMaQwoEjjUKqqMAKBgAD2FAElJS0UAJj8Kyr/AEHQ9VBXU9NtbwH/AJ7Qo/8AMVrUUAcS3w/8OoP+JcLvSSOn2C7nt1H/AABH2fhtxT08PeIbPjT/ABTdSAdFv4ILhR+Mawv/AOPV2dFAHGiTx7anMkGlamg/uPNaP/3yyzL+opT4l1W1/wCQj4Z1CNR/HbGG6X8o3D/+OfhXY0lAHGr4/wDCqsI7y9bTX6bb+GW0/WZFH5Gums9S07UE36fdwXSesMiuP/HSatlQwKsMg8YPSubvPBvhW/k8660azeb/AJ6iFUk/77UBv1oA6Wvjz4m+Bf7V+LWta54AdLDx1ovhq21q1uV4X7VFcSxxw3AT78V7EjRSKe0asMMoI91nsE0bxVoljod5dwRKtxeahHLcyzQCzjjKAFJS21mlZCpBGAjduK4z4Y6naTaD4v8AjjrpS1tvE8kt7byyFf3WhaajR2J3YHySIHucH7pmIoA9R+H3jCy+IHgjw/4106Mw22u2MN4sbY3RmRQWjOMjKHKn6V2NeI/s5Wd5afBXwg1/AbSa9tGv/s5yPJW8ka4SPkD7quB0H0r26gAooooAKKKKACiiigAooooAKKKKACiiigD/0v1QooooAKKKKACiiigAooooAK8V+OniLVtO8JweE/C0ph8UeOrtNB0p16wNcKTcXX0trdZJeoyVA6kV7TXyFrGrT+N/iDrniDRpNsulSP4D8LzgD5b66Cza1fRE8MLeOMIOOGhde+KAPT/hF4f0yJ7zXNKh8nRtOhj8NaBHyAunaWTG8oBA/wBfcBzuH340jNe31maNpNhoOk2OiaXEILLToI7aCMdFjiUKo/IVp0AFFFFABRRRQAUUUUAFFFFABTSQoLMQAOp7AU6uE8fSz3OlweF7F2jvPEs39nh0yGjgKlrqUEdCsKttP94qKAPGPGF/eeIvDM9vpkzwar8XL9dD0uWMlZLfRkRvNuEZQdpFqs9whPG+RFPatT4z2Saxp3hT4D6Aot4vF0y298sR2/Z9A04K95gDGBIPLthgjHm5HStbwbb2viv4oa74qhhVdH8DQHwpomB8nmny5dTkQg4IDJDb9PlMLjuaz/hLu8deOPGfxgmPmWM058NeH/RbDTJGW5lXrzPd+ZyMZSNOOKAPoOGGK3hjt4EEcUShEVeAqqMAD2AqWiigAooooAKKKKACiiigAooooAKKKKACiiigD//T/VCiiigAooooAKKKKACiiigDzP4ueMbvwT4Gv9S0hFm129aPTdGgbpLqN6whtlIHO0OwZsdFBPauA+DvguDRr8WltKbnSfA1odCtJ35e71OZhPrF87Zw7PLtjyV3B1lGfmrB8c65LrnxNl1KBVudN+GMSW9jDnK3XivWVENtGQB/y628gJ6j9/njZX0P4T8PQeFfDun6BA5m+xxYkmb700zHfNK3+1JIWdvc0AdFRRRQAUUUUAFFFFABRRRQAUUUUAFfP/jXxhNoVt4q+IFtCLy40lF8N+HLbp9p1O6lSMhTzjzLpooSeiiJieM16v4z1y48P+Hbu9sIxNqMmy2sIj0ku7hhFAp46b2BbjhQT2rx6w0mPVviVoHgqBnudI+F1jHqV9MQcXGtX6PHb7iDgvHF508ikcGWJvSgDO8ZW+o/Cn4K6R8PPClz5vi3xE8Wg2V1gCSTUdRYve35AHLIDNctxyR2r3nwj4Z0zwZ4X0fwno0flafotnDZQLyfkhQKCSeSTjJNeNaOF+Ifx21bXJMS6N8LoP7IsR1VtZvo1lvZvTMNu0USEYI8yQd6+h6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//1P1QooooAKKKKACiiigAriviL40svh74K1nxheoZl0y3LxQJ9+4uGISCCMd3lkKooHUkCu1r5h+LGtW2seO9P0q6R7jQPhxbr4r1mGPJ+03x3R6PZBejs0gaYJ2dIj3FAB8KPCepxajpmk66y3F14XV9Z12ZTuSfxPrAMsqqSc7bSFyFBHCyx4+7X09XE/D/AEC88PeGbeDVmEmsXzyX+pupJDXl03mTBSf4EJ8tB2RVHau2oAKKKKACiiigAooooAKKKKACiisrXNXs/D+j32t6g2y106B7iUjrtjXOAPU9AKAPNvF/iDTLPWrzX9al8rQPh3YS6tev2+1yRN5a4HUxQb2246yJiuJ0nWLv4TfBTWPiR4ptCfFGt+Zrt7aDa0smpX+1bSwUqPnMQ8m1TA5CCszVNL1XXtS8GfDK/jJn165fxh4vYdI7e2dHgtCy/wB+48mFQeGhgkHaui8ZInxC+MPhnwEP3mk+CUTxTrC/wNcsWh0uBx0PzCWfHYxIfSgDufhD4Kn8BfD/AEnQtRl+06vIr32rXHefUbxzPdyn/eldsDoBgAADFemUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//V/VCiiigAooooAKKKKAMLxP4h0zwl4c1XxRrUoh07RrSW8uH9I4ULtgDvgYAFfMHww8P6xq+pabD4li2azq9yPHniuM8+XPcfutG048Yxbxxg8Y5t1bHz11vxl1W31/xNoHw2lnEOj2aHxX4qlzgRaVpjb4IWI6fablV+U4DRxy+lej/DLTb2PQ5vE2tW7WuteLJ/7VvIXxvgEiqtvbHBYZggWOM4ONwYjrQB6RRRRQAUUUUAFFFFABRRRQAUUUUAFedeLdmt65o/hVmAs4WGsannp9ntGzBG3p5k4VvQrGwr0J3SNGkkYIijJJ4AA6n8K+YPEt5qGv8AhlrSx8yDWfjBqA020dCyyWuhxo2+YMoyhFmskqek0yr3oA6T4b6nYvpXi/45+IZktrLxC73VtPKUAh0DTVZLQ7/7koEl0M9POx2qx8AtL1CXwvqHxD162NtrfxEvn124jcYeG2dRFYQMCBgxWqRhh2bdWH8ZbSPXR4N+AmhILe28Tyq+orGMLBoGlbHuVwMDEx8q2Az/AMtCcEKa+jooo4Y0hiUJHGoVVHAAAwAPoKAJKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/1v1QooooAKKKKACqt5eW2n2k99eSLDbWsbSyu3AVEG5ifYAVar5++OdxJ4lXQPg5YyeW/jedzq8gbaYNBstsmoMTxjzspbAggjzdw+7QB5t4Htrzx1cRatqSML74o3w8Q3oIYG28LaYwXTLTkfKLg+WzRkgN5k5A6ivsmvKvhjaw6nHqPxAMAiPiRo0sBgDy9ItMx2KDA4VwXnx2MuO1erUAFFFFABRRRQAUUUUAFFFFABRRSUAee/ERrnULCz8G2EhiuvFE32SR14MVko33kgxjH7oeWp7O61x3geNPFnxH8S+NwE/sbwyh8KaCAFKjyGD6nOjDoGmWO3I7fZveqXirxXd6ZZeKfH2nwi6v0ZPC/hiE5xNeSyiEt8oJCvdkK56CODd0rO8dRXnwv+Dmj/DjwfctJ4l142/hvTbl8GVry8z9qv34wzxp51y/AyR2zQBb+EHmeNfGHjX4wXIb7JqFz/wj+ghsYGmaU7pJMvX/AI+LoyNkHBRY+BX0PXP+FPDel+DvDOkeFNFj8nTtFs4bK3TJOI4UCDJPJJxkk9a6CgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/X/VCiiigAooooAQkKCSQAB17AV8aabcy/EjUtV8TwO6P8SbxvD2iOhIaDwtpZP227TBG0XT+ZskU8iS3PavYPjlruoweHLDwN4dnaDxD4/vV0OykjOHgikUve3K+nkWqyOD/eCjuKf8LtE0572+8QaZAtvoumQp4b8PRKMLHp+nHy5ZEGBjzp1I44ZI4zQB7HbwQ2sEVtboIoYUVI0UYCqowoA9AOKmoooAKKKKACiiigAooooAKKKKACuP8AHOtXei+H5jpeDq1+8dhpykZH2q5PlxsR/dj5kb0VTXYV414q8SaRYaxrPjDXHxoPw00+a6lbGQb6WHe20AZ3xW5Crj/ntjrQBzmn6Laa58UdE8OWTmbQfhHYrI+cES63fwmOEuQc+ZBaNI7A8ZuVbqBhdHCfEP466rrrkTaN8L4P7IsV6qdZvo1lvZe43Q2xiiQjBHmSDvUNhqUvwZ+Cur+O/Etv5viXU/N1vUIEw0k+raiQILNCAC+wmK1i4ztRRXf/AAe8FXHgH4faToepS/adYlD32rXH/PfUbxzPdSdusrHHAAGAABQB6dRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//0P1QooooAKSlryr4yeMr/wAHeCp20BUl8Ta5NFo2hQtyH1C9PlxMVHJSIbppMdI0Y9qAPHLzUrnxf448Q+NdLn/eRSHwF4RYYIW4kbfrF+gzz5Zj28jpanHDV9R6Ho2n+HdGsNB0mIQWOm28dtBGP4Y4lCr+grxL4V+EbfTNVi0+yka40P4fWK6BYSyffudRcCTU7x2GFZi2yPdtBD+cO9fQVABRRRQAUUUUAFFFFABRRRQAUUUUAYfiXXLbwzoOoa9dqXisIGl2IMtIw4SNR3Z2wqjuTivn7UtGm1nWPBnwlvXFxO0v/CZeLWXlT5Mwkt4W5yolvdvlg8GK3degr1TxM0OueKdJ8OzbTp2jqNd1ItjYPJJFkjfWUNN/2xFcN8LtRsG0DxX8dfELrZ2/il5NSjmnKgQ6Dp6slj8xA2o8Ktc7T91pmoAh8aL/AMLB+MvhfwAoMujeC418Va0B9xrpi0OlQOO/zCWfGDgxIeOK+iK8L+AmmX8vhi/+IWu25tda+Il8+uzxOMPDbOqxWEDAgYaO1SIMOz7q90oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/9H9UKKKKACvlnxRrra98SNW8Q2sa3ln8MIhpWlwH7lz4o1ZEUDGP+XeGSJNw6ec/wDdNe2fEjxlF4B8F6r4naI3NxbRiOztl+9c3kzCK1gT/aklZVH1ryL4XeD7jTb7RvCl7N9sbwVC2qa3dDGLzxLq+6aZuD/yySSR9u3A86PbjbigD3Twl4eh8K+HdP0KJ/Oa1j/fTH7007nfNM2MfNJIWY+5ro6KKACiiigAooooAKKKKACiiigAqGeaG2gkuLhxFDCpd3bgKqjJJ9gKmrzj4gGTVl0zwLbct4kmKXeMfJpsGHuyfaQbYPrIPSgDyLxPc3+s+G7PQLXzYdb+Mup+USNyyWmhpHumc4IaPbYpsBH3biZfWtj4zQ/8JBL4O+BmiqIYfFE4l1NEHyw6Bpex7lSOBtmbyrYDPSQ8EA1seBGTxl8Q/FPxCdF/svQmbwtoTfKV8u2YNqU6cArvuQICPS2BHBrP+DzSeNvFPjH4w3Cn7Jqtz/Yeg57aVpbshlX2uLkyuCDygj9KAPoCOOOGNIolCIgCqo4AAGAB9BUlFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH/9L9UKKK5nxl4p0vwR4V1jxdrT7LDRbSS7mwMkiNchVA6sxwqjuTigDwf4g61B4h+KFva3ivJ4X+E9p/wkWqhBuFxq06MmnWgGDuaNN02zgh2hIr2vwHot7ovhyD+1wv9sai73+pFTkfa7k75FB4ysfEaf7CgV4v4G8M3yQeHNH8UhE1zxBcyeM/EisV/eXRZfstoDwXWBvLVcDhbdQeoz9NUALRRRQAUUUUAFFFFABRRRQAUUUUAJXz14q8VahYaD4n8daKFl1nVZV8M+FY3DFGnaX7PHIQvOx7pmkcj/ljErdBXqPj3V73TNAa20c/8TjWJY9N0/p8s9x8vmY4yIU3SsP7qGvMdN0y18QfFew0SwVT4b+EmnpGiYVlbWr6HYnPUNbWeSfX7SD1WgCj8Qkn+G3wk0L4X+DLh/8AhIPERt/C+kztl5RNcKftV857tFEJbhicbmGM5YV7r4Z8PaZ4T8PaX4Y0WEQado9rFZ28Y7RwqEX9BXiWgKPiJ8c9a8UP8+ifDSE6Dpo42Sardokt/OOv+qi8qBTwQTKPSvomgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9P9UK8D+LKReI/HXwz+Hl3Jt0/UtSn1u9hxxcR6JGs0MJx2+0vDIR0ITB4yK98r5Z/afsde0fTfCfxZ8M3C2l18PtV+13cjQvcKunXSGC6Z4oyGaNAQ0gXkICQMgCgD6Q1XQtG1yJYdYsLe+ROUE8avtPqpIyp+mK57/hDDZc+Hta1DScdIvN+1QfTyrkPgeyFa5DTPi4YLC2ufGXhzUdIScR7b6wjOraZMHQMJYbmzVnEPPDTxRH1Ar0Hw74x8KeLYGuPDGtWWrxoSrfZJkkKEcEMqnKkehAxQBlfafiBpbYuLLT9fgH8dq7WVx+EMvmRn/v6v0pw8faNakJr0N34ff11GExw/+BCboP8Ax+u3pCqspUgFTwR2/KgCC0vLS/gW5sZ47mB/uyRMroR7FcirNcjdeBvDNxK11b2f9m3bHJuNPdrOUn1ZoSu76MCKpHRvGumsDpPiCLUYR/yw1a3BbHoJ7byyPq0bUAd3RXEDxPrWnj/if+HLmJFHM+nML+Hj/ZUJP/5CrV03xb4b1aX7PYalA9z3t3PlTj6xSbXH5UAdFRSUtABRRWB4o12Lw1oF9rcqeabWPMcQ4MszEJFEvvI5VR7mgDzXxP4jsNO1bXvHWqbpNH+HdhKscaDcZdQnjDyhFA+Z1iMcUeO8rL1rnLK7vPgj8D9R8VeI1F74qu1m1a+jQljc61qb5jtYsjJUSvHbwjGQiqO1Z2paDca14p8FfCWZ1ubfSCPGPiyVek1wsxezhI6gTXu6Yc/dt9n3TWn4wX/hYXxq8NeBlYS6L4EiXxRrMeOHvZC0WlQt2IUrLPjHDJGeKAPQPhH4Jk8AeANI8PXkv2nVNjXeqXHefULtjPdyn/eldsDoBgDgCvSqKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//U/VCo5Yop4ngnRZIpFKOjAFWUjBBB4II4xUlFAHzn/wAK0+IPw0lkf4I6pYyaBLIZG8La75v2SAsct/Z93FuktlOSfKZJIx0QIK5LX/E2nNOtx8a/g7qWj3MAZV17Q4/7ViTI6x3On7b6IEd2iUcYz0z9c0UAfM3hHVNN10Sf8Kc+L8eq+QqIdJ1po9UEO3s+Whv0Y9D5krYx0rvI/GPxK0RzH4t8Cm9gEhUXnhu7S8XywOHktrkW8y5/uRiX6mtvxb8Kfhz46Ct4q8NWGozx8xXLRBLmJv70U6bZEYdQVYEV59J8HvGnhoB/hj8StW0yOM5XTteA1ux9xumK3a+2LjA9O1AHeaJ8WvAGuXUemxauun6nKCV0/VI5NOvDtODi3u1jc49QCK9GBGAR0r5p1XWvixa6e+mfFH4Xab480sjZJN4dminMgxyzafqPl7Qf7qTSHt71ymj678Fri6TT/CnjPW/hVrVwVWLS75ptOHyYO2PTtXje2K9j5KfQg0AfYNZmqaJo+tw/Z9YsLe/iHRZ41kx9Nw4/CvMo5/jJo2yWD+wvHOnM+d8bPpN2IscY/wCPi3lf8YV+lTr8YNC06IN440zU/BTqheRtWt/9FQDrm9tjLagD3lH0oA6Q+DFs+fDur6ho+OkSy/aYPp5NyJAq+yFaQT+PdNIE9rYa9CP47Zmsp/8Av1J5kZ/7+LXR6TrWj69aJf6HqFtqVq4BWa1lSaMj2ZCRWpQBxQ8daRbMI9dgu9Bf1v4CkI/7eE3wf+P1ha/qGma7r9jDJdRPoXhmL+3tRmVlaLegItEZhkYXDz9eNiHoRXqJAIweh7V8/fFSK11u70f4LeHLeGF/F0/2vX/IjVRDoduQ120oAAzdkLaL/EQ7MudhwAT/AAwuV0vwb4h+MXjJ/sUvip5tfuGnyn2TSoY8WMJD4KeXaoryL0Erue9S/AHSdRPhO+8f+Ibc22u/EK/k166jcEPDbygR2EDAgbTFapErL2bP1rL+Nyt4qu/CPwR00FE8W3YutVCZAi0PS2SW5U4wNsz+Vbbc8iQ8EAivoTyIfI+zbAIdmzYOBtxjH5cUATUVh6DcSvavZXLbrnTpDbSE9W24Mb/8CjKmtygAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//V/VCiiigAooooAKKKKAErI1vw9oPiawk0rxFplrq1jMu17e8hSaNgexVwRWxRQB8/t+zt4T0iWS6+HGraz8PbhznZol2RZ57/AOgXAltee+IxUSwftHeEdsXn+H/iVpqjB88PoupbQe+wTWsrlevywrkdAD8v0LRQB8Z6l4n+Dov5bz4jeBdc+FOtzFDLqq28tkjbOVL6tpDNCVBGMSyAdiuCM+keGE8UahbJqvww+K9h400iSRmEWrxW98Ag48qO708wOu0jGZElb1r6BeNJEMcihkYYKkZBH06V5B4h+Afwn8RXkuqyeHYtK1eXrqWju+mXueOs9oY3PQcEkcDigCrLL+0JqYlsktPCPhsHhb/7TeaqwGeotDDZjOOmZiAfXFLBZeBfgR4e1rxv4y155728CS6vr2qFWu7xoxiKJEjUAKucQ28CBQT8q7mJOHH8EvGNiottH+Mni+2sl4SKf+z7x0QdFE09s0hwOMsSx6kk1u+GvgV4P0bWbfxT4gudQ8aeJLXJg1PxBP8Aa5Lct1+zQgLBBkAAmKNScc0AUvhFp+v+I9R1f4weMNNl0fUPEscVrpOmXIxPp+jwEtCkyjhZ52YzSr1XKofuV7vRRQByt4x0rxJZ3nS21dfsU3oJ4wXgb8RvT67RXVVh+I9Mk1fRbuxt2EdyyB7Z/wC5PGQ8Lfg4FP8AD+rR67otlqyJ5X2qIM8Z6xyD5ZIz7owKn6UAbNFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH/1v1QooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuI0dl0fxTqfh8/JBqKnVrMdssQl2g/wB2QrJ/20rt64Hx/v03TrXxdbqTL4anF5IF6tZkeXdpgdf3RLgf3kWgDvqKjikjmjSWJg8bgMrDoQRkEfhUlABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH/1/1QooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACo5Yo54ngmQPHIpRlPQqRgj8qkooA85+G8sllp174MumY3PhO4+wIWzl7MqJLKTJ6/uSqE/wB9G9K9Gry3xK3/AAjPjvw/4pXCWOtgaBqJ4ADuTJp8rHj7su+Ee8w9K9SoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//Q/VCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAOZ8Y+HI/FnhjU/DzyG3a9gKwzLjdDOvzQzLkfejkCsvuKq+AvEcnirwpp+r3KLDf7Wt7+FTkQ3tsxhuYu33JUYfSuwrynSD/wi3xM1XQmyun+MITrNn94qt7bBIL2IfwrvTyZVUdT5hxwaAPVqKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9H9UKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK8u+LVhef8ACMp4p0eBrjV/B1wmtWkUahpJVtwRc26AlRme2aSJcnALA9q9RppAYFSMg9qAKWl6lY6zplnq+mTLcWV/BHcW8qEFXilUMjAjsQRV+vH/AIV48OS698MHAjXwrciTTE+UZ0i+3S2m1VAwkLCW2UY6QivYKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//S/VCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDxz4ib/C/irwp8R4mZbW3n/sLWAC237DqTqsMpVQQTDdCL5jwkbyHgZr2OsTxJoGneKvD+qeGtWj8yx1a1ltJ1/2JVKnHoRnj0rkPhPr2p614PgtPEDZ8QaBNJo+q8Bd11ZHyzMFBOFnTZMgz9xxQB6VRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf/T/VCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArxyVY/BnxbiuQVi0z4iQCCQfKqjWNPiLRtgDJe4tFZSSeluoAr2OuA+Jvhy+8TeDr610ZhHrViY9R0qQlgFv7JhNb7tuDsZl2OO6MV6GgDv6K5vwf4ls/GPhfSPFFijRwatax3IjkBV4y4+aN1PIZGyrA9CMV0lABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB//1P1QooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPHvBYh8I+OPEfw/wALDZ6kz+JNHQbVBjuZMahEgByTFdHzWOAALhRXsNeQ/F2ObRtM074kWCM914Iuft06pnMumSDy9QjwqszYhPnKgHMkSV6zBNFcQx3EDiSKVQ6MvRlYZBH1FAEtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//V/VCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAimhinheCZBJFIpR0IyGUjBBH0ryf4RtNoumaj8OL12a48E3P2G2Z85l0yQeZp8mWZmbbCfJZj954mr12vGvHLL4P8c+GfiCu2Kx1B08Na0SVUeVdyf8S+ZvlJJiuiIlGQALhj2oA9lopKWgAooooAKKKKACiiigAooooAKKKKACiiigD//W/VCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKwPFPh2x8W+HNU8M6juFrqtrJbOyMUdN64Doy4KspwykYIIBFb9FAHnvww8Qanr/hC1/t/H9v6U8ml6sFUoPttm3lSuqnJCS4Esf+wymvQq8iZI/BvxUE4xFpvxCjEbj5VUavYRfI3AyWuLRdpyf+XdR3r1ygBaKKKACiiigAooooAKKKKACiiigAooooA//9f9UKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo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", vua:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUsAAAFLCAMAAABoaV6sAAADAFBMVEUAAAAJCQkDAwMDAwMLCwsFBQXb29qgoKDg4ODy8vJRUVHBwcH19fWXl5fZ2djW1tX5+fny8vLY2Njp6el5eXnV1dSwsK/v7+/Ly8vu7u6goKDu7u7ExMO1tbTOzs10dHO6urnJycnAwL/Z2djQ0dDIyMja2tktnuotmez09PQso+koYMf8/Pwule3v7+8sp+cvke/6UFPOFR4nZcWsrKwrr+Urq+br7OwqtOMvi/EnasQncMfn6Ocoe8zj4+MqueLDw8QndckoeMongMwnbMYog8/d3dwojtModM3g4OAohtApktUomNUni9ApndgpsOAofNApptspq94qqOEocMssmOUqmdowh/EpcdEpodkpd9Eqf9cqitgqj9kro+MqdNYpidQpldkrnuMretgse90rbdUpbMwqa9Epf9MoZ8krmd8qhtsqg9kqnd4qot4tlegrkt8theUqZ88skeQrjd0pZMwtf+QugOkteOIsjeIphdUshuAsgd4ti+YrcNktkOgsdN4uiesqetQsdtru8vUujusvgu7Hx8jR0tMog9MveufMzc0snecrgdsWQG8sieEolNEqktvg6/UrleHM4fXn7/UobMnX5/W7v8Z3uPIqitwaS4AuhenA3PRcqfCcyvMgd6ao0PSEvvJPp+9Hm++11fORxfNts/FskMk5mO8caI9lr/Cwucijs8sklcOEn8mZq8hTne8ecZo2bsgwaMcbXIQ7n+1EpO5GeMo/cshhicmvv9SaueSpwuNnldXGzNMkhMEnoM4/gdl1pOZlnOfM1d9Vg8shYaq1yeNNfMdAhuV4l8kdUpTe5OrS3OeOpcpAju62trcghq3gMDY4d9IkY7gijrcifLRUkOhKjdmBrd0fWp+8xdKJsejAzd7E0+aTsNZ5oNTwVlrDHid8hZ4wWX1bjtVCpdSpqquINUgldb2sJTOipaqIlaFefZfMZXNrjLRLaoo1aI1kRl6an6W5b3s+UnLdWmPlu7ybdpBVmr+yhYlYU3CLmraxbYKtSmBvYR20AAAAJnRSTlMADRUdLSTtHFmoOi7dUODF681AbUnWbL+wlWSAmnm8NIajjKeLetZ4Pp0AAF5LSURBVHja7JpLbuJAEIbDChBeGHuBEAdIWspIs+UkuVCfwLJledG2/JblFRu4Ro40VZVulw2ewEQzDCT5jcbdcrCaj78ebebhW19Nk4dvfRyePsYufJO9jCDBQk0XzszdrOeg1Wq5XK1wtN64M2cxpT/4hvo+xykQdNzN3LKf35OwlvPNzAGq0+/wP4GIRpwBQ8sWzxfLtoGp68B7vx2KQhALoLi0nz8sa7V2HQz8L2xScBMkxfWKI/rDEjZG/WL6JQ2KFWYKHEcxftygm9l08rVokiFdjOu/Lnu5njlfpiIByKmzAY7/TBYUpK/gzsnDwlmL538ua+N86uSJOdJxIUVeRfbc/bQ0MUm61vNVtZwtPh9OsiQ48uqy1p8rdSLI2fqPLCm9UKk0qbIsi6KoBkURjKsqLZUfevJP7rXcLCafhifsbOaXW9JTSRbHu11RND9P1TRFscvjNktVcPEtrc0nyZyTqbu8yIp+WUVx8fNyNUWbJSqUFxWi2b17E9zguOdbSQ8w1jH7cEvHRfpR5HEEQIPzNO96S4Rd+dnKLfw0i5uf2+0IxctV1FXpncM5n90tTGjLzzSTMiyz1tjxAoo/8BgVXGvyOlGeOOfNh3vUZHImT/ppVGzJj+zGcZpNGxVA65wAdJyV3vs0nburQpOH6ey96A78rNmSGF9v2KR+1TDLVAi1N8CaxCv1ZNygeTpejrRll3dGE/rJJS//RCrbbUm/KzWVELKmqCaFQnitoRUFQlbv+7OJs+AYIU/s+eJu8iZuFte9xYvuQIkw2bEhGeIuKeO+EUWGIEdYZlKIlLFVKhrlGZeB4SjgGCC13XtJm5Pp5vcVp6xfNcktkmRXplKEHcsMWCbNOMsKrrEva3BwPO7OQxSe+NLMl/fQbsISN1bnSDqxO1RWEEi2I2dIBYh2ZhaD99RhlGWTwB+yFRXPRpRXgJOX0ee6mt142sSOcm2zG+DE57A2JEEEss05ykuEQiNggCz9fJTlPgUn0oTkwdtqZpfWJzRltwzBSQcGlju9bZZT1+ZF909BGm8NSY2vUCKofhqh3VJTbfJAiHCc5UFhVD9p7QXMuj+sAxFkJ4UoUtqYx/8sb7l3nzhzm9cK4noTv/ZJkmoPzNexjNCKjQEG9IJ4yFLTy324lBuWrQDojZklALYy92AVdeodkyTZ6xut6JgpbSbYy5dBtXtBkFx0CGccIpUuRXpA5WC8BMBkNGBZG5Y46VhikVJPRj5cip7GmqRWySOaugbdYtbEpxhLJtjLUF71+mI4Mkkq3VitDUvyWxetpTCNDzLqs0TmzDLBW3QBj9bGSxrngOqhRJonUSPmt/fEQ3fnJzRl2m572lVZ0dXvCE0FU9KwpiBmRSRPWAYwOegJJc/asMT7lWYCBazK8kHeDMGMg6gh3dyuEp72Co4cfRZAsgBPcngXYL6y6DohD6wYme1NRlbUQr/5QGSEpcRcMGpSNHMFZ06s/lFR9wWT5C7+lgo6ZErH4j6S2yAVb4faBUCvBXhdHyRTs1GMBH12nnijLFsM5D1PGOw+xJs/GWV47em4pnsaIAOF6fyGfmHDokNLg3Xx4UWaIPfnjeIUCaKP25kGJvJJ58iDgMl+jGXdrzYVRvWeo5/SJRcimercySqSoFslvWhgObeBcjKZUnz3F4hHUgxRUtXJ0Hxcu0PsFfttd95LkSENxmpPwrwoqjldph3/XPKbjgK9C27eEtmbG6hAWL+tDiRv1lLTBjFMkyIlN+hpP0f6tB00VSWKDiMsHwFSFtEIxwG+hcYIliZG6YDsj/2BadZ+940zzRt4eAQPMiwDkL9tP3vtUDaJqtCimp7ErNgPct88jKwkm4zFLAkZvvQIsAoqPdwRSW7i0fKcPFulsoatmQS8YKG5Yqv5f8QoNb7eS5bFC7uyxTjs2soWjRmb3xxyr9dUtuCykszIejz2peFIZypXMKKDtkA4ICWSLnHvhHtSVqQYpKmXtvs/nx1N4EGlbVK5eZEpewGOHzgoCCVWH+rCG90I7ctewsxDrh1M8vHYlz1lWHrg3G2Bku5daEs2eSTRwIPWPfHMws26Aeb1myPOlc5KgJ4Hh9q9gJhlEdDDyK7eYFy2iBJVd5/xzTxBPASJB/uSKb4Naf/9qNVKDdxU+5CfgCiE3gyLUBSapWugAirQ1TdBvNWxngXBZKBBrUmyMClKbip9/FxEkmBWhLLrcKo+yUGMG2aM823b+WjUJrH5Aghewq0mp9IeziaRBqIwOFeLK7PkAs4c9RESSmLJmx00QIokSVhiQqoDrN4ekEnywSxhwqJdD7Nkyk+Uh2vOltyTDmAiY/YlUZ1fEya70rUZ49tSZPJC6pMERZL2ilo5os2GJPkBmtcHqcOaWQ5FW6ADz1kJwoMyxpkUw9/AZOVIubMmybre/4tjV25MbHQrke3WoIyVag3Nt7D2d/2m0m+YZKc9ZtbDoFI/vseyQr+PoaQbRY/Glj63mjRPkgP/9Caej2has2uznPzi5WxC4yjDOI4nFXuwepDi3WQD2SYFjYHepBSUnKTkYkU99pKIhz2FsDAbpPTiuMMwkNnNzn6x3YsbcBZEIaAICoWVHmyQXvxAtEL8oJb6/X+eed955mN3u7tO8p/JNhtLiL/8n/f5v8+720dzIiZKTUej7JVRx70woXft6NaxwptyQSmivwb/CMfxLHmWMcqWJgwbfJsWNXFB6dPMQ8xJIU3EQJ88UZgo8OgqySibGiWxpEhSC4/AOQjZeuvY4FgkKEUuVb9knwewXHDZfXERPKKVc4NnENtyPlSbVhx/UWCqfi4N6PGTKXPZgava0D+G5a1qlNCgxSXPKBmmyc2bpIZAlrRvkWNwMTLI8SwXcFVsdl9aPD3qSgjV8YjJ8gygGWtBNUNXuPbFCR4EPXZGknmA02wDpbDEoJKLnmuceFbJDIsqVXYsTiwplHNU/S7TSbPsAqBchNOxACn6VS32va+esEmrYbzyCRyjFZp+i2ZHUXOeOqFRB1ypUMpmp9xdF5SsriVDDNAktgbyukx67SG7xfqIkNM0kogXIFoH3YWEWaE+2Sy0cd3igzelOc+SDVEkHOXEHCfqTJyA58SRuGFAQanUqRGvdnj+7dgmT31ZFAwNJ71b9Il4N70w1lutCv1JlxI+qVEI009xaZ5c1CF6GNFs+Tqq8sgDE88UTDtCk515EptznDYKSIWyISi1OKEbbhiEOpVuZ0l2HByeRbrfAI9VSZIkF+JBqCmmVUqtwRe02JYuMY4EJM9BvasKD5rgkKhZMaX74BPAPG5nShgSGTUNslH1OpLRKyZPMWBLrchPnoMqAjLc+zXdeGPWhhOKIr/adJKAobYxbKFgmohH8YLoV2t1PXB3cyLu5sccjYDyTC4hmgqxGi64DmTLwynPWRKUIk6SrY4CqUkmJRij7pvjW8RPI0x5CEw+TtOsm1Qr0RBmyK6BPBvFeXyhXXKlJAfZNrJ6PDOPvPiKgNkdQSnikGfXYzOMISAh8eNYCVPOPI58h4iCCu8KSi8HyR4I/1l2QZwzBeYxoZQ64ClvyJIzuNHWtkS/4Z7ZSaNEcZmqnY4wpThSKE6Gk8q4rNfOOM0W/zyqDqC2mQu2QAIzXuenjm/QgSEbdXDxpcRKUjAQMj32ZTgSsloplvo4xvS1KdOe1I6cFmadbamfxWhWCGWtzyRJlbKKZgKzGsl6EMMUnNlO0U8l2g42OzvSw9fbFu8x2JYk/h+zOymUUN3gOQY0DKUiOYO6HFHl9yA0VYVzGQSTON2IBGYj6cynjmnS/tBjp+OuNJQrJQ8xzHKFUMpQo9ZJoYSqhqVPFNKeDFFMq7P9mmF4sZ6kYXpUJB4+UVm2xmaQbCRpLbpqPsoxM3tXJtKQ5SVQQrytaFKqZJodntE4KZSQ3+36TDILTwrLhX677cf6Oi666xzR+uHEo2VS40yl9gZgxvT0MTiT5hlxtdZVgQvLdQQhgkkgWZza7EYKpSiVy5UpZ4V59mz6i5TgeYGuh8OkLleQP2TY7uZiotPJjEmmgqXhKJI9r7IKlFo1g8ta06xYsZfxJ/c6aZSQPAx13tmkFugaKknxVSoQb06rbfNiNC/qHH66LWUe1SOZw3wk0XeqqsAHZcN0oseOLvd3eWkGV3kSpW4AyfIet04ys9Ea394tqXCSa/BiKfI/vPuT+o1jDhPT6WyTEWZDnIZETV3gXTzJO5EDHsDFPlmqvMnJQ6EURw5v4GOKdwKB9XBv9nmpiWwsLQprvqDsfbF8hJHqcJh4uWumLfypBMqBZjngUNlaFfVcA8fhoXjRr/pxV6YbeBhiJirrKf3ZMvRmSHxZi6BsHC3fOw+WSuxiUf5Mds38odRAozwASdV4cLYDOaEvU++t5V7eZpRiyzRKTkKzOnK8OzmaNf1IcO87XuSQ7oOj5ZtvGzVfsyw5DFOU4aEFto4x2b0dYqlgNmwOSPLKQGg1JImhAR9P1xeHrZVCMgtLiuKZ06VoWVfbING80rf3ls8dGfCpvN+3ndPSB71Z2fKJx+MoKzsk2YiXCWaV523J94GrkgHrmCtxJ+s7A0uOMKeXo9VRdfUkzbkP7i4D5flW7CUyS54V7z94cUw2yfJ0PA2114WlKnPeeHdSNa7PJCwUecySuIWk4MyApCj8No5B+/AFDTPG8tK394Dy5jO8em7EXyATFZbMLFyZrPAqOCZgVlx2pvgyzrLvNb3kCD2q6dfJ53BN7M1+zXT7scAZ6vD+10B57s8Wo9yIOLPhxiM7Umb2ybI22NGSPU/gTI9IRttOGNH7I1COiJSAMI4iLi31fITU76Rfr0cGyaJrPx8tL9+8ee7oQx8k39qIn1qUs06ZSJZxlLZCOagMqPsUmSWcWc4pmOJLhTKRLJMoh+6/R2FMS6COtuZZIRn15ZVvYUq48uZ7jPKt+GZyqW0lU2bG23CzF6Bs2PkbXWrmgFkscqrMh69SHYlybthamQHJcTjjsV0mR9cO0XQI5bm//fnNVzaBkuQ37ZraADmJKQeWuwzGv6KWKu92Pp+3K+sAuV4ESyh05mqa5bg9+EQoheP0OLUtE2VO9c0o//UvvfPKxYuX1Gla+Pa3pcSY49TD/xMlZpasPN9GdadQYJZdCzCt1gAgmWWRnYm/4sGZYyo8FSwfuFI+h3sajbOmwDz8Z1mjPLz82mtrFy5v8qyd8Tmqyjk55/X9P986iZdo5PnbKZWxWBZwQd4KYK40e7AlRB281Cjn4cxaimViNDR+WDmzJUXMf/y+8ud7AUros4svvvDChQubxNKxKQmV+4rlUju7Xo44BDoiqweMWpVyHrI9IknXaqnUaOZ5wjZqtWRfpoaVKVPOTlI0dtG8cn9Zo/zmrxcPoAtrm+/O+1WLp68d+Qd6PCPRyx+avYfTSEN8XiNXkvgRNQ2ZTqnIKpWWSj3wRWifzJaCUjQZyWejmoBlgubh0dehK+/8SCh/PHhtc8P3gJJP16SXd8rRKs+fmXnJVCONvAyHClfBMfTmejWo8wY5s8Qw4UzArCVtKWkoXuEzkHx2mKax5quI54Jy7+BL6GDt8ma9afAxajQYYWRoxiZGGLLPug9fUb8RvuxKIRDbcre4Wxx4ZaLpNpQxQbPvsjMbaVsOD5ZjWE6GUTQZzD8YJUd0VPgvX+7t7YHlxcsVl1DaTodZCsyWpQDwH7O+zwIVrlDyh+XtMMaA5u7OLlQMFk1Hs4TqTXyBnDlBSh/bdYaRnJGmwHwDSUi7EvoBJMHy4MV3fDsnpxZRY3aaGgDDRMicgSRHS/mdUIVrlvjYLewyzF5tJb/SLlKJK/VdgllP2jJV4RO7UkBOjzPB8vv796Io7/y6t7dPLC9uVngRY5QJY9ZNJhlQyJ9C+5lpPKQx0m12r14t4Bp0bxFNBrkLNw6q5epAfAnV3aEspe/IbCjVwWcnKRpN83sypaD85re9/f2v9vYO1t651DfRwGVqICy5yokiPcjAaNqDxzxRVMrdLhSAsnDrxsoNbwCWRJNxapVCNaqut6jnVyMrPK5EPJ+JpNCM8JSs+QZWSkFJFb7/1f4+Vsu1l97FpL3q4QcUlvWaSeGI37nAAPKMY6YzXrzgRZbcfM7eYZSF2ysr55HQgxovCk6BuYR7cXFDWKb24ezIyVwJLDOgjHtTm/Luchzlne+uM8uDl67oKbuwdPht/oExuyYx0NnwNFhObUtCqK689QlIkj65sQLd+HiAJZMFiFu4Ncvt7eCRaRLP+GIpGm3LmU0pSsN89YOvkyh/v379OqFcu3ItGAzTFajf4oxeDVh2WsQwvLD7mfbNjgFEpdbO1YDl7scBzOYtJsm+3CoVt7aC9rMd3NvbGxBwxtbLCVt4gmQGNIHynzhK6DdGicXydaCMG7NrAyWfRCuYVj7CAucVU2/E82JMc3CVxDRvfWgyTW8QXzGVKxXJRdLGPMarRPNavMKTrsyYZBomklAS5Q/fBbZce/2NOZIYs99kkmYLKIkl5KxIjU4b2OkfyQlQBh+tgmYJfX47sGYNMN8Ey6DMt0Bxa2sbtgTQDdBUmsc12payWErXEZQZwXwVZzqCUun391WFA6WSMqWbI9mOL60c2zmBkTuNFXCa1fJ0XvsSD2VtS0Wz99F5pukM3iSazBIwt9iVSiFLtiVpCluOR/l8Qg+A+YduOoISceh9sKRkyYulwKwHZ2aWMqU2Zh0UBMg0xkRMVxQDog6jBEmtwW33PMGs9opv0lq5RQ+KYykgKSwv4ebqidtyPMpRGBmkpimfjob5Mo/XBKWucLYl+s5/tJ15bGVTHMeDRIgt9oiIP+wSW4KnyVNCGGPGVFuDKmo203QUNYMaY4zdjIqqSlX0VddHihiihHYwbaVp0hpLpNNM1TpDRGKJXcT39zvn3O+5976lz/I9S5mSyCff33LOffeBLan+Vj1J3tvWiqcWZAl1CAmdPEnO9n1HL1ue2IzC42jaCnTrxh6BmZxoRd0xMCGyJMyFmGrNbCeeAnLlGbkkoONiU0mU0g7BlpIs59Xwibn0mI+rKXFVBIWN2eQFagEnSdgycSLVlA5IWj2FWdc6kxCabd2Ib8UJIcydyHLhwgYNdMLMZsscKMHJMYsyzGXO70jSQ/n5zwblW0DpPZhMK8l77aE8Ysz2Ez0leJLMmy1hS6pHsqWrPbdYmlDKWLOt9Q7KI0mYEuUNDcdgMsILRAmSeRXHWRpF6SL8FYlw6Sy9J+b9vU2KskNRxozZ7dmrgIyJJ+K2ZGmbPqlFfGxoYFhZyqZ7XV3nhNLs2Rgl6YX4woWSMhceuxAoARN7iGRGlnFPxp3IlRXmDmbKEMpvHMpFtfofwU+3wpRpxUiWr6ZeNcbstIdpnbxhz2PLncO2NJ6cHk+O92y8xbB8CiChp4Z7xpOSNdP3WZZYKyP50klZYkJ5bFmAKYlUZpjmF5lQMsKBcrG1JTKlLd/tr2pnRJidTfe2pJRld3PEmDvNqvIkT6TkfqgeLEeTooFJkMREvqwTZ94l1kziGNQdciaArmS6FJBA2aAolWgmlAWRzF+FdugzHeqDgOWPJlm+MK/We5NFUTanlSRxms9utBtj9vos+X5Fblse6f9LHVLE6+s3TCdV44NbbkGM191iWNbdsbFNrJmYSTtnKsqVd96wkqXHsQRH5ZnTlv+GJAOdJx260otwoGysvdo+SutvN5lSP4NNkuYNIL3isF/O4GGZ3Wu8cuShmoY3QGLN4cFxQ3N0uA4oA40NTeBPEzMbaUyQDMX4sYAZSP7zG/4XlBRNGXUlrjRMsmykK5uVZJu+uE5jdqFBEuHtc7A0xuSxnD1m7guihG/LsXolCY05mhODw2QJaw63w5rojUQAianVZyWzpVpTtRjOBMqrMXDP/a9QnqUjg0p+x4PGuCt54EGybFywOGAJ9+F9/a7gUK4ke5vNqby971nXFnX5GTMBY+aH6dtyvA8cEeIC85YNtw7NWG9OeijvqLuzd6ZZO6OVrvawT1fRl4uPWXwMUBpX5meZg6QqI8svSJKu5IFHUL6gtqQvzWvrNGYaJM0BiF1RpMfEBXv+r/4NFfH764UlBJbQ2NCo0pz2jQmY3RvvNLa8A6lS8iVsKWMhjSkgMTXKAXNWtsyFUV3JvwokDxrjrmSEa92ZX+s9Me9rN6akMV2D1CmncrLsGyeZWbRFkYZoGhwFpLKsF5pPTc8UJ4uHgfAWRxILIsuVClNFloJS1LD4+KuvBkqZcZZ5UZIiJoH68U2IdKUf4U+//1HjgqsDlnxpkr7s1EflHV08+qie7fCD/Mg8LHeSRxNU25Z6JwEJa4qGBobQZ3q+DHTbHcISE5a0vrQ41ZMiYSowoX+C0rHTWWLIkiaLTsiVjHCpO++/8AJQKksq7Mu+5ntBMnL0gVItvjF3BsycttwtassNGDJhS6c6XX6UPxLQvA00IfElFlDSmOpK7HCmKCdLHnYoSw4MMfmXDrCg/InxTVfSlposP3ph/vX+Jzl4jKQx+zrT/fIzasyeWRzK2Vzu6//TY86UyhMw64nz9oDmI3fUWY6YK28zKDGUI7U40NVWjiRGXlsqMGdGX7RnCYsOXRlLlu+/8LbYMpcxMZzIUtXqO+0Issx/QzR6qwE5tNVFOVHq7mDCl7eBpZXCXLgSLFcGHGUYNYRolp+ECZTxZ46ZwlsXRZry5zv+IkKi9PQjUCLCGyuAMp8x4yzjB0m+qJLZlgfDjW4khhXh1pniuYNDYxrkluftZtTJeKTukUcAUykqzpVU2JcNzpYyrIASLMvjtgxzxFSY2VXGO6EISiZLsDR1x4ofZMeMG5Ms03jib2B2+nzQYuauPDCmmSdOmMozXAzNHR1SkpTCVJZ1hqeQxAJL50ysuDF9V8KXzJY05hlxWxr35dBv2VDySoPJsjBfpjqa7nVfvp0iH7SYO++UJ8SD2bth3TqwnJwoVuG4ozjXKEjNmGB5+yPGlohyq5AtH8uULgUmbVke2BIzR4DnEo/fMZSMcEX5dunpZOnTzJIwU51o20XWmM1qTOtOBHmu5pIok5Nqy3W3DA+OzFVvTgwOTYKj4tQQVylL8WUE5mMrHyPKiC0phHg5WJadVk6UYZZsgLJpB6/XMlRwtkOoO40LysHSiSRlxn35al97iyH5eFu3rT7qSEXJK+E4Sb1tI8wO2BK+hIRmsWp8ZnrSBfgasoyixFKaj4EmFHVmmCWkxiyPsyTNXOKDxjhK1nDTWQKlxzJ3IceTNFxvKEmcgFz1aXMgsQ5mixkPcedf+dlXLywNzbHJgdEJY86ZweExE+drrDProjBpTIVp7FnDICdIGZZmSflpp5WQZRhkSa74/iUXSiZL1J0XFlwf/uxb9oTZn+q1JO9t6WjtQiG36nV8sPEThBm+2BK/T9h/bmLLOlW9FY7iSJymDk0JzTUwZp0aE0NQEuaNKzGFpIKssTFeE6D0aAYSX5ZYaxbgyhIWnThKRrhNlhXlGVjSl2SZRr0xJHlTZJQyljREd2P1ib3MA5KgmZDVs0FJBjCX1i8dm56Z63BOjq25BRz9MA9QKkzgvFFZ1ghNDLAMRF9iMyTLy+DLEiwdYZAlBZmSKPkMV5IlUGqRy5swu9pbjrMgewBSRZjjykc3Bnn8g8CWpK5hYBTJD5CUsbR+bHj0fEtzZnrMwYQvyXKVbIblY4hyBHcNjAmkQFkTz5gWJFRWVgaKqtnaEtdreVEywhuB0oqVPO7Lvp4m9+5nbxdIRlm2g46DxEoereKHJqjk/esCLQVMkBSatywdHkDiVE1MT4LjGkmYrgABpEF5IxTkyxqrWsGIjV1ROXW6wlRfwpZUDlfyc76ZmiGitBFeUUqUEV/yIVq62cb24836InSUZdHJqQTFII+9zZOgRiXEacx1whIob1m6Zs1WXLsZjQxbX2IQJVhaX94IjjKM1Ja1skDx+usVZUCzTIx5WpnzJaZRYUWHKOPJcgGKG1lmPPm86logXLj1vRo/Raq6JxLUkWQZ+WybZ8tpwUhneloDDU8bcw7EUqZzJgSURjWBgBIwoVjtKUG+hC+dQjcaGcU7oWwBzmSpNxqlp5FloLAr220L1NNpQMZZFmENmmypOpiVPHQW3z9JlhMbjSfH6hHh96xDeDuhgAPn7ZODE0iaU+GMuWqVwFzFKDc4gxCvqa2pFZbwJKapPs6WZRDCu8z5soQN0eybSqL0DzzaWVaUeyxPz9xhdpjr9FY+Jc8U5K0Jqng/sgx9ICtBmSo+Nnj0yOjU8GbxpQ1yoWk0hjthosS6Db40lWcVOFqYPkuQFGPWXr34ekgCvdyLcqVZEnJm9puhL06ZLcqvte68vQBtQgZjhtNla9PjLb19PPp4LPtb21ua0+YWM5mgDmUlD4c4Na0sh0fOP/984BwYmhzzo9zifOR2GNSL8ieBcxWkLD2UFmatDBWMCZYyCLK8pOw0GDOgKSRlZTblZ/lQ8sBjj+GnZWXJhNnfl+4yDSYmWT7ble5ofpz/l9W2BMXb9dCNesLTFu2IJsHSaGRwatNmRxIj0O2OJiL8SSWpNAP52VJRwpeoPkpSQ/x6W8ZBUgs5YSrNTBGOTigfSka4TZYlOVnGTz5k2Z9uR9+uau5yXREVT5g7hTuiCVvFhwZHjlaWas8h+tIjaWk+efuTQvE2x5IiTWdLLIlxiXQ2RZovy0uoLNdDO34rACUi/GlEeIWizFJ86EsnfqUWQDY3uca9rdW8zp0ez9wVkeU+CUrvNdaqNYHTmfNjx9LCvN3QXLFihY3xVcBpRJCCkkGugi2NynWQpUS4V8uFJmb+okOUsRqux/AKJMssLPP4Uiq7PZX3pOFK1cbsXREPkE7JIYBUoYbfc8/mKcNzlG2R04o1K5QmcD75JMLcGpNJUyp5xJaGpLoSHLGEYzkGSw8zZsyUpxSA8nNph4gyJ8uMvuxqMo5sbk+zjoeDnN8c4aXLPf2OaO06jLVAiQmcS8cmp0cHJ2MsHwbMNYhyYYnSA1vSl1gGZk0NZphlLYZRaXk5pvWlOpPSvihy0ikI5ddyDGeyLNyX/W3SI7V3dUtPRKX94sOEyU+3Jb2O6H7huPaetYak0VIZTg87mGrNFXDmk5CrPX4tf7TGc6ZlqcughD3LFSdhMs7ts9r8RYcofX0NWxIlWUKz8yWM2dGe7g/3lxjd/mF7v51jLP3ucnCD8eU9ShIElSW1BiwfNiwfVpZAaUWYFuWNNZfa6nMpmyKwZM4UlDbGLcQyOtM35V+FofxckyVRkiWU92o9fvChiloS1P6uKyLLUHdZvxYosRQlFbjyYcAERqyHV4ClwrydLFXAqCxFilKNeamfMxnmLmFCQOlAoiNiU4QHjYWh/FHrztvos/65L8nS9+XJownqCMOS7z/ufLgNcf0xDJCWJmASqAb5EiywhBQlYGKqM1esWGVhkuUiIXkjQOoUaxo5jjIlwgnT9yVACk7Rb78UhhLt0EsvfSQRfkZOlkSZ15dUrwfL3WGy9Oynv8PAnJhcG8gzJRZIOmdSKwKpM4nyUdDEBpzACJSyZ/BleWmp+tIpFOLgKeJHrvKhZDukdacM5Ss/S5AsxJfsMFl8/IsNAWlZD46pLT/cunXzPdQSkARLpVlJmNcBpvNlOMiBEkO0CBAVJlAGLOlMsESUR1DSmXzQmB8l9adGOFxJlIXX8ThL12HSmHuyW2ennlRjarpURw6MfPzG1KebfJ5LlyxRmJUCkzTJEnJx/uhVynIRSD566aJLNcbBMm7MUmVJmF4dxyjhp1sKQfm1dpalEVvyougf5ctn+1pti9ljcWEljyJL7x44aRY6dWjoaKuZwSk4FCGuGJdAUnywgPE6kMT0gvxKwLQoAVN8ucjCxDAxvgCjora2wpC0NBnnmjHpyrd//+wfoPzyJRvh/40vu7tSnW0tOJe3dSvNQaVovHeISZi8JNo3mRTQCnujstx0NDXyMe42JjcvsTJBXqk0FaZFeeUKsJSxatVVq8ASQ1A++uilnmqdDMlSTMuS1vT69bIvCkYJ/WybdMsSq/Bzj0PZn2rt7Gl53H7owDizV02HDch2D7Pc+ajiBGRti05dNPXxiIKkPh4cgkPhTQQ5WGKAo3gTMB3OVVdeaVCCI7UoDHPBggXCskKzpRVMSZpwpvHl78iUhaOUdki6Ifs21T/1ZT/c2CNupJrSyrLPlWpo151dkPPUoxPOHN+wdpnC3Lx1+9TgTAjo+SMjHw9MDz9cuVRJVoKjypGEM6+88sknr3ryKgi2FIzqTcCUGNeMiRiHhCWkLGnMiDVpykJQfiPJ8m2N8Dz5kih9X9obop7mJuNGkrTXwUWpcc2HZuwSZnmIQ6mPzYAS06hq69DAGyMjpHm+EJ2qNNY0IHVTlpgi+BIDEo4QfOk5U0BWAChgyvRI6mLKxPG7EJQ88AClSZZkWcD95aupVutG6vGm5o7evmddY7RxQmxn43i/MMvd8SurxPS6ZcvI8p61Vbgp2rrpk9ERC1NuNEeuA0xlialyKBUmfAmUKrA0c5HhqAswUX3UljFn0pjf/VIYSrZDirIkC8t8nyjC+2bkaJ4A9bSmusDRgsTs7klSu4VZ7p20AtPhdYrS4axaW1VVpQ3m1qGpAc2hYPlwJXxZCZCUeBJTpRhdnC9S0ZgKE8YUlsiXFaWUlzHf/umzAlGyHXJ1p6AyjqlK3RtAhBk70+Y7wEhSt94kdaQUH7KcKxQx9EWotcugtdhDLBXn5q1bNw0Mjo5OLak0IklVwJI0NV9CGuZkCVU4hVFiYfuC8V0Yym9+QJNOlLNtLxniXS1CsaWtozed6upne+n7smg6SR0RZpmkJiaFJFbYl1VLqu5ZYrV5swFJYzLGnZwvAXNR2JkAifIjztQwv54oacwKFJ3CUPJKQ5KloCw0XQZqbevpbE31s72M+7JoaJzE9gFLotwjSfVsAUZFiRGwxABNB7MStlxCX5JmlCXEICdMSFAGiqAs/f2nglEywrVJz4HSZ5mZ5qv92R+PW1/2TdiMCB28BxImL9WT1OBYQLJKfRkI3iTMeJBfR2MKSyriS9KkSinQxPG7UJS80tBkeUZ2lvl9KQzjLCmglEIeaF8t5GwvqYENzpdVsoFoFXkSZuVSR5O+XL3imisJ06s/ZEmSYZoBSKypXwt2JR+HS7KsAMOC0yVpRk7j8WsibFtm2PnMPchneUSSQksk2rxp0/btWzcvAcdAuCsiTCpafZwyBTlrT9yaqOgVYLljJvFrgSgZ4aazPIsoZ1vGc/iSKOnLk01TpECLj0LC5C1RkhpapyifeMBo27Y33nj+081qSj9jxmGuvu46NkWEaY7lCtJLmJGcWSrDahQfuqUzC0P5A5NlrhAv3JfP4nYj1dre1tLSqr4sGiSx7CyHtYZvP/vsBzy9QZYUUbrzD1hiRPqieYblPJAMaJJlLGNO6QsIvxaAkvpSbzSyoGSIz+owTpbdHR09zbjcMC18S7f4smgg3mBq6dn54BjL18SX1JtMl3RmNMhXr74OKZO2dCy96kOYTjSm6G2Dks4sACXaIXaWBdqSvoy/ENnVHD6TdxeJOkMNJlke7rFMoFVXY37yxrZt2x566CH60sDEEpK6keZqCXHZpZZf41C6KJ83T4xJmibGM1pz1H20/teCXfm1nh1LSnLasvDLSz0HUR3PZme5E1jum6S2gCX14ebt2zd9uunDKqu7nS3vDmXM9caXq1esXh1LmJBAnGdY0pgRmqVKc9CApDNnj/IbRUlb5q88VK73IV9t07uNluae9s7WvhTSpag1Se3j+3LXJDW2dvny5ct8VYXFGPdlgxwsV1/jSBqYcxxMFvP5mITpObMvaUFiTwBmASg//1OTpT7ZUI75bTnLS/Wu9t7WVKqru9uVcVE6SR1MX4ZZbljmsbx82eVVy6qwAl9W3X238SZ+WIzVasxKhQmW18hwxSfImWBpaM6XOAdNkqQxd4woSiyGeR6UjHBJlvZ2SDa+eUWWBfsyY6eudTyVheVec/nn42ApcjCxDEnSBEagxKgMYK6uvK5yvbjS0IQE5hwhOWfeVTpEixTm/PnizPnzA5iYhuaojXAsDDozB0peaZgIh87AxIqwzG3L2LPxOEu26qJUsXfwycJywrBcRmuGovwKxxKbg1mNWa2FxypgOWeOCXIoCjNgWcEw7wM/R5POzImSNdyhPANDSNKYRBnriEhzVt9rUGR2PUSOk9muPsviKEugxFSQIImfwIglAkPFiVmtIKuF5XoI6RJTYarA8koFOW8OMF61CJuixIQAkzgxEOHjoMd8ydaIKLPqR32vrMRJaM4qwkkyvy0J0hzIyXKXzCxn6l2MywpwQkLzCjgTKVMjXH15d3W1IFWagTGFIyak3rQRDpaQsBSOusK1/GPPkPgLwiTKHMnyBblKp8BSx+k5bckQz21LS7OI+dJnOXeXnbOwvElZGpIsQCCpMDEUphVMaeZ6lB+40sFUnHMgiXFJmQYkhrpSls2ZzpsVU3xH2I/zoz/LjpJXGu9rZ6kiTCzl6KHMfBYv2JeFsyRM50vVFVcApVWlMSUEmKvXR2N8zjVzEOWASYEl5fVFOybIj3GuBYgos0X4S0AZZVkuNMsF5emZUZJmyJe5Ltxm50ud0Oi65Tctv2nZ62/k0PYrBKMBqhyxKc7VlbSlao7IwnTmhCkXWZIezh1zw7bkjjDPjfJzRLgkS6qMtgyzJMoczSW2dGtWpawvRxSZGT5L/UPdwFJ8+eHzD+bQ83DmFcqz+uJqDXMlWV0NYxqYmjJNlMOdEGAGaXP+PPoSw4T5lILTFQ1zwATKXO2QdpaOIfYyNSX+Cp9Ud9+acFKYZfbmEuptejyrWgzMbrwU6rBFWEJqS2EJmK+98dBDGTEeLdsbyJmeqgNJMQ87U0lim0eBpINJolPmwEOE9CgK0a+f57Lln5IsS2lKWUpUJb4sY+HJXnmYLtNNx+VQs6C8rHsmaZTJl5AwRoyLMT/d9mZWbduECuQ46jLOXE+WhDlHhswIS0ytPRjYd3yc0ZH2Tx489afP8yTLUlBTfo6nUMQ4PfieGfzMZksfpdBMteRi2WFiHCzpy2i+pC9vAs7tm7Jq6xXCEkEuuriaIksfppKECFNB+oG+Q6806EtSlfXgqad+9Uf2CJdk+bYBid0glZ/yGjUGRE9m7y1pS/Bsbc6uto2ujisw2cMsiwWlbqjjEuSCU6WN++XLl13uJHVcYWIIy7svRs4MYELMmColiT1UywOUC0yE8xuUCJWuFP1BZ0Y+8KIRXuai2uz6F6fhTWpIcIovZ2dLjOxVvEhlWQouCChDdVxeBre/UpZhkgKSuuJyISmuvAIgIbB05kSUa/nB8o2JqfKMSWcCprZDYVtS578Hktmd+bWeHS09J3lT9XQwtBKQfozHQeZ/BEmcmJYlpA7cNc4SSipLFWhiQZfLooASOIUmLAmcMgzL89aDpUiNuT4W5XKUpDRpqjPfnqEluRmkxpV0ZhwlIhwsKetN9SNpYtGVWW0JX+a918AkS6MoSwdzRGNcFiYVNqbqbtA0MCGFyfqz/pr1FzqUF6k14ywDIcK91jJsTaAkzAwR/r2J8IiAESss/UrDqzGiICmSjNuSbXoelufbnhOaqHemJEcZnsSXGucK0wN5nsAUSZRfCJhOQfUhzcaAplxpMFvSkTLOB0IqXs1/fP99h7I0N0mhiC+QE5ageXUWW4JmTlsKSSx7T1RsR5Slgzm+AYYMopw4SVJZGpiwpUQ6pElzvbJUZ2JdaGlelCXKXb78WKDRisQJV0qupJgzmSzxsCy7JynFCJ2kIwKygPMjfanNkGxhlgfsWkxZlqzkpBn25sUm1C1J50yQRN6EYExIYfrlB8sZs7FRbjkGw070/44BzpwZP/DAkqVlboBjJpJg6aRBDpoNIBlv04EzC8siM5xSrlpjO9BjebhhmdR9bDlt+fKHr732zjvy7Gy5Z0ymTJDEDGgaomBppCwvFJYXASZZMsoBc2g8SJaUSaB0JZ0ZhDmTJUgCoh1sK0tJEpM6XoZMoRh9NpHHlvTlZX3F1D4+y71Zx4u3LFOQL7+z/ZlP330eD3bfxIPdT9SapEmYwtLRFKDrwfI8pQmOmGpMpelLQWLM3zE30qQz2okyFOaf80pDUFY4iILU0cSErrcgFWV5BOXi4xvADyu/Lbs7O1vTqe5n2V+CZWuI5U4+S+WomlSWH764bdsDDwXaJiBlXYBlfliQsiiNc8BUmibGwfOiiy4SX16Eoc6EBKWwHHCNJZeFezRRRp3pIvyjj4AyLrEkNoWpNEnS8WxwubIhqy+Jsufex/FIt6Wtraeno6N3o4E57byHeYTHchdh6XAOL7sZLF8XgtTzasuA5RUXaJMpirNUkhe6IAdOgYmceZGQxHJFCPmycWrcOZErkc2VLEC80siIEsvKfG2PKhTn+J53UMRGklTElpHPGrRtsSwpfNaALPehLS3Ld9SUcpHxxvOffLJJ+nUspYmBHT+A8UyFySA/r/o8lHOw1GFQSqwbjtgp8eUORne4v0wcTXhZChBRxliq4Eod+k1I1GLMhsWKEQO7Z8rM58foZ2CMMQecK6EjfZZHePlyaO3N0MuI8ec++RQfHHwNdQe6drkE+bVCU4lCrD/05XnAaYL8QiwaE1KWOlwJmj/I4u3XHT04UvEw1ysNTZZZpO/4Q9gcRMKU70DT/zWGosTEYrKMVZ5n023NLXjTx9qzWX152WAxxc+5KUtqet3NMCYmpL3RtddeqyyvvXz5Bcsvv+ASG+nGmFhnCs4zA5ga4zbOAfRCI1QfiM4EzcY50QOPg0pXZnUm2iF8Y21pBZwZBwovYoEnJlyJGYMpJNWbbNL9ZEmWVDfe5ettb+8uUo3Sfucf5rM8spgaqFeW2IyuxQRIHWB57SUKEjF+DjYJ8zMvuNixhM5DoFNAqT07WaoxG+eA5LxNE14N9x0KlPlgaoRXCEZDk0jBEcOoXFmCJnaNbqsGTA/mQt+SuRoilvEtM94R8iCf5UHF1ODYzUbWm8vhS10YCPFLLr/kAksTppRdRZjASZrwpVPgS0xV4wRrOInyOiOHvn1fvnS+QkSOFiWmJ8tRMApMLAfTw9kAfrltWeSGY7nRY7n3Xh5LXGBSo1sMSehmmPJa+FI4AiT2Sy5BkIspsQxG7IjyM4HS4jxXaGqk05jXhGjKwNRLy/gFMHJlXpRP46KtsaIU+dLArJAh0wY4URqcIFirNCFHUwa0ULZjZcg8IcuRx9mSLEc8loeTJYw5l7+ZmbzZyQY5gAbevOTDd5759PlPtl9AKVJD08JUY1bTmLQmvWnbIV3c2Fdm19+knVlsplMcxq1zITFuEBH78t0IkfRCzCDDVPlscWFfEvu+1dIOnaKkg8qoXTE6jKLMVFst2moZ3aYL0xKiHTpGgsgEQcSdxPN/zjnfc973/b7O4DnL+5kxN788//M/57zL+fPXlz83lE4E6eR+gR5aypv0o+RoepQ4xIVHWN5asOX7b4qlfBnb8vyhfDxVT7CMFuT5mdvlSz9ckuUXPaOtU1vWcR30QcCIAh0PlpDCnCS9YpZKQGH/N2lOLRxLJvFfiJIRnhHfrxRKyaPUaGnF5A69MoTWHcn3xV95+qXXVr/BNyBlTHIUy7mI5aEFlpqsa4KZdCZ8eQEW5R0fgKLXR6dKyEEEaYW+RDGGLqUnfSmYA3Il5X9vy5U/f/+OoTzj46IgMyhvtspPbl5xC0pSdCUaTwoEyVtvZXyv9W/dP/fKGn5YXUDFEtNL6ZDopWdO1qW5ewNIa109Pa3tHW32uLVIfrQFgyYFjqdeZDS9MVk5ZC4NtkTJGvM7RHjBlZoTbWus/OVXoHz77TP0nGERoFCBZUEYMSOM5xpJcoQsvu2sWitH3npk8zNkyQ8wP4fX+dY2t2RsOR1PL/cWy/QEc+D+4Mqu0b7JjnWOojh+04Z9I89SoS5rosKcgAmaciZRFmDO5otO0uXKEvH9B97fAUo+GFcKp4PoUXqaBClDGkuLbUb4rbiGQ/yhI997Te+O+481rl7zRkuCJZ40kHYXyx3txTOEf56FO+sEOblOmxsPWQPFLd+NnnqOianc+/IkFMvmivOlS88GyKVQ8SHzlG/JLj1i5raRdH5/y+L748cBkZVAWSW8mW4QL0Tvv3VGlKymG8CRlSJQi3GCtI4voaxd80rmmwbPvLSmubPFoTy/s4K8WCo0XHLA3B9/RxnNBrKcfMiLHL/5YOrH8Z6uc6655hwvYLRGW2LQZCoXTkAkS1yppDM3Kbrlym2hNFN+tf5tkPz4LLQL0RFkoEoBInDaJRZx3nCFFRNJWvMcrXiBJRoeEmxpeXXNa+E7oor55x3LteAUtJAs5cvdF3jK1s0w+UwFlN+0dUyOAqJ0jgFV7kE5Hv70AknrCDIFk7IIj6bnSkEnbCPp4BX7r95+G9vHRpIgWShDWWhEiUpbFmTnDrDdDIxWJcY4OsqcWX9k/dHUq8+//tpzsUPxNNH50Bxdx6IpUdjB3Mv9HfshsrS3pZo+mOqDG4Hv2SRJKjEvIkxp6fGWgEQzdubsmKZBcub8aefPP3jeKFBCBo+dI6lf5lD+uhlVchF+g2MJjFZi0Zbem7RlfZhbGtKWlubXX+O3l8Wyn6ic+w7VcKmdIv6t392Aevt6uu16PWQMBVMKxrwIJSJpzrSpUUApmOjPHCBH12nrd96k86sdNwqUJAmO6EvqZrRsjNsndkETwkEjSRGihINXQbK+vh6dFuKd9jbk04hxQ4mdDbIizMPTLA8LtkQZWEaW5EiUaZgyJiolX0oK8ijO0T5MLBu3x5U//2rHXPsAjx6CZZ8BSUv6RhlFXgiTzhRGVJYAEqX+PjI0nolp+nRLZydHy3hnI4+dDbLUpGjfvPTtxBFH3HUXqndllmZsTCn2JWoIcRmTNGdHojuOocyL8vs/6Mr1jG9Pkj0uRXEWvs51HuoNdKSEk1ueig5iE0YPEzTrCyJIVs2HoOGNorVw9zTLA/NSxcztR4BmBJNdMWMGmBblnqZ4AmOG5mmX9ROjAnxba/A/YUoGeIQyhHpG51k1gibSBMu07PAWOdNOBbVKkJB1BZRoxx5dH08tqbkCK6Sews6GVuR5aeheoZQxny3qzESYuzFTOEWzwFILHmXweVH+/q5QCiarK6hCyUKFa8KUGi2fIkfZ0pASJlGiEiUbWKLGLAdI0TqmnjTLA6K/7r+fvgRNOlKaJ8pPtBQEmMSpXB7TNKCXfUqQCnKoYr6R0pFc//YZYimginnFu0gKZYIl5M5gI01jeQdR0pNUIshlS7EcyUuHB5YK8v3y0lgDWCZ92TXa2telqZFYxjBPOglRfhJoCqdElKf1y47hxwmflTZlQHnm42cA5uOoMcxQ+Igx4UlCmY5yeDKwvMMKUeJwaom2pOrgS7CsQ8GGRkA5HeIbrWLfQhrX1voCGfPbmSMIE8Wc+Wxv39Q6TNrbn30WNE02x5RO9DBhS4BEI02PNAlzi+ZCmleWXn6/G+JbDP1P2ZJvV6LDxTtSVMERJNlTOGeEAk3oDsCkQBNdMZZvPPf0850tdQazjiCptXlp4Z4pW2Jrfc+FUfIZQoBDDPKuvvZ17iMHbQxysgTNZyOaRHmi4fQKINmL5uhxiWf6hbJEfHMqBJQGEJVPIKUjHQxRSyrQ9DBJkzDB0FgSI0AC5R0ZmC124LhtvgEmTBlo9uelQ33qkXbCtlte6kfyMV3fNd7eFj68sWTSgt078xw0GTPQTMMkTqE8jY+0bV+A//TnH3aIPV0ZlPDl6fKmt+XlaFmQ7OFIVOuo21yPo+0A1CzJI+hF0qOs63zyKMoOSOqc9iSxSZSXDtFwqeRzcF7a3ECU3ZN0JGE2tY93I5ejUiAaYC5GA0ZjeZKxFE3UBM1wh0c1X9KVvxpKuvIUcjwdDfzw2Aw58sL+crE8jy2t28677YbLcZSDESTLwPOOICYesJQ1DSTa9CtHBeHw0lc6HcuhjXlpb7HUgLl/PtLEtcZytGkJBJgdkwAZBIwmjZiLfZiTpqQw9zC/kyX9taL08tsPldifw+1fsmSFK60TT6AMij4nxR/+J1CGY0bQsacpJWKMSNbeVwuUqHV1LWtXvwRzUvhYcAhx6UClHvly99QMExpfB5RNbe3jXZpkWis3ll09fT0B5mIHEzEOlQrz2XCHhyw1RS+2J/TDuyGBkySEHiwJlSzlT2v2liUrvSmo/PlEOH5ASIFSvoxwHnlfbS1Qugg3AWhLM3YzyfM5Z8yxvLSXbBlvFcUD5kCDj/G2ydHuI8qOAEEJIMvPGZ1at6StJ7BcDHMCJFGKprK50RzY3p2hn39/USjJkiBPMZZssGagycvlVvXVniAPlV8lhzefuAGdwWQ1X6JJsGPn66+vra+F6muJUup8A8frPvn6NDc2KvLSfkVZ7nxI+H80K+ru6S3DpSwF85zx1o6mhx59qKkvDJkQjekUxbnM+aFA8qK0k54JEeXL3pVkaT1g0pans/G9FkjhXVw4deAJCtZEpStNnqNUe0ftfauPOe7TV9a0wJvGsjaGef6xLc3N0yuMZXNeWsDZZZblvolZEZbkVBlBloGgdbRlD+5eUE2j5YsFEzQzMDVp91sa7OTKUvEdUFKPo1qzwjg3lGgQwxym5JvpxVk6lArygBLd3bfdTYo4zh+X2je/5depX1rTUldLkCJpbcX5K1ZYFw+Xe2i4lMBy5z0qALEij4Igt2UkZca8HkQ9yt6+MEla0taHkZMQrTvRfqRYhmn70uMV4Z5nvsSNCB/fL5MkMg8gFlDqCW2CJMvwAyRL0GSjL9M8gRICSoOJcfJ1O2aCONe20JbsyBI0PcrpzcaHmCoqFOIRSswwdz04T5bUSEOBZRlwogdPkmwKJFt7n4XKGeYO5onosmFOxfdwIQV4CuUPQPkuTbke3DxNGpOhTqQRy0DSmlnT0WTvENKYhjKpu9EA8W62uyHgrK1tef41f1zMp68931InrUCpWwGWaJ05IiIqzYjSQb53RUH5/DCDPPC8y0B2jXcEkOvae8rLny2HLKkvDlFOmmIpmh8CZbSbXmJe+fMfLxaGSlA0gSZK0OP+koEJjGjsAfLSS4Mfn8AvP1iykSMKeoooTRgjqZbVGwPOVzqnCXKVoQRLQwn105BeB4plJJsVLYxgDtwbs4S6LN9gtonSNtpbXn59uZkSDaFthSRZszS/GBNKVKFMmfIxoLT4RoA7EaO/0J6JNytxSYumLJw5cClYFkZLu9xJlncCJ2pCtUFvruVZmjTnmulVxFlgiTYSsdxrZ7DMouTShxHu2sj0EZG6+zAFclo3OX49VE7RnIufBUmhLMS5kvlAcmuoovieEEi+iKESrlx6pkRbWh+ABnN6opIL8ieAE1ENjAbTsPIKluFMOxRIGH2ES81rng44V78xXbfKtMJrGHgoI6oQLxLkYbzEdeZaoWxtbwokW3u6y8QSxiRMRTivXoHl6HGapSvAUyh/eBEB/glR4l6lUFolzseJk648E0mISsHERyiswplgacU6MjVPBpk70zAjmnUW6q8XaL6yts5IBppzQBhSz4LdS7M8MFchDSzzIHsm2wLI9tHu6y0JLVokmhbqlsJFEyVBk9MhpZ6KojcaX9RQqeeOEkANJzqFO2I8401+bZOfIo/lsXqSkEhmvVm5qraysrK+eTWyOvX0mmbihJDFK6Q9dtWtnvSAuesBBt2X3IzbeBttc55s6piEJYOI0gsoUSlvzCTMsQJIa1w4ZqfnkEO59DSvkjyBUbZEd4pAkmVx3SmRJYo4NtY2FlB6rarvfP01h/O4jaubvTGHciJUcZBsWTSTS3NXk2WHJ9nXVRYJ9ixftEiDplDGcyPuHH1XmFOW2hn6HkkHrvx6g0N5poFEScMExVDA1CASJ6s1fFeKLNGyJMlSJNkVaDaiNjbGMOsqV6FMv/HSp96bK5xiW+YOnI/lngsi6psnyHKyCdsbU6OepLQIkjMh0VSUQ9zSYNXCMbXn++JjHCqJ8mTvSeLM8kQBUnSnSERauPALclmWqBmRIFGiGEQjiQsoguYqu0w3r37aJknP1BHlTGzLA5TFMzAxXd8jxu6mmF2THa09uKZIWpQLpgJdYe59ORA/ZylXRjcaHwNK7mVstTtsCnG5UyjZFQway3wJkkWVBdl4591ojeQYXFlZUK1hBEuqcw1ovla9ohosNwmPsnjpIBf3sI7UajIOcjrz+tiZiHRCDAVChIOitjOKJJ3HiJLxvf5kp6VnAilQWk3izE7gw6dR+LEzwMTFI72E3SV2ufMS4MMJTS9EMd6IM2sB0gsDZmNlZWOlhkt21SioncOrqgHTMo/wLDxwfpa7LozBTyD7SEbSmrx5fTLMuTiXyPLHvOeosTJrSqCEK0+EK8HxNOI8k/4ERs+TTdI83kiyEiFosidBXFDw21heYofaBZg4RhksHcQaa4BaiWulSDqWAGkFIktkHmmfnZnFS8HceefDY5ZDVxfxZff4uB87jSRYSohyOZMwTxqJJpaZsfKn7/967MXHMFR+veGrrScRpQOpp4/iWC9m0PC9nsvct85Ikp/d5OeK0fkeJ9pdCprEyYYKpDWQJ0pfBkd6U1oHVRrQFdXVq/ojljlNLufJPjkWaGAiG+SjHU1NU1GUJ2FKDqa+0qbbZEo6MCUT+IaXX966nk8joFAu2g2iSe5ETWYiOtL3/HiplUtOIUEv9xswrUo1KESJilJZU1MZND3X34mLYVzF6jX8EeAEPHvtKpalp5jS0L2pIB/v4ARJcS5r2iVGaeXD47Rjmc8uvx3KTza8vHVx4RY6OgiO5MVLzhTQ8B71ZSzsKAczQJQIUCRhRZox0DSFGH8Fn00eW1tXaX6UVkwkbHnI/ChhzF0TU8z+ZQLp7lksEUuA9DR7Jvu6iJM0JWxpgGQJV/7qUX4NlBbgnia7oPXE6mCGJvnVpb6CZATRXRYRTOG8EcUCnGrEYf6kSMmYVfxU28aBaTgzpjnzcIW0UCG+fdlnZPjqiGQrSJqmemRLlK5WLIzagzdjlNjS0M5QJukw63Co3OpurklM5sZRLKGQ2yn6ks1ASiCJmsXIc+2gF1B9dN/oIPaPfDtsRBXj/Z+6T3qvHq6O1Z/IPFo/lg7ygxOL8kHtFHU0RQsg0eyZsj/vcCwTML87Tmvwz1JJx5uSKE8USsEMOBXqkmgSZZpmcWPqnFoKvxzMTnt1pH+WWOFJ8+XE0Bho0pudE7JlYs2jyWUplm4XM8dCY+JRTKq3vcnvExlJqbvVbXxMEiVYiuao39KwAG/KJB3IhsoNX8KVYpmlyWmS3rjKShAFM1Q2oaSMIkFCBnPYvVE7XFNTRWfWVIHnxBDinDT7WwLLTUTi4fBGz/wsbe1ziEdPnri5S3X4vctuy0Ay5bj/8z5gJMwoBW2mK7VwjE0J0ZQbtp540vFLDebx65euJ1PloIyCIQPFM0UyRdNXHs3kgpu9MEKFGOfXxD4dmOGYWRU0PHaCi/Th6qrq6obqVQ+TidOCvTW5LCXLPgfmHEdq84xjSfd1jCcn7N19zpQdo0BpMF3vaH5YeLL/hCXJG43OlC8SJQKczyK4lwVSKjDk2Gk19mP0oyhOZ0crQhkrjJiNQ986a87Qk66gTsxtJMy5amooJ4t5WwpmyeyzT+EfaRuzdV1Tx2hqJdnjTdm6CCmIIkxO2stH/c2yMEXXjcYYpdmSAk0405QMeA2a+oKHcFqj0jTx/U0jeRlJuqrzk/GTtlxeU7N8ObqaiQFaM98/UbPcaHpVVlukb7QE1NAw8U1AYtf9Mbmcj6QW5Qv0j7CN6VJ5b0+3ZuzE6dN6Wy+nRp5mwZmM8GyA05R+qARK3amkBDKaIZGmoAqlZC/8x0RB0T4bid6DhO6JSa5EW37jSgO5HKVxeMS9Oz8EkoUwB8OJof7OVRbhDbClLLbXnkC5bZaar3ue/RwxJW/L3imX1ie7CRI1VvmWkMKPI0olHe/Kr9/Z8OViuJICRFZ0GYli5NAAEKUgfG+TH950vnTiyS2X2NnJl9wEiCjWr1wJjqigaOJlYiB/AhP6RJVUjVLVAFU3THzkiVAHpdc8pXfe9ueICVk/gq23tGhKN4KSZAbmKBc8hnJJcqUTUH69YeuizE10Ai1FE1021vFDzrxHHysOV8ADSLrRiv3GMd/05I0rgXBljUOJftiPmsM+wANPx3JTbEttAm/bmLvtk4s01pBBOTrlwruPpgw0hbI3rzV40pQaKsujG5WoniQvVrJAKeGkSBP2hO4poptQKcc0+o0gB03glCZcQs8PTFdJjmTDzEcxkcNky20bc99cLLddJPUiEVl4t49HJHn16mKEo+abons6fwklZpWL9eCrB4oilMWVBkqWRHkPa1GcN6W10mQ9WUqYoudtdjQ2POFBsjNtKZwXjn6PPbcXJUfMvdw/ZcnxZoXEhQ7nmsZPNOVMW/Aw7TQlJ5VCuWgr76uhRiyX2lRTmh+mgOJrZwBa1JziGIsg0VIokcJpTY2aDSiM8ZmHc1LF/ttjSy0k915QyphdfW1uKTnenSSpZD7uH3iJXPmL4tu7koppplM6W1GaSaAkCZZUEV+iJEnKm0mSVrHe4VuhtGYDKnBiPgRbSgt3236UO2RGzBFtsIf03RpICiiLRfgHWjgq6ThxqCwrT91AT7gTCE8KA2dJf+rTKFKWJiA+QnLEKZiBpWgK6Ey/S+hzgEmU0HewpXSIbLl9I+buOQm3d8Pe26gj2d57RJqkNjSn3LwSkyE93UJxW+jrL78sB8OIppWg9aDJojBfb0gzM3h217HgSo6epx0wQqq48uiwi8EUx7GhEiV+iCRqwZVXXbXcStXw5jDXBMhlZssEyr1oS7Lc3hFzj1ykzWGLo809vtGtKXvGl+MjR5k0GfrTko6GyrKysOkelLYmR07JYSw696SuC6EOjihBF1sxfKlj0kkzwLQCASM6XKqszIw5a05UASVgfpeLpbnldo+Yey5MRHnDXQWWHT2as2e1aDMDHK4MSYcchVKbcjFNmZPOlDUV6MVo0pfsfIhHn3lHuwn/XTjAMiDFdflKLwBEA0oWCAkIRIc5ag5XAeWyhh8/SthSKLePpdvHjOXvVvS0rWuFKbWY7J6cVHhbpNs7PAxwTSqdXNb5crEURXpgKZ7emsIpi/pNEG9IXtiDIQmyEOxN15GlxFBfOTc251AaSSAMAkf2y5ZNYNTciKvBbIs5LFAS/xcj5m6YF0naYc/c/5mK0xCf/+UUPWPKT0ByUcAYLlmYwin5RabbTcKVOO27cWgmehNVokEdSbSkbA3TP3jVxSuvMpzU7Ni3Qw7qsquWLatCnRmeAErA3JQYLff71yjdvCgXS7d+InH7cl1XNGZuTIyVvxZHKaWTUBZoBqk+5GE4zyZS03UopHkyQBIjCmtKN22ypeCmlVeuvNhQGs3lm/BU+ZyhBD12xMj+o4QtD+QG0XbD1BZHOspT6rYbPQlfdn9QcKVmQorvRembvuwTOLMrIa0vdT278FEpVHIMrsQviTyzGhwzmP2DoOg12M+3QGedL2NVbcn9D1sqle++IJPLs3clm6Zgy6APbcGTX+IfuUqj5M4matacpSMdLJNxjoYClGiGkU2fd0dNwswG+ZUXzxLmlkHD6IAOj4BlxcDw8jTN72RLv3qELf+FtCmcizUwkULpJu0RyvG8uTKgfDHK3w4lYEIxRauKdK2FirxvJQkrCKJJaZCogaRQojmY/QB3JZrpw818e2SIHKXBb4oknn8Nk8a09CPNhSjXAghZXSh7NnOsdDsZeCUiGioNpSnzfIdykCSO8wElRsZ6UmmcpCmQKNDsWM7GzOVXFnDODlQYzDlkHPGsshwu7bObbPmvjXlQLhZuSgqlm7X3RXP2rg9sO8Oh/PVrovRrHaFc5FmKZnBmyXFTNFETLIkyrRDoD3iUDxQwUsSJ6py56Sr8URgzN1UwzmcjmB8mVzx7/uvRMt7ITE4ytWHU08ShsjfM2dH1dhQWjr/88QkYFgLckww0QZL5nJ1EnB4lO4i9aLo+rSxM5iA78Iok7UBQO8cfHRVg5nKWgDzJB9GGNxvNjcP3WzJHd38S5YK9hfLfs8xGeXgik2MlUOpuWld7DuudJWbKvzd8TZYoQilt1bOvsfQ+iySYkdIcMzR9JrLDFtHxcO/rAJMcJTgzZ858EIU0A8zNE/cDJDT4QS7WAbuJ5X+CuX8utS2svMNVOQVf9nY8jIVjkyWdcaB0LH3WCduaMudWwszQVJwrrZekKZ4omXgHRDT0F5MmBJr4lYKZy20avPLBB42mdfb0VX5k9n64EurIJWz5HyNc6Yebb9KIf7miq42PHQQB5UMnuAD/u+vLDURpJDVUUgp0smRJx3maJolmlIQZMrpw8lQ7XLwIEZGe1OAIszkoOpz3owzhLvZV95s0WCa32v6jLwlzYRLmRDzLVCYiSjNl95ewpVB+KVdKivTFWRHnv/WmsyZPX+OFrjThF30pU0oPDg6AJcZMknzQIZyYCSg/SubwXZDDxfI/RvmC5JDZUATl1JLcMcc9ZCjLyr5khAtlWTbEC9ZEnyZprZiKw2TvD7FDpXglTTTAJEmUNElo8CNOjcAR5jSCD6Jctcx+DbYlI3z3/2xLPV608y6cGEn9mmVqfvTwcZhX/vQbJpsFW4KkR4lbba2EmB02qQxNqChOMSVGCTwJEEALNA0jQc5u6f8QKLNADeYAszlIOtGSDmUyh+8rlP9RLsq5LSwNp2D2YoPjBMwr/8YdINoSvkQxlG4K/0975/PaSBmHccTqYcH20pZQuku3h1x63KMiFUT0nkPxkoO2Za+Bgqey2EMLvZf8CTlkSGBymEzXFLJudkMOQYiH1rq0IMWDiopXwef7fd83z/xKXG22P1afyUwzVj18eL6/3pnOVPXmjkx9aPVyNFnYP5bPxw6kPKtYt6hA0sA828u/OP7ysyK+JlEC5vO8FqAEy8/7e4k5/JIsIc7lIwdzHyjz7wFlU/pM2BIsXXyLGv1VskzDzKZpeGYEutIESUMU3nTPeMcmRGNAjTMfy1u+25o9i0OaxWIRMFF0juHMvHWmhrhKx3Bqju3Q5Vi+ObWcj+krFHO6sra6uvf+6k+/+tq1G5YWpSosy50ypJeEKZsoq0HCMVPAKJuRwQmS+KSE6nO+B52BI/gpzKLVTsKZtOVFHOU0u/RLG3MqEeXPvxjCbMCVu5/s/tm1neaz77777Xcb3ypfFpPqTfk6ima2NxntWUiFpO7ui/rS/nQqKsy2GPPpcfHLTz8rgqO68ksHE/uxganOtChP8zHdneKSxqVhzt7Lj1gyCkHqo2969gwh/uznP/745dm3K5ZloybDZteCHeFMN6Wzqsft6ZAWkkA/cA+FNc7UQ1Tm/d7HhybKi07tF1hwE5SfFdWZJswlwJUmqntMi1NvsR2aAMzpRDF/RJb73zSHKL999usfP/34A1xpVTERzsuU2RKSYIpDMtIdznjMA6KB6WjK6wfs+4TW5AcOVOtIohwQBSfM+X0+L6egKR/AfCFloL2zDZDbj9rV/IRmx+z7rqfYZcZX2f162fNXnJ49+/VHzD6Vb91FyqZGuP+AGgVzdBniTxz4RF1QZMIEQrNLDVrDgTDx1vnBGVgeHRedcJp/evKZhbmzvSOT9/f4CZg7O/V8THPSWfK6xCRS5mI+AdM6s9Ft4OiyZRcov6mrKxnhgSAcbiO9+a727hnW1M0dsH9cUJTEKYXI0nRM9W2g4In3+ANnW4zptRnje/m9vXP9vr0jh3brov1oWzTo5+NakAgnyEnA5PIb14yS+rb5DVRvrsQivJK6wWN0TR9XhohVHxJJX1KmNQJGoSnbGjJmkVHudHEIlkdPAFE2aGdb9Wh7R3t06m3cWvDmJOoOFzkkZSaK+d7Xm6lrvHVhGZrHQ0mE16W1tBFOXyrMbmM8zfR6XOxCcEGURXMAW4IlDkqziENxrYgoh0yUr2GXpmfvRRscYUxBiV0P54qSus9kORmUXMuMKXnJvCHoymHD/Xm03y+zhsfvLmz0M3tO/vWAMh1d1FHSsaW9OfD2j1oCElKYTu1TreVFpxbKjZ5vU0BZS6DMTRmUk4OpLAEzUcxfJGD2BJ1b1XQRXovfcmRpSgNfHRPqOHC9OJNo/AHv7qn5F/IutoG8pjYpjfJz06evF4uDE1BDCo2xbJtxh5rhmuVkYfKuTMKMjubdsqy1+zz3bJeezpdmrnzwdyxH8iyYI6U8heUR3nx1jBBP0Rx4YHl6UXTSqM+f7WxTAw7hkQs8ZDlJmOyMsgpQUNV7OJg8NeKJMkpTsJc7epJNU3cmTgVqn2lIhAQ5pDmo7+/v1d1bakmyCJga5cfr60X9aGeENnN7XTkWgdJLocS8M3lbjuqMnvJujlCTJW3aYYSn1FPHmiKEfXQD73jacf3AuhIbRaRQS4w5gC/TOtmDzhHhskHtQ3FqOlfyWhmT5YRxEmZMT76gL8sVomSXHhNn9BBfCHNktLsqpIeCQUk7JqTFB2/x35Cva4WoM9eLa9qxt9YMyqKBebZujTmo5+OavmtRUpMOc17/SY6T3VpnheqLTTu8eh6VWtgfNpscLmv1MIWTLNWbBxCeOFMo+D2vB5pJnYPl6QCvpNYYJ0rsgyMxYnFt3al9cj4AS2wI8HzClQblpFny5jf27H93B5yZwxvu6rkfNBu0pXDuG5QuzpVmT1qoKEcLkzJBfoCtUNndPw0TIOHH7ilgXoDchq057YHjuWlqORy5hg0IRdtFRVlNolwCSs47k6dpYN5LwvwKNw1TjPC+a4+k06xy/OlWhZkjaZslSPvTMJExcQwqHcI0R2w1vB2w5iCS5sc1aYuUJN7wvTnwjrwAGNdkN3N520S4HsET8b3eOcwntGxRvmKYaWc+/7qU0bVXg1jn6TmUWuDrjWjrbr42lXGqAMk9IhWLkkwPKnjZolcoHGDbiBhzo7MPdTYKxpgXkj4HgAqWttwcDhQkQ71YsVWHSufKVwRzljBjjSYVlsVhRCsuHZZ0sAEcdkjWmOYX1SDVKFXkP45zPMDekfcEAmQBryCACu6wVgW+c5AsbBY214Ts6QVIroPl5nrrVOdygKQGtkOnpq0rkzCvJsyfumUj3rjlNYhWXDqcJStyxuxJX3bKrPyjWboY9z08uHhwAJKyR1SRIA/sm/wHhzjzBptWa/19RPnFelT9lCvnR+fKyQ9As4spmI+PGeeAAnZEWxcaDbvioWeVrA5eFuh6DPoMloSJTx0sKwdQnGUhKIsx8U1YbrbEmC3BiG0TmVGMuU516nsjys6rZEmYbI2SV9Q4AvUSc3oHNUgF0ByHYiJk8nxAlkmcNbCsbXwoJOMw+4JPUKozD8WmzpeI8v0Yy85pPtUMXQFKwtSmneNket0o6IVE2SiL3x7YO+IariFKO1OyatetzDH2laVUoYRCsKwDIxTH2d0FvtbGJmgCZ3iq+VONiZS5eX54NhimSs46yRb9Kli+4WAuE2ZyoKSYLd2UHkgu7WSxDMSwjZQvDcsHYJng2UXxqTYPnMhyTWaf/kBMiY+eHXY2hxoAKD4QUdKVC1fgyrQz59POfI44T0oHxl4s4KsPstTRp5uN8KV8MctHeIQpdiioopAHDz90JKkOjHnU2ShpnONM0JIlyrk5dlz9pmbe4bRzBSLMBa5n8k+qHmXakq2mpwE/fP5JrxmbLOsPRvgyVtyBEvJRfFY7eKC2CfFOr2lRlnxpi2pCEjxLazJWHrUdypL7UkujvDd7Ra5Mw3xnJp8uQbypkNmyEiPrBXaybPSA2Y9OlqE9yfKlnlmYqooUH/eyq3B3vxrE2qIBvgAlQtlzfRG1HlbT8b14hy36FYkwZzNgPo+vtndWoeaQbE3ADO/LrutVSqOml76gQV+6eVP3h3haMSTFx7MsD3raIW1gA0IfYb1bUY+WNksl7YsC+eacuV45zacElFfuSq4avXVnOZ/S3mNjTfaatdhAVHZkdTCvuiAPeBIXY9zRFIFmAHzlhkGpJq1u6FsXcV4HTA+uBEscB2fCEgwVJ/aQq0LxAs71yisQUZpG887SXIY1nwy26MR6r8mVOBltuJhkMiSv//YbY1hSsKXAbKxqwjQKyoAZaLhD2ggF4GgU1L0KEELCMmCmpGYWODdesdi1v0OYVNSaPnYO5tEF45rWIVuI+tFxyA9DP5tlEIZqzIf4yBTZe2hVxUnoXkrt16V2g5xkTKdNcwyxKHQjqk6UpYPJ6Zx68aS9ld1qek3euWlSqYHkRUtPv1zuZ7JsemXevFDD+2/6jqUkzD5eGFiSk1KIID/sKkg5UEE/w5Rv4zL4daJkBbqTY6cZnSlZg7gUF02emi7dXwjpWpKrQ1r8G3GWbEI99xaHUE78SJBXA3uytVHd392vlR4qSMqv0JTxsdG2ldcBkzMQYDLOEzQ3EyvEUnnYamqGHII1nTqoQsEqlOnLbjnSRqFbx//P4tN1o4pzaakmxtwqbZXA02mT1TsV3wbl9YlxPsu1jtjiUfxp902Pf2EF1W3yZEsvJGFSNwKlWQJfZGWkWTdtlMFXkyB/6NSt4gwkIwp40TaqpTuugF+vGOdL05k042mzW683eSYh3mVNF5O6cciwXMnIl8JymAp6mmMFJj7Bqg1yvDQde1ivBWLLLZgTQi3PJDk3PzWsOtdKk0sdHIKSNE/Sl9YY1fVGtA517Iniq5oCn2Qp/143PnaCpOxSyVcrLmGqgNHKZ8mJKWdMee0BnojzKVozpr2TdimLpZiqwvA3qZS/8hK+XNGtUYuW+65lLtZc0Upe97ecMZ3gzS49mWoqYcqbEN9ODuYCS1CiQdqJUaQTfXdmph42ntrSG4D0Jcna6+6+udAOH65gD3URbiulZu00n6nc7DC+bwpMjXNaM7sKXbBDIjCPNZ0BD/WjvVPUlwjr2CXNqssMW9j8/u5qzX+4he9UI2TFSZhyfupG1O8UTpc1F9hrJrz5+EIHS8qv1boMeC09UZaVGEvO92JgkOWwFMpXVbMS+pbkivnZDL2jfKamF2dtfN8gVyZgTnFAT+qr9CwUHydjPX0nm6XeqAB2/F3PdvuCD8JxSLLHzjyVKTW8b1SqTHVHbI+y9PhrmjN5z0y5MWTJQpRi6Xtm8OSzKkLDkjIkmxxxssP7hmXKRNJ0WXOeE3ranK1Mms2a1yOvahZLxv9uh4+b8tzds5S1JNNkavqetZnypqXKzEBfYLOZGeullUzRlyzqZMnMGoz/z4MeC3eaZA6J8ib1lGN7TQ30uwz0tJ4ePuGfVGao61VDuhThH0YdXOdZpsOzHcmrY0B580lCDPQ7i6SZpcdP2j55jlO311l5Ofndnpcfo7fn7jqSN698jw302eXxNJ+iTyquTEyNSv2Ujsyeve9M3aiR8R/QRKSjQRqv52fn0nheTn6ndoYUOV45FG8leaNrTvrvBOjNuzNs3kf58/nZSavT9P8NUb/ZrdS8UzbkIyvO7fNkzJrWm6zp44B+9fikdTwo/QOgzQ4wjg1rdkELUyZR3sQ555/QnJ2/x8Q5PoE+P3x8dt7qdINm029kYW34zWbQ7YS9vnd4ekSOYwvO/QXrydtnSiHpaGqko9+8T5ovDfXs/Py8Umm1QqjVqlRw2j/zDg9fAOHLa2Z5duoWk1SRpsWJxPlv9VH+X2o6946AZMW59sXzS3oTMDVxLuRgzqvU3KKSvPWeHBJl4oTmc9Nw5xUIWRKLaja4b7cn6U3SVJxw5/0roAlH3nGWvEX95MsQTeB8Z3HmFUb7XG4JoU2QrxNJFWlanMtz+VeimaVZdeRraEmH0pnTVSKN9gnbc+7eEhrJKMjXIU2OkKMJWZyz84v35i4P9O3pmdzywtCQr2lsJ82pXZJzJ3iqP5dzlzHo3Mx99SNBvp6xPcKctKfz5+zCkjiUHdPLmHFuLrd4F3Ykx9c+tFNNkgt28KQ/tSIt3F26f2+GRLMhSkjfX3IUlSMNeTtWeSenFFASJdb5pcXFxVwud0+Vy91fXFy+O78gjSNlIDqMr3eOHE/TyPEEUSIdKUJ0GP/jHCNAyZNMAdUoxc8iJERi/C+kyLEo40DfINGxchD/t+OIimSJOqwEKx8n/YUR3fgfN+SYFjQlGlD0vxVfliS/m819sLkv7vfXf1P07dAbmf/gZofzX6k1ap8efBKGAAAAAElFTkSuQmCC", y_:"data:image/png;base64,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", bWa:"data:image/png;base64,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", Paa:"data:image/png;base64,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", Fx:"data:image/png;base64,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", hL:115,t_:115,gL:"data:image/png;base64,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", FVa:115,EVa:115,Yp:"data:image/png;base64,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", mWa:115,cpb:117,uUa:"data:image/png;base64,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", oWa:"data:image/png;base64,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", $F:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"}}); define("tdv/view/util/Fullscreen","require exports tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/util/Device".split(" "),function(a,m,h,n,g,k){if(k.xc()!=k.BQ){var e=document.createElement("div"),b=function(p){return!(!(p||e).requestFullscreen&&!document.exitFullscreen)&&k.xc()!=k.OK};if(!(a=b()))try{a=window.self===window.top}catch(p){a=!1}if(a)a=function(p){function q(r){var t=p.call(this)||this;t.qa=r;t.ha=t.Ifa();document.addEventListener("fullscreenchange", function(){t.bla()});window.addEventListener("resize",function(){t.bla()});return t}P(q,p);q.fra=function(){};q.prototype.ol=function(){return b(this.qa)};q.prototype.vt=function(){this.enabled()||this.toggle()};q.prototype.qm=function(){this.enabled()&&this.toggle()};q.prototype.toggle=function(){this.enabled()?document.exitFullscreen():this.qa.requestFullscreen();this.bla()};q.prototype.enabled=function(){return this.ha&&this.Ifa()};q.prototype.Ifa=function(){return this.qa===document.fullscreenElement}; q.prototype.bla=function(){var r=this.Ifa();this.ha!=r&&(this.ha=r,this.o(new n(h.V)),q.M.o(h.V))};q.enabled=function(){return!!document.fullscreenElement};q.fullscreenElement=function(){return document.fullscreenElement};q.qm=function(){q.enabled()&&document.exitFullscreen()};q.M=new g;return q}(g);else{var c=!0;a=function(p){function q(r){var t=p.call(this)||this;t.qa=r;return t}P(q,p);q.fra=function(r){c=r=="out_of_frame"};q.prototype.ol=function(){return c};q.prototype.vt=function(){this.toggle()}; q.prototype.qm=function(){};q.prototype.toggle=function(){c&&window.open(window.self.location.href,"_blank")};q.prototype.enabled=function(){return q.enabled()};q.enabled=function(){return!1};q.fullscreenElement=function(){return null};q.qm=function(){};q.M=new g;return q}(g)}}else{a=function(p){function q(r){var t=p.call(this)||this;t.qa=r;return t}P(q,p);q.prototype.ol=function(){return!0};q.prototype.vt=function(){this.enabled()||this.toggle()};q.prototype.qm=function(){this.enabled()&&this.toggle()}; q.prototype.toggle=function(){if(this.enabled())d("fullscreen"),q.Cy=null;else{q.Cy&&q.Cy.qm();d("fullscreen");var r=f();r.push("fullscreen");l(r);q.Cy=this}this.o(new n(h.V));q.M.o(h.V)};q.prototype.enabled=function(){return this==q.Cy};q.enabled=function(){return!!q.fullscreenElement()};q.fullscreenElement=function(){return q.Cy&&q.Cy.qa};q.qm=function(){q.enabled()&&q.Cy&&q.Cy.qm()};q.fra=function(){};q.M=new g;q.Cy=null;return q}(g);var d=function(p){for(var q=f(),r=[],t=0;t',v='',w='',y='', x='';g.ub()?(r+=" margin:0 1vmin; min-width:20vmin; padding:2.2vmin 4vmin; font-size:3.6vmin; font-weight:bold; min-width:30vmin;",f+=" font-size:3.6vmin; line-height:4.3vmin;",l+=" margin:5vmin 0;",p+=" margin:5vmin 0;",q+=" margin:3vmin 0;",t+=" height:4vmin; margin:0 1vmin 0 0; width:4vmin;"):r+=" font-size:19px; padding:17px 34px;";l+=f;m.prototype.dea=function(){this.Mc||(this.Mc=document.createElement("div"),this.Mc.style.position="fixed",this.Mc.style.zIndex= e.$Ua,this.Mc.style.left="0",this.Mc.style.top="0",this.Mc.style.margin="0",this.Mc.style.padding="0",this.Mc.style.height="100%",this.Mc.style.width="100%",this.Mc.style.backgroundColor="rgba(255, 255, 255, 0.99)",this.Mc.innerHTML=this.IZa,this.Mc.querySelectorAll("button").forEach(R=>R.addEventListener("click",Q=>this.N4a(Q.currentTarget.id))))};m.prototype.mka=function(R,Q){var K={},L;for(L in Q)K[L]=R.style[L];this.Yka.push({el:R,css:K});for(L in Q)R.style[L]=Q[L]};m.prototype.n7a=function(){for(;this.Yka.length;){var R= this.Yka.pop(),Q;for(Q in R.css)R.el.style[Q]=R.css[Q]}};m.prototype.show=function(R,Q,K){R||(R=function(){});Q||(Q=function(){});if(this.Jz){var L=this.t0;this.t0=function(){L();R()};var U=this.i0;this.i0=function(){U();Q()}}else{this.dea();this.t0=R;this.i0=Q;var T=this.z1a();if(T===void 0){this.Jz=!0;T=c.fullscreenElement()||document.body;if(K!==!0)for(K=0;K
\n
',u,'
'+n("use-cardboard-info")+"
",'
","
",'
',"
",'
','
'+n("samsung-internet-vr-app-info")+"
",'
","
",y,"
\n
",'
','", "
"].join("\n");m.call(this,"ChromeAppInfoWindow",R)});var z=h.extend(m,function(){var R=['
\n
',u,'
'+n("use-cardboard-info")+"
",'
',"
",'
',"
",'
','
'+ n("samsung-internet-vr-info")+"
","
",y,"
\n
",'
','","
"].join("\n");m.call(this,"SamsungInternetInfoWindow",R)}),A=h.extend(m,function(){m.call(this,"SamsungInternetForGearVRInfoWindow",['
\n
', y,'
This content requires access to the WebVR API.
To enable WebVR open the "More" menu you\'ll find above this window and then click on the "Labs" item.
','
',"
\n
"].join("\n"))}),D=h.extend(m,function(){var R=['
','
','
","
"].join("\n");m.call(this,"ExternalVRDisplayVRInfoWindow",R)});D.prototype.dea=function(){m.prototype.dea.call(this);k.Tg("vrv")===!0&&(this.Mc.style.backgroundColor="")};var F=h.extend(m,function(){var R=g.Yb()==g.sj?window.location.protocol!="https:"&&window.location.hostname!="localhost"?"
"+n("giroscope-disabled-http")+ "
":n("giroscope-disabled-safari-request-permission").map(function(Q){return"
"+Q+"
"}).join("\n"):"
"+n("giroscope-disabled-http")+"
";R=['
\n
','
',R,"
",'
',"
\n
",'
','","
"].join("\n");m.call(this,"GiroscopeDisabledInfoWindow",R)}),C=h.extend(m,function(){var R=['
\n
',u,'
'+n("use-cardboard-info")+ '
","
",'
',"
",y,'
It looks like this device is compatible with Gear VR. If you have a Gear VR headset you can view this content using the Carmel Web Browser (by Oculus).
','
',"
\n
"].join("\n");m.call(this,"CarmelInstallationPromptVRInfoWindow",R)}),B=h.extend(m, function(){var R=['
\n
',u,'
'+n("cardboard-v1")+"
",'
","
",'
',"
",'
'+n("cardboard-v2")+"
",'
",w,"
\n
",'
','","
"].join("\n");m.call(this,"CardboardV2InfoWindow",R)}),H=h.extend(m,function(){var R=['
', '
','
","
"].join("\n");m.call(this,"EnterVRInfoWindow",R)}),E=h.extend(m,function(){m.call(this,"PreparingVRInfoWindow",['
','
Preparing VR...
',"
"].join("\n"))}), G=h.extend(m,function(){var R=['
',v,'
\n
',x,'
'+n("use-safari-for-vr")+"
",'
',"
",'
','","
"].join("\n");m.call(this,"UseSafariVRInfoWindow",R)}),N=h.extend(m,function(){var R=['
','','
\n
\n
', '','
'+n("rotate-device")+"
","
\n
"].join("\n");m.call(this,"RotateVRInfoWindow",R)});h=h.extend(m,function(){var R=['
','
'+n("ar-mobile-info").split("\n").map(Q=>'
'+Q+"
").join("")+"
",'','
',"
",'
','","
"].join("\n");m.call(this,"MobileARInfoWindow",R)});var O={};O.Uob=new z;O.Vob=new A;O.pta=new D;O.zob=new C;O.Dob=new H;O.Oob=new E;O.Qua=new G;O.y_=new N;O.vta=new F;O.fUa=new a;O.Paa=new B;O.Sba=new h;return O});define("tdv/view/constants/State",["require","exports"],function(){return{De:void 0,ea:"over",Fb:"pressed",qc:"pressedOver",oa:"selected"}}); define("tdv/binding/Bindable",["require","exports","tdv/constants/EventName","tdv/events/Event","tdv/events/EventDispatcher"],function(a,m,h,n,g){return function(k){function e(){var b=k.call(this)||this;b.$r={};return b}P(e,k);e.prototype.set=function(b,c){var d=this;if(typeof b==="object"){c=[];var f=0;for(b=Object.entries(b);f=0},YHa:function(a){a&&(a.indexOf("#")<0&&(a+="#"),a+="&tdvflipx");return a},Eeb:function(a,m,h){var n=document.createElement("canvas");n.width=m;n.height=h;h=n.getContext("2d");h.translate(m,0);h.scale(-1,1);h.drawImage(a,0,0);a.src=n.toDataURL()}}}); define("tdv/util/LoadRequest",["require","exports"],function(){return function(){function a(m,h,n,g,k,e){this.Bqa=m;this.url=h;this.priority=n;this.time=g;this.hmb=k;this.Dcb=e}a.prototype.loaded=function(){this.Bqa.bZ(this.url);this.Bqa.remove(this)};a.prototype.cancel=function(){this.Bqa.remove(this)};return a}()}); define("tdv/util/LoadQueue","require exports tdv/player/view/util/Device tdv/player/view/util/URL tdv/events/async tdv/util/LoadRequest".split(" "),function(a,m,h,n,g,k){var e=h.xc()===h.zB,b=!(n.Ak("debug")&&n.Tg("disable-cache"));return function(){function c(){}c.add=function(d,f,l,p){d=new k(this,d,f,(new Date).getTime(),l,p);this.xz.push(d);this.za();return d};c.wmb=function(d){this.TN.push(d);this.za()};c.vmb=function(d){d=this.TN.indexOf(d);d>=0&&this.TN.splice(d,1);this.za()};c.pob=function(d){var f; return e?!0:b?(f=this.lAa[d])!==null&&f!==void 0?f:!1:!1};c.bZ=function(d){e||b&&(this.lAa[d]=!0)};c.za=function(){this.kma||(this.kma=g.LE(c.kab.bind(this)))};c.kab=function(){this.kma=null;for(var d=this.x7a(),f=0,l=this.IM;f=0&&this.xz.splice(f,1);f=this.IM.indexOf(d);f>=0&&this.IM.splice(f,1);this.za()};c.xz=[];c.IM=[];c.TN=[];c.kma=null;c.lAa={};return c}()}); define("tdv/view/images/ImageLoader","require exports tdv/events/Event tdv/events/EventDispatcher tdv/constants/EventName tdv/constants/Priority tdv/player/view/util/URL tdv/view/images/fliputil tdv/util/LoadQueue".split(" "),function(a,m,h,n,g,k,e,b,c){var d=0;return function(f){function l(p){var q=f.call(this)||this;q.Se=null;q.Id=null;q.Pa=null;q.Ha=null;q.QC=!1;q.pq=null;q.zN=null;q.E4=0;q.Aga=[];q.jH=d++;q.G1=q.G1.bind(q);q.H1=q.H1.bind(q);q.zv=p||k.jVa;return q}P(l,f);l.prototype.load=function(p){this.cancel(); this.Se=p;this.E4=0;this.dEa()};l.prototype.dEa=function(){this.pq=c.add(this.Se,this.zv,this.G9a.bind(this),this.YYa.bind(this))};l.prototype.cancel=function(){this.pq&&(this.pq.cancel(),this.pq=null);this.Hwa();this.Se=null};l.prototype.qhb=function(){return!!this.Id&&!this.QC||!!this.zN};l.prototype.oj=function(){return this.QC};l.prototype.xg=function(p){return p?(p=this.Id.cloneNode(!0),this.Aga.push(p),p):this.Id};l.prototype.fg=function(){return this.Pa};l.prototype.wg=function(){return this.Ha}; l.prototype.rl=function(){return this.Se};l.prototype.G9a=function(){this.Id=this.k_a(this.Se)};l.prototype.YYa=function(){this.qhb()&&this.Hwa()};l.prototype.Hwa=function(){if(this.Id){this.zN&&(clearTimeout(this.zN),this.zN=null);for(this.QC=!1;this.Aga.length;)this.Bxa(this.Aga.shift());this.Bxa(this.Id);this.Id=null}};l.prototype.bXa=function(p){p.addEventListener("load",this.G1);p.addEventListener("error",this.H1)};l.prototype.XDa=function(p){p.removeEventListener("load",this.G1);p.removeEventListener("error", this.H1)};l.prototype.G1=function(){this.Id.width&&this.Id.height||!(this.Se.indexOf(".svg")>-1)||this.D0a();this.pq.loaded();this.pq=null;this.XDa(this.Id);this.QC=!0;this.Pa=this.Id.width;this.Ha=this.Id.height;b.vgb(this.Se)&&b.Eeb(this.Id,this.Pa,this.Ha);this.o(new h(g.ia))};l.prototype.H1=function(){var p=this;if(this.Se){var q=this.Se;this.cancel();this.Se=q;this.E4<5?(this.E4++,this.zN=setTimeout(function(){p.zN=null;p.dEa()},Math.pow(2,this.E4)*1E3)):this.o(new h(g.$c))}};l.prototype.D0a= function(){var p=new XMLHttpRequest;p.open("GET",this.Se,!1);p.send();var q=document.createElement("div");q.innerHTML=p.responseText;p=q.children[0];this.Id.width=p.width.baseVal.value;this.Id.height=p.height.baseVal.value};l.prototype.k_a=function(p){var q=document.createElement("img");e.apa(p)?q.setAttribute("crossOrigin","Anonymous"):q.removeAttribute("crossOrigin");q.setAttribute("draggable","false");q.style.position="static";q.style.border="none";q.style.display="none";this.bXa(q);q.src=p;return q}; l.prototype.Bxa=function(p){this.XDa(p);p.parentNode&&p.parentNode.removeChild(p);p.src=""};l.daa=function(p){return c.pob(p)};return l}(n)}); define("tdv/view/core/UIBase","require exports tdv/binding/Bindable tdv/constants/EventName tdv/constants/Priority tdv/events/Event tdv/view/constants/Cursor tdv/view/core/visualprops/UIBaseVisualProperties tdv/view/images/ImageLoader".split(" "),function(a,m,h,n,g,k,e,b,c){function d(p){if(p!==void 0)return typeof p==="string"&&(p=parseInt(p)),p%1!==0&&(p=Math.round(p)),p}function f(p){typeof p==="string"&&(p=parseInt(p));p%1!==0&&(p=Math.round(p));return p}function l(p){if(p!==void 0)return typeof p=== "string"?parseFloat(p):p}return function(p){function q(){var r=p.call(this)||this;r.jH=q.jH++;r.u=r.TL();r.u.id=r.jH;r.Rga=!1;r.Gb=null;r.Ia=null;r.eC=null;r.V_=void 0;r.Ui=e.De;r.Py=!1;r.Po=!0;r.bn=0;r.an=0;r.hT=0;r.gT=0;r.mK(!0);r.uka(!0);return r}P(q,p);q.prototype.TL=function(){return new b};q.prototype.gf=function(r){this.LL=r};q.prototype.tA=function(){return this.LL};q.prototype.Vb=function(){return this.Gb};q.prototype.wa=function(){if(!this.n6)throw Error("Visuals not initialized");return this.n6}; q.prototype.mLa=function(){if(!this.xM)throw Error("Input event manager not initialized");return this.xM};q.prototype.w8=function(r,t){return this.SI||this.FS?this.SI===r&&this.FS===t:!0};q.prototype.bo=function(r,t,u,v){this.Gb&&this.SD();this.Gb=r;if(!this.w8(t,u))throw Error("Component visuals already created for a different rendering type");this.n6||(this.SI=t,this.n6=t.create(this));this.xM||(this.FS=u,this.xM=u.create(this,v));this.ES();this.Yz();this.YV();this.o(n.$Ta)};q.prototype.SD=function(){this.Rga= !1;this.Gb=null;this.Yz()};q.prototype.Bra=function(r){r=r||this.LL;this.u.className!==r&&(this.u.className=r,this.tb())};q.prototype.Rjb=function(){this.Bra()};q.prototype.getParent=function(){return this.Ia};q.prototype.mw=function(){return this.u.x||0};q.prototype.sA=function(){return this.u.y||0};q.prototype.nb=function(){return this.u.width};q.prototype.Mb=function(){return this.u.height};q.prototype.rgb=function(){return this.u.width!==void 0&&this.u.height!==void 0};q.prototype.Xh=function(){return this.u.width- this.u.Dd-this.u.Ce};q.prototype.Wh=function(){return this.u.height-this.u.ie-this.u.Df};q.prototype.ig=function(r){this.u.visible!=r&&(this.u.visible=r,this.Tf(),this.Ia&&(this.Ia.lc(),this.Ia.Af()),this.Yz())};q.prototype.Yz=function(){var r=!1;this.Gb&&this.u.visible&&this.ow()>0&&(r=!this.Ia||this.Ia.Py);this.Py!=r&&this.gda(r)};q.prototype.gda=function(r){this.Py=r;this.set("inView",r);this.Py?this.o(new k(n.od)):this.o(new k(n.jd))};q.prototype.C8a=function(r){this.Po!=r&&(this.Po=r,this.Ia&& this.Ia.Af())};q.prototype.m8a=function(r){r=d(r);this.hM!=r&&(this.hM=r,this.lc())};q.prototype.l8a=function(r){r=d(r);this.gM!=r&&(this.gM=r,this.lc())};q.prototype.k8a=function(r){r=d(r);this.fM!=r&&(this.fM=r,this.lc())};q.prototype.j8a=function(r){r=d(r);this.eM!=r&&(this.eM=r,this.lc())};q.prototype.n8a=function(r){r=d(r);this.Lo!=r&&(this.Lo=r,this.Lo!==void 0&&(this.lp=void 0),this.lc())};q.prototype.i8a=function(r){r=d(r);this.TG!=r&&(this.TG=r,this.TG!==void 0&&(this.kp=void 0),this.lc())}; q.prototype.P8a=function(r){r=l(r);this.lp!=r&&(this.lp=r,this.lp!==void 0&&(this.Lo=void 0),this.lc())};q.prototype.L8a=function(r){r=l(r);this.kp!=r&&(this.kp=r,this.kp!==void 0&&(this.TG=void 0),this.lc())};q.prototype.F8a=function(r){r=d(r);this.Uy!=r&&(r!==void 0&&(this.b4=void 0),this.Uy=r,this.Ia&&this.Ia.Af(),this.lc())};q.prototype.f9a=function(r){r=d(r);this.$s!=r&&(r!==void 0&&(this.d4=void 0),this.$s=r,this.Ia&&this.Ia.Af(),this.lc())};q.prototype.R8a=function(r){r=d(r);this.VU!=r&&(r!== void 0&&(this.c4=void 0),this.VU=r,this.Ia&&this.Ia.Af(),this.lc())};q.prototype.Y7a=function(r){r=d(r);this.mR!=r&&(r!==void 0&&(this.a4=void 0),this.mR=r,this.Ia&&this.Ia.Af(),this.lc())};q.prototype.M8a=function(r){r=l(r);this.b4!=r&&(r!==void 0&&(this.Uy=void 0),this.b4=r,this.Ia&&this.Ia.Af(),this.lc())};q.prototype.O8a=function(r){r=l(r);this.d4!=r&&(r!==void 0&&(this.$s=void 0),this.d4=r,this.Ia&&this.Ia.Af(),this.lc())};q.prototype.N8a=function(r){r=l(r);this.c4!=r&&(r!==void 0&&(this.VU= void 0),this.c4=r,this.Ia&&this.Ia.Af(),this.lc())};q.prototype.K8a=function(r){r=l(r);this.a4!=r&&(r!==void 0&&(this.mR=void 0),this.a4=r,this.Ia&&this.Ia.Af(),this.lc())};q.prototype.b8a=function(r){r=d(r);this.lC!=r&&(this.lC=r,this.Ia&&this.Ia.Af())};q.prototype.c8a=function(r){r=d(r);this.mC!=r&&(this.mC=r,this.Ia&&this.Ia.Af())};q.prototype.rw=function(){return isNaN(this.Lo)?this.bn:this.Lo};q.prototype.qw=function(){return isNaN(this.TG)?this.an:this.TG};q.prototype.k2a=function(){return isNaN(this.w0a)? this.uAa:this.w0a};q.prototype.nw=function(){return isNaN(this.hM)?this.hT:this.hM};q.prototype.vA=function(){return isNaN(this.gM)?this.gT:this.gM};q.prototype.Q7=function(){return isNaN(this.fM)?1E4:this.fM};q.prototype.P7=function(){return isNaN(this.eM)?1E4:this.eM};q.prototype.$Ea=function(r){r=f(r);this.u.paddingLeft!=r&&(this.u.paddingLeft=r,this.u.Dd=this.u.paddingLeft+this.u.Te,this.lc(),this.tb())};q.prototype.Yya=function(){return this.u.paddingLeft};q.prototype.bFa=function(r){r=f(r); this.u.paddingTop!=r&&(this.u.paddingTop=r,this.u.ie=this.u.paddingTop+this.u.Ue,this.lc(),this.tb())};q.prototype.$ya=function(){return this.u.paddingTop};q.prototype.aFa=function(r){r=f(r);this.u.paddingRight!=r&&(this.u.paddingRight=r,this.u.Ce=this.u.paddingRight+this.u.xf,this.lc(),this.tb())};q.prototype.Zya=function(){return this.u.paddingRight};q.prototype.ZEa=function(r){r=f(r);this.u.paddingBottom!=r&&(this.u.paddingBottom=r,this.u.Df=this.u.paddingBottom+this.u.wf,this.lc(),this.tb())}; q.prototype.Xya=function(){return this.u.paddingBottom};q.prototype.HN=function(r){this.u.Jw!=r&&(this.u.Jw=r,this.tb())};q.prototype.A8a=function(r){this.u.Kc!=r&&(this.u.Kc=r,this.tb())};q.prototype.l9a=function(r){this.u.Lc!=r&&(this.u.Lc=r,this.tb())};q.prototype.fZ=function(r){if(this.u.offsetX!=r){var t=this.u.offsetX==0!=(r==0);this.u.offsetX=r;this.tb();t&&this.Ia&&this.Ia.Af()}};q.prototype.zLa=function(){return this.u.offsetX};q.prototype.gZ=function(r){if(this.u.offsetY!=r){var t=this.u.offsetY== 0!=(r==0);this.u.offsetY=r;this.tb();t&&this.Ia&&this.Ia.Af()}};q.prototype.ALa=function(){return this.u.offsetY};q.prototype.Agb=function(){return this.u.offsetX!=0||this.u.offsetY!=0};q.prototype.Yn=function(r){this.u.opacity!=r&&(this.u.opacity=r,this.Yz(),this.tb())};q.prototype.ow=function(){return this.u.opacity};q.prototype.V7a=function(r){this.u.borderTopLeftRadius!=r&&(this.u.borderTopLeftRadius=r,this.tb())};q.prototype.W7a=function(r){this.u.borderTopRightRadius!=r&&(this.u.borderTopRightRadius= r,this.tb())};q.prototype.N7a=function(r){this.u.borderBottomLeftRadius!=r&&(this.u.borderBottomLeftRadius=r,this.tb())};q.prototype.O7a=function(r){this.u.borderBottomRightRadius!=r&&(this.u.borderBottomRightRadius=r,this.tb())};q.prototype.R7a=function(r){this.u.Te!=r&&(this.u.Te=r,this.u.Dd=this.u.paddingLeft+this.u.Te,this.lc(),this.tb())};q.prototype.X7a=function(r){this.u.Ue!=r&&(this.u.Ue=r,this.u.ie=this.u.paddingTop+this.u.Ue,this.lc(),this.tb())};q.prototype.T7a=function(r){this.u.xf!=r&& (this.u.xf=r,this.u.Ce=this.u.paddingRight+this.u.xf,this.lc(),this.tb())};q.prototype.P7a=function(r){this.u.wf!=r&&(this.u.wf=r,this.u.Df=this.u.paddingBottom+this.u.wf,this.lc(),this.tb())};q.prototype.Q7a=function(r){this.u.borderLeftColor!=r&&(this.u.borderLeftColor=r,this.tb())};q.prototype.U7a=function(r){this.u.borderTopColor!=r&&(this.u.borderTopColor=r,this.tb())};q.prototype.S7a=function(r){this.u.borderRightColor!=r&&(this.u.borderRightColor=r,this.tb())};q.prototype.M7a=function(r){this.u.borderBottomColor!= r&&(this.u.borderBottomColor=r,this.tb())};q.prototype.d5=function(r){this.u.kB!=r&&(this.u.kB=r,this.tb())};q.prototype.X8a=function(r){this.u.gu!=r&&(this.u.gu=r,this.tb())};q.prototype.$8a=function(r){this.u.hu!=r&&(this.u.hu=r,this.tb())};q.prototype.V8a=function(r){this.u.co!=r&&(this.u.co=r,this.tb())};q.prototype.Z8a=function(r){this.u.tK!=r&&(this.u.tK=r,this.tb())};q.prototype.Y8a=function(r){this.u.$w!=r&&(this.u.$w=r,this.tb())};q.prototype.W8a=function(r){this.u.shadowColor!=r&&(this.u.shadowColor= r,this.tb())};q.prototype.E7a=function(r){this.u.aJ!=r&&(this.u.aJ=r,this.tb())};q.prototype.GEa=function(r){this.u.nm!=r&&(this.u.nm=r,this.tb())};q.prototype.FEa=function(r){this.u.backgroundColor!==r&&(this.u.backgroundColor=r,r===void 0?r=[]:Array.isArray(r)||(r=[r]),this.H7a(r))};q.prototype.H7a=function(r){this.u.uk!==r&&(this.u.uk=r,this.tb())};q.prototype.G7a=function(r){this.u.I6!==r&&(this.u.I6=r,this.tb())};q.prototype.F7a=function(r){this.u.OD!=r&&(this.u.OD=r,this.tb())};q.prototype.I7a= function(r){if(this.V_!=r){this.eC&&(this.eC.h(n.ia,this.$va,this),this.eC.cancel(),this.eC=null,this.u.$v=null);if(this.V_=r)this.eC=new c(g.yua),this.eC.bind(n.ia,this.$va,this,!1),this.eC.load(this.V_);this.tb()}};q.prototype.$va=function(){this.u.$v=this.eC.xg();this.tb()};q.prototype.wD=function(r){this.Ui!=r&&(this.Ui=r,this.YV())};q.prototype.YV=function(){var r=this.Gb&&this.Gb.uea.WKa(this.Ui)||"inherit";this.u.cursor!=r&&(this.u.cursor=r,this.tb())};q.prototype.c9a=function(r){this.u.tabIndex!== r&&(this.u.tabIndex=r,this.tb())};q.prototype.C7a=function(r){this.u.ariaLabel!=r&&(this.u.ariaLabel=r,this.tb())};q.prototype.D7a=function(r){this.u.wO!=r&&(this.u.wO=r,this.tb())};q.prototype.mK=function(r){this.u.IJ!=r&&(this.u.IJ=r,this.tb())};q.prototype.uka=function(r){this.u.qY!=r&&(this.u.qY=r,this.tb())};q.prototype.Zr=function(){this.Yz();this.JX()};q.prototype.np=function(){this.Yz()};q.prototype.Rja=function(){};q.prototype.ES=function(){this.JX();this.Tf();this.lc();this.Af();this.tb()}; q.prototype.Zy=function(){this.gT=this.hT=this.an=this.bn=0;this.uAa=void 0};q.prototype.JX=function(){var r=this.Vb();r&&r.FM.JX(this)};q.prototype.Tf=function(){var r=this.Vb();r&&r.FM.Tf(this)};q.prototype.lc=function(){var r=this.Vb();r&&r.FM.lc(this)};q.prototype.Af=function(){var r=this.Vb();r&&r.FM.Af(this)};q.prototype.tb=function(){var r=this.Vb();r&&r.FM.tb(this)};q.prototype.fga=function(){var r=isNaN(this.b4)&&isNaN(this.Uy),t=isNaN(this.c4)&&isNaN(this.VU);return isNaN(this.Lo)&&isNaN(this.lp)&& (r||t)?!0:!1};q.prototype.sza=function(){var r=isNaN(this.d4)&&isNaN(this.$s),t=isNaN(this.a4)&&isNaN(this.mR);return isNaN(this.TG)&&isNaN(this.kp)&&(r||t)?!0:!1};q.prototype.Mab=function(){this.Zy();var r=this.k2a();if(r){var t=this.fga(),u=this.sza();t&&!u?(t=this.Wh(),t!=0&&(this.bn=t*r+this.u.Dd+this.u.Ce,this.an=t+this.u.ie+this.u.Df)):!t&&u&&(t=this.Xh(),t!=0&&(this.an=t/r+this.u.Dd+this.u.Ce,this.bn=t+this.u.Dd+this.u.Ce))}!isNaN(this.hM)&&this.bnthis.fM&&(this.bn=this.fM);!isNaN(this.gM)&&this.anthis.eM&&(this.an=this.eM)};q.prototype.Kb=function(){};q.prototype.Fnb=function(){this.Mab();var r=this.rw(),t=this.qw(),u=this.nw(),v=this.vA();return r!=this.G4a||t!=this.F4a||u!=this.C4a||v!=this.B4a||this.lp!=this.E4a||this.kp!=this.D4a?(this.G4a=r,this.F4a=t,this.C4a=u,this.B4a=v,this.E4a=this.lp,this.D4a=this.kp,!0):!1};q.prototype.jb=function(){this.tb()};q.prototype.Kk=function(){}; q.prototype.QQa=function(r,t,u,v){if(this.u.x!=r||this.u.y!=t||this.u.width!=u||this.u.height!=v)this.u.x=r,this.u.y=t,this.u.width=u,this.u.height=v,this.Af(),this.tb(),this.o(new k(n.$b))};q.prototype.ou=function(){!this.Rga&&this.Gb&&(this.Rga=!0,this.Gb.kpa()?this.wM():this.Gb.bind(n.Vp,this.wM,this,!0))};q.prototype.wM=function(){this.o(n.INIT)};q.jH=0;return q}(h)}); define("tdv/view/core/UICustomizable","require exports tdv/constants/EventName tdv/events/Event tdv/view/constants/State tdv/view/core/UIBase".split(" "),function(a,m,h,n,g,k){return function(e){function b(){var c=e.call(this)||this;c.W1=!1;c.Qy=!1;c.V1=!1;c.A={};c.hya=void 0;c.wz=void 0;c.nD={};c.eya=!0;c.BFa={};c.J_a();c.Pb();c.gf("UICustomizable");c.Tf();c.set("inView",!1);c.set("toolTip",void 0);return c}P(b,e);b.prototype.J_a=function(){this.BFa[g.qc]=g.Fb};b.prototype.Pb=function(){this.Il(b.ad)}; b.prototype.Il=function(c){for(var d in c){var f=c[d],l=f&&f.length;l&&typeof f!="string"?l==1?this.m(d,f[0]):l==2?this.D(d,f[0],f[1]):l==3&&this.D(d,f[0],f[1],f[2]):this.m(d,f)}};b.prototype.m=function(c,d){this.A[c]={i:!0,d}};b.prototype.p2a=function(){var c=[],d;for(d in this.A)c.push(d);return c};b.prototype.gV=function(c){this.Qy!=c&&(this.Qy=c,this.jh())};b.prototype.IN=function(c){this.V1!=c&&(this.V1=c,this.jh())};b.prototype.fFa=function(c){this.W1!=c&&(this.W1=c,this.jh())};b.prototype.jh= function(){this.Qy?this.JN(g.oa):this.V1&&this.W1?this.JN(g.qc):this.V1?this.JN(g.Fb):this.W1?this.JN(g.ea):this.JN(g.De)};b.prototype.D=function(c,d,f,l){this.nD[d]||(this.nD[d]={});this.m(c,l);this.nD[d][f]=c};b.prototype.JN=function(c,d){d===void 0&&(d=!1);if(d)this.hya=c;else if(this.hya!=void 0)return;if(this.wz!=c){if(d=this.nD[this.wz])for(var f in d)(this.A[f]||(this.A[f]={})).i=!0;this.wz=c;if(d=this.nD[this.wz])for(f in d)(this.A[f]||(this.A[f]={})).i=!0;this.Tf()}};b.prototype.xa=function(c){if(typeof c=== "string")this.set(c,void 0);else{var d=c;for(c in d)this.set(c,d[c])}};b.prototype.set=function(c,d){var f=this.A[c];f?(d==void 0&&(d=f.d),this.get(c)!==d&&(c=="state"&&this.JN(d,!0),e.prototype.set.call(this,c,d),f.i=!0,this.Tf())):e.prototype.set.call(this,c,d)};b.prototype.get=function(c,d){switch(c){case "actualWidth":return this.nb();case "actualHeight":return this.Mb();default:var f=e.prototype.get.call(this,c);f===void 0&&((c=this.A[c])&&(f=c.d),f===void 0&&(f=d));return f}};b.prototype.ada= function(c){for(var d=0;d=2)return parseFloat(c[1])};b.ad={ariaLabel:void 0,ariaRole:void 0,visible:!0,includeInLayout:!0,state:void 0,left:void 0,right:void 0,top:void 0,bottom:void 0,centerX:void 0,centerY:void 0,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0,maxWidth:void 0, maxHeight:void 0,actualWidth:void 0,actualHeight:void 0,paddingLeft:0,paddingTop:0,paddingRight:0,paddingBottom:0,opacity:1,borderRadius:0,borderTopRadius:void 0,borderBottomRadius:void 0,borderLeftRadius:void 0,borderRightRadius:void 0,borderTopLeftRadius:void 0,borderTopRightRadius:void 0,borderBottomLeftRadius:void 0,borderBottomRightRadius:void 0,borderSize:0,borderLeftSize:void 0,borderTopSize:void 0,borderRightSize:void 0,borderBottomSize:void 0,borderColor:void 0,borderLeftColor:void 0,borderTopColor:void 0, borderRightColor:void 0,borderBottomColor:void 0,shadow:!1,shadowHorizontalLength:0,shadowVerticalLength:3,shadowBlurRadius:6,shadowSpread:0,shadowColor:"#000000",shadowOpacity:void 0,tabIndex:void 0,backgroundBlur:0,backgroundOpacity:1,backgroundColor:void 0,backgroundColorRatios:void 0,backgroundColorDirection:void 0,backgroundImageUrl:void 0,hideEffect:void 0,showEffect:void 0};return b}(k)}); define("tdv/view/core/UIComponent",["require","exports","tdv/constants/EventName","tdv/view/constants/State","tdv/view/core/UICustomizable"],function(a,m,h,n,g){return function(k){function e(){var b=k.call(this)||this;b.gf("UIComponent");b.set("propagateClick",!0);return b}P(e,k);e.prototype.Pb=function(){this.Il(e.ad)};e.prototype.Zva=function(){this.fFa(!0)};e.prototype.Yva=function(){this.fFa(!1)};e.prototype.Wva=function(){this.IN(!0)};e.prototype.Xva=function(){this.IN(!1)};e.prototype.ES=function(){this.yD("interactionEnabled"); k.prototype.ES.call(this)};e.prototype.jb=function(){this.S("autoRolledOver")&&(this.h(h.uc,this.Zva,this),this.h(h.Eb,this.Yva,this),this.G("autoRolledOver")&&(this.bind(h.uc,this.Zva,this,!1),this.bind(h.Eb,this.Yva,this,!1)),this.$("autoRolledOver"));this.S("autoPressed")&&(this.h(h.Sa,this.Wva,this),this.h(h.$a,this.Xva,this),this.G("autoPressed")&&(this.bind(h.Sa,this.Wva,this,!1),this.bind(h.$a,this.Xva,this,!1)),this.$("autoPressed"));var b=!1;this.S("contentOpaque")&&(b=!0,this.$("contentOpaque")); this.S("inheritedInteractionEnabled")&&(b=!0,this.$("inheritedInteractionEnabled"));this.S("interactionEnabled")&&(b=!0,this.$("interactionEnabled"));if(this.S("backgroundOpacity")||this.S("backgroundColor")||this.S("inView"))b=!0;this.S("inView")&&(b=!0);g.prototype.jb.call(this);if(b){var c=!!(this.u.nm>0&&(this.u.uk.length>0||this.u.aJ>0)),d=this.G("contentOpaque"),f=this.G("inheritedInteractionEnabled"),l=this.G("interactionEnabled"),p=this.G("inView");this.rI(f&&l&&(d||c)&&p)}if(b||this.S("cursor")|| this.S("inheritedCursor"))this.$("cursor"),this.$("inheritedCursor"),this.xM.oLa()?this.wD(this.G("cursor")):this.wD(this.G("inheritedCursor"))};e.prototype.ou=function(){this.n6.update(this.u);k.prototype.ou.call(this)};e.prototype.rI=function(b){this.xM.hRa(b)};e.prototype.log=function(b){if(b){b=[];for(var c=this;c;)b.push(c),c=c.getParent();console.log(b.map(function(d){return d.$r}))}else console.log(this.$r)};e.ad=Object.assign({},g.ad,{autoRolledOver:!1,autoPressed:!1,contentOpaque:!0,cursor:void 0, inView:void 0,inheritedCursor:void 0,inheritedInteractionEnabled:!0,interactionEnabled:!0,rollOverOpacity:[n.ea,"opacity"],rollOverShadow:[n.ea,"shadow"],toolTipFollowMouse:!1});return e}(g)}); define("tdv/view/effects/Effect","require tdv/utils tdv/binding/Bindable tdv/constants/EventName tdv/events/Event tdv/view/util/Animation tdv/view/util/Ease tdv/view/util/EaseDimension".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/Bindable");a("tdv/constants/EventName");var n=a("tdv/events/Event"),g=a("tdv/view/util/Animation"),k=a("tdv/view/util/Ease"),e=a("tdv/view/util/EaseDimension"),b={},c=m.extend(h,function(){h.call(this);this.I="stopped";this.ac=void 0;this.Oq=[];this.set("easing", "linear");this.set("duration",1E3);this.set("loop",!1);this.set("animationDirection","normal")});c.prototype.play=function(d){d||(d=b);this.rP(d)||(this.I=="stopped"||this.Oq.indexOf(d)<0?(this.I="playing",this.Oq.push(d),this.dh=0,this.ac=Math.max(this.get("duration",1E3),1),this.bh=new k(this.get("easing","linear"),[new e("pos",0,1)],this.ac),this.bh.setTime(this.dh),this.MN(),this.Iz(),this.EU()):this.I="playing")};c.prototype.reverse=function(d){d||(d=b);this.Chb(d)||(this.I=="stopped"||this.Oq.indexOf(d)< 0?(this.I="playingReverse",this.Oq.push(d),this.dh=this.ac=Math.max(this.get("duration",1E3),0),this.bh=new k(this.get("easing","linear"),[new e("pos",0,1)],this.ac),this.bh.setTime(this.dh),this.MN(),this.Iz(),this.EU()):this.I="playingReverse")};c.prototype.stop=function(){this.I!="stopped"&&(this.I="stopped",this.dh!==0&&(this.dh=0,this.bh.setTime(this.dh),this.Iz(),this.EU()))};c.prototype.end=function(){this.I!="stopped"&&(this.dh=this.ac,this.bh.setTime(this.dh),this.Iz(),this.EU())};c.prototype.cancel= function(){this.I="stopped";this.dh=0;this.Oq=[]};c.prototype.rP=function(d){return this.I=="playing"&&this.Oq.indexOf(d)>=0};c.prototype.Chb=function(d){return this.I=="playingReverse"&&this.Oq.indexOf(d)>=0};c.prototype.sq=function(d){this.I!="stopped"&&(this.dh=this.I=="playing"?Math.min(this.ac,this.dh+d):Math.max(0,this.dh-d),this.bh.setTime(this.dh),this.Iz(),this.EU())};c.prototype.tm=function(){return this.bh&&this.bh.ob("pos")||0};c.prototype.BC=function(d){if(this.Oq)for(var f=0;f=this.ac?(this.dh=this.ac,this.KN(),this.Oq=[],this.I!="stopped"&&(this.I= "stopped",this.get("animationDirection")=="alternate"?this.reverse():this.get("loop")&&this.play())):this.I!="stopped"&&g.requestFrame(this.sq,this)};c.GUa="start";c.eba="frame";c.Bl="end";c.EUa="reverseStart";c.xx="reverseEnd";return c}); define("tdv/view/effects/FadeEffect",["require","tdv/utils","tdv/view/effects/Effect"],function(a){var m=a("tdv/utils"),h=a("tdv/view/effects/Effect");a=m.extend(h,function(){h.call(this);this.Tca=this.Rca=null});a.prototype.MN=function(){h.prototype.MN.call(this);this.Rca=[];this.Tca=[];this.BC(function(n){this.Rca.push(this.get("alphaFrom",n.ow()));this.Tca.push(this.get("alphaTo",n.ow()))});this.z4()};a.prototype.Iz=function(){h.prototype.Iz.call(this);this.z4()};a.prototype.z4=function(){this.BC(function(n, g){var k=this.Rca[g];g=k+(this.Tca[g]-k)*this.tm();!(n.ow()>0&&n.u.visible)&&g>0?(n.Yn(0),n.ig(!0),n.Yn(g)):g==0?(n.ig(!1),n.Yn(1)):n.Yn(g)})};a.prototype.KN=function(){this.z4();h.prototype.KN.call(this)};a.prototype.LN=function(){this.z4();h.prototype.LN.call(this)};return a}); define("tdv/view/effects/FadeInEffect",["require","tdv/utils","tdv/view/effects/FadeEffect"],function(a){var m=a("tdv/utils"),h=a("tdv/view/effects/FadeEffect");return m.extend(h,function(){h.call(this);this.set("alphaFrom",0);this.set("alphaTo",1)})});define("tdv/view/effects/FadeOutEffect",["require","tdv/utils","tdv/view/effects/FadeEffect"],function(a){var m=a("tdv/utils"),h=a("tdv/view/effects/FadeEffect");return m.extend(h,function(){h.call(this);this.set("alphaFrom",1);this.set("alphaTo",0)})}); define("tdv/player/view/UserInteractionWindow","require exports tdv/view/util/Assets tdv/constants/EventName tdv/player/view/util/Device tdv/view/core/UIComponent tdv/view/effects/FadeInEffect tdv/view/effects/FadeOutEffect".split(" "),function(a,m,h,n,g,k,e,b){a=function(q){function r(){var t=q.call(this)||this;t.gf("UserInteractionWindow");t.Dc=null;t.Cv=[];var u=new e;u.set("duration",500);u.set("easing","cubic_in");var v=new b;v.set("duration",500);v.set("easing","cubic_out");t.xa({contentOpaque:!0, left:0,top:0,right:0,bottom:0,hideEffect:v,showEffect:u,visible:!1});t.bind(n.$b,t.sma,t,!0);t.bind(n.ma,t.hbb,t,!0);return t}P(r,q);r.prototype.sma=function(){this.Dc&&this.Dc.setSize(this.Xh(),this.Wh())};r.prototype.hbb=function(){var t=this.Cv.slice();this.Cv=[];this.d6();t.forEach(function(u){u.Fn.call(u.context)})};r.prototype.Kb=function(){q.prototype.Kb.call(this);if(!this.Dc){this.Dc=new p;this.Dc.setSize(this.Xh(),this.Wh());this.Dc.ig(!0);var t=this.Dc.cc();t.style.position="absolute"; t.style.left="0";t.style.top="0";t.style.right="0";t.style.bottom="0";t.style.overflow="hidden";this.wa().tk(t);this.d6()}};r.prototype.Zr=function(){q.prototype.Zr.call(this);this.getParent().bind(n.$b,this.sma,this,!0);r.fXa(this)};r.prototype.np=function(){this.getParent().h(n.$b,this.sma,this,!0);q.prototype.np.call(this);r.T6a(this)};r.prototype.Mjb=function(t){this.rD(f,t)};r.prototype.CY=function(t){this.rD(d,t)};r.prototype.rD=function(t,u){this.Cv.push(new c(t,u));this.Cv.sort(function(v, w){return l[v.reason]-l[w.reason]});this.d6()};r.prototype.Gcb=function(t){this.cancel(f,t)};r.prototype.Ecb=function(){var t;t===void 0&&(t=void 0);this.cancel(d,t)};r.prototype.cancel=function(t,u){t=this.s2a(t,u);t>=0&&this.d7a(t)};r.prototype.s2a=function(t,u){for(var v=0;v0?this.Cv[0]:null};r.fXa=function(t){r.zd.push(t);r.Uia.forEach(function(u){r.Jza(t,u)});r.Uia=[]};r.T6a=function(t){r.zd.splice(r.zd.indexOf(t),1)};r.ready=function(){return r.zd.length>0};r.CY=function(t){r.zd.length?r.zd.forEach(function(u){r.Jza(u,t)}):r.Uia.push(t)};r.Jza=function(t,u){t.CY(function(){r.zd.forEach(function(v){v!=t&&v.Ecb()}); u()})};r.zd=[];r.Uia=[];return r}(k);var c=function(){return function(q,r){this.reason=q;this.Fn=r;this.context=this}}(),d="vr",f="play",l={};l[d]=0;l[f]=1;var p=function(){function q(){this.Ld=!1;this.GV=null;this.Ha=this.Pa=100;this.wga=this.Cj=void 0;this.xga=100;this.qa=document.createElement("div");this.qa.style.opacity="0";this.qa.style.display="none";this.qa.style.transition="opacity 0.3s";this.qa.addEventListener("transitionend",this.ola.bind(this,!1));this.ae=document.createElement("div"); this.OQa(!0);this.ae.style.position="absolute";this.ae.style.left="0";this.ae.style.top="0";this.ae.style.right="0";this.ae.style.bottom="0";this.qa.appendChild(this.ae);this.Id=document.createElement("img");this.Id.style.cursor="pointer";this.Id.style.position="absolute";this.Id.style.left="50%";this.Id.style.top="50%";this.Id.style.transform="translate(-50%, -50%)";this.qa.appendChild(this.Id)}q.prototype.cc=function(){return this.qa};q.prototype.setSize=function(r,t){if(this.Pa!==r||this.Ha!== t)this.Pa=r,this.Ha=t,this.jHa()};q.prototype.OQa=function(r){this.ae.style.backdropFilter=r?"blur(8px)":"none"};q.prototype.ig=function(r){this.Ld!=r&&(this.Ld=r,this.GV&&(clearTimeout(this.GV),this.GV=null),this.Ld?(this.qa.style.display="block",this.qa.style.opacity="0",this.GV=setTimeout(function(){this.GV=null;this.qa.style.opacity="1"}.bind(this),30)):this.qa.style.opacity="0")};q.prototype.kra=function(r){this.Cj!=r&&(this.Cj=r,this.sab())};q.prototype.ola=function(){this.Ld||(this.qa.style.display= "none")};q.prototype.sab=function(){switch(this.Cj){case q.Nba:this.wga=h.Fx;this.xga=h.hL;break;case q.xta:this.wga=h.Yp,this.xga=h.mWa}this.Id.src=this.wga||"";this.jHa()};q.prototype.jHa=function(){g.ub()?(this.Id.style.maxWidth=Math.round(this.Pa*.5)+"px",this.Id.style.width="20vmin"):(this.Id.style.maxWidth=Math.round(this.Pa*.33)+"px",this.Id.style.width=this.xga+"px")};q.Nba="play";q.xta="vr";return q}();a.iua=p;return a}); define("tdv/player/view/util/xr/Hash",["require","exports"],function(){return function(){function a(){}a.addParameter=function(m){this.removeParameter(m);var h=this.toArray();h.push(m);this.ISa(h)};a.removeParameter=function(m){var h=this.toArray().filter(function(n){return n!=m});this.ISa(h)};a.toArray=function(){var m=window.location.hash.substring(1);return m.length?m.split("&"):[]};a.ISa=function(m){window.location.hash="#"+(m.length?m.join("&"):"")};return a}()}); define("tdv/player/view/util/xr/VRPreconditionsChecker","require exports tdv/player/view/util/Device tdv/player/view/util/Gyroscope tdv/player/view/util/InfoWindow tdv/view/util/Fullscreen tdv/view/util/UserInitiatedAction tdv/player/view/UserInteractionWindow tdv/player/view/util/xr/Hash tdv/player/view/util/xr/pointer/SelectionMode tdv/player/view/util/xr/SessionMode tdv/player/view/util/URL".split(" "),function(a,m,h,n,g,k,e,b,c,d,f,l){var p=!1;e.wait(function(){setTimeout(function(){p=!0},10)}); return function(){function q(){}q.jB=function(r,t){this.pKa(r,t)};q.pKa=function(r,t){function u(){w.pKa(r,t)}function v(){w.$lb(r,t)}var w=this;this.XR.sP?n.disabled?g.vta.show(function(){n.Nqa(u)}):k.enabled()||!e.y8()?(k.qm(),b.CY(u)):v():this.XR.e$?v():h.jE()?v():h.xc()==h.qx||h.xc()==h.ru?p?v():e.y8()?setTimeout(v,10):b.CY(function(){setTimeout(v,10)}):e.y8()?v():b.CY(v)};q.$lb=function(r,t){function u(){v.akb(r,t)}var v=this;h.xc()==h.PK?(c.removeParameter("vr"),g.fUa.show(u,function(){c.addParameter("vr")}.bind(this))): h.xc()==h.OK?g.Qua.show(u):h.xc()==h.UZ?g.Qua.show():r==f.Np&&h.ub()&&!h.kf()?g.Sba.show(u):u()};q.akb=function(r,t){function u(){w.XR.Wqa=d.RUa;t()}function v(){w.XR.Wqa=d.OF;t()}var w=this;r==f.Np?u():!h.ub()||h.kf()?v():l.getQueryParameter("cardboard_version")=="1"?v():l.getQueryParameter("cardboard_version")=="2"?u():g.Paa.show(u,v)};return q}()}); define("tdv/view/util/FullWindow",["require","exports","tdv/view/util/Fullscreen"],function(a,m,h){function n(){d==document.body&&(k.style.height=window.innerHeight+"px")}function g(p,q){var r={},t=p.style,u;for(u in q)r[u]=t[u];f.push({el:p,css:r});for(u in q)t[u]=q[u]}var k=document.createElement("div");k.style.position="fixed";k.style.bottom="0";k.style.left="0";k.style.height="100vh";k.style.width="100vw";var e=document.createElement("div"),b=null,c=null,d=null,f=[],l=null;return function(){function p(q){this.qa= q}p.prototype.vt=function(){this.enabled()||this.toggle()};p.prototype.qm=function(){this.enabled()&&this.toggle()};p.prototype.toggle=function(){this.enabled()?p.cancel():p.request(this.qa)};p.prototype.enabled=function(){return p.enabled(this.qa)};p.request=function(q){if(q!==b){p.cancel();b=q;d=h.fullscreenElement()||document.body;c=q;c.parentElement.insertBefore(e,c);k.appendChild(c);for(q=0;q','','\n
\n
'].join("\n"), b=e+['','
'+k("rotate-device")+"
"].join("\n")+"
\n
",c=e+['','
Please, swipe up to
enter Fullscreen Mode
'].join("\n")+ "\n";m=m.extend(g,function(){g.call(this);this.Is=this.sC=this.vC=this.YS=this.ZS=this.lha=this.mha=void 0;this.J1=!1;this.tD=this.ija=this.kha=this.Mc=null;this.kya=[];this.wM=this.Rs=!1;this.kd=this.kd.bind(this)});m.prototype.request=function(){this.Rs||(this.Rs=!0,this.a_a(),window.addEventListener("resize",this.kd),document.body.appendChild(this.Mc),document.body.appendChild(this.tD),this.a$a=document.documentElement.style.overflow,this.$9a=document.body.style.overflow,document.documentElement.style.overflow= "auto",document.body.style.overflow="auto",this.iU())};m.prototype.cancel=function(){this.Rs&&(this.Rs=!1,window.removeEventListener("resize",this.kd),document.body.style.overflow=this.$9a,document.documentElement.style.overflow=this.a$a,document.body.removeChild(this.Mc),document.body.removeChild(this.tD),this.QEa(!1))};m.prototype.enabled=function(){return this.J1};m.prototype.a_a=function(){this.Mc||(this.Mc=this.z0({position:"fixed",top:0,left:0,zIndex:9999998},!0),this.Mc.id="tdvminuictr",this.ija= this.z0({position:"fixed",backgroundColor:"#fff",top:0,left:0,textAlign:"center"},!0,b),this.Mc.appendChild(this.ija),this.kha=this.z0({position:"fixed",backgroundColor:"#fff",top:0,left:0,textAlign:"center"},!0,c),this.Mc.appendChild(this.kha),this.tD=this.z0({position:"absolute",top:0,left:0,right:0,height:"999999999vmax",zIndex:9999999},!1),this.tD.id="tdvminuiscrl",this.tD.addEventListener("touchend",this.kd))};m.prototype.z0=function(d,f,l){var p=document.createElement("div");this.aV(p,d);l!== void 0&&this.y8a(p,l);f&&this.kya.push(p);return p};m.prototype.kd=function(){[0,250,1E3,2E3].forEach(function(d){setTimeout(this.hU.bind(this),d)}.bind(this))};m.prototype.hU=function(){this.vC==window.innerWidth&&this.sC==window.innerHeight||this.iU()};m.prototype.iU=function(){this.vC=window.innerWidth;this.sC=window.innerHeight;this.Is=this.vC>this.sC?"landscape":"portrait";if(this.Is=="landscape"){this.mha&&this.lha&&this.S3a(this.mha,this.lha)&&(!this.ZS&&!this.YS||this.T3a(this.ZS,this.YS))&& (this.ZS=this.vC,this.YS=this.sC);this.M3a()&&(this.ZS=this.vC,this.YS=this.sC);this.mha=this.vC;this.lha=this.sC;var d=this.ZS==this.vC&&this.YS==this.sC}else d=!1;this.kya.forEach(function(q){q.style.height=this.sC+"px";q.style.width=this.vC+"px"}.bind(this));var f=this.Rs&&this.Is=="portrait",l=this.Rs&&this.Is=="landscape"&&!d,p=this.Rs&&this.Is=="landscape";this.aV(this.Mc,{display:f||l?"block":"none"});this.aV(this.ija,{display:f?"block":"none"});this.aV(this.kha,{display:l?"block":"none"}); this.aV(this.tD,{display:p?"block":"none",right:l?0:"99.9%"});this.QEa(d)};m.prototype.QEa=function(d){this.W4!=null&&(clearTimeout(this.W4),this.W4=null);this.J1!=d&&(this.W4=setTimeout(function(){this.W4=null;(this.J1=d)?this.o(new n(h.Br)):this.o(new n(h.Tb));this.o(new n(h.V))}.bind(this),d?1E3:0))};m.prototype.M3a=function(){var d=window.innerWidth,f=window.innerHeight,l=Infinity;[[480,320],[960,640],[1136,640],[1334,750],[1920,1080],[2001,1125],[2048,1536],[2172,1125],[2208,1242],[2732,2048], [2436,1125]].forEach(function(p){l=Math.min(l,Math.abs(100-d*p[1]*100/(f*p[0])))});return l<=1?!0:!1};m.prototype.S3a=function(d,f){return d*window.innerHeight>f*window.innerWidth};m.prototype.T3a=function(d,f){return d*window.innerHeight>=f*window.innerWidth};m.prototype.aV=function(d,f){for(var l in f)d.style[l]=f[l]};m.prototype.y8a=function(d,f){d.innerHTML=f};return new m}); define("tdv/view/util/KeepAwake",["require","exports"],function(){return function(){function a(){}a.enable=function(){this.wakeLock===null&&navigator.wakeLock&&navigator.wakeLock.request("screen").then(function(m){this.wakeLock=m}.bind(this))};a.disable=function(){this.wakeLock!==null&&(this.wakeLock.release(),this.wakeLock=null)};a.wakeLock=null;return a}()}); define("tdv/view/util/LandscapeAnimation",["require","exports","tdv/player/l10n","tdv/view/util/Assets"],function(a,m,h,n){return new (function(){function g(){this.container=null;this.enabled=!1;this.kd=this.kd.bind(this);this.hU=this.hU.bind(this)}g.prototype.RL=function(){this.container||(this.container=document.createElement("div"),this.container.style.position="fixed",this.container.style.zIndex="1000000",this.container.style.left="0",this.container.style.top="0",this.container.style.margin="0", this.container.style.padding="0",this.container.style.height="100%",this.container.style.width="100%",this.container.style.backgroundColor="rgba(255, 255, 255, 0.99)",this.container.innerHTML=['
','','
\n
\n
','','
'+h("rotate-device")+"
","
\n
"].join("\n"))};g.prototype.show=function(k){this.enabled||(this.enabled=!0,this.RL(),k.appendChild(this.container),window.addEventListener("resize",this.kd),this.iU())};g.prototype.oe=function(){this.enabled&&(this.enabled=!1,window.removeEventListener("resize",this.kd),this.container.parentElement.removeChild(this.container))}; g.prototype.kd=function(){[0,250,1E3,2E3].forEach(function(k){setTimeout(this.hU,k)}.bind(this))};g.prototype.hU=function(){this.SJa==window.innerWidth&&this.RJa==window.innerHeight||this.iU()};g.prototype.iU=function(){this.SJa=window.innerWidth;this.RJa=window.innerHeight;this.orientation=this.SJa>this.RJa?"landscape":"portrait";this.container.style.display=this.orientation!="landscape"?"block":"none"};return g}())}); define("tdv/player/view/util/xr/XRSessionManager","require exports tdv/constants/EventName tdv/player/view/util/Device tdv/player/view/util/InfoWindow tdv/player/view/util/xr/Hash tdv/player/view/util/xr/SessionMode tdv/view/util/Fullscreen tdv/view/util/FullWindow tdv/view/util/IOSFullscreen tdv/view/util/KeepAwake tdv/view/util/LandscapeAnimation tdv/view/util/Animation three.mod".split(" "),function(a,m,h,n,g,k,e,b,c,d,f,l,p,q){function r(w,y){w?setTimeout(y,200):y()}var t=new q.Vector3,u=new q.Quaternion, v=new q.Vector3;return function(){function w(){}w.request=function(y,x,z){this.XR.isPresenting||this.XR.PX||(this.Bm=y,this.FY=x,this.Z9=z,this.Bm&&(this.XR.PX=!0,this.dib(),this.requestSession().then(function(A){this.Iib(A);this.Bm.xr.setReferenceSpaceType("local-floor");this.Bm.xr.setFoveation(this.Z9.PKa);return this.Bm.xr.setSession(A)}.bind(this)).then(function(){this.XR.referenceSpace=this.Bm.xr.getReferenceSpace();this.XR.PX=!1;this.Jib()}.bind(this)).catch(function(A){console.error(A);this.XR.PX= !1;this.Hib()}.bind(this))))};w.end=function(){this.XR.session&&this.XR.session.end()};w.requestSession=function(){return navigator.xr.requestSession(this.FY,this.Sfb())};w.Sfb=function(){var y,x=["local-floor","bounded-floor"];((y=this.Bm)===null||y===void 0?0:y.capabilities.isWebGL2)&&x.push("layers");this.FY==e.Np&&(x=x.concat(["anchors","hit-test"]));return{optionalFeatures:x}};w.dib=function(){p.hZ(!0);this.Bkb(this.Bm);this.Ylb()};w.Iib=function(y){this.gqa||(this.gqa=this.Gib.bind(this));this.hqa|| (this.hqa=this.Kib.bind(this));y.addEventListener("end",w.gqa);y.addEventListener("select",w.hqa)};w.Hib=function(){p.hZ(!1);this.vSa()};w.Jib=function(){var y;(y=this.Bm)===null||y===void 0||y.xr.setAnimationLoop(this.Bp.bind(this));p.ARa(this.requestFrame.bind(this),this.Hcb.bind(this));p.hZ(!1);this.zRa(this.Bm,this.FY,this.Z9);this.Z9=this.FY=this.Bm=null;this.XR.Cm==e.Yp&&(n.ub()?b.enabled()&&n.xc()!=n.AQ&&l.show(b.fullscreenElement()):g.pta.show(this.XR.qm.bind(this.XR)))};w.Gib=function(){var y; this.XR.session&&(this.XR.session.removeEventListener("end",w.gqa),this.XR.session.removeEventListener("select",w.hqa),this.XR.anchors=[],this.XR.VI.clear(),(y=this.Bm)===null||y===void 0||y.xr.setAnimationLoop(null),p.Qjb(),this.vSa(),this.zRa(null,null,null))};w.Kib=function(){this.XR.M.o(h.Vr)};w.zRa=function(y,x,z){this.XR.Ag!==y&&(window.XR=this.XR,this.XR.Ag=y,this.XR.Cm=x,this.XR.zl=z,this.XR.session=y?y.xr.getSession():null,this.XR.isPresenting=!!y,this.XR.XA=y?this.XR.Lqa.get(y)||null:null, this.XR.Nw=y?this.XR.Kqa.get(y)||null:null,this.iTa(),r(!this.XR.isPresenting,function(){this.XR.M.o(h.V)}.bind(this)))};w.Bkb=function(y){var x=void 0;n.HJ()?x=1.2545454545454546:n.kf()?x=1.4222222222:n.ub()&&this.XR.sP&&(x=this.XR.Q9);x&&y.xr.setFramebufferScaleFactor(x)};w.Ylb=function(){var y;c.request((y=this.Bm)===null||y===void 0?void 0:y.domElement);this.XR.sP&&(this.Bm.domElement.width=this.Bm.domElement.height=100,n.xc()==n.BQ?k.addParameter("vr"):f.enable(),n.xc()==n.AQ&&d.request())}; w.vSa=function(){c.cancel();l.oe();n.ub()||g.pta.oe();this.XR.sP&&(k.removeParameter("vr"),d.cancel(),f.disable())};w.Bp=function(y){var x,z=(x=this.XR.Ag)===null||x===void 0?void 0:x.xr.getFrame();z&&(this.iTa(),x=this.x7,this.x7=null,this.gnb(z),this.XR.M.o(h.RZ),x&&x(y),this.XR.M.o(h.Zd))};w.gnb=function(y){var x=this;this.XR.anchors.forEach(function(z){if(y.trackedAnchors&&y.trackedAnchors.has(z)&&x.XR.referenceSpace){var A=y.getPose(z.anchorSpace,x.XR.referenceSpace);A&&(x.XR.VI.has(z)||x.XR.VI.set(z, new q.Matrix4),x.XR.VI.get(z).fromArray(A.transform.matrix).premultiply(x.XR.Vh.matrixWorld).decompose(t,u,v).compose(t,u,v.set(1,1,1)))}})};w.iTa=function(){if(this.XR.session&&this.XR.session.renderState)if(this.XR.session.renderState.baseLayer)this.XR.framebufferWidth=this.XR.session.renderState.baseLayer.framebufferWidth,this.XR.framebufferHeight=this.XR.session.renderState.baseLayer.framebufferHeight;else{var y=this.XR.session.renderState.layers;y&&y.length>0&&y[0].textureWidth&&(this.XR.framebufferWidth= y[0].textureWidth,this.XR.framebufferHeight=y[0].textureHeight)}};w.requestFrame=function(y){this.x7=y;return 0};w.Hcb=function(){this.x7=null};w.Bm=null;w.Z9=null;w.FY=null;w.x7=null;return w}()}); define("tdv/player/view/util/XR","require exports tdv/utils tdv/events/EventDispatcher tdv/player/view/util/xr/APIAvailabilityChecker tdv/player/view/util/xr/CameraPosition tdv/player/view/util/xr/pointer/PointerType tdv/player/view/util/xr/RendererList tdv/player/view/util/xr/RendererType tdv/player/view/util/xr/pointer/SelectionMode ./xr/SessionMode tdv/player/view/util/xr/Type tdv/player/view/util/xr/ui/UI tdv/player/view/util/xr/ui/UIPanel tdv/player/view/util/xr/VisibilityListener tdv/player/view/util/xr/VRAutoStart tdv/player/view/util/xr/pointer/XRControllers tdv/player/view/util/xr/pointer/XRGazePointer tdv/player/view/util/xr/pointer/XRPointer tdv/player/view/util/xr/XRSettings tdv/player/view/util/xr/VRPreconditionsChecker tdv/player/view/util/xr/XRSessionManager three.mod".split(" "),function(a, m,h,n,g,k,e,b,c,d,f,l,p,q,r,t,u,v,w,y,x,z,A){a=function(){function D(){}D.initialize=function(F){g.initialize(function(){this.Un.forEach(function(C){C.xr.enabled=this.vQ}.bind(this));r.initialize();t.initialize();u.initialize();v.initialize();w.initialize();k.initialize();p.initialize();this.GMa=!0;F()}.bind(this))};D.getType=function(){return this.sP?this.Lx.lo:this.Lx.rWa};D.vt=function(F,C,B){this.GMa?!this.vQ||this.isPresenting||this.PX||this.jB(C,function(){z.request(F,C,B)}.bind(z)):this.initialize(function(){D.vt(F, C,B)}.bind(D))};D.qm=function(){z.end()};D.JRa=function(F){w.plb(F)};D.setScale=function(F){k.setScale(F)};D.setPosition=function(F){k.setPosition(F)};D.jK=function(F){k.jK(F)};D.a$=function(){k.a$()};D.ura=function(F,C,B,H){b.Ikb(F,C,B);switch(H){case c.bca:u.FRa(!0);u.tRa(!0);break;default:u.FRa(!1),u.tRa(!1)}};D.Xbb=function(F){F.xr.enabled=this.vQ;b.add(F)};D.Ejb=function(F){b.remove(F)};D.XE=function(F,C,B,H){H===void 0&&(H=void 0);F.We=C;F.mr=B;F.yw=H;C&&(F.mPa=Date.now())};D.xRa=function(F, C){F.eA=C};D.z$=function(F,C){C!=F.disabled&&(F.disabled=C)};D.OY=function(F,C){u.dkb(F,C)};D.klb=function(F,C){F.Gn=C};D.mlb=function(F,C){F.hidden=C};D.yRa=function(F,C){F.f8=C};D.Ljb=function(){var F=this;return(new Promise(function(C,B){F.Wq=C;F.sO=B})).then(function(C){F.anchors.push(C);return C}).finally(function(){F.Wq=F.sO=null})};D.Ccb=function(){this.sO&&this.sO("cancelled")};D.beb=function(F){var C=this.anchors.indexOf(F);C!=-1&&(this.anchors.splice(C,1),this.VI.delete(F),F.delete&&F.delete())}; D.log=function(){h.log("VR: "+(this.vQ?"available":"not available"))};D.jB=function(F,C){x.jB(F,C)};D.qua=e;D.Lx=l;D.SQ=c;D.El=f;D.Uua=y;D.vQ=!0;D.mIa=!0;D.sP=!1;D.Ag=null;D.XA=null;D.Nw=null;D.isPresenting=!1;D.PX=!1;D.session=null;D.Cm=null;D.framebufferWidth=void 0;D.framebufferHeight=void 0;D.ug=new A.Quaternion;D.EO=1.7;D.Ec=new A.Vector3;D.zi=1;D.xl=new A.Quaternion;D.waa=new A.Vector3;D.Q9=Math.min(1,1280/(Math.max(screen.width,screen.height)*window.devicePixelRatio));D.Un=[];D.zl=null;D.Lqa= new Map;D.Kqa=new Map;D.M=new n;D.referenceSpace=null;D.GMa=!1;D.ud=[];D.aP=new A.Ray;D.e$=null;D.anchors=[];D.VI=new Map;D.Wq=null;D.sO=null;return D}();g.XR=a;k.XR=a;b.XR=a;p.XR=a;q.XR=a;r.XR=a;t.XR=a;u.XR=a;v.XR=a;w.XR=a;x.XR=a;return z.XR=a}); define("tdv/player/parser/helper/AppResizeUpdater",["require","exports","tdv/constants/EventName","tdv/player/view/util/XR"],function(a,m,h,n){var g=/^\s*((\+|\-)?(\d*\.)?\d+)\s*(vmin|vmax|vw|vh|px|%)?\s*$/i;return function(){function k(e){this.Gb=e;this.DO=this.DO.bind(this);this.Gb.bind(h.$b,this.kd,this,!0);n.M.bind(h.V,this.kd,this,!0);this.Cka=new Map;this.f0=[];this.kd()}k.prototype.kd=function(){var e=this;this.cbb();this.Cka.forEach(function(b){for(var c in b)e.DO(b[c])});this.f0.forEach(this.DO)}; k.prototype.cbb=function(){var e;if(n.isPresenting)var b=e=1024;else e=this.Gb.nb(),b=this.Gb.Mb();this.o6=e*.01;this.i6=b*.01;this.HHa=Math.min(this.o6,this.i6);this.GHa=Math.max(this.o6,this.i6)};k.prototype.DO=function(e){e(this.o6,this.i6,this.HHa,this.GHa)};k.prototype.Fbb=function(e){this.f0.push(e)};k.prototype.tjb=function(e){e=this.f0.indexOf(e);e>=0&&this.f0.splice(e,1)};k.prototype.w6=function(e,b,c,d){function f(p,q,r,t){b.call(e,c,l(p,q,r,t))}var l=k.j1a(d);(d=this.Cka.get(e))||this.Cka.set(e, d={});d[c]=f;f(this.o6,this.i6,this.HHa,this.GHa)};k.get=function(e){var b=k.zd.get(e);b||(b=new k(e),k.zd.set(e,b));return b};k.w6=function(e,b,c,d){var f=e.get&&e.get("application")||e.Vb&&e.Vb();f?(k.FDa(),k.get(f).w6(e,b,c,d)):k.oXa(e,b,c,d)};k.oXa=function(e,b,c,d){k.Via.push({instance:e,Xlb:b,name:c,value:d});k.jN||(k.jN=setTimeout(function(){k.jN=null;k.FDa()},100))};k.FDa=function(){k.jN&&(clearTimeout(k.jN),k.jN=null);var e=k.Via;k.Via=[];e.forEach(function(b){k.w6(b.instance,b.Xlb,b.name, b.value)})};k.j1a=function(e){var b=k.zG[e];if(b)return b;if(typeof e!="string")return k.zG[e]=function(){return e};var c=(b=g.exec(e))&&parseFloat(b[1]);switch(b&&b[4]&&b[4].toLowerCase()){case "vw":return k.zG[e]=function(d){return d*c};case "vh":return k.zG[e]=function(d,f){return f*c};case "vmin":return k.zG[e]=function(d,f,l){return l*c};case "vmax":return k.zG[e]=function(d,f,l,p){return p*c};default:return k.zG[e]=function(){return e}}};k.zd=new Map;k.Via=[];k.jN=null;k.zG={};return k}()}); define("tdv/player/parser/ClassInfo","require exports tdv/player/script/definitions tdv/player/parser/helper/AppResizeUpdater tdv/player/view/util/URL tdv/utils".split(" "),function(a,m,h,n,g,k){h=k.Wdb(h);var e=function(){function b(c,d,f){this.LL=c;this.yR=f;this.T3=d.parent;this.W3a=d.isValidRoot||!1;this.Nia={};this.Jia=[];this.lDa=[];this.kDa=[];this.H0={};c=d.properties||{};for(var l in c)f=c[l],this.Nia[l]=f.type,f.isUrl&&this.lDa.push(l),f.isSize&&this.kDa.push(l),f.order!==void 0&&(this.Jia[f.order]= l),f["default"]!==void 0&&(this.H0[l]=f["default"]);this.iDa=[];this.jDa=[];d=d.events||{};for(var p in d)d[p].isDeferred?this.iDa.push(p):this.jDa.push(p);this.KC=this.yC=this.$R=this.h5=this.tI=this.e6=this.LI=this.aM=this.zL=this.hR=void 0;this.Yza=!1}b.prototype.Gfb=function(){if(this.T3)return b.Ci(this.T3)};b.prototype.tA=function(){return this.LL};b.prototype.kX=function(){return this.FC()?this.Hy().kX().concat(this.LL):[this.LL]};b.prototype.hasAttributes=function(){return this.getAttributeNames().length> 0};b.prototype.hasAttribute=function(c){return this.goa(c)?!0:!1};b.prototype.getAttributeNames=function(){this.hR==void 0&&this.exa();return this.hR};b.prototype.BLa=function(){return this.Jia?this.Jia:this.FC()?this.Hy().BLa():[]};b.prototype.$Ka=function(){if(this.aM)return this.aM;this.aM={};if(this.FC()){var c=this.Hy().$Ka(),d;for(d in c)this.aM[d]=c[d]}if(this.H0)for(d in this.H0)this.aM[d]=this.H0[d];return this.aM};b.prototype.goa=function(c){this.zL==void 0&&this.exa();return this.zL[c]}; b.prototype.Igb=function(){return this.ULa().length>0};b.prototype.ULa=function(){this.LI==void 0&&this.lxa();return this.LI};b.prototype.Xfb=function(){this.e6==void 0&&this.lxa();return this.e6};b.prototype.Fgb=function(){return this.OLa().length>0};b.prototype.OLa=function(){this.tI==void 0&&this.kxa();return this.tI};b.prototype.Ufb=function(){this.h5==void 0&&this.kxa();return this.h5};b.prototype.sgb=function(){return this.loa().length>0};b.prototype.kMa=function(c){this.yC==void 0&&this.SL(); return this.yC.indexOf(c)!=-1};b.prototype.loa=function(){this.yC==void 0&&this.SL();return this.yC};b.prototype.xgb=function(){return this.toa().length>0};b.prototype.lMa=function(c){this.KC==void 0&&this.SL();return this.KC.indexOf(c)!=-1};b.prototype.toa=function(){this.KC==void 0&&this.SL();return this.KC};b.prototype.ugb=function(c){this.$R==void 0&&this.SL();return this.$R.indexOf(c)!=-1};b.prototype.hfb=function(){this.$R==void 0&&this.SL();return this.$R};b.prototype.pLa=function(){return this.W3a|| this.FC()&&this.Hy().pLa()};b.prototype.Ai=function(c,d,f,l){this.x6a(d,f);var p=this.yR;var q=l&&l.length>0?new (k.extend(p,function(){p.apply(this,l)})):new p;q.set("application",c);q.set("baseDirectoy",d);q.set("queryStringParameters",f);q.set("class",this.tA());return q};b.prototype.Tma=function(c){var d=this.$Ka(),f;for(f in d)c.set(f,d[f])};b.prototype.x6a=function(c,d){this.Yza||(this.Yza=!0,this.G_a(c,d),this.x0a(),this.XWa())};b.prototype.G_a=function(c,d){if(this.Igb()||this.Fgb()){var f= this.yR.prototype,l=this.Xfb(),p=this.Ufb(),q=f.set;f.set=function(r,t){l[r]?(!t||g.iE(t)||g.s8(t)||g.yhb(t)||(t=g.MD(g.lB(t,c),d)),q.call(this,r,t)):p[r]?n.w6(this,q,r,t):q.call(this,r,t)}}};b.prototype.XWa=function(){var c=this.yR.prototype;this.getAttributeNames().forEach(function(d){Object.defineProperty(c,d,{get:function(){return this.get(d)},set:function(f){this.set(d,f)},enumerable:!0,configurable:!0})})};b.prototype.x0a=function(){var c=this.yR.prototype,d=this;this.hasAttributes()&&(c.set= c.set,c.get=c.get);if(this.sgb()||this.xgb())c.bind=c.bind,c.getBindings=c.fP,c.hasBindings=c.c8,c.trigger=c.o,c.unbind=c.h;c.getClassName=function(){return d.tA()};c.getClassPath=function(){return d.kX()};c.getAttributeNames=function(){return d.getAttributeNames()};c.getEventNames=function(){return d.hfb()};c.hasEvent=function(f){return d.ugb(f)}};b.prototype.exa=function(){this.hR=[];this.zL={};for(var c in this.Nia)this.hR.push(c),this.zL[c]=b.Kfa(this.Nia[c]);if(this.FC())for(var d=this.Hy(), f=d.getAttributeNames(),l=0;l=0&&c.lastIndexOf("]")==c.length-1};b.o1a=function(c){return c.substring(0,c.indexOf("["))};b.qya=function(c){return c.substring(c.indexOf("[")+1,c.lastIndexOf("]"))};b.rya=function(c){c=b.qya(c);for(var d=[],f="",l=0,p=0;p>2]|=b<>2]|=(192|b>>6)<=57344?l[d>>2]|=(224|b>>12)<>2]|=(240|b>>18)<>2]|=(128|b>>12&63)<>2]|=(128|b>>6&63)<>2]|=(128|b&63)<=64?(this.block=l[16],this.start=d-64,this.hash(),this.e8=!0):this.start=d}this.bytes>4294967295&&(this.Joa+=this.bytes/4294967296<<0,this.bytes%=4294967296);return this}};a.prototype.xKa=function(){if(!this.boa){this.boa=!0;var e=this.bna,b=this.Mhb; e[16]=this.block;e[b>>2]|=h[b&3];this.block=e[16];b>=56&&(this.e8||this.hash(),e[0]=this.block,e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0);e[14]=this.Joa<<3|this.bytes>>>29;e[15]=this.bytes<<3;this.hash()}};a.prototype.hash=function(){var e=this.tX,b=this.uX,c=this.vX,d=this.wX,f=this.xX,l=this.yX,p=this.zX,q=this.AX,r=this.bna,t;for(t=16;t<64;++t){var u=r[t-15];var v=(u>>>7|u<<25)^(u>>>18|u<<14)^u>>>3;u=r[t-2];u=(u>>>17|u<<15)^(u>>>19|u<<13)^u>>>10;r[t]= r[t-16]+v+r[t-7]+u<<0}var w=b&c;for(t=0;t<64;t+=4){if(this.first){var y=704751109;u=r[0]-210244248;q=u-1521486534<<0;d=u+143694565<<0;this.first=!1}else{v=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10);u=(f>>>6|f<<26)^(f>>>11|f<<21)^(f>>>25|f<<7);y=e&b;var x=y^e&c^w;var z=f&l^~f&p;u=q+u+z+g[t]+r[t];v+=x;q=d+u<<0;d=u+v<<0}v=(d>>>2|d<<30)^(d>>>13|d<<19)^(d>>>22|d<<10);u=(q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7);w=d&e;x=w^d&b^y;z=q&f^~q&l;u=p+u+z+g[t+1]+r[t+1];v+=x;p=c+u<<0;c=u+v<<0;v=(c>>>2|c<<30)^(c>>> 13|c<<19)^(c>>>22|c<<10);u=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7);y=c&d;x=y^c&e^w;z=p&q^~p&f;u=l+u+z+g[t+2]+r[t+2];v+=x;l=b+u<<0;b=u+v<<0;v=(b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10);u=(l>>>6|l<<26)^(l>>>11|l<<21)^(l>>>25|l<<7);w=b&c;x=w^b&d^y;z=l&p^~l&q;u=f+u+z+g[t+3]+r[t+3];v+=x;f=e+u<<0;e=u+v<<0}this.tX=this.tX+e<<0;this.uX=this.uX+b<<0;this.vX=this.vX+c<<0;this.wX=this.wX+d<<0;this.xX=this.xX+f<<0;this.yX=this.yX+l<<0;this.zX=this.zX+p<<0;this.AX=this.AX+q<<0};a.prototype.Lgb=function(){this.xKa(); var e=this.tX,b=this.uX,c=this.vX,d=this.wX,f=this.xX,l=this.yX,p=this.zX,q=this.AX;return m[e>>28&15]+m[e>>24&15]+m[e>>20&15]+m[e>>16&15]+m[e>>12&15]+m[e>>8&15]+m[e>>4&15]+m[e&15]+m[b>>28&15]+m[b>>24&15]+m[b>>20&15]+m[b>>16&15]+m[b>>12&15]+m[b>>8&15]+m[b>>4&15]+m[b&15]+m[c>>28&15]+m[c>>24&15]+m[c>>20&15]+m[c>>16&15]+m[c>>12&15]+m[c>>8&15]+m[c>>4&15]+m[c&15]+m[d>>28&15]+m[d>>24&15]+m[d>>20&15]+m[d>>16&15]+m[d>>12&15]+m[d>>8&15]+m[d>>4&15]+m[d&15]+m[f>>28&15]+m[f>>24&15]+m[f>>20&15]+m[f>>16&15]+m[f>> 12&15]+m[f>>8&15]+m[f>>4&15]+m[f&15]+m[l>>28&15]+m[l>>24&15]+m[l>>20&15]+m[l>>16&15]+m[l>>12&15]+m[l>>8&15]+m[l>>4&15]+m[l&15]+m[p>>28&15]+m[p>>24&15]+m[p>>20&15]+m[p>>16&15]+m[p>>12&15]+m[p>>8&15]+m[p>>4&15]+m[p&15]+m[q>>28&15]+m[q>>24&15]+m[q>>20&15]+m[q>>16&15]+m[q>>12&15]+m[q>>8&15]+m[q>>4&15]+m[q&15]};a.prototype.digest=function(){this.xKa();var e=this.tX,b=this.uX,c=this.vX,d=this.wX,f=this.xX,l=this.yX,p=this.zX,q=this.AX;return[e>>24&255,e>>16&255,e>>8&255,e&255,b>>24&255,b>>16&255,b>>8&255, b&255,c>>24&255,c>>16&255,c>>8&255,c&255,d>>24&255,d>>16&255,d>>8&255,d&255,f>>24&255,f>>16&255,f>>8&255,f&255,l>>24&255,l>>16&255,l>>8&255,l&255,p>>24&255,p>>16&255,p>>8&255,p&255,q>>24&255,q>>16&255,q>>8&255,q&255]};return function(e){return(new a(!0)).update(e).Lgb()}}); define("tdv/player/parser/Sign",["require","tdv/util/Sha256"],function(a){function m(){for(var k=[[256,"9799e3eb6096a48f515a94324200b7af24251a4131eccf9a2cd65d012a1f5c71"],[1024,"cbab1f6d618e723188cfdb1c7c3f47146e46da4da56030386d85055016afd5d9"],[1E4,"d9c4539649520e3f4a35e5a3331b0fbdc67958dd64ef65a83a75d545413643dd"]],e=0;eString.fromCharCode(d%256)).join("");if(g(b)!=k[e][1])return!1}return!0}function h(k){var e=Array.isArray(k)?"array": k===null?"null":typeof k;switch(e){case "array":return"["+k.map(h).join(",")+"]";case "object":return"{"+Object.keys(k).sort().map(function(b){return h(b)+":"+h(k[b])}).join(",")+"}";case "boolean":return k?"true":"false";case "number":return k.toFixed(3);case "string":return'"'+k.split('"').join('\\"')+'"';case "null":case "undefined":return e;case "function":return"<"+e+">"}return""}function n(k){return k.map(function(e){return String.fromCharCode(e)}).join("")}var g=a("tdv/util/Sha256");return{validate:function(k){var e= [104,97,115,104],b=[116,100,118],c=window.location[n([111,114,105,103,105,110])],d=k[n(e)];delete k[n(e)];k=n(b)+h(k);k=g(k);b=n(b)+c;b=g(b);return k==d||b==d||!m()}}}); define("tdv/player/view/util/geo/Point",["require"],function(){function a(m,h,n){this.set(typeof m!="undefined"?m:0,typeof h!="undefined"?h:0,typeof n!="undefined"?n:0)}a.prototype.set=function(m,h,n){this.x=m;this.y=h;this.z=n;return this};a.prototype.clone=function(){return new a(this.x,this.y,this.z)};a.prototype.apply=function(m){m.vO(this)};a.prototype.project=function(m){m.project(this)};return a}); define("tdv/player/view/util/geo/Vector",["require","tdv/utils","tdv/player/view/util/geo/Point"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/util/geo/Point"),n=m.extend(h,function(g,k,e){h.call(this,g,k,e)});n.prototype.clone=function(){return new n(this.x,this.y,this.z)};n.prototype.Jc=function(){return this.x==0&&this.z==0?0:-Math.atan2(this.x,this.z)};n.prototype.Ic=function(){return this.y==0&&this.z==0?0:Math.atan2(this.y,Math.sqrt(this.z*this.z+this.x*this.x))};n.prototype.yoa=function(){return Math.sqrt(this.x* this.x+this.y*this.y+this.z*this.z)};n.prototype.cZ=function(g){g/=this.yoa();this.x*=g;this.y*=g;this.z*=g;return this};n.prototype.normalize=function(){return this.cZ(1)};n.prototype.RO=function(g){return this.x*g.x+this.y*g.y+this.z*g.z};n.prototype.a7=function(g){var k=this.z*g.x-this.x*g.z,e=this.x*g.y-this.y*g.x;this.x=this.y*g.z-this.z*g.y;this.y=k;this.z=e;return this};n.YD=function(g,k){return new n(k.x-g.x,k.y-g.y,k.z-g.z)};n.E7=function(g,k){g=NaN-g;k=NaN-k;return Math.sqrt(g*g+k*k+NaN)}; n.yt=function(g,k,e){var b=Math.cos(k)*Math.sin(g),c=Math.sin(k);g=Math.cos(k)*Math.cos(g);return e?e.set(b,c,g):new n(b,c,g)};return n}); define("tdv/player/script/AdjacentPanorama",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo","tdv/player/view/util/geo/Vector"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/player/parser/ClassInfo"),n=a("tdv/player/view/util/geo/Vector");a=h.define("AdjacentPanorama",m,function(){m.call(this);this.vma=this.py=void 0});a.prototype.bLa=function(){if(this.py===void 0){for(this.py=this.Hya()-this.get("yaw");this.py>180;)this.py-=360;for(;this.py<-180;)this.py+=360}return this.py}; a.prototype.gfb=function(){this.vma===void 0&&(this.vma=n.yt(this.Hya()*Math.PI/180,0));return this.vma};a.prototype.Bcb=function(){return this.get("yaw")!==void 0&&this.get("backwardYaw")!==void 0};a.prototype.Hya=function(){return this.get("backwardYaw")-180};return a});define("tdv/player/script/AmbientLight",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("AmbientLight",m,function(){m.call(this)})}); define("tdv/player/script/Model3DPostprocessing",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");a=a("tdv/player/parser/ClassInfo").define("Model3DPostprocessing",m,function(){m.call(this)});a.prototype.$E=function(h){this.Tq!==h&&(this.Tq=h,this.HGa())};a.prototype.Gp=function(h){this.QM!==h&&(this.QM=h,this.HGa())};a.prototype.HGa=function(){this.set("disabled",this.QM&&this.get("disableWhileMoving")||this.Tq&&this.get("disableWhileUserInteracting"))}; return a});define("tdv/player/script/AmbientOcclusionModel3DPostprocessing",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DPostprocessing"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DPostprocessing");return m.define("AmbientOcclusionModel3DPostprocessing",h,function(){h.call(this)})});define("tdv/constants/PlaybackState",["require","exports"],function(){return{ca:"stopped",PLAYING:"playing",Zb:"paused"}}); define("tdv/player/script/ImageResource",["require","exports","tdv/player/parser/ClassInfo","tdv/binding/Bindable"],function(a,m,h,n){a=function(g){function k(){return g.call(this)||this}P(k,g);return k}(n);h.create("ImageResource",a);return a}); define("tdv/player/script/AnimatedImageResource","require tdv/utils tdv/constants/EventName tdv/constants/PlaybackState tdv/player/parser/ClassInfo tdv/player/script/ImageResource".split(" "),function(a){a("tdv/utils");var m=a("tdv/constants/EventName"),h=a("tdv/constants/PlaybackState"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/player/script/ImageResource");a=n.define("AnimatedImageResource",g,function(){g.call(this)});a.prototype.play=a.prototype.play=function(){this.set("state",h.PLAYING)};a.prototype.pause= a.prototype.pause=function(){this.set("state",h.Zb)};a.prototype.stop=a.prototype.stop=function(){this.set("state",h.ca)};a.prototype.set=function(k,e){switch(k){case "state":(this.get("state")||h.ca)==h.ca&&e==h.PLAYING&&this.o(m.Vp)}g.prototype.set.call(this,k,e)};a.prototype.yk=function(k,e,b){e||(e=1);b||(b=1);return g.prototype.yk.call(this,k,e*this.get("colCount",1),b*this.get("rowCount",1))};return a}); define("tdv/player/script/AntialiasModel3DPostprocessing",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DPostprocessing"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DPostprocessing");return m.define("AntialiasModel3DPostprocessing",h,function(){h.call(this)})}); define("tdv/player/script/HotspotMapOverlay",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");a=a("tdv/player/parser/ClassInfo").define("HotspotMapOverlay",m,function(h){m.call(this);this.AN=h===void 0?!0:h;this.GM=this.Us=this.Ss=this.Ja=void 0});a.prototype.getItem=function(){if(this.Ja===void 0){var h=this.get("image");this.Ja=h?h.Z6(this.AN):null}return this.Ja};a.prototype.ILa=function(){if(this.Ss===void 0){var h=this.get("rollOverImage"); this.Ss=h?h.Z6(this.AN):null}return this.Ss};a.prototype.NLa=function(){if(this.Us===void 0){var h=this.get("selectedImage");this.Us=h?h.Z6(this.AN):null}return this.Us};a.prototype.wfb=function(){if(this.GM===void 0){this.GM=[];var h=this.getItem();h&&this.GM.push(h);(h=this.ILa())&&this.GM.push(h);(h=this.NLa())&&this.GM.push(h)}return this.GM};return a}); define("tdv/player/script/AreaHotspotMapOverlay",["require","tdv/player/parser/ClassInfo","tdv/player/script/HotspotMapOverlay"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/HotspotMapOverlay");return m.define("AreaHotspotMapOverlay",h,function(){h.call(this,!0)})}); define("tdv/player/script/AudioResource",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("AudioResource",m,function(){m.call(this)})});define("tdv/view/constants/CreationPolicy",["require","exports"],function(){return{aL:"inAdvance",eta:"delayed"}}); define("tdv/view/buttons/ButtonGroup",["require","exports","tdv/constants/EventName"],function(a,m,h){return function(){function n(){var g=this;this.ek=[];this.nBa=function(k){g.HEa(k.source)}}n.prototype.register=function(g){this.YWa(g);this.ek.push(g);g.get("pressed")&&this.HEa(g)};n.prototype.unregister=function(g){this.O6a(g)};n.prototype.YWa=function(g){g.bind(h.Rk,this.nBa,this,!0)};n.prototype.O6a=function(g){g.unbind(h.Rk,this.nBa,this)};n.prototype.HEa=function(g){this.ek.forEach(function(k){k.set("pressed", k==g)})};n.register=function(g,k){this.unregister(g);k=this.Bj(k);g.set("__button_group",k);k.register(g)};n.unregister=function(g){var k=g.get("__button_group");k&&(k.unregister(g),g.set("__button_group",void 0))};n.Bj=function(g){return this.Kza[g]||(this.Kza[g]=new n)};n.Kza={};return n}()});define("tdv/view/constants/ButtonMode",["require","exports"],function(){return{af:"push",ak:"toggle"}}); define("tdv/view/constants/OverflowPolicy",["require","exports"],function(){return{kL:"visible",wta:"hidden",Ur:"scroll"}});define("tdv/view/constants/Alignment",["require","exports"],function(){return{fb:"left",Db:"right",$e:"center",Tc:"top",Gc:"bottom",$d:"middle"}});define("tdv/view/constants/ScrollBarVisiblePolicy",["require","exports"],function(){return{uc:"rollOver",ALWAYS:"always"}}); define("tdv/view/constants/LayoutMode",["require","exports"],function(){return{QZ:"absolute",Mi:"horizontal",JB:"grid",Uk:"vertical"}});define("tdv/view/containers/layout/ChildBounds",["require","exports"],function(){return function(){return function(a){this.ge=a;this.height=this.width=this.y=this.x=0}}()});define("tdv/view/containers/layout/MeasureResult",["require","exports"],function(){return function(){return function(){this.minHeight=this.minWidth=this.height=this.width=0}}()}); define("tdv/view/containers/layout/Layout",["require","exports","tdv/view/constants/Alignment","tdv/view/containers/layout/ChildBounds","tdv/view/containers/layout/MeasureResult"],function(a,m,h,n,g){return function(){function k(){this.dc=null;this.JD=h.Tc;this.GC=h.fb;this.MI=this.Ky=0}k.prototype.fRa=function(e){this.Ky!=e&&(this.Ky=e,this.wh())};k.prototype.J$=function(e){this.MI!=e&&(this.MI=e,this.wh())};k.prototype.CRa=function(e){this.dc=e;this.wh()};k.prototype.aQ=function(e){this.GC!=e&& (this.GC=e,this.wh())};k.prototype.gP=function(){return this.GC};k.prototype.gQ=function(e){this.JD!=e&&(this.JD=e,this.wh())};k.prototype.iP=function(){return this.JD};k.prototype.measure=function(){return new g};k.prototype.update=function(){var e=this.VZa();this.XV(e);this.e8a(e)};k.prototype.XV=function(){};k.prototype.n1=function(){for(var e=this.qza(),b=[],c=0;cb&&(b=this.wH,p=!0),p&&(b=Math.max(1,Math.floor((r+c)/(b+c))),b=(r-(b-1)*c)/b);else b=this.Sy;b=Math.max(1,b);var t=Math.max(1,Math.floor(.001+ (r+c)/(b+c)));var u=t*b,v=t*(b+c)-c;p=0;if(r>=v)switch(this.gP()){case h.Db:p=r-v;break;case h.$e:p=Math.round((r-v)*.5);break;default:p=0}r=[];v=[];for(var w=0;wu&&(u=this.QS,p=!0),p&&(u=Math.max(1, Math.floor((w+c)/(u+c))),u=(w-(u-1)*c)/u);else u=this.Ry;q=Math.max(1,Math.ceil(q/t));p=q*u;d=q*(u+c)-c;var y=0;if(w>=d)switch(this.iP()){case h.Gc:y=w-d;break;case h.$d:y=Math.round((w-d)*.5);break;default:y=0}d=[];for(var x=[],z=0;z0?c/p:0);l=[];for(d=p=0;dw?(r.width=w,c-=r.width,b=!0):(p+=t.lp,l.push(r))}q.length=0;q.push.apply(q,l)}while(b);for(d=0;d0?c/p:0),r.width=Math.round(t.lp*f),c-=r.width,p-=t.lp}};e.prototype.Fla= function(b){if(this.dc){for(var c=this.Ky,d=this.dc.Xh(),f=this.dc.Wh(),l=0,p=0,q=0;q=l)switch(this.gP()){case h.Db:d-=l;break;case h.$e:d=Math.round((d-l)*.5);break;default:d=0}else d=0;for(q=0;q=r.height)switch(this.iP()){case h.Gc:r.y=f-r.height;break;case h.$d:r.y=Math.round((f-r.height)*.5);break;default:r.y=0}else r.y=0;r.x=d;d+=r.width+c}else r.x=0,r.y=0}};return e}(n)}); define("tdv/view/containers/layout/VerticalLayout",["require","exports","tdv/view/constants/Alignment","tdv/view/containers/layout/Layout","tdv/view/containers/layout/MeasureResult"],function(a,m,h,n,g){return function(k){function e(){return k.call(this)||this}P(e,k);e.prototype.measure=function(){for(var b=new g,c=this.n1(),d=0;d0?c/p:0);l=[];for(d=p=0;dw?(r.height=w,c-=r.height,b=!0):(p+=t.kp,l.push(r))}q.length=0;q.push.apply(q,l)}while(b);for(d=0;d0?c/p:0),r.height=Math.round(t.kp*f),c-=r.height,p-=t.kp}};e.prototype.Fla= function(b){if(this.dc){for(var c=this.MI,d=this.dc.Wh(),f=this.dc.Xh(),l=0,p=0,q=0;qf&&(f=r.width),p++)}l+=c*(p-1);if(d>=l)switch(this.iP()){case h.Gc:d-=l;break;case h.$d:d=Math.round((d-l)*.5);break;default:d=0}else d=0;for(q=0;q=0&&!t;v--)this.kq.includes(this.qe[v])||(t=this.qe[v]);for(v=r+1;v0){var n=m.uk.slice();n=[].concat([n[0]],n,[n[n.length-1]]);m=a.tcb(m);m=[].concat([0],m,[1]);for(var g=0;g=0&&h.push({color:n[g],ratio:k})}for(g=0;g0?m.I6.map(function(n){return Math.min(1,Math.max(0,n))}):h==1?[.5]:Array.from({length:h}).map(function(n,g){return 1*g/(h-1)});m.lengthh&&m.splice(h,m.length-h);return m}};return a}); define("tdv/view/core/visuals/dom/DOMUIBaseVisuals","require exports tdv/view/constants/GradientDirection tdv/view/core/visualprops/UIBaseVisualProperties tdv/view/core/ZIndex tdv/view/core/visuals/Visuals tdv/view/core/visuals/util tdv/utils".split(" "),function(a,m,h,n,g,k,e,b){return function(c){function d(){var f=c.call(this)||this;f.element=null;f.Hk=null;f.Uh=null;f.Je=null;f.Fh=null;f.vl=null;f.fw=null;f.nKa=!1;return f}P(d,c);d.prototype.tp=function(){return new n};d.prototype.tk=function(f){this.$D().appendChild(f)}; d.prototype.X9=function(f){this.$D().removeChild(f)};d.prototype.appendChild=function(f){this.$D().appendChild(f.cc())};d.prototype.JMa=function(f,l){this.$D().insertBefore(f.cc(),l.cc().nextSibling)};d.prototype.KMa=function(f,l){this.$D().insertBefore(f.cc(),l.cc())};d.prototype.removeChild=function(f){f=f.cc();f.parentElement==this.$D()&&this.$D().removeChild(f)};d.prototype.cc=function(){this.element||(this.element=document.createElement("div"),this.element.style.height="0",this.element.style.margin= "0",this.element.style.padding="0",this.element.style.position="absolute",this.element.style.overflow="hidden",this.element.style.display="block",this.element.style.visibility="hidden",this.element.style.width="0",this.element.style.zIndex=g.Mua);return this.element};d.prototype.GLa=function(f){var l=b.offset(this.element);f=b.offset(f.cc());return{left:l.left-f.left,top:l.top-f.top}};d.prototype.Tfb=function(){this.Hk||(this.Hk=document.createElement("div"),this.Hk.setAttribute("tdvlayer","shadow"), this.Hk.style.position="absolute",this.Hk.style.left="0",this.Hk.style.top="0",this.Hk.style.right="0",this.Hk.style.bottom="0",this.Hk.style.zIndex=g.SVa);return this.Hk};d.prototype.R7=function(){this.Fh||(this.Fh=document.createElement("div"),this.Fh.setAttribute("tdvlayer","overShadow"),this.Fh.style.cursor="inherit",this.Fh.style.height="0",this.Fh.style.left="0",this.Fh.style.position="absolute",this.Fh.style.top="0",this.Fh.style.width="0",this.Fh.style.zIndex=g.hua);return this.Fh};d.prototype.Seb= function(){this.Uh||(this.Uh=document.createElement("div"),this.Uh.setAttribute("tdvlayer","filter"),this.Uh.style.cursor="inherit",this.Uh.style.display="none",this.Uh.style.left="0",this.Uh.style.position="absolute",this.Uh.style.top="0",this.Uh.style.userSelect="none",this.Uh.style["-webkit-user-select"]="none",this.Uh.style.zIndex=g.dUa);return this.Uh};d.prototype.Qeb=function(){this.Je||(this.Je=document.createElement("canvas"),this.Je.setAttribute("tdvlayer","background"),this.Je.style.cursor= "inherit",this.Je.style.display="none",this.Je.style.left="0",this.Je.style.position="absolute",this.Je.style.top="0",this.Je.style.userSelect="none",this.Je.style["-webkit-user-select"]="none",this.Je.style.zIndex=g.Faa);return this.Je};d.prototype.KLa=function(){this.vl||(this.vl=document.createElement("div"),this.vl.setAttribute("tdvlayer","content"),this.vl.style.position="absolute",this.vl.style.cursor="inherit",this.vl.style.inset="0",this.vl.style.overflow="visible",this.vl.style.zIndex=g.bta); return this.vl};d.prototype.$D=function(){this.fw||(this.fw=document.createElement("div"),this.fw.style.cursor="inherit",this.fw.style.inset="0",this.fw.style.position="absolute");return this.fw};d.prototype.xnb=function(){this.nKa||(this.nKa=!0,this.kA())};d.prototype.kA=function(){this.cc().appendChild(this.Tfb());this.cc().appendChild(this.R7());this.R7().appendChild(this.Seb());this.R7().appendChild(this.Qeb());this.R7().appendChild(this.KLa());this.KLa().appendChild(this.$D())};d.prototype.update= function(f){this.xnb();this.rh(f);this.oSa(f)};d.prototype.rh=function(f){this.Gnb(f);this.GK(f);this.Tnb(f);this.jnb(f);this.Ksa(f)};d.prototype.Gnb=function(f){this.K.id!==f.id&&(f.id?this.element.setAttribute("id",f.id.toString()):this.element.removeAttribute("id"));this.K.className!==f.className&&(f.className?this.element.setAttribute("tdvclass",f.className):this.element.removeAttribute("tdvclass"));this.K.tabIndex!==f.tabIndex&&(f.tabIndex!==void 0?this.element.setAttribute("tabIndex",f.tabIndex.toString()): this.element.removeAttribute("tabIndex"));this.K.ariaLabel!==f.ariaLabel&&(f.ariaLabel?this.element.setAttribute("aria-label",f.ariaLabel):this.element.removeAttribute("aria-label"));this.K.wO!==f.wO&&(f.wO?this.element.setAttribute("aria-role",f.wO):this.element.removeAttribute("aria-role"));this.K.IJ!==f.IJ&&(f.IJ?(this.Fh.style.zIndex=g.hua,this.vl.style.zIndex=g.bta):(this.Fh.style.zIndex=g.zVa,this.vl.style.zIndex=g.gUa));this.K.qY!==f.qY&&(this.element.style.zIndex=f.qY?g.Mua:g.kWa);this.K.cursor!== f.cursor&&(this.element.style.cursor=f.cursor)};d.prototype.GK=function(f){this.K.opacity!==f.opacity&&(this.element.style.opacity=f.opacity.toString());if(this.K.x!==f.x||this.K.y!==f.y||this.K.width!==f.width||this.K.height!==f.height||this.K.offsetX!==f.offsetX||this.K.offsetY!==f.offsetY||this.K.visible!==f.visible)f.visible?(this.Fh.style.width=f.width+"px",this.Fh.style.height=f.height+"px",this.element.style.left=(f.x||0)+f.offsetX+"px",this.element.style.top=(f.y||0)+f.offsetY+"px",this.element.style.width= f.width+"px",this.element.style.height=f.height+"px",this.element.style.visibility="inherit",this.element.style.overflow="visible",f.visible&&this.Fh.clientWidth===0&&f.width!=0&&(this.element.style.width="0",this.element.style.width=f.width+"px")):(this.element.style.visibility="hidden",this.element.style.width="0",this.element.style.height="0",this.element.style.overflow="hidden",this.Fh.style.width="0",this.Fh.style.height="0")};d.prototype.Ksa=function(f){this.K.Jw!==f.Jw&&(this.vl.style.overflow= f.Jw?"visible":"hidden",this.fw.style.right=f.Jw?"0":"initial",this.fw.style.bottom=f.Jw?"0":"initial");this.K.Dd!==f.Dd&&(this.vl.style.left=f.Dd+"px");this.K.ie!==f.ie&&(this.vl.style.top=f.ie+"px");this.K.Ce!==f.Ce&&(this.vl.style.right=f.Ce+"px");this.K.Df!==f.Df&&(this.vl.style.bottom=f.Df+"px");this.K.Kc!==f.Kc&&(this.fw.style.left=-f.Kc+"px");this.K.Lc!==f.Lc&&(this.fw.style.top=-f.Lc+"px")};d.prototype.Tnb=function(f){if(this.K.borderTopLeftRadius!==f.borderTopLeftRadius||this.K.borderTopRightRadius!== f.borderTopRightRadius||this.K.borderBottomLeftRadius!==f.borderBottomLeftRadius||this.K.borderBottomRightRadius!==f.borderBottomRightRadius||this.K.kB!==f.kB||this.K.gu!==f.gu||this.K.hu!==f.hu||this.K.co!==f.co||this.K.tK!==f.tK||this.K.shadowColor!==f.shadowColor||this.K.$w!==f.$w){var l=f.gu+"px "+f.hu+"px "+f.co+"px "+f.tK+"px "+f.shadowColor;this.Hk.style.display=f.kB?"block":"none";this.Hk.style.boxShadow=l;this.Hk.style.borderTopLeftRadius=f.borderTopLeftRadius+"px";this.Hk.style.borderTopRightRadius= f.borderTopRightRadius+"px";this.Hk.style.borderBottomLeftRadius=f.borderBottomLeftRadius+"px";this.Hk.style.borderBottomRightRadius=f.borderBottomRightRadius+"px";this.Hk.style.opacity=f.$w.toString()}};d.prototype.jnb=function(f){if(this.K.aJ!==f.aJ||this.K.borderTopLeftRadius!==f.borderTopLeftRadius||this.K.borderTopRightRadius!==f.borderTopRightRadius||this.K.borderBottomLeftRadius!==f.borderBottomLeftRadius||this.K.borderBottomRightRadius!==f.borderBottomRightRadius||this.K.width!==f.width|| this.K.height!==f.height||this.K.visible!==f.visible){var l=Math.round(f.aJ*25),p=f.visible&&l>0;p?(this.Uh.style.display="block",this.Uh.style.backdropFilter="blur("+l+"px)",this.Uh.style.borderTopLeftRadius=f.borderTopLeftRadius+"px",this.Uh.style.borderTopRightRadius=f.borderTopRightRadius+"px",this.Uh.style.borderBottomLeftRadius=f.borderBottomLeftRadius+"px",this.Uh.style.borderBottomRightRadius=f.borderBottomRightRadius+"px",this.Uh.style.width=f.width+"px",this.Uh.style.height=f.height+"px"): this.Uh.style.display="none"}if(this.K.width!==f.width||this.K.height!==f.height||this.K.uk!==f.uk||this.K.OD!==f.OD||this.K.nm!==f.nm||this.K.Te!==f.Te||this.K.borderLeftColor!==f.borderLeftColor||this.K.Ue!==f.Ue||this.K.borderTopColor!==f.borderTopColor||this.K.xf!==f.xf||this.K.borderRightColor!==f.borderRightColor||this.K.wf!==f.wf||this.K.borderBottomColor!==f.borderBottomColor||this.K.$v!==f.$v||this.K.visible!==f.visible){var q=f.uk&&f.uk.length>0;l=!!f.$v;p=f.Te>0&&f.borderLeftColor||f.Ue> 0&&f.borderTopColor||f.xf>0&&f.borderRightColor||f.wf>0&&f.borderBottomColor;if(p=f.visible&&(q||l||p)){p=Math.max(0,f.width-(f.Te+f.xf));var r=Math.max(0,f.height-(f.Ue+f.wf));this.Je.width=p;this.Je.height=r;var t=this.Je.getContext("2d");if(q){q=e.QIa(f);var u=f.OD==h.n_?t.createLinearGradient(0,0,p,0):t.createLinearGradient(0,0,0,r);q.forEach(function(v){u.addColorStop(v.ratio,v.color)});t.fillStyle=u;t.fillRect(0,0,p,r)}else t.clearRect(0,0,p,r);l&&t.drawImage(f.$v,0,0,p,r);this.Je.style.opacity= f.nm.toString();this.Je.style.borderTopLeftRadius=f.borderTopLeftRadius+"px";this.Je.style.borderTopRightRadius=f.borderTopRightRadius+"px";this.Je.style.borderBottomLeftRadius=f.borderBottomLeftRadius+"px";this.Je.style.borderBottomRightRadius=f.borderBottomRightRadius+"px";this.Je.style.borderLeft=this.B7(f.Te,f.borderLeftColor);this.Je.style.borderTop=this.B7(f.Ue,f.borderTopColor);this.Je.style.borderRight=this.B7(f.xf,f.borderRightColor);this.Je.style.borderBottom=this.B7(f.wf,f.borderBottomColor); this.Je.style.width=p+"px";this.Je.style.height=r+"px";this.Je.style.display="block";this.Je.clientWidth===0&&this.Je.width!==0&&(this.Je.style.width="0",this.Je.style.width=this.Je.width+"px")}else this.Je.style.display="none"}};d.prototype.B7=function(f,l){return f>0?l?f+"px solid "+l:f+"px solid transparent":"none"};return d}(k)}); define("tdv/view/core/visualprops/ContainerVisualProperties",["require","exports","tdv/view/core/visualprops/UIBaseVisualProperties"],function(a,m,h){return function(n){function g(){var k=n!==null&&n.apply(this,arguments)||this;k.contentHeight=0;k.contentWidth=0;k.Bk=!1;k.Wg=0;k.Bf=0;k.Zt="#000000";k.$t=.5;k.ph=10;k.Vn=5;k.Wn=5;k.Lk=!1;return k}P(g,n);return g}(h)}); define("tdv/constants/Key",["require","exports"],function(){var a={bk:38,Ji:40,Db:39,fb:37,iL:32,Mp:65,xWa:90,so:87,po:83,Sp:68,Q:81,E:69,u_:187,q_:189,f_:27,ua:{}};a.ua.bk="ArrowUp";a.ua.Ji="ArrowDown";a.ua.Db="ArrowRight";a.ua.fb="ArrowLeft";a.ua.Mp="KeyA";a.ua.xWa="KeyZ";a.ua.so="KeyW";a.ua.po="KeyS";a.ua.Sp="KeyD";a.ua.Q="KeyQ";a.ua.E="KeyE";a.ua.u_="BracketRight";a.ua.q_="Slash";a.ua.f_="Escape";a.ua.iL="Space";a.ua.e_="Enter";return a}); define("tdv/view/util/KeyboardControl",["require","exports","tdv/constants/EventName","tdv/constants/Key","tdv/events/EventDispatcher"],function(a,m,h,n,g){a=function(){function e(){}e.yp=function(){return document.activeElement&&document.activeElement!==document.body};e.kfb=function(){return document.activeElement};e.mhb=function(b){return Array.isArray(b)?b.includes(document.activeElement):b==document.activeElement};e.Pqa=function(b,c){b===void 0&&(b=void 0);c===void 0&&(c=void 0);this.Uj||(this.Uj= document.createElement("div"));document.querySelectorAll("*[tabindex]").forEach(function(d){d.tabIndex>this.Uj.tabIndex&&(this.Uj.tabIndex=d.tabIndex+1)}.bind(this));document.body.appendChild(this.Uj);b!=void 0&&c!=void 0?(this.Uj.style.position="absolute",this.Uj.style.top=c+"px",this.Uj.style.left=b+"px",this.Uj.style.width="1px",this.Uj.style.height="1px"):(this.Uj.style.position="fixed",this.Uj.style.top="0",this.Uj.style.left="0",this.Uj.style.width="100%",this.Uj.style.height="100%");this.Uj.focus(); this.Uj.blur();document.body.removeChild(this.Uj);this.dX.o(h.V)};e.blur=function(){document.activeElement.blur()};e.Oma=function(b){this.TW.push(b)};e.Gqa=function(b){b=this.TW.indexOf(b);b!=-1&&this.TW.splice(b,1)};e.Ybb=function(b){this.NY.push(b)};e.Gjb=function(b){b=this.NY.indexOf(b);b!=-1&&this.NY.splice(b,1)};e.eIa=function(b,c){this.cra(b,c.map(function(d){return[d]}))};e.Obb=function(b,c){this.cra(b,[c])};e.Lbb=function(b,c,d,f){for(var l=[],p=0;p=this.VO.length||(c=c.ddb+d,c<0||c>=this.VO[b].length||this.VO[b][c].focus())}};return e}();return a}); define("tdv/view/containers/ScrollableContainer","require exports tdv/constants/EventName tdv/events/Event tdv/view/constants/Alignment tdv/view/constants/OverflowPolicy tdv/view/constants/ScrollBarVisiblePolicy tdv/view/containers/BaseContainer tdv/view/core/visuals/dom/DOMUIBaseVisuals tdv/view/core/visualprops/ContainerVisualProperties tdv/view/util/Animation tdv/view/util/Ease tdv/view/util/EaseDimension tdv/view/util/KeyboardControl".split(" "),function(a,m,h,n,g,k,e,b,c,d,f,l,p,q){return function(r){function t(){var u= r.call(this)||this;u.gf("ScrollableContainer");u.axa=0;u.bxa=0;u.dn=!1;u.fn=!1;u.upb=!1;u.ppb=!1;u.gka=!1;u.Ts=null;u.Mia=k.wta;u.rS=!1;u.jW=!1;u.qja=void 0;u.rja=void 0;return u}P(t,r);t.prototype.TL=function(){return new d};t.prototype.Yz=function(){r.prototype.Yz.call(this);this.Py?(q.dX.bind(h.V,this.ria,this,!1),this.ria()):q.dX.h(h.V,this.ria,this)};t.prototype.ria=function(){if(q.yp()){var u=this.wa();u&&u instanceof c&&(u=this.Cb().map(function(v){return v.wa().cc()}).indexOf(q.kfb()),u!== -1&&this.scrollIntoView(this.Cb()[u]))}};t.prototype.scrollIntoView=function(u){var v=u.mw(),w=u.sA();this.scrollTo(Math.min(v,Math.max(v+u.nb()-this.u.Bf,this.u.Kc)),Math.min(w,Math.max(w+u.Mb()-this.u.Wg,this.u.Lc)))};t.prototype.scrollTo=function(u,v){var w=this.u.Kc;u>this.u.Kc?this.R6()&&(w=Math.min(u,this.u.contentWidth-this.u.Bf)):uthis.u.Lc?this.GO()&&(u=Math.min(v,this.u.contentHeight-this.u.Wg)):vthis.u.Lc+this.u.Wg&&z>=v&&z=u+this.u.Wg&&xw+this.u.Wg&&(w=x-this.u.Wg)}this.yV(this.u.Kc,w)}};t.prototype.IO=function(){return this.JO()&&this.u.Lc>0};t.prototype.DQa=function(){if(this.R6()){for(var u=Math.max(0,this.u.contentWidth-this.u.Bf),v=Math.min(u,this.u.Kc+this.u.Bf*.5),w=u=Math.min(u,this.u.Kc+this.u.Bf),y=this.Cb().slice(),x=y.shift();y.length;x= y.shift())if(x.get("visible")){var z=x.mw();z+x.nb()>this.u.Kc+this.u.Bf&&z>=v&&z=u+this.u.Bf&&xw+this.u.Bf&&(w=x-this.u.Bf)}this.yV(w, this.u.Lc)}};t.prototype.Q6=function(){return this.HO()&&this.u.Kc>0};t.prototype.yV=function(u,v){this.Ww(this.u.Kc!=u);this.Xw(this.u.Lc!=v);this.dW();this.dcb(u,v)};t.prototype.JO=function(){return this.jW&&this.u.Wgthis.u.contentWidth-this.u.Bf?!1:!0);this.Ts.mX("vScrollPosition")&&(this.u.Lc=this.Ts.ob("vScrollPosition"),v=this.u.Lc<0||this.u.Lc>this.u.contentHeight-this.u.Wg?!1:!0);this.Ww(u);this.Xw(v);this.JI();f.requestFrame(this.zia,this)}else this.Ww(!1),this.Xw(!1),this.Ts=null};t.prototype.JI= function(u){if(u){if(!this.rS)switch(this.G("horizontalAlign")){case g.Db:this.u.Kc=this.u.contentWidth-this.u.Bf;break;case g.$e:this.u.Kc=(this.u.contentWidth-this.u.Bf)/2;break;default:this.u.Kc=0}if(!this.jW)switch(this.G("verticalAlign")){case g.Gc:this.u.Lc=this.u.contentHeight-this.u.Wg;break;case g.$d:this.u.Lc=(this.u.contentHeight-this.u.Wg)/2;break;default:this.u.Lc=0}}this.u.Kc=Math.max(0,Math.min(this.u.contentWidth-this.u.Bf,this.u.Kc));this.u.Lc=Math.max(0,Math.min(this.u.contentHeight- this.u.Wg,this.u.Lc));this.A8a(this.u.Kc);this.l9a(this.u.Lc);this.tb();if(this.qja!=this.u.Kc||this.rja!=this.u.Lc)this.qja!==void 0&&this.rja!==void 0&&this.o(new n(h.Ur)),this.qja=this.u.Kc,this.rja=this.u.Lc};t.prototype.ZE=function(u){this.gka!==u&&(this.gka=u,this.dW())};t.prototype.Ww=function(u){this.dn!==u&&(this.dn=u,this.dW())};t.prototype.Xw=function(u){this.fn!==u&&(this.fn=u,this.dW())};t.prototype.dW=function(){var u=this.get("scrollBarVisible")==e.ALWAYS||this.dn||this.fn||this.gka; this.u.Bk=this.rS&&u;this.u.Lk=this.jW&&u;this.tb()};t.prototype.jb=function(){this.S("overflow")&&(this.Mia=this.G("overflow"),this.$("overflow"),this.Af());this.S("scrollBarColor")&&(this.u.Zt=this.G("scrollBarColor"),this.$("scrollBarColor"));this.S("scrollBarWidth")&&(this.u.ph=this.G("scrollBarWidth"),this.$("scrollBarWidth"));if(this.S("scrollBarMargin")||this.S("scrollBarVerticalMargin")||this.S("scrollBarHorizontalMargin"))this.u.Vn=this.G("scrollBarHorizontalMargin","scrollBarMargin"),this.u.Wn= this.G("scrollBarVerticalMargin","scrollBarMargin"),this.$("scrollBarMargin"),this.$("scrollBarVerticalMargin"),this.$("scrollBarHorizontalMargin");this.S("scrollBarOpacity")&&(this.u.$t=this.G("scrollBarOpacity"),this.$("scrollBarOpacity"));r.prototype.jb.call(this)};t.prototype.Kk=function(){r.prototype.Kk.call(this);this.jab();this.Gab();this.Eab();this.dW();this.tb()};t.prototype.jab=function(){for(var u=0,v=0,w=0,y=0,x=this.Cb(),z=0;zthis.u.Bf||this.u.contentHeight>this.u.Wg;this.Mia==k.Ur?(this.rS=this.u.Bf0|| q.textShadowVerticalLength>0||q.textShadowBlurRadius>0)&&q.textShadowOpacity>0)}d.prototype.jb.call(this)};f.prototype.o8=function(){var l=this,p=b.V7({fontSize:this.u.fontSize,fontFamily:this.u.fontFamily,fontWeight:this.u.fontWeight,fontStyle:this.u.fontStyle});this.xha!==p&&(this.OEa(!1),this.xha=p,document.fonts.load(p).then(function(){l.xha===p&&l.OEa(!0)}))};f.prototype.wJ=function(){return this.wa().wJ()};f.prototype.vJ=function(){return this.wa().vJ()};f.ad=Object.assign({},k.ad,{fontFamily:void 0, fontSize:void 0,fontColor:void 0,fontWeight:void 0,fontStyle:void 0,horizontalAlign:n.fb,verticalAlign:n.$d,direction:g.Mi,text:"",textDecoration:void 0,textShadowBlurRadius:3,textShadowColor:"#000000",textShadowHorizontalLength:0,textShadowOpacity:0,textShadowVerticalLength:0});return f}(k);var c=function(){function d(){p||f()&&(p=setTimeout(function(){p=null;var q=(new Date).getTime()-5E3,r;for(r in l){var t=l[r];t.timestamp0?this.Ef.reverse():this.Ef&&this.Ef.tm()!=0&&this.Ef.tm()!=1||(this.Ef&&this.Ef.stop(),this.Jl.play())))},Pxa:function(){this.OG&& (this.OG=!1,this.Jl&&(this.Jl.tm()>0?this.Jl.reverse():this.Ef&&this.Ef.get("loop")&&this.Ef.play()))},Nxa:function(){this.Xea()},Xea:function(){this.OG&&this.Jl&&(this.Ef.stop(),this.Jl.play())},Sxa:function(){this.OG||(this.Jl.stop(),this.Ef&&this.Ef.get("loop")&&this.Ef.play())},Mxa:function(){this.Ef&&this.Ef.h(h.Bl,this.Nxa,this,!0);this.Ef&&this.Ef.h(h.xx,this.Xea,this,!0);(this.Ef=this.get("effect"))&&this.Ef.bind(h.Bl,this.Nxa,this,!0);this.Ef&&this.Ef.bind(h.xx,this.Xea,this,!0)},Rxa:function(){this.Jl&& this.Jl.h(h.xx,this.Sxa,this,!0);(this.Jl=this.get("rollOverEffect"))&&this.Jl.bind(h.xx,this.Sxa,this,!0)}}}); define("tdv/player/script/Model3DObject",["require","tdv/utils","tdv/binding/Bindable","tdv/player/parser/ClassInfo","tdv/player/script/mixin/EffectsMixin"],function(a){var m=a("tdv/utils"),h=a("tdv/binding/Bindable"),n=a("tdv/player/parser/ClassInfo");a=a("tdv/player/script/mixin/EffectsMixin");n=n.define("Model3DObject",h,function(){h.call(this);this.set("hidden",!1);this.k0a();this.Tq=this.QM=this.oga=this.nga=!1;this.Ega=!0;this.Fga=this.Cga=this.mH=!1});m.A6(n,[a]);var g="enabledInStandard enabledInVR enabledInVRWithGazePointer enabledInAR hideBasedOnDistance hideWhileUserInteracting hideWhileMoving".split(" "); n.prototype.set=function(k,e){h.prototype.set.call(this,k,e);g.indexOf(k)!=-1&&this.Xz()};n.prototype.jra=function(k){this.oga!==k&&(this.oga=k,this.Xz())};n.prototype.$E=function(k){this.Tq!==k&&(this.Tq=k,this.Xz())};n.prototype.Gp=function(k){this.QM!==k&&(this.QM=k,this.Xz())};n.prototype.r$=function(k){this.Ega!==k&&(this.Ega=k,this.Xz())};n.prototype.dB=function(k){this.mH!==k&&(this.mH=k,this.Xz())};n.prototype.s$=function(k){this.Fga!==k&&(this.Fga=k,this.Xz())};n.prototype.gRa=function(k){this.Cga!== k&&(this.Cga=k,this.Xz())};n.prototype.ira=function(k){this.nga!==k&&(this.nga=k,this.Xz())};n.prototype.Xz=function(){this.set("hidden",this.oga||this.nga||this.mH&&this.get("enabledInVR")===!1||this.Cga&&this.get("enabledInAR")===!1||this.Fga&&this.get("enabledInVRWithGazePointer",this.get("enabledInVR"))===!1||this.Ega&&this.get("enabledInStandard")===!1||this.QM&&this.get("hideWhileMoving")||this.Tq&&this.get("hideWhileUserInteracting"))};return n}); define("tdv/player/script/BoxModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DObject");return m.define("BoxModel3DObject",h,function(){h.call(this)})});define("tdv/view/constants/ScaleMode",["require","exports"],function(){return{NONE:"none",GB:"fill",uj:"fit_inside",Ir:"fit_outside",Tp:"fit_to_width",Pk:"fit_to_height",iUa:"custom"}}); define("tdv/view/core/visualprops/ImageVisualProperties",["require","exports","tdv/view/core/visualprops/UIBaseVisualProperties","tdv/view/constants/Alignment"],function(a,m,h,n){return function(g){function k(){var e=g!==null&&g.apply(this,arguments)||this;e.image=null;e.Yh=n.fb;e.verticalAlign=n.$d;e.contentWidth=0;e.contentHeight=0;return e}P(k,g);return k}(h)}); define("tdv/view/images/Image","require exports tdv/constants/EventName tdv/constants/Priority tdv/view/constants/Alignment tdv/view/constants/ScaleMode tdv/view/core/UIComponent tdv/view/images/ImageLoader tdv/view/core/visualprops/ImageVisualProperties".split(" "),function(a,m,h,n,g,k,e,b,c){a=function(f){function l(p){var q=f.call(this)||this;q.d3a=function(){q.r0=!0;q.Tf()};q.e3a=function(){q.oHa()};q.gf("Image");q.yda=p||1;q.oma=!1;q.dka=!1;q.cN=0;q.bN=0;q.Kia=!1;q.r0=!1;q.pd=null;q.bind(h.$b, q.d3a,q,!1);q.bind(h.od,q.e3a,q,!1);return q}P(l,f);l.prototype.TL=function(){return new c};l.prototype.Vfa=function(){var p=this;this.pd=new d(this.yda);this.Vfa=function(){return p.pd};return this.pd};l.prototype.Pb=function(){f.prototype.Pb.call(this);this.m("horizontalAlign",g.fb);this.m("verticalAlign",g.Tc);this.m("scaleMode",k.NONE)};l.prototype.set=function(p,q){p=="url"&&this.get("url")!=q&&(this.oma=!0,this.Tf());f.prototype.set.call(this,p,q)};l.prototype.aQ=function(p){this.u.Yh!=p&&(this.u.Yh= p,this.tb())};l.prototype.gP=function(){return this.u.Yh};l.prototype.gQ=function(p){this.u.verticalAlign!=p&&(this.u.verticalAlign=p,this.tb())};l.prototype.iP=function(){return this.u.verticalAlign};l.prototype.cQ=function(p){this.ti!=p&&(this.ti=p,this.dka=!0,this.Tf(),this.lc())};l.prototype.f8a=function(p,q){if(this.u.contentWidth!=p||this.u.contentHeight!=q)this.u.contentWidth=p,this.u.contentHeight=q,this.tb()};l.prototype.Ova=function(p,q,r){this.cN=q?q:0;this.bN=r?r:0;this.u.image=p;this.Kia= !0;this.Tf();this.lc();this.tb();this.u.image&&this.o(h.ia)};l.prototype.Zy=function(){this.bn=this.cN+this.u.Dd+this.u.Ce;this.an=this.bN+this.u.ie+this.u.Df;this.uAa=this.cN==0&&this.bN==0?0:this.cN/this.bN;this.gT=this.hT=0};l.prototype.jb=function(){this.S("scaleMode")&&(this.cQ(this.G("scaleMode")),this.$("scaleMode"));this.S("horizontalAlign")&&(this.aQ(this.G("horizontalAlign")),this.$("horizontalAlign"));this.S("verticalAlign")&&(this.gQ(this.G("verticalAlign")),this.$("verticalAlign"));this.ada("paddingLeft paddingTop paddingRight paddingBottom borderRadius borderTopRadius borderBottomRadius borderLeftRadius borderRightRadius borderTopLeftRadius borderTopRightRadius borderBottomLeftRadius borderBottomRightRadius borderSize borderLeftSize borderTopSize borderRightSize borderBottomSize".split(" "))&& (this.r0=!0);f.prototype.jb.call(this);this.oHa();if(this.rgb()||this.dka||this.Kia||this.r0){var p=this.Xh(),q=this.Wh(),r=this.cN,t=this.bN,u=0,v=0;if(r==0||t==0)v=u=0;else switch(this.ti){case k.NONE:u=r;v=t;break;case k.GB:u=p;v=q;break;case k.uj:r*q>t*p?(u=p,v=t*p/r):(u=r*q/t,v=q);break;case k.Ir:r*q>t*p?(u=r*q/t,v=q):(u=p,v=t*p/r);break;case k.Tp:u=p;v=t*p/r;break;case k.Pk:u=r*q/t,v=q}this.f8a(u,v);this.r0=this.Kia=this.dka=!1;this.lc();this.tb()}};l.prototype.oHa=function(){if(this.oma){var p= this.get("url");p?this.Vfa().load(p,this.Ova,this):(this.Vfa().clear(),this.Ova(null,0,0));this.oma=!1}};return l}(e);var d=function(){function f(l){this.yda=l;this.Sd=[];this.Qm=null}f.prototype.EZa=function(l){f.Yo.href=l;return f.Yo.href};f.prototype.load=function(l,p,q){var r=this;l=this.EZa(l);this.Qm&&!this.Qm.oj()&&(this.Qm.cancel(),this.Sd=this.Sd.filter(function(v){return v!==r.Qm}));(this.Qm=this.Sd.find(function(v){return v.rl()==l})||null)?this.Sd=this.Sd.filter(function(v){return v!== r.Qm}):(this.Qm=new b(n.yua),this.Qm.load(l));for(this.Sd.splice(0,0,this.Qm);this.Sd.length>this.yda;)this.Sd.pop().cancel();if(p){var t=this.Qm,u=function(){p.call(q||window,t.xg(),t.fg(),t.wg())};this.Qm.oj()?u():this.Qm.bind(h.ia,u,void 0,!1)}};f.prototype.clear=function(){this.Sd.forEach(function(l){l.cancel()});this.Qm=null};f.Yo=document.createElement("a");return f}();return a}); define("tdv/view/buttons/Button","require exports tdv/view/constants/ScaleMode tdv/view/constants/State tdv/view/buttons/BaseButton tdv/view/images/Image".split(" "),function(a,m,h,n,g,k){return function(e){function b(){return e.call(this)||this}P(b,e);b.prototype.Pb=function(){e.prototype.Pb.call(this);this.m("iconURL");this.D("rollOverIconURL",n.ea,"iconURL");this.D("pressedIconURL",n.Fb,"iconURL");this.D("pressedRollOverIconURL",n.qc,"iconURL")};b.prototype.eea=function(){var c=new k(3);c.set("scaleMode", h.uj);return c};b.prototype.jb=function(){if(this.S("iconURL")){var c=this.G("iconURL");this.Cj.set("url",c);this.Cj.set("visible",c?!0:!1);this.$("iconURL")}e.prototype.jb.call(this)};return b}(g)});define("tdv/player/script/Button",["require","tdv/player/parser/ClassInfo","tdv/view/buttons/Button"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/view/buttons/Button");return m.define("Button",h,function(){h.call(this)})}); define("tdv/player/script/ExternalModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DObject");return m.define("ExternalModel3DObject",h,function(){h.call(this)})}); define("tdv/player/script/PlaneModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/ExternalModel3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/ExternalModel3DObject");return m.define("PlaneModel3DObject",h,function(){h.call(this)})}); define("tdv/player/script/CanvasPlaneModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/PlaneModel3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/PlaneModel3DObject");return m.define("CanvasPlaneModel3DObject",h,function(){h.call(this)})}); define("tdv/player/script/CapPanoramaOverlay",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("CapPanoramaOverlay",m,function(){m.call(this)})}); define("tdv/player/script/CeilingCapPanoramaOverlay",["require","tdv/player/parser/ClassInfo","tdv/player/script/CapPanoramaOverlay"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/CapPanoramaOverlay");return m.define("CeilingCapPanoramaOverlay",h,function(){h.call(this)})}); define("tdv/player/script/ChildModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DObject");return m.define("ChildModel3DObject",h,function(){h.call(this);this.set("floorColor","transparent")})}); define("tdv/player/script/CloseButton",["require","tdv/player/parser/ClassInfo","tdv/view/buttons/CloseButton"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/view/buttons/CloseButton");return m.define("CloseButton",h,function(){h.call(this)})});define("tdv/player/script/CookiesPolicy",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("CookiesPolicy",m,function(){m.call(this)})}); define("tdv/player/script/Container",["require","tdv/events/async","tdv/player/parser/ClassInfo","tdv/view/containers/Container"],function(a){var m=a("tdv/events/async"),h=a("tdv/player/parser/ClassInfo"),n=a("tdv/view/containers/Container");a=h.define("Container",n,function(){n.call(this)});a.prototype.scrollTo=function(g,k){n.prototype.scrollTo.call(this,g,k)};a.prototype.scrollIntoView=function(g){m.LE(function(){n.prototype.scrollIntoView.call(this,g)}.bind(this))};return a}); define("tdv/player/script/PanoramaFrame",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/player/parser/ClassInfo");a=h.define("PanoramaFrame",m,function(){m.call(this);this.Ba=null});a.prototype.get=function(n,g){switch(n){case "overlays":return this.Xfa();case "hfov":case "vfov":case "pitch":case "flipImageHorizontally":case "minFaceSize":if(this.Ba)return this.Ba.get(n,g)}return m.prototype.get.call(this,n,g)};a.prototype.Xfa= function(){var n=m.prototype.get.call(this,"overlays");n||(n=[]);return this.Jka(n)};a.prototype.Jka=function(n){if(this.NN===void 0||this.i2!=n){var g=function(e){return h.Oa("PopupPanoramaOverlay",e)},k=function(e){return h.Oa("LensFlarePanoramaOverlay",e)};this.i2=n;this.NN=[].concat(n.filter(function(e){return!(g(e)||k(e))}),n.filter(k),n.filter(g))}return this.NN};a.prototype.icb=function(n){this.Ba=n};a.prototype.cE=function(){return this.Ba};a.prototype.Ln=function(){return!1};return a}); define("tdv/player/script/CubicPanoramaFrame",["require","tdv/player/parser/ClassInfo","tdv/player/script/PanoramaFrame"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/PanoramaFrame");return m.define("CubicPanoramaFrame",h,function(){h.call(this)})}); define("tdv/view/av/omnitone",["require","tdv/player/view/util/Flags"],function(a){function m(S,W,Z){this.ga=p.PMa(S)?S:p.throw("BufferList: Invalid BaseAudioContext.");this.VH={dataType:ia.zQ,vaa:!1};Z&&(Z.dataType&&p.lhb(ia,Z.dataType)&&(this.VH.dataType=Z.dataType),Z.vaa&&(this.VH.vaa=!!Z.vaa));this.gwa=[];this.Su=this.VH.dataType===ia.zQ?W:W.slice(0);this.z4a=this.Su.length;this.iEa=null;this.NU=new Function}function h(S,W){this.ga=S;this.kl=this.ga.createChannelSplitter(4);this.Ql=this.ga.createChannelMerger(4); this.input=this.kl;this.output=this.Ql;this.ara(W||da.De)}function n(S){this.ga=S;this.kl=this.ga.createChannelSplitter(4);this.BS=this.ga.createGain();this.K1=this.ga.createGain();this.AS=this.ga.createGain();this.q2=this.ga.createGain();this.s2=this.ga.createGain();this.u2=this.ga.createGain();this.v2=this.ga.createGain();this.w2=this.ga.createGain();this.z2=this.ga.createGain();this.A2=this.ga.createGain();this.B2=this.ga.createGain();this.C2=this.ga.createGain();this.qU=this.ga.createGain();this.M3= this.ga.createGain();this.pU=this.ga.createGain();this.Ql=this.ga.createChannelMerger(4);this.kl.connect(this.BS,1);this.kl.connect(this.K1,2);this.kl.connect(this.AS,3);this.BS.gain.value=-1;this.AS.gain.value=-1;this.BS.connect(this.q2);this.BS.connect(this.s2);this.BS.connect(this.u2);this.K1.connect(this.v2);this.K1.connect(this.w2);this.K1.connect(this.z2);this.AS.connect(this.A2);this.AS.connect(this.B2);this.AS.connect(this.C2);this.q2.connect(this.qU);this.s2.connect(this.M3);this.u2.connect(this.pU); this.v2.connect(this.qU);this.w2.connect(this.M3);this.z2.connect(this.pU);this.A2.connect(this.qU);this.B2.connect(this.M3);this.C2.connect(this.pU);this.kl.connect(this.Ql,0,0);this.qU.connect(this.Ql,0,1);this.M3.connect(this.Ql,0,2);this.pU.connect(this.Ql,0,3);this.qU.gain.value=-1;this.pU.gain.value=-1;this.nZ(new Float32Array([1,0,0,0,1,0,0,0,1]));this.input=this.kl;this.output=this.Ql}function g(S,W){this.ga=S;this.JS=this.xo=!1;this.oR();W&&this.o$(W);this.enable()}function k(S,W){this.ga= p.PMa(S)?S:p.throw("FOARenderer: Invalid BaseAudioContext.");this.Ri={ar:h.mUa.De,$A:X.Wsa};W&&(W.ar&&(Array.isArray(W.ar)&&W.ar.length===4?this.Ri.ar=W.ar:p.throw("FOARenderer: Invalid channel map. (got "+W.ar+")")),W.g8&&(Array.isArray(W.g8)&&W.g8.length===2?this.Ri.rPa=W.g8:p.throw("FOARenderer: Invalid HRIR URLs. It must be an array with 2 URLs to HRIR files. (got "+W.g8+")")),W.$A&&(Object.values(X).includes(W.$A)?this.Ri.$A=W.$A:p.log("FOARenderer: Invalid rendering mode order. (got"+W.$A+') Fallbacks to the mode "ambisonic".'))); this.oR();this.VFa=new Float32Array(16);this.LS=!1}function e(S,W,Z){this.ga=S;this.JS=this.xo=!1;this.P_=W;this.SAa=(this.P_+1)*(this.P_+1);this.oR();Z&&this.o$(Z);this.enable()}function b(S,W,Z,ca){return S[W-1][(ca+W)*(2*W+1)+(Z+W)].gain.value}function c(S,W,Z,ca,fa){return ca===fa?b(S,1,W,1)*b(S,fa-1,Z,fa-1)-b(S,1,W,-1)*b(S,fa-1,Z,-fa+1):ca===-fa?b(S,1,W,1)*b(S,fa-1,Z,-fa+1)+b(S,1,W,-1)*b(S,fa-1,Z,fa-1):b(S,1,W,0)*b(S,fa-1,Z,ca)}function d(S){for(let pa=2;pa<=S.length;pa++){var W=S,Z=pa;for(let ma= -Z;ma<=Z;ma++)for(let na=-Z;na<=Z;na++){var ca=ma,fa=na,ja=Z,ha=ca===0?1:0;fa=Math.abs(fa)===ja?1/(2*ja*(2*ja-1)):1/((ja+fa)*(ja-fa));ca=[Math.sqrt((ja+ca)*(ja-ca)*fa),.5*(1-2*ha)*Math.sqrt((1+ha)*(ja+Math.abs(ca)-1)*(ja+Math.abs(ca))*fa),-.5*(1-ha)*Math.sqrt((ja-Math.abs(ca)-1)*(ja-Math.abs(ca)))*fa];Math.abs(ca[0])>0&&(ca[0]*=c(W,0,ma,na,Z));if(Math.abs(ca[1])>0){ja=ca[1];ha=W;fa=ma;var ka=na,la=Z;if(fa===0)ha=c(ha,1,1,ka,la)+c(ha,-1,-1,ka,la);else if(fa>0){var oa=fa===1?1:0;ha=c(ha,1,fa-1,ka,la)* Math.sqrt(1+oa)-c(ha,-1,-fa+1,ka,la)*(1-oa)}else oa=fa===-1?1:0,ha=c(ha,1,fa+1,ka,la)*(1-oa)+c(ha,-1,-fa-1,ka,la)*Math.sqrt(1+oa);ca[1]=ja*ha}Math.abs(ca[2])>0&&(ja=ca[2],ha=W,fa=ma,ka=na,la=Z,ha=fa===0?0:fa>0?c(ha,1,fa+1,ka,la)+c(ha,-1,-fa-1,ka,la):c(ha,1,fa-1,ka,la)-c(ha,-1,-fa+1,ka,la),ca[2]=ja*ha);W[Z-1][(na+Z)*(2*Z+1)+(ma+Z)].gain.value=ca[0]+ca[1]+ca[2]}}}function f(S,W){this.ga=S;this.P_=W;S=(W+1)*(W+1);this.kl=this.ga.createChannelSplitter(S);this.Ql=this.ga.createChannelMerger(S);this.Pg= [];let Z,ca,fa,ja;for(let ha=1;ha<=W;ha++){S=ha*ha;Z=2*ha+1;this.Pg[ha-1]=[];for(let ka=0;kaZ[fa]=W.charCodeAt(fa));return Z.buffer};const ia={zQ:"base64",URL:"url"};m.prototype.load=function(){return new Promise(this.C6a.bind(this))};m.prototype.C6a=function(S,W){typeof S!=="function"?p.throw("BufferList: Invalid Promise resolver."):this.iEa=S;typeof W==="function"&&(this.NU=W);for(S=0;S ["+S.toString()+"])."),this.Ri.ar=S.slice(),this.nfa.ara(this.Ri.ar))};k.prototype.nZ=function(S){this.LS&&this.fS.nZ(S)};k.prototype.D$=function(S){this.LS&&this.fS.D$(S)};k.prototype.tlb=function(S){this.LS&&(p.ghb(this.VFa,S.elements),this.fS.D$(this.VFa))};k.prototype.qlb=function(S){if(S!==this.Ri.$A){switch(S){case X.Wsa:this.jM.enable();this.c0.disconnect(); break;case X.eUa:this.jM.disable();this.c0.connect(this.output);break;case X.xVa:this.jM.disable();this.c0.disconnect();break;default:p.log('FOARenderer: Rendering mode "'+S+'" is not supported.');return}this.Ri.$A=S;p.log("FOARenderer: Rendering mode changed. ("+S+")")}};e.prototype.oR=function(){var S=Math.ceil(this.SAa/2);this.Hza=this.ga.createChannelSplitter(this.SAa);this.Tka=[];this.DR=[];this.u5=[];this.oja=this.ga.createGain();this.Yha=this.ga.createGain();this.tH=this.ga.createGain();this.DL= this.ga.createChannelMerger(2);this.gDa=this.ga.createGain();for(var W=0;W=0?this.u5[ca].connect(this.oja,Z%2):this.u5[ca].connect(this.Yha,Z%2)}this.oja.connect(this.DL, 0,0);this.oja.connect(this.DL,0,1);this.Yha.connect(this.DL,0,0);this.Yha.connect(this.tH);this.tH.connect(this.DL,0,1);this.tH.gain.value=-1;this.input=this.Hza;this.output=this.gDa};e.prototype.o$=function(S){if(!this.JS){for(let W=0;W0)&&this.eD< 1?(this.u9a(),this.jO&&u.push(this.jO)):this.UFa();this.MR?(this.r9a(),this.rDa&&u.push(this.rDa)):this.SFa();this.Uca&&(this.m9a(),this.eS&&u.push(this.eS));u.length>0&&this.o9a();this.oG&&(u=[new d(null,this.oG)].concat(u));(g===null||g===void 0?0:g.destination)&&u.push(new d(g.destination,null));this.hYa(u);this.Wla()};t.prototype.hYa=function(u){if(!n.u8(this.fI,u)){for(var v=0;v0&&this.gn(),this.bW()):this.fa.log("PlaybackController","onPause event received when not visible")};p.prototype.JH=function(){this.fa.log("PlaybackController","on can play");this.bW()};p.prototype.$y=function(){this.fa.log("PlaybackController","can play through");this.bW();this.V4(!1)};p.prototype.bW=function(){if(this.nFa()){if(this.S_&&this.fa.currentTime==0){this.fa.log("PlaybackController","updatePlaying applying ios hack"); this.S_=!1;try{this.fa.currentTime=.3}catch(q){}}b.Yb()!=b.NK&&this.kEa()}};p.prototype.nFa=function(){return this.I==n.PLAYING&&f.visible&&this.fa.paused&&this.fa.readyState>=3};p.prototype.kEa=function(q){q===void 0&&(q=!1);this.lEa||(q?this.nFa()&&(this.fa.log("PlaybackController","updatePlaying retrying play"),this.jj=n.PLAYING,this.Pka()):this.lEa=setTimeout(function(){this.lEa=null;this.kEa(!0)}.bind(this),500))};p.prototype.HT=function(){this.jj==n.PLAYING&&(this.fa.log("PlaybackController", "onError waiting to play"),this.jj=null,this.iN?this.JU():b.Yb()==b.sj?this.o(new k(p.dba)):this.jj=n.PLAYING)};p.prototype.gl=function(){this.fa.log("PlaybackController","on loaded metadata");!isNaN(this.fa.duration)&&this.fa.currentTime==this.fa.duration&&this.fa.duration>0&&this.gn()};p.prototype.gn=function(){this.fa.log("PlaybackController","onEnded");this.S_=!1;if(this.I==n.PLAYING&&!this.jj||this.jj==n.ca)this.fa.log("PlaybackController","onEnded finalizing video"),this.V4(!1),this.jj=n.ca, this.Oka(),this.o(new k(p.Bl))};p.prototype.V4=function(q){this.Nea!=q&&(this.fa.log("PlaybackController","downloading changed to: "+q),(this.Nea=q)?d.wmb(g.Fta):d.vmb(g.Fta))};p.dba="deactivated";p.Bl="end";p.Aba="play";return p}(e)}); define("tdv/view/av/TextTracksController",["require","exports","tdv/constants/EventName","tdv/events/EventDispatcher"],function(a,m,h,n){return function(g){function k(e){var b=g.call(this)||this;b.ll=null;b.bf=[];b.gl=b.gl.bind(b);b.bia=b.bia.bind(b);b.Fj=b.Fj.bind(b);b.fa=e;b.ll=null;b.bf=[];b.fa.addEventListener("loadedmetadata",b.gl,!0);b.fa.textTracks.addEventListener("addtrack",b.bia,!1);return b}P(k,g);k.prototype.set=function(e){e&&this.sXa(e)};k.prototype.clear=function(){this.f7a()};k.prototype.bP= function(){return this.ll&&this.ll.track.activeCues?Array.from(this.ll.track.activeCues):[]};k.prototype.gl=function(){this.mHa()};k.prototype.bia=function(){this.mHa()};k.prototype.Fj=function(){this.BEa(this.bP())};k.prototype.BEa=function(e){e||(e=[]);if(this.bf.length!=0||e.length!=0)this.bf=Array.from(e),this.o(h.Al,this.bf)};k.prototype.sXa=function(e){this.fa.log("TextTracksController","add text track src: "+e);this.ll=document.createElement("track");this.ll.kind="subtitles";this.ll.src=e; this.fa.appendChild(this.ll)};k.prototype.f7a=function(){this.ll&&(this.fa.log("TextTracksController","remove text track"),this.ll.track.removeEventListener("cuechange",this.Fj),this.ll.track.mode="disabled",this.ll.src="",this.fa.removeChild(this.ll),this.ll=null,this.BEa([]))};k.prototype.mHa=function(){for(var e=0;e=this.fa.HAVE_ENOUGH_DATA&&this.RM!==void 0){this.fa.log("TimeController","updateCurrentTime when can play through set time to: "+this.RM);try{this.fa.currentTime=this.RM}catch(c){}this.RM=void 0}};b.prototype.Nf=function(){this.o(new h(b.Dg))};b.prototype.J3=function(){if(g.VIa()&&!g.Egb()&&!this.fa.paused&&this.fa.readyState>= this.fa.HAVE_ENOUGH_DATA){var c=(new Date).getTime();this.j2||(this.j2=c);this.oha&&c-this.oha>500&&(this.hla++,this.hla/((c-this.j2)*.001)>.4&&g.ylb());this.oha=c}if(this.gR!==void 0&&this.fa.currentTime>this.gR){this.gR=void 0;try{this.fa.currentTime-=.01}catch(d){}}this.Nf()};b.prototype.yka=function(c){!!this.zI!=c&&(this.zI?(clearInterval(this.zI),this.zI=null):this.zI=setInterval(this.Nf,16))};b.prototype.pM=function(){return this.fa.currentSrc||this.fa.children.length&&this.fa.children[0].src|| ""};b.Dg="time update";b.Yj="duration update";return b}(n)}); define("tdv/view/av/DummyAudioData",["require","exports"],function(){var a={};a.src=a.$hb="data:audio/mp3;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU2LjM2LjEwMAAAAAAAAAAAAAAA//OEAAAAAAAAAAAAAAAAAAAAAAAASW5mbwAAAA8AAAAEAAABIADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV6urq6urq6urq6urq6urq6urq6urq6urq6v////////////////////////////////8AAAAATGF2YzU2LjQxAAAAAAAAAAAAAAAAJAAAAAAAAAAAASDs90hvAAAAAAAAAAAAAAAAAAAA//MUZAAAAAGkAAAAAAAAA0gAAAAATEFN//MUZAMAAAGkAAAAAAAAA0gAAAAARTMu//MUZAYAAAGkAAAAAAAAA0gAAAAAOTku//MUZAkAAAGkAAAAAAAAA0gAAAAANVVV";return a}); define("tdv/view/av/SrcSetter","require exports tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/util/Capabilities tdv/player/view/util/URL tdv/player/view/util/Flags tdv/player/view/util/FileType tdv/player/view/util/LibsLoader tdv/view/av/DummyAudioData".split(" "),function(a,m,h,n,g,k,e,b,c,d,f){a=function(p){function q(r,t){var u=p.call(this)||this;u.fa=r;u.rp=t;u.yha=!1;u.k5=[];u.$L=null;u.ef=null;u.ag=null;return u}P(q,p);q.prototype.set=function(r,t,u){this.fa.log("SrcSetter", "set: "+r+" subtitles: "+t+" startTime: "+u);r=new l(r,t,u);this.ef&&this.ef.isEqual(r)||(!this.ef&&this.$L&&this.$L.isEqual(r)?this.P5():(this.ef=r,this.f4a()))};q.prototype.clear=function(){this.ag&&(this.ag.destroy(),this.ag=null);this.$L=null;this.e7a();this.rp.clear()};q.prototype.Bgb=function(){return!!this.ef};q.prototype.f4a=function(){this.yha=!0;this.fEa(this.ef.src)&&!d.HLS.oj()?(this.fa.log("SrcSetter","hls lib required"),d.HLS.load(this.hAa,this)):this.hAa()};q.prototype.hAa=function(){this.yha&& (this.yha=!1,this.aYa())};q.prototype.aYa=function(){this.clear();this.g8a(this.i7a(this.ef.src));this.fEa(this.ef.src)?this.PXa():this.Tga(this.ef.src)?this.bYa():this.cYa()};q.prototype.PXa=function(){var r=d.HLS.AP,t=navigator.connection,u=(t?Math.max(t.downlink,2):2)*1024*1024,v=u*.66;this.ag=new r({debug:b.uu,startPosition:this.ef.startTime===0?-1:this.ef.startTime,playlistLoadPolicy:{"default":{maxTimeToFirstByteMs:6E4,maxLoadTimeMs:6E4}},startLevel:-1,maxMaxBufferLength:12,autoStartLoad:!1, abrEwmaDefaultEstimate:u});this.ag.loadSource(this.ef.src);this.ag.attachMedia(this.fa);var w=function(){this.ag.off(r.Events.MANIFEST_PARSED,w);var y=this.ag.levels.filter(function(z){return z.bitrate<=u});if(y.length){y.sort(function(z,A){return A.width-z.width});var x=this.ag.levels.indexOf(y[0]);this.ag.startLevel=x}y=this.ag.levels.filter(function(z){return z.bitrate<=v});y.length&&(y.sort(function(z,A){return A.width-z.width}),this.ag.config.minAutoBitrate=y[0].bitrate-1);y=this.ag.levels.filter(function(z){return k.Jmb(z.width, z.height)});b.XUa&&(y.sort(function(z,A){return A.width-z.width}),x=this.ag.levels.indexOf(y[0]),this.ag.startLevel=x);y.length&&y.length 0};r.prototype.W9=function(t){this.Gf=[t].concat(this.Gf.filter(function(u){return u!==t}));this.Zia();p()};r.prototype.appendItem=function(t){this.Gf.push(t);this.Zia();p()};r.prototype.uY=function(t){this.Gf=this.Gf.filter(function(u){return u!==t});this.Zia()};r.prototype.Zia=function(){var t=this.o2a();if(r.Nua)for(;this.Jv.length0?n.PLAYING:n.ca);t.forEach(function(u){if(!this.N1a(u)){var v= this.E1a(u.getType(),u.Oqa());v||u.Oqa()||this.Jv.push(v=new l(new d(f.Xp,!1)));v&&v.use(u)}}.bind(this));this.F1a().forEach(function(u){u.Xx.stop()})};r.prototype.o2a=function(){return this.Gf.map(function(t,u){var v={};v.index=u;v.priority=t.FLa();v.item=t;return v}).sort(function(t,u){return t.priority-u.priority||t.index-u.index}).map(function(t){return t.item})};r.prototype.Jd=function(t){this.I!=t&&(this.I=t,this.o(new g(this.I==n.ca?h.Fg:h.Vp)))};r.prototype.E1a=function(t,u){t=this.Jv.filter(function(v){return v.cpa()}); return t.length?(u?(u=t.filter(function(v){return v.t8()}),u.length||(u=t.filter(function(v){return v.yaa()}))):(u=t.filter(function(v){return!v.yaa()}),u.length||(u=t.filter(function(v){return!v.t8()}))),u.length&&(t=u),b.Yb()==b.Nk?(t.sort(function(v,w){return w.pha-v.pha}),t[Math.min(2,t.length-1)]):t[0]):null};r.prototype.F1a=function(){return this.Jv.filter(function(t){return t.cpa()})};r.prototype.kza=function(){return this.Jv.filter(function(t){return!t.cpa()})};r.prototype.N1a=function(t){for(var u= 0;u=0;return r}(k);var p=function(){if([b.yB,b.su].indexOf(b.xc())>=0){var q=document.createElement("video"); q.muted=!1;q.setAttribute("loop","");q.src="data:video/mp4;base64,AAAAIGZ0eXBtcDQyAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACKBtZGF0AAAC8wYF///v3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0MiByMjQ3OSBkZDc5YTYxIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTEgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9MiBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0wIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MCA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0wIHRocmVhZHM9NiBsb29rYWhlYWRfdGhyZWFkcz0xIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVyYXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9hZGFwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MSBrZXlpbnQ9MzAwIGtleWludF9taW49MzAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD0xMCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIwLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IHZidl9tYXhyYXRlPTIwMDAwIHZidl9idWZzaXplPTI1MDAwIGNyZl9tYXg9MC4wIG5hbF9ocmQ9bm9uZSBmaWxsZXI9MCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAOWWIhAA3//p+C7v8tDDSTjf97w55i3SbRPO4ZY+hkjD5hbkAkL3zpJ6h/LR1CAABzgB1kqqzUorlhQAAAAxBmiQYhn/+qZYADLgAAAAJQZ5CQhX/AAj5IQAD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"; return function(){try{q.pause(),setTimeout(function(){q.play()["catch"](function(){})},0)}catch(r){}}}return function(){}}();return a}); define("tdv/view/av/AudioPlayer","require exports tdv/events/Event tdv/events/EventDispatcher tdv/constants/EventName tdv/constants/PlaybackState tdv/view/av/HTMLMediaPlayer tdv/view/av/Subtitle tdv/view/av/AVProperties tdv/view/av/MediaType tdv/view/av/SharedPlayerOrchestrator tdv/view/util/Animation tdv/player/view/util/Capabilities".split(" "),function(a,m,h,n,g,k,e,b,c,d,f,l,p){return function(q){function r(t,u,v,w){var y=q.call(this)||this;y.Gb=t;y.C=u;y.MR=v;y.zv=w;y.lV();y.g3=y.g3.bind(y); y.C.bind(g.L("gain"),y.NH,y,!0);y.C.bind(g.L("ambisonic"),y.IH,y,!0);y.C.bind(g.L("mp3Url"),y.mk,y,!0);y.C.bind(g.L("oggUrl"),y.mk,y,!0);y.C.bind(g.L("subtitlesURL"),y.mk,y,!0);y.C.bind(g.L("url"),y.mk,y,!0);y.I=k.ca;y.Pl=!1;y.ac=0;y.qC=0;y.Ff=!1;y.it=1;y.hq=null;y.Wx=null;y.bS=!1;y.iM=1;y.Vc=null;y.cq=[];return y}P(r,q);r.prototype.Vb=function(){return this.Gb};r.prototype.Zc=function(t){this.I==t||t==k.Zb&&this.I!=k.PLAYING||(this.I=t,this.I==k.PLAYING?(this.XYa(),f.W9(this)):this.D9a(),this.wla())}; r.prototype.D9a=function(){this.bS||(this.bS=!0,this.bya=this.C.get("fadeOutTime"),this.bya==0?this.JFa():this.g3(0))};r.prototype.g3=function(t){this.Vc&&this.iM!=0&&this.bS&&!this.A3a()?(this.iM=Math.max(0,this.iM-t/this.bya),this.T_(),l.requestFrame(this.g3)):this.JFa()};r.prototype.XYa=function(){this.bS=!1;this.iM=1;this.T_()};r.prototype.JFa=function(){this.bS=!1;this.iM=1;this.Vc&&(f.uY(this),this.I==k.ca&&this.xka())};r.prototype.getState=function(){return this.I};r.prototype.lj=function(){return this.ac}; r.prototype.setCurrentTime=function(t){this.qC=t;this.Vc&&this.Vc.play(this.Gb,this.A,this.qC)};r.prototype.getCurrentTime=function(){return this.qC};r.prototype.iB=function(t){this.it=t;this.T_()};r.prototype.T_=function(){this.Vc&&this.Vc.iB(this.it*this.iM)};r.prototype.bu=function(t){this.Vc?this.Vc.bu(t):this.hq=(t===null||t===void 0?void 0:t.clone())||null};r.prototype.Uw=function(t){this.Vc?this.Vc.Uw(t):this.Wx=(t===null||t===void 0?void 0:t.clone())||null};r.prototype.Bg=function(t){this.Ff= t;this.Vc&&this.Vc.Bg(t)};r.prototype.setLoop=function(t){this.Pl=t;this.Vc&&this.Vc.setLoop(t)};r.prototype.Oqa=function(){return!this.Ff};r.prototype.getType=function(){return d.aUa};r.prototype.FLa=function(){return this.zv};r.prototype.rKa=function(t){this.Vc=t;setTimeout(function(){this.Vc&&this.Vc.bind(e.Bl,this.GT,this,!0)}.bind(this),0);this.lV();this.Vc.bind(e.Dg,this.Nf,this,!0);this.Vc.bind(e.Yj,this.$o,this,!0);this.Vc.bind(g.Al,this.Fj,this,!0);this.Vc.Bg(this.Ff);this.T_();this.Vc.setLoop(this.Pl); this.Vc.Uw(this.Wx);this.Vc.bu(this.hq);this.Vc.play(this.Gb,this.A,this.qC)};r.prototype.nNa=function(){this.qC=this.Vc.getCurrentTime();this.Vc.h(e.Bl,this.GT,this);this.Vc.h(e.Dg,this.Nf,this);this.Vc.h(e.Yj,this.$o,this);this.Vc.h(g.Al,this.Fj,this);this.Vc=null};r.prototype.clear=function(){this.Zc(k.ca);this.C&&(this.C.h(g.L("gain"),this.NH,this),this.C.h(g.L("ambisonic"),this.IH,this),this.C.h(g.L("mp3Url"),this.mk,this),this.C.h(g.L("oggUrl"),this.mk,this),this.C.h(g.L("subtitlesURL"),this.mk, this),this.C.h(g.L("url"),this.mk,this),this.C=null)};r.prototype.mk=function(){var t=this;this.gI&&clearTimeout(this.gI);this.gI=setTimeout(function(){t.gI=null;t.Vc&&(t.A.src=t.pM(t.C),t.A.Em=t.C.get("subtitlesURL"),t.Vc.play(t.Gb,t.A,t.qC))},10)};r.prototype.NH=function(){if(this.Vc){var t=this.C.get("gain");this.A.gain!=t&&(this.A.gain=t,this.Vc.UY(this.A.gain))}};r.prototype.IH=function(){if(this.Vc){var t=this.C.get("ambisonic")=="foa";this.A.kt!=t&&(this.A.kt=t,this.Vc.QY(this.A.kt))}};r.prototype.lV= function(){this.A=new c;this.A.src=this.pM(this.C);this.A.Em=this.C.get("subtitlesURL");this.A.gE=!0;this.A.gain=this.C.get("gain");this.A.kt=this.C.get("ambisonic")=="foa";this.A.SW=this.MR};r.prototype.pM=function(t){var u=t.get("url");if(u)return u;var v=t.get("mp3Url");return v&&p.zMa?v:(t=t.get("oggUrl"))&&p.AMa?t:u||v||t};r.prototype.$o=function(){this.ac=this.Vc.lj();this.rla()};r.prototype.Nf=function(){this.ac!=this.Vc.lj()&&this.$o();this.qC=this.Vc.getCurrentTime();this.VV()};r.prototype.Fj= function(){var t=this;this.cq=this.Vc.bP().map(function(u){for(var v=null,w=0;w0?(e=new g(e[0],b, c,d,g.kx(null,e.slice(1),b,c,d)),e.Xja(k),e):null};return g}()}); define("tdv/view/list/dropdown/DropDownArrow",["require","exports","tdv/view/canvas/Canvas"],function(a,m,h){return function(n){function g(){var k=n.call(this)||this;k.gf("DropDownArrow");return k}P(g,n);g.prototype.Pb=function(){n.prototype.Pb.call(this);this.m("color","#000000");this.m("direction",g.Uaa)};g.prototype.jb=function(){this.ada(["color","direction"])&&(this.$("color"),this.$("direction"),this.KX());n.prototype.jb.call(this)};g.prototype.usa=function(){var k=this.u.canvas.width,e=this.u.canvas.height, b=this.G("color"),c=this.G("direction"),d=[k*.5,0,k];c=c==g.Uaa?[e,0,0]:[0,e,e];var f=this.cLa();f.clearRect(0,0,k,e);f.beginPath();f.moveTo(d[0],c[0]);f.lineTo(d[1],c[1]);f.lineTo(d[2],c[2]);f.fillStyle=b;f.fill();n.prototype.usa.call(this)};g.Uaa="down";return g}(h)}); define("tdv/view/list/dropdown/DropDownButton","require exports tdv/events/Event tdv/view/constants/Alignment tdv/view/constants/Cursor tdv/constants/EventName tdv/view/constants/LayoutMode tdv/view/constants/State tdv/view/containers/Container tdv/view/list/dropdown/DropDownArrow tdv/view/text/Label".split(" "),function(a,m,h,n,g,k,e,b,c,d,f){return function(l){function p(){var q=l.call(this)||this;q.gf("DropDownButton");q.Za=null;q.$B=null;q.jha=!0;q.set("ariaRole","dropdown");q.set("autoRolledOver", !0);q.set("autoPressed",!0);q.set("childrenInteractionEnabled",!1);q.set("contentOpaque",!0);q.set("cursor",g.qf);q.bind(k.ma,q.Uea,q,!1);return q}P(p,l);p.prototype.Pb=function(){l.prototype.Pb.call(this);this.m("arrowColor","#000000");this.m("arrowBeforeLabel");this.m("arrowWidth",9);this.m("arrowHeight",5);this.m("arrowGap",5);this.m("shadow",!1);this.m("layout",e.Mi);this.m("verticalAlign",n.$d);this.m("borderRadius",5);this.m("borderColor","#AAAAAA");this.m("borderSize",1);this.m("backgroundColor", ["#FAFAFA","#E5E5E5"]);this.m("backgroundColorRatios",[0,1]);this.m("backgroundColorDirection","vertical");this.m("paddingLeft",5);this.m("paddingTop",5);this.m("paddingRight",5);this.m("paddingBottom",5);this.m("fontFamily");this.m("fontSize");this.m("fontColor","#555555");this.m("fontWeight");this.m("fontStyle");this.m("textDecoration");this.m("textShadowColor");this.m("textShadowHorizontalLength");this.m("textShadowVerticalLength");this.m("textShadowBlurRadius");this.m("textShadowOpacity");this.D("rollOverBorderColor", b.ea,"borderColor");this.D("rollOverArrowColor",b.ea,"arrowColor");this.D("rollOverBackgroundColor",b.ea,"backgroundColor");this.D("rollOverBackgroundColorRatios",b.ea,"backgroundColorRatios");this.D("rollOverShadow",b.ea,"shadow");this.D("pressedBorderColor",b.Fb,"borderColor");this.D("pressedArrowColor",b.Fb,"arrowColor");this.D("pressedBackgroundColor",b.Fb,"backgroundColor");this.D("pressedBackgroundColorRatios",b.Fb,"backgroundColorRatios");this.D("pressedShadow",b.Fb,"shadow");this.D("pressedRollOverBorderColor", b.qc,"borderColor");this.D("pressedRollOverArrowColor",b.qc,"arrowColor");this.D("pressedRollOverBackgroundColor",b.qc,"backgroundColor");this.D("pressedRollOverBackgroundColorRatios",b.qc,"backgroundColorRatios");this.D("pressedRollOverShadow",b.qc,"shadow");this.D("pressedBorderColor",b.oa,"borderColor");this.D("pressedArrowColor",b.oa,"arrowColor");this.D("pressedBackgroundColor",b.oa,"backgroundColor");this.D("pressedBackgroundColorRatios",b.oa,"backgroundColorRatios");this.D("pressedShadow", b.oa,"shadow")};p.prototype.set=function(q,r){q=="label"&&this.get("label")!=r&&(this.jha=!0,this.Tf());l.prototype.set.call(this,q,r)};p.prototype.Kb=function(){l.prototype.Kb.call(this);this.Za||(this.Za=new f,this.Za.set("width","100%"),this.mb(this.Za));this.$B||(this.$B=new d,this.$B.set("direction",d.Uaa),this.mb(this.$B))};p.prototype.Uea=function(){this.open();this.o(new h(k.OPEN))};p.prototype.open=function(){this.h(k.ma,this.Uea,this);this.gV(!0)};p.prototype.close=function(){this.bind(k.ma, this.Uea,this,!1);this.gV(!1)};p.prototype.Vx=function(){return this.Za&&this.Za.get("text")||l.prototype.Vx.call(this)};p.prototype.jb=function(){if(this.jha){var q=this.get("label");this.Za.set("text",q);this.jha=!1}this.Oc("horizontalAlign fontFamily fontSize fontColor fontWeight fontStyle textDecoration textShadowColor textShadowHorizontalLength textShadowVerticalLength textShadowBlurRadius textShadowOpacity".split(" "),{},[this.Za],!0,!0);this.S("arrowGap")&&(this.set("gap",this.G("arrowGap")), this.$("arrowGap"));this.S("arrowColor")&&(this.$B.set("color",this.G("arrowColor")),this.$("arrowColor"));this.S("arrowBeforeLabel")&&(this.G("arrowBeforeLabel")==1?this.pr(this.$B,0):this.pr(this.Za,0),this.$("arrowBeforeLabel"));this.S("arrowWidth")&&(this.$B.set("width",this.G("arrowWidth")),this.$("arrowWidth"));this.S("arrowHeight")&&(this.$B.set("height",this.G("arrowHeight")),this.$("arrowHeight"));l.prototype.jb.call(this)};return p}(c)}); define("tdv/view/list/dropdown/DropDownPopup","require exports tdv/player/view/util/Device tdv/events/Event tdv/view/constants/Alignment tdv/view/constants/Cursor tdv/view/constants/OverflowPolicy tdv/constants/EventName tdv/view/containers/Container tdv/view/containers/VerticalContainer tdv/view/text/Label".split(" "),function(a,m,h,n,g,k,e,b,c,d,f){return function(l){function p(q){var r=l.call(this)||this;r.tda=!1;r.Wb=null;r.XS=[];r.CD=!0;r.S4=!1;r.je=q;r.gf("DropDownPopup");r.set("ariaRole","listbox"); return r}P(p,l);p.prototype.vLa=function(){return this.Wb.Cb()};p.prototype.open=function(){this.xG=this.VKa();this.tda=!0;this.xG.mb(this);this.set("overIndex",-1);this.set("visible",!0);this.bind(b.Sa,this.te,this,!1);this.xG.bind(b.$a,this.nv,this,!1);this.xG.bind(b.$b,this.kd,this,!1)};p.prototype.close=function(){this.set("visible",!1);this.Wb.set("overflow",e.kL);this.Wb.set("contentOpaque",!0);this.h(b.Sa,this.te,this);this.xG.h(b.$a,this.nv,this);this.xG.bind(b.$b,this.kd,this,!1);this.xG.removeChild(this); this.xG=null};p.prototype.Kb=function(){c.prototype.Kb.call(this);this.Wb||(this.Wb=new d,this.Wb.set("overflow",e.kL),this.Wb.bind(b.$b,this.kd,this,!1),this.Wb.bind(b.Ur,this.tD,this,!1),this.mb(this.Wb))};p.prototype.VKa=function(){for(var q=this.je.getParent();q.getParent();)q=q.getParent();return q};p.prototype.kd=function(){this.aHa()};p.prototype.te=function(){this.S4=!1};p.prototype.tD=function(){this.S4=!0};p.prototype.nv=function(){this.get("overIndex")!=-1||this.S4&&h.Jp()||this.o(new n(b.CB)); this.S4=!1};p.prototype.$4a=function(q){this.set("overIndex",this.Ufa(q.source))};p.prototype.a5a=function(q){q=this.Ufa(q.source);this.get("overIndex")==q&&this.set("overIndex",-1)};p.prototype.Z4a=function(q){q=this.Ufa(q.source);this.set("overIndex",q);this.set("selectedIndex",q);this.o(new n(b.Vr))};p.prototype.Ufa=function(q){for(var r=0;r=z?(this.CD=!0,this.Wb.set("top",r.top+u+v),this.Wb.set("maxHeight",x)):(this.CD=!1,this.Wb.set("top",r.top-z+v),this.Wb.set("maxHeight",z)),this.Wb.set("overflow",e.Ur));u=A==g.$e?r.left+Math.round((t-w)*.5):A==g.Db?r.left+t-w:r.left;u<0?u=r.left:r.left+w>q.nb()&&(u=r.left+t-w);this.Wb.set("left",u);this.BGa()};p.prototype.BGa=function(){var q=this.G("popUpBorderRadius");this.Wb.xa({borderTopRadius:this.CD?0:q,borderBottomRadius:this.CD? q:0});for(var r=this.Wb.Cb(),t=0;t=0&&f>=l.length&&(f=-1);this.set("selectedIndex",f);this.nk.set("items",this.G("items"));this.nk.set("selectedIndex", this.G("selectedIndex"));this.$("items");this.$("selectedIndex");this.An&&(this.An=!1,this.o(new h(n.V)))}d&&(d=this.G("label"),d||(f=this.G("selectedIndex"),d=f<0?this.G("prompt"):this.G("items")[f]),this.je.set("label",d));this.rFa&&(this.nk.set("minWidth",this.je.nb()),this.nk.set("buttonWidth",this.je.nb()));this.Oc("fontFamily fontSize fontColor fontWeight fontStyle tabIndex textDecoration horizontalAlign textShadowColor textShadowHorizontalLength textShadowVerticalLength textShadowBlurRadius textShadowOpacity".split(" "), {},[this.je,this.nk],!0,!0);this.Oc("popUpBorderRadius popUpGap popUpPaddingBottom popUpPaddingLeft popUpPaddingRight popUpPaddingTop popUpBackgroundColor popUpBackgroundOpacity popUpBackgroundBlur rollOverPopUpBackgroundColor selectedPopUpBackgroundColor popUpFontColor rollOverPopUpFontColor selectedPopUpFontColor popUpShadow popUpShadowBlurRadius popUpShadowColor popUpShadowHorizontalLength popUpShadowOpacity popUpShadowSpread popUpShadowVerticalLength".split(" "),{},[this.nk],!0,!0);this.Oc("arrowBeforeLabel arrowWidth arrowHeight arrowColor rollOverArrowColor pressedArrowColor pressedRollOverArrowColor arrowGap shadow shadowBlurRadius shadowColor shadowHorizontalLength shadowOpacity shadowSpread shadowVerticalLength borderRadius borderTopRadius borderBottomRadius borderLeftRadius borderRightRadius borderTopLeftRadius borderTopRightRadius borderBottomLeftRadius borderBottomRightRadius borderSize borderLeftSize borderTopSize borderRightSize borderBottomSize borderColor borderLeftColor borderTopColor borderRightColor borderBottomColor rollOverBorderColor pressedBorderColor pressedRollOverBorderColor backgroundColor backgroundColorRatios backgroundColorDirection backgroundOpacity rollOverBackgroundColor rollOverBackgroundColorRatios rollOverShadow pressedBackgroundColor pressedBackgroundColorRatios pressedShadow pressedRollOverBackgroundColor pressedRollOverBackgroundColorRatios pressedRollOverShadow paddingLeft paddingTop paddingRight paddingBottom".split(" "), {},[this.je],!0,!0);b.prototype.jb.call(this)};return c}(g)}); define("tdv/player/script/DropDown",["require","tdv/binding/ChangeWatcher","tdv/constants/EventName","tdv/player/parser/ClassInfo","tdv/view/list/dropdown/DropDown"],function(a){var m=a("tdv/binding/ChangeWatcher"),h=a("tdv/constants/EventName"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/view/list/dropdown/DropDown");a=n.define("DropDown",g,function(){g.call(this);this.Td=null;this.$za=[];this.bind(h.V,this.S4a,this)});a.prototype.set=function(k,e){if(k=="playList"){if(this.Td)for(this.Td.h("change", this.kz,this);this.$za.length;)this.$za.shift().gF();(this.Td=e)?(m.kx(this.Td,"items.label",this.U5,this),m.kx(this.Td,"items.media.label",this.U5,this),this.U5(),this.Td.bind("change",this.kz,this),this.kz()):this.U5()}g.prototype.set.call(this,k,e)};a.prototype.U5=function(){this.Td?this.set("items",this.Td.get("items").map(function(k){return k.get("label")||k.get("media")&&k.get("media").get("label")})):this.set("items",[])};a.prototype.kz=function(){this.set("selectedIndex",this.Td.get("selectedIndex"))}; a.prototype.S4a=function(){this.Td&&this.Td.set("selectedIndex",this.get("selectedIndex"))};return a});define("tdv/player/script/DustPanoramaOverlay",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");a=a("tdv/player/parser/ClassInfo").define("DustPanoramaOverlay",m,function(){m.call(this)});a.prototype.get=function(h,n){h=="startState"&&n===void 0&&(n=this.get("initialState"));return m.prototype.get.call(this,h,n)};return a}); define("tdv/player/script/Effect",["require","tdv/player/parser/ClassInfo","tdv/view/effects/Effect"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/view/effects/Effect");a=m.define("Effect",h,function(){h.call(this)});a.prototype.cancel=function(){return h.prototype.cancel.apply(this,arguments)};a.prototype.getPosition=function(){return h.prototype.tm.apply(this,arguments)};a.prototype.play=function(){return h.prototype.play.apply(this,arguments)};a.prototype.reverse=function(){return h.prototype.reverse.apply(this, arguments)};a.prototype.stop=function(){return h.prototype.stop.apply(this,arguments)};return a});define("tdv/player/script/FadeInEffect",["require","tdv/player/parser/ClassInfo","tdv/view/effects/FadeInEffect"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/view/effects/FadeInEffect");return m.define("FadeInEffect",h,function(){h.call(this)})}); define("tdv/player/script/FadeOutEffect",["require","tdv/player/parser/ClassInfo","tdv/view/effects/FadeOutEffect"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/view/effects/FadeOutEffect");return m.define("FadeOutEffect",h,function(){h.call(this)})}); define("tdv/player/script/Model3DCamera","require tdv/binding/Bindable tdv/constants/EventName tdv/constants/PlaybackState tdv/player/parser/ClassInfo tdv/events/async".split(" "),function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState"),g=a("tdv/player/parser/ClassInfo"),k=a("tdv/events/async");a=g.define("Model3DCamera",m,function(){m.call(this);this.set("userInteracting",!1);this.set("moving",!1);this.set("mouseDisabled",!1);this.set("clickTranslationDisabled", !1);this.set("doubleClickDisabled",!1);this.Kea=this.s4a=this.Oda=this.Nda=!1;"distance fov yaw pitch x y z".split(" ").forEach(function(e){this.bind(h.L(e),this.y5a,this,!0)}.bind(this))});a.prototype.umb=function(){this.SN={x:this.get("x"),y:this.get("y"),z:this.get("z"),yaw:this.get("yaw"),pitch:this.get("pitch"),distance:this.get("distance"),fov:this.get("fov")}};a.prototype.setPosition=function(e){e.x!==void 0&&this.set("x",e.x);e.y!==void 0&&this.set("y",e.y);e.z!==void 0&&this.set("z",e.z); e.distance!==void 0&&this.set("distance",e.distance);e.yaw!==void 0&&this.set("yaw",e.yaw);e.pitch!==void 0&&this.set("pitch",e.pitch);e.fov!==void 0&&this.set("fov",e.fov);e.easing!==void 0?this.set("easing",e.easing):this.set("easing",0)};a.prototype.a9a=function(e){this.SN||(this.SN={});for(var b in e)this.SN[b]=e[b]};a.prototype.Tjb=function(){this.SN&&this.setPosition(this.SN)};a.prototype.qRa=function(e){this.wAa!==e&&(this.wAa=e,this.Bab())};a.prototype.Bab=function(){this.set("mouseDisabled", this.s4a||this.wAa)};a.prototype.RQa=function(e){this.Nda!==e&&(this.Nda=e,this.DGa())};a.prototype.SQa=function(e){this.Oda!==e&&(this.Oda=e,this.DGa())};a.prototype.DGa=function(){this.set("clickTranslationDisabled",this.Nda||this.Oda)};a.prototype.rkb=function(e){this.Kea!==e&&(this.Kea=e,this.lab())};a.prototype.lab=function(){this.set("doubleClickDisabled",this.Kea)};a.prototype.y5a=function(){this.tDa||(this.tDa=!0,k.LE(function(){this.tDa=!1;this.M$a()}.bind(this)))};a.prototype.M$a=function(){this.o(h.Jm)}; a.Nob=100;a.prototype.setStoredPosition=function(e){this.a9a(e)};a.prototype.play=function(){this.set("state",n.PLAYING)};a.prototype.pause=function(){this.set("state",n.Zb)};a.prototype.stop=function(){this.set("state",n.ca)};return a}); define("tdv/player/script/FirstPersonModel3DCamera",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DCamera"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DCamera");return m.define("FirstPersonModel3DCamera",h,function(){h.call(this);this.set("distance",0)})}); define("tdv/player/script/HotspotPanoramaOverlay",["require","tdv/binding/Bindable","tdv/constants/EventName","tdv/player/parser/ClassInfo","tdv/view/effects/Effect"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/constants/EventName"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/view/effects/Effect");a=n.define("HotspotPanoramaOverlay",m,function(){m.call(this);this.bind(h.od,this.cp,this,!0);this.bind(h.jd,this.ap,this,!0);this.xj=[];this.Ld=!1});a.prototype.set=function(k,e){switch(k){case "enabledInCardboard":this.set("enabledInVR", e);break;case "effect":case "rollOverEffect":case "areas":this.Q6a(),this.xj=[]}m.prototype.set.call(this,k,e);switch(k){case "enabledInCardboard":this.set("enabledInVR",e);break;case "effect":case "rollOverEffect":case "areas":this.aXa()}};a.prototype.aXa=function(){this.get("effect")&&this.get("effect").bind(g.xx,this.wBa,this,!0);this.get("rollOverEffect")&&this.get("rollOverEffect").bind(g.xx,this.ICa,this,!0);this.get("areas",[]).forEach(function(k){k.bind(h.uc,this.kBa,this,!0);k.bind(h.Eb, this.jBa,this,!0)}.bind(this))};a.prototype.Q6a=function(){this.get("effect")&&this.get("effect").h(g.xx,this.wBa,this,!0);this.get("rollOverEffect")&&this.get("rollOverEffect").h(g.xx,this.ICa,this,!0);this.get("areas",[]).forEach(function(k){k.h(h.uc,this.kBa,this,!0);k.h(h.Eb,this.jBa,this,!0)}.bind(this))};a.prototype.kBa=function(k){this.xj.indexOf(k.source)<0&&(this.xj.push(k.source),this.xj.length==1&&this.D3())};a.prototype.jBa=function(k){k=this.xj.indexOf(k.source);k>=0&&(this.xj.splice(k, 1),this.xj.length==0&&this.Ds())};a.prototype.D3=function(){var k=this.get("effect"),e=this.get("rollOverEffect");e&&(k&&k.tm()>0?k.reverse():e.play())};a.prototype.Ds=function(){var k=this.get("rollOverEffect");if(k){var e=this.get("effect");k.tm()>0?k.reverse():e&&e.get("loop")&&e.play()}};a.prototype.wBa=function(){if(this.xj.length>0){var k=this.get("rollOverEffect");k&&(this.get("effect").stop(),k.play())}};a.prototype.ICa=function(){if(this.xj.length==0){this.get("rollOverEffect").stop();var k= this.get("effect");k&&k.get("loop")&&k.play()}};a.prototype.cp=function(){var k=this.get("effect");k&&k.play()};a.prototype.ap=function(){var k=this.get("effect");k&&k.stop();(k=this.get("rollOverEffect"))&&k.stop()};return a}); define("tdv/player/script/FlatHotspotPanoramaOverlay",["require","tdv/player/parser/ClassInfo","tdv/player/script/HotspotPanoramaOverlay"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/HotspotPanoramaOverlay");return m.define("FlatHotspotPanoramaOverlay",h,function(){h.call(this)})}); define("tdv/player/script/HotspotPanoramaOverlayArea",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("HotspotPanoramaOverlayArea",m,function(){m.call(this);this.set("displayTooltipInTouchScreens",!0)})}); define("tdv/player/script/FlatHotspotPanoramaOverlayArea",["require","tdv/player/parser/ClassInfo","tdv/player/script/HotspotPanoramaOverlayArea"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/HotspotPanoramaOverlayArea");return m.define("FlatHotspotPanoramaOverlayArea",h,function(){h.call(this)})}); define("tdv/player/script/QuadPanoramaOverlayPlaybackPosition",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("QuadPanoramaOverlayPlaybackPosition",m,function(h,n,g){m.call(this);h!==void 0&&this.set("vertices",h);this.set("opacity",n!==void 0?n:1);g!==void 0&&this.set("timestamp",g)})}); define("tdv/player/script/FlatPanoramaOverlayPlaybackPosition",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("FlatPanoramaOverlayPlaybackPosition",m,function(h,n,g,k,e){m.call(this);h!==void 0&&this.set("yaw",h);n!==void 0&&this.set("pitch",n);g!==void 0&&this.set("roll",g);this.set("opacity",k!==void 0?k:1);e!==void 0&&this.set("timestamp",e)})}); define("tdv/player/script/PanoramaOverlayPlaybackPosition",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("PanoramaOverlayPlaybackPosition",m,function(h,n,g,k,e,b,c,d,f){m.call(this);h!==void 0&&this.set("yaw",h);n!==void 0&&this.set("pitch",n);g!==void 0&&this.set("rotationX",g);k!==void 0&&this.set("rotationY",k);e!==void 0&&this.set("roll",e);b!==void 0&&this.set("hfov",b);c!==void 0&&this.set("vfov", c);this.set("opacity",d!==void 0?d:1);f!==void 0&&this.set("timestamp",f)})});define("tdv/player/script/PanoramaPoint",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("PanoramaPoint",m,function(h,n){m.call(this);this.set("yaw",h);this.set("pitch",n)})}); define("tdv/player/script/PopupPanoramaOverlayPlaybackPosition",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("PopupPanoramaOverlayPlaybackPosition",m,function(h,n,g,k,e,b,c){m.call(this);h!==void 0&&this.set("yaw",h);n!==void 0&&this.set("pitch",n);g!==void 0&&this.set("rotationX",g);k!==void 0&&this.set("rotationY",k);e!==void 0&&this.set("rotationZ",e);b!==void 0&&this.set("hfov",b);c!== void 0&&this.set("timestamp",c)})}); define("tdv/player/script/helper/PlaybackPositionHelper","require tdv/binding/Bindable tdv/player/script/QuadPanoramaOverlayPlaybackPosition tdv/player/script/FlatPanoramaOverlayPlaybackPosition tdv/player/script/PanoramaOverlayPlaybackPosition tdv/player/script/PanoramaPoint tdv/player/script/PopupPanoramaOverlayPlaybackPosition".split(" "),function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/player/script/QuadPanoramaOverlayPlaybackPosition"),n=a("tdv/player/script/FlatPanoramaOverlayPlaybackPosition"),g= a("tdv/player/script/PanoramaOverlayPlaybackPosition"),k=a("tdv/player/script/PanoramaPoint"),e=a("tdv/player/script/PopupPanoramaOverlayPlaybackPosition");return{jfb:function(b){return this.p1(b,this.L0a)},Eoa:function(b){return this.p1(b,this.o6a)},Lfb:function(b){return this.p1(b,this.v6a)},Foa:function(b){return this.p1(b,this.F6a)},L0a:function(b){return new n(m.prototype.get.call(b,"yaw",0),m.prototype.get.call(b,"pitch",0),m.prototype.get.call(b,"roll",0),m.prototype.get.call(b,"opacity",1), 0)},F6a:function(b){var c=m.prototype.get.call(b,"vertices",[null,null,null,null]);return new h([c[0]||new k(0,0),c[1]||new k(0,0),c[2]||new k(0,0),c[3]||new k(0,0)],m.prototype.get.call(b,"opacity",1),0)},o6a:function(b){function c(d,f){return m.prototype.get.call(b,d,f)}return new g(c("yaw",0),c("pitch",0),c("rotationX",0),c("rotationY",0),c("roll",0),c("hfov",c("vfov")===void 0?45:void 0),c("vfov"),c("opacity",1),0)},v6a:function(b){function c(d,f){return m.prototype.get.call(b,d,f)}return new e(c("yaw", 0),c("pitch",0),c("rotationX",0),c("rotationY",0),c("rotationZ",0),c("hfov",45),0)},p1:function(b,c){var d=m.prototype.get.call(b,"playbackPositions")||[];return d.length>0?d.slice().sort(function(f,l){return f.get("timestamp")-l.get("timestamp")||d.indexOf(f)-d.indexOf(l)}):[c(b)]}}}); define("tdv/player/script/FlatHotspotPanoramaOverlayImageBase",["require","tdv/binding/Bindable","tdv/constants/EventName","tdv/player/parser/ClassInfo","tdv/player/script/helper/PlaybackPositionHelper"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/constants/EventName"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/player/script/helper/PlaybackPositionHelper");a=n.define("FlatHotspotPanoramaOverlayImageBase",m,function(){m.call(this);this.Gd=void 0});a.prototype.get=function(k,e){switch(k){case "playbackPositions":return this.Gd=== void 0&&(this.Gd=g.jfb(this)),this.Gd}return m.prototype.get.call(this,k,e)};a.prototype.set=function(k,e){var b=!1;switch(k){case "opacity":case "distance":case "pitch":case "roll":case "yaw":case "playbackPositions":this.Gd=void 0,b=!0}m.prototype.set.call(this,k,e);b&&k!="playbackPositions"&&this.o(h.L("playbackPositions"))};return a}); define("tdv/player/script/FlatHotspotPanoramaOverlayImage",["require","tdv/player/parser/ClassInfo","tdv/player/script/FlatHotspotPanoramaOverlayImageBase"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/FlatHotspotPanoramaOverlayImageBase");return m.define("FlatHotspotPanoramaOverlayImage",h,function(){h.call(this)})}); define("tdv/player/script/FlatHotspotPanoramaOverlayMap",["require","tdv/player/parser/ClassInfo","tdv/player/script/FlatHotspotPanoramaOverlayImageBase"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/FlatHotspotPanoramaOverlayImageBase");return m.define("FlatHotspotPanoramaOverlayMap",h,function(){h.call(this)})}); define("tdv/player/script/FlyOverModel3DCamera",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DCamera"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DCamera");return m.define("FlyOverModel3DCamera",h,function(){h.call(this)})}); define("tdv/player/script/FramePanoramaOverlay",["require","tdv/binding/Bindable","tdv/constants/EventName","tdv/player/parser/ClassInfo","tdv/player/script/helper/PlaybackPositionHelper"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/constants/EventName"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/player/script/helper/PlaybackPositionHelper");a=n.define("FramePanoramaOverlay",m,function(){m.call(this);this.Gd=void 0});a.prototype.set=function(k,e){var b=!1;switch(k){case "hfov":case "pitch":case "rotationX":case "rotationY":case "roll":case "vfov":case "yaw":case "playbackPositions":this.Gd= void 0,b=!0}m.prototype.set.call(this,k,e);b&&k!="playbackPositions"&&this.o(h.L("playbackPositions"))};a.prototype.get=function(k,e){switch(k){case "playbackPositions":return this.Gd===void 0&&(this.Gd=g.Eoa(this)),this.Gd}return m.prototype.get.call(this,k,e)};return a}); define("tdv/player/script/Model3DResource",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");a=a("tdv/player/parser/ClassInfo").define("Model3DResource",m,function(){m.call(this)});a.prototype.get=function(h,n){switch(h){case "levels":n=[this];break;case "url":for(var g=m.prototype.get.call(this,h),k=this.get("levels"),e=0;k&&e3&&this.QC()}.bind(this);this.sB.send()};l.prototype.uwa=function(){this.sB&&(this.sB.abort(),this.sB=null)};l.prototype.stop=function(){this.status==l.A_&&(this.status=l.hca,this.uwa(),this.pq&&this.pq.cancel())};l.prototype.QC=function(){this.sB=null;this.pq&&(this.pq.loaded(),this.pq=null);this.status=l.WVa;this.o(new n(k.ia))};l.hca="not loaded";l.A_="loading";l.WVa="loaded";h.prototype.Rbb=function(p){p.forEach(function(q){this.items.indexOf(q)< 0&&(this.items.push(q),q.EP(this.priority),q.Hpa(1))}.bind(this))};h.prototype.yjb=function(p){var q=this.items;this.items=[];q.forEach(function(r){p.indexOf(r)<0?this.items.push(r):(r.EP(-this.priority),r.Hpa(-1))}.bind(this))};h.prototype.qjb=function(){this.items.forEach(function(p){p.EP(-this.priority);p.Hpa(-1)}.bind(this));this.items=[];this.priority=0};h.prototype.EP=function(p){this.priority+=p;this.items.forEach(function(q){q.EP(p)})};m.ni=[];m.WDa=[];m.W0a=0;m.dIa=function(p,q){this.u4(p).Rbb(q.map(function(r){return this.Ja(r)}.bind(this))); this.j5();this.za()};m.Hjb=function(p,q){this.u4(p).yjb(q.map(function(r){return this.Ja(r)}.bind(this)));this.j5();this.za()};m.rjb=function(p){this.u4(p).qjb();this.j5();this.za()};m.U8=function(p,q){this.u4(p).EP(q);this.j5();this.za()};m.j5=function(){this.ni.sort(function(p,q){return q.priority-p.priority})};m.za=function(p){if(this.enabled()&&(p||!this.Uv))if(p){this.Uv&&clearTimeout(this.Uv);this.Uv=null;p=this.P1a();var q=this.Q1a();f.difference(p,q).forEach(function(r){r.stop()});f.difference(q, p).forEach(function(r){r.start()})}else this.Uv=setTimeout(function(){this.Uv=null;this.za(!0)}.bind(this),1E3)};m.Uv=null;m.P1a=function(){return this.ni.filter(function(p){return p.status==l.A_})};m.Q1a=function(){for(var p=this.R1a(),q=[],r=0;r0&&(t.status==l.hca||t.status==l.A_)&&q.push(t)}return q};m.R1a=function(){return this.W0a>0?0:5};m.u4=function(p){var q=this.WDa.find(function(r){return r.Cqa==p});q||(q=new h(p),this.WDa.push(q)); return q};m.Ja=function(p){var q=this.ni.find(function(r){return r.url==p});q||(q=new l(p),q.bind(k.ia,this.za,this),this.ni.push(q));return q};m.enabled=function(p){if(p===void 0)return m.O_a||m.P_a?!1:m.$ea!==void 0?m.$ea:m.ha;m.ha=p};m.ha=!0;m.Ara=function(p){m.$ea=p.get(TDV.PlayerSettings.BACKGROUND_PRELOAD_ENABLED)};m.$ea=void 0;m.P_a=b.Tg("disable-background-preload",!1);m.O_a=!1;return m}); define("tdv/player/script/Media","require exports tdv/utils tdv/binding/Bindable tdv/player/parser/ClassInfo tdv/player/view/util/Preloader".split(" "),function(a,m,h,n,g,k){a=function(e){function b(){var c=e.call(this)||this;c.$la=h.lr(c.$la,c);return c}P(b,e);b.prototype.$la=function(){k.dIa(this,this.sw())};b.prototype.sw=function(){return[]};b.prototype.Djb=function(){k.rjb(this)};b.prototype.set=function(c,d){e.prototype.set.call(this,c,d);this.$la()};return b}(n);g.create("Media",a);return a}); define("tdv/player/script/Panorama",["require","tdv/player/parser/ClassInfo","tdv/player/script/Media"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Media");a=m.define("Panorama",h,function(){h.call(this);this.i2=this.NN=void 0;this.set("minFaceSize",void 0)});a.prototype.get=function(n,g){switch(n){case "overlays":return this.Xfa();case "frames":return this.Nya();case "partial":if(this.get("hfov")<359.9)return!0}return h.prototype.get.call(this,n,g)};a.prototype.set= function(n,g){switch(n){case "cardboardMenu":this.set("vrMenu",g)}h.prototype.set.call(this,n,g)};a.prototype.Xfa=function(){var n=h.prototype.get.call(this,"overlays");n||(n=[]);return this.Jka(n)};a.prototype.Jka=function(n){if(this.NN===void 0||this.i2!=n){var g=function(e){return m.Oa("PopupPanoramaOverlay",e)},k=function(e){return m.Oa("LensFlarePanoramaOverlay",e)};this.i2=n;this.NN=[].concat(n.filter(function(e){return!(g(e)||k(e))}),n.filter(k),n.filter(g))}return this.NN};a.prototype.tMa= function(){return this.get("overlays").filter(function(n){return m.Oa("TripodCapPanoramaOverlay",n)}).length>0};a.prototype.jMa=function(){return this.get("overlays").filter(function(n){return m.Oa("CeilingCapPanoramaOverlay",n)}).length>0};a.prototype.OMa=function(){if(!this.Zoa())return!1;var n=this.get("pitch",0),g=this.get("vfov",180);if(g>=179.9)return!0;var k=this.jMa()?90:n+g*.5;n=this.tMa()?-90:n-g*.5;return k-n>=179.9?!0:!1};a.prototype.Zoa=function(){return this.get("hfov")>=359.9&&!this.get("partial")}; a.prototype.Ln=function(){var n=this.Nya();return n.length>0&&n[0].Ln()};a.prototype.nX=function(){return 0};a.prototype.Nya=function(){var n=h.prototype.get.call(this,"frames",[]);n.forEach(function(g){g.icb(this)}.bind(this));return n};return a}); define("tdv/player/script/HDRPanorama",["require","tdv/player/parser/ClassInfo","tdv/player/script/Panorama"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Panorama");a=m.define("HDRPanorama",h,function(){h.call(this)});a.prototype.nX=function(){var n=this.get("frames")||[];return Math.floor((n.length-1)/2)};return a}); define("tdv/player/script/HorizonGridModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DObject");return m.define("HorizonGridModel3DObject",h,function(){h.call(this)})}); define("tdv/player/script/HotspotMapOverlayArea",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("HotspotMapOverlayArea",m,function(){m.call(this)})}); define("tdv/player/script/ImageResourceLevel",["require","exports","tdv/player/parser/ClassInfo","tdv/binding/Bindable"],function(a,m,h,n){a=function(g){function k(){return g.call(this)||this}P(k,g);k.prototype.get=function(e,b){switch(e){case "tags":return(e=n.prototype.get.call(this,e))||(e=[]),Array.isArray(e)||(e=[e]),e.indexOf(k.Ju)<0&&n.prototype.get.call(this,"grayscale")&&(e=e.concat([k.Ju])),e}return n.prototype.get.call(this,e,b)};k.prototype.sMa=function(e){return this.get("tags").indexOf(e)>= 0};k.Ju="preload";k.B_="mobile";k.Bua="ipadpro";k.C_="mobilevr";k.mca="mobilevr2gen";k.nca="ondemand";return k}(n);h.create("ImageResourceLevel",a);return a}); define("tdv/player/script/helper/LevelUtil",["require","tdv/player/script/ImageResourceLevel","tdv/player/view/util/Device","tdv/player/view/util/URL"],function(a){var m=a("tdv/player/script/ImageResourceLevel"),h=a("tdv/player/view/util/Device"),n=a("tdv/player/view/util/URL");return{Dt:function(g){return this.yk(g,"load")},uJ:function(g){return this.yk(g,"preload")},lP:function(g){return this.Dt(g)!=this.uJ(g)},yk:function(g,k){g=g.get("levels")||[];var e=this.e1a(g);e=this.m2a(k,e);g=this.F0a(g, k);(k=this.Wya(g,e[0],e[1],this.l2a(k)))||(k=this.Wya(g,e[0],e[1],void 0));return k},F0a:function(g,k){k=="preload"?g=this.cS(g,m.Ju):k=="load"&&(g=this.E0a(g,m.Ju));h.DA()&&(g=this.cS(g,m.Bua));if(h.A8()||h.B8())g=this.cS(g,m.mca);h.kf()&&(g=this.cS(g,m.C_));h.ub()&&(g=this.cS(g,m.B_));return g},e1a:function(g){if(g.length==0)return 1;g.sort(function(k,e){return e.get("width")-k.get("width")});return g[0].get("width")/g[0].get("height")},m2a:function(g,k){if(g=="preload")return[0,0];g=1E4;this.P0a()|| (h.kf()?g=2048:h.DA()?g=2048:h.ub()&&(g=2048));return k<1?[g*k,g]:[g,g/k]},l2a:function(g){if(g=="load")return!1},P0a:function(){return h.DA()&&n.Tg("recent_ipad_use_max_res",!1)},cS:function(g,k){var e=g.filter(function(b){return b.sMa(k)});e.length==0&&(e=g);return e},E0a:function(g,k){var e=g.filter(function(b){return!b.sMa(k)});e.length==0&&(e=g);return e},Wya:function(g,k,e,b){function c(d){return Math.abs(d.get("width")*d.get("height")-k*e)}g=g.filter(function(d){return b!==void 0&&b!=d.get("grayscale", !1)?!1:!0});if(g.length==0)return null;g.sort(function(d,f){return c(d)-c(f)});return g[0]}}}); define("tdv/player/script/HotspotMapOverlayImageBase",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo","tdv/player/script/helper/LevelUtil"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/player/parser/ClassInfo"),n=a("tdv/player/script/helper/LevelUtil");a=h.define("HotspotMapOverlayImageBase",m,function(){m.call(this)});a.prototype.Dt=function(){return this.get("image")?n.Dt(this.get("image")):null};a.prototype.uJ=function(){return this.get("image")?n.uJ(this.get("image")): null};return a});define("tdv/view/events/ProgressEvent",["require","tdv/utils","tdv/events/Event"],function(a){var m=a("tdv/utils"),h=a("tdv/events/Event");return m.extend(h,function(n,g){h.call(this,n);this.percent=g})}); define("tdv/player/view/image/Item",["require","tdv/utils","tdv/binding/Bindable","tdv/constants/EventName","tdv/view/events/ProgressEvent"],function(a){var m=a("tdv/utils"),h=a("tdv/binding/Bindable"),n=a("tdv/constants/EventName"),g=a("tdv/view/events/ProgressEvent");a=m.extend(h,function(){h.call(this);this.gW=[];this.Sg=void 0;this.I="initial"});a.prototype.eE=function(){return this.gW};a.prototype.eQ=function(k){this.gW!=k&&(this.gW=k,this.QC=this.Sg=void 0)};a.prototype.Wkb=function(k){this.Sg!== k&&(this.I="loading",this.Sg=k,this.o(new g(n.yc,this.Sg)))};a.prototype.bZ=function(){this.I!=="loaded"&&(this.I="loaded",this.o(n.ia))};a.prototype.ukb=function(){this.I!=="loaded"&&(this.I="error",this.o(n.$c))};return a}); define("tdv/player/view/map/renderer/item/Item",["require","tdv/utils","tdv/player/view/image/Item"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/image/Item");a=m.extend(h,function(n){h.call(this);this.Qf=n;this.C=void 0});a.prototype.getType=function(){return this.Qf};a.prototype.Dgb=function(n){return this.C!==void 0&&this.C===n.C};a.Kua="map";a.Lua="overlay";return a}); define("tdv/player/view/map/renderer/item/Overlay",["require","tdv/utils","tdv/player/view/map/renderer/item/Item"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/map/renderer/item/Item");a=m.extend(h,function(n,g,k){h.call(this,h.Lua);this.c6a=n;this.ec=g;this.fc=k});a.prototype.getX=function(){return this.ec};a.prototype.getY=function(){return this.fc};a.Jua="image";a.Iua="fov";return a}); define("tdv/player/view/map/renderer/item/ImageOverlay",["require","tdv/utils","tdv/player/view/map/renderer/item/Overlay"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/map/renderer/item/Overlay");a=m.extend(h,function(n,g,k,e,b,c,d,f,l,p,q,r){h.call(this,h.Jua,k,e);this.C=n;this.Se=g;this.rEa=b;this.Zha=c;this.$ha=d;this.Pa=f;this.Ha=l;this.ti=p;this.GC=q;this.JD=r;this.gW=[g]});a.prototype.rl=function(){return this.Se};a.prototype.zLa=function(){return this.Zha};a.prototype.ALa=function(){return this.$ha}; a.prototype.fg=function(){return this.Pa};a.prototype.wg=function(){return this.Ha};a.prototype.gP=function(){return this.GC};a.prototype.iP=function(){return this.JD};return a}); define("tdv/player/script/HotspotMapOverlayImage",["require","tdv/player/parser/ClassInfo","tdv/player/script/HotspotMapOverlayImageBase","tdv/player/script/helper/LevelUtil","tdv/player/view/map/renderer/item/ImageOverlay"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/HotspotMapOverlayImageBase"),n=a("tdv/player/script/helper/LevelUtil"),g=a("tdv/player/view/map/renderer/item/ImageOverlay");a=m.define("HotspotMapOverlayImage",h,function(){h.call(this);this.Wy=void 0}); a.prototype.getItem=function(){return this.cr()};a.prototype.cr=function(){this.Wy===void 0&&(this.Wy=this.Z6());return this.Wy};a.prototype.Z6=function(k){var e=this.get("image");return e?(e=n.Dt(e),new g(this,e.get("url"),this.get("x"),this.get("y"),k,this.get("offsetX"),this.get("offsetY"),this.get("width"),this.get("height"),this.get("scaleMode"),this.get("horizontalAlign"),this.get("verticalAlign"))):null};return a}); define("tdv/player/script/HotspotMapOverlayMap",["require","tdv/player/parser/ClassInfo","tdv/player/script/HotspotMapOverlayImageBase"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/HotspotMapOverlayImageBase");return m.define("HotspotMapOverlayMap",h,function(){h.call(this)})}); define("tdv/player/script/HotspotPanoramaOverlayImageBase",["require","tdv/binding/Bindable","tdv/constants/EventName","tdv/player/parser/ClassInfo","tdv/player/script/helper/PlaybackPositionHelper"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/constants/EventName"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/player/script/helper/PlaybackPositionHelper");a=n.define("HotspotPanoramaOverlayImageBase",m,function(){m.call(this);this.Gd=void 0});a.prototype.get=function(k,e){switch(k){case "playbackPositions":return this.Gd=== void 0&&(this.Gd=g.Eoa(this)),this.Gd}return m.prototype.get.call(this,k,e)};a.prototype.set=function(k,e){var b=!1;switch(k){case "distance":case "hfov":case "vfov":case "pitch":case "rotationX":case "rotationY":case "roll":case "yaw":case "opacity":case "playbackPositions":this.Gd=void 0,b=!0}m.prototype.set.call(this,k,e);b&&k!="playbackPositions"&&this.o(h.L("playbackPositions"))};return a}); define("tdv/player/script/HotspotPanoramaOverlayImage",["require","tdv/player/parser/ClassInfo","tdv/player/script/HotspotPanoramaOverlayImageBase"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/HotspotPanoramaOverlayImageBase");return m.define("HotspotPanoramaOverlayImage",h,function(){h.call(this)})}); define("tdv/player/script/HotspotPanoramaOverlayMap",["require","tdv/player/parser/ClassInfo","tdv/player/script/HotspotPanoramaOverlayImageBase"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/HotspotPanoramaOverlayImageBase");return m.define("HotspotPanoramaOverlayMap",h,function(){h.call(this)})}); define("tdv/view/html/HTMLParser",["require"],function(){function a(f){var l={};f=f.split(",");for(var p=0;p\s]+))?)*)\s*(\/?)>/,h=/^<\/([-A-Za-z0-9_]+:?[-A-Za-z0-9_]*)[^>]*>/,n=/([-A-Za-z0-9_]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g,g=a("area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed"),k=a("address,applet,blockquote,button,center,dd,del,dir,div,dl,dt,fieldset,form,frameset,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul"), e=a("a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var"),b=a("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr"),c=a("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"),d=a("script,style");return function(f,l){function p(w,y,x,z){y=y.toLowerCase();if(k[y])for(;r.lE()&&e[r.lE()];)q("",r.lE());b[y]&&r.lE()== y&&q("",y);(z=g[y]||!!z)||r.push(y);if(l.start){var A=[];x.replace(n,function(D,F){var C=arguments[2]?arguments[2]:arguments[3]?arguments[3]:arguments[4]?arguments[4]:c[F]?F:"";A.push({name:F,value:C,Yna:C.replace(/(^|[^\\])"/g,'$1\\"')})});l.start&&l.start(y,A,z)}}function q(w,y){if(y)for(y=y.toLowerCase(),w=r.length-1;w>=0&&r[w]!=y;w--);else w=0;if(w>=0){for(y=r.length-1;y>=w;y--)l.end&&l.end(r[y]);r.length=w}}var r=[],t=f;for(r.lE=function(){return this[this.length-1]};f;){var u=!0;if(r.lE()&& d[r.lE()])f=f.replace(new RegExp("(.*?)]*>"),function(w,y){y=y.replace(/\x3c!--(.*?)--\x3e/g,"$1").replace(/=0&&(l.edb&&l.edb(f.substring(4,v)),f=f.substring(v+3),u=!1)}else if(f.indexOf("= 0?k.AO()==k.CQ?this.l3a(c):this.k3a(c):this.j3a(c)};b.prototype.j3a=function(c){this.Mc.innerHTML=c;this.mGa()};b.prototype.l3a=function(c){this.Mc.empty();var d=this.Mc,f=null,l=[],p=null;new e(c,{start:function(q,r,t){if(q=="script"){t=void 0;for(var u=0;u",q.push(F),r=void 0)}},HW:function(x){u?u.content+=x:v+=x},end:function(x){x=="script"?(t.push(u),u=null):(r=q[q.length-1],q.pop())}});this.Mc.innerHTML=v;this.Mc.Fpb(p);for(c=0;c0){this.tC=this.XU[0];this.XU.splice(0,1);var c=this.tC.src;if(c){var d=this;b.c4a(c,function(){d.mAa()},function(){d.j4a()})}else{var f=this.tC.parent;c=this.tC.previousSibling;var l=c?c.nextSibling:f.firstChild;c=document.write;document.write=l?function(p){f.insertBefore(document.createTextNode(p),l)}:function(p){f.append(p)};m.ggb(this.tC.content); document.write=c;this.mAa()}}else this.mGa()};b.prototype.j4a=function(){this.tC=null;this.n2()};b.prototype.mAa=function(){this.tC=null;this.n2()};b.prototype.mGa=function(){this.o(new n(h.Tb))};b.kAa={};b.c4a=function(c,d,f){b.kAa[c]?d.call(window):m.ueb(c,()=>{b.kAa[c]=!0;d.call(window)},f)};return b}); define("tdv/view/timer/Timer",["require","exports","tdv/constants/EventName","tdv/events/Event","tdv/events/EventDispatcher"],function(a,m,h,n,g){return function(k){function e(b,c){var d=k.call(this)||this;d.u3a=b;d.ha=c;d.sk=null;return d}P(e,k);e.prototype.bind=function(b,c,d,f){b=k.prototype.bind.call(this,b,c,d,f);this.cW();return b};e.prototype.h=function(b,c,d){b=k.prototype.h.call(this,b,c,d);this.cW();return b};e.prototype.start=function(){this.ha=!0;this.cW()};e.prototype.stop=function(){this.ha= !1;this.cW()};e.prototype.jU=function(){this.o(new n(h.De))};e.prototype.cW=function(){if(this.ha&&this.c8(h.De)){if(this.sk==null){var b=this;this.sk=window.setTimeout(function(){b.sk=null;b.jU();b.cW()},this.u3a)}}else this.sk!=null&&(clearTimeout(this.sk),this.sk=null)};return e}(g)}); define("tdv/view/core/visualprops/HTMLVisualProperties",["require","exports","tdv/view/core/visualprops/UIBaseVisualProperties"],function(a,m,h){return function(n){function g(){var k=n!==null&&n.apply(this,arguments)||this;k.td=null;return k}P(g,n);return g}(h)}); define("tdv/view/html/HTML","require exports tdv/utils tdv/constants/EventName tdv/player/parser/helper/AppResizeUpdater tdv/view/constants/Alignment tdv/view/core/UIComponent tdv/view/html/HTMLFragment tdv/view/util/Font tdv/view/timer/Timer tdv/view/core/visualprops/HTMLVisualProperties".split(" "),function(a,m,h,n,g,k,e,b,c,d,f){var l=/[^\d]((\d*\.)?\d+)\s*(vmin|vmax|vw|vh)/i;return function(p){function q(){var r=p.call(this)||this;r.gf("HTML");r.CG=q.I_;r.K2=0;r.J2=0;r.sFa=(new Date).getTime(); r.u.td=null;r.wL=r.wL.bind(r);r.Zca=[];return r}P(q,p);q.prototype.wa=function(){return p.prototype.wa.call(this)};q.prototype.Pb=function(){p.prototype.Pb.call(this);this.m("content");this.m("horizontalAlign",k.fb);this.m("verticalAlign",k.$d);this.m("fontFamily");this.m("fontSize");this.m("fontColor");this.m("fontWeight");this.m("fontStyle");this.m("textAlign");this.m("textDecoration");this.m("textShadowBlurRadius",3);this.m("textShadowColor","#000000");this.m("textShadowHorizontalLength",0);this.m("textShadowOpacity", 0);this.m("textShadowVerticalLength",0)};q.prototype.TL=function(){return new f};q.prototype.bo=function(r,t,u,v){this.Gb&&g.get(this.Gb).tjb(this.wL);p.prototype.bo.call(this,r,t,u,v);this.Gb&&(g.get(this.Gb).Fbb(this.wL),g.get(this.Gb).DO(this.wL))};q.prototype.Kb=function(){p.prototype.Kb.call(this);this.u.td||(this.u.td=document.createElement("div"),this.u.td.style.display="inline",this.u.td.style.boxSizing="border-box",this.HN(!1),this.yza=new b(this.u.td),this.ou(),this.yza.bind(n.Tb,this.Y2a, this,!0),this.bind(n.$b,this.zza,this,!0))};q.prototype.jb=function(){var r=this,t=!1;this.S("visible")&&(t=!0);this.S("content")&&(t=this.G("content"),this.yza.dhb(t),this.$("content"),t=!0);if(this.S("width")||this.S("height"))t=!0;this.S("fontFamily")&&(t=this.G("fontFamily"),h.EA(t)||(t=""),this.u.td.style.fontFamily=c.qA(t),this.$("fontFamily"),t=!0);this.S("fontSize")&&(t=this.G("fontSize"),h.WMa(t)?t+="px":h.EA(t)||(t=""),this.u.td.style.fontSize=t,this.$("fontSize"),t=!0);this.S("fontColor")&& (t=this.G("fontColor"),h.EA(t)||(t=""),this.u.td.style.color=t,this.$("fontColor"),t=!0);if(this.S("fontWeight")){t=this.G("fontWeight");switch(t){case "bold":case "bolder":case "lighter":case "100":case "200":case "300":case "400":case "500":case "600":case "700":case "800":case "900":case "normal":break;default:t="normal"}this.u.td.style.fontWeight=t;this.$("fontWeight");t=!0}if(this.S("fontStyle")){t=this.G("fontStyle");switch(t){case "italic":case "normal":break;default:t="normal"}this.u.td.style.fontStyle= t;this.$("fontStyle");t=!0}if(this.S("textDecoration")){t=this.G("textDecoration");switch(t){case "underline":case "overline":case "line-through":case "none":break;default:t="none"}this.u.td.style.textDecoration=t;this.$("textDecoration");t=!0}if(this.S("textAlign")){t=this.G("textAlign");switch(t){case "left":case "right":case "center":case "justify":break;default:t=""}this.u.td.style.textAlign=t;this.$("textAlign");t=!0}var u=["textShadowColor","textShadowHorizontalLength","textShadowVerticalLength", "textShadowBlurRadius","textShadowOpacity"];if(u.some(function(w){return r.S(w)})){var v={};u.forEach(function(w){v[w]=r.G(w);r.$(w)});this.u.td.style.textShadow=[v.textShadowHorizontalLength+"px",v.textShadowVerticalLength+"px",v.textShadowBlurRadius+"px","rgba("+parseInt("0x"+v.textShadowColor.substr(1,2))+", "+parseInt("0x"+v.textShadowColor.substr(3,2))+", "+parseInt("0x"+v.textShadowColor.substr(5,2))+", "+v.textShadowOpacity+")"].join(" ")}["paddingTop","paddingRight","paddingBottom","paddingLeft"].some(function(w){return r.S(w)})&& (t=!0);p.prototype.jb.call(this);t&&this.NAa()};q.prototype.NAa=function(){this.zza();this.lc();this.G("visible")&&this.G("content")?this.$U(q.uca):this.$U(q.I_)};q.prototype.Zy=function(){p.prototype.Zy.call(this);this.K2=this.wa().qoa();this.J2=this.wa().poa();this.bn=this.K2+this.u.Dd+this.u.Ce;this.an=this.J2+this.u.ie+this.u.Df};q.prototype.$Ea=function(r){this.Yya()!=r&&(this.u.td.style.paddingLeft=r+"px",this.lc())};q.prototype.Yya=function(){return parseInt(this.u.td.style.paddingLeft)||0}; q.prototype.bFa=function(r){this.$ya()!=r&&(this.u.td.style.paddingTop=r+"px",this.lc())};q.prototype.$ya=function(){return parseInt(this.u.td.style.paddingTop)||0};q.prototype.aFa=function(r){this.Zya()!=r&&(this.u.td.style.paddingRight=r+"px",this.lc())};q.prototype.Zya=function(){return parseInt(this.u.td.style.paddingRight)||0};q.prototype.ZEa=function(r){this.Xya()!=r&&(this.u.td.style.paddingBottom=r+"px",this.lc())};q.prototype.Xya=function(){return parseInt(this.u.td.style.paddingBottom)|| 0};q.prototype.Y2a=function(){this.Zca=Array.prototype.slice.call(this.u.td.querySelectorAll("*[style]")).map(function(r){var t={};t.ut=r;t.style=r.getAttribute("style");return t}).filter(function(r){return l.test(r.style)}).map(function(r){for(var t=r.style,u=[];;){var v=l.exec(t);if(v)u.push(function(w){return function(){return w}}(t.substr(0,v.index+1))),u.push(function(w,y){switch(y){case "vw":return function(x){return Math.round(x*w)+"px"};case "vh":return function(x,z){return Math.round(z*w)+ "px"};case "vmin":return function(x,z,A){return Math.round(A*w)+"px"};case "vmax":return function(x,z,A){return Math.round(A*w)+"px"}}}(parseFloat(v[1]),v[3].toLowerCase())),t=t.substr(v.index+v[0].length);else return u.push(function(w){return function(){return w}}(t)),r.Leb=u,r}});this.Gb&&g.get(this.Gb).DO(this.wL)};q.prototype.wL=function(r,t,u,v){this.Zca.length!=0&&(this.Zca.forEach(function(w){var y=w.Leb.map(function(x){return x(r,t,u,v)}).join("");w.ut.setAttribute("style",y)}),this.NAa())}; q.prototype.zza=function(){var r="auto",t="auto";if(!this.fga()){this.bn!=this.nb()&&this.lc();var u=this.nb()-(this.u.Dd+this.u.Ce);u>0&&(r=u+"px")}this.sza()||(this.an!=this.Mb()&&this.lc(),u=this.Mb()-(this.u.ie+this.u.Df),u>0&&(t=u+"px"));this.u.td.style.width=r;this.u.td.style.height=t};q.prototype.qBa=function(){var r=this.wa().qoa(),t=this.wa().poa();this.K2!=r||this.J2!=t?(this.K2=r,this.J2=t,this.lc(),this.$U(q.uca)):(r=(new Date).getTime()-this.sFa,r>q.SWa?this.$U(q.BWa):r>q.RWa&&this.$U(q.AWa))}; q.prototype.m7a=function(){this.sFa=(new Date).getTime()};q.prototype.$U=function(r){this.CG==q.uca&&this.m7a();this.CG!=r&&(this.CG!=q.I_&&q.Fwa[this.CG].h(n.De,this.qBa,this),this.CG=r,this.CG!=q.I_&&q.Fwa[this.CG].bind(n.De,this.qBa,this,!0))};q.I_="stopped";q.BWa="slow";q.AWa="normal";q.uca="fast";q.SWa=3E4;q.RWa=5E3;q.Fwa={slow:new d(2E3,!0),normal:new d(500,!0),fast:new d(100,!0)};return q}(e)}); define("tdv/player/script/HTML",["require","tdv/view/html/HTML","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/view/html/HTML");return a("tdv/player/parser/ClassInfo").define("HTML",m,function(){m.call(this)})}); define("tdv/view/containers/AbsoluteContainer",["require","exports","tdv/view/containers/Container","tdv/view/constants/LayoutMode"],function(a,m,h,n){return function(g){function k(){return g.call(this)||this}P(k,g);k.prototype.Pb=function(){this.Il(k.ad)};k.ad=Object.assign({},h.ad,{layout:n.QZ});return k}(h)}); define("tdv/view/text/HTMLText",["require","exports","tdv/view/constants/OverflowPolicy","tdv/view/containers/AbsoluteContainer","tdv/view/html/HTML"],function(a,m,h,n,g){return function(k){function e(){var b=k.call(this)||this;b.HC=null;b.npb=!0;return b}P(e,k);e.prototype.Pb=function(){k.prototype.Pb.call(this);this.m("overflow",h.Ur);this.m("html")};e.prototype.Kb=function(){k.prototype.Kb.call(this);this.HC==null&&(this.HC=new g,this.HC.xa({left:0,toolTipDisabled:!0}),this.mb(this.HC))};e.prototype.jb= function(){this.S("html")&&(this.HC.set("content",this.G("html")),this.$("html"));this.Oc(["paddingLeft","paddingTop","paddingRight","paddingBottom"],{},[this.HC],!0,!0);this.Oc(["cursor"],{},[this.HC],!0,!1);k.prototype.jb.call(this);this.HC.set("width",this.fga()?void 0:"100%")};return e}(n)}); define("tdv/player/script/HTMLText",["require","tdv/view/text/HTMLText","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/view/text/HTMLText");return a("tdv/player/parser/ClassInfo").define("HTMLText",m,function(){m.call(this)})}); define("tdv/view/buttons/IconButton","require exports tdv/utils tdv/constants/EventName tdv/events/Event tdv/player/view/util/URL tdv/view/buttons/ButtonGroup tdv/view/constants/Cursor tdv/view/constants/ScaleMode tdv/view/constants/State tdv/view/constants/ButtonMode tdv/view/images/Image".split(" "),function(a,m,h,n,g,k,e,b,c,d,f,l){var p=k.Ak("debug");return function(q){function r(){var t=q.call(this,3)||this;t.b3a=function(){t.H9()};t.pR=function(){t.get("pressed")?(t.set("pressed",!1),t.o(new g(n.Km))): (t.set("pressed",!0),t.o(new g(n.Rk)))};t.gf("Button");t.set("ariaRole","button");t.set("autoRolledOver",!0);t.set("autoPressed",!0);t.set("cursor",b.qf);t.set("scaleMode",c.uj);t.Pda=document.createElement("canvas");t.Pda.width=1;t.Pda.height=1;t.Qda=t.Pda.getContext("2d");t.Qda.globalCompositeOperation="copy";t.bind(n.Eb,t.b3a,t,!1);return t}P(r,q);r.prototype.Pb=function(){q.prototype.Pb.call(this);this.m("buttonGroup");this.m("mode",f.af);this.m("pressed");this.m("iconURL");this.m("transparencyActive"); this.D("rollOverOpacity",d.ea,"opacity");this.D("rollOverIconURL",d.ea,"iconURL");this.D("pressedOpacity",d.Fb,"opacity");this.D("pressedIconURL",d.Fb,"iconURL");this.D("pressedRollOverOpacity",d.qc,"opacity");this.D("pressedRollOverIconURL",d.qc,"iconURL")};r.prototype.H9=function(t){t?q.prototype.set.call(this,"cursor",t):q.prototype.set.call(this,"cursor",this.H_a)};r.prototype.thb=function(t){if(!this.u.image)return!1;var u=this.Gb?this.Gb.fD:1,v=h.offset(this.u.image),w=(t.zE-v.left)/u,y=this.u.image.clientWidth; t=(t.AE-v.top)/u;u=this.u.image.clientHeight;if(w>=0&&t>=0&&w0)return!0}return!1};r.prototype.set=function(t,u){t==="cursor"&&(this.H_a=u);return q.prototype.set.call(this,t,u)};r.prototype.jb=function(){this.S("transparencyActive")&&(this.D8a(this.G("transparencyActive")),this.$("transparencyActive"));var t=!1;if(this.S("backgroundOpacity")||this.S("backgroundColor")|| this.S("backgroundBlur"))t=!0;if(this.S("iconURL")){var u=this.G("iconURL");this.set("url",u);this.$("iconURL")}u=!1;this.S("mode")&&(this.G("mode")==f.af?(this.h(n.ma,this.pR,this),this.set("autoPressed",!0)):(this.bind(n.ma,this.pR,this,!0),this.set("autoPressed",!1)),this.$("mode"),u=!0);if(u||this.S("pressed"))this.G("mode")==f.ak?this.IN(this.G("pressed")==1):u&&this.IN(!1);this.S("buttonGroup")&&((u=this.G("buttonGroup"))?e.register(this,u):e.unregister(this),this.$("buttonGroup"));q.prototype.jb.call(this); !t||this.u.nm!=0&&this.u.uk.length!=0&&this.u.aJ!=0||(this.GEa(.001),this.FEa(["#000000"]))};r.prototype.D8a=function(t){this.xM.iRa(t)};return r}(l)});define("tdv/player/script/IconButton",["require","tdv/view/buttons/IconButton","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/view/buttons/IconButton");return a("tdv/player/parser/ClassInfo").define("IconButton",m,function(){m.call(this)})}); define("tdv/player/script/IconHotspotMapOverlay",["require","tdv/player/parser/ClassInfo","tdv/player/script/HotspotMapOverlay"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/HotspotMapOverlay");return m.define("IconHotspotMapOverlay",h,function(){h.call(this,!1)})}); define("tdv/player/script/Image",["require","tdv/view/images/Image","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/view/images/Image");a=a("tdv/player/parser/ClassInfo").define("Image",m,function(){m.call(this)});a.prototype.set=function(h,n){m.prototype.set.call(this,h,n)};return a}); define("tdv/player/script/ImagePlaneModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/PlaneModel3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/PlaneModel3DObject");return m.define("ImagePlaneModel3DObject",h,function(){h.call(this)})}); define("tdv/player/script/InnerModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DObject");return m.define("InnerModel3DObject",h,function(){h.call(this)})});define("tdv/player/script/Label",["require","tdv/view/text/Label","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/view/text/Label");return a("tdv/player/parser/ClassInfo").define("Label",m,function(){m.call(this)})}); define("tdv/player/script/LensFlarePanoramaOverlay",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("LensFlarePanoramaOverlay",m,function(){m.call(this)})}); define("tdv/player/script/LineModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DObject");return m.define("LineModel3DObject",h,function(){h.call(this)})}); define("tdv/player/script/LivePanorama",["require","tdv/player/parser/ClassInfo","tdv/player/script/Panorama"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Panorama");a=m.define("LivePanorama",h,function(){h.call(this)});a.prototype.nX=function(){return this.get("initialFrameIndex",0)};return a}); define("tdv/player/script/Light",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("Light",m,function(){m.call(this)})}); define("tdv/player/view/map/renderer/item/Map",["require","tdv/utils","tdv/player/view/map/renderer/item/Item"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/map/renderer/item/Item");a=m.extend(h,function(n,g,k,e,b,c,d){h.call(this,h.Kua);this.C=n;this.Se=g;this.Pa=k;this.Ha=e;this.ti=b;this.M0a=c;this.xq=d.slice()});a.prototype.eE=function(){for(var n=[this.Se],g=0;g{c.h(h.Rk,this.mwa,this,!0);c.h(h.Km,this.nwa,this,!0);c.h(h.ma,this.iwa,this,!0);c.h(h.Sa,this.kwa,this,!0);c.h(h.$a,this.lwa,this,!0);c.h(h.uc,this.pwa,this,!0);c.h(h.Eb,this.owa,this,!0)});m.difference(b,this.ek).forEach(c=> {c.xa(this.hC);c.bind(h.Rk,this.mwa,this,!0);c.bind(h.Km,this.nwa,this,!0);c.bind(h.ma,this.iwa,this,!0);c.bind(h.Sa,this.kwa,this,!0);c.bind(h.$a,this.lwa,this,!0);c.bind(h.uc,this.pwa,this,!0);c.bind(h.Eb,this.owa,this,!0)},this);this.ek=b;this.yG=this.yG.filter(function(c){return this.ek.indexOf(c)>=0}.bind(this))};a.prototype.mwa=function(){this.o(new n(h.Rk))};a.prototype.nwa=function(){this.o(new n(h.Km))};a.prototype.iwa=function(){this.o(new n(h.ma))};a.prototype.kwa=function(){this.o(new n(h.Sa))}; a.prototype.lwa=function(){this.o(new n(h.$a))};a.prototype.pwa=function(b){this.yG.push(b.source);this.jm()};a.prototype.owa=function(b){this.yG=this.yG.filter(function(c){return c!=b.source});this.jm()};a.prototype.set=function(b,c){this.hC[b]=c;this.ek.forEach(function(d){d.xa(this.hC)}.bind(this));this.jm()};a.prototype.jm=function(){this.ek.forEach(function(b){b.get("state")==e.Fb&&this.yG.indexOf(b)>=0?b.set("state",e.qc):b.get("state")==e.qc&&this.yG.indexOf(b)<0&&b.set("state",e.Fb)}.bind(this))}; return a}); define("tdv/binding/BindingsHandler",["require","exports","tdv/utils","tdv/binding/ChangeWatcher"],function(a,m,h,n){var g=function(){return function(){}}();return function(){function k(){}k.ba=function(e,b,c,d){this.Ava(e,b,c,d,!1)};k.KD=function(e,b,c,d){this.Ava(e,b,c,d,!0)};k.Ava=function(e,b,c,d,f){function l(){for(var r=[],t=0;tf;)this.L_a(this.Qh.pop());for(;this.Qh.length1)return window.devicePixelRatio}q=[Math.max(document.documentElement.clientWidth,q),Math.max(document.documentElement.clientHeight,r)].sort(function(t,u){return u-t});q=[p[0]/q[0],p[1]/q[1]].sort()[0];if(q!==Infinity)return q}else if(h.Nd()==h.Bta&&h.Yb()==h.Pp)return 1;return window.devicePixelRatio};e.UKa=function(q){if(!h.ub()||h.Nd()!=h.uB||!k.enabled()||!q)return e.getPixelRatio();q=[q.clientWidth,q.clientHeight].sort(function(r,t){return t-r});return[p[0]/q[0], p[1]/q[1]].sort()[0]};var f=!1,l=[];e.F$=function(q){f=q;l.forEach(function(r){r(q)})};e.Zbb=function(q){l.push(q)};e.Fhb=function(){return f};var p=[screen.width*window.devicePixelRatio,screen.height*window.devicePixelRatio].sort(function(q,r){return r-q});return e});define("tdv/player/view/panorama/renderer/3d/util/Util",["require","tdv/player/view/webgl/system/util/Util"],function(a){return a("tdv/player/view/webgl/system/util/Util")}); define("tdv/player/view/common/SceneFaderState",["require","exports"],function(){return function(){return function(){this.XD=this.YO=void 0}}()}); define("tdv/player/view/common/SceneFader",["require","exports","tdv/player/view/panorama/renderer/3d/util/Util","three.mod","tdv/constants/RenderOrder"],function(a,m,h,n,g){a=function(){function e(b,c,d,f){this.state=b;this.renderer=c;this.scene=d;this.camera=f;this.sdb()}e.prototype.dispose=function(){this.Ocb()};e.prototype.update=function(b,c){if(this.state.XD!==void 0)if(this.vp.material.opacity=1-this.state.XD,b=c.parent!=null?c:b,this.vp.parent!==b&&b.add(this.vp),c.isPerspectiveCamera){this.vp.position.z= -c.near*1.01;var d=this.renderer.getSize(new n.Vector2),f=d.height;b=this.l7.width;var l=this.l7.height;c=f/(2*Math.tan(c.fov*k/2));c=Math.max(f/c,d.width/(c*b/l));this.vp.scale.y=c;this.vp.scale.x=c*b/l}else c.isOrthographicCamera&&(this.vp.position.z=-(c.near+.1),this.renderer.getSize(new n.Vector2),this.vp.scale.y=c.top-c.bottom,this.vp.scale.x=c.right-c.left)};e.prototype.Sf=function(){return this.scene};e.prototype.sdb=function(){this.l7=this.Kcb();this.vp=this.Idb(this.l7)};e.prototype.Kcb= function(){this.renderer.$q=!0;var b=h.QJa(this.renderer),c=this.renderer.getRenderTarget();this.renderer.setRenderTarget(b);this.renderer.render(this.scene,this.camera);this.renderer.setRenderTarget(c);this.renderer.$q=!1;return b};e.prototype.Idb=function(b){b=new n.SpriteMaterial({map:b.texture});b.sizeAttenuation=!1;b.transparent=!0;b.visible=!0;b.opacity=1;b.depthTest=!1;b.needsUpdate=!0;b=new n.Sprite(b);b.renderOrder=g.RVa;return b};e.prototype.Ocb=function(){var b,c,d,f=this.vp.material;(b= f.map)===null||b===void 0||b.dispose();(c=f.envMap)===null||c===void 0||c.dispose();f.dispose();this.vp.geometry.dispose();this.l7.dispose();(d=this.vp.parent)===null||d===void 0||d.remove(this.vp)};return e}();var k=Math.PI/180;return a}); define("tdv/player/view/common/XRSceneFader",["require","exports","tdv/player/view/util/XR","three.mod","tdv/constants/RenderOrder"],function(a,m,h,n,g){return function(){function k(e,b,c){this.state=e;this.scene=c;this.vna()}k.prototype.dispose=function(){this.Wcb()};k.prototype.update=function(){this.ZO.material.opacity=Math.max(this.state.YO===void 0?0:1-this.state.YO,this.state.XD===void 0?0:this.state.XD)};k.prototype.Sf=function(){return this.scene};k.prototype.vna=function(){var e=new n.SphereGeometry(1, 32,16,0,Math.PI*2,0,Math.PI),b=new n.MeshBasicMaterial({color:0,side:n.DoubleSide,depthTest:!1,depthWrite:!1,transparent:!0});e=new n.Mesh(e,b);e.renderOrder=g.wWa;e.frustumCulled=!1;e.userData.MJ=!0;this.ZO=e;h.Zq.add(this.ZO)};k.prototype.Wcb=function(){var e;this.ZO.material.dispose();this.ZO.geometry.dispose();(e=this.ZO.parent)===null||e===void 0||e.remove(this.ZO)};return k}()}); define("tdv/player/view/common/WebGLRendererAugmenter","require exports tdv/constants/EventName tdv/player/view/common/SceneFaderState tdv/player/view/common/SceneFader tdv/player/view/common/XRSceneFader tdv/player/view/util/XR tdv/player/view/util/Device tdv/player/view/util/Flags".split(" "),function(a,m,h,n,g,k,e,b,c){return function(){function d(f){this.V$=this.U$=this.X$=this.Y$=this.W$=this.Z$=void 0;this.Yt=null;this.jpa=!1;this.ZW=void 0;this.renderer=f;this.Tw=new n;this.fPa=this.renderer.render.bind(f); this.renderer.render=this.render.bind(this);this.hPa=this.renderer.setSize.bind(f);this.renderer.setSize=this.setSize.bind(this);this.Rib=this.renderer.clear.bind(f);this.renderer.clear=this.clear.bind(this);this.gPa=this.renderer.setRenderTarget.bind(f);this.renderer.setRenderTarget=this.setRenderTarget.bind(this);e.M.bind(h.V,this.Ta,this,!0);window.startFadeOut=this.bF.bind(this);window.setFadeOutPosition=this.PE.bind(this);window.endFadeOut=this.VD.bind(this)}d.prototype.dispose=function(){var f; e.M.h(h.V,this.Ta,this);(f=this.Yt)===null||f===void 0||f.dispose()};d.prototype.setSize=function(f,l,p){p===void 0&&(p=!0);!this.renderer.$q&&this.nj()?(this.Z$=f,this.W$=l,this.Y$=p):this.hPa(f,l,p)};d.prototype.setRenderTarget=function(f,l,p){l===void 0&&(l=0);p===void 0&&(p=0);this.nj()&&!this.Jhb(f)?(this.X$=f,this.U$=l,this.V$=p):this.gPa(f,l,p)};d.prototype.Jhb=function(f){return this.jpa||this.renderer.$q||f.isXRRenderTarget||f.textures&&f.textures.length>0&&f.textures[0].name&&f.textures[0].name.includes("PMREM")? !0:!1};d.prototype.render=function(f,l){var p;if(f.isScene){if(!this.renderer.$q){if(this.Yt&&this.Yt.Sf()===f&&f!==this.J8)return;e.ura(this.renderer,f,l,this.Vsa);if(this.nj()||this.renderer.getRenderTarget()===null||(l===null||l===void 0?0:l.isPerspectiveCamera)&&((p=this.renderer.getRenderTarget())===null||p===void 0?0:p.bNa))this.J8=f,this.hNa=l,this.Yt&&this.Yt.update(f,l)}if(this.Beb(f,l))return}this.jpa=!0;try{this.fPa(f,l)}catch(q){c.uu&&console.error("render error:",q)}this.jpa=!1};d.prototype.clear= function(f,l,p){this.Rib(f,l,p)};d.prototype.Ta=function(){this.nj()||(this.Z$!==void 0&&this.W$!==void 0&&this.Y$!==void 0&&(this.hPa(this.Z$,this.W$,this.Y$),this.Y$=this.W$=this.Z$=void 0),this.X$!==void 0&&this.U$!==void 0&&this.V$!==void 0&&(this.gPa(this.X$,this.U$,this.V$),this.V$=this.U$=this.X$=void 0))};d.prototype.nj=function(){return e.isPresenting&&e.Ag===this.renderer};d.prototype.bF=function(){this.Tw.XD=0;this.FZ()};d.prototype.PE=function(f){this.Tw.XD=f};d.prototype.VD=function(){this.Tw.XD= void 0;this.FZ()};d.prototype.wK=function(){this.Tw.YO=0;this.FZ()};d.prototype.kK=function(f){this.Tw.YO=f;this.FZ()};d.prototype.lJ=function(){this.Tw.YO=void 0;this.FZ()};d.prototype.Beb=function(f,l){if(!e.isPresenting||this.ZW===0)return!1;if(this.ZW===void 0){if(b.xc()!=b.su&&b.xc()!=b.yB)return this.ZW=0,!1;this.ZW=20}this.ZW--;var p=l.near,q=l.far;l.near=Math.min(p,.1);l.far=Math.max(q,1E3);this.fPa(f,l);l.near=p;l.far=q;return!0};d.prototype.FZ=function(){var f=this.J8&&(e.isPresenting&& this.Tw.YO!==void 0||this.Tw.XD!==void 0);f!==!!this.Yt&&(f?this.nj()?this.Yt=new k(this.Tw,this.renderer,this.J8,this.hNa):this.Yt=new g(this.Tw,this.renderer,this.J8,this.hNa):this.Yt&&(this.Yt.dispose(),this.Yt=null))};return d}()}); define("tdv/player/view/common/RenderersContainer","require exports tdv/constants/EventName tdv/player/view/panorama/renderer/3d/util/Util tdv/player/view/util/Flags tdv/player/view/util/XR tdv/player/view/common/WebGLRendererAugmenter three.mod tdv/view/util/Fullscreen".split(" "),function(a,m,h,n,g,k,e,b,c){function d(f,l){return f.Ioa!==l.Ioa?f.Ioa-l.Ioa:f.renderOrder!==l.renderOrder?f.renderOrder-l.renderOrder:f.object.zw||l.object.zw?(f.object.zw?-1:1)-(l.object.zw?-1:1):f.z!==l.z?l.z-f.z:f.id- l.id}return function(){function f(l){this.tW=!0;this.nr=this.renderer=null;this.Jqa=void 0;this.Gk=0;this.tW=l;this.container=document.createElement("div")}f.prototype.dispose=function(){this.ya()};f.prototype.v6=function(){this.Gk++};f.prototype.Cgb=function(){return this.Gk>0};f.prototype.Y9=function(){this.Gk--;this.Gk===0&&this.ya()};f.prototype.cc=function(){return this.container};f.prototype.uMa=function(){return!!this.renderer};f.prototype.Jn=function(){this.IRa();return this.renderer};f.prototype.Ueb= function(){this.Mlb();return this.TD};f.prototype.Veb=function(){this.Nlb();return this.rt};f.prototype.kmb=function(){this.B$(f.sua)};f.prototype.jmb=function(){this.B$(f.OVa)};f.prototype.pmb=function(){this.B$(f.PVa)};f.prototype.mmb=function(){this.B$(f.tua)};f.prototype.bF=function(){var l;(l=this.nr)===null||l===void 0||l.bF()};f.prototype.PE=function(l){var p;(p=this.nr)===null||p===void 0||p.PE(l)};f.prototype.VD=function(){var l;(l=this.nr)===null||l===void 0||l.VD()};f.prototype.wK=function(){var l; this.IRa();(l=this.nr)===null||l===void 0||l.wK()};f.prototype.kK=function(l){var p;(p=this.nr)===null||p===void 0||p.kK(l)};f.prototype.lJ=function(){var l;(l=this.nr)===null||l===void 0||l.lJ()};f.prototype.Mlb=function(){this.TD||(this.TD=new b.CSS3DRenderer,this.TD.domElement.style.position="absolute",this.TD.domElement.style.zIndex="0",this.container.prepend(this.TD.domElement))};f.prototype.IRa=function(){if(!this.renderer){var l={alpha:!0};g.LUa&&(l.precision="lowp");f.nna.length>0?(l.context= f.nna.pop(),l.canvas=l.context.canvas):(l.canvas=document.createElement("canvas"),l.context=n.Rdb(l.canvas));this.renderer=new b.WebGLRenderer(l);this.nr=new e(this.renderer);this.renderer.setAnimationLoop(null);this.renderer.setPixelRatio(n.getPixelRatio());this.renderer.debug.checkShaderErrors=g.uu;this.renderer.domElement.style.position="absolute";this.renderer.domElement.style.zIndex="1";this.renderer.domElement.style.pointerEvents="none";this.renderer.outputColorSpace=b.SRGBColorSpace;this.renderer.shadowMap.type= b.PCFShadowMap;this.renderer.setTransparentSort(d);this.rt?this.container.insertBefore(this.renderer.domElement,this.rt.domElement):this.container.appendChild(this.renderer.domElement);this.sTa();k.Xbb(this.renderer);c.M.bind(h.V,this.rOa,this,!0)}};f.prototype.rOa=function(){setTimeout(function(){this.renderer&&this.renderer.setPixelRatio(n.UKa(this.renderer.domElement))}.bind(this),100)};f.prototype.B$=function(l){this.Jqa!==l&&(this.Jqa=l,this.sTa())};f.prototype.sTa=function(){if(this.renderer)switch(this.Jqa){case f.sua:this.renderer.setClearColor(0, 1);this.renderer.autoClear=!1;this.renderer.shadowMap.enabled=!1;this.renderer.localClippingEnabled=!1;this.nr.Vsa=k.SQ.bca;break;case f.tua:this.renderer.setClearColor(0,0);this.renderer.autoClear=!1;this.renderer.shadowMap.enabled=!0;this.renderer.localClippingEnabled=!0;this.nr.Vsa=k.SQ.Tba;break;default:this.renderer.setClearColor(0,0),this.renderer.autoClear=!1,this.renderer.shadowMap.enabled=!0,this.renderer.localClippingEnabled=!1,this.nr.Vsa=k.SQ.Tba}};f.prototype.Nlb=function(){this.rt|| (this.rt=new b.CSS3DRenderer,this.rt.domElement.style.position="absolute",this.rt.domElement.style.zIndex="2",this.rt.domElement.style.pointerEvents="none",this.container.appendChild(this.rt.domElement))};f.prototype.ya=function(){var l;this.rt&&(this.container.removeChild(this.rt.domElement),this.rt=null);this.renderer&&(c.M.h(h.V,this.rOa,this),k.Ejb(this.renderer),this.container.removeChild(this.renderer.domElement),f.nna.push(this.renderer.getContext()),this.renderer.clear(),this.renderer.dispose(), this.renderer=null,(l=this.nr)===null||l===void 0||l.dispose(),this.nr=null);this.TD&&(this.container.removeChild(this.TD.domElement),this.TD=null)};f.sua=0;f.OVa=1;f.PVa=2;f.tua=3;f.nna=[];return f}()}); define("tdv/player/view/ScreenJoystick",["require","exports","tdv/constants/EventName","tdv/events/EventDispatcher","tdv/player/view/util/Device"],function(a,m,h,n,g){return function(k){function e(b,c){var d=k.call(this)||this;d.enabled=!1;d.X8=0;d.Y8=0;d.kqa=null;d.Tj=null;d.Am=null;d.kQ=null;d.Gk=0;d.eb=b;d.kqa=c;return d}P(e,k);e.prototype.dispose=function(){this.Ra(!1);this.kqa=this.eb=null};e.prototype.v6=function(){this.Gk++;this.Gk>=1&&this.Ra(!0)};e.prototype.Y9=function(){this.Gk--;this.Gk<= 0&&this.Ra(!1)};e.prototype.Ra=function(b){this.enabled!=b&&((this.enabled=b)?(this.eb.Bra("Button"),this.acb()):(this.eb.Rjb(),this.lna(),this.stop(),this.Jjb()))};e.prototype.getX=function(){return this.X8};e.prototype.getY=function(){return this.Y8};e.prototype.$h=function(b){this.lf(b);this.enabled&&(this.Mpa=this.Kpa=b.x,this.Npa=this.Lpa=b.y,this.zlb())};e.prototype.Vj=function(b){this.Mpa=b.x;this.Npa=b.y;this.kQ?this.Nmb():this.Tj&&this.GK()};e.prototype.lf=function(){this.lna();this.stop()}; e.prototype.sOa=function(){this.lf()};e.prototype.sl=function(){this.vmin=Math.min(this.eb.nb(),this.eb.Mb())/100};e.prototype.start=function(){this.kA();this.o(h.Vp);this.GK()};e.prototype.stop=function(){this.Tj&&(this.feb(),this.o(h.Fg))};e.prototype.Nmb=function(){var b=this.Mpa-this.Kpa,c=this.Npa-this.Lpa;Math.sqrt(b*b+c*c)>this.vmin*e.pUa&&this.lna()};e.prototype.zlb=function(){this.kQ=window.setTimeout(this.omb.bind(this),e.qUa)};e.prototype.lna=function(){this.kQ&&(clearTimeout(this.kQ), this.kQ=null)};e.prototype.kA=function(){this.Tj=document.createElement("div");this.Tj.setAttribute("tdvclass","Button");this.Tj.style.position="absolute";this.Tj.style.width=this.Tj.style.height=Math.round(e.ata*2*this.vmin)+"px";this.Tj.style.borderRadius="50%";this.Tj.style.backgroundColor="rgba(255, 255, 255, 0.5)";this.Tj.style.transform="translate(-50%, -50%)";this.Tj.style.zIndex="1000";this.Tj.style.left=this.Kpa+"px";this.Tj.style.top=this.Lpa+"px";this.kqa.wa().tk(this.Tj);this.Am=document.createElement("div"); this.Am.setAttribute("tdvclass","Button");this.Am.style.position="absolute";this.Am.style.width=this.Am.style.height=Math.round(e.KVa*2*this.vmin)+"px";this.Am.style.borderRadius="50%";this.Am.style.backgroundColor="rgba(255, 255, 255, 0.5)";this.Am.style.transform="translate(-50%, -50%)";this.Am.style.zIndex="1000";this.Tj.appendChild(this.Am)};e.prototype.GK=function(){var b=this.Mpa-this.Kpa,c=this.Npa-this.Lpa;if(b==0&&c==0)this.Y8=this.X8=0;else{var d=Math.atan2(-c,b);b=Math.min(Math.sqrt(b* b+c*c)/(this.vmin*e.ata),e.fVa);this.X8=Math.cos(d)*b;this.Y8=Math.sin(d)*b}this.Am.style.left=(50+this.X8*50).toFixed(2)+"%";this.Am.style.top=(50-this.Y8*50).toFixed(2)+"%";this.o(h.V)};e.prototype.feb=function(){var b,c;(b=this.Am.parentNode)===null||b===void 0||b.removeChild(this.Am);this.Am=null;(c=this.Tj.parentNode)===null||c===void 0||c.removeChild(this.Tj);this.Tj=null};e.prototype.omb=function(){this.kQ=null;this.start()};e.prototype.acb=function(){this.eb.bind(h.Sa,this.$h,this,!0);this.eb.bind(h.gb, this.Vj,this,!0);this.eb.bind(h.$a,this.lf,this,!0);this.eb.bind(h.$b,this.sl,this,!0);this.eb.bind(h.HB,this.sOa,this,!0);this.sl()};e.prototype.Jjb=function(){this.eb.h(h.Sa,this.$h,this);this.eb.h(h.gb,this.Vj,this);this.eb.h(h.$a,this.lf,this);this.eb.h(h.$b,this.sl,this);this.eb.h(h.HB,this.sOa,this)};e.pUa=g.ub()?5:.5;e.qUa=g.ub()?300:600;e.ata=g.ub()?10:6.6;e.KVa=g.ub()?5:3.3;e.fVa=6;return e}(n)}); define("tdv/player/view/Subtitles","require tdv/utils tdv/constants/EventName tdv/view/constants/Alignment tdv/view/util/Animation tdv/view/util/Font".split(" "),function(a){function m(f){this.Xra=f;this.element=document.createElement("div");this.isa=document.createElement("span");this.element.appendChild(this.isa);this.isa.innerHTML=f.text.split("
").join("\n").split("\n").map(n).join("
");this.W6=!1}function h(f){this.P=f;this.ZV=g.ksa(this.ZV.bind(this),100);this.$V=g.ksa(this.$V.bind(this), 100);this.qa=document.createElement("div");this.qa.style.position="absolute";this.qa.style.left=0;this.qa.style.top=0;this.qa.style.right=0;this.qa.style.bottom=0;this.qa.style.zIndex=1;this.qa.style.cursor="inherit";this.qa.style.display="none";this.mn=document.createElement("div");this.mn.style.position="absolute";this.mn.style.left=0;this.mn.style.right=0;this.mn.style.zIndex=1;this.mn.style.cursor="inherit";this.qa.appendChild(this.mn);this.pV=[];this.BV=[];this.aj=[];this.Qia={};this.gO=e.Gc; this.P.bind(k.L("subtitlesEnabled"),this.Vz,this);h.jua.forEach(function(l){this.P.bind(k.L(l),this.ZV,this)}.bind(this));h.kua.forEach(function(l){this.P.bind(k.L(l),this.$V,this)}.bind(this));this.Vz();this.ZV();this.$V()}function n(f){d.innerHTML=f;return d.innerText}var g=a("tdv/utils"),k=a("tdv/constants/EventName"),e=a("tdv/view/constants/Alignment"),b=a("tdv/view/util/Animation"),c=a("tdv/view/util/Font");h.prototype.clear=function(){this.nqb(null);this.P&&(this.P.h(k.L("subtitlesEnabled"), this.Vz,this),h.jua.forEach(function(f){this.P.h(k.L(f),this.ZV,this)}.bind(this)),h.kua.forEach(function(f){this.P.h(k.L(f),this.$V,this)}.bind(this)),this.P=null)};h.prototype.cc=function(){return this.qa};h.prototype.Qma=function(f){this.pV.indexOf(f)<0&&(this.pV.push(f),f.bind(k.L("activeSubtitles"),this.b3,this,!0),this.b3())};h.prototype.Iqa=function(f){var l=this.pV.indexOf(f);l>=0&&(this.pV.splice(l,1),f.h(k.L("activeSubtitles"),this.b3,this,!0),this.b3())};h.prototype.b3=function(){var f= [];this.pV.forEach(function(l){f=f.concat(l.get("activeSubtitles")||[])});this.b9a(f)};h.prototype.Vz=function(){this.ha=this.P.get("subtitlesEnabled");this.fma()};h.prototype.ZV=function(){this.gO=this.iS("subtitlesVerticalAlign",[e.Tc,e.$d,e.Gc],e.Gc);this.mn.style["text-align"]=this.iS("subtitlesHorizontalAlign",[e.fb,e.Db,e.$e],e.$e);this.mn.style.bottom=this.gO==e.Gc?this.Ml("subtitlesBottom",0):"";this.mn.style.top=this.gO==e.Tc?this.Ml("subtitlesTop",0):this.gO==e.$d?"50%":"";this.mn.style.transform= this.gO==e.$d?"translate(0, -50%)":"";this.fma()};h.prototype.$V=function(){var f={};f["background-color"]=this.$fa("subtitlesBackgroundColor","subtitlesBackgroundOpacity");f.border=[this.Ml("subtitlesBorderSize"),"solid",this.Bj("subtitlesBorderColor")].join(" ");f["box-shadow"]=this.Bj("subtitlesShadow",!1)?[this.Ml("subtitlesShadowHorizontalLength"),this.Ml("subtitlesShadowVerticalLength"),this.Ml("subtitlesShadowBlurRadius"),this.$fa("subtitlesShadowColor","subtitlesShadowOpacity","#000000",0)].join(" "): "";f.display="inline-block";f["font-family"]=c.qA(this.Bj("subtitlesFontFamily"));f["font-size"]=this.Ml("subtitlesFontSize");f.color=this.Bj("subtitlesFontColor");f["font-weight"]=this.iS("subtitlesFontWeight","bold bolder lighter 100 200 300 400 500 600 700 800 900 normal".split(" "),"normal");f["font-style"]=this.iS("subtitlesFontStyle",["italic","normal"],"normal");f["margin-bottom"]=this.Ml("subtitlesGap");f.opacity=this.Bj("subtitlesOpacity");f["padding-top"]=this.Ml("subtitlesPaddingTop"); f["padding-bottom"]=this.Ml("subtitlesPaddingBottom");f["padding-left"]=this.Ml("subtitlesPaddingLeft");f["padding-right"]=this.Ml("subtitlesPaddingRight");f.position="relative";f["text-align"]=this.iS("subtitlesHorizontalAlign",["left","right","center"],"center");f["text-decoration"]=this.Bj("subtitlesTextDecoration",["underline","overline","line-through","none"],"none");f["text-shadow"]=[this.Ml("subtitlesTextShadowHorizontalLength"),this.Ml("subtitlesTextShadowVerticalLength"),this.Ml("subtitlesTextShadowBlurRadius"), this.$fa("subtitlesTextShadowColor","subtitlesTextShadowOpacity","#000000",0)].join(" ");this.Qia=f;this.ZXa()};h.prototype.b9a=function(f){this.BV=f;this.fma()};h.prototype.fma=function(){for(var f=this.ha?this.BV:[],l=this.aj.length-1;l>=0;l--){var p=this.aj[l];if(f.indexOf(p.Xra)>=0)break;this.mn.removeChild(p.element)}for(var q=[],r=!1;l>=0;l--)p=this.aj[l],!p.W6&&f.indexOf(p.Xra)<0&&(p.W6=!0,p.element.style.visibility="hidden",r=!0),q.splice(0,0,p);r&&b.requestFrame(this.Swa,this);this.aj=q; var t=this.aj.filter(function(u){return!u.W6}).map(function(u){return u.Xra});f.filter(function(u){return t.indexOf(u)<0}).forEach(function(u){u=new m(u);this.Qva(u);this.gO==e.Gc&&this.aj.length>0?this.mn.insertBefore(u.element,this.aj[this.aj.length-1].element):this.mn.appendChild(u.element);this.aj.push(u)}.bind(this));this.qa.style.display=this.aj.length>0?"block":"none"};h.prototype.Swa=function(f){var l=!1;f=Math.round(200*f/1E3);for(var p=0;p=q.element.clientHeight)f-=q.element.clientHeight,this.mn.removeChild(q.element),this.aj.splice(p,1),p--;else{q.element.style.height=q.element.clientHeight-f+"px";break}}l&&b.requestFrame(this.Swa,this)};h.prototype.ZXa=function(){this.aj.forEach(this.Qva.bind(this))};h.prototype.Qva=function(f){for(var l in this.Qia)f.isa.style[l]=this.Qia[l]};h.prototype.Bj=function(f,l){return this.P.get(f,l)};h.prototype.Ml=function(f,l){f=this.P.get(f,l);isNaN(f)||(f=Math.round(f)+"px");return f};h.prototype.iS= function(f,l,p){f=this.P.get(f);return l.indexOf(f)<0?p:f};h.prototype.$fa=function(f,l,p,q){f=this.P.get(f,p);l=this.P.get(l,q);return"rgba("+parseInt("0x"+f.substr(1,2))+", "+parseInt("0x"+f.substr(3,2))+", "+parseInt("0x"+f.substr(5,2))+", "+l+")"};h.jua=["subtitlesHorizontalAlign","subtitlesVerticalAlign","subtitlesTop","subtitlesBottom"];h.kua="subtitlesBackgroundColor subtitlesBackgroundOpacity subtitlesBorderColor subtitlesBorderSize subtitlesFontFamily subtitlesFontColor subtitlesFontSize subtitlesFontStyle subtitlesFontWeight subtitlesGap subtitlesOpacity subtitlesPaddingTop subtitlesPaddingBottom subtitlesPaddingLeft subtitlesPaddingRight subtitlesShadow subtitlesShadowBlurRadius subtitlesShadowHorizontalLength subtitlesShadowVerticalLength subtitlesShadowColor subtitlesTextDecoration subtitlesTextShadowBlurRadius subtitlesTextShadowColor subtitlesTextShadowHorizontalLength subtitlesTextShadowOpacity subtitlesTextShadowVerticalLength".split(" "); var d=document.createElement("div");return h}); define("tdv/player/view/SubtitlesListener","require exports tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/PlaybackState tdv/player/parser/ClassInfo".split(" "),function(a,m,h,n,g,k){a=function(){function l(p){this.jQ=new Map;this.Dm=p}l.prototype.add=function(p){k.Oa("PanoramaPlayer",p)?this.jQ.set(p,new e(this.Dm,p)):k.Oa("VideoPlayer",p)?this.jQ.set(p,new b(this.Dm,p)):k.Oa("PhotoAlbumPlayer",p)?this.jQ.set(p,new c(this.Dm,p)):k.Oa("Audio",p)&&this.jQ.set(p,new f(this.Dm,p))}; l.prototype.remove=function(p){var q=this.jQ.get(p);q&&(q.clear(),this.jQ.delete(p))};return l}();m=function(){function l(p,q){this.Dm=p;this.source=q}l.prototype.clear=function(){};return l}();var e=function(l){function p(q,r){q=l.call(this,q,r)||this;q.ZI=new d(q.Dm);q.gg=null;q.source.bind(n.L("panorama"),q.dqa,q,!0);q.dqa();return q}P(p,l);p.prototype.clear=function(){this.source&&(this.source.h(n.L("panorama"),this.dqa,this),this.source=null,this.Vf(null),this.ZI.clear(),this.ZI=null)};p.prototype.dqa= function(){this.Vf(this.source.get("panorama"))};p.prototype.Vf=function(q){if(this.gg!=q){this.gg&&(this.gg.h(n.L("audios"),this.OJ,this),this.Dm.Iqa(this.gg));if(this.gg=q)this.Dm.Qma(this.gg),this.gg.bind(n.L("audios"),this.OJ,this,!0);this.OJ()}};p.prototype.OJ=function(){this.ZI.$qa(this.gg&&this.gg.get("audios")||[])};return p}(m),b=function(l){function p(q,r){q=l.call(this,q,r)||this;q.video=null;q.source.bind(n.L("video"),q.TJ,q,!0);q.source.bind(n.Pd,q.TJ,q,!0);q.TJ();return q}P(p,l);p.prototype.clear= function(){this.source&&(this.source.h(n.L("video"),this.TJ,this),this.source.h(n.Pd,this.TJ,this),this.source=null,this.K$(null))};p.prototype.TJ=function(){var q;this.K$(((q=this.source)===null||q===void 0?void 0:q.get("state"))!=g.ca?this.source.get("video"):null)};p.prototype.K$=function(q){this.video!=q&&(this.video&&this.Dm.Iqa(this.video),(this.video=q)&&this.Dm.Qma(this.video))};return p}(m),c=function(l){function p(q,r){q=l.call(this,q,r)||this;q.QJ=q.QJ.bind(q);q.ZI=new d(q.Dm);q.tc=null; h.ba(q.source,"photoAlbum.playList.items",q.QJ,!1);h.ba(q.source,"photoAlbum.playList.selectedIndex",q.QJ,!1);q.QJ();return q}P(p,l);p.prototype.clear=function(){this.source&&(h.da(this.source,"photoAlbum.playList.items",this.QJ),h.da(this.source,"photoAlbum.playList.selectedIndex",this.QJ),this.source=null,this.vRa(null),this.ZI.clear(),this.ZI=null)};p.prototype.QJ=function(){var q=this.source.get("photoAlbum");q=(q=q?q.get("playList"):null)&&q.get("selectedIndex")>=0?q.get("items")[q.get("selectedIndex")]: null;this.vRa(q?q.get("media"):null)};p.prototype.vRa=function(q){this.tc!=q&&(this.tc&&this.tc.h(n.L("audios"),this.OJ,this),(this.tc=q)&&this.tc.bind(n.L("audios"),this.OJ,this,!0),this.OJ())};p.prototype.OJ=function(){this.ZI.$qa(this.tc&&this.tc.get("audios")||[])};return p}(m),d=function(){function l(p){this.F6=[];this.E6=new Map;this.Dm=p}l.prototype.clear=function(){this.$qa([])};l.prototype.$qa=function(p){this.F6!=p&&(this.F6.forEach(function(q){p.indexOf(q)>=0||(this.E6.get(q).clear(),this.E6.delete(q))}.bind(this)), this.F6=p,this.F6.forEach(function(q){this.E6.has(q)||this.E6.set(q,new f(this.Dm,q))}.bind(this)))};return l}(),f=function(l){function p(q,r){q=l.call(this,q,r)||this;q.HE=!1;q.source.bind(n.L("state"),q.Upa,q,!0);q.Upa();return q}P(p,l);p.prototype.clear=function(){this.source&&(this.NQa(!1),this.source.h(n.L("state"),this.Upa,this),this.source=null)};p.prototype.Upa=function(){this.NQa(this.source.get("state")!=g.ca)};p.prototype.NQa=function(q){this.HE!=q&&(this.HE&&this.Dm.Iqa(this.source),(this.HE= q)&&this.Dm.Qma(this.source))};return p}(m);return a}); define("tdv/player/script/ViewerArea","require three.mod tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/PlaybackState tdv/events/Event tdv/player/parser/ClassInfo tdv/player/script/helper/ButtonProperty tdv/player/view/PlaybackBar tdv/player/view/ProgressBar tdv/player/view/common/RenderersContainer tdv/player/view/ScreenJoystick tdv/player/view/Subtitles tdv/player/view/SubtitlesListener tdv/player/view/util/Device tdv/player/view/util/XR tdv/view/constants/ButtonMode tdv/view/constants/Cursor tdv/view/constants/CreationPolicy tdv/view/constants/State tdv/view/containers/Container tdv/view/core/UIComponent".split(" "),function(a){function m(){function G(){v.XA== R&&v.Nw==Q?O.Jn().render(R,Q):v.M.h(k.Zd,G,this)}v.e$=new b(k.Xob);var N=H=new v.Uua,O=E=new p,R=new h.Scene,Q=new h.PerspectiveCamera;v.ura(O.Jn(),R,Q,v.SQ.bca);v.vt(O.Jn(),v.El.Yp,N);v.M.bind(k.Zd,G,this,!0);v.e$=null}var h=a("three.mod"),n=a("tdv/utils"),g=a("tdv/binding/BindingsHandler"),k=a("tdv/constants/EventName"),e=a("tdv/constants/PlaybackState"),b=a("tdv/events/Event"),c=a("tdv/player/parser/ClassInfo"),d=a("tdv/player/script/helper/ButtonProperty"),f=a("tdv/player/view/PlaybackBar"),l= a("tdv/player/view/ProgressBar"),p=a("tdv/player/view/common/RenderersContainer"),q=a("tdv/player/view/ScreenJoystick"),r=a("tdv/player/view/Subtitles"),t=a("tdv/player/view/SubtitlesListener"),u=a("tdv/player/view/util/Device"),v=a("tdv/player/view/util/XR"),w=a("tdv/view/constants/ButtonMode"),y=a("tdv/view/constants/Cursor"),x=a("tdv/view/constants/CreationPolicy"),z=a("tdv/view/constants/State"),A=a("tdv/view/containers/Container"),D=a("tdv/view/core/UIComponent"),F=180/Math.PI,C=new h.Euler, B=c.define("ViewerArea",A,function(){A.call(this);this.set("childrenInteractionEnabled",!0);this.set("contentOpaque",!0);this.set("creationPolicy",x.aL);this.set("subtitlesEnabled",!0);this.set("checkToolTipOcclusion",!0);this.set("isKeyboardTarget",!1);this.Ov=this.US=this.qs=this.ej=this.qD=this.av=this.ve=this.Y0=this.dj=null;this.BV=new r(this);this.A5=new t(this.BV);this.dja=this.wv=!1;this.Jj=e.ca;this.yo=this.Fl=null;this.So=!1;this.RU=[];this.tL=[];this.sL=new Set;this.bind(B.mua,this.v5a, this,!0);this.bind(B.lua,this.u5a,this,!0);this.bind(k.Sa,this.sCa,this);this.bind(k.Sa,this.sCa,this);this.bind(k.uc,this.S5a,this);this.bind(k.Eb,this.R5a,this);this.bind(k.od,this.L3,this,!0);this.bind(k.jd,this.P5a,this,!0);this.EL=new d(this,"buttonPause",w.ak);this.EL.bind(k.ma,this.TH,this);this.EL.set("state",z.De);this.FL=new d(this,"buttonPlay",w.ak);this.FL.bind(k.ma,this.UH,this);this.FL.set("state",z.De);this.vG=new d(this,"buttonPlayPause",w.ak);this.vG.bind(k.ma,this.r5a,this);this.vG.set("state", z.De);this.HL=new d(this,"buttonStop",w.ak);this.HL.bind(k.ma,this.cD,this);this.HL.set("state",z.Fb);this.QYa=new d(this,"buttonRestart",w.af);this.QYa.bind(k.ma,this.bD,this);this.a0=new d(this,"buttonToggleSubtitles",w.ak);this.a0.bind(k.Rk,function(){this.set("subtitlesEnabled",!0)},this,!0);this.a0.bind(k.Km,function(){this.set("subtitlesEnabled",!1)},this,!0);this.bind(k.L("subtitlesEnabled"),function(){this.a0.set("pressed",this.get("subtitlesEnabled"))},this);this.a0.set("pressed",this.get("subtitlesEnabled")); (new d(this,"buttonVRView",w.af)).bind(k.ma,function(){this.set("viewMode","vr")},this,!0);(new d(this,"buttonARView",w.af)).bind(k.ma,function(){this.set("viewMode","ar")},this,!0);this.x3a=n.lr(this.fbb,this);this.bind(k.fi,this.O5a,this,!0);this.bind(B.x_,this.Q5a,this,!0);v.M.bind(k.V,function(){this.set("viewMode",this.Aya())},this,!0)});B.prototype.play=function(){this.UH()};B.prototype.pause=function(){this.TH()};B.prototype.stop=function(){this.cD()};B.prototype.restart=function(){this.bD()}; B.ad=Object.assign({},A.ad,{progressBackgroundColor:void 0,progressBackgroundColorDirection:void 0,progressBackgroundColorRatios:void 0,progressBackgroundOpacity:void 0,progressBackgroundBlur:0,progressBarBackgroundColor:void 0,progressBarBackgroundColorDirection:void 0,progressBarBackgroundColorRatios:void 0,progressBarBorderColor:void 0,progressBarBorderRadius:void 0,progressBarBorderSize:void 0,progressBarOpacity:void 0,progressBorderColor:void 0,progressBorderRadius:void 0,progressBorderSize:void 0, progressBottom:0,progressHeight:20,progressLeft:0,progressOpacity:void 0,progressPercent:0,progressRight:0,progressVisible:!1,externalPlaybackBar:void 0,externalProgressBar:void 0,playbackBarBackgroundColor:void 0,playbackBarBackgroundColorDirection:void 0,playbackBarBackgroundOpacity:void 0,playbackBarBackgroundBlur:0,playbackBarBorderColor:void 0,playbackBarBorderRadius:void 0,playbackBarBorderSize:void 0,playbackBarBottom:10,playbackBarHeight:void 0,playbackBarWidth:void 0,playbackBarLeft:void 0, playbackBarOpacity:void 0,playbackBarRight:void 0,playbackBarLiveDragging:void 0,playbackBarDuration:100,playbackBarPosition:0,playbackBarRollOverDisplay:!1,plabackBarSteps:void 0,plabackBarSelectedStep:void 0,playbackBarVisible:!1,playbackBarProgressBackgroundColor:void 0,playbackBarProgressBackgroundColorDirection:void 0,playbackBarProgressBackgroundColorRatios:void 0,playbackBarProgressBorderColor:void 0,playbackBarProgressBorderRadius:void 0,playbackBarProgressBorderSize:void 0,playbackBarProgressOpacity:void 0, playbackBarHeadBackgroundColor:void 0,playbackBarHeadBackgroundColorDirection:void 0,playbackBarHeadBackgroundColorRatios:void 0,playbackBarHeadBorderColor:void 0,playbackBarHeadBorderRadius:void 0,playbackBarHeadBorderSize:void 0,playbackBarHeadOpacity:void 0,playbackBarHeadWidth:void 0,playbackBarHeadHeight:void 0,playbackBarHeadShadow:void 0,playbackBarHeadShadowBlurRadius:void 0,playbackBarHeadShadowColor:void 0,playbackBarHeadShadowHorizontalLength:void 0,playbackBarHeadShadowOpacity:void 0, playbackBarHeadShadowSpread:void 0,playbackBarHeadShadowVerticalLength:void 0,playbackBarStepBackgroundColor:void 0,playbackBarStepBackgroundColorDirection:void 0,playbackBarStepBackgroundColorRatios:void 0,playbackBarStepBorderColor:void 0,playbackBarStepBorderRadius:void 0,playbackBarStepBorderSize:void 0,playbackBarStepOpacity:void 0,playbackBarStepWidth:void 0,playbackBarStepHeight:void 0,playbackBarStepShadow:void 0,playbackBarStepShadowBlurRadius:void 0,playbackBarStepShadowColor:void 0,playbackBarStepShadowHorizontalLength:void 0, playbackBarStepShadowOpacity:void 0,playbackBarStepShadowSpread:void 0,playbackBarStepShadowVerticalLength:void 0,playbackBarStepSelectedBackgroundColor:void 0,playbackBarStepSelectedBackgroundColorDirection:void 0,playbackBarStepSelectedBackgroundColorRatios:void 0,playbackBarStepSelectedBorderColor:void 0,playbackBarStepSelectedBorderRadius:void 0,playbackBarStepSelectedBorderSize:void 0,playbackBarStepSelectedOpacity:void 0,playbackBarStepSelectedWidth:void 0,playbackBarStepSelectedHeight:void 0, playbackBarStepSelectedShadow:void 0,playbackBarStepSelectedShadowBlurRadius:void 0,playbackBarStepSelectedShadowColor:void 0,playbackBarStepSelectedShadowHorizontalLength:void 0,playbackBarStepSelectedShadowOpacity:void 0,playbackBarStepSelectedShadowSpread:void 0,playbackBarStepSelectedShadowVerticalLength:void 0,subtitlesBackgroundColor:"#000000",subtitlesBackgroundOpacity:1,subtitlesBorderColor:void 0,subtitlesBorderSize:0,subtitlesBottom:"10%",subtitlesFontFamily:void 0,subtitlesFontColor:"#ffffff", subtitlesFontSize:"12px",subtitlesFontStyle:void 0,subtitlesFontWeight:void 0,subtitlesGap:10,subtitlesHorizontalAlign:"center",subtitlesOpacity:1,subtitlesPaddingTop:5,subtitlesPaddingBottom:5,subtitlesPaddingLeft:5,subtitlesPaddingRight:5,subtitlesShadow:!1,subtitlesShadowBlurRadius:void 0,subtitlesShadowHorizontalLength:0,subtitlesShadowVerticalLength:0,subtitlesShadowColor:"#000000",subtitlesShadowOpacity:0,subtitlesTextDecoration:void 0,subtitlesTextShadowBlurRadius:void 0,subtitlesTextShadowColor:"#000000", subtitlesTextShadowHorizontalLength:0,subtitlesTextShadowOpacity:0,subtitlesTextShadowVerticalLength:0,subtitlesTop:void 0,subtitlesVerticalAlign:"bottom",transitionDuration:500,blendingTransitionDuration:void 0,disolveTransitionDuration:void 0,translationTransitionDuration:void 0,translationTransitionEnabled:!0,toolTipEnabled:!0});B.prototype.get=function(G,N){switch(G){case "viewMode":if(v.isPresenting&&this.Rc().uMa()&&v.Ag==this.Rc().Jn()){if(v.Cm==v.El.Yp)return"vr";if(v.Cm==v.El.Np)return"ar"}return"standard"; case "xrYaw":return v.isPresenting?-C.setFromQuaternion(v.xl,"YXZ").y*F:0;case "xrPitch":return v.isPresenting?C.setFromQuaternion(v.xl,"YXZ").x*F:0;case "xrRoll":return v.isPresenting?-C.setFromQuaternion(v.xl,"YXZ").z*F:0}return A.prototype.get.call(this,G,N)};B.prototype.set=function(G,N){G=="playbackState"&&(N=this.Jj,this.get(G)!=N&&(this.dja=!0,this.x3a()));switch(G){case "toolTipEnabled":this.set("toolTipDisabled",N===!1);break;case "cardboardPointerDistance":this.set("vrPointerDistance",N); break;case "cardboardPointerColor":this.set("vrPointerColor",N);break;case "cardboardPointerSelectionColor":this.set("vrPointerSelectionColor",N);break;case "cardboardPointerSelectionTime":this.set("vrPointerSelectionTime",N);break;case "playbackBarVisible":case "playbackBarRollOverDisplay":this.aW();break;case "viewMode":var O=A.prototype.get.call(this,G);this.Rc().Cgb()&&(N!="vr"||v.isPresenting?N!="ar"||v.isPresenting?N!="vr"&&N!="ar"&&v.isPresenting&&v.qm():v.vt(this.Rc().Jn(),v.El.Np,this.Y7()): v.vt(this.Rc().Jn(),v.El.Yp,this.Y7()));N=this.Aya();O!=N&&this.o(B.Jba)}A.prototype.set.call(this,G,N)};B.prototype.Aya=function(){if(v.isPresenting&&this.Rc().uMa()&&v.Ag==this.Rc().Jn()){if(v.Cm==v.El.Yp)return"vr";if(v.Cm==v.El.Np)return"ar"}return"standard"};B.prototype.Pb=function(){this.Il(B.ad)};B.prototype.Kb=function(){A.prototype.Kb.call(this);this.qD==null&&(this.qD=new D,this.qD.set("width","100%"),this.qD.set("height","100%"),this.qD.set("interactionEnabled",!1),this.qD.set("toolTipDisabled", !0),this.mb(this.qD),this.qD.wa().tk(this.Rc().cc()));this.qs==null&&(this.qs=new D,this.qs.set("width","100%"),this.qs.set("height","100%"),this.qs.set("toolTipDisabled",!0),this.qs.set("interactionEnabled",!1),this.mb(this.qs),n.defer(function(){this.qs.set("cursor",y.LB)}.bind(this)),this.US=new q(this,this.qs),this.US.Ra(!1));this.Ov==null&&(this.Ov=new D,this.Ov.set("width","100%"),this.Ov.set("height","100%"),this.Ov.set("toolTipDisabled",!0),this.Ov.set("interactionEnabled",!1),this.mb(this.Ov), this.Ov.wa().tk(this.BV.cc()));this.dj==null&&(this.dj=new l,this.mb(this.dj));this.ve==null&&(this.ve=new f,this.ve.bind(k.V,this.aja,this,!0),this.mb(this.ve),this.aW())};B.prototype.Y7=function(){if(this.OHa)return this.OHa;if(H){var G=H;H=null}else G=new v.Uua;g.ba(this,"vrGazePointerHideTime vrFoveation vrPointerColor vrPointerDistance vrPointerOverColor vrPointerSelectionColor vrPointerSelectionTime".split(" "),function(){G.TKa=this.get("vrGazePointerHideTime");G.PKa=this.get("vrFoveation"); G.N9=this.get("vrPointerColor");G.CPa=this.get("vrPointerDistance");G.qqa=this.get("vrPointerOverColor");G.P9=this.get("vrPointerSelectionColor");G.GPa=this.get("vrPointerSelectionTime")}.bind(this),!0);return this.OHa=G};B.prototype.rfb=function(){return this.ve};B.prototype.Rc=function(){this.ej||(E?(this.ej=E,E=null):this.ej=new p(this.get("aaEnabled")));return this.ej};B.prototype.Kk=function(){A.prototype.Kk.call(this);for(var G=[],N=this.RU.length-1;N>=0;N--)G.push(this.RU[N].j);this.Ov&&G.push(this.Ov); this.qs&&G.push(this.qs);this.ve&&G.push(this.ve);this.dj&&G.push(this.dj);var O=this.Cb();G=G.filter(function(R){return O.indexOf(R)>=0});O=O.filter(function(R){return G.indexOf(R)==-1}).concat(G);O.forEach(function(R,Q){R&&this.ioa(R)!=Q&&this.pr(R,Q)}.bind(this))};B.prototype.jb=function(){this.S("externalProgressBar")&&((this.Y0=this.G("externalProgressBar"))?this.removeChild(this.dj):this.mb(this.dj),this.$("externalProgressBar"),B.qva.forEach(N=>{this.yD(N)}));this.Oc(B.FWa,B.iva,[this.dj], !0,!0);var G=[this.dj];this.Y0&&G.push(this.Y0);this.Oc(B.qva,B.rva,G,!0,!0);this.S("externalPlaybackBar")&&(this.av&&this.av.h(k.V,this.aja,this,!0),(this.av=this.G("externalPlaybackBar"))?this.removeChild(this.ve):this.mb(this.ve),this.aW(),this.av&&this.av.bind(k.V,this.aja,this,!0),this.$("externalPlaybackBar"),B.nva.forEach(N=>{this.yD(N)}));this.Oc(B.EWa,B.hva,[this.ve],!0,!0);G=[this.ve];this.av&&G.push(this.av);this.Oc(B.nva,B.ova,G,!0,!0);A.prototype.jb.call(this)};B.prototype.fbb=function(){this.dja&& (this.dja=!1,this.EL.set("state",this.Jj==e.Zb?z.Fb:z.De),this.FL.set("state",this.Jj==e.PLAYING||this.Jj==e.Zb?z.Fb:z.De),this.vG.set("state",this.Jj==e.PLAYING?z.Fb:z.De),this.HL.set("state",this.Jj==e.ca?z.Fb:z.De))};B.prototype.Jd=function(G){this.Jj=G;this.set("playbackState",G)};B.prototype.L3=function(){B.cp(this)};B.prototype.P5a=function(){B.ap(this)};B.prototype.TH=function(){this.Jj==e.Zb?this.rn():this.tv()};B.prototype.UH=function(){this.rn()};B.prototype.r5a=function(){this.Jj==e.PLAYING? this.tv():this.rn()};B.prototype.cD=function(){this.Xs()};B.prototype.bD=function(){this.Xs();this.rn()};B.prototype.O5a=function(){if(!this.Fl||!this.Fl.jna())switch(this.get("doubleClickAction")){case "toggle_fullscreen":var G=this.Vb().kk;G&&G.ol()&&G.toggle()}};B.prototype.Q5a=function(G){this.RU.forEach(function(N){this.A5.remove(N)}.bind(this));this.RU=G.data.players;this.RU.forEach(function(N){this.A5.add(N)}.bind(this));this.Af()};B.prototype.rn=function(){this.yo&&this.yo.play()};B.prototype.tv= function(){this.yo&&this.yo.pause()};B.prototype.Xs=function(){this.yo&&this.yo.stop()};B.prototype.v5a=function(G){this.CEa(G.data.player)};B.prototype.u5a=function(G){this.Fl==G.data.player&&this.CEa(null)};B.prototype.sCa=function(){B.rr(this)};B.prototype.S5a=function(){this.So=!0;this.aW()};B.prototype.R5a=function(){this.So=!1;this.aW()};B.prototype.aW=function(){this.ve&&this.ve.set("visible",this.get("playbackBarVisible")&&(this.So||!this.get("playbackBarRollOverDisplay")||u.Jp()))};B.prototype.CEa= function(G){this.Fl!=G&&(this.set("playbackBarVisible",!1),this.Fl&&this.Fl.rr(!1),this.yo&&this.yo.h(k.L("state"),this.Lca,this),this.y6a=this.Fl,(this.Fl=G)&&this.Fl.rr(!!this.Ro),(this.yo=this.Fl&&this.Fl.WYa?this.Fl:null)&&this.yo.bind(k.L("state"),this.Lca,this,!0),this.Lca())};B.prototype.rr=function(G){this.Ro=G;this.set("isKeyboardTarget",G);this.Fl&&this.Fl.rr(!!this.Ro)};B.prototype.oob=function(){return!this.y6a};B.prototype.Lca=function(){this.yo?this.Jd(this.yo.get("state")):this.Jd(e.ca)}; B.prototype.aja=function(){var G=(this.av?this.av:this.ve).get("position");this.o(new b(B.Bba,{position:G}))};B.prototype.MX=function(G){return this.sL.size==1&&this.sL.has(G)};B.prototype.Mma=function(G){this.sL.add(G)};B.prototype.release=function(G){this.sL["delete"](G);this.QGa()};B.prototype.Qsa=function(G,N){this.tL.push({Cqa:G,Fn:N});this.QGa()};B.prototype.QGa=function(){if(this.sL.size==1&&this.tL.length>0)for(var G=this.sL.values().next().value,N=0;N-1&&B.RI.splice(N,1);B.RI.push(G);this.rr(this.gza())};B.ap=function(G){var N=B.RI.indexOf(G);N>-1&&B.RI.splice(N,1);B.zH==G&&B.rr(B.RI.length?this.gza():null)};B.gza=function(){var G=B.RI.slice();G.sort(function(N,O){var R=N.get("actualWidth")*N.get("actualHeight"), Q=O.get("actualWidth")*O.get("actualHeight");N=G.indexOf(N)-G.indexOf(O);return R-Q||N});return G[G.length-1]};var H=null,E=null;navigator.xr&&navigator.xr.addEventListener("sessiongranted",function(){m()});return B}); define("tdv/player/script/MediaPlayer",["require","tdv/utils","tdv/binding/Bindable","tdv/events/Event","tdv/player/script/ViewerArea"],function(a){var m=a("tdv/utils"),h=a("tdv/binding/Bindable"),n=a("tdv/events/Event"),g=a("tdv/player/script/ViewerArea"),k=m.extend(h,function(e){h.call(this);this.WYa=e;this.nV=this.UC=null});k.di="mediaShow";k.mo="mediaHide";k.prototype.rr=function(){};k.prototype.jna=function(){return!1};k.prototype.kV=function(e){this.UC!=e&&(this.UC&&this.Cla(this.UC),(this.UC= e)&&this.qda(this.UC))};k.prototype.qda=function(e){e.bind(g.x_,this.EHa,this,!0);e.bind(g.Bba,this.zU,this)};k.prototype.Cla=function(e){e.h(g.x_,this.EHa,this);e.h(g.Bba,this.zU,this)};k.prototype.eK=function(e){this.UC.o(new n(g.x_,{players:e||[this]}))};k.prototype.EHa=function(e){e.data.players.indexOf(this)<0&&this.RN()};k.prototype.zU=function(){};k.prototype.RN=function(){};k.prototype.jT=function(e){this.o(new n(k.di,{media:e}));this.nV=this.UC;this.nV.o(new n(g.mua,{player:this}))};k.prototype.iT= function(e){this.o(new n(k.mo,{media:e}));this.nV&&(this.nV.o(new n(g.lua,{player:this})),this.nV=null)};return k});define("tdv/player/view/map/constants/MovementMode",["require"],function(){return{rF:"constrained",QUa:"free_drag",Gob:"free_drag_and_rotation",jca:"sync_with_field_of_view"}}); define("tdv/player/view/map/control/camera/LimitsManager",["require","tdv/utils","tdv/player/view/map/constants/MovementMode","tdv/view/constants/ScaleMode"],function(a){function m(){this.Rd=!0;this.fc=this.ec=.5;this.Ed=0;this.kc=1;this.ti=n.uj;this.Zo=h.rF;this.Eha=this.Jha=1;this.tf=this.uf=this.zo=this.Ao=100;this.op=m.fG}a("tdv/utils");var h=a("tdv/player/view/map/constants/MovementMode"),n=a("tdv/view/constants/ScaleMode");m.prototype.pMa=function(){return this.op!==m.fG};m.prototype.oMa=function(){return this.op& m.pL?!0:!1};m.prototype.qMa=function(){return this.op&m.qL?!0:!1};m.prototype.rMa=function(){return this.op&m.iG?!0:!1};m.prototype.nMa=function(){return this.op&m.eG?!0:!1};m.prototype.getX=function(){this.sp();return this.ec};m.prototype.getY=function(){this.sp();return this.fc};m.prototype.yA=function(){this.sp();return this.kc};m.prototype.eP=function(){this.sp();return this.Ed};m.prototype.setConfiguration=function(g,k,e,b,c){this.uf=g;this.tf=k;this.ti=e;this.Jha=b;this.Eha=c;this.fc=this.ec= .5;this.Ed=0;this.kc=b;this.Rd=!0};m.prototype.setPosition=function(g,k,e,b){this.ec=g;this.fc=k;this.Ed=e;this.kc=b;this.Rd=!0};m.prototype.du=function(g){this.Zo=g;this.Rd=!0};m.prototype.setSize=function(g,k){this.Ao=g;this.zo=k;this.Rd=!0};m.prototype.sp=function(){if(this.Rd){this.Rd=!1;var g=m.fG;this.kc>this.Eha?(this.kc=this.Eha,g|=m.IWa):this.kcthis.tf*this.Ao?(k=this.uf*this.zo/this.tf,e=this.zo):(k=this.Ao,e=this.tf*this.Ao/this.uf);break;default:case n.uj:this.uf*this.zo>this.tf*this.Ao?(k=this.Ao,e=this.tf*this.Ao/this.uf):(k=this.uf*this.zo/this.tf,e=this.zo)}k*=this.kc;e*=this.kc;var b=Math.min(.5*this.Ao/k,.5);k=Math.max(1-.5*this.Ao/k,.5);var c=Math.min(.5*this.zo/e,.5);e=Math.max(1-.5*this.zo/e,.5)}else b=0,k=1,c=0,e=1;this.eck&&(this.ec=k,g|=m.qL);this.fce&&(this.fc=e,g|=m.eG);this.Zo!=h.rF&&this.Zo!=h.QUa||this.Ed==0||(this.Ed=0,g|=m.OWa);this.op=g}};m.fG=0;m.pL=1;m.qL=2;m.iG=4;m.eG=8;m.JWa=16;m.IWa=32;m.OWa=64;return m}); define("tdv/player/view/map/control/camera/MovementManager",["require"],function(){function a(){this.UR=.1;this.G0=this.iea=this.lea=this.kea=this.sea=this.hea=this.qea=this.pea=this.sW=this.Lma=this.kG=this.Xca=this.qW=this.Ima=this.pW=this.Gma=0}a.prototype.l$=function(m){this.UR=m};a.prototype.rRa=function(m,h,n,g,k,e,b,c){this.Gma=m;this.Ima=h;this.Xca=n;this.Lma=g;this.pW+=k;this.qW+=e;this.kG+=b;this.sW+=c};a.prototype.Uf=function(){return this.pea!=0||this.qea!=0||this.hea!=0||this.sea!=0|| this.Gma!=0||this.Ima!=0||this.Xca!=0||this.Lma!=0||this.pW!=0||this.qW!=0||this.kG!=0||this.sW!=0};a.prototype.Nb=function(m){m=1E3/m;this.kea=this.T0(this.pea/m,this.Gma/m+this.pW,this.UR);this.lea=this.T0(this.qea/m,this.Ima/m+this.qW,this.UR);this.iea=this.T0(this.hea/m,this.Xca/m+this.kG,this.UR);this.G0=this.T0(this.sea/m,this.Lma/m+this.sW,this.UR);this.pea=this.kea*m;this.qea=this.lea*m;this.hea=this.iea*m;this.sea=this.G0*m;this.sW=this.kG=this.qW=this.pW=0};a.prototype.T0=function(m,h,n){return h== 0?this.bh(m,h,n):h};a.prototype.bh=function(m,h,n){m=(h-m)*(1-n);Math.abs(m)<.01&&(m=0);return h-m};return a}); define("tdv/player/view/map/control/camera/MouseManager","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/view/constants/ScaleMode".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher");a("tdv/view/constants/ScaleMode");var k=m.extend(g,function(){g.call(this);this.SR=7;this.V2=this.Vga=!1;this.X2=void 0;this.Ed=0;this.kc=1;this.tf=this.uf=100;this.g2=1;this.jja=!0;this.kja=!1; this.Bbb=!0;this.Kma=!1;this.Ab=null});k.prototype.TY=function(e){this.SR=e};k.prototype.Zc=function(e,b,c,d){this.Ed=e;this.kc=b;this.uf=c;this.tf=d};k.prototype.olb=function(e){this.jja=e;this.a5(this.jja&&!!this.Ab)};k.prototype.au=function(e){this.Ab!=e&&(this.a5(!1),this.Bka(!1),this.Hn(),this.Ab=e,this.a5(this.jja&&!!this.Ab),this.Bka(this.Bbb&&!!this.Ab))};k.prototype.Hn=function(){this.a5(!1);this.Bka(!1);this.Ab=null};k.prototype.a5=function(e){this.kja!=e&&((this.kja=e)?this.xYa():this.U$a())}; k.prototype.Bka=function(e){this.Kma!=e&&((this.Kma=e)?this.AYa():this.W$a())};k.prototype.xYa=function(){this.Ab.bind(h.Sa,this.te,this,!0);this.Ab.bind(h.gb,this.bl,this,!0);this.Ab.bind(h.$a,this.cl,this,!0)};k.prototype.U$a=function(){this.Ab.h(h.Sa,this.te,this);this.Ab.h(h.gb,this.bl,this);this.Ab.h(h.$a,this.cl,this)};k.prototype.AYa=function(){this.Ab.bind(h.Qk,this.GH,this,!0);this.Ab.bind(h.XK,this.ZG,this,!0)};k.prototype.W$a=function(){this.Ab.h(h.Qk,this.GH,this);this.Ab.h(h.XK,this.ZG, this)};k.prototype.te=function(e){this.I9a(e)};k.prototype.bl=function(e){this.$Ga(e)};k.prototype.cl=function(){this.bfa()};k.prototype.GH=function(e){this.mma(e)};k.prototype.ZG=function(e){this.nma(e)};k.prototype.I9a=function(e){this.Vga=!0;this.V2=!1;this.X2=e;this.$Ga(e)};k.prototype.$Ga=function(e){if(this.Vga){var b=e.pageX-this.X2.pageX,c=e.pageY-this.X2.pageY;this.V2||(Math.sqrt(b*b+c*c)>this.SR?this.V2=!0:b=c=0);this.V2&&(this.X2=e);e=this.Ed*Math.PI/180;this.o(new n(k.Fr,{xDelta:-((b* Math.cos(e)+c*Math.sin(e))/this.uf),yDelta:-((c*Math.cos(e)-b*Math.sin(e))/this.tf)}))}};k.prototype.bfa=function(){this.Vga=!1};k.prototype.nma=function(e){if(this.g2!=e.scale){this.bfa();var b=this.g2;this.g2=e.scale;this.o(new n(k.Hr,{zoomDelta:this.kc*this.g2/b-this.kc}))}};k.prototype.mma=function(e){e.delta!=0&&(this.bfa(),this.o(new n(k.Hr,{zoomDelta:this.kc*e.lA*.1})))};k.Fr="position change";k.Hr="zoom change";k.Tob="vieport navigation";k.Sob="relative navigation";k.Rob="relative exponential navigation"; k.Qob="dragging";return k});define("tdv/player/view/map/control/constants/Movement",["require"],function(){return{dca:"rotateClockwise",eca:"rotateCounterClockwise",Nx:"zoomIn",Ox:"zoomOut",Fg:"stop"}}); define("tdv/player/view/map/control/camera/ManualCameraController","require tdv/utils tdv/events/Event tdv/events/EventDispatcher tdv/view/constants/ScaleMode tdv/player/view/util/Device tdv/player/view/map/control/camera/MovementManager tdv/player/view/map/control/camera/MouseManager tdv/player/view/map/control/constants/Movement tdv/constants/EventName".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/events/Event"),n=a("tdv/events/EventDispatcher"),g=a("tdv/view/constants/ScaleMode"),k=a("tdv/player/view/util/Device"), e=a("tdv/player/view/map/control/camera/MovementManager"),b=a("tdv/player/view/map/control/camera/MouseManager"),c=a("tdv/player/view/map/control/constants/Movement");a("tdv/constants/EventName");var d=m.extend(n,function(f,l){n.call(this);this.j=f;this.va=l;this.hv=this.t4=this.ha=!1;this.fc=this.ec=.5;this.Ed=0;this.kc=1;this.tf=this.uf=100;this.ti=g.rF;this.Bc=new e;this.Hb=new b;k.Jp()?(this.Hb.TY(d.Hca),this.Bc.l$(d.Ica)):(this.Hb.TY(0),this.Bc.l$(1));this.Hb.bind(b.Fr,this.h5a,this,!0);this.Hb.bind(b.Hr, this.ZC,this,!0)});d.prototype.clear=function(){this.Hb.h(b.Fr,this.kqb,this,!0);this.Hb.h(b.Hr,this.ZC,this,!0);this.Hb.Hn();this.j=this.va=this.Bc=this.Hb=null};d.prototype.wl=function(f){switch(f){case c.dca:this.md(0,0,+d.xca,0,0,0,0,0);break;case c.eca:this.md(0,0,-d.xca,0,0,0,0,0);break;case c.Nx:this.md(0,0,0,+d.$Q,0,0,0,0);break;case c.Ox:this.md(0,0,0,-d.$Q,0,0,0,0);break;case c.Fg:this.md(0,0,0,0,0,0,0,0)}};d.prototype.setPosition=function(f,l,p,q,r,t){this.ec=f;this.fc=l;this.Ed=p;this.kc= q;this.uf=r;this.tf=t;this.Hb.Zc(this.Ed,this.kc,this.uf,this.tf)};d.prototype.Uf=function(){return this.ha&&this.Bc.Uf()};d.prototype.Nb=function(f){this.Bc.Nb(f);this.va.setPosition(this.ec+this.Bc.kea,this.fc+this.Bc.lea,this.Ed+this.Bc.iea,this.kc+this.Bc.G0);this.ec=this.va.getX();this.fc=this.va.getY();this.Ed=this.va.eP();this.kc=this.va.yA()};d.prototype.YY=function(f){this.hv=f;this.Hb.olb(!this.hv)};d.prototype.Ra=function(f){(this.ha=f)?this.Hb.au(this.j.getParent()):this.Hb.Hn()};d.prototype.h5a= function(f){this.md(0,0,0,0,f.data.xDelta,f.data.yDelta,0,0)};d.prototype.ZC=function(f){this.md(0,0,0,0,0,0,0,f.data.zoomDelta)};d.prototype.md=function(f,l,p,q,r,t,u,v){this.Bc.rRa(f,l,p,q,r,t,u,v);this.hj()};d.prototype.hj=function(){this.o(new h(d.Ki))};d.Ki="position change request";d.Hca=7;d.Ica=.2;d.$Q=.5;d.xca=30;return d}); define("tdv/player/view/map/control/camera/SyncFovCameraController","require tdv/utils tdv/events/Event tdv/events/EventDispatcher tdv/view/util/Ease tdv/view/util/EaseDimension tdv/player/view/util/Device tdv/player/view/map/control/camera/MovementManager tdv/player/view/map/control/camera/MouseManager tdv/player/view/map/control/constants/Movement tdv/constants/EventName".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/events/Event"),n=a("tdv/events/EventDispatcher"),g=a("tdv/view/util/Ease"), k=a("tdv/view/util/EaseDimension"),e=a("tdv/player/view/util/Device"),b=a("tdv/player/view/map/control/camera/MovementManager"),c=a("tdv/player/view/map/control/camera/MouseManager"),d=a("tdv/player/view/map/control/constants/Movement");a("tdv/constants/EventName");var f=m.extend(n,function(l,p){n.call(this);this.j=l;this.va=p;this.ha=!1;this.fc=this.ec=.5;this.Ed=0;this.kc=1;this.tf=this.uf=100;this.la=null;this.Wea=!0;this.rd=null;this.R3=0;this.Qv=this.im=this.Nz=void 0;this.Bc=new b;this.Hb=new c; e.Jp()?(this.Hb.TY(f.Hca),this.Bc.l$(f.Ica)):(this.Hb.TY(0),this.Bc.l$(1));this.Hb.bind(c.Hr,this.ZC,this,!0)});f.prototype.Xkb=function(l,p){this.uf=l;this.tf=p;this.cO()};f.prototype.hB=function(l){this.rd!=l&&(this.rd=l,this.R3=void 0,this.cO())};f.prototype.sr=function(l,p){this.rd==l&&(this.R3=p,this.cO())};f.prototype.cO=function(){if(this.rd&&this.R3!=void 0){var l=this.rd.get("x",0)/this.uf;var p=this.rd.get("y",0)/this.tf;var q=-(this.R3+this.rd.get("angle",0))}else q=p=l=void 0;this.Qv!= q&&(this.Qv=q,this.hj());if(this.Nz!=l||this.im!=p)this.Nz=l,this.im=p,this.w3a(),this.hj()};f.prototype.w3a=function(){this.Wea=!0;this.hj()};f.prototype.EI=function(){if(this.Wea||this.la&&this.la.Ve())if(this.Wea=!1,this.la=null,this.Nz!=void 0&&this.im!=void 0&&this.Qv!=void 0){for(var l=this.Qv-this.Ed;l>180;)l-=360;for(;l<-180;)l+=360;this.ec!=this.Nz||this.fc!=this.im?this.la=new g("quad_in_out",[new k("x",this.ec,this.Nz,1),new k("y",this.fc,this.im,1),new k("angleDif",l,l,360)],500):this.Qv!= this.Ed&&(this.la=new g("quad_in_out",[new k("x",this.ec,this.ec,1),new k("y",this.fc,this.fc,1),new k("angleDif",l,0,360)],500))}};f.prototype.clear=function(){this.Hb.h(c.Hr,this.ZC,this,!0);this.Hb.Hn();this.j=this.va=this.la=this.Bc=this.Hb=null};f.prototype.wl=function(l){switch(l){case d.Nx:this.md(+f.$Q,0);break;case d.Ox:this.md(-f.$Q,0);break;case d.Fg:this.md(0,0)}};f.prototype.setPosition=function(l,p,q,r,t,u){this.ec=l;this.fc=p;this.Ed=q;this.kc=r;this.Hb.Zc(this.Ed,this.kc,t,u)};f.prototype.Uf= function(){return this.ha&&(this.la||this.Bc.Uf()||this.Nz!=void 0&&this.ec!=this.Nz||this.im!=void 0&&this.fc!=this.im||this.Qv!=void 0&&this.Ed!=this.Qv)?!0:!1};f.prototype.Nb=function(l){this.EI();this.la?(this.la.Nb(l),this.ec=this.la.ob("x"),this.fc=this.la.ob("y"),this.Ed=this.Qv-this.la.ob("angleDif")):(this.Nz!=void 0&&(this.ec=this.Nz),this.im!=void 0&&(this.fc=this.im),this.Qv!=void 0&&(this.Ed=this.Qv));this.Bc.Nb(l);this.va.setPosition(this.ec,this.fc,this.Ed,this.kc+this.Bc.G0);this.ec= this.va.getX();this.fc=this.va.getY();this.Ed=this.va.eP();this.kc=this.va.yA()};f.prototype.Ra=function(l){(this.ha=l)?(this.Hb.au(this.j.getParent()),this.cO()):this.Hb.Hn()};f.prototype.ZC=function(l){this.md(0,l.data.zoomDelta)};f.prototype.md=function(l,p){this.Bc.rRa(0,0,0,l,0,0,0,p);this.hj()};f.prototype.hj=function(){this.o(new h(f.Ki))};f.Ki="position change request";f.Hca=7;f.Ica=.2;f.$Q=.5;f.xca=30;return f}); define("tdv/player/view/map/control/CameraController","require tdv/utils tdv/events/Event tdv/events/EventDispatcher tdv/player/view/map/constants/MovementMode tdv/view/constants/ScaleMode tdv/player/view/map/control/camera/LimitsManager tdv/player/view/map/control/camera/ManualCameraController tdv/player/view/map/control/camera/SyncFovCameraController tdv/constants/EventName".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/events/Event"),n=a("tdv/events/EventDispatcher"),g=a("tdv/player/view/map/constants/MovementMode"), k=a("tdv/view/constants/ScaleMode"),e=a("tdv/player/view/map/control/camera/LimitsManager"),b=a("tdv/player/view/map/control/camera/ManualCameraController"),c=a("tdv/player/view/map/control/camera/SyncFovCameraController"),d=a("tdv/constants/EventName"),f=m.extend(n,function(l){n.call(this);this.j=l;this.j.bind(d.$b,this.kd,this);this.Zo=g.rF;this.rd=null;this.fc=this.ec=.5;this.Ed=0;this.kc=1;this.ab=null;this.J4=this.I4=this.Yv=this.Xv=!1;this.pp=!0;this.ha=!1;this.va=new e;this.va.du(this.Zo); this.rc=new b(this.j,this.va);this.rc.bind(b.Ki,this.Cs,this,!0);this.Pj=new c(this.j,this.va);this.Pj.bind(c.Ki,this.Cs,this,!0);this.v4()});f.prototype.clear=function(){this.rc.h(b.Ki,this.Cs,this);this.rc.clear();this.rc=null;this.Pj.h(c.Ki,this.Cs,this);this.Pj.clear();this.ab=this.va=this.Pj=null;this.j.h(d.$b,this.kd,this);this.j=null};f.prototype.stop=function(){this.Ge=this.ab=null;this.ha=!1;this.rc.Ra(!1);this.Pj.Ra(!1);this.Ez(0,0,0)};f.prototype.start=function(l){var p=l.ab,q=p.get("width", 100),r=p.get("height",100),t=p.get("scaleMode",k.uj),u=p.get("minimumZoomFactor",1),v=p.get("maximumZoomFactor",1),w=p.get("initialZoomFactor",1);this.ab=p;this.ha=!0;this.Ge=l.getItem();this.Ez(0,0,0);this.Pj.Xkb(q,r);this.va.setConfiguration(q,r,t,u,v);this.va.setPosition(.5,.5,0,w);this.j.nra(this.Ge,this.va.getX(),this.va.getY(),this.va.eP(),this.va.yA());this.v4()};f.prototype.wl=function(l){this.rc.wl(l);this.Pj.wl(l)};f.prototype.du=function(l){this.Zo!=l&&(this.Zo=l,this.va.du(l),this.v4())}; f.prototype.hB=function(l){this.rd!=l&&(this.rd=l,this.Pj.hB(l),this.v4())};f.prototype.YY=function(l){this.rc&&this.rc.YY(l)};f.prototype.sr=function(l,p,q,r){this.Pj.sr(l,p,q,r)};f.prototype.YA=function(l){this.ha&&(this.Pj.Uf()?(this.Pj.Nb(l),this.un(this.Pj.ec,this.Pj.fc,this.Pj.Ed,this.Pj.kc),this.bb()):this.rc.Uf()?(this.rc.Nb(l),this.un(this.rc.ec,this.rc.fc,this.rc.Ed,this.rc.kc),this.bb()):this.Ez(0,0,0))};f.prototype.ze=function(){if(this.Ge){var l=this.j.M7(this.Ge),p=this.j.N7(this.Ge), q=this.j.L7(this.Ge),r=this.j.ufb(this.Ge),t=this.j.K7(this.Ge),u=this.j.J7(this.Ge),v=l-this.ec,w=p-this.fc,y=r-this.kc;this.ec=l;this.fc=p;this.Ed=q;this.kc=r;this.Ez(v,w,y);this.Pj.setPosition(l,p,q,r,t,u);this.rc.setPosition(l,p,q,r,t,u)}};f.prototype.v4=function(){this.Zo==g.jca&&this.rd!=null&&this.rd.get("map")==this.ab?(this.rc.Ra(!1),this.Pj.Ra(!0)):(this.rc.Ra(!0),this.Pj.Ra(!1))};f.prototype.Cs=function(){this.bb()};f.prototype.kd=function(){this.va.setSize(this.j.nb(),this.j.Mb());this.bb()}; f.prototype.bb=function(){this.o(new h(f.oc))};f.prototype.un=function(l,p,q,r){this.j.nra(this.Ge,l,p,q,r)};f.prototype.Ez=function(l,p,q){l=!1;this.Yv!=q<0&&(this.Yv=!this.Yv,l=!0);this.Xv!=q>0&&(this.Xv=!this.Xv,l=!0);this.I4!=this.kG>0&&(this.I4=!this.I4,l=!0);this.J4!=this.kG<0&&(this.J4=!this.J4,l=!0);this.pp!=(q==0)&&(this.pp=!this.pp,l=!0);l&&this.o(new h(f.Cl,{rotatingClockwise:this.I4,rotatingCounterClockwise:this.J4,zoomingIn:this.Xv,zoomingOut:this.Yv,stopped:this.pp}))};f.oc="request frame"; f.Cl="movement change";return f}); define("tdv/player/view/map/control/DisplayController","require tdv/utils tdv/events/Event tdv/events/EventDispatcher tdv/view/constants/ScaleMode tdv/player/view/map/control/camera/LimitsManager".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/events/Event"),n=a("tdv/events/EventDispatcher"),g=a("tdv/view/constants/ScaleMode"),k=a("tdv/player/view/map/control/camera/LimitsManager"),e=m.extend(n,function(b,c){n.call(this);this.P=b;this.j=c;this.va=new k;this.Ah=[];this.sb=e.vo;this.gs=this.Vk= this.Rm=null;this.Rh=this.P.get("transitionDuration");this.zn=void 0});e.prototype.du=function(b){this.va.du(b)};e.prototype.VW=function(b){b.NX()&&this.Lda();this.Ah.push(b);this.z3()};e.prototype.oe=function(){this.Lda();this.Ah.push(null);this.z3()};e.prototype.clear=function(){this.sb=e.vo;this.Lda();this.P6a();this.Kja();this.j=null};e.prototype.ze=function(b){this.sb==e.vo||this.sb!=e.uo&&this.sb!=e.rL||(this.zn+=b,b=Math.min(1,this.zn/this.Rh),this.sb==e.uo?this.j.eB(this.gs,b):this.j.eB(this.L0, 1-b),this.zn0&&this.DXa(this.Ah[0],this.Vk);)this.Ah.shift();this.Ah.length>0&&this.ay()}};e.prototype.DXa=function(b,c){return b==c||!!b&&!!c&&b.isEqual(c)};e.prototype.ay=function(){!this.Vk||this.Ah[0]&&!this.Ah[0].NX()||this.Vk.ab==(this.Ah[0]&&this.Ah[0].ab)||this.o(new h(e.vF,{map:this.Vk.ab}));this.P.get("transitionMode","blending")!="fade_out_fade_in"||!this.Vk||this.Ah[0]&& !this.Ah[0].NX()?(this.gs=(this.Rm=this.Ah.shift())&&this.Rm.getItem(),this.Rm?this.$x():this.Vk&&this.by()):this.by()};e.prototype.$x=function(){this.$Wa();this.Rm.NX()&&this.L7a();this.zn=0;this.sb=e.uo;this.bb()};e.prototype.yy=function(){this.Kja();this.Vk=this.Rm;this.L0=this.gs;this.gs=this.Rm=null;this.bM()};e.prototype.by=function(){this.zn=0;this.sb=e.rL;this.bb()};e.prototype.m0a=function(){this.Kja();this.Vk=null;this.bM()};e.prototype.bM=function(){this.sb=e.vo;this.Vk&&this.Vk.NX()&& this.o(new h(e.wF,{map:this.Vk.ab}));this.Ah.length==0?this.Vk?this.o(new h(e.nba,{level:this.Vk})):this.o(new h(e.Zaa)):this.ay()};e.prototype.L7a=function(){var b=this.Rm.ab;this.Rm.yk();this.va.setConfiguration(b.get("width",100),b.get("height",100),b.get("scaleMode",g.uj),b.get("minimumZoomFactor",1),b.get("maximumZoomFactor",1));this.va.setPosition(.5,.5,0,b.get("initialZoomFactor",1));this.j.nra(this.gs,this.va.getX(),this.va.getY(),this.va.eP(),this.va.yA())};e.prototype.bb=function(){this.o(new h(e.oc))}; e.prototype.Lda=function(){for(;this.Ah.length>0;){var b=this.Ah.shift();b&&this.j.fo(b.getItem())}};e.prototype.$Wa=function(){this.Rm&&(this.j.Qbb(this.gs),this.j.scb(this.gs),this.j.eB(this.gs,0),this.o(new h(e.mba,{level:this.Rm})))};e.prototype.Kja=function(){this.Vk&&(this.j.removeItem(this.L0),this.o(new h(e.h_,{level:this.Vk})),this.j.fo(this.L0),this.L0=this.Vk=null)};e.prototype.P6a=function(){this.Rm&&(this.j.removeItem(this.gs),this.o(new h(e.h_,{level:this.Rm})),this.j.fo(this.gs),this.gs= this.Rm=null)};e.vo="stopped";e.uo="blending";e.rL="disolving";e.oc="request frame";e.mba="level added";e.h_="level removed";e.nba="level fully displayed";e.Zaa="all pending maps hidden";e.wF="map show";e.vF="map hide";return e}); define("tdv/player/view/map/control/Level",["require"],function(){function a(m,h){this.ab=m;this.lb=m.get("image");this.Qf=h;this.Pga=void 0}a.prototype.getItem=function(){switch(this.Qf){case a.v_:return this.ab.ELa();default:return this.ab.cr()}};a.prototype.yk=function(){switch(this.Qf){case a.v_:return this.ab.uJ();default:return this.ab.Dt()}};a.prototype.NX=function(){return this.Pga===void 0?this.getIndex()==0:this.Pga};a.prototype.Kkb=function(m){this.Pga=m};a.prototype.OX=function(){return this.Qf== a.Cta};a.prototype.isEqual=function(m){return m&&this.ab==m.map&&this.Qf==m.type};a.prototype.getIndex=function(){return this.Qf==a.v_||this.ab.lP()?0:1};a.prototype.ZKa=function(){return this.ab.lP()?2:1};a.v_="preload";a.Cta="load";return a}); define("tdv/player/view/map/control/LoadController","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/map/control/Level tdv/player/view/util/Device".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/events/Event"),k=a("tdv/events/EventDispatcher"),e=a("tdv/player/view/map/control/Level"),b=a("tdv/player/view/util/Device"),c=m.extend(k,function(d){k.call(this); this.j=d;this.Ah=[];this.LR=this.BH=this.Kh=null;this.uH=!1;this.h2=null;this.p3=m.lr(this.p3,this)});c.prototype.clear=function(){this.stop();this.j=null};c.prototype.yNa=function(d,f){if(this.h2!=d||f)this.stop(),this.ab=d,this.ab.Pjb(),h.KD(this.ab,"image.levels.url",this.p3),f=[],d.lP()&&b.ub()&&f.push(new e(d,e.v_)),f.push(new e(d,e.Cta)),f=f.filter(function(l){return l.getItem().rl()}),f.length&&(this.Ah=this.Ah.concat(f),this.z3())};c.prototype.p3=function(){this.reload()};c.prototype.reload= function(){this.yNa(this.ab,!0)};c.prototype.stop=function(){h.da(this.ab,"image.levels.url",this.p3);this.h2=this.ab=null;this.Ah=[];this.HFa();this.uH&&(this.uH=!1,this.zla(),this.j.fo(this.Kh.getItem()),this.Kh=null,this.o(new g(c.i_)))};c.prototype.z3=function(){this.uH||this.wha()};c.prototype.wha=function(){this.Ah.length>0?(this.Kh=this.Ah.shift(),this.uH||(this.uH=!0,this.o(new g(c.g_,{level:this.Kh,percent:0}))),this.rYa(),this.j.FA(this.Kh.getItem()),this.j.gsa(this.Kh.getItem())&&this.fia()): this.uH&&(this.uH=!1,this.o(new g(c.i_)))};c.prototype.fia=function(){this.zla();this.z9a();this.Kh=null;this.wha()};c.prototype.z9a=function(){this.HFa();this.BH=this.Kh;var d=this;this.LR=setTimeout(function(){d.LR=null;d.R4a()},500)};c.prototype.R4a=function(){var d=this.BH.ab;this.BH.Kkb(d!=this.h2);this.h2=d;this.o(new g(c.oba,{level:this.BH}));this.BH=null};c.prototype.HFa=function(){this.LR!=null&&(clearTimeout(this.LR),this.LR=null,this.j.fo(this.BH.getItem()),this.BH=null)};c.prototype.sBa= function(){this.zla();this.Kh=null;this.wha()};c.prototype.tBa=function(d){this.o(new g(c.g_,{level:this.Kh,percent:d.percent}))};c.prototype.rYa=function(){var d=this.Kh.getItem();d.bind(n.ia,this.fia,this);d.bind(n.$c,this.sBa,this);d.bind(n.yc,this.tBa,this)};c.prototype.zla=function(){var d=this.Kh.getItem();d.h(n.ia,this.fia,this);d.h(n.$c,this.sBa,this);d.h(n.yc,this.tBa,this)};c.g_="level loading progress";c.oba="level loaded";c.i_="load stopped";return c}); define("tdv/player/view/map/control/overlays/Point",["require"],function(){function a(m,h){this.x=m;this.y=h}a.prototype.rotate=function(m){var h=Math.cos(m);m=Math.sin(m);var n=this.x*m+this.y*h;this.x=this.x*h-this.y*m;this.y=n;return this};a.prototype.translate=function(m,h){this.x+=m;this.y+=h;return this};a.prototype.scale=function(m,h){this.x*=m;this.y*=h;return this};return a}); define("tdv/view/images/ScalableImage",["require","tdv/view/constants/ScaleMode","tdv/view/constants/Alignment"],function(a){function m(g,k,e){this.fj=g;this.vFa=k;this.tFa=e;this.ti=h.GB;this.GC=n.$e;this.JD=n.$d}var h=a("tdv/view/constants/ScaleMode"),n=a("tdv/view/constants/Alignment");m.prototype.cQ=function(g){this.ti=g};m.prototype.aQ=function(g){this.GC=g};m.prototype.gQ=function(g){this.JD=g};m.prototype.SO=function(g,k,e){var b=this.vFa,c=this.tFa,d;switch(this.ti){case h.NONE:var f=d=1; break;case h.uj:d=f=Math.min(k/b,e/c);break;case h.Ir:d=f=Math.max(k/b,e/c);break;case h.Tp:d=f=k/b;break;case h.Pk:d=f=e/c;break;default:d=k/b,f=e/c}var l=Math.min(this.vFa*d,k);d=Math.min(k/d,b);switch(this.GC){case n.fb:b=k=0;break;case n.Db:k-=l;b-=d;break;default:k=(k-l)*.5,b=(b-d)*.5}var p=Math.min(this.tFa*f,e);f=Math.min(e/f,c);switch(this.JD){case n.Tc:c=e=0;break;case n.Gc:e-=p;c-=f;break;default:e=(e-p)*.5,c=(c-f)*.5}g.drawImage(this.fj,Math.round(b),Math.round(c),Math.round(d+b-Math.round(b)), Math.round(f+c-Math.round(c)),Math.round(k),Math.round(e),Math.round(l+k-Math.round(k)),Math.round(p+e-Math.round(e)))};return m}); define("tdv/player/view/map/control/overlays/HotspotMapOverlayMapController","require tdv/constants/EventName tdv/constants/Priority tdv/player/view/map/control/overlays/Point tdv/view/images/ImageLoader tdv/view/images/ScalableImage".split(" "),function(a){function m(b,c,d,f){this.j=b;this.ab=c;this.uf=this.ab.get("width");this.tf=this.ab.get("height");this.Ge=this.ab.cr();this.wza=d;this.nq=f;this.hH=null;if(this.nq){if(this.AN=this.wza.AN,this.Pa=this.nq.get("width"),this.Ha=this.nq.get("height"), this.ec=this.nq.get("x",0),this.fc=this.nq.get("y",0),this.Zha=this.nq.get("offsetX",0),this.$ha=this.nq.get("offsetY",0),this.hb=this.nq.Dt())this.IC=new k(n.Up),this.IC.load(this.hb.get("url")),this.IC.bind(h.ia,this.ZBa,this)}else this.IC=null}var h=a("tdv/constants/EventName"),n=a("tdv/constants/Priority"),g=a("tdv/player/view/map/control/overlays/Point"),k=a("tdv/view/images/ImageLoader"),e=a("tdv/view/images/ScalableImage");m.prototype.clear=function(){this.nq=this.wza=this.Ge=this.ab=this.j= null;this.IC&&(this.IC.h(h.ia,this.ZBa,this),this.IC.cancel(),this.IC=null);this.hH=null};m.prototype.rLa=function(b,c){this.xza=void 0;if(this.hH&&b!=void 0&&c!=void 0){var d=this.j.nb()*.5,f=this.j.Mb()*.5,l=this.j.L7(this.Ge)*Math.PI/180,p=this.j.K7(this.Ge),q=this.j.J7(this.Ge),r=this.j.M7(this.Ge),t=this.j.N7(this.Ge);b=new g(b,c);b.translate(-d,-f);b.rotate(-l);b.scale(1/p,1/q);b.translate(r,t);b.scale(this.uf,this.tf);b.translate(-this.ec,-this.fc);this.AN||(b.rotate(l),b.scale(p/this.uf,q/ this.tf));b.translate(this.Zha,this.$ha);d=Math.round(b.x);f=Math.round(b.y);d>=0&&d=0&&f0?"#"+this.xda(f[d+0])+this.xda(f[d+1])+this.xda(f[d+2]):"transparent")}return this.xza};m.prototype.ZBa=function(){var b=new e(this.IC.xg(),this.hb.get("width"),this.hb.get("height"));b.cQ(this.nq.get("scaleMode"));b.aQ(this.nq.get("horizontalAlign"));b.gQ(this.nq.get("verticalAlign"));var c=document.createElement("canvas"); c.width=Math.round(this.Pa);c.height=Math.round(this.Ha);var d=c.getContext("2d");b.SO(d,c.width,c.height);this.hH=d.getImageData(0,0,c.width,c.height);c.width=c.height=0};m.prototype.xda=function(b){for(b=b.toString(16);b.length<2;)b="0"+b;return b};return m}); define("tdv/player/view/map/control/overlays/HotspotMapOverlayController","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/util/Color tdv/player/view/util/Device tdv/player/view/map/control/overlays/HotspotMapOverlayMapController tdv/view/constants/Cursor tdv/view/util/Ease tdv/view/util/EaseDimension".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/util/Color"), e=a("tdv/player/view/util/Device"),b=a("tdv/player/view/map/control/overlays/HotspotMapOverlayMapController"),c=a("tdv/view/constants/Cursor"),d=a("tdv/view/util/Ease"),f=a("tdv/view/util/EaseDimension"),l=m.extend(g,function(p,q,r){g.call(this);this.j=p;this.ab=q;this.Dc=r;this.Ja=this.Dc.getItem();this.Ss=this.Dc.ILa();this.Us=this.Dc.NLa();this.Qy=this.So=void 0;this.P=this.j.getParent();this.P.bind(h.gb,this.rg,this);this.P.bind(h.Eb,this.TT,this);this.P.bind(h.Sa,this.uq,this);this.P.bind(h.$a, this.fz,this);this.P.bind(h.ma,this.ez,this);r.bind(h.L("selected"),this.NCa,this);r.bind(h.L("enabled"),this.zs,this);this.D2=new b(this.j,this.ab,this.Dc,this.Dc.get("map",null));this.F2=new b(this.j,this.ab,this.Dc,this.Dc.get("rollOverMap",this.Dc.get("map",null)));this.G2=new b(this.j,this.ab,this.Dc,this.Dc.get("selectedMap",this.Dc.get("rollOverMap",this.Dc.get("map",null))));this.D1=new b(this.j,this.ab,this.Dc,this.Dc.get("image",null));this.E1=new b(this.j,this.ab,this.Dc,this.Dc.get("rollOverImage", this.Dc.get("image",null)));this.F1=new b(this.j,this.ab,this.Dc,this.Dc.get("selectedImage",this.Dc.get("rollOverImage",this.Dc.get("image",null))));this.Bd=this.Ad=void 0;this.$N=null;this.Ux=[];this.Nu=[];this.xR=[];this.Qi={};this.qAa=[];this.Jy=!1;this.pma=this.Dc.get("useHandCursor");this.la=null;this.QN=void 0;this.T4=this.G4=this.Y1=0;p=this.Dc.get("areas",[]);for(q=0;q0),this.qla(m.difference(p,q),"rollOut"),this.eW())}};l.prototype.eW=function(){for(var p="",q=0;qq.get("useHandCursor")===!0));this.Jy!=p&&((this.Jy=p)?this.j.V9(c.qf):this.j.SP(c.qf))};l.prototype.d1a=function(){if(this.Dc.get("enabled")===!1)return[];var p=[],q=this.Qy?this.G2:this.So?this.F2:this.D2;q&&(q=q.rLa(this.Ad,this.Bd))&&(this.Qi.any&&(p=p.concat(this.Qi.any)),q=="transparent"&&this.Qi.transparent&&(p=p.concat(this.Qi.transparent)),q!="transparent"&& (p=this.Qi[q]?p.concat(this.Qi[q]):p.concat(this.Qi[k.$jb(q,this.qAa)]||[]),this.Qi.image&&(p=p.concat(this.Qi.image))));if(q=this.Qy?this.F1:this.So?this.E1:this.D1)if(q=q.rLa(this.Ad,this.Bd))this.Qi.any&&(p=p.concat(this.Qi.any)),q=="transparent"&&this.Qi.transparent&&(p=p.concat(this.Qi.transparent)),q!="transparent"&&this.Qi.image&&(p=p.concat(this.Qi.image));q=[];for(var r=0;r=0&&this.eT.splice(d,1);this.Sga(c)||(this.YDa(c),this.Mja(c))};b.prototype.Sga=function(c){return this.eT.includes(c)};b.prototype.ze=function(c){for(var d=0;d=0&&b.splice(c,1)}var n=a("tdv/utils"),g=a("tdv/constants/EventName"),k=a("tdv/view/images/ImageLoader"),e=a("tdv/player/view/image/RepositoryEntry");m.prototype.gsa=function(b){b=b.eE();for(var c=0,d=b.length;cr!==b);for(var d=b.eE(),f=0,l=d.length;fu!==d))}};m.prototype.hS=function(b){var c= this.Wxa[b];c||(this.Wxa[b]=c=new e);return c};m.prototype.Tya=function(b){for(var c=[],d=0;d0&&this.Pa>=1&& this.Ha>=1){h.save();var n=Math.round(this.Uy),g=Math.round(this.$s),k=Math.round(this.Pa*this.Ev),e=Math.round(this.Ha*this.Fv);h.scale(this.ne,this.ne);h.translate(n+k,g+e);h.rotate(this.jl*Math.PI/180);h.globalAlpha=this.Of;h.drawImage(this.ja,-k,-e);h.restore()}};m.prototype.y7=function(){this.ja.width=this.ja.height=1;this.Q1=this.O1=!0};m.Dta=Math.min(window.devicePixelRatio||1,a.Nd()==a.uB?2:Infinity);m.tl=m.Dta;m.dVa=a.Nd()==a.vj?16E6:256E6;return m}); define("tdv/player/view/map/renderer/renderers/ItemContainerRenderer",["require","tdv/utils","tdv/player/view/map/renderer/renderers/ItemRenderer"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/map/renderer/renderers/ItemRenderer");a=m.extend(h,function(n,g){h.call(this,n,g);this.rf=[];this.s6=null;this.Jma=!0});a.prototype.XHa=function(n){n=this.aea(n);if(!n)throw"Container renderer can't create child renderer for an item";this.rf.push(n);this.q8();this.n8()};a.prototype.aea=function(){}; a.prototype.gQa=function(n){var g=this.jw(n);g&&(this.rf=this.rf.filter(k=>k!==g),this.q8(),this.n8())};a.prototype.$W=function(n){for(var g=h.prototype.$W.call(this,n),k=0;kg!==n);this.rf.push(n);this.q8();this.n8()};a.prototype.q8=function(){this.Jma=!0;this.Tf()};a.prototype.n8=function(){this.m8()};a.prototype.jb=function(){h.prototype.jb.call(this);for(var n=0;n0||g>0){var e=this.$m*this.V3,b=this.$m*this.U3;e=Math.ceil(Math.sqrt(e*e+b*b))*this.Ja.xA()/this.ne;b=Math.round(this.Pa*.5);var c=Math.round(this.Ha*.5),d=this.kb*Math.PI/ 180,f=-d*.5;d=f+d;k>0&&(this.ga.fillStyle=this.Ja.$5a,this.ga.globalAlpha=k,this.ga.rect(0,0,this.Pa,this.Ha),this.ga.fill(),this.ga.globalCompositeOperation="destination-out",this.ga.fillStyle="#FFFFFF",this.ga.globalAlpha=1,this.ga.beginPath(),this.ga.moveTo(b,c),this.ga.arc(b,c,e,f,d,!1),this.ga.lineTo(b,c),this.ga.closePath(),this.ga.fill(),this.ga.globalCompositeOperation="source-over");g>0&&(this.ga.fillStyle=this.Ja.m3a,this.ga.globalAlpha=g,this.ga.beginPath(),this.ga.moveTo(b,c),this.ga.arc(b, c,e,f,d,!1),this.ga.lineTo(b,c),this.ga.closePath(),this.ga.fill())}h.prototype.gh.call(this)};return a}); define("tdv/player/view/map/renderer/renderers/ImageOverlayRenderer","require tdv/utils tdv/player/view/map/renderer/renderers/ItemRenderer tdv/player/view/map/renderer/renderers/OverlayRenderer tdv/player/view/image/Repository tdv/view/images/ScalableImage".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/player/view/map/renderer/renderers/ItemRenderer"),n=a("tdv/player/view/map/renderer/renderers/OverlayRenderer"),g=a("tdv/player/view/image/Repository"),k=a("tdv/view/images/ScalableImage"); a=m.extend(n,function(e,b){n.call(this,e,b);this.TEa(this.Ja.rEa?0:2);this.Id=g.xg(this.Ja.rl());this.M4=new k(this.Id,this.Id.width,this.Id.height);this.M4.cQ(this.Ja.ti);this.M4.gQ(this.Ja.iP());this.M4.aQ(this.Ja.gP());this.cT=0;this.$m=1;this.Bha=!0});a.prototype.t$=function(e,b){if(this.cT!=e||this.$m!=b)this.cT=e,this.$m=b,this.Bha=!0,this.Tf()};a.prototype.Sh=function(){if(this.Bha){this.Bha=!1;var e=this.Ja.getX(),b=this.Ja.getY(),c=this.Ja.fg(),d=this.Ja.wg(),f=this.Ja.zLa(),l=this.Ja.ALa(); if(this.Ja.rEa)this.b5(0),this.un((e-f)*this.$m,(b-l)*this.$m),this.iV(c*this.$m,d*this.$m);else{c*=h.tl;d*=h.tl;f*=h.tl;l*=h.tl;var p=Math.cos(-this.cT*Math.PI/180),q=Math.sin(-this.cT*Math.PI/180);e=e*this.$m-this.Ev*c-(f-this.Ev*c)*p+(l-this.Fv*d)*q;b=b*this.$m-this.Fv*d-(l-this.Fv*d)*p-(f-this.Ev*c)*q;this.b5(-this.cT);this.un(e,b);this.iV(c,d)}}n.prototype.Sh.call(this)};a.prototype.gh=function(){this.M4.SO(this.ga,this.ja.width,this.ja.height);n.prototype.gh.call(this)};return a}); define("tdv/player/view/map/renderer/renderers/MapRenderer","require tdv/utils tdv/view/constants/ScaleMode tdv/player/view/image/Repository tdv/player/view/map/renderer/item/Item tdv/player/view/map/renderer/item/Overlay tdv/player/view/map/renderer/renderers/FovOverlayRenderer tdv/player/view/map/renderer/renderers/ImageOverlayRenderer tdv/player/view/map/renderer/renderers/ItemContainerRenderer".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/view/constants/ScaleMode"),n=a("tdv/player/view/image/Repository"), g=a("tdv/player/view/map/renderer/item/Item"),k=a("tdv/player/view/map/renderer/item/Overlay"),e=a("tdv/player/view/map/renderer/renderers/FovOverlayRenderer"),b=a("tdv/player/view/map/renderer/renderers/ImageOverlayRenderer"),c=a("tdv/player/view/map/renderer/renderers/ItemContainerRenderer");a=m.extend(c,function(d,f){c.call(this,d,f,d.xq);this.ji=this.Ja.fg();this.fk=this.Ja.wg();this.ti=this.Ja.ti;this.N0a=this.Ja.M0a;this.Ng=this.Og=100;this.Tda=!0;this.fc=this.ec=.5;this.Ed=0;this.kc=1;this.m4= !0;this.Mj=1;this.Id=n.xg(this.Ja.rl())});a.prototype.aea=function(d){if(d.getType()!=g.Lua)throw"Invalid item type";switch(d.c6a){case k.Iua:d=new e(d,this);break;case k.Jua:d=new b(d,this);break;default:d=null}d&&d.t$(this.Ed,this.Mj*this.kc);return d};a.prototype.getX=function(){return this.ec};a.prototype.getY=function(){return this.fc};a.prototype.eP=function(){return this.Ed};a.prototype.yA=function(){return this.kc};a.prototype.nb=function(){return Math.round(this.ji*this.kc*this.Mj)};a.prototype.Mb= function(){return Math.round(this.fk*this.kc*this.Mj)};a.prototype.i$=function(d,f){if(this.Og!=d||this.Ng!=f)this.Og=d,this.Ng=f,this.Tda=!0,this.Tf()};a.prototype.setPosition=function(d,f,l,p){if(this.ec!=d||this.fc!=f||this.Ed!=l||this.kc!=p)this.ec=d,this.fc=f,this.Ed=l,this.kc=p,this.m4=!0,this.Tf()};a.prototype.Sh=function(){if(this.Tda){this.Tda=!1;switch(this.ti){case h.NONE:this.Mj=1;break;case h.Tp:this.Mj=this.Og/this.ji;break;case h.Pk:this.Mj=this.Ng/this.fk;break;case h.Ir:this.Mj=this.ji* this.Ng>this.fk*this.Og?this.Ng/this.fk:this.Og/this.ji;break;default:this.Mj=this.ji*this.Ng>this.fk*this.Og?this.Og/this.ji:this.Ng/this.fk}this.m4=!0}if(this.m4){this.m4=!1;var d=this.nb(),f=this.Mb(),l=Math.cos(this.Ed*Math.PI/180),p=Math.sin(this.Ed*Math.PI/180);this.un(this.Og*.5-this.Ev*d+(this.Ev-this.ec)*l*d-(this.Fv-this.fc)*p*f,this.Ng*.5-this.Fv*f+(this.Fv-this.fc)*l*f+(this.Ev-this.ec)*p*d);this.b5(this.Ed);this.iV(d,f);for(d=0;d=0&&this.xC.splice(f,1);this.YV()};a.prototype.YV=function(){var f=this.xC.length>0?this.xC[this.xC.length-1]:c.De;this.getParent().set("cursor",f)};a.prototype.p0=function(){this.xC.length>0&&(this.getParent().set("cursor",c.De),this.xC=[])};a.prototype.njb=function(f){this.AI.push(f); this.eW()};a.prototype.gjb=function(f){f=this.AI.lastIndexOf(f);f>=0&&this.AI.splice(f,1);this.eW()};a.prototype.eW=function(){var f=this.AI.length==0?"":this.AI[this.AI.length-1]||"";this.jc!=f&&(this.jc=f,this.getParent().set("toolTip",this.jc))};a.prototype.tZa=function(){this.jc&&this.getParent().set("toolTip","");this.jc="";this.AI=[]};a.prototype.np=function(){this.tZa();this.p0();d.prototype.np.call(this)};a.prototype.kd=function(){this.WGa();this.Yla()};a.prototype.WGa=function(){var f=this.oi.cc(); f.style.transform=k.tl!=1?"scale("+(1/k.tl).toFixed(3)+")":"none";f.style.transformOrigin="0% 0%";this.oi.setSize(this.nb()*k.tl,this.Mb()*k.tl);this.render()};a.prototype.cp=function(){this.Sja=!0;this.ama()};a.prototype.ap=function(){this.Sja=!1;this.ama()};a.prototype.ama=function(){var f=this.Sja&&!b.isPresenting;this.Tja!=f&&((this.Tja=f)?(this.kd(),this.render()):this.oi.y7())};return a}); define("tdv/player/script/MapPlayer","require tdv/utils tdv/events/Event tdv/player/parser/ClassInfo tdv/player/script/helper/ButtonProperty tdv/player/script/MediaPlayer tdv/player/view/map/control/Controller tdv/player/view/map/control/constants/Movement tdv/player/view/map/renderer/Renderer tdv/constants/EventName tdv/view/constants/ButtonMode tdv/view/constants/State".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/events/Event"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/player/script/helper/ButtonProperty"), k=a("tdv/player/script/MediaPlayer"),e=a("tdv/player/view/map/control/Controller"),b=a("tdv/player/view/map/control/constants/Movement"),c=a("tdv/player/view/map/renderer/Renderer"),d=a("tdv/constants/EventName"),f=a("tdv/view/constants/ButtonMode"),l=a("tdv/view/constants/State"),p=n.define("MapPlayer",k,function(){k.call(this,"map");this.W2=this.Aha=this.ij=!1;this.hp=this.rd=this.U=this.j=null;this.hC={};for(var q in p.Px)this.hC[q]=this.SZa(q);this.be=m.lr(this.Sh,this)});p.prototype.stop=function(){this.md(b.Fg)}; p.prototype.rotateClockwise=function(){this.md(b.dca)};p.prototype.rotateCounterClockwise=function(){this.md(b.eca)};p.prototype.zoomIn=function(){this.md(b.Nx)};p.prototype.zoomOut=function(){this.md(b.Ox)};p.prototype.set=function(q,r){if(this.get(q)!=r){switch(q){case "map":this.Aha=!0;this.be();break;case "viewerArea":this.ij=!0;this.be();break;case "panoramaMapLocation":this.Tia=!0;this.be();break;case "movementMode":this.W2=!0,this.be()}k.prototype.set.call(this,q,r)}};p.prototype.SZa=function(q){var r= p.Px[q];q=new g(this,q,f.af);q.bind(d.Sa,function(){this.md(r.movement)},this);r.stopOnRelease&&q.bind(d.$a,function(){this.md(b.Fg)},this);return q};p.prototype.Wbb=function(q){this.hp=null;this.set("map",q.get("map"));this.set("panoramaMapLocation",q)};p.prototype.Bjb=function(q){this.get("panoramaMapLocation")==q&&(this.set("panoramaMapLocation",null),this.hp=null)};p.prototype.sr=function(q,r,t,u){this.U&&this.U.sr(q,r,t,u);this.hp={yaw:r,pitch:t,hfov:u}};p.prototype.Sh=function(){this.ij&&(this.ij= !1,this.oy(),this.get("viewerArea")&&this.ny(),this.kV(this.get("viewerArea")));if(this.U){if(this.Aha){this.Aha=!1;var q=this.get("map");q?(this.eK(),this.U.nRa(q)):this.U.bB();this.Tia=this.W2=!0}this.Tia&&(this.Tia=!1,q=this.get("panoramaMapLocation"),this.U.hB(q),q&&this.hp&&this.U.sr(q,this.hp.yaw,this.hp.pitch,this.hp.hfov));this.W2&&(this.W2=!1,this.U.du(this.get("movementMode")))}};p.prototype.RN=function(){this.set("map",null)};p.prototype.ny=function(){var q=this.get("viewerArea");this.j= new c;this.j.xa({left:0,top:0,bottom:0,right:0});q.mb(this.j);this.U=new e(q,this.j);this.U.bind(e.Cl,this.As,this);this.U.bind(e.wx,this.Gj,this);this.U.bind(e.uF,this.XM,this);this.U.bind(e.wF,this.XC,this);this.U.bind(e.vF,this.bz,this);this.U.bind(e.tj,this.gU,this,!0)};p.prototype.oy=function(){this.j&&(this.U.h(e.Cl,this.As,this),this.U.h(e.wx,this.Gj,this),this.U.h(e.uF,this.XM,this),this.U.h(e.wF,this.XC,this),this.U.h(e.vF,this.bz,this),this.U.h(e.tj,this.gU,this),this.U.clear(),this.j.getParent().removeChild(this.j), this.j=null)};p.prototype.XC=function(q){this.jT(q.data.map)};p.prototype.bz=function(q){this.iT(q.data.map)};p.prototype.As=function(q){for(var r in p.Px)this.hC[r].set("state",q.data[p.Px[r].pressedOn]?l.Fb:l.De);this.o(new h(d.Mta,q.data))};p.prototype.gU=function(q){this.o(new h(p.tj,{yawDelta:q.data.yawDelta}))};p.prototype.Gj=function(q){this.j.getParent().xa({progressPercent:q.data.percent,progressVisible:!0})};p.prototype.XM=function(){this.j.getParent().set("progressVisible",!1)};p.prototype.md= function(q){this.U&&this.U.wl(q)};p.Px={buttonRotateClockwise:{movement:b.dca,pressedOn:"rotatingClockwise",stopOnRelease:!0},buttonRotateCounterClockwise:{movement:b.eca,pressedOn:"rotatingCounterClockwise",stopOnRelease:!0},buttonZoomIn:{movement:b.Nx,pressedOn:"zoomingIn",stopOnRelease:!0},buttonZoomOut:{movement:b.Ox,pressedOn:"zoomingOut",stopOnRelease:!0}};p.tj="requestYawChange";return p}); define("tdv/player/script/PlayListItem","require exports tdv/player/parser/ClassInfo tdv/constants/EventName tdv/events/Event tdv/binding/Bindable".split(" "),function(a,m,h,n,g,k){a=function(e){function b(){var c=e.call(this)||this;c.I="stopped";return c}P(b,e);b.prototype.get=function(c,d){d===void 0&&(d=void 0);return c=="state"?this.I:k.prototype.get.call(this,c,d)};b.prototype.start=function(){this.cnb()};b.prototype.cnb=function(){if(this.I=="stopped"||this.I=="stopping")this.I="startin",this.o(new g(n.Vp))}; b.prototype.PD=function(){this.USa()};b.prototype.USa=function(){if(this.I=="startin"||this.I=="stopping")this.I="playing",this.o(new g(n.Br))};b.prototype.stop=function(){this.qQ()};b.prototype.qQ=function(){if(this.I=="playing"||this.I=="startin")this.I="stopping",this.o(new g(n.Fg))};b.prototype.end=function(){this.VSa()};b.prototype.VSa=function(){if(this.I=="stopping"||this.I=="startin")this.I="stopped",this.o(new g(n.Tb))};return b}(k);h.create("PlayListItem",a);return a}); define("tdv/player/script/MapPlayListItem",["require","tdv/player/parser/ClassInfo","tdv/player/script/MediaPlayer","tdv/player/script/PlayListItem"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/MediaPlayer"),n=a("tdv/player/script/PlayListItem");a=m.define("MapPlayListItem",n,function(){n.call(this)});a.prototype.start=function(){n.prototype.start.call(this);var g=this.get("player");g&&(g.bind(h.di,this.XC,this),g.set("map",this.get("media")))};a.prototype.stop=function(){var g= this.get("player");g&&g.get("map")==this.get("media")&&g.set("map",null);n.prototype.stop.call(this)};a.prototype.XC=function(){this.get("player").h(h.di,this.XC,this);this.get("player").bind(h.mo,this.bz,this);this.PD();this.get("player").get("map")!=this.get("media")&&this.bz()};a.prototype.bz=function(){this.get("player").h(h.mo,this.bz,this);this.stop();this.end()};return a}); define("tdv/player/script/MeasureModel3DObject",["require","tdv/constants/EventName","tdv/player/parser/ClassInfo","tdv/player/script/ExternalModel3DObject"],function(a){var m=a("tdv/constants/EventName"),h=a("tdv/player/parser/ClassInfo"),n=a("tdv/player/script/ExternalModel3DObject"),g=h.define("MeasureModel3DObject",n,function(){n.call(this);this.bind(m.L("mode"),function(){this.o(g.BUa)},this,!0);this.bind(m.L("distance"),function(){this.o(g.xUa)},this,!0)});g.BUa="modeChange";g.xUa="distanceChange"; return g});define("tdv/player/script/MeasureModel3DObjectPoint",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("MeasureModel3DObjectPoint",m,function(){m.call(this)})}); define("tdv/player/script/OrbitModel3DCamera",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DCamera"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DCamera");return m.define("OrbitModel3DCamera",h,function(){h.call(this)})}); define("tdv/player/view/util/LoadingGroup",["require","exports","tdv/constants/EventName","tdv/events/EventDispatcher"],function(a,m,h,n){var g=function(){return function(k){this.qJa=k;this.percent=0;this.finished=!1}}();return function(k){function e(b){var c=k.call(this)||this;c.To=new Map;c.dM=b||c;return c}P(e,k);e.prototype.vkb=function(b){if(this.dM=b)this.hh(),this.W5()};e.prototype.update=function(){this.hh();this.W5()};e.prototype.hJa=function(){this.To.forEach(function(b,c){this.w4(c)}.bind(this)); this.To=new Map};e.prototype.oj=function(){var b=0;this.To.forEach(function(c){c.finished&&b++});return b==this.To.size};e.prototype.dispose=function(){this.hJa();this.To.clear();this.dM=void 0};e.prototype.rO=function(b,c){c===void 0&&(c=1);if(this.To.has(b))return b;this.To.set(b,new g(c));this.iXa(b);return b};e.prototype.WP=function(b){this.To.has(b)&&(this.To["delete"](b),this.w4(b))};e.prototype.hw=function(b){b===void 0&&(b=1);var c=new n;return this.rO(c,b)};e.prototype.Pe=function(b){b=b.source; var c=this.To.get(b);c&&(this.w4(b),c.percent=100,c.finished=!0,this.hh(),this.W5())};e.prototype.Gj=function(b){this.To.get(b.source).percent=b.data.percent;this.hh()};e.prototype.yh=function(b){b=b.source;this.w4(b);b=this.To.get(b);b.finished=!0;b.percent=100;this.dM.o(h.$c);this.hh();this.W5()};e.prototype.hh=function(){var b=0,c=0;this.To.forEach(function(d){c+=d.qJa;b+=d.percent*d.qJa});this.dM.o(h.yc,{percent:c?b/c:100})};e.prototype.W5=function(){this.oj()&&this.dM.o(h.ia)};e.prototype.iXa= function(b){b.bind(h.ia,this.Pe,this,!0);b.bind(h.yc,this.Gj,this,!0);b.bind(h.$c,this.yh,this,!0)};e.prototype.w4=function(b){b.h(h.ia,this.Pe,this);b.h(h.yc,this.Gj,this);b.h(h.$c,this.yh,this)};return e}(n)}); define("tdv/player/script/Model3D","require tdv/constants/EventName tdv/constants/PlaybackState tdv/player/parser/ClassInfo tdv/player/script/Media tdv/player/script/OrbitModel3DCamera tdv/player/view/util/LoadingGroup".split(" "),function(a){function m(r,t){Array.isArray(t)?r.fromArray(t):r.copy(t);return r}function h(r,t){Array.isArray(t)?r.fromArray(t):r.copy(t);return r}function n(r,t){if(Array.isArray(t))return r.toArray(t);t.x=r.x;t.y=r.y;t.z=r.z;return t}var g=a("tdv/constants/EventName"), k=a("tdv/constants/PlaybackState"),e=a("tdv/player/parser/ClassInfo"),b=a("tdv/player/script/Media"),c=a("tdv/player/script/OrbitModel3DCamera"),d=a("tdv/player/view/util/LoadingGroup");a=e.define("Model3D",b,function(){b.call(this);this.set("camera",new c);this.set("geometryQuery",void 0);this.set("objectQuery",void 0);this.set("metadataQuery",void 0);this.set("preload",!0)});a.prototype.Qqa=function(){this.Lj&&(this.Lj.h(g.ia,this.aN,this),this.Lj.dispose());this.Lj=new d;this.Lj.bind(g.ia,this.aN, this,!0);this.sf&&this.sf.dispose();this.sf=new d(this)};a.prototype.aN=function(){this.o(g.VF)};a.prototype.O7=function(){this.sf||this.Qqa();return this.sf};a.prototype.S7=function(){this.Lj||this.Qqa();return this.Lj};a.prototype.pause=function(){this.get("state")==k.PLAYING&&this.set("state",k.Zb)};a.prototype.play=function(){this.set("state",k.PLAYING)};a.prototype.stop=function(){this.set("state",k.ca)};a.prototype.worldPositionToLocal=function(r,t){h(f,r);m(p,t);p.invert();f.applyMatrix4(p); return n(f,r)};a.prototype.getMatrixWorld=function(r){var t=this.get("objectQuery");return t&&t.tLa(r)};a.prototype.worldDirectionToLocal=function(r,t){h(f,r);m(q,t);p.extractRotation(q);p.invert();f.applyMatrix4(p);return n(f,r)};a.prototype.testIntersection=function(r,t){var u=this.get("geometryQuery");if(u)return h(f,r),h(l,t),u.zK(f,l)};a.prototype.getDistanceToFloor=function(r){var t=this.get("geometryQuery");if(t)return h(f,r),t.ffb(f)};a.prototype.getMetadata=function(){var r=this.get("metadataQuery"); if(r)return r.getMetadata()};a.prototype.pick=function(r,t){var u=this.get("picker");if(u)return u.pqa(r,t)};a.prototype.getScreenPosition=function(r,t){var u=this.get("projectionQuery");if(u)return u.Goa(h(f,r),t)};var f=new THREE.Vector3,l=new THREE.Vector3,p=new THREE.Matrix4,q=new THREE.Matrix4;a.prototype.sw=function(){return[]};return a}); define("tdv/player/script/Model3DAnimation",["require","tdv/binding/Bindable","tdv/constants/PlaybackState","tdv/constants/EventName","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/constants/PlaybackState"),n=a("tdv/constants/EventName");a=a("tdv/player/parser/ClassInfo").define("Model3DAnimation",m,function(){m.call(this);this.bind(n.L("state"),function(){this.o(n.Pd)},this,!0)});a.prototype.pause=function(){this.get("state")==h.PLAYING&&this.set("state",h.Zb)}; a.prototype.play=function(){this.set("currentDirection","forward");this.set("state",h.PLAYING)};a.prototype.reverse=function(){this.set("currentDirection","backward");this.set("state",h.PLAYING)};a.prototype.stop=function(){this.set("currentTime",0);this.set("state",h.ca)};return a}); define("tdv/player/script/Model3DCameraSequence",["require","tdv/binding/Bindable","tdv/constants/PlaybackState","tdv/player/parser/ClassInfo","tdv/constants/EventName"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/constants/PlaybackState"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/constants/EventName");a=n.define("Model3DCameraSequence",m,function(){m.call(this);this.set("state",h.ca);this.bind(g.L("state"),function(){this.o(g.Pd)},this,!0)});a.prototype.play=a.prototype.play=function(){this.set("state", h.PLAYING)};a.prototype.pause=a.prototype.pause=function(){this.get("state")==h.PLAYING&&this.set("state",h.Zb)};a.prototype.stop=a.prototype.stop=function(){this.set("state",h.ca)};return a});define("tdv/player/script/Model3DDisplayEffect",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("Model3DDisplayEffect",m,function(){m.call(this)})}); define("tdv/player/script/PlaybackMediaPlayer","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/player/script/helper/ButtonProperty tdv/player/script/MediaPlayer tdv/constants/PlaybackState tdv/view/constants/ButtonMode tdv/view/constants/State".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/player/script/helper/ButtonProperty"),k=a("tdv/player/script/MediaPlayer"),e=a("tdv/constants/PlaybackState"),b=a("tdv/view/constants/ButtonMode"), c=a("tdv/view/constants/State");a=m.extend(k,function(){k.call(this,!0);this.wv=!1;this.PN=!0;this.I=e.ca;this.vG=new g(this,"buttonPlayPause",b.ak);this.vG.bind(h.Rk,this.s5a,this,!0);this.vG.bind(h.Km,this.t5a,this,!0);this.EL=new g(this,"buttonPause",b.af);this.EL.bind(h.ma,this.TH,this,!0);this.FL=new g(this,"buttonPlay",b.af);this.FL.bind(h.ma,this.UH,this,!0);this.HL=new g(this,"buttonStop",b.af);this.HL.bind(h.ma,this.cD,this,!0);this.RYa=new g(this,"buttonRestart",b.af);this.RYa.bind(h.ma, this.bD,this,!0);this.Nza=m.lr(this.Kab,this);this.Nza()});a.prototype.set=function(d,f){d!="state"&&k.prototype.set.call(this,d,f)};a.prototype.get=function(d,f){switch(d){case "state":return this.I}return k.prototype.get.call(this,d,f)};a.prototype.Kab=function(){this.PN&&(this.PN=!1,this.EL.set("state",this.I==e.Zb?c.Fb:c.De),this.FL.set("state",this.I==e.PLAYING||this.I==e.Zb?c.Fb:c.De),this.vG.set("pressed",this.I==e.PLAYING),this.HL.set("state",this.I==e.ca?c.Fb:c.De))};a.prototype.xD=function(d){this.wv!= d&&((this.wv=d)||this.Jd(e.ca))};a.prototype.Jd=function(d){var f=this.I;this.I=d;k.prototype.set.call(this,"state",d);f!=this.I&&(this.PN=!0,this.Nza(),this.o(new n(h.Pd,{oldState:f,state:this.I})))};a.prototype.TH=function(){this.wv&&(this.I==e.Zb?this.rn():this.tv())};a.prototype.UH=function(){this.wv&&this.rn()};a.prototype.s5a=function(){this.wv&&this.rn()};a.prototype.t5a=function(){this.wv&&this.tv()};a.prototype.cD=function(){this.wv&&this.Xs()};a.prototype.bD=function(){this.wv&&(this.Xs(), this.rn())};a.prototype.rn=function(){};a.prototype.tv=function(){};a.prototype.Xs=function(){};return a}); define("tdv/player/view/common/MediaDisplayController",["require","exports","tdv/view/util/Animation","tdv/events/EventDispatcher","tdv/player/view/util/XR"],function(a,m,h,n,g){var k={isEqual:function(e){return e==this}};return function(e){function b(c){var d=e.call(this)||this;d.P=c;d.jp=null;d.li=null;d.cf=null;d.Rh=0;d.zn=0;d.sb=b.vo;return d}P(b,e);b.prototype.display=function(c){this.jp=null;c.isEqual(this.cf)&&this.sb==b.vo||(this.P.Mma(this),this.jp=c,this.mCa())};b.prototype.oe=function(){if(this.cf|| this.li)this.jp=k,this.mCa()};b.prototype.clear=function(){this.sb=b.vo;this.jp=null;if(this.cf||this.li)this.li&&(this.vN(this.li),this.li=null),this.cf&&(this.vN(this.cf),this.cf=null),this.P.release(this)};b.prototype.Yg=function(c){this.sb==b.vo||this.sb!=b.uo&&this.sb!=b.rL&&this.sb!=b.dR||(this.zn+=c,c=Math.min(1,this.zn/this.Rh),this.sb==b.uo?this.BT(c):this.sb==b.dR?this.FT(c):this.ET(c),this.zn{this.o(new n(e.zF,{model:b.model}))}))};e.prototype.vN=function(b){b.model&&(this.j.kQa(b.model),this.o(new n(e.qba,{model:b.model})))};e.oc="request frame";e.pba="model added";e.qba= "model removed";e.zF="model start";e.yF="model show";e.xF="model hide";e.$aa="all pending models hidden";return e}); define("tdv/player/view/model3d/controller/LoadController",["require","tdv/utils","tdv/events/EventDispatcher","tdv/constants/EventName"],function(a){var m=a("tdv/utils"),h=a("tdv/events/EventDispatcher"),n=a("tdv/constants/EventName");a=m.extend(h,function(g,k){h.call(this);this.P=g;this.j=k;this.xh=null});a.prototype.clear=function(){this.stop();this.j=null};a.prototype.load=function(g){g!=this.xh&&(this.stop(),this.j.zgb(g)?(this.rGa(g),this.M5(g)):(this.xh=g,this.xh.set("opacity",0),this.vYa(), this.j.$Ha(this.xh)))};a.prototype.stop=function(){this.xh&&(this.Bla(),this.j.kQa(this.xh),this.xh=null)};a.prototype.aN=function(){this.uGa();this.rGa(this.xh)};a.prototype.Pe=function(){this.xh.c8(n.VF)&&this.aN();this.Bla();var g=this.xh;this.xh=null;this.P.set("progressVisible",!1);this.M5(g)};a.prototype.yh=function(){this.Bla();this.xh=null;this.P.set("progressVisible",!1)};a.prototype.Gj=function(g){this.P.xa({progressPercent:g.data.percent,progressVisible:!0})};a.prototype.yYa=function(){this.xh.bind(n.VF, this.aN,this,!0)};a.prototype.uGa=function(){this.xh.h(n.VF,this.aN,this,!0)};a.prototype.vYa=function(){this.yYa();this.xh.bind(n.ia,this.Pe,this,!0);this.xh.bind(n.yc,this.Gj,this,!0);this.xh.bind(n.$c,this.yh,this,!0)};a.prototype.Bla=function(){this.uGa();this.xh.h(n.ia,this.Pe,this,!0);this.xh.h(n.yc,this.Gj,this,!0);this.xh.h(n.$c,this.yh,this,!0)};a.prototype.rGa=function(g){this.o(n.VF,{model:g})};a.prototype.M5=function(g){this.o(n.ia,{model:g})};a.prototype.Dhb=function(){return this.xh&& this.xh.c8(n.VF)};a.ota=n.VF;a.lta=n.ia;return a}); define("tdv/player/view/model3d/controller/PlaybackController","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/constants/PlaybackState".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/constants/PlaybackState"),e=m.extend(g,function(){g.call(this);this.Fa=null;this.I=k.ca});e.prototype.start=function(b){this.Fa=b;this.Fa.bind(h.L("camera"),this.dia,this,!0);this.Fa.bind(h.L("state"), this.Eia,this,!0);this.Fa.bind(h.L("currentTime"),this.I3,this,!0);this.Fa.bind(h.L("duration"),this.I3,this,!0);this.Eia();this.dia()};e.prototype.end=function(){this.stop();this.Ac&&(this.Ac.h(h.L("state"),this.CT,this,!0),this.Ac=null);this.Fa&&(this.Fa.h(h.L("camera"),this.dia,this,!0),this.Fa.h(h.L("state"),this.Eia,this,!0),this.Fa.h(h.L("currentTime"),this.I3,this,!0),this.Fa.h(h.L("duration"),this.I3,this,!0),this.Fa=null)};e.prototype.clear=function(){this.end()};e.prototype.play=function(){this.Fa&& this.Fa.set("state",k.PLAYING)};e.prototype.pause=function(){this.Fa&&this.Fa.set("state",k.Zb)};e.prototype.stop=function(){this.Fa&&this.Fa.set("state",k.ca)};e.prototype.setTime=function(b){this.Fa&&this.Fa.set("currentTime",b)};e.prototype.getTime=function(){return this.Fa&&this.Fa.get("currentTime")||void 0};e.prototype.Eia=function(){var b=this.Fa.get("state");this.I!=b&&(this.I=b,this.Ac&&this.Ac.set("state",b),this.o(new n(e.gd,{state:this.I})))};e.prototype.I3=function(){this.o(new n(e.Ok, {model:this.Fa,time:this.Fa.get("currentTime"),duration:this.Fa.get("duration")}));this.CT()};e.prototype.dia=function(){this.Ac&&this.Ac.h(h.L("state"),this.CT,this,!0);(this.Ac=this.Fa.get("camera"))&&this.Ac.bind(h.L("state"),this.CT,this,!0);this.CT()};e.prototype.CT=function(){this.Fa.get("duration")===0&&this.Fa.set("state",this.Ac?this.Ac.get("state"):k.ca)};e.gd="playback state change";e.Ok="time change";return e}); define("tdv/player/view/model3d/controller/Controller","require tdv/utils tdv/constants/PlaybackState tdv/events/Event tdv/events/EventDispatcher tdv/player/view/model3d/controller/DisplayController tdv/player/view/model3d/controller/LoadController tdv/player/view/model3d/controller/PlaybackController".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/PlaybackState"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/model3d/controller/DisplayController"), e=a("tdv/player/view/model3d/controller/LoadController"),b=a("tdv/player/view/model3d/controller/PlaybackController"),c=m.extend(g,function(d,f){g.call(this);this.P=d;this.j=f;this.j.set("visible",!1);this.Fe=new e(this.P,this.j);this.Ya=new k(this.P,this.j);this.Ua=new b(this.j);this.Fe.bind(e.ota,this.dCa,this,!0);this.Fe.bind(e.lta,this.dz,this,!0);this.Ya.bind(k.xF,this.YC,this,!0);this.Ya.bind(k.yF,this.hn,this,!0);this.Ya.bind(k.zF,this.ST,this,!0);this.Ya.bind(k.pba,this.aCa,this,!0);this.Ya.bind(k.qba, this.eCa,this,!0);this.Ya.bind(k.$aa,this.$Aa,this,!0);this.Ua.bind(b.gd,this.Mf,this,!0);this.Ua.bind(b.Ok,this.Es,this,!0)});c.prototype.clear=function(){this.Fe.clear();this.Ya.clear();this.Ua.clear();this.Fe.h(e.ota,this.dCa,this);this.Fe.h(e.lta,this.dz,this);this.Ya.h(k.xF,this.YC,this);this.Ya.h(k.yF,this.hn,this);this.Ya.h(k.zF,this.ST,this);this.Ya.h(k.pba,this.aCa,this);this.Ya.h(k.qba,this.eCa,this);this.Ya.h(k.$aa,this.$Aa,this);this.Ua.h(b.gd,this.Mf,this);this.Ua.h(b.Ok,this.Es,this); this.P=this.j=this.Ua=this.Ya=this.Fe=null};c.prototype.$kb=function(d){this.j.set("visible",!0);this.Fe.load(d)};c.prototype.bB=function(){this.Fe.Dhb()&&this.Fe.stop();this.Ya.oe();this.Ua.end()};c.prototype.play=function(){this.Ua.play()};c.prototype.stop=function(){this.Ua.stop()};c.prototype.pause=function(){this.Ua.pause()};c.prototype.setTime=function(d){this.Ua.setTime(d)};c.prototype.getTime=function(){return this.Ua.getTime()};c.prototype.oX=function(){return this.Ya.oX()};c.prototype.dCa= function(d){this.Ya.display(d.data.model)};c.prototype.dz=function(){};c.prototype.aCa=function(d){this.Ua.start(d.data.model)};c.prototype.ST=function(d){d=d.data.model;this.j.set("visible",!0);this.o(new n(c.zF,{model:d}))};c.prototype.eCa=function(){};c.prototype.hn=function(d){d=d.data.model;d.get("autoplay")&&d.get("state")!=h.PLAYING&&d.set("state",h.PLAYING);this.o(new n(c.yF,{model:d}))};c.prototype.YC=function(d){this.o(new n(c.xF,{model:d.data.model}))};c.prototype.$Aa=function(){this.j.set("visible", !1)};c.prototype.Es=function(d){this.o(new n(c.rba,d.data))};c.prototype.Mf=function(d){this.o(new n(c.gd,{state:d.data.state}))};c.yF="modelShow";c.xF="modelHide";c.Fob="modelEnd";c.zF="modelStart";c.rba="videoTimeChange";c.gd="playbackStateChange";return c}); define("tdv/player/view/webgl/ecs/Component",["require","exports"],function(){return function(){function a(){}a.prototype.clear=function(){};a.zb=function(m){this.id=m+"Component";this.aa="!"+this.id};a.Ob=function(m){this.zb(m+"SystemState");this.D8=!0};a.D8=!1;return a}()}); define("tdv/player/view/webgl/components",["require","exports","tdv/player/view/webgl/ecs/Component","three.mod"],function(a,m,h,n){var g;(function(k){var e=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.Rf=null;I.yQa=null;I.kE=!0;I.enabled=!0;I.locked=!1;I.PO=!0;I.pf=void 0;I.Jk=0;return I}P(M,J);return M}(h);k.Bob=e;var b=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.bias=0;I.lKa=500;I.intensity=1;I.scale=100;I.gNa=25;I.INa=0;I.cna=4;I.output= null;return I}P(M,J);return M}(h);k.LK=b;b.zb("AmbientOcclusionEffect");var c=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.color="#ffffff";I.intensity=1;return I}P(M,J);return M}(h);k.AmbientLight=c;c.zb("AmbientLight");var d=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.light=null;return I}P(M,J);return M}(h);k.wB=d;d.Ob("AmbientLight");var f=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.properties=null;return I}P(M, J);return M}(h);k.Animation=f;f.zb("Animation");var l=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.mx=l;l.Ob("Animation");var p=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.RKa=!1;I.fSa=!1;I.sZ=2;return I}P(M,J);return M}(h);k.oF=p;p.zb("AntialiasEffect");var q=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.mF=q;q.zb("ARAnchor");var r=function(J){function M(){var I= J!==null&&J.apply(this,arguments)||this;I.anchor=null;I.fd=null;I.BJ=[];return I}P(M,J);return M}(h);k.lx=r;r.Ob("ARAnchorSystemState");var t=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.locked=!0;I.wb=null;return I}P(M,J);return M}(e);k.vB=t;t.zb("ARControls");var u=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Ar=u;u.Ob("ARControlsSystemState");var v=function(J){function M(){return J!==null&&J.apply(this, arguments)||this}P(M,J);return M}(h);k.Wf=v;v.Ob("ARPerspectiveCamera");var w=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.v=[];I.renderOrder=null;I.M=null;return I}P(M,J);return M}(h);k.ko=w;w.zb("Area");var y=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.v=[];return I}P(M,J);return M}(h);k.xB=y;y.Ob("Area");var x=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.C6=[];return I}P(M,J);return M}(h);k.pF=x;x.Ob("AreaPoint"); var z=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.AB=z;z.zb("Beacon");var A=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.position=null;return I}P(M,J);return M}(h);k.BB=A;A.Ob("Beacon");var D=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.M=null;return I}P(M,J);return M}(h);k.Qp=D;D.zb("BeaconTracker");var F=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.position=null; return I}P(M,J);return M}(h);k.sx=F;F.Ob("BeaconTracker");var C=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.Ea=null;I.rotate=!1;return I}P(M,J);return M}(h);k.QK=C;C.zb("CameraOffsetTransform");var B=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.Ea=null;return I}P(M,J);return M}(h);k.kUa=B;B.Ob("CameraOffsetTransform");var H=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.properties=null;return I}P(M,J);return M}(h); k.RK=H;H.zb("CameraSequence");var E=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.tx=E;E.Ob("CameraSequence");var G=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.source=null;I.uK=null;I.opacity=1;I.isSprite=!1;I.hidden=!1;I.depthTest=!0;return I}P(M,J);return M}(h);k.Kf=G;G.zb("CanvasMaterial");var N=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J); return M}(h);k.DB=N;N.Ob("CanvasMaterial");var O=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.sF=O;O.zb("ClippingRect");var R=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.EB=R;R.Ob("ClippingRect");var Q=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.LQ=Q;Q.zb("Data");var K=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.target=null; return I}P(M,J);return M}(h);k.DirectionalLight=K;K.zb("DirectionalLight");var L=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.zp=null;return I}P(M,J);return M}(h);k.Cr=L;L.Ob("DirectionalLight");var U=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.M=null;I.direction=null;I.min=null;return I}P(M,J);return M}(h);k.vx=U;U.zb("Draggable");var T=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.Mna=null;return I}P(M,J);return M}(h); k.FB=T;T.Ob("Draggable");var Y=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.Gm=Y;Y.zb("Dragging");var aa=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(e);k.MF=aa;aa.zb("FirstPersonControls");var ba=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Jr=ba;ba.Ob("FirstPersonControls");var ea=function(J){function M(){var I=J!==null&&J.apply(this, arguments)||this;I.color="#ffffff";I.opacity=1;I.height=0;I.radius=1;I.renderOrder=0;return I}P(M,J);return M}(h);k.Kr=ea;ea.zb("Floor");var ia=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.floor=null;return I}P(M,J);return M}(h);k.zx=ia;ia.Ob("Floor");var da=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.distance=0;I.GX=!1;I.x=0;I.y=0;I.z=0;return I}P(M,J);return M}(h);k.Ax=da;da.zb("FloorTransform");var V=function(J){function M(){var I=J!==null&& J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.vu=V;V.Ob("FloorTransform");var X=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(e);k.NF=X;X.zb("FlyOverControls");var S=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Lr=S;S.Ob("FlyOverControls");var W=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.geometry=null;return I}P(M,J);return M}(h); k.Geometry=W;W.zb("Geometry");var Z=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.bJa="#ffffff";I.depthTest=!0;I.Hna=10;I.$La="#ffffff";I.size=10;return I}P(M,J);return M}(h);k.wu=Z;Z.zb("Grid");var ca=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.grid=null;return I}P(M,J);return M}(h);k.KB=ca;ca.Ob("Grid");var fa=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.group=null;return I}P(M,J);return M}(h);k.Group=fa;fa.zb("Group"); var ja=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.group=null;return I}P(M,J);return M}(h);k.YK=ja;ja.Ob("Group");var ha=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.properties=null;I.ww=null;I.M=null;I.Ap=null;I.priority=void 0;I.isSprite=!1;I.nJa=null;return I}P(M,J);return M}(h);k.Ni=ha;ha.zb("ImageMaterial");var ka=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.MB=ka; ka.Ob("ImageMaterial");var la=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.vQa=7;I.intensity=1;return I}P(M,J);return M}(h);k.OQ=la;la.zb("MotionBlurEffect");var oa=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.line=null;I.renderOrder=0;return I}P(M,J);return M}(h);k.Line=oa;oa.zb("Line");var pa=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.line=null;return I}P(M,J);return M}(h);k.PB=pa;pa.Ob("Line");var ma=function(J){function M(){var I= J!==null&&J.apply(this,arguments)||this;I.color="#ffffff";I.opacity=1;I.width=1;I.transparent=!0;I.depthTest=!0;return I}P(M,J);return M}(h);k.ei=ma;ma.zb("LineMaterial");var na=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.OB=na;na.Ob("LineMaterial");var va=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.F=null;I.position=null;return I}P(M,J);return M}(h);k.yu=va;va.zb("LineToTransform");var wa=function(J){function M(){return J!== null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.QB=wa;wa.Ob("LineToTransform");var xa=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.material=null;return I}P(M,J);return M}(h);k.Material=xa;xa.zb("Material");var ya=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.name=null;return I}P(M,J);return M}(h);k.Cx=ya;ya.zb("MaterialVariant");var za=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M, J);return M}(h);k.Pr=za;za.Ob("MaterialVariant");var Aa=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.Ke=null;I.renderOrder=0;return I}P(M,J);return M}(h);k.Mesh=Aa;Aa.zb("Mesh");var Ba=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.Ke=null;return I}P(M,J);return M}(h);k.Au=Ba;Ba.Ob("Mesh");var Ca=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.properties=null;I.Gpa=null;I.MPa=null;I.Ap=null;I.M=null;I.Hoa=null;I.eb=null; return I}P(M,J);return M}(h);k.Oi=Ca;Ca.zb("Model");var Da=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Dx=Da;Da.Ob("Model");var Ea=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.SF=Ea;Ea.zb("NotCollidable");var Fa=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.vVa=Fa;Fa.Ob("NotCollidable");var Ga=function(J){function M(){var I=J!==null&& J.apply(this,arguments)||this;I.qsa=!0;I.rsa=!0;return I}P(M,J);return M}(h);k.Qr=Ga;Ga.zb("NotSelectable");var Ha=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.TF=Ha;Ha.Ob("NotSelectable");var Ia=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.sa=null;return I}P(M,J);return M}(h);k.Object3D=Ia;Ia.zb("Object3D");var Ja=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.id=null;I.container=null;return I} P(M,J);return M}(h);k.fL=Ja;Ja.zb("Object3DId");var Ka=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Ex=Ka;Ka.Ob("Object3DId");var La=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.wW=void 0;I.castShadow=void 0;I.receiveShadow=void 0;I.opacity=1;I.DW=void 0;I.M=null;return I}P(M,J);return M}(h);k.gi=La;La.zb("ObjectTransform");var Ma=function(J){function M(){return J!==null&&J.apply(this,arguments)||this} P(M,J);return M}(h);k.RB=Ma;Ma.Ob("ObjectTransform");var Na=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(e);k.UF=Na;Na.zb("OrbitControls");var Oa=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Rr=Oa;Oa.Ob("OrbitControls");var Pa=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.width=100;I.height=100;return I}P(M,J);return M}(h);k.OrthographicCamera=Pa;Pa.zb("OrthographicCamera"); var Qa=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.camera=null;I.width=void 0;I.height=void 0;return I}P(M,J);return M}(h);k.Bu=Qa;Qa.Ob("OrthographicCamera");var Ra=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.F=null;I.attach=!1;I.id=null;return I}P(M,J);return M}(h);k.pb=Ra;Ra.zb("Parent");var Sa=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.parent=null;I.ge=null;I.id=void 0;I.attach=!1;return I}P(M,J);return M}(h); k.Du=Sa;Sa.Ob("Parent");var Ta=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.width=100;I.height=100;I.Mk=void 0;I.Wd=void 0;I.fov=75;I.near=.01;I.far=100;I.Vma=!1;I.DIa=0;I.nj=!1;return I}P(M,J);return M}(h);k.PerspectiveCamera=Ta;Ta.zb("PerspectiveCamera");var Ua=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.camera=null;I.yl=null;I.scene=null;I.boundingBox=null;I.dna=null;I.J9=!1;I.width=void 0;I.height=void 0;I.fov=void 0;I.Wd=void 0;I.Mk=void 0; I.near=void 0;I.far=void 0;return I}P(M,J);return M}(h);k.Sk=Ua;Ua.Ob("PerspectiveCamera");var Va=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.Le=1;I.Ye=1;I.Gh=1;I.scale=1;I.oE=void 0;I.pE=void 0;return I}P(M,J);return M}(h);k.Tk=Va;Va.zb("PixelScaleTransform");var Wa=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.WF=Wa;Wa.Ob("PixelScaleTransform");var Xa=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this; I.renderOrder=null;return I}P(M,J);return M}(h);k.Plane=Xa;Xa.zb("Plane");var Ya=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.geometry=null;return I}P(M,J);return M}(h);k.UB=Ya;Ya.Ob("Plane");var Za=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.Ea=null;I.M=null;I.matrixWorld=null;I.origin=new n.Vector3;I.direction=new n.Vector3;I.Qb=new n.Vector2;I.pressed=!1;I.hx=!1;I.ona=!1;I.Ug=!1;I.enabled=!0;return I}P(M,J);return M}(h);k.zc=Za;Za.zb("Pointer"); var $a=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.F=null;I.rotate=!0;I.M=null;return I}P(M,J);return M}(h);k.Dl=$a;$a.zb("PointerOverTransform");var ab=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Eu=ab;ab.Ob("PointerOverTransform");var bb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Gx=bb;bb.Ob("PointerDragging");var cb=function(J){function M(){var I= J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Hx=cb;cb.Ob("PointerSelection");var db=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.aF=null;I.pZ=null;I.xZ=null;return I}P(M,J);return M}(h);k.oo=db;db.zb("ProjectedMaterial");var eb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.aF=null;I.sa=null;I.hQ=null;I.MA=null;I.material=null;I.CP=null;return I}P(M,J);return M}(h);k.Sr=eb;eb.Ob("ProjectedMaterial");var fb= function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.eb=null;I.renderer=null;I.KY=[];return I}P(M,J);return M}(h);k.wj=fb;fb.zb("Renderer");var gb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Fu=gb;gb.Ob("Renderer");var hb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.opacity=1;I.locked=!1;I.enabled=!0;I.scene=null;I.Ea=null;I.backgroundColor=null;I.Xma=null;I.FIa=null;I.environmentIntensity= 1;I.uKa=null;I.Wna=null;I.NKa=null;I.OKa=0;I.YW=0;I.outputColorSpace=null;I.L9=1;I.M=null;return I}P(M,J);return M}(h);k.Scene=hb;hb.zb("Scene");var ib=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.scene=null;I.manager=null;return I}P(M,J);return M}(h);k.Wp=ib;ib.Ob("Scene");var jb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.M=null;I.eF=!1;I.lt=!0;I.Xt=!1;I.pB=!1;return I}P(M,J);return M}(h);k.wd=jb;jb.zb("Selectable");var kb=function(J){function M(){return J!== null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.XF=kb;kb.Ob("Selectable");var lb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.color="#ffffff";I.opacity=1;I.depthTest=!0;I.doubleSided=!1;return I}P(M,J);return M}(h);k.xd=lb;lb.zb("SolidMaterial");var mb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Ix=mb;mb.Ob("SolidMaterial");var nb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)|| this;I.radius=1;I.widthSegments=32;I.heightSegments=16;I.renderOrder=0;return I}P(M,J);return M}(h);k.Sphere=nb;nb.zb("Sphere");var ob=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.YF=ob;ob.Ob("Sphere");var pb=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.SpotLight=pb;pb.zb("SpotLight");var qb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.light=null;I.zp=null;return I}P(M,J); return M}(h);k.Hu=qb;qb.Ob("SpotLight");var rb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.tO=.5;I.uO=.5;I.height=100;I.width=100;I.scale=1;I.sizeAttenuation=!1;I.Gi=null;I.renderOrder=0;return I}P(M,J);return M}(h);k.Sprite=rb;rb.zb("Sprite");var sb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Iu=sb;sb.Ob("Sprite");var tb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.bA= !1;I.positionX=0;I.positionY=0;I.positionZ=0;I.Yd=0;I.fd=0;I.Xe=0;I.mf="XYZ";I.scale=1;I.Le=1;I.Ye=1;I.Gh=1;I.translationX=0;I.translationY=0;I.Ze=0;I.easing=0;I.M=null;return I}P(M,J);return M}(h);k.ta=tb;tb.zb("Transform");var ub=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.bA=!1;I.positionX=0;I.positionY=0;I.positionZ=0;I.Yd=0;I.fd=0;I.Xe=0;I.mf="XYZ";I.scale=1;I.Le=1;I.Ye=1;I.Gh=1;I.translationX=0;I.translationY=0;I.Ze=0;return I}P(M,J);return M}(h);k.Gg=ub;ub.Ob("Transform"); var vb=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.aG=vb;vb.Ob("TransformEasing");var wb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.translate=!0;I.rotate=!0;I.scale=!0;I.M=null;return I}P(M,J);return M}(h);k.Hh=wb;wb.zb("TransformControls");var xb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.iaa=null;I.Fk=null;I.pe=null;return I}P(M,J);return M}(h);k.Lm=xb;xb.Ob("TransformControls");var yb= function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.pf=void 0;return I}P(M,J);return M}(e);k.Kx=yb;yb.zb("TransitionControls");var zb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Ku=zb;zb.Ob("TransitionControlsSystemState");var Ab=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.properties=null;I.Nsa=null;I.M=null;return I}P(M,J);return M}(h);k.qo=Ab;Ab.zb("VideoMaterial");var Bb=function(J){function M(){var I= J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.XB=Bb;Bb.Ob("VideoMaterial");var Cb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.Ea=null;I.width=null;I.height=null;return I}P(M,J);return M}(h);k.ro=Cb;Cb.zb("Viewport");var Db=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.Ea=null;I.properties=null;return I}P(M,J);return M}(h);k.cG=Db;Db.zb("ViewportPlaneGeometry");var Eb=function(J){function M(){var I=J!== null&&J.apply(this,arguments)||this;I.geometry=null;I.WRa=void 0;I.URa=void 0;I.Yh=void 0;I.verticalAlign=void 0;I.ME=void 0;I.zIndex=void 0;return I}P(M,J);return M}(h);k.Mx=Eb;Eb.Ob("ViewportPlaneGeometry");var Fb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.kPa=1;I.HMa=.5;I.color="#000000";I.opacity=.5;return I}P(M,J);return M}(h);k.lL=Fb;Fb.zb("VignetteEffect");var Gb=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(h);k.lg=Gb; Gb.Ob("XRPerspectiveCamera");var Hb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.locked=!0;return I}P(M,J);return M}(h);k.dG=Hb;Hb.zb("XRBasicControls");var Ib=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.Zp=Ib;Ib.Ob("XRBasicControlsSystemState");var Jb=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(e);k.mL=Jb;Jb.zb("XRDragControls");var Kb=function(J){function M(){var I= J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.$p=Kb;Kb.Ob("XRDragControlsSystemState");var Lb=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M,J);return M}(e);k.nL=Lb;Lb.zb("XRFlyControls");var Mb=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.aq=Mb;Mb.Ob("XRFlyControlsSystemState");var Nb=function(J){function M(){return J!==null&&J.apply(this,arguments)||this}P(M, J);return M}(e);k.oL=Nb;Nb.zb("XRTeleportControls");var Ob=function(J){function M(){var I=J!==null&&J.apply(this,arguments)||this;I.manager=null;return I}P(M,J);return M}(h);k.bq=Ob;Ob.Ob("XRTeleportControlsSystemState")})(g||(g={}));return g}); define("tdv/player/view/Flash",["require","exports","tdv/player/view/util/Device"],function(a,m,h){return function(){function n(){this.qa=document.createElement("div");this.qa.style.position="absolute";this.qa.style.left="0";this.qa.style.top="0";this.qa.style.right="0";this.qa.style.bottom="0";this.qa.style.zIndex="0";this.qa.style.pointerEvents="none";this.qa.style.backgroundColor="#ffffff";this.qa.style.display="none";this.qa.style.opacity="0";this.qa.style.transition="opacity 100ms ease-in-out"; this.Ypa=this.Ypa.bind(this);this.j9=this.j9.bind(this)}n.prototype.cc=function(){return this.qa};n.prototype.Ypa=function(){this.qa.removeEventListener("transitionend",this.Ypa);this.qa.style.opacity="0";this.qa.addEventListener("transitionend",this.j9)};n.prototype.j9=function(){this.qa.removeEventListener("transitionend",this.j9);this.qa.style.display="none"};n.prototype.o=function(){h.Yb()!==h.sj&&(this.qa.style.display="block",this.qa.style.opacity="0",this.qa.offsetHeight,this.qa.style.opacity= "1",this.qa.addEventListener("transitionend",this.xpb))};return n}()}); define("tdv/player/view/webgl/ecs/Entity",["require","exports"],function(){return function(){function a(m,h){this.T=m;this.tag=h||"Entity";this.id=this.tag+"_"+a.bY++;this.components={};this.BY={};this.Yra=0}a.prototype.getComponent=function(m){return this.components[m.id]};a.prototype.O=function(m,h){h===void 0&&(h=!1);var n=this.components[m.id];n?this.T.Mcb(this,m):h&&(n=this.N(m));return n};a.prototype.N=function(m){if(m.id in this.components)return this.components[m.id];m.D8&&this.Yra++;var h= this.components[m.id]=new m;this.T.Jbb(this,m);return h};a.prototype.ka=function(m){var h;h===void 0&&(h=!1);m.id in this.components&&(m.D8&&this.Yra--,h?this.components[m.id].clear():this.BY[m.id]=this.components[m.id],delete this.components[m.id],this.T.iQa(this,m,h))};a.prototype.Rcb=function(){for(var m in this.BY)this.BY[m].clear(),delete this.BY[m]};a.prototype.sjb=function(){for(var m in this.components){var h=this.components[m].constructor;h.D8||(this.BY[m]=this.components[m],delete this.components[m], this.T.iQa(this,h,!1))}};a.bY=0;return a}()});define("tdv/player/view/webgl/ecs/Query",["require","exports"],function(){return function(){function a(){this.id=a.x4a++;this.v=[]}a.x4a=0;return a}()}); define("tdv/player/view/webgl/ecs/SystemQuery",["require","exports"],function(){return function(){function a(m,h){this.id=a.bY++;this.name=h;this.v=m.v;this.fe=m.v.slice();this.Da=[];this.Xg=[]}a.prototype.Ncb=function(){this.fe.length&&(this.fe=[]);this.Da.length&&(this.Da=[]);this.Xg.length&&(this.Xg=[])};a.bY=0;return a}()}); define("tdv/player/view/webgl/ecs/QueriesManager",["require","exports","tdv/player/view/webgl/ecs/Query","tdv/player/view/webgl/ecs/SystemQuery"],function(a,m,h,n){function g(b){return typeof b=="string"?b:b.id}function k(b,c){b.indexOf(c)<0&&b.push(c);return b}function e(b,c){c=b.indexOf(c);c>=0&&b.splice(c,1);return b}return function(){function b(){this.Jgb={};this.J={};this.cK={};this.WO={};this.rA={};this.aK={};this.LW={};this.$J={}}b.prototype.na=function(c){this.LW[c.id]={};this.LW[c.aa]={}}; b.prototype.Jdb=function(c,d){c=this.q2a(c);d=new n(c,d);this.cK[c.id].push(d);return d};b.prototype.q2a=function(c){var d=this.Ofb(c);if(d=this.Jgb[d])return d;d=new h;this.J[d.id]=d;c=c.map(g);this.$J[d.id]={};for(var f=0;f=0;d--)this.RW[d].Yra==0&&(this.bK.mib(this.RW[d]),this.RW.splice(d,1))}};return e}()});define("tdv/player/view/webgl/ecs/System",["require","exports"],function(){return function(){function a(){this.order=0;this.T=null;this.name=""}a.prototype.initialize=function(m,h,n){n===void 0&&(n=0);this.T=m;this.name=h;this.order=n;return this};a.prototype.Yc=function(){};return a}()}); define("tdv/player/view/webgl/system/light/AmbientLightSystem","require exports three.mod tdv/player/view/util/Color tdv/player/view/webgl/components tdv/player/view/webgl/ecs/System".split(" "),function(a,m,h,n,g,k){a=function(e){function b(){var c=e.call(this)||this;c.xb=c.xb.bind(c);c.ib=c.ib.bind(c);c.eg=c.eg.bind(c);c.Ca=c.Ca.bind(c);return c}P(b,e);b.prototype.Yc=function(){this.mE.v.length&&this.mE.v.slice().forEach(this.xb);this.nE.v.length&&this.nE.v.slice().forEach(this.Ca);this.Ei.Da.length&& this.Ei.Da.slice().forEach(this.ib);this.Ei.v.length&&this.Ei.v.slice().forEach(this.eg)};b.prototype.xb=function(c){var d=c.N(g.wB),f=c.N(g.Object3D);d.light=f.sa=new h.AmbientLight;this.ib(c)};b.prototype.ib=function(c){var d=c.getComponent(g.AmbientLight);c=c.getComponent(g.wB).light;c.color=n.Ip(d.color).convertLinearToSRGB();c.intensity=d.intensity*Math.PI;c.visible=c.intensity>0};b.prototype.eg=function(){};b.prototype.Ca=function(c){var d=c.getComponent(g.wB).light;d.parent&&d.parent.remove(d); c.ka(g.wB);c.ka(g.Object3D)};b.J={};return b}(k);a.J={};a.J.mE=[g.AmbientLight,g.wB.aa];a.J.Ei=[g.AmbientLight,g.wB];a.J.nE=[g.AmbientLight.aa,g.wB];return a}); define("tdv/player/view/webgl/system/animation/AutoplayController",["require","tdv/constants/EventName","tdv/constants/PlaybackState"],function(a){function m(g,k,e,b,c){this.A=g;this.He=k;this.Zg=e;this.Gl=b;this.Na=c;this.f5()}var h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState");m.prototype.getAnimations=function(){return this.Zg};m.prototype.hX=function(){return this.Gl};m.prototype.frame=function(g){this.I==n.PLAYING&&(this.Gv(this.hi.time+g/1E3),this.Na())};m.prototype.dispose= function(){this.E5();this.ZB=this.lG=this.hi=this.Na=this.Gl=this.Zg=this.He=this.A=null};m.prototype.f5=function(){this.hi=new THREE.AnimationMixer(this.He);this.ac=0;this.Rb=!1;this.lG=[];this.ZB=[];for(var g=0;gthis.ac)this.A.get("loop")?this.A.set("currentTime",g%this.ac): (this.Rb=!0,this.A.o(h.Tb),this.A.set("state",n.ca));else{for(var k=this.Mm||0;g>this.ZB[k].end;)k++;for(;gk;e--)b=this.Zg[e],c=this.lG[e],b.set("currentTime",0),c.stop();this.Mm=k}else c=this.lG[this.Mm],gb;this.Zg[this.Mm].set("currentTime",k?2*b-g:g);this.Zg[this.Mm].set("currentDirection", k?"backward":"forward");this.A.set("currentTime",this.hi.time);this.Na()}};return m}); define("tdv/player/view/webgl/system/animation/NonAutoplayController",["require","tdv/constants/EventName","tdv/constants/PlaybackState"],function(a){function m(g,k,e,b,c){this.A=g;this.He=k;this.Zg=e;this.Gl=b;this.Na=c;this.uia=this.uia.bind(this);this.lia=this.lia.bind(this);this.f5()}var h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState");m.prototype.dispose=function(){this.E5();this.Na=this.Gl=this.Zg=this.He=this.A=null};m.prototype.getAnimations=function(){return this.Zg};m.prototype.hX= function(){return this.Gl};m.prototype.frame=function(g){this.Sx.length>0&&(this.hi.update(g/1E3),this.Sx.forEach(function(k){this.Lva(k)}.bind(this)),this.Na())};m.prototype.f5=function(){this.hi=new THREE.AnimationMixer(this.He);this.hi.addEventListener("loop",this.uia);this.hi.addEventListener("finished",this.lia);this.Rx=new Map;this.Q_=new Map;this.Sx=[];for(var g=0;g0&&k._loopCount%2==1&&e;g.set("currentDirection",e?"backward":"forward");k=k.time;var b=g.get("duration");e?g.set("currentTime",b-k):g.set("currentTime",k);this.Jva=!1};m.prototype.YN=function(g){if(!this.Jva){var k=this.Rx.get(g),e=g.get("animationDirection")=="alternate",b=g.get("currentDirection")=="backward"&&e,c=g.get("loop"),d=g.get("finalFrame")=="last",f=g.get("currentTime");g=g.get("duration");c?(k.loop=e?THREE.LoopPingPong: THREE.LoopRepeat,k.repetitions=Infinity,k.clampWhenFinished=!1):b?(k.loop=THREE.LoopPingPong,k.repetitions=2,k.clampWhenFinished=!1):(k.loop=THREE.LoopOnce,k.repetitions=1,k.clampWhenFinished=d||e);e=!e||k._loopCount!=-1&&k._loopCount%2!=0?e&&k._loopCount%2==1?g-f:f:b?g+g-f:f;k.time!=e&&(k.time=e,k.paused&&k.enabled&&e==0&&k.stop());this.Na()}};m.prototype.iBa=function(g){this.xGa(g.source)};m.prototype.xGa=function(g){var k=this.Rx.get(g),e=g.get("state");var b=this.Sx.indexOf(g)>=0?n.PLAYING:k.paused&& k.enabled&&k.time=0||(c.push(b),e.add(b),this.kaa(e))};k.Eqa=function(e,b){var c=e.userData.Ura;if(c){var d=c.indexOf(b);d<0||(c.splice(d,1),e.remove(b))}};k.kaa=function(e){var b=e.userData.Ura; if(b){var c=-e.far*.99;b.forEach(function(d){d.position.z=c})}};k.Ibb=function(e,b){var c=e.userData.Pra||(e.userData.Pra=[]);c.indexOf(b)>=0||(c.push(b),e.add(b),this.fTa(e))};k.fQa=function(e,b){var c=e.userData.Pra;if(c){var d=c.indexOf(b);d<0||(c.splice(d,1),e.remove(b))}};k.fTa=function(e){var b=e.userData.Pra;if(b){var c=e.far*.99;b.forEach(function(d){d.scale.x=d.scale.y=d.scale.z=c})}};k.Hbb=function(e,b){var c=e.userData.Ppa||(e.userData.Ppa=[]);c.indexOf(b)>=0||(c.push(b),e.add(b),this.eTa(e))}; k.eQa=function(e,b){var c=e.userData.Ppa;if(c){var d=c.indexOf(b);d<0||(c.splice(d,1),e.remove(b))}};k.eTa=function(e){var b=e.userData.Ppa;if(b){var c=e.near*1.001;b.forEach(function(d){d.position.z=-c;d.scale.x=d.scale.y=d.scale.z=2*Math.tan((e.aspect>1?n.yr(e.fov,e.aspect,1):e.fov)*this.ZF*.5)*c*2}.bind(this))}};k.tJ=function(e){if((e=this.Qc(e))&&e.parent){var b=this.XLa(e);if(b)return this.dY.setFromMatrixScale(e.parent.matrixWorld),b/Math.max(this.dY.x,this.dY.y,this.dY.z)}};k.XLa=function(e){if((e= this.Qc(e))&&e.parent){var b=this.pX(e);if(b){var c=this.tw(b);if(c)return e.matrixWorld.decompose(this.objectPosition,this.bib,this.dY),this.objectPosition.applyMatrix4(c.matrixWorldInverse),this.zi.setFromMatrixScale(c.matrixWorld),Math.abs(this.objectPosition.z)*2*Math.tan(c.fov*this.ZF/2)*Math.max(this.zi.x,this.zi.y,this.zi.z)/this.dE(b)}}};k.ZD=function(e,b){if(e.userData.id===b)return e;var c=null;if(e.children)for(var d=0;d=0&&(p.splice(p.indexOf(x),1),v.get("autoplay")?(q.push(x), r.push(v)):(t.push(x),u.push(v)))}.bind(this));this.A&&r.length==0&&p.length>0&&(r=p.map(function(v){if(this.S0.has(v))return this.S0.get(v);var w=new e;this.S0.set(v,w);return w}.bind(this)),q=p);h(this.Nm&&this.Nm.getAnimations()||[],r)&&h(this.Nm&&this.Nm.hX()||[],q)||(this.Nm&&(this.Nm.dispose(),this.Nm=null),r.length>0&&(this.Nm=new b(this.A,this.He,r,q,this.Na.bind(this))));h(this.ov&&this.ov.getAnimations()||[],u)&&h(this.ov&&this.ov.hX()||[],t)||(this.ov&&(this.ov.dispose(),this.ov=null), u.length>0&&(this.ov=new c(this.A,this.He,u,t,this.Na.bind(this))))};m.prototype.k7a=function(){(this.A&&this.A.get("animations")||[]).forEach(function(f){f.set("state",g.ca);f.set("currentTime",0)});this.S0.clear()};m.prototype.Na=function(){this.ih||(this.ih=!0,this.B.T.Qa())};m.Wa=function(f){f.N(k.mx).manager=new m(f)};m.ya=function(f){var l=f.getComponent(k.mx);l.manager.dispose();l.manager=null;f.ka(k.mx)};m.update=function(f){f.getComponent(k.mx).manager.update()};m.frame=function(f,l,p){f.getComponent(k.mx).manager.frame(l, p)};return m}); define("tdv/player/view/webgl/system/animation/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/animation/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/animation/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(k,e){this.jIa.v.length&&this.jIa.v.slice().forEach(g.Wa);this.animations.Da.length&& this.animations.Da.slice().forEach(function(b){g.update(b,k,e)});this.animations.v.length&&this.animations.v.slice().forEach(function(b){g.frame(b,k,e)});this.kIa.v.length&&this.kIa.v.slice().forEach(g.ya)};a.J={};a.J.jIa=[n.Animation,n.mx.aa];a.J.kIa=[n.Animation.aa,n.mx];a.J.animations=[n.Animation,n.mx];return a}); define("tdv/player/view/webgl/system/aranchor/System","require exports three.mod tdv/player/view/webgl/ecs/System tdv/player/view/webgl/components tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k){a=function(l){function p(){var q=l.call(this)||this;q.xb=q.xb.bind(q);q.ib=q.ib.bind(q);q.Ca=q.Ca.bind(q);return q}P(p,l);p.prototype.Yc=function(){this.sIa.v.length&&this.sIa.v.slice().forEach(this.xb);this.rIa.v.length&&this.rIa.v.slice().forEach(this.ib);this.tIa.v.length&&this.tIa.v.slice().forEach(this.Ca); this.uIa.v.length&&this.uIa.v.slice().forEach(this.Ca)};p.prototype.xb=function(q){q.N(g.lx);this.ib(q)};p.prototype.ib=function(q){var r=q.N(g.Object3D).sa,t=q.getComponent(g.lx);k.isPresenting&&k.Cm==k.El.Np?t.anchor&&t.anchor instanceof XRAnchor&&k.VI.has(t.anchor)?(r.visible=!0,r.matrixAutoUpdate=!1,q=k.VI.get(t.anchor),t.fd||(e.copy(k.Ec).applyMatrix4(d.copy(q).invert()).normalize(),c.setFromQuaternion(b.setFromUnitVectors(f,e),"YXZ"),t.fd=(new h.Matrix4).makeRotationY(c.y)),r.matrix.identity().multiply(q).multiply(t.fd), this.kna(t)):t.anchor&&t.anchor instanceof Promise?(r.visible=!1,this.Enb(t,r.parent)):(r.visible=!1,t.anchor=k.Ljb().then(function(u){t.anchor=u}).catch(function(u){console.error(u);t.anchor=null})):(r.visible=!0,r.matrixAutoUpdate=!0,r.matrix.identity(),this.fJa(t),this.kna(t))};p.prototype.Enb=function(q,r){if(r){for(;q.BJ.length>k.ud.length;)q.BJ.pop().removeFromParent();for(;q.BJ.length0)for(z=w;z=w;z-=x)A=r(z,v[z],v[z+1],A);A&&c(A,A.next)&&(t(A),A=A.next);return A}function m(v,w){if(!v)return v;w||(w=v);do{var y=!1;if(v.lSa||!c(v,v.next)&&b(v.Xd,v,v.next)!==0)v=v.next;else{t(v);v=w=v.Xd;if(v===v.next)break;y=!0}}while(y||v!==w);return w}function h(v,w,y,x,z,A,D){if(v){if(!D&& A){var F=v,C=F;do C.z===0&&(C.z=k(C.x,C.y,x,z,A)),C.Ut=C.Xd,C=C.Qn=C.next;while(C!==F);C.Ut.Qn=null;C.Ut=null;F=C;var B,H,E,G,N=1;do{C=F;var O=F=null;for(H=0;C;){H++;var R=C;for(B=E=0;B0||G>0&&R;)E!==0&&(G===0||!R||C.z<=R.z)?(B=C,C=C.Qn,E--):(B=R,R=R.Qn,G--),O?O.Qn=B:F=B,B.Ut=O,O=B;C=R}O.Qn=null;N*=2}while(H>1)}for(F=v;v.Xd!==v.next;){C=v.Xd;R=v.next;if(A)O=n(v,x,z,A);else a:{var Q=v;O=Q.Xd;G=Q.next;if(b(O,Q,G)>=0)O=!1;else{H=O.x;E=Q.x;N=G.x;B=O.y;Q=Q.y;var K=G.y, L=HE?H>N?H:N:E>N?E:N,Y=B>Q?B>K?B:K:Q>K?Q:K;for(G=G.next;G!==O;){if(G.x>=L&&G.x<=T&&G.y>=U&&G.y<=Y&&e(H,B,E,Q,N,K,G.x,G.y)&&b(G.Xd,G,G.next)>=0){O=!1;break a}G=G.next}O=!0}}if(O)w.push(C.Dh/y|0),w.push(v.Dh/y|0),w.push(R.Dh/y|0),t(v),F=v=R.next;else if(v=R,v===F){if(D)if(D===1){v=m(v);D=w;F=y;C=v;do R=C.Xd,O=C.next.next,!c(R,O)&&d(R,C,C.next,O)&&p(R,O)&&p(O,R)&&(D.push(R.Dh/F|0),D.push(C.Dh/F|0),D.push(O.Dh/F|0),t(C),t(C.next),C=v=O),C=C.next;while(C!== v);v=m(C);h(v,w,y,x,z,A,2)}else{if(D===2)a:{D=v;do{for(F=D.next.next;F!==D.Xd;){if(C=D.Dh!==F.Dh){C=D;R=F;if(O=C.next.Dh!==R.Dh&&C.Xd.Dh!==R.Dh){b:{O=C;do{if(O.Dh!==C.Dh&&O.next.Dh!==C.Dh&&O.Dh!==R.Dh&&O.next.Dh!==R.Dh&&d(O,O.next,C,R)){O=!0;break b}O=O.next}while(O!==C);O=!1}O=!O}if(O){if(O=p(C,R)&&p(R,C)){O=C;H=!1;E=(C.x+R.x)/2;N=(C.y+R.y)/2;do O.y>N!==O.next.y>N&&O.next.y!==O.y&&E<(O.next.x-O.x)*(N-O.y)/(O.next.y-O.y)+O.x&&(H=!H),O=O.next;while(O!==C);O=H}O=O&&(b(C.Xd,C,R.Xd)||b(C,R.Xd,R))||c(C, R)&&b(C.Xd,C,C.next)>0&&b(R.Xd,R,R.next)>0}C=O}if(C){v=q(D,F);D=m(D,D.next);v=m(v,v.next);h(D,w,y,x,z,A,0);h(v,w,y,x,z,A,0);break a}F=F.next}D=D.next}while(D!==v)}}else h(m(v),w,y,x,z,A,1);break}}}}function n(v,w,y,x){var z=v.Xd,A=v.next;if(b(z,v,A)>=0)return!1;var D=z.x,F=v.x,C=A.x,B=z.y,H=v.y,E=A.y,G=DF?D>C?D:C:F>C?F:C,R=B>H?B>E?B:E:H>E?H:E,Q=k(G,N,w,y,x);w=k(O,R,w,y,x);y=v.Ut;for(v=v.Qn;y&&y.z>=Q&&v&&v.z<=w;){if(y.x>=G&&y.x<=O&&y.y>=N&&y.y<=R&&y!==z&& y!==A&&e(D,B,F,H,C,E,y.x,y.y)&&b(y.Xd,y,y.next)>=0)return!1;y=y.Ut;if(v.x>=G&&v.x<=O&&v.y>=N&&v.y<=R&&v!==z&&v!==A&&e(D,B,F,H,C,E,v.x,v.y)&&b(v.Xd,v,v.next)>=0)return!1;v=v.Qn}for(;y&&y.z>=Q;){if(y.x>=G&&y.x<=O&&y.y>=N&&y.y<=R&&y!==z&&y!==A&&e(D,B,F,H,C,E,y.x,y.y)&&b(y.Xd,y,y.next)>=0)return!1;y=y.Ut}for(;v&&v.z<=w;){if(v.x>=G&&v.x<=O&&v.y>=N&&v.y<=R&&v!==z&&v!==A&&e(D,B,F,H,C,E,v.x,v.y)&&b(v.Xd,v,v.next)>=0)return!1;v=v.Qn}return!0}function g(v,w){return v.x-w.x}function k(v,w,y,x,z){v=(v-y)*z|0; w=(w-x)*z|0;v=(v|v<<8)&16711935;v=(v|v<<4)&252645135;v=(v|v<<2)&858993459;w=(w|w<<8)&16711935;w=(w|w<<4)&252645135;w=(w|w<<2)&858993459;return(v|v<<1)&1431655765|((w|w<<1)&1431655765)<<1}function e(v,w,y,x,z,A,D,F){return(z-D)*(w-F)>=(v-D)*(A-F)&&(v-D)*(x-F)>=(y-D)*(w-F)&&(y-D)*(A-F)>=(z-D)*(x-F)}function b(v,w,y){return(w.y-v.y)*(y.x-w.x)-(w.x-v.x)*(y.y-w.y)}function c(v,w){return v.x===w.x&&v.y===w.y}function d(v,w,y,x){var z=l(b(v,w,y)),A=l(b(v,w,x)),D=l(b(y,x,v)),F=l(b(y,x,w));return z!==A&&D!== F||z===0&&f(v,y,w)||A===0&&f(v,x,w)||D===0&&f(y,v,x)||F===0&&f(y,w,x)?!0:!1}function f(v,w,y){return w.x<=Math.max(v.x,y.x)&&w.x>=Math.min(v.x,y.x)&&w.y<=Math.max(v.y,y.y)&&w.y>=Math.min(v.y,y.y)}function l(v){return v>0?1:v<0?-1:0}function p(v,w){return b(v.Xd,v,v.next)<0?b(v,w,v.next)>=0&&b(v,v.Xd,w)>=0:b(v,w,v.Xd)<0||b(v,v.next,w)<0}function q(v,w){var y=new u(v.Dh,v.x,v.y),x=new u(w.Dh,w.x,w.y),z=v.next,A=w.Xd;v.next=w;w.Xd=v;y.next=z;z.Xd=y;x.next=y;y.Xd=x;A.next=x;x.Xd=A;return x}function r(v, w,y,x){v=new u(v,w,y);x?(v.next=x.next,v.Xd=x,x.next.Xd=v,x.next=v):(v.Xd=v,v.next=v);return v}function t(v){v.next.Xd=v.Xd;v.Xd.next=v.next;v.Ut&&(v.Ut.Qn=v.Qn);v.Qn&&(v.Qn.Ut=v.Ut)}function u(v,w,y){this.Dh=v;this.x=w;this.y=y;this.next=this.Xd=null;this.z=0;this.Qn=this.Ut=null;this.lSa=!1}return function(v,w,y){y=y||2;var x=w&&w.length,z=x?w[0]*y:v.length,A=a(v,0,z,y,!0),D=[];if(!A||A.next===A.Xd)return D;var F;if(x){var C=A;var B=y;A=[];var H;x=0;for(H=w.length;x=H.next.y&&H.next.y!==H.y&&(O=H.x+(G-H.y)*(H.next.x-H.x)/(H.next.y-H.y),O<=E&&O>N&&(N=O,B=H.x=H.x&&H.x>=Q&&E!==H.x&&e(GB.x)&&(U=H.x===B.x)){U=B;var T=H;U=b(U.Xd,U,T.Xd)<0&&b(T.next,U,U.next)<0}U&&(B=H,L=O)}H=H.next}while(H!==R)}else B=null}B&&(w=q(B,w),m(w,w.next),C=m(B,B.next))}A=C}if(v.length>80*y){var Y=F=v[0];var aa=x=v[1];for(C=y;CF&&(F=w),B>x&&(x=B);F=Math.max(F-Y,x-aa);F=F!==0?32767/F:0}h(A,D,y,Y,aa,F,0);return D}}); define("tdv/player/view/webgl/system/util/material/Util",["require","exports","three.mod"],function(a,m,h){return function(){function n(){}n.Efb=function(g){return g.userData.Ot||g.material};n.ND=function(g,k){if(g.material!=k&&g.userData.Ot!=k){var e=g.userData.WX,b=g.userData.ypa;this.GY(g);g.material=k;b?this.DJa(g):e&&this.Vna(g);g.needsUpdate=!0}};n.Vna=function(g,k){k===void 0&&(k=null);g.userData.WX||(g.userData.WX=!0,g.userData.Ot=g.material,g.material=k||this.cdb(g.material))};n.GY=function(g){g.userData.WX&& (this.heb(g.material),g.material=g.userData.Ot,delete g.userData.Ot,delete g.userData.WX,delete g.userData.ypa)};n.nnb=function(g){if(g.userData.WX){var k=g.userData.Ot;g=g.material;g.side=k.side;g.depthTest=k.depthTest;g.map&&k.map&&(g.map.colorSpace=k.map.colorSpace);g.emissiveMap&&k.emissiveMap&&(g.emissiveMap.colorSpace=k.emissiveMap.colorSpace)}};n.DJa=function(g){this.qgb(g)||(this.GY(g),this.Vna(g,this.adb(g.material)),g.userData.ypa=!0)};n.qgb=function(g){return!(!g.userData.ypa&&g.material&& !this.v8(g.material))};n.v8=function(g){return Array.isArray(g)?!!g.every(function(k){return n.v8(k)}):g?!(g.isMeshPhysicalMaterial||g.isMeshStandardMaterial):!1};n.adb=function(g){return Array.isArray(g)?g.map(function(k){return n.oJa(k)}):g?this.oJa(g):g};n.oJa=function(g){return(new h.MeshBasicMaterial).copy(g)};n.cdb=function(g){return Array.isArray(g)?g.map(function(k){return k.clone()}):g?g.clone():g};n.heb=function(g){Array.isArray(g)?g.forEach(function(k){k.dispose()}):g&&g.dispose()};return n}()}); define("tdv/player/view/webgl/system/area/System","require tdv/utils tdv/constants/EventName tdv/player/view/util/geo/Tessellate tdv/player/view/webgl/ecs/System tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/system/util/material/Util".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/view/util/geo/Tessellate"),g=a("tdv/player/view/webgl/ecs/System"),k=a("tdv/player/view/webgl/components"),e=a("tdv/player/view/webgl/system/util/entity/Util"), b=a("tdv/player/view/webgl/system/util/material/Util");a=m.extend(g,function(){g.apply(this,arguments);this.xb=this.xb.bind(this);this.ib=this.ib.bind(this);this.Ca=this.Ca.bind(this);this.naa=this.naa.bind(this)});a.prototype.Yc=function(){this.wIa.v.length&&this.wIa.v.slice().forEach(this.xb);this.vIa.Da.length&&this.hnb(this.vIa.Da.slice());this.areas.Da.length&&this.areas.Da.slice().forEach(this.ib);this.xIa.v.length&&this.xIa.v.slice().forEach(this.Ca);this.yIa.v.length&&this.yIa.v.slice().forEach(this.Ca)}; a.prototype.xb=function(E){E.N(k.xB);this.ib(E)};a.prototype.ib=function(E){this.Anb(E);this.ho(E)};a.prototype.hnb=function(E){var G=[];E.forEach(function(N){N.getComponent(k.pF).C6.forEach(function(O){G.indexOf(O)===-1&&G.push(O)})});G.forEach(this.naa)};a.prototype.Anb=function(E){this.Lnb(E);this.naa(E)};a.prototype.Lnb=function(E){var G=E.getComponent(k.ko),N=G&&G.v||[],O=(G=E.getComponent(k.xB))&&G.v||[];O.forEach(function(R){if(N.indexOf(R)===-1){var Q=R.getComponent(k.pF).C6.filter(function(K){return K!== K});Q.length==0?R.ka(k.pF):R.O(k.pF).C6=Q}});N.forEach(function(R){O.indexOf(R)===-1&&R.O(k.pF,!0).C6.push(E)})};var c=new THREE.Matrix4,d=[];a.prototype.naa=function(E){var G=E.getComponent(k.ko);for(G=G&&G.v||[];d.length1E-4});G=this.Wfb(N);if(G.length===0)this.zxa(E),this.jGa(E);else{this.x8a(E,G.length*3);this.Nnb(E, d,G);c.copy(E.getComponent(k.Object3D).sa.matrixWorld).invert();d.forEach(function(L){L.applyMatrix4(c)});E=E.getComponent(k.Geometry);for(var O=E.geometry.attributes.position.array,R=0,Q=0;RMath.PI*.5&&(N=Math.PI-N);if(N>x)return[]}p.copy(E[1]).sub(E[0]).normalize();q.copy(f.normal).cross(p).normalize();G=[];for(O=0;O=0&&b.splice(c,1);this.dOa["delete"](e);e.ka(g.sx)};a.prototype.Cra=function(e){e.N(g.BB).position=new THREE.Vector3;this.cOa.set(e,k.Qc(e));var b=this.EW.get(e.T);b||this.EW.set(e.T,b=[]);b.indexOf(e)<0&&b.push(e)};a.prototype.baa=function(e){var b= this.EW.get(e.T),c=b.indexOf(e);c>=0&&b.splice(c,1);this.cOa["delete"](e);e.ka(g.BB)};return a}); define("tdv/player/view/webgl/system/camera/System","require tdv/utils tdv/constants/EventName tdv/player/view/webgl/ecs/System tdv/player/view/webgl/components tdv/player/view/util/geo/Fov tdv/player/view/util/XR tdv/player/view/webgl/system/util/entity/Util".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/view/webgl/ecs/System"),g=a("tdv/player/view/webgl/components"),k=a("tdv/player/view/util/geo/Fov"),e=a("tdv/player/view/util/XR"),b=a("tdv/player/view/webgl/system/util/entity/Util"); a=m.extend(n,function(){n.apply(this,arguments);this.Fra=this.Fra.bind(this);this.Gra=this.Gra.bind(this);this.paa=this.paa.bind(this);this.qaa=this.qaa.bind(this);this.bsa=this.bsa.bind(this);this.csa=this.csa.bind(this);e.M.bind(h.V,this.Ta,this,!0)});a.prototype.Yc=function(){this.iPa.v.length&&this.iPa.v.slice().forEach(this.Fra);this.tPa.v.length&&this.tPa.v.slice().forEach(this.Gra);this.UJ.Da.length&&this.UJ.Da.slice().forEach(this.paa);this.Rt.Da.length&&this.Rt.Da.slice().forEach(this.qaa); this.jPa.v.length&&this.jPa.v.slice().forEach(this.bsa);this.uPa.v.length&&this.uPa.v.slice().forEach(this.csa)};a.prototype.Ta=function(){this.Rt.v.forEach(function(q){q.O(g.PerspectiveCamera)})};a.prototype.Fra=function(q){var r=q.O(g.OrthographicCamera),t=q.N(g.Bu);q.N(g.Object3D).sa=t.camera=r.camera=new THREE.OrthographicCamera;this.paa(q)};a.prototype.Gra=function(q){var r=q.O(g.PerspectiveCamera),t=q.N(g.Sk);t.boundingBox=new THREE.Box3;t.J9=!0;q.N(g.Object3D).sa=t.camera=r.camera=new THREE.PerspectiveCamera; this.qaa(q)};a.prototype.paa=function(q){var r=q.getComponent(g.OrthographicCamera);q=q.getComponent(g.Bu);q.width=r.width;q.height=r.height;q=q.camera;q.left=r.width*-.5;q.right=r.width*.5;q.top=r.height*.5;q.bottom=r.height*-.5;q.updateProjectionMatrix()};a.prototype.qaa=function(q){var r=q.getComponent(g.PerspectiveCamera),t=q.getComponent(g.Sk);r.nj&&e.Ag?(q.N(e.Cm==e.El.Yp?g.lg:g.Wf),t.width=e.framebufferWidth?e.framebufferWidth*.5:r.width,t.height=e.framebufferHeight||r.height,q=t.yl=e.Ag.xr.getCamera(), q.aspect=t.width/t.height,q.fov=t.fov=q&&q.cameras.length?Math.atan2(1,q.cameras[0].projectionMatrix.elements[5])*2*f:r.fov,q.near=t.near=.1,q.far=t.far=1E3,b.kaa(q)):(q.ka(g.Wf),q.ka(g.lg),t.fov=r.fov,t.Wd=r.Wd,t.Mk=r.Mk,t.width=r.width,t.height=r.height,t.yl=null,q=t.camera,q.aspect=t.width/t.height,q.fov=r.Wd?k.um(r.Wd,t.width,t.height):r.Mk?r.Mk:t.width>t.height?k.um(t.fov,t.width,t.height):t.fov,q.near=t.near=r.near,q.far=t.far=r.far,b.kaa(q),t.camera.updateProjectionMatrix())};a.prototype.bsa= function(q){var r=q.getComponent(g.Bu);r.camera.parent&&r.camera.parent.remove(r.camera);r.camera=null;q.ka(g.Bu);q.ka(g.Object3D)};a.prototype.csa=function(q){var r=q.getComponent(g.Sk),t=r.camera;e.aqb&&t.parent&&t.parent.remove(t);r.camera=null;q.ka(g.Sk);q.ka(g.Object3D)};a.J={};a.J.iPa=[g.OrthographicCamera,g.Bu.aa];a.J.jPa=[g.OrthographicCamera.aa,g.Bu];a.J.tPa=[g.PerspectiveCamera,g.Sk.aa];a.J.uPa=[g.PerspectiveCamera.aa,g.Sk];a.J.UJ=[g.OrthographicCamera,g.Bu];a.J.Rt=[g.PerspectiveCamera, g.Sk];a.MK=m.extend(n,function(){n.apply(this,arguments);this.oqa=this.oqa.bind(this)});a.MK.prototype.Yc=function(){this.Rt.v.length&&this.Rt.v.slice().forEach(this.oqa)};a.MK.prototype.oqa=function(q){var r=q.getComponent(g.PerspectiveCamera);if(r.Vma){var t=q.getComponent(g.Sk),u=t.scene||b.Sf(q),v=t.camera;if(u&&v&&b.pX(v)===u){var w=Number.POSITIVE_INFINITY,y=Number.NEGATIVE_INFINITY;if(r.nj)w=.1,y=1E3;else{var x=!1;t.J9&&(t.boundingBox=this.FZa(u,t.boundingBox),t.J9=!1,x=!0);u=t.boundingBox; u=[[u.min.x,u.max.x],[u.min.y,u.max.y],[u.min.z,u.max.z]];for(var z=0;z<2;z++)for(var A=0;A<2;A++)for(var D=0;D<2;D++)p.set(u[0][z],u[1][A],u[2][D]).applyMatrix4(v.matrixWorldInverse),-p.z>y&&(y=-p.z),-p.z0?w:y>20?.1:.01}if(Math.abs(r.near-w)>d||Math.abs(r.far-y)>d)v.far=t.far=r.far=y,v.near=t.near=r.near=w,b.kaa(v),b.fTa(v),b.eTa(v),v.updateProjectionMatrix();x||t.dna||(t.dna=setTimeout(function(){t.dna= null;t.J9=!0;q.T&&q.T.Qa()},c))}}};a.MK.prototype.FZa=function(q,r){r||(r=new THREE.Box3);r.makeEmpty();q.traverse(function(t){if(t.boundingBox)var u=t.boundingBox;else{if(!t.geometry||t.isSprite||t.zw||t.material&&!t.material.visible)return;t.updateWorldMatrix(!1,!1);u=t.geometry;u.boundingBox===null&&u.computeBoundingBox();u=u.boundingBox}l.copy(u);l.applyMatrix4(t.matrixWorld);r.union(l)});return r};var c=500,d=1E-4,f=180/Math.PI,l=new THREE.Box3,p=new THREE.Vector3;a.MK.J={};a.MK.J.Rt=[g.PerspectiveCamera, g.Sk];return a}); define("tdv/player/view/webgl/system/cameraControls/ARBehaviour","require exports tdv/player/view/util/XR tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/components three.mod".split(" "),function(a,m,h,n,g,k){a=function(){function r(t){this.locked=!0;this.Di=!1;this.pf=1;this.F=t;this.update()}r.prototype.update=function(){var t=this.F.getComponent(g.vB),u=(t===null||t===void 0?void 0:t.locked)||!1;!u&&this.locked&&(this.Di=!0);this.locked=u;this.pf=(t===null||t===void 0?void 0: t.pf)||1;this.properties=t.properties;this.Di&&h.a$();this.locked||h.setScale(this.pf)};r.prototype.frame=function(){this.locked||(this.Di=!1,this.XI())};r.prototype.XI=function(){if(h.isPresenting){var t=this.F.getComponent(g.vB);t=t.wb&&n.Qc(t.wb);p.compose(h.Ec,h.ug,f);t&&p.premultiply(l.copy(t.matrixWorld).decompose(c,b,d).compose(c,b,f).invert());p.decompose(c,b,d);this.properties.set("x",c.x);this.properties.set("y",c.y);this.properties.set("z",c.z);e.setFromQuaternion(b);this.properties.set("yaw", -e.y*q);this.properties.set("pitch",e.x*q);this.properties.set("roll",e.z*q);this.properties.set("distance",0)}};r.prototype.dispose=function(){};r.Wa=function(t){t.N(g.Ar).manager=new r(t)};r.update=function(t){t.getComponent(g.Ar).manager.update()};r.frame=function(t,u,v){t.getComponent(g.Ar).manager.frame(u,v)};r.ya=function(t){var u=t.getComponent(g.Ar);u.manager.dispose();u.manager=null;t.ka(g.Ar)};return r}();var e=new k.Euler(0,0,0,"YXZ"),b=new k.Quaternion,c=new k.Vector3,d=new k.Vector3, f=new k.Vector3(1,1,1),l=new k.Matrix4,p=new k.Matrix4,q=180/Math.PI;return a}); define("tdv/player/view/webgl/system/util/RaycastUtil",["require","exports","three.mod","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/entity/Util"],function(a,m,h,n,g){a=function(){function d(){}d.D6=function(f,l,p){f.camera=l;l=p.getComponent(n.zc);p=(p=g.Qc(p))&&p.matrixWorld;p||(p=l.matrixWorld);p?(f.ray.origin.copy(l.origin).applyMatrix4(p),f.ray.direction.copy(l.origin).add(l.direction).applyMatrix4(p).sub(f.ray.origin).normalize()):(f.ray.origin.copy(l.origin),f.ray.direction.copy(l.direction).normalize()); return f};d.intersect=function(f,l){k.length=0;l.forEach(function(p){this.NPa(p);p.isSkinnedMesh&&!p.userData.Zma&&(p.userData.Zma=p.geometry.boundingBox,p.geometry.boundingBox=b,p.userData.OIa=p.geometry.boundingSphere,p.geometry.boundingSphere=c,k.push(p))}.bind(this));f.firstHitOnly=!0;l=l.filter(function(p){return(p.isScene||p.parent)&&(!p.isMesh||p.geometry)});e.length=0;e=f.intersectObjects(l,!1,e);k.forEach(function(p){p.geometry.boundingBox=p.userData.Zma;delete p.userData.Zma;p.geometry.boundingSphere= p.userData.OIa;delete p.userData.OIa});e=e.filter(function(p){return p.object.isLine?!1:!0});e.length>1&&e.sort(function(p,q){var r=-p.object.renderOrder,t=-q.object.renderOrder;r==t&&(r=p.object.material&&!p.object.material.depthTest?0:1,t=q.object.material&&!q.object.material.depthTest?0:1);r==t&&(r=p.distance,t=q.distance);return r-t});return e};d.NPa=function(f){if(f.isMesh&&f.geometry&&f.geometry.attributes&&f.geometry.attributes.position&&!f.geometry.userData.MIa&&!f.isSkinnedMesh){try{f.geometry.computeBoundsTree()}catch(l){}f.geometry.userData.MIa= !0}};return d}();var k=[],e=[],b=new h.Box3;b.min.x=b.min.y=b.min.z=-Infinity;b.max.x=b.max.y=b.max.z=Infinity;var c=new h.Sphere;c.center.x=c.center.y=c.center.z=0;c.radius=Infinity;return a}); define("tdv/player/view/webgl/system/cameraControls/CollidableObjects",["require","exports","tdv/player/view/webgl/system/util/entity/Util","tdv/player/view/webgl/system/util/RaycastUtil","three.mod"],function(a,m,h,n,g){a=function(){function c(d){this.iK=null;this.bKa=new g.Vector3;this.Gna=void 0;this.Ea=d}c.prototype.refresh=function(){this.iK=null};c.prototype.zK=function(d,f){return this.intersect(d,f).length>0};c.prototype.fhb=function(d){var f=h.zt(this.Ea);if(!f)return[];k.far=f.far;k.setFromCamera(d, f);return n.intersect(k,this.U7())};c.prototype.IX=function(d){var f=h.zt(d.Ea||this.Ea);if(!f)return[];k.far=Infinity;k.camera=f;k.ray.origin.copy(d.origin);k.ray.direction.copy(d.direction);d.matrixWorld&&k.ray.applyMatrix4(d.matrixWorld);return n.intersect(k,this.U7())};c.prototype.intersect=function(d,f){k.far=d.distanceTo(f);k.ray.origin.copy(d);k.ray.direction.copy(f).sub(d).normalize();return n.intersect(k,this.U7())};c.prototype.WW=function(d){if(this.bKa.equals(d)&&this.Gna!==void 0)return this.Gna; k.far=Infinity;k.ray.origin.copy(d);var f=[],l=[];this.U7().forEach(function(q){q.isGaussianCloud||q.zw?l.push(q):f.push(q)});var p=Infinity;[f,l].forEach(function(q){(q==l?b:[e]).forEach(function(r){k.ray.direction.copy(r);r=n.intersect(k,q);r.length!=0&&(r=d.y-r[0].point.y,r0;){var l=d.pop();l.userData.MJ||l.isSprite||l.isLine||l.isSkinnedMesh||l.material&&!l.material.visible||f.indexOf(l)!==-1||(l.children&&d.push.apply(d,l.children),this.iK.push(l))}return this.iK};c.blb=function(d){this.cY.clear();d.forEach(function(f){this.cY.has(f.T)||this.cY.set(f.T,[]);this.cY.get(f.T).push(f)}.bind(this))};c.cY=new Map;return c}();var k=new g.Raycaster,e=new g.Vector3(0,-1,0),b=[(new g.Vector3(0,-1,.1)).normalize(),(new g.Vector3(0, -1,.1)).normalize().applyMatrix4((new g.Matrix4).makeRotationY(Math.PI*2/3)),(new g.Vector3(0,-1,.1)).normalize().applyMatrix4((new g.Matrix4).makeRotationY(-Math.PI*2/3))];return a}); define("tdv/player/view/webgl/system/cameraControls/SequenceController","require exports tdv/constants/EventName tdv/constants/PlaybackState tdv/player/parser/ClassInfo tdv/player/view/webgl/components tdv/view/util/Ease tdv/view/util/EaseDimension".split(" "),function(a,m,h,n,g,k,e,b){return function(){function c(d,f,l){this.F=d;this.properties=f;this.ai=l;this.Mqa=0;this.VJ=this.LA=void 0;this.I9=!1;this.v$(0);this.aoa=this.m7=this.$na=this.k7=this.state=void 0;this.Zc(n.ca);this.ai.bind(h.L("state"), this.SJ,this,!0);this.ai.bind(h.L("movementIndex"),this.FOa,this,!0)}c.prototype.uQ=function(){this.ai.get("mandatory")||(this.U6(),this.ai.get("restartMovementOnUserInteraction")?this.state==n.PLAYING&&(this.nSa(),this.Zc(n.Zb,!0)):this.state==n.PLAYING&&this.Zc(n.ca))};c.prototype.eob=function(){this.state==n.Zb&&this.I9&&this.ai.get("restartMovementOnUserInteraction")&&this.nmb()};c.prototype.frame=function(d){this.state==n.PLAYING&&this.yf!==null&&(this.yf.kpa()||this.LA!=0||this.ai.o(h.Br),this.yf.Nb(d), this.ynb(),this.properties.set("x",this.yf.ob("x")),this.properties.set("y",this.yf.ob("y")),this.properties.set("z",this.yf.ob("z")),this.properties.set("yaw",this.IE(this.yf.ob("yaw"),-180,180)),this.properties.set("pitch",this.yf.ob("pitch")),this.properties.set("distance",this.yf.ob("distance")),this.properties.set("fov",this.yf.ob("fov")),this.properties.set("easing",0),d=this.ai.get("movements")[this.LA],d.set("position",this.yf.tm()),d.o(h.Zd),this.yf.Ve()&&(d.o(h.Tb),this.v$((this.LA+1)%this.ai.get("movements").length, !0),this.LA==0&&(this.Mqa++,this.ai.o(h.Tr),this.Mqa==this.ai.get("repeat")&&(this.jQa(),this.Zc(n.ca),this.ai.o(h.Tb)))))};c.prototype.ynb=function(){var d=this.k7!==void 0&&this.$na!==void 0,f=this.m7!==void 0&&this.aoa!==void 0;if(d||f){var l=this.JLa(this.F);if(l){var p=this.yf.getTime(),q=this.yf.lj();l=l.O(k.Scene);d=d&&p0||d>0?f>d?(l.XO=this.aoa,l.YW=f):(l.XO=this.$na,l.YW=d):(l.XO="#000000",l.YW=0)}}};c.prototype.jQa=function(){var d= this.JLa(this.F);d&&(d.O(k.Scene).YW=0)};c.prototype.dispose=function(){this.U6();this.ai.h(h.L("state"),this.SJ,this);this.ai.h(h.L("movementIndex"),this.FOa,this);this.Zc(n.ca)};c.prototype.SJ=function(){var d=this.ai.get("state");this.state!=d&&(d==n.Zb&&this.state==n.ca?this.ai.set("state",n.ca):this.Zc(d))};c.prototype.Zc=function(d,f){f===void 0&&(f=void 0);this.state!=d&&(this.state=d,this.state==n.PLAYING?(this.U6(),this.I9=!1,this.HJa(),this.Pcb()):this.state==n.Zb?(this.I9=!!f,this.nSa()): this.state==n.ca&&(this.I9=!1,this.U6(),this.Mqa=0,d=this.yf.getTime(),f=this.yf.lj(),d>0&&d=q?this.IE(x,q-360,q):this.IE(x,q,q+360);break;default:x=this.IE(x,q-180,q+180)}}else g.Oa("DistanceModel3DCameraMovement",d)&&(v=f+d.get("xDelta",0),w=l+d.get("yDelta",0),y=p+d.get("zDelta",0),x=q+d.get("yawDelta",0),z=r+d.get("pitchDelta",0),A=u+d.get("fovDelta",0),D=t+d.get("distanceDelta",0));this.yf=new e(d.get("easing"),[new b("x",f,v,d.get("xSpeed")),new b("y",l,w,d.get("ySpeed")),new b("z",p,y,d.get("zSpeed")),new b("yaw",q, x,d.get("yawSpeed")),new b("pitch",r,z,d.get("pitchSpeed")),new b("fov",u,A,d.get("fovSpeed")),new b("distance",t,D,d.get("distanceSpeed"))],d.get("duration"));this.k7=d.get("fadeFromDuration");this.$na=d.get("fadeFromColor");this.m7=d.get("fadeToDuration");this.aoa=d.get("fadeToColor")};c.prototype.Pcb=function(){this.VJ=void 0};c.prototype.nSa=function(){if(this.yf){this.VJ=void 0;var d=this.yf&&this.yf.mX("yaw");d&&(d.to>d.from?this.VJ="right":d.tol;)d-=l-f;return d};return c}()}); define("tdv/player/view/webgl/system/cameraControls/SequencesController","require exports tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/PlaybackState tdv/player/view/webgl/system/cameraControls/SequenceController tdv/player/view/webgl/system/util/entity/Util".split(" "),function(a,m,h,n,g,k,e){return function(){function b(c,d){this.F=c;this.properties=d;this.y9=this.y9.bind(this);this.w9=this.w9.bind(this);this.SJ=this.SJ.bind(this);this.vm=this.xw=null;this.$P=[];this.kh=null; this.hF=!1;this.hA=new Map;h.ba(this.properties,["userInteracting"],this.y9,!0);h.ba(this.properties,["initialSequence","idleSequence","sequences.movements"],this.w9,!0);h.ba(this.properties,["state"],this.SJ,!0);this.ready=!1}b.prototype.frame=function(c){if(!this.ready){var d=e.Sf(this.F),f=0;d&&d.traverse(function(l){(l.isMesh||l.isSprite)&&f++});if(f>0)this.ready=!0,this.Dib();else return!1}this.kh&&this.hA.get(this.kh).frame(c);(c=this.kh&&this.kh.get("state")==g.PLAYING)&&this.F.T.Qa();this.properties.set("controllingPosition", c)};b.prototype.dispose=function(){this.kh&&this.kh.get("mandatory")&&this.properties.set("inMandatorySequence",!1);this.kh&&this.properties.set("controllingPosition",!1);h.da(this.properties,["userInteracting"],this.y9);h.da(this.properties,["initialSequence","idleSequence","sequences.movements"],this.w9);h.da(this.properties,["state"],this.SJ);this.S$();this.vm&&this.QO(this.vm);this.xw&&this.QO(this.xw);this.$P.forEach(this.QO.bind(this));this.$P=[]};b.prototype.tZ=function(){this.hF||this.DJ|| !this.vm||this.kh||!this.properties.get("timeToIdle")||(this.DJ=setTimeout(function(){this.DJ=null;this.pib()}.bind(this),this.properties.get("timeToIdle")))};b.prototype.S$=function(){this.DJ&&(clearTimeout(this.DJ),this.DJ=null)};b.prototype.pib=function(){this.vm&&this.vm.set("state",g.PLAYING)};b.prototype.Dib=function(){this.xw?this.xw.set("state",g.PLAYING):this.tZ()};b.prototype.SJ=function(){this.kh?this.kh.set("state",this.properties.get("state")):this.properties.get("state")==g.PLAYING? (this.tZ(),this.DJ||this.properties.set("state",g.ca)):this.S$()};b.prototype.y9=function(){var c=this.properties.get("userInteracting");this.hF!=c&&(this.hF&&(this.kh&&this.hA.get(this.kh).eob(),!this.vm||this.kh&&this.kh!=this.vm||this.tZ()),this.hF=c)&&(this.S$(),this.kh&&this.hA.get(this.kh).uQ())};b.prototype.w9=function(){var c=this.Tqa(this.properties.get("initialSequence"));this.xw!=c&&(this.xw&&this.QO(this.xw),(this.xw=c)&&this.una(this.xw));c=this.Tqa(this.properties.get("idleSequence")); this.vm!=c&&(this.vm&&this.QO(this.vm),(this.vm=c)&&this.una(this.vm));var d=(this.properties.get("sequences")||[]).filter(this.Tqa.bind(this));this.$P.forEach(function(l){d.indexOf(l)<0&&this.QO(l)}.bind(this));var f=this.$P;this.$P=d;this.$P.forEach(function(l){f.indexOf(l)<0&&this.una(l)}.bind(this));this.kh||!this.vm||this.DJ||this.tZ()};b.prototype.Tqa=function(c){var d=c&&c.get("movements");return d&&d.length!=0?c:null};b.prototype.QOa=function(c){c=c.source;var d=c.get("state");d==g.PLAYING? (this.S$(),d=this.kh,this.kh=c,d&&d!=this.kh&&d.set("state",g.ca),this.properties.set("state",g.PLAYING),this.properties.set("inMandatorySequence",c.get("mandatory")),this.F.T.Qa()):d==g.Zb?c==this.kh&&this.properties.set("state",g.Zb):d==g.ca&&c==this.kh&&(this.properties.set("state",g.ca),this.properties.set("inMandatorySequence",!1),this.kh=null,c!=this.vm&&this.tZ())};b.prototype.una=function(c){if(this.hA.has(c))this.hA.get(c);else{c.set("state",g.ca);c.bind(n.L("state"),this.QOa,this,!0);var d= new k(this.F,this.properties,c);this.hA.set(c,d)}};b.prototype.QO=function(c){this.hA.has(c)&&(c.set("state",g.ca),c.h(n.L("state"),this.QOa,this),this.hA.get(c).dispose(),this.hA["delete"](c))};return b}()}); define("tdv/player/view/webgl/system/cameraControls/CameraSequenceBehaviour",["require","exports","tdv/player/view/webgl/system/cameraControls/SequencesController","tdv/player/view/webgl/components"],function(a,m,h,n){return function(){function g(k){this.PY=this.properties=null;this.F=k;this.update()}g.prototype.update=function(){var k=this.F.getComponent(n.RK);this.bQ(k&&k.properties)};g.prototype.bQ=function(k){var e;this.properties&&((e=this.PY)===null||e===void 0||e.dispose(),this.PY=null);if(this.properties= k)this.PY=new h(this.F,this.properties)};g.prototype.frame=function(k){this.PY&&this.PY.frame(k)};g.prototype.dispose=function(){this.bQ(null)};g.Wa=function(k){k.N(n.tx).manager=new g(k)};g.update=function(k){k.getComponent(n.tx).manager.update()};g.frame=function(k,e,b){k.getComponent(n.tx).manager.frame(e,b)};g.ya=function(k){k.getComponent(n.tx).manager.dispose();k.ka(n.tx)};return g}()}); define("tdv/player/view/webgl/system/cameraControls/DraggingObserver",["require","exports"],function(){return function(){function a(){}a.oP=function(m){return this.Aaa.indexOf(m)>=0};a.dra=function(m){this.Aaa=[];m.forEach(function(h){h=h.T;this.Aaa.indexOf(h)<0&&this.Aaa.push(h)}.bind(this))};a.Aaa=[];return a}()}); define("tdv/player/view/webgl/system/cameraControls/CameraControlBehaviourMixin",["require"],function(){return{jpb:function(){},kpb:function(){},T1:function(){return this.A&&this.A.get("inMandatorySequence")||this.A&&!this.A.get("keyboardEnabled")?!0:!1},Wm:function(){return this.A&&this.A.get("inMandatorySequence")||this.A&&(!this.A.get("mouseEnabled")||this.A.get("mouseDisabled"))?!0:!1},Pza:function(){return this.A&&this.A.get("doubleClickDisabled")?!0:!1},IBa:function(){this.BM()||this.Dy||this.wHa()}, HBa:function(){this.BM()||this.Dy||this.vHa()},$M:function(){this.Qza()||this.wHa()},ZM:function(){this.Qza()||this.vHa()},wHa:function(){this.A&&this.A.set("userInteracting",!0)},vHa:function(){this.A&&this.A.set("userInteracting",!1)}}}); define("tdv/player/view/webgl/system/cameraControls/Object3DMovingSetter",["require","exports","tdv/player/view/webgl/system/util/entity/Util","three.mod"],function(a,m,h,n){return function(){function g(k){this.matrixWorld=new n.Matrix4;this.tE=!1;this.timeout=null;this.F=k}g.prototype.bQ=function(k,e){if(this.yK!=k||this.propertyName!=e)this.yK&&this.yK.set(this.propertyName,!1),this.yK=k,this.propertyName=e,this.yK&&this.yK.set(this.propertyName,this.tE)};g.prototype.Bsa=function(){var k=h.Qc(this.F), e=!!k&&!k.matrixWorld.equals(this.matrixWorld);e&&this.matrixWorld.copy(k.matrixWorld);this.Gp(e);this.timeout&&(clearTimeout(this.timeout),this.timeout=null);e&&(this.timeout=setTimeout(function(){this.timeout=null;this.Gp(!1)}.bind(this),g.tVa))};g.prototype.ya=function(){this.Gp(!1);this.timeout&&clearTimeout(this.timeout)};g.prototype.Gp=function(k){this.tE!=k&&(this.tE=k,this.yK&&this.yK.set(this.propertyName,k))};g.tVa=100;return g}()}); define("tdv/player/view/webgl/system/cameraControls/PropertiesSetter",["require","exports"],function(){return function(){function a(m){this.properties=m}a.prototype.aRa=function(m){this.properties.set("fov",this.BP(m,this.properties.get("minFov",.1),this.properties.get("maxFov",180)))};a.prototype.rj=function(m){this.properties.set("yaw",this.g$(this.Phb(m,this.properties.get("minYaw"),this.properties.get("maxYaw"),this.properties.get("yaw"))))};a.prototype.Zn=function(m){this.properties.set("pitch", this.BP(m,this.properties.get("minPitch",-90),this.properties.get("maxPitch",90)))};a.prototype.setX=function(m){this.properties.set("x",this.BP(m,this.properties.get("minX"),this.properties.get("maxX")))};a.prototype.setY=function(m){this.properties.set("y",this.BP(m,this.properties.get("minY"),this.properties.get("maxY")))};a.prototype.setZ=function(m){this.properties.set("z",this.BP(m,this.properties.get("minZ"),this.properties.get("maxZ")))};a.prototype.Xn=function(m){this.properties.set("distance", this.BP(m,this.properties.get("minDistance"),this.properties.get("maxDistance")))};a.prototype.Xj=function(m){this.properties.set("easing",m)};a.prototype.Phb=function(m,h,n,g){if(h!==void 0||n!==void 0){var k=this.g$(m-g);if(h!==void 0&&k<0){if(this.g$(g)+k0&&this.g$(g)+k>n)return n}return m};a.prototype.BP=function(m,h,n){if(isNaN(m))throw"invalid value";h!==void 0&&mn&&(m=n);return m};a.prototype.g$=function(m){for(;m<-180;)m+=360;for(;m> 180;)m-=360;return m};return a}()}); define("tdv/player/view/webgl/system/util/mixin/KeyboardMixin",["require","tdv/view/util/KeyboardControl"],function(a){var m=a("tdv/view/util/KeyboardControl");return{gha:function(h){this.c2=this.c2.bind(this);this.d2=this.d2.bind(this);this.BR=this.rk=!1;this.Ig={};for(var n=0;n0},d2:function(h){if(!(m.yp()||this.T1&&this.T1())){var n=!1;this.rk!=h.shiftKey&&(this.rk=h.shiftKey,n=!0);this.BR!=h.ctrlKey&&(this.BR=h.ctrlKey,n=!0);this.Ig[h.code]===!0&&(this.Ig[h.code]=!1,n=!0,this.tq&&this.tq(h.code),this.VS--,this.VS==0&&this.HBa&&this.HBa());n&&this.OT&&this.OT()}},c2:function(h){if(!(m.yp()||this.T1&&this.T1())){var n=!1;this.rk!=h.shiftKey&& (this.rk=h.shiftKey,n=!0);this.BR!=h.ctrlKey&&(this.BR=h.ctrlKey,n=!0);this.Ig[h.code]===!1&&(n=this.Ig[h.code]=!0,this.PH&&this.PH(h.code),this.VS++,this.VS==1&&this.IBa&&this.IBa());n&&this.OT&&this.OT()}},wpb:function(){return this.rk},qpb:function(){return this.BR}}}); define("tdv/player/view/model3d/renderer/adapters/cursor/InstanceCursorManager",["require","exports","tdv/view/constants/Cursor"],function(a,m,h){a=function(){function g(){this.Gf=[]}g.prototype.au=function(k){this.UQa(k);this.Ab=k;this.tea=null};g.prototype.VQa=function(k){this.UQa(k?k.PLa():null);this.Ab=null;this.tea=k};g.prototype.Blb=function(k,e){this.Ab&&this.Ab.set("cursor",k);this.tea&&this.tea.j$(k,e)};g.prototype.UQa=function(k){this.Oe&&(this.Oe.xjb(this),this.Oe=void 0);k&&(this.Oe=n.get(k), this.Oe.Pbb(this))};g.prototype.dispose=function(){this.au(null);this.Gf=[]};g.prototype.push=function(k){this.Gf.push(k);this.Oe&&this.Oe.update()};g.prototype.pop=function(k){for(var e=this.Gf.length-1;e>=0;e--)if(this.Gf[e]==k){this.Gf.splice(e,1);this.Oe&&this.Oe.update();break}};g.prototype.has=function(k){return this.Gf.indexOf(k)>=0};g.prototype.top=function(){if(this.Gf.length)return this.Gf[this.Gf.length-1]};g.prototype.all=function(){return this.Gf};return g}();var n=function(){function g(k){this.dc= k;this.zd=[]}g.prototype.Pbb=function(k){this.zd.push(k);this.update()};g.prototype.xjb=function(k){this.zd.splice(this.zd.indexOf(k),1);this.update();this.zd.length==0&&g.clear(this.dc)};g.prototype.update=function(){var k=this.xXa();var e=this.cga(h.$F)?h.$F:this.cga(h.Li)?h.Li:this.cga(h.qf)?h.qf:this.$s()||h.De;this.zd.forEach(function(b){b.Blb(e,k)})};g.prototype.cga=function(k){for(var e=this.zd.length-1;e>=0;e--)if(this.zd[e].has(k))return!0;return!1};g.prototype.xXa=function(){var k=[];this.zd.forEach(function(e){e.all().forEach(function(b){k.indexOf(b)< 0&&k.push(b)})});return k};g.prototype.$s=function(){for(var k,e=this.zd.length-1;e>=0&&k===void 0;e--)k=this.zd[e].top();return k};g.get=function(k){var e=this.ab.get(k);e||this.ab.set(k,e=new g(k));return e};g.clear=function(k){this.ab["delete"](k)};g.ab=new Map;return g}();return a}); define("tdv/view/util/MouseLocker",["require","exports","tdv/constants/EventName","tdv/events/EventDispatcher"],function(a,m,h,n){return function(g){function k(e){var b=g.call(this)||this;if(e instanceof HTMLElement)b.RNa=e;else throw Error("invalid element");b.u9=b.u9.bind(b);document.addEventListener("pointerlockchange",b.u9.bind(b),!1);return b}P(k,g);k.prototype.dispose=function(){document.removeEventListener("pointerlockchange",this.u9)};k.prototype.lock=function(){if(!this.hr())return this.RNa.requestPointerLock()}; k.prototype.unlock=function(){this.hr()&&document.exitPointerLock()};k.prototype.hr=function(){return document.pointerLockElement===this.RNa};k.prototype.u9=function(){this.o(h.V)};k.hr=function(){return document.pointerLockElement!==null};return k}(n)}); define("tdv/player/view/webgl/system/util/mixin/MouseMixin",["require","tdv/constants/EventName","tdv/player/view/model3d/renderer/adapters/cursor/InstanceCursorManager","tdv/view/util/MouseLocker"],function(a){function m(e,b){var c=b.x-e.x;e=b.y-e.y;return Math.sqrt(c*c+e*e)}var h=a("tdv/constants/EventName"),n=a("tdv/player/view/model3d/renderer/adapters/cursor/InstanceCursorManager"),g=a("tdv/view/util/MouseLocker"),k=180/Math.PI;return{Pha:function(){this.T2=this.nT=this.Dy=this.nv=!1;this.o4= this.df=null;this.M1=new n;this.rT=null;this.j5a=this.u4a.bind(this)},Qha:function(){this.X4(null);this.M1.dispose()},CAa:function(e){this.Mq(e);if(!this.Wm||!this.Wm()){var b=this.AM();this.nv||(this.nv=!0,b||this.$M&&this.$M());this.nT=!e.F9||!e.F9.buttons||(e.F9.buttons&2)===0;this.o4=e;this.uq&&this.uq(e.x,e.y);this.t3&&this.t3(e.x,e.y)}},AM:function(){return this.nv||this.Dy||this.T2},BM:function(){return this.nv},rpb:function(){return this.Dy},spb:function(){return this.nT},tpb:function(){return this.T2}, EAa:function(e){this.Mq(e);if(this.Wm&&this.Wm())this.oT(e);else if(this.rg&&this.rg(e.x,e.y),this.nv||this.MM.hr()){var b=e.movementX!==void 0?e.movementX:e.x-this.o4.x,c=e.movementY!==void 0?e.movementY:e.y-this.o4.y;this.MM.hr()&&(b*=-1,c*=-1);this.o4=e;this.s3&&this.s3(b,c,e.x,e.y)}},oT:function(e){this.nv&&(e&&this.Mq(e),this.nT=this.nv=!1,this.fz&&this.fz(this.Ad,this.Bd),this.QH&&this.QH(),this.AM()||this.ZM&&this.ZM())},yAa:function(e){this.Wm&&this.Wm()||(this.Mq(e),this.ez&&this.ez(e.x, e.y))},zAa:function(e){this.Wm&&this.Wm()||this.Pza&&this.Pza()||(this.Mq(e),this.YM&&this.YM(e.x,e.y))},FAa:function(e){this.Mq(e);if(!this.Wm||!this.Wm()){e=e.lA/10;var b=this.AM();this.rT||(this.T2=!0,this.k5a&&this.k5a(),b||this.$M&&this.$M());this.u3&&this.u3(e);this.rT&&clearTimeout(this.rT);this.rT=setTimeout(this.j5a,100)}},u4a:function(){this.rT=null;this.i5a&&this.i5a();this.T2=!1;this.AM()||this.ZM&&this.ZM()},BAa:function(e){if(!(this.Wm&&this.Wm()||e.touches.length<2)){var b=this.AM(); this.Dy||(this.Dy=!0,this.v4a(e.touches),b||this.$M&&this.$M());this.ABa&&this.ABa();this.oT()}},AAa:function(e){this.Wm&&this.Wm()||e.touches.length<2||!this.Dy||(this.GAa(e.touches),this.nia&&this.nia(this.y$a,this.z$a,this.mla,this.A$a),this.zBa&&this.zBa(this.Jga,this.Kga,this.PV,this.QV,1,this.mla,this.DS,this.lla,this.Iga,this.OV))},Oha:function(){this.Dy&&(this.Dy=!1,this.oia&&this.oia());this.AM()||this.ZM&&this.ZM()},v4a:function(e){this.Iga=this.Kga=this.Jga=this.DS=this.mla=this.QV=this.PV= this.lla=this.OV=void 0;this.NV=e;this.GAa(e)},GAa:function(e){m(e[0],this.NV[0])+m(e[1],this.NV[1])>m(e[0],this.NV[1])+m(e[1],this.NV[0])&&(e=[e[1],e[0]]);var b=e[0];var c=e[1];b=Math.atan2(-(c.y-b.y),c.x-b.x)*k;c=m(e[0],e[1]);var d=(e[0].x+e[1].x)/2,f=(e[0].y+e[1].y)/2;this.mla=this.DS!==void 0?c/this.DS:1;this.A$a=this.OV!==void 0?b-this.OV:0;this.OV=b;this.lla=c;this.y$a=this.PV!==void 0?d-this.PV:0;this.z$a=this.QV!==void 0?f-this.QV:0;this.PV=d;this.QV=f;this.Jga!==void 0||(this.Jga=this.PV); this.Kga!==void 0||(this.Kga=this.QV);this.Iga!==void 0||(this.Iga=this.OV);this.DS!==void 0||(this.DS=this.lla);this.NV=e},DAa:function(){},s0a:function(){this.oT();this.Oha()},lS:function(){return this.df?this.df.nb():100},cH:function(){return this.df?this.df.Mb():100},Gy:function(){return this.df?Math.max(this.df.nb(),this.df.Mb()):100},X4:function(e){this.df!=e&&(this.df&&(this.df.h(h.Sa,this.CAa,this,!0),this.df.h(h.gb,this.EAa,this,!0),this.df.h(h.$a,this.oT,this,!0),this.df.h(h.ma,this.yAa, this,!0),this.df.h(h.fi,this.zAa,this,!0),this.df.h(h.Qk,this.FAa,this,!0),this.df.h(h.Mba,this.AAa,this,!0),this.df.h(h.HB,this.BAa,this,!0),this.df.h(h.WK,this.Oha,this,!0),this.MM.h(h.V,this.DAa,this,!0),this.MM.dispose(),this.MM=null),this.df=e,this.M1.au(this.df),this.df&&(this.df.bind(h.Sa,this.CAa,this,!0),this.df.bind(h.gb,this.EAa,this,!0),this.df.bind(h.$a,this.oT,this,!0),this.df.bind(h.ma,this.yAa,this,!0),this.df.bind(h.fi,this.zAa,this,!0),this.df.bind(h.Qk,this.FAa,this,!0),this.df.bind(h.Mba, this.AAa,this,!0),this.df.bind(h.HB,this.BAa,this,!0),this.df.bind(h.WK,this.Oha,this,!0),this.MM=new g(this.df.wa().cc()),this.MM.bind(h.V,this.DAa,this,!0)))},qT:function(e){e.x=-1+2*e.x/this.lS();e.y=1-2*e.y/this.cH();return e},Mq:function(e){this.Ad=e.x;this.Bd=e.y;this.NM=e.pageX;this.OM=e.pageY},hI:function(e){this.M1.push(e)},l4:function(e){this.M1.pop(e)}}}); define("tdv/player/view/webgl/system/util/mixin/ScreenJoystickMixin",["require","tdv/constants/EventName"],function(a){var m=a("tdv/constants/EventName");return{t7a:function(){this.P4=!1;this.Hq=null;this.yH=this.CM=0;this.oI=!1;this.vEa(!0)},u7a:function(){this.vEa(!1);this.gFa(null)},vEa:function(h){this.P4!=h&&((this.P4=h)||this.O4())},gFa:function(h){this.Hq!=h&&(this.O4(),this.Hq&&(this.Hq.h(m.Vp,this.wEa,this,!0),this.Hq.h(m.Fg,this.O4,this,!0),this.Hq.h(m.V,this.uEa,this,!0),this.yH=this.CM= 0),this.Hq=h)&&(this.Hq.bind(m.Vp,this.wEa,this,!0),this.Hq.bind(m.Fg,this.O4,this,!0),this.Hq.bind(m.V,this.uEa,this,!0))},wEa:function(){!this.oI&&this.P4&&(this.oI=!0,this.MCa&&this.MCa())},uEa:function(){this.oI&&(this.CM=this.Hq.getX(),this.yH=this.Hq.getY(),this.KCa&&this.KCa())},O4:function(){this.oI&&(this.oI=!1,this.yH=this.CM=0,this.LCa&&this.LCa())},vpb:function(){return this.oI}}}); define("tdv/player/view/webgl/system/cameraControls/FirstPersonBehaviour","require tdv/utils tdv/constants/EventName tdv/constants/Key tdv/player/view/webgl/components tdv/player/view/webgl/system/cameraControls/CameraControlBehaviourMixin tdv/player/view/webgl/system/cameraControls/CollidableObjects tdv/player/view/webgl/system/cameraControls/DraggingObserver tdv/player/view/webgl/system/cameraControls/Object3DMovingSetter tdv/player/view/webgl/system/cameraControls/PropertiesSetter tdv/player/view/webgl/system/util/mixin/KeyboardMixin tdv/player/view/webgl/system/util/mixin/MouseMixin tdv/player/view/webgl/system/util/mixin/ScreenJoystickMixin tdv/view/constants/Cursor tdv/view/util/Ease tdv/view/util/EaseDimension".split(" "),function(a){function m(L){this.PR= !1;this.Lea=0;this.Fxa=!1;this.Gxa=L}function h(L){this.B=L;this.vs=new f(L);this.gha(x);this.Pha();this.t7a();this.vI=.025;this.cn=.25;this.P2=this.Q2=this.R2=this.l1=0;this.Ka=null;this.g0=this.J5=!1;this.Ha=void 0;this.cAa=new THREE.Vector3(void 0,void 0,void 0);this.cv=[];this.o4a=5;this.l4a=10;this.hy=new c(this.B);this.hI(t.IB);this.DM={};[k.ua.bk,k.ua.Ji,k.ua.fb,k.ua.Db].forEach(function(U){this.DM[U]=new m(300)}.bind(this));[k.ua.Mp,k.ua.po,k.ua.Sp,k.ua.so,k.ua.Q,k.ua.E].forEach(function(U){this.DM[U]= new m(300)}.bind(this));this.update()}var n=a("tdv/utils"),g=a("tdv/constants/EventName"),k=a("tdv/constants/Key"),e=a("tdv/player/view/webgl/components"),b=a("tdv/player/view/webgl/system/cameraControls/CameraControlBehaviourMixin"),c=a("tdv/player/view/webgl/system/cameraControls/CollidableObjects"),d=a("tdv/player/view/webgl/system/cameraControls/DraggingObserver"),f=a("tdv/player/view/webgl/system/cameraControls/Object3DMovingSetter"),l=a("tdv/player/view/webgl/system/cameraControls/PropertiesSetter"), p=a("tdv/player/view/webgl/system/util/mixin/KeyboardMixin"),q=a("tdv/player/view/webgl/system/util/mixin/MouseMixin"),r=a("tdv/player/view/webgl/system/util/mixin/ScreenJoystickMixin"),t=a("tdv/view/constants/Cursor"),u=a("tdv/view/util/Ease"),v=a("tdv/view/util/EaseDimension");n.A6(h,[b,p,q,r]);h.prototype.update=function(){var L=this.B.getComponent(e.MF);this.Oj(L&&L.properties);this.vs.bQ(L&&L.properties,"moving");var U=(!L.PO||!d.oP(this.B.T))&&L.enabled;this.X4(L&&(U?L.Rf:null));this.WS(!!L&& U&&L.kE);this.gFa(!!L&&U&&L.yQa);U||this.QH();U&&L.kE||(this.Wo=this.Vo=this.Nl=this.Zk=this.Ol=0)};h.prototype.frame=function(L){this.B3a()?this.N2a(L):this.O2a(L);this.H0a()};h.prototype.B3a=function(){return this.properties&&this.properties.get("playingSequence")||this.Vi};h.prototype.N2a=function(L){this.properties&&this.properties.get("playingSequence")||this.BXa(L)};h.prototype.BXa=function(L){this.Vi&&(this.Vi.Nb(L),this.Ka.setX(this.Vi.ob("x")),this.Ka.setY(this.Vi.ob("y")),this.Ka.setZ(this.Vi.ob("z")), this.Ka.Xj(0),this.Vi.Ve()&&(this.Vi=null),this.B.T.Qa())};var w=1E3/3600*8/1.7;h.prototype.O2a=function(L){H.set(this.A.get("x"),this.A.get("y"),this.A.get("z"));this.S1a(L,N,R);this.c2a(H,N,E);this.Ka.setX(E.x);this.Ka.setY(E.y);this.Ka.setZ(E.z);this.Ka.rj(this.A.get("yaw")+R.x);this.Ka.Zn(this.A.get("pitch")+R.y);this.Ka.Xj(this.cn);N.x==0&&N.y==0&&N.z==0&&R.x==0&&R.y==0||this.B.T.Qa()};h.prototype.H0a=function(){this.bbb();this.fab();this.vs.Bsa();this.oI&&this.B.T.Qa();this.hy.refresh()};h.prototype.S1a= function(L,U,T){L/=1E3;var Y=this.rk?.2:1,aa=1.7*w;aa*=this.A.get("translationSpeed")*Y;var ba=this.A.get("rotationSpeed")*Y;Y=this.P2;var ea=this.Q2,ia=this.R2,da=this.l1;this.P2=this.Q2=this.R2=this.l1=0;var V=(Y*Y+ea*ea)/y;V=V>1?1/Math.sqrt(V):1;Y*=V;ea*=V;var X=F*Math.atan2(this.CM,Math.abs(this.yH));V=Math.sqrt(this.CM*this.CM+this.yH*this.yH);var S=Math.max(this.cH(),this.lS()),W=this.A.get("fov")/S*2;Y=-Y*W*ba;ea=ea*W*ba;ia=-ia*25*aa;W=this.kS(k.ua.Mp,k.ua.Sp)*aa;var Z=this.kS(k.ua.so,k.ua.po)* aa,ca=this.kS(k.ua.Q,k.ua.E)*aa,fa=this.kS(k.ua.Ji,k.ua.bk)*ba*30,ja=this.kS(k.ua.fb,k.ua.Db)*ba*30;da=2*da*1.7/S;ba*=X*V*.125;aa*=-V*.5*this.yH;(V=this.B.getComponent(e.ta))&&(Y||ea||ia||W||ca||Z||fa||ja||ba||aa||da)?(C.makeRotationFromEuler(B.set(0,V.fd*D,0,V.mf)),U.set(W*L,ca*L+da,(Z+aa+ia)*L).applyMatrix4(C),T.set(Y+(ja+ba)*L,ea+fa*L)):(U.set(0,0,0),T.set(0,0))};h.prototype.kS=function(L,U){L=this.DM[L].getState();if(L===m.Waa)return-3;if(L===m.Ji)return-1.5;U=this.DM[U].getState();return U=== m.Waa?3:U===m.Ji?1.5:0};h.prototype.c2a=function(L,U,T){T.copy(L).add(U);if(!T.equals(L)){var Y=!this.cAa.equals(L);this.PGa(T,Y);this.Ha!==void 0&&U.y!==0&&(this.Ha=Math.max(.595,this.Ha+U.y));var aa=this.hy.WW(T);(Y||aa==Infinity)&&this.oZa();var ba=aa!==Infinity?T.y-aa:void 0;if(this.A.get("keepHeight")&&aa!==Infinity){aa=this.jS();if(ba>(Y?ba:this.U1a(L))+this.A.get("maxStepHeight",aa*.25)){T.copy(L);return}T.y=(Y?ba:this.a2a(ba))+aa}if(this.A.get("collisionDetection")&&(O.copy(U).normalize().multiplyScalar(.1).add(T), this.hy.zK(L,O))){T.copy(L);return}ba!==void 0&&this.cXa(ba);this.cAa.copy(T)}};h.prototype.oZa=function(){this.cv=[]};h.prototype.U1a=function(L){return this.cv.length==0?L:this.cv[this.cv.length-1]};h.prototype.a2a=function(L){return this.cv.lengthU+T,0)/this.cv.length};h.prototype.cXa=function(L){this.cv.push(L);this.cv.length>this.l4a&&this.cv.shift()};h.prototype.PGa=function(L,U){if(this.Ha===void 0||U)L=this.hy.WW(L),L!==Infinity&&(this.Ha=L)};h.prototype.jS= function(){return this.Ha===void 0?1.7:this.Ha};h.prototype.PH=function(L){this.B.T.Qa();this.DM[L].aqa()};h.prototype.tq=function(L){this.DM[L].bqa()};h.prototype.t3=function(){this.zj=!0;this.hI(t.Li)};h.prototype.YM=function(L,U){if(this.A.get("doubleClickAction")=="translate"&&(this.qT(K.set(L,U)),L=this.hy.fhb(K),L.length!=0)){var T=L[0];L=H.set(this.A.get("x"),this.A.get("y"),this.A.get("z"));U=E.copy(T.point);this.PGa(L);var Y=this.jS();T.face&&T.face.normal?(T=G.copy(T.face.normal).transformDirection(T.object.matrixWorld), T=Math.abs(Math.acos(T.dot(Q)))Y*.05||(this.Vi=new u("cubic_in_out",[new v("x",L.x,U.x),new v("y",L.y,U.y),new v("z",L.z,U.z)],1500),this.B.T.Qa())}};var y=2500;h.prototype.s3=function(L,U){this.zj&&(this.P2+=L,this.Q2+=U,this.B.T.Qa())};h.prototype.QH=function(){this.zj=!1;this.l4(t.Li);this.B.T.Qa()}; h.prototype.u3=function(L){this.R2+=L;this.B.T.Qa()};h.prototype.nia=function(L,U){this.l1+=U;this.B.T.Qa()};h.prototype.MCa=function(){this.s0a();this.hI(t.Li)};h.prototype.KCa=function(){this.B.T.Qa()};h.prototype.LCa=function(){this.l4(t.Li)};h.prototype.Oj=function(L){this.A!=L&&(this.A&&(this.Ka=null,z.forEach(function(U){this.A.h(g.L(U),this.Hia,this,!0)}.bind(this)),A.forEach(function(U){this.A.h(g.L(U),this.eia,this,!0)}.bind(this)),this.A.set("userInteracting",!1)),this.A=L)&&(this.Ka=new l(this.A), z.forEach(function(U){this.A.bind(g.L(U),this.Hia,this,!0)}.bind(this)),this.Hia(),A.forEach(function(U){this.A.bind(g.L(U),this.eia,this,!0)}.bind(this)),this.eia(),this.A.set("userInteracting",!1))};h.prototype.Hia=function(){this.J5||(this.J5=!0,this.B.T.Qa())};h.prototype.bbb=function(){if(this.J5&&this.B&&this.A){this.J5=!1;var L=this.B.O(e.ta,!0);L.translationX=this.A.get("x");L.translationY=this.A.get("y");L.Ze=this.A.get("z");L.fd=-this.A.get("yaw");L.Yd=this.A.get("pitch");L.Xe=0;L.mf="YXZ"; L.positionX=0;L.positionY=0;L.positionZ=0;L.easing=this.A.get("easing")}};h.prototype.eia=function(){this.g0||(this.g0=!0,this.B.T.Qa())};h.prototype.fab=function(){this.g0&&this.B&&this.A&&(this.g0=!1,this.B.O(e.PerspectiveCamera,!0).fov=this.A.get("fov"))};var x=[k.ua.bk,k.ua.Ji,k.ua.fb,k.ua.Db,k.ua.Mp,k.ua.po,k.ua.Sp,k.ua.so,k.ua.Q,k.ua.E],z="minYaw maxYaw yaw minPitch maxPitch pitch minX maxX x minY maxY y minZ maxZ z distance easingSpeed".split(" "),A=["minFov","maxFov","fov"],D=Math.PI/180, F=180/Math.PI,C=new THREE.Matrix4,B=new THREE.Euler,H=new THREE.Vector3,E=new THREE.Vector3,G=new THREE.Vector3,N=new THREE.Vector3,O=new THREE.Vector3,R=new THREE.Vector2,Q=new THREE.Vector3(0,1,0),K=new THREE.Vector2;h.prototype.dispose=function(){this.Oj(null);this.hha();this.Qha();this.u7a();this.vs.ya();this.hy=null};h.Wa=function(L){L.N(e.Jr).manager=new h(L)};h.ya=function(L){var U=L.getComponent(e.Jr);U.manager.dispose();U.manager=null;L.ka(e.Jr)};h.update=function(L){L.getComponent(e.Jr).manager.update()}; h.frame=function(L,U,T){L.getComponent(e.Jr).manager.frame(U,T)};m.prototype.aqa=function(){this.PR||(this.PR=!0,this.Fxa=Date.now()-this.Lea180?V-=360:V<-180&&(V+=360);return V}function n(){return(new Date).getTime()}var g=a("tdv/utils"),k=a("tdv/constants/EventName"), e=a("tdv/constants/Key");a("tdv/player/view/util/geo/Fov");var b=a("tdv/player/view/webgl/system/util/entity/Util"),c=a("tdv/player/view/webgl/components"),d=a("tdv/player/view/webgl/system/cameraControls/CameraControlBehaviourMixin"),f=a("tdv/player/view/webgl/system/cameraControls/DraggingObserver"),l=a("tdv/player/view/webgl/system/cameraControls/Object3DMovingSetter"),p=a("tdv/player/view/webgl/system/cameraControls/PropertiesSetter");a("tdv/player/view/webgl/system/cameraControls/SequencesController"); var q=a("tdv/player/view/webgl/system/util/mixin/KeyboardMixin"),r=a("tdv/player/view/webgl/system/util/mixin/MouseMixin"),t=a("tdv/view/constants/Cursor"),u=a("tdv/view/util/Ease"),v=a("tdv/view/util/EaseDimension");g.A6(m,[d,q,r]);m.prototype.update=function(){var V=this.B.getComponent(c.NF);this.Oj(V&&V.properties);this.vs.bQ(V&&V.properties,"moving");var X=(!V.PO||!f.oP(this.B.T))&&V.enabled;this.X4(V&&(X?V.Rf:null));this.WS(!!V&&X&&V.kE);X||this.QH();X&&V.kE||(this.Wo=this.Vo=this.Nl=this.Zk= this.Ol=0)};m.prototype.frame=function(V){this.Vi&&(this.Vi.Nb(V),this.Ka.setX(this.Vi.ob("x")),this.Ka.setY(this.Vi.ob("y")),this.Ka.setZ(this.Vi.ob("z")),this.Ka.Xn(this.Vi.ob("distance")),this.Ka.Xj(0),this.Vi.Ve()&&(this.Vi=null));this.uh&&(this.uh=Math.max(0,this.uh-V/this.Gga),this.Ka.setX(this.A.get("x")+this.qH*this.uh),this.Ka.setY(this.A.get("y")+this.rH*this.uh),this.Ka.setZ(this.A.get("z")+this.sH*this.uh),this.Ka.rj(this.A.get("yaw")+this.oH*this.uh),this.Ka.Zn(this.A.get("pitch")+this.nH* this.uh),this.Ka.Xj(0),this.B.T.Qa(),this.uh==0&&this.LU());if(this.Wo||this.Vo||this.Nl||this.Zk||this.Ol){var X=V/1E3;this.Uha(this.Nl*X,this.Zk*X,this.Ol*X,this.Wo*X,this.Vo*X)}if(this.qd==w&&this.im!==void 0&&!this.Zk&&this.A.get("keepHeight")&&this.uS!==void 0&&Math.abs(this.im-this.A.get("y"))>T){this.rM=Math.max(this.rM-V,0);X=this.A.get("y");var S=this.im-X;this.Ka.setY(X+Math.min(V*this.uS,Math.abs(S))*(S>0?1:-1));this.B.T.Qa()}this.qd!=w||!this.Ls||this.uh||this.Vi||(this.EG(),this.B.T.Qa()); this.vs.Bsa()};m.prototype.OT=function(){this.Rla()};m.prototype.Rla=function(){var V=this.Ol!=0||this.Zk!=0||this.Nl!=0;this.Wo=this.Vo=this.Ol=this.Zk=this.Nl=0;var X=this.Ig[e.ua.Mp]?1:this.Ig[e.ua.Sp]?-1:0,S=this.Ig[e.ua.so]?1:this.Ig[e.ua.po]?-1:0,W=this.Ig[e.ua.Q]?1:this.Ig[e.ua.E]?-1:0,Z=this.Ig[e.ua.bk]?1:this.Ig[e.ua.Ji]?-1:0,ca=this.Ig[e.ua.fb]?1:this.Ig[e.ua.Db]?-1:0;if(Z||ca||X||S||W){var fa=this.rk?.2:1;X&&(this.Nl=-X*fa*this.A.get("translationSpeed"));W&&(this.Zk=-W*fa*this.A.get("translationSpeed")); S&&(this.Ol=-S*fa*this.A.get("translationSpeed"));ca&&(this.Wo=-ca*fa*100*this.A.get("rotationSpeed"));Z&&(this.Vo=Z*fa*100*this.A.get("rotationSpeed"));this.EG();this.B.T.Qa();this.Hja();this.r0a();X=this.Ol!=0||this.Zk!=0||this.Nl!=0;!V&&X&&this.LU()}};m.prototype.t3=function(){this.zj=!0;this.qd==F||this.qd==C||n()1?1/Math.sqrt(Z):1;V*=Z;X*= Z;Z=this.Y1a();this.qd!=Z?(this.qd=Z,this.qd==y?this.B9a(S,W):this.qd==x?this.zFa():this.qd==z?this.P9a():this.qd==D&&this.N9a()):this.qd!=w&&(this.qd==y?this.mab(V,X,S,W):this.qd==x?this.Qab(V,X):this.qd==z?this.Sab(V,X):this.qd==D&&this.Pab(V,X))}};m.prototype.QH=function(){this.l4(t.Li);this.zj=!1;this.qd!=w&&(this.qd=w,this.ik=null,this.xFa(),this.Hja(),this.Eza(),this.B.T.Qa())};m.prototype.u3=function(V){this.qd!=A?(this.qd=A,this.J9a()):this.Cab(V);this.Tha&&clearTimeout(this.Tha);this.Tha= setTimeout(function(){this.Tha=null;this.qd==A&&(this.qd=w,this.Dv())}.bind(this),1E3)};m.prototype.zBa=function(V,X,S,W,Z,ca,fa,ja,ha,ka){this.qd!=F&&this.qd!=C?(V=Math.abs(ca-Z)>.05,S=h(ha,ka)>5,X=Math.abs(W-X)>.02*this.cH(),ha=Math.min(Math.abs(ha),180-Math.abs(ha),Math.abs(ka),180-Math.abs(ka))<10,fa=fa/this.Gy()<.2,(V||X)&&(ha||fa)?(this.qd=C,this.O9a()):!S&&!V||ha&&fa||(this.qd=F,this.Q9a())):this.qd==F?this.Tab(Z,ca,ha,ka):this.qd==C&&this.Rab(X,W,Z,ca)};m.prototype.oia=function(){this.ik= null;this.qd==F&&this.xFa();this.qd=w;this.mya=n();this.Hja();this.Eza();this.B.T.Qa()};m.prototype.YM=function(V,X){if(this.A.get("doubleClickAction")=="zoom"){var S=b.Sf(this.B),W=b.zt(this.B);W&&S&&(ea.set(V,X),this.qT(ea),V=this.IS(ea,W),V.length!=0&&(this.Dv(),this.EG(),V=V[0].point,B.setFromMatrixPosition(W.matrixWorld),this.Vi=new u("quad_in_out",[new v("x",B.x,(V.x+B.x)*.5),new v("y",B.y,(V.y+B.y)*.5),new v("z",B.z,(V.z+B.z)*.5),new v("distance",0,0)],500)))}};m.prototype.Y1a=function(){return this.nT? this.rk?x:y:this.BM()?this.rk?D:z:w};m.prototype.B9a=function(V,X){this.wN();this.EG();this.LXa(V,X);this.A.get("keepHeight")&&this.y5();this.B.T.Qa()};m.prototype.mab=function(V,X,S,W){var Z=b.zt(this.B);Z&&(B.setFromMatrixPosition(Z.matrixWorld),this.ik?(H.set(S,W,0),this.qT(H),H.unproject(Z),V=this.ik.x-B.x,X=this.ik.z-B.z,Math.atan2(this.ik.y-B.y,Math.sqrt(X*X+V*V))*U>-2?(G.copy(this.ik).applyMatrix4(Z.matrixWorldInverse),N.copy(H).applyMatrix4(Z.matrixWorldInverse),V=G.z/N.z,E.copy(N).multiplyScalar(V).applyMatrix4(Z.matrixWorld).sub(this.ik), E.y!=0&&this.Dv()):(V=(this.ik.y-B.y)/(H.y-B.y),E.copy(H).sub(B).multiplyScalar(V).add(B).sub(this.ik)),E.multiplyScalar(-1)):(Y.makeRotationFromEuler(ia.set(0,-this.A.get("yaw")*L,0,"YXZ")),aa.set(-V*this.A.get("translationSpeed")/this.Gy(),0,-X*this.A.get("translationSpeed")/this.Gy()).applyMatrix4(Y),E.copy(aa).multiplyScalar(this.wI*10)),this.Ka.setX(B.x+E.x),this.Ka.setY(B.y+E.y),this.Ka.setZ(B.z+E.z),this.aO(E.x,E.y,E.z,0,0),this.Ka.Xj(this.cn))};m.prototype.zFa=function(){this.wN();this.ik= null;this.jda();this.Dv();this.B.T.Qa()};m.prototype.Qab=function(V,X){var S;S||(S=1);V=V*360/this.lS()*this.A.get("rotationSpeed");X=-X*180/this.cH()*this.A.get("rotationSpeed");this.Ka.rj(this.A.get("yaw")+V);this.Ka.Zn(this.A.get("pitch")+X);this.Ka.Xn(this.Xia/S);this.aO(0,0,0,V,X);this.Ka.Xj(this.cn);this.B.T.Qa()};m.prototype.P9a=function(){this.zFa()};m.prototype.Sab=function(V,X){var S=b.zt(this.B),W=this.A.get("distance")||this.gj||1;X=X*W*2*Math.tan(S.fov*L/2)/this.cH();X!=0&&this.Dv(); this.Ka.setY(this.A.get("y")+X);V=V*360/this.lS()*this.A.get("rotationSpeed");this.Ka.rj(this.A.get("yaw")+V);this.aO(0,X,0,V,0);this.Ka.Xj(this.cn)};m.prototype.N9a=function(){this.wN();this.EG();this.Dv();this.B.T.Qa()};m.prototype.Pab=function(V,X){V=-V*360/this.lS()*this.A.get("rotationSpeed");X=X*180/this.cH()*this.A.get("rotationSpeed");this.Ka.rj(this.A.get("yaw")+V);this.Ka.Zn(this.A.get("pitch")+X);this.aO(0,0,0,V,X);this.Ka.Xj(this.cn);this.B.T.Qa()};m.prototype.J9a=function(){this.Dv(); this.wN();this.ik=null;this.EG();this.A.get("keepHeight")&&this.y5();this.B.T.Qa()};m.prototype.Cab=function(V){this.w8a(aa);aa.multiplyScalar(-V*this.A.get("translationSpeed")*(this.wI||1));this.gj&&this.Sva(this.gj+aa.y);this.Ka.setX(this.A.get("x")+aa.x);this.Ka.setY(this.A.get("y")+aa.y);this.Ka.setZ(this.A.get("z")+aa.z);this.Ka.Xj(this.vI)};m.prototype.Q9a=function(){this.wN();this.ik=null;this.jda();this.Dv();this.B.T.Qa();this.yv=void 0};m.prototype.Tab=function(V,X,S,W){this.yv!==void 0|| (this.yv=S);S=h(this.yv,W);this.yv=W;this.Ka.rj(this.A.get("yaw")+S);this.Ka.Xn(this.Xia*V/X);this.aO(0,0,0,S,0);this.Ka.Xj(this.cn);this.B.T.Qa()};m.prototype.O9a=function(){this.wN();this.ik=null;this.jda();this.Dv();this.B.T.Qa();this.q4=void 0};m.prototype.Rab=function(V,X,S,W){this.q4!==void 0||(this.q4=V);V=-(X-this.q4)*180/this.cH();this.q4=X;this.Ka.Zn(this.A.get("pitch")+V);this.Ka.Xn(this.Xia*S/W);this.aO(0,0,0,0,V);this.Ka.Xj(this.cn);this.B.T.Qa()};m.prototype.LXa=function(V,X){var S= b.Sf(this.B),W=b.zt(this.B);this.ik=null;W&&S&&(ea.set(V,X),this.qT(ea),V=this.IS(ea,W),V.length&&(this.ik=V[0].point))};m.prototype.jda=function(){this.Ls=null;var V=b.Sf(this.B),X=b.zt(this.B);X&&V&&(ea.set(0,0),V=this.IS(ea,X),V.length&&(this.Ls=V[0].point),this.Ls||(this.Ls=(new THREE.Vector3).setFromMatrixPosition(X.matrixWorld)),this.A.set("distance",B.setFromMatrixPosition(X.matrixWorld).distanceTo(this.Ls)),this.Xia=this.A.get("distance"),this.A.set("x",this.Ls.x),this.A.set("y",this.Ls.y), this.A.set("z",this.Ls.z),this.A.set("easing",0))};m.prototype.EG=function(){this.Ls&&(this.Ls=null,B.setFromMatrixPosition(b.zt(this.B).matrixWorld),this.A.set("distance",0),this.A.set("x",B.x),this.A.set("y",B.y),this.A.set("z",B.z),this.A.set("easing",0))};var w="none",y="dragging",x="rotating",z="rotating yaw dragging y",A="moving front",D="rotating around camera",F="rotating yaw gesture",C="rotating pitch gesture",B=new THREE.Vector3,H=new THREE.Vector3,E=new THREE.Vector3,G=new THREE.Vector3, N=new THREE.Vector3;m.prototype.Oj=function(V){this.A!=V&&(this.A&&(this.Ka=null,R.forEach(function(X){this.A.h(k.L(X),this.YGa,this,!1)}.bind(this)),Q.forEach(function(X){this.A.h(k.L(X),this.$z,this,!1)}.bind(this)),K.forEach(function(X){this.A.h(k.L(X),this.ct,this,!1)}.bind(this)),this.A.set("userInteracting",!1)),this.A=V)&&(this.Ka=new p(this.A),R.forEach(function(X){this.A.bind(k.L(X),this.YGa,this,!1)}.bind(this)),Q.forEach(function(X){this.A.bind(k.L(X),this.$z,this,!1)}.bind(this)),K.forEach(function(X){this.A.bind(k.L(X), this.ct,this,!1)}.bind(this)),this.$z(),this.ct(),this.A.set("userInteracting",!1))};m.prototype.$z=function(){if(this.B&&this.A){var V=this.B.O(c.ta,!0);V.translationX=this.A.get("x");var X=this.A.get("y")-V.translationY;Math.abs(X)>T&&(V.translationY=this.A.get("y"),this.qd!=w||this.Nl||this.Zk||this.Ol||this.Wo||this.Vo||this.Vi||this.uh||this.Dv());V.Ze=this.A.get("z");V.fd=-this.A.get("yaw");V.Yd=this.A.get("pitch");V.Xe=0;V.mf="YXZ";V.positionX=0;V.positionY=0;V.positionZ=this.A.get("distance"); V.easing=this.A.get("easing");(this.A.get("minHeight")!==void 0||this.A.get("keepHeight"))&&this.kHa()}};m.prototype.ct=function(){this.B&&this.A&&(this.B.O(c.PerspectiveCamera,!0).fov=this.A.get("fov"))};m.prototype.Uha=function(V,X,S,W,Z){var ca=this.B.getComponent(c.ta);ca&&(Y.makeRotationFromEuler(ia.set(0,ca.fd*L,0,ca.mf)),aa.set(V,X,S).applyMatrix4(Y).multiplyScalar(this.wI),this.gj!==void 0&&(this.gj+=aa.y,this.LU()),this.Ka.setX(this.A.get("x")+aa.x),this.Ka.setY(this.A.get("y")+aa.y),this.Ka.setZ(this.A.get("z")+ aa.z),this.Ka.rj(this.A.get("yaw")+W),this.Ka.Zn(this.A.get("pitch")+Z),this.Ka.Xj(this.cn))};m.prototype.w8a=function(V){var X=this.B.getComponent(c.ta);X&&(Y.makeRotationFromEuler(ia.set(X.Yd*L,X.fd*L,X.Xe*L,X.mf)),V.set(0,0,1).applyMatrix4(Y))};m.prototype.wN=function(){this.AC=n();this.hk=1;this.ty=this.uy=this.wy=this.vy=this.sy=0;this.uh=this.qH=this.rH=this.sH=this.oH=this.nH=void 0};m.prototype.aO=function(V,X,S,W,Z){var ca=n();this.hk=ca-this.AC;this.AC=ca;this.ty=V;this.uy=X;this.wy=S;this.vy= W;this.sy=Z};m.prototype.xFa=function(){this.hk&&(this.qH=this.ty/this.hk,this.rH=this.uy/this.hk,this.sH=this.wy/this.hk,this.oH=this.vy/this.hk,this.nH=this.sy/this.hk,this.uh=1)};m.prototype.YGa=function(){this.A.get("minHeight")!==void 0&&(this.gj===void 0&&this.y5(),this.gj!==void 0&&this.gj0)return W[0].distance;W=this.Lga(aa.set(V,X+1E3,S),ba.set(0,-1,0));if(W.length>0)return W[W.length-1].distance-1E3};m.prototype.Lga=function(V,X){da.ray.origin.copy(V);da.ray.direction.copy(X);return da.intersectObjects(this.eH(),!1)};m.prototype.IS=function(V,X){da.setFromCamera(V,X);return da.intersectObjects(this.eH(),!1)};m.prototype.eH=function(){var V=this.B&&b.Sf(this.B);if(!V)return[]; var X=[];V.traverse(function(S){S.isSprite||S.isLine||X.push(S)});return X};m.prototype.ks=function(V){V.set(0,0,0);this.A&&(V.applyMatrix4(Y.makeTranslation(0,0,this.A.get("distance"))),V.applyMatrix4(Y.makeRotationFromEuler(ia.set(this.A.get("pitch")*L,-this.A.get("yaw")*L,0*L,"YXZ"))),V.applyMatrix4(Y.makeTranslation(this.A.get("x"),this.A.get("y"),this.A.get("z"))))};m.prototype.G1a=function(V){this.A?(Y.makeRotationFromEuler(ia.set(this.A.get("pitch")*L,-this.A.get("yaw")*L,0,"YXZ")),V.set(0, 0,-1).applyMatrix4(Y)):V.set(0,0,-1)};var O=[e.ua.bk,e.ua.Ji,e.ua.fb,e.ua.Db,e.ua.Mp,e.ua.po,e.ua.Sp,e.ua.so,e.ua.Q,e.ua.E],R=["minHeight"],Q="minYaw maxYaw yaw minPitch maxPitch pitch minX maxX x minY maxY y minZ maxZ z distance easingSpeed".split(" "),K=["minFov","maxFov","fov"],L=Math.PI/180,U=180/Math.PI,T=1E-6,Y=new THREE.Matrix4,aa=new THREE.Vector3(0,0,0),ba=new THREE.Vector3(0,0,0),ea=new THREE.Vector2(0,0),ia=new THREE.Euler,da=new THREE.Raycaster;m.prototype.dispose=function(){this.EG(); this.Oj(null);this.hha();this.Qha();this.vs.ya()};m.Wa=function(V){V.N(c.Lr).manager=new m(V)};m.ya=function(V){var X=V.getComponent(c.Lr);X.manager.dispose();X.manager=null;V.ka(c.Lr)};m.update=function(V){V.getComponent(c.Lr).manager.update()};m.frame=function(V,X,S){V.getComponent(c.Lr).manager.frame(X,S)};return m}); define("tdv/player/view/webgl/system/cameraControls/OrbitBehaviour","require tdv/utils tdv/constants/EventName tdv/constants/Key tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/system/cameraControls/CameraControlBehaviourMixin tdv/player/view/webgl/system/cameraControls/DraggingObserver tdv/player/view/webgl/system/cameraControls/Object3DMovingSetter tdv/player/view/webgl/system/cameraControls/PropertiesSetter tdv/player/view/webgl/system/util/mixin/KeyboardMixin tdv/player/view/webgl/system/util/mixin/MouseMixin tdv/view/constants/Cursor".split(" "),function(a){function m(B){this.B= B;this.gha(D);this.Pha();this.vs=new d(B);this.jl=new THREE.Matrix4;this.vI=.05;this.cn=.25;this.Nl=this.Zk=this.Ol=this.Wo=this.Vo=0;this.qH=this.rH=this.sH=this.oH=this.nH=this.AC=this.hk=this.ty=this.uy=this.wy=this.vy=this.sy=void 0;this.Gga=1E3;this.nEa=720;this.hGa=4;this.aAa=720;this.iha=2;this.Ka=null;this.hI(q.IB);this.update()}var h=a("tdv/utils"),n=a("tdv/constants/EventName"),g=a("tdv/constants/Key"),k=a("tdv/player/view/webgl/components"),e=a("tdv/player/view/webgl/system/util/entity/Util"), b=a("tdv/player/view/webgl/system/cameraControls/CameraControlBehaviourMixin"),c=a("tdv/player/view/webgl/system/cameraControls/DraggingObserver"),d=a("tdv/player/view/webgl/system/cameraControls/Object3DMovingSetter"),f=a("tdv/player/view/webgl/system/cameraControls/PropertiesSetter"),l=a("tdv/player/view/webgl/system/util/mixin/KeyboardMixin"),p=a("tdv/player/view/webgl/system/util/mixin/MouseMixin"),q=a("tdv/view/constants/Cursor");h.A6(m,[b,l,p]);m.prototype.update=function(){var B=this.B.getComponent(k.UF); this.Oj(B&&B.properties);this.vs.bQ(B&&B.properties,"moving");var H=(!B.PO||!c.oP(this.B.T))&&B.enabled;this.X4(B&&(H?B.Rf:null));this.WS(!!B&&H&&B.kE);H||this.QH();H&&B.kE||(this.Wo=this.Vo=this.Nl=this.Zk=this.Ol=0)};m.prototype.frame=function(B){this.uh&&(this.uh=Math.max(0,this.uh-B/this.Gga),this.Ka.setX(this.A.get("x")+this.qH*this.uh),this.Ka.setY(this.A.get("y")+this.rH*this.uh),this.Ka.setZ(this.A.get("z")+this.sH*this.uh),this.Ka.rj(this.A.get("yaw")+this.oH*this.uh),this.Ka.Zn(this.A.get("pitch")+ this.nH*this.uh),this.B.T.Qa());if(this.Wo||this.Vo||this.Nl||this.Zk||this.Ol)B/=1E3,this.Uha(this.Nl*B,this.Zk*B,this.Ol*B,this.Wo*B,this.Vo*B);this.vs.Bsa()};m.prototype.OT=function(){this.Rla()};m.prototype.Rla=function(){this.Wo=this.Vo=this.Ol=this.Zk=this.Nl=0;var B=this.Ig[g.ua.Mp]?1:this.Ig[g.ua.Sp]?-1:0,H=this.Ig[g.ua.so]?1:this.Ig[g.ua.po]?-1:0,E=this.Ig[g.ua.Q]?1:this.Ig[g.ua.E]?-1:0,G=this.Ig[g.ua.bk]?1:this.Ig[g.ua.Ji]?-1:0,N=this.Ig[g.ua.fb]?1:this.Ig[g.ua.Db]?-1:0;if(B||H||E||G||N){var O= this.rk?.2:1;B&&(this.Nl=-B*O*this.iha*this.A.get("translationSpeed"));E&&(this.Zk=-E*O*this.iha*this.A.get("translationSpeed"));H&&(this.Ol=-H*O*this.iha*this.A.get("translationSpeed"));N&&(this.Wo=N*O*this.aAa*this.A.get("rotationSpeed"));G&&(this.Vo=-G*O*this.aAa*this.A.get("rotationSpeed"));this.B.T.Qa()}};m.prototype.t3=function(){this.hI(q.Li);this.zj=!0;this.AC=(new Date).getTime();this.hk=1;this.ty=this.uy=this.wy=this.vy=this.sy=0;this.uh=this.qH=this.rH=this.sH=this.oH=this.nH=void 0;this.B.T.Qa()}; m.prototype.s3=function(B,H){if(this.zj){var E=(B*B+H*H)/2500;E=E>1?1/Math.sqrt(E):1;B*=E;H*=E;E=(new Date).getTime();this.hk=E-this.AC;this.AC=E;this.ty=this.uy=this.wy=this.vy=this.sy=0;E=this.nT;this.rk&&(E=!E);E?(this.vy=+B*this.A.get("rotationSpeed")*this.nEa/this.Gy(),this.sy=-H*this.A.get("rotationSpeed")*this.nEa/this.Gy(),this.mEa(this.vy,this.sy)):(this.Fya(B*this.hGa/this.Gy(),H*this.hGa/this.Gy(),u),this.ty=u.x,this.uy=u.y,this.wy=u.z,this.pla(this.ty,this.uy,this.wy));this.Ka.Xj(this.cn)}}; m.prototype.Fya=function(B,H,E){var G=this.B.getComponent(k.ta);E.set(-B*this.A.get("translationSpeed"),+H*this.A.get("translationSpeed"),0*this.A.get("translationSpeed"));E.applyMatrix4(z.makeRotationFromEuler(x.set(G.Yd*r,G.fd*r,G.Xe*r,G.mf)));E.multiplyScalar(this.A.get("distance"))};m.prototype.QH=function(){this.l4(q.Li);this.zj&&(this.zj=!1,this.hk&&(this.qH=this.ty/this.hk,this.rH=this.uy/this.hk,this.sH=this.wy/this.hk,this.oH=this.vy/this.hk,this.nH=this.sy/this.hk,this.uh=1,this.Ka.Xj(this.cn)), this.AC=void 0)};m.prototype.u3=function(B){this.Ka.Xn(this.A.get("distance")-B*this.A.get("distance")*this.A.get("translationSpeed"));this.Ka.Xj(this.vI)};m.prototype.YM=function(B,H){if(this.A.get("doubleClickAction")=="center"){var E=e.Sf(this.B),G=e.zt(this.B);G&&E&&(w.set(B,H),this.qT(w),B=this.IS(w,G),B.length!=0&&(B=B[0].point,H=u.setFromMatrixPosition(G.matrixWorld).sub(B),G=H.length(),y.setFromUnitVectors(v.set(0,0,1),H.normalize()),x.setFromQuaternion(y,"YXZ"),H=x.x*t,this.Ka.rj(-x.y*t), this.Ka.Zn(H),this.Ka.Xn(G),this.Ka.setX(B.x),this.Ka.setY(B.y),this.Ka.setZ(B.z),this.Ka.Xj(this.vI)))}};m.prototype.ABa=function(){this.Fza=this.A.get("distance");this.zj=!1};m.prototype.nia=function(B,H,E){this.Fya(B/this.Gy(),H/this.Gy(),u);this.pla(u.x,u.y,u.z);this.Ka.Xn(this.Fza/E);this.Ka.Xj(this.cn)};m.prototype.oia=function(){this.Fza=this.A.get("distance")};m.prototype.Uha=function(B,H,E,G,N){var O=this.B.getComponent(k.ta);O&&(z.makeRotationFromEuler(x.set(0,O.fd*r,0,O.mf)),u.set(B,H, E).applyMatrix4(z).multiplyScalar(this.A.get("distance")),this.pla(u.x,u.y,u.z),this.mEa(G,N),this.Ka.Xj(this.cn))};m.prototype.pla=function(B,H,E){this.Ka.setX(this.A.get("x")+B);this.Ka.setY(this.A.get("y")+H);this.Ka.setZ(this.A.get("z")+E)};m.prototype.mEa=function(B,H){this.Ka.rj(this.A.get("yaw")+B);this.Ka.Zn(this.A.get("pitch")+H)};m.prototype.Oj=function(B){this.A!=B&&(this.A&&(this.Ka=null,F.forEach(H=>{this.A.h(n.L(H),this.$z,this)}),C.forEach(H=>{this.A.h(n.L(H),this.ct,this)}),this.A.set("userInteracting", !1)),this.A=B)&&(this.A.set("userInteracting",!1),this.Ka=new f(this.A),F.forEach(H=>{this.A.bind(n.L(H),this.$z,this)}),C.forEach(H=>{this.A.bind(n.L(H),this.ct,this)}),this.$z(),this.ct())};m.prototype.IS=function(B,H){A.setFromCamera(B,H);return A.intersectObjects(this.eH(),!1)};m.prototype.eH=function(){var B=this.B&&e.Sf(this.B);if(!B)return[];var H=[];B.traverse(function(E){E.isSprite||E.isLine||H.push(E)});return H};m.prototype.$z=function(){if(this.B&&this.A){var B=this.B.O(k.ta,!0);B.translationX= this.A.get("x");B.translationY=this.A.get("y");B.Ze=this.A.get("z");B.fd=-this.A.get("yaw");B.Yd=this.A.get("pitch");B.Xe=0;B.mf="YXZ";B.positionX=0;B.positionY=0;B.positionZ=this.A.get("distance");B.easing=this.A.get("easing")}};m.prototype.ct=function(){this.B&&this.A&&(this.B.O(k.PerspectiveCamera,!0).fov=this.A.get("fov"))};var r=Math.PI/180,t=180/Math.PI,u=new THREE.Vector3(0,1,0),v=new THREE.Vector3(0,1,0),w=new THREE.Vector2(0,0),y=new THREE.Quaternion,x=new THREE.Euler,z=new THREE.Matrix4, A=new THREE.Raycaster,D=[g.ua.bk,g.ua.Ji,g.ua.fb,g.ua.Db,g.ua.Mp,g.ua.po,g.ua.Sp,g.ua.so,g.ua.Q,g.ua.E],F="easing minYaw maxYaw yaw minPitch maxPitch pitch minDistance maxDistance distance minX maxX x minY maxY y minZ maxZ z".split(" "),C=["minFov","maxFov","fov"];m.prototype.dispose=function(){this.Oj(null);this.hha();this.Qha();this.vs.ya()};m.Wa=function(B){B.N(k.Rr).manager=new m(B)};m.ya=function(B){var H=B.getComponent(k.Rr);H.manager.dispose();H.manager=null;B.ka(k.Rr)};m.update=function(B){B.getComponent(k.Rr).manager.update()}; m.frame=function(B,H,E){B.getComponent(k.Rr).manager.frame(H,E)};return m}); define("tdv/player/view/webgl/system/cameraControls/TransitionBehaviour","require exports tdv/player/view/util/XR tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/components three.mod".split(" "),function(a,m,h,n,g,k){a=function(){function r(t){this.F=t;this.properties=this.F.getComponent(g.Kx).properties;this.nj()&&this.mcb();this.update()}r.prototype.update=function(){this.properties=this.F.getComponent(g.Kx).properties;this.nj()||this.CIa()};r.prototype.frame=function(){this.nj()? this.lcb():this.CIa()};r.prototype.mcb=function(){this.qKa();var t=this.DLa();h.setPosition({x:t.x,y:t.y,z:t.z,yaw:this.properties.get("yaw")});this.MRa()};r.prototype.lcb=function(){this.qKa();var t=this.DLa();h.setPosition({x:t.x,y:t.y,z:t.z,yaw:void 0});this.MRa();this.properties.set("yaw",-c.setFromQuaternion(h.ug).y*e)};r.prototype.MRa=function(){h.setScale(this.F.getComponent(g.Kx).pf||1)};r.prototype.CIa=function(){var t=this.F.O(g.ta,!0);t.translationX=this.properties.get("x");t.translationY= this.properties.get("y");t.Ze=this.properties.get("z");t.fd=-this.properties.get("yaw");t.Yd=this.properties.get("pitch");t.Xe=0;t.mf="YXZ";t.positionX=0;t.positionY=0;t.positionZ=this.properties.get("distance",0);t.easing=0;this.F.O(g.PerspectiveCamera,!0).fov=this.properties.get("fov")};r.prototype.qKa=function(){var t=n.Sf(this.F),u=this.F.getComponent(g.Sk);u=u&&u.camera;h.Nw!==u&&h.ura(h.Ag,t,u,h.SQ.Tba)};r.prototype.nj=function(){return this.F.getComponent(g.PerspectiveCamera).nj};r.prototype.DLa= function(){var t=this.properties.get("x"),u=this.properties.get("y"),v=this.properties.get("z"),w=this.properties.get("pitch"),y=this.properties.get("yaw"),x=this.properties.get("distance");d.identity();d.multiply(f.makeTranslation(t,u,v));d.multiply(f.makeRotationFromEuler(c.set(w*b,-y*b,0,"YXZ")));d.multiply(f.makeTranslation(0,0,x));d.decompose(l,q,p);return l};r.Wa=function(t){t.N(g.Ku).manager=new r(t)};r.update=function(t){t.getComponent(g.Ku).manager.update()};r.frame=function(t,u,v){t.getComponent(g.Ku).manager.frame(u, v)};r.ya=function(t){t.getComponent(g.Ku).manager=null;t.ka(g.Ku)};return r}();var e=180/Math.PI,b=Math.PI/180,c=new k.Euler,d=new k.Matrix4,f=new k.Matrix4,l=new k.Vector3,p=new k.Vector3,q=new k.Quaternion;return a}); define("tdv/player/view/webgl/system/cameraControls/XRBasicBehaviour",["require","exports","tdv/constants/EventName","tdv/player/view/util/XR","tdv/player/view/webgl/components"],function(a,m,h,n,g){return function(){function k(e){this.locked=!0;this.Di=!1;this.F=e;n.M.bind(h.V,this.Ta,this,!0);this.update()}k.prototype.update=function(){var e=this.F.getComponent(g.dG);e=(e===null||e===void 0?void 0:e.locked)||!1;!e&&this.locked&&(this.Di=!0);this.locked=e;this.Di&&n.a$()};k.prototype.frame=function(){this.locked|| (this.Di=!1)};k.prototype.dispose=function(){n.M.h(h.V,this.Ta,this)};k.prototype.Ta=function(){this.F.O(g.Zp)};k.Wa=function(e){e.N(g.Zp).manager=new k(e)};k.update=function(e){e.getComponent(g.Zp).manager.update()};k.frame=function(e,b,c){e.getComponent(g.Zp).manager.frame(b,c)};k.ya=function(e){var b=e.getComponent(g.Zp);b.manager.dispose();b.manager=null;e.ka(g.Zp)};return k}()}); define("tdv/player/view/webgl/system/cameraControls/XRDragBehaviour","require exports tdv/constants/EventName tdv/player/view/util/XR tdv/player/view/webgl/system/cameraControls/CollidableObjects tdv/player/view/webgl/components three.mod".split(" "),function(a,m,h,n,g,k,e){a=function(){function x(z){this.locked=!0;this.Di=!1;this.Nna=this.pm=this.Ae=null;this.f7=new e.Matrix4;this.jJ=new e.Vector3;this.QP=new Map;this.pf=1;this.dF=0;this.qu=!1;this.Jk=0;this.vk=null;this.EE=new e.Vector3;this.Hd= new e.Vector3;this.W8=new e.Quaternion;this.xY=this.yY=this.zY=0;this.cA=new e.Box3(new e.Vector3(-Infinity,-Infinity,-Infinity),new e.Vector3(Infinity,Infinity,Infinity));this.F=z;this.Ck=this.Ck.bind(this);this.mt=new g(this.F);n.M.bind(h.V,this.Ta,this,!0);this.update()}x.prototype.update=function(){var z=this.F.getComponent(k.mL),A=(z===null||z===void 0?void 0:z.locked)||!1;!A&&this.locked&&(this.Di=!0);this.locked=A;this.pf=(z===null||z===void 0?void 0:z.pf)||1;this.Jk=z===null||z===void 0?void 0: z.Jk;this.fF();this.properties=z.properties;this.locked||(n.setScale(this.pf),this.FW(),this.Ck());this.Di&&(b.setFromQuaternion(n.xl),n.setPosition({pitch:b.x*w,roll:b.z*w}),this.YI())};x.prototype.frame=function(z){if(!this.locked){this.nu();this.IZ();this.YI();if(!this.properties.get("controllingPosition")){this.Hd.copy(n.Ec);this.W8.copy(n.ug);var A;(A=this.xW())||(A=this.Rma(z));A||(A=this.yW(z));A&&(z={},n.Ec.equals(this.Hd)||(z.x=this.Hd.x,z.y=this.Hd.y,z.z=this.Hd.z),n.ug.equals(this.W8)|| (b.setFromQuaternion(this.W8,"YXZ"),z.yaw=-b.y*w,z.pitch=b.x*w,z.roll=b.z*w),n.setPosition(z))}this.XI();this.xO();this.Di=!1}};x.prototype.dispose=function(){n.M.h(h.V,this.Ta,this);this.properties.set("userInteracting",!1);this.fF();this.lf();this.jZ([])};x.prototype.fF=function(){x.NB.forEach(function(z){var A;(A=this.properties)===null||A===void 0||A.h(h.L(z),this.Ck,this)}.bind(this))};x.prototype.FW=function(){x.NB.forEach(function(z){var A;(A=this.properties)===null||A===void 0||A.bind(h.L(z), this.Ck,this,!0)}.bind(this))};x.prototype.Ck=function(){this.cA.min.set(this.properties.get("minX",-Infinity),this.properties.get("minY",-Infinity),this.properties.get("minZ",-Infinity));this.cA.max.set(this.properties.get("maxX",Infinity),this.properties.get("maxY",Infinity),this.properties.get("maxZ",Infinity))};x.prototype.YI=function(){var z=this.properties.get("x"),A=this.properties.get("y"),D=this.properties.get("z"),F=this.properties.get("yaw"),C=this.properties.get("pitch"),B=this.properties.get("distance"); if(z!==this.EE.x||A!==this.EE.y||D!==this.EE.z||F!==this.zY||C!==this.yY||B!==this.xY)this.EE.set(z,A,D),l.identity(),l.multiply(p.makeTranslation(z,A,D)),l.multiply(p.makeRotationFromEuler(b.set(C*y,-F*y,0,"YXZ"))),l.multiply(p.makeTranslation(0,0,B)),l.decompose(d,c,f),b.setFromQuaternion(c,"YXZ"),n.setPosition({x:d.x,y:d.y,z:d.z,yaw:-b.y*w})};x.prototype.XI=function(){d.copy(n.Ec).sub(this.EE);var z=d.length();b.setFromQuaternion(c.setFromUnitVectors(u,d.multiplyScalar(1/z)),"YXZ");this.properties.set("x", this.EE.x);this.properties.set("y",this.EE.y);this.properties.set("z",this.EE.z);this.properties.set("yaw",-b.y*w);this.properties.set("pitch",b.x*w);this.properties.set("roll",b.z*w);this.properties.set("distance",z)};x.prototype.xO=function(){this.zY=this.properties.get("yaw");this.yY=this.properties.get("pitch");this.xY=this.properties.get("distance")};x.prototype.nu=function(){this.jZ((x.kF.get(this.F.T)||[]).map(function(z){return z.getComponent(k.zc)}))};x.prototype.jZ=function(z){var A=[], D=[];this.QP.forEach(function(F){z.indexOf(F)===-1&&A.push(F)}.bind(this));z.forEach(function(F){this.QP.has(F.M)||D.push(F)}.bind(this));this.pm&&z.indexOf(this.pm)===-1&&this.lf();A.forEach(function(F){this.AY(F.M);this.QP.delete(F.M)}.bind(this));D.forEach(function(F){this.vW(F.M);this.QP.set(F.M,F)}.bind(this));this.Ae=z.find(function(F){return F.Ug})||null};x.prototype.vW=function(z){z.bind(h.ma,this.Lt,this,!0);z.bind(h.Sa,this.$h,this,!0)};x.prototype.AY=function(z){z.h(h.ma,this.Lt,this); z.h(h.Sa,this.$h,this)};x.prototype.Ta=function(){this.F.O(k.$p)};x.prototype.Lt=function(z){this.properties.get("inMandatorySequence")||z.data.CX||z.data.type=="other"||this.properties.get("clickTranslationDisabled")||(z=this.QP.get(z.source),z=this.mt.IX(z),z.length!=0&&(this.vk=z[0].point))};x.prototype.$h=function(z){if(!this.properties.get("inMandatorySequence")&&!this.properties.get("mouseDisabled")){this.lf();z=z.source;var A=this.QP.get(z),D=this.mt.IX(A);D.length!=0&&(this.pm=A,this.Nna= z,this.Nna.bind(h.$a,this.lf,this,!0),this.jJ.copy(D[0].point),this.f7.copy(this.pm.matrixWorld))}};x.prototype.lf=function(){this.pm&&(this.pm.M.h(h.$a,this.lf,this),this.pm=this.Nna=null)};x.prototype.xW=function(){if(!this.vk)return!1;this.Hd.copy(this.vk).sub(n.Ec).multiplyScalar(.5).add(n.Ec);this.vk=null;return!0};x.prototype.yW=function(z){return this.zW()?!0:this.AW(z)?!0:!1};x.prototype.zW=function(){if(!this.Ae)return!1;if(this.Ae.Qb.y===0&&this.Ae.Qb.x===0)return this.dF=Date.now(),this.qu= !1;if(this.qu)return!0;var z=Math.sqrt(this.Ae.Qb.y*this.Ae.Qb.y+this.Ae.Qb.x*this.Ae.Qb.x)*this.properties.get("rotationSpeed",1),A=Math.atan2(-this.Ae.Qb.y,this.Ae.Qb.x),D=Math.abs(A)Math.PI*.75;return this.Jk!==0&&z>.95&&(D||A)&&Date.now()-this.dF<100?(this.qu=!0,z=this.Jk*(A?-1:1),z=-b.setFromQuaternion(n.ug,"YXZ").y*w+z,n.setPosition({yaw:z}),!0):!1};x.prototype.AW=function(z){if(!this.Ae||this.Ae.Qb.y===0&&this.Ae.Qb.x===0)return!1;z=4E3/3600/this.pf*this.properties.get("translationSpeed", 1)*(this.Ae.hx?3:1)*z/1E3;var A=d.set(0,0,-1).applyQuaternion(n.ug),D=f.set(1,0,0).applyQuaternion(n.ug);A.normalize().multiplyScalar(-this.Ae.Qb.y*z);D.normalize().multiplyScalar(this.Ae.Qb.x*z);this.Hd.set(n.Ec.x+A.x+D.x,n.Ec.y+A.y+D.y,n.Ec.z+A.z+D.z);return!0};x.prototype.Rma=function(z){if(!this.pm)return!1;this.Sma(z);z=l.copy(this.f7);var A=p.copy(this.pm.matrixWorld),D=q.compose(n.Ec,n.ug,v);A=r.copy(D).invert().multiply(A);t.copy(z).multiply(A.invert()).decompose(this.Hd,this.W8,d);return!0}; x.prototype.Sma=function(z){if(!this.pm||this.pm.Qb.y===0&&this.pm.Qb.x===0)return!1;z=90*z/1E3*this.properties.get("rotationSpeed",1);var A=q.makeRotationFromQuaternion(c.setFromRotationMatrix(this.f7)),D=r.copy(A).invert(),F=p.identity();F.multiply(l.makeTranslation(this.jJ.x,this.jJ.y,this.jJ.z));F.multiply(A);F.multiply(l.makeRotationFromEuler(b.set(this.pm.Qb.y*z*y,this.pm.Qb.x*z*y,0,"YXZ")));F.multiply(D);F.multiply(l.makeTranslation(-this.jJ.x,-this.jJ.y,-this.jJ.z));this.f7.premultiply(F); return!0};x.prototype.IZ=function(){this.properties.get("inMandatorySequence")?this.properties.set("userInteracting",!1):this.pm?this.properties.set("userInteracting",!0):this.vk?this.properties.set("userInteracting",!0):this.Ae&&this.Ae.pressed&&(this.Ae.Qb.y!==0||this.Ae.Qb.x!==0)?this.properties.set("userInteracting",!0):this.properties.set("userInteracting",!1)};x.qK=function(z,A){this.kF.set(z,A)};x.Wa=function(z){z.N(k.$p).manager=new x(z)};x.update=function(z){z.getComponent(k.$p).manager.update()}; x.frame=function(z,A,D){z.getComponent(k.$p).manager.frame(A,D)};x.ya=function(z){var A=z.getComponent(k.$p);A.manager.dispose();A.manager=null;z.ka(k.$p)};x.kF=new Map;x.NB="minX maxX minY maxY minZ maxZ".split(" ");return x}();var b=new e.Euler(0,0,0,"YXZ"),c=new e.Quaternion,d=new e.Vector3,f=new e.Vector3,l=new e.Matrix4,p=new e.Matrix4,q=new e.Matrix4,r=new e.Matrix4,t=new e.Matrix4,u=new e.Vector3(0,0,1),v=new e.Vector3(1,1,1),w=180/Math.PI,y=Math.PI/180;return a}); define("tdv/player/view/webgl/system/cameraControls/XRFlyBehaviour","require exports tdv/constants/EventName tdv/player/view/util/XR tdv/player/view/webgl/system/cameraControls/CollidableObjects tdv/player/view/webgl/components three.mod".split(" "),function(a,m,h,n,g,k,e){a=function(){function y(x){this.locked=!0;this.Di=!1;this.pj=this.IY=this.Ae=null;this.Jpa=new e.Matrix4;this.YJ=[];this.pf=1;this.dF=0;this.qu=!1;this.Jk=0;this.vk=null;this.Ssa=!1;this.Hd=new e.Vector3;this.xY=this.yY=this.zY= this.RPa=this.QPa=this.PPa=0;this.cA=new e.Box3(new e.Vector3(-Infinity,-Infinity,-Infinity),new e.Vector3(Infinity,Infinity,Infinity));this.F=x;this.Ck=this.Ck.bind(this);this.mt=new g(this.F);n.M.bind(h.V,this.Ta,this,!0);this.update()}y.prototype.update=function(){var x=this.F.getComponent(k.nL),z=(x===null||x===void 0?void 0:x.locked)||!1;!z&&this.locked&&(this.Di=!0);this.locked=z;this.pf=(x===null||x===void 0?void 0:x.pf)||1;this.Jk=x===null||x===void 0?void 0:x.Jk;this.fF();this.properties= x.properties;this.locked||(n.setScale(this.pf),this.FW(),this.Ck());this.Di&&(b.setFromQuaternion(n.xl),n.setPosition({pitch:b.x*v,roll:b.z*v}),this.YI(!0))};y.prototype.frame=function(x){if(!this.locked){this.nu();this.IZ();this.YI(!1);if(!this.properties.get("controllingPosition")){this.Hd.copy(n.Ec);var z=this.wE=-b.setFromQuaternion(n.ug).y*v;var A=this.xW();this.Ssa&&this.pj&&this.Jpa.copy(this.pj.matrixWorld);this.Ssa=!1;A||(A=this.Ssa=this.Sma(x));A||(A=this.Rma(x));A||(A=this.yW(x));A&&(x= {},n.Ec.equals(this.Hd)||(x.x=this.Hd.x,x.y=this.Hd.y,x.z=this.Hd.z),this.wE!=z&&(x.yaw=this.wE),n.setPosition(x))}this.XI();this.xO();this.Di=!1}};y.prototype.dispose=function(){n.M.h(h.V,this.Ta,this);this.properties.set("userInteracting",!1);this.fF();this.lf();this.jZ([])};y.prototype.fF=function(){y.NB.forEach(function(x){var z;(z=this.properties)===null||z===void 0||z.h(h.L(x),this.Ck,this)}.bind(this))};y.prototype.FW=function(){y.NB.forEach(function(x){var z;(z=this.properties)===null||z=== void 0||z.bind(h.L(x),this.Ck,this,!0)}.bind(this))};y.prototype.Ck=function(){this.cA.min.set(this.properties.get("minX",-Infinity),this.properties.get("minY",-Infinity),this.properties.get("minZ",-Infinity));this.cA.max.set(this.properties.get("maxX",Infinity),this.properties.get("maxY",Infinity),this.properties.get("maxZ",Infinity))};y.prototype.YI=function(x){var z=this.properties.get("x"),A=this.properties.get("y"),D=this.properties.get("z"),F=this.properties.get("controllingPosition"),C=this.properties.get("yaw"), B=this.properties.get("pitch"),H=this.properties.get("distance");if(z!==this.PPa||A!==this.QPa||D!==this.RPa||C!==this.zY||B!==this.yY||H!==this.xY)l.identity(),l.multiply(p.makeTranslation(z,A,D)),l.multiply(p.makeRotationFromEuler(b.set(B*w,-C*w,0,"YXZ"))),l.multiply(p.makeTranslation(0,0,H)),l.decompose(d,c,f),b.setFromQuaternion(c,"YXZ"),n.setPosition({x:d.x,y:d.y,z:d.z,yaw:!x||F?void 0:-b.y*v})};y.prototype.XI=function(){this.properties.set("x",n.Ec.x);this.properties.set("y",n.Ec.y);this.properties.set("z", n.Ec.z);b.setFromQuaternion(n.ug);this.properties.set("yaw",-b.y*v);this.properties.set("pitch",b.x*v);this.properties.set("roll",b.z*v);this.properties.set("distance",0)};y.prototype.xO=function(){this.PPa=this.properties.get("x");this.QPa=this.properties.get("y");this.RPa=this.properties.get("z");this.zY=this.properties.get("yaw");this.yY=this.properties.get("pitch");this.xY=this.properties.get("distance")};y.prototype.nu=function(){this.jZ((y.kF.get(this.F.T)||[]).map(function(x){return x.getComponent(k.zc)}))}; y.prototype.jZ=function(x){var z=[],A=[];this.YJ.forEach(function(D){x.indexOf(D)===-1&&z.push(D)}.bind(this));x.forEach(function(D){this.YJ.indexOf(D)===-1&&A.push(D)}.bind(this));this.pj&&x.indexOf(this.pj)===-1&&this.lf();z.forEach(function(D){this.AY(D);this.YJ.splice(this.YJ.indexOf(D),1)}.bind(this));A.forEach(function(D){this.vW(D);this.YJ.push(D)}.bind(this));this.Ae=x.find(function(D){return D.Ug})||null;this.IY=x.find(function(D){return!D.Ug})||this.Ae};y.prototype.vW=function(x){x.M.bind(h.Sa, this.$h,this,!0);x.M.bind(h.ma,this.Lt,this,!0)};y.prototype.AY=function(x){x.M.h(h.Sa,this.$h,this);x.M.h(h.ma,this.Lt,this)};y.prototype.Ta=function(){this.F.O(k.aq)};y.prototype.Lt=function(x){if(!(this.properties.get("inMandatorySequence")||x.data.CX||x.data.type=="other"||this.properties.get("clickTranslationDisabled"))){var z=this.YJ.find(function(A){return x.source===A.M});z&&(z=this.mt.IX(z),z.length!=0&&(this.vk=z[0].point))}};y.prototype.$h=function(x){if(!this.properties.get("inMandatorySequence")&& !this.properties.get("mouseDisabled")){this.lf();var z=this.YJ.find(function(A){return x.source===A.M});z&&(this.pj=z,this.pj.M.bind(h.$a,this.lf,this,!0),this.Jpa.copy(this.pj.matrixWorld),z=this.mt.IX(z),z.length!=0&&(this.KA=(new e.Vector3).copy(z[0].point)))}};y.prototype.lf=function(){this.pj&&(this.pj.M.h(h.$a,this.lf,this),this.KA=this.pj=null)};y.prototype.xW=function(){if(!this.vk)return!1;this.Hd.copy(this.vk).sub(n.Ec).multiplyScalar(.5).add(n.Ec);this.vk=null;return!0};y.prototype.yW= function(x){return this.zW()?!0:this.AW(x)?!0:!1};y.prototype.zW=function(){var x=this.IY;if(!x)return!1;if(x.Qb.y===0&&x.Qb.x===0)return this.dF=Date.now(),this.qu=!1;if(this.qu)return!0;var z=Math.sqrt(x.Qb.y*x.Qb.y+x.Qb.x*x.Qb.x),A=Math.atan2(-x.Qb.y,x.Qb.x);x=Math.abs(A)Math.PI*.75;return this.Jk!==0&&z>.95&&(x||A)&&Date.now()-this.dF<100?(this.qu=!0,this.wE+=this.Jk*(A?-1:1),!0):!1};y.prototype.AW=function(x){if(!this.Ae||this.Ae.Qb.y===0&&this.Ae.Qb.x===0)return!1; x=this.TLa(this.Ae.hx)*x/1E3;this.Ae.matrixWorld.decompose(d,c,f);var z=d.set(0,0,-1).applyQuaternion(c),A=f.set(1,0,0).applyQuaternion(c);z.normalize().multiplyScalar(-this.Ae.Qb.y*x);A.normalize().multiplyScalar(this.Ae.Qb.x*x);this.Hd.set(n.Ec.x+z.x+A.x,n.Ec.y+z.y+A.y,n.Ec.z+z.z+A.z);return!0};y.prototype.Rma=function(){if(!this.pj)return!1;var x=this.kJa(l.copy(this.Jpa)),z=this.kJa(p.copy(this.pj.matrixWorld)),A=q.compose(n.Ec,n.ug,u);z=r.copy(A).invert().multiply(z);t.copy(x).multiply(z.invert()).decompose(this.Hd, c,d);this.wE=-b.setFromQuaternion(c).y*v;return!0};y.prototype.kJa=function(x){return x.decompose(d,c,f).compose(d,c.identity(),f)};y.prototype.Sma=function(x){if(!this.pj||!this.KA||this.pj.Qb.y===0&&this.pj.Qb.x===0)return!1;x=this.TLa(this.pj.hx)*x/1E3/this.KA.distanceTo(n.Ec);var z=l.compose(n.Ec,n.ug,u),A=p.identity();A.multiply(q.makeTranslation(this.KA.x,this.KA.y,this.KA.z));A.multiply(q.makeRotationY(-this.wE*w));A.multiply(q.makeRotationFromEuler(b.set(this.pj.Qb.y*x,this.pj.Qb.x*x,0,"YXZ"))); A.multiply(q.makeRotationY(this.wE*w));A.multiply(q.makeTranslation(-this.KA.x,-this.KA.y,-this.KA.z));z.premultiply(A);z.decompose(this.Hd,c,d);this.wE=-b.setFromQuaternion(c).y*v;return!0};y.prototype.TLa=function(x){return 3E4/3600/this.pf*this.properties.get("translationSpeed",1)*(x?3:1)};y.prototype.IZ=function(){this.properties.get("inMandatorySequence")?this.properties.set("userInteracting",!1):this.pj?this.properties.set("userInteracting",!0):this.vk?this.properties.set("userInteracting", !0):this.Ae&&this.Ae.pressed&&(this.Ae.Qb.y!==0||this.Ae.Qb.x!==0)?this.properties.set("userInteracting",!0):this.properties.set("userInteracting",!1)};y.qK=function(x,z){this.kF.set(x,z)};y.Wa=function(x){x.N(k.aq).manager=new y(x)};y.update=function(x){x.getComponent(k.aq).manager.update()};y.frame=function(x,z,A){x.getComponent(k.aq).manager.frame(z,A)};y.ya=function(x){var z=x.getComponent(k.aq);z.manager.dispose();z.manager=null;x.ka(k.aq)};y.kF=new Map;y.NB="minX maxX minY maxY minZ maxZ".split(" "); return y}();var b=new e.Euler(0,0,0,"YXZ");new e.Euler(0,0,0,"YXZ");var c=new e.Quaternion,d=new e.Vector3,f=new e.Vector3,l=new e.Matrix4,p=new e.Matrix4,q=new e.Matrix4,r=new e.Matrix4,t=new e.Matrix4,u=new e.Vector3(1,1,1),v=180/Math.PI,w=Math.PI/180;return a}); define("tdv/player/view/webgl/system/cameraControls/XRTeleportBehaviour","require exports tdv/constants/EventName tdv/player/view/util/XR tdv/player/view/webgl/system/cameraControls/CollidableObjects tdv/player/view/webgl/components three.mod".split(" "),function(a,m,h,n,g,k,e){a=function(){function r(t){this.locked=!0;this.Di=!1;this.IY=this.pe=this.Ep=null;this.pf=1;this.dF=0;this.qu=!1;this.Jk=0;this.vk=null;this.Hd=new e.Vector3;this.bX=[];this.Vt=new e.Vector3;this.cA=new e.Box3(new e.Vector3(-Infinity, -Infinity,-Infinity),new e.Vector3(Infinity,Infinity,Infinity));this.F=t;this.Ck=this.Ck.bind(this);this.mt=new g(this.F);n.M.bind(h.V,this.Ta,this,!0);this.update()}r.prototype.update=function(){var t=this.F.getComponent(k.oL),u=(t===null||t===void 0?void 0:t.locked)||!1;!u&&this.locked&&(this.Di=!0);this.locked=u;this.pf=(t===null||t===void 0?void 0:t.pf)||1;this.Jk=t===null||t===void 0?void 0:t.Jk;this.fF();this.properties=t.properties;this.locked||(n.setScale(this.pf),this.FW(),this.Ck());this.Di&& (b.setFromQuaternion(n.xl),n.setPosition({x:this.properties.get("x"),y:this.properties.get("y"),z:this.properties.get("z"),yaw:this.properties.get("yaw"),pitch:b.x*q,roll:b.z*q}))};r.prototype.fF=function(){r.NB.forEach(function(t){var u;(u=this.properties)===null||u===void 0||u.h(h.L(t),this.Ck,this)}.bind(this))};r.prototype.FW=function(){r.NB.forEach(function(t){var u;(u=this.properties)===null||u===void 0||u.bind(h.L(t),this.Ck,this,!0)}.bind(this))};r.prototype.Ck=function(){this.cA.min.set(this.properties.get("minX", -Infinity),this.properties.get("minY",-Infinity),this.properties.get("minZ",-Infinity));this.cA.max.set(this.properties.get("maxX",Infinity),this.properties.get("maxY",Infinity),this.properties.get("maxZ",Infinity))};r.prototype.frame=function(t){this.locked||(this.nu(),this.IZ(),this.YI(),this.properties.get("controllingPosition")||(this.Hd.copy(n.Ec),this.xW()||this.yW(t),this.Hd.y=this.lIa(this.Vt.y,this.T7(this.Hd.x,this.Hd.y,this.Hd.z),t),this.Ydb()&&(this.Hd.copy(this.Vt),this.Hd.y=this.lIa(this.Vt.y, this.T7(this.Hd.x,this.Hd.y,this.Hd.z),t)),this.cA.clampPoint(this.Hd,this.Hd),n.Ec.equals(this.Hd)||n.setPosition({x:this.Hd.x,y:this.Hd.y,z:this.Hd.z,Xa:void 0})),this.XI(),this.xO(),this.Ojb(),this.Di=!1)};r.prototype.Ojb=function(){this.mt.refresh();this.bX.forEach(function(t){t.y=NaN})};r.prototype.dispose=function(){n.M.h(h.V,this.Ta,this);this.properties.set("userInteracting",!1);this.fF()};r.prototype.YI=function(){var t=this.properties.get("x"),u=this.properties.get("y"),v=this.properties.get("z"); if(this.Vt.x!==t||this.Vt.y!==u||this.Vt.z!==v)this.properties.get("controllingPosition")||(u=this.T7(t,u,v)),n.setPosition({x:t,y:u,z:v,yaw:void 0}),this.xO()};r.prototype.XI=function(){this.properties.set("x",n.Ec.x);this.properties.set("y",n.Ec.y);this.properties.set("z",n.Ec.z);b.setFromQuaternion(n.ug);this.properties.set("yaw",-b.y*q);this.properties.set("pitch",b.x*q);this.properties.set("roll",b.z*q)};r.prototype.xO=function(){this.Vt.copy(n.Ec);this.OPa=this.noa(this.Vt)};r.prototype.nu= function(){var t=null,u=null;(r.kF.get(this.F.T)||[]).forEach(function(v){v=v.getComponent(k.zc);v.Ug?t=v:u=v});this.llb(t,u)};r.prototype.llb=function(t,u){this.Ep=t;this.IY=u;t=t?t.M:null;this.pe!==t&&(this.pe&&this.AY(this.pe),(this.pe=t)&&this.vW(this.pe))};r.prototype.vW=function(t){t.bind(h.ma,this.Lt,this,!0)};r.prototype.AY=function(t){t.h(h.ma,this.Lt,this)};r.prototype.Ta=function(){this.F.O(k.bq)};r.prototype.Lt=function(t){if(this.Ep&&this.properties&&!this.properties.get("inMandatorySequence")&& !t.data.CX&&t.data.type!="other"&&!this.properties.get("clickTranslationDisabled")&&this.properties.get("doubleClickAction")=="translate"&&(t=this.mt.IX(this.Ep),t.length!=0)){var u=t[0];if(u.face&&u.face.normal){t=c.copy(n.Ec);var v=d.copy(u.point);u=f.copy(u.face.normal).transformDirection(u.object.matrixWorld);if(Math.abs(Math.acos(u.dot(p)))Math.PI*.75;return this.Jk!==0&&u>.95&&(t||v)&&Date.now()- this.dF<100?(this.qu=!0,u=this.Jk*(v?-1:1),u=-b.setFromQuaternion(n.ug,"YXZ").y*q+u,n.setPosition({x:void 0,y:void 0,z:void 0,yaw:u}),!0):!1};r.prototype.AW=function(t){if(!this.Ep||this.Ep.Qb.y===0&&this.Ep.Qb.x===0)return!1;t=4E3/3600/this.pf*this.properties.get("translationSpeed",1)*(this.Ep.hx?3:1)*t/1E3;var u=c.set(0,0,-1).applyQuaternion(n.ug),v=d.crossVectors(u,p);u.y=0;v.y=0;u.normalize().multiplyScalar(-this.Ep.Qb.y*t);v.normalize().multiplyScalar(this.Ep.Qb.x*t);this.Hd.set(n.Ec.x+u.x+v.x, n.Ec.y,n.Ec.z+u.z+v.z);return!0};r.prototype.IZ=function(){this.properties.get("inMandatorySequence")?this.properties.set("userInteracting",!1):this.vk?this.properties.set("userInteracting",!0):this.Ep&&this.Ep.pressed&&(this.Ep.Qb.y!==0||this.Ep.Qb.x!==0)?this.properties.set("userInteracting",!0):this.properties.set("userInteracting",!1)};r.prototype.Ydb=function(){if(!this.properties.get("collisionDetection"))return!1;var t=c,u=d;t.copy(this.Hd).sub(this.Vt);u.copy(this.Vt).add(t.setLength(t.length()+ .2/this.pf));if(this.mt.zK(this.Vt,u))return!0;t=this.properties.get("maxStepHeight");t===void 0&&(t=this.F7()*.25);u=this.noa(this.Hd);return this.OPa>-Infinity&&u>-Infinity&&this.OPa+ty?u:t+w*v/y};r.prototype.T7=function(t,u,v){t=this.Di?-Infinity:this.noa(c.set(t,u,v));return t===-Infinity?u:t+this.F7()};r.prototype.noa=function(t){var u=this.bX.findIndex(function(w){return w.x==t.x&&w.z==t.z&&!isNaN(w.y)}); if(u!==-1)return this.bX[u].y;u=this.mt.WW(t);var v=this.bX.find(function(w){return isNaN(w.y)});v||this.bX.push(v=new e.Vector3);v.set(t.x,t.y-u,t.z);return v.y};r.prototype.F7=function(){return n.EO/this.pf};r.qK=function(t,u){this.kF.set(t,u)};r.Wa=function(t){t.N(k.bq).manager=new r(t)};r.update=function(t){t.getComponent(k.bq).manager.update()};r.frame=function(t,u,v){t.getComponent(k.bq).manager.frame(u,v)};r.ya=function(t){var u=t.getComponent(k.bq);u.manager.dispose();u.manager=null;t.ka(k.bq)}; r.kF=new Map;r.NB="minX maxX minY maxY minZ maxZ".split(" ");return r}();var b=new e.Euler(0,0,0,"YXZ"),c=new e.Vector3,d=new e.Vector3,f=new e.Vector3,l=new e.Vector3,p=new e.Vector3(0,1,0),q=180/Math.PI;return a}); define("tdv/player/view/webgl/system/cameraControls/System","require tdv/utils tdv/player/view/webgl/ecs/System tdv/player/view/webgl/components tdv/player/view/webgl/system/cameraControls/ARBehaviour tdv/player/view/webgl/system/cameraControls/CollidableObjects tdv/player/view/webgl/system/cameraControls/CameraSequenceBehaviour tdv/player/view/webgl/system/cameraControls/DraggingObserver tdv/player/view/webgl/system/cameraControls/FirstPersonBehaviour tdv/player/view/webgl/system/cameraControls/FlyOverBehaviour tdv/player/view/webgl/system/cameraControls/OrbitBehaviour tdv/player/view/webgl/system/cameraControls/TransitionBehaviour tdv/player/view/webgl/system/cameraControls/XRBasicBehaviour tdv/player/view/webgl/system/cameraControls/XRDragBehaviour tdv/player/view/webgl/system/cameraControls/XRFlyBehaviour tdv/player/view/webgl/system/cameraControls/XRTeleportBehaviour".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/cameraControls/ARBehaviour"),k=a("tdv/player/view/webgl/system/cameraControls/CollidableObjects"),e=a("tdv/player/view/webgl/system/cameraControls/CameraSequenceBehaviour"),b=a("tdv/player/view/webgl/system/cameraControls/DraggingObserver"),c=a("tdv/player/view/webgl/system/cameraControls/FirstPersonBehaviour"),d=a("tdv/player/view/webgl/system/cameraControls/FlyOverBehaviour"), f=a("tdv/player/view/webgl/system/cameraControls/OrbitBehaviour"),l=a("tdv/player/view/webgl/system/cameraControls/TransitionBehaviour"),p=a("tdv/player/view/webgl/system/cameraControls/XRBasicBehaviour"),q=a("tdv/player/view/webgl/system/cameraControls/XRDragBehaviour"),r=a("tdv/player/view/webgl/system/cameraControls/XRFlyBehaviour"),t=a("tdv/player/view/webgl/system/cameraControls/XRTeleportBehaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(u,v){(this.Rpa.fe.length|| this.Rpa.Xg.length)&&k.blb(this.Rpa.v);this.TIa.v.length&&this.TIa.v.slice().forEach(e.Wa);this.P6.Da.length&&this.P6.Da.slice().forEach(e.update);this.P6.v.length&&this.P6.v.slice().forEach(function(w){e.frame(w,u,v)});this.UIa.v.length&&this.UIa.v.slice().forEach(e.ya);this.KKa.v.length&&this.KKa.v.slice().forEach(d.ya);this.LKa.v.length&&this.LKa.v.slice().forEach(d.ya);this.MKa.v.length&&this.MKa.v.slice().forEach(d.ya);this.BKa.v.length&&this.BKa.v.slice().forEach(c.ya);this.CKa.v.length&&this.CKa.v.slice().forEach(c.ya); this.DKa.v.length&&this.DKa.v.slice().forEach(c.ya);this.$Oa.v.length&&this.$Oa.v.slice().forEach(f.ya);this.aPa.v.length&&this.aPa.v.slice().forEach(f.ya);this.bPa.v.length&&this.bPa.v.slice().forEach(f.ya);this.JTa.v.length&&this.JTa.v.slice().forEach(p.ya);this.KTa.v.length&&this.KTa.v.slice().forEach(p.ya);this.LTa.v.length&&this.LTa.v.slice().forEach(p.ya);this.oIa.v.length&&this.oIa.v.slice().forEach(g.ya);this.pIa.v.length&&this.pIa.v.slice().forEach(g.ya);this.qIa.v.length&&this.qIa.v.slice().forEach(g.ya); this.JKa.v.length&&this.JKa.v.slice().forEach(d.Wa);this.cX.Da.length&&this.cX.Da.slice().forEach(d.update);this.cX.v.length&&this.cX.v.slice().forEach(function(w){d.frame(w,u,v)});this.AKa.v.length&&this.AKa.v.slice().forEach(c.Wa);this.aX.Da.length&&this.aX.Da.slice().forEach(c.update);this.aX.v.length&&this.aX.v.slice().forEach(function(w){c.frame(w,u,v)});this.ZOa.v.length&&this.ZOa.v.slice().forEach(f.Wa);this.oY.Da.length&&this.oY.Da.slice().forEach(f.update);this.oY.v.length&&this.oY.v.slice().forEach(function(w){f.frame(w, u,v)});this.ITa.v.length&&this.ITa.v.slice().forEach(p.Wa);this.MZ.Da.length&&this.MZ.Da.slice().forEach(p.update);this.MZ.v.length&&this.MZ.v.slice().forEach(function(w){p.frame(w,u,v)});this.WTa.v.length&&this.WTa.v.slice().forEach(t.ya);this.XTa.v.length&&this.XTa.v.slice().forEach(t.ya);this.YTa.v.length&&this.YTa.v.slice().forEach(t.ya);this.OTa.v.length&&this.OTa.v.slice().forEach(q.ya);this.PTa.v.length&&this.PTa.v.slice().forEach(q.ya);this.QTa.v.length&&this.QTa.v.slice().forEach(q.ya);this.STa.v.length&& this.STa.v.slice().forEach(r.ya);this.TTa.v.length&&this.TTa.v.slice().forEach(r.ya);this.UTa.v.length&&this.UTa.v.slice().forEach(r.ya);this.OSa.v.length&&this.OSa.v.slice().forEach(l.ya);this.PSa.v.length&&this.PSa.v.slice().forEach(l.ya);this.nIa.v.length&&this.nIa.v.slice().forEach(g.Wa);this.B6.Da.length&&this.B6.Da.slice().forEach(g.update);this.B6.v.length&&this.B6.v.slice().forEach(function(w){g.frame(w,u,v)});t.qK(this.T,this.Wj.v.slice());this.VTa.v.length&&this.VTa.v.slice().forEach(t.Wa); this.PZ.Da.length&&this.PZ.Da.slice().forEach(t.update);this.PZ.v.length&&this.PZ.v.slice().forEach(function(w){t.frame(w,u,v)});q.qK(this.T,this.Wj.v.slice());this.NTa.v.length&&this.NTa.v.slice().forEach(q.Wa);this.NZ.Da.length&&this.NZ.Da.slice().forEach(q.update);this.NZ.v.length&&this.NZ.v.slice().forEach(function(w){q.frame(w,u,v)});r.qK(this.T,this.Wj.v.slice());this.RTa.v.length&&this.RTa.v.slice().forEach(r.Wa);this.OZ.Da.length&&this.OZ.Da.slice().forEach(r.update);this.OZ.v.length&&this.OZ.v.slice().forEach(function(w){r.frame(w, u,v)});this.NSa.v.length&&this.NSa.v.slice().forEach(l.Wa);this.nQ.Da.length&&this.nQ.Da.slice().forEach(l.update);this.nQ.fe.length&&this.nQ.fe.slice().forEach(l.update);this.nQ.v.length&&this.nQ.v.slice().forEach(function(w){l.frame(w,u,v)});if(this.oA.fe.length||this.oA.Xg.length)b.dra(this.oA.v),this.aX.v.slice().forEach(c.update),this.cX.v.slice().forEach(d.update),this.oY.v.slice().forEach(f.update),this.MZ.v.slice().forEach(p.update),this.NZ.v.slice().forEach(q.update),this.OZ.v.slice().forEach(r.update), this.PZ.v.slice().forEach(t.update)};a.J={};a.J.Wj=[n.zc];a.J.oA=[n.Gm];a.J.Rpa=[n.SF];a.J.AKa=[n.MF,n.lg.aa,n.Wf.aa,n.Jr.aa];a.J.aX=[n.MF,n.lg.aa,n.Wf.aa,n.Jr];a.J.BKa=[n.MF.aa,n.Jr];a.J.CKa=[n.lg,n.Jr];a.J.DKa=[n.Wf,n.Jr];a.J.JKa=[n.NF,n.lg.aa,n.Wf.aa,n.Lr.aa];a.J.cX=[n.NF,n.lg.aa,n.Wf.aa,n.Lr];a.J.KKa=[n.NF.aa,n.Lr];a.J.LKa=[n.lg,n.Lr];a.J.MKa=[n.Wf,n.Lr];a.J.ZOa=[n.UF,n.lg.aa,n.Wf.aa,n.Rr.aa];a.J.oY=[n.UF,n.lg.aa,n.Wf.aa,n.Rr];a.J.$Oa=[n.UF.aa,n.Rr];a.J.aPa=[n.lg,n.Rr];a.J.bPa=[n.Wf,n.Rr];a.J.NSa= [n.Kx,n.Sk,n.Ku.aa];a.J.nQ=[n.Kx,n.Sk,n.Ku];a.J.OSa=[n.Sk.aa,n.Ku];a.J.PSa=[n.Kx.aa,n.Ku];a.J.VTa=[n.lg,n.Wf.aa,n.oL,n.bq.aa];a.J.PZ=[n.lg,n.Wf.aa,n.oL,n.bq];a.J.WTa=[n.oL.aa,n.bq];a.J.XTa=[n.lg.aa,n.bq];a.J.YTa=[n.Wf,n.bq];a.J.ITa=[n.lg,n.Wf.aa,n.dG,n.Zp.aa];a.J.MZ=[n.lg,n.Wf.aa,n.dG,n.Zp];a.J.JTa=[n.dG.aa,n.Zp];a.J.KTa=[n.lg.aa,n.Zp];a.J.LTa=[n.Wf,n.Zp];a.J.NTa=[n.lg,n.Wf.aa,n.mL,n.$p.aa];a.J.NZ=[n.lg,n.Wf.aa,n.mL,n.$p];a.J.OTa=[n.mL.aa,n.$p];a.J.PTa=[n.lg.aa,n.$p];a.J.QTa=[n.Wf,n.$p];a.J.RTa=[n.lg, n.Wf.aa,n.nL,n.aq.aa];a.J.OZ=[n.lg,n.Wf.aa,n.nL,n.aq];a.J.STa=[n.nL.aa,n.aq];a.J.TTa=[n.lg.aa,n.aq];a.J.UTa=[n.Wf,n.aq];a.J.nIa=[n.Wf,n.lg.aa,n.vB,n.Ar.aa];a.J.B6=[n.Wf,n.vB,n.Ar];a.J.oIa=[n.vB.aa,n.Ar];a.J.pIa=[n.Wf.aa,n.Ar];a.J.qIa=[n.lg,n.Ar];a.J.TIa=[n.RK,n.tx.aa];a.J.P6=[n.RK,n.tx];a.J.UIa=[n.RK.aa,n.tx];return a}); define("tdv/player/view/webgl/system/cameraOffsetTransform/System","require exports three.mod tdv/player/view/webgl/components tdv/player/view/webgl/ecs/System tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k){a=function(q){function r(){var t=q.call(this)||this;t.eg=t.eg.bind(t);return t}P(r,q);r.prototype.Yc=function(){this.v.v.length&&this.v.v.slice().forEach(this.eg)};r.prototype.eg=function(t){var u=t.getComponent(n.Object3D);if(u&&u.sa&&u.sa.parent){u=u.sa;var v=t.getComponent(n.QK); if(v.Ea){var w=v.Ea,y=w.getComponent(n.PerspectiveCamera);(w=w.getComponent(n.Object3D))&&w.sa&&(w=w.sa,w.updateMatrixWorld(!0),y.nj?(c.copy(k.Ec),l.copy(k.ug)):w.matrixWorld.decompose(c,l,f),v.rotate||l.identity(),e.copy(u.parent.matrixWorld).invert(),b.compose(c,l,f.set(1,1,1)).premultiply(e),b.decompose(c,l,f.set(1,1,1)),d.setFromQuaternion(l,"YXZ"),t=t.O(n.ta),t.translationX=c.x,t.translationY=c.y,t.Ze=c.z,t.Yd=0,t.fd=d.y*p,t.Xe=0)}}};r.J={};return r}(g);a.J={};a.J.v=[n.QK,n.Object3D,n.ta];var e= new h.Matrix4,b=new h.Matrix4,c=new h.Vector3,d=new h.Euler,f=new h.Vector3,l=new h.Quaternion,p=180/Math.PI;return a}); define("tdv/player/view/webgl/system/canvasMaterial/Behaviour",["require","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/entity/Util"],function(a){function m(g){this.B=g;this.uFa=this.Aa=null;this.Ha=this.Pa=void 0;this.update()}var h=a("tdv/player/view/webgl/components"),n=a("tdv/player/view/webgl/system/util/entity/Util");m.prototype.update=function(){var g=this.B.getComponent(h.Kf),k=g.source&&g.source.width||0,e=g.source&&g.source.height||0;!this.Aa||!!this.Aa.isSpriteMaterial== g.isSprite&&this.Pa==k&&this.Ha==e||(this.Aa.map.dispose(),this.Aa.dispose(),this.Aa=null);this.Pa=k;this.Ha=e;this.Aa||(g.isSprite?(this.Aa=new THREE.SpriteMaterial,this.Aa.sizeAttenuation=!1):this.Aa=new THREE.MeshBasicMaterial,this.Aa.map=new THREE.Texture,this.Aa.transparent=!0,this.B.N(h.Material).material=this.Aa);this.Aa.map.image!=g.source&&(this.Aa.map.image=g.source,this.Aa.map.needsUpdate=!0);this.uFa!=g.uK&&(this.uFa=g.uK,this.Aa.map.needsUpdate=!0);this.Aa.opacity=g.opacity||0;this.Aa.depthTest= !!g.depthTest;this.Aa.visible=this.Aa.opacity>0&&!g.hidden;this.Aa.needsUpdate=!0;if(g.colorSpace)var b=g.colorSpace;else(g=n.Sf(this.B))&&(b=n.rX(g));this.Aa.map&&b&&(this.Aa.map.colorSpace=b);this.B.T.Qa()};m.prototype.dispose=function(){this.Aa&&(this.Aa.map.dispose(),this.Aa.map=null,this.Aa.dispose(),this.Aa=null,this.B.ka(h.Material));this.B=null};m.Wa=function(g){g.N(h.DB).manager=new m(g)};m.ya=function(g){var k=g.getComponent(h.DB);k.manager.dispose();k.manager=null;g.ka(h.DB)};m.update= function(g){g.getComponent(h.DB).manager.update()};return m}); define("tdv/player/view/webgl/system/canvasMaterial/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/canvasMaterial/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/canvasMaterial/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.Nn.v.length&&this.Nn.v.slice().forEach(g.Wa); this.materials.Da.length&&this.materials.Da.slice().forEach(g.update);this.On.v.length&&this.On.v.slice().forEach(g.ya)};a.J={};a.J.Nn=[n.Kf,n.DB.aa];a.J.materials=[n.Kf,n.DB];a.J.On=[n.Kf.aa,n.DB];return a}); define("tdv/player/view/webgl/system/clippingRect/System",["require","exports","three.mod","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components"],function(a,m,h,n,g){var k=[new h.Vector3(1,0,0),new h.Vector3(-1,0,0),new h.Vector3(0,1,0),new h.Vector3(0,-1,0)];a=function(e){function b(){var c=e.call(this)||this;c.xb=c.xb.bind(c);c.ib=c.ib.bind(c);c.Ca=c.Ca.bind(c);return c}P(b,e);b.prototype.Yc=function(){this.FE.v.length&&this.FE.v.slice().forEach(this.xb);this.planes.v.length&&this.planes.v.slice().forEach(this.ib); this.rY.v.length&&this.rY.v.slice().forEach(this.Ca)};b.prototype.xb=function(c){c.N(g.EB).planes=[new h.Plane,new h.Plane,new h.Plane,new h.Plane];c.N(g.Object3D).sa=new h.Object3D;this.ib(c)};b.prototype.ib=function(c){var d=c.N(g.Object3D).sa;c=c.N(g.EB);c.planes[0].set(k[0],.5).applyMatrix4(d.matrixWorld);c.planes[1].set(k[1],.5).applyMatrix4(d.matrixWorld);c.planes[2].set(k[2],.5).applyMatrix4(d.matrixWorld);c.planes[3].set(k[3],.5).applyMatrix4(d.matrixWorld)};b.prototype.Ca=function(c){c.ka(g.EB); c.ka(g.Object3D)};b.J={};return b}(n);a.J={};a.J.FE=[g.sF,g.EB.aa];a.J.planes=[g.sF,g.EB,g.ta,g.Object3D];a.J.rY=[g.sF.aa,g.EB];return a}); define("tdv/player/view/webgl/system/light/DirectionalLightHelper",["require","exports","three.mod","tdv/player/view/webgl/system/util/entity/Util"],function(a,m,h,n){a=function(){function d(f){this.light=f;f=new h.EdgesGeometry(new h.PlaneGeometry(2,2));var l=new h.LineBasicMaterial({color:16711680,linewidth:1,depthTest:!1,transparent:!0});this.oh=new h.LineSegments(f,l);f=(new h.BufferGeometry).setFromPoints([new h.Vector3,new h.Vector3]);l=new h.LineBasicMaterial({color:65280,depthTest:!1,transparent:!0}); this.line=new h.Line(f,l);this.light.add(this.oh);this.light.add(this.line)}d.prototype.update=function(){var f=this.Sf();this.oh.parent!=f&&(this.oh.parent&&(this.oh.parent.remove(this.oh),this.line.parent.remove(this.line)),f&&(f.add(this.oh),f.add(this.line)));if(f){this.oh.material.color!=this.light.color&&(this.oh.material.color=this.light.color,this.oh.material.needsUpdate=!0,this.line.material.color=this.light.color,this.line.material.needsUpdate=!0);this.light.updateMatrixWorld(!0);g.setFromMatrixPosition(this.light.matrixWorld); this.light.target.updateMatrixWorld(!0);k.setFromMatrixPosition(this.light.target.matrixWorld);e.copy(k).sub(g).normalize();c.y=Math.atan2(e.x,e.z);c.x=-Math.atan2(e.y,Math.sqrt(e.x*e.x+e.z*e.z));c.z=0;c.order="YXZ";b.setFromEuler(c);f=n.dE(f);this.oh.quaternion.copy(b);var l=n.tJ(this.line)*f*2/7;e.setLength(l).multiplyScalar(-1);l=this.line.geometry.attributes.position;l.setXYZ(0,0,0,0);l.setXYZ(1,e.x,e.y,e.z);l.needsUpdate=!0;this.oh.position.copy(e);this.oh.updateMatrixWorld(!0);f=n.tJ(this.oh)* f/7;this.oh.scale.set(f,f,f);this.oh.updateMatrixWorld(!0)}};d.prototype.dispose=function(){this.oh.geometry.dispose();this.oh.material.dispose();this.oh.parent&&this.oh.parent.remove(this.oh);this.line.geometry.dispose();this.line.material.dispose();this.line.parent&&this.line.parent.remove(this.line)};d.prototype.Sf=function(){for(var f=this.light.parent;f&&!f.isScene;)f=f.parent;return f};return d}();var g=new h.Vector3,k=new h.Vector3,e=new h.Vector3,b=new h.Quaternion,c=new h.Euler;return a}); define("tdv/player/view/webgl/system/light/DirectionalLightSystem","require exports three.mod tdv/player/view/util/Color tdv/player/view/webgl/components tdv/player/view/webgl/ecs/System tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/system/light/DirectionalLightHelper".split(" "),function(a,m,h,n,g,k,e,b){function c(l,p){p.makeEmpty();var q=new h.Box3;l.traverse(function(r){if(r.geometry&&!r.isSprite&&!r.isLine){r.updateWorldMatrix(!1,!1);var t=r.geometry;t.boundingBox===null&& t.computeBoundingBox();q.copy(t.boundingBox);q.applyMatrix4(r.matrixWorld);p.union(q)}});return p}a=function(l){function p(){var q=l.call(this)||this;q.xb=q.xb.bind(q);q.ib=q.ib.bind(q);q.eg=q.eg.bind(q);q.Ca=q.Ca.bind(q);return q}P(p,l);p.prototype.Yc=function(){this.mE.v.length&&this.mE.v.slice().forEach(this.xb);this.nE.v.length&&this.nE.v.slice().forEach(this.Ca);this.Ei.Da.length&&this.Ei.Da.slice().forEach(this.ib);this.Ei.v.length&&this.Ei.v.slice().forEach(this.eg)};p.prototype.xb=function(q){var r= q.N(g.Cr),t=q.N(g.Object3D);r.light=t.sa=new h.DirectionalLight;this.ib(q)};p.prototype.ib=function(q){var r=q.getComponent(g.DirectionalLight),t=q.getComponent(g.Cr),u=t.light;u.color=n.Ip(r.color).convertLinearToSRGB();u.intensity=r.intensity*Math.PI;u.visible=u.intensity>0;u.castShadow=u.intensity>0&&r.castShadow;var v=u.castShadow?r.Nra:16;v!=u.shadow.mapSize.width&&(u.shadow.dispose(),u.shadow=u.shadow.clone(),u.shadow.mapSize.width=u.shadow.mapSize.height=v);u.shadow.radius=r.Ora;u.shadow.bias= r.Mra;r.UW!=!!t.zp&&(t=q.O(g.Cr),r.UW?t.zp=new b(u):(t.zp.dispose(),t.zp=null))};p.prototype.eg=function(q){this.Unb(q);this.zsa(q)};p.prototype.Unb=function(q){var r=q.getComponent(g.DirectionalLight);if((q=q.getComponent(g.Cr).light)&&q.castShadow){var t=e.Qc(r.target);if(t){var u=q.shadow.camera,v=c(t,d);t=Number.POSITIVE_INFINITY;for(var w=Number.NEGATIVE_INFINITY,y=Number.NEGATIVE_INFINITY,x=Number.POSITIVE_INFINITY,z=Number.POSITIVE_INFINITY,A=Number.NEGATIVE_INFINITY,D=0;D<2;D++)for(var F= 0;F<2;F++)for(var C=0;C<2;C++)f.set(D==0?v.min.x:v.max.x,F==0?v.min.y:v.max.y,C==0?v.min.z:v.max.z).applyMatrix4(u.matrixWorldInverse),f.xw&&(w=f.x),f.y>y&&(y=f.y),f.yA&&(A=-f.z),-f.z 0);if(x!=0&&(x=this.Bh.getComponent(n.zc))){var z=g.Qc(this.Bh);z?(e.copy(x.origin).applyMatrix4(z.matrixWorld),b.copy(x.origin).add(x.direction).applyMatrix4(z.matrixWorld).sub(e).normalize()):(e.copy(x.origin),b.copy(x.direction).normalize());for(x=0;x=0&&x.splice(z,1);w["delete"](y);y.ka(n.FB);y.ka(n.Gm)};return m}); define("tdv/player/view/webgl/system/dragging/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/dragging/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/dragging/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.sY.v.length&&this.sY.v.slice().forEach(g.Hra);this.Wj.Da.length&& this.Wj.Da.slice().forEach(g.nu);this.Wj.v.length&&this.Wj.v.slice().forEach(g.frame);this.tY.v.length&&this.tY.v.slice().forEach(g.dsa);this.dKa.v.length&&this.dKa.v.slice().forEach(g.Olb);this.cKa.v.length&&this.cKa.v.slice().forEach(g.FK);this.fKa.v.length&&this.fKa.v.slice().forEach(g.sSa);this.gKa.v.length&&this.gKa.v.slice().forEach(g.sSa)};a.J={};a.J.sY=[n.zc,n.Gx.aa];a.J.Wj=[n.zc,n.Gx];a.J.tY=[n.zc.aa,n.Gx];a.J.dKa=[n.Object3D,n.vx,n.FB.aa];a.J.cKa=[n.Object3D,n.vx,n.FB];a.J.fKa=[n.Object3D.aa, n.FB];a.J.gKa=[n.vx.aa,n.FB];return a}); define("tdv/player/view/webgl/system/floor/System","require exports three.mod tdv/player/view/util/Color tdv/player/view/webgl/components tdv/player/view/webgl/ecs/System".split(" "),function(a,m,h,n,g,k){a=function(c){function d(){var f=c.call(this)||this;f.xb=f.xb.bind(f);f.ib=f.ib.bind(f);f.Ca=f.Ca.bind(f);f.eg=f.eg.bind(f);return f}P(d,c);d.prototype.Yc=function(){this.HKa.v.length&&this.HKa.v.slice().forEach(this.xb);this.IKa.v.length&&this.IKa.v.slice().forEach(this.Ca);this.s7.Da.length&&this.s7.Da.slice().forEach(this.ib); this.s7.v.length&&this.s7.v.slice().forEach(this.eg)};d.prototype.xb=function(f){var l=f.N(g.zx),p=f.N(g.Object3D);l.floor=p.sa=this.tdb();this.ho(f,!0)};d.prototype.ib=function(f){this.ho(f)};d.prototype.Ca=function(f){var l=f.getComponent(g.zx).floor;l.parent&&l.parent.remove(l);l.geometry.dispose();l.material.dispose();f.ka(g.zx);f.ka(g.Object3D)};d.prototype.eg=function(f){this.xkb(f)};d.prototype.xkb=function(f){var l=f.getComponent(g.Kr),p=(f=(f=f.getComponent(g.zx))&&f.floor)&&f.parent&&f.parent.matrixWorld; if(p){b.setFromMatrixScale(p);var q=Math.max(Math.abs(b.x),Math.abs(b.y),Math.abs(b.z));f.matrix.identity();f.matrix.multiply(e.makeScale(l.radius/q,l.radius/q,l.radius/q));f.matrix.multiply(e.extractRotation(p).invert());f.matrix.multiply(e.makeTranslation(0,l.height/l.radius,0));f.matrix.multiply(e.makeRotationX(-Math.PI*.5));f.updateMatrixWorld(!0)}};d.prototype.tdb=function(){var f=new h.CircleGeometry(1,128);f=new h.Mesh(f);f.receiveShadow=!0;f.needsUpdate=!0;f.matrixAutoUpdate=!1;f.castShadow= !1;return f};d.prototype.ho=function(f,l){l===void 0&&(l=!1);var p=f.getComponent(g.Kr);f=f.getComponent(g.zx).floor;var q=p.color=="transparent",r=f.material&&f.material.isShadowMaterial||!1;f.material&&(l||r!=q)&&(f.material.dispose(),f.material=null);q?f.material||(f.material=new h.ShadowMaterial):(f.material||(f.material=new h.MeshStandardMaterial,f.material.defines.USE_UV="",f.material.onBeforeCompile=function(t){var u=t.fragmentShader.lastIndexOf("}");t.fragmentShader=t.fragmentShader.substring(0, u)+"float uvCenterCoef = 2.0 * length(vUv - 0.5);\nfloat uvAlphaCoef = 1.0 - smoothstep(0.97, 1.0, uvCenterCoef);\ngl_FragColor.a = uvAlphaCoef * gl_FragColor.a;\n"+t.fragmentShader.substring(u,t.fragmentShader.length)},f.material.roughness=1,f.material.metalness=0,f.material.envMapIntensity=0,f.material.transparent=!0),f.material.color=n.Ip(p.color));f.material.needsUpdate=!0;f.material.opacity=p.opacity;f.renderOrder=p.renderOrder};d.J={};return d}(k);a.J={};a.J.HKa=[g.Kr,g.zx.aa];a.J.s7=[g.Kr, g.zx];a.J.IKa=[g.Kr.aa,g.zx];var e=new h.Matrix4,b=new h.Vector3;return a}); define("tdv/player/view/webgl/system/floorTransform/Behaviour",["require","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/entity/Util"],function(a){function m(w){this.B=w;this.nja=!1}var h=a("tdv/player/view/webgl/components"),n=a("tdv/player/view/webgl/system/util/entity/Util");m.prototype.update=function(){this.nja=!1};m.prototype.frame=function(){this.cg()};m.prototype.cg=function(){if(!this.nja&&(this.Bb=this.Bb||n.Sf(this.B))){var w=n.Qc(this.B),y=w&&w.parent;if(y&&y.matrixWorld){var x= [];this.Bb.traverse(function(F){F.isSprite||F.isLine||F==w||x.push(F)});var z=this.B.O(h.Ax);f.set(z.x,z.y,z.z).applyMatrix4(y.matrixWorld);d.ray.origin.set(f.x,f.y,f.z);d.ray.direction.set(0,-1,0);var A=d.intersectObjects(x,!1);if(A.length!=0){var D=A[0];e.copy(y.matrixWorld).invert();A=this.B.O(h.ta,!0);b.setFromMatrixPosition(y.matrixWorld);g.copy(D.object.matrixWorld);c.setFromMatrixPosition(g);k.copy(g).invert();!z.GX&&D.face&&D.face.normal?q.copy(D.face.normal).applyMatrix4(g).sub(c).add(b): q.copy(b).add(r);q.applyMatrix4(e).normalize();u.setFromUnitVectors(p,q);t.setFromQuaternion(u,A.mf);A.Yd=t.x*v;A.fd=t.y*v;A.Xe=t.z*v;f.copy(D.point).applyMatrix4(e);A.translationX=f.x;A.translationY=f.y;A.Ze=f.z;l.setFromMatrixScale(e);y=Math.max(l.x,l.y,l.z);A.positionX=0;A.positionY=0;A.positionZ=y*z.distance;this.nja=!0}}}};m.prototype.dispose=function(){};var g=new THREE.Matrix4,k=new THREE.Matrix4,e=new THREE.Matrix4,b=new THREE.Vector3,c=new THREE.Vector3,d=new THREE.Raycaster,f=new THREE.Vector3, l=new THREE.Vector3;new THREE.Matrix4;new THREE.Matrix4;var p=new THREE.Vector3(0,0,1),q=new THREE.Vector3,r=new THREE.Vector3(0,1,0),t=new THREE.Euler,u=new THREE.Quaternion,v=180/Math.PI;m.Wa=function(w){w.N(h.vu).manager=new m(w)};m.ya=function(w){var y=w.getComponent(h.vu);y.manager.dispose();y.manager=null;w.ka(h.vu)};m.frame=function(w){w.getComponent(h.vu).manager.frame()};m.update=function(w){w.getComponent(h.vu).manager.update()};return m}); define("tdv/player/view/webgl/system/floorTransform/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/floorTransform/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/floorTransform/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.EKa.v.length&&this.EKa.v.slice().forEach(g.Wa); this.r7.Da.length&&this.r7.v.slice().forEach(g.update);this.r7.v.length&&this.r7.v.slice().forEach(g.frame);this.FKa.v.length&&this.FKa.v.slice().forEach(g.ya);this.GKa.v.length&&this.GKa.v.slice().forEach(g.ya)};a.J={};a.J.EKa=[n.Object3D,n.Ax,n.vu.aa];a.J.r7=[n.Object3D,n.Ax,n.vu];a.J.FKa=[n.Object3D.aa,n.vu];a.J.GKa=[n.Ax.aa,n.vu];return a}); define("tdv/player/view/webgl/system/group/Behaviour",["require","tdv/player/view/webgl/components"],function(a){var m=a("tdv/player/view/webgl/components");return{Wa:function(h){var n=h.N(m.YK),g=h.N(m.Object3D);h.N(m.ta);h=h.O(m.Group);g.sa=n.group=h.group=new THREE.Group},ya:function(h){h.getComponent(m.YK).group=null;h.ka(m.YK);h.ka(m.Object3D)}}}); define("tdv/player/view/webgl/system/group/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/group/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/group/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.eMa.v.length&&this.eMa.v.slice().forEach(g.Wa);this.fMa.v.length&& this.fMa.v.slice().forEach(g.ya)};a.J={};a.J.eMa=[n.Group,n.YK.aa];a.J.fMa=[n.Group.aa,n.YK];return a}); define("tdv/player/view/webgl/system/grid/System","require tdv/utils tdv/player/view/util/Color tdv/player/view/webgl/ecs/System tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/system/util/material/Util".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/player/view/util/Color"),n=a("tdv/player/view/webgl/ecs/System"),g=a("tdv/player/view/webgl/components");a("tdv/player/view/webgl/system/util/entity/Util");a("tdv/player/view/webgl/system/util/material/Util"); a=m.extend(n,function(){n.apply(this,arguments);this.xb=this.xb.bind(this);this.ib=this.ib.bind(this);this.Ca=this.Ca.bind(this)});a.prototype.Yc=function(){this.bMa.v.length&&this.bMa.v.slice().forEach(this.xb);this.aMa.Da.length&&this.aMa.Da.slice().forEach(this.ib);this.cMa.v.length&&this.cMa.v.slice().forEach(this.Ca)};a.prototype.xb=function(k){var e=k.getComponent(g.wu);e=new THREE.LineSegments(this.NO(e),this.qt(e));k.N(g.Object3D).sa=k.N(g.KB).grid=e};a.prototype.ib=function(k){var e=k.getComponent(g.wu); k=k.getComponent(g.KB).grid;k.geometry=this.NO(e);k.material=this.qt(e)};a.prototype.Ca=function(k){var e=k.getComponent(g.KB).grid;e.material.dispose();e.geometry.dispose();k.ka(g.Object3D);k.ka(g.KB)};a.prototype.NO=function(k){h.Ip(k.bJa);h.Ip(k.$La);var e=k.size/k.Hna,b=k.size/2,c=[];for(let d=0,f=-b;d<=k.Hna;d++,f+=e)c.push(-b,0,f,b,0,f),c.push(f,0,-b,f,0,b);k=new THREE.BufferGeometry;k.setAttribute("position",new THREE.Float32BufferAttribute(c,3));k.setAttribute("color",new THREE.Float32BufferAttribute([], 3));return k};a.prototype.qt=function(k){var e=new THREE.LineBasicMaterial;e.depthTest=k.depthTest;e.toneMapped=!1;e.vertexColors=!0;return e};a.J={};a.J.bMa=[g.wu,g.KB.aa];a.J.aMa=[g.wu,g.KB];a.J.cMa=[g.wu.aa,g.KB];return a}); define("tdv/view/images/ImageAnimation","require tdv/utils tdv/constants/EventName tdv/constants/PlaybackState tdv/events/Event tdv/events/EventDispatcher tdv/view/util/Animation".split(" "),function(a){function m(f,l,p,q){this.EJ=f;this.src=f.src;this.c$=l;this.KW=p;this.frameCount=q;this.frameWidth=this.EJ.width/this.KW;this.frameHeight=this.EJ.height/this.c$}var h=a("tdv/utils"),n=a("tdv/constants/EventName"),g=a("tdv/constants/PlaybackState");a("tdv/events/Event");var k=a("tdv/events/EventDispatcher"), e=a("tdv/view/util/Animation");a=h.extend(k,function(f,l,p,q,r,t,u){k.call(this);this.js=r;this.mi=new m(f,l,p,r);this.cEa=t;this.gra(q);this.kfa=u;this.ja=document.createElement("canvas");this.ja.width=this.mi.frameWidth;this.ja.height=this.mi.frameHeight;this.ga=this.ja.getContext("2d");this.ga.globalCompositeOperation="copy";this.I=g.ca;this.B4=this.Go=0;this.F0=void 0;this.Xi=b.request(this.mi);this.Xi.bind(n.V,this.Xk,this,!0);this.Xk()});a.prototype.gra=function(f){if(this.dh!==f){var l=this.KV; this.dh=f;this.KV=this.dh*this.mi.frameCount;this.lfa=this.KV-this.dh*.1;l!==void 0&&(this.Go=this.Go/l*this.KV)}};a.prototype.$Qa=function(f){this.kfa!==f&&(this.kfa=f,this.Xk())};a.prototype.Zc=function(f){if(this.I!=f){if(f==g.Zb){if(this.I!=g.PLAYING)return}else f==g.PLAYING?this.I==g.ca&&(this.Go=this.B4=0,this.Xk()):f!=g.ca||this.Go==0&&this.B4!=0||(this.Go=this.lfa,this.Xk());this.I=f;e.requestFrame(this.sq,this);this.o(n.Pd)}};a.prototype.getState=function(){return this.I};a.prototype.sq= function(f){this.I==g.PLAYING&&(this.Go=Math.min(this.Go+f,this.Xi.Xi.length*this.dh),this.Go>=this.KV&&(this.B4++,this.cEa&&this.B4==this.cEa?(this.Zc(g.ca),this.Go=this.lfa,this.o(n.Tb)):(this.Go%=this.KV,this.o(n.Tr))),this.Xk(),this.I==g.PLAYING&&e.requestFrame(this.sq,this))};a.prototype.clear=function(){this.Zc(g.ca);this.ja.width=this.ja.height=0;this.ja=null;b.release(this.mi);this.mi=null};a.prototype.If=function(){return this.ja};a.prototype.Xk=function(){var f=this.kfa&&this.Go>=this.lfa? 0:Math.floor(this.Go/this.dh);this.F0!=f&&f0?l[0]:this.al[0];l.xeb();if(l.Xi.length==l.mi.frameCount&&(this.al.splice(this.al.indexOf(l),1),this.al.length==0))return}this.tEa()}}};return a}); define("tdv/player/view/webgl/system/imageMaterial/AnimationPlaybackController",["require","tdv/constants/EventName","tdv/constants/PlaybackState"],function(a){function m(g,k){this.Qd=g;this.Hc=k;this.Ld=!1;this.Nca();this.Qca();this.OH()}var h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState");m.prototype.clear=function(){this.Ija();this.Nja();this.Qd.get("autoplay")||this.Qd.set("state",n.ca);this.Qd=null;this.Hc.Zc(n.ca);this.Hc=null};m.prototype.ig=function(g){this.Ld!=g&&(this.Ld= g,this.Tv())};m.prototype.OH=function(){this.Hc.Zc(this.Qd.get("state"))};m.prototype.LT=function(){this.Tv()};m.prototype.NT=function(){this.Hc.gra(this.Qd.get("frameDuration"))};m.prototype.MT=function(){this.Hc.$Qa(this.Qd.get("finalFrame")=="first")};m.prototype.JT=function(){this.Qd.o(h.Tr)};m.prototype.IT=function(){this.Qd.o(h.Tb)};m.prototype.KT=function(){this.Qd.set("state",this.Hc.getState())};m.prototype.Tv=function(){this.Qd.get("autoplay")&&this.Hc.Zc(this.Ld?n.PLAYING:n.ca)};m.prototype.Nca= function(){this.Qd.bind(h.L("state"),this.OH,this,!0);this.Qd.bind(h.L("autoplay"),this.LT,this,!0);this.Qd.bind(h.L("frameDuration"),this.NT,this,!0);this.Qd.bind(h.L("finalFrame"),this.MT,this,!0)};m.prototype.Ija=function(){this.Qd.h(h.L("state"),this.OH,this,!0);this.Qd.h(h.L("autoplay"),this.LT,this,!0);this.Qd.h(h.L("frameDuration"),this.NT,this,!0);this.Qd.h(h.L("finalFrame"),this.MT,this,!0)};m.prototype.Qca=function(){this.Hc.bind(h.Tr,this.JT,this,!0);this.Hc.bind(h.Tb,this.IT,this,!0); this.Hc.bind(h.Pd,this.KT,this,!0)};m.prototype.Nja=function(){this.Hc.h(h.Tr,this.JT,this,!0);this.Hc.h(h.Tb,this.IT,this,!0);this.Hc.h(h.Pd,this.KT,this,!0)};return m}); define("tdv/player/view/webgl/system/imageMaterial/TextureController",["require","tdv/constants/EventName","tdv/player/parser/ClassInfo","tdv/view/images/ImageAnimation","tdv/player/view/webgl/system/imageMaterial/AnimationPlaybackController"],function(a){function m(e,b,c,d){this.se=e;this.Id=b;this.Ma=c;this.Na=d.bind(this);n.Oa("AnimatedImageResource",this.se)?(this.Hc=new g(this.Id,this.se.get("rowCount",1),this.se.get("colCount",1),this.se.get("frameDuration"),this.se.get("frameCount",this.se.get("rowCount", 1)*this.se.get("colCount",1)),this.se.get("repeat"),this.se.get("finalFrame")=="first"),this.Ma.image=this.Hc.If(),this.Hc.bind(h.V,this.zS,this,!0),this.fq=new k(this.se,this.Hc)):this.Ma.image=this.Id;this.Ma.needsUpdate=!0;this.Na()}var h=a("tdv/constants/EventName"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/view/images/ImageAnimation"),k=a("tdv/player/view/webgl/system/imageMaterial/AnimationPlaybackController");m.prototype.ig=function(e){this.fq&&this.fq.ig(e)};m.prototype.dispose=function(){this.fq&& (this.fq.clear(),this.fq=null);this.Hc&&(this.Hc.h(h.V,this.zS,this,!0),this.Hc.clear(),this.Hc=null);this.Ma=this.Id=this.se=null};m.prototype.zS=function(){this.Ma.needsUpdate=!0;this.Na()};return m});define("tdv/player/view/webgl/system/util/texture/Util",["require"],function(){var a={},m=null;a.aLa=function(){if(!m){var h=document.createElement("canvas");h.width=128;h.height=128;h.getContext("2d").clearRect(0,0,h.width,h.height);m=h}return m};return a}); define("tdv/view/util/Scale",["require","tdv/player/view/util/geo/Fov","tdv/view/constants/Alignment","tdv/view/constants/ScaleMode"],function(a){var m=a("tdv/player/view/util/geo/Fov"),h=a("tdv/view/constants/Alignment"),n=a("tdv/view/constants/ScaleMode"),g=180/Math.PI,k=Math.PI/180;return{G7:function(e,b,c,d,f,l,p){b||(b=e*d/c);f||(f=n.GB);var q={};switch(f){case n.GB:q.width=e;q.height=b;break;case n.NONE:q.width=c;q.height=d;break;case n.uj:q.width=Math.min(b*c/d,e);q.height=Math.min(e*d/c,b); break;case n.Ir:q.width=Math.max(b*c/d,e);q.height=Math.max(e*d/c,b);break;case n.Tp:q.width=e;q.height=e*d/c;break;case n.Pk:q.width=b*c/d,q.height=b}q.width>e?(q.nB=e/q.width,q.AZ=l==h.fb?0:l==h.Db?1-q.nB:(1-q.nB)*.5,q.width=e):(q.AZ=0,q.nB=1);q.height>b?(q.qB=b/q.height,q.KZ=p==h.Tc?1-q.qB:p==h.Gc?0:(1-q.qB)*.5,q.height=b):(q.KZ=0,q.qB=1);return q},Boa:function(e,b,c,d,f,l,p,q){b||(b=m.um(e,c,d));f||(f=n.GB);l||(l=4096/360);var r={};switch(f){case n.GB:r.Wd=e;r.Mk=b;break;case n.NONE:r.Wd=2*Math.atan2(c* .5,l*45)*g;r.Mk=m.um(r.Wd,c,d);break;case n.uj:r.Wd=Math.min(m.yr(b,c,d),e);r.Mk=Math.min(m.um(e,c,d),b);break;case n.Ir:r.Wd=Math.max(m.yr(b,c,d),e);r.Mk=Math.max(m.um(e,c,d),b);break;case n.Tp:r.Wd=e;r.Mk=m.um(e,c,d);break;case n.Pk:r.Wd=m.yr(b,c,d),r.Mk=b}r.Wd>e?(r.nB=Math.tan(e*.5*k)*c/Math.tan(r.Wd*.5*k)/c,r.AZ=p==h.fb?0:p==h.Db?1-r.nB:(1-r.nB)*.5,r.Wd=e):(r.AZ=0,r.nB=1);r.Mk>b?(r.qB=Math.tan(b*.5*k)*d/Math.tan(r.Mk*.5*k)/d,r.KZ=q==h.Tc?1-r.qB:q==h.Gc?0:(1-r.qB)*.5,r.Mk=b):(r.KZ=0,r.qB=1);return r}}}); define("tdv/player/view/webgl/system/imageMaterial/Behaviour","require tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/Event tdv/player/parser/ClassInfo tdv/player/view/image/Item tdv/player/view/image/Repository tdv/player/view/webgl/system/imageMaterial/TextureController tdv/player/view/webgl/system/util/texture/Util tdv/player/view/webgl/components tdv/view/util/Ease tdv/view/util/EaseDimension tdv/view/util/Scale".split(" "),function(a){function m(v){this.B=v;this.vD=this.vD.bind(this); this.Na=this.Na.bind(this);this.Qj=this.Qj.bind(this);v=v.getComponent(f.Ni);this.Oh=v.Ap;this.Ee=v.M;this.se=this.A=null;this.Q3a=v.isSprite;this.ih=!1;this.Io=this.hb=null;this.xy=0;this.Gka=this.zea=this.Of=this.W0=this.ha=void 0;this.rka(v.ww);this.Oj(v.properties)}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/events/Event"),k=a("tdv/player/parser/ClassInfo"),e=a("tdv/player/view/image/Item"),b=a("tdv/player/view/image/Repository"),c=a("tdv/player/view/webgl/system/imageMaterial/TextureController"), d=a("tdv/player/view/webgl/system/util/texture/Util"),f=a("tdv/player/view/webgl/components"),l=a("tdv/view/util/Ease"),p=a("tdv/view/util/EaseDimension"),q=a("tdv/view/util/Scale"),r=["height","scaleMode","width"],t=["levels.url","levels.width","levels.height"],u="depthTest enabled encoding hidden side opacity easeDuration".split(" ");m.prototype.frame=function(v){var w=this.B.getComponent(f.Ni);this.rka(w.ww);this.Oj(w.properties);this.Io&&(this.Io.Nb(v),this.xy=this.Io.ob("alpha"),this.Vla(),this.Io.Ve()&& (this.Io=null),this.B.T.Qa());this.hab();this.ih&&(this.ih=!1)};m.prototype.vD=function(){if(this.se&&this.A){var v=this.se&&this.se.get("levels")||[];v=v.filter(function(B){return!!B.get("url")});var w=1,y=1;k.Oa("AnimatedImageResource",this.se)&&(w=this.se.get("rowCount"),y=this.se.get("colCount"));var x=null;if(v.length>0){v.sort(function(B,H){return H.get("width")-B.get("width")});x=this.A.get("width");var z=this.A.get("height"),A=this.A.get("scaleMode","fill"),D=v[0].get("width")/y,F=v[0].get("height")/ w,C=q.G7(x,z,D,F,A);x=v.reduce(function(B,H){return!B||B.get("width")>H.get("width")&&H.get("width")/y>=C.width&&H.get("height")/w>=C.height?H:B})}this.dV(x)}};m.prototype.dV=function(v){this.hb!=v&&(this.hb&&(this.U_a(),this.Eea(),this.N0(),this.hs(),this.ih=!1),this.hb=v)&&(this.cs(),this.my(),this.IR(),this.ih=!1,this.Na())};m.prototype.IR=function(){this.de||(this.de=new e,this.de.eQ([this.hb.get("url")]),this.de.bind(n.ia,this.Pe,this,!0),this.de.bind(n.yc,this.SBa,this,!0),this.de.bind(n.$c, this.yh,this,!0),this.zv=this.B.getComponent(f.Ni).priority,b.FA(this.de,this.zv))};m.prototype.hs=function(){this.de&&(this.de.h(n.ia,this.Pe,this,!0),this.de.h(n.yc,this.SBa,this,!0),this.de.h(n.$c,this.yh,this,!0),b.fo(this.de,this.zv),this.de=null)};m.prototype.Pe=function(){this.C_a();this.tla(new g(n.ia))};m.prototype.SBa=function(v){this.tla(new g(n.yc,{percent:v.percent}))};m.prototype.yh=function(){this.tla(new g(n.$c))};m.prototype.tla=function(v){this.Oh&&this.Oh.o(v)};m.prototype.Na=function(){this.ih|| (this.ih=!0,this.B.T.Qa())};m.prototype.cs=function(){this.Ma=new THREE.Texture;this.Ma.image=d.aLa();this.Ma.generateMipmaps=!0;this.Ma.minFilter=THREE.LinearMipMapLinearFilter};m.prototype.N0=function(){this.Ma&&(this.Ma.dispose(),this.Ma=null)};m.prototype.my=function(){this.Q3a?(this.Aa=new THREE.SpriteMaterial({map:this.Ma}),this.Aa.sizeAttenuation=!0):this.Aa=new THREE.MeshBasicMaterial({map:this.Ma});this.Aa.transparent=!0;this.Aa.needsUpdate=!0;this.B.N(f.Material).material=this.Aa;this.Pva(0); this.B.O(f.gi,!0);this.B.O(f.Material,!0);this.Qj(!0)};m.prototype.Qj=function(v){var w=this.A.get("enabled")&&!this.A.get("hidden")&&!!this.Pq,y=this.ha!==w;if(y||v){this.ha=w;w=this.xy;var x=this.ha?1:0,z=this.A.get("hidden")?0:this.A.get("easeDuration",200);this.Io=w!==x?new l("linear",[new p("alpha",w,x,void 0)],Math.abs(w-x)*z):null;this.Vla()}w=this.A.get("encoding");if(this.W0!==w||v)this.W0=w,this.Zab();w=this.A.get("depthTest");if(this.zea!==w||v)this.zea=w,this.yab();w=this.A.get("opacity"); if(this.Of!==w||v)this.Of=w,this.Vla();w=this.A.get("side");if(this.Gka!==w||v)this.Gka=w,this.zab();y&&this.Ee&&this.Ee.o(this.ha?n.od:n.jd)};m.prototype.hab=function(){if(this.Aa){var v=this.B.getComponent(f.Ni);v=(v=(v=v&&v.nJa)&&v.getComponent(f.EB))?v.planes:null;this.Aa.clippingPlanes!==v&&(this.Aa.clippingPlanes=v,this.Aa.needsUpdate=!0)}};m.prototype.Zab=function(){if(this.Aa&&(this.Aa.map||this.Aa.emissiveMap)){var v=this.W0=="srgb"?THREE.SRGBColorSpace:THREE.LinearSRGBColorSpace;this.Aa.map&& (this.Aa.map.colorSpace=v);this.Aa.emissiveMap&&(this.Aa.emissiveMap.colorSpace=v);this.Aa.needsUpdate=!0}this.B.O(f.gi,!0);this.Na()};m.prototype.yab=function(){this.Aa&&(this.Aa.depthTest=this.zea);this.B.O(f.gi,!0);this.Na()};m.prototype.Vla=function(){this.Aa&&this.Pva((this.Of||0)*this.xy);this.Pq&&this.Pq.ig(this.Of>0);this.Na()};m.prototype.Pva=function(v){this.Aa.opacity=v;this.Aa.visible=this.Aa.opacity>0;this.Aa.isShaderMaterial&&this.Aa.uniforms.opacity&&(this.Aa.uniforms.opacity.value= v);this.B.O(f.gi,!0)};m.prototype.zab=function(){if(this.Aa)switch(this.Gka){case "back":this.Aa.side=THREE.BackSide;break;case "double":this.Aa.side=THREE.DoubleSide;break;default:this.Aa.side=THREE.FrontSide}this.B.O(f.gi,!0);this.Na()};m.prototype.Eea=function(){this.Aa&&(this.Aa.dispose(),this.Aa=null,this.B.ka(f.Material))};m.prototype.C_a=function(){this.Pq=new c(this.se,b.xg(this.hb.get("url")),this.Ma,this.Na);this.Qj(!0)};m.prototype.U_a=function(){this.Pq&&(this.Pq.dispose(),this.Pq=null)}; m.prototype.rka=function(v){this.se!=v&&(this.se&&h.da(this.se,t,this.vD),(this.se=v)&&h.ba(this.se,t,this.vD,!1),this.vD())};m.prototype.Oj=function(v){if(this.A!=v){this.A&&(h.da(this.A,r,this.vD),h.da(this.A,u,this.Qj));if(this.A=v)h.ba(this.A,r,this.vD,!1),h.ba(this.A,u,this.Qj,!1);this.vD()}};m.prototype.dispose=function(){this.dV(null);this.rka(null);this.Oj(null);this.B=this.Oh=null};m.Wa=function(v){v.N(f.MB).manager=new m(v)};m.ya=function(v){var w=v.getComponent(f.MB);w.manager.dispose(); w.manager=null;v.ka(f.MB)};m.frame=function(v,w){v.getComponent(f.MB).manager.frame(w)};return m}); define("tdv/player/view/webgl/system/imageMaterial/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/imageMaterial/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/imageMaterial/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(k,e){this.On.v.length&&this.On.v.slice().forEach(g.ya); this.Nn.v.length&&this.Nn.v.slice().forEach(g.Wa);this.materials.v.length&&this.materials.v.slice().forEach(function(b){g.frame(b,k,e)})};a.J={};a.J.Nn=[n.Ni,n.MB.aa];a.J.materials=[n.Ni,n.MB];a.J.On=[n.Ni.aa,n.MB];return a}); define("tdv/player/view/webgl/system/lineMaterial/Behaviour",["require","tdv/player/view/util/Color","tdv/player/view/webgl/components"],function(a){function m(g){this.B=g;this.Aa=null;this.update()}var h=a("tdv/player/view/util/Color"),n=a("tdv/player/view/webgl/components");m.prototype.update=function(){this.Aa||(this.Aa=new THREE.LineBasicMaterial,this.B.N(n.Material).material=this.Aa);var g=this.B.getComponent(n.ei);this.Aa.color=h.Ip(g.color||"#ffffff");this.Aa.lineWidth=g.width||1;this.Aa.opacity= g.opacity||0;this.Aa.transparent=g.transparent;this.Aa.depthTest=!!g.depthTest;this.Aa.visible=this.Aa.opacity>0;this.Aa.needsUpdate=!0};m.prototype.dispose=function(){this.Aa&&(this.Aa.dispose(),this.Aa=null,this.B.ka(n.Material));this.B=null};m.Wa=function(g){g.N(n.OB).manager=new m(g)};m.ya=function(g){var k=g.getComponent(n.OB);k.manager.dispose();k.manager=null;g.ka(n.OB)};m.update=function(g){g.getComponent(n.OB).manager.update()};return m}); define("tdv/player/view/webgl/system/lineMaterial/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/lineMaterial/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/lineMaterial/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.Nn.v.length&&this.Nn.v.slice().forEach(g.Wa); this.materials.Da.length&&this.materials.Da.slice().forEach(g.update);this.On.v.length&&this.On.v.slice().forEach(g.ya)};a.J={};a.J.Nn=[n.ei,n.OB.aa];a.J.materials=[n.ei,n.OB];a.J.On=[n.ei.aa,n.OB];return a}); define("tdv/player/view/webgl/system/line/System","require tdv/utils tdv/player/view/webgl/ecs/System tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/system/util/material/Util".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components");a("tdv/player/view/webgl/system/util/entity/Util");var g=a("tdv/player/view/webgl/system/util/material/Util");a=m.extend(h,function(){h.apply(this, arguments);this.xb=this.xb.bind(this);this.ib=this.ib.bind(this);this.Ca=this.Ca.bind(this)});a.prototype.Yc=function(){this.uNa.v.length&&this.uNa.v.slice().forEach(this.xb);this.lines.Da.length&&this.lines.Da.slice().forEach(this.ib);this.vNa.v.length&&this.vNa.v.slice().forEach(this.Ca);this.wNa.v.length&&this.wNa.v.slice().forEach(this.Ca);this.xNa.v.length&&this.xNa.v.slice().forEach(this.Ca)};a.prototype.xb=function(k){k.N(n.Object3D).sa=new THREE.LineSegments;k.N(n.PB);k.N(n.ta);if(!k.getComponent(n.Geometry)){var e= (new THREE.BufferGeometry).setFromPoints([new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,1)]);e.userData.QMa=!0;k.N(n.Geometry).geometry=e}this.ib(k)};a.prototype.ib=function(k){var e=k.getComponent(n.Object3D).sa;g.ND(e,k.getComponent(n.Material).material);var b=k.getComponent(n.Geometry).geometry;e.geometry!=b&&(e.geometry&&b.userData.QMa&&e.geometry.dispose(),e.geometry=b,e.needsUpdate=!0);k=k.getComponent(n.Line).renderOrder||0;e.renderOrder!=k&&(e.renderOrder=k,e.needsUpdate=!0)};a.prototype.Ca= function(k){k.ka(n.PB);k.ka(n.Geometry);var e=k.getComponent(n.Object3D);e&&(e=e.sa,e.geometry&&e.geometry.userData.QMa&&e.geometry.dispose(),e.geometry=null,g.ND(e,null),k.ka(n.Object3D))};a.J={};a.J.uNa=[n.Line,n.Material,n.PB.aa];a.J.lines=[n.Line,n.Geometry,n.Material,n.PB];a.J.vNa=[n.Line.aa,n.PB];a.J.wNa=[n.Material.aa,n.PB];a.J.xNa=[n.Geometry.aa,n.PB];return a}); define("tdv/player/view/webgl/system/lineToTransform/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/entity/Util"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/util/entity/Util");a=m.extend(h,function(){h.apply(this,arguments);this.xb=this.xb.bind(this);this.Ca=this.Ca.bind(this);this.eg=this.eg.bind(this)});a.prototype.Yc= function(){this.qNa.v.length&&this.qNa.v.slice().forEach(this.xb);this.pNa.v.length&&this.pNa.v.slice().forEach(this.eg);this.rNa.v.length&&this.rNa.v.slice().forEach(this.Ca);this.sNa.v.length&&this.sNa.v.slice().forEach(this.Ca);this.tNa.v.length&&this.tNa.v.slice().forEach(this.Ca)};a.prototype.xb=function(l){l.N(n.QB)};a.prototype.Ca=function(l){l.ka(n.QB)};var k=new THREE.Matrix4,e=new THREE.Quaternion,b=new THREE.Vector3,c=new THREE.Vector3(0,0,1),d=new THREE.Euler,f=180/Math.PI;a.prototype.eg= function(l){var p=l.getComponent(n.ta);if(p){var q=g.Qc(l);if(q&&q.parent){var r=l.getComponent(n.yu),t=r.F;if(t){r=g.Qc(t);if(!r||!r.parent)return;b.setFromMatrixPosition(r.matrixWorld)}else if(r.position)b.copy(r.position);else return;k.copy(q.parent.matrixWorld).invert();b.applyMatrix4(k);b.x-=p.translationX;b.y-=p.translationY;b.z-=p.Ze;q=b.length();e.setFromUnitVectors(c,b.normalize());d.setFromQuaternion(e,p.mf);d.x*=f;d.y*=f;d.z*=f;if(p.scale!=q||p.Yd!=d.x||p.fd!=d.y||p.Xe!=d.z)p=l.O(n.ta), p.scale=q,p.Yd=d.x,p.fd=d.y,p.Xe=d.z,g.dZ(l,p),l.T.Qa()}}};a.J={};a.J.qNa=[n.Object3D,n.yu,n.QB.aa];a.J.pNa=[n.Object3D,n.yu,n.QB,n.ta];a.J.rNa=[n.Object3D.aa,n.QB];a.J.sNa=[n.yu.aa,n.QB];a.J.tNa=[n.ta.aa,n.QB];return a}); define("tdv/player/view/webgl/system/objectTransform/System","require tdv/utils tdv/constants/EventName tdv/player/view/util/XR tdv/player/view/webgl/ecs/System tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/system/util/material/Util".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/view/util/XR"),g=a("tdv/player/view/webgl/ecs/System"),k=a("tdv/player/view/webgl/components"),e=a("tdv/player/view/webgl/system/util/entity/Util"), b=a("tdv/player/view/webgl/system/util/material/Util");a=m.extend(g,function(){g.apply(this,arguments);this.xb=this.xb.bind(this);this.Ca=this.Ca.bind(this);this.ib=this.ib.bind(this)});a.prototype.Yc=function(){this.hOa.v.length&&this.hOa.v.slice().forEach(this.xb);this.Spa.Da.length&&this.Spa.Da.slice().forEach(this.ib);this.iOa.v.length&&this.iOa.v.slice().forEach(this.Ca);this.jOa.v.length&&this.jOa.v.slice().forEach(this.Ca)};a.prototype.xb=function(c){c.N(k.RB);this.Spa.v.forEach(function(d){this.y3a(d, c)&&this.r4(e.Qc(d))}.bind(this));this.ib(c)};a.prototype.ib=function(c){var d=c.getComponent(k.gi);if(c=e.Qc(c))this.dYa(c,d),this.r4(c),this.ye(c,d)};a.prototype.Ca=function(c){c.ka(k.RB);var d=e.Qc(c);d&&(this.uZa(d),this.r4(d),c.ka(k.RB))};a.prototype.dYa=function(c,d){c.userData.YOa=d.opacity;c.userData.wW=d.wW;c.userData.castShadow=d.castShadow;c.userData.receiveShadow=d.receiveShadow;c.userData.DW=d.DW};a.prototype.uZa=function(c){c.userData.YOa=void 0;c.userData.wW=void 0;c.userData.castShadow= void 0;c.userData.receiveShadow=void 0;c.userData.DW=void 0};a.prototype.r4=function(c){if(n.Vh!=c&&!c.zw){var d=this.uya(c),f=this.k1a(c),l=this.m1a(c),p=this.n1a(c),q=this.l1a(c);if(c.material){if(d===void 0&&q!==!0)b.GY(c);else{var r=c.userData.Ot||c.material,t=b.v8(r),u=b.v8(c.material),v=r.opacity;r=r.transparent;q!==!0&&u&&!t?b.GY(c):q!==!0||u||b.DJa(c);v!==void 0&&(t=v*(d===void 0?1:d),u=t>0,r=t<1?!0:r,c.material.opacity!==t||c.material.visible!==u||c.material.transparent!==r)&&(b.Vna(c),c.material.opacity= t,c.material.transparent=r,c.material.visible=u,c.material.needsUpdate=!0);b.nnb(c)}var w=this.a1a(f);(c.material.map==null?[]:Array.isArray(c.material.map)?c.material.map:[c.material.map]).forEach(function(y){y.anisotropy!==w&&(y.anisotropy=w,y.needsUpdate=!0)})}c.isMesh&&(l!==void 0&&c.castShadow!==l&&(c.castShadow=l),p!==void 0&&c.receiveShadow!==p&&(c.receiveShadow=p));c.children&&c.children.forEach(function(y){y.userData.$gb=d;y.userData.Xgb=f;y.userData.Zgb=l;y.userData.ahb=p;y.userData.Ygb= q;this.r4(y)}.bind(this))}};a.prototype.a1a=function(c){return 1+Math.round((c||0)*(e.dLa().capabilities.getMaxAnisotropy()-1))};a.prototype.uya=function(c){var d=c.userData.YOa;c=c.userData.$gb;if(c!==void 0||d!==void 0)if(d=(c!==void 0?c:1)*(d!==void 0?d:1),d!==1)return d};a.prototype.k1a=function(c){var d=c.userData.wW;if(d!==void 0)return d;c=c.userData.Xgb;if(c!==void 0)return c};a.prototype.m1a=function(c){var d=c.userData.castShadow;if(d!==void 0)return d;c=c.userData.Zgb;if(c!==void 0)return c}; a.prototype.n1a=function(c){var d=c.userData.receiveShadow;if(d!==void 0)return d;c=c.userData.ahb;if(c!==void 0)return c};a.prototype.l1a=function(c){var d=c.userData.DW;if(d!==void 0)return d;c=c.userData.Ygb;if(c!==void 0)return c};a.prototype.ye=function(c,d){var f=this.uya(c);f!==void 0&&(f=f>0,c.userData.mob!==f&&(c.userData.mob=f,d.M&&d.M.o(f?h.od:h.jd)))};a.prototype.y3a=function(c,d){c=e.Qc(c);d=e.Qc(d);if(!c||!d)return!1;for(d=d.parent;d;){if(d===c)return!0;d=d.parent}return!1};a.J={};a.J.hOa= [k.gi,k.Object3D,k.RB.aa];a.J.Spa=[k.gi,k.Object3D,k.RB];a.J.iOa=[k.gi.aa,k.RB];a.J.jOa=[k.Object3D.aa,k.RB];return a}); define("tdv/player/view/webgl/system/materialVariant/Behaviour",["require","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/material/Util"],function(a){function m(g){this.B=g;this.uma=this.Tm=this.He=null;this.fO=-1}var h=a("tdv/player/view/webgl/components"),n=a("tdv/player/view/webgl/system/util/material/Util");m.prototype.frame=function(){if(!this.Tm&&(this.Tm=this.B.getComponent(h.Oi).Hoa)){var g=this.Tm.userData&&this.Tm.userData.gltfExtensions&&this.Tm.userData.gltfExtensions.KHR_materials_variants; this.uma=g&&g.variants||[];this.update()}};m.prototype.update=function(){if(this.uma){var g=this.B.getComponent(h.Cx).name,k=this.uma.findIndex(function(b){return b.name==g}),e=this.Tm.scene;this.He!=e?(this.He&&this.hEa(this.He),this.He=e,this.fO=k,this.He&&this.kFa(this.He,this.fO)):this.fO!=k&&(this.fO=k,this.He&&this.kFa(this.He,this.fO));this.B.T.Qa()}};m.prototype.hEa=function(g){this.Tva(g,-1)};m.prototype.kFa=function(g,k){this.i4a(g,k,function(){this.He==g&&this.fO==k&&this.Tva(g,k)}.bind(this))}; m.prototype.i4a=function(g,k,e){var b=[];g.traverse(function(c){var d=c.isMesh&&c.userData.gltfExtensions&&c.userData.gltfExtensions.KHR_materials_variants;if(d=d&&d.mappings){c.userData.Sib||(c.userData.Sib=n.Efb(c));c.userData.iF||(c.userData.iF={});for(var f=null,l=d.length-1;l>=0&&!f;--l)d[l].variants.indexOf(k)!=-1&&(f=d[l]);f&&b.push(this.Tm.parser.getDependency("material",f.material).then(function(p){c.userData.iF[k]||(c.userData.iF[k]=p)}))}}.bind(this));Promise.all(b).then(function(){e(g, k)})};m.prototype.Tva=function(g,k){g.traverse(function(e){if(e.userData.iF){var b=e.userData.iF[k];b&&(n.ND(e,b),this.Tm.parser.assignFinalMaterial(e),this.B.O(h.gi,!0))}}.bind(this));this.B.T.Qa()};m.prototype.dispose=function(){this.He&&(this.hEa(this.He),this.B.O(h.gi,!0),this.He=null)};m.Wa=function(g){g.N(h.Pr).manager=new m(g)};m.ya=function(g){var k=g.getComponent(h.Pr);k.manager.dispose();k.manager=null;g.ka(h.Pr)};m.update=function(g){g.getComponent(h.Pr).manager.update()};m.frame=function(g){g.getComponent(h.Pr).manager.frame()}; return m}); define("tdv/player/view/webgl/system/materialVariant/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/materialVariant/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/materialVariant/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.BNa.v.length&&this.BNa.v.slice().forEach(g.Wa);this.N8.v.length&& this.N8.v.slice().forEach(g.frame);this.N8.Da.length&&this.N8.Da.slice().forEach(g.update);this.CNa.v.length&&this.CNa.v.slice().forEach(g.ya);this.DNa.v.length&&this.DNa.v.slice().forEach(g.ya);this.ENa.v.length&&this.ENa.v.slice().forEach(g.ya)};a.J={};a.J.BNa=[n.Cx,n.Oi,n.Object3D,n.Pr.aa];a.J.N8=[n.Cx,n.Oi,n.Object3D,n.Pr];a.J.CNa=[n.Cx.aa,n.Pr];a.J.DNa=[n.Object3D.aa,n.Pr];a.J.ENa=[n.Oi.aa,n.Pr];return a}); define("tdv/player/view/webgl/system/mesh/Behaviour",["require","tdv/player/view/webgl/components"],function(a){var m=a("tdv/player/view/webgl/components");return{Wa:function(h){var n=h.N(m.Au);h.N(m.ta);var g=h.O(m.Mesh);h.N(m.Object3D).sa=n.Ke=g.Ke=new THREE.Mesh(h.getComponent(m.Geometry).geometry,h.getComponent(m.Material).material);g.Ke.renderOrder=g.renderOrder},update:function(h){var n=h.O(m.Au);n.Ke.geometry=h.getComponent(m.Geometry).geometry;n.Ke.material=h.getComponent(m.Material).material; n.Ke.renderOrder=h.getComponent(m.Mesh).renderOrder},ya:function(h){h.getComponent(m.Au).Ke=null;h.ka(m.Au);h.ka(m.Object3D)}}}); define("tdv/player/view/webgl/system/mesh/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/mesh/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/mesh/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.HNa.v.length&&this.HNa.v.slice().forEach(g.Wa);this.GNa.Da.length&& this.GNa.Da.slice().forEach(g.update);this.S8.v.length&&this.S8.v.slice().forEach(g.ya);this.Uhb.v.length&&this.S8.v.slice().forEach(g.ya);this.Vhb.v.length&&this.S8.v.slice().forEach(g.ya)};a.J={};a.J.HNa=[n.Mesh,n.Geometry,n.Material,n.Au.aa];a.J.GNa=[n.Mesh,n.Geometry,n.Material,n.Au];a.J.S8=[n.Mesh.aa,n.Au];a.J.Uhb=[n.Geometry.aa,n.Au];a.J.Vhb=[n.Material.aa,n.Au];return a}); define("tdv/player/view/util/FileLoader",["require","exports","tdv/constants/EventName","tdv/events/EventDispatcher","tdv/util/LoadQueue"],function(a,m,h,n,g){return function(k){function e(b,c){var d=k.call(this)||this;d.Dq=null;d.fwa=null;d.kC=!1;d.HM=null;d.Se=b;d.zv=c;d.rD=new Request(b);d.wV=d.wV.bind(d);d.vR=d.vR.bind(d);return d}P(e,k);e.prototype.start=function(){this.HM||(this.kC=!1,this.HM=g.add(this.Se,this.zv,this.wV,this.vR))};e.prototype.wV=function(){this.Se.indexOf("filesystem:")=== 0?this.A0a():this.B0a()};e.prototype.A0a=function(){var b=this,c=new XMLHttpRequest;c.open("GET",this.Se,!0);c.responseType="arraybuffer";c.onload=function(){b.VBa(c.response);c.onload=c.onerror=null};c.onerror=function(){b.RBa();c.onload=c.onerror=null};c.send()};e.prototype.B0a=function(){var b=this;fetch(this.rD).then(function(c){function d(t){t===void 0&&(t=null);if(t=t||r)t.close(),r=null,b.Dq=null}function f(t){var u;return(u=b.Dq.read().then(function(v){var w=v===null||v===void 0?void 0:v.value; w&&(q+=w.byteLength,t.enqueue(w));v&&v.done&&(p&&q0&&Date.now()0&&Date.now()=d* .98||!f.object.visible)return!1;f=Array.isArray(f.object.material)&&f.face?f.object.material[f.face.materialIndex]:f.object.material;return!f||f.visible}).length>0};m.prototype.ffb=function(b){n.ray.origin.copy(b);n.ray.direction.copy(k);b=this.eH();var c=h.intersect(n,b);if(c.length>0)return c[0].distance;n.ray.direction.copy(e);c=h.intersect(n,b);if(c.length>0)return-c[0].distance};m.prototype.eH=function(){var b=[];this.Fa.traverse(function(c){c.isSprite||c.isLine||b.push(c)});return b};return m}); define("tdv/player/view/webgl/system/model/MetadataQuery",["require","exports"],function(){return function(){function a(m){this.fE=m}a.prototype.getMetadata=function(){return this.fE.metadata};return a}()}); define("tdv/player/view/webgl/system/model/ObjectQuery",["require","tdv/player/view/webgl/system/util/entity/Util"],function(a){function m(n,g){this.Ub=n;this.K2a=g}var h=a("tdv/player/view/webgl/system/util/entity/Util");m.prototype.tLa=function(n){return(n=this.Qc(n))&&n.matrixWorld};m.prototype.Qc=function(n){return n?h.ZD(this.K2a,n):h.Qc(this.Ub)};return m}); define("tdv/player/view/webgl/system/model/ProjectionQuery",["require","tdv/player/view/webgl/system/util/entity/Util"],function(a){function m(c,d,f){this.Ub=c;this.A4a=d;this.$0a=f}var h=a("tdv/player/view/webgl/system/util/entity/Util"),n=new THREE.Vector3,g=new THREE.Vector3,k=new THREE.Vector3,e=new THREE.Frustum,b=new THREE.Matrix4;m.prototype.Goa=function(c,d){d=this.A4a.tLa(d);if(!d)return null;g.copy(c).applyMatrix4(d);var f=(c=h.Qc(this.Ub))&&h.pX(c);c=f&&h.tw(f);if(!c)return null;b.identity().multiplyMatrices(c.projectionMatrix, c.matrixWorldInverse);e.setFromProjectionMatrix(b);if(!e.containsPoint(g))return null;d=(f&&h.sX(f))/2;f=(f&&h.dE(f))/2;n.copy(g).project(c);d=n.x*d+d;f=-(n.y*f)+f;k.setFromMatrixPosition(c.matrixWorld);c=this.$0a.zK(k,g);return{x:Math.round(d),y:Math.round(f),visible:!c}};return m}); define("tdv/player/view/webgl/system/model/Loader","require tdv/constants/EventName tdv/player/script/Model3DResourceLevel tdv/player/view/webgl/system/model/loaders/GLTFLoader tdv/player/view/webgl/system/model/loaders/GSLoader tdv/player/view/webgl/system/model/loaders/TilesLoader tdv/player/view/webgl/system/model/loaders/TilesLoaderConfig tdv/player/view/webgl/system/model/GeometryQuery tdv/player/view/webgl/system/model/MetadataQuery tdv/player/view/webgl/system/model/ObjectQuery tdv/player/view/webgl/system/model/ProjectionQuery tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/components tdv/player/view/util/Device tdv/player/view/util/FileType tdv/player/view/util/URL".split(" "),function(a){function m(u, v,w,y){this.B=u;this.mq=v;u=this.B.getComponent(q.Oi);this.A=u.properties;this.Lj=y;this.sf=w;this.Ee=this.Lj.hw(1);this.sf.rO(this.Ee,1);this.La=this.Tm=null;w=this.H2a(u.Gpa);this.pd=this.p_a(w);this.kXa();this.pd.type===e.TYPE&&this.pd.kkb(b.udb(u.Gpa));this.pd.start(w)}var h=a("tdv/constants/EventName"),n=a("tdv/player/script/Model3DResourceLevel"),g=a("tdv/player/view/webgl/system/model/loaders/GLTFLoader"),k=a("tdv/player/view/webgl/system/model/loaders/GSLoader"),e=a("tdv/player/view/webgl/system/model/loaders/TilesLoader"), b=a("tdv/player/view/webgl/system/model/loaders/TilesLoaderConfig"),c=a("tdv/player/view/webgl/system/model/GeometryQuery"),d=a("tdv/player/view/webgl/system/model/MetadataQuery"),f=a("tdv/player/view/webgl/system/model/ObjectQuery"),l=a("tdv/player/view/webgl/system/model/ProjectionQuery"),p=a("tdv/player/view/webgl/system/util/entity/Util"),q=a("tdv/player/view/webgl/components"),r=a("tdv/player/view/util/Device"),t=a("tdv/player/view/util/FileType");a("tdv/player/view/util/URL");m.prototype.p_a= function(u){return t.is(u,t.uta)?new k(this.A):t.is(u,t.yWa)?new e:new g(this.B)};m.prototype.H2a=function(u){var v=u.get("levels");if(!w&&r.ub())var w=(w=v.find(function(y){return y.get("tags").indexOf(n.B_)>-1}))&&w.get("url");w||v.length&&(w=v[0].get("url"));w||(w=u.get("url"));return w};m.prototype.update=function(){};m.prototype.frame=function(){this.pd.type===e.TYPE?this.abb():this.pd.type===g.TYPE?this.qab():this.pd.type===k.TYPE&&this.rab()};m.prototype.abb=function(){var u=p.Sf(this.B),v= u&&p.tw(u);v&&(this.pd.setCamera(v),this.pd.setSize(p.sX(u),p.dE(u)),this.pd.update())};m.prototype.qab=function(){this.pd.update()};m.prototype.rab=function(){this.pd.update()};m.prototype.kXa=function(){this.pd.bind(h.INIT,this.DBa,this,!0);this.pd.bind(h.ia,this.Pe,this,!0);this.pd.bind(h.$c,this.yh,this,!0);this.pd.bind(h.yc,this.Gj,this,!0);this.pd.bind(h.V,this.WBa,this,!0)};m.prototype.W6a=function(){this.pd.h(h.INIT,this.DBa,this);this.pd.h(h.ia,this.Pe,this);this.pd.h(h.$c,this.yh,this); this.pd.h(h.yc,this.Gj,this);this.pd.h(h.V,this.WBa,this)};m.prototype.DBa=function(){this.La=this.pd.ooa();this.mq.N(q.Object3D).sa=this.La;var u=this.pd.type==g.TYPE,v=this.pd.type==k.TYPE;this.RXa(this.La,u||v);v=this.B.O(q.Oi,!0);v.Hoa=u?this.pd.Tm:null;this.B.O(q.Animation,!0).properties=v.properties};m.prototype.Pe=function(){this.A.set("geometryQuery",new c(this.La));this.A.set("objectQuery",new f(this.B,this.La));this.A.set("projectionQuery",new l(this.B,this.A.get("objectQuery"),this.A.get("geometryQuery"))); this.pd.type==k.TYPE&&this.A.set("metadataQuery",new d(this.pd.fE));this.M5();this.B.O(q.gi)};m.prototype.Gj=function(u){this.Ee.o(h.yc,u.data)};m.prototype.yh=function(){this.Ee.o(h.$c)};m.prototype.WBa=function(){this.B.O(q.Object3D,!0)};m.prototype.M5=function(){this.A.set("isLoaded",!0);this.Ee.o(h.ia)};m.prototype.RXa=function(u,v){u.userData.id===void 0&&(u.userData.id="root");if(v!==!1)for(var w=[u];w.length;){var y=w.shift();u=[];y.children&&(u=u.concat(y.children));y.isSkinnedMesh&&(u=u.concat(y.skeleton.bones)); u.forEach(function(x,z){x.userData.id===void 0&&(x.userData.id=y.userData.id+"/"+z);w.push(x)})}};m.prototype.dispose=function(){this.La&&(this.pd.type!=k.TYPE&&this.La.traverse(function(u){function v(x){x&&w.indexOf(x)<0&&w.push(x)}var w=[];v(u.material);v(u.userData.Ot);if(u.userData.iF)for(var y in u.userData.iF)v(u.userData.iF[y]);w.forEach(function(x){x.dispose();Object.keys(x).forEach(function(z){(z=x[z])&&typeof z==="object"&&"minFilter"in z&&z.dispose()})});u.geometry&&u.geometry.userData.MIa&& u.geometry.disposeBoundsTree();u.geometry&&u.geometry.dispose()}),this.La=null,this.mq.ka(q.Object3D));this.pd&&(this.W6a(),this.pd.dispose(),this.pd=null);this.Ee&&(this.sf.WP(this.Ee),this.Lj.WP(this.Ee),this.sf=this.Ee=null);this.A&&(this.A.set("geometryQuery",null),this.A.set("objectQuery",null),this.A.set("isLoaded",!1),this.A=null)};return m}); define("tdv/player/view/webgl/system/model/object/draggable/DraggableSize3DControls","require tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/RenderOrder tdv/events/EventDispatcher tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util".split(" "),function(a){function m(r,t,u){this.Ub=r;this.B=t;this.R=u;this.Sl=this.Sl.bind(this);this.zh=this.zh.bind(this);this.gz=this.gz.bind(this);this.Re=null;this.ha=!1;this.s4=[1,1,1,1,1,1];this.zy=[];this.ah=[this.lO= this.bs(),this.kO=this.bs(),this.nO=this.bs(),this.mO=this.bs(),this.pO=this.bs(),this.oO=this.bs()];this.ah.forEach(function(v){v=v.O(e.xd);v.opacity=.5;v.depthTest=!1}.bind(this));h.ba(this.R,l,this.zh,!0);h.ba(this.R,p,this.Sl,!0);h.ba(this.R,q,this.gz,!0)}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/constants/RenderOrder"),k=a("tdv/events/EventDispatcher"),e=a("tdv/player/view/webgl/components"),b=a("tdv/player/view/webgl/system/util/entity/Util");m.prototype.frame= function(){if(this.ha&&(this.J8a(this.ah.map(function(B){return b.tJ(B)||1})),this.Re)){var r=b.Qc(this.B),t=b.Qc(this.oM(this.Re));if(r&&t){d.copy(r.matrixWorld).invert();c.setFromMatrixPosition(t.matrixWorld).applyMatrix4(d);r=this.R.get("x");t=this.R.get("y");var u=this.R.get("z"),v=this.R.get("width"),w=this.R.get("height"),y=this.R.get("depth"),x=0,z=0,A=0,D=0,F=0,C=0;switch(this.Re){case this.lO:D=c.x-v*.5;x=D*.5;break;case this.kO:D=-c.x-v*.5;x=-D*.5;break;case this.nO:F=c.y-w*.5;z=F*.5;break; case this.mO:F=-c.y-w*.5;z=-F*.5;break;case this.pO:C=c.z-y*.5;A=C*.5;break;case this.oO:C=-c.z-y*.5,A=-C*.5}this.R.set("x",r+x);this.R.set("width",v+D);this.R.set("y",t+z);this.R.set("height",w+F);this.R.set("z",u+A);this.R.set("depth",y+C)}}};var c=new THREE.Vector3,d=new THREE.Matrix4;m.prototype.bs=function(){var r=this.Ub.T.sc("DraggingSphere");this.zy.push(r);r.N(e.Mesh).renderOrder=g.tUa;r.N(e.Geometry).geometry=new THREE.SphereGeometry;r.N(e.xd);return r};m.prototype.zh=function(){this.lO.O(e.xd).color= this.R.get("draggableXControlsColor");this.kO.O(e.xd).color=this.R.get("draggableXControlsColor");this.nO.O(e.xd).color=this.R.get("draggableYControlsColor");this.mO.O(e.xd).color=this.R.get("draggableYControlsColor");this.pO.O(e.xd).color=this.R.get("draggableZControlsColor");this.oO.O(e.xd).color=this.R.get("draggableZControlsColor");var r=this.R.get("draggableSphereRadius");this.ah.forEach(function(t,u){t.O(e.ta,!0).scale=r*this.s4[u]}.bind(this))};m.prototype.Sl=function(){this.lO.O(e.ta,!0).positionX= this.R.get("width")/2;this.kO.O(e.ta,!0).positionX=-this.R.get("width")/2;this.nO.O(e.ta,!0).positionY=this.R.get("height")/2;this.mO.O(e.ta,!0).positionY=-this.R.get("height")/2;this.pO.O(e.ta,!0).positionZ=this.R.get("depth")/2;this.oO.O(e.ta,!0).positionZ=-this.R.get("depth")/2};m.prototype.gz=function(){var r=this.R.get("sizeDraggable");this.ha!=r&&(this.ha=r,this.ah.forEach(function(t){r?(t.N(e.pb).F=this.B,this.ah.forEach(function(u){u=u.N(e.wd);u.Xt=!0;u.lt=!0;u.M=new k;u.M.bind(n.uc,this.TM, this,!0);u.M.bind(n.Eb,this.iia,this,!0);u.M.bind(n.Sa,this.gia,this,!0);u.M.bind(n.$a,this.hia,this,!0)}.bind(this))):(t.ka(e.pb),this.ah.forEach(function(u){u.ka(e.wd)}.bind(this)))}.bind(this)))};m.prototype.J8a=function(r){for(var t=!1,u=0;u0||x<1)?C>B?D=C/A:F=B/(1-x):this.Gja===this.Re&&(A<1||x<1)?H>B?D=H/(1-A):F=B/(1-x):this.zha===this.Re&&(A>0||x>0)?C>E?D=C/A:F=E/x:this.bka===this.Re&&(A<1||x>0)&&(H>E?D=H/(1-A):F=E/x);F!==void 0&&D===void 0?D=F*this.Kva:D!==void 0&&F===void 0&&(F=D/this.Kva);D!==void 0&&F!==void 0&&(A=this.R.get("sizeAttenuation")? this.Av/this.H_:1,this.R.set("width",this.Pa=D*A),this.R.set("height",this.Ha=F*A))}D=this.Uu.getComponent(e.ta);c.copy(y.parent.matrixWorld).invert().multiply(z.matrixWorld).decompose(d,l,f);r.setFromQuaternion(l,D.mf);r.x*=t;r.y*=t;r.z*=t;if(D.Yd!=r.x||D.fd!=r.y||D.Xe!=r.z)D=this.Uu.O(e.ta),D.Yd=r.x,D.fd=r.y,D.Xe=r.z;y.parent.getWorldScale(d);this.B7a(1/Math.max(d.x,d.y,d.z));this.tka(b.tJ(this.Uu)||1)}}};m.prototype.dab=function(y,x){this.Ela!=null&&clearTimeout(this.Ela);this.Ela=setTimeout(function(){this.Ela= null;if(this.Pa!==y||this.Ha!==x)this.Pa=y,this.Ha=x,this.Kva=this.Pa/this.Ha}.bind(this),100)};m.prototype.bs=function(){var y=this.Ub.T.sc("DraggingSphere");y.N(e.Mesh).renderOrder=g.sUa;y.N(e.Geometry).geometry=new THREE.SphereGeometry;y.N(e.xd);return y};m.prototype.Zda=function(){var y=this.Ub.T.sc("BoxBorder");y.N(e.Line);y.N(e.Geometry).geometry=this.A_a();var x=y.N(e.ei);x.color="#0000ff";x.depthTest=!1;x.width=1;return y};m.prototype.A_a=function(){var y=[new THREE.Vector3(-.5,-.5,0),new THREE.Vector3(.5, -.5,0),new THREE.Vector3(.5,-.5,0),new THREE.Vector3(.5,.5,0),new THREE.Vector3(.5,.5,0),new THREE.Vector3(-.5,.5,0),new THREE.Vector3(-.5,.5,0),new THREE.Vector3(-.5,-.5,0)];return(new THREE.BufferGeometry).setFromPoints(y)};m.prototype.zh=function(){var y=this.Ru.O(e.ei);y.color=this.R.get("draggableLineColor");y.opacity=this.R.get("draggableLineOpacity");y.width=this.R.get("draggableLineWidth");this.ah.forEach(function(x){x.O(e.xd).color=this.R.get("draggableSphereColor");x.O(e.ta).scale=this.R.get("draggableSphereRadius")* this.Av}.bind(this))};m.prototype.tka=function(y){this.Av!=y&&(this.Av=y,this.RH(),this.zh())};m.prototype.B7a=function(y){this.H_!=y&&(this.H_=y,this.RH(),this.zh())};m.prototype.RH=function(){var y=this.R.get("anchorX"),x=this.R.get("anchorY"),z=this.R.get("width"),A=this.R.get("height"),D=this.R.get("sizeAttenuation")?this.H_:this.Av,F=this.zha.O(e.ta,!0);F.positionX=-y*z*D;F.positionY=x*A*D;F=this.bka.O(e.ta,!0);F.positionX=(1-y)*z*D;F.positionY=x*A*D;F=this.sha.O(e.ta,!0);F.positionX=-y*z*D; F.positionY=(x-1)*A*D;F=this.Gja.O(e.ta,!0);F.positionX=(1-y)*z*D;F.positionY=(x-1)*A*D;F=this.Ru.O(e.ta,!0);F.positionX=(.5-y)*z*D;F.positionY=(x-.5)*A*D;F.Le=z*D;F.Ye=A*D;this.dab(z,A)};m.prototype.gz=function(){var y=this.R.get("sizeDraggable");this.ha!=y&&((this.ha=y)?(this.Uu.N(e.pb).F=this.B,this.ah.forEach(function(x){x=x.N(e.wd);x.Xt=!0;x.lt=!0;x.M=new k;x.M.bind(n.uc,this.TM,this,!0);x.M.bind(n.Eb,this.iia,this,!0);x.M.bind(n.Sa,this.gia,this,!0);x.M.bind(n.$a,this.hia,this,!0)}.bind(this))): (this.Uu.ka(e.pb),this.ah.forEach(function(x){x.ka(e.wd)}.bind(this))))};m.prototype.TM=function(y){(y=this.Ey(y))&&y!=this.Re&&(y.O(e.xd).opacity=1)};m.prototype.iia=function(y){(y=this.Ey(y))&&y!=this.Re&&(y.O(e.xd).opacity=.5)};m.prototype.gia=function(y){y=this.Ey(y);this.hV(y)};m.prototype.hia=function(y){(y=this.Ey(y))&&y==this.Re&&(this.hV(null),this.RH(),(y=this.ah.indexOf(y)!=-1)&&this.R.o(n.Jm),y&&this.R.o(n.xua))};m.prototype.Ey=function(y){y=this.ah.map(function(x){return x.getComponent(e.wd).M}).indexOf(y.source); if(y==-1)return null;y=this.ah[y];return this.J3a(y)?y:null};m.prototype.J3a=function(y){var x=this.R.get("anchorX"),z=this.R.get("anchorY");return this.sha===y&&(x>0||z>0)||this.Gja===y&&(x<1||z>0)||this.zha===y&&(x>0||z<1)||this.bka===y&&(x<1||z<1)?!0:!1};m.prototype.hV=function(y){this.Re&&(this.Re.O(e.xd).opacity=.5,this.oM(this.Re).ka(e.vx));if(this.Re=y){this.Re.O(e.xd).opacity=1;var x=this.oM(this.Re).N(e.vx),z=b.getWorldPosition(this.B);y=b.getWorldPosition(y);y=(new THREE.Vector3).copy(y).sub(z); var A=Math.min(y.length(),this.Av*10);z=(new THREE.Vector3).copy(z).add(d.copy(y).setLength(A));x.direction=y;x.min=z}};m.prototype.oM=function(y){return this.ah.indexOf(y)!=-1?y:null};m.prototype.dispose=function(){h.da(this.R,v,this.RH);h.da(this.R,u,this.zh);h.da(this.R,w,this.gz);var y=this.Ub.T;this.zy.forEach(function(x){y.dd(x)});this.R=this.Ub=this.ah=this.B=this.zy=null};var u=["draggableLineColor","draggableLineOpacity","draggableLineWidth","draggableSphereColor","draggableSphereRadius"], v="anchorX anchorY height sizeAttenuation x y z width".split(" "),w=["sizeDraggable"];return m}); define("tdv/player/view/webgl/system/model/object/SpriteController","require tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/Priority tdv/constants/RenderOrder tdv/events/EventDispatcher tdv/player/view/webgl/components tdv/player/view/webgl/system/model/object/draggable/DraggableSize2DControls tdv/player/view/webgl/system/util/entity/Util".split(" "),function(a){function m(x,z,A,D,F){this.Ub=x;this.sf=A;this.Lj=D;this.R=F;this.Sl=this.Sl.bind(this);this.WT=this.WT.bind(this);this.zh= this.zh.bind(this);this.x3=this.x3.bind(this);this.hz=this.hz.bind(this);this.Oh=this.sf.hw(1);this.swa=new THREE.Vector3;this.e0=new THREE.Euler;this.R.get("preload")&&this.Lj.rO(this.Oh);this.B=this.Ub.T.sc("SpriteContainer");this.B.N(b.Group);x=this.B.N(b.pb);x.F=this.Ub;x.id=this.R.get("parentId");this.RV=this.Ub.T.sc("TranslationSpriteContainer");this.RV.N(b.Group);this.RV.N(b.pb).F=this.B;this.Kv=this.Ub.T.sc("Sprite");this.Kv.N(b.pb).F=this.RV;x=this.Kv.N(b.Ni);x.properties=this.R;x.ww=this.R.get("image"); x.M=this.R;x.Ap=this.Oh;x.isSprite=!0;x.priority=this.R.get("preload")?g.QF:g.Jta;this.Kv.N(b.wd).M=this.R;this.Kv.N(b.AB);this.Kv.N(b.LQ).object=this.R;this.tha=!1;this.Av=1E-4;this.Vy=this.B.T.sc("TranslationLine");this.Vy.N(b.Line);this.Vy.N(b.ei);this.Rea=new c(this.Ub,this.RV,this.R);h.ba(this.R,y,this.hz,!0);h.ba(this.R,t,this.Sl,!0);h.ba(this.R,v,this.WT,!0);h.ba(this.R,w,this.zh,!0);h.ba(this.R,u,this.x3,!0)}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/constants/Priority"), k=a("tdv/constants/RenderOrder"),e=a("tdv/events/EventDispatcher"),b=a("tdv/player/view/webgl/components"),c=a("tdv/player/view/webgl/system/model/object/draggable/DraggableSize2DControls"),d=a("tdv/player/view/webgl/system/util/entity/Util");m.prototype.frame=function(){this.Rea.frame();this.tka(d.tJ(this.B)||1E-4)};m.prototype.Sl=function(){this.B.N(b.pb).id!=this.R.get("parentId")&&(this.B.O(b.pb).id=this.R.get("parentId"));var x=this.B.O(b.ta,!0);x.translationX=this.R.get("x");x.translationY= this.R.get("y");x.Ze=this.R.get("z")};m.prototype.tka=function(x){this.Av!=x&&(this.Av=x,this.R.set("worldPixelScale",d.XLa(this.B)),this.WT())};m.prototype.WT=function(){var x=this.B.O(b.ta,!0),z=this.RV.O(b.ta,!0),A=this.Vy.O(b.ta,!0),D=this.R.get("translationLength");p.set(this.R.get("translationX"),this.R.get("translationY"),this.R.get("translationZ"));D=D!==void 0?D*this.Av:p.length();if(this.swa.equals(p)){var F=this.e0.x;var C=this.e0.y;var B=this.e0.z}else f.setFromUnitVectors(q,p.normalize()), C=Math.atan2(p.x,p.z),F=-Math.atan2(p.y,Math.sqrt(p.x*p.x+p.z*p.z)),B=0;z.translationX=0;z.translationX=0;z.translationY=0;z.Ze=D;A.scale=D;x.Yd=F*r;x.fd=C*r;x.Xe=B*r;x.mf="YXZ";this.UGa()};var f=new THREE.Quaternion,l=new THREE.Euler,p=new THREE.Vector3,q=new THREE.Vector3(0,0,1),r=180/Math.PI;m.prototype.zh=function(){var x=this.Kv.O(b.wd,!0);x.pB=this.R.get("useHandCursor");x.eF=this.R.get("transparentAreaActive");x.lt=this.R.get("clickEnabled");x.Xt=this.R.get("rollOverEnabled");x=this.Vy.O(b.ei); x.color=this.R.get("translationLineColor");x.depthTest=this.R.get("depthTest");x.opacity=this.R.get("hidden")?0:this.R.get("translationLineOpacity");x.transparent=!1;x.width=this.R.get("translationLineWidth");this.UGa();x=this.Vy.O(b.Line,!0);var z=this.Kv.O(b.Sprite,!0);x.renderOrder=z.renderOrder=this.R.get("depthTest")?k.UVa:k.VVa};m.prototype.x3=function(){var x=this.Kv.O(b.Sprite,!0);x.tO=this.R.get("anchorX");x.uO=this.R.get("anchorY");x.width=this.R.get("width");x.height=this.R.get("height"); x.scale=this.R.get("scale");x.sizeAttenuation=this.R.get("sizeAttenuation")};m.prototype.hz=function(){if(this.R.get("positionDraggable")||this.R.get("translationDraggable")){var x=this.B.O(b.Hh,!0);x.M||(x.M=new e,x.M.bind(n.V,this.ym,this,!0));x.translate=this.R.get("positionDraggable")||!1;x.rotate=this.R.get("translationDraggable")||!1;x.scale=!1}else(x=this.B.getComponent(b.Hh))&&x.M.h(n.V,this.ym,this),this.B.ka(b.Hh)};m.prototype.ym=function(x){var z=p.set(this.R.get("translationX"),this.R.get("translationY"), this.R.get("translationZ")).length();l.setFromQuaternion(x.data.quaternion,this.B.getComponent(b.ta).mf);p.copy(q).setLength(z).applyQuaternion(x.data.quaternion);this.swa.copy(p);this.e0.copy(l);this.R.set({x:x.data.position.x,y:x.data.position.y,z:x.data.position.z,translationX:p.x,translationY:p.y,translationZ:p.z});this.R.o(n.Jm)};m.prototype.UGa=function(){var x=this.R.get("translationLineVisible")&&this.R.get("translationLineOpacity")>0&&(this.R.get("translationX")!=0||this.R.get("translationY")!= 0||this.R.get("translationZ")!=0);this.tha!=x&&((this.tha=x)?this.Vy.N(b.pb).F=this.B:this.Vy.ka(b.pb))};m.prototype.dispose=function(){this.Rea.dispose();this.Rea=null;h.da(this.R,y,this.hz);h.da(this.R,t,this.Sl);h.da(this.R,v,this.WT);h.da(this.R,w,this.zh);h.da(this.R,u,this.x3);this.sf.WP(this.Oh);this.Lj.WP(this.Oh);this.Oh=this.Lj=this.sf=null;var x=this.Ub.T;this.Ub=null;x.dd(this.Kv);this.Kv=null;x.dd(this.Vy);this.Vy=null;x.dd(this.B);this.R=this.B=null};var t=["parentId","x","y","z"],u= "anchorX anchorY width height scale sizeAttenuation".split(" "),v=["translationX","translationY","translationZ","translationLength"],w="clickEnabled depthTest hidden rollOverEnabled transparentAreaActive translationLineColor translationLineOpacity translationLineVisible translationLineWidth useHandCursor".split(" "),y=["positionDraggable","translationDraggable"];return m}); define("tdv/player/view/webgl/system/model/object/ControllerFactory",["require","tdv/player/parser/ClassInfo","tdv/player/view/webgl/system/model/object/BoxController","tdv/player/view/webgl/system/model/object/SpriteController"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/view/webgl/system/model/object/BoxController"),n=a("tdv/player/view/webgl/system/model/object/SpriteController");return{create:function(g,k,e,b,c){return m.Oa("SpriteModel3DObject",c)?new n(g,k,e,b,c):m.Oa("BoxModel3DObject", c)?new h(g,k,c):null}}}); define("tdv/player/view/webgl/system/model/Objects",["require","tdv/binding/BindingsHandler","tdv/player/view/util/LoadingGroup","tdv/player/view/webgl/components","tdv/player/view/webgl/system/model/object/ControllerFactory"],function(a){function m(e,b,c,d){this.B=e;this.mq=b;this.sf=c;this.Lj=d;this.UAa=new n(this.Lj.hw(.1));this.TAa=new n(this.sf.hw(.1));this.SH=this.SH.bind(this);this.aA=e.T;this.A=this.B.getComponent(g.Oi).properties;this.La=(e=this.B.getComponent(g.Object3D))&&e.sa;this.fl= [];this.a3=new Map;h.ba(this.A,["objects.enabled"],this.SH,!0)}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/player/view/util/LoadingGroup"),g=a("tdv/player/view/webgl/components"),k=a("tdv/player/view/webgl/system/model/object/ControllerFactory");m.prototype.update=function(){var e=this.B.getComponent(g.Object3D);e=e&&e.sa;if(this.La!==e){var b=this.La;this.La=e;this.a6(!!b)}};m.prototype.frame=function(){this.a3.forEach(function(e){e&&e.frame&&e.frame()})};m.prototype.dispose=function(){this.La= null;h.da(this.A,["objects.enabled"],this.SH);this.YEa([])};m.prototype.SH=function(){this.a6()};m.prototype.a6=function(e){var b=this.A.get("objects").filter(function(c){return c.get("enabled")});this.YEa(b,e);this.UAa.update();this.TAa.update()};m.prototype.YEa=function(e,b){if(this.fl!=e||b)this.fl.forEach(function(c){(b||e.indexOf(c)<0)&&this.Z6a(c)}.bind(this)),e.forEach(function(c){(b||this.fl.indexOf(c)<0)&&this.mXa(c)}.bind(this)),this.fl=e};m.prototype.mXa=function(e){this.a3.set(e,k.create(this.B, this.mq,this.TAa,this.UAa,e))};m.prototype.Z6a=function(e){var b=this.a3.get(e);b&&b.dispose();this.a3["delete"](e)};return m}); define("tdv/player/view/webgl/system/model/Properties",["require","tdv/constants/EventName","tdv/player/view/webgl/components"],function(a){function m(e,b){this.B=e;this.mq=b;this.pi=this.La=this.A=null;this.Oj(this.B.getComponent(n.Oi).properties);this.update()}var h=a("tdv/constants/EventName"),n=a("tdv/player/view/webgl/components");m.prototype.frame=function(){this.update()};m.prototype.update=function(){var e=this.mq.getComponent(n.Object3D);e=e&&e.sa;this.La!=e&&(this.La=e,this.nG())};m.prototype.Oj= function(e){this.A&&g.forEach(function(b){this.A.h(h.L(b),this.nG,this,!1)}.bind(this));if(this.A=e)g.forEach(function(b){this.A.bind(h.L(b),this.nG,this,!1)}.bind(this)),this.nG()};m.prototype.nG=function(){this.XEa(this.A.get("model"));this.La&&this.B.T.Qa()};m.prototype.XEa=function(e){this.pi!=e&&(this.pi&&k.forEach(function(b){this.pi.h(h.L(b),this.ida,this,!1)}.bind(this)),this.pi=e)&&(k.forEach(function(b){this.pi.bind(h.L(b),this.ida,this,!1)}.bind(this)),this.ida())};m.prototype.ida=function(){var e= this.mq.O(n.ta,!0);e.positionX=this.pi.get("positionX");e.positionY=this.pi.get("positionY");e.positionZ=this.pi.get("positionZ");e.mf=this.pi.get("rotationOrder");e.Yd=this.pi.get("rotationX");e.fd=this.pi.get("rotationY");e.Xe=this.pi.get("rotationZ");e.scale=this.pi.get("scale");e.Le=this.pi.get("invertX")?-1:1;e.Ye=this.pi.get("invertY")?-1:1;e.Gh=this.pi.get("invertZ")?-1:1;e.translationX=this.pi.get("translationX");e.translationY=this.pi.get("translationY");e.Ze=this.pi.get("translationZ")}; m.prototype.dispose=function(){this.La=null;this.XEa(null);this.Oj(null)};var g=["model"],k="invertX invertY invertZ positionX positionY positionZ rotationOrder rotationX rotationY rotationZ scale translationX translationY translationZ".split(" ");return m}); define("tdv/player/view/webgl/system/model/Behaviour","require tdv/constants/EventName tdv/events/Event tdv/player/view/util/LoadingGroup tdv/player/view/webgl/components tdv/player/view/webgl/system/model/Loader tdv/player/view/webgl/system/model/Objects tdv/player/view/webgl/system/model/Properties".split(" "),function(a){function m(d){this.B=d;this.B.N(k.Group);d=this.B.getComponent(k.Oi);this.mq=d.eJ;this.Lj=new g(d.MPa);this.sf=new g(d.Ap);this.Ee=d.M;this.pd=new e(this.B,this.mq,this.sf,this.Lj); this.fl=new b(this.B,this.mq,this.sf,this.Lj);this.A=new c(this.B,this.mq)}var h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/player/view/util/LoadingGroup"),k=a("tdv/player/view/webgl/components"),e=a("tdv/player/view/webgl/system/model/Loader"),b=a("tdv/player/view/webgl/system/model/Objects"),c=a("tdv/player/view/webgl/system/model/Properties");m.prototype.update=function(){this.pd.update();this.fl.update();this.A.update()};m.prototype.frame=function(){this.pd.frame();this.fl.frame(); this.A.frame();this.Ee.o(new n(h.Zd))};m.prototype.dispose=function(){this.pd&&(this.pd.dispose(),this.pd=null);this.fl&&(this.fl.dispose(),this.fl=null);this.A&&(this.A.dispose(),this.A=null);this.sf&&(this.sf.dispose(),this.sf=null);this.Ee=this.mq=null};m.Wa=function(d){d.N(k.Dx).manager=new m(d)};m.ya=function(d){var f=d.getComponent(k.Dx);f.manager.dispose();f.manager=null;d.ka(k.Dx)};m.update=function(d){d.getComponent(k.Dx).manager.update()};m.frame=function(d){d.getComponent(k.Dx).manager.frame()}; return m}); define("tdv/player/view/webgl/system/model/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/model/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/model/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.MNa.v.length&&this.MNa.v.slice().forEach(g.Wa);this.T8.Da.length&&this.T8.Da.slice().forEach(g.update); this.T8.v.length&&this.T8.v.slice().forEach(g.frame);this.NNa.v.length&&this.NNa.v.slice().forEach(g.ya)};a.J={};a.J.MNa=[n.Oi,n.Dx.aa];a.J.T8=[n.Oi,n.Dx];a.J.NNa=[n.Oi.aa,n.Dx];return a}); define("tdv/player/view/webgl/system/objectId/Behaviour",["require","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/entity/Util"],function(a){function m(g){this.B=g;this.He=null}var h=a("tdv/player/view/webgl/components"),n=a("tdv/player/view/webgl/system/util/entity/Util");m.prototype.frame=function(){if(!this.He){var g=this.B.getComponent(h.fL),k=n.Qc(g.container);if(this.He=k&&g.id&&n.ZD(k,g.id)||null)this.B.N(h.Object3D).sa=this.He,this.B.T.Qa()}};m.prototype.update=function(){this.He&& (this.B.ka(h.Object3D),this.He=null)};m.prototype.dispose=function(){this.He&&(this.B.ka(h.Object3D),this.He=null)};m.Wa=function(g){g.N(h.Ex).manager=new m(g)};m.ya=function(g){var k=g.getComponent(h.Ex);k.manager.dispose();k.manager=null;g.ka(h.Ex)};m.frame=function(g){g.getComponent(h.Ex).manager.frame()};m.update=function(g){g.getComponent(h.Ex).manager.update()};return m}); define("tdv/player/view/webgl/system/objectId/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/objectId/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/objectId/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.fOa.v.length&&this.fOa.v.slice().forEach(g.Wa);this.Z8.Da.length&& this.Z8.Da.slice().forEach(g.update);this.Z8.v.length&&this.Z8.v.slice().forEach(g.frame);this.gOa.v.length&&this.gOa.v.slice().forEach(g.ya)};a.J={};a.J.fOa=[n.fL,n.Ex.aa];a.J.Z8=[n.fL,n.Ex];a.J.gOa=[n.fL.aa,n.Ex];return a}); define("tdv/player/view/webgl/system/plane/System","require exports three.mod tdv/player/view/webgl/ecs/System tdv/player/view/webgl/components tdv/player/view/webgl/system/util/material/Util".split(" "),function(a,m,h,n,g,k){a=function(e){function b(){var c=e.call(this)||this;c.xb=c.xb.bind(c);c.ib=c.ib.bind(c);c.Ca=c.Ca.bind(c);return c}P(b,e);b.prototype.Yc=function(){this.FE.v.length&&this.FE.v.slice().forEach(this.xb);this.planes.Da.length&&this.planes.Da.slice().forEach(this.ib);this.zPa.v.length&& this.zPa.v.slice().forEach(this.Ca);this.APa.v.length&&this.APa.v.slice().forEach(this.Ca)};b.prototype.xb=function(c){var d=new h.PlaneGeometry;c.N(g.UB).geometry=d;c.N(g.Object3D).sa=new h.Mesh(d);this.ib(c)};b.prototype.ib=function(c){var d=c.N(g.Object3D).sa,f=c.getComponent(g.Material).material;f&&k.ND(d,f);d.renderOrder=c.getComponent(g.Plane).renderOrder};b.prototype.Ca=function(c){var d=c.getComponent(g.UB);d.geometry.dispose();d.geometry=null;c.ka(g.UB);c.ka(g.Object3D)};b.J={};return b}(n); a.J={};a.J.FE=[g.Material,g.Plane,g.UB.aa];a.J.planes=[g.Plane,g.Material,g.UB];a.J.zPa=[g.Plane.aa,g.UB];a.J.APa=[g.Material.aa,g.UB];return a}); define("tdv/player/view/webgl/system/parent/Behaviour",["require","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/entity/Util"],function(a){var m=a("tdv/player/view/webgl/components"),h=a("tdv/player/view/webgl/system/util/entity/Util");return{Wa:function(n){var g=n.getComponent(m.pb),k=h.Qc(g.F);if(k){var e=n.N(m.Du);e.parent=k;g.id&&(k=k&&h.ZD(k,g.id));e.id=g.id;e.ge=h.Qc(n);e.attach=g.attach;k&&e.ge&&(e.attach?k.attach(e.ge):k.add(e.ge))}},update:function(n){var g=n.getComponent(m.pb), k=n.getComponent(m.Du),e=h.Qc(g.F),b=h.Qc(n);if(k.parent!=e||k.ge!=b||g.id!=k.id||g.attach!=k.attach||b&&e&&!b.parent)k=n.O(m.Du),k.ge&&k.ge.parent&&(g.F.O(m.Object3D),k.ge.parent.remove(k.ge)),k.parent=e,g.id&&(e=e&&h.ZD(e,g.id)),k.id=g.id,k.ge=b,k.attach=g.attach,e&&k.ge&&(k.attach?e.attach(k.ge):e.add(k.ge),(g=n.getComponent(m.ta))&&h.dZ(n,g))},ya:function(n){var g=n.getComponent(m.Du);g.ge&&g.ge.parent&&g.ge.parent.remove(g.ge);g.parent=null;g.ge=null;g.id=void 0;n.ka(m.Du)}}}); define("tdv/player/view/webgl/system/parent/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/parent/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/parent/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.eY.v.length&&this.eY.v.slice().forEach(g.Wa);this.Kt.v.length&& this.Kt.v.slice().forEach(g.update);this.Kt.Da.length&&this.Kt.Da.slice().forEach(g.update);this.Kt.fe.length&&this.Kt.fe.slice().forEach(g.update);this.cJa.v.length&&this.cJa.v.slice().forEach(g.ya);this.dJa.v.length&&this.dJa.v.slice().forEach(g.ya)};a.J={};a.J.eY=[n.Object3D,n.pb,n.Du.aa];a.J.Kt=[n.Object3D,n.pb,n.Du];a.J.cJa=[n.Object3D.aa,n.pb,n.Du];a.J.dJa=[n.pb.aa,n.Du];return a}); define("tdv/player/view/webgl/system/pixelScaleTransform/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/entity/Util"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/util/entity/Util");a=m.extend(h,function(){h.apply(this,arguments);this.xb=this.xb.bind(this);this.Ca=this.Ca.bind(this);this.eg=this.eg.bind(this)}); a.prototype.Yc=function(){this.wPa.v.length&&this.wPa.v.slice().forEach(this.xb);this.vPa.v.length&&this.vPa.v.slice().forEach(this.eg);this.xPa.v.length&&this.xPa.v.slice().forEach(this.Ca);this.yPa.v.length&&this.yPa.v.slice().forEach(this.Ca)};a.prototype.xb=function(b){b.N(n.WF)};a.prototype.Ca=function(b){b.ka(n.WF)};var k=new THREE.Matrix4,e=new THREE.Vector3;a.prototype.eg=function(b){var c=b.getComponent(n.Tk),d=b.getComponent(n.ta);if(d){var f=b.getComponent(n.Object3D).sa;if(f&&f.parent){var l= b.getComponent(n.Gg),p=1E-7;l&&(p=g.tJ(b)||p);k.copy(f.parent.matrixWorld).invert();e.setFromMatrixScale(k);f=Math.max(e.x,e.y,e.z);l&&l.bA&&(p/=f,f=1);l=c.scale*f;c.oE!==void 0&&(l=Math.min(c.oE*p,l));c.pE!==void 0&&(l=Math.max(c.pE*p,l));if(d.scale!=l||d.Le!=c.Le||d.Ye!=c.Ye||d.Gh!=c.Gh)d=b.O(n.ta),d.scale=l,d.Le=c.Le,d.Ye=c.Ye,d.Gh=c.Gh}}};a.J={};a.J.wPa=[n.Object3D,n.Tk,n.WF.aa];a.J.vPa=[n.Object3D,n.Tk,n.WF];a.J.xPa=[n.Object3D.aa,n.WF];a.J.yPa=[n.Tk.aa,n.WF];return a}); define("tdv/player/view/webgl/system/pointerOverTransform/Behaviour",["require","tdv/constants/EventName","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/entity/Util"],function(a){function m(u){this.B=u;this.xT=new THREE.Vector3;this.Sb=new THREE.Vector3;this.Hga=this.Cd=this.nla=!1;this.mN=null;this.update()}var h=a("tdv/constants/EventName"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/util/entity/Util");m.prototype.update=function(){this.Lia=this.B.getComponent(n.Dl).F}; m.prototype.frame=function(){this.bHa();this.$z()};m.prototype.bHa=function(){var u=(t.get(this.B.T)||[]).map(function(v){return v.getComponent(n.zc)}).filter(function(v){return v&&v.M}).reduce(function(v,w){return!v||!v.Ug&&w.Ug?w:v},null);u=u&&u.M;this.mN!==u&&(this.mN&&this.c7a(this.mN),(this.mN=u)&&this.rXa(this.mN))};m.prototype.rXa=function(u){u.bind(h.gb,this.rg,this,!0);u.bind(h.Eb,this.Ds,this,!0)};m.prototype.c7a=function(u){u.h(h.gb,this.rg,this);u.h(h.Eb,this.Ds,this)};m.prototype.rg= function(u){if(this.Lia&&g.ZD(g.Qc(this.Lia),u.data.objectId)&&["mesh","gs"].includes(u.data.type)){var v=this.Cd;this.Cd=!0;var w=g.Qc(this.B);if((w=w&&w.parent)&&w.matrixWorld){var y=this.B.getComponent(n.Dl);y&&(e.setFromMatrixPosition(w.matrixWorld),b.copy(w.matrixWorld).invert(),c.fromArray(u.data.objectMatrixWorld),k.setFromMatrixPosition(c),d.copy(c).invert(),y.rotate?u.data.normal?this.xT.copy(u.data.normal).applyMatrix4(c).sub(k).add(e):this.xT.copy(u.data.cameraPosition):this.xT.copy(p), this.xT.applyMatrix4(b).normalize(),this.Sb.copy(u.data.position).applyMatrix4(b),this.nla=!0,this.B.T.Qa(),v||(u=(y=this.B.getComponent(n.Dl))&&y.M)&&u.o(h.uc))}}else this.Ds()};var k=new THREE.Vector3,e=new THREE.Vector3,b=new THREE.Matrix4,c=new THREE.Matrix4,d=new THREE.Matrix4;m.prototype.Ds=function(){if(this.Cd){this.Cd=!1;this.B.T.Qa();var u=this.B.getComponent(n.Dl);(u=u&&u.M)&&u.o(h.Eb)}};m.prototype.$z=function(){if(this.nla||this.Cd){this.nla=!1;var u=this.B.O(n.ta,!0);u.positionX=0;u.positionY= 0;u.positionZ=0;f.setFromUnitVectors(l,this.xT);q.setFromQuaternion(f,u.mf);u.Yd=q.x*r;u.fd=q.y*r;u.Xe=q.z*r;u.translationX=this.Sb.x;u.translationY=this.Sb.y;u.Ze=this.Sb.z;u.easing=this.Hga?.4:0;this.Hga||(g.dZ(this.B,u),this.Hga=!0)}};var f=new THREE.Quaternion,l=new THREE.Vector3(0,0,1),p=new THREE.Vector3(0,1,0),q=new THREE.Euler,r=180/Math.PI;m.prototype.dispose=function(){this.Lia=null;this.bHa()};m.qK=function(u,v){t.set(u,v)};var t=new Map;m.Wa=function(u){u.N(n.Eu).manager=new m(u)};m.ya= function(u){var v=u.getComponent(n.Eu);v.manager.dispose();v.manager=null;u.ka(n.Eu)};m.frame=function(u){u.getComponent(n.Eu).manager.frame()};m.update=function(u){u.getComponent(n.Eu).manager.update()};return m}); define("tdv/player/view/webgl/system/pointerOverTransform/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/pointerOverTransform/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/pointerOverTransform/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){g.qK(this.T,this.Wj.v.slice()); this.DPa.v.length&&this.DPa.v.slice().forEach(g.Wa);this.O9.Da.length&&this.O9.v.slice().forEach(g.update);this.O9.v.length&&this.O9.v.slice().forEach(g.frame);this.EPa.v.length&&this.EPa.v.slice().forEach(g.ya);this.FPa.v.length&&this.FPa.v.slice().forEach(g.ya)};a.J={};a.J.Wj=[n.zc];a.J.DPa=[n.Object3D,n.Dl,n.Eu.aa];a.J.O9=[n.Object3D,n.Dl,n.Eu];a.J.EPa=[n.Object3D.aa,n.Eu];a.J.FPa=[n.Dl.aa,n.Eu];return a}); define("tdv/player/view/webgl/system/util/material/ProjectedMaterial",["require"],function(){var a={Rp:function(){this.fmb=this.VRa=this.emb=this.Q$=this.P$=this.O$=0;this.Rra=!1;this.qZ=new THREE.CubeTexture;this.Cmb=this.rSa=this.Bmb=this.aaa=this.targetY=this.targetX=this.N$=0;this.Zra=!1;this.yZ=new THREE.CubeTexture;this.$$=0;this.mf="XYZ"},Lpb:function(){return new a.Rp},create:function(n){var g=new THREE.ShaderMaterial;g.uniforms={sCube:{value:n.qZ},sPos:{value:new THREE.Vector3},sRot:{value:new THREE.Matrix4}, sEnabled:{value:!1},sCoef:{value:0},tCube:{value:n.yZ},tPos:{value:new THREE.Vector3},tRot:{value:new THREE.Matrix4},tEnabled:{value:!1},tCoef:{value:0}};g.fragmentShader="uniform samplerCube sCube;\nuniform vec3 sPos;\nuniform mat4 sRot;\nuniform bool sEnabled;\nuniform float sCoef;\nuniform samplerCube tCube;\nuniform vec3 tPos;\nuniform mat4 tRot;\nuniform bool tEnabled;\nuniform float tCoef;\nvarying vec3 vWorldPosition;\nvoid main() {\n vec4 sFragColor;\n vec4 tFragColor;\n if (sEnabled) \n {\n vec4 sCubePosition4 = sRot * vec4((vWorldPosition - sPos), 1);\n vec3 sCubePosition = sCubePosition4.xyz / sCubePosition4.w;\n sFragColor = textureCube(sCube, sCubePosition);\n }\n if (tEnabled)\n {\n vec4 tCubePosition4 = tRot * vec4((vWorldPosition - tPos), 1);\n vec3 tCubePosition = tCubePosition4.xyz / tCubePosition4.w;\n tFragColor = textureCube(tCube, tCubePosition);\n }\n if (sEnabled && tEnabled)\n {\n float alpha = 1.0 - ((1.0 - tCoef) * (1.0 - sCoef));\n vec4 mixedColor = mix(sFragColor, tFragColor, tCoef);\n gl_FragColor = vec4(mixedColor.rgb, mixedColor.a * alpha);\n }\n else if (sEnabled)\n {\n gl_FragColor = vec4(sFragColor.rgb, sFragColor.a * sCoef);\n }\n else if (tEnabled)\n {\n gl_FragColor = vec4(tFragColor.rgb, tFragColor.a * tCoef);\n }\n else\n {\n gl_FragColor = vec4(0, 0, 0, 0);\n }\n#include \n#include \n}"; g.vertexShader="varying vec3 vWorldPosition;\n#include \nvoid main() {\n\tvWorldPosition = (modelMatrix * vec4(position, 1.0)).xyz;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}";g.side=THREE.DoubleSide;g.depthWrite=!0;g.transparent=!0;g.needsUpdate=!0;this.update(g,n);return g},update:function(n,g){n.uniforms.sCube.value=g.qZ;n.uniforms.sPos.value.set(g.O$,g.P$,g.Q$);n.uniforms.sRot.value.makeRotationFromEuler(m.set(g.emb*h,g.VRa*h,g.fmb*h,g.mf));n.uniforms.sEnabled.value= g.Rra&&g.N$>0;n.uniforms.sCoef.value=g.N$;n.uniforms.tCube.value=g.yZ;n.uniforms.tPos.value.set(g.targetX,g.targetY,g.aaa);n.uniforms.tRot.value.makeRotationFromEuler(m.set(g.Bmb*h,g.rSa*h,g.Cmb*h,g.mf));n.uniforms.tEnabled.value=g.Zra&&g.$$>0;n.uniforms.tCoef.value=g.$$;n.needsUpdate=!0;return n}},m=new THREE.Euler,h=Math.PI/180;return a}); define("tdv/player/view/webgl/system/projectedMaterial/System","require tdv/utils tdv/constants/RenderOrder tdv/player/view/util/geo/Fov tdv/player/view/webgl/ecs/System tdv/player/view/webgl/components tdv/player/view/webgl/system/util/material/ProjectedMaterial tdv/player/view/webgl/system/util/entity/Util".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/RenderOrder");a("tdv/player/view/util/geo/Fov");var n=a("tdv/player/view/webgl/ecs/System"),g=a("tdv/player/view/webgl/components"), k=a("tdv/player/view/webgl/system/util/material/ProjectedMaterial"),e=a("tdv/player/view/webgl/system/util/entity/Util");a=m.extend(n,function(){n.apply(this,arguments);this.xb=this.xb.bind(this);this.Ca=this.Ca.bind(this);this.ib=this.ib.bind(this)});a.prototype.Yc=function(){this.UPa.v.length&&this.UPa.v.slice().forEach(this.Ca);this.VPa.v.length&&this.VPa.v.slice().forEach(this.Ca);this.TPa.v.length&&this.TPa.v.slice().forEach(this.xb);this.SPa.Da.length&&this.SPa.Da.slice().forEach(this.ib)}; a.prototype.xb=function(c){var d=c.getComponent(g.oo),f=(d=d&&d.aF)&&e.Qc(d),l=e.Sf(d);if(f&&l){var p=c.N(g.Sr);p.aF=d;p.CP=new k.Rp;p.material=this.my(p.CP);p.sa=this.zZa(f,p.material);p.hQ=this.OZa(p.material);p.MA=this.v_a(p.material);p.colorSpace=e.rX(l);c.N(g.Object3D).sa=p.sa;this.ib(c)}};a.prototype.ib=function(c){this.Qj(c);this.Yab(c);this.Xab(c);this.Dab(c)};a.prototype.Ca=function(c){var d=c.getComponent(g.Sr),f=e.Qc(d.aF);f&&(f.visible=!0);d.sa&&d.sa.traverse(function(l){l.material==d.material&& (l.material=b)});d.hQ&&((f=d.hQ.parent)&&e.fQa(f,d.hQ),d.hQ=null);d.MA&&((f=d.MA.parent)&&e.eQa(f,d.MA),d.MA=null);d.material&&(d.CP.qZ=null,d.CP.yZ=null,d.CP=null,d.material.dispose(),d.material=null);c.ka(g.Sr);c.ka(g.Object3D)};a.prototype.Qj=function(c){var d=c.getComponent(g.oo);c=c.getComponent(g.Sr);var f=c.CP;d.pZ?(f.qZ!=d.pZ&&(f.qZ=d.pZ),f.O$=d.O$,f.P$=d.P$,f.Q$=d.Q$,f.VRa=d.rZ,f.N$=d.TRa,f.Rra=!0):(f.Rra=!1,f.N$=0);d.xZ?(f.yZ!=d.xZ&&(f.yZ=d.xZ),f.targetX=d.targetX,f.targetY=d.targetY,f.aaa= d.aaa,f.rSa=d.Dmb,f.$$=d.pSa,f.Zra=!0):(f.Zra=!1,f.$$=0);k.update(c.material,f)};a.prototype.Yab=function(c){c=c.getComponent(g.oo);var d=e.Qc(c.aF);d&&(d.visible=(1-(c.pZ?c.TRa:0))*(1-(c.xZ?c.pSa:0))>0)};a.prototype.Xab=function(c){var d=c.getComponent(g.oo),f=c.getComponent(g.Sr).hQ;!!f.parent!=d.RRa&&(c=(c=e.Sf(c)||e.Sf(d.aF))&&e.tw(c),d.RRa?c&&e.Ibb(c,f):c&&e.fQa(c,f))};a.prototype.Dab=function(c){var d=c.getComponent(g.oo),f=c.getComponent(g.Sr).MA;!!f.parent!=d.MA&&(c=(c=e.Sf(c)||e.Sf(d.aF))&& e.tw(c),d.MA?c&&e.Hbb(c,f):e.eQa(c,f))};var b=new THREE.MeshBasicMaterial;a.prototype.my=function(c){c=k.create(c);c.polygonOffset=!0;c.polygonOffsetUnits=1;c.polygonOffsetFactor=-10;c.needsUpdate=!0;return c};a.prototype.zZa=function(c,d){if(this.$xa(c))return new THREE.Object3D;var f=new Map;c.traverse(function(t){if(t.material&&t.userData){var u={};t.material&&(u.material=t.material,t.material=d);t.userData&&(u.userData=t.userData,t.userData={});var v=t.children.filter(function(w){return!this.$xa(w)}.bind(this)); t.children.length!=v.length&&(u.children=t.children,t.children=v);f.set(t,u)}}.bind(this));var l=c.clone();f.forEach(function(t,u){t.material&&(u.material=t.material);t.userData&&(u.userData=t.userData);t.children&&(u.children=t.children)});for(c=[[c,l]];c.length;){var p=c.shift(),q=p[0];p=p[1];q.Me&&(p.Me=q.Me);for(var r=0;r0,this.Lf.params.saoBlurRadius=f.cna,this.Lf.params.saoBlurStdDev=8,this.Lf.params.saoBlurDepthCutoff=.01,(this.Pa!=b||this.Ha!=c)&&this.Lf.setSize(this.Pa=b,this.Ha=c))};return m}); define("tdv/player/view/webgl/system/renderer/effect/Antialias",["require","tdv/player/view/webgl/components"],function(a){function m(n){this.B=n;this.enabled=!1;this.passes=[];this.xm=this.zm=!1;this.Lu=null}var h=a("tdv/player/view/webgl/components");m.prototype.dispose=function(){this.Lu&&(this.Lu.material.dispose(),this.Lu=null)};m.prototype.update=function(n,g,k,e){n=this.B.getComponent(h.oF);n=!!n&&n.RKa;if(this.zm=this.enabled!=n)(this.enabled=n)?(this.Lu||(this.Lu=new THREE.ShaderPass(THREE.FXAAShader), this.Lu.needsSwap=!0),this.passes=[this.Lu],this.xm=!0):(this.passes=[],this.xm=!1);!this.enabled||this.Pa==k&&this.Ha==e||(this.Pa=k,this.Ha=e,this.Lu.material.uniforms.resolution.value.x=1/this.Pa,this.Lu.material.uniforms.resolution.value.y=1/this.Ha,this.Lu.setSize(k,e))};return m}); define("tdv/player/view/webgl/system/renderer/effect/MotionBlur",["require","tdv/player/view/webgl/components"],function(a){function m(n){this.B=n;this.enabled=!1;this.ZP=void 0;this.Io=null;this.xy=0;this.passes=[];this.xm=this.zm=!1;this.Zi=null;this.tja=new THREE.Matrix4;this.wja=new THREE.Matrix4;this.sja=new THREE.Vector3}var h=a("tdv/player/view/webgl/components");m.prototype.dispose=function(){this.Zi&&(this.Zi.dispose(),this.Zi=null)};m.prototype.update=function(n,g){var k=this.B.getComponent(h.OQ), e=!!k,b=k?k.vQa:void 0;if(this.zm=this.enabled!=e||this.ZP!=b)(this.enabled=e)?(this.ZP!=b&&this.Zi&&(this.Zi.dispose(),this.Zi=null),!this.Zi&&n&&g&&(this.Zi=new THREE.MotionBlurPass(this.ZP=b),this.Zi.needsSwap=!0,this.tja.copy(g.matrixWorldInverse),this.wja.copy(g.projectionMatrix),this.sja.copy(g.position)),this.passes=[this.Zi],this.xm=!0):(this.passes=[],this.xm=!1);this.enabled&&(this.Zi.uniforms.inverseProjectionMatrix.value.copy(g.projectionMatrix).invert(),this.Zi.uniforms.near.value=g.near, this.Zi.uniforms.far.value=g.far,this.Zi.uniforms.depthLimit.value=.99,this.Zi.uniforms.clipToWorldMatrix.value.copy(g.matrixWorld).multiply(this.Zi.uniforms.inverseProjectionMatrix.value),this.Zi.uniforms.previousWorldToClipMatrix.value.copy(this.wja).multiply(this.tja),this.Zi.uniforms.cameraMove.value.copy(g.position).sub(this.sja),this.Zi.uniforms.velocityFactor.value=k.intensity);this.tja.copy(g.matrixWorldInverse);this.wja.copy(g.projectionMatrix);this.sja.copy(g.position)};return m}); define("tdv/player/view/webgl/system/renderer/effect/Rendering",["require","tdv/player/view/util/Color","tdv/player/view/webgl/components"],function(a){function m(n){this.B=n;this.enabled=!0;this.passes=[];this.Qpa=this.xm=this.zm=!1;this.n5=void 0;this.Ti=this.Ps=this.hm=null}a("tdv/player/view/util/Color");var h=a("tdv/player/view/webgl/components");m.prototype.dispose=function(){this.hm&&(this.hm.dispose(),this.hm=null);this.Ps&&(this.Ps=null);this.Ti&&(this.Ti.material.dispose(),this.Ti=null)}; m.prototype.update=function(n,g,k,e,b,c){b=this.B.getComponent(h.oF);c=!!b&&b.fSa&&c;if(this.zm=this.n5!==c)(this.n5=c)?(this.hm||(this.hm=new THREE.SSAARenderPass(n,g),this.hm.sampleLevel=b.sZ,this.hm.needsSwap=!0,this.hm.clear=!0,this.hm.clearColor=65793,this.hm.clearAlpha=0),this.Ti||(this.Ti=new THREE.ShaderPass(THREE.CopyShader),this.Ti.needsSwap=!0),this.passes=[this.hm,this.Ti],this.Qpa=this.xm=!0):(this.Ps||(this.Ps=new THREE.RenderPass,this.Ps.clear=!0,this.Ps.clearColor=65793,this.Ps.clearAlpha= 0),this.passes=[this.Ps],this.Qpa=this.xm=!1);this.n5?(this.hm.scene=n,this.hm.camera=g,this.hm.sampleLevel=b.sZ,this.Ti.uniforms.opacity.value=Math.pow(2,Math.round(b.sZ>5?5:b.sZ)),this.hm.setSize(k,e)):(this.Ps.scene=n,this.Ps.camera=g,this.Ps.setSize(k,e))};return m}); define("tdv/player/view/webgl/system/renderer/effect/Vignette",["require","tdv/player/view/util/Color","tdv/player/view/webgl/components"],function(a){function m(k){this.B=k;this.enabled=!1;this.passes=[];this.xm=this.zm=!1;this.ht=null;this.Ne=void 0}var h=a("tdv/player/view/util/Color"),n=a("tdv/player/view/webgl/components");m.prototype.dispose=function(){this.ht&&(this.ht.material.dispose(),this.ht=null)};m.prototype.update=function(){var k=this.B.getComponent(n.lL),e=!!k;if(this.zm=this.enabled!= e)(this.enabled=e)?(this.ht||(this.ht=new THREE.ShaderPass(g),this.ht.needsSwap=!0),this.passes=[this.ht],this.xm=!0):(this.passes=[],this.xm=!1);this.enabled&&(this.ht.uniforms.innerRadius.value=k.HMa,this.ht.uniforms.outerRadius.value=k.kPa,this.ht.uniforms.opacity.value=k.opacity,this.Ne!==k.color&&(this.Ne=k.color,this.ht.uniforms.color.value=h.Ip(this.Ne)))};var g={uniforms:{tDiffuse:{value:null},innerRadius:{value:.5},outerRadius:{value:.5},opacity:{value:.5},color:{value:new THREE.Color(0, 0,0)}},vertexShader:"varying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",fragmentShader:"uniform float innerRadius;\nuniform float outerRadius;\nuniform float opacity;\nuniform vec3 color;\nuniform sampler2D tDiffuse;\nvarying vec2 vUv;\nvoid main() {\n vec4 texel = texture2D(tDiffuse, vUv);\n vec2 uv = vUv - vec2(0.5, 0.5);\n float radius = sqrt(dot(uv, uv)) * 1.4142135623730951;\n float coef = clamp((radius - innerRadius) / (outerRadius - innerRadius), 0.0, 1.0);\n float alpha = opacity * coef;\n float composedAlpha = alpha + texel.a * (1.0 - alpha);\n if (composedAlpha > 0.0)\n {\n vec3 rgb = (color * alpha + texel.rgb * texel.a * (1.0 - alpha)) / composedAlpha;\n gl_FragColor = vec4(rgb, composedAlpha);\n }\n else\n {\n gl_FragColor = texel;\n }\n}"}; return m}); define("tdv/player/view/webgl/system/renderer/ScenePostprocessing","require tdv/player/view/webgl/system/renderer/effect/AmbientOcclusion tdv/player/view/webgl/system/renderer/effect/Antialias tdv/player/view/webgl/system/renderer/effect/MotionBlur tdv/player/view/webgl/system/renderer/effect/Rendering tdv/player/view/webgl/system/renderer/effect/Vignette tdv/player/view/webgl/system/util/entity/Util".split(" "),function(a){function m(c){this.ee=c;this.Bb=this.Ac=this.ng=null;this.Ha=this.Pa=void 0; this.PU=null;this.Aea=!0;this.Ti=this.ev=this.j=null;this.U0=[new k(c),new h(c),new g(c),new e(c),new n(c)];this.Z2=!1}var h=a("tdv/player/view/webgl/system/renderer/effect/AmbientOcclusion"),n=a("tdv/player/view/webgl/system/renderer/effect/Antialias"),g=a("tdv/player/view/webgl/system/renderer/effect/MotionBlur"),k=a("tdv/player/view/webgl/system/renderer/effect/Rendering"),e=a("tdv/player/view/webgl/system/renderer/effect/Vignette"),b=a("tdv/player/view/webgl/system/util/entity/Util");m.prototype.dispose= function(){this.j&&(this.j.domElement.style.backgroundColor=void 0);for(;this.U0.length;)this.U0.pop().dispose();this.Dea();this.ev&&(this.ev.material.dispose(),this.ev=null);this.Ti&&(this.Ti.material.dispose(),this.Ti=null)};m.prototype.setSize=function(c,d){if(this.Pa!=c||this.Ha!=d)this.Pa=c,this.Ha=d,this.ng&&this.ng.setSize(this.Pa,this.Ha),this.j&&!this.j.xr.isPresenting&&this.j.setSize(this.Pa,this.Ha)};m.prototype.Yw=function(c){this.Bb=c};m.prototype.setCamera=function(c){this.Ac=c};m.prototype.setRenderTarget= function(c){this.PU!=c&&(this.PU=c,this.Dea())};m.prototype.okb=function(c){this.Aea!=c&&(this.Aea=c,this.ng&&(this.ng.renderToScreen=c))};m.prototype.A$=function(c){this.j!=c&&(this.j=c,this.j.setSize(this.Pa,this.Ha),this.Dea())};m.prototype.render=function(c){this.p9a();this.oab(c);this.j.domElement.style.backgroundColor=this.Z2?"#000000":void 0;this.ng.renderTarget1.bNa=!0;this.ng.renderTarget2.bNa=!0;this.ng.render()};m.prototype.p9a=function(){this.ng||(this.ng=new THREE.EffectComposer(this.j, this.PU||void 0),this.ng.renderToScreen=this.Aea,this.ng.setSize(this.Pa,this.Ha))};m.prototype.oab=function(c){var d=!1,f=!1;this.Z2=!1;this.U0.forEach(function(p){p.update(this.Bb,this.Ac,this.Pa,this.Ha,c,this.ng.renderToScreen);d||(d=p.zm);f||(f=p.xm);this.Z2||(this.Z2=p.Qpa)}.bind(this));f=f&&this.j.outputColorSpace==THREE.SRGBColorSpace&&this.ng.renderToScreen;b.wlb(this.Bb,f);f&&!this.ev?(this.ev=new THREE.ShaderPass(THREE.GammaCorrectionShader),d=this.ev.needsSwap=!0):this.ev&&(this.ev.enabled= f);this.ng.renderToScreen||this.Ti?this.Ti&&(this.Ti.enabled=!this.ng.renderToScreen):(this.Ti=new THREE.ShaderPass(THREE.CopyShader),d=this.Ti.needsSwap=!0);if(d){var l=[];this.U0.forEach(function(p){l=l.concat(p.passes)});this.ev&&l.push(this.ev);for(this.Ti&&l.push(this.Ti);this.ng.passes.length>0;)this.ng.removePass(this.ng.passes[this.ng.passes.length-1]);l.forEach(function(p){this.ng.addPass(p)}.bind(this))}};m.prototype.Dea=function(){this.ng&&(this.ng.renderTarget1!=this.PU&&this.ng.renderTarget1.dispose(), this.ng.renderTarget2!=this.PU&&this.ng.renderTarget2.dispose(),this.ng=null)};return m}); define("tdv/player/view/webgl/system/renderer/SceneRenderer","require tdv/constants/EventName tdv/player/view/util/XR tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/system/util/Util tdv/player/view/webgl/system/renderer/ScenePostprocessing".split(" "),function(a){function m(l){this.Od=l;this.opacity=0;this.height=this.width=void 0;this.renderTarget=null;this.scene=void 0;this.sEa=!1;this.eka=!0;this.JY=this.camera=void 0;this.lI=!1;this.N3=void 0; this.Pc=new b(l);this.update()}var h=a("tdv/constants/EventName"),n=a("tdv/player/view/util/XR"),g=a("tdv/player/view/webgl/components"),k=a("tdv/player/view/webgl/system/util/entity/Util"),e=a("tdv/player/view/webgl/system/util/Util"),b=a("tdv/player/view/webgl/system/renderer/ScenePostprocessing");m.prototype.update=function(){var l=this.Od.getComponent(g.Scene);this.opacity=l&&l.opacity||0;this.sEa=l?l.locked:!1;this.eka=l?l.enabled:!0;var p=l&&l.scene;this.scene!=p&&(this.scene=p,this.lI=!0,this.Pc.Yw(this.scene)); var q=(p=l&&l.Ea)&&k.jX(p),r=q&&q.width;q=q&&q.height;if(this.width!=r||this.height!=q)this.width=r,this.height=q,this.lI=!0,this.Pc.setSize(this.width,this.height);l=l&&l.outputColorSpace=="srgb"?THREE.SRGBColorSpace:THREE.LinearSRGBColorSpace;this.N3!=l&&(this.N3=l,this.lI=!0,k.vlb(this.scene,l));l=p&&k.zt(p);this.camera!=l&&(this.camera=l,this.lI=!0,this.Pc.setCamera(this.camera));p=p&&k.jX(p).camera;this.JY!=p&&(this.JY=p);this.scene&&(k.ulb(this.scene,this.camera),k.xlb(this.scene,n.isPresenting? 2048:this.width,n.isPresenting?2048:this.height));return this};m.prototype.render=function(l,p,q){if((p||this.lI||!this.sEa)&&this.eka){this.renderTarget||(this.renderTarget=e.QJa(l));p?(l.xr.isPresenting||l.setRenderTarget(null),this.lI=!0):(l.setRenderTarget(this.renderTarget),this.renderTarget.texture.colorSpace=this.N3,this.lI=!1);l.outputColorSpace=this.N3;var r=this.Od.getComponent(g.Scene),t=e.UKa(l.domElement);r&&r.L9!==1&&(t*=r.L9);l.getPixelRatio()!=t&&l.setPixelRatio(t);this.Ogb();l.xr.isPresenting? (l.clear(),l.render(this.scene,this.JY)):(this.Pc.setRenderTarget(this.renderTarget),this.Pc.okb(p),this.Pc.A$(l),this.Pc.render(q));this.Ujb();(r=this.Od.getComponent(g.Scene))&&r.M&&r.M.o(h.Zd)}};m.prototype.Ogb=function(){var l=[],p=[];this.scene.traverse(function(q){q.zw||q.isGaussianCloud?l.push(q):q.visible&&q.material&&q.material.transparent&&q.material.depthTest&&q.renderOrder<=0&&q.renderOrder>=-100&&q.material.opacity>0&&p.push(q)});c.camera=this.JY;c.ray.origin.setFromMatrixPosition(this.JY.matrixWorld); c.firstHitOnly=!0;p.forEach(function(q){f.setFromMatrixPosition(q.matrixWorld).sub(c.ray.origin);c.ray.direction.copy(f).normalize();var r=f.length();c.far=r;d.length=0;d=c.intersectObjects(l,!1,d);d.length>0&&d[0].distance 0&&this.eka};m.prototype.dispose=function(){this.camera=this.scene=this.Od=null;this.Pc&&(this.Pc.dispose(),this.Pc=null);this.renderTarget&&(this.renderTarget.dispose(),this.renderTarget=null)};return m}); define("tdv/player/view/webgl/system/renderer/Behaviour",["require","tdv/constants/EventName","tdv/player/view/util/XR","tdv/player/view/webgl/components","tdv/player/view/webgl/system/renderer/SceneRenderer"],function(a){function m(e){this.B=e;this.Cz=[];this.ej=null;this.i9a();this.g9a()}var h=a("tdv/constants/EventName"),n=a("tdv/player/view/util/XR"),g=a("tdv/player/view/webgl/components"),k=a("tdv/player/view/webgl/system/renderer/SceneRenderer");m.prototype.frame=function(e){var b=!!this.j&& n.Ag==this.j;if(!n.isPresenting||b){var c=this.B.getComponent(g.wj).KY.map(function(l){for(var p=0;p0){b&&d.reduce(function(l,p){return l.opacity>p.opacity?l:p});var f=d.length==1&&d[0].opacity>=1||b;d.forEach(function(l){l.render(this.j,f,e)}.bind(this)); f||this.h7a(d.slice(0,2))}b&&this.B.T.Qa()}};m.prototype.h7a=function(e){this.Eo.material.uniforms.t1.value=e[0].renderTarget.texture;this.Eo.material.uniforms.o1.value=e[0].opacity;e.length>1?(this.Eo.material.uniforms.useT2.value=1,this.Eo.material.uniforms.t2.value=e[1].renderTarget.texture,this.Eo.material.uniforms.o2.value=e[1].opacity):this.Eo.material.uniforms.useT2.value=0;this.j.setSize(e[0].width,e[0].height);this.j.setRenderTarget(null);this.j.setClearColor(0,0);this.j.clear();this.j.render(this.kR, this.rda)};m.prototype.dispose=function(){for(;this.Cz.length;)this.Cz.shift().dispose();this.Cz=null;this.h$a();this.k$a()};m.prototype.i9a=function(){var e=this.B.O(g.wj);this.ej=e.eb.Rc();this.ej.v6();e.renderer=this.ej.Jn();this.j=e.renderer;n.M.bind(h.V,this.MHa,this,!0)};m.prototype.k$a=function(){n.M.h(h.V,this.MHa,this);this.j=null;this.ej.Y9();this.ej=null};m.prototype.MHa=function(){this.B.T.Qa()};m.prototype.g9a=function(){this.kR=new THREE.Scene;this.rda=new THREE.OrthographicCamera(window.innerWidth/ -2,window.innerWidth/2,window.innerHeight/2,window.innerHeight/-2,-10,10);this.kR.add(this.rda);this.Eo=new THREE.Mesh(new THREE.PlaneGeometry(window.innerWidth,window.innerHeight),this.NZa());this.kR.add(this.Eo)};m.prototype.h$a=function(){this.kR.remove(this.Eo);this.Eo.geometry.dispose();this.Eo.geometry=null;this.Eo.material.dispose();this.kR=this.rda=this.Eo=this.Eo.material=null};m.prototype.NZa=function(){var e=new THREE.ShaderMaterial({uniforms:{t1:{value:null},t2:{value:null},o1:{value:1}, o2:{value:1},useT2:{value:1}},vertexShader:"varying vec2 vUv;\nvoid main() {\nvUv = vec2( uv.x, uv.y );\ngl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D t1;\nuniform sampler2D t2;\nuniform float o1;\nuniform float o2;\nuniform int useT2;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texel1 = texture2D(t1, vUv);\n texel1.a = texel1.a * o1;\n if (useT2 == 1) {\n\t vec4 texel2 = texture2D(t2, vUv);\n texel2.a = texel2.a * o2;\n gl_FragColor = mix(texel1, texel2, texel2.a);\n } else {\n gl_FragColor = texel1;\n }\n#include \n#include \n}"}); e.transparent=!0;return e};m.Wa=function(e){e.N(g.Fu).manager=new m(e)};m.ya=function(e){var b=e.getComponent(g.Fu);b.manager.dispose();b.manager=null;e.ka(g.Fu)};m.update=function(e){e.getComponent(g.Fu).manager.update()};m.frame=function(e,b,c){e.getComponent(g.Fu).manager.frame(b,c)};return m}); define("tdv/player/view/webgl/system/renderer/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/renderer/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/renderer/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(k,e){this.mQa.v.length&&this.mQa.v.slice().forEach(g.Wa);this.Un.v.length&& this.Un.v.slice().forEach(function(b){g.frame(b,k,e)});this.nQa.v.length&&this.nQa.v.slice().forEach(g.ya)};a.J={};a.J.mQa=[n.wj,n.Fu.aa];a.J.nQa=[n.wj.aa,n.Fu];a.J.Un=[n.wj,n.Fu];return a}); define("tdv/player/view/webgl/system/scene/BackgroundSprite","require tdv/utils tdv/constants/EventName tdv/constants/RenderOrder tdv/events/EventDispatcher tdv/player/view/map/renderer/item/Item tdv/player/view/webgl/system/util/entity/Util tdv/constants/Priority tdv/player/view/image/Repository tdv/player/view/util/XR".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/constants/RenderOrder"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/map/renderer/item/Item"), e=a("tdv/player/view/webgl/system/util/entity/Util"),b=a("tdv/constants/Priority"),c=a("tdv/player/view/image/Repository"),d=a("tdv/player/view/util/XR");a=m.extend(g,function(l,p){g.call(this);this.Se=l;this.Bb=p;this.Ja=new k;this.Ja.eQ([this.Se]);this.Ja.bind(h.ia,this.Pe,this,!1);this.Ja.bind(h.$c,this.yh,this,!1);this.wc=null;this.Of=0;d.M.bind(h.V,this.xi,this,!0);c.FA(this.Ja,b.QF)});a.prototype.Yn=function(l){this.Of!==l&&(this.Of=l,this.xi())};a.prototype.oj=function(){return!!this.wc};a.prototype.Pe= function(){this.z_a();this.o(h.ia)};a.prototype.yh=function(){this.o(h.$c)};a.prototype.z_a=function(){var l=new THREE.Texture;l.image=c.xg(this.Se);l.generateMipmaps=!0;l.minFilter=THREE.LinearMipMapLinearFilter;l.needsUpdate=!0;l=new THREE.SpriteMaterial({map:l});l.sizeAttenuation=!1;l.transparent=!0;l.polygonOffset=!0;l.polygonOffsetUnits=1;l.polygonOffsetFactor=-10;this.wc=new THREE.Sprite(l);this.wc.renderOrder=n.bUa;this.xi()};a.prototype.xi=function(){if(this.wc){var l=d.isPresenting&&d.Cm== d.El.Np?0:this.Of;this.wc.material.opacity!=l&&(this.wc.material.opacity=l,this.wc.material.visible=l>0,this.wc.material.needsUpdate=!0)}};a.prototype.dispose=function(){this.wc&&(this.wc.parent&&e.Eqa(this.wc.parent,this.wc),this.wc.material.map.dispose(),this.wc.material.dispose(),this.wc=null)};a.prototype.update=function(){if(this.wc){var l=e.tw(this.Bb);this.wc.parent!=l&&(this.wc.parent&&e.Eqa(this.wc.parent,this.wc),l&&e.Gbb(l,this.wc));if(l){var p=e.dE(this.Bb),q=this.wc.material.map.image.width, r=this.wc.material.map.image.height;l=p/(2*Math.tan(l.fov*f/2));p=Math.max(p/l,e.sX(this.Bb)/(l*q/r));this.wc.scale.y!=p&&(this.wc.scale.y=p,this.wc.scale.x=p*q/r)}q=e.rX(this.Bb);this.wc.material.map.colorSpace!=q&&(this.wc.material.map.colorSpace=q,this.wc.material.needsUpdate=!0)}};a.prototype.dispose=function(){this.wc&&(this.wc.parent&&e.Eqa(this.wc.parent,this.wc),this.wc.material.map.dispose(),this.wc.material.dispose(),this.wc=null);this.Ja&&c.fo(this.Ja,b.QF);d.M.h(h.V,this.xi,this)};var f= Math.PI/180;return a}); define("tdv/player/view/webgl/system/scene/Background","require tdv/constants/EventName tdv/player/view/webgl/components tdv/player/view/webgl/system/scene/BackgroundSprite tdv/view/util/Ease tdv/view/util/EaseDimension".split(" "),function(a){function m(b,c){this.B=b;this.Oh=c;this.Zx=void 0;this.Ej=this.Co=this.la=this.Bb=null;this.update()}var h=a("tdv/constants/EventName"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/scene/BackgroundSprite"),k=a("tdv/view/util/Ease"), e=a("tdv/view/util/EaseDimension");m.prototype.frame=function(b){this.la&&this.EI(b);this.Co&&this.Co.update();this.Ej&&this.Ej.update()};m.prototype.update=function(){var b=this.B.getComponent(n.Scene);this.Bb=b.scene;if(!this.Bb){if(!b.scene)return;this.Bb=b.scene}b=b.Xma||null;this.Zx===b||this.la||(this.OR(this.Ej),this.Ej=null,(this.Zx=b)?this.Ej=this.MZa(this.Zx):(this.GR(),this.Oh.o(h.ia)))};m.prototype.EI=function(b){this.la.Nb(b);this.Co&&this.Co.Yn(Math.min(1,Math.max(0,this.la.ob("alpha")))); this.Ej&&this.Ej.Yn(Math.min(1,Math.max(0,this.la.ob("nextAlpha"))));this.la.Ve()&&(this.la=null,this.Co&&(this.OR(this.Co),this.Co=null),this.Co=this.Ej,this.Ej=null,this.update());this.B.T.Qa()};m.prototype.Cia=function(){this.Ej.h(h.ia,this.Cia,this,!0);this.Ej.h(h.$c,this.Dia,this,!0);this.GR();this.Oh.o(h.ia)};m.prototype.Dia=function(){this.OR(this.Ej);this.Ej=null;this.GR();this.Oh.o(h.ia)};m.prototype.GR=function(){this.Ej&&this.Co?this.la=new k("linear",[new e("nextAlpha",0,2,void 0),new e("alpha", 2,0,void 0)],600):this.Ej?this.la=new k("linear",[new e("nextAlpha",0,1,void 0)],300):this.Co&&(this.la=new k("linear",[new e("alpha",1,0,void 0)],300));this.B.T.Qa()};m.prototype.MZa=function(b){b=new g(b,this.Bb);this.qYa(b);b.Yn(0);return b};m.prototype.OR=function(b){b&&(this.S$a(b),b.dispose())};m.prototype.qYa=function(b){b.bind(h.ia,this.Cia,this,!0);b.bind(h.$c,this.Dia,this,!0)};m.prototype.S$a=function(b){b.h(h.ia,this.Cia,this,!0);b.h(h.$c,this.Dia,this,!0)};m.prototype.dispose=function(){this.Co&& (this.OR(this.Co),this.Co=null);this.Ej&&(this.OR(this.Ej),this.Ej=null)};return m}); define("tdv/player/view/webgl/system/scene/Environment","require tdv/constants/EventName tdv/constants/Priority tdv/player/view/util/Color tdv/player/view/util/LoadingGroup tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util tdv/view/images/ImageLoader tdv/player/view/util/XR".split(" "),function(a){function m(f,l){this.B=f;this.SG=void 0;this.efa=1;this.N4=this.DN=this.CN=this.dC=this.pG=this.Zx=void 0;this.Ac=this.j=this.Bb=null;this.Oh=l;this.sf=new k(this.Oh);this.Sd= [new c(n.QF),new c(n.QF)];this.Sd.forEach(function(p){p.bind(h.ia,this.Pe,this,!0);p.bind(h.$c,this.yh,this,!0)}.bind(this));d.M.bind(h.V,this.za,this,!0);this.iFa([]);this.update()}var h=a("tdv/constants/EventName"),n=a("tdv/constants/Priority"),g=a("tdv/player/view/util/Color"),k=a("tdv/player/view/util/LoadingGroup"),e=a("tdv/player/view/webgl/components"),b=a("tdv/player/view/webgl/system/util/entity/Util"),c=a("tdv/view/images/ImageLoader"),d=a("tdv/player/view/util/XR");m.prototype.frame=function(){if(this.Bb){var f= m.Pfb(this.B.T,this.Bb);this.j!=f&&(this.j&&(this.Yu(),this.M0()),this.j=f)&&(this.za(),this.Tla())}};m.prototype.update=function(){var f=this.B.getComponent(e.Scene),l=!1,p=!1,q=f.uKa||null;this.SG!==q&&(this.SG=q,p=!0);q=f.Xma||null;this.Zx!==q&&(this.Zx=q,p=!0);q=f.FIa||null;this.pG!==q&&(this.pG=q,p=!0);p&&(this.pHa(),this.Tla(),l=!0);this.dC!==f.backgroundColor&&(this.dC=f.backgroundColor,l=!0);this.Bb!==f.scene&&(this.Bb=f.scene,l=!0);this.efa!==f.environmentIntensity&&(this.efa=f.environmentIntensity, l=!0);l&&this.za()};m.prototype.pHa=function(){this.iFa(this.I2a())};m.prototype.I2a=function(){var f=[];this.SG&&f.indexOf(this.SG)==-1&&f.push(this.SG);!this.Zx&&this.pG&&f.indexOf(this.pG)==-1&&f.push(this.pG);if(this.Bb&&this.Bb.background&&this.Bb.background.image&&this.Bb.background.image.src){var l=this.Bb.background.image.src;f.indexOf(l)==-1&&f.push(l)}return f};m.prototype.iFa=function(f){var l=[],p=[];this.Sd.forEach(function(q){var r=q.rl();f.indexOf(r)<0?(q.cancel(),l.push(q)):p.push(r)}); f.forEach(function(q){p.indexOf(q)<0&&l.shift().load(q)})};m.prototype.Tla=function(){var f=0;this.sf.hJa();this.Sd.forEach(function(l){l.rl()&&!l.oj()&&(this.sf.rO(l),f++)}.bind(this));f==0&&this.Oh&&this.Oh.o(h.ia)};m.prototype.dispose=function(){this.Sd.forEach(function(f){f.cancel();f.h(h.ia,this.Pe,this,!0);f.h(h.$c,this.yh,this,!0)}.bind(this));this.B&&(this.M0(),this.Yu(),this.B=null);d.M.h(h.V,this.za,this)};m.prototype.Pe=function(){this.za();this.Tla()};m.prototype.za=function(){if(this.Bb&& this.j){this.Bb.environmentIntensity=this.efa;if(this.SG){var f=this.Sya(this.SG);f&&this.MXa(f)}else this.M0();d.isPresenting&&d.Cm==d.El.Np?this.Yu():this.Zx?this.Yu():this.pG?(f=this.Sya(this.pG))&&this.Mva(f):this.dC?this.Mva(void 0,this.dC):this.Yu();this.pHa();this.B.T.Qa()}};m.prototype.Sya=function(f){for(var l=0;l0)return q.renderer}return null};return m}); define("tdv/player/view/webgl/system/scene/FadeColor","require exports tdv/constants/RenderOrder tdv/player/view/util/Color tdv/player/view/util/XR tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util three.mod".split(" "),function(a,m,h,n,g,k,e,b){a=function(){function d(f){this.opacity=this.XO=void 0;this.F=f}d.prototype.frame=function(){var f=this.F.getComponent(k.Scene),l=f.scene,p=l&&e.tw(l),q=f.XO;f=f.YW;!g.isPresenting&&p&&q&&f>0?(this.Hdb(),this.Xnb(l,p),this.Wnb(q, f)):(this.opacity=this.XO=void 0,this.lJa())};d.prototype.update=function(){};d.prototype.Xnb=function(f,l){this.Gi.parent!=l&&l.add(this.Gi);var p=e.sX(f);f=e.dE(f);l.isPerspectiveCamera?(this.Gi.position.z=-l.near*1.01,l=f/(2*Math.tan(l.fov*c/2)),l=Math.max(f/l,p/(l*p/f)),this.Gi.scale.y=l,this.Gi.scale.x=l*p/f):l.isOrthographicCamera&&(this.Gi.position.z=-(l.near+1),this.Gi.scale.y=l.top-l.bottom,this.Gi.scale.x=l.right-l.left)};d.prototype.Wnb=function(f,l){this.XO!==f&&this.opacity!==l&&(this.Gi.material.color= n.Ip(f),this.Gi.material.opacity=l,this.Gi.material.needsUpdate=!0)};d.prototype.Hdb=function(){if(!this.Gi){var f=new b.SpriteMaterial;f.depthTest=!1;f.renderOrder=h.qta;f.sizeAttenuation=!1;f.transparent=!0;f.visible=!0;f.opacity=0;f.needsUpdate=!0;this.Gi=new b.Sprite(f);this.Gi.renderOrder=h.qta}};d.prototype.lJa=function(){var f,l,p;if(this.Gi){var q=this.Gi.material;(f=q.map)===null||f===void 0||f.dispose();(l=q.envMap)===null||l===void 0||l.dispose();q.dispose();this.Gi.geometry.dispose(); (p=this.Gi.parent)===null||p===void 0||p.remove(this.Gi)}};d.prototype.dispose=function(){this.lJa()};return d}();var c=Math.PI/180;return a}); define("tdv/player/view/webgl/system/scene/Fog","require exports tdv/constants/EventName tdv/player/view/util/Color tdv/player/view/webgl/components three.mod tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k,e){return function(){function b(c){this.F=c;e.M.bind(h.V,this.update,this,!0)}b.prototype.update=function(){var c=this.F.getComponent(g.Scene),d=c.scene,f=e.isPresenting&&e.Cm==e.El.Np?0:c.OKa;c=n.Ip(c.NKa||"#ffffff");f>0?d.fog==null?d.fog=new k.FogExp2(c,f):(d.fog.color=c,d.fog.density= f):d.fog=null};b.prototype.dispose=function(){e.M.h(h.V,this.update,this);var c=this.F.getComponent(g.Scene);c&&c.scene&&(c.scene.fog=null)};return b}()}); define("tdv/player/view/webgl/system/scene/Behaviour","require tdv/player/view/webgl/components tdv/player/view/util/LoadingGroup tdv/player/view/webgl/system/scene/Background tdv/player/view/webgl/system/scene/Environment tdv/player/view/webgl/system/scene/FadeColor tdv/player/view/webgl/system/scene/Fog".split(" "),function(a){function m(c){this.B=c;this.Oh=null;var d=this.B.O(h.Scene),f=this.B.O(h.Wp);this.B.N(h.Object3D).sa=f.scene=d.scene=new THREE.Scene;this.sf=new n;this.ZR=new k(c,this.sf.hw()); this.ae=new g(c,this.sf.hw());this.$0=new b(c);this.aya=new e(c)}var h=a("tdv/player/view/webgl/components"),n=a("tdv/player/view/util/LoadingGroup"),g=a("tdv/player/view/webgl/system/scene/Background"),k=a("tdv/player/view/webgl/system/scene/Environment"),e=a("tdv/player/view/webgl/system/scene/FadeColor"),b=a("tdv/player/view/webgl/system/scene/Fog");m.prototype.frame=function(c){this.ZR.frame(c);this.ae.frame(c)};m.prototype.Zna=function(c){this.aya.frame(c)};m.prototype.update=function(){this.ZR.update(); this.ae.update();this.$0.update();this.aya.update();this.xab()};m.prototype.xab=function(){var c=this.B.getComponent(h.Scene);this.Oh!=c.Wna&&(this.Oh=c.Wna,this.sf.vkb(this.Oh))};m.prototype.dispose=function(){this.sf&&(this.sf.dispose(),this.sf=null);this.ae&&(this.ae.dispose(),this.ae=null);this.ZR&&(this.ZR.dispose(),this.ZR=null);this.$0&&(this.$0.dispose(),this.$0=null);this.B&&(this.B=null)};m.Wa=function(c){c.N(h.Wp).manager=new m(c)};m.ya=function(c){var d=c.getComponent(h.Wp);d.manager.dispose(); d.manager=null;c.ka(h.Wp);c.ka(h.Object3D)};m.frame=function(c,d){c.getComponent(h.Wp).manager.frame(d)};m.Zna=function(c,d){(c=c.getComponent(h.Wp))&&c.manager&&c&&c.manager.Zna(d)};m.update=function(c){c.getComponent(h.Wp).manager.update()};m.vra=function(c,d){k.vra(c,d)};return m}); define("tdv/player/view/webgl/system/scene/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/scene/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/scene/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(k){this.wQa.v.length&&this.wQa.v.slice().forEach(g.Wa);this.scenes.Da.length&& this.scenes.Da.slice().forEach(g.update);this.scenes.v.length&&this.scenes.v.slice().forEach(function(e){g.frame(e,k)});g.vra(this.T,this.Un.v.slice());this.xQa.v.length&&this.xQa.v.slice().forEach(g.ya)};a.J={};a.J.wQa=[n.Scene,n.Wp.aa];a.J.scenes=[n.Scene,n.Wp];a.J.xQa=[n.Scene.aa,n.Wp];a.J.Un=[n.wj,n.Fu];a.l_=m.extend(h,function(){h.apply(this,arguments)});a.l_.prototype.Yc=function(k){this.scenes.v.length&&this.scenes.v.slice().forEach(function(e){g.Zna(e,k)})};a.l_.J={};a.l_.J.scenes=[n.Scene, n.Wp];return a}); define("tdv/player/view/util/ColorPicker",["require","exports","three.mod","tdv/player/view/util/Device"],function(a,m,h,n){function g(c,d,f){try{if(c instanceof CanvasRenderingContext2D)return c.getImageData(d,f,1,1).data;if(c instanceof HTMLCanvasElement)return c.I3a?[0,0,0,0]:c.getContext("2d").getImageData(d,f,1,1).data;e.drawImage(c,d,f,1,1,0,0,1,1);return e.getImageData(0,0,1,1).data}catch(l){return[0,0,0,0]}}function k(c,d,f){c<0?c=f==h.RepeatWrapping?d+c%d:f==h.MirroredRepeatWrapping?Math.floor(Math.abs(c/ d))%2==0?Math.abs(c%d):d-1+c%d:0:c>=d&&(c=f==h.RepeatWrapping?c%d:f==h.MirroredRepeatWrapping?Math.floor(c/d)%2==1?d-1-c%d:c%d:d-1);return c}a=function(){function c(d){this.source=d;d instanceof HTMLCanvasElement?(this.canvas=d,this.scale=1):(this.canvas=document.createElement("canvas"),this.scale=n.Nd()==n.vj?.5:1,this.canvas.width=Math.round(d.width*this.scale),this.canvas.height=Math.round(d.height*this.scale));this.context=this.canvas.getContext("2d");this.context.globalCompositeOperation="copy"; this.canvas!=d&&this.context.drawImage(d,0,0,d.width,d.height,0,0,this.canvas.width,this.canvas.height)}c.prototype.transparent=function(d,f){return c.transparent(this.context,Math.round(d*this.scale),Math.round(f*this.scale))};c.prototype.ax=function(d,f){return c.ax(this.context,Math.round(d*this.scale),Math.round(f*this.scale))};c.prototype.info=function(d,f){return c.info(this.context,Math.round(d*this.scale),Math.round(f*this.scale))};c.prototype.dispose=function(){this.canvas!=this.source&& (this.canvas.width=this.canvas.height=0)};c.Pmb=function(d,f,l){if(!d.image||!d.image.width||!d.image.height)return!0;f=k(Math.round(f*d.image.width),d.image.width,d.wrapS);l=k(Math.round((1-l)*d.image.height),d.image.height,d.wrapT);return!c.transparent(d.image,f,l)};c.transparent=function(d,f,l){return!c.ax(d,f,l)};c.ax=function(d,f,l){var p=d.tagName;return p&&p!="VIDEO"?g(d,f,l)[3]>0:!0};c.info=function(d,f,l){d=g(d,f,l);f=d[3];return{ax:f>0,opacity:f,color:"#"+b[d[0]]+b[d[1]]+b[d[2]]}};return c}(); m=document.createElement("canvas");m.width=m.height=1;var e=m.getContext("2d");e.globalCompositeOperation="copy";var b=function(){for(var c=Array(256),d=0;d<16;d++)c[d]="0"+d.toString(16);for(;d<256;d++)c[d]=d.toString(16);return c}();return a}); define("tdv/player/view/webgl/system/selection/Behaviour","require tdv/constants/EventName tdv/player/view/util/ColorPicker tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/system/util/RaycastUtil tdv/view/constants/Cursor".split(" "),function(a){function m(C){this.Bh=C;this.EN=this.Ay=this.Oe=this.Ko=null;this.wT=void 0;this.Jy=!1;this.update()}function h(C,B,H,E){this.F=C;this.sa=B;this.point=H;this.normal=E}function n(C){return{x:C.x,y:C.y,z:C.z}} function g(C,B,H,E){var G=B.T,N=C.get(G);N||C.set(G,N=[]);C=N.indexOf(B);H&&C<0?N.push(B):!H&&C>=0&&N.splice(C,1);E.delete(G)}var k=a("tdv/constants/EventName"),e=a("tdv/player/view/util/ColorPicker"),b=a("tdv/player/view/webgl/components"),c=a("tdv/player/view/webgl/system/util/entity/Util"),d=a("tdv/player/view/webgl/system/util/RaycastUtil"),f=a("tdv/view/constants/Cursor");m.prototype.update=function(){var C=this.Bh.getComponent(b.zc);C.St=this;this.cV(C&&C.enabled?C.WD:null);this.bV(C&&C.enabled? C.c7:null)};m.prototype.frame=function(){this.pZa();var C=this.Bh.getComponent(b.zc);C&&C.ona?this.JCa():this.fka(q)};m.prototype.cV=function(C){if(this.Ko!=C){if(this.Ko)for(var B in u)this.Ko.h(B,this.Ee,this);if(this.Ko=C)for(B in u)this.Ko.bind(B,this.Ee,this,!0)}};m.prototype.Ee=function(C){var B=this.Bh.getComponent(b.zc);B&&B.enabled&&(B=u[C.name])&&B.call(this,C)};m.prototype.bV=function(C){this.Oe!=C&&(this.Oe&&this.Jy&&this.Oe.pop(f.qf),(this.Oe=C)&&this.Jy&&this.Oe.push(f.qf))};m.prototype.rg= function(C){this.Mq(C);this.BM&&v.indexOf(this.Bh.T)==-1&&w.indexOf(this.Bh.T)==-1?this.fka(q):this.fka(p)};m.prototype.ez=function(C){this.Mq(C);(C=this.Ffa())&&this.Q5(k.ma,C)};m.prototype.YM=function(C){this.Mq(C);(C=this.Ffa())&&this.Q5(k.fi,C)};m.prototype.uq=function(C){this.BM=!0;this.Mq(C);if(C=this.Ffa())this.dfa=C.F,this.gfa=C.F.getComponent(b.wd).M,this.Q5(k.Sa,C)};m.prototype.fz=function(C){this.BM=!1;this.Mq(C);if(this.dfa)var B=(B=this.dfa.getComponent(b.wd))&&B.M;!B&&this.gfa&&(B=this.gfa); this.gfa=this.dfa=null;B&&(C=this.sya(),B.o(k.$a,C),B=this.Bh.getComponent(b.zc),B.M&&B.M.o(k.$a,C))};m.prototype.Mq=function(C){this.Ad=C.x;this.Bd=C.y;this.NM=C.pageX;this.OM=C.pageY};m.prototype.fka=function(C){var B=(new Date).getTime()+C;this.wT&&B>=this.wT||(this.wT=B,clearTimeout(this.EN),this.EN=setTimeout(function(){this.EN=null;this.wT=void 0;this.JCa()}.bind(this),C))};m.prototype.JCa=function(){var C=this.u2a();this.NEa(C&&C.F);C&&this.Q5(k.gb,C)};m.prototype.pqa=function(C,B,H){var E= this.Ad,G=this.Bd,N=this.NM,O=this.OM;this.OM=this.NM=this.Bd=this.Ad=void 0;C=this.Qfa(C,[]);B=this.Jfa(C,B,H);var R;B&&(R=this.jza(B));this.Ad=E;this.Bd=G;this.NM=N;this.OM=O;return R};m.prototype.u2a=function(){var C=this.Bh.getComponent(b.zc);if(!C)return null;var B=this.t2a();return this.Jfa(B,C.origin,C.direction)||null};m.prototype.Ffa=function(){var C=this.Bh.getComponent(b.zc);if(!C)return null;var B=this.r1a();return this.Jfa(B,C.origin,C.direction)||null};m.prototype.NEa=function(C){if(this.Ay!= C){if(this.Ay!=null!=(C!=null)){var B=this.Bh.getComponent(b.zc);B&&B.M&&B.M.o(C?k.uc:k.Eb)}this.Ay&&this.qGa(this.Ay,k.Eb);(this.Ay=C)&&this.qGa(this.Ay,k.uc);C=this.Ay&&this.Ay.getComponent(b.wd);C=!!C&&C.pB;this.Jy!=C&&(this.Jy=C,this.Oe&&(this.Jy?this.Oe.push(f.qf):this.Oe.pop(f.qf)))}};m.prototype.Jfa=function(C,B,H){var E=Array.from(C.keys());B=this.t3a(E,B,H);for(H=0;H0;p.castShadow=p.intensity>0&&f.castShadow;p.distance=f.distance;p.angle=f.angle*Math.PI/180;p.penumbra= f.penumbra;p.decay=f.decay;p.target.position.set(0,0,1);p.add(p.target);var q=p.castShadow?f.Nra:16;q!=p.shadow.mapSize.width&&(p.shadow.dispose(),p.shadow=p.shadow.clone(),p.shadow.mapSize.width=p.shadow.mapSize.height=q);p.shadow.bias=f.Mra;p.shadow.radius=f.Ora;f.UW!=!!l.zp&&(l=d.O(g.Hu),f.UW?l.zp=new h.SpotLightHelper(p):(l.zp.dispose(),l.zp=null))};c.prototype.eg=function(d){this.zsa(d)};c.prototype.zsa=function(d){var f=d.getComponent(g.Hu);if(f=f&&f.zp)d=e.Sf(d),f.parent!=d&&(f.parent&&f.parent.remove(f), d&&d.add(f)),f.update()};c.prototype.Ca=function(d){var f=d.getComponent(g.Hu),l=f&&f.zp;l&&l.parent&&l.parent.remove(l);l&&l.dispose();f=f.light;f.parent&&f.parent.remove(f);d.ka(g.Hu);d.ka(g.Object3D)};c.J={};return c}(k);a.J={};a.J.mE=[g.SpotLight,g.Hu.aa];a.J.Ei=[g.SpotLight,g.Hu];a.J.nE=[g.SpotLight.aa,g.Hu];return a}); define("tdv/player/view/webgl/system/solidMaterial/Behaviour",["require","tdv/player/view/util/Color","tdv/player/view/webgl/components"],function(a){function m(g){this.B=g;this.Aa=null;this.update()}var h=a("tdv/player/view/util/Color"),n=a("tdv/player/view/webgl/components");m.prototype.update=function(){this.Aa||(this.Aa=new THREE.MeshBasicMaterial,this.Aa.transparent=!0,this.B.N(n.Material).material=this.Aa);var g=this.B.getComponent(n.xd);this.Aa.color=h.Ip(g.color||"#ffffff");this.Aa.opacity= g.opacity||0;this.Aa.depthTest=!!g.depthTest;this.Aa.side=g.doubleSided?THREE.DoubleSide:THREE.FrontSide;this.Aa.visible=this.Aa.opacity>0;this.Aa.needsUpdate=!0};m.prototype.dispose=function(){this.Aa&&(this.Aa.dispose(),this.Aa=null,this.B.ka(n.Material));this.B=null};m.Wa=function(g){g.N(n.Ix).manager=new m(g)};m.ya=function(g){var k=g.getComponent(n.Ix);k.manager.dispose();k.manager=null;g.ka(n.Ix)};m.update=function(g){g.getComponent(n.Ix).manager.update()};return m}); define("tdv/player/view/webgl/system/solidMaterial/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/solidMaterial/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/solidMaterial/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.Nn.v.length&&this.Nn.v.slice().forEach(g.Wa); this.materials.Da.length&&this.materials.Da.slice().forEach(g.update);this.On.v.length&&this.On.v.slice().forEach(g.ya)};a.J={};a.J.Nn=[n.xd,n.Ix.aa];a.J.materials=[n.xd,n.Ix];a.J.On=[n.xd.aa,n.Ix];return a}); define("tdv/player/view/webgl/system/sphere/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/material/Util"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/util/material/Util");a=m.extend(h,function(){h.apply(this,arguments);this.xb=this.xb.bind(this);this.ib=this.ib.bind(this);this.Ca=this.Ca.bind(this)});a.prototype.Yc= function(){this.ZRa.v.length&&this.ZRa.v.slice().forEach(this.xb);this.YRa.Da.length&&this.YRa.Da.slice().forEach(this.ib);this.$Ra.v.length&&this.$Ra.v.slice().forEach(this.Ca);this.aSa.v.length&&this.aSa.v.slice().forEach(this.Ca)};a.prototype.xb=function(k){k.N(n.Object3D).sa=new THREE.Mesh(new THREE.SphereGeometry);k.N(n.YF);this.ib(k)};a.prototype.ib=function(k){var e=k.getComponent(n.Object3D).sa;g.ND(e,k.getComponent(n.Material).material);k=k.getComponent(n.Sphere);var b=e.geometry;if(b.radius!= k.radius||b.widthSegments!=k.widthSegments||b.heightSegments!=k.heightSegments)b.dispose(),b=new THREE.SphereGeometry(k.radius,k.widthSegments,k.heightSegments),e.geometry=b,e.needsUpdate=!0;k=k.renderOrder||0;e.renderOrder!=k&&(e.renderOrder=k,e.needsUpdate=!0)};a.prototype.Ca=function(k){var e=k.getComponent(n.Object3D);(e=e&&e.sa)&&e.geometry&&(e.geometry.dispose(),e.geometry=null);e&&g.ND(e,null);k.ka(n.YF);k.ka(n.Object3D)};a.J={};a.J.ZRa=[n.Sphere,n.Material,n.YF.aa];a.J.YRa=[n.Sphere,n.Material, n.YF];a.J.$Ra=[n.Sphere.aa,n.YF];a.J.aSa=[n.Material.aa,n.YF];return a}); define("tdv/player/view/webgl/system/sprite/Behaviour",["require","tdv/player/view/util/XR","tdv/player/view/webgl/components","tdv/player/view/webgl/system/util/entity/Util","tdv/player/view/webgl/system/util/material/Util"],function(a){function m(c){this.B=c;this.Bb=null;this.Bda=90;this.Cda=100;this.Pa=this.Ha=void 0;this.oV=!1;this.ne=1;this.wc=this.B.O(n.Sprite).Gi=this.B.O(n.Object3D,!0).sa=new THREE.Sprite;this.wc.material.opacity=0;this.Qj();this.update();this.frame()}var h=a("tdv/player/view/util/XR"), n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/util/entity/Util"),k=a("tdv/player/view/webgl/system/util/material/Util");m.prototype.update=function(){var c=this.B.getComponent(n.Sprite);this.Ha=c.height;this.Pa=c.width;this.oV=c.sizeAttenuation;this.wc.center.x=c.tO;this.wc.center.y=1-c.uO;this.ne=c.scale;this.Cn();this.wc.needsUpdate=!0};m.prototype.frame=function(){this.Bb||(this.Bb=g.Sf(this.B));this.ct();this.Qj();this.Cn()};m.prototype.ct=function(){if(this.Bb){var c= g.tw(this.Bb);if(c&&c.isPerspectiveCamera){var d=g.dE(this.Bb);if(this.Bda!=c.fov||this.Cda!=d)this.Bda=c.fov,this.Cda=d,this.Cn(),this.wc.needsUpdate=!0}}};m.prototype.Qj=function(){var c=this.Bb?this.B.getComponent(n.Material).material:null;c&&k.ND(this.wc,c);this.wc.renderOrder=this.B.getComponent(n.Sprite).renderOrder;this.wc.material&&this.wc.material.sizeAttenuation!=this.oV&&(this.wc.material.sizeAttenuation=this.oV,this.wc.material.needsUpdate=!0)};m.prototype.Cn=function(){var c=this.Ha; this.oV||(c/=this.Cda/(2*Math.tan(this.Bda*b/2)));var d=this.ne;this.wc.parent&&(this.wc.parent.getWorldScale(e),d/=Math.max(e.x,e.y,e.z));h.isPresenting&&this.oV&&(d/=h.zi);c*=d;d=c*this.Pa/this.Ha;var f=this.B.getComponent(n.ta)||this.B.N(n.ta);if(f.Le!=d||f.Ye!=c||f.Gh!=1)f=this.B.O(n.ta,!0),f.Le=d,f.Ye=c,f.Gh=1};var e=new THREE.Vector3,b=Math.PI/180;m.prototype.dispose=function(){};m.Wa=function(c){c.N(n.Iu).manager=new m(c)};m.ya=function(c){var d=c.getComponent(n.Iu);d.manager.dispose();d.manager= null;c.ka(n.Iu);c.ka(n.Object3D)};m.update=function(c){c.getComponent(n.Iu).manager.update()};m.frame=function(c){c.getComponent(n.Iu).manager.frame()};return m}); define("tdv/player/view/webgl/system/sprite/System",["require","tdv/utils","tdv/player/view/webgl/ecs/System","tdv/player/view/webgl/components","tdv/player/view/webgl/system/sprite/Behaviour"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/webgl/ecs/System"),n=a("tdv/player/view/webgl/components"),g=a("tdv/player/view/webgl/system/sprite/Behaviour");a=m.extend(h,function(){h.apply(this,arguments)});a.prototype.Yc=function(){this.cSa.v.length&&this.cSa.v.slice().forEach(g.Wa);this.R$.Da.length&& this.R$.v.slice().forEach(g.update);this.R$.v.length&&this.R$.v.slice().forEach(g.frame);this.dSa.v.length&&this.dSa.v.slice().forEach(g.ya);this.eSa.v.length&&this.eSa.v.slice().forEach(g.ya)};a.J={};a.J.cSa=[n.Material,n.Sprite,n.Iu.aa];a.J.R$=[n.Sprite,n.Material,n.Iu];a.J.dSa=[n.Sprite.aa,n.Iu];a.J.eSa=[n.Material.aa,n.Iu];return a}); define("tdv/player/view/webgl/system/transform/System","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/player/view/webgl/ecs/System tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util".split(" "),function(a){function m(f,l,p){for(;fl+180;)f-=360;return h(f,l,p)}function h(f,l,p){if(!p)return l;f=(l-f)*(1-p);Math.abs(f)<1E-5&&(f=0);return l-f}var n=a("tdv/utils"),g=a("tdv/constants/EventName"),k=a("tdv/events/Event"),e=a("tdv/player/view/webgl/ecs/System"), b=a("tdv/player/view/webgl/components"),c=a("tdv/player/view/webgl/system/util/entity/Util");a=n.extend(e,function(){e.apply(this,arguments);this.xb=this.xb.bind(this);this.ib=this.ib.bind(this);this.Ca=this.Ca.bind(this)});a.prototype.Yc=function(f,l){this.eY.v.length&&this.eY.v.slice().forEach(this.xb);this.Kt.fe.length&&this.Kt.fe.slice().forEach(function(p){this.ib(p,f,l)}.bind(this));this.Kt.Da.length&&this.Kt.Da.slice().forEach(function(p){this.ib(p,f,l)}.bind(this));this.kOa.v.length&&this.kOa.v.slice().forEach(function(p){this.ib(p, f,l)}.bind(this));this.sKa.v.length&&this.sKa.v.slice().forEach(this.Ca);this.tKa.v.length&&this.tKa.v.slice().forEach(this.Ca)};a.prototype.xb=function(f){var l=f.getComponent(b.ta),p=f.N(b.Gg);p.positionX=l.positionX;p.positionY=l.positionY;p.positionZ=l.positionZ;p.Yd=l.Yd;p.fd=l.fd;p.Xe=l.Xe;p.mf=l.mf;p.scale=l.scale;p.Le=l.Le;p.Ye=l.Ye;p.Gh=l.Gh;p.translationX=l.translationX;p.translationY=l.translationY;p.Ze=l.Ze;this.updateMatrixWorld(f)};a.prototype.ib=function(f){var l=f.getComponent(b.ta), p=f.getComponent(b.Gg),q=l.easing||0;q?f.getComponent(b.aG)||f.N(b.aG):f.ka(b.aG);var r=null;l.bA!==p.bA&&(r||(r=f.O(b.Gg)),r.bA=l.bA);l.positionX!==p.positionX&&(r||(r=f.O(b.Gg)),r.positionX=h(r.positionX,l.positionX,q));l.positionY!==p.positionY&&(r||(r=f.O(b.Gg)),r.positionY=h(r.positionY,l.positionY,q));l.positionZ!==p.positionZ&&(r||(r=f.O(b.Gg)),r.positionZ=h(r.positionZ,l.positionZ,q));l.Yd!==p.Yd&&(r||(r=f.O(b.Gg)),r.Yd=m(r.Yd,l.Yd,q));l.fd!==p.fd&&(r||(r=f.O(b.Gg)),r.fd=m(r.fd,l.fd,q));l.Xe!== p.Xe&&(r||(r=f.O(b.Gg)),r.Xe=m(r.Xe,l.Xe,q));l.scale!==p.scale&&(r||(r=f.O(b.Gg)),r.scale=l.scale);l.Le!==p.Le&&(r||(r=f.O(b.Gg)),r.Le=l.Le);l.Ye!==p.Ye&&(r||(r=f.O(b.Gg)),r.Ye=l.Ye);l.Gh!==p.Gh&&(r||(r=f.O(b.Gg)),r.Gh=l.Gh);l.translationX!==p.translationX&&(r||(r=f.O(b.Gg)),r.translationX=h(r.translationX,l.translationX,q));l.translationY!==p.translationY&&(r||(r=f.O(b.Gg)),r.translationY=h(r.translationY,l.translationY,q));l.Ze!==p.Ze&&(r||(r=f.O(b.Gg)),r.Ze=h(r.Ze,l.Ze,q));r?this.updateMatrixWorld(f): f.ka(b.aG)};var d=new THREE.Vector3;a.prototype.updateMatrixWorld=function(f){c.dZ(f,f.getComponent(b.Gg));var l=f.getComponent(b.ta).M;l&&(c.getWorldPosition(f,d),f={position:{}},f.position.x=d.x,f.position.y=d.y,f.position.z=d.z,l.o(new k(g.Jm,f)))};a.prototype.Ca=function(f){f.ka(b.Gg);f.ka(b.aG)};a.J={};a.J.Kt=[b.Object3D,b.ta,b.Gg];a.J.eY=[b.Object3D,b.ta,b.Gg.aa];a.J.kOa=[b.Object3D,b.ta,b.Gg,b.aG];a.J.sKa=[b.Object3D.aa,b.ta,b.Gg];a.J.tKa=[b.ta.aa,b.Gg];return a}); define("tdv/player/view/webgl/system/transformControls/TransformControlsGizmo",["require","three.mod","tdv/constants/RenderOrder"],function(a){const m=a("three.mod"),h=a("tdv/constants/RenderOrder");class n extends m.Object3D{constructor(t){function u(L,U){L=new m.TorusGeometry(L,.0075,3,64,U*Math.PI*2);L.rotateY(Math.PI/2);L.rotateX(Math.PI/2);return L}function v(L){const U=new m.Object3D;for(const Y in L)for(let aa=L[Y].length;aa--;){const ba=L[Y][aa][0].clone();var T=L[Y][aa][1];const ea=L[Y][aa][2], ia=L[Y][aa][3],da=L[Y][aa][4];ba.name=Y;ba.tag=da;T&&ba.position.set(T[0],T[1],T[2]);ea&&ba.rotation.set(ea[0],ea[1],ea[2]);ia&&ba.scale.set(ia[0],ia[1],ia[2]);ba.updateMatrix();T=ba.geometry.clone();T.applyMatrix4(ba.matrix);ba.geometry=T;ba.renderOrder=h.gWa;ba.position.set(0,0,0);ba.rotation.set(0,0,0);ba.scale.set(1,1,1);U.add(ba)}return U}super();this.type="TransformControlsGizmo";this.properties=t;var w=new m.MeshBasicMaterial({depthTest:!1,depthWrite:!1,fog:!1,toneMapped:!1,transparent:!0}), y=new m.LineBasicMaterial({depthTest:!1,depthWrite:!1,fog:!1,toneMapped:!1,transparent:!0});t=w.clone();t.opacity=.15;y=y.clone();y.opacity=.5;var x=w.clone();x.color.setHex(16711680);const z=w.clone();z.color.setHex(65280);const A=w.clone();A.color.setHex(255);const D=w.clone();D.color.setHex(16711680);D.opacity=.5;const F=w.clone();F.color.setHex(65280);F.opacity=.5;const C=w.clone();C.color.setHex(255);C.opacity=.5;const B=w.clone();B.opacity=.25;var H=w.clone();H.color.setHex(16776960);H.opacity= .25;w.clone().color.setHex(16776960);var E=w.clone();E.color.setHex(7895160);var G=new m.CylinderGeometry(0,.04,.1,12);G.translate(0,.05,0);const N=new m.BoxGeometry(.08,.08,.08);N.translate(0,.04,0);w=new m.BufferGeometry;w.setAttribute("position",new m.Float32BufferAttribute([0,0,0,1,0,0,0,0,0,0,0,0],3));const O=new m.CylinderGeometry(.0075,.0075,.5,3);O.translate(0,.25,0);G={X:[[new m.Mesh(G,x),[.5,0,0],[0,0,-Math.PI/2]],[new m.Mesh(G,x),[-.5,0,0],[0,0,Math.PI/2]],[new m.Mesh(O,x),[0,0,0],[0,0, -Math.PI/2]]],Y:[[new m.Mesh(G,z),[0,.5,0]],[new m.Mesh(G,z),[0,-.5,0],[Math.PI,0,0]],[new m.Mesh(O,z)]],Z:[[new m.Mesh(G,A),[0,0,.5],[Math.PI/2,0,0]],[new m.Mesh(G,A),[0,0,-.5],[-Math.PI/2,0,0]],[new m.Mesh(O,A),null,[Math.PI/2,0,0]]],XYZ:[[new m.Mesh(new m.OctahedronGeometry(.1,0),B.clone()),[0,0,0]]],XY:[[new m.Mesh(new m.BoxGeometry(.15,.15,.01),C.clone()),[.15,.15,0]]],YZ:[[new m.Mesh(new m.BoxGeometry(.15,.15,.01),D.clone()),[0,.15,.15],[0,Math.PI/2,0]]],XZ:[[new m.Mesh(new m.BoxGeometry(.15, .15,.01),F.clone()),[.15,0,.15],[-Math.PI/2,0,0]]]};const R={X:[[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[.3,0,0],[0,0,-Math.PI/2]],[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[-.3,0,0],[0,0,Math.PI/2]]],Y:[[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[0,.3,0]],[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[0,-.3,0],[0,0,Math.PI]]],Z:[[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[0,0,.3],[Math.PI/2,0,0]],[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[0,0,-.3],[-Math.PI/ 2,0,0]]],XYZ:[[new m.Mesh(new m.OctahedronGeometry(.2,0),t)]],XY:[[new m.Mesh(new m.BoxGeometry(.2,.2,.01),t),[.15,.15,0]]],YZ:[[new m.Mesh(new m.BoxGeometry(.2,.2,.01),t),[0,.15,.15],[0,Math.PI/2,0]]],XZ:[[new m.Mesh(new m.BoxGeometry(.2,.2,.01),t),[.15,0,.15],[-Math.PI/2,0,0]]]},Q={START:[[new m.Mesh(new m.OctahedronGeometry(.01,2),y),null,null,null,"helper"]],END:[[new m.Mesh(new m.OctahedronGeometry(.01,2),y),null,null,null,"helper"]],DELTA:[[new m.Line(function(){const L=new m.BufferGeometry; L.setAttribute("position",new m.Float32BufferAttribute([0,0,0,1,1,1],3));return L}(),y),null,null,null,"helper"]],X:[[new m.Line(w,y.clone()),[-1E3,0,0],null,[1E6,1,1],"helper"]],Y:[[new m.Line(w,y.clone()),[0,-1E3,0],[0,0,Math.PI/2],[1E6,1,1],"helper"]],Z:[[new m.Line(w,y.clone()),[0,0,-1E3],[0,-Math.PI/2,0],[1E6,1,1],"helper"]]};H={XYZE:[[new m.Mesh(u(.5,1),E),null,[0,Math.PI/2,0]]],X:[[new m.Mesh(u(.5,.5),x)]],Y:[[new m.Mesh(u(.5,.5),z),null,[0,0,-Math.PI/2]]],Z:[[new m.Mesh(u(.5,.5),A),null,[0, Math.PI/2,0]]],E:[[new m.Mesh(u(.75,1),H),null,[0,Math.PI/2,0]]]};E={AXIS:[[new m.Line(w,y.clone()),[-1E3,0,0],null,[1E6,1,1],"helper"]]};const K={XYZE:[[new m.Mesh(new m.SphereGeometry(.25,10,8),t)]],X:[[new m.Mesh(new m.TorusGeometry(.5,.1,4,24),t),[0,0,0],[0,-Math.PI/2,-Math.PI/2]]],Y:[[new m.Mesh(new m.TorusGeometry(.5,.1,4,24),t),[0,0,0],[Math.PI/2,0,0]]],Z:[[new m.Mesh(new m.TorusGeometry(.5,.1,4,24),t),[0,0,0],[0,0,-Math.PI/2]]],E:[[new m.Mesh(new m.TorusGeometry(.75,.1,2,24),t)]]};x={X:[[new m.Mesh(N, x),[.5,0,0],[0,0,-Math.PI/2]],[new m.Mesh(O,x),[0,0,0],[0,0,-Math.PI/2]],[new m.Mesh(N,x),[-.5,0,0],[0,0,Math.PI/2]]],Y:[[new m.Mesh(N,z),[0,.5,0]],[new m.Mesh(O,z)],[new m.Mesh(N,z),[0,-.5,0],[0,0,Math.PI]]],Z:[[new m.Mesh(N,A),[0,0,.5],[Math.PI/2,0,0]],[new m.Mesh(O,A),[0,0,0],[Math.PI/2,0,0]],[new m.Mesh(N,A),[0,0,-.5],[-Math.PI/2,0,0]]],XY:[[new m.Mesh(new m.BoxGeometry(.15,.15,.01),C),[.15,.15,0]]],YZ:[[new m.Mesh(new m.BoxGeometry(.15,.15,.01),D),[0,.15,.15],[0,Math.PI/2,0]]],XZ:[[new m.Mesh(new m.BoxGeometry(.15, .15,.01),F),[.15,0,.15],[-Math.PI/2,0,0]]],XYZ:[[new m.Mesh(new m.BoxGeometry(.1,.1,.1),B.clone())]]};t={X:[[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[.3,0,0],[0,0,-Math.PI/2]],[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[-.3,0,0],[0,0,Math.PI/2]]],Y:[[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[0,.3,0]],[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[0,-.3,0],[0,0,Math.PI]]],Z:[[new m.Mesh(new m.CylinderGeometry(.2,0,.6,4),t),[0,0,.3],[Math.PI/2,0,0]],[new m.Mesh(new m.CylinderGeometry(.2, 0,.6,4),t),[0,0,-.3],[-Math.PI/2,0,0]]],XY:[[new m.Mesh(new m.BoxGeometry(.2,.2,.01),t),[.15,.15,0]]],YZ:[[new m.Mesh(new m.BoxGeometry(.2,.2,.01),t),[0,.15,.15],[0,Math.PI/2,0]]],XZ:[[new m.Mesh(new m.BoxGeometry(.2,.2,.01),t),[.15,0,.15],[-Math.PI/2,0,0]]],XYZ:[[new m.Mesh(new m.BoxGeometry(.2,.2,.2),t),[0,0,0]]]};y={X:[[new m.Line(w,y.clone()),[-1E3,0,0],null,[1E6,1,1],"helper"]],Y:[[new m.Line(w,y.clone()),[0,-1E3,0],[0,0,Math.PI/2],[1E6,1,1],"helper"]],Z:[[new m.Line(w,y.clone()),[0,0,-1E3], [0,-Math.PI/2,0],[1E6,1,1],"helper"]]};this.zA={};this.St={};this.AJ={};this.add(this.zA.translate=v(G));this.add(this.zA.rotate=v(H));this.add(this.zA.scale=v(x));this.add(this.St.translate=v(R));this.add(this.St.rotate=v(K));this.add(this.St.scale=v(t));this.add(this.AJ.translate=v(Q));this.add(this.AJ.rotate=v(E));this.add(this.AJ.scale=v(y));this.St.translate.visible=!1;this.St.rotate.visible=!1;this.St.scale.visible=!1}updateMatrixWorld(t){const u=(this.properties.mode==="scale"?"local":this.properties.Tra)=== "local"?this.properties.JK:l;this.zA.translate.visible=this.properties.mode==="translate";this.zA.rotate.visible=this.properties.mode==="rotate";this.zA.scale.visible=this.properties.mode==="scale";this.AJ.translate.visible=this.properties.mode==="translate";this.AJ.rotate.visible=this.properties.mode==="rotate";this.AJ.scale.visible=this.properties.mode==="scale";let v=[];v=v.concat(this.St[this.properties.mode].children);v=v.concat(this.zA[this.properties.mode].children);v=v.concat(this.AJ[this.properties.mode].children); for(let y=0;y.9&&(x.visible=!1)),this.properties.axis==="Y"&&(k.setFromEuler(e.set(0,0,Math.PI/2)),x.quaternion.copy(u).multiply(k),Math.abs(b.copy(q).applyQuaternion(u).dot(this.properties.eye))>.9&&(x.visible=!1)),this.properties.axis==="Z"&&(k.setFromEuler(e.set(0,Math.PI/2,0)),x.quaternion.copy(u).multiply(k),Math.abs(b.copy(r).applyQuaternion(u).dot(this.properties.eye))>.9&& (x.visible=!1)),this.properties.axis==="XYZE"&&(k.setFromEuler(e.set(0,Math.PI/2,0)),b.copy(this.properties.KE),x.quaternion.setFromRotationMatrix(d.lookAt(c,b,q)),x.quaternion.multiply(k),x.visible=this.properties.xk),this.properties.axis==="E"&&(x.visible=!1)):x.name==="START"?(x.position.copy(this.properties.IK),x.visible=this.properties.xk):x.name==="END"?(x.position.copy(this.properties.rB),x.visible=this.properties.xk):x.name==="DELTA"?(x.position.copy(this.properties.IK),x.quaternion.copy(this.properties.Tsa), g.set(1E-10,1E-10,1E-10).add(this.properties.IK).sub(this.properties.rB).multiplyScalar(-1),g.applyQuaternion(this.properties.Tsa.clone().invert()),x.scale.copy(g),x.visible=this.properties.xk):(x.quaternion.copy(u),this.properties.xk?x.position.copy(this.properties.IK):x.position.copy(this.properties.rB),this.properties.axis&&(x.visible=this.properties.axis.search(x.name)!==-1))):(x.quaternion.copy(u),this.properties.mode==="translate"||this.properties.mode==="scale"?(x.name==="X"&&Math.abs(b.copy(p).applyQuaternion(u).dot(this.properties.eye))> .99&&(x.scale.set(1E-10,1E-10,1E-10),x.visible=!1),x.name==="Y"&&Math.abs(b.copy(q).applyQuaternion(u).dot(this.properties.eye))>.99&&(x.scale.set(1E-10,1E-10,1E-10),x.visible=!1),x.name==="Z"&&Math.abs(b.copy(r).applyQuaternion(u).dot(this.properties.eye))>.99&&(x.scale.set(1E-10,1E-10,1E-10),x.visible=!1),x.name==="XY"&&Math.abs(b.copy(r).applyQuaternion(u).dot(this.properties.eye))<.2&&(x.scale.set(1E-10,1E-10,1E-10),x.visible=!1),x.name==="YZ"&&Math.abs(b.copy(p).applyQuaternion(u).dot(this.properties.eye))< .2&&(x.scale.set(1E-10,1E-10,1E-10),x.visible=!1),x.name==="XZ"&&Math.abs(b.copy(q).applyQuaternion(u).dot(this.properties.eye))<.2&&(x.scale.set(1E-10,1E-10,1E-10),x.visible=!1)):this.properties.mode==="rotate"&&(f.copy(u),b.copy(this.properties.eye).applyQuaternion(k.copy(u).invert()),x.name.search("E")!==-1&&x.quaternion.setFromRotationMatrix(d.lookAt(this.properties.eye,c,q)),x.name==="X"&&(k.setFromAxisAngle(p,Math.atan2(-b.y,b.z)),k.multiplyQuaternions(f,k),x.quaternion.copy(k)),x.name==="Y"&& (k.setFromAxisAngle(q,Math.atan2(b.x,b.z)),k.multiplyQuaternions(f,k),x.quaternion.copy(k)),x.name==="Z"&&(k.setFromAxisAngle(r,Math.atan2(b.y,b.x)),k.multiplyQuaternions(f,k),x.quaternion.copy(k))),x.visible=x.visible&&(x.name.indexOf("X")===-1||this.properties.ORa),x.visible=x.visible&&(x.name.indexOf("Y")===-1||this.properties.PRa),x.visible=x.visible&&(x.name.indexOf("Z")===-1||this.properties.QRa),x.visible=x.visible&&(x.name.indexOf("E")===-1||this.properties.ORa&&this.properties.PRa&&this.properties.QRa), x.material.Ne=x.material.Ne||x.material.color.clone(),x.material.Of=x.material.Of||x.material.opacity,x.material.color.copy(x.material.Ne),x.material.opacity=x.material.Of,this.properties.enabled&&this.properties.axis&&(x.name===this.properties.axis?(x.material.color.setHex(16776960),x.material.opacity=1):this.properties.axis.split("").some(function(z){return x.name===z})&&(x.material.color.setHex(16776960),x.material.opacity=1)))}super.updateMatrixWorld(t)}}const g=new m.Vector3,k=new m.Quaternion, e=new m.Euler,b=new m.Vector3(0,1,0),c=new m.Vector3(0,0,0),d=new m.Matrix4,f=new m.Quaternion,l=new m.Quaternion,p=new m.Vector3(1,0,0),q=new m.Vector3(0,1,0),r=new m.Vector3(0,0,1);return n}); define("tdv/player/view/webgl/system/transformControls/TransformControlsPlane",["require","three.mod"],function(a){const m=a("three.mod");class h extends m.Mesh{constructor(r){super(new m.PlaneGeometry(1E5,1E5,2,2),new m.MeshBasicMaterial({visible:!1,wireframe:!0,side:m.DoubleSide,transparent:!0,opacity:.1,toneMapped:!1}));this.properties=r;this.type="TransformControlsPlane"}updateMatrixWorld(r){let t=this.properties.Tra;this.position.copy(this.properties.rB);this.properties.mode==="scale"&&(t="local"); l.copy(c).applyQuaternion(t==="local"?this.properties.JK:k);p.copy(d).applyQuaternion(t==="local"?this.properties.JK:k);q.copy(f).applyQuaternion(t==="local"?this.properties.JK:k);g.copy(p);switch(this.properties.mode){case "translate":case "scale":switch(this.properties.axis){case "X":g.copy(this.properties.eye).cross(l);e.copy(l).cross(g);break;case "Y":g.copy(this.properties.eye).cross(p);e.copy(p).cross(g);break;case "Z":g.copy(this.properties.eye).cross(q);e.copy(q).cross(g);break;case "XY":e.copy(q); break;case "YZ":e.copy(l);break;case "XZ":g.copy(q);e.copy(p);break;case "XYZ":case "E":e.set(0,0,0)}break;default:e.set(0,0,0)}e.length()===0?this.quaternion.copy(this.properties.SIa):(b.lookAt(n.set(0,0,0),e,g),this.quaternion.setFromRotationMatrix(b));super.updateMatrixWorld(r)}}const n=new m.Vector3,g=new m.Vector3(0,1,0),k=new m.Quaternion,e=new m.Vector3,b=new m.Matrix4,c=new m.Vector3(1,0,0),d=new m.Vector3(0,1,0),f=new m.Vector3(0,0,1),l=new m.Vector3,p=new m.Vector3,q=new m.Vector3;return h}); define("tdv/player/view/webgl/system/transformControls/TransformControls",["require","three.mod","tdv/player/view/webgl/system/transformControls/TransformControlsGizmo","tdv/player/view/webgl/system/transformControls/TransformControlsPlane"],function(a){function m(r,t,u){r=t.intersectObject(r,!0);for(t=0;t{r.geometry&&r.geometry.dispose();r.material&&r.material.dispose()})}attach(r){this.object=r;this.visible=!0;return this}detach(){this.object=void 0; this.visible=!1;this.axis=null;return this}reset(){this.enabled&&this.xk&&(this.object.position.copy(this.tqa),this.object.quaternion.copy(this.ZJ),this.object.scale.copy(this.Vqa),this.dispatchEvent(d),this.dispatchEvent(p),this.VA.copy(this.UA))}setSize(r){this.size=r}}return q}); define("tdv/player/view/webgl/system/transformControls/System","require exports three.mod tdv/constants/EventName tdv/events/Event tdv/player/view/webgl/components tdv/player/view/webgl/ecs/System tdv/player/view/webgl/system/util/RaycastUtil tdv/player/view/webgl/system/util/entity/Util tdv/player/view/webgl/system/transformControls/TransformControls tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k,e,b,c,d,f){function l(w){var y=this,x=y.getComponent(k.Lm),z=y.getComponent(k.Hh),A=x.iaa; x=x.Fk;if(A&&x)if(r.jKa.find(function(F){return F!=y}))A.xk&&A.IPa(b.D6(v,A.camera,x));else{var D=x.getComponent(k.zc).WD;w.name==n.Sa?(A.djb(b.D6(v,A.camera,x)),D.h(n.ma,l,y),A.xk&&(D.bind(n.ma,l,y,!0),A.object.userData={position:A.object.position.clone(),quaternion:A.object.quaternion.clone(),scale:A.object.scale.clone()})):w.name==n.$a?A.IPa(b.D6(v,A.camera,x)):w.name==n.gb?(f.isPresenting||D.h(n.ma,l,y),A.ejb(b.D6(v,A.camera,x))):w.name==n.ma&&(A.reset(),A.object.position.copy(A.object.userData.position), A.object.quaternion.copy(A.object.userData.quaternion),A.object.scale.copy(A.object.userData.scale),x=q(z),A.mode=x[(x.indexOf(A.mode)+1)%x.length]);A.xk&&!y.getComponent(k.Gm)?y.N(k.Gm):!A.xk&&y.getComponent(k.Gm)&&y.ka(k.Gm);z.M&&(A.xk&&w.name==n.gb||w.name==n.ma)&&(t.compose(A.object.position,A.object.quaternion,A.object.scale),u.multiplyMatrices(A.object.parent.matrixWorld,t),z.M.o(new g(n.V,{position:A.object.position,quaternion:A.object.quaternion,scale:p(A.object.scale),matrix:t,matrixWorld:u})))}} function p(w){var y=Math.abs(w.x-w.y)+Math.abs(w.x-w.z),x=Math.abs(w.y-w.x)+Math.abs(w.y-w.z),z=Math.abs(w.z-w.x)+Math.abs(w.z-w.y);if(!(y>x&&y>z)){if(x>y&&x>z)return w.y;if(z>y&&z>x)return w.z}return w.x}function q(w){var y=[];w.translate&&y.push("translate");w.rotate&&y.push("rotate");w.scale&&y.push("scale");y.length==0&&y.push("translate");return y}var r=function(w){function y(){var x=w.call(this)||this;x.xb=x.xb.bind(x);x.ib=x.ib.bind(x);x.Ca=x.Ca.bind(x);return x}P(y,w);y.prototype.Yc=function(){this.KSa.v.length&& this.KSa.v.slice().forEach(this.xb);this.LSa.v.length&&this.LSa.v.slice().forEach(this.Ca);this.MSa.v.length&&this.MSa.v.slice().forEach(this.Ca);this.JSa.v.length&&this.JSa.v.slice().forEach(this.ib);y.jKa=this.oA.v};y.prototype.xb=function(x){x.N(k.Lm)};y.prototype.ib=function(x){this.$nb(x);this.nu(x)};y.prototype.$nb=function(x){var z=x.getComponent(k.Object3D).sa,A;a:{for(A=z;A;){if(!A.visible){A=!1;break a}A=A.parent}A=!0}A||(z=null);var D=c.Sf(x),F=D&&c.tw(D),C=x.getComponent(k.Hh);A=x.getComponent(k.Lm).iaa; A&&z&&A.camera===F&&A.parent===D||(A&&(A.object.parent.remove(A.object),A.detach(),A.dispose()),A=null,F&&z&&D&&(A=new d(F),A.attach(new h.Object3D),D.add(A)),x.O(k.Lm).iaa=A);A&&z&&(z.parent!=A.object.parent&&(A.object.parent&&A.object.parent.remove(A.object),z.parent&&z.parent.add(A.object)),x=q(C),x.indexOf(A.mode)==-1&&(A.mode=x[0]),A.object.matrix.copy(z.matrix),A.object.matrix.decompose(A.object.position,A.object.quaternion,A.object.scale))};y.prototype.nu=function(x){var z=x.getComponent(k.Lm), A=this.yfb(x),D=A&&A.getComponent(k.zc).WD||null,F=(z=z.Fk)&&z.getComponent(k.zc);F=F&&F.WD||null;A!=z&&(F&&(F.h(n.Sa,l,x),F.h(n.$a,l,x),F.h(n.gb,l,x),F.h(n.ma,l,x)),x.O(k.Lm).pe=D)&&(D.bind(n.Sa,l,x,!0),D.bind(n.$a,l,x,!0),D.bind(n.gb,l,x,!0));A!=z&&(x.O(k.Lm).Fk=A)};y.prototype.yfb=function(x){return this.Wj.v.length?this.Wj.v.reduce(function(z,A){if(A.T!==x.T)return z;if(!z)return A;var D=A.getComponent(k.zc);return!z.getComponent(k.zc).Ug&&D.Ug?A:z}):null};y.prototype.Ca=function(x){var z=x.getComponent(k.Lm), A=z&&z.iaa;A&&(A.object.parent.remove(A.object),A.detach(),A.dispose());if(z=z.pe)z.h(n.Sa,l,x),z.h(n.$a,l,x),z.h(n.gb,l,x),z.h(n.ma,l,x);x.ka(k.Lm)};y.J={};y.jKa=[];return y}(e),t=new h.Matrix4,u=new h.Matrix4,v=new h.Raycaster;r.J.oA=[k.Gm];r.J.Wj=[k.zc];r.J.JSa=[k.Object3D,k.Hh,k.Lm];r.J.KSa=[k.Object3D,k.Hh,k.Lm.aa];r.J.LSa=[k.Object3D.aa,k.Lm];r.J.MSa=[k.Hh.aa,k.Lm];return r}); define("tdv/view/av/VideoFrame",["require","exports"],function(){var a=function(){var m=document.createElement("canvas");m.width=m.height=256;m.getContext("2d").clearRect(0,0,m.width,m.height);return m}();return function(){function m(h,n,g){this.wFa=h;this.aGa=n;this.Zu=g||a}m.prototype.isEmpty=function(){return this.Zu==a||this.Zu.tagName=="CANVAS"&&(this.Zu.width==0||this.Zu.height==0)};m.prototype.isEqual=function(h){return this.wFa==h.wFa&&this.aGa==h.aGa&&this.Zu==h.Zu};return m}()}); define("tdv/view/av/VideoLevelUtil",["require","exports","tdv/player/view/util/Capabilities","tdv/player/view/util/Device","tdv/player/view/util/FileType"],function(a,m,h,n,g){function k(c){return h.ySa(c)}function e(c,d){if(!d)return!0;var f=c.get("url"),l=c.get("srcObject");c=c.get("type")||"";switch(d){case "srcObj":return!!l;case "webm":return g.is(f,g.pWa)||b(c,"webm");case "h265":return g.is(f,g.WUa)||(g.is(f,g.eua)||g.is(f,g.Lta)||!f)&&(b(c,"hev1")||b(c,"h265")||b(c,"heic"))?!0:!1;case "mp4":return g.is(f, g.eua)||b(c,"mp4");case "hls":return g.is(f,g.HLS)||b(c,"x-mpegurl");case "ogv":return g.is(f,g.yVa)||b(c,"ogg");case "mov":return g.is(f,g.Lta)||b(c,"quicktime");default:return!1}}function b(c,d){return(c||"").toLowerCase().indexOf(d)>=0}return function(){function c(){}c.cgb=function(d){return c.select(d.get("levels"))};c.$fb=function(d){return c.select(d.get("levels"))};c.select=function(d){d||(d=[]);d=d.slice();var f=[];f.push({type:"srcObj",iu:!0});h.wgb&&f.push({type:"hls",iu:!1});h.Pgb&&f.push({type:"h265", iu:!0});h.Noa&&f.push({type:"webm",iu:!0});h.h8&&f.push({type:"mp4",iu:!0});h.Qgb&&f.push({type:"mov",iu:!0});h.Moa&&f.push({type:"ogv",iu:!0});f.push({type:"mp4",iu:!0});f.push({type:"webm",iu:!0});f.push({type:"mp4",iu:!1});f.push({type:"webm",iu:!1});for(var l=0;l0&&this.mg>this.ac-.15&&!this.KS()&&!this.Pl?this.TR():c.Yb()==c.Nk&&this.mg>0&&this.mg>this.ac-.05&&!this.KS()&&!this.Pl?this.TR():c.Yb()==c.Pp&&this.mg>0&&this.mg>this.ac-.05&&!this.KS()&&this.Pl&&this.TR(),this.VV())}; y.prototype.Fj=function(){var x=this;this.cq=this.Jb.bP().map(function(z){for(var A=null,D=0;Du*q?(v=r,p=t*r/u):(p=q,v=u*q/t);break;default:t*r>u*q?(p=q,v=u*q/t):(v=r,p=t*r/u)}switch(l.Yh){case b.fb:q=-q*.5;break;case b.Db:q=q*.5-p;break;default:q=-p*.5}switch(l.verticalAlign){case b.Tc:r=r*.5-v;break;case b.Gc:r=-r* .5;break;default:r=-v*.5}t=l.zIndex-d.hVa;g.set(l.geometry,q,r,0,0,0,p,0,0,1,0,v,0,1,0);f.O(n.ta,!0).positionZ=t;f.T.Qa()};d.hVa=100;d.J={};d.J.FE=[n.cG,n.Mx.aa];d.J.planes=[n.cG,n.Mx,n.ro];d.J.rY=[n.cG.aa,n.Mx];return d}); define("tdv/player/view/webgl/systems","require exports tdv/player/view/webgl/system/light/AmbientLightSystem tdv/player/view/webgl/system/animation/System tdv/player/view/webgl/system/aranchor/System tdv/player/view/webgl/system/area/System tdv/player/view/webgl/system/beacon/System tdv/player/view/webgl/system/camera/System tdv/player/view/webgl/system/cameraControls/System tdv/player/view/webgl/system/cameraOffsetTransform/System tdv/player/view/webgl/system/canvasMaterial/System tdv/player/view/webgl/system/clippingRect/System tdv/player/view/webgl/system/light/DirectionalLightSystem tdv/player/view/webgl/system/dragging/System tdv/player/view/webgl/system/floor/System tdv/player/view/webgl/system/floorTransform/System tdv/player/view/webgl/system/group/System tdv/player/view/webgl/system/grid/System tdv/player/view/webgl/system/imageMaterial/System tdv/player/view/webgl/system/lineMaterial/System tdv/player/view/webgl/system/line/System tdv/player/view/webgl/system/lineToTransform/System tdv/player/view/webgl/system/objectTransform/System tdv/player/view/webgl/system/materialVariant/System tdv/player/view/webgl/system/mesh/System tdv/player/view/webgl/system/model/System tdv/player/view/webgl/system/objectId/System tdv/player/view/webgl/system/plane/System tdv/player/view/webgl/system/parent/System tdv/player/view/webgl/system/pixelScaleTransform/System tdv/player/view/webgl/system/pointerOverTransform/System tdv/player/view/webgl/system/projectedMaterial/System tdv/player/view/webgl/system/renderer/System tdv/player/view/webgl/system/scene/System tdv/player/view/webgl/system/selection/System tdv/player/view/webgl/system/light/SpotLightSystem tdv/player/view/webgl/system/solidMaterial/System tdv/player/view/webgl/system/sphere/System tdv/player/view/webgl/system/sprite/System tdv/player/view/webgl/system/transform/System tdv/player/view/webgl/system/transformControls/System tdv/player/view/webgl/system/videoMaterial/System tdv/player/view/webgl/system/viewport/System tdv/player/view/webgl/system/viewportPlaneGeometry/System".split(" "),function(a, m,h,n,g,k,e,b,c,d,f,l,p,q,r,t,u,v,w,y,x,z,A,D,F,C,B,H,E,G,N,O,R,Q,K,L,U,T,Y,aa,ba,ea,ia,da){a={};a.AmbientLight=h;a.Animation=n;a.mF=g;a.ko=k;a.AB=e;a.Camera=b;a.jUa=c;a.QK=d;a.Kf=f;a.sF=l;a.DirectionalLight=p;a.Gm=q;a.Kr=r;a.Ax=t;a.wu=v;a.Group=u;a.Ni=w;a.ei=y;a.Line=x;a.yu=z;a.gi=A;a.Cx=D;a.Mesh=F;a.Oi=C;a.AVa=B;a.pb=E;a.Plane=H;a.Tk=G;a.Dl=N;a.oo=O;a.wj=R;a.Scene=Q;a.Selection=K;a.xd=U;a.Sphere=T;a.SpotLight=L;a.Sprite=Y;a.ta=aa;a.Hh=ba;a.qo=ea;a.ro=ia;a.cG=da;return a}); define("tdv/view/util/Screenshot",["require","exports"],function(){return function(){function a(){}a.HSa=function(m){var h;h||(h="screenshot.jpg");a:{try{var n=m.toDataURL("image/jpeg");break a}catch(g){}n=void 0}if(!n)return!1;m=n;n=document.createElement("a");typeof n.download==="string"?(document.body.appendChild(n),n.download=h,n.href=m,n.click(),document.body.removeChild(n)):window.location.replace(m);return!0};return a}()}); define("tdv/player/view/webgl/Renderer","require exports tdv/constants/EventName tdv/view/core/UIComponent tdv/view/util/Assets tdv/player/view/Flash tdv/player/view/webgl/ecs/World tdv/player/view/webgl/components tdv/player/view/webgl/systems tdv/view/util/Screenshot".split(" "),function(a,m,h,n,g,k,e,b,c,d){function f(q){return q.map(function(r){return String.fromCharCode(r)}).join("")}a=function(q){function r(t,u,v){var w=q.call(this)||this;w.Ie=t;w.P=u;w.vbb=v;w.aA=(new e(t)).na(b.LK).na(b.AmbientLight).na(b.wB).na(b.Animation).na(b.mx).na(b.oF).na(b.mF).na(b.lx).na(b.vB).na(b.Ar).na(b.Wf).na(b.ko).na(b.xB).na(b.pF).na(b.AB).na(b.BB).na(b.Qp).na(b.sx).na(b.Kf).na(b.DB).na(b.RK).na(b.tx).na(b.QK).na(b.kUa).na(b.sF).na(b.EB).na(b.DirectionalLight).na(b.Cr).na(b.vx).na(b.FB).na(b.Gm).na(b.MF).na(b.Jr).na(b.NF).na(b.Lr).na(b.Kr).na(b.zx).na(b.Ax).na(b.vu).na(b.Geometry).na(b.wu).na(b.KB).na(b.Group).na(b.YK).na(b.Ni).na(b.MB).na(b.Line).na(b.ei).na(b.OB).na(b.yu).na(b.QB).na(b.PB).na(b.Material).na(b.gi).na(b.RB).na(b.Cx).na(b.Pr).na(b.Mesh).na(b.Au).na(b.Oi).na(b.Dx).na(b.SF).na(b.vVa).na(b.Qr).na(b.TF).na(b.Object3D).na(b.fL).na(b.Ex).na(b.UF).na(b.Rr).na(b.OrthographicCamera).na(b.Bu).na(b.PerspectiveCamera).na(b.Sk).na(b.pb).na(b.Du).na(b.Tk).na(b.WF).na(b.Plane).na(b.UB).na(b.zc).na(b.Gx).na(b.Dl).na(b.Eu).na(b.Hx).na(b.oo).na(b.Sr).na(b.xd).na(b.Ix).na(b.ta).na(b.aG).na(b.Gg).na(b.Hh).na(b.Lm).na(b.wj).na(b.Fu).na(b.Scene).na(b.Wp).na(b.wd).na(b.XF).na(b.Sphere).na(b.YF).na(b.SpotLight).na(b.Hu).na(b.Sprite).na(b.Iu).na(b.xd).na(b.Ix).na(b.Kx).na(b.Ku).na(b.qo).na(b.XB).na(b.ro).na(b.cG).na(b.Mx).na(b.lL).na(b.lg).na(b.dG).na(b.Zp).na(b.mL).na(b.$p).na(b.nL).na(b.aq).na(b.oL).na(b.bq).ed(c.Camera, "Camera").ed(c.ro,"Viewport").ed(c.Ni,"ImageMaterial").ed(c.Kf,"CanvasMaterial").ed(c.ei,"LineMaterial").ed(c.xd,"SolidMaterial").ed(c.qo,"VideoMaterial").ed(c.Cx,"MaterialVariant").ed(c.cG,"ViewportPlaneGeometry").ed(c.wu,"Grid").ed(c.Group,"Group").ed(c.Line,"Line").ed(c.Mesh,"Mesh").ed(c.Plane,"Plane").ed(c.Kr,"Floor").ed(c.Sphere,"Sphere").ed(c.Sprite,"Sprite").ed(c.Oi,"Model").ed(c.mF,"ARAnchor").ed(c.oo,"ProjectedMaterial").ed(c.AmbientLight,"AmbientLight").ed(c.DirectionalLight,"DirectionalLight").ed(c.SpotLight, "SpotLight").ed(c.Scene,"Scene").ed(c.pb,"Parent").ed(c.AVa,"ObjectId").ed(c.Animation,"Animation").ed(c.QK,"CameraOffsetTransform").ed(c.gi,"ObjectTransform").ed(c.Ax,"FloorTransform").ed(c.jUa,"CameraControls").ed(c.Gm,"Dragging").ed(c.Selection,"Selection").ed(c.Dl,"PointerOverTransform").ed(c.Tk,"PixelScaleTransform").ed(c.ta,"Transform").ed(c.Hh,"TransformControls").ed(c.ko,"Area").ed(c.yu,"LineToTransform").ed(c.Camera.MK,"CameraAutoNearFar").ed(c.sF,"ClippingRect").ed(c.Scene.l_,"SceneFade").ed(c.AB, "Beacon").ed(c.wj,"Renderer");w.j=w.aA.sc("Renderer");w.nI=[];w.Eka=!1;w.bind(h.od,w.cp,w,!0);w.bind(h.jd,w.ap,w,!0);return w}P(r,q);r.prototype.Kb=function(){q.prototype.Kb.call(this);this.XG||(this.XG=new k,this.wa().tk(this.XG.cc()))};r.prototype.sc=function(t){return this.aA.sc(t)};r.prototype.dd=function(t){this.aA.dd(t)};r.prototype.Qa=function(){this.aA.Qa()};r.prototype.bIa=function(t){!(this.nI.indexOf(t)>=0)&&(this.nI.push(t),t=this.j.O(b.wj))&&(t.KY=this.nI.slice())};r.prototype.Fjb=function(t){t= this.nI.indexOf(t);!(t<0)&&(this.nI.splice(t,1),t=this.j.O(b.wj))&&(t.KY=this.nI.slice())};r.prototype.n$=function(t){this.aA.n$(t)};r.prototype.Ra=function(t){this.aA.Ra(t)};r.prototype.gK=function(){this.XG.o();this.aA.update();return d.HSa(this.j.getComponent(b.wj).renderer.domElement)};r.prototype.ina=function(){this.aA.update();return this.j.getComponent(b.wj).renderer.domElement.toDataURL("image/png")};r.prototype.cp=function(){this.t9a()};r.prototype.ap=function(){this.l$a()};r.prototype.t9a= function(){var t=this.j.getComponent(b.wj);if(!t&&(t=this.j.N(b.wj),t.eb=this.P,t.KY=this.nI.slice(),this.Ie.get(l)&&this.vbb)){this.oW=document.createElement("div");for(var u in p)this.oW.style[u]=p[u];this.wa().tk(this.oW)}};r.prototype.l$a=function(){this.j.getComponent(b.wj)&&(this.oW&&this.wa().X9(this.oW),this.oW=null,this.j.ka(b.wj))};return r}(n);var l=f([119,97,116,101,114,109,97,114,107]),p={};p[f([104,101,105,103,104,116])]=f([49,48,48,37]);p[f([119,105,100,116,104])]=f([49,48,48,37]); p[f([112,111,115,105,116,105,111,110])]=f([97,98,115,111,108,117,116,101]);p[f([116,111,112])]=0;p[f([108,101,102,116])]=0;p[f([98,97,99,107,103,114,111,117,110,100,73,109,97,103,101])]=f([117,114,108,40,34])+g.oWa+f([34,41]);p[f([98,97,99,107,103,114,111,117,110,100,80,111,115,105,116,105,111,110])]=f([99,101,110,116,101,114]);p[f([98,97,99,107,103,114,111,117,110,100,83,105,122,101])]=f([99,111,110,116,97,105,110]);p[f([112,111,105,110,116,101,114,69,118,101,110,116,115])]=f([110,111,110,101]); p[f([98,97,99,107,103,114,111,117,110,100,82,101,112,101,97,116])]=f([110,111,45,114,101,112,101,97,116]);p[f([111,112,97,99,105,116,121])]=.5;return a}); define("tdv/player/view/model3d/renderer/adapters/CameraAdapter","require exports tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/parser/ClassInfo tdv/player/view/webgl/components tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k,e){var b=["autoNearFar","autoNearFarTolerance","near","far","userInteracting"],c=["inTransition"],d={OrbitModel3DCamera:k.UF,FirstPersonModel3DCamera:k.MF,FlyOverModel3DCamera:k.NF},f={FirstPersonModel3DCamera:k.oL,OrbitModel3DCamera:k.mL,FlyOverModel3DCamera:k.nL}; return function(){function l(p,q,r,t){this.renderer=p;this.model=q;this.wb=r;this.Ea=t;this.eb=this.renderer.P;this.camera=null;this.enabled=!0;this.locked=!1;this.Vg=this.Vg.bind(this);this.h9=this.h9.bind(this);this.renderer.bind(n.$b,this.sl,this,!0);this.model.bind(n.L("camera"),this.a9,this,!0);this.eb.bind(n.L("isKeyboardTarget"),this.$pa,this,!0);e.M.bind(n.V,this.Ta,this,!0);this.a9();this.Ta();this.$pa();this.sl()}l.prototype.Vw=function(p){this.locked!==p&&(this.locked=p,this.laa())};l.prototype.Ra= function(p){this.enabled!==p&&(this.enabled=p,this.laa())};l.prototype.dispose=function(){this.setCamera(null);this.model.h(n.L("camera"),this.a9,this);this.eb.h(n.L("isKeyboardTarget"),this.$pa,this);this.renderer.h(n.$b,this.sl,this);e.M.h(n.V,this.Ta,this)};l.prototype.Ta=function(){this.Ea.O(k.PerspectiveCamera,!0).nj=e.Ag==this.eb.Rc().Jn()};l.prototype.a9=function(){this.setCamera(this.model.get("camera"))};l.prototype.setCamera=function(p){if(this.camera!==p){this.camera&&(this.$E(!1),h.da(this.camera, b,this.Vg),h.da(this.camera,c,this.h9),this.camera.set("inTransition",!1));if(this.camera=p)h.ba(this.camera,b,this.Vg,!0),h.ba(this.camera,c,this.h9,!0),this.gcb(),this.Ea.O(k.RK,!0).properties=this.camera;this.laa()}};l.prototype.laa=function(){var p,q,r,t,u=!!this.camera&&this.camera.get("inTransition");u&&this.enabled?t=this.Ea.O(k.Kx,!0):this.Ea.ka(k.Kx);for(var v in d){var w=d[v];!u&&this.enabled&&this.camera&&g.Oa(v,this.camera)?p=this.Ea.O(w,!0):this.Ea.ka(w);(w=f[v])&&(!u&&this.enabled&& this.camera&&g.Oa(v,this.camera)?q=this.Ea.O(w,!0):this.Ea.ka(w))}!u&&this.enabled?r=this.Ea.O(k.vB,!0):this.Ea.ka(k.vB);p&&(p.properties=this.camera,p.Rf=this.renderer.getParent(),p.yQa=this.eb.US,p.kE=this.eb.get("isKeyboardTarget"),p.locked=this.locked);t&&(t.properties=this.camera,t.pf=this.model.get("worldUnitToMeters"),t.locked=this.locked);q&&(q.properties=this.camera,q.pf=this.model.get("worldUnitToMeters"),q.Jk=this.eb.get("vrThumbstickRotationStep"),q.locked=this.locked);r&&(r.properties= this.camera,r.pf=this.model.get("worldUnitToMeters"),r.Jk=this.eb.get("arThumbstickRotationStep"),r.wb=this.wb,r.locked=this.locked)};l.prototype.$pa=function(){var p=this.cfb();p&&(p.kE=this.eb.get("isKeyboardTarget"))};l.prototype.cfb=function(){if(!this.camera)return null;var p=null,q;for(q in d){var r=d[q];this.camera&&g.Oa(q,this.camera)&&(p=this.Ea.O(r,!0))}return p};l.prototype.Vg=function(){if(this.camera){var p=this.Ea.O(k.PerspectiveCamera,!0);p.Vma=this.camera.get("autoNearFar");p.DIa= this.camera.get("autoNearFarTolerance");p.near=this.camera.get("near");p.far=this.camera.get("far");this.$E(this.camera.get("userInteracting"))}};l.prototype.h9=function(){this.laa()};l.prototype.sl=function(){var p=this.Ea.O(k.PerspectiveCamera,!0);p.width=this.renderer.Xh();p.height=this.renderer.Wh()};l.prototype.gcb=function(){var p=this.camera;p.set("fov",p.get("initialFov"));p.set("x",p.get("initialX"));p.set("y",p.get("initialY"));p.set("z",p.get("initialZ"));p.set("distance",p.get("initialDistance", 0));p.set("yaw",p.get("initialYaw"));p.set("pitch",p.get("initialPitch"))};l.prototype.$E=function(p){this.hF!=p&&(this.hF=p,this.camera&&this.camera.o(this.hF?n.Pua:n.Oua))};return l}()});define("tdv/player/script/OrbitLight",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("OrbitLight",m,function(){m.call(this)})}); define("tdv/player/view/model3d/renderer/adapters/ArrayAdapter",["require","exports","tdv/binding/BindingsHandler"],function(a,m,h){return function(){function n(){this.fY=this.fY.bind(this);this.U9=this.object=null;this.elements=[];this.XW=new Map;this.KPa=this.Xg=this.fe=this.filter=null}n.prototype.jB=function(g,k){this.dispose();this.object=g;this.U9=k;h.ba(this.object,[this.U9],this.fY,!0)};n.prototype.fY=function(g){g=g||[];this.filter&&(g=g.filter(this.filter));var k=this.elements,e=this.elements= g;k.forEach(function(b,c){var d=e.indexOf(b);if(d==-1){var f=this.XW.get(b);this.XW["delete"](b);this.Xg&&this.Xg(b,f)}else d!=c&&(f=this.XW.get(b),this.KPa&&(c=this.KPa(b,d,f,c),c!=f&&this.XW.set(b,c)))}.bind(this));e.forEach(function(b,c){k.indexOf(b)==-1&&this.fe&&(c=this.fe(b,c),this.XW.set(b,c))}.bind(this))};n.prototype.dispose=function(){this.object&&(h.da(this.object,[this.U9],this.fY),this.fY([]),this.U9=this.object=null)};return n}()}); define("tdv/player/view/model3d/renderer/adapters/lights/AmbientLightAdapter",["require","exports","tdv/binding/BindingsHandler","tdv/player/view/webgl/components"],function(a,m,h,n){var g=["color","intensity"];return function(){function k(e,b,c,d,f){this.Vg=this.Vg.bind(this);this.object=e;this.model=b;this.wb=c;this.zg=d;this.Ea=f;this.F=c.T.sc("AmbientLight");this.F.N(n.AmbientLight);this.F.N(n.pb).F=this.zg;h.ba(this.object,g,this.Vg,!0)}k.prototype.dispose=function(){h.da(this.object,g,this.Vg); this.F&&(this.F.T.dd(this.F),this.F=null)};k.prototype.Vg=function(){var e=this.F.O(n.AmbientLight);e.color=this.object.get("color");e.intensity=this.object.get("intensity")};return k}()}); define("tdv/player/view/model3d/renderer/adapters/lights/OrbitLightAdapter","require exports three.mod tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/webgl/components".split(" "),function(a,m,h,n,g,k,e){a=function(){function q(r,t,u,v,w){this.Vg=this.Vg.bind(this);this.object=r;this.model=t;this.wb=u;this.zg=v;this.Ea=w;this.F=this.wb.T.sc("OrbitLight");this.F.N(e.DirectionalLight).target=this.wb;this.F.N(e.pb);r=this.F.N(e.ta);r.mf="YXZ";r.positionZ= 10;this.fK=null;n.ba(this.object,b,this.Vg,!0)}q.prototype.dispose=function(){n.da(this.object,b,this.Vg);this.F&&(this.F.T.dd(this.F),this.F=null);this.fK&&(this.fK.dispose(),this.fK=null)};q.prototype.Vg=function(){var r=this.F.O(e.DirectionalLight);r.castShadow=this.object.get("castShadow");r.color=this.object.get("color");r.UW=this.object.get("displayHelper");r.intensity=this.object.get("intensity");r.mode=this.object.get("mode");var t=this.object.get("mode")=="fixed_to_target"?this.zg:this.Ea; this.F.getComponent(e.pb).F!=t&&(this.F.O(e.pb).F=t);t=this.object.get("yaw");var u=-this.object.get("pitch"),v=this.F.getComponent(e.ta);if(v.Yd!=u||v.fd!=t)v=this.F.O(e.ta),v.Yd=u,v.fd=t;r.Mra=this.object.get("shadowBias");r.Ora=this.object.get("shadowRadius");r.Nra=this.object.get("shadowMapSize");r.Zlb=this.object.get("shadowTolerance");this.object.get("rotationDraggable")!=!!this.fK&&(this.object.get("rotationDraggable")?this.fK=new c(this.object,this.model,this.wb):(this.fK.dispose(),this.fK= null))};return q}();var b="castShadow color displayHelper intensity mode pitch yaw rotationDraggable shadowBias shadowRadius shadowMapSize shadowTolerance".split(" "),c=function(){function q(r,t,u){this.LP=this.LP.bind(this);this.object=r;this.model=t;this.wb=u;this.M=new k;this.M.bind(g.V,this.ym,this,!0);this.Hw=this.wb.T.sc("OrbitLightTransformControls");this.Hw.N(e.ta).mf="YXZ";this.Hw.N(e.Group);this.Hw.N(e.pb).F=this.wb;this.CA=this.wb.T.sc("OrbitLightTransformControlsInner");this.CA.N(e.ta).mf= "YXZ";this.CA.N(e.Group);this.CA.N(e.pb).F=this.Hw;r=this.CA.N(e.Hh);r.translate=!1;r.rotate=!0;r.scale=!1;r.M=this.M;n.ba(this.object,d,this.LP,!0);n.ba(this.model,f,this.LP,!0)}q.prototype.dispose=function(){n.da(this.object,d,this.LP);n.da(this.model,f,this.LP);this.Hw&&(this.Hw.T.dd(this.Hw),this.Hw=null);this.CA&&(this.CA.T.dd(this.CA),this.CA=null)};q.prototype.LP=function(){if(this.object.get("mode")=="fixed_to_target"){var r=this.Hw.O(e.ta);r.fd=0;r.Yd=0}else r=this.Hw.O(e.ta),r.fd=-this.model.get("camera").get("yaw"), r.Yd=this.model.get("camera").get("pitch");r.Xe=0;r=this.CA.O(e.ta);r.fd=this.object.get("yaw");r.Yd=-this.object.get("pitch");r.Xe=0};q.prototype.ym=function(r){l.setFromQuaternion(r.data.quaternion,"YXZ");this.object.set({yaw:l.y*p,pitch:-l.x*p});this.object.o(g.Jm)};return q}(),d=["mode","yaw","pitch"],f=["camera.yaw","camera.pitch"],l=new h.Euler,p=180/Math.PI;return a}); define("tdv/player/view/model3d/renderer/adapters/lights/SpotLightAdapter","require exports three.mod tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/webgl/components".split(" "),function(a,m,h,n,g,k,e){a=function(){function f(l,p,q,r,t){this.Vg=this.Vg.bind(this);this.object=l;this.model=p;this.wb=q;this.zg=r;this.Ea=t;this.F=q.T.sc("SpotLight");this.F.N(e.SpotLight);this.F.N(e.pb).F=this.zg;this.F.N(e.ta).mf="YXZ";this.vr=new k;this.vr.bind(g.V,this.ym, this,!0);n.ba(this.object,b,this.Vg,!0)}f.prototype.dispose=function(){n.da(this.object,b,this.Vg);this.F.T.dd(this.F);this.F=null};f.prototype.Vg=function(){var l=this.F.O(e.SpotLight);l.color=this.object.get("color");l.intensity=this.object.get("intensity");l.distance=this.object.get("distance");l.UW=this.object.get("displayHelper");l.angle=this.object.get("angle");l.penumbra=this.object.get("penumbra");l.decay=this.object.get("decay");l.castShadow=this.object.get("castShadow");l.Nra=this.object.get("shadowMapSize"); l.Mra=this.object.get("shadowBias");l.Ora=this.object.get("shadowRadius");l=this.object.get("yaw");var p=-this.object.get("pitch"),q=this.F.getComponent(e.ta);if(q.Yd!=p||q.fd!=l||q.positionX!=this.object.get("x")||q.positionY!=this.object.get("y")||q.positionZ!=this.object.get("z"))q=this.F.O(e.ta),q.Yd=p,q.fd=l,q.translationX=this.object.get("x"),q.translationY=this.object.get("y"),q.Ze=this.object.get("z");this.object.get("rotationDraggable")||this.object.get("positionDraggable")?(l=this.F.O(e.Hh, !0),l.M=this.vr,l.rotate=this.object.get("rotationDraggable"),l.translate=this.object.get("positionDraggable"),l.scale=!1):this.F.ka(e.Hh)};f.prototype.ym=function(l){c.setFromQuaternion(l.data.quaternion,"YXZ");this.object.set({x:l.data.position.x,y:l.data.position.y,z:l.data.position.z,yaw:c.y*d,pitch:-c.x*d});this.object.o(g.Jm)};return f}();var b="color intensity distance angle penumbra displayHelper decay castShadow shadowMapSize shadowBias shadowRadius x y z pitch yaw rotationDraggable positionDraggable".split(" "), c=new h.Euler,d=180/Math.PI;return a}); define("tdv/player/view/model3d/renderer/adapters/lights/LightAdapterFactory","require exports tdv/player/parser/ClassInfo tdv/player/view/model3d/renderer/adapters/lights/AmbientLightAdapter tdv/player/view/model3d/renderer/adapters/lights/OrbitLightAdapter tdv/player/view/model3d/renderer/adapters/lights/SpotLightAdapter".split(" "),function(a,m,h,n,g,k){return function(){function e(){}e.rna=function(b,c,d,f,l){return h.Oa("AmbientLight",b)?new n(b,c,d,f,l):h.Oa("OrbitLight",b)?new g(b,c,d,f,l): h.Oa("SpotLight",b)?new k(b,c,d,f,l):null};return e}()}); define("tdv/player/view/model3d/renderer/adapters/lights/LightsAdapter","require exports tdv/player/view/util/Device tdv/player/script/OrbitLight tdv/player/view/model3d/renderer/adapters/ArrayAdapter tdv/player/view/model3d/renderer/adapters/lights/LightAdapterFactory".split(" "),function(a,m,h,n,g,k){return function(){function e(b,c,d,f){this.Ona=this.pA=null;this.model=b;this.wb=c;this.zg=d;this.Ea=f;this.M8=new g;this.M8.fe=this.vOa.bind(this);this.M8.Xg=this.wOa.bind(this);this.M8.jB(this.model, "lights");this.ecb()}e.prototype.dispose=function(){this.M8.dispose();this.Cjb()};e.prototype.vOa=function(b){return k.rna(b,this.model,this.wb,this.zg,this.Ea)};e.prototype.wOa=function(b,c){c.dispose()};e.prototype.ecb=function(){var b,c,d,f;h.kf()&&this.model.get("backgroundPanoramaURL")&&(this.pA=new n,(b=this.pA)===null||b===void 0||b.set("intensity",.001),(c=this.pA)===null||c===void 0||c.set("castShadow",!0),(d=this.pA)===null||d===void 0||d.set("shadowMapWidth",64),(f=this.pA)===null||f=== void 0||f.set("shadowTolerance",4),this.Ona=this.vOa(this.pA))};e.prototype.Cjb=function(){this.pA&&(this.wOa(this.pA,this.Ona),this.Ona=this.pA=null)};return e}()}); define("tdv/player/view/model3d/renderer/adapters/FloorAdapter",["require","exports","tdv/binding/BindingsHandler","tdv/constants/RenderOrder","tdv/player/view/webgl/components"],function(a,m,h,n,g){var k=["floorColor","floorHeight","floorOpacity","floorRadius"];return function(){function e(b,c,d){this.model=b;this.object=c;this.wb=d;this.Vg=this.Vg.bind(this);this.F=d.T.sc("Floor");this.F.N(g.Kr);this.F.N(g.pb).F=this.wb;h.ba(this.object,k,this.Vg,!0)}e.prototype.dispose=function(){h.da(this.object, k,this.Vg);this.F.T.dd(this.F);this.F=null};e.prototype.Vg=function(){var b=this.object.get("floorColor"),c=this.object.get("floorOpacity"),d=this.object.get("floorHeight"),f=this.object.get("floorRadius");if(b&&c>0){var l=this.F.O(g.Kr,!0);l.color=b;l.opacity=c;l.height=d;l.radius=f;l.renderOrder=this.model==this.object?n.mVa:n.wVa}else this.F.ka(g.Kr)};return e}()}); define("tdv/player/view/model3d/renderer/adapters/objects/ObjectAdapterFactory",["require","exports","tdv/player/parser/ClassInfo"],function(a,m,h){return function(){function n(){}n.Wt=function(g,k){n.t6[g]=k};n.pgb=function(g){for(var k in n.t6)if(h.Oa(k,g))return!0;return!1};n.rna=function(g,k,e,b,c){for(var d in n.t6)if(h.Oa(d,g))return new n.t6[d](g,k,e,b,c);return null};n.t6={};return n}()}); define("tdv/player/view/model3d/renderer/adapters/objects/ObjectArrayAdapter",["require","exports","tdv/player/view/model3d/renderer/adapters/ArrayAdapter","tdv/player/view/model3d/renderer/adapters/objects/ObjectAdapterFactory"],function(a,m,h,n){return function(){function g(k,e,b,c,d){this.Vjb=k;this.model=e;this.wb=b;this.Fpa=c;this.renderer=d;this.filter=this.filter.bind(this);this.fe=this.fe.bind(this);this.Xg=this.Xg.bind(this);this.NJ=new h;this.NJ.filter=this.filter;this.NJ.fe=this.fe;this.NJ.Xg= this.Xg;this.NJ.jB(this.model,"objects")}g.prototype.filter=function(k){return n.pgb(k)?!0:!1};g.prototype.fe=function(k){return n.rna(k,this.Vjb,this.wb,this.Fpa,this.renderer)};g.prototype.Xg=function(k,e){e.dispose()};g.prototype.dispose=function(){this.NJ.dispose()};return g}()}); define("tdv/player/view/model3d/renderer/adapters/objects/SpritesEnabledAdapter",["require","exports","tdv/constants/EventName","tdv/player/parser/ClassInfo"],function(a,m,h,n){return function(){function g(k,e){this.lT=k.lT;this.Fa=e;this.fl=[];this.lT.bind(h.L("spritesEnabled"),this.TCa,this,!0);this.Fa.bind(h.L("objects"),this.SH,this,!0);this.za()}g.prototype.dispose=function(){this.lT.h(h.L("spritesEnabled"),this.TCa,this);this.Fa.h(h.L("objects"),this.SH,this);this.fl.forEach(function(k){k.ira(!1)}); this.fl=[]};g.prototype.TCa=function(){this.za()};g.prototype.SH=function(){this.za()};g.prototype.za=function(){var k=[];this.lT.get("spritesEnabled")===!1&&k.push("SpriteModel3DObject");var e=this.Fa.get("objects");this.fl.forEach(function(b){e.indexOf(b)==-1&&b.ira(!1)});this.fl=e;this.fl.forEach(function(b){var c=k.some(function(d){return n.Oa(d,b)});b.ira(c)})};return g}()}); define("tdv/player/view/model3d/renderer/adapters/objects/UserInteractionObjectsVisibleAdapter",["require","exports","tdv/binding/BindingsHandler"],function(a,m,h){var n=["camera","objects","postprocessing"],g=["userInteracting","moving"];return function(){function k(e){this.model=e;this.camera=null;this.qj=[];this.PJ=this.PJ.bind(this);this.c9=this.c9.bind(this);h.ba(this.model,n,this.PJ,!0)}k.prototype.dispose=function(){this.UE([])};k.prototype.PJ=function(){this.setCamera(this.model.get("camera")); this.UE([].concat(this.model.get("objects"),this.model.get("postprocessing")))};k.prototype.setCamera=function(e){this.camera!==e&&(this.camera&&h.da(this.camera,g,this.c9),(this.camera=e)&&h.ba(this.camera,g,this.c9,!0))};k.prototype.c9=function(){this.rQ()};k.prototype.UE=function(e){this.qj!=e&&(e||(e=[]),this.qj&&this.qj.forEach(function(b){e.indexOf(b)==-1&&(b.$E&&b.$E(!1),b.Gp&&b.Gp(!1))}.bind(this)),this.qj=e,this.rQ())};k.prototype.rQ=function(){if(this.qj&&this.camera){var e=this.camera.get("userInteracting"), b=this.camera.get("moving");this.qj.forEach(function(c){c.$E&&c.$E(e);c.Gp&&c.Gp(b)}.bind(this))}};return k}()}); define("tdv/player/view/model3d/renderer/adapters/objects/XRObjectsVisibleAdapter","require exports tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/view/util/XR tdv/player/view/util/xr/pointer/PointerState".split(" "),function(a,m,h,n,g,k){var e=["objects"];return function(){function b(c){this.model=c;this.qj=[];this.PJ=this.PJ.bind(this);g.M.bind(n.V,this.Ta,this,!0);g.M.bind(n.Zd,this.MP,this,!0);h.ba(this.model,e,this.PJ,!0);this.Ta();this.MP()}b.prototype.dispose=function(){g.M.h(n.V, this.Ta,this);g.M.h(n.Zd,this.MP,this);this.UE([])};b.prototype.PJ=function(){this.UE([].concat(this.model.get("objects")))};b.prototype.UE=function(c){this.qj!=c&&(c||(c=[]),this.qj&&this.qj.forEach(function(d){c.indexOf(d)==-1&&(d.r$&&d.r$(!0),d.dB&&d.dB(!1))}.bind(this)),this.qj=c,this.rQ())};b.prototype.Ta=function(){this.Jkb(g.isPresenting&&g.Cm==g.El.Yp,g.isPresenting&&g.Cm==g.El.Np)};b.prototype.MP=function(){this.s$(g.isPresenting&&g.Cm==g.El.Yp&&g.ud.length===1&&g.ud[0].type===k.WB)};b.prototype.Jkb= function(c,d){if(this.Va!==c||this.EMa!==d)this.Va=c,this.EMa=d,this.rQ()};b.prototype.s$=function(c){this.FMa!==c&&(this.FMa=c,this.rQ())};b.prototype.rQ=function(){if(this.qj){var c=this.Va===!1,d=this.Va===!0,f=this.EMa===!0,l=this.FMa===!0;this.qj.forEach(function(p){p.r$&&p.r$(c);p.dB&&p.dB(d);p.gRa&&p.gRa(f);p.s$&&p.s$(l)}.bind(this))}};return b}()}); define("tdv/player/view/model3d/renderer/adapters/BaseModelAdapter","require exports tdv/binding/BindingsHandler tdv/player/view/webgl/components tdv/player/view/model3d/renderer/adapters/FloorAdapter tdv/player/view/model3d/renderer/adapters/objects/ObjectArrayAdapter tdv/player/view/model3d/renderer/adapters/objects/SpritesEnabledAdapter tdv/player/view/model3d/renderer/adapters/objects/UserInteractionObjectsVisibleAdapter tdv/player/view/model3d/renderer/adapters/objects/XRObjectsVisibleAdapter".split(" "),function(a, m,h,n,g,k,e,b,c){var d=["variant"];return function(){function f(l,p,q,r){this.object=l;this.model=p;this.zg=q;this.renderer=r;this.z9=this.z9.bind(this);this.F=this.zg.T.sc("Model");l=this.F.N(n.Oi);this.eJ=l.eJ=this.zg.T.sc("ModelContent");this.eJ.N(n.pb).F=this.F;l.M=this.object;this.object.get("preload")&&(l.MPa=this.model.S7().hw());l.Ap=this.model.O7().hw();l.Gpa=this.object.get("model");l.properties=this.object;l.eb=this.renderer.P;l=this.F.N(n.wd);l.M=this.object;l.lt=!0;l.Xt=!0;this.F.N(n.pb).F= this.zg;this.F.N(n.ta);h.ba(this.object,d,this.z9,!0);this.NJ=new k(this.model,this.object,this.F,this.eJ,this.renderer);this.gmb=new e(this.renderer,this.object);this.fob=new b(this.model);this.vob=new c(this.model);this.Feb=new g(this.model,this.object,this.F)}f.prototype.mj=function(){return this.F};f.prototype.dispose=function(){h.da(this.object,d,this.z9);this.F.T.dd(this.eJ);this.F.T.dd(this.F);this.NJ.dispose();this.gmb.dispose();this.fob.dispose();this.vob.dispose();this.Feb.dispose()};f.prototype.z9= function(){var l=this.object.get("variant");l?this.F.O(n.Cx,!0).name=l:this.F.ka(n.Cx)};return f}()}); define("tdv/player/view/model3d/renderer/adapters/Mixins","require exports tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/Priority tdv/player/view/webgl/components three.mod".split(" "),function(a,m,h,n,g,k,e){var b=["collidable"],c="canvas canvasTimestamp encoding depthTest hidden opacity".split(" "),d=["image"],f=["color","depthTest","opacity","width"],l=["parentId"],p=["maxWorldToPixelScale","minWorldToPixelScale","scale"],q="x y z normalX normalY normalZ upX upY upZ width height attachToParent".split(" "), r=new e.Matrix4,t=new e.Vector3,u=new e.Vector3,v=new e.Vector3,w=new e.Euler,y=180/Math.PI,x="x y z positionX positionY positionZ rotationX rotationY rotationZ scale translationX translationY translationZ attachToParent".split(" "),z=["clickEnabled","rollOverEnabled","transparentAreaActive","useHandCursor"],A=["castShadow","receiveShadow"],D=["color","depthTest","hidden","opacity"],F=["video"],C=["hidden","enabled","opacity"];return{SK:function(B){return function(H){function E(){return H!==null&& H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);h.ba(this.object,b,this.oOa||(this.oOa=this.fib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,b,this.oOa);H.prototype.Xc.call(this)};E.prototype.fib=function(){this.object.get("collidable")?this.F.ka(k.SF):this.F.N(k.SF)};return E}(B)},Kf:function(B){return function(H){function E(){return H!==null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);this.F.N(k.Kf); h.ba(this.object,c,this.nOa||(this.nOa=this.eib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,c,this.nOa);H.prototype.Xc.call(this)};E.prototype.eib=function(){var G=this.F.O(k.Kf);G.source=this.object.get("canvas");G.uK=this.object.get("canvasTimestamp");G.opacity=this.object.get("opacity");G.isSprite=!1;G.hidden=this.object.get("hidden");G.depthTest=this.object.get("depthTest");G.colorSpace=this.object.get("encoding")=="srgb"?e.SRGBColorSpace:e.LinearSRGBColorSpace};return E}(B)}, Ni:function(B){return function(H){function E(){return H!==null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);this.Ap=this.model.O7().hw(.1);this.object.get("preload")&&this.model.S7().rO(this.Ap,.1);var G=this.F.N(k.Ni);G.properties=this.object;G.M=this.object;G.isSprite=!1;G.priority=this.object.get("preload")?g.QF:g.Jta;G.Ap=this.Ap;h.ba(this.object,d,this.tOa||(this.tOa=this.IP.bind(this)),!0)};E.prototype.Xc=function(){this.model.O7().WP(this.Ap);this.model.S7().WP(this.Ap); h.da(this.object,d,this.tOa);H.prototype.Xc.call(this)};E.prototype.IP=function(){this.F.O(k.Ni).ww=this.object.get("image")};return E}(B)},ei:function(B){return function(H){function E(){return H!==null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);this.F.N(k.ei);h.ba(this.object,f,this.xOa||(this.xOa=this.rib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,f,this.xOa);H.prototype.Xc.call(this)};E.prototype.rib=function(){var G=this.F.O(k.ei); G.color=this.object.get("color");G.opacity=this.object.get("opacity");G.depthTest=this.object.get("depthTest");G.width=this.object.get("width")};return E}(B)},Plane:function(B){return function(H){function E(){return H!==null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);this.F.N(k.Plane);this.F.N(k.ta);h.ba(this.object,q,this.NOa||(this.NOa=this.zib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,q,this.NOa);H.prototype.Xc.call(this)};E.prototype.zib= function(){t.set(0,0,0);v.set(this.object.get("upX",0),this.object.get("upY",1),this.object.get("upZ",0));u.set(this.object.get("normalX",0),this.object.get("normalY",0),this.object.get("normalZ",1)).multiplyScalar(-1);r.lookAt(t,u,v);w.setFromRotationMatrix(r);var G=this.F.O(k.ta);G.bA=this.object.get("attachToParent");G.translationX=this.object.get("x",0);G.translationY=this.object.get("y",0);G.Ze=this.object.get("z",0);G.Le=this.object.get("width",1);G.Ye=this.object.get("height",1);G.Yd=w.x*y; G.fd=w.y*y;G.Xe=w.z*y;G.positionX=0;G.positionY=0;G.positionZ=0};return E}(B)},pb:function(B){return function(H){function E(){return H!==null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);this.F.N(k.pb).F=this.wb;h.ba(this.object,l,this.JOa||(this.JOa=this.xib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,l,this.JOa);H.prototype.Xc.call(this)};E.prototype.xib=function(){this.F.O(k.pb).id=this.object.get("parentId")};return E}(B)},NVa:function(B){return function(H){function E(){return H!== null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);h.ba(this.object,p,this.MOa||(this.MOa=this.yib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,p,this.MOa);H.prototype.Xc.call(this)};E.prototype.yib=function(){var G=this.object.get("maxWorldToPixelScale"),N=this.object.get("minWorldToPixelScale");if(G!==void 0||N!==void 0){var O=this.F.O(k.Tk,!0);O.oE=G;O.pE=N;O.Le=O.Ye=O.Gh=this.object.get("scale")}else(O=this.F)===null||O===void 0||O.ka(k.Tk)}; return E}(B)},rua:function(B){return function(H){function E(){return H!==null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);this.F.N(k.ta);h.ba(this.object,x,this.OOa||(this.OOa=this.Aib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,x,this.OOa);H.prototype.Xc.call(this)};E.prototype.Aib=function(){var G=this.F.O(k.ta);G.bA=this.object.get("attachToParent");G.positionX=this.object.get("x",this.object.get("positionX",0));G.positionY=this.object.get("y", this.object.get("positionY",0));G.positionZ=this.object.get("z",this.object.get("positionZ",0));G.mf=this.object.get("rotationOrder","XYZ");G.Yd=this.object.get("rotationX",0);G.fd=this.object.get("rotationY",0);G.Xe=this.object.get("rotationZ",0);G.scale=this.object.get("scale",1);G.translationX=this.object.get("translationX",0);G.translationY=this.object.get("translationY",0);G.Ze=this.object.get("translationZ",0)};return E}(B)},wd:function(B){return function(H){function E(){return H!==null&&H.apply(this, arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);h.ba(this.object,z,this.POa||(this.POa=this.Fib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,z,this.POa);H.prototype.Xc.call(this)};E.prototype.Fib=function(){var G=this.object.get("clickEnabled"),N=this.object.get("rollOverEnabled");if(G!==!1&&N!==!1)this.F.ka(k.Qr);else{var O=this.F.N(k.Qr);O.qsa=G===!1;O.rsa=N===!1}G===!1&&N===!1?this.F.ka(k.wd):(O=this.F.O(k.wd,!0),O.pB=this.object.get("useHandCursor"), O.eF=this.object.get("transparentAreaActive"),O.M=this.object,O.lt=!!G,O.Xt=!!N)};return E}(B)},jL:function(B){return function(H){function E(){return H!==null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);h.ba(this.object,A,this.ROa||(this.ROa=this.Lib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,A,this.ROa);H.prototype.Xc.call(this)};E.prototype.Lib=function(){var G=this.F.O(k.gi,!0);G.castShadow=this.object.get("castShadow");G.receiveShadow= this.object.get("receiveShadow")};return E}(B)},xd:function(B){return function(H){function E(){return H!==null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);this.F.N(k.xd);this.visible=!1;h.ba(this.object,D,this.TOa||(this.TOa=this.Mib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,D,this.TOa);this.ig(!1);H.prototype.Xc.call(this)};E.prototype.Mib=function(){var G=this.F.O(k.xd);G.color=this.object.get("color");G.opacity=this.object.get("hidden")? 0:this.object.get("opacity");G.depthTest=this.object.get("depthTest");this.ig(G.opacity>0)};E.prototype.ig=function(G){this.visible!=G&&((this.visible=G)?this.object.o(n.od):this.object.o(n.jd))};return E}(B)},qo:function(B){return function(H){function E(){return H!==null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);var G=this.F.N(k.qo);G.properties=this.object;G.M=this.object;h.ba(this.object,F,this.VOa||(this.VOa=this.TJ.bind(this)),!0)};E.prototype.Xc= function(){h.da(this.object,F,this.VOa);H.prototype.Xc.call(this)};E.prototype.TJ=function(){this.F.O(k.qo).Nsa=this.object.get("video")};return E}(B)},F_:function(B){return function(H){function E(){return H!==null&&H.apply(this,arguments)||this}P(E,H);E.prototype.Wc=function(){H.prototype.Wc.call(this);h.ba(this.object,C,this.WOa||(this.WOa=this.Oib.bind(this)),!0)};E.prototype.Xc=function(){h.da(this.object,C,this.WOa);H.prototype.Xc.call(this)};E.prototype.Oib=function(){var G=this.F.O(k.gi,!0); G.opacity=this.object.get("enabled")&&!this.object.get("hidden")?this.object.get("opacity"):0;G.M=this.object};return E}(B)}}}); define("tdv/player/view/model3d/renderer/adapters/ModelAdapter","require exports three.mod tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/model3d/renderer/adapters/BaseModelAdapter tdv/player/view/model3d/renderer/adapters/Mixins tdv/player/view/webgl/components".split(" "),function(a,m,h,n,g,k,e,b,c){a=function(p){function q(r,t,u,v){r=p.call(this,r,t,u,v)||this;r.RA=r.RA.bind(r);r.wb=r.F;r.vr=new k;r.vr.bind(g.V,r.ym,r,!0);n.ba(r.object,d,r.RA,!0); r.Wc();return r}P(q,p);q.prototype.Wc=function(){};q.prototype.Xc=function(){};q.prototype.dispose=function(){n.da(this.object,d,this.RA);this.vr.h(g.V,this.ym,this);this.vr=null;this.Xc();p.prototype.dispose.call(this)};q.prototype.ym=function(r){var t=this.model.get("model");t.set("translationX",r.data.position.x);t.set("translationY",r.data.position.y);t.set("translationZ",r.data.position.z);f.setFromQuaternion(r.data.quaternion,t.get("rotationOrder"));t.set("rotationX",f.x*l);t.set("rotationY", f.y*l);t.set("rotationZ",f.z*l);r.data.scale>.001&&t.set("scale",r.data.scale);this.object.o(g.Jm)};q.prototype.RA=function(){if(this.object.get("positionDraggable")||this.object.get("rotationDraggable")||this.object.get("scaleDraggable")){var r=this.eJ.O(c.Hh,!0);r.translate=this.object.get("positionDraggable")||!1;r.rotate=this.object.get("rotationDraggable")||!1;r.scale=this.object.get("scaleDraggable")||!1;r.M=this.vr}else this.eJ.ka(c.Hh)};return q}(e);var d=["positionDraggable","rotationDraggable", "scaleDraggable"],f=new h.Euler,l=180/Math.PI;return b.jL(a)}); define("tdv/view/util/MeasureText",["require","exports","tdv/view/util/Font"],function(a,m,h){function n(e,b,c){c===void 0&&(c=null);k.style.fontFamily=h.qA(b.fontFamily);k.style.font=h.V7(b);k.innerHTML=e;document.body.appendChild(k);var d=new g(Math.ceil(k.clientWidth),Math.ceil(k.clientHeight));document.body.removeChild(k);c&&(c.font=h.V7(b),e=c.measureText(e).width,e>0&&(d.height*=e/d.width,d.width=e));return d}var g=function(){return function(e,b){this.width=e;this.height=b}}(),k=document.createElement("div"); k.style.display="inline-block";k.style.margin="0";k.style.padding="0";k.style.whiteSpace="nowrap";n.lca=function(){return function(){this.fontFamily="Arial";this.fontSize="12px";this.fontWeight="400";this.fontStyle="normal"}}();return n}); define("tdv/player/canvas/MenuCanvas",["require","exports","tdv/view/util/MeasureText","tdv/view/util/Font"],function(a,m,h,n){var g=function(){function e(b,c,d){this.nh=b;this.item=c;this.label=c.get("label");this.fontFamily=this.nh.get("fontFamily","Arial");this.fontSize=Math.round(12*d)+"px";this.backgroundColor=this.nh.get("backgroundColor","#000000");this.sQa=this.nh.get("rollOverBackgroundColor",this.backgroundColor);this.bkb=this.nh.get("selectedBackgroundColor",this.sQa);this.xt=this.nh.get("fontColor", "#000000");this.tQa=this.nh.get("rollOverFontColor",this.xt);this.ckb=this.nh.get("selectedFontColor",this.tQa);this.DSa=this.CSa=this.ju=this.mu=this.height=this.width=this.left=this.top=0;this.status=!1;this.Yoa=!0}e.prototype.Ynb=function(){var b=new h.lca;b.fontFamily=this.fontFamily;b.fontSize=this.fontSize;b=h(this.label,b);this.mu=b.width;this.ju=b.height};e.prototype.Alb=function(b){this.status!==b&&(this.status=b,this.Yoa=!0)};e.prototype.qeb=function(b){if(this.Yoa){this.Yoa=!1;switch(this.status){case "over":var c= this.sQa;var d=this.tQa;break;case "selected":c=this.bkb;d=this.ckb;break;default:c=this.backgroundColor,d=this.xt}b.clearRect(this.left,this.top,this.width,this.height);b.fillStyle=c;b.fillRect(this.left,this.top,this.width,this.height);b.fillStyle=d;b.font=this.fontSize+" "+n.qA(this.fontFamily);b.textBaseline="middle";b.textAlign="center";b.fillText(this.label,Math.round(this.CSa),Math.round(this.DSa));return!0}return!1};return e}(),k=180/Math.PI;return function(){function e(b,c){this.nh=b;this.items= c.map(this.xdb.bind(this));this.wP=this.xP=this.Rj=this.Sj=0;this.Kk();this.canvas=document.createElement("canvas");this.canvas.width=this.Sj;this.canvas.height=this.Rj;this.context=this.canvas.getContext("2d");this.selectedIndex=this.Iw=-1}e.prototype.xdb=function(b){return new g(this.nh,b,3)};e.prototype.dgb=function(b){return this.Sj/3*b/300};e.prototype.ofb=function(b){return this.Rj/3*b/300};e.prototype.jf=function(){return 2*Math.atan2(this.Sj/3*.5,300)*k};e.prototype.fg=function(){return this.Sj}; e.prototype.wg=function(){return this.Rj};e.prototype.If=function(){return this.canvas};e.prototype.Kk=function(){var b=0,c=0;this.items.forEach(function(p){p.Ynb();b=Math.max(p.mu,b);c=Math.max(p.ju,c)}.bind(this));this.xP=b+30;this.wP=c+30;var d=0,f=0,l=0;this.XX=20;this.items.length>20&&(this.XX=Math.ceil(this.items.length/Math.ceil(this.items.length/20)));this.items.forEach(function(p){l>=this.XX&&(l=0,f+=this.xP,d=0);p.left=f;p.top=d;p.CSa=f+this.xP*.5;p.DSa=d+this.wP*.5;p.width=this.xP;p.height= this.wP;l+=1;d+=this.wP}.bind(this));this.Sj=Math.ceil(this.items.length/this.XX)*this.xP;this.Rj=Math.min(this.XX,this.items.length)*this.wP};e.prototype.update=function(){for(var b=!1,c=0;c=0&&b=0&&c=this.items.length&&(d=-1));return d}; e.prototype.VE=function(b){this.Iw=b};e.prototype.Zw=function(b){this.selectedIndex=b};e.prototype.clear=function(){this.items=this.canvas=this.context=this.nh=null};return e}()}); define("tdv/player/view/model3d/renderer/adapters/MenuAdapter","require exports three.mod tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/RenderOrder tdv/player/canvas/MenuCanvas tdv/events/EventDispatcher tdv/player/view/util/XR tdv/player/view/webgl/components tdv/view/util/Ease tdv/view/util/EaseDimension tdv/view/util/Animation".split(" "),function(a,m,h,n,g,k,e,b,c,d,f,l,p){function q(A){return c.isPresenting?-v.setFromQuaternion(c.xl,"YXZ").y*x:A.get("camera").get("yaw")}function r(A){return c.isPresenting? v.setFromQuaternion(c.xl,"YXZ").x*x:A.get("camera").get("pitch")}a=function(){function A(D,F,C){this.model=D;this.wb=F;this.Ea=C;this.D9=this.D9.bind(this);this.Pn=[];this.DP=[];this.ir=!1;c.M.bind(g.V,this.Ta,this,!0);n.ba(this.model,["xrMenu"],this.D9,!0)}A.prototype.dispose=function(){n.da(this.model,["xrMenu"],this.D9);c.M.h(g.V,this.Ta,this);this.ya()};A.prototype.Ta=function(){this.oTa()};A.prototype.D9=function(){this.oTa()};A.prototype.oTa=function(){var D=c.isPresenting?this.model.get("xrMenu"): null;D!=this.nh&&(this.nh&&this.ya(),(this.nh=D)&&this.Wa())};A.prototype.Wa=function(){this.bw=this.Ea.T.sc("CameraOffsetGroup");this.bw.N(d.Group);this.bw.N(d.ta).easing=0;var D=this.bw.N(d.QK);D.Ea=this.Ea;D.rotate=!1;this.bw.N(d.pb).F=this.wb;this.Dw=new t(this.model,this.nh,this.bw);this.Dw.bind(g.ma,this.sib,this,!0);this.Dw.bind(g.Eb,this.tib,this,!0);this.Dw.bind(g.uc,this.uib,this,!0)};A.prototype.sib=function(){this.gSa();this.ZHa(this.nh,0);this.Dw.ig(!1)};A.prototype.ZHa=function(D,F){for(;this.Pn.length> F;)this.Dna(this.Pn.pop());this.Pn.push(this.ydb(D))};A.prototype.pJa=function(){var D;for((D=this.Dw)===null||D===void 0||D.ig(!0);this.Pn.length;)this.Dna(this.Pn.pop())};A.prototype.ydb=function(D){D=new u(this.model,this.nh,D,this.bw,this.Pn.length>0?this.Pn[this.Pn.length-1]:this.Dw);if(this.Pn.length>0){var F=this.Pn[this.Pn.length-1];var C=F.Ic();F=F.Jc()+F.jf()/2+1+D.jf()/2;D.setPosition(F,C)}else F=q(this.model),C=r(this.model);D.setPosition(F,C);D.Cpa.get("children",[]).forEach(function(B){B.bind(g.ma, this.BOa,this,!0)},this);D.bind(g.uc,this.AOa,this,!0);D.bind(g.Eb,this.zOa,this,!0);return D};A.prototype.Dna=function(D){D.Cpa.get("children",[]).forEach(function(F){F.h(g.ma,this.BOa,this)},this);D.h(g.uc,this.AOa,this);D.h(g.Eb,this.zOa,this);this.Hqa(D);D.dispose()};A.prototype.BOa=function(D){D=D.source;if(D.get("children",[]).length){var F=this.Ceb(D);this.ZHa(D,F+1)}else this.pJa()};A.prototype.AOa=function(D){this.Vbb(D.source)};A.prototype.zOa=function(D){this.Hqa(D.source)};A.prototype.uib= function(){this.sQ()};A.prototype.tib=function(){this.sQ()};A.prototype.Vbb=function(D){this.Hqa(D);this.DP.push(D);this.DP.length>0&&this.rmb();this.sQ()};A.prototype.Hqa=function(D){this.DP=this.DP.filter(function(F){return F!=D});this.DP.length==0&&this.gSa();this.sQ()};A.prototype.sQ=function(){this.jRa(this.DP.length>0||this.Dw.ir())};A.prototype.jRa=function(D){this.ir!==D&&((this.ir=D)?(this.model.get("camera").SQa(!0),this.model.get("camera").qRa(!0),this.w$&&(clearTimeout(this.w$),this.w$= 0)):this.w$=setTimeout(function(){this.w$=0;this.model.get("camera").SQa(!1);this.model.get("camera").qRa(!1)}.bind(this),100))};A.prototype.gSa=function(){this.V6||(this.V6=setTimeout(this.pJa.bind(this),3E3))};A.prototype.rmb=function(){this.V6&&(clearTimeout(this.V6),this.V6=0)};A.prototype.Ceb=function(D){return this.Pn.findIndex(function(F){return F.Cpa.get("children",[]).indexOf(D)>=0?!0:!1})};A.prototype.ya=function(){this.bw&&(this.bw.T.dd(this.bw),this.bw=null);this.Dw&&(this.Dw.dispose(), this.Dw=null);for(;this.Pn.length;)this.Dna(this.Pn.pop());this.jRa(!1)};return A}();b=function(A){function D(F,C,B,H,E){var G=A.call(this)||this;G.model=F;G.nh=C;G.Q8=B;G.zg=H;G.Ew=new e(G.nh,G.Q8);G.Xa=0;G.pitch=0;G.yf=new f("linear",[new l("coef",0,1)],150);G.Iw=-1;G.selectedIndex=-1;G.We=!1;E?(G.rZ=E===null||E===void 0?void 0:E.Jc(),G.Sra=E===null||E===void 0?void 0:E.Ic()):(G.rZ=q(G.model),G.Sra=r(G.model));G.F=G.zg.T.sc("MenuItems");G.F.N(d.Plane).renderOrder=k.nVa;G.F.N(d.pb).F=G.zg;G.F.N(d.ta).mf= "YXZ";F=G.F.N(d.Kf);F.source=G.Ew.If();F.isSprite=!1;F.hidden=!1;F.depthTest=!1;G.F.N(d.SF);F=G.F.N(d.wd);F.pB=!0;F.eF=!1;F.M=G;F.lt=!0;F.Xt=!0;G.kNa=Date.now();G.bind(g.gb,G.Vj,G,!0);G.bind(g.uc,G.yE,G,!0);G.bind(g.Eb,G.Sn,G,!0);G.bind(g.ma,G.iY,G,!0);c.M.bind(g.RZ,G.xE,G,!0);p.requestFrame(G.Bp,G);G.Lp();G.EK();G.xE();return G}P(D,A);D.prototype.dispose=function(){this.h(g.gb,this.Vj,this);this.h(g.uc,this.yE,this);this.h(g.Eb,this.Sn,this);this.h(g.ma,this.iY,this);c.M.h(g.RZ,this.xE,this);p.$Ia(this.Bp, this);this.F.T.dd(this.F)};D.prototype.Jc=function(){return this.Xa};D.prototype.Ic=function(){return this.pitch};D.prototype.jf=function(){return this.Ew.jf()};D.prototype.MLa=function(){return this.selectedIndex};D.prototype.ir=function(){return this.We};D.prototype.setPosition=function(F,C){this.Xa=F;this.pitch=C;this.GK()};D.prototype.Vj=function(F){this.VE(this.fLa(F))};D.prototype.yE=function(){this.We=!0;this.EK()};D.prototype.Sn=function(){this.We=!1;this.VE(-1);this.EK()};D.prototype.iY= function(F){F=this.fLa(F);this.Zw(F);this.Q8[F].o(g.ma)};D.prototype.fLa=function(F){var C=(F.data.localPosition.x+.5)*this.Ew.fg();F=(.5-F.data.localPosition.y)*this.Ew.wg();return this.Ew.uoa(C,F)};D.prototype.Bp=function(){c.isPresenting||this.xE();p.requestFrame(this.Bp,this)};D.prototype.xE=function(){if(this.yf){var F=Date.now();this.yf.Nb(F-this.kNa);this.kNa=F;this.yf.Ve()&&(this.yf=null);this.EK()}this.GK()};D.prototype.setScale=function(F){this.F.getComponent(d.ta).scale!=F&&(this.F.O(d.ta).scale= F)};D.prototype.Yn=function(F){this.F.getComponent(d.Kf).opacity!=F&&(this.F.O(d.Kf).opacity=F)};D.prototype.VE=function(F){this.Iw!=F&&(this.Iw>=0&&this.Q8[this.Iw].o(g.Eb),this.Iw=F,this.Iw>=0&&this.Q8[this.Iw].o(g.uc),this.Lp())};D.prototype.Zw=function(F){this.selectedIndex!=F&&(this.selectedIndex=F,this.Lp())};D.prototype.Lp=function(){this.Ew.Zw(this.selectedIndex);this.Ew.VE(this.Iw);this.Ew.update()&&(this.F.O(d.Kf).uK=Date.now())};D.prototype.GK=function(){var F=this.nh.get("distance")/this.model.get("worldUnitToMeters", 1),C=this.F.O(d.ta);w.identity();w.multiply(y.makeRotationFromQuaternion(c.ug,"YXZ"));w.multiply(y.makeRotationFromQuaternion(c.xl,"YXZ").invert());var B=this.Xa,H=this.pitch;if(this.yf){var E=this.yf.ob("coef");for(B-=this.rZ;B>180;)B-=360;for(;B<-180;)B+=360;H-=this.Sra;B=this.rZ+B*E;H=this.Sra+H*E}w.multiply(y.makeRotationFromEuler(v.set(H*z,-B*z,0,"YXZ"),"YXZ"));v.setFromRotationMatrix(w,C.mf);C.Yd=v.x*x;C.fd=v.y*x;C.Xe=v.z*x;C.positionZ=-F;C.Le=this.Ew.dgb(F);C.Ye=this.Ew.ofb(F)};D.prototype.EK= function(){};return D}(b);var t=function(A){function D(F,C,B){F=A.call(this,F,C,[C],B,null)||this;F.visible=!0;F.F.N(d.ta).easing=.01;F.HP=F.HP.bind(F);n.ba(F.model,["camera.pitch","camera.yaw"],F.HP,!0);return F}P(D,A);D.prototype.dispose=function(){A.prototype.dispose.call(this);n.da(this.model,["camera.pitch","camera.yaw"],this.HP)};D.prototype.ig=function(F){this.visible!==F&&(this.visible=F,this.visible||(this.VE(-1),this.Zw(-1)),F=!this.visible,this.F.getComponent(d.Kf).hidden!==F&&(this.F.O(d.Kf).hidden= F,this.HP()))};D.prototype.HP=function(){this.visible&&(this.setPosition(q(this.model),this.QLa()),this.EK())};D.prototype.xE=function(){this.HP();A.prototype.xE.call(this)};D.prototype.EK=function(){var F=this.nh.get("opacity",.5),C=this.nh.get("rollOverOpacity",F);F=this.We?C:F;var B=.66,H=this.model.get("camera"),E=r(this.model);H=Math.abs(E-this.QLa())/(H.get("fov")*.5);H<1&&(B+=(1-H)*(1-B),F+=(1-H)*(C-F));F*=this.yf?this.yf.ob("coef"):1;this.Yn(Math.min(1,Math.max(0,F)));this.setScale(B);this.Lp()}; D.prototype.QLa=function(){var F=r(this.model);return Math.min(90,Math.max(-90,40-F))};return D}(b),u=function(A){function D(F,C,B,H,E){F=A.call(this,F,C,B.get("children",[]),H,E)||this;F.Cpa=B;return F}P(D,A);D.prototype.EK=function(){var F=this.nh.get("opacity",.5),C=this.nh.get("rollOverOpacity",F);F=this.We?C:F;F*=this.yf?this.yf.ob("coef"):1;this.Yn(Math.min(1,Math.max(0,F)))};return D}(b),v=new h.Euler,w=new h.Matrix4,y=new h.Matrix4,x=180/Math.PI,z=Math.PI/180;return a}); define("tdv/player/view/model3d/renderer/adapters/ToolTipAdapter",["require","exports","tdv/binding/BindingsHandler","tdv/constants/EventName"],function(a,m,h,n){return function(){function g(k,e){this.renderer=k;this.model=e;this.eb=this.renderer.P;this.q9=this.q9.bind(this);this.qj=[];this.mB="";this.Fw=null;this.Wa()}g.prototype.dispose=function(){this.ya()};g.prototype.Wa=function(){h.ba(this.model,"objects",this.q9,!0);this.model.bind(n.uc,this.DOa,this,!0);this.model.bind(n.Eb,this.COa,this, !0)};g.prototype.ya=function(){this.model.h(n.uc,this.DOa,this);this.model.h(n.Eb,this.COa,this);h.da(this.model,"objects",this.q9);this.UE([]);this.Fw&&this.Sn(this.Fw)};g.prototype.q9=function(){this.UE(this.model.get("objects"))};g.prototype.UE=function(k){this.qj!=k&&(this.qj.forEach(function(e){e.h(n.uc,this.IOa,this);e.h(n.Eb,this.HOa,this);e.h(n.jd,this.GOa,this)}.bind(this)),this.Fw&&this.qj.indexOf(this.Fw)>=0&&k.indexOf(this.Fw)<0&&this.Sn(this.Fw),this.qj=k,this.qj.forEach(function(e){e.bind(n.uc, this.IOa,this,!0);e.bind(n.Eb,this.HOa,this,!0);e.bind(n.jd,this.GOa,this,!0)}.bind(this)))};g.prototype.IOa=function(k){k=k.source;this.yE(k,k.get("toolTip"))};g.prototype.HOa=function(k){this.Sn(k.source)};g.prototype.GOa=function(k){this.Sn(k.source)};g.prototype.DOa=function(){this.yE(this.model,this.model.get("toolTip"))};g.prototype.COa=function(){this.Sn(this.model)};g.prototype.Sn=function(k){this.Fw==k&&(this.Fw=null,this.ERa(""))};g.prototype.yE=function(k,e){this.Fw!=k&&(this.Fw=k,this.ERa(e|| ""))};g.prototype.ERa=function(k){this.mB!=k&&(this.mB=k,this.eb.set("toolTip",this.mB))};return g}()}); define("tdv/player/view/panorama/renderer/object/canvas/SurfaceReticleCanvas",["require"],function(){function a(m){this.Ne=this.fv(m.get("surfaceReticleColor"));this.Dz=this.fv(m.get("surfaceReticleSelectionColor"));this.Of=m.get("surfaceReticleOpacity");this.z7a=m.get("surfaceReticleSelectionOpacity");this.Om=this.Ih=128;this.Y5a=.456;this.Z5a=.088;this.i3a=.18;this.ja=document.createElement("canvas");this.ja.width=this.Ih;this.ja.height=this.Om;this.ga=this.ja.getContext("2d");this.ga.fillStyle= "red";this.ga.imageSmoothingEnabled=!0;this.ga.fillRect(0,0,this.Ih,this.Om);this.Cd=this.gy=!1;this.EM=this.O3=void 0;this.mG=0}a.prototype.Gfa=function(){return this.fm(this.Dz[0]*NaN+NaN*this.Ne[0],this.Dz[1]*NaN+NaN*this.Ne[1])};a.prototype.fv=function(m){m=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(m);return[parseInt(m[1],16),parseInt(m[2],16),parseInt(m[3],16)]};a.prototype.fm=function(m,h){return"rgba("+m.join(",")+", "+h+")"};a.prototype.setPosition=function(m){this.Sb!=m&&(this.Sb= m,this.Rd=!0)};a.prototype.fg=function(){return this.Ih};a.prototype.wg=function(){return this.Om};a.prototype.If=function(){return this.ja};a.prototype.update=function(){if(!this.Rd)return!1;this.Rd=!1;this.ga.clearRect(0,0,this.Ih,this.Om);var m=[this.Dz[0]*this.Sb+(1-this.Sb)*this.Ne[0],this.Dz[1]*this.Sb+(1-this.Sb)*this.Ne[1],this.Dz[2]*this.Sb+(1-this.Sb)*this.Ne[2]],h=this.z7a*this.Sb+(1-this.Sb)*this.Of;this.ga.strokeStyle=this.fm(m,h);this.ga.fillStyle=this.fm(m,h*this.Sb);this.ga.beginPath(); this.ga.lineWidth=this.Ih*this.Z5a;this.ga.arc(.5*this.Ih,.5*this.Ih,this.Ih*this.Y5a,0,2*Math.PI,!1);this.ga.stroke();this.ga.beginPath();this.ga.arc(.5*this.Ih,.5*this.Ih,this.Ih*this.i3a,0,2*Math.PI,!1);this.ga.fill();return!0};return a});define("tdv/player/view/model3d/renderer/adapters/canvas/SurfaceReticleCanvas",["require","tdv/player/view/panorama/renderer/object/canvas/SurfaceReticleCanvas"],function(a){return a("tdv/player/view/panorama/renderer/object/canvas/SurfaceReticleCanvas")}); define("tdv/player/view/model3d/renderer/adapters/SurfaceSelectorPointerAdapter","require tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/EventDispatcher tdv/constants/RenderOrder tdv/player/view/model3d/renderer/adapters/canvas/SurfaceReticleCanvas tdv/player/view/util/Device tdv/player/view/util/XR tdv/player/view/webgl/components".split(" "),function(a){function m(p,q,r){this.Fa=p;this.Ub=q;this.j=r;this.P=this.j.P;this.cz=this.cz.bind(this);this.lz=this.lz.bind(this);this.Cd=void 0; this.Fa.bind(n.L("surfaceSelectionEnabled"),this.afa,this,!0);this.afa()}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/events/EventDispatcher"),k=a("tdv/constants/RenderOrder"),e=a("tdv/player/view/model3d/renderer/adapters/canvas/SurfaceReticleCanvas"),b=a("tdv/player/view/util/Device"),c=a("tdv/player/view/util/XR"),d=a("tdv/player/view/webgl/components");m.prototype.afa=function(){var p=this.Fa.get("surfaceSelectionEnabled");!!this.B!=p&&(p?this.PG():this.es())}; m.prototype.PG=function(){if(!this.B){this.B=this.Ub.T.sc("PointerReticle");this.B.N(d.Plane).renderOrder=k.aWa;this.B.N(d.Dl).F=this.Ub;this.B.N(d.Qr);this.B.N(d.SF);this.B.N(d.pb).F=this.Ub;var p=this.B.N(d.Qp);p.M=new g;p.M.bind(n.V,this.AT,this,!0);h.ba(this.Fa,f,this.cz,!0);this.Pv=new e(this.P);this.Pv.setPosition(0);this.Pv.update();p=this.B.N(d.Kf);p.source=this.Pv.If();p.depthTest=!1;h.ba(this.Fa,l,this.lz,!0);c.M.bind(n.V,this.fDa,this,!0);this.Ee=null;this.sI(!1)}};m.prototype.es=function(){this.B&& (this.Ee&&(this.Ee.o(n.Eb),this.Ee=null),h.da(this.Fa,l,this.lz),this.fV(null),this.B.getComponent(d.Qp).M.h(n.V,this.AT,this,!0),this.Ub.T.dd(this.B),this.Pv=this.B=null,c.M.h(n.V,this.fDa,this),h.da(this.Fa,f,this.cz))};m.prototype.cz=function(){var p=this.B.O(d.Tk,!0);p.Le=p.Ye=2;p.scale=this.Fa.get("surfaceReticleRadius");p.oE=this.Fa.get("surfaceReticleMaxRadius");p.pE=this.Fa.get("surfaceReticleMinRadius")};m.prototype.AT=function(p){p=this.Lya(p.data.beacons);var q=this.tya(p);q==0&&(p=null); this.K7a(p);this.a8a(q)};m.prototype.lz=function(){this.fV(this.Fa&&this.Fa.get("pointer"))};m.prototype.fV=function(p){this.we!==p&&(this.we&&(this.we.h(n.ma,this.ez,this,!0),this.we.h(n.gb,this.rg,this,!0),this.we.h(n.Eb,this.Ds,this,!0)),this.we=p)&&(this.we.bind(n.ma,this.ez,this,!0),this.we.bind(n.gb,this.rg,this,!0),this.we.bind(n.Eb,this.Ds,this,!0))};m.prototype.ez=function(p){var q=null;if(b.ub()&&!c.isPresenting){var r=this.B.getComponent(d.Qp);r&&r.iX&&p.data.position&&(p=r.iX((new THREE.Vector3).copy(p.data.position)), p=this.Lya(p),this.tya(p)!=0&&(q=this.Dfa(p)))}else q=this.Ee;q&&q.o(n.ma)};m.prototype.rg=function(p){this.sI(p.data.type=="other"?!1:!0)};m.prototype.Ds=function(){this.sI(!1)};m.prototype.sI=function(p){this.Cd!==p&&(this.Cd=p,this.xi())};m.prototype.fDa=function(){this.xi()};m.prototype.xi=function(){this.B.O(d.Kf).opacity=b.ub()&&!c.isPresenting||!this.Cd?0:1};m.prototype.K7a=function(p){p=this.Dfa(p);this.Ee!=p&&(this.Ee&&this.Ee.o(n.Eb),(this.Ee=p)&&this.Ee.o(n.uc))};m.prototype.Lya=function(p){if(!p)return null; for(var q=0;q= l),f++):p.jra(!1)})};b.prototype.g1a=function(c){c=(c=c.entity.getComponent(k.LQ))&&c.object;c.get&&c.get("hideBasedOnDistance")!==void 0||(c=null);return c};b.prototype.dispose=function(){h.da(this.Fa,e,this.r3);this.ha&&(this.ha=!1,this.es())};return b}()}); define("tdv/player/view/model3d/renderer/adapters/measure/MeasureAreaAdapter","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/webgl/components".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/webgl/components");a=m.extend(g,function(b,c){g.call(this);this.ce=b;this.Ub=c;this.sg=this.sg.bind(this);this.B=null;this.km= 0;this.Ld=!1;this.CU=[];this.ce.bind(n.L("areaOpacity"),this.jCa,this);this.Vz()});a.prototype.y$=function(b){this.CU.forEach(function(c){c.h(n.od,this.ye,this,!0);c.h(n.jd,this.ye,this,!0)}.bind(this));this.CU=b;this.CU.forEach(function(c){c.bind(n.od,this.ye,this,!0);c.bind(n.jd,this.ye,this,!0)}.bind(this));this.yGa();this.ye()};a.prototype.dispose=function(){this.ce.h(n.L("areaOpacity"),this.jCa,this);this.Oz()};a.prototype.mj=function(){return this.B};a.prototype.isVisible=function(){return this.Ld}; a.prototype.jCa=function(){this.Vz();this.xi()};a.prototype.Vz=function(){this.ce.get("areaOpacity")>0?this.zD():this.Oz()};a.prototype.zD=function(){if(!this.B){this.B=this.Ub.T.sc("MeasureArea");var b=new g;b.bind(n.V,this.WC,this,!0);this.B.N(k.ko).M=b;this.B.N(k.xd);this.B.N(k.pb).F=this.Ub;h.ba(this.ce,e,this.sg,!0);this.yGa()}};a.prototype.Oz=function(){this.B&&(this.B.getComponent(k.ko).M.h(n.V,this.WC,this,!0),h.da(this.ce,e,this.sg),this.B.T.dd(this.B),this.B=null)};a.prototype.Hv=function(b){this.Ld!= b&&((this.Ld=b)?(this.Iq(1),this.o(n.od)):(this.Iq(0),this.o(n.jd)))};a.prototype.ye=function(){this.Hv(this.CU.every(function(b){return b.isVisible()}))};a.prototype.WC=function(b){this.ce.set("area",b.data.area)};a.prototype.sg=function(){if(this.B){var b=this.B.O(k.xd);b.color=this.ce.get("areaColor");b.depthTest=this.ce.get("depthTest");b.doubleSided=!0;this.xi()}};a.prototype.Iq=function(b){this.km!=b&&(this.km=b,this.xi())};a.prototype.xi=function(){this.B&&(this.B.O(k.xd).opacity=this.ce.get("areaOpacity")* Math.max(1E-4,this.km))};a.prototype.yGa=function(){this.B&&(this.B.O(k.ko).v=this.CU.map(function(b){return b.mj()}))};var e=["areaColor","areaOpacity","depthTest"];return a}); define("tdv/player/view/model3d/renderer/adapters/canvas/MeasureLabelCanvas",["require","tdv/view/util/MeasureText","tdv/view/util/Font"],function(a){function m(){this.qfa=this.fv("#ffffff");this.dC=this.fv("#000000");this.Om=this.Ih=0;this.ja=document.createElement("canvas");this.ga=this.ja.getContext("2d");this.ga.imageSmoothingQuality="high";this.Nv=new h.lca;this.rfa=this.kM=void 0;this.Vca=this.Wca=.5;this.gt=void 0;this.XN=m.Rba;this.Tz=void 0;this.fQ(0)}var h=a("tdv/view/util/MeasureText"), n=a("tdv/view/util/Font");m.yta="imperial area";m.zta="imperial length";m.Gta="metric area";m.Rba="metric length";m.prototype.dispose=function(){this.ja.width=this.ja.height=0;this.ja=null};m.prototype.ykb=function(g){this.qfa!=g&&(this.qfa=g,this.Rd=!0)};m.prototype.gkb=function(g){this.dC!=g&&(this.dC=g,this.Rd=!0)};m.prototype.zkb=function(g){this.rfa!=g&&(this.rfa=g,this.Rd=!0)};m.prototype.Akb=function(g){this.kM!=g&&(this.kM=g,this.Rd=!0)};m.prototype.Xqa=function(){this.Nv.tO!=.5&&(this.Vca= .5,this.Rd=!0)};m.prototype.Yqa=function(g){this.Nv.uO!=g&&(this.Wca=g,this.Rd=!0)};m.prototype.fQ=function(g){this.gt!=g&&(this.gt=g,this.Sla())};m.prototype.Elb=function(g){this.XN!=g&&(this.XN=g,this.Sla())};m.prototype.Flb=function(g){this.Tz!=g&&(this.Tz=g,this.Sla())};m.prototype.Sla=function(){if(this.Tz===void 0)this.Za=this.gt.toFixed(2);else if(this.XN==m.Rba){var g=this.gt*this.Tz;this.Za=g>=1?g.toFixed(2)+"m":(g*100).toFixed(2)+"cm"}else this.XN==m.Gta?(g=this.gt*this.Tz*this.Tz,this.Za= g>=.1?g.toFixed(2)+"m\u00b2":(g*1E4).toFixed(2)+"cm\u00b2"):this.XN==m.zta?(g=this.gt*this.Tz*1.0936,this.Za=g>1760?(g/1760).toFixed(2)+"mi":g>=100?g.toFixed(2)+"yd":g*3>=1?(g*3).toFixed(2)+"ft":(g*3*12).toFixed(2)+"in"):this.XN==m.yta&&(g=this.gt*this.Tz*this.Tz*10.76364864,this.Za=g>=1?g.toFixed(2)+"ft\u00b2":(g*144).toFixed(2)+"in\u00b2");this.Rd=!0};m.prototype.fv=function(g){g=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(g);return[parseInt(g[1],16),parseInt(g[2],16),parseInt(g[3],16)]};m.prototype.fm= function(g,k){return"rgba("+g.join(",")+", "+k+")"};m.prototype.fg=function(){return this.Ih};m.prototype.wg=function(){return this.Om};m.prototype.If=function(){return this.ja};m.prototype.update=function(){if(!this.Rd)return!1;this.Rd=!1;this.Nv.fontFamily=this.rfa||"Arial";this.Nv.fontSize=this.kM?typeof this.kM=="string"?this.kM:this.kM+"px":"30px";var g=h(this.Za,this.Nv),k=this.fv(this.qfa),e=this.fv(this.dC),b=g.width;g=g.height;var c=.5*g,d=.3*g,f=c+b+.5*g,l=d+g+.2*g,p=.5*l;this.ja.width= this.ja.height=this.Ih=this.Om=Math.max(128,Math.pow(2,Math.ceil(Math.log(Math.max(f,l))/Math.LN2)));var q=this.Ih*this.Vca-f*this.Vca,r=this.Om*this.Wca-l*this.Wca;this.ML();this.ga.save();this.ga.translate(q,r);this.ga.fillStyle=this.fm(e,1);this.ga.beginPath();this.ga.moveTo(0,p);this.ga.quadraticCurveTo(0,0,p,0);this.ga.lineTo(f-p,0);this.ga.quadraticCurveTo(f,0,f,p);this.ga.quadraticCurveTo(f,l,f-p,l);this.ga.lineTo(p,l);this.ga.quadraticCurveTo(0,l,0,l-p);this.ga.closePath();this.ga.fill(); this.ga.fillStyle=this.fm(k,1);this.ga.font=this.Nv.fontSize+" '"+this.Nv.fontFamily+"'";this.ga.font=this.Nv.fontSize+(isNaN(this.Nv.fontSize)?"":"px")+" "+n.qA(this.Nv.fontFamily);this.ga.textBaseline="middle";this.ga.textAlign="center";this.ga.fillText(this.Za,Math.round(c+b*.5),Math.round(d+g*.5));this.ga.restore();return!0};m.prototype.ML=function(){this.ga.clearRect(0,0,this.Ih,this.Om)};return m}); define("tdv/player/view/model3d/renderer/adapters/measure/MeasureLabelAdapter","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/RenderOrder tdv/events/EventDispatcher tdv/player/view/webgl/components tdv/player/view/model3d/renderer/adapters/canvas/MeasureLabelCanvas tdv/view/effects/Effect".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/constants/RenderOrder"),k=a("tdv/events/EventDispatcher"), e=a("tdv/player/view/webgl/components"),b=a("tdv/player/view/model3d/renderer/adapters/canvas/MeasureLabelCanvas"),c=a("tdv/view/effects/Effect");a=m.extend(k,function(f,l,p){k.call(this);this.Nha=f;this.ce=l;this.Ub=p;this.sg=this.sg.bind(this);this.Kq=this.B=null;this.km=0;this.Ld=!1;this.z5=this.ii=this.kD=this.PC=null;this.gt=void 0;this.Yi=new b;this.Nha.bind(n.L("worldUnitToMeters"),this.Iia,this,!0);this.ce.bind(n.L("units"),this.via,this,!0);this.zD()});a.prototype.mRa=function(f){this.Z4(f, null,null)};a.prototype.jlb=function(f){this.Z4(null,f,null)};a.prototype.fkb=function(f){this.Z4(null,null,f)};a.prototype.Z4=function(f,l,p){if(this.kD!=l||this.PC!=f||this.ii!=p)[this.PC,this.kD,this.ii].forEach(function(q){q&&q.h(n.od,this.ye,this,!0);q&&q.h(n.jd,this.ye,this,!0)}.bind(this)),this.Oz(),this.PC=f,this.kD=l,this.ii=p,this.zD(),this.sg(),this.gh(!0),[this.PC,this.kD,this.ii].forEach(function(q){q&&q.bind(n.od,this.ye,this,!0);q&&q.bind(n.jd,this.ye,this,!0)}.bind(this)),this.PC? (this.B.O(e.pb).F=this.PC.mj(),this.B.O(e.ta).Ze=.5,f=this.B.O(e.Sprite),f.tO=.5,f.uO=.5,this.Yi.Xqa(),this.Yi.Yqa(.5)):this.kD?(this.B.O(e.pb).F=this.kD.mj(),this.B.O(e.ta).Ze=0,f=this.B.O(e.Sprite),f.tO=.5,f.uO=1.1,this.Yi.Xqa(),this.Yi.Yqa(1)):this.ii?(this.B.O(e.pb).F=this.ii.mj(),this.B.O(e.ta).Ze=0,f=this.B.O(e.Sprite),f.tO=.5,f.uO=.5,this.Yi.Xqa(),this.Yi.Yqa(.5)):this.B.O(e.pb).F=null,this.ye(),this.via(),this.Iia()};a.ZVa="partialDistance";a.Aua="distance";a.YVa="area";a.prototype.setStyle= function(f){this.z5!=f&&(this.z5=f,this.sg())};a.prototype.fQ=function(f){f!==void 0&&this.gt!==f&&(this.gt=f,this.Yi.fQ(f),this.gh(),this.ye())};a.prototype.dispose=function(){this.Nha.h(n.L("worldUnitToMeters"),this.Iia,this,!0);this.ce.h(n.L("units"),this.via,this,!0);this.Z4(null,null);this.Yi.dispose();this.Yi=null;this.Oz()};a.prototype.Iia=function(){this.Yi.Flb(this.Nha.get("worldUnitToMeters"));this.gh()};a.prototype.via=function(){var f=this.ce.get("units"),l=!!this.ii;this.Yi.Elb(f=="imperial"? l?b.yta:b.zta:l?b.Gta:b.Rba);this.gh()};a.prototype.zD=function(){if(!this.B){this.B=this.Ub.T.sc("MeasureLabel");this.B.N(e.Sprite).renderOrder=g.iVa;this.B.N(e.Qr);var f=this.B.N(e.Kf);f.source=this.Yi.If();f.isSprite=!0;h.ba(this.ce,d,this.sg,!0);this.B.N(e.ta);this.B.N(e.pb)}};a.prototype.Oz=function(){this.B&&(h.da(this.ce,d,this.sg),this.B.T.dd(this.B),this.B=null)};a.prototype.isVisible=function(){return this.Ld};a.prototype.Hv=function(f){this.Ld!=f&&((this.Ld=f)?(this.h9a(),this.o(n.od)): (this.j$a(),this.Iq(0),this.o(n.jd)))};a.prototype.ye=function(){this.Hv(this.gt>0&&(this.PC&&this.PC.isVisible()||this.kD&&this.kD.isVisible()||this.ii&&this.ii.isVisible()))};a.prototype.h9a=function(){this.Kq||(this.Kq=new c,this.Kq.set("duration",300),this.Kq.bind(c.eba,this.SCa,this,!0),this.Kq.bind(c.Bl,this.RCa,this,!0),this.Kq.play())};a.prototype.j$a=function(){this.Kq&&(this.Kq.h(c.eba,this.SCa,this,!0),this.Kq.h(c.Bl,this.RCa,this,!0),this.Kq.stop(),this.Kq=null)};a.prototype.SCa=function(){this.Iq(2* this.Kq.tm()-1)};a.prototype.RCa=function(){this.Iq(1)};a.prototype.sg=function(){this.B.O(e.Kf).depthTest=this.qM("depthTest");this.Yi.ykb(this.qM("labelFontColor"));this.Yi.gkb(this.qM("labelBackgroundColor"));this.Yi.zkb(this.qM("labelFontFamily"));this.Yi.Akb(this.qM("labelFontSize"));this.xi();this.gh()};a.prototype.qM=function(f){var l;this.z5&&(l=this.ce.get(this.z5+f[0].toUpperCase()+f.substr(1)));l===void 0&&(l=this.ce.get(f));return l};a.prototype.gh=function(f){if(this.Yi.update()||f){f= this.B.O(e.Kf);var l=this.B.O(e.Sprite);f.uK=(new Date).getTime();l.width=this.Yi.fg();l.height=this.Yi.wg()}};a.prototype.Iq=function(f){this.km!=f&&(this.km=f,this.xi())};a.prototype.xi=function(){this.B.O(e.Kf).opacity=this.qM("labelOpacity")*Math.max(1E-4,this.km)};var d="depthTest areaLabelBackgroundColor areaLabelFontColor areaLabelFontFamily areaLabelOpacity areaLabelFontSize distanceLabelBackgroundColor distanceLabelFontColor distanceLabelFontFamily distanceLabelOpacity distanceLabelFontSize labelBackgroundColor labelFontColor labelFontFamily labelOpacity labelFontSize partialDistanceLabelBackgroundColor partialDistanceLabelFontColor partialDistanceLabelFontFamily partialDistanceLabelOpacity partialDistanceLabelFontSize".split(" "); return a}); define("tdv/player/view/model3d/renderer/adapters/measure/MeasureLineAdapter","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/webgl/components".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/webgl/components");a=m.extend(g,function(b,c){g.call(this);this.ce=b;this.Ub=c;this.xn=this.vn=null;this.sg=this.sg.bind(this);this.B= null;this.km=0;this.Ld=!1;this.zD()});a.prototype.y$=function(b,c){if(this.vn!=b||this.xn!=c)this.vn&&this.vn.h(n.od,this.ye,this,!0),this.vn&&this.vn.h(n.jd,this.ye,this,!0),this.xn&&this.xn.h(n.od,this.ye,this,!0),this.xn&&this.xn.h(n.jd,this.ye,this,!0),this.vn=b,this.xn=c,this.vn&&this.vn.bind(n.od,this.ye,this,!0),this.vn&&this.vn.bind(n.jd,this.ye,this,!0),this.xn&&this.xn.bind(n.od,this.ye,this,!0),this.xn&&this.xn.bind(n.jd,this.ye,this,!0),this.B.O(k.pb,!0).F=this.vn&&this.vn.mj(),this.B.O(k.yu, !0).F=this.xn&&this.xn.mj(),this.ye()};a.prototype.mj=function(){return this.B};a.prototype.dispose=function(){this.y$(null,null);this.Oz()};a.prototype.zD=function(){this.B||(this.B=this.Ub.T.sc("MeasureLine"),this.B.N(k.Line),this.B.N(k.ei),this.B.N(k.ta),h.ba(this.ce,e,this.sg,!0))};a.prototype.Oz=function(){this.B&&(h.da(this.ce,e,this.sg),this.B.T.dd(this.B),this.B=null)};a.prototype.isVisible=function(){return this.Ld};a.prototype.Hv=function(b){this.Ld!=b&&((this.Ld=b)?(this.Iq(1),this.o(n.od)): (this.Iq(0),this.o(n.jd)))};a.prototype.ye=function(){this.Hv(this.vn&&this.vn.isVisible()&&this.xn&&this.xn.isVisible())};a.prototype.sg=function(){var b=this.B.O(k.ei);b.color=this.ce.get("lineColor");b.depthTest=this.ce.get("depthTest");b.width=this.ce.get("lineWidth");b.depthTest=this.ce.get("depthTest");this.xi()};a.prototype.Iq=function(b){this.km!=b&&(this.km=b,this.xi())};a.prototype.xi=function(){this.B.O(k.ei).opacity=this.ce.get("lineOpacity")*Math.max(1E-4,this.km)};var e=["depthTest", "lineColor","lineOpacity","lineWidth"];return a}); define("tdv/player/view/model3d/renderer/adapters/measure/MeasurePointAdapter","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/webgl/components".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/webgl/components");a=m.extend(g,function(d,f,l,p){g.call(this);this.ce=d;this.Fa=f;this.Ub=l;this.Ms=p;this.y3=this.y3.bind(this); this.sg=this.sg.bind(this);this.bp=this.bp.bind(this);this.B=null;this.zj=this.WU=this.Cd=this.cC=!1;this.km=0;this.Ld=!1;this.zD();h.ba(this.ce,e,this.y3,!0);h.ba(this.ce,c,this.sg,!0);h.KD(this.Ms,b,this.bp,!0);this.bind(n.Jm,this.yCa,this,!0);this.bind(n.uc,this.D3,this,!0);this.bind(n.Eb,this.Ds,this,!0);this.bp();this.d8()&&this.Hv(!0)});a.prototype.dispose=function(){h.da(this.ce,e,this.y3);h.da(this.ce,c,this.sg);h.da(this.Ms,b,this.bp);this.h(n.Jm,this.yCa,this,!0);this.h(n.uc,this.D3,this, !0);this.h(n.Eb,this.Ds,this,!0);this.Oz()};a.prototype.mj=function(){return this.B};a.prototype.MQa=function(d){this.cC!==d&&((this.cC=d)?(d=this.B.N(k.Dl),d.F=this.Ub,d.rotate=!1,d.M=new g,this.Hv(!0),d.M.bind(n.uc,this.TM,this,!0)):((d=this.B.getComponent(k.Dl))&&d.M.h(n.uc,this.TM,this,!0),this.B.ka(k.Dl),d=this.Fa.worldPositionToLocal([this.x,this.y,this.z],this.Fa.getMatrixWorld()),this.TQa(d[0],d[1],d[2])),this.GD(),this.dma())};a.prototype.XQa=function(d){d===void 0&&(d=!1);this.zj!==d&&((this.zj= d)?this.B.N(k.Gm):this.B.ka(k.Gm))};a.prototype.slb=function(d){this.WU!==d&&(this.WU=d,this.dma(),this.Cd=!1,this.GD())};a.prototype.TQa=function(d,f,l){this.Ms.set("x",d);this.Ms.set("y",f);this.Ms.set("z",l);this.Hv(this.d8())};a.prototype.zD=function(){this.B=this.Ub.T.sc("MeasurePoint");this.B.N(k.Sphere);this.B.N(k.xd);this.B.N(k.wd).M=this;this.B.N(k.Qr);this.B.N(k.ta).M=this;this.B.N(k.Tk);this.B.N(k.pb).F=this.Ub;this.dma();this.xi();this.GD()};a.prototype.Oz=function(){this.B.T.dd(this.B); this.B=null};a.prototype.isVisible=function(){return this.Ld};a.prototype.Hv=function(d){this.Ld!=d&&((this.Ld=d)?(this.Iq(1),this.o(n.od)):(this.Iq(0),this.o(n.jd)))};a.prototype.dma=function(){var d=this.B.O(k.wd);d.pB=this.WU;d.Xt=this.WU;d.lt=!this.cC;d=this.B.O(k.Qr,!0);d.rsa=!this.WU||this.cC;d.qsa=this.cC};a.prototype.TM=function(){this.Hv(!0)};a.prototype.D3=function(){this.Cd=!0;this.GD()};a.prototype.Ds=function(){this.Cd=!1;this.GD()};a.prototype.y3=function(){this.B.O(k.pb).id=this.ce.get("parentId")}; a.prototype.sg=function(){if(this.B){var d=this.B.O(k.Tk);d.Le=d.Ye=d.Gh=1;d.oE=this.ce.get("pointMaxRadius");d.pE=this.ce.get("pointMinRadius");d.scale=this.ce.get("pointRadius")||1;this.B.O(k.xd).depthTest=this.ce.get("depthTest");this.GD()}};a.prototype.GD=function(){if(this.B){var d=this.cC?"pointDragColor":this.Cd?"pointOverColor":"pointColor";this.B.O(k.xd).color=this.ce.get(d)}};a.prototype.Iq=function(d){this.km!=d&&(this.km=d,this.xi())};a.prototype.xi=function(){this.B.O(k.xd).opacity=Math.max(1E-4, this.km)};a.prototype.yCa=function(d){this.x=d.data.position.x;this.y=d.data.position.y;this.z=d.data.position.z};a.prototype.bp=function(){if(this.d8()&&this.B){var d=this.B.O(k.ta,!0);d.positionX=d.positionY=d.positionZ=0;d.Yd=d.fd=d.Xe=0;d.translationX=this.Ms.get("x");d.translationY=this.Ms.get("y");d.Ze=this.Ms.get("z")}};a.prototype.d8=function(){var d=this.Ms.get("x"),f=this.Ms.get("y"),l=this.Ms.get("z");return d!==void 0&&f!==void 0||l!==void 0};a.prototype.distanceTo=function(d){var f=this.x- d.x,l=this.y-d.y;d=this.z-d.z;return Math.sqrt(f*f+l*l+d*d)};var e=["parentId"],b=["x","y","z"],c="depthTest mode pointDragColor pointColor pointOverColor pointMaxRadius pointMinRadius pointRadius".split(" ");return a}); define("tdv/player/view/model3d/renderer/adapters/measure/MeasureAdapter","require tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/Key tdv/player/view/model3d/renderer/adapters/measure/MeasureAreaAdapter tdv/player/view/model3d/renderer/adapters/measure/MeasureLabelAdapter tdv/player/view/model3d/renderer/adapters/measure/MeasureLineAdapter tdv/player/view/model3d/renderer/adapters/measure/MeasurePointAdapter tdv/player/view/util/Device tdv/player/view/util/XR".split(" "),function(a){function m(v, w,y,x,z){this.R=v;this.Fa=w;this.Ub=y;this.j=z;this.P=this.j.P;this.zs=this.zs.bind(this);this.B3=this.B3.bind(this);this.q3=this.q3.bind(this);this.K3=this.K3.bind(this);this.VM=this.VM.bind(this);this.WC=this.WC.bind(this);this.lz=this.lz.bind(this);this.tq=this.tq.bind(this);this.we=null;this.Nj=new Map;this.BU=new Map;this.ss=[];this.AH=[];this.hN=new Map;this.ri=[];this.Kj=null;this.T5();this.Qf=this.qd=void 0;this.hwa=this.ha=!1;h.ba(this.R,["enabled"],this.zs,!0)}var h=a("tdv/binding/BindingsHandler"), n=a("tdv/constants/EventName"),g=a("tdv/constants/Key"),k=a("tdv/player/view/model3d/renderer/adapters/measure/MeasureAreaAdapter"),e=a("tdv/player/view/model3d/renderer/adapters/measure/MeasureLabelAdapter"),b=a("tdv/player/view/model3d/renderer/adapters/measure/MeasureLineAdapter"),c=a("tdv/player/view/model3d/renderer/adapters/measure/MeasurePointAdapter"),d=a("tdv/player/view/util/Device"),f=a("tdv/player/view/util/XR");m.prototype.dispose=function(){this.es();h.da(this.R,["enabled"],this.zs); this.Kj=this.ri=this.AH=this.ss=this.BU=this.Nj=null;this.T5();this.Qf=this.qd=null};m.prototype.zs=function(){this.R.get("enabled")?this.PG():this.es()};m.prototype.PG=function(){this.ha||(this.ha=!0,this.JZa(),this.jxa(this.R),document.addEventListener("keyup",this.tq),h.ba(this.R,l,this.B3,!0),h.ba(this.R,q,this.K3,!0),h.ba(this.R,p,this.q3,!0),h.ba(this.R,r,this.VM,!0),h.ba(this.R,t,this.WC,!0),h.ba(this.Fa,u,this.lz,!0),f.M.bind(n.Zd,this.W5a,this,!0))};m.prototype.es=function(){this.ha&&(this.ha= !1,this.dFa([]),this.Dxa(this.R),this.R_a(),document.removeEventListener("keyup",this.tq),h.da(this.R,l,this.B3),h.da(this.R,q,this.K3),h.da(this.R,p,this.q3),h.da(this.R,r,this.VM),h.da(this.R,t,this.WC),h.da(this.Fa,u,this.lz),f.M.h(n.Zd,this.Epb,this),this.fV(null))};m.prototype.lz=function(){this.fV(this.Fa&&this.Fa.get("pointer"))};m.prototype.W5a=function(){var v=f.ud.some(function(w){return w.PIa});v!=this.hwa&&((this.hwa=v)||this.pBa())};m.prototype.fV=function(v){this.we!==v&&(this.we&&(this.we.h(n.ma, this.bCa,this,!0),this.we.h(n.fi,this.cCa,this,!0)),this.we=v)&&(this.we.bind(n.ma,this.bCa,this,!0),this.we.bind(n.fi,this.cCa,this,!0))};m.prototype.B3=function(){this.dFa(this.R.get("points"))};m.prototype.q3=function(){var v=this.R.get("mode");if(v!=this.qd){switch(this.qd){case "create":this.ri.length<1||this.Kj&&this.ri.length<2?v="create":this.b7a(this.Kj);break;case "edit":v=="create"?this.R.get("type")==="single"&&this.ri.length>0?v="edit":this.N_():this.Fz(null);break;case "view":v==="create"&& (this.R.get("type")==="single"&&this.ri.length>0?v="view":this.N_());break;default:v=="create"&&(this.R.get("type")==="single"&&this.ri.length>0&&this.ega(this.Iy(-1))?v="edit":this.Fz(this.Iy(-1),!1))}this.qd=v;this.R.set("mode",this.qd);this.cHa()}};m.prototype.K3=function(){var v=this.R.get("type");v!==this.Qf&&(this.Qf=v,this.Qf==="single"&&this.ri.length>1&&this.R.set("points",this.Bpb.slice(0,1)))};m.prototype.VM=function(){this.SGa();this.S5()};m.prototype.WC=function(){var v=this.Tfa(this.ii); v&&v.fQ(this.R.get("area"))};m.prototype.tq=function(v){v.which==g.f_&&this.P.get("isKeyboardTarget")&&this.pBa()};m.prototype.pBa=function(){this.R.get("mode")=="create"?this.R.set("mode","edit"):this.qd=="edit"&&this.Fz(null)};m.prototype.N_=function(){this.qXa();this.Fz(this.Iy(-1),!1)};m.prototype.NS=function(){return d.ub()&&!d.kf()};m.prototype.qXa=function(){var v=this.P.get("application").Ai("MeasureModel3DObjectPoint");if(!this.NS()){var w=this.Iy(-1);w&&this.ega(w)&&(v.set("x",w.get("x")), v.set("y",w.get("y")),v.set("z",w.get("z")))}this.R.set("points",this.ri.concat([v]))};m.prototype.Iy=function(v){var w=[this.R].concat(this.ri);return v<0&&w.length-v>0?w[w.length+v]:v>=0&&v0?this.R.set("mode","edit"):this.N_()}else this.R.get("mode")=="edit"&&this.Fz(null)};m.prototype.cCa=function(){this.R.get("mode")=="create"&&this.NS()&&this.R.set("mode","edit")};m.prototype.uCa=function(){this.R.get("mode")=="create"&&this.R.set("mode","edit")};m.prototype.tCa=function(v){if(this.R.get("mode")=="create"){var w=this.Iy(-2);v=this.BU.get(v.source);w==v?this.R.set("mode","edit"):(w=this.Kj,this.Fz(null),w.set("x",v.get("x")),w.set("y",v.get("y")),w.set("z", v.get("z")),w=this.Iy(0),v==w?this.R.set("mode","edit"):this.N_())}};m.prototype.vCa=function(v){this.R.get("mode")=="edit"&&this.Fz(this.BU.get(v.source),!0)};m.prototype.wCa=function(){this.R.get("mode")=="edit"&&this.Fz(null)};m.prototype.xCa=function(){this.S5()};m.prototype.S5=function(){for(var v=[],w=this.Iy(0),y=this.Zfa(),x=0;xthis.ss.length;)this.o_a();for(var v=!0,w=0;w1&&(w=this.Nj.get(v[v.length-1]),v=this.m2(w),v.jlb(w),v.setStyle(e.Aua)));this.R.get("displayAreaLabel")&&this.ii&& (v=this.m2(this.ii),v.fkb(this.ii),v.setStyle(e.YVa));this.V_a();this.S5();this.WC()};m.prototype.cHa=function(){var v=!this.Kj&&this.qd!="view";this.Nj.forEach(function(w){w.slb(v)})};m.prototype.cab=function(){this.ii&&this.ii.y$([this.R].concat(this.Zfa()).map(function(v){return this.Nj.get(v)}.bind(this)))};m.prototype.jxa=function(v){var w=this.Nj.get(v);w||(w=new c(this.R,this.Fa,this.Ub,v),this.Nj.set(v,w),this.BU.set(w,v),w.bind(n.fi,this.uCa,this,!0),w.bind(n.ma,this.tCa,this,!0),w.bind(n.Sa, this.vCa,this,!0),w.bind(n.$a,this.wCa,this,!0),w.bind(n.Jm,this.xCa,this,!1))};m.prototype.Dxa=function(v){var w=this.Nj.get(v);w&&(w.h(n.Jm,this.xCa,this,!1),w.h(n.fi,this.uCa,this,!0),w.h(n.ma,this.tCa,this,!0),w.h(n.Sa,this.vCa,this,!0),w.h(n.$a,this.wCa,this,!0),w.dispose(),this.Nj["delete"](v),this.BU["delete"](w))};m.prototype.o_a=function(){var v=new b(this.R,this.Ub);this.ss.push(v)};m.prototype.T_a=function(){this.ss.length!=0&&this.ss.pop().dispose()};m.prototype.n_a=function(){var v=new e(this.Fa, this.R,this.Ub);this.AH.push(v);return v};m.prototype.Y$a=function(){this.hN.clear()};m.prototype.m2=function(v){var w=this.AH.length>this.hN.size?this.AH[this.hN.size]:this.n_a();this.hN.set(v,w);return w};m.prototype.Tfa=function(v){return this.hN.get(v)};m.prototype.V_a=function(){for(;this.AH.length>this.hN.size;)this.S_a()};m.prototype.S_a=function(){this.AH.length!=0&&this.AH.pop().dispose()};m.prototype.JZa=function(){this.ii||(this.ii=new k(this.R,this.Ub))};m.prototype.R_a=function(){this.ii&& (this.ii.dispose(),this.ii=null)};m.prototype.T5=function(){this.R.set("draggingPoint",!!this.Kj)};var l=["points"],p=["mode"],q=["type"],r=["displayAreaLabel","displayDistanceLabel","displayPartialDistanceLabel"],t=["area"],u=["pointer"];return m}); define("tdv/player/view/model3d/renderer/adapters/objects/CanvasPlaneAdapter",["require","exports","tdv/binding/BindingsHandler","tdv/player/view/model3d/renderer/adapters/Mixins"],function(a,m,h,n){a=function(){function g(k,e,b,c,d){this.object=k;this.model=e;this.wb=b;this.renderer=d;this.he=this.he.bind(this);this.enabled=!1;this.F=null;h.ba(this.object,["enabled"],this.he,!0)}g.prototype.Wc=function(){};g.prototype.Xc=function(){};g.prototype.dispose=function(){this.disable();h.da(this.object, ["enabled"],this.he)};g.prototype.he=function(){this.object.get("enabled")?this.enable():this.disable()};g.prototype.enable=function(){this.enabled||(this.enabled=!0,this.F=this.wb.T.sc("CanvasPlane"),this.Wc())};g.prototype.disable=function(){this.enabled&&(this.enabled=!1,this.Xc(),this.F.T.dd(this.F),this.F=null)};return g}();a=n.wd(a);a=n.SK(a);a=n.Kf(a);a=n.F_(a);a=n.jL(a);a=n.pb(a);return a=n.Plane(a)}); define("tdv/player/view/model3d/renderer/adapters/objects/ChildAdapter","require exports three.mod tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/webgl/components tdv/player/view/model3d/renderer/adapters/BaseModelAdapter tdv/player/view/model3d/renderer/adapters/Mixins".split(" "),function(a,m,h,n,g,k,e,b,c){a=function(p){function q(r,t,u,v,w){r=p.call(this,r,t,u,w)||this;r.RA=r.RA.bind(r);r.wb=u;r.vr=new k;r.vr.bind(g.V,r.ym,r,!0);r.F.N(e.AB);r.F.N(e.LQ).object= r.object;n.ba(r.object,d,r.RA,!0);r.Wc();return r}P(q,p);q.prototype.Wc=function(){};q.prototype.Xc=function(){};q.prototype.dispose=function(){n.da(this.object,d,this.RA);this.vr.h(g.V,this.ym,this);this.vr=null;this.Xc();p.prototype.dispose.call(this)};q.prototype.ym=function(r){f.setFromQuaternion(r.data.quaternion,this.object.get("rotationOrder"));this.object.set({x:0,y:0,z:0,translationX:r.data.position.x,translationY:r.data.position.y,translationZ:r.data.position.z,rotationX:f.x*l,rotationY:f.y* l,rotationZ:f.z*l,scale:Math.max(r.data.scale,.001)});this.object.o(g.Jm)};q.prototype.RA=function(){if(this.object.get("positionDraggable")||this.object.get("rotationDraggable")||this.object.get("scaleDraggable")){var r=this.F.O(e.Hh,!0);r.translate=this.object.get("positionDraggable")||!1;r.rotate=this.object.get("rotationDraggable")||!1;r.scale=this.object.get("scaleDraggable")||!1;r.M=this.vr}else this.F.ka(e.Hh)};return q}(b);var d=["positionDraggable","rotationDraggable","scaleDraggable"],f= new h.Euler,l=180/Math.PI;h=c.wd(a);h=c.F_(h);h=c.SK(h);h=c.jL(h);h=c.pb(h);h=c.NVa(h);return h=c.rua(h)}); define("tdv/player/view/model3d/renderer/adapters/objects/ImagePlaneAdapter",["require","exports","tdv/binding/BindingsHandler","tdv/player/view/model3d/renderer/adapters/Mixins"],function(a,m,h,n){a=function(){function g(k,e,b,c,d){this.object=k;this.model=e;this.wb=b;this.renderer=d;this.he=this.he.bind(this);this.enabled=!1;this.F=null;h.ba(this.object,["enabled"],this.he,!0)}g.prototype.Wc=function(){};g.prototype.Xc=function(){};g.prototype.dispose=function(){this.disable();h.da(this.object, ["enabled"],this.he)};g.prototype.he=function(){this.object.get("enabled")?this.enable():this.disable()};g.prototype.enable=function(){this.enabled||(this.enabled=!0,this.F=this.wb.T.sc("ImagePlane"),this.Wc())};g.prototype.disable=function(){this.enabled&&(this.enabled=!1,this.Xc(),this.F.T.dd(this.F),this.F=null)};return g}();a=n.wd(a);a=n.SK(a);a=n.Ni(a);a=n.jL(a);a=n.pb(a);return a=n.Plane(a)}); define("tdv/player/view/model3d/renderer/adapters/objects/InnerObjectAdapter",["require","exports","tdv/binding/BindingsHandler","tdv/player/view/webgl/components","tdv/player/view/model3d/renderer/adapters/Mixins"],function(a,m,h,n,g){var k=["objectId"];a=function(){function e(b,c,d,f,l){this.object=b;this.model=c;this.wb=d;this.renderer=l;this.F=this.wb.T.sc("InnerObject");this.w3=this.w3.bind(this);h.ba(this.object,k,this.w3,!0);this.Wc()}e.prototype.Wc=function(){};e.prototype.Xc=function(){}; e.prototype.w3=function(){var b=this.F.O(n.fL,!0);b.id=this.object.get("objectId");b.container=this.wb};e.prototype.dispose=function(){this.Xc();h.da(this.object,k,this.w3);this.wb.T.dd(this.F);this.F=null};return e}();a=g.wd(a);a=g.SK(a);a=g.jL(a);return a=g.F_(a)}); define("tdv/player/view/model3d/renderer/adapters/objects/LineAdapter","require exports tdv/binding/BindingsHandler tdv/player/view/webgl/components tdv/player/view/model3d/renderer/adapters/Mixins three.mod".split(" "),function(a,m,h,n,g,k){var e=["x","y","z"],b=["targetX","targetY","targetZ"];a=function(){function c(d,f,l,p,q){this.object=d;this.model=f;this.wb=l;this.renderer=q;this.he=this.he.bind(this);this.s9=this.s9.bind(this);this.x9=this.x9.bind(this);this.enabled=!1;this.F=null;h.ba(this.object, ["enabled"],this.he,!0)}c.prototype.Wc=function(){};c.prototype.Xc=function(){};c.prototype.dispose=function(){this.disable();h.da(this.object,["enabled"],this.he)};c.prototype.he=function(){this.object.get("enabled")?this.enable():this.disable()};c.prototype.enable=function(){this.enabled||(this.enabled=!0,this.F=this.wb.T.sc("Line"),this.F.N(n.ta),this.F.N(n.Line),this.F.N(n.yu).position=new k.Vector3,h.ba(this.object,e,this.s9,!0),h.ba(this.object,b,this.x9,!0),this.Wc())};c.prototype.disable= function(){this.enabled&&(this.enabled=!1,this.Xc(),h.da(this.object,e,this.s9),h.da(this.object,b,this.x9),this.F.T.dd(this.F),this.F=null)};c.prototype.s9=function(){var d=this.F.O(n.ta);d.translationX=this.object.get("x",0);d.translationY=this.object.get("y",0);d.Ze=this.object.get("z",0)};c.prototype.x9=function(){var d=this.F.O(n.yu);d.position.x=this.object.get("targetX");d.position.y=this.object.get("targetY");d.position.z=this.object.get("targetZ")};return c}();a=g.wd(a);a=g.ei(a);return a= g.pb(a)}); define("tdv/player/view/model3d/renderer/adapters/objects/HorizonGridAdapter",["require","exports","tdv/binding/BindingsHandler","tdv/player/view/webgl/components","tdv/player/view/model3d/renderer/adapters/Mixins"],function(a,m,h,n,g){var k=["x","y","z"],e="divisions centerLinesColor depthTest gridColor opacity size".split(" ");a=function(){function b(c,d,f,l,p){this.object=c;this.model=d;this.wb=f;this.renderer=p;this.he=this.he.bind(this);this.OA=this.OA.bind(this);this.k9=this.k9.bind(this);this.enabled= !1;this.F=null;h.ba(this.object,["enabled"],this.he,!0)}b.prototype.Wc=function(){};b.prototype.Xc=function(){};b.prototype.dispose=function(){this.disable();h.da(this.object,["enabled"],this.he)};b.prototype.he=function(){this.object.get("enabled")?this.enable():this.disable()};b.prototype.enable=function(){this.enabled||(this.enabled=!0,this.F=this.wb.T.sc("HorizonGrid"),this.F.N(n.ta),this.F.N(n.wu),h.ba(this.object,k,this.OA,!0),h.ba(this.object,e,this.k9,!0),this.Wc())};b.prototype.disable=function(){this.enabled&& (this.enabled=!1,this.Xc(),h.da(this.object,k,this.OA),h.da(this.object,e,this.k9),this.F.T.dd(this.F),this.F=null)};b.prototype.OA=function(){var c=this.F.O(n.ta);c.translationX=this.object.get("x",0);c.translationY=this.object.get("y",0);c.Ze=this.object.get("z",0)};b.prototype.k9=function(){var c=this.F.O(n.wu);c.bJa=this.object.get("centerLinesColor");c.depthTest=this.object.get("depthTest");c.Hna=this.object.get("divisions");c.$La=this.object.get("gridColor");c.size=this.object.get("size")}; return b}();a=g.F_(a);return a=g.pb(a)}); define("tdv/player/view/model3d/renderer/adapters/objects/SphereAdapter",["require","exports","tdv/binding/BindingsHandler","tdv/player/view/webgl/components","tdv/player/view/model3d/renderer/adapters/Mixins"],function(a,m,h,n,g){var k=["radius","maxRadius","minRadius"];a=function(){function e(b,c,d,f,l){this.object=b;this.model=c;this.wb=d;this.renderer=l;this.he=this.he.bind(this);this.QA=this.QA.bind(this);this.enabled=!1;this.F=null;h.ba(this.object,["enabled"],this.he,!0)}e.prototype.Wc=function(){}; e.prototype.Xc=function(){};e.prototype.dispose=function(){this.disable();h.da(this.object,["enabled"],this.he)};e.prototype.he=function(){this.object.get("enabled")?this.enable():this.disable()};e.prototype.enable=function(){this.enabled||(this.enabled=!0,this.F=this.wb.T.sc("Sphere"),this.F.N(n.Sphere),this.F.N(n.Tk),h.ba(this.object,k,this.QA,!0),this.Wc())};e.prototype.disable=function(){this.enabled&&(this.enabled=!1,this.Xc(),h.da(this.object,k,this.QA),this.F.T.dd(this.F),this.F=null)};e.prototype.QA= function(){var b=this.F.O(n.Tk);b.Le=b.Ye=b.Gh=1;b.scale=this.object.get("radius");b.oE=this.object.get("maxRadius");b.pE=this.object.get("minRadius")};return e}();a=g.wd(a);a=g.SK(a);a=g.xd(a);a=g.pb(a);return a=g.rua(a)}); define("tdv/player/view/model3d/renderer/adapters/objects/ProjectedMaterialAdapter",["require","exports","tdv/binding/BindingsHandler","tdv/player/view/webgl/components","tdv/player/view/model3d/renderer/adapters/Mixins"],function(a,m,h,n,g){var k="cameraBox skyBox sourceAlpha sourceCubeTexture sourceX sourceY sourceYaw sourceZ targetAlpha targetCubeTexture targetX targetY targetYaw targetZ".split(" ");a=function(){function e(b,c,d,f,l){this.object=b;this.model=c;this.wb=d;this.Fpa=f;this.renderer= l;this.he=this.he.bind(this);this.v9=this.v9.bind(this);this.enabled=!1;this.F=null;h.ba(this.object,["enabled"],this.he,!0)}e.prototype.Wc=function(){};e.prototype.Xc=function(){};e.prototype.dispose=function(){this.disable();h.da(this.object,["enabled"],this.he)};e.prototype.he=function(){this.object.get("enabled")?this.enable():this.disable()};e.prototype.enable=function(){if(!this.enabled){this.enabled=!0;this.F=this.wb.T.sc("ProjectedMaterial");this.F.N(n.oo);var b=this.F.N(n.pb);b.F=this.wb; b.attach=!0;h.ba(this.object,k,this.v9,!0);this.Wc()}};e.prototype.disable=function(){this.enabled&&(this.enabled=!1,this.Xc(),h.da(this.object,k,this.v9),this.F.T.dd(this.F),this.F=null)};e.prototype.v9=function(){var b=this.F.O(n.oo);b.MA=this.object.get("nearPlane")||!1;b.RRa=this.object.get("skyBox")||!1;b.TRa=this.object.get("sourceAlpha")||0;b.aF=this.Fpa;b.O$=this.object.get("sourceX")||0;b.P$=this.object.get("sourceY")||0;b.Q$=this.object.get("sourceZ")||0;b.rZ=this.object.get("sourceYaw")|| 0;b.pZ=this.object.get("sourceCubeTexture");b.pSa=this.object.get("targetAlpha")||0;b.targetX=this.object.get("targetX")||0;b.targetY=this.object.get("targetY")||0;b.aaa=this.object.get("targetZ")||0;b.Dmb=this.object.get("targetYaw")||0;b.xZ=this.object.get("targetCubeTexture")};return e}();return g.pb(a)}); define("tdv/player/view/model3d/renderer/adapters/objects/SurfaceReticleAdapter","require tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/RenderOrder tdv/player/view/model3d/renderer/adapters/canvas/SurfaceReticleCanvas tdv/player/view/webgl/components".split(" "),function(a){function m(f,l,p,q,r){this.R=f;this.Fa=l;this.Ub=p;this.j=r;this.P=this.j.P;this.zs=this.zs.bind(this);this.cz=this.cz.bind(this);this.bp=this.bp.bind(this);this.sg=this.sg.bind(this);this.Lha=this.Ub.getComponent(e.Oi).Ap; this.Lha.bind(n.ia,this.dz,this,!1);this.Mha=this.vAa=!1;this.Pv=new k(this.P);this.Pv.setPosition(0);this.Pv.update();this.B=null;h.ba(this.R,["enabled"],this.zs,!0)}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/constants/RenderOrder"),k=a("tdv/player/view/model3d/renderer/adapters/canvas/SurfaceReticleCanvas"),e=a("tdv/player/view/webgl/components");m.prototype.zs=function(){this.R.get("enabled")?this.PG():this.es()};m.prototype.PG=function(){if(!this.B){this.B= this.Ub.T.sc("Reticle");var f=this.B.N(e.pb);f.F=this.Ub;f.id=this.R.get("parentId");this.B.N(e.Plane).renderOrder=g.$Va;this.B.N(e.Kf).source=this.Pv.If();this.B.N(e.AB);f=this.B.N(e.LQ);f.xmb=this.R;f.object=this.R;h.ba(this.Fa,d,this.cz,!0);h.ba(this.R,b,this.bp,!0);h.ba(this.R,c,this.sg,!0)}};m.prototype.es=function(){this.B&&(this.Ub.T.dd(this.B),this.B=null,h.da(this.Fa,d,this.cz),h.da(this.R,b,this.bp),h.da(this.R,c,this.sg))};m.prototype.cz=function(){var f=this.B.O(e.Tk,!0);f.Le=f.Ye=2;f.scale= this.Fa.get("surfaceReticleRadius");f.oE=this.Fa.get("surfaceReticleMaxRadius");f.pE=this.Fa.get("surfaceReticleMinRadius");this.ZGa()};m.prototype.bp=function(){var f=this.B.O(e.Ax,!0);f.x=this.R.get("x");f.y=this.R.get("y");f.z=this.R.get("z");f.distance=this.R.get("distance");f.GX=this.R.get("horizontal")};m.prototype.sg=function(){var f=this.B.O(e.wd,!0);f.pB=this.R.get("useHandCursor");f.eF=this.R.get("transparentAreaActive");f.M=this.R;f=this.B.O(e.Kf);f.opacity=this.R.get("opacity");f.hidden= this.R.get("hidden");f.depthTest=this.R.get("depthTest")};m.prototype.dz=function(){this.vAa=!0;this.ZGa()};m.prototype.ZGa=function(){var f=this.vAa&&this.Fa.get("opacity")>.5;this.Mha!=f&&(this.Mha=f)&&this.B&&this.B.O(e.Ax)};m.prototype.dispose=function(){this.es();h.da(this.R,["enabled"],this.zs);this.Lha.h(n.ia,this.dz,this,!1);this.Lha=null};var b=["distance","horizontal","x","y","z"],c=["depthTest","hidden","opacity","transparentAreaActive","useHandCursor"],d=["opacity","surfaceReticleRadius", "surfaceReticleMaxRadius","surfaceReticleMinRadius","surfaceSelectionEnabled"];return m}); define("tdv/player/view/model3d/renderer/adapters/objects/VideoPlaneAdapter",["require","exports","tdv/binding/BindingsHandler","tdv/player/view/model3d/renderer/adapters/Mixins"],function(a,m,h,n){a=function(){function g(k,e,b,c,d){this.object=k;this.model=e;this.wb=b;this.renderer=d;this.he=this.he.bind(this);this.enabled=!1;this.F=null;h.ba(this.object,["enabled"],this.he,!0)}g.prototype.Wc=function(){};g.prototype.Xc=function(){};g.prototype.dispose=function(){this.disable();h.da(this.object, ["enabled"],this.he)};g.prototype.he=function(){this.object.get("enabled")?this.enable():this.disable()};g.prototype.enable=function(){this.enabled||(this.enabled=!0,this.F=this.wb.T.sc("VideoPlane"),this.Wc())};g.prototype.disable=function(){this.enabled&&(this.enabled=!1,this.Xc(),this.F.T.dd(this.F),this.F=null)};return g}();a=n.wd(a);a=n.SK(a);a=n.qo(a);a=n.pb(a);a=n.jL(a);return a=n.Plane(a)}); define("tdv/player/view/model3d/renderer/adapters/objects/objects","require exports tdv/player/view/model3d/renderer/adapters/measure/MeasureAdapter tdv/player/view/model3d/renderer/adapters/objects/CanvasPlaneAdapter tdv/player/view/model3d/renderer/adapters/objects/ChildAdapter tdv/player/view/model3d/renderer/adapters/objects/ImagePlaneAdapter tdv/player/view/model3d/renderer/adapters/objects/InnerObjectAdapter tdv/player/view/model3d/renderer/adapters/objects/LineAdapter tdv/player/view/model3d/renderer/adapters/objects/HorizonGridAdapter tdv/player/view/model3d/renderer/adapters/objects/SphereAdapter tdv/player/view/model3d/renderer/adapters/objects/ObjectAdapterFactory tdv/player/view/model3d/renderer/adapters/objects/ProjectedMaterialAdapter tdv/player/view/model3d/renderer/adapters/objects/SurfaceReticleAdapter tdv/player/view/model3d/renderer/adapters/objects/VideoPlaneAdapter".split(" "),function(a, m,h,n,g,k,e,b,c,d,f,l,p,q){return{jB:function(){f.Wt("MeasureModel3DObject",h);f.Wt("ChildModel3DObject",g);f.Wt("HorizonGridModel3DObject",c);f.Wt("CanvasPlaneModel3DObject",n);f.Wt("ImagePlaneModel3DObject",k);f.Wt("InnerModel3DObject",e);f.Wt("LineModel3DObject",b);f.Wt("ProjectedMaterialModel3DObject",l);f.Wt("SphereModel3DObject",d);f.Wt("SurfaceReticleModel3DObject",p);f.Wt("VideoPlaneModel3DObject",q)}}}); define("tdv/view/events/MouseEvent",["require","exports","tdv/events/Event"],function(a,m,h){return function(n){function g(k,e,b,c,d,f,l,p){e===void 0&&(e=0);b===void 0&&(b=0);c===void 0&&(c=0);d===void 0&&(d=0);f===void 0&&(f=0);l===void 0&&(l=0);p===void 0&&(p=null);k=n.call(this,k)||this;k.x=e;k.y=b;k.pageX=c;k.pageY=d;k.delta=f;k.lA=l;k.F9=p;k.movementX=p&&p.movementX||void 0;k.movementY=p&&p.movementY||void 0;return k}P(g,n);g.prototype.clone=function(){var k=new g(this.name,this.x,this.y,this.pageX, this.pageY,this.delta,this.lA,this.F9);k.source=this.source;return k};return g}(h)}); define("tdv/player/view/model3d/renderer/adapters/pointer/FirstPersonPointerAdapter","require exports tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/Key tdv/view/events/MouseEvent tdv/events/EventDispatcher tdv/player/view/util/Device tdv/utils tdv/view/util/MouseLocker tdv/player/parser/ClassInfo".split(" "),function(a,m,h,n,g,k,e,b,c,d,f){return function(l){function p(q,r,t,u,v){var w=l.call(this)||this;w.LJ=[];w.WHa=0;w.RHa=0;w.d7=!1;w.mKa=!1;w.mpa=!1;w.jNa=0;w.renderer=q;w.ci= r;w.model=t;w.wb=u;w.Ea=v;w.Zv=w.Zv.bind(w);w.O6=w.O6.bind(w);w.zna=c.lr(w.zna,w);w.JA=w.JA.bind(w);w.G8=w.G8.bind(w);w.F8=w.F8.bind(w);w.eb=w.renderer.P;w.Rf=w.renderer.getParent();w.enabled=!0;w.type=p.NQ;w.Wa();return w}P(p,l);p.prototype.getType=function(){return this.type};p.prototype.Ra=function(q){this.enabled=q};p.prototype.dispose=function(){this.ya()};p.prototype.Wa=function(){this.Rf.bind(n.gb,this.Zv,this,!0);this.Rf.bind(n.ma,this.QHa,this,!0);h.KD(this.model,["camera.lockMouse"],this.O6, !0);h.KD(this.model,["objects"],this.JA,!0);this.wm=new d(this.Rf.wa().cc());this.wm.bind(n.V,this.SNa,this,!0);document.addEventListener("keyup",this.G8);document.addEventListener("keydown",this.F8);this.eu(p.NQ)};p.prototype.ya=function(){this.Rf.h(n.gb,this.Zv,this);this.Rf.h(n.ma,this.QHa,this);h.da(this.model,["camera.lockMouse"],this.O6);h.da(this.model,["objects"],this.JA);this.eZ([]);this.wm.h(n.V,this.SNa,this);this.wm.hr()&&this.wm.unlock();this.kRa(!1);this.wm.dispose();document.removeEventListener("keyup", this.G8);document.removeEventListener("keydown",this.F8)};p.prototype.O6=function(){this.RX=!b.ub()&&this.model.get("camera").get("lockMouse");!this.RX&&this.wm.hr()&&this.wm.unlock();this.mTa()};p.prototype.mTa=function(){this.kRa((!this.d7||!this.mKa)&&(b.ub()||!this.RX))};p.prototype.kRa=function(q){this.mpa!=q&&((this.mpa=q)?this.eb.US.v6():this.eb.US.Y9())};p.prototype.Zv=function(){this.wm.hr()||this.eu(p.NQ)};p.prototype.F8=function(q){p.oVa.indexOf(q.code)!=-1&&(this.type==p.NQ&&this.eu(p.Lba), this.RX&&!this.wm.hr()&&this.wm.lock())};p.prototype.G8=function(q){q.code==g.ua.iL&&(q=(new Date).getTime(),this.XSa(n.ma),q-this.jNa<500&&this.XSa(n.fi),this.jNa=q)};p.prototype.XSa=function(q){var r=this.eb.nb()/2,t=this.eb.Mb()/2;q=new k(q,r,t,r,t,0,0,void 0);this.Rf.o(q)};p.prototype.QHa=function(){this.RHa=(new Date).getTime();this.RX&&!this.wm.hr()?this.wm.lock():this.zna()};p.prototype.$cb=function(){this.RX&&this.wm.hr()&&this.wm.unlock()};p.prototype.SNa=function(){this.wm.hr()?this.eu(p.Lba): this.eu(p.NQ)};p.prototype.JA=function(){this.eZ(this.model.get("objects",[]))};p.prototype.eZ=function(q){var r=this;this.LJ.forEach(function(t){t.h(n.ma,r.eOa,r)});this.LJ=q;this.LJ.forEach(function(t){t.bind(n.ma,r.eOa,r,!0);f.Oa("MeasureModel3DObject",t)&&(t.bind(n.L("draggingPoint"),r.YX,r,!0),t.bind(n.L("mode"),r.YX,r,!0))});this.YX()};p.prototype.eOa=function(q){q.source.get("useHandCursor")&&(this.WHa=(new Date).getTime())};p.prototype.YX=function(){var q=!1,r=!1;this.LJ.forEach(function(u){f.Oa("MeasureModel3DObject", u)&&(r=r||!!u.get("draggingPoint"),q=q||u.get("mode")=="edit"&&!!u.get("draggingPoint"))});this.mKa=q;var t=this.model.get("camera");r!=this.d7&&(this.d7=r,setTimeout(function(){t.rkb(this.d7)}.bind(this),0));this.mTa()};p.prototype.zna=function(){Math.abs(this.RHa-this.WHa)>100&&this.$cb()};p.prototype.eu=function(q){this.type!==q&&(this.type=q,this.o(n.V))};p.NQ="mouse";p.Lba="gaze";p.oVa=[g.ua.bk,g.ua.Ji,g.ua.fb,g.ua.Db,g.ua.Mp,g.ua.Sp,g.ua.so,g.ua.po,g.ua.E,g.ua.Q];return p}(e)}); define("tdv/player/view/model3d/renderer/adapters/pointer/GazePointerAdapter","require exports three.mod tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/RenderOrder tdv/player/canvas/ReticleCanvas tdv/player/view/model3d/renderer/adapters/cursor/InstanceCursorManager tdv/player/view/webgl/components tdv/view/constants/Cursor tdv/view/util/Animation".split(" "),function(a,m,h,n,g,k,e,b,c,d,f){var l=new h.Vector3(0,0,0),p=new h.Vector3(0,0,-1);a=function(){function r(t,u,v,w,y){this.renderer= t;this.ci=u;this.model=v;this.wb=w;this.Ea=y;this.EZ=this.EZ.bind(this);this.ZA=this.ZA.bind(this);this.dA=this.dA.bind(this);this.eb=this.renderer.P;this.Rf=this.renderer.getParent();this.Mw=this.model.get("application").Ai("Model3DPointer");this.Wa()}r.prototype.Ra=function(t){var u=this.Ea.O(c.zc);u&&(u.enabled=t)};r.prototype.dispose=function(){this.ya()};r.prototype.Wa=function(){this.YP=new e(this.eb.Y7());this.Meb=new q(this.Rf,this.YP);this.xp=new b;this.xp.VQa(this.Meb);var t=this.Ea.N(c.zc); t.Ea=this.Ea;t.origin=l;t.direction=p;t.WD=this.Rf;t.c7=this.xp;t.M=this.Mw;this.eb.set("toolTipCentered",!0);this.model.set("pointer",this.Mw);this.Hlb();this.Ira();this.xp.push(d.$F);f.requestFrame(this.EZ)};r.prototype.ya=function(){this.xp.pop(d.$F);this.Fmb();this.esa();this.eb.set("toolTipCentered",!1);this.eb.set("toolTipCenteredOffsetY",void 0);this.model.set("pointer",void 0);this.Ea.ka(c.zc);this.xp.dispose();f.$Ia(this.EZ)};r.prototype.Ira=function(){this.Fp=this.wb.T.sc("GazeReticle"); this.Fp.N(c.pb).F=this.Ea;this.Fp.N(c.Plane).renderOrder=k.SUa;this.Fp.N(c.SF);var t=this.Fp.N(c.Kf);t.source=this.YP.If();t.depthTest=!1;this.Fp.N(c.ta).Ze=-1;this.renderer.bind(g.$b,this.ZA,this,!0);this.ZA();this.BW(this.Ea.getComponent(c.zc),this.Mw)};r.prototype.BW=function(t,u){u.set("originX",t.origin.x);u.set("originY",t.origin.y);u.set("originZ",t.origin.z);u.set("directionX",t.direction.x);u.set("directionY",t.direction.y);u.set("directionZ",t.direction.z)};r.prototype.esa=function(){this.Fp&& (this.Fp.T.dd(this.Fp),this.Fp=null)};r.prototype.Qnb=function(){if(this.Fp){var t=this.Fp.O(c.Tk,!0);t.Le=t.Ye=2;var u=Math.min(this.eb.nb(),this.eb.Mb())/100;t.pE=t.oE=Math.round(u*4);this.eb.set("toolTipCenteredOffsetY",2*u)}};r.prototype.EZ=function(t){this.Fp&&this.YP.update(t)&&(this.Fp.O(c.Kf).uK=(new Date).getTime());f.requestFrame(this.EZ)};r.prototype.ZA=function(){this.Qnb()};r.prototype.Hlb=function(){n.KD(this.model,"camera",this.dA,!0)};r.prototype.Fmb=function(){n.da(this.model,"camera", this.dA);this.WQa(!0)};r.prototype.dA=function(){this.WQa(!1)};r.prototype.WQa=function(t){var u=this.Ea.O(c.MF);u&&(u.PO=t);(u=this.Ea.O(c.NF))&&(u.PO=t);(u=this.Ea.O(c.UF))&&(u.PO=t)};return r}();var q=function(){function r(t,u){this.Rf=t;this.YP=u}r.prototype.PLa=function(){return this.Rf};r.prototype.j$=function(t,u){u.indexOf(d.qf)>-1?this.YP.oK(!0):this.YP.oK(!1)};return r}();return a}); define("tdv/player/view/model3d/renderer/adapters/pointer/XRPointerAdapter","require exports three.mod tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/model3d/renderer/adapters/cursor/InstanceCursorManager tdv/player/view/webgl/components tdv/player/view/util/Device tdv/player/view/util/XR tdv/view/constants/Cursor tdv/player/parser/ClassInfo".split(" "),function(a,m,h,n,g,k,e,b,c,d,f,l,p){a=function(){function v(w,y,x,z,A,D){this.LJ= [];this.ZX=[];this.renderer=w;this.ci=y;this.model=x;this.En=z;this.wb=A;this.Ea=D;this.JA=this.JA.bind(this);this.Tt=[];this.enabled=!1;this.Wa()}v.prototype.Ra=function(w){this.enabled!==w&&((this.enabled=w)?n.KD(this.model,["objects"],this.JA,!0):(n.da(this.model,["objects"],this.JA),this.eZ([])))};v.prototype.dispose=function(){this.ya()};v.prototype.Wa=function(){f.M.bind(g.Zd,this.Kg,this,!0)};v.prototype.ya=function(){f.M.h(g.Zd,this.Kg,this);this.lZ([])};v.prototype.Kg=function(){this.lZ(f.ud)}; v.prototype.lZ=function(w){if(!this.enabled||w.find(function(z){return z.eA}))w=[];var y=this.Tt;this.Tt=w.map(function(z){var A=y.findIndex(function(D){return D.cb==z});return A!==-1?y.splice(A,1)[0]:new q(z,this.model,this.En,this.wb,this.Ea)}.bind(this));y.forEach(function(z){z.dispose()});this.Tt.forEach(function(z){z.Ra(this.enabled);z.update()}.bind(this));var x=this.Tt.reduce(function(z,A){return!z||z.nA-1};return v}();return a}); define("tdv/player/view/model3d/renderer/adapters/pointer/MousePointerAdapter","require exports three.mod tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/model3d/renderer/adapters/cursor/InstanceCursorManager tdv/player/view/util/geo/Fov tdv/player/view/webgl/components".split(" "),function(a,m,h,n,g,k,e,b,c){var d=new h.Vector3(0,0,0),f=Math.PI/180,l=new h.Vector3;return function(){function p(q,r,t,u,v){this.renderer=q;this.ci=r;this.model=t;this.wb= u;this.Ea=v;this.v7=this.v7.bind(this);this.ZA=this.ZA.bind(this);this.Zv=this.Zv.bind(this);this.eb=this.renderer.P;this.Rf=this.renderer.getParent();this.Mw=this.model.get("application").Ai("Model3DPointer");this.enabled=!0;this.Wa()}p.prototype.Ra=function(q){this.enabled=q;var r=this.Ea.O(c.zc);r&&(r.enabled=q)};p.prototype.dispose=function(){this.ya()};p.prototype.Wa=function(){this.Fi=new k;var q=this.Ea.N(c.zc);q.Ea=this.Ea;q.origin=d;q.direction=new h.Vector3;q.WD=this.Fi;q.M=this.Mw;this.xp= new e;this.xp.au(this.Rf);q.c7=this.xp;q.enabled=this.enabled;n.ba(this.model,["camera.fov"],this.v7,!0);this.renderer.bind(g.$b,this.ZA,this,!0);this.Rf.rcb(g.Sa,this.UHa,this);this.Rf.bind(g.gb,this.Zv,this,!0);this.Rf.bind(g.$a,this.VHa,this,!0);this.Rf.bind(g.ma,this.SHa,this,!0);this.Rf.bind(g.fi,this.THa,this,!0);this.model.set("picker",this);this.model.set("pointer",this.Mw)};p.prototype.ya=function(){n.da(this.model,["camera.fov"],this.v7);this.renderer.h(g.$b,this.ZA,this);this.Rf.h(g.Sa, this.UHa,this);this.Rf.h(g.gb,this.Zv,this);this.Rf.h(g.$a,this.VHa,this);this.Rf.h(g.ma,this.SHa,this);this.Rf.h(g.fi,this.THa,this);this.Ea.ka(c.zc);this.xp.dispose();this.model.set("picker",void 0);this.model.set("pointer",void 0)};p.prototype.ZA=function(){this.Asa()};p.prototype.v7=function(){this.Asa()};p.prototype.UHa=function(q){var r=q.clone();r.name=g.gb;this.Zv(r);this.Fi.o(q)};p.prototype.Zv=function(q){this.Yhb=q.x;this.Zhb=q.y;this.Asa();this.Fi.o(q)};p.prototype.VHa=function(q){this.Fi.o(q)}; p.prototype.SHa=function(q){this.Fi.o(q)};p.prototype.THa=function(q){this.Fi.o(q)};p.prototype.Asa=function(){var q=this.Ea.O(c.zc);this.wLa(this.Yhb,this.Zhb,q.direction);this.BW(q,this.Mw)};p.prototype.BW=function(q,r){r.set("originX",q.origin.x);r.set("originY",q.origin.y);r.set("originZ",q.origin.z);r.set("directionX",q.direction.x);r.set("directionY",q.direction.y);r.set("directionZ",q.direction.z)};p.prototype.wLa=function(q,r,t){var u;t=t||new h.Vector3;var v=((u=this.model.get("camera"))=== null||u===void 0?void 0:u.get("fov"))||90;u=this.eb.nb();var w=this.eb.Mb();q===void 0&&(q=u/2);r===void 0&&(r=w/2);t.set(q-u/2,w/2-r,-u/(Math.tan((u>w?v:b.yr(v,u,w))*f/2)*2)).normalize();return t};p.prototype.pqa=function(q,r){var t=this.Ea.getComponent(c.zc);if(t&&t.St)return t.St.pqa([this.wb],d,this.wLa(q,r,l))};return p}()}); define("tdv/player/view/model3d/renderer/adapters/pointer/PointerAdapter","require exports tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/view/model3d/renderer/adapters/pointer/FirstPersonPointerAdapter tdv/player/view/model3d/renderer/adapters/pointer/GazePointerAdapter tdv/player/view/model3d/renderer/adapters/pointer/XRPointerAdapter tdv/player/view/model3d/renderer/adapters/pointer/MousePointerAdapter tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k,e,b,c){return function(){function d(f, l,p,q,r,t){this.renderer=f;this.ci=l;this.model=p;this.En=q;this.wb=r;this.Ea=t;this.enabled=!0;this.dA=this.dA.bind(this);this.Wa()}d.prototype.Ra=function(f){var l;this.enabled=f;(l=this.iJ)===null||l===void 0||l.Ra(this.enabled)};d.prototype.dispose=function(){this.ya()};d.prototype.Wa=function(){h.ba(this.model,"camera",this.dA,!1);c.M.bind(n.V,this.MTa,this,!0);this.Dsa()};d.prototype.ya=function(){h.da(this.model,"camera",this.dA);c.M.h(n.V,this.MTa,this);this.eu("none");this.uSa()};d.prototype.dA= function(){this.Dsa()};d.prototype.MTa=function(){this.Dsa()};d.prototype.Dsa=function(){c.isPresenting?this.eu("xr"):this.model.get("camera").get("class")=="FirstPersonModel3DCamera"?this.Qlb():(this.uSa(),this.eu("mouse"))};d.prototype.Qlb=function(){this.$O||(this.$O=new g(this.renderer,this.ci,this.model,this.wb,this.Ea),this.$O.bind(n.V,this.qOa,this,!0),this.qOa())};d.prototype.uSa=function(){var f;this.$O&&((f=this.$O)===null||f===void 0||f.dispose(),this.$O=void 0)};d.prototype.qOa=function(){var f; switch((f=this.$O)===null||f===void 0?void 0:f.getType()){case g.Lba:this.eu("gaze");break;default:this.eu("mouse")}};d.prototype.eu=function(f){var l;if(this.type!==f){this.iJ&&this.iJ.dispose();this.type=f;switch(this.type){case "mouse":this.iJ=new b(this.renderer,this.ci,this.model,this.wb,this.Ea);break;case "gaze":this.iJ=new k(this.renderer,this.ci,this.model,this.wb,this.Ea);break;case "xr":this.iJ=new e(this.renderer,this.ci,this.model,this.En,this.wb,this.Ea);break;default:this.iJ=void 0}(l= this.iJ)===null||l===void 0||l.Ra(this.enabled)}};return d}()}); define("tdv/player/view/model3d/renderer/adapters/postprocessing/AmbientOcclusionPostprocessingAdapter",["require","tdv/binding/BindingsHandler","tdv/player/view/webgl/components"],function(a){function m(k,e){this.Pc=k;this.ee=e;this.ha=!1;this.$i=this.$i.bind(this);h.ba(this.Pc,g,this.$i,!0)}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/player/view/webgl/components");m.prototype.$i=function(){var k=this.Pc.get("enabled")&&!this.Pc.get("disabled");this.ha!=k&&(this.ha&&this.ee.ka(n.LK),(this.ha= k)&&this.ee.N(n.LK));this.ha&&(k=this.ee.O(n.LK),k.lKa=this.Pc.get("easingDuration"),k.bias=this.Pc.get("bias"),k.intensity=this.Pc.get("intensity"),k.scale=this.Pc.get("scale"),k.gNa=this.Pc.get("kernelRadius"),k.INa=this.Pc.get("minResolution"),k.cna=this.Pc.get("blurRadius"),k.output=this.Pc.get("output")=="ao"?THREE.SAOPass.OUTPUT.SAO:THREE.SAOPass.OUTPUT.Default)};m.prototype.dispose=function(){this.ee.ka(n.LK);this.ee=null;h.da(this.Pc,g,this.$i)};var g="disabled enabled bias easingDuration intensity scale kernelRadius minResolution blurRadius output".split(" "); return m}); define("tdv/player/view/model3d/renderer/adapters/postprocessing/AntialiasPostprocessingAdapter",["require","tdv/binding/BindingsHandler","tdv/player/view/webgl/components"],function(a){function m(k,e){this.Pc=k;this.ee=e;this.ha=!1;this.$i=this.$i.bind(this);h.ba(this.Pc,g,this.$i,!0)}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/player/view/webgl/components");m.prototype.$i=function(){var k=this.Pc.get("enabled")&&!this.Pc.get("disabled");this.ha!=k&&(this.ha&&this.ee.ka(n.oF),(this.ha=k)&&this.ee.N(n.oF)); this.ha&&(k=this.ee.O(n.oF),k.RKa=this.Pc.get("mode")=="fxaa",k.fSa=this.Pc.get("mode")=="ssaa",k.sZ=this.Pc.get("ssaaSampleLevel"))};m.prototype.dispose=function(){this.ee.ka(n.oF);this.ee=null;h.da(this.Pc,g,this.$i)};var g=["disabled","enabled","mode","ssaaSampleLevel"];return m}); define("tdv/player/view/model3d/renderer/adapters/postprocessing/MotionBlurPostprocessingAdapter",["require","tdv/binding/BindingsHandler","tdv/player/view/webgl/components"],function(a){function m(k,e){this.Pc=k;this.ee=e;this.ha=!1;this.$i=this.$i.bind(this);h.ba(this.Pc,g,this.$i,!0)}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/player/view/webgl/components");m.prototype.$i=function(){var k=this.Pc.get("enabled")&&!this.Pc.get("disabled");this.ha!=k&&(this.ha&&this.ee.ka(n.OQ),(this.ha=k)&&this.ee.N(n.OQ)); this.ha&&(k=this.ee.O(n.OQ),k.vQa=this.Pc.get("samples"),k.intensity=this.Pc.get("intensity"))};m.prototype.dispose=function(){this.ee.ka(n.OQ);this.ee=null;h.da(this.Pc,g,this.$i)};var g=["disabled","enabled","samples","intensity"];return m}); define("tdv/player/view/model3d/renderer/adapters/postprocessing/VignettePostprocessingAdapter",["require","tdv/binding/BindingsHandler","tdv/player/view/webgl/components"],function(a){function m(k,e){this.Pc=k;this.ee=e;this.$i=this.$i.bind(this);h.ba(this.Pc,g,this.$i,!0)}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/player/view/webgl/components");m.prototype.$i=function(){var k=this.Pc.get("enabled")&&!this.Pc.get("disabled");this.ha!=k&&(this.ha&&this.ee.ka(n.lL),(this.ha=k)&&this.ee.N(n.lL)); this.ha&&(k=this.ee.O(n.lL),k.HMa=this.Pc.get("innerRadius"),k.kPa=this.Pc.get("outerRadius"),k.color=this.Pc.get("color"),k.opacity=this.Pc.get("opacity"))};m.prototype.dispose=function(){this.ee.ka(n.lL);this.ee=null;h.da(this.Pc,g,this.$i)};var g="enabled disabled opacity color innerRadius outerRadius".split(" ");return m}); define("tdv/player/view/model3d/renderer/adapters/postprocessing/PostprocessingArrayAdapter","require exports tdv/player/view/model3d/renderer/adapters/ArrayAdapter tdv/player/view/model3d/renderer/adapters/postprocessing/AmbientOcclusionPostprocessingAdapter tdv/player/view/model3d/renderer/adapters/postprocessing/AntialiasPostprocessingAdapter tdv/player/view/model3d/renderer/adapters/postprocessing/MotionBlurPostprocessingAdapter tdv/player/view/model3d/renderer/adapters/postprocessing/VignettePostprocessingAdapter tdv/player/parser/ClassInfo".split(" "),function(a, m,h,n,g,k,e,b){return function(){function c(d,f){this.model=d;this.Od=f;this.filter=this.filter.bind(this);this.fe=this.fe.bind(this);this.Xg=this.Xg.bind(this);this.vY=new h;this.vY.filter=this.filter;this.vY.fe=this.fe;this.vY.Xg=this.Xg;this.vY.jB(this.model,"postprocessing")}c.prototype.filter=function(d){return b.Oa("AmbientOcclusionModel3DPostprocessing",d)||b.Oa("AntialiasModel3DPostprocessing",d)||b.Oa("MotionBlurModel3DPostprocessing",d)||b.Oa("VignetteModel3DPostprocessing",d)};c.prototype.fe= function(d){return b.Oa("AmbientOcclusionModel3DPostprocessing",d)?new n(d,this.Od):b.Oa("AntialiasModel3DPostprocessing",d)?new g(d,this.Od):b.Oa("MotionBlurModel3DPostprocessing",d)?new k(d,this.Od):b.Oa("VignetteModel3DPostprocessing",d)?new e(d,this.Od):null};c.prototype.Xg=function(d,f){f.dispose()};c.prototype.dispose=function(){this.vY.dispose()};return c}()}); define("tdv/player/view/util/ScreenFrameRateMonitor",["require","exports"],function(){var a=function(){function m(){}m.init=function(){for(var h=0;h<=m.Qba;h++)m.coa.push(0);window.requestAnimationFrame(m.Bp)};m.hLa=function(){return m.frameRate};m.Bp=function(h){m.KJ!==0&&(m.coa[Math.min(Math.round(1E3/(h-m.KJ)),m.Qba)]++,m.ZP++);m.KJ=h;m.ZPh&&(h=k,n= g)}m.frameRate=n};m.Qba=200;m.gVa=60;m.coa=[];m.KJ=0;m.ZP=0;m.frameRate=60;return m}();a.init();return a}); define("tdv/player/view/model3d/renderer/adapters/ScenePixelRatioAdapter","require exports tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/util/Flags tdv/player/view/webgl/components tdv/player/view/util/ScreenFrameRateMonitor".split(" "),function(a,m,h,n,g,k,e,b){a=function(){function f(l,p){this.tE=this.enabled=!1;this.XNa=this.YNa=0;this.model=l;this.Od=p;this.hsa=this.hsa.bind(this);this.b9=this.b9.bind(this);this.t9=this.t9.bind(this);h.ba(this.model, "pixelRatioMinScale",this.t9,!0)}f.prototype.dispose=function(){this.disable();h.da(this.model,"pixelRatioMinScale",this.t9)};f.prototype.t9=function(){this.disable();this.model.get("pixelRatioMinScale")<1&&this.enable()};f.prototype.disable=function(){this.enabled&&(this.enabled=!1,this.Gp(!1),this.PP.h(n.V,this.LOa,this),h.da(this.model,"camera.x camera.y camera.z camera.yaw camera.pitch camera.fov camera.distance".split(" "),this.b9),this.PP.dispose())};f.prototype.enable=function(){this.enabled|| (this.enabled=!0,this.PP=new c(this.model.get("pixelRatioMinScale")),this.PP.bind(n.V,this.LOa,this,!0),h.ba(this.model,"camera.x camera.y camera.z camera.yaw camera.pitch camera.fov camera.distance".split(" "),this.b9,!0))};f.prototype.b9=function(){this.YNa=Date.now();this.Gp(!0)};f.prototype.hsa=function(){Date.now()-this.YNa>f.dua&&this.Gp(!1)};f.prototype.Gp=function(l){this.tE!==l&&((this.tE=l)?(this.XNa=window.setInterval(this.hsa,f.dua),this.PP.enable()):(window.clearInterval(this.XNa),this.PP.disable()), this.tTa())};f.prototype.LOa=function(){this.tTa()};f.prototype.tTa=function(){var l=this.tE&&this.enabled?this.PP.xA():1;this.Od.getComponent(e.Scene).L9!=l&&(this.Od.O(e.Scene).L9=l)};f.dua=100;return f}();var c=function(f){function l(p){var q=f.call(this)||this;q.NE=[];q.zP=0;q.Bp=q.Bp.bind(q);q.kcb(p);q.reset();return q}P(l,f);l.prototype.kcb=function(p){for(var q=1;q>p;q-=.1)this.NE.push(q);Math.abs(p-this.NE[this.NE.length-1])>d&&this.NE.push(p);k.uu&&console.log("steps = ["+this.NE.map(function(r){return r.toFixed(2)}).join(", ")+ "]")};l.prototype.reset=function(){this.disable();this.KJ=0;this.hK=.5;this.ppa=0;this.scale=this.NE.length*.5;this.Uqa=Math.floor(this.scale);this.iJa();this.enable()};l.prototype.enable=function(){!this.zP&&this.hK>l.Hta&&(this.zP=window.requestAnimationFrame(this.Bp))};l.prototype.disable=function(){this.zP&&(window.cancelAnimationFrame(this.zP),this.zP=0)};l.prototype.xA=function(){return this.NE[this.Uqa]};l.prototype.dispose=function(){this.disable()};l.prototype.Bp=function(p){this.KJ!==0&& (this.znb(p-this.KJ),this.Knb());this.KJ=p;this.zP=this.hK>l.Hta?window.requestAnimationFrame(this.Bp):0};l.prototype.znb=function(p){for(this.fX.push(p);this.fX.length>l.PUa;)this.fX.shift(),this.$I=this.fX.reduce(function(q,r){return q+r},0)/this.fX.length};l.prototype.iJa=function(){this.fX=[];this.$I=void 0};l.prototype.Knb=function(){if(this.$I!==void 0){var p=1E3/b.hLa(),q=p*l.kVa;p=Math.max(1E3/l.lVa,p*l.eVa);if(this.$I<=p)var r=-1;else if(this.$I>q)r=1;else{k.uu&&console.log("["+q.toFixed(2)+ " > "+this.$I.toFixed(2)+" > "+p.toFixed(2)+"]");return}this.ppa&&this.ppa!==r&&(this.hK*=l.QVa);this.ppa=r;this.scale=Math.min(Math.max(this.scale+r*this.hK,0),this.NE.length-1);r==1?k.uu&&console.log("["+this.$I.toFixed(2)+" > "+q.toFixed(2)+"]",this.scale.toFixed(2),"("+(r*this.hK).toFixed(2)+")"):r==-1&&k.uu&&console.log("["+this.$I.toFixed(2)+" <= "+p.toFixed(2)+"]",this.scale.toFixed(2),"("+(r*this.hK).toFixed(2)+")");q=Math.round(this.scale);this.Uqa!==q&&(this.iJa(),this.Uqa=q,this.o(n.V))}}; l.kVa=1.5;l.eVa=1.1;l.PUa=15;l.QVa=.75;l.Hta=.01;l.lVa=60;return l}(g),d=1E-6;return a}); define("tdv/player/view/model3d/renderer/adapters/SceneAdapter","require exports tdv/constants/EventName tdv/player/view/webgl/components tdv/player/view/webgl/system/util/entity/Util tdv/player/view/model3d/renderer/adapters/CameraAdapter tdv/player/view/model3d/renderer/adapters/lights/LightsAdapter tdv/player/view/model3d/renderer/adapters/ModelAdapter tdv/player/view/model3d/renderer/adapters/MenuAdapter tdv/player/view/model3d/renderer/adapters/ToolTipAdapter tdv/player/view/model3d/renderer/adapters/SurfaceSelectorPointerAdapter tdv/player/view/model3d/renderer/adapters/objects/NearestObjectsVisibleAdapter tdv/player/view/model3d/renderer/adapters/objects/objects tdv/player/view/model3d/renderer/adapters/pointer/PointerAdapter tdv/player/view/model3d/renderer/adapters/postprocessing/PostprocessingArrayAdapter tdv/player/view/model3d/renderer/adapters/ScenePixelRatioAdapter tdv/player/view/util/XR".split(" "),function(a, m,h,n,g,k,e,b,c,d,f,l,p,q,r,t,u){var v=function(y){return y.map(function(x){return String.fromCharCode(x)}).join("")}([119,97,116,101,114,109,97,114,107]),w="anisotropicFilteringLevel bakedTextures environmentURL backgroundImageURL backgroundPanoramaURL backgroundColor fogColor fogDensity opacity encoding environmentIntensity".split(" ");p.jB();return function(){function y(x,z,A){var D=this;this.renderer=x;this.ci=z;this.model=A;this.eb=this.renderer.P;this.enabled=!0;this.nj=!1;this.model.Qqa(); this.Od=this.ci.sc("Scene");x=this.Od.N(n.Scene);x.Wna=this.model.O7().rO(this.model.S7().hw(.1),.1);x.M=this.model;x.locked=!0;this.En=this.ci.sc("Anchor");this.En.N(n.mF);this.En.N(n.Group);this.En.N(n.pb).F=this.Od;this.LNa=new b(this.model,this.model,this.En,this.renderer);this.wb=this.LNa.mj();x.Ea=this.Ea=this.ci.sc("PerspectiveCamera");this.Ea.N(n.pb).F=this.En;this.N6=new k(this.renderer,this.model,this.wb,this.Ea);this.N6.Vw(!0);this.Thb=new c(this.model,this.wb,this.Ea);this.Zjb=new t(this.model, this.Od);this.Ohb=new e(this.model,this.wb,this.En,this.Ea);this.BPa=new q(this.renderer,this.ci,this.model,this.En,this.wb,this.Ea);w.forEach(function(F){D.model.bind(h.L(F),D.cqa,D,!0)});this.ijb=new r(this.model,this.Od);this.ci.bIa(this.Od);this.aib=new l(this.model,this.wb,this.Ea);this.ymb=new f(this.model,this.wb,this.renderer);this.Tmb=new d(this.renderer,this.model);u.M.bind(h.V,this.Ta,this,!0);this.cqa();this.Ta()}y.prototype.Vw=function(x){this.Od.O(n.Scene).locked=x;this.N6.Vw(x)};y.prototype.Ra= function(x){this.enabled!==x&&(this.enabled=x,this.ix())};y.prototype.Ta=function(){this.nj=u.Ag==this.eb.Rc().Jn();this.ix()};y.prototype.ix=function(){var x=(this.model.get("camera").get("xrEnabled")||this.model.get("camera").get("vrEnabled"))&&!(this.model.get("application")&&this.model.get("application").get(v));x=this.enabled&&(!this.nj||x);this.Od.O(n.Scene).enabled=x;this.BPa.Ra(x);this.N6.Ra(x)};y.prototype.dispose=function(){w.forEach(function(x){this.model.h(h.L(x),this.cqa,this)}.bind(this)); this.model.h(h.L("camera"),this.a9,this);u.M.h(h.V,this.Ta,this);this.Zjb.dispose();this.Thb.dispose();this.LNa.dispose();this.N6.dispose();this.Ohb.dispose();this.BPa.dispose();this.ijb.dispose();this.ymb.dispose();this.aib.dispose();this.Tmb.dispose();this.ci.Fjb(this.Od);this.ci.dd(this.Od);this.ci.dd(this.En);this.ci.dd(this.Ea)};y.prototype.Hfb=function(){return this.wb?g.tJ(this.wb):void 0};y.prototype.cqa=function(){var x=this.Od.O(n.Scene);x.opacity=this.model.get("opacity");x.uKa=this.model.get("environmentURL"); x.Xma=this.model.get("backgroundImageURL");x.FIa=this.model.get("backgroundPanoramaURL");x.backgroundColor=this.model.get("backgroundColor");x.outputColorSpace=this.model.get("encoding");x.NKa=this.model.get("fogColor");x.OKa=this.model.get("fogDensity");x.environmentIntensity=this.model.get("environmentIntensity");x=this.model.get("anisotropicFilteringLevel");var z=this.model.get("bakedTextures");if(x!=0||z){var A=this.Od.O(n.gi,!0);A.wW=x;A.DW=z}else this.Od.ka(n.gi)};return y}()}); define("tdv/player/view/model3d/renderer/Renderer","require tdv/utils tdv/player/view/webgl/components tdv/player/view/webgl/Renderer tdv/player/view/model3d/renderer/adapters/SceneAdapter tdv/view/constants/Cursor tdv/view/constants/LayoutMode tdv/view/containers/Container".split(" "),function(a){var m=a("tdv/utils");a("tdv/player/view/webgl/components");var h=a("tdv/player/view/webgl/Renderer"),n=a("tdv/player/view/model3d/renderer/adapters/SceneAdapter"),g=a("tdv/view/constants/Cursor"),k=a("tdv/view/constants/LayoutMode"), e=a("tdv/view/containers/Container");a=m.extend(e,function(b,c,d){e.call(this);this.Ie=b;this.P=c;this.lT=d;this.gf("Renderer");this.set("toolTipDisabled",!0);this.set("cursor",g.LB);this.set("layout",k.QZ);this.hf=null;this.ha=!0;this.EH=[];this.BN=new Map});a.prototype.Kb=function(){e.prototype.Kb.call(this);this.hf==null&&(this.hf=new h(this.Ie,this.P,!0),this.hf.xa({left:0,top:0,right:0,bottom:0,cursor:g.LB,toolTipDisabled:!0}),this.hf.Ra(this.ha),this.mb(this.hf),this.EH.forEach(this.jFa.bind(this)))}; a.prototype.Ra=function(b){this.ha!==b&&(this.ha=b,this.hf&&this.hf.Ra(this.ha),this.set("interactionEnabled",this.ha))};a.prototype.Qa=function(){this.hf&&this.hf.Qa()};a.prototype.zgb=function(b){return this.EH.indexOf(b)>=0};a.prototype.$Ha=function(b){this.EH.indexOf(b)>=0||(this.EH.push(b),this.hf&&this.jFa(b))};a.prototype.kQa=function(b){var c=this.EH.indexOf(b);c<0||(this.EH.splice(c,1),this.hf&&this.TFa(b),this.EH.length===0&&this.Ra(!0))};a.prototype.sra=function(b,c){(b=this.BN.get(b))&& b.Vw(c)};a.prototype.oRa=function(b,c){(b=this.BN.get(b))&&b.Ra(c)};a.prototype.oX=function(b){return(b=this.BN.get(b))?b.Hfb():void 0};a.prototype.gK=function(){return this.hf&&this.hf.gK()};a.prototype.ina=function(){return this.hf&&this.hf.ina()};a.prototype.jFa=function(b){this.TFa(b);this.BN.set(b,new n(this,this.hf,b))};a.prototype.TFa=function(b){var c=this.BN.get(b);c&&(this.BN["delete"](b),c.dispose())};return a}); define("tdv/player/script/Model3DPlayer","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/player/parser/ClassInfo tdv/player/script/helper/ButtonProperty tdv/player/script/PlaybackMediaPlayer tdv/player/view/model3d/controller/Controller tdv/player/view/model3d/renderer/Renderer tdv/view/constants/ButtonMode".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/player/parser/ClassInfo"),k=a("tdv/player/script/helper/ButtonProperty"), e=a("tdv/player/script/PlaybackMediaPlayer"),b=a("tdv/player/view/model3d/controller/Controller"),c=a("tdv/player/view/model3d/renderer/Renderer"),d=a("tdv/view/constants/ButtonMode"),f=g.define("Model3DPlayer",e,function(){e.call(this,"model");this.fs=this.O2=this.ij=!1;this.U=this.j=null;this.ac=this.vf=0;this.be=m.lr(this.Sh,this);this.vda=new k(this,"buttonToggleSprites",d.ak);this.vda.bind(h.Rk,function(){this.set("spritesEnabled",!0)},this);this.vda.bind(h.Km,function(){this.set("spritesEnabled", !1)},this);this.vda.set("pressed",this.get("spritesEnabled"))});f.prototype.play=function(){this.UH()};f.prototype.pause=function(){this.TH()};f.prototype.stop=function(){this.cD()};f.prototype.restart=function(){this.bD()};f.prototype.getModelPixelScale=function(){return this.X1a()};f.prototype.captureToDataURL=function(){return this.j&&this.j.ina()};f.prototype.saveScreenshot=function(){return this.j&&this.j.gK()};f.prototype.set=function(l,p){if(this.get(l)!=p){switch(l){case "model":this.O2=!0; this.set("requesterPlayer",null);this.be();break;case "viewerArea":this.ij=!0;this.be();break;case "displayPlaybackBar":this.fs=!0,this.be()}e.prototype.set.call(this,l,p)}};f.prototype.get=function(l,p){switch(l){case "currentTime":return this.U&&this.U.getTime()||0}return e.prototype.get.call(this,l,p)};f.prototype.Sh=function(){this.ij&&(this.ij=!1,this.oy(),this.get("viewerArea")&&this.ny(),this.kV(this.get("viewerArea")),this.O2=!0);var l=!1;if(this.j&&(this.O2||this.r5)){var p=this.get("model"); if(p&&!this.j.Vb()){this.be();return}this.O2=!1;this.ac=this.vf=0;l=!0;p?(this.eK(this.get("requesterPlayer")?[this.get("requesterPlayer"),this]:[this]),this.U.$kb(p)):this.U.bB()}this.fs&&(this.fs=!1,l=!0);l&&this.Zz()};f.prototype.RN=function(){this.set("model",null)};f.prototype.ny=function(){var l=this.get("application"),p=this.get("viewerArea");this.j=new c(l,p,this);this.j.xa({left:0,top:0,bottom:0,right:0});p.mb(this.j);this.U=new b(p,this.j);this.U.bind(b.yF,this.hn,this);this.U.bind(b.xF, this.YC,this);this.U.bind(b.zF,this.ST,this);this.U.bind(b.rba,this.gCa,this,!0);this.U.bind(b.gd,this.Mf,this);this.xD(!0)};f.prototype.oy=function(){this.j&&(this.U.h(b.yF,this.hn,this),this.U.h(b.xF,this.YC,this),this.U.h(b.zF,this.ST,this),this.U.h(b.rba,this.gCa,this,!0),this.U.h(b.gd,this.Mf,this),this.U.clear(),this.j.getParent().removeChild(this.j),this.j=null,this.xD(!1))};f.prototype.Mf=function(l){this.Jd(l.data.state)};f.prototype.hn=function(l){var p=this.get("viewerArea");this.ve=p&& p.ve;this.jT(l.data.model);this.Zz()};f.prototype.ST=function(l){this.o(new n(f.AUa,{model:l.data.model}))};f.prototype.YC=function(l){this.ve=null;this.iT(l.data.model)};f.prototype.gCa=function(l){this.vf=l.data.time;this.ac=l.data.duration;this.Zz()};f.prototype.jna=function(){var l=this.get("model");return(l=(l=l&&l.get("camera"))&&l.get("doubleClickAction"))&&l!="none"?!0:!1};f.prototype.zU=function(l){this.pI(l.data.position)};f.prototype.rn=function(){this.U&&this.U.play()};f.prototype.Xs= function(){this.U&&this.U.stop()};f.prototype.tv=function(){this.U&&this.U.pause()};f.prototype.pI=function(l){this.U&&this.U.setTime(l)};f.prototype.X1a=function(){return this.U&&this.U.oX()};f.prototype.Zz=function(){if(this.j){var l=this.j.getParent();this.ac>0&&this.get("displayPlaybackBar")?l.xa({playbackBarPosition:this.vf,playbackBarDuration:this.ac,playbackBarVisible:!0}):l.set("playbackBarVisible",!1)}};f.AUa="preloadMediaShow";return f}); define("tdv/player/script/Model3DPlayListItem","require tdv/constants/EventName tdv/constants/PlaybackState tdv/player/parser/ClassInfo tdv/player/script/MediaPlayer tdv/player/script/PlayListItem".split(" "),function(a){var m=a("tdv/constants/EventName"),h=a("tdv/constants/PlaybackState"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/player/script/MediaPlayer"),k=a("tdv/player/script/PlayListItem");a=n.define("Model3DPlayListItem",k,function(){k.call(this)});a.prototype.start=function(){k.prototype.start.call(this); var e=this.get("player");e&&(e.bind(g.di,this.hn,this),e.get("model")==this.get("media")&&this.get("media").get("isLoaded")?this.hn():e.set("model",this.get("media")))};a.prototype.stop=function(){var e=this.get("player");e&&(e.h(g.di,this.hn,this),e.get("model")==this.get("media")&&e.set("model",null));k.prototype.stop.call(this)};a.prototype.hn=function(e){e&&e.data.media!=this.get("media")||(this.get("player").h(g.di,this.hn,this),this.get("player").bind(g.mo,this.YC,this),this.nbb())};a.prototype.nbb= function(){var e=this.get("media").get("camera").get("sequences",[]).find(function(b){return b.get("internal")&&b.get("state")==h.PLAYING});e?e.bind(m.Tb,this.VCa,this,!0):this.PD()};a.prototype.VCa=function(e){e.source.h(m.Tb,this.VCa,this,!0);this.PD()};a.prototype.YC=function(e){e.data.media==this.get("media")&&(this.get("player").h(g.mo,this.YC,this),this.stop(),this.end())};return a}); define("tdv/player/script/Model3DPointer",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("Model3DPointer",m,function(){m.call(this)})});define("tdv/player/script/Menu",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("Menu",m,function(){m.call(this)})}); define("tdv/player/script/MenuItem",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("MenuItem",m,function(){m.call(this)})}); define("tdv/player/script/MotionBlurModel3DPostprocessing",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DPostprocessing"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DPostprocessing");return m.define("MotionBlurModel3DPostprocessing",h,function(){h.call(this)})}); define("tdv/player/script/PhotoCamera",["require","exports","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a,m,h,n){a=function(g){function k(){return g.call(this)||this}P(k,g);return k}(h);n.create("PhotoCamera",a);return a});define("tdv/player/script/MovementPhotoCamera",["require","exports","tdv/player/script/PhotoCamera","tdv/player/parser/ClassInfo"],function(a,m,h,n){a=function(g){function k(){return g.call(this)||this}P(k,g);return k}(h);n.create("MovementPhotoCamera",a);return a}); define("tdv/player/constants/RotationMode",["require"],function(){var a={tF:"drag_acceleration",ux:"drag_rotation"};a.Kta=a.tF;a.Eua=a.ux;return a});define("tdv/player/view/panorama/control/events/RotationChangeEvent",["require","tdv/utils","tdv/events/Event"],function(a){var m=a("tdv/utils"),h=a("tdv/events/Event");return m.extend(h,function(n){h.call(this,n);this.OP=this.yQ=this.TA=this.tB=0})}); define("tdv/player/view/panorama/control/events/ZoomChangeEvent",["require","tdv/utils","tdv/events/Event"],function(a){var m=a("tdv/utils"),h=a("tdv/events/Event");return m.extend(h,function(n){h.call(this,n);this.Koa=this.Mgb=0})}); define("tdv/player/view/panorama/control/camera/MouseManager","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/util/Device tdv/player/constants/RotationMode tdv/player/view/panorama/control/events/RotationChangeEvent tdv/player/view/panorama/control/events/ZoomChangeEvent".split(" "),function(a){function m(q,r){return q*r}function h(q,r){var t=r>0?1:-1;return t*(Math.pow(q,t*r)-1)/(q-1)}function n(q,r){return Math.min(Math.max(q/r,-1),1)}var g= a("tdv/utils"),k=a("tdv/constants/EventName"),e=a("tdv/events/Event"),b=a("tdv/events/EventDispatcher"),c=a("tdv/player/view/util/Device"),d=a("tdv/player/constants/RotationMode"),f=a("tdv/player/view/panorama/control/events/RotationChangeEvent"),l=a("tdv/player/view/panorama/control/events/ZoomChangeEvent"),p=g.extend(b,function(){b.call(this);this.sAa=this.tAa=1800;this.t4a=this.x$a=0;this.MS=!1;this.Gq=void 0;this.FH=d.Kta;this.gGa=d.Eua;this.SR=0;this.K4=void 0;this.Tq=!1;this.CL=null;this.gH= 3;this.kb=90;this.Oea=this.uI=this.ne=1;this.ve=this.Ab=null;this.yU=!1});p.prototype.setCamera=function(q){this.tAa=q.get("manualRotationSpeed");this.sAa=q.get("manualRotationSpeed");this.gH=q.get("manualZoomSpeed");this.Oea=q.get("draggingFactor")};p.prototype.TE=function(q){this.FH=q;this.cma()};p.prototype.sK=function(q){this.gGa=q;this.cma()};p.prototype.lK=function(q){this.kb=q;this.uI=this.kb/90};p.prototype.au=function(q){this.Hn();if(q){this.Ab=q;if(this.ve=q.rfb&&q.ve)this.ve.bind(k.Sa, this.wDa,this,!0),this.ve.bind(k.$a,this.xDa,this,!0);this.Ab.bind(k.Sa,this.te,this,!0);this.Ab.bind(k.gb,this.bl,this,!0);this.Ab.bind(k.$a,this.cl,this,!0);this.Ab.bind(k.Qk,this.GH,this,!0);this.Ab.Vb().get("settings").get(TDV.PlayerSettings.IVa)!==!1&&this.Ab.bind(k.XK,this.ZG,this,!0);this.Ab.bind(k.HB,this.nya,this,!0);this.Ab.bind(k.WK,this.lya,this,!0);this.cma()}};p.prototype.Hn=function(){this.Ab!=null&&(this.ve&&(this.ve.h(k.Sa,this.wDa,this),this.ve.h(k.$a,this.xDa,this),this.ve=null), this.Ab.h(k.Sa,this.te,this),this.Ab.h(k.gb,this.bl,this),this.Ab.h(k.$a,this.cl,this),this.Ab.h(k.Qk,this.GH,this),this.Ab.h(k.XK,this.ZG,this),this.Ab.h(k.HB,this.nya,this),this.Ab.h(k.WK,this.lya,this),this.Ab=null,this.X0())};p.prototype.cma=function(){this.Ab&&(c.Jp()?(this.K4=this.gGa,this.SR=this.x$a):(this.K4=this.FH,this.SR=this.t4a))};p.prototype.wDa=function(){this.yU=!0};p.prototype.xDa=function(){this.yU=!1};p.prototype.te=function(q){this.yU||(this.R9a(q),this.Qka())};p.prototype.bl= function(q){this.yU||this.bO(q)};p.prototype.cl=function(){this.yU||(this.cfa(),this.X0())};p.prototype.GH=function(q){this.mma(q);this.Qka(500)};p.prototype.nya=function(){this.Qka()};p.prototype.ZG=function(q){this.nma(q)};p.prototype.lya=function(){this.X0()};p.prototype.R9a=function(q){this.MS=!0;this.Gq=q;this.bO(q)};p.prototype.bO=function(q){if(this.MS)switch(this.K4){case d.tF:this.Vab(q);break;case d.ux:this.Uab(q)}};p.prototype.Vab=function(q){var r=this.gHa,t=q.x-this.Gq.x;t=+m(h(10,n(Math.abs(t)< 3?0:t,this.Ab.nb())),this.tAa*this.uI);q=q.y-this.Gq.y;r.call(this,t,-m(h(10,n(Math.abs(q)<3?0:q,this.Ab.Mb())),this.sAa*this.uI))};p.prototype.Uab=function(q){this.bma(-m(n(q.x-this.Gq.x,this.Ab.nb()),this.kb*this.Oea),+m(n(q.y-this.Gq.y,this.Ab.nb()),this.kb*this.Oea));this.Gq=q};p.prototype.cfa=function(){if(this.MS)switch(this.MS=!1,this.K4){case d.tF:this.gHa(0,0)}};p.prototype.gHa=function(q,r){var t=new f(p.yx);t.tB=q;t.TA=r;this.o(t)};p.prototype.bma=function(q,r){var t=new f(p.yx);t.yQ=q; t.OP=r;this.o(t)};p.prototype.nma=function(q){if(this.ne!=q.scale){this.cfa();var r=this.ne;this.ne=q.scale;q=new l(p.Hr);q.Koa=this.kb*r/this.ne-this.kb;this.o(q)}};p.prototype.mma=function(q){if(q.delta!=0){this.cfa();var r=new l(p.Hr);r.Koa=this.kb*-q.delta*this.gH/100;this.o(r)}};p.prototype.Qka=function(q){var r=this.CL!=null;this.FFa();if(q&&(r||!this.Tq)){var t=this;this.CL=setTimeout(function(){t.CL=null;t.X0()},q)}this.Tq||(this.Tq=!0,this.o(new e(p.$j)))};p.prototype.X0=function(){this.FFa(); this.Tq&&(this.Tq=!1,this.o(new e(p.Zj)))};p.prototype.FFa=function(){this.CL!=null&&(clearTimeout(this.CL),this.CL=null)};p.yx="rotation change";p.Hr="zoom change";p.$j="user interaction start";p.Zj="user interaction end";return p}); define("tdv/player/view/panorama/control/camera/MovementManager",["require","tdv/player/view/util/Device"],function(a){function m(){this.vI=n.ub()?.066:.1;this.w4a=.5;this.C9a=n.ub()?.066:.1;this.Abb=.1;this.p5=this.w5=!1;this.reset()}function h(g,k,e){g=(k-g)*(1-e);Math.abs(g)<.01&&(g=0);return k-g}var n=a("tdv/player/view/util/Device");m.prototype.reset=function(){this.pxa=this.jea=this.WL=this.rC=this.KR=this.nea=this.mea=this.rea=this.sM=this.gH=this.F4=this.H4=this.Ks=this.xU=this.Wv=this.rW= 0};m.prototype.xra=function(g,k,e,b,c,d,f,l,p){return this.rW!=g||(this.xU=k)||this.H4!=e||b!=0||c!=0||this.p5!=f||this.LAa!=l||this.w5!=p?(this.rW=g,this.xU=k,this.H4=e,this.Wv+=b,this.Ks+=c,this.F4+=d,this.p5=f,this.LAa=l,this.w5=p,!0):!1};m.prototype.Wlb=function(g,k){return this.gH!=g||k!=0?(this.gH=g,this.sM+=k,!0):!1};m.prototype.Uf=function(){return this.rea!=0||this.mea!=0||this.nea!=0||this.KR!=0||this.rW!=0||this.xU!=0||this.H4!=0||this.gH!=0||this.Wv!=0||this.Ks!=0||this.sM!=0};m.prototype.Nb= function(g){g=1E3/g;var k=this.rea/g,e=this.rW/g+this.Wv;this.Wv=0;var b=this.mea/g,c=this.xU/g+this.Ks;this.Ks=0;var d=this.nea/g,f=this.H4/g+this.F4;this.F4=0;var l=this.gH+this.sM*g;this.sM=0;var p=e==0&&c==0&&f==0,q=k==0&&b==0&&d==0;this.p5&&q&&!p||this.w5&&p&&!q||this.LAa&&!p&&!q?(p=p?this.vI:q?this.C9a:this.w4a,this.rC=h(k,e,p),this.WL=h(b,c,p),this.jea=h(d,f,p)):(this.rC=e,this.WL=c,this.jea=f);k=this.KR==0;e=l==0;this.KR=this.p5&&k&&!e||this.w5&&e&&!k?h(this.KR,l,this.Abb):l;this.rea=this.rC* g;this.mea=this.WL*g;this.nea=this.jea*g;this.pxa=this.KR/g};return m}); define("tdv/player/view/object3d/Renderer","require tdv/utils tdv/view/core/UIComponent tdv/player/view/panorama/control/camera/MouseManager tdv/player/view/panorama/control/camera/MovementManager tdv/view/util/Animation tdv/constants/EventName".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/view/core/UIComponent"),n=a("tdv/player/view/panorama/control/camera/MouseManager"),g=a("tdv/player/view/panorama/control/camera/MovementManager"),k=a("tdv/view/util/Animation"),e=a("tdv/constants/EventName"); a=m.extend(h,function(){h.call(this);this.gf("Renderer");this.ja=document.createElement("canvas");this.ja.style.position="absolute";this.ja.style.left="0";this.ja.style.top="0";this.wa().tk(this.ja);this.JC=null;this.Ga=this.vM=this.tM=this.uM=0;this.Zl=!1;this.t6a=150;this.yS=0;this.Oo=null;this.bind(e.$b,this.kd,this,!0);this.Hb=new n;this.Hb.mqb(720);this.Hb.TY(0);this.Hb.TE("drag_rotation");this.Hb.lK(360);this.Hb.bind(n.yx,this.D5a,this);this.Bc=new g});a.prototype.Hkb=function(b,c,d){this.JC= b;this.uM=c;this.tM=d;this.vM=Math.floor(this.JC.length*this.Ga/360);this.Yja();this.Hb.au(this);this.bb()};a.prototype.Qcb=function(){this.JC=null;this.Mv();this.Yja();this.Hb.Hn()};a.prototype.play=function(){this.Zl=!0;this.bb()};a.prototype.D5a=function(b){this.Mv();this.Bc.xra(b.tB,b.TA,0,b.yQ,b.OP,0,!1,!0);this.bb()};a.prototype.pia=function(){this.play()};a.prototype.sq=function(b){this.JC&&(this.Bc.Uf()?(this.Zl=!1,this.Bc.Nb(b),this.Gva(this.Bc.rC),this.bb()):this.Zl?(this.Gva(this.t6a*b/ 1E3),this.bb()):this.zM()||this.xV())};a.prototype.rj=function(b){for(this.Ga=b;this.Ga<0;)this.Ga+=360;for(;this.Ga>=360;)this.Ga-=360;this.tab()};a.prototype.tab=function(){if(this.JC){var b=Math.floor(this.JC.length*this.Ga/360);this.vM!=b&&(this.vM=b,this.VDa())}};a.prototype.Gva=function(b){this.rj(this.Ga+b)};a.prototype.kd=function(){this.Yja()};a.prototype.Yja=function(){var b=this.ja;if(this.uM==0||this.tM==0)b.width=0,b.height=0;else{var c=this.Xh(),d=this.Wh();d*this.uM>c*this.tM?(b.width= c,b.height=this.tM*c/this.uM):(b.height=d,b.width=this.uM*d/this.tM);b.style.left=Math.round((c-b.width)*.5)+"px";b.style.top=Math.round((d-b.height)*.5)+"px";this.VDa()}};a.prototype.VDa=function(){if(this.JC){var b=this.ja;b.getContext("2d").drawImage(this.JC[this.vM],0,0,this.uM,this.tM,0,0,b.width,b.height)}};a.prototype.zM=function(){return this.Oo?!0:!1};a.prototype.xV=function(){this.Mv();if(this.yS>0){var b=this;this.Oo=setTimeout(function(){b.Oo=null;b.pia()},this.yS)}};a.prototype.Mv=function(){this.Oo&& (clearTimeout(this.Oo),this.Oo=null)};a.prototype.bb=function(){k.requestFrame(this.sq,this)};return a}); define("tdv/player/script/Object3D","require tdv/constants/EventName tdv/constants/Priority tdv/events/Event tdv/player/parser/ClassInfo tdv/player/script/helper/LevelUtil tdv/player/view/ProgressBar tdv/player/view/object3d/Renderer tdv/view/containers/Container tdv/view/images/ImageLoader".split(" "),function(a){var m=a("tdv/constants/EventName"),h=a("tdv/constants/Priority"),n=a("tdv/events/Event"),g=a("tdv/player/parser/ClassInfo"),k=a("tdv/player/script/helper/LevelUtil"),e=a("tdv/player/view/ProgressBar"), b=a("tdv/player/view/object3d/Renderer"),c=a("tdv/view/containers/Container"),d=a("tdv/view/images/ImageLoader");a=g.define("Object3D",c,function(){c.call(this);this.Sd=this.Xo=this.dj=this.j=null;this.bind(m.od,this.cp,this);this.bind(m.jd,this.ap,this)});a.prototype.Kb=function(){c.prototype.Kb.call(this);this.j||(this.j=new b,this.j.xa({left:0,top:0,right:0,bottom:0}),this.mb(this.j));this.dj||(this.dj=new e,this.dj.xa({left:0,bottom:0,right:0,height:20,visible:!1}),this.mb(this.dj))};a.prototype.cp= function(){this.b4a()};a.prototype.ap=function(){this.Xs()};a.prototype.b4a=function(){this.dj.set("percent",0);this.dj.set("visible",!0);this.j.rj(this.get("yaw"));var f=this.get("frames",[]);this.Xo=[];this.Sd=[];for(var l=0;l{var r=q.pJ();if(q instanceof n){c=k.yt(q.get("yaw",0)*e,q.get("pitch",0)*e,c);b=k.yt(this.Ga*e,this.rb*e,b);var t=Math.acos(b.dot(c)),u=q.get("maximumAngle",Infinity)*e;r.iB(1-Math.min(1,t/u));f.makeRotationFromEuler(p.set(q.get("pitch",0)*e,-q.get("yaw",0)*e,0,"YXZ"));f.multiply(l.makeTranslation(0,0,-1));r.Uw(f)}d=g.gX(this.Ga,this.rb,this.sd,d);f.makeRotationFromQuaternion(d);r.bu(f)})};m.prototype.aza=function(q){return q?q.get("audios", []):[]};m.prototype.U4=function(q,r){(r?this.Ou.slice().reverse():this.Ou).forEach(function(t){if(t.get("autoplay",!1)){t=t.pJ();var u=t.getState();q==h.PLAYING&&u!=h.PLAYING?t.Zc(h.PLAYING):q==h.Zb&&u==h.PLAYING?t.Zc(h.Zb):q==h.ca&&u!=h.ca&&t.Zc(h.ca)}})};var e=Math.PI/180,b=new THREE.Vector3,c=new THREE.Vector3,d=new THREE.Quaternion,f=new THREE.Matrix4,l=new THREE.Matrix4,p=new THREE.Euler;return m}); define("tdv/player/view/util/geo/Transformation",["require"],function(){function a(c){c%=n;c<0&&(c+=n);return e[c*g|0]}function m(c){c%=n;c<0&&(c+=n);return k[c*g|0]}function h(){this.identity()}h.prototype.identity=function(){this.m11=1;this.m21=this.m13=this.m12=0;this.m22=1;this.m32=this.m31=this.m23=0;this.m33=1;this.tz=this.Ii=this.Hi=0};h.prototype.clone=function(){var c=new h;c.m11=this.m11;c.m12=this.m12;c.m13=this.m13;c.m21=this.m21;c.m22=this.m22;c.m23=this.m23;c.m31=this.m31;c.m32=this.m32; c.m33=this.m33;c.Hi=this.Hi;c.Ii=this.Ii;c.tz=this.tz;return c};h.prototype.concat=function(c){var d=this.m11,f=this.m12,l=this.m13,p=this.m21,q=this.m22,r=this.m23,t=this.m31,u=this.m32,v=this.m33,w=this.Hi,y=this.Ii,x=this.tz;this.m11=d*c.m11+f*c.m21+l*c.m31;this.m12=d*c.m12+f*c.m22+l*c.m32;this.m13=d*c.m13+f*c.m23+l*c.m33;this.m21=p*c.m11+q*c.m21+r*c.m31;this.m22=p*c.m12+q*c.m22+r*c.m32;this.m23=p*c.m13+q*c.m23+r*c.m33;this.m31=t*c.m11+u*c.m21+v*c.m31;this.m32=t*c.m12+u*c.m22+v*c.m32;this.m33= t*c.m13+u*c.m23+v*c.m33;this.Hi=w*c.m11+y*c.m21+x*c.m31+c.Hi;this.Ii=w*c.m12+y*c.m22+x*c.m32+c.Ii;this.tz=w*c.m13+y*c.m23+x*c.m33+c.tz};h.prototype.translate=function(c,d,f){this.Hi+=c;this.Ii+=d;this.tz+=f};h.prototype.scale=function(c,d,f){this.m11*=c;this.m12*=d;this.m13*=f;this.m21*=c;this.m22*=d;this.m23*=f;this.m31*=c;this.m32*=d;this.m33*=f;this.Hi*=c;this.Ii*=d;this.tz*=f};h.prototype.rotateX=function(c){var d=a(c);c=m(c);var f=this.m12*d+this.m13*c,l=this.m22*c-this.m23*d,p=this.m22*d+this.m23* c,q=this.m32*c-this.m33*d,r=this.m32*d+this.m33*c,t=this.Ii*c-this.tz*d,u=this.Ii*d+this.tz*c;this.m12=this.m12*c-this.m13*d;this.m13=f;this.m22=l;this.m23=p;this.m32=q;this.m33=r;this.Ii=t;this.tz=u};h.prototype.rotateY=function(c){var d=a(c);c=m(c);var f=-this.m11*d+this.m13*c,l=this.m21*c+this.m23*d,p=-this.m21*d+this.m23*c,q=this.m31*c+this.m33*d,r=-this.m31*d+this.m33*c,t=this.Hi*c+this.tz*d,u=-this.Hi*d+this.tz*c;this.m11=this.m11*c+this.m13*d;this.m13=f;this.m21=l;this.m23=p;this.m31=q;this.m33= r;this.Hi=t;this.tz=u};h.prototype.rotateZ=function(c){var d=a(c);c=m(c);var f=this.m11*d+this.m12*c,l=this.m21*c-this.m22*d,p=this.m21*d+this.m22*c,q=this.m31*c-this.m32*d,r=this.m31*d+this.m32*c,t=this.Hi*c-this.Ii*d,u=this.Hi*d+this.Ii*c;this.m11=this.m11*c-this.m12*d;this.m12=f;this.m21=l;this.m22=p;this.m31=q;this.m32=r;this.Hi=t;this.Ii=u};h.prototype.rotate=function(c,d,f){this.rotateX(c);this.rotateY(d);this.rotateZ(f)};h.prototype.invert=function(){var c=this.dfb();if(c==0)return!1;var d= this.clone();this.m11=(d.m22*d.m33-d.m23*d.m32)/c;this.m12=(d.m13*d.m32-d.m12*d.m33)/c;this.m13=(d.m12*d.m23-d.m13*d.m22)/c;this.m21=(d.m23*d.m31-d.m21*d.m33)/c;this.m22=(d.m11*d.m33-d.m13*d.m31)/c;this.m23=(d.m13*d.m21-d.m11*d.m23)/c;this.m31=(d.m21*d.m32-d.m22*d.m31)/c;this.m32=(d.m12*d.m31-d.m11*d.m32)/c;this.m33=(d.m11*d.m22-d.m12*d.m21)/c;this.Hi=-(d.Hi*this.m11+d.Ii*this.m21+d.tz*this.m31);this.Ii=-(d.Hi*this.m12+d.Ii*this.m22+d.tz*this.m32);this.tz=-(d.Hi*this.m13+d.Ii*this.m23+d.tz*this.m33); return!0};h.prototype.dfb=function(){return this.m11*(this.m22*this.m33-this.m23*this.m32)+this.m12*(this.m23*this.m31-this.m21*this.m33)+this.m13*(this.m21*this.m32-this.m22*this.m31)};h.prototype.vO=function(c){var d=c.x*this.m12+c.y*this.m22+c.z*this.m32+this.Ii,f=c.x*this.m13+c.y*this.m23+c.z*this.m33+this.tz;c.x=c.x*this.m11+c.y*this.m21+c.z*this.m31+this.Hi;c.y=d;c.z=f};for(var n=Math.PI*2,g=18E4/n,k=new Float32Array(180001),e=new Float32Array(180001),b=0;b<18E4;b++)k[b]=Math.cos(b/g),e[b]= Math.sin(b/g);k[18E4]=k[0];e[18E4]=e[0];return h});define("tdv/player/view/panorama/renderer/constants/EyeLayer",["require"],function(){return{nx:0,fb:1,Db:2}}); define("tdv/player/view/panorama/renderer/object/util/PanoramaFormat",["require","tdv/player/parser/ClassInfo","tdv/player/view/util/Capabilities"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/view/util/Capabilities"),n={get:function(g){return g.UWa||(g.UWa=this.I0a(g))},I0a:function(g){if(m.Oa("CubicPanoramaFrame",g))return g.get("stereoCube")?n.VB:g.get("cube")?n.Bx:n.Hm;if(m.Oa("SphericPanoramaFrame",g)){var k=g.get("stereoSphere"),e=g.get("sphere"),b=g.get("hfov");g=g.get("vfov"); var c=b>359.9&&g>179.9,d=!1;k&&!e?d=!0:k?e&&!k.get("levels").some(h.ySa)?d=!1:c&&h.zcb()?d=!0:!c&&h.ycb()&&(d=!0):d=!1;return d?(k=k.get("levels"),e=Math.max.apply(Math,k.map(function(f){return f.get("width")})),Math.max.apply(Math,k.map(function(f){return f.get("height")}))/g/(e/b)>1?n.Wr:n.Gu):n.Nr}},VB:"stereoCube_12_1",Bx:"monoCube_6_1",Hm:"monoCube_1_1",Nr:"monoSphere_1_1",Wr:"stereoSphere_1_2",Gu:"stereoSphere_2_1"};return n}); define("tdv/player/view/panorama/renderer/object/util/LevelUtil","require tdv/player/parser/ClassInfo tdv/player/script/ImageResourceLevel tdv/player/view/panorama/renderer/constants/EyeLayer tdv/player/view/panorama/renderer/constants/Face tdv/player/view/panorama/renderer/object/util/PanoramaFormat tdv/view/util/Scale tdv/player/view/util/Capabilities tdv/player/view/util/Device tdv/player/view/util/FileType tdv/player/view/util/URL tdv/view/constants/ScaleMode tdv/view/images/ImageLoader tdv/view/av/VideoPlayer".split(" "), function(a){function m(K,L,U){return K.split(L).join(U).split(encodeURI(L)).join(U)}function h(K,L){return K.indexOf(L)>=0||K.indexOf(encodeURI(L))>=0}function n(){var K=D.DA()&&F.Tg("recent_ipad_use_max_res",!1);n=function(){return K};return K}function g(K){if(K.length==0)return 1;K.sort(function(L,U){return U.get("width")-L.get("width")});return K[0].get("width")/K[0].get("height")}function k(K,L){var U=1E4;n()||(D.kf()?U=2048:D.DA()?U=1280:D.ub()&&(U=1024));switch(K){case z.Bx:return[6*U,U];case z.Hm:return[U, U];case z.VB:return[12*U,U]}switch(K){case z.Wr:L*=2;break;case z.Gu:L*=.5}return L>2?[U*4,U*4/L]:[U*2*L,U*2]}function e(K){if(n())return[void 0,void 0];switch(K){case z.Bx:if(D.kf()||D.ub())return[18432,1536];break;case z.Wr:if(D.kf())return[5352,5352];if(D.ub())return[6086,6086];break;case z.Nr:if(D.kf())return[7168,3584];if(D.ub()&&D.DA())return[8192,4096]}return[void 0,void 0]}function b(K,L){var U=e(L);L=K.filter(function(T){return v.Oa("TiledImageResourceLevel",T)?!0:U[0]!==void 0&&T.get("width")> U[0]||U[1]!==void 0&&T.get("height")>U[1]?!1:!0});L.length==0&&(L=[d(K)[0]]);return L}function c(){return D.DA()?[w.Bua]:D.A8()||D.B8()?D.xc()==D.su||D.xc()==D.yB?[w.C_,w.mca]:[w.mca,w.C_]:D.kf()?[w.C_]:D.ub()?[w.B_]:[]}function d(K){K.sort(function(L,U){return L.get("width")-U.get("width")});return K}function f(K,L){function U(T){return Math.abs(T.get("width")*T.get("height")-L[0]*L[1])}K.sort(function(T,Y){return U(T)-U(Y)});return K.length&&K[0]||null}function l(K,L,U){K=K.filter(function(T){return T.get("tags").indexOf(L)< 0});return K.length?K:U!==void 0?U:[]}function p(K,L,U){K=K.filter(function(T){return T.get("tags").indexOf(L)>=0});return K.length?K:U!==void 0?U:[]}function q(K,L,U){switch(U){case z.VB:case z.Bx:case z.Hm:return K;case z.Nr:case z.Gu:return K*L.get("hfov",180)/90;case z.Wr:return K*L.get("hfov",180)*2/90}}function r(K,L){switch(L){case z.VB:return K.get("stereoCube").get("levels");case z.Bx:return K.get("cube").get("levels");case z.Hm:return K.get("front").get("levels");case z.Nr:return K.get("sphere").get("levels"); case z.Wr:case z.Gu:return K.get("stereoSphere").get("levels")}}function t(K,L){var U=r(K,L),T=K.get("minFaceSize");if(T){var Y=q(T,K,L);K=U.filter(function(aa){return aa.get("height")>=Y});K.length>0&&(U=K)}return U}function u(K){for(var L=[],U=0;U0)return d(T);T=this.j2a(K);return L&&!this.Oza(T)&&(K=this.hza(K),K!=T)?[K,T]:[T]},uhb:function(K){return K.get("tags").indexOf(w.nca)>= 0},moa:function(K,L,U){if(z.get(K)!=z.Hm)return L;switch(U){case x.FRONT:var T=K.get("front");break;case x.fb:T=K.get("left");break;case x.BACK:T=K.get("back");break;case x.Db:T=K.get("right");break;case x.Tc:T=K.get("top");break;case x.Gc:T=K.get("bottom")}K=T&&T.get("levels")||[];if(K.length==0)return null;K=K.filter(function(Y){return Y.get("width")==L.get("width")&&Y.get("height")==L.get("height")&&Y.get("grayscale",!1)==L.get("grayscale",!1)&&Y.get("colCount",1)==L.get("colCount",1)&&Y.get("rowCount", 1)==L.get("rowCount",1)});return K[0]},SLa:function(K,L,U,T,Y,aa,ba,ea){K=K.get("url");var ia=0;h(K,"{eye}")?K=m(K,"{eye}",Q[U]):ia+=6*(Y?O:N)[U];h(K,"{face}")?K=m(K,"{face}",R[T]):L!=z.Hm&&(ia+=G[T]);K=m(K,"{row}",ba);return K=m(K,"{column}",ea+ia*aa)},Kfb:function(K,L){return E.mS(E.aH(K.get("image")),90,90,C.uj,L)},$eb:function(K,L){return E.mS(E.aH(K.get("image")),K.get("hfov"),K.get("vfov"),K.get("scaleMode"),L)},qfb:function(K,L){return E.mS(E.aH(K.get("image")),K.get("hfov"),K.get("vfov"), K.get("scaleMode"),L)},bgb:function(K,L){return E.mS(E.aH(K.get("image")),K.get("hfov"),K.get("vfov"),K.get("scaleMode"),L)},gLa:function(K,L){return E.mS(E.aH(K.get("image")),K.get("hfov"),K.get("vfov"),K.get("scaleMode"),L)},aH:function(K){return K&&K.get("levels")||[]},mS:function(K,L,U,T,Y){if(!K||!K.length)return null;K=l(K,w.Ju,K);for(var aa=c(),ba=0;ba=0?!1:D.xc()==D.zB?!0:B.daa(K.get("url"))}},G=function(){var K={};K[x.Db]=0;K[x.fb]=1;K[x.Tc]=2;K[x.Gc]=3;K[x.FRONT]=4;K[x.BACK]=5;return K}(),N=function(){var K={};K[y.Db]=0;K[y.fb]=1;K[y.nx]=0;return K}(),O=function(){var K={};K[y.Db]=1;K[y.fb]=0;K[y.nx]=0;return K}(),R=function(){var K= {};K[x.Db]="r";K[x.fb]="l";K[x.Tc]="u";K[x.Gc]="d";K[x.FRONT]="f";K[x.BACK]="b";return K}(),Q=function(){var K={};K[y.fb]="l";K[y.Db]="r";K[y.nx]="b";return K}();return E}); define("tdv/player/view/panorama/control/camera/LimitsManager","require tdv/utils tdv/constants/EventName tdv/player/view/util/geo/Fov tdv/player/view/util/geo/Transformation tdv/player/view/util/geo/Vector tdv/player/view/panorama/renderer/object/util/LevelUtil".split(" "),function(a){function m(p){this.j=p;this.Rd=!1;this.op=m.fG;this.tfa=this.mH=!1;this.Vf(null);this.j.bind(n.$b,this.kd,this,!0);this.kd()}var h=a("tdv/utils"),n=a("tdv/constants/EventName"),g=a("tdv/player/view/util/geo/Fov"),k= a("tdv/player/view/util/geo/Transformation"),e=a("tdv/player/view/util/geo/Vector"),b=a("tdv/player/view/panorama/renderer/object/util/LevelUtil");m.prototype.pMa=function(){return this.op!==m.fG};m.prototype.oMa=function(){return this.op&m.pL?!0:!1};m.prototype.qMa=function(){return this.op&m.qL?!0:!1};m.prototype.rMa=function(){return this.op&m.iG?!0:!1};m.prototype.nMa=function(){return this.op&m.eG?!0:!1};m.prototype.dB=function(p){this.mH=p};m.prototype.Jc=function(){this.sp();return this.Ga}; m.prototype.Ic=function(){this.sp();return this.rb};m.prototype.yg=function(){this.sp();return this.sd};m.prototype.uA=function(){this.sp();return this.kb};m.prototype.Vf=function(p){p?(this.Ria=p.get("hfov",360),this.S3=p.get("vfov",180),this.sU=p.get("pitch",0),this.WH=p.get("partial",!1),this.hga=p.tMa(),this.dga=p.jMa(),this.mga=Math.min(p.get("hfovMax",170),170),this.vS=p.get("hfovMin"),this.Dha=b.uLa(p)):(this.Ria=360,this.S3=180,this.sU=0,this.dga=this.hga=this.WH=!1,this.mga=120,this.Dha= this.vS=1);this.Ga=0;this.rb=this.sU;this.sd=0;this.Rd=!0};m.prototype.setPosition=function(p,q,r,t,u){this.Ga=p;this.rb=q;this.sd=r;this.kb=t;this.tfa=u;this.Rd=!0};m.prototype.kd=function(){var p=this.j.nb(),q=this.j.Mb();if(this.Pa!=p||this.Ha!=q)this.Pa=p,this.Ha=q,this.Rd=!0};m.prototype.sp=function(){if(this.Rd){this.Rd=!1;var p=this.Ga*f,q=this.rb*f,r=this.kb*f,t=(this.tfa?g.yr(this.mga,this.Pa,this.Ha):this.mga)*f;a:{var u=this.vS;if(h.EA(u)&&(u=u.match(/^\s*([+-]?\d+\.?\d*)\s*%\s*$/))&&u.length>= 2){u=parseFloat(u[1]);break a}u=void 0}u=u!==void 0?2*Math.atan2(this.Pa*this.j.getPixelRatio()*.5,this.Dha*45*u/100):this.vS?(this.tfa?g.yr(this.vS,this.Pa,this.Ha):this.vS)*f:2*Math.atan2(this.Pa*this.j.getPixelRatio()*.5,this.Dha*45);u=Math.min(t,u);if(this.mH){var v=360;var w=180;var y=0}else if(this.hga||this.dga){v=this.dga?90:this.sU+this.S3*.5;var x=this.hga?-90:this.sU-this.S3*.5;w=v-x;y=(v+x)*.5;v=this.Ria}else v=this.Ria,y=this.sU,w=this.S3;v*=f;w*=f;y*=f;for(x=this.Pa/this.Ha;p<-c;)p+= 2*c;for(;p>c;)p-=2*c;r=Math.max(Math.min(r,t),u);t=m.fG;if(!this.mH){q>d?t|=m.iG:q<-d&&(t|=m.eG);q=Math.max(Math.min(q,c*.5),-c*.5);var z=2*Math.atan(Math.tan(r*.5)/x);if(z>=w)r=2*Math.atan(Math.tan(w*.5)*x),q=y,t|=m.iG|m.eG;else{var A=Math.min(w*.5+y,c*.5);w=Math.max(-w*.5+y,-c*.5);y=!this.WH&&A>=.99*c*.5?c*.5:A-z*.5;w=!this.WH&&w<=.99*-c*.5?-c*.5:w+z*.5;q>y?(q=y,t|=m.iG):q0?x:-x,1),w=new k,w.rotateX(-q),x.apply(w),x=x.Jc()*2,x<0&&(x+= 2*c),w=Math.max(0,v*.5-x*.5-.25*f),z=Math.min(0,-v*.5+x*.5+.25*f),x>v?(p=0,r=Math.max(u,r*v/x),t|=m.pL|m.qL):p>w?(p=w,t|=m.qL):pb;)e-=360;return e};a.prototype.DT=function(){this.ha&& this.An()};a.prototype.An=function(){this.o(new n(h.V))};return a});define("tdv/player/view/panorama/control/constants/Movement",["require"],function(){return{cL:"left",dL:"right",bL:"down",eL:"up",uua:"rotate10x",Wua:"zoom2x",PLAYING:"playing",Nx:"zoomIn",Ox:"zoomOut",Fg:"stop"}}); define("tdv/player/view/panorama/control/camera/KeyboardManager","require tdv/utils tdv/constants/Key tdv/events/Event tdv/events/EventDispatcher tdv/player/view/panorama/control/constants/Movement tdv/view/util/KeyboardControl".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/Key"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/panorama/control/constants/Movement"),e=a("tdv/view/util/KeyboardControl"),b=m.extend(g,function(d){g.call(this);this.j=d;this.ha= !1;this.pg={};this.sV=null;this.rk=this.rV=!1;this.a2=this.a2.bind(this);this.Xm=this.Xm.bind(this);this.ld=this.j.ld;document.addEventListener("keydown",this.a2);document.addEventListener("keyup",this.Xm)});b.prototype.clear=function(){this.ha=!1;this.ld=this.j=null;document.removeEventListener("keydown",this.a2);document.removeEventListener("keyup",this.Xm)};b.prototype.Ra=function(d){this.ha!=d&&(this.ha=d)&&this.V5()};var c=[h.bk,h.Ji,h.fb,h.Db,h.Mp,h.so,h.po,h.Sp,h.u_,h.q_];b.prototype.a2=function(d){if(!e.yp()){var f= d.which,l=!1;!this.pg[f]&&c.indexOf(f)>=0&&(this.sV||this.rV||(this.sV=setTimeout(this.H5a.bind(this),100)),l=this.pg[f]=!0);this.rk!=d.shiftKey&&(this.rk=d.shiftKey,l=!0);l&&this.V5()}};b.prototype.H5a=function(){this.rV=!0;this.V5()};b.prototype.Xm=function(d){if(!e.yp()){var f=d.which,l=!1;if(f in this.pg){delete this.pg[f];l=!1;for(f in this.pg)this.pg[f]&&(l=!0);l||(this.sV&&clearTimeout(this.sV),this.sV=null,this.rV=!1);l=!0}this.rk!=d.shiftKey&&(this.rk=d.shiftKey,l=!0);l&&this.V5()}};b.prototype.V5= function(){if(this.ha){var d=this.ld.get("gazeModeEnabled"),f=this.ld.get("arrowKeysAction");if(d||f!="none"){d=d||f=="rotate";f=[];this.pg[h.u_]?f.push(k.Nx):this.pg[h.q_]&&f.push(k.Ox);this.rV&&(this.pg[h.u_]||this.pg[h.q_])&&f.push(k.Wua);this.pg[h.fb]||this.pg[h.Mp]?f.push(k.cL):(this.pg[h.Db]||this.pg[h.Sp])&&f.push(k.dL);if(d||this.rk)this.pg[h.bk]||this.pg[h.so]?f.push(k.eL):(this.pg[h.Ji]||this.pg[h.po])&&f.push(k.bL);this.rV&&(this.pg[h.fb]||this.pg[h.Db]||this.pg[h.bk]||this.pg[h.Ji]||this.pg[h.Mp]|| this.pg[h.Sp]||this.pg[h.so]||this.pg[h.po])&&f.push(k.uua);f.length==0&&f.push(k.Fg);this.o(new n(b.sba,{WNa:f}))}}};b.sba="movementsChange";return b}); define("tdv/player/view/panorama/control/camera/TargetManager",["require"],function(){function a(){this.xo=!0;this.reset()}function m(h,n,g){h=(n-h)*(1-g);Math.abs(h)<.01&&(h=0);return n-h}a.prototype.reset=function(){this.xo&&(this.xo=!1,this.C5=this.D5=this.Mz=this.qp=this.XL=this.ZL=this.YL=this.wC=void 0)};a.prototype.moveTo=function(h,n,g,k,e){this.qp=h;this.Mz=n;this.D5=g;this.C5=k;this.Bga=e;this.xo=!0};a.prototype.setPosition=function(h,n,g,k){this.wC=h;this.YL=n;this.ZL=g;this.XL=k};a.prototype.Bt= function(){return this.wC};a.prototype.At=function(){return this.YL};a.prototype.aE=function(){return this.ZL};a.prototype.qJ=function(){return this.XL};a.prototype.Uf=function(){return this.xo};a.prototype.Nb=function(){if(this.xo)if(this.Bga)this.wC=this.qp,this.YL=this.Mz,this.ZL=this.D5,this.XL=this.C5,this.xo=!1;else{for(var h=this.wC,n=this.qp-180,g=this.qp+180;hg;)h-=g-n;this.wC=h;this.wC=m(this.wC,this.qp,.5);this.YL=m(this.YL,this.Mz,.5);this.ZL=m(this.ZL,this.D5,.5);this.XL= m(this.XL,this.C5,.5);this.wC==this.qp&&this.YL==this.Mz&&this.ZL==this.D5&&this.XL==this.C5&&(this.xo=!1)}};return a}); define("tdv/player/view/panorama/control/camera/VRPoseManager",["require","tdv/player/view/util/geo/Quaternion","tdv/player/view/util/URL","tdv/player/view/util/XR"],function(a){function m(b){this.j=b;this.ha=!1;this.sd=this.rb=this.Ga=0;this.z1=void 0}var h=a("tdv/player/view/util/geo/Quaternion"),n=a("tdv/player/view/util/URL"),g=a("tdv/player/view/util/XR");m.prototype.Ra=function(b){this.ha!=b&&(this.ha=b,this.z1=void 0)};m.prototype.setPosition=function(b,c,d){if(this.ha&&this.z1!==void 0){for(var f= b-this.z1;f>180;)f-=360;for(;f<-180;)f+=360;(f<-1E-4||f>1E-4)&&g.jK(b)}this.Ga=b;this.rb=c;this.sd=d};m.prototype.Bt=function(){return this.Ga};m.prototype.At=function(){return this.rb};m.prototype.aE=function(){return this.sd};m.prototype.Uf=function(){return!0};m.prototype.Nb=function(){if(g.Ag&&!this.j.A4){g.jK();var b=h.haa(g.ug,!0);this.z1=this.Ga=b.Xa;this.rb=b.pitch;this.sd=b.Mg;this.rb=e===void 0?b.pitch:e;this.sd=k===void 0?b.Mg:k;g.setScale(1)}};var k=n.Ak("debug")?n.H7("force_vr_roll"): void 0,e=n.Ak("debug")?n.H7("force_vr_pitch"):void 0;return m}); define("tdv/player/view/panorama/control/camera/ManualCameraController","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/constants/RotationMode tdv/player/view/panorama/control/camera/GyroscopeManager tdv/player/view/panorama/control/camera/KeyboardManager tdv/player/view/panorama/control/camera/MovementManager tdv/player/view/panorama/control/camera/MouseManager tdv/player/view/panorama/control/camera/TargetManager tdv/player/view/panorama/control/camera/VRPoseManager tdv/player/view/panorama/control/constants/Movement tdv/player/view/util/geo/Quaternion tdv/player/view/util/XR tdv/view/constants/Cursor".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/constants/RotationMode"),e=a("tdv/player/view/panorama/control/camera/GyroscopeManager"),b=a("tdv/player/view/panorama/control/camera/KeyboardManager"),c=a("tdv/player/view/panorama/control/camera/MovementManager"),d=a("tdv/player/view/panorama/control/camera/MouseManager"),f=a("tdv/player/view/panorama/control/camera/TargetManager"),l=a("tdv/player/view/panorama/control/camera/VRPoseManager"), p=a("tdv/player/view/panorama/control/constants/Movement");a("tdv/player/view/util/geo/Quaternion");var q=a("tdv/player/view/util/XR"),r=a("tdv/view/constants/Cursor"),t=m.extend(g,function(u,v,w){g.call(this);this.j=u;this.ld=this.j.ld;this.va=v;this.Cc=w;this.mD=this.DC=this.qS=this.t4=this.ha=!1;this.Bc=new c;this.Ys=new f;this.sd=this.rb=this.Ga=0;this.kb=90;this.uI=1;this.Ui=void 0;this.mda=this.iR=5;this.hW=!1;this.Hb=new d;this.Hb.bind(d.yx,this.UT,this,!0);this.Hb.bind(d.Hr,this.ZC,this,!0); this.Hb.bind(d.$j,this.Gs,this,!0);this.Hb.bind(d.Zj,this.Fs,this,!0);this.Um=new e;this.Um.bind(h.V,this.BBa,this);this.CC=!1;this.Uo=new b(this.j);this.Uo.bind(b.sba,this.LBa,this,!0);this.Vv=new l(this.j);q.M.bind(h.V,this.ln,this,!0);q.M.bind(h.Pd,this.ln,this,!0);this.ln()});t.prototype.clear=function(){this.Hb.h(d.yx,this.UT,this,!0);this.Hb.h(d.Hr,this.ZC,this,!0);this.Hb.h(d.$j,this.Gs,this,!0);this.Hb.h(d.Zj,this.Fs,this,!0);this.Hb.Hn();this.Hb=null;this.Um.h(h.V,this.BBa,this);this.Um= null;this.Uo.h(b.sba,this.LBa,this,!0);this.Uo.clear();this.Uo=null;q.M.h(h.V,this.ln,this,!0);q.M.h(h.Pd,this.ln,this,!0);this.Cc=this.va=this.Bc=null;this.p0();this.j=this.ld=null};t.prototype.setCamera=function(u){this.Bc.reset();this.Ys.reset();this.Hb.setCamera(u);this.iR=u.get("automaticRotationSpeed");this.mda=u.get("automaticZoomSpeed")};t.prototype.wl=function(u){Array.isArray(u)||(u=[u]);var v=0,w=0,y=0,x=!1;u.includes(p.Fg)||(u.includes(p.cL)?v=-this.iR:u.includes(p.dL)&&(v=+this.iR),u.includes(p.bL)? w=-this.iR:u.includes(p.eL)&&(w=+this.iR),u.includes(p.Nx)?y=-this.mda:u.includes(p.Ox)&&(y=+this.mda),u.includes(p.PLAYING)&&(x=!0),u.includes(p.Wua)&&(y*=2),u.includes(p.uua)&&(v*=10,w*=10),v*=this.uI,w*=this.uI);this.md(v,w,0,y,0,0,0,0,x,!0,!0,!0)};t.prototype.setPosition=function(u,v,w,y){this.Ga=u;this.rb=v;this.sd=w;this.kb=y;this.uI=this.kb/90;this.Um.setPosition(this.Ga,this.rb,this.sd);this.Vv.setPosition(this.Ga,this.rb,this.sd);this.Hb.lK(this.kb);this.Ys.setPosition(this.Ga,this.rb,this.sd, this.kb)};t.prototype.moveTo=function(u,v,w,y,x){this.Ys.moveTo(u,v,w,this.Cc.QKa(y),x);this.t4=!1;this.Bc.reset();this.hj()};t.prototype.yra=function(u,v,w){this.md(0,0,0,0,u,v,w,0,!1,!1,!1)};t.prototype.Uf=function(){return this.ha&&(this.mD||this.zTa())?!0:!1};t.prototype.Vcb=function(){this.mD=this.hW=!1};t.prototype.zTa=function(){return this.ha?this.hW?!0:this.Vv.ha?this.Vv.Uf()||this.Bc.Uf():this.Um.ha?this.CC?!0:this.Um.Uf()||this.Bc.Uf():this.Bc.Uf()||this.Ys.Uf():!1};t.prototype.Nb=function(u){this.hW= !1;this.Bc.Nb(u);this.mD=!1;var v=this.kb;if(this.Vv.ha){this.Vv.Nb(u);u=this.Vv.Bt()+this.Bc.rC+this.J2a();var w=this.Vv.At();var y=this.Vv.aE()}else this.Ys.Uf()?(this.Ys.Nb(u),u=this.Ys.Bt(),w=this.Ys.At(),y=this.Ys.aE(),v=this.Ys.qJ()):(this.Um.ha?(this.CC=!1,this.Um.Nb(u),u=this.Um.Bt()+this.Bc.rC,w=this.Um.At(),this.qS&&(w+=this.Bc.WL),y=this.Um.aE()):(u=this.Ga+this.Bc.rC,w=this.rb+this.Bc.WL,y=0),v+=this.Bc.pxa);this.Cc.qr(v);this.va.setPosition(u,w,y,this.Cc.jf(),this.Cc.lw());this.Ga=this.va.Jc(); this.rb=this.va.Ic();this.sd=this.va.yg();this.kb=this.va.uA();if(this.t4&&this.va.pMa()){v=this.Bc.rW;if(this.va.oMa()||this.va.qMa())v=-v;u=this.Bc.xU;if(this.va.rMa()||this.va.nMa())u=-u;this.md(v,u,0,0,0,0,0,0,!0,!1,!1,!0)}};t.prototype.Bt=function(){return this.Ga};t.prototype.At=function(){return this.rb};t.prototype.aE=function(){return this.sd};t.prototype.qJ=function(){return this.kb};t.prototype.Ra=function(u){this.ha!=u&&((this.ha=u)?(this.wD(this.Hb.FH==k.ux?r.IB:void 0),this.Hb.au(this.j.getParent()), this.hj()):(this.p0(),this.Hb.Hn()),this.Ula())};t.prototype.VY=function(u){this.DC!=u&&(this.DC=u,this.Ula(),this.CC=!0)};t.prototype.RE=function(u){this.Uo.Ra(u)};t.prototype.Ula=function(){var u=this.j.Bw();this.Um.Ra(this.ha&&this.DC&&!u);this.Vv.Ra(this.ha&&u)};t.prototype.BBa=function(){this.hj()};t.prototype.WY=function(u){this.qS=u;this.Um.Ulb(this.qS)};t.prototype.TE=function(u){this.Hb.TE(u);this.wD(this.Hb.FH==k.ux?r.IB:void 0)};t.prototype.sK=function(u){this.Hb.sK(u)};t.prototype.ln= function(){this.ha&&(this.j.Bw()&&(q.setScale(1),q.jK(this.Ga)),this.Ula(),this.hj())};t.prototype.UT=function(u){var v=!this.Vv.ha&&(!this.Um.ha||this.qS);if(this.Hb.FH==k.tF){var w=void 0;if(u.tB!=0||u.TA!=0){var y=Math.sqrt(u.TA*u.TA+u.tB*u.tB)>25,x=Math.atan2(u.TA,u.tB)*180/Math.PI;x>=-22.5&&x<22.5?w=y?r.Pta:r.Ota:x>=22.5&&x<67.5?w=y?r.Rta:r.Yta:x>=67.5&&x<112.5?w=y?r.Qta:r.Xta:x>=112.5&&x<157.5?w=y?r.Sta:r.Zta:x>=157.5||x<-157.5?w=y?r.Wta:r.cua:x>=-157.5&&x<-112.5?w=y?r.Vta:r.bua:x>=-112.5&& x<-67.5?w=y?r.Tta:r.$ta:x>=-67.5&&x<-22.5&&(w=y?r.Uta:r.aua)}this.wD(w);this.md(u.tB,u.TA,0,0,u.yQ,u.OP,0,0,!1,!1,!1,v)}else this.md(u.tB,u.TA,0,0,u.yQ,u.OP,0,0,!1,!1,v,v)};t.prototype.ZC=function(u){this.md(0,0,0,u.Mgb,0,0,0,u.Koa,!1,!0,!1,!0)};t.prototype.md=function(u,v,w,y,x,z,A,D,F,C,B,H){var E=!1;this.ld.get("rotationEnabled")&&(E=this.Bc.xra(u,v,w,x,z,A,C,B,H)||E);this.ld.get("zoomEnabled")&&(E=this.Bc.Wlb(y,D)||E);E&&(this.Ys.reset(),this.t4=F,this.hj())};t.prototype.J2a=function(){if(!this.j.Bw())return 0; this.p4=this.p4||0;for(var u=0,v=0;v0&&this.p4<=0?v:u<0&&this.p4>=0?-v:0;this.p4=u;return v};t.prototype.hj=function(){this.mD=!0;this.o(new n(t.Ki))};t.prototype.Gs=function(){this.hW=!0;this.o(new n(t.$j));this.Hb.FH==k.ux&&this.wD(r.Li)};t.prototype.Fs=function(){this.o(new n(t.Zj));this.Hb.FH==k.ux&&this.wD(r.IB)};t.prototype.LBa=function(u){this.wl(u.data.WNa);u.data.WNa.indexOf(p.Fg)<0&&this.j.Vb().o(new n(h.bG, {iQ:u}))};t.prototype.wD=function(u){this.Ui!=u&&this.ha&&(this.Ui&&this.j.SP(this.Ui),(this.Ui=u)&&this.j.V9(this.Ui))};t.prototype.p0=function(){this.Ui&&(this.j.SP(this.Ui),this.Ui=void 0)};t.Ki="position change request";t.$j="user interaction start";t.Zj="user interaction end";return t}); define("tdv/player/script/TargetRotationalCameraMovement",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("TargetRotationalCameraMovement",m,function(){m.call(this)})}); define("tdv/player/view/panorama/control/camera/SequenceCameraController","require tdv/utils tdv/constants/EventName tdv/constants/PlaybackState tdv/events/Event tdv/events/EventDispatcher tdv/player/parser/ClassInfo tdv/player/script/DistanceRotationalCameraMovement tdv/player/script/TargetRotationalCameraMovement tdv/view/util/Ease tdv/view/util/EaseDimension".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState"),g=a("tdv/events/Event"),k= a("tdv/events/EventDispatcher"),e=a("tdv/player/parser/ClassInfo");a("tdv/player/script/DistanceRotationalCameraMovement");a("tdv/player/script/TargetRotationalCameraMovement");var b=a("tdv/view/util/Ease"),c=a("tdv/view/util/EaseDimension"),d=m.extend(k,function(f,l,p){k.call(this);this.j=f;this.va=l;this.Cc=p;this.xN=this.Xb=null;this.pn=this.jD=!1;this.YH=void 0;this.PM=[];this.Uja=0;this.la=null;this.rb=this.Ga=0;this.kb=90});d.prototype.clear=function(){this.end();this.va=this.j=null};d.prototype.start= function(f){this.U8a(f);this.j6a();this.pn=!1;this.Iwa();this.jD=!1;this.hj();this.ml()};d.prototype.end=function(){this.Xb!=null&&(this.Nwa(),this.jD=this.pn=!1,this.la=null,this.ml())};d.prototype.Yib=function(){this.Xb&&this.Xb.get("restartMovementOnUserInteraction")?this.jD||(this.NFa(),this.Wka(),this.la=null,this.jD=!0,this.ml()):(this.la=null,this.pause())};d.prototype.bjb=function(){this.jD&&(this.jD=!1,this.Zza()||this.M9a())};d.prototype.U8a=function(f){this.Nwa();this.Xb=f;this.Xb.bind(h.Fx, this.PCa,this,!0);this.Xb.bind(h.gL,this.OCa,this,!0);this.Xb.bind(h.L("movementIndex"),this.v3,this,!0);this.PM=this.Xb.get("movements",[])};d.prototype.Nwa=function(){this.Wka();this.Xb!=null&&(this.Xb.h(h.Fx,this.PCa,this),this.Xb.h(h.gL,this.OCa,this),this.Xb.h(h.L("movementIndex"),this.v3,this),this.Xb.set("movementIndex",-1),this.Xb=null,this.PM=[])};d.prototype.ql=function(){return this.Xb?this.pn?n.Zb:n.PLAYING:n.ca};d.prototype.setPosition=function(f,l,p,q){this.Ga=f;this.rb=l;this.kb=q}; d.prototype.Uf=function(){return!this.Xb||!this.la||this.pn||this.jD||this.Zza()?!1:!0};d.prototype.Nb=function(f){if(this.Uf()){this.la.Nb(f);f=this.la.ob("hfov");if(this.fp!=this.Cc.fp){this.fp=this.Cc.fp;var l=this.la.mX("hfov");l.from=this.Cc.OW(l.from);l.to=this.Cc.OW(l.to);f=this.Cc.OW(f)}this.va.setPosition(this.la.ob("yaw"),this.la.ob("pitch"),0,f,this.Cc.lw());this.Ga=this.va.Jc();this.rb=this.va.Ic();this.kb=this.va.uA();this.la.Ve()&&this.l5a()}};d.prototype.Bt=function(){return this.Ga}; d.prototype.At=function(){return this.rb};d.prototype.qJ=function(){return this.kb};d.prototype.play=function(){this.pn&&(this.pn=!1,this.la||this.v3(),this.Iwa(),this.hj(),this.ml())};d.prototype.pause=function(){this.pn||(this.pn=!0,this.NFa(),this.ml())};d.prototype.PCa=function(){this.play()};d.prototype.OCa=function(){this.pause()};d.prototype.j6a=function(){this.Uja=0;var f=this.Xb.get("movementIndex",-1);f==-1&&(f=0);this.f4(f)};d.prototype.l6a=function(){this.Uja++;var f=this.Xb.get("repeat", 1);this.PM.length>0&&(f==0||this.Uja=0?this.GR(this.PM[f]):null};d.prototype.l5a=function(){this.PM[this.Xb.get("movementIndex")].o(new g(h.Tb)); this.k6a()};d.prototype.Zza=function(){return this.xN!=null};d.prototype.M9a=function(){this.Wka();var f=this,l=this.Xb.get("restartMovementDelay")||0;this.xN=setTimeout(function(){f.xN=null;f.C5a()},l);this.ml()};d.prototype.Wka=function(){this.xN&&(clearTimeout(this.xN),this.xN=null)};d.prototype.C5a=function(){this.f4(this.Xb.get("movementIndex"));this.hj();this.ml()};d.prototype.GR=function(f){var l,p=this.kI(this.Ga,-180,180),q=this.rb,r=this.kb;if(e.Oa("TargetRotationalCameraMovement",f)){var t= f.get("targetYaw",p);var u=f.get("targetPitch",q);(l=f.get("targetHfov"))?(this.Cc.lRa(l),l=this.Cc.jf()):l=r;this.va.setPosition(t,u,0,l,this.Cc.lw());if(this.va.WH)t=this.va.Jc();else switch(this.y0a(f)){case "left":t=this.kI(t,p-360,p);break;case "right":t=this.kI(t,p,p+360);break;case "longest":t=this.kI(t,p-180,p+180);t=t>=p?this.kI(t,p-360,p):this.kI(t,p,p+360);break;default:t=this.kI(t,p-180,p+180)}}else e.Oa("DistanceRotationalCameraMovement",f)&&(t=p+f.get("yawDelta",0),this.va.WH&&(t=Math.min(Math.max(-180, t),180)),u=q+f.get("pitchDelta",0),l=r+f.get("hfovDelta",0),this.va.setPosition(t,u,0,l,this.Cc.lw()),this.va.WH&&(t=this.va.Jc()));u=this.va.Ic();l=this.va.uA();this.fp=this.Cc.fp;return new b(f.get("easing"),[new c("yaw",p,t,f.get("yawSpeed")),new c("pitch",q,u,f.get("pitchSpeed")),new c("hfov",r,l,f.get("hfovSpeed"))],f.get("duration"))};d.prototype.Iwa=function(){this.YH=void 0};d.prototype.NFa=function(){if(this.la){this.YH=void 0;var f=this.la&&this.la.mX("yaw");f&&(f.to>f.from?this.YH="right": f.top;)f-=p-l;return f};d.prototype.hj=function(){this.o(new g(d.Ki))};d.prototype.O$a=function(){this.o(new g(d.Fba))};d.prototype.ml=function(){this.o(new g(d.gd))};d.Ki="position change request";d.Fba="sequence end";d.gd="playback state change";return d}); define("tdv/player/view/panorama/control/camera/Controller","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/panorama/control/camera/LimitsManager tdv/player/view/panorama/control/camera/HoverCameraController tdv/player/view/panorama/control/camera/ManualCameraController tdv/player/view/panorama/control/camera/SequenceCameraController tdv/player/view/panorama/control/constants/Movement tdv/player/view/util/XR tdv/constants/PlaybackState".split(" "), function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/panorama/control/camera/LimitsManager"),e=a("tdv/player/view/panorama/control/camera/HoverCameraController"),b=a("tdv/player/view/panorama/control/camera/ManualCameraController"),c=a("tdv/player/view/panorama/control/camera/SequenceCameraController"),d=a("tdv/player/view/panorama/control/constants/Movement"),f=a("tdv/player/view/util/XR"),l=a("tdv/constants/PlaybackState"), p=m.extend(g,function(q,r){g.call(this);this.j=q;this.j.bind(h.$b,this.kd,this);f.M.bind(h.V,this.ln,this,!0);this.Cc=r;this.$ja=!1;this.kb=this.sd=this.rb=this.Ga=void 0;this.Yv=this.Xv=this.sT=this.vT=this.uT=this.tT=!1;this.pp=!0;this.sM=this.Ks=0;this.ha=!1;this.Oo=null;this.yS=5E3;this.CS=this.yga=null;this.jka=[];this.Jj=this.bC=l.ca;this.va=new k(q);this.rc=new b(this.j,this.va,this.Cc);this.rc.bind(b.Ki,this.Cs,this,!0);this.rc.bind(b.$j,this.Gs,this,!0);this.rc.bind(b.Zj,this.Fs,this,!0); this.No=new e(this.j,this.va,this.Cc);this.No.bind(e.Ki,this.Cs,this,!0);this.Pf=new c(this.j,this.va,this.Cc);this.Pf.bind(c.Ki,this.Cs,this,!0);this.Pf.bind(c.Fba,this.rv,this,!0);this.Pf.bind(c.gd,this.QCa,this,!0)});p.prototype.clear=function(){this.Mv();this.rc.h(b.Ki,this.Cs,this);this.rc.h(b.$j,this.Gs,this,!0);this.rc.h(b.Zj,this.Fs,this,!0);this.rc.clear();this.rc=null;this.No.h(e.Ki,this.Cs,this,!0);this.No.clear();this.No=null;this.Pf.h(c.Ki,this.Cs,this);this.Pf.h(c.Fba,this.rv,this); this.Pf.h(c.gd,this.QCa,this);this.Pf.clear();this.va=this.Pf=null;this.j.h(h.$b,this.kd,this);f.M.h(h.V,this.ln,this,!0);this.j=null;this.Ac&&(this.Ac.h(h.L("sequences"),this.Aia,this,!0),this.Ac=null);this.c5([])};p.prototype.end=function(){this.bC=l.ca;this.Mv();this.rc.Ra(!1);this.No.Ra(!1);this.Pf.end();this.ha=!1;this.Ez(0,0,0);this.CS=this.yga=null;this.Ac&&(this.Ac.h(h.L("sequences"),this.Aia,this,!0),this.Ac=null);this.c5([]);this.HI()};p.prototype.start=function(q,r){this.bC=l.PLAYING;this.ha= !0;this.Ez(0,0,0);this.eV(q);this.$7a(r);this.UDa();this.q5(this.CS);this.No.Ra(!0);this.HI()};p.prototype.ql=function(){return this.Jj};p.prototype.play=function(q){this.bC=l.PLAYING;this.Pf.ql()==l.Zb?this.Pf.play():this.Pf.ql()==l.ca&&(!q&&this.CS?this.q5(this.CS):this.zM()||this.xV());this.HI()};p.prototype.resume=function(){this.bC==l.Zb&&(this.rc.Vcb(),this.play(!0))};p.prototype.pause=function(){this.rc.wl(d.Fg);this.bC==l.PLAYING&&(this.bC=l.Zb,this.Pf.ql()==l.PLAYING?(this.Pf.pause(),this.HI()): this.zM()&&this.Mv())};p.prototype.stop=function(){this.bC=l.ca;this.Pf.ql()!=l.ca&&this.Pf.end();this.rc.wl(d.Fg);this.HI();this.zM()&&this.Mv()};p.prototype.moveTo=function(q,r,t,u,v){this.rc.moveTo(q,r,t,u,v)};p.prototype.c5=function(q){this.jka.forEach(function(r){r.h(h.Fx,this.zEa,this,!0)}.bind(this));this.jka=q;this.jka.forEach(function(r){r.bind(h.Fx,this.zEa,this,!0)}.bind(this))};p.prototype.ln=function(){this.va.dB(f.isPresenting)};p.prototype.wl=function(q){this.rc.wl(q)};p.prototype.yra= function(q,r,t){this.rc.yra(q,r,t)};p.prototype.VY=function(q){this.DC!=q&&(this.DC=q,this.rc.VY(this.DC),this.bb())};p.prototype.WY=function(q){this.rc.WY(q)};p.prototype.TE=function(q){this.rc.TE(q)};p.prototype.sK=function(q){this.rc.sK(q)};p.prototype.RE=function(q){this.rc.RE(q)};p.prototype.YA=function(q){this.ha&&(this.rc.Uf()||this.j.Bw()||this.DC&&(this.rc.ha||!this.rc.qS)?(this.rc.zTa()&&this.Pf.Yib(),this.rc.Nb(q),this.un(this.rc.Bt(),this.rc.At(),this.rc.aE(),this.rc.qJ()),this.bb()): this.Pf.jD?(this.Pf.bjb(),this.bb()):this.Pf.Uf()?(this.Pf.Nb(q),this.un(this.Pf.Bt(),this.Pf.At(),0,this.Pf.qJ()),this.bb()):this.No.Uf()?(this.No.Nb(q),this.un(this.No.Bt(),this.No.At(),0,this.No.qJ()),this.bb()):this.$ja?(this.$ja=!1,this.Cc.qr(this.j.jf()),this.va.setPosition(this.j.Jc(),this.j.Ic(),this.j.yg(),this.Cc.jf(),this.Cc.lw()),this.un(this.va.Jc(),this.va.Ic(),this.va.yg(),this.va.uA()),this.bb()):(this.Ez(0,0,0),this.bC==l.PLAYING&&this.Pf.ql()!=l.PLAYING&&(this.zM()||this.xV())))}; p.prototype.ze=function(){this.Lab();this.UDa()};p.prototype.Lab=function(){var q=this.j.Jc()-this.Ga||0,r=this.j.Ic()-this.rb||0;this.j.yg();this.Ez(q,r,this.j.jf()-this.kb||0)};p.prototype.UDa=function(){this.Ga=this.j.Jc();this.rb=this.j.Ic();this.sd=this.j.yg();this.kb=this.j.jf();this.rc.setPosition(this.Ga,this.rb,this.sd,this.kb);this.Pf.setPosition(this.Ga,this.rb,this.sd,this.kb);this.No.setPosition(this.Ga,this.rb,this.sd,this.kb)};p.prototype.eV=function(q){this.va.Vf(q)};p.prototype.$7a= function(q){this.Ac=q;this.yS=q.get("timeToIdle",5E3);this.yga=q.get("idleSequence");this.CS=q.get("initialSequence");this.rc.setCamera(q);this.No.setCamera(q);q.bind(h.L("sequences"),this.Aia,this,!0);this.c5(q.get("sequences",[]))};p.prototype.Aia=function(){this.c5(this.Ac.get("sequences",[]))};p.prototype.zEa=function(q){this.q5(q.source)};p.prototype.Cs=function(){this.Mv();this.bb()};p.prototype.Gs=function(){this.o(new n(p.$j))};p.prototype.Fs=function(){this.o(new n(p.Zj))};p.prototype.q5= function(q){q?(this.rc.Ra(!q.get("mandatory",!1)),this.Pf.start(q)):this.rv()};p.prototype.rv=function(){this.rc.Ra(!0);this.xV()};p.prototype.QCa=function(){this.HI()};p.prototype.kd=function(){this.$ja=!0;this.bb()};p.prototype.zM=function(){return this.Oo!=null};p.prototype.xV=function(){this.Mv();var q=this;this.Oo=setTimeout(function(){q.Oo=null;q.pia()},this.yS)};p.prototype.Mv=function(){this.Oo&&(clearTimeout(this.Oo),this.Oo=null)};p.prototype.pia=function(){this.q5(this.yga)};p.prototype.bb= function(){this.o(new n(p.oc))};p.prototype.un=function(q,r,t,u){this.j.setPosition(q,r,t,u)};p.prototype.Ez=function(q,r,t){var u=!1,v=Math.abs(q)<.001&&Math.abs(r)<.001&&Math.abs(t)<.001;v||this.DC?(u=this.pp!=1,this.Yv=this.Xv=this.sT=this.vT=this.uT=this.tT=!1,this.pp=!0):(this.tT!=q<-.001&&(this.tT=!this.tT,u=!0),this.uT!=q>.001&&(this.uT=!this.uT,u=!0),this.sT!=r<-.001&&(this.sT=!this.sT,u=!0),this.vT!=r>.001&&(this.vT=!this.vT,u=!0),this.Xv!=t<-.001&&(this.Xv=!this.Xv,u=!0),this.Yv!=t>.001&& (this.Yv=!this.Yv,u=!0),this.pp!=v&&(this.pp=!this.pp,u=!0));v||this.o(new n(p.Fr,{yaw:this.Ga,pitch:this.rb,roll:this.sd,hfov:this.kb}));u&&((this.ha||this.pp)&&this.o(new n(p.Cl,{movingLeft:this.tT,movingRight:this.uT,movingUp:this.vT,movingDown:this.sT,zoomingIn:this.Xv,zoomingOut:this.Yv,stopped:this.pp})),this.HI())};p.prototype.HI=function(){if(this.ha){var q=this.Pf.ql();this.pp||(q=l.PLAYING)}else q=l.ca;this.Jj!=q&&(this.Jj=q,this.o(new n(p.gd,{state:this.Jj})))};p.oc="request frame";p.Cl= "movement change";p.Fr="position change";p.gd="playback state change";p.$j="user interaction start";p.Zj="user interaction end";return p}); define("tdv/player/view/panorama/control/transition/PositionController","require tdv/constants/EventName tdv/player/view/panorama/control/camera/LimitsManager tdv/player/view/util/Device tdv/player/view/util/Gyroscope tdv/player/view/util/URL tdv/player/view/util/XR tdv/player/view/util/geo/Quaternion".split(" "),function(a){function m(d,f,l){this.j=d;this.Cc=f;this.fp=this.Cc.fp;this.H=l;this.va=new h(d);l.qh&&this.va.Vf(l.qh);this.Bz=new h(d);this.Lka=this.NC=this.OC=void 0;this.Ga=this.j.Jc(); this.rb=this.j.Ic();this.sd=this.j.yg();this.kb=this.H.qh?this.j.jf():this.Cc.lw()?this.Cc.OW(m.Raa):m.Raa;this.EFa=0;this.Ba=null;this.iAa=!0}a("tdv/constants/EventName");var h=a("tdv/player/view/panorama/control/camera/LimitsManager");a("tdv/player/view/util/Device");var n=a("tdv/player/view/util/Gyroscope"),g=a("tdv/player/view/util/URL"),k=a("tdv/player/view/util/XR"),e=a("tdv/player/view/util/geo/Quaternion");new THREE.Euler;m.prototype.Vf=function(d,f,l){if(this.Ba!=d)if(this.hD=!0,this.Ba= d,this.j.Bw()){this.Lka=this.Ga;for(d=this.Lka-f;d>180;)d-=360;for(;d<-180;)d+=360;k.jK(f)}else this.wra(f,l)};m.prototype.wra=function(d,f){this.Ga=d;this.rb=f};m.prototype.hJ=function(d){this.Cc.lRa(d);return this.Cc.jf()};m.prototype.qr=function(d){this.kb=d};m.prototype.aZ=function(d){this.iAa=d};m.prototype.rK=function(d){this.EFa=d};m.prototype.YA=function(){this.fp!=this.Cc.fp&&(this.fp=this.Cc.fp,this.kb=this.Cc.OW(this.kb));if(this.H.Va()){var d=e.haa(k.ug,!0);this.j.Bw()&&(this.Ga=d.Xa); this.rb=c===void 0?d.pitch:c;this.sd=b===void 0?d.Mg:b;this.OC=this.Ga;this.NC=this.rb}else if(this.H.gMa()){d=n.Et();var f=this.mI(d.yaw,this.Ga);this.Ga+=this.OC===void 0?0:f-this.OC;this.rb+=this.NC===void 0?0:d.pitch-this.NC;this.sd=d.roll;this.OC=d.yaw;this.NC=d.pitch}else d=this.mI(this.j.Jc(),this.Ga),f=this.j.Ic(),this.Ga+=this.OC===void 0?0:d-this.OC,this.rb+=this.NC===void 0?0:f-this.NC,this.sd=this.j.yg();this.hD&&this.va.Vf(this.Ba);this.va.dB(this.H.Va());this.va.setPosition(this.Ga, this.rb,this.sd,this.kb,this.Cc.lw());if(this.hD)if(this.hD=!1,this.H.Va())(d=this.H.qh&&this.j.Jf(this.H.qh))&&d.set("deltaYaw",this.Lka-this.va.Jc());else if(d=this.H.qh&&this.j.Jf(this.H.qh))d.set("deltaYaw",this.j.Jc()-this.va.Jc()),d.set("deltaPitch",this.j.Ic()-this.va.Ic()),d.set("deltaRoll",this.j.yg()-this.va.yg());this.Ga=this.va.Jc();this.rb=this.va.Ic();this.sd=this.va.yg();this.H.Va()||this.H.gMa()||(this.OC=this.Ga,this.NC=this.rb);this.kb=this.iAa?this.va.uA():this.kb;this.j.setPosition(this.Ga, this.rb,this.sd,this.kb);this.j.rK(this.EFa)};m.prototype.d$=function(d,f){this.Bz.Vf(d);this.Bz.setPosition(0,0,0,f,this.Cc.lw());return this.Bz.uA()};m.prototype.Yjb=function(d,f){this.Bz.Vf(d);this.Bz.setPosition(f.Xa,f.pitch,f.Mg,f.Wd,this.Cc.lw());f.Xa=this.Bz.Jc();f.pitch=this.Bz.Ic();f.Mg=this.Bz.yg();f.Wd=this.Bz.uA()};m.prototype.mI=function(d,f){for(;d+180f;)d-=360;return d};m.prototype.TJa=function(){return m.Raa};m.Raa=TDV.pua.oUa;var b=g.Ak("debug")?g.H7("force_vr_roll"): void 0,c=g.Ak("debug")?g.H7("force_vr_pitch"):void 0;return m}); define("tdv/player/view/panorama/control/transition/TransitionData",["require","tdv/player/script/RotationalCameraPosition","tdv/player/script/RotationalCameraDisplayPosition","tdv/player/view/util/Device","tdv/player/view/util/FileType"],function(a){function m(b,c,d,f,l){this.j=b;this.Zh=c;b=this.j.P;this.oQ=b.get("transitionMode","blending");c=b.get("transitionDuration",500);this.Z2a(d,f)&&(this.oQ=m.k_,c=1500);this.ana=b.get("blendingTransitionDuration",c);this.Deb=b.get("firstTransitionDuration", c);this.YJa=b.get("disolveTransitionDuration",c);this.RSa=b.get("translationTransitionDuration",1E3);b.get("translationTransitionSpeed");this.SSa=b.get("translationTransitionEnabled",!0);this.pPa=b.get("panoramaToPanoramaModelTransitionEnabled",!0);this.cPa=b.get("originTransitionDuration",3E3);this.Z7=400;this.Baa=1E3;this.Whb=b.get("modelToPanoramaTraslationDuration",1500);this.Uib=b.get("panoramaToModelTraslationDuration",1E3);this.qh=d;this.bmb=!d||d.Zoa();this.cmb=!d||d.OMa();this.Sc=f;this.qSa= !f||f.Zoa();this.$ra=!f||f.OMa();this.zmb=!!f&&this.Zga(f);c=(this.xK=l)&&l.get("initialPosition")||new h;this.Eh=new h;this.Eh.set("yaw",c.get("yaw",0));this.Eh.set("pitch",c.get("pitch"));this.Eh.set("hfov",c.get("hfov"));this.vg=new n;this.vg.set("yaw",this.Eh.get("yaw"));this.vg.set("pitch",this.Eh.get("pitch"));this.vg.set("hfov",this.Eh.get("hfov"));this.vg.set("stereographicFactor",0);this.br=[];if(!d){this.br=l&&l.get("displayMovements")||[];for(c=this.br.length-1;c>=0;c--)this.vg.set("yaw", this.vg.get("yaw",this.br[c].get("targetYaw"))),this.vg.set("pitch",this.vg.get("pitch",this.br[c].get("targetPitch"))),this.vg.set("hfov",this.vg.get("hfov",this.br[c].get("targethfov"))),this.vg.set("stereographicFactor",this.vg.get("stereographicFactor",this.br[c].get("stereographicFactor")));l=l&&l.get("displayOriginPosition")||this.Eh;this.vg.set("yaw",l.get("yaw"));this.vg.set("pitch",l.get("pitch"));this.vg.set("hfov",l.get("hfov"));this.vg.set("stereographicFactor",l.get("stereographicFactor"))}this.pQ= this.oQ==m.Op&&this.SSa&&this.qSa&&this.F2a(d,f)||null;var p=this.oQ==m.Op&&this.Sc&&this.qSa&&this.Zh&&this.Sc.get("modelLocations")||[];l=this.oQ==m.Op&&this.qh&&this.bmb&&this.Zh&&this.qh.get("modelLocations")||[];var q=[];l.forEach(function(t){p.forEach(function(u){t.get("model")==u.get("model")&&q.push([t,u])})});var r=this.Zh&&this.Zh.get("model");this.Fc=this.nc=null;q.length>1&&this.Zh&&(c=q.find(function(t){return t[0].get("model")==r}))&&(q=[c]);(c=q.length?q[0]:null)&&(r&&c[0].get("model")== r||c[0].get("forceModelLoading")||c[1].get("forceModelLoading"))?(this.nc=c[0],this.Fc=c[1]):(this.nc=l.find(function(t){return t.get("preferred")}),this.nc||this.Fc||(this.Fc=p.find(function(t){return t.get("preferred")})),[].concat(l,p).forEach(function(t){t.set("preferred",!1)}),this.nc||this.Fc||(this.nc=l.find(function(t){return t.get("model")==r})),this.nc||this.Fc||(this.Fc=p.find(function(t){return t.get("model")==r})),this.nc||this.Fc||(this.nc=l.find(function(t){return t.get("forceModelLoading")})), this.nc||this.Fc||(this.Fc=p.find(function(t){return t.get("forceModelLoading")})));(this.Fc||this.nc)&&b.get("translationTransitionSpeed")&&(this.Fc||this.nc).get("model").get("worldUnitToMeters")&&(this.RSa=b.get("translationTransitionSpeed")/(this.Fc||this.nc).get("model").get("worldUnitToMeters"));this.Be=null;this.dmb=g.Nd()==g.vj?512:1536;this.Amb=g.Nd()==g.vj?512:this.Va()?1536:1024;this.qE=this.r4a();this.mode=(b=!this.Va()||this.E3a())&&this.nc&&this.Fc&&this.pQ&&this.pPa?m.rca:b&&this.nc&& this.Fc&&this.SSa&&this.pPa?m.Gua:this.pQ?m.Fua:b&&!this.qh&&this.Fc?m.qca:b&&!this.Sc&&this.nc?m.Hua:d?f?this.oQ=="blending"?m.Op:m.k_:m.sta:m.rta;this.mode!=m.Op||this.cmb&&this.$ra||!(this.vg.get("stereographicFactor",0)>0||this.br.filter(function(t){return t.get("targetStereographicFactor",0)>0}).length>0)||(this.mode=m.k_);this.Fm=null}var h=a("tdv/player/script/RotationalCameraPosition"),n=a("tdv/player/script/RotationalCameraDisplayPosition"),g=a("tdv/player/view/util/Device"),k=a("tdv/player/view/util/FileType"); m.prototype.gMa=function(){return this.j.ld.get("gyroscopeEnabled")};m.prototype.Va=function(){return this.j.P.get("viewMode")=="vr"};m.prototype.F2a=function(b,c){if(!b||!c)return null;b=(b.get("adjacentPanoramas")||[]).filter(function(d){return d.get("enabled")&&d.Bcb()&&d.get("panorama")==c});return b.length==0?null:b[0]};m.prototype.Z2a=function(b,c){return this.Va()&&g.Nd()==g.vj&&(this.Zga(b)||this.Zga(c))};m.prototype.Zga=function(b){return!!b&&b.Ln()};m.prototype.r4a=function(){var b=this.Wfa()&& this.Wfa().get("model");return(b=b&&b.get("levels")[0])&&k.is(b.get("url"),k.uta)};m.prototype.Wfa=function(){var b=this.Fc||this.nc;return b&&b.get("model")};m.prototype.E3a=function(){var b=this.Wfa();b=(b=b&&b.get("camera"))&&(b.get("vrEnabled")||b.get("xrEnabled"))&&!this.j.P.Vb().get(e);return this.Va()&&!b?!1:!0};var e=function(b){return b.map(function(c){return String.fromCharCode(c)}).join("")}([119,97,116,101,114,109,97,114,107]);m.k_="fade_out_fade_in";m.rta="fade_in";m.sta="fade_out";m.Op= "blending";m.Fua="translation";m.qca="translation_from_model";m.rca="translation_through_model";m.Gua="translation_to_from_model";m.Hua="translation_to_model";return m});define("tdv/player/view/panorama/control/transition/steps/Step",["require","exports"],function(){return function(){function a(m,h,n,g){this.U=m;this.Uc=h;this.j=n;this.H=g}a.prototype.mh=function(){return!1};a.prototype.Yg=function(){};a.prototype.hE=function(){return!1};return a}()}); define("tdv/player/view/panorama/control/transition/steps/Blend",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/Step","tdv/view/util/Ease","tdv/view/util/EaseDimension"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/Step"),n=a("tdv/view/util/Ease"),g=a("tdv/view/util/EaseDimension");a=m.extend(h,function(k,e,b,c){h.call(this,k,e,b,c);this.la=null;this.Rb=!1});a.prototype.mh=function(){return this.Rb};a.prototype.Yg=function(k){if(!this.Rb){if(!this.la){var e= this.j.Jf(this.H.Sc);e.yi();e.set("alpha",.01);this.la=new n("linear",[new g("alpha",0,1,void 0)],this.H.ana)}this.la.Nb(k);k=this.la.ob("alpha");e=this.j.Jf(this.H.Sc);e.set("alpha",k);this.la.Ve()&&(this.Rb=!0)}};return a}); define("tdv/player/script/ProjectedMaterialModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DObject");return m.define("ProjectedMaterialModel3DObject",h,function(){h.call(this)})}); define("tdv/player/view/panorama/control/transition/steps/SingleOperationStep",["require","exports","tdv/player/view/panorama/control/transition/steps/Step"],function(a,m,h){return function(n){function g(k,e,b,c){k=n.call(this,k,e,b,c)||this;k.Rb=!1;return k}P(g,n);g.prototype.mh=function(){return this.Rb};g.prototype.Yg=function(){this.Rb||(this.Ch(),this.Rb=!0)};g.prototype.Ch=function(){};return g}(h)}); define("tdv/player/view/panorama/control/transition/steps/AddProjectedPanoramasToModel",["require","tdv/utils","tdv/player/script/ProjectedMaterialModel3DObject","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/script/ProjectedMaterialModel3DObject"),n=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep"),g=m.extend(n,function(k,e,b,c,d){n.call(this,k,e,b,c);this.cj=d||3});g.prototype.Ch=function(){var k= this.H.nc,e=this.H.Fc,b=this.H.Be=this.H.Be||new h;b.set("sourceAlpha",0);b.set("targetAlpha",0);this.cj&1&&(b.set("sourceX",k.get("x")),b.set("sourceY",k.get("y")),b.set("sourceZ",k.get("z")),b.set("sourceYaw",k.get("yaw")),b.set("sourceCubeTexture",this.wwa(this.H.qh,this.H.dmb)),b.set("sourceAlpha",1));this.cj&2&&(b.set("targetX",e.get("x")),b.set("targetY",e.get("y")),b.set("targetZ",e.get("z")),b.set("targetYaw",e.get("yaw")),this.v8a(this.H.Sc),b.set("targetCubeTexture",this.wwa(this.H.Sc,this.H.Amb))); this.H.qE?(b.set("nearPlane",!0),b.set("skybox",!1)):(b.set("nearPlane",!1),b.set("skybox",!0));k=(k||e).get("model");k.get("objects").indexOf(b)==-1&&k.set("objects",k.get("objects").concat([this.H.Be]))};g.prototype.wwa=function(k,e){k=this.j.Jf(k);var b=k.get("alpha");k.set("alpha",1);e=this.j.hna(e);k.set("alpha",b);return e};g.prototype.v8a=function(k){k.get("frames").forEach(function(e,b){this.j.Jf(e).set("alpha",b==k.nX()?1:0)}.bind(this))};g.kca=m.extend(g,function(k,e,b,c){g.call(this,k, e,b,c,1)});g.sca=m.extend(g,function(k,e,b,c){g.call(this,k,e,b,c,2)});return g}); define("tdv/player/view/panorama/control/transition/steps/EnforceAdded",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(h,function(n,g,k,e){h.call(this,n,g,k,e)});a.prototype.Ch=function(){this.H.Sc&&!this.j.Jf(this.H.Sc)&&(this.si=this.j.create(this.H.Sc),this.si.set("alpha",0),this.j.add(this.si),this.j.C$(!1))};return a}); define("tdv/player/view/panorama/control/transition/steps/EnforceModelLoaded",["require","tdv/utils","tdv/constants/EventName","tdv/player/script/MediaPlayer","tdv/player/view/panorama/control/transition/steps/Step"],function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/script/MediaPlayer"),g=a("tdv/player/view/panorama/control/transition/steps/Step");a=m.extend(g,function(k,e,b,c){g.call(this,k,e,b,c)});a.prototype.Yg=function(){this.yz||this.Fa||(this.Fa=(this.H.nc||this.H.Fc).get("model"), this.mv=this.H.Zh,this.Fa.get("camera").set("inTransition",!0),this.mv.j.Ra(!0),this.yz=!1,this.Fa?this.mv.get("model")==this.Fa&&this.Fa.get("isLoaded")?(this.dz(),this.hn(),this.yz=!0):(this.mv.set("model",this.Fa),this.Fa.bind(h.ia,this.dz,this,!0),this.mv.set("requesterPlayer",this.j.ld),this.mv.bind(n.di,this.hn,this,!0)):this.yz=!0)};a.prototype.mh=function(){this.mv.j.oRa(this.Fa,!1);return this.yz};a.prototype.hE=function(){return!0};a.prototype.dz=function(){this.Fa.h(h.ia,this.dz,this)}; a.prototype.hn=function(){this.mv.h(n.di,this.hn,this,!0);this.yz=!0};return a}); define("tdv/player/view/panorama/control/transition/steps/RequestMediaActivation",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep","tdv/view/util/AudioActivation"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep"),n=a("tdv/view/util/AudioActivation");a=m.extend(h,function(g,k,e,b){h.call(this,g,k,e,b)});a.prototype.Ch=function(){if(this.H.zmb){var g=this.H.Sc.get("frames")[0];g=g.get("sphere")|| g.get("stereoSphere");var k=g.get("levels")||[];(g.get("hasAudio")===!0||k.length>0&&k[0].get("hasAudio")===!0)&&n.request(this.j.Vb())}};return a}); define("tdv/player/view/panorama/control/transition/steps/Display",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(h,function(n,g,k,e){h.call(this,n,g,k,e)});a.prototype.Ch=function(){this.j.Jf(this.H.Sc).set("alpha",1)};return a}); define("tdv/player/view/panorama/control/transition/steps/FadeIn",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/Step","tdv/view/util/Ease","tdv/view/util/EaseDimension"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/Step"),n=a("tdv/view/util/Ease"),g=a("tdv/view/util/EaseDimension");a=m.extend(h,function(k,e,b,c){h.call(this,k,e,b,c);this.ej=this.j.P.Rc();this.la=null;this.Rb=!1});a.prototype.mh=function(){return this.Rb};a.prototype.Yg= function(k){if(!this.Rb){if(!this.la){var e=this.j.P.oob()&&!this.H.qh?this.H.Deb:this.H.ana;this.H.Va()&&(e=Math.max(e,100));this.la=new n("linear",[new g("alpha",this.H.Va()?-500/e:0,1,void 0)],e+(this.H.Va()?500:0));this.ej.kmb();this.ej.wK();this.H.Va()&&this.j.Jf(this.H.Sc).set("alpha",1)}this.la.Nb(k);k=Math.max(.001,this.la.ob("alpha"));this.H.Va()||this.j.Jf(this.H.Sc).set("alpha",k);this.ej.kK(k);this.la&&this.la.Ve()&&(this.Rb=!0,this.ej.lJ())}};return a}); define("tdv/player/view/panorama/renderer/object/Base",["require","tdv/utils","tdv/events/EventDispatcher","tdv/player/view/panorama/renderer/3d/util/Util"],function(a){var m=a("tdv/utils"),h=a("tdv/events/EventDispatcher"),n=a("tdv/player/view/panorama/renderer/3d/util/Util");a=m.extend(h,function(){h.call(this);this.Ia=this.La=null;this.qe=[];this.I1=this.ih=!1;this.yT=null;this.Rl=[this];this.tma={};this.Tu={};this.sS=!1;this.Aja={};this.Bja={};this.Yr(["blendingActive","globalBlendingActive"]); this.ZWa();this.set("alpha",1);this.set("translationX",0);this.set("translationY",0);this.set("translationZ",0);this.set("deltaYaw",0);this.set("deltaPitch",0);this.set("deltaRoll",0);this.set("flipHorizontally",!1);this.set("index",0)});a.prototype.ZWa=function(){var g="alpha deltaYaw deltaPitch deltaRoll translationX translationY translationZ".split(" ");Array.isArray(g)||(g=[g]);g.forEach(function(k){this.Aja[k]=!0}.bind(this))};a.prototype.Yr=function(g){Array.isArray(g)||(g=[g]);g.forEach(function(k){this.Bja[k]= !0}.bind(this))};a.prototype.set=function(g,k){this.tma[g]!==k&&(this.Bja[g]&&this.qe.forEach(function(e){e.set(g,k)}),this.GXa(g,k),this.ZU(g))};a.prototype.get=function(g){return this.tma[g]};a.prototype.ZU=function(g){this.Tu[g]||(this.Tu[g]=!0,this.sS||(this.sS=!0,this.Na()),this.Aja[g]&&this.qe.forEach(function(k){k.ZU(g)}))};a.prototype.mZa=function(){this.sS&&(this.sS=!1,this.Tu={})};a.prototype.W=function(){if(this.sS)for(var g=0;g=g.HAVE_CURRENT_DATA&&g.videoWidth>0&&g.videoHeight>0|| (g=this.rJ()):g=this.rJ();return g},Ldb:function(g,k,e,b,c){var d=document.createElement("canvas");d.width=h.Jx();d.height=h.Jx();d.$ka=!0;var f=d.getContext("2d");if(!f)return null;f.drawImage(g,k,e,b,c,0,0,h.Jx(),h.Jx());this.u7(d);return d},Ena:function(g){h.hhb(g)&&g.$ka&&(delete g.$ka,g.width=0,g.height=0)},dispose:function(g){g.ps&&g.ps!=g.image&&this.Ena(g.ps);g.image&&this.Ena(g.image);g.dispose()},DRa:function(g,k){g.userData.GSa.material=k},RLa:function(g){return g.userData.GSa.material}, Hpb:function(g){return h.epa(g)},decode:function(g){h.fpa(g)&&(g=m.xg(g,!1));h.epa(g)&&this.u7(g)},u7:function(g){var k=document.createElement("canvas");k.width=1;k.height=1;var e=k.getContext("2d");n.u7=function(b){e.drawImage(b,0,0,1,1,0,0,1,1)};return n.u7(g)},wea:null,rJ:function(){if(!this.wea){var g=document.createElement("canvas");g.width=128;g.height=128;g.I3a=!0;g.getContext("2d").clearRect(0,0,g.width,g.height);this.wea=g}return this.wea},uab:function(g,k){g.ps||(g.ps=document.createElement("canvas"), g.s3a=g.ps.getContext("2d"),g.ps.$ka=!0);var e=k.videoWidth;h.gr()&&(e=Math.min(4096,e));var b=e*k.videoHeight/k.videoWidth;if(g.ps.width!=e||g.ps.height!=b)g.ps.width=e,g.ps.height=b;k.readyState>=k.HAVE_CURRENT_DATA&&g.s3a.drawImage(k,0,0,e,b);return g.ps}};return n}); define("tdv/player/view/panorama/renderer/3d/util/MaterialUtil",["require","tdv/player/view/panorama/renderer/3d/util/Util","tdv/player/view/panorama/renderer/3d/util/TextureUtil","tdv/player/view/util/Device"],function(a){function m(e){this.BZ=(e=h.qP(e))&&h.wMa();this.LX=e&&h.vMa();this.QD=0;this.cw=void 0;this.IW=this.JW=0;this.premultipliedAlpha=!1;this.side=void 0;this.params={}}var h=a("tdv/player/view/panorama/renderer/3d/util/Util"),n=a("tdv/player/view/panorama/renderer/3d/util/TextureUtil"); a=a("tdv/player/view/util/Device");var g=a.Yb()==a.ox||a.Yb()==a.Nk||a.Yb()==a.sj,k={zoa:function(e){return e.map||e.uniforms&&e.uniforms.textureSampler2D&&e.uniforms.textureSampler2D.value},qt:function(e,b){e||(e=n.createTexture());b||(b=new k.Rp);e=b.BZ||b.LX||b.QD||b.cw||b.premultipliedAlpha||e.isVideoTexture&&g?this.Fdb(e,b):this.sna(e);b.side&&(e.side=b.side);for(var c in b.params)e[c]=b.params[c];return e},hcb:function(e,b){e.isShaderMaterial?e.uniforms.textureSampler2D.value=b:e.map=b;e.needsUpdate= !0},sna:function(e){var b=new THREE.MeshBasicMaterial;b.map=e;this.nG(b);return b},Fdb:function(e,b){var c={uniforms:{},transparent:!0};c.uniforms.textureSampler2D={type:"sampler2D",value:e};e.flipY=!b.BZ;c.vertexShader=["varying vec2 vUV;\nvoid main() {","\tvUV = vec2( uv.x, "+(b.BZ?"1.0 - uv.y":"uv.y")+");","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}"].join("\n");if(b.LX||b.QD||b.cw||b.premultipliedAlpha){var d=[],f=[];d=d.concat(["uniform sampler2D textureSampler2D;", "uniform float opacity;","varying vec2 vUV;"]);c.uniforms.opacity={type:"float",value:1};f=f.concat([" vec4 color = texture2D(textureSampler2D, vUV);"," float alpha = color.a * opacity;"]);b.premultipliedAlpha&&(f=f.concat([" if ((color.a > 0.0) && (color.a < 1.0))"," color.rgb /= color.a;","\tcolor = vec4( mix( pow( color.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), color.rgb * 0.0773993808, vec3( lessThanEqual( color.rgb, vec3( 0.04045 ) ) ) ), color.a );"]));if(b.QD){var l= e.image.width||e.image.videoWidth,p=e.image.height||e.image.videoHeight,q=Math.min(l,p)*.5*b.QD;c.uniforms.blendingLimit={type:"v2",value:new THREE.Vector2(q/l,q/p)};d=d.concat(["uniform vec2 blendingLimit;"]);f=f.concat(" float xCoef = 0.0;, float yCoef = 0.0;, if (vUV.x < blendingLimit.x) {, xCoef = 1.0 - (vUV.x / blendingLimit.x);, xCoef = xCoef * xCoef;, } else if ((1.0 - vUV.x) < blendingLimit.x) {, xCoef = 1.0 - ((1.0 - vUV.x) / blendingLimit.x);, xCoef = xCoef * xCoef;, }, if (vUV.y < blendingLimit.y) {, yCoef = 1.0 - (vUV.y / blendingLimit.y);, yCoef = yCoef * yCoef;, } else if ((1.0 - vUV.y) < blendingLimit.y) {, yCoef = 1.0 - ((1.0 - vUV.y) / blendingLimit.y);, yCoef = yCoef * yCoef;, }, alpha = alpha * (1.0 - sqrt(xCoef + yCoef));".split(","))}b.cw&& (c.uniforms.chromaColor={type:"v3",value:new THREE.Vector3(parseInt(b.cw.substr(1,2),16)/255,parseInt(b.cw.substr(3,2),16)/255,parseInt(b.cw.substr(5,2),16)/255)},c.uniforms.chromaThreshold={type:"f",value:b.JW},c.uniforms.chromaSmoothing={type:"f",value:b.IW},d=d.concat(["uniform vec3 chromaColor;","uniform float chromaThreshold;","uniform float chromaSmoothing;"]),f=f.concat(" float maskY = 0.2989 * chromaColor.r + 0.5866 * chromaColor.g + 0.1145 * chromaColor.b;{ float maskCr = 0.7132 * (chromaColor.r - maskY);{ float maskCb = 0.5647 * (chromaColor.b - maskY);{ float Y = 0.2989 * color.r + 0.5866 * color.g + 0.1145 * color.b;{ float Cr = 0.7132 * (color.r - Y);{ float Cb = 0.5647 * (color.b - Y);{ float chromaBlendValue = smoothstep(chromaThreshold, chromaThreshold + chromaSmoothing, distance(vec2(Cr, Cb), vec2(maskCr, maskCb)));{ alpha = alpha * chromaBlendValue;".split("{"))); f=f.concat([" gl_FragColor = vec4(color"+(b.LX?".bgr":".rgb")+", alpha);"]);e.format=THREE.RGBAFormat;c.fragmentShader=[].concat(d,["void main() {"],f,e.isVideoTexture?[]:["#include ","#include "],["}"]).join("\n")}else c.fragmentShader=[].concat(["uniform sampler2D textureSampler2D;","varying vec2 vUV;","void main() {","\tgl_FragColor = texture2D(textureSampler2D, vUV);"],e.isVideoTexture?[]:["#include ","#include "], ["}"]).join("\n");e=new THREE.ShaderMaterial(c);this.nG(e);return e},dispose:function(e){Array.isArray(e)||(e=[e]);e.forEach(function(b){var c=k.zoa(b);c&&n.dispose(c);b.dispose()})},nG:function(e){e.side=THREE.FrontSide;e.transparent=!0;e.depthTest=!1;e.needsUpdate=!0;e.userData={};e.userData.ANa={};n.DRa(k.zoa(e),e)},pra:function(e,b){e.userData.ANa.Ke=b},sLa:function(e){return e.userData.ANa.Ke}};m.prototype.isEqual=function(e){return this.BZ===e.BZ&&this.LX===e.LX&&this.QD===e.QD&&this.cw===e.cw&& this.JW===e.JW&&this.IW===e.IW&&this.premultipliedAlpha===e.premultipliedAlpha&&this.side===e.side};k.Rp=m;return k}); define("tdv/player/view/panorama/renderer/3d/util/MeshUtil",["require","tdv/player/view/panorama/renderer/3d/util/GeometryUtil","tdv/player/view/panorama/renderer/3d/util/MaterialUtil"],function(a){function m(k){return Array.isArray(k)?k:k?[k]:[]}var h=a("tdv/player/view/panorama/renderer/3d/util/GeometryUtil"),n=a("tdv/player/view/panorama/renderer/3d/util/MaterialUtil"),g={create:function(k,e){var b=new THREE.Mesh(k,e);b.overdraw=!1;b.matrixAutoUpdate=!1;b.userData.IA={};b.userData.IA.attributes= {};m(e).forEach(function(c){n.pra(c,b)});return b},IJa:function(k){var e=new THREE.Group;g.forEach(k,function(b){e.add(b)});return e},Ykb:function(k,e){m(e).forEach(function(b){n.pra(b,null)});n.dispose(k.material);k.material=e;m(e).forEach(function(b){n.pra(b,k)})},bE:function(k){return m(k.material)},Bfb:function(k,e){if(k.layers.mask&e.layers.mask){var b=g.bE(k);return h.zfb(k.geometry,e,k.matrixWorld).map(function(c){return b[c]})}return[]},hra:function(k,e){k.geometry=e},tfb:function(k,e){var b= [];g.pl(k,function(c){var d=g.bE(c);e.forEach(function(f){var l=h.sfb(c.geometry,c.matrixWorld,f);if(l){f=n.zoa(d[l.materialIndex]).image;var p=Math.round(l.$Sa*f.width-.5);p=p<0?0:p>f.width-1?f.width-1:p;l=Math.round((1-l.ATa)*f.height-.5);l=l<0?0:l>f.height-1?f.height-1:l;b.push({x:p,y:l,source:f})}})});return b},Yw:function(k,e){g.forEach(k,function(b){e?e.add(b):b.parent&&b.parent.remove(b)})},nF:"panoramaId",KK:"panoramaFrameId",Eaa:"panoramaOverlayId",Daa:"levelIndex",setAttribute:function(k, e,b){g.pl(k,function(c){c.userData.IA.attributes[e]=b})},getAttribute:function(k,e){return k.userData.IA.attributes[e]},wKa:function(k,e,b){for(var c=[],d=0,f=k.length;d 0&&h.userData.cameras[0]||null}}}); define("tdv/player/view/panorama/renderer/OcclusionCuller","require tdv/utils tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/player/view/panorama/renderer/3d/util/SceneUtil".split(" "),function(a){function m(l,p){return l.reduce(function(q,r){return q?!0:!!(p.layers.mask&r.layers.mask)},!1)}function h(l){l=k(l).loaded;return l===void 0?!1:l}function n(l){l=k(l).active;return l===void 0?!0:l}function g(l){l=k(l).blending;return l===void 0? !1:l}function k(l){return l.userData.cib||(l.userData.cib={})}var e=a("tdv/utils"),b=a("tdv/constants/EventName"),c=a("tdv/events/EventDispatcher"),d=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),f=a("tdv/player/view/panorama/renderer/3d/util/SceneUtil");a=e.extend(c,function(){c.call(this);this.I=void 0;this.Hha=!1});a.prototype.update=function(l){var p=l.Va&&this.I&&!this.I.Va;this.I=l.clone();this.Hha||(p?this.W2a():this.Aab())};a.prototype.Aab=function(){var l=!1,p=f.hoa(this.I.sh), q=f.rm(this.I.sh);d.n7(q,d.KK,void 0).forEach(function(w){var y=m(p,w)&&d.foa(w)>0&&n(w);w.visible!=y&&(w.visible=y,l=!0)});q=d.wKa(q,d.KK,void 0);q=d.dMa(q,d.nF);for(var r in q){var t=q[r],u=p.map(function(){return!1});t.sort(function(w,y){return d.YLa(y)-d.YLa(w)});var v=t.some(g);t.forEach(function(w){var y=m(p,w)&&d.foa(w)>0&&n(w)&&(!v||h(w));if(y){y=!0;for(var x=v||h(w)&&d.foa(w)>.999,z=0;z=1)return 2;if(q.xc()==q.qx||q.xc()==q.ru||q.QX())return 1.5}else return 1.5;return 1}();r.prototype.aab=function(){var w= this.I.Ik>0?1E3:this.I.Rj/Math.tan(Math.min(this.I.kj*.5,89.99)*t);w*=u;var y=p.hoa(this.I.sh),x=p.rm(this.I.sh).filter(m),z=x.filter(g);var A=l.wKa(z,l.KK,void 0);A=l.dMa(A,l.KK);A.none=l.n7(z,l.KK,void 0);z=[];for(var D in A)for(var F=A[D],C=0,B=F.length;CR?(O=H,R=L):L>=w&&L.75*w?z.push(O):z.push(Q):(Q&&z.indexOf(Q)<0&&z.push(Q),O&&z.indexOf(O)<0&&z.push(O))}}w=[];for(y=0;y=0);return w};r.prototype.HD= function(){this.Uv=null;for(var w=[],y=[],x=[],z=(new Date).getTime()-v,A=p.hoa(this.I.sh),D=p.rm(this.I.sh),F=0,C=D.length;F=0){if(this.I.Ik>0||(h(B).zpa||r.Pba)==r.Mr)G=E;else for(var N=0,O=A.length;NQ)for(this.RC.sort(function(U,T){return h(U).iNa-h(T).iNa}),F=this.RC.splice(0, this.RC.length-Q),Q=0,K=F.length;Q0&&y.push(B);x=Number.POSITIVE_INFINITY;F=0;for(C=y.length;F=0&&x.splice(z,1);this.RC.push(y);this.ska(y,!0);w=w.Ke();h(w).Qt.indexOf(y)>=0&&this.hda(w,h(w).aB);this.XGa()};r.prototype.hda=function(w,y){var x=h(w).aB;x=x?x.length:void 0;var z=h(w).Qt;z=z?z.length:void 0;h(w).aB=y;h(w).Qt=y.filter(k);d.bZ(w,h(w).Qt.length==0&&(h(w).zpa||r.Pba)==r.Mr);y=(y=h(w).aB)?y.length:void 0;var A=h(w).Qt;A=A?A.length:void 0;z===A&&x===y||w.dispatchEvent({type:b.yc,percent:y?100-100*A/y:100});z!==A&&A===0&&w.dispatchEvent({type:b.ia})};r.prototype.ska= function(w,y){if(y!=w.visible){var x=f.sLa(w),z=l.getAttribute(x,l.nF),A=l.getAttribute(x,l.Daa);if(z===void 0||A===void 0)w.visible=y;else{var D=p.rm(this.I.sh).filter(m);z=l.n7(D,l.nF,z);A=l.n7(z,l.Daa,A);var F=l.bE(x).indexOf(w);w=A.map(function(C){return l.bE(C)[F]});for(x=0;x=0};a.prototype.remove=function(h){var n=this.rs.indexOf(h);n<0||(this.rs.splice(n,1),typeof h==="object"&&h!==null?(n=h[this.dT],delete h[this.dT]):n=h,delete this.b2[n],this.length=this.rs.length)};a.prototype.forEach=function(h){this.rs.slice().forEach(function(n){h(n,this.get(n))}.bind(this))};a.prototype.dispose=function(){for(;this.rs.length;)this.remove(this.rs.pop());this.rs=this.b2=null};return a}); define("tdv/player/view/panorama/renderer/object/util/EventAggregator",["require","tdv/utils","tdv/events/EventDispatcher","tdv/util/Map"],function(a){function m(){this.mJ=[]}var h=a("tdv/utils"),n=a("tdv/events/EventDispatcher"),g=a("tdv/util/Map");a=h.extend(n,function(k){n.call(this);this.$f=k;this.zd=[];this.Ny=new g;this.nW=[];this.Vea=[];this.UM=this.UM.bind(this)});a.prototype.hg=function(k){this.zd.forEach(function(e){if(e.removeEventListener)e.removeEventListener(this.$f,this.UM);else if(e.h)e.h(this.$f, this.UM,this,!0);else throw"invalid instance type";}.bind(this));this.zd=k.slice();this.zd.forEach(function(e){if(e.addEventListener)e.addEventListener(this.$f,this.UM);else if(e.bind)e.bind(this.$f,this.UM,this,!0);else throw"invalid instance type";this.Ny.ygb(e)||this.Ny.set(e,new m)}.bind(this));this.Hla()};a.prototype.dispose=function(){this.hg([]);this.zd=null;this.Ny.dispose();this.Vea=this.nW=this.Ny=null};a.prototype.jo=function(k){this.nW.push(k);this.Hla();return this};a.prototype.kr=function(k){this.Vea.push(k); return this};a.prototype.kw=function(k){this.zd.forEach(function(e){k(e,this.Ny.get(e).mJ)}.bind(this))};a.prototype.Mn=function(k){k=this.Ny.get(k).mJ;return k.length==0?null:k[k.length-1]};a.prototype.UM=function(k){var e=k.target||k.source;if(e=this.Ny&&this.Ny.get(e))e.mJ.push(k),this.Vea.forEach(function(b){b(k,this)}.bind(this)),this.Hla()};a.prototype.Hla=function(){if(this.zd.length!=0){for(var k=0;k=0&&q.splice(y,1);c.HZ(this.texture,null)};return v}); define("tdv/player/view/panorama/renderer/object/texturesource/TextureSource","require tdv/utils tdv/constants/EventName tdv/constants/Priority tdv/events/EventDispatcher tdv/player/view/panorama/renderer/3d/util/MaterialUtil tdv/player/view/panorama/renderer/3d/util/TextureUtil tdv/player/view/util/Device".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/constants/Priority"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/panorama/renderer/3d/util/MaterialUtil"), e=a("tdv/player/view/panorama/renderer/3d/util/TextureUtil"),b=a("tdv/player/view/util/Device"),c=m.extend(g,function(){g.call(this);this.Qf=void 0;this.Ma=e.createTexture();this.Ma.colorSpace=THREE.SRGBColorSpace;this.$ga=this.Dga=this.gga=!1;this.I=c.UQ;this.aT=n.Up;this.j=null});c.prototype.type=function(){return this.Qf};c.prototype.texture=function(){return this.Ma};c.prototype.material=function(){return this.Ma&&e.RLa(this.Ma)};c.prototype.Ke=function(){var d=this.Ma&&e.RLa(this.Ma);return d&& k.sLa(d)};c.prototype.Vkb=function(d){this.aT=d};c.prototype.Ekb=function(d){this.gga!==d&&(this.gga=d,this.JGa())};c.prototype.ZY=function(d){this.$ga!==d&&(this.$ga=d,this.RGa())};c.prototype.mra=function(d){this.Dga!==d&&(this.Dga=d,this.RGa())};c.prototype.RGa=function(){var d=this.$ga&&!this.Dga;!!this.Ma.isVideoTexture!==d&&(this.Ma.isVideoTexture=d,this.bQa(),this.JGa())};c.prototype.JGa=function(){this.gga?this.Ma.colorSpace=THREE.LinearSRGBColorSpace:!this.Ma.isVideoTexture||b.Yb()!=b.ox&& b.Yb()!=b.Nk&&b.Yb()!=b.sj?this.Ma.colorSpace=THREE.SRGBColorSpace:this.Ma.colorSpace=THREE.LinearSRGBColorSpace};c.prototype.load=function(d){this.I===c.UQ&&(this.j=d,this.I=c.z_,this.pda())};c.prototype.Fcb=function(){this.loading()&&(this.I==c.z_?this.x5():this.AV(),this.I=c.UQ)};c.prototype.aTa=function(){this.I!=c.UQ&&(this.I==c.z_?this.x5():this.I==c.gca?this.AV():this.WV(),this.I=c.UQ)};c.prototype.bQa=function(){if(this.Ma){var d=this.material(),f=e.createTexture();f.flipY=this.Ma.flipY;f.format= this.Ma.format;f.colorSpace=this.Ma.colorSpace;this.Ma.isVideoTexture&&(f.isVideoTexture=!0,f.update=function(){});e.dispose(this.Ma);d&&e.DRa(f,d);d&&k.hcb(d,f);this.Ma=f;this.Fia()}};c.prototype.Fia=function(){};c.prototype.pda=function(){};c.prototype.x5=function(){};c.prototype.oda=function(){};c.prototype.AV=function(){};c.prototype.WV=function(){e.Scb(this.texture)};c.prototype.loading=function(){return this.I==c.z_||this.I==c.gca};c.prototype.tpa=function(){return this.I==c.fca||this.I==c.zua}; c.prototype.dispose=function(){e.dispose(this.Ma);this.Ma=null};c.prototype.WM=function(d){this.I=d?c.gca:c.zua;d?this.oda():this.o(h.$c)};c.prototype.XAa=function(){this.I=c.fca;this.o(h.ia)};c.UQ="initial";c.z_="loading";c.gca="adding";c.zua="error loading";c.fca="added";c.iWa="custom";c.jWa="image tile";c.$ob="image animation";c.apb="video 360";return c}); define("tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource","require tdv/utils tdv/constants/EventName tdv/player/view/image/Item tdv/player/view/image/Repository tdv/player/view/panorama/renderer/object/texturesource/TextureQueue tdv/player/view/panorama/renderer/object/texturesource/TextureSource".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/view/image/Item"),g=a("tdv/player/view/image/Repository"),k=a("tdv/player/view/panorama/renderer/object/texturesource/TextureQueue"), e=a("tdv/player/view/panorama/renderer/object/texturesource/TextureSource");a=m.extend(e,function(b){e.call(this);this.Qf=e.iWa;this.Se=b;this.Se||(this.I=e.fca);this.fj=this.de=null;this.xI=this.yI=void 0});a.prototype.ao=function(b){this.fj=b;k.add(this.j,this.Ma,this.fj,function(){var c=this.Ma&&this.Ma.image&&this.Ma.image.width||void 0,d=this.Ma&&this.Ma.image&&this.Ma.image.height||void 0;this.yI===void 0||this.xI===void 0||this.yI===c&&this.xI===d||this.bQa();this.yI=c;this.xI=d}.bind(this))}; a.prototype.xg=function(){return g.xg(this.Se)};a.prototype.update=function(b){b?k.add(this.j,this.Ma,this.fj):k.Pma(this.j,this.Ma,this.fj)};a.prototype.pda=function(){this.Se?this.IR():this.WM(!0)};a.prototype.x5=function(){this.hs()};a.prototype.oda=function(){this.XAa()};a.prototype.WV=function(){this.hs()};a.prototype.dispose=function(){this.hs();e.prototype.dispose.call(this)};a.prototype.Pe=function(){this.WM(!0)};a.prototype.yh=function(){this.WM(!1)};a.prototype.Fia=function(){this.fj&&k.Pma(this.j, this.Ma,this.fj)};a.prototype.IR=function(){this.de||(this.de=new n,this.de.eQ([this.Se]),this.de.bind(h.ia,this.Pe,this,!0),this.de.bind(h.$c,this.yh,this,!0),g.FA(this.de,this.aT))};a.prototype.hs=function(){this.de&&(this.de.h(h.ia,this.Pe,this,!0),this.de.h(h.$c,this.yh,this,!0),g.fo(this.de,this.aT),this.de=null)};return a}); define("tdv/player/view/panorama/renderer/object/texturesource/ImageTextureSource","require tdv/utils tdv/constants/EventName tdv/player/view/image/Item tdv/player/view/image/Repository tdv/player/view/panorama/renderer/object/texturesource/TextureQueue tdv/player/view/panorama/renderer/object/texturesource/TextureSource".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/view/image/Item"),g=a("tdv/player/view/image/Repository"),k=a("tdv/player/view/panorama/renderer/object/texturesource/TextureQueue"), e=a("tdv/player/view/panorama/renderer/object/texturesource/TextureSource");a=m.extend(e,function(b){e.call(this);this.Qf=e.jWa;this.Se=b;this.fj=this.tN=this.de=null});a.prototype.xg=function(){return this.fj};a.prototype.pda=function(){this.IR()};a.prototype.x5=function(){this.hs()};a.prototype.oda=function(){this.x_a()};a.prototype.AV=function(){this.hs();this.Fea()};a.prototype.WV=function(){this.hs();this.Fea()};a.prototype.dispose=function(){this.hs();this.Fea();e.prototype.dispose.call(this)}; a.prototype.Pe=function(){this.fj=g.xg(this.Se);this.WM(!0)};a.prototype.yh=function(){this.WM(!1)};a.prototype.YAa=function(){this.XAa()};a.prototype.Fia=function(){this.fj&&k.Pma(this.j,this.Ma,this.fj)};a.prototype.IR=function(){this.de||(this.de=new n,this.de.eQ([this.Se]),this.de.bind(h.ia,this.Pe,this,!0),this.de.bind(h.$c,this.yh,this,!0),g.FA(this.de,this.aT))};a.prototype.hs=function(){this.de&&(this.de.h(h.ia,this.Pe,this,!0),this.de.h(h.$c,this.yh,this,!0),g.fo(this.de,this.aT),this.de= null)};a.prototype.x_a=function(){this.tN=k.add(this.j,this.Ma,this.fj);this.tN.bind(h.ia,this.YAa,this,!0)};a.prototype.Fea=function(){this.tN&&(this.tN.h(h.ia,this.YAa,this,!0),this.tN.remove(),this.tN=null)};return a}); define("tdv/player/view/panorama/renderer/object/texturesource/ImageTileTextureSource",["require","tdv/utils","tdv/player/view/image/Repository","tdv/player/view/panorama/renderer/3d/util/TextureUtil","tdv/player/view/panorama/renderer/object/texturesource/ImageTextureSource"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/image/Repository"),n=a("tdv/player/view/panorama/renderer/3d/util/TextureUtil"),g=a("tdv/player/view/panorama/renderer/object/texturesource/ImageTextureSource");a=m.extend(g, function(k,e,b,c,d){g.call(this,k.get("url"));this.ec=e;this.fc=b;this.Pa=c;this.Ha=d;this.U3a=this.ec!=0||this.fc!=0||this.Pa!=k.get("width")||this.Ha!=k.get("height")});a.prototype.Pe=function(){this.U3a?(this.D_a(),this.hs(),this.WM(!!this.fj)):g.prototype.Pe.call(this)};a.prototype.AV=function(){g.prototype.AV.call(this);this.Gea()};a.prototype.WV=function(){g.prototype.WV.call(this);this.Gea()};g.prototype.dispose=function(){g.prototype.dispose.call(this);this.Gea()};a.prototype.D_a=function(){var k= h.xg(this.Se);this.fj=n.Ldb(k,this.ec,this.fc,this.Pa,this.Ha)};a.prototype.Gea=function(){this.fj&&(n.Ena(this.fj),this.fj=null)};return a}); define("tdv/player/view/panorama/renderer/object/util/MeshFactory","require tdv/player/parser/ClassInfo tdv/player/view/panorama/renderer/constants/EyeLayer tdv/player/view/panorama/renderer/constants/Face tdv/player/view/panorama/renderer/3d/util/Util tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource tdv/player/view/panorama/renderer/object/texturesource/ImageTextureSource tdv/player/view/panorama/renderer/object/texturesource/ImageTileTextureSource tdv/player/view/panorama/renderer/3d/util/GeometryUtil tdv/player/view/panorama/renderer/3d/util/MaterialUtil tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/player/view/panorama/renderer/object/util/PanoramaFormat tdv/player/view/panorama/renderer/object/util/LevelUtil tdv/player/view/panorama/renderer/TextureLoader tdv/player/view/util/Device".split(" "),function(a){var m= a("tdv/player/parser/ClassInfo"),h=a("tdv/player/view/panorama/renderer/constants/EyeLayer"),n=a("tdv/player/view/panorama/renderer/constants/Face"),g=a("tdv/player/view/panorama/renderer/3d/util/Util"),k=a("tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource"),e=a("tdv/player/view/panorama/renderer/object/texturesource/ImageTextureSource"),b=a("tdv/player/view/panorama/renderer/object/texturesource/ImageTileTextureSource"),c=a("tdv/player/view/panorama/renderer/3d/util/GeometryUtil"), d=a("tdv/player/view/panorama/renderer/3d/util/MaterialUtil"),f=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),l=a("tdv/player/view/panorama/renderer/object/util/PanoramaFormat"),p=a("tdv/player/view/panorama/renderer/object/util/LevelUtil"),q=a("tdv/player/view/panorama/renderer/TextureLoader"),r=a("tdv/player/view/util/Device"),t={wdb:function(u,v){var w=l.get(u);switch(w){case l.VB:case l.Bx:case l.Hm:return this.h_a(w,u,v);case l.Nr:case l.Wr:case l.Gu:return this.j_a(w,u,v)}},Odb:function(u, v){var w=new e(v.get("posterURL"));w.ZY(!0);return this.mxa(u,v,w)},Ndb:function(u,v){var w=new k;w.ZY(!0);return this.mxa(u,v,w)},mxa:function(u,v,w){var y=u.get("hfov"),x=u.get("vfov"),z=u.get("pitch"),A=v.get("width");v=v.get("url");u=l.get(u);var D=u==l.Gu?2:1,F=u==l.Wr?2:1;u=D+F>2?[h.fb,h.Db]:[h.nx];var C=Math.round(A/D);A=new d.Rp(v);var B=d.qt(w.texture(),A);q.dQ(B,w);B.visible=!0;return u.map(function(H,E){E=c.NJa(y,x,z,1,1,E%D/D,(F-1-Math.floor(E/D))/F,1/D,1/F);E=f.create(E,[B]);E.layers.set(H); q.x$(E,C/y);return E}.bind(this))},Gdb:function(u){var v=[n.Db,n.fb,n.Tc,n.Gc,n.FRONT,n.BACK].map(function(){var y=new k;y.ao(t.A2a(u));var x=d.qt(y.texture());q.dQ(x,y);x.visible=!0;return x}),w=c.MJa(1,1);v=f.create(w,v);q.x$(v,256/90);v.layers.set(h.nx);return v},Hka:{},A2a:function(u){if(!t.Hka[u]){var v=document.createElement("canvas");v.width=v.height=256;var w=v.getContext("2d");w.fillStyle=u;w.fillRect(0,0,v.width,v.height);t.Hka[u]=v}return t.Hka[u]},h_a:function(u,v,w){var y=u==l.VB?[h.Db, h.fb]:[h.nx],x=v.get("flipImageHorizontally");x&&(y=y.reverse());var z=u==l.Hm?1:6*y.length,A=w.get("width")/z,D=w.get("height");if(m.Oa("TiledImageResourceLevel",w)){var F=w.get("colCount",z)/z;var C=w.get("rowCount",1)}else this.eEa(u,w)?(F=Math.ceil(A/g.Jx()),C=Math.ceil(D/g.Jx())):C=F=1;var B=[n.Db,n.fb,n.Tc,n.Gc,n.FRONT,n.BACK];return y.map(function(H,E){var G=Array(6);B.forEach(function(R,Q){var K=p.moa(v,w,R);m.Oa("TiledImageResourceLevel",w)?G[c.Cua.indexOf(R)]=this.d_a(K,u,H,R,x,F,C):G[c.Cua.indexOf(R)]= this.gxa(K,F,C,u==l.Hm?0:Math.round((E*B.length+Q)*A),0,A,D,F>1||C>1||u!=l.Hm?A>256?1:.5:0)}.bind(this));var N=Array.prototype.concat.apply([],G),O=c.MJa(F,C);N=f.create(O,N);N.layers.set(H);q.x$(N,A/90);return N}.bind(this))},j_a:function(u,v,w){var y=u==l.Nr?[h.nx]:[h.fb,h.Db];v.get("flipImageHorizontally")&&(y=y.reverse());var x=w.get("width"),z=w.get("height"),A=v.get("hfov"),D=v.get("vfov"),F=v.get("pitch"),C=Math.round(x/A/(z/D)),B=Math.round(x/C),H=Math.round(z/Math.round(z/D/(x/A))),E=(u= this.eEa(u,w))?Math.ceil(B/g.Jx()):1,G=u?Math.ceil(H/g.Jx()):1;return y.map(function(N,O){O=this.gxa(w,E,G,O%C*B,Math.floor(O/C)*H,B,H);var R=c.NJa(A,D,F,E,G,0,0,1,1);O=f.create(R,O);O.layers.set(N);q.x$(O,B/A);return O}.bind(this))},eEa:function(u,v){switch(u){case l.VB:case l.Bx:case l.Wr:case l.Gu:return!0;case l.Hm:return!1;case l.Nr:return r.hgb().maxTextureSize.01?this.H.Baa:1;this.la=new n("cubic_in_out",[new g("hfov",e,b,void 0)],c)}this.la.Nb(k);this.Uc.qr(this.la.ob("hfov"));this.la.Ve()&&(this.Uc.aZ(!0),this.Rb=!0)}};return a}); define("tdv/player/view/panorama/control/transition/steps/MoveToInitialPosition",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/Step","tdv/view/util/Ease","tdv/view/util/EaseDimension"],function(a){function m(e,b,c){for(;ec;)e-=c-b;return e}var h=a("tdv/utils"),n=a("tdv/player/view/panorama/control/transition/steps/Step"),g=a("tdv/view/util/Ease"),k=a("tdv/view/util/EaseDimension");a=h.extend(n,function(e,b,c,d){n.call(this,e,b,c,d);this.la=null;this.Rb= !1;this.U2=0});a.prototype.mh=function(){return this.Rb};a.prototype.Yg=function(e){this.Rb||(this.la||(this.la=this.U2this.H.br.length&&(this.Uc.aZ(!0),this.Rb=!0)))};a.prototype.ZZa=function(){var e=m(this.j.Jc(),-180,180),b=this.j.Ic();this.j.yg();var c=this.j.jf(), d=this.j.I.Ik,f=this.H.Eh.get("hfov");f={Xa:this.H.Eh.get("yaw"),pitch:this.H.Eh.get("pitch",b),Mg:this.j.yg(),Wd:f?this.Uc.hJ(f):c,Ik:0};this.Uc.Yjb(this.H.Sc,f);f.Xa=m(f.Xa,e-180,e+180);var l=Math.abs(c-f.Wd)>.5,p=Math.abs(d-f.Ik),q=p>.01;l=this.H.Va()?1:Math.max(l?this.H.Baa:1,q?this.H.cPa*p:1);return new g(q?"linear":"cubic_in_out",[new k("yaw",e,f.Xa,void 0),new k("pitch",b,f.pitch,void 0),new k("hfov",c,f.Wd,void 0),new k("stereographicFactor",d,f.Ik,void 0)],l)};a.prototype.t_a=function(e){var b= this.H.br[e],c=m(this.j.Jc(),-180,180),d=this.j.Ic();this.j.yg();var f=this.j.jf(),l=this.j.I.Ik,p=b.get("targetStereographicFactor",l),q=b.get("targetHfov");if(q)q=this.Uc.hJ(q);else{for(q=!1;e=c?m(e,c,c+360):m(e,c-360,c);break;default:e=m(e,c-180,c+180)}return new g(b.get("easing"),[new k("yaw",c,e,b.get("yawSpeed")),new k("pitch",d,r,b.get("pitchSpeed")),new k("hfov",f,q,b.get("hfovSpeed")),new k("stereographicFactor",l,p,b.get("stereographicFactorSpeed"))],b.get("duration"))};return a}); define("tdv/player/view/panorama/control/transition/steps/MoveToOriginPosition",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/Step","tdv/view/util/Ease","tdv/view/util/EaseDimension"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/Step"),n=a("tdv/view/util/Ease"),g=a("tdv/view/util/EaseDimension");a=m.extend(h,function(k,e,b,c){h.call(this,k,e,b,c);this.la=null;this.Rb=!1});a.prototype.mh=function(){return this.Rb};a.prototype.Yg= function(k){if(!this.Rb){if(!this.la){var e=this.j.Ic(),b=this.j.jf(),c=this.j.I.Ik,d=this.H.vg.get("stereographicFactor",0),f=Math.abs(c-d),l=d>0?this.H.vg.get("pitch",e):e,p=this.H.vg.get("hfov");p=p?this.Uc.hJ(p):b;d==0&&(p=Math.min(b,this.Uc.d$(this.H.Sc,p)));this.Uc.aZ(!1);f=this.H.Va()?1:Math.max(Math.abs(b-p)>.5?this.H.Baa:1,f>.01?this.H.cPa:1);this.la=new n("cubic_in_out",[new g("hfov",b,p,void 0),new g("pitch",e,l,void 0),new g("stereographicFactor",c,d,void 0)],f)}this.la.Nb(k);this.Uc.qr(this.la.ob("hfov")); this.Uc.rK(this.la.ob("stereographicFactor"));this.Uc.wra(this.j.Jc(),this.la.ob("pitch"));this.la.Ve()&&(this.Uc.Vf(this.H.Sc,this.H.vg.get("yaw"),this.H.vg.get("pitch",this.j.Ic())),this.Rb=!0)}};return a}); define("tdv/player/view/panorama/control/transition/steps/MoveToTranslationPosition",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/Step","tdv/view/util/Ease","tdv/view/util/EaseDimension"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/Step"),n=a("tdv/view/util/Ease"),g=a("tdv/view/util/EaseDimension");a=m.extend(h,function(k,e,b,c){h.call(this,k,e,b,c);this.la=null;this.Rb=!1});a.prototype.mh=function(){return this.Rb};a.prototype.Yg= function(k){if(!this.Rb){if(!this.la){var e=this.j.jf(),b=Math.min(this.Uc.d$(this.H.Sc,e),e),c=!this.H.Va()&&Math.abs(e-b)>.01?this.H.Baa:1;this.la=new n("cubic_in_out",[new g("hfov",e,b,void 0)],c);this.Uc.aZ(!1)}this.la.Nb(k);this.Uc.qr(this.la.ob("hfov"));this.la.Ve()&&(this.Uc.Vf(this.H.Sc,this.j.Jc()+this.H.pQ.bLa(),this.j.Ic()),this.Rb=!0)}};a.prototype.hE=function(){return!0};return a}); define("tdv/player/view/panorama/control/transition/steps/Remove",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(h,function(n,g,k,e){h.call(this,n,g,k,e)});a.prototype.Ch=function(){var n=this.j.Jf(this.H.qh);this.j.remove(n)};return a}); define("tdv/player/view/panorama/control/transition/steps/RemoveProjectedPanoramasFromModel",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(h,function(n,g,k,e){h.call(this,n,g,k,e)});a.prototype.Ch=function(){var n=(this.H.nc||this.H.Fc).get("model");n.set("objects",n.get("objects").filter(function(g){return g!=this.H.Be}.bind(this))); [this.H.Be.get("sourceCubeTexture"),this.H.Be.get("targetCubeTexture")].forEach(function(g){g&&g.dispose()});this.H.Be=null};return a}); define("tdv/player/view/panorama/control/transition/steps/ReleaseViewerArea",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(h,function(n,g,k,e){h.call(this,n,g,k,e)});a.prototype.Ch=function(){this.j.P.release(this.j)};return a}); define("tdv/player/view/panorama/control/transition/steps/RequestViewerArea",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(h,function(n,g,k,e){h.call(this,n,g,k,e)});a.prototype.Ch=function(){var n=[this.j.ld];this.Z3a()&&n.push(this.H.Zh);this.j.ld.eK(n)};a.prototype.Z3a=function(){return this.H.Fc?!0:this.j.ld.get("keepModel3DLoadedWithoutLocation")&& this.H.qh&&this.H.Zh&&this.H.Zh.get("model")?!0:!1};return a}); define("tdv/player/view/panorama/control/transition/steps/RestoreModelPosition",["require","exports","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a,m,h){return function(n){function g(k,e,b,c){return n.call(this,k,e,b,c)||this}P(g,n);g.prototype.Ch=function(){var k,e,b;(b=(e=(k=this.H.Zh)===null||k===void 0?void 0:k.get("model"))===null||e===void 0?void 0:e.get("camera"))===null||b===void 0||b.Tjb()};return g}(h)}); define("tdv/player/view/panorama/control/transition/steps/SetInitialPosition",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(h,function(n,g,k,e){h.call(this,n,g,k,e)});a.prototype.Ch=function(){this.Uc.Vf(this.H.Sc,this.H.Eh.get("yaw"),this.H.Eh.get("pitch",this.j.Ic()));var n=this.H.Eh.get("hfov");n&&(n=this.Uc.hJ(n),this.Uc.qr(n))}; return a}); define("tdv/player/view/panorama/control/transition/steps/SetInitialPositionFromModel",["require","tdv/utils","tdv/player/view/util/geo/Fov","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils");a("tdv/player/view/util/geo/Fov");var h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(h,function(n,g,k,e){h.call(this,n,g,k,e)});a.prototype.Ch=function(){var n=this.H.Fc.get("model").get("camera");if(this.H.xK.get("keepInitialPositionOnTranslation")){var g=this.H.Eh.get("yaw"); n=this.H.Eh.get("pitch")}else g=n.get("yaw")-this.H.Fc.get("yaw"),n=this.H.xK.get("enterPointingToHorizon")?0:n.get("pitch");this.Uc.Vf(this.H.Sc,g,n);if(g=this.H.Eh.get("hfov"))g=this.Uc.hJ(g),this.Uc.qr(g)};return a}); define("tdv/player/view/panorama/control/transition/steps/SetInitialPositionThroughModel",["require","tdv/utils","tdv/player/view/util/geo/Quaternion","tdv/player/view/util/XR","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/util/geo/Quaternion"),n=a("tdv/player/view/util/XR"),g=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(g,function(k,e,b,c){g.call(this,k,e,b,c)});a.prototype.Ch= function(){if(n.isPresenting){var k=h.haa(n.ug,!0);this.H.Fc.get("model").get("camera");var e=k.Xa-this.H.Fc.get("yaw");k=k.pitch}else this.H.xK.get("keepInitialPositionOnTranslation")?(e=this.H.Eh.get("yaw"),k=this.H.Eh.get("pitch")):(k=this.H.Fc.get("model").get("camera"),e=k.get("yaw")-this.H.Fc.get("yaw"),k=k.get("pitch"));this.Uc.Vf(this.H.Sc,e,k)};return a}); define("tdv/player/view/panorama/control/transition/steps/SetModelInitialPosition",["require","tdv/utils","tdv/constants/EventName","tdv/player/view/panorama/control/transition/steps/Step"],function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/view/panorama/control/transition/steps/Step");a=m.extend(n,function(g,k,e,b){n.call(this,g,k,e,b);this.Fa=null;this.Rb=!1});a.prototype.f5a=function(){this.Rb=!0};a.prototype.mh=function(){return this.Rb};a.prototype.Yg=function(){if(!this.Fa&& (this.Fa=this.H.nc.get("model"),this.H.Zh.get("model")==this.Fa)){var g=this.Fa.get("camera");g.set("easing",0);g.set("x",this.H.nc.get("x"));g.set("y",this.H.nc.get("y"));g.set("z",this.H.nc.get("z"));g.set("yaw",this.j.Jc()+this.H.nc.get("yaw"));g.set("pitch",this.j.Ic());g.set("fov",this.j.nb()>this.j.Mb()?this.j.cP():this.j.dP());this.Fa.bind(h.Zd,this.f5a,this,!0)}};return a}); define("tdv/player/view/panorama/control/transition/steps/SetModelInTransition",["require","exports","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a,m,h){a=function(n){function g(k,e,b,c,d){k=n.call(this,k,e,b,c)||this;k.value=!1;k.value=d;return k}P(g,n);g.prototype.Ch=function(){var k,e=(k=this.H.nc||this.H.Fc||this.H.Zh)===null||k===void 0?void 0:k.get("model");e&&e.get("camera").set("inTransition",this.value)};return g}(h);m=function(n){function g(k,e,b,c){return n.call(this, k,e,b,c,!0)||this}P(g,n);return g}(a);a.Pi=m;m=function(n){function g(k,e,b,c){return n.call(this,k,e,b,c,!1)||this}P(g,n);return g}(a);a.Eg=m;return a}); define("tdv/player/view/panorama/control/transition/steps/SetModelPlayerEnabled",["require","exports","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a,m,h){a=function(n){function g(k,e,b,c,d){k=n.call(this,k,e,b,c)||this;k.enabled=!1;k.enabled=d;return k}P(g,n);g.prototype.Ch=function(){var k;(k=this.H.Zh)===null||k===void 0||k.j.Ra(this.enabled)};return g}(h);m=function(n){function g(k,e,b,c){return n.call(this,k,e,b,c,!0)||this}P(g,n);return g}(a);a.Pi=m;m=function(n){function g(k, e,b,c){return n.call(this,k,e,b,c,!1)||this}P(g,n);return g}(a);a.Eg=m;return a}); define("tdv/player/view/panorama/control/transition/steps/SetModelRenderingPaused",["require","exports","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a,m,h){a=function(n){function g(k,e,b,c,d){k=n.call(this,k,e,b,c)||this;k.paused=!1;k.paused=d;return k}P(g,n);g.prototype.Ch=function(){var k,e=(k=this.H.Fc||this.H.nc||this.H.Zh)===null||k===void 0?void 0:k.get("model");e&&this.H.Zh.j.oRa(e,!this.paused)};return g}(h);m=function(n){function g(k,e,b,c){return n.call(this, k,e,b,c,!0)||this}P(g,n);return g}(a);a.Pi=m;m=function(n){function g(k,e,b,c){return n.call(this,k,e,b,c,!1)||this}P(g,n);return g}(a);a.Eg=m;return a}); define("tdv/player/view/panorama/control/transition/steps/SetMinFaceSize",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep","tdv/player/view/panorama/control/transition/TransitionData"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep"),n=a("tdv/player/view/panorama/control/transition/TransitionData");a=m.extend(h,function(g,k,e,b){h.call(this,g,k,e,b)});a.prototype.Ch=function(){this.H.Sc&&(this.H.mode== n.qca||this.H.mode==n.rca?this.H.Sc.set("minFaceSize",1024):this.H.Sc.set("minFaceSize",void 0))};return a}); define("tdv/player/view/panorama/control/transition/steps/SetOriginPosition",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep","tdv/player/view/util/XR"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep"),n=a("tdv/player/view/util/XR");a=m.extend(h,function(g,k,e,b){h.call(this,g,k,e,b)});a.prototype.Ch=function(){var g=this.H.$ra?this.H.vg.get("stereographicFactor",0):0;this.Uc.rK(g);this.Uc.Vf(this.H.Sc, this.H.vg.get("yaw"),this.H.vg.get("pitch",this.j.Ic()));this.H.Va()&&n.jK();(g=this.H.vg.get("hfov"))||this.H.qh||(g=this.Uc.TJa());g&&(g=this.Uc.hJ(g),this.Uc.qr(g),this.Uc.aZ(!this.H.$ra))};return a}); define("tdv/player/view/panorama/control/transition/steps/SetRenderingPaused",["require","exports","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a,m,h){a=function(n){function g(k,e,b,c,d){k=n.call(this,k,e,b,c)||this;k.paused=!1;k.paused=d;return k}P(g,n);g.prototype.Ch=function(){this.j.C$(this.paused)};return g}(h);m=function(n){function g(k,e,b,c){return n.call(this,k,e,b,c,!0)||this}P(g,n);return g}(a);a.Pi=m;m=function(n){function g(k,e,b,c){return n.call(this, k,e,b,c,!1)||this}P(g,n);return g}(a);a.Eg=m;return a}); define("tdv/player/view/panorama/control/transition/steps/SetTranslationPosition",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(h,function(n,g,k,e){h.call(this,n,g,k,e)});a.prototype.Ch=function(){var n=this.Uc.d$(this.H.Sc,this.j.jf());this.Uc.qr(n);this.Uc.Vf(this.H.Sc,this.j.Jc()+this.H.pQ.bLa(),this.j.Ic())};a.prototype.hE=function(){return!0}; return a}); define("tdv/player/view/panorama/control/transition/steps/SetXRPointersVisible",["require","exports","tdv/player/view/panorama/control/transition/steps/Step","tdv/player/view/util/XR"],function(a,m,h,n){a=function(g){function k(e,b,c,d,f){e=g.call(this,e,b,c,d)||this;e.value=!1;e.ended=!1;e.wait=!1;e.mh=function(){return this.ended};e.value=f;e.value||(e.wait=!0);return e}P(k,g);k.prototype.Yg=function(){n.ud.forEach(function(e){n.mlb(e,!this.value)}.bind(this));this.wait?this.wait=!1:this.ended= !0};return k}(h);m=function(g){function k(e,b,c,d){return g.call(this,e,b,c,d,!0)||this}P(k,g);return k}(a);a.Pi=m;m=function(g){function k(e,b,c,d){return g.call(this,e,b,c,d,!1)||this}P(k,g);return k}(a);a.Eg=m;return a}); define("tdv/player/view/panorama/control/transition/steps/RestoreViewerAreaToModelPlayer",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/SingleOperationStep"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/SingleOperationStep");a=m.extend(h,function(n,g,k,e){h.call(this,n,g,k,e)});a.prototype.Ch=function(){this.H.nc&&this.H.Zh.get("model")==this.H.nc.get("model")&&this.j.ld.eK([this.H.Zh])};return a}); define("tdv/player/view/panorama/control/transition/steps/Translate",["require","tdv/utils","tdv/player/view/panorama/control/transition/steps/Step","tdv/player/view/panorama/renderer/3d/util/Util","tdv/player/view/util/Device"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/transition/steps/Step"),n=a("tdv/player/view/panorama/renderer/3d/util/Util"),g=a("tdv/player/view/util/Device");a=m.extend(h,function(k,e,b,c){h.call(this,k,e,b,c);this.I="not initialized";this.Sb=0}); a.prototype.mh=function(){return this.I=="ended"};a.prototype.Yg=function(k){this.mh()||(this.I=="not initialized"&&this.ES(),this.I=="initialized"&&(this.Nq.get("ready")||this.Nq.Voa())&&this.wV(),this.I=="started"&&this.za(k),this.Sb>=1&&this.VR())};a.prototype.ES=function(){this.yDa=this.H.RSa;this.lR=.25;this.BYa=.75;this.M6a=.25;this.iGa=this.G2a();this.Kca=.5*this.yDa;this.X$a=this.yDa-2*this.Kca;this.DH=1/(this.Kca+this.X$a);this.K_=this.DH/this.Kca;this.Kz=0;this.Nq=this.j.Jf(this.H.Sc);this.Kka= this.j.Jf(this.H.qh);this.cM=this.H.pQ.gfb();this.I="initialized"};a.prototype.G2a=function(){var k=this.H.pQ.get("distance");return k?Math.min(.99,k/this.H.qh.get("distanceToFloor")):.75};a.prototype.wV=function(){this.j.pRa(!this.H.Va()&&g.Yb()!=g.Nk);this.Nq.yi();this.I="started"};a.prototype.za=function(k){this.Nq.get("ready")&&n.F$(!0);this.Nq.get("ready")||this.Sb=1-.5*this.Kz*this.Kz/this.K_?this.Kz=Math.sqrt(2*(1-this.Sb)*this.K_):this.Kzthis.j.Mb()?this.j.cP():this.j.dP());var l=[];if(this.H.qE){if(!this.H.Va()){var p=new k;p.set("duration",this.H.Z7);p.set("easing","linear");p.bind(h.Zd,this.kia,this,!0);this.jfa=p;l.push(p)}this.H.Be.set("sourceAlpha",1)}else this.H.Be.set("sourceAlpha",.99);this.me=new k;this.me.set("targetX",f.x);this.me.set("targetY",f.y);this.me.set("targetZ",f.z);b.isPresenting||this.me.set("targetYaw",f.yaw);this.me.set("targetPitch",f.pitch);this.me.set("targetFov",f.fov);this.me.set("targetDistance", f.distance);this.me.set("duration",this.H.Uib);this.me.set("easing","quad_in_out");this.me.bind(h.Zd,this.wia,this,!0);l.push(this.me);this.Xb=new g;this.Xb.set("movements",l);this.Xb.set("mandatory",!0);this.Xb.set("internal",!0);this.Xb.bind(h.Tb,this.rv,this,!0);d.set("sequences",d.get("sequences").concat([this.Xb]));this.Xb.play();this.EV=(new THREE.Vector3).set(f.x,f.y,f.z);this.AD=(new THREE.Vector3).set(this.H.nc.get("x"),this.H.nc.get("y"),this.H.nc.get("z"))};a.prototype.kia=function(){var d= this.jfa.get("position");this.H.Be.set("sourceAlpha",1-d);this.H.Be.set("targetAlpha",0)};a.prototype.wia=function(){if(this.H.qE)this.H.Be.set("sourceAlpha",0),this.H.Be.set("targetAlpha",0);else{var d=this.pS();this.H.Be.set("sourceAlpha",1-Math.max(.01,Math.min(.99,(d-0)/.33)))}};var c=new THREE.Vector3;a.prototype.pS=function(){var d=this.H.nc.get("model").get("camera");return c.set(d.get("x"),d.get("y"),d.get("z")).distanceTo(this.AD)/this.AD.distanceTo(this.EV)};a.prototype.rv=function(){if(!this.Rb){var d= this.H.nc.get("model").get("camera");d.set("sequences",d.get("sequences").filter(function(f){return f!=this.Xb}.bind(this)));this.vja&&d.get("sequences").includes(this.vja)&&this.vja.play();this.Rb=!0;this.UU()}};a.prototype.mV=function(){var d=this.H.nc.get("model");this.HU=d.get("postprocessing");this.IU=d.get("surfaceSelectionEnabled");d.set("postprocessing",!1);d.set("surfaceSelectionEnabled",!1)};a.prototype.UU=function(){var d=this.H.nc.get("model"),f=this.HU,l=this.IU;setTimeout(function(){d.set("postprocessing", f);d.set("surfaceSelectionEnabled",l)},30)};return a}); define("tdv/player/view/panorama/control/transition/steps/TranslateModelThroughPanoramas","require tdv/utils tdv/constants/EventName tdv/player/script/Model3DCameraSequence tdv/player/script/TargetModel3DCameraMovement tdv/player/view/panorama/control/transition/steps/Step tdv/player/view/util/XR".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/script/Model3DCameraSequence"),g=a("tdv/player/script/TargetModel3DCameraMovement"),k=a("tdv/player/view/panorama/control/transition/steps/Step"), e=a("tdv/player/view/util/XR");a=m.extend(k,function(c,d,f,l){k.call(this,c,d,f,l);this.Rb=this.Ws=!1});a.prototype.mh=function(){return this.Rb};a.prototype.Yg=function(){this.H.Zh.get("model")!=this.H.Fc.get("model")?this.fCa():this.Ws||(this.Ws=!0,this.j9a(),this.mV())};a.prototype.j9a=function(){var c=this.H.Fc.get("model").get("camera");c.set("easing",0);c.set("x",this.H.nc.get("x"));c.set("y",this.H.nc.get("y"));c.set("z",this.H.nc.get("z"));c.set("distance",0);e.isPresenting||c.set("yaw",this.j.Jc()+ this.H.nc.get("yaw"));c.set("pitch",this.j.Ic());c.set("fov",this.j.nb()>this.j.Mb()?this.j.cP():this.j.dP());var d=[];if(this.H.qE){var f=new g;f.set("duration",this.H.Z7);f.set("easing","linear");f.bind(h.Zd,this.kia,this,!0);this.jfa=f;d.push(f);this.H.Be.set("skyBox",!1);this.H.Be.set("nearPlane",!0);this.H.Be.set("sourceAlpha",1);this.H.Be.set("targetAlpha",0)}else this.H.Be.set("skyBox",!0),this.H.Be.set("nearPlane",!1),this.H.Be.set("targetAlpha",.01),this.H.Be.set("sourceAlpha",.99);this.me= new g;this.me.set("targetX",this.H.Fc.get("x"));this.me.set("targetY",this.H.Fc.get("y"));this.me.set("targetZ",this.H.Fc.get("z"));this.H.xK.get("keepInitialPositionOnTranslation")&&(e.isPresenting||(f=this.H.Eh.get("yaw")+this.H.Fc.get("yaw"),this.me.set("targetYaw",f)),f=this.H.Eh.get("pitch"),f!==void 0&&this.me.set("targetPitch",f),f=this.H.Eh.get("hfov"),f!==void 0&&this.me.set("targetFov",f));this.me.set("duration",1500);this.me.set("easing","cubic_in_out");this.me.bind(h.Zd,this.g5a,this, !0);d.push(this.me);this.H.qE&&(f=new g,f.set("duration",this.H.Z7),f.set("easing","linear"),f.bind(h.Zd,this.jia,this,!0),this.ifa=f,d.push(f));this.Xb=new n;this.Xb.set("movements",d);this.Xb.set("mandatory",!0);this.Xb.set("internal",!0);this.Xb.bind(h.Tb,this.fCa,this,!0);c.set("sequences",c.get("sequences").concat([this.Xb]));this.Xb.play();this.AD=(new THREE.Vector3).set(this.H.nc.get("x"),this.H.nc.get("y"),this.H.nc.get("z"));this.EV=(new THREE.Vector3).set(this.H.Fc.get("x"),this.H.Fc.get("y"), this.H.Fc.get("z"))};a.prototype.g5a=function(){if(this.H.qE)this.H.Be.set("sourceAlpha",0),this.H.Be.set("targetAlpha",0);else{var c=this.pS();this.H.Be.set("targetAlpha",Math.max(.01,Math.min(.99,c-0)));this.H.Be.set("sourceAlpha",1)}};var b=new THREE.Vector3;a.prototype.pS=function(){var c=this.H.nc.get("model").get("camera");return b.set(c.get("x"),c.get("y"),c.get("z")).distanceTo(this.AD)/this.AD.distanceTo(this.EV)};a.prototype.kia=function(){var c=this.jfa.get("position");this.H.Be.set("sourceAlpha", 1-c);this.H.Be.set("targetAlpha",0)};a.prototype.jia=function(){var c=this.ifa.get("position");this.H.Be.set("sourceAlpha",0);this.H.Be.set("targetAlpha",c)};a.prototype.fCa=function(){var c=this.H.nc.get("model").get("camera");c.set("sequences",c.get("sequences").filter(function(d){return d!=this.Xb}.bind(this)));this.UU();this.Rb=!0};a.prototype.mV=function(){var c=this.H.nc.get("model"),d=this.H.Zh;this.HU=c.get("postprocessing");this.IU=c.get("surfaceSelectionEnabled");this.z6a=d.get("spritesEnabled"); c.set("postprocessing",!1);c.set("surfaceSelectionEnabled",!1);d.set("spritesEnabled",!1)};a.prototype.UU=function(){var c=this.H.nc.get("model"),d=this.H.Zh,f=this.HU,l=this.IU,p=this.z6a;setTimeout(function(){c.set("postprocessing",f);c.set("surfaceSelectionEnabled",l);d.set("spritesEnabled",p)},500)};return a}); define("tdv/player/view/panorama/control/transition/steps/TranslateModelToPanorama","require tdv/utils tdv/constants/EventName tdv/constants/PlaybackState tdv/player/script/Model3DCameraSequence tdv/player/script/TargetModel3DCameraMovement tdv/player/view/panorama/control/transition/steps/Step tdv/player/view/util/geo/Fov tdv/player/view/util/XR".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState"),g=a("tdv/player/script/Model3DCameraSequence"), k=a("tdv/player/script/TargetModel3DCameraMovement"),e=a("tdv/player/view/panorama/control/transition/steps/Step"),b=a("tdv/player/view/util/geo/Fov"),c=a("tdv/player/view/util/XR");a=m.extend(e,function(f,l,p,q){e.call(this,f,l,p,q);this.Ws=this.Rb=!1});a.prototype.mh=function(){return this.Rb};a.prototype.Yg=function(){this.Xb?this.Xb.get("state")==n.ca&&setTimeout(function(){this.rv()}.bind(this),10):this.Ws||(this.Ws=!0,this.Dka(),this.mV())};a.prototype.Dka=function(){var f=this.H.Fc.get("model").get("camera"); f.umb();var l=Math.abs(f.get("pitch")-this.j.Ic()),p=l>30;this.me=new k;this.me.set("targetX",this.H.Fc.get("x"));this.me.set("targetY",this.H.Fc.get("y"));this.me.set("targetZ",this.H.Fc.get("z"));this.me.set("targetDistance",0);this.me.set("targetFov",this.V2a(this.j.jf()));c.isPresenting||this.me.set("targetYaw",this.j.Jc()+this.H.Fc.get("yaw"));p?this.me.set("targetPitch",f.get("pitch")):this.me.set("targetPitch",this.j.Ic());this.me.set("duration",this.H.Whb);this.me.set("easing","cubic_in_out"); this.me.bind(h.Zd,this.wia,this,!0);var q=[this.me];p&&(p=new k,p.set("targetPitch",this.j.Ic()),p.set("duration",l/90*1E3),p.set("easing","quad_in_out"),q.push(p));this.H.qE?(this.H.Va()||(l=new k,l.set("duration",this.H.Z7),l.set("easing","linear"),l.bind(h.Zd,this.jia,this,!0),this.ifa=l,q.push(l)),this.H.Be.set("targetAlpha",0)):this.H.Be.set("targetAlpha",.01);this.Xb=new g;this.Xb.set("movements",q);this.Xb.set("mandatory",!0);this.Xb.set("internal",!0);this.Xb.bind(h.Tb,this.rv,this,!0);f.set("sequences", f.get("sequences").concat([this.Xb]));this.Xb.play();this.AD=(new THREE.Vector3).set(f.get("x"),f.get("y"),f.get("z"));this.EV=(new THREE.Vector3).set(this.H.Fc.get("x"),this.H.Fc.get("y"),this.H.Fc.get("z"))};a.prototype.V2a=function(f){return this.j.nb().99&&(p=l+1);g.prototype.bt.call(this,this.Sb*c.cR,c.cR,this.Sb*c.cR,c.cR,d,p)};c.prototype.ze=function(d){if(this.Ba){var f=this.j.Jc(),l=this.j.Ic(),p=this.j.yg(),q=0;if(this.eI!==void 0&&this.uja!==void 0&&this.DDa!==void 0){var r=f-this.eI,t=l-this.uja,u=p-this.DDa;q=Math.sqrt(r*r+t*t+u*u)*1E3/d}this.eI=f;this.uja=l;this.DDa=p;r=this.m1(this.Ba);var v=this.Sb*(r-1);t=Math.max(0,Math.min(r-2,Math.floor(v)));u=t+1;v=1-(v-t);for(var w=1-v,y=[], x=0;xt?r+d:r-d:t>this.Xy&&t>v&&(r=xl.get("thumbnailUrl"));this.CH=f.map(l=>{var p=null;l&&(p=new b(n.Up),p.bind(h.ia,this.XBa,this),p.bind(h.$c, this.YBa,this));return p});this.CH.forEach((l,p)=>{l&&l.load(f[p])})};c.prototype.Z$a=function(){this.txa();this.e1=null};c.prototype.c5a=function(){this.YG=150;this.CH.map(function(d){d&&(this.YG=Math.min(d.fg()*360/this.kb,this.YG))},this);this.wfa=Math.round(this.YG/2);this.e1=this.CH.map(function(d){return this.q_a(d,this.YG,this.wfa,this.kb,this.AHa,this.rb)},this);this.txa()};c.prototype.q_a=function(d,f,l,p,q,r){var t=document.createElement("canvas");t.width=f;t.height=l;var u=t.getContext("2d"); u.fillStyle="#000000";u.fillRect(0,0,f,l);d&&(d=d.xg(),p=Math.round(f*p/360),u.drawImage(d,(f-p)*.5,Math.round(l*(90-(r+q*.5))/180),p,Math.round(l*q/180)));f=[];t=u.getImageData(0,0,t.width,t.height);for(l=u=0;u{d&&(d.h(h.ia,this.XBa,this),d.h(h.$c,this.YBa,this),d.cancel())});this.CH=null};c.prototype.XBa=function(){this.CH.filter(d=>d&&!d.oj()).length== 0&&this.c5a()};c.prototype.YBa=function(){};c.prototype.wYa=function(){this.Ba.bind(h.L("minimumLuminance"),this.iz,this);this.Ba.bind(h.L("maximumLuminance"),this.iz,this);this.Ba.bind(h.L("luminanceChangeTime"),this.iz,this);this.Ba.bind(h.L("maxLuminanceChangeSpeed"),this.iz,this);this.iz()};c.prototype.T$a=function(){this.Ba.h(h.L("minimumLuminance"),this.iz,this);this.Ba.h(h.L("maximumLuminance"),this.iz,this);this.Ba.h(h.L("luminanceChangeTime"),this.iz,this);this.Ba.h(h.L("maxLuminanceChangeSpeed"), this.iz,this)};c.prototype.iz=function(){this.qq=this.Ba.get("minimumLuminance");this.Xy=this.Ba.get("maximumLuminance");this.qq==void 0&&this.Xy==void 0?(this.qq=.2,this.Xy=.45):this.qq==void 0?this.qq=Math.min(.2,this.Xy):this.qq==void 0?this.Xy=Math.max(.45,this.qq):this.qq=Math.min(this.qq,this.Xy);this.Xy=Math.min(1,Math.max(0,this.Xy));this.qq=Math.min(1,Math.max(0,this.qq));this.nAa=Math.max(100,this.Ba.get("luminanceChangeTime",5E3));this.rAa=this.Ba.get("maxLuminanceChangeSpeed",1);this.bb()}; c.cR=1E3;return c}); define("tdv/player/view/panorama/control/frames/LiveFramesController","require tdv/utils tdv/binding/ChangeWatcher tdv/constants/EventName tdv/constants/PlaybackState tdv/player/view/panorama/control/frames/BaseFramesController".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/ChangeWatcher"),n=a("tdv/constants/EventName"),g=a("tdv/constants/PlaybackState"),k=a("tdv/player/view/panorama/control/frames/BaseFramesController");a=m.extend(k,function(e){k.call(this,e);this.c1=this.d1=null; this.jk=this.Wi=5E3;this.vf=void 0;this.ac=this.Wi;this.js=1;this.Ba=null;this.vH=!1;this.QU=void 0});a.prototype.start=function(e){this.Ba=e;this.vH=!1;this.U1=!0;this.d1=h.kx(this.Ba,"frameDisplayTime",this.Lla,this);this.c1=h.kx(this.Ba,"frameTransitionTime",this.Lla,this);this.js=this.m1(this.Ba);this.vf=this.Ba.nX()*(this.Wi+this.jk);this.Lla(!0);this.bt();this.bb();this.ml()};a.prototype.Lla=function(e){var b=Math.max(100,this.Ba.get("frameDisplayTime",5E3)),c=Math.max(100,this.Ba.get("frameTransitionTime", 5E3));if(this.Wi!=b||this.jk!=c||e){e=this.nM();var d=this.x1a();this.Wi=b;this.jk=c;this.js>1?(this.vf=e*(this.Wi+this.jk)+d*this.Wi+d*this.jk,this.ac=this.js*(this.Wi+this.jk)):(this.vf=d*this.Wi,this.ac=this.Wi)}};a.prototype.nM=function(){return this.js>1?Math.floor(this.vf/(this.Wi+this.jk)):0};a.prototype.y1a=function(){return this.js>1?(this.nM()+1)%this.js:0};a.prototype.x1a=function(){return this.js>1?Math.max(0,Math.min(1,this.vf-this.nM()*(this.Wi+this.jk))):this.vf/this.Wi};a.prototype.Dya= function(){return this.js>1?Math.max(0,Math.min(1,(this.vf-(this.nM()*(this.Wi+this.jk)+this.Wi))/this.jk)):0};a.prototype.V9a=function(e){var b=Math.floor(e/this.jk);return b*(this.Wi+this.jk)+this.Wi+(e-b*this.jk)};a.prototype.$Fa=function(e){var b=Math.floor(e/(this.Wi+this.jk));return b*this.jk+Math.max(0,e-b*(this.Wi+this.jk)-this.Wi)};a.prototype.play=function(){this.vH&&(this.vH=!1,this.U1&&this.bb(),this.ml())};a.prototype.pause=function(){this.vH=!0;this.ml()};a.prototype.NP=function(){this.pause()}; a.prototype.XP=function(){this.play()};a.prototype.end=function(){this.U1=!1;this.Ba=null;this.d1&&(this.d1.gF(),this.d1=null);this.c1&&(this.c1.gF(),this.c1=null);this.ml()};a.prototype.pK=function(e){this.vf=e;this.bb()};a.prototype.QE=function(e){this.vf=this.V9a(e);this.bb();this.pause()};a.prototype.ze=function(e){if(this.U1){var b=this.vf;this.vH||(b+=e);if(this.QU===void 0&&b>=this.ac-this.jk)this.QU=this.vf,this.Ba.o(n.Tr);else{this.vf=b;this.vf%=this.ac;this.QU!==void 0&&this.vfe?c:1;c=b>e?1:1-c;for(var f=0;f0&&l<1&&p.yi(),p.get("alpha"),p.set("alpha",l))}this.bt();this.vH||this.bb()}}};a.prototype.ql=function(){return this.U1?this.vH?g.Zb:g.PLAYING:g.ca};a.prototype.ml=function(){k.prototype.ml.call(this,this.ql())};a.prototype.bt=function(){k.prototype.bt.call(this,this.vf,this.ac,this.$Fa(this.vf),this.$Fa(this.ac), this.js+1,this.Dya()===0?this.nM():void 0)};return a});define("tdv/player/view/panorama/control/frames/StandardFramesController",["require","tdv/utils","tdv/player/view/panorama/control/frames/BaseFramesController"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/control/frames/BaseFramesController");return m.extend(h,function(n){h.call(this,n)})}); define("tdv/player/view/panorama/control/frames/VideoFramesController",["require","tdv/utils","tdv/constants/EventName","tdv/constants/PlaybackState","tdv/player/view/panorama/control/frames/BaseFramesController"],function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState"),g=a("tdv/player/view/panorama/control/frames/BaseFramesController");a=m.extend(g,function(k){g.call(this,k);this.Ff=!1});a.prototype.mP=function(){};a.prototype.start=function(k){this.end(); this.Ba=k;this.Ba.set("mute",this.Ff);this.Ba.get("autoplay")&&this.Ba.set("state",n.PLAYING);this.Qx()};a.prototype.getTime=function(){return this.Ba?this.Ba.get("currentTime"):0};a.prototype.ql=function(){return this.Ba?this.Ba.get("state"):n.ca};a.prototype.play=function(){this.Ba&&this.Ba.set("state",n.PLAYING)};a.prototype.pause=function(){this.Ba&&this.Ba.set("state",n.Zb)};a.prototype.T$=function(){this.Ba&&this.Ba.set("state",n.Zb)};a.prototype.stop=function(){this.Ba&&this.Ba.set("state", n.ca)};a.prototype.end=function(){this.Ba&&(this.zz(),this.Ba=null)};a.prototype.pK=function(k){this.Ba&&this.Ba.set("state",n.PLAYING);this.Ba&&this.Ba.set("currentTime",k)};a.prototype.Bg=function(k){this.Ff=k;this.Ba&&this.Ba.set("mute",this.Ff)};a.prototype.Qx=function(){this.Ba.bind(h.L("currentTime"),this.Nf,this,!0);this.Ba.bind(h.L("duration"),this.$o,this,!0);this.Ba.bind(h.L("state"),this.Hj,this,!0);this.Ba.get("state")!=n.ca&&this.ml()};a.prototype.zz=function(){this.Ba.h(h.L("currentTime"), this.Nf,this,!0);this.Ba.h(h.L("duration"),this.$o,this,!0);this.Ba.h(h.L("state"),this.Hj,this,!0)};a.prototype.Hj=function(){this.ml()};a.prototype.Nf=function(){this.bt()};a.prototype.$o=function(){this.bt()};a.prototype.bt=function(){this.Ba&&g.prototype.bt.call(this,this.Ba.get("currentTime"),this.Ba.get("duration"))};return a}); define("tdv/player/view/panorama/control/FramesController","require tdv/utils tdv/constants/PlaybackState tdv/events/Event tdv/events/EventDispatcher tdv/player/parser/ClassInfo tdv/player/view/panorama/control/frames/BaseFramesController tdv/player/view/panorama/control/frames/HDRFramesController tdv/player/view/panorama/control/frames/LiveFramesController tdv/player/view/panorama/control/frames/StandardFramesController tdv/player/view/panorama/control/frames/VideoFramesController".split(" "),function(a){var m= a("tdv/utils");a("tdv/constants/PlaybackState");var h=a("tdv/events/Event"),n=a("tdv/events/EventDispatcher"),g=a("tdv/player/parser/ClassInfo"),k=a("tdv/player/view/panorama/control/frames/BaseFramesController"),e=a("tdv/player/view/panorama/control/frames/HDRFramesController"),b=a("tdv/player/view/panorama/control/frames/LiveFramesController"),c=a("tdv/player/view/panorama/control/frames/StandardFramesController"),d=a("tdv/player/view/panorama/control/frames/VideoFramesController"),f=m.extend(n, function(l){n.call(this);this.j=l;this.uha=this.y0(b);this.jga=this.y0(e);this.j6=this.y0(d);this.Mka=this.y0(c);this.re=null});f.prototype.clear=function(){this.o0(this.uha);this.uha=null;this.o0(this.jga);this.jga=null;this.o0(this.j6);this.j6=null;this.o0(this.Mka);this.j=this.re=this.Mka=null};f.prototype.y0=function(l){l=new l(this.j);l.bind(k.oc,this.bg,this,!0);l.bind(k.Ok,this.Es,this,!0);l.bind(k.gd,this.Mf,this,!0);return l};f.prototype.o0=function(l){l.h(k.oc,this.bg,this);l.h(k.Ok,this.Es, this);l.h(k.gd,this.Mf,this);l.clear()};f.prototype.Wga=function(l,p){return g.Oa(p,l)};f.prototype.xya=function(l){return this.Wga(l,"HDRPanorama")?this.jga:this.Wga(l,"LivePanorama")?this.uha:this.Wga(l,"VideoPanorama")?this.j6:this.Mka};f.prototype.mP=function(l){(this.re=this.xya(l))&&this.re.mP(l)};f.prototype.start=function(l){this.bg();(this.re=this.xya(l))&&this.re.start(l)};f.prototype.ql=function(){if(this.re)return this.re.ql()};f.prototype.getTime=function(){return this.re?this.re.getTime(): 0};f.prototype.play=function(){this.re&&this.re.play()};f.prototype.pause=function(){this.re&&this.re.pause()};f.prototype.NP=function(){this.re&&this.re.NP()};f.prototype.XP=function(){this.re&&this.re.XP()};f.prototype.T$=function(){this.re&&this.re.T$()};f.prototype.stop=function(){this.re&&this.re.stop();this.o(new h(f.Ok,{duration:0,time:0,steps:void 0,selectedStep:void 0}))};f.prototype.end=function(){this.re&&(this.re.end(),this.re=null)};f.prototype.pK=function(l){this.re&&this.re.pK(l)}; f.prototype.QE=function(l){this.re&&this.re.QE(l)};f.prototype.uQ=function(){this.re&&this.re.uQ()};f.prototype.ze=function(l){this.re&&this.re.ze(l)};f.prototype.Bg=function(l){this.j6.Bg(l)};f.prototype.bg=function(){this.o(new h(f.oc))};f.prototype.Es=function(l){this.o(new h(f.Ok,l.data))};f.prototype.Mf=function(l){this.o(new h(f.gd,l.data))};f.oc="request frame";f.yUa="frame display";f.zUa="frame hide";f.Ok="time change";f.gd="playback state change";return f}); define("tdv/player/view/panorama/control/LoadController",["require","tdv/utils","tdv/constants/EventName","tdv/events/EventDispatcher","tdv/view/events/ProgressEvent"],function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/EventDispatcher"),g=a("tdv/view/events/ProgressEvent");a=m.extend(n,function(k){n.call(this);this.j=k;this.si=this.Ba=null});a.prototype.start=function(k){this.Ba=k;this.si=this.j.Jf(this.Ba);this.si.bind(h.ia,this.Pe,this,!0);this.si.bind(h.yc,this.mz, this,!0);this.si.get("ready")?this.o(h.vd,{panorama:this.Ba}):this.si.bind(h.vd,this.C3,this,!0);this.si.set("loadingActive",!0)};a.prototype.stop=function(){this.Ba=null;this.si&&(this.si.h(h.vd,this.C3,this),this.si.h(h.ia,this.Pe,this),this.si.h(h.yc,this.mz,this),this.si.set("loadingActive",!1),this.si=null,this.o(h.Fg))};a.prototype.clear=function(){this.stop()};a.prototype.C3=function(){this.si.h(h.vd,this.C3,this);this.o(h.vd,{panorama:this.Ba})};a.prototype.Pe=function(){this.si.h(h.vd,this.C3, this);this.si.h(h.ia,this.Pe,this);this.si.h(h.yc,this.mz,this);this.si=null;this.o(h.ia,{panorama:this.Ba});this.Ba=null;this.o(h.Fg)};a.prototype.mz=function(k){this.o(new g(h.yc,k.percent))};return a}); define("tdv/player/view/panorama/control/MapController","require exports tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/script/MapPlayer".split(" "),function(a,m,h,n,g,k){var e=function(c){function d(f){var l=c.call(this)||this;l.renderer=f;l.xpa=[];l.VX=new Map;l.gg=null;return l}P(d,c);d.prototype.clear=function(){this.u$([])};d.prototype.u$=function(f){f?Array.isArray(f)||(f=[f]):f=[];this.xpa.filter(function(l){return!f.includes(l)}).forEach(this.Ajb.bind(this)); f.filter(function(l){return!this.xpa.includes(l)}.bind(this)).forEach(this.Tbb.bind(this));this.xpa=f};d.prototype.display=function(f){this.Vf(f)};d.prototype.oe=function(f){this.gg==f&&this.stop()};d.prototype.stop=function(){this.Vf(null)};d.prototype.Tbb=function(f){var l=new b(this.renderer,f);l.bind(d.tj,this.EY,this,!0);l.Vf(this.gg);this.VX.set(f,l)};d.prototype.Ajb=function(f){var l=this.VX.get(f);l.h(d.tj,this.EY,this);l.dispose();this.VX.delete(f)};d.prototype.Vf=function(f){this.gg!==f&& (this.gg=f,this.VX.forEach(function(l){l.Vf(f)}))};d.prototype.ze=function(){this.VX.forEach(function(f){f.Inb()})};d.prototype.EY=function(f){this.o(new n(d.tj,{yawDelta:f.data.yawDelta}))};d.tj="request yaw change";return d}(g),b=function(c){function d(f,l){var p=c.call(this)||this;p.renderer=f;p.HA=l;p.gg=null;p.Cw=null;p.Sbb();return p}P(d,c);d.prototype.dispose=function(){this.zjb();this.Vf(null)};d.prototype.Vf=function(f){this.gg!==f&&(this.jJa(),this.gg=f,this.Ubb())};d.prototype.Inb=function(){this.qTa()}; d.prototype.FQa=function(f,l,p){f=f.get("mapLocations",[]);for(var q=0;q0?f[0]:null};d.prototype.NRa=function(){this.HA.Wbb(this.Cw);this.HA.bind(k.tj,this.EY,this,!0);this.qTa()};d.prototype.Ngb=function(){this.HA.Bjb(this.Cw);this.HA.h(k.tj,this.EY,this)};d.prototype.jJa=function(){this.Cw&&(this.Ngb(),this.Cw=null)};d.prototype.Ubb=function(){this.gg&&(this.Cw=this.FQa(this.gg,this.HA.get("map",null),!0))&&this.NRa()};d.prototype.qTa= function(){if(this.Cw){var f=this.renderer.Jc(),l=this.renderer.Ic();this.HA.sr(this.Cw,f,l,this.renderer.jf())}};d.prototype.Sbb=function(){this.HA.bind(h.L("map"),this.yOa,this,!1)};d.prototype.zjb=function(){this.HA.h(h.L("map"),this.yOa,this)};d.prototype.yOa=function(){this.gg&&(this.jJa(),(this.Cw=this.FQa(this.gg,this.HA.get("map",null),!1))&&this.NRa())};d.prototype.EY=function(f){this.o(new n(e.tj,{yawDelta:f.data.yawDelta}))};return d}(g);return e}); define("tdv/player/view/util/Gamepad","require tdv/constants/EventName tdv/events/async tdv/events/EventDispatcher tdv/view/util/Animation tdv/player/view/util/URL tdv/player/view/util/XR".split(" "),function(a){function m(w){this.Ri=w;this.Kl=null;this.wda={};for(w=0;w500};m.prototype.hand=function(){return this.M2a}; m.prototype.quaternion=function(){return this.bm};m.prototype.position=function(){return this.Sb};m.prototype.pressed=function(w){w||(w=this.Ri.ljb);return w?this.wda[w]:this.uda>0};var p=new b;p.all=function(){n();return q};p.Ug=function(){n();return r};p.fb="left";p.Db="right";var q=[],r=null,t={},u=void 0,v=d.Tg("disable-controller",!1);return p}); define("tdv/player/view/util/geo/Line",["require","tdv/player/view/util/geo/Point","tdv/player/view/util/geo/Vector"],function(a){function m(g,k){this.Lg=g||new h(0,0,0);this.Dk=k||new h(1,0,0)}var h=a("tdv/player/view/util/geo/Point"),n=a("tdv/player/view/util/geo/Vector");m.prototype.clone=function(){return new m(this.Lg.clone(),this.Dk.clone())};m.prototype.apply=function(g){g.vO(this.Lg);g.vO(this.Dk)};m.prototype.VLa=function(){return n.YD(this.Lg,this.Dk)};return m}); define("tdv/player/view/util/geo/Frustum",["require","tdv/player/view/util/geo/Line","tdv/player/view/util/geo/Point"],function(a){function m(g,k,e){this.Pa=g||100;this.Ha=k||100;this.kb=e||Math.PI;this.zja=void 0;this.Tu=!0}var h=a("tdv/player/view/util/geo/Line"),n=a("tdv/player/view/util/geo/Point");m.prototype.lK=function(g){this.kb!=g&&(this.kb=g,this.Tu=!0)};m.prototype.uA=function(){return this.kb};m.prototype.KRa=function(g){this.Pa!=g&&(this.Pa=g,this.Tu=!0)};m.prototype.fg=function(){return this.Pa}; m.prototype.eRa=function(g){this.Ha!=g&&(this.Ha=g,this.Tu=!0)};m.prototype.wg=function(){return this.Ha};m.prototype.project=function(g){if(g.z!=0){this.eHa();var k=1/g.z,e=this.zja*k;g.x=this.Pa*.5-g.x*e;g.y=this.Ha*.5-g.y*e;g.z=k}};m.prototype.unproject=function(g){this.eHa();return new h(new n(0,0,0),new n(this.Pa*.5-g.x,this.Ha*.5-g.y,this.zja))};m.prototype.eHa=function(){this.Tu&&(this.zja=this.Pa*.5/Math.tan(this.kb*.5),this.Tu=!1)};return m}); define("tdv/player/view/panorama/renderer/RendererState",["require","exports"],function(){return function(){function a(){this.Mg=this.pitch=this.Xa=0;this.kj=this.Wd=90;this.Rj=this.Sj=this.height=this.width=100;this.tl=1;this.FJ=this.Va=!1;this.Ik=0;this.eoa=this.tW=this.Ipa=!1;this.CJ=this.wY=!0;this.camera=this.QW=this.PW=this.sh=null;this.Gn=this.enabled=!1;this.zf=0;this.vZ=void 0}a.prototype.clone=function(){var m=new a;m.Xa=this.Xa;m.pitch=this.pitch;m.Mg=this.Mg;m.Wd=this.Wd;m.kj=this.kj; m.width=this.width;m.height=this.height;m.Sj=this.Sj;m.Rj=this.Rj;m.tl=this.tl;m.Va=this.Va;m.FJ=this.FJ;m.Ik=this.Ik;m.Ipa=this.Ipa;m.eoa=this.eoa;m.tW=this.tW;m.wY=this.wY;m.CJ=this.CJ;m.sh=this.sh;m.PW=this.PW;m.QW=this.QW;m.camera=this.camera;m.enabled=this.enabled;m.Gn=this.Gn;m.zf=this.zf;m.vZ=this.vZ;return m};return a}()}); define("tdv/player/view/panorama/renderer/3d/util/StereographicEffect",["require","tdv/constants/RenderOrder","tdv/player/view/panorama/renderer/constants/EyeLayer","tdv/player/view/panorama/renderer/3d/util/Util"],function(a){var m=a("tdv/constants/RenderOrder"),h=a("tdv/player/view/panorama/renderer/constants/EyeLayer"),n=a("tdv/player/view/panorama/renderer/3d/util/Util");return function(g){var k=1,e=new THREE.WebGLCubeRenderTarget(1024),b=new THREE.CubeCamera(.1,1E4,e);b.layers.enable(h.nx);b.layers.enable(h.fb); e=new THREE.ShaderMaterial;e.uniforms={tCube:{value:b.renderTarget.texture},tFlip:{value:1},opacity:{value:1}};e.fragmentShader="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#include \n#include \n}";e.vertexShader="varying vec3 vWorldPosition;\n#include \nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}\n"; e.side=THREE.BackSide;e.depthWrite=!1;e.transparent=!0;e.depthTest=!1;e.needsUpdate=!0;var c=new THREE.Mesh(new THREE.SphereGeometry(5,64,64),e);c.overdraw=!1;c.matrixAutoUpdate=!1;c.renderOrder=m.DVa;var d=new THREE.Matrix4;this.rK=function(l){k=l};this.start=function(l){l.add(c);l.add(b);l.traverse(function(p){p.layers.test(b.layers)&&(p.userData.spa=p.layers.mask,p.layers.mask=b.layers.mask)});b.visible=!0;c.visible=!0;g.setClearColor(16777215,1)};this.stop=function(l){g.setClearColor(0,0);l.traverse(function(p){p.userData.spa!== void 0&&(p.layers.mask=p.userData.spa,delete p.userData.spa)});b.visible=!1;c.visible=!1;l.remove(c);l.remove(b)};var f=0;this.render=function(l,p){k>0&&(c.matrix.copy(p.matrixWorld),c.matrix.multiply(d.makeTranslation(0,0,-k*5)),c.matrixWorldNeedsUpdate=!0,f++,n.ihb()&&f%10!=0||(n.ikb(),c.visible=!1,b.update(g,l),c.visible=!0))}}}); define("tdv/player/view/panorama/renderer/3d/Renderer","require tdv/player/view/util/geo/Fov tdv/player/view/util/geo/Quaternion tdv/player/view/panorama/renderer/constants/EyeLayer tdv/player/view/panorama/renderer/3d/util/StereographicEffect tdv/player/view/panorama/renderer/3d/util/GeometryUtil tdv/player/view/panorama/renderer/3d/util/SceneUtil tdv/player/view/panorama/renderer/3d/util/Util tdv/player/view/util/XR".split(" "),function(a){function m(l){this.P=l;this.Ac=new THREE.PerspectiveCamera(90, 16/9,.1,2*e.th);this.Ac.layers.enable(g.fb);this.Vu=new THREE.PerspectiveCamera;this.Bb=new THREE.Scene;this.nxa=new THREE.Scene;this.oxa=new THREE.Scene;this.Bb.add(this.Ac);this.lq=this.Uka=this.E0=this.D0=this.j=null;this.MAa=this.gea=!1}var h=a("tdv/player/view/util/geo/Fov"),n=a("tdv/player/view/util/geo/Quaternion"),g=a("tdv/player/view/panorama/renderer/constants/EyeLayer"),k=a("tdv/player/view/panorama/renderer/3d/util/StereographicEffect"),e=a("tdv/player/view/panorama/renderer/3d/util/GeometryUtil"), b=a("tdv/player/view/panorama/renderer/3d/util/SceneUtil"),c=a("tdv/player/view/panorama/renderer/3d/util/Util"),d=a("tdv/player/view/util/XR");m.prototype.Keb=function(){this.kZa()};m.prototype.Jn=function(){return this.j};m.prototype.Sf=function(){return this.Bb};m.prototype.getCamera=function(){return this.Vu};m.prototype.Bw=function(){return d.isPresenting&&d.Ag==this.j&&d.XA==this.Bb};m.prototype.Web=function(){return this.Vu.isArrayCamera&&this.Vu.cameras.length>0?Math.atan2(1,this.Vu.cameras[0].projectionMatrix.elements[5])* 2*f:this.Vu.fov};m.prototype.getPixelRatio=function(){return this.j?this.j.getPixelRatio():c.getPixelRatio()};m.prototype.Zeb=function(){return d.isPresenting&&d.framebufferWidth?d.framebufferWidth*.5:this.j?this.j.domElement.width:1024};m.prototype.Yeb=function(){return d.isPresenting&&d.framebufferHeight?d.framebufferHeight:this.j?this.j.domElement.height:1024};m.prototype.If=function(){return this.j.domElement};m.prototype.update=function(l){this.Oab(l);this.nab(l);this.ct(l)};m.prototype.hna= function(l){this.j.$q=!0;l=c.Qdb(l);var p=new THREE.CubeCamera(this.Vu.near,this.Vu.far,l);this.Bb.add(p);p.position.setFromMatrixPosition(this.Vu.matrixWorld);p.update(this.j,this.Bb);this.Bb.remove(p);this.j.$q=!1;return l.texture};m.prototype.render=function(){this.x4()};m.prototype.Oab=function(l){l.enabled&&(this.j||this.s9a(l),l.Va&&d.getType()==d.Lx.lo&&(this.MAa=!0));this.PFa==l.width&&this.OFa==l.height||this.j.setSize(this.PFa=l.width,this.OFa=l.height);if(this.gea=l.enabled&&!l.Va)this.D0.setSize(l.width, l.height),this.E0.setSize(l.width,l.height)};m.prototype.s9a=function(l){!this.j&&l.enabled&&(this.P.Rc().v6(),this.D0=this.P.Rc().Ueb(),this.j=this.P.Rc().Jn(),l=this.j.getSize(new THREE.Vector2),this.PFa=l.width,this.OFa=l.height,this.E0=this.P.Rc().Veb(),this.Uka=new k(this.j,this.Ac))};m.prototype.kZa=function(){this.j&&(this.D0=this.j=this.E0=this.lq=null,this.P.Rc().Y9())};m.prototype.ct=function(l){l.Va?this.Vu=this.j.xr.getCamera():(this.Ac.quaternion.copy(n.gX(l.Xa,l.pitch,l.Mg)),this.Ac.fov= h.um(l.Wd,l.width,l.height),this.Ac.aspect=l.width/l.height,this.Ac.updateProjectionMatrix(),this.Ac.updateMatrixWorld(),this.Vu=this.Ac);b.hkb(this.Bb,this.Bw()?this.j.xr.getCamera().cameras:[this.Ac]);this.Bb.iqb===!0&&this.Bb.updateMatrixWorld()};m.prototype.nab=function(l){var p=!l.Va&&l.Ik>0?this.Uka:null;this.lq!=p&&(this.lq&&this.lq.stop(this.Bb),(this.lq=p)&&this.lq.start(this.Bb));this.lq&&this.lq==this.Uka&&this.lq.rK(l.Ik)};m.prototype.x4=function(){this.j.xr.isPresenting||this.j.clear(); this.MAa&&this.j.resetState();this.lq&&this.lq.render(this.Bb,this.Ac);this.j.render(this.Bb,this.Ac);this.gea&&(this.D0.render(this.nxa,this.Ac),this.E0.render(this.oxa,this.Ac))};var f=180/Math.PI;return m}); define("tdv/player/view/panorama/renderer/object/ComposedWebGLObject","require tdv/utils tdv/player/view/panorama/renderer/object/Base tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource tdv/player/view/panorama/renderer/3d/util/MaterialUtil tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/player/view/panorama/renderer/3d/util/SceneUtil tdv/player/view/panorama/renderer/TextureLoader tdv/player/view/panorama/renderer/OcclusionCuller".split(" "),function(a){var m=a("tdv/utils"), h=a("tdv/player/view/panorama/renderer/object/Base"),n=a("tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource"),g=a("tdv/player/view/panorama/renderer/3d/util/MaterialUtil"),k=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),e=a("tdv/player/view/panorama/renderer/3d/util/SceneUtil"),b=a("tdv/player/view/panorama/renderer/TextureLoader"),c=a("tdv/player/view/panorama/renderer/OcclusionCuller");a=m.extend(h,function(){h.call(this);this.set("tag","ComposedWebGLObject"); this.set("webglScene",null);this.set("meshGroup",null);this.set("camera",null);this.set("textureSource",null);this.set("materialConfig",this.Cha=new g.Rp);this.ly&&this.ly();this.IG&&this.IG();this.pC&&this.pC();this.jq&&this.jq()});a.prototype.hc=function(){h.prototype.hc.call(this);this.Aq&&this.Aq();this.fT&&this.fT();this.lN&&this.lN()};a.prototype.mc=function(){this.KM&&this.KM();this.nN&&this.nN();this.Cq&&this.Cq();k.dispose(this.get("meshGroup"));k.Yw(this.get("meshGroup"),null);this.set("meshGroup", null);h.prototype.mc.call(this)};a.prototype.za=function(d){this.cg&&this.cg(d);h.prototype.za.call(this,d);this.set("camera",e.getCamera(d.sh));this.set("webglScene",d.sh);this.get("meshGroup")||(this.set("meshGroup",k.IJa(this.iq())),this.get("meshGroup").userData.Tib=this);this.W("webglScene","meshGroup")&&k.Yw(this.get("meshGroup"),this.get("webglScene"));this.Bn();this.Qj&&this.Qj(d);this.$ab();this.Wz&&this.Wz(d);this.Sq&&this.Sq(d);this.KI();this.W("loadingActive","meshGroup")&&b.Ra(this.get("meshGroup"), this.get("loadingActive"));this.W("blendingActive","meshGroup")&&c.PQa(this.get("meshGroup"),this.get("blendingActive"))};a.prototype.Bn=function(){this.W("composedAlpha","meshGroup")&&this.aC()};a.prototype.aC=function(){k.nf(this.get("meshGroup"),this.get("composedAlpha"))};a.prototype.$ab=function(){if(this.W("textureSource")||this.W("materialConfig")&&!this.Cha.isEqual(this.get("materialConfig"))){var d=this.mM();d&&(k.Ykb(d,this.FR()),this.aC())}};a.prototype.KI=function(){if(this.W("index", "meshGroup")){var d=this.get("meshGroup");d&&d.children.forEach(function(f,l,p){k.L$(f,this.get("index")+l/p.length)}.bind(this))}};a.prototype.FR=function(){var d=this.get("textureSource")||new n;this.Cha=this.get("materialConfig");var f=g.qt(d.texture(),this.Cha);b.dQ(f,d);return[f]};a.prototype.fxa=function(){var d=new n,f=g.qt(d.texture());b.dQ(f,d);return[f]};a.prototype.Fy=function(d){return k.tfb(this.get("meshGroup"),d)};return a}); define("tdv/player/view/panorama/renderer/object/geometry/RectangleGeometryMixin","require tdv/constants/Priority tdv/player/view/panorama/renderer/3d/util/GeometryUtil tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/view/util/Scale tdv/player/view/panorama/renderer/TextureLoader tdv/player/view/util/geo/Fov tdv/player/view/util/geo/Quaternion tdv/view/constants/Alignment".split(" "),function(a){var m=a("tdv/constants/Priority"),h=a("tdv/player/view/panorama/renderer/3d/util/GeometryUtil"), n=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),g=a("tdv/view/util/Scale"),k=a("tdv/player/view/panorama/renderer/TextureLoader"),e=a("tdv/player/view/util/geo/Fov"),b=a("tdv/player/view/util/geo/Quaternion"),c=a("tdv/view/constants/Alignment"),d=new THREE.Matrix4,f=Math.PI/180;return{ly:function(){this.set("distance",void 0);this.set("rotationX",0);this.set("rotationY",0);this.set("rotationZ",0);this.set("yaw",0);this.set("pitch",0);this.set("roll",0);this.set("scale",1);this.set("contentWidth", 100);this.set("contentHeight",100);this.set("hfov",void 0);this.set("vfov",null);this.set("scaleMode",null);this.set("horizontalAlign",null);this.set("verticalAlign",null);this.set("attachToCamera",!1);this.Lh=this.oC();this.wi=new THREE.Matrix4;this.ke=new THREE.Matrix4;this.Bq=new THREE.Matrix4;this.Ho=new THREE.Matrix4;this.qk=new THREE.Matrix4;this.lda=new THREE.Matrix4;this.Vva=new THREE.Quaternion;this.$wa=new THREE.Matrix4;this.nR=new THREE.Matrix4;this.AR=new THREE.Matrix4;this.gC=new THREE.Matrix4; this.Si=new THREE.Matrix4},Wz:function(l){this.et(l);this.ima()},ima:function(){if(this.W("hfov","vfov","contentWidth","contentHeight","panoramaPixelsPerDegree","scaleMode","horizontalAlign","verticalAlign")){var l=g.Boa(this.get("hfov"),this.get("vfov"),this.get("contentWidth"),this.get("contentHeight"),this.get("scaleMode"),this.get("panoramaPixelsPerDegree"),this.get("horizontalAlign"),this.get("verticalAlign"));l=h.wRa(this.Lh[1],l.AZ,l.KZ,l.nB,l.qB);this.Lh[1]!=l&&(this.Lh[1]=l,(l=this.mM())&& n.hra(l,this.Lh[1]))}},mM:function(){var l=this.get("meshGroup");return l?n.rm(l)[1]:null},iq:function(){return[0,1].map(function(l){var p=l==0?this.fxa():this.FR();l=n.create(this.Lh[l],p);k.fB(l,k.Mr);k.gB(l,k.zu);k.nK(l,m.QQ);k.mZ(l,1);return l}.bind(this))},oC:function(){return[h.OO(),h.OO()]},et:function(l){var p=!1;this.W("composedTranslationX","composedTranslationY","composedTranslationZ")&&(this.wi.makeTranslation(-this.get("composedTranslationX")*.5*h.th,this.get("composedTranslationY")* .5*h.th,this.get("composedTranslationZ")*.5*h.th),p=!0);this.W("composedDeltaYaw","composedDeltaPitch","composedDeltaRoll")&&(this.ke.makeRotationY(-l.Xa*f),this.ke.multiply(d.makeRotationX(-this.get("composedDeltaPitch")*f)),this.ke.multiply(d.makeRotationY(this.get("composedDeltaYaw")*f)),this.ke.multiply(d.makeRotationY(l.Xa*f)),p=!0);this.W("yaw","pitch")&&(this.Bq.makeRotationY(-this.get("yaw")*f),this.Bq.multiply(d.makeRotationX(this.get("pitch")*f)),p=!0);if(this.W("distance","flipHorizontally", "scale","hfov","vfov","contentWidth","contentHeight","scaleMode","horizontalAlign","verticalAlign","composedTranslationX","composedTranslationY","composedTranslationZ")){var q=this.Ia.get("composedTranslationX")==0&&this.Ia.get("composedTranslationY")==0&&this.Ia.get("composedTranslationZ")==0&&this.get("distance")!==void 0?h.pw(this.get("distance")):h.Ct();this.Ho.makeTranslation(0,0,-q);var r=this.get("contentWidth"),t=this.get("contentHeight"),u=this.get("hfov"),v=this.get("vfov")||e.um(u,r,t), w=(this.get("flipHorizontally")?-1:1)*this.get("scale"),y=this.get("scale"),x=this.get("scaleMode"),z=this.get("panoramaPixelsPerDegree");p=this.get("horizontalAlign")||c.$e;var A=this.get("verticalAlign")||c.$d;r=g.Boa(u,v,r,t,x,z,p,A);u=w*h.Coa(q,u);v=y*h.Doa(q,v);this.nR.makeScale(u,v,1);w*=h.Coa(q,r.Wd);q=y*h.Doa(q,r.Mk);this.AR.makeScale(w,q,1);this.$wa.makeTranslation(p==c.fb?-(u-w)*.5:p==c.Db?(u-w)*.5:0,A==c.Tc?(v-q)*.5:A==c.Gc?-(v-q)*.5:0,0);p=!0}this.W("rotationX","rotationY","rotationZ", "roll")&&(this.qk.makeRotationZ(this.get("roll")*f),this.qk.multiply(d.makeRotationY(this.get("rotationY")*f)),this.qk.multiply(d.makeRotationX(this.get("rotationX")*f)),this.qk.multiply(d.makeRotationZ(this.get("rotationZ")*f)),p=!0);this.set("cameraYaw",l.Xa);this.set("cameraPitch",l.pitch);this.set("cameraRoll",l.Mg);this.get("attachToCamera")&&this.W("cameraYaw","cameraPitch","cameraRoll")?(this.Vva.copy(b.gX(l.Xa,l.pitch,l.Mg)),this.lda.makeRotationFromQuaternion(this.Vva),p=!0):this.W("attachToCamera")&& (this.lda.identity(),p=!0);if(p||this.W("meshGroup"))this.Si.copy(this.wi),this.Si.multiply(this.ke),this.Si.multiply(this.lda),this.Si.multiply(this.Bq),this.Si.multiply(this.Ho),this.Si.multiply(this.qk),this.gC.copy(this.Si),this.gC.multiply(this.nR),this.Si.multiply(this.$wa),this.Si.multiply(this.AR),l=n.rm(this.get("meshGroup")),n.nt(l[0],this.gC),n.nt(l[1],this.Si)}}}); define("tdv/player/view/panorama/renderer/object/Plane",["require","tdv/utils","tdv/player/view/panorama/renderer/object/ComposedWebGLObject","tdv/player/view/panorama/renderer/object/geometry/RectangleGeometryMixin"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/renderer/object/ComposedWebGLObject");a=a("tdv/player/view/panorama/renderer/object/geometry/RectangleGeometryMixin");return m.extend(h,a,function(){h.call(this);this.set("tag","Plane")})}); define("tdv/player/view/panorama/renderer/object/Cap","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/parser/ClassInfo tdv/player/view/panorama/renderer/object/Plane tdv/player/view/panorama/renderer/object/texturesource/ImageTextureSource tdv/player/view/panorama/renderer/object/util/EventAggregator tdv/player/view/panorama/renderer/object/util/LevelUtil tdv/player/view/util/ColorPicker tdv/view/events/ProgressEvent".split(" "),function(a){function m(q,r,t,u,v,w){for(q= (q-r)/w;t+180u;)u+=360;t=(t-u)/w;return t=q<-.1||q>.1?h(v,t,Math.abs(1/(1500*q))):h(v,t,.08)}function h(q,r,t){q=(r-q)*(1-t);Math.abs(q)<1E-5&&(q=0);return r-q}var n=a("tdv/utils"),g=a("tdv/binding/BindingsHandler"),k=a("tdv/constants/EventName"),e=a("tdv/player/parser/ClassInfo"),b=a("tdv/player/view/panorama/renderer/object/Plane"),c=a("tdv/player/view/panorama/renderer/object/texturesource/ImageTextureSource"),d=a("tdv/player/view/panorama/renderer/object/util/EventAggregator"), f=a("tdv/player/view/panorama/renderer/object/util/LevelUtil"),l=a("tdv/player/view/util/ColorPicker"),p=a("tdv/view/events/ProgressEvent");a=n.extend(b,function(q){b.call(this);this.C=q;this.Rl.push(this.C);this.Rg=this.Rg.bind(this);this.Qf=e.Oa("CeilingCapPanoramaOverlay",this.C)?"ceiling":"tripod";this.set("tag","Cap");this.set("pitch",this.Qf=="tripod"?-90:90);this.Cd=!1;this.eI=this.xja=this.yv=void 0;this.w6a=this.Qf=="tripod"?1:-1;this.Hl=this.am=this.Nh=null});a.prototype.hc=function(){b.prototype.hc.call(this); this.Nh=(new d(k.ia)).jo(this.xs.bind(this));this.am=(new d(k.yc)).kr(this.MH.bind(this));g.ba(this.C,"angle distance hfov image.levels.url inertia rotate".split(" "),this.Rg,!0)};a.prototype.mc=function(){this.Hl&&this.Hl.dispose();this.Hl=null;this.Nh.dispose();this.am.dispose();g.da(this.C,"angle distance hfov image.levels.url inertia rotate".split(" "),this.Rg);b.prototype.mc.call(this)};a.prototype.Rg=function(){this.set("angle",this.C.get("angle"));this.set("distance",this.C.get("distance")); this.set("hfov",this.C.get("hfov"));var q=f.$eb(this.C,this.get("panoramaPixelsPerDegree"));this.set("imageURL",q&&q.get("url"));this.set("imageWidth",q&&q.get("width"));this.set("imageHeight",q&&q.get("height"));this.set("inertia",this.C.get("inertia"));this.set("rotate",this.C.get("rotate"))};a.prototype.iq=function(){var q=b.prototype.iq.call(this);this.Nh.hg(q);this.am.hg(q);return q};a.prototype.za=function(q){this.Pla();this.bO(q);b.prototype.za.call(this,q)};a.prototype.Pla=function(){this.W("imageURL")&& this.get("imageURL")&&(this.set("textureSource",new c(this.get("imageURL"))),this.set("contentWidth",this.get("imageWidth")),this.set("contentHeight",this.get("imageHeight")))};a.prototype.xs=function(){this.o(k.vd);this.o(k.ia)};a.prototype.MH=function(q,r){var t=0;r.kw(function(u){(u=r.Mn(u))&&(t+=u.percent)});this.o(new p(k.yc,t/r.zd.length))};a.prototype.bO=function(q){this.set("rendererYaw",q.Xa);if(this.W("angle","inertia","rotate")||(this.get("rotate")||this.get("inertia"))&&this.W("rendererYaw")){var r= this.get("angle"),t=this.get("rotate"),u=this.get("inertia"),v=this.w6a*q.Xa;t&&(r+=v);var w=0,y=r-v;this.yv!==void 0&&(u&&(t?(w=m(v,this.eI,r,this.yv,this.xja,q.zf),r=this.yv+w*q.zf):(w=m(v,this.eI,y,this.CDa,this.xja,q.zf),y=this.CDa+w*q.zf,r=y+v)),this.yv!=r&&this.Na());this.CDa=y;this.yv=r;this.xja=w;this.eI=v;this.set("rotationZ",-r)}};a.prototype.$n=function(q){if(q.$f==k.Im){var r=!q.om()&&this.Zs(q);r&&(q.LD(this.C),this.C.get("useHandCursor")&&q.TI(this.C),q.lm(this.get("distance")));this.Cd!= r&&(this.Cd=r,this.C.o(this.Cd?k.uc:k.Eb),q.Aw()&&this.C.o(this.Cd?k.RF:k.Or))}else q.$f==k.Xf&&!q.om()&&this.Zs(q)&&(this.C.fP(k.ma,!0).length>1&&q.cu(this.C),q.lm(this.get("distance")),this.C.o(k.ma))};a.prototype.Zs=function(q){return this.Fy(q.Os).some(function(r){var t=this.s1a();return t&&t.ax(r.x,r.y)}.bind(this))};a.prototype.s1a=function(){if(this.Hl)return this.Hl;var q=this.get("textureSource");if(q=q&&q.xg())this.Hl=new l(q);return this.Hl};return a}); define("tdv/player/view/panorama/renderer/object/ParticleCylinders","require tdv/utils tdv/constants/EventName tdv/constants/PlaybackState tdv/player/view/panorama/renderer/object/Base tdv/player/view/util/XR".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState"),g=a("tdv/player/view/panorama/renderer/object/Base"),k=a("tdv/player/view/util/XR");a=m.extend(g,function(){g.call(this);this.wi=new THREE.Matrix4;this.uHa=!1;this.Dj=new THREE.Matrix4; this.eh=null;this.tn=new THREE.Matrix4;this.OU=this.AU=0;this.fR=.75;this.NR=.5;this.jv=4;this.Iha=0;this.lv=-2;this.ts=3;this.H2=0;this.UG=7;this.tU=this.iD=1;this.kT=.15;this.VG=this.XH=0;this.L1=this.j4=n.ca;this.v5=this.o5=1E3});var e=Math.PI/180,b=new THREE.Matrix4;a.prototype.Bo=function(){};a.prototype.hc=function(){g.prototype.hc.call(this);this.o(h.vd);this.o(h.ia)};a.prototype.mc=function(){this.Jda()};a.prototype.Tl=function(){this.Bo();this.SU()};a.prototype.Ul=function(){this.Na()};a.prototype.SU= function(){this.eh&&(this.Jda(),this.hxa())};a.prototype.A0=function(){};a.prototype.hxa=function(){this.l7a();this.eh=new THREE.Group;for(var c=this.L1==n.PLAYING,d=this.XH,f=this.VG;f+d>0;){var l=Math.random()*(f+d)<=f;l?f--:d--;var p=this.A0();p.matrixAutoUpdate=!1;p.overdraw=!1;p.material.opacity=0;p.userData={Aeb:l,TP:new THREE.Matrix4,iIa:new THREE.Matrix4,Rqa:new THREE.Matrix4,y:void 0,ZTa:void 0,HE:c};this.eh.add(p);c&&this.Zja(p,this.lv,this.ts);this.j7a(p)}this.AU=c?this.eh.children.length: 0;this.Cma.add(this.eh);this.Uva()};a.prototype.Jda=function(){if(this.eh){this.eh.parent&&this.eh.parent.remove(this.eh);for(var c=0,d=this.eh&&this.eh.children.length;c80&&f<100);var l=Math.random()*360,p=Math.sin(l*e)*Math.sin(f*e)*d,q=-Math.cos(f*e)*d;d*=Math.cos(l*e)*Math.sin(f*e);c.userData.ZTa=q*this.iD;c.userData.iIa.makeTranslation(p,q,d);c.userData.Rqa.makeRotationY(l* e);c.userData.Rqa.multiply(b.makeRotationX(-f*e))};a.prototype.za=function(c){g.prototype.za.call(this,c);this.gab(c);this.Cma=c.sh;this.Cma!=(this.eh&&this.eh.parent)?(this.Jda(),this.Cma&&this.hxa()):this.W("index")&&this.Uva();this.Hab(c)};a.prototype.gab=function(c){c=c.Va&&k.getType()==k.Lx.lo;c!=this.Dza&&(this.Dza=c)&&setTimeout(function(){this.eh&&this.SU()}.bind(this),0)};a.prototype.Hab=function(c){if(this.eh){this.W("composedTranslationX","composedTranslationY","composedTranslationZ")&& (this.uHa=this.get("composedTranslationX")!=0||this.get("composedTranslationY")!=0||this.get("composedTranslationZ")!=0,this.wi.makeTranslation(-this.get("composedTranslationX")*this.jv,this.get("composedTranslationY")*this.jv,this.get("composedTranslationZ")*this.jv));var d=this.j4==n.PLAYING,f=this.eh.children,l=f.length,p=d?Math.round(l*c.zf/this.o5):0;if(this.AU+p>0){this.OU=d?0:Math.min(this.AU,this.OU+Math.round(l*c.zf/this.v5));c=this.get("composedAlpha");for(d=0;d 0)p--,q.userData.HE=!0,this.AU++,this.Zja(q,this.ts,this.ts+(this.ts-this.lv));else continue;q.userData.TP.multiply(q.userData.iIa);q.userData.y+=q.userData.ZTa;if(q.userData.ythis.ts){if(this.OU>0){this.OU--;q.userData.HE=!1;this.AU--;q.material.opacity=0;continue}var r=q.userData.ythis.ts-this.fR&&(r*=(this.ts-q.userData.y)/this.fR);q.material.opacity=r* this.tU;this.uHa?(q.matrix.copy(this.wi),q.matrix.multiply(q.userData.TP)):q.matrix.copy(q.userData.TP);q.matrix.multiply(q.userData.Rqa);q.matrixWorldNeedsUpdate=!0}this.Na()}}};a.prototype.Uva=function(){if(this.eh)for(var c=this.get("index"),d=0;d0);this.W("textureSource","isVideoTexture")&&r&&r.ZY(this.get("isVideoTexture"))},FD:function(){if(this.W("blending","chromaColor","chromaThreshold","chromaSmoothing","premultipliedAlpha","side")){var q=new e.Rp;q.QD=this.get("blending");q.cw=this.get("chromaColor");q.JW=this.get("chromaThreshold");q.IW=this.get("chromaSmoothing"); q.premultipliedAlpha=this.get("premultipliedAlpha");q.side=this.get("side");this.set("materialConfig",q)}},Nab:function(){if(this.W("meshGroup","projected","visible")){var q=this.get("projected")&&this.get("visible")?g.cca:g.QQ;b.rm(this.get("meshGroup")).forEach(function(r){f.nK(r,q)}.bind(this))}},Bn:function(){this.W("visible","composedAlpha","image","state","visibleOnStop")&&this.set("inView",this.get("visible")&&this.get("composedAlpha")>0&&(this.get("visibleOnStop")||this.get("state")!=n.ca)); this.W("composedAlpha","meshGroup","inView")&&b.nf(this.get("meshGroup"),this.get("inView")?this.get("composedAlpha"):0);this.fq&&this.fq.ig(this.get("inView"))},i3:function(){this.lb&&k.Oa("AnimatedImageResource",this.lb)?this.set("visibleOnStop",this.lb.get("visibleOnStop")):this.set("visibleOnStop",!0)},m3:function(){this.set("levelURL",this.hb.get("url"))},KM:function(){this.Kwa()},Kwa:function(){this.fq&&(this.fq.clear(),this.fq=null);this.Hc&&(this.Hc.h(h.V,this.zS,this,!0),this.Hc.h(h.Pd,this.Aza, this,!0),this.Hc.clear(),this.Hc=null);this.Hl&&(this.Hl.dispose(),this.Hl=null);this.get("textureSource")&&(this.Qja(),this.set("textureSource",null));this.lb&&(this.S6a(),this.lb=null);this.hb&&(this.V6a(),this.hb=null)},eXa:function(){m.ba(this.lb,["visibleOnStop"],this.i3,!0)},S6a:function(){m.da(this.lb,["visibleOnStop"],this.i3)},hXa:function(){m.ba(this.hb,["url"],this.m3,!0)},V6a:function(){m.da(this.hb,["url"],this.m3)},Bza:function(){this.Qja();var q=this.get("image");if(k.Oa("AnimatedImageResource", q)){this.Hc=new p(this.get("textureSource").xg(),q.get("rowCount",1),q.get("colCount",1),q.get("frameDuration"),q.get("frameCount",q.get("rowCount",1)*q.get("colCount",1)),q.get("repeat"),q.get("finalFrame")=="first");var r=this.Hc.If();this.Hc.bind(h.Pd,this.Aza,this,!0);this.Hc.bind(h.V,this.zS,this,!0);this.fq=new c(q,this.Hc);this.set("visibleOnStop",q.get("visibleOnStop"));this.set("state",this.Hc.getState())}else r=this.get("textureSource").xg(),this.Hl=new l(r),this.set("visibleOnStop",!0), this.set("state",null);this.Bn();this.set("contentWidth",r.width);this.set("contentHeight",r.height);this.get("textureSource").ao(r);this.o(h.vd);this.o(h.ia)},Cza:function(){this.Qja();this.o(h.vd);this.o(h.ia)},Aza:function(){this.set("state",this.Hc.getState())},zS:function(q){var r=this.get("composedTranslationX")!=0||this.get("composedTranslationY")!=0||this.get("composedTranslationZ")!=0,t=!!this.get("blendingActive");q=q.data.frameIndex;var u=this.dAa>q;this.dAa=q;this.get("textureSource").update(!u|| r||t);this.Na()},tXa:function(){var q=this.get("textureSource");q.bind(h.ia,this.Bza,this,!0);q.bind(h.$c,this.Cza,this,!0)},Qja:function(){var q=this.get("textureSource");q.h(h.ia,this.Bza,this,!0);q.h(h.$c,this.Cza,this,!0)},Rfa:function(q){return this.Hl&&this.Hl.source==q.source?this.Hl.info(q.x,q.y):l.info(q.source,q.x,q.y)}}}); define("tdv/player/view/panorama/renderer/object/pointer/HotspotPointerMixin","require tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/parser/ClassInfo tdv/player/view/util/Color tdv/view/constants/Cursor tdv/util/Map".split(" "),function(a){function m(d){d=d.get("mapColor");return d=="image"||d=="transparent"||d=="any"}function h(d){d=d.get("mapColor");return d!="image"&&d!="transparent"&&d!="any"}var n=a("tdv/binding/BindingsHandler"),g=a("tdv/constants/EventName"),k=a("tdv/player/parser/ClassInfo"), e=a("tdv/player/view/util/Color"),b=a("tdv/view/constants/Cursor"),c=new (a("tdv/util/Map"));return{pC:function(){this.set("beamEnabled",!1);this.h3=this.h3.bind(this);this.A1=null;this.xL={};this.xj=[];this.Nu=[];this.Ly=null},Fkb:function(d){this.Ly!=d&&(this.Jja(),this.Ly=d,this.zva())},Sq:function(d){this.pD=d.Xa;this.oD=d.pitch},Jja:function(){this.Ly&&n.da(this.Ly,["areas"],this.h3)},zva:function(){this.Ly&&n.ba(this.Ly,["areas"],this.h3,!0)},lN:function(){this.Jja();this.zva()},nN:function(){this.EEa([]); this.Jja()},h3:function(){var d=this.Ly.get("areas",[]);k.Oa("HotspotPanoramaOverlayImage",this.C)||k.Oa("FlatHotspotPanoramaOverlayImage",this.C)||k.Oa("QuadHotspotPanoramaOverlayImage",this.C)?this.A1=d.filter(m):this.A1=d.filter(h);this.A1.forEach(function(f){c.set(f,0)})},$n:function(d){if(d.$f==g.Im){var f=this.Cfa(d);if(f.length>0){d.LD(f);var l=this.b1a(f),p;for(p in l)d.cIa(l[p],p);d.lm(this.get("distance"));(l=this.jc(f,d.JJ()))&&d.x6(l,this.BD(d.JJ()))}f=this.c1a(d,f);this.EEa(f,d.Aw(), d.JJ())}else if(d.$f==g.Xf){if(f=this.Cfa(d),f.length>0){var q=!1;f.forEach(function(r){r.o(g.ma);!q&&r.fP(g.ma,!0).length>1&&(q=!0)});d.lm(this.get("distance"));q&&d.cu(f)}}else d.$f==g.Cu?(f=this.Cfa(d),f.length>0&&(q=!1,f.forEach(function(r){var t={};d.Aw()&&(t=d.Mw().xLa());r.o(g.Sa,t);!q&&r.fP(g.Sa,!0).length>1&&(q=!0)}),this.Nu=f,d.lm(this.get("distance")),q&&d.cu(f))):d.$f==g.TB&&this.Nu.length&&(this.Nu.forEach(function(r){var t={};d.Aw()&&(t=d.Mw().xLa());r.o(g.$a,t)}),this.Nu=[])},c1a:function(d, f){if(!d.gpa())return this.xL={},f;d=d.Rza?"main":"secondary";this.xL[d]=f;f=[];for(d in this.xL)for(var l=0;l=0&&l=="";p--){var q=d[p];if(!f||q.get("displayTooltipInTouchScreens")&& this.La.P.get("displayTooltipInTouchScreens")!==!1)l=q.get("toolTip","")}return l},BD:function(d){if(d){d=this.get("yaw")-this.pD;var f=this.get("pitch")-this.oD;return Math.sqrt(d*d+f*f)}return 0},b1a:function(d){var f={};this.Ly.get("useHandCursor")===!0?f[b.qf]=d:this.Ly.get("useHandCursor")!==!1&&d.forEach(function(l){var p;(p=l.get("useHandCursor")?b.qf:l.get("cursor"))&&(f[p]?f[p].push(l):f[p]=[l])});return f}}}); define("tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController",["require","tdv/player/view/util/Device","tdv/player/script/PanoramaPoint"],function(a){function m(){this.cj=void 0;this.vM=this.$H=0;this.Rd=!0;this.q0=this.jla=this.yfa=void 0;this.Ld=!1}var h=a("tdv/player/view/util/Device"),n=a("tdv/player/script/PanoramaPoint"),g=Math.PI/180,k=h.Yb()==h.sj?[-.5,0]:[0,0];m.prototype.YE=function(e){this.cj!=e&&(this.cj=e,this.Rd=!0)};m.prototype.WE=function(e){if(ethis.$H+k[1])this.$H=e,this.Rd=!0};m.prototype.get=function(e,b){b!==void 0||(b=!0);this.Rd&&(this.za(),this.Rd=!1);var c=this.yfa.get(e)||0;e=(this.jla.get(e)||0)-c;b&&(e>180?e-=360:e<-180&&(e+=360));return c+e*this.q0};m.prototype.Aoa=function(){this.Rd&&(this.za(),this.Rd=!1);for(var e=this.yfa.get("vertices"),b=this.jla.get("vertices"),c=[],d=0;d180?l-=360:l<-180&&(l+=360);var p=e[d].get("pitch")||0,q=(b[d].get("pitch")||0)- p;c.push(new n(f+l*this.q0,p+q*this.q0))}e=this.$S&&this.$S.length==c.length;for(d=0;dthis.$H){if(e==0){b=e;break}--e}else{if(e==c){b=e;break}e+=1}}this.yfa=this.cj[e];this.jla=this.cj[b];e=f-d;this.q0=e>0?(this.$H-d)/e:0};m.prototype.nza=function(e){return this.cj[e].get("timestamp")};return m}); define("tdv/player/view/panorama/renderer/object/position/FlatHotspotImagePositionMixin",["require","tdv/binding/BindingsHandler","tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController"],function(a){var m=a("tdv/binding/BindingsHandler"),h=a("tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController");return{jq:function(){this.set("playbackPositions",null);this.set("scaleMode",void 0);this.set("distance",void 0);this.ue=this.ue.bind(this);this.Ib=new h},Aq:function(){m.ba(this.C, "horizontalAlign verticalAlign scale scaleMode width height offsetX offsetY distance playbackPositions".split(" "),this.ue,!0)},Cq:function(){m.da(this.C,"horizontalAlign verticalAlign scale scaleMode width height offsetX offsetY distance playbackPositions".split(" "),this.ue)},ue:function(){this.set("horizontalAlign",this.C.get("horizontalAlign"));this.set("verticalAlign",this.C.get("verticalAlign"));this.set("scale",this.C.get("scale"));this.set("scaleMode",this.C.get("scaleMode"));this.set("width", this.C.get("width"));this.set("height",this.C.get("height"));this.set("offsetX",this.C.get("offsetX",this.C.get("width")*.5));this.set("offsetY",this.C.get("offsetY",this.C.get("height")*.5));this.set("distance",this.C.get("distance"));this.set("playbackPositions",this.C.get("playbackPositions"))},cg:function(){this.W("playbackPositions","currentTime")&&(this.Ib.YE(this.get("playbackPositions")),this.Ib.WE(this.get("currentTime")),this.set("yaw",this.Ib.get("yaw")),this.set("pitch",this.Ib.get("pitch")), this.set("roll",this.Ib.get("roll")),this.set("alpha",this.Ib.ow()))}}}); define("tdv/player/view/panorama/renderer/object/FlatHotspotImage","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/player/view/panorama/renderer/object/ComposedWebGLObject tdv/player/view/panorama/renderer/object/geometry/FlatRectangleGeometryMixin tdv/player/view/panorama/renderer/object/material/ImageResourceMaterialMixin tdv/player/view/panorama/renderer/object/pointer/HotspotPointerMixin tdv/player/view/panorama/renderer/object/position/FlatHotspotImagePositionMixin tdv/player/view/panorama/renderer/object/util/LevelUtil".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),k=a("tdv/player/view/panorama/renderer/object/ComposedWebGLObject"),e=a("tdv/player/view/panorama/renderer/object/geometry/FlatRectangleGeometryMixin"),b=a("tdv/player/view/panorama/renderer/object/material/ImageResourceMaterialMixin"),c=a("tdv/player/view/panorama/renderer/object/pointer/HotspotPointerMixin"),d=a("tdv/player/view/panorama/renderer/object/position/FlatHotspotImagePositionMixin"), f=a("tdv/player/view/panorama/renderer/object/util/LevelUtil"),l=0;a=m.extend(k,e,d,b,c,function(p){k.call(this);this.set("tag","FlatHotspotImage");this.set("id","flat_hs_image_"+l++);this.C=p;this.Rl.push(this.C);this.Rg=this.Rg.bind(this)});a.prototype.hc=function(){k.prototype.hc.call(this);h.ba(this.C,["image.levels"],this.Rg,!0)};a.prototype.mc=function(){h.da(this.C,["image.levels"],this.Rg);k.prototype.mc.call(this)};a.prototype.Rg=function(){this.set("image",this.C.get("image"));this.set("level", f.ifb(this.C))};a.prototype.za=function(p){this.FI();k.prototype.za.call(this,p);this.W("inView")&&this.C.o(this.get("inView")?n.od:n.jd)};a.prototype.FI=function(){if(this.W("meshGroup","panoramaId","id")){var p=this.get("meshGroup");p&&p.children.forEach(function(q){g.setAttribute(q,g.nF,this.get("panoramaId"));g.setAttribute(q,g.Eaa,this.get("id"))}.bind(this))}};return a}); define("tdv/player/view/panorama/renderer/object/overlay/FocusedMixin",["require","tdv/constants/EventName","tdv/player/view/panorama/renderer/3d/util/SceneUtil"],function(a){var m=a("tdv/constants/EventName"),h=a("tdv/player/view/panorama/renderer/3d/util/SceneUtil");a={Kla:function(f){if(this.La){var l=this.D1a(f);l?(f=this.Mya(this).some(function(p){return l.intersectsObject(p)}),this.pka(f)):this.pka(!1)}},Mya:function(f){var l=f.get("meshGroup"),p=[];l&&l.traverse(function(q){q.geometry&&q.visible&& (Array.isArray(q.material)?q.material.some(function(r){return r.opacity>0}):q.material.opacity>0)&&p.push(q)});f.Cb().forEach(function(q){p=p.concat(this.Mya(q))}.bind(this));return p}};var n=new THREE.Frustum,g=new THREE.PerspectiveCamera,k=90,e=.5,b=new THREE.Matrix4,c=Math.PI/180,d=180/Math.PI;a.D1a=function(f){f=h.getCamera(f.sh);if(!f)return null;var l=this.La.P.get("focusAreaScale");if(!g.projectionMatrix.equals(f.projectionMatrix)||!g.matrixWorldInverse.equals(f.matrixWorldInverse)||k!=f.fov|| e!=l){g.copy(f);var p=g.fov*.5*c;g.fov=2*Math.atan2(e*Math.sin(p),Math.cos(p))*d;g.updateProjectionMatrix();n.setFromProjectionMatrix(b.copy(g.projectionMatrix).multiply(g.matrixWorldInverse));k=f.fov;e=l}return n};a.ofa=function(){this.Qga=!1};a.pfa=function(){this.pka(!1)};a.oka=function(f){this.fya=f};a.pka=function(f){this.Qga!==f&&(this.Qga=f,this.fya&&this.fya.o(this.Qga?m.JUa:m.KUa))};return a}); define("tdv/player/view/panorama/renderer/object/Hotspot","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/view/panorama/renderer/object/Base tdv/player/view/panorama/renderer/object/overlay/FocusedMixin tdv/player/view/panorama/renderer/object/util/EventAggregator tdv/player/view/util/Device tdv/view/util/Ease tdv/view/util/EaseDimension tdv/view/events/ProgressEvent tdv/player/view/util/XR tdv/player/view/util/xr/pointer/PointerState".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/player/view/panorama/renderer/object/Base"),k=a("tdv/player/view/panorama/renderer/object/overlay/FocusedMixin"),e=a("tdv/player/view/panorama/renderer/object/util/EventAggregator");a("tdv/player/view/util/Device");var b=a("tdv/view/util/Ease"),c=a("tdv/view/util/EaseDimension"),d=a("tdv/view/events/ProgressEvent"),f=a("tdv/player/view/util/XR"),l=a("tdv/player/view/util/xr/pointer/PointerState");a=m.extend(g, k,function(p){g.call(this);this.C=p;this.Rl.push(this.C);this.F3=this.F3.bind(this);this.E3=this.E3.bind(this);this.G3=this.G3.bind(this);this.Yr(["loadingActive","currentTime","panoramaPixelsPerDegree"]);this.set("tag","Hotspot");this.set("over",!1);this.set("centerOver",!1);this.set("enabled",!0);this.set("visible",!1);this.set("alpha",0);this.set("inVR",!1);this.set("overlaysEnabled",!0);this.set("enabledInVR",!0);this.set("enabledInVRWithGazePointer",!0);this.set("enabledInStandard",!0);this.set("interactionEnabled", !0);this.set("centerOverDisplay",!1);this.set("rollOverDisplay",!1);this.set("loadingActive",!1);this.cda=this.dda=this.Eq=this.xe=this.qg=null;this.xj=[];this.bda=[];this.Dn=null;this.oka(this.C)});a.prototype.hc=function(){this.qg=(new e(n.ia)).jo(this.HH.bind(this));this.xe=(new e(n.yc)).kr(this.LH.bind(this));this.Eq=(new e(n.vd)).jo(this.Q4a.bind(this));this.dda=(new e(n.uc)).kr(this.J4a.bind(this));this.cda=(new e(n.Eb)).kr(this.I4a.bind(this));g.prototype.hc.call(this);h.ba(this.C,["items", "rollOverItems","maps","rollOverMaps"],this.F3,!0);h.ba(this.C,"fadeInDuration fadeOutDuration enabledInVR enabledInStandard enabledInSurfaceSelection enabledInVRWithGazePointer enabled interactionEnabled centerOverDisplay rollOverDisplay".split(" "),this.G3,!0);h.ba(this.C,["areas"],this.E3,!0);this.ofa()};a.prototype.mc=function(){this.pfa();this.ZN([],this.xj);this.Dla([],this.bda);this.qg.dispose();this.xe.dispose();this.Eq.dispose();this.dda.dispose();this.cda.dispose();h.da(this.C,["items", "rollOverItems","maps","rollOverMaps"],this.F3);h.da(this.C,"fadeInDuration fadeOutDuration enabledInVR enabledInStandard enabledInSurfaceSelection enabledInVRWithGazePointer enabled interactionEnabled centerOverDisplay rollOverDisplay".split(" "),this.G3);h.da(this.C,["areas"],this.E3);this.get("visible")&&this.C.o(n.jd);g.prototype.mc.call(this)};a.prototype.F3=function(){this.set("items",this.La.wA(this.C.get("items",[])));this.set("rollOverItems",this.La.wA(this.C.get("rollOverItems",[])));this.set("maps", this.La.wA(this.C.get("maps",[])));this.set("rollOverMaps",this.La.wA(this.C.get("rollOverMaps",[])));var p=[].concat(this.get("maps"),this.get("items"),this.get("rollOverMaps"),this.get("rollOverItems"));p.forEach(function(q){q.Fkb(this.C)}.bind(this));this.get("items").forEach(function(q){q.set("projected",this.C.get("projected"))}.bind(this));this.bi(p);this.qg.hg(p);this.xe.hg(p);this.Eq.hg(p)};a.prototype.G3=function(){this.set("fadeInDuration",this.C.get("fadeInDuration"));this.set("fadeOutDuration", this.C.get("fadeOutDuration"));this.set("enabled",this.C.get("enabled",!0));this.set("enabledInVR",this.C.get("enabledInVR"));this.set("enabledInStandard",this.C.get("enabledInStandard",!0));this.set("enabledInSurfaceSelection",this.C.get("enabledInSurfaceSelection",!0));this.set("enabledInVRWithGazePointer",this.C.get("enabledInVRWithGazePointer",this.C.get("enabledInVR")));this.set("centerOverDisplay",this.C.get("centerOverDisplay"));this.set("rollOverDisplay",this.C.get("rollOverDisplay",!1)); this.set("interactionEnabled",this.C.get("interactionEnabled",!0))};a.prototype.E3=function(){var p=this.C.get("areas");this.dda.hg(p);this.cda.hg(p)};a.prototype.za=function(p){this.Bn(p);g.prototype.za.call(this,p);this.set("inVR",p.Va);this.set("surfaceSelection",p.vZ);this.set("hotspotsEnabled",p.CJ);this.set("inVRWithGazePointer",p.Va&&f.ud.length===1&&f.ud[0].type===l.WB);this.ye(p);this.Kla(p)};a.prototype.ye=function(){if(this.W("items","rollOverItems","maps","rollOverMaps","over","centerOver", "inVR","hotspotsEnabled","enabledInVR","enabledInStandard","enabledInVRWithGazePointer","surfaceSelection","enabledInSurfaceSelection","enabled","interactionEnabled","rollOverDisplay","centerOverDisplay")||this.Ia&&this.Ia.W("composedAlpha")){var p=!1,q=!1,r=this.get("hotspotsEnabled")&&this.get("enabled")&&(!this.get("inVR")||this.get("enabledInVR"))&&(!this.get("inVRWithGazePointer")||this.get("enabledInVRWithGazePointer"))&&(this.get("inVR")||this.get("enabledInStandard"))&&(!this.get("surfaceSelection")|| this.get("enabledInSurfaceSelection"))&&this.Ia&&this.Ia.get("composedAlpha")>0,t=this.get("interactionEnabled");r&&(p=this.get("centerOver")&&!this.get("inVR"),q=this.get("over")||p,p=!this.get("rollOverDisplay")&&!this.get("centerOverDisplay")||this.get("over")&&this.get("rollOverDisplay")||p&&this.get("centerOverDisplay")!==!1&&this.get("rollOverDisplay"));this.get("rollOverItems").forEach(function(x){x.set("visible",q);x.set("beamEnabled",r&&q&&t)});var u=this.get("rollOverItems").length==0;this.get("items").forEach(function(x){x.set("visible", u||!q);x.set("beamEnabled",r&&(u||!q)&&t)});this.get("rollOverMaps").forEach(function(x){x.set("visible",!1);x.set("beamEnabled",r&&q&&t)});var v=this.get("rollOverMaps").length==0;this.get("maps").forEach(function(x){x.set("visible",!1);x.set("beamEnabled",r&&(v||!q)&&t)});this.set("visible",p)}if(this.W("visible")){p=this.get("alpha");var w=this.get("visible")?1:0,y=(this.get("visible")?this.get("fadeInDuration"):this.get("fadeOutDuration"))*Math.abs(p-w);this.Dn=new b("linear",[new c("alpha",p, w)],Math.max(y,1));this.Na();this.get("visible")?this.C.o(n.od):this.C.o(n.jd)}};a.prototype.Bn=function(p){this.Dn&&(this.Dn.Ve()?this.Dn=null:(this.Dn.Nb(p.zf),this.set("alpha",this.Dn.ob("alpha"))),this.Na())};a.prototype.HH=function(){this.hh();this.o(n.ia)};a.prototype.Q4a=function(){this.hh();this.o(n.vd)};a.prototype.LH=function(){this.hh()};a.prototype.hh=function(){var p=0;this.xe.kw(function(q){var r=0,t;this.qg.Mn(q)?r=100:(t=this.xe.Mn(q))&&(r=t.percent);p+=r}.bind(this));this.o(new d(n.yc, p/this.xe.zd.length))};a.prototype.J4a=function(p){p.data.center?this.Dla([p.source],[]):this.ZN([p.source],[])};a.prototype.I4a=function(p){p.data.center?this.Dla([],[p.source]):this.ZN([],[p.source])};a.prototype.ZN=function(p,q){this.zGa(this.xj,p,q);this.set("over",this.xj.length>0)};a.prototype.Dla=function(p,q){this.zGa(this.bda,p,q);this.set("centerOver",this.bda.length>0)};a.prototype.zGa=function(p,q,r){q||(q=[]);r||(r=[]);r.forEach(function(t){t=p.indexOf(t);t>=0&&p.splice(t,1)});q.forEach(function(t){p.indexOf(t)< 0&&p.push(t)})};return a}); define("tdv/player/view/panorama/renderer/object/position/HotspotImagePositionMixin",["require","tdv/binding/BindingsHandler","tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController"],function(a){var m=a("tdv/binding/BindingsHandler"),h=a("tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController");return{jq:function(){this.set("playbackPositions",null);this.set("scaleMode",void 0);this.set("distance",void 0);this.ue=this.ue.bind(this);this.Ib=new h},Aq:function(){m.ba(this.C, "horizontalAlign verticalAlign scale scaleMode distance playbackPositions".split(" "),this.ue,!0)},Cq:function(){m.da(this.C,"horizontalAlign verticalAlign scale scaleMode distance playbackPositions".split(" "),this.ue)},ue:function(){this.set("horizontalAlign",this.C.get("horizontalAlign"));this.set("verticalAlign",this.C.get("verticalAlign"));this.set("scaleMode",this.C.get("scaleMode"));this.set("distance",this.C.get("distance"));this.set("scale",this.C.get("scale"));this.set("playbackPositions", this.C.get("playbackPositions"))},cg:function(){this.W("playbackPositions","currentTime")&&(this.Ib.YE(this.get("playbackPositions")),this.Ib.WE(this.get("currentTime")),this.set("yaw",this.Ib.get("yaw")),this.set("pitch",this.Ib.get("pitch")),this.set("roll",this.Ib.get("roll")),this.set("rotationX",this.Ib.get("rotationX")),this.set("rotationY",this.Ib.get("rotationY")),this.set("hfov",this.Ib.get("hfov")),this.set("vfov",this.Ib.get("vfov")),this.set("alpha",this.Ib.ow()))}}}); define("tdv/player/view/panorama/renderer/object/HotspotImage","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/player/view/panorama/renderer/object/ComposedWebGLObject tdv/player/view/panorama/renderer/object/geometry/RectangleGeometryMixin tdv/player/view/panorama/renderer/object/material/ImageResourceMaterialMixin tdv/player/view/panorama/renderer/object/pointer/HotspotPointerMixin tdv/player/view/panorama/renderer/object/position/HotspotImagePositionMixin tdv/player/view/panorama/renderer/object/util/LevelUtil".split(" "), function(a){var m=a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),k=a("tdv/player/view/panorama/renderer/object/ComposedWebGLObject"),e=a("tdv/player/view/panorama/renderer/object/geometry/RectangleGeometryMixin"),b=a("tdv/player/view/panorama/renderer/object/material/ImageResourceMaterialMixin"),c=a("tdv/player/view/panorama/renderer/object/pointer/HotspotPointerMixin"),d=a("tdv/player/view/panorama/renderer/object/position/HotspotImagePositionMixin"), f=a("tdv/player/view/panorama/renderer/object/util/LevelUtil"),l=0;a=m.extend(k,e,b,c,d,function(p){k.call(this);this.set("tag","HotspotImage");this.set("id","hs_image_"+l++);this.set("side",THREE.DoubleSide);this.set("wasInView",!1);this.C=p;this.Rl.push(this.C);this.Rg=this.Rg.bind(this)});a.prototype.hc=function(){k.prototype.hc.call(this);h.ba(this.C,["image.levels"],this.Rg,!0)};a.prototype.mc=function(){h.da(this.C,["image.levels"],this.Rg);k.prototype.mc.call(this)};a.prototype.Rg=function(){this.set("image", this.C.get("image"));this.set("level",f.qfb(this.C,this.get("panoramaPixelsPerDegree")))};a.prototype.za=function(p){this.FI();k.prototype.za.call(this,p);this.W("inView")&&(p=this.get("inView"),p!==this.get("wasInView")&&(this.set("wasInView",p),this.C.o(p?n.od:n.jd)))};a.prototype.FI=function(){if(this.W("meshGroup","panoramaId","id")){var p=this.get("meshGroup");p&&p.children.forEach(function(q){g.setAttribute(q,g.nF,this.get("panoramaId"));g.setAttribute(q,g.Eaa,this.get("id"))}.bind(this))}}; return a}); define("tdv/player/view/util/geo/Rectangle",["require","tdv/player/view/util/geo/Point","tdv/player/view/util/geo/Vector"],function(a){function m(g,k,e){this.Lg=g||new h(0,0,0);this.Dk=k||new h(1,0,0);this.BE=e||new h(0,1,0)}var h=a("tdv/player/view/util/geo/Point"),n=a("tdv/player/view/util/geo/Vector");m.prototype.clone=function(){return new m(this.Lg.clone(),this.Dk.clone(),this.BE.clone())};m.prototype.apply=function(g){g.vO(this.Lg);g.vO(this.Dk);g.vO(this.BE)};m.prototype.intersection=function(g, k){var e=n.YD(g.Lg,g.Dk),b=n.YD(this.Lg,g.Lg),c=n.YD(this.Lg,this.Dk);c.a7(n.YD(this.Lg,this.BE));e=e.RO(c);if(!(e==0||k&&e<0))return k=-c.RO(b)/e,new h(g.Lg.x+(g.Dk.x-g.Lg.x)*k,g.Lg.y+(g.Dk.y-g.Lg.y)*k,g.Lg.z+(g.Dk.z-g.Lg.z)*k)};m.prototype.S9=function(g,k){var e=n.YD(this.Lg,this.Dk),b=n.YD(this.Lg,this.BE);g=n.YD(this.Lg,g);var c=e.yoa(),d=b.yoa();return k?new h(g.RO(e)/(c*c),g.RO(b)/(d*d),0):new h(g.RO(e)/c,g.RO(b)/d,0)};return m}); define("tdv/player/view/util/geo/Projection","require tdv/player/view/util/geo/Fov tdv/player/view/util/geo/Frustum tdv/player/view/util/geo/Line tdv/player/view/util/geo/Point tdv/player/view/util/geo/Rectangle tdv/player/view/util/geo/Transformation tdv/view/constants/ScaleMode".split(" "),function(a){var m=a("tdv/player/view/util/geo/Fov"),h=a("tdv/player/view/util/geo/Frustum"),n=a("tdv/player/view/util/geo/Line"),g=a("tdv/player/view/util/geo/Point"),k=a("tdv/player/view/util/geo/Rectangle"), e=a("tdv/player/view/util/geo/Transformation"),b=a("tdv/view/constants/ScaleMode"),c=Math.PI/180,d=180/Math.PI,f=new e,l=new h,p=new k,q=new g;return{get:function(r,t,u,v,w,y,x,z){r*=c;t*=c;t=new g(Math.sin(-r)*Math.cos(t),Math.sin(t),Math.cos(-r)*Math.cos(t));f.identity();f.rotateY(u*c);f.rotateZ(w*c);f.rotateX(v*c);t.apply(f);return t.z>0?(l.KRa(x),l.eRa(z),l.lK(y*c),l.project(t),t):null},kob:function(r,t,u){f.identity();f.rotateX(-u.Ic()*c);f.rotateZ(-u.yg()*c);f.rotateY(-u.Jc()*c);q.set(r,t,0); r=u.unproject(q).VLa();r.apply(f);return{Xa:r.Jc()*d,pitch:r.Ic()*d}},sqb:function(r,t,u,v,w,y,x,z,A,D,F,C,B,H){H||(H=b.GB);B||(B=m.um(C,D,F));C||(C=m.yr(B,D,F));var E=D*.5/Math.tan(C*.5*c),G=E*Math.tan(C*.5*c)*2,N=E*Math.tan(B*.5*c)*2;p.Lg.set(+G*.5,+N*.5,0);p.Dk.set(-G*.5,+N*.5,0);p.BE.set(+G*.5,-N*.5,0);f.identity();f.rotateZ(-A*c);f.rotateX(-x*c);f.rotateY(z*c);f.translate(0,0,E);f.rotateZ(-y*c);f.rotateX(-w*c);f.rotateY(-v*c);f.rotateY(u.Jc()*c);f.rotateZ(u.yg()*c);f.rotateX(u.Ic()*c);p.apply(f); q.set(r,t,0);w=p.intersection(u.unproject(q));v={x:void 0,y:void 0,xScaled:void 0,yScaled:void 0};w&&w.z>0&&(w=p.S9(w),v.xScaled=v.x=w.x/G,v.yScaled=v.y=w.y/N);if(H!=b.GB){switch(H){case b.uj:var O=Math.min(m.yr(B,D,F),C);var R=Math.min(m.um(C,D,F),B);break;case b.Ir:O=Math.max(m.yr(B,D,F),C);R=Math.max(m.um(C,D,F),B);break;case b.Tp:O=C;R=m.um(C,D,F);break;case b.Pk:O=m.yr(B,D,F),R=B}if(O!=C||R!=B)G=E*Math.tan(O*.5*c)*2,N=E*Math.tan(R*.5*c)*2,p.Lg.set(+G*.5,+N*.5,0),p.Dk.set(-G*.5,+N*.5,0),p.BE.set(+G* .5,-N*.5,0),p.apply(f),q.set(r,t,0),(w=p.intersection(u.unproject(q)))&&w.z>0&&(w=p.S9(w),v.xScaled=w.x/G,v.yScaled=w.y/N)}return v},Ipb:function(r,t,u,v,w,y,x){x=w*.5/Math.tan(x*.5*c);p.Lg.set(+w*.5,+y*.5,x);p.Dk.set(-w*.5,+y*.5,x);p.BE.set(+w*.5,-y*.5,x);f.identity();f.rotateZ(-v*c);f.rotateX(-u*c);f.rotateY(-t*c);f.rotateY(r.Jc()*c);f.rotateZ(r.yg()*c);f.rotateX(r.Ic()*c);p.apply(f);r=new n(new g(0,0,0),new g(0,0,1));return(r=p.intersection(r))&&r.z>0?(r=p.S9(r),{x:r.x/w,y:r.y/y}):null}}}); define("tdv/player/view/panorama/renderer/object/geometry/SpriteGeometryMixin",["require","tdv/constants/Priority","tdv/player/view/panorama/renderer/3d/util/GeometryUtil","tdv/player/view/panorama/renderer/3d/util/MeshUtil","tdv/player/view/panorama/renderer/TextureLoader"],function(a){var m=a("tdv/constants/Priority"),h=a("tdv/player/view/panorama/renderer/3d/util/GeometryUtil"),n=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),g=a("tdv/player/view/panorama/renderer/TextureLoader"),k=Math.PI/ 180;return{ly:function(){this.set("distance",void 0);this.set("width",100);this.set("height",100);this.set("offsetX",void 0);this.set("offsetY",void 0);this.set("centerX",0);this.set("centerY",0);this.set("roll",0);this.Lh=this.oC();this.Bfa=h.OO();this.Ho=new THREE.Matrix4;this.IL=new THREE.Matrix4;this.FN=new THREE.Matrix4;this.WAa=new THREE.Matrix4;this.qk=new THREE.Matrix4;this.tn=new THREE.Matrix4;this.Dj=new THREE.Matrix4},Wz:function(e){this.et(e)},mM:function(){var e=this.get("meshGroup"); return e?n.rm(e)[0]:null},iq:function(){return[0].map(function(e){var b=this.FR();e=n.create(this.Lh[e],b);g.fB(e,g.Mr);g.gB(e,g.zu);g.nK(e,m.QQ);g.mZ(e,1);return e}.bind(this))},oC:function(){return[h.OO()]},et:function(e){var b=!1,c=!1;this.set("rendererYaw",e.Xa);this.set("rendererPitch",e.pitch);this.set("rendererRoll",e.Mg);this.set("rendererCameraFOV",e.kj);this.set("rendererWidth",e.width);this.set("rendererHeight",e.height);this.set("inVR",e.Va);if(this.W("distance","composedTranslationX", "composedTranslationY","composedTranslationZ")){var d=this.get("composedTranslationX")==0&&this.get("composedTranslationY")==0&&this.get("composedTranslationZ")==0&&this.get("distance")!==void 0;this.set("z",d?h.pw(this.get("distance")):h.Ct())}this.W("z")&&(this.Ho.makeTranslation(0,0,-this.get("z")),c=!0);e.kj&&this.W("z","rendererCameraFOV")&&this.set("rendererHeightZ",Math.tan(e.kj*k*.5)*this.get("z")*2);e.camera&&this.W("rendererYaw","rendererPitch","rendererRoll","rendererCameraFOV","rendererWidth", "rendererHeight","rendererHeightZ","inVR","centerX","centerY")&&(this.IL.copy(e.camera.matrixWorld),b=this.get("rendererHeightZ"),d=b*e.camera.aspect,d=(this.get("centerX")-e.width*.5)*d/e.width*.5,b=(e.height*.5-this.get("centerY"))*b/e.height*.5,this.FN.makeTranslation(d,b,0),b=!0);this.W("roll")&&(this.qk.makeRotationZ(this.get("roll")*k),b=!0);e.kj&&(c||this.W("rendererHeight","inVR","rendererHeightZ","width","height","flipHorizontally"))&&(c=e.Va?512/e.height:1,e=(this.get("flipHorizontally")? -1:1)*this.get("width")*c,c*=this.get("height"),this.tn.makeScale(e,c,1),b=!0);this.W("width","height","offsetX","offsetY")&&(e=.5-this.get("offsetX")/this.get("width"),c=this.get("offsetY")/this.get("height")-.5,this.WAa.makeTranslation(e,c,0),b=!0);b&&(this.Dj.copy(this.IL),this.Dj.multiply(this.Ho),this.Dj.multiply(this.FN),this.Dj.multiply(this.qk),this.Dj.multiply(this.tn),this.Dj.multiply(this.WAa),n.nt(this.get("meshGroup"),this.Dj))}}}); define("tdv/player/view/panorama/renderer/object/Sprite",["require","tdv/utils","tdv/player/view/panorama/renderer/object/ComposedWebGLObject","tdv/player/view/panorama/renderer/object/geometry/SpriteGeometryMixin"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/renderer/object/ComposedWebGLObject");a=a("tdv/player/view/panorama/renderer/object/geometry/SpriteGeometryMixin");return m.extend(h,a,function(){h.call(this);this.set("tag","Sprite")})}); define("tdv/player/view/panorama/renderer/object/canvas/LensFlareCanvas",["require","tdv/player/view/util/Color"],function(a){function m(n,g,k,e,b,c){this.Lq=g;this.ja=document.createElement("canvas");this.ja.width=this.Lq;this.ja.height=this.Lq;switch(n){case m.DQ:this.c0a(k,e,b,c);break;case m.m_:this.d0a(k,e,b,c)}}var h=a("tdv/player/view/util/Color");m.prototype.fg=function(){return this.Lq};m.prototype.wg=function(){return this.Lq};m.prototype.If=function(){return this.ja};m.prototype.c0a=function(n, g,k,e){var b=this.Lq*.5,c=this.Lq*.5,d=this.Lq*.5,f=this.ja.getContext("2d");g=h.Dp(g);for(var l=f.createRadialGradient(b,c,0,b,c,d),p=0;p0&&(p.set("centerX",x+w*f[l].position),p.set("centerY",z+y*f[l].position));this.tg.set("alpha", r)}};a.prototype.KZa=function(){return f.map(function(l){var p=(new c(l.form,l.AK,l.opacity,l.color,l.xJ,l.yJ)).If(),q=new d;q.ao(p);p=new b;p.set("textureSource",q);p.set("width",l.size);p.set("height",l.size);p.set("offsetX",l.size*.5);p.set("offsetY",l.size*.5);p.set("alpha",0);return p})};a.prototype.E_a=function(){return new e("#ffffff")};var f=[{form:c.m_,position:.1,size:52,AK:128,opacity:.8,color:"#FCFCFC",xJ:[1,.5],yJ:[0,.866]},{form:c.m_,position:.2,size:52,AK:128,opacity:.6,color:"#C8FCC8", xJ:[1,.5],yJ:[0,.866]},{form:c.DQ,position:.36,size:112,AK:128,opacity:.5,color:"#C8C8FC",xJ:[1,.9,.6,0],yJ:[0,.2,.4,1]},{form:c.DQ,position:.47,size:32,AK:128,opacity:.3,color:"#96C8AF",xJ:[1,1,0],yJ:[0,.9,1]},{form:c.DQ,position:.65,size:52,AK:128,opacity:.7,color:"#FCFCFC",xJ:[.7,.7,.2,0],yJ:[0,.1,.4,1]},{form:c.m_,position:.88,size:128,AK:128,opacity:.4,color:"#AF96C8",xJ:[1,.5],yJ:[0,.866]},{form:c.DQ,position:1,size:33,AK:128,opacity:.8,color:"#C89696",xJ:[.8,.8,.6,0],yJ:[0,.2,.4,1]}];return a}); define("tdv/player/view/panorama/renderer/object/MenuButton","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/view/panorama/renderer/object/Plane tdv/player/canvas/MenuCanvas tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource tdv/view/util/Ease tdv/view/util/EaseDimension tdv/player/view/util/XR".split(" "),function(a){function m(p,q,r){p=(q-p)*(1-r);Math.abs(p)<1E-5&&(p=0);return q-p}var h=a("tdv/utils"),n=a("tdv/binding/BindingsHandler"), g=a("tdv/constants/EventName"),k=a("tdv/player/view/panorama/renderer/object/Plane"),e=a("tdv/player/canvas/MenuCanvas"),b=a("tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource"),c=a("tdv/view/util/Ease"),d=a("tdv/view/util/EaseDimension"),f=a("tdv/player/view/util/XR");a=h.extend(k,function(p){k.call(this);this.Wb=p;this.ys=this.ys.bind(this);this.zq=this.ja=null;this.Mz=this.qp=this.yja=this.uz=void 0;this.zwa=20;this.$g=null;this.Of=this.Wb.get("opacity",.5);this.rU=this.Wb.get("rollOverOpacity", this.Of);this.m4a=1;this.p4a=.66;this.set("tag","MenuButton");this.set("visible",!1);this.set("over",!1);this.set("centerDistance",void 0)});a.prototype.hc=function(){k.prototype.hc.call(this);n.ba(this.Wb,["label"],this.ys,!0)};a.prototype.mc=function(){n.da(this.Wb,["label"],this.ys);k.prototype.mc.call(this)};a.prototype.ys=function(){this.ja=null};a.prototype.za=function(p){this.dt(p);this.gh(p);this.EI(p);this.cg(p);this.ye(p);k.prototype.za.call(this,p)};a.prototype.dt=function(p){p.Va&&!this.zq&& f.getType()==f.Lx.lo&&this.bi([this.zq=new k])};a.prototype.gh=function(){this.get("visible")&&(this.ja||(this.get("textureSource")||this.set("textureSource",new b),this.ja=new e(this.Wb,[this.Wb]),this.get("textureSource").ao(this.ja.If()),this.set("contentWidth",this.ja.fg()),this.set("contentHeight",this.ja.wg()),this.set("hfov",this.ja.jf()),this.set("distance",this.Wb.get("distance"))),this.ja.update()&&(this.get("textureSource").update(),this.Na()),this.W("over")&&this.ja.VE(this.get("over")? 0:-1))};a.prototype.EI=function(p){this.W("visible")&&(this.$g=new c("linear",[new d("displayCoef",this.get("visible")?0:1,this.get("visible")?1:0,void 0)],300));this.$g&&(this.$g.Ve()?this.$g=null:this.$g.Nb(p.zf))};a.prototype.cg=function(p){if(this.get("visible")||this.$g){this.qp=p.Xa;this.Mz=Math.min(90,Math.max(-90,this.zwa+this.zwa-p.pitch));if(this.W("visible")&&this.get("visible"))this.set("yaw",p.Xa),this.set("pitch",p.pitch);else{for(;this.qp+180 this.uz;)this.uz+=360;var q=(this.qp-this.uz)/p.zf,r=(this.Mz-this.yja)/p.zf,t=Math.atan2(r,q);r=Math.sqrt(r*r+q*q);r=Math.min(r,10*l);q=Math.cos(t)*r;t=Math.sin(t)*r;this.set("yaw",m(this.get("yaw"),this.qp+q,.02));this.set("pitch",m(this.get("pitch"),this.Mz+t,.02))}this.uz=this.qp;this.yja=this.Mz;t=this.get("yaw")-p.Xa;p=this.get("pitch")-p.pitch;this.set("centerDistance",Math.sqrt(t*t+p*p))}};a.prototype.ye=function(){if(!this.get("visible")&&!this.$g)this.set("alpha",0);else if(this.W("over", "centerDistance")||this.$g){var p=this.get("over")?this.rU:this.Of,q=this.p4a,r=this.get("centerDistance")/this.get("hfov");r<1&&(q+=(1-r)*(this.m4a-q),p+=(1-r)*(this.rU-p));this.$g&&(p*=this.$g.ob("displayCoef"),q*=this.$g.ob("displayCoef"));this.set("alpha",p);this.set("scale",q)}};a.prototype.$n=function(p){if(p.$f==g.Im){var q=!1;this.get("visible")&&!p.om()&&(q=this.Fy(p.Os).length>0);q&&(p.LD(this.Wb),p.TI(this.Wb),p.lm(this.get("distance")));this.get("over")!=q&&(this.get("over")&&this.Wb.o(g.Eb), this.set("over",q),this.get("over")&&this.Wb.o(g.uc))}else p.$f==g.Xf&&this.get("visible")&&!p.om()&&this.Fy(p.Os).length>0&&(p.cu(this.Wb),this.Wb.o(g.ma),this.o(g.ma))};var l=Math.PI/180;return a}); define("tdv/player/view/panorama/renderer/object/MenuPanel","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/view/panorama/renderer/object/Plane tdv/player/canvas/MenuCanvas tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource tdv/view/util/Ease tdv/view/util/EaseDimension tdv/player/view/util/XR".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/player/view/panorama/renderer/object/Plane"), k=a("tdv/player/canvas/MenuCanvas"),e=a("tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource"),b=a("tdv/view/util/Ease"),c=a("tdv/view/util/EaseDimension"),d=a("tdv/player/view/util/XR");a=m.extend(g,function(f,l){g.call(this);this.Wb=f;this.VC=l;this.ys=this.ys.bind(this);this.ja=null;this.yja=this.uz=void 0;this.$g=null;this.Of=this.Wb.get("opacity",.5);this.rU=this.Wb.get("rollOverOpacity",this.Of);this.set("textureSource",new e);this.set("tag","MenuPanel");this.set("overIndex", -1);this.set("selectedIndex",-1);this.wxa=!1});a.prototype.hc=function(){g.prototype.hc.call(this);h.ba(this.Wb,["label"],this.ys,!0);this.VC.forEach(function(f){h.ba(f,["label"],this.ys,!0)}.bind(this))};a.prototype.mc=function(){h.da(this.Wb,["label"],this.ys);this.VC.forEach(function(f){h.da(f,["label"],this.ys)}.bind(this));g.prototype.mc.call(this)};a.prototype.ys=function(){this.ja=null};a.prototype.za=function(f){this.dt(f);this.gh(f);this.EI(f);this.cg(f);g.prototype.za.call(this,f)};a.prototype.TZa= function(){this.ja||(this.ja=new k(this.Wb,this.VC),this.get("textureSource").ao(this.ja.If()),this.set("contentWidth",this.ja.fg()),this.set("contentHeight",this.ja.wg()),this.set("hfov",this.ja.jf()),this.set("distance",this.Wb.get("distance")))};a.prototype.gh=function(){this.ja||this.TZa();this.W("selectedIndex")&&this.ja.VE(this.get("selectedIndex"));this.W("overIndex")&&this.ja.VE(this.get("overIndex"));this.ja.update()&&(this.get("textureSource").update(),this.Na())};a.prototype.dt=function(f){f.Va&& !this.zq&&d.getType()==d.Lx.lo&&this.bi([this.zq=new g])};a.prototype.EI=function(f){this.$g||this.wxa||(this.$g=new b("linear",[new c("alpha",0,1,void 0),new c("scale",0,1,void 0),new c("yaw",f.Xa,this.get("yaw"),void 0),new c("pitch",f.pitch,this.get("pitch"),void 0)],300));this.$g&&(this.$g.Ve()?(this.wxa=!0,this.$g=null):this.$g.Nb(f.zf))};a.prototype.cg=function(){if(this.$g){var f=this.get("overIndex")<0?this.Of:this.rU;this.set("alpha",f*this.$g.ob("alpha"));this.set("scale",this.$g.ob("scale")); this.set("yaw",this.$g.ob("yaw"));this.set("pitch",this.$g.ob("pitch"))}else this.W("overIndex")&&(f=this.get("overIndex")<0?this.Of:this.rU,this.set("alpha",f))};a.prototype.$n=function(f){if(f.$f==n.Im){var l=-1;if(!f.om()){var p=this.Fy(f.Os).filter(function(q){return q.source==this.ja.If()}.bind(this));p.length>0&&(l=this.ja.uoa(p[0].x,p[0].y))}l>=0&&(f.LD(this.VC[l]),f.TI(this.VC[l]),f.lm(this.get("distance")));this.get("overIndex")>=0!=l>=0&&(l>0?this.o(n.uc):this.o(n.Eb));this.get("overIndex")!= l&&(this.get("overIndex")>=0&&this.VC[this.get("overIndex")].o(n.Eb),this.set("overIndex",l),this.get("overIndex")>=0&&this.VC[this.get("overIndex")].o(n.uc))}else f.$f!=n.Xf||f.om()||(p=this.Fy(f.Os).filter(function(q){return q.source==this.ja.If()}.bind(this)),p.length>0&&(l=this.ja.uoa(p[0].x,p[0].y),l>=0&&(p=this.VC[l],this.set("selectedIndex",l),f.cu(p),f.lm(this.get("distance")),p.o(n.ma),this.o(n.ma,{item:p}))))};return a}); define("tdv/player/view/panorama/renderer/object/MenuPanels",["require","tdv/utils","tdv/constants/EventName","tdv/player/view/panorama/renderer/object/Base","tdv/player/view/panorama/renderer/object/MenuPanel"],function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/view/panorama/renderer/object/Base"),g=a("tdv/player/view/panorama/renderer/object/MenuPanel");a=m.extend(n,function(b){n.call(this);this.Wb=b;this.gD=[];this.dN=null;this.set("tag","MenuPanels");this.set("visible", !1)});a.prototype.za=function(b){this.W("visible")&&this.get("visible")&&(this.set("yaw",b.Xa),this.set("pitch",b.pitch),this.Dva(this.Wb));n.prototype.za.call(this,b)};a.prototype.Dva=function(b){b=new g(this.Wb,b.get("children",[]));var c=this.get("yaw");this.Cb().forEach(function(d){c+=d.get("hfov")+e});b.set("yaw",c);b.set("pitch",this.get("pitch"));this.nXa(b);this.appendChild(b)};a.prototype.$Da=function(b){this.Cb().slice(b).forEach(function(c){this.$6a(c);c.remove()}.bind(this));this.gD=this.gD.filter(function(c){return this.Cb().indexOf(c)>= 0}.bind(this))};a.prototype.nXa=function(b){b.bind(h.uc,this.qDa,this,!0);b.bind(h.Eb,this.pDa,this,!0);b.bind(h.ma,this.oDa,this,!0)};a.prototype.$6a=function(b){b.h(h.uc,this.qDa,this,!0);b.h(h.Eb,this.pDa,this,!0);b.h(h.ma,this.oDa,this,!0)};a.prototype.qDa=function(b){this.gD.indexOf(b.source)<0&&(this.gD.push(b.source),this.gD.length==1&&this.Mwa())};a.prototype.pDa=function(b){b=this.gD.indexOf(b.source);b>=0&&(this.gD.splice(b,1),this.gD.length==0&&this.I8a())};a.prototype.oDa=function(b){var c= b.source;b=b.data.item;b.get("children",[]).length?(this.$Da(this.Cb().indexOf(c)+1),this.Dva(b)):this.Qwa()};a.prototype.Qwa=function(){this.set("visible",!1);this.$Da(0);this.Mwa();this.o(h.CB)};a.prototype.Mwa=function(){this.dN&&(clearTimeout(this.dN),this.dN=null)};a.prototype.I8a=function(){this.dN||(this.dN=setTimeout(function(){this.dN=null;this.Qwa()}.bind(this),k))};var k=3E3,e=1;return a}); define("tdv/player/view/panorama/renderer/object/Menu","require tdv/utils tdv/constants/EventName tdv/player/view/panorama/renderer/object/Base tdv/player/view/panorama/renderer/object/MenuButton tdv/player/view/panorama/renderer/object/MenuPanels".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/view/panorama/renderer/object/Base"),g=a("tdv/player/view/panorama/renderer/object/MenuButton"),k=a("tdv/player/view/panorama/renderer/object/MenuPanels");a=m.extend(n, function(e){n.call(this);this.C=e;this.Rl.push(this.C);this.set("tag","Menu");this.set("visible",!1);this.je=new g(this.C);this.je.bind(h.ma,this.FYa,this,!1);this.aj=new k(this.C);this.aj.bind(h.CB,this.d6a,this,!1);this.bi([this.je,this.aj])});a.prototype.hc=function(){n.prototype.hc.call(this);this.o(h.vd);this.o(h.ia)};a.prototype.za=function(e){this.set("visible",e.Va);this.W("visible")&&(this.je.set("visible",this.get("visible")),this.aj.set("visible",!1));n.prototype.za.call(this,e)};a.prototype.FYa= function(){this.je.set("visible",!1);this.aj.set("visible",!0)};a.prototype.d6a=function(){this.je.set("visible",this.get("visible"))};return a}); define("tdv/player/view/panorama/renderer/object/CustomPlane","require tdv/utils tdv/constants/EventName tdv/player/view/panorama/renderer/object/Plane tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource tdv/player/view/panorama/renderer/object/util/EventAggregator tdv/view/events/ProgressEvent".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/view/panorama/renderer/object/Plane"),g=a("tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource"), k=a("tdv/player/view/panorama/renderer/object/util/EventAggregator"),e=a("tdv/view/events/ProgressEvent");a=m.extend(n,function(){n.call(this);this.set("tag","CustomPlane");this.set("source",null);this.set("sourceUpdated",!1);this.set("sourceIsVideo",!1);this.xe=this.Nh=null});a.prototype.hc=function(){this.Nh=(new k(h.ia)).jo(this.xs.bind(this));this.xe=(new k(h.ia)).kr(this.mz.bind(this));n.prototype.hc.call(this)};a.prototype.mc=function(){this.Nh.dispose();this.xe.dispose();n.prototype.mc.call(this)}; a.prototype.za=function(b){var c=this.get("textureSource");this.W("source","sourceUpdated","sourceIsVideo")&&(c||this.set("textureSource",c=new g),this.W("source")&&c.ao(this.get("source")),this.W("sourceIsVideo")&&c.ZY(this.get("sourceIsVideo")),this.W("sourceUpdated")&&(c.update(),this.set("sourceUpdated",!1)));c&&c.mra(b.Ik>0);n.prototype.za.call(this,b);this.W("meshGroup")&&(b=(b=this.get("meshGroup"))&&b.children||[],b.length&&(this.Nh.hg(b),this.xe.hg(b)))};a.prototype.xs=function(){this.o(h.vd); this.o(h.ia)};a.prototype.mz=function(b,c){var d=0;c.kw(function(f){(f=c.Mn(f))&&(d+=f.percent)});this.o(new e(h.yc,d/c.zd.length))};return a}); define("tdv/player/view/panorama/renderer/object/SurfaceSelector","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/view/panorama/renderer/3d/util/GeometryUtil tdv/player/view/panorama/renderer/object/Base tdv/player/view/panorama/renderer/object/CustomPlane tdv/player/view/panorama/renderer/object/canvas/SurfaceReticleCanvas tdv/player/view/util/geo/Line tdv/player/view/util/geo/Rectangle".split(" "),function(a){function m(q,r,t){this.gg=q;this.gg.bind(g.L("distanceToFloor"), this.za,this,!1);this.nl=r;this.nl.bind(g.L("yaw"),this.za,this,!1);this.nl.bind(g.L("distance"),this.za,this,!1);this.nl.bind(g.L("enabled"),this.za,this,!1);this.nl.bind(g.L("enabledInSurfaceSelection"),this.za,this,!1);this.Sb=null;this.Cf=new b;this.Cf.set("hfov",20);this.Cf.set("vfov",20);this.Cf.set("pitch",-90);this.Cf.set("source",t.If());this.Cf.set("contentWidth",t.fg());this.Cf.set("contentHeight",t.wg());this.za()}var h=a("tdv/utils"),n=a("tdv/binding/BindingsHandler"),g=a("tdv/constants/EventName"), k=a("tdv/player/view/panorama/renderer/3d/util/GeometryUtil"),e=a("tdv/player/view/panorama/renderer/object/Base"),b=a("tdv/player/view/panorama/renderer/object/CustomPlane"),c=a("tdv/player/view/panorama/renderer/object/canvas/SurfaceReticleCanvas"),d=a("tdv/player/view/util/geo/Line"),f=a("tdv/player/view/util/geo/Rectangle");a=h.extend(e,function(q){e.call(this);this.f3=this.f3.bind(this);this.pv=this.pv.bind(this);this.c3=this.c3.bind(this);this.set("tag","SurfaceSelector");this.set("reticleVisible", !1);this.set("enabled",!1);this.Ba=q;this.O_=[];this.dS=new f;this.il=new d;this.Qe=new b;this.Qe.set("hfov",20);this.Qe.set("vfov",20);this.Qe.set("pitch",-90);this.set("reticleCoef",1);this.bi([this.Qe])});a.prototype.hc=function(){this.r_a();e.prototype.hc.call(this);n.ba(this.Ba,["distanceToFloor"],this.f3,!0);n.ba(this.Ba,["adjacentPanoramas"],this.pv,!0);n.ba(this.La.ld,["adjacentPanoramaPositionsEnabled"],this.c3,!0);this.o(g.vd);this.o(g.ia)};a.prototype.mc=function(){e.prototype.mc.call(this); n.da(this.Ba,["distanceToFloor"],this.f3);n.da(this.Ba,["adjacentPanoramas"],this.pv);n.da(this.La.ld,["adjacentPanoramaPositionsEnabled"],this.c3);this.DEa([])};a.prototype.f3=function(){var q=this.Ba.get("distanceToFloor");this.Qe.set("distance",q);q=k.pw(q);var r=k.Coa(q,90),t=k.Doa(q,90);this.dS.Lg.set(-r*.5,-q,-t*.5);this.dS.Dk.set(r*.5,-q,-t*.5);this.dS.BE.set(-r*.5,-q,t*.5);this.jEa=q/k.Ct()};a.prototype.pv=function(){this.DEa(this.Ba.get("adjacentPanoramas",[]))};a.prototype.c3=function(){this.pv()}; a.prototype.DEa=function(q){this.O_.forEach(function(r){r.clear()});this.O_=q.map(function(r){return new m(this.Ba,r,this.mja)}.bind(this));q=[];this.La.ld.get("adjacentPanoramaPositionsEnabled")&&(q=q.concat(this.O_.map(function(r){return r.Cf})));q=q.concat([this.Qe]);this.bi(q)};a.prototype.za=function(q){e.prototype.za.call(this,q);this.set("enabled",q.vZ);this.lma();this.HD(q)};a.prototype.lma=function(){this.W("enabled","reticleVisible","composedTranslationX","composedTranslationY","composedTranslationZ", "composedDeltaYaw","composedDeltaPitch","composedDeltaRoll")&&(this.Qe.set("alpha",this.get("reticleVisible")?1:0),this.set("alpha",!this.get("enabled")||this.get("composedTranslationX")||this.get("composedTranslationY")||this.get("composedTranslationZ")||this.get("composedDeltaYaw")||this.get("composedDeltaPitch")||this.get("composedDeltaRoll")?0:1),this.EGa())};a.prototype.r_a=function(){this.yN=new c(this.La.P);this.yN.setPosition(this.get("reticleCoef"));this.Qe.set("source",this.yN.If());this.Qe.set("contentWidth", this.yN.fg());this.Qe.set("contentHeight",this.yN.wg());this.mja=new c(this.La.P);this.mja.setPosition(0);this.mja.update(1)};a.prototype.HD=function(q){this.W("reticleCoef")&&this.yN.setPosition(this.get("reticleCoef"));this.Qe.set("sourceUpdated",this.yN.update(q.zf))};a.prototype.$n=function(q){if(q.Rza)if(!this.get("enabled")||q.Os.length==0||q.om()||q.We())this.set("reticleVisible",!1);else{var r=q.Os[0];this.il.Lg.set(r.origin.x,r.origin.y,r.origin.z);this.il.Dk.set(r.origin.x+r.direction.x, r.origin.y+r.direction.y,r.origin.z+r.direction.z);if(r=this.dS.intersection(this.il,!0)){var t=this.dS.S9(r,!0),u=2*(.5-t.x);t=2*(.5-t.y);var v=l*Math.atan2(-u,t),w=-90+l*Math.atan2(Math.sqrt(u*u+t*t),1);if(w<-75||w>-1)this.set("reticleVisible",!1);else{var y={x:u*this.jEa,y:-t*this.jEa};q.Aw()||q.gpa()?q.$f==g.Im&&(this.set("reticleVisible",!0),this.Qe.set("alpha",Math.min(1,(w- -75)/5)),this.Qe.set("translationX",y.x),this.Qe.set("translationZ",y.y)):this.set("reticleVisible",!1);var x=this.La.ld.get("surfaceSelectionHorizontalAngle")* .5,z=this.La.ld.get("surfaceSelectionVerticalAngle")*.5;t=this.O_.map(function(A){return{nl:A.nl,GX:A.pfb(v),vertical:A.Zfb(w),distance:A.E7(y)}}).filter(function(A){return A.GX180?360-q:q};m.prototype.Zfb=function(q){return this.Sb?Math.abs(this.Sb.pitch-q):Infinity};m.prototype.E7=function(q){if(!this.WN)return Infinity;var r=q.x-this.WN.x;q=q.y-this.WN.y;return Math.sqrt(r*r+q*q)};m.prototype.za=function(){var q=this.nl.get("yaw"),r=this.nl.get("distance"),t=this.nl.get("enabled")&&this.nl.get("enabledInSurfaceSelection");if(q!==void 0&&r!==void 0&&t){t=this.gg.get("distanceToFloor"); var u=-90+Math.atan2(r,t)*l;this.Cf.set("alpha",u<-1?1:0);this.Sb={Xa:q,pitch:u};u=k.pw(t)/k.Ct();this.WN={x:-Math.sin(q*p)*r/t*u,y:-Math.cos(q*p)*r/t*u};this.Cf.set("translationX",this.WN.x);this.Cf.set("translationZ",this.WN.y);this.Cf.set("distance",t)}else this.WN=this.Sb=null,this.Cf.set("alpha",0)};var l=180/Math.PI,p=Math.PI/180;return a}); define("tdv/player/view/panorama/renderer/object/Panorama","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/view/events/ProgressEvent tdv/player/view/panorama/renderer/object/Base tdv/player/view/panorama/renderer/object/Plane tdv/player/view/panorama/renderer/object/SurfaceSelector tdv/player/view/panorama/renderer/object/util/EventAggregator tdv/player/view/panorama/renderer/object/util/LevelUtil tdv/player/view/util/Preloader tdv/player/view/util/XR".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/view/events/ProgressEvent"),k=a("tdv/player/view/panorama/renderer/object/Base"),e=a("tdv/player/view/panorama/renderer/object/Plane"),b=a("tdv/player/view/panorama/renderer/object/SurfaceSelector"),c=a("tdv/player/view/panorama/renderer/object/util/EventAggregator"),d=a("tdv/player/view/panorama/renderer/object/util/LevelUtil"),f=a("tdv/player/view/util/Preloader"),l=a("tdv/player/view/util/XR"),p=0;a=m.extend(k, function(t){k.call(this);this.C=t;this.Rl.push(this.C);this.KH=this.KH.bind(this);this.Qg=this.Qg.bind(this);this.pv=this.pv.bind(this);this.Yr(["loadingActive","currentTime","panoramaPixelsPerDegree"]);this.set("tag","Panorama");this.set("loadingActive",!1);this.set("blendingActive",!0);this.set("currentTime",0);this.set("adjacentPanoramas",[]);this.set("preloadEnabled",!0);this.set("backgroundPreloadEnabled",!0);this.set("surfaceSelectionEnabled",!1);this.set("id","panorama_"+p++);this.set("ready", !1);this.n4=[];this.Eq=this.xe=this.qg=null;this.Xi=new q;this.GDa=new r;this.c$a=new b(this.C);this.xq=new r;this.bi([this.Xi,this.GDa,this.c$a,this.xq])});a.prototype.hc=function(){this.qg=(new c(n.ia)).jo(this.xs.bind(this));this.xe=(new c(n.yc)).kr(this.MH.bind(this));this.Eq=(new c(n.vd)).jo(this.U4a.bind(this));k.prototype.hc.call(this);this.get("blendingActive")&&this.La.set("globalBlendingActive",this.La.get("globalBlendingActive")+1);h.ba(this.C,["currentTime"],this.KH,!0);h.ba(this.C,["frames", "overlays","vrMenu","flipImageHorizontally"],this.Qg,!0);h.ba(this.C,["adjacentPanoramas"],this.pv,!0)};a.prototype.mc=function(){this.qg.dispose();this.xe.dispose();this.Eq.dispose();this.get("blendingActive")&&this.La.set("globalBlendingActive",this.La.get("globalBlendingActive")-1);k.prototype.mc.call(this);h.da(this.C,["currentTime"],this.KH);h.da(this.C,["frames","overlays","vrMenu","flipImageHorizontally"],this.Qg);h.da(this.C,["adjacentPanoramas"],this.pv);this.Vka()};a.prototype.Qg=function(){function t(A, D,F){A=x.indexOf(A);return A<0?F:w[A].get(D,F)}function u(A){return t(A,"projected",!1)}var v=this.La.wA(this.C.get("frames"));v.forEach(function(A){A.set("panoramaId",this.get("id"));A.set("flipHorizontally",this.C.get("flipImageHorizontally"))}.bind(this));var w=this.C.get("overlays"),y=this.La.wA(w),x=y.slice(),z=y.filter(function(A){return t(A,"projected",!1)||t(A,"required",!1)}).filter(function(A){return t(A,"enabled",!0)});this.C.get("vrMenu")&&y.push(this.La.wA(this.C.get("vrMenu")));y.forEach(function(A){A.set("panoramaId", this.get("id"))}.bind(this));this.qg.hg(v.concat(y));this.xe.hg(v.concat(y));this.Eq.hg(v.concat(z));this.GDa.bi(y.filter(u));this.Xi.bi(v);this.xq.bi(y.filter(function(A){return!u(A)}));this.set("panoramaPixelsPerDegree",d.uLa(this.C));this.OGa()};a.prototype.KH=function(){this.set("currentTime",this.C.get("currentTime",0))};a.prototype.pv=function(){this.set("adjacentPanoramas",this.C.get("adjacentPanoramas",[]))};a.prototype.xs=function(){this.hh();this.o(n.ia)};a.prototype.U4a=function(){this.hh(); this.set("ready",!0);this.o(n.vd)};a.prototype.MH=function(){this.hh()};a.prototype.hh=function(){var t=0;this.xe.kw(function(u){var v=0,w;this.qg.Mn(u)?v=100:(w=this.xe.Mn(u))&&(v=w.percent);t+=v}.bind(this));this.o(new g(n.yc,t/this.xe.zd.length))};a.prototype.za=function(t){t.Va&&!this.zq&&l.getType()==l.Lx.lo&&this.bi([this.zq=new e].concat(this.Cb()));var u=this.get("blendingActive");this.set("blendingActive",this.get("alpha")<1);u!=this.get("blendingActive")&&this.La.set("globalBlendingActive", this.La.get("globalBlendingActive")+(this.get("blendingActive")?1:-1));this.set("backgroundPreloadEnabled",this.La.dr().get("backgroundPreloadEnabled")!==!1);this.set("preloadEnabled",t.wY);this.W("adjacentPanoramas","loadingActive","preloadEnabled","backgroundPreloadEnabled")&&(this.get("loadingActive")&&this.get("backgroundPreloadEnabled")?this.K9a():this.Vka());this.W("index")&&this.OGa();k.prototype.za.call(this,t)};a.prototype.Voa=function(){return d.Voa(this.C,this.get("preloadEnabled"))};a.prototype.vqa= function(){return d.vqa(this.C,this.get("preloadEnabled"))};a.prototype.K9a=function(){this.Vka();this.n4=this.get("adjacentPanoramas").map(function(t){t=t.get("panorama");return[t,d.wp(t,this.get("preloadEnabled"))]}.bind(this));this.n4.forEach(function(t){f.dIa(t[0],t[1]);f.U8(t[0],1)})};a.prototype.Vka=function(){this.n4.forEach(function(t){f.U8(t[0],-1);f.Hjb(t[0],t[1])});this.n4=[]};a.prototype.OGa=function(){var t=this.get("index");this.Xi.Cb().forEach(function(u,v,w){u.set("panoramaIndex", t);u.set("frameIndex",v);u.set("frameCount",w.length)})};var q=m.extend(k,function(){k.call(this);this.Yr(["loadingActive","currentTime","panoramaPixelsPerDegree"]);this.set("loadingActive",!1);this.set("currentTime",0);this.set("tag","Group")});q.prototype.za=function(t){this.Cb().forEach(function(u,v,w){u.set("frontFrame",w[w.length-1])});k.prototype.za.call(this,t)};var r=m.extend(k,function(){k.call(this);this.Yr(["loadingActive","currentTime","panoramaPixelsPerDegree"]);this.set("loadingActive", !1);this.set("currentTime",0);this.set("tag","Group")});return a}); define("tdv/player/view/panorama/renderer/object/PanoramaFrame",["require","tdv/utils","tdv/player/view/panorama/renderer/object/Frame","tdv/player/view/panorama/renderer/3d/util/MeshUtil"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/renderer/object/Frame"),n=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),g=0;a=m.extend(h,function(){h.call(this);this.set("tag","PanoramaFrame");this.set("panoramaIndex",0);this.set("frameIndex",0);this.set("frameCount",1);this.set("id","frame_"+ g++)});a.prototype.za=function(k){h.prototype.za.call(this,k);this.FI()};a.prototype.KI=function(){if(this.W("panoramaIndex","frameIndex","frameCount","meshGroup")){var k=this.get("meshGroup");if(k){var e=this.get("panoramaIndex"),b=this.get("frameIndex"),c=this.get("frameCount"),d=k.children.length;k.children.forEach(function(f,l){n.L$(f,e+(l+b/c)/d)}.bind(this))}}};a.prototype.FI=function(){if(this.W("meshGroup","panoramaId","id")){var k=this.get("meshGroup");k&&k.children.forEach(function(e,b){n.setAttribute(e, n.nF,this.get("panoramaId"));n.setAttribute(e,n.Daa,b);n.setAttribute(e,n.KK,this.get("id"))}.bind(this))}};return a}); define("tdv/player/view/panorama/renderer/object/ImagePanoramaFrame","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/Priority tdv/player/view/panorama/renderer/object/Base tdv/player/view/panorama/renderer/object/PanoramaFrame tdv/player/view/panorama/renderer/object/util/EventAggregator tdv/player/view/panorama/renderer/object/util/LevelUtil tdv/player/view/panorama/renderer/object/util/MeshFactory tdv/player/view/panorama/renderer/TextureLoader tdv/view/events/ProgressEvent".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/constants/Priority"),k=a("tdv/player/view/panorama/renderer/object/Base"),e=a("tdv/player/view/panorama/renderer/object/PanoramaFrame"),b=a("tdv/player/view/panorama/renderer/object/util/EventAggregator"),c=a("tdv/player/view/panorama/renderer/object/util/LevelUtil"),d=a("tdv/player/view/panorama/renderer/object/util/MeshFactory"),f=a("tdv/player/view/panorama/renderer/TextureLoader"),l=a("tdv/view/events/ProgressEvent"); a=m.extend(e,function(q){e.call(this);this.set("tag","ImagePanoramaFrame");this.ADa=!0;this.C=q;this.Rl.push(this.C);this.am=this.Nh=this.Eq=null;this.vha=[];this.Qg=this.Qg.bind(this);this.Yr(["loadingActive","currentTime","panoramaId","panoramaPixelsPerDegree"]);this.bi([this.xq=new p])});a.prototype.hc=function(){this.Eq=new b(n.ia);this.Nh=new b(n.ia);this.am=new b(n.yc);e.prototype.hc.call(this);h.ba(this.C,["overlays"],this.Qg,!0)};a.prototype.mc=function(){this.Eq.dispose();this.Nh.dispose(); this.am.dispose();h.da(this.C,["overlays"],this.Qg);e.prototype.mc.call(this)};a.prototype.Qg=function(){this.xq.bi(this.La.wA(this.C.get("overlays")));this.wGa()};a.prototype.wGa=function(){this.Nh.hg([].concat(this.vha,this.xq.Cb()));this.am.hg([].concat(this.vha,this.xq.Cb()))};a.prototype.iq=function(){var q=[],r=[],t=[];c.xoa(this.C,this.ADa).forEach(function(u,v){var w=d.wdb(this.C,u);c.uhb(u)?(v==0&&(q=q.concat(w),r=r.concat(w)),f.gB(w,v==0?f.zu:f.p_),f.fB(w,v==0?f.Mr:f.Pba)):(v==0&&(q=q.concat(w)), r=r.concat(w),f.gB(w,f.zu),f.fB(w,f.Mr));f.nK(w,v==0?g.cca:g.Up);f.mZ(w,v);t=t.concat(w)}.bind(this));this.Eq.hg(q);this.vha=r;this.wGa();this.Nh.jo(this.xs.bind(this));this.Eq.jo(this.z5a.bind(this));this.am.kr(this.MH.bind(this));this.o(new l(n.yc,0));return t};a.prototype.z5a=function(){this.o(n.vd)};a.prototype.xs=function(){this.o(n.ia)};a.prototype.za=function(q){this.ADa=q.wY;this.Fab();e.prototype.za.call(this,q)};a.prototype.Fab=function(){var q=this.get("frontFrame");if(this.W("frontFrame")|| q&&q.W("alpha"))q=q&&q!=this?1-q.get("alpha"):1,this.xq.set("alpha",q)};a.prototype.MH=function(){var q=0;this.am.kw(function(r){var t=0,u;this.Nh.Mn(r)?t=100:(u=this.am.Mn(r))&&(t=u.percent);q+=t}.bind(this));this.o(new l(n.yc,q/this.am.zd.length))};var p=m.extend(k,function(){k.call(this);this.Yr(["loadingActive","panoramaId","panoramaPixelsPerDegree"]);this.set("loadingActive",!1);this.set("tag","Group")});return a}); define("tdv/player/view/panorama/renderer/object/ImagePlane","require tdv/utils tdv/constants/EventName tdv/player/view/panorama/renderer/object/Plane tdv/player/view/panorama/renderer/object/texturesource/ImageTextureSource tdv/player/view/panorama/renderer/object/util/EventAggregator tdv/view/events/ProgressEvent".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/player/view/panorama/renderer/object/Plane"),g=a("tdv/player/view/panorama/renderer/object/texturesource/ImageTextureSource"), k=a("tdv/player/view/panorama/renderer/object/util/EventAggregator"),e=a("tdv/view/events/ProgressEvent");a=m.extend(n,function(){n.call(this);this.set("tag","ImagePlane");this.set("url",null);this.xe=this.qg=null});a.prototype.hc=function(){this.qg=(new k(h.ia)).jo(this.xs.bind(this));this.xe=(new k(h.yc)).kr(this.mz.bind(this));n.prototype.hc.call(this)};a.prototype.mc=function(){this.qg.dispose();this.xe.dispose();n.prototype.mc.call(this)};a.prototype.za=function(b){if(this.W("url")){var c=this.get("url"); c=c?new g(c):null;this.set("textureSource",c)}n.prototype.za.call(this,b);this.W("meshGroup")&&(b=(b=this.get("meshGroup"))&&b.children||[],b.length&&(this.qg.hg(b),this.xe.hg(b)))};a.prototype.xs=function(){this.o(h.vd);this.o(h.ia)};a.prototype.mz=function(b,c){var d=0;c.kw(function(f){(f=c.Mn(f))&&(d+=f.percent)});this.o(new e(h.yc,d/c.zd.length))};return a}); define("tdv/player/view/panorama/renderer/object/control/CueController","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/constants/PlaybackState tdv/view/av/VideoPlayer".split(" "),function(a){function m(c,d){this.Vd=c;this.ra=d;this.Zl=!1;this.gk=[];this.Fo=this.VL=void 0;this.bf=[];this.zYa();this.cea();this.s5();this.Hj()}function h(c,d,f){this.time=c;this.cue=d;this.action=f}var n=a("tdv/utils"),g=a("tdv/constants/EventName"),k=a("tdv/events/Event"),e=a("tdv/constants/PlaybackState"), b=a("tdv/view/av/VideoPlayer");m.prototype.clear=function(){this.wR();this.gk=[];this.V$a();this.ra=this.Vd=null};m.prototype.zYa=function(){this.ra.bind(b.Dg,this.Nf,this,!0);this.ra.bind(g.Pd,this.Hj,this,!0);this.ra.bind(g.Tb,this.dD,this,!0)};m.prototype.V$a=function(){this.ra.h(b.Dg,this.Nf,this,!0);this.ra.h(g.Pd,this.Hj,this,!0);this.ra.h(g.Tb,this.dD,this,!0)};m.prototype.Hj=function(){var c=this.ra.getState()!=e.ca;this.Zl!=c&&((this.Zl=c)?this.s5():this.wR())};m.prototype.dD=function(){this.OI()}; m.prototype.Nf=function(){this.OI()};m.prototype.s5=function(){this.Fo=this.VL=0};m.prototype.OI=function(){if(this.ra&&this.Zl){var c=this.bf.slice(),d=this.ra.getCurrentTime(),f=d-this.VL;f<0&&(this.bf=[],this.Fo=0);f=f>=0&&f<2;this.VL=d;var l;for(l=this.Fo;ld);l++);for(;this.Fo0&&(this.bf=[],this.SV())};m.prototype.SV=function(){this.Vd.o(new k(g.Al,{activeCues:this.bf.slice()}))};m.prototype.cea=function(){this.gk=[];this.Vd.get("cues",[]).forEach(c=>{this.gk.push(new h(c.get("startTime",0),c,"start"));this.gk.push(new h(c.get("endTime",Number.POSITIVE_INFINITY),c,"end"))});this.gk.sort(function(c,d){return c.time==d.time?c.action==d.start?0:c.action=="start"?-1:1:c.time- d.time})};return m}); define("tdv/player/view/panorama/renderer/object/control/VideoPlaybackController",["require","tdv/constants/EventName","tdv/constants/PlaybackState","tdv/events/Event","tdv/view/av/VideoPlayer"],function(a){function m(e,b,c){this.Ie=e;this.Vd=b;this.ra=c;this.ra.setCurrentTime(this.mg=this.Vd.get("currentTime",0));this.ra.Bg(this.Ff=this.Ie.get("mute",!1));this.ra.Zc(this.I=this.Vd.get("state",n.ca));this.ra.setLoop(this.Pl=this.Vd.get("loop"));this.ac=this.ra.lj();this.pXa();this.wXa();this.Qx()} var h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState"),g=a("tdv/events/Event"),k=a("tdv/view/av/VideoPlayer");m.prototype.clear=function(){this.a7a();this.g7a();this.zz();this.ra.Zc(n.ca);this.Vd.set("state",n.ca);this.Vd.set("currentTime",0);this.Vd.set("duration",void 0)};m.prototype.bDa=function(){var e=this.Vd.get("state",n.ca);this.I!=e&&this.ra.Zc(this.I=e)};m.prototype.$Ca=function(){var e=this.Vd.get("currentTime",0);this.mg!=e&&this.ra.setCurrentTime(this.mg=e)};m.prototype.cU= function(){var e=this.Ie.get("mute",0);this.Ff!=e&&this.ra.Bg(this.Ff=e)};m.prototype.aDa=function(){var e=this.Vd.get("loop");this.Pl!=e&&this.ra.setLoop(this.Pl=e)};m.prototype.mU=function(){this.Vd.set("currentTime",this.mg=this.ra.getCurrentTime())};m.prototype.kU=function(){this.Vd.set("duration",this.ac=this.ra.lj())};m.prototype.lU=function(){this.Vd.set("state",this.I=this.ra.getState())};m.prototype.nU=function(){this.Vd.o(new g(h.Tb))};m.prototype.pXa=function(){this.Ie.bind(h.L("mute"), this.cU,this,!0)};m.prototype.a7a=function(){this.Ie.h(h.L("mute"),this.cU,this,!0)};m.prototype.wXa=function(){this.Vd.bind(h.L("state"),this.bDa,this,!0);this.Vd.bind(h.L("currentTime"),this.$Ca,this,!0);this.Vd.bind(h.L("loop"),this.aDa,this,!0)};m.prototype.g7a=function(){this.Vd.h(h.L("state"),this.bDa,this,!0);this.Vd.h(h.L("currentTime"),this.$Ca,this,!0);this.Vd.h(h.L("loop"),this.aDa,this,!0)};m.prototype.Qx=function(){this.ra.bind(k.Dg,this.mU,this,!0);this.ra.bind(k.Yj,this.kU,this,!0); this.ra.bind(h.Pd,this.lU,this,!0);this.ra.bind(h.Tb,this.nU,this,!0)};m.prototype.zz=function(){this.ra.h(k.Dg,this.mU,this,!0);this.ra.h(k.Yj,this.kU,this,!0);this.ra.h(h.Pd,this.lU,this,!0);this.ra.h(h.Tb,this.nU,this,!0)};return m}); define("tdv/player/view/panorama/renderer/object/VideoPanoramaFrame","require tdv/utils tdv/constants/EventName tdv/constants/Priority tdv/constants/PlaybackState tdv/player/view/panorama/renderer/object/ImagePlane tdv/player/view/panorama/renderer/object/PanoramaFrame tdv/player/view/panorama/renderer/object/util/EventAggregator tdv/player/view/panorama/renderer/object/util/MeshFactory tdv/player/view/panorama/renderer/object/control/CueController tdv/player/view/panorama/renderer/object/control/VideoPlaybackController tdv/player/view/panorama/renderer/object/util/PanoramaFormat tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/player/view/panorama/renderer/TextureLoader tdv/player/view/util/Device tdv/player/view/util/geo/Quaternion tdv/view/av/SubtitleController tdv/view/av/VideoPlayer tdv/view/events/ProgressEvent tdv/view/util/Assets tdv/view/util/Ease tdv/view/util/EaseDimension".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/constants/Priority"),g=a("tdv/constants/PlaybackState"),k=a("tdv/player/view/panorama/renderer/object/ImagePlane"),e=a("tdv/player/view/panorama/renderer/object/PanoramaFrame"),b=a("tdv/player/view/panorama/renderer/object/util/EventAggregator"),c=a("tdv/player/view/panorama/renderer/object/util/MeshFactory"),d=a("tdv/player/view/panorama/renderer/object/control/CueController"),f=a("tdv/player/view/panorama/renderer/object/control/VideoPlaybackController"), l=a("tdv/player/view/panorama/renderer/object/util/PanoramaFormat"),p=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),q=a("tdv/player/view/panorama/renderer/TextureLoader"),r=a("tdv/player/view/util/Device"),t=a("tdv/player/view/util/geo/Quaternion"),u=a("tdv/view/av/SubtitleController"),v=a("tdv/view/av/VideoPlayer"),w=a("tdv/view/events/ProgressEvent"),y=a("tdv/view/util/Assets"),x=a("tdv/view/util/Ease"),z=a("tdv/view/util/EaseDimension");a=m.extend(e,function(E){e.call(this);this.C=E; this.Rl.push(this.C);this.Yr(["loadingActive","currentTime","panoramaPixelsPerDegree"]);this.set("tag","VideoPanoramaFrame");this.set("frameEmpty",void 0);this.set("hasStableContent",void 0);this.Z0=void 0;this.set("atStart",void 0);l.get(this.C)==l.Nr?this.xma=this.C.get("sphere"):this.xma=this.C.get("stereoSphere");this.Zl=!1;this.hb=v.yk(this.xma);this.$ia=this.vxa=!1;this.hO=[];this.bI=[];this.ip=this.Yl=this.am=this.Nh=this.Th=this.ra=null;this.pn=!1;this.fAa=this.NC=this.OC=0});a.prototype.hc= function(){this.Nh=(new b(h.ia)).jo(this.xs.bind(this));this.am=(new b(h.yc)).kr(this.MH.bind(this));this.ra=new v(this.La.dr(),this.xma);this.ds=new d(this.C.cE(),this.ra);this.Ua=new f(this.La.dr(),this.C.cE(),this.ra);this.wn=new u(this.C.cE(),this.ra);this.Qx();this.w_a();this.vxa=this.La.ld.get("displayPlayOverlay");this.$ia=this.La.ld.get("clickAction")=="play_pause";var E=this.La.Jf(this.C.cE());E.appendChild(this.Yl);E.appendChild(this.ip);e.prototype.hc.call(this)};a.prototype.mc=function(){this.Nh.dispose(); this.am.dispose();this.zz();this.ds.clear();this.ds=null;this.Ua.clear();this.Ua=null;this.wn.clear();this.wn=null;this.ra.clear();this.Th=this.ra=null;this.Cxa();e.prototype.mc.call(this)};a.prototype.w_a=function(){this.Cxa();this.Yl=this.ixa(y.Fx,y.hL,y.t_);this.ip=this.ixa(y.gL,y.FVa,y.EVa)};a.prototype.ixa=function(E,G,N){var O=new k;O.set("url",E);O.set("contentWidth",G);O.set("contentHeight",N);O.set("hfov",10);O.set("yaw",0);O.set("pitch",0);O.set("alpha",0);return O};a.prototype.Cxa=function(){this.Yl&& (this.Yl.remove(),this.Yl=null);this.ip&&(this.ip.remove(),this.ip=null)};a.prototype.iq=function(){this.hO=c.Ndb(this.C,this.hb);this.lbb=q.BK(p.bE(this.hO[0])[0]);this.hO.forEach(function(G){q.gB(G,q.zu);q.fB(G,q.Mr)});this.hb.get("posterURL")?(this.bI=c.Odb(this.C,this.hb),this.bI.forEach(function(G){q.gB(G,q.zu);q.fB(G,q.Mr);q.nK(G,n.cca)})):this.bI=[];var E=[].concat(this.hO,this.bI);this.Nh.hg(E);this.am.hg(E);this.o(new w(h.yc,0));return E};a.prototype.za=function(E){this.Iab(E);var G=this.ra.D7(); this.set("frameEmpty",G.isEmpty());this.set("atStart",!(this.get("currentTime")>1));this.Nla();e.prototype.za.call(this,E);this.Th&&this.Th.isEqual(G)?this.ra.getState()==g.PLAYING&&this.Na():(this.Th=G,this.lbb.ao(this.Th.Zu),this.Na());this.ra.bu(H.makeRotationFromQuaternion(t.gX(E.Xa,E.pitch,E.Mg,B)))};a.prototype.Nla=function(){this.get("frameEmpty")?this.set("hasStableContent",!1):this.get("currentTime")>this.Z0+.2?this.set("hasStableContent",!0):this.get("currentTime")==0&&this.nha>this.ra.lj()- .5?this.set("hasStableContent",!0):this.set("hasStableContent",!1);this.W("frameEmpty")&&!this.get("frameEmpty")&&(this.Z0=this.get("currentTime"));!this.get("frameEmpty")&&this.get("currentTime")>0&&(this.nha=this.get("currentTime"))};a.prototype.Bn=function(){this.W("composedAlpha","meshGroup","frameEmpty","hasStableContent","atStart")&&(this.bI.length&&!this.get("hasStableContent")&&this.get("atStart")?(this.bI.forEach(function(E){p.nf(E,this.get("composedAlpha"))}.bind(this)),this.hO.forEach(function(E){p.nf(E, 0)}.bind(this))):(this.bI.forEach(function(E){p.nf(E,0)}.bind(this)),this.hO.forEach(function(E){p.nf(E,this.get("composedAlpha"))}.bind(this))))};a.prototype.xs=function(){this.o(h.vd);this.o(h.ia)};a.prototype.MH=function(E,G){var N=0;G.kw(function(O){(O=G.Mn(O))&&(N+=O.percent)});this.o(new w(h.yc,N/G.zd.length))};a.prototype.Hj=function(){this.Na()};a.prototype.Nf=function(){this.Na()};a.prototype.$n=function(E){if(E.$f==h.Xf&&!E.om()&&this.$ia&&(E.cu(this.C),E=Date.now(),!(E-this.fAa<500))){this.fAa= E;E=this.C.cE();var G=E.get("state");G==g.PLAYING?E.set("state",g.Zb):G==g.Zb&&E.set("state",g.PLAYING)}};a.prototype.Iab=function(E){if(this.$ia){if(this.pn!=(this.ra.getState()==g.Zb))if(this.pn=!this.pn,this.vxa){var G=this.Yl.get("alpha"),N=this.pn?1:0;this.qz=new x("linear",[new z("playAlpha",G,N),new z("playScale",E.Va?1.5:1,E.Va?1.5:1),new z("pauseAlpha",0,0),new z("pauseScale",1,1)],Math.abs(N-G)*A);this.Yl.yi()}else this.qz=new x("linear",this.pn?[new z("playAlpha",0,0),new z("playScale", 1,1),new z("pauseAlpha",0,2),new z("pauseScale",.5,1.5)]:[new z("playAlpha",0,2),new z("playScale",.5,1.5),new z("pauseAlpha",0,0),new z("pauseScale",1,1)],D),this.Yl.yi(),this.ip.yi();this.qz&&(this.qz.Nb(E.zf),G=this.qz.ob("playAlpha"),this.Yl.set("alpha",G<1?G:2-G),this.Yl.set("scale",this.qz.ob("playScale")),G=this.qz.ob("pauseAlpha"),this.ip.set("alpha",G<1?G:2-G),this.ip.set("scale",this.qz.ob("pauseScale")),this.Na(),this.qz.Ve()&&(this.qz=null));this.Yl.get("alpha")>0&&(this.get("globalBlendingActive")&& this.Yl.set("alpha",0),this.Yl.set("yaw",E.Xa),this.Yl.set("pitch",E.pitch),this.Yl.set("hfov",this.eza(E)));this.ip.get("alpha")>0&&(this.get("globalBlendingActive")&&this.ip.set("alpha",0),this.ip.set("yaw",E.Xa),this.ip.set("pitch",E.pitch),this.ip.set("hfov",this.eza(E)))}};var A=300,D=600;a.prototype.eza=function(E){return E.Va?15:2*Math.atan((r.ub()?Math.min(E.width,E.height)/100*20:y.hL)*Math.tan(E.Wd*F*.5)/E.width)*C};var F=Math.PI/180,C=180/Math.PI;a.prototype.Qx=function(){this.ra.bind(v.Dg, this.Nf,this,!0);this.ra.bind(h.Pd,this.Hj,this,!0)};a.prototype.zz=function(){this.ra.h(v.Dg,this.Nf,this,!0);this.ra.h(h.Pd,this.Hj,this,!0)};var B=new THREE.Quaternion,H=new THREE.Matrix4;return a}); define("tdv/player/view/panorama/renderer/object/Popup","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/PlaybackState tdv/player/view/panorama/renderer/3d/util/Util tdv/player/view/panorama/renderer/object/Base tdv/player/view/panorama/renderer/object/SolidFrame tdv/player/view/panorama/renderer/object/CustomPlane tdv/player/view/panorama/renderer/object/ImagePlane tdv/player/view/panorama/renderer/object/control/VideoPlaybackController tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController tdv/player/view/panorama/renderer/object/util/EventAggregator tdv/player/view/panorama/renderer/object/util/LevelUtil tdv/player/view/util/ColorPicker tdv/player/view/util/geo/Fov tdv/view/core/UIComponent tdv/view/events/ProgressEvent tdv/view/util/Ease tdv/view/util/EaseDimension tdv/view/av/VideoPlayer".split(" "),function(a){function m(C){setTimeout(C, 0)}function h(C,B){for(C-=B;C>180;)C-=360;for(;C<-180;)C+=360;return C+B}var n=a("tdv/utils"),g=a("tdv/binding/BindingsHandler"),k=a("tdv/constants/EventName"),e=a("tdv/constants/PlaybackState");a("tdv/player/view/panorama/renderer/3d/util/Util");var b=a("tdv/player/view/panorama/renderer/object/Base"),c=a("tdv/player/view/panorama/renderer/object/SolidFrame"),d=a("tdv/player/view/panorama/renderer/object/CustomPlane"),f=a("tdv/player/view/panorama/renderer/object/ImagePlane"),l=a("tdv/player/view/panorama/renderer/object/control/VideoPlaybackController"), p=a("tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController"),q=a("tdv/player/view/panorama/renderer/object/util/EventAggregator"),r=a("tdv/player/view/panorama/renderer/object/util/LevelUtil"),t=a("tdv/player/view/util/ColorPicker"),u=a("tdv/player/view/util/geo/Fov"),v=a("tdv/view/core/UIComponent"),w=a("tdv/view/events/ProgressEvent"),y=a("tdv/view/util/Ease"),x=a("tdv/view/util/EaseDimension"),z=a("tdv/view/av/VideoPlayer"),A=Math.PI/180;a=n.extend(b,function(C){b.call(this); this.C=C;this.Rl.push(this.C);this.Qg=this.Qg.bind(this);this.H3=this.H3.bind(this);this.Yr(["loadingActive","currentTime","panoramaPixelsPerDegree"]);this.set("tag","Popup");this.set("inVR",!1);this.set("enabledInStandard",!0);this.set("interactionEnabled",!0);this.set("loadingActive",!1);this.set("frameEmpty",!0);this.set("state",e.ca);this.set("itemVisible","none");this.set("visible",!1);this.set("visiblePosition",0);this.set("alpha",0);this.set("over",!1);this.set("gazeOver",!1);this.set("video", null);this.set("image",null);this.set("actualVisible",!1);this.ae=this.Lb=this.lb=this.xe=this.qg=null;this.Ib=new p;this.Yx=this.LC=this.Dn=this.Th=this.ra=null});a.prototype.hc=function(){this.qg=(new q(k.ia)).jo(this.HH.bind(this));this.xe=(new q(k.yc)).kr(this.LH.bind(this));b.prototype.hc.call(this);this.LZa();this.appendChild(this.ae);g.ba(this.C,D,this.Qg,!0);g.KD(this.C,F,this.H3,!0)};var D="playbackPositions popupDistance popupMaxHeight popupMaxWidth image.levels.url video state".split(" "), F=["visible"];a.prototype.mc=function(){this.qg.dispose();this.xe.dispose();g.da(this.C,D,this.Qg);g.da(this.C,F,this.H3);this.LG();this.zC();this.Yu();b.prototype.mc.call(this)};a.prototype.Qg=function(){var C=r.Kfb(this.C,this.get("panoramaPixelsPerDegree"));this.set("imageURL",C&&C.get("url"));this.set("imageWidth",C&&C.get("width"));this.set("imageHeight",C&&C.get("height"));this.set("video",this.C.get("video"));this.set("state",this.C.get("state"));this.set("popupDistance",this.C.get("popupDistance")); this.set("popupMaxWidth",this.C.get("popupMaxWidth"));this.set("popupMaxHeight",this.C.get("popupMaxHeight"));this.set("playbackPositions",this.C.get("playbackPositions"))};a.prototype.H3=function(){this.set("visible",this.C.get("visible"))};a.prototype.za=function(C){this.pD=C.Xa;this.oD=C.pitch;this.dt(C);this.Jab();this.fW(C);this.ye(C);this.vab(C);this.eab(C);b.prototype.za.call(this,C)};a.prototype.Jab=function(){this.W("playbackPositions","currentTime")&&(this.Ib.YE(this.get("playbackPositions")), this.Ib.WE(this.get("currentTime")),this.set("sourceYaw",this.Ib.get("yaw")),this.set("sourcePitch",this.Ib.get("pitch")),this.set("sourceRotationX",this.Ib.get("rotationX")),this.set("sourceRotationY",this.Ib.get("rotationY")),this.set("sourceRotationZ",this.Ib.get("rotationZ")),this.set("sourceHFOV",this.Ib.get("hfov")))};a.prototype.dt=function(){if(this.W("video","imageURL")){var C=[this.ae];this.W("imageURL")&&(this.HR(),this.lb&&C.push(this.lb),this.ZU("itemVisible"));this.W("video")&&(this.JR(), this.Lb&&C.push(this.Lb),this.ZU("itemVisible"));this.qg.hg(C);this.xe.hg(C);this.bi(C)}};a.prototype.fW=function(){if(this.ra){var C=this.ra.D7();this.set("frameEmpty",!!C&&C.isEmpty());!this.Th||C&&!this.Th.isEqual(C)?(this.Th=C,this.Lb.set("source",this.Th.Zu),this.Lb.set("sourceUpdated",!0),this.Na()):this.ra.getState()==e.PLAYING&&this.Na()}else this.set("frameEmpty",!1)};a.prototype.ye=function(C){this.set("inVR",C.Va);this.set("hotspotsEnabled",C.CJ);this.set("rendererYaw",C.Xa);this.set("rendererPitch", C.pitch);this.set("rendererRoll",C.Mg);this.set("rendererWidth",C.Sj);this.set("rendererHeight",C.Rj);this.set("rendererHFOV",C.Wd);if(this.W("visible")){var B=this.get("visiblePosition"),H=this.get("visible")?1:0,E=Math.max(1,this.C.get(this.get("visible")?"showDuration":"hideDuration")*Math.abs(H-B)),G=this.C.get(this.get("visible")?"showEasing":"hideEasing");B!=H&&(this.Dn=new y(G,[new x("position",B,H)],E));this.get("visible")||(this.set("actualVisible",!1),this.ra&&this.ra.Zc(e.ca))}this.Dn&& (this.Dn.Ve()?(this.Dn=null,this.get("visible")?(this.set("actualVisible",!0),this.C.o(k.TQ),this.C.get("autoplay")&&this.ra&&this.ra.Zc(e.PLAYING)):m(function(){this.C&&this.C.o(k.ZK)}.bind(this))):this.Dn.Nb(C.zf),this.Dn&&(this.set("visiblePosition",this.Dn.ob("position")),this.Na()));B=!1;if(B=C.Va?this.W("visible","itemVisible"):this.W("rendererYaw","rendererPitch","rendererRoll","rendererWidth","rendererHeight","rendererHFOV","itemVisible","popupMaxWidth","popupMaxHeight","sourceHFOV"))this.set("targetImageScale", this.mza(this.lb,C)),this.set("targetVideoScale",this.mza(this.Lb,C)),this.set("targetYaw",h(this.get("rendererYaw"),this.get("sourceYaw"))),this.set("targetPitch",this.get("rendererPitch")),this.set("targetRotationZ",h(C.Va?0:this.get("rendererRoll"),this.get("sourceRotationZ")));if(B||this.W("visiblePosition","targetScale","targetYaw","targetPitch","targetRoll","popupDistance","hfov")){H=this.get("visiblePosition");var N=this.get("targetYaw")*H+this.get("sourceYaw")*(1-H),O=this.get("targetPitch")* H+this.get("sourcePitch")*(1-H),R=this.get("sourceRotationX")*(1-H),Q=this.get("sourceRotationY")*(1-H),K=this.get("targetRotationZ")*H+this.get("sourceRotationZ")*(1-H);C=Math.min(1,2*H);var L=this.get("popupDistance"),U=this.get("sourceHFOV");B=this.get("targetImageScale")*H+(1-H);H=this.get("targetVideoScale")*H+(1-H);this.set("alpha",C);this.lb&&this.lb.set("scale",B);this.Lb&&this.Lb.set("scale",H);[].concat(this.Lb?[this.Lb]:[],this.lb?[this.lb]:[]).forEach(function(T){T.set("yaw",N);T.set("pitch", O);T.set("rotationX",R);T.set("rotationY",Q);T.set("rotationZ",K);T.set("distance",L);T.set("hfov",U)})}};a.prototype.vab=function(C){if(this.W("frameEmpty","state","imageURL","video")){var B="none";!this.Lb||this.lb&&(this.get("frameEmpty")||this.get("state")==e.ca)?this.lb&&(B="image"):B="video";this.set("itemVisible",B)}if(this.W("itemVisible")){this.get("itemVisible")!="video"&&this.ra&&this.ra.Zc(e.ca);B=this.lb?this.lb.get("alpha"):0;var H=this.Lb?this.Lb.get("alpha"):0,E=this.get("itemVisible")== "image"?1:0,G=this.get("itemVisible")=="video"?1:0,N=this.get("itemVisible")=="video"?1:Math.max(Math.abs(E-B),Math.abs(G-H))*200;this.LC=new y("linear",[new x("imageAlpha",B,E),new x("videoAlpha",H,G)],N)}this.LC&&(this.LC.Ve()?this.LC=null:this.LC.Nb(C.zf),this.LC&&(this.lb&&this.lb.set("alpha",this.LC.ob("imageAlpha")),this.Lb&&this.Lb.set("alpha",this.LC.ob("videoAlpha")),this.Na()))};a.prototype.eab=function(C){this.W("gazeOver","inVR","visible","actualVisible")&&(this.Jwa(),this.get("inVR")&& this.C.get("lookAwayToHide")&&!this.get("gazeOver")&&this.get("actualVisible")&&this.H9a());C.Va&&this.C.get("darkenBackground")&&this.C.get("lookAwayToHide")?(this.W("visible")&&this.get("visible")&&(this.ae.set("alpha",.8),this.Yx=null),this.W("gazeOver")&&(this.Yx=new y(this.get("gazeOver")?"linear":"quad_in",[new x("alpha",this.ae.get("alpha"),this.get("gazeOver")?.8:0)],this.get("gazeOver")?300:this.C.get("lookAwayToHideTime")))):(this.Yx=null,this.ae.set("alpha",C.Va&&this.C.get("darkenBackground")? .8:0));this.Yx&&(this.Yx.Ve()?this.Yx=null:this.Yx.Nb(C.zf),this.Yx&&(this.ae.set("alpha",this.Yx.ob("alpha")),this.Na()))};a.prototype.H9a=function(){this.Jwa();this.p2=setTimeout(function(){this.p2=null;this.C.set("visible",!1)}.bind(this),this.C.get("lookAwayToHideTime"))};a.prototype.Jwa=function(){this.p2&&(clearTimeout(this.p2),this.p2=null)};a.prototype.mza=function(C,B){if(!C)return 1;var H=this.get("popupMaxWidth","100%"),E=v.Cp(H),G=C.get("contentWidth"),N=C.get("contentHeight"),O=this.get("popupMaxHeight", "100%"),R=v.Cp(O);if(this.get("inVR")){var Q=C=this.get("rendererWidth")*.5,K=Math.min(B.kj,80);B=u.gJ(K,C,Q);var L=this.get("sourceHFOV");H=Math.min(Math.tan(B*(E!==void 0?E/100:H/C)*.5*A)/Math.tan(L*.5*A),Math.tan(K*(R!==void 0?R/100:O/Q)*.5*A)/Math.tan(u.gJ(L,G,N)*.5*A))}else C=this.get("rendererWidth"),Q=this.get("rendererHeight"),H=G*Math.min((E!==void 0?C*E/100:H)/G,(R!==void 0?Q*R/100:O)/N),B=this.get("rendererHFOV"),L=this.get("sourceHFOV"),H=Math.tan(B*.5*A)*H/C/Math.tan(L*.5*A);return H}; a.prototype.HR=function(){this.LG();this.get("imageURL")&&(this.lb=new f,this.lb.set("url",this.get("imageURL")),this.lb.set("contentWidth",this.get("imageWidth")),this.lb.set("contentHeight",this.get("imageHeight")),this.lb.set("alpha",0))};a.prototype.LG=function(){this.lb&&(this.lb.remove(),this.lb=null)};a.prototype.JR=function(){this.zC();if(this.get("video")){this.Lb=new d;var C=z.yk(this.get("video"));this.Lb.set("contentWidth",C.get("width"));this.Lb.set("contentHeight",C.get("height"));this.Lb.set("alpha", 0);this.Lb.set("sourceIsVideo",!0);this.ra=new z(this.La.dr(),this.get("video"));this.Ua=new l(this.La.dr(),this.C,this.ra);this.Qx()}};a.prototype.zC=function(){this.Lb&&(this.zz(),this.Ua.clear(),this.Ua=null,this.ra.clear(),this.Th=this.ra=null,this.Lb.remove(),this.Lb=null)};a.prototype.LZa=function(){this.Yu();this.ae=new c("#000000")};a.prototype.Yu=function(){this.ae&&(this.ae.remove(),this.ae=null)};a.prototype.HH=function(){this.o(k.vd);this.o(k.ia)};a.prototype.LH=function(C,B){var H=0; B.kw(function(E){var G=0,N;this.qg.Mn(E)?G=100:(N=this.xe.Mn(E))&&(G=N.percent);H+=G}.bind(this));this.o(new w(k.yc,H/B.zd.length))};a.prototype.Hj=function(){this.Na()};a.prototype.Nf=function(){this.Na()};a.prototype.dD=function(){this.C.o(k.Tb)};a.prototype.Qx=function(){this.ra.bind(z.Dg,this.Nf,this,!0);this.ra.bind(k.Pd,this.Hj,this,!0);this.ra.bind(k.Tb,this.dD,this,!0)};a.prototype.zz=function(){this.ra.h(z.Dg,this.Nf,this,!0);this.ra.h(k.Pd,this.Hj,this,!0);this.ra.h(k.Tb,this.dD,this,!0)}; a.prototype.$n=function(C){C.$f==k.Im?(!C.om()&&this.get("visible")?(C.cu(this.C),this.set("over",this.Zs(C)),this.set("gazeOver",this.n$a(C))):this.set("over",!1),this.get("over")&&(C.LD(this.C),C.Aw()&&C.TI(this.C),C.lm(this.get("popupDistance"))),this.W("over")&&(this.C.o(this.get("over")?k.uc:k.Eb),C.Aw()&&this.C.o(this.get("over")?k.RF:k.Or))):C.$f==k.Xf&&!C.om()&&this.get("visible")&&(C.cu(this.C),C.lm(this.get("popupDistance")),this.Zs(C)?C.nhb()||this.C.o(k.ma):this.C.set("visible",!1))}; a.prototype.Zs=function(C){return this.YFa(C.Os)};a.prototype.n$a=function(C){C=C.aP();return!!C&&this.YFa([C])};a.prototype.YFa=function(C){if(this.get("visible")){C=(this.get("itemVisible")=="video"?this.Lb:this.lb).Fy(C);for(var B=0;B1&&h.cu(this.C),h.lm(this.get("distance")),this.C.o(m.ma))},Zs:function(h){return this.get("beamEnabled")&&this.Yfa().Fy(h.Os).length>0?!0:!1},jc:function(h){return!h||this.C.get("displayTooltipInTouchScreens")&&this.La.P.get("displayTooltipInTouchScreens")!==!1?this.C.get("toolTip",""):""},BD:function(h){if(h){h=this.get("yaw")-this.pD;var n=this.get("pitch")- this.oD;return Math.sqrt(h*h+n*n)}return 0}}}); define("tdv/player/view/panorama/renderer/object/FrameHotspot","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/view/panorama/renderer/object/ComposedObject tdv/player/view/panorama/renderer/object/overlay/FocusedMixin tdv/player/view/panorama/renderer/object/util/EventAggregator tdv/player/view/panorama/renderer/object/util/LevelUtil tdv/player/view/panorama/renderer/object/pointer/FrameHotspotPointerMixin".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/BindingsHandler"), n=a("tdv/constants/EventName"),g=a("tdv/player/view/panorama/renderer/object/ComposedObject"),k=a("tdv/player/view/panorama/renderer/object/overlay/FocusedMixin"),e=a("tdv/player/view/panorama/renderer/object/util/EventAggregator"),b=a("tdv/player/view/panorama/renderer/object/util/LevelUtil");a=a("tdv/player/view/panorama/renderer/object/pointer/FrameHotspotPointerMixin");m=m.extend(g,a,k,function(c){g.call(this);this.C=c;this.lH=this.ufa=this.tga=null;this.Rl.push(this.C);this.Qg=this.Qg.bind(this); this.Yr(["loadingActive","panoramaPixelsPerDegree"]);this.set("tag","FrameHotspot");this.set("enabled",!0);this.set("inVR",!1);this.set("inScreenshot",!1);this.set("overlaysEnabled",!0);this.set("interactionEnabled",!0);this.set("contentInteractive",!1);this.set("transparent",!1);this.set("centerOverDisplay",!1);this.set("loadingActive",!1);this.set("visible",!1);this.set("loaded",!1);this.set("inView",!1);this.set("frameHidden",!0);this.Hg=this.gv=this.xe=this.qg=null;this.oka(this.C)});m.prototype.hc= function(){this.qg=(new e(n.ia)).jo(this.HH.bind(this));this.xe=(new e(n.yc)).kr(this.LH.bind(this));this.UZa();g.prototype.hc.call(this);h.ba(this.C,"url enabled image fadeInDuration fadeOutDuration contentInteractive interactionEnabled transparent".split(" "),this.Qg,!0);this.ofa()};m.prototype.mc=function(){this.pfa();this.qg.dispose();this.xe.dispose();h.da(this.C,"url enabled image fadeInDuration fadeOutDuration contentInteractive interactionEnabled transparent".split(" "),this.Qg);this.yxa(); this.Axa();g.prototype.mc.call(this)};m.prototype.Qg=function(){this.set("url",this.C.get("url"));this.Hg.set("url",this.get("url"));this.set("image",this.C.get("image"));this.lb.set("image",this.get("image"));this.lb.set("level",this.get("image")&&b.gLa(this.C,this.get("panoramaPixelsPerDegree")));this.set("enabled",this.C.get("enabled"));this.set("fadeInDuration",this.C.get("fadeInDuration"));this.set("fadeOutDuration",this.C.get("fadeOutDuration"));this.set("interactionEnabled",this.C.get("interactionEnabled")); this.set("contentInteractive",this.C.get("contentInteractive"));this.set("transparent",this.C.get("transparent"));this.Na()};m.prototype.za=function(c){this.set("loaded",!!this.Hg&&this.Hg.get("frameLoaded"));this.set("inVR",c.Va);this.set("inScreenshot",c.FJ);this.set("hotspotsEnabled",c.CJ);g.prototype.za.call(this,c);this.ye(c);this.Kla(c)};m.prototype.UZa=function(){this.HR();this.f_a();this.e_a();var c=[this.lb,this.gv,this.Hg];this.qg.hg(c);this.xe.hg(c);this.bi(c)};m.prototype.ye=function(){this.set("globalBlendingActiveCopy", this.get("globalBlendingActive"));if(this.W("globalBlendingActive","globalBlendingActiveCopy","url","inVR","hotspotsEnabled","enabled","interactionEnabled","contentInteractive","composedTranslationX","composedTranslationY","composedTranslationZ")){var c=!(this.get("composedTranslationX")!=0||this.get("composedTranslationY")!=0||this.get("composedTranslationZ")!=0)&&this.get("globalBlendingActive")==0&&this.get("hotspotsEnabled")&&this.get("enabled")&&!this.get("inVR")&&!!this.get("url");this.set("visible", c);this.set("beamEnabled",c&&this.get("interactionEnabled"));this.Hg.set("contentInteractive",c&&this.get("interactionEnabled")&&this.get("contentInteractive"))}this.set("frameHidden",!this.Hg.get("geometryVisible"));this.W("visible","loaded","frameHidden","transparent","inScreenshot")&&(this.get("visible")||this.set("loaded",!1),this.lb.set("alpha",!this.get("visible")||!this.get("frameHidden")&&this.get("loaded")?0:1),this.lb.set("alpha",1),this.gv.set("alpha",!this.get("visible")||this.get("frameHidden")|| !this.get("loaded")||this.get("transparent")||this.get("inScreenshot")?0:1),this.Hg.set("alpha",this.get("visible")?1:0),this.Hg.set("transparent",this.get("transparent")),this.set("inView",this.get("visible")&&(this.get("loaded")||this.get("image"))),this.Na());this.W("inView")&&this.C.o(this.get("inView")?n.od:n.jd)};m.prototype.HR=function(){this.LG();this.lb=new this.lH;this.lb.set("image",this.get("image"));this.lb.set("level",this.get("image")&&b.gLa(this.C,this.get("panoramaPixelsPerDegree"))); this.lb.set("visible",!0);this.lb.set("alpha",0);this.set("imagePlane",this.lb)};m.prototype.LG=function(){this.lb&&(this.lb.remove(),this.lb=null,this.set("imagePlane",null))};m.prototype.e_a=function(){this.yxa();this.Hg=new this.ufa;this.Hg.bind(n.ia,this.jya,this,!0);this.Hg.set("url",this.get("url"));this.Hg.set("visible",!0);this.Hg.set("alpha",1);this.set("framePlane",this.Hg)};m.prototype.yxa=function(){this.Hg&&(this.Hg.h(n.ia,this.jya,this,!0),this.Hg.remove(),this.Hg=null,this.set("framePlane", null))};m.prototype.f_a=function(){this.Axa();this.gv=new this.tga;this.gv.set("visible",!0);this.gv.set("alpha",1);this.set("holePlane",this.gv)};m.prototype.Axa=function(){this.gv&&(this.gv.remove(),this.gv=null,this.set("holePlane",null))};m.prototype.Yfa=function(){return this.gv};m.prototype.jya=function(){this.Na()};m.prototype.HH=function(){this.o(n.vd);this.o(n.ia)};m.prototype.LH=function(c,d){var f=0;d.kw(function(l){(l=d.Mn(l))&&(f+=l.percent)});this.o(new ProgressEvent(n.yc,f/d.zd.length))}; return m}); define("tdv/player/view/panorama/renderer/object/ComposedCSSObject",["require","tdv/utils","tdv/player/view/panorama/renderer/object/Base"],function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/renderer/object/Base");a=m.extend(h,function(){h.call(this);this.set("tag","ComposedCSSObject");this.set("transparent",!1);this.set("cssScene",null);this.set("cssSceneOver",null);this.set("cssObject",this.$da());this.ly&&this.ly();this.IG&&this.IG();this.pC&&this.pC();this.jq&&this.jq()});a.prototype.$da= function(){var n=new THREE.CSS3DObject;n.matrixAutoUpdate=!1;return n};a.prototype.hc=function(){h.prototype.hc.call(this);this.Aq&&this.Aq();this.fT&&this.fT();this.lN&&this.lN()};a.prototype.mc=function(){this.KM&&this.KM();this.nN&&this.nN();this.Cq&&this.Cq();var n=this.get("cssObject");n&&n.parent&&n.parent.remove(n);this.set("cssScene",null);h.prototype.mc.call(this)};a.prototype.za=function(n){this.cg&&this.cg(n);h.prototype.za.call(this,n);this.set("cssScene",n.PW);this.set("cssSceneOver", n.QW);if(this.W("transparent")){var g=this.get("cssObject");g&&g.parent&&g.parent.remove(g)}this.W("cssScene","cssSceneOver","transparent")&&(g=this.get("transparent")?n.QW:n.PW)&&g.add(this.get("cssObject"));this.Bn();this.Qj&&this.Qj(n);this.Wz&&this.Wz(n);this.KI()};a.prototype.Bn=function(){this.W("composedAlpha","meshGroup")&&this.aC()};a.prototype.aC=function(){this.get("cssObject").element.style.display=this.get("composedAlpha")>0?"block":"none"};a.prototype.KI=function(){this.W("index")&& (this.get("cssObject").containerElement.style.zIndex=this.get("index"))};return a}); define("tdv/player/view/panorama/renderer/object/geometry/CSSQuadGeometryMixin",["require","tdv/player/view/panorama/renderer/3d/util/GeometryUtil","tdv/player/view/util/geo/Vector"],function(a){var m=a("tdv/player/view/panorama/renderer/3d/util/GeometryUtil"),h=a("tdv/player/view/util/geo/Vector"),n=new THREE.Matrix4,g=Math.PI/180;return{ly:function(){this.set("vertices",void 0);this.wi=new THREE.Matrix4;this.ke=new THREE.Matrix4;this.Bq=new THREE.Matrix4;this.Ho=new THREE.Matrix4;this.ws=new THREE.Matrix4}, $da:function(){var k=new THREE.CSS3DQuad;k.matrixAutoUpdate=!1;return k},Wz:function(k){var e=!1;if(this.W("vertices","contentWidth","contentHeight")){var b=this.get("vertices");e=h.yt(b[0].get("yaw")*g,b[0].get("pitch")*g).normalize();var c=h.yt(b[1].get("yaw")*g,b[1].get("pitch")*g).normalize(),d=h.yt(b[2].get("yaw")*g,b[2].get("pitch")*g).normalize();b=h.yt(b[3].get("yaw")*g,b[3].get("pitch")*g).normalize();var f=this.get("cssObject");f.vertices[0].set(e.x,e.y,-e.z);f.vertices[1].set(c.x,c.y,-c.z); f.vertices[2].set(d.x,d.y,-d.z);f.vertices[3].set(b.x,b.y,-b.z);f.contentWidth=this.get("contentWidth");f.contentHeight=this.get("contentHeight");e=!0}c=!1;this.W("composedTranslationX","composedTranslationY","composedTranslationZ")&&(this.wi.makeTranslation(-this.get("composedTranslationX")*.5*m.th,this.get("composedTranslationY")*.5*m.th,this.get("composedTranslationZ")*.5*m.th),c=!0);this.W("composedDeltaYaw","composedDeltaPitch","composedDeltaRoll")&&(this.ke.makeRotationY(-k.Xa*g),this.ke.multiply(n.makeRotationX(-this.get("composedDeltaPitch")* g)),this.ke.multiply(n.makeRotationY(this.get("composedDeltaYaw")*g)),this.ke.multiply(n.makeRotationY(k.Xa*g)),c=!0);if(c||this.W("meshGroup"))this.ws.copy(this.wi),this.ws.multiply(this.ke),this.get("cssObject").matrix.copy(this.ws),this.get("cssObject").matrixWorldNeedsUpdate=!0;this.set("cameraYaw",k.Xa);this.set("cameraPitch",k.pitch);this.set("cameraRoll",k.Mg);this.set("cameraHfov",k.Wd);this.set("cameraWidth",k.width);this.set("cameraHeight",k.height);k.camera&&(c||e||this.W("cameraYaw","cameraPitch", "cameraRoll","cameraHfov","cameraWidth","cameraHeight"))&&(this.get("cssObject").projectVertices(k.camera),this.set("geometryVisible",this.get("cssObject").isVisible),this.W("geometryVisible")&&this.Vja())}}}); define("tdv/player/view/panorama/renderer/object/geometry/QuadGeometryMixin","require tdv/constants/Priority tdv/player/view/panorama/renderer/3d/util/GeometryUtil tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/player/view/panorama/renderer/TextureLoader tdv/player/view/util/geo/Vector".split(" "),function(a){var m=a("tdv/constants/Priority"),h=a("tdv/player/view/panorama/renderer/3d/util/GeometryUtil"),n=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),g=a("tdv/player/view/panorama/renderer/TextureLoader"), k=a("tdv/player/view/util/geo/Vector"),e=new THREE.Matrix4,b=Math.PI/180;return{ly:function(){this.set("distance",void 0);this.set("vertices",void 0);this.Lh=null;this.wi=new THREE.Matrix4;this.ke=new THREE.Matrix4;this.tn=new THREE.Matrix4;this.Dj=new THREE.Matrix4},Wz:function(c){this.dbb(c);this.et(c)},mM:function(){var c=this.get("meshGroup");return c?n.rm(c)[0]:null},iq:function(){this.Lh||(this.Lh=this.oC());return[0].map(function(c){var d=this.FR();c=n.create(this.Lh[c],d);g.fB(c,g.Mr);g.gB(c, g.zu);g.nK(c,m.QQ);g.mZ(c,1);return c}.bind(this))},dbb:function(){if(this.W("vertices")){var c=this.get("meshGroup");if(c)return this.Lh&&this.Lh.forEach(function(d){h.dispose(d)}),this.Lh=this.oC(),n.rm(c).map(function(d,f){n.hra(d,this.Lh[f])}.bind(this))}},oC:function(){function c(w){return w==0||isNaN(w)||!isFinite(w)}var d=this.get("vertices")||[];if(d.length!=4)return[h.LJa(-1,1,1,1,1,1,1,-1,1,-1,-1,1)];var f=k.yt(d[0].get("yaw")*b,d[0].get("pitch")*b).normalize(),l=k.yt(d[1].get("yaw")*b, d[1].get("pitch")*b).normalize(),p=k.yt(d[2].get("yaw")*b,d[2].get("pitch")*b).normalize();d=k.yt(d[3].get("yaw")*b,d[3].get("pitch")*b).normalize();var q=f.clone().a7(p),r=d.clone().a7(l),t=q.clone().a7(r).normalize();r=(f.y*2*t.x/f.x-2*t.y)/(-p.y+f.y*p.x/f.x);c(r)&&(r=(f.z*2*t.x/f.x-2*t.z)/(-p.z+f.z*p.x/f.x));c(r)&&(r=(f.z*2*t.y/f.y-2*t.z)/(-p.z+f.z*p.y/f.y));var u=(2*t.x-p.x*r)/f.x;c(u)&&(u=(2*t.y-p.y*r)/f.y);c(u)&&(u=(2*t.z-p.z*r)/f.z);q=(l.y*2*t.x/l.x-2*t.y)/(-d.y+l.y*d.x/l.x);c(q)&&(q=(l.z* 2*t.x/l.x-2*t.z)/(-d.z+l.z*d.x/l.x));c(q)&&(q=(l.z*2*t.y/l.y-2*t.z)/(-d.z+l.z*d.y/l.y));var v=(2*t.x-d.x*q)/l.x;c(v)&&(v=(2*t.y-d.y*q)/l.y);c(v)&&(v=(2*t.z-d.z*q)/l.z);f=f.cZ(u);l=l.cZ(v);p=p.cZ(r);d=d.cZ(q);return[h.LJa(f.x,f.y,-f.z,l.x,l.y,-l.z,p.x,p.y,-p.z,d.x,d.y,-d.z)]},et:function(c){var d=!1;this.W("composedTranslationX","composedTranslationY","composedTranslationZ")&&(this.wi.makeTranslation(-this.get("composedTranslationX")*.5*h.th,this.get("composedTranslationY")*.5*h.th,this.get("composedTranslationZ")* .5*h.th),d=!0);this.W("composedDeltaYaw","composedDeltaPitch","composedDeltaRoll")&&(this.ke.makeRotationY(-c.Xa*b),this.ke.multiply(e.makeRotationX(-this.get("composedDeltaPitch")*b)),this.ke.multiply(e.makeRotationY(this.get("composedDeltaYaw")*b)),this.ke.multiply(e.makeRotationY(c.Xa*b)),d=!0);this.W("distance","composedTranslationX","composedTranslationY","composedTranslationZ")&&(c=this.Ia.get("composedTranslationX")==0&&this.Ia.get("composedTranslationY")==0&&this.Ia.get("composedTranslationZ")== 0&&this.get("distance")!==void 0?h.pw(this.get("distance")):h.Ct(),this.tn.makeScale(c,c,c),d=!0);if(d||this.W("meshGroup"))this.Dj.copy(this.wi),this.Dj.multiply(this.ke),this.Dj.multiply(this.tn),c=n.rm(this.get("meshGroup")),n.nt(c[0],this.Dj)}}}); define("tdv/player/view/panorama/renderer/object/material/IFrameMaterialMixin",["require","tdv/constants/EventName"],function(a){var m=a("tdv/constants/EventName");return{IG:function(){this.set("visible",!1);this.set("inView",!1);this.set("url",!1);this.set("contentWidth",100);this.set("contentHeight",100);this.set("contentInteractive",!1);this.set("frameLoaded",!0);this.Nc=this.Md=null;this.B1=void 0;this.p6=this.p6.bind(this);this.q6=this.q6.bind(this);this.r6=this.r6.bind(this);this.kH=this.kH.bind(this); this.zga=this.zga.bind(this)},Qj:function(){this.W("cssObject")&&(this.g_a(),this.get("cssObject").element.appendChild(this.Md));this.W("url")&&this.B8a(this.get("url"));this.W("contentWidth","contentHeight")&&(this.Md.style.width=this.get("contentWidth")+2+"px",this.Md.style.height=this.get("contentHeight")+2+"px");this.W("contentInteractive")&&(this.Md.style.pointerEvents=this.get("contentInteractive")?"auto":"none")},Bn:function(){this.W("composedAlpha")&&(this.get("composedAlpha")>0?this.Nc&& !this.Nc.parentNode&&(this.NGa(),this.Md.appendChild(this.Nc)):this.Nc&&this.Nc.parentNode&&this.Md.removeChild(this.Nc))},fT:function(){this.o(m.vd);this.get("frameLoaded")&&this.o(m.ia)},KM:function(){this.qZa()},q6:function(h){h.preventDefault();h.stopImmediatePropagation()},p6:function(){this.La.dr().OE(null)},r6:function(h){h.preventDefault();h.stopImmediatePropagation()},kH:function(){this.set("frameLoaded",!0);this.o(m.ia)},zga:function(){this.C1=null;this.kH()},g_a:function(){this.Nc||(this.Md= document.createElement("div"),this.Md.style.position="absolute",this.Md.style.left=this.Md.style.top="-1px",this.get("cssObject").isCSS3DObject&&(this.Md.style.transform="translate(-50%, -50%)"),this.Md.style.overflow="hidden",this.Md.style["-webkit-overflow-scrolling"]="touch",this.Md.addEventListener("mouseenter",this.p6,!0),this.Md.addEventListener("mousemove",this.q6,!0),this.Md.addEventListener("mousewheel",this.r6,!0),this.Nc=document.createElement("iframe"),this.Nc.setAttribute("allow","fullscreen; accelerometer; geolocation; gyroscope; magnetometer; vr; autoplay; camera; microphone; display-capture; xr-spatial-tracking"), this.Nc.setAttribute("frameborder","0"),this.Nc.setAttribute("scrolling","auto"),this.Nc.style.width="100%",this.Nc.style.height="100%",this.Nc.addEventListener("load",this.kH,!0),this.get("composedAlpha")>0&&this.Md.appendChild(this.Nc))},qZa:function(){this.Nc&&(this.Nc.src="",this.Oja(),this.nC(),this.Nc.parentNode&&this.Nc.parentNode.removeChild(this.Nc),this.Nc=null);this.Md&&(this.Md.parentNode&&this.Md.parentNode.removeChild(this.Md),this.Md.removeEventListener("mouseenter",this.p6,!0),this.Md.removeEventListener("mousemove", this.q6,!0),this.Md.removeEventListener("mousewheel",this.r6,!0),this.Md=null)},B8a:function(h){this.B1!==h&&(this.B1=h,this.set("frameLoaded",!1),this.NGa())},NGa:function(){this.B1?(this.G8a(),this.jXa(),this.Nc.src=this.B1):(this.nC(),this.Oja(),this.Nc.src="",this.kH())},G8a:function(){this.nC();this.C1=setTimeout(this.zga,3E3)},nC:function(){this.C1&&(clearTimeout(this.C1),this.C1=null)},jXa:function(){this.Oja();this.Nc.addEventListener("load",this.kH,!0)},Oja:function(){this.Nc.removeEventListener("load", this.kH,!0)}}}); define("tdv/player/view/panorama/renderer/object/material/PassthroughMaterialMixin",["require","tdv/player/view/panorama/renderer/3d/util/MeshUtil","tdv/constants/EventName"],function(a){var m=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),h=a("tdv/constants/EventName");return{IG:function(){this.get("materialConfig").params.blending=THREE.NoBlending},fT:function(){this.o(h.vd);this.o(h.ia)},Bn:function(){this.W("meshGroup","composedAlpha")&&m.nf(this.get("meshGroup"),this.get("composedAlpha")>0? .001:0)}}}); define("tdv/player/view/panorama/renderer/object/position/QuadFrameHotspotPositionMixin",["require","tdv/binding/BindingsHandler","tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController"],function(a){var m=a("tdv/binding/BindingsHandler"),h=a("tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController");return{jq:function(){this.set("playbackPositions",null);this.ue=this.ue.bind(this);this.Ib=new h},Aq:function(){m.ba(this.C,["playbackPositions","width","height"], this.ue,!0)},Cq:function(){m.da(this.C,["playbackPositions","width","height"],this.ue)},ue:function(){this.set("playbackPositions",this.C.get("playbackPositions"));this.set("contentWidth",this.C.get("width"));this.set("contentHeight",this.C.get("height"))},cg:function(){this.W("playbackPositions","currentTime")&&(this.Ib.YE(this.get("playbackPositions")),this.Ib.WE(this.get("currentTime")),this.set("vertices",this.Ib.Aoa()));this.W("framePlane","holePlane","imagePlane","vertices")&&this.Cb().forEach(function(n){n.set("vertices", this.get("vertices"));n.set("contentWidth",this.get("contentWidth"));n.set("contentHeight",this.get("contentHeight"))}.bind(this))}}}); define("tdv/player/view/panorama/renderer/object/QuadFrameHotspot","require tdv/utils tdv/player/view/panorama/renderer/object/FrameHotspot tdv/player/view/panorama/renderer/object/ComposedCSSObject tdv/player/view/panorama/renderer/object/ComposedWebGLObject tdv/player/view/panorama/renderer/object/geometry/CSSQuadGeometryMixin tdv/player/view/panorama/renderer/object/geometry/QuadGeometryMixin tdv/player/view/panorama/renderer/object/material/IFrameMaterialMixin tdv/player/view/panorama/renderer/object/material/ImageResourceMaterialMixin tdv/player/view/panorama/renderer/object/material/PassthroughMaterialMixin tdv/player/view/panorama/renderer/object/position/QuadFrameHotspotPositionMixin".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/player/view/panorama/renderer/object/FrameHotspot"),n=a("tdv/player/view/panorama/renderer/object/ComposedCSSObject"),g=a("tdv/player/view/panorama/renderer/object/ComposedWebGLObject"),k=a("tdv/player/view/panorama/renderer/object/geometry/CSSQuadGeometryMixin"),e=a("tdv/player/view/panorama/renderer/object/geometry/QuadGeometryMixin"),b=a("tdv/player/view/panorama/renderer/object/material/IFrameMaterialMixin"),c=a("tdv/player/view/panorama/renderer/object/material/ImageResourceMaterialMixin"), d=a("tdv/player/view/panorama/renderer/object/material/PassthroughMaterialMixin");a=a("tdv/player/view/panorama/renderer/object/position/QuadFrameHotspotPositionMixin");var f=m.extend(g,e,c,function(){g.call(this);this.set("tag","QuadFrameHotspotImage")}),l=m.extend(n,k,b,function(){n.call(this);this.set("tag","QuadFrameHotspotFrame")}),p=m.extend(g,e,d,function(){g.call(this);this.set("tag","QuadFrameHotspotHole")});return m.extend(h,a,function(q){h.call(this,q);this.lH=f;this.ufa=l;this.tga=p})}); define("tdv/player/view/panorama/renderer/object/position/QuadHotspotImagePositionMixin",["require","tdv/binding/BindingsHandler","tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController"],function(a){var m=a("tdv/binding/BindingsHandler"),h=a("tdv/player/view/panorama/renderer/object/overlay/PlaybackPositionController");return{jq:function(){this.set("playbackPositions",null);this.set("distance",void 0);this.ue=this.ue.bind(this);this.Ib=new h},Aq:function(){m.ba(this.C,["vertices", "distance","playbackPositions"],this.ue,!0)},Cq:function(){m.da(this.C,["vertices","distance","playbackPositions"],this.ue)},ue:function(){this.set("distance",this.C.get("distance"));this.set("vertices",this.C.get("vertices"));this.set("playbackPositions",this.C.get("playbackPositions"))},cg:function(){this.W("playbackPositions","currentTime")&&(this.Ib.YE(this.get("playbackPositions")),this.Ib.WE(this.get("currentTime")),this.set("vertices",this.Ib.Aoa()),this.set("alpha",this.Ib.ow()))}}}); define("tdv/player/view/panorama/renderer/object/QuadHotspotImage","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/player/view/panorama/renderer/object/ComposedWebGLObject tdv/player/view/panorama/renderer/object/geometry/QuadGeometryMixin tdv/player/view/panorama/renderer/object/material/ImageResourceMaterialMixin tdv/player/view/panorama/renderer/object/pointer/HotspotPointerMixin tdv/player/view/panorama/renderer/object/position/QuadHotspotImagePositionMixin tdv/player/view/panorama/renderer/object/util/LevelUtil".split(" "), function(a){var m=a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),k=a("tdv/player/view/panorama/renderer/object/ComposedWebGLObject"),e=a("tdv/player/view/panorama/renderer/object/geometry/QuadGeometryMixin"),b=a("tdv/player/view/panorama/renderer/object/material/ImageResourceMaterialMixin"),c=a("tdv/player/view/panorama/renderer/object/pointer/HotspotPointerMixin"),d=a("tdv/player/view/panorama/renderer/object/position/QuadHotspotImagePositionMixin"), f=a("tdv/player/view/panorama/renderer/object/util/LevelUtil"),l=0;a=m.extend(k,e,d,b,c,function(p){k.call(this);this.set("tag","QuadHotspotImage");this.set("id","quad_hs_image_"+l++);this.set("side",THREE.DoubleSide);this.C=p;this.Rl.push(this.C);this.Rg=this.Rg.bind(this)});a.prototype.hc=function(){k.prototype.hc.call(this);h.ba(this.C,["image.levels"],this.Rg,!0)};a.prototype.mc=function(){h.da(this.C,["image.levels"],this.Rg);k.prototype.mc.call(this)};a.prototype.Rg=function(){this.set("image", this.C.get("image"));this.set("level",f.Nfb(this.C))};a.prototype.za=function(p){this.FI();k.prototype.za.call(this,p);this.W("inView")&&this.C.o(this.get("inView")?n.od:n.jd)};a.prototype.FI=function(){if(this.W("meshGroup","panoramaId","id")){var p=this.get("meshGroup");p&&p.children.forEach(function(q){g.setAttribute(q,g.nF,this.get("panoramaId"));g.setAttribute(q,g.Eaa,this.get("id"))}.bind(this))}};return a}); define("tdv/player/view/panorama/renderer/object/control/VideoAutoplayController",["require","tdv/constants/EventName","tdv/constants/PlaybackState"],function(a){function m(k,e){this.Ie=k;this.Vd=e;this.Ld=!1;this.P3=!0;this.nda=this.Sia=!1;this.Pca();this.cia()}var h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState");m.prototype.clear=function(){this.kCa();this.Lja()};m.prototype.ig=function(k){this.Ld!=k&&(this.Ld=k,this.Tv())};m.prototype.elb=function(k){this.P3!=k&&((this.P3=k)&& this.kCa(),this.Tv())};m.prototype.Tv=function(){if(!this.Ld||this.P3)this.Vd.set("state",n.ca);else if(this.Vd.get("autoplay")||this.nda)this.nda=!1,this.Vd.set("state",n.PLAYING)};m.prototype.cia=function(){if(!this.Sia){var k=this.Vd.get("video").get("autoplayTime");k!==void 0&&this.Vd.get("video").get("autoplayTimeLimit")<(new Date).getTime()&&(k=void 0);this.Vd.set("currentTime",k);this.nda=k!==void 0}};m.prototype.kCa=function(){this.Sia||(this.Sia=!0,this.Vd.get("state")==n.PLAYING?(this.Vd.get("video").set("autoplayTimeLimit", (new Date).getTime()+g),this.Vd.get("video").set("autoplayTime",this.Vd.get("currentTime",0))):this.Vd.get("video").set("autoplayTime",void 0))};m.prototype.Pca=function(){this.Vd.get("video").bind(h.L("autoplayTime"),this.cia,this,!0)};m.prototype.Lja=function(){this.Vd.get("video").h(h.L("autoplayTime"),this.cia,this,!0)};var g=1E3;return m}); define("tdv/player/view/panorama/renderer/object/pointer/VideoHotspotPointerMixin",["require","tdv/constants/EventName","tdv/player/view/util/ColorPicker"],function(a){var m=a("tdv/constants/EventName"),h=a("tdv/player/view/util/ColorPicker");return{pC:function(){this.set("beamEnabled",!1);this.Cd=!1;this.oD=this.pD=void 0},Sq:function(n){this.pD=n.Xa;this.oD=n.pitch},$n:function(n){if(n.$f==m.Im){var g=!n.om()&&this.Zs(n)&&!this.get("blendingActive");if(g){n.LD(this.C);this.C.get("useHandCursor")&& n.TI(this.C);n.lm(this.get("distance"));var k=this.jc(n.JJ());k&&n.x6(k,this.BD(n.JJ()))}this.Cd!=g&&(this.Cd=g,this.C.o(this.Cd?m.uc:m.Eb),n.Aw()&&this.C.o(this.Cd?m.RF:m.Or))}else n.$f==m.Xf&&!n.om()&&this.Zs(n)&&(this.C.fP(m.ma,!0).length>1&&n.cu(this.C),n.lm(this.get("distance")),this.C.o(m.ma))},Zs:function(n){if(this.get("beamEnabled")){n=this.Yfa().Fy(n.Os);for(var g=0;g0&&this.get("hotspotsEnabled")&&this.get("enabled")&&(!this.get("inVR")||this.get("enabledInVR"))&&(!this.get("inVRWithGazePointer")||this.get("enabledInVRWithGazePointer"))&&(this.get("inVR")||this.get("enabledInStandard")));this.W("blendingActive")&&this.Nm.elb(this.get("blendingActive"))};a.prototype.fW=function(){this.set("frameEmpty",!this.Lb||!this.Lb.get("hasStableContent"))};a.prototype.ye=function(v){var w=this.get("itemVisible"); if(this.W("frameEmpty","state","image","video","inVR","hotspotsEnabled","enabledInVR","enabledInVRWithGazePointer","enabledInStandard","enabled","interactionEnabled")){var y="none";!this.get("hotspotsEnabled")||!this.get("enabled")||this.get("inVR")&&!this.get("enabledInVR")||this.get("inVRWithGazePointer")&&!this.get("enabledInVRWithGazePointer")||!this.get("inVR")&&!this.get("enabledInStandard")||(this.Lb&&(!this.lb||!this.get("frameEmpty")&&(this.get("state")!=g.ca||this.zma&&this.get("videoVisibleOnStop")))? y="video":this.lb&&(y="image"),this.get("state")!=g.ca&&(this.zma=!0));this.set("itemVisible",y);this.set("beamEnabled",y!="none"&&this.get("interactionEnabled"))}if(this.W("itemVisible")){y=this.get("itemVisible")!="none";var x=w!="none";if(y&&x&&!this.get("chromaColor")&&this.$u.length==0)this.lb&&this.lb.set("alpha",this.get("itemVisible")=="image"?1:0),this.Lb&&this.Lb.set("alpha",this.get("itemVisible")=="video"?1:0);else{w=y==x?50:y?this.get("fadeInDuration"):this.get("fadeOutDuration");y!= x&&this.C.o(y?n.od:n.jd);x=this.lb?this.lb.get("alpha"):0;var z=this.Lb?this.Lb.get("alpha"):0;y=[{video:z,image:x}];this.get("itemVisible")=="video"?(y.push({video:1,image:x,time:w*(1-z)}),y.push({video:1,image:0,time:50*(x-0)})):this.get("itemVisible")=="image"?(y.push({video:z,image:1,time:w*(1-x)}),y.push({video:0,image:1,time:50*(z-0)})):y.push({video:0,image:0,time:Math.max(z,x,1/w)*w});this.$u=[];for(w=1;w0&&this.$u.push(new q("linear",[new r("imageAlpha",y[w-1].image, y[w].image),new r("videoAlpha",y[w-1].video,y[w].video)],y[w].time))}}this.$u.length>0&&(this.$u[0].Ve()?this.$u.shift():this.$u[0].Nb(v.zf),this.$u.length>0&&(this.lb&&this.lb.set("alpha",this.$u[0].ob("imageAlpha")),this.Lb&&this.Lb.set("alpha",this.$u[0].ob("videoAlpha")),this.Na()))};a.prototype.HR=function(){this.LG();this.get("image")&&this.get("imageLevel")&&(this.lb=new this.lH,this.lb.set("image",this.get("image")),this.lb.set("level",this.get("imageLevel")),this.lb.set("isVideoTexture", !0),this.lb.set("visible",!0),this.lb.set("alpha",0),this.lb.set("side",THREE.DoubleSide))};a.prototype.LG=function(){this.lb&&(this.lb.remove(),this.lb=null)};a.prototype.JR=function(){this.zC();this.get("video")&&this.get("videoLevel")&&(this.Lb=new this.yma,this.Lb.set("scriptObject",this.C),this.Lb.set("video",this.get("video")),this.Lb.set("level",this.get("videoLevel")),this.Lb.set("visible",!0),this.Lb.set("alpha",0),this.Lb.set("side",THREE.DoubleSide))};a.prototype.zC=function(){this.Lb&& (this.Lb.remove(),this.Lb=null)};a.prototype.HH=function(){this.o(n.vd);this.o(n.ia)};a.prototype.LH=function(v,w){var y=0;w.kw(function(x){(x=w.Mn(x))&&(y+=x.percent)});this.o(new p(n.yc,y/w.zd.length))};a.prototype.Yfa=function(){return this.get("itemVisible")=="video"?this.Lb:this.lb};return a}); define("tdv/player/view/panorama/renderer/object/material/VideoResourceMaterialMixin","require tdv/constants/EventName tdv/constants/PlaybackState tdv/player/view/panorama/renderer/3d/util/MaterialUtil tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/player/view/panorama/renderer/object/control/CueController tdv/player/view/panorama/renderer/object/control/VideoPlaybackController tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource tdv/player/view/util/geo/Quaternion tdv/view/av/SubtitleController tdv/view/av/VideoPlayer".split(" "),function(a){var m= a("tdv/constants/EventName"),h=a("tdv/constants/PlaybackState"),n=a("tdv/player/view/panorama/renderer/3d/util/MaterialUtil"),g=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),k=a("tdv/player/view/panorama/renderer/object/control/CueController"),e=a("tdv/player/view/panorama/renderer/object/control/VideoPlaybackController"),b=a("tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource"),c=a("tdv/player/view/util/geo/Quaternion"),d=a("tdv/view/av/SubtitleController"),f=a("tdv/view/av/VideoPlayer"), l=new THREE.Euler,p=new THREE.Quaternion,q=new THREE.Matrix4,r=new THREE.Matrix4,t=Math.PI/180;return{IG:function(){this.set("visible",!1);this.set("inView",!1);this.set("frameEmpty",!0);this.set("hasStableContent",!1);this.set("blending",0);this.set("chromaColor",void 0);this.set("chromaThreshold",0);this.set("chromaSmoothing",0);this.set("scriptObject",null);this.set("video",null);this.set("level",null);this.set("loop",!1);this.set("side",void 0);this.hb=this.Lb=null;this.zma=!1;this.UN=this.Th= this.wn=this.Ua=this.ds=this.ra=null},KM:function(){this.zC()},Qj:function(u){this.ebb();this.FD();this.fW(u)},ebb:function(){this.W("scriptObject","video","level")&&(this.zC(),this.Lb=this.get("video"),this.hb=this.get("level"),this.C=this.get("scriptObject"),this.JR())},FD:function(){if(this.W("video","blending","chromaColor","chromaThreshold","chromaSmoothing","side")&&this.Lb){var u=new n.Rp(this.Lb.rl());u.QD=this.get("blending");u.cw=this.get("chromaColor");u.JW=this.get("chromaThreshold"); u.IW=this.get("chromaSmoothing");u.side=this.get("side");this.set("materialConfig",u)}},Bn:function(){this.W("visible","composedAlpha","image","state")&&this.set("inView",this.get("visible")&&this.get("composedAlpha")>0);this.W("composedAlpha","meshGroup","inView")&&g.nf(this.get("meshGroup"),this.get("inView")?this.get("composedAlpha"):0)},fW:function(u){var v=!!this.Th&&this.Th.isEmpty(),w=this.ra&&this.ra.D7(),y=!!w&&w.isEmpty();y&&!v&&this.ra.getState()==h.PLAYING&&this.C.get("loop")&&(w=this.Th, y=!1);this.set("frameEmpty",y);this.Nla();this.UN.mra(u.Ik>0);!this.Th||w&&!this.Th.isEqual(w)?(this.Th=w,(v=this.Th.Zu)&&v.tagName=="VIDEO"&&(v.width=this.get("contentWidth"),v.height=this.get("contentHeight")),this.UN.ao(v),this.UN.update(),this.Na()):this.ra.getState()==h.PLAYING&&this.Na();q.makeRotationFromQuaternion(c.gX(u.Xa,u.pitch,u.Mg,p));this.ra.bu(q)},Nla:function(){var u=this.ra.getCurrentTime(),v=this.ra.lj();this.get("frameEmpty")?this.set("hasStableContent",!1):u>this.Z0+.1?this.set("hasStableContent", !0):u==0&&this.nha>v-.5?this.set("hasStableContent",!0):this.set("hasStableContent",!1);this.W("frameEmpty")&&!this.get("frameEmpty")&&(this.Z0=u);!this.get("frameEmpty")&&u>0&&(this.nha=u)},JR:function(){this.Lb&&this.hb&&this.C&&(this.set("textureSource",this.UN=new b),this.UN.ZY(!0),this.set("contentWidth",this.hb.get("width")),this.set("contentHeight",this.hb.get("height")),this.set("alpha",0),this.ra=new f(this.La.dr(),this.Lb,this.C.get("directionalAudio")),this.JXa(),this.ra.jkb(),this.ds= new k(this.C,this.ra),this.Ua=new e(this.La.dr(),this.C,this.ra),this.wn=new d(this.La.ld.get("panorama"),this.ra),this.Qx(),this.o(m.vd),this.o(m.ia))},JXa:function(){var u=this.C.get("vertices")||[this.C];if(u.length!=0){var v=u[0].get("yaw",0);u[0].get("pitch",0);for(var w=0,y=0,x=0;xv+180;)z-=360;for(;z0;){var d=c.pop();b.push(d);for(var f=d.qe.length-1;f>=0;f--)c.push(d.qe[f])}return b};e.prototype.update=function(b){var c=this.all(),d=c.length,f;for(f=0;f0?f+r:f-((this.qa.clientHeight||0)-r)}l=Math.max(Math.min(l,this.Gb.nb()-p-3),3);f=Math.max(Math.min(f,this.Gb.Mb()-q-3),3);this.qa.style.left=l+"px";this.qa.style.top=f+"px"};d.prototype.ks=function(){if(this.Bwa){var f= h.offset(this.Jh.wa().cc());return{x:f.left+this.Jh.nb()*.5,y:f.top+this.Jh.Mb()*.5}}return{x:this.nz||0,y:(this.oz||0)+25}};d.prototype.oe=function(){this.FG();this.GFa();this.Oy&&(this.qa.style.display="none",this.Jh.o(n.Dua),this.Oy=!1)};d.prototype.xia=function(){this.Jh.get("toolTip")?this.X1()||(this.Oy?this.pFa():this.zV()):this.X1()?this.FG():this.Oy&&this.oe()};d.prototype.rg=function(f){this.nz=f.pageX;this.oz=f.pageY;this.Oy&&this.Jh.get("toolTipFollowMouse")&&this.cg()};d.prototype.pFa= function(){this.oFa(this.Jh,this.Jh.get("toolTip"),this.Jh.get("toolTipCentered"))};d.prototype.qFa=function(){this.oFa(this.Jh,this.fGa,!0)};d.prototype.X1=function(){return this.sk!=null};d.prototype.zV=function(){var f=this.Jh&&this.Jh.get("toolTipDisplayTime");if(f===void 0||f===null)f=d.EQ.toolTipDisplayTime;this.FG();this.sk=setTimeout(function(){this.sk=null;this.eGa?this.qFa():this.pFa()}.bind(this),f)};d.prototype.FG=function(){this.X1()&&(clearTimeout(this.sk),this.sk=null)};d.prototype.y9a= function(f){var l=this.ks();this.GFa();var p=function(){this.qa.style.display=this.Oy&&!this.F3a(f,l.x,l.y)?"inline":"none"}.bind(this);this.N1=setInterval(p,300);p()};d.prototype.GFa=function(){this.N1&&(clearInterval(this.N1),this.N1=null)};d.prototype.bab=function(f){function l(q){var r=f.get(q);return r===void 0?d.EQ[q]:r}this.qa.style.opacity=l("toolTipOpacity");this.qa.style.paddingTop=l("toolTipPaddingTop")+"px";this.qa.style.paddingBottom=l("toolTipPaddingBottom")+"px";this.qa.style.paddingLeft= l("toolTipPaddingLeft")+"px";this.qa.style.paddingRight=l("toolTipPaddingRight")+"px";this.qa.style.textAlign=l("toolTipHorizontalAlign");this.ae.style.opacity=l("toolTipBackgroundOpacity");this.ae.style.backgroundColor=l("toolTipBackgroundColor");this.ae.style.border=[l("toolTipBorderSize")+"px","solid",l("toolTipBorderColor")].join(" ");var p=l("toolTipShadowColor");this.ae.style.boxShadow=[l("toolTipShadowHorizontalLength")+"px",l("toolTipShadowVerticalLength")+"px",l("toolTipShadowBlurRadius")+ "px",l("toolTipShadowSpread")+"px","rgba("+parseInt("0x"+p.substr(1,2))+", "+parseInt("0x"+p.substr(3,2))+", "+parseInt("0x"+p.substr(5,2))+", "+l("toolTipShadowOpacity")+")"].join(" ");this.ae.style.borderRadius=l("toolTipBorderRadius")+"px";this.Pz.style.fontFamily=k.qA(l("toolTipFontFamily"));p=l("toolTipFontSize");typeof p==="number"?p+="px":typeof p!=="string"&&(p="");this.Pz.style.fontSize=p;this.Pz.style.fontWeight=l("toolTipFontWeight");this.Pz.style.fontStyle=l("toolTipFontStyle");this.Pz.style.color= l("toolTipFontColor");p=l("toolTipTextShadowColor");this.Pz.style.textShadow=[l("toolTipTextShadowHorizontalLength")+"px",l("toolTipTextShadowVerticalLength")+"px",l("toolTipTextShadowBlurRadius")+"px","rgba("+parseInt("0x"+p.substr(1,2))+", "+parseInt("0x"+p.substr(3,2))+", "+parseInt("0x"+p.substr(5,2))+", "+l("toolTipTextShadowOpacity")+")"].join(" ")};d.prototype.F3a=function(f,l,p){l=document.elementsFromPoint(l,p);f=f.wa().cc();p=this.Gb.wa().cc();for(var q=0;q.29)return!0}}return!1};d.prototype.DZa=function(f){if(!f)return 0;f=f.toLowerCase();var l=f.match(/rgba\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*,\s*(\d*\.?\d*)\s*\)/);return l?parseFloat(l[1]):f.match(/transparent/)?0:1};d.prototype.B2a=function(f){f=(f||"").split("\n");for(var l=0;l"+p+""}).join("")};d.prototype.u0a=function(f){c.nodeValue=f;(f=b.innerHTML)||(f=" ");return f};d.EQ={toolTip:void 0,toolTipBackgroundColor:"#F6F6F6",toolTipBackgroundOpacity:1,toolTipBorderColor:"#767676",toolTipBorderRadius:3,toolTipBorderSize:1,toolTipCentered:!1,toolTipCenteredOffsetY:void 0,toolTipFontFamily:"Segoe UI",toolTipFontSize:12,toolTipFontColor:"#606060",toolTipFontWeight:"normal",toolTipFontStyle:"normal",toolTipHorizontalAlign:"center", toolTipOpacity:1,toolTipPaddingBottom:2,toolTipPaddingLeft:4,toolTipPaddingTop:2,toolTipPaddingRight:4,toolTipShadowBlurRadius:3,toolTipShadowColor:"#333333",toolTipShadowHorizontalLength:3,toolTipShadowOpacity:1,toolTipShadowSpread:0,toolTipShadowVerticalLength:3,toolTipTextShadowBlurRadius:3,toolTipTextShadowColor:"#000000",toolTipTextShadowHorizontalLength:0,toolTipTextShadowOpacity:0,toolTipTextShadowVerticalLength:0,toolTipDisplayTime:600};return d}()}); define("tdv/player/view/panorama/renderer/object/canvas/ToolTipCanvas",["require","tdv/view/core/ToolTip","tdv/view/util/MeasureText","tdv/view/util/Font"],function(a){function m(e,b){this.P=e;this.yn=b;this.n9a()}var h=a("tdv/view/core/ToolTip"),n=a("tdv/view/util/MeasureText"),g=a("tdv/view/util/Font"),k=180/Math.PI;m.prototype.If=function(){return this.ja};m.prototype.fg=function(){return this.ja.width};m.prototype.wg=function(){return this.ja.height};m.prototype.jf=function(){return 2*Math.atan2(this.ja.width/ 3*.5,600)*k};m.prototype.n9a=function(){this.ja=document.createElement("canvas");var e=this.yn.split("\n"),b=this.Mh("toolTipBackgroundColor"),c=this.Mh("toolTipBackgroundOpacity"),d=this.Mh("toolTipBorderRadius"),f=this.Mh("toolTipBorderColor"),l=this.Mh("toolTipBorderSize");this.Mh("toolTipDisplayTime");var p=this.Mh("toolTipFontFamily"),q=this.Mh("toolTipFontSize"),r=this.Mh("toolTipFontColor"),t=this.Mh("toolTipFontWeight"),u=this.Mh("toolTipFontStyle"),v=this.Mh("toolTipPaddingBottom"),w=this.Mh("toolTipPaddingLeft"), y=this.Mh("toolTipPaddingTop"),x=this.Mh("toolTipPaddingRight"),z=this.Mh("toolTipOpacity"),A=this.Mh("toolTipTextShadowBlurRadius"),D=this.Mh("toolTipTextShadowColor"),F=this.Mh("toolTipTextShadowHorizontalLength"),C=this.Mh("toolTipTextShadowVerticalLength"),B=this.Mh("toolTipTextShadowOpacity");isNaN(q)&&(q=12);d=Math.round(d*3);l=Math.round(l*3);q=Math.round(q*3);v=Math.round(v*3);w=Math.round(w*3);y=Math.round(y*3);x=Math.round(x*3);A=Math.round(A*3);F=Math.round(F*3);C=Math.round(C*3);var H= new n.lca;H.fontFamily=p;H.fontSize=Math.round(q)+"px";H.fontWeight=t;H.fontStyle=u;this.ja=document.createElement("canvas");var E=this.ja.getContext("2d"),G=e.map(function(T){return n(T,H,E)}),N=0,O=0;G.forEach(function(T){N=Math.max(T.width,N);O+=T.height});var R=e.length>1?O/e.length*.25:0;O+=(e.length-1)*R;x=l+w+N+x+l;v=l+y+O+v+l;this.ja.width=this.ja.height=Math.max(256,Math.max(128,Math.pow(2,Math.ceil(Math.log(Math.max(x,v))/Math.LN2))));E=this.ja.getContext("2d");var Q=(this.ja.width-x)*.5, K=(this.ja.height-v)*.5;E.save();E.translate(Q,K);E.globalAlpha=z;E.strokeStyle=f;E.fillStyle=b==="transparent"?"rgba(0,0,0,0)":this.Cva(c,b);E.lineWidth=l;E.beginPath();E.moveTo(d,0);E.lineTo(x-d,0);E.quadraticCurveTo(x,0,x,d);E.lineTo(x,v-d);E.quadraticCurveTo(x,v,x-d,v);E.lineTo(d,v);E.quadraticCurveTo(0,v,0,v-d);E.lineTo(0,d);E.quadraticCurveTo(0,0,d,0);E.closePath();E.fill();l>0&&E.stroke();E.fillStyle=r;E.font=t+" "+(u!="normal"?u+" ":"")+q+(isNaN(q)?"":"px")+" "+g.qA(p);E.shadowColor=this.Cva(B, D);E.shadowOffsetX=F;E.shadowOffsetY=C;E.shadowBlur=A;E.textBaseline="middle";E.textAlign="center";var L=l+w+N*.5,U=l+y;e.forEach(function(T,Y){E.fillText(T,Math.round(L),Math.round(U+G[Y].height*.5));U+=G[Y].height+R})};m.prototype.Mh=function(e){var b=this.P.get(e);return b===void 0?h.EQ[e]:b};m.prototype.Cva=function(e,b){return"rgba("+parseInt("0x"+b.substr(1,2))+", "+parseInt("0x"+b.substr(3,2))+", "+parseInt("0x"+b.substr(5,2))+", "+e+")"};return m}); define("tdv/player/view/panorama/renderer/object/ToolTip","require tdv/utils tdv/player/view/panorama/renderer/3d/util/GeometryUtil tdv/player/view/panorama/renderer/object/Plane tdv/player/view/panorama/renderer/object/canvas/ToolTipCanvas tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource tdv/player/view/util/XR".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/renderer/3d/util/GeometryUtil"),n=a("tdv/player/view/panorama/renderer/object/Plane"), g=a("tdv/player/view/panorama/renderer/object/canvas/ToolTipCanvas"),k=a("tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource"),e=a("tdv/player/view/util/XR");a=m.extend(n,function(){n.call(this);this.ja=null;this.set("tag","ToolTip");this.set("text","");this.Uq=new THREE.Vector3(0,0,-h.Ct());this.zq=null});a.prototype.za=function(f){this.dt(f);this.gh(f);n.prototype.za.call(this,f)};a.prototype.dt=function(f){f.Va&&!this.zq&&e.getType()==e.Lx.lo&&this.bi([this.zq=new n])}; a.prototype.gh=function(f){if(!this.ja||this.W("text")){this.get("textureSource")||this.set("textureSource",new k);this.ja=new g(this.La.P,this.get("text"));this.get("textureSource").ao(this.ja.If());this.set("contentWidth",this.ja.fg());this.set("contentHeight",this.ja.wg());this.set("hfov",this.ja.jf());this.set("distance",this.La.P.get("vrPointerDistance"));var l=this.get("matrix"),p=this.get("intersectionYaw"),q=this.get("intersectionPitch");p!==void 0&&q!==void 0?(this.set("yaw",p),this.set("pitch", q+c),this.set("distance",this.get("intersectionDistance"))):l?(this.Uq.applyMatrix4(l),this.Uq.x==0&&this.Uq.z==0||this.set("yaw",b*Math.atan2(this.Uq.x,-this.Uq.z)),this.Uq.y==0&&this.Uq.z==0||this.set("pitch",b*Math.atan2(this.Uq.y,Math.sqrt(this.Uq.z*this.Uq.z+this.Uq.x*this.Uq.x))+c)):(this.set("yaw",f.Xa),this.set("pitch",f.pitch+d))}};var b=180/Math.PI,c=2,d=5;return a}); define("tdv/player/view/panorama/renderer/pointer/Pointer",["require","exports","tdv/player/view/panorama/renderer/3d/util/RayUtil","tdv/player/view/panorama/renderer/3d/util/SceneUtil"],function(a,m,h,n){return function(){function g(k,e){this.Qf=k;this.j=e}g.prototype.update=function(){};g.prototype.clear=function(){};g.prototype.getType=function(){return this.Qf};g.prototype.iLa=function(k){return this.j1=(k=k.sh&&n.getCamera(k.sh))?h.mfb(k,this.j1):void 0};g.YQ="webxr";g.WB="gaze";g.D_="gaze_click"; g.E_="laser";g.WQ="mouse";g.XQ="touch";return g}()}); define("tdv/player/view/panorama/renderer/pointer/Beam",["require","exports","tdv/player/view/panorama/renderer/pointer/Pointer","tdv/view/constants/Cursor"],function(a,m,h,n){return function(){function g(k,e,b,c,d){d===void 0&&(d=!0);this.we=k;this.Os=e;this.j1=b;this.$f=c;this.Rza=d;this.xwa=[];this.Vl=[];this.qV={};this.qga=[];this.jc="";this.BD=Number.MAX_VALUE}g.prototype.Mw=function(){return this.we};g.prototype.aP=function(){return this.j1};g.prototype.Aw=function(){return this.we.getType()== h.WQ};g.prototype.gpa=function(){return this.we.getType()==h.YQ};g.prototype.JJ=function(){return this.we.getType()==h.XQ};g.prototype.nhb=function(){return this.we.getType()==h.WB};g.prototype.cIa=function(k,e){this.qV[e]=(this.qV[e]||[]).concat(k)};g.prototype.XRa=function(){return g.hUa.find(this.Ggb.bind(this))};g.prototype.Ggb=function(k){return this.qV[k]!==void 0&&this.qV[k].length>0?!0:!1};g.prototype.taa=function(){return Object.keys(this.qV).length>0};g.prototype.TI=function(k){this.cIa(k, n.qf)};g.prototype.Nbb=function(k){this.qga=this.qga.concat(k)};g.prototype.Vdb=function(){return!this.XRa()&&this.qga.length>0};g.prototype.LD=function(k){this.Vl=this.Vl.concat(k)};g.prototype.We=function(){return this.Vl.length>0};g.prototype.lm=function(k){k&&(this.MG===void 0||this.MG>k)&&(this.MG=k)};g.prototype.yw=function(){return this.MG};g.prototype.x6=function(k,e){if(this.jc==""||this.BD>e)this.jc=k,this.BD=e};g.prototype.mB=function(){return this.jc};g.prototype.cu=function(k){this.xwa= k===void 0?[]:Array.isArray(k)?k:[k]};g.prototype.om=function(){return this.xwa.length>0};g.hUa=[n.Li,n.Nta,n.IB,n.qf,n.De];return g}()}); define("tdv/player/view/panorama/renderer/pointer/GazePointer","require tdv/utils tdv/constants/EventName tdv/constants/Key tdv/player/view/panorama/renderer/3d/util/RayUtil tdv/player/view/panorama/renderer/3d/util/SceneUtil tdv/player/view/panorama/renderer/object/Reticle tdv/player/view/panorama/renderer/object/ToolTip tdv/player/view/panorama/renderer/pointer/Beam tdv/player/view/panorama/renderer/pointer/Pointer tdv/player/view/util/XR".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"), n=a("tdv/constants/Key");a("tdv/player/view/panorama/renderer/3d/util/RayUtil");a("tdv/player/view/panorama/renderer/3d/util/SceneUtil");var g=a("tdv/player/view/panorama/renderer/object/Reticle"),k=a("tdv/player/view/panorama/renderer/object/ToolTip"),e=a("tdv/player/view/panorama/renderer/pointer/Beam"),b=a("tdv/player/view/panorama/renderer/pointer/Pointer"),c=a("tdv/player/view/util/XR");a=m.extend(b,function(d,f){b.call(this,b.WB,d);this.il=this.I=null;this.Vl=[];this.Cd=this.gy=!1;this.wS=null; this.uza=void 0;this.YU=null;this.hDa=void 0;this.Qe=new g;this.j.add(this.Qe);this.Rq="";this.jc=new k;this.jc.set("alpha",0);this.j.add(this.jc);this.ika=f?this.j.P.get("vrPointerSelectionTime"):void 0;this.vza=this.j.P.get("vrGazePointerHideTime");this.I5=this.I5.bind(this);this.Xm=this.Xm.bind(this);document.body.addEventListener("touchend",this.I5);document.addEventListener("keyup",this.Xm,!0);c.M.bind(h.Vr,this.JHa,this,!0);this.Ola();this.jma()});a.prototype.clear=function(){document.body.removeEventListener("touchend", this.I5);document.removeEventListener("keyup",this.Xm,!0);c.M.h(h.Vr,this.JHa,this,!0);this.Xka();this.j.remove(this.Qe);this.Qe=null;this.j.remove(this.jc);this.jc=null};a.prototype.update=function(d){this.I=d;this.d8a(d.Gn);this.jm()};a.prototype.I5=function(){this.NL()};a.prototype.Xm=function(d){d.code!=n.ua.e_&&d.code!=n.ua.iL||this.NL()};a.prototype.JHa=function(){this.NL()};a.prototype.NL=function(){var d=this.Ll(h.Xf);this.gm(d);this.sI(!1);this.ula()};a.prototype.ula=function(){this.j.Vb().o(h.bG, {iQ:h.Xf})};a.prototype.jm=function(){var d=this.Ll(h.Im);this.gm(d);this.Gz(d.mB());a:{var f=this.Vl;for(var l=d.Vl,p=0;p=this.ika?(this.Xka(),this.NL()):this.Qe.set("overProgress",d/this.ika)};a.prototype.KFa=function(){this.wS&& (clearInterval(this.wS),this.wS=null)};a.prototype.E9a=function(){this.uza=(new Date).getTime();this.wS=setInterval(this.X4a.bind(this),10)};a.prototype.X4a=function(){var d=this.vza-((new Date).getTime()-this.uza);this.Qe.set("alpha",Math.max(.01,Math.min(1,d/500)));d<=0&&this.KFa()};return a}); define("tdv/player/view/panorama/renderer/object/Laser","require tdv/utils tdv/player/view/panorama/renderer/3d/util/GeometryUtil tdv/player/view/panorama/renderer/3d/util/MaterialUtil tdv/player/view/panorama/renderer/3d/util/MeshUtil tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource tdv/player/view/panorama/renderer/object/WebGLObject tdv/player/view/util/Color".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/player/view/panorama/renderer/3d/util/GeometryUtil"),n=a("tdv/player/view/panorama/renderer/3d/util/MaterialUtil"), g=a("tdv/player/view/panorama/renderer/3d/util/MeshUtil"),k=a("tdv/player/view/panorama/renderer/object/texturesource/CustomTextureSource"),e=a("tdv/player/view/panorama/renderer/object/WebGLObject"),b=a("tdv/player/view/util/Color"),c=new THREE.Matrix4,d=Math.PI/180;a=m.extend(e,function(){e.call(this);this.set("tag","Laser");this.set("matrix",null);this.set("over",!1);this.set("pressed",!1);this.set("intersectionDistance",0);this.set("visible",!1);this.set("attachToCamera",!1);this.set("dotVisible", !0);this.Dja=this.KU=this.Bv=this.Cja=null;new THREE.Matrix4;this.Eja=new THREE.Matrix4;this.Eja.multiply(c.makeRotationX(-90*d));this.Eja.multiply(c.makeTranslation(0,f*.5,0));this.R0=this.Q0=this.P0=this.qy=this.Iea=null;new THREE.Matrix4;this.Jea=new THREE.Matrix4;this.CR=this.O0=this.Hea=null;new THREE.Matrix4;this.HG=[new THREE.Matrix4,new THREE.Matrix4,new THREE.Matrix4];this.HG[0].multiply(c.makeRotationX(-90*d));this.HG[0].multiply(c.makeTranslation(0,-p*.5,0));this.HG[1].multiply(c.makeRotationX(-90* d));this.HG[1].multiply(c.makeTranslation(0,-p*.5,-l*.5));this.HG[2].multiply(c.makeRotationX(-90*d));this.HG[2].multiply(c.makeTranslation(0,-p*.5,-l))});a.prototype.za=function(q){e.prototype.za.call(this,q);this.lma();this.HD()};a.prototype.lma=function(){this.W("visible")&&(this.get("meshGroup").visible=this.get("visible"));this.W("dotVisible")&&g.nf([this.Q0,this.O0],this.get("dotVisible")?1:0)};a.prototype.HD=function(){this.W("over","pressed")&&(this.IGa(),this.fHa())};var f=.35,l=.012,p=.1; a.prototype.iq=function(){this.O0=g.create(new THREE.SphereGeometry(2.3,32,32),this.XZa());this.Q0=g.create(new THREE.SphereGeometry(2,32,32),this.YZa());this.Dja=g.create(new THREE.CylinderGeometry(.003,.003,f,8),this.y_a());this.QL=[];this.QL.push(g.create(new THREE.CylinderGeometry(l,l,p,32),this.bea()));this.QL.push(g.create(new THREE.BoxGeometry(2*l,p,l),this.bea()));this.QL.push(g.create(new THREE.CylinderGeometry(l,l,p,32),this.bea()));return[this.O0,this.Q0,this.Dja].concat(this.QL)};a.prototype.XZa= function(){if(this.Hea==null){var q=document.createElement("canvas");q.width=q.height=256;var r=q.getContext("2d"),t=new k;t.ao(q);this.Hea=n.qt(t.texture(),new n.Rp);r.fillStyle="rgba(0, 0, 0, 0.75)";r.clearRect(0,0,q.width,q.height);r.fillRect(0,0,q.width,q.height)}return this.Hea};a.prototype.YZa=function(){this.Iea==null&&(this.qy=document.createElement("canvas"),this.qy.width=this.qy.height=256,this.P0=this.qy.getContext("2d"),this.R0=new k,this.R0.ao(this.qy),this.Iea=n.qt(this.R0.texture(), new n.Rp),this.IGa());return this.Iea};a.prototype.IGa=function(){this.P0.fillStyle=this.Gfa();this.P0.clearRect(0,0,this.qy.width,this.qy.height);this.P0.fillRect(0,0,this.qy.width,this.qy.height);this.R0.update()};a.prototype.y_a=function(){this.Cja==null&&(this.Bv=document.createElement("canvas"),this.Bv.width=this.Bv.height=256,this.KU=this.Bv.getContext("2d"),this.Fja=new k,this.Fja.ao(this.Bv),this.Cja=n.qt(this.Fja.texture(),new n.Rp),this.fHa());return[this.Cja]};a.prototype.fHa=function(){var q= b.Dp(this.Gfa()).join(", "),r=this.KU.createLinearGradient(0,0,0,this.Bv.height);r.addColorStop(0,"rgba("+q+", 0)");r.addColorStop(.5,"rgba("+q+", 1)");r.addColorStop(1,"rgba("+q+", 1)");this.KU.fillStyle=r;this.KU.clearRect(0,0,this.Bv.width,this.Bv.height);this.KU.fillRect(0,0,this.Bv.width,this.Bv.height);this.Fja.update()};a.prototype.bea=function(){if(this.CR==null){var q=document.createElement("canvas");q.width=q.height=256;var r=q.getContext("2d"),t=new k;t.ao(q);this.CR=n.qt(t.texture(),new n.Rp); r.fillStyle="rgba(64, 64, 64, 1)";r.clearRect(0,0,q.width,q.height);r.fillRect(0,0,q.width,q.height)}return[this.CR,this.CR,this.CR]};a.prototype.et=function(){var q=!1,r=!1,t=!1;if(this.W("intersectionDistance")){r=(r=this.get("intersectionDistance"))?h.pw(r):h.Ct();var u=r/h.Ct();this.Jea.makeTranslation(0,0,-r);this.Jea.multiply(c.makeScale(u,u,u));r=!0}this.W("matrix")&&(t=r=q=!0);r&&(c.identity(),(r=this.get("matrix"))&&c.multiply(r),c.multiply(this.Jea),g.nt(this.Q0,c),g.nt(this.O0,c));q&&(c.identity(), (r=this.get("matrix"))&&c.multiply(r),c.multiply(this.Eja),g.nt(this.Dja,c));if(t)for(r=this.get("matrix"),q=0;q0,((y=y.taa())||w.mr)&&b.OY(w,5),b.XE(w,z,y,x))}};t.prototype.Znb= function(u,v){var w=u.mB()||"",y=this.RP.get(v);y&&w!==y.get("text")&&(w?(y.set("text",w),y.set("alpha",1),y.yi(),w=(w=u.yw())?e.pw(w):e.Ct(),l.radius=w,y.set("intersectionYaw",void 0),y.set("intersectionPitch",void 0),f.copy(v.ray).applyMatrix4(v.matrixWorld),f.intersectSphere(l,p)&&(p.x==0&&p.z==0||y.set("intersectionYaw",q*Math.atan2(p.x,-p.z)),p.y==0&&p.z==0||y.set("intersectionPitch",q*Math.atan2(p.y,Math.sqrt(p.z*p.z+p.x*p.x))),y.set("intersectionDistance",u.yw()))):(y.set("text",""),y.set("alpha", 0)))};t.prototype.KQa=function(u){this.j.qX().sort(function(v,w){return w.get("index")-v.get("index")}).forEach(function(v){v.$n(u)}.bind(this))};t.prototype.bnb=function(){var u=this.j.Vb();u&&u.o(h.bG,{iQ:h.Xf})};t.prototype.Mdb=function(){var u=new n;u.set("alpha",0);this.j.add(u);return u};t.prototype.aKa=function(u){this.j.remove(u)};return t}(k);var f=new c.Ray,l=new c.Sphere,p=new c.Vector3,q=180/Math.PI;return a}); define("tdv/player/view/panorama/renderer/pointer/Factory","require tdv/player/view/panorama/renderer/pointer/GazePointer tdv/player/view/panorama/renderer/pointer/LaserPointer tdv/player/view/panorama/renderer/pointer/MousePointer tdv/player/view/panorama/renderer/pointer/Pointer tdv/player/view/panorama/renderer/pointer/TouchPointer tdv/player/view/panorama/renderer/pointer/WebXRPointer".split(" "),function(a){var m=a("tdv/player/view/panorama/renderer/pointer/GazePointer"),h=a("tdv/player/view/panorama/renderer/pointer/LaserPointer"), n=a("tdv/player/view/panorama/renderer/pointer/MousePointer"),g=a("tdv/player/view/panorama/renderer/pointer/Pointer"),k=a("tdv/player/view/panorama/renderer/pointer/TouchPointer"),e=a("tdv/player/view/panorama/renderer/pointer/WebXRPointer");return{create:function(b,c){switch(b){case g.YQ:return new e(c);case g.WB:return new m(c,!0);case g.D_:return new m(c,!1);case g.E_:return new h(c);case g.WQ:return new n(c);case g.XQ:return new k(c)}}}}); define("tdv/player/view/panorama/renderer/util/CursorManager",["require","tdv/view/constants/Cursor"],function(a){function m(n){this.dc=n;this.Gf=[]}var h=a("tdv/view/constants/Cursor");m.prototype.push=function(n){this.Gf.push(n);this.za()};m.prototype.pop=function(n){for(var g=this.Gf.length-1;g>=0;g--)if(this.Gf[g]==n){this.Gf.splice(g,1);this.za();break}};m.prototype.clear=function(){this.Gf.length>0&&(this.dc.set("cursor",h.De),this.Gf=[])};m.prototype.za=function(){this.dc.set("cursor",this.Gf.indexOf(h.Li)>= 0?h.Li:this.Gf.indexOf(h.qf)>=0?h.qf:this.Gf.length>0?this.Gf[this.Gf.length-1]:h.De)};return m}); define("tdv/player/view/panorama/renderer/Renderer","require tdv/utils tdv/binding/BindingsHandler tdv/constants/EventName tdv/events/Event tdv/view/core/UIComponent tdv/view/constants/Cursor tdv/player/view/util/Device tdv/player/view/util/Gamepad tdv/player/view/util/geo/Frustum tdv/player/view/Flash tdv/player/view/panorama/renderer/RendererState tdv/player/view/panorama/renderer/3d/Renderer tdv/player/view/panorama/renderer/object/Factory tdv/player/view/panorama/renderer/object/Root tdv/player/view/panorama/renderer/pointer/Factory tdv/player/view/panorama/renderer/pointer/Pointer tdv/player/view/panorama/renderer/util/CursorManager tdv/player/view/panorama/renderer/OcclusionCuller tdv/player/view/panorama/renderer/TextureLoader tdv/player/view/util/geo/Fov tdv/player/view/util/XR tdv/view/util/Animation tdv/view/util/Screenshot".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/events/Event"),k=a("tdv/view/core/UIComponent"),e=a("tdv/view/constants/Cursor"),b=a("tdv/player/view/util/Device"),c=a("tdv/player/view/util/Gamepad"),d=a("tdv/player/view/util/geo/Frustum"),f=a("tdv/player/view/Flash"),l=a("tdv/player/view/panorama/renderer/RendererState"),p=a("tdv/player/view/panorama/renderer/3d/Renderer"),q=a("tdv/player/view/panorama/renderer/object/Factory"),r=a("tdv/player/view/panorama/renderer/object/Root"), t=a("tdv/player/view/panorama/renderer/pointer/Factory"),u=a("tdv/player/view/panorama/renderer/pointer/Pointer"),v=a("tdv/player/view/panorama/renderer/util/CursorManager"),w=a("tdv/player/view/panorama/renderer/OcclusionCuller"),y=a("tdv/player/view/panorama/renderer/TextureLoader"),x=a("tdv/player/view/util/geo/Fov"),z=a("tdv/player/view/util/XR"),A=a("tdv/view/util/Animation"),D=a("tdv/view/util/Screenshot"),F=Math.PI/180,C=m.extend(k,function(B,H,E){k.call(this);this.gf("Renderer");this.set("toolTipDisabled", !0);this.set("cursor",e.LB);this.set("layout","absolute");this.set("interactionEnabled",!1);this.Ie=B;this.P=H;this.ld=E;this.Oe=new v(H);this.we=null;this.Afa=!1;this.I=new l;this.La=new r(this.Ie,this.P,this.ld,this);this.La.bind(n.V,this.requestFrame,this,!0);this.pk=new p(this.P);this.I.sh=this.pk.Sf();this.I.PW=this.pk.nxa;this.I.QW=this.pk.oxa;this.I.camera=this.pk.getCamera();this.eAa=(new Date).getTime();this.F5=new y;this.F5.bind(n.ia,this.K5a,this,!0);this.VAa=new w;this.VAa.bind(n.V,this.n5a, this,!0);this.g1=new d(this.I.width,this.I.height,this.I.Wd*F);this.bind(n.$b,this.kd,this,!0);this.bind(n.od,this.cp,this,!0);this.bind(n.jd,this.ap,this,!0);z.M.bind(n.V,this.ln,this,!0);c.bind(n.V,this.W4a,this,!0);h.ba(this.ld,["fxaaEnabled","aaEnabled","hotspotsEnabled","preloadEnabled"],function(){this.I.CJ=this.ld.get("hotspotsEnabled");this.I.wY=this.ld.get("preloadEnabled");this.I.eoa=this.ld.get("fxaaEnabled");this.I.tW=this.ld.get("aaEnabled");this.requestFrame()}.bind(this),!0);h.ba(this.ld, ["surfaceSelectionEnabled"],this.gma.bind(this));this.gma();this.ln();h.ba(this.Ie,["defaultVRPointer"],this.Sq.bind(this));this.Sq()});C.prototype.create=function(B){return q.create(B)};C.prototype.add=function(B){this.La.appendChild(B);this.La.Cb().length==1&&this.T4a()};C.prototype.remove=function(B){if(B=this.La.Jf(B))B.remove(),this.La.Cb().length==0&&this.b5a()};C.prototype.Jf=function(B){return this.La.Jf(B)};C.prototype.qX=function(){return this.La.all()};C.prototype.Ckb=function(B){this.Afa!= B&&(this.Afa=B,this.Sq())};C.prototype.pRa=function(B){this.I.Ipa=B};C.prototype.V9=function(B){this.Oe.push(B)};C.prototype.SP=function(B){this.Oe.pop(B)};C.prototype.cB=function(B){this.I.Gn=B;this.requestFrame()};C.prototype.gK=function(){this.XG.o();this.I.FJ=!0;this.y4();var B=D.HSa(this.pk.If());this.I.FJ=!1;this.y4();return B};C.prototype.hna=function(B){this.I.FJ=!0;this.y4();B=this.pk.hna(B);this.I.FJ=!1;return B};C.prototype.getPixelRatio=function(){return this.pk.getPixelRatio()};C.prototype.Bw= function(){return!!this.pk&&this.pk.Bw()};C.prototype.Kb=function(){k.prototype.Kb.call(this);this.XG||(this.XG=new f,this.wa().tk(this.XG.cc()))};C.prototype.Sq=function(){var B=this.I.Va?u.YQ:this.Afa?u.D_:b.ub()?u.XQ:u.WQ;this.we&&this.we.getType()==B||(this.we&&this.we.clear(),this.we=t.create(B,this),this.gma(),this.we.update(this.I))};C.prototype.gma=function(){this.I.vZ=this.ld.get("surfaceSelectionEnabled")&&[u.WQ,u.YQ,u.XQ,u.D_].indexOf(this.we&&this.we.getType())>=0};C.prototype.np=function(){this.Oe.clear(); k.prototype.np.call(this)};C.prototype.kd=function(){var B=this.nb(),H=this.Mb();if(this.I.width!=B||this.I.height!=H)B&&H?(this.I.width=B,this.I.height=H,this.g1.KRa(this.I.width),this.g1.eRa(this.I.height),this.requestFrame()):m.log("Invalid size values: "+B+" "+H)};C.prototype.cp=function(){this.I.enabled=!0;this.requestFrame()};C.prototype.ap=function(){this.I.enabled=!1};C.prototype.ln=function(){this.I.Va=z.isPresenting;this.Sq();this.requestFrame()};C.prototype.W4a=function(){this.Sq();this.requestFrame()}; C.prototype.K5a=function(){this.requestFrame()};C.prototype.n5a=function(){this.requestFrame()};C.prototype.T4a=function(){this.F5.A$(this.P.Rc().Jn())};C.prototype.b5a=function(){this.pk.Keb();this.F5.A$(null)};C.prototype.C$=function(B){this.A4!=B&&((this.A4=B)||this.requestFrame())};C.prototype.rK=function(B){this.I.Ik!=B&&(this.I.Ik=B,this.requestFrame())};C.prototype.setPosition=function(B,H,E,G){if(this.I.Xa!=B||this.I.pitch!=H||this.I.Mg!=E||this.I.Wd!=G)isNaN(B)||isNaN(H)||isNaN(E)||!G?m.log("Invalid position values: "+ B+" "+H+" "+E+" "+G):(this.I.Xa=B,this.I.pitch=H,this.I.Mg=E,this.I.Wd=G,this.g1.lK(this.I.Wd*F),this.requestFrame())};C.prototype.Jc=function(){return this.I.Xa};C.prototype.Ic=function(){return this.I.pitch};C.prototype.yg=function(){return this.I.Mg};C.prototype.jf=function(){return this.I.Wd};C.prototype.cP=function(){return this.I.Va?this.I.kj:x.yr(this.I.kj,this.I.width,this.I.height)};C.prototype.dP=function(){return this.I.kj};C.prototype.unproject=function(B){return this.g1.unproject(B)}; C.prototype.requestFrame=function(){A.requestFrame(this.sq,this)};C.prototype.sq=function(){if(A.l8){var B=(new Date).getTime(),H=Math.max(1,Math.min(B-this.eAa,33));this.eAa=B;this.o(new g(C.Dba,{frameTime:H}));this.I.enabled&&(this.I.zf=H,this.y4())}else this.requestFrame()};C.prototype.y4=function(){this.La.Cb().length!=0&&(this.pk.update(this.I),this.I.Sj=this.pk.Zeb(),this.I.Rj=this.pk.Yeb(),this.I.kj=this.pk.Web(),this.I.tl=this.pk.getPixelRatio(),this.I.camera=this.pk.getCamera(),this.La.update(this.I), this.F5.update(this.I),this.VAa.update(this.I),this.we.update(this.I),this.A4||this.pk.render())};C.Dba="render start";C.pqb=function(){return!0};return C}); define("tdv/player/view/panorama/control/RenderingController",["require","tdv/utils","tdv/events/Event","tdv/events/EventDispatcher","tdv/player/view/panorama/renderer/Renderer"],function(a){var m=a("tdv/utils"),h=a("tdv/events/Event"),n=a("tdv/events/EventDispatcher"),g=a("tdv/player/view/panorama/renderer/Renderer"),k=m.extend(n,function(e){n.call(this);this.j=e;this.j.bind(g.Dba,this.HCa,this,!0)});k.prototype.clear=function(){this.j.h(g.Dba,this.HCa,this,!0);this.j=null};k.prototype.requestFrame= function(){this.j.requestFrame()};k.prototype.HCa=function(e){e=e.data.frameTime;this.o(new h(k.HF,{frameTime:e}));this.o(new h(k.IF,{frameTime:e}))};k.HF="frameStart";k.IF="positionSet";return k}); define("tdv/player/view/panorama/control/camera/OrientationFOVManager",["require","tdv/player/view/util/Device","tdv/player/view/util/geo/Fov"],function(a){function m(){this.Ha=this.Pa=0;this.kb=90;this.Is="landscape";this.fp=0;this.R1=h.ub()}var h=a("tdv/player/view/util/Device"),n=a("tdv/player/view/util/geo/Fov");m.prototype.lRa=function(g){this.kb=this.QKa(g)};m.prototype.QKa=function(g){return this.R1&&this.Is=="portrait"?n.gJ(g,this.Ha,this.Pa):g};m.prototype.vfb=function(g){return this.R1&& this.Is=="portrait"?n.um(g,this.Pa,this.Ha):g};m.prototype.qr=function(g){this.kb=this.R1&&this.zpb?n.gJ(g,this.Ha,this.Pa):g};m.prototype.lw=function(){return this.R1&&this.Is=="portrait"};m.prototype.jf=function(){return this.kb};m.prototype.OW=function(g){return n.gJ(g,this.Ha,this.Pa)};m.prototype.setSize=function(g,k){this.Pa=g;this.Ha=k;g=this.e2a();this.Is!=g&&this.fp++;this.Is=g};m.prototype.e2a=function(){return this.Pa===0||this.Ha===0?"landscape":this.Paw;)u-=w-v;t=t.pitch;return l<=u&&u<=p&&q<=t&&t<=r}.bind(this)); if(c.length==0)return null;c.sort(function(t,u){t=this.ks(t);u=this.ks(u);return(b-t.Xa)*(b-t.Xa)+(d-t.pitch)*(d-t.pitch)-((b-u.Xa)*(b-u.Xa)+(d-u.pitch)*(d-u.pitch))}.bind(this));return c[0]};a.prototype.ks=function(b){var c=b.get("yaw");b=b.get("distance");if(c===void 0||b===void 0)return null;var d=this.Ba.get("distanceToFloor");return{Xa:c,pitch:-90+Math.atan2(b,d)*e}};var e=180/Math.PI;return a}); define("tdv/player/view/panorama/control/Controller","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/panorama/control/AudioController tdv/player/view/panorama/control/camera/Controller tdv/player/view/panorama/control/transition/Controller tdv/player/view/panorama/control/FramesController tdv/player/view/panorama/control/LoadController tdv/player/view/panorama/control/MapController tdv/player/view/panorama/control/RenderingController tdv/player/view/panorama/control/camera/OrientationFOVManager tdv/player/view/panorama/control/translate/Controller tdv/player/view/util/geo/Projection".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/panorama/control/AudioController"),e=a("tdv/player/view/panorama/control/camera/Controller"),b=a("tdv/player/view/panorama/control/transition/Controller"),c=a("tdv/player/view/panorama/control/FramesController"),d=a("tdv/player/view/panorama/control/LoadController"),f=a("tdv/player/view/panorama/control/MapController"),l=a("tdv/player/view/panorama/control/RenderingController"), p=a("tdv/player/view/panorama/control/camera/OrientationFOVManager"),q=a("tdv/player/view/panorama/control/translate/Controller"),r=a("tdv/player/view/util/geo/Projection"),t=m.extend(g,function(u,v){g.call(this);this.P=u;this.j=v;this.j.set("visible",!1);this.Cc=new p;this.dm=new l(this.j);this.Fe=new d(this.j);this.bc=new b(this.P,this.j,this.Cc);this.yb=new e(this.j,this.Cc);this.og=new c(this.j);this.Yy=new f(this.j);this.Fd=new k(this.j);this.L5=new q(this.j);this.dm.bind(l.HF,this.eU,this,!0); this.dm.bind(l.IF,this.fU,this,!0);this.Fe.bind(h.vd,this.TBa,this,!0);this.Fe.bind(h.Fg,this.PT,this,!0);this.Fe.bind(h.yc,this.Gj,this,!0);this.bc.bind(b.oc,this.bg,this,!0);this.bc.bind(b.Eba,this.UBa,this,!0);this.bc.bind(b.vba,this.lCa,this,!0);this.bc.bind(b.aba,this.aBa,this,!0);this.bc.bind(b.bba,this.bBa,this,!0);this.bc.bind(b.DF,this.YT,this,!0);this.bc.bind(b.BF,this.$C,this,!0);this.bc.bind(b.CF,this.jz,this,!0);this.bc.bind(b.AF,this.XT,this,!0);this.bc.bind(b.Gr,this.kn,this,!0);this.yb.bind(e.oc, this.bg,this,!0);this.yb.bind(e.Cl,this.As,this);this.yb.bind(e.Fr,this.bp,this);this.yb.bind(e.gd,this.Mf,this,!0);this.yb.bind(e.$j,this.Gs,this,!0);this.yb.bind(e.Zj,this.Fs,this,!0);this.og.bind(c.oc,this.bg,this,!0);this.og.bind(c.Ok,this.Es,this,!0);this.og.bind(c.gd,this.Mf,this,!0);this.Yy.bind(f.tj,this.$Ba,this,!0)});t.prototype.clear=function(){this.Fe.clear();this.dm.clear();this.yb.clear();this.bc.clear();this.og.clear();this.Yy.clear();this.Fd.clear();this.Fe.h(h.vd,this.TBa,this);this.Fe.h(h.Fg, this.PT,this);this.Fe.h(h.yc,this.Gj,this);this.dm.h(l.HF,this.eU,this);this.dm.h(l.IF,this.fU,this);this.bc.h(b.oc,this.bg,this);this.bc.h(b.Eba,this.UBa,this);this.bc.h(b.vba,this.lCa,this);this.bc.h(b.aba,this.aBa,this);this.bc.h(b.bba,this.bBa,this);this.bc.h(b.DF,this.YT,this);this.bc.h(b.BF,this.$C,this);this.bc.h(b.CF,this.jz,this);this.bc.h(b.AF,this.XT,this);this.bc.h(b.Gr,this.kn,this);this.yb.h(e.HUa,this.bg,this);this.yb.h(e.Cl,this.As,this);this.yb.h(e.Fr,this.bp,this);this.yb.h(e.gd, this.Mf,this,!0);this.yb.h(e.$j,this.Gs,this);this.yb.h(e.Zj,this.Fs,this);this.og.h(c.oc,this.bg,this);this.og.h(c.Ok,this.Es,this);this.og.h(c.gd,this.Mf,this);this.Yy.h(f.tj,this.$Ba,this);this.P=this.j=this.L5=this.Fd=this.Yy=this.og=this.bc=this.yb=this.dm=this.Fe=null};t.prototype.u$=function(u){this.Yy.u$(u)};t.prototype.rra=function(u){this.bc.rra(u)};t.prototype.Vf=function(u,v,w){this.j.set("visible",!0);this.og.T$();u.set("currentTime",w);this.bc.start(u,v)};t.prototype.cE=function(){return this.Fe.Ba|| this.bc.efb()||this.bc.Xu};t.prototype.bB=function(){this.Fe.stop();this.og.end();this.yb.end();this.bc.oe();this.Yy.stop();this.Fd.end();this.L5.end()};t.prototype.XP=function(){this.yb.resume();this.og.XP()};t.prototype.NP=function(){this.yb.pause();this.og.NP()};t.prototype.play=function(){this.yb.play();this.Fd.play();this.og.play()};t.prototype.pause=function(){this.yb.pause();this.Fd.pause();this.og.pause()};t.prototype.stop=function(){this.yb.stop();this.Fd.stop();this.og.stop()};t.prototype.RE= function(u){this.yb.RE(u);this.L5.RE(u)};t.prototype.getTime=function(){return this.og.getTime()};t.prototype.moveTo=function(u,v,w,y,x){this.yb.moveTo(u,v,w,y,x)};t.prototype.Jc=function(){return this.j?this.j.Jc():void 0};t.prototype.Ic=function(){return this.j?this.j.Ic():void 0};t.prototype.yg=function(){return this.j?this.j.yg():void 0};t.prototype.jf=function(){return this.j?this.Cc.vfb(this.j.jf()):void 0};t.prototype.cP=function(){return this.j?this.j.cP():void 0};t.prototype.dP=function(){return this.j? this.j.dP():void 0};t.prototype.Mf=function(){var u=this.og.ql()||this.yb.ql();this.o(new n(t.gd,{state:u}))};t.prototype.wl=function(u){this.yb.wl(u)};t.prototype.VY=function(u){this.yb.VY(u)};t.prototype.TE=function(u){this.yb.TE(u)};t.prototype.WY=function(u){this.yb.WY(u)};t.prototype.Bg=function(u){this.og.Bg(u)};t.prototype.sK=function(u){this.yb.sK(u)};t.prototype.Goa=function(u,v){return(u=r.get(u,v,this.j.Jc(),this.j.Ic(),this.j.yg(),this.j.jf(),this.j.nb(),this.j.Mb()))?{x:u.x,y:u.y}:null}; t.prototype.Ffb=function(u,v){return(u=r.kob(u,v,this.j))?{yaw:u.Xa,pitch:u.pitch}:null};t.prototype.gK=function(){this.j.gK()};t.prototype.Woa=function(){return this.bc.Woa()};t.prototype.UBa=function(u){this.Fe.start(u.data.panorama)};t.prototype.Gj=function(u){this.j.cB(u.percent<100);this.o(new n(t.wx,{percent:u.percent}))};t.prototype.TBa=function(u){this.og.end();this.L5.Vf(u.data.panorama)};t.prototype.PT=function(){this.j.cB(!1);this.o(new n(t.uF))};t.prototype.bg=function(){this.dm.requestFrame()}; t.prototype.eU=function(u){u=u.data.frameTime;this.Cc.setSize(this.j.nb(),this.j.Mb());this.bc.YA(u);this.yb.YA(u)};t.prototype.fU=function(u){u=u.data.frameTime;this.bc.ze(u);this.yb.ze(u);this.og.ze(u);this.Yy.ze(u);this.Fd.ze(u)};t.prototype.YT=function(u){this.Yy.display(u.data.panorama);this.og.mP(u.data.panorama);this.o(new n(t.DF,{panorama:u.data.panorama}))};t.prototype.lCa=function(u){this.Yy.oe(u.data.panorama)};t.prototype.aBa=function(u){this.og.start(u.data.panorama);this.Fd.start(u.data.panorama)}; t.prototype.bBa=function(){this.og.end();this.j.set("visible",!1)};t.prototype.XT=function(u){this.yb.end();this.Fd.end(u.data.nextPanorama);this.o(new n(t.AF,{panorama:u.data.panorama}))};t.prototype.jz=function(u){this.yb.start(u.data.panorama,u.data.camera);this.o(new n(t.CF,{panorama:u.data.panorama}))};t.prototype.$C=function(u){this.o(new n(t.BF,{panorama:u.data.panorama}))};t.prototype.$Ba=function(u){this.yb.yra(u.data.yawDelta,0)};t.prototype.As=function(u){this.o(new n(t.Cl,u.data))};t.prototype.bp= function(u){this.o(new n(t.Fr,u.data))};t.prototype.kn=function(u){this.o(new n(t.Gr,u.data))};t.prototype.Gs=function(){this.og.uQ();this.o(new n(t.$j))};t.prototype.Fs=function(){this.o(new n(t.Zj))};t.prototype.bRa=function(u){this.og.pK(u)};t.prototype.QE=function(u){this.og.QE(u)};t.prototype.Es=function(u){this.o(new n(t.Ok,u.data))};t.wx="loadingProgress";t.uF="loadingEnd";t.Cl="movementChange";t.Fr="positionChange";t.DF="panoramaStart";t.AF="panoramaEnd";t.CF="panoramaShow";t.BF="panoramaHide"; t.gd="playbackStateChange";t.$j="userInteractionStart";t.Zj="userInteractionEnd";t.Ok="timeChange";t.Gr="transitionEnd";return t}); define("tdv/player/script/PanoramaPlayer","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/constants/PlaybackState tdv/player/constants/RotationMode tdv/player/parser/ClassInfo tdv/player/script/helper/ButtonProperty tdv/player/script/PlaybackMediaPlayer tdv/player/script/PanoramaCamera tdv/player/view/panorama/control/Controller tdv/player/view/panorama/control/constants/Movement tdv/player/view/panorama/renderer/Renderer tdv/player/view/util/Device tdv/player/view/util/Gyroscope tdv/player/view/util/InfoWindow tdv/player/view/util/XR tdv/view/constants/ButtonMode tdv/view/constants/State tdv/view/util/KeyboardControl".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/constants/PlaybackState"),k=a("tdv/player/constants/RotationMode"),e=a("tdv/player/parser/ClassInfo"),b=a("tdv/player/script/helper/ButtonProperty"),c=a("tdv/player/script/PlaybackMediaPlayer"),d=a("tdv/player/script/PanoramaCamera"),f=a("tdv/player/view/panorama/control/Controller"),l=a("tdv/player/view/panorama/control/constants/Movement"),p=a("tdv/player/view/panorama/renderer/Renderer"),q=a("tdv/player/view/util/Device"), r=a("tdv/player/view/util/Gyroscope"),t=a("tdv/player/view/util/InfoWindow"),u=a("tdv/player/view/util/XR"),v=a("tdv/view/constants/ButtonMode"),w=a("tdv/view/constants/State"),y=a("tdv/view/util/KeyboardControl"),x=e.define("PanoramaPlayer",c,function(){c.call(this,"panorama");c.prototype.set.call(this,"rotationEnabled",!0);c.prototype.set.call(this,"zoomEnabled",!0);c.prototype.set.call(this,"surfaceSelectionEnabled",!1);c.prototype.set.call(this,"surfaceSelectionHorizontalAngle",90);c.prototype.set.call(this, "surfaceSelectionVerticalAngle",180);c.prototype.set.call(this,"adjacentPanoramaPositionsEnabled",!1);c.prototype.set.call(this,"fxaaEnabled",!1);c.prototype.set.call(this,"aaEnabled",!1);this.Zka=this.uga=this.CC=this.i1=this.N2=this.E2=this.zda=this.hD=this.ij=this.$ca=!1;this.aga=!0;this.i5=this.f2=this.Ro=this.u0=!1;this.Ika=y.yp();y.dX.bind(h.V,this.Y4a,this,!0);this.fs=!1;this.f1=this.xfa=this.vf=this.ac=0;this.cja=this.eja=void 0;this.Vha=!0;this.Jj=g.ca;this.tq=this.tq.bind(this);this.U=this.j= null;this.KAa={};for(var z in x.Px)this.KAa[z]=this.s_a(z);this.Y_=new b(this,"buttonToggleGyroscope",v.ak);this.Y_.bind(h.Rk,function(){this.set("gyroscopeEnabled",!0)},this);this.Y_.bind(h.Km,function(){this.set("gyroscopeEnabled",!1)},this);this.Y_.set("pressed",this.get("gyroscopeEnabled")&&r.ol);(new b(this,"buttonCardboardView",v.af)).bind(h.ma,function(){this.set("viewMode",x.jG)},this,!0);(new b(this,"buttonVRView",v.af)).bind(h.ma,function(){this.set("viewMode",x.jG)},this,!0);u.M.bind(h.V, function(){this.vla("viewMode");this.o(x.Jba)},this,!0);this.X_=new b(this,"buttonToggleGazeMode",v.ak);this.X_.bind(h.Rk,function(){this.set("gazeModeEnabled",!0)},this);this.X_.bind(h.Km,function(){this.set("gazeModeEnabled",!1)},this);this.X_.set("pressed",this.get("gazeModeEnabled"));this.Z_=new b(this,"buttonToggleHotspots",v.ak);this.Z_.bind(h.Rk,function(){this.set("hotspotsEnabled",!0)},this);this.Z_.bind(h.Km,function(){this.set("hotspotsEnabled",!1)},this);this.Z_.set("pressed",this.get("hotspotsEnabled")); this.b0=new b(this,"buttonToggleSurfaceSelection",v.ak);this.b0.bind(h.Rk,function(){this.set("surfaceSelectionEnabled",!0)},this);this.b0.bind(h.Km,function(){this.set("surfaceSelectionEnabled",!1)},this);this.b0.set("pressed",this.get("surfaceSelectionEnabled"));this.SYa=new b(this,"buttonScreenshot",v.af);this.SYa.bind(h.ma,this.qEa,this,!0);this.be=m.lr(this.Sh,this)});x.wUa="cameraPositionChange";x.wx="loadingProgress";x.DUa="preloadMediaShow";x.Jba="viewModeChange";x.prototype.moveLeft=function(){this.md(l.cL)}; x.prototype.moveRight=function(){this.md(l.dL)};x.prototype.moveUp=function(){this.md(l.eL)};x.prototype.moveDown=function(){this.md(l.bL)};x.prototype.playLeft=function(){this.md([l.cL,l.PLAYING])};x.prototype.playRight=function(){this.md([l.dL,l.PLAYING])};x.prototype.playUp=function(){this.md([l.eL,l.PLAYING])};x.prototype.playDown=function(){this.md([l.bL,l.PLAYING])};x.prototype.play=function(){this.rn()};x.prototype.pause=function(){this.tv()};x.prototype.stop=function(){this.cD()};x.prototype.seek= function(z){this.pI(z)};x.prototype.setFramePlaybackPosition=function(z){this.t8a(z)};x.prototype.setFrameTransitionPosition=function(z){this.u8a(z)};x.prototype.restart=function(){this.bD()};x.prototype.zoomIn=function(){this.md(l.Nx)};x.prototype.zoomOut=function(){this.md(l.Ox)};x.prototype.resumeCamera=function(){this.o7a()};x.prototype.pauseCamera=function(){this.g6a()};x.prototype.moveTo=function(z,A,D,F){this.JAa(z,A,D,F,!1)};x.prototype.setPosition=function(z,A,D,F){this.JAa(z,A,D,F,!0)}; x.prototype.getScreenPosition=function(z,A){return this.w2a(z,A)};x.prototype.getPanoramaPosition=function(z,A){return this.f2a(z,A)};x.prototype.saveScreenshot=function(){return this.qEa()};x.prototype.get=function(z,A){switch(z){case "currentTime":return this.U&&this.U.getTime()||0;case "viewMode":return u.isPresenting?x.jG:x.Jca;case "video":z="panorama";break;case "rendererPanorama":return this.U&&this.U.cE()}if(!A)switch(z){case "mouseControlMode":A=k.Kta;break;case "touchControlMode":A=k.Eua}return c.prototype.get.call(this, z,A)};x.prototype.set=function(z,A){if(this.get(z)!=A){switch(z){case "application":this.$ca=!0;this.be();break;case "startTime":this.hD=!0;this.be();break;case "video":case "panorama":z="panorama";this.hD=!0;this.be();break;case "camera":this.zda=!0;this.be();break;case "viewerArea":this.ij=!0;this.be();break;case "displayPlaybackBar":case "hdrPanoramaDisplayPlaybackBarSteps":case "livePanoramaDisplayPlaybackBarSteps":case "buttonPlay":case "buttonPlayPause":this.fs=!0;this.be();break;case "mapPlayer":this.E2= !0;this.be();break;case "model3DPlayer":this.N2=!0;this.be();break;case "gazeModeEnabled":q.Jp()&&(A=!1);A&&y.yp()&&y.Pqa();this.i1=!0;this.be();break;case "gyroscopeEnabled":this.CC=!0;this.be();break;case "gyroscopeVerticalDraggingEnabled":this.aga=!0;this.be();break;case "viewMode":A=="vr"&&(A=x.jG);A==x.jG?this.get("viewerArea").set("viewMode","vr"):this.get("viewerArea").set("viewMode","standard");A=u.isPresenting?x.jG:x.Jca;break;case "hotspotsEnabled":this.uga=!0;this.be();break;case "mouseControlMode":case "touchControlMode":this.u0= !0;this.be();break;case "surfaceSelectionEnabled":this.Zka=!0,this.be()}c.prototype.set.call(this,z,A)}};x.prototype.rr=function(z){this.Ro!=z&&((this.Ro=z)?document.addEventListener("keyup",this.tq,!0):document.removeEventListener("keyup",this.tq,!0),this.U&&this.U.RE(this.Ro),this.f2=!0,this.be())};x.prototype.Y4a=function(){var z=y.yp();this.Ika!==z&&(this.i5=!0,this.Ika=z,this.be())};x.prototype.tq=function(z){var A=this.get("gazeModeKeyCode");A&&!y.yp()&&z.code==A&&this.set("gazeModeEnabled", !this.get("gazeModeEnabled"))};x.prototype.jna=function(){return this.get("doubleClickAction")!="inherit"};x.prototype.enb=function(){this.eK([this])};x.prototype.qda=function(z){c.prototype.qda.call(this,z);z.bind(h.fi,this.DHa,this,!0)};x.prototype.Cla=function(z){c.prototype.Cla.call(this,z);z.h(h.fi,this.DHa,this,!0)};x.prototype.DHa=function(){switch(this.get("doubleClickAction")){case "toggle_fullscreen":var z=this.get("application").kk;z&&z.ol()&&z.toggle()}};x.prototype.s_a=function(z){var A= x.Px[z];z=new b(this,z,v.af);z.bind(h.Sa,function(){this.md(A.movement)},this);A.stopOnRelease&&z.bind(h.$a,function(){this.md(l.Fg)},this);return z};x.prototype.Sh=function(){if(this.ij||this.$ca)this.ij=this.$ca=!1,this.i5=this.f2=this.u0=this.CC=this.i1=this.N2=this.E2=!0,this.oy(),this.get("viewerArea")&&this.get("application")&&this.ny(),this.kV(this.get("viewerArea"));var z=!1;if(this.j){this.E2&&(this.E2=!1,this.U.u$(this.get("mapPlayer")));this.N2&&(this.N2=!1,this.U.rra(this.get("model3DPlayer"))); this.u0&&(this.u0=!1,this.U.TE(this.get("mouseControlMode")),this.U.sK(this.get("touchControlMode")));if(this.hD||this.zda)this.f1=this.xfa=this.ac=this.vf=0,this.cja=this.eja=void 0,z=!0,this.zda=this.hD=!1,this.get("panorama")?this.U.Vf(this.get("panorama"),this.get("camera",new d),this.get("startTime")):(this.U.bB(),this.Vha=!0,this.Jj=g.ca,this.Jd(g.ca));if(this.i1||this.f2||this.i5){this.f2=this.i5=this.i1=!1;var A=this.get("gazeModeEnabled");this.j.Ckb(A&&this.Ro&&!this.Ika);this.X_.set("pressed", A)}this.aga&&(this.aga=!1,this.U.WY(this.get("gyroscopeVerticalDraggingEnabled",!0)));this.CC&&(this.CC=!1,(A=this.get("gyroscopeEnabled")&&r.ol)&&r.disabled&&(A=!1,t.vta.show(function(){r.Nqa(function(){this.set("gyroscopeEnabled",!0)}.bind(this))}.bind(this))),this.set("gyroscopeEnabled",A),this.U.VY(A),this.Y_.set("pressed",A));this.uga&&(this.uga=!1,this.Z_.set("pressed",this.get("hotspotsEnabled")));this.fs&&(this.fs=!1,z=!0);this.Zka&&(this.Zka=!1,this.b0.set("pressed",this.get("surfaceSelectionEnabled"))); z&&this.Zz()}};x.prototype.RN=function(){this.U.Woa()||this.set("panorama",null)};x.prototype.ny=function(){var z=this.get("viewerArea"),A=this.get("application");this.j=new p(A,z,this);this.j.xa({left:0,top:0,bottom:0,right:0});z.mb(this.j);this.U=new f(z,this.j);this.U.bind(f.Cl,this.As,this);this.U.bind(f.Fr,this.oBa,this);this.U.bind(f.wx,this.Gj,this);this.U.bind(f.uF,this.XM,this);this.U.bind(f.CF,this.jz,this,!0);this.U.bind(f.BF,this.$C,this,!0);this.U.bind(f.DF,this.YT,this,!0);this.U.bind(f.AF, this.XT,this,!0);this.U.bind(f.gd,this.Mf,this);this.U.bind(f.$j,this.Gs,this);this.U.bind(f.Zj,this.Fs,this);this.U.bind(f.Ok,this.Es,this);this.U.bind(f.Gr,this.kn,this,!0);this.get("application").bind(h.L("mute"),this.VT,this);this.get("application").get("mute",!1)&&this.U.Bg(!0);this.U.RE(this.Ro);u.M.bind(h.V,this.ln,this,!0);this.Yda();this.xD(!0)};x.prototype.oy=function(){this.j&&(this.U.h(f.Cl,this.As,this),this.U.h(f.Fr,this.oBa,this),this.U.h(f.wx,this.Gj,this),this.U.h(f.uF,this.XM,this), this.U.h(f.CF,this.jz,this,!0),this.U.h(f.BF,this.$C,this,!0),this.U.h(f.DF,this.YT,this,!0),this.U.h(f.AF,this.XT,this,!0),this.U.h(f.gd,this.Mf,this),this.U.h(f.$j,this.Gs,this),this.U.h(f.Zj,this.Fs,this),this.U.h(f.Ok,this.Es,this),this.U.h(f.Gr,this.kn,this),this.U.clear(),this.U=null,this.get("application").h(h.L("mute"),this.VT,this),this.j.getParent().removeChild(this.j),this.j=null,u.M.h(h.V,this.ln,this,!0),this.xD(!1))};x.prototype.VT=function(){this.j&&this.U.Bg(this.get("application").get("mute", !1))};x.prototype.Mf=function(z){this.Jj=z.data.state;this.jh()};x.prototype.jh=function(){this.Jd(this.Vha||u.isPresenting?this.Jj:g.PLAYING)};x.prototype.Gs=function(){this.o(new n(h.Pua))};x.prototype.Fs=function(){this.o(new n(h.Oua))};x.prototype.YT=function(z){this.o(new n(x.DUa,{panorama:z.data.panorama}))};x.prototype.XT=function(){};x.prototype.jz=function(z){this.Yda();this.jT(z.data.panorama)};x.prototype.$C=function(z){this.iT(z.data.panorama)};x.prototype.As=function(z){for(var A in x.Px)this.KAa[A].set("state", z.data[x.Px[A].pressedOn]?w.Fb:w.De);this.Vha=z.data.stopped;this.jh();this.o(new n(h.Mta,z.data))};x.prototype.oBa=function(z){this.Yda();this.o(new n(x.wUa,z.data))};x.prototype.Yda=function(){this.U&&(this.set("yaw",this.U.Jc()),this.set("pitch",this.U.Ic()),this.set("roll",this.U.yg()),this.set("hfov",this.U.jf()),this.set("actualHFOV",this.U.cP()),this.set("actualVFOV",this.U.dP()))};x.prototype.Gj=function(z){this.j.getParent().xa({progressPercent:z.data.percent,progressVisible:!0});this.o(new n(x.wx, z.data))};x.prototype.XM=function(){this.j.getParent().set("progressVisible",!1)};x.prototype.kn=function(){this.o(h.pca)};x.prototype.ln=function(){this.set("viewMode",u.isPresenting?x.jG:x.Jca);this.jh()};x.prototype.JAa=function(z,A,D,F,C){this.U&&this.U.moveTo(z,A,D,F,C)};x.prototype.md=function(z){this.U&&this.U.wl(z)};x.prototype.rn=function(){this.U&&this.U.play()};x.prototype.Xs=function(){this.U&&this.U.stop()};x.prototype.tv=function(){this.U&&this.U.pause()};x.prototype.pI=function(z){this.U&& (this.Cya()?this.U.QE(z):this.U.bRa(z))};x.prototype.t8a=function(z){this.U&&this.U.bRa(z)};x.prototype.u8a=function(z){this.U&&this.U.QE(z)};x.prototype.g6a=function(){this.U&&this.U.NP()};x.prototype.o7a=function(){this.U&&this.U.XP()};x.prototype.w2a=function(z,A){if(this.U)return this.U.Goa(z,A)};x.prototype.f2a=function(z,A){if(this.U)return this.U.Ffb(z,A)};x.prototype.qEa=function(){this.U&&this.U.gK()};x.prototype.zU=function(z){this.pI(z.data.position)};x.prototype.Es=function(z){this.vf= z.data.time;this.ac=z.data.duration;this.xfa=z.data.transitionPosition;this.f1=z.data.transitionLength;this.eja=z.data.steps;this.cja=z.data.selectedStep;this.Zz()};x.prototype.Zz=function(){var z=this.j.getParent(),A=!1;if(this.w1a()){var D=this.Cya(),F=this.h2a();D?this.f1>0&&(z.xa({playbackBarPosition:this.xfa,playbackBarDuration:this.f1,playbackBarSteps:this.eja,playbackBarSelectedStep:this.cja,playbackBarLiveDragging:F}),A=!0):this.ac>0&&(z.xa({playbackBarPosition:this.vf,playbackBarDuration:this.ac, playbackBarSteps:void 0,playbackBarSelectedStep:void 0,playbackBarLiveDragging:F}),A=!0)}z.set("playbackBarVisible",A)};x.prototype.w1a=function(){var z=this.get("panorama");return z?e.Oa("HDRPanorama",z)?this.get("hdrPanoramaDisplayPlaybackBar",this.get("displayPlaybackBar",!1)):e.Oa("LivePanorama",z)?this.get("livePanoramaDisplayPlaybackBar",this.get("displayPlaybackBar",!1)):e.Oa("VideoPanorama",z)?this.get("videoPanoramaDisplayPlaybackBar",this.get("displayPlaybackBar",!0)):!1:!1};x.prototype.Cya= function(){var z=this.get("panorama");return z?e.Oa("HDRPanorama",z)?this.get("hdrPanoramaDisplayPlaybackBarSteps",!0):e.Oa("LivePanorama",z)?this.get("livePanoramaDisplayPlaybackBarSteps",!0):!1:!1};x.prototype.h2a=function(){var z=this.get("panorama");return!z||e.Oa("VideoPanorama",z)?!1:!0};x.jG="cardboard";x.Jca="standard";x.Px={buttonMoveLeft:{movement:l.cL,pressedOn:"movingLeft",stopOnRelease:!0},buttonMoveRight:{movement:l.dL,pressedOn:"movingRight",stopOnRelease:!0},buttonMoveUp:{movement:l.eL, pressedOn:"movingUp",stopOnRelease:!0},buttonMoveDown:{movement:l.bL,pressedOn:"movingDown",stopOnRelease:!0},buttonPlayLeft:{movement:[l.cL,l.PLAYING],pressedOn:"movingLeft",stopOnRelease:!1},buttonPlayRight:{movement:[l.dL,l.PLAYING],pressedOn:"movingRight",stopOnRelease:!1},buttonPlayUp:{movement:[l.eL,l.PLAYING],pressedOn:"movingUp",stopOnRelease:!1},buttonPlayDown:{movement:[l.bL,l.PLAYING],pressedOn:"movingDown",stopOnRelease:!1},buttonZoomIn:{movement:l.Nx,pressedOn:"zoomingIn",stopOnRelease:!0}, buttonZoomOut:{movement:l.Ox,pressedOn:"zoomingOut",stopOnRelease:!0}};return x}); define("tdv/player/script/PanoramaPlayListItem",["require","tdv/player/parser/ClassInfo","tdv/player/script/MediaPlayer","tdv/player/script/PlayListItem"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/MediaPlayer"),n=a("tdv/player/script/PlayListItem");a=m.define("PanoramaPlayListItem",n,function(){n.call(this)});a.prototype.start=function(){n.prototype.start.call(this);var g=this.get("player");g&&(g.bind(h.di,this.jz,this),g.set("panorama",this.get("media")),g.set("camera", this.get("camera")))};a.prototype.stop=function(){var g=this.get("player");g&&(g.h(h.di,this.jz,this),g.get("panorama")==this.get("media")&&g.set("panorama",null));n.prototype.stop.call(this)};a.prototype.jz=function(g){g.data.media==this.get("media")&&(this.get("player").h(h.di,this.jz,this),this.get("player").bind(h.mo,this.$C,this),this.PD())};a.prototype.$C=function(g){g.data.media==this.get("media")&&(this.get("player").h(h.mo,this.$C,this),this.stop(),this.end())};return a}); define("tdv/player/script/PanoramaSnapshot",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("PanoramaSnapshot",m,function(){m.call(this)})}); define("tdv/player/script/Photo",["require","exports","tdv/player/parser/ClassInfo","tdv/player/script/Media","tdv/player/script/helper/LevelUtil"],function(a,m,h,n,g){a=function(k){function e(){return k.call(this)||this}P(e,k);e.prototype.sw=function(){var b=[],c=this.get("image");c&&b.push(g.Dt(c).get("url"));this.get("audios",[]).forEach(function(d){b=b.concat(d.sw())}.bind(this));return b};return e}(n);h.create("Photo",a);return a}); define("tdv/player/script/PhotoAlbum",["require","tdv/player/script/Media","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/player/script/Media");a=a("tdv/player/parser/ClassInfo").define("PhotoAlbum",m,function(){m.call(this);this.set("loop",!1)});a.prototype.sw=function(){var h=[],n=this.get("playList");n&&n.get("items",[]).forEach(function(g){(g=g.get("media"))&&(h=h.concat(g.sw()))});this.get("audios",[]).forEach(function(g){h=h.concat(g.sw())});return h};return a}); define("tdv/player/script/PhotoAlbumAudio",["require","tdv/constants/Priority","tdv/player/parser/ClassInfo","tdv/player/script/MediaAudio"],function(a){var m=a("tdv/constants/Priority"),h=a("tdv/player/parser/ClassInfo"),n=a("tdv/player/script/MediaAudio");return h.define("PhotoAlbumAudio",n,function(){n.call(this,m.GVa)})}); define("tdv/player/view/photo/control/audio/AudioController",["require","tdv/constants/PlaybackState"],function(a){function m(n){this.Ou=n;this.AL=[];this.Pu=[];this.it=1}var h=a("tdv/constants/PlaybackState");m.prototype.clear=function(){for(var n=0;ng&&(this.ec=g);n=Math.min(.5/this.kc,.5);g=Math.max(1-.5/this.kc,.5);this.fcg&&(this.fc=g)}};return m}); define("tdv/player/view/photo/control/camera/PhotoCameraController",["require"],function(){function a(m){this.va=m;this.fc=this.ec=.5;this.kc=1;this.D4=!1}a.prototype.start=function(){this.fc=this.ec=.5;this.kc=1;this.D4=!0};a.prototype.clear=function(){this.va=null};a.prototype.setPosition=function(m,h,n){this.ec=m;this.fc=h;this.kc=n};a.prototype.Uf=function(){return this.D4};a.prototype.Nb=function(){this.D4=!1};return a}); define("tdv/player/script/PhotoCameraPosition",["require","exports","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a,m,h,n){a=function(g){function k(e,b,c){var d=g.call(this)||this;e!==void 0&&d.set("x",e);b!==void 0&&d.set("y",b);c!==void 0&&d.set("zoomFactor",c);return d}P(k,g);return k}(h);n.create("PhotoCameraPosition",a);return a}); define("tdv/player/view/photo/control/camera/MovementPhotoCameraController","require tdv/utils tdv/player/view/photo/control/camera/PhotoCameraController tdv/player/script/PhotoCameraPosition tdv/view/util/Ease tdv/view/util/EaseDimension".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/player/view/photo/control/camera/PhotoCameraController"),n=a("tdv/player/script/PhotoCameraPosition"),g=a("tdv/view/util/Ease"),k=a("tdv/view/util/EaseDimension");a=m.extend(h,function(e){h.call(this,e);this.la= null});a.prototype.start=function(e){var b=e.get("initialPosition",new n(.5,.5,1)),c=e.get("targetPosition",new n(.5,.5,1)),d=e.get("duration",1E3);d==0?(this.ec=b.get("x"),this.fc=b.get("y"),this.kc=b.get("zoomFactor")):this.la=new g(e.get("easing","linear"),[new k("x",b.get("x",.5),c.get("x",.5)),new k("y",b.get("y",.5),c.get("y",.5)),new k("zoom",b.get("zoomFactor",1),c.get("zoomFactor",1))],d);this.Nb(0)};a.prototype.clear=function(){this.la=null;h.prototype.clear.call(this)};a.prototype.Uf=function(){return this.la!= null};a.prototype.Nb=function(e){this.la&&(this.la.Nb(e),this.va.setPosition(this.la.ob("x"),this.la.ob("y"),this.la.ob("zoom")),this.ec=this.va.getX(),this.fc=this.va.getY(),this.kc=this.va.yA(),this.la.Ve()&&(this.la=null))};return a}); define("tdv/player/view/photo/control/CameraController","require tdv/utils tdv/events/Event tdv/events/EventDispatcher tdv/player/parser/ClassInfo tdv/constants/PlaybackState tdv/view/constants/ScaleMode tdv/player/view/photo/control/camera/LimitsManager tdv/player/view/photo/control/camera/PhotoCameraController tdv/player/view/photo/control/camera/MovementPhotoCameraController tdv/constants/EventName".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/events/Event"),n=a("tdv/events/EventDispatcher"), g=a("tdv/player/parser/ClassInfo"),k=a("tdv/constants/PlaybackState"),e=a("tdv/view/constants/ScaleMode"),b=a("tdv/player/view/photo/control/camera/LimitsManager"),c=a("tdv/player/view/photo/control/camera/PhotoCameraController"),d=a("tdv/player/view/photo/control/camera/MovementPhotoCameraController"),f=a("tdv/constants/EventName"),l=m.extend(n,function(p,q){n.call(this);this.P=p;this.nd=q;this.P.bind(f.$b,this.kd,this);this.I=k.ca;this.qn=this.e4=this.Ac=this.Ja=null;this.va=new b});l.prototype.clear= function(){this.end();this.va=null;this.P.h(f.$b,this.kd,this);this.P=null};l.prototype.end=function(p){if(this.Ja==p||typeof p=="undefined")this.uxa(),this.Ac=this.e4=this.Ja=null};l.prototype.start=function(p){if(this.Ja!=p){this.end(this.Ja);var q=p.get("media"),r=p.get("camera"),t=q.get("width",100),u=q.get("height",100),v=r?r.get("scaleMode",e.uj):e.uj;this.Ja=p;this.Ac=r;this.e4=q;this.ha=!0;this.va.setConfiguration(t,u,v);this.u_a(r);this.bb()}};l.prototype.stop=function(){this.I!=k.ca&&(this.I= k.ca,this.qn&&(this.qn.start(this.Ac),this.bb()))};l.prototype.play=function(){if(this.I==k.ca||this.I==k.Zb)this.I=k.PLAYING,this.bb()};l.prototype.pause=function(){this.I==k.PLAYING&&(this.I=k.Zb)};l.prototype.YA=function(p){this.qn&&this.qn.Uf()&&(this.I==k.PLAYING&&(this.qn.Nb(p),this.bb()),this.un(this.qn.ec,this.qn.fc,this.qn.kc))};l.prototype.u_a=function(p){this.uxa();g.Oa("MovementPhotoCamera",p)?this.qn=new d(this.va):this.qn=new c(this.va);this.qn.start(p)};l.prototype.uxa=function(){this.qn&& (this.qn.clear(),this.qn=null)};l.prototype.kd=function(){this.va.setSize(this.P.nb(),this.P.Mb());this.bb()};l.prototype.bb=function(){this.o(new h(l.oc))};l.prototype.un=function(p,q,r){this.nd.setPosition(this.Ja,p,q,r)};l.oc="request frame";return l}); define("tdv/player/view/photo/control/StageControllerItem","require exports tdv/events/EventDispatcher tdv/events/Event tdv/constants/EventName tdv/player/script/PhotoCameraPosition".split(" "),function(a,m,h,n,g,k){return function(e){function b(c,d){var f=e.call(this)||this;f.Zib=c;f.renderer=d;f.camera=c.get("camera");f.tc=c.get("media");f.tc.set("enabled",!1);f.tc.bind(g.ia,f.NA,f,!1);return f}P(b,e);b.prototype.getItem=function(){return this.Zib};b.prototype.preload=function(){this.tc.set("opacity", 0);this.renderer.aIa(this.tc,this.camera);this.tc.get("isLoaded")&&this.YSa()};b.prototype.nf=function(c){this.tc.set("opacity",c);this.ix()};b.prototype.Hp=function(c){this.tc.set("offset",c);this.ix()};b.prototype.setPosition=function(c,d,f){var l=this.camera.get("position")||new k;this.camera.set("position",l);l.set("x",c);l.set("y",d);l.set("zoomFactor",f)};b.prototype.Vlb=function(c){this.tc.set("zIndex",c)};b.prototype.isEnabled=function(){return this.tc.get("enabled")};b.prototype.ix=function(){var c= this.tc.get("offset"),d=this.tc.get("opacity");c>-1&&c<1&&d>0?(this.renderer.aIa(this.tc,this.camera),this.tc.set("enabled",!0)):this.tc.get("enabled")&&(this.renderer.lQa(this.tc),this.tc.set("enabled",!1))};b.prototype.clear=function(){this.renderer.lQa(this.tc);this.tc.h(g.ia,this.NA,this)};b.prototype.NA=function(){this.tc.get("enabled")||this.YSa()};b.prototype.YSa=function(){this.o(new n(b.oua))};b.oua="preloadEnd";return b}(h)}); define("tdv/player/view/photo/control/StageController",["require","exports","tdv/events/Event","tdv/events/EventDispatcher","tdv/player/view/photo/control/StageControllerItem"],function(a,m,h,n,g){return function(k){function e(b){var c=k.call(this)||this;c.Vs=[];c.j=b;return c}P(e,k);e.prototype.preload=function(b){this.bH(b).preload();return this};e.prototype.nf=function(b,c){this.bH(b).nf(c);this.Vz();return this};e.prototype.Hp=function(b,c){this.bH(b).Hp(c);this.Vz();return this};e.prototype.setPosition= function(b,c,d,f){this.bH(b).setPosition(c,d,f);return this};e.prototype.yi=function(b){var c=this.Vs.findIndex(function(f){return f.getItem()==b}),d=this.Vs[c];this.Vs.splice(c,1);this.Vs.push(d);this.Vs.forEach(function(f,l){f.Vlb(l)})};e.prototype.stop=function(){this.i0a(function(b){b.clear()});this.Vs=[]};e.prototype.clear=function(){this.stop();this.Vs=null};e.prototype.Vz=function(){this.Vs.find(function(b){return b.isEnabled()})};e.prototype.bH=function(b){var c=this.J0a(b);c||(c=new g(b, this.j),c.bind(g.oua,this.Y3a,this,!1),this.Vs.push(c));return c};e.prototype.i0a=function(b){this.Vs.forEach(b.bind(this))};e.prototype.J0a=function(b){return this.Vs.find(function(c){return c.getItem()==b})};e.prototype.Y3a=function(b){this.o(new h(e.zba,{item:b.source.getItem()}))};e.zba="photo preload end";return e}(n)});define("tdv/player/view/photo/control/constants/TransitionMode",["require","exports"],function(){return{Op:"blending",Ur:"scroll"}}); define("tdv/player/view/photo/control/display/TransitionController","require exports tdv/events/Event tdv/events/EventDispatcher tdv/player/view/photo/control/StageController tdv/player/view/photo/control/constants/TransitionMode tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k,e){var b=function(){function c(d,f,l){this.Vq=d;this.item=f;this.transitionDuration=l;this.index=d&&f?d.get("playList").get("items").indexOf(this.item):0;this.loaded=!1}c.prototype.isEqual=function(d){return d&&d.Vq== this.Vq&&d.item==this.item};return c}();return function(c){function d(f,l,p){var q=c.call(this)||this;q.P=f;q.j=l;q.nd=p;q.nd.bind(g.zba,q.uDa,q,!1);q.VN=k.Op;q.sb=d.Xr;q.yd=new b(null,null,0);q.le=null;q.Xl=null;q.Wu=null;q.Rv=void 0;q.uD=0;return q}P(d,c);d.prototype.clear=function(){var f;((f=this.yd)===null||f===void 0?0:f.item)&&this.TV(this.yd);this.sb=d.Xr;this.Wu=this.yd=this.le=this.Xl=null;this.nd.h(g.zba,this.uDa,this);this.P.release(this.j)};d.prototype.Dlb=function(f){this.VN=f};d.prototype.zra= function(f){this.uD=f};d.prototype.psa=function(f,l,p){this.Xl=null;f=new b(f,l,p);f.isEqual(this.sb==d.Xr?this.yd:this.le)||(this.P.Mma(this.j),this.Xl=f,this.nCa())};d.prototype.nCa=function(){this.Xl&&this.sb==d.Xr&&(this.Xl.item&&!this.Xl.loaded?this.nd.preload(this.Xl.item):this.ay())};d.prototype.uDa=function(f){this.Xl&&this.Xl.item==f.data.item&&(this.Xl.loaded=!0,this.nCa())};d.prototype.ay=function(){this.Wu&&this.Wu!=this.Xl.Vq&&this.JEa(null);this.o(new h(d.Gba));this.S1()&&this.Xl.item!= null&&this.yd.item!=null?this.mYa():(this.le=this.Xl,this.Xl=null,this.yd.Vq&&!this.yd.item?this.lYa():this.yd.item?this.le.item&&this.VN==k.Op?this.$x():this.le.item&&this.VN==k.Wob?this.nYa():this.yd.item&&this.kYa():this.awa())};d.prototype.ze=function(f){if(this.sb!=d.Xr){this.Rv+=f;f=this.le.transitionDuration;f=this.Rv>=f?1:this.Rv/f;switch(this.sb){case d.Bca:this.KGa(f);break;case d.Cca:this.pab(f);break;case d.Eca:this.MGa(f);break;case d.Dca:this.LGa(f);break;case d.uo:this.FD(f);break; case d.Fca:this.hHa(f)}f<1?this.bb():this.bM()}};d.prototype.bM=function(){switch(this.sb){case d.Eca:this.q0a();break;case d.Dca:this.p0a();break;case d.Bca:this.n0a();break;case d.uo:this.yy();break;case d.Fca:this.t0a();break;case d.Cca:this.o0a()}this.JEa(this.yd.Vq);this.Xl==null?this.xla(this.yd):this.ay()};d.prototype.mYa=function(){this.sb=d.Eca;this.le=new b(this.yd.Vq,null,this.yd.transitionDuration);this.Rv=0;this.Rh=this.yd.transitionDuration;this.nd.Hp(this.yd.item,0);this.MGa(0);this.bb()}; d.prototype.MGa=function(f){this.nd.nf(this.yd.item,1-f)};d.prototype.q0a=function(){this.TV(this.yd);this.yd=this.le;this.sb=d.Xr};d.prototype.lYa=function(){this.sb=d.Dca;this.Rv=0;this.Rh=this.le.transitionDuration;this.N5(this.le);this.nd.Hp(this.le.item,0);this.LGa(0);this.bb()};d.prototype.LGa=function(f){this.nd.nf(this.le.item,f)};d.prototype.p0a=function(){this.yd=this.le;this.sb=d.Xr;this.O5(this.yd)};d.prototype.awa=function(f){var l=this;f===void 0&&(f=!1);f||this.P.get("transitionMode")!= "fade_out_fade_in"&&!e.isPresenting?(this.P.Rc().mmb(),this.sb=d.Bca,this.Rv=0,this.Rh=this.le.transitionDuration,this.N5(this.le),this.nd.Hp(this.le.item,0),this.nd.yi(this.le.item),this.nd.nf(this.le.item,1),this.j.Ra(!0),this.P.Rc().wK(),this.KGa(0),this.bb()):(this.sb=d.QWa,this.P.Qsa(this.j,function(){l.awa(!0)}))};d.prototype.KGa=function(f){this.nd.nf(this.le.item,f);this.P.Rc().kK(f)};d.prototype.n0a=function(){this.yd=this.le;this.P.Rc().lJ();this.sb=d.Xr;this.O5(this.yd)};d.prototype.$x= function(){this.sb=d.uo;this.Rv=0;this.Rh=this.le.transitionDuration;this.N5(this.le);this.nd.Hp(this.yd.item,0);this.nd.Hp(this.le.item,0);this.nd.yi(this.le.item);this.FD(0);this.bb()};d.prototype.FD=function(f){this.nd.nf(this.le.item,Math.min(1,f*2));this.nd.nf(this.yd.item,Math.min(1,(1-f)*2))};d.prototype.yy=function(){this.TV(this.yd);this.yd=this.le;this.sb=d.Xr;this.O5(this.yd)};d.prototype.nYa=function(){this.sb=d.Fca;this.Rv=0;this.Rh=this.le.transitionDuration;this.N5(this.le);this.nd.yi(this.le.item); this.hHa(0);this.bb()};d.prototype.hHa=function(f){var l=this.yd.Vq!=this.le.Vq||this.yd.index0?p[q-1]:null;this.Fq=q1){var p="quad_out";var q=this.I2}else this.m5<-1?(p="quad_out",q=this.M2):(p="quad_in_out",q=this.rq<-.5?this.M2:this.rq>.5?this.I2:0);this.la=new d(p,[new f("offset",this.rq,q,1E3/this.Rh)],0);this.bb()}};l.prototype.ze=function(p){if(this.$l|| this.la)this.la&&(this.la.Nb(p),this.rq=this.la.ob("offset"),this.la.Ve()?(this.la=null,this.j0a()):this.bb()),this.Ja&&this.nd.Hp(this.Ja,this.rq*(1+this.uD)).nf(this.Ja,1),this.oq&&this.nd.Hp(this.oq,(this.rq-1)*(1+this.uD)).nf(this.oq,1),this.Fq&&this.nd.Hp(this.Fq,(this.rq+1)*(1+this.uD)).nf(this.Fq,1)};l.prototype.j0a=function(){this.o(new h(l.gba,{album:this.Yf,item:this.rq<0?this.Fq:this.rq>0?this.oq:this.Ja}))};l.prototype.bb=function(){this.o(new h(l.oc))};l.prototype.Oya=function(p){var q= p&&p.get("camera"),r=p&&p.get("media");p=r&&r.get("width",100)||100;r=r&&r.get("height",100)||100;var t=q?q.get("scaleMode",e.uj):e.uj,u={};k.Oa("MovementPhotoCamera",q)?(q=q.get("initialPosition",new b(.5,.5,1)),u.x=q.get("x",.5),u.y=q.get("y",.5),u.zoom=q.get("zoomFactor",.5)):(u.x=.5,u.y=.5,u.zoom=1);this.va.setConfiguration(p,r,t);this.va.setSize(this.P.nb(),this.P.Mb());this.va.setPosition(u.x,u.y,u.zoom);u.x=this.va.getX();u.y=this.va.getY();u.zoom=this.va.yA();return u};l.oc="request frame"; l.fba="interaction begin";l.gba="interaction end";return l}); define("tdv/player/view/photo/control/DisplayController","require tdv/utils tdv/events/Event tdv/events/EventDispatcher tdv/constants/EventName tdv/player/view/photo/control/StageController tdv/player/view/photo/control/constants/TransitionMode tdv/player/view/photo/control/display/TransitionController tdv/player/view/photo/control/display/ManualScrollController".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/events/Event"),n=a("tdv/events/EventDispatcher");a("tdv/constants/EventName");a("tdv/player/view/photo/control/StageController"); var g=a("tdv/player/view/photo/control/constants/TransitionMode"),k=a("tdv/player/view/photo/control/display/TransitionController"),e=a("tdv/player/view/photo/control/display/ManualScrollController"),b=m.extend(n,function(c,d,f){n.call(this);this.P=c;this.nd=f;this.VN=g.Op;this.Rh=1E3;this.bc=new k(this.P,d,this.nd);this.bc.bind(k.oc,this.bg,this,!0);this.bc.bind(k.Gba,this.lBa,this,!0);this.bc.bind(k.Gr,this.mBa,this,!0);this.bc.bind(k.EF,this.ZT,this,!0);this.bc.bind(k.GF,this.bU,this,!0);this.bc.bind(k.FF, this.aU,this,!0);this.bc.bind(k.Dr,this.Bs,this,!0);this.bc.bind(k.Er,this.vq,this,!0);this.Zm=new e(this.P,this.nd);this.Zm.bind(e.oc,this.bg,this,!0);this.Zm.bind(e.fba,this.oAa,this,!0);this.Zm.bind(e.gba,this.pAa,this,!0)});b.prototype.G$=function(c,d){this.VN=c;this.Rh=d;this.bc.Dlb(c);this.Zm.Clb(d);this.bc.zra(.05);this.Zm.zra(.05)};b.prototype.display=function(c,d){this.bc.psa(c,d,this.Rh)};b.prototype.oe=function(){this.bc.psa(null,null,this.Rh)};b.prototype.clear=function(){this.bc.h(k.oc, this.bg,this);this.bc.h(k.Gba,this.lBa,this);this.bc.h(k.Gr,this.mBa,this);this.bc.h(k.EF,this.ZT,this);this.bc.h(k.GF,this.bU,this);this.bc.h(k.FF,this.aU,this);this.bc.h(k.Dr,this.Bs,this);this.bc.h(k.Er,this.vq,this);this.bc.clear();this.bc=null;this.Zm.bind(e.oc,this.bg,this,!0);this.Zm.bind(e.fba,this.oAa,this,!0);this.Zm.bind(e.gba,this.pAa,this,!0);this.Zm.clear();this.nd=this.P=this.Zm=null};b.prototype.ze=function(c){this.bc.ze(c);this.Zm.ze(c)};b.prototype.bg=function(){this.bb()};b.prototype.ZT= function(c){this.o(new h(b.EF,c.data))};b.prototype.bU=function(c){this.o(new h(b.GF,c.data))};b.prototype.aU=function(c){this.o(new h(b.FF,c.data));this.Zm.qkb(c.data.album,c.data.item)};b.prototype.Bs=function(c){this.o(new h(b.Dr,c.data))};b.prototype.vq=function(c){this.o(new h(b.Er,c.data))};b.prototype.lBa=function(){this.Zm.disable()};b.prototype.mBa=function(c){this.VN==g.Ur&&c.data.item&&this.Zm.enable();c.data.album||this.o(new h(b.cba))};b.prototype.oAa=function(){this.o(new h(b.mta))}; b.prototype.pAa=function(c){this.bc.psa(c.data.album,c.data.item,0);this.o(new h(b.nta,c.data))};b.prototype.bb=function(){this.o(new h(b.oc))};b.oc="request frame";b.EF="photo added";b.GF="photo removed";b.FF="photo displayed";b.Er="photo album show";b.Dr="photo album hide";b.mta="manual interaction begin";b.nta="manual interaction end";b.cba="all pending photo albums hidden";return b}); define("tdv/player/view/photo/control/PlayListController","require tdv/utils tdv/binding/ChangeWatcher tdv/events/Event tdv/events/EventDispatcher tdv/constants/PlaybackState".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/ChangeWatcher"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/constants/PlaybackState"),e=m.extend(g,function(){g.call(this);this.Yf=null;this.I=k.ca;this.hka=null});e.prototype.clear=function(){this.Una()};e.prototype.Vra=function(b){this.Una(); this.Yf=b;this.I=k.PLAYING;this.hka=h.kx(this.Yf,"playList.selectedIndex",this.qI,this,!0);this.Yf.get("playList").get("selectedIndex")==0?this.qI():this.Yf.get("playList").set("selectedIndex",0)};e.prototype.Una=function(){this.Yf&&(this.I=k.ca,this.hka.gF(),this.Yf=this.hka=null)};e.prototype.stop=function(){this.I!=k.ca&&(this.I=k.ca,this.Yf.get("playList").set("selectedIndex",0))};e.prototype.play=function(){this.I==k.ca?(this.Yf.get("playList").set("selectedIndex",0),this.I=k.PLAYING,this.qI()): this.I==k.Zb&&(this.I=k.PLAYING)};e.prototype.pause=function(){this.I==k.PLAYING&&(this.I=k.Zb)};e.prototype.next=function(){var b=this.Yf.get("playList"),c=b.get("selectedIndex"),d=b.get("items").length;(c0||this.Yf.get("loop"))&&b.set("selectedIndex",(c-1+d)%d)};e.prototype.E8=function(b){this.T8a(b)};e.prototype.itemEnd=function(b){if(this.Yf){var c= this.Yf.get("playList").get("items");b!=(c.length>0?c[c.length-1]:void 0)||this.Yf.get("loop")?this.next():(this.I=k.ca,this.o(new n(e.Yaa,{album:this.Yf})))}};e.prototype.qI=function(){var b=this.y2a();b>=0&&(this.I!=k.PLAYING&&b!=0?this.o(new n(e.Cba)):this.o(new n(e.kba,{album:this.Yf,item:this.Yf.get("playList").get("items")[b]})))};e.prototype.y2a=function(){return this.Yf?this.Yf.get("playList").get("selectedIndex"):-1};e.prototype.T8a=function(b){if(this.Yf){var c=this.Yf.get("playList");b= c.get("items").indexOf(b);c.set("selectedIndex",b)}};e.Cba="play request";e.kba="item request";e.Yaa="album end";return e}); define("tdv/player/view/photo/control/PlaybackController","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/constants/PlaybackState tdv/view/util/Visibility".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/constants/PlaybackState"),e=a("tdv/view/util/Visibility"),b=m.extend(g,function(c){g.call(this);this.P=c;this.HV=this.Ja=null;this.jI=void 0;this.Z1=!1;this.I=k.ca; e.bind(h.V,this.eDa,this,!0)});b.prototype.E8=function(c){this.Cea();if(this.Ja=c)c=this.Ja.get("media").get("duration",0),this.jI=c==0?void 0:Math.max(0,c-this.P.get("transitionDuration")),this.Z1=!1,this.I==k.PLAYING&&this.Zea()};b.prototype.clear=function(){e.h(h.V,this.eDa,this,!0);this.E8(null)};b.prototype.stop=function(){this.I!=k.ca&&(this.Cea(),this.Jd(k.ca))};b.prototype.play=function(){if(this.I==k.ca){if(this.Jd(k.PLAYING),this.Ja){this.Z1=!1;var c=this.Ja.get("media").get("duration", 0);this.jI=c==0?void 0:c;this.Zea()}}else this.I==k.Zb&&(this.Jd(k.PLAYING),this.Ja&&this.Zea())};b.prototype.pause=function(){this.I==k.PLAYING&&(this.Jd(k.Zb),this.sDa())};b.prototype.Zea=function(){this.Z1||(this.Z1=!0,this.o(new n(b.lba,{item:this.Ja})));this.Vxa()};b.prototype.eDa=function(){e.visible?this.Vxa():e.visible||this.sDa()};b.prototype.Vxa=function(){if(this.jI!==void 0){var c=this;this.G5=(new Date).getTime()+this.jI;this.HV=setTimeout(function(){c.HV=null;c.q$a()},this.jI)}else this.G5= void 0};b.prototype.Cea=function(){this.HV&&(clearTimeout(this.HV),this.HV=null)};b.prototype.sDa=function(){this.G5!==void 0&&(this.Cea(),this.jI=Math.max(1,this.G5-(new Date).getTime()),this.G5=void 0)};b.prototype.q$a=function(){var c=this.Ja;this.Ja=null;this.jI=void 0;this.o(new n(b.jba,{item:c}))};b.prototype.Jd=function(c){this.I!=c&&(this.I=c,this.o(new n(b.gd,{state:this.I})))};b.gd="playback state change";b.lba="item start";b.jba="item end";return b}); define("tdv/player/view/photo/control/Controller","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/photo/control/AudioController tdv/player/view/photo/control/CameraController tdv/player/view/photo/control/DisplayController tdv/player/view/photo/control/PlayListController tdv/player/view/photo/control/PlaybackController tdv/player/view/photo/control/StageController tdv/view/util/Animation".split(" "),function(a){var m=a("tdv/utils");a("tdv/constants/EventName"); var h=a("tdv/events/Event"),n=a("tdv/events/EventDispatcher"),g=a("tdv/player/view/photo/control/AudioController"),k=a("tdv/player/view/photo/control/CameraController"),e=a("tdv/player/view/photo/control/DisplayController"),b=a("tdv/player/view/photo/control/PlayListController"),c=a("tdv/player/view/photo/control/PlaybackController"),d=a("tdv/player/view/photo/control/StageController"),f=a("tdv/view/util/Animation"),l=m.extend(n,function(p,q){n.call(this);this.P=p;this.j=q;this.j.set("visible",!1); this.bj=new b;this.Ua=new c(this.P);this.nd=new d(this.j);this.Ya=new e(this.P,this.j,this.nd);this.yb=new k(this.P,this.nd);this.Fd=new g;this.bj.bind(b.kba,this.FBa,this,!0);this.bj.bind(b.Cba,this.rCa,this,!0);this.bj.bind(b.Yaa,this.$T,this,!0);this.Ua.bind(c.lba,this.GBa,this);this.Ua.bind(c.jba,this.EBa,this);this.Ua.bind(c.gd,this.Mf,this,!0);this.Ya.bind(e.oc,this.bg,this,!0);this.Ya.bind(e.EF,this.ZT,this,!0);this.Ya.bind(e.GF,this.bU,this,!0);this.Ya.bind(e.FF,this.aU,this,!0);this.Ya.bind(e.Dr, this.Bs,this,!0);this.Ya.bind(e.Er,this.vq,this,!0);this.Ya.bind(e.mta,this.d5a,this,!0);this.Ya.bind(e.nta,this.e5a,this,!0);this.Ya.bind(e.cba,this.cBa,this,!0);this.yb.bind(k.oc,this.bg,this,!0)});l.prototype.clear=function(){this.bj.clear();this.Ua.clear();this.Ya.clear();this.yb.clear();this.Fd.clear();this.nd.clear();this.bj.h(b.kba,this.FBa,this);this.bj.h(b.Yaa,this.$T,this);this.bj.h(b.Cba,this.rCa,this);this.Ua.h(c.lba,this.GBa,this);this.Ua.h(c.jba,this.EBa,this);this.Ua.h(c.gd,this.Mf, this);this.Ya.h(e.oc,this.bg,this);this.Ya.h(e.EF,this.ZT,this);this.Ya.h(e.GF,this.bU,this);this.Ya.h(e.FF,this.aU,this);this.Ya.h(e.Dr,this.Bs,this);this.Ya.h(e.Er,this.vq,this);this.Ya.h(e.cba,this.cBa,this);this.yb.h(k.oc,this.bg,this);this.P=this.j=this.nd=this.Fd=this.yb=this.Ya=this.Ua=this.bj=null};l.prototype.G$=function(p,q){this.Ya.G$(p,q)};l.prototype.glb=function(p){this.j.set("visible",!0);this.bj.Vra(p)};l.prototype.bB=function(){this.bj.Una();this.Ua.stop();this.Ya.oe();this.yb.end(); this.Fd.mSa()};l.prototype.next=function(){this.bj.next()};l.prototype.wqa=function(){this.bj.wqa()};l.prototype.stop=function(){this.Ua.stop();this.Fd.stop();this.bj.stop();this.yb.stop()};l.prototype.play=function(){this.Ua.play();this.Fd.play();this.bj.play();this.yb.play()};l.prototype.pause=function(){this.Ua.pause();this.Fd.pause();this.bj.pause();this.yb.pause()};l.prototype.d5a=function(){this.Ua.pause();this.Fd.pause();this.bj.pause();this.yb.pause()};l.prototype.e5a=function(){this.Ua.play(); this.Fd.play();this.bj.play();this.yb.play()};l.prototype.FBa=function(p){this.Ya.display(p.data.album,p.data.item)};l.prototype.rCa=function(){this.play()};l.prototype.bg=function(){f.requestFrame(this.sq,this)};l.prototype.sq=function(p){this.yb.YA(p);this.Ya.ze(p);this.Fd.ze(p)};l.prototype.ZT=function(p){this.yb.start(p.data.item)};l.prototype.bU=function(p){var q=p.data.album;p=p.data.item;var r=p.get("media");this.yb.end(p);this.Fd.tmb(r);this.o(new h(l.yba,{photoAlbum:q,item:p}))};l.prototype.aU= function(p){var q=p.data.album;p=p.data.item;p.get("media");this.bj.E8(p);this.Ua.E8(p);this.o(new h(l.xba,{photoAlbum:q,item:p}))};l.prototype.GBa=function(p){p=p.data.item.get("media");this.Fd.lmb(p)};l.prototype.EBa=function(p){this.bj.itemEnd(p.data.item)};l.prototype.$T=function(p){this.Ua.stop();this.Fd.stop();this.o(new h(l.wba,{photoAlbum:p.data.album}))};l.prototype.vq=function(p){p=p.data.album;this.Fd.Vra(p);this.Ua.play();this.yb.play();this.o(new h(l.Er,{photoAlbum:p}))};l.prototype.Bs= function(p){p=p.data.album;this.Fd.qmb(p);this.o(new h(l.Dr,{photoAlbum:p}))};l.prototype.cBa=function(){this.j.set("visible",!1)};l.prototype.Mf=function(p){this.o(new h(l.gd,{state:p.data.state}))};l.Er="photoAlbumShow";l.wba="photoAlbumEnd";l.Dr="photoAlbumHide";l.xba="photoBegin";l.yba="photoEnd";l.gd="playbackStateChange";return l}); define("tdv/player/view/renderer2d/adapters/CameraAdapter",["require","exports","tdv/constants/EventName","tdv/player/view/webgl/components","tdv/player/view/util/XR"],function(a,m,h,n,g){return function(){function k(e,b){this.Od=e;this.renderer=b;this.renderer.bind(h.$b,this.sl,this,!0);this.sl();this.fu();this.enabled=!1;g.M.bind(h.V,this.Ta,this,!0);g.M.bind(h.Pd,this.Ta,this,!0)}k.prototype.dispose=function(){this.renderer.h(h.$b,this.sl,this);g.M.h(h.V,this.Ta,this);g.M.h(h.Pd,this.Ta,this); this.Ca()};k.prototype.mj=function(){return this.F};k.prototype.Ra=function(e){this.enabled!==e&&(this.enabled=e,this.wTa())};k.prototype.Ta=function(){this.lTa();this.jg();this.GZ()};k.prototype.sl=function(){var e=this.renderer.Xh(),b=this.renderer.Wh();if(this.Pw!==e||this.Ow!==b)this.Pw=e,this.Ow=b,this.GZ()};k.prototype.GZ=function(){if(this.F){var e=this.F.O(n.PerspectiveCamera);e.width=this.Pw;e.height=this.Ow}};k.prototype.jg=function(){if(this.F)if(g.isPresenting)this.F.ka(n.ta);else{var e= this.F.O(n.ta,!0);e.positionX=e.positionY=e.positionZ=0;e.translationX=e.translationY=e.Ze=0;e.Yd=e.fd=e.Xe=0;e.Le=e.Ye=e.Gh=1}};k.prototype.wTa=function(){this.F&&(this.F.O(n.dG).locked=!this.enabled)};k.prototype.lTa=function(){if(this.F){var e=this.Od.getComponent(n.Object3D);e=(e=e&&e.sa)&&g.isPresenting&&g.XA===e;this.F.O(n.PerspectiveCamera,!0).nj=e}};k.prototype.fu=function(){var e=this.Od.T.sc("Camera");e.N(n.pb).F=this.Od;var b=e.N(n.PerspectiveCamera);b.Wd=k.xu;b.near=.1;b.far=100;b.Vma= !1;e.N(n.dG).locked=!0;this.F=this.Od.O(n.Scene).Ea=e;this.GZ();this.jg();this.wTa();this.lTa()};k.prototype.Ca=function(){this.F&&(this.F.T.dd(this.F),this.F=null)};k.xu=90;return k}()}); define("tdv/player/view/renderer2d/adapters/GroupAdapter","require exports tdv/constants/EventName tdv/player/view/webgl/components tdv/player/view/util/XR tdv/view/util/Ease tdv/view/util/EaseDimension tdv/view/util/Animation".split(" "),function(a,m,h,n,g,k,e,b){return function(){function c(d){this.Od=d;g.M.bind(h.V,this.Ta,this,!0);g.M.bind(h.Zd,this.MP,this,!0);this.fu()}c.prototype.dispose=function(){g.M.h(h.V,this.Ta,this);g.M.h(h.Zd,this.MP,this);this.Ca()};c.prototype.mj=function(){return this.F}; c.prototype.Ta=function(){this.zIa()};c.prototype.MP=function(){this.Dnb()};c.prototype.zIa=function(){this.F&&(this.F.O(n.ta).positionY=g.isPresenting?g.EO:0)};c.prototype.Dnb=function(){if(this.F){var d=this.F.O(n.ta);if(g.isPresenting)if(this.DX){if(this.DX.Nb(b.eX),d.positionY+=(g.EO-d.positionY)*this.DX.ob("leveling"),Math.abs(d.positionY-g.EO)<.01||this.DX.Ve())this.DX=null}else Math.abs(d.positionY-g.EO)>.2&&(this.DX=new k("linear",[new e("leveling",0,1)],2E3));else d.positionY=0}};c.prototype.fu= function(){var d=this.Od.T.sc("Media2DGroup");d.N(n.pb).F=this.Od;d.N(n.ta);d.N(n.Group);this.F=d;this.zIa()};c.prototype.Ca=function(){this.F&&(this.F.T.dd(this.F),this.F=null)};return c}()}); define("tdv/player/view/renderer2d/adapters/XRPointerAdapter","require exports three.mod tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/webgl/components tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k,e){a=function(){function f(l,p){this.Od=l;this.Ea=p;this.Tt=[];this.enabled=!1;this.Wa()}f.prototype.Ra=function(l){this.enabled!==l&&(this.enabled=l)};f.prototype.dispose=function(){this.ya()};f.prototype.Wa=function(){e.M.bind(n.Zd,this.Kg,this,!0)};f.prototype.ya=function(){e.M.h(n.Zd, this.Kg,this);this.lZ([])};f.prototype.Kg=function(){this.lZ(e.ud)};f.prototype.lZ=function(l){var p=this;if(!this.enabled||l.find(function(t){return t.eA}))l=[];var q=this.Tt;this.Tt=l.map(function(t){var u=q.findIndex(function(v){return v.cb==t});return u!==-1?q.splice(u,1)[0]:new b(t,p.Od,p.Ea)});q.forEach(function(t){t.dispose()});this.Tt.forEach(function(t){t.Ra(this.enabled);t.update()}.bind(this));var r=this.Tt.reduce(function(t,u){return!t||t.nAthis.Kw*q?(l=this.Lw*r/this.Kw,p=r):(l=q,p=this.Kw*q/this.Lw);break;default:this.Lw*r>this.Kw*q?(l=q,p=this.Kw*q/this.Lw):(p=r,l=this.Lw*r/this.Kw)}r=l*this.Caa;p*=this.Caa;q=this.F.O(e.ta);q.Le=r;q.Ye=p;q.positionX=(.5-this.x)*r;q.positionY=(this.y-.5)*p;q.positionZ=-f}};d.prototype.ho=function(){if(this.F){var f=this.F.O(e.Ni);f.properties=this.It;f.Ap=this.tc;f.ww= this.image;f.nJa=this.lob}};d.prototype.Hsa=function(){if(this.F){var f=this.F.O(e.wd,!0);f.pB=!0;f.eF=!0;f.M=this.tc;f.lt=!0;f.Xt=!0}};d.prototype.nTa=function(){this.It.set("opacity",this.opacity);this.It.set("depthTest",!0);this.It.set("enabled",!0);this.It.set("encoding","srgb");this.It.set("hidden",!1);this.It.set("side","double");this.It.set("width",this.Lw);this.It.set("height",this.Kw);this.It.set("scaleMode","fill");this.It.set("easeDuration",0)};d.prototype.fu=function(){var f=this.zg.T.sc("Photo"); f.N(e.pb).F=this.zg;f.N(e.Plane);f.N(e.ta);f.N(e.Ni);f.N(e.wd);this.F=f;this.jg();this.ho();this.Hsa()};d.prototype.Ca=function(){this.F&&(this.F.T.dd(this.F),this.F=null)};return d}()}); define("tdv/player/view/photo/renderer/adapters/ViewportAdapter","require exports tdv/constants/EventName tdv/binding/BindingsHandler tdv/player/view/webgl/components tdv/player/view/renderer2d/adapters/CameraAdapter tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k,e){return function(){function b(c,d,f){this.zg=c;this.renderer=d;this.eb=f;this.B9=this.B9.bind(this);this.enabled=!1}b.prototype.dispose=function(){this.Ra(!1)};b.prototype.mj=function(){return this.F};b.prototype.Ra=function(c){this.enabled!== c&&((this.enabled=c)?(n.ba(this.eb,["distance"],this.B9,!0),this.renderer.bind(h.$b,this.Mt,this,!0),e.M.bind(h.V,this.Ta,this,!0),this.Mt(),this.fu()):(n.da(this.eb,["distance"],this.B9),this.renderer.h(h.$b,this.Mt,this),e.M.h(h.V,this.Ta,this),this.Ca()))};b.prototype.B9=function(){var c=this.eb.get("distance",1);this.distance!==c&&(this.distance=c,this.jg())};b.prototype.Ta=function(){this.jg()};b.prototype.Mt=function(){this.Pw=this.renderer.Xh();this.Ow=this.renderer.Wh();this.jg()};b.prototype.jg= function(){if(this.F){var c=this.distance,d=2*Math.tan(Math.PI/180*k.xu*.5)*c,f=d*(e.isPresenting?1024:this.Ow)/(e.isPresenting?2048:this.Pw),l=this.F.O(g.ta);l.Le=d;l.Ye=f;l.positionZ=-c}};b.prototype.fu=function(){var c=this.zg.T.sc("Viewport");c.N(g.pb).F=this.zg;c.N(g.ta);c.N(g.sF);this.F=c;this.jg()};b.prototype.Ca=function(){this.F&&(this.F.T.dd(this.F),this.F=null)};return b}()}); define("tdv/player/view/photo/renderer/Renderer",["require","exports","tdv/player/view/renderer2d/Renderer","tdv/player/view/photo/renderer/adapters/PhotoAdapter","tdv/player/view/photo/renderer/adapters/ViewportAdapter"],function(a,m,h,n,g){return function(k){function e(b,c,d){b=k.call(this,b,c,d)||this;b.wU=[];b.Dda=[];b.kN=[];return b}P(e,k);e.prototype.nY=function(){var b=this;k.prototype.nY.call(this);this.Pdb();this.wU.forEach(function(c,d){b.KJa(c,b.Dda[d])})};e.prototype.aIa=function(b,c){this.wU.includes(b)|| (this.wU.push(b),this.Dda.push(c),this.hf&&this.KJa(b,c))};e.prototype.Pdb=function(){this.FHa=new g(this.v1.mj(),this.hf,this.P);this.FHa.Ra(!0)};e.prototype.KJa=function(b,c){b=new n(b,c,this.v1.mj(),this.FHa.mj(),this,this.P);this.kN.push(b);this.q$(this.kN.length>0)};e.prototype.lQa=function(b){b=this.wU.indexOf(b);b<0||(this.wU.splice(b,1),this.Dda.splice(b,1),this.hf&&this.jeb(this.kN[b]))};e.prototype.jeb=function(b){var c=this.kN.indexOf(b);c<0||(this.kN.splice(c,1),b.dispose(),this.q$(this.kN.length> 0))};return e}(h)}); define("tdv/player/script/PhotoAlbumPlayer","require tdv/utils tdv/events/Event tdv/player/parser/ClassInfo tdv/player/script/helper/ButtonProperty tdv/player/script/PlaybackMediaPlayer tdv/player/view/photo/control/Controller tdv/player/view/photo/control/constants/TransitionMode tdv/player/view/photo/renderer/Renderer tdv/player/view/util/Device tdv/view/constants/ButtonMode tdv/constants/EventName".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/events/Event"),n=a("tdv/player/parser/ClassInfo"),g= a("tdv/player/script/helper/ButtonProperty"),k=a("tdv/player/script/PlaybackMediaPlayer"),e=a("tdv/player/view/photo/control/Controller"),b=a("tdv/player/view/photo/control/constants/TransitionMode"),c=a("tdv/player/view/photo/renderer/Renderer"),d=a("tdv/player/view/util/Device"),f=a("tdv/view/constants/ButtonMode"),l=a("tdv/constants/EventName");a=n.define("PhotoAlbumPlayer",k,function(){k.call(this,"photoAlbum");this.K5=this.Wia=this.ij=!1;this.U=this.j=null;this.MYa=new g(this,"buttonNext",f.af); this.MYa.bind(l.ma,this.iCa,this);this.NYa=new g(this,"buttonPrevious",f.af);this.NYa.bind(l.ma,this.BCa,this);this.be=m.lr(this.Sh,this)});a.prototype.next=function(){this.iCa()};a.prototype.pause=function(){this.TH()};a.prototype.play=function(){this.UH()};a.prototype.previous=function(){this.BCa()};a.prototype.stop=function(){this.cD()};a.prototype.restart=function(){this.bD()};a.prototype.set=function(p,q){if(this.get(p)!=q){switch(p){case "photoAlbum":this.Wia=!0;this.be();break;case "viewerArea":this.ij= !0;this.be();break;case "touchTransition":case "mouseTransition":case "touchTransitionDuration":case "mouseTransitionDuration":case "transitionDuration":this.K5=!0,this.be()}k.prototype.set.call(this,p,q)}};a.prototype.Sh=function(){this.ij&&(this.ij=!1,this.K5=!0,this.oy(),this.get("viewerArea")&&this.ny(),this.kV(this.get("viewerArea")));this.j&&this.Wia&&(this.Wia=!1,this.get("photoAlbum")?(this.eK(),this.U.glb(this.get("photoAlbum"))):this.U.bB());this.K5&&(this.K5=!1,this.nHa())};a.prototype.RN= function(){this.set("photoAlbum",null)};a.prototype.ny=function(){var p=this.get("application"),q=this.get("viewerArea");this.j=new c(p,q,this);this.j.xa({left:0,top:0,bottom:0,right:0});q.mb(this.j);this.U=new e(q,this.j);this.nHa();this.U.bind(e.Er,this.vq,this);this.U.bind(e.Dr,this.Bs,this);this.U.bind(e.wba,this.$T,this);this.U.bind(e.xba,this.oCa,this);this.U.bind(e.yba,this.pCa,this);this.U.bind(e.gd,this.Mf,this);this.xD(!0)};a.prototype.oy=function(){this.j&&(this.U.h(e.Er,this.vq,this), this.U.h(e.Dr,this.Bs,this),this.U.h(e.wba,this.$T,this),this.U.h(e.xba,this.oCa,this),this.U.h(e.yba,this.pCa,this),this.U.h(e.gd,this.Mf,this),this.U.clear(),this.j.getParent().removeChild(this.j),this.j=null,this.xD(!1))};a.prototype.nHa=function(){var p=this.get("viewerArea");p&&this.U&&(d.Jp()?this.U.G$(this.get("touchTransition",b.Op),this.get("touchTransitionDuration",p.get("transitionDuration",1E3))):this.U.G$(this.get("mouseTransition",b.Op),this.get("mouseTransitionDuration",p.get("transitionDuration", 1E3))))};a.prototype.Mf=function(p){this.Jd(p.data.state)};a.prototype.vq=function(p){this.jT(p.data.photoAlbum)};a.prototype.Bs=function(p){this.iT(p.data.photoAlbum)};a.prototype.$T=function(p){p.data.photoAlbum.o(new h(l.Tb))};a.prototype.oCa=function(p){p.data.item.PD()};a.prototype.pCa=function(p){p.data.item.end()};a.prototype.Gj=function(p){this.j.getParent().xa({progressPercent:p.data.percent,progressVisible:!0})};a.prototype.XM=function(){this.j.getParent().set("progressVisible",!1)};a.prototype.iCa= function(){this.U&&this.get("photoAlbum")&&this.U.next()};a.prototype.BCa=function(){this.U&&this.get("photoAlbum")&&this.U.wqa()};a.prototype.rn=function(){this.U&&this.get("photoAlbum")&&this.U.play()};a.prototype.Xs=function(){this.U&&this.get("photoAlbum")&&this.U.stop()};a.prototype.tv=function(){this.U&&this.get("photoAlbum")&&this.U.pause()};return a}); define("tdv/player/script/PhotoAlbumPlayListItem",["require","tdv/player/parser/ClassInfo","tdv/player/script/MediaPlayer","tdv/player/script/PlayListItem"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/MediaPlayer"),n=a("tdv/player/script/PlayListItem");a=m.define("PhotoAlbumPlayListItem",n,function(){n.call(this)});a.prototype.start=function(){n.prototype.start.call(this);var g=this.get("player");g&&(g.bind(h.di,this.vq,this),g.set("photoAlbum",this.get("media")))};a.prototype.stop= function(){var g=this.get("player");g&&(g.h(h.di,this.vq,this),g.get("photoAlbum")==this.get("media")&&g.set("photoAlbum",null));n.prototype.stop.call(this)};a.prototype.qQ=function(){var g=this.get("media");if(g){var k=g.get("playList");k&&(g=k.get("selectedIndex"),k=k.get("items"),g>=0&&k&&k[g].qQ())}n.prototype.qQ.call(this)};a.prototype.vq=function(){this.get("player").h(h.di,this.vq,this);this.get("player").bind(h.mo,this.Bs,this);this.PD()};a.prototype.Bs=function(g){g.data.media==this.get("media")&& (this.get("player").h(h.mo,this.Bs,this),this.stop(),this.end())};return a});define("tdv/player/script/PhotoAudio",["require","tdv/constants/Priority","tdv/player/parser/ClassInfo","tdv/player/script/MediaAudio"],function(a){var m=a("tdv/constants/Priority"),h=a("tdv/player/parser/ClassInfo"),n=a("tdv/player/script/MediaAudio");return h.define("PhotoAudio",n,function(){n.call(this,m.HVa)})}); define("tdv/player/script/PlayList","require tdv/utils tdv/binding/Bindable tdv/events/Event tdv/player/parser/ClassInfo tdv/player/view/util/Preloader tdv/constants/EventName".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/binding/Bindable"),n=a("tdv/events/Event"),g=a("tdv/player/parser/ClassInfo"),k=a("tdv/player/view/util/Preloader"),e=a("tdv/constants/EventName");a=g.define("PlayList",h,function(){h.call(this);this.Jg=-1;this.ni=[];this.GU=this.dl=this.ff=void 0});a.prototype.set=function(b, c){b=="selectedIndex"?this.S8a(c):b=="items"?this.E8a(c):h.prototype.set.call(this,b,c)};a.prototype.get=function(b,c){return b=="selectedIndex"?this.Jg:b=="items"?this.ni:h.prototype.get.call(this,b,c)};a.prototype.dispose=function(){this.ff&&(this.ff.h(e.Br,this.dU,this),this.ff.h(e.Fg,this.qv,this),this.ff.h(e.Tb,this.qv,this),this.ff=null)};a.prototype.E8a=function(b){b=b||[];if(!m.u8(this.ni,b)){var c=this.Jg;this.ni=b;b=this.pEa(this.Jg);this.o(new n(e.ZZ,{nextSelectedIndex:b}));this.Jg=b;this.cFa(this.bH(this.Jg)); this.dHa();this.o(new n(e.V,{previousSelectedIndex:c}));h.prototype.set.call(this,"items",this.ni);h.prototype.set.call(this,"selectedIndex",this.Jg)}};a.prototype.S8a=function(b){b=this.pEa(b);if(this.Jg!=b){var c=this.Jg;this.o(new n(e.ZZ,{nextSelectedIndex:b}));this.Jg=b;this.cFa(this.bH(this.Jg));this.dHa();this.o(new n(e.V,{previousSelectedIndex:c}));h.prototype.set.call(this,"selectedIndex",this.Jg)}};a.prototype.pEa=function(b){return Math.max(-1,Math.min(this.ni.length-1,b))};a.prototype.bH= function(b){return b>=0?this.ni[b]:null};a.prototype.cFa=function(b){this.ff==b&&this.dl===void 0||this.dl===b||(this.dl===void 0?(this.dl=b,this.ff?this.dl&&this.ff.get("player")==this.dl.get("player")?(this.ff.qQ(),this.qv()):this.L3a(this.ff,this.dl)?(b=this.ff,b.qQ(),this.qv(),b.VSa()):(this.Xza(this.ff,this.dl)?this.ff.get("media").get("modelLocations",[]).forEach(function(c){var d=!(c.get("model")!=this.dl.get("media")||!c.get("forceModelLoading"));c.set("preferred",d)}.bind(this)):this.obb(this.ff, this.dl)&&this.ff.get("player").enb(),this.ff.stop()):this.qv()):this.dl=b)};a.prototype.L3a=function(b,c){return this.Uga(b)&&this.Xga(c)&&this.Wza(c,b)};a.prototype.Xza=function(b,c){return this.Xga(b)&&this.Uga(c)?this.Wza(b,c)?!0:b.get("player")&&b.get("player").get("keepModel3DLoadedWithoutLocation")&&b.get("player").get("model3DPlayer")==c.get("player")?b.get("player").get("model3DPlayer").get("model")==c.get("media")?!0:!1:!1:!1};a.prototype.Wza=function(b,c){return b.get("player")&&b.get("player").get("model3DPlayer")== c.get("player")&&b.get("media").get("modelLocations",[]).find(function(d){return d.get("model")==c.get("media")&&(c.get("media").get("isLoaded")||d.get("forceModelLoading"))})};a.prototype.obb=function(b,c){return this.Xga(b)&&this.Uga(c)&&b.get("player").get("model3DPlayer")==c.get("player")};a.prototype.Xga=function(b){return b&&g.Oa("PanoramaPlayListItem",b)};a.prototype.Uga=function(b){return b&&g.Oa("Model3DPlayListItem",b)};a.prototype.qv=function(){this.ff&&(this.ff.h(e.Br,this.dU,this),this.ff.h(e.Fg, this.qv,this),this.ff.h(e.Tb,this.qv,this));this.dl?(this.Xza(this.ff,this.dl)&&this.ff.get("player").bind(e.pca,this.kn,this,!0),this.ff=this.dl,this.dl=void 0,this.ff.bind(e.Br,this.dU,this),this.ff.bind(e.Fg,this.qv,this),this.ff.start()):(this.dl=this.ff=void 0,this.set("selectedIndex",-1))};a.prototype.kn=function(b){b.source.h(e.pca,this.kn,this);this.dU();this.ff.USa()};a.prototype.dU=function(){this.ff.h(e.Br,this.dU,this);this.ff.h(e.Fg,this.qv,this);this.ff.bind(e.Tb,this.qv,this)};a.prototype.dHa= function(){this.GU&&k.U8(this.GU.get("media"),-1);(this.GU=this.ni&&this.Jg>=0?this.ni[(this.Jg+1)%this.ni.length]:null)&&k.U8(this.GU.get("media"),1)};return a});define("tdv/player/script/PhotoPlayList",["require","tdv/player/parser/ClassInfo","tdv/player/script/PlayList"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/PlayList");return m.define("PhotoPlayList",h,function(){h.call(this)})}); define("tdv/player/script/PhotoPlayListItem",["require","exports","tdv/player/parser/ClassInfo","tdv/player/script/PlayListItem"],function(a,m,h,n){a=function(g){function k(){return g.call(this)||this}P(k,g);return k}(n);h.create("PhotoPlayListItem",a);return a});define("tdv/player/script/PlaybackBar",["require","tdv/player/view/PlaybackBar","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/player/view/PlaybackBar");return a("tdv/player/parser/ClassInfo").define("PlaybackBar",m,function(){m.call(this)})}); define("tdv/player/AppInfo",["require"],function(){function a(n){try{for(var g=(h.UX<<12)+h.$X&65535,k="",e=0,b=n.length;eu.nb(),y=Math.min(u.nb(),u.Mb())/100;u=function(x){return Math.round(x*y)};this.xa({gap:v?u(4.63):20,paddingLeft:v? u(4.63):20,paddingRight:v?u(4.63):20,paddingTop:v?u(4.63):14,paddingBottom:v?u(4.63):14,layout:v&&w?d.Uk:d.Mi});this.yn&&this.yn.xa({fontSize:v?u(3.15):14,textAlign:v&&w?"center":"left"});this.iC&&this.iC.xa({gap:v?0:13});this.qG&&this.qG.xa({borderRadius:v?u(4.63):15,fontSize:v?u(3.15):14,height:v?u(9.26):30,paddingLeft:v?u(6):20,paddingRight:v?u(6):20});this.GL&&this.GL.xa({borderRadius:v?u(4.63):15,fontSize:v?u(3.15):14,height:v?u(9.26):30,paddingLeft:v?u(6):20,paddingRight:v?u(6):20});this.Af()}}; a.prototype.dxa=function(){var u=h.toArray(this.Ie.get("cookiesPolicy"));this.DU!=u&&(this.DU=u,this.w7a())};a.prototype.w7a=function(){if(this.DU.length==0)this.vka(null);else{var u=this.DU[0];h.toArray(u.get("geographicArea")).length==0?this.vka(u):this.H1a(function(v){for(var w=null,y=0;y=0&&(w=x)}this.vka(w)}.bind(this))}};a.prototype.vka=function(u){this.oN!== u&&(this.oN&&this.oN.h(n.L("url"),this.hma,this),(this.oN=u)?(this.oN.bind(n.L("url"),this.hma,this),this.hma(),this.set("visible",!0)):(this.o(n.VK),this.set("visible",!1)))};a.prototype.hma=function(){var u=document.createElement("div");u.innerHTML=g("cookies-notice");for(var v=u.querySelectorAll("a"),w=0;w{w=w.country.toUpperCase();this.dya= !1;try{window.localStorage.setItem("tdvp_country_code",w)}catch(y){}u(w)}))};var t="tdvp_accept_cookies_"+window.location.origin+window.location.pathname;a.prototype.n2a=function(){var u=m(t);if(u=="yes")return!0;if(u=="no")return!1};a.prototype.eFa=function(u){try{window.localStorage.setItem(t,u?"yes":"no")}catch(v){}};return a}); define("tdv/player/view/util/FileSystem",["require"],function(){function a(w){var y=w instanceof Request||w instanceof Response?w.url:w;y&&(y=y.split("#")[0]);y&&(y=y.split("?")[0]);return y&&y.indexOf("://")==-1?(typeof window!=="undefined"?Promise.resolve(window.location.href):self.clients.matchAll({type:"window"}).then(function(x){if(x.length)return x[0].url})).then(function(x){return(new window.URL(y,x)).toString()}):Promise.resolve(y)}function m(w,y){return new Promise(function(x,z){(y===void 0? g():Promise.resolve(y)).then(function(A){(window.webkitRequestFileSystem||window.requestFileSystem)(A?window.PERSISTENT:window.TEMPORARY,w,function(D){x(D)},function(D){console.log("Error getting file system access",D);z("error getting file system")})},function(A){console.log("error getting file system access",A);z("error getting file system")})})}function h(w,y){return w&&w.queryUsageAndQuota?new Promise(function(x,z){w.queryUsageAndQuota(function(A,D){console.log("UsedBytes:",A,"grantedBytes:", D,"freeBytesRequired:",y);var F=A+y;D>=F?x(F):w==navigator.webkitPersistentStorage||w==navigator.persistentStorage?(console.log("requestQuota:",F),w.requestQuota(F,function(){console.log("Granted bytes:",F);x(F)},function(C){console.log("Not granted bytes:",F,C);z("not enough free space granted")})):(console.log("Not enough temporary free space."),z("not enough free space granted"))},function(A){console.log("Query quota error:",A);A&&A.message&&(A=A.message);z("not enough free space granted: "+A)})}): Promise.reject("unknown free space")}function n(){return(navigator.storage&&navigator.storage.persist?navigator.storage.persist():Promise.resolve(!1)).then(function(w){console.log("Persistence granted:",w);return w?navigator.webkitPersistentStorage||navigator.persistentStorage:navigator.webkitTemporaryStorage||navigator.temporaryStorage})}function g(){return navigator.storage&&navigator.storage.persisted?navigator.storage.persisted():Promise.resolve(!1)}function k(){return v?Promise.resolve(v):Promise.reject("files uninitialized, no space was requested")} function e(w){w.length&&w[0]=="/"&&(w=w.substr(1));return w.split("/").filter(function(y){return y!=""})}function b(w){return new Promise(function(y,x){w.remove(function(){y()},function(z){x("can't remove entry"+(z&&z.message?": "+z.message:"")+".")})})}function c(w){return d(w).then(function(y){return Promise.all(y.map(function(x){return x.isDirectory?c(x):b(x)}))}).then(function(){return b(w).then(function(){return Promise.resolve()},function(){return Promise.resolve()})})}function d(w){return new Promise(function(y, x){w.createReader().readEntries(function(z){y(z)},function(){x("can't list directory")})})}function f(w,y,x){return new Promise(function(z,A){w.getDirectory(y,x,function(D){z(D)},function(){A("can't get directory entry: "+y)})})}function l(w,y){return new Promise(function(x,z){f(w,y,{create:!1}).then(function(A){x(A)})["catch"](function(){f(w,y,{create:!0}).then(function(A){x(A)})["catch"](function(A){console.log("Can't create directory entry: "+y,A);z("can't create directory entry: "+y)})})})}function p(w, y){return y.length==0?w:l(w,y[0]).then(function(x){return p(x,y.slice(1))})}function q(w,y){return y.length==0?w:f(w,y[0]).then(function(x){return q(x,y.slice(1))})}function r(w,y,x){return new Promise(function(z,A){w.getFile(y,x,function(D){z(D)},function(){A("can't get file entry: "+y)})})}function t(w){return new Promise(function(y,x){w.createWriter(function(z){y(z)},function(){x("can't create File for writing")})})}function u(w){var y=w.lastIndexOf(".");switch((y<0?"":w.substr(y)).toLowerCase()){case ".bmp":return"image/bmp"; case ".eot":return"application/vnd.ms-fontobject";case ".gif":return"image/gif";case ".glb":return"model/gltf-binary";case ".htm":case ".html":return"text/html";case ".jpeg":case ".jpg":return"image/jpeg";case ".js":return"text/javascript";case ".json":return"application/json";case ".m3u8":return"application/vnd.apple.mpegurl";case ".m4a":return"audio/mp4";case ".m4v":return"video/mp4";case ".mp3":return"audio/mpeg";case ".mp4":return"video/mp4";case ".ogg":return"audio/ogg";case ".ogv":return"video/ogg"; case ".otf":return"font/otf";case ".png":return"image/png";case ".svg":return"image/svg+xml";case ".tif":return"image/tiff";case ".tiff":return"image/tiff";case ".ts":return"video/vnd.dlna.mpeg-tts";case ".ttf":return"application/font-sfnt";case ".tts":return"video/vnd.dlna.mpeg-tts";case ".txt":return"text/plain";case ".webm":return"video/webm";case ".woff":return"font/x-woff";case ".woff2":return"font/woff2";case ".xml":return"text/xml";default:return"application/octet-stream"}}var v=null;return{K9:function(){return g()}, toURL:function(w,y){return a(w).then(function(x){x=new window.URL(x);var z=y?"persistent":"temporary",A=x.pathname.split("/").map(encodeURIComponent).join("/");return"filesystem:"+x.origin+"/"+z+A})},Njb:function(w){return n().then(function(y){return h(y,w)}).then(function(y){return m(y)}).then(function(y){v=y})},vjb:function(w){w=e(w);var y=w[w.length-1],x=w.slice(0,-1);return k().then(function(z){return q(z.root,x)}).then(function(z){return r(z,y,{create:!0})},function(){return Promise.resolve(null)}).then(function(z){return z&& b(z)})},hQa:function(w,y){var x=e(w);return m(1024,y).then(function(z){return q(z.root,x)}).then(function(z){return c(z)},function(){return Promise.resolve()})},HTa:function(w,y,x){var z=e(w),A=z[z.length-1],D=z.slice(0,-1);return k().then(function(F){return p(F.root,D)}).then(function(F){return r(F,A,{create:!1}).then(function(C){return Promise.resolve(C)},function(){return r(F,A,{create:!0})})}).then(function(F){return t(F)}).then(function(F){F.seek(F.length);return new Promise(function(C,B){F.onwriteend= function(){C()};F.onerror=function(H){console.log("Error writing file:",w,H);B("error writing file: "+w)};F.write(new Blob([y],{type:x||u(A)}))})})}}}); define("tdv/player/view/util/Download",["require","tdv/player/view/util/FileSystem","tdv/player/view/util/URL","tdv/player/view/util/Device"],function(a){function m(c,d){this.rD=c;this.kC=!1;this.Dq=null;this.mz=d||function(){}}function h(c){return c.CK>=1048576}var n=a("tdv/player/view/util/FileSystem"),g=a("tdv/player/view/util/URL"),k=a("tdv/player/view/util/Device").kf()?3:5;a={File:function(c,d){this.url=c;this.CK=d;this.HY=this.CO=0}};var e=a.Files=function(c,d,f,l){this.rwa=this.iYa=c;this.vv= d.slice();this.cya=[];var p=0;this.vv.sort(function(q,r){return q.CK-r.CK});this.vv.forEach(function(q){p+=q.CK});this.cGa=p;this.NG=[];this.d0=void 0;this.bv=[];this.Eda=!1;this.Sg=f||function(){};this.VR=l||function(){}};e.prototype.ew=function(){return this.iZa().then(function(){return this.jZa()}.bind(this))};e.prototype.iZa=function(){return self.caches["delete"](this.rwa)};e.prototype.jZa=function(){var c=(new window.URL(this.iYa)).pathname;return n.hQa(c,!1).then(function(){return n.hQa(c, !0)})};e.prototype.requestStorage=function(){return n.Njb(Math.round(this.cGa*1.1+10485760)).then(function(){return n.K9()})};e.prototype.download=function(){this.Eda=!1;this.d0=0;this.ew().then(function(){this.QR()}.bind(this))["catch"](function(c){console.log("error cleaning storage",c);n.K9().then(function(d){this.VR(!1,d)}.bind(this))}.bind(this))};e.prototype.cancelDownload=function(){this.Eda=!0;this.bv.forEach(function(c){c.cancel()});this.ew()};e.prototype.QR=function(){if(!(this.Eda||this.bv.length>= k))if(this.vv.length>0){if(k==1)var c=Math.random()>.5?this.vv.shift():this.vv.pop();else if(this.NG.filter(h).length==0)c=this.vv.pop();else{if(h(this.vv[0]))return;c=this.vv.shift()}this.NG.push(c);var d=g.MD(c.url,"nc="+(new Date).getTime()),f=new m(d,function(p){c.CO=p.CO;this.hh()}.bind(this));this.bv.push(f);f.fetch().then(function(p){return this.X9a(c.url,p)}.bind(this)).then(function(){this.Jxa(c,f,!0)}.bind(this))["catch"](function(p){console.log("download error",c.url,c.CK,c.CO,p);this.Jxa(c, f,!1)}.bind(this));this.QR()}else if(this.bv.length==0){var l=this.cya.length<=5;n.K9().then(function(p){this.VR(l,p)}.bind(this))}};e.prototype.Jxa=function(c,d,f){f?(this.NG.splice(this.NG.indexOf(c),1),this.bv.splice(this.bv.indexOf(d),1),this.d0+=c.CK,this.hh(),this.QR()):(c.CO=0,c.HY+=1,this.hh(),c.HY>=20?(console.log("Error downloading file: "+c.url+" after "+c.HY+" retries."),this.Sza(c.url)?(this.cya.push(c),this.bv.splice(this.bv.indexOf(d),1),this.QR()):(this.cancelDownload(),n.K9().then(function(l){this.VR(!1, l)}.bind(this)))):(console.log("Error downloading file: "+c.url+" attempt "+c.HY+" of 20. Will retry in 2000ms."),setTimeout(function(){this.NG.splice(this.NG.indexOf(c),1);this.bv.splice(this.bv.indexOf(d),1);h(c)?this.vv.push(c):this.vv.splice(0,0,c);this.QR()}.bind(this),2E3)))};e.prototype.X9a=function(c,d){return this.Z9a(c,d).then(function(){if(this.gbb(c))return this.Y9a(c,d)}.bind(this))};e.prototype.Y9a=function(c,d){d=d.clone();return d.status!=200?Promise.reject("response status: "+d.status): self.caches.open(this.rwa).then(function(f){return f.put(c,d)})};e.prototype.Z9a=function(c,d){d=d.clone();if(d.status!=200)return Promise.reject("response status: "+d.status);var f=(new window.URL(c)).pathname;return f.lastIndexOf("/")==f.length-1?Promise.resolve():new Promise(function(l,p){function q(){y.read().then(function(x){var z=x.value,A=[];if(z){for(;z.length+w>=10485760;){var D=z.slice(0,10485760-w);v.push(D);A.push(r(v));v=[];w=0;z=z.slice(D.length,z.length)}z.length>0&&(v.push(z),w+=z.length)}var F= x.done;w&&F&&A.push(r(v));t(A).then(function(){F?l():q()})["catch"](u)})["catch"](u)}function r(x){if(x.length==0)return new Uint8Array(0);var z=0;x.forEach(function(C){z+=C.length});for(var A=new Uint8Array(z),D=0,F=0;F=0&&c.indexOf("loading/")<0};e.prototype.gbb=function(c){var d=(new window.URL(c)).pathname;return d.indexOf("files/")>=0||d.indexOf("pdfjs/")>=0?!0:this.Sza(c)?!1:!0};e.prototype.hh=function(){var c=this.d0; this.NG.forEach(function(d){c+=d.CO});this.Sg(100*c/this.cGa)};m.prototype.fetch=function(){return fetch(this.rD).then(function(c){if(this.kC)return c.body.getReader().cancel(),Promise.reject("cancel requested before server responded.");if(!c.ok)return Promise.resolve(c);var d=c.headers.get("content-length"),f=void 0,l=0;d!==null&&(f=parseInt(d,10));this.Dq=c.body.getReader();var p=!1,q=function(u){this.kC?u.close():p=!0}.bind(this),r=function(u){return this.Dq.read().then(function(v){var w=v.value; w&&(l+=w.byteLength,u.enqueue(w));v.done&&(f=l,t(u));this.mz({CK:f,CO:l})}.bind(this))["catch"](function(v){console.log("Error reading response",v);u.error(v)}.bind(this))}.bind(this),t=function(u){p&&(u.close(),p=!1,this.Dq=null)}.bind(this);return new Response(new ReadableStream({start:function(u){return q(u)},pull:function(u){return r(u)},cancel:function(){t()}}))}.bind(this))};m.prototype.cancel=function(){this.kC=!0;this.Dq&&this.Dq.cancel()};a.ew=function(c){return(new e(c,[])).ew()};return a}); define("tdv/player/view/util/Installer","require tdv/utils tdv/constants/EventName tdv/events/EventDispatcher tdv/player/view/util/Device tdv/player/view/util/Download tdv/player/view/util/FileSystem tdv/player/view/util/Flags tdv/player/view/util/URL tdv/view/events/ProgressEvent tdv/util/Storage".split(" "),function(a){function m(t){p=t}var h=a("tdv/utils"),n=a("tdv/constants/EventName"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/util/Device"),e=a("tdv/player/view/util/Download"),b= a("tdv/player/view/util/FileSystem"),c=a("tdv/player/view/util/Flags"),d=a("tdv/player/view/util/URL"),f=a("tdv/view/events/ProgressEvent"),l=a("tdv/util/Storage"),p=null;window.addEventListener("beforeinstallprompt",m);var q=h.extend(g,function(t){g.call(this);this.Ie=t;this.I="initial";this.kka=this.Iv=this.Yk=null;this.yz=!1;this.WG=null;this.h6=void 0;this.JG=p;this.l2=q.lNa();this.qha=d.Ak("vr");this.JG||this.l2||(window.removeEventListener("beforeinstallprompt",m),window.addEventListener("beforeinstallprompt", this.M4a.bind(this)));this.l2||window.addEventListener("appinstalled",this.zXa.bind(this))});q.prototype.Ara=function(t){this.Iv=t;this.Do=d.lB(this.Iv.get(TDV.PlayerSettings.BASE_DIR_URL)||d.getDirectory(this.Iv.get(TDV.PlayerSettings.SELECTED_SCRIPT_URL)));this.Do[this.Do.length-1]!="/"&&(this.Do+="/");this.Yk=new r(this.Do);this.h6=this.TDa=t.get(TDV.PlayerSettings.QUERY_STRING_PARAMETERS);this.X2a=d.parse(d.getDirectory(window.location.href)).pathname;this.C0a=d.MD(d.lB("files.json",this.Do), this.TDa);t=TDV.qb.WLa();this.kka=d.MD(this.Iv.get(TDV.PlayerSettings.SERVICE_WORKER_URL),"swv="+t.MAJOR+"."+t.MINOR);this.Yk=new r(this.Do);this.Yk.bind(n.ia,this.o$a,this,!0);this.Yk.load()};q.prototype.nP=function(){return this.Yk.state==r.KQ};q.prototype.XIa=function(){return this.I=="can_install"&&!this.qha};q.prototype.ZIa=function(){return this.nP()&&this.h6!=this.Yk.version&&!this.qha};q.prototype.WIa=function(){return this.Yk.state!=r.fta&&!this.qha};q.prototype.LMa=function(){this.I=="can_install"&& (this.JG?(this.JG.userChoice.then(function(t){t.outcome!="accepted"&&this.Jd("unavailable")}.bind(this)),this.JG.prompt().then(function(){this.JG=null}.bind(this))):this.Mea())};q.prototype.cancel=function(){this.I=="downloading"&&(this.WG&&(this.WG.cancelDownload(),this.WG=null),this.Yk.ew(),this.Jd("unavailable"))};q.prototype.ew=function(){e.ew(this.Do);this.Yk.ew()};q.prototype.o$a=function(){this.Iv&&this.Iv.get(TDV.PlayerSettings.d_)?this.Jd("unavailable"):this.Ie.get("downloadEnabled")!==!0? this.Jd("unavailable"):c.rUa!==!0?this.Jd("unavailable"):k.Yb()!=k.Pp||k.xc()==k.zB||k.xc()==k.PK?this.Jd("unavailable"):this.kka?"serviceWorker"in navigator?this.nP()&&!this.ZIa()?this.Jd("unavailable"):navigator.onLine?this.N6a():this.Jd("unavailable"):this.Jd("unavailable"):this.Jd("unavailable")};q.prototype.Jd=function(t){this.I!=t&&(this.I=t,t=["can_install","unavailable"].indexOf(this.I)>=0,this.yz!=t&&(this.yz=t)&&this.o(n.vd))};q.prototype.N6a=function(){this.Jd("registering_sw");navigator.serviceWorker.register(this.kka, {scope:this.X2a}).then(function(){this.AEa(!0)}.bind(this))["catch"](function(){this.AEa(!1)}.bind(this))};q.prototype.AEa=function(t){t?k.kf()?this.Jd("can_install"):this.l2&&this.Yk.state==r.Vaa?(this.Jd("can_install"),this.Mea()):this.JG?this.Jd("can_install"):(this.Jd("sw_registered"),setTimeout(function(){this.I=="sw_registered"&&this.Jd("can_install")}.bind(this),3E3)):this.Jd("unavailable")};q.prototype.M4a=function(t){this.Iv&&this.Iv.get(TDV.PlayerSettings.d_)||(this.JG=t,this.I=="sw_registered"&& this.Jd("can_install"))};q.prototype.zXa=function(){this.Iv&&this.Iv.get(TDV.PlayerSettings.d_)||(this.I=="sw_registered"&&this.Jd("can_install"),this.Mea())};q.prototype.Mea=function(){this.Jd("downloading");this.o(n.Br);this.sGa(0);this.d4a()};q.prototype.d4a=function(){var t=d.MD(this.C0a,"nc="+(new Date).getTime());h.voa(t,u=>{if(this.I=="downloading"){var v=[],w;for(w in u){var y=u[w].tags;if(y){Array.isArray(y)||(y=[y]);for(var x=0;x= 0&&(k.A8()||k.B8())?z.push("mobilevr2gen"):v.indexOf("mobilevr")>=0&&k.kf()?z.push("mobilevr"):v.indexOf("mobile")>=0&&k.ub()?z.push("mobile"):v.indexOf("desktop")>=0&&!k.ub()&&z.push("desktop");v=[];for(w in u)if(!(w.indexOf(".DS_Store")>-1)){if(y=u[w].tags){var A=!1;if(Array.isArray(y)){x=0;for(var D=y.length;x=0}else A=z.indexOf(y)>=0;if(!A)continue}y=d.lB(w,this.Do);v.push(new e.File(y,u[w].size))}var F=(new window.URL(window.location.pathname,window.location.href)).toString(); v.filter(function(C){return C.url==F}).length==0&&v.push(new e.File(F,1024));this.WG=new e.Files(this.Do,v,this.sGa.bind(this),this.Ixa.bind(this));this.WG.requestStorage().then(function(C){this.Yk.storage=C?r.VQ:r.ica;this.Yk.state=r.Vaa;this.Yk.version=this.h6;this.Yk.save();this.WG.download()}.bind(this))["catch"](function(){this.Ixa(!1,void 0)}.bind(this))}})};q.prototype.sGa=function(t){this.o(new f(n.yc,t))};q.prototype.Ixa=function(t,u){this.WG=null;this.Jd("unavailable");t&&(this.Yk.state= r.KQ,this.Yk.save());t?this.o(n.Tb,{uZ:!0}):u?this.o(n.Tb,{uZ:!1,error:q.ita}):k.kf()?this.o(n.Tb,{uZ:!1,error:q.hta}):this.l2?this.o(n.Tb,{uZ:!1,error:q.ita}):this.o(n.Tb,{uZ:!1,error:q.jta})};q.lNa=function(){return d.Tg("installed",!1)};q.mjb=function(t,u){var v=new q.Oba(t);v.bind(n.ia,function(){var w=!1;v.state==q.Oba.KQ&&(w=q.lNa()?!0:!navigator.onLine);w?b.toURL(t,v.storage==q.Oba.VQ).then(function(y){u(y)}):u(t)},this,!0);v.load()};q.jta="launchFromHomeScreen";q.hta="addToBookmark";q.ita= "errorDownloading";var r=h.extend(g,function(t){g.call(this);this.Do=t;this.fha="installation_state_"+t;this.f6a=d.parse(this.Do).pathname+"installation_state.json";this.state=this.storage=this.version=void 0;this.KEa()});r.prototype.load=function(){if(this.e4a()&&this.state==r.KQ)this.XFa(this.storage==r.VQ).then(function(){this.o(n.ia)}.bind(this))["catch"](function(){this.XFa(this.storage!=r.VQ).then(function(){this.storage=this.storage==r.ica?r.VQ:r.ica;this.cka();this.o(n.ia)}.bind(this))["catch"](function(){this.state= r.Vaa;this.cka();this.o(n.ia)}.bind(this))}.bind(this));else this.o(n.ia)};r.prototype.save=function(){this.cka();this.state==r.KQ&&this.s7a()};r.prototype.e4a=function(){var t=l.getItem(this.fha);if(!t)return!1;this.Z0a(t);return!0};r.prototype.cka=function(){l.setItem(this.fha,this.bGa())};r.prototype.XFa=function(t){return new Promise(function(u,v){b.toURL(this.Do+"installation_state.json",t).then(w=>h.voa(w,()=>u(),()=>v()))}.bind(this))};r.prototype.s7a=function(){b.HTa(this.f6a,this.bGa(),"text/json")}; r.prototype.bGa=function(){var t={};t.version=this.version;t.storage=this.storage;t.state=this.state;return JSON.stringify(t)};r.prototype.Z0a=function(t){this.Y0a(JSON.parse(t))};r.prototype.Y0a=function(t){this.version=t.version;this.storage=t.storage;this.state=t.state};r.prototype.ew=function(){l.removeItem(this.fha);this.KEa()};r.prototype.KEa=function(){this.version="";this.storage=r.XVa;this.state=r.fta};r.XVa="unkonwn";r.ica="temporary";r.VQ="persistent";r.fta="not started";r.Vaa="started"; r.KQ="completed";q.Oba=r;return q}); define("tdv/player/view/DownloadBar","require tdv/utils tdv/constants/EventName tdv/player/l10n tdv/player/view/util/Device tdv/player/view/util/Installer tdv/view/buttons/Button tdv/view/buttons/CloseButton tdv/view/constants/Alignment tdv/view/constants/LayoutMode tdv/view/containers/Container tdv/view/core/UIComponent tdv/view/text/Label".split(" "),function(a){function m(r){var t=new b;t.xa({label:r,backgroundColor:"#0071BC",borderRadius:2,fontColor:"#ffffff",fontWeight:"400",fontFamily:"Arial, sans-serif", fontSize:14,paddingLeft:14,paddingRight:14,height:31,verticalAlign:d.$d});return t}var h=a("tdv/utils"),n=a("tdv/constants/EventName"),g=a("tdv/player/l10n"),k=a("tdv/player/view/util/Device"),e=a("tdv/player/view/util/Installer"),b=a("tdv/view/buttons/Button"),c=a("tdv/view/buttons/CloseButton"),d=a("tdv/view/constants/Alignment"),f=a("tdv/view/constants/LayoutMode"),l=a("tdv/view/containers/Container"),p=a("tdv/view/core/UIComponent"),q=a("tdv/view/text/Label");a=h.extend(l,function(r,t){l.call(this); this.Ie=r;this.fh=t;this.fh.bind(n.vd,this.r3a,this,!0);this.fh.bind(n.Br,this.o3a,this,!0);this.fh.bind(n.yc,this.q3a,this,!0);this.fh.bind(n.Tb,this.p3a,this,!0);this.sb="hidden";this.mW=void 0;this.fja=!1;this.Sg=void 0;this.dk=this.ey=this.sG=this.wG=this.tG=this.l5=this.Za=null;this.uXa();this.xa({backgroundColor:"#000000",gap:18,height:55,width:"100%",paddingLeft:28,paddingRight:28,verticalAlign:d.$d,layout:f.Mi});this.jh()});a.prototype.r3a=function(){this.fh.XIa()||this.fh.nP()&&this.fh.WIa()? (this.sb="ready",this.fja&&this.AFa()):this.sb="hidden";this.jh()};a.prototype.o3a=function(){this.sb="installing";this.jh()};a.prototype.q3a=function(r){this.Sg=r.percent;this.jh()};a.prototype.p3a=function(r){this.sb=r.data.uZ?"installed":"failed";this.Xxa=r.data.error;this.jh()};a.prototype.rg=function(){this.W9a()};a.prototype.A3=function(){this.fja||(this.fja=!0,this.sb=="ready"&&this.AFa())};a.prototype.AFa=function(){this.mW=setTimeout(function(){this.mW=null;this.T5a()}.bind(this),5E3);this.jh()}; a.prototype.W9a=function(){this.aEa();this.mW&&clearTimeout(this.mW);this.mW=null};a.prototype.T5a=function(){this.aEa();this.sb=="ready"&&(this.sb="hidden",this.jh())};a.prototype.uXa=function(){this.bind(n.gb,this.rg,this);this.Ie.bind(n.gb,this.A3,this);this.Ie.bind(n.Sa,this.A3,this)};a.prototype.aEa=function(){this.h(n.gb,this.rg,this);this.Ie.h(n.gb,this.A3,this);this.Ie.h(n.Sa,this.A3,this)};a.prototype.Kb=function(){l.prototype.Kb.call(this);this.Za==null&&(this.Za=new q,this.Za.xa({fontColor:"#ffffff", fontWeight:"400",fontFamily:"Arial, sans-serif",fontSize:14,text:g("download-tour")}),this.mb(this.Za));this.tG==null&&(this.tG=m(g("download")),this.mb(this.tG),this.tG.bind(n.ma,this.IYa,this,!0));this.wG==null&&(this.wG=m(g("refresh-downloaded")),this.mb(this.wG),this.wG.bind(n.ma,this.OYa,this,!0));this.sG==null&&(this.sG=m(g("delete-downloaded")),this.mb(this.sG),this.sG.bind(n.ma,this.HYa,this,!0));this.l5==null&&(this.l5=new p,this.l5.xa({width:"100%"}),this.mb(this.l5));this.ey==null&&(this.ey= new c,this.ey.xa({backgroundColor:"#ffffff",borderRadius:2,iconColor:"#000000",iconLineWidth:1,iconWidth:17,iconHeight:17,height:31,width:31}),this.mb(this.ey),this.ey.bind(n.ma,this.GYa,this,!0));this.dk==null&&(this.dk=m(g("cancel")),this.mb(this.dk),this.dk.bind(n.ma,this.rG,this,!0));k.ub()&&this.Cn();this.jh()};a.prototype.Zr=function(){l.prototype.Zr.call(this);k.ub()&&this.getParent().bind(n.$b,this.Cn,this,!0)};a.prototype.np=function(){k.ub()&&this.getParent().h(n.$b,this.Cn,this,!0);l.prototype.np.call(this)}; a.prototype.Cn=function(){var r=this.getParent();if(r){var t=Math.min(r.nb(),r.Mb())/100,u=function(v){return Math.round(v*t)};this.xa({gap:u(3.9),height:u(11.9),paddingLeft:u(6),paddingRight:u(6)});this.Za&&this.Za.xa({fontSize:u(3)});[this.tG,this.dk,this.wG,this.sG].forEach(function(v){v&&v.xa({borderRadius:u(.4),fontSize:u(3),paddingLeft:u(3),paddingRight:u(3),height:u(6.7)})});this.ey&&this.ey.xa({borderRadius:u(.4),iconLineWidth:u(.22),iconWidth:u(3.7),iconHeight:u(3.7),height:u(6.7),width:u(6.7)})}}; a.prototype.jh=function(){switch(this.sb){case "ready":var r=this.fh.nP()?g("downloaded"):g("download-tour");break;case "installing":r=g("downloading");this.Sg!==void 0&&(r+="..."+this.Sg.toFixed(1)+"%");break;case "installed":r=g("downloaded");break;case "failed":r=this.Xxa==e.jta?k.ub()?g("storage-not-provided-launch-from-homescreen"):g("storage-not-provided-launch-from-desktop"):this.Xxa==e.hta?g("storage-not-provided-bookmark"):g("download-failed")}this.Za&&this.Za.set("text",r);this.tG&&this.tG.set("visible", this.sb=="ready"&&!this.fh.nP()&&this.fh.XIa());this.sG&&this.sG.set("visible",this.sb=="ready"&&this.fh.nP()&&this.fh.WIa());this.wG&&this.wG.set("visible",this.sb=="ready"&&this.fh.ZIa());this.dk&&this.dk.set("visible",this.sb=="installing");this.ey&&this.ey.set("visible",this.sb!="installing");this.set("visible",this.sb!="hidden")};a.prototype.IYa=function(){this.fh.LMa()};a.prototype.OYa=function(){this.fh.LMa()};a.prototype.HYa=function(){this.fh.ew();this.sb="hidden";this.jh()};a.prototype.rG= function(){this.fh.cancel();this.sb="hidden";this.jh()};a.prototype.GYa=function(){this.sb=="installing"&&this.fh.cancel();this.sb="hidden";this.jh()};return a}); define("tdv/player/view/MessageWindow","require tdv/utils tdv/constants/EventName tdv/player/l10n tdv/player/view/util/Device tdv/view/buttons/Button tdv/view/constants/Alignment tdv/view/constants/LayoutMode tdv/view/containers/Container tdv/view/effects/FadeInEffect tdv/view/effects/FadeOutEffect tdv/view/text/Label tdv/view/text/HTMLText tdv/view/util/KeyboardControl".split(" "),function(a){function m(t,u){this.text=t;this.Fn=u}var h=a("tdv/utils"),n=a("tdv/constants/EventName"),g=a("tdv/player/l10n"), k=a("tdv/player/view/util/Device"),e=a("tdv/view/buttons/Button"),b=a("tdv/view/constants/Alignment"),c=a("tdv/view/constants/LayoutMode"),d=a("tdv/view/containers/Container"),f=a("tdv/view/effects/FadeInEffect"),l=a("tdv/view/effects/FadeOutEffect"),p=a("tdv/view/text/Label"),q=a("tdv/view/text/HTMLText"),r=a("tdv/view/util/KeyboardControl");a=h.extend(d,function(){d.call(this);this.us=[];this.dk=this.uG=this.Za=this.iH=this.GN=this.jt=null;this.qR=this.qR.bind(this);this.rG=this.rG.bind(this);var t= new f;t.set("duration",500);t.set("easing","cubic_in");var u=new l;u.set("duration",500);u.set("easing","cubic_out");this.xa({backgroundColor:"#000000",backgroundOpacity:.6,horizontalAlign:b.$e,gap:5,left:0,top:0,right:0,bottom:0,hideEffect:u,showEffect:t,visible:!1})});a.prototype.Kb=function(){d.prototype.Kb.call(this);this.jt==null&&(this.jt=new d,this.jt.xa({centerX:0,centerY:0,backgroundColor:"#ffffff",horizontalAlign:b.$e,verticalAlign:b.$d,layout:c.Uk,shadow:!0,shadowColor:"#000000",shadowHorizontalLength:0, shadowVerticalLength:0,shadowOpacity:.2}),this.mb(this.jt));this.Za==null&&(this.Za=new p,this.Za.xa({fontColor:"#808080",fontWeight:"300",fontFamily:"Tahoma, Geneva, sans-serif"}),this.jt.mb(this.Za));this.iH==null&&(this.iH=new q,this.iH.xa({width:"80%"}),this.jt.mb(this.iH));this.GN==null&&(this.GN=new d,this.GN.xa({backgroundColor:"#b3b3b3"}),this.jt.mb(this.GN));this.ek==null&&(this.ek=new d,this.ek.xa({horizontalAlign:b.$e,verticalAlign:b.$d,layout:c.Mi}),this.jt.mb(this.ek));this.uG==null&& (this.uG=new e,this.uG.xa({backgroundColor:"#606060",fontColor:"#FFFFFF",fontFamily:"Tahoma, Geneva, sans-serif",horizontalAlign:b.$e,verticalAlign:b.$d,label:g("yes").toUpperCase(),pressedBorderColor:"#808080",rollOverBorderColor:"#808080",tabIndex:1}),this.uG.bind(n.ma,this.qR,this,!0),this.ek.mb(this.uG));this.dk==null&&(this.dk=new e,this.dk.xa({backgroundColor:"#606060",fontColor:"#FFFFFF",fontFamily:"Tahoma, Geneva, sans-serif",horizontalAlign:b.$e,verticalAlign:b.$d,label:g("no").toUpperCase(), pressedBorderColor:"#808080",rollOverBorderColor:"#808080",tabIndex:1}),this.dk.bind(n.ma,this.rG,this,!0),this.ek.mb(this.dk))};a.prototype.Zr=function(){d.prototype.Zr.call(this);this.getParent().bind(n.$b,this.Cn,this,!0)};a.prototype.np=function(){this.getParent().h(n.$b,this.Cn,this,!0);d.prototype.np.call(this)};a.prototype.Cn=function(){var t=this.getParent();if(t){var u=t.nb();t=t.Mb();if(k.ub()){var v=Math.min(u,t);u=function(w){return Math.round(w*v/100)}}else u=function(w){return Math.round(w* 4)};this.jt&&this.jt.xa({borderRadius:u(1),width:u(80),height:u(40),gap:u(4),shadowBlurRadius:u(1),shadowSpread:u(1)});this.GN&&this.GN.xa({width:u(60),minHeight:2,height:u(.25)});this.ek&&this.ek.xa({gap:u(5)});this.dk&&this.dk.xa({borderRadius:u(1),width:u(20),height:u(10),fontSize:u(4.25)});this.uG&&this.uG.xa({borderRadius:u(1),width:u(20),height:u(10),fontSize:u(4.5)});this.Za&&this.Za.xa({fontSize:u(5)});this.Y5()}};a.prototype.show=function(t,u){this.Cn();var v=this.Uya(u);v>=0&&this.ZDa(v); this.E6a(new m(t,u));this.DYa()};a.prototype.oe=function(t){t=this.Uya(t);t>=0&&this.ZDa(t)};a.prototype.DYa=function(){var t=this.getParent();t&&t.pr(this,t.Cb().length-1)};a.prototype.qR=function(){this.Hva(!0)};a.prototype.rG=function(){this.Hva(!1)};a.prototype.Uya=function(t){for(var u=0;u'+t+""};a.prototype.Hva=function(t){var u=this.oza();u&&(u=this.W1a(u.text), this.Y6a(u),u.forEach(v=>{v.Fn&&v.Fn.call(this,t)}))};a.prototype.E6a=function(t){this.us.push(t);this.Y5()};a.prototype.W1a=function(t){return this.us.filter(u=>u.text==t)};a.prototype.Y6a=function(t){this.us=this.us.filter(u=>!t.includes(u));this.Y5()};a.prototype.ZDa=function(t){this.us.splice(t,1);t==this.us.length&&this.Y5()};a.prototype.oza=function(){return this.us.length>0?this.us[this.us.length-1]:null};return a}); define("tdv/view/core/ContextMenu","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/player/view/util/Device tdv/view/util/Fullscreen".split(" "),function(a){function m(E){return E.map(function(G){return String.fromCharCode(G)}).join("")}function h(E){for(;E&&E!=document;){if(E.getAttribute(r)=="Button")return!0;E=E.parentNode}return!1}var n=a("tdv/utils"),g=a("tdv/constants/EventName"),k=a("tdv/events/Event"),e=a("tdv/events/EventDispatcher"),b=a("tdv/player/view/util/Device"), c=a("tdv/view/util/Fullscreen"),d=[];a=m([99,111,110,116,101,120,116,109,101,110,117]);var f=m([109,111,117,115,101,100,111,119,110]),l=m([109,111,117,115,101,117,112]),p=m([109,111,117,115,101,108,101,97,118,101]),q=m([109,111,117,115,101,101,110,116,101,114]),r=m([116,100,118,99,108,97,115,115]);document.addEventListener(a,function(E){if(!b.ub()||!h(E.target)){var G=b.Nd()==b.o_?200:0;setTimeout(function(){(t===void 0||u===void 0||v===void 0||w===void 0||Math.abs(v-t)+Math.abs(w-u)<10)&&d.forEach(function(N){N(E)}); t=u=v=w=void 0},G)}E.preventDefault();E.stopImmediatePropagation()},!0);var t,u,v,w;document.addEventListener("mousedown",function(E){v=t=E.screenX;w=u=E.screenY},!0);document.addEventListener("mousemove",function(E){v=E.screenX;w=E.screenY},!0);var y=1;n=n.extend(e,function(E,G){e.call(this);this.Gb=E;this.O1a=G;this.d3=this.d3.bind(this);this.te=this.te.bind(this);this.eha=!1;this.bha=this.bha.bind(this);this.cha=this.cha.bind(this);this.aha=this.aha.bind(this);this.dha=this.dha.bind(this);this.qa= document.createElement("div");this.qa.style.setProperty("z-index",y,H[B]);for(var N in H[x])this.qa.style.setProperty(N,H[x][N],H[B]);d.push(this.d3)});n.prototype.clear=function(){this.X3a()&&this.pga();this.qa=null;d.splice(d.indexOf(this.d3),1)};n.prototype.d3=function(E){var G=this.O1a();if(G.length!=0){this.qa.replaceChildren();this.eha=!1;var N=0;G.forEach(function(O){var R=document.createElement("div");if(O){R.textContent=O;for(var Q in H[A])R.style.setProperty(Q,H[A][Q],H[B]);var K=N;N++; R.addEventListener(q,function(L){this.bha(L,K)}.bind(this));R.addEventListener(p,function(L){this.cha(L,K)}.bind(this));R.addEventListener(f,function(L){this.aha(L,K)}.bind(this));R.addEventListener(l,function(L){this.dha(L,K)}.bind(this))}else for(Q in H[D])R.style.setProperty(Q,H[D][Q],H[B]);for(Q in H[z])R.style.setProperty(Q,H[z][Q],H[B]);this.qa.appendChild(R)}.bind(this));(c.fullscreenElement()||document.body).appendChild(this.qa);this.qa.style.setProperty("display","block",H[B]);G=E.pageX; E=E.pageY;G+this.qa.clientWidth>document.body.clientWidth-5&&(G=document.body.clientWidth-this.qa.clientWidth-5);E+this.qa.clientHeight>document.body.clientHeight-5&&(E=document.body.clientHeight-this.qa.clientHeight-5);this.qa.style.setProperty("left",G+"px",H[B]);this.qa.style.setProperty("top",E+"px",H[B]);this.Gb.bind(g.Sa,this.te,this);document.addEventListener("mousedown",this.te);this.zbb=setInterval(this.ybb.bind(this),200)}};n.prototype.X3a=function(){return!!this.qa&&!!this.qa.parentNode}; n.prototype.pga=function(){clearInterval(this.zbb);this.qa.parentNode.removeChild(this.qa);document.removeEventListener("mousedown",this.te);this.Gb.h(g.Sa,this.te,this);this.qa.style.setProperty("display","none",H[B])};n.prototype.ybb=function(){this.qa.contains(document.elementFromPoint(this.qa.offsetLeft+this.qa.clientWidth*.5,this.qa.offsetTop+this.qa.clientHeight*.5))||this.qa.style.setProperty("z-index",y*=10,H[B])};n.prototype.te=function(){this.pga()};n.prototype.aha=function(E){this.eha= !0;E.preventDefault();E.stopImmediatePropagation()};n.prototype.dha=function(E,G){this.eha&&(this.pga(),E.preventDefault(),E.stopImmediatePropagation(),this.o(new k(g.Vr,{index:G})))};n.prototype.bha=function(E){for(var G in H[F])E.currentTarget.style.setProperty(G,H[F][G],H[B])};n.prototype.cha=function(E){for(var G in H[C])E.currentTarget.style.setProperty(G,H[C][G],H[B])};var x="0",z="1",A="2",D="3",F="4",C="5",B="6",H=function(E){return JSON.parse(E.map(function(G){return String.fromCharCode(G)}).join(""))}([123, 34,48,34,58,123,34,98,111,114,100,101,114,34,58,34,49,112,120,32,115,111,108,105,100,32,35,98,98,98,34,44,34,98,111,114,100,101,114,45,114,97,100,105,117,115,34,58,34,51,112,120,34,44,34,112,111,115,105,116,105,111,110,34,58,34,97,98,115,111,108,117,116,101,34,44,34,100,105,115,112,108,97,121,34,58,34,110,111,110,101,34,44,34,98,97,99,107,103,114,111,117,110,100,45,99,111,108,111,114,34,58,34,35,101,53,101,53,101,53,34,44,34,111,112,97,99,105,116,121,34,58,49,44,34,112,97,100,100,105,110,103,34,58, 48,44,34,109,97,114,103,105,110,34,58,48,44,34,112,111,105,110,116,101,114,45,101,118,101,110,116,115,34,58,34,97,108,108,34,44,34,116,101,120,116,45,97,108,105,103,110,34,58,34,108,101,102,116,34,44,34,98,111,120,45,115,104,97,100,111,119,34,58,34,49,112,120,32,49,112,120,32,51,112,120,32,114,103,98,97,40,48,44,32,48,44,32,48,44,32,48,46,50,41,34,125,44,34,49,34,58,123,34,102,111,110,116,45,102,97,109,105,108,121,34,58,34,65,114,105,97,108,34,44,34,102,111,110,116,45,115,105,122,101,34,58,34,49, 51,112,120,34,44,34,99,111,108,111,114,34,58,34,35,48,48,48,48,48,48,34,44,34,111,112,97,99,105,116,121,34,58,49,44,34,100,105,115,112,108,97,121,34,58,34,98,108,111,99,107,34,44,34,112,111,105,110,116,101,114,45,101,118,101,110,116,115,34,58,34,97,108,108,34,125,44,34,50,34,58,123,34,99,117,114,115,111,114,34,58,34,112,111,105,110,116,101,114,34,44,34,98,111,114,100,101,114,45,114,97,100,105,117,115,34,58,34,51,112,120,34,44,34,112,97,100,100,105,110,103,34,58,34,55,112,120,32,50,48,112,120,34,44, 34,119,104,105,116,101,45,115,112,97,99,101,34,58,34,110,111,119,114,97,112,34,125,44,34,51,34,58,123,34,109,97,114,103,105,110,34,58,34,55,112,120,32,53,112,120,34,44,34,98,111,114,100,101,114,45,116,111,112,34,58,34,49,112,120,32,115,111,108,105,100,32,35,97,97,97,34,44,34,98,111,114,100,101,114,45,98,111,116,116,111,109,34,58,34,49,112,120,32,115,111,108,105,100,32,35,102,102,102,34,125,44,34,52,34,58,123,34,99,111,108,111,114,34,58,34,35,102,102,102,102,102,102,34,44,34,98,97,99,107,103,114,111, 117,110,100,45,99,111,108,111,114,34,58,34,114,103,98,97,40,48,44,32,48,44,32,48,44,32,48,46,55,41,34,125,44,34,53,34,58,123,34,99,111,108,111,114,34,58,34,35,48,48,48,48,48,48,34,44,34,98,97,99,107,103,114,111,117,110,100,45,99,111,108,111,114,34,58,34,34,125,44,34,54,34,58,34,105,109,112,111,114,116,97,110,116,34,125]);return n}); define("tdv/view/core/Cursors",["require","exports","tdv/player/view/util/URL","tdv/view/constants/Cursor","tdv/view/util/Assets"],function(a,m,h,n,g){return function(){function k(e){this.Gb=e;this.Lv={};this.Lv[n.Nta]="move";this.Lv[n.pVa]="ew-resize";this.Lv[n.rVa]="ns-resize";this.Lv[n.qVa]="nesw-resize";this.Lv[n.sVa]="nwse-resize";this.Lv[n.qf]="pointer";this.Lv[n.LB]="inherit";this.Lv[n.De]="default";this.ki={};this.ki[n.IB]="grab.cur";this.ki[n.Li]="grabbing.cur";this.ki[n.Xta]="N.cur";this.ki[n.Yta]= "NE.cur";this.ki[n.Ota]="E.cur";this.ki[n.aua]="SE.cur";this.ki[n.$ta]="S.cur";this.ki[n.bua]="SW.cur";this.ki[n.cua]="W.cur";this.ki[n.Zta]="NW.cur";this.ki[n.Qta]="FN.cur";this.ki[n.Rta]="FNE.cur";this.ki[n.Pta]="FE.cur";this.ki[n.Uta]="FSE.cur";this.ki[n.Tta]="FS.cur";this.ki[n.Vta]="FSW.cur";this.ki[n.Wta]="FW.cur";this.ki[n.Sta]="FNW.cur";this.fda={};this.fda[n.$F]=g.$F;this.qwa={}}k.prototype.WKa=function(e){return this.R3a(e)?this.lza(e):this.G3a(e)?this.u1a(e):this.z3a(e)?this.f1a(e):this.lza(n.De)}; k.prototype.UYa=function(e){if(!(e in this.qwa)){var b=new Image;b.src=this.Bya(e);this.qwa[e]=b}};k.prototype.R3a=function(e){return e in this.Lv};k.prototype.lza=function(e){return this.Lv[e]};k.prototype.G3a=function(e){return!!this.ki[e]};k.prototype.u1a=function(e){this.UYa(e);return"url("+this.Bya(e)+"), default"};k.prototype.Bya=function(e){return h.lB(this.Gb.get("settings").get(TDV.PlayerSettings.CURSORS_DIR_URL))+"/"+this.ki[e]};k.prototype.z3a=function(e){return e in this.fda};k.prototype.f1a= function(e){return"url("+this.fda[e]+"), auto"};return k}()});define("tdv/view/helpers/DOMUpdateQueue",["require","exports"],function(){var a=1,m={};return{Udb:function(h,n){var g=h.__duqid;g===void 0&&(g=a.toString(),h.__duqid=g,a++);h=m[g]||(m[g]={e:h,s:{}});for(var k in n)h.s[k]=n[k]},process:function(){for(var h in m){var n=m[h],g=n.e.style;n=n.s;for(var k in n)g[k]=n[k]}m={}}}}); define("tdv/view/lifecycle/PriorityQueue",["require","exports"],function(){return function(){function a(){this.vz={};this.Ns=[];this.ER=0}a.prototype.push=function(m,h){this.vz[h]==void 0?(this.vz[h]=[m],this.Ns.push(h),this.Ns.sort(function(n,g){return n-g}),this.ER++):(h=this.vz[h],h.includes(m)||(h.push(m),this.ER++))};a.prototype.ZKa=function(){return this.ER};a.prototype.isEmpty=function(){return this.Ns.length==0};a.prototype.JPa=function(){if(!this.isEmpty()){var m=this.Ns[0],h=this.vz[m].pop(); this.vz[m].length==0&&(delete this.vz[m],this.Ns=this.Ns.slice(1));this.ER--;return h}};a.prototype.sqa=function(){if(!this.isEmpty()){var m=this.Ns[this.Ns.length-1],h=this.vz[m].pop();this.vz[m].length==0&&(delete this.vz[m],this.Ns=this.Ns.slice(0,this.Ns.length-1));this.ER--;return h}};return a}()}); define("tdv/view/lifecycle/LifeCycleManager","require exports tdv/view/helpers/DOMUpdateQueue tdv/view/lifecycle/PriorityQueue tdv/view/util/Animation tdv/events/async".split(" "),function(a,m,h,n,g,k){return function(){function e(){this.DE=!1;this.sPa=void 0;this.enabled=!0;this.T6=new n;this.T9=new n;this.M$=new n;this.K8=new n;this.Psa=new n;g.requestFrame(this.Kg,this)}e.prototype.clear=function(){this.enabled=!1};e.prototype.JX=function(b){this.T6.push(b,this.hP(b));this.LY()};e.prototype.Tf= function(b){this.T9.push(b,this.hP(b));this.LY()};e.prototype.lc=function(b){this.M$.push(b,this.hP(b));this.LY()};e.prototype.Af=function(b){this.K8.push(b,this.hP(b));this.LY()};e.prototype.tb=function(b){this.Psa.push(b,this.hP(b));this.LY()};e.prototype.update=function(){this.pnb();this.Vnb();this.ou()};e.prototype.pnb=function(){do{for(;!this.T6.isEmpty();){var b=this.T6.sqa();b&&b.Kb()}this.T9.isEmpty()||(b=this.T9.sqa())&&b.jb()}while(!this.T9.isEmpty()||!this.T6.isEmpty())};e.prototype.Vnb= function(){for(;!this.M$.isEmpty()||!this.K8.isEmpty();)this.GZ(),this.Kk()};e.prototype.GZ=function(){for(;!this.M$.isEmpty();){var b=this.M$.sqa();if(b&&b.Fnb()){var c=b.getParent();c?(c.lc(),c.Af()):b.QQa(0,0,b.rw(),b.qw())}}};e.prototype.Kk=function(){for(;!this.K8.isEmpty();){var b=this.K8.JPa();b&&b.Kk()}};e.prototype.ou=function(){for(;!this.Psa.isEmpty();){var b=this.Psa.JPa();b&&b.ou()}h.process()};e.prototype.LY=function(){this.DE||(this.DE=!0,this.sPa=(new Date).getTime()+500,k.LE(this.UOa.bind(this)))}; e.prototype.UOa=function(){this.DE=!1;this.enabled&&this.update()};e.prototype.hP=function(b){return(b=b.getParent())?this.hP(b)+1:0};e.prototype.Kg=function(){this.DE&&(new Date).getTime()>=(this.sPa||0)&&this.UOa();g.requestFrame(this.Kg,this)};return e}()}); define("tdv/view/core/visuals/dom/DOMCanvasVisuals",["require","exports","tdv/view/core/visuals/dom/DOMUIBaseVisuals","tdv/view/core/visualprops/CanvasVisualProperties"],function(a,m,h,n){return function(g){function k(){return g.call(this)||this}P(k,g);k.prototype.tp=function(){return new n};k.prototype.rh=function(e){g.prototype.rh.call(this,e);this.Lp(e)};k.prototype.Lp=function(e){if(e.canvas!==this.K.canvas&&(this.K.canvas&&this.X9(this.K.canvas),e.canvas)){var b=e.canvas;b.style.position="absolute"; b.style.left="0";b.style.top="0";b.style.cursor="inherit";this.tk(e.canvas)}};return k}(h)}); define("tdv/view/core/visuals/dom/DOMContainerVisuals",["require","exports","tdv/view/core/ZIndex","tdv/view/core/visuals/dom/DOMUIBaseVisuals","tdv/view/core/visualprops/ContainerVisualProperties"],function(a,m,h,n,g){return function(k){function e(){var b=k.call(this)||this;b.Kn=null;b.Ft=null;b.io=null;b.pu=null;return b}P(e,k);e.prototype.tp=function(){return new g};e.prototype.kA=function(){k.prototype.kA.call(this);this.nfb().appendChild(this.I7());this.Yfb().appendChild(this.X7())};e.prototype.nfb= function(){this.Kn||(this.Kn=document.createElement("div"),this.Kn.setAttribute("tdvlayer","scrollbar"),this.Kn.style.position="absolute",this.Kn.style.zIndex=h.wua);return this.Kn};e.prototype.Yfb=function(){this.io||(this.io=document.createElement("div"),this.io.setAttribute("tdvlayer","scrollbar"),this.io.style.position="absolute",this.io.style.zIndex=h.wua);return this.io};e.prototype.I7=function(){this.Ft||(this.Ft=document.createElement("div"),this.Ft.style.position="absolute",this.Ft.style.left= "0",this.Ft.style.top="0");return this.Ft};e.prototype.X7=function(){this.pu||(this.pu=document.createElement("div"),this.pu.style.position="absolute",this.pu.style.left="0",this.pu.style.top="0");return this.pu};e.prototype.rh=function(b){k.prototype.rh.call(this,b);this.Snb(b)};e.prototype.Snb=function(b){b.Bk!==this.K.Bk&&(b.Bk?this.Fh.appendChild(this.Kn):this.Fh.removeChild(this.Kn));b.Lk!==this.K.Lk&&(b.Lk?this.Fh.appendChild(this.io):this.Fh.removeChild(this.io));if(b.contentWidth!==this.K.contentWidth|| b.contentHeight!==this.K.contentHeight||b.Bk!==this.K.Bk||b.Kc!==this.K.Kc||b.Bf!==this.K.Bf||b.$t!==this.K.$t||b.Zt!==this.K.Zt||b.ph!==this.K.ph||b.Vn!==this.K.Vn||b.Wn!==this.K.Wn||b.Lk!==this.K.Lk||b.Lc!==this.K.Lc){var c=b.Bk&&b.Lk,d=Math.round(b.Bf*100/b.contentWidth),f=Math.round(b.Kc*100/b.contentWidth),l=Math.round(b.Wg*100/b.contentHeight),p=Math.round(b.Lc*100/b.contentHeight);this.Kn.style.opacity=b.$t.toString();this.Kn.style.left=b.Vn+"px";this.Kn.style.right=(c?b.ph:0)+b.Vn+"px";this.Kn.style.height= b.ph+"px";this.Kn.style.bottom=b.Wn+"px";this.Ft.style.backgroundColor=b.Zt;this.Ft.style.borderRadius=Math.floor(b.ph/2)+"px";this.Ft.style.left=f+"%";this.Ft.style.width=d+"%";this.Ft.style.height=b.ph+"px";this.io.style.opacity=b.$t.toString();this.io.style.top=b.Wn+"px";this.io.style.right=b.Vn+"px";this.io.style.width=b.ph+"px";this.io.style.bottom=(c?b.ph:0)+b.Wn+"px";this.pu.style.backgroundColor=b.Zt;this.pu.style.borderRadius=Math.floor(b.ph/2)+"px";this.pu.style.top=p+"%";this.pu.style.width= b.ph+"px";this.pu.style.height=l+"%"}};return e}(n)}); define("tdv/view/core/visuals/dom/DOMImageVisuals","require exports tdv/view/core/visuals/dom/DOMUIBaseVisuals tdv/view/core/visualprops/ImageVisualProperties tdv/player/view/util/Device tdv/view/constants/Alignment".split(" "),function(a,m,h,n,g,k){return function(e){function b(){var c=e.call(this)||this;c.BA=null;return c}P(b,e);b.prototype.tp=function(){return new n};b.prototype.kA=function(){e.prototype.kA.call(this);this.tk(this.lLa())};b.prototype.lLa=function(){this.BA||(this.BA=document.createElement("div"), this.BA.style.position="static",this.BA.style.overflow="hidden",this.BA.style.cursor="inherit");return this.BA};b.prototype.rh=function(c){e.prototype.rh.call(this,c);this.wsa(c)};b.prototype.wsa=function(c){if(c.image!==this.K.image&&(this.K.image&&this.K.image.parentElement===this.BA&&this.BA.removeChild(this.K.image),c.image)){var d=c.image;this.BA.appendChild(d);d.style.position="static";d.style.cursor="inherit";d.style.display="inline";d.style.verticalAlign="top";d.style.visibility="hidden"; d.style.pointerEvents="none";d.style.userSelect="none";d.style.visibility="inherit";d.style.webkitUserSelect="none";d.style.touchCallout="none";d.style.webkitTouchCallout="none";g.Yb()==g.Pp&&g.ub()&&(d.style.transform="translate3d(0,0,0)")}if(c.image!==this.K.image||c.contentWidth!==this.K.contentWidth||c.contentHeight!==this.K.contentHeight||c.width!==this.K.width||c.height!==this.K.height||c.Dd!==this.K.Dd||c.Ce!==this.K.Ce||c.ie!==this.K.ie||c.Df!==this.K.Df||c.borderTopLeftRadius!==this.K.borderTopLeftRadius|| c.borderTopRightRadius!==this.K.borderTopRightRadius||c.borderBottomRightRadius!==this.K.borderBottomRightRadius||c.borderBottomLeftRadius!==this.K.borderBottomLeftRadius||c.Ue!==this.K.Ue||c.xf!==this.K.xf||c.wf!==this.K.wf||c.Te!==this.K.Te||c.Yh!==this.K.Yh||c.verticalAlign!==this.K.verticalAlign){d=[Math.max(0,c.borderTopLeftRadius-Math.max(c.Ue,c.Te)),Math.max(0,c.borderTopRightRadius-Math.max(c.Ue,c.xf)),Math.max(0,c.borderBottomRightRadius-Math.max(c.wf,c.xf)),Math.max(0,c.borderBottomLeftRadius- Math.max(c.wf,c.Te))];var f=c.width-c.Dd-c.Ce,l=c.height-c.ie-c.Df,p=this.lLa();p.style.width=f+"px";p.style.height=l+"px";p.style.borderTopLeftRadius=d[0]+"px";p.style.borderTopRightRadius=d[1]+"px";p.style.borderBottomRightRadius=d[2]+"px";p.style.borderBottomLeftRadius=d[3]+"px";if(c.image){c.image.style.width=c.contentWidth+"px";c.image.style.height=c.contentHeight+"px";switch(c.Yh){case k.fb:c.image.style.marginLeft="0px";c.image.style.marginRight=f-c.contentWidth+"px";break;case k.Db:c.image.style.marginLeft= f-c.contentWidth+"px";c.image.style.marginRight="0px";break;case k.$e:c.image.style.marginLeft=Math.floor((f-c.contentWidth)*.5)+"px",c.image.style.marginRight=Math.ceil((f-c.contentWidth)*.5)+"px"}switch(c.verticalAlign){case k.Tc:c.image.style.marginTop="0px";c.image.style.marginBottom=l-c.contentHeight+"px";break;case k.Gc:c.image.style.marginTop=l-c.contentHeight+"px";c.image.style.marginBottom="0px";break;case k.$d:c.image.style.marginTop=Math.floor((l-c.contentHeight)*.5)+"px",c.image.style.marginBottom= Math.ceil((l-c.contentHeight)*.5)+"px"}}}};return b}(h)}); define("tdv/view/core/visuals/dom/DOMLabelVisuals","require exports tdv/view/core/visuals/dom/DOMUIBaseVisuals tdv/view/core/visualprops/LabelVisualProperties tdv/view/constants/Alignment tdv/view/constants/Direction tdv/view/util/Font".split(" "),function(a,m,h,n,g,k,e){return function(b){function c(){var d=b.call(this)||this;d.span=null;return d}P(c,b);c.prototype.wJ=function(){var d=this.span.clientWidth,f=this.span.clientHeight;this.span.style.fontStyle==="italic"&&(d+=f*1/5);return Math.round(d)}; c.prototype.vJ=function(){return this.span.clientHeight};c.prototype.tp=function(){return new n};c.prototype.kA=function(){b.prototype.kA.call(this);this.tk(this.Vfb())};c.prototype.Vfb=function(){this.span||(this.span=document.createElement("span"),this.span.style.right="auto",this.span.style.bottom="auto",this.span.style.position="absolute",this.span.style.textAlign="center",this.span.style.cursor="inherit",this.span.style.whiteSpace="nowrap",this.span.style.transform="translate3d(0, 0, 0)");return this.span}; c.prototype.rh=function(d){b.prototype.rh.call(this,d);this.Isa(d)};c.prototype.Isa=function(d){var f=!1;if(d.direction!==this.K.direction||d.text!==this.K.text){switch(d.direction){case k.Uk:this.span.style.lineHeight="100%";this.span.innerHTML=d.text.split("").join("
");break;default:this.span.style.lineHeight="normal",this.span.textContent=d.text,this.span.innerHTML=this.span.innerHTML.split(" ").join(" ")}f=!0}d.fontFamily!==this.K.fontFamily&&(this.span.style.fontFamily=e.qA(d.fontFamily|| ""),f=!0);d.fontSize!==this.K.fontSize&&(this.span.style.fontSize=d.fontSize!==void 0?d.fontSize+"px":"",f=!0);d.xt!==this.K.xt&&(this.span.style.color=d.xt||"",f=!0);d.fontWeight!==this.K.fontWeight&&(this.span.style.fontWeight=d.fontWeight,f=!0);d.fontStyle!==this.K.fontStyle&&(this.span.style.fontStyle=d.fontStyle,f=!0);d.textDecoration!==this.K.textDecoration&&(this.span.style.textDecoration=d.textDecoration,f=!0);if(f||d.width!==this.K.width||d.height!==this.K.height||d.Dd!==this.K.Dd||d.Ce!== this.K.Ce||d.ie!==this.K.ie||d.Df!==this.K.Df||d.Yh!==this.K.Yh||d.verticalAlign!==this.K.verticalAlign){f=d.width-d.Dd-d.Ce;var l=d.height-d.ie-d.Df,p=this.wJ(),q=this.vJ();switch(d.Yh){case g.fb:this.span.style.left="0";break;case g.Db:this.span.style.left=f-p+"px";break;case g.$e:this.span.style.left=Math.max(0,Math.round((f-p)*.5))+"px"}switch(d.verticalAlign){case g.Tc:this.span.style.top="0";break;case g.Gc:this.span.style.top=l-q+"px";break;case g.$d:this.span.style.top=Math.max(0,Math.round((l- q)*.5))+"px"}}if(d.ku!==this.K.ku||d.lu!==this.K.lu||d.eo!==this.K.eo||d.gx!==this.K.gx||d.bx!==this.K.bx)this.span.style.textShadow=[d.ku+"px",d.lu+"px",d.eo+"px","rgba("+parseInt("0x"+d.bx.substring(1,2))+", "+parseInt("0x"+d.bx.substring(3,2))+", "+parseInt("0x"+d.bx.substring(5,2))+", "+d.gx+")"].join(" ")};return c}(h)}); define("tdv/view/core/visuals/dom/DOMHTMLVisuals",["require","exports","tdv/view/core/visuals/dom/DOMUIBaseVisuals","tdv/view/core/visualprops/HTMLVisualProperties"],function(a,m,h,n){return function(g){function k(){return g.call(this)||this}P(k,g);k.prototype.tp=function(){return new n};k.prototype.rh=function(e){g.prototype.rh.call(this,e);this.vsa(e)};k.prototype.vsa=function(e){if(e.td!==this.K.td&&(this.K.td&&this.X9(this.K.td),e.td)){var b=e.td;b.style.position="absolute";b.style.left="0";b.style.top= "0";this.tk(e.td)}};k.prototype.qoa=function(){return this.K&&this.K.td?this.K.td.clientWidth:0};k.prototype.poa=function(){return this.K&&this.K.td?this.K.td.clientHeight:0};return k}(h)});define("tdv/view/core/visuals/VisualsType",["require","exports"],function(){return{DOM:"DOM",lUa:"Canvas"}}); define("tdv/view/core/visuals/dom/DOMVisualsFactory","require exports tdv/view/core/visuals/dom/DOMUIBaseVisuals tdv/view/core/visuals/dom/DOMCanvasVisuals tdv/view/core/visuals/dom/DOMContainerVisuals tdv/view/core/visuals/dom/DOMImageVisuals tdv/view/core/visuals/dom/DOMLabelVisuals tdv/view/core/visuals/dom/DOMHTMLVisuals tdv/view/canvas/Canvas tdv/view/core/UIComponent tdv/view/containers/Container tdv/view/images/Image tdv/view/html/HTML tdv/view/text/Label tdv/view/core/visuals/VisualsType".split(" "),function(a, m,h,n,g,k,e,b,c,d,f,l,p,q,r){return function(){function t(){}t.prototype.create=function(u){if(u instanceof p)return new b;if(u instanceof c)return new n;if(u instanceof l)return new k;if(u instanceof q)return new e;if(u instanceof f)return new g;if(u instanceof d)return new h;throw Error("Invalid UI instance");};t.prototype.getType=function(){return r.DOM};t.sJ=function(){t.Qo||(t.Qo=new t);return t.Qo};return t}()}); define("tdv/view/events/GestureEvent",["require","exports","tdv/events/Event"],function(a,m,h){return function(n){function g(k,e,b,c,d,f,l,p){k=n.call(this,k)||this;k.scale=typeof e==="number"?e:1;k.rotation=typeof b==="number"?b:0;k.x=c||0;k.y=d||0;k.pageX=f||0;k.pageY=l||0;k.touches=p||[];return k}P(g,n);return g}(h)}); define("tdv/view/core/eventmanager/mousetouch/MouseTouchEventManager","require exports tdv/utils tdv/constants/EventName tdv/player/view/util/Device tdv/player/view/util/URL tdv/view/events/GestureEvent tdv/view/events/MouseEvent tdv/view/util/UserInitiatedAction".split(" "),function(a,m,h,n,g,k,e,b,c){a=function(){function p(q){this.V0=[];this.IAa=0;this.Z_a=500;this.ne=1;this.jl=0;this.component=q;this.mT=this.mT.bind(this);this.pT=this.pT.bind(this);this.S2=this.S2.bind(this);this.Sha=this.Sha.bind(this); this.MV=this.MV.bind(this);this.LV=this.LV.bind(this);this.DD=this.DD.bind(this)}p.prototype.Ihb=function(){return g.Jp()};p.prototype.hRa=function(q){this.HS!==q&&((this.HS=q)?this.QG():this.KG(),this.Rva())};p.prototype.oLa=function(){return this.HS||!1};p.prototype.wa=function(){return this.component.wa()};p.prototype.nGa=function(q,r){this.component.o(new b(n.Sa,q.x,q.y,q.pageX,q.pageY,void 0,void 0,r))};p.prototype.oGa=function(q,r){this.component.o(new b(n.gb,q.x,q.y,q.pageX,q.pageY,void 0, void 0,r))};p.prototype.pGa=function(q,r){this.component.o(new b(n.$a,q.x,q.y,q.pageX,q.pageY,void 0,void 0,r))};p.prototype.J$a=function(q,r,t){this.component.o(new b(n.Qk,q.x,q.y,q.pageX,q.pageY,r.delta,r.lA,t))};p.prototype.kGa=function(q){this.component.o(new b(n.ma,q.x,q.y,q.pageX,q.pageY))};p.prototype.lGa=function(q){this.component.o(new b(n.fi,q.x,q.y,q.pageX,q.pageY))};p.prototype.I$a=function(q,r,t){this.component.o(new e(n.HB,q,r,t.x,t.y,t.pageX,t.pageY,t.touches))};p.prototype.E$a=function(q, r,t){this.component.o(new e(n.Mba,q,r,t.x,t.y,t.pageX,t.pageY,t.touches))};p.prototype.F$a=function(q,r,t){this.component.o(new e(n.WK,q,r,t.x,t.y,t.pageX,t.pageY,t.touches))};p.prototype.G$a=function(q){this.component.o(new e(n.UUa,void 0,q))};p.prototype.H$a=function(q){this.component.o(new e(n.XK,q))};p.prototype.sm=function(){var q=this.component.getParent();if(q)return q.mLa()};p.prototype.MV=function(q){q.stopImmediatePropagation();this.Yea(["touchend"]);this.Uza(q)?this.JDa(q):this.QDa(q,!0)}; p.prototype.QDa=function(q,r){var t,u=this.fH(q);r&&this.w$a(u);this.nGa(u,q);(t=this.sm())===null||t===void 0||t.QDa(q,r&&this.component.get("propagateClick"))};p.prototype.LV=function(q){q.preventDefault();q.stopImmediatePropagation();this.Uza(q)?this.HDa(q):this.PDa(q)};p.prototype.PDa=function(q){var r,t=this.fH(q);this.v$a(t);this.oGa(t,q);(r=this.sm())===null||r===void 0||r.PDa(q)};p.prototype.Hfa=function(q,r){var t=q.pageX-r.pageX;q=q.pageY-r.pageY;return Math.sqrt(t*t+q*q)};p.prototype.DD= function(q,r){this.Bea(["touchend"]);r!==!1&&q.preventDefault();q.stopImmediatePropagation();this.rN?this.IDa(q):(r=this.fH(q),this.ODa(q,this.Tza(r)),this.Iza(r));this.rN=void 0;this.Rva()};p.prototype.ODa=function(q,r){var t,u=this.fH(q);this.pGa(u,q);this.u$a(r);(t=this.sm())===null||t===void 0||t.ODa(q,r)};p.prototype.w$a=function(q){this.component.bind(n.Eb,this.dGa,this,!0);this.BI=q};p.prototype.v$a=function(q){if(this.BI){q=this.Hfa(this.BI,q);if(g.ub()){var r=this.component.Vb();r=Math.min(r.nb(), r.Mb())*.01*p.LWa}else r=p.TWa;q>r&&this.H5()}};p.prototype.u$a=function(q){this.BI&&(this.kGa(this.BI),q&&this.lGa(this.BI),this.H5())};p.prototype.H5=function(){this.BI&&(this.component.h(n.Eb,this.dGa,this),this.BI=void 0)};p.prototype.dGa=function(){this.H5()};p.prototype.JDa=function(q){var r,t=this.Ofa(q);this.rN=t;this.I$a(t.scale,t.rotation,t.coordinates);(r=this.sm())===null||r===void 0||r.JDa(q)};p.prototype.HDa=function(q){var r,t=this.Ofa(q,this.rN),u=t.rotation-this.rN.rotation,v=t.scale/ this.rN.scale;this.rN=t;this.ne*=v;for(this.jl+=u;this.jl>180;)this.jl-=360;for(;this.jl<-180;)this.jl+=360;this.E$a(this.ne,this.jl,t.coordinates);u!=0&&this.G$a(this.jl);v!=1&&this.H$a(this.ne);this.H5();(r=this.sm())===null||r===void 0||r.HDa(q)};p.prototype.IDa=function(q){var r,t=this.Ofa(q);this.F$a(this.ne,this.jl,t.coordinates);(r=this.sm())===null||r===void 0||r.IDa(q)};p.prototype.mT=function(q){this.Yea(["mouseup"]);q.stopImmediatePropagation();this.KDa(q,!0);f&&this.component.log(q.ctrlKey)}; p.prototype.KDa=function(q,r){var t,u=this.dH(q);r&&this.yZa(u);this.nGa(u,q);(t=this.sm())===null||t===void 0||t.KDa(q,r&&this.component.get("propagateClick"))};p.prototype.pT=function(q){q.preventDefault();q.stopImmediatePropagation();this.component.Vb().OE(this.component);this.LDa(q)};p.prototype.LDa=function(q){var r,t=this.dH(q);this.xZa(t);this.oGa(t,q);(r=this.sm())===null||r===void 0||r.LDa(q)};p.prototype.S2=function(q){this.Bea(["mouseup"]);q.preventDefault();q.stopImmediatePropagation(); var r=this.dH(q);this.MDa(q,this.Tza(r));this.Iza(r)};p.prototype.MDa=function(q,r){var t,u=this.dH(q);this.pGa(u);this.wZa(r);(t=this.sm())===null||t===void 0||t.MDa(q,r)};p.prototype.yZa=function(q){this.component.bind(n.Eb,this.Owa,this,!0);this.GG=q};p.prototype.xZa=function(q){this.GG&&this.Hfa(this.GG,q)>p.CWa&&this.Mda()};p.prototype.wZa=function(q){this.GG&&(this.kGa(this.GG),q&&this.lGa(this.GG),this.Mda())};p.prototype.Mda=function(){this.GG&&(this.component.h(n.Eb,this.Owa,this),this.GG= void 0)};p.prototype.Owa=function(){this.Mda()};p.prototype.Uza=function(q){if((q=this.Lfa(q))&&q.length>1)for(var r=0,t=0;t1))return!0;return!1};p.prototype.D3a=function(q){for(var r=this.wa().cc();q;){if(q==r)return!0;q=q.parentNode}return!1};p.prototype.vwa=function(){return!1};p.prototype.Sha=function(q){this.component.Vb().Rha&&(q.preventDefault(),q.stopImmediatePropagation(),this.NDa(q))};p.prototype.NDa=function(q){var r,t=this.dH(q),u=this.Z1a(q); this.vwa(u)||(r=this.sm())===null||r===void 0||r.NDa(q);this.J$a(t,u,q)};p.prototype.dH=function(q){return this.yya(q.pageX,q.pageY)};p.prototype.Z1a=function(q){var r={};r.delta=Math.max(-1,Math.min(1,-q.deltaY));r.lA=r.delta;return r};p.prototype.yya=function(q,r){var t,u=h.offset(this.wa().cc()),v=((t=this.component.Vb())===null||t===void 0?void 0:t.fD)||1;t={};t.x=(q-u.left)/v;t.y=(r-u.top)/v;t.pageX=q/v;t.pageY=r/v;t.zE=q;t.AE=r;return t};p.prototype.Ofa=function(q,r){var t=this.fH(q);return r? (q=this.Jya(q),{coordinates:t,scale:r.scale*q/r.touchesDistance,rotation:0,touchesDistance:q}):{coordinates:t,scale:1,rotation:0,touchesDistance:this.Jya(q)}};p.prototype.fH=function(q){var r=this.Lfa(q);if(r.length==0)var t=this.A6a;else t={x:0,y:0,pageX:0,pageY:0,zE:0,AE:0,touches:[]},Array.from(r).forEach(function(u){u||(u=r[0]);u=this.yya(u.pageX,u.pageY);t.x+=u.x;t.y+=u.y;t.pageX+=u.pageX;t.pageY+=u.pageY;t.zE+=u.zE;t.AE+=u.AE;t.touches.push(u)}.bind(this)),t.x/=r.length,t.y/=r.length,t.pageX/= r.length,t.pageY/=r.length,t.zE/=r.length,t.AE/=r.length;return this.A6a=t};p.prototype.Lfa=function(q){return q.touches||q.targetTouches||q.changedTouches};p.prototype.Jya=function(q){var r=this.Lfa(q);return r&&r.length>1?(q=Math.abs(r[0].pageX-r[1].pageX),r=Math.abs(r[0].pageY-r[1].pageY),Math.sqrt(q*q+r*r)):0};p.prototype.Rva=function(){this.wa().cc().style["pointer-events"]=this.fza()};p.prototype.fza=function(){return this.HS?"auto":"none"};p.prototype.QG=function(){this.Yea(d)};p.prototype.KG= function(){this.Bea(d)};p.prototype.Yea=function(q){l.includes(this.component)||l.push(this.component);this.V0=h.union(this.V0,q);q=this.Iya(q);for(var r=0;rthis.Z_a||!this.HAa)return!1;q=this.Hfa(this.HAa,q);if(g.ub()){var r= this.component.Vb();r=Math.min(r.nb(),r.Mb())*.01*p.KWa}else r=p.DWa;return q>r?!1:!0};p.TWa=10;p.LWa=5;p.CWa=10;p.KWa=10;p.DWa=10;return p}();var d=function(){var p=[];p=p.concat(["touchstart","touchmove"]);g.Nd()!=g.vj&&(p=p.concat(["mousedown","mousemove","mousewheel"]));return p}(),f=k.Tg("debug"),l=window.enabledComponents=[];return a}); define("tdv/view/core/eventmanager/mousetouch/ScrollableContainerMouseTouchEventManager",["require","exports","tdv/constants/EventName","tdv/view/core/eventmanager/mousetouch/MouseTouchEventManager","tdv/player/view/util/Device"],function(a,m,h,n,g){return function(k){function e(b){var c=k.call(this,b)||this;c.component=b;c.jy=0;c.ky=0;c.lpb=void 0;c.mpb=void 0;c.Wwa=0;c.Uda=void 0;c.Vda=void 0;c.Wda=0;c.Xda=0;c.dn=!1;c.fn=!1;c.EC=c.EC.bind(c);c.ID=c.ID.bind(c);c.Sna();return c}P(e,k);e.prototype.Sna= function(){this.wa().I7().addEventListener("mousedown",this.EC,!1);this.wa().I7().addEventListener("touchstart",this.EC,!1);this.wa().X7().addEventListener("mousedown",this.ID,!1);this.wa().X7().addEventListener("touchstart",this.ID,!1);this.Ihb()?this.component.bind(h.Sa,this.Xwa,this,!1):(this.component.bind(h.Sa,this.GZa,this,!1),this.component.bind(h.uc,this.Sda,this,!1),this.component.bind(h.Eb,this.Rda,this,!1),this.component.bind(h.Qk,this.HZa,this,!1))};e.prototype.wa=function(){return this.component.wa()}; e.prototype.EC=function(){this.component.Ww(!0);this.dn=!0};e.prototype.ID=function(){this.component.Xw(!0);this.fn=!0};e.prototype.Sda=function(){this.component.ZE(!0)};e.prototype.Rda=function(){this.component.ZE(!1)};e.prototype.GZa=function(b){this.component.dn||this.component.fn?(this.component.Vb().bind(h.gb,this.Uwa,this,!1),this.component.Vb().bind(h.$a,this.Vwa,this,!1),this.jy=b.pageX,this.ky=b.pageY):this.Xwa(b)};e.prototype.Uwa=function(b){var c=0,d=0;this.dn&&(c=(b.pageX-this.jy)/this.wa().Kn.clientWidth); this.fn&&(d=(b.pageY-this.ky)/this.wa().io.clientHeight);this.jy=b.pageX;this.ky=b.pageY;c==0&&d==0||this.component.FP(c,d,"content")};e.prototype.Vwa=function(){this.component.Vb().h(h.gb,this.Uwa,this);this.component.Vb().h(h.$a,this.Vwa,this);this.component.Ww(!1);this.component.Xw(!1);this.fn=this.dn=!1};e.prototype.vwa=function(b){return b.delta>0&&this.component.IO()||b.delta<0&&this.component.GO()?!0:!1};e.prototype.HZa=function(b){b=(g.Nd()==g.o_?b.lA*.1:b.delta)*.3;this.component.FP(0,-b, "page")};e.prototype.Xwa=function(b){if(this.component.HO()||this.component.JO())this.component.Vb().bind(h.gb,this.Ywa,this,!1),this.component.Vb().bind(h.$a,this.Zwa,this,!1),this.component.ZE(!0),this.jy=b.pageX,this.ky=b.pageY,this.g3a()};e.prototype.Ywa=function(b){var c=b.pageX-this.jy,d=b.pageY-this.ky;!this.dn&&!this.fn&&c*c+d*d>25&&(this.dn=this.component.HO(),this.fn=this.component.JO(),this.component.Ww(this.dn),this.component.Xw(this.fn));if(this.dn||this.fn)this.component.FP(this.dn? -c:0,this.fn?-d:0),this.jy=b.pageX,this.ky=b.pageY,this.iab()};e.prototype.Zwa=function(){this.component.Vb().h(h.gb,this.Ywa,this);this.component.Vb().h(h.$a,this.Zwa,this);this.component.ZE(!1);var b=Math.max(Math.abs(this.Wda/.001),Math.abs(this.Xda/.001));this.component.hIa(-.5*this.Wda*b,-.5*this.Xda*b,b)};e.prototype.g3a=function(){this.Uda=this.jy;this.Vda=this.ky};e.prototype.iab=function(){var b=(new Date).getTime(),c=b-this.Wwa;c>10&&(this.Wwa=b,this.Wda=(this.jy-this.Uda)/c,this.Xda=(this.ky- this.Vda)/c,this.Uda=this.jy,this.Vda=this.ky)};return e}(n)}); define("tdv/view/core/eventmanager/mousetouch/CloseButtonMouseTouchEventManager",["require","exports","tdv/constants/EventName","tdv/view/core/eventmanager/mousetouch/ScrollableContainerMouseTouchEventManager","tdv/view/util/KeyboardControl"],function(a,m,h,n,g){return function(k){function e(b){b=k.call(this,b)||this;b.az=b.az.bind(b);return b}P(e,k);e.prototype.QG=function(){k.prototype.QG.call(this);g.Oma(this.az)};e.prototype.KG=function(){k.prototype.KG.call(this);g.Gqa(this.az)};e.prototype.az= function(){this.component.o(h.ma)};return e}(n)}); define("tdv/view/core/eventmanager/mousetouch/DropDownMouseTouchEventManager",["require","exports","tdv/constants/EventName","tdv/view/core/eventmanager/mousetouch/ScrollableContainerMouseTouchEventManager","tdv/view/util/KeyboardControl"],function(a,m,h,n,g){return function(k){function e(b){b=k.call(this,b)||this;b.component.nk.bind(h.od,b.x5a,b,!1);b.component.nk.bind(h.jd,b.w5a,b,!0);b.component.bind(h.CB,b.SM,b,!0);b.az=b.az.bind(b);return b}P(e,k);e.prototype.x5a=function(){g.eIa(this,[this.component.je.wa().cc()].concat(this.component.nk.vLa().map(function(b){return b.wa().cc()}))); g.Oma(this.az)};e.prototype.w5a=function(){g.Gqa(this.az);g.Fqa(this)};e.prototype.SM=function(){g.mhb([this.component.je.wa().cc()].concat(this.component.nk.vLa().map(function(b){return b.wa().cc()})))&&this.component.je.wa().cc().focus()};e.prototype.az=function(){this.component.close()};return e}(n)}); define("tdv/view/core/eventmanager/mousetouch/HTMLMouseTouchEventManager",["require","exports","tdv/view/core/eventmanager/mousetouch/MouseTouchEventManager"],function(a,m,h){return function(n){function g(){return n!==null&&n.apply(this,arguments)||this}P(g,n);g.prototype.DD=function(k,e){for(e=k.target;e&&e.tagName!="A"&&e.tagName!="BUTTON";)e=e.parentElement;e=!e;n.prototype.DD.call(this,k,e)};return g}(h)}); define("tdv/view/core/eventmanager/mousetouch/IconButtonMouseTouchEventManager",["require","exports","tdv/view/core/eventmanager/mousetouch/MouseTouchEventManager","tdv/view/constants/Cursor"],function(a,m,h,n){return function(g){function k(e){var b=g.call(this,e)||this;b.LV=function(c){var d=b.fH(c);b.z8(d)?g.prototype.LV.call(b,c):b.iya(d,c)};b.mT=function(c){var d=b.dH(c);b.z8(d)?g.prototype.mT.call(b,c):b.iya(d,c)};b.sfa=!1;b.Lza=!1;return b}P(k,g);k.prototype.iRa=function(e){this.Lza=e};k.prototype.wa= function(){return this.component.wa()};k.prototype.MV=function(e){var b=this.fH(e);this.z8(b)?g.prototype.MV.call(this,e):this.X0a(b,e)};k.prototype.pT=function(e){var b=this.dH(e);if(this.z8(b)||this.sfa)g.prototype.pT.call(this,e),this.component.H9();else{this.sfa=!0;if(b=this.Mfa(b))b.dispatchEvent(this.Pwa(e)),e.preventDefault(),e.stopImmediatePropagation();this.Gya(b)=="pointer"?this.component.H9(n.qf):this.component.H9(n.De);this.sfa=!1}};k.prototype.z8=function(e){return this.Lza||this.component.thb(e)}; k.prototype.iya=function(e,b){if(e=this.Mfa(e))e.dispatchEvent(this.Pwa(b)),b.preventDefault(),b.stopImmediatePropagation()};k.prototype.X0a=function(e,b){if(e=this.Mfa(e))e.dispatchEvent(this.AZa(b)),b.preventDefault(),b.stopImmediatePropagation()};k.prototype.Mfa=function(e){var b=this;this.wa().cc().style.pointerEvents="none";e=document.elementFromPoint(e.zE,e.AE);setTimeout(function(){b.wa().cc().style.pointerEvents=b.fza()},0);return e};k.prototype.Pwa=function(e){return new MouseEvent(e.type, e)};k.prototype.AZa=function(e){return new TouchEvent(e.type,e)};k.prototype.Gya=function(e){if(e){var b=e.style.cursor;b=="inherit"&&(b=this.Gya(e.parentElement))}else b="default";return b};return k}(h)}); define("tdv/view/core/eventmanager/mousetouch/ThumbnailListMouseTouchEventManager","require exports tdv/constants/EventName tdv/view/core/eventmanager/mousetouch/ScrollableContainerMouseTouchEventManager tdv/view/util/KeyboardControl tdv/view/constants/LayoutMode".split(" "),function(a,m,h,n,g,k){return function(e){function b(c){c=e.call(this,c)||this;c.component.bind(h.L("layout"),c.sia,c,!1);c.component.bind(h.L("items"),c.qia,c,!1);return c}P(b,e);b.prototype.QG=function(){e.prototype.QG.call(this); this.Uz()};b.prototype.KG=function(){e.prototype.KG.call(this);this.Uz()};b.prototype.sia=function(){this.Uz()};b.prototype.qia=function(){this.Uz()};b.prototype.Uz=function(){this.HS?this.component.get("layout")==k.Mi?g.Obb(this,this.component.Cb().map(function(c){return c.wa().cc()})):g.eIa(this,this.component.Cb().map(function(c){return c.wa().cc()})):g.Fqa(this)};return b}(n)}); define("tdv/view/core/eventmanager/mousetouch/ThumbnailGridMouseTouchEventManager",["require","exports","tdv/constants/EventName","tdv/view/core/eventmanager/mousetouch/ScrollableContainerMouseTouchEventManager","tdv/view/util/KeyboardControl"],function(a,m,h,n,g){return function(k){function e(b){b=k.call(this,b)||this;b.component.bind(h.L("layout"),b.sia,b,!1);b.component.bind(h.L("items"),b.qia,b,!1);return b}P(e,k);e.prototype.QG=function(){k.prototype.QG.call(this);this.Uz()};e.prototype.KG=function(){k.prototype.KG.call(this); this.Uz()};e.prototype.sia=function(){this.Uz()};e.prototype.qia=function(){this.Uz()};e.prototype.Uz=function(){this.HS?g.Lbb(this,this.component.Cb().map(function(b){return b.wa().cc()}),this.component.Ym.oEa,this.component.Ym.Rwa):g.Fqa(this)};return e}(n)}); define("tdv/view/list/thumblist/ThumbnailListItem","require exports tdv/utils tdv/binding/ChangeWatcher tdv/constants/EventName tdv/view/constants/Alignment tdv/view/constants/CreationPolicy tdv/view/constants/Cursor tdv/view/constants/LayoutMode tdv/view/constants/Position tdv/view/constants/ScaleMode tdv/view/constants/State tdv/view/containers/Container tdv/view/images/Image tdv/view/text/Label".split(" "),function(a,m,h,n,g,k,e,b,c,d,f,l,p,q,r){return function(t){function u(){var v=t.call(this)|| this;v.Hf=null;v.Za=null;v.BG=[];v.set("ariaRole","option");v.set("autoRolledOver",!0);v.set("childrenInteractionEnabled",!1);v.set("contentOpaque",!0);v.set("creationPolicy",e.aL);v.set("cursor",b.qf);return v}P(u,t);u.prototype.Pb=function(){t.prototype.Pb.call(this);this.m("listLayout");this.m("overflow","hidden");this.m("item");this.m("thumbnailUrlFunction",this.xea);this.m("sourceProperties");this.m("labelFunction",this.vea);this.m("labelFontFamily");this.m("labelFontColor");this.m("labelFontSize"); this.m("labelFontStyle");this.m("labelFontWeight");this.m("labelGap");this.m("labelHorizontalAlign");this.m("labelPosition");this.m("labelTextDecoration");this.m("labelTextShadowColor");this.m("labelTextShadowHorizontalLength");this.m("labelTextShadowVerticalLength");this.m("labelTextShadowBlurRadius");this.m("labelTextShadowOpacity");this.m("thumbnailBorderRadius");this.m("thumbnailOpacity");this.m("thumbnailBorderSize");this.m("thumbnailBorderColor");this.m("thumbnailWidth");this.m("thumbnailHeight"); this.m("thumbnailMaxWidth");this.m("thumbnailMaxHeight");this.m("thumbnailShadow");this.m("thumbnailShadowHorizontalLength");this.m("thumbnailShadowVerticalLength");this.m("thumbnailShadowBlurRadius");this.m("thumbnailShadowSpread");this.m("thumbnailShadowColor");this.m("thumbnailShadowOpacity");this.D("rollOverBackgroundOpacity",l.ea,"backgroundOpacity");this.D("rollOverBackgroundBlur",l.ea,"backgroundBlur");this.D("rollOverBackgroundColor",l.ea,"backgroundColor");this.D("rollOverBackgroundColorRatios", l.ea,"backgroundColorRatios");this.D("rollOverBackgroundColorDirection",l.ea,"backgroundColorDirection");this.D("rollOverBorderRadius",l.ea,"borderRadius");this.D("rollOverBorderTopRadius",l.ea,"borderTopRadius");this.D("rollOverBorderBottomRadius",l.ea,"borderBottomRadius");this.D("rollOverBorderLeftRadius",l.ea,"borderLeftRadius");this.D("rollOverBorderRightRadius",l.ea,"borderRightRadius");this.D("rollOverBorderTopLeftRadius",l.ea,"borderTopLeftRadius");this.D("rollOverBorderTopRightRadius",l.ea, "borderTopRightRadius");this.D("rollOverBorderBottomLeftRadius",l.ea,"borderBottomLeftRadius");this.D("rollOverBorderBottomRightRadius",l.ea,"borderBottomRightRadius");this.D("rollOverBorderSize",l.ea,"borderSize");this.D("rollOverBorderLeftSize",l.ea,"borderLeftSize");this.D("rollOverBorderTopSize",l.ea,"borderTopSize");this.D("rollOverBorderRightSize",l.ea,"borderRightSize");this.D("rollOverBorderBottomSize",l.ea,"borderBottomSize");this.D("rollOverBorderColor",l.ea,"borderColor");this.D("rollOverBorderLeftColor", l.ea,"borderLeftColor");this.D("rollOverBorderTopColor",l.ea,"borderTopColor");this.D("rollOverBorderRightColor",l.ea,"borderRightColor");this.D("rollOverBorderBottomColor",l.ea,"borderBottomColor");this.D("rollOverLabelFontColor",l.ea,"labelFontColor");this.D("rollOverLabelFontSize",l.ea,"labelFontSize");this.D("rollOverLabelFontStyle",l.ea,"labelFontStyle");this.D("rollOverLabelFontWeight",l.ea,"labelFontWeight");this.D("rollOverLabelTextDecoration",l.ea,"labelTextDecoration");this.D("rollOverLabelTextShadowColor", l.ea,"labelTextShadowColor");this.D("rollOverLabelTextShadowHorizontalLength",l.ea,"labelTextShadowHorizontalLength");this.D("rollOverLabelTextShadowVerticalLength",l.ea,"labelTextShadowVerticalLength");this.D("rollOverLabelTextShadowBlurRadius",l.ea,"labelTextShadowBlurRadius");this.D("rollOverLabelTextShadowOpacity",l.ea,"labelTextShadowOpacity");this.D("rollOverOpacity",l.ea,"opacity");this.D("rollOverPaddingLeft",l.ea,"paddingLeft");this.D("rollOverPaddingTop",l.ea,"paddingTop");this.D("rollOverPaddingRight", l.ea,"paddingRight");this.D("rollOverPaddingBottom",l.ea,"paddingBottom");this.D("rollOverShadow",l.ea,"shadow");this.D("rollOverThumbnailOpacity",l.ea,"thumbnailOpacity");this.D("rollOverThumbnailBorderSize",l.ea,"thumbnailBorderSize");this.D("rollOverThumbnailBorderColor",l.ea,"thumbnailBorderColor");this.D("rollOverThumbnailShadow",l.ea,"thumbnailShadow");this.D("rollOverThumbnailShadowHorizontalLength",l.ea,"thumbnailShadowHorizontalLength");this.D("rollOverThumbnailShadowVerticalLength",l.ea, "thumbnailShadowVerticalLength");this.D("rollOverThumbnailShadowBlurRadius",l.ea,"thumbnailShadowBlurRadius");this.D("rollOverThumbnailShadowSpread",l.ea,"thumbnailShadowSpread");this.D("rollOverThumbnailShadowColor",l.ea,"thumbnailShadowColor");this.D("rollOverThumbnailShadowOpacity",l.ea,"thumbnailShadowOpacity");this.D("selectedBackgroundOpacity",l.oa,"backgroundOpacity");this.D("selectedBackgroundBlur",l.oa,"backgroundBlur");this.D("selectedBackgroundColor",l.oa,"backgroundColor");this.D("selectedBackgroundColorRatios", l.oa,"backgroundColorRatios");this.D("selectedBackgroundColorDirection",l.oa,"backgroundColorDirection");this.D("selectedBorderRadius",l.oa,"borderRadius");this.D("selectedBorderTopRadius",l.oa,"borderTopRadius");this.D("selectedBorderBottomRadius",l.oa,"borderBottomRadius");this.D("selectedBorderLeftRadius",l.oa,"borderLeftRadius");this.D("selectedBorderRightRadius",l.oa,"borderRightRadius");this.D("selectedBorderTopLeftRadius",l.oa,"borderTopLeftRadius");this.D("selectedBorderTopRightRadius",l.oa, "borderTopRightRadius");this.D("selectedBorderBottomLeftRadius",l.oa,"borderBottomLeftRadius");this.D("selectedBorderBottomRightRadius",l.oa,"borderBottomRightRadius");this.D("selectedBorderSize",l.oa,"borderSize");this.D("selectedBorderLeftSize",l.oa,"borderLeftSize");this.D("selectedBorderTopSize",l.oa,"borderTopSize");this.D("selectedBorderRightSize",l.oa,"borderRightSize");this.D("selectedBorderBottomSize",l.oa,"borderBottomSize");this.D("selectedBorderColor",l.oa,"borderColor");this.D("selectedBorderLeftColor", l.oa,"borderLeftColor");this.D("selectedBorderTopColor",l.oa,"borderTopColor");this.D("selectedBorderRightColor",l.oa,"borderRightColor");this.D("selectedBorderBottomColor",l.oa,"borderBottomColor");this.D("selectedLabelFontColor",l.oa,"labelFontColor");this.D("selectedLabelFontSize",l.oa,"labelFontSize");this.D("selectedLabelFontStyle",l.oa,"labelFontStyle");this.D("selectedLabelFontWeight",l.oa,"labelFontWeight");this.D("selectedLabelTextDecoration",l.oa,"labelTextDecoration");this.D("selectedLabelTextShadowColor", l.oa,"labelTextShadowColor");this.D("selectedLabelTextShadowHorizontalLength",l.oa,"labelTextShadowHorizontalLength");this.D("selectedLabelTextShadowVerticalLength",l.oa,"labelTextShadowVerticalLength");this.D("selectedLabelTextShadowBlurRadius",l.oa,"labelTextShadowBlurRadius");this.D("selectedLabelTextShadowOpacity",l.oa,"labelTextShadowOpacity");this.D("selectedOpacity",l.oa,"opacity");this.D("selectedPaddingLeft",l.oa,"paddingLeft");this.D("selectedPaddingTop",l.oa,"paddingTop");this.D("selectedPaddingRight", l.oa,"paddingRight");this.D("selectedPaddingBottom",l.oa,"paddingBottom");this.D("selectedShadow",l.oa,"shadow");this.D("selectedThumbnailOpacity",l.oa,"thumbnailOpacity");this.D("selectedThumbnailBorderSize",l.oa,"thumbnailBorderSize");this.D("selectedThumbnailBorderColor",l.oa,"thumbnailBorderColor");this.D("selectedThumbnailShadow",l.oa,"thumbnailShadow");this.D("selectedThumbnailShadowHorizontalLength",l.oa,"thumbnailShadowHorizontalLength");this.D("selectedThumbnailShadowVerticalLength",l.oa, "thumbnailShadowVerticalLength");this.D("selectedThumbnailShadowBlurRadius",l.oa,"thumbnailShadowBlurRadius");this.D("selectedThumbnailShadowSpread",l.oa,"thumbnailShadowSpread");this.D("selectedThumbnailShadowColor",l.oa,"thumbnailShadowColor");this.D("selectedThumbnailShadowOpacity",l.oa,"thumbnailShadowOpacity")};u.prototype.oZ=function(v){this.gV(v)};u.prototype.Kb=function(){t.prototype.Kb.call(this);this.Hf||(this.Hf=new q,this.mb(this.Hf),this.Hf.set("horizontalAlign",k.$e),this.Hf.set("verticalAlign", k.$d),this.Hf.bind(g.ia,this.gla,this,!1));this.Za||(this.Za=new r,this.mb(this.Za))};u.prototype.xea=function(v){if(h.EA(v))return v;if(v&&v.lsa)return v.lsa};u.prototype.vea=function(v){if(v&&v.label)return v.label};u.prototype.Vx=function(){return this.Za&&this.Za.get("text")||t.prototype.Vx.call(this)};u.prototype.jb=function(){if(this.S("sourceProperties")||this.S("item")){for(;this.BG.length;)this.BG.pop().gF();var v=this.G("sourceProperties"),w=this.G("item");v&&w&&v.forEach(function(x){this.BG.push(n.kx(w, x,this.Bia,this,!0))}.bind(this))}if(this.S("sourceProperties")||this.S("item")||this.S("tooltipFunction"))v=this.G("item"),v=this.G("tooltipFunction")(v),this.set("toolTip",v);if(this.S("sourceProperties")||this.S("item")||this.S("thumbnailUrlFunction"))v=this.G("item"),(v=this.G("thumbnailUrlFunction")(v))?this.Hf.get("url")!=v&&this.Hf.xa({url:v,visible:!0,opacity:.5}):this.Hf.xa({url:void 0,visible:!1}),this.$("thumbnailUrlFunction");if(this.S("sourceProperties")||this.S("item")||this.S("labelFunction"))v= this.G("item"),v=this.G("labelFunction")(v),this.Za.xa({text:v,visible:v?!0:!1}),this.$("labelFunction");this.$("sourceProperties");this.$("item");if(this.S("listLayout"))switch(this.G("listLayout")){case c.Uk:this.xa({width:"100%",height:void 0});break;default:this.xa({height:"100%",width:void 0})}if(this.S("labelPosition")||this.S("listLayout")||this.S("thumbnailWidth")||this.S("thumbnailHeight")){var y=this;v=function(x,z){x=y.G(x);x===void 0&&(x=z);return x};switch(this.G("labelPosition")){case d.fb:case d.Db:this.set("layout", c.Mi);this.Za.set("width","100%");switch(this.G("listLayout")){case c.Uk:this.Hf.xa({height:v("thumbnailHeight"),width:v("thumbnailWidth"),scaleMode:v("thumbnailScaleMode",f.Pk)});break;default:this.Hf.xa({height:v("thumbnailHeight","100%"),width:v("thumbnailWidth"),scaleMode:v("thumbnailScaleMode",f.Pk)})}break;default:switch(this.set("layout",c.Uk),this.Za.set("width",void 0),this.G("listLayout")){case c.Uk:this.Hf.xa({height:v("thumbnailHeight"),width:v("thumbnailWidth","100%"),scaleMode:v("thumbnailScaleMode", f.Tp)});break;default:this.Hf.xa({height:v("thumbnailHeight","100%"),width:v("thumbnailWidth"),scaleMode:v("thumbnailScaleMode",f.Pk)})}}switch(this.G("labelPosition")){case d.fb:case d.Tc:this.pr(this.Za,0);break;default:this.pr(this.Za,1)}this.$("labelPosition")}this.$("listLayout");this.Oc(u.yca,u.eR,[this],!0,!0);this.Oc(u.Aca,u.eR,[this.Hf],!0,!0);this.Oc(u.zca,u.eR,[this.Za],!0,!0);t.prototype.jb.call(this)};u.prototype.Bia=function(){this.yD("item")};u.prototype.rI=function(v){t.prototype.rI.call(this, v)};u.prototype.gla=function(){this.Hf.set("opacity",1)};u.yca=["labelGap"];u.Aca="thumbnailBorderColor thumbnailBorderRadius thumbnailBorderSize thumbnailMaxWidth thumbnailMaxHeight thumbnailOpacity thumbnailShadow thumbnailShadowHorizontalLength thumbnailShadowVerticalLength thumbnailShadowBlurRadius thumbnailShadowSpread thumbnailShadowColor thumbnailShadowOpacity".split(" ");u.zca="labelFontFamily labelFontColor labelFontSize labelFontStyle labelFontWeight labelHorizontalAlign labelTextDecoration labelTextShadowColor labelTextShadowHorizontalLength labelTextShadowVerticalLength labelTextShadowBlurRadius labelTextShadowOpacity".split(" "); u.eR={labelFontFamily:"fontFamily",labelFontColor:"fontColor",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelFontWeight:"fontWeight",labelGap:"gap",labelHorizontalAlign:"horizontalAlign",labelTextDecoration:"textDecoration",labelTextShadowColor:"textShadowColor",labelTextShadowHorizontalLength:"textShadowHorizontalLength",labelTextShadowVerticalLength:"textShadowVerticalLength",labelTextShadowBlurRadius:"textShadowBlurRadius",labelTextShadowOpacity:"textShadowOpacity",thumbnailMaxWidth:"maxWidth", thumbnailMaxHeight:"maxHeight",thumbnailBorderRadius:"borderRadius",thumbnailOpacity:"opacity",thumbnailBorderSize:"borderSize",thumbnailBorderColor:"borderColor",thumbnailShadow:"shadow",thumbnailShadowHorizontalLength:"shadowHorizontalLength",thumbnailShadowVerticalLength:"shadowVerticalLength",thumbnailShadowBlurRadius:"shadowBlurRadius",thumbnailShadowSpread:"shadowSpread",thumbnailShadowColor:"shadowColor",thumbnailShadowOpacity:"shadowOpacity"};return u}(p)}); define("tdv/view/list/thumblist/ThumbnailList","require exports tdv/events/Event tdv/view/constants/Alignment tdv/constants/EventName tdv/view/constants/LayoutMode tdv/view/constants/OverflowPolicy tdv/view/constants/Position tdv/view/containers/Container tdv/view/list/thumblist/ThumbnailListItem".split(" "),function(a,m,h,n,g,k,e,b,c,d){return function(f){function l(){var p=f.call(this)||this;p.An=!1;p.set("ariaRole","listbox");p.set("contentOpaque",!0);p.bind(g.L("selectedIndex"),p.y7a,p,!1);p.bind(g.$b, p.p$a,p,!1);return p}P(l,f);l.prototype.Pb=function(){f.prototype.Pb.call(this);this.m("layout",k.Mi);this.m("selectedIndex",-1);this.m("items",[]);this.m("overflow",e.Ur);this.m("itemHorizontalAlign",n.$e);this.m("itemLabelFontFamily");this.m("itemLabelPosition",b.Gc);this.m("itemLabelFunction");this.m("itemLabelGap");this.m("itemLabelHorizontalAlign",n.$e);this.m("itemThumbnailBorderRadius");this.m("itemThumbnailScaleMode");this.m("itemThumbnailWidth");this.m("itemThumbnailHeight");this.m("itemThumbnailMaxWidth"); this.m("itemThumbnailMaxHeight");this.m("itemThumbnailUrlFunction");this.m("itemTooltipFunction");this.m("itemSourceProperties");this.m("itemVerticalAlign",n.$d);this.m("itemBackgroundOpacity");this.m("itemBackgroundBlur");this.m("itemBackgroundColor");this.m("itemBackgroundColorRatios");this.m("itemBackgroundColorDirection");this.m("itemBorderRadius");this.m("itemBorderTopRadius");this.m("itemBorderBottomRadius");this.m("itemBorderLeftRadius");this.m("itemBorderRightRadius");this.m("itemBorderTopLeftRadius"); this.m("itemBorderTopRightRadius");this.m("itemBorderBottomLeftRadius");this.m("itemBorderBottomRightRadius");this.m("itemBorderSize");this.m("itemBorderLeftSize");this.m("itemBorderTopSize");this.m("itemBorderRightSize");this.m("itemBorderBottomSize");this.m("itemBorderColor");this.m("itemBorderLeftColor");this.m("itemBorderTopColor");this.m("itemBorderRightColor");this.m("itemBorderBottomColor");this.m("itemLabelFontColor");this.m("itemLabelFontSize");this.m("itemLabelFontStyle");this.m("itemLabelFontWeight"); this.m("itemLabelTextDecoration");this.m("itemLabelTextShadowColor");this.m("itemLabelTextShadowHorizontalLength");this.m("itemLabelTextShadowVerticalLength");this.m("itemLabelTextShadowBlurRadius");this.m("itemLabelTextShadowOpacity");this.m("itemOpacity");this.m("itemPaddingLeft");this.m("itemPaddingTop");this.m("itemPaddingRight");this.m("itemPaddingBottom");this.m("itemShadow");this.m("itemThumbnailOpacity");this.m("itemThumbnailBorderSize");this.m("itemThumbnailBorderColor");this.m("itemThumbnailShadow"); this.m("itemThumbnailShadowHorizontalLength");this.m("itemThumbnailShadowVerticalLength");this.m("itemThumbnailShadowBlurRadius");this.m("itemThumbnailShadowSpread");this.m("itemThumbnailShadowColor");this.m("itemThumbnailShadowOpacity");this.m("rollOverItemBackgroundOpacity");this.m("rollOverItemBackgroundBlur");this.m("rollOverItemBackgroundColor");this.m("rollOverItemBackgroundColorRatios");this.m("rollOverItemBackgroundColorDirection");this.m("rollOverItemBorderRadius");this.m("rollOverItemBorderTopRadius"); this.m("rollOverItemBorderBottomRadius");this.m("rollOverItemBorderLeftRadius");this.m("rollOverItemBorderRightRadius");this.m("rollOverItemBorderTopLeftRadius");this.m("rollOverItemBorderTopRightRadius");this.m("rollOverItemBorderBottomLeftRadius");this.m("rollOverItemBorderBottomRightRadius");this.m("rollOverItemBorderSize");this.m("rollOverItemBorderLeftSize");this.m("rollOverItemBorderTopSize");this.m("rollOverItemBorderRightSize");this.m("rollOverItemBorderBottomSize");this.m("rollOverItemBorderColor"); this.m("rollOverItemBorderLeftColor");this.m("rollOverItemBorderTopColor");this.m("rollOverItemBorderRightColor");this.m("rollOverItemBorderBottomColor");this.m("rollOverItemLabelFontSize");this.m("rollOverItemLabelFontStyle");this.m("rollOverItemLabelFontWeight");this.m("rollOverItemLabelTextDecoration");this.m("rollOverItemLabelTextShadowColor");this.m("rollOverItemLabelTextShadowHorizontalLength");this.m("rollOverItemLabelTextShadowVerticalLength");this.m("rollOverItemLabelTextShadowBlurRadius"); this.m("rollOverItemLabelTextShadowOpacity");this.m("rollOverItemOpacity");this.m("rollOverItemPaddingLeft");this.m("rollOverItemPaddingTop");this.m("rollOverItemPaddingRight");this.m("rollOverItemPaddingBottom");this.m("rollOverItemShadow");this.m("rollOverItemThumbnailOpacity");this.m("rollOverItemThumbnailBorderSize");this.m("rollOverItemThumbnailBorderColor");this.m("rollOverItemThumbnailShadow");this.m("rollOverItemThumbnailShadowHorizontalLength");this.m("rollOverItemThumbnailShadowVerticalLength"); this.m("rollOverItemThumbnailShadowBlurRadius");this.m("rollOverItemThumbnailShadowSpread");this.m("rollOverItemThumbnailShadowColor");this.m("rollOverItemThumbnailShadowOpacity");this.m("selectedItemBackgroundOpacity");this.m("selectedItemBackgroundBlur");this.m("selectedItemBackgroundColor");this.m("selectedItemBackgroundColorRatios");this.m("selectedItemBackgroundColorDirection");this.m("selectedItemBorderRadius");this.m("selectedItemBorderTopRadius");this.m("selectedItemBorderBottomRadius");this.m("selectedItemBorderLeftRadius"); this.m("selectedItemBorderRightRadius");this.m("selectedItemBorderTopLeftRadius");this.m("selectedItemBorderTopRightRadius");this.m("selectedItemBorderBottomLeftRadius");this.m("selectedItemBorderBottomRightRadius");this.m("selectedItemBorderSize");this.m("selectedItemBorderLeftSize");this.m("selectedItemBorderTopSize");this.m("selectedItemBorderRightSize");this.m("selectedItemBorderBottomSize");this.m("selectedItemBorderColor");this.m("selectedItemBorderLeftColor");this.m("selectedItemBorderTopColor"); this.m("selectedItemBorderRightColor");this.m("selectedItemBorderBottomColor");this.m("selectedItemLabelFontSize");this.m("selectedItemLabelFontStyle");this.m("selectedItemLabelFontWeight");this.m("selectedItemLabelTextDecoration");this.m("selectedItemLabelTextShadowColor");this.m("selectedItemLabelTextShadowHorizontalLength");this.m("selectedItemLabelTextShadowVerticalLength");this.m("selectedItemLabelTextShadowBlurRadius");this.m("selectedItemLabelTextShadowOpacity");this.m("selectedItemOpacity"); this.m("selectedItemPaddingLeft");this.m("selectedItemPaddingTop");this.m("selectedItemPaddingRight");this.m("selectedItemPaddingBottom");this.m("selectedItemShadow");this.m("selectedItemThumbnailOpacity");this.m("selectedItemThumbnailBorderSize");this.m("selectedItemThumbnailBorderColor");this.m("selectedItemThumbnailShadow");this.m("selectedItemThumbnailShadowHorizontalLength");this.m("selectedItemThumbnailShadowVerticalLength");this.m("selectedItemThumbnailShadowBlurRadius");this.m("selectedItemThumbnailShadowSpread"); this.m("selectedItemThumbnailShadowColor");this.m("selectedItemThumbnailShadowOpacity")};l.prototype.RS=function(p){this.An=!0;this.set("selectedIndex",this.Sfa(p.source))};l.prototype.y7a=function(){this.xEa()};l.prototype.p$a=function(){setTimeout(function(){this.xEa()}.bind(this),100)};l.prototype.xEa=function(){var p=this.get("selectedIndex"),q=this.Cb();p>=0&&pp.length){for(t=p.length;tq.length){for(t=q.length;t=0&&x;w--)y.includes(this.zR[w])?x=!1:this.zR[w].o(new q(n.Eb));for(w=0;w=0&&x>=0&&yw?y:w)/(this.m6>this.l6?this.m6:this.l6),z=Math.round(y/x),A=Math.round(w/x);this.fD=x;this.Kd.style.left=Math.round((y- z)*.5)+"px";this.Kd.style.top=Math.round((w-A)*.5)+"px";this.Kd.style.right="auto";this.Kd.style.bottom="auto";this.Kd.style.width=z+"px";this.Kd.style.height=A+"px";this.Kd.style.transform="scale("+[x,x].join(", ")+")";this.Kd.style.position="absolute"}else y=document.body.clientWidth,w=document.body.clientHeight,this.Kd.style.left="0",this.Kd.style.top="0",this.Kd.style.right="auto",this.Kd.style.bottom="auto",this.Kd.style.width=y+"px",this.Kd.style.height=w+"px",this.fD=1};v.prototype.nZa=function(){this.Kd.style.position= "absolute";this.Kd.style.left="0";this.Kd.style.top="0";this.Kd.style.right="0";this.Kd.style.bottom="0";this.Kd.style.width="auto";this.Kd.style.height="auto";this.Kd.style.transform="";this.fD=1};v.prototype.L9a=function(){this.LFa();var w=this;this.TU=setTimeout(function(){w.TU=null;w.lc()},this.v3a)};v.prototype.LFa=function(){this.TU&&(clearTimeout(this.TU),this.TU=null)};v.prototype.u1=function(){this.Ewa()};return v}(g)}); define("tdv/view/containers/XRPanels",["require","exports","tdv/constants/EventName","tdv/player/view/util/XR","tdv/binding/BindingsHandler"],function(a,m,h,n,g){return function(){function k(e){this.dg=e;this.HK=this.HK.bind(this);this.xQ=[];this.Nma=[];n.M.bind(h.V,this.Ta,this,!0);this.HK()}k.prototype.dispose=function(){n.M.h(h.V,this.Ta,this);this.set([])};k.prototype.set=function(e){var b=this,c=e.filter(function(f){return!b.xQ.includes(f)}),d=this.xQ.filter(function(f){return!e.includes(f)}); c.forEach(function(f){f.Zqa(b.dg);b.bcb(f)});d.forEach(function(f){f.Zqa(null);b.Kjb(f);f.Fna()});this.xQ=e;this.HK()};k.prototype.get=function(){return this.xQ};k.prototype.bcb=function(e){g.ba(e,["modal","content.visible"],this.HK,!1)};k.prototype.Kjb=function(e){g.da(e,["modal","content.visible"],this.HK)};k.prototype.Ta=function(){this.HK()};k.prototype.HK=function(){function e(l){return l.get("modal")&&(l.get("content")?l.get("content").get("visible"):!1)}var b=this,c=[];if(n.isPresenting){var d= this.xQ.filter(function(l){return e(l)}),f=this.xQ.filter(function(l){return!e(l)});c=d.length>0?[d[d.length-1]]:f}c.filter(function(l){return!b.Nma.includes(l)}).forEach(function(l){return l.OJa()});this.Nma.filter(function(l){return!c.includes(l)}).forEach(function(l){return l.Fna()});this.Nma=c};return k}()}); define("tdv/view/util/Orientation","require exports tdv/view/core/ZIndex tdv/view/util/Assets tdv/view/util/Fullscreen tdv/constants/EventName tdv/events/EventDispatcher tdv/player/l10n tdv/player/view/util/Device".split(" "),function(a,m,h,n,g,k,e,b,c){function d(){q=TDV.qb.Et();var v=p||q;l!=v&&(l=v,f.o(k.V));v=!!p&&q!=p&&c.ub();r!=v&&(t||(t=document.createElement("div"),t.style.position="fixed",t.style.zIndex=h.MUa.toString(),t.style.left="0",t.style.top="0",t.style.margin="0",t.style.padding= "0",t.style.height="100%",t.style.width="100%",t.style.backgroundColor="rgba(255, 255, 255, 0.99)",t.innerHTML=['
\n
','','
'+b("rotate-device")+"
", "
\n
"].join("\n"),u=t.querySelector("img")),r&&t.parentElement.removeChild(t),(r=v)&&(g.enabled()?g.fullscreenElement():document.body).appendChild(t));r&&(u.style.transform=l==f.JVa?"translate(-11%, 0) rotate(-90deg)":"none")}var f=new e;f.Iob=TDV.qb.Vba;f.JVa=TDV.qb.Wba;f.Vw=function(v){p!=v&&(p=v,d())};f.qLa=function(){return p};f.get=function(){return l};var l=void 0,p=void 0,q=void 0,r=!1,t=null,u=null;window.addEventListener("resize",function(){d();setTimeout(d,500)},!0);try{window.screen.orientation.addEventListener("change", d)}catch(v){window.addEventListener("orientationchange",d,!1)}d();return f}); define("tdv/player/script/Player","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/player/constants/RotationMode tdv/player/parser/ClassInfo tdv/player/AppInfo tdv/player/l10n tdv/player/script/helper/ButtonProperty tdv/player/view/AcademicWatermark tdv/player/view/CookiesBar tdv/player/view/DownloadBar tdv/player/view/MessageWindow tdv/player/view/UserInteractionWindow tdv/player/view/panorama/renderer/Renderer tdv/player/view/panorama/renderer/3d/util/TextureUtil tdv/player/view/util/Capabilities tdv/player/view/util/Device tdv/player/view/util/Gyroscope tdv/player/view/util/Installer tdv/player/view/util/LibsLoader tdv/player/view/util/Preloader tdv/player/view/util/URL tdv/player/view/util/XR tdv/view/constants/ButtonMode tdv/view/containers/Application tdv/view/containers/Container tdv/view/containers/XRPanels tdv/view/containers/layout/VerticalLayout tdv/view/util/Fullscreen tdv/view/util/AudioActivation tdv/view/util/Orientation tdv/view/util/UserInitiatedAction tdv/util/Storage".split(" "),function(a){var m= a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/player/constants/RotationMode"),k=a("tdv/player/parser/ClassInfo"),e=a("tdv/player/AppInfo"),b=a("tdv/player/l10n"),c=a("tdv/player/script/helper/ButtonProperty"),d=a("tdv/player/view/AcademicWatermark"),f=a("tdv/player/view/CookiesBar"),l=a("tdv/player/view/DownloadBar"),p=a("tdv/player/view/MessageWindow"),q=a("tdv/player/view/UserInteractionWindow");a("tdv/player/view/panorama/renderer/Renderer");var r=a("tdv/player/view/panorama/renderer/3d/util/TextureUtil"), t=a("tdv/player/view/util/Capabilities"),u=a("tdv/player/view/util/Device"),v=a("tdv/player/view/util/Gyroscope"),w=a("tdv/player/view/util/Installer"),y=a("tdv/player/view/util/LibsLoader"),x=a("tdv/player/view/util/Preloader"),z=a("tdv/player/view/util/URL"),A=a("tdv/player/view/util/XR"),D=a("tdv/view/constants/ButtonMode"),F=a("tdv/view/containers/Application"),C=a("tdv/view/containers/Container"),B=a("tdv/view/containers/XRPanels"),H=a("tdv/view/containers/layout/VerticalLayout"),E=a("tdv/view/util/Fullscreen"), G=a("tdv/view/util/AudioActivation"),N=a("tdv/view/util/Orientation"),O=a("tdv/view/util/UserInitiatedAction"),R=a("tdv/util/Storage"),Q=k.define("Player",F,function(){F.apply(this,arguments);this.fh=new w(this);this.Hxa=new l(this,this.fh);this.Qu=new C;this.Qu.xa({backgroundOpacity:0,visible:!0,width:"100%",height:"100%"});this.LM=new p;this.eO=new q;this.x0=new f(this);new d(this);this.wbb=new B(this);this.Hma=[];var T=new H;T.J$(0);this.$Y(T);this.ig(!0);this.bind(h.L("settings"),this.G5a,this, !0);this.h6=TDV.qb.WLa();N.bind(h.V,this.p5a,this,!0);G.Omb();this.LYa=new c(this,"buttonMute",D.af);this.LYa.bind(h.ma,this.hCa,this,!0);this.TYa=new c(this,"buttonUnmute",D.af);this.TYa.bind(h.ma,this.WCa,this,!0);this.$_=new c(this,"buttonToggleMute",D.ak);this.$_.bind(h.Rk,this.hCa,this,!0);this.$_.bind(h.Km,this.WCa,this,!0);this.bind(h.L("mute"),this.m5a,this);this.$_.set("pressed",this.get("mute"));this.JYa=new c(this,"buttonEnterFullscreen",D.af);this.JYa.bind(h.ma,this.xBa,this,!0);this.KYa= new c(this,"buttonExitFullscreen",D.af);this.KYa.bind(h.ma,this.yBa,this,!0);this.W_=new c(this,"buttonToggleFullscreen",D.ak);this.W_.bind(h.Rk,this.xBa,this,!0);this.W_.bind(h.Km,this.yBa,this,!0);this.W_.set("pressed",this.get("fullscreenEnabled"));this.bind(h.L("fullscreenEnabled"),this.V4a,this,!0);this.set("fullscreenEnabled",this.kk.enabled());this.set("defaultMenu",["fullscreen","mute","rotation"]);this.bind(h.Vp,this.J5a,this,!0);[h.Sa,h.$a,h.Qk,h.HB,h.WK].forEach(function(Y){this.bind(Y, function(aa){this.o(new n(h.bG,{iQ:aa}))},this,!0)}.bind(this));["keydown","keyup"].forEach(function(Y){document.addEventListener(Y,function(aa){this.o(new n(h.bG,{iQ:aa}))}.bind(this))}.bind(this));A.M.bind(h.V,function(){A.isPresenting?N.Vw():N.Vw(F.prototype.get.call(this,"lockedOrientation"))},this);this.kk.bind(h.V,function(){var Y=N.qLa();N.Vw();N.Vw(Y)},this)});Q.CUa="orientationChange";Q.prototype.logCapabilities=function(){this.k4a()};Q.prototype.activateAudio=function(T){this.VWa(T)};Q.prototype.zfa= function(T){F.prototype.zfa.apply(this,arguments);this.set("fullscreenEnabled",T)};Q.prototype.Pb=function(){F.prototype.Pb.call(this);this.m("mute",!1);this.m("fullscreenEnabled",!1)};Q.prototype.Kb=function(){F.prototype.Kb.call(this);this.Hxa.getParent()!=this&&this.mb(this.Hxa);this.Qu.getParent()!=this&&(this.mb(this.Qu),this.Qu.mb(this.x0),this.Qu.mb(this.LM),this.Qu.mb(this.eO))};Q.prototype.r7a=function(T){var Y=[];this.LM&&Y.push(this.LM);this.eO&&Y.push(this.eO);this.x0&&Y.push(this.x0); for(var aa=!0,ba=0;ba<=Y.length&&aa;ba++)aa=T.length-(Y.length-ba)==T.indexOf(Y[ba]);return aa?T:T.filter(function(ea){return Y.indexOf(ea)<0}).concat(Y)};Q.prototype.jb=function(){this.SDa||(this.SDa=m.difference(this.p2a(),"backgroundOpacity visible includeInLayout state left right top bottom centerX centerY width height minWidth minHeight maxWidth maxHeight actualWidth actualHeight paddingLeft paddingTop paddingRight paddingBottom".split(" ")));this.Oc(this.SDa,{},[this.Qu],!0,!0);F.prototype.jb.call(this); this.Apb===!0&&this.ypb()};Q.prototype.set=function(T,Y){switch(T){case "children":this.Qu.set(T,this.r7a(Y));return;case "creationPolicy":this.Qu.set(T,Y);return;case "fullscreenAvailable":case "gyroscopeAvailable":case "cardboardAvailable":case "isMobile":case "orientation":case "surfaceSelectionAvailable":case "touchEnabled":case "touchDevice":case "vrControllerAvailable":case "vrAvailable":Y=this.get(T);break;case "fullscreenEnabled":Y=this.kk.ol()&&Y;break;case "fullscreenFallback":E.fra(Y); break;case "lockedOrientation":u.kf()&&(Y=void 0);N.Vw(Y);break;case "installAvailable":Y=this.fh.ready();break;case "mouseWheelEnabled":this.alb(z.Tg("mousewheelenabled",Y));break;case "backgroundPreloadEnabled":this.J7a(Y);break;case "vrPolyfillScale":A.Q9=Y;break;case "desktopMipmappingEnabled":r.nkb(Y);break;case "mobileMipmappingEnabled":r.Zkb(Y);break;case "defaultVRPointer":Y=="gaze"?A.JRa(A.qua.OF):A.JRa(A.qua.PF);break;case "xrPanels":this.Hma=Y;this.tHa();break;case "xrPanelsEnabled":this.NHa= this.f6&&Y,this.tHa()}F.prototype.set.call(this,T,Y)};Q.prototype.get=function(T,Y){switch(T){case "children":case "creationPolicy":return this.Qu.get(T,Y);case "touchEnabled":return u.Jp();case "touchDevice":return u.nsa();case "isMobile":return u.ub();case "orientation":return N.get();case "lockedOrientation":return N.qLa();case "gyroscopeAvailable":return v.ol;case "cardboardAvailable":case "vrAvailable":return A.vQ;case "arAvailable":return A.mIa;case "vrControllerAvailable":return A.tob;case "fullscreenAvailable":return this.kk.ol(); case "vrPolyfillScale":return A.Q9;case "installAvailable":return this.fh.ready();case "surfaceSelectionAvailable":return!0;case "pageScale":return this.fD;case "xrPanels":return this.Hma;case "xrPanelsEnabled":return this.NHa;case L:case U:return this.f6?F.prototype.get.apply(this,arguments):!0;default:return F.prototype.get.apply(this,arguments)}};Q.prototype.tHa=function(){this.wbb.set(this.NHa?this.Hma.slice():[])};Q.prototype.hCa=function(){this.set("mute",!0)};Q.prototype.WCa=function(){this.set("mute", !1)};Q.prototype.m5a=function(){this.$_.set("pressed",this.get("mute"))};Q.prototype.xBa=function(){this.set("fullscreenEnabled",!0)};Q.prototype.yBa=function(){this.set("fullscreenEnabled",!1)};Q.prototype.V4a=function(){this.get("fullscreenEnabled")?this.kk.vt():this.kk.qm();this.W_.set("pressed",this.get("fullscreenEnabled"));this.set("fullscreenEnabled",this.kk.enabled())};Q.prototype.G5a=function(){var T=this.get("settings");T&&(y.initialize(T),x.Ara(T),THREE.Ysa=T.get(TDV.PlayerSettings.Gaa), THREE.gta=T.get(TDV.PlayerSettings.Xaa),THREE.YB=T.get(TDV.PlayerSettings.YB),this.fh.Ara(T))};Q.prototype.J7a=function(T){x.enabled(T)};Q.prototype.wya=function(){var T=[];this.PL=[];(this.get("menu")||[]).forEach(function(ba){var ea=ba.get("label");T.push(ba.get("label"));ea&&this.PL.push(function(){ba.o("click")})}.bind(this));var Y=this.get("defaultMenu",[]);if(Y.indexOf("rotation")>=0){var aa=this.Ci("PanoramaPlayer");aa.length&&(T.push(aa[0].get("mouseControlMode")==g.tF?b("change-to-drag-and-release"): b("change-to-click-and-move")),this.PL.push(this.t$a.bind(this)))}Y.indexOf("fullscreen")>=0&&this.kk.ol()&&(T.push(this.kk.enabled()?b("exit-fullscreen"):b("enter-fullscreen")),this.PL.push(this.r$a.bind(this)));Y.indexOf("mute")>=0&&(T.push(this.get("mute")?b("unmute"):b("mute")),this.PL.push(this.s$a.bind(this)));Y=[].concat(e.name?[e.name]:[],e.aeb!="false"?e.UX?["v:"+e.UX+"."+e.$X]:["v:"+e.$X]:[]).join(" ");Y!=""&&(T.length>0&&T.push(""),T.push(Y),this.PL.push(this.X5a.bind(this)));return T}; Q.prototype.e3=function(T){this.PL[T.data.index]()};Q.prototype.t$a=function(){var T=this.Ci("PanoramaPlayer"),Y=T[0].get("mouseControlMode")==g.tF?g.ux:g.tF;T.forEach(function(aa){R.setItem(K,Y);aa.set("mouseControlMode",Y)})};Q.prototype.J5a=function(){R.getItem(K)==g.ux&&this.Ci("PanoramaPlayer").forEach(function(T){T.set("mouseControlMode",g.ux)});z.Ak("mute")&&this.set("mute",z.Tg("mute",this.get("mute")))};Q.prototype.r$a=function(){this.kk.toggle()};Q.prototype.s$a=function(){this.set("mute", !this.get("mute"))};Q.prototype.X5a=function(){e.GTa&&window.open(e.GTa,"_blank")};Q.prototype.p5a=function(){this.o(Q.CUa)};Q.prototype.k4a=function(){m.seb(!0);m.log("UA: "+navigator.userAgent);m.log("screen: ("+Math.max(window.screen.width,window.screen.height)+", "+Math.min(window.screen.width,window.screen.height)+") dpr: "+window.devicePixelRatio+" ("+Math.max(window.screen.width,window.screen.height)*window.devicePixelRatio+", "+Math.min(window.screen.width,window.screen.height)*window.devicePixelRatio+ ")");u.log();t.log();b.log();A.log()};Q.prototype.VWa=function(T){G.active()?O.wait(T):(G.Rsa(T),G.request(this))};var K="tdvp_"+window.location.pathname+"_rotation_mode",L=[119,97,116,101,114,109,97,114,107].map(function(T){return String.fromCharCode(T)}).join(""),U=[97,99,97,100,101,109,105,99,87,97,116,101,114,109,97,114,107].map(function(T){return String.fromCharCode(T)}).join("");return Q}); define("tdv/player/script/PlayerMenuItem",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("PlayerMenuItem",m,function(){m.call(this)})}); define("tdv/player/script/PopupPanoramaOverlay","require tdv/utils tdv/binding/Bindable tdv/constants/EventName tdv/constants/PlaybackState tdv/player/parser/ClassInfo tdv/player/script/helper/PlaybackPositionHelper".split(" "),function(a){a("tdv/utils");var m=a("tdv/binding/Bindable"),h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState"),g=a("tdv/player/parser/ClassInfo"),k=a("tdv/player/script/helper/PlaybackPositionHelper");a=g.define("PopupPanoramaOverlay",m,function(){m.call(this); this.set("state",n.ca);this.bind(h.L("state"),function(){this.o(h.Pd)},this,!0);this.Gd=void 0});a.prototype.show=function(){this.set("visible",!0)};a.prototype.oe=function(){this.set("visible",!1)};a.prototype.play=function(){this.set("state",n.PLAYING)};a.prototype.pause=function(){this.set("state",n.gL)};a.prototype.stop=function(){this.set("state",n.ca)};a.prototype.hide=a.prototype.oe;a.prototype.pause=a.prototype.pause;a.prototype.play=a.prototype.play;a.prototype.show=a.prototype.show;a.prototype.stop= a.prototype.stop;a.prototype.get=function(e,b){switch(e){case "playbackPositions":return this.Gd===void 0&&(this.Gd=k.Lfb(this)),this.Gd}return m.prototype.get.call(this,e,b)};a.prototype.set=function(e,b){var c=!1;switch(e){case "hfov":case "vfov":case "pitch":case "rotationX":case "rotationY":case "rotationZ":case "yaw":case "playbackPositions":this.Gd=void 0,c=!0}m.prototype.set.call(this,e,b);c&&e!="playbackPositions"&&this.o(h.L("playbackPositions"))};return a}); define("tdv/player/script/ProgressBar",["require","tdv/player/view/ProgressBar","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/player/view/ProgressBar");return a("tdv/player/parser/ClassInfo").define("ProgressBar",m,function(){m.call(this)})}); define("tdv/player/script/QuadFramePanoramaOverlay",["require","tdv/binding/Bindable","tdv/constants/EventName","tdv/player/parser/ClassInfo","tdv/player/script/helper/PlaybackPositionHelper"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/constants/EventName"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/player/script/helper/PlaybackPositionHelper");a=n.define("QuadFramePanoramaOverlay",m,function(){m.call(this);this.Gd=void 0});a.prototype.set=function(k,e){var b=!1;switch(k){case "vertices":case "playbackPositions":this.Gd= void 0,b=!0}m.prototype.set.call(this,k,e);b&&k!="playbackPositions"&&this.o(h.L("playbackPositions"))};a.prototype.get=function(k,e){switch(k){case "playbackPositions":return this.Gd===void 0&&(this.Gd=g.Foa(this)),this.Gd}return m.prototype.get.call(this,k,e)};return a}); define("tdv/player/script/QuadHotspotPanoramaOverlay",["require","tdv/player/parser/ClassInfo","tdv/player/script/HotspotPanoramaOverlay"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/HotspotPanoramaOverlay");return m.define("QuadHotspotPanoramaOverlay",h,function(){h.call(this)})}); define("tdv/player/script/QuadHotspotPanoramaOverlayArea",["require","tdv/player/parser/ClassInfo","tdv/player/script/HotspotPanoramaOverlayArea"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/HotspotPanoramaOverlayArea");return m.define("QuadHotspotPanoramaOverlayArea",h,function(){h.apply(this,arguments)})}); define("tdv/player/script/QuadHotspotPanoramaOverlayImageBase",["require","tdv/binding/Bindable","tdv/constants/EventName","tdv/player/parser/ClassInfo","tdv/player/script/helper/PlaybackPositionHelper"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/constants/EventName"),n=a("tdv/player/parser/ClassInfo"),g=a("tdv/player/script/helper/PlaybackPositionHelper");a=n.define("QuadHotspotPanoramaOverlayImageBase",m,function(){m.call(this);this.Gd=void 0});a.prototype.get=function(k,e){switch(k){case "playbackPositions":return this.Gd=== void 0&&(this.Gd=g.Foa(this)),this.Gd}return m.prototype.get.call(this,k,e)};a.prototype.set=function(k,e){var b=!1;switch(k){case "opacity":case "distance":case "vertices":case "playbackPositions":this.Gd=void 0,b=!0}m.prototype.set.call(this,k,e);b&&k!="playbackPositions"&&this.o(h.L("playbackPositions"))};return a}); define("tdv/player/script/QuadHotspotPanoramaOverlayImage",["require","tdv/player/parser/ClassInfo","tdv/player/script/QuadHotspotPanoramaOverlayImageBase"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/QuadHotspotPanoramaOverlayImageBase");return m.define("QuadHotspotPanoramaOverlayImage",h,function(){h.call(this)})}); define("tdv/player/script/QuadHotspotPanoramaOverlayMap",["require","tdv/player/parser/ClassInfo","tdv/player/script/QuadHotspotPanoramaOverlayImageBase"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/QuadHotspotPanoramaOverlayImageBase");return m.define("QuadHotspotPanoramaOverlayMap",h,function(){h.call(this)})}); define("tdv/player/script/QuadVideoPanoramaOverlay","require tdv/binding/Bindable tdv/constants/EventName tdv/constants/PlaybackState tdv/events/Event tdv/player/parser/ClassInfo tdv/player/script/helper/PlaybackPositionHelper".split(" "),function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/constants/EventName"),n=a("tdv/constants/PlaybackState"),g=a("tdv/events/Event"),k=a("tdv/player/parser/ClassInfo"),e=a("tdv/player/script/helper/PlaybackPositionHelper");a=k.define("QuadVideoPanoramaOverlay", m,function(){m.call(this);this.Gd=void 0});a.prototype.play=a.prototype.play=function(){this.set("state",n.PLAYING)};a.prototype.pause=a.prototype.pause=function(){this.set("state",n.Zb)};a.prototype.stop=a.prototype.stop=function(){this.set("state",n.ca)};a.prototype.set=function(b,c){var d=!1;switch(b){case "state":var f=this.get("state")||n.ca;f==n.ca&&c==n.PLAYING&&this.o(h.Vp);f!=c&&this.o(new g(h.Pd,{oldState:f,state:c}));break;case "enabledInCardboard":this.set("enabledInVR",c);break;case "distance":case "opacity":case "playbackPositions":case "vertices":this.Gd= void 0,d=!0}m.prototype.set.call(this,b,c);d&&b!="playbackPositions"&&this.o(h.L("playbackPositions"))};a.prototype.get=function(b,c){switch(b){case "playbackPositions":return this.Gd===void 0&&(this.Gd=e.Foa(this)),this.Gd}return m.prototype.get.call(this,b,c)};return a}); define("tdv/player/script/RadialModel3DDisplayEffect",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("RadialModel3DDisplayEffect",m,function(){m.call(this)})}); define("tdv/player/script/RainPanoramaOverlay",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");a=a("tdv/player/parser/ClassInfo").define("RainPanoramaOverlay",m,function(){m.call(this)});a.prototype.get=function(h,n){h=="startState"&&n===void 0&&(n=this.get("initialState"));return m.prototype.get.call(this,h,n)};return a}); define("tdv/player/script/RotationalCameraMovement",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("RotationalCameraMovement",m,function(){m.call(this)})});define("tdv/player/script/SlideInEffect",["require","tdv/view/effects/SlideInEffect","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/view/effects/SlideInEffect");return a("tdv/player/parser/ClassInfo").define("SlideInEffect",m,function(){m.call(this)})}); define("tdv/player/script/SlideOutEffect",["require","tdv/view/effects/SlideOutEffect","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/view/effects/SlideOutEffect");return a("tdv/player/parser/ClassInfo").define("SlideOutEffect",m,function(){m.call(this)})}); define("tdv/player/script/SnowPanoramaOverlay",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");a=a("tdv/player/parser/ClassInfo").define("SnowPanoramaOverlay",m,function(){m.call(this)});a.prototype.get=function(h,n){h=="startState"&&n===void 0&&(n=this.get("initialState"));return m.prototype.get.call(this,h,n)};return a}); define("tdv/player/script/SphericPanoramaFrame",["require","tdv/player/parser/ClassInfo","tdv/player/script/PanoramaFrame"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/PanoramaFrame");a=m.define("SphericPanoramaFrame",h,function(){h.call(this)});a.prototype.Ln=function(){var n=this.get("sphere");return n&&m.Oa("Video360Resource",n)?!0:(n=this.get("stereoSphere"))&&m.Oa("Video360Resource",n)?!0:!1};return a}); define("tdv/player/script/SphereModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DObject");return m.define("SphereModel3DObject",h,function(){h.call(this)})});define("tdv/player/script/SpotLight",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("SpotLight",m,function(){m.call(this)})}); define("tdv/player/script/SpriteModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DObject");a=m.define("SpriteModel3DObject",h,function(){h.call(this)});a.prototype.getPixelScale=function(){return this.get("worldPixelScale")};return a}); define("tdv/player/script/SurfaceReticleModel3DObject",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DObject"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DObject");return m.define("SurfaceReticleModel3DObject",h,function(){h.call(this);this.set("transparentAreaActive",!0)})}); define("tdv/view/containers/tabpanel/Tab","require exports tdv/binding/ChangeWatcher tdv/view/containers/Container tdv/view/constants/Alignment tdv/view/text/Label".split(" "),function(a,m,h,n,g,k){return function(e){function b(c){var d=e.call(this)||this;d.gf("Tab");d.Oia=c;d.yn="";d.cla=!1;d.Za=null;d.bAa=null;d.set("childrenInteractionEnabled",!1);d.set("contentOpaque",!0);return d}P(b,e);b.prototype.Pb=function(){e.prototype.Pb.call(this);this.m("horizontalAlign",g.$e);this.m("verticalAlign", g.$d);this.m("fontFamily");this.m("fontSize");this.m("fontColor");this.m("fontWeight");this.m("fontStyle");this.m("textDecoration");this.m("textShadowBlurRadius");this.m("textShadowColor");this.m("textShadowHorizontalLength");this.m("textShadowOpacity");this.m("textShadowVerticalLength")};b.prototype.Kb=function(){e.prototype.Kb.call(this);this.Za==null&&(this.Za=new k,this.Za.set("horizontalAlign","center"),this.mb(this.Za))};b.prototype.Zr=function(){e.prototype.Zr.call(this);this.bAa=h.kx(this.Oia, "label",this.VM,this);this.e5(this.Oia.get("label"))};b.prototype.Rja=function(){e.prototype.Rja.call(this);this.bAa.gF()};b.prototype.VM=function(){var c=this.Oia.get("label");this.e5(c?c:"")};b.prototype.e5=function(c){this.yn!=c&&(this.yn=c,this.cla=!0,this.Tf())};b.prototype.jb=function(){this.cla&&(this.cla=!1,this.Za.set("text",this.yn));this.Oc(b.kva,b.eR,[this.Za],!0,!0);e.prototype.jb.call(this)};b.kva="fontFamily fontSize fontColor fontWeight fontStyle textDecoration textShadowColor textShadowHorizontalLength textShadowVerticalLength textShadowBlurRadius textShadowOpacity".split(" "); b.eR=Object.fromEntries(b.kva.map(function(c){return[c,c]}));return b}(n)});define("tdv/view/containers/tabpanel/TabsAlignment",["require","exports"],function(){return{PQ:"normal",$K:"inverse",$sa:"center"}}); define("tdv/view/containers/tabpanel/TabPanel","require exports tdv/utils tdv/view/constants/GradientDirection tdv/view/constants/Cursor tdv/constants/EventName tdv/view/containers/Container tdv/view/constants/Alignment tdv/view/constants/LayoutMode tdv/view/constants/OverflowPolicy tdv/view/containers/tabpanel/Tab tdv/view/containers/tabpanel/TabsAlignment tdv/view/constants/Position tdv/view/core/visuals/VisualsType".split(" "),function(a,m,h,n,g,k,e,b,c,d,f,l,p,q){return function(r){function t(){var u= r.call(this)||this;u.gf("TabPanel");u.Jg=-1;u.qI=!1;u.DV=[];u.B5=!1;u.hl=[];u.Pia=!1;u.CV=[];u.ui=null;u.Ph=null;u.mK(!1);return u}P(t,r);t.prototype.Pb=function(){r.prototype.Pb.call(this);this.m("pages",[]);this.m("selectedIndex",-1);this.m("tabsSize",25);this.m("tabsPosition",p.Tc);this.m("tabsGap",0);this.m("tabsPadding",10);this.m("tabsAlign",l.PQ);this.m("tabsBackgroundOpacity",.6);this.m("tabsBackgroundColor",["#FFFFFF","#CCCCCC"]);this.m("tabsBackgroundColorRatios",[0,.5]);this.m("tabsRollOverBackgroundOpacity", 1);this.m("tabsRollOverBackgroundColor",["#FFFFFF","#CCCCCC"]);this.m("tabsRollOverBackgroundColorRatios",[0,.5]);this.m("backgroundColor","#FFFFFF");this.m("selectedTabBackgroundOpacity",1);this.m("selectedTabBackgroundColor");this.m("selectedTabBackgroundColorRatios");this.m("borderRadius",6);this.m("pagePaddingLeft",4);this.m("pagePaddingTop",4);this.m("pagePaddingRight",4);this.m("pagePaddingBottom",4);this.m("borderColor","#AAAAAA");this.m("borderSize",1);this.m("selectedTabFontSize");this.m("selectedTabFontColor"); this.m("selectedTabFontWeight");this.m("selectedTabFontStyle");this.m("selectedTabTextDecoration");this.m("selectedTabTextShadowBlurRadius");this.m("selectedTabTextShadowColor");this.m("selectedTabTextShadowHorizontalLength");this.m("selectedTabTextShadowOpacity");this.m("selectedTabTextShadowVerticalLength");this.m("tabsFontFamily");this.m("tabsFontSize");this.m("tabsFontColor");this.m("tabsFontWeight");this.m("tabsFontStyle");this.m("tabsTextDecoration");this.m("tabsTextShadowBlurRadius");this.m("tabsTextShadowColor"); this.m("tabsTextShadowHorizontalLength");this.m("tabsTextShadowOpacity");this.m("tabsTextShadowVerticalLength");this.m("tabsRollOverFontSize");this.m("tabsRollOverFontColor");this.m("tabsRollOverFontWeight");this.m("tabsRollOverFontStyle");this.m("tabsRollOverTextDecoration");this.m("tabsRollOverTextShadowBlurRadius");this.m("tabsRollOverTextShadowColor");this.m("tabsRollOverTextShadowHorizontalLength");this.m("tabsRollOverTextShadowOpacity");this.m("tabsRollOverTextShadowVerticalLength")};t.prototype.bo= function(u,v,w,y){r.prototype.bo.call(this,u,v,w,y);this.yD("shadow")};t.prototype.Kb=function(){e.prototype.Kb.call(this);this.Ph==null&&(this.Ph=new e,this.Ph.mK(!1),this.mb(this.Ph));this.ui==null&&(this.ui=new e,this.ui.mK(!1),this.mb(this.ui))};t.prototype.set=function(u,v){u=="pages"?this.dlb(v||[]):u=="selectedIndex"?this.Zw(v):u=="layout"&&(v=c.wob);e.prototype.set.call(this,u,v)};t.prototype.get=function(u,v){return u=="pages"?this.hl:u=="selectedIndex"?this.MLa():e.prototype.get.call(this, u,v)};t.prototype.Zw=function(u){this.Jg!=u&&(this.Jg=u,this.Jg=Math.min(Math.max(this.Jg,-1),this.hl.length),this.qI=!0,this.Tf(),this.o(k.V),this.o(k.L("selectedIndex")))};t.prototype.MLa=function(){return this.Jg};t.prototype.dlb=function(u){var v=this;h.u8(this.hl,u)||(this.hl.forEach(function(w){w.h(k.od,v.nDa,v);w.h(k.jd,v.mDa,v)}),this.hl=u,this.hl.forEach(function(w){w.bind(k.od,v.nDa,v,!1);w.bind(k.jd,v.mDa,v,!1)}),this.Pia=!0,this.Tf())};t.prototype.f$a=function(u){this.DV=h.union(this.DV, [u.source]);this.B5=!0;this.Tf()};t.prototype.e$a=function(u){this.DV=h.difference(this.DV,[u.source]);this.B5=!0;this.Tf()};t.prototype.d$a=function(u){this.Zw(this.CV.indexOf(u.source))};t.prototype.nDa=function(u){this.Zw(this.hl.indexOf(u.source))};t.prototype.mDa=function(u){if(this.hl.indexOf(u.source)==this.Jg){for(u=this.hl.length-1;u>=0;u--)if(this.hl[u].get("visible")){this.Zw(u);return}this.Jg=-1;this.Zw(0)}};t.prototype.jb=function(){var u=this,v=!1,w=!1,y=!1,x=!1,z=!1,A=this.G("tabsPosition"), D=this.G("tabsAlign");this.Pia&&(this.CV=[],this.ui.dQa(),this.Ph.dQa(),this.hl.forEach(function(H){var E=new f(H);E.mK(!0);E.bind(k.uc,u.f$a,u,!1);E.bind(k.Eb,u.e$a,u,!1);E.bind(k.Sa,u.d$a,u,!1);u.CV.push(E);u.ui.mb(E);H.xa({top:void 0,left:void 0,right:void 0,bottom:void 0,width:"100%",height:"100%"});u.Ph.mb(H)}),this.Jg=Math.min(Math.max(this.Jg,0),this.hl.length-1),this.Pia=!1,w=v=z=!0);this.S("tabsPosition")&&(this.$("tabsPosition"),x=w=v=!0);this.qI&&(this.qI=!1,y=w=z=!0);this.B5&&(this.B5= !1,y=!0);this.S("overflow")&&this.ui.xa({contentOpaque:this.G("overflow")==d.Ur,overflow:this.G("overflow")});["tabsAlign","tabsGap","tabsSize"].forEach(function(H){u.S(H)&&(u.$(H),v=!0)});"borderRadius borderTopRadius borderBottomRadius borderLeftRadius borderRightRadius borderTopLeftRadius borderTopRightRadius borderBottomLeftRadius borderBottomRightRadius borderSize borderLeftSize borderTopSize borderRightSize borderBottomSize borderColor borderLeftColor borderTopColor borderRightColor borderBottomColor shadow shadowHorizontalLength shadowVerticalLength shadowBlurRadius shadowSpread shadowColor backgroundOpacity backgroundColor backgroundColorRatios".split(" ").forEach(function(H){u.S(H)&& (u.$(H),x=w=!0)});"tabsBackgroundOpacity tabsBackgroundColor tabsBackgroundColorRatios selectedTabBackgroundOpacity selectedTabBackgroundColor selectedTabBackgroundColorRatios selectedTabFontSize selectedTabFontColor selectedTabFontWeight selectedTabFontStyle selectedTabTextDecoration selectedTabTextShadowColor selectedTabTextShadowHorizontalLength selectedTabTextShadowVerticalLength selectedTabTextShadowBlurRadius selectedTabTextShadowOpacity tabsFontFamily tabsFontSize tabsFontColor tabsFontWeight tabsFontStyle tabsPadding tabsTextDecoration tabsRollOverFontSize tabsRollOverFontColor tabsTextShadowColor tabsTextShadowHorizontalLength tabsTextShadowVerticalLength tabsTextShadowBlurRadius tabsTextShadowOpacity tabsRollOverFontWeight tabsRollOverFontStyle tabsRollOverTextDecoration tabsRollOverTextShadowColor tabsRollOverTextShadowHorizontalLength tabsRollOverTextShadowVerticalLength tabsRollOverTextShadowBlurRadius tabsRollOverTextShadowOpacity".split(" ").forEach(function(H){u.S(H)&& (u.$(H),w=!0)});["pagePaddingLeft","pagePaddingTop","pagePaddingRight","pagePaddingBottom"].forEach(function(H){u.S(H)&&(u.$(H),x=!0)});this.S("backgroundColorDirection")&&this.$("backgroundColorDirection");if(v){switch(A){case p.fb:this.ui.xa({left:0,right:void 0});break;case p.Db:this.ui.xa({left:void 0,right:0});break;case p.Tc:this.ui.xa({bottom:void 0,top:0});break;case p.Gc:this.ui.xa({bottom:0,top:void 0})}switch(A){case p.fb:case p.Db:this.ui.xa({layout:c.Uk,top:0,bottom:0,height:void 0,width:this.G("tabsSize")}); switch(D){case l.$K:this.ui.set("verticalAlign",b.Gc);break;case l.$sa:this.ui.set("verticalAlign",b.$d);break;default:this.ui.set("verticalAlign",b.Tc)}break;case p.Tc:case p.Gc:switch(this.ui.xa({layout:c.Mi,left:0,right:0,height:this.G("tabsSize"),width:void 0}),D){case l.$K:this.ui.set("horizontalAlign",b.Db);break;case l.$sa:this.ui.set("horizontalAlign",b.$e);break;default:this.ui.set("horizontalAlign",b.fb)}}this.ui.set("gap",this.G("tabsGap"))}if(w)for(var F=0;F0?A==p.fb||A==p.Tc?B[0]:B[B.length-1]:B),C.xa({backgroundOpacity:this.G("selectedTabBackgroundOpacity","tabsBackgroundOpacity","backgroundOpacity"),backgroundColor:B,backgroundColorRatios:this.G("selectedTabBackgroundColorRatios","tabsBackgroundColorRatios"),cursor:g.De,fontSize:this.G("selectedTabFontSize","tabsFontSize"),fontColor:this.G("selectedTabFontColor","tabsFontColor"),fontWeight:this.G("selectedTabFontWeight","tabsFontWeight"), fontStyle:this.G("selectedTabFontStyle","tabsFontStyle"),textDecoration:this.G("selectedTabTextDecoration","tabsTextDecoration"),textShadowColor:this.G("selectedTabTextShadowColor","tabsTextShadowColor"),textShadowHorizontalLength:this.G("selectedTabTextShadowHorizontalLength","tabsTextShadowHorizontalLength"),textShadowVerticalLength:this.G("selectedTabTextShadowVerticalLength","tabsTextShadowVerticalLength"),textShadowBlurRadius:this.G("selectedTabTextShadowBlurRadius","tabsTextShadowBlurRadius"), textShadowOpacity:this.G("selectedTabTextShadowOpacity","tabsTextShadowOpacity")})):B?C.xa({backgroundOpacity:this.G("tabsRollOverBackgroundOpacity","tabsBackgroundOpacity","backgroundOpacity"),backgroundColor:this.G("tabsRollOverBackgroundColor","tabsBackgroundColor"),backgroundColorRatios:this.G("tabsRollOverBackgroundColorRatios","tabsBackgroundColorRatios"),cursor:g.qf,fontSize:this.G("tabsRollOverFontSize","tabsFontSize"),fontColor:this.G("tabsRollOverFontColor","tabsFontColor"),fontWeight:this.G("tabsRollOverFontWeight", "tabsFontWeight"),fontStyle:this.G("tabsRollOverFontStyle","tabsFontStyle"),textDecoration:this.G("tabsRollOverTextDecoration","tabsTextDecoration"),textShadowColor:this.G("tabsRollOverTextShadowColor","tabsTextShadowColor"),textShadowHorizontalLength:this.G("tabsRollOverTextShadowHorizontalLength","tabsTextShadowHorizontalLength"),textShadowVerticalLength:this.G("tabsRollOverTextShadowVerticalLength","tabsTextShadowVerticalLength"),textShadowBlurRadius:this.G("tabsRollOverTextShadowBlurRadius","tabsTextShadowBlurRadius"), textShadowOpacity:this.G("tabsRollOverTextShadowOpacity","tabsTextShadowOpacity")}):C.xa({backgroundOpacity:this.G("tabsBackgroundOpacity","backgroundOpacity"),backgroundColor:this.G("tabsBackgroundColor"),backgroundColorRatios:this.G("tabsBackgroundColorRatios"),fontSize:this.G("tabsFontSize"),fontColor:this.G("tabsFontColor"),fontWeight:this.G("tabsFontWeight"),fontStyle:this.G("tabsFontStyle"),textDecoration:this.G("tabsTextDecoration"),textShadowColor:this.G("tabsTextShadowColor"),textShadowHorizontalLength:this.G("tabsTextShadowHorizontalLength"), textShadowVerticalLength:this.G("tabsTextShadowVerticalLength"),textShadowBlurRadius:this.G("tabsTextShadowBlurRadius"),textShadowOpacity:this.G("tabsTextShadowOpacity")}),C.xa({borderLeftSize:A==p.Db&&y?0:void 0,borderRightSize:A==p.fb&&y?0:void 0,borderBottomSize:A==p.Tc&&y?0:void 0,borderTopSize:A==p.Gc&&y?0:void 0});if(x){F=this.G("tabsSize");switch(A){case p.fb:this.Ph.xa({left:F-(this.G("borderLeftSize","borderSize")||0),right:0,top:0,bottom:0});break;case p.Db:this.Ph.xa({left:0,right:F-(this.G("borderRightSize", "borderSize")||0),top:0,bottom:0});break;case p.Tc:this.Ph.xa({left:0,right:0,top:F-(this.G("borderTopSize","borderSize")||0),bottom:0});break;case p.Gc:this.Ph.xa({left:0,right:0,top:0,bottom:F-(this.G("borderBottomSize","borderSize")||0)})}A==p.Tc&&D==l.PQ||A==p.fb&&D==l.PQ?this.Ph.set("borderTopLeftRadius",0):this.Ph.set("borderTopLeftRadius",this.G("borderTopLeftRadius","borderTopRadius","borderLeftRadius","borderRadius"));A==p.Tc&&D==l.$K||A==p.Db&&D==l.PQ?this.Ph.set("borderTopRightRadius", 0):this.Ph.set("borderTopRightRadius",this.G("borderTopRightRadius","borderTopRadius","borderRightRadius","borderRadius"));A==p.Gc&&D==l.PQ||A==p.fb&&D==l.$K?this.Ph.set("borderBottomLeftRadius",0):this.Ph.set("borderBottomLeftRadius",this.G("borderBottomLeftRadius","borderBottomRadius","borderLeftRadius","borderRadius"));A==p.Gc&&D==l.$K||A==p.Db&&D==l.$K?this.Ph.set("borderBottomRightRadius",0):this.Ph.set("borderBottomRightRadius",this.G("borderBottomRightRadius","borderBottomRadius","borderRightRadius", "borderRadius"));this.Ph.xa({paddingLeft:this.G("pagePaddingLeft"),paddingTop:this.G("pagePaddingTop"),paddingRight:this.G("pagePaddingRight"),paddingBottom:this.G("pagePaddingBottom"),borderLeftSize:this.G("borderLeftSize","borderSize"),borderTopSize:this.G("borderTopSize","borderSize"),borderRightSize:this.G("borderRightSize","borderSize"),borderBottomSize:this.G("borderBottomSize","borderSize"),borderLeftColor:this.G("borderLeftColor","borderColor"),borderTopColor:this.G("borderTopColor","borderColor"), borderRightColor:this.G("borderRightColor","borderColor"),borderBottomColor:this.G("borderBottomColor","borderColor"),shadow:this.G("shadow")&&this.dNa(),shadowHorizontalLength:this.G("shadowHorizontalLength"),shadowVerticalLength:this.G("shadowVerticalLength"),shadowBlurRadius:this.G("shadowBlurRadius"),shadowSpread:this.G("shadowSpread"),shadowColor:this.G("shadowColor"),backgroundOpacity:this.G("backgroundOpacity"),backgroundColor:this.G("backgroundColor"),backgroundColorRatios:this.G("backgroundColorRatios")}); A==p.Tc||A==p.Gc?this.Ph.set("backgroundColorDirection",n.oca):this.Ph.set("backgroundColorDirection",n.n_)}if(z)for(F=0;F=0&&d<2;this.VL=c;var f;for(f=this.Fo;fc);f++);for(;this.Fo0&&(this.bf=[],this.SV())};a.prototype.SV=function(){this.hd.o(new g(n.Al,{activeCues:this.bf.slice()}))};a.prototype.cea=function(){this.gk=[];this.hd.get("cues",[]).forEach(b=>{this.gk.push(new m(b.get("startTime",0),b,"start"));this.gk.push(new m(b.get("endTime", Number.POSITIVE_INFINITY),b,"end"))});this.gk.sort(function(b,c){return b.time==c.time?b.action==c.start?0:b.action=="start"?-1:1:b.time-c.time})};return a}); define("tdv/player/view/video/control/DisplayController","require tdv/utils tdv/view/util/Animation tdv/events/Event tdv/player/view/common/MediaDisplayController tdv/player/view/util/XR".split(" "),function(a){function m(b,c){this.video=b;this.startTime=c}var h=a("tdv/utils");a("tdv/view/util/Animation");var n=a("tdv/events/Event"),g=a("tdv/player/view/common/MediaDisplayController"),k=a("tdv/player/view/util/XR");m.prototype.isEqual=function(b){return b&&this.video==b.video};var e=h.extend(g,function(b, c){g.call(this,b);this.j=c});e.prototype.display=function(b,c){g.prototype.display.call(this,new m(b,c))};e.prototype.oe=function(){g.prototype.oe.call(this)};e.prototype.clear=function(){g.prototype.clear.call(this);this.j=null};e.prototype.Yg=function(b){g.prototype.Yg.call(this,b)};e.prototype.$x=function(){g.prototype.$x.call(this);this.P.Rc().pmb();this.P.Rc().wK();this.j.Ra(!0)};e.prototype.BT=function(b){g.prototype.BT.call(this,b);this.li.video.set("opacity",k.isPresenting?1:b);this.P.Rc().kK(b)}; e.prototype.yy=function(){g.prototype.yy.call(this);this.P.Rc().lJ()};e.prototype.jR=function(){g.prototype.jR.call(this)};e.prototype.FT=function(b){g.prototype.FT.call(this,b);this.li.video.set("opacity",Math.min(1,b*2));this.cf.video.set("opacity",Math.min(1,(1-b)*2))};e.prototype.YR=function(){g.prototype.YR.call(this)};e.prototype.by=function(){g.prototype.by.call(this);this.P.Rc().bF();this.j.Ra(k.isPresenting?!0:this.P.MX(this));this.cf.video.set("opacity",k.isPresenting?1:0);this.j.Qa()}; e.prototype.ET=function(b){g.prototype.ET.call(this,b);this.P.Rc().PE(Math.min(1,b*1.5));this.j.Ra(k.isPresenting?!0:this.P.MX(this));this.j.Qa()};e.prototype.WR=function(){this.P.Rc().VD();this.j.Ra(!1);this.j.Qa();g.prototype.WR.call(this)};e.prototype.kn=function(){g.prototype.kn.call(this);this.cf?this.o(new n(e.KF,{video:this.cf.video})):this.jp||this.o(new n(e.kta))};e.prototype.Nka=function(b){b.video&&this.o(new n(e.JF,{video:b.video}))};e.prototype.Wja=function(b,c){return b.video.get("chromaColor")&& !!c};e.prototype.M_=function(b){b.video&&(b.video.set("opacity",0),b.video.set("zIndex",1),this.cf&&this.cf.video.set("zIndex",0),this.li.video.set("currentTime",b.startTime||0),this.j.$bb(b.video),this.o(new n(e.Hba,{video:b.video,startTime:b.startTime})))};e.prototype.vN=function(b){b.video&&(this.j.Ijb(b.video),this.o(new n(e.Iba,{video:b.video})))};e.oc="request frame";e.Hba="video added";e.Iba="video removed";e.KF="video show";e.JF="video hide";e.kta="all pending videos hidden";return e}); define("tdv/player/view/video/control/PlaybackController","require tdv/utils tdv/constants/EventName tdv/events/Event tdv/events/EventDispatcher tdv/constants/PlaybackState".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/constants/PlaybackState"),e=m.extend(g,function(){g.call(this);this.hd=null;this.Ff=!1;this.oea=k.ca});e.prototype.start=function(b){this.end();this.nka(b)};e.prototype.end=function(){this.stop(); this.DG()};e.prototype.clear=function(){this.DG()};e.prototype.play=function(){this.hd&&this.hd.set("state",k.PLAYING)};e.prototype.pause=function(){this.hd&&this.hd.set("state",k.Zb)};e.prototype.msa=function(){this.hd&&(this.hd.get("state")==k.PLAYING?this.pause():this.play())};e.prototype.stop=function(){this.hd&&this.hd.set("state",k.ca)};e.prototype.Bg=function(b){this.Ff=b;this.hd&&this.hd.set("mute",this.Ff)};e.prototype.setTime=function(b){this.hd&&this.hd.set("currentTime",b)};e.prototype.getTime= function(){if(this.hd)return this.hd.get("currentTime")};e.prototype.nka=function(b){this.DG();this.hd=b;this.hd.set("mute",this.Ff);this.hd.bind(h.L("state"),this.PN,this,!0);this.hd.bind(h.L("currentTime"),this.QI,this,!0);this.hd.bind(h.Tb,this.kW,this,!0)};e.prototype.DG=function(){this.hd&&(this.hd.h(h.L("state"),this.PN,this),this.hd.h(h.L("currentTime"),this.QI,this),this.hd.h(h.Tb,this.kW,this),this.hd=null)};e.prototype.QI=function(){this.o(new n(e.LF,{video:this.hd,time:this.hd.get("currentTime"), duration:this.hd.get("duration")}))};e.prototype.kW=function(){this.o(new n(e.MQ,{video:this.hd}))};e.prototype.PN=function(){var b=this.hd.get("state");this.oea!=b&&(this.oea=b,this.o(new n(e.gd,{state:this.oea})))};e.gd="playback state change";e.MQ="video end";e.LF="video time change";return e}); define("tdv/player/view/video/control/Controller","require tdv/utils tdv/constants/PlaybackState tdv/events/Event tdv/events/EventDispatcher tdv/player/view/video/control/CueController tdv/player/view/video/control/DisplayController tdv/player/view/video/control/PlaybackController".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/PlaybackState"),n=a("tdv/events/Event"),g=a("tdv/events/EventDispatcher"),k=a("tdv/player/view/video/control/CueController"),e=a("tdv/player/view/video/control/DisplayController"), b=a("tdv/player/view/video/control/PlaybackController"),c=m.extend(g,function(d,f){g.call(this);this.P=d;this.j=f;this.j.set("visible",!1);this.Ya=new e(this.P,this.j);this.Ua=new b(this.j);this.ds=new k(this.j);this.Ya.bind(e.JF,this.Hs,this,!0);this.Ya.bind(e.KF,this.ep,this,!0);this.Ya.bind(e.Hba,this.XCa,this,!0);this.Ya.bind(e.Iba,this.ZCa,this,!0);this.Ya.bind(e.kta,this.H4a,this,!0);this.Ua.bind(b.gd,this.Mf,this,!0);this.Ua.bind(b.MQ,this.dD,this,!0);this.Ua.bind(b.LF,this.oU,this,!0)});c.prototype.clear= function(){this.Ya.clear();this.Ua.clear();this.ds.clear();this.Ya.h(e.JF,this.Hs,this);this.Ya.h(e.KF,this.ep,this);this.Ya.h(e.Hba,this.XCa,this);this.Ya.h(e.Iba,this.ZCa,this);this.Ua.h(b.gd,this.Mf,this);this.Ua.h(b.MQ,this.dD,this);this.Ua.h(b.LF,this.oU,this);this.P=this.j=this.ds=this.Ua=this.Ya=null};c.prototype.K$=function(d,f){this.j.set("visible",!0);this.Ya.display(d,f)};c.prototype.bB=function(){this.Ya.oe();this.Ua.end();this.ds.end()};c.prototype.play=function(){this.Ua.play()};c.prototype.stop= function(){this.Ua.stop()};c.prototype.pause=function(){this.Ua.pause()};c.prototype.Bg=function(d){this.Ua.Bg(d)};c.prototype.setTime=function(d){this.Ua.setTime(d)};c.prototype.getTime=function(){return this.Ua.getTime()};c.prototype.msa=function(){this.Ua.msa()};c.prototype.XCa=function(d){var f=d.data.video;this.Ua.start(f,d.data.startTime);this.ds.start(f)};c.prototype.ZCa=function(){};c.prototype.ep=function(d){d=d.data.video;d.get("autoplay")&&d.get("state")!=h.PLAYING&&d.get("state")!=h.Zb&& d.set("state",h.PLAYING);this.o(new n(c.KF,{video:d}))};c.prototype.Hs=function(d){this.o(new n(c.JF,{video:d.data.video}))};c.prototype.H4a=function(){this.j.set("visible",!1)};c.prototype.dD=function(d){this.o(new n(c.MQ,{video:d.data.video}))};c.prototype.oU=function(d){this.o(new n(c.LF,{video:d.data.video,time:d.data.time,duration:d.data.duration}))};c.prototype.Mf=function(d){this.o(new n(c.gd,{state:d.data.state}))};c.KF="videoShow";c.JF="videoHide";c.MQ="videoEnd";c.LF="videoTimeChange";c.gd= "playbackStateChange";return c}); define("tdv/player/view/video/renderer/RendererOverlay","require exports tdv/constants/EventName tdv/view/constants/Cursor tdv/view/core/UIComponent tdv/player/view/UserInteractionWindow".split(" "),function(a,m,h,n,g,k){return function(e){function b(){var c=e.call(this)||this;c.set("toolTipDisabled",!0);c.set("cursor",n.LB);c.bind(h.$b,c.kd,c,!0);c.ZH=new k.iua;c.ZH.kra(k.iua.Nba);c.ZH.ig(c.g4=!1);[c.ZH.cc()].forEach(function(d,f){d.style.position="absolute";d.style.left="0";d.style.top="0";d.style.right= "0";d.style.bottom="0";d.style.overflow="hidden";d.style.zIndex=f}.bind(c));return c}P(b,e);b.prototype.Kb=function(){e.prototype.Kb.call(this);[this.ZH.cc()].forEach(function(c){c.parentElement||this.wa().tk(c)}.bind(this))};b.prototype.tra=function(c,d){this.g4!=c&&(this.g4=c,this.ZH.OQa(d),this.ZH.ig(c))};b.prototype.kd=function(){this.ZH.setSize(this.nb(),this.Mb())};return b}(g)}); define("tdv/player/view/video/renderer/adapters/VideoAdapter","require exports tdv/constants/EventName tdv/view/constants/ScaleMode tdv/binding/BindingsHandler tdv/player/view/webgl/components tdv/view/av/VideoPlayer tdv/player/view/renderer2d/adapters/CameraAdapter tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k,e,b,c){return function(){function d(f,l,p,q){this.video=f;this.zg=l;this.renderer=p;this.eb=q;this.o9=this.o9.bind(this);this.SA=this.SA.bind(this);this.Rn=this.Rn.bind(this);this.A9= this.A9.bind(this);g.ba(this.video,["video.levels.url","video.levels.srcObject","video.levels.width","video.levels.height"],this.o9,!0);g.ba(this.video,["zIndex"],this.SA,!0);g.ba(this.eb,["distance"],this.Rn,!0);g.ba(this.video,["scaleMode"],this.A9,!0);this.renderer.bind(h.$b,this.Mt,this,!0);c.M.bind(h.V,this.Ta,this,!0);this.Mt();this.fu()}d.prototype.dispose=function(){g.da(this.video,["video.levels.url","video.levels.srcObject","video.levels.width","video.levels.height"],this.o9);g.da(this.video, ["zIndex"],this.SA);g.da(this.eb,["distance"],this.Rn);g.da(this.video,["scaleMode"],this.A9);this.renderer.h(h.$b,this.Mt,this);c.M.h(h.V,this.Ta,this);this.Ca()};d.prototype.o9=function(){var f,l,p=e.yk(this.video.get("video"));this.level!==p&&(this.level=p,this.videoWidth=((f=this.level)===null||f===void 0?void 0:f.get("width"))||100,this.videoHeight=((l=this.level)===null||l===void 0?void 0:l.get("height"))||100,this.ho(),this.jg())};d.prototype.SA=function(){var f=this.video.get("zIndex");this.zIndex!== f&&(this.zIndex=f,this.jg())};d.prototype.Rn=function(){var f=this.eb.get("distance");this.distance!==f&&(this.distance=f,this.jg())};d.prototype.A9=function(){var f=this.video.get("scaleMode");this.ME!==f&&(this.ME=f,this.jg())};d.prototype.Mt=function(){var f=this.renderer.Xh()||1,l=this.renderer.Wh()||1;if(this.Pw!==f||this.Ow!==l)this.Pw=f,this.Ow=l,this.jg()};d.prototype.Ta=function(){this.jg()};d.prototype.jg=function(){if(this.F){var f=this.distance-.001*this.zIndex,l=c.isPresenting?2048:this.Pw, p=c.isPresenting?1024:this.Ow,q=2*Math.tan(Math.PI/180*b.xu*.5)*f,r=q*p/l;switch(this.ME){case n.NONE:l=this.videoWidth*q/l;p=this.videoHeight*r/p;break;case n.Tp:l=q;p=this.videoHeight*q/this.videoWidth;break;case n.Pk:l=this.videoWidth*r/this.videoHeight;p=r;break;case n.Ir:this.videoWidth*r>this.videoHeight*q?(l=this.videoWidth*r/this.videoHeight,p=r):(l=q,p=this.videoHeight*q/this.videoWidth);break;default:this.videoWidth*r>this.videoHeight*q?(l=q,p=this.videoHeight*q/this.videoWidth):(p=r,l= this.videoWidth*r/this.videoHeight)}r=this.F.O(k.ta);r.Le=l;r.Ye=p;r.positionZ=-f}};d.prototype.ho=function(){if(this.F){var f=this.F.O(k.qo);f.properties=this.video;f.M=this.video;f.Nsa=this.video.get("video")}};d.prototype.Hsa=function(){if(this.F){var f=this.F.O(k.wd,!0);f.pB=!0;f.eF=!0;f.M=this.video;f.lt=!0;f.Xt=!0}};d.prototype.fu=function(){var f=this.zg.T.sc("Video");f.N(k.pb).F=this.zg;f.N(k.Plane);f.N(k.ta);f.N(k.qo);f.N(k.wd);this.F=f;this.jg();this.ho();this.Hsa()};d.prototype.Ca=function(){this.F&& (this.F.T.dd(this.F),this.F=null)};return d}()}); define("tdv/player/view/video/renderer/adapters/PlayAdapter","require exports tdv/binding/Bindable tdv/constants/EventName tdv/view/util/Assets tdv/binding/BindingsHandler tdv/player/view/webgl/components tdv/player/script/ImageResourceLevel tdv/player/script/ImageResource tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k,e,b,c,d){return function(){function f(l,p){this.zg=l;this.eb=p;this.visible=!1;this.Rn=this.Rn.bind(this);k.ba(this.eb,["distance"],this.Rn,!0);d.M.bind(n.V,this.Ta,this, !0)}f.prototype.dispose=function(){k.da(this.eb,["distance"],this.Rn);d.M.h(n.V,this.Ta,this);this.Ca()};f.prototype.ig=function(l){this.visible!=l&&(this.visible=l,this.ho())};f.prototype.Rn=function(){var l=this.eb.get("distance");this.distance!==l&&(this.distance=l,this.jg())};f.prototype.Ta=function(){this.ix()};f.prototype.ix=function(){d.isPresenting!=!!this.F&&(d.isPresenting?this.fu():this.Ca())};f.prototype.jg=function(){if(this.F){var l=this.distance-.005,p=2*Math.tan(Math.PI/180*f.xu*.5)* l,q=p*g.t_/g.hL,r=this.F.O(e.ta);r.Le=p;r.Ye=q;r.positionZ=-l}};f.prototype.ho=function(){if(this.F){if(!this.ww){var l=new c,p=new b;p.set("url",g.Fx);p.set("width",g.hL);p.set("height",g.t_);l.set("levels",[p]);this.ww=l}this.properties||(l=new h,l.set("width",g.hL),l.set("height",g.t_),l.set("opacity",1),this.properties=l);l=this.F.O(e.Ni);l.properties=this.properties;l.M=this.ww;l.ww=this.ww;this.properties.set("enabled",this.visible)}};f.prototype.fu=function(){if(!this.F){var l=this.zg.T.sc("VideoPlay"); l.N(e.pb).F=this.zg;l.N(e.Plane);l.N(e.ta);l.N(e.Ni);this.F=l;this.jg();this.ho()}};f.prototype.Ca=function(){this.F&&(this.F.T.dd(this.F),this.F=null)};f.xu=10;return f}()}); define("tdv/player/view/video/renderer/adapters/PlaybackBarAdapter",["require","exports","tdv/constants/EventName"],function(a,m,h){return function(){function n(g){this.eb=g;this.dg=this.eb.get("application");this.enabled=!1;this.container=this.GE=this.kg=null}n.prototype.dispose=function(){this.Ra(!1)};n.prototype.Ra=function(g){this.enabled!==g&&((this.enabled=g)?this.Sdb():this.oeb())};n.prototype.Sdb=function(){if(!this.kg){this.ndb();this.kg=this.dg.Ai("XRPanel");this.kg.set("content",this.container); this.kg.set("autoCenter",!1);this.kg.set("modal",!1);this.kg.set("yaw",0);this.kg.set("pitch",-45);this.kg.set("distance",1);this.kg.set("draggable",!1);var g=Math.PI/180;g=2*this.kg.get("distance")*Math.tan(n.xu/2*g)/n.Sua;this.kg.set("pixelScale",g);this.kg.Zqa(this.eb.get("application"));this.kg.OJa()}};n.prototype.oeb=function(){this.kg&&(this.kg.Fna(),this.ceb(),this.dg.iw(this.kg),this.kg=null)};n.prototype.ndb=function(){if(!this.GE){var g=this.dg.Ai("PlaybackBar");g.set("left",25);g.set("top", 22);g.set("right",25);g.set("height",4);g.set("backgroundColor",["#FFFFFF"]);g.set("backgroundOpacity",1);g.set("borderColor","#FFFFFF");g.set("borderRadius",0);g.set("borderSize",0);g.set("liveDragging",!0);g.set("playheadBackgroundColor",["#3399FF"]);g.set("playheadBorderRadius",0);g.set("playheadBorderColor","#ffffff");g.set("playheadBorderSize",2);g.set("playheadBorderRadius",10);g.set("playheadHeight",20);g.set("playheadWidth",20);g.set("playheadShadow",!1);g.set("barBackgroundColor",["#3399FF"]); g.set("barBackgroundColorRatios",[0]);g.set("barBorderColor","#000000");g.set("barBorderSize",0);g.set("barBorderRadius",0);this.GE=g}if(!this.container){g=this.dg.Ai("Container");g.set("width",n.Sua);g.set("height",50);g.set("backgroundColor","#ffffff");g.set("backgroundOpacity",.2);g.set("borderRadius",25);g.set("children",[this.GE]);g.set("opacity",.3);var k=this.dg.Ai("FadeInEffect");k.set("duration",500);k.set("easing","cubic_in");g.set("showEffect",k);k=this.dg.Ai("FadeOutEffect");k.set("duration", 500);k.set("easing","cubic_out");g.set("hideEffect",k);g.bind(h.uc,this.BJa,this,!0);g.bind(h.Eb,this.AJa,this,!1);this.container=g}this.Nt||(this.Nt=this.dg.Ai("Effect"),this.Nt.set("duration",300),this.Nt.set("easing","cubic_in"),this.Nt.bind(h.Zd,this.XOa,this,!0));this.jcb()};n.prototype.XOa=function(){this.container.set("opacity",.2+.8*this.Nt.tm())};n.prototype.ceb=function(){this.Sjb();this.GE&&(this.dg.iw(this.GE),this.GE=null);this.Nt&&(this.Nt.h(h.Zd,this.XOa,this),this.dg.iw(this.Nt),this.Nt= null);this.container&&(this.container.h(h.uc,this.BJa,this),this.container.h(h.Eb,this.AJa,this),this.dg.iw(this.container),this.container=null)};n.prototype.jcb=function(){this.dPa=this.eb.get("externalPlaybackBar");this.eb.set("externalPlaybackBar",this.GE)};n.prototype.Sjb=function(){this.eb.get("externalPlaybackBar")===this.GE&&(this.eb.set("externalPlaybackBar",this.dPa),this.dPa=null)};n.prototype.BJa=function(){this.Nt.play()};n.prototype.AJa=function(){this.Nt.reverse()};n.Sua=500;n.xu=40; return n}()}); define("tdv/player/view/video/renderer/Renderer","require exports tdv/binding/BindingsHandler tdv/player/view/renderer2d/Renderer tdv/player/view/video/renderer/RendererOverlay tdv/player/view/video/renderer/adapters/VideoAdapter tdv/player/view/video/renderer/adapters/PlayAdapter tdv/player/view/video/renderer/adapters/PlaybackBarAdapter tdv/player/view/util/XR".split(" "),function(a,m,h,n,g,k,e,b,c){return function(d){function f(l,p,q){l=d.call(this,l,p,q)||this;l.Xpa=l.Xpa.bind(l);l.Dc=null;l.lW= [];l.NI=[];l.raa();h.ba(l.TC,["displayPlaybackBarInXR","displayPlaybackBar"],l.Xpa,!0);return l}P(f,d);f.prototype.Kb=function(){d.prototype.Kb.call(this);this.Dc==null&&(this.Dc=new g,this.Dc.xa({left:0,top:0,right:0,bottom:0}),this.mb(this.Dc),this.raa())};f.prototype.nY=function(){var l=this;d.prototype.nY.call(this);this.hf.n$(this.TC.get("useVideoFrameRate")?2:void 0);this.Cdb();this.Bdb();this.lW.forEach(function(p){l.PJa(p)})};f.prototype.Zpa=function(){d.prototype.Zpa.call(this);this.raa(); this.Csa()};f.prototype.$bb=function(l){this.lW.includes(l)||(this.lW.push(l),this.hf&&this.PJa(l))};f.prototype.Cdb=function(){this.m6a=new b(this.P)};f.prototype.PJa=function(l){var p=new k(l,this.v1.mj(),this,this.P);this.NI.push(p);this.hf.n$(this.TC.get("useVideoFrameRate")&&this.agb(l)<45?2:void 0);this.q$(this.NI.length>0)};f.prototype.Bdb=function(){this.vDa=new e(this.v1.mj(),this.P)};f.prototype.Ijb=function(l){l=this.lW.indexOf(l);l<0||(this.lW.splice(l,1),this.hf&&this.neb(this.NI[l]))}; f.prototype.neb=function(l){var p=this.NI.indexOf(l);p<0||(this.NI.splice(p,1),l.dispose(),this.q$(this.NI.length>0))};f.prototype.tra=function(l){this.g4=l;this.raa()};f.prototype.raa=function(){var l=this.g4&&this.NI.length>0;this.Dc&&this.Dc.tra(l);this.vDa&&this.vDa.ig(l)};f.prototype.agb=function(l){l=l.get("video");return(l&&l.get("levels")||[]).reduce(function(p,q){return Math.max(p,q.get("framerate"))},0)||30};f.prototype.Ta=function(){d.prototype.Ta.call(this);this.Csa()};f.prototype.Xpa= function(){this.Csa()};f.prototype.Csa=function(){var l,p=c.isPresenting&&this.tS&&this.TC.get("displayPlaybackBarInXR",this.TC.get("displayPlaybackBar"));(l=this.m6a)===null||l===void 0||l.Ra(p)};return f}(n)}); define("tdv/player/script/VideoPlayer","require tdv/utils tdv/constants/EventName tdv/constants/Key tdv/player/parser/ClassInfo tdv/player/script/PlaybackMediaPlayer tdv/constants/PlaybackState tdv/player/view/video/control/Controller tdv/player/view/video/renderer/Renderer tdv/view/util/KeyboardControl".split(" "),function(a){var m=a("tdv/utils"),h=a("tdv/constants/EventName"),n=a("tdv/constants/Key"),g=a("tdv/player/parser/ClassInfo"),k=a("tdv/player/script/PlaybackMediaPlayer"),e=a("tdv/constants/PlaybackState"), b=a("tdv/player/view/video/control/Controller"),c=a("tdv/player/view/video/renderer/Renderer"),d=a("tdv/view/util/KeyboardControl");a=g.define("VideoPlayer",k,function(){k.call(this,"video");this.PH=this.PH.bind(this);this.fs=this.r5=this.QI=this.ij=!1;this.U=this.j=null;this.ac=this.vf=0;this.Ro=!1;this.be=m.lr(this.Sh,this)});a.prototype.seek=function(f){this.pI(f)};a.prototype.play=function(){this.UH()};a.prototype.pause=function(){this.TH()};a.prototype.stop=function(){this.cD()};a.prototype.restart= function(){this.bD()};a.prototype.set=function(f,l){if(this.get(f)!=l){switch(f){case "startTime":this.r5=!0;this.be();break;case "video":this.QI=!0;this.be();break;case "viewerArea":this.ij=!0;this.be();break;case "displayPlaybackBar":this.fs=!0,this.be()}k.prototype.set.call(this,f,l)}};a.prototype.get=function(f,l){switch(f){case "currentTime":return this.U&&this.U.getTime()||0}return k.prototype.get.call(this,f,l)};a.prototype.rr=function(f){this.Ro!==f&&((this.Ro=f)?document.addEventListener("keydown", this.PH,!0):document.removeEventListener("keydown",this.PH,!0))};a.prototype.PH=function(f){d.yp()||(f.code==n.ua.iL||f.code==n.ua.e_)&&this.U&&this.U.msa()};a.prototype.Sh=function(){this.ij&&(this.ij=!1,this.oy(),this.get("viewerArea")&&this.ny(),this.kV(this.get("viewerArea")),this.QI=!0);var f=!1;if(this.j&&(this.QI||this.r5)){var l=this.get("video"),p=this.get("startTime")||0;if(l&&!this.j.Vb()){this.be();return}this.r5=this.QI=!1;this.ac=this.vf=0;f=!0;l?(this.eK(),this.U.K$(l,p)):this.U.bB()}this.fs&& (this.fs=!1,f=!0);f&&this.Zz()};a.prototype.RN=function(){this.set("video",null)};a.prototype.ny=function(){var f=this.get("application"),l=this.get("viewerArea");this.j=new c(f,l,this);this.j.xa({left:0,top:0,bottom:0,right:0});l.mb(this.j);l.bind(h.ma,this.cDa,this,!0);this.U=new b(l,this.j);this.U.bind(b.KF,this.ep,this);this.U.bind(b.JF,this.Hs,this);this.U.bind(b.LF,this.oU,this,!0);this.U.bind(b.gd,this.Mf,this);f.bind(h.L("mute"),this.VT,this);this.U.Bg(f.get("mute",!1));this.xD(!0)};a.prototype.oy= function(){if(this.j){this.U.h(b.KF,this.ep,this);this.U.h(b.JF,this.Hs,this);this.U.h(b.LF,this.oU,this);this.U.h(b.gd,this.Mf,this);this.U.clear();this.get("application").h(h.L("mute"),this.VT,this);var f=this.j.getParent();f.removeChild(this.j);f.h(h.ma,this.cDa,this,!0);this.j=null;this.xD(!1)}};a.prototype.VT=function(){this.j&&this.U.Bg(this.get("application").get("mute",!1))};a.prototype.Mf=function(f){f=f.data.state;this.j&&this.j.tra(this.get("displayPlayOverlay")&&f!=e.PLAYING,this.vf<.5); this.Jd(f)};a.prototype.ep=function(f){var l=this.get("viewerArea");(this.ve=l&&l.ve)&&this.ve.bind(h.ma,this.dDa,this,!0);this.bja=!1;f=f.data.video;f.bind(h.ma,this.YCa,this,!0);this.jT(f)};a.prototype.Hs=function(f){this.ve&&this.ve.h(h.ma,this.dDa,this,!0);this.ve=null;f=f.data.video;f.h(h.ma,this.YCa,this);this.iT(f)};a.prototype.oU=function(f){this.vf=f.data.time;this.ac=f.data.duration;this.Zz()};a.prototype.cDa=function(){this.bja?this.bja=!1:this.rBa()};a.prototype.YCa=function(){this.rBa()}; a.prototype.rBa=function(){switch(this.get("clickAction")){case "play_pause":this.get("state")!=e.PLAYING?this.U.play():this.U.pause()}};a.prototype.dDa=function(){this.bja=!0};a.prototype.zU=function(f){this.pI(f.data.position)};a.prototype.rn=function(){this.U.play()};a.prototype.Xs=function(){this.U.stop()};a.prototype.tv=function(){this.U.pause()};a.prototype.pI=function(f){this.U&&this.U.setTime(f)};a.prototype.Zz=function(){if(this.j){var f=this.j.getParent();this.ac>0&&this.get("displayPlaybackBar")? f.xa({playbackBarPosition:this.vf,playbackBarDuration:this.ac,playbackBarVisible:!0}):f.set("playbackBarVisible",!1)}};return a}); define("tdv/player/script/VideoPlayListItem",["require","tdv/player/parser/ClassInfo","tdv/player/script/MediaPlayer","tdv/player/script/PlayListItem"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/MediaPlayer"),n=a("tdv/player/script/PlayListItem");a=m.define("VideoPlayListItem",n,function(){n.call(this)});a.prototype.start=function(){n.prototype.start.call(this);var g=this.get("player");g&&(g.bind(h.di,this.ep,this),g.set("video",this.get("media")),g.set("startTime", this.get("startTime")))};a.prototype.stop=function(){var g=this.get("player");g&&(g.h(h.di,this.ep,this),g.get("video")==this.get("media")&&g.set("video",null));n.prototype.stop.call(this)};a.prototype.ep=function(g){g.data.media==this.get("media")&&(this.get("player").h(h.di,this.ep,this),this.get("player").bind(h.mo,this.Hs,this),this.PD())};a.prototype.Hs=function(g){g.data.media==this.get("media")&&(this.get("player").h(h.mo,this.Hs,this),this.stop(),this.end())};return a}); define("tdv/player/script/VideoResourceLevel",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/binding/Bindable");return a("tdv/player/parser/ClassInfo").define("VideoResourceLevel",m,function(){m.call(this)})}); define("tdv/player/script/VideoResource",["require","tdv/binding/Bindable","tdv/player/parser/ClassInfo","tdv/player/view/util/Capabilities","tdv/player/script/VideoResourceLevel"],function(a){var m=a("tdv/binding/Bindable"),h=a("tdv/player/parser/ClassInfo"),n=a("tdv/player/view/util/Capabilities"),g=a("tdv/player/script/VideoResourceLevel");a=h.define("VideoResource",m,function(){m.call(this);this.Wha=new g;this.Wha.set("type","video/mp4");this.aia=new g;this.aia.set("type","video/ogg");this.Dma= new g;this.Dma.set("type","video/webm")});a.prototype.get=function(k,e){switch(k){case "levels":e=[];var b=this.get("mp4Url");b&&(this.Wha.set("url",b),e.push(this.Wha));if(b=this.get("oggUrl"))this.aia.set("url",b),e.push(this.aia);if(b=this.get("webmUrl"))this.Dma.set("url",b),e.push(this.Dma);e.forEach(function(c){c.set("width",this.get("width"));c.set("height",this.get("height"))}.bind(this))}return m.prototype.get.call(this,k,e)};a.prototype.rl=function(){var k=this.get("webmUrl"),e=this.get("oggUrl"), b=this.get("mp4Url");return b&&n.h8?b:k&&n.Noa?k:e&&n.Moa?e:b||k||e};return a});define("tdv/player/script/VignetteModel3DPostprocessing",["require","tdv/player/parser/ClassInfo","tdv/player/script/Model3DPostprocessing"],function(a){var m=a("tdv/player/parser/ClassInfo"),h=a("tdv/player/script/Model3DPostprocessing");return m.define("VignetteModel3DPostprocessing",h,function(){h.call(this)})}); define("tdv/view/html/WebFrame","require exports tdv/constants/EventName tdv/player/view/util/Device tdv/player/view/util/URL tdv/view/core/UIComponent tdv/view/helpers/DOMUpdateQueue tdv/view/core/visuals/VisualsType".split(" "),function(a,m,h,n,g,k,e,b){return function(c){function d(){var f=c.call(this)||this;f.gf("WebFrame");f.Md=null;f.Nc=null;f.Aj=null;f.bT=null;f.tia=f.tia.bind(f);f.o3=f.o3.bind(f);f.bind(h.od,f.V5a,f,!0);f.bind(h.jd,f.U5a,f,!0);return f}P(d,c);d.prototype.Pb=function(){c.prototype.Pb.call(this); this.m("url");this.m("allowTopNavigation",!0);this.m("backgroundColor","#ffffff");this.m("insetBorder",!1);this.m("scrollEnabled",!0);this.m("unloadWhenHidden",!0)};d.prototype.w8=function(f,l){return f.getType()!==b.DOM?!1:c.prototype.w8.call(this,f,l)};d.prototype.V5a=function(){this.yD("url")};d.prototype.U5a=function(){this.yD("url")};d.prototype.Kb=function(){c.prototype.Kb.call(this);this.Md||(this.Md=document.createElement("div"),this.Md.style.position="absolute",this.Md.style.left="0",this.Md.style.top= "0",this.Md.style.width="100%",this.Md.style.height="100%",this.wa().tk(this.Md));this.Nc||(this.Nc=document.createElement("iframe"),this.Nc.style.position="absolute",this.Nc.style.left="0",this.Nc.style.top="0",this.Nc.setAttribute("allowfullscreen","true"),this.Nc.setAttribute("allow","accelerometer; autoplay; camera; display-capture; fullscreen; geolocation; gyroscope; magnetometer; microphone; vr; xr-spatial-tracking"),this.Md.appendChild(this.Nc));this.Aj||(this.Aj=document.createElement("div"), this.Aj.style.textShadow="0 0 5px rgba(255,255,255,0.5)",this.Aj.style.display="none",this.Aj.style.color="#000000",this.Aj.style.fontWeight="300",this.Aj.style.fontFamily="Tahoma, Geneva, sans-serif",this.Aj.style.fontSize=n.ub()?"5vmin":"20px",this.Aj.style.position="absolute",this.Aj.style.top="50%",this.Aj.style.left="50%",this.Aj.style.textAlign="center",this.Aj.style.transform="translate(-50%, -50%)",this.Aj.style.width="90%",this.Md.appendChild(this.Aj))};d.prototype.jb=function(){if(this.S("url")){var f= this.G("url");f&&this.Py?this.PEa(f):(!f||this.get("unloadWhenHidden"))&&this.PEa("");this.$("url")}this.S("insetBorder")&&(f=this.G("insetBorder"),this.Nc.setAttribute("frameborder",f?"1":"0"),this.$("insetBorder"));this.S("allowTopNavigation")&&(this.G("allowTopNavigation")?this.Nc.removeAttribute("sandbox"):this.Nc.setAttribute("sandbox","allow-downloads allow-forms allow-modals allow-orientation-lock allow-pointer-lock allow-popups allow-popups-to-escape-sandbox allow-presentation allow-same-origin allow-scripts allow-storage-access-by-user-activation"), this.$("allowTopNavigation"));this.S("scrollEnabled")&&(f=this.G("scrollEnabled"),this.Nc.setAttribute("scrolling",f?"auto":"no"),this.Md.style.overflow=f?"auto":"hidden",this.Md.style["-webkit-overflow-scrolling"]=f?"touch":"auto",this.$("scrollEnabled"));c.prototype.jb.call(this)};d.prototype.ou=function(){this.Nc&&e.Udb(this.Nc,{width:this.nb()+"px",height:this.Mb()+"px"});c.prototype.ou.call(this)};d.prototype.refresh=function(){this.G("url")&&this.Py&&(this.sga(),this.nC(),this.Ala(),this.Nc.setAttribute("src", ""),setTimeout(function(){this.yFa();this.dwa();this.Nc.setAttribute("src",this.G("url"))}.bind(this),30))};d.prototype.PEa=function(f){this.Nc.getAttribute("src")!=f&&(this.sga(),f?(this.yFa(),this.dwa()):(this.nC(),this.Ala()),this.Nc.setAttribute("src",f))};d.prototype.tia=function(){this.bT=null;this.K3a()&&this.v9a()};d.prototype.o3=function(){this.sga();this.nC();this.Ala()};d.prototype.dwa=function(){this.Nc.addEventListener("load",this.o3)};d.prototype.Ala=function(){this.Nc.removeEventListener("load", this.o3)};d.prototype.nC=function(){this.bT&&(clearTimeout(this.bT),this.bT=null)};d.prototype.yFa=function(){this.nC();this.bT=setTimeout(this.tia,d.cVa)};d.prototype.K3a=function(){if(window.location.protocol=="https:"){var f=this.Nc.getAttribute("src");if(g.parse(f).protocol!="https:")return!0}return!1};d.prototype.v9a=function(){this.Aj.textContent="A secure web page served over HTTPS can not display insecure content served over HTTP.";this.Aj.style.display="block"};d.prototype.sga=function(){this.Aj.style.display= "none"};d.cVa=3E3;return d}(k)});define("tdv/player/script/WebFrame",["require","tdv/view/html/WebFrame","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/view/html/WebFrame");a=a("tdv/player/parser/ClassInfo").define("WebFrame",m,function(){m.call(this)});a.prototype.refresh=function(){m.prototype.refresh.call(this)};return a}); define("tdv/view/containers/windows/Window","require exports tdv/utils tdv/constants/EventName tdv/events/Event tdv/view/containers/Container tdv/view/containers/windows/BaseWindow".split(" "),function(a,m,h,n,g,k,e){return function(b){function c(){var d=b.call(this)||this;d.gf("Window");d.kga=0;d.lga=0;d.mFa=!1;d.Eka=!1;d.bind(n.$b,d.tbb,d,!1);d.bind(n.ma,d.qbb,d,!1);d.bind(n.ZK,d.rbb,d,!1);d.bind(n.TQ,d.ubb,d,!1);d.g6=0;d.tg=new k;d.tg.xa({visible:!1,includeInLayout:!1,layout:"absolute",height:"100%", width:"100%",backgroundOpacity:0,contentOpaque:!1});d.tg.bind(n.$b,d.yHa,d,!1);d.tg.bind(n.TQ,d.kbb,d,!1);d.tg.bind(n.ZK,d.jbb,d,!1);d.tg.bind(n.ma,d.ibb,d,!1);d.tg.mb(d);return d}P(c,b);c.prototype.set=function(d,f){switch(d){case "maxWidth":this.Fma=f;this.X5();break;case "maxHeight":this.Ema=f;this.X5();break;case "shadow":this.mFa=f;this.sHa();break;default:b.prototype.set.call(this,d,f)}};c.prototype.show=function(d,f){this.L6(d);f&&this.Lcb();f=d.get("children");d.set("children",f.concat([this.tg])); h.defer(function(){this.tg.set("visible",!0)}.bind(this))};c.prototype.oe=function(){this.K6();this.set("visible",!1)};c.prototype.L6=function(d){b.prototype.L6.call(this);this.X5(d);this.tg.set("visible",!1);this.eYa()};c.prototype.K6=function(){b.prototype.K6.call(this);this.g6=0;this.d5(!1)};c.prototype.eYa=function(){var d=this.G("modal"),f=this.G("veilShowEffect"),l=this.G("veilHideEffect");d&&f?this.tg.set("showEffect",f):this.tg.set("showEffect",null);d&&l?this.tg.set("hideEffect",l):this.tg.set("hideEffect", null)};c.prototype.Lcb=function(){this.set("centerX",0);this.set("centerY",0)};c.prototype.Pb=function(){this.Il(c.ad)};c.prototype.ibb=function(){this.g6++;setTimeout(function(){this.g6>0&&this.oe()}.bind(this),100)};c.prototype.qbb=function(){this.g6--};c.prototype.tza=function(d){this.kga=d.pageX;this.lga=d.pageY;this.Vb().bind(n.gb,this.KHa,this,!0);this.Vb().bind(n.$a,this.LHa,this,!0)};c.prototype.KHa=function(d){this.set("centerX",this.get("centerX")+(d.pageX-this.kga));this.set("centerY", this.get("centerY")+(d.pageY-this.lga));this.kga=d.pageX;this.lga=d.pageY;this.rHa()};c.prototype.LHa=function(){this.Vb().h(n.gb,this.KHa,this);this.Vb().h(n.$a,this.LHa,this)};c.prototype.yHa=function(){this.X5()};c.prototype.kbb=function(){this.set("visible",!0)};c.prototype.jbb=function(){this.tg.h(n.$b,this.yHa,this);var d=this.tg.getParent();d&&d.removeChild(this.tg);this.o(new g(n.CB))};c.prototype.tbb=function(){this.rHa()};c.prototype.ubb=function(){this.d5(!0)};c.prototype.rbb=function(){this.tg.set("visible", !1)};c.prototype.d5=function(d){this.Eka=d;this.sHa()};c.prototype.sHa=function(){b.prototype.set.call(this,"shadow",this.Eka&&this.mFa)};c.prototype.fgb=function(d){if(this.Fma!==void 0)return this.Fma;if(d)return d.nb()};c.prototype.egb=function(d){if(this.Ema!==void 0)return this.Ema;if(d)return d.Mb()};c.prototype.X5=function(d){d||(d=this.getParent());b.prototype.set.call(this,"maxWidth",this.fgb(d));b.prototype.set.call(this,"maxHeight",this.egb(d))};c.prototype.rHa=function(){var d=this.tg.nb(), f=this.nb(),l=this.get("centerX");f=d*.5+l-f*.5;var p=this.Vm.u.Dd,q=this.Vm.nb(),r=Math.min(q,30);d=d-p-r;p=-(p+q-r);fd&&this.set("centerX",l-(f-d));d=this.tg.Mb();f=this.Mb();l=this.get("centerY");f=d*.5+l-f*.5;p=this.Vm.u.ie;q=this.Vm.Mb();r=Math.min(q,5);d=d-p-r;p=-(p+q-r);fd&&this.set("centerY",l-(f-d))};c.prototype.jb=function(){this.G("modal")?(this.Oc(c.vva,c.wva,[this.tg],!0,!0),this.tg.set("contentOpaque",!0)):(this.tg.set("backgroundOpacity", 0),this.tg.set("contentOpaque",!1));b.prototype.jb.call(this)};c.wva={veilOpacity:"backgroundOpacity",veilBlur:"backgroundBlur",veilColor:"backgroundColor",veilColorRatios:"backgroundColorRatios",veilColorDirection:"backgroundColorDirection"};c.vva=Object.keys(c.wva);c.ad=Object.assign({},e.ad,function(){for(var d=Object.assign({},e.ad,{centerX:0,centerY:0,veilShowEffect:void 0,veilHideEffect:void 0}),f=[].concat(c.vva),l=0;lm.left&&this.bottom>m.top};a.prototype.containsPoint=function(m,h){return this.left<=m&&m<=this.right&& this.top<=h&&h<=this.bottom};a.prototype.contains=function(m){return this.left<=m.left&&this.top<=m.top&&this.right>=m.right&&this.bottom>=m.bottom};a.prototype.intersection=function(m){var h=this.left>m.left?this.left:m.left,n=this.top>m.top?this.top:m.top;return new a(h,n,(this.rightm.right? this.right:m.right)-h,(this.bottom>m.bottom?this.bottom:m.bottom)-n)};a.prototype.QSa=function(m,h){return new a(this.left+m,this.top+h,this.width,this.height)};a.union=function(m){if(m.length===0)return new a(0,0,0,0);for(var h=m[0].left,n=m[0].top,g=m[0].right,k=m[0].bottom,e=1;e0,u=t?Math.max(0,-r.hu+r.co):0;this.ocb= (r.x||0)+r.offsetX-(t?Math.max(0,-r.gu+r.co):0);this.pcb=(r.y||0)+r.offsetY-u;return!0}return!1};q.prototype.knb=function(r){var t=r.uk&&r.uk.length>0,u=!!r.$v,v=r.nm>0&&(r.Te>0&&r.borderLeftColor||r.Ue>0&&r.borderTopColor||r.xf>0&&r.borderRightColor||r.wf>0&&r.borderBottomColor);if(!r.visible||!(t||u||v)){if(this.K.visible&&this.zO)return this.Xq&&(this.Xq.width=0,this.Xq.height=0),this.zO=null,!0}else if(this.K.visible!==r.visible||this.K.width!==r.width||this.K.height!==r.height||this.K.uk!==r.uk|| this.K.OD!==r.OD||this.K.nm!==r.nm||this.K.Te!==r.Te||this.K.borderLeftColor!==r.borderLeftColor||this.K.Ue!==r.Ue||this.K.borderTopColor!==r.borderTopColor||this.K.xf!==r.xf||this.K.borderRightColor!==r.borderRightColor||this.K.wf!==r.wf||this.K.borderBottomColor!==r.borderBottomColor||this.K.$v!==r.$v||this.K.kB!==r.kB||this.K.gu!==r.gu||this.K.hu!==r.hu||this.K.co!==r.co||this.K.tK!==r.tK||this.K.shadowColor!==r.shadowColor||this.K.$w!==r.$w){this.Xq||(this.Xq=document.createElement("canvas")); var w=this.Xq,y=r.kB&&r.$w>0,x=y?Math.max(0,-r.gu+r.co):0,z=y?Math.max(0,-r.hu+r.co):0,A=y?Math.max(0,r.hu+r.co):0;w.width=r.width+x+(y?Math.max(0,r.gu+r.co):0);w.height=r.height+z+A;A=w.getContext("2d");A.clearRect(0,0,w.width,w.height);var D=Math.min(Math.floor(r.width/2),Math.floor(r.height/2));w=Math.min(D,r.borderTopLeftRadius);var F=Math.min(D,r.borderTopRightRadius),C=Math.min(D,r.borderBottomRightRadius);D=Math.min(D,r.borderBottomLeftRadius);var B=[Math.max(0,w-Math.max(r.Ue,r.Te)),Math.max(0, F-Math.max(r.Ue,r.xf)),Math.max(0,C-Math.max(r.wf,r.xf)),Math.max(0,D-Math.max(r.wf,r.Te))],H=[w,F,C,D];if(y){y=A.globalAlpha;A.globalAlpha=r.$w;A.fillStyle=r.shadowColor;A.shadowColor=r.shadowColor;A.shadowBlur=r.co;A.shadowOffsetX=r.gu;A.shadowOffsetY=r.hu;A.beginPath();A.roundRect(x,z,r.width,r.height,H);A.fill();A.shadowColor="rgba(0, 0, 0, 0)";var E=A.globalCompositeOperation;A.globalCompositeOperation="destination-out";A.globalAlpha=1;A.fillStyle="#ffffff";A.beginPath();A.roundRect(x,z,r.width, r.height,H);A.fill();A.globalCompositeOperation=E;A.globalAlpha=y}A.translate(x,z);E=B.some(function(R){return R>0});if(t||u){y=A.globalAlpha;A.globalAlpha=r.nm;A.translate(r.Te,r.Ue);var G=Math.max(0,r.width-(r.Te+r.xf)),N=Math.max(0,r.height-(r.Ue+r.wf));if(t){var O=r.OD==h.n_?A.createLinearGradient(0,0,G,0):A.createLinearGradient(0,0,0,N);k.QIa(r).forEach(function(R){O.addColorStop(R.ratio,R.color)});A.fillStyle=O;A.roundRect(0,0,G,N,B);A.fill()}u&&(E&&(A.save(),A.roundRect(0,0,G,N,B),A.clip()), A.drawImage(r.$v,0,0,G,N),E&&A.restore());A.translate(-r.Te,-r.Ue);A.globalAlpha=y}v&&(t=[[0,w],[w,0],[r.width-F,0],[r.width,F],[r.width,r.height-C],[r.width-C,r.height],[D,r.height],[0,r.height-D]],u=[[r.Te,r.Ue+B[0]],[r.Te+B[0],r.Ue],[r.width-r.xf-B[1],r.Ue],[r.width-r.xf,r.Ue+B[1]],[r.width-r.xf,r.height-r.wf-B[2]],[r.width-r.xf-B[2],r.height-r.wf],[r.Te+B[3],r.height-r.wf],[r.Te,r.height-r.wf-B[3]]],v=[[0,0],[r.width,0],[r.width,r.height],[0,r.height]],y=[[r.Te,r.Ue],[r.width-r.xf,r.Ue],[r.width- r.xf,r.height-r.wf],[r.Te,r.height-r.wf]],r.Ue>0&&(A.beginPath(),A.moveTo(t[1][0],t[1][1]),A.lineTo(t[2][0],t[2][1]),A.lineTo(u[2][0],u[2][1]),A.lineTo(u[1][0],u[1][1]),A.fillStyle=l.gaa(r.borderTopColor,r.nm),A.fill()),F>0&&(A.beginPath(),A.moveTo(t[2][0],t[2][1]),A.arcTo(v[1][0],v[1][1],t[3][0],t[3][1],H[1]),A.lineTo(u[3][0],u[3][1]),B[1]>0?A.arcTo(y[1][0],y[1][1],u[2][0],u[2][1],B[1]):A.lineTo(u[2][0],u[2][1]),A.fillStyle=r.borderTopColor||r.borderRightColor,A.fill()),r.xf>0&&(A.beginPath(),A.moveTo(t[3][0], t[3][1]),A.lineTo(t[4][0],t[4][1]),A.lineTo(u[4][0],u[4][1]),A.lineTo(u[3][0],u[3][1]),A.fillStyle=l.gaa(r.borderRightColor,r.nm),A.fill()),C>0&&(A.beginPath(),A.moveTo(t[4][0],t[4][1]),A.arcTo(v[2][0],v[2][1],t[5][0],t[5][1],H[2]),A.lineTo(u[5][0],u[5][1]),B[2]>0?A.arcTo(y[2][0],y[2][1],u[4][0],u[4][1],B[2]):A.lineTo(u[4][0],u[4][1]),A.fillStyle=r.borderBottomColor||r.borderRightColor,A.fill()),r.wf>0&&(A.beginPath(),A.moveTo(t[5][0],t[5][1]),A.lineTo(t[6][0],t[6][1]),A.lineTo(u[6][0],u[6][1]),A.lineTo(u[5][0], u[5][1]),A.fillStyle=l.gaa(r.borderBottomColor,r.nm),A.fill()),D>0&&(A.beginPath(),A.moveTo(t[6][0],t[6][1]),A.arcTo(v[3][0],v[3][1],t[7][0],t[7][1],H[3]),A.lineTo(u[7][0],u[7][1]),B[3]>0?A.arcTo(y[3][0],y[3][1],u[6][0],u[6][1],B[3]):A.lineTo(u[6][0],u[6][1]),A.fillStyle=r.borderBottomColor||r.borderLeftColor,A.fill()),r.Te>0&&(A.beginPath(),A.moveTo(t[7][0],t[7][1]),A.lineTo(t[0][0],t[0][1]),A.lineTo(u[0][0],u[0][1]),A.lineTo(u[7][0],u[7][1]),A.fillStyle=l.gaa(r.borderLeftColor,r.nm),A.fill()),w> 0&&(A.beginPath(),A.moveTo(t[0][0],t[0][1]),A.arcTo(v[0][0],v[0][1],t[1][0],t[1][1],H[0]),A.lineTo(u[1][0],u[1][1]),B[0]>0?A.arcTo(y[0][0],y[0][1],u[0][0],u[0][1],B[0]):A.lineTo(u[0][0],u[0][1]),A.fillStyle=r.borderTopColor||r.borderLeftColor,A.fill()));A.translate(-x,-z);return!0}return!1};q.prototype.wnb=function(r){return this.K.visible!==r.visible||this.K.x!==r.x||this.K.y!==r.y||this.K.width!==r.width||this.K.height!==r.height||this.K.offsetX!==r.offsetX||this.K.offsetY!==r.offsetY||this.K.cursor!== r.cursor?(r.visible?(this.h7=new c((r.x||0)+r.offsetX||0,(r.y||0)+r.offsetY||0,r.width||0,r.height||0),this.cursor=r.cursor):(this.h7=null,this.cursor="inherit"),!0):!1};q.prototype.dob=function(r){return this.K.opacity!==r.opacity||this.K.visible!==r.visible?(this.opacity=r.opacity,this.visible=r.visible,!0):!1};q.prototype.lnb=function(){if(this.Xq&&this.Xq.width>0&&this.Xq.height>0){var r=new c(this.ocb,this.pcb,this.Xq.width,this.Xq.height);this.zO=new b({canvas:this.Xq,rect:r,tag:"background"})}else this.zO= null};q.prototype.maa=function(){this.kJ=this.h7?new b({rect:this.h7,tag:"element",WA:this.Rna,RD:this.Qna,M:this.UO,cursor:this.cursor}):null};return q}(n)}); define("tdv/view/core/visuals/canvas/CanvasCanvasVisuals","require exports tdv/view/core/visuals/canvas/CanvasUIBaseVisuals tdv/view/core/visualprops/CanvasVisualProperties tdv/view/core/visuals/canvas/Layer tdv/view/core/visuals/canvas/Rect".split(" "),function(a,m,h,n,g,k){return function(e){function b(){return e.call(this)||this}P(b,e);b.prototype.tp=function(){return new n};b.prototype.ot=function(){var c=e.prototype.ot.call(this);if(this.gna){var d=this.MY(this.gna);d&&c.push(d)}return c};b.prototype.rh= function(c){var d=e.prototype.rh.call(this,c);this.Lp(c)&&(d=!0,this.canvas&&this.canvas.width>0&&this.canvas.height>0?(c=new k(this.Icb,this.Jcb,this.canvas.width,this.canvas.height),this.gna=new g({canvas:this.canvas,rect:c,tag:"canvas"})):this.gna=null);return d};b.prototype.Lp=function(c){if(!c.visible||!c.canvas){if(this.K.visible&&this.K.canvas&&this.K.canvas.width>0&&this.K.canvas.height>0)return this.canvas=null,!0}else if(c.visible!==this.K.visible||c.canvas!==this.K.canvas||c.S6!==this.K.S6)return this.Jcb= this.Icb=0,this.canvas=c.canvas,!0;return!1};return b}(h)}); define("tdv/view/core/visuals/canvas/CanvasContainerVisuals","require exports tdv/view/core/visuals/canvas/CanvasUIBaseVisuals tdv/view/core/visualprops/ContainerVisualProperties tdv/view/core/visuals/canvas/Layer tdv/view/core/visuals/canvas/Rect tdv/events/EventDispatcher".split(" "),function(a,m,h,n,g,k,e){return function(b){function c(){var d=b.call(this)||this;d.b8=null;d.uaa=null;d.er=null;d.wr=null;d.iMa=new e;d.CTa=new e;d.lgb=g.RQ;d.kgb=!1;d.hob=g.RQ;d.gob=!1;d.hMa=100;d.BTa=100;return d} P(c,b);c.prototype.tp=function(){return new n};c.prototype.I7=function(){throw Error("Invalid call to CanvasContainerVisuals.getHScrollBarElement");};c.prototype.X7=function(){throw Error("Invalid call to CanvasContainerVisuals.getVScrollBarElement");};c.prototype.ot=function(){var d=b.prototype.ot.call(this);this.b8&&d.push(this.b8);this.uaa&&d.push(this.uaa);return d};c.prototype.rh=function(d){var f=b.prototype.rh.call(this,d);this.Bnb(d)&&(f=!0,this.Cnb());this.bob(d)&&(f=!0,this.cob());return f}; c.prototype.Bnb=function(d){if(!d.Bk){if(this.K.Bk)return this.er&&(this.er.width=0,this.er.height=0),!0}else if(d.Bk!==this.K.Bk||d.x!==this.K.x||d.y!==this.K.y||d.offsetX!==this.K.offsetX||d.offsetY!==this.K.offsetY||d.width!==this.K.width||d.height!==this.K.height||d.contentWidth!==this.K.contentWidth||d.contentHeight!==this.K.contentHeight||d.Bk!==this.K.Bk||d.Kc!==this.K.Kc||d.Bf!==this.K.Bf||d.$t!==this.K.$t||d.Zt!==this.K.Zt||d.ph!==this.K.ph||d.Vn!==this.K.Vn||d.Wn!==this.K.Wn||d.Lk!==this.K.Lk|| d.Lc!==this.K.Lc){var f=d.Bk&&d.Lk;this.er||(this.er=document.createElement("canvas"));var l=this.er;f=d.width-d.Vn-((f?d.ph:0)+d.Vn);this.mgb=(d.x||0)+d.offsetX+d.Vn+Math.round(d.Kc*f/d.contentWidth);this.ngb=(d.y||0)+d.offsetY+d.height-d.Wn-d.ph;this.hMa=f;var p=Math.round(d.Bf*f/d.contentWidth),q=d.ph;f=l.getContext("2d");l.width=p;l.height=q;f&&(f.clearRect(0,0,l.width,l.height),f.fillStyle=d.Zt,p=f.globalAlpha,f.beginPath(),f.globalAlpha=d.$t,f.roundRect(0,0,l.width,l.height,d.ph/2),f.fill(), f.globalAlpha=p);return!0}return!1};c.prototype.bob=function(d){if(!d.Lk){if(this.K.Lk)return this.wr&&(this.wr.width=0,this.wr.height=0),!0}else if(d.Lk!==this.K.Lk||d.x!==this.K.x||d.y!==this.K.y||d.offsetX!==this.K.offsetX||d.offsetY!==this.K.offsetY||d.width!==this.K.width||d.height!==this.K.height||d.contentWidth!==this.K.contentWidth||d.contentHeight!==this.K.contentHeight||d.Bk!==this.K.Bk||d.Kc!==this.K.Kc||d.Bf!==this.K.Bf||d.$t!==this.K.$t||d.Zt!==this.K.Zt||d.ph!==this.K.ph||d.Vn!==this.K.Vn|| d.Wn!==this.K.Wn||d.Lk!==this.K.Lk||d.Lc!==this.K.Lc){var f=d.Bk&&d.Lk;this.wr||(this.wr=document.createElement("canvas"));var l=this.wr,p=d.height-d.Wn-((f?d.ph:0)+d.Wn);this.job=(d.y||0)+d.offsetY+d.Wn+Math.round(d.Lc*p/d.contentHeight);this.iob=(d.x||0)+d.offsetX+d.width-d.Vn-d.ph;this.BTa=p;f=d.ph;var q=Math.round(d.Wg*p/d.contentHeight);p=l.getContext("2d");l.width=f;l.height=q;p&&(p.clearRect(0,0,l.width,l.height),p.fillStyle=d.Zt,f=p.globalAlpha,p.beginPath(),p.globalAlpha=d.$t,p.roundRect(0, 0,l.width,l.height,d.ph/2),p.fill(),p.globalAlpha=f);return!0}return!1};c.prototype.Cnb=function(){if(this.er&&this.er.width>0&&this.er.height>0){var d=new k(this.mgb,this.ngb,this.er.width,this.er.height);this.b8=new g({canvas:this.er,rect:d,WA:this.lgb,RD:this.kgb,tag:"hscroll",M:this.iMa})}else this.b8=null};c.prototype.cob=function(){if(this.wr&&this.wr.width>0&&this.wr.height>0){var d=new k(this.iob,this.job,this.wr.width,this.wr.height);this.uaa=new g({canvas:this.wr,rect:d,WA:this.hob,RD:this.gob, tag:"vscroll",M:this.CTa})}else this.uaa=null};return c}(h)}); define("tdv/view/core/visuals/canvas/CanvasImageVisuals","require exports tdv/view/core/visuals/canvas/CanvasUIBaseVisuals tdv/view/core/visualprops/ImageVisualProperties tdv/view/core/visuals/canvas/Layer tdv/view/core/visuals/canvas/Rect tdv/view/constants/Alignment tdv/events/EventDispatcher".split(" "),function(a,m,h,n,g,k,e,b){return function(c){function d(){var f=c.call(this)||this;f.Toa=g.SB;f.Roa=!1;f.j8=new b;return f}P(d,c);d.prototype.lra=function(f,l){if(this.Toa!==f||this.Roa!==l)this.Toa= f,this.Roa=l,this.xsa()};d.prototype.tp=function(){return new n};d.prototype.ot=function(){var f=c.prototype.ot.call(this);if(this.Soa){var l=this.MY(this.Soa);l&&f.push(l)}return f};d.prototype.rh=function(f){var l=c.prototype.rh.call(this,f);this.wsa(f)&&(l=!0,this.xsa());return l};d.prototype.maa=function(){c.prototype.maa.call(this);this.xsa()};d.prototype.xsa=function(){if(this.Ht&&this.Ht.width>0&&this.Ht.height>0){var f=new k(this.Tgb,this.Ugb,this.Ht.width,this.Ht.height);this.Soa=new g({canvas:this.Ht, rect:f,opacity:1,WA:this.Toa,RD:this.Roa,M:this.j8,tag:"image",cursor:this.Vgb})}else this.Soa=null};d.prototype.wsa=function(f){if(!f.visible||!f.image){if(this.K.visible&&this.K.image)return this.Ht&&(this.Ht.width=0,this.Ht.height=0),!0}else if(f.visible!==this.K.visible||f.image!==this.K.image||f.cursor!==this.K.cursor||f.contentWidth!==this.K.contentWidth||f.contentHeight!==this.K.contentHeight||f.width!==this.K.width||f.height!==this.K.height||f.Dd!==this.K.Dd||f.Ce!==this.K.Ce||f.ie!==this.K.ie|| f.Df!==this.K.Df||f.borderTopLeftRadius!==this.K.borderTopLeftRadius||f.borderTopRightRadius!==this.K.borderTopRightRadius||f.borderBottomRightRadius!==this.K.borderBottomRightRadius||f.borderBottomLeftRadius!==this.K.borderBottomLeftRadius||f.Ue!==this.K.Ue||f.xf!==this.K.xf||f.wf!==this.K.wf||f.Te!==this.K.Te||f.Yh!==this.K.Yh||f.verticalAlign!==this.K.verticalAlign){this.Ugb=this.Tgb=0;this.Ht||(this.Ht=document.createElement("canvas"));var l=Math.min(Math.floor(f.width/2),Math.floor(f.height/ 2));l=[Math.max(0,Math.min(l,f.borderTopLeftRadius)-Math.max(f.Ue,f.Te)),Math.max(0,Math.min(l,f.borderTopRightRadius)-Math.max(f.Ue,f.xf)),Math.max(0,Math.min(l,f.borderBottomRightRadius)-Math.max(f.wf,f.xf)),Math.max(0,Math.min(l,f.borderBottomLeftRadius)-Math.max(f.wf,f.Te))];var p=f.width-f.Dd-f.Ce,q=f.height-f.ie-f.Df,r=this.Ht;r.width=p;r.height=q;var t=r.getContext("2d");t.clearRect(0,0,r.width,r.height);switch(f.Yh){default:p=0;break;case e.Db:p-=f.contentWidth;break;case e.$e:p=Math.floor((p- f.contentWidth)*.5)}switch(f.verticalAlign){default:q=0;break;case e.Gc:q-=f.contentHeight;break;case e.$d:q=Math.floor((q-f.contentHeight)*.5)}t.drawImage(f.image,p,q,f.contentWidth,f.contentHeight);t.fillStyle="#ffffff";t.globalCompositeOperation="destination-in";t.roundRect(0,0,r.width,r.height,l);t.fill();t.globalCompositeOperation="source-over";this.Vgb=f.cursor;return!0}return!1};return d}(h)}); define("tdv/view/core/visuals/canvas/CanvasLabelVisuals","require exports tdv/view/core/visuals/canvas/CanvasUIBaseVisuals tdv/view/core/visualprops/LabelVisualProperties tdv/view/core/visuals/canvas/Layer tdv/view/core/visuals/canvas/Rect tdv/view/util/Font tdv/view/util/MeasureText tdv/player/view/util/Color tdv/view/constants/Alignment".split(" "),function(a,m,h,n,g,k,e,b,c,d){return function(f){function l(){var p=f.call(this)||this;p.cF=document.createElement("canvas");p.mu=0;p.ju=0;return p} P(l,f);l.prototype.tp=function(){return new n};l.prototype.wJ=function(){return this.mu};l.prototype.vJ=function(){return this.ju};l.prototype.ot=function(){var p=f.prototype.ot.call(this);if(this.jsa){var q=this.MY(this.jsa);q&&p.push(q)}return p};l.prototype.rh=function(p){var q=f.prototype.rh.call(this,p);this.Isa(p)&&(q=!0,this.cF&&this.cF.width>0&&this.cF.height>0?(p=new k(this.lQ,this.mQ,this.BSa,this.ASa),this.jsa=new g({canvas:this.cF,rect:p,opacity:1,tag:"text"})):this.jsa=null);return q}; l.prototype.Isa=function(p){if(p.visible&&p.text){var q=!1;if(p.visible!==this.K.visible||p.text!==this.K.text||p.direction!==this.K.direction||p.t7!==this.K.t7||p.xt!==this.K.xt||p.fontSize!==this.K.fontSize||p.fontFamily!==this.K.fontFamily||p.fontWeight!==this.K.fontWeight||p.fontStyle!==this.K.fontStyle||p.ku!==this.K.ku||p.lu!==this.K.lu||p.eo!==this.K.eo||p.gx!==this.K.gx||p.bx!==this.K.bx){var r=this.cF,t=p.gx>0;q=t?Math.max(0,-p.ku+p.eo):0;var u=t?Math.max(0,-p.lu+p.eo):0,v=t?Math.max(0,p.ku+ p.eo):0,w=t?Math.max(0,p.lu+p.eo):0,y=r.getContext("2d"),x=b(p.text,{fontSize:p.fontSize,fontFamily:p.fontFamily,fontWeight:p.fontWeight,fontStyle:p.fontStyle},y);this.mu=Math.round(x.width);this.ju=Math.round(x.height);this.BSa=this.mu+q+v;this.ASa=this.ju+u+w;r.width=this.BSa;r.height=this.ASa;y.clearRect(0,0,r.width,r.height);y.fillStyle=p.xt||"#000000";y.font=e.V7({fontSize:p.fontSize,fontFamily:p.fontFamily,fontWeight:p.fontWeight,fontStyle:p.fontStyle});y.textAlign="center";y.textBaseline="middle"; t?(y.shadowColor="rgba("+c.Dp(p.bx).concat([p.gx]).join(",")+")",y.shadowBlur=p.eo,y.shadowOffsetX=p.ku,y.shadowOffsetY=p.lu):y.shadowColor="rgba(0, 0, 0, 0)";y.fillText(p.text,q+Math.round(this.mu*.5),u+Math.round(this.ju*.5));q=!0}if(q||p.width!==this.K.width||p.height!==this.K.height||p.Dd!==this.K.Dd||p.ie!==this.K.ie||p.Ce!==this.K.Ce||p.Df!==this.K.Df||p.Yh!==this.K.Yh||p.verticalAlign!==this.K.verticalAlign){q=(t=p.gx>0)?Math.max(0,-p.ku+p.eo):0;u=t?Math.max(0,-p.lu+p.eo):0;r=p.width-p.Dd- p.Ce;t=p.height-p.ie-p.Df;if(r'+d+""})}function c(d){d=e(d);return Promise.all(Array.from(d).map(function(f){return document.fonts.load(f)}))}return function(d,f){var l= n(d);k(l);return c(l).then(function(){if(f.aborted)throw Error("Aborted");return(new XMLSerializer).serializeToString(l).replace(/#/g,"%23").replace(/\n/g,"%0A")}).then(function(p){if(f.aborted)throw Error("Aborted");var q=l.getBoundingClientRect(),r=l.parentElement;g(l);g(r);return b(p,q.width,q.height)})}}); define("tdv/view/core/visuals/canvas/rasterizer/svgToCanvas",["require","exports"],function(a){function m(f){for(var l=0,p=0;p0;){var l=c.shift();if(l.Cbb.aborted)l.reject(Error("Aborted"));else{var p=document.createElement("canvas");p.width=l.EJ.width;p.height=l.EJ.height;p.getContext("2d").drawImage(l.EJ,0,0);l.resolve(p)}}c.length>0&&k.requestFrame(g)}var k=a("tdv/view/util/Animation"),e=new Map,b=0,c=[],d=1E3/60*.5;return function(f,l){var p=m(f),q=e.get(p);return q?(q.opa=Date.now(), Promise.resolve(q.canvas)):h(f,l).then(function(r){for(var t=r.width*r.height;b+t>67108864&&e.size>0;){for(var u=null,v=Infinity,w=0,y=Array.from(e.entries());w0&&l.height>0?new k({canvas:l,rect:new e(0,0,l.width,l.height),tag:"html"}):null};d.prototype.Cib=function(){this.JJa();this.SE()};return d}(n)}); define("tdv/view/core/visuals/canvas/CanvasVisualsFactory","require exports tdv/view/core/visuals/canvas/CanvasUIBaseVisuals tdv/view/core/visuals/canvas/CanvasCanvasVisuals tdv/view/core/visuals/canvas/CanvasContainerVisuals tdv/view/core/visuals/canvas/CanvasImageVisuals tdv/view/core/visuals/canvas/CanvasLabelVisuals tdv/view/core/visuals/canvas/CanvasHTMLVisuals tdv/view/core/UIComponent tdv/view/canvas/Canvas tdv/view/containers/Container tdv/view/html/HTML tdv/view/images/Image tdv/view/text/Label tdv/view/core/visuals/VisualsType".split(" "), function(a,m,h,n,g,k,e,b,c,d,f,l,p,q,r){return function(){function t(){}t.prototype.create=function(u){if(u instanceof l)return new b;if(u instanceof d)return new n;if(u instanceof p)return new k;if(u instanceof q)return new e;if(u instanceof f)return new g;if(u instanceof c)return new h;throw Error("Invalid UI instance");};t.prototype.getType=function(){return r.lUa};t.sJ=function(){t.Qo||(t.Qo=new t);return t.Qo};return t}()}); define("tdv/view/core/eventmanager/xrinput/XRInputEventManager","require exports tdv/constants/EventName tdv/view/core/visuals/canvas/Layer tdv/view/events/MouseEvent tdv/view/util/UserInitiatedAction".split(" "),function(a,m,h,n,g,k){return function(){function e(b,c){this.UNa=0;this.component=b;this.GJ=void 0;this.oB=c;this.rE=k.Usa(this.rE.bind(this));this.GP=k.Usa(this.GP.bind(this));this.sE=k.Usa(this.sE.bind(this),!0)}e.prototype.hRa=function(b){this.GJ!==b&&((this.GJ=b)?this.Tna():this.XJa(), this.Esa())};e.prototype.Esa=function(){this.wa().m$(this.GJ?n.RQ:n.SB,this.GJ?!0:!1)};e.prototype.oLa=function(){return this.GJ||!1};e.prototype.Ymb=function(b){this.component.o(new g(h.Sa,b.x,b.y,b.pageX,b.pageY))};e.prototype.Zmb=function(b){this.component.o(new g(h.gb,b.x,b.y,b.pageX,b.pageY))};e.prototype.$mb=function(b){this.component.o(new g(h.$a,b.x,b.y,b.pageX,b.pageY))};e.prototype.anb=function(b,c){this.component.o(new g(h.Qk,b.x,b.y,b.pageX,b.pageY,c.delta,c.lA))};e.prototype.Vmb=function(b){this.component.o(new g(h.ma, b.x,b.y,b.pageX,b.pageY))};e.prototype.Wmb=function(b){this.component.o(new g(h.fi,b.x,b.y,b.pageX,b.pageY))};e.prototype.rE=function(b){this.wa().UO.bind(h.$a,this.sE,this,!0);this.WPa(b)};e.prototype.WPa=function(b,c){var d;c===void 0&&(c=!0);var f=this.lX(b);f!==null&&(c&&this.Zcb(f),this.Ymb(f),(d=this.sm())===null||d===void 0||d.WPa(b,c&&this.component.get("propagateClick")))};e.prototype.GP=function(b){this.component.Vb().OE(this.component);this.XPa(b)};e.prototype.XPa=function(b){var c,d=this.lX(b); d!==null&&(this.Ycb(d),this.Zmb(d),(c=this.sm())===null||c===void 0||c.XPa(b))};e.prototype.sE=function(b){this.wa().UO.h(h.$a,this.sE,this);var c=this.lX(b);c!==null&&(this.YPa(b,this.rhb(c)),this.ehb(c))};e.prototype.YPa=function(b,c){var d,f=this.lX(b);f!==null&&(this.$mb(f),this.Xcb(c),(d=this.sm())===null||d===void 0||d.YPa(b,c))};e.prototype.Zcb=function(b){this.component.bind(h.Eb,this.mJa,this,!0);this.bJ=b};e.prototype.Ycb=function(b){this.bJ&&this.XKa(this.bJ,b)>20&&this.mna()};e.prototype.Xcb= function(b){this.bJ&&(this.Vmb(this.bJ),b&&this.Wmb(this.bJ),this.mna())};e.prototype.mna=function(){this.bJ&&(this.component.h(h.Eb,this.mJa,this),this.bJ=void 0)};e.prototype.mJa=function(){this.mna()};e.prototype.aJa=function(){return!1};e.prototype.VNa=function(b){this.component.Vb().Rha&&this.ZPa(b)};e.prototype.ZPa=function(b){var c,d=this.lX(b);if(d!==null){var f=this.Dfb(b);this.anb(d,f);this.aJa(f)||(c=this.sm())===null||c===void 0||c.ZPa(b)}};e.prototype.lX=function(b){var c=this.oB.xfb(b.pageX, b.pageY,this.wa().kJ);return c?{x:c.x,y:c.y,pageX:b.pageX,pageY:b.pageY}:null};e.prototype.Dfb=function(b){var c={};c.delta=Math.max(-1,Math.min(1,-b.delta));c.lA=c.delta;return c};e.prototype.wa=function(){return this.component.wa()};e.prototype.sm=function(){var b=this.component.getParent();if(b)return b.mLa()};e.prototype.Tna=function(){var b=this.wa().UO;b.bind(h.Sa,this.rE,this,!0);b.bind(h.gb,this.GP,this,!0);b.bind(h.Qk,this.VNa,this,!0)};e.prototype.XJa=function(){var b=this.wa().UO;b.h(h.Sa, this.rE,this);b.h(h.gb,this.GP,this);b.h(h.Qk,this.VNa,this)};e.prototype.ehb=function(b){this.UNa=Date.now();this.TNa=b};e.prototype.rhb=function(b){return Date.now()-this.UNa>500||!this.TNa?!1:this.XKa(this.TNa,b)<=20};e.prototype.XKa=function(b,c){var d=b.pageX-c.pageX;b=b.pageY-c.pageY;return Math.sqrt(d*d+b*b)};return e}()}); define("tdv/view/core/eventmanager/xrinput/IconButtonXRInputEventManager",["require","exports","tdv/view/core/eventmanager/xrinput/XRInputEventManager","tdv/view/core/visuals/canvas/Layer","tdv/constants/EventName"],function(a,m,h,n,g){return function(k){function e(b,c){b=k.call(this,b,c)||this;b.MMa=!1;return b}P(e,k);e.prototype.wa=function(){return k.prototype.wa.call(this)};e.prototype.iRa=function(b){this.MMa=b;this.Esa()};e.prototype.rE=function(b){this.wa().j8.bind(g.$a,this.sE,this,!0);k.prototype.rE.call(this, b)};e.prototype.sE=function(b){this.wa().j8.h(g.$a,this.sE,this);k.prototype.sE.call(this,b)};e.prototype.Esa=function(){this.GJ?this.MMa?(this.wa().m$(n.RQ,!0),this.wa().lra(n.SB,!1)):(this.wa().m$(n.SB,!1),this.wa().lra(n.nua,!0)):(this.wa().m$(n.SB,!1),this.wa().lra(n.SB,!1))};e.prototype.Tna=function(){k.prototype.Tna.call(this);var b=this.wa().j8;b.bind(g.Sa,this.rE,this,!0);b.bind(g.gb,this.GP,this,!0)};e.prototype.XJa=function(){var b=this.wa().UO;b.h(g.Sa,this.rE,this);b.h(g.gb,this.GP,this)}; return e}(h)}); define("tdv/view/core/eventmanager/xrinput/ScrollableContainerXRInputEventManager",["require","exports","tdv/constants/EventName","tdv/view/core/eventmanager/xrinput/XRInputEventManager","tdv/player/view/util/Device"],function(a,m,h,n,g){return function(k){function e(b,c){b=k.call(this,b,c)||this;b.fA=0;b.gA=0;b.Jpb=void 0;b.Kpb=void 0;b.uE=!1;b.vE=!1;b.rJa=0;b.EC=b.EC.bind(b);b.ID=b.ID.bind(b);b.Sna();return b}P(e,k);e.prototype.Sna=function(){this.wa().iMa.bind(h.Sa,this.EC,this,!1);this.wa().CTa.bind(h.Sa, this.ID,this,!1);this.component.bind(h.Sa,this.idb,this,!1);this.component.bind(h.uc,this.Sda,this,!1);this.component.bind(h.Eb,this.Rda,this,!1);this.component.bind(h.Qk,this.jdb,this,!1)};e.prototype.wa=function(){return this.component.wa()};e.prototype.EC=function(){this.component.Ww(!0);this.uE=!0};e.prototype.ID=function(){this.component.Xw(!0);this.vE=!0};e.prototype.Sda=function(){this.component.ZE(!0)};e.prototype.Rda=function(){this.component.ZE(!1)};e.prototype.idb=function(b){this.component.dn|| this.component.fn?(this.oB.bind(h.gb,this.yJa,this,!1),this.oB.bind(h.$a,this.zJa,this,!1),this.fA=b.pageX,this.gA=b.pageY):this.hdb(b)};e.prototype.yJa=function(b){var c=0,d=0;this.uE&&(c=(b.pageX-this.fA)/this.wa().hMa);this.vE&&(d=(b.pageY-this.gA)/this.wa().BTa);this.fA=b.pageX;this.gA=b.pageY;c==0&&d==0||this.component.FP(c,d,"content")};e.prototype.zJa=function(){this.oB.h(h.gb,this.yJa,this);this.oB.h(h.$a,this.zJa,this);this.component.Ww(!1);this.component.Xw(!1);this.vE=this.uE=!1};e.prototype.aJa= function(b){return b.delta>0&&this.component.IO()||b.delta<0&&this.component.GO()?!0:!1};e.prototype.jdb=function(b){b=(g.Nd()==g.o_?b.lA*.1:b.delta)*.3;this.component.FP(0,-b,"page")};e.prototype.hdb=function(b){if(this.component.HO()||this.component.JO())this.oB.bind(h.gb,this.wJa,this,!1),this.oB.bind(h.$a,this.xJa,this,!1),this.component.ZE(!0),this.fA=b.pageX,this.gA=b.pageY,this.bhb()};e.prototype.wJa=function(b){var c=b.pageX-this.fA,d=b.pageY-this.gA;!this.uE&&!this.vE&&c*c+d*d>25&&(this.uE= this.component.HO(),this.vE=this.component.JO(),this.component.Ww(this.uE),this.component.Xw(this.vE));if(this.uE||this.vE)this.component.FP(this.uE?-c:0,this.vE?-d:0),this.fA=b.pageX,this.gA=b.pageY,this.onb()};e.prototype.xJa=function(){this.oB.h(h.gb,this.wJa,this);this.oB.h(h.$a,this.xJa,this);this.component.ZE(!1);var b=Math.max(Math.abs(this.uJa/.001),Math.abs(this.vJa/.001));this.component.hIa(-.5*this.uJa*b,-.5*this.vJa*b,b)};e.prototype.bhb=function(){this.sJa=this.fA;this.tJa=this.gA};e.prototype.onb= function(){var b=(new Date).getTime(),c=b-this.rJa;c>10&&(this.rJa=b,this.uJa=(this.fA-this.sJa)/c,this.vJa=(this.gA-this.tJa)/c,this.sJa=this.fA,this.tJa=this.gA)};return e}(n)}); define("tdv/view/core/eventmanager/xrinput/XRInputEventManagerFactory","require exports tdv/view/core/UIComponent tdv/view/core/eventmanager/xrinput/XRInputEventManager tdv/view/core/eventmanager/xrinput/IconButtonXRInputEventManager tdv/view/core/eventmanager/xrinput/ScrollableContainerXRInputEventManager tdv/view/buttons/IconButton tdv/view/containers/ScrollableContainer".split(" "),function(a,m,h,n,g,k,e,b){return function(){function c(){}c.prototype.create=function(d,f){if(d instanceof e)return new g(d, f[0]);if(d instanceof b)return new k(d,f[0]);if(d instanceof h)return new n(d,f[0]);throw Error("Invalid UI instance");};c.sJ=function(){c.Qo||(c.Qo=new c);return c.Qo};return c}()}); define("tdv/view/core/eventmanager/xrinput/UIPanelEventAdapter","require exports tdv/view/core/visuals/canvas/Layer tdv/view/events/MouseEvent tdv/player/view/util/xr/ui/UIPointerState tdv/player/view/util/XR tdv/events/EventDispatcher tdv/constants/EventName tdv/view/util/Animation tdv/player/view/util/ColorPicker".split(" "),function(a,m,h,n,g,k,e,b,c,d){a=function(f){function l(){var p=f.call(this)||this;p.DK=null;p.content=null;p.Poa=null;p.C8=!1;p.qpa=0;p.rpa=0;p.V8=[];p.ir=!1;p.x8=!1;return p} P(l,f);l.prototype.bra=function(p){this.content=p};l.prototype.H$=function(p){this.DK!==p&&(this.DK&&(k.M.h(b.V,this.Ta,this),k.M.h(b.Zd,this.Kg,this)),(this.DK=p)?(k.M.bind(b.V,this.Ta,this,!0),this.Ta()):this.kZ(null))};l.prototype.Ta=function(){k.isPresenting?(k.M.bind(b.Zd,this.Kg,this,!0),this.Kg()):k.M.h(b.Zd,this.Kg,this)};l.prototype.Kg=function(){this.onChange()};l.prototype.onChange=function(){var p,q;this.DK?(this.kZ(this.DK.Cg),(p=this.DK)===null||p===void 0||p.XE(this.ir,this.x8)):this.Poa&& (this.kZ(this.Poa.Cg),(q=this.Poa)===null||q===void 0||q.kZ(this.ir,this.x8))};l.prototype.kZ=function(p){var q;(q=this.content)!==null&&q!==void 0&&q.wa()&&(p?this.BIa(p.nPa,p.oPa,p.pressed,p.Qmb,p.Rmb):this.BIa(void 0,void 0,!1,0,0))};l.prototype.BIa=function(p,q,r,t,u){if(p!==this.qpa||q!==this.rpa||this.C8!==r){var v=p===void 0?this.qpa:p,w=q===void 0?this.rpa:q;this.Vj(p,q);this.C8!==r&&((this.C8=r)?this.$h(v,w):this.lf(v,w));this.qpa=v;this.rpa=w}t===0&&u===0||this.vib(p,q,u)};l.prototype.Vj= function(p,q){var r,t,u=p!==void 0&&q!==void 0;u&&this.o(new n(b.gb,p,q,p,q));u=u?this.woa(p,q):[];u.length>0?(this.x8=u[0].cursor=="pointer",u.forEach(function(v){v.M.o(new n(b.gb,p-v.left,q-v.top,p,q))}),this.ir=!0):(this.ir&&((t=(r=this.content)===null||r===void 0?void 0:r.Vb())===null||t===void 0||t.OE(null)),this.ir=this.x8=!1)};l.prototype.$h=function(p,q){this.o(new n(b.Sa,p,q,p,q));this.V8=this.woa(p,q);this.V8.forEach(function(r){r.M.o(new n(b.Sa,p-r.left,q-r.top,p,q))})};l.prototype.lf= function(p,q){this.o(new n(b.$a,p,q,p,q));this.V8.forEach(function(r){r.M.o(new n(b.$a,p-r.left,q-r.top,p,q))});this.V8=[]};l.prototype.vib=function(p,q,r){var t=p!==void 0&&q!==void 0,u=r*c.eX/1E3*5;t&&this.o(new n(b.Qk,p,q,p,q,u));r=t?this.woa(p,q):[];r.length>0&&r.forEach(function(v){v.M.o(new n(b.Qk,p-v.left,q-v.top,p,q,u))})};l.prototype.woa=function(p,q){var r,t=(r=this.content)===null||r===void 0?void 0:r.wa();if(!t)return[];r=t.afb();if(!r)return[];var u=r.rect;return this.yKa(p+u.left,q+ u.top,r.layers).reduce(function(v,w){v.length!=0&&v[v.length-1].RD||v.push(w);return v},[]).reduce(function(v,w){v.find(function(y){return y.M===w.M})||v.push(w);return v},[]).map(function(v){return{M:v.M,cursor:v.cursor,left:v.rect.left-u.left,top:v.rect.top-u.top}})};l.prototype.yKa=function(p,q,r){for(var t=[],u=r.length-1;u>=0;u--){var v=r[u];t=t.concat(this.yKa(p,q,v.layers));v.opacity>0&&v.WA!==h.SB&&v.visibleRect.containsPoint(p,q)&&(v.WA===h.nua&&v.canvas?d.ax(v.canvas,p-v.rect.left,q-v.rect.top)&& t.push(v):t.push(v))}return t};l.prototype.xfb=function(p,q,r){var t,u=(t=this.content)===null||t===void 0?void 0:t.wa();return u?(r=u.CLa(r))?{x:p-r.rect.left,y:q-r.rect.top}:null:null};return l}(e);(function(f){function l(p){var q=f.call(this)||this;q.Ooa=p;q.Cg=null;q.Vj=q.Vj.bind(q);q.$h=q.$h.bind(q);q.lf=q.lf.bind(q);document.addEventListener("mousemove",q.Vj,!0);document.addEventListener("mousedown",q.$h,!0);document.addEventListener("mouseup",q.lf,!0);return q}P(l,f);l.prototype.cc=function(){return this.Ooa}; l.prototype.dispose=function(){document.removeEventListener("mousemove",this.Vj,!0);document.removeEventListener("mousedown",this.$h,!0);document.removeEventListener("mouseup",this.lf,!0)};l.prototype.kZ=function(p,q){this.Ooa.style.cursor=q?"pointer":"default"};l.prototype.Vj=function(p){this.Jsa(p);p.preventDefault();p.stopPropagation()};l.prototype.$h=function(p){this.pressed=!0;this.Jsa(p);p.preventDefault();p.stopPropagation()};l.prototype.lf=function(p){this.pressed=!1;this.Jsa(p);p.preventDefault(); p.stopPropagation()};l.prototype.Jsa=function(p){var q=this.Ooa.getBoundingClientRect(),r=p.clientX-q.left;p=p.clientY-q.top;var t=q.width;q=q.height;r>=0&&r<=t&&p>=0&&p<=q?(this.Cg||(this.Cg=new g),this.Cg.nPa=r,this.Cg.oPa=p,this.Cg.distance=1,this.Cg.pressed=this.pressed):this.Cg=null;this.o(b.V)};return l})(e);return a}); define("tdv/player/script/XRPanel","require exports tdv/binding/Bindable tdv/constants/EventName tdv/player/parser/ClassInfo tdv/view/core/visuals/canvas/CanvasVisualsFactory tdv/view/core/eventmanager/xrinput/XRInputEventManagerFactory tdv/view/core/eventmanager/xrinput/UIPanelEventAdapter tdv/player/view/util/xr/ui/UI".split(" "),function(a,m,h,n,g,k,e,b,c){a=function(f){function l(){var p=f.call(this)||this;d.Tma(p);p.yla=new b;p.Ud=null;p.wM=!1;return p}P(l,f);l.prototype.set=function(p,q){f.prototype.set.call(this, p,q);switch(p){case "content":this.bra(q);break;case "autoCenter":this.h$(q);break;case "hud":this.p$(q);break;case "draggable":this.SY(q);break;case "draggableDistance":this.k$(q);break;case "modal":this.qra(q);break;case "yaw":this.rj(q);break;case "pitch":this.Zn(q);break;case "distance":this.Xn(q);break;case "pixelScale":this.iZ(q);break;case "veilColor":this.I$(q);break;case "veilOpacity":this.Lra(q)}return this};l.prototype.get=function(p,q){switch(p){case "yaw":return this.Ga=this.Ud?this.Ud.Jc(): this.Ga;case "pitch":return this.rb=this.Ud?this.Ud.Ic():this.rb;default:return f.prototype.get.call(this,p,q)}};l.prototype.Zqa=function(p){this.Gb!==p&&(this.Gb=p,this.bo())};l.prototype.OJa=function(){if(!this.Ud){var p=c.Adb();this.H$(p)}};l.prototype.Fna=function(){if(this.Ud){var p=this.Ud;this.H$(null);c.Xdb(p)}};l.prototype.H$=function(p){if(this.Ud!==p&&(this.Ud&&(this.Ga=this.Ud.Jc(),this.rb=this.Ud.Ic()),this.Ud=p,this.yla.H$(p),this.Ud&&(this.Ud.Xn(this.MG),this.Ud.k$(this.Qea),this.Ud.iZ(this.Yia), this.Ud.p$(this.vga),this.Ud.h$(this.BL),this.Ud.I$(this.wma),this.FK(),this.oaa(),this.JZ(),this.BL||(this.Ud.rj(this.Ga),this.Ud.Zn(this.rb)),this.wM)))this.onChange()};l.prototype.bra=function(p){this.Zf!==p&&(this.Zf&&(this.Zf.h(n.$b,this.sl,this),this.Zf.h(n.INIT,this.uOa,this),this.Zf.h(n.od,this.SOa,this),this.Zf.h(n.jd,this.l9,this),this.Zf.wa().h(n.V,this.onChange,this)),this.SD(),this.Zf=p)&&(this.Zf.getParent()&&this.Zf.getParent().removeChild(this.Zf),this.Zf.bind(n.$b,this.sl,this,!0), this.Zf.bind(n.INIT,this.uOa,this,!0),this.Zf.bind(n.od,this.SOa,this,!0),this.Zf.bind(n.jd,this.l9,this,!0),this.yla.bra(p),this.bo())};l.prototype.h$=function(p){var q;this.BL!==p&&(this.BL=p,(q=this.Ud)===null||q===void 0||q.h$(this.BL))};l.prototype.p$=function(p){var q;this.vga!==p&&(this.vga=p,(q=this.Ud)===null||q===void 0||q.p$(this.vga))};l.prototype.SY=function(p){var q;this.Pea!==p&&(this.Pea=p,this.FK(),(q=this.Ud)===null||q===void 0||q.SY(this.Pea))};l.prototype.k$=function(p){var q; this.Qea!==p&&(this.Qea=p,(q=this.Ud)===null||q===void 0||q.k$(this.Qea))};l.prototype.qra=function(p){this.Kha!==p&&(this.Kha=p,this.oaa(),this.JZ())};l.prototype.rj=function(p){var q;this.BL||(this.Ga=p,(q=this.Ud)===null||q===void 0||q.rj(this.Ga))};l.prototype.Zn=function(p){var q;this.BL||(this.rb=p,(q=this.Ud)===null||q===void 0||q.Zn(this.rb))};l.prototype.Xn=function(p){var q;this.MG!==p&&(this.MG=p,(q=this.Ud)===null||q===void 0||q.Xn(this.MG))};l.prototype.iZ=function(p){var q;this.Yia!== p&&(this.Yia=p,(q=this.Ud)===null||q===void 0||q.iZ(this.Yia))};l.prototype.I$=function(p){var q;this.wma!==p&&(this.wma=p,(q=this.Ud)===null||q===void 0||q.I$(this.wma))};l.prototype.Lra=function(p){this.xHa!==p&&(this.xHa=p,this.JZ())};l.prototype.sl=function(){};l.prototype.SOa=function(){this.oaa();this.FK();this.JZ()};l.prototype.l9=function(){this.oaa();this.FK();this.JZ()};l.prototype.uOa=function(){this.wM=!0;var p=this.Zf.wa();p.bind(n.V,this.onChange,this,!0);p.Lkb();this.onChange()};l.prototype.onChange= function(){var p,q,r,t;if(this.Zf){var u=this.Zf.wa();u=(u===null||u===void 0?void 0:u.getLayers())||[];u.length==0?(p=this.Ud)===null||p===void 0||p.Tcb():(p=u[0],u=p.canvas,u.width>0&&u.height>0&&((q=this.Ud)===null||q===void 0||q.vTa(u),(r=this.Ud)===null||r===void 0||r.Yn(p.opacity),q=this.Zf.get("actualHeight"),r=this.Zf.get("actualWidth"),(t=this.Ud)===null||t===void 0||t.skb(r*.5-p.rect.left,q-p.rect.top+20)))}};l.prototype.oaa=function(){var p;(p=this.Ud)===null||p===void 0||p.qra(this.Kha&& (this.Zf?this.Zf.get("visible"):!1))};l.prototype.FK=function(){var p;(p=this.Ud)===null||p===void 0||p.SY(this.Pea&&(this.Zf?this.Zf.get("visible"):!1))};l.prototype.JZ=function(){var p,q;(p=this.Ud)===null||p===void 0||p.Lra(this.Kha&&((q=this.Zf)===null||q===void 0?0:q.get("visible"))?this.xHa:0)};l.prototype.bo=function(){var p;(p=this.Zf)===null||p===void 0||p.bo(this.Gb,k.sJ(),e.sJ(),[this.yla])};l.prototype.SD=function(){var p;(p=this.Zf)===null||p===void 0||p.SD()};return l}(h);var d=g.create("XRPanel", a);return a}); define("tdv/view/containers/windows/XRWindow","require exports tdv/view/containers/windows/BaseWindow tdv/player/script/XRPanel tdv/player/view/util/XR three.mod tdv/constants/EventName".split(" "),function(a,m,h,n,g,k,e){a=function(d){function f(){var l=d.call(this)||this;l.gIa=!1;l.gf("XRWindow");l.kg=new n;l.kg.set("content",l);l.bind(e.ZK,l.oib,l,!1);return l}P(f,d);f.prototype.set=function(l,p){switch(l){case "modal":this.kg.set("modal",p);break;case "autoCenter":this.kg.set("autoCenter",p); break;case "draggable":this.kg.set("draggable",p);break;default:d.prototype.set.call(this,l,p)}};f.prototype.show=function(l){var p=this;this.L6();!l&&this.gIa||this.get("autoCenter")||(this.kg.set("yaw",g.isPresenting?-b.setFromQuaternion(g.xl,"YXZ").y*c:0),this.kg.set("pitch",g.isPresenting?b.setFromQuaternion(g.xl,"YXZ").x*c:0));l=this.get("application");var q=l.get("xrPanels")||[];l.set("xrPanels",q.filter(function(r){return r!==p.kg}).concat([this.kg]));this.gIa=!0;setTimeout(function(){p.set("visible", !0)},0)};f.prototype.oe=function(){this.K6();this.set("visible",!1)};f.prototype.oib=function(){var l=this,p=this.get("application"),q=p.get("xrPanels")||[];p.set("xrPanels",q.filter(function(r){return r!==l.kg}))};return f}(h);var b=new k.Euler,c=180/Math.PI;return a}); define("tdv/player/script/XRWindow",["require","exports","tdv/player/parser/ClassInfo","tdv/view/containers/windows/XRWindow"],function(a,m,h,n){a=function(k){function e(){var b=k.call(this)||this;g.Tma(b);b.show=b.show;b.hide=b.oe;return b}P(e,k);return e}(n);var g=h.create("XRWindow",a);return a}); define("tdv/player/view/zoomimage/Renderer","require tdv/binding/BindingsHandler tdv/constants/EventName tdv/constants/Priority tdv/events/Event tdv/events/EventDispatcher tdv/view/util/Animation tdv/view/util/Ease tdv/view/util/EaseDimension tdv/view/images/ImageLoader tdv/view/constants/ScaleMode tdv/player/view/util/Device tdv/utils".split(" "),function(a){function m(t){this.source=t;this.width=this.source.get("width");this.height=this.source.get("height");this.url=this.source.get("url");this.kP= this.source.get("grayscale");this.GA=new f(g.Up)}var h=a("tdv/binding/BindingsHandler"),n=a("tdv/constants/EventName"),g=a("tdv/constants/Priority"),k=a("tdv/events/Event"),e=a("tdv/events/EventDispatcher"),b=a("tdv/view/util/Animation"),c=a("tdv/view/util/Ease"),d=a("tdv/view/util/EaseDimension"),f=a("tdv/view/images/ImageLoader"),l=a("tdv/view/constants/ScaleMode"),p=a("tdv/player/view/util/Device"),q=a("tdv/utils"),r=q.extend(e,function(){e.call(this);this.n3=this.n3.bind(this);this.Kh=null;this.se= [];this.Xo=[];this.fk=this.ji=this.Ng=this.Og=100;this.Mj=1;this.mC=this.lC=.5;this.ne=1;this.Wk=this.lk=null;this.Z3=!1;this.fea={};this.UL={};this.UL.low={};this.UL.hight={};p.AO()==p.CQ&&(this.UL.low.transform="translateZ(0)",this.UL.hight.transform="");this.ha=!1;this.Ui="inherit";this.qa=document.createElement("div");this.qa.style.position="absolute";this.qa.style.left="0";this.qa.style.top="0";this.qa.style.right="0";this.qa.style.bottom="0";this.qa.style.overflow="hidden";this.xS=null;this.wh= q.lr(this.za,this)});r.prototype.cc=function(){return this.qa};r.prototype.cQ=function(t){this.ti!=t&&(this.ti=t,this.kda(1),this.wh())};r.prototype.j$=function(t){this.Ui!=t&&(this.Ui=t,this.Wk&&(this.Wk.style.cursor=this.Ui),this.lk&&(this.lk.style.cursor=this.Ui))};r.prototype.Gkb=function(t){this.se!=t&&(this.se&&h.da(this.se,["levels.url"],this.n3),(this.se=t)&&h.ba(this.se,["levels.url"],this.n3,!0))};r.prototype.n3=function(){this.Kda();this.Kh=null;this.lk&&(this.qa.removeChild(this.lk),this.lk= null);this.Wk&&(this.qa.removeChild(this.Wk),this.Wk=null);this.bh&&(this.bh=null);this.Kda();this.Z3=!1;this.Xo.forEach(u=>{u.GA.cancel();u.GA.h(n.ia,this.gAa,this)});this.Xo=(this.se&&this.se.get("levels")||[]).filter(function(u){return u.get("url")}).map(u=>{u=new m(u);u.GA.bind(n.ia,this.gAa,this);return u});var t=this.T1a();t?(this.ji=t.width,this.fk=t.height):this.fk=this.ji=100;this.mC=this.lC=.5;this.kda(1);this.wh()};r.prototype.i$=function(t,u){if(this.Og!=t||this.Ng!=u)this.Og=t,this.Ng= u,this.wh()};r.prototype.mkb=function(t,u){if(this.rxa!=t||this.qxa!=u)this.rxa=t,this.qxa=u,this.wh()};r.prototype.Ra=function(t){this.ha!=t&&(this.ha=t,this.wh())};r.prototype.move=function(t,u){var v=this.Mj*this.ne;this.lC+=t/(this.ji*v);this.mC+=u/(this.fk*v);this.C4()};r.prototype.xA=function(){return this.ne};r.prototype.setScale=function(t){this.kda(Math.max(1,Math.min(1/this.Mj,t)));this.Kh&&this.Kh.width=0&&t>=0&&vthis.fk*this.Og? this.Ng/this.fk:this.Og/this.ji;break;case l.iUa:t=Math.min(this.rxa/this.ji,this.qxa/this.fk);break;default:t=this.ji*this.Ng>this.fk*this.Og?this.Og/this.ji:this.Ng/this.fk}this.$Xa(t)};r.prototype.gAa=function(){this.wh()};r.prototype.Q_a=function(t){this.Wk&&(this.qka(this.Wk,1),this.lk&&this.qa.removeChild(this.lk),this.lk=this.Wk);this.Wk=this.i_a(t);this.qka(this.Wk,0);this.qa.appendChild(this.Wk);this.bh=this.$Za();this.fea={}};r.prototype.b2a=function(){return this.Kh?this.h1a(this.ne*this.Mj* this.ji):this.z2a()};r.prototype.UEa=function(t){this.Xo.forEach(u=>{u==t?u.GA.rl()!=u.url&&u.GA.load(u.url):u.GA.oj()||u.GA.cancel()})};r.prototype.T1a=function(){return this.Xo.reduce((t,u)=>{t||(t=u);if(u.width>t.width||u.width==t.width&&!u.kP&&t.kP)t=u;return t},null)};r.prototype.z2a=function(){return this.Xo.reduce((t,u)=>{t||(t=u);if(u.width{u||(u=v);if(v.width>=t&&u.width< t||v.width>=t&&v.widthu.width||!v.kP&&u.kP)u=v;return u},null)};r.prototype.i_a=function(t){t=t.GA.xg(!0);t.style.position="absolute";t.style.cursor=this.Ui;t.style.pointerEvents="none";return t};r.prototype.$Za=function(){return new c("linear",[new d("alpha",0,1)],200)};r.prototype.C4=function(){b.requestFrame(function(t){this.x4(t,"low")},this)};r.prototype.soa=function(){return this.ne*this.Mj*this.ji};r.prototype.roa=function(){return this.ne*this.Mj*this.fk};r.prototype.jLa= function(){var t=this.soa();return t>this.Og?Math.max(this.Og-t,Math.min(0,this.Og*.5-t*this.lC)):(this.Og-t)*.5};r.prototype.kLa=function(){var t=this.roa();return t>this.Ng?Math.max(this.Ng-t,Math.min(0,this.Ng*.5-t*this.mC)):(this.Ng-t)*.5};r.prototype.x4=function(t,u){u=u||"low";var v=this.soa(),w=this.jLa(),y=this.roa(),x=this.kLa();this.lC=(this.Og*.5-w)/v;this.mC=(this.Ng*.5-x)/y;v={left:Math.round(w)+"px",top:Math.round(x)+"px",width:Math.round(v)+"px",height:Math.round(y)+"px",display:"block"}; for(var z in this.UL[u])v[z]=this.UL[u][z];if(this.fea!=v){if(this.lk)for(z in v)this.lk.style[z]=v[z];if(this.Wk)for(z in v)this.Wk.style[z]=v[z];this.fea=v}this.Kda();this.bh?(this.bh.Nb(t),this.qka(this.Wk,this.bh.ob("alpha")),this.bh.Ve()&&(this.bh=null,this.lk&&this.qa.removeChild(this.lk),this.lk=this.Wk,this.Wk=null),this.C4()):u=="low"&&this.F9a();!this.bh&&this.Z3&&(this.Z3=!1,this.o(new k(n.ia)))};r.prototype.qka=function(t,u){t.style.opacity=u};r.prototype.Kda=function(){this.xS!=null&& (clearTimeout(this.xS),this.xS=null)};r.prototype.F9a=function(){var t=this;this.xS=setTimeout(function(){t.xS=null;t.x4(50,"hight")},50)};r.prototype.kda=function(t){this.ne!=t&&(this.ne=t,this.N$a())};r.prototype.$Xa=function(t){this.Mj!=t&&(this.Mj=t)};r.prototype.N$a=function(){this.o(new k(r.j_,{scale:this.ne}))};r.j_="scaleChange";return r}); define("tdv/player/view/zoomimage/ZoomImage","require tdv/constants/EventName tdv/events/Event tdv/player/view/zoomimage/Renderer tdv/utils tdv/view/core/UIComponent tdv/view/core/UIComponent".split(" "),function(a){var m=a("tdv/constants/EventName"),h=a("tdv/events/Event"),n=a("tdv/player/view/zoomimage/Renderer"),g=a("tdv/utils"),k=a("tdv/view/core/UIComponent");k=a("tdv/view/core/UIComponent");var e=g.extend(k,function(){k.call(this);this.gf("ZoomImage");this.sz=this.mp=void 0;this.$l=!1;this.BDa= void 0;this.Gza=this.ne=1;this.iW=null;this.j=new n;this.j.bind(m.ia,this.A5a,this);this.j.bind(n.j_,this.B5a,this);this.bind(m.$b,this.kd,this,!0);this.bind(m.od,this.cp,this,!0);this.bind(m.jd,this.ap,this,!0);this.bind(m.Sa,this.te,this,!0);this.bind(m.gb,this.bl,this,!0);this.bind(m.$a,this.cl,this,!0);this.bind(m.Qk,this.GH,this,!0);this.bind(m.XK,this.ZG,this,!0)});e.prototype.Kb=function(){k.prototype.Kb.call(this);this.j.cc().parentElement||this.wa().tk(this.j.cc())};e.prototype.set=function(b, c){switch(b){case "scale":this.j.setScale(c);c=this.j.xA();break;case "imageLeft":case "imageTop":case "imageWidth":case "imageHeight":return}k.prototype.set.call(this,b,c)};e.prototype.get=function(b,c){switch(b){case "scale":return this.j.xA();case "imageLeft":return this.j.jLa();case "imageTop":return this.j.kLa();case "imageWidth":return this.j.soa();case "imageHeight":return this.j.roa()}return k.prototype.get.call(this,b,c)};e.prototype.Pb=function(){k.prototype.Pb.call(this);this.m("image"); this.m("scaleMode");this.m("customHeight");this.m("customWidth");this.m("imageCursor");this.m("imageLeft");this.m("imageTop");this.m("imageWidth");this.m("imageHeight")};e.prototype.jb=function(){this.S("scaleMode")&&(this.j.cQ(this.G("scaleMode")),this.$("scaleMode"));this.S("image")&&(this.j.Gkb(this.G("image")),this.$("image"),this.Gza=this.ne);if(this.S("customHeight")||this.S("customWidth"))this.$("customHeight"),this.$("customWidth"),this.kd();this.S("imageCursor")&&(this.$("imageCursor"),this.j.j$(this.Gb.uea.WKa(this.get("imageCursor")))); k.prototype.jb.call(this)};e.prototype.kd=function(){var b=this.nb(),c=this.Mb(),d=this.get("customWidth","100%"),f=k.Cp(d);d=f!==void 0?b*f/100:d;f=this.get("customHeight","100%");var l=k.Cp(f);this.j.mkb(d,l!==void 0?c*l/100:f);this.j.i$(b,c)};e.prototype.cp=function(){this.j.Ra(!0)};e.prototype.ap=function(){this.j.Ra(!1)};e.prototype.te=function(b){this.mp=b.x;this.sz=b.y;this.$l=!0;this.BDa=this.j.YMa(b)};e.prototype.bl=function(b){this.$l&&(this.rma(),this.j.move(-(b.x-this.mp),-(b.y-this.sz)), this.mp=b.x,this.sz=b.y)};e.prototype.cl=function(b){this.$l=!1;this.BDa||this.j.YMa(b)||this.o(new h(e.vUa))};e.prototype.GH=function(b){this.rma();this.j.setScale((1+b.delta/20)*this.j.xA())};e.prototype.ZG=function(b){this.rma();this.j.setScale(b.scale/this.Gza)};e.prototype.A5a=function(){this.o(new h(m.ia))};e.prototype.B5a=function(){k.prototype.set.call(this,"scale",this.j.xA());this.o(new h(e.j_))};e.prototype.rma=function(){this.iW?(clearTimeout(this.iW),this.iW=null):this.o(new h(e.$j)); this.iW=setTimeout(function(){this.iW=null;this.o(new h(e.Zj))}.bind(this),300)};e.vUa="backgroundClick";e.j_="scaleChange";e.$j="userInteractionStart";e.Zj="userInteractionEnd";return e});define("tdv/player/script/ZoomImage",["require","tdv/player/view/zoomimage/ZoomImage","tdv/player/parser/ClassInfo"],function(a){var m=a("tdv/player/view/zoomimage/ZoomImage");return a("tdv/player/parser/ClassInfo").define("ZoomImage",m,function(){m.call(this)})}); define("tdv/player/script/classes","require tdv/player/parser/ClassInfo tdv/player/script/AdjacentPanorama tdv/player/script/AmbientLight tdv/player/script/AmbientOcclusionModel3DPostprocessing tdv/player/script/AnimatedImageResource tdv/player/script/AntialiasModel3DPostprocessing tdv/player/script/AreaHotspotMapOverlay tdv/player/script/AudioResource tdv/player/script/BaseButton tdv/player/script/BaseObject tdv/player/script/BaseWindow tdv/player/script/BoxModel3DObject tdv/player/script/Button tdv/player/script/CanvasPlaneModel3DObject tdv/player/script/CeilingCapPanoramaOverlay tdv/player/script/ChildModel3DObject tdv/player/script/CloseButton tdv/player/script/CookiesPolicy tdv/player/script/Container tdv/player/script/CubicPanoramaFrame tdv/player/script/DirectionalPanoramaAudio tdv/player/script/DistanceModel3DCameraMovement tdv/player/script/DistancePanoramaCameraMovement tdv/player/script/DistanceRotationalCameraMovement tdv/player/script/DropDown tdv/player/script/DustPanoramaOverlay tdv/player/script/Effect tdv/player/script/ExternalModel3DObject tdv/player/script/FadeInEffect tdv/player/script/FadeOutEffect tdv/player/script/FirstPersonModel3DCamera tdv/player/script/FlatHotspotPanoramaOverlay tdv/player/script/FlatHotspotPanoramaOverlayArea tdv/player/script/FlatHotspotPanoramaOverlayImage tdv/player/script/FlatHotspotPanoramaOverlayImageBase tdv/player/script/FlatHotspotPanoramaOverlayMap tdv/player/script/FlatPanoramaOverlayPlaybackPosition tdv/player/script/FlyOverModel3DCamera tdv/player/script/FramePanoramaOverlay tdv/player/script/GoogleMaps3DTilesModel3DResource tdv/player/script/GridContainer tdv/player/script/HDRPanorama tdv/player/script/HorizonGridModel3DObject tdv/player/script/HotspotMapOverlay tdv/player/script/HotspotMapOverlayArea tdv/player/script/HotspotMapOverlayImage tdv/player/script/HotspotMapOverlayMap tdv/player/script/HotspotPanoramaOverlay tdv/player/script/HotspotPanoramaOverlayArea tdv/player/script/HotspotPanoramaOverlayImage tdv/player/script/HotspotPanoramaOverlayImageBase tdv/player/script/HotspotPanoramaOverlayMap tdv/player/script/HTML tdv/player/script/HTMLText tdv/player/script/IconButton tdv/player/script/IconHotspotMapOverlay tdv/player/script/Image tdv/player/script/ImagePlaneModel3DObject tdv/player/script/ImageResource tdv/player/script/ImageResourceLevel tdv/player/script/InnerModel3DObject tdv/player/script/Label tdv/player/script/LensFlarePanoramaOverlay tdv/player/script/LineModel3DObject tdv/player/script/LivePanorama tdv/player/script/Light tdv/player/script/Map tdv/player/script/MapOverlay tdv/player/script/MapPlayer tdv/player/script/MapPlayListItem tdv/player/script/MeasureModel3DObject tdv/player/script/MeasureModel3DObjectPoint tdv/player/script/Media tdv/player/script/MediaAudio tdv/player/script/Model3D tdv/player/script/Model3DAnimation tdv/player/script/Model3DCamera tdv/player/script/Model3DCameraMovement tdv/player/script/Model3DCameraSequence tdv/player/script/Model3DDisplayEffect tdv/player/script/Model3DObject tdv/player/script/Model3DPlayer tdv/player/script/Model3DPlayListItem tdv/player/script/Model3DPointer tdv/player/script/Model3DPostprocessing tdv/player/script/Model3DResource tdv/player/script/Model3DResourceLevel tdv/player/script/Menu tdv/player/script/MenuItem tdv/player/script/MotionBlurModel3DPostprocessing tdv/player/script/MovementPhotoCamera tdv/player/script/Object3D tdv/player/script/OrbitLight tdv/player/script/OrbitModel3DCamera tdv/player/script/Panorama tdv/player/script/PanoramaAudio tdv/player/script/PanoramaCamera tdv/player/script/PanoramaCameraDisplayPosition tdv/player/script/PanoramaCameraMovement tdv/player/script/PanoramaCameraPosition tdv/player/script/PanoramaCameraSequence tdv/player/script/PanoramaFrame tdv/player/script/PanoramaMapLocation tdv/player/script/PanoramaModel3DLocation tdv/player/script/PanoramaOverlay tdv/player/script/PanoramaOverlayPlaybackPosition tdv/player/script/PanoramaPlayer tdv/player/script/PanoramaPlayListItem tdv/player/script/PanoramaPoint tdv/player/script/PanoramaSnapshot tdv/player/script/Photo tdv/player/script/PhotoAlbum tdv/player/script/PhotoAlbumAudio tdv/player/script/PhotoAlbumPlayer tdv/player/script/PhotoAlbumPlayListItem tdv/player/script/PhotoAudio tdv/player/script/PhotoCamera tdv/player/script/PhotoCameraPosition tdv/player/script/PhotoPlayList tdv/player/script/PhotoPlayListItem tdv/player/script/PlaneModel3DObject tdv/player/script/PlaybackBar tdv/player/script/Player tdv/player/script/PlayerMenuItem tdv/player/script/PlayList tdv/player/script/PlayListItem tdv/player/script/PopupPanoramaOverlay tdv/player/script/ProgressBar tdv/player/script/ProjectedMaterialModel3DObject tdv/player/script/QuadFramePanoramaOverlay tdv/player/script/QuadHotspotPanoramaOverlay tdv/player/script/QuadHotspotPanoramaOverlayArea tdv/player/script/QuadHotspotPanoramaOverlayImage tdv/player/script/QuadHotspotPanoramaOverlayImageBase tdv/player/script/QuadHotspotPanoramaOverlayMap tdv/player/script/QuadVideoPanoramaOverlay tdv/player/script/RadialModel3DDisplayEffect tdv/player/script/RainPanoramaOverlay tdv/player/script/RotationalCameraDisplayPosition tdv/player/script/RotationalCameraMovement tdv/player/script/RotationalCameraPosition tdv/player/script/RotationalCameraSequence tdv/player/script/SlideInEffect tdv/player/script/SlideOutEffect tdv/player/script/SnowPanoramaOverlay tdv/player/script/SphericPanoramaFrame tdv/player/script/SphereModel3DObject tdv/player/script/SpotLight tdv/player/script/SpriteModel3DObject tdv/player/script/SurfaceReticleModel3DObject tdv/player/script/TabPanel tdv/player/script/TabPanelPage tdv/player/script/TargetModel3DCameraMovement tdv/player/script/TargetPanoramaCameraMovement tdv/player/script/TargetRotationalCameraDisplayMovement tdv/player/script/TargetRotationalCameraMovement tdv/player/script/TDTilesModel3DResource tdv/player/script/TiledImageResourceLevel tdv/player/script/TripodCapPanoramaOverlay tdv/player/script/ThumbnailGrid tdv/player/script/ThumbnailList tdv/player/script/UIComponent tdv/player/script/Video tdv/player/script/Video360 tdv/player/script/Video360Player tdv/player/script/Video360PlayListItem tdv/player/script/Video360Resource tdv/player/script/Video360ResourceLevel tdv/player/script/VideoCue tdv/player/script/VideoPanorama tdv/player/script/VideoPanoramaOverlay tdv/player/script/VideoPlaneModel3DObject tdv/player/script/VideoPlayer tdv/player/script/VideoPlayListItem tdv/player/script/VideoResource tdv/player/script/VideoResourceLevel tdv/player/script/VignetteModel3DPostprocessing tdv/player/script/ViewerArea tdv/player/script/WebFrame tdv/player/script/Window tdv/player/script/XRPanel tdv/player/script/XRWindow tdv/player/script/ZoomImage".split(" "),function(a){a("tdv/player/parser/ClassInfo"); a("tdv/player/script/AdjacentPanorama");a("tdv/player/script/AmbientLight");a("tdv/player/script/AmbientOcclusionModel3DPostprocessing");a("tdv/player/script/AnimatedImageResource");a("tdv/player/script/AntialiasModel3DPostprocessing");a("tdv/player/script/AreaHotspotMapOverlay");a("tdv/player/script/AudioResource");a("tdv/player/script/BaseButton");a("tdv/player/script/BaseObject");a("tdv/player/script/BaseWindow");a("tdv/player/script/BoxModel3DObject");a("tdv/player/script/Button");a("tdv/player/script/CanvasPlaneModel3DObject"); a("tdv/player/script/CeilingCapPanoramaOverlay");a("tdv/player/script/ChildModel3DObject");a("tdv/player/script/CloseButton");a("tdv/player/script/CookiesPolicy");a("tdv/player/script/Container");a("tdv/player/script/CubicPanoramaFrame");a("tdv/player/script/DirectionalPanoramaAudio");a("tdv/player/script/DistanceModel3DCameraMovement");a("tdv/player/script/DistancePanoramaCameraMovement");a("tdv/player/script/DistanceRotationalCameraMovement");a("tdv/player/script/DropDown");a("tdv/player/script/DustPanoramaOverlay"); a("tdv/player/script/Effect");a("tdv/player/script/ExternalModel3DObject");a("tdv/player/script/FadeInEffect");a("tdv/player/script/FadeOutEffect");a("tdv/player/script/FirstPersonModel3DCamera");a("tdv/player/script/FlatHotspotPanoramaOverlay");a("tdv/player/script/FlatHotspotPanoramaOverlayArea");a("tdv/player/script/FlatHotspotPanoramaOverlayImage");a("tdv/player/script/FlatHotspotPanoramaOverlayImageBase");a("tdv/player/script/FlatHotspotPanoramaOverlayMap");a("tdv/player/script/FlatPanoramaOverlayPlaybackPosition"); a("tdv/player/script/FlyOverModel3DCamera");a("tdv/player/script/FramePanoramaOverlay");a("tdv/player/script/GoogleMaps3DTilesModel3DResource");a("tdv/player/script/GridContainer");a("tdv/player/script/HDRPanorama");a("tdv/player/script/HorizonGridModel3DObject");a("tdv/player/script/HotspotMapOverlay");a("tdv/player/script/HotspotMapOverlayArea");a("tdv/player/script/HotspotMapOverlayImage");a("tdv/player/script/HotspotMapOverlayMap");a("tdv/player/script/HotspotPanoramaOverlay");a("tdv/player/script/HotspotPanoramaOverlayArea"); a("tdv/player/script/HotspotPanoramaOverlayImage");a("tdv/player/script/HotspotPanoramaOverlayImageBase");a("tdv/player/script/HotspotPanoramaOverlayMap");a("tdv/player/script/HTML");a("tdv/player/script/HTMLText");a("tdv/player/script/IconButton");a("tdv/player/script/IconHotspotMapOverlay");a("tdv/player/script/Image");a("tdv/player/script/ImagePlaneModel3DObject");a("tdv/player/script/ImageResource");a("tdv/player/script/ImageResourceLevel");a("tdv/player/script/InnerModel3DObject");a("tdv/player/script/Label"); a("tdv/player/script/LensFlarePanoramaOverlay");a("tdv/player/script/LineModel3DObject");a("tdv/player/script/LivePanorama");a("tdv/player/script/Light");a("tdv/player/script/Map");a("tdv/player/script/MapOverlay");a("tdv/player/script/MapPlayer");a("tdv/player/script/MapPlayListItem");a("tdv/player/script/MeasureModel3DObject");a("tdv/player/script/MeasureModel3DObjectPoint");a("tdv/player/script/Media");a("tdv/player/script/MediaAudio");a("tdv/player/script/Model3D");a("tdv/player/script/Model3DAnimation"); a("tdv/player/script/Model3DCamera");a("tdv/player/script/Model3DCameraMovement");a("tdv/player/script/Model3DCameraSequence");a("tdv/player/script/Model3DDisplayEffect");a("tdv/player/script/Model3DObject");a("tdv/player/script/Model3DPlayer");a("tdv/player/script/Model3DPlayListItem");a("tdv/player/script/Model3DPointer");a("tdv/player/script/Model3DPostprocessing");a("tdv/player/script/Model3DResource");a("tdv/player/script/Model3DResourceLevel");a("tdv/player/script/Menu");a("tdv/player/script/MenuItem"); a("tdv/player/script/MotionBlurModel3DPostprocessing");a("tdv/player/script/MovementPhotoCamera");a("tdv/player/script/Object3D");a("tdv/player/script/OrbitLight");a("tdv/player/script/OrbitModel3DCamera");a("tdv/player/script/Panorama");a("tdv/player/script/PanoramaAudio");a("tdv/player/script/PanoramaCamera");a("tdv/player/script/PanoramaCameraDisplayPosition");a("tdv/player/script/PanoramaCameraMovement");a("tdv/player/script/PanoramaCameraPosition");a("tdv/player/script/PanoramaCameraSequence"); a("tdv/player/script/PanoramaFrame");a("tdv/player/script/PanoramaMapLocation");a("tdv/player/script/PanoramaModel3DLocation");a("tdv/player/script/PanoramaOverlay");a("tdv/player/script/PanoramaOverlayPlaybackPosition");a("tdv/player/script/PanoramaPlayer");a("tdv/player/script/PanoramaPlayListItem");a("tdv/player/script/PanoramaPoint");a("tdv/player/script/PanoramaSnapshot");a("tdv/player/script/Photo");a("tdv/player/script/PhotoAlbum");a("tdv/player/script/PhotoAlbumAudio");a("tdv/player/script/PhotoAlbumPlayer"); a("tdv/player/script/PhotoAlbumPlayListItem");a("tdv/player/script/PhotoAudio");a("tdv/player/script/PhotoCamera");a("tdv/player/script/PhotoCameraPosition");a("tdv/player/script/PhotoPlayList");a("tdv/player/script/PhotoPlayListItem");a("tdv/player/script/PlaneModel3DObject");a("tdv/player/script/PlaybackBar");a("tdv/player/script/Player");a("tdv/player/script/PlayerMenuItem");a("tdv/player/script/PlayList");a("tdv/player/script/PlayListItem");a("tdv/player/script/PopupPanoramaOverlay");a("tdv/player/script/ProgressBar"); a("tdv/player/script/ProjectedMaterialModel3DObject");a("tdv/player/script/QuadFramePanoramaOverlay");a("tdv/player/script/QuadHotspotPanoramaOverlay");a("tdv/player/script/QuadHotspotPanoramaOverlayArea");a("tdv/player/script/QuadHotspotPanoramaOverlayImage");a("tdv/player/script/QuadHotspotPanoramaOverlayImageBase");a("tdv/player/script/QuadHotspotPanoramaOverlayMap");a("tdv/player/script/QuadVideoPanoramaOverlay");a("tdv/player/script/RadialModel3DDisplayEffect");a("tdv/player/script/RainPanoramaOverlay"); a("tdv/player/script/RotationalCameraDisplayPosition");a("tdv/player/script/RotationalCameraMovement");a("tdv/player/script/RotationalCameraPosition");a("tdv/player/script/RotationalCameraSequence");a("tdv/player/script/SlideInEffect");a("tdv/player/script/SlideOutEffect");a("tdv/player/script/SnowPanoramaOverlay");a("tdv/player/script/SphericPanoramaFrame");a("tdv/player/script/SphereModel3DObject");a("tdv/player/script/SpotLight");a("tdv/player/script/SpriteModel3DObject");a("tdv/player/script/SurfaceReticleModel3DObject"); a("tdv/player/script/TabPanel");a("tdv/player/script/TabPanelPage");a("tdv/player/script/TargetModel3DCameraMovement");a("tdv/player/script/TargetPanoramaCameraMovement");a("tdv/player/script/TargetRotationalCameraDisplayMovement");a("tdv/player/script/TargetRotationalCameraMovement");a("tdv/player/script/TDTilesModel3DResource");a("tdv/player/script/TiledImageResourceLevel");a("tdv/player/script/TripodCapPanoramaOverlay");a("tdv/player/script/ThumbnailGrid");a("tdv/player/script/ThumbnailList"); a("tdv/player/script/UIComponent");a("tdv/player/script/Video");a("tdv/player/script/Video360");a("tdv/player/script/Video360Player");a("tdv/player/script/Video360PlayListItem");a("tdv/player/script/Video360Resource");a("tdv/player/script/Video360ResourceLevel");a("tdv/player/script/VideoCue");a("tdv/player/script/VideoPanorama");a("tdv/player/script/VideoPanoramaOverlay");a("tdv/player/script/VideoPlaneModel3DObject");a("tdv/player/script/VideoPlayer");a("tdv/player/script/VideoPlayListItem");a("tdv/player/script/VideoResource"); a("tdv/player/script/VideoResourceLevel");a("tdv/player/script/VignetteModel3DPostprocessing");a("tdv/player/script/ViewerArea");a("tdv/player/script/WebFrame");a("tdv/player/script/Window");a("tdv/player/script/XRPanel");a("tdv/player/script/XRWindow");a("tdv/player/script/ZoomImage");return!0}); define("tdv/player/parser/Parser","require tdv/utils tdv/player/parser/ClassInfo tdv/player/parser/Sign tdv/player/script/classes tdv/player/view/util/URL".split(" "),function(a){function m(l,p){this.type=l;this.stack=p}function h(){}var n=a("tdv/utils"),g=a("tdv/player/parser/ClassInfo"),k=a("tdv/player/parser/Sign");a("tdv/player/script/classes");a("tdv/player/view/util/URL");h.prototype.Wib=function(l,p,q,r){this.ffa=[];this.sD=this.uN(l);this.pH=void 0;this.sD.dw.pLa()?(this.f6=k.validate(l), this.pH=this.pya(this.sD,e.TYPE),this.l_a(this.pH,this.sD,p,q,r),this.VXa(this.sD),this.TXa(this.sD,this.pH),this.WXa(this.pH,this.sD),this.uYa(this.pH,this.sD)):this.eq("Invalid root class",[]);return this.ffa.length==0};h.prototype.Vb=function(){return this.sD.instance};h.prototype.uN=function(l,p){p=p||[];return Array.isArray(l)?this.H6a(l,p):n.hpa(l)&&l["class"]?this.K6a(l,p):n.hpa(l)?this.I6a(l,p):n.TMa(l)?this.J6a(l,p):this.L6a(l,p)};h.prototype.H6a=function(l,p){for(var q=[],r=0;r> ")+": "+l)};m.prototype.Cb=function(){return[]};m.prototype.uw=function(){};var e=n.extend(m,function(l,p,q,r,t,u){m.call(this,e.TYPE,l);this.dw=p;this.id=q;this.attributes=r;this.mJ=t;this.scripts=u;this.instance=null});e.prototype.Cb=function(){var l=this.dw.BLa(),p=[],q=Object.assign({},this.attributes);if(l)for(var r=0;r0?w.push("v:"+l.UX+"."+l.$X):w.push("v:"+l.$X);r.log(w.join(" "));this.tr=v;c.ohb()||[e.NK,e.qF].indexOf(e.Yb())>=0?(this.Wl=new k,(v=this.tr.get(TDV.PlayerSettings.BASE_DIR_URL))?(v=c.lB(v),v[v.length-1]!="/"&&(v+="/")):v=c.getDirectory(this.tr.get(TDV.PlayerSettings.SELECTED_SCRIPT_URL)),this.Aqa=this.tr.get(TDV.PlayerSettings.QUERY_STRING_PARAMETERS),b.mjb(v,function(y){this.Yma=y;this.e6a()}.bind(this))): window.alert(p("web-server-required"))}var h=a("tdv/constants/EventName"),n=a("tdv/events/Event"),g=a("tdv/player/parser/ClassInfo"),k=a("tdv/player/parser/Parser"),e=a("tdv/player/view/util/Device"),b=a("tdv/player/view/util/Installer"),c=a("tdv/player/view/util/URL"),d=a("tdv/player/view/util/XR"),f=a("tdv/player/view/panorama/renderer/3d/util/Util"),l=a("tdv/player/AppInfo"),p=a("tdv/player/l10n"),q=a("tdv/view/util/Fullscreen"),r=a("tdv/utils");m.prototype.e6a=function(){this.FV.o(new TDV.w_(h.LVa, {},[],void 0));r.defer(function(){if(!this.Wl.Wib(this.tr.get(TDV.PlayerSettings.SCRIPT_DATA),this.tr.get(TDV.PlayerSettings.CONTAINER),this.Yma,this.Aqa)){if(l.smb!="false"){window.alert(this.cza());return}r.log(this.cza())}this.sYa();this.IXa(this.tr);this.YXa();d.XJ=this.Wl.Vb();d.initialize(function(){this.P$a()}.bind(this))}.bind(this))};m.prototype.clear=function(){this.Wl&&(this.Pya().forEach(function(u){u.instance.ssa();u.dw.kX().forEach(function(v){switch(v){case "VideoPlayer":u.instance.stop(); case "MapPlayer":case "Model3DPlayer":case "PanoramaPlayer":case "PhotoAlbumPlayer":u.instance.set("viewerArea",null);break;case "ZoomImage":u.instance.set("image",null);break;case "Audio":u.instance.stop();break;case "Effect":u.instance.end();break;case "Media":u.instance.Djb()}})}),f.cjb(),this.Wl.Vb().clear(),t={},this.tr=this.Wl=null)};m.prototype.Qfb=function(u){return this.Wl.Vb()[u]};m.prototype.Ci=function(u){if(u in t)return t[u].slice();var v=[];this.Pya().forEach(function(w){w.dw.kX().includes(u)&& v.push(w.instance)});t[u]=v;return v.slice()};m.prototype.Pya=function(){return this.Wl?this.Wl.pH.concat(this.B0):[]};var t={};m.prototype.Ai=function(u){var v=g.Ci(u);if(!v)throw"Invalid className: "+u;t={};u=this.Wl.Vb();var w={};w.dw=v;w.instance=v.Ai(u,this.Yma,this.Aqa);this.B0.push(w);this.cwa(v,w.instance);this.D$a(u,w.instance);return w.instance};m.prototype.iw=function(u){var v=this.B0.findIndex(function(w){return w.instance==u});v<0||(t={},this.B0.splice(v,1),u.ssa(),u.dispose&&u.dispose())}; m.prototype.cza=function(){for(var u=this.Wl.ffa,v=["Errors parsing script file:"],w=0;w=0;--i){if(array[i]>=65535)return true}return false}const TYPED_ARRAYS={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function getTypedArray(type,buffer){return new TYPED_ARRAYS[type](buffer)}function isTypedArray(array){return ArrayBuffer.isView(array)&&!(array instanceof DataView)}function createElementNS(name){return document.createElementNS("http://www.w3.org/1999/xhtml",name)}function createCanvasElement(){const canvas=createElementNS("canvas");canvas.style.display="block";return canvas}const _cache={};let _setConsoleFunction=null;function setConsoleFunction(fn){_setConsoleFunction=fn}function getConsoleFunction(){return _setConsoleFunction}function log(...params){const message="THREE."+params.shift();if(_setConsoleFunction){_setConsoleFunction("log",message,...params)}else{console.log(message,...params)}}function warn(...params){const message="THREE."+params.shift();if(_setConsoleFunction){_setConsoleFunction("warn",message,...params)}else{console.warn(message,...params)}}function error(...params){const message="THREE."+params.shift();if(_setConsoleFunction){_setConsoleFunction("error",message,...params)}else{console.error(message,...params)}}function warnOnce(...params){const message=params.join(" ");if(message in _cache)return;_cache[message]=true;warn(...params)}function probeAsync(gl,sync,interval){return new Promise(function(resolve,reject){function probe(){switch(gl.clientWaitSync(sync,gl.SYNC_FLUSH_COMMANDS_BIT,0)){case gl.WAIT_FAILED:reject();break;case gl.TIMEOUT_EXPIRED:setTimeout(probe,interval);break;default:resolve();}}setTimeout(probe,interval)})}class EventDispatcher{addEventListener(type,listener){if(this._listeners===undefined)this._listeners={};const listeners=this._listeners;if(listeners[type]===undefined){listeners[type]=[]}if(listeners[type].indexOf(listener)===-1){listeners[type].push(listener)}}hasEventListener(type,listener){const listeners=this._listeners;if(listeners===undefined)return false;return listeners[type]!==undefined&&listeners[type].indexOf(listener)!==-1}removeEventListener(type,listener){const listeners=this._listeners;if(listeners===undefined)return;const listenerArray=listeners[type];if(listenerArray!==undefined){const index=listenerArray.indexOf(listener);if(index!==-1){listenerArray.splice(index,1)}}}dispatchEvent(event){const listeners=this._listeners;if(listeners===undefined)return;const listenerArray=listeners[event.type];if(listenerArray!==undefined){event.target=this;const array=listenerArray.slice(0);for(let i=0,l=array.length;i>8&255]+_lut[d0>>16&255]+_lut[d0>>24&255]+"-"+_lut[d1&255]+_lut[d1>>8&255]+"-"+_lut[d1>>16&15|64]+_lut[d1>>24&255]+"-"+_lut[d2&63|128]+_lut[d2>>8&255]+"-"+_lut[d2>>16&255]+_lut[d2>>24&255]+_lut[d3&255]+_lut[d3>>8&255]+_lut[d3>>16&255]+_lut[d3>>24&255];return uuid.toLowerCase()}function clamp(value,min,max){return Math.max(min,Math.min(max,value))}function euclideanModulo(n,m){return(n%m+m)%m}function mapLinear(x,a1,a2,b1,b2){return b1+(x-a1)*(b2-b1)/(a2-a1)}function inverseLerp(x,y,value){if(x!==y){return(value-x)/(y-x)}else{return 0}}function lerp(x,y,t){return(1-t)*x+t*y}function damp(x,y,lambda,dt){return lerp(x,y,1-Math.exp(-lambda*dt))}function pingpong(x,length=1){return length-Math.abs(euclideanModulo(x,length*2)-length)}function smoothstep(x,min,max){if(x<=min)return 0;if(x>=max)return 1;x=(x-min)/(max-min);return x*x*(3-2*x)}function smootherstep(x,min,max){if(x<=min)return 0;if(x>=max)return 1;x=(x-min)/(max-min);return x*x*x*(x*(x*6-15)+10)}function randInt(low,high){return low+Math.floor(Math.random()*(high-low+1))}function randFloat(low,high){return low+Math.random()*(high-low)}function randFloatSpread(range){return range*(0.5-Math.random())}function seededRandom(s){if(s!==undefined)_seed=s;let t=_seed+=1831565813;t=Math.imul(t^t>>>15,t|1);t^=t+Math.imul(t^t>>>7,t|61);return((t^t>>>14)>>>0)/4294967296}function degToRad(degrees){return degrees*DEG2RAD}function radToDeg(radians){return radians*RAD2DEG}function isPowerOfTwo(value){return(value&value-1)===0&&value!==0}function ceilPowerOfTwo(value){return Math.pow(2,Math.ceil(Math.log(value)/Math.LN2))}function floorPowerOfTwo(value){return Math.pow(2,Math.floor(Math.log(value)/Math.LN2))}function setQuaternionFromProperEuler(q,a,b,c,order){const cos=Math.cos;const sin=Math.sin;const c2=cos(b/2);const s2=sin(b/2);const c13=cos((a+c)/2);const s13=sin((a+c)/2);const c1_3=cos((a-c)/2);const s1_3=sin((a-c)/2);const c3_1=cos((c-a)/2);const s3_1=sin((c-a)/2);switch(order){case"XYX":q.set(c2*s13,s2*c1_3,s2*s1_3,c2*c13);break;case"YZY":q.set(s2*s1_3,c2*s13,s2*c1_3,c2*c13);break;case"ZXZ":q.set(s2*c1_3,s2*s1_3,c2*s13,c2*c13);break;case"XZX":q.set(c2*s13,s2*s3_1,s2*c3_1,c2*c13);break;case"YXY":q.set(s2*c3_1,c2*s13,s2*s3_1,c2*c13);break;case"ZYZ":q.set(s2*s3_1,s2*c3_1,c2*s13,c2*c13);break;default:warn("MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+order);}}function denormalize(value,array){switch(array.constructor){case Float32Array:return value;case Uint32Array:return value/4294967295;case Uint16Array:return value/65535;case Uint8Array:return value/255;case Int32Array:return Math.max(value/2147483647,-1);case Int16Array:return Math.max(value/32767,-1);case Int8Array:return Math.max(value/127,-1);default:throw new Error("Invalid component type.");}}function normalize(value,array){switch(array.constructor){case Float32Array:return value;case Uint32Array:return Math.round(value*4294967295);case Uint16Array:return Math.round(value*65535);case Uint8Array:return Math.round(value*255);case Int32Array:return Math.round(value*2147483647);case Int16Array:return Math.round(value*32767);case Int8Array:return Math.round(value*127);default:throw new Error("Invalid component type.");}}const MathUtils={DEG2RAD:DEG2RAD,RAD2DEG:RAD2DEG,generateUUID:generateUUID,clamp:clamp,euclideanModulo:euclideanModulo,mapLinear:mapLinear,inverseLerp:inverseLerp,lerp:lerp,damp:damp,pingpong:pingpong,smoothstep:smoothstep,smootherstep:smootherstep,randInt:randInt,randFloat:randFloat,randFloatSpread:randFloatSpread,seededRandom:seededRandom,degToRad:degToRad,radToDeg:radToDeg,isPowerOfTwo:isPowerOfTwo,ceilPowerOfTwo:ceilPowerOfTwo,floorPowerOfTwo:floorPowerOfTwo,setQuaternionFromProperEuler:setQuaternionFromProperEuler,normalize:normalize,denormalize:denormalize};class Vector2{constructor(x=0,y=0){Vector2.prototype.isVector2=true;this.x=x;this.y=y}get width(){return this.x}set width(value){this.x=value}get height(){return this.y}set height(value){this.y=value}set(x,y){this.x=x;this.y=y;return this}setScalar(scalar){this.x=scalar;this.y=scalar;return this}setX(x){this.x=x;return this}setY(y){this.y=y;return this}setComponent(index,value){switch(index){case 0:this.x=value;break;case 1:this.y=value;break;default:throw new Error("index is out of range: "+index);}return this}getComponent(index){switch(index){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+index);}}clone(){return new this.constructor(this.x,this.y)}copy(v){this.x=v.x;this.y=v.y;return this}add(v){this.x+=v.x;this.y+=v.y;return this}addScalar(s){this.x+=s;this.y+=s;return this}addVectors(a,b){this.x=a.x+b.x;this.y=a.y+b.y;return this}addScaledVector(v,s){this.x+=v.x*s;this.y+=v.y*s;return this}sub(v){this.x-=v.x;this.y-=v.y;return this}subScalar(s){this.x-=s;this.y-=s;return this}subVectors(a,b){this.x=a.x-b.x;this.y=a.y-b.y;return this}multiply(v){this.x*=v.x;this.y*=v.y;return this}multiplyScalar(scalar){this.x*=scalar;this.y*=scalar;return this}divide(v){this.x/=v.x;this.y/=v.y;return this}divideScalar(scalar){return this.multiplyScalar(1/scalar)}applyMatrix3(m){const x=this.x,y=this.y;const e=m.elements;this.x=e[0]*x+e[3]*y+e[6];this.y=e[1]*x+e[4]*y+e[7];return this}min(v){this.x=Math.min(this.x,v.x);this.y=Math.min(this.y,v.y);return this}max(v){this.x=Math.max(this.x,v.x);this.y=Math.max(this.y,v.y);return this}clamp(min,max){this.x=clamp(this.x,min.x,max.x);this.y=clamp(this.y,min.y,max.y);return this}clampScalar(minVal,maxVal){this.x=clamp(this.x,minVal,maxVal);this.y=clamp(this.y,minVal,maxVal);return this}clampLength(min,max){const length=this.length();return this.divideScalar(length||1).multiplyScalar(clamp(length,min,max))}floor(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this}ceil(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this}round(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this}roundToZero(){this.x=Math.trunc(this.x);this.y=Math.trunc(this.y);return this}negate(){this.x=-this.x;this.y=-this.y;return this}dot(v){return this.x*v.x+this.y*v.y}cross(v){return this.x*v.y-this.y*v.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){const angle=Math.atan2(-this.y,-this.x)+Math.PI;return angle}angleTo(v){const denominator=Math.sqrt(this.lengthSq()*v.lengthSq());if(denominator===0)return Math.PI/2;const theta=this.dot(v)/denominator;return Math.acos(clamp(theta,-1,1))}distanceTo(v){return Math.sqrt(this.distanceToSquared(v))}distanceToSquared(v){const dx=this.x-v.x,dy=this.y-v.y;return dx*dx+dy*dy}manhattanDistanceTo(v){return Math.abs(this.x-v.x)+Math.abs(this.y-v.y)}setLength(length){return this.normalize().multiplyScalar(length)}lerp(v,alpha){this.x+=(v.x-this.x)*alpha;this.y+=(v.y-this.y)*alpha;return this}lerpVectors(v1,v2,alpha){this.x=v1.x+(v2.x-v1.x)*alpha;this.y=v1.y+(v2.y-v1.y)*alpha;return this}equals(v){return v.x===this.x&&v.y===this.y}fromArray(array,offset=0){this.x=array[offset];this.y=array[offset+1];return this}toArray(array=[],offset=0){array[offset]=this.x;array[offset+1]=this.y;return array}fromBufferAttribute(attribute,index){this.x=attribute.getX(index);this.y=attribute.getY(index);return this}rotateAround(center,angle){const c=Math.cos(angle),s=Math.sin(angle);const x=this.x-center.x;const y=this.y-center.y;this.x=x*c-y*s+center.x;this.y=x*s+y*c+center.y;return this}random(){this.x=Math.random();this.y=Math.random();return this}*[Symbol.iterator](){yield this.x;yield this.y}}class Quaternion{constructor(x=0,y=0,z=0,w=1){this.isQuaternion=true;this._x=x;this._y=y;this._z=z;this._w=w}static slerpFlat(dst,dstOffset,src0,srcOffset0,src1,srcOffset1,t){let x0=src0[srcOffset0+0],y0=src0[srcOffset0+1],z0=src0[srcOffset0+2],w0=src0[srcOffset0+3];let x1=src1[srcOffset1+0],y1=src1[srcOffset1+1],z1=src1[srcOffset1+2],w1=src1[srcOffset1+3];if(t<=0){dst[dstOffset+0]=x0;dst[dstOffset+1]=y0;dst[dstOffset+2]=z0;dst[dstOffset+3]=w0;return}if(t>=1){dst[dstOffset+0]=x1;dst[dstOffset+1]=y1;dst[dstOffset+2]=z1;dst[dstOffset+3]=w1;return}if(w0!==w1||x0!==x1||y0!==y1||z0!==z1){let dot=x0*x1+y0*y1+z0*z1+w0*w1;if(dot<0){x1=-x1;y1=-y1;z1=-z1;w1=-w1;dot=-dot}let s=1-t;if(dot<0.9995){const theta=Math.acos(dot);const sin=Math.sin(theta);s=Math.sin(s*theta)/sin;t=Math.sin(t*theta)/sin;x0=x0*s+x1*t;y0=y0*s+y1*t;z0=z0*s+z1*t;w0=w0*s+w1*t}else{x0=x0*s+x1*t;y0=y0*s+y1*t;z0=z0*s+z1*t;w0=w0*s+w1*t;const f=1/Math.sqrt(x0*x0+y0*y0+z0*z0+w0*w0);x0*=f;y0*=f;z0*=f;w0*=f}}dst[dstOffset]=x0;dst[dstOffset+1]=y0;dst[dstOffset+2]=z0;dst[dstOffset+3]=w0}static multiplyQuaternionsFlat(dst,dstOffset,src0,srcOffset0,src1,srcOffset1){const x0=src0[srcOffset0];const y0=src0[srcOffset0+1];const z0=src0[srcOffset0+2];const w0=src0[srcOffset0+3];const x1=src1[srcOffset1];const y1=src1[srcOffset1+1];const z1=src1[srcOffset1+2];const w1=src1[srcOffset1+3];dst[dstOffset]=x0*w1+w0*x1+y0*z1-z0*y1;dst[dstOffset+1]=y0*w1+w0*y1+z0*x1-x0*z1;dst[dstOffset+2]=z0*w1+w0*z1+x0*y1-y0*x1;dst[dstOffset+3]=w0*w1-x0*x1-y0*y1-z0*z1;return dst}get x(){return this._x}set x(value){this._x=value;this._onChangeCallback()}get y(){return this._y}set y(value){this._y=value;this._onChangeCallback()}get z(){return this._z}set z(value){this._z=value;this._onChangeCallback()}get w(){return this._w}set w(value){this._w=value;this._onChangeCallback()}set(x,y,z,w){this._x=x;this._y=y;this._z=z;this._w=w;this._onChangeCallback();return this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(quaternion){this._x=quaternion.x;this._y=quaternion.y;this._z=quaternion.z;this._w=quaternion.w;this._onChangeCallback();return this}setFromEuler(euler,update=true){const x=euler._x,y=euler._y,z=euler._z,order=euler._order;const cos=Math.cos;const sin=Math.sin;const c1=cos(x/2);const c2=cos(y/2);const c3=cos(z/2);const s1=sin(x/2);const s2=sin(y/2);const s3=sin(z/2);switch(order){case"XYZ":this._x=s1*c2*c3+c1*s2*s3;this._y=c1*s2*c3-s1*c2*s3;this._z=c1*c2*s3+s1*s2*c3;this._w=c1*c2*c3-s1*s2*s3;break;case"YXZ":this._x=s1*c2*c3+c1*s2*s3;this._y=c1*s2*c3-s1*c2*s3;this._z=c1*c2*s3-s1*s2*c3;this._w=c1*c2*c3+s1*s2*s3;break;case"ZXY":this._x=s1*c2*c3-c1*s2*s3;this._y=c1*s2*c3+s1*c2*s3;this._z=c1*c2*s3+s1*s2*c3;this._w=c1*c2*c3-s1*s2*s3;break;case"ZYX":this._x=s1*c2*c3-c1*s2*s3;this._y=c1*s2*c3+s1*c2*s3;this._z=c1*c2*s3-s1*s2*c3;this._w=c1*c2*c3+s1*s2*s3;break;case"YZX":this._x=s1*c2*c3+c1*s2*s3;this._y=c1*s2*c3+s1*c2*s3;this._z=c1*c2*s3-s1*s2*c3;this._w=c1*c2*c3-s1*s2*s3;break;case"XZY":this._x=s1*c2*c3-c1*s2*s3;this._y=c1*s2*c3-s1*c2*s3;this._z=c1*c2*s3+s1*s2*c3;this._w=c1*c2*c3+s1*s2*s3;break;default:warn("Quaternion: .setFromEuler() encountered an unknown order: "+order);}if(update===true)this._onChangeCallback();return this}setFromAxisAngle(axis,angle){const halfAngle=angle/2,s=Math.sin(halfAngle);this._x=axis.x*s;this._y=axis.y*s;this._z=axis.z*s;this._w=Math.cos(halfAngle);this._onChangeCallback();return this}setFromRotationMatrix(m){const te=m.elements,m11=te[0],m12=te[4],m13=te[8],m21=te[1],m22=te[5],m23=te[9],m31=te[2],m32=te[6],m33=te[10],trace=m11+m22+m33;if(trace>0){const s=0.5/Math.sqrt(trace+1);this._w=0.25/s;this._x=(m32-m23)*s;this._y=(m13-m31)*s;this._z=(m21-m12)*s}else if(m11>m22&&m11>m33){const s=2*Math.sqrt(1+m11-m22-m33);this._w=(m32-m23)/s;this._x=0.25*s;this._y=(m12+m21)/s;this._z=(m13+m31)/s}else if(m22>m33){const s=2*Math.sqrt(1+m22-m11-m33);this._w=(m13-m31)/s;this._x=(m12+m21)/s;this._y=0.25*s;this._z=(m23+m32)/s}else{const s=2*Math.sqrt(1+m33-m11-m22);this._w=(m21-m12)/s;this._x=(m13+m31)/s;this._y=(m23+m32)/s;this._z=0.25*s}this._onChangeCallback();return this}setFromUnitVectors(vFrom,vTo){let r=vFrom.dot(vTo)+1;if(r<1e-8){r=0;if(Math.abs(vFrom.x)>Math.abs(vFrom.z)){this._x=-vFrom.y;this._y=vFrom.x;this._z=0;this._w=r}else{this._x=0;this._y=-vFrom.z;this._z=vFrom.y;this._w=r}}else{this._x=vFrom.y*vTo.z-vFrom.z*vTo.y;this._y=vFrom.z*vTo.x-vFrom.x*vTo.z;this._z=vFrom.x*vTo.y-vFrom.y*vTo.x;this._w=r}return this.normalize()}angleTo(q){return 2*Math.acos(Math.abs(clamp(this.dot(q),-1,1)))}rotateTowards(q,step){const angle=this.angleTo(q);if(angle===0)return this;const t=Math.min(1,step/angle);this.slerp(q,t);return this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){this._x*=-1;this._y*=-1;this._z*=-1;this._onChangeCallback();return this}dot(v){return this._x*v._x+this._y*v._y+this._z*v._z+this._w*v._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let l=this.length();if(l===0){this._x=0;this._y=0;this._z=0;this._w=1}else{l=1/l;this._x=this._x*l;this._y=this._y*l;this._z=this._z*l;this._w=this._w*l}this._onChangeCallback();return this}multiply(q){return this.multiplyQuaternions(this,q)}premultiply(q){return this.multiplyQuaternions(q,this)}multiplyQuaternions(a,b){const qax=a._x,qay=a._y,qaz=a._z,qaw=a._w;const qbx=b._x,qby=b._y,qbz=b._z,qbw=b._w;this._x=qax*qbw+qaw*qbx+qay*qbz-qaz*qby;this._y=qay*qbw+qaw*qby+qaz*qbx-qax*qbz;this._z=qaz*qbw+qaw*qbz+qax*qby-qay*qbx;this._w=qaw*qbw-qax*qbx-qay*qby-qaz*qbz;this._onChangeCallback();return this}slerp(qb,t){if(t<=0)return this;if(t>=1)return this.copy(qb);let x=qb._x,y=qb._y,z=qb._z,w=qb._w;let dot=this.dot(qb);if(dot<0){x=-x;y=-y;z=-z;w=-w;dot=-dot}let s=1-t;if(dot<0.9995){const theta=Math.acos(dot);const sin=Math.sin(theta);s=Math.sin(s*theta)/sin;t=Math.sin(t*theta)/sin;this._x=this._x*s+x*t;this._y=this._y*s+y*t;this._z=this._z*s+z*t;this._w=this._w*s+w*t;this._onChangeCallback()}else{this._x=this._x*s+x*t;this._y=this._y*s+y*t;this._z=this._z*s+z*t;this._w=this._w*s+w*t;this.normalize()}return this}slerpQuaternions(qa,qb,t){return this.copy(qa).slerp(qb,t)}random(){const theta1=2*Math.PI*Math.random();const theta2=2*Math.PI*Math.random();const x0=Math.random();const r1=Math.sqrt(1-x0);const r2=Math.sqrt(x0);return this.set(r1*Math.sin(theta1),r1*Math.cos(theta1),r2*Math.sin(theta2),r2*Math.cos(theta2))}equals(quaternion){return quaternion._x===this._x&&quaternion._y===this._y&&quaternion._z===this._z&&quaternion._w===this._w}fromArray(array,offset=0){this._x=array[offset];this._y=array[offset+1];this._z=array[offset+2];this._w=array[offset+3];this._onChangeCallback();return this}toArray(array=[],offset=0){array[offset]=this._x;array[offset+1]=this._y;array[offset+2]=this._z;array[offset+3]=this._w;return array}fromBufferAttribute(attribute,index){this._x=attribute.getX(index);this._y=attribute.getY(index);this._z=attribute.getZ(index);this._w=attribute.getW(index);this._onChangeCallback();return this}toJSON(){return this.toArray()}_onChange(callback){this._onChangeCallback=callback;return this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x;yield this._y;yield this._z;yield this._w}}class Vector3{constructor(x=0,y=0,z=0){Vector3.prototype.isVector3=true;this.x=x;this.y=y;this.z=z}set(x,y,z){if(z===undefined)z=this.z;this.x=x;this.y=y;this.z=z;return this}setScalar(scalar){this.x=scalar;this.y=scalar;this.z=scalar;return this}setX(x){this.x=x;return this}setY(y){this.y=y;return this}setZ(z){this.z=z;return this}setComponent(index,value){switch(index){case 0:this.x=value;break;case 1:this.y=value;break;case 2:this.z=value;break;default:throw new Error("index is out of range: "+index);}return this}getComponent(index){switch(index){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+index);}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(v){this.x=v.x;this.y=v.y;this.z=v.z;return this}add(v){this.x+=v.x;this.y+=v.y;this.z+=v.z;return this}addScalar(s){this.x+=s;this.y+=s;this.z+=s;return this}addVectors(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;return this}addScaledVector(v,s){this.x+=v.x*s;this.y+=v.y*s;this.z+=v.z*s;return this}sub(v){this.x-=v.x;this.y-=v.y;this.z-=v.z;return this}subScalar(s){this.x-=s;this.y-=s;this.z-=s;return this}subVectors(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;return this}multiply(v){this.x*=v.x;this.y*=v.y;this.z*=v.z;return this}multiplyScalar(scalar){this.x*=scalar;this.y*=scalar;this.z*=scalar;return this}multiplyVectors(a,b){this.x=a.x*b.x;this.y=a.y*b.y;this.z=a.z*b.z;return this}applyEuler(euler){return this.applyQuaternion(_quaternion$4.setFromEuler(euler))}applyAxisAngle(axis,angle){return this.applyQuaternion(_quaternion$4.setFromAxisAngle(axis,angle))}applyMatrix3(m){const x=this.x,y=this.y,z=this.z;const e=m.elements;this.x=e[0]*x+e[3]*y+e[6]*z;this.y=e[1]*x+e[4]*y+e[7]*z;this.z=e[2]*x+e[5]*y+e[8]*z;return this}applyNormalMatrix(m){return this.applyMatrix3(m).normalize()}applyMatrix4(m){const x=this.x,y=this.y,z=this.z;const e=m.elements;const w=1/(e[3]*x+e[7]*y+e[11]*z+e[15]);this.x=(e[0]*x+e[4]*y+e[8]*z+e[12])*w;this.y=(e[1]*x+e[5]*y+e[9]*z+e[13])*w;this.z=(e[2]*x+e[6]*y+e[10]*z+e[14])*w;return this}applyQuaternion(q){const vx=this.x,vy=this.y,vz=this.z;const qx=q.x,qy=q.y,qz=q.z,qw=q.w;const tx=2*(qy*vz-qz*vy);const ty=2*(qz*vx-qx*vz);const tz=2*(qx*vy-qy*vx);this.x=vx+qw*tx+qy*tz-qz*ty;this.y=vy+qw*ty+qz*tx-qx*tz;this.z=vz+qw*tz+qx*ty-qy*tx;return this}project(camera){return this.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix)}unproject(camera){return this.applyMatrix4(camera.projectionMatrixInverse).applyMatrix4(camera.matrixWorld)}transformDirection(m){const x=this.x,y=this.y,z=this.z;const e=m.elements;this.x=e[0]*x+e[4]*y+e[8]*z;this.y=e[1]*x+e[5]*y+e[9]*z;this.z=e[2]*x+e[6]*y+e[10]*z;return this.normalize()}divide(v){this.x/=v.x;this.y/=v.y;this.z/=v.z;return this}divideScalar(scalar){return this.multiplyScalar(1/scalar)}min(v){this.x=Math.min(this.x,v.x);this.y=Math.min(this.y,v.y);this.z=Math.min(this.z,v.z);return this}max(v){this.x=Math.max(this.x,v.x);this.y=Math.max(this.y,v.y);this.z=Math.max(this.z,v.z);return this}clamp(min,max){this.x=clamp(this.x,min.x,max.x);this.y=clamp(this.y,min.y,max.y);this.z=clamp(this.z,min.z,max.z);return this}clampScalar(minVal,maxVal){this.x=clamp(this.x,minVal,maxVal);this.y=clamp(this.y,minVal,maxVal);this.z=clamp(this.z,minVal,maxVal);return this}clampLength(min,max){const length=this.length();return this.divideScalar(length||1).multiplyScalar(clamp(length,min,max))}floor(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);return this}ceil(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);return this}round(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);return this}roundToZero(){this.x=Math.trunc(this.x);this.y=Math.trunc(this.y);this.z=Math.trunc(this.z);return this}negate(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this}dot(v){return this.x*v.x+this.y*v.y+this.z*v.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(length){return this.normalize().multiplyScalar(length)}lerp(v,alpha){this.x+=(v.x-this.x)*alpha;this.y+=(v.y-this.y)*alpha;this.z+=(v.z-this.z)*alpha;return this}lerpVectors(v1,v2,alpha){this.x=v1.x+(v2.x-v1.x)*alpha;this.y=v1.y+(v2.y-v1.y)*alpha;this.z=v1.z+(v2.z-v1.z)*alpha;return this}cross(v){return this.crossVectors(this,v)}crossVectors(a,b){const ax=a.x,ay=a.y,az=a.z;const bx=b.x,by=b.y,bz=b.z;this.x=ay*bz-az*by;this.y=az*bx-ax*bz;this.z=ax*by-ay*bx;return this}projectOnVector(v){const denominator=v.lengthSq();if(denominator===0)return this.set(0,0,0);const scalar=v.dot(this)/denominator;return this.copy(v).multiplyScalar(scalar)}projectOnPlane(planeNormal){_vector$c.copy(this).projectOnVector(planeNormal);return this.sub(_vector$c)}reflect(normal){return this.sub(_vector$c.copy(normal).multiplyScalar(2*this.dot(normal)))}angleTo(v){const denominator=Math.sqrt(this.lengthSq()*v.lengthSq());if(denominator===0)return Math.PI/2;const theta=this.dot(v)/denominator;return Math.acos(clamp(theta,-1,1))}distanceTo(v){return Math.sqrt(this.distanceToSquared(v))}distanceToSquared(v){const dx=this.x-v.x,dy=this.y-v.y,dz=this.z-v.z;return dx*dx+dy*dy+dz*dz}manhattanDistanceTo(v){return Math.abs(this.x-v.x)+Math.abs(this.y-v.y)+Math.abs(this.z-v.z)}setFromSpherical(s){return this.setFromSphericalCoords(s.radius,s.phi,s.theta)}setFromSphericalCoords(radius,phi,theta){const sinPhiRadius=Math.sin(phi)*radius;this.x=sinPhiRadius*Math.sin(theta);this.y=Math.cos(phi)*radius;this.z=sinPhiRadius*Math.cos(theta);return this}setFromCylindrical(c){return this.setFromCylindricalCoords(c.radius,c.theta,c.y)}setFromCylindricalCoords(radius,theta,y){this.x=radius*Math.sin(theta);this.y=y;this.z=radius*Math.cos(theta);return this}setFromMatrixPosition(m){const e=m.elements;this.x=e[12];this.y=e[13];this.z=e[14];return this}setFromMatrixScale(m){const sx=this.setFromMatrixColumn(m,0).length();const sy=this.setFromMatrixColumn(m,1).length();const sz=this.setFromMatrixColumn(m,2).length();this.x=sx;this.y=sy;this.z=sz;return this}setFromMatrixColumn(m,index){return this.fromArray(m.elements,index*4)}setFromMatrix3Column(m,index){return this.fromArray(m.elements,index*3)}setFromEuler(e){this.x=e._x;this.y=e._y;this.z=e._z;return this}setFromColor(c){this.x=c.r;this.y=c.g;this.z=c.b;return this}equals(v){return v.x===this.x&&v.y===this.y&&v.z===this.z}fromArray(array,offset=0){this.x=array[offset];this.y=array[offset+1];this.z=array[offset+2];return this}toArray(array=[],offset=0){array[offset]=this.x;array[offset+1]=this.y;array[offset+2]=this.z;return array}fromBufferAttribute(attribute,index){this.x=attribute.getX(index);this.y=attribute.getY(index);this.z=attribute.getZ(index);return this}random(){this.x=Math.random();this.y=Math.random();this.z=Math.random();return this}randomDirection(){const theta=Math.random()*Math.PI*2;const u=Math.random()*2-1;const c=Math.sqrt(1-u*u);this.x=c*Math.cos(theta);this.y=u;this.z=c*Math.sin(theta);return this}*[Symbol.iterator](){yield this.x;yield this.y;yield this.z}}const _vector$c=new Vector3;const _quaternion$4=new Quaternion;class Matrix3{constructor(n11,n12,n13,n21,n22,n23,n31,n32,n33){Matrix3.prototype.isMatrix3=true;this.elements=[1,0,0,0,1,0,0,0,1];if(n11!==undefined){this.set(n11,n12,n13,n21,n22,n23,n31,n32,n33)}}set(n11,n12,n13,n21,n22,n23,n31,n32,n33){const te=this.elements;te[0]=n11;te[1]=n21;te[2]=n31;te[3]=n12;te[4]=n22;te[5]=n32;te[6]=n13;te[7]=n23;te[8]=n33;return this}identity(){this.set(1,0,0,0,1,0,0,0,1);return this}copy(m){const te=this.elements;const me=m.elements;te[0]=me[0];te[1]=me[1];te[2]=me[2];te[3]=me[3];te[4]=me[4];te[5]=me[5];te[6]=me[6];te[7]=me[7];te[8]=me[8];return this}extractBasis(xAxis,yAxis,zAxis){xAxis.setFromMatrix3Column(this,0);yAxis.setFromMatrix3Column(this,1);zAxis.setFromMatrix3Column(this,2);return this}setFromMatrix4(m){const me=m.elements;this.set(me[0],me[4],me[8],me[1],me[5],me[9],me[2],me[6],me[10]);return this}multiply(m){return this.multiplyMatrices(this,m)}premultiply(m){return this.multiplyMatrices(m,this)}multiplyMatrices(a,b){const ae=a.elements;const be=b.elements;const te=this.elements;const a11=ae[0],a12=ae[3],a13=ae[6];const a21=ae[1],a22=ae[4],a23=ae[7];const a31=ae[2],a32=ae[5],a33=ae[8];const b11=be[0],b12=be[3],b13=be[6];const b21=be[1],b22=be[4],b23=be[7];const b31=be[2],b32=be[5],b33=be[8];te[0]=a11*b11+a12*b21+a13*b31;te[3]=a11*b12+a12*b22+a13*b32;te[6]=a11*b13+a12*b23+a13*b33;te[1]=a21*b11+a22*b21+a23*b31;te[4]=a21*b12+a22*b22+a23*b32;te[7]=a21*b13+a22*b23+a23*b33;te[2]=a31*b11+a32*b21+a33*b31;te[5]=a31*b12+a32*b22+a33*b32;te[8]=a31*b13+a32*b23+a33*b33;return this}multiplyScalar(s){const te=this.elements;te[0]*=s;te[3]*=s;te[6]*=s;te[1]*=s;te[4]*=s;te[7]*=s;te[2]*=s;te[5]*=s;te[8]*=s;return this}determinant(){const te=this.elements;const a=te[0],b=te[1],c=te[2],d=te[3],e=te[4],f=te[5],g=te[6],h=te[7],i=te[8];return a*e*i-a*f*h-b*d*i+b*f*g+c*d*h-c*e*g}invert(){const te=this.elements,n11=te[0],n21=te[1],n31=te[2],n12=te[3],n22=te[4],n32=te[5],n13=te[6],n23=te[7],n33=te[8],t11=n33*n22-n32*n23,t12=n32*n13-n33*n12,t13=n23*n12-n22*n13,det=n11*t11+n21*t12+n31*t13;if(det===0)return this.set(0,0,0,0,0,0,0,0,0);const detInv=1/det;te[0]=t11*detInv;te[1]=(n31*n23-n33*n21)*detInv;te[2]=(n32*n21-n31*n22)*detInv;te[3]=t12*detInv;te[4]=(n33*n11-n31*n13)*detInv;te[5]=(n31*n12-n32*n11)*detInv;te[6]=t13*detInv;te[7]=(n21*n13-n23*n11)*detInv;te[8]=(n22*n11-n21*n12)*detInv;return this}transpose(){let tmp;const m=this.elements;tmp=m[1];m[1]=m[3];m[3]=tmp;tmp=m[2];m[2]=m[6];m[6]=tmp;tmp=m[5];m[5]=m[7];m[7]=tmp;return this}getNormalMatrix(matrix4){return this.setFromMatrix4(matrix4).invert().transpose()}transposeIntoArray(r){const m=this.elements;r[0]=m[0];r[1]=m[3];r[2]=m[6];r[3]=m[1];r[4]=m[4];r[5]=m[7];r[6]=m[2];r[7]=m[5];r[8]=m[8];return this}setUvTransform(tx,ty,sx,sy,rotation,cx,cy){const c=Math.cos(rotation);const s=Math.sin(rotation);this.set(sx*c,sx*s,-sx*(c*cx+s*cy)+cx+tx,-sy*s,sy*c,-sy*(-s*cx+c*cy)+cy+ty,0,0,1);return this}scale(sx,sy){this.premultiply(_m3.makeScale(sx,sy));return this}rotate(theta){this.premultiply(_m3.makeRotation(-theta));return this}translate(tx,ty){this.premultiply(_m3.makeTranslation(tx,ty));return this}makeTranslation(x,y){if(x.isVector2){this.set(1,0,x.x,0,1,x.y,0,0,1)}else{this.set(1,0,x,0,1,y,0,0,1)}return this}makeRotation(theta){const c=Math.cos(theta);const s=Math.sin(theta);this.set(c,-s,0,s,c,0,0,0,1);return this}makeScale(x,y){this.set(x,0,0,0,y,0,0,0,1);return this}equals(matrix){const te=this.elements;const me=matrix.elements;for(let i=0;i<9;i++){if(te[i]!==me[i])return false}return true}fromArray(array,offset=0){for(let i=0;i<9;i++){this.elements[i]=array[i+offset]}return this}toArray(array=[],offset=0){const te=this.elements;array[offset]=te[0];array[offset+1]=te[1];array[offset+2]=te[2];array[offset+3]=te[3];array[offset+4]=te[4];array[offset+5]=te[5];array[offset+6]=te[6];array[offset+7]=te[7];array[offset+8]=te[8];return array}clone(){return new this.constructor().fromArray(this.elements)}}const _m3=new Matrix3;const LINEAR_REC709_TO_XYZ=new Matrix3().set(0.4123908,0.3575843,0.1804808,0.212639,0.7151687,0.0721923,0.0193308,0.1191948,0.9505322);const XYZ_TO_LINEAR_REC709=new Matrix3().set(3.2409699,-1.5373832,-0.4986108,-0.9692436,1.8759675,0.0415551,0.0556301,-0.203977,1.0569715);function createColorManagement(){const ColorManagement={enabled:true,workingColorSpace:LinearSRGBColorSpace,spaces:{},convert:function(color,sourceColorSpace,targetColorSpace){if(this.enabled===false||sourceColorSpace===targetColorSpace||!sourceColorSpace||!targetColorSpace){return color}if(this.spaces[sourceColorSpace].transfer===SRGBTransfer){color.r=SRGBToLinear(color.r);color.g=SRGBToLinear(color.g);color.b=SRGBToLinear(color.b)}if(this.spaces[sourceColorSpace].primaries!==this.spaces[targetColorSpace].primaries){color.applyMatrix3(this.spaces[sourceColorSpace].toXYZ);color.applyMatrix3(this.spaces[targetColorSpace].fromXYZ)}if(this.spaces[targetColorSpace].transfer===SRGBTransfer){color.r=LinearToSRGB(color.r);color.g=LinearToSRGB(color.g);color.b=LinearToSRGB(color.b)}return color},workingToColorSpace:function(color,targetColorSpace){return this.convert(color,this.workingColorSpace,targetColorSpace)},colorSpaceToWorking:function(color,sourceColorSpace){return this.convert(color,sourceColorSpace,this.workingColorSpace)},getPrimaries:function(colorSpace){return this.spaces[colorSpace].primaries},getTransfer:function(colorSpace){if(colorSpace===NoColorSpace)return LinearTransfer;return this.spaces[colorSpace].transfer},getToneMappingMode:function(colorSpace){return this.spaces[colorSpace].outputColorSpaceConfig.toneMappingMode||"standard"},getLuminanceCoefficients:function(target,colorSpace=this.workingColorSpace){return target.fromArray(this.spaces[colorSpace].luminanceCoefficients)},define:function(colorSpaces){Object.assign(this.spaces,colorSpaces)},_getMatrix:function(targetMatrix,sourceColorSpace,targetColorSpace){return targetMatrix.copy(this.spaces[sourceColorSpace].toXYZ).multiply(this.spaces[targetColorSpace].fromXYZ)},_getDrawingBufferColorSpace:function(colorSpace){return this.spaces[colorSpace].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(colorSpace=this.workingColorSpace){return this.spaces[colorSpace].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(color,targetColorSpace){warnOnce("ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace().");return ColorManagement.workingToColorSpace(color,targetColorSpace)},toWorkingColorSpace:function(color,sourceColorSpace){warnOnce("ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking().");return ColorManagement.colorSpaceToWorking(color,sourceColorSpace)}};const REC709_PRIMARIES=[0.64,0.33,0.3,0.6,0.15,0.06];const REC709_LUMINANCE_COEFFICIENTS=[0.2126,0.7152,0.0722];const D65=[0.3127,0.329];ColorManagement.define({[LinearSRGBColorSpace]:{primaries:REC709_PRIMARIES,whitePoint:D65,transfer:LinearTransfer,toXYZ:LINEAR_REC709_TO_XYZ,fromXYZ:XYZ_TO_LINEAR_REC709,luminanceCoefficients:REC709_LUMINANCE_COEFFICIENTS,workingColorSpaceConfig:{unpackColorSpace:SRGBColorSpace},outputColorSpaceConfig:{drawingBufferColorSpace:SRGBColorSpace}},[SRGBColorSpace]:{primaries:REC709_PRIMARIES,whitePoint:D65,transfer:SRGBTransfer,toXYZ:LINEAR_REC709_TO_XYZ,fromXYZ:XYZ_TO_LINEAR_REC709,luminanceCoefficients:REC709_LUMINANCE_COEFFICIENTS,outputColorSpaceConfig:{drawingBufferColorSpace:SRGBColorSpace}}});return ColorManagement}const ColorManagement=createColorManagement();function SRGBToLinear(c){return c<0.04045?c*0.0773993808:Math.pow(c*0.9478672986+0.0521327014,2.4)}function LinearToSRGB(c){return c<0.0031308?c*12.92:1.055*Math.pow(c,0.41666)-0.055}let _canvas;class ImageUtils{static getDataURL(image,type="image/png"){if(/^data:/i.test(image.src)){return image.src}if(typeof HTMLCanvasElement==="undefined"){return image.src}let canvas;if(image instanceof HTMLCanvasElement){canvas=image}else{if(_canvas===undefined)_canvas=createElementNS("canvas");_canvas.width=image.width;_canvas.height=image.height;const context=_canvas.getContext("2d");if(image instanceof ImageData){context.putImageData(image,0,0)}else{context.drawImage(image,0,0,image.width,image.height)}canvas=_canvas}return canvas.toDataURL(type)}static sRGBToLinear(image){if(typeof HTMLImageElement!=="undefined"&&image instanceof HTMLImageElement||typeof HTMLCanvasElement!=="undefined"&&image instanceof HTMLCanvasElement||typeof ImageBitmap!=="undefined"&&image instanceof ImageBitmap){const canvas=createElementNS("canvas");canvas.width=image.width;canvas.height=image.height;const context=canvas.getContext("2d");context.drawImage(image,0,0,image.width,image.height);const imageData=context.getImageData(0,0,image.width,image.height);const data=imageData.data;for(let i=0;i1?true:false;this.pmremVersion=0}get width(){return this.source.getSize(_tempVec3).x}get height(){return this.source.getSize(_tempVec3).y}get depth(){return this.source.getSize(_tempVec3).z}get image(){return this.source.data}set image(value=null){this.source.data=value}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}addUpdateRange(start,count){this.updateRanges.push({start,count})}clearUpdateRanges(){this.updateRanges.length=0}clone(){return new this.constructor().copy(this)}copy(source){this.name=source.name;this.source=source.source;this.mipmaps=source.mipmaps.slice(0);this.mapping=source.mapping;this.channel=source.channel;this.wrapS=source.wrapS;this.wrapT=source.wrapT;this.magFilter=source.magFilter;this.minFilter=source.minFilter;this.anisotropy=source.anisotropy;this.format=source.format;this.internalFormat=source.internalFormat;this.type=source.type;this.offset.copy(source.offset);this.repeat.copy(source.repeat);this.center.copy(source.center);this.rotation=source.rotation;this.matrixAutoUpdate=source.matrixAutoUpdate;this.matrix.copy(source.matrix);this.generateMipmaps=source.generateMipmaps;this.premultiplyAlpha=source.premultiplyAlpha;this.flipY=source.flipY;this.unpackAlignment=source.unpackAlignment;this.colorSpace=source.colorSpace;this.renderTarget=source.renderTarget;this.isRenderTargetTexture=source.isRenderTargetTexture;this.isArrayTexture=source.isArrayTexture;this.userData=JSON.parse(JSON.stringify(source.userData));this.needsUpdate=true;return this}setValues(values){for(const key in values){const newValue=values[key];if(newValue===undefined){warn(`Texture.setValues(): parameter '${key}' has value of undefined.`);continue}const currentValue=this[key];if(currentValue===undefined){warn(`Texture.setValues(): property '${key}' does not exist.`);continue}if(currentValue&&newValue&¤tValue.isVector2&&newValue.isVector2){currentValue.copy(newValue)}else if(currentValue&&newValue&¤tValue.isVector3&&newValue.isVector3){currentValue.copy(newValue)}else if(currentValue&&newValue&¤tValue.isMatrix3&&newValue.isMatrix3){currentValue.copy(newValue)}else{this[key]=newValue}}}toJSON(meta){const isRootObject=meta===undefined||typeof meta==="string";if(!isRootObject&&meta.textures[this.uuid]!==undefined){return meta.textures[this.uuid]}const output={metadata:{version:4.7,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(meta).uuid,mapping:this.mapping,channel:this.channel,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,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(Object.keys(this.userData).length>0)output.userData=this.userData;if(!isRootObject){meta.textures[this.uuid]=output}return output}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(uv){if(this.mapping!==UVMapping)return uv;uv.applyMatrix3(this.matrix);if(uv.x<0||uv.x>1){switch(this.wrapS){case RepeatWrapping:uv.x=uv.x-Math.floor(uv.x);break;case ClampToEdgeWrapping:uv.x=uv.x<0?0:1;break;case MirroredRepeatWrapping:if(Math.abs(Math.floor(uv.x)%2)===1){uv.x=Math.ceil(uv.x)-uv.x}else{uv.x=uv.x-Math.floor(uv.x)}break;}}if(uv.y<0||uv.y>1){switch(this.wrapT){case RepeatWrapping:uv.y=uv.y-Math.floor(uv.y);break;case ClampToEdgeWrapping:uv.y=uv.y<0?0:1;break;case MirroredRepeatWrapping:if(Math.abs(Math.floor(uv.y)%2)===1){uv.y=Math.ceil(uv.y)-uv.y}else{uv.y=uv.y-Math.floor(uv.y)}break;}}if(this.flipY){uv.y=1-uv.y}return uv}set needsUpdate(value){if(value===true){this.version++;this.source.needsUpdate=true}}set needsPMREMUpdate(value){if(value===true){this.pmremVersion++}}}Texture.DEFAULT_IMAGE=null;Texture.DEFAULT_MAPPING=UVMapping;Texture.DEFAULT_ANISOTROPY=1;class Vector4{constructor(x=0,y=0,z=0,w=1){Vector4.prototype.isVector4=true;this.x=x;this.y=y;this.z=z;this.w=w}get width(){return this.z}set width(value){this.z=value}get height(){return this.w}set height(value){this.w=value}set(x,y,z,w){this.x=x;this.y=y;this.z=z;this.w=w;return this}setScalar(scalar){this.x=scalar;this.y=scalar;this.z=scalar;this.w=scalar;return this}setX(x){this.x=x;return this}setY(y){this.y=y;return this}setZ(z){this.z=z;return this}setW(w){this.w=w;return this}setComponent(index,value){switch(index){case 0:this.x=value;break;case 1:this.y=value;break;case 2:this.z=value;break;case 3:this.w=value;break;default:throw new Error("index is out of range: "+index);}return this}getComponent(index){switch(index){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: "+index);}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(v){this.x=v.x;this.y=v.y;this.z=v.z;this.w=v.w!==undefined?v.w:1;return this}add(v){this.x+=v.x;this.y+=v.y;this.z+=v.z;this.w+=v.w;return this}addScalar(s){this.x+=s;this.y+=s;this.z+=s;this.w+=s;return this}addVectors(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;this.w=a.w+b.w;return this}addScaledVector(v,s){this.x+=v.x*s;this.y+=v.y*s;this.z+=v.z*s;this.w+=v.w*s;return this}sub(v){this.x-=v.x;this.y-=v.y;this.z-=v.z;this.w-=v.w;return this}subScalar(s){this.x-=s;this.y-=s;this.z-=s;this.w-=s;return this}subVectors(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;this.w=a.w-b.w;return this}multiply(v){this.x*=v.x;this.y*=v.y;this.z*=v.z;this.w*=v.w;return this}multiplyScalar(scalar){this.x*=scalar;this.y*=scalar;this.z*=scalar;this.w*=scalar;return this}applyMatrix4(m){const x=this.x,y=this.y,z=this.z,w=this.w;const e=m.elements;this.x=e[0]*x+e[4]*y+e[8]*z+e[12]*w;this.y=e[1]*x+e[5]*y+e[9]*z+e[13]*w;this.z=e[2]*x+e[6]*y+e[10]*z+e[14]*w;this.w=e[3]*x+e[7]*y+e[11]*z+e[15]*w;return this}divide(v){this.x/=v.x;this.y/=v.y;this.z/=v.z;this.w/=v.w;return this}divideScalar(scalar){return this.multiplyScalar(1/scalar)}setAxisAngleFromQuaternion(q){this.w=2*Math.acos(q.w);const s=Math.sqrt(1-q.w*q.w);if(s<0.0001){this.x=1;this.y=0;this.z=0}else{this.x=q.x/s;this.y=q.y/s;this.z=q.z/s}return this}setAxisAngleFromRotationMatrix(m){let angle,x,y,z;const epsilon=0.01,epsilon2=0.1,te=m.elements,m11=te[0],m12=te[4],m13=te[8],m21=te[1],m22=te[5],m23=te[9],m31=te[2],m32=te[6],m33=te[10];if(Math.abs(m12-m21)yy&&xx>zz){if(xxzz){if(yy1}}this.dispose()}this.viewport.set(0,0,width,height);this.scissor.set(0,0,width,height)}clone(){return new this.constructor().copy(this)}copy(source){this.width=source.width;this.height=source.height;this.depth=source.depth;this.scissor.copy(source.scissor);this.scissorTest=source.scissorTest;this.viewport.copy(source.viewport);this.textures.length=0;for(let i=0,il=source.textures.length;i=this.min.x&&point.x<=this.max.x&&point.y>=this.min.y&&point.y<=this.max.y&&point.z>=this.min.z&&point.z<=this.max.z}containsBox(box){return this.min.x<=box.min.x&&box.max.x<=this.max.x&&this.min.y<=box.min.y&&box.max.y<=this.max.y&&this.min.z<=box.min.z&&box.max.z<=this.max.z}getParameter(point,target){return target.set((point.x-this.min.x)/(this.max.x-this.min.x),(point.y-this.min.y)/(this.max.y-this.min.y),(point.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(box){return box.max.x>=this.min.x&&box.min.x<=this.max.x&&box.max.y>=this.min.y&&box.min.y<=this.max.y&&box.max.z>=this.min.z&&box.min.z<=this.max.z}intersectsSphere(sphere){this.clampPoint(sphere.center,_vector$b);return _vector$b.distanceToSquared(sphere.center)<=sphere.radius*sphere.radius}intersectsPlane(plane){let min,max;if(plane.normal.x>0){min=plane.normal.x*this.min.x;max=plane.normal.x*this.max.x}else{min=plane.normal.x*this.max.x;max=plane.normal.x*this.min.x}if(plane.normal.y>0){min+=plane.normal.y*this.min.y;max+=plane.normal.y*this.max.y}else{min+=plane.normal.y*this.max.y;max+=plane.normal.y*this.min.y}if(plane.normal.z>0){min+=plane.normal.z*this.min.z;max+=plane.normal.z*this.max.z}else{min+=plane.normal.z*this.max.z;max+=plane.normal.z*this.min.z}return min<=-plane.constant&&max>=-plane.constant}intersectsTriangle(triangle){if(this.isEmpty()){return false}this.getCenter(_center);_extents.subVectors(this.max,_center);_v0$3.subVectors(triangle.a,_center);_v1$7.subVectors(triangle.b,_center);_v2$4.subVectors(triangle.c,_center);_f0.subVectors(_v1$7,_v0$3);_f1.subVectors(_v2$4,_v1$7);_f2.subVectors(_v0$3,_v2$4);let axes=[0,-_f0.z,_f0.y,0,-_f1.z,_f1.y,0,-_f2.z,_f2.y,_f0.z,0,-_f0.x,_f1.z,0,-_f1.x,_f2.z,0,-_f2.x,-_f0.y,_f0.x,0,-_f1.y,_f1.x,0,-_f2.y,_f2.x,0];if(!satForAxes(axes,_v0$3,_v1$7,_v2$4,_extents)){return false}axes=[1,0,0,0,1,0,0,0,1];if(!satForAxes(axes,_v0$3,_v1$7,_v2$4,_extents)){return false}_triangleNormal.crossVectors(_f0,_f1);axes=[_triangleNormal.x,_triangleNormal.y,_triangleNormal.z];return satForAxes(axes,_v0$3,_v1$7,_v2$4,_extents)}clampPoint(point,target){return target.copy(point).clamp(this.min,this.max)}distanceToPoint(point){return this.clampPoint(point,_vector$b).distanceTo(point)}getBoundingSphere(target){if(this.isEmpty()){target.makeEmpty()}else{this.getCenter(target.center);target.radius=this.getSize(_vector$b).length()*0.5}return target}intersect(box){this.min.max(box.min);this.max.min(box.max);if(this.isEmpty())this.makeEmpty();return this}union(box){this.min.min(box.min);this.max.max(box.max);return this}applyMatrix4(matrix){if(this.isEmpty())return this;_points[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(matrix);_points[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(matrix);_points[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(matrix);_points[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(matrix);_points[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(matrix);_points[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(matrix);_points[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(matrix);_points[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(matrix);this.setFromPoints(_points);return this}translate(offset){this.min.add(offset);this.max.add(offset);return this}equals(box){return box.min.equals(this.min)&&box.max.equals(this.max)}toJSON(){return{min:this.min.toArray(),max:this.max.toArray()}}fromJSON(json){this.min.fromArray(json.min);this.max.fromArray(json.max);return this}}const _points=[new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3];const _vector$b=new Vector3;const _box$4=new Box3;const _v0$3=new Vector3;const _v1$7=new Vector3;const _v2$4=new Vector3;const _f0=new Vector3;const _f1=new Vector3;const _f2=new Vector3;const _center=new Vector3;const _extents=new Vector3;const _triangleNormal=new Vector3;const _testAxis=new Vector3;function satForAxes(axes,v0,v1,v2,extents){for(let i=0,j=axes.length-3;i<=j;i+=3){_testAxis.fromArray(axes,i);const r=extents.x*Math.abs(_testAxis.x)+extents.y*Math.abs(_testAxis.y)+extents.z*Math.abs(_testAxis.z);const p0=v0.dot(_testAxis);const p1=v1.dot(_testAxis);const p2=v2.dot(_testAxis);if(Math.max(-Math.max(p0,p1,p2),Math.min(p0,p1,p2))>r){return false}}return true}const _box$3=new Box3;const _v1$6=new Vector3;const _v2$3=new Vector3;class Sphere{constructor(center=new Vector3,radius=-1){this.isSphere=true;this.center=center;this.radius=radius}set(center,radius){this.center.copy(center);this.radius=radius;return this}setFromPoints(points,optionalCenter){const center=this.center;if(optionalCenter!==undefined){center.copy(optionalCenter)}else{_box$3.setFromPoints(points).getCenter(center)}let maxRadiusSq=0;for(let i=0,il=points.length;ithis.radius*this.radius){target.sub(this.center).normalize();target.multiplyScalar(this.radius).add(this.center)}return target}getBoundingBox(target){if(this.isEmpty()){target.makeEmpty();return target}target.set(this.center,this.center);target.expandByScalar(this.radius);return target}applyMatrix4(matrix){this.center.applyMatrix4(matrix);this.radius=this.radius*matrix.getMaxScaleOnAxis();return this}translate(offset){this.center.add(offset);return this}expandByPoint(point){if(this.isEmpty()){this.center.copy(point);this.radius=0;return this}_v1$6.subVectors(point,this.center);const lengthSq=_v1$6.lengthSq();if(lengthSq>this.radius*this.radius){const length=Math.sqrt(lengthSq);const delta=(length-this.radius)*0.5;this.center.addScaledVector(_v1$6,delta/length);this.radius+=delta}return this}union(sphere){if(sphere.isEmpty()){return this}if(this.isEmpty()){this.copy(sphere);return this}if(this.center.equals(sphere.center)===true){this.radius=Math.max(this.radius,sphere.radius)}else{_v2$3.subVectors(sphere.center,this.center).setLength(sphere.radius);this.expandByPoint(_v1$6.copy(sphere.center).add(_v2$3));this.expandByPoint(_v1$6.copy(sphere.center).sub(_v2$3))}return this}equals(sphere){return sphere.center.equals(this.center)&&sphere.radius===this.radius}clone(){return new this.constructor().copy(this)}toJSON(){return{radius:this.radius,center:this.center.toArray()}}fromJSON(json){this.radius=json.radius;this.center.fromArray(json.center);return this}}const _vector$a=new Vector3;const _segCenter=new Vector3;const _segDir=new Vector3;const _diff=new Vector3;const _edge1=new Vector3;const _edge2=new Vector3;const _normal$1=new Vector3;class Ray{constructor(origin=new Vector3,direction=new Vector3(0,0,-1)){this.origin=origin;this.direction=direction}set(origin,direction){this.origin.copy(origin);this.direction.copy(direction);return this}copy(ray){this.origin.copy(ray.origin);this.direction.copy(ray.direction);return this}at(t,target){return target.copy(this.origin).addScaledVector(this.direction,t)}lookAt(v){this.direction.copy(v).sub(this.origin).normalize();return this}recast(t){this.origin.copy(this.at(t,_vector$a));return this}closestPointToPoint(point,target){target.subVectors(point,this.origin);const directionDistance=target.dot(this.direction);if(directionDistance<0){return target.copy(this.origin)}return target.copy(this.origin).addScaledVector(this.direction,directionDistance)}distanceToPoint(point){return Math.sqrt(this.distanceSqToPoint(point))}distanceSqToPoint(point){const directionDistance=_vector$a.subVectors(point,this.origin).dot(this.direction);if(directionDistance<0){return this.origin.distanceToSquared(point)}_vector$a.copy(this.origin).addScaledVector(this.direction,directionDistance);return _vector$a.distanceToSquared(point)}distanceSqToSegment(v0,v1,optionalPointOnRay,optionalPointOnSegment){_segCenter.copy(v0).add(v1).multiplyScalar(0.5);_segDir.copy(v1).sub(v0).normalize();_diff.copy(this.origin).sub(_segCenter);const segExtent=v0.distanceTo(v1)*0.5;const a01=-this.direction.dot(_segDir);const b0=_diff.dot(this.direction);const b1=-_diff.dot(_segDir);const c=_diff.lengthSq();const det=Math.abs(1-a01*a01);let s0,s1,sqrDist,extDet;if(det>0){s0=a01*b1-b0;s1=a01*b0-b1;extDet=segExtent*det;if(s0>=0){if(s1>=-extDet){if(s1<=extDet){const invDet=1/det;s0*=invDet;s1*=invDet;sqrDist=s0*(s0+a01*s1+2*b0)+s1*(a01*s0+s1+2*b1)+c}else{s1=segExtent;s0=Math.max(0,-(a01*s1+b0));sqrDist=-s0*s0+s1*(s1+2*b1)+c}}else{s1=-segExtent;s0=Math.max(0,-(a01*s1+b0));sqrDist=-s0*s0+s1*(s1+2*b1)+c}}else{if(s1<=-extDet){s0=Math.max(0,-(-a01*segExtent+b0));s1=s0>0?-segExtent:Math.min(Math.max(-segExtent,-b1),segExtent);sqrDist=-s0*s0+s1*(s1+2*b1)+c}else if(s1<=extDet){s0=0;s1=Math.min(Math.max(-segExtent,-b1),segExtent);sqrDist=s1*(s1+2*b1)+c}else{s0=Math.max(0,-(a01*segExtent+b0));s1=s0>0?segExtent:Math.min(Math.max(-segExtent,-b1),segExtent);sqrDist=-s0*s0+s1*(s1+2*b1)+c}}}else{s1=a01>0?-segExtent:segExtent;s0=Math.max(0,-(a01*s1+b0));sqrDist=-s0*s0+s1*(s1+2*b1)+c}if(optionalPointOnRay){optionalPointOnRay.copy(this.origin).addScaledVector(this.direction,s0)}if(optionalPointOnSegment){optionalPointOnSegment.copy(_segCenter).addScaledVector(_segDir,s1)}return sqrDist}intersectSphere(sphere,target){_vector$a.subVectors(sphere.center,this.origin);const tca=_vector$a.dot(this.direction);const d2=_vector$a.dot(_vector$a)-tca*tca;const radius2=sphere.radius*sphere.radius;if(d2>radius2)return null;const thc=Math.sqrt(radius2-d2);const t0=tca-thc;const t1=tca+thc;if(t1<0)return null;if(t0<0)return this.at(t1,target);return this.at(t0,target)}intersectsSphere(sphere){if(sphere.radius<0)return false;return this.distanceSqToPoint(sphere.center)<=sphere.radius*sphere.radius}distanceToPlane(plane){const denominator=plane.normal.dot(this.direction);if(denominator===0){if(plane.distanceToPoint(this.origin)===0){return 0}return null}const t=-(this.origin.dot(plane.normal)+plane.constant)/denominator;return t>=0?t:null}intersectPlane(plane,target){const t=this.distanceToPlane(plane);if(t===null){return null}return this.at(t,target)}intersectsPlane(plane){const distToPoint=plane.distanceToPoint(this.origin);if(distToPoint===0){return true}const denominator=plane.normal.dot(this.direction);if(denominator*distToPoint<0){return true}return false}intersectBox(box,target){let tmin,tmax,tymin,tymax,tzmin,tzmax;const invdirx=1/this.direction.x,invdiry=1/this.direction.y,invdirz=1/this.direction.z;const origin=this.origin;if(invdirx>=0){tmin=(box.min.x-origin.x)*invdirx;tmax=(box.max.x-origin.x)*invdirx}else{tmin=(box.max.x-origin.x)*invdirx;tmax=(box.min.x-origin.x)*invdirx}if(invdiry>=0){tymin=(box.min.y-origin.y)*invdiry;tymax=(box.max.y-origin.y)*invdiry}else{tymin=(box.max.y-origin.y)*invdiry;tymax=(box.min.y-origin.y)*invdiry}if(tmin>tymax||tymin>tmax)return null;if(tymin>tmin||isNaN(tmin))tmin=tymin;if(tymax=0){tzmin=(box.min.z-origin.z)*invdirz;tzmax=(box.max.z-origin.z)*invdirz}else{tzmin=(box.max.z-origin.z)*invdirz;tzmax=(box.min.z-origin.z)*invdirz}if(tmin>tzmax||tzmin>tmax)return null;if(tzmin>tmin||tmin!==tmin)tmin=tzmin;if(tzmax=0?tmin:tmax,target)}intersectsBox(box){return this.intersectBox(box,_vector$a)!==null}intersectTriangle(a,b,c,backfaceCulling,target){_edge1.subVectors(b,a);_edge2.subVectors(c,a);_normal$1.crossVectors(_edge1,_edge2);let DdN=this.direction.dot(_normal$1);let sign;if(DdN>0){if(backfaceCulling)return null;sign=1}else if(DdN<0){sign=-1;DdN=-DdN}else{return null}_diff.subVectors(this.origin,a);const DdQxE2=sign*this.direction.dot(_edge2.crossVectors(_diff,_edge2));if(DdQxE2<0){return null}const DdE1xQ=sign*this.direction.dot(_edge1.cross(_diff));if(DdE1xQ<0){return null}if(DdQxE2+DdE1xQ>DdN){return null}const QdN=-sign*_diff.dot(_normal$1);if(QdN<0){return null}return this.at(QdN/DdN,target)}applyMatrix4(matrix4){this.origin.applyMatrix4(matrix4);this.direction.transformDirection(matrix4);return this}equals(ray){return ray.origin.equals(this.origin)&&ray.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class Matrix4{constructor(n11,n12,n13,n14,n21,n22,n23,n24,n31,n32,n33,n34,n41,n42,n43,n44){Matrix4.prototype.isMatrix4=true;this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];if(n11!==undefined){this.set(n11,n12,n13,n14,n21,n22,n23,n24,n31,n32,n33,n34,n41,n42,n43,n44)}}set(n11,n12,n13,n14,n21,n22,n23,n24,n31,n32,n33,n34,n41,n42,n43,n44){const te=this.elements;te[0]=n11;te[4]=n12;te[8]=n13;te[12]=n14;te[1]=n21;te[5]=n22;te[9]=n23;te[13]=n24;te[2]=n31;te[6]=n32;te[10]=n33;te[14]=n34;te[3]=n41;te[7]=n42;te[11]=n43;te[15]=n44;return this}identity(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this}clone(){return new Matrix4().fromArray(this.elements)}copy(m){const te=this.elements;const me=m.elements;te[0]=me[0];te[1]=me[1];te[2]=me[2];te[3]=me[3];te[4]=me[4];te[5]=me[5];te[6]=me[6];te[7]=me[7];te[8]=me[8];te[9]=me[9];te[10]=me[10];te[11]=me[11];te[12]=me[12];te[13]=me[13];te[14]=me[14];te[15]=me[15];return this}copyPosition(m){const te=this.elements,me=m.elements;te[12]=me[12];te[13]=me[13];te[14]=me[14];return this}setFromMatrix3(m){const me=m.elements;this.set(me[0],me[3],me[6],0,me[1],me[4],me[7],0,me[2],me[5],me[8],0,0,0,0,1);return this}extractBasis(xAxis,yAxis,zAxis){if(this.determinant()===0){xAxis.set(1,0,0);yAxis.set(0,1,0);zAxis.set(0,0,1);return this}xAxis.setFromMatrixColumn(this,0);yAxis.setFromMatrixColumn(this,1);zAxis.setFromMatrixColumn(this,2);return this}makeBasis(xAxis,yAxis,zAxis){this.set(xAxis.x,yAxis.x,zAxis.x,0,xAxis.y,yAxis.y,zAxis.y,0,xAxis.z,yAxis.z,zAxis.z,0,0,0,0,1);return this}extractRotation(m){if(m.determinant()===0){return this.identity()}const te=this.elements;const me=m.elements;const scaleX=1/_v1$5.setFromMatrixColumn(m,0).length();const scaleY=1/_v1$5.setFromMatrixColumn(m,1).length();const scaleZ=1/_v1$5.setFromMatrixColumn(m,2).length();te[0]=me[0]*scaleX;te[1]=me[1]*scaleX;te[2]=me[2]*scaleX;te[3]=0;te[4]=me[4]*scaleY;te[5]=me[5]*scaleY;te[6]=me[6]*scaleY;te[7]=0;te[8]=me[8]*scaleZ;te[9]=me[9]*scaleZ;te[10]=me[10]*scaleZ;te[11]=0;te[12]=0;te[13]=0;te[14]=0;te[15]=1;return this}makeRotationFromEuler(euler){const te=this.elements;const x=euler.x,y=euler.y,z=euler.z;const a=Math.cos(x),b=Math.sin(x);const c=Math.cos(y),d=Math.sin(y);const e=Math.cos(z),f=Math.sin(z);if(euler.order==="XYZ"){const ae=a*e,af=a*f,be=b*e,bf=b*f;te[0]=c*e;te[4]=-c*f;te[8]=d;te[1]=af+be*d;te[5]=ae-bf*d;te[9]=-b*c;te[2]=bf-ae*d;te[6]=be+af*d;te[10]=a*c}else if(euler.order==="YXZ"){const ce=c*e,cf=c*f,de=d*e,df=d*f;te[0]=ce+df*b;te[4]=de*b-cf;te[8]=a*d;te[1]=a*f;te[5]=a*e;te[9]=-b;te[2]=cf*b-de;te[6]=df+ce*b;te[10]=a*c}else if(euler.order==="ZXY"){const ce=c*e,cf=c*f,de=d*e,df=d*f;te[0]=ce-df*b;te[4]=-a*f;te[8]=de+cf*b;te[1]=cf+de*b;te[5]=a*e;te[9]=df-ce*b;te[2]=-a*d;te[6]=b;te[10]=a*c}else if(euler.order==="ZYX"){const ae=a*e,af=a*f,be=b*e,bf=b*f;te[0]=c*e;te[4]=be*d-af;te[8]=ae*d+bf;te[1]=c*f;te[5]=bf*d+ae;te[9]=af*d-be;te[2]=-d;te[6]=b*c;te[10]=a*c}else if(euler.order==="YZX"){const ac=a*c,ad=a*d,bc=b*c,bd=b*d;te[0]=c*e;te[4]=bd-ac*f;te[8]=bc*f+ad;te[1]=f;te[5]=a*e;te[9]=-b*e;te[2]=-d*e;te[6]=ad*f+bc;te[10]=ac-bd*f}else if(euler.order==="XZY"){const ac=a*c,ad=a*d,bc=b*c,bd=b*d;te[0]=c*e;te[4]=-f;te[8]=d*e;te[1]=ac*f+bd;te[5]=a*e;te[9]=ad*f-bc;te[2]=bc*f-ad;te[6]=b*e;te[10]=bd*f+ac}te[3]=0;te[7]=0;te[11]=0;te[12]=0;te[13]=0;te[14]=0;te[15]=1;return this}makeRotationFromQuaternion(q){return this.compose(_zero,q,_one)}lookAt(eye,target,up){const te=this.elements;_z.subVectors(eye,target);if(_z.lengthSq()===0){_z.z=1}_z.normalize();_x.crossVectors(up,_z);if(_x.lengthSq()===0){if(Math.abs(up.z)===1){_z.x+=0.0001}else{_z.z+=0.0001}_z.normalize();_x.crossVectors(up,_z)}_x.normalize();_y.crossVectors(_z,_x);te[0]=_x.x;te[4]=_y.x;te[8]=_z.x;te[1]=_x.y;te[5]=_y.y;te[9]=_z.y;te[2]=_x.z;te[6]=_y.z;te[10]=_z.z;return this}multiply(m){return this.multiplyMatrices(this,m)}premultiply(m){return this.multiplyMatrices(m,this)}multiplyMatrices(a,b){const ae=a.elements;const be=b.elements;const te=this.elements;const a11=ae[0],a12=ae[4],a13=ae[8],a14=ae[12];const a21=ae[1],a22=ae[5],a23=ae[9],a24=ae[13];const a31=ae[2],a32=ae[6],a33=ae[10],a34=ae[14];const a41=ae[3],a42=ae[7],a43=ae[11],a44=ae[15];const b11=be[0],b12=be[4],b13=be[8],b14=be[12];const b21=be[1],b22=be[5],b23=be[9],b24=be[13];const b31=be[2],b32=be[6],b33=be[10],b34=be[14];const b41=be[3],b42=be[7],b43=be[11],b44=be[15];te[0]=a11*b11+a12*b21+a13*b31+a14*b41;te[4]=a11*b12+a12*b22+a13*b32+a14*b42;te[8]=a11*b13+a12*b23+a13*b33+a14*b43;te[12]=a11*b14+a12*b24+a13*b34+a14*b44;te[1]=a21*b11+a22*b21+a23*b31+a24*b41;te[5]=a21*b12+a22*b22+a23*b32+a24*b42;te[9]=a21*b13+a22*b23+a23*b33+a24*b43;te[13]=a21*b14+a22*b24+a23*b34+a24*b44;te[2]=a31*b11+a32*b21+a33*b31+a34*b41;te[6]=a31*b12+a32*b22+a33*b32+a34*b42;te[10]=a31*b13+a32*b23+a33*b33+a34*b43;te[14]=a31*b14+a32*b24+a33*b34+a34*b44;te[3]=a41*b11+a42*b21+a43*b31+a44*b41;te[7]=a41*b12+a42*b22+a43*b32+a44*b42;te[11]=a41*b13+a42*b23+a43*b33+a44*b43;te[15]=a41*b14+a42*b24+a43*b34+a44*b44;return this}multiplyScalar(s){const te=this.elements;te[0]*=s;te[4]*=s;te[8]*=s;te[12]*=s;te[1]*=s;te[5]*=s;te[9]*=s;te[13]*=s;te[2]*=s;te[6]*=s;te[10]*=s;te[14]*=s;te[3]*=s;te[7]*=s;te[11]*=s;te[15]*=s;return this}determinant(){const te=this.elements;const n11=te[0],n12=te[4],n13=te[8],n14=te[12];const n21=te[1],n22=te[5],n23=te[9],n24=te[13];const n31=te[2],n32=te[6],n33=te[10],n34=te[14];const n41=te[3],n42=te[7],n43=te[11],n44=te[15];const t11=n23*n34-n24*n33;const t12=n22*n34-n24*n32;const t13=n22*n33-n23*n32;const t21=n21*n34-n24*n31;const t22=n21*n33-n23*n31;const t23=n21*n32-n22*n31;return n11*(n42*t11-n43*t12+n44*t13)-n12*(n41*t11-n43*t21+n44*t22)+n13*(n41*t12-n42*t21+n44*t23)-n14*(n41*t13-n42*t22+n43*t23)}transpose(){const te=this.elements;let tmp;tmp=te[1];te[1]=te[4];te[4]=tmp;tmp=te[2];te[2]=te[8];te[8]=tmp;tmp=te[6];te[6]=te[9];te[9]=tmp;tmp=te[3];te[3]=te[12];te[12]=tmp;tmp=te[7];te[7]=te[13];te[13]=tmp;tmp=te[11];te[11]=te[14];te[14]=tmp;return this}setPosition(x,y,z){const te=this.elements;if(x.isVector3){te[12]=x.x;te[13]=x.y;te[14]=x.z}else{te[12]=x;te[13]=y;te[14]=z}return this}invert(){const te=this.elements,n11=te[0],n21=te[1],n31=te[2],n41=te[3],n12=te[4],n22=te[5],n32=te[6],n42=te[7],n13=te[8],n23=te[9],n33=te[10],n43=te[11],n14=te[12],n24=te[13],n34=te[14],n44=te[15],t11=n23*n34*n42-n24*n33*n42+n24*n32*n43-n22*n34*n43-n23*n32*n44+n22*n33*n44,t12=n14*n33*n42-n13*n34*n42-n14*n32*n43+n12*n34*n43+n13*n32*n44-n12*n33*n44,t13=n13*n24*n42-n14*n23*n42+n14*n22*n43-n12*n24*n43-n13*n22*n44+n12*n23*n44,t14=n14*n23*n32-n13*n24*n32-n14*n22*n33+n12*n24*n33+n13*n22*n34-n12*n23*n34;const det=n11*t11+n21*t12+n31*t13+n41*t14;if(det===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const detInv=1/det;te[0]=t11*detInv;te[1]=(n24*n33*n41-n23*n34*n41-n24*n31*n43+n21*n34*n43+n23*n31*n44-n21*n33*n44)*detInv;te[2]=(n22*n34*n41-n24*n32*n41+n24*n31*n42-n21*n34*n42-n22*n31*n44+n21*n32*n44)*detInv;te[3]=(n23*n32*n41-n22*n33*n41-n23*n31*n42+n21*n33*n42+n22*n31*n43-n21*n32*n43)*detInv;te[4]=t12*detInv;te[5]=(n13*n34*n41-n14*n33*n41+n14*n31*n43-n11*n34*n43-n13*n31*n44+n11*n33*n44)*detInv;te[6]=(n14*n32*n41-n12*n34*n41-n14*n31*n42+n11*n34*n42+n12*n31*n44-n11*n32*n44)*detInv;te[7]=(n12*n33*n41-n13*n32*n41+n13*n31*n42-n11*n33*n42-n12*n31*n43+n11*n32*n43)*detInv;te[8]=t13*detInv;te[9]=(n14*n23*n41-n13*n24*n41-n14*n21*n43+n11*n24*n43+n13*n21*n44-n11*n23*n44)*detInv;te[10]=(n12*n24*n41-n14*n22*n41+n14*n21*n42-n11*n24*n42-n12*n21*n44+n11*n22*n44)*detInv;te[11]=(n13*n22*n41-n12*n23*n41-n13*n21*n42+n11*n23*n42+n12*n21*n43-n11*n22*n43)*detInv;te[12]=t14*detInv;te[13]=(n13*n24*n31-n14*n23*n31+n14*n21*n33-n11*n24*n33-n13*n21*n34+n11*n23*n34)*detInv;te[14]=(n14*n22*n31-n12*n24*n31-n14*n21*n32+n11*n24*n32+n12*n21*n34-n11*n22*n34)*detInv;te[15]=(n12*n23*n31-n13*n22*n31+n13*n21*n32-n11*n23*n32-n12*n21*n33+n11*n22*n33)*detInv;return this}scale(v){const te=this.elements;const x=v.x,y=v.y,z=v.z;te[0]*=x;te[4]*=y;te[8]*=z;te[1]*=x;te[5]*=y;te[9]*=z;te[2]*=x;te[6]*=y;te[10]*=z;te[3]*=x;te[7]*=y;te[11]*=z;return this}getMaxScaleOnAxis(){const te=this.elements;const scaleXSq=te[0]*te[0]+te[1]*te[1]+te[2]*te[2];const scaleYSq=te[4]*te[4]+te[5]*te[5]+te[6]*te[6];const scaleZSq=te[8]*te[8]+te[9]*te[9]+te[10]*te[10];return Math.sqrt(Math.max(scaleXSq,scaleYSq,scaleZSq))}makeTranslation(x,y,z){if(x.isVector3){this.set(1,0,0,x.x,0,1,0,x.y,0,0,1,x.z,0,0,0,1)}else{this.set(1,0,0,x,0,1,0,y,0,0,1,z,0,0,0,1)}return this}makeRotationX(theta){const c=Math.cos(theta),s=Math.sin(theta);this.set(1,0,0,0,0,c,-s,0,0,s,c,0,0,0,0,1);return this}makeRotationY(theta){const c=Math.cos(theta),s=Math.sin(theta);this.set(c,0,s,0,0,1,0,0,-s,0,c,0,0,0,0,1);return this}makeRotationZ(theta){const c=Math.cos(theta),s=Math.sin(theta);this.set(c,-s,0,0,s,c,0,0,0,0,1,0,0,0,0,1);return this}makeRotationAxis(axis,angle){const c=Math.cos(angle);const s=Math.sin(angle);const t=1-c;const x=axis.x,y=axis.y,z=axis.z;const tx=t*x,ty=t*y;this.set(tx*x+c,tx*y-s*z,tx*z+s*y,0,tx*y+s*z,ty*y+c,ty*z-s*x,0,tx*z-s*y,ty*z+s*x,t*z*z+c,0,0,0,0,1);return this}makeScale(x,y,z){this.set(x,0,0,0,0,y,0,0,0,0,z,0,0,0,0,1);return this}makeShear(xy,xz,yx,yz,zx,zy){this.set(1,yx,zx,0,xy,1,zy,0,xz,yz,1,0,0,0,0,1);return this}compose(position,quaternion,scale){const te=this.elements;const x=quaternion._x,y=quaternion._y,z=quaternion._z,w=quaternion._w;const x2=x+x,y2=y+y,z2=z+z;const xx=x*x2,xy=x*y2,xz=x*z2;const yy=y*y2,yz=y*z2,zz=z*z2;const wx=w*x2,wy=w*y2,wz=w*z2;const sx=scale.x,sy=scale.y,sz=scale.z;te[0]=(1-(yy+zz))*sx;te[1]=(xy+wz)*sx;te[2]=(xz-wy)*sx;te[3]=0;te[4]=(xy-wz)*sy;te[5]=(1-(xx+zz))*sy;te[6]=(yz+wx)*sy;te[7]=0;te[8]=(xz+wy)*sz;te[9]=(yz-wx)*sz;te[10]=(1-(xx+yy))*sz;te[11]=0;te[12]=position.x;te[13]=position.y;te[14]=position.z;te[15]=1;return this}decompose(position,quaternion,scale){const te=this.elements;position.x=te[12];position.y=te[13];position.z=te[14];if(this.determinant()===0){scale.set(1,1,1);quaternion.identity();return this}let sx=_v1$5.set(te[0],te[1],te[2]).length();const sy=_v1$5.set(te[4],te[5],te[6]).length();const sz=_v1$5.set(te[8],te[9],te[10]).length();const det=this.determinant();if(det<0)sx=-sx;_m1$4.copy(this);const invSX=1/sx;const invSY=1/sy;const invSZ=1/sz;_m1$4.elements[0]*=invSX;_m1$4.elements[1]*=invSX;_m1$4.elements[2]*=invSX;_m1$4.elements[4]*=invSY;_m1$4.elements[5]*=invSY;_m1$4.elements[6]*=invSY;_m1$4.elements[8]*=invSZ;_m1$4.elements[9]*=invSZ;_m1$4.elements[10]*=invSZ;quaternion.setFromRotationMatrix(_m1$4);scale.x=sx;scale.y=sy;scale.z=sz;return this}makePerspective(left,right,top,bottom,near,far,coordinateSystem=WebGLCoordinateSystem,reversedDepth=false){const te=this.elements;const x=2*near/(right-left);const y=2*near/(top-bottom);const a=(right+left)/(right-left);const b=(top+bottom)/(top-bottom);let c,d;if(reversedDepth){c=near/(far-near);d=far*near/(far-near)}else{if(coordinateSystem===WebGLCoordinateSystem){c=-(far+near)/(far-near);d=-2*far*near/(far-near)}else if(coordinateSystem===WebGPUCoordinateSystem){c=-far/(far-near);d=-far*near/(far-near)}else{throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+coordinateSystem)}}te[0]=x;te[4]=0;te[8]=a;te[12]=0;te[1]=0;te[5]=y;te[9]=b;te[13]=0;te[2]=0;te[6]=0;te[10]=c;te[14]=d;te[3]=0;te[7]=0;te[11]=-1;te[15]=0;return this}makeOrthographic(left,right,top,bottom,near,far,coordinateSystem=WebGLCoordinateSystem,reversedDepth=false){const te=this.elements;const x=2/(right-left);const y=2/(top-bottom);const a=-(right+left)/(right-left);const b=-(top+bottom)/(top-bottom);let c,d;if(reversedDepth){c=1/(far-near);d=far/(far-near)}else{if(coordinateSystem===WebGLCoordinateSystem){c=-2/(far-near);d=-(far+near)/(far-near)}else if(coordinateSystem===WebGPUCoordinateSystem){c=-1/(far-near);d=-near/(far-near)}else{throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+coordinateSystem)}}te[0]=x;te[4]=0;te[8]=0;te[12]=a;te[1]=0;te[5]=y;te[9]=0;te[13]=b;te[2]=0;te[6]=0;te[10]=c;te[14]=d;te[3]=0;te[7]=0;te[11]=0;te[15]=1;return this}equals(matrix){const te=this.elements;const me=matrix.elements;for(let i=0;i<16;i++){if(te[i]!==me[i])return false}return true}fromArray(array,offset=0){for(let i=0;i<16;i++){this.elements[i]=array[i+offset]}return this}toArray(array=[],offset=0){const te=this.elements;array[offset]=te[0];array[offset+1]=te[1];array[offset+2]=te[2];array[offset+3]=te[3];array[offset+4]=te[4];array[offset+5]=te[5];array[offset+6]=te[6];array[offset+7]=te[7];array[offset+8]=te[8];array[offset+9]=te[9];array[offset+10]=te[10];array[offset+11]=te[11];array[offset+12]=te[12];array[offset+13]=te[13];array[offset+14]=te[14];array[offset+15]=te[15];return array}}const _v1$5=new Vector3;const _m1$4=new Matrix4;const _zero=new Vector3(0,0,0);const _one=new Vector3(1,1,1);const _x=new Vector3;const _y=new Vector3;const _z=new Vector3;const _matrix$2=new Matrix4;const _quaternion$3=new Quaternion;class Euler{constructor(x=0,y=0,z=0,order=Euler.DEFAULT_ORDER){this.isEuler=true;this._x=x;this._y=y;this._z=z;this._order=order}get x(){return this._x}set x(value){this._x=value;this._onChangeCallback()}get y(){return this._y}set y(value){this._y=value;this._onChangeCallback()}get z(){return this._z}set z(value){this._z=value;this._onChangeCallback()}get order(){return this._order}set order(value){this._order=value;this._onChangeCallback()}set(x,y,z,order=this._order){this._x=x;this._y=y;this._z=z;this._order=order;this._onChangeCallback();return this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(euler){this._x=euler._x;this._y=euler._y;this._z=euler._z;this._order=euler._order;this._onChangeCallback();return this}setFromRotationMatrix(m,order=this._order,update=true){const te=m.elements;const m11=te[0],m12=te[4],m13=te[8];const m21=te[1],m22=te[5],m23=te[9];const m31=te[2],m32=te[6],m33=te[10];switch(order){case"XYZ":this._y=Math.asin(clamp(m13,-1,1));if(Math.abs(m13)<0.9999999){this._x=Math.atan2(-m23,m33);this._z=Math.atan2(-m12,m11)}else{this._x=Math.atan2(m32,m22);this._z=0}break;case"YXZ":this._x=Math.asin(-clamp(m23,-1,1));if(Math.abs(m23)<0.9999999){this._y=Math.atan2(m13,m33);this._z=Math.atan2(m21,m22)}else{this._y=Math.atan2(-m31,m11);this._z=0}break;case"ZXY":this._x=Math.asin(clamp(m32,-1,1));if(Math.abs(m32)<0.9999999){this._y=Math.atan2(-m31,m33);this._z=Math.atan2(-m12,m22)}else{this._y=0;this._z=Math.atan2(m21,m11)}break;case"ZYX":this._y=Math.asin(-clamp(m31,-1,1));if(Math.abs(m31)<0.9999999){this._x=Math.atan2(m32,m33);this._z=Math.atan2(m21,m11)}else{this._x=0;this._z=Math.atan2(-m12,m22)}break;case"YZX":this._z=Math.asin(clamp(m21,-1,1));if(Math.abs(m21)<0.9999999){this._x=Math.atan2(-m23,m22);this._y=Math.atan2(-m31,m11)}else{this._x=0;this._y=Math.atan2(m13,m33)}break;case"XZY":this._z=Math.asin(-clamp(m12,-1,1));if(Math.abs(m12)<0.9999999){this._x=Math.atan2(m32,m22);this._y=Math.atan2(m13,m11)}else{this._x=Math.atan2(-m23,m33);this._y=0}break;default:warn("Euler: .setFromRotationMatrix() encountered an unknown order: "+order);}this._order=order;if(update===true)this._onChangeCallback();return this}setFromQuaternion(q,order,update){_matrix$2.makeRotationFromQuaternion(q);return this.setFromRotationMatrix(_matrix$2,order,update)}setFromVector3(v,order=this._order){return this.set(v.x,v.y,v.z,order)}reorder(newOrder){_quaternion$3.setFromEuler(this);return this.setFromQuaternion(_quaternion$3,newOrder)}equals(euler){return euler._x===this._x&&euler._y===this._y&&euler._z===this._z&&euler._order===this._order}fromArray(array){this._x=array[0];this._y=array[1];this._z=array[2];if(array[3]!==undefined)this._order=array[3];this._onChangeCallback();return this}toArray(array=[],offset=0){array[offset]=this._x;array[offset+1]=this._y;array[offset+2]=this._z;array[offset+3]=this._order;return array}_onChange(callback){this._onChangeCallback=callback;return this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x;yield this._y;yield this._z;yield this._order}}Euler.DEFAULT_ORDER="XYZ";class Layers{constructor(){this.mask=1|0}set(layer){this.mask=(1<>>0}enable(layer){this.mask|=1<1){for(let i=0;i1){for(let i=0;i0)object.userData=this.userData;object.layers=this.layers.mask;object.matrix=this.matrix.toArray();object.up=this.up.toArray();if(this.matrixAutoUpdate===false)object.matrixAutoUpdate=false;if(this.isInstancedMesh){object.type="InstancedMesh";object.count=this.count;object.instanceMatrix=this.instanceMatrix.toJSON();if(this.instanceColor!==null)object.instanceColor=this.instanceColor.toJSON()}if(this.isBatchedMesh){object.type="BatchedMesh";object.perObjectFrustumCulled=this.perObjectFrustumCulled;object.sortObjects=this.sortObjects;object.drawRanges=this._drawRanges;object.reservedRanges=this._reservedRanges;object.geometryInfo=this._geometryInfo.map(info=>({...info,boundingBox:info.boundingBox?info.boundingBox.toJSON():undefined,boundingSphere:info.boundingSphere?info.boundingSphere.toJSON():undefined}));object.instanceInfo=this._instanceInfo.map(info=>({...info}));object.availableInstanceIds=this._availableInstanceIds.slice();object.availableGeometryIds=this._availableGeometryIds.slice();object.nextIndexStart=this._nextIndexStart;object.nextVertexStart=this._nextVertexStart;object.geometryCount=this._geometryCount;object.maxInstanceCount=this._maxInstanceCount;object.maxVertexCount=this._maxVertexCount;object.maxIndexCount=this._maxIndexCount;object.geometryInitialized=this._geometryInitialized;object.matricesTexture=this._matricesTexture.toJSON(meta);object.indirectTexture=this._indirectTexture.toJSON(meta);if(this._colorsTexture!==null){object.colorsTexture=this._colorsTexture.toJSON(meta)}if(this.boundingSphere!==null){object.boundingSphere=this.boundingSphere.toJSON()}if(this.boundingBox!==null){object.boundingBox=this.boundingBox.toJSON()}}function serialize(library,element){if(library[element.uuid]===undefined){library[element.uuid]=element.toJSON(meta)}return element.uuid}if(this.isScene){if(this.background){if(this.background.isColor){object.background=this.background.toJSON()}else if(this.background.isTexture){object.background=this.background.toJSON(meta).uuid}}if(this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==true){object.environment=this.environment.toJSON(meta).uuid}}else if(this.isMesh||this.isLine||this.isPoints){object.geometry=serialize(meta.geometries,this.geometry);const parameters=this.geometry.parameters;if(parameters!==undefined&¶meters.shapes!==undefined){const shapes=parameters.shapes;if(Array.isArray(shapes)){for(let i=0,l=shapes.length;i0){object.children=[];for(let i=0;i0){object.animations=[];for(let i=0;i0)output.geometries=geometries;if(materials.length>0)output.materials=materials;if(textures.length>0)output.textures=textures;if(images.length>0)output.images=images;if(shapes.length>0)output.shapes=shapes;if(skeletons.length>0)output.skeletons=skeletons;if(animations.length>0)output.animations=animations;if(nodes.length>0)output.nodes=nodes}output.object=object;return output;function extractFromCache(cache){const values=[];for(const key in cache){const data=cache[key];delete data.metadata;values.push(data)}return values}}clone(recursive){return new this.constructor().copy(this,recursive)}copy(source,recursive=true){this.name=source.name;this.up.copy(source.up);this.position.copy(source.position);this.rotation.order=source.rotation.order;this.quaternion.copy(source.quaternion);this.scale.copy(source.scale);this.matrix.copy(source.matrix);this.matrixWorld.copy(source.matrixWorld);this.matrixAutoUpdate=source.matrixAutoUpdate;this.matrixWorldAutoUpdate=source.matrixWorldAutoUpdate;this.matrixWorldNeedsUpdate=source.matrixWorldNeedsUpdate;this.layers.mask=source.layers.mask;this.visible=source.visible;this.castShadow=source.castShadow;this.receiveShadow=source.receiveShadow;this.frustumCulled=source.frustumCulled;this.renderOrder=source.renderOrder;this.animations=source.animations.slice();this.userData=JSON.parse(JSON.stringify(source.userData));if(recursive===true){for(let i=0;i0){return target.multiplyScalar(1/Math.sqrt(targetLengthSq))}return target.set(0,0,0)}static getBarycoord(point,a,b,c,target){_v0$2.subVectors(c,a);_v1$3.subVectors(b,a);_v2$2.subVectors(point,a);const dot00=_v0$2.dot(_v0$2);const dot01=_v0$2.dot(_v1$3);const dot02=_v0$2.dot(_v2$2);const dot11=_v1$3.dot(_v1$3);const dot12=_v1$3.dot(_v2$2);const denom=dot00*dot11-dot01*dot01;if(denom===0){target.set(0,0,0);return null}const invDenom=1/denom;const u=(dot11*dot02-dot01*dot12)*invDenom;const v=(dot00*dot12-dot01*dot02)*invDenom;return target.set(1-u-v,v,u)}static containsPoint(point,a,b,c){if(this.getBarycoord(point,a,b,c,_v3$2)===null){return false}return _v3$2.x>=0&&_v3$2.y>=0&&_v3$2.x+_v3$2.y<=1}static getInterpolation(point,p1,p2,p3,v1,v2,v3,target){if(this.getBarycoord(point,p1,p2,p3,_v3$2)===null){target.x=0;target.y=0;if("z"in target)target.z=0;if("w"in target)target.w=0;return null}target.setScalar(0);target.addScaledVector(v1,_v3$2.x);target.addScaledVector(v2,_v3$2.y);target.addScaledVector(v3,_v3$2.z);return target}static getInterpolatedAttribute(attr,i1,i2,i3,barycoord,target){_v40.setScalar(0);_v41.setScalar(0);_v42.setScalar(0);_v40.fromBufferAttribute(attr,i1);_v41.fromBufferAttribute(attr,i2);_v42.fromBufferAttribute(attr,i3);target.setScalar(0);target.addScaledVector(_v40,barycoord.x);target.addScaledVector(_v41,barycoord.y);target.addScaledVector(_v42,barycoord.z);return target}static isFrontFacing(a,b,c,direction){_v0$2.subVectors(c,b);_v1$3.subVectors(a,b);return _v0$2.cross(_v1$3).dot(direction)<0?true:false}set(a,b,c){this.a.copy(a);this.b.copy(b);this.c.copy(c);return this}setFromPointsAndIndices(points,i0,i1,i2){this.a.copy(points[i0]);this.b.copy(points[i1]);this.c.copy(points[i2]);return this}setFromAttributeAndIndices(attribute,i0,i1,i2){this.a.fromBufferAttribute(attribute,i0);this.b.fromBufferAttribute(attribute,i1);this.c.fromBufferAttribute(attribute,i2);return this}clone(){return new this.constructor().copy(this)}copy(triangle){this.a.copy(triangle.a);this.b.copy(triangle.b);this.c.copy(triangle.c);return this}getArea(){_v0$2.subVectors(this.c,this.b);_v1$3.subVectors(this.a,this.b);return _v0$2.cross(_v1$3).length()*0.5}getMidpoint(target){return target.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(target){return Triangle.getNormal(this.a,this.b,this.c,target)}getPlane(target){return target.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(point,target){return Triangle.getBarycoord(point,this.a,this.b,this.c,target)}getInterpolation(point,v1,v2,v3,target){return Triangle.getInterpolation(point,this.a,this.b,this.c,v1,v2,v3,target)}containsPoint(point){return Triangle.containsPoint(point,this.a,this.b,this.c)}isFrontFacing(direction){return Triangle.isFrontFacing(this.a,this.b,this.c,direction)}intersectsBox(box){return box.intersectsTriangle(this)}closestPointToPoint(p,target){const a=this.a,b=this.b,c=this.c;let v,w;_vab.subVectors(b,a);_vac.subVectors(c,a);_vap.subVectors(p,a);const d1=_vab.dot(_vap);const d2=_vac.dot(_vap);if(d1<=0&&d2<=0){return target.copy(a)}_vbp.subVectors(p,b);const d3=_vab.dot(_vbp);const d4=_vac.dot(_vbp);if(d3>=0&&d4<=d3){return target.copy(b)}const vc=d1*d4-d3*d2;if(vc<=0&&d1>=0&&d3<=0){v=d1/(d1-d3);return target.copy(a).addScaledVector(_vab,v)}_vcp.subVectors(p,c);const d5=_vab.dot(_vcp);const d6=_vac.dot(_vcp);if(d6>=0&&d5<=d6){return target.copy(c)}const vb=d5*d2-d1*d6;if(vb<=0&&d2>=0&&d6<=0){w=d2/(d2-d6);return target.copy(a).addScaledVector(_vac,w)}const va=d3*d6-d5*d4;if(va<=0&&d4-d3>=0&&d5-d6>=0){_vbc.subVectors(c,b);w=(d4-d3)/(d4-d3+(d5-d6));return target.copy(b).addScaledVector(_vbc,w)}const denom=1/(va+vb+vc);v=vb*denom;w=vc*denom;return target.copy(a).addScaledVector(_vab,v).addScaledVector(_vac,w)}equals(triangle){return triangle.a.equals(this.a)&&triangle.b.equals(this.b)&&triangle.c.equals(this.c)}}const _colorKeywords={"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,"silver":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};const _hslA={h:0,s:0,l:0};const _hslB={h:0,s:0,l:0};function hue2rgb(p,q,t){if(t<0)t+=1;if(t>1)t-=1;if(t<1/6)return p+(q-p)*6*t;if(t<1/2)return q;if(t<2/3)return p+(q-p)*6*(2/3-t);return p}class Color{constructor(r,g,b){this.isColor=true;this.r=1;this.g=1;this.b=1;return this.set(r,g,b)}set(r,g,b){if(g===undefined&&b===undefined){const value=r;if(value&&value.isColor){this.copy(value)}else if(typeof value==="number"){this.setHex(value)}else if(typeof value==="string"){this.setStyle(value)}}else{this.setRGB(r,g,b)}return this}setScalar(scalar){this.r=scalar;this.g=scalar;this.b=scalar;return this}setHex(hex,colorSpace=SRGBColorSpace){hex=Math.floor(hex);this.r=(hex>>16&255)/255;this.g=(hex>>8&255)/255;this.b=(hex&255)/255;ColorManagement.colorSpaceToWorking(this,colorSpace);return this}setRGB(r,g,b,colorSpace=ColorManagement.workingColorSpace){this.r=r;this.g=g;this.b=b;ColorManagement.colorSpaceToWorking(this,colorSpace);return this}setHSL(h,s,l,colorSpace=ColorManagement.workingColorSpace){h=euclideanModulo(h,1);s=clamp(s,0,1);l=clamp(l,0,1);if(s===0){this.r=this.g=this.b=l}else{const p=l<=0.5?l*(1+s):l+s-l*s;const q=2*l-p;this.r=hue2rgb(q,p,h+1/3);this.g=hue2rgb(q,p,h);this.b=hue2rgb(q,p,h-1/3)}ColorManagement.colorSpaceToWorking(this,colorSpace);return this}setStyle(style,colorSpace=SRGBColorSpace){function handleAlpha(string){if(string===undefined)return;if(parseFloat(string)<1){warn("Color: Alpha component of "+style+" will be ignored.")}}let m;if(m=/^(\w+)\(([^\)]*)\)/.exec(style)){let color;const name=m[1];const components=m[2];switch(name){case"rgb":case"rgba":if(color=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(components)){handleAlpha(color[4]);return this.setRGB(Math.min(255,parseInt(color[1],10))/255,Math.min(255,parseInt(color[2],10))/255,Math.min(255,parseInt(color[3],10))/255,colorSpace)}if(color=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(components)){handleAlpha(color[4]);return this.setRGB(Math.min(100,parseInt(color[1],10))/100,Math.min(100,parseInt(color[2],10))/100,Math.min(100,parseInt(color[3],10))/100,colorSpace)}break;case"hsl":case"hsla":if(color=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(components)){handleAlpha(color[4]);return this.setHSL(parseFloat(color[1])/360,parseFloat(color[2])/100,parseFloat(color[3])/100,colorSpace)}break;default:warn("Color: Unknown color model "+style);}}else if(m=/^\#([A-Fa-f\d]+)$/.exec(style)){const hex=m[1];const size=hex.length;if(size===3){return this.setRGB(parseInt(hex.charAt(0),16)/15,parseInt(hex.charAt(1),16)/15,parseInt(hex.charAt(2),16)/15,colorSpace)}else if(size===6){return this.setHex(parseInt(hex,16),colorSpace)}else{warn("Color: Invalid hex color "+style)}}else if(style&&style.length>0){return this.setColorName(style,colorSpace)}return this}setColorName(style,colorSpace=SRGBColorSpace){const hex=_colorKeywords[style.toLowerCase()];if(hex!==undefined){this.setHex(hex,colorSpace)}else{warn("Color: Unknown color "+style)}return this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(color){this.r=color.r;this.g=color.g;this.b=color.b;return this}copySRGBToLinear(color){this.r=SRGBToLinear(color.r);this.g=SRGBToLinear(color.g);this.b=SRGBToLinear(color.b);return this}copyLinearToSRGB(color){this.r=LinearToSRGB(color.r);this.g=LinearToSRGB(color.g);this.b=LinearToSRGB(color.b);return this}convertSRGBToLinear(){this.copySRGBToLinear(this);return this}convertLinearToSRGB(){this.copyLinearToSRGB(this);return this}getHex(colorSpace=SRGBColorSpace){ColorManagement.workingToColorSpace(_color.copy(this),colorSpace);return Math.round(clamp(_color.r*255,0,255))*65536+Math.round(clamp(_color.g*255,0,255))*256+Math.round(clamp(_color.b*255,0,255))}getHexString(colorSpace=SRGBColorSpace){return("000000"+this.getHex(colorSpace).toString(16)).slice(-6)}getHSL(target,colorSpace=ColorManagement.workingColorSpace){ColorManagement.workingToColorSpace(_color.copy(this),colorSpace);const r=_color.r,g=_color.g,b=_color.b;const max=Math.max(r,g,b);const min=Math.min(r,g,b);let hue,saturation;const lightness=(min+max)/2;if(min===max){hue=0;saturation=0}else{const delta=max-min;saturation=lightness<=0.5?delta/(max+min):delta/(2-max-min);switch(max){case r:hue=(g-b)/delta+(g0!==value>0){this.version++}this._alphaTest=value}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(values){if(values===undefined)return;for(const key in values){const newValue=values[key];if(newValue===undefined){warn(`Material: parameter '${key}' has value of undefined.`);continue}const currentValue=this[key];if(currentValue===undefined){warn(`Material: '${key}' is not a property of THREE.${this.type}.`);continue}if(currentValue&¤tValue.isColor){currentValue.set(newValue)}else if(currentValue&¤tValue.isVector3&&newValue&&newValue.isVector3){currentValue.copy(newValue)}else{this[key]=newValue}}}toJSON(meta){const isRootObject=meta===undefined||typeof meta==="string";if(isRootObject){meta={textures:{},images:{}}}const data={metadata:{version:4.7,type:"Material",generator:"Material.toJSON"}};data.uuid=this.uuid;data.type=this.type;if(this.name!=="")data.name=this.name;if(this.color&&this.color.isColor)data.color=this.color.getHex();if(this.roughness!==undefined)data.roughness=this.roughness;if(this.metalness!==undefined)data.metalness=this.metalness;if(this.sheen!==undefined)data.sheen=this.sheen;if(this.sheenColor&&this.sheenColor.isColor)data.sheenColor=this.sheenColor.getHex();if(this.sheenRoughness!==undefined)data.sheenRoughness=this.sheenRoughness;if(this.emissive&&this.emissive.isColor)data.emissive=this.emissive.getHex();if(this.emissiveIntensity!==undefined&&this.emissiveIntensity!==1)data.emissiveIntensity=this.emissiveIntensity;if(this.specular&&this.specular.isColor)data.specular=this.specular.getHex();if(this.specularIntensity!==undefined)data.specularIntensity=this.specularIntensity;if(this.specularColor&&this.specularColor.isColor)data.specularColor=this.specularColor.getHex();if(this.shininess!==undefined)data.shininess=this.shininess;if(this.clearcoat!==undefined)data.clearcoat=this.clearcoat;if(this.clearcoatRoughness!==undefined)data.clearcoatRoughness=this.clearcoatRoughness;if(this.clearcoatMap&&this.clearcoatMap.isTexture){data.clearcoatMap=this.clearcoatMap.toJSON(meta).uuid}if(this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture){data.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(meta).uuid}if(this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture){data.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(meta).uuid;data.clearcoatNormalScale=this.clearcoatNormalScale.toArray()}if(this.sheenColorMap&&this.sheenColorMap.isTexture){data.sheenColorMap=this.sheenColorMap.toJSON(meta).uuid}if(this.sheenRoughnessMap&&this.sheenRoughnessMap.isTexture){data.sheenRoughnessMap=this.sheenRoughnessMap.toJSON(meta).uuid}if(this.dispersion!==undefined)data.dispersion=this.dispersion;if(this.iridescence!==undefined)data.iridescence=this.iridescence;if(this.iridescenceIOR!==undefined)data.iridescenceIOR=this.iridescenceIOR;if(this.iridescenceThicknessRange!==undefined)data.iridescenceThicknessRange=this.iridescenceThicknessRange;if(this.iridescenceMap&&this.iridescenceMap.isTexture){data.iridescenceMap=this.iridescenceMap.toJSON(meta).uuid}if(this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture){data.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(meta).uuid}if(this.anisotropy!==undefined)data.anisotropy=this.anisotropy;if(this.anisotropyRotation!==undefined)data.anisotropyRotation=this.anisotropyRotation;if(this.anisotropyMap&&this.anisotropyMap.isTexture){data.anisotropyMap=this.anisotropyMap.toJSON(meta).uuid}if(this.map&&this.map.isTexture)data.map=this.map.toJSON(meta).uuid;if(this.matcap&&this.matcap.isTexture)data.matcap=this.matcap.toJSON(meta).uuid;if(this.alphaMap&&this.alphaMap.isTexture)data.alphaMap=this.alphaMap.toJSON(meta).uuid;if(this.lightMap&&this.lightMap.isTexture){data.lightMap=this.lightMap.toJSON(meta).uuid;data.lightMapIntensity=this.lightMapIntensity}if(this.aoMap&&this.aoMap.isTexture){data.aoMap=this.aoMap.toJSON(meta).uuid;data.aoMapIntensity=this.aoMapIntensity}if(this.bumpMap&&this.bumpMap.isTexture){data.bumpMap=this.bumpMap.toJSON(meta).uuid;data.bumpScale=this.bumpScale}if(this.normalMap&&this.normalMap.isTexture){data.normalMap=this.normalMap.toJSON(meta).uuid;data.normalMapType=this.normalMapType;data.normalScale=this.normalScale.toArray()}if(this.displacementMap&&this.displacementMap.isTexture){data.displacementMap=this.displacementMap.toJSON(meta).uuid;data.displacementScale=this.displacementScale;data.displacementBias=this.displacementBias}if(this.roughnessMap&&this.roughnessMap.isTexture)data.roughnessMap=this.roughnessMap.toJSON(meta).uuid;if(this.metalnessMap&&this.metalnessMap.isTexture)data.metalnessMap=this.metalnessMap.toJSON(meta).uuid;if(this.emissiveMap&&this.emissiveMap.isTexture)data.emissiveMap=this.emissiveMap.toJSON(meta).uuid;if(this.specularMap&&this.specularMap.isTexture)data.specularMap=this.specularMap.toJSON(meta).uuid;if(this.specularIntensityMap&&this.specularIntensityMap.isTexture)data.specularIntensityMap=this.specularIntensityMap.toJSON(meta).uuid;if(this.specularColorMap&&this.specularColorMap.isTexture)data.specularColorMap=this.specularColorMap.toJSON(meta).uuid;if(this.envMap&&this.envMap.isTexture){data.envMap=this.envMap.toJSON(meta).uuid;if(this.combine!==undefined)data.combine=this.combine}if(this.envMapRotation!==undefined)data.envMapRotation=this.envMapRotation.toArray();if(this.envMapIntensity!==undefined)data.envMapIntensity=this.envMapIntensity;if(this.reflectivity!==undefined)data.reflectivity=this.reflectivity;if(this.refractionRatio!==undefined)data.refractionRatio=this.refractionRatio;if(this.gradientMap&&this.gradientMap.isTexture){data.gradientMap=this.gradientMap.toJSON(meta).uuid}if(this.transmission!==undefined)data.transmission=this.transmission;if(this.transmissionMap&&this.transmissionMap.isTexture)data.transmissionMap=this.transmissionMap.toJSON(meta).uuid;if(this.thickness!==undefined)data.thickness=this.thickness;if(this.thicknessMap&&this.thicknessMap.isTexture)data.thicknessMap=this.thicknessMap.toJSON(meta).uuid;if(this.attenuationDistance!==undefined&&this.attenuationDistance!==Infinity)data.attenuationDistance=this.attenuationDistance;if(this.attenuationColor!==undefined)data.attenuationColor=this.attenuationColor.getHex();if(this.size!==undefined)data.size=this.size;if(this.shadowSide!==null)data.shadowSide=this.shadowSide;if(this.sizeAttenuation!==undefined)data.sizeAttenuation=this.sizeAttenuation;if(this.blending!==NormalBlending)data.blending=this.blending;if(this.side!==FrontSide)data.side=this.side;if(this.vertexColors===true)data.vertexColors=true;if(this.opacity<1)data.opacity=this.opacity;if(this.transparent===true)data.transparent=true;if(this.blendSrc!==SrcAlphaFactor)data.blendSrc=this.blendSrc;if(this.blendDst!==OneMinusSrcAlphaFactor)data.blendDst=this.blendDst;if(this.blendEquation!==AddEquation)data.blendEquation=this.blendEquation;if(this.blendSrcAlpha!==null)data.blendSrcAlpha=this.blendSrcAlpha;if(this.blendDstAlpha!==null)data.blendDstAlpha=this.blendDstAlpha;if(this.blendEquationAlpha!==null)data.blendEquationAlpha=this.blendEquationAlpha;if(this.blendColor&&this.blendColor.isColor)data.blendColor=this.blendColor.getHex();if(this.blendAlpha!==0)data.blendAlpha=this.blendAlpha;if(this.depthFunc!==LessEqualDepth)data.depthFunc=this.depthFunc;if(this.depthTest===false)data.depthTest=this.depthTest;if(this.depthWrite===false)data.depthWrite=this.depthWrite;if(this.colorWrite===false)data.colorWrite=this.colorWrite;if(this.stencilWriteMask!==255)data.stencilWriteMask=this.stencilWriteMask;if(this.stencilFunc!==AlwaysStencilFunc)data.stencilFunc=this.stencilFunc;if(this.stencilRef!==0)data.stencilRef=this.stencilRef;if(this.stencilFuncMask!==255)data.stencilFuncMask=this.stencilFuncMask;if(this.stencilFail!==KeepStencilOp)data.stencilFail=this.stencilFail;if(this.stencilZFail!==KeepStencilOp)data.stencilZFail=this.stencilZFail;if(this.stencilZPass!==KeepStencilOp)data.stencilZPass=this.stencilZPass;if(this.stencilWrite===true)data.stencilWrite=this.stencilWrite;if(this.rotation!==undefined&&this.rotation!==0)data.rotation=this.rotation;if(this.polygonOffset===true)data.polygonOffset=true;if(this.polygonOffsetFactor!==0)data.polygonOffsetFactor=this.polygonOffsetFactor;if(this.polygonOffsetUnits!==0)data.polygonOffsetUnits=this.polygonOffsetUnits;if(this.linewidth!==undefined&&this.linewidth!==1)data.linewidth=this.linewidth;if(this.dashSize!==undefined)data.dashSize=this.dashSize;if(this.gapSize!==undefined)data.gapSize=this.gapSize;if(this.scale!==undefined)data.scale=this.scale;if(this.dithering===true)data.dithering=true;if(this.alphaTest>0)data.alphaTest=this.alphaTest;if(this.alphaHash===true)data.alphaHash=true;if(this.alphaToCoverage===true)data.alphaToCoverage=true;if(this.premultipliedAlpha===true)data.premultipliedAlpha=true;if(this.forceSinglePass===true)data.forceSinglePass=true;if(this.allowOverride===false)data.allowOverride=false;if(this.wireframe===true)data.wireframe=true;if(this.wireframeLinewidth>1)data.wireframeLinewidth=this.wireframeLinewidth;if(this.wireframeLinecap!=="round")data.wireframeLinecap=this.wireframeLinecap;if(this.wireframeLinejoin!=="round")data.wireframeLinejoin=this.wireframeLinejoin;if(this.flatShading===true)data.flatShading=true;if(this.visible===false)data.visible=false;if(this.toneMapped===false)data.toneMapped=false;if(this.fog===false)data.fog=false;if(Object.keys(this.userData).length>0)data.userData=this.userData;function extractFromCache(cache){const values=[];for(const key in cache){const data=cache[key];delete data.metadata;values.push(data)}return values}if(isRootObject){const textures=extractFromCache(meta.textures);const images=extractFromCache(meta.images);if(textures.length>0)data.textures=textures;if(images.length>0)data.images=images}return data}clone(){return new this.constructor().copy(this)}copy(source){this.name=source.name;this.blending=source.blending;this.side=source.side;this.vertexColors=source.vertexColors;this.opacity=source.opacity;this.transparent=source.transparent;this.blendSrc=source.blendSrc;this.blendDst=source.blendDst;this.blendEquation=source.blendEquation;this.blendSrcAlpha=source.blendSrcAlpha;this.blendDstAlpha=source.blendDstAlpha;this.blendEquationAlpha=source.blendEquationAlpha;this.blendColor.copy(source.blendColor);this.blendAlpha=source.blendAlpha;this.depthFunc=source.depthFunc;this.depthTest=source.depthTest;this.depthWrite=source.depthWrite;this.stencilWriteMask=source.stencilWriteMask;this.stencilFunc=source.stencilFunc;this.stencilRef=source.stencilRef;this.stencilFuncMask=source.stencilFuncMask;this.stencilFail=source.stencilFail;this.stencilZFail=source.stencilZFail;this.stencilZPass=source.stencilZPass;this.stencilWrite=source.stencilWrite;const srcPlanes=source.clippingPlanes;let dstPlanes=null;if(srcPlanes!==null){const n=srcPlanes.length;dstPlanes=new Array(n);for(let i=0;i!==n;++i){dstPlanes[i]=srcPlanes[i].clone()}}this.clippingPlanes=dstPlanes;this.clipIntersection=source.clipIntersection;this.clipShadows=source.clipShadows;this.shadowSide=source.shadowSide;this.colorWrite=source.colorWrite;this.precision=source.precision;this.polygonOffset=source.polygonOffset;this.polygonOffsetFactor=source.polygonOffsetFactor;this.polygonOffsetUnits=source.polygonOffsetUnits;this.dithering=source.dithering;this.alphaTest=source.alphaTest;this.alphaHash=source.alphaHash;this.alphaToCoverage=source.alphaToCoverage;this.premultipliedAlpha=source.premultipliedAlpha;this.forceSinglePass=source.forceSinglePass;this.allowOverride=source.allowOverride;this.visible=source.visible;this.toneMapped=source.toneMapped;this.userData=JSON.parse(JSON.stringify(source.userData));return this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(value){if(value===true)this.version++}}class MeshBasicMaterial extends Material{constructor(parameters){super();this.isMeshBasicMaterial=true;this.type="MeshBasicMaterial";this.color=new Color(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.envMapRotation=new Euler;this.combine=MultiplyOperation;this.reflectivity=1;this.refractionRatio=0.98;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap="round";this.wireframeLinejoin="round";this.fog=true;this.setValues(parameters)}copy(source){super.copy(source);this.color.copy(source.color);this.map=source.map;this.lightMap=source.lightMap;this.lightMapIntensity=source.lightMapIntensity;this.aoMap=source.aoMap;this.aoMapIntensity=source.aoMapIntensity;this.specularMap=source.specularMap;this.alphaMap=source.alphaMap;this.envMap=source.envMap;this.envMapRotation.copy(source.envMapRotation);this.combine=source.combine;this.reflectivity=source.reflectivity;this.refractionRatio=source.refractionRatio;this.wireframe=source.wireframe;this.wireframeLinewidth=source.wireframeLinewidth;this.wireframeLinecap=source.wireframeLinecap;this.wireframeLinejoin=source.wireframeLinejoin;this.fog=source.fog;return this}}const _tables=_generateTables();function _generateTables(){const buffer=new ArrayBuffer(4);const floatView=new Float32Array(buffer);const uint32View=new Uint32Array(buffer);const baseTable=new Uint32Array(512);const shiftTable=new Uint32Array(512);for(let i=0;i<256;++i){const e=i-127;if(e<-27){baseTable[i]=0;baseTable[i|256]=32768;shiftTable[i]=24;shiftTable[i|256]=24}else if(e<-14){baseTable[i]=1024>>-e-14;baseTable[i|256]=1024>>-e-14|32768;shiftTable[i]=-e-1;shiftTable[i|256]=-e-1}else if(e<=15){baseTable[i]=e+15<<10;baseTable[i|256]=e+15<<10|32768;shiftTable[i]=13;shiftTable[i|256]=13}else if(e<128){baseTable[i]=31744;baseTable[i|256]=64512;shiftTable[i]=24;shiftTable[i|256]=24}else{baseTable[i]=31744;baseTable[i|256]=64512;shiftTable[i]=13;shiftTable[i|256]=13}}const mantissaTable=new Uint32Array(2048);const exponentTable=new Uint32Array(64);const offsetTable=new Uint32Array(64);for(let i=1;i<1024;++i){let m=i<<13;let e=0;while((m&8388608)===0){m<<=1;e-=8388608}m&=-8388609;e+=947912704;mantissaTable[i]=m|e}for(let i=1024;i<2048;++i){mantissaTable[i]=939524096+(i-1024<<13)}for(let i=1;i<31;++i){exponentTable[i]=i<<23}exponentTable[31]=1199570944;exponentTable[32]=2147483648;for(let i=33;i<63;++i){exponentTable[i]=2147483648+(i-32<<23)}exponentTable[63]=3347054592;for(let i=1;i<64;++i){if(i!==32){offsetTable[i]=1024}}return{floatView:floatView,uint32View:uint32View,baseTable:baseTable,shiftTable:shiftTable,mantissaTable:mantissaTable,exponentTable:exponentTable,offsetTable:offsetTable}}function toHalfFloat(val){if(Math.abs(val)>65504)warn("DataUtils.toHalfFloat(): Value out of range.");val=clamp(val,-65504,65504);_tables.floatView[0]=val;const f=_tables.uint32View[0];const e=f>>23&511;return _tables.baseTable[e]+((f&8388607)>>_tables.shiftTable[e])}function fromHalfFloat(val){const m=val>>10;_tables.uint32View[0]=_tables.mantissaTable[_tables.offsetTable[m]+(val&1023)]+_tables.exponentTable[m];return _tables.floatView[0]}class DataUtils{static toHalfFloat(val){return toHalfFloat(val)}static fromHalfFloat(val){return fromHalfFloat(val)}}const _vector$9=new Vector3;const _vector2$1=new Vector2;let _id$3=0;class BufferAttribute{constructor(array,itemSize,normalized=false){if(Array.isArray(array)){throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.")}this.isBufferAttribute=true;Object.defineProperty(this,"id",{value:_id$3++});this.name="";this.array=array;this.itemSize=itemSize;this.count=array!==undefined?array.length/itemSize:0;this.normalized=normalized;this.usage=StaticDrawUsage;this.updateRanges=[];this.gpuType=FloatType;this.version=0}onUploadCallback(){}set needsUpdate(value){if(value===true)this.version++}setUsage(value){this.usage=value;return this}addUpdateRange(start,count){this.updateRanges.push({start,count})}clearUpdateRanges(){this.updateRanges.length=0}copy(source){this.name=source.name;this.array=new source.array.constructor(source.array);this.itemSize=source.itemSize;this.count=source.count;this.normalized=source.normalized;this.usage=source.usage;this.gpuType=source.gpuType;return this}copyAt(index1,attribute,index2){index1*=this.itemSize;index2*=attribute.itemSize;for(let i=0,l=this.itemSize;ipositionAttribute.count){warn("BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry.")}positionAttribute.needsUpdate=true}return this}computeBoundingBox(){if(this.boundingBox===null){this.boundingBox=new Box3}const position=this.attributes.position;const morphAttributesPosition=this.morphAttributes.position;if(position&&position.isGLBufferAttribute){error("BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this);this.boundingBox.set(new Vector3(-Infinity,-Infinity,-Infinity),new Vector3(+Infinity,+Infinity,+Infinity));return}if(position!==undefined){this.boundingBox.setFromBufferAttribute(position);if(morphAttributesPosition){for(let i=0,il=morphAttributesPosition.length;i0)data.userData=this.userData;if(this.parameters!==undefined){const parameters=this.parameters;for(const key in parameters){if(parameters[key]!==undefined)data[key]=parameters[key]}return data}data.data={attributes:{}};const index=this.index;if(index!==null){data.data.index={type:index.array.constructor.name,array:Array.prototype.slice.call(index.array)}}const attributes=this.attributes;for(const key in attributes){const attribute=attributes[key];data.data.attributes[key]=attribute.toJSON(data.data)}const morphAttributes={};let hasMorphAttributes=false;for(const key in this.morphAttributes){const attributeArray=this.morphAttributes[key];const array=[];for(let i=0,il=attributeArray.length;i0){morphAttributes[key]=array;hasMorphAttributes=true}}if(hasMorphAttributes){data.data.morphAttributes=morphAttributes;data.data.morphTargetsRelative=this.morphTargetsRelative}const groups=this.groups;if(groups.length>0){data.data.groups=JSON.parse(JSON.stringify(groups))}const boundingSphere=this.boundingSphere;if(boundingSphere!==null){data.data.boundingSphere=boundingSphere.toJSON()}return data}clone(){return new this.constructor().copy(this)}copy(source){this.index=null;this.attributes={};this.morphAttributes={};this.groups=[];this.boundingBox=null;this.boundingSphere=null;const data={};this.name=source.name;const index=source.index;if(index!==null){this.setIndex(index.clone())}const attributes=source.attributes;for(const name in attributes){const attribute=attributes[name];this.setAttribute(name,attribute.clone(data))}const morphAttributes=source.morphAttributes;for(const name in morphAttributes){const array=[];const morphAttribute=morphAttributes[name];for(let i=0,l=morphAttribute.length;i0){const morphAttribute=morphAttributes[keys[0]];if(morphAttribute!==undefined){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(let m=0,ml=morphAttribute.length;m(raycaster.far-raycaster.near)**2)return}_inverseMatrix$3.copy(matrixWorld).invert();_ray$3.copy(raycaster.ray).applyMatrix4(_inverseMatrix$3);if(geometry.boundingBox!==null){if(_ray$3.intersectsBox(geometry.boundingBox)===false)return}this._computeIntersections(raycaster,intersects,_ray$3)}_computeIntersections(raycaster,intersects,rayLocalSpace){let intersection;const geometry=this.geometry;const material=this.material;const index=geometry.index;const position=geometry.attributes.position;const uv=geometry.attributes.uv;const uv1=geometry.attributes.uv1;const normal=geometry.attributes.normal;const groups=geometry.groups;const drawRange=geometry.drawRange;if(index!==null){if(Array.isArray(material)){for(let i=0,il=groups.length;iraycaster.far)return null;return{distance:distance,point:_intersectionPointWorld.clone(),object:object}}function checkGeometryIntersection(object,material,raycaster,ray,uv,uv1,normal,a,b,c){object.getVertexPosition(a,_vA$1);object.getVertexPosition(b,_vB$1);object.getVertexPosition(c,_vC$1);const intersection=checkIntersection$1(object,material,raycaster,ray,_vA$1,_vB$1,_vC$1,_intersectionPoint);if(intersection){const barycoord=new Vector3;Triangle.getBarycoord(_intersectionPoint,_vA$1,_vB$1,_vC$1,barycoord);if(uv){intersection.uv=Triangle.getInterpolatedAttribute(uv,a,b,c,barycoord,new Vector2)}if(uv1){intersection.uv1=Triangle.getInterpolatedAttribute(uv1,a,b,c,barycoord,new Vector2)}if(normal){intersection.normal=Triangle.getInterpolatedAttribute(normal,a,b,c,barycoord,new Vector3);if(intersection.normal.dot(ray.direction)>0){intersection.normal.multiplyScalar(-1)}}const face={a:a,b:b,c:c,normal:new Vector3,materialIndex:0};Triangle.getNormal(_vA$1,_vB$1,_vC$1,face.normal);intersection.face=face;intersection.barycoord=barycoord}return intersection}class BoxGeometry extends BufferGeometry{constructor(width=1,height=1,depth=1,widthSegments=1,heightSegments=1,depthSegments=1){super();this.type="BoxGeometry";this.parameters={width:width,height:height,depth:depth,widthSegments:widthSegments,heightSegments:heightSegments,depthSegments:depthSegments};const scope=this;widthSegments=Math.floor(widthSegments);heightSegments=Math.floor(heightSegments);depthSegments=Math.floor(depthSegments);const indices=[];const vertices=[];const normals=[];const uvs=[];let numberOfVertices=0;let groupStart=0;buildPlane("z","y","x",-1,-1,depth,height,width,depthSegments,heightSegments,0);buildPlane("z","y","x",1,-1,depth,height,-width,depthSegments,heightSegments,1);buildPlane("x","z","y",1,1,width,depth,height,widthSegments,depthSegments,2);buildPlane("x","z","y",1,-1,width,depth,-height,widthSegments,depthSegments,3);buildPlane("x","y","z",1,-1,width,height,depth,widthSegments,heightSegments,4);buildPlane("x","y","z",-1,-1,width,height,-depth,widthSegments,heightSegments,5);this.setIndex(indices);this.setAttribute("position",new Float32BufferAttribute(vertices,3));this.setAttribute("normal",new Float32BufferAttribute(normals,3));this.setAttribute("uv",new Float32BufferAttribute(uvs,2));function buildPlane(u,v,w,udir,vdir,width,height,depth,gridX,gridY,materialIndex){const segmentWidth=width/gridX;const segmentHeight=height/gridY;const widthHalf=width/2;const heightHalf=height/2;const depthHalf=depth/2;const gridX1=gridX+1;const gridY1=gridY+1;let vertexCounter=0;let groupCount=0;const vector=new Vector3;for(let iy=0;iy0?1:-1;normals.push(vector.x,vector.y,vector.z);uvs.push(ix/gridX);uvs.push(1-iy/gridY);vertexCounter+=1}}for(let iy=0;iy0)data.defines=this.defines;data.vertexShader=this.vertexShader;data.fragmentShader=this.fragmentShader;data.lights=this.lights;data.clipping=this.clipping;const extensions={};for(const key in this.extensions){if(this.extensions[key]===true)extensions[key]=true}if(Object.keys(extensions).length>0)data.extensions=extensions;return data}}class Camera extends Object3D{constructor(){super();this.isCamera=true;this.type="Camera";this.matrixWorldInverse=new Matrix4;this.projectionMatrix=new Matrix4;this.projectionMatrixInverse=new Matrix4;this.coordinateSystem=WebGLCoordinateSystem;this._reversedDepth=false}get reversedDepth(){return this._reversedDepth}copy(source,recursive){super.copy(source,recursive);this.matrixWorldInverse.copy(source.matrixWorldInverse);this.projectionMatrix.copy(source.projectionMatrix);this.projectionMatrixInverse.copy(source.projectionMatrixInverse);this.coordinateSystem=source.coordinateSystem;return this}getWorldDirection(target){return super.getWorldDirection(target).negate()}updateMatrixWorld(force){super.updateMatrixWorld(force);this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(updateParents,updateChildren){super.updateWorldMatrix(updateParents,updateChildren);this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const _v3$1=new Vector3;const _minTarget=new Vector2;const _maxTarget=new Vector2;class PerspectiveCamera extends Camera{constructor(fov=50,aspect=1,near=0.1,far=2000){super();this.isPerspectiveCamera=true;this.type="PerspectiveCamera";this.fov=fov;this.zoom=1;this.near=near;this.far=far;this.focus=10;this.aspect=aspect;this.view=null;this.filmGauge=35;this.filmOffset=0;this.updateProjectionMatrix()}copy(source,recursive){super.copy(source,recursive);this.fov=source.fov;this.zoom=source.zoom;this.near=source.near;this.far=source.far;this.focus=source.focus;this.aspect=source.aspect;this.view=source.view===null?null:Object.assign({},source.view);this.filmGauge=source.filmGauge;this.filmOffset=source.filmOffset;return this}setFocalLength(focalLength){const vExtentSlope=0.5*this.getFilmHeight()/focalLength;this.fov=RAD2DEG*2*Math.atan(vExtentSlope);this.updateProjectionMatrix()}getFocalLength(){const vExtentSlope=Math.tan(DEG2RAD*0.5*this.fov);return 0.5*this.getFilmHeight()/vExtentSlope}getEffectiveFOV(){return RAD2DEG*2*Math.atan(Math.tan(DEG2RAD*0.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(distance,minTarget,maxTarget){_v3$1.set(-1,-1,0.5).applyMatrix4(this.projectionMatrixInverse);minTarget.set(_v3$1.x,_v3$1.y).multiplyScalar(-distance/_v3$1.z);_v3$1.set(1,1,0.5).applyMatrix4(this.projectionMatrixInverse);maxTarget.set(_v3$1.x,_v3$1.y).multiplyScalar(-distance/_v3$1.z)}getViewSize(distance,target){this.getViewBounds(distance,_minTarget,_maxTarget);return target.subVectors(_maxTarget,_minTarget)}setViewOffset(fullWidth,fullHeight,x,y,width,height){this.aspect=fullWidth/fullHeight;if(this.view===null){this.view={enabled:true,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}}this.view.enabled=true;this.view.fullWidth=fullWidth;this.view.fullHeight=fullHeight;this.view.offsetX=x;this.view.offsetY=y;this.view.width=width;this.view.height=height;this.updateProjectionMatrix()}clearViewOffset(){if(this.view!==null){this.view.enabled=false}this.updateProjectionMatrix()}updateProjectionMatrix(){const near=this.near;let top=near*Math.tan(DEG2RAD*0.5*this.fov)/this.zoom;let height=2*top;let width=this.aspect*height;let left=-0.5*width;const view=this.view;if(this.view!==null&&this.view.enabled){const fullWidth=view.fullWidth,fullHeight=view.fullHeight;left+=view.offsetX*width/fullWidth;top-=view.offsetY*height/fullHeight;width*=view.width/fullWidth;height*=view.height/fullHeight}const skew=this.filmOffset;if(skew!==0)left+=near*skew/this.getFilmWidth();this.projectionMatrix.makePerspective(left,left+width,top,top-height,near,this.far,this.coordinateSystem,this.reversedDepth);this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(meta){const data=super.toJSON(meta);data.object.fov=this.fov;data.object.zoom=this.zoom;data.object.near=this.near;data.object.far=this.far;data.object.focus=this.focus;data.object.aspect=this.aspect;if(this.view!==null)data.object.view=Object.assign({},this.view);data.object.filmGauge=this.filmGauge;data.object.filmOffset=this.filmOffset;return data}}const fov=-90;const aspect=1;class CubeCamera extends Object3D{constructor(near,far,renderTarget){super();this.type="CubeCamera";this.renderTarget=renderTarget;this.coordinateSystem=null;this.activeMipmapLevel=0;const cameraPX=new PerspectiveCamera(fov,aspect,near,far);cameraPX.layers=this.layers;this.add(cameraPX);const cameraNX=new PerspectiveCamera(fov,aspect,near,far);cameraNX.layers=this.layers;this.add(cameraNX);const cameraPY=new PerspectiveCamera(fov,aspect,near,far);cameraPY.layers=this.layers;this.add(cameraPY);const cameraNY=new PerspectiveCamera(fov,aspect,near,far);cameraNY.layers=this.layers;this.add(cameraNY);const cameraPZ=new PerspectiveCamera(fov,aspect,near,far);cameraPZ.layers=this.layers;this.add(cameraPZ);const cameraNZ=new PerspectiveCamera(fov,aspect,near,far);cameraNZ.layers=this.layers;this.add(cameraNZ)}updateCoordinateSystem(){const coordinateSystem=this.coordinateSystem;const cameras=this.children.concat();const[cameraPX,cameraNX,cameraPY,cameraNY,cameraPZ,cameraNZ]=cameras;for(const camera of cameras)this.remove(camera);if(coordinateSystem===WebGLCoordinateSystem){cameraPX.up.set(0,1,0);cameraPX.lookAt(1,0,0);cameraNX.up.set(0,1,0);cameraNX.lookAt(-1,0,0);cameraPY.up.set(0,0,-1);cameraPY.lookAt(0,1,0);cameraNY.up.set(0,0,1);cameraNY.lookAt(0,-1,0);cameraPZ.up.set(0,1,0);cameraPZ.lookAt(0,0,1);cameraNZ.up.set(0,1,0);cameraNZ.lookAt(0,0,-1)}else if(coordinateSystem===WebGPUCoordinateSystem){cameraPX.up.set(0,-1,0);cameraPX.lookAt(-1,0,0);cameraNX.up.set(0,-1,0);cameraNX.lookAt(1,0,0);cameraPY.up.set(0,0,1);cameraPY.lookAt(0,1,0);cameraNY.up.set(0,0,-1);cameraNY.lookAt(0,-1,0);cameraPZ.up.set(0,-1,0);cameraPZ.lookAt(0,0,1);cameraNZ.up.set(0,-1,0);cameraNZ.lookAt(0,0,-1)}else{throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+coordinateSystem)}for(const camera of cameras){this.add(camera);camera.updateMatrixWorld()}}update(renderer,scene){if(this.parent===null)this.updateMatrixWorld();const{renderTarget,activeMipmapLevel}=this;if(this.coordinateSystem!==renderer.coordinateSystem){this.coordinateSystem=renderer.coordinateSystem;this.updateCoordinateSystem()}const[cameraPX,cameraNX,cameraPY,cameraNY,cameraPZ,cameraNZ]=this.children;const currentRenderTarget=renderer.getRenderTarget();const currentActiveCubeFace=renderer.getActiveCubeFace();const currentActiveMipmapLevel=renderer.getActiveMipmapLevel();const currentXrEnabled=renderer.xr.enabled;renderer.xr.enabled=false;const generateMipmaps=renderTarget.texture.generateMipmaps;renderTarget.texture.generateMipmaps=false;renderer.setRenderTarget(renderTarget,0,activeMipmapLevel);renderer.render(scene,cameraPX);renderer.setRenderTarget(renderTarget,1,activeMipmapLevel);renderer.render(scene,cameraNX);renderer.setRenderTarget(renderTarget,2,activeMipmapLevel);renderer.render(scene,cameraPY);renderer.setRenderTarget(renderTarget,3,activeMipmapLevel);renderer.render(scene,cameraNY);renderer.setRenderTarget(renderTarget,4,activeMipmapLevel);renderer.render(scene,cameraPZ);renderTarget.texture.generateMipmaps=generateMipmaps;renderer.setRenderTarget(renderTarget,5,activeMipmapLevel);renderer.render(scene,cameraNZ);renderer.setRenderTarget(currentRenderTarget,currentActiveCubeFace,currentActiveMipmapLevel);renderer.xr.enabled=currentXrEnabled;renderTarget.texture.needsPMREMUpdate=true}}class CubeTexture extends Texture{constructor(images=[],mapping=CubeReflectionMapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy,colorSpace){super(images,mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy,colorSpace);this.isCubeTexture=true;this.flipY=false}get images(){return this.image}set images(value){this.image=value}}class WebGLCubeRenderTarget extends WebGLRenderTarget{constructor(size=1,options={}){super(size,size,options);this.isWebGLCubeRenderTarget=true;const image={width:size,height:size,depth:1};const images=[image,image,image,image,image,image];this.texture=new CubeTexture(images);this._setTextureOptions(options);this.texture.isRenderTargetTexture=true}fromEquirectangularTexture(renderer,texture){this.texture.type=texture.type;this.texture.colorSpace=texture.colorSpace;this.texture.generateMipmaps=texture.generateMipmaps;this.texture.minFilter=texture.minFilter;this.texture.magFilter=texture.magFilter;const shader={uniforms:{tEquirect:{value:null}},vertexShader:` varying vec3 vWorldDirection; vec3 transformDirection( in vec3 dir, in mat4 matrix ) { return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); } void main() { vWorldDirection = transformDirection( position, modelMatrix ); #include #include } `,fragmentShader:` uniform sampler2D tEquirect; varying vec3 vWorldDirection; #include void main() { vec3 direction = normalize( vWorldDirection ); vec2 sampleUV = equirectUv( direction ); gl_FragColor = texture2D( tEquirect, sampleUV ); } `};const geometry=new BoxGeometry(5,5,5);const material=new ShaderMaterial({name:"CubemapFromEquirect",uniforms:cloneUniforms(shader.uniforms),vertexShader:shader.vertexShader,fragmentShader:shader.fragmentShader,side:BackSide,blending:NoBlending});material.uniforms.tEquirect.value=texture;const mesh=new Mesh(geometry,material);const currentMinFilter=texture.minFilter;if(texture.minFilter===LinearMipmapLinearFilter)texture.minFilter=LinearFilter;const camera=new CubeCamera(1,10,this);camera.update(renderer,mesh);texture.minFilter=currentMinFilter;mesh.geometry.dispose();mesh.material.dispose();return this}clear(renderer,color=true,depth=true,stencil=true){const currentRenderTarget=renderer.getRenderTarget();for(let i=0;i<6;i++){renderer.setRenderTarget(this,i);renderer.clear(color,depth,stencil)}renderer.setRenderTarget(currentRenderTarget)}}class Group extends Object3D{constructor(){super();this.isGroup=true;this.type="Group"}}const _moveEvent={type:"move"};class WebXRController{constructor(){this._targetRay=null;this._grip=null;this._hand=null}getHandSpace(){if(this._hand===null){this._hand=new Group;this._hand.matrixAutoUpdate=false;this._hand.visible=false;this._hand.joints={};this._hand.inputState={pinching:false}}return this._hand}getTargetRaySpace(){if(this._targetRay===null){this._targetRay=new Group;this._targetRay.matrixAutoUpdate=false;this._targetRay.visible=false;this._targetRay.hasLinearVelocity=false;this._targetRay.linearVelocity=new Vector3;this._targetRay.hasAngularVelocity=false;this._targetRay.angularVelocity=new Vector3}return this._targetRay}getGripSpace(){if(this._grip===null){this._grip=new Group;this._grip.matrixAutoUpdate=false;this._grip.visible=false;this._grip.hasLinearVelocity=false;this._grip.linearVelocity=new Vector3;this._grip.hasAngularVelocity=false;this._grip.angularVelocity=new Vector3}return this._grip}dispatchEvent(event){if(this._targetRay!==null){this._targetRay.dispatchEvent(event)}if(this._grip!==null){this._grip.dispatchEvent(event)}if(this._hand!==null){this._hand.dispatchEvent(event)}return this}connect(inputSource){if(inputSource&&inputSource.hand){const hand=this._hand;if(hand){for(const inputjoint of inputSource.hand.values()){this._getHandJoint(hand,inputjoint)}}}this.dispatchEvent({type:"connected",data:inputSource});return this}disconnect(inputSource){this.dispatchEvent({type:"disconnected",data:inputSource});if(this._targetRay!==null){this._targetRay.visible=false}if(this._grip!==null){this._grip.visible=false}if(this._hand!==null){this._hand.visible=false}return this}update(inputSource,frame,referenceSpace){let inputPose=null;let gripPose=null;let handPose=null;const targetRay=this._targetRay;const grip=this._grip;const hand=this._hand;if(inputSource&&frame.session.visibilityState!=="visible-blurred"){if(hand&&inputSource.hand){handPose=true;for(const inputjoint of inputSource.hand.values()){const jointPose=frame.getJointPose(inputjoint,referenceSpace);const joint=this._getHandJoint(hand,inputjoint);if(jointPose!==null){joint.matrix.fromArray(jointPose.transform.matrix);joint.matrix.decompose(joint.position,joint.rotation,joint.scale);joint.matrixWorldNeedsUpdate=true;joint.jointRadius=jointPose.radius}joint.visible=jointPose!==null}const indexTip=hand.joints["index-finger-tip"];const thumbTip=hand.joints["thumb-tip"];const distance=indexTip.position.distanceTo(thumbTip.position);const distanceToPinch=0.02;const threshold=0.005;if(hand.inputState.pinching&&distance>distanceToPinch+threshold){hand.inputState.pinching=false;this.dispatchEvent({type:"pinchend",handedness:inputSource.handedness,target:this})}else if(!hand.inputState.pinching&&distance<=distanceToPinch-threshold){hand.inputState.pinching=true;this.dispatchEvent({type:"pinchstart",handedness:inputSource.handedness,target:this})}}else{if(grip!==null&&inputSource.gripSpace){gripPose=frame.getPose(inputSource.gripSpace,referenceSpace);if(gripPose!==null){grip.matrix.fromArray(gripPose.transform.matrix);grip.matrix.decompose(grip.position,grip.rotation,grip.scale);grip.matrixWorldNeedsUpdate=true;if(gripPose.linearVelocity){grip.hasLinearVelocity=true;grip.linearVelocity.copy(gripPose.linearVelocity)}else{grip.hasLinearVelocity=false}if(gripPose.angularVelocity){grip.hasAngularVelocity=true;grip.angularVelocity.copy(gripPose.angularVelocity)}else{grip.hasAngularVelocity=false}}}}if(targetRay!==null){inputPose=frame.getPose(inputSource.targetRaySpace,referenceSpace);if(inputPose===null&&gripPose!==null){inputPose=gripPose}if(inputPose!==null){targetRay.matrix.fromArray(inputPose.transform.matrix);targetRay.matrix.decompose(targetRay.position,targetRay.rotation,targetRay.scale);targetRay.matrixWorldNeedsUpdate=true;if(inputPose.linearVelocity){targetRay.hasLinearVelocity=true;targetRay.linearVelocity.copy(inputPose.linearVelocity)}else{targetRay.hasLinearVelocity=false}if(inputPose.angularVelocity){targetRay.hasAngularVelocity=true;targetRay.angularVelocity.copy(inputPose.angularVelocity)}else{targetRay.hasAngularVelocity=false}this.dispatchEvent(_moveEvent)}}}if(targetRay!==null){targetRay.visible=inputPose!==null}if(grip!==null){grip.visible=gripPose!==null}if(hand!==null){hand.visible=handPose!==null}return this}_getHandJoint(hand,inputjoint){if(hand.joints[inputjoint.jointName]===undefined){const joint=new Group;joint.matrixAutoUpdate=false;joint.visible=false;hand.joints[inputjoint.jointName]=joint;hand.add(joint)}return hand.joints[inputjoint.jointName]}}class FogExp2{constructor(color,density=0.00025){this.isFogExp2=true;this.name="";this.color=new Color(color);this.density=density}clone(){return new FogExp2(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Fog{constructor(color,near=1,far=1000){this.isFog=true;this.name="";this.color=new Color(color);this.near=near;this.far=far}clone(){return new Fog(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Scene extends Object3D{constructor(){super();this.isScene=true;this.type="Scene";this.background=null;this.environment=null;this.fog=null;this.backgroundBlurriness=0;this.backgroundIntensity=1;this.backgroundRotation=new Euler;this.environmentIntensity=1;this.environmentRotation=new Euler;this.overrideMaterial=null;if(typeof __THREE_DEVTOOLS__!=="undefined"){__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}}copy(source,recursive){super.copy(source,recursive);if(source.background!==null)this.background=source.background.clone();if(source.environment!==null)this.environment=source.environment.clone();if(source.fog!==null)this.fog=source.fog.clone();this.backgroundBlurriness=source.backgroundBlurriness;this.backgroundIntensity=source.backgroundIntensity;this.backgroundRotation.copy(source.backgroundRotation);this.environmentIntensity=source.environmentIntensity;this.environmentRotation.copy(source.environmentRotation);if(source.overrideMaterial!==null)this.overrideMaterial=source.overrideMaterial.clone();this.matrixAutoUpdate=source.matrixAutoUpdate;return this}toJSON(meta){const data=super.toJSON(meta);if(this.fog!==null)data.object.fog=this.fog.toJSON();if(this.backgroundBlurriness>0)data.object.backgroundBlurriness=this.backgroundBlurriness;if(this.backgroundIntensity!==1)data.object.backgroundIntensity=this.backgroundIntensity;data.object.backgroundRotation=this.backgroundRotation.toArray();if(this.environmentIntensity!==1)data.object.environmentIntensity=this.environmentIntensity;data.object.environmentRotation=this.environmentRotation.toArray();return data}}class InterleavedBuffer{constructor(array,stride){this.isInterleavedBuffer=true;this.array=array;this.stride=stride;this.count=array!==undefined?array.length/stride:0;this.usage=StaticDrawUsage;this.updateRanges=[];this.version=0;this.uuid=generateUUID()}onUploadCallback(){}set needsUpdate(value){if(value===true)this.version++}setUsage(value){this.usage=value;return this}addUpdateRange(start,count){this.updateRanges.push({start,count})}clearUpdateRanges(){this.updateRanges.length=0}copy(source){this.array=new source.array.constructor(source.array);this.count=source.count;this.stride=source.stride;this.usage=source.usage;return this}copyAt(index1,interleavedBuffer,index2){index1*=this.stride;index2*=interleavedBuffer.stride;for(let i=0,l=this.stride;iraycaster.far)return;intersects.push({distance:distance,point:_intersectPoint.clone(),uv:Triangle.getInterpolation(_intersectPoint,_vA,_vB,_vC,_uvA,_uvB,_uvC,new Vector2),face:null,object:this})}copy(source,recursive){super.copy(source,recursive);if(source.center!==undefined)this.center.copy(source.center);this.material=source.material;return this}}function transformVertex(vertexPosition,mvPosition,center,scale,sin,cos){_alignedPosition.subVectors(vertexPosition,center).addScalar(0.5).multiply(scale);if(sin!==undefined){_rotatedPosition.x=cos*_alignedPosition.x-sin*_alignedPosition.y;_rotatedPosition.y=sin*_alignedPosition.x+cos*_alignedPosition.y}else{_rotatedPosition.copy(_alignedPosition)}vertexPosition.copy(mvPosition);vertexPosition.x+=_rotatedPosition.x;vertexPosition.y+=_rotatedPosition.y;vertexPosition.applyMatrix4(_viewWorldMatrix)}const _v1$2=new Vector3;const _v2$1=new Vector3;class LOD extends Object3D{constructor(){super();this.isLOD=true;this._currentLevel=0;this.type="LOD";Object.defineProperties(this,{levels:{enumerable:true,value:[]}});this.autoUpdate=true}copy(source){super.copy(source,false);const levels=source.levels;for(let i=0,l=levels.length;i0){let i,l;for(i=1,l=levels.length;i0){_v1$2.setFromMatrixPosition(this.matrixWorld);const distance=raycaster.ray.origin.distanceTo(_v1$2);this.getObjectForDistance(distance).raycast(raycaster,intersects)}}update(camera){const levels=this.levels;if(levels.length>1){_v1$2.setFromMatrixPosition(camera.matrixWorld);_v2$1.setFromMatrixPosition(this.matrixWorld);const distance=_v1$2.distanceTo(_v2$1)/camera.zoom;levels[0].object.visible=true;let i,l;for(i=1,l=levels.length;i=levelDistance){levels[i-1].object.visible=false;levels[i].object.visible=true}else{break}}this._currentLevel=i-1;for(;i1){return null}return target.copy(line.start).addScaledVector(direction,t)}intersectsLine(line){const startSign=this.distanceToPoint(line.start);const endSign=this.distanceToPoint(line.end);return startSign<0&&endSign>0||endSign<0&&startSign>0}intersectsBox(box){return box.intersectsPlane(this)}intersectsSphere(sphere){return sphere.intersectsPlane(this)}coplanarPoint(target){return target.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(matrix,optionalNormalMatrix){const normalMatrix=optionalNormalMatrix||_normalMatrix.getNormalMatrix(matrix);const referencePoint=this.coplanarPoint(_vector1).applyMatrix4(matrix);const normal=this.normal.applyMatrix3(normalMatrix).normalize();this.constant=-referencePoint.dot(normal);return this}translate(offset){this.constant-=offset.dot(this.normal);return this}equals(plane){return plane.normal.equals(this.normal)&&plane.constant===this.constant}clone(){return new this.constructor().copy(this)}}const _sphere$3=new Sphere;const _defaultSpriteCenter=new Vector2(0.5,0.5);const _vector$6=new Vector3;class Frustum{constructor(p0=new Plane,p1=new Plane,p2=new Plane,p3=new Plane,p4=new Plane,p5=new Plane){this.planes=[p0,p1,p2,p3,p4,p5]}set(p0,p1,p2,p3,p4,p5){const planes=this.planes;planes[0].copy(p0);planes[1].copy(p1);planes[2].copy(p2);planes[3].copy(p3);planes[4].copy(p4);planes[5].copy(p5);return this}copy(frustum){const planes=this.planes;for(let i=0;i<6;i++){planes[i].copy(frustum.planes[i])}return this}setFromProjectionMatrix(m,coordinateSystem=WebGLCoordinateSystem,reversedDepth=false){const planes=this.planes;const me=m.elements;const me0=me[0],me1=me[1],me2=me[2],me3=me[3];const me4=me[4],me5=me[5],me6=me[6],me7=me[7];const me8=me[8],me9=me[9],me10=me[10],me11=me[11];const me12=me[12],me13=me[13],me14=me[14],me15=me[15];planes[0].setComponents(me3-me0,me7-me4,me11-me8,me15-me12).normalize();planes[1].setComponents(me3+me0,me7+me4,me11+me8,me15+me12).normalize();planes[2].setComponents(me3+me1,me7+me5,me11+me9,me15+me13).normalize();planes[3].setComponents(me3-me1,me7-me5,me11-me9,me15-me13).normalize();if(reversedDepth){planes[4].setComponents(me2,me6,me10,me14).normalize();planes[5].setComponents(me3-me2,me7-me6,me11-me10,me15-me14).normalize()}else{planes[4].setComponents(me3-me2,me7-me6,me11-me10,me15-me14).normalize();if(coordinateSystem===WebGLCoordinateSystem){planes[5].setComponents(me3+me2,me7+me6,me11+me10,me15+me14).normalize()}else if(coordinateSystem===WebGPUCoordinateSystem){planes[5].setComponents(me2,me6,me10,me14).normalize()}else{throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+coordinateSystem)}}return this}intersectsObject(object){if(object.boundingSphere!==undefined){if(object.boundingSphere===null)object.computeBoundingSphere();_sphere$3.copy(object.boundingSphere).applyMatrix4(object.matrixWorld)}else{const geometry=object.geometry;if(geometry.boundingSphere===null)geometry.computeBoundingSphere();_sphere$3.copy(geometry.boundingSphere).applyMatrix4(object.matrixWorld)}return this.intersectsSphere(_sphere$3)}intersectsSprite(sprite){_sphere$3.center.set(0,0,0);const offset=_defaultSpriteCenter.distanceTo(sprite.center);_sphere$3.radius=0.7071067811865476+offset;_sphere$3.applyMatrix4(sprite.matrixWorld);return this.intersectsSphere(_sphere$3)}intersectsSphere(sphere){const planes=this.planes;const center=sphere.center;const negRadius=-sphere.radius;for(let i=0;i<6;i++){const distance=planes[i].distanceToPoint(center);if(distance0?box.max.x:box.min.x;_vector$6.y=plane.normal.y>0?box.max.y:box.min.y;_vector$6.z=plane.normal.z>0?box.max.z:box.min.z;if(plane.distanceToPoint(_vector$6)<0){return false}}return true}containsPoint(point){const planes=this.planes;for(let i=0;i<6;i++){if(planes[i].distanceToPoint(point)<0){return false}}return true}clone(){return new this.constructor().copy(this)}}const _projScreenMatrix$2=new Matrix4;const _frustum$1=new Frustum;class FrustumArray{constructor(){this.coordinateSystem=WebGLCoordinateSystem}intersectsObject(object,cameraArray){if(!cameraArray.isArrayCamera||cameraArray.cameras.length===0){return false}for(let i=0;i=pool.length){pool.push({start:-1,count:-1,z:-1,index:-1})}const item=pool[this.index];list.push(item);this.index++;item.start=start;item.count=count;item.z=z;item.index=index}reset(){this.list.length=0;this.index=0}}const _matrix$1=new Matrix4;const _whiteColor=new Color(1,1,1);const _frustum=new Frustum;const _frustumArray=new FrustumArray;const _box$1=new Box3;const _sphere$2=new Sphere;const _vector$5=new Vector3;const _forward$1=new Vector3;const _temp=new Vector3;const _renderList=new MultiDrawRenderList;const _mesh=new Mesh;const _batchIntersects=[];function copyAttributeData(src,target,targetOffset=0){const itemSize=target.itemSize;if(src.isInterleavedBufferAttribute||src.array.constructor!==target.array.constructor){const vertexCount=src.count;for(let i=0;i65535?new Uint32Array(maxIndexCount):new Uint16Array(maxIndexCount);geometry.setIndex(new BufferAttribute(indexArray,1))}this._geometryInitialized=true}}_validateGeometry(geometry){const batchGeometry=this.geometry;if(Boolean(geometry.getIndex())!==Boolean(batchGeometry.getIndex())){throw new Error("THREE.BatchedMesh: All geometries must consistently have \"index\".")}for(const attributeName in batchGeometry.attributes){if(!geometry.hasAttribute(attributeName)){throw new Error(`THREE.BatchedMesh: Added geometry missing "${attributeName}". All geometries must have consistent attributes.`)}const srcAttribute=geometry.getAttribute(attributeName);const dstAttribute=batchGeometry.getAttribute(attributeName);if(srcAttribute.itemSize!==dstAttribute.itemSize||srcAttribute.normalized!==dstAttribute.normalized){throw new Error("THREE.BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}}validateInstanceId(instanceId){const instanceInfo=this._instanceInfo;if(instanceId<0||instanceId>=instanceInfo.length||instanceInfo[instanceId].active===false){throw new Error(`THREE.BatchedMesh: Invalid instanceId ${instanceId}. Instance is either out of range or has been deleted.`)}}validateGeometryId(geometryId){const geometryInfoList=this._geometryInfo;if(geometryId<0||geometryId>=geometryInfoList.length||geometryInfoList[geometryId].active===false){throw new Error(`THREE.BatchedMesh: Invalid geometryId ${geometryId}. Geometry is either out of range or has been deleted.`)}}setCustomSort(func){this.customSort=func;return this}computeBoundingBox(){if(this.boundingBox===null){this.boundingBox=new Box3}const boundingBox=this.boundingBox;const instanceInfo=this._instanceInfo;boundingBox.makeEmpty();for(let i=0,l=instanceInfo.length;i=this.maxInstanceCount;if(atCapacity&&this._availableInstanceIds.length===0){throw new Error("THREE.BatchedMesh: Maximum item count reached.")}const instanceInfo={visible:true,active:true,geometryIndex:geometryId};let drawId=null;if(this._availableInstanceIds.length>0){this._availableInstanceIds.sort(ascIdSort);drawId=this._availableInstanceIds.shift();this._instanceInfo[drawId]=instanceInfo}else{drawId=this._instanceInfo.length;this._instanceInfo.push(instanceInfo)}const matricesTexture=this._matricesTexture;_matrix$1.identity().toArray(matricesTexture.image.data,drawId*16);matricesTexture.needsUpdate=true;const colorsTexture=this._colorsTexture;if(colorsTexture){_whiteColor.toArray(colorsTexture.image.data,drawId*4);colorsTexture.needsUpdate=true}this._visibilityChanged=true;return drawId}addGeometry(geometry,reservedVertexCount=-1,reservedIndexCount=-1){this._initializeGeometry(geometry);this._validateGeometry(geometry);const geometryInfo={vertexStart:-1,vertexCount:-1,reservedVertexCount:-1,indexStart:-1,indexCount:-1,reservedIndexCount:-1,start:-1,count:-1,boundingBox:null,boundingSphere:null,active:true};const geometryInfoList=this._geometryInfo;geometryInfo.vertexStart=this._nextVertexStart;geometryInfo.reservedVertexCount=reservedVertexCount===-1?geometry.getAttribute("position").count:reservedVertexCount;const index=geometry.getIndex();const hasIndex=index!==null;if(hasIndex){geometryInfo.indexStart=this._nextIndexStart;geometryInfo.reservedIndexCount=reservedIndexCount===-1?index.count:reservedIndexCount}if(geometryInfo.indexStart!==-1&&geometryInfo.indexStart+geometryInfo.reservedIndexCount>this._maxIndexCount||geometryInfo.vertexStart+geometryInfo.reservedVertexCount>this._maxVertexCount){throw new Error("THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.")}let geometryId;if(this._availableGeometryIds.length>0){this._availableGeometryIds.sort(ascIdSort);geometryId=this._availableGeometryIds.shift();geometryInfoList[geometryId]=geometryInfo}else{geometryId=this._geometryCount;this._geometryCount++;geometryInfoList.push(geometryInfo)}this.setGeometryAt(geometryId,geometry);this._nextIndexStart=geometryInfo.indexStart+geometryInfo.reservedIndexCount;this._nextVertexStart=geometryInfo.vertexStart+geometryInfo.reservedVertexCount;return geometryId}setGeometryAt(geometryId,geometry){if(geometryId>=this._geometryCount){throw new Error("THREE.BatchedMesh: Maximum geometry count reached.")}this._validateGeometry(geometry);const batchGeometry=this.geometry;const hasIndex=batchGeometry.getIndex()!==null;const dstIndex=batchGeometry.getIndex();const srcIndex=geometry.getIndex();const geometryInfo=this._geometryInfo[geometryId];if(hasIndex&&srcIndex.count>geometryInfo.reservedIndexCount||geometry.attributes.position.count>geometryInfo.reservedVertexCount){throw new Error("THREE.BatchedMesh: Reserved space not large enough for provided geometry.")}const vertexStart=geometryInfo.vertexStart;const reservedVertexCount=geometryInfo.reservedVertexCount;geometryInfo.vertexCount=geometry.getAttribute("position").count;for(const attributeName in batchGeometry.attributes){const srcAttribute=geometry.getAttribute(attributeName);const dstAttribute=batchGeometry.getAttribute(attributeName);copyAttributeData(srcAttribute,dstAttribute,vertexStart);const itemSize=srcAttribute.itemSize;for(let i=srcAttribute.count,l=reservedVertexCount;i=geometryInfoList.length||geometryInfoList[geometryId].active===false){return this}const instanceInfo=this._instanceInfo;for(let i=0,l=instanceInfo.length;ii).sort((a,b)=>{return geometryInfoList[a].vertexStart-geometryInfoList[b].vertexStart});const geometry=this.geometry;for(let i=0,l=geometryInfoList.length;i=this._geometryCount){return null}const geometry=this.geometry;const geometryInfo=this._geometryInfo[geometryId];if(geometryInfo.boundingBox===null){const box=new Box3;const index=geometry.index;const position=geometry.attributes.position;for(let i=geometryInfo.start,l=geometryInfo.start+geometryInfo.count;i=this._geometryCount){return null}const geometry=this.geometry;const geometryInfo=this._geometryInfo[geometryId];if(geometryInfo.boundingSphere===null){const sphere=new Sphere;this.getBoundingBoxAt(geometryId,_box$1);_box$1.getCenter(sphere.center);const index=geometry.index;const position=geometry.attributes.position;let maxRadiusSq=0;for(let i=geometryInfo.start,l=geometryInfo.start+geometryInfo.count;iinfo.active);const requiredVertexLength=Math.max(...validRanges.map(range=>range.vertexStart+range.reservedVertexCount));if(requiredVertexLength>maxVertexCount){throw new Error(`BatchedMesh: Geometry vertex values are being used outside the range ${maxIndexCount}. Cannot shrink further.`)}if(this.geometry.index){const requiredIndexLength=Math.max(...validRanges.map(range=>range.indexStart+range.reservedIndexCount));if(requiredIndexLength>maxIndexCount){throw new Error(`BatchedMesh: Geometry index values are being used outside the range ${maxIndexCount}. Cannot shrink further.`)}}const oldGeometry=this.geometry;oldGeometry.dispose();this._maxVertexCount=maxVertexCount;this._maxIndexCount=maxIndexCount;if(this._geometryInitialized){this._geometryInitialized=false;this.geometry=new BufferGeometry;this._initializeGeometry(oldGeometry)}const geometry=this.geometry;if(oldGeometry.index){copyArrayContents(oldGeometry.index.array,geometry.index.array)}for(const key in oldGeometry.attributes){copyArrayContents(oldGeometry.attributes[key].array,geometry.attributes[key].array)}}raycast(raycaster,intersects){const instanceInfo=this._instanceInfo;const geometryInfoList=this._geometryInfo;const matrixWorld=this.matrixWorld;const batchGeometry=this.geometry;_mesh.material=this.material;_mesh.geometry.index=batchGeometry.index;_mesh.geometry.attributes=batchGeometry.attributes;if(_mesh.geometry.boundingBox===null){_mesh.geometry.boundingBox=new Box3}if(_mesh.geometry.boundingSphere===null){_mesh.geometry.boundingSphere=new Sphere}for(let i=0,l=instanceInfo.length;i({...info,boundingBox:info.boundingBox!==null?info.boundingBox.clone():null,boundingSphere:info.boundingSphere!==null?info.boundingSphere.clone():null}));this._instanceInfo=source._instanceInfo.map(info=>({...info}));this._availableInstanceIds=source._availableInstanceIds.slice();this._availableGeometryIds=source._availableGeometryIds.slice();this._nextIndexStart=source._nextIndexStart;this._nextVertexStart=source._nextVertexStart;this._geometryCount=source._geometryCount;this._maxInstanceCount=source._maxInstanceCount;this._maxVertexCount=source._maxVertexCount;this._maxIndexCount=source._maxIndexCount;this._geometryInitialized=source._geometryInitialized;this._multiDrawCounts=source._multiDrawCounts.slice();this._multiDrawStarts=source._multiDrawStarts.slice();this._indirectTexture=source._indirectTexture.clone();this._indirectTexture.image.data=this._indirectTexture.image.data.slice();this._matricesTexture=source._matricesTexture.clone();this._matricesTexture.image.data=this._matricesTexture.image.data.slice();if(this._colorsTexture!==null){this._colorsTexture=source._colorsTexture.clone();this._colorsTexture.image.data=this._colorsTexture.image.data.slice()}return this}dispose(){this.geometry.dispose();this._matricesTexture.dispose();this._matricesTexture=null;this._indirectTexture.dispose();this._indirectTexture=null;if(this._colorsTexture!==null){this._colorsTexture.dispose();this._colorsTexture=null}}onBeforeRender(renderer,scene,camera,geometry,material){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects){return}const index=geometry.getIndex();const bytesPerElement=index===null?1:index.array.BYTES_PER_ELEMENT;const instanceInfo=this._instanceInfo;const multiDrawStarts=this._multiDrawStarts;const multiDrawCounts=this._multiDrawCounts;const geometryInfoList=this._geometryInfo;const perObjectFrustumCulled=this.perObjectFrustumCulled;const indirectTexture=this._indirectTexture;const indirectArray=indirectTexture.image.data;const frustum=camera.isArrayCamera?_frustumArray:_frustum;if(perObjectFrustumCulled&&!camera.isArrayCamera){_matrix$1.multiplyMatrices(camera.projectionMatrix,camera.matrixWorldInverse).multiply(this.matrixWorld);_frustum.setFromProjectionMatrix(_matrix$1,camera.coordinateSystem,camera.reversedDepth)}let multiDrawCount=0;if(this.sortObjects){_matrix$1.copy(this.matrixWorld).invert();_vector$5.setFromMatrixPosition(camera.matrixWorld).applyMatrix4(_matrix$1);_forward$1.set(0,0,-1).transformDirection(camera.matrixWorld).transformDirection(_matrix$1);for(let i=0,l=instanceInfo.length;i0){const morphAttribute=morphAttributes[keys[0]];if(morphAttribute!==undefined){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(let m=0,ml=morphAttribute.length;mthresholdSq)return;_intersectPointOnRay.applyMatrix4(object.matrixWorld);const distance=raycaster.ray.origin.distanceTo(_intersectPointOnRay);if(distanceraycaster.far)return;return{distance:distance,point:_intersectPointOnSegment.clone().applyMatrix4(object.matrixWorld),index:i,face:null,faceIndex:null,barycoord:null,object:object}}const _start=new Vector3;const _end=new Vector3;class LineSegments extends Line{constructor(geometry,material){super(geometry,material);this.isLineSegments=true;this.type="LineSegments"}computeLineDistances(){const geometry=this.geometry;if(geometry.index===null){const positionAttribute=geometry.attributes.position;const lineDistances=[];for(let i=0,l=positionAttribute.count;i0){const morphAttribute=morphAttributes[keys[0]];if(morphAttribute!==undefined){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(let m=0,ml=morphAttribute.length;mraycaster.far)return;intersects.push({distance:distance,distanceToRay:Math.sqrt(rayPointDistanceSq),point:intersectPoint,index:index,face:null,faceIndex:null,barycoord:null,object:object})}}class VideoTexture extends Texture{constructor(video,mapping,wrapS,wrapT,magFilter=LinearFilter,minFilter=LinearFilter,format,type,anisotropy){super(video,mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy);this.isVideoTexture=true;this.generateMipmaps=false;this._requestVideoFrameCallbackId=0;const scope=this;function updateVideo(){scope.needsUpdate=true;scope._requestVideoFrameCallbackId=video.requestVideoFrameCallback(updateVideo)}if("requestVideoFrameCallback"in video){this._requestVideoFrameCallbackId=video.requestVideoFrameCallback(updateVideo)}}clone(){return new this.constructor(this.image).copy(this)}update(){const video=this.image;const hasVideoFrameCallback=("requestVideoFrameCallback"in video);if(hasVideoFrameCallback===false&&video.readyState>=video.HAVE_CURRENT_DATA){this.needsUpdate=true}}dispose(){if(this._requestVideoFrameCallbackId!==0){this.source.data.cancelVideoFrameCallback(this._requestVideoFrameCallbackId);this._requestVideoFrameCallbackId=0}super.dispose()}}class VideoFrameTexture extends VideoTexture{constructor(mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy){super({},mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy);this.isVideoFrameTexture=true}update(){}clone(){return new this.constructor().copy(this)}setFrame(frame){this.image=frame;this.needsUpdate=true}}class FramebufferTexture extends Texture{constructor(width,height){super({width,height});this.isFramebufferTexture=true;this.magFilter=NearestFilter;this.minFilter=NearestFilter;this.generateMipmaps=false;this.needsUpdate=true}}class CompressedTexture extends Texture{constructor(mipmaps,width,height,format,type,mapping,wrapS,wrapT,magFilter,minFilter,anisotropy,colorSpace){super(null,mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy,colorSpace);this.isCompressedTexture=true;this.image={width:width,height:height};this.mipmaps=mipmaps;this.flipY=false;this.generateMipmaps=false}}class CompressedArrayTexture extends CompressedTexture{constructor(mipmaps,width,height,depth,format,type){super(mipmaps,width,height,format,type);this.isCompressedArrayTexture=true;this.image.depth=depth;this.wrapR=ClampToEdgeWrapping;this.layerUpdates=new Set}addLayerUpdate(layerIndex){this.layerUpdates.add(layerIndex)}clearLayerUpdates(){this.layerUpdates.clear()}}class CompressedCubeTexture extends CompressedTexture{constructor(images,format,type){super(undefined,images[0].width,images[0].height,format,type,CubeReflectionMapping);this.isCompressedCubeTexture=true;this.isCubeTexture=true;this.image=images}}class CanvasTexture extends Texture{constructor(canvas,mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy){super(canvas,mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy);this.isCanvasTexture=true;this.needsUpdate=true}}class DepthTexture extends Texture{constructor(width,height,type=UnsignedIntType,mapping,wrapS,wrapT,magFilter=NearestFilter,minFilter=NearestFilter,anisotropy,format=DepthFormat,depth=1){if(format!==DepthFormat&&format!==DepthStencilFormat){throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat")}const image={width:width,height:height,depth:depth};super(image,mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy);this.isDepthTexture=true;this.flipY=false;this.generateMipmaps=false;this.compareFunction=null}copy(source){super.copy(source);this.source=new Source(Object.assign({},source.image));this.compareFunction=source.compareFunction;return this}toJSON(meta){const data=super.toJSON(meta);if(this.compareFunction!==null)data.compareFunction=this.compareFunction;return data}}class CubeDepthTexture extends DepthTexture{constructor(size,type=UnsignedIntType,mapping=CubeReflectionMapping,wrapS,wrapT,magFilter=NearestFilter,minFilter=NearestFilter,anisotropy,format=DepthFormat){const image={width:size,height:size,depth:1};const images=[image,image,image,image,image,image];super(size,size,type,mapping,wrapS,wrapT,magFilter,minFilter,anisotropy,format);this.image=images;this.isCubeDepthTexture=true;this.isCubeTexture=true}get images(){return this.image}set images(value){this.image=value}}class ExternalTexture extends Texture{constructor(sourceTexture=null){super();this.sourceTexture=sourceTexture;this.isExternalTexture=true}copy(source){super.copy(source);this.sourceTexture=source.sourceTexture;return this}}class CapsuleGeometry extends BufferGeometry{constructor(radius=1,height=1,capSegments=4,radialSegments=8,heightSegments=1){super();this.type="CapsuleGeometry";this.parameters={radius:radius,height:height,capSegments:capSegments,radialSegments:radialSegments,heightSegments:heightSegments};height=Math.max(0,height);capSegments=Math.max(1,Math.floor(capSegments));radialSegments=Math.max(3,Math.floor(radialSegments));heightSegments=Math.max(1,Math.floor(heightSegments));const indices=[];const vertices=[];const normals=[];const uvs=[];const halfHeight=height/2;const capArcLength=Math.PI/2*radius;const cylinderPartLength=height;const totalArcLength=2*capArcLength+cylinderPartLength;const numVerticalSegments=capSegments*2+heightSegments;const verticesPerRow=radialSegments+1;const normal=new Vector3;const vertex=new Vector3;for(let iy=0;iy<=numVerticalSegments;iy++){let currentArcLength=0;let profileY=0;let profileRadius=0;let normalYComponent=0;if(iy<=capSegments){const segmentProgress=iy/capSegments;const angle=segmentProgress*Math.PI/2;profileY=-halfHeight-radius*Math.cos(angle);profileRadius=radius*Math.sin(angle);normalYComponent=-radius*Math.cos(angle);currentArcLength=segmentProgress*capArcLength}else if(iy<=capSegments+heightSegments){const segmentProgress=(iy-capSegments)/heightSegments;profileY=-halfHeight+segmentProgress*height;profileRadius=radius;normalYComponent=0;currentArcLength=capArcLength+segmentProgress*cylinderPartLength}else{const segmentProgress=(iy-capSegments-heightSegments)/capSegments;const angle=segmentProgress*Math.PI/2;profileY=halfHeight+radius*Math.sin(angle);profileRadius=radius*Math.cos(angle);normalYComponent=radius*Math.sin(angle);currentArcLength=capArcLength+cylinderPartLength+segmentProgress*capArcLength}const v=Math.max(0,Math.min(1,currentArcLength/totalArcLength));let uOffset=0;if(iy===0){uOffset=0.5/radialSegments}else if(iy===numVerticalSegments){uOffset=-0.5/radialSegments}for(let ix=0;ix<=radialSegments;ix++){const u=ix/radialSegments;const theta=u*Math.PI*2;const sinTheta=Math.sin(theta);const cosTheta=Math.cos(theta);vertex.x=-profileRadius*cosTheta;vertex.y=profileY;vertex.z=profileRadius*sinTheta;vertices.push(vertex.x,vertex.y,vertex.z);normal.set(-profileRadius*cosTheta,normalYComponent,profileRadius*sinTheta);normal.normalize();normals.push(normal.x,normal.y,normal.z);uvs.push(u+uOffset,v)}if(iy>0){const prevIndexRow=(iy-1)*verticesPerRow;for(let ix=0;ix0)generateCap(true);if(radiusBottom>0)generateCap(false)}this.setIndex(indices);this.setAttribute("position",new Float32BufferAttribute(vertices,3));this.setAttribute("normal",new Float32BufferAttribute(normals,3));this.setAttribute("uv",new Float32BufferAttribute(uvs,2));function generateTorso(){const normal=new Vector3;const vertex=new Vector3;let groupCount=0;const slope=(radiusBottom-radiusTop)/height;for(let y=0;y<=heightSegments;y++){const indexRow=[];const v=y/heightSegments;const radius=v*(radiusBottom-radiusTop)+radiusTop;for(let x=0;x<=radialSegments;x++){const u=x/radialSegments;const theta=u*thetaLength+thetaStart;const sinTheta=Math.sin(theta);const cosTheta=Math.cos(theta);vertex.x=radius*sinTheta;vertex.y=-v*height+halfHeight;vertex.z=radius*cosTheta;vertices.push(vertex.x,vertex.y,vertex.z);normal.set(sinTheta,slope,cosTheta).normalize();normals.push(normal.x,normal.y,normal.z);uvs.push(u,1-v);indexRow.push(index++)}indexArray.push(indexRow)}for(let x=0;x0||y!==0){indices.push(a,b,d);groupCount+=3}if(radiusBottom>0||y!==heightSegments-1){indices.push(b,c,d);groupCount+=3}}}scope.addGroup(groupStart,groupCount,0);groupStart+=groupCount}function generateCap(top){const centerIndexStart=index;const uv=new Vector2;const vertex=new Vector3;let groupCount=0;const radius=top===true?radiusTop:radiusBottom;const sign=top===true?1:-1;for(let x=1;x<=radialSegments;x++){vertices.push(0,halfHeight*sign,0);normals.push(0,sign,0);uvs.push(0.5,0.5);index++}const centerIndexEnd=index;for(let x=0;x<=radialSegments;x++){const u=x/radialSegments;const theta=u*thetaLength+thetaStart;const cosTheta=Math.cos(theta);const sinTheta=Math.sin(theta);vertex.x=radius*sinTheta;vertex.y=halfHeight*sign;vertex.z=radius*cosTheta;vertices.push(vertex.x,vertex.y,vertex.z);normals.push(0,sign,0);uv.x=cosTheta*0.5+0.5;uv.y=sinTheta*0.5*sign+0.5;uvs.push(uv.x,uv.y);index++}for(let x=0;x0.9&&min<0.1){if(x0<0.2)uvBuffer[i+0]+=1;if(x1<0.2)uvBuffer[i+2]+=1;if(x2<0.2)uvBuffer[i+4]+=1}}}function pushVertex(vertex){vertexBuffer.push(vertex.x,vertex.y,vertex.z)}function getVertexByIndex(index,vertex){const stride=index*3;vertex.x=vertices[stride+0];vertex.y=vertices[stride+1];vertex.z=vertices[stride+2]}function correctUVs(){const a=new Vector3;const b=new Vector3;const c=new Vector3;const centroid=new Vector3;const uvA=new Vector2;const uvB=new Vector2;const uvC=new Vector2;for(let i=0,j=0;i0){high=i-1}else{high=i;break}}i=high;if(arcLengths[i]===targetArcLength){return i/(il-1)}const lengthBefore=arcLengths[i];const lengthAfter=arcLengths[i+1];const segmentLength=lengthAfter-lengthBefore;const segmentFraction=(targetArcLength-lengthBefore)/segmentLength;const t=(i+segmentFraction)/(il-1);return t}getTangent(t,optionalTarget){const delta=0.0001;let t1=t-delta;let t2=t+delta;if(t1<0)t1=0;if(t2>1)t2=1;const pt1=this.getPoint(t1);const pt2=this.getPoint(t2);const tangent=optionalTarget||(pt1.isVector2?new Vector2:new Vector3);tangent.copy(pt2).sub(pt1).normalize();return tangent}getTangentAt(u,optionalTarget){const t=this.getUtoTmapping(u);return this.getTangent(t,optionalTarget)}computeFrenetFrames(segments,closed=false){const normal=new Vector3;const tangents=[];const normals=[];const binormals=[];const vec=new Vector3;const mat=new Matrix4;for(let i=0;i<=segments;i++){const u=i/segments;tangents[i]=this.getTangentAt(u,new Vector3)}normals[0]=new Vector3;binormals[0]=new Vector3;let min=Number.MAX_VALUE;const tx=Math.abs(tangents[0].x);const ty=Math.abs(tangents[0].y);const tz=Math.abs(tangents[0].z);if(tx<=min){min=tx;normal.set(1,0,0)}if(ty<=min){min=ty;normal.set(0,1,0)}if(tz<=min){normal.set(0,0,1)}vec.crossVectors(tangents[0],normal).normalize();normals[0].crossVectors(tangents[0],vec);binormals[0].crossVectors(tangents[0],normals[0]);for(let i=1;i<=segments;i++){normals[i]=normals[i-1].clone();binormals[i]=binormals[i-1].clone();vec.crossVectors(tangents[i-1],tangents[i]);if(vec.length()>Number.EPSILON){vec.normalize();const theta=Math.acos(clamp(tangents[i-1].dot(tangents[i]),-1,1));normals[i].applyMatrix4(mat.makeRotationAxis(vec,theta))}binormals[i].crossVectors(tangents[i],normals[i])}if(closed===true){let theta=Math.acos(clamp(normals[0].dot(normals[segments]),-1,1));theta/=segments;if(tangents[0].dot(vec.crossVectors(normals[0],normals[segments]))>0){theta=-theta}for(let i=1;i<=segments;i++){normals[i].applyMatrix4(mat.makeRotationAxis(tangents[i],theta*i));binormals[i].crossVectors(tangents[i],normals[i])}}return{tangents:tangents,normals:normals,binormals:binormals}}clone(){return new this.constructor().copy(this)}copy(source){this.arcLengthDivisions=source.arcLengthDivisions;return this}toJSON(){const data={metadata:{version:4.7,type:"Curve",generator:"Curve.toJSON"}};data.arcLengthDivisions=this.arcLengthDivisions;data.type=this.type;return data}fromJSON(json){this.arcLengthDivisions=json.arcLengthDivisions;return this}}class EllipseCurve extends Curve{constructor(aX=0,aY=0,xRadius=1,yRadius=1,aStartAngle=0,aEndAngle=Math.PI*2,aClockwise=false,aRotation=0){super();this.isEllipseCurve=true;this.type="EllipseCurve";this.aX=aX;this.aY=aY;this.xRadius=xRadius;this.yRadius=yRadius;this.aStartAngle=aStartAngle;this.aEndAngle=aEndAngle;this.aClockwise=aClockwise;this.aRotation=aRotation}getPoint(t,optionalTarget=new Vector2){const point=optionalTarget;const twoPi=Math.PI*2;let deltaAngle=this.aEndAngle-this.aStartAngle;const samePoints=Math.abs(deltaAngle)twoPi)deltaAngle-=twoPi;if(deltaAngle0?0:(Math.floor(Math.abs(intPoint)/l)+1)*l}else if(weight===0&&intPoint===l-1){intPoint=l-2;weight=1}let p0,p3;if(this.closed||intPoint>0){p0=points[(intPoint-1)%l]}else{tmp.subVectors(points[0],points[1]).add(points[0]);p0=tmp}const p1=points[intPoint%l];const p2=points[(intPoint+1)%l];if(this.closed||intPoint+2points.length-2?points.length-1:intPoint+1];const p3=points[intPoint>points.length-3?points.length-1:intPoint+2];point.set(CatmullRom(weight,p0.x,p1.x,p2.x,p3.x),CatmullRom(weight,p0.y,p1.y,p2.y,p3.y));return point}copy(source){super.copy(source);this.points=[];for(let i=0,l=source.points.length;i=d){const diff=curveLengths[i]-d;const curve=this.curves[i];const segmentLength=curve.getLength();const u=segmentLength===0?0:1-diff/segmentLength;return curve.getPointAt(u,optionalTarget)}i++}return null}getLength(){const lens=this.getCurveLengths();return lens[lens.length-1]}updateArcLengths(){this.needsUpdate=true;this.cacheLengths=null;this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length){return this.cacheLengths}const lengths=[];let sums=0;for(let i=0,l=this.curves.length;i1&&!points[points.length-1].equals(points[0])){points.push(points[0])}return points}copy(source){super.copy(source);this.curves=[];for(let i=0,l=source.curves.length;i0){const firstPoint=curve.getPoint(0);if(!firstPoint.equals(this.currentPoint)){this.lineTo(firstPoint.x,firstPoint.y)}}this.curves.push(curve);const lastPoint=curve.getPoint(1);this.currentPoint.copy(lastPoint);return this}copy(source){super.copy(source);this.currentPoint.copy(source.currentPoint);return this}toJSON(){const data=super.toJSON();data.currentPoint=this.currentPoint.toArray();return data}fromJSON(json){super.fromJSON(json);this.currentPoint.fromArray(json.currentPoint);return this}}class Shape extends Path{constructor(points){super(points);this.uuid=generateUUID();this.type="Shape";this.holes=[]}getPointsHoles(divisions){const holesPts=[];for(let i=0,l=this.holes.length;i80*dim){minX=data[0];minY=data[1];let maxX=minX;let maxY=minY;for(let i=dim;imaxX)maxX=x;if(y>maxY)maxY=y}invSize=Math.max(maxX-minX,maxY-minY);invSize=invSize!==0?32767/invSize:0}earcutLinked(outerNode,triangles,dim,minX,minY,invSize,0);return triangles}function linkedList(data,start,end,dim,clockwise){let last;if(clockwise===signedArea(data,start,end,dim)>0){for(let i=start;i=start;i-=dim)last=insertNode(i/dim|0,data[i],data[i+1],last)}if(last&&equals(last,last.next)){removeNode(last);last=last.next}return last}function filterPoints(start,end){if(!start)return start;if(!end)end=start;let p=start,again;do{again=false;if(!p.steiner&&(equals(p,p.next)||area(p.prev,p,p.next)===0)){removeNode(p);p=end=p.prev;if(p===p.next)break;again=true}else{p=p.next}}while(again||p!==end);return end}function earcutLinked(ear,triangles,dim,minX,minY,invSize,pass){if(!ear)return;if(!pass&&invSize)indexCurve(ear,minX,minY,invSize);let stop=ear;while(ear.prev!==ear.next){const prev=ear.prev;const next=ear.next;if(invSize?isEarHashed(ear,minX,minY,invSize):isEar(ear)){triangles.push(prev.i,ear.i,next.i);removeNode(ear);ear=next.next;stop=next.next;continue}ear=next;if(ear===stop){if(!pass){earcutLinked(filterPoints(ear),triangles,dim,minX,minY,invSize,1)}else if(pass===1){ear=cureLocalIntersections(filterPoints(ear),triangles);earcutLinked(ear,triangles,dim,minX,minY,invSize,2)}else if(pass===2){splitEarcut(ear,triangles,dim,minX,minY,invSize)}break}}}function isEar(ear){const a=ear.prev,b=ear,c=ear.next;if(area(a,b,c)>=0)return false;const ax=a.x,bx=b.x,cx=c.x,ay=a.y,by=b.y,cy=c.y;const x0=Math.min(ax,bx,cx),y0=Math.min(ay,by,cy),x1=Math.max(ax,bx,cx),y1=Math.max(ay,by,cy);let p=c.next;while(p!==a){if(p.x>=x0&&p.x<=x1&&p.y>=y0&&p.y<=y1&&pointInTriangleExceptFirst(ax,ay,bx,by,cx,cy,p.x,p.y)&&area(p.prev,p,p.next)>=0)return false;p=p.next}return true}function isEarHashed(ear,minX,minY,invSize){const a=ear.prev,b=ear,c=ear.next;if(area(a,b,c)>=0)return false;const ax=a.x,bx=b.x,cx=c.x,ay=a.y,by=b.y,cy=c.y;const x0=Math.min(ax,bx,cx),y0=Math.min(ay,by,cy),x1=Math.max(ax,bx,cx),y1=Math.max(ay,by,cy);const minZ=zOrder(x0,y0,minX,minY,invSize),maxZ=zOrder(x1,y1,minX,minY,invSize);let p=ear.prevZ,n=ear.nextZ;while(p&&p.z>=minZ&&n&&n.z<=maxZ){if(p.x>=x0&&p.x<=x1&&p.y>=y0&&p.y<=y1&&p!==a&&p!==c&&pointInTriangleExceptFirst(ax,ay,bx,by,cx,cy,p.x,p.y)&&area(p.prev,p,p.next)>=0)return false;p=p.prevZ;if(n.x>=x0&&n.x<=x1&&n.y>=y0&&n.y<=y1&&n!==a&&n!==c&&pointInTriangleExceptFirst(ax,ay,bx,by,cx,cy,n.x,n.y)&&area(n.prev,n,n.next)>=0)return false;n=n.nextZ}while(p&&p.z>=minZ){if(p.x>=x0&&p.x<=x1&&p.y>=y0&&p.y<=y1&&p!==a&&p!==c&&pointInTriangleExceptFirst(ax,ay,bx,by,cx,cy,p.x,p.y)&&area(p.prev,p,p.next)>=0)return false;p=p.prevZ}while(n&&n.z<=maxZ){if(n.x>=x0&&n.x<=x1&&n.y>=y0&&n.y<=y1&&n!==a&&n!==c&&pointInTriangleExceptFirst(ax,ay,bx,by,cx,cy,n.x,n.y)&&area(n.prev,n,n.next)>=0)return false;n=n.nextZ}return true}function cureLocalIntersections(start,triangles){let p=start;do{const a=p.prev,b=p.next.next;if(!equals(a,b)&&intersects(a,p,p.next,b)&&locallyInside(a,b)&&locallyInside(b,a)){triangles.push(a.i,p.i,b.i);removeNode(p);removeNode(p.next);p=start=b}p=p.next}while(p!==start);return filterPoints(p)}function splitEarcut(start,triangles,dim,minX,minY,invSize){let a=start;do{let b=a.next.next;while(b!==a.prev){if(a.i!==b.i&&isValidDiagonal(a,b)){let c=splitPolygon(a,b);a=filterPoints(a,a.next);c=filterPoints(c,c.next);earcutLinked(a,triangles,dim,minX,minY,invSize,0);earcutLinked(c,triangles,dim,minX,minY,invSize,0);return}b=b.next}a=a.next}while(a!==start)}function eliminateHoles(data,holeIndices,outerNode,dim){const queue=[];for(let i=0,len=holeIndices.length;i=p.next.y&&p.next.y!==p.y){const x=p.x+(hy-p.y)*(p.next.x-p.x)/(p.next.y-p.y);if(x<=hx&&x>qx){qx=x;m=p.x=p.x&&p.x>=mx&&hx!==p.x&&pointInTriangle(hym.x||p.x===m.x&§orContainsSector(m,p)))){m=p;tanMin=tan}}p=p.next}while(p!==stop);return m}function sectorContainsSector(m,p){return area(m.prev,m,p.prev)<0&&area(p.next,m,m.next)<0}function indexCurve(start,minX,minY,invSize){let p=start;do{if(p.z===0)p.z=zOrder(p.x,p.y,minX,minY,invSize);p.prevZ=p.prev;p.nextZ=p.next;p=p.next}while(p!==start);p.prevZ.nextZ=null;p.prevZ=null;sortLinked(p)}function sortLinked(list){let numMerges;let inSize=1;do{let p=list;let e;list=null;let tail=null;numMerges=0;while(p){numMerges++;let q=p;let pSize=0;for(let i=0;i0||qSize>0&&q){if(pSize!==0&&(qSize===0||!q||p.z<=q.z)){e=p;p=p.nextZ;pSize--}else{e=q;q=q.nextZ;qSize--}if(tail)tail.nextZ=e;else list=e;e.prevZ=tail;tail=e}p=q}tail.nextZ=null;inSize*=2}while(numMerges>1);return list}function zOrder(x,y,minX,minY,invSize){x=(x-minX)*invSize|0;y=(y-minY)*invSize|0;x=(x|x<<8)&16711935;x=(x|x<<4)&252645135;x=(x|x<<2)&858993459;x=(x|x<<1)&1431655765;y=(y|y<<8)&16711935;y=(y|y<<4)&252645135;y=(y|y<<2)&858993459;y=(y|y<<1)&1431655765;return x|y<<1}function getLeftmost(start){let p=start,leftmost=start;do{if(p.x=(ax-px)*(cy-py)&&(ax-px)*(by-py)>=(bx-px)*(ay-py)&&(bx-px)*(cy-py)>=(cx-px)*(by-py)}function pointInTriangleExceptFirst(ax,ay,bx,by,cx,cy,px,py){return!(ax===px&&ay===py)&&pointInTriangle(ax,ay,bx,by,cx,cy,px,py)}function isValidDiagonal(a,b){return a.next.i!==b.i&&a.prev.i!==b.i&&!intersectsPolygon(a,b)&&(locallyInside(a,b)&&locallyInside(b,a)&&middleInside(a,b)&&(area(a.prev,a,b.prev)||area(a,b.prev,b))||equals(a,b)&&area(a.prev,a,a.next)>0&&area(b.prev,b,b.next)>0)}function area(p,q,r){return(q.y-p.y)*(r.x-q.x)-(q.x-p.x)*(r.y-q.y)}function equals(p1,p2){return p1.x===p2.x&&p1.y===p2.y}function intersects(p1,q1,p2,q2){const o1=sign(area(p1,q1,p2));const o2=sign(area(p1,q1,q2));const o3=sign(area(p2,q2,p1));const o4=sign(area(p2,q2,q1));if(o1!==o2&&o3!==o4)return true;if(o1===0&&onSegment(p1,p2,q1))return true;if(o2===0&&onSegment(p1,q2,q1))return true;if(o3===0&&onSegment(p2,p1,q2))return true;if(o4===0&&onSegment(p2,q1,q2))return true;return false}function onSegment(p,q,r){return q.x<=Math.max(p.x,r.x)&&q.x>=Math.min(p.x,r.x)&&q.y<=Math.max(p.y,r.y)&&q.y>=Math.min(p.y,r.y)}function sign(num){return num>0?1:num<0?-1:0}function intersectsPolygon(a,b){let p=a;do{if(p.i!==a.i&&p.next.i!==a.i&&p.i!==b.i&&p.next.i!==b.i&&intersects(p,p.next,a,b))return true;p=p.next}while(p!==a);return false}function locallyInside(a,b){return area(a.prev,a,a.next)<0?area(a,b,a.next)>=0&&area(a,a.prev,b)>=0:area(a,b,a.prev)<0||area(a,a.next,b)<0}function middleInside(a,b){let p=a;let inside=false;const px=(a.x+b.x)/2;const py=(a.y+b.y)/2;do{if(p.y>py!==p.next.y>py&&p.next.y!==p.y&&px<(p.next.x-p.x)*(py-p.y)/(p.next.y-p.y)+p.x)inside=!inside;p=p.next}while(p!==a);return inside}function splitPolygon(a,b){const a2=createNode(a.i,a.x,a.y),b2=createNode(b.i,b.x,b.y),an=a.next,bp=b.prev;a.next=b;b.prev=a;a2.next=an;an.prev=a2;b2.next=a2;a2.prev=b2;bp.next=b2;b2.prev=bp;return b2}function insertNode(i,x,y,last){const p=createNode(i,x,y);if(!last){p.prev=p;p.next=p}else{p.next=last.next;p.prev=last;last.next.prev=p;last.next=p}return p}function removeNode(p){p.next.prev=p.prev;p.prev.next=p.next;if(p.prevZ)p.prevZ.nextZ=p.nextZ;if(p.nextZ)p.nextZ.prevZ=p.prevZ}function createNode(i,x,y){return{i,x,y,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:false}}function signedArea(data,start,end,dim){let sum=0;for(let i=start,j=end-dim;i2&&points[l-1].equals(points[0])){points.pop()}}function addContour(vertices,contour){for(let i=0;iNumber.EPSILON){const v_prev_len=Math.sqrt(v_prev_lensq);const v_next_len=Math.sqrt(v_next_x*v_next_x+v_next_y*v_next_y);const ptPrevShift_x=inPrev.x-v_prev_y/v_prev_len;const ptPrevShift_y=inPrev.y+v_prev_x/v_prev_len;const ptNextShift_x=inNext.x-v_next_y/v_next_len;const ptNextShift_y=inNext.y+v_next_x/v_next_len;const sf=((ptNextShift_x-ptPrevShift_x)*v_next_y-(ptNextShift_y-ptPrevShift_y)*v_next_x)/(v_prev_x*v_next_y-v_prev_y*v_next_x);v_trans_x=ptPrevShift_x+v_prev_x*sf-inPt.x;v_trans_y=ptPrevShift_y+v_prev_y*sf-inPt.y;const v_trans_lensq=v_trans_x*v_trans_x+v_trans_y*v_trans_y;if(v_trans_lensq<=2){return new Vector2(v_trans_x,v_trans_y)}else{shrink_by=Math.sqrt(v_trans_lensq/2)}}else{let direction_eq=false;if(v_prev_x>Number.EPSILON){if(v_next_x>Number.EPSILON){direction_eq=true}}else{if(v_prev_x<-Number.EPSILON){if(v_next_x<-Number.EPSILON){direction_eq=true}}else{if(Math.sign(v_prev_y)===Math.sign(v_next_y)){direction_eq=true}}}if(direction_eq){v_trans_x=-v_prev_y;v_trans_y=v_prev_x;shrink_by=Math.sqrt(v_prev_lensq)}else{v_trans_x=v_prev_x;v_trans_y=v_prev_y;shrink_by=Math.sqrt(v_prev_lensq/2)}}return new Vector2(v_trans_x/shrink_by,v_trans_y/shrink_by)}const contourMovements=[];for(let i=0,il=contour.length,j=il-1,k=i+1;i=0;b--){const t=b/bevelSegments;const z=bevelThickness*Math.cos(t*Math.PI/2);const bs=bevelSize*Math.sin(t*Math.PI/2)+bevelOffset;for(let i=0,il=contour.length;i=0){const j=i;let k=i-1;if(k<0)k=contour.length-1;for(let s=0,sl=steps+bevelSegments*2;s0)indices.push(a,b,d);if(iy!==heightSegments-1||thetaEnd0!==value>0){this.version++}this._anisotropy=value}get clearcoat(){return this._clearcoat}set clearcoat(value){if(this._clearcoat>0!==value>0){this.version++}this._clearcoat=value}get iridescence(){return this._iridescence}set iridescence(value){if(this._iridescence>0!==value>0){this.version++}this._iridescence=value}get dispersion(){return this._dispersion}set dispersion(value){if(this._dispersion>0!==value>0){this.version++}this._dispersion=value}get sheen(){return this._sheen}set sheen(value){if(this._sheen>0!==value>0){this.version++}this._sheen=value}get transmission(){return this._transmission}set transmission(value){if(this._transmission>0!==value>0){this.version++}this._transmission=value}copy(source){super.copy(source);this.defines={"STANDARD":"","PHYSICAL":""};this.anisotropy=source.anisotropy;this.anisotropyRotation=source.anisotropyRotation;this.anisotropyMap=source.anisotropyMap;this.clearcoat=source.clearcoat;this.clearcoatMap=source.clearcoatMap;this.clearcoatRoughness=source.clearcoatRoughness;this.clearcoatRoughnessMap=source.clearcoatRoughnessMap;this.clearcoatNormalMap=source.clearcoatNormalMap;this.clearcoatNormalScale.copy(source.clearcoatNormalScale);this.dispersion=source.dispersion;this.ior=source.ior;this.iridescence=source.iridescence;this.iridescenceMap=source.iridescenceMap;this.iridescenceIOR=source.iridescenceIOR;this.iridescenceThicknessRange=[...source.iridescenceThicknessRange];this.iridescenceThicknessMap=source.iridescenceThicknessMap;this.sheen=source.sheen;this.sheenColor.copy(source.sheenColor);this.sheenColorMap=source.sheenColorMap;this.sheenRoughness=source.sheenRoughness;this.sheenRoughnessMap=source.sheenRoughnessMap;this.transmission=source.transmission;this.transmissionMap=source.transmissionMap;this.thickness=source.thickness;this.thicknessMap=source.thicknessMap;this.attenuationDistance=source.attenuationDistance;this.attenuationColor.copy(source.attenuationColor);this.specularIntensity=source.specularIntensity;this.specularIntensityMap=source.specularIntensityMap;this.specularColor.copy(source.specularColor);this.specularColorMap=source.specularColorMap;return this}}class MeshPhongMaterial extends Material{constructor(parameters){super();this.isMeshPhongMaterial=true;this.type="MeshPhongMaterial";this.color=new Color(16777215);this.specular=new Color(1118481);this.shininess=30;this.map=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new Color(0);this.emissiveIntensity=1;this.emissiveMap=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=TangentSpaceNormalMap;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.specularMap=null;this.alphaMap=null;this.envMap=null;this.envMapRotation=new Euler;this.combine=MultiplyOperation;this.reflectivity=1;this.refractionRatio=0.98;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap="round";this.wireframeLinejoin="round";this.flatShading=false;this.fog=true;this.setValues(parameters)}copy(source){super.copy(source);this.color.copy(source.color);this.specular.copy(source.specular);this.shininess=source.shininess;this.map=source.map;this.lightMap=source.lightMap;this.lightMapIntensity=source.lightMapIntensity;this.aoMap=source.aoMap;this.aoMapIntensity=source.aoMapIntensity;this.emissive.copy(source.emissive);this.emissiveMap=source.emissiveMap;this.emissiveIntensity=source.emissiveIntensity;this.bumpMap=source.bumpMap;this.bumpScale=source.bumpScale;this.normalMap=source.normalMap;this.normalMapType=source.normalMapType;this.normalScale.copy(source.normalScale);this.displacementMap=source.displacementMap;this.displacementScale=source.displacementScale;this.displacementBias=source.displacementBias;this.specularMap=source.specularMap;this.alphaMap=source.alphaMap;this.envMap=source.envMap;this.envMapRotation.copy(source.envMapRotation);this.combine=source.combine;this.reflectivity=source.reflectivity;this.refractionRatio=source.refractionRatio;this.wireframe=source.wireframe;this.wireframeLinewidth=source.wireframeLinewidth;this.wireframeLinecap=source.wireframeLinecap;this.wireframeLinejoin=source.wireframeLinejoin;this.flatShading=source.flatShading;this.fog=source.fog;return this}}class MeshToonMaterial extends Material{constructor(parameters){super();this.isMeshToonMaterial=true;this.defines={"TOON":""};this.type="MeshToonMaterial";this.color=new Color(16777215);this.map=null;this.gradientMap=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new Color(0);this.emissiveIntensity=1;this.emissiveMap=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=TangentSpaceNormalMap;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap="round";this.wireframeLinejoin="round";this.fog=true;this.setValues(parameters)}copy(source){super.copy(source);this.color.copy(source.color);this.map=source.map;this.gradientMap=source.gradientMap;this.lightMap=source.lightMap;this.lightMapIntensity=source.lightMapIntensity;this.aoMap=source.aoMap;this.aoMapIntensity=source.aoMapIntensity;this.emissive.copy(source.emissive);this.emissiveMap=source.emissiveMap;this.emissiveIntensity=source.emissiveIntensity;this.bumpMap=source.bumpMap;this.bumpScale=source.bumpScale;this.normalMap=source.normalMap;this.normalMapType=source.normalMapType;this.normalScale.copy(source.normalScale);this.displacementMap=source.displacementMap;this.displacementScale=source.displacementScale;this.displacementBias=source.displacementBias;this.alphaMap=source.alphaMap;this.wireframe=source.wireframe;this.wireframeLinewidth=source.wireframeLinewidth;this.wireframeLinecap=source.wireframeLinecap;this.wireframeLinejoin=source.wireframeLinejoin;this.fog=source.fog;return this}}class MeshNormalMaterial extends Material{constructor(parameters){super();this.isMeshNormalMaterial=true;this.type="MeshNormalMaterial";this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=TangentSpaceNormalMap;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=false;this.wireframeLinewidth=1;this.flatShading=false;this.setValues(parameters)}copy(source){super.copy(source);this.bumpMap=source.bumpMap;this.bumpScale=source.bumpScale;this.normalMap=source.normalMap;this.normalMapType=source.normalMapType;this.normalScale.copy(source.normalScale);this.displacementMap=source.displacementMap;this.displacementScale=source.displacementScale;this.displacementBias=source.displacementBias;this.wireframe=source.wireframe;this.wireframeLinewidth=source.wireframeLinewidth;this.flatShading=source.flatShading;return this}}class MeshLambertMaterial extends Material{constructor(parameters){super();this.isMeshLambertMaterial=true;this.type="MeshLambertMaterial";this.color=new Color(16777215);this.map=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new Color(0);this.emissiveIntensity=1;this.emissiveMap=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=TangentSpaceNormalMap;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.specularMap=null;this.alphaMap=null;this.envMap=null;this.envMapRotation=new Euler;this.combine=MultiplyOperation;this.reflectivity=1;this.refractionRatio=0.98;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap="round";this.wireframeLinejoin="round";this.flatShading=false;this.fog=true;this.setValues(parameters)}copy(source){super.copy(source);this.color.copy(source.color);this.map=source.map;this.lightMap=source.lightMap;this.lightMapIntensity=source.lightMapIntensity;this.aoMap=source.aoMap;this.aoMapIntensity=source.aoMapIntensity;this.emissive.copy(source.emissive);this.emissiveMap=source.emissiveMap;this.emissiveIntensity=source.emissiveIntensity;this.bumpMap=source.bumpMap;this.bumpScale=source.bumpScale;this.normalMap=source.normalMap;this.normalMapType=source.normalMapType;this.normalScale.copy(source.normalScale);this.displacementMap=source.displacementMap;this.displacementScale=source.displacementScale;this.displacementBias=source.displacementBias;this.specularMap=source.specularMap;this.alphaMap=source.alphaMap;this.envMap=source.envMap;this.envMapRotation.copy(source.envMapRotation);this.combine=source.combine;this.reflectivity=source.reflectivity;this.refractionRatio=source.refractionRatio;this.wireframe=source.wireframe;this.wireframeLinewidth=source.wireframeLinewidth;this.wireframeLinecap=source.wireframeLinecap;this.wireframeLinejoin=source.wireframeLinejoin;this.flatShading=source.flatShading;this.fog=source.fog;return this}}class MeshDepthMaterial extends Material{constructor(parameters){super();this.isMeshDepthMaterial=true;this.type="MeshDepthMaterial";this.depthPacking=BasicDepthPacking;this.map=null;this.alphaMap=null;this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=false;this.wireframeLinewidth=1;this.setValues(parameters)}copy(source){super.copy(source);this.depthPacking=source.depthPacking;this.map=source.map;this.alphaMap=source.alphaMap;this.displacementMap=source.displacementMap;this.displacementScale=source.displacementScale;this.displacementBias=source.displacementBias;this.wireframe=source.wireframe;this.wireframeLinewidth=source.wireframeLinewidth;return this}}class MeshDistanceMaterial extends Material{constructor(parameters){super();this.isMeshDistanceMaterial=true;this.type="MeshDistanceMaterial";this.map=null;this.alphaMap=null;this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.setValues(parameters)}copy(source){super.copy(source);this.map=source.map;this.alphaMap=source.alphaMap;this.displacementMap=source.displacementMap;this.displacementScale=source.displacementScale;this.displacementBias=source.displacementBias;return this}}class MeshMatcapMaterial extends Material{constructor(parameters){super();this.isMeshMatcapMaterial=true;this.defines={"MATCAP":""};this.type="MeshMatcapMaterial";this.color=new Color(16777215);this.matcap=null;this.map=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=TangentSpaceNormalMap;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.wireframe=false;this.wireframeLinewidth=1;this.flatShading=false;this.fog=true;this.setValues(parameters)}copy(source){super.copy(source);this.defines={"MATCAP":""};this.color.copy(source.color);this.matcap=source.matcap;this.map=source.map;this.bumpMap=source.bumpMap;this.bumpScale=source.bumpScale;this.normalMap=source.normalMap;this.normalMapType=source.normalMapType;this.normalScale.copy(source.normalScale);this.displacementMap=source.displacementMap;this.displacementScale=source.displacementScale;this.displacementBias=source.displacementBias;this.alphaMap=source.alphaMap;this.wireframe=source.wireframe;this.wireframeLinewidth=source.wireframeLinewidth;this.flatShading=source.flatShading;this.fog=source.fog;return this}}class LineDashedMaterial extends LineBasicMaterial{constructor(parameters){super();this.isLineDashedMaterial=true;this.type="LineDashedMaterial";this.scale=1;this.dashSize=3;this.gapSize=1;this.setValues(parameters)}copy(source){super.copy(source);this.scale=source.scale;this.dashSize=source.dashSize;this.gapSize=source.gapSize;return this}}function convertArray(array,type){if(!array||array.constructor===type)return array;if(typeof type.BYTES_PER_ELEMENT==="number"){return new type(array)}return Array.prototype.slice.call(array)}function getKeyframeOrder(times){function compareTime(i,j){return times[i]-times[j]}const n=times.length;const result=new Array(n);for(let i=0;i!==n;++i)result[i]=i;result.sort(compareTime);return result}function sortedArray(values,stride,order){const nValues=values.length;const result=new values.constructor(nValues);for(let i=0,dstOffset=0;dstOffset!==nValues;++i){const srcOffset=order[i]*stride;for(let j=0;j!==stride;++j){result[dstOffset++]=values[srcOffset+j]}}return result}function flattenJSON(jsonKeys,times,values,valuePropertyName){let i=1,key=jsonKeys[0];while(key!==undefined&&key[valuePropertyName]===undefined){key=jsonKeys[i++]}if(key===undefined)return;let value=key[valuePropertyName];if(value===undefined)return;if(Array.isArray(value)){do{value=key[valuePropertyName];if(value!==undefined){times.push(key.time);values.push(...value)}key=jsonKeys[i++]}while(key!==undefined)}else if(value.toArray!==undefined){do{value=key[valuePropertyName];if(value!==undefined){times.push(key.time);value.toArray(values,values.length)}key=jsonKeys[i++]}while(key!==undefined)}else{do{value=key[valuePropertyName];if(value!==undefined){times.push(key.time);values.push(value)}key=jsonKeys[i++]}while(key!==undefined)}}function subclip(sourceClip,name,startFrame,endFrame,fps=30){const clip=sourceClip.clone();clip.name=name;const tracks=[];for(let i=0;i=endFrame)continue;times.push(track.times[j]);for(let k=0;kclip.tracks[i].times[0]){minStartTime=clip.tracks[i].times[0]}}for(let i=0;i=referenceTrack.times[lastIndex]){const startIndex=lastIndex*referenceValueSize+referenceOffset;const endIndex=startIndex+referenceValueSize-referenceOffset;referenceValue=referenceTrack.values.slice(startIndex,endIndex)}else{const interpolant=referenceTrack.createInterpolant();const startIndex=referenceOffset;const endIndex=referenceValueSize-referenceOffset;interpolant.evaluate(referenceTime);referenceValue=interpolant.resultBuffer.slice(startIndex,endIndex)}if(referenceTrackType==="quaternion"){const referenceQuat=new Quaternion().fromArray(referenceValue).normalize().conjugate();referenceQuat.toArray(referenceValue)}const numTimes=targetTrack.times.length;for(let j=0;j=t0)){const t1global=pp[1];if(t=t0){break seek}}right=i1;i1=0;break linear_scan}break validate_interval}while(i1>>1;if(tendTime){--to}++to;if(from!==0||to!==nKeys){if(from>=to){to=Math.max(to,1);from=to-1}const stride=this.getValueSize();this.times=times.slice(from,to);this.values=this.values.slice(from*stride,to*stride)}return this}validate(){let valid=true;const valueSize=this.getValueSize();if(valueSize-Math.floor(valueSize)!==0){error("KeyframeTrack: Invalid value size in track.",this);valid=false}const times=this.times,values=this.values,nKeys=times.length;if(nKeys===0){error("KeyframeTrack: Track is empty.",this);valid=false}let prevTime=null;for(let i=0;i!==nKeys;i++){const currTime=times[i];if(typeof currTime==="number"&&isNaN(currTime)){error("KeyframeTrack: Time is not a valid number.",this,i,currTime);valid=false;break}if(prevTime!==null&&prevTime>currTime){error("KeyframeTrack: Out of order keys.",this,i,currTime,prevTime);valid=false;break}prevTime=currTime}if(values!==undefined){if(isTypedArray(values)){for(let i=0,n=values.length;i!==n;++i){const value=values[i];if(isNaN(value)){error("KeyframeTrack: Value is not a valid number.",this,i,value);valid=false;break}}}}return valid}optimize(){const times=this.times.slice(),values=this.values.slice(),stride=this.getValueSize(),smoothInterpolation=this.getInterpolation()===InterpolateSmooth,lastIndex=times.length-1;let writeIndex=1;for(let i=1;i0){times[writeIndex]=times[lastIndex];for(let readOffset=lastIndex*stride,writeOffset=writeIndex*stride,j=0;j!==stride;++j){values[writeOffset+j]=values[readOffset+j]}++writeIndex}if(writeIndex!==times.length){this.times=times.slice(0,writeIndex);this.values=values.slice(0,writeIndex*stride)}else{this.times=times;this.values=values}return this}clone(){const times=this.times.slice();const values=this.values.slice();const TypedKeyframeTrack=this.constructor;const track=new TypedKeyframeTrack(this.name,times,values);track.createInterpolant=this.createInterpolant;return track}}KeyframeTrack.prototype.ValueTypeName="";KeyframeTrack.prototype.TimeBufferType=Float32Array;KeyframeTrack.prototype.ValueBufferType=Float32Array;KeyframeTrack.prototype.DefaultInterpolation=InterpolateLinear;class BooleanKeyframeTrack extends KeyframeTrack{constructor(name,times,values){super(name,times,values)}}BooleanKeyframeTrack.prototype.ValueTypeName="bool";BooleanKeyframeTrack.prototype.ValueBufferType=Array;BooleanKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear=undefined;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=undefined;class ColorKeyframeTrack extends KeyframeTrack{constructor(name,times,values,interpolation){super(name,times,values,interpolation)}}ColorKeyframeTrack.prototype.ValueTypeName="color";class NumberKeyframeTrack extends KeyframeTrack{constructor(name,times,values,interpolation){super(name,times,values,interpolation)}}NumberKeyframeTrack.prototype.ValueTypeName="number";class QuaternionLinearInterpolant extends Interpolant{constructor(parameterPositions,sampleValues,sampleSize,resultBuffer){super(parameterPositions,sampleValues,sampleSize,resultBuffer)}interpolate_(i1,t0,t,t1){const result=this.resultBuffer,values=this.sampleValues,stride=this.valueSize,alpha=(t-t0)/(t1-t0);let offset=i1*stride;for(let end=offset+stride;offset!==end;offset+=4){Quaternion.slerpFlat(result,0,values,offset-stride,values,offset,alpha)}return result}}class QuaternionKeyframeTrack extends KeyframeTrack{constructor(name,times,values,interpolation){super(name,times,values,interpolation)}InterpolantFactoryMethodLinear(result){return new QuaternionLinearInterpolant(this.times,this.values,this.getValueSize(),result)}}QuaternionKeyframeTrack.prototype.ValueTypeName="quaternion";QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=undefined;class StringKeyframeTrack extends KeyframeTrack{constructor(name,times,values){super(name,times,values)}}StringKeyframeTrack.prototype.ValueTypeName="string";StringKeyframeTrack.prototype.ValueBufferType=Array;StringKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete;StringKeyframeTrack.prototype.InterpolantFactoryMethodLinear=undefined;StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=undefined;class VectorKeyframeTrack extends KeyframeTrack{constructor(name,times,values,interpolation){super(name,times,values,interpolation)}}VectorKeyframeTrack.prototype.ValueTypeName="vector";class AnimationClip{constructor(name="",duration=-1,tracks=[],blendMode=NormalAnimationBlendMode){this.name=name;this.tracks=tracks;this.duration=duration;this.blendMode=blendMode;this.uuid=generateUUID();this.userData={};if(this.duration<0){this.resetDuration()}}static parse(json){const tracks=[],jsonTracks=json.tracks,frameTime=1/(json.fps||1);for(let i=0,n=jsonTracks.length;i!==n;++i){tracks.push(parseKeyframeTrack(jsonTracks[i]).scale(frameTime))}const clip=new this(json.name,json.duration,tracks,json.blendMode);clip.uuid=json.uuid;clip.userData=JSON.parse(json.userData||"{}");return clip}static toJSON(clip){const tracks=[],clipTracks=clip.tracks;const json={"name":clip.name,"duration":clip.duration,"tracks":tracks,"uuid":clip.uuid,"blendMode":clip.blendMode,"userData":JSON.stringify(clip.userData)};for(let i=0,n=clipTracks.length;i!==n;++i){tracks.push(KeyframeTrack.toJSON(clipTracks[i]))}return json}static CreateFromMorphTargetSequence(name,morphTargetSequence,fps,noLoop){const numMorphTargets=morphTargetSequence.length;const tracks=[];for(let i=0;i1){const name=parts[1];let animationMorphTargets=animationToMorphTargets[name];if(!animationMorphTargets){animationToMorphTargets[name]=animationMorphTargets=[]}animationMorphTargets.push(morphTarget)}}const clips=[];for(const name in animationToMorphTargets){clips.push(this.CreateFromMorphTargetSequence(name,animationToMorphTargets[name],fps,noLoop))}return clips}static parseAnimation(animation,bones){warn("AnimationClip: parseAnimation() is deprecated and will be removed with r185");if(!animation){error("AnimationClip: No animation in JSONLoader data.");return null}const addNonemptyTrack=function(trackType,trackName,animationKeys,propertyName,destTracks){if(animationKeys.length!==0){const times=[];const values=[];flattenJSON(animationKeys,times,values,propertyName);if(times.length!==0){destTracks.push(new trackType(trackName,times,values))}}};const tracks=[];const clipName=animation.name||"default";const fps=animation.fps||30;const blendMode=animation.blendMode;let duration=animation.length||-1;const hierarchyTracks=animation.hierarchy||[];for(let h=0;h{if(onLoad)onLoad(cached);this.manager.itemEnd(url)},0);return cached}if(loading[url]!==undefined){loading[url].push({onLoad:onLoad,onProgress:onProgress,onError:onError});return}loading[url]=[];loading[url].push({onLoad:onLoad,onProgress:onProgress,onError:onError});const req=new Request(url,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin",signal:typeof AbortSignal.any==="function"?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal});const mimeType=this.mimeType;const responseType=this.responseType;fetch(req).then(response=>{if(response.status===200||response.status===0){if(response.status===0){warn("FileLoader: HTTP Status 0 received.")}if(typeof ReadableStream==="undefined"||response.body===undefined||response.body.getReader===undefined){return response}const callbacks=loading[url];const reader=response.body.getReader();const contentLength=response.headers.get("X-File-Size")||response.headers.get("Content-Length");const total=contentLength?parseInt(contentLength):0;const lengthComputable=total!==0;let loaded=0;const stream=new ReadableStream({start(controller){readData();function readData(){reader.read().then(({done,value})=>{if(done){controller.close()}else{loaded+=value.byteLength;const event=new ProgressEvent("progress",{lengthComputable,loaded,total});for(let i=0,il=callbacks.length;i{controller.error(e)})}}});return new Response(stream)}else{throw new HttpError(`fetch for "${response.url}" responded with ${response.status}: ${response.statusText}`,response)}}).then(response=>{switch(responseType){case"arraybuffer":return response.arrayBuffer();case"blob":return response.blob();case"document":return response.text().then(text=>{const parser=new DOMParser;return parser.parseFromString(text,mimeType)});case"json":return response.json();default:if(mimeType===""){return response.text()}else{const re=/charset="?([^;"\s]*)"?/i;const exec=re.exec(mimeType);const label=exec&&exec[1]?exec[1].toLowerCase():undefined;const decoder=new TextDecoder(label);return response.arrayBuffer().then(ab=>decoder.decode(ab))}}}).then(data=>{Cache.add(`file:${url}`,data);const callbacks=loading[url];delete loading[url];for(let i=0,il=callbacks.length;i{const callbacks=loading[url];if(callbacks===undefined){this.manager.itemError(url);throw err}delete loading[url];for(let i=0,il=callbacks.length;i{this.manager.itemEnd(url)});this.manager.itemStart(url)}setResponseType(value){this.responseType=value;return this}setMimeType(value){this.mimeType=value;return this}abort(){this._abortController.abort();this._abortController=new AbortController;return this}}class AnimationLoader extends Loader{constructor(manager){super(manager)}load(url,onLoad,onProgress,onError){const scope=this;const loader=new FileLoader(this.manager);loader.setPath(this.path);loader.setRequestHeader(this.requestHeader);loader.setWithCredentials(this.withCredentials);loader.load(url,function(text){try{onLoad(scope.parse(JSON.parse(text)))}catch(e){if(onError){onError(e)}else{error(e)}scope.manager.itemError(url)}},onProgress,onError)}parse(json){const animations=[];for(let i=0;i0?true:false}else{material.vertexColors=json.vertexColors}}if(json.uniforms!==undefined){for(const name in json.uniforms){const uniform=json.uniforms[name];material.uniforms[name]={};switch(uniform.type){case"t":material.uniforms[name].value=getTexture(uniform.value);break;case"c":material.uniforms[name].value=new Color().setHex(uniform.value);break;case"v2":material.uniforms[name].value=new Vector2().fromArray(uniform.value);break;case"v3":material.uniforms[name].value=new Vector3().fromArray(uniform.value);break;case"v4":material.uniforms[name].value=new Vector4().fromArray(uniform.value);break;case"m3":material.uniforms[name].value=new Matrix3().fromArray(uniform.value);break;case"m4":material.uniforms[name].value=new Matrix4().fromArray(uniform.value);break;default:material.uniforms[name].value=uniform.value;}}}if(json.defines!==undefined)material.defines=json.defines;if(json.vertexShader!==undefined)material.vertexShader=json.vertexShader;if(json.fragmentShader!==undefined)material.fragmentShader=json.fragmentShader;if(json.glslVersion!==undefined)material.glslVersion=json.glslVersion;if(json.extensions!==undefined){for(const key in json.extensions){material.extensions[key]=json.extensions[key]}}if(json.lights!==undefined)material.lights=json.lights;if(json.clipping!==undefined)material.clipping=json.clipping;if(json.size!==undefined)material.size=json.size;if(json.sizeAttenuation!==undefined)material.sizeAttenuation=json.sizeAttenuation;if(json.map!==undefined)material.map=getTexture(json.map);if(json.matcap!==undefined)material.matcap=getTexture(json.matcap);if(json.alphaMap!==undefined)material.alphaMap=getTexture(json.alphaMap);if(json.bumpMap!==undefined)material.bumpMap=getTexture(json.bumpMap);if(json.bumpScale!==undefined)material.bumpScale=json.bumpScale;if(json.normalMap!==undefined)material.normalMap=getTexture(json.normalMap);if(json.normalMapType!==undefined)material.normalMapType=json.normalMapType;if(json.normalScale!==undefined){let normalScale=json.normalScale;if(Array.isArray(normalScale)===false){normalScale=[normalScale,normalScale]}material.normalScale=new Vector2().fromArray(normalScale)}if(json.displacementMap!==undefined)material.displacementMap=getTexture(json.displacementMap);if(json.displacementScale!==undefined)material.displacementScale=json.displacementScale;if(json.displacementBias!==undefined)material.displacementBias=json.displacementBias;if(json.roughnessMap!==undefined)material.roughnessMap=getTexture(json.roughnessMap);if(json.metalnessMap!==undefined)material.metalnessMap=getTexture(json.metalnessMap);if(json.emissiveMap!==undefined)material.emissiveMap=getTexture(json.emissiveMap);if(json.emissiveIntensity!==undefined)material.emissiveIntensity=json.emissiveIntensity;if(json.specularMap!==undefined)material.specularMap=getTexture(json.specularMap);if(json.specularIntensityMap!==undefined)material.specularIntensityMap=getTexture(json.specularIntensityMap);if(json.specularColorMap!==undefined)material.specularColorMap=getTexture(json.specularColorMap);if(json.envMap!==undefined)material.envMap=getTexture(json.envMap);if(json.envMapRotation!==undefined)material.envMapRotation.fromArray(json.envMapRotation);if(json.envMapIntensity!==undefined)material.envMapIntensity=json.envMapIntensity;if(json.reflectivity!==undefined)material.reflectivity=json.reflectivity;if(json.refractionRatio!==undefined)material.refractionRatio=json.refractionRatio;if(json.lightMap!==undefined)material.lightMap=getTexture(json.lightMap);if(json.lightMapIntensity!==undefined)material.lightMapIntensity=json.lightMapIntensity;if(json.aoMap!==undefined)material.aoMap=getTexture(json.aoMap);if(json.aoMapIntensity!==undefined)material.aoMapIntensity=json.aoMapIntensity;if(json.gradientMap!==undefined)material.gradientMap=getTexture(json.gradientMap);if(json.clearcoatMap!==undefined)material.clearcoatMap=getTexture(json.clearcoatMap);if(json.clearcoatRoughnessMap!==undefined)material.clearcoatRoughnessMap=getTexture(json.clearcoatRoughnessMap);if(json.clearcoatNormalMap!==undefined)material.clearcoatNormalMap=getTexture(json.clearcoatNormalMap);if(json.clearcoatNormalScale!==undefined)material.clearcoatNormalScale=new Vector2().fromArray(json.clearcoatNormalScale);if(json.iridescenceMap!==undefined)material.iridescenceMap=getTexture(json.iridescenceMap);if(json.iridescenceThicknessMap!==undefined)material.iridescenceThicknessMap=getTexture(json.iridescenceThicknessMap);if(json.transmissionMap!==undefined)material.transmissionMap=getTexture(json.transmissionMap);if(json.thicknessMap!==undefined)material.thicknessMap=getTexture(json.thicknessMap);if(json.anisotropyMap!==undefined)material.anisotropyMap=getTexture(json.anisotropyMap);if(json.sheenColorMap!==undefined)material.sheenColorMap=getTexture(json.sheenColorMap);if(json.sheenRoughnessMap!==undefined)material.sheenRoughnessMap=getTexture(json.sheenRoughnessMap);return material}setTextures(value){this.textures=value;return this}createMaterialFromType(type){return MaterialLoader.createMaterialFromType(type)}static createMaterialFromType(type){const materialLib={ShadowMaterial,SpriteMaterial,RawShaderMaterial,ShaderMaterial,PointsMaterial,MeshPhysicalMaterial,MeshStandardMaterial,MeshPhongMaterial,MeshToonMaterial,MeshNormalMaterial,MeshLambertMaterial,MeshDepthMaterial,MeshDistanceMaterial,MeshBasicMaterial,MeshMatcapMaterial,LineDashedMaterial,LineBasicMaterial,Material};return new materialLib[type]}}class LoaderUtils{static extractUrlBase(url){const index=url.lastIndexOf("/");if(index===-1)return"./";return url.slice(0,index+1)}static resolveURL(url,path){if(typeof url!=="string"||url==="")return"";if(/^https?:\/\//i.test(path)&&/^\//.test(url)){path=path.replace(/(^https?:\/\/[^\/]+).*/i,"$1")}if(/^(https?:)?\/\//i.test(url))return url;if(/^data:.*,.*$/i.test(url))return url;if(/^blob:.*$/i.test(url))return url;return path+url}}class InstancedBufferGeometry extends BufferGeometry{constructor(){super();this.isInstancedBufferGeometry=true;this.type="InstancedBufferGeometry";this.instanceCount=Infinity}copy(source){super.copy(source);this.instanceCount=source.instanceCount;return this}toJSON(){const data=super.toJSON();data.instanceCount=this.instanceCount;data.isInstancedBufferGeometry=true;return data}}class BufferGeometryLoader extends Loader{constructor(manager){super(manager)}load(url,onLoad,onProgress,onError){const scope=this;const loader=new FileLoader(scope.manager);loader.setPath(scope.path);loader.setRequestHeader(scope.requestHeader);loader.setWithCredentials(scope.withCredentials);loader.load(url,function(text){try{onLoad(scope.parse(JSON.parse(text)))}catch(e){if(onError){onError(e)}else{error(e)}scope.manager.itemError(url)}},onProgress,onError)}parse(json){const interleavedBufferMap={};const arrayBufferMap={};function getInterleavedBuffer(json,uuid){if(interleavedBufferMap[uuid]!==undefined)return interleavedBufferMap[uuid];const interleavedBuffers=json.interleavedBuffers;const interleavedBuffer=interleavedBuffers[uuid];const buffer=getArrayBuffer(json,interleavedBuffer.buffer);const array=getTypedArray(interleavedBuffer.type,buffer);const ib=new InterleavedBuffer(array,interleavedBuffer.stride);ib.uuid=interleavedBuffer.uuid;interleavedBufferMap[uuid]=ib;return ib}function getArrayBuffer(json,uuid){if(arrayBufferMap[uuid]!==undefined)return arrayBufferMap[uuid];const arrayBuffers=json.arrayBuffers;const arrayBuffer=arrayBuffers[uuid];const ab=new Uint32Array(arrayBuffer).buffer;arrayBufferMap[uuid]=ab;return ab}const geometry=json.isInstancedBufferGeometry?new InstancedBufferGeometry:new BufferGeometry;const index=json.data.index;if(index!==undefined){const typedArray=getTypedArray(index.type,index.array);geometry.setIndex(new BufferAttribute(typedArray,1))}const attributes=json.data.attributes;for(const key in attributes){const attribute=attributes[key];let bufferAttribute;if(attribute.isInterleavedBufferAttribute){const interleavedBuffer=getInterleavedBuffer(json.data,attribute.data);bufferAttribute=new InterleavedBufferAttribute(interleavedBuffer,attribute.itemSize,attribute.offset,attribute.normalized)}else{const typedArray=getTypedArray(attribute.type,attribute.array);const bufferAttributeConstr=attribute.isInstancedBufferAttribute?InstancedBufferAttribute:BufferAttribute;bufferAttribute=new bufferAttributeConstr(typedArray,attribute.itemSize,attribute.normalized)}if(attribute.name!==undefined)bufferAttribute.name=attribute.name;if(attribute.usage!==undefined)bufferAttribute.setUsage(attribute.usage);geometry.setAttribute(key,bufferAttribute)}const morphAttributes=json.data.morphAttributes;if(morphAttributes){for(const key in morphAttributes){const attributeArray=morphAttributes[key];const array=[];for(let i=0,il=attributeArray.length;i0){const manager=new LoadingManager(onLoad);loader=new ImageLoader(manager);loader.setCrossOrigin(this.crossOrigin);for(let i=0,il=json.length;i0){loader=new ImageLoader(this.manager);loader.setCrossOrigin(this.crossOrigin);for(let i=0,il=json.length;i{let box=null;let sphere=null;if(info.boundingBox!==undefined){box=new Box3().fromJSON(info.boundingBox)}if(info.boundingSphere!==undefined){sphere=new Sphere().fromJSON(info.boundingSphere)}return{...info,boundingBox:box,boundingSphere:sphere}});object._instanceInfo=data.instanceInfo;object._availableInstanceIds=data._availableInstanceIds;object._availableGeometryIds=data._availableGeometryIds;object._nextIndexStart=data.nextIndexStart;object._nextVertexStart=data.nextVertexStart;object._geometryCount=data.geometryCount;object._maxInstanceCount=data.maxInstanceCount;object._maxVertexCount=data.maxVertexCount;object._maxIndexCount=data.maxIndexCount;object._geometryInitialized=data.geometryInitialized;object._matricesTexture=getTexture(data.matricesTexture.uuid);object._indirectTexture=getTexture(data.indirectTexture.uuid);if(data.colorsTexture!==undefined){object._colorsTexture=getTexture(data.colorsTexture.uuid)}if(data.boundingSphere!==undefined){object.boundingSphere=new Sphere().fromJSON(data.boundingSphere)}if(data.boundingBox!==undefined){object.boundingBox=new Box3().fromJSON(data.boundingBox)}break;case"LOD":object=new LOD;break;case"Line":object=new Line(getGeometry(data.geometry),getMaterial(data.material));break;case"LineLoop":object=new LineLoop(getGeometry(data.geometry),getMaterial(data.material));break;case"LineSegments":object=new LineSegments(getGeometry(data.geometry),getMaterial(data.material));break;case"PointCloud":case"Points":object=new Points(getGeometry(data.geometry),getMaterial(data.material));break;case"Sprite":object=new Sprite(getMaterial(data.material));break;case"Group":object=new Group;break;case"Bone":object=new Bone;break;default:object=new Object3D;}object.uuid=data.uuid;if(data.name!==undefined)object.name=data.name;if(data.matrix!==undefined){object.matrix.fromArray(data.matrix);if(data.matrixAutoUpdate!==undefined)object.matrixAutoUpdate=data.matrixAutoUpdate;if(object.matrixAutoUpdate)object.matrix.decompose(object.position,object.quaternion,object.scale)}else{if(data.position!==undefined)object.position.fromArray(data.position);if(data.rotation!==undefined)object.rotation.fromArray(data.rotation);if(data.quaternion!==undefined)object.quaternion.fromArray(data.quaternion);if(data.scale!==undefined)object.scale.fromArray(data.scale)}if(data.up!==undefined)object.up.fromArray(data.up);if(data.castShadow!==undefined)object.castShadow=data.castShadow;if(data.receiveShadow!==undefined)object.receiveShadow=data.receiveShadow;if(data.shadow){if(data.shadow.intensity!==undefined)object.shadow.intensity=data.shadow.intensity;if(data.shadow.bias!==undefined)object.shadow.bias=data.shadow.bias;if(data.shadow.normalBias!==undefined)object.shadow.normalBias=data.shadow.normalBias;if(data.shadow.radius!==undefined)object.shadow.radius=data.shadow.radius;if(data.shadow.mapSize!==undefined)object.shadow.mapSize.fromArray(data.shadow.mapSize);if(data.shadow.camera!==undefined)object.shadow.camera=this.parseObject(data.shadow.camera)}if(data.visible!==undefined)object.visible=data.visible;if(data.frustumCulled!==undefined)object.frustumCulled=data.frustumCulled;if(data.renderOrder!==undefined)object.renderOrder=data.renderOrder;if(data.userData!==undefined)object.userData=data.userData;if(data.layers!==undefined)object.layers.mask=data.layers;if(data.children!==undefined){const children=data.children;for(let i=0;i{if(_errorMap.has(cached)===true){if(onError)onError(_errorMap.get(cached));scope.manager.itemError(url);scope.manager.itemEnd(url)}else{if(onLoad)onLoad(imageBitmap);scope.manager.itemEnd(url);return imageBitmap}});return}setTimeout(function(){if(onLoad)onLoad(cached);scope.manager.itemEnd(url)},0);return cached}const fetchOptions={};fetchOptions.credentials=this.crossOrigin==="anonymous"?"same-origin":"include";fetchOptions.headers=this.requestHeader;fetchOptions.signal=typeof AbortSignal.any==="function"?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal;const promise=fetch(url,fetchOptions).then(function(res){return res.blob()}).then(function(blob){return createImageBitmap(blob,Object.assign(scope.options,{colorSpaceConversion:"none"}))}).then(function(imageBitmap){Cache.add(`image-bitmap:${url}`,imageBitmap);if(onLoad)onLoad(imageBitmap);scope.manager.itemEnd(url);return imageBitmap}).catch(function(e){if(onError)onError(e);_errorMap.set(promise,e);Cache.remove(`image-bitmap:${url}`);scope.manager.itemError(url);scope.manager.itemEnd(url)});Cache.add(`image-bitmap:${url}`,promise);scope.manager.itemStart(url)}abort(){this._abortController.abort();this._abortController=new AbortController;return this}}let _context;class AudioContext{static getContext(){if(_context===undefined){_context=new(window.AudioContext||window.webkitAudioContext)}return _context}static setContext(value){_context=value}}class AudioLoader extends Loader{constructor(manager){super(manager)}load(url,onLoad,onProgress,onError){const scope=this;const loader=new FileLoader(this.manager);loader.setResponseType("arraybuffer");loader.setPath(this.path);loader.setRequestHeader(this.requestHeader);loader.setWithCredentials(this.withCredentials);loader.load(url,function(buffer){try{const bufferCopy=buffer.slice(0);const context=AudioContext.getContext();context.decodeAudioData(bufferCopy,function(audioBuffer){onLoad(audioBuffer)}).catch(handleError)}catch(e){handleError(e)}},onProgress,onError);function handleError(e){if(onError){onError(e)}else{error(e)}scope.manager.itemError(url)}}}const _eyeRight=new Matrix4;const _eyeLeft=new Matrix4;const _projectionMatrix=new Matrix4;class StereoCamera{constructor(){this.type="StereoCamera";this.aspect=1;this.eyeSep=0.064;this.cameraL=new PerspectiveCamera;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=false;this.cameraR=new PerspectiveCamera;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=false;this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(camera){const cache=this._cache;const needsUpdate=cache.focus!==camera.focus||cache.fov!==camera.fov||cache.aspect!==camera.aspect*this.aspect||cache.near!==camera.near||cache.far!==camera.far||cache.zoom!==camera.zoom||cache.eyeSep!==this.eyeSep;if(needsUpdate){cache.focus=camera.focus;cache.fov=camera.fov;cache.aspect=camera.aspect*this.aspect;cache.near=camera.near;cache.far=camera.far;cache.zoom=camera.zoom;cache.eyeSep=this.eyeSep;_projectionMatrix.copy(camera.projectionMatrix);const eyeSepHalf=cache.eyeSep/2;const eyeSepOnProjection=eyeSepHalf*cache.near/cache.focus;const ymax=cache.near*Math.tan(DEG2RAD*cache.fov*0.5)/cache.zoom;let xmin,xmax;_eyeLeft.elements[12]=-eyeSepHalf;_eyeRight.elements[12]=eyeSepHalf;xmin=-ymax*cache.aspect+eyeSepOnProjection;xmax=ymax*cache.aspect+eyeSepOnProjection;_projectionMatrix.elements[0]=2*cache.near/(xmax-xmin);_projectionMatrix.elements[8]=(xmax+xmin)/(xmax-xmin);this.cameraL.projectionMatrix.copy(_projectionMatrix);xmin=-ymax*cache.aspect-eyeSepOnProjection;xmax=ymax*cache.aspect-eyeSepOnProjection;_projectionMatrix.elements[0]=2*cache.near/(xmax-xmin);_projectionMatrix.elements[8]=(xmax+xmin)/(xmax-xmin);this.cameraR.projectionMatrix.copy(_projectionMatrix)}this.cameraL.matrixWorld.copy(camera.matrixWorld).multiply(_eyeLeft);this.cameraR.matrixWorld.copy(camera.matrixWorld).multiply(_eyeRight)}}class ArrayCamera extends PerspectiveCamera{constructor(array=[]){super();this.isArrayCamera=true;this.isMultiViewCamera=false;this.cameras=array}}class Clock{constructor(autoStart=true){this.autoStart=autoStart;this.startTime=0;this.oldTime=0;this.elapsedTime=0;this.running=false}start(){this.startTime=performance.now();this.oldTime=this.startTime;this.elapsedTime=0;this.running=true}stop(){this.getElapsedTime();this.running=false;this.autoStart=false}getElapsedTime(){this.getDelta();return this.elapsedTime}getDelta(){let diff=0;if(this.autoStart&&!this.running){this.start();return 0}if(this.running){const newTime=performance.now();diff=(newTime-this.oldTime)/1000;this.oldTime=newTime;this.elapsedTime+=diff}return diff}}const _position$1=new Vector3;const _quaternion$1=new Quaternion;const _scale$1=new Vector3;const _forward=new Vector3;const _up=new Vector3;class AudioListener extends Object3D{constructor(){super();this.type="AudioListener";this.context=AudioContext.getContext();this.gain=this.context.createGain();this.gain.connect(this.context.destination);this.filter=null;this.timeDelta=0;this._clock=new Clock}getInput(){return this.gain}removeFilter(){if(this.filter!==null){this.gain.disconnect(this.filter);this.filter.disconnect(this.context.destination);this.gain.connect(this.context.destination);this.filter=null}return this}getFilter(){return this.filter}setFilter(value){if(this.filter!==null){this.gain.disconnect(this.filter);this.filter.disconnect(this.context.destination)}else{this.gain.disconnect(this.context.destination)}this.filter=value;this.gain.connect(this.filter);this.filter.connect(this.context.destination);return this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(value){this.gain.gain.setTargetAtTime(value,this.context.currentTime,0.01);return this}updateMatrixWorld(force){super.updateMatrixWorld(force);const listener=this.context.listener;this.timeDelta=this._clock.getDelta();this.matrixWorld.decompose(_position$1,_quaternion$1,_scale$1);_forward.set(0,0,-1).applyQuaternion(_quaternion$1);_up.set(0,1,0).applyQuaternion(_quaternion$1);if(listener.positionX){const endTime=this.context.currentTime+this.timeDelta;listener.positionX.linearRampToValueAtTime(_position$1.x,endTime);listener.positionY.linearRampToValueAtTime(_position$1.y,endTime);listener.positionZ.linearRampToValueAtTime(_position$1.z,endTime);listener.forwardX.linearRampToValueAtTime(_forward.x,endTime);listener.forwardY.linearRampToValueAtTime(_forward.y,endTime);listener.forwardZ.linearRampToValueAtTime(_forward.z,endTime);listener.upX.linearRampToValueAtTime(_up.x,endTime);listener.upY.linearRampToValueAtTime(_up.y,endTime);listener.upZ.linearRampToValueAtTime(_up.z,endTime)}else{listener.setPosition(_position$1.x,_position$1.y,_position$1.z);listener.setOrientation(_forward.x,_forward.y,_forward.z,_up.x,_up.y,_up.z)}}}class Audio extends Object3D{constructor(listener){super();this.type="Audio";this.listener=listener;this.context=listener.context;this.gain=this.context.createGain();this.gain.connect(listener.getInput());this.autoplay=false;this.buffer=null;this.detune=0;this.loop=false;this.loopStart=0;this.loopEnd=0;this.offset=0;this.duration=undefined;this.playbackRate=1;this.isPlaying=false;this.hasPlaybackControl=true;this.source=null;this.sourceType="empty";this._startedAt=0;this._progress=0;this._connected=false;this.filters=[]}getOutput(){return this.gain}setNodeSource(audioNode){this.hasPlaybackControl=false;this.sourceType="audioNode";this.source=audioNode;this.connect();return this}setMediaElementSource(mediaElement){this.hasPlaybackControl=false;this.sourceType="mediaNode";this.source=this.context.createMediaElementSource(mediaElement);this.connect();return this}setMediaStreamSource(mediaStream){this.hasPlaybackControl=false;this.sourceType="mediaStreamNode";this.source=this.context.createMediaStreamSource(mediaStream);this.connect();return this}setBuffer(audioBuffer){this.buffer=audioBuffer;this.sourceType="buffer";if(this.autoplay)this.play();return this}play(delay=0){if(this.isPlaying===true){warn("Audio: Audio is already playing.");return}if(this.hasPlaybackControl===false){warn("Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+delay;const source=this.context.createBufferSource();source.buffer=this.buffer;source.loop=this.loop;source.loopStart=this.loopStart;source.loopEnd=this.loopEnd;source.onended=this.onEnded.bind(this);source.start(this._startedAt,this._progress+this.offset,this.duration);this.isPlaying=true;this.source=source;this.setDetune(this.detune);this.setPlaybackRate(this.playbackRate);return this.connect()}pause(){if(this.hasPlaybackControl===false){warn("Audio: this Audio has no playback control.");return}if(this.isPlaying===true){this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate;if(this.loop===true){this._progress=this._progress%(this.duration||this.buffer.duration)}this.source.stop();this.source.onended=null;this.isPlaying=false}return this}stop(delay=0){if(this.hasPlaybackControl===false){warn("Audio: this Audio has no playback control.");return}this._progress=0;if(this.source!==null){this.source.stop(this.context.currentTime+delay);this.source.onended=null}this.isPlaying=false;return this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let i=1,l=this.filters.length;i0){this.source.disconnect(this.filters[0]);for(let i=1,l=this.filters.length;i0){this._mixBufferRegionAdditive(buffer,offset,this._addIndex*stride,1,stride)}for(let i=stride,e=stride+stride;i!==e;++i){if(buffer[i]!==buffer[i+stride]){binding.setValue(buffer,offset);break}}}saveOriginalState(){const binding=this.binding;const buffer=this.buffer,stride=this.valueSize,originalValueOffset=stride*this._origIndex;binding.getValue(buffer,originalValueOffset);for(let i=stride,e=originalValueOffset;i!==e;++i){buffer[i]=buffer[originalValueOffset+i%stride]}this._setIdentity();this.cumulativeWeight=0;this.cumulativeWeightAdditive=0}restoreOriginalState(){const originalValueOffset=this.valueSize*3;this.binding.setValue(this.buffer,originalValueOffset)}_setAdditiveIdentityNumeric(){const startIndex=this._addIndex*this.valueSize;const endIndex=startIndex+this.valueSize;for(let i=startIndex;i=0.5){for(let i=0;i!==stride;++i){buffer[dstOffset+i]=buffer[srcOffset+i]}}}_slerp(buffer,dstOffset,srcOffset,t){Quaternion.slerpFlat(buffer,dstOffset,buffer,dstOffset,buffer,srcOffset,t)}_slerpAdditive(buffer,dstOffset,srcOffset,t,stride){const workOffset=this._workIndex*stride;Quaternion.multiplyQuaternionsFlat(buffer,workOffset,buffer,dstOffset,buffer,srcOffset);Quaternion.slerpFlat(buffer,dstOffset,buffer,dstOffset,buffer,workOffset,t)}_lerp(buffer,dstOffset,srcOffset,t,stride){const s=1-t;for(let i=0;i!==stride;++i){const j=dstOffset+i;buffer[j]=buffer[j]*s+buffer[srcOffset+i]*t}}_lerpAdditive(buffer,dstOffset,srcOffset,t,stride){for(let i=0;i!==stride;++i){const j=dstOffset+i;buffer[j]=buffer[j]+buffer[srcOffset+i]*t}}}const _RESERVED_CHARS_RE="\\[\\]\\.:\\/";const _reservedRe=new RegExp("["+_RESERVED_CHARS_RE+"]","g");const _wordChar="[^"+_RESERVED_CHARS_RE+"]";const _wordCharOrDot="[^"+_RESERVED_CHARS_RE.replace("\\.","")+"]";const _directoryRe=/((?:WC+[\/:])*)/.source.replace("WC",_wordChar);const _nodeRe=/(WCOD+)?/.source.replace("WCOD",_wordCharOrDot);const _objectRe=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",_wordChar);const _propertyRe=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",_wordChar);const _trackRe=new RegExp(""+"^"+_directoryRe+_nodeRe+_objectRe+_propertyRe+"$");const _supportedObjectNames=["material","materials","bones","map"];class Composite{constructor(targetGroup,path,optionalParsedPath){const parsedPath=optionalParsedPath||PropertyBinding.parseTrackName(path);this._targetGroup=targetGroup;this._bindings=targetGroup.subscribe_(path,parsedPath)}getValue(array,offset){this.bind();const firstValidIndex=this._targetGroup.nCachedObjects_,binding=this._bindings[firstValidIndex];if(binding!==undefined)binding.getValue(array,offset)}setValue(array,offset){const bindings=this._bindings;for(let i=this._targetGroup.nCachedObjects_,n=bindings.length;i!==n;++i){bindings[i].setValue(array,offset)}}bind(){const bindings=this._bindings;for(let i=this._targetGroup.nCachedObjects_,n=bindings.length;i!==n;++i){bindings[i].bind()}}unbind(){const bindings=this._bindings;for(let i=this._targetGroup.nCachedObjects_,n=bindings.length;i!==n;++i){bindings[i].unbind()}}}class PropertyBinding{constructor(rootNode,path,parsedPath){this.path=path;this.parsedPath=parsedPath||PropertyBinding.parseTrackName(path);this.node=PropertyBinding.findNode(rootNode,this.parsedPath.nodeName);this.rootNode=rootNode;this.getValue=this._getValue_unbound;this.setValue=this._setValue_unbound}static create(root,path,parsedPath){if(!(root&&root.isAnimationObjectGroup)){return new PropertyBinding(root,path,parsedPath)}else{return new PropertyBinding.Composite(root,path,parsedPath)}}static sanitizeNodeName(name){return name.replace(/\s/g,"_").replace(_reservedRe,"")}static parseTrackName(trackName){const matches=_trackRe.exec(trackName);if(matches===null){throw new Error("PropertyBinding: Cannot parse trackName: "+trackName)}const results={nodeName:matches[2],objectName:matches[3],objectIndex:matches[4],propertyName:matches[5],propertyIndex:matches[6]};const lastDot=results.nodeName&&results.nodeName.lastIndexOf(".");if(lastDot!==undefined&&lastDot!==-1){const objectName=results.nodeName.substring(lastDot+1);if(_supportedObjectNames.indexOf(objectName)!==-1){results.nodeName=results.nodeName.substring(0,lastDot);results.objectName=objectName}}if(results.propertyName===null||results.propertyName.length===0){throw new Error("PropertyBinding: can not parse propertyName from trackName: "+trackName)}return results}static findNode(root,nodeName){if(nodeName===undefined||nodeName===""||nodeName==="."||nodeName===-1||nodeName===root.name||nodeName===root.uuid){return root}if(root.skeleton){const bone=root.skeleton.getBoneByName(nodeName);if(bone!==undefined){return bone}}if(root.children){const searchNodeSubtree=function(children){for(let i=0;i=nCachedObjects){const lastCachedIndex=nCachedObjects++,firstActiveObject=objects[lastCachedIndex];indicesByUUID[firstActiveObject.uuid]=index;objects[index]=firstActiveObject;indicesByUUID[uuid]=lastCachedIndex;objects[lastCachedIndex]=object;for(let j=0,m=nBindings;j!==m;++j){const bindingsForPath=bindings[j],firstActive=bindingsForPath[lastCachedIndex],binding=bindingsForPath[index];bindingsForPath[index]=firstActive;bindingsForPath[lastCachedIndex]=binding}}}this.nCachedObjects_=nCachedObjects}uncache(){const objects=this._objects,indicesByUUID=this._indicesByUUID,bindings=this._bindings,nBindings=bindings.length;let nCachedObjects=this.nCachedObjects_,nObjects=objects.length;for(let i=0,n=arguments.length;i!==n;++i){const object=arguments[i],uuid=object.uuid,index=indicesByUUID[uuid];if(index!==undefined){delete indicesByUUID[uuid];if(index0){indicesByUUID[lastObject.uuid]=index}objects[index]=lastObject;objects.pop();for(let j=0,m=nBindings;j!==m;++j){const bindingsForPath=bindings[j];bindingsForPath[index]=bindingsForPath[lastIndex];bindingsForPath.pop()}}}}this.nCachedObjects_=nCachedObjects}subscribe_(path,parsedPath){const indicesByPath=this._bindingsIndicesByPath;let index=indicesByPath[path];const bindings=this._bindings;if(index!==undefined)return bindings[index];const paths=this._paths,parsedPaths=this._parsedPaths,objects=this._objects,nObjects=objects.length,nCachedObjects=this.nCachedObjects_,bindingsForPath=new Array(nObjects);index=bindings.length;indicesByPath[path]=index;paths.push(path);parsedPaths.push(parsedPath);bindings.push(bindingsForPath);for(let i=nCachedObjects,n=objects.length;i!==n;++i){const object=objects[i];bindingsForPath[i]=new PropertyBinding(object,path,parsedPath)}return bindingsForPath}unsubscribe_(path){const indicesByPath=this._bindingsIndicesByPath,index=indicesByPath[path];if(index!==undefined){const paths=this._paths,parsedPaths=this._parsedPaths,bindings=this._bindings,lastBindingsIndex=bindings.length-1,lastBindings=bindings[lastBindingsIndex],lastBindingsPath=path[lastBindingsIndex];indicesByPath[lastBindingsPath]=index;bindings[index]=lastBindings;bindings.pop();parsedPaths[index]=parsedPaths[lastBindingsIndex];parsedPaths.pop();paths[index]=paths[lastBindingsIndex];paths.pop()}}}class AnimationAction{constructor(mixer,clip,localRoot=null,blendMode=clip.blendMode){this._mixer=mixer;this._clip=clip;this._localRoot=localRoot;this.blendMode=blendMode;const tracks=clip.tracks,nTracks=tracks.length,interpolants=new Array(nTracks);const interpolantSettings={endingStart:ZeroCurvatureEnding,endingEnd:ZeroCurvatureEnding};for(let i=0;i!==nTracks;++i){const interpolant=tracks[i].createInterpolant(null);interpolants[i]=interpolant;interpolant.settings=interpolantSettings}this._interpolantSettings=interpolantSettings;this._interpolants=interpolants;this._propertyBindings=new Array(nTracks);this._cacheIndex=null;this._byClipCacheIndex=null;this._timeScaleInterpolant=null;this._weightInterpolant=null;this.loop=LoopRepeat;this._loopCount=-1;this._startTime=null;this.time=0;this.timeScale=1;this._effectiveTimeScale=1;this.weight=1;this._effectiveWeight=1;this.repetitions=Infinity;this.paused=false;this.enabled=true;this.clampWhenFinished=false;this.zeroSlopeAtStart=true;this.zeroSlopeAtEnd=true}play(){this._mixer._activateAction(this);return this}stop(){this._mixer._deactivateAction(this);return this.reset()}reset(){this.paused=false;this.enabled=true;this.time=0;this._loopCount=-1;this._startTime=null;return this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(time){this._startTime=time;return this}setLoop(mode,repetitions){this.loop=mode;this.repetitions=repetitions;return this}setEffectiveWeight(weight){this.weight=weight;this._effectiveWeight=this.enabled?weight:0;return this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(duration){return this._scheduleFading(duration,0,1)}fadeOut(duration){return this._scheduleFading(duration,1,0)}crossFadeFrom(fadeOutAction,duration,warp=false){fadeOutAction.fadeOut(duration);this.fadeIn(duration);if(warp===true){const fadeInDuration=this._clip.duration,fadeOutDuration=fadeOutAction._clip.duration,startEndRatio=fadeOutDuration/fadeInDuration,endStartRatio=fadeInDuration/fadeOutDuration;fadeOutAction.warp(1,startEndRatio,duration);this.warp(endStartRatio,1,duration)}return this}crossFadeTo(fadeInAction,duration,warp=false){return fadeInAction.crossFadeFrom(this,duration,warp)}stopFading(){const weightInterpolant=this._weightInterpolant;if(weightInterpolant!==null){this._weightInterpolant=null;this._mixer._takeBackControlInterpolant(weightInterpolant)}return this}setEffectiveTimeScale(timeScale){this.timeScale=timeScale;this._effectiveTimeScale=this.paused?0:timeScale;return this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(duration){this.timeScale=this._clip.duration/duration;return this.stopWarping()}syncWith(action){this.time=action.time;this.timeScale=action.timeScale;return this.stopWarping()}halt(duration){return this.warp(this._effectiveTimeScale,0,duration)}warp(startTimeScale,endTimeScale,duration){const mixer=this._mixer,now=mixer.time,timeScale=this.timeScale;let interpolant=this._timeScaleInterpolant;if(interpolant===null){interpolant=mixer._lendControlInterpolant();this._timeScaleInterpolant=interpolant}const times=interpolant.parameterPositions,values=interpolant.sampleValues;times[0]=now;times[1]=now+duration;values[0]=startTimeScale/timeScale;values[1]=endTimeScale/timeScale;return this}stopWarping(){const timeScaleInterpolant=this._timeScaleInterpolant;if(timeScaleInterpolant!==null){this._timeScaleInterpolant=null;this._mixer._takeBackControlInterpolant(timeScaleInterpolant)}return this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(time,deltaTime,timeDirection,accuIndex){if(!this.enabled){this._updateWeight(time);return}const startTime=this._startTime;if(startTime!==null){const timeRunning=(time-startTime)*timeDirection;if(timeRunning<0||timeDirection===0){deltaTime=0}else{this._startTime=null;deltaTime=timeDirection*timeRunning}}deltaTime*=this._updateTimeScale(time);const clipTime=this._updateTime(deltaTime);const weight=this._updateWeight(time);if(weight>0){const interpolants=this._interpolants;const propertyMixers=this._propertyBindings;switch(this.blendMode){case AdditiveAnimationBlendMode:for(let j=0,m=interpolants.length;j!==m;++j){interpolants[j].evaluate(clipTime);propertyMixers[j].accumulateAdditive(weight)}break;case NormalAnimationBlendMode:default:for(let j=0,m=interpolants.length;j!==m;++j){interpolants[j].evaluate(clipTime);propertyMixers[j].accumulate(accuIndex,weight)}}}}_updateWeight(time){let weight=0;if(this.enabled){weight=this.weight;const interpolant=this._weightInterpolant;if(interpolant!==null){const interpolantValue=interpolant.evaluate(time)[0];weight*=interpolantValue;if(time>interpolant.parameterPositions[1]){this.stopFading();if(interpolantValue===0){this.enabled=false}}}}this._effectiveWeight=weight;return weight}_updateTimeScale(time){let timeScale=0;if(!this.paused){timeScale=this.timeScale;const interpolant=this._timeScaleInterpolant;if(interpolant!==null){const interpolantValue=interpolant.evaluate(time)[0];timeScale*=interpolantValue;if(time>interpolant.parameterPositions[1]){this.stopWarping();if(timeScale===0){this.paused=true}else{this.timeScale=timeScale}}}}this._effectiveTimeScale=timeScale;return timeScale}_updateTime(deltaTime){const duration=this._clip.duration;const loop=this.loop;let time=this.time+deltaTime;let loopCount=this._loopCount;const pingPong=loop===LoopPingPong;if(deltaTime===0){if(loopCount===-1)return time;return pingPong&&(loopCount&1)===1?duration-time:time}if(loop===LoopOnce){if(loopCount===-1){this._loopCount=0;this._setEndings(true,true,false)}handle_stop:{if(time>=duration){time=duration}else if(time<0){time=0}else{this.time=time;break handle_stop}if(this.clampWhenFinished)this.paused=true;else this.enabled=false;this.time=time;this._mixer.dispatchEvent({type:"finished",action:this,direction:deltaTime<0?-1:1})}}else{if(loopCount===-1){if(deltaTime>=0){loopCount=0;this._setEndings(true,this.repetitions===0,pingPong)}else{this._setEndings(this.repetitions===0,true,pingPong)}}if(time>=duration||time<0){const loopDelta=Math.floor(time/duration);time-=duration*loopDelta;loopCount+=Math.abs(loopDelta);const pending=this.repetitions-loopCount;if(pending<=0){if(this.clampWhenFinished)this.paused=true;else this.enabled=false;time=deltaTime>0?duration:0;this.time=time;this._mixer.dispatchEvent({type:"finished",action:this,direction:deltaTime>0?1:-1})}else{if(pending===1){const atStart=deltaTime<0;this._setEndings(atStart,!atStart,pingPong)}else{this._setEndings(false,false,pingPong)}this._loopCount=loopCount;this.time=time;this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:loopDelta})}}else{this.time=time}if(pingPong&&(loopCount&1)===1){return duration-time}}return time}_setEndings(atStart,atEnd,pingPong){const settings=this._interpolantSettings;if(pingPong){settings.endingStart=ZeroSlopeEnding;settings.endingEnd=ZeroSlopeEnding}else{if(atStart){settings.endingStart=this.zeroSlopeAtStart?ZeroSlopeEnding:ZeroCurvatureEnding}else{settings.endingStart=WrapAroundEnding}if(atEnd){settings.endingEnd=this.zeroSlopeAtEnd?ZeroSlopeEnding:ZeroCurvatureEnding}else{settings.endingEnd=WrapAroundEnding}}}_scheduleFading(duration,weightNow,weightThen){const mixer=this._mixer,now=mixer.time;let interpolant=this._weightInterpolant;if(interpolant===null){interpolant=mixer._lendControlInterpolant();this._weightInterpolant=interpolant}const times=interpolant.parameterPositions,values=interpolant.sampleValues;times[0]=now;values[0]=weightNow;times[1]=now+duration;values[1]=weightThen;return this}}const _controlInterpolantsResultBuffer=new Float32Array(1);class AnimationMixer extends EventDispatcher{constructor(root){super();this._root=root;this._initMemoryManager();this._accuIndex=0;this.time=0;this.timeScale=1}_bindAction(action,prototypeAction){const root=action._localRoot||this._root,tracks=action._clip.tracks,nTracks=tracks.length,bindings=action._propertyBindings,interpolants=action._interpolants,rootUuid=root.uuid,bindingsByRoot=this._bindingsByRootAndName;let bindingsByName=bindingsByRoot[rootUuid];if(bindingsByName===undefined){bindingsByName={};bindingsByRoot[rootUuid]=bindingsByName}for(let i=0;i!==nTracks;++i){const track=tracks[i],trackName=track.name;let binding=bindingsByName[trackName];if(binding!==undefined){++binding.referenceCount;bindings[i]=binding}else{binding=bindings[i];if(binding!==undefined){if(binding._cacheIndex===null){++binding.referenceCount;this._addInactiveBinding(binding,rootUuid,trackName)}continue}const path=prototypeAction&&prototypeAction._propertyBindings[i].binding.parsedPath;binding=new PropertyMixer(PropertyBinding.create(root,trackName,path),track.ValueTypeName,track.getValueSize());++binding.referenceCount;this._addInactiveBinding(binding,rootUuid,trackName);bindings[i]=binding}interpolants[i].resultBuffer=binding.buffer}}_activateAction(action){if(!this._isActiveAction(action)){if(action._cacheIndex===null){const rootUuid=(action._localRoot||this._root).uuid,clipUuid=action._clip.uuid,actionsForClip=this._actionsByClip[clipUuid];this._bindAction(action,actionsForClip&&actionsForClip.knownActions[0]);this._addInactiveAction(action,clipUuid,rootUuid)}const bindings=action._propertyBindings;for(let i=0,n=bindings.length;i!==n;++i){const binding=bindings[i];if(binding.useCount++===0){this._lendBinding(binding);binding.saveOriginalState()}}this._lendAction(action)}}_deactivateAction(action){if(this._isActiveAction(action)){const bindings=action._propertyBindings;for(let i=0,n=bindings.length;i!==n;++i){const binding=bindings[i];if(--binding.useCount===0){binding.restoreOriginalState();this._takeBackBinding(binding)}}this._takeBackAction(action)}}_initMemoryManager(){this._actions=[];this._nActiveActions=0;this._actionsByClip={};this._bindings=[];this._nActiveBindings=0;this._bindingsByRootAndName={};this._controlInterpolants=[];this._nActiveControlInterpolants=0;const scope=this;this.stats={actions:{get total(){return scope._actions.length},get inUse(){return scope._nActiveActions}},bindings:{get total(){return scope._bindings.length},get inUse(){return scope._nActiveBindings}},controlInterpolants:{get total(){return scope._controlInterpolants.length},get inUse(){return scope._nActiveControlInterpolants}}}}_isActiveAction(action){const index=action._cacheIndex;return index!==null&&index=0;--i){actions[i].stop()}return this}update(deltaTime){deltaTime*=this.timeScale;const actions=this._actions,nActions=this._nActiveActions,time=this.time+=deltaTime,timeDirection=Math.sign(deltaTime),accuIndex=this._accuIndex^=1;for(let i=0;i!==nActions;++i){const action=actions[i];action._update(time,deltaTime,timeDirection,accuIndex)}const bindings=this._bindings,nBindings=this._nActiveBindings;for(let i=0;i!==nBindings;++i){bindings[i].apply(accuIndex)}return this}setTime(time){this.time=0;for(let i=0;i=this.min.x&&point.x<=this.max.x&&point.y>=this.min.y&&point.y<=this.max.y}containsBox(box){return this.min.x<=box.min.x&&box.max.x<=this.max.x&&this.min.y<=box.min.y&&box.max.y<=this.max.y}getParameter(point,target){return target.set((point.x-this.min.x)/(this.max.x-this.min.x),(point.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(box){return box.max.x>=this.min.x&&box.min.x<=this.max.x&&box.max.y>=this.min.y&&box.min.y<=this.max.y}clampPoint(point,target){return target.copy(point).clamp(this.min,this.max)}distanceToPoint(point){return this.clampPoint(point,_vector$4).distanceTo(point)}intersect(box){this.min.max(box.min);this.max.min(box.max);if(this.isEmpty())this.makeEmpty();return this}union(box){this.min.min(box.min);this.max.max(box.max);return this}translate(offset){this.min.add(offset);this.max.add(offset);return this}equals(box){return box.min.equals(this.min)&&box.max.equals(this.max)}}const _startP=new Vector3;const _startEnd=new Vector3;const _d1=new Vector3;const _d2=new Vector3;const _r=new Vector3;const _c1=new Vector3;const _c2=new Vector3;class Line3{constructor(start=new Vector3,end=new Vector3){this.start=start;this.end=end}set(start,end){this.start.copy(start);this.end.copy(end);return this}copy(line){this.start.copy(line.start);this.end.copy(line.end);return this}getCenter(target){return target.addVectors(this.start,this.end).multiplyScalar(0.5)}delta(target){return target.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,target){return this.delta(target).multiplyScalar(t).add(this.start)}closestPointToPointParameter(point,clampToLine){_startP.subVectors(point,this.start);_startEnd.subVectors(this.end,this.start);const startEnd2=_startEnd.dot(_startEnd);const startEnd_startP=_startEnd.dot(_startP);let t=startEnd_startP/startEnd2;if(clampToLine){t=clamp(t,0,1)}return t}closestPointToPoint(point,clampToLine,target){const t=this.closestPointToPointParameter(point,clampToLine);return this.delta(target).multiplyScalar(t).add(this.start)}distanceSqToLine3(line,c1=_c1,c2=_c2){const EPSILON=1e-8*1e-8;let s,t;const p1=this.start;const p2=line.start;const q1=this.end;const q2=line.end;_d1.subVectors(q1,p1);_d2.subVectors(q2,p2);_r.subVectors(p1,p2);const a=_d1.dot(_d1);const e=_d2.dot(_d2);const f=_d2.dot(_r);if(a<=EPSILON&&e<=EPSILON){c1.copy(p1);c2.copy(p2);c1.sub(c2);return c1.dot(c1)}if(a<=EPSILON){s=0;t=f/e;t=clamp(t,0,1)}else{const c=_d1.dot(_r);if(e<=EPSILON){t=0;s=clamp(-c/a,0,1)}else{const b=_d1.dot(_d2);const denom=a*e-b*b;if(denom!==0){s=clamp((b*f-c*e)/denom,0,1)}else{s=0}t=(b*s+f)/e;if(t<0){t=0;s=clamp(-c/a,0,1)}else if(t>1){t=1;s=clamp((b-c)/a,0,1)}}}c1.copy(p1).add(_d1.multiplyScalar(s));c2.copy(p2).add(_d2.multiplyScalar(t));c1.sub(c2);return c1.dot(c1)}applyMatrix4(matrix){this.start.applyMatrix4(matrix);this.end.applyMatrix4(matrix);return this}equals(line){return line.start.equals(this.start)&&line.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const _vector$3=new Vector3;class SpotLightHelper extends Object3D{constructor(light,color){super();this.light=light;this.matrixAutoUpdate=false;this.color=color;this.type="SpotLightHelper";const geometry=new BufferGeometry;const positions=[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];for(let i=0,j=1,l=32;i1){for(let i=0;i0.99999){this.quaternion.set(0,0,0,1)}else if(dir.y<-0.99999){this.quaternion.set(1,0,0,0)}else{_axis.set(dir.z,0,-dir.x).normalize();const radians=Math.acos(dir.y);this.quaternion.setFromAxisAngle(_axis,radians)}}setLength(length,headLength=length*0.2,headWidth=headLength*0.2){this.line.scale.set(1,Math.max(0.0001,length-headLength),1);this.line.updateMatrix();this.cone.scale.set(headWidth,headLength,headWidth);this.cone.position.y=length;this.cone.updateMatrix()}setColor(color){this.line.material.color.set(color);this.cone.material.color.set(color)}copy(source){super.copy(source,false);this.line.copy(source.line);this.cone.copy(source.cone);return this}dispose(){this.line.geometry.dispose();this.line.material.dispose();this.cone.geometry.dispose();this.cone.material.dispose()}}class AxesHelper extends LineSegments{constructor(size=1){const vertices=[0,0,0,size,0,0,0,0,0,0,size,0,0,0,0,0,0,size];const colors=[1,0,0,1,0.6,0,0,1,0,0.6,1,0,0,0,1,0,0.6,1];const geometry=new BufferGeometry;geometry.setAttribute("position",new Float32BufferAttribute(vertices,3));geometry.setAttribute("color",new Float32BufferAttribute(colors,3));const material=new LineBasicMaterial({vertexColors:true,toneMapped:false});super(geometry,material);this.type="AxesHelper"}setColors(xAxisColor,yAxisColor,zAxisColor){const color=new Color;const array=this.geometry.attributes.color.array;color.set(xAxisColor);color.toArray(array,0);color.toArray(array,3);color.set(yAxisColor);color.toArray(array,6);color.toArray(array,9);color.set(zAxisColor);color.toArray(array,12);color.toArray(array,15);this.geometry.attributes.color.needsUpdate=true;return this}dispose(){this.geometry.dispose();this.material.dispose()}}class ShapePath{constructor(){this.type="ShapePath";this.color=new Color;this.subPaths=[];this.currentPath=null}moveTo(x,y){this.currentPath=new Path;this.subPaths.push(this.currentPath);this.currentPath.moveTo(x,y);return this}lineTo(x,y){this.currentPath.lineTo(x,y);return this}quadraticCurveTo(aCPx,aCPy,aX,aY){this.currentPath.quadraticCurveTo(aCPx,aCPy,aX,aY);return this}bezierCurveTo(aCP1x,aCP1y,aCP2x,aCP2y,aX,aY){this.currentPath.bezierCurveTo(aCP1x,aCP1y,aCP2x,aCP2y,aX,aY);return this}splineThru(pts){this.currentPath.splineThru(pts);return this}toShapes(isCCW){function toShapesNoHoles(inSubpaths){const shapes=[];for(let i=0,l=inSubpaths.length;iNumber.EPSILON){if(edgeDy<0){edgeLowPt=inPolygon[q];edgeDx=-edgeDx;edgeHighPt=inPolygon[p];edgeDy=-edgeDy}if(inPt.yedgeHighPt.y)continue;if(inPt.y===edgeLowPt.y){if(inPt.x===edgeLowPt.x)return true}else{const perpEdge=edgeDy*(inPt.x-edgeLowPt.x)-edgeDx*(inPt.y-edgeLowPt.y);if(perpEdge===0)return true;if(perpEdge<0)continue;inside=!inside}}else{if(inPt.y!==edgeLowPt.y)continue;if(edgeHighPt.x<=inPt.x&&inPt.x<=edgeLowPt.x||edgeLowPt.x<=inPt.x&&inPt.x<=edgeHighPt.x)return true}}return inside}const isClockWise=ShapeUtils.isClockWise;const subPaths=this.subPaths;if(subPaths.length===0)return[];let solid,tmpPath,tmpShape;const shapes=[];if(subPaths.length===1){tmpPath=subPaths[0];tmpShape=new Shape;tmpShape.curves=tmpPath.curves;shapes.push(tmpShape);return shapes}let holesFirst=!isClockWise(subPaths[0].getPoints());holesFirst=isCCW?!holesFirst:holesFirst;const betterShapeHoles=[];const newShapes=[];let newShapeHoles=[];let mainIdx=0;let tmpPoints;newShapes[mainIdx]=undefined;newShapeHoles[mainIdx]=[];for(let i=0,l=subPaths.length;i1){let ambiguous=false;let toChange=0;for(let sIdx=0,sLen=newShapes.length;sIdx0&&ambiguous===false){newShapeHoles=betterShapeHoles}}let tmpHoles;for(let i=0,il=newShapes.length;iaspect){texture.repeat.x=1;texture.repeat.y=imageAspect/aspect;texture.offset.x=0;texture.offset.y=(1-texture.repeat.y)/2}else{texture.repeat.x=aspect/imageAspect;texture.repeat.y=1;texture.offset.x=(1-texture.repeat.x)/2;texture.offset.y=0}return texture}function cover(texture,aspect){const imageAspect=texture.image&&texture.image.width?texture.image.width/texture.image.height:1;if(imageAspect>aspect){texture.repeat.x=aspect/imageAspect;texture.repeat.y=1;texture.offset.x=(1-texture.repeat.x)/2;texture.offset.y=0}else{texture.repeat.x=1;texture.repeat.y=imageAspect/aspect;texture.offset.x=0;texture.offset.y=(1-texture.repeat.y)/2}return texture}function fill(texture){texture.repeat.x=1;texture.repeat.y=1;texture.offset.x=0;texture.offset.y=0;return texture}function getByteLength(width,height,format,type){const typeByteLength=getTextureTypeByteLength(type);switch(format){case AlphaFormat:return width*height;case RedFormat:return width*height/typeByteLength.components*typeByteLength.byteLength;case RedIntegerFormat:return width*height/typeByteLength.components*typeByteLength.byteLength;case RGFormat:return width*height*2/typeByteLength.components*typeByteLength.byteLength;case RGIntegerFormat:return width*height*2/typeByteLength.components*typeByteLength.byteLength;case RGBFormat:return width*height*3/typeByteLength.components*typeByteLength.byteLength;case RGBAFormat:return width*height*4/typeByteLength.components*typeByteLength.byteLength;case RGBAIntegerFormat:return width*height*4/typeByteLength.components*typeByteLength.byteLength;case RGB_S3TC_DXT1_Format:case RGBA_S3TC_DXT1_Format:return Math.floor((width+3)/4)*Math.floor((height+3)/4)*8;case RGBA_S3TC_DXT3_Format:case RGBA_S3TC_DXT5_Format:return Math.floor((width+3)/4)*Math.floor((height+3)/4)*16;case RGB_PVRTC_2BPPV1_Format:case RGBA_PVRTC_2BPPV1_Format:return Math.max(width,16)*Math.max(height,8)/4;case RGB_PVRTC_4BPPV1_Format:case RGBA_PVRTC_4BPPV1_Format:return Math.max(width,8)*Math.max(height,8)/2;case RGB_ETC1_Format:case RGB_ETC2_Format:case R11_EAC_Format:case SIGNED_R11_EAC_Format:return Math.floor((width+3)/4)*Math.floor((height+3)/4)*8;case RGBA_ETC2_EAC_Format:case RG11_EAC_Format:case SIGNED_RG11_EAC_Format:return Math.floor((width+3)/4)*Math.floor((height+3)/4)*16;case RGBA_ASTC_4x4_Format:return Math.floor((width+3)/4)*Math.floor((height+3)/4)*16;case RGBA_ASTC_5x4_Format:return Math.floor((width+4)/5)*Math.floor((height+3)/4)*16;case RGBA_ASTC_5x5_Format:return Math.floor((width+4)/5)*Math.floor((height+4)/5)*16;case RGBA_ASTC_6x5_Format:return Math.floor((width+5)/6)*Math.floor((height+4)/5)*16;case RGBA_ASTC_6x6_Format:return Math.floor((width+5)/6)*Math.floor((height+5)/6)*16;case RGBA_ASTC_8x5_Format:return Math.floor((width+7)/8)*Math.floor((height+4)/5)*16;case RGBA_ASTC_8x6_Format:return Math.floor((width+7)/8)*Math.floor((height+5)/6)*16;case RGBA_ASTC_8x8_Format:return Math.floor((width+7)/8)*Math.floor((height+7)/8)*16;case RGBA_ASTC_10x5_Format:return Math.floor((width+9)/10)*Math.floor((height+4)/5)*16;case RGBA_ASTC_10x6_Format:return Math.floor((width+9)/10)*Math.floor((height+5)/6)*16;case RGBA_ASTC_10x8_Format:return Math.floor((width+9)/10)*Math.floor((height+7)/8)*16;case RGBA_ASTC_10x10_Format:return Math.floor((width+9)/10)*Math.floor((height+9)/10)*16;case RGBA_ASTC_12x10_Format:return Math.floor((width+11)/12)*Math.floor((height+9)/10)*16;case RGBA_ASTC_12x12_Format:return Math.floor((width+11)/12)*Math.floor((height+11)/12)*16;case RGBA_BPTC_Format:case RGB_BPTC_SIGNED_Format:case RGB_BPTC_UNSIGNED_Format:return Math.ceil(width/4)*Math.ceil(height/4)*16;case RED_RGTC1_Format:case SIGNED_RED_RGTC1_Format:return Math.ceil(width/4)*Math.ceil(height/4)*8;case RED_GREEN_RGTC2_Format:case SIGNED_RED_GREEN_RGTC2_Format:return Math.ceil(width/4)*Math.ceil(height/4)*16;}throw new Error(`Unable to determine texture byte length for ${format} format.`)}function getTextureTypeByteLength(type){switch(type){case UnsignedByteType:case ByteType:return{byteLength:1,components:1};case UnsignedShortType:case ShortType:case HalfFloatType:return{byteLength:2,components:1};case UnsignedShort4444Type:case UnsignedShort5551Type:return{byteLength:2,components:4};case UnsignedIntType:case IntType:case FloatType:return{byteLength:4,components:1};case UnsignedInt5999Type:case UnsignedInt101111Type:return{byteLength:4,components:3};}throw new Error(`Unknown texture type ${type}.`)}class TextureUtils{static contain(texture,aspect){return contain(texture,aspect)}static cover(texture,aspect){return cover(texture,aspect)}static fill(texture){return fill(texture)}static getByteLength(width,height,format,type){return getByteLength(width,height,format,type)}}if(typeof __THREE_DEVTOOLS__!=="undefined"){__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:REVISION}}))}if(typeof window!=="undefined"){if(window.__THREE__){warn("WARNING: Multiple instances of Three.js being imported.")}else{window.__THREE__=REVISION}}function WebGLAnimation(){let context=null;let isAnimating=false;let animationLoop=null;let requestId=null;function onAnimationFrame(time,frame){animationLoop(time,frame);requestId=context.requestAnimationFrame(onAnimationFrame)}return{start:function(){if(isAnimating===true)return;if(animationLoop===null)return;requestId=context.requestAnimationFrame(onAnimationFrame);isAnimating=true},stop:function(){context.cancelAnimationFrame(requestId);isAnimating=false},setAnimationLoop:function(callback){animationLoop=callback},setContext:function(value){context=value}}}function WebGLAttributes(gl){const buffers=new WeakMap;function createBuffer(attribute,bufferType){const array=attribute.array;const usage=attribute.usage;const size=array.byteLength;const buffer=gl.createBuffer();gl.bindBuffer(bufferType,buffer);gl.bufferData(bufferType,array,usage);attribute.onUploadCallback();let type;if(array instanceof Float32Array){type=gl.FLOAT}else if(typeof Float16Array!=="undefined"&&array instanceof Float16Array){type=gl.HALF_FLOAT}else if(array instanceof Uint16Array){if(attribute.isFloat16BufferAttribute){type=gl.HALF_FLOAT}else{type=gl.UNSIGNED_SHORT}}else if(array instanceof Int16Array){type=gl.SHORT}else if(array instanceof Uint32Array){type=gl.UNSIGNED_INT}else if(array instanceof Int32Array){type=gl.INT}else if(array instanceof Int8Array){type=gl.BYTE}else if(array instanceof Uint8Array){type=gl.UNSIGNED_BYTE}else if(array instanceof Uint8ClampedArray){type=gl.UNSIGNED_BYTE}else{throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+array)}return{buffer:buffer,type:type,bytesPerElement:array.BYTES_PER_ELEMENT,version:attribute.version,size:size}}function updateBuffer(buffer,attribute,bufferType){const array=attribute.array;const updateRanges=attribute.updateRanges;gl.bindBuffer(bufferType,buffer);if(updateRanges.length===0){gl.bufferSubData(bufferType,0,array)}else{updateRanges.sort((a,b)=>a.start-b.start);let mergeIndex=0;for(let i=1;i0;background=(usePMREM?cubeuvmaps:cubemaps).get(background)}return background}function render(scene){let forceClear=false;const background=getBackground(scene);if(background===null){setClear(clearColor,clearAlpha)}else if(background&&background.isColor){setClear(background,1);forceClear=true}const environmentBlendMode=renderer.xr.getEnvironmentBlendMode();if(environmentBlendMode==="additive"){state.buffers.color.setClear(0,0,0,1,premultipliedAlpha)}else if(environmentBlendMode==="alpha-blend"){state.buffers.color.setClear(0,0,0,0,premultipliedAlpha)}if(renderer.autoClear||forceClear){state.buffers.depth.setTest(true);state.buffers.depth.setMask(true);state.buffers.color.setMask(true);renderer.clear(renderer.autoClearColor,renderer.autoClearDepth,renderer.autoClearStencil)}}function addToRenderList(renderList,scene){const background=getBackground(scene);if(background&&(background.isCubeTexture||background.mapping===CubeUVReflectionMapping)){if(boxMesh===undefined){boxMesh=new Mesh(new BoxGeometry(1,1,1),new ShaderMaterial({name:"BackgroundCubeMaterial",uniforms:cloneUniforms(ShaderLib.backgroundCube.uniforms),vertexShader:ShaderLib.backgroundCube.vertexShader,fragmentShader:ShaderLib.backgroundCube.fragmentShader,side:BackSide,depthTest:false,depthWrite:false,fog:false,allowOverride:false}));boxMesh.geometry.deleteAttribute("normal");boxMesh.geometry.deleteAttribute("uv");boxMesh.onBeforeRender=function(renderer,scene,camera){this.matrixWorld.copyPosition(camera.matrixWorld)};Object.defineProperty(boxMesh.material,"envMap",{get:function(){return this.uniforms.envMap.value}});objects.update(boxMesh)}_e1$1.copy(scene.backgroundRotation);_e1$1.x*=-1;_e1$1.y*=-1;_e1$1.z*=-1;if(background.isCubeTexture&&background.isRenderTargetTexture===false){_e1$1.y*=-1;_e1$1.z*=-1}boxMesh.material.uniforms.envMap.value=background;boxMesh.material.uniforms.flipEnvMap.value=background.isCubeTexture&&background.isRenderTargetTexture===false?-1:1;boxMesh.material.uniforms.backgroundBlurriness.value=scene.backgroundBlurriness;boxMesh.material.uniforms.backgroundIntensity.value=scene.backgroundIntensity;boxMesh.material.uniforms.backgroundRotation.value.setFromMatrix4(_m1$1.makeRotationFromEuler(_e1$1));boxMesh.material.toneMapped=ColorManagement.getTransfer(background.colorSpace)!==SRGBTransfer;if(currentBackground!==background||currentBackgroundVersion!==background.version||currentTonemapping!==renderer.toneMapping){boxMesh.material.needsUpdate=true;currentBackground=background;currentBackgroundVersion=background.version;currentTonemapping=renderer.toneMapping}boxMesh.layers.enableAll();renderList.unshift(boxMesh,boxMesh.geometry,boxMesh.material,0,0,null)}else if(background&&background.isTexture){if(planeMesh===undefined){planeMesh=new Mesh(new PlaneGeometry(2,2),new ShaderMaterial({name:"BackgroundMaterial",uniforms:cloneUniforms(ShaderLib.background.uniforms),vertexShader:ShaderLib.background.vertexShader,fragmentShader:ShaderLib.background.fragmentShader,side:FrontSide,depthTest:false,depthWrite:false,fog:false,allowOverride:false}));planeMesh.geometry.deleteAttribute("normal");Object.defineProperty(planeMesh.material,"map",{get:function(){return this.uniforms.t2D.value}});objects.update(planeMesh)}planeMesh.material.uniforms.t2D.value=background;planeMesh.material.uniforms.backgroundIntensity.value=scene.backgroundIntensity;planeMesh.material.toneMapped=ColorManagement.getTransfer(background.colorSpace)!==SRGBTransfer;if(background.matrixAutoUpdate===true){background.updateMatrix()}planeMesh.material.uniforms.uvTransform.value.copy(background.matrix);if(currentBackground!==background||currentBackgroundVersion!==background.version||currentTonemapping!==renderer.toneMapping){planeMesh.material.needsUpdate=true;currentBackground=background;currentBackgroundVersion=background.version;currentTonemapping=renderer.toneMapping}planeMesh.layers.enableAll();renderList.unshift(planeMesh,planeMesh.geometry,planeMesh.material,0,0,null)}}function setClear(color,alpha){color.getRGB(_rgb,getUnlitUniformColorSpace(renderer));state.buffers.color.setClear(_rgb.r,_rgb.g,_rgb.b,alpha,premultipliedAlpha)}function dispose(){if(boxMesh!==undefined){boxMesh.geometry.dispose();boxMesh.material.dispose();boxMesh=undefined}if(planeMesh!==undefined){planeMesh.geometry.dispose();planeMesh.material.dispose();planeMesh=undefined}}return{getClearColor:function(){return clearColor},setClearColor:function(color,alpha=1){clearColor.set(color);clearAlpha=alpha;setClear(clearColor,clearAlpha)},getClearAlpha:function(){return clearAlpha},setClearAlpha:function(alpha){clearAlpha=alpha;setClear(clearColor,clearAlpha)},render:render,addToRenderList:addToRenderList,dispose:dispose}}function WebGLBindingStates(gl,attributes){const maxVertexAttributes=gl.getParameter(gl.MAX_VERTEX_ATTRIBS);const bindingStates={};const defaultState=createBindingState(null);let currentState=defaultState;let forceUpdate=false;function setup(object,material,program,geometry,index){let updateBuffers=false;const state=getBindingState(geometry,program,material);if(currentState!==state){currentState=state;bindVertexArrayObject(currentState.object)}updateBuffers=needsUpdate(object,geometry,program,index);if(updateBuffers)saveCache(object,geometry,program,index);if(index!==null){attributes.update(index,gl.ELEMENT_ARRAY_BUFFER)}if(updateBuffers||forceUpdate){forceUpdate=false;setupVertexAttributes(object,material,program,geometry);if(index!==null){gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER,attributes.get(index).buffer)}}}function createVertexArrayObject(){return gl.createVertexArray()}function bindVertexArrayObject(vao){return gl.bindVertexArray(vao)}function deleteVertexArrayObject(vao){return gl.deleteVertexArray(vao)}function getBindingState(geometry,program,material){const wireframe=material.wireframe===true;let programMap=bindingStates[geometry.id];if(programMap===undefined){programMap={};bindingStates[geometry.id]=programMap}let stateMap=programMap[program.id];if(stateMap===undefined){stateMap={};programMap[program.id]=stateMap}let state=stateMap[wireframe];if(state===undefined){state=createBindingState(createVertexArrayObject());stateMap[wireframe]=state}return state}function createBindingState(vao){const newAttributes=[];const enabledAttributes=[];const attributeDivisors=[];for(let i=0;i=0){const cachedAttribute=cachedAttributes[name];let geometryAttribute=geometryAttributes[name];if(geometryAttribute===undefined){if(name==="instanceMatrix"&&object.instanceMatrix)geometryAttribute=object.instanceMatrix;if(name==="instanceColor"&&object.instanceColor)geometryAttribute=object.instanceColor}if(cachedAttribute===undefined)return true;if(cachedAttribute.attribute!==geometryAttribute)return true;if(geometryAttribute&&cachedAttribute.data!==geometryAttribute.data)return true;attributesNum++}}if(currentState.attributesNum!==attributesNum)return true;if(currentState.index!==index)return true;return false}function saveCache(object,geometry,program,index){const cache={};const attributes=geometry.attributes;let attributesNum=0;const programAttributes=program.getAttributes();for(const name in programAttributes){const programAttribute=programAttributes[name];if(programAttribute.location>=0){let attribute=attributes[name];if(attribute===undefined){if(name==="instanceMatrix"&&object.instanceMatrix)attribute=object.instanceMatrix;if(name==="instanceColor"&&object.instanceColor)attribute=object.instanceColor}const data={};data.attribute=attribute;if(attribute&&attribute.data){data.data=attribute.data}cache[name]=data;attributesNum++}}currentState.attributes=cache;currentState.attributesNum=attributesNum;currentState.index=index}function initAttributes(){const newAttributes=currentState.newAttributes;for(let i=0,il=newAttributes.length;i=0){let geometryAttribute=geometryAttributes[name];if(geometryAttribute===undefined){if(name==="instanceMatrix"&&object.instanceMatrix)geometryAttribute=object.instanceMatrix;if(name==="instanceColor"&&object.instanceColor)geometryAttribute=object.instanceColor}if(geometryAttribute!==undefined){const normalized=geometryAttribute.normalized;const size=geometryAttribute.itemSize;const attribute=attributes.get(geometryAttribute);if(attribute===undefined)continue;const buffer=attribute.buffer;const type=attribute.type;const bytesPerElement=attribute.bytesPerElement;const integer=type===gl.INT||type===gl.UNSIGNED_INT||geometryAttribute.gpuType===IntType;if(geometryAttribute.isInterleavedBufferAttribute){const data=geometryAttribute.data;const stride=data.stride;const offset=geometryAttribute.offset;if(data.isInstancedInterleavedBuffer){for(let i=0;i0&&gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER,gl.HIGH_FLOAT).precision>0){return"highp"}precision="mediump"}if(precision==="mediump"){if(gl.getShaderPrecisionFormat(gl.VERTEX_SHADER,gl.MEDIUM_FLOAT).precision>0&&gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER,gl.MEDIUM_FLOAT).precision>0){return"mediump"}}return"lowp"}let precision=parameters.precision!==undefined?parameters.precision:"highp";const maxPrecision=getMaxPrecision(precision);if(maxPrecision!==precision){warn("WebGLRenderer:",precision,"not supported, using",maxPrecision,"instead.");precision=maxPrecision}const logarithmicDepthBuffer=parameters.logarithmicDepthBuffer===true;const reversedDepthBuffer=parameters.reversedDepthBuffer===true&&extensions.has("EXT_clip_control");const maxTextures=gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS);const maxVertexTextures=gl.getParameter(gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS);const maxTextureSize=gl.getParameter(gl.MAX_TEXTURE_SIZE);const maxCubemapSize=gl.getParameter(gl.MAX_CUBE_MAP_TEXTURE_SIZE);const maxAttributes=gl.getParameter(gl.MAX_VERTEX_ATTRIBS);const maxVertexUniforms=gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS);const maxVaryings=gl.getParameter(gl.MAX_VARYING_VECTORS);const maxFragmentUniforms=gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS);const maxSamples=gl.getParameter(gl.MAX_SAMPLES);const samples=gl.getParameter(gl.SAMPLES);return{isWebGL2:true,getMaxAnisotropy:getMaxAnisotropy,getMaxPrecision:getMaxPrecision,textureFormatReadable:textureFormatReadable,textureTypeReadable:textureTypeReadable,precision:precision,logarithmicDepthBuffer:logarithmicDepthBuffer,reversedDepthBuffer:reversedDepthBuffer,maxTextures:maxTextures,maxVertexTextures:maxVertexTextures,maxTextureSize:maxTextureSize,maxCubemapSize:maxCubemapSize,maxAttributes:maxAttributes,maxVertexUniforms:maxVertexUniforms,maxVaryings:maxVaryings,maxFragmentUniforms:maxFragmentUniforms,maxSamples:maxSamples,samples:samples}}function WebGLClipping(properties){const scope=this;let globalState=null,numGlobalPlanes=0,localClippingEnabled=false,renderingShadows=false;const plane=new Plane,viewNormalMatrix=new Matrix3,uniform={value:null,needsUpdate:false};this.uniform=uniform;this.numPlanes=0;this.numIntersection=0;this.init=function(planes,enableLocalClipping){const enabled=planes.length!==0||enableLocalClipping||numGlobalPlanes!==0||localClippingEnabled;localClippingEnabled=enableLocalClipping;numGlobalPlanes=planes.length;return enabled};this.beginShadows=function(){renderingShadows=true;projectPlanes(null)};this.endShadows=function(){renderingShadows=false};this.setGlobalState=function(planes,camera){globalState=projectPlanes(planes,camera,0)};this.setState=function(material,camera,useCache){const planes=material.clippingPlanes,clipIntersection=material.clipIntersection,clipShadows=material.clipShadows;const materialProperties=properties.get(material);if(!localClippingEnabled||planes===null||planes.length===0||renderingShadows&&!clipShadows){if(renderingShadows){projectPlanes(null)}else{resetGlobalState()}}else{const nGlobal=renderingShadows?0:numGlobalPlanes,lGlobal=nGlobal*4;let dstArray=materialProperties.clippingState||null;uniform.value=dstArray;dstArray=projectPlanes(planes,camera,lGlobal,useCache);for(let i=0;i!==lGlobal;++i){dstArray[i]=globalState[i]}materialProperties.clippingState=dstArray;this.numIntersection=clipIntersection?this.numPlanes:0;this.numPlanes+=nGlobal}};function resetGlobalState(){if(uniform.value!==globalState){uniform.value=globalState;uniform.needsUpdate=numGlobalPlanes>0}scope.numPlanes=numGlobalPlanes;scope.numIntersection=0}function projectPlanes(planes,camera,dstOffset,skipTransform){const nPlanes=planes!==null?planes.length:0;let dstArray=null;if(nPlanes!==0){dstArray=uniform.value;if(skipTransform!==true||dstArray===null){const flatSize=dstOffset+nPlanes*4,viewMatrix=camera.matrixWorldInverse;viewNormalMatrix.getNormalMatrix(viewMatrix);if(dstArray===null||dstArray.length0){const renderTarget=new WebGLCubeRenderTarget(image.height);renderTarget.fromEquirectangularTexture(renderer,texture);cubemaps.set(texture,renderTarget);texture.addEventListener("dispose",onTextureDispose);return mapTextureMapping(renderTarget.texture,texture.mapping)}else{return null}}}}return texture}function onTextureDispose(event){const texture=event.target;texture.removeEventListener("dispose",onTextureDispose);const cubemap=cubemaps.get(texture);if(cubemap!==undefined){cubemaps.delete(texture);cubemap.dispose()}}function dispose(){cubemaps=new WeakMap}return{get:get,dispose:dispose}}const LOD_MIN=4;const EXTRA_LOD_SIGMA=[0.125,0.215,0.35,0.446,0.526,0.582];const MAX_SAMPLES=20;const GGX_SAMPLES=256;const _flatCamera=new OrthographicCamera;const _clearColor=new Color;let _oldTarget=null;let _oldActiveCubeFace=0;let _oldActiveMipmapLevel=0;let _oldXrEnabled=false;const _origin=new Vector3;class PMREMGenerator{constructor(renderer){this._renderer=renderer;this._pingPongRenderTarget=null;this._lodMax=0;this._cubeSize=0;this._sizeLods=[];this._sigmas=[];this._lodMeshes=[];this._backgroundBox=null;this._cubemapMaterial=null;this._equirectMaterial=null;this._blurMaterial=null;this._ggxMaterial=null}fromScene(scene,sigma=0,near=0.1,far=100,options={}){const{size=256,position=_origin}=options;_oldTarget=this._renderer.getRenderTarget();_oldActiveCubeFace=this._renderer.getActiveCubeFace();_oldActiveMipmapLevel=this._renderer.getActiveMipmapLevel();_oldXrEnabled=this._renderer.xr.enabled;this._renderer.xr.enabled=false;this._setSize(size);const cubeUVRenderTarget=this._allocateTargets();cubeUVRenderTarget.depthBuffer=true;this._sceneToCubeUV(scene,near,far,cubeUVRenderTarget,position);if(sigma>0){this._blur(cubeUVRenderTarget,0,0,sigma)}this._applyPMREM(cubeUVRenderTarget);this._cleanup(cubeUVRenderTarget);return cubeUVRenderTarget}fromEquirectangular(equirectangular,renderTarget=null){return this._fromTexture(equirectangular,renderTarget)}fromCubemap(cubemap,renderTarget=null){return this._fromTexture(cubemap,renderTarget)}compileCubemapShader(){if(this._cubemapMaterial===null){this._cubemapMaterial=_getCubemapMaterial();this._compileMaterial(this._cubemapMaterial)}}compileEquirectangularShader(){if(this._equirectMaterial===null){this._equirectMaterial=_getEquirectMaterial();this._compileMaterial(this._equirectMaterial)}}dispose(){this._dispose();if(this._cubemapMaterial!==null)this._cubemapMaterial.dispose();if(this._equirectMaterial!==null)this._equirectMaterial.dispose();if(this._backgroundBox!==null){this._backgroundBox.geometry.dispose();this._backgroundBox.material.dispose()}}_setSize(cubeSize){this._lodMax=Math.floor(Math.log2(cubeSize));this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){if(this._blurMaterial!==null)this._blurMaterial.dispose();if(this._ggxMaterial!==null)this._ggxMaterial.dispose();if(this._pingPongRenderTarget!==null)this._pingPongRenderTarget.dispose();for(let i=0;i2?size:0,size,size);renderer.setRenderTarget(cubeUVRenderTarget);if(useSolidColor){renderer.render(backgroundBox,cubeCamera)}renderer.render(scene,cubeCamera)}renderer.toneMapping=toneMapping;renderer.autoClear=originalAutoClear;scene.background=background}_textureToCubeUV(texture,cubeUVRenderTarget){const renderer=this._renderer;const isCubeTexture=texture.mapping===CubeReflectionMapping||texture.mapping===CubeRefractionMapping;if(isCubeTexture){if(this._cubemapMaterial===null){this._cubemapMaterial=_getCubemapMaterial()}this._cubemapMaterial.uniforms.flipEnvMap.value=texture.isRenderTargetTexture===false?-1:1}else{if(this._equirectMaterial===null){this._equirectMaterial=_getEquirectMaterial()}}const material=isCubeTexture?this._cubemapMaterial:this._equirectMaterial;const mesh=this._lodMeshes[0];mesh.material=material;const uniforms=material.uniforms;uniforms["envMap"].value=texture;const size=this._cubeSize;_setViewport(cubeUVRenderTarget,0,0,3*size,2*size);renderer.setRenderTarget(cubeUVRenderTarget);renderer.render(mesh,_flatCamera)}_applyPMREM(cubeUVRenderTarget){const renderer=this._renderer;const autoClear=renderer.autoClear;renderer.autoClear=false;const n=this._lodMeshes.length;for(let i=1;i_lodMax-LOD_MIN?lodOut-_lodMax+LOD_MIN:0);const y=4*(this._cubeSize-outputSize);ggxUniforms["envMap"].value=cubeUVRenderTarget.texture;ggxUniforms["roughness"].value=adjustedRoughness;ggxUniforms["mipInt"].value=_lodMax-lodIn;_setViewport(pingPongRenderTarget,x,y,3*outputSize,2*outputSize);renderer.setRenderTarget(pingPongRenderTarget);renderer.render(ggxMesh,_flatCamera);ggxUniforms["envMap"].value=pingPongRenderTarget.texture;ggxUniforms["roughness"].value=0;ggxUniforms["mipInt"].value=_lodMax-lodOut;_setViewport(cubeUVRenderTarget,x,y,3*outputSize,2*outputSize);renderer.setRenderTarget(cubeUVRenderTarget);renderer.render(ggxMesh,_flatCamera)}_blur(cubeUVRenderTarget,lodIn,lodOut,sigma,poleAxis){const pingPongRenderTarget=this._pingPongRenderTarget;this._halfBlur(cubeUVRenderTarget,pingPongRenderTarget,lodIn,lodOut,sigma,"latitudinal",poleAxis);this._halfBlur(pingPongRenderTarget,cubeUVRenderTarget,lodOut,lodOut,sigma,"longitudinal",poleAxis)}_halfBlur(targetIn,targetOut,lodIn,lodOut,sigmaRadians,direction,poleAxis){const renderer=this._renderer;const blurMaterial=this._blurMaterial;if(direction!=="latitudinal"&&direction!=="longitudinal"){error("blur direction must be either latitudinal or longitudinal!")}const STANDARD_DEVIATIONS=3;const blurMesh=this._lodMeshes[lodOut];blurMesh.material=blurMaterial;const blurUniforms=blurMaterial.uniforms;const pixels=this._sizeLods[lodIn]-1;const radiansPerPixel=isFinite(sigmaRadians)?Math.PI/(2*pixels):2*Math.PI/(2*MAX_SAMPLES-1);const sigmaPixels=sigmaRadians/radiansPerPixel;const samples=isFinite(sigmaRadians)?1+Math.floor(STANDARD_DEVIATIONS*sigmaPixels):MAX_SAMPLES;if(samples>MAX_SAMPLES){warn(`sigmaRadians, ${sigmaRadians}, is too large and will clip, as it requested ${samples} samples when the maximum is set to ${MAX_SAMPLES}`)}const weights=[];let sum=0;for(let i=0;i_lodMax-LOD_MIN?lodOut-_lodMax+LOD_MIN:0);const y=4*(this._cubeSize-outputSize);_setViewport(targetOut,x,y,3*outputSize,2*outputSize);renderer.setRenderTarget(targetOut);renderer.render(blurMesh,_flatCamera)}}function _createPlanes(lodMax){const sizeLods=[];const sigmas=[];const lodMeshes=[];let lod=lodMax;const totalLods=lodMax-LOD_MIN+1+EXTRA_LOD_SIGMA.length;for(let i=0;ilodMax-LOD_MIN){sigma=EXTRA_LOD_SIGMA[i-lodMax+LOD_MIN-1]}else if(i===0){sigma=0}sigmas.push(sigma);const texelSize=1/(sizeLod-2);const min=-texelSize;const max=1+texelSize;const uv1=[min,min,max,min,max,max,min,min,max,max,min,max];const cubeFaces=6;const vertices=6;const positionSize=3;const uvSize=2;const faceIndexSize=1;const position=new Float32Array(positionSize*vertices*cubeFaces);const uv=new Float32Array(uvSize*vertices*cubeFaces);const faceIndex=new Float32Array(faceIndexSize*vertices*cubeFaces);for(let face=0;face2?0:-1;const coordinates=[x,y,0,x+2/3,y,0,x+2/3,y+1,0,x,y,0,x+2/3,y+1,0,x,y+1,0];position.set(coordinates,positionSize*vertices*face);uv.set(uv1,uvSize*vertices*face);const fill=[face,face,face,face,face,face];faceIndex.set(fill,faceIndexSize*vertices*face)}const planes=new BufferGeometry;planes.setAttribute("position",new BufferAttribute(position,positionSize));planes.setAttribute("uv",new BufferAttribute(uv,uvSize));planes.setAttribute("faceIndex",new BufferAttribute(faceIndex,faceIndexSize));lodMeshes.push(new Mesh(planes,null));if(lod>LOD_MIN){lod--}}return{lodMeshes,sizeLods,sigmas}}function _createRenderTarget(width,height,params){const cubeUVRenderTarget=new WebGLRenderTarget(width,height,params);cubeUVRenderTarget.texture.mapping=CubeUVReflectionMapping;cubeUVRenderTarget.texture.name="PMREM.cubeUv";cubeUVRenderTarget.scissorTest=true;return cubeUVRenderTarget}function _setViewport(target,x,y,width,height){target.viewport.set(x,y,width,height);target.scissor.set(x,y,width,height)}function _getGGXShader(lodMax,width,height){const shaderMaterial=new ShaderMaterial({name:"PMREMGGXConvolution",defines:{"GGX_SAMPLES":GGX_SAMPLES,"CUBEUV_TEXEL_WIDTH":1/width,"CUBEUV_TEXEL_HEIGHT":1/height,"CUBEUV_MAX_MIP":`${lodMax}.0`},uniforms:{"envMap":{value:null},"roughness":{value:0},"mipInt":{value:0}},vertexShader:_getCommonVertexShader(),fragmentShader:` precision highp float; precision highp int; varying vec3 vOutputDirection; uniform sampler2D envMap; uniform float roughness; uniform float mipInt; #define ENVMAP_TYPE_CUBE_UV #include #define PI 3.14159265359 // Van der Corput radical inverse float radicalInverse_VdC(uint bits) { bits = (bits << 16u) | (bits >> 16u); bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u); bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u); bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u); bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u); return float(bits) * 2.3283064365386963e-10; // / 0x100000000 } // Hammersley sequence vec2 hammersley(uint i, uint N) { return vec2(float(i) / float(N), radicalInverse_VdC(i)); } // GGX VNDF importance sampling (Eric Heitz 2018) // "Sampling the GGX Distribution of Visible Normals" // https://jcgt.org/published/0007/04/01/ vec3 importanceSampleGGX_VNDF(vec2 Xi, vec3 V, float roughness) { float alpha = roughness * roughness; // Section 3.2: Transform view direction to hemisphere configuration vec3 Vh = normalize(vec3(alpha * V.x, alpha * V.y, V.z)); // Section 4.1: Orthonormal basis float lensq = Vh.x * Vh.x + Vh.y * Vh.y; vec3 T1 = lensq > 0.0 ? vec3(-Vh.y, Vh.x, 0.0) / sqrt(lensq) : vec3(1.0, 0.0, 0.0); vec3 T2 = cross(Vh, T1); // Section 4.2: Parameterization of projected area float r = sqrt(Xi.x); float phi = 2.0 * PI * Xi.y; float t1 = r * cos(phi); float t2 = r * sin(phi); float s = 0.5 * (1.0 + Vh.z); t2 = (1.0 - s) * sqrt(1.0 - t1 * t1) + s * t2; // Section 4.3: Reprojection onto hemisphere vec3 Nh = t1 * T1 + t2 * T2 + sqrt(max(0.0, 1.0 - t1 * t1 - t2 * t2)) * Vh; // Section 3.4: Transform back to ellipsoid configuration return normalize(vec3(alpha * Nh.x, alpha * Nh.y, max(0.0, Nh.z))); } void main() { vec3 N = normalize(vOutputDirection); vec3 V = N; // Assume view direction equals normal for pre-filtering vec3 prefilteredColor = vec3(0.0); float totalWeight = 0.0; // For very low roughness, just sample the environment directly if (roughness < 0.001) { gl_FragColor = vec4(bilinearCubeUV(envMap, N, mipInt), 1.0); return; } // Tangent space basis for VNDF sampling vec3 up = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); vec3 tangent = normalize(cross(up, N)); vec3 bitangent = cross(N, tangent); for(uint i = 0u; i < uint(GGX_SAMPLES); i++) { vec2 Xi = hammersley(i, uint(GGX_SAMPLES)); // For PMREM, V = N, so in tangent space V is always (0, 0, 1) vec3 H_tangent = importanceSampleGGX_VNDF(Xi, vec3(0.0, 0.0, 1.0), roughness); // Transform H back to world space vec3 H = normalize(tangent * H_tangent.x + bitangent * H_tangent.y + N * H_tangent.z); vec3 L = normalize(2.0 * dot(V, H) * H - V); float NdotL = max(dot(N, L), 0.0); if(NdotL > 0.0) { // Sample environment at fixed mip level // VNDF importance sampling handles the distribution filtering vec3 sampleColor = bilinearCubeUV(envMap, L, mipInt); // Weight by NdotL for the split-sum approximation // VNDF PDF naturally accounts for the visible microfacet distribution prefilteredColor += sampleColor * NdotL; totalWeight += NdotL; } } if (totalWeight > 0.0) { prefilteredColor = prefilteredColor / totalWeight; } gl_FragColor = vec4(prefilteredColor, 1.0); } `,blending:NoBlending,depthTest:false,depthWrite:false});return shaderMaterial}function _getBlurShader(lodMax,width,height){const weights=new Float32Array(MAX_SAMPLES);const poleAxis=new Vector3(0,1,0);const shaderMaterial=new ShaderMaterial({name:"SphericalGaussianBlur",defines:{"n":MAX_SAMPLES,"CUBEUV_TEXEL_WIDTH":1/width,"CUBEUV_TEXEL_HEIGHT":1/height,"CUBEUV_MAX_MIP":`${lodMax}.0`},uniforms:{"envMap":{value:null},"samples":{value:1},"weights":{value:weights},"latitudinal":{value:false},"dTheta":{value:0},"mipInt":{value:0},"poleAxis":{value:poleAxis}},vertexShader:_getCommonVertexShader(),fragmentShader:` precision mediump float; precision mediump int; varying vec3 vOutputDirection; uniform sampler2D envMap; uniform int samples; uniform float weights[ n ]; uniform bool latitudinal; uniform float dTheta; uniform float mipInt; uniform vec3 poleAxis; #define ENVMAP_TYPE_CUBE_UV #include vec3 getSample( float theta, vec3 axis ) { float cosTheta = cos( theta ); // Rodrigues' axis-angle rotation vec3 sampleDirection = vOutputDirection * cosTheta + cross( axis, vOutputDirection ) * sin( theta ) + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); return bilinearCubeUV( envMap, sampleDirection, mipInt ); } void main() { vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); if ( all( equal( axis, vec3( 0.0 ) ) ) ) { axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); } axis = normalize( axis ); gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); for ( int i = 1; i < n; i++ ) { if ( i >= samples ) { break; } float theta = dTheta * float( i ); gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); } } `,blending:NoBlending,depthTest:false,depthWrite:false});return shaderMaterial}function _getEquirectMaterial(){return new ShaderMaterial({name:"EquirectangularToCubeUV",uniforms:{"envMap":{value:null}},vertexShader:_getCommonVertexShader(),fragmentShader:` precision mediump float; precision mediump int; varying vec3 vOutputDirection; uniform sampler2D envMap; #include void main() { vec3 outputDirection = normalize( vOutputDirection ); vec2 uv = equirectUv( outputDirection ); gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); } `,blending:NoBlending,depthTest:false,depthWrite:false})}function _getCubemapMaterial(){return new ShaderMaterial({name:"CubemapToCubeUV",uniforms:{"envMap":{value:null},"flipEnvMap":{value:-1}},vertexShader:_getCommonVertexShader(),fragmentShader:` precision mediump float; precision mediump int; uniform float flipEnvMap; varying vec3 vOutputDirection; uniform samplerCube envMap; void main() { gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); } `,blending:NoBlending,depthTest:false,depthWrite:false})}function _getCommonVertexShader(){return` precision mediump float; precision mediump int; attribute float faceIndex; varying vec3 vOutputDirection; // RH coordinate system; PMREM face-indexing convention vec3 getDirection( vec2 uv, float face ) { uv = 2.0 * uv - 1.0; vec3 direction = vec3( uv, 1.0 ); if ( face == 0.0 ) { direction = direction.zyx; // ( 1, v, u ) pos x } else if ( face == 1.0 ) { direction = direction.xzy; direction.xz *= -1.0; // ( -u, 1, -v ) pos y } else if ( face == 2.0 ) { direction.x *= -1.0; // ( -u, v, 1 ) pos z } else if ( face == 3.0 ) { direction = direction.zyx; direction.xz *= -1.0; // ( -1, v, -u ) neg x } else if ( face == 4.0 ) { direction = direction.xzy; direction.xy *= -1.0; // ( -u, -1, v ) neg y } else if ( face == 5.0 ) { direction.z *= -1.0; // ( u, v, -1 ) neg z } return direction; } void main() { vOutputDirection = getDirection( uv, faceIndex ); gl_Position = vec4( position, 1.0 ); } `}function WebGLCubeUVMaps(renderer){let cubeUVmaps=new WeakMap;let pmremGenerator=null;function get(texture){if(texture&&texture.isTexture){const mapping=texture.mapping;const isEquirectMap=mapping===EquirectangularReflectionMapping||mapping===EquirectangularRefractionMapping;const isCubeMap=mapping===CubeReflectionMapping||mapping===CubeRefractionMapping;if(isEquirectMap||isCubeMap){let renderTarget=cubeUVmaps.get(texture);const currentPMREMVersion=renderTarget!==undefined?renderTarget.texture.pmremVersion:0;if(texture.isRenderTargetTexture&&texture.pmremVersion!==currentPMREMVersion){if(pmremGenerator===null)pmremGenerator=new PMREMGenerator(renderer);renderTarget=isEquirectMap?pmremGenerator.fromEquirectangular(texture,renderTarget):pmremGenerator.fromCubemap(texture,renderTarget);renderTarget.texture.pmremVersion=texture.pmremVersion;cubeUVmaps.set(texture,renderTarget);return renderTarget.texture}else{if(renderTarget!==undefined){return renderTarget.texture}else{const image=texture.image;if(isEquirectMap&&image&&image.height>0||isCubeMap&&image&&isCubeTextureComplete(image)){if(pmremGenerator===null)pmremGenerator=new PMREMGenerator(renderer);renderTarget=isEquirectMap?pmremGenerator.fromEquirectangular(texture):pmremGenerator.fromCubemap(texture);renderTarget.texture.pmremVersion=texture.pmremVersion;cubeUVmaps.set(texture,renderTarget);texture.addEventListener("dispose",onTextureDispose);return renderTarget.texture}else{return null}}}}}return texture}function isCubeTextureComplete(image){let count=0;const length=6;for(let i=0;icapabilities.maxTextureSize){height=Math.ceil(width/capabilities.maxTextureSize);width=capabilities.maxTextureSize}const buffer=new Float32Array(width*height*4*morphTargetsCount);const texture=new DataArrayTexture(buffer,width,height,morphTargetsCount);texture.type=FloatType;texture.needsUpdate=true;const vertexDataStride=vertexDataCount*4;for(let i=0;i #include void main() { gl_FragColor = texture2D( tDiffuse, vUv ); #ifdef LINEAR_TONE_MAPPING gl_FragColor.rgb = LinearToneMapping( gl_FragColor.rgb ); #elif defined( REINHARD_TONE_MAPPING ) gl_FragColor.rgb = ReinhardToneMapping( gl_FragColor.rgb ); #elif defined( CINEON_TONE_MAPPING ) gl_FragColor.rgb = CineonToneMapping( gl_FragColor.rgb ); #elif defined( ACES_FILMIC_TONE_MAPPING ) gl_FragColor.rgb = ACESFilmicToneMapping( gl_FragColor.rgb ); #elif defined( AGX_TONE_MAPPING ) gl_FragColor.rgb = AgXToneMapping( gl_FragColor.rgb ); #elif defined( NEUTRAL_TONE_MAPPING ) gl_FragColor.rgb = NeutralToneMapping( gl_FragColor.rgb ); #elif defined( CUSTOM_TONE_MAPPING ) gl_FragColor.rgb = CustomToneMapping( gl_FragColor.rgb ); #endif #ifdef SRGB_TRANSFER gl_FragColor = sRGBTransferOETF( gl_FragColor ); #endif }`,depthTest:false,depthWrite:false});const mesh=new Mesh(geometry,material);const camera=new OrthographicCamera(-1,1,1,-1,0,1);let _outputColorSpace=null;let _outputToneMapping=null;let _isCompositing=false;let _savedToneMapping;let _savedRenderTarget=null;let _effects=[];let _hasRenderPass=false;this.setSize=function(width,height){targetA.setSize(width,height);targetB.setSize(width,height);for(let i=0;i<_effects.length;i++){const effect=_effects[i];if(effect.setSize)effect.setSize(width,height)}};this.setEffects=function(effects){_effects=effects;_hasRenderPass=_effects.length>0&&_effects[0].isRenderPass===true;const width=targetA.width;const height=targetA.height;for(let i=0;i<_effects.length;i++){const effect=_effects[i];if(effect.setSize)effect.setSize(width,height)}};this.begin=function(renderer,renderTarget){if(_isCompositing)return false;if(renderer.toneMapping===NoToneMapping&&_effects.length===0)return false;_savedRenderTarget=renderTarget;if(renderTarget!==null){const width=renderTarget.width;const height=renderTarget.height;if(targetA.width!==width||targetA.height!==height){this.setSize(width,height)}}if(_hasRenderPass===false){renderer.setRenderTarget(targetA)}_savedToneMapping=renderer.toneMapping;renderer.toneMapping=NoToneMapping;return true};this.hasRenderPass=function(){return _hasRenderPass};this.end=function(renderer,deltaTime){renderer.toneMapping=_savedToneMapping;_isCompositing=true;let readBuffer=targetA;let writeBuffer=targetB;for(let i=0;i<_effects.length;i++){const effect=_effects[i];if(effect.enabled===false)continue;effect.render(renderer,writeBuffer,readBuffer,deltaTime);if(effect.needsSwap!==false){const temp=readBuffer;readBuffer=writeBuffer;writeBuffer=temp}}if(_outputColorSpace!==renderer.outputColorSpace||_outputToneMapping!==renderer.toneMapping){_outputColorSpace=renderer.outputColorSpace;_outputToneMapping=renderer.toneMapping;material.defines={};if(ColorManagement.getTransfer(_outputColorSpace)===SRGBTransfer)material.defines.SRGB_TRANSFER="";const toneMapping=toneMappingMap[_outputToneMapping];if(toneMapping)material.defines[toneMapping]="";material.needsUpdate=true}material.uniforms.tDiffuse.value=readBuffer.texture;renderer.setRenderTarget(_savedRenderTarget);renderer.render(mesh,camera);_savedRenderTarget=null;_isCompositing=false};this.isCompositing=function(){return _isCompositing};this.dispose=function(){targetA.dispose();targetB.dispose();geometry.dispose();material.dispose()}}const emptyTexture=new Texture;const emptyShadowTexture=new DepthTexture(1,1);const emptyArrayTexture=new DataArrayTexture;const empty3dTexture=new Data3DTexture;const emptyCubeTexture=new CubeTexture;const arrayCacheF32=[];const arrayCacheI32=[];const mat4array=new Float32Array(16);const mat3array=new Float32Array(9);const mat2array=new Float32Array(4);function flatten(array,nBlocks,blockSize){const firstElem=array[0];if(firstElem<=0||firstElem>0)return array;const n=nBlocks*blockSize;let r=arrayCacheF32[n];if(r===undefined){r=new Float32Array(n);arrayCacheF32[n]=r}if(nBlocks!==0){firstElem.toArray(r,0);for(let i=1,offset=0;i!==nBlocks;++i){offset+=blockSize;array[i].toArray(r,offset)}}return r}function arraysEqual(a,b){if(a.length!==b.length)return false;for(let i=0,l=a.length;i0){this.seq=shadowSamplers.concat(otherUniforms)}}setValue(gl,name,value,textures){const u=this.map[name];if(u!==undefined)u.setValue(gl,value,textures)}setOptional(gl,object,name){const v=object[name];if(v!==undefined)this.setValue(gl,name,v)}static upload(gl,seq,values,textures){for(let i=0,n=seq.length;i!==n;++i){const u=seq[i],v=values[u.id];if(v.needsUpdate!==false){u.setValue(gl,v.value,textures)}}}static seqWithValue(seq,values){const r=[];for(let i=0,n=seq.length;i!==n;++i){const u=seq[i];if(u.id in values)r.push(u)}return r}}function WebGLShader(gl,type,string){const shader=gl.createShader(type);gl.shaderSource(shader,string);gl.compileShader(shader);return shader}const COMPLETION_STATUS_KHR=37297;let programIdCount=0;function handleSource(string,errorLine){const lines=string.split("\n");const lines2=[];const from=Math.max(errorLine-6,0);const to=Math.min(errorLine+6,lines.length);for(let i=from;i":" "} ${line}: ${lines[i]}`)}return lines2.join("\n")}const _m0=new Matrix3;function getEncodingComponents(colorSpace){ColorManagement._getMatrix(_m0,ColorManagement.workingColorSpace,colorSpace);const encodingMatrix=`mat3( ${_m0.elements.map(v=>v.toFixed(4))} )`;switch(ColorManagement.getTransfer(colorSpace)){case LinearTransfer:return[encodingMatrix,"LinearTransferOETF"];case SRGBTransfer:return[encodingMatrix,"sRGBTransferOETF"];default:warn("WebGLProgram: Unsupported color space: ",colorSpace);return[encodingMatrix,"LinearTransferOETF"];}}function getShaderErrors(gl,shader,type){const status=gl.getShaderParameter(shader,gl.COMPILE_STATUS);const shaderInfoLog=gl.getShaderInfoLog(shader)||"";const errors=shaderInfoLog.trim();if(status&&errors==="")return"";const errorMatches=/ERROR: 0:(\d+)/.exec(errors);if(errorMatches){const errorLine=parseInt(errorMatches[1]);return type.toUpperCase()+"\n\n"+errors+"\n\n"+handleSource(gl.getShaderSource(shader),errorLine)}else{return errors}}function getTexelEncodingFunction(functionName,colorSpace){const components=getEncodingComponents(colorSpace);return[`vec4 ${functionName}( vec4 value ) {`,` return ${components[1]}( vec4( value.rgb * ${components[0]}, value.a ) );`,"}"].join("\n")}const toneMappingFunctions={[LinearToneMapping]:"Linear",[ReinhardToneMapping]:"Reinhard",[CineonToneMapping]:"Cineon",[ACESFilmicToneMapping]:"ACESFilmic",[AgXToneMapping]:"AgX",[NeutralToneMapping]:"Neutral",[CustomToneMapping]:"Custom"};function getToneMappingFunction(functionName,toneMapping){const toneMappingName=toneMappingFunctions[toneMapping];if(toneMappingName===undefined){warn("WebGLProgram: Unsupported toneMapping:",toneMapping);return"vec3 "+functionName+"( vec3 color ) { return LinearToneMapping( color ); }"}return"vec3 "+functionName+"( vec3 color ) { return "+toneMappingName+"ToneMapping( color ); }"}const _v0=new Vector3;function getLuminanceFunction(){ColorManagement.getLuminanceCoefficients(_v0);const r=_v0.x.toFixed(4);const g=_v0.y.toFixed(4);const b=_v0.z.toFixed(4);return["float luminance( const in vec3 rgb ) {",` const vec3 weights = vec3( ${r}, ${g}, ${b} );`,"\treturn dot( weights, rgb );","}"].join("\n")}function generateVertexExtensions(parameters){const chunks=[parameters.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",parameters.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""];return chunks.filter(filterEmptyLine).join("\n")}function generateDefines(defines){const chunks=[];for(const name in defines){const value=defines[name];if(value===false)continue;chunks.push("#define "+name+" "+value)}return chunks.join("\n")}function fetchAttributeLocations(gl,program){const attributes={};const n=gl.getProgramParameter(program,gl.ACTIVE_ATTRIBUTES);for(let i=0;i/gm;function resolveIncludes(string){return string.replace(includePattern,includeReplacer)}const shaderChunkMap=new Map;function includeReplacer(match,include){let string=ShaderChunk[include];if(string===undefined){const newInclude=shaderChunkMap.get(include);if(newInclude!==undefined){string=ShaderChunk[newInclude];warn("WebGLRenderer: Shader chunk \"%s\" has been deprecated. Use \"%s\" instead.",include,newInclude)}else{throw new Error("Can not resolve #include <"+include+">")}}return resolveIncludes(string)}const unrollLoopPattern=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function unrollLoops(string){return string.replace(unrollLoopPattern,loopReplacer)}function loopReplacer(match,start,end,snippet){let string="";for(let i=parseInt(start);i0){prefixVertex+="\n"}prefixFragment=["#define SHADER_TYPE "+parameters.shaderType,"#define SHADER_NAME "+parameters.shaderName,customDefines].filter(filterEmptyLine).join("\n");if(prefixFragment.length>0){prefixFragment+="\n"}}else{prefixVertex=[generatePrecision(parameters),"#define SHADER_TYPE "+parameters.shaderType,"#define SHADER_NAME "+parameters.shaderName,customDefines,parameters.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",parameters.batching?"#define USE_BATCHING":"",parameters.batchingColor?"#define USE_BATCHING_COLOR":"",parameters.instancing?"#define USE_INSTANCING":"",parameters.instancingColor?"#define USE_INSTANCING_COLOR":"",parameters.instancingMorph?"#define USE_INSTANCING_MORPH":"",parameters.useFog&¶meters.fog?"#define USE_FOG":"",parameters.useFog&¶meters.fogExp2?"#define FOG_EXP2":"",parameters.map?"#define USE_MAP":"",parameters.envMap?"#define USE_ENVMAP":"",parameters.envMap?"#define "+envMapModeDefine:"",parameters.lightMap?"#define USE_LIGHTMAP":"",parameters.aoMap?"#define USE_AOMAP":"",parameters.bumpMap?"#define USE_BUMPMAP":"",parameters.normalMap?"#define USE_NORMALMAP":"",parameters.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",parameters.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",parameters.displacementMap?"#define USE_DISPLACEMENTMAP":"",parameters.emissiveMap?"#define USE_EMISSIVEMAP":"",parameters.anisotropy?"#define USE_ANISOTROPY":"",parameters.anisotropyMap?"#define USE_ANISOTROPYMAP":"",parameters.clearcoatMap?"#define USE_CLEARCOATMAP":"",parameters.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",parameters.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",parameters.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",parameters.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",parameters.specularMap?"#define USE_SPECULARMAP":"",parameters.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",parameters.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",parameters.roughnessMap?"#define USE_ROUGHNESSMAP":"",parameters.metalnessMap?"#define USE_METALNESSMAP":"",parameters.alphaMap?"#define USE_ALPHAMAP":"",parameters.alphaHash?"#define USE_ALPHAHASH":"",parameters.transmission?"#define USE_TRANSMISSION":"",parameters.transmissionMap?"#define USE_TRANSMISSIONMAP":"",parameters.thicknessMap?"#define USE_THICKNESSMAP":"",parameters.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",parameters.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",parameters.mapUv?"#define MAP_UV "+parameters.mapUv:"",parameters.alphaMapUv?"#define ALPHAMAP_UV "+parameters.alphaMapUv:"",parameters.lightMapUv?"#define LIGHTMAP_UV "+parameters.lightMapUv:"",parameters.aoMapUv?"#define AOMAP_UV "+parameters.aoMapUv:"",parameters.emissiveMapUv?"#define EMISSIVEMAP_UV "+parameters.emissiveMapUv:"",parameters.bumpMapUv?"#define BUMPMAP_UV "+parameters.bumpMapUv:"",parameters.normalMapUv?"#define NORMALMAP_UV "+parameters.normalMapUv:"",parameters.displacementMapUv?"#define DISPLACEMENTMAP_UV "+parameters.displacementMapUv:"",parameters.metalnessMapUv?"#define METALNESSMAP_UV "+parameters.metalnessMapUv:"",parameters.roughnessMapUv?"#define ROUGHNESSMAP_UV "+parameters.roughnessMapUv:"",parameters.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+parameters.anisotropyMapUv:"",parameters.clearcoatMapUv?"#define CLEARCOATMAP_UV "+parameters.clearcoatMapUv:"",parameters.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+parameters.clearcoatNormalMapUv:"",parameters.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+parameters.clearcoatRoughnessMapUv:"",parameters.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+parameters.iridescenceMapUv:"",parameters.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+parameters.iridescenceThicknessMapUv:"",parameters.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+parameters.sheenColorMapUv:"",parameters.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+parameters.sheenRoughnessMapUv:"",parameters.specularMapUv?"#define SPECULARMAP_UV "+parameters.specularMapUv:"",parameters.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+parameters.specularColorMapUv:"",parameters.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+parameters.specularIntensityMapUv:"",parameters.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+parameters.transmissionMapUv:"",parameters.thicknessMapUv?"#define THICKNESSMAP_UV "+parameters.thicknessMapUv:"",parameters.vertexTangents&¶meters.flatShading===false?"#define USE_TANGENT":"",parameters.vertexColors?"#define USE_COLOR":"",parameters.vertexAlphas?"#define USE_COLOR_ALPHA":"",parameters.vertexUv1s?"#define USE_UV1":"",parameters.vertexUv2s?"#define USE_UV2":"",parameters.vertexUv3s?"#define USE_UV3":"",parameters.pointsUvs?"#define USE_POINTS_UV":"",parameters.flatShading?"#define FLAT_SHADED":"",parameters.skinning?"#define USE_SKINNING":"",parameters.morphTargets?"#define USE_MORPHTARGETS":"",parameters.morphNormals&¶meters.flatShading===false?"#define USE_MORPHNORMALS":"",parameters.morphColors?"#define USE_MORPHCOLORS":"",parameters.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+parameters.morphTextureStride:"",parameters.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+parameters.morphTargetsCount:"",parameters.doubleSided?"#define DOUBLE_SIDED":"",parameters.flipSided?"#define FLIP_SIDED":"",parameters.shadowMapEnabled?"#define USE_SHADOWMAP":"",parameters.shadowMapEnabled?"#define "+shadowMapTypeDefine:"",parameters.sizeAttenuation?"#define USE_SIZEATTENUATION":"",parameters.numLightProbes>0?"#define USE_LIGHT_PROBES":"",parameters.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",parameters.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH","\tuniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(filterEmptyLine).join("\n");prefixFragment=[generatePrecision(parameters),"#define SHADER_TYPE "+parameters.shaderType,"#define SHADER_NAME "+parameters.shaderName,customDefines,parameters.useFog&¶meters.fog?"#define USE_FOG":"",parameters.useFog&¶meters.fogExp2?"#define FOG_EXP2":"",parameters.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",parameters.map?"#define USE_MAP":"",parameters.matcap?"#define USE_MATCAP":"",parameters.envMap?"#define USE_ENVMAP":"",parameters.envMap?"#define "+envMapTypeDefine:"",parameters.envMap?"#define "+envMapModeDefine:"",parameters.envMap?"#define "+envMapBlendingDefine:"",envMapCubeUVSize?"#define CUBEUV_TEXEL_WIDTH "+envMapCubeUVSize.texelWidth:"",envMapCubeUVSize?"#define CUBEUV_TEXEL_HEIGHT "+envMapCubeUVSize.texelHeight:"",envMapCubeUVSize?"#define CUBEUV_MAX_MIP "+envMapCubeUVSize.maxMip+".0":"",parameters.lightMap?"#define USE_LIGHTMAP":"",parameters.aoMap?"#define USE_AOMAP":"",parameters.bumpMap?"#define USE_BUMPMAP":"",parameters.normalMap?"#define USE_NORMALMAP":"",parameters.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",parameters.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",parameters.emissiveMap?"#define USE_EMISSIVEMAP":"",parameters.anisotropy?"#define USE_ANISOTROPY":"",parameters.anisotropyMap?"#define USE_ANISOTROPYMAP":"",parameters.clearcoat?"#define USE_CLEARCOAT":"",parameters.clearcoatMap?"#define USE_CLEARCOATMAP":"",parameters.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",parameters.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",parameters.dispersion?"#define USE_DISPERSION":"",parameters.iridescence?"#define USE_IRIDESCENCE":"",parameters.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",parameters.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",parameters.specularMap?"#define USE_SPECULARMAP":"",parameters.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",parameters.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",parameters.roughnessMap?"#define USE_ROUGHNESSMAP":"",parameters.metalnessMap?"#define USE_METALNESSMAP":"",parameters.alphaMap?"#define USE_ALPHAMAP":"",parameters.alphaTest?"#define USE_ALPHATEST":"",parameters.alphaHash?"#define USE_ALPHAHASH":"",parameters.sheen?"#define USE_SHEEN":"",parameters.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",parameters.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",parameters.transmission?"#define USE_TRANSMISSION":"",parameters.transmissionMap?"#define USE_TRANSMISSIONMAP":"",parameters.thicknessMap?"#define USE_THICKNESSMAP":"",parameters.vertexTangents&¶meters.flatShading===false?"#define USE_TANGENT":"",parameters.vertexColors||parameters.instancingColor||parameters.batchingColor?"#define USE_COLOR":"",parameters.vertexAlphas?"#define USE_COLOR_ALPHA":"",parameters.vertexUv1s?"#define USE_UV1":"",parameters.vertexUv2s?"#define USE_UV2":"",parameters.vertexUv3s?"#define USE_UV3":"",parameters.pointsUvs?"#define USE_POINTS_UV":"",parameters.gradientMap?"#define USE_GRADIENTMAP":"",parameters.flatShading?"#define FLAT_SHADED":"",parameters.doubleSided?"#define DOUBLE_SIDED":"",parameters.flipSided?"#define FLIP_SIDED":"",parameters.shadowMapEnabled?"#define USE_SHADOWMAP":"",parameters.shadowMapEnabled?"#define "+shadowMapTypeDefine:"",parameters.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",parameters.numLightProbes>0?"#define USE_LIGHT_PROBES":"",parameters.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",parameters.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",parameters.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",parameters.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",parameters.toneMapping!==NoToneMapping?"#define TONE_MAPPING":"",parameters.toneMapping!==NoToneMapping?ShaderChunk["tonemapping_pars_fragment"]:"",parameters.toneMapping!==NoToneMapping?getToneMappingFunction("toneMapping",parameters.toneMapping):"",parameters.dithering?"#define DITHERING":"",parameters.opaque?"#define OPAQUE":"",ShaderChunk["colorspace_pars_fragment"],getTexelEncodingFunction("linearToOutputTexel",parameters.outputColorSpace),getLuminanceFunction(),parameters.useDepthPacking?"#define DEPTH_PACKING "+parameters.depthPacking:"","\n"].filter(filterEmptyLine).join("\n")}vertexShader=resolveIncludes(vertexShader);vertexShader=replaceLightNums(vertexShader,parameters);vertexShader=replaceClippingPlaneNums(vertexShader,parameters);fragmentShader=resolveIncludes(fragmentShader);fragmentShader=replaceLightNums(fragmentShader,parameters);fragmentShader=replaceClippingPlaneNums(fragmentShader,parameters);vertexShader=unrollLoops(vertexShader);fragmentShader=unrollLoops(fragmentShader);if(parameters.isRawShaderMaterial!==true){versionString="#version 300 es\n";prefixVertex=[customVertexExtensions,"#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+prefixVertex;prefixFragment=["#define varying in",parameters.glslVersion===GLSL3?"":"layout(location = 0) out highp vec4 pc_fragColor;",parameters.glslVersion===GLSL3?"":"#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"+prefixFragment}const vertexGlsl=versionString+prefixVertex+vertexShader;const fragmentGlsl=versionString+prefixFragment+fragmentShader;const glVertexShader=WebGLShader(gl,gl.VERTEX_SHADER,vertexGlsl);const glFragmentShader=WebGLShader(gl,gl.FRAGMENT_SHADER,fragmentGlsl);gl.attachShader(program,glVertexShader);gl.attachShader(program,glFragmentShader);if(parameters.index0AttributeName!==undefined){gl.bindAttribLocation(program,0,parameters.index0AttributeName)}else if(parameters.morphTargets===true){gl.bindAttribLocation(program,0,"position")}gl.linkProgram(program);function onFirstUse(self){if(renderer.debug.checkShaderErrors){const programInfoLog=gl.getProgramInfoLog(program)||"";const vertexShaderInfoLog=gl.getShaderInfoLog(glVertexShader)||"";const fragmentShaderInfoLog=gl.getShaderInfoLog(glFragmentShader)||"";const programLog=programInfoLog.trim();const vertexLog=vertexShaderInfoLog.trim();const fragmentLog=fragmentShaderInfoLog.trim();let runnable=true;let haveDiagnostics=true;if(gl.getProgramParameter(program,gl.LINK_STATUS)===false){runnable=false;if(typeof renderer.debug.onShaderError==="function"){renderer.debug.onShaderError(gl,program,glVertexShader,glFragmentShader)}else{const vertexErrors=getShaderErrors(gl,glVertexShader,"vertex");const fragmentErrors=getShaderErrors(gl,glFragmentShader,"fragment");error("THREE.WebGLProgram: Shader Error "+gl.getError()+" - "+"VALIDATE_STATUS "+gl.getProgramParameter(program,gl.VALIDATE_STATUS)+"\n\n"+"Material Name: "+self.name+"\n"+"Material Type: "+self.type+"\n\n"+"Program Info Log: "+programLog+"\n"+vertexErrors+"\n"+fragmentErrors)}}else if(programLog!==""){warn("WebGLProgram: Program Info Log:",programLog)}else if(vertexLog===""||fragmentLog===""){haveDiagnostics=false}if(haveDiagnostics){self.diagnostics={runnable:runnable,programLog:programLog,vertexShader:{log:vertexLog,prefix:prefixVertex},fragmentShader:{log:fragmentLog,prefix:prefixFragment}}}}gl.deleteShader(glVertexShader);gl.deleteShader(glFragmentShader);cachedUniforms=new WebGLUniforms(gl,program);cachedAttributes=fetchAttributeLocations(gl,program)}let cachedUniforms;this.getUniforms=function(){if(cachedUniforms===undefined){onFirstUse(this)}return cachedUniforms};let cachedAttributes;this.getAttributes=function(){if(cachedAttributes===undefined){onFirstUse(this)}return cachedAttributes};let programReady=parameters.rendererExtensionParallelShaderCompile===false;this.isReady=function(){if(programReady===false){programReady=gl.getProgramParameter(program,COMPLETION_STATUS_KHR)}return programReady};this.destroy=function(){bindingStates.releaseStatesOfProgram(this);gl.deleteProgram(program);this.program=undefined};this.type=parameters.shaderType;this.name=parameters.shaderName;this.id=programIdCount++;this.cacheKey=cacheKey;this.usedTimes=1;this.program=program;this.vertexShader=glVertexShader;this.fragmentShader=glFragmentShader;return this}let _id=0;class WebGLShaderCache{constructor(){this.shaderCache=new Map;this.materialCache=new Map}update(material){const vertexShader=material.vertexShader;const fragmentShader=material.fragmentShader;const vertexShaderStage=this._getShaderStage(vertexShader);const fragmentShaderStage=this._getShaderStage(fragmentShader);const materialShaders=this._getShaderCacheForMaterial(material);if(materialShaders.has(vertexShaderStage)===false){materialShaders.add(vertexShaderStage);vertexShaderStage.usedTimes++}if(materialShaders.has(fragmentShaderStage)===false){materialShaders.add(fragmentShaderStage);fragmentShaderStage.usedTimes++}return this}remove(material){const materialShaders=this.materialCache.get(material);for(const shaderStage of materialShaders){shaderStage.usedTimes--;if(shaderStage.usedTimes===0)this.shaderCache.delete(shaderStage.code)}this.materialCache.delete(material);return this}getVertexShaderID(material){return this._getShaderStage(material.vertexShader).id}getFragmentShaderID(material){return this._getShaderStage(material.fragmentShader).id}dispose(){this.shaderCache.clear();this.materialCache.clear()}_getShaderCacheForMaterial(material){const cache=this.materialCache;let set=cache.get(material);if(set===undefined){set=new Set;cache.set(material,set)}return set}_getShaderStage(code){const cache=this.shaderCache;let stage=cache.get(code);if(stage===undefined){stage=new WebGLShaderStage(code);cache.set(code,stage)}return stage}}class WebGLShaderStage{constructor(code){this.id=_id++;this.code=code;this.usedTimes=0}}function WebGLPrograms(renderer,cubemaps,cubeuvmaps,extensions,capabilities,bindingStates,clipping){const _programLayers=new Layers;const _customShaders=new WebGLShaderCache;const _activeChannels=new Set;const programs=[];const programsMap=new Map;const logarithmicDepthBuffer=capabilities.logarithmicDepthBuffer;let precision=capabilities.precision;const shaderIDs={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distance",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function getChannel(value){_activeChannels.add(value);if(value===0)return"uv";return`uv${value}`}function getParameters(material,lights,shadows,scene,object){const fog=scene.fog;const geometry=object.geometry;const environment=material.isMeshStandardMaterial?scene.environment:null;const envMap=(material.isMeshStandardMaterial?cubeuvmaps:cubemaps).get(material.envMap||environment);const envMapCubeUVHeight=!!envMap&&envMap.mapping===CubeUVReflectionMapping?envMap.image.height:null;const shaderID=shaderIDs[material.type];if(material.precision!==null){precision=capabilities.getMaxPrecision(material.precision);if(precision!==material.precision){warn("WebGLProgram.getParameters:",material.precision,"not supported, using",precision,"instead.")}}const morphAttribute=geometry.morphAttributes.position||geometry.morphAttributes.normal||geometry.morphAttributes.color;const morphTargetsCount=morphAttribute!==undefined?morphAttribute.length:0;let morphTextureStride=0;if(geometry.morphAttributes.position!==undefined)morphTextureStride=1;if(geometry.morphAttributes.normal!==undefined)morphTextureStride=2;if(geometry.morphAttributes.color!==undefined)morphTextureStride=3;let vertexShader,fragmentShader;let customVertexShaderID,customFragmentShaderID;if(shaderID){const shader=ShaderLib[shaderID];vertexShader=shader.vertexShader;fragmentShader=shader.fragmentShader}else{vertexShader=material.vertexShader;fragmentShader=material.fragmentShader;_customShaders.update(material);customVertexShaderID=_customShaders.getVertexShaderID(material);customFragmentShaderID=_customShaders.getFragmentShaderID(material)}const currentRenderTarget=renderer.getRenderTarget();const reversedDepthBuffer=renderer.state.buffers.depth.getReversed();const IS_INSTANCEDMESH=object.isInstancedMesh===true;const IS_BATCHEDMESH=object.isBatchedMesh===true;const HAS_MAP=!!material.map;const HAS_MATCAP=!!material.matcap;const HAS_ENVMAP=!!envMap;const HAS_AOMAP=!!material.aoMap;const HAS_LIGHTMAP=!!material.lightMap;const HAS_BUMPMAP=!!material.bumpMap;const HAS_NORMALMAP=!!material.normalMap;const HAS_DISPLACEMENTMAP=!!material.displacementMap;const HAS_EMISSIVEMAP=!!material.emissiveMap;const HAS_METALNESSMAP=!!material.metalnessMap;const HAS_ROUGHNESSMAP=!!material.roughnessMap;const HAS_ANISOTROPY=material.anisotropy>0;const HAS_CLEARCOAT=material.clearcoat>0;const HAS_DISPERSION=material.dispersion>0;const HAS_IRIDESCENCE=material.iridescence>0;const HAS_SHEEN=material.sheen>0;const HAS_TRANSMISSION=material.transmission>0;const HAS_ANISOTROPYMAP=HAS_ANISOTROPY&&!!material.anisotropyMap;const HAS_CLEARCOATMAP=HAS_CLEARCOAT&&!!material.clearcoatMap;const HAS_CLEARCOAT_NORMALMAP=HAS_CLEARCOAT&&!!material.clearcoatNormalMap;const HAS_CLEARCOAT_ROUGHNESSMAP=HAS_CLEARCOAT&&!!material.clearcoatRoughnessMap;const HAS_IRIDESCENCEMAP=HAS_IRIDESCENCE&&!!material.iridescenceMap;const HAS_IRIDESCENCE_THICKNESSMAP=HAS_IRIDESCENCE&&!!material.iridescenceThicknessMap;const HAS_SHEEN_COLORMAP=HAS_SHEEN&&!!material.sheenColorMap;const HAS_SHEEN_ROUGHNESSMAP=HAS_SHEEN&&!!material.sheenRoughnessMap;const HAS_SPECULARMAP=!!material.specularMap;const HAS_SPECULAR_COLORMAP=!!material.specularColorMap;const HAS_SPECULAR_INTENSITYMAP=!!material.specularIntensityMap;const HAS_TRANSMISSIONMAP=HAS_TRANSMISSION&&!!material.transmissionMap;const HAS_THICKNESSMAP=HAS_TRANSMISSION&&!!material.thicknessMap;const HAS_GRADIENTMAP=!!material.gradientMap;const HAS_ALPHAMAP=!!material.alphaMap;const HAS_ALPHATEST=material.alphaTest>0;const HAS_ALPHAHASH=!!material.alphaHash;const HAS_EXTENSIONS=!!material.extensions;let toneMapping=NoToneMapping;if(material.toneMapped){if(currentRenderTarget===null||currentRenderTarget.isXRRenderTarget===true){toneMapping=renderer.toneMapping}}const parameters={shaderID:shaderID,shaderType:material.type,shaderName:material.name,vertexShader:vertexShader,fragmentShader:fragmentShader,defines:material.defines,customVertexShaderID:customVertexShaderID,customFragmentShaderID:customFragmentShaderID,isRawShaderMaterial:material.isRawShaderMaterial===true,glslVersion:material.glslVersion,precision:precision,batching:IS_BATCHEDMESH,batchingColor:IS_BATCHEDMESH&&object._colorsTexture!==null,instancing:IS_INSTANCEDMESH,instancingColor:IS_INSTANCEDMESH&&object.instanceColor!==null,instancingMorph:IS_INSTANCEDMESH&&object.morphTexture!==null,outputColorSpace:currentRenderTarget===null?renderer.outputColorSpace:currentRenderTarget.isXRRenderTarget===true?currentRenderTarget.texture.colorSpace:LinearSRGBColorSpace,alphaToCoverage:!!material.alphaToCoverage,map:HAS_MAP,matcap:HAS_MATCAP,envMap:HAS_ENVMAP,envMapMode:HAS_ENVMAP&&envMap.mapping,envMapCubeUVHeight:envMapCubeUVHeight,aoMap:HAS_AOMAP,lightMap:HAS_LIGHTMAP,bumpMap:HAS_BUMPMAP,normalMap:HAS_NORMALMAP,displacementMap:HAS_DISPLACEMENTMAP,emissiveMap:HAS_EMISSIVEMAP,normalMapObjectSpace:HAS_NORMALMAP&&material.normalMapType===ObjectSpaceNormalMap,normalMapTangentSpace:HAS_NORMALMAP&&material.normalMapType===TangentSpaceNormalMap,metalnessMap:HAS_METALNESSMAP,roughnessMap:HAS_ROUGHNESSMAP,anisotropy:HAS_ANISOTROPY,anisotropyMap:HAS_ANISOTROPYMAP,clearcoat:HAS_CLEARCOAT,clearcoatMap:HAS_CLEARCOATMAP,clearcoatNormalMap:HAS_CLEARCOAT_NORMALMAP,clearcoatRoughnessMap:HAS_CLEARCOAT_ROUGHNESSMAP,dispersion:HAS_DISPERSION,iridescence:HAS_IRIDESCENCE,iridescenceMap:HAS_IRIDESCENCEMAP,iridescenceThicknessMap:HAS_IRIDESCENCE_THICKNESSMAP,sheen:HAS_SHEEN,sheenColorMap:HAS_SHEEN_COLORMAP,sheenRoughnessMap:HAS_SHEEN_ROUGHNESSMAP,specularMap:HAS_SPECULARMAP,specularColorMap:HAS_SPECULAR_COLORMAP,specularIntensityMap:HAS_SPECULAR_INTENSITYMAP,transmission:HAS_TRANSMISSION,transmissionMap:HAS_TRANSMISSIONMAP,thicknessMap:HAS_THICKNESSMAP,gradientMap:HAS_GRADIENTMAP,opaque:material.transparent===false&&material.blending===NormalBlending&&material.alphaToCoverage===false,alphaMap:HAS_ALPHAMAP,alphaTest:HAS_ALPHATEST,alphaHash:HAS_ALPHAHASH,combine:material.combine,mapUv:HAS_MAP&&getChannel(material.map.channel),aoMapUv:HAS_AOMAP&&getChannel(material.aoMap.channel),lightMapUv:HAS_LIGHTMAP&&getChannel(material.lightMap.channel),bumpMapUv:HAS_BUMPMAP&&getChannel(material.bumpMap.channel),normalMapUv:HAS_NORMALMAP&&getChannel(material.normalMap.channel),displacementMapUv:HAS_DISPLACEMENTMAP&&getChannel(material.displacementMap.channel),emissiveMapUv:HAS_EMISSIVEMAP&&getChannel(material.emissiveMap.channel),metalnessMapUv:HAS_METALNESSMAP&&getChannel(material.metalnessMap.channel),roughnessMapUv:HAS_ROUGHNESSMAP&&getChannel(material.roughnessMap.channel),anisotropyMapUv:HAS_ANISOTROPYMAP&&getChannel(material.anisotropyMap.channel),clearcoatMapUv:HAS_CLEARCOATMAP&&getChannel(material.clearcoatMap.channel),clearcoatNormalMapUv:HAS_CLEARCOAT_NORMALMAP&&getChannel(material.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:HAS_CLEARCOAT_ROUGHNESSMAP&&getChannel(material.clearcoatRoughnessMap.channel),iridescenceMapUv:HAS_IRIDESCENCEMAP&&getChannel(material.iridescenceMap.channel),iridescenceThicknessMapUv:HAS_IRIDESCENCE_THICKNESSMAP&&getChannel(material.iridescenceThicknessMap.channel),sheenColorMapUv:HAS_SHEEN_COLORMAP&&getChannel(material.sheenColorMap.channel),sheenRoughnessMapUv:HAS_SHEEN_ROUGHNESSMAP&&getChannel(material.sheenRoughnessMap.channel),specularMapUv:HAS_SPECULARMAP&&getChannel(material.specularMap.channel),specularColorMapUv:HAS_SPECULAR_COLORMAP&&getChannel(material.specularColorMap.channel),specularIntensityMapUv:HAS_SPECULAR_INTENSITYMAP&&getChannel(material.specularIntensityMap.channel),transmissionMapUv:HAS_TRANSMISSIONMAP&&getChannel(material.transmissionMap.channel),thicknessMapUv:HAS_THICKNESSMAP&&getChannel(material.thicknessMap.channel),alphaMapUv:HAS_ALPHAMAP&&getChannel(material.alphaMap.channel),vertexTangents:!!geometry.attributes.tangent&&(HAS_NORMALMAP||HAS_ANISOTROPY),vertexColors:material.vertexColors,vertexAlphas:material.vertexColors===true&&!!geometry.attributes.color&&geometry.attributes.color.itemSize===4,pointsUvs:object.isPoints===true&&!!geometry.attributes.uv&&(HAS_MAP||HAS_ALPHAMAP),fog:!!fog,useFog:material.fog===true,fogExp2:!!fog&&fog.isFogExp2,flatShading:material.flatShading===true&&material.wireframe===false,sizeAttenuation:material.sizeAttenuation===true,logarithmicDepthBuffer:logarithmicDepthBuffer,reversedDepthBuffer:reversedDepthBuffer,skinning:object.isSkinnedMesh===true,morphTargets:geometry.morphAttributes.position!==undefined,morphNormals:geometry.morphAttributes.normal!==undefined,morphColors:geometry.morphAttributes.color!==undefined,morphTargetsCount:morphTargetsCount,morphTextureStride:morphTextureStride,numDirLights:lights.directional.length,numPointLights:lights.point.length,numSpotLights:lights.spot.length,numSpotLightMaps:lights.spotLightMap.length,numRectAreaLights:lights.rectArea.length,numHemiLights:lights.hemi.length,numDirLightShadows:lights.directionalShadowMap.length,numPointLightShadows:lights.pointShadowMap.length,numSpotLightShadows:lights.spotShadowMap.length,numSpotLightShadowsWithMaps:lights.numSpotLightShadowsWithMaps,numLightProbes:lights.numLightProbes,numClippingPlanes:clipping.numPlanes,numClipIntersection:clipping.numIntersection,dithering:material.dithering,shadowMapEnabled:renderer.shadowMap.enabled&&shadows.length>0,shadowMapType:renderer.shadowMap.type,toneMapping:toneMapping,decodeVideoTexture:HAS_MAP&&material.map.isVideoTexture===true&&ColorManagement.getTransfer(material.map.colorSpace)===SRGBTransfer,decodeVideoTextureEmissive:HAS_EMISSIVEMAP&&material.emissiveMap.isVideoTexture===true&&ColorManagement.getTransfer(material.emissiveMap.colorSpace)===SRGBTransfer,premultipliedAlpha:material.premultipliedAlpha,doubleSided:material.side===DoubleSide,flipSided:material.side===BackSide,useDepthPacking:material.depthPacking>=0,depthPacking:material.depthPacking||0,index0AttributeName:material.index0AttributeName,extensionClipCullDistance:HAS_EXTENSIONS&&material.extensions.clipCullDistance===true&&extensions.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(HAS_EXTENSIONS&&material.extensions.multiDraw===true||IS_BATCHEDMESH)&&extensions.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:extensions.has("KHR_parallel_shader_compile"),customProgramCacheKey:material.customProgramCacheKey()};parameters.vertexUv1s=_activeChannels.has(1);parameters.vertexUv2s=_activeChannels.has(2);parameters.vertexUv3s=_activeChannels.has(3);_activeChannels.clear();return parameters}function getProgramCacheKey(parameters){const array=[];if(parameters.shaderID){array.push(parameters.shaderID)}else{array.push(parameters.customVertexShaderID);array.push(parameters.customFragmentShaderID)}if(parameters.defines!==undefined){for(const name in parameters.defines){array.push(name);array.push(parameters.defines[name])}}if(parameters.isRawShaderMaterial===false){getProgramCacheKeyParameters(array,parameters);getProgramCacheKeyBooleans(array,parameters);array.push(renderer.outputColorSpace)}array.push(parameters.customProgramCacheKey);return array.join()}function getProgramCacheKeyParameters(array,parameters){array.push(parameters.precision);array.push(parameters.outputColorSpace);array.push(parameters.envMapMode);array.push(parameters.envMapCubeUVHeight);array.push(parameters.mapUv);array.push(parameters.alphaMapUv);array.push(parameters.lightMapUv);array.push(parameters.aoMapUv);array.push(parameters.bumpMapUv);array.push(parameters.normalMapUv);array.push(parameters.displacementMapUv);array.push(parameters.emissiveMapUv);array.push(parameters.metalnessMapUv);array.push(parameters.roughnessMapUv);array.push(parameters.anisotropyMapUv);array.push(parameters.clearcoatMapUv);array.push(parameters.clearcoatNormalMapUv);array.push(parameters.clearcoatRoughnessMapUv);array.push(parameters.iridescenceMapUv);array.push(parameters.iridescenceThicknessMapUv);array.push(parameters.sheenColorMapUv);array.push(parameters.sheenRoughnessMapUv);array.push(parameters.specularMapUv);array.push(parameters.specularColorMapUv);array.push(parameters.specularIntensityMapUv);array.push(parameters.transmissionMapUv);array.push(parameters.thicknessMapUv);array.push(parameters.combine);array.push(parameters.fogExp2);array.push(parameters.sizeAttenuation);array.push(parameters.morphTargetsCount);array.push(parameters.morphAttributeCount);array.push(parameters.numDirLights);array.push(parameters.numPointLights);array.push(parameters.numSpotLights);array.push(parameters.numSpotLightMaps);array.push(parameters.numHemiLights);array.push(parameters.numRectAreaLights);array.push(parameters.numDirLightShadows);array.push(parameters.numPointLightShadows);array.push(parameters.numSpotLightShadows);array.push(parameters.numSpotLightShadowsWithMaps);array.push(parameters.numLightProbes);array.push(parameters.shadowMapType);array.push(parameters.toneMapping);array.push(parameters.numClippingPlanes);array.push(parameters.numClipIntersection);array.push(parameters.depthPacking)}function getProgramCacheKeyBooleans(array,parameters){_programLayers.disableAll();if(parameters.instancing)_programLayers.enable(0);if(parameters.instancingColor)_programLayers.enable(1);if(parameters.instancingMorph)_programLayers.enable(2);if(parameters.matcap)_programLayers.enable(3);if(parameters.envMap)_programLayers.enable(4);if(parameters.normalMapObjectSpace)_programLayers.enable(5);if(parameters.normalMapTangentSpace)_programLayers.enable(6);if(parameters.clearcoat)_programLayers.enable(7);if(parameters.iridescence)_programLayers.enable(8);if(parameters.alphaTest)_programLayers.enable(9);if(parameters.vertexColors)_programLayers.enable(10);if(parameters.vertexAlphas)_programLayers.enable(11);if(parameters.vertexUv1s)_programLayers.enable(12);if(parameters.vertexUv2s)_programLayers.enable(13);if(parameters.vertexUv3s)_programLayers.enable(14);if(parameters.vertexTangents)_programLayers.enable(15);if(parameters.anisotropy)_programLayers.enable(16);if(parameters.alphaHash)_programLayers.enable(17);if(parameters.batching)_programLayers.enable(18);if(parameters.dispersion)_programLayers.enable(19);if(parameters.batchingColor)_programLayers.enable(20);if(parameters.gradientMap)_programLayers.enable(21);array.push(_programLayers.mask);_programLayers.disableAll();if(parameters.fog)_programLayers.enable(0);if(parameters.useFog)_programLayers.enable(1);if(parameters.flatShading)_programLayers.enable(2);if(parameters.logarithmicDepthBuffer)_programLayers.enable(3);if(parameters.reversedDepthBuffer)_programLayers.enable(4);if(parameters.skinning)_programLayers.enable(5);if(parameters.morphTargets)_programLayers.enable(6);if(parameters.morphNormals)_programLayers.enable(7);if(parameters.morphColors)_programLayers.enable(8);if(parameters.premultipliedAlpha)_programLayers.enable(9);if(parameters.shadowMapEnabled)_programLayers.enable(10);if(parameters.doubleSided)_programLayers.enable(11);if(parameters.flipSided)_programLayers.enable(12);if(parameters.useDepthPacking)_programLayers.enable(13);if(parameters.dithering)_programLayers.enable(14);if(parameters.transmission)_programLayers.enable(15);if(parameters.sheen)_programLayers.enable(16);if(parameters.opaque)_programLayers.enable(17);if(parameters.pointsUvs)_programLayers.enable(18);if(parameters.decodeVideoTexture)_programLayers.enable(19);if(parameters.decodeVideoTextureEmissive)_programLayers.enable(20);if(parameters.alphaToCoverage)_programLayers.enable(21);array.push(_programLayers.mask)}function getUniforms(material){const shaderID=shaderIDs[material.type];let uniforms;if(shaderID){const shader=ShaderLib[shaderID];uniforms=UniformsUtils.clone(shader.uniforms)}else{uniforms=material.uniforms}return uniforms}function acquireProgram(parameters,cacheKey){let program=programsMap.get(cacheKey);if(program!==undefined){++program.usedTimes}else{program=new WebGLProgram(renderer,cacheKey,parameters,bindingStates);programs.push(program);programsMap.set(cacheKey,program)}return program}function releaseProgram(program){if(--program.usedTimes===0){const i=programs.indexOf(program);programs[i]=programs[programs.length-1];programs.pop();programsMap.delete(program.cacheKey);program.destroy()}}function releaseShaderCache(material){_customShaders.remove(material)}function dispose(){_customShaders.dispose()}return{getParameters:getParameters,getProgramCacheKey:getProgramCacheKey,getUniforms:getUniforms,acquireProgram:acquireProgram,releaseProgram:releaseProgram,releaseShaderCache:releaseShaderCache,programs:programs,dispose:dispose}}function WebGLProperties(){let properties=new WeakMap;function has(object){return properties.has(object)}function get(object){let map=properties.get(object);if(map===undefined){map={};properties.set(object,map)}return map}function remove(object){properties.delete(object)}function update(object,key,value){properties.get(object)[key]=value}function dispose(){properties=new WeakMap}return{has:has,get:get,remove:remove,update:update,dispose:dispose}}function painterSortStable(a,b){if(a.groupOrder!==b.groupOrder){return a.groupOrder-b.groupOrder}else if(a.renderOrder!==b.renderOrder){return a.renderOrder-b.renderOrder}else if(a.material.id!==b.material.id){return a.material.id-b.material.id}else if(a.z!==b.z){return a.z-b.z}else{return a.id-b.id}}function reversePainterSortStable(a,b){if(a.groupOrder!==b.groupOrder){return a.groupOrder-b.groupOrder}else if(a.renderOrder!==b.renderOrder){return a.renderOrder-b.renderOrder}else if(a.z!==b.z){return b.z-a.z}else{return a.id-b.id}}function WebGLRenderList(){const renderItems=[];let renderItemsIndex=0;const opaque=[];const transmissive=[];const transparent=[];function init(){renderItemsIndex=0;opaque.length=0;transmissive.length=0;transparent.length=0}function getNextRenderItem(object,geometry,material,groupOrder,z,group){let renderItem=renderItems[renderItemsIndex];if(renderItem===undefined){renderItem={id:object.id,object:object,geometry:geometry,material:material,groupOrder:groupOrder,renderOrder:object.renderOrder,z:z,group:group};renderItems[renderItemsIndex]=renderItem}else{renderItem.id=object.id;renderItem.object=object;renderItem.geometry=geometry;renderItem.material=material;renderItem.groupOrder=groupOrder;renderItem.renderOrder=object.renderOrder;renderItem.z=z;renderItem.group=group}renderItemsIndex++;return renderItem}function push(object,geometry,material,groupOrder,z,group){const renderItem=getNextRenderItem(object,geometry,material,groupOrder,z,group);if(material.transmission>0){transmissive.push(renderItem)}else if(material.transparent===true){transparent.push(renderItem)}else{opaque.push(renderItem)}}function unshift(object,geometry,material,groupOrder,z,group){const renderItem=getNextRenderItem(object,geometry,material,groupOrder,z,group);if(material.transmission>0){transmissive.unshift(renderItem)}else if(material.transparent===true){transparent.unshift(renderItem)}else{opaque.unshift(renderItem)}}function sort(customOpaqueSort,customTransparentSort){if(opaque.length>1)opaque.sort(customOpaqueSort||painterSortStable);if(transmissive.length>1)transmissive.sort(customTransparentSort||reversePainterSortStable);if(transparent.length>1)transparent.sort(customTransparentSort||reversePainterSortStable)}function finish(){for(let i=renderItemsIndex,il=renderItems.length;i=listArray.length){list=new WebGLRenderList;listArray.push(list)}else{list=listArray[renderCallDepth]}}return list}function dispose(){lists=new WeakMap}return{get:get,dispose:dispose}}function UniformsCache(){const lights={};return{get:function(light){if(lights[light.id]!==undefined){return lights[light.id]}let uniforms;switch(light.type){case"DirectionalLight":uniforms={direction:new Vector3,color:new Color};break;case"SpotLight":uniforms={position:new Vector3,direction:new Vector3,color:new Color,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":uniforms={position:new Vector3,color:new Color,distance:0,decay:0};break;case"HemisphereLight":uniforms={direction:new Vector3,skyColor:new Color,groundColor:new Color};break;case"RectAreaLight":uniforms={color:new Color,position:new Vector3,halfWidth:new Vector3,halfHeight:new Vector3};break;}lights[light.id]=uniforms;return uniforms}}}function ShadowUniformsCache(){const lights={};return{get:function(light){if(lights[light.id]!==undefined){return lights[light.id]}let uniforms;switch(light.type){case"DirectionalLight":uniforms={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"SpotLight":uniforms={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"PointLight":uniforms={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2,shadowCameraNear:1,shadowCameraFar:1000};break;}lights[light.id]=uniforms;return uniforms}}}let nextVersion=0;function shadowCastingAndTexturingLightsFirst(lightA,lightB){return(lightB.castShadow?2:0)-(lightA.castShadow?2:0)+(lightB.map?1:0)-(lightA.map?1:0)}function WebGLLights(extensions){const cache=new UniformsCache;const shadowCache=ShadowUniformsCache();const state={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let i=0;i<9;i++)state.probe.push(new Vector3);const vector3=new Vector3;const matrix4=new Matrix4;const matrix42=new Matrix4;function setup(lights){let r=0,g=0,b=0;for(let i=0;i<9;i++)state.probe[i].set(0,0,0);let directionalLength=0;let pointLength=0;let spotLength=0;let rectAreaLength=0;let hemiLength=0;let numDirectionalShadows=0;let numPointShadows=0;let numSpotShadows=0;let numSpotMaps=0;let numSpotShadowsWithMaps=0;let numLightProbes=0;lights.sort(shadowCastingAndTexturingLightsFirst);for(let i=0,l=lights.length;i0){if(extensions.has("OES_texture_float_linear")===true){state.rectAreaLTC1=UniformsLib.LTC_FLOAT_1;state.rectAreaLTC2=UniformsLib.LTC_FLOAT_2}else{state.rectAreaLTC1=UniformsLib.LTC_HALF_1;state.rectAreaLTC2=UniformsLib.LTC_HALF_2}}state.ambient[0]=r;state.ambient[1]=g;state.ambient[2]=b;const hash=state.hash;if(hash.directionalLength!==directionalLength||hash.pointLength!==pointLength||hash.spotLength!==spotLength||hash.rectAreaLength!==rectAreaLength||hash.hemiLength!==hemiLength||hash.numDirectionalShadows!==numDirectionalShadows||hash.numPointShadows!==numPointShadows||hash.numSpotShadows!==numSpotShadows||hash.numSpotMaps!==numSpotMaps||hash.numLightProbes!==numLightProbes){state.directional.length=directionalLength;state.spot.length=spotLength;state.rectArea.length=rectAreaLength;state.point.length=pointLength;state.hemi.length=hemiLength;state.directionalShadow.length=numDirectionalShadows;state.directionalShadowMap.length=numDirectionalShadows;state.pointShadow.length=numPointShadows;state.pointShadowMap.length=numPointShadows;state.spotShadow.length=numSpotShadows;state.spotShadowMap.length=numSpotShadows;state.directionalShadowMatrix.length=numDirectionalShadows;state.pointShadowMatrix.length=numPointShadows;state.spotLightMatrix.length=numSpotShadows+numSpotMaps-numSpotShadowsWithMaps;state.spotLightMap.length=numSpotMaps;state.numSpotLightShadowsWithMaps=numSpotShadowsWithMaps;state.numLightProbes=numLightProbes;hash.directionalLength=directionalLength;hash.pointLength=pointLength;hash.spotLength=spotLength;hash.rectAreaLength=rectAreaLength;hash.hemiLength=hemiLength;hash.numDirectionalShadows=numDirectionalShadows;hash.numPointShadows=numPointShadows;hash.numSpotShadows=numSpotShadows;hash.numSpotMaps=numSpotMaps;hash.numLightProbes=numLightProbes;state.version=nextVersion++}}function setupView(lights,camera){let directionalLength=0;let pointLength=0;let spotLength=0;let rectAreaLength=0;let hemiLength=0;const viewMatrix=camera.matrixWorldInverse;for(let i=0,l=lights.length;i=renderStateArray.length){renderState=new WebGLRenderState(extensions);renderStateArray.push(renderState)}else{renderState=renderStateArray[renderCallDepth]}}return renderState}function dispose(){renderStates=new WeakMap}return{get:get,dispose:dispose}}const vertex="void main() {\n\tgl_Position = vec4( position, 1.0 );\n}";const fragment="uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ).rg;\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ).r;\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( max( 0.0, squared_mean - mean * mean ) );\n\tgl_FragColor = vec4( mean, std_dev, 0.0, 1.0 );\n}";const _cubeDirections=[new Vector3(1,0,0),new Vector3(-1,0,0),new Vector3(0,1,0),new Vector3(0,-1,0),new Vector3(0,0,1),new Vector3(0,0,-1)];const _cubeUps=[new Vector3(0,-1,0),new Vector3(0,-1,0),new Vector3(0,0,1),new Vector3(0,0,-1),new Vector3(0,-1,0),new Vector3(0,-1,0)];const _projScreenMatrix=new Matrix4;const _lightPositionWorld=new Vector3;const _lookTarget=new Vector3;function WebGLShadowMap(renderer,objects,capabilities){let _frustum=new Frustum;const _shadowMapSize=new Vector2,_viewportSize=new Vector2,_viewport=new Vector4,_depthMaterial=new MeshDepthMaterial,_distanceMaterial=new MeshDistanceMaterial,_materialCache={},_maxTextureSize=capabilities.maxTextureSize;const shadowSide={[FrontSide]:BackSide,[BackSide]:FrontSide,[DoubleSide]:DoubleSide};const shadowMaterialVertical=new ShaderMaterial({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Vector2},radius:{value:4}},vertexShader:vertex,fragmentShader:fragment});const shadowMaterialHorizontal=shadowMaterialVertical.clone();shadowMaterialHorizontal.defines.HORIZONTAL_PASS=1;const fullScreenTri=new BufferGeometry;fullScreenTri.setAttribute("position",new BufferAttribute(new Float32Array([-1,-1,0.5,3,-1,0.5,-1,3,0.5]),3));const fullScreenMesh=new Mesh(fullScreenTri,shadowMaterialVertical);const scope=this;this.enabled=false;this.autoUpdate=true;this.needsUpdate=false;this.type=PCFShadowMap;let _previousType=this.type;this.render=function(lights,scene,camera){if(scope.enabled===false)return;if(scope.autoUpdate===false&&scope.needsUpdate===false)return;if(lights.length===0)return;if(lights.type===PCFSoftShadowMap){warn("WebGLShadowMap: PCFSoftShadowMap has been deprecated. Using PCFShadowMap instead.");lights.type=PCFShadowMap}const currentRenderTarget=renderer.getRenderTarget();const activeCubeFace=renderer.getActiveCubeFace();const activeMipmapLevel=renderer.getActiveMipmapLevel();const _state=renderer.state;_state.setBlending(NoBlending);if(_state.buffers.depth.getReversed()===true){_state.buffers.color.setClear(0,0,0,0)}else{_state.buffers.color.setClear(1,1,1,1)}_state.buffers.depth.setTest(true);_state.setScissorTest(false);const typeChanged=_previousType!==this.type;if(typeChanged){scene.traverse(function(object){if(object.material){if(Array.isArray(object.material)){object.material.forEach(mat=>mat.needsUpdate=true)}else{object.material.needsUpdate=true}}})}for(let i=0,il=lights.length;i_maxTextureSize||_shadowMapSize.y>_maxTextureSize){if(_shadowMapSize.x>_maxTextureSize){_viewportSize.x=Math.floor(_maxTextureSize/shadowFrameExtents.x);_shadowMapSize.x=_viewportSize.x*shadowFrameExtents.x;shadow.mapSize.x=_viewportSize.x}if(_shadowMapSize.y>_maxTextureSize){_viewportSize.y=Math.floor(_maxTextureSize/shadowFrameExtents.y);_shadowMapSize.y=_viewportSize.y*shadowFrameExtents.y;shadow.mapSize.y=_viewportSize.y}}if(shadow.map===null||typeChanged===true){if(shadow.map!==null){if(shadow.map.depthTexture!==null){shadow.map.depthTexture.dispose();shadow.map.depthTexture=null}shadow.map.dispose()}if(this.type===VSMShadowMap){if(light.isPointLight){warn("WebGLShadowMap: VSM shadow maps are not supported for PointLights. Use PCF or BasicShadowMap instead.");continue}shadow.map=new WebGLRenderTarget(_shadowMapSize.x,_shadowMapSize.y,{format:RGFormat,type:HalfFloatType,minFilter:LinearFilter,magFilter:LinearFilter,generateMipmaps:false});shadow.map.texture.name=light.name+".shadowMap";shadow.map.depthTexture=new DepthTexture(_shadowMapSize.x,_shadowMapSize.y,FloatType);shadow.map.depthTexture.name=light.name+".shadowMapDepth";shadow.map.depthTexture.format=DepthFormat;shadow.map.depthTexture.compareFunction=null;shadow.map.depthTexture.minFilter=NearestFilter;shadow.map.depthTexture.magFilter=NearestFilter}else{if(light.isPointLight){shadow.map=new WebGLCubeRenderTarget(_shadowMapSize.x);shadow.map.depthTexture=new CubeDepthTexture(_shadowMapSize.x,UnsignedIntType)}else{shadow.map=new WebGLRenderTarget(_shadowMapSize.x,_shadowMapSize.y);shadow.map.depthTexture=new DepthTexture(_shadowMapSize.x,_shadowMapSize.y,UnsignedIntType)}shadow.map.depthTexture.name=light.name+".shadowMap";shadow.map.depthTexture.format=DepthFormat;const reversedDepthBuffer=renderer.state.buffers.depth.getReversed();if(this.type===PCFShadowMap){shadow.map.depthTexture.compareFunction=reversedDepthBuffer?GreaterEqualCompare:LessEqualCompare;shadow.map.depthTexture.minFilter=LinearFilter;shadow.map.depthTexture.magFilter=LinearFilter}else{shadow.map.depthTexture.compareFunction=null;shadow.map.depthTexture.minFilter=NearestFilter;shadow.map.depthTexture.magFilter=NearestFilter}}shadow.camera.updateProjectionMatrix()}const faceCount=shadow.map.isWebGLCubeRenderTarget?6:1;for(let face=0;face0||material.map&&material.alphaTest>0||material.alphaToCoverage===true){const keyA=result.uuid,keyB=material.uuid;let materialsForVariant=_materialCache[keyA];if(materialsForVariant===undefined){materialsForVariant={};_materialCache[keyA]=materialsForVariant}let cachedMaterial=materialsForVariant[keyB];if(cachedMaterial===undefined){cachedMaterial=result.clone();materialsForVariant[keyB]=cachedMaterial;material.addEventListener("dispose",onMaterialDispose)}result=cachedMaterial}}result.visible=material.visible;result.wireframe=material.wireframe;if(type===VSMShadowMap){result.side=material.shadowSide!==null?material.shadowSide:material.side}else{result.side=material.shadowSide!==null?material.shadowSide:shadowSide[material.side]}result.alphaMap=material.alphaMap;result.alphaTest=material.alphaToCoverage===true?0.5:material.alphaTest;result.map=material.map;result.clipShadows=material.clipShadows;result.clippingPlanes=material.clippingPlanes;result.clipIntersection=material.clipIntersection;result.displacementMap=material.displacementMap;result.displacementScale=material.displacementScale;result.displacementBias=material.displacementBias;result.wireframeLinewidth=material.wireframeLinewidth;result.linewidth=material.linewidth;if(light.isPointLight===true&&result.isMeshDistanceMaterial===true){const materialProperties=renderer.properties.get(result);materialProperties.light=light}return result}function renderObject(object,camera,shadowCamera,light,type){if(object.visible===false)return;const visible=object.layers.test(camera.layers);if(visible&&(object.isMesh||object.isLine||object.isPoints)){if((object.castShadow||object.receiveShadow&&type===VSMShadowMap)&&(!object.frustumCulled||_frustum.intersectsObject(object))){object.modelViewMatrix.multiplyMatrices(shadowCamera.matrixWorldInverse,object.matrixWorld);const geometry=objects.update(object);const material=object.material;if(Array.isArray(material)){const groups=geometry.groups;for(let k=0,kl=groups.length;k=1}else if(glVersion.indexOf("OpenGL ES")!==-1){version=parseFloat(/^OpenGL ES (\d)/.exec(glVersion)[1]);lineWidthAvailable=version>=2}let currentTextureSlot=null;let currentBoundTextures={};const scissorParam=gl.getParameter(gl.SCISSOR_BOX);const viewportParam=gl.getParameter(gl.VIEWPORT);const currentScissor=new Vector4().fromArray(scissorParam);const currentViewport=new Vector4().fromArray(viewportParam);function createTexture(type,target,count,dimensions){const data=new Uint8Array(4);const texture=gl.createTexture();gl.bindTexture(type,texture);gl.texParameteri(type,gl.TEXTURE_MIN_FILTER,gl.NEAREST);gl.texParameteri(type,gl.TEXTURE_MAG_FILTER,gl.NEAREST);for(let i=0;imaxSize||dimensions.height>maxSize){scale=maxSize/Math.max(dimensions.width,dimensions.height)}if(scale<1){if(typeof HTMLImageElement!=="undefined"&&image instanceof HTMLImageElement||typeof HTMLCanvasElement!=="undefined"&&image instanceof HTMLCanvasElement||typeof ImageBitmap!=="undefined"&&image instanceof ImageBitmap||typeof VideoFrame!=="undefined"&&image instanceof VideoFrame){const width=Math.floor(scale*dimensions.width);const height=Math.floor(scale*dimensions.height);if(_canvas===undefined)_canvas=createCanvas(width,height);const canvas=needsNewCanvas?createCanvas(width,height):_canvas;canvas.width=width;canvas.height=height;const context=canvas.getContext("2d");context.drawImage(image,0,0,width,height);warn("WebGLRenderer: Texture has been resized from ("+dimensions.width+"x"+dimensions.height+") to ("+width+"x"+height+").");return canvas}else{if("data"in image){warn("WebGLRenderer: Image in DataTexture is too big ("+dimensions.width+"x"+dimensions.height+").")}return image}}return image}function textureNeedsGenerateMipmaps(texture){return texture.generateMipmaps}function generateMipmap(target){_gl.generateMipmap(target)}function getTargetType(texture){if(texture.isWebGLCubeRenderTarget)return _gl.TEXTURE_CUBE_MAP;if(texture.isWebGL3DRenderTarget)return _gl.TEXTURE_3D;if(texture.isWebGLArrayRenderTarget||texture.isCompressedArrayTexture)return _gl.TEXTURE_2D_ARRAY;return _gl.TEXTURE_2D}function getInternalFormat(internalFormatName,glFormat,glType,colorSpace,forceLinearTransfer=false){if(internalFormatName!==null){if(_gl[internalFormatName]!==undefined)return _gl[internalFormatName];warn("WebGLRenderer: Attempt to use non-existing WebGL internal format '"+internalFormatName+"'")}let internalFormat=glFormat;if(glFormat===_gl.RED){if(glType===_gl.FLOAT)internalFormat=_gl.R32F;if(glType===_gl.HALF_FLOAT)internalFormat=_gl.R16F;if(glType===_gl.UNSIGNED_BYTE)internalFormat=_gl.R8}if(glFormat===_gl.RED_INTEGER){if(glType===_gl.UNSIGNED_BYTE)internalFormat=_gl.R8UI;if(glType===_gl.UNSIGNED_SHORT)internalFormat=_gl.R16UI;if(glType===_gl.UNSIGNED_INT)internalFormat=_gl.R32UI;if(glType===_gl.BYTE)internalFormat=_gl.R8I;if(glType===_gl.SHORT)internalFormat=_gl.R16I;if(glType===_gl.INT)internalFormat=_gl.R32I}if(glFormat===_gl.RG){if(glType===_gl.FLOAT)internalFormat=_gl.RG32F;if(glType===_gl.HALF_FLOAT)internalFormat=_gl.RG16F;if(glType===_gl.UNSIGNED_BYTE)internalFormat=_gl.RG8}if(glFormat===_gl.RG_INTEGER){if(glType===_gl.UNSIGNED_BYTE)internalFormat=_gl.RG8UI;if(glType===_gl.UNSIGNED_SHORT)internalFormat=_gl.RG16UI;if(glType===_gl.UNSIGNED_INT)internalFormat=_gl.RG32UI;if(glType===_gl.BYTE)internalFormat=_gl.RG8I;if(glType===_gl.SHORT)internalFormat=_gl.RG16I;if(glType===_gl.INT)internalFormat=_gl.RG32I}if(glFormat===_gl.RGB_INTEGER){if(glType===_gl.UNSIGNED_BYTE)internalFormat=_gl.RGB8UI;if(glType===_gl.UNSIGNED_SHORT)internalFormat=_gl.RGB16UI;if(glType===_gl.UNSIGNED_INT)internalFormat=_gl.RGB32UI;if(glType===_gl.BYTE)internalFormat=_gl.RGB8I;if(glType===_gl.SHORT)internalFormat=_gl.RGB16I;if(glType===_gl.INT)internalFormat=_gl.RGB32I}if(glFormat===_gl.RGBA_INTEGER){if(glType===_gl.UNSIGNED_BYTE)internalFormat=_gl.RGBA8UI;if(glType===_gl.UNSIGNED_SHORT)internalFormat=_gl.RGBA16UI;if(glType===_gl.UNSIGNED_INT)internalFormat=_gl.RGBA32UI;if(glType===_gl.BYTE)internalFormat=_gl.RGBA8I;if(glType===_gl.SHORT)internalFormat=_gl.RGBA16I;if(glType===_gl.INT)internalFormat=_gl.RGBA32I}if(glFormat===_gl.RGB){if(glType===_gl.UNSIGNED_INT_5_9_9_9_REV)internalFormat=_gl.RGB9_E5;if(glType===_gl.UNSIGNED_INT_10F_11F_11F_REV)internalFormat=_gl.R11F_G11F_B10F}if(glFormat===_gl.RGBA){const transfer=forceLinearTransfer?LinearTransfer:ColorManagement.getTransfer(colorSpace);if(glType===_gl.FLOAT)internalFormat=_gl.RGBA32F;if(glType===_gl.HALF_FLOAT)internalFormat=_gl.RGBA16F;if(glType===_gl.UNSIGNED_BYTE)internalFormat=transfer===SRGBTransfer?_gl.SRGB8_ALPHA8:_gl.RGBA8;if(glType===_gl.UNSIGNED_SHORT_4_4_4_4)internalFormat=_gl.RGBA4;if(glType===_gl.UNSIGNED_SHORT_5_5_5_1)internalFormat=_gl.RGB5_A1}if(internalFormat===_gl.R16F||internalFormat===_gl.R32F||internalFormat===_gl.RG16F||internalFormat===_gl.RG32F||internalFormat===_gl.RGBA16F||internalFormat===_gl.RGBA32F){extensions.get("EXT_color_buffer_float")}return internalFormat}function getInternalDepthFormat(useStencil,depthType){let glInternalFormat;if(useStencil){if(depthType===null||depthType===UnsignedIntType||depthType===UnsignedInt248Type){glInternalFormat=_gl.DEPTH24_STENCIL8}else if(depthType===FloatType){glInternalFormat=_gl.DEPTH32F_STENCIL8}else if(depthType===UnsignedShortType){glInternalFormat=_gl.DEPTH24_STENCIL8;warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")}}else{if(depthType===null||depthType===UnsignedIntType||depthType===UnsignedInt248Type){glInternalFormat=_gl.DEPTH_COMPONENT24}else if(depthType===FloatType){glInternalFormat=_gl.DEPTH_COMPONENT32F}else if(depthType===UnsignedShortType){glInternalFormat=_gl.DEPTH_COMPONENT16}}return glInternalFormat}function getMipLevels(texture,image){if(textureNeedsGenerateMipmaps(texture)===true||texture.isFramebufferTexture&&texture.minFilter!==NearestFilter&&texture.minFilter!==LinearFilter){return Math.log2(Math.max(image.width,image.height))+1}else if(texture.mipmaps!==undefined&&texture.mipmaps.length>0){return texture.mipmaps.length}else if(texture.isCompressedTexture&&Array.isArray(texture.image)){return image.mipmaps.length}else{return 1}}function onTextureDispose(event){const texture=event.target;texture.removeEventListener("dispose",onTextureDispose);deallocateTexture(texture);if(texture.isVideoTexture){_videoTextures.delete(texture)}}function onRenderTargetDispose(event){const renderTarget=event.target;renderTarget.removeEventListener("dispose",onRenderTargetDispose);deallocateRenderTarget(renderTarget)}function deallocateTexture(texture){const textureProperties=properties.get(texture);if(textureProperties.__webglInit===undefined)return;const source=texture.source;const webglTextures=_sources.get(source);if(webglTextures){const webglTexture=webglTextures[textureProperties.__cacheKey];webglTexture.usedTimes--;if(webglTexture.usedTimes===0){deleteTexture(texture)}if(Object.keys(webglTextures).length===0){_sources.delete(source)}}properties.remove(texture)}function deleteTexture(texture){const textureProperties=properties.get(texture);_gl.deleteTexture(textureProperties.__webglTexture);const source=texture.source;const webglTextures=_sources.get(source);delete webglTextures[textureProperties.__cacheKey];info.memory.textures--}function deallocateRenderTarget(renderTarget){const renderTargetProperties=properties.get(renderTarget);if(renderTarget.depthTexture){renderTarget.depthTexture.dispose();properties.remove(renderTarget.depthTexture)}if(renderTarget.isWebGLCubeRenderTarget){for(let i=0;i<6;i++){if(Array.isArray(renderTargetProperties.__webglFramebuffer[i])){for(let level=0;level=capabilities.maxTextures){warn("WebGLTextures: Trying to use "+textureUnit+" texture units while this GPU supports only "+capabilities.maxTextures)}textureUnits+=1;return textureUnit}function getTextureCacheKey(texture){const array=[];array.push(texture.wrapS);array.push(texture.wrapT);array.push(texture.wrapR||0);array.push(texture.magFilter);array.push(texture.minFilter);array.push(texture.anisotropy);array.push(texture.internalFormat);array.push(texture.format);array.push(texture.type);array.push(texture.generateMipmaps);array.push(texture.premultiplyAlpha);array.push(texture.flipY);array.push(texture.unpackAlignment);array.push(texture.colorSpace);return array.join()}function setTexture2D(texture,slot){const textureProperties=properties.get(texture);if(texture.isVideoTexture)updateVideoTexture(texture);if(texture.isRenderTargetTexture===false&&texture.isExternalTexture!==true&&texture.version>0&&textureProperties.__version!==texture.version){const image=texture.image;if(image===null){warn("WebGLRenderer: Texture marked for update but no image data found.")}else if(image.complete===false){warn("WebGLRenderer: Texture marked for update but image is incomplete")}else{uploadTexture(textureProperties,texture,slot);return}}else if(texture.isExternalTexture){textureProperties.__webglTexture=texture.sourceTexture?texture.sourceTexture:null}state.bindTexture(_gl.TEXTURE_2D,textureProperties.__webglTexture,_gl.TEXTURE0+slot)}function setTexture2DArray(texture,slot){const textureProperties=properties.get(texture);if(texture.isRenderTargetTexture===false&&texture.version>0&&textureProperties.__version!==texture.version){uploadTexture(textureProperties,texture,slot);return}else if(texture.isExternalTexture){textureProperties.__webglTexture=texture.sourceTexture?texture.sourceTexture:null}state.bindTexture(_gl.TEXTURE_2D_ARRAY,textureProperties.__webglTexture,_gl.TEXTURE0+slot)}function setTexture3D(texture,slot){const textureProperties=properties.get(texture);if(texture.isRenderTargetTexture===false&&texture.version>0&&textureProperties.__version!==texture.version){uploadTexture(textureProperties,texture,slot);return}state.bindTexture(_gl.TEXTURE_3D,textureProperties.__webglTexture,_gl.TEXTURE0+slot)}function setTextureCube(texture,slot){const textureProperties=properties.get(texture);if(texture.isCubeDepthTexture!==true&&texture.version>0&&textureProperties.__version!==texture.version){uploadCubeTexture(textureProperties,texture,slot);return}state.bindTexture(_gl.TEXTURE_CUBE_MAP,textureProperties.__webglTexture,_gl.TEXTURE0+slot)}const wrappingToGL={[RepeatWrapping]:_gl.REPEAT,[ClampToEdgeWrapping]:_gl.CLAMP_TO_EDGE,[MirroredRepeatWrapping]:_gl.MIRRORED_REPEAT};const filterToGL={[NearestFilter]:_gl.NEAREST,[NearestMipmapNearestFilter]:_gl.NEAREST_MIPMAP_NEAREST,[NearestMipmapLinearFilter]:_gl.NEAREST_MIPMAP_LINEAR,[LinearFilter]:_gl.LINEAR,[LinearMipmapNearestFilter]:_gl.LINEAR_MIPMAP_NEAREST,[LinearMipmapLinearFilter]:_gl.LINEAR_MIPMAP_LINEAR};const compareToGL={[NeverCompare]:_gl.NEVER,[AlwaysCompare]:_gl.ALWAYS,[LessCompare]:_gl.LESS,[LessEqualCompare]:_gl.LEQUAL,[EqualCompare]:_gl.EQUAL,[GreaterEqualCompare]:_gl.GEQUAL,[GreaterCompare]:_gl.GREATER,[NotEqualCompare]:_gl.NOTEQUAL};function setTextureParameters(textureType,texture){if(texture.type===FloatType&&extensions.has("OES_texture_float_linear")===false&&(texture.magFilter===LinearFilter||texture.magFilter===LinearMipmapNearestFilter||texture.magFilter===NearestMipmapLinearFilter||texture.magFilter===LinearMipmapLinearFilter||texture.minFilter===LinearFilter||texture.minFilter===LinearMipmapNearestFilter||texture.minFilter===NearestMipmapLinearFilter||texture.minFilter===LinearMipmapLinearFilter)){warn("WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device.")}_gl.texParameteri(textureType,_gl.TEXTURE_WRAP_S,wrappingToGL[texture.wrapS]);_gl.texParameteri(textureType,_gl.TEXTURE_WRAP_T,wrappingToGL[texture.wrapT]);if(textureType===_gl.TEXTURE_3D||textureType===_gl.TEXTURE_2D_ARRAY){_gl.texParameteri(textureType,_gl.TEXTURE_WRAP_R,wrappingToGL[texture.wrapR])}_gl.texParameteri(textureType,_gl.TEXTURE_MAG_FILTER,filterToGL[texture.magFilter]);_gl.texParameteri(textureType,_gl.TEXTURE_MIN_FILTER,filterToGL[texture.minFilter]);if(texture.compareFunction){_gl.texParameteri(textureType,_gl.TEXTURE_COMPARE_MODE,_gl.COMPARE_REF_TO_TEXTURE);_gl.texParameteri(textureType,_gl.TEXTURE_COMPARE_FUNC,compareToGL[texture.compareFunction])}if(extensions.has("EXT_texture_filter_anisotropic")===true){if(texture.magFilter===NearestFilter)return;if(texture.minFilter!==NearestMipmapLinearFilter&&texture.minFilter!==LinearMipmapLinearFilter)return;if(texture.type===FloatType&&extensions.has("OES_texture_float_linear")===false)return;if(texture.anisotropy>1||properties.get(texture).__currentAnisotropy){const extension=extensions.get("EXT_texture_filter_anisotropic");_gl.texParameterf(textureType,extension.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(texture.anisotropy,capabilities.getMaxAnisotropy()));properties.get(texture).__currentAnisotropy=texture.anisotropy}}}function initTexture(textureProperties,texture){let forceUpload=false;if(textureProperties.__webglInit===undefined){textureProperties.__webglInit=true;texture.addEventListener("dispose",onTextureDispose)}const source=texture.source;let webglTextures=_sources.get(source);if(webglTextures===undefined){webglTextures={};_sources.set(source,webglTextures)}const textureCacheKey=getTextureCacheKey(texture);if(textureCacheKey!==textureProperties.__cacheKey){if(webglTextures[textureCacheKey]===undefined){webglTextures[textureCacheKey]={texture:_gl.createTexture(),usedTimes:0};info.memory.textures++;forceUpload=true}webglTextures[textureCacheKey].usedTimes++;const webglTexture=webglTextures[textureProperties.__cacheKey];if(webglTexture!==undefined){webglTextures[textureProperties.__cacheKey].usedTimes--;if(webglTexture.usedTimes===0){deleteTexture(texture)}}textureProperties.__cacheKey=textureCacheKey;textureProperties.__webglTexture=webglTextures[textureCacheKey].texture}return forceUpload}function getRow(index,rowLength,componentStride){return Math.floor(Math.floor(index/componentStride)/rowLength)}function updateTexture(texture,image,glFormat,glType){const componentStride=4;const updateRanges=texture.updateRanges;if(updateRanges.length===0){state.texSubImage2D(_gl.TEXTURE_2D,0,0,0,image.width,image.height,glFormat,glType,image.data)}else{updateRanges.sort((a,b)=>a.start-b.start);let mergeIndex=0;for(let i=1;i0){if(useTexStorage&&allocateMemory){state.texStorage2D(_gl.TEXTURE_2D,levels,glInternalFormat,mipmaps[0].width,mipmaps[0].height)}for(let i=0,il=mipmaps.length;i0){const layerByteLength=getByteLength(mipmap.width,mipmap.height,texture.format,texture.type);for(const layerIndex of texture.layerUpdates){const layerData=mipmap.data.subarray(layerIndex*layerByteLength/mipmap.data.BYTES_PER_ELEMENT,(layerIndex+1)*layerByteLength/mipmap.data.BYTES_PER_ELEMENT);state.compressedTexSubImage3D(_gl.TEXTURE_2D_ARRAY,i,0,0,layerIndex,mipmap.width,mipmap.height,1,glFormat,layerData)}texture.clearLayerUpdates()}else{state.compressedTexSubImage3D(_gl.TEXTURE_2D_ARRAY,i,0,0,0,mipmap.width,mipmap.height,image.depth,glFormat,mipmap.data)}}}else{state.compressedTexImage3D(_gl.TEXTURE_2D_ARRAY,i,glInternalFormat,mipmap.width,mipmap.height,image.depth,0,mipmap.data,0,0)}}else{warn("WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()")}}else{if(useTexStorage){if(dataReady){state.texSubImage3D(_gl.TEXTURE_2D_ARRAY,i,0,0,0,mipmap.width,mipmap.height,image.depth,glFormat,glType,mipmap.data)}}else{state.texImage3D(_gl.TEXTURE_2D_ARRAY,i,glInternalFormat,mipmap.width,mipmap.height,image.depth,0,glFormat,glType,mipmap.data)}}}}else{if(useTexStorage&&allocateMemory){state.texStorage2D(_gl.TEXTURE_2D,levels,glInternalFormat,mipmaps[0].width,mipmaps[0].height)}for(let i=0,il=mipmaps.length;i0){const layerByteLength=getByteLength(image.width,image.height,texture.format,texture.type);for(const layerIndex of texture.layerUpdates){const layerData=image.data.subarray(layerIndex*layerByteLength/image.data.BYTES_PER_ELEMENT,(layerIndex+1)*layerByteLength/image.data.BYTES_PER_ELEMENT);state.texSubImage3D(_gl.TEXTURE_2D_ARRAY,0,0,0,layerIndex,image.width,image.height,1,glFormat,glType,layerData)}texture.clearLayerUpdates()}else{state.texSubImage3D(_gl.TEXTURE_2D_ARRAY,0,0,0,0,image.width,image.height,image.depth,glFormat,glType,image.data)}}}else{state.texImage3D(_gl.TEXTURE_2D_ARRAY,0,glInternalFormat,image.width,image.height,image.depth,0,glFormat,glType,image.data)}}else if(texture.isData3DTexture){if(useTexStorage){if(allocateMemory){state.texStorage3D(_gl.TEXTURE_3D,levels,glInternalFormat,image.width,image.height,image.depth)}if(dataReady){state.texSubImage3D(_gl.TEXTURE_3D,0,0,0,0,image.width,image.height,image.depth,glFormat,glType,image.data)}}else{state.texImage3D(_gl.TEXTURE_3D,0,glInternalFormat,image.width,image.height,image.depth,0,glFormat,glType,image.data)}}else if(texture.isFramebufferTexture){if(allocateMemory){if(useTexStorage){state.texStorage2D(_gl.TEXTURE_2D,levels,glInternalFormat,image.width,image.height)}else{let width=image.width,height=image.height;for(let i=0;i>=1;height>>=1}}}}else{if(mipmaps.length>0){if(useTexStorage&&allocateMemory){const dimensions=getDimensions(mipmaps[0]);state.texStorage2D(_gl.TEXTURE_2D,levels,glInternalFormat,dimensions.width,dimensions.height)}for(let i=0,il=mipmaps.length;i0)levels++;const dimensions=getDimensions(cubeImage[0]);state.texStorage2D(_gl.TEXTURE_CUBE_MAP,levels,glInternalFormat,dimensions.width,dimensions.height)}for(let i=0;i<6;i++){if(isDataTexture){if(useTexStorage){if(dataReady){state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X+i,0,0,0,cubeImage[i].width,cubeImage[i].height,glFormat,glType,cubeImage[i].data)}}else{state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X+i,0,glInternalFormat,cubeImage[i].width,cubeImage[i].height,0,glFormat,glType,cubeImage[i].data)}for(let j=0;j>level);const height=Math.max(1,renderTarget.height>>level);if(textureTarget===_gl.TEXTURE_3D||textureTarget===_gl.TEXTURE_2D_ARRAY){state.texImage3D(textureTarget,level,glInternalFormat,width,height,renderTarget.depth,0,glFormat,glType,null)}else{state.texImage2D(textureTarget,level,glInternalFormat,width,height,0,glFormat,glType,null)}}state.bindFramebuffer(_gl.FRAMEBUFFER,framebuffer);if(useMultisampledRTT(renderTarget)){multisampledRTTExt.framebufferTexture2DMultisampleEXT(_gl.FRAMEBUFFER,attachment,textureTarget,textureProperties.__webglTexture,0,getRenderTargetSamples(renderTarget))}else if(textureTarget===_gl.TEXTURE_2D||textureTarget>=_gl.TEXTURE_CUBE_MAP_POSITIVE_X&&textureTarget<=_gl.TEXTURE_CUBE_MAP_NEGATIVE_Z){_gl.framebufferTexture2D(_gl.FRAMEBUFFER,attachment,textureTarget,textureProperties.__webglTexture,level)}state.bindFramebuffer(_gl.FRAMEBUFFER,null)}function setupRenderBufferStorage(renderbuffer,renderTarget,useMultisample){_gl.bindRenderbuffer(_gl.RENDERBUFFER,renderbuffer);if(renderTarget.depthBuffer){const depthTexture=renderTarget.depthTexture;const depthType=depthTexture&&depthTexture.isDepthTexture?depthTexture.type:null;const glInternalFormat=getInternalDepthFormat(renderTarget.stencilBuffer,depthType);const glAttachmentType=renderTarget.stencilBuffer?_gl.DEPTH_STENCIL_ATTACHMENT:_gl.DEPTH_ATTACHMENT;if(useMultisampledRTT(renderTarget)){multisampledRTTExt.renderbufferStorageMultisampleEXT(_gl.RENDERBUFFER,getRenderTargetSamples(renderTarget),glInternalFormat,renderTarget.width,renderTarget.height)}else if(useMultisample){_gl.renderbufferStorageMultisample(_gl.RENDERBUFFER,getRenderTargetSamples(renderTarget),glInternalFormat,renderTarget.width,renderTarget.height)}else{_gl.renderbufferStorage(_gl.RENDERBUFFER,glInternalFormat,renderTarget.width,renderTarget.height)}_gl.framebufferRenderbuffer(_gl.FRAMEBUFFER,glAttachmentType,_gl.RENDERBUFFER,renderbuffer)}else{const textures=renderTarget.textures;for(let i=0;i{delete renderTargetProperties.__boundDepthTexture;delete renderTargetProperties.__depthDisposeCallback;depthTexture.removeEventListener("dispose",disposeEvent)};depthTexture.addEventListener("dispose",disposeEvent);renderTargetProperties.__depthDisposeCallback=disposeEvent}renderTargetProperties.__boundDepthTexture=depthTexture}if(renderTarget.depthTexture&&!renderTargetProperties.__autoAllocateDepthBuffer){if(isCube){for(let i=0;i<6;i++){setupDepthTexture(renderTargetProperties.__webglFramebuffer[i],renderTarget,i)}}else{const mipmaps=renderTarget.texture.mipmaps;if(mipmaps&&mipmaps.length>0){setupDepthTexture(renderTargetProperties.__webglFramebuffer[0],renderTarget,0)}else{setupDepthTexture(renderTargetProperties.__webglFramebuffer,renderTarget,0)}}}else{if(isCube){renderTargetProperties.__webglDepthbuffer=[];for(let i=0;i<6;i++){state.bindFramebuffer(_gl.FRAMEBUFFER,renderTargetProperties.__webglFramebuffer[i]);if(renderTargetProperties.__webglDepthbuffer[i]===undefined){renderTargetProperties.__webglDepthbuffer[i]=_gl.createRenderbuffer();setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer[i],renderTarget,false)}else{const glAttachmentType=renderTarget.stencilBuffer?_gl.DEPTH_STENCIL_ATTACHMENT:_gl.DEPTH_ATTACHMENT;const renderbuffer=renderTargetProperties.__webglDepthbuffer[i];_gl.bindRenderbuffer(_gl.RENDERBUFFER,renderbuffer);_gl.framebufferRenderbuffer(_gl.FRAMEBUFFER,glAttachmentType,_gl.RENDERBUFFER,renderbuffer)}}}else{const mipmaps=renderTarget.texture.mipmaps;if(mipmaps&&mipmaps.length>0){state.bindFramebuffer(_gl.FRAMEBUFFER,renderTargetProperties.__webglFramebuffer[0])}else{state.bindFramebuffer(_gl.FRAMEBUFFER,renderTargetProperties.__webglFramebuffer)}if(renderTargetProperties.__webglDepthbuffer===undefined){renderTargetProperties.__webglDepthbuffer=_gl.createRenderbuffer();setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer,renderTarget,false)}else{const glAttachmentType=renderTarget.stencilBuffer?_gl.DEPTH_STENCIL_ATTACHMENT:_gl.DEPTH_ATTACHMENT;const renderbuffer=renderTargetProperties.__webglDepthbuffer;_gl.bindRenderbuffer(_gl.RENDERBUFFER,renderbuffer);_gl.framebufferRenderbuffer(_gl.FRAMEBUFFER,glAttachmentType,_gl.RENDERBUFFER,renderbuffer)}}}state.bindFramebuffer(_gl.FRAMEBUFFER,null)}function rebindTextures(renderTarget,colorTexture,depthTexture){const renderTargetProperties=properties.get(renderTarget);if(colorTexture!==undefined){setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer,renderTarget,renderTarget.texture,_gl.COLOR_ATTACHMENT0,_gl.TEXTURE_2D,0)}if(depthTexture!==undefined){setupDepthRenderbuffer(renderTarget)}}function setupRenderTarget(renderTarget){const texture=renderTarget.texture;const renderTargetProperties=properties.get(renderTarget);const textureProperties=properties.get(texture);renderTarget.addEventListener("dispose",onRenderTargetDispose);const textures=renderTarget.textures;const isCube=renderTarget.isWebGLCubeRenderTarget===true;const isMultipleRenderTargets=textures.length>1;if(!isMultipleRenderTargets){if(textureProperties.__webglTexture===undefined){textureProperties.__webglTexture=_gl.createTexture()}textureProperties.__version=texture.version;info.memory.textures++}if(isCube){renderTargetProperties.__webglFramebuffer=[];for(let i=0;i<6;i++){if(texture.mipmaps&&texture.mipmaps.length>0){renderTargetProperties.__webglFramebuffer[i]=[];for(let level=0;level0){renderTargetProperties.__webglFramebuffer=[];for(let level=0;level0&&useMultisampledRTT(renderTarget)===false){renderTargetProperties.__webglMultisampledFramebuffer=_gl.createFramebuffer();renderTargetProperties.__webglColorRenderbuffer=[];state.bindFramebuffer(_gl.FRAMEBUFFER,renderTargetProperties.__webglMultisampledFramebuffer);for(let i=0;i0){for(let level=0;level0){for(let level=0;level0){if(useMultisampledRTT(renderTarget)===false){const textures=renderTarget.textures;const width=renderTarget.width;const height=renderTarget.height;let mask=_gl.COLOR_BUFFER_BIT;const depthStyle=renderTarget.stencilBuffer?_gl.DEPTH_STENCIL_ATTACHMENT:_gl.DEPTH_ATTACHMENT;const renderTargetProperties=properties.get(renderTarget);const isMultipleRenderTargets=textures.length>1;if(isMultipleRenderTargets){for(let i=0;i0){state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER,renderTargetProperties.__webglFramebuffer[0])}else{state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER,renderTargetProperties.__webglFramebuffer)}for(let i=0;i0&&extensions.has("WEBGL_multisampled_render_to_texture")===true&&renderTargetProperties.__useRenderToTexture!==false}function updateVideoTexture(texture){const frame=info.render.frame;if(_videoTextures.get(texture)!==frame){_videoTextures.set(texture,frame);texture.update()}}function verifyColorSpace(texture,image){const colorSpace=texture.colorSpace;const format=texture.format;const type=texture.type;if(texture.isCompressedTexture===true||texture.isVideoTexture===true)return image;if(colorSpace!==LinearSRGBColorSpace&&colorSpace!==NoColorSpace){if(ColorManagement.getTransfer(colorSpace)===SRGBTransfer){if(format!==RGBAFormat||type!==UnsignedByteType){warn("WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.")}}else{error("WebGLTextures: Unsupported texture color space:",colorSpace)}}return image}function getDimensions(image){if(typeof HTMLImageElement!=="undefined"&&image instanceof HTMLImageElement){_imageDimensions.width=image.naturalWidth||image.width;_imageDimensions.height=image.naturalHeight||image.height}else if(typeof VideoFrame!=="undefined"&&image instanceof VideoFrame){_imageDimensions.width=image.displayWidth;_imageDimensions.height=image.displayHeight}else{_imageDimensions.width=image.width;_imageDimensions.height=image.height}return _imageDimensions}this.allocateTextureUnit=allocateTextureUnit;this.resetTextureUnits=resetTextureUnits;this.setTexture2D=setTexture2D;this.setTexture2DArray=setTexture2DArray;this.setTexture3D=setTexture3D;this.setTextureCube=setTextureCube;this.rebindTextures=rebindTextures;this.setupRenderTarget=setupRenderTarget;this.updateRenderTargetMipmap=updateRenderTargetMipmap;this.updateMultisampleRenderTarget=updateMultisampleRenderTarget;this.setupDepthRenderbuffer=setupDepthRenderbuffer;this.setupFrameBufferTexture=setupFrameBufferTexture;this.useMultisampledRTT=useMultisampledRTT;this.isReversedDepthBuffer=function(){return state.buffers.depth.getReversed()}}function WebGLUtils(gl,extensions){function convert(p,colorSpace=NoColorSpace){let extension;const transfer=ColorManagement.getTransfer(colorSpace);if(p===UnsignedByteType)return gl.UNSIGNED_BYTE;if(p===UnsignedShort4444Type)return gl.UNSIGNED_SHORT_4_4_4_4;if(p===UnsignedShort5551Type)return gl.UNSIGNED_SHORT_5_5_5_1;if(p===UnsignedInt5999Type)return gl.UNSIGNED_INT_5_9_9_9_REV;if(p===UnsignedInt101111Type)return gl.UNSIGNED_INT_10F_11F_11F_REV;if(p===ByteType)return gl.BYTE;if(p===ShortType)return gl.SHORT;if(p===UnsignedShortType)return gl.UNSIGNED_SHORT;if(p===IntType)return gl.INT;if(p===UnsignedIntType)return gl.UNSIGNED_INT;if(p===FloatType)return gl.FLOAT;if(p===HalfFloatType)return gl.HALF_FLOAT;if(p===AlphaFormat)return gl.ALPHA;if(p===RGBFormat)return gl.RGB;if(p===RGBAFormat)return gl.RGBA;if(p===DepthFormat)return gl.DEPTH_COMPONENT;if(p===DepthStencilFormat)return gl.DEPTH_STENCIL;if(p===RedFormat)return gl.RED;if(p===RedIntegerFormat)return gl.RED_INTEGER;if(p===RGFormat)return gl.RG;if(p===RGIntegerFormat)return gl.RG_INTEGER;if(p===RGBAIntegerFormat)return gl.RGBA_INTEGER;if(p===RGB_S3TC_DXT1_Format||p===RGBA_S3TC_DXT1_Format||p===RGBA_S3TC_DXT3_Format||p===RGBA_S3TC_DXT5_Format){if(transfer===SRGBTransfer){extension=extensions.get("WEBGL_compressed_texture_s3tc_srgb");if(extension!==null){if(p===RGB_S3TC_DXT1_Format)return extension.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(p===RGBA_S3TC_DXT1_Format)return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(p===RGBA_S3TC_DXT3_Format)return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(p===RGBA_S3TC_DXT5_Format)return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else{return null}}else{extension=extensions.get("WEBGL_compressed_texture_s3tc");if(extension!==null){if(p===RGB_S3TC_DXT1_Format)return extension.COMPRESSED_RGB_S3TC_DXT1_EXT;if(p===RGBA_S3TC_DXT1_Format)return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(p===RGBA_S3TC_DXT3_Format)return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(p===RGBA_S3TC_DXT5_Format)return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT}else{return null}}}if(p===RGB_PVRTC_4BPPV1_Format||p===RGB_PVRTC_2BPPV1_Format||p===RGBA_PVRTC_4BPPV1_Format||p===RGBA_PVRTC_2BPPV1_Format){extension=extensions.get("WEBGL_compressed_texture_pvrtc");if(extension!==null){if(p===RGB_PVRTC_4BPPV1_Format)return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(p===RGB_PVRTC_2BPPV1_Format)return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(p===RGBA_PVRTC_4BPPV1_Format)return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(p===RGBA_PVRTC_2BPPV1_Format)return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else{return null}}if(p===RGB_ETC1_Format||p===RGB_ETC2_Format||p===RGBA_ETC2_EAC_Format||p===R11_EAC_Format||p===SIGNED_R11_EAC_Format||p===RG11_EAC_Format||p===SIGNED_RG11_EAC_Format){extension=extensions.get("WEBGL_compressed_texture_etc");if(extension!==null){if(p===RGB_ETC1_Format||p===RGB_ETC2_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ETC2:extension.COMPRESSED_RGB8_ETC2;if(p===RGBA_ETC2_EAC_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:extension.COMPRESSED_RGBA8_ETC2_EAC;if(p===R11_EAC_Format)return extension.COMPRESSED_R11_EAC;if(p===SIGNED_R11_EAC_Format)return extension.COMPRESSED_SIGNED_R11_EAC;if(p===RG11_EAC_Format)return extension.COMPRESSED_RG11_EAC;if(p===SIGNED_RG11_EAC_Format)return extension.COMPRESSED_SIGNED_RG11_EAC}else{return null}}if(p===RGBA_ASTC_4x4_Format||p===RGBA_ASTC_5x4_Format||p===RGBA_ASTC_5x5_Format||p===RGBA_ASTC_6x5_Format||p===RGBA_ASTC_6x6_Format||p===RGBA_ASTC_8x5_Format||p===RGBA_ASTC_8x6_Format||p===RGBA_ASTC_8x8_Format||p===RGBA_ASTC_10x5_Format||p===RGBA_ASTC_10x6_Format||p===RGBA_ASTC_10x8_Format||p===RGBA_ASTC_10x10_Format||p===RGBA_ASTC_12x10_Format||p===RGBA_ASTC_12x12_Format){extension=extensions.get("WEBGL_compressed_texture_astc");if(extension!==null){if(p===RGBA_ASTC_4x4_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:extension.COMPRESSED_RGBA_ASTC_4x4_KHR;if(p===RGBA_ASTC_5x4_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:extension.COMPRESSED_RGBA_ASTC_5x4_KHR;if(p===RGBA_ASTC_5x5_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:extension.COMPRESSED_RGBA_ASTC_5x5_KHR;if(p===RGBA_ASTC_6x5_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:extension.COMPRESSED_RGBA_ASTC_6x5_KHR;if(p===RGBA_ASTC_6x6_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:extension.COMPRESSED_RGBA_ASTC_6x6_KHR;if(p===RGBA_ASTC_8x5_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:extension.COMPRESSED_RGBA_ASTC_8x5_KHR;if(p===RGBA_ASTC_8x6_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:extension.COMPRESSED_RGBA_ASTC_8x6_KHR;if(p===RGBA_ASTC_8x8_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:extension.COMPRESSED_RGBA_ASTC_8x8_KHR;if(p===RGBA_ASTC_10x5_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:extension.COMPRESSED_RGBA_ASTC_10x5_KHR;if(p===RGBA_ASTC_10x6_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:extension.COMPRESSED_RGBA_ASTC_10x6_KHR;if(p===RGBA_ASTC_10x8_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:extension.COMPRESSED_RGBA_ASTC_10x8_KHR;if(p===RGBA_ASTC_10x10_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:extension.COMPRESSED_RGBA_ASTC_10x10_KHR;if(p===RGBA_ASTC_12x10_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:extension.COMPRESSED_RGBA_ASTC_12x10_KHR;if(p===RGBA_ASTC_12x12_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:extension.COMPRESSED_RGBA_ASTC_12x12_KHR}else{return null}}if(p===RGBA_BPTC_Format||p===RGB_BPTC_SIGNED_Format||p===RGB_BPTC_UNSIGNED_Format){extension=extensions.get("EXT_texture_compression_bptc");if(extension!==null){if(p===RGBA_BPTC_Format)return transfer===SRGBTransfer?extension.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:extension.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(p===RGB_BPTC_SIGNED_Format)return extension.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(p===RGB_BPTC_UNSIGNED_Format)return extension.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else{return null}}if(p===RED_RGTC1_Format||p===SIGNED_RED_RGTC1_Format||p===RED_GREEN_RGTC2_Format||p===SIGNED_RED_GREEN_RGTC2_Format){extension=extensions.get("EXT_texture_compression_rgtc");if(extension!==null){if(p===RED_RGTC1_Format)return extension.COMPRESSED_RED_RGTC1_EXT;if(p===SIGNED_RED_RGTC1_Format)return extension.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(p===RED_GREEN_RGTC2_Format)return extension.COMPRESSED_RED_GREEN_RGTC2_EXT;if(p===SIGNED_RED_GREEN_RGTC2_Format)return extension.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else{return null}}if(p===UnsignedInt248Type)return gl.UNSIGNED_INT_24_8;return gl[p]!==undefined?gl[p]:null}return{convert:convert}}const _occlusion_vertex=` void main() { gl_Position = vec4( position, 1.0 ); }`;const _occlusion_fragment=` uniform sampler2DArray depthColor; uniform float depthWidth; uniform float depthHeight; void main() { vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); if ( coord.x >= 1.0 ) { gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; } else { gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; } }`;class WebXRDepthSensing{constructor(){this.texture=null;this.mesh=null;this.depthNear=0;this.depthFar=0}init(depthData,renderState){if(this.texture===null){const texture=new ExternalTexture(depthData.texture);if(depthData.depthNear!==renderState.depthNear||depthData.depthFar!==renderState.depthFar){this.depthNear=depthData.depthNear;this.depthFar=depthData.depthFar}this.texture=texture}}getMesh(cameraXR){if(this.texture!==null){if(this.mesh===null){const viewport=cameraXR.cameras[0].viewport;const material=new ShaderMaterial({vertexShader:_occlusion_vertex,fragmentShader:_occlusion_fragment,uniforms:{depthColor:{value:this.texture},depthWidth:{value:viewport.z},depthHeight:{value:viewport.w}}});this.mesh=new Mesh(new PlaneGeometry(20,20),material)}}return this.mesh}reset(){this.texture=null;this.mesh=null}getDepthTexture(){return this.texture}}class WebXRManager extends EventDispatcher{constructor(renderer,gl){super();const scope=this;let session=null;let framebufferScaleFactor=1;let referenceSpace=null;let referenceSpaceType="local-floor";let foveation=1;let customReferenceSpace=null;let pose=null;let glBinding=null;let glProjLayer=null;let glBaseLayer=null;let xrFrame=null;const supportsGlBinding=typeof XRWebGLBinding!=="undefined";const depthSensing=new WebXRDepthSensing;const cameraAccessTextures={};const attributes=gl.getContextAttributes();let initialRenderTarget=null;let newRenderTarget=null;const controllers=[];const controllerInputSources=[];const currentSize=new Vector2;let currentPixelRatio=null;const cameraL=new PerspectiveCamera;cameraL.viewport=new Vector4;const cameraR=new PerspectiveCamera;cameraR.viewport=new Vector4;const cameras=[cameraL,cameraR];const cameraXR=new ArrayCamera;let _currentDepthNear=null;let _currentDepthFar=null;this.cameraAutoUpdate=true;this.enabled=false;this.isPresenting=false;this.getController=function(index){let controller=controllers[index];if(controller===undefined){controller=new WebXRController;controllers[index]=controller}return controller.getTargetRaySpace()};this.getControllerGrip=function(index){let controller=controllers[index];if(controller===undefined){controller=new WebXRController;controllers[index]=controller}return controller.getGripSpace()};this.getHand=function(index){let controller=controllers[index];if(controller===undefined){controller=new WebXRController;controllers[index]=controller}return controller.getHandSpace()};function onSessionEvent(event){const controllerIndex=controllerInputSources.indexOf(event.inputSource);if(controllerIndex===-1){return}const controller=controllers[controllerIndex];if(controller!==undefined){controller.update(event.inputSource,event.frame,customReferenceSpace||referenceSpace);controller.dispatchEvent({type:event.type,data:event.inputSource})}}function onSessionEnd(){session.removeEventListener("select",onSessionEvent);session.removeEventListener("selectstart",onSessionEvent);session.removeEventListener("selectend",onSessionEvent);session.removeEventListener("squeeze",onSessionEvent);session.removeEventListener("squeezestart",onSessionEvent);session.removeEventListener("squeezeend",onSessionEvent);session.removeEventListener("end",onSessionEnd);session.removeEventListener("inputsourceschange",onInputSourcesChange);for(let i=0;i=0){controllerInputSources[index]=null;controllers[index].disconnect(inputSource)}}for(let i=0;i=controllerInputSources.length){controllerInputSources.push(inputSource);controllerIndex=i;break}else if(controllerInputSources[i]===null){controllerInputSources[i]=inputSource;controllerIndex=i;break}}if(controllerIndex===-1)break}const controller=controllers[controllerIndex];if(controller){controller.connect(inputSource)}}}const cameraLPos=new Vector3;const cameraRPos=new Vector3;function setProjectionFromUnion(camera,cameraL,cameraR){cameraLPos.setFromMatrixPosition(cameraL.matrixWorld);cameraRPos.setFromMatrixPosition(cameraR.matrixWorld);const ipd=cameraLPos.distanceTo(cameraRPos);const projL=cameraL.projectionMatrix.elements;const projR=cameraR.projectionMatrix.elements;const near=projL[14]/(projL[10]-1);const far=projL[14]/(projL[10]+1);const topFov=(projL[9]+1)/projL[5];const bottomFov=(projL[9]-1)/projL[5];const leftFov=(projL[8]-1)/projL[0];const rightFov=(projR[8]+1)/projR[0];const left=near*leftFov;const right=near*rightFov;const zOffset=ipd/(-leftFov+rightFov);const xOffset=zOffset*-leftFov;cameraL.matrixWorld.decompose(camera.position,camera.quaternion,camera.scale);camera.translateX(xOffset);camera.translateZ(zOffset);camera.matrixWorld.compose(camera.position,camera.quaternion,camera.scale);camera.matrixWorldInverse.copy(camera.matrixWorld).invert();if(projL[10]===-1){camera.projectionMatrix.copy(cameraL.projectionMatrix);camera.projectionMatrixInverse.copy(cameraL.projectionMatrixInverse)}else{const near2=near+zOffset;const far2=far+zOffset;const left2=left-xOffset;const right2=right+(ipd-xOffset);const top2=topFov*far/far2*near2;const bottom2=bottomFov*far/far2*near2;camera.projectionMatrix.makePerspective(left2,right2,top2,bottom2,near2,far2);camera.projectionMatrixInverse.copy(camera.projectionMatrix).invert()}}function updateCamera(camera,parent){if(parent===null){camera.matrixWorld.copy(camera.matrix)}else{camera.matrixWorld.multiplyMatrices(parent.matrixWorld,camera.matrix)}camera.matrixWorldInverse.copy(camera.matrixWorld).invert()}this.updateCamera=function(camera){if(session===null)return;let depthNear=camera.near;let depthFar=camera.far;if(depthSensing.texture!==null){if(depthSensing.depthNear>0)depthNear=depthSensing.depthNear;if(depthSensing.depthFar>0)depthFar=depthSensing.depthFar}cameraXR.near=cameraR.near=cameraL.near=depthNear;cameraXR.far=cameraR.far=cameraL.far=depthFar;if(_currentDepthNear!==cameraXR.near||_currentDepthFar!==cameraXR.far){session.updateRenderState({depthNear:cameraXR.near,depthFar:cameraXR.far});_currentDepthNear=cameraXR.near;_currentDepthFar=cameraXR.far}cameraXR.layers.mask=camera.layers.mask|6;cameraL.layers.mask=cameraXR.layers.mask&3;cameraR.layers.mask=cameraXR.layers.mask&5;const parent=camera.parent;const cameras=cameraXR.cameras;updateCamera(cameraXR,parent);for(let i=0;i0){uniforms.alphaTest.value=material.alphaTest}const materialProperties=properties.get(material);const envMap=materialProperties.envMap;const envMapRotation=materialProperties.envMapRotation;if(envMap){uniforms.envMap.value=envMap;_e1.copy(envMapRotation);_e1.x*=-1;_e1.y*=-1;_e1.z*=-1;if(envMap.isCubeTexture&&envMap.isRenderTargetTexture===false){_e1.y*=-1;_e1.z*=-1}uniforms.envMapRotation.value.setFromMatrix4(_m1.makeRotationFromEuler(_e1));uniforms.flipEnvMap.value=envMap.isCubeTexture&&envMap.isRenderTargetTexture===false?-1:1;uniforms.reflectivity.value=material.reflectivity;uniforms.ior.value=material.ior;uniforms.refractionRatio.value=material.refractionRatio}if(material.lightMap){uniforms.lightMap.value=material.lightMap;uniforms.lightMapIntensity.value=material.lightMapIntensity;refreshTransformUniform(material.lightMap,uniforms.lightMapTransform)}if(material.aoMap){uniforms.aoMap.value=material.aoMap;uniforms.aoMapIntensity.value=material.aoMapIntensity;refreshTransformUniform(material.aoMap,uniforms.aoMapTransform)}}function refreshUniformsLine(uniforms,material){uniforms.diffuse.value.copy(material.color);uniforms.opacity.value=material.opacity;if(material.map){uniforms.map.value=material.map;refreshTransformUniform(material.map,uniforms.mapTransform)}}function refreshUniformsDash(uniforms,material){uniforms.dashSize.value=material.dashSize;uniforms.totalSize.value=material.dashSize+material.gapSize;uniforms.scale.value=material.scale}function refreshUniformsPoints(uniforms,material,pixelRatio,height){uniforms.diffuse.value.copy(material.color);uniforms.opacity.value=material.opacity;uniforms.size.value=material.size*pixelRatio;uniforms.scale.value=height*0.5;if(material.map){uniforms.map.value=material.map;refreshTransformUniform(material.map,uniforms.uvTransform)}if(material.alphaMap){uniforms.alphaMap.value=material.alphaMap;refreshTransformUniform(material.alphaMap,uniforms.alphaMapTransform)}if(material.alphaTest>0){uniforms.alphaTest.value=material.alphaTest}}function refreshUniformsSprites(uniforms,material){uniforms.diffuse.value.copy(material.color);uniforms.opacity.value=material.opacity;uniforms.rotation.value=material.rotation;if(material.map){uniforms.map.value=material.map;refreshTransformUniform(material.map,uniforms.mapTransform)}if(material.alphaMap){uniforms.alphaMap.value=material.alphaMap;refreshTransformUniform(material.alphaMap,uniforms.alphaMapTransform)}if(material.alphaTest>0){uniforms.alphaTest.value=material.alphaTest}}function refreshUniformsPhong(uniforms,material){uniforms.specular.value.copy(material.specular);uniforms.shininess.value=Math.max(material.shininess,1e-4)}function refreshUniformsToon(uniforms,material){if(material.gradientMap){uniforms.gradientMap.value=material.gradientMap}}function refreshUniformsStandard(uniforms,material){uniforms.metalness.value=material.metalness;if(material.metalnessMap){uniforms.metalnessMap.value=material.metalnessMap;refreshTransformUniform(material.metalnessMap,uniforms.metalnessMapTransform)}uniforms.roughness.value=material.roughness;if(material.roughnessMap){uniforms.roughnessMap.value=material.roughnessMap;refreshTransformUniform(material.roughnessMap,uniforms.roughnessMapTransform)}if(material.envMap){uniforms.envMapIntensity.value=material.envMapIntensity}}function refreshUniformsPhysical(uniforms,material,transmissionRenderTarget){uniforms.ior.value=material.ior;if(material.sheen>0){uniforms.sheenColor.value.copy(material.sheenColor).multiplyScalar(material.sheen);uniforms.sheenRoughness.value=material.sheenRoughness;if(material.sheenColorMap){uniforms.sheenColorMap.value=material.sheenColorMap;refreshTransformUniform(material.sheenColorMap,uniforms.sheenColorMapTransform)}if(material.sheenRoughnessMap){uniforms.sheenRoughnessMap.value=material.sheenRoughnessMap;refreshTransformUniform(material.sheenRoughnessMap,uniforms.sheenRoughnessMapTransform)}}if(material.clearcoat>0){uniforms.clearcoat.value=material.clearcoat;uniforms.clearcoatRoughness.value=material.clearcoatRoughness;if(material.clearcoatMap){uniforms.clearcoatMap.value=material.clearcoatMap;refreshTransformUniform(material.clearcoatMap,uniforms.clearcoatMapTransform)}if(material.clearcoatRoughnessMap){uniforms.clearcoatRoughnessMap.value=material.clearcoatRoughnessMap;refreshTransformUniform(material.clearcoatRoughnessMap,uniforms.clearcoatRoughnessMapTransform)}if(material.clearcoatNormalMap){uniforms.clearcoatNormalMap.value=material.clearcoatNormalMap;refreshTransformUniform(material.clearcoatNormalMap,uniforms.clearcoatNormalMapTransform);uniforms.clearcoatNormalScale.value.copy(material.clearcoatNormalScale);if(material.side===BackSide){uniforms.clearcoatNormalScale.value.negate()}}}if(material.dispersion>0){uniforms.dispersion.value=material.dispersion}if(material.iridescence>0){uniforms.iridescence.value=material.iridescence;uniforms.iridescenceIOR.value=material.iridescenceIOR;uniforms.iridescenceThicknessMinimum.value=material.iridescenceThicknessRange[0];uniforms.iridescenceThicknessMaximum.value=material.iridescenceThicknessRange[1];if(material.iridescenceMap){uniforms.iridescenceMap.value=material.iridescenceMap;refreshTransformUniform(material.iridescenceMap,uniforms.iridescenceMapTransform)}if(material.iridescenceThicknessMap){uniforms.iridescenceThicknessMap.value=material.iridescenceThicknessMap;refreshTransformUniform(material.iridescenceThicknessMap,uniforms.iridescenceThicknessMapTransform)}}if(material.transmission>0){uniforms.transmission.value=material.transmission;uniforms.transmissionSamplerMap.value=transmissionRenderTarget.texture;uniforms.transmissionSamplerSize.value.set(transmissionRenderTarget.width,transmissionRenderTarget.height);if(material.transmissionMap){uniforms.transmissionMap.value=material.transmissionMap;refreshTransformUniform(material.transmissionMap,uniforms.transmissionMapTransform)}uniforms.thickness.value=material.thickness;if(material.thicknessMap){uniforms.thicknessMap.value=material.thicknessMap;refreshTransformUniform(material.thicknessMap,uniforms.thicknessMapTransform)}uniforms.attenuationDistance.value=material.attenuationDistance;uniforms.attenuationColor.value.copy(material.attenuationColor)}if(material.anisotropy>0){uniforms.anisotropyVector.value.set(material.anisotropy*Math.cos(material.anisotropyRotation),material.anisotropy*Math.sin(material.anisotropyRotation));if(material.anisotropyMap){uniforms.anisotropyMap.value=material.anisotropyMap;refreshTransformUniform(material.anisotropyMap,uniforms.anisotropyMapTransform)}}uniforms.specularIntensity.value=material.specularIntensity;uniforms.specularColor.value.copy(material.specularColor);if(material.specularColorMap){uniforms.specularColorMap.value=material.specularColorMap;refreshTransformUniform(material.specularColorMap,uniforms.specularColorMapTransform)}if(material.specularIntensityMap){uniforms.specularIntensityMap.value=material.specularIntensityMap;refreshTransformUniform(material.specularIntensityMap,uniforms.specularIntensityMapTransform)}}function refreshUniformsMatcap(uniforms,material){if(material.matcap){uniforms.matcap.value=material.matcap}}function refreshUniformsDistance(uniforms,material){const light=properties.get(material).light;uniforms.referencePosition.value.setFromMatrixPosition(light.matrixWorld);uniforms.nearDistance.value=light.shadow.camera.near;uniforms.farDistance.value=light.shadow.camera.far}return{refreshFogUniforms:refreshFogUniforms,refreshMaterialUniforms:refreshMaterialUniforms}}function WebGLUniformsGroups(gl,info,capabilities,state){let buffers={};let updateList={};let allocatedBindingPoints=[];const maxBindingPoints=gl.getParameter(gl.MAX_UNIFORM_BUFFER_BINDINGS);function bind(uniformsGroup,program){const webglProgram=program.program;state.uniformBlockBinding(uniformsGroup,webglProgram)}function update(uniformsGroup,program){let buffer=buffers[uniformsGroup.id];if(buffer===undefined){prepareUniformsGroup(uniformsGroup);buffer=createBuffer(uniformsGroup);buffers[uniformsGroup.id]=buffer;uniformsGroup.addEventListener("dispose",onUniformsGroupsDispose)}const webglProgram=program.program;state.updateUBOMapping(uniformsGroup,webglProgram);const frame=info.render.frame;if(updateList[uniformsGroup.id]!==frame){updateBufferData(uniformsGroup);updateList[uniformsGroup.id]=frame}}function createBuffer(uniformsGroup){const bindingPointIndex=allocateBindingPointIndex();uniformsGroup.__bindingPointIndex=bindingPointIndex;const buffer=gl.createBuffer();const size=uniformsGroup.__size;const usage=uniformsGroup.usage;gl.bindBuffer(gl.UNIFORM_BUFFER,buffer);gl.bufferData(gl.UNIFORM_BUFFER,size,usage);gl.bindBuffer(gl.UNIFORM_BUFFER,null);gl.bindBufferBase(gl.UNIFORM_BUFFER,bindingPointIndex,buffer);return buffer}function allocateBindingPointIndex(){for(let i=0;i0)offset+=chunkSize-chunkOffset;uniformsGroup.__size=offset;uniformsGroup.__cache={};return this}function getUniformSize(value){const info={boundary:0,storage:0};if(typeof value==="number"||typeof value==="boolean"){info.boundary=4;info.storage=4}else if(value.isVector2){info.boundary=8;info.storage=8}else if(value.isVector3||value.isColor){info.boundary=16;info.storage=12}else if(value.isVector4){info.boundary=16;info.storage=16}else if(value.isMatrix3){info.boundary=48;info.storage=48}else if(value.isMatrix4){info.boundary=64;info.storage=64}else if(value.isTexture){warn("WebGLRenderer: Texture samplers can not be part of an uniforms group.")}else{warn("WebGLRenderer: Unsupported uniform value type.",value)}return info}function onUniformsGroupsDispose(event){const uniformsGroup=event.target;uniformsGroup.removeEventListener("dispose",onUniformsGroupsDispose);const index=allocatedBindingPoints.indexOf(uniformsGroup.__bindingPointIndex);allocatedBindingPoints.splice(index,1);gl.deleteBuffer(buffers[uniformsGroup.id]);delete buffers[uniformsGroup.id];delete updateList[uniformsGroup.id]}function dispose(){for(const id in buffers){gl.deleteBuffer(buffers[id])}allocatedBindingPoints=[];buffers={};updateList={}}return{bind:bind,update:update,dispose:dispose}}const DATA=new Uint16Array([12469,15057,12620,14925,13266,14620,13807,14376,14323,13990,14545,13625,14713,13328,14840,12882,14931,12528,14996,12233,15039,11829,15066,11525,15080,11295,15085,10976,15082,10705,15073,10495,13880,14564,13898,14542,13977,14430,14158,14124,14393,13732,14556,13410,14702,12996,14814,12596,14891,12291,14937,11834,14957,11489,14958,11194,14943,10803,14921,10506,14893,10278,14858,9960,14484,14039,14487,14025,14499,13941,14524,13740,14574,13468,14654,13106,14743,12678,14818,12344,14867,11893,14889,11509,14893,11180,14881,10751,14852,10428,14812,10128,14765,9754,14712,9466,14764,13480,14764,13475,14766,13440,14766,13347,14769,13070,14786,12713,14816,12387,14844,11957,14860,11549,14868,11215,14855,10751,14825,10403,14782,10044,14729,9651,14666,9352,14599,9029,14967,12835,14966,12831,14963,12804,14954,12723,14936,12564,14917,12347,14900,11958,14886,11569,14878,11247,14859,10765,14828,10401,14784,10011,14727,9600,14660,9289,14586,8893,14508,8533,15111,12234,15110,12234,15104,12216,15092,12156,15067,12010,15028,11776,14981,11500,14942,11205,14902,10752,14861,10393,14812,9991,14752,9570,14682,9252,14603,8808,14519,8445,14431,8145,15209,11449,15208,11451,15202,11451,15190,11438,15163,11384,15117,11274,15055,10979,14994,10648,14932,10343,14871,9936,14803,9532,14729,9218,14645,8742,14556,8381,14461,8020,14365,7603,15273,10603,15272,10607,15267,10619,15256,10631,15231,10614,15182,10535,15118,10389,15042,10167,14963,9787,14883,9447,14800,9115,14710,8665,14615,8318,14514,7911,14411,7507,14279,7198,15314,9675,15313,9683,15309,9712,15298,9759,15277,9797,15229,9773,15166,9668,15084,9487,14995,9274,14898,8910,14800,8539,14697,8234,14590,7790,14479,7409,14367,7067,14178,6621,15337,8619,15337,8631,15333,8677,15325,8769,15305,8871,15264,8940,15202,8909,15119,8775,15022,8565,14916,8328,14804,8009,14688,7614,14569,7287,14448,6888,14321,6483,14088,6171,15350,7402,15350,7419,15347,7480,15340,7613,15322,7804,15287,7973,15229,8057,15148,8012,15046,7846,14933,7611,14810,7357,14682,7069,14552,6656,14421,6316,14251,5948,14007,5528,15356,5942,15356,5977,15353,6119,15348,6294,15332,6551,15302,6824,15249,7044,15171,7122,15070,7050,14949,6861,14818,6611,14679,6349,14538,6067,14398,5651,14189,5311,13935,4958,15359,4123,15359,4153,15356,4296,15353,4646,15338,5160,15311,5508,15263,5829,15188,6042,15088,6094,14966,6001,14826,5796,14678,5543,14527,5287,14377,4985,14133,4586,13869,4257,15360,1563,15360,1642,15358,2076,15354,2636,15341,3350,15317,4019,15273,4429,15203,4732,15105,4911,14981,4932,14836,4818,14679,4621,14517,4386,14359,4156,14083,3795,13808,3437,15360,122,15360,137,15358,285,15355,636,15344,1274,15322,2177,15281,2765,15215,3223,15120,3451,14995,3569,14846,3567,14681,3466,14511,3305,14344,3121,14037,2800,13753,2467,15360,0,15360,1,15359,21,15355,89,15346,253,15325,479,15287,796,15225,1148,15133,1492,15008,1749,14856,1882,14685,1886,14506,1783,14324,1608,13996,1398,13702,1183]);let lut=null;function getDFGLUT(){if(lut===null){lut=new DataTexture(DATA,16,16,RGFormat,HalfFloatType);lut.name="DFG_LUT";lut.minFilter=LinearFilter;lut.magFilter=LinearFilter;lut.wrapS=ClampToEdgeWrapping;lut.wrapT=ClampToEdgeWrapping;lut.generateMipmaps=false;lut.needsUpdate=true}return lut}class WebGLRenderer{constructor(parameters={}){const{canvas=createCanvasElement(),context=null,depth=true,stencil=false,alpha=false,antialias=false,premultipliedAlpha=true,preserveDrawingBuffer=false,powerPreference="default",failIfMajorPerformanceCaveat=false,reversedDepthBuffer=false,outputBufferType=UnsignedByteType}=parameters;this.isWebGLRenderer=true;let _alpha;if(context!==null){if(typeof WebGLRenderingContext!=="undefined"&&context instanceof WebGLRenderingContext){throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.")}_alpha=context.getContextAttributes().alpha}else{_alpha=alpha}const _outputBufferType=outputBufferType;const INTEGER_FORMATS=new Set([RGBAIntegerFormat,RGIntegerFormat,RedIntegerFormat]);const UNSIGNED_TYPES=new Set([UnsignedByteType,UnsignedIntType,UnsignedShortType,UnsignedInt248Type,UnsignedShort4444Type,UnsignedShort5551Type]);const uintClearColor=new Uint32Array(4);const intClearColor=new Int32Array(4);let currentRenderList=null;let currentRenderState=null;const renderListStack=[];const renderStateStack=[];let output=null;this.domElement=canvas;this.debug={checkShaderErrors:true,onShaderError:null};this.autoClear=true;this.autoClearColor=true;this.autoClearDepth=true;this.autoClearStencil=true;this.sortObjects=true;this.clippingPlanes=[];this.localClippingEnabled=false;this.toneMapping=NoToneMapping;this.toneMappingExposure=1;this.transmissionResolutionScale=1;const _this=this;let _isContextLost=false;this._outputColorSpace=SRGBColorSpace;let _currentActiveCubeFace=0;let _currentActiveMipmapLevel=0;let _currentRenderTarget=null;let _currentMaterialId=-1;let _currentCamera=null;const _currentViewport=new Vector4;const _currentScissor=new Vector4;let _currentScissorTest=null;const _currentClearColor=new Color(0);let _currentClearAlpha=0;let _width=canvas.width;let _height=canvas.height;let _pixelRatio=1;let _opaqueSort=null;let _transparentSort=null;const _viewport=new Vector4(0,0,_width,_height);const _scissor=new Vector4(0,0,_width,_height);let _scissorTest=false;const _frustum=new Frustum;let _clippingEnabled=false;let _localClippingEnabled=false;const _projScreenMatrix=new Matrix4;const _vector3=new Vector3;const _vector4=new Vector4;const _emptyScene={background:null,fog:null,environment:null,overrideMaterial:null,isScene:true};let _renderBackground=false;function getTargetPixelRatio(){return _currentRenderTarget===null?_pixelRatio:1}let _gl=context;function getContext(contextName,contextAttributes){return canvas.getContext(contextName,contextAttributes)}try{const contextAttributes={alpha:true,depth,stencil,antialias,premultipliedAlpha,preserveDrawingBuffer,powerPreference,failIfMajorPerformanceCaveat};if("setAttribute"in canvas)canvas.setAttribute("data-engine",`three.js r${REVISION}`);canvas.addEventListener("webglcontextlost",onContextLost,false);canvas.addEventListener("webglcontextrestored",onContextRestore,false);canvas.addEventListener("webglcontextcreationerror",onContextCreationError,false);if(_gl===null){const contextName="webgl2";_gl=getContext(contextName,contextAttributes);if(_gl===null){if(getContext(contextName)){throw new Error("Error creating WebGL context with your selected attributes.")}else{throw new Error("Error creating WebGL context.")}}}}catch(e){error("WebGLRenderer: "+e.message);throw e}let extensions,capabilities,state,info;let properties,textures,cubemaps,cubeuvmaps,attributes,geometries,objects;let programCache,materials,renderLists,renderStates,clipping,shadowMap;let background,morphtargets,bufferRenderer,indexedBufferRenderer;let utils,bindingStates,uniformsGroups;function initGLContext(){extensions=new WebGLExtensions(_gl);extensions.init();utils=new WebGLUtils(_gl,extensions);capabilities=new WebGLCapabilities(_gl,extensions,parameters,utils);state=new WebGLState(_gl,extensions);if(capabilities.reversedDepthBuffer&&reversedDepthBuffer){state.buffers.depth.setReversed(true)}info=new WebGLInfo(_gl);properties=new WebGLProperties;textures=new WebGLTextures(_gl,extensions,state,properties,capabilities,utils,info);cubemaps=new WebGLCubeMaps(_this);cubeuvmaps=new WebGLCubeUVMaps(_this);attributes=new WebGLAttributes(_gl);bindingStates=new WebGLBindingStates(_gl,attributes);geometries=new WebGLGeometries(_gl,attributes,info,bindingStates);objects=new WebGLObjects(_gl,geometries,attributes,info);morphtargets=new WebGLMorphtargets(_gl,capabilities,textures);clipping=new WebGLClipping(properties);programCache=new WebGLPrograms(_this,cubemaps,cubeuvmaps,extensions,capabilities,bindingStates,clipping);materials=new WebGLMaterials(_this,properties);renderLists=new WebGLRenderLists;renderStates=new WebGLRenderStates(extensions);background=new WebGLBackground(_this,cubemaps,cubeuvmaps,state,objects,_alpha,premultipliedAlpha);shadowMap=new WebGLShadowMap(_this,objects,capabilities);uniformsGroups=new WebGLUniformsGroups(_gl,info,capabilities,state);bufferRenderer=new WebGLBufferRenderer(_gl,extensions,info);indexedBufferRenderer=new WebGLIndexedBufferRenderer(_gl,extensions,info);info.programs=programCache.programs;_this.capabilities=capabilities;_this.extensions=extensions;_this.properties=properties;_this.renderLists=renderLists;_this.shadowMap=shadowMap;_this.state=state;_this.info=info}initGLContext();if(_outputBufferType!==UnsignedByteType){output=new WebGLOutput(_outputBufferType,canvas.width,canvas.height,depth,stencil)}const xr=new WebXRManager(_this,_gl);this.xr=xr;this.getContext=function(){return _gl};this.getContextAttributes=function(){return _gl.getContextAttributes()};this.forceContextLoss=function(){const extension=extensions.get("WEBGL_lose_context");if(extension)extension.loseContext()};this.forceContextRestore=function(){const extension=extensions.get("WEBGL_lose_context");if(extension)extension.restoreContext()};this.getPixelRatio=function(){return _pixelRatio};this.setPixelRatio=function(value){if(value===undefined)return;_pixelRatio=value;this.setSize(_width,_height,false)};this.getSize=function(target){return target.set(_width,_height)};this.setSize=function(width,height,updateStyle=true){if(xr.isPresenting){warn("WebGLRenderer: Can't change size while VR device is presenting.");return}_width=width;_height=height;canvas.width=Math.floor(width*_pixelRatio);canvas.height=Math.floor(height*_pixelRatio);if(updateStyle===true){canvas.style.width=width+"px";canvas.style.height=height+"px"}if(output!==null){output.setSize(canvas.width,canvas.height)}this.setViewport(0,0,width,height)};this.getDrawingBufferSize=function(target){return target.set(_width*_pixelRatio,_height*_pixelRatio).floor()};this.setDrawingBufferSize=function(width,height,pixelRatio){_width=width;_height=height;_pixelRatio=pixelRatio;canvas.width=Math.floor(width*pixelRatio);canvas.height=Math.floor(height*pixelRatio);this.setViewport(0,0,width,height)};this.setEffects=function(effects){if(_outputBufferType===UnsignedByteType){console.error("THREE.WebGLRenderer: setEffects() requires outputBufferType set to HalfFloatType or FloatType.");return}if(effects){for(let i=0;i{function checkMaterialsReady(){materials.forEach(function(material){const materialProperties=properties.get(material);const program=materialProperties.currentProgram;if(program.isReady()){materials.delete(material)}});if(materials.size===0){resolve(scene);return}setTimeout(checkMaterialsReady,10)}if(extensions.get("KHR_parallel_shader_compile")!==null){checkMaterialsReady()}else{setTimeout(checkMaterialsReady,10)}})};let onAnimationFrameCallback=null;function onAnimationFrame(time){if(onAnimationFrameCallback)onAnimationFrameCallback(time)}function onXRSessionStart(){animation.stop()}function onXRSessionEnd(){animation.start()}const animation=new WebGLAnimation;animation.setAnimationLoop(onAnimationFrame);if(typeof self!=="undefined")animation.setContext(self);this.setAnimationLoop=function(callback){onAnimationFrameCallback=callback;xr.setAnimationLoop(callback);callback===null?animation.stop():animation.start()};xr.addEventListener("sessionstart",onXRSessionStart);xr.addEventListener("sessionend",onXRSessionEnd);this.render=function(scene,camera){if(camera!==undefined&&camera.isCamera!==true){error("WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(_isContextLost===true)return;const isXRPresenting=xr.enabled===true&&xr.isPresenting===true;const useOutput=output!==null&&(_currentRenderTarget===null||isXRPresenting)&&output.begin(_this,_currentRenderTarget);if(scene.matrixWorldAutoUpdate===true)scene.updateMatrixWorld();if(camera.parent===null&&camera.matrixWorldAutoUpdate===true)camera.updateMatrixWorld();if(xr.enabled===true&&xr.isPresenting===true&&(output===null||output.isCompositing()===false)){if(xr.cameraAutoUpdate===true)xr.updateCamera(camera);camera=xr.getCamera()}if(scene.isScene===true)scene.onBeforeRender(_this,scene,camera,_currentRenderTarget);currentRenderState=renderStates.get(scene,renderStateStack.length);currentRenderState.init(camera);renderStateStack.push(currentRenderState);_projScreenMatrix.multiplyMatrices(camera.projectionMatrix,camera.matrixWorldInverse);_frustum.setFromProjectionMatrix(_projScreenMatrix,WebGLCoordinateSystem,camera.reversedDepth);_localClippingEnabled=this.localClippingEnabled;_clippingEnabled=clipping.init(this.clippingPlanes,_localClippingEnabled);currentRenderList=renderLists.get(scene,renderListStack.length);currentRenderList.init();renderListStack.push(currentRenderList);if(xr.enabled===true&&xr.isPresenting===true){const depthSensingMesh=_this.xr.getDepthSensingMesh();if(depthSensingMesh!==null){projectObject(depthSensingMesh,camera,-Infinity,_this.sortObjects)}}projectObject(scene,camera,0,_this.sortObjects);currentRenderList.finish();if(_this.sortObjects===true){currentRenderList.sort(_opaqueSort,_transparentSort)}_renderBackground=xr.enabled===false||xr.isPresenting===false||xr.hasDepthSensing()===false;if(_renderBackground){background.addToRenderList(currentRenderList,scene)}this.info.render.frame++;if(_clippingEnabled===true)clipping.beginShadows();const shadowsArray=currentRenderState.state.shadowsArray;shadowMap.render(shadowsArray,scene,camera);if(_clippingEnabled===true)clipping.endShadows();if(this.info.autoReset===true)this.info.reset();const skipSceneRender=useOutput&&output.hasRenderPass();if(skipSceneRender===false){const opaqueObjects=currentRenderList.opaque;const transmissiveObjects=currentRenderList.transmissive;currentRenderState.setupLights();if(camera.isArrayCamera){const cameras=camera.cameras;if(transmissiveObjects.length>0){for(let i=0,l=cameras.length;i0)renderTransmissionPass(opaqueObjects,transmissiveObjects,scene,camera);if(_renderBackground)background.render(scene);renderScene(currentRenderList,scene,camera)}}if(_currentRenderTarget!==null&&_currentActiveMipmapLevel===0){textures.updateMultisampleRenderTarget(_currentRenderTarget);textures.updateRenderTargetMipmap(_currentRenderTarget)}if(useOutput){output.end(_this)}if(scene.isScene===true)scene.onAfterRender(_this,scene,camera);bindingStates.resetDefaultState();_currentMaterialId=-1;_currentCamera=null;renderStateStack.pop();if(renderStateStack.length>0){currentRenderState=renderStateStack[renderStateStack.length-1];if(_clippingEnabled===true)clipping.setGlobalState(_this.clippingPlanes,currentRenderState.state.camera)}else{currentRenderState=null}renderListStack.pop();if(renderListStack.length>0){currentRenderList=renderListStack[renderListStack.length-1]}else{currentRenderList=null}};function projectObject(object,camera,groupOrder,sortObjects){if(object.visible===false)return;const visible=object.layers.test(camera.layers);if(visible){if(object.isGroup){groupOrder=object.renderOrder}else if(object.isLOD){if(object.autoUpdate===true)object.update(camera)}else if(object.isLight){currentRenderState.pushLight(object);if(object.castShadow){currentRenderState.pushShadow(object)}}else if(object.isSprite){if(!object.frustumCulled||_frustum.intersectsSprite(object)){if(sortObjects){_vector4.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix)}const geometry=objects.update(object);const material=object.material;if(material.visible){currentRenderList.push(object,geometry,material,groupOrder,_vector4.z,null)}}}else if(object.isMesh||object.isLine||object.isPoints){if(!object.frustumCulled||_frustum.intersectsObject(object)){const geometry=objects.update(object);const material=object.material;if(sortObjects){if(object.boundingSphere!==undefined){if(object.boundingSphere===null)object.computeBoundingSphere();_vector4.copy(object.boundingSphere.center)}else{if(geometry.boundingSphere===null)geometry.computeBoundingSphere();_vector4.copy(geometry.boundingSphere.center)}_vector4.applyMatrix4(object.matrixWorld).applyMatrix4(_projScreenMatrix)}if(Array.isArray(material)){const groups=geometry.groups;for(let i=0,l=groups.length;i0)renderObjects(opaqueObjects,scene,camera);if(transmissiveObjects.length>0)renderObjects(transmissiveObjects,scene,camera);if(transparentObjects.length>0)renderObjects(transparentObjects,scene,camera);state.buffers.depth.setTest(true);state.buffers.depth.setMask(true);state.buffers.color.setMask(true);state.setPolygonOffset(false)}function renderTransmissionPass(opaqueObjects,transmissiveObjects,scene,camera){const overrideMaterial=scene.isScene===true?scene.overrideMaterial:null;if(overrideMaterial!==null){return}if(currentRenderState.state.transmissionRenderTarget[camera.id]===undefined){const hasHalfFloatSupport=extensions.has("EXT_color_buffer_half_float")||extensions.has("EXT_color_buffer_float");currentRenderState.state.transmissionRenderTarget[camera.id]=new WebGLRenderTarget(1,1,{generateMipmaps:true,type:hasHalfFloatSupport?HalfFloatType:UnsignedByteType,minFilter:LinearMipmapLinearFilter,samples:capabilities.samples,stencilBuffer:stencil,resolveDepthBuffer:false,resolveStencilBuffer:false,colorSpace:ColorManagement.workingColorSpace})}const transmissionRenderTarget=currentRenderState.state.transmissionRenderTarget[camera.id];const activeViewport=camera.viewport||_currentViewport;transmissionRenderTarget.setSize(activeViewport.z*_this.transmissionResolutionScale,activeViewport.w*_this.transmissionResolutionScale);const currentRenderTarget=_this.getRenderTarget();const currentActiveCubeFace=_this.getActiveCubeFace();const currentActiveMipmapLevel=_this.getActiveMipmapLevel();_this.setRenderTarget(transmissionRenderTarget);_this.getClearColor(_currentClearColor);_currentClearAlpha=_this.getClearAlpha();if(_currentClearAlpha<1)_this.setClearColor(16777215,0.5);_this.clear();if(_renderBackground)background.render(scene);const currentToneMapping=_this.toneMapping;_this.toneMapping=NoToneMapping;const currentCameraViewport=camera.viewport;if(camera.viewport!==undefined)camera.viewport=undefined;currentRenderState.setupLightsView(camera);if(_clippingEnabled===true)clipping.setGlobalState(_this.clippingPlanes,camera);renderObjects(opaqueObjects,scene,camera);textures.updateMultisampleRenderTarget(transmissionRenderTarget);textures.updateRenderTargetMipmap(transmissionRenderTarget);if(extensions.has("WEBGL_multisampled_render_to_texture")===false){let renderTargetNeedsUpdate=false;for(let i=0,l=transmissiveObjects.length;i0);const morphTargets=!!geometry.morphAttributes.position;const morphNormals=!!geometry.morphAttributes.normal;const morphColors=!!geometry.morphAttributes.color;let toneMapping=NoToneMapping;if(material.toneMapped){if(_currentRenderTarget===null||_currentRenderTarget.isXRRenderTarget===true){toneMapping=_this.toneMapping}}const morphAttribute=geometry.morphAttributes.position||geometry.morphAttributes.normal||geometry.morphAttributes.color;const morphTargetsCount=morphAttribute!==undefined?morphAttribute.length:0;const materialProperties=properties.get(material);const lights=currentRenderState.state.lights;if(_clippingEnabled===true){if(_localClippingEnabled===true||camera!==_currentCamera){const useCache=camera===_currentCamera&&material.id===_currentMaterialId;clipping.setState(material,camera,useCache)}}let needsProgramChange=false;if(material.version===materialProperties.__version){if(materialProperties.needsLights&&materialProperties.lightsStateVersion!==lights.state.version){needsProgramChange=true}else if(materialProperties.outputColorSpace!==colorSpace){needsProgramChange=true}else if(object.isBatchedMesh&&materialProperties.batching===false){needsProgramChange=true}else if(!object.isBatchedMesh&&materialProperties.batching===true){needsProgramChange=true}else if(object.isBatchedMesh&&materialProperties.batchingColor===true&&object.colorTexture===null){needsProgramChange=true}else if(object.isBatchedMesh&&materialProperties.batchingColor===false&&object.colorTexture!==null){needsProgramChange=true}else if(object.isInstancedMesh&&materialProperties.instancing===false){needsProgramChange=true}else if(!object.isInstancedMesh&&materialProperties.instancing===true){needsProgramChange=true}else if(object.isSkinnedMesh&&materialProperties.skinning===false){needsProgramChange=true}else if(!object.isSkinnedMesh&&materialProperties.skinning===true){needsProgramChange=true}else if(object.isInstancedMesh&&materialProperties.instancingColor===true&&object.instanceColor===null){needsProgramChange=true}else if(object.isInstancedMesh&&materialProperties.instancingColor===false&&object.instanceColor!==null){needsProgramChange=true}else if(object.isInstancedMesh&&materialProperties.instancingMorph===true&&object.morphTexture===null){needsProgramChange=true}else if(object.isInstancedMesh&&materialProperties.instancingMorph===false&&object.morphTexture!==null){needsProgramChange=true}else if(materialProperties.envMap!==envMap){needsProgramChange=true}else if(material.fog===true&&materialProperties.fog!==fog){needsProgramChange=true}else if(materialProperties.numClippingPlanes!==undefined&&(materialProperties.numClippingPlanes!==clipping.numPlanes||materialProperties.numIntersection!==clipping.numIntersection)){needsProgramChange=true}else if(materialProperties.vertexAlphas!==vertexAlphas){needsProgramChange=true}else if(materialProperties.vertexTangents!==vertexTangents){needsProgramChange=true}else if(materialProperties.morphTargets!==morphTargets){needsProgramChange=true}else if(materialProperties.morphNormals!==morphNormals){needsProgramChange=true}else if(materialProperties.morphColors!==morphColors){needsProgramChange=true}else if(materialProperties.toneMapping!==toneMapping){needsProgramChange=true}else if(materialProperties.morphTargetsCount!==morphTargetsCount){needsProgramChange=true}}else{needsProgramChange=true;materialProperties.__version=material.version}let program=materialProperties.currentProgram;if(needsProgramChange===true){program=getProgram(material,scene,object)}let refreshProgram=false;let refreshMaterial=false;let refreshLights=false;const p_uniforms=program.getUniforms(),m_uniforms=materialProperties.uniforms;if(state.useProgram(program.program)){refreshProgram=true;refreshMaterial=true;refreshLights=true}if(material.id!==_currentMaterialId){_currentMaterialId=material.id;refreshMaterial=true}if(refreshProgram||_currentCamera!==camera){const reversedDepthBuffer=state.buffers.depth.getReversed();if(reversedDepthBuffer&&camera.reversedDepth!==true){camera._reversedDepth=true;camera.updateProjectionMatrix()}p_uniforms.setValue(_gl,"projectionMatrix",camera.projectionMatrix);p_uniforms.setValue(_gl,"viewMatrix",camera.matrixWorldInverse);const uCamPos=p_uniforms.map.cameraPosition;if(uCamPos!==undefined){uCamPos.setValue(_gl,_vector3.setFromMatrixPosition(camera.matrixWorld))}if(capabilities.logarithmicDepthBuffer){p_uniforms.setValue(_gl,"logDepthBufFC",2/(Math.log(camera.far+1)/Math.LN2))}if(material.isMeshPhongMaterial||material.isMeshToonMaterial||material.isMeshLambertMaterial||material.isMeshBasicMaterial||material.isMeshStandardMaterial||material.isShaderMaterial){p_uniforms.setValue(_gl,"isOrthographic",camera.isOrthographicCamera===true)}if(_currentCamera!==camera){_currentCamera=camera;refreshMaterial=true;refreshLights=true}}if(materialProperties.needsLights){if(lights.state.directionalShadowMap.length>0){p_uniforms.setValue(_gl,"directionalShadowMap",lights.state.directionalShadowMap,textures)}if(lights.state.spotShadowMap.length>0){p_uniforms.setValue(_gl,"spotShadowMap",lights.state.spotShadowMap,textures)}if(lights.state.pointShadowMap.length>0){p_uniforms.setValue(_gl,"pointShadowMap",lights.state.pointShadowMap,textures)}}if(object.isSkinnedMesh){p_uniforms.setOptional(_gl,object,"bindMatrix");p_uniforms.setOptional(_gl,object,"bindMatrixInverse");const skeleton=object.skeleton;if(skeleton){if(skeleton.boneTexture===null)skeleton.computeBoneTexture();p_uniforms.setValue(_gl,"boneTexture",skeleton.boneTexture,textures)}}if(object.isBatchedMesh){p_uniforms.setOptional(_gl,object,"batchingTexture");p_uniforms.setValue(_gl,"batchingTexture",object._matricesTexture,textures);p_uniforms.setOptional(_gl,object,"batchingIdTexture");p_uniforms.setValue(_gl,"batchingIdTexture",object._indirectTexture,textures);p_uniforms.setOptional(_gl,object,"batchingColorTexture");if(object._colorsTexture!==null){p_uniforms.setValue(_gl,"batchingColorTexture",object._colorsTexture,textures)}}const morphAttributes=geometry.morphAttributes;if(morphAttributes.position!==undefined||morphAttributes.normal!==undefined||morphAttributes.color!==undefined){morphtargets.update(object,geometry,program)}if(refreshMaterial||materialProperties.receiveShadow!==object.receiveShadow){materialProperties.receiveShadow=object.receiveShadow;p_uniforms.setValue(_gl,"receiveShadow",object.receiveShadow)}if(material.isMeshGouraudMaterial&&material.envMap!==null){m_uniforms.envMap.value=envMap;m_uniforms.flipEnvMap.value=envMap.isCubeTexture&&envMap.isRenderTargetTexture===false?-1:1}if(material.isMeshStandardMaterial&&material.envMap===null&&scene.environment!==null){m_uniforms.envMapIntensity.value=scene.environmentIntensity}if(m_uniforms.dfgLUT!==undefined){m_uniforms.dfgLUT.value=getDFGLUT()}if(refreshMaterial){p_uniforms.setValue(_gl,"toneMappingExposure",_this.toneMappingExposure);if(materialProperties.needsLights){markUniformsLightsNeedsUpdate(m_uniforms,refreshLights)}if(fog&&material.fog===true){materials.refreshFogUniforms(m_uniforms,fog)}materials.refreshMaterialUniforms(m_uniforms,material,_pixelRatio,_height,currentRenderState.state.transmissionRenderTarget[camera.id]);WebGLUniforms.upload(_gl,getUniformList(materialProperties),m_uniforms,textures)}if(material.isShaderMaterial&&material.uniformsNeedUpdate===true){WebGLUniforms.upload(_gl,getUniformList(materialProperties),m_uniforms,textures);material.uniformsNeedUpdate=false}if(material.isSpriteMaterial){p_uniforms.setValue(_gl,"center",object.center)}p_uniforms.setValue(_gl,"modelViewMatrix",object.modelViewMatrix);p_uniforms.setValue(_gl,"normalMatrix",object.normalMatrix);p_uniforms.setValue(_gl,"modelMatrix",object.matrixWorld);if(material.isShaderMaterial||material.isRawShaderMaterial){const groups=material.uniformsGroups;for(let i=0,l=groups.length;i0&&textures.useMultisampledRTT(renderTarget)===false){framebuffer=properties.get(renderTarget).__webglMultisampledFramebuffer}else{if(Array.isArray(__webglFramebuffer)){framebuffer=__webglFramebuffer[activeMipmapLevel]}else{framebuffer=__webglFramebuffer}}_currentViewport.copy(renderTarget.viewport);_currentScissor.copy(renderTarget.scissor);_currentScissorTest=renderTarget.scissorTest}else{_currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).floor();_currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).floor();_currentScissorTest=_scissorTest}if(activeMipmapLevel!==0){framebuffer=_scratchFrameBuffer}const framebufferBound=state.bindFramebuffer(_gl.FRAMEBUFFER,framebuffer);if(framebufferBound){state.drawBuffers(renderTarget,framebuffer)}state.viewport(_currentViewport);state.scissor(_currentScissor);state.setScissorTest(_currentScissorTest);if(isCube){const textureProperties=properties.get(renderTarget.texture);_gl.framebufferTexture2D(_gl.FRAMEBUFFER,_gl.COLOR_ATTACHMENT0,_gl.TEXTURE_CUBE_MAP_POSITIVE_X+activeCubeFace,textureProperties.__webglTexture,activeMipmapLevel)}else if(isRenderTarget3D){const layer=activeCubeFace;for(let i=0;i=0&&x<=renderTarget.width-width&&y>=0&&y<=renderTarget.height-height){if(renderTarget.textures.length>1)_gl.readBuffer(_gl.COLOR_ATTACHMENT0+textureIndex);_gl.readPixels(x,y,width,height,utils.convert(textureFormat),utils.convert(textureType),buffer)}}finally{const framebuffer=_currentRenderTarget!==null?properties.get(_currentRenderTarget).__webglFramebuffer:null;state.bindFramebuffer(_gl.FRAMEBUFFER,framebuffer)}}};this.readRenderTargetPixelsAsync=async function(renderTarget,x,y,width,height,buffer,activeCubeFaceIndex,textureIndex=0){if(!(renderTarget&&renderTarget.isWebGLRenderTarget)){throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")}let framebuffer=properties.get(renderTarget).__webglFramebuffer;if(renderTarget.isWebGLCubeRenderTarget&&activeCubeFaceIndex!==undefined){framebuffer=framebuffer[activeCubeFaceIndex]}if(framebuffer){if(x>=0&&x<=renderTarget.width-width&&y>=0&&y<=renderTarget.height-height){state.bindFramebuffer(_gl.FRAMEBUFFER,framebuffer);const texture=renderTarget.textures[textureIndex];const textureFormat=texture.format;const textureType=texture.type;if(!capabilities.textureFormatReadable(textureFormat)){throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.")}if(!capabilities.textureTypeReadable(textureType)){throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.")}const glBuffer=_gl.createBuffer();_gl.bindBuffer(_gl.PIXEL_PACK_BUFFER,glBuffer);_gl.bufferData(_gl.PIXEL_PACK_BUFFER,buffer.byteLength,_gl.STREAM_READ);if(renderTarget.textures.length>1)_gl.readBuffer(_gl.COLOR_ATTACHMENT0+textureIndex);_gl.readPixels(x,y,width,height,utils.convert(textureFormat),utils.convert(textureType),0);const currFramebuffer=_currentRenderTarget!==null?properties.get(_currentRenderTarget).__webglFramebuffer:null;state.bindFramebuffer(_gl.FRAMEBUFFER,currFramebuffer);const sync=_gl.fenceSync(_gl.SYNC_GPU_COMMANDS_COMPLETE,0);_gl.flush();await probeAsync(_gl,sync,4);_gl.bindBuffer(_gl.PIXEL_PACK_BUFFER,glBuffer);_gl.getBufferSubData(_gl.PIXEL_PACK_BUFFER,0,buffer);_gl.deleteBuffer(glBuffer);_gl.deleteSync(sync);return buffer}else{throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")}}};this.copyFramebufferToTexture=function(texture,position=null,level=0){const levelScale=Math.pow(2,-level);const width=Math.floor(texture.image.width*levelScale);const height=Math.floor(texture.image.height*levelScale);const x=position!==null?position.x:0;const y=position!==null?position.y:0;textures.setTexture2D(texture,0);_gl.copyTexSubImage2D(_gl.TEXTURE_2D,level,0,0,x,y,width,height);state.unbindTexture()};const _srcFramebuffer=_gl.createFramebuffer();const _dstFramebuffer=_gl.createFramebuffer();this.copyTextureToTexture=function(srcTexture,dstTexture,srcRegion=null,dstPosition=null,srcLevel=0,dstLevel=null){if(dstLevel===null){if(srcLevel!==0){warnOnce("WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels.");dstLevel=srcLevel;srcLevel=0}else{dstLevel=0}}let width,height,depth,minX,minY,minZ;let dstX,dstY,dstZ;const image=srcTexture.isCompressedTexture?srcTexture.mipmaps[dstLevel]:srcTexture.image;if(srcRegion!==null){width=srcRegion.max.x-srcRegion.min.x;height=srcRegion.max.y-srcRegion.min.y;depth=srcRegion.isBox3?srcRegion.max.z-srcRegion.min.z:1;minX=srcRegion.min.x;minY=srcRegion.min.y;minZ=srcRegion.isBox3?srcRegion.min.z:0}else{const levelScale=Math.pow(2,-srcLevel);width=Math.floor(image.width*levelScale);height=Math.floor(image.height*levelScale);if(srcTexture.isDataArrayTexture){depth=image.depth}else if(srcTexture.isData3DTexture){depth=Math.floor(image.depth*levelScale)}else{depth=1}minX=0;minY=0;minZ=0}if(dstPosition!==null){dstX=dstPosition.x;dstY=dstPosition.y;dstZ=dstPosition.z}else{dstX=0;dstY=0;dstZ=0}const glFormat=utils.convert(dstTexture.format);const glType=utils.convert(dstTexture.type);let glTarget;if(dstTexture.isData3DTexture){textures.setTexture3D(dstTexture,0);glTarget=_gl.TEXTURE_3D}else if(dstTexture.isDataArrayTexture||dstTexture.isCompressedArrayTexture){textures.setTexture2DArray(dstTexture,0);glTarget=_gl.TEXTURE_2D_ARRAY}else{textures.setTexture2D(dstTexture,0);glTarget=_gl.TEXTURE_2D}_gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL,dstTexture.flipY);_gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,dstTexture.premultiplyAlpha);_gl.pixelStorei(_gl.UNPACK_ALIGNMENT,dstTexture.unpackAlignment);const currentUnpackRowLen=_gl.getParameter(_gl.UNPACK_ROW_LENGTH);const currentUnpackImageHeight=_gl.getParameter(_gl.UNPACK_IMAGE_HEIGHT);const currentUnpackSkipPixels=_gl.getParameter(_gl.UNPACK_SKIP_PIXELS);const currentUnpackSkipRows=_gl.getParameter(_gl.UNPACK_SKIP_ROWS);const currentUnpackSkipImages=_gl.getParameter(_gl.UNPACK_SKIP_IMAGES);_gl.pixelStorei(_gl.UNPACK_ROW_LENGTH,image.width);_gl.pixelStorei(_gl.UNPACK_IMAGE_HEIGHT,image.height);_gl.pixelStorei(_gl.UNPACK_SKIP_PIXELS,minX);_gl.pixelStorei(_gl.UNPACK_SKIP_ROWS,minY);_gl.pixelStorei(_gl.UNPACK_SKIP_IMAGES,minZ);const isSrc3D=srcTexture.isDataArrayTexture||srcTexture.isData3DTexture;const isDst3D=dstTexture.isDataArrayTexture||dstTexture.isData3DTexture;if(srcTexture.isDepthTexture){const srcTextureProperties=properties.get(srcTexture);const dstTextureProperties=properties.get(dstTexture);const srcRenderTargetProperties=properties.get(srcTextureProperties.__renderTarget);const dstRenderTargetProperties=properties.get(dstTextureProperties.__renderTarget);state.bindFramebuffer(_gl.READ_FRAMEBUFFER,srcRenderTargetProperties.__webglFramebuffer);state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER,dstRenderTargetProperties.__webglFramebuffer);for(let i=0;i65535){return new Uint32Array(new BufferConstructor(4*vertexCount))}else{return new Uint16Array(new BufferConstructor(2*vertexCount))}}function ensureIndex(geo,options){if(!geo.index){const vertexCount=geo.attributes.position.count;const BufferConstructor=options.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;const index=getIndexArray(vertexCount,BufferConstructor);geo.setIndex(new three.BufferAttribute(index,1));for(let i=0;ia-b);for(let i=0;ia.offset-b.offset);const finalGroup=groups[groups.length-1];finalGroup.count=Math.min(vertexCount-finalGroup.offset,finalGroup.count);let total=0;groups.forEach(({count})=>total+=count);return vertexCount!==total}function getBounds(triangleBounds,offset,count,target,centroidTarget){let minx=Infinity;let miny=Infinity;let minz=Infinity;let maxx=-Infinity;let maxy=-Infinity;let maxz=-Infinity;let cminx=Infinity;let cminy=Infinity;let cminz=Infinity;let cmaxx=-Infinity;let cmaxy=-Infinity;let cmaxz=-Infinity;for(let i=offset*6,end=(offset+count)*6;imaxx)maxx=rx;if(cxcmaxx)cmaxx=cx;const cy=triangleBounds[i+2];const hy=triangleBounds[i+3];const ly=cy-hy;const ry=cy+hy;if(lymaxy)maxy=ry;if(cycmaxy)cmaxy=cy;const cz=triangleBounds[i+4];const hz=triangleBounds[i+5];const lz=cz-hz;const rz=cz+hz;if(lzmaxz)maxz=rz;if(czcmaxz)cmaxz=cz}target[0]=minx;target[1]=miny;target[2]=minz;target[3]=maxx;target[4]=maxy;target[5]=maxz;centroidTarget[0]=cminx;centroidTarget[1]=cminy;centroidTarget[2]=cminz;centroidTarget[3]=cmaxx;centroidTarget[4]=cmaxy;centroidTarget[5]=cmaxz}function computeTriangleBounds(geo,target=null,offset=null,count=null){const posAttr=geo.attributes.position;const index=geo.index?geo.index.array:null;const triCount=getTriCount(geo);const normalized=posAttr.normalized;let triangleBounds;if(target===null){triangleBounds=new Float32Array(triCount*6*4);offset=0;count=triCount}else{triangleBounds=target;offset=offset||0;count=count||triCount}const posArr=posAttr.array;const bufferOffset=posAttr.offset||0;let stride=3;if(posAttr.isInterleavedBufferAttribute){stride=posAttr.data.stride}const getters=["getX","getY","getZ"];for(let tri=offset;trimax)max=b;if(c>max)max=c;const halfExtents=(max-min)/2;const el2=el*2;triangleBounds[tri6+el2+0]=min+halfExtents;triangleBounds[tri6+el2+1]=halfExtents+(Math.abs(min)+halfExtents)*FLOAT32_EPSILON}}return triangleBounds}function arrayToBox(nodeIndex32,array,target){target.min.x=array[nodeIndex32];target.min.y=array[nodeIndex32+1];target.min.z=array[nodeIndex32+2];target.max.x=array[nodeIndex32+3];target.max.y=array[nodeIndex32+4];target.max.z=array[nodeIndex32+5];return target}function makeEmptyBounds(target){target[0]=target[1]=target[2]=Infinity;target[3]=target[4]=target[5]=-Infinity}function getLongestEdgeIndex(bounds){let splitDimIdx=-1;let splitDist=-Infinity;for(let i=0;i<3;i++){const dist=bounds[i+3]-bounds[i];if(dist>splitDist){splitDist=dist;splitDimIdx=i}}return splitDimIdx}function copyBounds(source,target){target.set(source)}function unionBounds(a,b,target){let aVal,bVal;for(let d=0;d<3;d++){const d3=d+3;aVal=a[d];bVal=b[d];target[d]=aValbVal?aVal:bVal}}function expandByTriangleBounds(startIndex,triangleBounds,bounds){for(let d=0;d<3;d++){const tCenter=triangleBounds[startIndex+2*d];const tHalf=triangleBounds[startIndex+2*d+1];const tMin=tCenter-tHalf;const tMax=tCenter+tHalf;if(tMinbounds[d+3]){bounds[d+3]=tMax}}}function computeSurfaceArea(bounds){const d0=bounds[3]-bounds[0];const d1=bounds[4]-bounds[1];const d2=bounds[5]-bounds[2];return 2*(d0*d1+d1*d2+d2*d0)}const BIN_COUNT=32;const binsSort=(a,b)=>a.candidate-b.candidate;const sahBins=new Array(BIN_COUNT).fill().map(()=>{return{count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0}});const leftBounds=new Float32Array(6);function getOptimalSplit(nodeBoundingData,centroidBoundingData,triangleBounds,offset,count,strategy){let axis=-1;let pos=0;if(strategy===CENTER){axis=getLongestEdgeIndex(centroidBoundingData);if(axis!==-1){pos=(centroidBoundingData[axis]+centroidBoundingData[axis+3])/2}}else if(strategy===AVERAGE){axis=getLongestEdgeIndex(nodeBoundingData);if(axis!==-1){pos=getAverage(triangleBounds,offset,count,axis)}}else if(strategy===SAH){const rootSurfaceArea=computeSurfaceArea(nodeBoundingData);let bestCost=TRIANGLE_INTERSECT_COST*count;const cStart=offset*6;const cEnd=(offset+count)*6;for(let a=0;a<3;a++){const axisLeft=centroidBoundingData[a];const axisRight=centroidBoundingData[a+3];const axisLength=axisRight-axisLeft;const binWidth=axisLength/BIN_COUNT;if(count=bin.candidate){expandByTriangleBounds(c,triangleBounds,bin.rightCacheBounds)}else{expandByTriangleBounds(c,triangleBounds,bin.leftCacheBounds);bin.count++}}}for(let bi=0;bi=BIN_COUNT)binIndex=BIN_COUNT-1;const bin=sahBins[binIndex];bin.count++;expandByTriangleBounds(c,triangleBounds,bin.bounds)}const lastBin=sahBins[BIN_COUNT-1];copyBounds(lastBin.bounds,lastBin.rightCacheBounds);for(let i=BIN_COUNT-2;i>=0;i--){const bin=sahBins[i];const nextBin=sahBins[i+1];unionBounds(bin.bounds,nextBin.rightCacheBounds,bin.rightCacheBounds)}let leftCount=0;for(let i=0;i=pos){right--}if(left=pos){right--}if(leftMAX_POINTER){throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.")}uint32Array[stride4Offset+6]=nextUnusedPointer/4;nextUnusedPointer=_populateBuffer(nextUnusedPointer,right);uint32Array[stride4Offset+7]=splitAxis;return nextUnusedPointer}}function generateIndirectBuffer(geometry,useSharedArrayBuffer){const triCount=(geometry.index?geometry.index.count:geometry.attributes.position.count)/3;const useUint32=triCount>2**16;const byteCount=useUint32?4:2;const buffer=useSharedArrayBuffer?new SharedArrayBuffer(triCount*byteCount):new ArrayBuffer(triCount*byteCount);const indirectBuffer=useUint32?new Uint32Array(buffer):new Uint16Array(buffer);for(let i=0,l=indirectBuffer.length;i=maxDepth){reachedMaxDepth=true;if(verbose){console.warn(`MeshBVH: Max depth of ${maxDepth} reached when generating BVH. Consider increasing maxDepth.`);console.warn(geometry)}}if(count<=maxLeafTris||depth>=maxDepth){triggerProgress(offset+count);node.offset=offset;node.count=count;return node}const split=getOptimalSplit(node.boundingData,centroidBoundingData,triangleBounds,offset,count,strategy);if(split.axis===-1){triggerProgress(offset+count);node.offset=offset;node.count=count;return node}const splitOffset=partionFunc(indirectBuffer,indexArray,triangleBounds,offset,count,split);if(splitOffset===offset||splitOffset===offset+count){triggerProgress(offset+count);node.offset=offset;node.count=count}else{node.splitAxis=split.axis;const left=new MeshBVHNode;const lstart=offset;const lcount=splitOffset-offset;node.left=left;getBounds(triangleBounds,lstart,lcount,left.boundingData,cacheCentroidBoundingData);splitNode(left,lstart,lcount,cacheCentroidBoundingData,depth+1);const right=new MeshBVHNode;const rstart=splitOffset;const rcount=count-lcount;node.right=right;getBounds(triangleBounds,rstart,rcount,right.boundingData,cacheCentroidBoundingData);splitNode(right,rstart,rcount,cacheCentroidBoundingData,depth+1)}return node}}function buildPackedTree(bvh,options){const geometry=bvh.geometry;if(options.indirect){bvh._indirectBuffer=generateIndirectBuffer(geometry,options.useSharedArrayBuffer);if(hasGroupGaps(geometry)&&!options.verbose){console.warn("MeshBVH: Provided geometry contains groups that do not fully span the vertex contents while using the \"indirect\" option. "+"BVH may incorrectly report intersections on unrendered portions of the geometry.")}}if(!bvh._indirectBuffer){ensureIndex(geometry,options)}const BufferConstructor=options.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;const triangleBounds=computeTriangleBounds(geometry);const geometryRanges=options.indirect?getFullGeometryRange(geometry):getRootIndexRanges(geometry);bvh._roots=geometryRanges.map(range=>{const root=buildTree(bvh,triangleBounds,range.offset,range.count,options);const nodeCount=countNodes(root);const buffer=new BufferConstructor(BYTES_PER_NODE*nodeCount);populateBuffer(0,root,buffer);return buffer})}class SeparatingAxisBounds{constructor(){this.min=Infinity;this.max=-Infinity}setFromPointsField(points,field){let min=Infinity;let max=-Infinity;for(let i=0,l=points.length;imax?val:max}this.min=min;this.max=max}setFromPoints(axis,points){let min=Infinity;let max=-Infinity;for(let i=0,l=points.length;imax?val:max}this.min=min;this.max=max}isSeparated(other){return this.min>other.max||other.min>this.max}}SeparatingAxisBounds.prototype.setFromBox=function(){const p=new three.Vector3;return function setFromBox(axis,box){const boxMin=box.min;const boxMax=box.max;let min=Infinity;let max=-Infinity;for(let x=0;x<=1;x++){for(let y=0;y<=1;y++){for(let z=0;z<=1;z++){p.x=boxMin.x*x+boxMax.x*(1-x);p.y=boxMin.y*y+boxMax.y*(1-y);p.z=boxMin.z*z+boxMax.z*(1-z);const val=axis.dot(p);min=Math.min(val,min);max=Math.max(val,max)}}}this.min=min;this.max=max}}();const areIntersecting=function(){const cacheSatBounds=new SeparatingAxisBounds;return function areIntersecting(shape1,shape2){const points1=shape1.points;const satAxes1=shape1.satAxes;const satBounds1=shape1.satBounds;const points2=shape2.points;const satAxes2=shape2.satAxes;const satBounds2=shape2.satBounds;for(let i=0;i<3;i++){const sb=satBounds1[i];const sa=satAxes1[i];cacheSatBounds.setFromPoints(sa,points2);if(sb.isSeparated(cacheSatBounds))return false}for(let i=0;i<3;i++){const sb=satBounds2[i];const sa=satAxes2[i];cacheSatBounds.setFromPoints(sa,points1);if(sb.isSeparated(cacheSatBounds))return false}}}();const closestPointLineToLine=function(){const dir1=new three.Vector3;const dir2=new three.Vector3;const v02=new three.Vector3;return function closestPointLineToLine(l1,l2,result){const v0=l1.start;const v10=dir1;const v2=l2.start;const v32=dir2;v02.subVectors(v0,v2);dir1.subVectors(l1.end,l1.start);dir2.subVectors(l2.end,l2.start);const d0232=v02.dot(v32);const d3210=v32.dot(v10);const d3232=v32.dot(v32);const d0210=v02.dot(v10);const d1010=v10.dot(v10);const denom=d1010*d3232-d3210*d3210;let d,d2;if(denom!==0){d=(d0232*d3210-d0210*d3232)/denom}else{d=0}d2=(d0232+d*d3210)/d3232;result.x=d;result.y=d2}}();const closestPointsSegmentToSegment=function(){const paramResult=new three.Vector2;const temp1=new three.Vector3;const temp2=new three.Vector3;return function closestPointsSegmentToSegment(l1,l2,target1,target2){closestPointLineToLine(l1,l2,paramResult);let d=paramResult.x;let d2=paramResult.y;if(d>=0&&d<=1&&d2>=0&&d2<=1){l1.at(d,target1);l2.at(d2,target2);return}else if(d>=0&&d<=1){if(d2<0){l2.at(0,target2)}else{l2.at(1,target2)}l1.closestPointToPoint(target2,true,target1);return}else if(d2>=0&&d2<=1){if(d<0){l1.at(0,target1)}else{l1.at(1,target1)}l2.closestPointToPoint(target1,true,target2);return}else{let p;if(d<0){p=l1.start}else{p=l1.end}let p2;if(d2<0){p2=l2.start}else{p2=l2.end}const closestPoint=temp1;const closestPoint2=temp2;l1.closestPointToPoint(p2,true,temp1);l2.closestPointToPoint(p,true,temp2);if(closestPoint.distanceToSquared(p2)<=closestPoint2.distanceToSquared(p)){target1.copy(closestPoint);target2.copy(p2);return}else{target1.copy(p);target2.copy(closestPoint2);return}}}}();const sphereIntersectTriangle=function(){const closestPointTemp=new three.Vector3;const projectedPointTemp=new three.Vector3;const planeTemp=new three.Plane;const lineTemp=new three.Line3;return function sphereIntersectTriangle(sphere,triangle){const{radius,center}=sphere;const{a,b,c}=triangle;lineTemp.start=a;lineTemp.end=b;const closestPoint1=lineTemp.closestPointToPoint(center,true,closestPointTemp);if(closestPoint1.distanceTo(center)<=radius)return true;lineTemp.start=a;lineTemp.end=c;const closestPoint2=lineTemp.closestPointToPoint(center,true,closestPointTemp);if(closestPoint2.distanceTo(center)<=radius)return true;lineTemp.start=b;lineTemp.end=c;const closestPoint3=lineTemp.closestPointToPoint(center,true,closestPointTemp);if(closestPoint3.distanceTo(center)<=radius)return true;const plane=triangle.getPlane(planeTemp);const dp=Math.abs(plane.distanceToPoint(center));if(dp<=radius){const pp=plane.projectPoint(center,projectedPointTemp);const cp=triangle.containsPoint(pp);if(cp)return true}return false}}();const ZERO_EPSILON=1e-15;function isNearZero(value){return Math.abs(value)new three.Vector3);this.satBounds=new Array(4).fill().map(()=>new SeparatingAxisBounds);this.points=[this.a,this.b,this.c];this.sphere=new three.Sphere;this.plane=new three.Plane;this.needsUpdate=true}intersectsSphere(sphere){return sphereIntersectTriangle(sphere,this)}update(){const a=this.a;const b=this.b;const c=this.c;const points=this.points;const satAxes=this.satAxes;const satBounds=this.satBounds;const axis0=satAxes[0];const sab0=satBounds[0];this.getNormal(axis0);sab0.setFromPoints(axis0,points);const axis1=satAxes[1];const sab1=satBounds[1];axis1.subVectors(a,b);sab1.setFromPoints(axis1,points);const axis2=satAxes[2];const sab2=satBounds[2];axis2.subVectors(b,c);sab2.setFromPoints(axis2,points);const axis3=satAxes[3];const sab3=satBounds[3];axis3.subVectors(c,a);sab3.setFromPoints(axis3,points);this.sphere.setFromPoints(this.points);this.plane.setFromNormalAndCoplanarPoint(axis0,a);this.needsUpdate=false}}ExtendedTriangle.prototype.closestPointToSegment=function(){const point1=new three.Vector3;const point2=new three.Vector3;const edge=new three.Line3;return function distanceToSegment(segment,target1=null,target2=null){const{start,end}=segment;const points=this.points;let distSq;let closestDistanceSq=Infinity;for(let i=0;i<3;i++){const nexti=(i+1)%3;edge.start.copy(points[i]);edge.end.copy(points[nexti]);closestPointsSegmentToSegment(edge,segment,point1,point2);distSq=point1.distanceToSquared(point2);if(distSq=2){const point=startPointIntersection===1?targetEdge.start:targetEdge.end;point.copy(tempPoint);count=2;break}count++;if(count===2&&startPointIntersection===-1){break}}}return count}return function intersectsTriangle(other,target=null,suppressLog=false){if(this.needsUpdate){this.update()}if(!other.isExtendedTriangle){saTri2.copy(other);saTri2.update();other=saTri2}else if(other.needsUpdate){other.update()}const plane1=this.plane;const plane2=other.plane;if(Math.abs(plane1.normal.dot(plane2.normal))>1-1e-10){const satBounds1=this.satBounds;const satAxes1=this.satAxes;arr2[0]=other.a;arr2[1]=other.b;arr2[2]=other.c;for(let i=0;i<4;i++){const sb=satBounds1[i];const sa=satAxes1[i];cachedSatBounds.setFromPoints(sa,arr2);if(sb.isSeparated(cachedSatBounds))return false}const satBounds2=other.satBounds;const satAxes2=other.satAxes;arr1[0]=this.a;arr1[1]=this.b;arr1[2]=this.c;for(let i=0;i<4;i++){const sb=satBounds2[i];const sa=satAxes2[i];cachedSatBounds.setFromPoints(sa,arr1);if(sb.isSeparated(cachedSatBounds))return false}for(let i=0;i<4;i++){const sa1=satAxes1[i];for(let i2=0;i2<4;i2++){const sa2=satAxes2[i2];cachedAxis.crossVectors(sa1,sa2);cachedSatBounds.setFromPoints(cachedAxis,arr1);cachedSatBounds2.setFromPoints(cachedAxis,arr2);if(cachedSatBounds.isSeparated(cachedSatBounds2))return false}}if(target){if(!suppressLog){console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0.")}target.start.set(0,0,0);target.end.set(0,0,0)}return true}else{const count1=triIntersectPlane(this,plane2,edge1);if(count1===1&&other.containsPoint(edge1.end)){if(target){target.start.copy(edge1.end);target.end.copy(edge1.end)}return true}else if(count1!==2){return false}const count2=triIntersectPlane(other,plane1,edge2);if(count2===1&&this.containsPoint(edge2.end)){if(target){target.start.copy(edge2.end);target.end.copy(edge2.end)}return true}else if(count2!==2){return false}edge1.delta(dir1);edge2.delta(dir2);if(dir1.dot(dir2)<0){let tmp=edge2.start;edge2.start=edge2.end;edge2.end=tmp}const s1=edge1.start.dot(dir1);const e1=edge1.end.dot(dir1);const s2=edge2.start.dot(dir1);const e2=edge2.end.dot(dir1);const separated1=e10){target.start.copy(edge1.start)}else{target.start.copy(edge2.start)}tempDir.subVectors(edge1.end,edge2.end);if(tempDir.dot(dir1)<0){target.end.copy(edge1.end)}else{target.end.copy(edge2.end)}}return true}}}();ExtendedTriangle.prototype.distanceToPoint=function(){const target=new three.Vector3;return function distanceToPoint(point){this.closestPointToPoint(point,target);return point.distanceTo(target)}}();ExtendedTriangle.prototype.distanceToTriangle=function(){const point=new three.Vector3;const point2=new three.Vector3;const cornerFields=["a","b","c"];const line1=new three.Line3;const line2=new three.Line3;return function distanceToTriangle(other,target1=null,target2=null){const lineTarget=target1||target2?line1:null;if(this.intersectsTriangle(other,lineTarget)){if(target1||target2){if(target1)lineTarget.getCenter(target1);if(target2)lineTarget.getCenter(target2)}return 0}let closestDistanceSq=Infinity;for(let i=0;i<3;i++){let dist;const field=cornerFields[i];const otherVec=other[field];this.closestPointToPoint(otherVec,point);dist=otherVec.distanceToSquared(point);if(distnew three.Vector3);this.satAxes=new Array(3).fill().map(()=>new three.Vector3);this.satBounds=new Array(3).fill().map(()=>new SeparatingAxisBounds);this.alignedSatBounds=new Array(3).fill().map(()=>new SeparatingAxisBounds);this.needsUpdate=false;if(min)this.min.copy(min);if(max)this.max.copy(max);if(matrix)this.matrix.copy(matrix)}set(min,max,matrix){this.min.copy(min);this.max.copy(max);this.matrix.copy(matrix);this.needsUpdate=true}copy(other){this.min.copy(other.min);this.max.copy(other.max);this.matrix.copy(other.matrix);this.needsUpdate=true}}OrientedBox.prototype.update=function(){return function update(){const matrix=this.matrix;const min=this.min;const max=this.max;const points=this.points;for(let x=0;x<=1;x++){for(let y=0;y<=1;y++){for(let z=0;z<=1;z++){const i=(1<<0)*x|(1<<1)*y|(1<<2)*z;const v=points[i];v.x=x?max.x:min.x;v.y=y?max.y:min.y;v.z=z?max.z:min.z;v.applyMatrix4(matrix)}}}const satBounds=this.satBounds;const satAxes=this.satAxes;const minVec=points[0];for(let i=0;i<3;i++){const axis=satAxes[i];const sb=satBounds[i];const index=1<new three.Line3);const segments2=new Array(12).fill().map(()=>new three.Line3);const point1=new three.Vector3;const point2=new three.Vector3;return function distanceToBox(box,threshold=0,target1=null,target2=null){if(this.needsUpdate){this.update()}if(this.intersectsBox(box)){if(target1||target2){box.getCenter(point2);this.closestPointToPoint(point2,point1);box.closestPointToPoint(point1,point2);if(target1)target1.copy(point1);if(target2)target2.copy(point2)}return 0}const threshold2=threshold*threshold;const min=box.min;const max=box.max;const points=this.points;let closestDistanceSq=Infinity;for(let i=0;i<8;i++){const p=points[i];point2.copy(p).clamp(min,max);const dist=p.distanceToSquared(point2);if(distnew ExtendedTriangle)}}const ExtendedTrianglePool=new ExtendedTrianglePoolBase;class _BufferStack{constructor(){this.float32Array=null;this.uint16Array=null;this.uint32Array=null;const stack=[];let prevBuffer=null;this.setBuffer=buffer=>{if(prevBuffer){stack.push(prevBuffer)}prevBuffer=buffer;this.float32Array=new Float32Array(buffer);this.uint16Array=new Uint16Array(buffer);this.uint32Array=new Uint32Array(buffer)};this.clearBuffer=()=>{prevBuffer=null;this.float32Array=null;this.uint16Array=null;this.uint32Array=null;if(stack.length!==0){this.setBuffer(stack.pop())}}}}const BufferStack=new _BufferStack;let _box1$1,_box2$1;const boxStack=[];const boxPool=new PrimitivePool(()=>new three.Box3);function shapecast(bvh,root,intersectsBounds,intersectsRange,boundsTraverseOrder,byteOffset){_box1$1=boxPool.getPrimitive();_box2$1=boxPool.getPrimitive();boxStack.push(_box1$1,_box2$1);BufferStack.setBuffer(bvh._roots[root]);const result=shapecastTraverse(0,bvh.geometry,intersectsBounds,intersectsRange,boundsTraverseOrder,byteOffset);BufferStack.clearBuffer();boxPool.releasePrimitive(_box1$1);boxPool.releasePrimitive(_box2$1);boxStack.pop();boxStack.pop();const length=boxStack.length;if(length>0){_box2$1=boxStack[length-1];_box1$1=boxStack[length-2]}return result}function shapecastTraverse(nodeIndex32,geometry,intersectsBoundsFunc,intersectsRangeFunc,nodeScoreFunc=null,nodeIndexByteOffset=0,depth=0){const{float32Array,uint16Array,uint32Array}=BufferStack;let nodeIndex16=nodeIndex32*2;const isLeaf=IS_LEAF(nodeIndex16,uint16Array);if(isLeaf){const offset=OFFSET(nodeIndex32,uint32Array);const count=COUNT(nodeIndex16,uint16Array);arrayToBox(BOUNDING_DATA_INDEX(nodeIndex32),float32Array,_box1$1);return intersectsRangeFunc(offset,count,false,depth,nodeIndexByteOffset+nodeIndex32,_box1$1)}else{const left=LEFT_NODE(nodeIndex32);const right=RIGHT_NODE(nodeIndex32,uint32Array);let c1=left;let c2=right;let score1,score2;let box1,box2;if(nodeScoreFunc){box1=_box1$1;box2=_box2$1;arrayToBox(BOUNDING_DATA_INDEX(c1),float32Array,box1);arrayToBox(BOUNDING_DATA_INDEX(c2),float32Array,box2);score1=nodeScoreFunc(box1);score2=nodeScoreFunc(box2);if(score2{temp.copy(point).clamp(box.min,box.max);return temp.distanceToSquared(point)},intersectsBounds:(box,isLeaf,score)=>{return score{tri.closestPointToPoint(point,temp);const distSq=point.distanceToSquared(temp);if(distSq0){intersection.normal.multiplyScalar(-1)}}const face={a:a,b:b,c:c,normal:new three.Vector3,materialIndex:0};three.Triangle.getNormal(_vA,_vB,_vC,face.normal);intersection.face=face;intersection.faceIndex=a}return intersection}function intersectTri(geo,side,ray,tri,intersections){const triOffset=tri*3;let a=triOffset+0;let b=triOffset+1;let c=triOffset+2;const index=geo.index;if(geo.index){a=index.getX(a);b=index.getX(b);c=index.getX(c)}const{position,normal,uv,uv1}=geo.attributes;const intersection=checkBufferGeometryIntersection(ray,position,normal,uv,uv1,a,b,c,side);if(intersection){intersection.faceIndex=tri;if(intersections)intersections.push(intersection);return intersection}return null}function setTriangle(tri,i,index,pos){const ta=tri.a;const tb=tri.b;const tc=tri.c;let i0=i;let i1=i+1;let i2=i+2;if(index){i0=index.getX(i0);i1=index.getX(i1);i2=index.getX(i2)}ta.x=pos.getX(i0);ta.y=pos.getY(i0);ta.z=pos.getZ(i0);tb.x=pos.getX(i1);tb.y=pos.getY(i1);tb.z=pos.getZ(i1);tc.x=pos.getX(i2);tc.y=pos.getY(i2);tc.z=pos.getZ(i2)}const tempV1=new three.Vector3;const tempV2=new three.Vector3;const tempV3=new three.Vector3;const tempUV1=new three.Vector2;const tempUV2=new three.Vector2;const tempUV3=new three.Vector2;function getTriangleHitPointInfo(point,geometry,triangleIndex,target){const indices=geometry.getIndex().array;const positions=geometry.getAttribute("position");const uvs=geometry.getAttribute("uv");const a=indices[triangleIndex*3];const b=indices[triangleIndex*3+1];const c=indices[triangleIndex*3+2];tempV1.fromBufferAttribute(positions,a);tempV2.fromBufferAttribute(positions,b);tempV3.fromBufferAttribute(positions,c);let materialIndex=0;const groups=geometry.groups;const firstVertexIndex=triangleIndex*3;for(let i=0,l=groups.length;i=start&&firstVertexIndexmaxx)maxx=x;if(ymaxy)maxy=y;if(zmaxz)maxz=z}if(float32Array[node32Index+0]!==minx||float32Array[node32Index+1]!==miny||float32Array[node32Index+2]!==minz||float32Array[node32Index+3]!==maxx||float32Array[node32Index+4]!==maxy||float32Array[node32Index+5]!==maxz){float32Array[node32Index+0]=minx;float32Array[node32Index+1]=miny;float32Array[node32Index+2]=minz;float32Array[node32Index+3]=maxx;float32Array[node32Index+4]=maxy;float32Array[node32Index+5]=maxz;return true}else{return false}}else{const left=node32Index+8;const right=uint32Array[node32Index+6];const offsetLeft=left+byteOffset;const offsetRight=right+byteOffset;let forceChildren=force;let includesLeft=false;let includesRight=false;if(nodeIndices){if(!forceChildren){includesLeft=nodeIndices.has(offsetLeft);includesRight=nodeIndices.has(offsetRight);forceChildren=!includesLeft&&!includesRight}}else{includesLeft=true;includesRight=true}const traverseLeft=forceChildren||includesLeft;const traverseRight=forceChildren||includesRight;let leftChange=false;if(traverseLeft){leftChange=_traverse(left,byteOffset,forceChildren)}let rightChange=false;if(traverseRight){rightChange=_traverse(right,byteOffset,forceChildren)}const didChange=leftChange||rightChange;if(didChange){for(let i=0;i<3;i++){const lefti=left+i;const righti=right+i;const minLeftValue=float32Array[lefti];const maxLeftValue=float32Array[lefti+3];const minRightValue=float32Array[righti];const maxRightValue=float32Array[righti+3];float32Array[node32Index+i]=minLeftValuemaxRightValue?maxLeftValue:maxRightValue}}return didChange}}}function intersectRay(nodeIndex32,array,ray){let tmin,tmax,tymin,tymax,tzmin,tzmax;const invdirx=1/ray.direction.x,invdiry=1/ray.direction.y,invdirz=1/ray.direction.z;const ox=ray.origin.x;const oy=ray.origin.y;const oz=ray.origin.z;let minx=array[nodeIndex32];let maxx=array[nodeIndex32+3];let miny=array[nodeIndex32+1];let maxy=array[nodeIndex32+3+1];let minz=array[nodeIndex32+2];let maxz=array[nodeIndex32+3+2];if(invdirx>=0){tmin=(minx-ox)*invdirx;tmax=(maxx-ox)*invdirx}else{tmin=(maxx-ox)*invdirx;tmax=(minx-ox)*invdirx}if(invdiry>=0){tymin=(miny-oy)*invdiry;tymax=(maxy-oy)*invdiry}else{tymin=(maxy-oy)*invdiry;tymax=(miny-oy)*invdiry}if(tmin>tymax||tymin>tmax)return false;if(tymin>tmin||isNaN(tmin))tmin=tymin;if(tymax=0){tzmin=(minz-oz)*invdirz;tzmax=(maxz-oz)*invdirz}else{tzmin=(maxz-oz)*invdirz;tzmax=(minz-oz)*invdirz}if(tmin>tzmax||tzmin>tmax)return false;if(tzmax=0;let c1,c2;if(leftToRight){c1=LEFT_NODE(nodeIndex32);c2=RIGHT_NODE(nodeIndex32,uint32Array)}else{c1=RIGHT_NODE(nodeIndex32,uint32Array);c2=LEFT_NODE(nodeIndex32)}const c1Intersection=intersectRay(c1,float32Array,ray);const c1Result=c1Intersection?_raycastFirst$1(c1,bvh,side,ray):null;if(c1Result){const point=c1Result.point[xyzAxis];const isOutside=leftToRight?point<=float32Array[c2+splitAxis]:point>=float32Array[c2+splitAxis+3];if(isOutside){return c1Result}}const c2Intersection=intersectRay(c2,float32Array,ray);const c2Result=c2Intersection?_raycastFirst$1(c2,bvh,side,ray):null;if(c1Result&&c2Result){return c1Result.distance<=c2Result.distance?c1Result:c2Result}else{return c1Result||c2Result||null}}}const boundingBox$2=new three.Box3;const triangle$1=new ExtendedTriangle;const triangle2$1=new ExtendedTriangle;const invertedMat$1=new three.Matrix4;const obb$4=new OrientedBox;const obb2$3=new OrientedBox;function intersectsGeometry(bvh,root,otherGeometry,geometryToBvh){BufferStack.setBuffer(bvh._roots[root]);const result=_intersectsGeometry$1(0,bvh,otherGeometry,geometryToBvh);BufferStack.clearBuffer();return result}function _intersectsGeometry$1(nodeIndex32,bvh,otherGeometry,geometryToBvh,cachedObb=null){const{float32Array,uint16Array,uint32Array}=BufferStack;let nodeIndex16=nodeIndex32*2;if(cachedObb===null){if(!otherGeometry.boundingBox){otherGeometry.computeBoundingBox()}obb$4.set(otherGeometry.boundingBox.min,otherGeometry.boundingBox.max,geometryToBvh);cachedObb=obb$4}const isLeaf=IS_LEAF(nodeIndex16,uint16Array);if(isLeaf){const thisGeometry=bvh.geometry;const thisIndex=thisGeometry.index;const thisPos=thisGeometry.attributes.position;const index=otherGeometry.index;const pos=otherGeometry.attributes.position;const offset=OFFSET(nodeIndex32,uint32Array);const count=COUNT(nodeIndex16,uint16Array);invertedMat$1.copy(geometryToBvh).invert();if(otherGeometry.boundsTree){arrayToBox(BOUNDING_DATA_INDEX(nodeIndex32),float32Array,obb2$3);obb2$3.matrix.copy(invertedMat$1);obb2$3.needsUpdate=true;const res=otherGeometry.boundsTree.shapecast({intersectsBounds:box=>obb2$3.intersectsBox(box),intersectsTriangle:tri=>{tri.a.applyMatrix4(geometryToBvh);tri.b.applyMatrix4(geometryToBvh);tri.c.applyMatrix4(geometryToBvh);tri.needsUpdate=true;for(let i=offset*3,l=(count+offset)*3;i{return obb$3.distanceToBox(box)},intersectsBounds:(box,isLeaf,score)=>{if(score{if(otherGeometry.boundsTree){const otherBvh=otherGeometry.boundsTree;return otherBvh.shapecast({boundsTraverseOrder:box=>{return obb2$2.distanceToBox(box)},intersectsBounds:(box,isLeaf,score)=>{return score{for(let i2=otherOffset,l2=otherOffset+otherCount;i2maxx)maxx=x;if(ymaxy)maxy=y;if(zmaxz)maxz=z}}if(float32Array[node32Index+0]!==minx||float32Array[node32Index+1]!==miny||float32Array[node32Index+2]!==minz||float32Array[node32Index+3]!==maxx||float32Array[node32Index+4]!==maxy||float32Array[node32Index+5]!==maxz){float32Array[node32Index+0]=minx;float32Array[node32Index+1]=miny;float32Array[node32Index+2]=minz;float32Array[node32Index+3]=maxx;float32Array[node32Index+4]=maxy;float32Array[node32Index+5]=maxz;return true}else{return false}}else{const left=node32Index+8;const right=uint32Array[node32Index+6];const offsetLeft=left+byteOffset;const offsetRight=right+byteOffset;let forceChildren=force;let includesLeft=false;let includesRight=false;if(nodeIndices){if(!forceChildren){includesLeft=nodeIndices.has(offsetLeft);includesRight=nodeIndices.has(offsetRight);forceChildren=!includesLeft&&!includesRight}}else{includesLeft=true;includesRight=true}const traverseLeft=forceChildren||includesLeft;const traverseRight=forceChildren||includesRight;let leftChange=false;if(traverseLeft){leftChange=_traverse(left,byteOffset,forceChildren)}let rightChange=false;if(traverseRight){rightChange=_traverse(right,byteOffset,forceChildren)}const didChange=leftChange||rightChange;if(didChange){for(let i=0;i<3;i++){const lefti=left+i;const righti=right+i;const minLeftValue=float32Array[lefti];const maxLeftValue=float32Array[lefti+3];const minRightValue=float32Array[righti];const maxRightValue=float32Array[righti+3];float32Array[node32Index+i]=minLeftValuemaxRightValue?maxLeftValue:maxRightValue}}return didChange}}}function raycast_indirect(bvh,root,side,ray,intersects){BufferStack.setBuffer(bvh._roots[root]);_raycast(0,bvh,side,ray,intersects);BufferStack.clearBuffer()}function _raycast(nodeIndex32,bvh,side,ray,intersects){const{float32Array,uint16Array,uint32Array}=BufferStack;const nodeIndex16=nodeIndex32*2;const isLeaf=IS_LEAF(nodeIndex16,uint16Array);if(isLeaf){const offset=OFFSET(nodeIndex32,uint32Array);const count=COUNT(nodeIndex16,uint16Array);intersectTris_indirect(bvh,side,ray,offset,count,intersects)}else{const leftIndex=LEFT_NODE(nodeIndex32);if(intersectRay(leftIndex,float32Array,ray)){_raycast(leftIndex,bvh,side,ray,intersects)}const rightIndex=RIGHT_NODE(nodeIndex32,uint32Array);if(intersectRay(rightIndex,float32Array,ray)){_raycast(rightIndex,bvh,side,ray,intersects)}}}const _xyzFields=["x","y","z"];function raycastFirst_indirect(bvh,root,side,ray){BufferStack.setBuffer(bvh._roots[root]);const result=_raycastFirst(0,bvh,side,ray);BufferStack.clearBuffer();return result}function _raycastFirst(nodeIndex32,bvh,side,ray){const{float32Array,uint16Array,uint32Array}=BufferStack;let nodeIndex16=nodeIndex32*2;const isLeaf=IS_LEAF(nodeIndex16,uint16Array);if(isLeaf){const offset=OFFSET(nodeIndex32,uint32Array);const count=COUNT(nodeIndex16,uint16Array);return intersectClosestTri_indirect(bvh,side,ray,offset,count)}else{const splitAxis=SPLIT_AXIS(nodeIndex32,uint32Array);const xyzAxis=_xyzFields[splitAxis];const rayDir=ray.direction[xyzAxis];const leftToRight=rayDir>=0;let c1,c2;if(leftToRight){c1=LEFT_NODE(nodeIndex32);c2=RIGHT_NODE(nodeIndex32,uint32Array)}else{c1=RIGHT_NODE(nodeIndex32,uint32Array);c2=LEFT_NODE(nodeIndex32)}const c1Intersection=intersectRay(c1,float32Array,ray);const c1Result=c1Intersection?_raycastFirst(c1,bvh,side,ray):null;if(c1Result){const point=c1Result.point[xyzAxis];const isOutside=leftToRight?point<=float32Array[c2+splitAxis]:point>=float32Array[c2+splitAxis+3];if(isOutside){return c1Result}}const c2Intersection=intersectRay(c2,float32Array,ray);const c2Result=c2Intersection?_raycastFirst(c2,bvh,side,ray):null;if(c1Result&&c2Result){return c1Result.distance<=c2Result.distance?c1Result:c2Result}else{return c1Result||c2Result||null}}}const boundingBox$1=new three.Box3;const triangle=new ExtendedTriangle;const triangle2=new ExtendedTriangle;const invertedMat=new three.Matrix4;const obb$2=new OrientedBox;const obb2$1=new OrientedBox;function intersectsGeometry_indirect(bvh,root,otherGeometry,geometryToBvh){BufferStack.setBuffer(bvh._roots[root]);const result=_intersectsGeometry(0,bvh,otherGeometry,geometryToBvh);BufferStack.clearBuffer();return result}function _intersectsGeometry(nodeIndex32,bvh,otherGeometry,geometryToBvh,cachedObb=null){const{float32Array,uint16Array,uint32Array}=BufferStack;let nodeIndex16=nodeIndex32*2;if(cachedObb===null){if(!otherGeometry.boundingBox){otherGeometry.computeBoundingBox()}obb$2.set(otherGeometry.boundingBox.min,otherGeometry.boundingBox.max,geometryToBvh);cachedObb=obb$2}const isLeaf=IS_LEAF(nodeIndex16,uint16Array);if(isLeaf){const thisGeometry=bvh.geometry;const thisIndex=thisGeometry.index;const thisPos=thisGeometry.attributes.position;const index=otherGeometry.index;const pos=otherGeometry.attributes.position;const offset=OFFSET(nodeIndex32,uint32Array);const count=COUNT(nodeIndex16,uint16Array);invertedMat.copy(geometryToBvh).invert();if(otherGeometry.boundsTree){arrayToBox(BOUNDING_DATA_INDEX(nodeIndex32),float32Array,obb2$1);obb2$1.matrix.copy(invertedMat);obb2$1.needsUpdate=true;const res=otherGeometry.boundsTree.shapecast({intersectsBounds:box=>obb2$1.intersectsBox(box),intersectsTriangle:tri=>{tri.a.applyMatrix4(geometryToBvh);tri.b.applyMatrix4(geometryToBvh);tri.c.applyMatrix4(geometryToBvh);tri.needsUpdate=true;for(let i=offset,l=count+offset;i{return obb$1.distanceToBox(box)},intersectsBounds:(box,isLeaf,score)=>{if(score{if(otherGeometry.boundsTree){const otherBvh=otherGeometry.boundsTree;return otherBvh.shapecast({boundsTraverseOrder:box=>{return obb2.distanceToBox(box)},intersectsBounds:(box,isLeaf,score)=>{return score{for(let i2=otherOffset,l2=otherOffset+otherCount;i2new three.Box3);const _leftBox1=new three.Box3;const _rightBox1=new three.Box3;const _leftBox2=new three.Box3;const _rightBox2=new three.Box3;let _active=false;function bvhcast(bvh,otherBvh,matrixToLocal,intersectsRanges){if(_active){throw new Error("MeshBVH: Recursive calls to bvhcast not supported.")}_active=true;const roots=bvh._roots;const otherRoots=otherBvh._roots;let result;let offset1=0;let offset2=0;const invMat=new three.Matrix4().copy(matrixToLocal).invert();for(let i=0,il=roots.length;iroot.slice()),index:indexAttribute?indexAttribute.array.slice():null,indirectBuffer:indirectBuffer?indirectBuffer.slice():null}}else{result={roots:rootData,index:indexAttribute?indexAttribute.array:null,indirectBuffer:indirectBuffer}}return result}static deserialize(data,geometry,options={}){options={setIndex:true,indirect:Boolean(data.indirectBuffer),...options};const{index,roots,indirectBuffer}=data;const bvh=new MeshBVH(geometry,{...options,[SKIP_GENERATION]:true});bvh._roots=roots;bvh._indirectBuffer=indirectBuffer||null;if(options.setIndex){const indexAttribute=geometry.getIndex();if(indexAttribute===null){const newIndex=new three.BufferAttribute(data.index,1,false);geometry.setIndex(newIndex)}else if(indexAttribute.array!==index){indexAttribute.array.set(index);indexAttribute.needsUpdate=true}}return bvh}get indirect(){return!!this._indirectBuffer}constructor(geometry,options={}){if(!geometry.isBufferGeometry){throw new Error("MeshBVH: Only BufferGeometries are supported.")}else if(geometry.index&&geometry.index.isInterleavedBufferAttribute){throw new Error("MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.")}options=Object.assign({...DEFAULT_OPTIONS,[SKIP_GENERATION]:false},options);if(options.useSharedArrayBuffer&&!isSharedArrayBufferSupported()){throw new Error("MeshBVH: SharedArrayBuffer is not available.")}this.geometry=geometry;this._roots=null;this._indirectBuffer=null;if(!options[SKIP_GENERATION]){buildPackedTree(this,options);if(!geometry.boundingBox&&options.setBoundingBox){geometry.boundingBox=this.getBoundingBox(new three.Box3)}}this.resolveTriangleIndex=this._indirectBuffer?i=>this._indirectBuffer[i]:i=>i}refit(nodeIndices=null){const refitFunc=this.indirect?refit_indirect:refit;return refitFunc(this,nodeIndices)}traverse(callback,rootIndex=0){const buffer=this._roots[rootIndex];const uint32Array=new Uint32Array(buffer);const uint16Array=new Uint16Array(buffer);_traverse(0);function _traverse(node32Index,depth=0){const node16Index=node32Index*2;const isLeaf=uint16Array[node16Index+15]===IS_LEAFNODE_FLAG;if(isLeaf){const offset=uint32Array[node32Index+6];const count=uint16Array[node16Index+14];callback(depth,isLeaf,new Float32Array(buffer,node32Index*4,6),offset,count)}else{const left=node32Index+BYTES_PER_NODE/4;const right=uint32Array[node32Index+6];const splitAxis=uint32Array[node32Index+7];const stopTraversal=callback(depth,isLeaf,new Float32Array(buffer,node32Index*4,6),splitAxis);if(!stopTraversal){_traverse(left,depth+1);_traverse(right,depth+1)}}}}raycast(ray,materialOrSide=three.FrontSide){const roots=this._roots;const geometry=this.geometry;const intersects=[];const isMaterial=materialOrSide.isMaterial;const isArrayMaterial=Array.isArray(materialOrSide);const groups=geometry.groups;const side=isMaterial?materialOrSide.side:materialOrSide;const raycastFunc=this.indirect?raycast_indirect:raycast;for(let i=0,l=roots.length;i{if(!originalIntersectsRange(offset,count,contained,depth,nodeIndex)){return iterateFunc(offset,count,this,intersectsTriangle,contained,depth,triangle)}return true}}else if(!intersectsRange){if(intersectsTriangle){intersectsRange=(offset,count,contained,depth)=>{return iterateFunc(offset,count,this,intersectsTriangle,contained,depth,triangle)}}else{intersectsRange=(offset,count,contained)=>{return contained}}}let result=false;let byteOffset=0;const roots=this._roots;for(let i=0,l=roots.length;i{const ti=this.resolveTriangleIndex(i1);setTriangle(triangle1,ti*3,indexAttr1,positionAttr1)}:i1=>{setTriangle(triangle1,i1*3,indexAttr1,positionAttr1)};const triangle2=ExtendedTrianglePool.getPrimitive();const indexAttr2=otherBvh.geometry.index;const positionAttr2=otherBvh.geometry.attributes.position;const assignTriangle2=otherBvh.indirect?i2=>{const ti2=otherBvh.resolveTriangleIndex(i2);setTriangle(triangle2,ti2*3,indexAttr2,positionAttr2)}:i2=>{setTriangle(triangle2,i2*3,indexAttr2,positionAttr2)};if(intersectsTriangles){const iterateOverDoubleTriangles=(offset1,count1,offset2,count2,depth1,index1,depth2,index2)=>{for(let i2=offset2,l2=offset2+count2;i2obb.intersectsBox(box),intersectsTriangle:tri=>obb.intersectsTriangle(tri)})}intersectsSphere(sphere){return this.shapecast({intersectsBounds:box=>sphere.intersectsBox(box),intersectsTriangle:tri=>tri.intersectsSphere(sphere)})}closestPointToGeometry(otherGeometry,geometryToBvh,target1={},target2={},minThreshold=0,maxThreshold=Infinity){const closestPointToGeometryFunc=this.indirect?closestPointToGeometry_indirect:closestPointToGeometry;return closestPointToGeometryFunc(this,otherGeometry,geometryToBvh,target1,target2,minThreshold,maxThreshold)}closestPointToPoint(point,target={},minThreshold=0,maxThreshold=Infinity){return closestPointToPoint(this,point,target,minThreshold,maxThreshold)}getBoundingBox(target){target.makeEmpty();const roots=this._roots;roots.forEach(buffer=>{arrayToBox(0,new Float32Array(buffer),tempBox);target.union(tempBox)});return target}}const boundingBox=new three.Box3;class MeshBVHRootHelper extends three.Object3D{get isMesh(){return!this.displayEdges}get isLineSegments(){return this.displayEdges}get isLine(){return this.displayEdges}constructor(bvh,material,depth=10,group=0){super();this.material=material;this.geometry=new three.BufferGeometry;this.name="MeshBVHRootHelper";this.depth=depth;this.displayParents=false;this.bvh=bvh;this.displayEdges=true;this._group=group}raycast(){}update(){const geometry=this.geometry;const boundsTree=this.bvh;const group=this._group;geometry.dispose();this.visible=false;if(boundsTree){const targetDepth=this.depth-1;const displayParents=this.displayParents;let boundsCount=0;boundsTree.traverse((depth,isLeaf)=>{if(depth>=targetDepth||isLeaf){boundsCount++;return true}else if(displayParents){boundsCount++}},group);let posIndex=0;const positionArray=new Float32Array(8*3*boundsCount);boundsTree.traverse((depth,isLeaf,boundingData)=>{const terminate=depth>=targetDepth||isLeaf;if(terminate||displayParents){arrayToBox(0,boundingData,boundingBox);const{min,max}=boundingBox;for(let x=-1;x<=1;x+=2){const xVal=x<0?min.x:max.x;for(let y=-1;y<=1;y+=2){const yVal=y<0?min.y:max.y;for(let z=-1;z<=1;z+=2){const zVal=z<0?min.z:max.z;positionArray[posIndex+0]=xVal;positionArray[posIndex+1]=yVal;positionArray[posIndex+2]=zVal;posIndex+=3}}}return terminate}},group);let indexArray;let indices;if(this.displayEdges){indices=new Uint8Array([0,4,1,5,2,6,3,7,0,2,1,3,4,6,5,7,0,1,2,3,4,5,6,7])}else{indices=new Uint8Array([0,1,2,2,1,3,4,6,5,6,7,5,1,4,5,0,4,1,2,3,6,3,7,6,0,2,4,2,6,4,1,5,3,3,5,7])}if(positionArray.length>65535){indexArray=new Uint32Array(indices.length*boundsCount)}else{indexArray=new Uint16Array(indices.length*boundsCount)}const indexLength=indices.length;for(let i=0;itotalRoots){const root=this._roots.pop();root.geometry.dispose();this.remove(root)}for(let i=0;i=this._roots.length){const root=new MeshBVHRootHelper(bvh,edgeMaterial,depth,i);this.add(root);this._roots.push(root)}const root=this._roots[i];root.bvh=bvh;root.depth=depth;root.displayParents=displayParents;root.displayEdges=displayEdges;root.material=displayEdges?edgeMaterial:meshMaterial;root.update()}}updateMatrixWorld(...args){const mesh=this.mesh;const parent=this.parent;if(mesh!==null){mesh.updateWorldMatrix(true,false);if(parent){this.matrix.copy(parent.matrixWorld).invert().multiply(mesh.matrixWorld)}else{this.matrix.copy(mesh.matrixWorld)}this.matrix.decompose(this.position,this.quaternion,this.scale)}super.updateMatrixWorld(...args)}copy(source){this.depth=source.depth;this.mesh=source.mesh;this.bvh=source.bvh;this.opacity=source.opacity;this.color.copy(source.color)}clone(){return new MeshBVHHelper(this.mesh,this.bvh,this.depth)}dispose(){this.edgeMaterial.dispose();this.meshMaterial.dispose();const children=this.children;for(let i=0,l=children.length;i{const l0=boundingData[0+3]-boundingData[0];const l1=boundingData[1+3]-boundingData[1];const l2=boundingData[2+3]-boundingData[2];const surfaceArea=2*(l0*l1+l1*l2+l2*l0);result.nodeCount++;if(isLeaf){result.leafNodeCount++;result.depth.min=Math.min(depth,result.depth.min);result.depth.max=Math.max(depth,result.depth.max);result.tris.min=Math.min(count,result.tris.min);result.tris.max=Math.max(count,result.tris.max);result.surfaceAreaScore+=surfaceArea*TRIANGLE_INTERSECT_COST*count}else{result.splits[offsetOrSplit]++;result.surfaceAreaScore+=surfaceArea*TRAVERSAL_COST}},group);if(result.tris.min===Infinity){result.tris.min=0;result.tris.max=0}if(result.depth.min===Infinity){result.depth.min=0;result.depth.max=0}return result}function getBVHExtremes(bvh){return bvh._roots.map((root,i)=>getRootExtremes(bvh,i))}function estimateMemoryInBytes(obj){const traversed=new Set;const stack=[obj];let bytes=0;while(stack.length){const curr=stack.pop();if(traversed.has(curr)){continue}traversed.add(curr);for(let key in curr){if(!curr.hasOwnProperty(key)){continue}bytes+=getPrimitiveSize(key);const value=curr[key];if(value&&(typeof value==="object"||typeof value==="function")){if(isTypedArray(value)){bytes+=value.byteLength}else if(isSharedArrayBufferSupported()&&value instanceof SharedArrayBuffer){bytes+=value.byteLength}else if(value instanceof ArrayBuffer){bytes+=value.byteLength}else{stack.push(value)}}else{bytes+=getPrimitiveSize(value)}}}return bytes}function validateBounds(bvh){const geometry=bvh.geometry;const depthStack=[];const index=geometry.index;const position=geometry.getAttribute("position");let passes=true;bvh.traverse((depth,isLeaf,boundingData,offset,count)=>{const info={depth,isLeaf,boundingData,offset,count};depthStack[depth]=info;arrayToBox(0,boundingData,_box1);const parent=depthStack[depth-1];if(isLeaf){for(let i=offset,l=offset+count;i{const info={bounds:arrayToBox(0,boundingData,new three.Box3)};if(isLeaf){info.count=count;info.offset=offset}else{info.left=null;info.right=null}depthStack[depth]=info;const parent=depthStack[depth-1];if(parent){if(parent.left===null){parent.left=info}else{parent.right=info}}});return depthStack[0]}function convertRaycastIntersect(hit,object,raycaster){if(hit===null){return null}hit.point.applyMatrix4(object.matrixWorld);hit.distance=hit.point.distanceTo(raycaster.ray.origin);hit.object=object;if(hit.distanceraycaster.far){return null}else{return hit}}const ray=new three.Ray;const tmpInverseMatrix=new three.Matrix4;const origMeshRaycastFunc=three.Mesh.prototype.raycast;function acceleratedRaycast(raycaster,intersects){if(this.geometry.boundsTree){if(this.material===undefined)return;tmpInverseMatrix.copy(this.matrixWorld).invert();ray.copy(raycaster.ray).applyMatrix4(tmpInverseMatrix);const bvh=this.geometry.boundsTree;if(raycaster.firstHitOnly===true){const hit=convertRaycastIntersect(bvh.raycastFirst(ray,this.material),this,raycaster);if(hit){intersects.push(hit)}}else{const hits=bvh.raycast(ray,this.material);for(let i=0,l=hits.length;i=2){dataArray[ii+1]=attr.getY(i)/normalizeValue}if(itemSize>=3){dataArray[ii+2]=attr.getZ(i)/normalizeValue;if(finalStride===4){dataArray[ii+3]=1}}if(itemSize>=4){dataArray[ii+3]=attr.getW(i)/normalizeValue}}attr.normalized=originalNormalized;this.internalFormat=internalFormat;this.format=format;this.type=type;this.image.width=dimension;this.image.height=dimension;this.image.data=dataArray;this.needsUpdate=true;this.dispose();attr.itemSize=originalItemSize;attr.count=originalCount}}class UIntVertexAttributeTexture extends VertexAttributeTexture{constructor(){super();this._forcedType=three.UnsignedIntType}}class IntVertexAttributeTexture extends VertexAttributeTexture{constructor(){super();this._forcedType=three.IntType}}class FloatVertexAttributeTexture extends VertexAttributeTexture{constructor(){super();this._forcedType=three.FloatType}}class MeshBVHUniformStruct{constructor(){this.index=new UIntVertexAttributeTexture;this.position=new FloatVertexAttributeTexture;this.bvhBounds=new three.DataTexture;this.bvhContents=new three.DataTexture;this._cachedIndexAttr=null;this.index.overrideItemSize=3}updateFrom(bvh){const{geometry}=bvh;bvhToTextures(bvh,this.bvhBounds,this.bvhContents);this.position.updateFrom(geometry.attributes.position);if(bvh.indirect){const indirectBuffer=bvh._indirectBuffer;if(this._cachedIndexAttr===null||this._cachedIndexAttr.count!==indirectBuffer.length){if(geometry.index){this._cachedIndexAttr=geometry.index.clone()}else{const array=getIndexArray(getVertexCount(geometry));this._cachedIndexAttr=new three.BufferAttribute(array,1,false)}}dereferenceIndex(geometry,indirectBuffer,this._cachedIndexAttr);this.index.updateFrom(this._cachedIndexAttr)}else{this.index.updateFrom(geometry.index)}}dispose(){const{index,position,bvhBounds,bvhContents}=this;if(index)index.dispose();if(position)position.dispose();if(bvhBounds)bvhBounds.dispose();if(bvhContents)bvhContents.dispose()}}function dereferenceIndex(geometry,indirectBuffer,target){const unpacked=target.array;const indexArray=geometry.index?geometry.index.array:null;for(let i=0,l=indirectBuffer.length;i=2)target.setY(io,attr.getY(i));if(itemSize>=3)target.setZ(io,attr.getZ(i));if(itemSize>=4)target.setW(io,attr.getW(i))}}else{const array=target.array;const cons=array.constructor;const byteOffset=array.BYTES_PER_ELEMENT*attr.itemSize*targetOffset;const temp=new cons(array.buffer,byteOffset,attr.array.length);temp.set(attr.array)}}function addScaledMatrix(target,matrix,scale){const targetArray=target.elements;const matrixArray=matrix.elements;for(let i=0,l=matrixArray.length;i{object.traverseVisible(c=>{if(c.isMesh){finalMeshes.push(c)}})});this.meshes=finalMeshes;this.useGroups=true;this.applyWorldTransforms=true;this.attributes=["position","normal","color","tangent","uv","uv2"];this._intermediateGeometry=new Array(finalMeshes.length).fill().map(()=>new three.BufferGeometry);this._diffMap=new WeakMap}getMaterials(){const materials=[];this.meshes.forEach(mesh=>{if(Array.isArray(mesh.material)){materials.push(...mesh.material)}else{materials.push(mesh.material)}});return materials}generate(targetGeometry=new three.BufferGeometry){let skipAttributes=[];const{meshes,useGroups,_intermediateGeometry,_diffMap}=this;for(let i=0,l=meshes.length;i - 1 && ptr < BVH_STACK_DEPTH ) { uint currNodeIndex = stack[ ptr ]; ptr --; // check if we intersect the current bounds float boundsHitDistance = distanceSqToBVHNodeBoundsPoint( point, bvh_bvhBounds, currNodeIndex ); if ( boundsHitDistance > closestDistanceSquared ) { continue; } uvec2 boundsInfo = uTexelFetch1D( bvh_bvhContents, currNodeIndex ).xy; bool isLeaf = bool( boundsInfo.x & 0xffff0000u ); if ( isLeaf ) { uint count = boundsInfo.x & 0x0000ffffu; uint offset = boundsInfo.y; closestDistanceSquared = distanceToTriangles( bvh_position, bvh_index, offset, count, point, closestDistanceSquared, // outputs faceIndices, faceNormal, barycoord, side, outPoint ); } else { uint leftIndex = currNodeIndex + 1u; uint splitAxis = boundsInfo.x & 0x0000ffffu; uint rightIndex = boundsInfo.y; bool leftToRight = distanceSqToBVHNodeBoundsPoint( point, bvh_bvhBounds, leftIndex ) < distanceSqToBVHNodeBoundsPoint( point, bvh_bvhBounds, rightIndex );//rayDirection[ splitAxis ] >= 0.0; uint c1 = leftToRight ? leftIndex : rightIndex; uint c2 = leftToRight ? rightIndex : leftIndex; // set c2 in the stack so we traverse it later. We need to keep track of a pointer in // the stack while we traverse. The second pointer added is the one that will be // traversed first ptr ++; stack[ ptr ] = c2; ptr ++; stack[ ptr ] = c1; } } return sqrt( closestDistanceSquared ); } `;const bvh_ray_functions=` #ifndef TRI_INTERSECT_EPSILON #define TRI_INTERSECT_EPSILON 1e-5 #endif // Raycasting bool intersectsBounds( vec3 rayOrigin, vec3 rayDirection, vec3 boundsMin, vec3 boundsMax, out float dist ) { // https://www.reddit.com/r/opengl/comments/8ntzz5/fast_glsl_ray_box_intersection/ // https://tavianator.com/2011/ray_box.html vec3 invDir = 1.0 / rayDirection; // find intersection distances for each plane vec3 tMinPlane = invDir * ( boundsMin - rayOrigin ); vec3 tMaxPlane = invDir * ( boundsMax - rayOrigin ); // get the min and max distances from each intersection vec3 tMinHit = min( tMaxPlane, tMinPlane ); vec3 tMaxHit = max( tMaxPlane, tMinPlane ); // get the furthest hit distance vec2 t = max( tMinHit.xx, tMinHit.yz ); float t0 = max( t.x, t.y ); // get the minimum hit distance t = min( tMaxHit.xx, tMaxHit.yz ); float t1 = min( t.x, t.y ); // set distance to 0.0 if the ray starts inside the box dist = max( t0, 0.0 ); return t1 >= dist; } bool intersectsTriangle( vec3 rayOrigin, vec3 rayDirection, vec3 a, vec3 b, vec3 c, out vec3 barycoord, out vec3 norm, out float dist, out float side ) { // https://stackoverflow.com/questions/42740765/intersection-between-line-and-triangle-in-3d vec3 edge1 = b - a; vec3 edge2 = c - a; norm = cross( edge1, edge2 ); float det = - dot( rayDirection, norm ); float invdet = 1.0 / det; vec3 AO = rayOrigin - a; vec3 DAO = cross( AO, rayDirection ); vec4 uvt; uvt.x = dot( edge2, DAO ) * invdet; uvt.y = - dot( edge1, DAO ) * invdet; uvt.z = dot( AO, norm ) * invdet; uvt.w = 1.0 - uvt.x - uvt.y; // set the hit information barycoord = uvt.wxy; // arranged in A, B, C order dist = uvt.z; side = sign( det ); norm = side * normalize( norm ); // add an epsilon to avoid misses between triangles uvt += vec4( TRI_INTERSECT_EPSILON ); return all( greaterThanEqual( uvt, vec4( 0.0 ) ) ); } bool intersectTriangles( // geometry info and triangle range sampler2D positionAttr, usampler2D indexAttr, uint offset, uint count, // ray vec3 rayOrigin, vec3 rayDirection, // outputs inout float minDistance, inout uvec4 faceIndices, inout vec3 faceNormal, inout vec3 barycoord, inout float side, inout float dist ) { bool found = false; vec3 localBarycoord, localNormal; float localDist, localSide; for ( uint i = offset, l = offset + count; i < l; i ++ ) { uvec3 indices = uTexelFetch1D( indexAttr, i ).xyz; vec3 a = texelFetch1D( positionAttr, indices.x ).rgb; vec3 b = texelFetch1D( positionAttr, indices.y ).rgb; vec3 c = texelFetch1D( positionAttr, indices.z ).rgb; if ( intersectsTriangle( rayOrigin, rayDirection, a, b, c, localBarycoord, localNormal, localDist, localSide ) && localDist < minDistance ) { found = true; minDistance = localDist; faceIndices = uvec4( indices.xyz, i ); faceNormal = localNormal; side = localSide; barycoord = localBarycoord; dist = localDist; } } return found; } bool intersectsBVHNodeBounds( vec3 rayOrigin, vec3 rayDirection, sampler2D bvhBounds, uint currNodeIndex, out float dist ) { uint cni2 = currNodeIndex * 2u; vec3 boundsMin = texelFetch1D( bvhBounds, cni2 ).xyz; vec3 boundsMax = texelFetch1D( bvhBounds, cni2 + 1u ).xyz; return intersectsBounds( rayOrigin, rayDirection, boundsMin, boundsMax, dist ); } // use a macro to hide the fact that we need to expand the struct into separate fields #define\ bvhIntersectFirstHit(\ bvh,\ rayOrigin, rayDirection, faceIndices, faceNormal, barycoord, side, dist\ )\ _bvhIntersectFirstHit(\ bvh.position, bvh.index, bvh.bvhBounds, bvh.bvhContents,\ rayOrigin, rayDirection, faceIndices, faceNormal, barycoord, side, dist\ ) bool _bvhIntersectFirstHit( // bvh info sampler2D bvh_position, usampler2D bvh_index, sampler2D bvh_bvhBounds, usampler2D bvh_bvhContents, // ray vec3 rayOrigin, vec3 rayDirection, // output variables split into separate variables due to output precision inout uvec4 faceIndices, inout vec3 faceNormal, inout vec3 barycoord, inout float side, inout float dist ) { // stack needs to be twice as long as the deepest tree we expect because // we push both the left and right child onto the stack every traversal int ptr = 0; uint stack[ BVH_STACK_DEPTH ]; stack[ 0 ] = 0u; float triangleDistance = INFINITY; bool found = false; while ( ptr > - 1 && ptr < BVH_STACK_DEPTH ) { uint currNodeIndex = stack[ ptr ]; ptr --; // check if we intersect the current bounds float boundsHitDistance; if ( ! intersectsBVHNodeBounds( rayOrigin, rayDirection, bvh_bvhBounds, currNodeIndex, boundsHitDistance ) || boundsHitDistance > triangleDistance ) { continue; } uvec2 boundsInfo = uTexelFetch1D( bvh_bvhContents, currNodeIndex ).xy; bool isLeaf = bool( boundsInfo.x & 0xffff0000u ); if ( isLeaf ) { uint count = boundsInfo.x & 0x0000ffffu; uint offset = boundsInfo.y; found = intersectTriangles( bvh_position, bvh_index, offset, count, rayOrigin, rayDirection, triangleDistance, faceIndices, faceNormal, barycoord, side, dist ) || found; } else { uint leftIndex = currNodeIndex + 1u; uint splitAxis = boundsInfo.x & 0x0000ffffu; uint rightIndex = boundsInfo.y; bool leftToRight = rayDirection[ splitAxis ] >= 0.0; uint c1 = leftToRight ? leftIndex : rightIndex; uint c2 = leftToRight ? rightIndex : leftIndex; // set c2 in the stack so we traverse it later. We need to keep track of a pointer in // the stack while we traverse. The second pointer added is the one that will be // traversed first ptr ++; stack[ ptr ] = c2; ptr ++; stack[ ptr ] = c1; } } return found; } `;const bvh_struct_definitions=` struct BVH { usampler2D index; sampler2D position; sampler2D bvhBounds; usampler2D bvhContents; }; `;var BVHShaderGLSL=Object.freeze({__proto__:null,bvh_distance_functions:bvh_distance_functions,bvh_ray_functions:bvh_ray_functions,bvh_struct_definitions:bvh_struct_definitions,common_functions:common_functions});const shaderStructs=bvh_struct_definitions;const shaderDistanceFunction=bvh_distance_functions;const shaderIntersectFunction=` ${common_functions} ${bvh_ray_functions} `;exports.AVERAGE=AVERAGE;exports.BVHShaderGLSL=BVHShaderGLSL;exports.CENTER=CENTER;exports.CONTAINED=CONTAINED;exports.ExtendedTriangle=ExtendedTriangle;exports.FloatVertexAttributeTexture=FloatVertexAttributeTexture;exports.INTERSECTED=INTERSECTED;exports.IntVertexAttributeTexture=IntVertexAttributeTexture;exports.MeshBVH=MeshBVH;exports.MeshBVHHelper=MeshBVHHelper;exports.MeshBVHUniformStruct=MeshBVHUniformStruct;exports.NOT_INTERSECTED=NOT_INTERSECTED;exports.OrientedBox=OrientedBox;exports.SAH=SAH;exports.StaticGeometryGenerator=StaticGeometryGenerator;exports.UIntVertexAttributeTexture=UIntVertexAttributeTexture;exports.VertexAttributeTexture=VertexAttributeTexture;exports.acceleratedRaycast=acceleratedRaycast;exports.computeBoundsTree=computeBoundsTree;exports.disposeBoundsTree=disposeBoundsTree;exports.estimateMemoryInBytes=estimateMemoryInBytes;exports.getBVHExtremes=getBVHExtremes;exports.getJSONStructure=getJSONStructure;exports.getTriangleHitPointInfo=getTriangleHitPointInfo;exports.shaderDistanceFunction=shaderDistanceFunction;exports.shaderIntersectFunction=shaderIntersectFunction;exports.shaderStructs=shaderStructs;exports.validateBounds=validateBounds;Object.defineProperty(exports,"__esModule",{value:true});three.BufferGeometry.prototype.computeBoundsTree=computeBoundsTree;three.BufferGeometry.prototype.disposeBoundsTree=disposeBoundsTree;three.Mesh.prototype.raycast=acceleratedRaycast});THREE.MeshoptDecoder=function(){"use strict";var wasm_base="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb";var wasm_simd="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb";var detector=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]);var wasmpack=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!=="object"){return{supported:false}}var wasm=WebAssembly.validate(detector)?wasm_simd:wasm_base;var instance;var ready=WebAssembly.instantiate(unpack(wasm),{}).then(function(result){instance=result.instance;instance.exports.__wasm_call_ctors()});function unpack(data){var result=new Uint8Array(data.length);for(var i=0;i96?ch-97:ch>64?ch-39:ch+4}var write=0;for(var i=0;i0){return decodeWorker(count,size,source,decoders[mode],filters[filter])}return ready.then(function(){var target=new Uint8Array(count*size);decode(instance.exports[decoders[mode]],target,count,size,source,instance.exports[filters[filter]]);return target})}}}();(function(t,e){e(t.THREE=t.THREE||{})})(this,function(THREE){var Color=THREE.Color,Vector3=THREE.Vector3;class Face3{constructor(a,b,c,normal,color,materialIndex=0){this.a=a;this.b=b;this.c=c;this.normal=normal&&normal.isVector3?normal:new Vector3;this.vertexNormals=Array.isArray(normal)?normal:[];this.color=color&&color.isColor?color:new Color;this.vertexColors=Array.isArray(color)?color:[];this.materialIndex=materialIndex}clone(){return new this.constructor().copy(this)}copy(source){this.a=source.a;this.b=source.b;this.c=source.c;this.normal.copy(source.normal);this.color.copy(source.color);this.materialIndex=source.materialIndex;for(let i=0,il=source.vertexNormals.length;i0){for(let i=0;i0){this.normalsNeedUpdate=true}}computeFlatVertexNormals(){this.computeFaceNormals();for(let f=0,fl=this.faces.length;f0){this.normalsNeedUpdate=true}}computeMorphNormals(){for(let f=0,fl=this.faces.length;f=0;i--){const idx=faceIndicesToRemove[i];this.faces.splice(idx,1);for(let j=0,jl=this.faceVertexUvs.length;j0;const hasFaceVertexNormal=face.vertexNormals.length>0;const hasFaceColor=face.color.r!==1||face.color.g!==1||face.color.b!==1;const hasFaceVertexColor=face.vertexColors.length>0;let faceType=0;faceType=setBit(faceType,0,0);faceType=setBit(faceType,1,hasMaterial);faceType=setBit(faceType,2,hasFaceUv);faceType=setBit(faceType,3,hasFaceVertexUv);faceType=setBit(faceType,4,hasFaceNormal);faceType=setBit(faceType,5,hasFaceVertexNormal);faceType=setBit(faceType,6,hasFaceColor);faceType=setBit(faceType,7,hasFaceVertexColor);faces.push(faceType);faces.push(face.a,face.b,face.c);faces.push(face.materialIndex);if(hasFaceVertexUv){const faceVertexUvs=this.faceVertexUvs[0][i];faces.push(getUvIndex(faceVertexUvs[0]),getUvIndex(faceVertexUvs[1]),getUvIndex(faceVertexUvs[2]))}if(hasFaceNormal){faces.push(getNormalIndex(face.normal))}if(hasFaceVertexNormal){const vertexNormals=face.vertexNormals;faces.push(getNormalIndex(vertexNormals[0]),getNormalIndex(vertexNormals[1]),getNormalIndex(vertexNormals[2]))}if(hasFaceColor){faces.push(getColorIndex(face.color))}if(hasFaceVertexColor){const vertexColors=face.vertexColors;faces.push(getColorIndex(vertexColors[0]),getColorIndex(vertexColors[1]),getColorIndex(vertexColors[2]))}}function setBit(value,position,enabled){return enabled?value|1<0)data.data.colors=colors;if(uvs.length>0)data.data.uvs=[uvs];data.data.faces=faces;return data}clone(){return new Geometry().copy(this)}copy(source){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=source.name;const vertices=source.vertices;for(let i=0,il=vertices.length;i0){const normals=new Float32Array(geometry.normals.length*3);buffergeometry.setAttribute("normal",copyVector3sArray(new BufferAttribute(normals,3),geometry.normals))}if(geometry.colors.length>0){const colors=new Float32Array(geometry.colors.length*3);buffergeometry.setAttribute("color",copyColorsArray(new BufferAttribute(colors,3),geometry.colors))}if(geometry.uvs.length>0){const uvs=new Float32Array(geometry.uvs.length*2);buffergeometry.setAttribute("uv",copyVector2sArray(new BufferAttribute(uvs,2),geometry.uvs))}if(geometry.uvs2.length>0){const uvs2=new Float32Array(geometry.uvs2.length*2);buffergeometry.setAttribute("uv2",copyVector2sArray(new BufferAttribute(uvs2,2),geometry.uvs2))}buffergeometry.groups=geometry.groups;for(const name in geometry.morphTargets){const array=[];const morphTargets=geometry.morphTargets[name];for(let i=0,l=morphTargets.length;i0){const skinIndices=new Float32BufferAttribute(geometry.skinIndices.length*4,4);buffergeometry.setAttribute("skinIndex",copyVector4sArray(skinIndices,geometry.skinIndices))}if(geometry.skinWeights.length>0){const skinWeights=new Float32BufferAttribute(geometry.skinWeights.length*4,4);buffergeometry.setAttribute("skinWeight",copyVector4sArray(skinWeights,geometry.skinWeights))}if(geometry.boundingSphere!==null){buffergeometry.boundingSphere=geometry.boundingSphere.clone()}if(geometry.boundingBox!==null){buffergeometry.boundingBox=geometry.boundingBox.clone()}return buffergeometry}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(matrix){console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4().");return this.applyMatrix4(matrix)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(object){let buffergeometry=new BufferGeometry;const geometry=object.geometry;if(object.isPoints||object.isLine){const positions=new Float32BufferAttribute(geometry.vertices.length*3,3);const colors=new Float32BufferAttribute(geometry.colors.length*3,3);buffergeometry.setAttribute("position",copyVector3sArray(positions,geometry.vertices));buffergeometry.setAttribute("color",copyColorsArray(colors,geometry.colors));if(geometry.lineDistances&&geometry.lineDistances.length===geometry.vertices.length){const lineDistances=new Float32BufferAttribute(geometry.lineDistances.length,1);buffergeometry.setAttribute("lineDistance",lineDistances.copyArray(geometry.lineDistances))}if(geometry.boundingSphere!==null){buffergeometry.boundingSphere=geometry.boundingSphere.clone()}if(geometry.boundingBox!==null){buffergeometry.boundingBox=geometry.boundingBox.clone()}}else if(object.isMesh){buffergeometry=geometry.toBufferGeometry()}return buffergeometry}}Geometry.prototype.isGeometry=true;class DirectGeometry{constructor(){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=false;this.normalsNeedUpdate=false;this.colorsNeedUpdate=false;this.uvsNeedUpdate=false;this.groupsNeedUpdate=false}computeGroups(geometry){const groups=[];let group,i;let materialIndex=undefined;const faces=geometry.faces;for(i=0;i0;const hasFaceVertexUv2=faceVertexUvs[1]&&faceVertexUvs[1].length>0;const morphTargets=geometry.morphTargets;const morphTargetsLength=morphTargets.length;let morphTargetsPosition;if(morphTargetsLength>0){morphTargetsPosition=[];for(let i=0;i0){morphTargetsNormal=[];for(let i=0;i0&&faces.length===0){console.error("THREE.DirectGeometry: Faceless geometries are not supported.")}for(let i=0;i2){dstArray[j++]=attribute.getZ(i)}}return dstArray}if(attribute.array instanceof Float32Array){return attribute.array}return new Float32Array(attribute.array)}const _geometry=geometry.index?geometry.toNonIndexed():geometry;const tangents=MikkTSpace.generateTangents(getAttributeArray(_geometry.attributes.position),getAttributeArray(_geometry.attributes.normal),getAttributeArray(_geometry.attributes.uv));if(negateSign){for(let i=3;i=2){newAttribute.setY(i,attribute.getY(i))}if(itemSize>=3){newAttribute.setZ(i,attribute.getZ(i))}if(itemSize>=4){newAttribute.setW(i,attribute.getW(i))}}return newAttribute}function deinterleaveGeometry(geometry){const attributes=geometry.attributes;const morphTargets=geometry.morphTargets;const attrMap=new Map;for(const key in attributes){const attr=attributes[key];if(attr.isInterleavedBufferAttribute){if(!attrMap.has(attr)){attrMap.set(attr,deinterleaveAttribute(attr))}attributes[key]=attrMap.get(attr)}}for(const key in morphTargets){const attr=morphTargets[key];if(attr.isInterleavedBufferAttribute){if(!attrMap.has(attr)){attrMap.set(attr,deinterleaveAttribute(attr))}morphTargets[key]=attrMap.get(attr)}}}function estimateBytesUsed(geometry){let mem=0;for(const name in geometry.attributes){const attr=geometry.getAttribute(name);mem+=attr.count*attr.itemSize*attr.array.BYTES_PER_ELEMENT}const indices=geometry.getIndex();mem+=indices?indices.count*indices.itemSize*indices.array.BYTES_PER_ELEMENT:0;return mem}function mergeVertices(geometry,tolerance=1e-4){tolerance=Math.max(tolerance,Number.EPSILON);const hashToIndex={};const indices=geometry.getIndex();const positions=geometry.getAttribute("position");const vertexCount=indices?indices.count:positions.count;let nextIndex=0;const attributeNames=Object.keys(geometry.attributes);const tmpAttributes={};const tmpMorphAttributes={};const newIndices=[];const getters=["getX","getY","getZ","getW"];const setters=["setX","setY","setZ","setW"];for(let i=0,l=attributeNames.length;i{if(a.materialIndex!==b.materialIndex)return a.materialIndex-b.materialIndex;return a.start-b.start});if(geometry.getIndex()===null){const positionAttribute=geometry.getAttribute("position");const indices=[];for(let i=0;icreaseDot){tempNorm2.add(otherNorm)}}tempNorm2.normalize();normAttr.setXYZ(i3+n,tempNorm2.x,tempNorm2.y,tempNorm2.z)}}resultGeometry.setAttribute("normal",normAttr);return resultGeometry}function mergeBufferGeometries(geometries,useGroups=false){console.warn("THREE.BufferGeometryUtils: mergeBufferGeometries() has been renamed to mergeGeometries().");return mergeGeometries(geometries,useGroups)}function mergeBufferAttributes(attributes){console.warn("THREE.BufferGeometryUtils: mergeBufferAttributes() has been renamed to mergeAttributes().");return mergeAttributes(attributes)}var BufferGeometryUtils={computeMikkTSpaceTangents,deepCloneAttribute,deinterleaveAttribute,deinterleaveGeometry,mergeGeometries,mergeBufferGeometries,mergeAttributes,mergeBufferAttributes,interleaveAttributes,estimateBytesUsed,mergeVertices,toTrianglesDrawMode,computeMorphedAttributes,mergeGroups,toCreasedNormals};THREE.BufferGeometryUtils=BufferGeometryUtils})();(function(){class WorkerPool{constructor(pool=4){this.pool=pool;this.queue=[];this.workers=[];this.workersResolve=[];this.workerStatus=0}_initWorker(workerId){if(!this.workers[workerId]){const worker=this.workerCreator();worker.addEventListener("message",this._onMessage.bind(this,workerId));this.workers[workerId]=worker}}_getIdleWorker(){for(let i=0;i{const workerId=this._getIdleWorker();if(workerId!==-1){this._initWorker(workerId);this.workerStatus|=1<worker.terminate());this.workersResolve.length=0;this.workers.length=0;this.queue.length=0;this.workerStatus=0}}THREE.WorkerPool=WorkerPool})();(function(){const t=0,e=1,n=2,i=3,s=0,a=0,r=2,o=0,l=1,f=160,U=161,c=162,h=163,_=0,p=1,g=0,y=1,x=2,u=3,b=4,d=5,m=6,w=7,D=8,B=9,L=10,A=11,k=12,v=13,S=14,I=15,O=16,T=17,V=18,E=0,F=1,P=2,C=3,z=4,M=5,W=6,N=7,H=8,K=9,X=10,j=11,R=0,Y=1,q=2,G=13,J=14,Q=15,Z=128,$=64,tt=32,et=16,nt=0,it=1,st=2,at=3,rt=4,ot=5,lt=6,ft=7,Ut=8,ct=9,ht=10,_t=13,pt=14,gt=15,yt=16,xt=17,ut=20,bt=21,dt=22,mt=23,wt=24,Dt=27,Bt=28,Lt=29,At=30,kt=31,vt=34,St=35,It=36,Ot=37,Tt=38,Vt=41,Et=42,Ft=43,Pt=44,Ct=45,zt=48,Mt=49,Wt=50,Nt=58,Ht=59,Kt=62,Xt=63,jt=64,Rt=65,Yt=68,qt=69,Gt=70,Jt=71,Qt=74,Zt=75,$t=76,te=77,ee=78,ne=81,ie=82,se=83,ae=84,re=85,oe=88,le=89,fe=90,Ue=91,ce=92,he=95,_e=96,pe=97,ge=98,ye=99,xe=100,ue=101,be=102,de=103,me=104,we=105,De=106,Be=107,Le=108,Ae=109,ke=110,ve=111,Se=112,Ie=113,Oe=114,Te=115,Ve=116,Ee=117,Fe=118,Pe=119,Ce=120,ze=121,Me=122,We=123,Ne=124,He=125,Ke=126,Xe=127,je=128,Re=129,Ye=130,qe=131,Ge=132,Je=133,Qe=134,Ze=135,$e=136,tn=137,en=138,nn=139,sn=140,an=141,rn=142,on=143,ln=144,fn=145,Un=146,cn=147,hn=148,_n=149,pn=150,gn=151,yn=152,xn=153,un=154,bn=155,dn=156,mn=157,wn=158,Dn=159,Bn=160,Ln=161,An=162,kn=163,vn=164,Sn=165,In=166,On=167,Tn=168,Vn=169,En=170,Fn=171,Pn=172,Cn=173,zn=174,Mn=175,Wn=176,Nn=177,Hn=178,Kn=179,Xn=180,jn=181,Rn=182,Yn=183,qn=184,Gn=1000156007,Jn=1000156008,Qn=1000156009,Zn=1000156010,$n=1000156011,ti=1000156017,ei=1000156018,ni=1000156019,ii=1000156020,si=1000156021,ai=1000054e3,ri=1000054001,oi=1000054002,li=1000054003,fi=1000054004,Ui=1000054005,ci=1000054006,hi=1000054007,_i=1000066e3,pi=1000066001,gi=1000066002,yi=1000066003,xi=1000066004,ui=1000066005,bi=1000066006,di=1000066007,mi=1000066008,wi=1000066009,Di=1000066010,Bi=1000066011,Li=1000066012,Ai=1000066013,ki=100034e4,vi=1000340001;class Si{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}}class Ii{constructor(t,e,n,i){this._dataView=new DataView(t.buffer,t.byteOffset+e,n),this._littleEndian=i,this._offset=0}_nextUint8(){const t=this._dataView.getUint8(this._offset);return this._offset+=1,t}_nextUint16(){const t=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,t}_nextUint32(){const t=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,t}_nextUint64(){const t=this._dataView.getUint32(this._offset,this._littleEndian)+2**32*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,t}_nextInt32(){const t=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,t}_skip(t){return this._offset+=t,this}_scan(t,e=0){const n=this._offset;let i=0;for(;this._dataView.getUint8(this._offset)!==e&&i0?c+a.byteLength:0;h%8&&(h+=8-h%8);const _=[],p=new DataView(new ArrayBuffer(3*t.levels.length*8));let g=(h||c+a.byteLength)+n.byteLength;for(let e=0;e0?h:0),!0),x.setBigUint64(60,BigInt(n.byteLength),!0),new Uint8Array(Fi([new Uint8Array(Ti).buffer,y,p.buffer,o,a,h>0?new ArrayBuffer(h-(c+a.byteLength)):new ArrayBuffer(0),n,..._]))}var KTXParse=THREE.KTXParse={};KTXParse.KHR_DF_CHANNEL_RGBSDA_ALPHA=Q,KTXParse.KHR_DF_CHANNEL_RGBSDA_BLUE=q,KTXParse.KHR_DF_CHANNEL_RGBSDA_DEPTH=J,KTXParse.KHR_DF_CHANNEL_RGBSDA_GREEN=Y,KTXParse.KHR_DF_CHANNEL_RGBSDA_RED=R,KTXParse.KHR_DF_CHANNEL_RGBSDA_STENCIL=G,KTXParse.KHR_DF_FLAG_ALPHA_PREMULTIPLIED=p,KTXParse.KHR_DF_FLAG_ALPHA_STRAIGHT=_,KTXParse.KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT=s,KTXParse.KHR_DF_MODEL_ASTC=c,KTXParse.KHR_DF_MODEL_ETC1=f,KTXParse.KHR_DF_MODEL_ETC1S=h,KTXParse.KHR_DF_MODEL_ETC2=U,KTXParse.KHR_DF_MODEL_RGBSDA=l,KTXParse.KHR_DF_MODEL_UNSPECIFIED=o,KTXParse.KHR_DF_PRIMARIES_ACES=W,KTXParse.KHR_DF_PRIMARIES_ACESCC=N,KTXParse.KHR_DF_PRIMARIES_ADOBERGB=j,KTXParse.KHR_DF_PRIMARIES_BT2020=z,KTXParse.KHR_DF_PRIMARIES_BT601_EBU=P,KTXParse.KHR_DF_PRIMARIES_BT601_SMPTE=C,KTXParse.KHR_DF_PRIMARIES_BT709=F,KTXParse.KHR_DF_PRIMARIES_CIEXYZ=M,KTXParse.KHR_DF_PRIMARIES_DISPLAYP3=X,KTXParse.KHR_DF_PRIMARIES_NTSC1953=H,KTXParse.KHR_DF_PRIMARIES_PAL525=K,KTXParse.KHR_DF_PRIMARIES_UNSPECIFIED=E,KTXParse.KHR_DF_SAMPLE_DATATYPE_EXPONENT=tt,KTXParse.KHR_DF_SAMPLE_DATATYPE_FLOAT=Z,KTXParse.KHR_DF_SAMPLE_DATATYPE_LINEAR=et,KTXParse.KHR_DF_SAMPLE_DATATYPE_SIGNED=$,KTXParse.KHR_DF_TRANSFER_ACESCC=O,KTXParse.KHR_DF_TRANSFER_ACESCCT=T,KTXParse.KHR_DF_TRANSFER_ADOBERGB=V,KTXParse.KHR_DF_TRANSFER_BT1886=w,KTXParse.KHR_DF_TRANSFER_DCIP3=k,KTXParse.KHR_DF_TRANSFER_HLG_EOTF=B,KTXParse.KHR_DF_TRANSFER_HLG_OETF=D,KTXParse.KHR_DF_TRANSFER_ITU=u,KTXParse.KHR_DF_TRANSFER_LINEAR=y,KTXParse.KHR_DF_TRANSFER_NTSC=b,KTXParse.KHR_DF_TRANSFER_PAL625_EOTF=S,KTXParse.KHR_DF_TRANSFER_PAL_OETF=v,KTXParse.KHR_DF_TRANSFER_PQ_EOTF=L,KTXParse.KHR_DF_TRANSFER_PQ_OETF=A,KTXParse.KHR_DF_TRANSFER_SLOG=d,KTXParse.KHR_DF_TRANSFER_SLOG2=m,KTXParse.KHR_DF_TRANSFER_SRGB=x,KTXParse.KHR_DF_TRANSFER_ST240=I,KTXParse.KHR_DF_TRANSFER_UNSPECIFIED=g,KTXParse.KHR_DF_VENDORID_KHRONOS=a,KTXParse.KHR_DF_VERSION=r,KTXParse.KHR_SUPERCOMPRESSION_BASISLZ=e,KTXParse.KHR_SUPERCOMPRESSION_NONE=t,KTXParse.KHR_SUPERCOMPRESSION_ZLIB=i,KTXParse.KHR_SUPERCOMPRESSION_ZSTD=n,KTXParse.KTX2Container=Si,KTXParse.VK_FORMAT_A1R5G5B5_UNORM_PACK16=Ut,KTXParse.VK_FORMAT_A2B10G10R10_SINT_PACK32=qt,KTXParse.VK_FORMAT_A2B10G10R10_SNORM_PACK32=Rt,KTXParse.VK_FORMAT_A2B10G10R10_UINT_PACK32=Yt,KTXParse.VK_FORMAT_A2B10G10R10_UNORM_PACK32=jt,KTXParse.VK_FORMAT_A2R10G10B10_SINT_PACK32=Xt,KTXParse.VK_FORMAT_A2R10G10B10_SNORM_PACK32=Ht,KTXParse.VK_FORMAT_A2R10G10B10_UINT_PACK32=Kt,KTXParse.VK_FORMAT_A2R10G10B10_UNORM_PACK32=Nt,KTXParse.VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT=vi,KTXParse.VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT=ki,KTXParse.VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT=Bi,KTXParse.VK_FORMAT_ASTC_10x10_SRGB_BLOCK=Xn,KTXParse.VK_FORMAT_ASTC_10x10_UNORM_BLOCK=Kn,KTXParse.VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT=mi,KTXParse.VK_FORMAT_ASTC_10x5_SRGB_BLOCK=zn,KTXParse.VK_FORMAT_ASTC_10x5_UNORM_BLOCK=Cn,KTXParse.VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT=wi,KTXParse.VK_FORMAT_ASTC_10x6_SRGB_BLOCK=Wn,KTXParse.VK_FORMAT_ASTC_10x6_UNORM_BLOCK=Mn,KTXParse.VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT=Di,KTXParse.VK_FORMAT_ASTC_10x8_SRGB_BLOCK=Hn,KTXParse.VK_FORMAT_ASTC_10x8_UNORM_BLOCK=Nn,KTXParse.VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT=Li,KTXParse.VK_FORMAT_ASTC_12x10_SRGB_BLOCK=Rn,KTXParse.VK_FORMAT_ASTC_12x10_UNORM_BLOCK=jn,KTXParse.VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT=Ai,KTXParse.VK_FORMAT_ASTC_12x12_SRGB_BLOCK=qn,KTXParse.VK_FORMAT_ASTC_12x12_UNORM_BLOCK=Yn,KTXParse.VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT=_i,KTXParse.VK_FORMAT_ASTC_4x4_SRGB_BLOCK=wn,KTXParse.VK_FORMAT_ASTC_4x4_UNORM_BLOCK=mn,KTXParse.VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT=pi,KTXParse.VK_FORMAT_ASTC_5x4_SRGB_BLOCK=Bn,KTXParse.VK_FORMAT_ASTC_5x4_UNORM_BLOCK=Dn,KTXParse.VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT=gi,KTXParse.VK_FORMAT_ASTC_5x5_SRGB_BLOCK=An,KTXParse.VK_FORMAT_ASTC_5x5_UNORM_BLOCK=Ln,KTXParse.VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT=yi,KTXParse.VK_FORMAT_ASTC_6x5_SRGB_BLOCK=vn,KTXParse.VK_FORMAT_ASTC_6x5_UNORM_BLOCK=kn,KTXParse.VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT=xi,KTXParse.VK_FORMAT_ASTC_6x6_SRGB_BLOCK=In,KTXParse.VK_FORMAT_ASTC_6x6_UNORM_BLOCK=Sn,KTXParse.VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT=ui,KTXParse.VK_FORMAT_ASTC_8x5_SRGB_BLOCK=Tn,KTXParse.VK_FORMAT_ASTC_8x5_UNORM_BLOCK=On,KTXParse.VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT=bi,KTXParse.VK_FORMAT_ASTC_8x6_SRGB_BLOCK=En,KTXParse.VK_FORMAT_ASTC_8x6_UNORM_BLOCK=Vn,KTXParse.VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT=di,KTXParse.VK_FORMAT_ASTC_8x8_SRGB_BLOCK=Pn,KTXParse.VK_FORMAT_ASTC_8x8_UNORM_BLOCK=Fn,KTXParse.VK_FORMAT_B10G11R11_UFLOAT_PACK32=Me,KTXParse.VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16=$n,KTXParse.VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16=si,KTXParse.VK_FORMAT_B4G4R4A4_UNORM_PACK16=at,KTXParse.VK_FORMAT_B5G5R5A1_UNORM_PACK16=ft,KTXParse.VK_FORMAT_B5G6R5_UNORM_PACK16=ot,KTXParse.VK_FORMAT_B8G8R8A8_SINT=Mt,KTXParse.VK_FORMAT_B8G8R8A8_SNORM=Ct,KTXParse.VK_FORMAT_B8G8R8A8_SRGB=Wt,KTXParse.VK_FORMAT_B8G8R8A8_UINT=zt,KTXParse.VK_FORMAT_B8G8R8A8_UNORM=Pt,KTXParse.VK_FORMAT_B8G8R8_SINT=St,KTXParse.VK_FORMAT_B8G8R8_SNORM=kt,KTXParse.VK_FORMAT_B8G8R8_SRGB=It,KTXParse.VK_FORMAT_B8G8R8_UINT=vt,KTXParse.VK_FORMAT_B8G8R8_UNORM=At,KTXParse.VK_FORMAT_BC1_RGBA_SRGB_BLOCK=Qe,KTXParse.VK_FORMAT_BC1_RGBA_UNORM_BLOCK=Je,KTXParse.VK_FORMAT_BC1_RGB_SRGB_BLOCK=Ge,KTXParse.VK_FORMAT_BC1_RGB_UNORM_BLOCK=qe,KTXParse.VK_FORMAT_BC2_SRGB_BLOCK=$e,KTXParse.VK_FORMAT_BC2_UNORM_BLOCK=Ze,KTXParse.VK_FORMAT_BC3_SRGB_BLOCK=en,KTXParse.VK_FORMAT_BC3_UNORM_BLOCK=tn,KTXParse.VK_FORMAT_BC4_SNORM_BLOCK=sn,KTXParse.VK_FORMAT_BC4_UNORM_BLOCK=nn,KTXParse.VK_FORMAT_BC5_SNORM_BLOCK=rn,KTXParse.VK_FORMAT_BC5_UNORM_BLOCK=an,KTXParse.VK_FORMAT_BC6H_SFLOAT_BLOCK=ln,KTXParse.VK_FORMAT_BC6H_UFLOAT_BLOCK=on,KTXParse.VK_FORMAT_BC7_SRGB_BLOCK=Un,KTXParse.VK_FORMAT_BC7_UNORM_BLOCK=fn,KTXParse.VK_FORMAT_D16_UNORM=Ne,KTXParse.VK_FORMAT_D16_UNORM_S8_UINT=je,KTXParse.VK_FORMAT_D24_UNORM_S8_UINT=Re,KTXParse.VK_FORMAT_D32_SFLOAT=Ke,KTXParse.VK_FORMAT_D32_SFLOAT_S8_UINT=Ye,KTXParse.VK_FORMAT_E5B9G9R9_UFLOAT_PACK32=We,KTXParse.VK_FORMAT_EAC_R11G11_SNORM_BLOCK=dn,KTXParse.VK_FORMAT_EAC_R11G11_UNORM_BLOCK=bn,KTXParse.VK_FORMAT_EAC_R11_SNORM_BLOCK=un,KTXParse.VK_FORMAT_EAC_R11_UNORM_BLOCK=xn,KTXParse.VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK=pn,KTXParse.VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK=_n,KTXParse.VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK=yn,KTXParse.VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK=gn,KTXParse.VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK=hn,KTXParse.VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK=cn,KTXParse.VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16=Zn,KTXParse.VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16=ii,KTXParse.VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG=fi,KTXParse.VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG=ai,KTXParse.VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG=Ui,KTXParse.VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG=ri,KTXParse.VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG=ci,KTXParse.VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG=oi,KTXParse.VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG=hi,KTXParse.VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG=li,KTXParse.VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16=Qn,KTXParse.VK_FORMAT_R10X6G10X6_UNORM_2PACK16=Jn,KTXParse.VK_FORMAT_R10X6_UNORM_PACK16=Gn,KTXParse.VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16=ni,KTXParse.VK_FORMAT_R12X4G12X4_UNORM_2PACK16=ei,KTXParse.VK_FORMAT_R12X4_UNORM_PACK16=ti,KTXParse.VK_FORMAT_R16G16B16A16_SFLOAT=pe,KTXParse.VK_FORMAT_R16G16B16A16_SINT=_e,KTXParse.VK_FORMAT_R16G16B16A16_SNORM=ce,KTXParse.VK_FORMAT_R16G16B16A16_UINT=he,KTXParse.VK_FORMAT_R16G16B16A16_UNORM=Ue,KTXParse.VK_FORMAT_R16G16B16_SFLOAT=fe,KTXParse.VK_FORMAT_R16G16B16_SINT=le,KTXParse.VK_FORMAT_R16G16B16_SNORM=re,KTXParse.VK_FORMAT_R16G16B16_UINT=oe,KTXParse.VK_FORMAT_R16G16B16_UNORM=ae,KTXParse.VK_FORMAT_R16G16_SFLOAT=se,KTXParse.VK_FORMAT_R16G16_SINT=ie,KTXParse.VK_FORMAT_R16G16_SNORM=ee,KTXParse.VK_FORMAT_R16G16_UINT=ne,KTXParse.VK_FORMAT_R16G16_UNORM=te,KTXParse.VK_FORMAT_R16_SFLOAT=$t,KTXParse.VK_FORMAT_R16_SINT=Zt,KTXParse.VK_FORMAT_R16_SNORM=Jt,KTXParse.VK_FORMAT_R16_UINT=Qt,KTXParse.VK_FORMAT_R16_UNORM=Gt,KTXParse.VK_FORMAT_R32G32B32A32_SFLOAT=Ae,KTXParse.VK_FORMAT_R32G32B32A32_SINT=Le,KTXParse.VK_FORMAT_R32G32B32A32_UINT=Be,KTXParse.VK_FORMAT_R32G32B32_SFLOAT=De,KTXParse.VK_FORMAT_R32G32B32_SINT=we,KTXParse.VK_FORMAT_R32G32B32_UINT=me,KTXParse.VK_FORMAT_R32G32_SFLOAT=de,KTXParse.VK_FORMAT_R32G32_SINT=be,KTXParse.VK_FORMAT_R32G32_UINT=ue,KTXParse.VK_FORMAT_R32_SFLOAT=xe,KTXParse.VK_FORMAT_R32_SINT=ye,KTXParse.VK_FORMAT_R32_UINT=ge,KTXParse.VK_FORMAT_R4G4B4A4_UNORM_PACK16=st,KTXParse.VK_FORMAT_R4G4_UNORM_PACK8=it,KTXParse.VK_FORMAT_R5G5B5A1_UNORM_PACK16=lt,KTXParse.VK_FORMAT_R5G6B5_UNORM_PACK16=rt,KTXParse.VK_FORMAT_R64G64B64A64_SFLOAT=ze,KTXParse.VK_FORMAT_R64G64B64A64_SINT=Ce,KTXParse.VK_FORMAT_R64G64B64A64_UINT=Pe,KTXParse.VK_FORMAT_R64G64B64_SFLOAT=Fe,KTXParse.VK_FORMAT_R64G64B64_SINT=Ee,KTXParse.VK_FORMAT_R64G64B64_UINT=Ve,KTXParse.VK_FORMAT_R64G64_SFLOAT=Te,KTXParse.VK_FORMAT_R64G64_SINT=Oe,KTXParse.VK_FORMAT_R64G64_UINT=Ie,KTXParse.VK_FORMAT_R64_SFLOAT=Se,KTXParse.VK_FORMAT_R64_SINT=ve,KTXParse.VK_FORMAT_R64_UINT=ke,KTXParse.VK_FORMAT_R8G8B8A8_SINT=Et,KTXParse.VK_FORMAT_R8G8B8A8_SNORM=Tt,KTXParse.VK_FORMAT_R8G8B8A8_SRGB=Ft,KTXParse.VK_FORMAT_R8G8B8A8_UINT=Vt,KTXParse.VK_FORMAT_R8G8B8A8_UNORM=Ot,KTXParse.VK_FORMAT_R8G8B8_SINT=Bt,KTXParse.VK_FORMAT_R8G8B8_SNORM=wt,KTXParse.VK_FORMAT_R8G8B8_SRGB=Lt,KTXParse.VK_FORMAT_R8G8B8_UINT=Dt,KTXParse.VK_FORMAT_R8G8B8_UNORM=mt,KTXParse.VK_FORMAT_R8G8_SINT=bt,KTXParse.VK_FORMAT_R8G8_SNORM=xt,KTXParse.VK_FORMAT_R8G8_SRGB=dt,KTXParse.VK_FORMAT_R8G8_UINT=ut,KTXParse.VK_FORMAT_R8G8_UNORM=yt,KTXParse.VK_FORMAT_R8_SINT=pt,KTXParse.VK_FORMAT_R8_SNORM=ht,KTXParse.VK_FORMAT_R8_SRGB=gt,KTXParse.VK_FORMAT_R8_UINT=_t,KTXParse.VK_FORMAT_R8_UNORM=ct,KTXParse.VK_FORMAT_S8_UINT=Xe,KTXParse.VK_FORMAT_UNDEFINED=nt,KTXParse.VK_FORMAT_X8_D24_UNORM_PACK32=He,KTXParse.read=Pi,KTXParse.write=Mi})();(function(){var CompressedTexture=THREE.CompressedTexture,Data3DTexture=THREE.Data3DTexture,DataTexture=THREE.DataTexture,FileLoader=THREE.FileLoader,FloatType=THREE.FloatType,HalfFloatType=THREE.HalfFloatType,LinearEncoding=THREE.LinearEncoding,LinearFilter=THREE.LinearFilter,LinearMipmapLinearFilter=THREE.LinearMipmapLinearFilter,Loader=THREE.Loader,RedFormat=THREE.RedFormat,RGB_ETC1_Format=THREE.RGB_ETC1_Format,RGB_ETC2_Format=THREE.RGB_ETC2_Format,RGB_PVRTC_4BPPV1_Format=THREE.RGB_PVRTC_4BPPV1_Format,RGB_S3TC_DXT1_Format=THREE.RGB_S3TC_DXT1_Format,RGBA_ASTC_4x4_Format=THREE.RGBA_ASTC_4x4_Format,RGBA_BPTC_Format=THREE.RGBA_BPTC_Format,RGBA_ETC2_EAC_Format=THREE.RGBA_ETC2_EAC_Format,RGBA_PVRTC_4BPPV1_Format=THREE.RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT5_Format=THREE.RGBA_S3TC_DXT5_Format,RGBAFormat=THREE.RGBAFormat,RGFormat=THREE.RGFormat,sRGBEncoding=THREE.sRGBEncoding,UnsignedByteType=THREE.UnsignedByteType,WorkerPool=THREE.WorkerPool;var read=THREE.KTXParse.read,KHR_DF_FLAG_ALPHA_PREMULTIPLIED=THREE.KTXParse.KHR_DF_FLAG_ALPHA_PREMULTIPLIED,KHR_DF_TRANSFER_SRGB=THREE.KTXParse.KHR_DF_TRANSFER_SRGB,KHR_SUPERCOMPRESSION_NONE=THREE.KTXParse.KHR_SUPERCOMPRESSION_NONE,KHR_SUPERCOMPRESSION_ZSTD=THREE.KTXParse.KHR_SUPERCOMPRESSION_ZSTD,VK_FORMAT_UNDEFINED=THREE.KTXParse.VK_FORMAT_UNDEFINED,VK_FORMAT_R16_SFLOAT=THREE.KTXParse.VK_FORMAT_R16_SFLOAT,VK_FORMAT_R16G16_SFLOAT=THREE.KTXParse.VK_FORMAT_R16G16_SFLOAT,VK_FORMAT_R16G16B16A16_SFLOAT=THREE.KTXParse.VK_FORMAT_R16G16B16A16_SFLOAT,VK_FORMAT_R32_SFLOAT=THREE.KTXParse.VK_FORMAT_R32_SFLOAT,VK_FORMAT_R32G32_SFLOAT=THREE.KTXParse.VK_FORMAT_R32G32_SFLOAT,VK_FORMAT_R32G32B32A32_SFLOAT=THREE.KTXParse.VK_FORMAT_R32G32B32A32_SFLOAT,VK_FORMAT_R8_SRGB=THREE.KTXParse.VK_FORMAT_R8_SRGB,VK_FORMAT_R8_UNORM=THREE.KTXParse.VK_FORMAT_R8_UNORM,VK_FORMAT_R8G8_SRGB=THREE.KTXParse.VK_FORMAT_R8G8_SRGB,VK_FORMAT_R8G8_UNORM=THREE.KTXParse.VK_FORMAT_R8G8_UNORM,VK_FORMAT_R8G8B8A8_SRGB=THREE.KTXParse.VK_FORMAT_R8G8B8A8_SRGB,VK_FORMAT_R8G8B8A8_UNORM=THREE.KTXParse.VK_FORMAT_R8G8B8A8_UNORM;var ZSTDDecoder=THREE.ZSTDDecoder;const _taskCache=new WeakMap;let _activeLoaders=0;let _zstd;class KTX2Loader extends Loader{constructor(manager){super(manager);this.transcoderPath="";this.transcoderBinary=null;this.transcoderPending=null;this.workerPool=new WorkerPool;this.workerSourceURL="";this.workerConfig=null;if(typeof MSC_TRANSCODER!=="undefined"){console.warn("THREE.KTX2Loader: Please update to latest \"basis_transcoder\"."+" \"msc_basis_transcoder\" is no longer supported in three.js r125+.")}}setTranscoderPath(path){this.transcoderPath=path;return this}setWorkerLimit(num){this.workerPool.setWorkerLimit(num);return this}detectSupport(renderer){this.workerConfig={astcSupported:renderer.extensions.has("WEBGL_compressed_texture_astc"),etc1Supported:renderer.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:renderer.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:renderer.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:renderer.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:renderer.extensions.has("WEBGL_compressed_texture_pvrtc")||renderer.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")};if(renderer.capabilities.isWebGL2){this.workerConfig.etc1Supported=false}return this}init(){if(!this.transcoderPending){const jsLoader=new FileLoader(this.manager);jsLoader.setPath(this.transcoderPath);jsLoader.setWithCredentials(this.withCredentials);const jsContent=jsLoader.loadAsync("basis_transcoder.js");const binaryLoader=new FileLoader(this.manager);binaryLoader.setPath(this.transcoderPath);binaryLoader.setResponseType("arraybuffer");binaryLoader.setWithCredentials(this.withCredentials);const binaryContent=binaryLoader.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([jsContent,binaryContent]).then(([jsContent,binaryContent])=>{const fn=KTX2Loader.BasisWorker.toString();const body=["/* constants */","let _EngineFormat = "+JSON.stringify(KTX2Loader.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(KTX2Loader.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(KTX2Loader.BasisFormat),"/* basis_transcoder.js */",jsContent,"/* worker */",fn.substring(fn.indexOf("{")+1,fn.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([body]));this.transcoderBinary=binaryContent;this.workerPool.setWorkerCreator(()=>{const worker=new Worker(this.workerSourceURL);const transcoderBinary=this.transcoderBinary.slice(0);worker.postMessage({type:"init",config:this.workerConfig,transcoderBinary},[transcoderBinary]);return worker})});if(_activeLoaders>0){console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues."+" Use a single KTX2Loader instance, or call .dispose() on old instances.")}_activeLoaders++}return this.transcoderPending}load(url,onLoad,onProgress,onError){if(this.workerConfig===null){throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.")}const loader=new FileLoader(this.manager);loader.setResponseType("arraybuffer");loader.setWithCredentials(this.withCredentials);loader.load(url,buffer=>{if(_taskCache.has(buffer)){const cachedTask=_taskCache.get(buffer);return cachedTask.promise.then(onLoad).catch(onError)}this._createTexture(buffer).then(texture=>onLoad?onLoad(texture):null).catch(onError)},onProgress,onError)}_createTextureFrom(transcodeResult){const{mipmaps,width,height,format,type,error,dfdTransferFn,dfdFlags}=transcodeResult;if(type==="error")return Promise.reject(error);const texture=new CompressedTexture(mipmaps,width,height,format,UnsignedByteType);texture.minFilter=mipmaps.length===1?LinearFilter:LinearMipmapLinearFilter;texture.magFilter=LinearFilter;texture.generateMipmaps=false;texture.needsUpdate=true;texture.encoding=dfdTransferFn===KHR_DF_TRANSFER_SRGB?sRGBEncoding:LinearEncoding;texture.premultiplyAlpha=!!(dfdFlags&KHR_DF_FLAG_ALPHA_PREMULTIPLIED);return texture}_createTexture(buffer,config={}){const container=read(new Uint8Array(buffer));if(container.vkFormat!==VK_FORMAT_UNDEFINED){return createDataTexture(container)}const taskConfig=config;const texturePending=this.init().then(()=>{return this.workerPool.postMessage({type:"transcode",buffer,taskConfig:taskConfig},[buffer])}).then(e=>this._createTextureFrom(e.data));_taskCache.set(buffer,{promise:texturePending});return texturePending}dispose(){this.workerPool.dispose();if(this.workerSourceURL)URL.revokeObjectURL(this.workerSourceURL);_activeLoaders--;return this}}KTX2Loader.BasisFormat={ETC1S:0,UASTC_4x4:1};KTX2Loader.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16};KTX2Loader.EngineFormat={RGBAFormat:RGBAFormat,RGBA_ASTC_4x4_Format:RGBA_ASTC_4x4_Format,RGBA_BPTC_Format:RGBA_BPTC_Format,RGBA_ETC2_EAC_Format:RGBA_ETC2_EAC_Format,RGBA_PVRTC_4BPPV1_Format:RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT5_Format:RGBA_S3TC_DXT5_Format,RGB_ETC1_Format:RGB_ETC1_Format,RGB_ETC2_Format:RGB_ETC2_Format,RGB_PVRTC_4BPPV1_Format:RGB_PVRTC_4BPPV1_Format,RGB_S3TC_DXT1_Format:RGB_S3TC_DXT1_Format};KTX2Loader.BasisWorker=function(){let config;let transcoderPending;let BasisModule;const EngineFormat=_EngineFormat;const TranscoderFormat=_TranscoderFormat;const BasisFormat=_BasisFormat;self.addEventListener("message",function(e){const message=e.data;switch(message.type){case"init":config=message.config;init(message.transcoderBinary);break;case"transcode":transcoderPending.then(()=>{try{const{width,height,hasAlpha,mipmaps,format,dfdTransferFn,dfdFlags}=transcode(message.buffer);const buffers=[];for(let i=0;i{BasisModule={wasmBinary,onRuntimeInitialized:resolve};BASIS(BasisModule)}).then(()=>{BasisModule.initializeBasis();if(BasisModule.KTX2File===undefined){console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")}})}function transcode(buffer){const ktx2File=new BasisModule.KTX2File(new Uint8Array(buffer));function cleanup(){ktx2File.close();ktx2File.delete()}if(!ktx2File.isValid()){cleanup();throw new Error("THREE.KTX2Loader:\tInvalid or unsupported .ktx2 file")}const basisFormat=ktx2File.isUASTC()?BasisFormat.UASTC_4x4:BasisFormat.ETC1S;const width=ktx2File.getWidth();const height=ktx2File.getHeight();const levels=ktx2File.getLevels();const hasAlpha=ktx2File.getHasAlpha();const dfdTransferFn=ktx2File.getDFDTransferFunc();const dfdFlags=ktx2File.getDFDFlags();const{transcoderFormat,engineFormat}=getTranscoderFormat(basisFormat,width,height,hasAlpha);if(!width||!height||!levels){cleanup();throw new Error("THREE.KTX2Loader:\tInvalid texture")}if(!ktx2File.startTranscoding()){cleanup();throw new Error("THREE.KTX2Loader: .startTranscoding failed")}const mipmaps=[];for(let mip=0;mip{const zstd=new ZSTDDecoder;await zstd.init();resolve(zstd)})}levelData=(await _zstd).decode(level.levelData,level.uncompressedByteLength)}else{throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.")}if(TYPE_MAP[vkFormat]===FloatType){view=new Float32Array(levelData.buffer,levelData.byteOffset,levelData.byteLength/Float32Array.BYTES_PER_ELEMENT)}else if(TYPE_MAP[vkFormat]===HalfFloatType){view=new Uint16Array(levelData.buffer,levelData.byteOffset,levelData.byteLength/Uint16Array.BYTES_PER_ELEMENT)}else{view=levelData}const texture=pixelDepth===0?new DataTexture(view,pixelWidth,pixelHeight):new Data3DTexture(view,pixelWidth,pixelHeight,pixelDepth);texture.type=TYPE_MAP[vkFormat];texture.format=FORMAT_MAP[vkFormat];texture.encoding=ENCODING_MAP[vkFormat]||LinearEncoding;texture.needsUpdate=true;return Promise.resolve(texture)}THREE.KTX2Loader=KTX2Loader})();(function(){let A,I,B;const g={env:{emscripten_notify_memory_growth:function(A){B=new Uint8Array(I.exports.memory.buffer)}}};class Q{init(){return A||(A="undefined"!=typeof fetch?fetch("data:application/wasm;base64,"+C).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,g)).then(this._init):WebAssembly.instantiate(Buffer.from(C,"base64"),g).then(this._init),A)}_init(A){I=A.instance,g.env.emscripten_notify_memory_growth(0)}decode(A,g=0){if(!I)throw new Error("ZSTDDecoder: Await .init() before decoding.");const Q=A.byteLength,C=I.exports.malloc(Q);B.set(A,C),g=g||Number(I.exports.ZSTD_findDecompressedSize(C,Q));const E=I.exports.malloc(g),i=I.exports.ZSTD_decompress(E,g,C,Q),D=B.slice(E,E+i);return I.exports.free(C),I.exports.free(E),D}}const C="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdBKGogACgCBBATQQAhBCAHQeAAaiEMIAdB5ABqIQoDQCAHQShqEARBAksgBCAXTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEJIAcoAkggBygCREEDdGopAgAiH0IgiKchCCAeQiCIISAgHUIgiKchAgJAIB9CEIinQf8BcSIDQQJPBEACQCAGRSADQRlJckUEQCAIIAdBKGogA0EgIAcoAixrIg0gDSADSxsiDRAFIAMgDWsiA3RqIQggB0EoahAEGiADRQ0BIAdBKGogAxAFIAhqIQgMAQsgB0EoaiADEAUgCGohCCAHQShqEAQaCyAHKQJUISEgByAINgJUIAcgITcDWAwBCwJAIANFBEAgAgRAIAcoAlQhCAwDCyAHKAJYIQgMAQsCQAJAIAdBKGpBARAFIAggAkVqaiIDQQNGBEAgBygCVEF/aiIDIANFaiEIDAELIANBAnQgB2ooAlQiCCAIRWohCCADQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAg2AlQLICCnIQMgCQRAIAdBKGogCRAFIANqIQMLIAkgC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgAmohAgsgB0EoahAEGiAHIAcoAmggAmoiCSADajYCaCAKIAwgCCAJSxsoAgAhDSAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogB0EoaiAfQhiIp0H/AXEQCCEOIAdB8ABqIARBBHRqIgsgCSANaiAIazYCDCALIAg2AgggCyADNgIEIAsgAjYCACAHIA4gH6dB//8DcWo2AkQgBEEBaiEEDAELCyAEIBdIDQEgEkFgaiEYIAdB4ABqIRogB0HkAGohGyABIQMDQCAHQShqEARBAksgBCAFTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEIIAcoAkggBygCREEDdGopAgAiH0IgiKchCSAeQiCIISAgHUIgiKchDAJAIB9CEIinQf8BcSICQQJPBEACQCAGRSACQRlJckUEQCAJIAdBKGogAkEgIAcoAixrIgogCiACSxsiChAFIAIgCmsiAnRqIQkgB0EoahAEGiACRQ0BIAdBKGogAhAFIAlqIQkMAQsgB0EoaiACEAUgCWohCSAHQShqEAQaCyAHKQJUISEgByAJNgJUIAcgITcDWAwBCwJAIAJFBEAgDARAIAcoAlQhCQwDCyAHKAJYIQkMAQsCQAJAIAdBKGpBARAFIAkgDEVqaiICQQNGBEAgBygCVEF/aiICIAJFaiEJDAELIAJBAnQgB2ooAlQiCSAJRWohCSACQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAk2AlQLICCnIRQgCARAIAdBKGogCBAFIBRqIRQLIAggC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgDGohDAsgB0EoahAEGiAHIAcoAmggDGoiGSAUajYCaCAbIBogCSAZSxsoAgAhHCAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogByAHQShqIB9CGIinQf8BcRAIIB+nQf//A3FqNgJEIAcgB0HwAGogBEEDcUEEdGoiDSkDCCIdNwPIASAHIA0pAwAiHjcDwAECQAJAAkAgBygCvAEiDiAepyICaiIWIBNLDQAgAyAHKALEASIKIAJqIgtqIBhLDQAgEiADayALQSBqTw0BCyAHIAcpA8gBNwMQIAcgBykDwAE3AwggAyASIAdBCGogB0G8AWogEyAPIBUgERAeIQsMAQsgAiADaiEIIAMgDhAHIAJBEU8EQCADQRBqIQIDQCACIA5BEGoiDhAHIAJBEGoiAiAISQ0ACwsgCCAdpyIOayECIAcgFjYCvAEgDiAIIA9rSwRAIA4gCCAVa0sEQEFsIQsMAgsgESACIA9rIgJqIhYgCmogEU0EQCAIIBYgChAPGgwCCyAIIBZBACACaxAPIQggByACIApqIgo2AsQBIAggAmshCCAPIQILIA5BEE8EQCAIIApqIQoDQCAIIAIQByACQRBqIQIgCEEQaiIIIApJDQALDAELAkAgDkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgDkECdCIKQcAeaigCAGoiAhAXIAIgCkHgHmooAgBrIQIgBygCxAEhCgwBCyAIIAIQDAsgCkEJSQ0AIAggCmohCiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAKSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAKSQ0ACwsgCxADBEAgCyEQDAQFIA0gDDYCACANIBkgHGogCWs2AgwgDSAJNgIIIA0gFDYCBCAEQQFqIQQgAyALaiEDDAILAAsLIAQgBUgNASAEIBdrIQtBACEEA0AgCyAFSARAIAcgB0HwAGogC0EDcUEEdGoiAikDCCIdNwPIASAHIAIpAwAiHjcDwAECQAJAAkAgBygCvAEiDCAepyICaiIKIBNLDQAgAyAHKALEASIJIAJqIhBqIBhLDQAgEiADayAQQSBqTw0BCyAHIAcpA8gBNwMgIAcgBykDwAE3AxggAyASIAdBGGogB0G8AWogEyAPIBUgERAeIRAMAQsgAiADaiEIIAMgDBAHIAJBEU8EQCADQRBqIQIDQCACIAxBEGoiDBAHIAJBEGoiAiAISQ0ACwsgCCAdpyIGayECIAcgCjYCvAEgBiAIIA9rSwRAIAYgCCAVa0sEQEFsIRAMAgsgESACIA9rIgJqIgwgCWogEU0EQCAIIAwgCRAPGgwCCyAIIAxBACACaxAPIQggByACIAlqIgk2AsQBIAggAmshCCAPIQILIAZBEE8EQCAIIAlqIQYDQCAIIAIQByACQRBqIQIgCEEQaiIIIAZJDQALDAELAkAgBkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgBkECdCIGQcAeaigCAGoiAhAXIAIgBkHgHmooAgBrIQIgBygCxAEhCQwBCyAIIAIQDAsgCUEJSQ0AIAggCWohBiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAGSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAGSQ0ACwsgEBADDQMgC0EBaiELIAMgEGohAwwBCwsDQCAEQQNHBEAgACAEQQJ0IgJqQazQAWogAiAHaigCVDYCACAEQQFqIQQMAQsLIAcoArwBIQgLQbp/IRAgEyAIayIAIBIgA2tLDQAgAwR/IAMgCCAAEAsgAGoFQQALIAFrIRALIAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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";THREE.ZSTDDecoder=Q})();(function(){var BufferAttribute=THREE.BufferAttribute,BufferGeometry=THREE.BufferGeometry,Color=THREE.Color,FileLoader=THREE.FileLoader,Loader=THREE.Loader,LinearSRGBColorSpace=THREE.LinearSRGBColorSpace,SRGBColorSpace=THREE.SRGBColorSpace;const _taskCache=new WeakMap;class DRACOLoader extends Loader{constructor(manager){super(manager);this.decoderPath="";this.decoderConfig={};this.decoderBinary=null;this.decoderPending=null;this.workerLimit=4;this.workerPool=[];this.workerNextTaskID=1;this.workerSourceURL="";this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"};this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(path){this.decoderPath=path;return this}setDecoderConfig(config){this.decoderConfig=config;return this}setWorkerLimit(workerLimit){this.workerLimit=workerLimit;return this}load(url,onLoad,onProgress,onError){const loader=new FileLoader(this.manager);loader.setPath(this.path);loader.setResponseType("arraybuffer");loader.setRequestHeader(this.requestHeader);loader.setWithCredentials(this.withCredentials);loader.load(url,buffer=>{this.parse(buffer,onLoad,onError)},onProgress,onError)}parse(buffer,onLoad,onError=()=>{}){this.decodeDracoFile(buffer,onLoad,null,null,SRGBColorSpace).catch(onError)}decodeDracoFile(buffer,callback,attributeIDs,attributeTypes,vertexColorSpace=LinearSRGBColorSpace,onError=()=>{}){const taskConfig={attributeIDs:attributeIDs||this.defaultAttributeIDs,attributeTypes:attributeTypes||this.defaultAttributeTypes,useUniqueIDs:!!attributeIDs,vertexColorSpace:vertexColorSpace};return this.decodeGeometry(buffer,taskConfig).then(callback).catch(onError)}decodeGeometry(buffer,taskConfig){const taskKey=JSON.stringify(taskConfig);if(_taskCache.has(buffer)){const cachedTask=_taskCache.get(buffer);if(cachedTask.key===taskKey){return cachedTask.promise}else if(buffer.byteLength===0){throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different "+"settings. Buffer has already been transferred.")}}let worker;const taskID=this.workerNextTaskID++;const taskCost=buffer.byteLength;const geometryPending=this._getWorker(taskID,taskCost).then(_worker=>{worker=_worker;return new Promise((resolve,reject)=>{worker._callbacks[taskID]={resolve,reject};worker.postMessage({type:"decode",id:taskID,taskConfig,buffer},[buffer])})}).then(message=>this._createGeometry(message.geometry));geometryPending.catch(()=>true).then(()=>{if(worker&&taskID){this._releaseTask(worker,taskID)}});_taskCache.set(buffer,{key:taskKey,promise:geometryPending});return geometryPending}_createGeometry(geometryData){const geometry=new BufferGeometry;if(geometryData.index){geometry.setIndex(new BufferAttribute(geometryData.index.array,1))}for(let i=0;i{loader.load(url,resolve,undefined,reject)})}preload(){this._initDecoder();return this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const useJS=typeof WebAssembly!=="object"||this.decoderConfig.type==="js";const librariesPending=[];if(useJS){librariesPending.push(this._loadLibrary("draco_decoder.js","text"))}else{librariesPending.push(this._loadLibrary("draco_wasm_wrapper.js","text"));librariesPending.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))}this.decoderPending=Promise.all(librariesPending).then(libraries=>{const jsContent=libraries[0];if(!useJS){this.decoderConfig.wasmBinary=libraries[1]}const fn=DRACOWorker.toString();const body=["/* draco decoder */",jsContent,"","/* worker */",fn.substring(fn.indexOf("{")+1,fn.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([body]))});return this.decoderPending}_getWorker(taskID,taskCost){return this._initDecoder().then(()=>{if(this.workerPool.lengthb._taskLoad?-1:1})}const worker=this.workerPool[this.workerPool.length-1];worker._taskCosts[taskID]=taskCost;worker._taskLoad+=taskCost;return worker})}_releaseTask(worker,taskID){worker._taskLoad-=worker._taskCosts[taskID];delete worker._callbacks[taskID];delete worker._taskCosts[taskID]}debug(){console.log("Task load: ",this.workerPool.map(worker=>worker._taskLoad))}dispose(){for(let i=0;i{const draco=module.draco;const decoder=new draco.Decoder;try{const geometry=decodeGeometry(draco,decoder,new Int8Array(buffer),taskConfig);const buffers=geometry.attributes.map(attr=>attr.array.buffer);if(geometry.index)buffers.push(geometry.index.array.buffer);self.postMessage({type:"decode",id:message.id,geometry},buffers)}catch(error){console.error(error);self.postMessage({type:"error",id:message.id,error:error.message})}finally{draco.destroy(decoder)}});break;}};function decodeGeometry(draco,decoder,array,taskConfig){const attributeIDs=taskConfig.attributeIDs;const attributeTypes=taskConfig.attributeTypes;let dracoGeometry;let decodingStatus;const geometryType=decoder.GetEncodedGeometryType(array);if(geometryType===draco.TRIANGULAR_MESH){dracoGeometry=new draco.Mesh;decodingStatus=decoder.DecodeArrayToMesh(array,array.byteLength,dracoGeometry)}else if(geometryType===draco.POINT_CLOUD){dracoGeometry=new draco.PointCloud;decodingStatus=decoder.DecodeArrayToPointCloud(array,array.byteLength,dracoGeometry)}else{throw new Error("THREE.DRACOLoader: Unexpected geometry type.")}if(!decodingStatus.ok()||dracoGeometry.ptr===0){throw new Error("THREE.DRACOLoader: Decoding failed: "+decodingStatus.error_msg())}const geometry={index:null,attributes:[]};for(const attributeName in attributeIDs){const attributeType=self[attributeTypes[attributeName]];let attribute;let attributeID;if(taskConfig.useUniqueIDs){attributeID=attributeIDs[attributeName];attribute=decoder.GetAttributeByUniqueId(dracoGeometry,attributeID)}else{attributeID=decoder.GetAttributeId(dracoGeometry,draco[attributeIDs[attributeName]]);if(attributeID===-1)continue;attribute=decoder.GetAttribute(dracoGeometry,attributeID)}const attributeResult=decodeAttribute(draco,decoder,dracoGeometry,attributeName,attributeType,attribute);if(attributeName==="color"){attributeResult.vertexColorSpace=taskConfig.vertexColorSpace}geometry.attributes.push(attributeResult)}if(geometryType===draco.TRIANGULAR_MESH){geometry.index=decodeIndex(draco,decoder,dracoGeometry)}draco.destroy(dracoGeometry);return geometry}function decodeIndex(draco,decoder,dracoGeometry){const numFaces=dracoGeometry.num_faces();const numIndices=numFaces*3;const byteLength=numIndices*4;const ptr=draco._malloc(byteLength);decoder.GetTrianglesUInt32Array(dracoGeometry,byteLength,ptr);const index=new Uint32Array(draco.HEAPF32.buffer,ptr,numIndices).slice();draco._free(ptr);return{array:index,itemSize:1}}function decodeAttribute(draco,decoder,dracoGeometry,attributeName,attributeType,attribute){const numComponents=attribute.num_components();const numPoints=dracoGeometry.num_points();const numValues=numPoints*numComponents;const byteLength=numValues*attributeType.BYTES_PER_ELEMENT;const dataType=getDracoDataType(draco,attributeType);const ptr=draco._malloc(byteLength);decoder.GetAttributeDataArrayForAllPoints(dracoGeometry,attribute,dataType,byteLength,ptr);const array=new attributeType(draco.HEAPF32.buffer,ptr,numValues).slice();draco._free(ptr);return{name:attributeName,array:array,itemSize:numComponents}}function getDracoDataType(draco,attributeType){switch(attributeType){case Float32Array:return draco.DT_FLOAT32;case Int8Array:return draco.DT_INT8;case Int16Array:return draco.DT_INT16;case Int32Array:return draco.DT_INT32;case Uint8Array:return draco.DT_UINT8;case Uint16Array:return draco.DT_UINT16;case Uint32Array:return draco.DT_UINT32;}}}THREE.DRACOLoader=DRACOLoader})();(function(e){var modifiedJSON={};modifiedJSON.parse=function(data){json=JSON.parse(data);json.nodes&&json.nodes.forEach((node,index)=>{(node.extras||(node.extras={})).id=index.toString()});return json};e(modifiedJSON)})(function(JSON){(function(){var AnimationClip=THREE.AnimationClip,Bone=THREE.Bone,Box3=THREE.Box3,BufferAttribute=THREE.BufferAttribute,BufferGeometry=THREE.BufferGeometry,ClampToEdgeWrapping=THREE.ClampToEdgeWrapping,Color=THREE.Color,ColorManagement=THREE.ColorManagement,DirectionalLight=THREE.DirectionalLight,DoubleSide=THREE.DoubleSide,FileLoader=THREE.FileLoader,FrontSide=THREE.FrontSide,Group=THREE.Group,ImageBitmapLoader=THREE.ImageBitmapLoader,InstancedMesh=THREE.InstancedMesh,InterleavedBuffer=THREE.InterleavedBuffer,InterleavedBufferAttribute=THREE.InterleavedBufferAttribute,Interpolant=THREE.Interpolant,InterpolateDiscrete=THREE.InterpolateDiscrete,InterpolateLinear=THREE.InterpolateLinear,Line=THREE.Line,LineBasicMaterial=THREE.LineBasicMaterial,LineLoop=THREE.LineLoop,LineSegments=THREE.LineSegments,LinearFilter=THREE.LinearFilter,LinearMipmapLinearFilter=THREE.LinearMipmapLinearFilter,LinearMipmapNearestFilter=THREE.LinearMipmapNearestFilter,LinearSRGBColorSpace=THREE.LinearSRGBColorSpace,Loader=THREE.Loader,LoaderUtils=THREE.LoaderUtils,Material=THREE.Material,MathUtils=THREE.MathUtils,Matrix4=THREE.Matrix4,Mesh=THREE.Mesh,MeshBasicMaterial=THREE.MeshBasicMaterial,MeshPhysicalMaterial=THREE.MeshPhysicalMaterial,MeshStandardMaterial=THREE.MeshStandardMaterial,MirroredRepeatWrapping=THREE.MirroredRepeatWrapping,NearestFilter=THREE.NearestFilter,NearestMipmapLinearFilter=THREE.NearestMipmapLinearFilter,NearestMipmapNearestFilter=THREE.NearestMipmapNearestFilter,NumberKeyframeTrack=THREE.NumberKeyframeTrack,Object3D=THREE.Object3D,OrthographicCamera=THREE.OrthographicCamera,PerspectiveCamera=THREE.PerspectiveCamera,PointLight=THREE.PointLight,Points=THREE.Points,PointsMaterial=THREE.PointsMaterial,PropertyBinding=THREE.PropertyBinding,Quaternion=THREE.Quaternion,QuaternionKeyframeTrack=THREE.QuaternionKeyframeTrack,RepeatWrapping=THREE.RepeatWrapping,Skeleton=THREE.Skeleton,SkinnedMesh=THREE.SkinnedMesh,Sphere=THREE.Sphere,SpotLight=THREE.SpotLight,Texture=THREE.Texture,TextureLoader=THREE.TextureLoader,TriangleFanDrawMode=THREE.TriangleFanDrawMode,TriangleStripDrawMode=THREE.TriangleStripDrawMode,Vector2=THREE.Vector2,Vector3=THREE.Vector3,VectorKeyframeTrack=THREE.VectorKeyframeTrack,SRGBColorSpace=THREE.SRGBColorSpace,InstancedBufferAttribute=THREE.InstancedBufferAttribute;var toTrianglesDrawMode=THREE.BufferGeometryUtils.toTrianglesDrawMode;class GLTFLoader extends Loader{constructor(manager){super(manager);this.dracoLoader=null;this.ktx2Loader=null;this.meshoptDecoder=null;this.pluginCallbacks=[];this.register(function(parser){return new GLTFMaterialsClearcoatExtension(parser)});this.register(function(parser){return new GLTFMaterialsDispersionExtension(parser)});this.register(function(parser){return new GLTFTextureBasisUExtension(parser)});this.register(function(parser){return new GLTFTextureWebPExtension(parser)});this.register(function(parser){return new GLTFTextureAVIFExtension(parser)});this.register(function(parser){return new GLTFMaterialsSheenExtension(parser)});this.register(function(parser){return new GLTFMaterialsTransmissionExtension(parser)});this.register(function(parser){return new GLTFMaterialsVolumeExtension(parser)});this.register(function(parser){return new GLTFMaterialsIorExtension(parser)});this.register(function(parser){return new GLTFMaterialsEmissiveStrengthExtension(parser)});this.register(function(parser){return new GLTFMaterialsSpecularExtension(parser)});this.register(function(parser){return new GLTFMaterialsIridescenceExtension(parser)});this.register(function(parser){return new GLTFMaterialsAnisotropyExtension(parser)});this.register(function(parser){return new GLTFMaterialsBumpExtension(parser)});this.register(function(parser){return new GLTFLightsExtension(parser)});this.register(function(parser){return new GLTFMeshoptCompression(parser)});this.register(function(parser){return new GLTFMeshGpuInstancing(parser)})}load(url,onLoad,onProgress,onError){const scope=this;let resourcePath;if(this.resourcePath!==""){resourcePath=this.resourcePath}else if(this.path!==""){const relativeUrl=LoaderUtils.extractUrlBase(url);resourcePath=LoaderUtils.resolveURL(relativeUrl,this.path)}else{resourcePath=LoaderUtils.extractUrlBase(url)}this.manager.itemStart(url);const _onError=function(e){if(onError){onError(e)}else{console.error(e)}scope.manager.itemError(url);scope.manager.itemEnd(url)};const loader=new FileLoader(this.manager);loader.setPath(this.path);loader.setResponseType("arraybuffer");loader.setRequestHeader(this.requestHeader);loader.setWithCredentials(this.withCredentials);loader.load(url,function(data){try{scope.parse(data,resourcePath,function(gltf){onLoad(gltf);scope.manager.itemEnd(url)},_onError)}catch(e){_onError(e)}},onProgress,_onError)}setDRACOLoader(dracoLoader){this.dracoLoader=dracoLoader;return this}setDDSLoader(){throw new Error("THREE.GLTFLoader: \"MSFT_texture_dds\" no longer supported. Please update to \"KHR_texture_basisu\".")}setKTX2Loader(ktx2Loader){this.ktx2Loader=ktx2Loader;return this}setMeshoptDecoder(meshoptDecoder){this.meshoptDecoder=meshoptDecoder;return this}register(callback){if(this.pluginCallbacks.indexOf(callback)===-1){this.pluginCallbacks.push(callback)}return this}unregister(callback){if(this.pluginCallbacks.indexOf(callback)!==-1){this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(callback),1)}return this}parse(data,path,onLoad,onError){let json;const extensions={};const plugins={};const textDecoder=new TextDecoder;if(typeof data==="string"){json=JSON.parse(data)}else if(data instanceof ArrayBuffer){const magic=textDecoder.decode(new Uint8Array(data,0,4));if(magic===BINARY_EXTENSION_HEADER_MAGIC){try{extensions[EXTENSIONS.KHR_BINARY_GLTF]=new GLTFBinaryExtension(data)}catch(error){if(onError)onError(error);return}json=JSON.parse(extensions[EXTENSIONS.KHR_BINARY_GLTF].content)}else{json=JSON.parse(textDecoder.decode(data))}}else{json=data}if(json.asset===undefined||json.asset.version[0]<2){if(onError)onError(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}const parser=new GLTFParser(json,{path:path||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});parser.fileLoader.setRequestHeader(this.requestHeader);for(let i=0;i=0&&plugins[extensionName]===undefined){console.warn("THREE.GLTFLoader: Unknown extension \""+extensionName+"\".")}}}}parser.setExtensions(extensions);parser.setPlugins(plugins);parser.parse(onLoad,onError)}parseAsync(data,path){const scope=this;return new Promise(function(resolve,reject){scope.parse(data,path,resolve,reject)})}}function GLTFRegistry(){let objects={};return{get:function(key){return objects[key]},add:function(key,object){objects[key]=object},remove:function(key){delete objects[key]},removeAll:function(){objects={}}}}const EXTENSIONS={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class GLTFLightsExtension{constructor(parser){this.parser=parser;this.name=EXTENSIONS.KHR_LIGHTS_PUNCTUAL;this.cache={refs:{},uses:{}}}_markDefs(){const parser=this.parser;const nodeDefs=this.parser.json.nodes||[];for(let nodeIndex=0,nodeLength=nodeDefs.length;nodeIndex=0){throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures")}else{return null}}return parser.loadTextureImage(textureIndex,extension.source,loader)}}class GLTFTextureWebPExtension{constructor(parser){this.parser=parser;this.name=EXTENSIONS.EXT_TEXTURE_WEBP;this.isSupported=null}loadTexture(textureIndex){const name=this.name;const parser=this.parser;const json=parser.json;const textureDef=json.textures[textureIndex];if(!textureDef.extensions||!textureDef.extensions[name]){return null}const extension=textureDef.extensions[name];const source=json.images[extension.source];let loader=parser.textureLoader;if(source.uri){const handler=parser.options.manager.getHandler(source.uri);if(handler!==null)loader=handler}return this.detectSupport().then(function(isSupported){if(isSupported)return parser.loadTextureImage(textureIndex,extension.source,loader);if(json.extensionsRequired&&json.extensionsRequired.indexOf(name)>=0){throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.")}return parser.loadTexture(textureIndex)})}detectSupport(){if(!this.isSupported){this.isSupported=new Promise(function(resolve){const image=new Image;image.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA";image.onload=image.onerror=function(){resolve(image.height===1)}})}return this.isSupported}}class GLTFTextureAVIFExtension{constructor(parser){this.parser=parser;this.name=EXTENSIONS.EXT_TEXTURE_AVIF;this.isSupported=null}loadTexture(textureIndex){const name=this.name;const parser=this.parser;const json=parser.json;const textureDef=json.textures[textureIndex];if(!textureDef.extensions||!textureDef.extensions[name]){return null}const extension=textureDef.extensions[name];const source=json.images[extension.source];let loader=parser.textureLoader;if(source.uri){const handler=parser.options.manager.getHandler(source.uri);if(handler!==null)loader=handler}return this.detectSupport().then(function(isSupported){if(isSupported)return parser.loadTextureImage(textureIndex,extension.source,loader);if(json.extensionsRequired&&json.extensionsRequired.indexOf(name)>=0){throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.")}return parser.loadTexture(textureIndex)})}detectSupport(){if(!this.isSupported){this.isSupported=new Promise(function(resolve){const image=new Image;image.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=";image.onload=image.onerror=function(){resolve(image.height===1)}})}return this.isSupported}}class GLTFMeshoptCompression{constructor(parser){this.name=EXTENSIONS.EXT_MESHOPT_COMPRESSION;this.parser=parser}loadBufferView(index){const json=this.parser.json;const bufferView=json.bufferViews[index];if(bufferView.extensions&&bufferView.extensions[this.name]){const extensionDef=bufferView.extensions[this.name];const buffer=this.parser.getDependency("buffer",extensionDef.buffer);const decoder=this.parser.options.meshoptDecoder;if(!decoder||!decoder.supported){if(json.extensionsRequired&&json.extensionsRequired.indexOf(this.name)>=0){throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files")}else{return null}}return buffer.then(function(res){const byteOffset=extensionDef.byteOffset||0;const byteLength=extensionDef.byteLength||0;const count=extensionDef.count;const stride=extensionDef.byteStride;const source=new Uint8Array(res,byteOffset,byteLength);if(decoder.decodeGltfBufferAsync){return decoder.decodeGltfBufferAsync(count,stride,source,extensionDef.mode,extensionDef.filter).then(function(res){return res.buffer})}else{return decoder.ready.then(function(){const result=new ArrayBuffer(count*stride);decoder.decodeGltfBuffer(new Uint8Array(result),count,stride,source,extensionDef.mode,extensionDef.filter);return result})}})}else{return null}}}class GLTFMeshGpuInstancing{constructor(parser){this.name=EXTENSIONS.EXT_MESH_GPU_INSTANCING;this.parser=parser}createNodeMesh(nodeIndex){const json=this.parser.json;const nodeDef=json.nodes[nodeIndex];if(!nodeDef.extensions||!nodeDef.extensions[this.name]||nodeDef.mesh===undefined){return null}const meshDef=json.meshes[nodeDef.mesh];for(const primitive of meshDef.primitives){if(primitive.mode!==WEBGL_CONSTANTS.TRIANGLES&&primitive.mode!==WEBGL_CONSTANTS.TRIANGLE_STRIP&&primitive.mode!==WEBGL_CONSTANTS.TRIANGLE_FAN&&primitive.mode!==undefined){return null}}const extensionDef=nodeDef.extensions[this.name];const attributesDef=extensionDef.attributes;const pending=[];const attributes={};for(const key in attributesDef){pending.push(this.parser.getDependency("accessor",attributesDef[key]).then(accessor=>{attributes[key]=accessor;return attributes[key]}))}if(pending.length<1){return null}pending.push(this.parser.createNodeMesh(nodeIndex));return Promise.all(pending).then(results=>{const nodeObject=results.pop();const meshes=nodeObject.isGroup?nodeObject.children:[nodeObject];const count=results[0].count;const instancedMeshes=[];for(const mesh of meshes){const m=new Matrix4;const p=new Vector3;const q=new Quaternion;const s=new Vector3(1,1,1);const instancedMesh=new InstancedMesh(mesh.geometry,mesh.material,count);for(let i=0;i0||uri.search(/^data\:image\/jpeg/)===0)return"image/jpeg";if(uri.search(/\.webp($|\?)/i)>0||uri.search(/^data\:image\/webp/)===0)return"image/webp";return"image/png"}const _identityMatrix=new Matrix4;class GLTFParser{constructor(json={},options={}){this.json=json;this.extensions={};this.plugins={};this.options=options;this.cache=new GLTFRegistry;this.associations=new Map;this.primitiveCache={};this.nodeCache={};this.meshCache={refs:{},uses:{}};this.cameraCache={refs:{},uses:{}};this.lightCache={refs:{},uses:{}};this.sourceCache={};this.textureCache={};this.nodeNamesUsed={};let isSafari=false;let isFirefox=false;let firefoxVersion=-1;if(typeof navigator!=="undefined"){isSafari=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===true;isFirefox=navigator.userAgent.indexOf("Firefox")>-1;firefoxVersion=isFirefox?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1}if(typeof createImageBitmap==="undefined"||isSafari||isFirefox&&firefoxVersion<98){this.textureLoader=new TextureLoader(this.options.manager)}else{this.textureLoader=new ImageBitmapLoader(this.options.manager)}this.textureLoader.setCrossOrigin(this.options.crossOrigin);this.textureLoader.setRequestHeader(this.options.requestHeader);this.fileLoader=new FileLoader(this.options.manager);this.fileLoader.setResponseType("arraybuffer");if(this.options.crossOrigin==="use-credentials"){this.fileLoader.setWithCredentials(true)}}setExtensions(extensions){this.extensions=extensions}setPlugins(plugins){this.plugins=plugins}parse(onLoad,onError){const parser=this;const json=this.json;const extensions=this.extensions;this.cache.removeAll();this.nodeCache={};this._invokeAll(function(ext){return ext._markDefs&&ext._markDefs()});Promise.all(this._invokeAll(function(ext){return ext.beforeRoot&&ext.beforeRoot()})).then(function(){return Promise.all([parser.getDependencies("scene"),parser.getDependencies("animation"),parser.getDependencies("camera")])}).then(function(dependencies){const result={scene:dependencies[0][json.scene||0],scenes:dependencies[0],animations:dependencies[1],cameras:dependencies[2],asset:json.asset,parser:parser,userData:{}};addUnknownExtensionsToUserData(extensions,result,json);assignExtrasToUserData(result,json);return Promise.all(parser._invokeAll(function(ext){return ext.afterRoot&&ext.afterRoot(result)})).then(function(){for(const scene of result.scenes){scene.updateMatrixWorld()}onLoad(result)})}).catch(onError)}_markDefs(){const nodeDefs=this.json.nodes||[];const skinDefs=this.json.skins||[];const meshDefs=this.json.meshes||[];for(let skinIndex=0,skinLength=skinDefs.length;skinIndex{const mappings=this.associations.get(original);if(mappings!=null){this.associations.set(clone,mappings)}for(const[i,child]of original.children.entries()){updateMappings(child,clone.children[i])}};updateMappings(object,ref);ref.name+="_instance_"+cache.uses[index]++;return ref}_invokeOne(func){const extensions=Object.values(this.plugins);extensions.push(this);for(let i=0;i=2)bufferAttribute.setY(index,sparseValues[i*itemSize+1]);if(itemSize>=3)bufferAttribute.setZ(index,sparseValues[i*itemSize+2]);if(itemSize>=4)bufferAttribute.setW(index,sparseValues[i*itemSize+3]);if(itemSize>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return bufferAttribute})}loadTexture(textureIndex){const json=this.json;const options=this.options;const textureDef=json.textures[textureIndex];const sourceIndex=textureDef.source;const sourceDef=json.images[sourceIndex];let loader=this.textureLoader;if(sourceDef.uri){const handler=options.manager.getHandler(sourceDef.uri);if(handler!==null)loader=handler}return this.loadTextureImage(textureIndex,sourceIndex,loader)}loadTextureImage(textureIndex,sourceIndex,loader){const parser=this;const json=this.json;const textureDef=json.textures[textureIndex];const sourceDef=json.images[sourceIndex];const cacheKey=(sourceDef.uri||sourceDef.bufferView)+":"+textureDef.sampler;if(this.textureCache[cacheKey]){return this.textureCache[cacheKey]}const promise=this.loadImageSource(sourceIndex,loader).then(function(texture){texture.flipY=false;texture.name=textureDef.name||sourceDef.name||"";if(texture.name===""&&typeof sourceDef.uri==="string"&&sourceDef.uri.startsWith("data:image/")===false){texture.name=sourceDef.uri}const samplers=json.samplers||{};const sampler=samplers[textureDef.sampler]||{};texture.magFilter=WEBGL_FILTERS[sampler.magFilter]||LinearFilter;texture.minFilter=WEBGL_FILTERS[sampler.minFilter]||LinearMipmapLinearFilter;texture.wrapS=WEBGL_WRAPPINGS[sampler.wrapS]||RepeatWrapping;texture.wrapT=WEBGL_WRAPPINGS[sampler.wrapT]||RepeatWrapping;parser.associations.set(texture,{textures:textureIndex});return texture}).catch(function(){return null});this.textureCache[cacheKey]=promise;return promise}loadImageSource(sourceIndex,loader){const parser=this;const json=this.json;const options=this.options;if(this.sourceCache[sourceIndex]!==undefined){return this.sourceCache[sourceIndex].then(texture=>texture.clone())}const sourceDef=json.images[sourceIndex];const URL=self.URL||self.webkitURL;let sourceURI=sourceDef.uri||"";let isObjectURL=false;if(sourceDef.bufferView!==undefined){sourceURI=parser.getDependency("bufferView",sourceDef.bufferView).then(function(bufferView){isObjectURL=true;const blob=new Blob([bufferView],{type:sourceDef.mimeType});sourceURI=URL.createObjectURL(blob);return sourceURI})}else if(sourceDef.uri===undefined){throw new Error("THREE.GLTFLoader: Image "+sourceIndex+" is missing URI and bufferView")}const promise=Promise.resolve(sourceURI).then(function(sourceURI){return new Promise(function(resolve,reject){let onLoad=resolve;if(loader.isImageBitmapLoader===true){onLoad=function(imageBitmap){const texture=new Texture(imageBitmap);texture.needsUpdate=true;resolve(texture)}}loader.load(LoaderUtils.resolveURL(sourceURI,options.path),onLoad,undefined,reject)})}).then(function(texture){if(isObjectURL===true){URL.revokeObjectURL(sourceURI)}texture.userData.mimeType=sourceDef.mimeType||getImageURIMimeType(sourceDef.uri);return texture}).catch(function(error){console.error("THREE.GLTFLoader: Couldn't load texture",sourceURI);throw error});this.sourceCache[sourceIndex]=promise;return promise}assignTexture(materialParams,mapName,mapDef,colorSpace){const parser=this;return this.getDependency("texture",mapDef.index).then(function(texture){if(!texture)return null;if(mapDef.texCoord!==undefined&&mapDef.texCoord>0){texture=texture.clone();texture.channel=mapDef.texCoord}if(parser.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM]){const transform=mapDef.extensions!==undefined?mapDef.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM]:undefined;if(transform){const gltfReference=parser.associations.get(texture);texture=parser.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM].extendTexture(texture,transform);parser.associations.set(texture,gltfReference)}}if(colorSpace!==undefined){texture.colorSpace=colorSpace}materialParams[mapName]=texture;return texture})}assignFinalMaterial(mesh){const geometry=mesh.geometry;let material=mesh.material;const useDerivativeTangents=geometry.attributes.tangent===undefined;const useVertexColors=geometry.attributes.color!==undefined;const useFlatShading=geometry.attributes.normal===undefined;if(mesh.isPoints){const cacheKey="PointsMaterial:"+material.uuid;let pointsMaterial=this.cache.get(cacheKey);if(!pointsMaterial){pointsMaterial=new PointsMaterial;Material.prototype.copy.call(pointsMaterial,material);pointsMaterial.color.copy(material.color);pointsMaterial.map=material.map;pointsMaterial.sizeAttenuation=false;this.cache.add(cacheKey,pointsMaterial)}material=pointsMaterial}else if(mesh.isLine){const cacheKey="LineBasicMaterial:"+material.uuid;let lineMaterial=this.cache.get(cacheKey);if(!lineMaterial){lineMaterial=new LineBasicMaterial;Material.prototype.copy.call(lineMaterial,material);lineMaterial.color.copy(material.color);lineMaterial.map=material.map;this.cache.add(cacheKey,lineMaterial)}material=lineMaterial}if(useDerivativeTangents||useVertexColors||useFlatShading){let cacheKey="ClonedMaterial:"+material.uuid+":";if(useDerivativeTangents)cacheKey+="derivative-tangents:";if(useVertexColors)cacheKey+="vertex-colors:";if(useFlatShading)cacheKey+="flat-shading:";let cachedMaterial=this.cache.get(cacheKey);if(!cachedMaterial){cachedMaterial=material.clone();if(useVertexColors)cachedMaterial.vertexColors=true;if(useFlatShading)cachedMaterial.flatShading=true;if(useDerivativeTangents){if(cachedMaterial.normalScale)cachedMaterial.normalScale.y*=-1;if(cachedMaterial.clearcoatNormalScale)cachedMaterial.clearcoatNormalScale.y*=-1}this.cache.add(cacheKey,cachedMaterial);this.associations.set(cachedMaterial,this.associations.get(material))}material=cachedMaterial}mesh.material=material}getMaterialType(){return MeshStandardMaterial}loadMaterial(materialIndex){const parser=this;const json=this.json;const extensions=this.extensions;const materialDef=json.materials[materialIndex];let materialType;const materialParams={};const materialExtensions=materialDef.extensions||{};const pending=[];if(materialExtensions[EXTENSIONS.KHR_MATERIALS_UNLIT]){const kmuExtension=extensions[EXTENSIONS.KHR_MATERIALS_UNLIT];materialType=kmuExtension.getMaterialType();pending.push(kmuExtension.extendParams(materialParams,materialDef,parser))}else{const metallicRoughness=materialDef.pbrMetallicRoughness||{};materialParams.color=new Color(1,1,1);materialParams.opacity=1;if(Array.isArray(metallicRoughness.baseColorFactor)){const array=metallicRoughness.baseColorFactor;materialParams.color.setRGB(array[0],array[1],array[2],LinearSRGBColorSpace);materialParams.opacity=array[3]}if(metallicRoughness.baseColorTexture!==undefined){pending.push(parser.assignTexture(materialParams,"map",metallicRoughness.baseColorTexture,SRGBColorSpace))}materialParams.metalness=metallicRoughness.metallicFactor!==undefined?metallicRoughness.metallicFactor:1;materialParams.roughness=metallicRoughness.roughnessFactor!==undefined?metallicRoughness.roughnessFactor:1;if(metallicRoughness.metallicRoughnessTexture!==undefined){pending.push(parser.assignTexture(materialParams,"metalnessMap",metallicRoughness.metallicRoughnessTexture));pending.push(parser.assignTexture(materialParams,"roughnessMap",metallicRoughness.metallicRoughnessTexture))}materialType=this._invokeOne(function(ext){return ext.getMaterialType&&ext.getMaterialType(materialIndex)});pending.push(Promise.all(this._invokeAll(function(ext){return ext.extendMaterialParams&&ext.extendMaterialParams(materialIndex,materialParams)})))}if(materialDef.doubleSided===true){materialParams.side=DoubleSide}const alphaMode=materialDef.alphaMode||ALPHA_MODES.OPAQUE;if(alphaMode===ALPHA_MODES.BLEND){materialParams.transparent=true;materialParams.depthWrite=false}else{materialParams.transparent=false;if(alphaMode===ALPHA_MODES.MASK){materialParams.alphaTest=materialDef.alphaCutoff!==undefined?materialDef.alphaCutoff:0.5}}if(materialDef.normalTexture!==undefined&&materialType!==MeshBasicMaterial){pending.push(parser.assignTexture(materialParams,"normalMap",materialDef.normalTexture));materialParams.normalScale=new Vector2(1,1);if(materialDef.normalTexture.scale!==undefined){const scale=materialDef.normalTexture.scale;materialParams.normalScale.set(scale,scale)}}if(materialDef.occlusionTexture!==undefined&&materialType!==MeshBasicMaterial){pending.push(parser.assignTexture(materialParams,"aoMap",materialDef.occlusionTexture));if(materialDef.occlusionTexture.strength!==undefined){materialParams.aoMapIntensity=materialDef.occlusionTexture.strength}}if(materialDef.emissiveFactor!==undefined&&materialType!==MeshBasicMaterial){const emissiveFactor=materialDef.emissiveFactor;materialParams.emissive=new Color().setRGB(emissiveFactor[0],emissiveFactor[1],emissiveFactor[2],LinearSRGBColorSpace)}if(materialDef.emissiveTexture!==undefined&&materialType!==MeshBasicMaterial){pending.push(parser.assignTexture(materialParams,"emissiveMap",materialDef.emissiveTexture,SRGBColorSpace))}return Promise.all(pending).then(function(){const material=new materialType(materialParams);if(materialDef.name)material.name=materialDef.name;assignExtrasToUserData(material,materialDef);parser.associations.set(material,{materials:materialIndex});if(materialDef.extensions)addUnknownExtensionsToUserData(extensions,material,materialDef);return material})}createUniqueName(originalName){const sanitizedName=PropertyBinding.sanitizeNodeName(originalName||"");if(sanitizedName in this.nodeNamesUsed){return sanitizedName+"_"+ ++this.nodeNamesUsed[sanitizedName]}else{this.nodeNamesUsed[sanitizedName]=0;return sanitizedName}}loadGeometries(primitives){const parser=this;const extensions=this.extensions;const cache=this.primitiveCache;function createDracoPrimitive(primitive){return extensions[EXTENSIONS.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(primitive,parser).then(function(geometry){return addPrimitiveAttributes(geometry,primitive,parser)})}const pending=[];for(let i=0,il=primitives.length;i0){updateMorphTargets(mesh,meshDef)}mesh.name=parser.createUniqueName(meshDef.name||"mesh_"+meshIndex);assignExtrasToUserData(mesh,meshDef);if(primitive.extensions)addUnknownExtensionsToUserData(extensions,mesh,primitive);parser.assignFinalMaterial(mesh);meshes.push(mesh)}for(let i=0,il=meshes.length;i1){node=new Group}else if(objects.length===1){node=objects[0]}else{node=new Object3D}if(node!==objects[0]){for(let i=0,il=objects.length;i{const reducedAssociations=new Map;for(const[key,value]of parser.associations){if(key instanceof Material||key instanceof Texture){reducedAssociations.set(key,value)}}node.traverse(node=>{const mappings=parser.associations.get(node);if(mappings!=null){reducedAssociations.set(node,mappings)}});return reducedAssociations};parser.associations=reduceAssociations(scene);return scene})}_createAnimationTracks(node,inputAccessor,outputAccessor,sampler,target){const tracks=[];const targetName=node.name?node.name:node.uuid;const targetNames=[];if(PATH_PROPERTIES[target.path]===PATH_PROPERTIES.weights){node.traverse(function(object){if(object.morphTargetInfluences){targetNames.push(object.name?object.name:object.uuid)}})}else{targetNames.push(targetName)}let TypedKeyframeTrack;switch(PATH_PROPERTIES[target.path]){case PATH_PROPERTIES.weights:TypedKeyframeTrack=NumberKeyframeTrack;break;case PATH_PROPERTIES.rotation:TypedKeyframeTrack=QuaternionKeyframeTrack;break;case PATH_PROPERTIES.position:case PATH_PROPERTIES.scale:TypedKeyframeTrack=VectorKeyframeTrack;break;default:switch(outputAccessor.itemSize){case 1:TypedKeyframeTrack=NumberKeyframeTrack;break;case 2:case 3:default:TypedKeyframeTrack=VectorKeyframeTrack;break;}break;}const interpolation=sampler.interpolation!==undefined?INTERPOLATION[sampler.interpolation]:InterpolateLinear;const outputArray=this._getArrayFromAccessor(outputAccessor);for(let j=0,jl=targetNames.length;j1)x+=1;if(p.y<-1)y-=1;else if(p.y>1)y+=1;max=Math.max(p.x*camera.aspect,p.y,max);min=Math.min(p.x*camera.aspect,p.y,min)});this.isVisible=this.isDrawable&&Math.abs(x)deviceMin}}CSS3DObject.prototype.isCSS3DObject=true;THREE.CSS3DObject=CSS3DObject;class CSS3DQuad extends Object3D{constructor(element){super();this.contentWidth=100;this.contentHeight=100;this.vertices=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];this.projectedVertices=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];this.containerElement=document.createElement("div");this.containerElement.style.position="absolute";this.containerElement.style.pointerEvents="none";this.containerElement.style.overflow="hidden";this.element=element||document.createElement("div");this.containerElement.appendChild(this.element);this.element.style.position="absolute";this.element.style.pointerEvents="none"}copy(source,recursive){super.copy(source,recursive);for(var i=0;i<4;i++)this.vertices[i].copy(source.vertices[i]);return this}projectVertices(camera){if(this.matrixWorldNeedsUpdate)this.updateMatrixWorld();projectVertices(this,camera);var pv=this.projectedVertices;this.isDrawable=pv[0].z<0&&pv[1].z<0&&pv[2].z<0&&pv[3].z<0;var x=0,y=0;var max=0,min=0;pv.forEach(function(p){if(p.x<-1)x-=1;else if(p.x>1)x+=1;if(p.y<-1)y-=1;else if(p.y>1)y+=1;max=Math.max(p.x*camera.aspect,p.y,max);min=Math.min(p.x*camera.aspect,p.y,min)});this.isVisible=this.isDrawable&&Math.abs(x)deviceMin}}CSS3DQuad.prototype.isCSS3DQuad=true;THREE.CSS3DQuad=CSS3DQuad;class CSS3DRectangle extends CSS3DQuad{constructor(element){super(element)}updateVertices(){this.vertices[0].set(-this.contentWidth*0.5,+this.contentHeight*0.5,0);this.vertices[1].set(+this.contentWidth*0.5,+this.contentHeight*0.5,0);this.vertices[2].set(+this.contentWidth*0.5,-this.contentHeight*0.5,0);this.vertices[3].set(-this.contentWidth*0.5,-this.contentHeight*0.5,0)}}CSS3DRectangle.prototype.isCSS3DRectangle=true;THREE.CSS3DRectangle=CSS3DRectangle;var _matrix=new THREE.Matrix4;class CSS3DRenderer{constructor(){var _this=this;var _width,_height;var _widthHalf,_heightHalf;var _fov;var _cameraStyle;var cache={objects:new WeakMap};var domElement=document.createElement("div");domElement.style.overflow="hidden";this.domElement=domElement;this.getSize=function(){return{width:_width,height:_height}};this.render=function(scene,camera){_fov=camera.projectionMatrix.elements[5]*_heightHalf;if(scene.matrixWorldAutoUpdate===true)scene.updateMatrixWorld();_cameraStyle="translateZ("+_fov+"px)"+getCameraCSSMatrix(camera.matrixWorldInverse)+"translate("+_widthHalf+"px,"+_heightHalf+"px)";renderObject(scene,scene,camera)};this.setSize=function(width,height){_width=width;_height=height;_widthHalf=_width/2;_heightHalf=_height/2;domElement.style.width=_width+"px";domElement.style.height=_height+"px"};function renderObject(object,scene,camera){if(object.isCSS3DObject||object.isCSS3DQuad){object.onBeforeRender(_this,scene,camera);var cachedObject=cache.objects.get(object)||{};var cacheChanged=false;if(object.isVisible){if(object.isCSS3DQuad){var pv=object.projectedVertices;var x0=(1+pv[0].x)*0.5*_width,y0=(1-pv[0].y)*0.5*_height,x1=(1+pv[1].x)*0.5*_width,y1=(1-pv[1].y)*0.5*_height,x2=(1+pv[2].x)*0.5*_width,y2=(1-pv[2].y)*0.5*_height,x3=(1+pv[3].x)*0.5*_width,y3=(1-pv[3].y)*0.5*_height;createQuadMatrix(object.contentWidth,object.contentHeight,x0,y0,x1,y1,x3,y3,x2,y2,_matrix.elements);var elementStyle=getQuadCSSMatrix(_matrix);if(cachedObject.elementStyle!=elementStyle){cachedObject.elementStyle=object.element.style.transform=elementStyle;cacheChanged=true}if(cachedObject.width!==_width||cachedObject.height!==_height){object.containerElement.style.width=(cachedObject.width=_width)+"px";object.containerElement.style.height=(cachedObject.height=_height)+"px";cacheChanged=true}}else{var elementStyle=getObjectCSSMatrix(object.matrixWorld);if(cachedObject.cameraFov!==_fov){object.containerElement.style.perspective=(cachedObject.cameraFov=_fov)+"px";cacheChanged=true}if(cachedObject.width!==_width||cachedObject.height!==_height){object.cameraElement.style.width=object.containerElement.style.width=(cachedObject.width=_width)+"px";object.cameraElement.style.height=object.containerElement.style.height=(cachedObject.height=_height)+"px";cacheChanged=true}if(cachedObject.cameraStyle!==_cameraStyle){cachedObject.cameraStyle=object.cameraElement.style.transform=_cameraStyle;cacheChanged=true}if(cachedObject.elementStyle!==elementStyle){cachedObject.elementStyle=object.element.style.transform=elementStyle;cacheChanged=true}}object.containerElement.style.left="0"}else{object.containerElement.style.left=_width+"px"}if(cacheChanged)cache.objects.set(object,cachedObject);object.containerElement.style.display=object.visible?"":"none";if(object.containerElement.parentNode!==domElement)domElement.appendChild(object.containerElement);object.onAfterRender(_this,scene,camera)}for(var i=0,l=object.children.length;i-1e-10?0:value}function getCameraCSSMatrix(matrix){var elements=matrix.elements;return"matrix3d("+epsilon(elements[0])+","+epsilon(-elements[1])+","+epsilon(elements[2])+","+epsilon(elements[3])+","+epsilon(elements[4])+","+epsilon(-elements[5])+","+epsilon(elements[6])+","+epsilon(elements[7])+","+epsilon(elements[8])+","+epsilon(-elements[9])+","+epsilon(elements[10])+","+epsilon(elements[11])+","+epsilon(elements[12])+","+epsilon(-elements[13])+","+epsilon(elements[14])+","+epsilon(elements[15])+")"}function getObjectCSSMatrix(matrix){var elements=matrix.elements;var matrix3d="matrix3d("+epsilon(elements[0])+","+epsilon(elements[1])+","+epsilon(elements[2])+","+epsilon(elements[3])+","+epsilon(-elements[4])+","+epsilon(-elements[5])+","+epsilon(-elements[6])+","+epsilon(-elements[7])+","+epsilon(elements[8])+","+epsilon(elements[9])+","+epsilon(elements[10])+","+epsilon(elements[11])+","+epsilon(elements[12])+","+epsilon(elements[13])+","+epsilon(elements[14])+","+epsilon(elements[15])+")";return"translate(-50%,-50%)"+matrix3d}function getQuadCSSMatrix(matrix){var elements=matrix.elements;var matrix3d="matrix3d("+epsilon(elements[0])+","+epsilon(elements[1])+","+epsilon(elements[2])+","+epsilon(elements[3])+","+epsilon(elements[4])+","+epsilon(elements[5])+","+epsilon(elements[6])+","+epsilon(elements[7])+","+epsilon(elements[8])+","+epsilon(elements[9])+","+epsilon(elements[10])+","+epsilon(elements[11])+","+epsilon(elements[12])+","+epsilon(elements[13])+","+epsilon(elements[14])+","+epsilon(elements[15])+")";return matrix3d}}};THREE.CSS3DRenderer=CSS3DRenderer;function projectVertices(object,camera){for(var index=0;index{if(object.isMesh){resources.add(object.geometry);resources.add(object.material)}});for(const resource of resources){resource.dispose()}}}function createAreaLightMaterial(intensity){const material=new MeshBasicMaterial;material.color.setScalar(intensity);return material}THREE.RoomEnvironment=RoomEnvironment})();(function(t,e){e(t.THREE=t.THREE||{})})(this,function(THREE){var CubeReflectionMapping=THREE.CubeReflectionMapping,CubeRefractionMapping=THREE.CubeRefractionMapping,CubeUVReflectionMapping=THREE.CubeUVReflectionMapping,LinearEncoding=THREE.LinearEncoding,LinearFilter=THREE.LinearFilter,NoToneMapping=THREE.NoToneMapping,NoBlending=THREE.NoBlending,RGBAFormat=THREE.RGBAFormat,HalfFloatType=THREE.HalfFloatType,BufferAttribute=THREE.BufferAttribute,BufferGeometry=THREE.BufferGeometry,Mesh=THREE.Mesh,OrthographicCamera=THREE.OrthographicCamera,PerspectiveCamera=THREE.PerspectiveCamera,ShaderMaterial=THREE.ShaderMaterial,Vector3=THREE.Vector3,Color=THREE.Color,WebGLRenderTarget=THREE.WebGLRenderTarget,MeshBasicMaterial=THREE.MeshBasicMaterial,BoxGeometry=THREE.BoxGeometry,BackSide=THREE.BackSide;const LOD_MIN=4;const EXTRA_LOD_SIGMA=[0.125,0.215,0.35,0.446,0.526,0.582];const MAX_SAMPLES=20;const _flatCamera=new OrthographicCamera;const _clearColor=new Color;let _oldTarget=null;const PHI=(1+Math.sqrt(5))/2;const INV_PHI=1/PHI;const _axisDirections=[new Vector3(1,1,1),new Vector3(-1,1,1),new Vector3(1,1,-1),new Vector3(-1,1,-1),new Vector3(0,PHI,INV_PHI),new Vector3(0,PHI,-INV_PHI),new Vector3(INV_PHI,0,PHI),new Vector3(-INV_PHI,0,PHI),new Vector3(PHI,INV_PHI,0),new Vector3(-PHI,INV_PHI,0)];class PMREMGenerator{constructor(renderer){this._renderer=renderer;this._pingPongRenderTarget=null;this._lodMax=0;this._cubeSize=0;this._lodPlanes=[];this._sizeLods=[];this._sigmas=[];this._blurMaterial=null;this._cubemapMaterial=null;this._equirectMaterial=null;this._compileMaterial(this._blurMaterial)}fromScene(scene,sigma=0,near=0.1,far=100){_oldTarget=this._renderer.getRenderTarget();this._setSize(256);const cubeUVRenderTarget=this._allocateTargets();cubeUVRenderTarget.depthBuffer=true;this._sceneToCubeUV(scene,near,far,cubeUVRenderTarget);if(sigma>0){this._blur(cubeUVRenderTarget,0,0,sigma)}this._applyPMREM(cubeUVRenderTarget);this._cleanup(cubeUVRenderTarget);return cubeUVRenderTarget}fromEquirectangular(equirectangular,renderTarget=null){return this._fromTexture(equirectangular,renderTarget)}fromCubemap(cubemap,renderTarget=null){return this._fromTexture(cubemap,renderTarget)}compileCubemapShader(){if(this._cubemapMaterial===null){this._cubemapMaterial=_getCubemapMaterial();this._compileMaterial(this._cubemapMaterial)}}compileEquirectangularShader(){if(this._equirectMaterial===null){this._equirectMaterial=_getEquirectMaterial();this._compileMaterial(this._equirectMaterial)}}dispose(){this._dispose();if(this._cubemapMaterial!==null)this._cubemapMaterial.dispose();if(this._equirectMaterial!==null)this._equirectMaterial.dispose()}_setSize(cubeSize){this._lodMax=Math.floor(Math.log2(cubeSize));this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){if(this._blurMaterial!==null)this._blurMaterial.dispose();if(this._pingPongRenderTarget!==null)this._pingPongRenderTarget.dispose();for(let i=0;i2?size:0,size,size);renderer.setRenderTarget(cubeUVRenderTarget);if(useSolidColor){renderer.render(backgroundBox,cubeCamera)}renderer.render(scene,cubeCamera)}backgroundBox.geometry.dispose();backgroundBox.material.dispose();renderer.toneMapping=toneMapping;renderer.autoClear=originalAutoClear;scene.background=background}_textureToCubeUV(texture,cubeUVRenderTarget){const renderer=this._renderer;const isCubeTexture=texture.mapping===CubeReflectionMapping||texture.mapping===CubeRefractionMapping;if(isCubeTexture){if(this._cubemapMaterial===null){this._cubemapMaterial=_getCubemapMaterial()}this._cubemapMaterial.uniforms.flipEnvMap.value=texture.isRenderTargetTexture===false?-1:1}else{if(this._equirectMaterial===null){this._equirectMaterial=_getEquirectMaterial()}}const material=isCubeTexture?this._cubemapMaterial:this._equirectMaterial;const mesh=new Mesh(this._lodPlanes[0],material);const uniforms=material.uniforms;uniforms["envMap"].value=texture;const size=this._cubeSize;_setViewport(cubeUVRenderTarget,0,0,3*size,2*size);renderer.setRenderTarget(cubeUVRenderTarget);renderer.render(mesh,_flatCamera)}_applyPMREM(cubeUVRenderTarget){const renderer=this._renderer;const autoClear=renderer.autoClear;renderer.autoClear=false;for(let i=1;iMAX_SAMPLES){console.warn(`sigmaRadians, ${sigmaRadians}, is too large and will clip, as it requested ${samples} samples when the maximum is set to ${MAX_SAMPLES}`)}const weights=[];let sum=0;for(let i=0;i_lodMax-LOD_MIN?lodOut-_lodMax+LOD_MIN:0);const y=4*(this._cubeSize-outputSize);_setViewport(targetOut,x,y,3*outputSize,2*outputSize);renderer.setRenderTarget(targetOut);renderer.render(blurMesh,_flatCamera)}}function _createPlanes(lodMax){const lodPlanes=[];const sizeLods=[];const sigmas=[];let lod=lodMax;const totalLods=lodMax-LOD_MIN+1+EXTRA_LOD_SIGMA.length;for(let i=0;ilodMax-LOD_MIN){sigma=EXTRA_LOD_SIGMA[i-lodMax+LOD_MIN-1]}else if(i===0){sigma=0}sigmas.push(sigma);const texelSize=1/(sizeLod-2);const min=-texelSize;const max=1+texelSize;const uv1=[min,min,max,min,max,max,min,min,max,max,min,max];const cubeFaces=6;const vertices=6;const positionSize=3;const uvSize=2;const faceIndexSize=1;const position=new Float32Array(positionSize*vertices*cubeFaces);const uv=new Float32Array(uvSize*vertices*cubeFaces);const faceIndex=new Float32Array(faceIndexSize*vertices*cubeFaces);for(let face=0;face2?0:-1;const coordinates=[x,y,0,x+2/3,y,0,x+2/3,y+1,0,x,y,0,x+2/3,y+1,0,x,y+1,0];position.set(coordinates,positionSize*vertices*face);uv.set(uv1,uvSize*vertices*face);const fill=[face,face,face,face,face,face];faceIndex.set(fill,faceIndexSize*vertices*face)}const planes=new BufferGeometry;planes.setAttribute("position",new BufferAttribute(position,positionSize));planes.setAttribute("uv",new BufferAttribute(uv,uvSize));planes.setAttribute("faceIndex",new BufferAttribute(faceIndex,faceIndexSize));lodPlanes.push(planes);if(lod>LOD_MIN){lod--}}return{lodPlanes,sizeLods,sigmas}}function _createRenderTarget(width,height,params){const cubeUVRenderTarget=new WebGLRenderTarget(width,height,params);cubeUVRenderTarget.texture.mapping=CubeUVReflectionMapping;cubeUVRenderTarget.texture.name="PMREM.cubeUv";cubeUVRenderTarget.scissorTest=true;return cubeUVRenderTarget}function _setViewport(target,x,y,width,height){target.viewport.set(x,y,width,height);target.scissor.set(x,y,width,height)}function _getBlurShader(lodMax,width,height){const weights=new Float32Array(MAX_SAMPLES);const poleAxis=new Vector3(0,1,0);const shaderMaterial=new ShaderMaterial({name:"SphericalGaussianBlur",defines:{"n":MAX_SAMPLES,"CUBEUV_TEXEL_WIDTH":1/width,"CUBEUV_TEXEL_HEIGHT":1/height,"CUBEUV_MAX_MIP":`${lodMax}.0`},uniforms:{"envMap":{value:null},"samples":{value:1},"weights":{value:weights},"latitudinal":{value:false},"dTheta":{value:0},"mipInt":{value:0},"poleAxis":{value:poleAxis}},vertexShader:_getCommonVertexShader(),fragmentShader:` precision mediump float; precision mediump int; varying vec3 vOutputDirection; uniform sampler2D envMap; uniform int samples; uniform float weights[ n ]; uniform bool latitudinal; uniform float dTheta; uniform float mipInt; uniform vec3 poleAxis; #define ENVMAP_TYPE_CUBE_UV #include vec3 getSample( float theta, vec3 axis ) { float cosTheta = cos( theta ); // Rodrigues' axis-angle rotation vec3 sampleDirection = vOutputDirection * cosTheta + cross( axis, vOutputDirection ) * sin( theta ) + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); return bilinearCubeUV( envMap, sampleDirection, mipInt ); } void main() { vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); if ( all( equal( axis, vec3( 0.0 ) ) ) ) { axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); } axis = normalize( axis ); gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); for ( int i = 1; i < n; i++ ) { if ( i >= samples ) { break; } float theta = dTheta * float( i ); gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); } } `,blending:NoBlending,depthTest:false,depthWrite:false});return shaderMaterial}function _getEquirectMaterial(){return new ShaderMaterial({name:"EquirectangularToCubeUV",uniforms:{"envMap":{value:null}},vertexShader:_getCommonVertexShader(),fragmentShader:` precision mediump float; precision mediump int; varying vec3 vOutputDirection; uniform sampler2D envMap; #include void main() { vec3 outputDirection = normalize( vOutputDirection ); vec2 uv = equirectUv( outputDirection ); gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); } `,blending:NoBlending,depthTest:false,depthWrite:false})}function _getCubemapMaterial(){return new ShaderMaterial({name:"CubemapToCubeUV",uniforms:{"envMap":{value:null},"flipEnvMap":{value:-1}},vertexShader:_getCommonVertexShader(),fragmentShader:` precision mediump float; precision mediump int; uniform float flipEnvMap; varying vec3 vOutputDirection; uniform samplerCube envMap; void main() { gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); } `,blending:NoBlending,depthTest:false,depthWrite:false})}function _getCommonVertexShader(){return` precision mediump float; precision mediump int; attribute float faceIndex; varying vec3 vOutputDirection; // RH coordinate system; PMREM face-indexing convention vec3 getDirection( vec2 uv, float face ) { uv = 2.0 * uv - 1.0; vec3 direction = vec3( uv, 1.0 ); if ( face == 0.0 ) { direction = direction.zyx; // ( 1, v, u ) pos x } else if ( face == 1.0 ) { direction = direction.xzy; direction.xz *= -1.0; // ( -u, 1, -v ) pos y } else if ( face == 2.0 ) { direction.x *= -1.0; // ( -u, v, 1 ) pos z } else if ( face == 3.0 ) { direction = direction.zyx; direction.xz *= -1.0; // ( -1, v, -u ) neg x } else if ( face == 4.0 ) { direction = direction.xzy; direction.xy *= -1.0; // ( -u, -1, v ) neg y } else if ( face == 5.0 ) { direction.z *= -1.0; // ( u, v, -1 ) neg z } return direction; } void main() { vOutputDirection = getDirection( uv, faceIndex ); gl_Position = vec4( position, 1.0 ); } `}THREE.PMREMGenerator=PMREMGenerator});(function(t,e){e(t,t.THREE=t.THREE||{})})(this,function(globalThis,THREE){const $5OpyM$Spherical=THREE.Spherical;const $5OpyM$Vector3=THREE.Vector3;const $5OpyM$MathUtils=THREE.MathUtils;const $5OpyM$Sphere=THREE.Sphere;const $5OpyM$Group=THREE.Group;const $5OpyM$PointsMaterial=THREE.PointsMaterial;const $5OpyM$MeshStandardMaterial=THREE.MeshStandardMaterial;const $5OpyM$Box3Helper=THREE.Box3Helper;const $5OpyM$Color=THREE.Color;const $5OpyM$Matrix4=THREE.Matrix4;const $5OpyM$LoadingManager=THREE.LoadingManager;const $5OpyM$Vector2=THREE.Vector2;const $5OpyM$Frustum=THREE.Frustum;const $5OpyM$DefaultLoadingManager=THREE.DefaultLoadingManager;const $5OpyM$BufferGeometry=THREE.BufferGeometry;const $5OpyM$BufferAttribute=THREE.BufferAttribute;const $5OpyM$Points=THREE.Points;const $5OpyM$Quaternion=THREE.Quaternion;const $5OpyM$InstancedMesh=THREE.InstancedMesh;const $5OpyM$Ray=THREE.Ray;const $5OpyM$Box3=THREE.Box3;const $5OpyM$LineBasicMaterial=THREE.LineBasicMaterial;const $5OpyM$LineSegments=THREE.LineSegments;const $5OpyM$BoxGeometry=THREE.BoxGeometry;const $5OpyM$EdgesGeometry=THREE.EdgesGeometry;const $5OpyM$Mesh=THREE.Mesh;const $5OpyM$Euler=THREE.Euler;const $5OpyM$GLTFLoader=THREE.GLTFLoader;var $parcel$global=typeof globalThis!=="undefined"?globalThis:typeof self!=="undefined"?self:typeof window!=="undefined"?window:typeof global!=="undefined"?global:{};var $parcel$modules={};var $parcel$inits={};var parcelRequire=$parcel$global["parcelRequire5fa1"];if(parcelRequire==null){parcelRequire=function(id){if(id in $parcel$modules){return $parcel$modules[id].exports}if(id in $parcel$inits){var init=$parcel$inits[id];delete $parcel$inits[id];var module={id:id,exports:{}};$parcel$modules[id]=module;init.call(module.exports,module,module.exports);return module.exports}var err=new Error("Cannot find module '"+id+"'");err.code="MODULE_NOT_FOUND";throw err};parcelRequire.register=function register(id,init){$parcel$inits[id]=init};$parcel$global["parcelRequire5fa1"]=parcelRequire}parcelRequire.register("1hGdn",function(module,exports){"use strict";Object.defineProperty(module.exports,"__esModule",{value:true});module.exports.latitudeToSphericalPhi=$0ef81fee344e2f3b$var$latitudeToSphericalPhi;module.exports.sphericalPhiToLatitude=$0ef81fee344e2f3b$var$sphericalPhiToLatitude;module.exports.swapToGeoFrame=$0ef81fee344e2f3b$var$swapToGeoFrame;module.exports.swapToThreeFrame=$0ef81fee344e2f3b$var$swapToThreeFrame;module.exports.toLatLonString=$0ef81fee344e2f3b$var$toLatLonString;const $0ef81fee344e2f3b$var$_spherical=new $5OpyM$Spherical;const $0ef81fee344e2f3b$var$_vec=new $5OpyM$Vector3;const $0ef81fee344e2f3b$var$_geoResults={};function $0ef81fee344e2f3b$var$swapToGeoFrame(target){const{x:x,y:y,z:z}=target;target.x=z;target.y=x;target.z=y}function $0ef81fee344e2f3b$var$swapToThreeFrame(target){const{x:x,y:y,z:z}=target;target.z=x;target.x=y;target.y=z}function $0ef81fee344e2f3b$var$sphericalPhiToLatitude(phi){return-(phi-Math.PI/2)}function $0ef81fee344e2f3b$var$latitudeToSphericalPhi(latitude){return-latitude+Math.PI/2}function $0ef81fee344e2f3b$var$correctGeoCoordWrap(lat,lon,target={}){$0ef81fee344e2f3b$var$_spherical.theta=lon;$0ef81fee344e2f3b$var$_spherical.phi=$0ef81fee344e2f3b$var$latitudeToSphericalPhi(lat);$0ef81fee344e2f3b$var$_vec.setFromSpherical($0ef81fee344e2f3b$var$_spherical);$0ef81fee344e2f3b$var$_spherical.setFromVector3($0ef81fee344e2f3b$var$_vec);target.lat=$0ef81fee344e2f3b$var$sphericalPhiToLatitude($0ef81fee344e2f3b$var$_spherical.phi);target.lon=$0ef81fee344e2f3b$var$_spherical.theta;return target}function $0ef81fee344e2f3b$var$toHoursMinutesSecondsString(value,pos="E",neg="W"){const direction=value<0?neg:pos;value=Math.abs(value);const hours=~~value;const minDec=(value-hours)*60;const minutes=~~minDec;const secDec=(minDec-minutes)*60;const seconds=~~secDec;return`${hours}° ${minutes}' ${seconds}" ${direction}`}function $0ef81fee344e2f3b$var$toLatLonString(lat,lon,decimalFormat=false){const result=$0ef81fee344e2f3b$var$correctGeoCoordWrap(lat,lon,$0ef81fee344e2f3b$var$_geoResults);let latString,lonString;if(decimalFormat){latString=`${($5OpyM$MathUtils.RAD2DEG*result.lat).toFixed(4)}°`;lonString=`${($5OpyM$MathUtils.RAD2DEG*result.lon).toFixed(4)}°`}else{latString=$0ef81fee344e2f3b$var$toHoursMinutesSecondsString($5OpyM$MathUtils.RAD2DEG*result.lat,"N","S");lonString=$0ef81fee344e2f3b$var$toHoursMinutesSecondsString($5OpyM$MathUtils.RAD2DEG*result.lon,"E","W")}return`${latString} ${lonString}`}});var $cf838c15c8b009ba$exports={};"use strict";Object.defineProperty($cf838c15c8b009ba$exports,"__esModule",{value:true});var $cf838c15c8b009ba$var$_exportNames={DebugTilesRenderer:true,NONE:true,SCREEN_ERROR:true,GEOMETRIC_ERROR:true,DISTANCE:true,DEPTH:true,RELATIVE_DEPTH:true,IS_LEAF:true,RANDOM_COLOR:true,RANDOM_NODE_COLOR:true,CUSTOM_COLOR:true,TilesRenderer:true,B3DMLoader:true,PNTSLoader:true,I3DMLoader:true,CMPTLoader:true,GLTFCesiumRTCExtension:true,GLTFExtensionLoader:true,EllipsoidRegionHelper:true,EllipsoidRegionLineHelper:true,SphereHelper:true,Ellipsoid:true,EllipsoidRegion:true,GeoUtils:true,TilesRendererBase:true,LoaderBase:true,B3DMLoaderBase:true,I3DMLoaderBase:true,PNTSLoaderBase:true,CMPTLoaderBase:true,LRUCache:true,PriorityQueue:true};Object.defineProperty($cf838c15c8b009ba$exports,"B3DMLoader",{enumerable:true,get:function(){return $0aa3d1def57e98b1$exports.B3DMLoader}});Object.defineProperty($cf838c15c8b009ba$exports,"B3DMLoaderBase",{enumerable:true,get:function(){return $f5d9b5dde53306bf$exports.B3DMLoaderBase}});Object.defineProperty($cf838c15c8b009ba$exports,"CMPTLoader",{enumerable:true,get:function(){return $54879e9a7dc345e0$exports.CMPTLoader}});Object.defineProperty($cf838c15c8b009ba$exports,"CMPTLoaderBase",{enumerable:true,get:function(){return $cb66a16334732244$exports.CMPTLoaderBase}});Object.defineProperty($cf838c15c8b009ba$exports,"CUSTOM_COLOR",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.CUSTOM_COLOR}});Object.defineProperty($cf838c15c8b009ba$exports,"DEPTH",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.DEPTH}});Object.defineProperty($cf838c15c8b009ba$exports,"DISTANCE",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.DISTANCE}});Object.defineProperty($cf838c15c8b009ba$exports,"DebugTilesRenderer",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.DebugTilesRenderer}});Object.defineProperty($cf838c15c8b009ba$exports,"Ellipsoid",{enumerable:true,get:function(){return $9160f8f2e0578e98$exports.Ellipsoid}});Object.defineProperty($cf838c15c8b009ba$exports,"EllipsoidRegion",{enumerable:true,get:function(){return $aa7b3b269f245cbe$exports.EllipsoidRegion}});Object.defineProperty($cf838c15c8b009ba$exports,"EllipsoidRegionHelper",{enumerable:true,get:function(){return $3b9225051b507460$exports.EllipsoidRegionHelper}});Object.defineProperty($cf838c15c8b009ba$exports,"EllipsoidRegionLineHelper",{enumerable:true,get:function(){return $3b9225051b507460$exports.EllipsoidRegionLineHelper}});Object.defineProperty($cf838c15c8b009ba$exports,"GEOMETRIC_ERROR",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.GEOMETRIC_ERROR}});Object.defineProperty($cf838c15c8b009ba$exports,"GLTFCesiumRTCExtension",{enumerable:true,get:function(){return $44c3bffa5e49f297$exports.GLTFCesiumRTCExtension}});Object.defineProperty($cf838c15c8b009ba$exports,"GLTFExtensionLoader",{enumerable:true,get:function(){return $29ced67d26e5c4e2$exports.GLTFExtensionLoader}});$cf838c15c8b009ba$exports.GeoUtils=void 0;Object.defineProperty($cf838c15c8b009ba$exports,"I3DMLoader",{enumerable:true,get:function(){return $0bc85483bdeca322$exports.I3DMLoader}});Object.defineProperty($cf838c15c8b009ba$exports,"I3DMLoaderBase",{enumerable:true,get:function(){return $bcb352fb74bed4a5$exports.I3DMLoaderBase}});Object.defineProperty($cf838c15c8b009ba$exports,"IS_LEAF",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.IS_LEAF}});Object.defineProperty($cf838c15c8b009ba$exports,"LRUCache",{enumerable:true,get:function(){return $e0d7a242557dc8e6$exports.LRUCache}});Object.defineProperty($cf838c15c8b009ba$exports,"LoaderBase",{enumerable:true,get:function(){return $e6b785bba9ea128d$exports.LoaderBase}});Object.defineProperty($cf838c15c8b009ba$exports,"NONE",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.NONE}});Object.defineProperty($cf838c15c8b009ba$exports,"PNTSLoader",{enumerable:true,get:function(){return $1ddd6ca16eb224df$exports.PNTSLoader}});Object.defineProperty($cf838c15c8b009ba$exports,"PNTSLoaderBase",{enumerable:true,get:function(){return $d408eda5a179398a$exports.PNTSLoaderBase}});Object.defineProperty($cf838c15c8b009ba$exports,"PriorityQueue",{enumerable:true,get:function(){return $096d2234d1235002$exports.PriorityQueue}});Object.defineProperty($cf838c15c8b009ba$exports,"RANDOM_COLOR",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.RANDOM_COLOR}});Object.defineProperty($cf838c15c8b009ba$exports,"RANDOM_NODE_COLOR",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.RANDOM_NODE_COLOR}});Object.defineProperty($cf838c15c8b009ba$exports,"RELATIVE_DEPTH",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.RELATIVE_DEPTH}});Object.defineProperty($cf838c15c8b009ba$exports,"SCREEN_ERROR",{enumerable:true,get:function(){return $1909f04f34bd6630$exports.SCREEN_ERROR}});Object.defineProperty($cf838c15c8b009ba$exports,"SphereHelper",{enumerable:true,get:function(){return $1cb839fa4db014d3$exports.SphereHelper}});Object.defineProperty($cf838c15c8b009ba$exports,"TilesRenderer",{enumerable:true,get:function(){return $06d26e8e9f5361d3$exports.TilesRenderer}});Object.defineProperty($cf838c15c8b009ba$exports,"TilesRendererBase",{enumerable:true,get:function(){return $5a6f7a997885dc30$exports.TilesRendererBase}});var $1909f04f34bd6630$exports={};"use strict";Object.defineProperty($1909f04f34bd6630$exports,"__esModule",{value:true});$1909f04f34bd6630$exports.SCREEN_ERROR=$1909f04f34bd6630$exports.RELATIVE_DEPTH=$1909f04f34bd6630$exports.RANDOM_NODE_COLOR=$1909f04f34bd6630$exports.RANDOM_COLOR=$1909f04f34bd6630$exports.NONE=$1909f04f34bd6630$exports.IS_LEAF=$1909f04f34bd6630$exports.GEOMETRIC_ERROR=$1909f04f34bd6630$exports.DebugTilesRenderer=$1909f04f34bd6630$exports.DISTANCE=$1909f04f34bd6630$exports.DEPTH=$1909f04f34bd6630$exports.CUSTOM_COLOR=void 0;var $3a66585ec6f85053$exports={};"use strict";Object.defineProperty($3a66585ec6f85053$exports,"__esModule",{value:true});$3a66585ec6f85053$exports.getIndexedRandomColor=$3a66585ec6f85053$var$getIndexedRandomColor;const $3a66585ec6f85053$var$colors={};function $3a66585ec6f85053$var$getIndexedRandomColor(index){if(!$3a66585ec6f85053$var$colors[index]){const h=Math.random();const s=0.5+Math.random()*0.5;const l=0.375+Math.random()*0.25;$3a66585ec6f85053$var$colors[index]=new $5OpyM$Color().setHSL(h,s,l)}return $3a66585ec6f85053$var$colors[index]}var $06d26e8e9f5361d3$exports={};"use strict";Object.defineProperty($06d26e8e9f5361d3$exports,"__esModule",{value:true});$06d26e8e9f5361d3$exports.TilesRenderer=void 0;var $5a6f7a997885dc30$exports={};"use strict";Object.defineProperty($5a6f7a997885dc30$exports,"__esModule",{value:true});$5a6f7a997885dc30$exports.TilesRendererBase=void 0;var $7ff9fb142d83939f$exports={};"use strict";Object.defineProperty($7ff9fb142d83939f$exports,"__esModule",{value:true});$7ff9fb142d83939f$exports.getUrlExtension=$7ff9fb142d83939f$var$getUrlExtension;function $7ff9fb142d83939f$var$getUrlExtension(url){let parsedUrl;try{parsedUrl=new URL(url,"http://fakehost.com/")}catch(_){return null}const filename=parsedUrl.pathname.split("/").pop();const dotIndex=filename.lastIndexOf(".");if(dotIndex===-1||dotIndex===filename.length-1)return null;const extension=filename.substring(dotIndex+1);return extension}var $e0d7a242557dc8e6$exports={};"use strict";Object.defineProperty($e0d7a242557dc8e6$exports,"__esModule",{value:true});$e0d7a242557dc8e6$exports.LRUCache=void 0;function $e0d7a242557dc8e6$var$enqueueMicrotask(callback){Promise.resolve().then(callback)}class $e0d7a242557dc8e6$var$LRUCache{constructor(){this.maxSize=800;this.minSize=600;this.unloadPercent=0.05;this.itemSet=new Map;this.itemList=[];this.usedSet=new Set;this.callbacks=new Map;this.unloadPriorityCallback=null;const itemSet=this.itemSet;this.defaultPriorityCallback=item=>itemSet.get(item)}isFull(){return this.itemSet.size>=this.maxSize}add(item,removeCb){const itemSet=this.itemSet;if(itemSet.has(item))return false;if(this.isFull())return false;const usedSet=this.usedSet;const itemList=this.itemList;const callbacks=this.callbacks;itemList.push(item);usedSet.add(item);itemSet.set(item,Date.now());callbacks.set(item,removeCb);return true}remove(item){const usedSet=this.usedSet;const itemSet=this.itemSet;const itemList=this.itemList;const callbacks=this.callbacks;if(itemSet.has(item)){callbacks.get(item)(item);const index=itemList.indexOf(item);itemList.splice(index,1);usedSet.delete(item);itemSet.delete(item);callbacks.delete(item);return true}return false}markUsed(item){const itemSet=this.itemSet;const usedSet=this.usedSet;if(itemSet.has(item)&&!usedSet.has(item)){itemSet.set(item,Date.now());usedSet.add(item)}}markAllUnused(){this.usedSet.clear()}unloadUnusedContent(){const unloadPercent=this.unloadPercent;const targetSize=this.minSize;const itemList=this.itemList;const itemSet=this.itemSet;const usedSet=this.usedSet;const callbacks=this.callbacks;const unused=itemList.length-usedSet.size;const excess=itemList.length-targetSize;const unloadPriorityCallback=this.unloadPriorityCallback||this.defaultPriorityCallback;if(excess>0&&unused>0){itemList.sort((a,b)=>{const usedA=usedSet.has(a);const usedB=usedSet.has(b);if(usedA&&usedB)return 0;else if(!usedA&&!usedB)return unloadPriorityCallback(b)-unloadPriorityCallback(a);else return usedA?1:-1});const unusedExcess=Math.min(excess,unused);const maxUnload=Math.max(targetSize*unloadPercent,unusedExcess*unloadPercent);let nodesToUnload=Math.min(maxUnload,unused);nodesToUnload=Math.ceil(nodesToUnload);const removedItems=itemList.splice(0,nodesToUnload);for(let i=0,l=removedItems.length;i{this.scheduled=false;this.unloadUnusedContent();if(markAllUnused)this.markAllUnused()})}}}$e0d7a242557dc8e6$exports.LRUCache=$e0d7a242557dc8e6$var$LRUCache;var $096d2234d1235002$exports={};"use strict";Object.defineProperty($096d2234d1235002$exports,"__esModule",{value:true});$096d2234d1235002$exports.PriorityQueue=void 0;class $096d2234d1235002$var$PriorityQueue{constructor(){this.maxJobs=6;this.items=[];this.callbacks=new Map;this.currJobs=0;this.scheduled=false;this.autoUpdate=true;this.priorityCallback=()=>{throw new Error("PriorityQueue: PriorityCallback function not defined.")};this.schedulingCallback=func=>{requestAnimationFrame(func)};this._runjobs=()=>{this.tryRunJobs();this.scheduled=false}}sort(){const priorityCallback=this.priorityCallback;const items=this.items;items.sort(priorityCallback)}add(item,callback){return new Promise((resolve,reject)=>{const prCallback=(...args)=>callback(...args).then(resolve).catch(reject);const items=this.items;const callbacks=this.callbacks;items.push(item);callbacks.set(item,prCallback);if(this.autoUpdate)this.scheduleJobRun()})}remove(item){const items=this.items;const callbacks=this.callbacks;const index=items.indexOf(item);if(index!==-1){items.splice(index,1);callbacks.delete(item)}}tryRunJobs(){this.sort();const items=this.items;const callbacks=this.callbacks;const maxJobs=this.maxJobs;let currJobs=this.currJobs;while(maxJobs>currJobs&&items.length>0){currJobs++;const item=items.pop();const callback=callbacks.get(item);callbacks.delete(item);callback(item).then(()=>{this.currJobs--;if(this.autoUpdate)this.scheduleJobRun()}).catch(()=>{this.currJobs--;if(this.autoUpdate)this.scheduleJobRun()})}this.currJobs=currJobs}scheduleJobRun(){if(!this.scheduled){this.schedulingCallback(this._runjobs);this.scheduled=true}}}$096d2234d1235002$exports.PriorityQueue=$096d2234d1235002$var$PriorityQueue;var $cd531a5f1c18e9cc$exports={};"use strict";Object.defineProperty($cd531a5f1c18e9cc$exports,"__esModule",{value:true});$cd531a5f1c18e9cc$exports.determineFrustumSet=$cd531a5f1c18e9cc$var$determineFrustumSet;$cd531a5f1c18e9cc$exports.markUsedSetLeaves=$cd531a5f1c18e9cc$var$markUsedSetLeaves;$cd531a5f1c18e9cc$exports.skipTraversal=$cd531a5f1c18e9cc$var$skipTraversal;$cd531a5f1c18e9cc$exports.toggleTiles=$cd531a5f1c18e9cc$var$toggleTiles;$cd531a5f1c18e9cc$exports.traverseSet=$cd531a5f1c18e9cc$var$traverseSet;var $002d29a772485791$exports={};"use strict";Object.defineProperty($002d29a772485791$exports,"__esModule",{value:true});$002d29a772485791$exports.WGS84_RADIUS=$002d29a772485791$exports.WGS84_HEIGHT=$002d29a772485791$exports.WGS84_FLATTENING=$002d29a772485791$exports.UNLOADED=$002d29a772485791$exports.PARSING=$002d29a772485791$exports.LOADING=$002d29a772485791$exports.LOADED=$002d29a772485791$exports.FAILED=void 0;const $002d29a772485791$var$UNLOADED=0;$002d29a772485791$exports.UNLOADED=$002d29a772485791$var$UNLOADED;const $002d29a772485791$var$LOADING=1;$002d29a772485791$exports.LOADING=$002d29a772485791$var$LOADING;const $002d29a772485791$var$PARSING=2;$002d29a772485791$exports.PARSING=$002d29a772485791$var$PARSING;const $002d29a772485791$var$LOADED=3;$002d29a772485791$exports.LOADED=$002d29a772485791$var$LOADED;const $002d29a772485791$var$FAILED=4;$002d29a772485791$exports.FAILED=$002d29a772485791$var$FAILED;const $002d29a772485791$var$WGS84_RADIUS=6378137;$002d29a772485791$exports.WGS84_RADIUS=$002d29a772485791$var$WGS84_RADIUS;const $002d29a772485791$var$WGS84_FLATTENING=1/298.257223563;$002d29a772485791$exports.WGS84_FLATTENING=$002d29a772485791$var$WGS84_FLATTENING;const $002d29a772485791$var$WGS84_HEIGHT=-($002d29a772485791$var$WGS84_FLATTENING*$002d29a772485791$var$WGS84_RADIUS-$002d29a772485791$var$WGS84_RADIUS);$002d29a772485791$exports.WGS84_HEIGHT=$002d29a772485791$var$WGS84_HEIGHT;function $cd531a5f1c18e9cc$var$isDownloadFinished(value){return value===$002d29a772485791$exports.LOADED||value===$002d29a772485791$exports.FAILED}function $cd531a5f1c18e9cc$var$isUsedThisFrame(tile,frameCount){return tile.__lastFrameVisited===frameCount&&tile.__used}function $cd531a5f1c18e9cc$var$resetFrameState(tile,frameCount){if(tile.__lastFrameVisited!==frameCount){tile.__lastFrameVisited=frameCount;tile.__used=false;tile.__inFrustum=false;tile.__isLeaf=false;tile.__visible=false;tile.__active=false;tile.__error=Infinity;tile.__distanceFromCamera=Infinity;tile.__childrenWereVisible=false;tile.__allChildrenLoaded=false}}function $cd531a5f1c18e9cc$var$recursivelyMarkUsed(tile,frameCount,lruCache,renderer){renderer.ensureChildrenArePreprocessed(tile);$cd531a5f1c18e9cc$var$resetFrameState(tile,frameCount);tile.__used=true;lruCache.markUsed(tile);if(tile.__contentEmpty){const children=tile.children;for(let i=0,l=children.length;i0&&tile.__depth+1>=maxDepth)return true}let anyChildrenUsed=false;const children=tile.children;for(let i=0,l=children.length;i{if(a.__depth!==b.__depth)return a.__depth>b.__depth?-1:1;else if(a.__inFrustum!==b.__inFrustum)return a.__inFrustum?1:-1;else if(a.__used!==b.__used)return a.__used?1:-1;else if(a.__error!==b.__error)return a.__error>b.__error?1:-1;else if(a.__distanceFromCamera!==b.__distanceFromCamera)return a.__distanceFromCamera>b.__distanceFromCamera?-1:1;return 0};const $5a6f7a997885dc30$var$lruPriorityCallback=tile=>1/(tile.__depthFromRenderedParent+1);class $5a6f7a997885dc30$var$TilesRendererBase{get rootTileSet(){const tileSet=this.tileSets[this.rootURL];if(!tileSet||tileSet instanceof Promise)return null;else return tileSet}get root(){const tileSet=this.rootTileSet;return tileSet?tileSet.root:null}constructor(url){this.tileSets={};this.rootURL=url;this.fetchOptions={};this.preprocessURL=null;const lruCache=new $e0d7a242557dc8e6$exports.LRUCache;lruCache.unloadPriorityCallback=$5a6f7a997885dc30$var$lruPriorityCallback;const downloadQueue=new $096d2234d1235002$exports.PriorityQueue;downloadQueue.maxJobs=4;downloadQueue.priorityCallback=$5a6f7a997885dc30$var$priorityCallback;const parseQueue=new $096d2234d1235002$exports.PriorityQueue;parseQueue.maxJobs=1;parseQueue.priorityCallback=$5a6f7a997885dc30$var$priorityCallback;this.lruCache=lruCache;this.downloadQueue=downloadQueue;this.parseQueue=parseQueue;this.stats={parsing:0,downloading:0,failed:0,inFrustum:0,used:0,active:0,visible:0};this.frameCount=0;this.errorTarget=6;this.errorThreshold=Infinity;this.loadSiblings=true;this.displayActiveTiles=false;this.maxDepth=Infinity;this.stopAtEmptyTiles=true}traverse(beforecb,aftercb){const tileSets=this.tileSets;const rootTileSet=tileSets[this.rootURL];if(!rootTileSet||!rootTileSet.root)return;(0,$cd531a5f1c18e9cc$exports.traverseSet)(rootTileSet.root,(tile,...args)=>{this.ensureChildrenArePreprocessed(tile);return beforecb?beforecb(tile,...args):false},aftercb)}update(){const stats=this.stats;const lruCache=this.lruCache;const tileSets=this.tileSets;const rootTileSet=tileSets[this.rootURL];if(!(this.rootURL in tileSets)){this.loadRootTileSet(this.rootURL);return}else if(!rootTileSet||!rootTileSet.root)return;const root=rootTileSet.root;stats.inFrustum=0,stats.used=0,stats.active=0,stats.visible=0,this.frameCount++;(0,$cd531a5f1c18e9cc$exports.determineFrustumSet)(root,this);(0,$cd531a5f1c18e9cc$exports.markUsedSetLeaves)(root,this);(0,$cd531a5f1c18e9cc$exports.skipTraversal)(root,this);(0,$cd531a5f1c18e9cc$exports.toggleTiles)(root,this);lruCache.scheduleUnload()}parseTile(buffer,tile,extension){return null}disposeTile(tile){}preprocessNode(tile,tileSetDir,parentTile=null){if(tile.content){if(!("uri"in tile.content)&&"url"in tile.content){tile.content.uri=tile.content.url;delete tile.content.url}if(tile.content.uri)tile.content.uri=new URL(tile.content.uri,tileSetDir+"/").toString();if(tile.content.boundingVolume&&!("box"in tile.content.boundingVolume||"sphere"in tile.content.boundingVolume||"region"in tile.content.boundingVolume))delete tile.content.boundingVolume}tile.parent=parentTile;tile.children=tile.children||[];const uri=tile.content&&tile.content.uri;if(uri){const extension=(0,$7ff9fb142d83939f$exports.getUrlExtension)(tile.content.uri);const isExternalTileSet=Boolean(extension&&extension.toLowerCase()==="json");tile.__externalTileSet=isExternalTileSet;tile.__contentEmpty=isExternalTileSet}else{tile.__externalTileSet=false;tile.__contentEmpty=true}tile.__distanceFromCamera=Infinity;tile.__error=Infinity;tile.__inFrustum=false;tile.__isLeaf=false;tile.__usedLastFrame=false;tile.__used=false;tile.__wasSetVisible=false;tile.__visible=false;tile.__childrenWereVisible=false;tile.__allChildrenLoaded=false;tile.__wasSetActive=false;tile.__active=false;tile.__loadingState=$002d29a772485791$exports.UNLOADED;tile.__loadIndex=0;tile.__loadAbort=null;tile.__depthFromRenderedParent=-1;if(parentTile===null){tile.__depth=0;tile.refine=tile.refine||"REPLACE"}else{tile.__depth=parentTile.__depth+1;tile.refine=tile.refine||parentTile.refine}tile.__basePath=tileSetDir}setTileActive(tile,state){}setTileVisible(tile,state){}calculateError(tile){return 0}tileInView(tile){return true}ensureChildrenArePreprocessed(tile){const children=tile.children;for(let i=0,l=children.length;i{if(tile.__loadingState===$002d29a772485791$exports.FAILED)tile.__loadingState=$002d29a772485791$exports.UNLOADED});stats.failed=0}fetchTileSet(url,fetchOptions,parent=null){return fetch(url,fetchOptions).then(res=>{if(res.ok)return res.json();else throw new Error(`TilesRenderer: Failed to load tileset "${url}" with status ${res.status} : ${res.statusText}`)}).then(json=>{const version=json.asset.version;console.assert(version==="1.0"||version==="0.0","asset.version is expected to be a string of \"1.0\" or \"0.0\"");let basePath=url.replace(/\/[^\/]*\/?$/,"");basePath=new URL(basePath,window.location.href).toString();this.preprocessNode(json.root,basePath,parent);return json})}loadRootTileSet(url){const tileSets=this.tileSets;if(!(url in tileSets)){const pr=this.fetchTileSet(this.preprocessURL?this.preprocessURL(url):url,this.fetchOptions).then(json=>{tileSets[url]=json});pr.catch(err=>{console.error(err);tileSets[url]=err});tileSets[url]=pr;return pr}else if(tileSets[url]instanceof Error)return Promise.reject(tileSets[url]);else return Promise.resolve(tileSets[url])}requestTileContents(tile){if(tile.__loadingState!==$002d29a772485791$exports.UNLOADED)return;const stats=this.stats;const lruCache=this.lruCache;const downloadQueue=this.downloadQueue;const parseQueue=this.parseQueue;const isExternalTileSet=tile.__externalTileSet;lruCache.add(tile,t=>{if(t.__loadingState===$002d29a772485791$exports.LOADING){t.__loadAbort.abort();t.__loadAbort=null}else if(isExternalTileSet)t.children.length=0;else this.disposeTile(t);if(t.__loadingState===$002d29a772485791$exports.LOADING)stats.downloading--;else if(t.__loadingState===$002d29a772485791$exports.PARSING)stats.parsing--;t.__loadingState=$002d29a772485791$exports.UNLOADED;t.__loadIndex++;parseQueue.remove(t);downloadQueue.remove(t)});tile.__loadIndex++;const loadIndex=tile.__loadIndex;const controller=new AbortController;const signal=controller.signal;stats.downloading++;tile.__loadAbort=controller;tile.__loadingState=$002d29a772485791$exports.LOADING;const errorCallback=e=>{if(tile.__loadIndex!==loadIndex)return;if(e.name!=="AbortError"){parseQueue.remove(tile);downloadQueue.remove(tile);if(tile.__loadingState===$002d29a772485791$exports.PARSING)stats.parsing--;else if(tile.__loadingState===$002d29a772485791$exports.LOADING)stats.downloading--;stats.failed++;console.error(`TilesRenderer : Failed to load tile at url "${tile.content.uri}".`);console.error(e);tile.__loadingState=$002d29a772485791$exports.FAILED}else lruCache.remove(tile)};if(isExternalTileSet)downloadQueue.add(tile,tileCb=>{if(tileCb.__loadIndex!==loadIndex)return Promise.resolve();const uri=this.preprocessURL?this.preprocessURL(tileCb.content.uri):tileCb.content.uri;return this.fetchTileSet(uri,Object.assign({signal:signal},this.fetchOptions),tileCb)}).then(json=>{if(tile.__loadIndex!==loadIndex)return;stats.downloading--;tile.__loadAbort=null;tile.__loadingState=$002d29a772485791$exports.LOADED;tile.children.push(json.root)}).catch(errorCallback);else downloadQueue.add(tile,downloadTile=>{if(downloadTile.__loadIndex!==loadIndex)return Promise.resolve();const uri=this.preprocessURL?this.preprocessURL(downloadTile.content.uri):downloadTile.content.uri;return fetch(uri,Object.assign({signal:signal},this.fetchOptions))}).then(res=>{if(tile.__loadIndex!==loadIndex)return;if(res.ok)return res.arrayBuffer();else throw new Error(`Failed to load model with error code ${res.status}`)}).then(buffer=>{if(tile.__loadIndex!==loadIndex)return;stats.downloading--;stats.parsing++;tile.__loadAbort=null;tile.__loadingState=$002d29a772485791$exports.PARSING;return parseQueue.add(tile,parseTile=>{if(parseTile.__loadIndex!==loadIndex)return Promise.resolve();const uri=parseTile.content.uri;const extension=(0,$7ff9fb142d83939f$exports.getUrlExtension)(uri);return this.parseTile(buffer,parseTile,extension)})}).then(()=>{if(tile.__loadIndex!==loadIndex)return;stats.parsing--;tile.__loadingState=$002d29a772485791$exports.LOADED;if(tile.__wasSetVisible)this.setTileVisible(tile,true);if(tile.__wasSetActive)this.setTileActive(tile,true)}).catch(errorCallback)}dispose(){const lruCache=this.lruCache;const toRemove=[];this.traverse(t=>{toRemove.push(t);return false});for(let i=0,l=toRemove.length;ibinOffset+binLength)throw new Error("FeatureTable: Feature data read outside binary body length.");return data}}getBuffer(byteOffset,byteLength){const{buffer:buffer,binOffset:binOffset}=this;return buffer.slice(binOffset+byteOffset,binOffset+byteOffset+byteLength)}}$5bfd2e53a5ab8bef$exports.FeatureTable=$5bfd2e53a5ab8bef$var$FeatureTable;class $5bfd2e53a5ab8bef$var$BatchTable extends $5bfd2e53a5ab8bef$var$FeatureTable{constructor(buffer,batchSize,start,headerLength,binLength){super(buffer,start,headerLength,binLength);this.batchSize=batchSize}getData(key,componentType=null,type=null){return super.getData(key,this.batchSize,componentType,type)}}$5bfd2e53a5ab8bef$exports.BatchTable=$5bfd2e53a5ab8bef$var$BatchTable;var $e6b785bba9ea128d$exports={};"use strict";Object.defineProperty($e6b785bba9ea128d$exports,"__esModule",{value:true});$e6b785bba9ea128d$exports.LoaderBase=void 0;class $e6b785bba9ea128d$var$LoaderBase{constructor(){this.fetchOptions={};this.workingPath=""}load(url){return fetch(url,this.fetchOptions).then(res=>{if(!res.ok)throw new Error(`Failed to load file "${url}" with status ${res.status} : ${res.statusText}`);return res.arrayBuffer()}).then(buffer=>{if(this.workingPath==="")this.workingPath=this.workingPathForURL(url);return this.parse(buffer)})}resolveExternalURL(url){if(/^[^\\/]/.test(url))return this.workingPath+"/"+url;else return url}workingPathForURL(url){const splits=url.split(/[\\/]/g);splits.pop();const workingPath=splits.join("/");return workingPath+"/"}parse(buffer){throw new Error("LoaderBase: Parse not implemented.")}}$e6b785bba9ea128d$exports.LoaderBase=$e6b785bba9ea128d$var$LoaderBase;var $9e3e194659cc5776$exports={};"use strict";Object.defineProperty($9e3e194659cc5776$exports,"__esModule",{value:true});$9e3e194659cc5776$exports.readMagicBytes=$9e3e194659cc5776$var$readMagicBytes;function $9e3e194659cc5776$var$readMagicBytes(bufferOrDataView){let view;if(bufferOrDataView instanceof DataView)view=bufferOrDataView;else view=new DataView(bufferOrDataView);if(String.fromCharCode(view.getUint8(0))==="{")return null;let magicBytes="";for(let i=0;i<4;i++)magicBytes+=String.fromCharCode(view.getUint8(i));return magicBytes}class $f5d9b5dde53306bf$var$B3DMLoaderBase extends $e6b785bba9ea128d$exports.LoaderBase{parse(buffer){const dataView=new DataView(buffer);const magic=(0,$9e3e194659cc5776$exports.readMagicBytes)(dataView);console.assert(magic==="b3dm");const version=dataView.getUint32(4,true);console.assert(version===1);const byteLength=dataView.getUint32(8,true);console.assert(byteLength===buffer.byteLength);const featureTableJSONByteLength=dataView.getUint32(12,true);const featureTableBinaryByteLength=dataView.getUint32(16,true);const batchTableJSONByteLength=dataView.getUint32(20,true);const batchTableBinaryByteLength=dataView.getUint32(24,true);const featureTableStart=28;const featureTableBuffer=buffer.slice(featureTableStart,featureTableStart+featureTableJSONByteLength+featureTableBinaryByteLength);const featureTable=new $5bfd2e53a5ab8bef$exports.FeatureTable(featureTableBuffer,0,featureTableJSONByteLength,featureTableBinaryByteLength);const batchTableStart=featureTableStart+featureTableJSONByteLength+featureTableBinaryByteLength;const batchTableBuffer=buffer.slice(batchTableStart,batchTableStart+batchTableJSONByteLength+batchTableBinaryByteLength);const batchTable=new $5bfd2e53a5ab8bef$exports.BatchTable(batchTableBuffer,featureTable.getData("BATCH_LENGTH"),0,batchTableJSONByteLength,batchTableBinaryByteLength);const glbStart=batchTableStart+batchTableJSONByteLength+batchTableBinaryByteLength;const glbBytes=new Uint8Array(buffer,glbStart,byteLength-glbStart);return{version:version,featureTable:featureTable,batchTable:batchTable,glbBytes:glbBytes}}}$f5d9b5dde53306bf$exports.B3DMLoaderBase=$f5d9b5dde53306bf$var$B3DMLoaderBase;class $0aa3d1def57e98b1$var$B3DMLoader extends $f5d9b5dde53306bf$exports.B3DMLoaderBase{constructor(manager=$5OpyM$DefaultLoadingManager){super();this.manager=manager;this.adjustmentTransform=new $5OpyM$Matrix4}parse(buffer){const b3dm=super.parse(buffer);const gltfBuffer=b3dm.glbBytes.slice().buffer;return new Promise((resolve,reject)=>{const manager=this.manager;const fetchOptions=this.fetchOptions;const loader=manager.getHandler("path.gltf")||new $5OpyM$GLTFLoader(manager);if(fetchOptions.credentials==="include"&&fetchOptions.mode==="cors")loader.setCrossOrigin("use-credentials");if("credentials"in fetchOptions)loader.setWithCredentials(fetchOptions.credentials==="include");if(fetchOptions.headers)loader.setRequestHeader(fetchOptions.headers);let workingPath=this.workingPath;if(!/[\\/]$/.test(workingPath)&&workingPath.length)workingPath+="/";const adjustmentTransform=this.adjustmentTransform;loader.parse(gltfBuffer,workingPath,model=>{const{batchTable:batchTable,featureTable:featureTable}=b3dm;const{scene:scene}=model;const rtcCenter=featureTable.getData("RTC_CENTER");if(rtcCenter){scene.position.x+=rtcCenter[0];scene.position.y+=rtcCenter[1];scene.position.z+=rtcCenter[2]}model.scene.updateMatrix();model.scene.matrix.multiply(adjustmentTransform);model.scene.matrix.decompose(model.scene.position,model.scene.quaternion,model.scene.scale);model.batchTable=batchTable;model.featureTable=featureTable;scene.batchTable=batchTable;scene.featureTable=featureTable;resolve(model)},reject)})}}$0aa3d1def57e98b1$exports.B3DMLoader=$0aa3d1def57e98b1$var$B3DMLoader;var $1ddd6ca16eb224df$exports={};"use strict";Object.defineProperty($1ddd6ca16eb224df$exports,"__esModule",{value:true});$1ddd6ca16eb224df$exports.PNTSLoader=void 0;var $d408eda5a179398a$exports={};"use strict";Object.defineProperty($d408eda5a179398a$exports,"__esModule",{value:true});$d408eda5a179398a$exports.PNTSLoaderBase=void 0;class $d408eda5a179398a$var$PNTSLoaderBase extends $e6b785bba9ea128d$exports.LoaderBase{parse(buffer){const dataView=new DataView(buffer);const magic=(0,$9e3e194659cc5776$exports.readMagicBytes)(dataView);console.assert(magic==="pnts");const version=dataView.getUint32(4,true);console.assert(version===1);const byteLength=dataView.getUint32(8,true);console.assert(byteLength===buffer.byteLength);const featureTableJSONByteLength=dataView.getUint32(12,true);const featureTableBinaryByteLength=dataView.getUint32(16,true);const batchTableJSONByteLength=dataView.getUint32(20,true);const batchTableBinaryByteLength=dataView.getUint32(24,true);const featureTableStart=28;const featureTableBuffer=buffer.slice(featureTableStart,featureTableStart+featureTableJSONByteLength+featureTableBinaryByteLength);const featureTable=new $5bfd2e53a5ab8bef$exports.FeatureTable(featureTableBuffer,0,featureTableJSONByteLength,featureTableBinaryByteLength);const batchTableStart=featureTableStart+featureTableJSONByteLength+featureTableBinaryByteLength;const batchTableBuffer=buffer.slice(batchTableStart,batchTableStart+batchTableJSONByteLength+batchTableBinaryByteLength);const batchTable=new $5bfd2e53a5ab8bef$exports.BatchTable(batchTableBuffer,featureTable.getData("BATCH_LENGTH")||featureTable.getData("POINTS_LENGTH"),0,batchTableJSONByteLength,batchTableBinaryByteLength);return Promise.resolve({version:version,featureTable:featureTable,batchTable:batchTable})}}$d408eda5a179398a$exports.PNTSLoaderBase=$d408eda5a179398a$var$PNTSLoaderBase;const $1ddd6ca16eb224df$var$DRACO_ATTRIBUTE_MAP={RGB:"color",POSITION:"position"};class $1ddd6ca16eb224df$var$PNTSLoader extends $d408eda5a179398a$exports.PNTSLoaderBase{constructor(manager=$5OpyM$DefaultLoadingManager){super();this.manager=manager}parse(buffer){return super.parse(buffer).then(async result=>{const{featureTable:featureTable}=result;const material=new $5OpyM$PointsMaterial;const extensions=featureTable.header.extensions;const translationOffset=new $5OpyM$Vector3;let geometry;if(extensions&&extensions["3DTILES_draco_point_compression"]){const{byteOffset:byteOffset,byteLength:byteLength,properties:properties}=extensions["3DTILES_draco_point_compression"];const dracoLoader=this.manager.getHandler("draco.drc");if(dracoLoader==null)throw new Error("PNTSLoader: dracoLoader not available.");const attributeIDs={};for(const key in properties)if(key in $1ddd6ca16eb224df$var$DRACO_ATTRIBUTE_MAP&&key in properties){const mappedKey=$1ddd6ca16eb224df$var$DRACO_ATTRIBUTE_MAP[key];attributeIDs[mappedKey]=properties[key]}const taskConfig={attributeIDs:attributeIDs,attributeTypes:{position:"Float32Array",color:"Uint8Array"},useUniqueIDs:true};const buffer=featureTable.getBuffer(byteOffset,byteLength);geometry=await dracoLoader.decodeGeometry(buffer,taskConfig);if(geometry.attributes.color)material.vertexColors=true}else{const POINTS_LENGTH=featureTable.getData("POINTS_LENGTH");const POSITION=featureTable.getData("POSITION",POINTS_LENGTH,"FLOAT","VEC3");const RGB=featureTable.getData("RGB",POINTS_LENGTH,"UNSIGNED_BYTE","VEC3");const POSITION_QUANTIZED=featureTable.getData("POSITION_QUANTIZED",POINTS_LENGTH,"UNSIGNED_SHORT","VEC3");const QUANTIZED_VOLUME_SCALE=featureTable.getData("QUANTIZED_VOLUME_SCALE",POINTS_LENGTH,"FLOAT","VEC3");const QUANTIZED_VOLUME_OFFSET=featureTable.getData("QUANTIZED_VOLUME_OFFSET",POINTS_LENGTH,"FLOAT","VEC3");geometry=new $5OpyM$BufferGeometry;if(POSITION_QUANTIZED){const decodedPositions=new Float32Array(POINTS_LENGTH*3);for(let i=0;i{if(feature in featureTable.header)console.warn(`PNTSLoader: Unsupported FeatureTable feature "${feature}" detected.`)});const object=new $5OpyM$Points(geometry,material);object.position.copy(translationOffset);result.scene=object;result.scene.featureTable=featureTable;const rtcCenter=featureTable.getData("RTC_CENTER");if(rtcCenter){result.scene.position.x+=rtcCenter[0];result.scene.position.y+=rtcCenter[1];result.scene.position.z+=rtcCenter[2]}return result})}}$1ddd6ca16eb224df$exports.PNTSLoader=$1ddd6ca16eb224df$var$PNTSLoader;var $0bc85483bdeca322$exports={};"use strict";Object.defineProperty($0bc85483bdeca322$exports,"__esModule",{value:true});$0bc85483bdeca322$exports.I3DMLoader=void 0;var $bcb352fb74bed4a5$exports={};"use strict";Object.defineProperty($bcb352fb74bed4a5$exports,"__esModule",{value:true});$bcb352fb74bed4a5$exports.I3DMLoaderBase=void 0;class $bcb352fb74bed4a5$var$I3DMLoaderBase extends $e6b785bba9ea128d$exports.LoaderBase{parse(buffer){const dataView=new DataView(buffer);const magic=(0,$9e3e194659cc5776$exports.readMagicBytes)(dataView);console.assert(magic==="i3dm");const version=dataView.getUint32(4,true);console.assert(version===1);const byteLength=dataView.getUint32(8,true);console.assert(byteLength===buffer.byteLength);const featureTableJSONByteLength=dataView.getUint32(12,true);const featureTableBinaryByteLength=dataView.getUint32(16,true);const batchTableJSONByteLength=dataView.getUint32(20,true);const batchTableBinaryByteLength=dataView.getUint32(24,true);const gltfFormat=dataView.getUint32(28,true);const featureTableStart=32;const featureTableBuffer=buffer.slice(featureTableStart,featureTableStart+featureTableJSONByteLength+featureTableBinaryByteLength);const featureTable=new $5bfd2e53a5ab8bef$exports.FeatureTable(featureTableBuffer,0,featureTableJSONByteLength,featureTableBinaryByteLength);const batchTableStart=featureTableStart+featureTableJSONByteLength+featureTableBinaryByteLength;const batchTableBuffer=buffer.slice(batchTableStart,batchTableStart+batchTableJSONByteLength+batchTableBinaryByteLength);const batchTable=new $5bfd2e53a5ab8bef$exports.BatchTable(batchTableBuffer,featureTable.getData("INSTANCES_LENGTH"),0,batchTableJSONByteLength,batchTableBinaryByteLength);const glbStart=batchTableStart+batchTableJSONByteLength+batchTableBinaryByteLength;const bodyBytes=new Uint8Array(buffer,glbStart,byteLength-glbStart);let glbBytes=null;let promise=null;if(gltfFormat){glbBytes=bodyBytes;promise=Promise.resolve()}else{const externalUri=this.resolveExternalURL((0,$5d480c6739d4b949$exports.arrayToString)(bodyBytes));promise=fetch(externalUri,this.fetchOptions).then(res=>{if(!res.ok)throw new Error(`I3DMLoaderBase : Failed to load file "${externalUri}" with status ${res.status} : ${res.statusText}`);return res.arrayBuffer()}).then(buffer=>{glbBytes=new Uint8Array(buffer)})}return promise.then(()=>{return{version:version,featureTable:featureTable,batchTable:batchTable,glbBytes:glbBytes}})}}$bcb352fb74bed4a5$exports.I3DMLoaderBase=$bcb352fb74bed4a5$var$I3DMLoaderBase;const $0bc85483bdeca322$var$tempFwd=new $5OpyM$Vector3;const $0bc85483bdeca322$var$tempUp=new $5OpyM$Vector3;const $0bc85483bdeca322$var$tempRight=new $5OpyM$Vector3;const $0bc85483bdeca322$var$tempPos=new $5OpyM$Vector3;const $0bc85483bdeca322$var$tempQuat=new $5OpyM$Quaternion;const $0bc85483bdeca322$var$tempSca=new $5OpyM$Vector3;const $0bc85483bdeca322$var$tempMat=new $5OpyM$Matrix4;class $0bc85483bdeca322$var$I3DMLoader extends $bcb352fb74bed4a5$exports.I3DMLoaderBase{constructor(manager=$5OpyM$DefaultLoadingManager){super();this.manager=manager;this.adjustmentTransform=new $5OpyM$Matrix4}resolveExternalURL(url){return this.manager.resolveURL(super.resolveExternalURL(url))}parse(buffer){return super.parse(buffer).then(i3dm=>{const{featureTable:featureTable,batchTable:batchTable}=i3dm;const gltfBuffer=i3dm.glbBytes.slice().buffer;return new Promise((resolve,reject)=>{const fetchOptions=this.fetchOptions;const manager=this.manager;const loader=manager.getHandler("path.gltf")||new $5OpyM$GLTFLoader(manager);if(fetchOptions.credentials==="include"&&fetchOptions.mode==="cors")loader.setCrossOrigin("use-credentials");if("credentials"in fetchOptions)loader.setWithCredentials(fetchOptions.credentials==="include");if(fetchOptions.headers)loader.setRequestHeader(fetchOptions.headers);let workingPath=this.workingPath;if(!/[\\/]$/.test(workingPath))workingPath+="/";const adjustmentTransform=this.adjustmentTransform;loader.parse(gltfBuffer,workingPath,model=>{const INSTANCES_LENGTH=featureTable.getData("INSTANCES_LENGTH");const POSITION=featureTable.getData("POSITION",INSTANCES_LENGTH,"FLOAT","VEC3");const NORMAL_UP=featureTable.getData("NORMAL_UP",INSTANCES_LENGTH,"FLOAT","VEC3");const NORMAL_RIGHT=featureTable.getData("NORMAL_RIGHT",INSTANCES_LENGTH,"FLOAT","VEC3");const SCALE_NON_UNIFORM=featureTable.getData("SCALE_NON_UNIFORM",INSTANCES_LENGTH,"FLOAT","VEC3");const SCALE=featureTable.getData("SCALE",INSTANCES_LENGTH,"FLOAT","SCALAR");["RTC_CENTER","QUANTIZED_VOLUME_OFFSET","QUANTIZED_VOLUME_SCALE","EAST_NORTH_UP","POSITION_QUANTIZED","NORMAL_UP_OCT32P","NORMAL_RIGHT_OCT32P"].forEach(feature=>{if(feature in featureTable.header)console.warn(`I3DMLoader: Unsupported FeatureTable feature "${feature}" detected.`)});const instanceMap=new Map;const instances=[];model.scene.traverse(child=>{if(child.isMesh){const{geometry:geometry,material:material}=child;const instancedMesh=new $5OpyM$InstancedMesh(geometry,material,INSTANCES_LENGTH);instancedMesh.position.copy(child.position);instancedMesh.rotation.copy(child.rotation);instancedMesh.scale.copy(child.scale);instances.push(instancedMesh);instanceMap.set(child,instancedMesh)}});const averageVector=new $5OpyM$Vector3;for(let i=0;i{const parent=mesh.parent;if(parent){parent.remove(mesh);parent.add(instancedMesh);instancedMesh.updateMatrixWorld();instancedMesh.position.copy(averageVector).applyMatrix4(instancedMesh.matrixWorld)}});for(let i=0;i{const group=new $5OpyM$Group;results.forEach(result=>{group.add(result.scene)});return{tiles:results,scene:group}})}}$54879e9a7dc345e0$exports.CMPTLoader=$54879e9a7dc345e0$var$CMPTLoader;var $29ced67d26e5c4e2$exports={};"use strict";Object.defineProperty($29ced67d26e5c4e2$exports,"__esModule",{value:true});$29ced67d26e5c4e2$exports.GLTFExtensionLoader=void 0;var $44c3bffa5e49f297$exports={};"use strict";Object.defineProperty($44c3bffa5e49f297$exports,"__esModule",{value:true});$44c3bffa5e49f297$exports.GLTFCesiumRTCExtension=void 0;class $44c3bffa5e49f297$var$GLTFCesiumRTCExtension{constructor(){this.name="CESIUM_RTC"}afterRoot(res){if(res.parser.json.extensions&&res.parser.json.extensions.CESIUM_RTC){const{center:center}=res.parser.json.extensions.CESIUM_RTC;if(center){res.scene.position.x+=center[0];res.scene.position.y+=center[1];res.scene.position.z+=center[2]}}}}$44c3bffa5e49f297$exports.GLTFCesiumRTCExtension=$44c3bffa5e49f297$var$GLTFCesiumRTCExtension;class $29ced67d26e5c4e2$var$GLTFExtensionLoader extends $e6b785bba9ea128d$exports.LoaderBase{constructor(manager=$5OpyM$DefaultLoadingManager){super();this.manager=manager}parse(buffer){return new Promise((resolve,reject)=>{const manager=this.manager;const fetchOptions=this.fetchOptions;let loader=manager.getHandler("path.gltf")||manager.getHandler("path.glb");if(!loader){loader=new $5OpyM$GLTFLoader(manager);loader.register(()=>new $44c3bffa5e49f297$exports.GLTFCesiumRTCExtension);if(fetchOptions.credentials==="include"&&fetchOptions.mode==="cors")loader.setCrossOrigin("use-credentials");if("credentials"in fetchOptions)loader.setWithCredentials(fetchOptions.credentials==="include");if(fetchOptions.headers)loader.setRequestHeader(fetchOptions.headers)}let resourcePath=loader.resourcePath||loader.path||this.workingPath;if(!/[\\/]$/.test(resourcePath)&&resourcePath.length)resourcePath+="/";loader.parse(buffer,resourcePath,model=>{resolve(model)},reject)})}}$29ced67d26e5c4e2$exports.GLTFExtensionLoader=$29ced67d26e5c4e2$var$GLTFExtensionLoader;var $3fcce8a4f74b2abc$exports={};"use strict";Object.defineProperty($3fcce8a4f74b2abc$exports,"__esModule",{value:true});$3fcce8a4f74b2abc$exports.TilesGroup=void 0;const $3fcce8a4f74b2abc$var$tempMat=new $5OpyM$Matrix4;class $3fcce8a4f74b2abc$var$TilesGroup extends $5OpyM$Group{constructor(tilesRenderer){super();this.name="TilesRenderer.TilesGroup";this.tilesRenderer=tilesRenderer}raycast(raycaster,intersects){if(this.tilesRenderer.optimizeRaycast)this.tilesRenderer.raycast(raycaster,intersects)}updateMatrixWorld(force){if(this.matrixAutoUpdate)this.updateMatrix();if(this.matrixWorldNeedsUpdate||force){if(this.parent===null)$3fcce8a4f74b2abc$var$tempMat.copy(this.matrix);else $3fcce8a4f74b2abc$var$tempMat.multiplyMatrices(this.parent.matrixWorld,this.matrix);this.matrixWorldNeedsUpdate=false;const elA=$3fcce8a4f74b2abc$var$tempMat.elements;const elB=this.matrixWorld.elements;let isDifferent=false;for(let i=0;i<16;i++){const itemA=elA[i];const itemB=elB[i];const diff=Math.abs(itemA-itemB);if(diff>Number.EPSILON){isDifferent=true;break}}if(isDifferent){this.matrixWorld.copy($3fcce8a4f74b2abc$var$tempMat);const children=this.children;for(let i=0,l=children.length;i{Object.getPrototypeOf(c).raycast.call(c,raycaster,intersects)})}function $c1ac95a1e8efcc86$var$intersectTileSceneFirstHist(scene,raycaster){$c1ac95a1e8efcc86$var$intersectTileScene(scene,raycaster,$c1ac95a1e8efcc86$var$_hitArray);$c1ac95a1e8efcc86$var$_hitArray.sort($c1ac95a1e8efcc86$var$distanceSort);const hit=$c1ac95a1e8efcc86$var$_hitArray[0]||null;$c1ac95a1e8efcc86$var$_hitArray.length=0;return hit}function $c1ac95a1e8efcc86$var$raycastTraverseFirstHit(renderer,tile,raycaster,localRay=null){const{group:group,activeTiles:activeTiles}=renderer;renderer.ensureChildrenArePreprocessed(tile);if(localRay===null){localRay=$c1ac95a1e8efcc86$var$_localRay;$c1ac95a1e8efcc86$var$_mat.copy(group.matrixWorld).invert();localRay.copy(raycaster.ray).applyMatrix4($c1ac95a1e8efcc86$var$_mat)}const array=[];const children=tile.children;for(let i=0,l=children.length;ibestHitDistSq)break;const hit=$c1ac95a1e8efcc86$var$raycastTraverseFirstHit(renderer,tile,raycaster,localRay);if(hit){const hitDistSq=hit.distance*hit.distance;if(hitDistSqnew $5OpyM$Vector3)}update(){const{points:points,inverseTransform:inverseTransform,transform:transform,box:box}=this;inverseTransform.copy(transform).invert();const{min:min,max:max}=box;let index=0;for(let x=-1;x<=1;x+=2){for(let y=-1;y<=1;y+=2)for(let z=-1;z<=1;z+=2){points[index].set(x<0?min.x:max.x,y<0?min.y:max.y,z<0?min.z:max.z).applyMatrix4(transform);index++}}}intersectsFrustum(frustum){const{points:points}=this;const{planes:planes}=frustum;for(let i=0;i<6;i++){const plane=planes[i];let maxDistance=-Infinity;for(let j=0;j<8;j++){const v=points[j];const dist=plane.distanceToPoint(v);maxDistance=maxDistanceMath.PI/4){multiplier=-1;latPrime=lat-1e-7}const norm=this.getCartographicToNormal(lat,lon,$9160f8f2e0578e98$var$_vec).normalize();const normPrime=this.getCartographicToNormal(latPrime,lon,$9160f8f2e0578e98$var$_vec2).normalize();westTarget.crossVectors(norm,normPrime).normalize().multiplyScalar(multiplier);return target.crossVectors(westTarget,norm).normalize()}getCartographicToPosition(lat,lon,height,target){this.getCartographicToNormal(lat,lon,$9160f8f2e0578e98$var$_norm);const radius=this.radius;$9160f8f2e0578e98$var$_vec.copy($9160f8f2e0578e98$var$_norm);$9160f8f2e0578e98$var$_vec.x*=radius.x**2;$9160f8f2e0578e98$var$_vec.y*=radius.y**2;$9160f8f2e0578e98$var$_vec.z*=radius.z**2;const gamma=Math.sqrt($9160f8f2e0578e98$var$_norm.dot($9160f8f2e0578e98$var$_vec));$9160f8f2e0578e98$var$_vec.divideScalar(gamma);return target.copy($9160f8f2e0578e98$var$_vec).addScaledVector($9160f8f2e0578e98$var$_norm,height)}getPositionToCartographic(pos,target){this.getPositionToSurfacePoint(pos,$9160f8f2e0578e98$var$_vec);this.getPositionToNormal(pos,$9160f8f2e0578e98$var$_norm);const heightDelta=$9160f8f2e0578e98$var$_vec2.subVectors(pos,$9160f8f2e0578e98$var$_vec);target.lon=Math.atan2($9160f8f2e0578e98$var$_norm.y,$9160f8f2e0578e98$var$_norm.x);target.lat=Math.asin($9160f8f2e0578e98$var$_norm.z);target.height=Math.sign(heightDelta.dot(pos))*heightDelta.length();return target}getCartographicToNormal(lat,lon,target){$9160f8f2e0578e98$var$_spherical.set(1,(0,$1hGdn.latitudeToSphericalPhi)(lat),lon);target.setFromSpherical($9160f8f2e0578e98$var$_spherical).normalize();(0,$1hGdn.swapToGeoFrame)(target);return target}getPositionToNormal(pos,target){const radius=this.radius;target.copy(pos);target.x/=radius.x**2;target.y/=radius.y**2;target.z/=radius.z**2;target.normalize();return target}getPositionToSurfacePoint(pos,target){const radius=this.radius;const invRadiusSqX=1/radius.x**2;const invRadiusSqY=1/radius.y**2;const invRadiusSqZ=1/radius.z**2;const x2=pos.x*pos.x*invRadiusSqX;const y2=pos.y*pos.y*invRadiusSqY;const z2=pos.z*pos.z*invRadiusSqZ;const squaredNorm=x2+y2+z2;const ratio=Math.sqrt(1/squaredNorm);const intersection=$9160f8f2e0578e98$var$_vec.copy(pos).multiplyScalar(ratio);if(squaredNorm<$9160f8f2e0578e98$var$CENTER_EPS)return!isFinite(ratio)?null:target.copy(intersection);const gradient=$9160f8f2e0578e98$var$_vec2.set(intersection.x*invRadiusSqX*2,intersection.y*invRadiusSqY*2,intersection.z*invRadiusSqZ*2);let lambda=(1-ratio)*pos.length()/(0.5*gradient.length());let correction=0;let func,denominator;let xMultiplier,yMultiplier,zMultiplier;let xMultiplier2,yMultiplier2,zMultiplier2;let xMultiplier3,yMultiplier3,zMultiplier3;do{lambda-=correction;xMultiplier=1/(1+lambda*invRadiusSqX);yMultiplier=1/(1+lambda*invRadiusSqY);zMultiplier=1/(1+lambda*invRadiusSqZ);xMultiplier2=xMultiplier*xMultiplier;yMultiplier2=yMultiplier*yMultiplier;zMultiplier2=zMultiplier*zMultiplier;xMultiplier3=xMultiplier2*xMultiplier;yMultiplier3=yMultiplier2*yMultiplier;zMultiplier3=zMultiplier2*zMultiplier;func=x2*xMultiplier2+y2*yMultiplier2+z2*zMultiplier2-1;denominator=x2*xMultiplier3*invRadiusSqX+y2*yMultiplier3*invRadiusSqY+z2*zMultiplier3*invRadiusSqZ;const derivative=-2*denominator;correction=func/derivative}while(Math.abs(func)>$9160f8f2e0578e98$var$EPSILON12);return target.set(pos.x*xMultiplier,pos.y*yMultiplier,pos.z*zMultiplier)}}$9160f8f2e0578e98$exports.Ellipsoid=$9160f8f2e0578e98$var$Ellipsoid;const $aa7b3b269f245cbe$var$PI=Math.PI;const $aa7b3b269f245cbe$var$HALF_PI=$aa7b3b269f245cbe$var$PI/2;const $aa7b3b269f245cbe$var$_orthoX=new $5OpyM$Vector3;const $aa7b3b269f245cbe$var$_orthoY=new $5OpyM$Vector3;const $aa7b3b269f245cbe$var$_orthoZ=new $5OpyM$Vector3;const $aa7b3b269f245cbe$var$_invMatrix=new $5OpyM$Matrix4;let $aa7b3b269f245cbe$var$_poolIndex=0;const $aa7b3b269f245cbe$var$_pointsPool=[];function $aa7b3b269f245cbe$var$getVector(usePool=false){if(!usePool)return new $5OpyM$Vector3;if(!$aa7b3b269f245cbe$var$_pointsPool[$aa7b3b269f245cbe$var$_poolIndex])$aa7b3b269f245cbe$var$_pointsPool[$aa7b3b269f245cbe$var$_poolIndex]=new $5OpyM$Vector3;$aa7b3b269f245cbe$var$_poolIndex++;return $aa7b3b269f245cbe$var$_pointsPool[$aa7b3b269f245cbe$var$_poolIndex-1]}function $aa7b3b269f245cbe$var$resetPool(){$aa7b3b269f245cbe$var$_poolIndex=0}class $aa7b3b269f245cbe$var$EllipsoidRegion extends $9160f8f2e0578e98$exports.Ellipsoid{constructor(x,y,z,latStart=-$aa7b3b269f245cbe$var$HALF_PI,latEnd=$aa7b3b269f245cbe$var$HALF_PI,lonStart=0,lonEnd=2*$aa7b3b269f245cbe$var$PI,heightStart=0,heightEnd=0){super(x,y,z);this.latStart=latStart;this.latEnd=latEnd;this.lonStart=lonStart;this.lonEnd=lonEnd;this.heightStart=heightStart;this.heightEnd=heightEnd}_getPoints(usePool=false){const{latStart:latStart,latEnd:latEnd,lonStart:lonStart,lonEnd:lonEnd,heightStart:heightStart,heightEnd:heightEnd}=this;const midLat=$5OpyM$MathUtils.mapLinear(0.5,0,1,latStart,latEnd);const midLon=$5OpyM$MathUtils.mapLinear(0.5,0,1,lonStart,lonEnd);const lonOffset=Math.floor(lonStart/$aa7b3b269f245cbe$var$HALF_PI)*$aa7b3b269f245cbe$var$HALF_PI;const latlon=[[-$aa7b3b269f245cbe$var$PI/2,0],[$aa7b3b269f245cbe$var$PI/2,0],[0,lonOffset],[0,lonOffset+$aa7b3b269f245cbe$var$PI/2],[0,lonOffset+$aa7b3b269f245cbe$var$PI],[0,lonOffset+3*$aa7b3b269f245cbe$var$PI/2],[latStart,lonEnd],[latEnd,lonEnd],[latStart,lonStart],[latEnd,lonStart],[0,lonStart],[0,lonEnd],[midLat,midLon],[latStart,midLon],[latEnd,midLon],[midLat,lonStart],[midLat,lonEnd]];const target=[];const total=latlon.length;for(let z=0;z<=1;z++){const height=$5OpyM$MathUtils.mapLinear(z,0,1,heightStart,heightEnd);for(let i=0,l=total;i=latStart&&lat<=latEnd&&lon>=lonStart&&lon<=lonEnd){const v=$aa7b3b269f245cbe$var$getVector(usePool);target.push(v);this.getCartographicToPosition(lat,lon,height,v)}}}return target}getBoundingBox(box,matrix){$aa7b3b269f245cbe$var$resetPool();const{latStart:latStart,latEnd:latEnd,lonStart:lonStart,lonEnd:lonEnd}=this;const latRange=latEnd-latStart;if(latRange<$aa7b3b269f245cbe$var$PI/2){const midLat=$5OpyM$MathUtils.mapLinear(0.5,0,1,latStart,latEnd);const midLon=$5OpyM$MathUtils.mapLinear(0.5,0,1,lonStart,lonEnd);this.getCartographicToNormal(midLat,midLon,$aa7b3b269f245cbe$var$_orthoZ);$aa7b3b269f245cbe$var$_orthoY.set(0,0,1);$aa7b3b269f245cbe$var$_orthoX.crossVectors($aa7b3b269f245cbe$var$_orthoY,$aa7b3b269f245cbe$var$_orthoZ);$aa7b3b269f245cbe$var$_orthoY.crossVectors($aa7b3b269f245cbe$var$_orthoX,$aa7b3b269f245cbe$var$_orthoZ);matrix.makeBasis($aa7b3b269f245cbe$var$_orthoX,$aa7b3b269f245cbe$var$_orthoY,$aa7b3b269f245cbe$var$_orthoZ)}else{$aa7b3b269f245cbe$var$_orthoX.set(1,0,0);$aa7b3b269f245cbe$var$_orthoY.set(0,1,0);$aa7b3b269f245cbe$var$_orthoZ.set(0,0,1);matrix.makeBasis($aa7b3b269f245cbe$var$_orthoX,$aa7b3b269f245cbe$var$_orthoY,$aa7b3b269f245cbe$var$_orthoZ)}$aa7b3b269f245cbe$var$_invMatrix.copy(matrix).invert();const points=this._getPoints(true);for(let i=0,l=points.length;iobbDistance?sphereDistance:obbDistance}intersectsFrustum(frustum){const obb=this.obb||this.regionObb;const sphere=this.sphere;if(sphere&&!frustum.intersectsSphere(sphere))return false;if(obb&&!obb.intersectsFrustum(frustum))return false;return Boolean(sphere||obb)}getOBB(targetBox,targetMatrix){const obb=this.obb||this.regionObb;if(obb){targetBox.copy(obb.box);targetMatrix.copy(obb.transform)}else{this.getAABB(targetBox);targetMatrix.identity()}}getAABB(target){if(this.sphere)this.sphere.getBoundingBox(target);else{const obb=this.obb||this.regionObb;target.copy(obb.box).applyMatrix4(obb.transform)}}getSphere(target){if(this.sphere)target.copy(this.sphere);else if(this.region)this.region.getBoundingSphere(target);else{const obb=this.obb||this.regionObb;obb.box.getBoundingSphere(target);target.applyMatrix4(obb.transform)}}setObbData(data,transform){const obb=new $9e13f7da58b2928b$exports.OBB;$163be4c04da1c269$var$_vecX.set(data[3],data[4],data[5]);$163be4c04da1c269$var$_vecY.set(data[6],data[7],data[8]);$163be4c04da1c269$var$_vecZ.set(data[9],data[10],data[11]);const scaleX=$163be4c04da1c269$var$_vecX.length();const scaleY=$163be4c04da1c269$var$_vecY.length();const scaleZ=$163be4c04da1c269$var$_vecZ.length();$163be4c04da1c269$var$_vecX.normalize();$163be4c04da1c269$var$_vecY.normalize();$163be4c04da1c269$var$_vecZ.normalize();if(scaleX===0)$163be4c04da1c269$var$_vecX.crossVectors($163be4c04da1c269$var$_vecY,$163be4c04da1c269$var$_vecZ);if(scaleY===0)$163be4c04da1c269$var$_vecY.crossVectors($163be4c04da1c269$var$_vecX,$163be4c04da1c269$var$_vecZ);if(scaleZ===0)$163be4c04da1c269$var$_vecZ.crossVectors($163be4c04da1c269$var$_vecX,$163be4c04da1c269$var$_vecY);obb.transform.set($163be4c04da1c269$var$_vecX.x,$163be4c04da1c269$var$_vecY.x,$163be4c04da1c269$var$_vecZ.x,data[0],$163be4c04da1c269$var$_vecX.y,$163be4c04da1c269$var$_vecY.y,$163be4c04da1c269$var$_vecZ.y,data[1],$163be4c04da1c269$var$_vecX.z,$163be4c04da1c269$var$_vecY.z,$163be4c04da1c269$var$_vecZ.z,data[2],0,0,0,1).premultiply(transform);obb.box.min.set(-scaleX,-scaleY,-scaleZ);obb.box.max.set(scaleX,scaleY,scaleZ);obb.update();this.obb=obb}setSphereData(x,y,z,radius,transform){const sphere=new $5OpyM$Sphere;sphere.center.set(x,y,z);sphere.radius=radius;sphere.applyMatrix4(transform);this.sphere=sphere}setRegionData(west,south,east,north,minHeight,maxHeight){const region=new $aa7b3b269f245cbe$exports.EllipsoidRegion($002d29a772485791$exports.WGS84_RADIUS,$002d29a772485791$exports.WGS84_RADIUS,$002d29a772485791$exports.WGS84_HEIGHT,south,north,west,east,minHeight,maxHeight);const obb=new $9e13f7da58b2928b$exports.OBB;region.getBoundingBox(obb.box,obb.transform);obb.update();this.region=region;this.regionObb=obb}}$163be4c04da1c269$exports.TileBoundingVolume=$163be4c04da1c269$var$TileBoundingVolume;const $06d26e8e9f5361d3$var$INITIAL_FRUSTUM_CULLED=Symbol("INITIAL_FRUSTUM_CULLED");const $06d26e8e9f5361d3$var$tempMat=new $5OpyM$Matrix4;const $06d26e8e9f5361d3$var$tempMat2=new $5OpyM$Matrix4;const $06d26e8e9f5361d3$var$tempVector=new $5OpyM$Vector3;const $06d26e8e9f5361d3$var$X_AXIS=new $5OpyM$Vector3(1,0,0);const $06d26e8e9f5361d3$var$Y_AXIS=new $5OpyM$Vector3(0,1,0);function $06d26e8e9f5361d3$var$updateFrustumCulled(object,toInitialValue){object.traverse(c=>{c.frustumCulled=c[$06d26e8e9f5361d3$var$INITIAL_FRUSTUM_CULLED]&&toInitialValue})}class $06d26e8e9f5361d3$var$TilesRenderer extends $5a6f7a997885dc30$exports.TilesRendererBase{get autoDisableRendererCulling(){return this._autoDisableRendererCulling}set autoDisableRendererCulling(value){if(this._autoDisableRendererCulling!==value){super._autoDisableRendererCulling=value;this.forEachLoadedModel(scene=>{$06d26e8e9f5361d3$var$updateFrustumCulled(scene,!value)})}}constructor(...args){super(...args);this.group=new $3fcce8a4f74b2abc$exports.TilesGroup(this);this.cameras=[];this.cameraMap=new Map;this.cameraInfo=[];this.activeTiles=new Set;this.visibleTiles=new Set;this._autoDisableRendererCulling=true;this.optimizeRaycast=true;this.onLoadTileSet=null;this.onLoadModel=null;this.onDisposeModel=null;this.onTileVisibilityChange=null;const manager=new $5OpyM$LoadingManager;manager.setURLModifier(url=>{if(this.preprocessURL)return this.preprocessURL(url);else return url});this.manager=manager;const tilesRenderer=this;this._overridenRaycast=function(raycaster,intersects){if(!tilesRenderer.optimizeRaycast)Object.getPrototypeOf(this).raycast.call(this,raycaster,intersects)}}getBounds(target){if(!this.root)return false;const boundingVolume=this.root.cached.boundingVolume;if(boundingVolume){boundingVolume.getAABB(target);return true}else return true}getOrientedBounds(targetBox,targetMatrix){if(!this.root)return false;const boundingVolume=this.root.cached.boundingVolume;if(boundingVolume){boundingVolume.getOBB(targetBox,targetMatrix);return true}else return true}getBoundingSphere(target){if(!this.root)return false;const boundingVolume=this.root.cached.boundingVolume;if(boundingVolume){boundingVolume.getSphere(target);return true}else return false}forEachLoadedModel(callback){this.traverse(tile=>{const scene=tile.cached.scene;if(scene)callback(scene,tile)})}raycast(raycaster,intersects){if(!this.root)return;if(raycaster.firstHitOnly){const hit=(0,$c1ac95a1e8efcc86$exports.raycastTraverseFirstHit)(this,this.root,raycaster);if(hit)intersects.push(hit)}else(0,$c1ac95a1e8efcc86$exports.raycastTraverse)(this,this.root,raycaster,intersects)}hasCamera(camera){return this.cameraMap.has(camera)}setCamera(camera){const cameras=this.cameras;const cameraMap=this.cameraMap;if(!cameraMap.has(camera)){cameraMap.set(camera,new $5OpyM$Vector2);cameras.push(camera);return true}return false}setResolution(camera,xOrVec,y){const cameraMap=this.cameraMap;if(!cameraMap.has(camera))return false;if(xOrVec instanceof $5OpyM$Vector2)cameraMap.get(camera).copy(xOrVec);else cameraMap.get(camera).set(xOrVec,y);return true}setResolutionFromRenderer(camera,renderer){const cameraMap=this.cameraMap;if(!cameraMap.has(camera))return false;const resolution=cameraMap.get(camera);renderer.getSize(resolution);resolution.multiplyScalar(renderer.getPixelRatio());return true}deleteCamera(camera){const cameras=this.cameras;const cameraMap=this.cameraMap;if(cameraMap.has(camera)){const index=cameras.indexOf(camera);cameras.splice(index,1);cameraMap.delete(camera);return true}return false}fetchTileSet(url,...rest){const pr=super.fetchTileSet(url,...rest);pr.then(json=>{if(this.onLoadTileSet)Promise.resolve().then(()=>{this.onLoadTileSet(json,url)})});return pr}update(){const group=this.group;const cameras=this.cameras;const cameraMap=this.cameraMap;const cameraInfo=this.cameraInfo;if(cameras.length===0){console.warn("TilesRenderer: no cameras defined. Cannot update 3d tiles.");return}while(cameraInfo.length>cameras.length)cameraInfo.pop();while(cameraInfo.length1e-6)console.warn("ThreeTilesRenderer : Non uniform scale used for tile which may cause issues when calculating screen space error.");for(let i=0,l=cameraInfo.length;ires.scene);break}case"gltf":case"glb":const loader=new $29ced67d26e5c4e2$exports.GLTFExtensionLoader(manager);loader.workingPath=workingPath;loader.fetchOptions=fetchOptions;promise=loader.parse(buffer);break;default:console.warn(`TilesRenderer: Content type "${fileType}" not supported.`);promise=Promise.resolve(null);break;}return promise.then(result=>{let scene;let metadata;if(result.isObject3D){scene=result;metadata=null}else{scene=result.scene;metadata=result}if(tile._loadIndex!==loadIndex)return;scene.updateMatrix();if(fileType==="glb"||fileType==="gltf")scene.matrix.multiply(upAdjustment);scene.matrix.premultiply(cachedTransform);scene.matrix.decompose(scene.position,scene.quaternion,scene.scale);scene.traverse(c=>{c[$06d26e8e9f5361d3$var$INITIAL_FRUSTUM_CULLED]=c.frustumCulled});$06d26e8e9f5361d3$var$updateFrustumCulled(scene,!this.autoDisableRendererCulling);scene.traverse(c=>{c.raycast=this._overridenRaycast});const materials=[];const geometry=[];const textures=[];scene.traverse(c=>{if(c.geometry)geometry.push(c.geometry);if(c.material){const material=c.material;materials.push(c.material);for(const key in material){const value=material[key];if(value&&value.isTexture)textures.push(value)}}});cached.materials=materials;cached.geometry=geometry;cached.textures=textures;cached.scene=scene;cached.metadata=metadata;if(this.onLoadModel)this.onLoadModel(scene,tile)})}disposeTile(tile){const cached=tile.cached;if(cached.scene){const materials=cached.materials;const geometry=cached.geometry;const textures=cached.textures;const parent=cached.scene.parent;for(let i=0,l=geometry.length;i0.1){if($3b9225051b507460$var$_pos.z>0)$3b9225051b507460$var$_norm2.multiplyScalar(-1);normal.setXYZ(i,...$3b9225051b507460$var$_norm2)}}return geometry}class $3b9225051b507460$var$EllipsoidRegionLineHelper extends $5OpyM$LineSegments{constructor(ellipsoidRegion=new $aa7b3b269f245cbe$exports.EllipsoidRegion,color=16776960){super();this.ellipsoidRegion=ellipsoidRegion;this.material.color.set(color);this.update()}update(){const geometry=$3b9225051b507460$var$getRegionGeometry(this.ellipsoidRegion);this.geometry.dispose();this.geometry=new $5OpyM$EdgesGeometry(geometry,80)}dispose(){this.geometry.dispose();this.material.dispose()}}$3b9225051b507460$exports.EllipsoidRegionLineHelper=$3b9225051b507460$var$EllipsoidRegionLineHelper;class $3b9225051b507460$var$EllipsoidRegionHelper extends $5OpyM$Mesh{constructor(ellipsoidRegion=new $aa7b3b269f245cbe$exports.EllipsoidRegion,color=16776960){super();this.ellipsoidRegion=ellipsoidRegion;this.material.color.set(color);this.update()}update(){this.geometry.dispose();const geometry=$3b9225051b507460$var$getRegionGeometry(this.ellipsoidRegion);const{lonStart:lonStart,lonEnd:lonEnd}=this;if(lonEnd-lonStart>=2*Math.PI){geometry.groups.splice(2,2);this.geometry=$3b9225051b507460$var$toGroupGeometry(geometry)}else this.geometry=geometry}dispose(){this.geometry.dispose();this.material.dispose()}}$3b9225051b507460$exports.EllipsoidRegionHelper=$3b9225051b507460$var$EllipsoidRegionHelper;const $1909f04f34bd6630$var$ORIGINAL_MATERIAL=Symbol("ORIGINAL_MATERIAL");const $1909f04f34bd6630$var$HAS_RANDOM_COLOR=Symbol("HAS_RANDOM_COLOR");const $1909f04f34bd6630$var$HAS_RANDOM_NODE_COLOR=Symbol("HAS_RANDOM_NODE_COLOR");function $1909f04f34bd6630$var$emptyRaycast(){}const $1909f04f34bd6630$var$NONE=0;$1909f04f34bd6630$exports.NONE=$1909f04f34bd6630$var$NONE;const $1909f04f34bd6630$var$SCREEN_ERROR=1;$1909f04f34bd6630$exports.SCREEN_ERROR=$1909f04f34bd6630$var$SCREEN_ERROR;const $1909f04f34bd6630$var$GEOMETRIC_ERROR=2;$1909f04f34bd6630$exports.GEOMETRIC_ERROR=$1909f04f34bd6630$var$GEOMETRIC_ERROR;const $1909f04f34bd6630$var$DISTANCE=3;$1909f04f34bd6630$exports.DISTANCE=$1909f04f34bd6630$var$DISTANCE;const $1909f04f34bd6630$var$DEPTH=4;$1909f04f34bd6630$exports.DEPTH=$1909f04f34bd6630$var$DEPTH;const $1909f04f34bd6630$var$RELATIVE_DEPTH=5;$1909f04f34bd6630$exports.RELATIVE_DEPTH=$1909f04f34bd6630$var$RELATIVE_DEPTH;const $1909f04f34bd6630$var$IS_LEAF=6;$1909f04f34bd6630$exports.IS_LEAF=$1909f04f34bd6630$var$IS_LEAF;const $1909f04f34bd6630$var$RANDOM_COLOR=7;$1909f04f34bd6630$exports.RANDOM_COLOR=$1909f04f34bd6630$var$RANDOM_COLOR;const $1909f04f34bd6630$var$RANDOM_NODE_COLOR=8;$1909f04f34bd6630$exports.RANDOM_NODE_COLOR=$1909f04f34bd6630$var$RANDOM_NODE_COLOR;const $1909f04f34bd6630$var$CUSTOM_COLOR=9;$1909f04f34bd6630$exports.CUSTOM_COLOR=$1909f04f34bd6630$var$CUSTOM_COLOR;const $1909f04f34bd6630$var$_sphere=new $5OpyM$Sphere;class $1909f04f34bd6630$var$DebugTilesRenderer extends $06d26e8e9f5361d3$exports.TilesRenderer{constructor(...args){super(...args);const tilesGroup=this.group;const boxGroup=new $5OpyM$Group;boxGroup.name="DebugTilesRenderer.boxGroup";tilesGroup.add(boxGroup);const sphereGroup=new $5OpyM$Group;sphereGroup.name="DebugTilesRenderer.sphereGroup";tilesGroup.add(sphereGroup);const regionGroup=new $5OpyM$Group;regionGroup.name="DebugTilesRenderer.regionGroup";tilesGroup.add(regionGroup);this.displayBoxBounds=false;this.displaySphereBounds=false;this.displayRegionBounds=false;this.colorMode=$1909f04f34bd6630$var$NONE;this.customColorCallback=null;this.boxGroup=boxGroup;this.sphereGroup=sphereGroup;this.regionGroup=regionGroup;this.maxDebugDepth=-1;this.maxDebugDistance=-1;this.maxDebugError=-1;this.getDebugColor=(value,target)=>{target.setRGB(value,value,value)};this.extremeDebugDepth=-1;this.extremeDebugError=-1}initExtremes(){let maxDepth=-1;this.traverse(tile=>{maxDepth=Math.max(maxDepth,tile.__depth)});let maxError=-1;this.traverse(tile=>{maxError=Math.max(maxError,tile.geometricError)});this.extremeDebugDepth=maxDepth;this.extremeDebugError=maxError}fetchTileSet(...args){const pr=super.fetchTileSet(...args);pr.then(()=>{Promise.resolve().then(()=>{this.initExtremes()})}).catch(()=>{});return pr}getTileInformationFromActiveObject(object){let targetTile=null;const activeTiles=this.activeTiles;activeTiles.forEach(tile=>{if(targetTile)return true;const scene=tile.cached.scene;if(scene)scene.traverse(c=>{if(c===object)targetTile=tile})});if(targetTile)return{distanceToCamera:targetTile.__distanceFromCamera,geometricError:targetTile.geometricError,screenSpaceError:targetTile.__error,depth:targetTile.__depth,isLeaf:targetTile.__isLeaf};else return null}update(){super.update();if(!this.root)return;this.boxGroup.visible=this.displayBoxBounds;this.sphereGroup.visible=this.displaySphereBounds;this.regionGroup.visible=this.displayRegionBounds;let maxDepth=-1;if(this.maxDebugDepth===-1)maxDepth=this.extremeDebugDepth;else maxDepth=this.maxDebugDepth;let maxError=-1;if(this.maxDebugError===-1)maxError=this.extremeDebugError;else maxError=this.maxDebugError;let maxDistance=-1;if(this.maxDebugDistance===-1){this.root.cached.boundingVolume.getSphere($1909f04f34bd6630$var$_sphere);maxDistance=$1909f04f34bd6630$var$_sphere.radius}else maxDistance=this.maxDebugDistance;const errorTarget=this.errorTarget;const colorMode=this.colorMode;const visibleTiles=this.visibleTiles;visibleTiles.forEach(tile=>{const scene=tile.cached.scene;let h,s,l;if(colorMode===$1909f04f34bd6630$var$RANDOM_COLOR){h=Math.random();s=0.5+Math.random()*0.5;l=0.375+Math.random()*0.25}scene.traverse(c=>{if(colorMode===$1909f04f34bd6630$var$RANDOM_NODE_COLOR){h=Math.random();s=0.5+Math.random()*0.5;l=0.375+Math.random()*0.25}const currMaterial=c.material;if(currMaterial){const originalMaterial=c[$1909f04f34bd6630$var$ORIGINAL_MATERIAL];if(colorMode===$1909f04f34bd6630$var$NONE&&currMaterial!==originalMaterial){c.material.dispose();c.material=c[$1909f04f34bd6630$var$ORIGINAL_MATERIAL]}else if(colorMode!==$1909f04f34bd6630$var$NONE&&currMaterial===originalMaterial){if(c.isPoints){const pointsMaterial=new $5OpyM$PointsMaterial;pointsMaterial.size=originalMaterial.size;pointsMaterial.sizeAttenuation=originalMaterial.sizeAttenuation;c.material=pointsMaterial}else{c.material=new $5OpyM$MeshStandardMaterial;c.material.flatShading=true}}if(colorMode!==$1909f04f34bd6630$var$RANDOM_COLOR)delete c.material[$1909f04f34bd6630$var$HAS_RANDOM_COLOR];if(colorMode!==$1909f04f34bd6630$var$RANDOM_NODE_COLOR)delete c.material[$1909f04f34bd6630$var$HAS_RANDOM_NODE_COLOR];switch(colorMode){case $1909f04f34bd6630$var$DEPTH:{const val=tile.__depth/maxDepth;this.getDebugColor(val,c.material.color);break}case $1909f04f34bd6630$var$RELATIVE_DEPTH:{const val=tile.__depthFromRenderedParent/maxDepth;this.getDebugColor(val,c.material.color);break}case $1909f04f34bd6630$var$SCREEN_ERROR:{const val=tile.__error/errorTarget;if(val>1)c.material.color.setRGB(1,0,0);else this.getDebugColor(val,c.material.color);break}case $1909f04f34bd6630$var$GEOMETRIC_ERROR:{const val=Math.min(tile.geometricError/maxError,1);this.getDebugColor(val,c.material.color);break}case $1909f04f34bd6630$var$DISTANCE:{const val=Math.min(tile.__distanceFromCamera/maxDistance,1);this.getDebugColor(val,c.material.color);break}case $1909f04f34bd6630$var$IS_LEAF:if(!tile.children||tile.children.length===0)this.getDebugColor(1,c.material.color);else this.getDebugColor(0,c.material.color);break;case $1909f04f34bd6630$var$RANDOM_NODE_COLOR:if(!c.material[$1909f04f34bd6630$var$HAS_RANDOM_NODE_COLOR]){c.material.color.setHSL(h,s,l);c.material[$1909f04f34bd6630$var$HAS_RANDOM_NODE_COLOR]=true}break;case $1909f04f34bd6630$var$RANDOM_COLOR:if(!c.material[$1909f04f34bd6630$var$HAS_RANDOM_COLOR]){c.material.color.setHSL(h,s,l);c.material[$1909f04f34bd6630$var$HAS_RANDOM_COLOR]=true}break;case $1909f04f34bd6630$var$CUSTOM_COLOR:if(this.customColorCallback)this.customColorCallback(tile,c);else console.warn("DebugTilesRenderer: customColorCallback not defined");break;}}})})}setTileVisible(tile,visible){super.setTileVisible(tile,visible);const cached=tile.cached;const sphereGroup=this.sphereGroup;const boxGroup=this.boxGroup;const regionGroup=this.regionGroup;const boxHelperGroup=cached.boxHelperGroup;const sphereHelper=cached.sphereHelper;const regionHelper=cached.regionHelper;if(!visible){if(boxHelperGroup)boxGroup.remove(boxHelperGroup);if(sphereHelper)sphereGroup.remove(sphereHelper);if(regionHelper)regionGroup.remove(regionHelper)}else{if(boxHelperGroup){boxGroup.add(boxHelperGroup);boxHelperGroup.updateMatrixWorld(true)}if(sphereHelper){sphereGroup.add(sphereHelper);sphereHelper.updateMatrixWorld(true)}if(regionHelper){regionGroup.add(regionHelper);regionHelper.updateMatrixWorld(true)}}}parseTile(buffer,tile,extension){return super.parseTile(buffer,tile,extension).then(()=>{const cached=tile.cached;const scene=cached.scene;if(scene){const{sphere:sphere,obb:obb,region:region}=cached.boundingVolume;if(obb){const boxHelperGroup=new $5OpyM$Group;boxHelperGroup.name="DebugTilesRenderer.boxHelperGroup";boxHelperGroup.matrix.copy(obb.transform);boxHelperGroup.matrixAutoUpdate=false;const boxHelper=new $5OpyM$Box3Helper(obb.box,(0,$3a66585ec6f85053$exports.getIndexedRandomColor)(tile.__depth));boxHelper.raycast=$1909f04f34bd6630$var$emptyRaycast;boxHelperGroup.add(boxHelper);cached.boxHelperGroup=boxHelperGroup;if(this.visibleTiles.has(tile)&&this.displayBoxBounds){this.boxGroup.add(boxHelperGroup);boxHelperGroup.updateMatrixWorld(true)}}if(sphere){const sphereHelper=new $1cb839fa4db014d3$exports.SphereHelper(sphere,(0,$3a66585ec6f85053$exports.getIndexedRandomColor)(tile.__depth));sphereHelper.raycast=$1909f04f34bd6630$var$emptyRaycast;cached.sphereHelper=sphereHelper;if(this.visibleTiles.has(tile)&&this.displaySphereBounds){this.sphereGroup.add(sphereHelper);sphereHelper.updateMatrixWorld(true)}}if(region){const regionHelper=new $3b9225051b507460$exports.EllipsoidRegionLineHelper(region,(0,$3a66585ec6f85053$exports.getIndexedRandomColor)(tile.__depth));regionHelper.raycast=$1909f04f34bd6630$var$emptyRaycast;const sphere=new $5OpyM$Sphere;region.getBoundingSphere(sphere);regionHelper.position.copy(sphere.center);sphere.center.multiplyScalar(-1);regionHelper.geometry.translate(...sphere.center);cached.regionHelper=regionHelper;if(this.visibleTiles.has(tile)&&this.displayRegionBounds){this.regionGroup.add(regionHelper);regionHelper.updateMatrixWorld(true)}}scene.traverse(c=>{const material=c.material;if(material)c[$1909f04f34bd6630$var$ORIGINAL_MATERIAL]=material})}})}disposeTile(tile){super.disposeTile(tile);const cached=tile.cached;if(cached.boxHelperGroup){cached.boxHelperGroup.children[0].geometry.dispose();delete cached.boxHelperGroup}if(cached.sphereHelper){cached.sphereHelper.geometry.dispose();delete cached.sphereHelper}}}$1909f04f34bd6630$exports.DebugTilesRenderer=$1909f04f34bd6630$var$DebugTilesRenderer;var $cf838c15c8b009ba$var$_GeoUtils=$cf838c15c8b009ba$var$_interopRequireWildcard(parcelRequire("1hGdn"));$cf838c15c8b009ba$exports.GeoUtils=$cf838c15c8b009ba$var$_GeoUtils;var $74a95d3099be71d6$exports={};"use strict";Object.defineProperty($74a95d3099be71d6$exports,"__esModule",{value:true});$74a95d3099be71d6$exports.WGS84_ELLIPSOID=void 0;const $74a95d3099be71d6$var$WGS84_ELLIPSOID=new $9160f8f2e0578e98$exports.Ellipsoid($002d29a772485791$exports.WGS84_RADIUS,$002d29a772485791$exports.WGS84_RADIUS,$002d29a772485791$exports.WGS84_HEIGHT);$74a95d3099be71d6$exports.WGS84_ELLIPSOID=$74a95d3099be71d6$var$WGS84_ELLIPSOID;Object.keys($74a95d3099be71d6$exports).forEach(function(key){if(key==="default"||key==="__esModule")return;if(Object.prototype.hasOwnProperty.call($cf838c15c8b009ba$var$_exportNames,key))return;if(key in $cf838c15c8b009ba$exports&&$cf838c15c8b009ba$exports[key]===$74a95d3099be71d6$exports[key])return;Object.defineProperty($cf838c15c8b009ba$exports,key,{enumerable:true,get:function(){return $74a95d3099be71d6$exports[key]}})});var $e41589f0d6e8ce27$exports={};"use strict";Object.defineProperty($e41589f0d6e8ce27$exports,"__esModule",{value:true});$e41589f0d6e8ce27$exports.GoogleTilesRenderer=$e41589f0d6e8ce27$exports.DebugGoogleTilesRenderer=void 0;var $f462b5e10a0d334c$exports={};"use strict";Object.defineProperty($f462b5e10a0d334c$exports,"__esModule",{value:true});$f462b5e10a0d334c$exports.GoogleMapsTilesCredits=void 0;class $f462b5e10a0d334c$var$GoogleMapsTilesCredits{constructor(){this.creditsCount={}}_adjustCredits(line,add){const creditsCount=this.creditsCount;const tokens=line.split(/;/g);for(let i=0,l=tokens.length;iclass extends base{get ellipsoid(){return $74a95d3099be71d6$exports.WGS84_ELLIPSOID}constructor(apiKey,baseUrl=$e41589f0d6e8ce27$var$TILE_URL){super(new URL(`${baseUrl}?key=${apiKey}`).toString());this._credits=new $f462b5e10a0d334c$exports.GoogleMapsTilesCredits;this.fetchOptions.mode="cors";this.parseQueue.maxJobs=10;this.downloadQueue.maxJobs=30;this.lruCache.minSize=3000;this.lruCache.maxSize=5000;this.errorTarget=20;this.onLoadTileSet=tileset=>{let session;this.traverse(tile=>{if(tile.content&&tile.content.uri){session=new URL(tile.content.uri).searchParams.get("session");return true}return false});this.preprocessURL=uri=>{uri=new URL(uri);if(/^http/.test(uri.protocol)){uri.searchParams.append("session",session);uri.searchParams.append("key",apiKey)}return uri.toString()};this.onLoadTileSet=null};this.onTileVisibilityChange=(scene,tile,visible)=>{const copyright=tile.cached.metadata.asset.copyright||"";if(visible)this._credits.addCredits(copyright);else this._credits.removeCredits(copyright)}}getCreditsString(){return this._credits.toString()}setLatLonToYUp(lat,lon){const{ellipsoid:ellipsoid,group:group}=this;$e41589f0d6e8ce27$var$_euler.set(Math.PI/2,Math.PI/2,0);$e41589f0d6e8ce27$var$_mat.makeRotationFromEuler($e41589f0d6e8ce27$var$_euler);ellipsoid.constructLatLonFrame(lat,lon,group.matrix).multiply($e41589f0d6e8ce27$var$_mat).invert().decompose(group.position,group.quaternion,group.scale)}};const $e41589f0d6e8ce27$var$GoogleTilesRenderer=$e41589f0d6e8ce27$var$GoogleTilesRendererMixin($06d26e8e9f5361d3$exports.TilesRenderer);$e41589f0d6e8ce27$exports.GoogleTilesRenderer=$e41589f0d6e8ce27$var$GoogleTilesRenderer;const $e41589f0d6e8ce27$var$DebugGoogleTilesRenderer=$e41589f0d6e8ce27$var$GoogleTilesRendererMixin($1909f04f34bd6630$exports.DebugTilesRenderer);$e41589f0d6e8ce27$exports.DebugGoogleTilesRenderer=$e41589f0d6e8ce27$var$DebugGoogleTilesRenderer;Object.keys($e41589f0d6e8ce27$exports).forEach(function(key){if(key==="default"||key==="__esModule")return;if(Object.prototype.hasOwnProperty.call($cf838c15c8b009ba$var$_exportNames,key))return;if(key in $cf838c15c8b009ba$exports&&$cf838c15c8b009ba$exports[key]===$e41589f0d6e8ce27$exports[key])return;Object.defineProperty($cf838c15c8b009ba$exports,key,{enumerable:true,get:function(){return $e41589f0d6e8ce27$exports[key]}})});var $3b72713b91ab2ada$exports={};"use strict";Object.defineProperty($3b72713b91ab2ada$exports,"__esModule",{value:true});$3b72713b91ab2ada$exports.DebugCesiumIonTilesRenderer=$3b72713b91ab2ada$exports.CesiumIonTilesRenderer=void 0;const $3b72713b91ab2ada$var$UNLOADED=0;const $3b72713b91ab2ada$var$LOADING=1;const $3b72713b91ab2ada$var$LOADED=2;const $3b72713b91ab2ada$var$FAILED=3;const $3b72713b91ab2ada$var$CesiumIonTilesRendererMixin=base=>class extends base{constructor(ionAssetId,ionAccessToken){super();this._tokenState=$3b72713b91ab2ada$var$UNLOADED;this._ionAccessToken=ionAccessToken;this._ionAssetId=ionAssetId;this._tileSetVersion=-1;this.preprocessURL=uri=>{uri=new URL(uri);if(/^http/.test(uri.protocol)&&this._tileSetVersion!=-1)uri.searchParams.append("v",this._tileSetVersion);return uri.toString()}}update(){const state=this._tokenState;if(state===$3b72713b91ab2ada$var$UNLOADED){this._tokenState=$3b72713b91ab2ada$var$LOADING;const url=new URL(`https://api.cesium.com/v1/assets/${this._ionAssetId}/endpoint`);url.searchParams.append("access_token",this._ionAccessToken);fetch(url,{mode:"cors"}).then(res=>{if(res.ok)return res.json();else return Promise.reject(`${res.status} : ${res.statusText}`)}).then(json=>{this._tokenState=$3b72713b91ab2ada$var$LOADED;const url=new URL(json.url);this._tileSetVersion=url.searchParams.get("v");this.rootURL=url;this.fetchOptions.headers=this.fetchOptions.headers||{};this.fetchOptions.headers.Authorization=`Bearer ${json.accessToken}`}).catch(()=>{this._tokenState=$3b72713b91ab2ada$var$FAILED})}else if(state===$3b72713b91ab2ada$var$LOADED)super.update()}};const $3b72713b91ab2ada$var$CesiumIonTilesRenderer=$3b72713b91ab2ada$var$CesiumIonTilesRendererMixin($06d26e8e9f5361d3$exports.TilesRenderer);$3b72713b91ab2ada$exports.CesiumIonTilesRenderer=$3b72713b91ab2ada$var$CesiumIonTilesRenderer;const $3b72713b91ab2ada$var$DebugCesiumIonTilesRenderer=$3b72713b91ab2ada$var$CesiumIonTilesRendererMixin($1909f04f34bd6630$exports.DebugTilesRenderer);$3b72713b91ab2ada$exports.DebugCesiumIonTilesRenderer=$3b72713b91ab2ada$var$DebugCesiumIonTilesRenderer;Object.keys($3b72713b91ab2ada$exports).forEach(function(key){if(key==="default"||key==="__esModule")return;if(Object.prototype.hasOwnProperty.call($cf838c15c8b009ba$var$_exportNames,key))return;if(key in $cf838c15c8b009ba$exports&&$cf838c15c8b009ba$exports[key]===$3b72713b91ab2ada$exports[key])return;Object.defineProperty($cf838c15c8b009ba$exports,key,{enumerable:true,get:function(){return $3b72713b91ab2ada$exports[key]}})});Object.keys($002d29a772485791$exports).forEach(function(key){if(key==="default"||key==="__esModule")return;if(Object.prototype.hasOwnProperty.call($cf838c15c8b009ba$var$_exportNames,key))return;if(key in $cf838c15c8b009ba$exports&&$cf838c15c8b009ba$exports[key]===$002d29a772485791$exports[key])return;Object.defineProperty($cf838c15c8b009ba$exports,key,{enumerable:true,get:function(){return $002d29a772485791$exports[key]}})});function $cf838c15c8b009ba$var$_getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return($cf838c15c8b009ba$var$_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function $cf838c15c8b009ba$var$_interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule)return obj;if(obj===null||typeof obj!=="object"&&typeof obj!=="function")return{default:obj};var cache=$cf838c15c8b009ba$var$_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj))return cache.get(obj);var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj)if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set))Object.defineProperty(newObj,key,desc);else newObj[key]=obj[key]}newObj.default=obj;if(cache)cache.set(obj,newObj);return newObj}THREE.TDTiles=$cf838c15c8b009ba$exports});(function(){const Constants={Handedness:Object.freeze({NONE:"none",LEFT:"left",RIGHT:"right"}),ComponentState:Object.freeze({DEFAULT:"default",TOUCHED:"touched",PRESSED:"pressed"}),ComponentProperty:Object.freeze({BUTTON:"button",X_AXIS:"xAxis",Y_AXIS:"yAxis",STATE:"state"}),ComponentType:Object.freeze({TRIGGER:"trigger",SQUEEZE:"squeeze",TOUCHPAD:"touchpad",THUMBSTICK:"thumbstick",BUTTON:"button"}),ButtonTouchThreshold:0.05,AxisTouchThreshold:0.1,VisualResponseProperty:Object.freeze({TRANSFORM:"transform",VISIBILITY:"visibility"})};async function fetchJsonFile(path){const response=await fetch(path);if(!response.ok){throw new Error(response.statusText)}else{return response.json()}}async function fetchProfilesList(basePath){if(!basePath){throw new Error("No basePath supplied")}const profileListFileName="profilesList.json";const profilesList=await fetchJsonFile(`${basePath}/${profileListFileName}`);return profilesList}async function fetchProfile(xrInputSource,basePath,defaultProfile=null,getAssetPath=true){if(!xrInputSource){throw new Error("No xrInputSource supplied")}if(!basePath){throw new Error("No basePath supplied")}const supportedProfilesList=await fetchProfilesList(basePath);let match;xrInputSource.profiles.some(profileId=>{const supportedProfile=supportedProfilesList[profileId];if(supportedProfile){match={profileId,profilePath:`${basePath}/${supportedProfile.path}`,deprecated:!!supportedProfile.deprecated}}return!!match});if(!match){if(!defaultProfile){throw new Error("No matching profile name found")}const supportedProfile=supportedProfilesList[defaultProfile];if(!supportedProfile){throw new Error(`No matching profile name found and default profile "${defaultProfile}" missing.`)}match={profileId:defaultProfile,profilePath:`${basePath}/${supportedProfile.path}`,deprecated:!!supportedProfile.deprecated}}const profile=await fetchJsonFile(match.profilePath);let assetPath;if(getAssetPath){let layout;if(xrInputSource.handedness==="any"){layout=profile.layouts[Object.keys(profile.layouts)[0]]}else{layout=profile.layouts[xrInputSource.handedness]}if(!layout){throw new Error(`No matching handedness, ${xrInputSource.handedness}, in profile ${match.profileId}`)}if(layout.assetPath){assetPath=match.profilePath.replace("profile.json",layout.assetPath)}}return{profile,assetPath}}const defaultComponentValues={xAxis:0,yAxis:0,button:0,state:Constants.ComponentState.DEFAULT};function normalizeAxes(x=0,y=0){let xAxis=x;let yAxis=y;const hypotenuse=Math.sqrt(x*x+y*y);if(hypotenuse>1){const theta=Math.atan2(y,x);xAxis=Math.cos(theta);yAxis=Math.sin(theta)}const result={normalizedXAxis:xAxis*0.5+0.5,normalizedYAxis:yAxis*0.5+0.5};return result}class VisualResponse{constructor(visualResponseDescription){this.componentProperty=visualResponseDescription.componentProperty;this.states=visualResponseDescription.states;this.valueNodeName=visualResponseDescription.valueNodeName;this.valueNodeProperty=visualResponseDescription.valueNodeProperty;if(this.valueNodeProperty===Constants.VisualResponseProperty.TRANSFORM){this.minNodeName=visualResponseDescription.minNodeName;this.maxNodeName=visualResponseDescription.maxNodeName}this.value=0;this.updateFromComponent(defaultComponentValues)}updateFromComponent({xAxis,yAxis,button,state}){const{normalizedXAxis,normalizedYAxis}=normalizeAxes(xAxis,yAxis);switch(this.componentProperty){case Constants.ComponentProperty.X_AXIS:this.value=this.states.includes(state)?normalizedXAxis:0.5;break;case Constants.ComponentProperty.Y_AXIS:this.value=this.states.includes(state)?normalizedYAxis:0.5;break;case Constants.ComponentProperty.BUTTON:this.value=this.states.includes(state)?button:0;break;case Constants.ComponentProperty.STATE:if(this.valueNodeProperty===Constants.VisualResponseProperty.VISIBILITY){this.value=this.states.includes(state)}else{this.value=this.states.includes(state)?1:0}break;default:throw new Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`);}}}class Component{constructor(componentId,componentDescription){if(!componentId||!componentDescription||!componentDescription.visualResponses||!componentDescription.gamepadIndices||Object.keys(componentDescription.gamepadIndices).length===0){throw new Error("Invalid arguments supplied")}this.id=componentId;this.type=componentDescription.type;this.rootNodeName=componentDescription.rootNodeName;this.touchPointNodeName=componentDescription.touchPointNodeName;this.visualResponses={};Object.keys(componentDescription.visualResponses).forEach(responseName=>{const visualResponse=new VisualResponse(componentDescription.visualResponses[responseName]);this.visualResponses[responseName]=visualResponse});this.gamepadIndices=Object.assign({},componentDescription.gamepadIndices);this.values={state:Constants.ComponentState.DEFAULT,button:this.gamepadIndices.button!==undefined?0:undefined,xAxis:this.gamepadIndices.xAxis!==undefined?0:undefined,yAxis:this.gamepadIndices.yAxis!==undefined?0:undefined}}get data(){const data={id:this.id,...this.values};return data}updateFromGamepad(gamepad){this.values.state=Constants.ComponentState.DEFAULT;if(this.gamepadIndices.button!==undefined&&gamepad.buttons.length>this.gamepadIndices.button){const gamepadButton=gamepad.buttons[this.gamepadIndices.button];this.values.button=gamepadButton.value;this.values.button=this.values.button<0?0:this.values.button;this.values.button=this.values.button>1?1:this.values.button;if(gamepadButton.pressed||this.values.button===1){this.values.state=Constants.ComponentState.PRESSED}else if(gamepadButton.touched||this.values.button>Constants.ButtonTouchThreshold){this.values.state=Constants.ComponentState.TOUCHED}}if(this.gamepadIndices.xAxis!==undefined&&gamepad.axes.length>this.gamepadIndices.xAxis){this.values.xAxis=gamepad.axes[this.gamepadIndices.xAxis];this.values.xAxis=this.values.xAxis<-1?-1:this.values.xAxis;this.values.xAxis=this.values.xAxis>1?1:this.values.xAxis;if(this.values.state===Constants.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>Constants.AxisTouchThreshold){this.values.state=Constants.ComponentState.TOUCHED}}if(this.gamepadIndices.yAxis!==undefined&&gamepad.axes.length>this.gamepadIndices.yAxis){this.values.yAxis=gamepad.axes[this.gamepadIndices.yAxis];this.values.yAxis=this.values.yAxis<-1?-1:this.values.yAxis;this.values.yAxis=this.values.yAxis>1?1:this.values.yAxis;if(this.values.state===Constants.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>Constants.AxisTouchThreshold){this.values.state=Constants.ComponentState.TOUCHED}}Object.values(this.visualResponses).forEach(visualResponse=>{visualResponse.updateFromComponent(this.values)})}}class MotionController{constructor(xrInputSource,profile,assetUrl){if(!xrInputSource){throw new Error("No xrInputSource supplied")}if(!profile){throw new Error("No profile supplied")}this.xrInputSource=xrInputSource;this.assetUrl=assetUrl;this.id=profile.profileId;this.layoutDescription=profile.layouts[xrInputSource.handedness];this.components={};Object.keys(this.layoutDescription.components).forEach(componentId=>{const componentDescription=this.layoutDescription.components[componentId];this.components[componentId]=new Component(componentId,componentDescription)});this.updateFromGamepad()}get gripSpace(){return this.xrInputSource.gripSpace}get targetRaySpace(){return this.xrInputSource.targetRaySpace}get data(){const data=[];Object.values(this.components).forEach(component=>{data.push(component.data)});return data}updateFromGamepad(){Object.values(this.components).forEach(component=>{component.updateFromGamepad(this.xrInputSource.gamepad)})}}THREE.MontionControllers={};THREE.MontionControllers.Constants=Constants;THREE.MontionControllers.MotionController=MotionController;THREE.MontionControllers.fetchProfile=fetchProfile;THREE.MontionControllers.fetchProfilesList=fetchProfilesList})();(function(){var Mesh=THREE.Mesh,MeshBasicMaterial=THREE.MeshBasicMaterial,Object3D=THREE.Object3D,SphereGeometry=THREE.SphereGeometry;var GLTFLoader=THREE.GLTFLoader;var MotionControllerConstants=THREE.MontionControllers.Constants,fetchProfile=THREE.MontionControllers.fetchProfile,MotionController=THREE.MontionControllers.MotionController;const DEFAULT_PROFILES_PATH="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles";const DEFAULT_PROFILE="generic-trigger";class XRControllerModel extends Object3D{constructor(){super();this.motionController=null;this.envMap=null}setEnvironmentMap(envMap){if(this.envMap==envMap){return this}this.envMap=envMap;this.traverse(child=>{if(child.isMesh){child.material.envMap=this.envMap;child.material.needsUpdate=true}});return this}updateMatrixWorld(force){super.updateMatrixWorld(force);if(!this.motionController)return;this.motionController.updateFromGamepad();Object.values(this.motionController.components).forEach(component=>{Object.values(component.visualResponses).forEach(visualResponse=>{const{valueNode,minNode,maxNode,value,valueNodeProperty}=visualResponse;if(!valueNode)return;if(valueNodeProperty===MotionControllerConstants.VisualResponseProperty.VISIBILITY){valueNode.visible=value}else if(valueNodeProperty===MotionControllerConstants.VisualResponseProperty.TRANSFORM){valueNode.quaternion.slerpQuaternions(minNode.quaternion,maxNode.quaternion,value);valueNode.position.lerpVectors(minNode.position,maxNode.position,value)}})})}}function findNodes(motionController,scene){Object.values(motionController.components).forEach(component=>{const{type,touchPointNodeName,visualResponses}=component;if(type===MotionControllerConstants.ComponentType.TOUCHPAD){component.touchPointNode=scene.getObjectByName(touchPointNodeName);if(component.touchPointNode){const sphereGeometry=new SphereGeometry(0.001);const material=new MeshBasicMaterial({color:255});const sphere=new Mesh(sphereGeometry,material);component.touchPointNode.add(sphere)}else{console.warn(`Could not find touch dot, ${component.touchPointNodeName}, in touchpad component ${component.id}`)}}Object.values(visualResponses).forEach(visualResponse=>{const{valueNodeName,minNodeName,maxNodeName,valueNodeProperty}=visualResponse;if(valueNodeProperty===MotionControllerConstants.VisualResponseProperty.TRANSFORM){visualResponse.minNode=scene.getObjectByName(minNodeName);visualResponse.maxNode=scene.getObjectByName(maxNodeName);if(!visualResponse.minNode){console.warn(`Could not find ${minNodeName} in the model`);return}if(!visualResponse.maxNode){console.warn(`Could not find ${maxNodeName} in the model`);return}}visualResponse.valueNode=scene.getObjectByName(valueNodeName);if(!visualResponse.valueNode){console.warn(`Could not find ${valueNodeName} in the model`)}})})}function addAssetSceneToControllerModel(controllerModel,scene){findNodes(controllerModel.motionController,scene);if(controllerModel.envMap){scene.traverse(child=>{if(child.isMesh){child.material.envMap=controllerModel.envMap;child.material.needsUpdate=true}})}controllerModel.add(scene)}class XRControllerModelFactory{constructor(gltfLoader=null){this.gltfLoader=gltfLoader;this.path=DEFAULT_PROFILES_PATH;this._assetCache={};if(!this.gltfLoader){this.gltfLoader=new GLTFLoader}this}createControllerModel(controller,profiles=null){const controllerModel=new XRControllerModel;let scene=null;controller.addEventListener("connected",event=>{const xrInputSource=event.data;const profileInfo={profiles:profiles&&profiles(xrInputSource)||xrInputSource.profiles,handedness:xrInputSource.handedness};if(xrInputSource.targetRayMode!=="tracked-pointer"||!xrInputSource.gamepad)return;fetchProfile(profileInfo,this.path,DEFAULT_PROFILE).then(({profile,assetPath})=>{controllerModel.motionController=new MotionController(xrInputSource,profile,assetPath);const cachedAsset=this._assetCache[controllerModel.motionController.assetUrl];if(cachedAsset){scene=cachedAsset.scene.clone();addAssetSceneToControllerModel(controllerModel,scene);setTimeout(function(){controllerModel.dispatchEvent({type:"loaded"})},0)}else{if(!this.gltfLoader){throw new Error("GLTFLoader not set.")}this.gltfLoader.setPath("");this.gltfLoader.load(controllerModel.motionController.assetUrl,asset=>{this._assetCache[controllerModel.motionController.assetUrl]=asset;scene=asset.scene.clone();addAssetSceneToControllerModel(controllerModel,scene);controllerModel.dispatchEvent({type:"loaded"})},null,()=>{throw new Error(`Asset ${controllerModel.motionController.assetUrl} missing or malformed.`)})}}).catch(err=>{console.warn(err)})});controller.addEventListener("disconnected",()=>{controllerModel.motionController=null;controllerModel.remove(scene);scene=null});return controllerModel}}THREE.XRControllerModelFactory=XRControllerModelFactory})();(function(){const DepthLimitedBlurShader={defines:{"KERNEL_RADIUS":4,"DEPTH_PACKING":1,"PERSPECTIVE_CAMERA":1},uniforms:{"tDiffuse":{value:null},"size":{value:new THREE.Vector2(512,512)},"sampleUvOffsets":{value:[new THREE.Vector2(0,0)]},"sampleWeights":{value:[1]},"tDepth":{value:null},"cameraNear":{value:10},"cameraFar":{value:1000},"depthCutoff":{value:10}},vertexShader:` #include uniform vec2 size; varying vec2 vUv; varying vec2 vInvSize; void main() { vUv = uv; vInvSize = 1.0 / size; gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); }`,fragmentShader:` #include #include uniform sampler2D tDiffuse; uniform sampler2D tDepth; uniform float cameraNear; uniform float cameraFar; uniform float depthCutoff; uniform vec2 sampleUvOffsets[ KERNEL_RADIUS + 1 ]; uniform float sampleWeights[ KERNEL_RADIUS + 1 ]; varying vec2 vUv; varying vec2 vInvSize; float getDepth( const in vec2 screenPosition ) { #if DEPTH_PACKING == 1 return unpackRGBAToDepth( texture2D( tDepth, screenPosition ) ); #else return texture2D( tDepth, screenPosition ).x; #endif } float getViewZ( const in float depth ) { #if PERSPECTIVE_CAMERA == 1 return perspectiveDepthToViewZ( depth, cameraNear, cameraFar ); #else return orthographicDepthToViewZ( depth, cameraNear, cameraFar ); #endif } void main() { float depth = getDepth( vUv ); if( depth >= ( 1.0 - EPSILON ) ) { discard; } float centerViewZ = -getViewZ( depth ); bool rBreak = false, lBreak = false; float weightSum = sampleWeights[0]; vec4 diffuseSum = texture2D( tDiffuse, vUv ) * weightSum; for( int i = 1; i <= KERNEL_RADIUS; i ++ ) { float sampleWeight = sampleWeights[i]; vec2 sampleUvOffset = sampleUvOffsets[i] * vInvSize; vec2 sampleUv = vUv + sampleUvOffset; float viewZ = -getViewZ( getDepth( sampleUv ) ); if( abs( viewZ - centerViewZ ) > depthCutoff ) rBreak = true; if( ! rBreak ) { diffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight; weightSum += sampleWeight; } sampleUv = vUv - sampleUvOffset; viewZ = -getViewZ( getDepth( sampleUv ) ); if( abs( viewZ - centerViewZ ) > depthCutoff ) lBreak = true; if( ! lBreak ) { diffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight; weightSum += sampleWeight; } } gl_FragColor = diffuseSum / weightSum; }`};const BlurShaderUtils={createSampleWeights:function(kernelRadius,stdDev){const weights=[];for(let i=0;i<=kernelRadius;i++){weights.push(gaussian(i,stdDev))}return weights},createSampleOffsets:function(kernelRadius,uvIncrement){const offsets=[];for(let i=0;i<=kernelRadius;i++){offsets.push(uvIncrement.clone().multiplyScalar(i))}return offsets},configure:function(material,kernelRadius,stdDev,uvIncrement){material.defines["KERNEL_RADIUS"]=kernelRadius;material.uniforms["sampleUvOffsets"].value=BlurShaderUtils.createSampleOffsets(kernelRadius,uvIncrement);material.uniforms["sampleWeights"].value=BlurShaderUtils.createSampleWeights(kernelRadius,stdDev);material.needsUpdate=true}};function gaussian(x,stdDev){return Math.exp(-(x*x)/(2*(stdDev*stdDev)))/(Math.sqrt(2*Math.PI)*stdDev)}THREE.BlurShaderUtils=BlurShaderUtils;THREE.DepthLimitedBlurShader=DepthLimitedBlurShader})();(function(){class EffectComposer{constructor(renderer,renderTarget){this.renderer=renderer;if(renderTarget===undefined){const size=renderer.getSize(new THREE.Vector2);this._pixelRatio=renderer.getPixelRatio();this._width=size.width;this._height=size.height;renderTarget=new THREE.WebGLRenderTarget(this._width*this._pixelRatio,this._height*this._pixelRatio);renderTarget.texture.name="EffectComposer.rt1"}else{this._pixelRatio=1;this._width=renderTarget.width;this._height=renderTarget.height}this.renderTarget1=renderTarget;this.renderTarget2=renderTarget.clone();this.renderTarget2.texture.name="EffectComposer.rt2";this.writeBuffer=this.renderTarget1;this.readBuffer=this.renderTarget2;this.renderToScreen=true;this.passes=[];if(THREE.CopyShader===undefined){console.error("THREE.EffectComposer relies on THREE.CopyShader")}if(THREE.ShaderPass===undefined){console.error("THREE.EffectComposer relies on THREE.ShaderPass")}this.copyPass=new THREE.ShaderPass(THREE.CopyShader);this.clock=new THREE.Clock}swapBuffers(){const tmp=this.readBuffer;this.readBuffer=this.writeBuffer;this.writeBuffer=tmp}addPass(pass){this.passes.push(pass);pass.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(pass,index){this.passes.splice(index,0,pass);pass.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(pass){const index=this.passes.indexOf(pass);if(index!==-1){this.passes.splice(index,1)}}isLastEnabledPass(passIndex){for(let i=passIndex+1;i 0.; // . 1 . // 0 0 0 // . 1 . // 45 deg edge detection and corners of objects, aka V/H contrast is too similar if( abs( relativeVContrast ) < .3 ) { // locate the edge vec2 dirToEdge; dirToEdge.x = contrastE > contrastW ? 1. : -1.; dirToEdge.y = contrastS > contrastN ? 1. : -1.; // . 2 . . 1 . // 1 0 2 ~= 0 0 1 // . 1 . . 0 . // tap 2 pixels and see which ones are "outside" the edge, to // determine if the edge is vertical or horizontal vec4 rgbaAlongH = FxaaTexOff(tex, posM, vec2( dirToEdge.x, -dirToEdge.y ), fxaaQualityRcpFrame.xy); float matchAlongH = contrast( rgbaM, rgbaAlongH ); // . 1 . // 0 0 1 // . 0 H vec4 rgbaAlongV = FxaaTexOff(tex, posM, vec2( -dirToEdge.x, dirToEdge.y ), fxaaQualityRcpFrame.xy); float matchAlongV = contrast( rgbaM, rgbaAlongV ); // V 1 . // 0 0 1 // . 0 . relativeVContrast = matchAlongV - matchAlongH; relativeVContrast *= fxaaQualityinvEdgeThreshold; if( abs( relativeVContrast ) < .3 ) { // 45 deg edge // 1 1 . // 0 0 1 // . 0 1 // do a simple blur return mix( rgbaM, (rgbaN + rgbaS + rgbaE + rgbaW) * .25, .4 ); } horzSpan = relativeVContrast > 0.; } if(!horzSpan) rgbaN = rgbaW; if(!horzSpan) rgbaS = rgbaE; // . 0 . 1 // 1 0 1 -> 0 // . 0 . 1 bool pairN = contrast( rgbaM, rgbaN ) > contrast( rgbaM, rgbaS ); if(!pairN) rgbaN = rgbaS; vec2 offNP; offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x; offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y; bool doneN = false; bool doneP = false; float nDist = 0.; float pDist = 0.; vec2 posN = posM; vec2 posP = posM; int iterationsUsed = 0; int iterationsUsedN = 0; int iterationsUsedP = 0; for( int i = 0; i < NUM_SAMPLES; i++ ) { iterationsUsed = i; float increment = float(i + 1); if(!doneN) { nDist += increment; posN = posM + offNP * nDist; vec4 rgbaEndN = FxaaTexTop(tex, posN.xy); doneN = contrast( rgbaEndN, rgbaM ) > contrast( rgbaEndN, rgbaN ); iterationsUsedN = i; } if(!doneP) { pDist += increment; posP = posM - offNP * pDist; vec4 rgbaEndP = FxaaTexTop(tex, posP.xy); doneP = contrast( rgbaEndP, rgbaM ) > contrast( rgbaEndP, rgbaN ); iterationsUsedP = i; } if(doneN || doneP) break; } if ( !doneP && !doneN ) return rgbaM; // failed to find end of edge float dist = min( doneN ? float( iterationsUsedN ) / float( NUM_SAMPLES - 1 ) : 1., doneP ? float( iterationsUsedP ) / float( NUM_SAMPLES - 1 ) : 1. ); // hacky way of reduces blurriness of mostly diagonal edges // but reduces AA quality dist = pow(dist, .5); dist = 1. - dist; return mix( rgbaM, rgbaN, dist * .5 ); } void main() { const float edgeDetectionQuality = .2; const float invEdgeDetectionQuality = 1. / edgeDetectionQuality; gl_FragColor = FxaaPixelShader( vUv, tDiffuse, resolution, edgeDetectionQuality, // [0,1] contrast needed, otherwise early discard invEdgeDetectionQuality ); } `};THREE.FXAAShader=FXAAShader})();(function(){const GammaCorrectionShader={uniforms:{"tDiffuse":{value:null}},vertexShader:` varying vec2 vUv; void main() { vUv = uv; gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); }`,fragmentShader:` uniform sampler2D tDiffuse; varying vec2 vUv; void main() { vec4 tex = texture2D( tDiffuse, vUv ); gl_FragColor = sRGBTransferOETF( tex ); }`};THREE.GammaCorrectionShader=GammaCorrectionShader})();(function(require){class CustomRenderPass extends THREE.Pass{constructor(renderCallback){super();this.renderCallback=renderCallback;this.scene=null;this.camera=null;this.clear=true;this.clearDepth=false;this.needsSwap=false}render(renderer,writeBuffer,readBuffer,delta,maskActive){var oldAutoClear=renderer.autoClear;renderer.autoClear=false;this.renderCallback(renderer,this.scene,this.camera,this.renderToScreen?null:readBuffer,this.clear);renderer.autoClear=oldAutoClear}}THREE.CustomRenderPass=CustomRenderPass})();(function(){class MaskPass extends THREE.Pass{constructor(scene,camera){super();this.scene=scene;this.camera=camera;this.clear=true;this.needsSwap=false;this.inverse=false}render(renderer,writeBuffer,readBuffer){const context=renderer.getContext();const state=renderer.state;state.buffers.color.setMask(false);state.buffers.depth.setMask(false);state.buffers.color.setLocked(true);state.buffers.depth.setLocked(true);let writeValue,clearValue;if(this.inverse){writeValue=0;clearValue=1}else{writeValue=1;clearValue=0}state.buffers.stencil.setTest(true);state.buffers.stencil.setOp(context.REPLACE,context.REPLACE,context.REPLACE);state.buffers.stencil.setFunc(context.ALWAYS,writeValue,4294967295);state.buffers.stencil.setClear(clearValue);state.buffers.stencil.setLocked(true);renderer.setRenderTarget(readBuffer);if(this.clear)renderer.clear();renderer.render(this.scene,this.camera);renderer.setRenderTarget(writeBuffer);if(this.clear)renderer.clear();renderer.render(this.scene,this.camera);state.buffers.color.setLocked(false);state.buffers.depth.setLocked(false);state.buffers.stencil.setLocked(false);state.buffers.stencil.setFunc(context.EQUAL,1,4294967295);state.buffers.stencil.setOp(context.KEEP,context.KEEP,context.KEEP);state.buffers.stencil.setLocked(true)}}class ClearMaskPass extends THREE.Pass{constructor(){super();this.needsSwap=false}render(renderer){renderer.state.buffers.stencil.setLocked(false);renderer.state.buffers.stencil.setTest(false)}}THREE.ClearMaskPass=ClearMaskPass;THREE.MaskPass=MaskPass})();(function(){var vertexShader=["varying vec2 vUv;","void main() {"," gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );"," vUv = uv;","}"].join("\n");var fragmentShader=["varying vec2 vUv;","uniform sampler2D tDepth;","uniform sampler2D tColor;","uniform mat4 inverseProjectionMatrix;","uniform float near;","uniform float far;","uniform float depthLimit;","uniform mat4 clipToWorldMatrix;","uniform mat4 previousWorldToClipMatrix;","uniform vec3 cameraMove; ","uniform float velocityFactor;","uniform float delta;","void main() {"," float zOverW = texture2D(tDepth, vUv).x;"," vec4 clipPosition = vec4(vUv.x * 2. - 1., vUv.y * 2. - 1., zOverW * 2. - 1., 1.);"," vec4 cameraSpacePosition = inverseProjectionMatrix * clipPosition;"," cameraSpacePosition /= cameraSpacePosition.w;"," float depth = -(cameraSpacePosition.z - near) / (far - near);"," if (depth > depthLimit)"," {"," gl_FragColor = texture2D(tColor, vUv);"," return;"," }"," vec4 worldPosition = clipToWorldMatrix * clipPosition;"," worldPosition /= worldPosition.w;"," vec4 previousClipPosition = worldPosition;"," previousClipPosition.xyz -= cameraMove * ("," 1. - smoothstep(.3, 1., clamp(length(clipPosition.xy), 0., 1.))"," );"," previousClipPosition = previousWorldToClipMatrix * previousClipPosition;"," previousClipPosition /= previousClipPosition.w;"," vec2 velocity = velocityFactor * (clipPosition - previousClipPosition).xy / delta * 16.67;"," vec4 finalColor = vec4(0.);"," vec2 offset = vec2(0.);"," float weight = 0.;"," for(int i = 0; i < SAMPLE_COUNT; i++) {"," offset = velocity * (float(i) / (float(SAMPLE_COUNT) - 1.) - .5);"," vec4 c = texture2D(tColor, vUv + offset);"," finalColor += c;"," }"," finalColor /= float(SAMPLE_COUNT);"," gl_FragColor = vec4(finalColor.rgb, 1.);","}"].join("\n");var uniforms={"tDepth":{type:"t",value:null},"tColor":{type:"t",value:null},"velocityFactor":{type:"f",value:1},"delta":{type:"f",value:16.67},"inverseProjectionMatrix":{type:"m4",value:new THREE.Matrix4},"clipToWorldMatrix":{type:"m4",value:new THREE.Matrix4},"previousWorldToClipMatrix":{type:"m4",value:new THREE.Matrix4},"cameraMove":{type:"v3",value:new THREE.Vector3},"near":{type:"f",value:1},"far":{type:"f",value:1000},"depthLimit":{type:"f",value:0.99}};class MotionBlurPass extends THREE.Pass{constructor(sampleCount){super();this._sampleCount=sampleCount;this.uniforms=THREE.UniformsUtils.clone(uniforms);this.material=new THREE.ShaderMaterial({defines:{},uniforms:this.uniforms,vertexShader:vertexShader,fragmentShader:"#define SAMPLE_COUNT "+sampleCount+"\n"+fragmentShader});this.fsQuad=new THREE.FullScreenQuad(this.material)}getSampleCount(){return this._sampleCount}render(renderer,writeBuffer,readBuffer,deltaTime,maskActive){this.uniforms["tColor"].value=readBuffer.texture;this.uniforms["tDepth"].value=readBuffer.depthTexture;this.fsQuad.material=this.material;if(this.renderToScreen){renderer.setRenderTarget(null);this.fsQuad.render(renderer)}else{renderer.setRenderTarget(writeBuffer);if(this.clear)renderer.clear(renderer.autoClearColor,renderer.autoClearDepth,renderer.autoClearStencil);this.fsQuad.render(renderer)}}dispose(){this.fsQuad.dispose();this.material.dispose()}};THREE.MotionBlurPass=MotionBlurPass})();(function(){class RenderPass extends THREE.Pass{constructor(scene,camera,overrideMaterial,clearColor,clearAlpha){super();this.scene=scene;this.camera=camera;this.overrideMaterial=overrideMaterial;this.clearColor=clearColor;this.clearAlpha=clearAlpha!==undefined?clearAlpha:0;this.clear=true;this.clearDepth=false;this.needsSwap=false;this._oldClearColor=new THREE.Color}render(renderer,writeBuffer,readBuffer){const oldAutoClear=renderer.autoClear;renderer.autoClear=false;let oldClearAlpha,oldOverrideMaterial;if(this.overrideMaterial!==undefined){oldOverrideMaterial=this.scene.overrideMaterial;this.scene.overrideMaterial=this.overrideMaterial}if(this.clearColor){renderer.getClearColor(this._oldClearColor);oldClearAlpha=renderer.getClearAlpha();renderer.setClearColor(this.clearColor,this.clearAlpha)}if(this.clearDepth){renderer.clearDepth()}renderer.setRenderTarget(this.renderToScreen?null:readBuffer);if(this.clear)renderer.clear(renderer.autoClearColor,renderer.autoClearDepth,renderer.autoClearStencil);renderer.render(this.scene,this.camera);if(this.clearColor){renderer.setClearColor(this._oldClearColor,oldClearAlpha)}if(this.overrideMaterial!==undefined){this.scene.overrideMaterial=oldOverrideMaterial}renderer.autoClear=oldAutoClear}}THREE.RenderPass=RenderPass})();(function(){class SAOPass extends THREE.Pass{constructor(scene,camera,useDepthTexture=false,useNormals=false,resolution=new THREE.Vector2(256,256)){super();this.scene=scene;this.camera=camera;this.clear=true;this.needsSwap=false;this.supportsDepthTextureExtension=useDepthTexture;this.supportsNormalTexture=useNormals;this.originalClearColor=new THREE.Color;this._oldClearColor=new THREE.Color;this.oldClearAlpha=1;this.params={output:0,saoBias:0.5,saoIntensity:0.18,saoScale:1,saoKernelRadius:100,saoMinResolution:0,saoBlur:true,saoBlurRadius:8,saoBlurStdDev:4,saoBlurDepthCutoff:0.01};this.resolution=new THREE.Vector2(resolution.x,resolution.y);this.saoRenderTarget=new THREE.WebGLRenderTarget(this.resolution.x,this.resolution.y);this.blurIntermediateRenderTarget=this.saoRenderTarget.clone();this.beautyRenderTarget=this.saoRenderTarget.clone();this.normalRenderTarget=new THREE.WebGLRenderTarget(this.resolution.x,this.resolution.y,{minFilter:THREE.NearestFilter,magFilter:THREE.NearestFilter});this.depthRenderTarget=this.normalRenderTarget.clone();let depthTexture;if(this.supportsDepthTextureExtension){depthTexture=new THREE.DepthTexture;depthTexture.type=THREE.UnsignedShortType;this.beautyRenderTarget.depthTexture=depthTexture;this.beautyRenderTarget.depthBuffer=true}this.depthMaterial=new THREE.MeshDepthMaterial;this.depthMaterial.depthPacking=THREE.RGBADepthPacking;this.depthMaterial.blending=THREE.NoBlending;this.normalMaterial=new THREE.MeshNormalMaterial;this.normalMaterial.blending=THREE.NoBlending;if(THREE.SAOShader===undefined){console.error("THREE.SAOPass relies on THREE.SAOShader")}this.saoMaterial=new THREE.ShaderMaterial({defines:Object.assign({},THREE.SAOShader.defines),fragmentShader:THREE.SAOShader.fragmentShader,vertexShader:THREE.SAOShader.vertexShader,uniforms:THREE.UniformsUtils.clone(THREE.SAOShader.uniforms)});this.saoMaterial.extensions.derivatives=true;this.saoMaterial.defines["DEPTH_PACKING"]=this.supportsDepthTextureExtension?0:1;this.saoMaterial.defines["NORMAL_TEXTURE"]=this.supportsNormalTexture?1:0;this.saoMaterial.defines["PERSPECTIVE_CAMERA"]=this.camera.isPerspectiveCamera?1:0;this.saoMaterial.uniforms["tDepth"].value=this.supportsDepthTextureExtension?depthTexture:this.depthRenderTarget.texture;this.saoMaterial.uniforms["tNormal"].value=this.normalRenderTarget.texture;this.saoMaterial.uniforms["size"].value.set(this.resolution.x,this.resolution.y);this.saoMaterial.uniforms["cameraInverseProjectionMatrix"].value.copy(this.camera.projectionMatrixInverse);this.saoMaterial.uniforms["cameraProjectionMatrix"].value=this.camera.projectionMatrix;this.saoMaterial.blending=THREE.NoBlending;if(THREE.DepthLimitedBlurShader===undefined){console.error("THREE.SAOPass relies on THREE.DepthLimitedBlurShader")}this.vBlurMaterial=new THREE.ShaderMaterial({uniforms:THREE.UniformsUtils.clone(THREE.DepthLimitedBlurShader.uniforms),defines:Object.assign({},THREE.DepthLimitedBlurShader.defines),vertexShader:THREE.DepthLimitedBlurShader.vertexShader,fragmentShader:THREE.DepthLimitedBlurShader.fragmentShader});this.vBlurMaterial.defines["DEPTH_PACKING"]=this.supportsDepthTextureExtension?0:1;this.vBlurMaterial.defines["PERSPECTIVE_CAMERA"]=this.camera.isPerspectiveCamera?1:0;this.vBlurMaterial.uniforms["tDiffuse"].value=this.saoRenderTarget.texture;this.vBlurMaterial.uniforms["tDepth"].value=this.supportsDepthTextureExtension?depthTexture:this.depthRenderTarget.texture;this.vBlurMaterial.uniforms["size"].value.set(this.resolution.x,this.resolution.y);this.vBlurMaterial.blending=THREE.NoBlending;this.hBlurMaterial=new THREE.ShaderMaterial({uniforms:THREE.UniformsUtils.clone(THREE.DepthLimitedBlurShader.uniforms),defines:Object.assign({},THREE.DepthLimitedBlurShader.defines),vertexShader:THREE.DepthLimitedBlurShader.vertexShader,fragmentShader:THREE.DepthLimitedBlurShader.fragmentShader});this.hBlurMaterial.defines["DEPTH_PACKING"]=this.supportsDepthTextureExtension?0:1;this.hBlurMaterial.defines["PERSPECTIVE_CAMERA"]=this.camera.isPerspectiveCamera?1:0;this.hBlurMaterial.uniforms["tDiffuse"].value=this.blurIntermediateRenderTarget.texture;this.hBlurMaterial.uniforms["tDepth"].value=this.supportsDepthTextureExtension?depthTexture:this.depthRenderTarget.texture;this.hBlurMaterial.uniforms["size"].value.set(this.resolution.x,this.resolution.y);this.hBlurMaterial.blending=THREE.NoBlending;if(THREE.CopyShader===undefined){console.error("THREE.SAOPass relies on THREE.CopyShader")}this.materialCopy=new THREE.ShaderMaterial({uniforms:THREE.UniformsUtils.clone(THREE.CopyShader.uniforms),vertexShader:THREE.CopyShader.vertexShader,fragmentShader:THREE.CopyShader.fragmentShader,blending:THREE.NoBlending});this.materialCopy.transparent=true;this.materialCopy.depthTest=false;this.materialCopy.depthWrite=false;this.materialCopy.blending=THREE.CustomBlending;this.materialCopy.blendSrc=THREE.DstColorFactor;this.materialCopy.blendDst=THREE.ZeroFactor;this.materialCopy.blendEquation=THREE.AddEquation;this.materialCopy.blendSrcAlpha=THREE.DstAlphaFactor;this.materialCopy.blendDstAlpha=THREE.ZeroFactor;this.materialCopy.blendEquationAlpha=THREE.AddEquation;if(THREE.UnpackDepthRGBAShader===undefined){console.error("THREE.SAOPass relies on THREE.UnpackDepthRGBAShader")}this.depthCopy=new THREE.ShaderMaterial({uniforms:THREE.UniformsUtils.clone(THREE.UnpackDepthRGBAShader.uniforms),vertexShader:THREE.UnpackDepthRGBAShader.vertexShader,fragmentShader:THREE.UnpackDepthRGBAShader.fragmentShader,blending:THREE.NoBlending});this.fsQuad=new THREE.FullScreenQuad(null)}render(renderer,writeBuffer,readBuffer){if(this.renderToScreen){this.materialCopy.blending=THREE.NoBlending;this.materialCopy.uniforms["tDiffuse"].value=readBuffer.texture;this.materialCopy.needsUpdate=true;this.renderPass(renderer,this.materialCopy,null)}if(this.params.output===1){return}renderer.getClearColor(this._oldClearColor);this.oldClearAlpha=renderer.getClearAlpha();const oldAutoClear=renderer.autoClear;renderer.autoClear=false;renderer.setRenderTarget(this.depthRenderTarget);renderer.clear();this.saoMaterial.uniforms["bias"].value=this.params.saoBias;this.saoMaterial.uniforms["intensity"].value=this.params.saoIntensity;this.saoMaterial.uniforms["scale"].value=this.params.saoScale;this.saoMaterial.uniforms["kernelRadius"].value=this.params.saoKernelRadius;this.saoMaterial.uniforms["minResolution"].value=this.params.saoMinResolution;this.saoMaterial.uniforms["cameraNear"].value=this.camera.near;this.saoMaterial.uniforms["cameraFar"].value=this.camera.far;const depthCutoff=this.params.saoBlurDepthCutoff*(this.camera.far-this.camera.near);this.vBlurMaterial.uniforms["depthCutoff"].value=depthCutoff;this.hBlurMaterial.uniforms["depthCutoff"].value=depthCutoff;this.vBlurMaterial.uniforms["cameraNear"].value=this.camera.near;this.vBlurMaterial.uniforms["cameraFar"].value=this.camera.far;this.hBlurMaterial.uniforms["cameraNear"].value=this.camera.near;this.hBlurMaterial.uniforms["cameraFar"].value=this.camera.far;this.params.saoBlurRadius=Math.floor(this.params.saoBlurRadius);if(this.prevStdDev!==this.params.saoBlurStdDev||this.prevNumSamples!==this.params.saoBlurRadius){THREE.BlurShaderUtils.configure(this.vBlurMaterial,this.params.saoBlurRadius,this.params.saoBlurStdDev,new THREE.Vector2(0,1));THREE.BlurShaderUtils.configure(this.hBlurMaterial,this.params.saoBlurRadius,this.params.saoBlurStdDev,new THREE.Vector2(1,0));this.prevStdDev=this.params.saoBlurStdDev;this.prevNumSamples=this.params.saoBlurRadius}renderer.setClearColor(0);renderer.setRenderTarget(this.beautyRenderTarget);renderer.clear();renderer.render(this.scene,this.camera);if(!this.supportsDepthTextureExtension){this.renderOverride(renderer,this.depthMaterial,this.depthRenderTarget,0,1)}if(this.supportsNormalTexture){this.renderOverride(renderer,this.normalMaterial,this.normalRenderTarget,7829503,1)}this.renderPass(renderer,this.saoMaterial,this.saoRenderTarget,16777215,1);if(this.params.saoBlur){this.renderPass(renderer,this.vBlurMaterial,this.blurIntermediateRenderTarget,16777215,1);this.renderPass(renderer,this.hBlurMaterial,this.saoRenderTarget,16777215,1)}let outputMaterial=this.materialCopy;if(this.params.output===3){if(this.supportsDepthTextureExtension){this.materialCopy.uniforms["tDiffuse"].value=this.beautyRenderTarget.depthTexture;this.materialCopy.needsUpdate=true}else{this.depthCopy.uniforms["tDiffuse"].value=this.depthRenderTarget.texture;this.depthCopy.needsUpdate=true;outputMaterial=this.depthCopy}}else if(this.params.output===4){this.materialCopy.uniforms["tDiffuse"].value=this.normalRenderTarget.texture;this.materialCopy.needsUpdate=true}else{this.materialCopy.uniforms["tDiffuse"].value=this.saoRenderTarget.texture;this.materialCopy.needsUpdate=true}if(this.params.output===0){outputMaterial.blending=THREE.CustomBlending}else{outputMaterial.blending=THREE.NoBlending}this.renderPass(renderer,outputMaterial,this.renderToScreen?null:readBuffer);renderer.setClearColor(this._oldClearColor,this.oldClearAlpha);renderer.autoClear=oldAutoClear}renderPass(renderer,passMaterial,renderTarget,clearColor,clearAlpha){renderer.getClearColor(this.originalClearColor);const originalClearAlpha=renderer.getClearAlpha();const originalAutoClear=renderer.autoClear;renderer.setRenderTarget(renderTarget);renderer.autoClear=false;if(clearColor!==undefined&&clearColor!==null){renderer.setClearColor(clearColor);renderer.setClearAlpha(clearAlpha||0);renderer.clear()}this.fsQuad.material=passMaterial;this.fsQuad.render(renderer);renderer.autoClear=originalAutoClear;renderer.setClearColor(this.originalClearColor);renderer.setClearAlpha(originalClearAlpha)}renderOverride(renderer,overrideMaterial,renderTarget,clearColor,clearAlpha){renderer.getClearColor(this.originalClearColor);const originalClearAlpha=renderer.getClearAlpha();const originalAutoClear=renderer.autoClear;renderer.setRenderTarget(renderTarget);renderer.autoClear=false;clearColor=overrideMaterial.clearColor||clearColor;clearAlpha=overrideMaterial.clearAlpha||clearAlpha;if(clearColor!==undefined&&clearColor!==null){renderer.setClearColor(clearColor);renderer.setClearAlpha(clearAlpha||0);renderer.clear()}this.scene.overrideMaterial=overrideMaterial;renderer.render(this.scene,this.camera);this.scene.overrideMaterial=null;renderer.autoClear=originalAutoClear;renderer.setClearColor(this.originalClearColor);renderer.setClearAlpha(originalClearAlpha)}setSize(width,height){this.beautyRenderTarget.setSize(width,height);this.saoRenderTarget.setSize(width,height);this.blurIntermediateRenderTarget.setSize(width,height);this.normalRenderTarget.setSize(width,height);this.depthRenderTarget.setSize(width,height);this.saoMaterial.uniforms["size"].value.set(width,height);this.saoMaterial.uniforms["cameraInverseProjectionMatrix"].value.copy(this.camera.projectionMatrixInverse);this.saoMaterial.uniforms["cameraProjectionMatrix"].value=this.camera.projectionMatrix;this.saoMaterial.needsUpdate=true;this.vBlurMaterial.uniforms["size"].value.set(width,height);this.vBlurMaterial.needsUpdate=true;this.hBlurMaterial.uniforms["size"].value.set(width,height);this.hBlurMaterial.needsUpdate=true}}SAOPass.OUTPUT={"Beauty":1,"Default":0,"SAO":2,"Depth":3,"Normal":4};THREE.SAOPass=SAOPass})();(function(){const SAOShader={defines:{"NUM_SAMPLES":7,"NUM_RINGS":4,"NORMAL_TEXTURE":0,"DIFFUSE_TEXTURE":0,"DEPTH_PACKING":1,"PERSPECTIVE_CAMERA":1},uniforms:{"tDepth":{value:null},"tDiffuse":{value:null},"tNormal":{value:null},"size":{value:new THREE.Vector2(512,512)},"cameraNear":{value:1},"cameraFar":{value:100},"cameraProjectionMatrix":{value:new THREE.Matrix4},"cameraInverseProjectionMatrix":{value:new THREE.Matrix4},"scale":{value:1},"intensity":{value:0.1},"bias":{value:0.5},"minResolution":{value:0},"kernelRadius":{value:100},"randomSeed":{value:0}},vertexShader:` varying vec2 vUv; void main() { vUv = uv; gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); }`,fragmentShader:` #include varying vec2 vUv; #if DIFFUSE_TEXTURE == 1 uniform sampler2D tDiffuse; #endif uniform sampler2D tDepth; #if NORMAL_TEXTURE == 1 uniform sampler2D tNormal; #endif uniform float cameraNear; uniform float cameraFar; uniform mat4 cameraProjectionMatrix; uniform mat4 cameraInverseProjectionMatrix; uniform float scale; uniform float intensity; uniform float bias; uniform float kernelRadius; uniform float minResolution; uniform vec2 size; uniform float randomSeed; // RGBA depth #include vec4 getDefaultColor( const in vec2 screenPosition ) { #if DIFFUSE_TEXTURE == 1 return texture2D( tDiffuse, vUv ); #else return vec4( 1.0 ); #endif } float getDepth( const in vec2 screenPosition ) { #if DEPTH_PACKING == 1 return unpackRGBAToDepth( texture2D( tDepth, screenPosition ) ); #else return texture2D( tDepth, screenPosition ).x; #endif } float getViewZ( const in float depth ) { #if PERSPECTIVE_CAMERA == 1 return perspectiveDepthToViewZ( depth, cameraNear, cameraFar ); #else return orthographicDepthToViewZ( depth, cameraNear, cameraFar ); #endif } vec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) { float clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3]; vec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 ); clipPosition *= clipW; // unprojection. return ( cameraInverseProjectionMatrix * clipPosition ).xyz; } vec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPosition ) { #if NORMAL_TEXTURE == 1 return unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz ); #else return normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) ); #endif } float scaleDividedByCameraFar; float minResolutionMultipliedByCameraFar; float getOcclusion( const in vec3 centerViewPosition, const in vec3 centerViewNormal, const in vec3 sampleViewPosition ) { vec3 viewDelta = sampleViewPosition - centerViewPosition; float viewDistance = length( viewDelta ); float scaledScreenDistance = scaleDividedByCameraFar * viewDistance; return max(0.0, (dot(centerViewNormal, viewDelta) - minResolutionMultipliedByCameraFar) / scaledScreenDistance - bias) / (1.0 + pow2( scaledScreenDistance ) ); } // moving costly divides into consts const float ANGLE_STEP = PI2 * float( NUM_RINGS ) / float( NUM_SAMPLES ); const float INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES ); float getAmbientOcclusion( const in vec3 centerViewPosition ) { // precompute some variables require in getOcclusion. scaleDividedByCameraFar = scale / cameraFar; minResolutionMultipliedByCameraFar = minResolution * cameraFar; vec3 centerViewNormal = getViewNormal( centerViewPosition, vUv ); // jsfiddle that shows sample pattern: https://jsfiddle.net/a16ff1p7/ float angle = rand( vUv + randomSeed ) * PI2; vec2 radius = vec2( kernelRadius * INV_NUM_SAMPLES ) / size; vec2 radiusStep = radius; float occlusionSum = 0.0; float weightSum = 0.0; for( int i = 0; i < NUM_SAMPLES; i ++ ) { vec2 sampleUv = vUv + vec2( cos( angle ), sin( angle ) ) * radius; radius += radiusStep; angle += ANGLE_STEP; float sampleDepth = getDepth( sampleUv ); if( sampleDepth >= ( 1.0 - EPSILON ) ) { continue; } float sampleViewZ = getViewZ( sampleDepth ); vec3 sampleViewPosition = getViewPosition( sampleUv, sampleDepth, sampleViewZ ); occlusionSum += getOcclusion( centerViewPosition, centerViewNormal, sampleViewPosition ); weightSum += 1.0; } if( weightSum == 0.0 ) discard; return occlusionSum * ( intensity / weightSum ); } void main() { float centerDepth = getDepth( vUv ); if( centerDepth >= ( 1.0 - EPSILON ) ) { discard; } float centerViewZ = getViewZ( centerDepth ); vec3 viewPosition = getViewPosition( vUv, centerDepth, centerViewZ ); float ambientOcclusion = getAmbientOcclusion( viewPosition ); gl_FragColor = getDefaultColor( vUv ); gl_FragColor.xyz *= 1.0 - ambientOcclusion; }`};THREE.SAOShader=SAOShader})();(function(){class SavePass extends THREE.Pass{constructor(renderTarget){super();if(THREE.CopyShader===undefined)console.error("THREE.SavePass relies on THREE.CopyShader");const shader=THREE.CopyShader;this.textureID="tDiffuse";this.uniforms=THREE.UniformsUtils.clone(shader.uniforms);this.material=new THREE.ShaderMaterial({uniforms:this.uniforms,vertexShader:shader.vertexShader,fragmentShader:shader.fragmentShader});this.renderTarget=renderTarget;if(this.renderTarget===undefined){this.renderTarget=new THREE.WebGLRenderTarget(window.innerWidth,window.innerHeight);this.renderTarget.texture.name="SavePass.rt"}this.needsSwap=false;this.fsQuad=new THREE.FullScreenQuad(this.material)}render(renderer,writeBuffer,readBuffer){if(this.uniforms[this.textureID]){this.uniforms[this.textureID].value=readBuffer.texture}renderer.setRenderTarget(this.renderTarget);if(this.clear)renderer.clear();this.fsQuad.render(renderer)}}THREE.SavePass=SavePass})();(function(){class ShaderPass extends THREE.Pass{constructor(shader,textureID){super();this.textureID=textureID!==undefined?textureID:"tDiffuse";if(shader instanceof THREE.ShaderMaterial){this.uniforms=shader.uniforms;this.material=shader}else if(shader){this.uniforms=THREE.UniformsUtils.clone(shader.uniforms);this.material=new THREE.ShaderMaterial({defines:Object.assign({},shader.defines),uniforms:this.uniforms,vertexShader:shader.vertexShader,fragmentShader:shader.fragmentShader})}this.fsQuad=new THREE.FullScreenQuad(this.material)}render(renderer,writeBuffer,readBuffer){if(this.uniforms[this.textureID]){this.uniforms[this.textureID].value=readBuffer.texture}this.fsQuad.material=this.material;if(this.renderToScreen){renderer.setRenderTarget(null);this.fsQuad.render(renderer)}else{renderer.setRenderTarget(writeBuffer);if(this.clear)renderer.clear(renderer.autoClearColor,renderer.autoClearDepth,renderer.autoClearStencil);this.fsQuad.render(renderer)}}}THREE.ShaderPass=ShaderPass})();(function(){class SMAAPass extends THREE.Pass{constructor(width,height){super();this.edgesRT=new THREE.WebGLRenderTarget(width,height,{depthBuffer:false});this.edgesRT.texture.name="SMAAPass.edges";this.weightsRT=new THREE.WebGLRenderTarget(width,height,{depthBuffer:false});this.weightsRT.texture.name="SMAAPass.weights";const scope=this;const areaTextureImage=new Image;areaTextureImage.src=this.getAreaTexture();areaTextureImage.onload=function(){scope.areaTexture.needsUpdate=true};this.areaTexture=new THREE.Texture;this.areaTexture.name="SMAAPass.area";this.areaTexture.image=areaTextureImage;this.areaTexture.minFilter=THREE.LinearFilter;this.areaTexture.generateMipmaps=false;this.areaTexture.flipY=false;const searchTextureImage=new Image;searchTextureImage.src=this.getSearchTexture();searchTextureImage.onload=function(){scope.searchTexture.needsUpdate=true};this.searchTexture=new THREE.Texture;this.searchTexture.name="SMAAPass.search";this.searchTexture.image=searchTextureImage;this.searchTexture.magFilter=THREE.NearestFilter;this.searchTexture.minFilter=THREE.NearestFilter;this.searchTexture.generateMipmaps=false;this.searchTexture.flipY=false;if(THREE.SMAAEdgesShader===undefined){console.error("THREE.SMAAPass relies on SMAAShader")}this.uniformsEdges=THREE.UniformsUtils.clone(THREE.SMAAEdgesShader.uniforms);this.uniformsEdges["resolution"].value.set(1/width,1/height);this.materialEdges=new THREE.ShaderMaterial({defines:Object.assign({},THREE.SMAAEdgesShader.defines),uniforms:this.uniformsEdges,vertexShader:THREE.SMAAEdgesShader.vertexShader,fragmentShader:THREE.SMAAEdgesShader.fragmentShader});this.uniformsWeights=THREE.UniformsUtils.clone(THREE.SMAAWeightsShader.uniforms);this.uniformsWeights["resolution"].value.set(1/width,1/height);this.uniformsWeights["tDiffuse"].value=this.edgesRT.texture;this.uniformsWeights["tArea"].value=this.areaTexture;this.uniformsWeights["tSearch"].value=this.searchTexture;this.materialWeights=new THREE.ShaderMaterial({defines:Object.assign({},THREE.SMAAWeightsShader.defines),uniforms:this.uniformsWeights,vertexShader:THREE.SMAAWeightsShader.vertexShader,fragmentShader:THREE.SMAAWeightsShader.fragmentShader});this.uniformsBlend=THREE.UniformsUtils.clone(THREE.SMAABlendShader.uniforms);this.uniformsBlend["resolution"].value.set(1/width,1/height);this.uniformsBlend["tDiffuse"].value=this.weightsRT.texture;this.materialBlend=new THREE.ShaderMaterial({uniforms:this.uniformsBlend,vertexShader:THREE.SMAABlendShader.vertexShader,fragmentShader:THREE.SMAABlendShader.fragmentShader});this.needsSwap=false;this.fsQuad=new THREE.FullScreenQuad(null)}render(renderer,writeBuffer,readBuffer){this.uniformsEdges["tDiffuse"].value=readBuffer.texture;this.fsQuad.material=this.materialEdges;renderer.setRenderTarget(this.edgesRT);if(this.clear)renderer.clear();this.fsQuad.render(renderer);this.fsQuad.material=this.materialWeights;renderer.setRenderTarget(this.weightsRT);if(this.clear)renderer.clear();this.fsQuad.render(renderer);this.uniformsBlend["tColor"].value=readBuffer.texture;this.fsQuad.material=this.materialBlend;if(this.renderToScreen){renderer.setRenderTarget(null);this.fsQuad.render(renderer)}else{renderer.setRenderTarget(writeBuffer);if(this.clear)renderer.clear();this.fsQuad.render(renderer)}}setSize(width,height){this.edgesRT.setSize(width,height);this.weightsRT.setSize(width,height);this.materialEdges.uniforms["resolution"].value.set(1/width,1/height);this.materialWeights.uniforms["resolution"].value.set(1/width,1/height);this.materialBlend.uniforms["resolution"].value.set(1/width,1/height)}getAreaTexture(){return"data:image/png;base64,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"}getSearchTexture(){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAAAhCAAAAABIXyLAAAAAOElEQVRIx2NgGAWjYBSMglEwEICREYRgFBZBqDCSLA2MGPUIVQETE9iNUAqLR5gIeoQKRgwXjwAAGn4AtaFeYLEAAAAASUVORK5CYII="}}THREE.SMAAPass=SMAAPass})();(function(){const SMAAEdgesShader={defines:{"SMAA_THRESHOLD":"0.1"},uniforms:{"tDiffuse":{value:null},"resolution":{value:new THREE.Vector2(1/1024,1/512)}},vertexShader:` uniform vec2 resolution; varying vec2 vUv; varying vec4 vOffset[ 3 ]; void SMAAEdgeDetectionVS( vec2 texcoord ) { vOffset[ 0 ] = texcoord.xyxy + resolution.xyxy * vec4( -1.0, 0.0, 0.0, 1.0 ); // WebGL port note: Changed sign in W component vOffset[ 1 ] = texcoord.xyxy + resolution.xyxy * vec4( 1.0, 0.0, 0.0, -1.0 ); // WebGL port note: Changed sign in W component vOffset[ 2 ] = texcoord.xyxy + resolution.xyxy * vec4( -2.0, 0.0, 0.0, 2.0 ); // WebGL port note: Changed sign in W component } void main() { vUv = uv; SMAAEdgeDetectionVS( vUv ); gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); }`,fragmentShader:` uniform sampler2D tDiffuse; varying vec2 vUv; varying vec4 vOffset[ 3 ]; vec4 SMAAColorEdgeDetectionPS( vec2 texcoord, vec4 offset[3], sampler2D colorTex ) { vec2 threshold = vec2( SMAA_THRESHOLD, SMAA_THRESHOLD ); // Calculate color deltas: vec4 delta; vec3 C = texture2D( colorTex, texcoord ).rgb; vec3 Cleft = texture2D( colorTex, offset[0].xy ).rgb; vec3 t = abs( C - Cleft ); delta.x = max( max( t.r, t.g ), t.b ); vec3 Ctop = texture2D( colorTex, offset[0].zw ).rgb; t = abs( C - Ctop ); delta.y = max( max( t.r, t.g ), t.b ); // We do the usual threshold: vec2 edges = step( threshold, delta.xy ); // Then discard if there is no edge: if ( dot( edges, vec2( 1.0, 1.0 ) ) == 0.0 ) discard; // Calculate right and bottom deltas: vec3 Cright = texture2D( colorTex, offset[1].xy ).rgb; t = abs( C - Cright ); delta.z = max( max( t.r, t.g ), t.b ); vec3 Cbottom = texture2D( colorTex, offset[1].zw ).rgb; t = abs( C - Cbottom ); delta.w = max( max( t.r, t.g ), t.b ); // Calculate the maximum delta in the direct neighborhood: float maxDelta = max( max( max( delta.x, delta.y ), delta.z ), delta.w ); // Calculate left-left and top-top deltas: vec3 Cleftleft = texture2D( colorTex, offset[2].xy ).rgb; t = abs( C - Cleftleft ); delta.z = max( max( t.r, t.g ), t.b ); vec3 Ctoptop = texture2D( colorTex, offset[2].zw ).rgb; t = abs( C - Ctoptop ); delta.w = max( max( t.r, t.g ), t.b ); // Calculate the final maximum delta: maxDelta = max( max( maxDelta, delta.z ), delta.w ); // Local contrast adaptation in action: edges.xy *= step( 0.5 * maxDelta, delta.xy ); return vec4( edges, 0.0, 0.0 ); } void main() { gl_FragColor = SMAAColorEdgeDetectionPS( vUv, vOffset, tDiffuse ); }`};const SMAAWeightsShader={defines:{"SMAA_MAX_SEARCH_STEPS":"8","SMAA_AREATEX_MAX_DISTANCE":"16","SMAA_AREATEX_PIXEL_SIZE":"( 1.0 / vec2( 160.0, 560.0 ) )","SMAA_AREATEX_SUBTEX_SIZE":"( 1.0 / 7.0 )"},uniforms:{"tDiffuse":{value:null},"tArea":{value:null},"tSearch":{value:null},"resolution":{value:new THREE.Vector2(1/1024,1/512)}},vertexShader:` uniform vec2 resolution; varying vec2 vUv; varying vec4 vOffset[ 3 ]; varying vec2 vPixcoord; void SMAABlendingWeightCalculationVS( vec2 texcoord ) { vPixcoord = texcoord / resolution; // We will use these offsets for the searches later on (see @PSEUDO_GATHER4): vOffset[ 0 ] = texcoord.xyxy + resolution.xyxy * vec4( -0.25, 0.125, 1.25, 0.125 ); // WebGL port note: Changed sign in Y and W components vOffset[ 1 ] = texcoord.xyxy + resolution.xyxy * vec4( -0.125, 0.25, -0.125, -1.25 ); // WebGL port note: Changed sign in Y and W components // And these for the searches, they indicate the ends of the loops: vOffset[ 2 ] = vec4( vOffset[ 0 ].xz, vOffset[ 1 ].yw ) + vec4( -2.0, 2.0, -2.0, 2.0 ) * resolution.xxyy * float( SMAA_MAX_SEARCH_STEPS ); } void main() { vUv = uv; SMAABlendingWeightCalculationVS( vUv ); gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); }`,fragmentShader:` #define SMAASampleLevelZeroOffset( tex, coord, offset ) texture2D( tex, coord + float( offset ) * resolution, 0.0 ) uniform sampler2D tDiffuse; uniform sampler2D tArea; uniform sampler2D tSearch; uniform vec2 resolution; varying vec2 vUv; varying vec4 vOffset[3]; varying vec2 vPixcoord; #if __VERSION__ == 100 vec2 round( vec2 x ) { return sign( x ) * floor( abs( x ) + 0.5 ); } #endif float SMAASearchLength( sampler2D searchTex, vec2 e, float bias, float scale ) { // Not required if searchTex accesses are set to point: // float2 SEARCH_TEX_PIXEL_SIZE = 1.0 / float2(66.0, 33.0); // e = float2(bias, 0.0) + 0.5 * SEARCH_TEX_PIXEL_SIZE + // e * float2(scale, 1.0) * float2(64.0, 32.0) * SEARCH_TEX_PIXEL_SIZE; e.r = bias + e.r * scale; return 255.0 * texture2D( searchTex, e, 0.0 ).r; } float SMAASearchXLeft( sampler2D edgesTex, sampler2D searchTex, vec2 texcoord, float end ) { /** * @PSEUDO_GATHER4 * This texcoord has been offset by (-0.25, -0.125) in the vertex shader to * sample between edge, thus fetching four edges in a row. * Sampling with different offsets in each direction allows to disambiguate * which edges are active from the four fetched ones. */ vec2 e = vec2( 0.0, 1.0 ); for ( int i = 0; i < SMAA_MAX_SEARCH_STEPS; i ++ ) { // WebGL port note: Changed while to for e = texture2D( edgesTex, texcoord, 0.0 ).rg; texcoord -= vec2( 2.0, 0.0 ) * resolution; if ( ! ( texcoord.x > end && e.g > 0.8281 && e.r == 0.0 ) ) break; } // We correct the previous (-0.25, -0.125) offset we applied: texcoord.x += 0.25 * resolution.x; // The searches are bias by 1, so adjust the coords accordingly: texcoord.x += resolution.x; // Disambiguate the length added by the last step: texcoord.x += 2.0 * resolution.x; // Undo last step texcoord.x -= resolution.x * SMAASearchLength(searchTex, e, 0.0, 0.5); return texcoord.x; } float SMAASearchXRight( sampler2D edgesTex, sampler2D searchTex, vec2 texcoord, float end ) { vec2 e = vec2( 0.0, 1.0 ); for ( int i = 0; i < SMAA_MAX_SEARCH_STEPS; i ++ ) { // WebGL port note: Changed while to for e = texture2D( edgesTex, texcoord, 0.0 ).rg; texcoord += vec2( 2.0, 0.0 ) * resolution; if ( ! ( texcoord.x < end && e.g > 0.8281 && e.r == 0.0 ) ) break; } texcoord.x -= 0.25 * resolution.x; texcoord.x -= resolution.x; texcoord.x -= 2.0 * resolution.x; texcoord.x += resolution.x * SMAASearchLength( searchTex, e, 0.5, 0.5 ); return texcoord.x; } float SMAASearchYUp( sampler2D edgesTex, sampler2D searchTex, vec2 texcoord, float end ) { vec2 e = vec2( 1.0, 0.0 ); for ( int i = 0; i < SMAA_MAX_SEARCH_STEPS; i ++ ) { // WebGL port note: Changed while to for e = texture2D( edgesTex, texcoord, 0.0 ).rg; texcoord += vec2( 0.0, 2.0 ) * resolution; // WebGL port note: Changed sign if ( ! ( texcoord.y > end && e.r > 0.8281 && e.g == 0.0 ) ) break; } texcoord.y -= 0.25 * resolution.y; // WebGL port note: Changed sign texcoord.y -= resolution.y; // WebGL port note: Changed sign texcoord.y -= 2.0 * resolution.y; // WebGL port note: Changed sign texcoord.y += resolution.y * SMAASearchLength( searchTex, e.gr, 0.0, 0.5 ); // WebGL port note: Changed sign return texcoord.y; } float SMAASearchYDown( sampler2D edgesTex, sampler2D searchTex, vec2 texcoord, float end ) { vec2 e = vec2( 1.0, 0.0 ); for ( int i = 0; i < SMAA_MAX_SEARCH_STEPS; i ++ ) { // WebGL port note: Changed while to for e = texture2D( edgesTex, texcoord, 0.0 ).rg; texcoord -= vec2( 0.0, 2.0 ) * resolution; // WebGL port note: Changed sign if ( ! ( texcoord.y < end && e.r > 0.8281 && e.g == 0.0 ) ) break; } texcoord.y += 0.25 * resolution.y; // WebGL port note: Changed sign texcoord.y += resolution.y; // WebGL port note: Changed sign texcoord.y += 2.0 * resolution.y; // WebGL port note: Changed sign texcoord.y -= resolution.y * SMAASearchLength( searchTex, e.gr, 0.5, 0.5 ); // WebGL port note: Changed sign return texcoord.y; } vec2 SMAAArea( sampler2D areaTex, vec2 dist, float e1, float e2, float offset ) { // Rounding prevents precision errors of bilinear filtering: vec2 texcoord = float( SMAA_AREATEX_MAX_DISTANCE ) * round( 4.0 * vec2( e1, e2 ) ) + dist; // We do a scale and bias for mapping to texel space: texcoord = SMAA_AREATEX_PIXEL_SIZE * texcoord + ( 0.5 * SMAA_AREATEX_PIXEL_SIZE ); // Move to proper place, according to the subpixel offset: texcoord.y += SMAA_AREATEX_SUBTEX_SIZE * offset; return texture2D( areaTex, texcoord, 0.0 ).rg; } vec4 SMAABlendingWeightCalculationPS( vec2 texcoord, vec2 pixcoord, vec4 offset[ 3 ], sampler2D edgesTex, sampler2D areaTex, sampler2D searchTex, ivec4 subsampleIndices ) { vec4 weights = vec4( 0.0, 0.0, 0.0, 0.0 ); vec2 e = texture2D( edgesTex, texcoord ).rg; if ( e.g > 0.0 ) { // Edge at north vec2 d; // Find the distance to the left: vec2 coords; coords.x = SMAASearchXLeft( edgesTex, searchTex, offset[ 0 ].xy, offset[ 2 ].x ); coords.y = offset[ 1 ].y; // offset[1].y = texcoord.y - 0.25 * resolution.y (@CROSSING_OFFSET) d.x = coords.x; // Now fetch the left crossing edges, two at a time using bilinear // filtering. Sampling at -0.25 (see @CROSSING_OFFSET) enables to // discern what value each edge has: float e1 = texture2D( edgesTex, coords, 0.0 ).r; // Find the distance to the right: coords.x = SMAASearchXRight( edgesTex, searchTex, offset[ 0 ].zw, offset[ 2 ].y ); d.y = coords.x; // We want the distances to be in pixel units (doing this here allow to // better interleave arithmetic and memory accesses): d = d / resolution.x - pixcoord.x; // SMAAArea below needs a sqrt, as the areas texture is compressed // quadratically: vec2 sqrt_d = sqrt( abs( d ) ); // Fetch the right crossing edges: coords.y -= 1.0 * resolution.y; // WebGL port note: Added float e2 = SMAASampleLevelZeroOffset( edgesTex, coords, ivec2( 1, 0 ) ).r; // Ok, we know how this pattern looks like, now it is time for getting // the actual area: weights.rg = SMAAArea( areaTex, sqrt_d, e1, e2, float( subsampleIndices.y ) ); } if ( e.r > 0.0 ) { // Edge at west vec2 d; // Find the distance to the top: vec2 coords; coords.y = SMAASearchYUp( edgesTex, searchTex, offset[ 1 ].xy, offset[ 2 ].z ); coords.x = offset[ 0 ].x; // offset[1].x = texcoord.x - 0.25 * resolution.x; d.x = coords.y; // Fetch the top crossing edges: float e1 = texture2D( edgesTex, coords, 0.0 ).g; // Find the distance to the bottom: coords.y = SMAASearchYDown( edgesTex, searchTex, offset[ 1 ].zw, offset[ 2 ].w ); d.y = coords.y; // We want the distances to be in pixel units: d = d / resolution.y - pixcoord.y; // SMAAArea below needs a sqrt, as the areas texture is compressed // quadratically: vec2 sqrt_d = sqrt( abs( d ) ); // Fetch the bottom crossing edges: coords.y -= 1.0 * resolution.y; // WebGL port note: Added float e2 = SMAASampleLevelZeroOffset( edgesTex, coords, ivec2( 0, 1 ) ).g; // Get the area for this direction: weights.ba = SMAAArea( areaTex, sqrt_d, e1, e2, float( subsampleIndices.x ) ); } return weights; } void main() { gl_FragColor = SMAABlendingWeightCalculationPS( vUv, vPixcoord, vOffset, tDiffuse, tArea, tSearch, ivec4( 0.0 ) ); }`};const SMAABlendShader={uniforms:{"tDiffuse":{value:null},"tColor":{value:null},"resolution":{value:new THREE.Vector2(1/1024,1/512)}},vertexShader:` uniform vec2 resolution; varying vec2 vUv; varying vec4 vOffset[ 2 ]; void SMAANeighborhoodBlendingVS( vec2 texcoord ) { vOffset[ 0 ] = texcoord.xyxy + resolution.xyxy * vec4( -1.0, 0.0, 0.0, 1.0 ); // WebGL port note: Changed sign in W component vOffset[ 1 ] = texcoord.xyxy + resolution.xyxy * vec4( 1.0, 0.0, 0.0, -1.0 ); // WebGL port note: Changed sign in W component } void main() { vUv = uv; SMAANeighborhoodBlendingVS( vUv ); gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); }`,fragmentShader:` uniform sampler2D tDiffuse; uniform sampler2D tColor; uniform vec2 resolution; varying vec2 vUv; varying vec4 vOffset[ 2 ]; vec4 SMAANeighborhoodBlendingPS( vec2 texcoord, vec4 offset[ 2 ], sampler2D colorTex, sampler2D blendTex ) { // Fetch the blending weights for current pixel: vec4 a; a.xz = texture2D( blendTex, texcoord ).xz; a.y = texture2D( blendTex, offset[ 1 ].zw ).g; a.w = texture2D( blendTex, offset[ 1 ].xy ).a; // Is there any blending weight with a value greater than 0.0? if ( dot(a, vec4( 1.0, 1.0, 1.0, 1.0 )) < 1e-5 ) { return texture2D( colorTex, texcoord, 0.0 ); } else { // Up to 4 lines can be crossing a pixel (one through each edge). We // favor blending by choosing the line with the maximum weight for each // direction: vec2 offset; offset.x = a.a > a.b ? a.a : -a.b; // left vs. right offset.y = a.g > a.r ? -a.g : a.r; // top vs. bottom // WebGL port note: Changed signs // Then we go in the direction that has the maximum weight: if ( abs( offset.x ) > abs( offset.y )) { // horizontal vs. vertical offset.y = 0.0; } else { offset.x = 0.0; } // Fetch the opposite color and lerp by hand: vec4 C = texture2D( colorTex, texcoord, 0.0 ); texcoord += sign( offset ) * resolution; vec4 Cop = texture2D( colorTex, texcoord, 0.0 ); float s = abs( offset.x ) > abs( offset.y ) ? abs( offset.x ) : abs( offset.y ); // WebGL port note: Added gamma correction C.xyz = pow(C.xyz, vec3(2.2)); Cop.xyz = pow(Cop.xyz, vec3(2.2)); vec4 mixed = mix(C, Cop, s); mixed.xyz = pow(mixed.xyz, vec3(1.0 / 2.2)); return mixed; } } void main() { gl_FragColor = SMAANeighborhoodBlendingPS( vUv, vOffset, tColor, tDiffuse ); }`};THREE.SMAABlendShader=SMAABlendShader;THREE.SMAAEdgesShader=SMAAEdgesShader;THREE.SMAAWeightsShader=SMAAWeightsShader})();(function(){class SSAARenderPass extends THREE.Pass{constructor(scene,camera,clearColor,clearAlpha){super();this.scene=scene;this.camera=camera;this.sampleLevel=4;this.unbiased=true;this.clearColor=clearColor!==undefined?clearColor:0;this.clearAlpha=clearAlpha!==undefined?clearAlpha:0;this._oldClearColor=new THREE.Color;if(THREE.CopyShader===undefined)console.error("THREE.SSAARenderPass relies on THREE.CopyShader");const copyShader=THREE.CopyShader;this.copyUniforms=THREE.UniformsUtils.clone(copyShader.uniforms);this.copyMaterial=new THREE.ShaderMaterial({uniforms:this.copyUniforms,vertexShader:copyShader.vertexShader,fragmentShader:copyShader.fragmentShader,transparent:true,blending:THREE.AdditiveBlending,depthTest:false,depthWrite:false});this.fsQuad=new THREE.FullScreenQuad(this.copyMaterial)}dispose(){if(this.sampleRenderTarget){this.sampleRenderTarget.dispose();this.sampleRenderTarget=null}}setSize(width,height){if(this.sampleRenderTarget)this.sampleRenderTarget.setSize(width,height)}render(renderer,writeBuffer,readBuffer){if(!this.sampleRenderTarget){this.sampleRenderTarget=new THREE.WebGLRenderTarget(readBuffer.width,readBuffer.height);this.sampleRenderTarget.texture.name="SSAARenderPass.sample"}const jitterOffsets=_JitterVectors[Math.max(0,Math.min(this.sampleLevel,5))];const autoClear=renderer.autoClear;renderer.autoClear=false;renderer.getClearColor(this._oldClearColor);const oldClearAlpha=renderer.getClearAlpha();const baseSampleWeight=1/jitterOffsets.length;const roundingRange=1/32;this.copyUniforms["tDiffuse"].value=this.sampleRenderTarget.texture;const viewOffset={fullWidth:readBuffer.width,fullHeight:readBuffer.height,offsetX:0,offsetY:0,width:readBuffer.width,height:readBuffer.height};const originalViewOffset=Object.assign({},this.camera.view);if(originalViewOffset.enabled)Object.assign(viewOffset,originalViewOffset);for(let i=0;i void main() { float depth = 1.0 - unpackRGBAToDepth( texture2D( tDiffuse, vUv ) ); gl_FragColor = vec4( vec3( depth ), opacity ); }`};THREE.UnpackDepthRGBAShader=UnpackDepthRGBAShader})(); })(); } catch (e) { console.log(e.message, e.stack); throw e; };