!function(){"use strict";var customPaths,appMode=globalThis.appMode;function returnFirstDependency(obj){return obj}function returnFirstDependencyDefault(obj){var _obj;return(null==(_obj=obj=Array.isArray(obj)?obj[0]:obj)?void 0:_obj.default)||obj}function enableNativeGamepadKeyMapping(){return window.navigator&&"string"==typeof window.navigator.gamepadInputEmulation&&(window.navigator.gamepadInputEmulation="keyboard")}function loadPlugin(url){return Promise.all([importFromPath("./modules/common/pluginmanager.js")]).then(function(responses){var pluginManager=responses[0];return url.startsWith("./")&&url.endsWith(".js")?(console.log("Loading plugin module: "+url),getDynamicImport(url)().then(function(f){return pluginManager.loadPlugin(f,url)})):pluginManager.loadPluginFromUrl(url)})}function returnFalse(){return!1}function onApiClientCreated(e,apiClient){"ios"!==appMode&&"android"!==appMode||(apiClient._getAvailablePlugins=apiClient.getAvailablePlugins,apiClient.getAvailablePlugins=function(){var promises=[this._getAvailablePlugins(),importFromPath("./modules/common/pluginmanager.js")];return Promise.all(promises).then(function(responses){var plugins=responses[0],pluginManager=responses[1];return plugins.filter(function(p){return pluginManager.allowPluginPages(p.guid)})})}.bind(apiClient)),Promise.all([importFromPath("./modules/browser.js")]).then(function(responses){responses[0].operaTv&&(apiClient.isWebSocketSupported=returnFalse)})}function createConnectionManager(){return Promise.all([importFromPath("./modules/emby-apiclient/connectionmanager.js"),importFromPath("./modules/emby-apiclient/events.js"),importFromPath("./modules/common/querystring.js"),importFromPath("./modules/common/servicelocator.js")]).then(function(outerResponses){var accessToken,userId,connectionManager=outerResponses[0],events=outerResponses[1],queryString=outerResponses[2],outerResponses=outerResponses[3].appHost;globalThis.Events=events,connectionManager.globalScopeApiClient=!0,connectionManager.devicePixelRatio=globalThis.devicePixelRatio,globalThis.ConnectionManager=connectionManager,events.on(connectionManager,"apiclientcreated",onApiClientCreated),outerResponses.supports("multiserver")||(connectionManager.enableServerAddressValidation=!1,window.location.search&&(accessToken=(events=queryString.parse(window.location.search)).accessToken,userId=events.userId,accessToken&&userId&&1===events.e||(userId=accessToken=null)),console.log("creating ApiClient singleton"),connectionManager.validateServerIds=!1,outerResponses=window.location.href.toLowerCase(),events=-1!==(queryString=outerResponses.lastIndexOf("/web"))?outerResponses.substring(0,queryString):(queryString=(outerResponses=window.location).protocol+"//"+outerResponses.hostname,outerResponses.port&&(queryString+=":"+outerResponses.port),queryString),outerResponses=connectionManager.getApiClientFromServerInfo({ManualAddress:events,ManualAddressOnly:!0,IsLocalServer:!0,AccessToken:accessToken,UserId:userId},events),accessToken&&userId&&(window.location="index.html"),outerResponses.enableAutomaticNetworking=!1,console.log("loaded ApiClient singleton"))})}function getPluginPageContentPath(){return globalThis.ApiClient?globalThis.ApiClient.getUrl("web/ConfigurationPage"):null}function triggerWorkerTask(){require(["bgtaskregister"],function(bgtaskregister){try{bgtaskregister.triggerTask()}catch(err){console.error("Error firing ApplicationTrigger",err)}})}function getWindowsLocalSync(){return{sync:triggerWorkerTask,setProgressUpdatesEnabled:function(enabled){}}}function getDynamicImport(path){return function(){return require(["".concat(path)]).then(returnFirstDependencyDefault)}}function importFromPath(path){return getDynamicImport(path)()}function importFromPathWithoutExport(path){return function(path){return function(){return require(["".concat(path)])}}(path)()}function loadAppStorage(){var promise;if("winjs"===appMode)promise=getRequirePromise("native/windows/appstorage");else try{localStorage.setItem("_test","0"),localStorage.removeItem("_test"),promise=importFromPath("./modules/emby-apiclient/appstorage-localstorage.js")}catch(e){promise=importFromPath("./modules/emby-apiclient/appstorage-memory.js")}return promise.then(function(appStorage){return(appStorage.init?appStorage.init():Promise.resolve()).then(function(){return appStorage})})}function loadApiClient(){return getDynamicImport("./modules/common/servicelocator.js")().then(function(serviceLocator){return loadAppHost().then(function(appHost){return(appHost.supports("sync")?getDynamicImport("./modules/emby-apiclient/apiclientex.js"):getDynamicImport("./modules/emby-apiclient/apiclient.js"))()}).then(function(apiClientFactory){return serviceLocator.initialize({apiClientFactory:apiClientFactory}),apiClientFactory})})}function supportsTizenNaclSockets(){if(globalThis.tizen&&globalThis.tizen.systeminfo)return globalThis.tizen.systeminfo.getCapability("http://tizen.org/feature/platform.version"),0}function supportsTizenWasmSockets(){var v;return!(!globalThis.tizen||!globalThis.tizen.systeminfo)&&(v=globalThis.tizen.systeminfo.getCapability("http://tizen.org/feature/platform.version"))&&parseFloat(v)>=parseFloat("6.0")}function loadServerDiscovery(){return customPaths.serverdiscovery?getRequirePromise(addJsExtIfNeeded(customPaths.serverdiscovery)):"windows"===appMode||"winjs"===appMode?getRequirePromise("native/windows/serverdiscovery"):globalThis.tizen&&(supportsTizenNaclSockets()||supportsTizenWasmSockets())?getRequirePromise("native/tizen/serverdiscovery"):"android"===appMode?getRequirePromise("native/android/serverdiscovery"):"ios"===appMode?getRequirePromise("native/ios/serverdiscovery"):getDynamicImport("./modules/emby-apiclient/serverdiscovery.js")()}function loadShell(){return customPaths.shell?getRequirePromise(addJsExtIfNeeded(customPaths.shell)):"android"===appMode?getRequirePromise("native/android/shell"):getDynamicImport("./modules/shell.js")()}function loadWakeOnLan(){return customPaths.wakeonlan?getRequirePromise(addJsExtIfNeeded(customPaths.wakeonlan)):"windows"===appMode||"winjs"===appMode?getRequirePromise("native/windows/wakeonlan"):globalThis.tizen&&(supportsTizenNaclSockets()||supportsTizenWasmSockets())?getRequirePromise("native/tizen/wakeonlan"):"ios"===appMode?getRequirePromise("native/ios/wakeonlan"):"android"===appMode?getRequirePromise("native/android/wakeonlan"):getDynamicImport("./modules/emby-apiclient/wakeonlan.js")()}function loadFullscreenManager(){return getDynamicImport("./modules/common/servicelocator.js")().then(function(serviceLocator){var promise=customPaths.fullscreenmanager?getRequirePromise(customPaths.fullscreenmanager):getDynamicImport("./modules/fullscreen/fullscreenmanager.js")();return promise.then(function(fullscreenManager){return serviceLocator.initialize({fullscreenManager:fullscreenManager}),fullscreenManager})})}function loadIap(){var promise="android"===appMode?getRequirePromise("native/android/iap"):"ios"===appMode?getRequirePromise("native/ios/iap"):getDynamicImport("./modules/iap.js")();return promise.then(function(iapManager){return getDynamicImport("./modules/common/servicelocator.js")().then(function(serviceLocator){serviceLocator.initialize({iapManager:iapManager})})})}function loadServiceLocator(){return Promise.all([loadAppStorage(),loadAppHost(),loadShell(),loadFullscreenManager(),loadWakeOnLan(),loadServerDiscovery()]).then(function(responses){var appStorage=responses[0],appHost=responses[1],shell=responses[2],wakeOnLan=responses[4],serverDiscovery=responses[5],responses=[getDynamicImport("./modules/common/servicelocator.js")()];return appHost.supports("sync")&&(responses.push(require(["filerepository"])),responses.push(require(["itemrepository"])),responses.push(require(["transfermanager"])),responses.push(require(["useractionrepository"])),responses.push(require(["localsync"]))),appHost.supports("cameraupload")&&responses.push(loadCameraUpload()),Promise.all(responses).then(function(responsesInner){var fileRepository,itemRepository,transferManager,userActionRepository,localSync,cameraUpload,index=0,serviceLocator=responsesInner[index];return index++,appHost.supports("sync")&&(fileRepository=responsesInner[index][0],itemRepository=responsesInner[++index][0],transferManager=responsesInner[++index][0],userActionRepository=responsesInner[++index][0],localSync=responsesInner[++index][0],index++),appHost.supports("cameraupload")&&(cameraUpload=responsesInner[index],index++),serviceLocator.initialize({appStorage:appStorage,appHost:appHost,shell:shell,wakeOnLan:wakeOnLan,serverDiscovery:serverDiscovery,fileRepository:fileRepository,itemRepository:itemRepository,transferManager:transferManager,userActionRepository:userActionRepository,cameraUpload:cameraUpload,localSync:localSync}),appHost.init().then(loadApiClient).then(loadIap)})})}function addJsExtIfNeeded(path){return path.endsWith(".js")||(path+=".js"),path}function getRequirePromise(dep){return new Promise(function(resolve,reject){require([dep],resolve)})}function loadCameraUpload(){return"ios"===appMode?getRequirePromise("native/ios/cameraupload"):"android"===appMode?getRequirePromise("native/android/cameraupload"):Promise.resolve({start:function(){},setProgressUpdatesEnabled:function(){},getAvailableFolders:function(){return Promise.resolve([{Id:"541C6607-9C45-4875-A292-5F89F742B2B3/L0/040",Name:"TestFolder1"},{Id:"773DFE72-F38F-4220-8F2F-C4A472DBBA75/L0/040",Name:"TestFolder2"}])}})}function loadAppHost(){return customPaths.apphost?getRequirePromise(addJsExtIfNeeded(customPaths.apphost)):"ios"===appMode?getRequirePromise("native/ios/apphost"):"android"===appMode?getRequirePromise("native/android/apphost"):"windows"===appMode?getRequirePromise("native/windows/apphost"):importFromPath("./modules/apphost.js")}function initRequire(){for(var importMap=function(){var elem=document.querySelector('script[type="importmap"]');if(elem){elem=elem.innerHTML;if(elem)try{var obj=JSON.parse(elem);if(obj){var imports=obj.imports;if(imports)return imports}}catch(err){console.log("error parsing import map: "+err)}}return{}}(),entries=Object.entries(importMap),i=0,length=entries.length;i'),require(["css!modules/windowdrag.css"])),startInfo.plugins||[]),list=(console.log("Loading installed plugins"),["./modules/common/playback/playbackvalidation.js","./modules/common/playback/playaccessvalidation.js","./modules/common/playback/experimentalwarnings.js"]);appHost.supports("soundeffects")&&list.push("./modules/soundeffects/defaultsoundeffects/plugin.js"),appHost.supports("screensaver")&&(list.push("./modules/logoscreensaver/plugin.js"),list.push("./modules/backdropscreensaver/plugin.js"),list.push("./modules/photoscreensaver/plugin.js")),"android"===appMode?(list.push("native/android/mpvvideoplayer"),list.push("native/android/mpvaudioplayer")):"ios"===appMode?(list.push("native/ios/mpvaudioplayer"),list.push("native/ios/mpvvideoplayer")):"windows"===appMode&&(list.push("native/windows/mpvvideoplayer"),list.push("native/windows/nativeaudioplayer")),list.push("./modules/htmlaudioplayer/plugin.js"),"ios"===appMode&&list.push("native/ios/chromecast"),"android"===appMode&&(list.push("native/android/externalplayer"),list.push("native/android/chromecast")),globalThis.webapis&&webapis.avplay?list.push("native/tizen/tizenavplayer/plugin"):list.push("./modules/htmlvideoplayer/plugin.js"),list.push("./modules/photoplayer/plugin.js"),appHost.supports("remotecontrol")&&(list.push("./modules/sessionplayer.js"),!globalThis.chrome||responses.edge||responses.electron||"android"===appMode||list.push("./modules/chromecast/chromecastplayer.js")),(appHost.supports("youtube")||responses.electron)&&list.push("winjs"===appMode?"native/windows/youtubeplayer/plugin":"./modules/youtubeplayer/plugin.js");for(var i=0,length=externalPlugins.length;i