");const n=oe?oe.createHTML(e):e;if(Qe===Xe)try{t=(new H).parseFromString(n,rt)}catch(e){}if(!t||!t.documentElement){t=ne.createDocument(Qe,"template",null);try{t.documentElement.innerHTML=et?re:n}catch(e){}}const i=t.body||t.documentElement;return e&&o&&i.insertBefore(r.createTextNode(o),i.childNodes[0]||null),Qe===Xe?se.call(t,Ne?"html":"body")[0]:Ne?t.documentElement:i},vt=function(e){return ie.call(e.ownerDocument||e,e,T.SHOW_ELEMENT|T.SHOW_COMMENT|T.SHOW_TEXT|T.SHOW_PROCESSING_INSTRUCTION|T.SHOW_CDATA_SECTION,null)},Ct=function(e){return e instanceof U&&(void 0!==e.__depth&&"number"!=typeof e.__depth||void 0!==e.__removalCount&&"number"!=typeof e.__removalCount||"string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof z)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},St=function(e){return"function"==typeof S&&e instanceof S},kt=function(e,t,r){ce[e]&&d(ce[e],(e=>{e.call(o,t,r,st)}))},Et=function(e){let t=null;if(kt("beforeSanitizeElements",e,null),Ct(e))return bt(e),!0;const r=at(e.nodeName);if(kt("uponSanitizeElement",e,{tagName:r,allowedTags:ye}),e.hasChildNodes()&&!St(e.firstElementChild)&&_(/<[/\w]/g,e.innerHTML)&&_(/<[/\w]/g,e.textContent))return bt(e),!0;if(e.nodeType===K.progressingInstruction)return bt(e),!0;if(We&&e.nodeType===K.comment&&_(/<[/\w]/g,e.data))return bt(e),!0;if(!ye[r]||ke[r]){if(!ke[r]&&xt(r)){if(Se.tagNameCheck instanceof RegExp&&_(Se.tagNameCheck,r))return!1;if(Se.tagNameCheck instanceof Function&&Se.tagNameCheck(r))return!1}if(Ue&&!Ve[r]){const t=te(e)||e.parentNode,o=J(e)||e.childNodes;if(o&&t)for(let r=o.length-1;r>=0;--r){const n=G(o[r],!0);n.__removalCount=(e.__removalCount||0)+1,t.insertBefore(n,q(e))}}return bt(e),!0}return e instanceof k&&!wt(e)?(bt(e),!0):"noscript"!==r&&"noembed"!==r&&"noframes"!==r||!_(/<\/no(script|embed|frames)/i,e.innerHTML)?(Pe&&e.nodeType===K.text&&(t=e.textContent,d([de,pe,he],(e=>{t=f(t,e," ")})),e.textContent!==t&&(h(o.removed,{element:e.cloneNode()}),e.textContent=t)),kt("afterSanitizeElements",e,null),!1):(bt(e),!0)},Tt=function(e,t,o){if(Be&&("id"===t||"name"===t)&&(o in r||o in ct||"__depth"===o||"__removalCount"===o))return!1;if(xe&&!Ee[t]&&_(ue,t));else if(Te&&_(ge,t));else if(!ve[t]||Ee[t]){if(!(xt(e)&&(Se.tagNameCheck instanceof RegExp&&_(Se.tagNameCheck,e)||Se.tagNameCheck instanceof Function&&Se.tagNameCheck(e))&&(Se.attributeNameCheck instanceof RegExp&&_(Se.attributeNameCheck,t)||Se.attributeNameCheck instanceof Function&&Se.attributeNameCheck(t))||"is"===t&&Se.allowCustomizedBuiltInElements&&(Se.tagNameCheck instanceof RegExp&&_(Se.tagNameCheck,o)||Se.tagNameCheck instanceof Function&&Se.tagNameCheck(o))))return!1}else if(Ye[t]);else if(_(be,f(o,fe,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==w(o,"data:")||!Ge[e])if(Le&&!_(me,f(o,fe,"")));else if(o)return!1;return!0},xt=function(e){return"annotation-xml"!==e&&m(e,we)},Lt=function(e){kt("beforeSanitizeAttributes",e,null);const{attributes:t}=e;if(!t)return;const r={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:ve};let n=t.length;for(;n--;){const i=t[n],{name:a,namespaceURI:s,value:l}=i,c=at(a);let h="value"===a?l:b(l);if(r.attrName=c,r.attrValue=h,r.keepAttr=!0,r.forceKeepAttr=void 0,kt("uponSanitizeAttribute",e,r),h=r.attrValue,r.forceKeepAttr)continue;if(yt(a,e),!r.keepAttr)continue;if(!Ie&&_(/\/>/i,h)){yt(a,e);continue}if(We&&_(/((--!?|])>)|<\/(style|title)/i,h)){yt(a,e);continue}Pe&&d([de,pe,he],(e=>{h=f(h,e," ")}));const u=at(e.nodeName);if(Tt(u,c,h)){if(!Fe||"id"!==c&&"name"!==c||(yt(a,e),h=ze+h),oe&&"object"==typeof $&&"function"==typeof $.getAttributeType)if(s);else switch($.getAttributeType(u,c)){case"TrustedHTML":h=oe.createHTML(h);break;case"TrustedScriptURL":h=oe.createScriptURL(h)}try{s?e.setAttributeNS(s,a,h):e.setAttribute(a,h),Ct(e)?bt(e):p(o.removed)}catch(e){}}}kt("afterSanitizeAttributes",e,null)},It=function e(t){let o=null;const r=vt(t);for(kt("beforeSanitizeShadowDOM",t,null);o=r.nextNode();){if(kt("uponSanitizeShadowNode",o,null),Et(o))continue;const t=te(o);o.nodeType===K.element&&(t&&t.__depth?o.__depth=(o.__removalCount||0)+t.__depth+1:o.__depth=1),(o.__depth>=lt||o.__depth<0||C(o.__depth))&&bt(o),o.content instanceof l&&(o.content.__depth=o.__depth,e(o.content)),Lt(o)}kt("afterSanitizeShadowDOM",t,null)};return o.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=null,i=null,a=null,s=null;if(et=!e,et&&(e="\x3c!--\x3e"),"string"!=typeof e&&!St(e)){if("function"!=typeof e.toString)throw v("toString is not a function");if("string"!=typeof(e=e.toString()))throw v("dirty is not a string, aborting")}if(!o.isSupported)return e;if(Me||pt(t),o.removed=[],"string"==typeof e&&(He=!1),He){if(e.nodeName){const t=at(e.nodeName);if(!ye[t]||ke[t])throw v("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof S)r=_t("\x3c!----\x3e"),i=r.ownerDocument.importNode(e,!0),i.nodeType===K.element&&"BODY"===i.nodeName||"HTML"===i.nodeName?r=i:r.appendChild(i);else{if(!Ae&&!Pe&&!Ne&&-1===e.indexOf("<"))return oe&&Re?oe.createHTML(e):e;if(r=_t(e),!r)return Ae?null:Re?re:""}r&&Oe&&bt(r.firstChild);const c=vt(He?e:r);for(;a=c.nextNode();){if(Et(a))continue;const e=te(a);a.nodeType===K.element&&(e&&e.__depth?a.__depth=(a.__removalCount||0)+e.__depth+1:a.__depth=1),(a.__depth>=lt||a.__depth<0||C(a.__depth))&&bt(a),a.content instanceof l&&(a.content.__depth=a.__depth,It(a.content)),Lt(a)}if(He)return e;if(Ae){if(De)for(s=ae.call(r.ownerDocument);r.firstChild;)s.appendChild(r.firstChild);else s=r;return(ve.shadowroot||ve.shadowrootmode)&&(s=le.call(n,s,!0)),s}let p=Ne?r.outerHTML:r.innerHTML;return Ne&&ye["!doctype"]&&r.ownerDocument&&r.ownerDocument.doctype&&r.ownerDocument.doctype.name&&_(Y,r.ownerDocument.doctype.name)&&(p="\n"+p),Pe&&d([de,pe,he],(e=>{p=f(p,e," ")})),oe&&Re?oe.createHTML(p):p},o.setConfig=function(){pt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Me=!0},o.clearConfig=function(){st=null,Me=!1},o.isValidAttribute=function(e,t,o){st||pt({});const r=at(e),n=at(t);return Tt(r,n,o)},o.addHook=function(e,t){"function"==typeof t&&(ce[e]=ce[e]||[],h(ce[e],t))},o.removeHook=function(e){if(ce[e])return p(ce[e])},o.removeHooks=function(e){ce[e]&&(ce[e]=[])},o.removeAllHooks=function(){ce={}},o}return ee()}()},136723:(e,t,o)=>{var r,n;!function(i){if(void 0===(n="function"==typeof(r=i)?r.call(t,o,t,e):r)||(e.exports=n),!0,e.exports=i(),!!0){var a=window.Cookies,s=window.Cookies=i();s.noConflict=function(){return window.Cookies=a,s}}}((function(){function e(){for(var e=0,t={};e{"use strict";function r(e){return!e||"string"==typeof e||"number"==typeof e||"boolean"==typeof e||"bigint"==typeof e||"symbol"==typeof e}function n(e){return function(t){const o=t&&("error"in t&&t.error||"reason"in t&&t.reason);return e.setTimeout((()=>function(e){if(e instanceof Error){const t=e.stack,o=e.message,n=e.code;Error.captureStackTrace?.(e),Object.setPrototypeOf(e,{});for(const t of Reflect.ownKeys(e))delete e[t];e.message=r(o)?o:JSON.stringify(o),e.stack=r(t)?t:JSON.stringify(t),e.code=r(n)?n:JSON.stringify(n),Reflect.preventExtensions(e)}}(o)),0),console.error("Unhandled error/rejection",t),t&&t.preventDefault&&t.preventDefault(),!0}}function i(e){!function(e){for(const t in e.console){const o=t;if("function"!=typeof e.console[o]||"Console"===o||"assert"===o||"dir"===o||"dirxml"===o||"table"===o)continue;const n=e.console[o];e.console[o]=function(...e){return n(...e.map((e=>{if(r(e))return e;try{return JSON.stringify(e)}catch{return`Can't stringify ${e} - circular reference`}})))},Object.defineProperty(e.console[o],"name",{value:o,writable:!1})}}(e);const t=n(e);e.addEventListener("unhandledrejection",t),e.addEventListener("error",t)}var a,s,l,c,d,p,h,u,g,m,f;!function(e){e.Cold="Cold",e.Warm="Warm",e.Rollback="Rollback",e.Update="Update",e.Local="Local",e.Container="Container",e.Unknown="Unknown"}(a||(a={})),function(e){e.SessionID="tmp.sessionId",e.DeviceID="tmp.deviceId",e.IsRelaunchFromOOPs="tmp.relaunchFromOOPs",e.PreAuthUserID="tmp.preAuthUserId",e.T2WebOptInSessionId="tmp.t2WebOptInSessionId",e.AttemptedWebBootCount="tmp.numT2WebBootAttempts"}(s||(s={})),function(e){e.IndexPageReadStart="read-index-html",e.IndexPageSlowReadStart="slow-read-index-html",e.IndexPageStart="execute-index-html-script",e.CoreModuleLoaded="exp_loader_core_module_loaded",e.NotifyDesktop="exp_loader_notified_desktop",e.ConfigLoaded="exp_loader_config_loaded",e.MainChunksLoadingStart="exp_loader_load_bundles_start",e.MainChunksLoadingStop="exp_loader_load_bundles_stop",e.IndexPageStop="exp_loader_index_stop",e.AsyncEntryModuleFederationUrlsInited="exp_loader_init_module_federation_remote_urls_failure",e.AsyncEntryDownloadStart="exp_loader_async_entry_load_start",e.AsyncEntryDownloadStop="exp_loader_async_entry_load_stop",e.AsyncEntryImportFailure="exp_loader_import_async_entry_failure",e.ActivateAppStart="exp_loader_start_activate_app",e.ClientStartStop="client_start_stop"}(l||(l={})),function(e){e.ExpLoaderFailure="ExpLoaderFailure",e.LoadBundlesFailure="LoadBundlesFailure",e.ParseIndexPageFailure="ParseIndexPageFailure",e.CoreStartTimeout="CoreStartTimeout",e.PreTelemetryCoreInitFailure="PreTelemetryCoreInitFailure"}(c||(c={})),function(e){e.Windows="windows",e.Mac="mac",e.Linux="linux",e.ChromeOS="chromeos",e.Android="android",e.IOS="ios",e.WindowsPhone="windowsphone",e.Unknown="unknown"}(d||(d={})),function(e){e.Web="web",e.PWA="pwa",e.Desktop="desktop",e.CDLWorker="cdlworker",e.Embed="embed",e.Maglev="maglev",e.OutlookWeb="Outlook Web",e.OutlookDesktop="Outlook Desktop",e.OfficeWeb="Office Web",e.OfficeDesktop="Office Desktop",e.WordWeb="Word Web",e.WordDesktop="Word Desktop",e.ExcelWeb="Excel Web",e.ExcelDesktop="Excel Desktop",e.PowerPointWeb="PowerPoint Web",e.PowerPointDesktop="PowerPoint Desktop"}(p||(p={})),function(e){e.Embed="embed"}(h||(h={})),function(e){e.Outlook="outlook",e.Unknown="unknown"}(u||(u={})),function(e){e.Edge="edge",e.Safari="safari",e.Chrome="chrome",e.Firefox="firefox",e.Electron="electron",e.Unknown="unknown"}(g||(g={})),function(e){e[e.Web=1415]="Web",e[e.Desktop=27]="Desktop",e[e.Mac=28]="Mac",e[e.Linux=41]="Linux",e[e.Rigel=34]="Rigel",e[e.SurfaceHub=35]="SurfaceHub",e[e.SurfaceHub2=38]="SurfaceHub2",e[e.Maglev=48]="Maglev",e[e.MaglevT21=49]="MaglevT21",e[e.MaglevMacT21=50]="MaglevMacT21",e[e.MaglevRoomsT21=51]="MaglevRoomsT21",e[e.MetaOsOffice=5500]="MetaOsOffice",e[e.MetaOsOutlook=5501]="MetaOsOutlook",e[e.MetaOsBing=5502]="MetaOsBing",e[e.MetaOsCopilot=5503]="MetaOsCopilot",e[e.MetaOsEdgeSidebar=5504]="MetaOsEdgeSidebar",e[e.MetaOsExcel=5505]="MetaOsExcel",e[e.MetaOsLoop=5506]="MetaOsLoop",e[e.MetaOsPowerpoint=5507]="MetaOsPowerpoint",e[e.MetaOsWindows=5508]="MetaOsWindows",e[e.MetaOsWord=5509]="MetaOsWord",e[e.TV=3623]="TV",e[e.Automotive=3624]="Automotive",e[e.SttOutlookWeb=5600]="SttOutlookWeb"}(m||(m={})),function(e){e.Supported="Supported",e.Unsupported="Unsupported",e.Unknown="Unknown"}(f||(f={}));const w="teams-precache-v2";function b(e,t){try{const t=function(e){const t=e?.document.getElementsByTagName("head");if(!t)return;return t[0]}(e),o=t?.dataset?.config;return o?JSON.parse(decodeURIComponent(o)):{}}catch(e){const o=`Failed to parse head-data config with error: ${e}`;t?.errorToTelemetry?t?.errorToTelemetry?.(o,"webclient_framework_head_config",void 0,!0):t?.error?.(o)}return{}}function y(e){const t=e?.navigator.userAgent||"";return-1!==t.indexOf("maglev/")||-1!==t.indexOf("Teams/")}const _=e=>function(e){const t=e.match(/(maglev|Teams)\/(\d+\.\d+\.\d+\.\d+)(?:\/| \()(\d+)(?:\s|\)|$)/);if(t&&t.length>3)switch(t[3]){case"49":return m.MaglevT21;case"50":return m.MaglevMacT21;case"51":return m.MaglevRoomsT21}return m.Maglev}(e?.navigator.userAgent||"");function v(e){const t=e.navigator?.serviceWorker?.controller;return"activated"===t?.state}async function C(e,t,o){let r=!1;try{if(e&&v(t)){r=void 0!==await t.caches.match(e,{cacheName:w})}}catch{o?.error("Checking assets in sw cache failed")}return r}async function S(e,t,o){let r="";try{if(t){let o=0;const n=new Promise((t=>{o=e.setTimeout((()=>{t()}),5e3)})),i=async function(e,t){return new Promise(((o,r)=>{const n=new MessageChannel;n.port1.onmessage=e=>{e.data.error?r(e.data.error):o(e.data)},e.postMessage(t,[n.port2])}))}(t,"getSWVersion").then((t=>{r=t,e.clearTimeout(o),o=0}));await Promise.race([i,n])}}catch{o?.error("Get registerred SW version failed.")}return r}function k(e,t){const o=t.getEntriesByName(e);if(o&&o.length>0)return o[0]}function E(e,t){void 0===k(e,t)&&t.mark(e)}const T="tmp",x=145e3,L=135e3,I=`${T}.experienceLoaderOverrides`,P=`${T}.numT2WebBootAttempts`,W=`${T}.lastT2WebBootAttemptRecordTime`,N=`${T}.isOptedIntoT2Web`,M=`${T}.lastT2WebOptOutInfo`,O=`${T}.telemetryBroadcastEnabledCache`,A="tmp.forceT2Only",D="clientexperience",R="tmp.globalScriptErrorFromPreviousSession",B=[l.IndexPageReadStart,l.IndexPageStart,l.CoreModuleLoaded,l.NotifyDesktop,l.ConfigLoaded,l.MainChunksLoadingStart,l.MainChunksLoadingStop,l.IndexPageStop,l.AsyncEntryDownloadStart,l.AsyncEntryModuleFederationUrlsInited,l.AsyncEntryDownloadStop];var F,z,U,H;!function(e){e.Failure="failure",e.Timeout="timeout",e.Abandoned="abandoned"}(F||(F={})),function(e){e.ClientStart="client_start",e.WebClientInputInvalid="web_client_input_invalid",e.ShowPreCoreErrorPage="precore_error_page",e.FallbackToT1Web="fallback_to_t1_web",e.ClearSWForClientStartFailure="clear_sw_for_client_start_failure",e.SidecarScriptError="sidecar-script-error",e.SidecarSemverMismatch="sidecar-semver-mismatch",e.SidecarCoreError="sidecar-core-error"}(z||(z={}));class ${constructor(e,t,o,r,n){this.globalWindow=e,this.telemetryService=o,this.diagnosticsService=r,this.platformService=n,this.logger=t.newLogger("BuildLoader","frameworks-loader");const i=this.globalWindow.__webpack_public_path__;this.staticsPath="";try{if(i){const e=new URL(i);this.staticsPath=e.origin}else this.logger.errorNoPii("staticPath is not valid")}catch{this.logger.warnNoPii(`Failed to parse dynamic staticsPath origin from '${i}'`)}this.urlPolicy=window.trustedTypes?.createPolicy("@msteams/frameworks-loader#load-build-chunk",{createScriptURL:this.createTrustedChunkSrcFunction.bind(this)})}async loadBuild(e){this.logger.debugNoPii("Build manifest:",e);const{asyncEntry:t,chunks:o,buildTimeConfigs:r}=e;if(r){const e=`config-${this.platformService.environment}`,t=r.filter((t=>t.path.indexOf(e)>=0));if(t.length>0){const e=t[0],o=this.globalWindow.document.createElement("link");o.href=e.path,o.as="script",o.rel="preload",e.integrity&&(o.integrity=e.integrity),o.crossOrigin="anonymous",this.globalWindow.document.head.appendChild(o)}}if(o){const e=!!this.globalWindow.localStorage.getItem(R);e&&this.globalWindow.localStorage.removeItem(R),this.globalWindow.performance.mark(l.MainChunksLoadingStart);try{this.diagnosticsService.persistDiagnostics();let r=[];if(t?.chunks?.length){const o=t.chunks.map((t=>this.loadScriptWithRetry(t,3,2,e)));r=await Promise.all(o)}let n=o;this.platformService.enableSriForDynamicImports||(n=o.filter((e=>!e.isIntegritiesManifest)));const i=n.map((t=>this.loadScriptWithRetry(t,3,2,e))),a=await Promise.all(i),s=[...r,...a];this.telemetryService.generateLoadBundlesRetryInfo(s),E(l.MainChunksLoadingStop,this.globalWindow.performance)}catch(e){const t=e.errorMessage||e,o=e.errorType||F.Failure,r=e.isLoadFromSWCache||"";throw this.logger.errorNoPii(e),this.globalWindow.performance.mark(l.MainChunksLoadingStop),await this.telemetryService.failClientStartScenarioWithMarks([l.IndexPageStart,l.MainChunksLoadingStart],o,{reason:t,isLoadedFromServiceWorkerCache:r}),e}}else this.logger.errorNoPii("Something wrong, there is no main chunks to load")}async loadScriptWithRetry(e,t,o,r){return new Promise((async(n,i)=>{let a=0,s=0,l=!1,c={};for(;!l&&a<=t&&s<=o;)try{await this.loadScriptInternal(e,a,r),l=!0}catch(e){a++,e.errorType===F.Timeout&&s++,c=e}l&&n({retryCount:a,retryDetails:e.path}),i(c)}))}async loadScriptInternal(e,t,o){return new Promise(((r,n)=>{const i=this.globalWindow.document.createElement("script"),a=this.globalWindow.setTimeout((async()=>{const t=`Download timeout: ${e.path}`;this.logger.warnNoPii(t);const o=await C(e.path,this.globalWindow),r={errorMessage:t,errorType:F.Timeout,isLoadFromSWCache:o.toString()};n(r)}),3e4);i.onload=async()=>{a&&this.globalWindow.clearTimeout(a),r()},i.onerror=async t=>{a&&this.globalWindow.clearTimeout(a);const o=`Failed to load: ${e.path} ${"string"==typeof t?t:t instanceof ErrorEvent?t.message:""}`.trim();this.logger.errorNoPii(o),this.globalWindow.document.head.removeChild(i);const r=await C(e.path,this.globalWindow),s={errorMessage:o,errorType:F.Failure,isLoadFromSWCache:r.toString()};n(s)},e.integrity&&(i.integrity=e.integrity,i.crossOrigin="anonymous"),i.noModule=e.isPolyfill,i.defer=!0,i.async=!1;let s="";(t>0||o)&&(s=`?cb=${Date.now()}`);const l=`${e.path}${s}`;let c;this.logger.logNoPii(`Trying to load: ${l}`),c=this.urlPolicy?this.urlPolicy.createScriptURL(l):this.createTrustedChunkSrcFunction(l),c.toString()?i.src=c:n(`Load ${l} was failed.`),this.globalWindow.document.head.appendChild(i)}))}createTrustedChunkSrcFunction(e){let t;if(t=e.startsWith("/")?new URL(e,this.staticsPath):new URL(e),this.staticsPath){return this.staticsPath===t.origin&&"https:"===t.protocol?e:""}return this.logger.errorNoPii("staticPath is not valid"),""}}!function(e){e.Perf="perf",e.Scenario="scenarions",e.Logging="loggingns",e.Heartbeat="heartbeatns",e.Http="httpns",e.UserBI="userbins",e.Endpoint="endpointns"}(U||(U={})),function(e){e.ExpLoader="ExpLoader",e.Core="Core",e.Auth="Auth",e.App="App"}(H||(H={}));const V=/[xy]/g;function j(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(V,(e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))}var G=o(335206),q=o.n(G),Y='"',J="prototype",Z=Object[J].hasOwnProperty;function K(e,t){if(e)for(var o in e)Z.call(e,o)&&t.call(e,o,e[o])}function X(e,t){var o,r="https://browser.events.data.microsoft.com/OneCollector/1.0/";if(t){if(t.endpointUrl&&(r=t.endpointUrl),!t.apikey)return"invalid ApiKey (aka tenant-token)";o=t.apikey}var n=function(e){if(o=e,"[object Date]"===Object[J].toString.call(o)){var t=function(e){var t=String(e);return 1===t.length&&(t="0"+t),t};return e.getUTCFullYear()+"-"+t(e.getUTCMonth()+1)+"-"+t(e.getUTCDate())+"T"+t(e.getUTCHours())+":"+t(e.getUTCMinutes())+":"+t(e.getUTCSeconds())+"."+String((e.getUTCMilliseconds()/1e3).toFixed(3)).slice(2,5)+"Z"}var o}(new Date),i=0;if(null==e)return"input is null or undefined";if(null===e.name||void 0===e.name)return"telemetry item expects valid name";null===e.iKey||void 0===e.iKey?e.iKey=function(e){if(e){var t=e.indexOf("-");if(t>-1)return e.substring(0,t)}return""}(o):0!=o.indexOf(e.iKey)&&console.warn("event iKey does not match the apikey (tenant-token). There may be issues ingesting telemetry"),null!==e.time&&void 0!==e.time||(e.time=n);var a=e.baseData,s=e.data,l=oe("name",e.name,!0);return l+=oe("time",e.time),l+=oe("ver",e.ver),l+=oe("iKey","o:"+e.iKey),l+="&apikey="+o,e.ext&&K(e.ext,(function(e,t){K(t,(function(t,o){if(re(o)){var r=de(t,o,!0);re(r)&&(l+=oe("ext."+e+"."+t,r.value))}}))})),K(a,(function(e,t){var o="-"+e,r=de(e,t,!0);r&&((i=te(r.value,r.kind,r.propertyType))>0&&(o=o+"*"+i.toString()),l+=oe(o,r.value))})),K(s,(function(e,t){var o="*"+e,r=de(e,t,!0);r&&((i=te(r.value,r.kind,r.propertyType))>0&&(o=o+"*"+i.toString()),l+=oe(o,r.value))})),r+"t.js?"+l}function Q(e){return ae(e,"number")}function ee(e){return ae(e,"boolean")}function te(e,t,o){var r=-1;return ie(e)?r:(t&&t>0&&(32===t?r=1<<13:t<=13&&(r=t<<5)),ce(o)&&function(e){return!!(Q(e)&&e>=0&&e<=9)}(o)?(-1===r&&(r=0),r|o):(le(e)&&(e=e[0]),-1!==r?r|function(e){if(ie(e))return-1;if(Q(e))return 6;if(se(e))return 1;if(ee(e))return 7;return-1}(e):Q(e)?6:r))}function oe(e,t,o){var r;return void 0===o&&(o=!1),re(t)?(r=o?"qsp=true&":"&",Q(t)||ee(t)?r+=e+"="+t:r+="object"==typeof t?e+"="+JSON.stringify(t):e+"="+Y+encodeURIComponent(t)+Y,r):""}function re(e){return!(ne(e)||""===e)}function ne(e){return ie(e)||null===e}function ie(e){return void 0===e||ae(e,"undefined")}function ae(e,t){return typeof e===t}function se(e){return ae(e,"string")}function le(e){return e instanceof Array}function ce(e){return!ie(e)}function de(e,t,o){if(!se(e)||ne(t)||""===t)return null;if(se(t)||Q(t)||ee(t)||le(t))t={value:t};else if("object"!=typeof t||Z.call(t,"value")){if(ne(t.value)||""===t.value||!se(t.value)&&!Q(t.value)&&!ee(t.value)&&!le(t.value))return null}else t={value:o?JSON.stringify(t):t};if(le(t.value)&&!(t.value.length>0))return null;if(ce(t.kind)){if(le(t.value)||!function(e){return!!(e&&Q(e)&&(e>=0&&e<=13||32===e))}(t.kind))return null;t.value=t.value.toString()}return t}class pe{constructor(e,t){if(this.baseEventData={name:""},this.initialize(t),this.logger=e.newLogger("TelemetrySenderGetCollector","services-io-sender-get-collector"),!pe.UrlPolicy)try{const e=window.trustedTypes?.createPolicy("@msteams/frameworks-loader#telemetry-sender",{createScriptURL:pe.createTrustedURLFunction});pe.UrlPolicy=e}catch(e){this.logger.errorNoPii?.(`Create 1ds URL trustedType policy failed with error ${e}`)}}async sendTelemetry(e,t){return new Promise(((o,r)=>{const n={...this.baseEventData};n.name=e,this.setDataContext(n,t);const i=document.createElement("script"),a=X(n,{apikey:this.apikey});let s;s=pe.UrlPolicy?pe.UrlPolicy.createScriptURL(a,this.logger):pe.createTrustedURLFunction(a,this.logger),s.toString()?(i.src=s,i.onload=()=>{this.logger.log("Telemetry sent."),o()},i.onerror=e=>{const t=`Telemetry failed to send: ${e}`;this.logger.error(t),r(t)},document.body.appendChild(i)):r("Sending telemetry failed, 1DS URL is not valid")}))}setEventBaseContext(e){this.baseEventData={...this.baseEventData,...e}}setDataContext(e,t){return q()(t,((t,o)=>{e.data&&(e.data[o]=t)})),e}initialize(e){this.setEventBaseContext(e),this.baseEventData.data={},this.apikey=this.baseEventData.iKey,this.baseEventData.iKey=void 0}static createTrustedURLFunction(e,t){try{const t=new URL(e);if("https:"===t.protocol&&"browser.events.data.microsoft.com"===t.host&&t.pathname.startsWith("/OneCollector"))return e}catch{t.errorNoPii?.("1DS collector url is not valid")}return""}}const he={instrumentationKey:"bc3902d8132f43e3ae086a009979fa88-632130b2-9455-44a6-80e2-d7457b6eb8ca-7193"};class ue{constructor(e,t,o,r,n){this.globalWindow=e,this.loggerFactory=t,this.loaderPlatformService=o,this.hostCommsService=r,this.config=n,this.skipTelemetryBootType=[a.Unknown,a.Local],this.allowSendTelemetry=!0,this._isRelaunchFromPreCoreOOPs=!1,this.generalScenarioData=void 0,this.clientStartScenarioAlreadyFailed=!1,this.oneDSSender=void 0,this._maxStepsCountCanBeSentViaTelemetryCollector=50,this._firstStepCountWhenStepsBeThrottled=10,this.logger=this.loggerFactory.newLogger("LoaderTelemetryService","frameworks-loader"),this.initiateTelemetryValuesPromise=this.initiateTelemetryValues(),this.setAllowSendTelemetry()}async failClientStartScenarioWithMarks(e,t,o){if(this.clientStartScenarioAlreadyFailed)return void this.logger.logNoPii("client_start already completed.");if(this.clientStartScenarioAlreadyFailed=!0,!this.allowSendTelemetry)return void this.logger.logNoPii("Block failing client_start scenario with marks.");this.globalWindow.performance.mark(l.ClientStartStop),e&&0!==e.length||(e=this.getExistingClientStartMarks()),e.push(l.ClientStartStop);const r=[],n=e.length-1;for(let t=0;t<=n;t++){let i="success",a=e[t],s="";if(0===a.indexOf("pre_core_error_")&&a.indexOf(":reason:")>0){i="failure";const e=a.split(":reason:");a=e[0],s=e[1]}r.push(this.createTelemetryStep(i,s,0,"",(t+1).toString(),a,t>0?e[t-1]:void 0)),t===n-1&&""!==s&&(o={...o||{},reason:`${s} ${o?.reason}`})}const i=r[n];i.Scenario_Step="stop",i.Scenario_Status=t,i.userAgent=this.globalWindow.navigator?.userAgent,n>0&&(i.previousStep=r[n-1].Scenario_Step,i.errorCode=function(e){if(0===e.indexOf("pre_core_error_"))return c.PreTelemetryCoreInitFailure;let t=c.ExpLoaderFailure;switch(e){case l.IndexPageStart:t=c.ParseIndexPageFailure;break;case l.MainChunksLoadingStart:t=c.LoadBundlesFailure;break;case l.MainChunksLoadingStop:case l.IndexPageStop:case l.AsyncEntryModuleFederationUrlsInited:case l.AsyncEntryDownloadStart:case l.AsyncEntryDownloadStop:t=c.CoreStartTimeout}return t}(r[n-1].Scenario_Step||"")),o&&Object.keys(o).length>0&&(r[n]={...i,...o}),await this.failClientStartScenarioWithSteps(r)}generateLoadBundlesRetryInfo(e){e&&e.length>0?this.chunckLoadingRetryInfo=e.reduce(((e,t)=>t.retryCount>0?{retryCount:e.retryCount+1,retryDetails:`${e.retryDetails} ${t.retryDetails}: ${t.retryCount};`}:e),{retryCount:0,retryDetails:""}):this.chunckLoadingRetryInfo=void 0}getSuccessClientStartTelemetrySteps(){const e=[];return B.forEach((t=>{const o=this.createTelemetryStep("success","",0,"","",t);t===l.MainChunksLoadingStop&&this.addRetryInfoToStep(o),e.push(o)})),e}get deviceInfo(){return this._deviceInfo}get sessionId(){return this._sessionId}get preAuthUserId(){return this._preAuthUserId}get deviceId(){return this._deviceInfo?.deviceId||this.globalWindow.localStorage.getItem(s.DeviceID)?.toString()}get RelaunchReason(){return this._isRelaunchFromPreCoreOOPs?"ErrorPageReboot; source: expLoader":void 0}async sendNewScenarioThroughONEDS(e,t){if(!this.allowSendTelemetry)return void this.logger.logNoPii("Block sending new scenario through OneDS.");const o={...await this.createGeneralScenarioData(),...t};o.Scenario_Name=e,o.Scenario_Status=t.Scenario_Status||F.Failure,o.Scenario_Step="stop",this.sendTelemetryThroughOneDS(o)}clearLoaderMarks(){B.forEach((e=>{e!==l.IndexPageStart&&this.globalWindow.performance.clearMarks(e)}))}async failClientStartScenarioWithSteps(e){if(!this.allowSendTelemetry||0===e.length||e[0].Scenario_Name!==z.ClientStart)return void this.logger.logNoPii("Block failing client_start scenario wtih steps.");const t=await this.createGeneralScenarioData();if(this.loaderPlatformService.isMaglev&&this.hostCommsService){const o=e.map((e=>({...t,...e})));await this.failClientStartScenarioThroughPIE(o)}else{const o=e.find((e=>"stop"===e.Scenario_Step)),r=this.createStepsTelemetry(e),n={showOops:"true",...t,...o,Scenario_Steps:JSON.stringify(r)};this.shouldClientStartBeAbandoned(n)&&(n.Scenario_Status=F.Abandoned),this.sendTelemetryThroughOneDS(n)}this.clearLoaderMarks()}createStepsTelemetry(e){const t=[];return e.length>this._maxStepsCountCanBeSentViaTelemetryCollector&&(e=e.slice(0,this._firstStepCountWhenStepsBeThrottled).concat(e.slice(e.length+this._firstStepCountWhenStepsBeThrottled-this._maxStepsCountCanBeSentViaTelemetryCollector))),e.forEach((e=>{t.push({Scenario_Status:e.Scenario_Status,Scenario_Step:e.Scenario_Step,stepDelta:e.stepDelta,sequence:e.sequence})})),t}getExistingClientStartMarks(){const e=[];for(const t of B){k(t,this.globalWindow.performance)&&e.push(t)}const t=this.getAdditionalClientStartMarks();return e.concat(t)}sendTelemetryThroughOneDS(e){this.oneDSSender||this.createOneDSSender(),this.oneDSSender?.sendTelemetry(U.Scenario,e),this.logger.logNoPii(`Send ONEDS Telemetry for scenario: ${e.Scenario_Name}, step: ${e.Scenario_Step}, status: ${e.Scenario_Status}`)}createOneDSSender(){const e={iKey:he.instrumentationKey};this.oneDSSender=new pe(this.loggerFactory,e)}async failClientStartScenarioThroughPIE(e){try{if(this.loaderPlatformService.isMaglev&&this.hostCommsService){let t;const o=[];if(e.forEach((e=>{"stop"===e.Scenario_Step?t={scenarioName:e.Scenario_Name||"",scenarioStatus:e.Scenario_Status,addTelemetry:!0,logData:this.generateOneStepDataForPIE({...e,showOops:"true"}),previousSteps:o}:o.push({name:e.Scenario_Step||"",logData:this.generateOneStepDataForPIE(e)})})),t){const e=await this.hostCommsService.loadModule("scenario");e?.setScenarioCompletion?.(t),this.logger.error?.(`Send scenario ${t.scenarioStatus} through PIE`)}else this.logger.error?.("Failed generating failure scenario telemetry for PIE API")}}catch(e){this.logger.error?.(`Send telemetry through PIE failed with error ${e}`)}}generateOneStepDataForPIE(e){return Object.keys(e).filter((t=>void 0!==e[t])).map((t=>({name:t,value:e[t]?.toString()||""})))}async createGeneralScenarioData(){if(!this.generalScenarioData){this.logger.logNoPii("Create general scenario telemetry info"),await this.initiateTelemetryValuesPromise;const e=this.getRingFinderInfo(),{bootType:t,buildVersion:o,deeplinkId:r,environment:n,isMaglev:i,networkState:a,pdsEnvironment:l,platformId:c,ring:d}=this.loaderPlatformService;let p="";"suspectedOnline"===a&&(p=await async function(e){let t="online",o=0;try{const r=new Promise((r=>{o=e.setTimeout((()=>{t="pingTimeout",r()}),1e3)})),n=new URL(`/diagnostics/network?cb=${Date.now()}`,e.location.href),i=e.fetch(n).then((()=>{o&&(e.clearTimeout(o),o=0)}));await Promise.race([i,r])}catch{t="offline"}return t}(this.globalWindow));const h=this.globalWindow.localStorage.getItem(s.T2WebOptInSessionId),u=v(this.globalWindow);let g="";u&&(void 0!==this.loaderPlatformService.activeServiceWorkerVersion?g=this.loaderPlatformService.activeServiceWorkerVersion:void 0!==this.loaderPlatformService.activeServiceWorkerVersionPromise&&(g=await this.loaderPlatformService.activeServiceWorkerVersionPromise));const m=new URLSearchParams(this.globalWindow.location.search).get("correlationId");this.generalScenarioData={AppInfo_BootType:t,AppInfo_ClientType:i?"maglev":"web",AppInfo_ExperienceName:this.config.experienceName,AppInfo_PlatformId:`${c}`,AppInfo_Version:`${c}/${o}`,AppInfo_Environment:n,AppInfo_ServiceWorkerState:u?"active":"noActiveFound",deeplinkId:r||void 0,DeviceInfo_Id:this.deviceId,DeviceInfo_OsName:this._deviceInfo?.osName,DeviceInfo_OsVersion:this._deviceInfo?.osVersion,EventInfo_ExternalCorrelationId:m||void 0,environment:l,loaderNetworkPingState:p,navigatorNetworkState:a,RelaunchReason:this.RelaunchReason,AppInfo_ServiceWorkerVersion:g,Session_Id:this.sessionId,Session_TelemetryContext:"experience_loader",t2WebOptInSessionId:h||void 0,userAgent:this.globalWindow.navigator.userAgent,UserInfo_Ring:d,UserInfo_Id:e?.oid,UserInfo_TenantId:e?.tid,UserInfo_TelemetryRegion:"ROW",telemetryRegionFetchComplete:!1}}return this.generalScenarioData}setAllowSendTelemetry(){const{bootType:e}=this.loaderPlatformService;this.skipTelemetryBootType.includes(e)?(this.logger.logNoPii(`No telemetry should be sent for bootType ${e}`),this.allowSendTelemetry=!1):this.allowSendTelemetry=!0}async initiateTelemetryValues(){let e,t;if(this.loaderPlatformService.isMaglev&&this.hostCommsService){t=await this.hostCommsService.loadModule("telemetry");const o=await(t?.getContext?.({columns:["sessionId"]}));o&&1===o.length&&"sessionId"===o[0].column&&(this._sessionId=o[0].value);const r=await this.hostCommsService.loadModule("osutils");this._deviceInfo=await(r?.getDeviceInfo?.()),e=this._deviceInfo?.deviceId}return e||(e=this.globalWindow.localStorage.getItem(s.DeviceID)||j()),this.loaderPlatformService.isMaglev||(this._isRelaunchFromPreCoreOOPs=!!this.globalWindow.sessionStorage.getItem(s.IsRelaunchFromOOPs),this._isRelaunchFromPreCoreOOPs&&this.globalWindow.sessionStorage.removeItem(s.IsRelaunchFromOOPs)),this._sessionId||(this._sessionId=j()),this._preAuthUserId||(this._preAuthUserId=await(t?.getPreAuthUserSamplingId?.())),this.globalWindow.sessionStorage.setItem(s.SessionID,this._sessionId),this.logger.logNoPii(`SessionId set as ${this._sessionId}`),this.globalWindow.localStorage.setItem(s.DeviceID,e),this.logger.logNoPii(`DeviceId set as ${e}`),Promise.resolve()}getRingFinderInfo(){try{const e=this.loaderPlatformService.getCookieByName("ringFinder");if(!e)return;return JSON.parse(decodeURIComponent(e))}catch(e){return void this.logger.errorNoPii(`Error parsing ringFinder cookie: ${e}`)}}addRetryInfoToStep(e){this.chunckLoadingRetryInfo&&this.chunckLoadingRetryInfo.retryCount>0&&e&&!e.retryCount&&(e.retryCount=this.chunckLoadingRetryInfo.retryCount,e.retryReason=this.chunckLoadingRetryInfo.retryDetails)}createTelemetryStep(e,t,o,r,n,i,a){const s=a&&this.calculateStepDelta(a,i),l=k(i,this.globalWindow.performance);return{scenarioPhase:i.startsWith("core_")?H.Core:H.ExpLoader,Scenario_Name:z.ClientStart,Scenario_Status:e,Scenario_Step:i,error:t,stepDelta:s?.toString(),timeStamp:l?.startTime||this.globalWindow.performance.now(),sequence:n,retryCount:o,retryReason:r}}calculateStepDelta(e,t){return function(e,t,o,r){let n;if(function(e,t){return!e.some((e=>t.getEntriesByName(e).length<=0))}([t,o],r))try{r.measure(e,t,o);const i=r.getEntriesByName(e)[0];n=i?.duration,n&&(n=Math.round(n)),r.clearMeasures(e)}catch(e){n=void 0}return n}("calculateStepdetlata",e,t,this.globalWindow.performance)}getAdditionalClientStartMarks(){const e=this.globalWindow.performance?.getEntriesByType("mark"),t=e.filter((e=>e.name&&(e.name.startsWith("exp_loader_err_")||e.name.startsWith("core_")))).map((e=>e.name.split(" ")[0]));let o=e.filter((e=>e.name&&e.name.startsWith("pre_core_error_"))).map((e=>e.name));return o.length>this._firstStepCountWhenStepsBeThrottled&&(o=o.slice(0,this._firstStepCountWhenStepsBeThrottled)),t.concat(o.reverse())}shouldClientStartBeAbandoned(e){return(e.Scenario_Status===F.Failure||e.Scenario_Status===F.Timeout)&&e.previousStep===l.MainChunksLoadingStart&&"web"===e.AppInfo_ClientType&&"active"!==e.AppInfo_ServiceWorkerState&&!!e.navigatorNetworkState&&"online"!==e.loaderNetworkPingState}}var ge,me;!function(e){e[e.loadingApp=0]="loadingApp",e[e.coreInit=1]="coreInit"}(ge||(ge={})),function(e){e[e.Loading=0]="Loading",e[e.Error=1]="Error"}(me||(me={}));const fe={"ar-sa":{loading_aria_label:"يتم الآن التحميل...",oops_error_title:"عذراً",oops_error:"عذراً، هناك خطأ غير معروف!",oops_loading_error:"عذراً، فشل تحميل التطبيق.",oops_init_error:"عذراً، فشلت تهيئة التطبيق.",retry_error:"إعادة محاولة"},"az-latn-az":{loading_aria_label:"Yüklənir...",oops_error_title:"Ups",oops_error:"Ups, naməlum xəta!",oops_loading_error:"Proqram yüklənmədi.",oops_init_error:"Proqramı başlatmaq olmadı.",retry_error:"Təkrar cəhd et"},"bg-bg":{loading_aria_label:"Зареждане...",oops_error_title:"Грешка",oops_error:"Неизвестна грешка!",oops_loading_error:"Опа, приложението не успя да се зареди!",oops_init_error:"Опа, приложението не успя да се инициализира!",retry_error:"Повторен опит"},"ca-es":{loading_aria_label:"S'està carregant...",oops_error_title:"Vaja!",oops_error:"Vaja, error desconegut!",oops_loading_error:"Vaja, no s'ha pogut carregar l'aplicació.",oops_init_error:"Vaja, no s'ha pogut inicialitzar l'aplicació.",retry_error:"Torna-ho a provar"},"ca-es-valencia":{loading_aria_label:"S'està carregant...",oops_error_title:"Vaja!",oops_error:"Vaja, error desconegut!",oops_loading_error:"Vaja, no s'ha pogut carregar l'aplicació.",oops_init_error:"Vaja, no s'ha pogut inicialitzar l'aplicació.",retry_error:"Torna-ho a provar"},"cs-cz":{loading_aria_label:"Načítání…",oops_error_title:"Jejda",oops_error:"Jejda, neznámá chyba",oops_loading_error:"Ale ne, aplikaci se nepovedlo načíst!",oops_init_error:"Ale ne, aplikaci se nepovedlo inicializovat!",retry_error:"Zkusit znovu"},"cy-gb":{loading_aria_label:"Llwytho...",oops_error_title:"Wps",oops_error:"Wps, gwall anhysbys!",oops_loading_error:"Wps, wedi methu â llwytho'r ap!",oops_init_error:"Wps, wedi methu ag ymgychwyn yr ap!",retry_error:"Ailgynnig"},"da-dk":{loading_aria_label:"Indlæser...",oops_error_title:"Ups",oops_error:"Ups, ukendt fejl!",oops_loading_error:"Ups, appen kunne ikke indlæses!",oops_init_error:"Ups, appen kunne ikke initialiseres!",retry_error:"Prøv igen"},"de-de":{loading_aria_label:"Wird geladen...",oops_error_title:"Hoppla",oops_error:"Hoppla, unbekannter Fehler!",oops_loading_error:"Hoppla, die App konnte nicht geladen werden!",oops_init_error:"Hoppla, die App konnte nicht gestartet werden!",retry_error:"Wiederholen"},"el-gr":{loading_aria_label:"Γίνεται φόρτωση...",oops_error_title:"Ωχ",oops_error:"Ωχ, άγνωστο σφάλμα!",oops_loading_error:"Δυστυχώς, η φόρτωση της εφαρμογής απέτυχε!",oops_init_error:"Δυστυχώς, η εφαρμογή απέτυχε να κάνει προετοιμασία!",retry_error:"Επανάληψη"},"en-gb":{loading_aria_label:"Loading...",oops_error_title:"Oops",oops_error:"Oops, unknown error!",oops_loading_error:"Oops, app failed to load!",oops_init_error:"Oops, app failed to init!",retry_error:"Retry"},"en-us":{loading_aria_label:"Loading...",oops_error_title:"Oops",oops_error:"Oops, unknown error!",oops_loading_error:"Oops, app failed to load!",oops_init_error:"Oops, app failed to init!",retry_error:"Retry"},"es-es":{loading_aria_label:"Cargando...",oops_error_title:"¡Vaya!",oops_error:"¡Vaya! Se ha producido un error desconocido.",oops_loading_error:"¡Vaya! No se ha podido cargar la aplicación.",oops_init_error:"¡Vaya! No se ha podido iniciar la aplicación.",retry_error:"Reintentar"},"es-mx":{loading_aria_label:"Cargando...",oops_error_title:"¡Uy!",oops_error:"¡Uy! Se ha producido un error desconocido.",oops_loading_error:"¡Uy! No se pudo cargar la aplicación.",oops_init_error:"¡Uy! No se pudo iniciar la aplicación.",retry_error:"Reintentar"},"et-ee":{loading_aria_label:"Laadimine…",oops_error_title:"Oih",oops_error:"Oih, tundmatu tõrge!",oops_loading_error:"Rakendust ei saanud laadida!",oops_init_error:"Rakendust ei saanud lähtestada!",retry_error:"Proovi uuesti"},"eu-es":{loading_aria_label:"Kargatzen…",oops_error_title:"Hara!",oops_error:"Hara! Errore ezezaguna!",oops_loading_error:"Ezin izan da kargatu aplikazioa.",oops_init_error:"Ezin izan da abiarazi aplikazioa.",retry_error:"Saiatu berriro"},"fi-fi":{loading_aria_label:"Ladataan...",oops_error_title:"Virhe",oops_error:"Hups, tuntematon virhe!",oops_loading_error:"Sovelluksen lataaminen epäonnistui.",oops_init_error:"Sovelluksen käynnistäminen epäonnistui.",retry_error:"Yritä uudelleen"},"fil-ph":{loading_aria_label:"Naglo-load...",oops_error_title:"Oops",oops_error:"Oops, hindi kilalang error!",oops_loading_error:"Oops, nabigong i-load ang app!",oops_init_error:"Oops, nabigong mag-init ang app!",retry_error:"Subukang muli"},"fr-ca":{loading_aria_label:"Téléversement en cours...",oops_error_title:"Oups",oops_error:"Une erreur inconnue s’est produite!",oops_loading_error:"Oups, impossible de charger l’application!",oops_init_error:"Oups, impossible de démarrer l’application!",retry_error:"Réessayer"},"fr-fr":{loading_aria_label:"Le chargement est en cours...",oops_error_title:"Oups",oops_error:"Désolé... Nous avons renconté une erreur inconnue.",oops_loading_error:"Nous sommes désolés, l’application n’a pas pu être chargée !",oops_init_error:"Nous sommes désolés, l’application n’a pas pu démarrer !",retry_error:"Réessayer"},"gl-es":{loading_aria_label:"Cargando...",oops_error_title:"Vaites!",oops_error:"Vaites! Hai un erro descoñecido.",oops_loading_error:"Vaia, produciuse un erro ao cargar a aplicación!",oops_init_error:"Vaia, produciuse un erro ao iniciar a aplicación!",retry_error:"Tentalo de novo"},"he-il":{loading_aria_label:"טוען...",oops_error_title:"אופס",oops_error:"שגיאה לא ידועה!",oops_loading_error:"אופס, טעינת האפליקציה נכשלה!",oops_init_error:"אופס, היישום לא הצליח לבצע אתחול!",retry_error:"נסה שנית"},"hi-in":{loading_aria_label:"लोड हो रहा है...",oops_error_title:"उफ़",oops_error:"ओह, अज्ञात त्रुटि!",oops_loading_error:"ओह, ऐप लोड होने में विफल रहा!",oops_init_error:"ओह, ऐप शुरू होने में विफल रहा!",retry_error:"पुनः प्रयास करें"},"hr-hr":{loading_aria_label:"Učitavanje...",oops_error_title:"Ups",oops_error:"Ups, nepoznata pogreška!",oops_loading_error:"Uh, učitavanje aplikacije nije uspjelo!",oops_init_error:"Uh, inicijalizacija aplikacije nije uspjela!",retry_error:"Pokušajte ponovo"},"hu-hu":{loading_aria_label:"Betöltés...",oops_error_title:"Hoppá!",oops_error:"Hoppá, ismeretlen hiba történt!",oops_loading_error:"Hoppá, az alkalmazást nem sikerült betölteni!",oops_init_error:"Hoppá, az alkalmazást nem sikerült inicializálni!",retry_error:"Újra"},"id-id":{loading_aria_label:"Memuat...",oops_error_title:"Ups",oops_error:"Ups, kesalahan tidak diketahui!",oops_loading_error:"Ups, aplikasi gagal dimuat!",oops_init_error:"Ups, aplikasi gagal dimulai!",retry_error:"Coba lagi"},"is-is":{loading_aria_label:"Hleður...",oops_error_title:"Úps",oops_error:"Úps, óþekkt villa!",oops_loading_error:"Úps, ekki tókst að hlaða forriti!",oops_init_error:"Úps, ekki tókst að frumstilla forrit!",retry_error:"Reyna aftur"},"it-it":{loading_aria_label:"Caricamento in corso...",oops_error_title:"Ops",oops_error:"Errore sconosciuto.",oops_loading_error:"Ops, l'app non è stata caricata!",oops_init_error:"Ops, l'app non è riuscita ad avviarsi!",retry_error:"Riprova"},"ja-jp":{loading_aria_label:"読み込み中...",oops_error_title:"申し訳ございません",oops_error:"不明なエラーが発生しました。",oops_loading_error:"申し訳ございません。アプリを読み込めませんでした。",oops_init_error:"申し訳ございません。アプリを初期化できませんでした。",retry_error:"再試行"},"ka-ge":{loading_aria_label:"ჩატვირთვა...",oops_error_title:"უი",oops_error:"სამწუხაროდ, უცნობი შეცდომაა!",oops_loading_error:"სამწუხაროდ, აპი ვერ ჩაიტვირთა!",oops_init_error:"სამწუხაროდ, აპის ინიციალიზება ვერ შესრულდა!",retry_error:"ხელახლა ცდა"},"kk-kz":{loading_aria_label:"Жүктелуде...",oops_error_title:"Ой!",oops_error:"Ой, белгісіз қате!",oops_loading_error:"Ой, бағдарламаны жүктеу сәтсіз аяқталды!",oops_init_error:"Ой, бағдарламаны баптандыру сәтсіз аяқталды!",retry_error:"Қайталау"},"ko-kr":{loading_aria_label:"로드 중...",oops_error_title:"실수",oops_error:"이런, 알 수 없는 오류가 발생했습니다!",oops_loading_error:"죄송합니다. 앱을 로드하지 못했습니다.",oops_init_error:"죄송합니다. 앱에서 초기화하지 못했습니다!",retry_error:"재시도"},"lt-lt":{loading_aria_label:"Įkeliama...",oops_error_title:"Oi",oops_error:"Oi, nežinoma klaida!",oops_loading_error:"Deja, programos įkelti nepavyko!",oops_init_error:"Deja, programos paleisti nepavyko!",retry_error:"Kartoti"},"lv-lv":{loading_aria_label:"Ielādē...",oops_error_title:"Ak vai",oops_error:"Atvainojiet, nezināma kļūda!",oops_loading_error:"Diemžēl programmu neizdevās ielādēt!",oops_init_error:"Diemžēl programmu neizdevās inicializēt!",retry_error:"Mēģināt vēlreiz"},"mk-mk":{loading_aria_label:"Се вчитува...",oops_error_title:"Опа",oops_error:"Опа, непозната грешка!",oops_loading_error:"Опа, апликацијата не успеа да се вчита!",oops_init_error:"Опа, апликацијата не успеа да започне!",retry_error:"Обидете се повторно"},"nb-no":{loading_aria_label:"Laster inn...",oops_error_title:"Uff da",oops_error:"Ukjent feil!",oops_loading_error:"Obs! Appen kan ikke lastes inn!",oops_init_error:"Obs! Appen ble ikke startet!",retry_error:"Prøv på nytt"},"nl-nl":{loading_aria_label:"Laden...",oops_error_title:"Oeps",oops_error:"Onbekende fout",oops_loading_error:"De app is niet geladen.",oops_init_error:"De app is niet geïnitialiseerd.",retry_error:"Opnieuw proberen"},"nn-no":{loading_aria_label:"Lastar inn ...",oops_error_title:"Uff da",oops_error:"Uff, ukjend feil!",oops_loading_error:"Obs! Kan ikkje laste inn appen!",oops_init_error:"Obs! Kan ikkje starte appen!",retry_error:"Prøv igjen"},"pl-pl":{loading_aria_label:"Trwa ładowanie...",oops_error_title:"Ojej",oops_error:"Wystąpił nieznany błąd!",oops_loading_error:"Niestety, nie można załadować aplikacji!",oops_init_error:"Niestety, nie można zainicjować aplikacji!",retry_error:"Spróbuj ponownie"},"pt-br":{loading_aria_label:"Carregando...",oops_error_title:"Opa",oops_error:"Oops, erro desconhecido!",oops_loading_error:"Falha ao carregar o aplicativo!",oops_init_error:"Falha ao inicializar o aplicativo!",retry_error:"Repetir"},"pt-pt":{loading_aria_label:"A carregar...",oops_error_title:"Ups",oops_error:"Ups, erro desconhecido!",oops_loading_error:"Ups, não foi possível carregar a aplicação!",oops_init_error:"Ups, não foi possível iniciar a aplicação!",retry_error:"Tentar novamente"},"ro-ro":{loading_aria_label:"Se încarcă...",oops_error_title:"Ups!",oops_error:"Ups, eroare necunoscută!",oops_loading_error:"Ups, aplicația nu s-a încărcat!",oops_init_error:"Ups, aplicația nu a putut fi inițializată!",retry_error:"Reîncercați"},"ru-ru":{loading_aria_label:"Загрузка…",oops_error_title:"Ой",oops_error:"Неизвестная ошибка!",oops_loading_error:"Не удалось загрузить приложение.",oops_init_error:"Не удалось инициализировать приложение.",retry_error:"Повторить попытку"},"sk-sk":{loading_aria_label:"Načítava sa...",oops_error_title:"Ach nie",oops_error:"Ach nie, neznáma chyba!",oops_loading_error:"Ale nie, aplikáciu sa nepodarilo načítať!",oops_init_error:"Ale nie, aplikáciu sa nepodarilo inicializovať!",retry_error:"Zkúsiť znova"},"sl-si":{loading_aria_label:"Nalaganje...",oops_error_title:"Ojej",oops_error:"Ojej, neznana napaka.",oops_loading_error:"Aplikacije ni bilo mogoče naložiti.",oops_init_error:"Aplikacije ni bilo mogoče inicializirati.",retry_error:"Poskusi znova"},"sq-al":{loading_aria_label:"Duke u ngarkuar...",oops_error_title:"Mos!",oops_error:"Mos, gabim i panjohur!",oops_loading_error:"Oops, aplikacioni dështoi të niset!",oops_init_error:"Oops, aplikacioni dështoi të niset!",retry_error:"Riprovo"},"sr-latn-rs":{loading_aria_label:"Učitavanje…",oops_error_title:"Ups",oops_error:"Ups, nepoznata greška!",oops_loading_error:"Ups, učitavanje aplikacije nije uspelo!",oops_init_error:"Ups, pokretanje aplikacije nije uspelo!",retry_error:"Pokušaj ponovo"},"sv-se":{loading_aria_label:"Läser in...",oops_error_title:"Hoppsan",oops_error:"Hoppsan, okänt fel!",oops_loading_error:"Hoppsan, det gick inte att läsa in appen!",oops_init_error:"Hoppsan, det gick inte att initiera appen!",retry_error:"Försök igen"},"th-th":{loading_aria_label:"กำลังโหลด...",oops_error_title:"ขออภัย",oops_error:"ขออภัย ข้อผิดพลาดที่ไม่รู้จัก",oops_loading_error:"ขออภัย ไม่สามารถโหลดแอปได้!",oops_init_error:"ขออภัย ไม่สามารถเริ่มแอปได้!",retry_error:"ลองอีกครั้ง"},"tr-tr":{loading_aria_label:"Yükleniyor...",oops_error_title:"Hay aksi",oops_error:"Hay aksi, bilinmeyen hata!",oops_loading_error:"Ne yazık ki uygulama yüklenemedi.",oops_init_error:"Ne yazık ki uygulama başlatılamadı.",retry_error:"Yeniden dene"},"uk-ua":{loading_aria_label:"Завантаження…",oops_error_title:"Отакої",oops_error:"Невідома помилка",oops_loading_error:"На жаль, не вдалося завантажити програму.",oops_init_error:"На жаль, не вдалося ініціалізувати програму.",retry_error:"Спробувати знову"},"vi-vn":{loading_aria_label:"Đang tải...",oops_error_title:"Rất tiếc",oops_error:"Rất tiếc, lỗi không xác định!",oops_loading_error:"Rất tiếc, không tải được ứng dụng!",oops_init_error:"Rất tiếc, không khởi tạo được ứng dụng!",retry_error:"Thử lại"},"zh-cn":{loading_aria_label:"正在加载...",oops_error_title:"糟糕",oops_error:"糟糕,未知错误!",oops_loading_error:"糟糕,应用加载失败!",oops_init_error:"糟糕,应用无法初始化!",retry_error:"重试"},"zh-tw":{loading_aria_label:"正在載入...",oops_error_title:"糟糕",oops_error:"糟糕,發生未知的錯誤!",oops_loading_error:"糟糕,無法載入應用程式。",oops_init_error:"糟糕,無法初始化應用程式!",retry_error:"重試"}};var we,be,ye,_e,ve,Ce,Se;!function(e){e.None="None",e.Core="Core",e.MeetNow="MeetNow",e.Loading="Loading",e.Main="Main",e.Mini="Mini",e.ChatPopout="ChatPopout",e.Meeting="Meeting",e.Presenter="Presenter"}(we||(we={})),function(e){e.ButtonsOnly="ButtonsOnly",e.FullWidth="FullWidth"}(be||(be={})),function(e){e.TopLeft="TopLeft",e.TopRight="TopRight",e.BottomLeft="BottomLeft",e.BottomRight="BottomRight"}(ye||(ye={})),function(e){e.Hidden="Hidden",e.Visible="Visible",e.Disabled="Disabled"}(_e||(_e={})),function(e){e.Rectangle="Rectangle"}(ve||(ve={})),function(e){e.Meeting="Meeting",e.Send="Send"}(Ce||(Ce={})),function(e){e.Leave="Leave",e.Stay="Stay"}(Se||(Se={}));class ke{constructor(e,t,o,r){this.window=e,this.permanentWindowId=t,this.logger=o,this.hostCommunication=r,this.maximizeRestoreHandler=async()=>{const e=await this.getWindowState();e?.maximized?await this.restoreWindow():await this.maximizeWindow(),await this.displayMaximumOrRestoreIcon()},this.document=this.window.document}async showTitleBar({showActionButtons:e}={showActionButtons:!1}){const t=this.document.getElementById("pre-core-title-bar");t&&(t.classList.add("show"),t.removeAttribute("aria-hidden"),t.classList.remove("hide-delayed-animation"));const o=await this.getWindowControlsModule();if(await(o?.isCustomFrameRenderingButtons?.())){const e=this.document.getElementById("pre-core-action-buttons");e?.parentNode?.removeChild(e)}else e&&this.showActionButtons()}hideTitleBar(){const e=this.document.getElementById("pre-core-title-bar");if(e){e.setAttribute("aria-hidden","true"),e.classList.remove("show");const t=e.cloneNode(!0);e.parentNode?.replaceChild(t,e)}this.disposeWindowStateChangeSubscription&&this.disposeWindowStateChangeSubscription()}showActionButtons(){this.document.getElementById("pre-core-action-buttons")?.classList.add("show");const e=this.document.getElementById("pre-core-title-bar-minimize-button");e&&(e.onclick=()=>this.minimizeWindow());const t=this.document.getElementById("pre-core-title-bar-maximize-restore-button");t&&(this.displayMaximumOrRestoreIcon(),t.onclick=()=>this.maximizeRestoreHandler(),this.registerForWindowStateChange());const o=this.document.getElementById("pre-core-title-bar-close-button");o&&(o.onclick=()=>this.closeWindow())}closeWindow(){this.window.close()}async displayMaximumOrRestoreIcon(e){const t=this.document.getElementById("pre-core-maximize-icon"),o=this.document.getElementById("pre-core-restore-icon");if(!t||!o)return;let r=e;r||(r=await this.getWindowState()),r?.maximized?(t.classList.add("hide"),o.classList.remove("hide")):(t.classList.remove("hide"),o.classList.add("hide"))}async getWindowControlsModule(){return this.windowControlsModule||(this.windowControlsModule=await(this.hostCommunication?.loadModule("windowcontrols"))),this.windowControlsModule}async getWindowId(){if(this.permanentWindowId)return this.permanentWindowId;const e=await this.getWindowControlsModule();return e?.getWindowByTag?.(we.Main)}async getWindowState(){const e={minimized:!1,maximized:!1,fullscreen:!1,closed:!1},t=await this.getWindowId();if(t){const o=await this.getWindowControlsModule();return await(o?.getWindowState?.(t))||e}return this.logger?.errorNoPii?.("Window ID is invalid."),e}async maximizeWindow(){const e=await this.getWindowId(),t=await this.getWindowControlsModule();return e&&t?.maximize?.(e)}async minimizeWindow(){const e=await this.getWindowId(),t=await this.getWindowControlsModule();return e&&t?.minimize?.(e)}async restoreWindow(){const e=await this.getWindowId(),t=await this.getWindowControlsModule();return e&&t?.restore?.(e)}async registerForWindowStateChange(){if(this.disposeWindowStateChangeSubscription)return;const e=await this.getWindowControlsModule();this.disposeWindowStateChangeSubscription=e?.registerForWindowStateChanged?.((async e=>{if(!e)return void this.logger?.errorNoPii?.("No data of window state changed event was found.");const t=await this.getWindowId();!e.windowId||t&&e.windowId!==t?this.logger?.errorNoPii?.(`WindowId was not match. ${e.windowId}, current window id: ${t}`):this.displayMaximumOrRestoreIcon(e.placement)}))}}const Ee=["aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","ae","aeb","aec","afb","ajp","apc","apd","ar","arb","arc","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","bcc","bqi","ckb","dv","fa","glk","hbo","he","jpr","ku","men","mzn","nqo","pbt","pbu","peo","pes","pga","pnb","prd","prp","prs","ps","pst","sam","sd","shu","sqr","ssh","ug","ur","xaa","xmn","ydd","yhd","yi","yih","yud","pseudo_rtl"];var Te=o(816410);const xe=(e,t)=>{const o=function(e){const t=e.trim().split("-")[0].toLocaleLowerCase();return Ee.indexOf(t)>-1}(t),r=e.document.documentElement;r.setAttribute("lang",t),r.setAttribute("dir",o?"rtl":"ltr")},Le=(e,t)=>({ADD_ATTR:e,ADD_TAGS:t,RETURN_TRUSTED_TYPE:!0,WHOLE_DOCUMENT:!0}),Ie=(e,t)=>(0,Te.sanitize)(e,t);class Pe{constructor(e,t,o,r){this.window=t,this.platformService=o,this.hostCommunication=r,this.carouselIndex=0,this.handleRetry=async()=>{this.window.sessionStorage.setItem(s.IsRelaunchFromOOPs,"1"),this.window.location.reload()},this.logger=e.newLogger("PreCoreUiAdapter","frameworks-loader"),this.titleBarHandler=new ke(this.window,void 0,this.logger,this.hostCommunication)}async showLoadingScreen(){xe(this.window,this.platformService.locale),await this.startPulseAnimation(),this.showTitleBarIfRequired()}showErrorScreen(e){xe(this.window,this.platformService.locale),this.showTitleBarIfRequired(),this.displayError(e),this.stopPulseAnimationAndHideLoadingScreen()}hideLoadingScreen(){this.stopPulseAnimationAndHideLoadingScreen(),this.titleBarHandler.hideTitleBar()}hideErrorScreen(){this.stopPulseAnimationAndHideLoadingScreen(),this.hideErrorScreenElement(),this.titleBarHandler.hideTitleBar()}startCarousel(e){We(this.platformService.platformId)&&(this.carouselInterval||(this.updateCarouselText(e),this.carouselInterval=this.window.setInterval((()=>{this.updateCarouselText(e)}),7e3)))}showTitleBarIfRequired(){"flyout"!==this.platformService.deeplinkTarget&&this.titleBarHandler.showTitleBar({showActionButtons:this.platformService.isMaglev})}async startPulseAnimation(){const e=We(this.platformService.platformId),t="life"===this.platformService.environment;const o=t&&e,r=this.window.document.getElementById("pre-core-title-bar-logo");if(r&&r.classList.add("hide"),t&&!o)return;const n=this.window.document.getElementById("loading-screen"),i=this.window.document.getElementById("loading-screen-logo");if(n){if((e||o)&&i)if(i.classList.add("scale-animation-T2_1"),this.platformService.platformId===m.Web)i.classList.add("t2-icon");else if(o)i.classList.add("t2-icon");else switch(this.platformService.appIconLabel){case"PRE":i.classList.add("t2-icon-pre");break;case"NEW":i.classList.add("t2-icon-new");break;default:i.classList.add("t2-icon")}else n.classList.add("pulse-animation");const t=fe[this.platformService.locale];t&&n.setAttribute("aria-valuetext",t.loading_aria_label)}}stopPulseAnimationAndHideLoadingScreen(){const e=this.window.document.getElementById("loading-screen"),t=We(this.platformService.platformId),o=this.window.document.getElementById("loading-screen-logo");if(e){e.setAttribute("aria-hidden","true");const r=({animationName:t})=>{"fade-out"===t&&(e.removeEventListener("animationend",r),e.remove())};t?(o?.addEventListener("animationend",r),this.window.clearInterval(this.carouselInterval),this.carouselInterval=void 0):e.classList.remove("pulse-animation"),e.addEventListener("animationend",r),t?e.classList.add("fade-out-animation-T2_1"):e.classList.add("fade-out-animation")}}hideErrorScreenElement(){const e=this.window.document.getElementById("error-screen");e?.classList.remove("show")}displayError(e){const t=this.window.document.getElementById("error-screen");t?.classList.add("show");const o=this.platformService.locale,r=fe[o];if(!r)return;const n=this.window.document.getElementById("error-title"),i=this.window.document.getElementById("error-description"),a=this.window.document.getElementById("error-action");if(((e,t)=>{e.document.title=`${t} | Microsoft Teams`})(this.window,r.oops_error_title),n&&(n.innerText=r.oops_error_title),i){let t=r.oops_error;switch(e){case ge.loadingApp:t=r.oops_loading_error;break;case ge.coreInit:t=r.oops_init_error}i.innerText=t}a&&(a.innerText=r.retry_error,a.onclick=this.handleRetry)}updateCarouselText(e){this.carouselIndex>0&&this.slideOutCarouselText();const t=this.window.document.getElementsByClassName("text-slider")[0];if(t){const o=this.window.document.createElement("div");o.innerText=e[this.carouselIndex%e.length],o.className="text-slide-in",t.appendChild(o)}this.carouselIndex++}slideOutCarouselText(){this.window.document.getElementsByClassName("text-slide-out")[0]?.remove();const e=this.window.document.getElementsByClassName("text-slide-in")[0];e&&(e.className="text-slide-out")}}function We(e){return e===m.MaglevT21||e===m.MaglevMacT21||e===m.Web}class Ne{constructor(e,t,o,r,n){this.loggerFactory=e,this.windowManager=t,this.platformService=o,this.telemetryService=r,this.hostCommunication=n,this.isErrorScreenVisible=!1,this.logger=e.newLogger("PreCoreUiManager","frameworks-loader")}async showLoadingScreen(){const e=this.windowManager.getWindow(me.Loading);if(!e)return void this.logger.logNoPii("No loading window will be shown.");const t=this.getOrCreateUiAdapter(e);await t.showLoadingScreen()}showErrorScreen(e){const t=this.getErrorWindow();if(t){const o=this.getOrCreateUiAdapter(t);this.isErrorScreenVisible=!0,o.showErrorScreen(e),this.telemetryService.sendNewScenarioThroughONEDS(z.ShowPreCoreErrorPage,{reason:void 0!==e?ge[e]:void 0})}}hideErrorScreen(){if(!this.isErrorScreenVisible)return;const e=this.getErrorWindow();if(e){this.getOrCreateUiAdapter(e).hideErrorScreen(),this.isErrorScreenVisible=!1}}getErrorWindow(){const e=this.windowManager.getWindow(me.Error);if(e)return e;this.logger.warnNoPii("No error window will be shown.")}getOrCreateUiAdapter(e){return e.preCoreUiAdapter||(e.preCoreUiAdapter=new Pe(this.loggerFactory,e,this.platformService,this.hostCommunication)),e.preCoreUiAdapter}}var Me,Oe,Ae,De,Re;!function(e){e.standAlone="main",e.iframe="iFrame",e.secondary="MW",e.embedded="EDOM",e.worker="Worker"}(Me||(Me={})),function(e){e.flyout="flyout",e.main="main",e.minimode="mini",e.notifications="notifications"}(Oe||(Oe={})),function(e){e.owa="OWA",e.outlook="Outlook",e.officeOnline="OfficeOnline",e.wordWeb="WordWeb",e.word="Word",e.excelWeb="ExcelWeb",e.excel="Excel",e.powerPointWeb="PowerPointWeb",e.powerPoint="PowerPoint",e.lmsBlackBoard="BlackBoard",e.lmsCanvas="Canvas",e.lmsMoodle="Moodle",e.lmsBrightspace="Brightspace",e.lmsOther="OtherLMS",e.lmsOpenLMS="OpenLMS",e.lmsSchoology="Schoology",e.unknown="unknown",e.thirdParty="ThirdParty",e.dynamics="Dynamics",e.onePlayer="OnePlayer",e.devHost="DevHost",e.edge="Edge",e.purview="Purview"}(Ae||(Ae={})),function(e){e.userInitiated="userInitiated"}(De||(De={})),function(e){e.flyout="flyout",e.iFrame="iFrame",e.primary="primary",e.secondary="secondary",e.minimode="minimode"}(Re||(Re={}));o(364819);const Be=e=>{let t;return e.documentElement.classList.forEach((e=>{e.startsWith("theme")&&(t=e)})),t},Fe="about:blank",ze=`${Fe}?window=loading`,Ue=`${Fe}?window=mini`,He=`${Fe}?minimize=true`;var $e;!function(e){e[e.None=0]="None",e[e.GlobalWindow=1]="GlobalWindow",e[e.PopoutWindow=2]="PopoutWindow",e[e.MinimizedPopoutWindow=3]="MinimizedPopoutWindow"}($e||($e={}));class Ve{constructor(e,t,o,r,n,i,a){this.window=e,this.config=t,this.templateGenerator=o,this.platformService=n,this.hostCommunication=i,this.dompurifyTrustedPolicy=a,this.visibleWindow=null,this.logger=r.newLogger("WindowManager","frameworks-loader"),this.dompurifyTrustedPolicy=e.trustedTypes?.createPolicy("@msteams/frameworks-loader#dompurify",{createHTML:e=>e,createScriptURL:()=>""})}getWindow(e){if(this.visibleWindow)return this.visibleWindow;const t=this.getRequiredWindowType(e);switch(t){case $e.None:return null;case $e.PopoutWindow:case $e.MinimizedPopoutWindow:this.visibleWindow=this.createPopoutWindow(t);break;case $e.GlobalWindow:default:this.visibleWindow=this.window,((e,t)=>{const o=`theme-${t}`,r=Be(e);r?r!==o&&e.documentElement.classList.replace(r,`theme-${t}`):e.documentElement.classList.add(o)})(this.visibleWindow.document,this.platformService.theme),this.writeTemplate(this.visibleWindow,!0)}return this.platformService.isMaglev&&(e=>{e.document.documentElement.classList.add("mica")})(this.visibleWindow),"flyout"===this.platformService.deeplinkTarget&&(e=>{e.document.documentElement.classList.add("flyout")})(this.visibleWindow),this.visibleWindow}getLoadingWindow(){if(this.visibleWindow&&this.platformService.isMaglev){const e=this.visibleWindow;return this.logger.logNoPii("Acquiring the visible window from the loader."),this.visibleWindow=null,e}return null}openWindowRequest(e,t,o){if(this.visibleWindow&&this.platformService.isMaglev){this.logger.logNoPii("Acquiring the visible window from the loader.");const r=this.visibleWindow;this.visibleWindow=null;const{viewportContext:n}=this.platformService;let i;if(e&&(i=function(e,t){if(!t)return t;const o=new RegExp(`[?&]${e}=([^]*)`).exec(t);return o&&o.length>1?decodeURI(o[1]):""}("window",e)),!i||this.getWindowTagFromViewportContext(n)===i)return this.resetLoadingWindow(e,t,o),r;r.close()}return this.logger.logNoPii(`url: '${e}' target: '${t}' features: '${o}'`),this.window.open(e,t,o)}createPopoutWindow(e){const{viewportContext:t}=this.platformService,o=this.getWindowTagFromViewportContext(t)===Oe.minimode,r=e===$e.MinimizedPopoutWindow?He:o?Ue:ze;this.logger.logNoPii("Getting loading window from Maglev client:",r);const n=this.window.open(r);if(!n){const e="Could not get loading window.";throw this.logger.errorNoPii(e),new Error(e)}return this.writeTemplate(n),n}getRequiredWindowType(e){const{isMaglev:t,deeplinkTarget:o}=this.platformService;let r=$e.GlobalWindow;if(t)if("core"===o)if(e===me.Error)r=$e.MinimizedPopoutWindow;else r=$e.None;else r=$e.PopoutWindow;return this.logger.logNoPii(`Determined window type '${r.toString()}' based on:`,{purpose:e,isMaglev:t,deeplinkTarget:o}),r}writeTemplate(e,t=!1){const{__webpack_nonce__:o,__webpack_public_path__:r}=this.window,n=r&&`window.__webpack_public_path__="${r}"`,i={theme:this.platformService.theme,environment:this.platformService.environment,cspNonce:o,publicPathScript:n,containerVer:this.config.build,viewportContext:this.platformService.viewportContext,contentOnly:t},a=this.templateGenerator(i),s=(l=a,c=this.dompurifyTrustedPolicy,Ie(l,{...Le(["content","focusable","nonce","onclick"],["link","meta","script","#comment","!doctype"]),TRUSTED_TYPES_POLICY:c}));var l,c;e.document.write(s),e.document.close()}async resetLoadingWindow(e,t,o){try{const r=await(this.hostCommunication?.loadModule("core"));r?.resetLoadingWindow?.({url:e,windowName:t,windowFeatures:o})}catch(e){this.logger.errorNoPii("Unable to reset loading window:",e)}}getWindowTagFromViewportContext(e){switch(e){case Re.flyout:return Oe.flyout;case Re.minimode:return Oe.minimode;case Re.primary:return Oe.main;default:return}}}const je=(e,t,o,r,n)=>new ue(e,t,o,r,n),Ge=(e,t,o,r,n,i)=>new Ve(e,t,o,r,n,i),qe=(e,t,o,r,n)=>new Ne(e,t,o,r,n),Ye=(e,t,o,r,n)=>new $(e,t,o,r,n);function Je(e){return new Promise(((t,o)=>{e<0?o(new Error("negative timeout")):setTimeout(t,e)}))}const Ze=e=>{const t=new URL(e.location.href);t.pathname="/",t.searchParams.set("clientexperience","t1"),e.location.replace(t.href)},Ke=e=>{e.localStorage.removeItem("ts.previousSessionLogs"),e.localStorage.removeItem("tmp.previousSessionLogs"),e.localStorage.removeItem("tmp.previousSessionErrorLogs")};var Xe,Qe=o(136723),et=o.n(Qe);function tt(){return new Worker("/v2/worker/precompiled-web-worker-a0485e93f2a8592f.js")}function ot(){return new Worker("/v2/worker/precompiled-web-worker-1acf6d3a95878df1.js")}function rt(){return new SharedWorker("/v2/worker/precompiled-shared-worker-e35b0528ef1ffc01.js")}!function(e){e.ag08="ag08",e.ag09="ag09",e.dod="dod",e.gallatin="gallatin",e.gcc="gcc",e.gcchigh="gcchigh",e.life="life",e.prod="prod"}(Xe||(Xe={}));const nt=(e,t,o,r,n,i,a,s,l,c,d,p,h,u,g,m=!1,f,w)=>{let b={};if(e&&(b={experienceName:e}),t&&(b={...b,ring:t}),o&&(b={...b,environment:o}),r&&(b={...b,sessionId:r}),n&&(b={...b,platformId:n}),i&&(b={...b,buildVersion:i}),a&&(b={...b,localeCode:a}),s&&(b={...b,workerId:s}),l&&(b={...b,preAuthUserId:l}),p&&(b={...b,publicPath:p}),u&&(b={...b,isOcdi:u}),g&&(b={...b,isPwa:g}),void 0!==d?b={...b,userConsoleLogLevel:d}:void 0!==c&&(b={...b,preECSConsoleLogLevel:c}),h&&(b={...b,deviceId:h}),m){const e=new Date(Date.now());b={...b,date:`${e.getMonth()}-${e.getDate()}`}}return f&&(b={...b,telemetryWorkerBroadcast:f}),w&&(b={...b,useDiagnosticsServiceV2:w}),JSON.stringify(b)};let it;const at=(e,t,o,r,n,i,a)=>class{constructor(s){const l=r?`${s}#${r}`:s,c=typeof e==typeof Worker?"cdlWorker":"cdlsharedWorker";st(t,l,!1,c,o),n?.(l);const d=((e,t,o)=>{if(it)return it;try{const e=o||"@msteams/core-cdl-worker-common#create-cdl-worker";return it=window.trustedTypes?.createPolicy(e,{createScriptURL:e=>lt(e,t)}),it}catch(o){t.errorToTelemetry?.(`Create CDL worker URL trustedType policy failed. This is not a critical error, falling back to function validation. Error ${o}`,"cdl_worker_startup_error_trusted_policy",{endpointUrl:e},!0)}})(l,t,i);if(d){const t=d.createScriptURL(l);return a?.(Date.now()),new e(t)}const p=lt(l,t);return a?.(Date.now()),new e(p)}},st=(e,t,o,r,n)=>{e.log(`{"hostRendererId":${r},"component":${n} Creating CDL Worker with ${o?"passed":"determined"} url ${t} }`)};function lt(e,t){try{const t=new URL(e,ct().location.origin);let o=!0,r="CDL Web worker URL is invalid.";if(t.origin!==ct().location.origin&&(r=r.concat("OriginValidationFailed"),o=!1),o)return e;throw new Error(r)}catch(o){t.errorToTelemetry?.("CDL web worker url is not valid","cdl_worker_startup_error_invalid_url",{endpointUrl:e},!0);const r=new Error(o.message);throw r.name="InvalidUrl",r}}function ct(){return window}class dt{constructor(e,t,o,r,n,i){this.config=t,this.properties=o,this.platformService=r,this.logger=n,this.experienceLoaderSettings=i,this.webpackPublicPath=e.__webpack_public_path__,this.telemetryBroadcastEnabled=Boolean(e?.localStorage?.getItem(O)),this.ring="unknown"===this.properties.ring?"general":this.properties.ring,this.workerId="precore-worker"}initPrecoreWorker(){const e=nt(this.config.experienceName,this.ring,Xe[this.properties.environment],this.properties.sessionId,this.platformService.platformId,this.properties.buildVersion,this.properties.locale,this.workerId,this.properties.preAuthUserId,this.platformService.preECSConsoleLogLevel,this.platformService.userConsoleLogLevel,this.webpackPublicPath,this.properties.deviceId,this.platformService.isOcdi,this.properties.isPwa,void 0,this.telemetryBroadcastEnabled,this.config.useDiagnosticsServiceV2),t=Worker;let o;Worker=at(t,this.logger,"ExperienceLoader",e,(e=>{this.cdlWorkerUrl=e}),"@msteams/frameworks-loader#create-cdl-worker",(e=>{this.workerInitializationTime=e})),o=this.experienceLoaderSettings?.enableChunkedWorker?new ot:new tt,Worker=t,this.worker=o}initPrecoreSharedWorker(){const e=nt(this.config.experienceName,this.ring,Xe[this.properties.environment],"embed-client"===this.config.experienceName?et().get("sessionId"):this.properties.sessionId,this.platformService.platformId,this.properties.buildVersion,this.properties.locale,this.workerId,this.properties.preAuthUserId,this.platformService.preECSConsoleLogLevel,this.platformService.userConsoleLogLevel,this.webpackPublicPath,this.properties.deviceId,this.platformService.isOcdi,this.properties.isPwa,this.config.limitCDLSharedWorkerConnectionTimeframe,this.telemetryBroadcastEnabled,this.config.useDiagnosticsServiceV2),t=SharedWorker;SharedWorker=at(t,this.logger,"ExperienceLoader",e,(e=>{this.cdlSharedWorkerUrl=e}),void 0,(e=>{this.workerInitializationTime=e}));const o=new rt;SharedWorker=t,this.sharedWorker=o}getWorkerId(){return this.workerId}getWorker(){return this.worker}getSharedWorker(){return this.sharedWorker}getCdlWorkerUrl(){return this.cdlWorkerUrl}getCdlSharedWorkerUrl(){return this.cdlSharedWorkerUrl}getWorkerInitializationTime(){return this.workerInitializationTime}clearWorker(){this.worker=void 0,this.cdlWorkerUrl=void 0,this.sharedWorker=void 0,this.cdlSharedWorkerUrl=void 0,this.workerInitializationTime=void 0,this.workerId=""}}var pt;!function(e){e[e.None=0]="None",e[e.Error=1]="Error",e[e.Warn=2]="Warn",e[e.Info=3]="Info",e[e.Debug=4]="Debug",e[e.Verbose=5]="Verbose",e[e.Max=6]="Max"}(pt||(pt={}));var ht,ut=o(956342),gt=o.n(ut);function mt(e){return null==e||0===e.length?e:` ${e}`.substr(1)}function ft(e,t){const o=new WeakSet;return JSON.stringify(e,((e,t)=>{if(!o.has(t)){if(t&&"object"==typeof t){if(o.add(t),t instanceof Map||t instanceof Set)return Array.from(t);if(t instanceof Error)return`${t.name}: ${t.message}`;if(t.constructor&&t.constructor!==Object&&t.constructor!==Array||t.prototype)return}return t}}),t)}function wt(e,t){return`${T}.${t}.${e}`}!function(e){e[e.None=0]="None",e[e.LoggedInConsole=1]="LoggedInConsole",e[e.AddedIntoDiagnostics=2]="AddedIntoDiagnostics",e[e.ThrottledForDiagnostics=4]="ThrottledForDiagnostics",e[e.SentToTelemetry=8]="SentToTelemetry"}(ht||(ht={}));class bt{constructor(e,t,o){this.diagnosticsService=t,this.label=o,this.enableDebugLogging=!1;try{this.enableDebugLogging="true"===e.localStorage.getItem("localDebug")}catch{}}log(e,...t){return this.invoke(console.log,e,pt.Info,!1,...t)}warn(e,...t){return this.invoke(console.warn,e,pt.Warn,!1,...t)}error(e,...t){const o=this.invoke(console.error,e,pt.Error,!1,...t);return this.diagnosticsService.persistDiagnostics(),o}debug(e,...t){return this.enableDebugLogging?this.invoke(console.debug,e,pt.Debug,!1,...t):ht.None}logNoPii(e,...t){return this.invoke(console.log,e,pt.Info,!0,...t)}warnNoPii(e,...t){return this.invoke(console.warn,e,pt.Warn,!0,...t)}errorNoPii(e,...t){const o=this.invoke(console.error,e,pt.Error,!0,...t);return this.diagnosticsService.persistDiagnostics(),o}debugNoPii(e,...t){return this.enableDebugLogging?this.invoke(console.debug,e,pt.Debug,!0,...t):ht.None}invoke(e,t,o,r,...n){t=mt(`${this.label}: ${t}`);let i=ht.None;if((o<=pt.Warn||this.enableDebugLogging)&&(e.call(console,t,...n),i=i||ht.LoggedInConsole),o0){t=mt(`${t} ${n.map((e=>function(e){if(null===e)return"null";if(void 0===e)return"undefined";const t=typeof e;if("string"===t)return e;if("number"===t||"boolean"===t)return String(e);if("function"===t)return"";if(gt()(e))return e.toISOString();try{return JSON.stringify(e)}catch(t){return ft(e)}}(e))).join(", ")}`)}this.diagnosticsService.pushDiagnosticsEvent(o,t,r),a=i,i=ht.AddedIntoDiagnostics|a}var a;return i}}const yt="loaderDiagnostics",_t="previousLoaderDiagnostics",vt="=====";class Ct{constructor(e,t){this.window=e,this.loaderConfig=t,this.DEFAULT_QUEUE_CAPACITY=200,this.eventsBufferArray=[],this._previousSessionLogsPersisted=!1,this._isLoaderCompleted=!1,this._sessionId="",this.logsProviderName="LoaderDiagnosticsService",this.newLogger=e=>new bt(this.window,this,`[ExpLoader] ${e}`),this.getStorageKey=e=>wt(e,this.loaderConfig.experienceName),e?.addEventListener&&e.addEventListener("unload",(()=>{this.persistDiagnosticsAsPreviousSessionLogs()}))}pushDiagnosticsEvent(e,t,o){this._isLoaderCompleted||this.pushDiagnosticsEventInternal(e,t,o)}completeDiagnostics(){this._isLoaderCompleted||(this.persistDiagnostics()&&(this.eventsBufferArray=[]),this._isLoaderCompleted=!0)}persistDiagnostics(){if(this._isLoaderCompleted)return!1;let e=!1;try{e=this.persistDiagnosticsLogsInternal(this.window.localStorage,this.eventsBufferArray,this.getStorageKey(yt))}catch(e){this.pushDiagnosticsEvent(pt.Error,`LoaderDiagnosticsService: window_localstorage save logs failure, ${e?.name}`,!0)}return e}getDiagnosticsEvents(){return Promise.resolve(this.eventsBufferArray)}async getLogsFiles(e){const t=this.getLogsFromLocalStorage(this.window.localStorage,this.getStorageKey(_t),!!e);let o="";return o=this._isLoaderCompleted&&0===this.eventsBufferArray.length?this.getLogsFromLocalStorage(this.window.localStorage,this.getStorageKey(yt),!!e):await this.getDiagnosticsLogs(!!e),Promise.resolve([{isPiiFree:!0,fileName:"loader-diagnostics-logs-previous-session.txt",content:t||"No logs found"},{isPiiFree:!0,fileName:"loader-diagnostics-logs.txt",content:o||"No logs found"}])}getSystemInfo(){return Promise.resolve(new Map)}persistDiagnosticsAsPreviousSessionLogs(){if(!this._previousSessionLogsPersisted){this._previousSessionLogsPersisted=!0;try{let e=this.eventsBufferArray;if(this._isLoaderCompleted&&0===e.length){const t=this.getLogsArrayFromLocalStorage(this.window.localStorage,this.getStorageKey(yt),!0);t&&t.logsArray.length>0&&(e=t.logsArray)}e.length>0&&this.persistDiagnosticsLogsInternal(this.window.localStorage,e,this.getStorageKey(_t))}catch(e){this.pushDiagnosticsEvent(pt.Error,`LoaderDiagnosticsService: persist previous session logs failure, ${e?.name}`,!0)}}}setSessionId(e){this._sessionId=e}addEvent(e){this.eventsBufferArray.length>=this.DEFAULT_QUEUE_CAPACITY&&this.eventsBufferArray.shift(),this.eventsBufferArray.push(e)}async getDiagnosticsLogs(e){const t=await this.getDiagnosticsEvents();return this.formatEvents(e?this.filterLogsForPiiFreeOnly(t):t)}filterLogsForPiiFreeOnly(e){return e.length?e.filter((e=>e.isPiiFree)):e}formatEvents(e){if(!e||0===e.length)return"";let t="";return e.forEach((e=>{if(e)if(e.message?.startsWith(vt)&&e.message?.endsWith(vt))t+=`\n${e.message}\r\n`;else{const o="function"==typeof e.timeStamp?.toISOString?e.timeStamp.toISOString():e.timeStamp,r="string"==typeof e.levelName?e.levelName.substring(0,3):"unknownLevelName";t+=`${o} ${r}\t${e.message}\r\n`}})),mt(t)}persistDiagnosticsLogsInternal(e,t,o){let r=!1;if(!e)return r;try{const n=ft({sessionId:this._sessionId,logsArray:t});e.setItem(o,n),r=!0}catch{}return r}convertToDiagnostisEvent(e){const t={message:`DiagnosticsService - Converting event from localStorage failed - ${e}`,isPiiFree:!0,level:pt.Error,levelName:"error",timeStamp:new Date};try{const o=e;if("timeStamp"in o){if("string"==typeof o.timeStamp){if(isNaN(Date.parse(o.timeStamp)))return t;o.timeStamp=new Date(o.timeStamp)}return o}}catch{}return t}pushDiagnosticsEventInternal(e,t,o,r){t.length>512&&(t=t.substring(0,512)+"...");const n={message:t=mt(t),level:e,levelName:pt[e],timeStamp:r||new Date,isPiiFree:o};return this.addEvent(n),n}getLogsFromLocalStorage(e,t,o){let r="";try{const n=this.getLogsArrayFromLocalStorage(e,t,!1);n&&n.logsArray.length>0&&(o&&(n.logsArray=this.filterLogsForPiiFreeOnly(n.logsArray)),r=this.formatEvents(n.logsArray))}catch{r="Session logs parsing failed"}return r}getLogsArrayFromLocalStorage(e,t,o){let r=e.getItem(t);if(r)try{const n=JSON.parse(r);if(r=null,n)return o&&e.removeItem(t),"logsArray"in n?{sessionId:n.sessionId,logsArray:n.logsArray.map((e=>this.convertToDiagnostisEvent(e)))}:{sessionId:"",logsArray:n}}catch{}}}const St={"az-az":"az-latn-az","be-by":"ru-ru","de-at":"de-de","de-ch":"de-de","de-li":"de-de","de-lu":"de-de","en-029":"en-us","en-au":"en-gb","en-bz":"en-us","en-ca":"en-gb","en-ie":"en-gb","en-in":"en-gb","en-jm":"en-us","en-my":"en-gb","en-nz":"en-gb","en-ph":"en-us","en-sg":"en-gb","en-tt":"en-us","en-za":"en-gb","en-zw":"en-gb","es-419":"es-es","es-ar":"es-mx","es-bo":"es-mx","es-cl":"es-mx","es-co":"es-mx","es-cr":"es-mx","es-do":"es-mx","es-ec":"es-mx","es-gt":"es-mx","es-hn":"es-mx","es-ni":"es-mx","es-pa":"es-mx","es-pe":"es-mx","es-pr":"es-mx","es-py":"es-mx","es-sv":"es-mx","es-us":"es-mx","es-uy":"es-mx","es-ve":"es-mx","fl-ip":"en-us","fr-be":"fr-fr","fr-ch":"fr-fr","fr-lu":"fr-fr","fr-mc":"fr-fr","it-ch":"it-it","ky-kg":"ru-ru","lb-lu":"de-de","nl-be":"nl-nl","qut-gt":"es-es","quz-pe":"es-es","sr-cyrl-rs":"sr-latn-rs","sr-cyrl":"sr-latn-rs","sr-latn":"sr-latn-rs","sr-rs":"sr-latn-rs","sv-fi":"sv-se","tg-cyrl-tj":"ru-ru","tk-tm":"ru-ru","tt-ru":"ru-ru","ug-cn":"zh-cn","wo-sn":"fr-fr","zh-hans-cn":"zh-cn","zh-hans-sg":"zh-cn","zh-hans":"zh-cn","zh-hant-hk":"zh-tw","zh-hant-mo":"zh-tw","zh-hant-tw":"zh-tw","zh-hant":"zh-tw","zh-hk":"zh-tw","zh-mo":"zh-tw","zh-sg":"zh-cn",ar:"ar-sa",az:"az-latn-az",bg:"bg-bg",ca:"ca-es",cs:"cs-cz",cy:"cy-gb",da:"da-dk",de:"de-de",el:"el-gr",en:"en-us",es:"es-es",et:"et-ee",eu:"eu-es",fi:"fi-fi",fil:"fil-ph",fr:"fr-fr",gl:"gl-es",he:"he-il",hi:"hi-in",hr:"hr-hr",hu:"hu-hu",id:"id-id",is:"is-is",it:"it-it",ja:"ja-jp",ka:"ka-ge",ko:"ko-kr",kk:"kk-kz",lt:"lt-lt",lv:"lv-lv",mk:"mk-mk",nb:"nb-no",nl:"nl-nl",nn:"nn-no",pl:"pl-pl",pt:"pt-br",ro:"ro-ro",ru:"ru-ru",sk:"sk-sk",sl:"sl-si",sr:"sr-latn-rs",sq:"sq-al",sv:"sv-se",th:"th-th",tr:"tr-tr",uk:"uk-ua",vi:"vi-vn",zh:"en-us"},kt=["sq-al","ar-sa","az-latn-az","eu-es","bg-bg","ca-es","zh-cn","zh-sg","zh-hk","zh-mo","zh-tw","hr-hr","cs-cz","da-dk","nl-be","nl-nl","en-au","en-bz","en-ca","en-029","en-in","en-ie","en-jm","en-my","en-nz","en-ph","en-sg","en-za","en-tt","en-gb","en-us","en-zw","et-ee","fil-ph","fi-fi","fr-be","fr-ca","fr-fr","fr-lu","fr-mc","fr-ch","gl-es","ka-ge","de-at","de-de","de-li","de-lu","de-ch","el-gr","he-il","hi-in","hu-hu","is-is","id-id","it-it","it-ch","ja-jp","kk-kz","ko-kr","lv-lv","lt-lt","mk-mk","nb-no","nn-no","pl-pl","pseudo","pseudo_rtl","pt-br","pt-pt","ro-ro","fl-ip","ru-ru","sr-latn-rs","sk-sk","sl-si","es-ar","es-ve","es-bo","es-cl","es-co","es-cr","es-do","es-ec","es-sv","es-gt","es-hn","es-mx","es-ni","es-py","es-pa","es-pe","es-pr","es-es","es-us","es-uy","sv-fi","sv-se","th-th","tr-tr","uk-ua","ca-es-valencia","vi-vn","cy-gb"],Et=e=>{const t=Tt(e);return null!==t.locale?t:{locale:"en-us",reason:"No supported language found - falling back to en-us",originalLocale:e}},Tt=e=>{const t=e.trim().toLowerCase();let o=Lt(t);return St[o]?(o=St[o],{locale:o,reason:"Found in fallback table",originalLocale:e}):xt(o)?{locale:o,reason:"Supported language"}:{locale:null,reason:"Didn't find supported language.",originalLocale:e}},xt=e=>{const t=e.toLowerCase();for(const e of kt)if(t===e.toLowerCase())return!0;return!1},Lt=e=>{const t=(new Date).getTimezoneOffset();return"fr"===e&&t>=120&&t<=420?"fr-ca":e};var It,Pt,Wt,Nt,Mt,Ot;!function(e){e.Windows="windows",e.Mac="mac",e.Linux="linux",e.ChromeOS="chromeos",e.Android="android",e.IOS="ios",e.WindowsPhone="windowsphone",e.Unknown="unknown"}(It||(It={})),function(e){e.Default="default",e.DefaultV2="defaultV2",e.DefaultTfl="tfl-default",e.Dark="dark",e.DarkV2="darkV2",e.DarkTfl="tfl-dark",e.HighContrast="contrast"}(Pt||(Pt={})),function(e){e.Dark="dark",e.Light="light",e.Contrast="contrast"}(Wt||(Wt={})),function(e){e.Light="0",e.Dark="1",e.Contrast="2",e.DefaultV2="3",e.DarkV2="4",e.DefaultTfl="5",e.DarkTfl="6"}(Nt||(Nt={})),function(e){e.HighContrast="#FFFFFF_#000000_#FFFF00"}(Mt||(Mt={})),function(e){e.ColorContrastOverride="(forced-colors: active)",e.Light="(prefers-color-scheme: light)",e.Dark="(prefers-color-scheme: dark)"}(Ot||(Ot={}));const At=(e,t)=>t[e]||Pt.DefaultV2,Dt=(e,t,o,r)=>{const n=Rt(t);if(n)return n;if(e.followOsTheme){const e=((e,t)=>{try{if(e.matchMedia(Ot.ColorContrastOverride).matches)return t?.log(`OS Theme Matches: ${Ot.ColorContrastOverride}`),Wt.Contrast;return e.localStorage.getItem("tmp.desktopTheme")||(e.matchMedia(Ot.Dark).matches?(t?.log(`OS Theme Matches: ${Ot.Dark}`),Wt.Dark):e.matchMedia(Ot.Light).matches?(t?.log(`OS Theme Matches: ${Ot.Light}`),Wt.Light):(t?.log("OS Theme Matches: None. Returning theme type light."),Wt.Light))}catch(e){return void t?.log(`Couldn't resolve getOsTheme: ${e.message}`)}})(t,r);if(e)return At(e,o)}else if(e.userTheme)return At(e.userTheme,o);return Pt.DefaultV2},Rt=e=>{const t=new URLSearchParams(e.location.search).get("theme");if(t){const e=Object.keys(Pt).find((e=>e.toUpperCase()===t.toUpperCase()));return Pt[e]}};class Bt{constructor(e,t,o){this.window=e,this.config=t,this.logger=o,this._appIconLabel=void 0,this._bootType=void 0,this._deeplinkId=void 0,this._deeplinkTarget=void 0,this._environment=void 0,this._headConfig=void 0,this._isMaglev=void 0,this._locale=void 0,this._migratedLocale=void 0,this._platformId=void 0,this._theme=void 0,this._urlSearchParams=void 0,this._viewportContext=void 0,this._preECSConsoleLogLevel=void 0,this._userConsoleLogLevel=void 0,this._networkState="unknown",this._activeServiceWorkerVersion=void 0,this._getServiceWorkerVersionPromise=void 0,this.detectLocale=()=>this.window.localStorage.getItem("localeCode")||this._migratedLocale&&Et(this._migratedLocale).locale||Et(this.window.navigator.language).locale,this.onlineHandler=()=>{"suspectedOffline"===this._networkState&&(this._networkState="unstable",this.cleanUpNetworkStateListener())},this.offlineHandler=()=>{"suspectedOnline"===this._networkState&&(this._networkState="unstable",this.cleanUpNetworkStateListener())},this._headConfig=b(e,o),this._bootType=this.getBootTypeInternal(),this.setInitConsoleLogLevel(),this.setUpNetworkStateListener(),this.readSettingsFromUrlHash(),this.setServiceWorkerVersion()}get appIconLabel(){return this._appIconLabel}get environment(){return void 0===this._environment&&(this._environment=function(e,t){let o=t?.environment||"prod";return"infer"===o&&(o=function(e){return e.location.origin.includes("gov")?"gcchigh":e.location.origin.includes("dod")?"dod":e.location.origin.includes("live")?"life":"prod"}(e)),o}(this.window,this._headConfig)),this._environment}get pdsEnvironment(){return this._headConfig?.pdsEnvironment}get isMaglev(){return void 0===this._isMaglev&&(this._isMaglev=y(this.window)),this._isMaglev}get platformId(){return void 0===this._platformId&&(this._platformId=this.isMaglev?_(this.window):m.Web),this._platformId}get isOcdi(){return!!this.headConfig?.isOcdi}get enableSriForDynamicImports(){return!this.headConfig.disableSriDI&&(!this.headConfig.unauthenticated||!!this.headConfig.enableSriDIUnauthenticated)}get isPwa(){return!!this.window.matchMedia("(display-mode: standalone)").matches}get deeplinkTarget(){return void 0===this._deeplinkTarget&&(this._deeplinkTarget=this.getHashItem("deepLink")),this._deeplinkTarget}get viewportContext(){if(void 0===this._viewportContext)if("flyout"===this.deeplinkTarget)this._viewportContext=Re.flyout;else{const e=this.getHashItem("window");this._viewportContext=e&&"mini"===e?Re.minimode:Re.primary}return this._viewportContext}get theme(){return void 0===this._theme&&(this._theme=this.getTheme()),this._theme}get locale(){return void 0===this._locale&&(this._locale=this.detectLocale()),this._locale}get bootType(){return void 0===this._bootType&&(this._bootType=this.getBootTypeInternal()),this._bootType}get buildVersion(){return this.config?.build||this._headConfig?.buildVersion||""}get ring(){if(this.bootType===a.Local){const e=this.getRingFromQSP();if(e)return e}const e=this._headConfig?.ring;return e?"string"==typeof e?e:e.id||"unknown":"unknown"}getCookieByName(e){return Qe.get(e)}get headConfig(){return this._headConfig||(this._headConfig=b(this.window,this.logger)),this._headConfig}get deeplinkId(){return void 0===this._deeplinkId&&(this._deeplinkId=this.getHashItem("deeplinkId")),this._deeplinkId}get networkState(){return"suspectedOnline"!==this._networkState||this.window.navigator.onLine||(this._networkState="unstable"),this._networkState}get preECSConsoleLogLevel(){if(void 0===this.userConsoleLogLevel){if(void 0===this._preECSConsoleLogLevel)if(this.bootType===a.Local)this._preECSConsoleLogLevel=pt.Warn;else{let e=this.ring;const t=this.getRingFromQSP();t&&(e=t),e.indexOf("general")>=0||e.indexOf("ring3")>=0?this._preECSConsoleLogLevel=pt.None:this._preECSConsoleLogLevel=pt.Warn}return this._preECSConsoleLogLevel}}get userConsoleLogLevel(){if(void 0===this._userConsoleLogLevel)try{const e=this.window.localStorage.getItem("logLevel");if(e){const t=parseInt(e,10);t>=pt.None&&t<=pt.Max&&(this._userConsoleLogLevel=t)}}catch{this.logger?.warnNoPii("The `logLevel` value in localStorage is not valid")}return this._userConsoleLogLevel}get activeServiceWorkerVersion(){return this._activeServiceWorkerVersion}get activeServiceWorkerVersionPromise(){return this._getServiceWorkerVersionPromise}async loadHostCapabilities(e){try{const t=await(e?.loadModule("hostcapabilities")),o=await(t?.getInitialCapabilities?.())??[];for(const e of o)"appIconLabel"===e.name?this._appIconLabel=e.value?`${e.value}`:void 0:"localMigratedSettings"===e.name&&this.loadMigratedLocale(e.value)}catch(e){this.logger?.logNoPii("Unable to load host capabilities")}}cleanUpNetworkStateListener(){this.window.removeEventListener("online",this.onlineHandler),this.window.removeEventListener("offline",this.offlineHandler)}loadMigratedLocale(e){if("string"==typeof e)try{const t=JSON.parse(e);this._migratedLocale=t.language?`${t.language}`:void 0}catch(e){this.logger?.errorNoPii("Unable to parse migrated locale.")}else this.logger?.logNoPii("localMigratedSettings is not a string.")}getTheme(){const e=(t=this.environment,{[Wt.Light]:t===Xe.life?Pt.DefaultTfl:Pt.DefaultV2,[Wt.Dark]:t===Xe.life?Pt.DarkTfl:Pt.DarkV2,[Wt.Contrast]:Pt.HighContrast});var t;return Dt(this.getThemeValueFromStorage(),this.window,e,this.logger)}getBootTypeInternal(){const e=this.config?.build,t=this.config?.experienceName;if(!e)return this.logger?.errorNoPii("build number is missing"),a.Unknown;if(!t)return this.logger?.errorNoPii("experience name is missing"),a.Unknown;const o=this.window.localStorage.getItem(wt("buildNumber",t)),r=this.getAppBootType(e,o);return r===a.Unknown?this.logger?.errorNoPii(`Build Number Format Is Invalid. CurrentBuildNumber: ${e}, PreviousBuildNumber: ${o}`):this.logger?.logNoPii(`App boot type: ${r}`),r}getAppBootType(e,t){if(e&&e.toLowerCase().startsWith("local"))return a.Local;if(e&&e.toLowerCase().includes("oncdn"))return a.Container;if(t){if(t.toLowerCase().startsWith("local"))return a.Cold;if(t.toLowerCase().includes("oncdn"))return a.Cold}if(!v(this.window)||!t)return a.Cold;const o=Number(e),r=Number(t);return isNaN(o)||isNaN(r)?a.Unknown:or?a.Update:a.Warm}getHashItem(e){if(void 0===this._urlSearchParams){let e=this.window.location.hash||"";e.startsWith("#")&&(e=e.substr(1)),this._urlSearchParams=new URLSearchParams(decodeURIComponent(e))}return this._urlSearchParams.get(e)}setInitConsoleLogLevel(){this.window.defaultConsoleLogLevel||(this.window.defaultConsoleLogLevel={userConsoleLogLevel:this.userConsoleLogLevel,preECSConsoleLogLevel:this.preECSConsoleLogLevel})}getThemeValueFromStorage(){const e=`tmp.${this.config?.experienceName}.local-user-preferences`;if(e){const t=this.window.localStorage.getItem(e);if(t){return JSON.parse(t).theme}}return{}}setUpNetworkStateListener(){this._networkState=this.window.navigator.onLine?"suspectedOnline":"suspectedOffline",this.window.addEventListener("online",this.onlineHandler),this.window.addEventListener("offline",this.offlineHandler)}getRingFromQSP(){const e=this.window.location.search;if(!this._headConfig?.isInternalUser||!e)return null;return new URLSearchParams(e).get("ring")}readSettingsFromUrlHash(){const e=this.getHashItem("migratedSettings");try{if(e){const t=JSON.parse(decodeURIComponent(e));t&&(this._theme=t["client-preferences"]?.theme?.userTheme,this._migratedLocale=t.i18n?.language,this.logger?.logNoPii(`${this._migratedLocale} locale and ${this._theme} theme parsed from URL hash`))}}catch(t){this.logger?.errorNoPii(`Failed to parse theme and language settings from URL hash - ${t.message,e}`)}}setServiceWorkerVersion(){const e=this.window.navigator.serviceWorker?.controller;e?(this._getServiceWorkerVersionPromise=S(this.window,this.window.navigator.serviceWorker?.controller,this.logger),this._getServiceWorkerVersionPromise.then((e=>{this._activeServiceWorkerVersion=e}))):this._activeServiceWorkerVersion=""}}const Ft=e=>`tmp.${e}.experience-loader-ecs-flags`,zt=()=>{const e=Ft(globalThis.loaderConfig.experienceName),t=globalThis.localStorage.getItem(e);return t?JSON.parse(t):void 0},Ut="react-web-client",Ht="client-start-failure-count";function $t(e,t){return t||(t=e.loader?.getProperties?.().experienceName||Ut),`${t}_${Ht}`}const Vt="Created",jt="CriticalError",Gt="HostNotified";class qt{constructor(e,t,o,r,n,i,a){this.globalWindow=e,this.coreInitStarted=!1,this.pieTimerStopped=!1,this.errorHappened=!1,this.clientStartFailureCountChecked=!1,this.config=Object.assign(he,t),this.diagnosticsService=new Ct(e,this.config),this.logger=this.diagnosticsService.newLogger("ExperienceLoader"),this.loadConfigOverrides(),this.platformService=new Bt(e,this.config,this.logger),this.platformService.isMaglev&&(this.hostCommunication=this.createHostCommunications()),this.telemetryService=r(e,this.diagnosticsService,this.platformService,this.hostCommunication,this.config),this.windowManager=n(e,this.config,o,this.diagnosticsService,this.platformService,this.hostCommunication),this.uiManager=i(this.diagnosticsService,this.windowManager,this.platformService,this.telemetryService,this.hostCommunication),this.buildLoader=a(e,this.diagnosticsService,this.telemetryService,this.diagnosticsService,this.platformService),this.ecsSettings=(e=>{try{const e=zt();if(void 0!==e)return e}catch(t){e.error(`Failed to get experience loader settings from local storage: ${t}`)}try{const e=document.head.getAttribute("data-config");return(e?JSON.parse(decodeURIComponent(e)):{}).experienceLoaderSettings||{}}catch(t){return e.error(`Failed to get experience loader settings from element: ${t}`),{}}})(this.logger),this.precoreWorkers=new dt(this.globalWindow,this.config,this.getProperties(),this.platformService,this.logger,this.ecsSettings),this.registerErrorHandlers(),this.logger.logNoPii(Vt)}getLogsProvider(){return this.diagnosticsService}clearLoaderMarks(){this.telemetryService.clearLoaderMarks()}async execute(){try{if(((e,t,o)=>{const r="[T2->T1 auto-redirection]";if(o.platformId!==m.Web)return void t.logNoPii(`${r} loading T2 - not on web platform`);if(!e.localStorage)return void t.errorNoPii(`${r} loading T2 - local storage unavailable`);if(Ke(e),!o.headConfig.enableAutoRedirectionToT1)return void t.warnNoPii(`${r} loading T2 - auto-redirection disabled`);const n=new URL(e.location.href),i=["clearcontainer","container","version","meetingjoin","enablemcasfort21"];for(const e of i)if(n.searchParams.has(e))return void t.warnNoPii(`${r} loading T2 - URL contains '${e}', which is a no-redirect QSP parameter`);const a=e.localStorage.getItem(N);if(a&&["AdminDisabled","UserChoice","OptOut"].includes(a))return t.warnNoPii(`${r} redirecting to T1 - user previously opted out either manually or by TAC policy. optInFlagValue='${a}'`),void Ze(e);if("t2"===n.searchParams.get(D)){t.warnNoPii(`${r} loading T2 - clientexperience QSP is set to T2 (meaning PDS loaded T2 first), auto-opting user into T2Only`);try{e.localStorage.setItem(N,"true"),e.localStorage.setItem(A,"true"),e.localStorage.setItem("tmp.wasAutoOptedIntoT2Web","true")}catch{t.errorNoPii(`${r} failed to write opt-in flags to local storage`)}n.searchParams.delete(D);try{e.history.replaceState("","",n.href)}catch{t.logNoPii(`${r} replaceState threw an error`)}return}if("true"===e.localStorage.getItem(A))return void t.warnNoPii(`${r} loading T2 - force T2 only flag is set`);"true"!==e.localStorage.getItem(N)?(t.warnNoPii(`${r} redirecting to T1 - opt-in flag was not found`),Ze(e)):t.warnNoPii(`${r} loading T2 - user is opted into T2 web`)})(this.globalWindow,this.logger,this.platformService),((e,t,o,r)=>{const n="[RecordWebBootAttempt]";if(o.platformId!==m.Web)return void t.warnNoPii(`${n} not recording web boot attempt - not on web platform`);if(!o.headConfig.enableAutoRedirectionToT1)return void t.warnNoPii(`${n} not recording web boot attempt - auto-redirection disabled`);if(!e.localStorage)return void t.errorNoPii(`${n} failed to record T2 web boot attempt - local storage unavailable`);if(o.headConfig.enableIframeCheckInWebBootAttemptCounter&&function(e){try{return e.self!==e.top}catch(e){return!0}}(e))return void t.warnNoPii(`${n} not recording web boot attempt - we are inside an iframe`);if(null==e.localStorage.getItem(N))return void t.warnNoPii(`${n} not recording T2 web boot attempt - user not opted into T2`);if("true"===e.localStorage.getItem(A))return void t.warnNoPii(`${n} not recording T2 web boot attempt - force T2 only flag is set`);const i=e.localStorage.getItem(P),a=i?parseInt(i,10):0,s=e.localStorage.getItem(W),l=s?parseInt(s,10):0,c=Date.now()-l;if(c<3e4)return void t.warnNoPii?.(`${n} not recording T2 web boot attempt - boot attempt occurred too soon. TimeSinceLastBootAttempt=${c}ms`);const d=a+1;try{e.localStorage.setItem(P,d.toString()),e.localStorage.setItem(W,Date.now().toString()),t.warnNoPii(`${n} new boot attempt recorded - current boot attempt count: ${d}`)}catch(e){return void t.errorNoPii(`${n} failed to record T2 web boot attempt - unable to save incremented boot count to local storage`)}if(d<=3)return;t.errorNoPii(`${n} redirecting to T1 due to too many unsuccessful T2 boot attempts...`),r.sendNewScenarioThroughONEDS(z.FallbackToT1Web,{reason:"max_boot_attempts_reached"}),e.localStorage.removeItem(P),e.localStorage.removeItem(N),e.localStorage.removeItem(W);try{e.localStorage.setItem(M,JSON.stringify({source:"ErrorFallback",timestamp:Date.now()}))}catch{t.errorNoPii(`${n} failed to write last opt out source to local storage`)}Ze(e)})(this.globalWindow,this.logger,this.platformService,this.telemetryService),this.config.loadingScreenDelayInMs||this.setExpLoaderTimer(),this.logger.logNoPii(Gt),await this.platformService.loadHostCapabilities(this.hostCommunication),this.diagnosticsService.setSessionId(this.telemetryService.sessionId||""),await this.uiManager.showLoadingScreen(),this.checkInput(),this.logger.logNoPii(`Loading build version: ${this.config.build}`),this.config.preInitWorker&&this.precoreWorkers.initPrecoreWorker(),this.config.preInitSharedWorker&&this.precoreWorkers.initPrecoreSharedWorker(),this.config.loadingScreenDelayInMs&&await Je(this.config.loadingScreenDelayInMs),!(this.config?.manifest?.chunks&&this.config?.manifest?.chunks?.length>0))return this.globalWindow.performance.mark("exp_loader_err_manifest_chunks_empty"),this.showCriticalErrorScreen("ExpLoaderBuildDownloadFailure",new Error("Loader manifest is not valid"));this.globalWindow.performance.mark(l.ConfigLoaded),this.loadingBundlesPromise=this.buildLoader.loadBuild(this.config.manifest),this.sendStepsToMaglev("exp_loader_steps_config_loaded"),await this.loadingBundlesPromise}catch(e){return this.globalWindow.performance.mark("exp_loader_err_download_general_error"),this.sendStepsToMaglev("exp_loader_steps_general_error"),this.showCriticalErrorScreen("ExpLoaderBuildDownloadFailure",e)}try{this.diagnosticsService.persistDiagnostics(),this.globalWindow.performance.mark("exp_loader_before_core_init_start"),this.errorHappened?this.globalWindow.performance.mark("exp_loader_err_general_error_handler"):await this.waitForCoreInitStarted()}catch(e){return this.globalWindow.performance.mark("exp_loader_err_wait_for_core_init"),this.showCriticalErrorScreen("CoreInitBeginTimeout",e)}}openWindow(e,t,o){return this.windowManager.openWindowRequest(e,t,o)}getLoadingWindow(){return this.windowManager.getLoadingWindow()}getErrorWindow(){return this.windowManager.getWindow(me.Error)}getClientStartTelemetrySteps(){return this.telemetryService.getSuccessClientStartTelemetrySteps()}getProperties(){return{activeServiceWorkerVersion:this.platformService.activeServiceWorkerVersion,bootType:this.platformService.bootType,buildVersion:this.platformService.buildVersion,deeplinkId:this.platformService.deeplinkId,deeplinkTarget:this.platformService.deeplinkTarget,environment:this.platformService.environment,experienceName:this.config.experienceName,headConfig:this.platformService.headConfig,isMaglev:this.platformService.isMaglev,isPwa:this.platformService.isPwa,locale:this.platformService.locale,ring:this.platformService.ring,sessionId:this.telemetryService.sessionId,deviceId:this.telemetryService.deviceId,pdsEnvironment:this.platformService.pdsEnvironment,deviceInfo:this.telemetryService.deviceInfo,RelaunchReason:this.telemetryService.RelaunchReason,preAuthUserId:this.telemetryService.preAuthUserId,preCoreHostCommunication:this.hostCommunication}}getInitConsoleLogLevel(){return{preECSConsoleLogLevel:this.platformService.preECSConsoleLogLevel,userConsoleLogLevel:this.platformService.userConsoleLogLevel}}getWorkerId(){return this.precoreWorkers.getWorkerId()}getWorker(){return this.precoreWorkers.getWorker()}getSharedWorker(){return this.precoreWorkers.getSharedWorker()}getCdlWorkerUrl(){return this.precoreWorkers.getCdlWorkerUrl()}getCdlSharedWorkerUrl(){return this.precoreWorkers.getCdlSharedWorkerUrl()}getWorkerInitializationTime(){return this.precoreWorkers.getWorkerInitializationTime()}clearWorker(){this.precoreWorkers.clearWorker()}signalCoreInitStarted(){this.sendStepsToMaglev("exp_loader_steps_received_core_started"),this.logger.logNoPii("Received signal indicating core init started."),this.unregisterErrorHandlers(),this.waitForExpLoaderCompleteTimeout&&this.globalWindow.clearTimeout(this.waitForExpLoaderCompleteTimeout),this.waitForCoreInitStartTimeout&&this.globalWindow.clearTimeout(this.waitForCoreInitStartTimeout),this.coreInitStarted=!0,this.markIndexPageStop(),this.uiManager.hideErrorScreen(),this.resolveHandshakePromise&&(this.resolveHandshakePromise(),this.resolveHandshakePromise=void 0)}stopPieTimer(){this.waitForPieTimeout&&(this.logger.logNoPii("Stop the timer waiting for sending client_start events via PIE api."),this.globalWindow.clearTimeout(this.waitForPieTimeout),this.waitForPieTimeout=void 0,this.pieTimerStopped=!0,this.globalWindow.performance.mark("exp_loader_stop_pie_timer"),this.diagnosticsService.completeDiagnostics())}async onErrorHandler(e,t){this.unregisterErrorHandlers();const o="string"==typeof e?e:[`Message: ${e?.message}`,`Filename: ${this.scrubQspEmailEuii(e?.filename)}`,`Line: ${e?.lineno}`,`Column: ${e?.colno}`,`Error object: ${JSON.stringify(e?.error)}`].join(" - ");this.globalWindow.performance.mark(`exp_loader_err_${o}`),this.platformService.platformId===m.Web&&e?.message&&e.message.indexOf("Script error")>=0&&this.globalWindow.localStorage.setItem(R,"true"),await this.handleGeneralError(o,e,t)}async flushTelemetry(){return!!this.loadingBundlesPromise&&(await this.loadingBundlesPromise,!0)}persistLoaderLogsAsPreviousSession(){this.diagnosticsService?.persistDiagnosticsAsPreviousSessionLogs()}async checkClientStartFailureCount(){if(this.clientStartFailureCountChecked||!this.platformService.headConfig.enableUnregisterSWWhenClientStartFail)return;this.clientStartFailureCountChecked=!0;(function(e,t,o){const r=e.navigator?.serviceWorker?.controller;if("activated"!==r?.state)return!1;let n=0;const i=$t(e,t);let a=!1;try{const t=e.localStorage.getItem(i);t&&(n=parseInt(t,10)||0),n<2?e.localStorage.setItem(i,(n+1).toString()):a=!0}catch(t){o?.error(`client_start failure count check error: ${t.message}`),e.localStorage.removeItem(i)}return a})(this.globalWindow,this.config.experienceName,this.logger)&&(await async function(e,t){let o=!1,r="unRegisterServiceWorker skipped";if(!("serviceWorker"in e.navigator))return t?.log(`${r}, since ServiceWorker is not available`),!1;try{const n=await e.navigator.serviceWorker.getRegistration("/v2/serviceworker.js");if(n){if(!await n.unregister())return t?.error("ServiceWorker unregister failed"),!1;o=await e.caches.delete("teams-precache-v2"),r=o?"ServiceWorker successfully unregister and cache deleted":"Unregister ServiceWorker succeed, but deleting cache failed"}else r=`${r}, no active ServiceWorker`}catch(e){return t?.error(`ServiceWorker unregister failed with error: ${e.message}`),!1}return t?.log(r),o}(this.globalWindow,this.logger),function(e,t){const o=$t(e,t);e.localStorage.removeItem(o)}(this.globalWindow),this.telemetryService.sendNewScenarioThroughONEDS(z.ClearSWForClientStartFailure,{Scenario_Status:"success"}))}checkInput(){if(this.platformService.isMaglev&&!this.platformService.deeplinkTarget){const e="missing_deeplink";this.logger.errorNoPii(e),this.telemetryService.sendNewScenarioThroughONEDS(z.WebClientInputInvalid,{reason:e})}}markIndexPageStop(){E(l.MainChunksLoadingStop,this.globalWindow.performance),this.globalWindow.performance.mark(l.IndexPageStop)}async loadCoreModule(){return this.coreModule?this.coreModule:this.hostCommunication?.loadModule("core")}async loadScenarioModule(){return this.scenarioModule||(this.scenarioModule=await(this.hostCommunication?.loadModule("scenario"))),this.scenarioModule}async sendStepsToMaglev(e){const t=await this.loadScenarioModule();t?.setScenarioMarks?.("client_start",[{stepName:e,eventData:[{name:"scenarioPhase",value:"ExpLoader"}]}])}loadConfigOverrides(){try{const e=this.globalWindow.localStorage.getItem(I);if(e){const t=JSON.parse(e);this.config=Object.assign(this.config,t)}}catch(e){this.logger.logNoPii("Failed to load config overrides:",e)}}waitForCoreInitStarted(){return new Promise(((e,t)=>{this.coreInitStarted?(this.logger.logNoPii("Core initialization has started."),this.pieTimerStopped||this.waitForPie(),e()):(this.logger.logNoPii("Waiting for core init start."),this.resolveHandshakePromise=e,this.waitForCoreInitStartTimeout=this.globalWindow.setTimeout((()=>{const e="Core init hasn't started within 40000 ms.";this.logger.warnNoPii(e),this.telemetryService.failClientStartScenarioWithMarks([],F.Timeout,{reason:e}),t(new Error(e))}),4e4),this.pieTimerStopped||this.waitForPie())}))}waitForPie(){this.waitForPieTimeout=this.globalWindow.setTimeout((()=>{const e="Core init hasn't finished within 145000 ms.";this.logger.warnNoPii(e),this.telemetryService.failClientStartScenarioWithMarks([],F.Timeout,{reason:e})}),x)}setExpLoaderTimer(){this.waitForExpLoaderCompleteTimeout=this.globalWindow.setTimeout((()=>this.expLoaderTimeoutHandler()),L)}expLoaderTimeoutHandler(){this.waitForCoreInitStartTimeout&&this.globalWindow.clearTimeout(this.waitForCoreInitStartTimeout),this.waitForPieTimeout&&(this.globalWindow.clearTimeout(this.waitForPieTimeout),this.pieTimerStopped=!0);const e="ExpLoader hasn't finished within 135000 ms.";this.logger.warnNoPii(e),this.showCriticalErrorScreen("ExpLoaderBuildDownloadTimeout",new Error(e))}isTrustedTypeError(e){return!!e&&(e.indexOf("TrustedScriptURL")>=0||e.indexOf("TrustedHTML")>=0||e.indexOf("TrustedScript")>=0)}registerErrorHandlers(){this.onErrorHandlerCallback=e=>e?.filename?.startsWith("chrome-extension")?(this.logger.log("onErrorHandlerCallback: Error is from extension, skip handling"),!0):this.isTrustedTypeError(e?.message)?(this.logger.errorNoPii(`onErrorHandlerCallback: TrustedTypeError: ${e?.message}.`),!0):(this.onErrorHandler(e).catch((e=>{this.logger.errorNoPii(`onErrorHandlerCallback: Error handling error: ${e?.message}.`)})),!0),this.globalWindow.addEventListener("error",this.onErrorHandlerCallback),this.unhandledRejectionHandlerCallback=e=>{this.unhandledRejectionHandler(e).catch((e=>{this.logger.errorNoPii(`unhandledRejectionHandlerCallback: Error handling unhandled rejection: ${e?.message}.`)}))},this.globalWindow.addEventListener("unhandledrejection",this.unhandledRejectionHandlerCallback)}async unhandledRejectionHandler(e){this.unregisterErrorHandlers();let t="";if(e?.reason){let o="";try{o=JSON.stringify(e.reason)}catch{}o&&"{}"!==o?t=o:"object"==typeof e.reason&&(t=`${e.reason.message??""} ${e.reason.stack??""}`.trim())}t=t||"ExpLoaderUnhandledRejection",await this.handleGeneralError(t,e)}async handleGeneralError(e,t,o){this.errorHappened=!0,this.loadingBundlesPromise&&await this.loadingBundlesPromise,this.logger?.errorNoPii(e,"webclient_framework_exp_loader_event");const r=await this.checkIsChunkLoadingErrorFromSWCache(e);await this.telemetryService.failClientStartScenarioWithMarks(void 0,F.Failure,{reason:e,errorCode:c.ExpLoaderFailure,isLoadedFromServiceWorkerCache:r}),this.showCriticalErrorScreen(o||"CoreInitUnhandledPromiseRejectionFailure",new Error(e)),"CoreInitFailure"===o&&await this.checkClientStartFailureCount(),t?.preventDefault?.()}async showCriticalErrorScreen(e,t){this.waitForExpLoaderCompleteTimeout&&this.globalWindow.clearTimeout(this.waitForExpLoaderCompleteTimeout),this.waitForCoreInitStartTimeout&&this.globalWindow.clearTimeout(this.waitForCoreInitStartTimeout),this.logger.errorNoPii(jt,t),await this.telemetryService.failClientStartScenarioWithMarks([],"ExpLoaderBuildDownloadTimeout"===e?F.Timeout:F.Failure,{reason:`Web critical error - ${t.message}`}),this.diagnosticsService?.persistDiagnosticsAsPreviousSessionLogs();const o=await this.loadCoreModule();if(o?.reportCriticalError)return o.reportCriticalError({type:e});let r;switch(e){case"ExpLoaderBuildDownloadFailure":case"ExpLoaderBuildDownloadTimeout":r=ge.loadingApp;break;case"CoreInitBeginTimeout":case"CoreInitFailure":case"CoreInitGlobalWindowErrorFailure":case"CoreInitUnhandledPromiseRejectionFailure":r=ge.coreInit}this.uiManager.showErrorScreen(r)}unregisterErrorHandlers(){this.onErrorHandlerCallback&&(this.globalWindow.removeEventListener("error",this.onErrorHandlerCallback),this.onErrorHandlerCallback=void 0),this.unhandledRejectionHandlerCallback&&(this.globalWindow.removeEventListener("unhandledrejection",this.unhandledRejectionHandlerCallback),this.unhandledRejectionHandlerCallback=void 0),this.platformService.cleanUpNetworkStateListener()}scrubQspEmailEuii(e){if(!e)return e;const t=new RegExp("=+[a-zA-Z0-9.!#$%&'*+\\/?^_`{|}~-]+(@|_(A|a)(T|t)_|%40)(?!(T|t)(H|h)(R|r)(E|e)(A|a)(D|d).(V|v)2)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*","g");let o=e;return o=o.replace(t,"=email-euii"),o}createHostCommunications(){if(this.globalWindow.nativeModules){const{Core:e,Osutils:t,Windowcontrols:o,Scenario:r,Telemetry:n,Hostcapabilities:i,Logscollection:a}=this.globalWindow.nativeModules;return{loadModule:async s=>{switch(s){case"core":return e;case"windowcontrols":return o;case"osutils":return t;case"scenario":return r;case"telemetry":return n;case"hostcapabilities":return i;case"logscollection":return a;default:return}}}}}async checkIsChunkLoadingErrorFromSWCache(e){let t="";try{if(e&&e.indexOf('"message":"Loading chunk')>=0){const o=JSON.parse(e.replace(/[\u0000-\u001F\u007F-\u009F]/g,""));o&&"request"in o&&o.request&&"name"in o&&"ChunkLoadError"===o.name&&(t=(await C(o.request,this.globalWindow)).toString())}}catch{this.logger.errorNoPii("Parsing IsChunkLoadingErrorFromSWCache fail.")}return t}}const Yt={splashStyles:function(e){return'',''},favicons:function(e){return'',''},splash:function(e){var t="";return Array.prototype.join,t+='

\n'},preloadTitleBar:function(e){var t="";return Array.prototype.join,t+="\n
\n
\n \n\n ',"windows"===osPlatform&&(t+='\n
\n \x3c!-- TODO: Hook button up to minimize/maximize/collapse API --\x3e\n \n \x3c!-- TODO: Hook button up to minimize/maximize/collapse API --\x3e\n \n \x3c!-- TODO: toggle on when maximized --\x3e\n \x3c!-- TODO: Hook button up to minimize/maximize/collapse API --\x3e\n \n \n
\n '),t+="\n
\n
"},devtools:function(e){var t="";return Array.prototype.join,t}};const Jt=({theme:e,environment:t,cspNonce:o,publicPathScript:r,containerVer:n,viewportContext:i,contentOnly:a,shouldStubConsoleError:s})=>a?Kt(t):function(e){var t,o="";Array.prototype.join,o+='\n\n\n\n ',e.htmlWebpackPlugin.options.isMainWindow&&(o+='\n

\n \n \n',errorScreenStyles:'\n',themeStyles:'\n'}},Kt=e=>{const{loadingScreen:t,loadingScreenStyles:o,titleBar:r,titleBarStyles:n,errorScreen:i,errorScreenStyles:a}=Zt(e||"");return`\n ${o}\n ${t}\n ${n}\n ${r}\n ${a}\n ${i}\n `};var Xt;(Xt=window)._leakOverrides||(Xt._leakOverrides=!0,i(Xt)),async function(e){try{console.log("[ExpLoader] Getting things ready...");const t=window;await async function(e){try{if(y(e)&&"nativeModules"in e){e.performance.mark(l.NotifyDesktop);const t=e.nativeModules;t?.Core?.notifyLoaderStarted&&(await t.Core.notifyLoaderStarted(),console.log("[ExpLoader] notify loader started signal sent to desktop"))}}catch(e){console.error("[ExpLoader] notify loader started fail:",e)}}(t);const o=new qt(t,t.loaderConfig,e,je,Ge,qe,Ye);t.loader=o,await o.execute()}catch(e){throw console.error("[ExpLoader] Unhandled Exception:",e),e}}(Jt)}},o={};function r(e){var n=o[e];if(void 0!==n)return n.exports;var i=o[e]={id:e,loaded:!1,exports:{}};return t[e].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}r.m=t,e=[],r.O=(t,o,n,i)=>{if(!o){var a=1/0;for(d=0;d=i)&&Object.keys(r.O).every((e=>r.O[e](o[l])))?o.splice(l--,1):(s=!1,i0&&e[d-1][2]>i;d--)e[d]=e[d-1];e[d]=[o,n,i]},r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{if(void 0!==r){var e=r.u,t=r.e,o=new Map,n=new Map;r.u=function(t){return e(t)+(o.has(t)?"?"+o.get(t):"")},r.e=function(i){return t(i).catch((function(t){var a=n.has(i)?n.get(i):1;if(a<1){var s=e(i);throw t.message="Loading chunk "+i+" failed after 1 retries.\n("+s+")",t.request=s,t}var l="ts="+Date.now();return o.set(i,l),n.set(i,a-1),r.e(i)}))}}})(),void 0!==r&&(r.p=r.g&&r.g.__webpack_public_path__||r.p),(()=>{var e={473494:0,816410:0};r.O.j=t=>0===e[t];var t=(t,o)=>{var n,i,[a,s,l]=o,c=0;if(a.some((t=>0!==e[t]))){for(n in s)r.o(s,n)&&(r.m[n]=s[n]);if(l)var d=l(r)}for(t&&t(o);cr(237640)));n=r.O(n)})();