!function(){"use strict";var e={d:function(n,t){for(var o in t)e.o(t,o)&&!e.o(n,o)&&Object.defineProperty(n,o,{enumerable:!0,get:t[o]})},o:function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},n={};e.r(n),e.d(n,{deviceInfo:function(){return E},fetchAppId:function(){return t},fetchAppInfo:function(){return r},fetchAppRootPath:function(){return i},keyboard:function(){return H},libVersion:function(){return K},platform:function(){return P},platformBack:function(){return s},service:function(){return g},systemInfo:function(){return L}});var t=function(){return window.PalmSystem&&window.PalmSystem.identifier?window.PalmSystem.identifier.split(" ")[0]:""},o={},r=function(e,n){if(0===Object.keys(o).length){var r=function(n,r){if(!n&&r)try{o=JSON.parse(r),e&&e(o)}catch(n){console.error("Unable to parse appinfo.json file for",t()),e&&e()}else e&&e()},i=new window.XMLHttpRequest;i.onreadystatechange=function(){4===i.readyState&&(i.status>=200&&i.status<300||0===i.status?r(null,i.responseText):r({status:404}))};try{i.open("GET",n||"appinfo.json",!0),i.send(null)}catch(e){r({status:404})}}else e&&e(o)},i=function(){var e=window.location.href;if("baseURI"in window.document)e=window.document.baseURI;else{var n=window.document.getElementsByTagName("base");n.length>0&&(e=n[0].href)}var t=e.match(/.*:\/\/[^#]*\//);return t?t[0]:""},s=function(){if(window.PalmSystem&&window.PalmSystem.platformBack)return window.PalmSystem.platformBack()};function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,o)}return t}function c(e){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:function(){},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){},t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";if(!this.cancelled){var r={};try{r=JSON.parse(o)}catch(e){r={errorCode:-1,errorText:o,returnValue:!1}}var i=r,s=i.errorCode,u=i.returnValue;s||!1===u?(r.returnValue=!1,n(r)):(r.returnValue=!0,e(r)),t(r),this.subscribe||this.cancel()}}},{key:"cancel",value:function(){this.cancelled=!0,null!==this.bridge&&(this.bridge.cancel(),this.bridge=null),this.ts&&m[this.ts]&&delete m[this.ts]}}],n&&f(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,n}(),v={request:function(){var e=c({service:arguments.length>0&&void 0!==arguments[0]?arguments[0]:""},arguments.length>1&&void 0!==arguments[1]?arguments[1]:{});return(new p).send(e)}},g=v;function y(e){return y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},y(e)}var w={};if("object"===("undefined"==typeof window?"undefined":y(window))&&window.PalmSystem){if(window.navigator.userAgent.indexOf("SmartWatch")>-1)w.watch=!0;else if(window.navigator.userAgent.indexOf("SmartTV")>-1||window.navigator.userAgent.indexOf("Large Screen")>-1)w.tv=!0;else{try{var b=JSON.parse(window.PalmSystem.deviceInfo||"{}");if(b.platformVersionMajor&&b.platformVersionMinor){var h=Number(b.platformVersionMajor),S=Number(b.platformVersionMinor);h<3||3===h&&S<=0?w.legacy=!0:w.open=!0}}catch(e){w.open=!0}window.Mojo=window.Mojo||{relaunch:function(){}},window.PalmSystem.stageReady&&window.PalmSystem.stageReady()}if(window.navigator.userAgent.indexOf("Chr0me")>-1||window.navigator.userAgent.indexOf("Chrome")>-1){var O=window.navigator.userAgent.indexOf("Chr0me")>-1?window.navigator.userAgent.indexOf("Chr0me"):window.navigator.userAgent.indexOf("Chrome"),V=window.navigator.userAgent.slice(O).indexOf(" "),T=window.navigator.userAgent.slice(O+7,O+V).split(".");w.chrome=Number(T[0])}else w.chrome=0}else w.unknown=!0;var P=w,k={},j={},A=!1,C=!1,D=!1,x=[];function M(e){C&&D?(x.length&&(x.forEach(function(n){n!==e&&n(k)}),x=[]),e(k)):x.push(e)}function N(e){j.soundOutput&&0===j.soundOutput.indexOf("external_arc")&&"external_arc_sound_alive"!==j.soundOutput?e(!0):!j.soundOutput||0!==j.soundOutput.indexOf("tv_")&&"external_arc_sound_alive"!==j.soundOutput?e(null):e(!1)}function _(e){"auto"===j.soundOutputDigital||"passThrough"===j.soundOutputDigital?e(!0):e(!1)}function B(e,n){k.dolbyAtmos!==e&&(k.dolbyAtmos=e,C=!0,M(n))}function I(e){!function(e){k.sdkVersion&&e(k.sdkVersion.split(".")),(new p).send({service:"luna://com.webos.service.tv.systemproperty",method:"getSystemInfo",parameters:{keys:["sdkVersion"]},onSuccess:function(n){k.sdkVersion=n.sdkVersion||k.sdkVersion,e(k.sdkVersion.split("."))},onFailure:function(){e([0,0,0])}})}(function(n){parseInt(n[0],10)>=5?(new p).send({service:"luna://com.webos.service.arccontroller",method:"getARCState",subscribe:!0,onComplete:function(n){N(function(t){(t||!j.dolbyAtmosConfig&&"tv_speaker_external_arc_harmony"===j.soundOutput)&&_(function(t){B(!!t&&n.returnValue&&("ATMOS"===n.arcProfile||!0===n.earcATMOS),e)})})},onFailure:function(){console.log("[webOSTV.js] getARCState failed"),B(!1,e)}}):(new p).send({service:"luna://com.webos.service.eim",method:"getAllInputStatus",subscribe:!0,onComplete:function(n){N(function(t){!t&&(j.dolbyAtmosConfig||"tv_speaker_external_arc_harmony"!==j.soundOutput&&void 0!==j.soundOutput)||_(function(t){B(!!t&&n.returnValue&&!0===n.atmosDevice,e)})})},onFailure:function(){console.log("[webOSTV.js] getAllInputStatus failed"),B(!1,e)}})})}function R(e){void 0===j.dolbyAtmosConfig?(new p).send({service:"luna://com.webos.service.config",method:"getConfigs",parameters:{configNames:["tv.config.supportDolbyTVATMOS","tv.model.soundModeType"]},onComplete:function(n){j.dolbyAtmosConfig=n.configs?n.configs["tv.config.supportDolbyTVATMOS"]||"Dolby Atmos"===n.configs["tv.model.soundModeType"]:"failure",R(e)}}):!0===j.dolbyAtmosConfig?B(!0,e):!1===j.dolbyAtmosConfig?"tv_speaker_external_arc_harmony"===j.soundOutput?_(function(n){n?I(e):B(!1,e)}):void 0===j.soundOutput?(console.log("[webOSTV.js] soundOutput value is",j.soundOutput),I(e)):B(!1,e):(console.log("[webOSTV.js] dolbyAtmos config is",j.dolbyAtmosConfig),B(!1,e))}function z(e){(new p).send({service:"luna://com.webos.service.config",method:"getConfigs",parameters:{configNames:["com.webos.app.home.uiStyle","com.webos.service.utp.supportTunerless","tv.config.supportDolbyHDRContents","tv.hw.ddrSize","tv.hw.displayType","tv.hw.panelResolution","tv.model.mainboardMaker","tv.model.modelname","tv.model.supportHDR","tv.model.supportTemp8K","tv.model.TVBrandName","tv.model.TVManufacturer","tv.nyx.firmwareVersion","tv.nyx.platformVersion","wee.platformBizType"]},onComplete:function(n){if(n.configs){if(k.modelName=n.configs["tv.model.modelname"]||k.modelName,n.configs["tv.nyx.firmwareVersion"]&&"0.0.0"!==n.configs["tv.nyx.firmwareVersion"]||(n.configs["tv.nyx.firmwareVersion"]=n.configs["tv.nyx.platformVersion"]),n.configs["tv.nyx.firmwareVersion"]){k.version=n.configs["tv.nyx.firmwareVersion"];for(var t=k.version.split("."),o=["versionMajor","versionMinor","versionDot"],r=0;r=11?function(e){(new p).send({service:"luna://com.webos.service.systemprofile",method:"getProfiles",subscribe:!0,parameters:{names:["tunerless"]},onComplete:function(n){n.profiles&&n.profiles.tunerless?e(!n.profiles.tunerless.support):(n.missingProfiles&&n.missingProfiles.includes("tunerless"),e(!0))}})}(n):function(e){(new p).send({service:"luna://com.webos.service.config",method:"getConfigs",parameters:{configNames:["profile.list"]},onComplete:function(n){var t=n.configs&&n.configs["profile.list"];t&&t.includes("tunerless")?e(!1):e(!0)}})}(n):n(!0)}(k.sdkVersion,function(t){k.tuner=k.tuner&&t,!n.returnValue||function(e){var n=["com.webos.app.home.uiStyle","com.webos.service.utp.supportTunerless","tv.model.mainboardMaker","tv.model.supportTemp8K","tv.model.TVBrandName","tv.model.TVManufacturer","wee.platformBizType"],t=!1;if(e&&Array.isArray(e))for(var o=0;o