{"version":3,"sources":["webpack://TypeScriptModule/webpack/bootstrap","webpack://TypeScriptModule/D:/dbs/el/omr/Build/npm/.store/sdx_programmablesurfaces/@ms-oteljs@3.1.74-734b6cd65376b9a91f53/node_modules/@ms/oteljs/dist/DataClassification.js","webpack://TypeScriptModule/D:/dbs/el/omr/Build/npm/.store/sdx_programmablesurfaces/@ms-oteljs@3.1.74-734b6cd65376b9a91f53/node_modules/@ms/oteljs/dist/DataFieldHelper.js","webpack://TypeScriptModule/D:/dbs/el/omr/Build/npm/.store/sdx_programmablesurfaces/@ms-oteljs@3.1.74-734b6cd65376b9a91f53/node_modules/@ms/oteljs/dist/DataFieldType.js","webpack://TypeScriptModule/D:/dbs/el/omr/Build/npm/.store/sdx_programmablesurfaces/@ms-oteljs@3.1.74-734b6cd65376b9a91f53/node_modules/@ms/oteljs/dist/EventFlagsProperties.js","webpack://TypeScriptModule/D:/dbs/el/omr/Build/npm/.store/sdx_programmablesurfaces/@ms-oteljs@3.1.74-734b6cd65376b9a91f53/node_modules/@ms/oteljs/dist/Event.js","webpack://TypeScriptModule/D:/dbs/el/omr/Build/npm/.store/sdx_programmablesurfaces/@ms-oteljs@3.1.74-734b6cd65376b9a91f53/node_modules/@ms/oteljs/dist/OTelNotifications.js","webpack://TypeScriptModule/D:/dbs/el/omr/Build/npm/.store/sdx_programmablesurfaces/@ms-oteljs@3.1.74-734b6cd65376b9a91f53/node_modules/@ms/oteljs/dist/TenantTokenManager.js","webpack://TypeScriptModule/D:/dbs/el/omr/Build/npm/.store/sdx_programmablesurfaces/@ms-oteljs@3.1.74-734b6cd65376b9a91f53/node_modules/@ms/oteljs/dist/TelemetryEventValidator.js","webpack://TypeScriptModule/D:/dbs/el/omr/Build/npm/.store/sdx_programmablesurfaces/@ms-oteljs@3.1.74-734b6cd65376b9a91f53/node_modules/@ms/oteljs/dist/CorrelationVector.js","webpack://TypeScriptModule/D:/dbs/el/omr/Build/npm/.store/sdx_programmablesurfaces/@ms-oteljs@3.1.74-734b6cd65376b9a91f53/node_modules/@ms/oteljs/dist/SimpleTelemetryLogger.js","webpack://TypeScriptModule/D:/dbs/el/omr/Build/npm/.store/sdx_programmablesurfaces/@ms-oteljs@3.1.74-734b6cd65376b9a91f53/node_modules/@ms/oteljs/dist/Version.js","webpack://TypeScriptModule/D:/dbs/el/omr/Build/npm/.store/sdx_programmablesurfaces/@ms-oteljs@3.1.74-734b6cd65376b9a91f53/node_modules/@ms/oteljs/dist/TelemetryEvent.js","webpack://TypeScriptModule/D:/dbs/el/omr/Build/npm/.store/sdx_programmablesurfaces/@ms-oteljs@3.1.74-734b6cd65376b9a91f53/node_modules/@ms/oteljs/dist/Activity.js","webpack://TypeScriptModule/D:/dbs/el/omr/Build/npm/.store/sdx_programmablesurfaces/@ms-oteljs@3.1.74-734b6cd65376b9a91f53/node_modules/@ms/oteljs/dist/contracts/officeeventschema.tml.js","webpack://TypeScriptModule/D:/dbs/el/omr/Build/npm/.store/sdx_programmablesurfaces/@ms-oteljs@3.1.74-734b6cd65376b9a91f53/node_modules/@ms/oteljs/dist/contracts/Office.System.Error.js","webpack://TypeScriptModule/D:/dbs/el/omr/Build/npm/.store/sdx_programmablesurfaces/@ms-oteljs@3.1.74-734b6cd65376b9a91f53/node_modules/@ms/oteljs/dist/Contract.js","webpack://TypeScriptModule/D:/dbs/el/omr/Build/npm/.store/sdx_programmablesurfaces/@ms-oteljs@3.1.74-734b6cd65376b9a91f53/node_modules/@ms/oteljs/dist/contracts/Contracts.js","webpack://TypeScriptModule/D:/dbs/el/omr/Build/npm/.store/sdx_programmablesurfaces/@ms-oteljs@3.1.74-734b6cd65376b9a91f53/node_modules/@ms/oteljs/dist/TelemetryLogger.js","webpack://TypeScriptModule/./src/index.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","DataClassification","makeBooleanDataField","dataType","DataFieldType","Boolean","classification","SystemMetadata","makeInt64DataField","Int64","makeDoubleDataField","Double","makeStringDataField","String","SamplingPolicy","PersistencePriority","CostPriority","DataCategories","DiagnosticLevel","LogLevel","Category","TokenType","Event","this","_listeners","fireEvent","args","forEach","listener","addListener","push","removeListener","filter","h","getListenerCount","length","onNotificationEvent","logNotification","level","category","message","TenantTokenManager","ariaTokenMap","nexusTokenMap","tenantTokens","setTenantTokens","tokenTree","Error","mergeTenantTokens","existingTokenTree","newTokenTree","_i","_a","keys","getAriaTenantToken","eventName","ariaToken","getTenantToken","Aria","getNexusTenantToken","nexusToken","Nexus","tokenType","pieces","split","node","token","undefined","ariaTenantToken","nexusTenantToken","setTenantToken","namespace","parts","Core","leaf","index","parentNode","getTenantTokens","clear","TelemetryEventValidator","StartsWithCapitalRegex","AlphanumericRegex","isNameValid","test","validateDataField","dataField","dataFieldName","validateInt","isFinite","Math","floor","JSON","stringify","validateTelemetryEvent","event","eventNamePieces","eventNodeName","isNamespaceValid","eventNode","isEventNameValid","eventContract","dataFields","CorrelationVector","__assign","assign","arguments","apply","SimpleTelemetryLogger","parent","persistentDataFields","config","_b","onSendEvent","getConfig","sendTelemetryEvent","localEvent","Warning","cloneEvent","processTelemetryEvent","error","errorMessage","logError","_e","telemetryProperties","unshift","disableValidation","addSink","sink","eventFlags","slice","baseHash","baseId","getNext","characters","result","charAt","random","join","generatePseudoHash","CV","getNextChild","getString","nextChild","base","id","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","iterator","v","op","TypeError","pop","getCurrentMicroseconds","Date","now","window","performance","Activity","ActivityScope","telemetryLogger","activityName","_optionalEventFlags","_ended","_telemetryLogger","_activityName","_cv","_dataFields","_success","_startTime","createNew","createChildActivity","setEventFlags","addDataField","addDataFields","setSuccess","success","setResult","code","type","tag","_result","endNow","duration","activity","count","aggMode","cV","sendActivity","executeAsync","activityBody","_this","catch","executeSync","ret","executeChildActivityAsync","executeChildActivitySync","addContractField","instanceName","contractName","getFields","contract","isExpected","version","sessionId","alias","primaryIdentityHash","primaryIdentitySpace","tenantId","tenantGroup","isAnonymous","instanceId","marketplaceType","browserToken","osfRuntimeVersion","officeJsVersion","hostJsVersion","assetId","providerName","state","commandSurface","parentName","triggerMethod","timeOffsetMs","errorGroup","Contracts","_Activity","_Result","_Error","_Funnel","_Host","_SDX","_UserAction","_User","Office","System","Result","Funnel","Host","SDX","User","UserAction","extendStatics","__extends","b","setPrototypeOf","__proto__","Array","__","constructor","_super","TelemetryLogger","executeActivityAsync","createNewActivity","executeActivitySync","optionalEventFlags","sendError","dLE","sWE","officeOnReadyCallback","delay","onReadyTimeStampDate","onReadyTimeStamp","performanceTimingData","getEntries","navigation","getEntriesByType","resource","paint","frame","OfficeJsSink","Extensibility","serviceWorkerExperiment","isServiceWorkerUsed","setTimeout","registered","registerTS","supported","registerScope","resourcesFromCache","resourcesFromNetwork","samplingPolicy","Diagnostics","dataCategories","ProductServiceUsage","ProductServicePerformance","location","href","contentLoadedTS","scriptFetchedTS","scriptAddedTS","scriptLoadedTS","dynamicLoadExperiment","dynamic","scriptLoaded","addEventListener","onReady"],"mappings":"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","file":"main.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 73);\n","export var DataClassification;\r\n(function (DataClassification) {\r\n    // tslint:disable:no-bitwise\r\n    DataClassification[DataClassification[\"EssentialServiceMetadata\"] = 1] = \"EssentialServiceMetadata\";\r\n    DataClassification[DataClassification[\"AccountData\"] = 2] = \"AccountData\";\r\n    DataClassification[DataClassification[\"SystemMetadata\"] = 4] = \"SystemMetadata\";\r\n    DataClassification[DataClassification[\"OrganizationIdentifiableInformation\"] = 8] = \"OrganizationIdentifiableInformation\";\r\n    DataClassification[DataClassification[\"EndUserIdentifiableInformation\"] = 16] = \"EndUserIdentifiableInformation\";\r\n    DataClassification[DataClassification[\"CustomerContent\"] = 32] = \"CustomerContent\";\r\n    DataClassification[DataClassification[\"AccessControl\"] = 64] = \"AccessControl\";\r\n})(DataClassification || (DataClassification = {}));\r\n//# sourceMappingURL=DataClassification.js.map","import { DataFieldType } from './DataFieldType';\r\nimport { DataClassification } from './DataClassification';\r\n/**\r\n * Make a boolean data field.\r\n * @param name - The name of the data field\r\n * @param value - The value of the data field\r\n */\r\nexport function makeBooleanDataField(name, value) {\r\n    return {\r\n        name: name,\r\n        dataType: DataFieldType.Boolean,\r\n        value: value,\r\n        classification: DataClassification.SystemMetadata\r\n    };\r\n}\r\n/**\r\n * Make a data field corresponding to the Aria Int64 data type. Note that\r\n * JavaScript doesn't actually support Int64 precision on large numbers.\r\n * @param name - The name of the data field\r\n * @param value - The value of the data field\r\n */\r\nexport function makeInt64DataField(name, value) {\r\n    return {\r\n        name: name,\r\n        dataType: DataFieldType.Int64,\r\n        value: value,\r\n        classification: DataClassification.SystemMetadata\r\n    };\r\n}\r\n/**\r\n * Make a double data field\r\n * @param name - The name of the data field\r\n * @param value - The value of the data field\r\n */\r\nexport function makeDoubleDataField(name, value) {\r\n    return {\r\n        name: name,\r\n        dataType: DataFieldType.Double,\r\n        value: value,\r\n        classification: DataClassification.SystemMetadata\r\n    };\r\n}\r\n/**\r\n * Make a string data field\r\n * @param name - The name of the data field\r\n * @param value - The value of the data field\r\n */\r\nexport function makeStringDataField(name, value) {\r\n    return {\r\n        name: name,\r\n        dataType: DataFieldType.String,\r\n        value: value,\r\n        classification: DataClassification.SystemMetadata\r\n    };\r\n}\r\n/**\r\n * Make a GUID data field\r\n * !!!WARNING: Only the 1DS Sink has support for Guid types.\r\n * @param name - The name of the data field\r\n * @param value - The value of the data field\r\n */\r\nexport function makeGuidDataField(name, value) {\r\n    return {\r\n        name: name,\r\n        dataType: DataFieldType.Guid,\r\n        value: value,\r\n        classification: DataClassification.SystemMetadata\r\n    };\r\n}\r\n//# sourceMappingURL=DataFieldHelper.js.map","export var DataFieldType;\r\n(function (DataFieldType) {\r\n    DataFieldType[DataFieldType[\"String\"] = 0] = \"String\";\r\n    DataFieldType[DataFieldType[\"Boolean\"] = 1] = \"Boolean\";\r\n    DataFieldType[DataFieldType[\"Int64\"] = 2] = \"Int64\";\r\n    DataFieldType[DataFieldType[\"Double\"] = 3] = \"Double\";\r\n    DataFieldType[DataFieldType[\"Guid\"] = 4] = \"Guid\";\r\n})(DataFieldType || (DataFieldType = {}));\r\n//# sourceMappingURL=DataFieldType.js.map","export var SamplingPolicy;\r\n(function (SamplingPolicy) {\r\n    SamplingPolicy[SamplingPolicy[\"NotSet\"] = 0] = \"NotSet\";\r\n    SamplingPolicy[SamplingPolicy[\"Measure\"] = 1] = \"Measure\";\r\n    SamplingPolicy[SamplingPolicy[\"Diagnostics\"] = 2] = \"Diagnostics\";\r\n    SamplingPolicy[SamplingPolicy[\"CriticalBusinessImpact\"] = 191] = \"CriticalBusinessImpact\";\r\n    SamplingPolicy[SamplingPolicy[\"CriticalCensus\"] = 192] = \"CriticalCensus\";\r\n    SamplingPolicy[SamplingPolicy[\"CriticalExperimentation\"] = 193] = \"CriticalExperimentation\";\r\n    SamplingPolicy[SamplingPolicy[\"CriticalUsage\"] = 194] = \"CriticalUsage\";\r\n})(SamplingPolicy || (SamplingPolicy = {}));\r\nexport var PersistencePriority;\r\n(function (PersistencePriority) {\r\n    PersistencePriority[PersistencePriority[\"NotSet\"] = 0] = \"NotSet\";\r\n    PersistencePriority[PersistencePriority[\"Normal\"] = 1] = \"Normal\";\r\n    PersistencePriority[PersistencePriority[\"High\"] = 2] = \"High\";\r\n})(PersistencePriority || (PersistencePriority = {}));\r\nexport var CostPriority;\r\n(function (CostPriority) {\r\n    CostPriority[CostPriority[\"NotSet\"] = 0] = \"NotSet\";\r\n    CostPriority[CostPriority[\"Normal\"] = 1] = \"Normal\";\r\n    CostPriority[CostPriority[\"High\"] = 2] = \"High\";\r\n})(CostPriority || (CostPriority = {}));\r\n/**\r\n * DataCategories\r\n * These can be combined with | as appropriate\r\n */\r\nexport var DataCategories;\r\n(function (DataCategories) {\r\n    DataCategories[DataCategories[\"NotSet\"] = 0] = \"NotSet\";\r\n    DataCategories[DataCategories[\"SoftwareSetup\"] = 1] = \"SoftwareSetup\";\r\n    DataCategories[DataCategories[\"ProductServiceUsage\"] = 2] = \"ProductServiceUsage\";\r\n    DataCategories[DataCategories[\"ProductServicePerformance\"] = 4] = \"ProductServicePerformance\";\r\n    DataCategories[DataCategories[\"DeviceConfiguration\"] = 8] = \"DeviceConfiguration\";\r\n    DataCategories[DataCategories[\"InkingTypingSpeech\"] = 16] = \"InkingTypingSpeech\";\r\n})(DataCategories || (DataCategories = {}));\r\n/**\r\n * The diagnostic level of the event\r\n * For generic events, a user can be set to send no events, only basic events, or all (full and basic) events.\r\n * Services can also send events that are necessary for them to function; these are not affected by the above setting.\r\n * Instead, if the service is turned off, then it will stop functioning and no NecessaryServiceDataEvents will be sent.\r\n * AlwaysOnNecessaryServiceDataEvents are always on.\r\n */\r\nexport var DiagnosticLevel;\r\n(function (DiagnosticLevel) {\r\n    DiagnosticLevel[DiagnosticLevel[\"ReservedDoNotUse\"] = 0] = \"ReservedDoNotUse\";\r\n    DiagnosticLevel[DiagnosticLevel[\"BasicEvent\"] = 10] = \"BasicEvent\";\r\n    DiagnosticLevel[DiagnosticLevel[\"FullEvent\"] = 100] = \"FullEvent\";\r\n    DiagnosticLevel[DiagnosticLevel[\"NecessaryServiceDataEvent\"] = 110] = \"NecessaryServiceDataEvent\";\r\n    DiagnosticLevel[DiagnosticLevel[\"AlwaysOnNecessaryServiceDataEvent\"] = 120] = \"AlwaysOnNecessaryServiceDataEvent\";\r\n})(DiagnosticLevel || (DiagnosticLevel = {}));\r\n//# sourceMappingURL=EventFlagsProperties.js.map","/* tslint:disable */\r\n// Event implementation.  Allows an object to notify subscribed listeners of an event, passing\r\n// a typed payload for event arguments.  Users of this class should keep the Event<T> private,\r\n// and instead expose the object to the outside via the IEventListeners<T> interface to\r\n// prevent other classes from firing the event.\r\nvar Event = /** @class */ (function () {\r\n    function Event() {\r\n        this._listeners = [];\r\n    }\r\n    /**\r\n     * Fires an event to its listeners\r\n     * @param args - The parameters of the event\r\n     */\r\n    Event.prototype.fireEvent = function (args) {\r\n        this._listeners.forEach(function (listener) { return listener(args); });\r\n    };\r\n    /**\r\n     * Add an event listener\r\n     * @param listener - The listener that can process events\r\n     */\r\n    Event.prototype.addListener = function (listener) {\r\n        if (listener) {\r\n            this._listeners.push(listener);\r\n        }\r\n    };\r\n    /**\r\n     * Remove an event listener\r\n     * @param listener - The listener to remove\r\n     */\r\n    Event.prototype.removeListener = function (listener) {\r\n        this._listeners = this._listeners.filter(function (h) { return h !== listener; });\r\n    };\r\n    /**\r\n     * Get the count of event listeners\r\n     */\r\n    Event.prototype.getListenerCount = function () {\r\n        return this._listeners.length;\r\n    };\r\n    return Event;\r\n}());\r\nexport { Event };\r\n//# sourceMappingURL=Event.js.map","import { Event } from './Event';\r\nvar onNotificationEvent = new Event();\r\nexport var LogLevel;\r\n(function (LogLevel) {\r\n    LogLevel[LogLevel[\"Error\"] = 0] = \"Error\";\r\n    LogLevel[LogLevel[\"Warning\"] = 1] = \"Warning\";\r\n    LogLevel[LogLevel[\"Info\"] = 2] = \"Info\";\r\n    LogLevel[LogLevel[\"Verbose\"] = 3] = \"Verbose\";\r\n})(LogLevel || (LogLevel = {}));\r\nexport var Category;\r\n(function (Category) {\r\n    Category[Category[\"Core\"] = 0] = \"Core\";\r\n    Category[Category[\"Sink\"] = 1] = \"Sink\";\r\n    Category[Category[\"Transport\"] = 2] = \"Transport\";\r\n})(Category || (Category = {}));\r\n/**\r\n * Returns a list of notification event listeners. You can add an event listener:\r\n *    onNotification().addListener(event =\\> \\{\r\n *      console.log(event!.message + ' ' + event!.level); \\});\r\n *\r\n * DO NOT trigger telemetry events on these notifications, as doing so may\r\n * create an infinite loop of telemetry events.\r\n */\r\nexport function onNotification() {\r\n    return onNotificationEvent;\r\n}\r\n/**\r\n * Internal function: log a notification\r\n * @param level - The level of notification to log\r\n * @param category - The category of the notification\r\n * @param message - A function that returns a message to log\r\n */\r\nexport function logNotification(level, category, message) {\r\n    onNotificationEvent.fireEvent({ level: level, category: category, message: message });\r\n}\r\n/**\r\n * Internal function: log an error\r\n * @param category - The category of the notification\r\n * @param message - A message that will preceed the message from error object\r\n * @param error - An error object, from which an error message might be obtained\r\n */\r\nexport function logError(category, message, error) {\r\n    logNotification(LogLevel.Error, category, function () {\r\n        var errorMessage = error instanceof Error ? error.message : '';\r\n        return message + \": \" + errorMessage;\r\n    });\r\n}\r\n//# sourceMappingURL=OTelNotifications.js.map","import { logNotification, LogLevel, Category } from './OTelNotifications';\r\nvar TokenType;\r\n(function (TokenType) {\r\n    TokenType[TokenType[\"Aria\"] = 0] = \"Aria\";\r\n    TokenType[TokenType[\"Nexus\"] = 1] = \"Nexus\";\r\n})(TokenType || (TokenType = {}));\r\nexport var TenantTokenManager;\r\n(function (TenantTokenManager) {\r\n    var ariaTokenMap = {};\r\n    var nexusTokenMap = {};\r\n    // tslint:disable-next-line:no-any\r\n    var tenantTokens = {};\r\n    function setTenantToken(namespace, ariaTenantToken, nexusTenantToken) {\r\n        var parts = namespace.split('.');\r\n        // Ensure that the provided namespace is valid\r\n        if (parts.length < 2 || parts[0] !== 'Office') {\r\n            logNotification(LogLevel.Error, Category.Core, function () {\r\n                return \"Invalid namespace: \" + namespace;\r\n            });\r\n            return;\r\n        }\r\n        // Create the leaf node first\r\n        var leaf = Object.create(Object.prototype);\r\n        if (ariaTenantToken) {\r\n            leaf['ariaTenantToken'] = ariaTenantToken;\r\n        }\r\n        if (nexusTenantToken) {\r\n            leaf['nexusTenantToken'] = nexusTenantToken;\r\n        }\r\n        // Then walk backwards adding the path to the root\r\n        var node = leaf;\r\n        var index;\r\n        for (index = parts.length - 1; index >= 0; --index) {\r\n            var parentNode = Object.create(Object.prototype);\r\n            parentNode[parts[index]] = node;\r\n            node = parentNode;\r\n        }\r\n        setTenantTokens(node);\r\n    }\r\n    TenantTokenManager.setTenantToken = setTenantToken;\r\n    function setTenantTokens(tokenTree) {\r\n        if (typeof tokenTree !== 'object') {\r\n            throw new Error('tokenTree must be an object');\r\n        }\r\n        tenantTokens = mergeTenantTokens(tenantTokens, tokenTree);\r\n    }\r\n    TenantTokenManager.setTenantTokens = setTenantTokens;\r\n    function getTenantTokens(eventName) {\r\n        var ariaTenantToken = getAriaTenantToken(eventName);\r\n        var nexusTenantToken = getNexusTenantToken(eventName);\r\n        if (!nexusTenantToken || !ariaTenantToken) {\r\n            throw new Error('Could not find tenant token for ' + eventName);\r\n        }\r\n        return {\r\n            ariaTenantToken: ariaTenantToken,\r\n            nexusTenantToken: nexusTenantToken\r\n        };\r\n    }\r\n    TenantTokenManager.getTenantTokens = getTenantTokens;\r\n    function getAriaTenantToken(eventName) {\r\n        // Return cached token if it exists for eventName\r\n        if (ariaTokenMap[eventName]) {\r\n            return ariaTokenMap[eventName];\r\n        }\r\n        var ariaToken = getTenantToken(eventName, TokenType.Aria);\r\n        if (typeof ariaToken === 'string') {\r\n            ariaTokenMap[eventName] = ariaToken;\r\n            return ariaToken;\r\n        }\r\n        return undefined;\r\n    }\r\n    TenantTokenManager.getAriaTenantToken = getAriaTenantToken;\r\n    function getNexusTenantToken(eventName) {\r\n        // Return cached token if it exists for eventName\r\n        if (nexusTokenMap[eventName]) {\r\n            return nexusTokenMap[eventName];\r\n        }\r\n        var nexusToken = getTenantToken(eventName, TokenType.Nexus);\r\n        if (typeof nexusToken === 'number') {\r\n            nexusTokenMap[eventName] = nexusToken;\r\n            return nexusToken;\r\n        }\r\n        return undefined;\r\n    }\r\n    TenantTokenManager.getNexusTenantToken = getNexusTenantToken;\r\n    function getTenantToken(eventName, tokenType) {\r\n        // Find token\r\n        var pieces = eventName.split('.');\r\n        var node = tenantTokens;\r\n        var token = undefined;\r\n        if (!node) {\r\n            return undefined;\r\n        }\r\n        for (var i = 0; i < pieces.length - 1; i++) {\r\n            if (node[pieces[i]]) {\r\n                node = node[pieces[i]];\r\n                if (tokenType === TokenType.Aria && typeof node.ariaTenantToken === 'string') {\r\n                    // set token if one is available\r\n                    token = node.ariaTenantToken;\r\n                }\r\n                else if (tokenType === TokenType.Nexus && typeof node.nexusTenantToken === 'number') {\r\n                    token = node.nexusTenantToken;\r\n                }\r\n            }\r\n        }\r\n        return token;\r\n    }\r\n    // tslint:disable-next-line:no-any\r\n    function mergeTenantTokens(existingTokenTree, newTokenTree) {\r\n        if (typeof newTokenTree !== 'object') {\r\n            return newTokenTree;\r\n        }\r\n        for (var _i = 0, _a = Object.keys(newTokenTree); _i < _a.length; _i++) {\r\n            var key = _a[_i];\r\n            if (key in existingTokenTree && typeof (existingTokenTree[key] === 'object')) {\r\n                existingTokenTree[key] = mergeTenantTokens(existingTokenTree[key], newTokenTree[key]);\r\n            }\r\n            else {\r\n                existingTokenTree[key] = newTokenTree[key];\r\n            }\r\n        }\r\n        return existingTokenTree;\r\n    }\r\n    function clear() {\r\n        ariaTokenMap = {};\r\n        nexusTokenMap = {};\r\n        tenantTokens = {};\r\n    }\r\n    TenantTokenManager.clear = clear;\r\n})(TenantTokenManager || (TenantTokenManager = {}));\r\n//# sourceMappingURL=TenantTokenManager.js.map","import { DataFieldType } from './DataFieldType';\r\nexport var TelemetryEventValidator;\r\n(function (TelemetryEventValidator) {\r\n    var INT64_MIN = -9007199254740991;\r\n    var INT64_MAX = 9007199254740991;\r\n    // Starts with A-Z, and then contains only alphanumerics\r\n    var StartsWithCapitalRegex = /^[A-Z][a-zA-Z0-9]*$/;\r\n    // Contains alphanumeric or _ or .\r\n    var AlphanumericRegex = /^[a-zA-Z0-9_\\.]*$/;\r\n    function validateTelemetryEvent(event) {\r\n        if (!isEventNameValid(event.eventName)) {\r\n            throw new Error('Invalid eventName');\r\n        }\r\n        if (event.eventContract && !isEventContractValid(event.eventContract)) {\r\n            throw new Error('Invalid eventContract');\r\n        }\r\n        if (event.dataFields != null) {\r\n            for (var i = 0; i < event.dataFields.length; i++) {\r\n                validateDataField(event.dataFields[i]);\r\n            }\r\n        }\r\n    }\r\n    TelemetryEventValidator.validateTelemetryEvent = validateTelemetryEvent;\r\n    function isNamespaceValid(eventNamePieces) {\r\n        // Min 3 pieces: Office.(Namespace).EventName)\r\n        return !!eventNamePieces && eventNamePieces.length >= 3 && eventNamePieces[0] === 'Office';\r\n    }\r\n    function isEventNodeValid(eventNode) {\r\n        return eventNode !== undefined && StartsWithCapitalRegex.test(eventNode);\r\n    }\r\n    function isEventNameValid(eventName) {\r\n        var maxEventNameLength = 98; // Client Code = 100 limit; Aria Compact SDK = 98 limit.\r\n        if (!eventName || eventName.length > maxEventNameLength) {\r\n            return false;\r\n        }\r\n        var eventNamePieces = eventName.split('.');\r\n        var eventNodeName = eventNamePieces[eventNamePieces.length - 1];\r\n        return isNamespaceValid(eventNamePieces) && isEventNodeValid(eventNodeName);\r\n    }\r\n    function isEventContractValid(eventContract) {\r\n        return isNameValid(eventContract.name);\r\n    }\r\n    function isDataFieldNameValid(dataFieldName) {\r\n        var maxDataFieldNameLength = 100;\r\n        var dataFieldPrefixLength = 5;\r\n        return !!dataFieldName && isNameValid(dataFieldName) && dataFieldName.length + dataFieldPrefixLength < maxDataFieldNameLength;\r\n    }\r\n    function isNameValid(name) {\r\n        return name !== undefined && AlphanumericRegex.test(name);\r\n    }\r\n    function validateDataField(dataField) {\r\n        if (!isDataFieldNameValid(dataField.name)) {\r\n            throw new Error('Invalid dataField name');\r\n        }\r\n        if (dataField.dataType === DataFieldType.Int64) {\r\n            validateInt(dataField.value);\r\n        }\r\n    }\r\n    function validateInt(value) {\r\n        if (typeof value !== 'number' || !isFinite(value) || Math.floor(value) !== value || value < INT64_MIN || value > INT64_MAX) {\r\n            throw new Error(\"Invalid integer \" + JSON.stringify(value));\r\n        }\r\n    }\r\n    TelemetryEventValidator.validateInt = validateInt;\r\n})(TelemetryEventValidator || (TelemetryEventValidator = {}));\r\n//# sourceMappingURL=TelemetryEventValidator.js.map","export var CorrelationVector;\r\n(function (CorrelationVector) {\r\n    var baseHash;\r\n    var baseId = 0;\r\n    /**\r\n     * Get a new correlation vector representing the next event in sequence\r\n     */\r\n    function getNext() {\r\n        if (baseHash === undefined) {\r\n            baseHash = generatePseudoHash();\r\n        }\r\n        return new CV(baseHash, ++baseId);\r\n    }\r\n    CorrelationVector.getNext = getNext;\r\n    /**\r\n     * Get a new correlation vector parented to this one\r\n     * @param parent\r\n     */\r\n    function getNextChild(parent) {\r\n        return new CV(parent.getString(), ++parent.nextChild);\r\n    }\r\n    CorrelationVector.getNextChild = getNextChild;\r\n    var CV = /** @class */ (function () {\r\n        function CV(base, id) {\r\n            this.base = base;\r\n            this.id = id;\r\n            this.nextChild = 0;\r\n        }\r\n        CV.prototype.getString = function () {\r\n            return this.base + \".\" + this.id;\r\n        };\r\n        return CV;\r\n    }());\r\n    CorrelationVector.CV = CV;\r\n    function generatePseudoHash() {\r\n        var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\r\n        var hashLength = 22;\r\n        var result = [];\r\n        for (var i = 0; i < hashLength; i++) {\r\n            // tslint:disable: insecure-random (security is not a concern here and secure crypto function is not available on all platform)\r\n            result.push(characters.charAt(Math.floor(Math.random() * characters.length)));\r\n        }\r\n        return result.join('');\r\n    }\r\n})(CorrelationVector || (CorrelationVector = {}));\r\n//# sourceMappingURL=CorrelationVector.js.map","var __assign = (this && this.__assign) || function () {\r\n    __assign = Object.assign || function(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n                t[p] = s[p];\r\n        }\r\n        return t;\r\n    };\r\n    return __assign.apply(this, arguments);\r\n};\r\nimport { cloneEvent } from './TelemetryEvent';\r\nimport { TenantTokenManager } from './TenantTokenManager';\r\nimport { TelemetryEventValidator } from './TelemetryEventValidator';\r\nimport { Event } from './Event';\r\nimport { logNotification, LogLevel, Category, logError } from './OTelNotifications';\r\nimport { makeStringDataField } from '.';\r\nimport { oteljsVersion } from './Version';\r\n/**\r\n * Use this as the Nexus tenant token when Nexus logging is not needed or relevant\r\n */\r\nexport var SuppressNexus = -1;\r\n/**\r\n * SimpleTelemetryLogger is the base implementation of a telemetry logger.\r\n * It exposes sendTelemetryEvent, which is used to log a telemetry event.\r\n */\r\nvar SimpleTelemetryLogger = /** @class */ (function () {\r\n    /**\r\n     * Creates a telemetry logger\r\n     * @param parent - A parent telemetry logger that this telemetry logger should inherit from\r\n     *                 This telemetry logger will send telemetry to the same sinks\r\n     *                 and will send the same persistent data fields as the parent logger\r\n     * @param persistentDataFields - Data fields to send with every event\r\n     */\r\n    function SimpleTelemetryLogger(parent, persistentDataFields, config) {\r\n        var _a, _b;\r\n        /**\r\n         * A list of sinks that telemetry events will be forwarded to\r\n         */\r\n        this.onSendEvent = new Event();\r\n        /**\r\n         * @internal Internal variable; do not use publicly.\r\n         */\r\n        this.persistentDataFields = [];\r\n        this.config = config || {};\r\n        if (parent) {\r\n            this.onSendEvent = parent.onSendEvent;\r\n            (_a = this.persistentDataFields).push.apply(_a, parent.persistentDataFields);\r\n            this.config = __assign(__assign({}, parent.getConfig()), this.config);\r\n        }\r\n        if (persistentDataFields) {\r\n            (_b = this.persistentDataFields).push.apply(_b, persistentDataFields);\r\n        }\r\n    }\r\n    /**\r\n     * SendTelemetryEvent is the basic way to send a telemetry event.\r\n     * This should be used for sending telemetry about discrete events that happened\r\n     * For telemetry that includes duration and/or success/failure, the Activity API may be more appropriate.\r\n     * @param event - The telemetry event to send\r\n     */\r\n    SimpleTelemetryLogger.prototype.sendTelemetryEvent = function (event) {\r\n        var localEvent;\r\n        try {\r\n            if (this.onSendEvent.getListenerCount() === 0) {\r\n                logNotification(LogLevel.Warning, Category.Core, function () { return 'No telemetry sinks are attached.'; });\r\n                return;\r\n            }\r\n            // Don't modify the event that got passed in; we create our own.\r\n            localEvent = this.cloneEvent(event);\r\n            this.processTelemetryEvent(localEvent);\r\n        }\r\n        catch (error) {\r\n            logError(Category.Core, 'SendTelemetryEvent', error);\r\n            return;\r\n        }\r\n        try {\r\n            this.onSendEvent.fireEvent(localEvent);\r\n        }\r\n        catch (_e) {\r\n            // Sinks should handle their own errors;\r\n        }\r\n    };\r\n    /**\r\n     * Processes a telemetry event, but does not send it\r\n     *   Determines the tenant tokens\r\n     *   Adds persistent data fields\r\n     *   Validates the event\r\n     * Throws if the event is invalid\r\n     * @param event - The telemetry event to process\r\n     */\r\n    SimpleTelemetryLogger.prototype.processTelemetryEvent = function (event) {\r\n        var _a;\r\n        if (!event.telemetryProperties) {\r\n            event.telemetryProperties = TenantTokenManager.getTenantTokens(event.eventName);\r\n        }\r\n        if (event.dataFields) {\r\n            event.dataFields.unshift(makeStringDataField('OTelJS.Version', oteljsVersion));\r\n            if (this.persistentDataFields) {\r\n                // The last-added data field wins, if the same-named data field is added more than once.\r\n                // Persistent data fields should have lower priority than per-event data fields\r\n                (_a = event.dataFields).unshift.apply(_a, this.persistentDataFields);\r\n            }\r\n        }\r\n        if (!this.config.disableValidation) {\r\n            TelemetryEventValidator.validateTelemetryEvent(event);\r\n        }\r\n    };\r\n    /**\r\n     * Adds a telemetry sink, to which events will be sent\r\n     * @param sink - The telemetry sink to add\r\n     */\r\n    SimpleTelemetryLogger.prototype.addSink = function (sink) {\r\n        this.onSendEvent.addListener(function (event) { return sink.sendTelemetryEvent(event); });\r\n    };\r\n    /**\r\n     * Sets a tenant token for a single namespace. Events within the namespace will be sent to the corresponding tenant.\r\n     * @param namespace - The namespace to which the tokens apply, such as Office.System.\r\n     * @param ariaTenantToken - The Aria tenant token\r\n     * @param nexusTenantToken - The Nexus tenant token\r\n     */\r\n    SimpleTelemetryLogger.prototype.setTenantToken = function (namespace, ariaTenantToken, nexusTenantToken) {\r\n        TenantTokenManager.setTenantToken(namespace, ariaTenantToken, nexusTenantToken);\r\n    };\r\n    /**\r\n     * Sets tenant tokens for multiple namespaces.\r\n     * @param tokenTree - An that represents namespaces and which tenants to send corresponding tokens to\r\n     *   For example, the following tree identifies where to send events under the Office.System and Office.Word namespaces.\r\n     *                \\{ Office: \\{\r\n     *                    System: \\{\r\n     *                      ariaTenantToken: 'foo',\r\n     *                      nexusTenantToken: 100\r\n     *                    \\},\r\n     *                    Word: \\{\r\n     *                      ariaTenantToken: 'bar',\r\n     *                      nexusTenantToken: 200\r\n     *                    \\}\r\n     *                \\}\\}\r\n     */\r\n    SimpleTelemetryLogger.prototype.setTenantTokens = function (tokenTree) {\r\n        TenantTokenManager.setTenantTokens(tokenTree);\r\n    };\r\n    /**\r\n     * Clone a telemetry event; generally so we don't modify the input telemetry event\r\n     * Also sets dataFields to [] if it isn't already set\r\n     * @param event - The event to clone\r\n     */\r\n    SimpleTelemetryLogger.prototype.cloneEvent = function (event) {\r\n        return cloneEvent(event);\r\n    };\r\n    /**\r\n     * Gets the currently applied configuration\r\n     */\r\n    SimpleTelemetryLogger.prototype.getConfig = function () {\r\n        return this.config;\r\n    };\r\n    return SimpleTelemetryLogger;\r\n}());\r\nexport { SimpleTelemetryLogger };\r\n//# sourceMappingURL=SimpleTelemetryLogger.js.map","export var oteljsVersion = '3.1.74';\r\n//# sourceMappingURL=Version.js.map","/**\r\n * Clone a telemetry event; generally so we don't modify the input telemetry event\r\n * Also sets dataFields to [] if it isn't already set\r\n * @param event - The event to clone\r\n */\r\nexport function cloneEvent(event) {\r\n    var localEvent = { eventName: event.eventName, eventFlags: event.eventFlags };\r\n    if (!!event.telemetryProperties) {\r\n        localEvent.telemetryProperties = {\r\n            ariaTenantToken: event.telemetryProperties.ariaTenantToken,\r\n            nexusTenantToken: event.telemetryProperties.nexusTenantToken\r\n        };\r\n    }\r\n    if (!!event.eventContract) {\r\n        localEvent.eventContract = { name: event.eventContract.name, dataFields: event.eventContract.dataFields.slice() };\r\n    }\r\n    localEvent.dataFields = !!event.dataFields ? event.dataFields.slice() : [];\r\n    return localEvent;\r\n}\r\n//# sourceMappingURL=TelemetryEvent.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n};\r\nimport { CorrelationVector } from './CorrelationVector';\r\nimport { logNotification, LogLevel, Category } from './OTelNotifications';\r\n// Currently we only send one activity at a time\r\nvar ACTIVITY_COUNT = 1;\r\n// Currently we do not aggregate activities in OTelJS\r\nvar ACTIVITY_AGGMODE = 0;\r\nvar getCurrentMicroseconds = function () {\r\n    return Date.now() * 1000;\r\n};\r\nif (typeof window === 'object' && typeof window.performance === 'object' && 'now' in window.performance) {\r\n    getCurrentMicroseconds = function () {\r\n        return Math.floor(window.performance.now()) * 1000;\r\n    };\r\n}\r\n/**\r\n * An activity scope, which automatically records duration and correlation vectors.\r\n * Activity scopes must have their result set with setResult or setSuccess.\r\n * The can be auto-ending when created with executeSync/executeAsync,\r\n * or their scope can be manually managed with createNew and endNow.\r\n * Child activities can be created with corresponding functions.\r\n */\r\nvar ActivityScope = /** @class */ (function () {\r\n    function ActivityScope(telemetryLogger, activityName, parent) {\r\n        this._optionalEventFlags = {};\r\n        this._ended = false;\r\n        this._telemetryLogger = telemetryLogger;\r\n        this._activityName = activityName;\r\n        if (parent) {\r\n            this._cv = CorrelationVector.getNextChild(parent._cv);\r\n        }\r\n        else {\r\n            this._cv = CorrelationVector.getNext();\r\n        }\r\n        this._dataFields = [];\r\n        this._success = undefined;\r\n        this._startTime = getCurrentMicroseconds();\r\n    }\r\n    /**\r\n     * Creates a new Activity Scope that will be managed by the caller\r\n     * One of setSuccess or setResult must be called on the scope, followed by endNow.\r\n     * @param telemetryLogger - The telemetry logger that the activity belongs to\r\n     * @param activityName - The name of the activity\r\n     */\r\n    ActivityScope.createNew = function (telemetryLogger, activityName) {\r\n        return new ActivityScope(telemetryLogger, activityName);\r\n    };\r\n    /**\r\n     * Creates an activity parented to the current activity. Does not start the activity.\r\n     * @param activityName - The name of the activity\r\n     */\r\n    ActivityScope.prototype.createChildActivity = function (activityName) {\r\n        var childActivity = new ActivityScope(this._telemetryLogger, activityName, this);\r\n        return childActivity;\r\n    };\r\n    /**\r\n     * Sets optional event flags.\r\n     * @param eventFlags - Event flags to set\r\n     */\r\n    ActivityScope.prototype.setEventFlags = function (eventFlags) {\r\n        this._optionalEventFlags = eventFlags;\r\n    };\r\n    /**\r\n     * Adds a data field to the activity\r\n     * @param dataField - A data field to add\r\n     */\r\n    ActivityScope.prototype.addDataField = function (dataField) {\r\n        this._dataFields.push(dataField);\r\n    };\r\n    /**\r\n     * Adds data fields to the activity\r\n     * @param dataFields - Data fields to add\r\n     */\r\n    ActivityScope.prototype.addDataFields = function (dataFields) {\r\n        var _a;\r\n        (_a = this._dataFields).push.apply(_a, dataFields);\r\n    };\r\n    /**\r\n     * Sets whether the activity succeeded\r\n     * @param success - Whether the activity succeeded\r\n     */\r\n    ActivityScope.prototype.setSuccess = function (success) {\r\n        this._success = success;\r\n    };\r\n    /**\r\n     * Sets the result of the activity\r\n     * @param resultCode - The result code, e.g. 0 for success\r\n     * @param resultType - Optional: The result type, e.g. \"HRESULT\"\r\n     * @param resultTag - Optional: The result tag\r\n     */\r\n    // tslint:disable-next-line no-reserved-keywords\r\n    ActivityScope.prototype.setResult = function (code, type, tag) {\r\n        this._result = { code: code, type: type, tag: tag };\r\n    };\r\n    /**\r\n     * Ends the activity; records the duration and sends a telemetry event.\r\n     */\r\n    ActivityScope.prototype.endNow = function () {\r\n        if (this._ended) {\r\n            logNotification(LogLevel.Error, Category.Core, function () { return 'Activity has already ended'; });\r\n            return;\r\n        }\r\n        if (this._success === undefined && this._result === undefined) {\r\n            // The Activity dashboard shows these activities as 'unresolved'\r\n            // but developers generally should avoid leaving activities in this state.\r\n            logNotification(LogLevel.Warning, Category.Core, function () { return 'Activity does not have success or result set'; });\r\n        }\r\n        var endTime = getCurrentMicroseconds();\r\n        var duration = endTime - this._startTime;\r\n        this._ended = true;\r\n        var activity = {\r\n            duration: duration,\r\n            count: ACTIVITY_COUNT,\r\n            aggMode: ACTIVITY_AGGMODE,\r\n            cV: this._cv.getString(),\r\n            success: this._success,\r\n            result: this._result\r\n        };\r\n        return this._telemetryLogger.sendActivity(this._activityName, activity, this._dataFields, this._optionalEventFlags);\r\n    };\r\n    /**\r\n     * Starts an activity to execute asynchronously\r\n     * You must call setSuccess or setResult on the activity inside the activity body.\r\n     * When the activity body resolves or rejects, the duration is recorded and the activity is sent.\r\n     * The promise resolution is passed through to the caller.\r\n     * @param activityBody - The body of the activity, which should return a promise.\r\n     */\r\n    ActivityScope.prototype.executeAsync = function (activityBody) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var _this = this;\r\n            return __generator(this, function (_a) {\r\n                return [2 /*return*/, activityBody(this)\r\n                        .then(function (result) {\r\n                        _this.endNow();\r\n                        return result;\r\n                    })\r\n                        .catch(function (e) {\r\n                        _this.endNow();\r\n                        throw e;\r\n                    })];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Starts an activity to execute synchronously\r\n     * You must call setSuccess or setResult on the activity inside the activity body.\r\n     * When the function returns, the duration is recorded and the activity is sent. The return value is passed through to the caller.\r\n     * @param activityBody - The body of the activity, which should return a promise.\r\n     */\r\n    ActivityScope.prototype.executeSync = function (activityBody) {\r\n        try {\r\n            var ret = activityBody(this);\r\n            this.endNow();\r\n            return ret;\r\n        }\r\n        catch (e) {\r\n            this.endNow();\r\n            throw e;\r\n        }\r\n    };\r\n    /**\r\n     * Starts an activity to execute asynchronously, parented to the current activity.\r\n     * @param activityName - The name of the activity\r\n     * @param activityBody - The body of the activity\r\n     */\r\n    ActivityScope.prototype.executeChildActivityAsync = function (activityName, activityBody) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            return __generator(this, function (_a) {\r\n                return [2 /*return*/, this.createChildActivity(activityName).executeAsync(activityBody)];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Starts an activity to execute synchronously, parented to the current activity.\r\n     * @param activityName - The name of the activity\r\n     * @param activityBody - The body of the activity\r\n     */\r\n    ActivityScope.prototype.executeChildActivitySync = function (activityName, activityBody) {\r\n        return this.createChildActivity(activityName).executeSync(activityBody);\r\n    };\r\n    return ActivityScope;\r\n}());\r\nexport { ActivityScope };\r\n//# sourceMappingURL=Activity.js.map","/*\r\n    This code was automatically generated.\r\n    Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.\r\n*/\r\nimport { makeBooleanDataField, makeInt64DataField, makeStringDataField } from '../DataFieldHelper';\r\nimport { addContractField } from '../Contract';\r\nexport var Result;\r\n(function (Result) {\r\n    var contractName = 'Office.System.Result';\r\n    /* Gets data fields for the Office.System.Result contract */\r\n    function getFields(instanceName, contract) {\r\n        var dataFields = [];\r\n        dataFields.push(makeInt64DataField(instanceName + \".Code\", contract.code));\r\n        if (contract.type !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".Type\", contract.type));\r\n        }\r\n        if (contract.tag !== undefined) {\r\n            dataFields.push(makeInt64DataField(instanceName + \".Tag\", contract.tag));\r\n        }\r\n        if (contract.isExpected !== undefined) {\r\n            dataFields.push(makeBooleanDataField(instanceName + \".IsExpected\", contract.isExpected));\r\n        }\r\n        addContractField(dataFields, instanceName, contractName);\r\n        return dataFields;\r\n    }\r\n    Result.getFields = getFields;\r\n})(Result || (Result = {})); // Result\r\nexport var Activity;\r\n(function (Activity) {\r\n    Activity.contractName = 'Office.System.Activity';\r\n    /* Gets data fields for the Office.System.Activity contract */\r\n    function getFields(contract) {\r\n        var instanceName = 'Activity';\r\n        var dataFields = [];\r\n        if (contract.cV !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".CV\", contract.cV));\r\n        }\r\n        dataFields.push(makeInt64DataField(instanceName + \".Duration\", contract.duration));\r\n        dataFields.push(makeInt64DataField(instanceName + \".Count\", contract.count));\r\n        dataFields.push(makeInt64DataField(instanceName + \".AggMode\", contract.aggMode));\r\n        if (contract.success !== undefined) {\r\n            dataFields.push(makeBooleanDataField(instanceName + \".Success\", contract.success));\r\n        }\r\n        if (contract.result !== undefined) {\r\n            dataFields.push.apply(dataFields, Result.getFields(instanceName + \".Result\", contract.result));\r\n        }\r\n        addContractField(dataFields, instanceName, Activity.contractName);\r\n        return dataFields;\r\n    }\r\n    Activity.getFields = getFields;\r\n})(Activity || (Activity = {})); // Activity\r\nexport var Host;\r\n(function (Host) {\r\n    var contractName = 'Office.System.Host';\r\n    /* Gets data fields for the Office.System.Host contract */\r\n    function getFields(instanceName, contract) {\r\n        var dataFields = [];\r\n        if (contract.id !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".Id\", contract.id));\r\n        }\r\n        if (contract.version !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".Version\", contract.version));\r\n        }\r\n        if (contract.sessionId !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".SessionId\", contract.sessionId));\r\n        }\r\n        addContractField(dataFields, instanceName, contractName);\r\n        return dataFields;\r\n    }\r\n    Host.getFields = getFields;\r\n})(Host || (Host = {})); // Host\r\nexport var User;\r\n(function (User) {\r\n    var contractName = 'Office.System.User';\r\n    /* Gets data fields for the Office.System.User contract */\r\n    function getFields(instanceName, contract) {\r\n        var dataFields = [];\r\n        if (contract.alias !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".Alias\", contract.alias));\r\n        }\r\n        if (contract.primaryIdentityHash !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".PrimaryIdentityHash\", contract.primaryIdentityHash));\r\n        }\r\n        if (contract.primaryIdentitySpace !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".PrimaryIdentitySpace\", contract.primaryIdentitySpace));\r\n        }\r\n        if (contract.tenantId !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".TenantId\", contract.tenantId));\r\n        }\r\n        if (contract.tenantGroup !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".TenantGroup\", contract.tenantGroup));\r\n        }\r\n        if (contract.isAnonymous !== undefined) {\r\n            dataFields.push(makeBooleanDataField(instanceName + \".IsAnonymous\", contract.isAnonymous));\r\n        }\r\n        addContractField(dataFields, instanceName, contractName);\r\n        return dataFields;\r\n    }\r\n    User.getFields = getFields;\r\n})(User || (User = {})); // User\r\nexport var SDX;\r\n(function (SDX) {\r\n    var contractName = 'Office.System.SDX';\r\n    /* Gets data fields for the Office.System.SDX contract */\r\n    function getFields(instanceName, contract) {\r\n        var dataFields = [];\r\n        if (contract.id !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".Id\", contract.id));\r\n        }\r\n        if (contract.version !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".Version\", contract.version));\r\n        }\r\n        if (contract.instanceId !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".InstanceId\", contract.instanceId));\r\n        }\r\n        if (contract.name !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".Name\", contract.name));\r\n        }\r\n        if (contract.marketplaceType !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".MarketplaceType\", contract.marketplaceType));\r\n        }\r\n        if (contract.sessionId !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".SessionId\", contract.sessionId));\r\n        }\r\n        if (contract.browserToken !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".BrowserToken\", contract.browserToken));\r\n        }\r\n        if (contract.osfRuntimeVersion !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".OsfRuntimeVersion\", contract.osfRuntimeVersion));\r\n        }\r\n        if (contract.officeJsVersion !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".OfficeJsVersion\", contract.officeJsVersion));\r\n        }\r\n        if (contract.hostJsVersion !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".HostJsVersion\", contract.hostJsVersion));\r\n        }\r\n        if (contract.assetId !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".AssetId\", contract.assetId));\r\n        }\r\n        if (contract.providerName !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".ProviderName\", contract.providerName));\r\n        }\r\n        if (contract.type !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".Type\", contract.type));\r\n        }\r\n        addContractField(dataFields, instanceName, contractName);\r\n        return dataFields;\r\n    }\r\n    SDX.getFields = getFields;\r\n})(SDX || (SDX = {})); // SDX\r\nexport var Funnel;\r\n(function (Funnel) {\r\n    var contractName = 'Office.System.Funnel';\r\n    /* Gets data fields for the Office.System.Funnel contract */\r\n    function getFields(instanceName, contract) {\r\n        var dataFields = [];\r\n        if (contract.name !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".Name\", contract.name));\r\n        }\r\n        if (contract.state !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".State\", contract.state));\r\n        }\r\n        addContractField(dataFields, instanceName, contractName);\r\n        return dataFields;\r\n    }\r\n    Funnel.getFields = getFields;\r\n})(Funnel || (Funnel = {})); // Funnel\r\nexport var UserAction;\r\n(function (UserAction) {\r\n    var contractName = 'Office.System.UserAction';\r\n    /* Gets data fields for the Office.System.UserAction contract */\r\n    function getFields(instanceName, contract) {\r\n        var dataFields = [];\r\n        if (contract.id !== undefined) {\r\n            dataFields.push(makeInt64DataField(instanceName + \".Id\", contract.id));\r\n        }\r\n        if (contract.name !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".Name\", contract.name));\r\n        }\r\n        if (contract.commandSurface !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".CommandSurface\", contract.commandSurface));\r\n        }\r\n        if (contract.parentName !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".ParentName\", contract.parentName));\r\n        }\r\n        if (contract.triggerMethod !== undefined) {\r\n            dataFields.push(makeStringDataField(instanceName + \".TriggerMethod\", contract.triggerMethod));\r\n        }\r\n        if (contract.timeOffsetMs !== undefined) {\r\n            dataFields.push(makeInt64DataField(instanceName + \".TimeOffsetMs\", contract.timeOffsetMs));\r\n        }\r\n        addContractField(dataFields, instanceName, contractName);\r\n        return dataFields;\r\n    }\r\n    UserAction.getFields = getFields;\r\n})(UserAction || (UserAction = {})); // UserAction\r\n//# sourceMappingURL=officeeventschema.tml.js.map","import { makeInt64DataField, makeStringDataField } from '../DataFieldHelper';\r\nimport { addContractField } from '../Contract';\r\nexport var Error;\r\n(function (Error) {\r\n    var contractName = 'Office.System.Error';\r\n    /**\r\n     * Gets data fields for the Error Contract\r\n     * @param instanceName - The instance name of this Error Contract\r\n     * @param contract - The object containing data fields pertaining to the Error Contract\r\n     */\r\n    function getFields(instanceName, contract) {\r\n        var dataFields = [];\r\n        dataFields.push(makeStringDataField(instanceName + \".ErrorGroup\", contract.errorGroup));\r\n        dataFields.push(makeInt64DataField(instanceName + \".Tag\", contract.tag));\r\n        if (contract.code !== undefined) {\r\n            dataFields.push(makeInt64DataField(instanceName + \".Code\", contract.code));\r\n        }\r\n        if (contract.id !== undefined) {\r\n            dataFields.push(makeInt64DataField(instanceName + \".Id\", contract.id));\r\n        }\r\n        if (contract.count !== undefined) {\r\n            dataFields.push(makeInt64DataField(instanceName + \".Count\", contract.count));\r\n        }\r\n        addContractField(dataFields, instanceName, contractName);\r\n        return dataFields;\r\n    }\r\n    Error.getFields = getFields;\r\n})(Error || (Error = {})); // Error\r\n//# sourceMappingURL=Office.System.Error.js.map","import { makeStringDataField } from './DataFieldHelper';\r\n/**\r\n * Add a metadata field to the list of data fields indicating that a specific contract has been used.\r\n * For example, we might add the data field zC.MySdx: Office.System.SDX, which indicates that\r\n * the fields under MySdx conform to the Office.System.SDX contract.\r\n * @param dataFields - The list of data fields, to which a contract field will be added\r\n * @param instanceName - The instance of the contract. Usually the same as the contract name without its namespace,\r\n *                       but can be different, especially if you have more than one of the same contract type in a single event.\r\n * @param contractName - The name of the contract, for example Office.System.SDX\r\n */\r\nexport function addContractField(dataFields, instanceName, contractName) {\r\n    dataFields.push(makeStringDataField(\"zC.\" + instanceName, contractName));\r\n}\r\n//# sourceMappingURL=Contract.js.map","import { Activity, Result, Funnel, Host, SDX, UserAction, User } from './officeeventschema.tml';\r\nimport { Error } from './Office.System.Error';\r\nvar _Activity = Activity;\r\nvar _Result = Result;\r\nvar _Error = Error;\r\nvar _Funnel = Funnel;\r\nvar _Host = Host;\r\nvar _SDX = SDX;\r\nvar _UserAction = UserAction;\r\nvar _User = User;\r\nexport var Contracts;\r\n(function (Contracts) {\r\n    var Office;\r\n    (function (Office) {\r\n        var System;\r\n        (function (System) {\r\n            System.Activity = _Activity;\r\n            System.Result = _Result;\r\n            System.Error = _Error;\r\n            System.Funnel = _Funnel;\r\n            System.Host = _Host;\r\n            System.SDX = _SDX;\r\n            System.User = _User;\r\n            System.UserAction = _UserAction;\r\n        })(System = Office.System || (Office.System = {}));\r\n    })(Office = Contracts.Office || (Contracts.Office = {}));\r\n})(Contracts || (Contracts = {}));\r\n//# sourceMappingURL=Contracts.js.map","var __extends = (this && this.__extends) || (function () {\r\n    var extendStatics = function (d, b) {\r\n        extendStatics = Object.setPrototypeOf ||\r\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n        return extendStatics(d, b);\r\n    };\r\n    return function (d, b) {\r\n        extendStatics(d, b);\r\n        function __() { this.constructor = d; }\r\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n    };\r\n})();\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n};\r\nimport { SimpleTelemetryLogger } from './SimpleTelemetryLogger';\r\nimport { ActivityScope } from './Activity';\r\nimport { Contracts } from './contracts/Contracts';\r\n/**\r\n * A TelemetryLogger that includes more advanced functions than the SimpleTelemetryLogger,\r\n * specifically activities and errors.\r\n */\r\nvar TelemetryLogger = /** @class */ (function (_super) {\r\n    __extends(TelemetryLogger, _super);\r\n    function TelemetryLogger() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    /**\r\n     * Starts an unparented activity to execute asynchronously\r\n     * The caller must call setResult or setSuccess\r\n     * Returns the result of the activityBody\r\n     * @param activityName - The name of the activity\r\n     * @param activityBody - The body of the activity\r\n     */\r\n    TelemetryLogger.prototype.executeActivityAsync = function (activityName, activityBody) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            return __generator(this, function (_a) {\r\n                return [2 /*return*/, this.createNewActivity(activityName).executeAsync(activityBody)];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Starts an unparented activity to execute synchronously\r\n     * The caller must call setResult or setSuccess\r\n     * Returns the result of the activityBody\r\n     * @param activityName - The name of the activity\r\n     * @param activityBody - The body of the activity\r\n     */\r\n    TelemetryLogger.prototype.executeActivitySync = function (activityName, activityBody) {\r\n        return this.createNewActivity(activityName).executeSync(activityBody);\r\n    };\r\n    /**\r\n     * Creates a new activity. The caller is responsible for setting the result and calling endNow.\r\n     * @param activityName - The name of the activity\r\n     */\r\n    TelemetryLogger.prototype.createNewActivity = function (activityName) {\r\n        return ActivityScope.createNew(this, activityName);\r\n    };\r\n    /**\r\n     * Advanced usage: Sends an activity. The caller is responsible for setting all of the activity parameters.\r\n     * @param activityName - The name of the activity\r\n     * @param activity - The activity contract\r\n     * @param dataFields - Optional additional data fields\r\n     * @param optionalEventFlags - Optional event flags\r\n     */\r\n    TelemetryLogger.prototype.sendActivity = function (activityName, activity, dataFields, optionalEventFlags) {\r\n        return this.sendTelemetryEvent({\r\n            eventName: activityName,\r\n            eventContract: {\r\n                name: Contracts.Office.System.Activity.contractName,\r\n                dataFields: Contracts.Office.System.Activity.getFields(activity)\r\n            },\r\n            dataFields: dataFields,\r\n            eventFlags: optionalEventFlags\r\n        });\r\n    };\r\n    /**\r\n     * Sends an event with the Error data contract. A convenience wrapper around sendTelemetryEvent, with\r\n     * an Error as a data field.\r\n     * @param error - an ErrorEvent that represents the error\r\n     */\r\n    TelemetryLogger.prototype.sendError = function (error) {\r\n        var dataFields = Contracts.Office.System.Error.getFields('Error', error.error);\r\n        if (error.dataFields != null) {\r\n            dataFields.push.apply(dataFields, error.dataFields);\r\n        }\r\n        return this.sendTelemetryEvent({\r\n            eventName: error.eventName,\r\n            dataFields: dataFields,\r\n            eventFlags: error.eventFlags\r\n        });\r\n    };\r\n    return TelemetryLogger;\r\n}(SimpleTelemetryLogger));\r\nexport { TelemetryLogger };\r\n//# sourceMappingURL=TelemetryLogger.js.map","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\r\n * See LICENSE in the project root for license information.\r\n */\r\n\r\ndeclare var Office: any;\r\ndeclare var dynamicLoadExperiment: any;\r\ndeclare var serviceWorkerExperiment: any;\r\n\r\nimport * as OTel from '@ms/oteljs';\r\n\r\nclass OfficeJsSink implements OTel.TelemetrySink {\r\n    public sendTelemetryEvent(event: OTel.TelemetryEvent) {\r\n        Office.sendTelemetryEvent(event);\r\n    }\r\n}\r\n\r\nexport let telemetryLogger: OTel.TelemetryLogger;\r\n\r\n// Expose global variables\r\n(window as any).telemetryLogger = {};\r\n\r\nlet dLE;\r\nlet sWE;\r\n\r\nconst officeOnReadyCallback = () => {\r\n    const onReadyTimeStampDate: number = Date.now();\r\n    let onReadyTimeStamp: number = -1;\r\n    const performanceTimingData: any = {};\r\n\r\n    if (window.performance !== undefined)\r\n    {\r\n      if (window.performance.now !== undefined)\r\n      {\r\n        onReadyTimeStamp = performance.now();\r\n      }\r\n\r\n      if (window.performance.getEntries !== undefined)\r\n      {\r\n        // PerformanceObserver is not supported by IE11 and for TestSDX we don't lose any buffered data without it.\r\n        performanceTimingData.navigation = performance.getEntriesByType('navigation');\r\n        performanceTimingData.resource = performance.getEntriesByType('resource');\r\n        performanceTimingData.paint = performance.getEntriesByType('paint');\r\n        performanceTimingData.frame = performance.getEntriesByType('frame');\r\n      }\r\n    }\r\n\r\n    telemetryLogger = new OTel.TelemetryLogger();\r\n    telemetryLogger.addSink(new OfficeJsSink());\r\n\r\n    telemetryLogger.setTenantTokens({\r\n      Office: {\r\n        Extensibility: {\r\n          ariaTenantToken: 'db334b301e7b474db5e0f02f07c51a47-a1b5bc36-1bbe-482f-a64a-c2d9cb606706-7439',\r\n          nexusTenantToken: 1755\r\n        }\r\n      }\r\n    });\r\n\r\n    (window as any).telemetryLogger = telemetryLogger;\r\n\r\n    // SeviceWorker related telemetry is available in window.OnLoad().\r\n    // To avoid race between window.load and office.onReady, we add 10s delay for service worker case.\r\n    let delay;\r\n    try {\r\n      if (serviceWorkerExperiment.isServiceWorkerUsed) {\r\n        delay = 10000;\r\n      }\r\n    }\r\n    catch (e) {\r\n      delay = 0;\r\n    }\r\n\r\n    setTimeout(\r\n      () => {\r\n        try {\r\n          sWE = serviceWorkerExperiment;\r\n        }\r\n        catch (e) {\r\n          sWE = {\r\n            registered: false,\r\n            registerTS: -1,\r\n            supported: false,\r\n            registerScope: '',\r\n            isServiceWorkerUsed: false,\r\n            resourcesFromCache: '',\r\n            resourcesFromNetwork: ''\r\n          };\r\n        }\r\n\r\n        telemetryLogger.sendTelemetryEvent({\r\n          eventName: 'Office.Extensibility.SDX.Experimentation',\r\n          eventFlags: {\r\n              samplingPolicy: OTel.SamplingPolicy.Diagnostics,\r\n              // tslint:disable-next-line:no-bitwise\r\n              dataCategories: OTel.DataCategories.ProductServiceUsage | OTel.DataCategories.ProductServicePerformance\r\n          },\r\n          dataFields: [\r\n              OTel.makeBooleanDataField('Loaded', true),\r\n              OTel.makeDoubleDataField('onReadyTimeStamp', onReadyTimeStamp),\r\n              OTel.makeStringDataField('URL', window.location.href), // IE doesn't provide URL in perfromance.navigation\r\n              OTel.makeDoubleDataField('onReadyTimeStamp_Date', onReadyTimeStampDate),\r\n              OTel.makeDoubleDataField('contentLoadedTimeStamp', dLE.contentLoadedTS),\r\n              OTel.makeDoubleDataField('scriptFetchedTimeStamp', dLE.scriptFetchedTS),\r\n              OTel.makeDoubleDataField('scriptAddedTimeStamp', dLE.scriptAddedTS),\r\n              OTel.makeDoubleDataField('scriptLoadedTimeStamp', dLE.scriptLoadedTS),\r\n              OTel.makeStringDataField('performanceTimingData', JSON.stringify(performanceTimingData)),\r\n              OTel.makeBooleanDataField('swRegistered', sWE.registered),\r\n              OTel.makeDoubleDataField('swRegisteredTS', sWE.registerTS),\r\n              OTel.makeBooleanDataField('swSupported', sWE.supported),\r\n              OTel.makeStringDataField('swRegisterScope', sWE.registerScope),\r\n              OTel.makeStringDataField('swResourcesFromCache', sWE.resourcesFromCache),\r\n              OTel.makeStringDataField('swResourcesFromNetwork', sWE.resourcesFromNetwork)\r\n          ]\r\n        });\r\n      },\r\n      delay\r\n    );\r\n};\r\n\r\ntry {\r\n    dLE = dynamicLoadExperiment;\r\n}\r\ncatch (e) {\r\n    dLE = {\r\n       dynamic: false,\r\n       scriptLoaded: false,\r\n       contentLoadedTS: -1,\r\n       scriptFetchedTS: -1,\r\n       scriptAddedTS: -1,\r\n       scriptLoadedTS: -1\r\n    };\r\n}\r\n\r\nif (dLE.dynamic && !dLE.scriptLoaded) {\r\n    window.addEventListener('WordJSLoaded', () => Office.onReady()\r\n                                            .then(officeOnReadyCallback),\r\n                            false);\r\n} else {\r\n    Office.onReady()\r\n    .then(officeOnReadyCallback);\r\n}\r\n"],"sourceRoot":""}