livekit-client 0.18.4-RC6 → 0.18.4-RC7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/livekit-client.esm.mjs +38 -15
- package/dist/livekit-client.esm.mjs.map +1 -1
- package/dist/livekit-client.umd.js +1 -1
- package/dist/livekit-client.umd.js.map +1 -1
- package/dist/proto/livekit_models.d.ts +7 -0
- package/dist/proto/livekit_rtc.d.ts +44 -0
- package/dist/room/participant/ParticipantTrackPermission.d.ts +8 -2
- package/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"livekit-client.esm.mjs","sources":["../node_modules/.pnpm/loglevel@1.8.0/node_modules/loglevel/lib/loglevel.js","../src/logger.ts","../node_modules/long/src/long.js","../node_modules/.pnpm/@protobufjs+aspromise@1.1.2/node_modules/@protobufjs/aspromise/index.js","../node_modules/.pnpm/@protobufjs+base64@1.1.2/node_modules/@protobufjs/base64/index.js","../node_modules/.pnpm/@protobufjs+eventemitter@1.1.0/node_modules/@protobufjs/eventemitter/index.js","../node_modules/.pnpm/@protobufjs+float@1.0.2/node_modules/@protobufjs/float/index.js","../node_modules/.pnpm/@protobufjs+inquire@1.1.0/node_modules/@protobufjs/inquire/index.js","../node_modules/.pnpm/@protobufjs+utf8@1.1.0/node_modules/@protobufjs/utf8/index.js","../node_modules/.pnpm/@protobufjs+pool@1.1.0/node_modules/@protobufjs/pool/index.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/util/longbits.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/util/minimal.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/writer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/writer_buffer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/reader.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/reader_buffer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/rpc/service.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/rpc.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/roots.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/index-minimal.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/minimal.js","../src/proto/google/protobuf/timestamp.ts","../src/proto/livekit_models.ts","../src/proto/livekit_rtc.ts","../src/room/errors.ts","../src/room/events.ts","../src/room/stats.ts","../src/room/DeviceManager.ts","../src/version.ts","../src/room/utils.ts","../node_modules/.pnpm/events@3.3.0/node_modules/events/events.js","../src/room/track/Track.ts","../src/room/track/LocalTrack.ts","../src/room/track/utils.ts","../src/room/track/LocalAudioTrack.ts","../src/room/track/LocalVideoTrack.ts","../src/room/track/RemoteTrack.ts","../src/room/track/RemoteAudioTrack.ts","../node_modules/.pnpm/ts-debounce@3.0.0/node_modules/ts-debounce/dist/src/index.esm.js","../src/room/track/RemoteVideoTrack.ts","../src/room/track/TrackPublication.ts","../src/room/track/LocalTrackPublication.ts","../src/room/track/options.ts","../src/room/participant/Participant.ts","../src/room/participant/ParticipantTrackPermission.ts","../src/room/participant/publishUtils.ts","../src/room/track/RemoteTrackPublication.ts","../src/room/participant/RemoteParticipant.ts","../src/room/participant/LocalParticipant.ts","../src/api/RequestQueue.ts","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/utils.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/getdisplaymedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/getusermedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/safari/safari_shim.js","../node_modules/.pnpm/sdp@3.0.3/node_modules/sdp/sdp.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/common_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/adapter_factory.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/adapter_core.js","../src/api/SignalClient.ts","../src/room/PCTransport.ts","../src/room/RTCEngine.ts","../src/room/track/defaults.ts","../src/room/Room.ts","../src/connect.ts","../src/room/track/create.ts"],"sourcesContent":["/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && (\n /Trident\\/|MSIE /.test(window.navigator.userAgent)\n );\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n // In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods(level, loggerName) {\n /*jshint validthis:true */\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, loggerName);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this, level, loggerName);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, level, loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, defaultLevel, factory) {\n var self = this;\n var currentLevel;\n defaultLevel = defaultLevel == null ? \"WARN\" : defaultLevel;\n\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = undefined;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType || !storageKey) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var location = cookie.indexOf(\n encodeURIComponent(storageKey) + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage.removeItem(storageKey);\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {}\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n return currentLevel;\n };\n\n self.setLevel = function (level, persist) {\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n currentLevel = level;\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(level);\n }\n replaceLoggingMethods.call(self, level, name);\n if (typeof console === undefinedType && level < self.levels.SILENT) {\n return \"No console available for logging\";\n }\n } else {\n throw \"log.setLevel() called with invalid level: \" + level;\n }\n };\n\n self.setDefaultLevel = function (level) {\n defaultLevel = level;\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.resetLevel = function () {\n self.setLevel(defaultLevel, false);\n clearPersistedLevel();\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n // Initialize with the right level\n var initialLevel = getPersistedLevel();\n if (initialLevel == null) {\n initialLevel = defaultLevel;\n }\n self.setLevel(initialLevel, false);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n var defaultLogger = new Logger();\n\n var _loggersByName = {};\n defaultLogger.getLogger = function getLogger(name) {\n if ((typeof name !== \"symbol\" && typeof name !== \"string\") || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name, defaultLogger.getLevel(), defaultLogger.methodFactory);\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n // ES6 default export, for compatibility\n defaultLogger['default'] = defaultLogger;\n\n return defaultLogger;\n}));\n",null,"module.exports = Long;\r\n\r\n/**\r\n * wasm optimizations, to do native i64 multiplication and divide\r\n */\r\nvar wasm = null;\r\n\r\ntry {\r\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\r\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\r\n ])), {}).exports;\r\n} catch (e) {\r\n // no wasm support :(\r\n}\r\n\r\n/**\r\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n * See the from* functions below for more convenient ways of constructing Longs.\r\n * @exports Long\r\n * @class A Long class for representing a 64 bit two's-complement integer value.\r\n * @param {number} low The low (signed) 32 bits of the long\r\n * @param {number} high The high (signed) 32 bits of the long\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @constructor\r\n */\r\nfunction Long(low, high, unsigned) {\r\n\r\n /**\r\n * The low 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.low = low | 0;\r\n\r\n /**\r\n * The high 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.high = high | 0;\r\n\r\n /**\r\n * Whether unsigned or not.\r\n * @type {boolean}\r\n */\r\n this.unsigned = !!unsigned;\r\n}\r\n\r\n// The internal representation of a long is the two given signed, 32-bit values.\r\n// We use 32-bit pieces because these are the size of integers on which\r\n// Javascript performs bit-operations. For operations like addition and\r\n// multiplication, we split each number into 16 bit pieces, which can easily be\r\n// multiplied within Javascript's floating-point representation without overflow\r\n// or change in sign.\r\n//\r\n// In the algorithms below, we frequently reduce the negative case to the\r\n// positive case by negating the input(s) and then post-processing the result.\r\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n// a positive number, it overflows back into a negative). Not handling this\r\n// case would often result in infinite recursion.\r\n//\r\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n// methods on which they depend.\r\n\r\n/**\r\n * An indicator used to reliably determine if an object is a Long or not.\r\n * @type {boolean}\r\n * @const\r\n * @private\r\n */\r\nLong.prototype.__isLong__;\r\n\r\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\r\n\r\n/**\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n * @inner\r\n */\r\nfunction isLong(obj) {\r\n return (obj && obj[\"__isLong__\"]) === true;\r\n}\r\n\r\n/**\r\n * Tests if the specified object is a Long.\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n */\r\nLong.isLong = isLong;\r\n\r\n/**\r\n * A cache of the Long representations of small integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar INT_CACHE = {};\r\n\r\n/**\r\n * A cache of the Long representations of small unsigned integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar UINT_CACHE = {};\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromInt(value, unsigned) {\r\n var obj, cachedObj, cache;\r\n if (unsigned) {\r\n value >>>= 0;\r\n if (cache = (0 <= value && value < 256)) {\r\n cachedObj = UINT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\r\n if (cache)\r\n UINT_CACHE[value] = obj;\r\n return obj;\r\n } else {\r\n value |= 0;\r\n if (cache = (-128 <= value && value < 128)) {\r\n cachedObj = INT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, value < 0 ? -1 : 0, false);\r\n if (cache)\r\n INT_CACHE[value] = obj;\r\n return obj;\r\n }\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given 32 bit integer value.\r\n * @function\r\n * @param {number} value The 32 bit integer in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromInt = fromInt;\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromNumber(value, unsigned) {\r\n if (isNaN(value))\r\n return unsigned ? UZERO : ZERO;\r\n if (unsigned) {\r\n if (value < 0)\r\n return UZERO;\r\n if (value >= TWO_PWR_64_DBL)\r\n return MAX_UNSIGNED_VALUE;\r\n } else {\r\n if (value <= -TWO_PWR_63_DBL)\r\n return MIN_VALUE;\r\n if (value + 1 >= TWO_PWR_63_DBL)\r\n return MAX_VALUE;\r\n }\r\n if (value < 0)\r\n return fromNumber(-value, unsigned).neg();\r\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n * @function\r\n * @param {number} value The number in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromNumber = fromNumber;\r\n\r\n/**\r\n * @param {number} lowBits\r\n * @param {number} highBits\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromBits(lowBits, highBits, unsigned) {\r\n return new Long(lowBits, highBits, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n * assumed to use 32 bits.\r\n * @function\r\n * @param {number} lowBits The low 32 bits\r\n * @param {number} highBits The high 32 bits\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromBits = fromBits;\r\n\r\n/**\r\n * @function\r\n * @param {number} base\r\n * @param {number} exponent\r\n * @returns {number}\r\n * @inner\r\n */\r\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\r\n\r\n/**\r\n * @param {string} str\r\n * @param {(boolean|number)=} unsigned\r\n * @param {number=} radix\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromString(str, unsigned, radix) {\r\n if (str.length === 0)\r\n throw Error('empty string');\r\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n return ZERO;\r\n if (typeof unsigned === 'number') {\r\n // For goog.math.long compatibility\r\n radix = unsigned,\r\n unsigned = false;\r\n } else {\r\n unsigned = !! unsigned;\r\n }\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n\r\n var p;\r\n if ((p = str.indexOf('-')) > 0)\r\n throw Error('interior hyphen');\r\n else if (p === 0) {\r\n return fromString(str.substring(1), unsigned, radix).neg();\r\n }\r\n\r\n // Do several (8) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 8));\r\n\r\n var result = ZERO;\r\n for (var i = 0; i < str.length; i += 8) {\r\n var size = Math.min(8, str.length - i),\r\n value = parseInt(str.substring(i, i + size), radix);\r\n if (size < 8) {\r\n var power = fromNumber(pow_dbl(radix, size));\r\n result = result.mul(power).add(fromNumber(value));\r\n } else {\r\n result = result.mul(radixToPower);\r\n result = result.add(fromNumber(value));\r\n }\r\n }\r\n result.unsigned = unsigned;\r\n return result;\r\n}\r\n\r\n/**\r\n * Returns a Long representation of the given string, written using the specified radix.\r\n * @function\r\n * @param {string} str The textual representation of the Long\r\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromString = fromString;\r\n\r\n/**\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromValue(val, unsigned) {\r\n if (typeof val === 'number')\r\n return fromNumber(val, unsigned);\r\n if (typeof val === 'string')\r\n return fromString(val, unsigned);\r\n // Throws for non-objects, converts non-instanceof Long:\r\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\r\n}\r\n\r\n/**\r\n * Converts the specified value to a Long using the appropriate from* function for its type.\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long}\r\n */\r\nLong.fromValue = fromValue;\r\n\r\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n// no runtime penalty for these.\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_16_DBL = 1 << 16;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24_DBL = 1 << 24;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n/**\r\n * @type {!Long}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ZERO = fromInt(0);\r\n\r\n/**\r\n * Signed zero.\r\n * @type {!Long}\r\n */\r\nLong.ZERO = ZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UZERO = fromInt(0, true);\r\n\r\n/**\r\n * Unsigned zero.\r\n * @type {!Long}\r\n */\r\nLong.UZERO = UZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ONE = fromInt(1);\r\n\r\n/**\r\n * Signed one.\r\n * @type {!Long}\r\n */\r\nLong.ONE = ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UONE = fromInt(1, true);\r\n\r\n/**\r\n * Unsigned one.\r\n * @type {!Long}\r\n */\r\nLong.UONE = UONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar NEG_ONE = fromInt(-1);\r\n\r\n/**\r\n * Signed negative one.\r\n * @type {!Long}\r\n */\r\nLong.NEG_ONE = NEG_ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n/**\r\n * Maximum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_VALUE = MAX_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n/**\r\n * Maximum unsigned value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MIN_VALUE = fromBits(0, 0x80000000|0, false);\r\n\r\n/**\r\n * Minimum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MIN_VALUE = MIN_VALUE;\r\n\r\n/**\r\n * @alias Long.prototype\r\n * @inner\r\n */\r\nvar LongPrototype = Long.prototype;\r\n\r\n/**\r\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n * @returns {number}\r\n */\r\nLongPrototype.toInt = function toInt() {\r\n return this.unsigned ? this.low >>> 0 : this.low;\r\n};\r\n\r\n/**\r\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n * @returns {number}\r\n */\r\nLongPrototype.toNumber = function toNumber() {\r\n if (this.unsigned)\r\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n};\r\n\r\n/**\r\n * Converts the Long to a string written in the specified radix.\r\n * @param {number=} radix Radix (2-36), defaults to 10\r\n * @returns {string}\r\n * @override\r\n * @throws {RangeError} If `radix` is out of range\r\n */\r\nLongPrototype.toString = function toString(radix) {\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n if (this.isZero())\r\n return '0';\r\n if (this.isNegative()) { // Unsigned Longs are never negative\r\n if (this.eq(MIN_VALUE)) {\r\n // We need to change the Long value before it can be negated, so we remove\r\n // the bottom-most digit in this base and then recurse to do the rest.\r\n var radixLong = fromNumber(radix),\r\n div = this.div(radixLong),\r\n rem1 = div.mul(radixLong).sub(this);\r\n return div.toString(radix) + rem1.toInt().toString(radix);\r\n } else\r\n return '-' + this.neg().toString(radix);\r\n }\r\n\r\n // Do several (6) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\r\n rem = this;\r\n var result = '';\r\n while (true) {\r\n var remDiv = rem.div(radixToPower),\r\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\r\n digits = intval.toString(radix);\r\n rem = remDiv;\r\n if (rem.isZero())\r\n return digits + result;\r\n else {\r\n while (digits.length < 6)\r\n digits = '0' + digits;\r\n result = '' + digits + result;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as a signed integer.\r\n * @returns {number} Signed high bits\r\n */\r\nLongPrototype.getHighBits = function getHighBits() {\r\n return this.high;\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned high bits\r\n */\r\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n return this.high >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as a signed integer.\r\n * @returns {number} Signed low bits\r\n */\r\nLongPrototype.getLowBits = function getLowBits() {\r\n return this.low;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned low bits\r\n */\r\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n return this.low >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the number of bits needed to represent the absolute value of this Long.\r\n * @returns {number}\r\n */\r\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\r\n if (this.isNegative()) // Unsigned Longs are never negative\r\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\r\n var val = this.high != 0 ? this.high : this.low;\r\n for (var bit = 31; bit > 0; bit--)\r\n if ((val & (1 << bit)) != 0)\r\n break;\r\n return this.high != 0 ? bit + 33 : bit + 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isZero = function isZero() {\r\n return this.high === 0 && this.low === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eqz = LongPrototype.isZero;\r\n\r\n/**\r\n * Tests if this Long's value is negative.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isNegative = function isNegative() {\r\n return !this.unsigned && this.high < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is positive.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isPositive = function isPositive() {\r\n return this.unsigned || this.high >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is odd.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isOdd = function isOdd() {\r\n return (this.low & 1) === 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is even.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isEven = function isEven() {\r\n return (this.low & 1) === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.equals = function equals(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n return false;\r\n return this.high === other.high && this.low === other.low;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eq = LongPrototype.equals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.notEquals = function notEquals(other) {\r\n return !this.eq(/* validates */ other);\r\n};\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.neq = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ne = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThan = function lessThan(other) {\r\n return this.comp(/* validates */ other) < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lt = LongPrototype.lessThan;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n return this.comp(/* validates */ other) <= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.le = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThan = function greaterThan(other) {\r\n return this.comp(/* validates */ other) > 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gt = LongPrototype.greaterThan;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n return this.comp(/* validates */ other) >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Compares this Long's value with the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.compare = function compare(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.eq(other))\r\n return 0;\r\n var thisNeg = this.isNegative(),\r\n otherNeg = other.isNegative();\r\n if (thisNeg && !otherNeg)\r\n return -1;\r\n if (!thisNeg && otherNeg)\r\n return 1;\r\n // At this point the sign bits are the same\r\n if (!this.unsigned)\r\n return this.sub(other).isNegative() ? -1 : 1;\r\n // Both are positive if at least one is unsigned\r\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n};\r\n\r\n/**\r\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.comp = LongPrototype.compare;\r\n\r\n/**\r\n * Negates this Long's value.\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.negate = function negate() {\r\n if (!this.unsigned && this.eq(MIN_VALUE))\r\n return MIN_VALUE;\r\n return this.not().add(ONE);\r\n};\r\n\r\n/**\r\n * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n * @function\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.neg = LongPrototype.negate;\r\n\r\n/**\r\n * Returns the sum of this and the specified Long.\r\n * @param {!Long|number|string} addend Addend\r\n * @returns {!Long} Sum\r\n */\r\nLongPrototype.add = function add(addend) {\r\n if (!isLong(addend))\r\n addend = fromValue(addend);\r\n\r\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = addend.high >>> 16;\r\n var b32 = addend.high & 0xFFFF;\r\n var b16 = addend.low >>> 16;\r\n var b00 = addend.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 + b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 + b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 + b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 + b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long.\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.subtract = function subtract(subtrahend) {\r\n if (!isLong(subtrahend))\r\n subtrahend = fromValue(subtrahend);\r\n return this.add(subtrahend.neg());\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n * @function\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.sub = LongPrototype.subtract;\r\n\r\n/**\r\n * Returns the product of this and the specified Long.\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.multiply = function multiply(multiplier) {\r\n if (this.isZero())\r\n return ZERO;\r\n if (!isLong(multiplier))\r\n multiplier = fromValue(multiplier);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = wasm.mul(this.low,\r\n this.high,\r\n multiplier.low,\r\n multiplier.high);\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (multiplier.isZero())\r\n return ZERO;\r\n if (this.eq(MIN_VALUE))\r\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\r\n if (multiplier.eq(MIN_VALUE))\r\n return this.isOdd() ? MIN_VALUE : ZERO;\r\n\r\n if (this.isNegative()) {\r\n if (multiplier.isNegative())\r\n return this.neg().mul(multiplier.neg());\r\n else\r\n return this.neg().mul(multiplier).neg();\r\n } else if (multiplier.isNegative())\r\n return this.mul(multiplier.neg()).neg();\r\n\r\n // If both longs are small, use float multiplication\r\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\r\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n // We can skip products that would overflow.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = multiplier.high >>> 16;\r\n var b32 = multiplier.high & 0xFFFF;\r\n var b16 = multiplier.low >>> 16;\r\n var b00 = multiplier.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 * b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 * b00;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c16 += a00 * b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 * b00;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a16 * b16;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a00 * b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n * @function\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.mul = LongPrototype.multiply;\r\n\r\n/**\r\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\r\n * unsigned if this Long is unsigned.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.divide = function divide(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n if (divisor.isZero())\r\n throw Error('division by zero');\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n // guard against signed division overflow: the largest\r\n // negative number / -1 would be 1 larger than the largest\r\n // positive number, due to two's complement.\r\n if (!this.unsigned &&\r\n this.high === -0x80000000 &&\r\n divisor.low === -1 && divisor.high === -1) {\r\n // be consistent with non-wasm code path\r\n return this;\r\n }\r\n var low = (this.unsigned ? wasm.div_u : wasm.div_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (this.isZero())\r\n return this.unsigned ? UZERO : ZERO;\r\n var approx, rem, res;\r\n if (!this.unsigned) {\r\n // This section is only relevant for signed longs and is derived from the\r\n // closure library as a whole.\r\n if (this.eq(MIN_VALUE)) {\r\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\r\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\r\n else if (divisor.eq(MIN_VALUE))\r\n return ONE;\r\n else {\r\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n var halfThis = this.shr(1);\r\n approx = halfThis.div(divisor).shl(1);\r\n if (approx.eq(ZERO)) {\r\n return divisor.isNegative() ? ONE : NEG_ONE;\r\n } else {\r\n rem = this.sub(divisor.mul(approx));\r\n res = approx.add(rem.div(divisor));\r\n return res;\r\n }\r\n }\r\n } else if (divisor.eq(MIN_VALUE))\r\n return this.unsigned ? UZERO : ZERO;\r\n if (this.isNegative()) {\r\n if (divisor.isNegative())\r\n return this.neg().div(divisor.neg());\r\n return this.neg().div(divisor).neg();\r\n } else if (divisor.isNegative())\r\n return this.div(divisor.neg()).neg();\r\n res = ZERO;\r\n } else {\r\n // The algorithm below has not been made for unsigned longs. It's therefore\r\n // required to take special care of the MSB prior to running it.\r\n if (!divisor.unsigned)\r\n divisor = divisor.toUnsigned();\r\n if (divisor.gt(this))\r\n return UZERO;\r\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\r\n return UONE;\r\n res = UZERO;\r\n }\r\n\r\n // Repeat the following until the remainder is less than other: find a\r\n // floating-point that approximates remainder / other *from below*, add this\r\n // into the result, and subtract it from the remainder. It is critical that\r\n // the approximate value is less than or equal to the real value so that the\r\n // remainder never becomes negative.\r\n rem = this;\r\n while (rem.gte(divisor)) {\r\n // Approximate the result of division. This may be a little greater or\r\n // smaller than the actual value.\r\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n // We will tweak the approximate result by changing it in the 48-th digit or\r\n // the smallest non-fractional digit, whichever is larger.\r\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\r\n\r\n // Decrease the approximation until it is smaller than the remainder. Note\r\n // that if it is too large, the product overflows and is negative.\r\n approxRes = fromNumber(approx),\r\n approxRem = approxRes.mul(divisor);\r\n while (approxRem.isNegative() || approxRem.gt(rem)) {\r\n approx -= delta;\r\n approxRes = fromNumber(approx, this.unsigned);\r\n approxRem = approxRes.mul(divisor);\r\n }\r\n\r\n // We know the answer can't be zero... and actually, zero would cause\r\n // infinite recursion since we would make no progress.\r\n if (approxRes.isZero())\r\n approxRes = ONE;\r\n\r\n res = res.add(approxRes);\r\n rem = rem.sub(approxRem);\r\n }\r\n return res;\r\n};\r\n\r\n/**\r\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.div = LongPrototype.divide;\r\n\r\n/**\r\n * Returns this Long modulo the specified.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.modulo = function modulo(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n return this.sub(this.div(divisor).mul(divisor));\r\n};\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.mod = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.rem = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns the bitwise NOT of this Long.\r\n * @returns {!Long}\r\n */\r\nLongPrototype.not = function not() {\r\n return fromBits(~this.low, ~this.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise AND of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.and = function and(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise OR of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.or = function or(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise XOR of this Long and the given one.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.xor = function xor(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n else\r\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shl = LongPrototype.shiftLeft;\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRight = function shiftRight(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n else\r\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr = LongPrototype.shiftRight;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n numBits &= 63;\r\n if (numBits === 0)\r\n return this;\r\n else {\r\n var high = this.high;\r\n if (numBits < 32) {\r\n var low = this.low;\r\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n } else if (numBits === 32)\r\n return fromBits(high, 0, this.unsigned);\r\n else\r\n return fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n }\r\n};\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Converts this Long to signed.\r\n * @returns {!Long} Signed long\r\n */\r\nLongPrototype.toSigned = function toSigned() {\r\n if (!this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, false);\r\n};\r\n\r\n/**\r\n * Converts this Long to unsigned.\r\n * @returns {!Long} Unsigned long\r\n */\r\nLongPrototype.toUnsigned = function toUnsigned() {\r\n if (this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, true);\r\n};\r\n\r\n/**\r\n * Converts this Long to its byte representation.\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {!Array.<number>} Byte representation\r\n */\r\nLongPrototype.toBytes = function toBytes(le) {\r\n return le ? this.toBytesLE() : this.toBytesBE();\r\n};\r\n\r\n/**\r\n * Converts this Long to its little endian byte representation.\r\n * @returns {!Array.<number>} Little endian byte representation\r\n */\r\nLongPrototype.toBytesLE = function toBytesLE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n lo & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo >>> 16 & 0xff,\r\n lo >>> 24 ,\r\n hi & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi >>> 16 & 0xff,\r\n hi >>> 24\r\n ];\r\n};\r\n\r\n/**\r\n * Converts this Long to its big endian byte representation.\r\n * @returns {!Array.<number>} Big endian byte representation\r\n */\r\nLongPrototype.toBytesBE = function toBytesBE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n hi >>> 24 ,\r\n hi >>> 16 & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi & 0xff,\r\n lo >>> 24 ,\r\n lo >>> 16 & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo & 0xff\r\n ];\r\n};\r\n\r\n/**\r\n * Creates a Long from its byte representation.\r\n * @param {!Array.<number>} bytes Byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\r\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\r\n};\r\n\r\n/**\r\n * Creates a Long from its little endian byte representation.\r\n * @param {!Array.<number>} bytes Little endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\r\n return new Long(\r\n bytes[0] |\r\n bytes[1] << 8 |\r\n bytes[2] << 16 |\r\n bytes[3] << 24,\r\n bytes[4] |\r\n bytes[5] << 8 |\r\n bytes[6] << 16 |\r\n bytes[7] << 24,\r\n unsigned\r\n );\r\n};\r\n\r\n/**\r\n * Creates a Long from its big endian byte representation.\r\n * @param {!Array.<number>} bytes Big endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\r\n return new Long(\r\n bytes[4] << 24 |\r\n bytes[5] << 16 |\r\n bytes[6] << 8 |\r\n bytes[7],\r\n bytes[0] << 24 |\r\n bytes[1] << 16 |\r\n bytes[2] << 8 |\r\n bytes[3],\r\n unsigned\r\n );\r\n};\r\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.<string,*>}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor<Buffer>}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor<Uint8Array>}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor<Long>}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.<string,*>} dst Destination object\n * @param {Object.<string,*>} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.<string,*>} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor<Error>} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message<T>\n * @constructor\n * @param {string} message Error message\n * @param {Object.<string,*>} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message<T>}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise<Message<TRes>>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod<TReq,TRes>} method Reflected or static method\n * @param {Constructor<TReq>} requestCtor Request constructor\n * @param {Constructor<TRes>} responseCtor Response constructor\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod<Message<{}>,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.<string,Root>}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n",null,null,null,null,null,null,null,null,null,"// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n",null,null,null,null,null,null,null,"function r(r,e,n){var i,t,o;void 0===e&&(e=50),void 0===n&&(n={});var a=null!=(i=n.isImmediate)&&i,u=null!=(t=n.callback)&&t,c=n.maxWait,v=Date.now(),l=[];function f(){if(void 0!==c){var r=Date.now()-v;if(r+e>=c)return c-r}return e}var d=function(){var e=[].slice.call(arguments),n=this;return new Promise(function(i,t){var c=a&&void 0===o;if(void 0!==o&&clearTimeout(o),o=setTimeout(function(){if(o=void 0,v=Date.now(),!a){var i=r.apply(n,e);u&&u(i),l.forEach(function(r){return(0,r.resolve)(i)}),l=[]}},f()),c){var d=r.apply(n,e);return u&&u(d),i(d)}l.push({resolve:i,reject:t})})};return d.cancel=function(r){void 0!==o&&clearTimeout(o),l.forEach(function(e){return(0,e.reject)(r)}),l=[]},d}export{r as debounce};\n//# sourceMappingURL=index.esm.js.map\n",null,null,null,null,null,null,null,null,null,null,null,"/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\n\nlet logDisabled_ = true;\nlet deprecationWarnings_ = true;\n\n/**\n * Extract browser version out of the provided user agent string.\n *\n * @param {!string} uastring userAgent string.\n * @param {!string} expr Regular expression used as match criteria.\n * @param {!number} pos position in the version string to be returned.\n * @return {!number} browser version.\n */\nexport function extractVersion(uastring, expr, pos) {\n const match = uastring.match(expr);\n return match && match.length >= pos && parseInt(match[pos], 10);\n}\n\n// Wraps the peerconnection event eventNameToWrap in a function\n// which returns the modified event object (or false to prevent\n// the event).\nexport function wrapPeerConnectionEvent(window, eventNameToWrap, wrapper) {\n if (!window.RTCPeerConnection) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n const nativeAddEventListener = proto.addEventListener;\n proto.addEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap) {\n return nativeAddEventListener.apply(this, arguments);\n }\n const wrappedCallback = (e) => {\n const modifiedEvent = wrapper(e);\n if (modifiedEvent) {\n if (cb.handleEvent) {\n cb.handleEvent(modifiedEvent);\n } else {\n cb(modifiedEvent);\n }\n }\n };\n this._eventMap = this._eventMap || {};\n if (!this._eventMap[eventNameToWrap]) {\n this._eventMap[eventNameToWrap] = new Map();\n }\n this._eventMap[eventNameToWrap].set(cb, wrappedCallback);\n return nativeAddEventListener.apply(this, [nativeEventName,\n wrappedCallback]);\n };\n\n const nativeRemoveEventListener = proto.removeEventListener;\n proto.removeEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap || !this._eventMap\n || !this._eventMap[eventNameToWrap]) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (!this._eventMap[eventNameToWrap].has(cb)) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n const unwrappedCb = this._eventMap[eventNameToWrap].get(cb);\n this._eventMap[eventNameToWrap].delete(cb);\n if (this._eventMap[eventNameToWrap].size === 0) {\n delete this._eventMap[eventNameToWrap];\n }\n if (Object.keys(this._eventMap).length === 0) {\n delete this._eventMap;\n }\n return nativeRemoveEventListener.apply(this, [nativeEventName,\n unwrappedCb]);\n };\n\n Object.defineProperty(proto, 'on' + eventNameToWrap, {\n get() {\n return this['_on' + eventNameToWrap];\n },\n set(cb) {\n if (this['_on' + eventNameToWrap]) {\n this.removeEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap]);\n delete this['_on' + eventNameToWrap];\n }\n if (cb) {\n this.addEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap] = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n}\n\nexport function disableLog(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n logDisabled_ = bool;\n return (bool) ? 'adapter.js logging disabled' :\n 'adapter.js logging enabled';\n}\n\n/**\n * Disable or enable deprecation warnings\n * @param {!boolean} bool set to true to disable warnings.\n */\nexport function disableWarnings(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n deprecationWarnings_ = !bool;\n return 'adapter.js deprecation warnings ' + (bool ? 'disabled' : 'enabled');\n}\n\nexport function log() {\n if (typeof window === 'object') {\n if (logDisabled_) {\n return;\n }\n if (typeof console !== 'undefined' && typeof console.log === 'function') {\n console.log.apply(console, arguments);\n }\n }\n}\n\n/**\n * Shows a deprecation warning suggesting the modern and spec-compatible API.\n */\nexport function deprecated(oldMethod, newMethod) {\n if (!deprecationWarnings_) {\n return;\n }\n console.warn(oldMethod + ' is deprecated, please use ' + newMethod +\n ' instead.');\n}\n\n/**\n * Browser detector.\n *\n * @return {object} result containing browser and version\n * properties.\n */\nexport function detectBrowser(window) {\n // Returned result object.\n const result = {browser: null, version: null};\n\n // Fail early if it's not a browser\n if (typeof window === 'undefined' || !window.navigator) {\n result.browser = 'Not a browser.';\n return result;\n }\n\n const {navigator} = window;\n\n if (navigator.mozGetUserMedia) { // Firefox.\n result.browser = 'firefox';\n result.version = extractVersion(navigator.userAgent,\n /Firefox\\/(\\d+)\\./, 1);\n } else if (navigator.webkitGetUserMedia ||\n (window.isSecureContext === false && window.webkitRTCPeerConnection &&\n !window.RTCIceGatherer)) {\n // Chrome, Chromium, Webview, Opera.\n // Version matches Chrome/WebRTC version.\n // Chrome 74 removed webkitGetUserMedia on http as well so we need the\n // more complicated fallback to webkitRTCPeerConnection.\n result.browser = 'chrome';\n result.version = extractVersion(navigator.userAgent,\n /Chrom(e|ium)\\/(\\d+)\\./, 2);\n } else if (window.RTCPeerConnection &&\n navigator.userAgent.match(/AppleWebKit\\/(\\d+)\\./)) { // Safari.\n result.browser = 'safari';\n result.version = extractVersion(navigator.userAgent,\n /AppleWebKit\\/(\\d+)\\./, 1);\n result.supportsUnifiedPlan = window.RTCRtpTransceiver &&\n 'currentDirection' in window.RTCRtpTransceiver.prototype;\n } else { // Default fallthrough: not supported.\n result.browser = 'Not a supported browser.';\n return result;\n }\n\n return result;\n}\n\n/**\n * Checks if something is an object.\n *\n * @param {*} val The something you want to check.\n * @return true if val is an object, false otherwise.\n */\nfunction isObject(val) {\n return Object.prototype.toString.call(val) === '[object Object]';\n}\n\n/**\n * Remove all empty objects and undefined values\n * from a nested object -- an enhanced and vanilla version\n * of Lodash's `compact`.\n */\nexport function compactObject(data) {\n if (!isObject(data)) {\n return data;\n }\n\n return Object.keys(data).reduce(function(accumulator, key) {\n const isObj = isObject(data[key]);\n const value = isObj ? compactObject(data[key]) : data[key];\n const isEmptyObject = isObj && !Object.keys(value).length;\n if (value === undefined || isEmptyObject) {\n return accumulator;\n }\n return Object.assign(accumulator, {[key]: value});\n }, {});\n}\n\n/* iterates the stats graph recursively. */\nexport function walkStats(stats, base, resultSet) {\n if (!base || resultSet.has(base.id)) {\n return;\n }\n resultSet.set(base.id, base);\n Object.keys(base).forEach(name => {\n if (name.endsWith('Id')) {\n walkStats(stats, stats.get(base[name]), resultSet);\n } else if (name.endsWith('Ids')) {\n base[name].forEach(id => {\n walkStats(stats, stats.get(id), resultSet);\n });\n }\n });\n}\n\n/* filter getStats for a sender/receiver track. */\nexport function filterStats(result, track, outbound) {\n const streamStatsType = outbound ? 'outbound-rtp' : 'inbound-rtp';\n const filteredResult = new Map();\n if (track === null) {\n return filteredResult;\n }\n const trackStats = [];\n result.forEach(value => {\n if (value.type === 'track' &&\n value.trackIdentifier === track.id) {\n trackStats.push(value);\n }\n });\n trackStats.forEach(trackStat => {\n result.forEach(stats => {\n if (stats.type === streamStatsType && stats.trackId === trackStat.id) {\n walkStats(result, stats, filteredResult);\n }\n });\n });\n return filteredResult;\n}\n\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\nconst logging = utils.log;\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n\n if (!navigator.mediaDevices) {\n return;\n }\n\n const constraintsToChrome_ = function(c) {\n if (typeof c !== 'object' || c.mandatory || c.optional) {\n return c;\n }\n const cc = {};\n Object.keys(c).forEach(key => {\n if (key === 'require' || key === 'advanced' || key === 'mediaSource') {\n return;\n }\n const r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};\n if (r.exact !== undefined && typeof r.exact === 'number') {\n r.min = r.max = r.exact;\n }\n const oldname_ = function(prefix, name) {\n if (prefix) {\n return prefix + name.charAt(0).toUpperCase() + name.slice(1);\n }\n return (name === 'deviceId') ? 'sourceId' : name;\n };\n if (r.ideal !== undefined) {\n cc.optional = cc.optional || [];\n let oc = {};\n if (typeof r.ideal === 'number') {\n oc[oldname_('min', key)] = r.ideal;\n cc.optional.push(oc);\n oc = {};\n oc[oldname_('max', key)] = r.ideal;\n cc.optional.push(oc);\n } else {\n oc[oldname_('', key)] = r.ideal;\n cc.optional.push(oc);\n }\n }\n if (r.exact !== undefined && typeof r.exact !== 'number') {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_('', key)] = r.exact;\n } else {\n ['min', 'max'].forEach(mix => {\n if (r[mix] !== undefined) {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_(mix, key)] = r[mix];\n }\n });\n }\n });\n if (c.advanced) {\n cc.optional = (cc.optional || []).concat(c.advanced);\n }\n return cc;\n };\n\n const shimConstraints_ = function(constraints, func) {\n if (browserDetails.version >= 61) {\n return func(constraints);\n }\n constraints = JSON.parse(JSON.stringify(constraints));\n if (constraints && typeof constraints.audio === 'object') {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n constraints = JSON.parse(JSON.stringify(constraints));\n remap(constraints.audio, 'autoGainControl', 'googAutoGainControl');\n remap(constraints.audio, 'noiseSuppression', 'googNoiseSuppression');\n constraints.audio = constraintsToChrome_(constraints.audio);\n }\n if (constraints && typeof constraints.video === 'object') {\n // Shim facingMode for mobile & surface pro.\n let face = constraints.video.facingMode;\n face = face && ((typeof face === 'object') ? face : {ideal: face});\n const getSupportedFacingModeLies = browserDetails.version < 66;\n\n if ((face && (face.exact === 'user' || face.exact === 'environment' ||\n face.ideal === 'user' || face.ideal === 'environment')) &&\n !(navigator.mediaDevices.getSupportedConstraints &&\n navigator.mediaDevices.getSupportedConstraints().facingMode &&\n !getSupportedFacingModeLies)) {\n delete constraints.video.facingMode;\n let matches;\n if (face.exact === 'environment' || face.ideal === 'environment') {\n matches = ['back', 'rear'];\n } else if (face.exact === 'user' || face.ideal === 'user') {\n matches = ['front'];\n }\n if (matches) {\n // Look for matches in label, or use last cam for back (typical).\n return navigator.mediaDevices.enumerateDevices()\n .then(devices => {\n devices = devices.filter(d => d.kind === 'videoinput');\n let dev = devices.find(d => matches.some(match =>\n d.label.toLowerCase().includes(match)));\n if (!dev && devices.length && matches.includes('back')) {\n dev = devices[devices.length - 1]; // more likely the back cam\n }\n if (dev) {\n constraints.video.deviceId = face.exact ? {exact: dev.deviceId} :\n {ideal: dev.deviceId};\n }\n constraints.video = constraintsToChrome_(constraints.video);\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n });\n }\n }\n constraints.video = constraintsToChrome_(constraints.video);\n }\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n };\n\n const shimError_ = function(e) {\n if (browserDetails.version >= 64) {\n return e;\n }\n return {\n name: {\n PermissionDeniedError: 'NotAllowedError',\n PermissionDismissedError: 'NotAllowedError',\n InvalidStateError: 'NotAllowedError',\n DevicesNotFoundError: 'NotFoundError',\n ConstraintNotSatisfiedError: 'OverconstrainedError',\n TrackStartError: 'NotReadableError',\n MediaDeviceFailedDueToShutdown: 'NotAllowedError',\n MediaDeviceKillSwitchOn: 'NotAllowedError',\n TabCaptureError: 'AbortError',\n ScreenCaptureError: 'AbortError',\n DeviceCaptureError: 'AbortError'\n }[e.name] || e.name,\n message: e.message,\n constraint: e.constraint || e.constraintName,\n toString() {\n return this.name + (this.message && ': ') + this.message;\n }\n };\n };\n\n const getUserMedia_ = function(constraints, onSuccess, onError) {\n shimConstraints_(constraints, c => {\n navigator.webkitGetUserMedia(c, onSuccess, e => {\n if (onError) {\n onError(shimError_(e));\n }\n });\n });\n };\n navigator.getUserMedia = getUserMedia_.bind(navigator);\n\n // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia\n // function which returns a Promise, it does not accept spec-style\n // constraints.\n if (navigator.mediaDevices.getUserMedia) {\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(cs) {\n return shimConstraints_(cs, c => origGetUserMedia(c).then(stream => {\n if (c.audio && !stream.getAudioTracks().length ||\n c.video && !stream.getVideoTracks().length) {\n stream.getTracks().forEach(track => {\n track.stop();\n });\n throw new DOMException('', 'NotFoundError');\n }\n return stream;\n }, e => Promise.reject(shimError_(e))));\n };\n }\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nexport function shimGetDisplayMedia(window, getSourceId) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n // getSourceId is a function that returns a promise resolving with\n // the sourceId of the screen/window/tab to be shared.\n if (typeof getSourceId !== 'function') {\n console.error('shimGetDisplayMedia: getSourceId argument is not ' +\n 'a function');\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n return getSourceId(constraints)\n .then(sourceId => {\n const widthSpecified = constraints.video && constraints.video.width;\n const heightSpecified = constraints.video &&\n constraints.video.height;\n const frameRateSpecified = constraints.video &&\n constraints.video.frameRate;\n constraints.video = {\n mandatory: {\n chromeMediaSource: 'desktop',\n chromeMediaSourceId: sourceId,\n maxFrameRate: frameRateSpecified || 3\n }\n };\n if (widthSpecified) {\n constraints.video.mandatory.maxWidth = widthSpecified;\n }\n if (heightSpecified) {\n constraints.video.mandatory.maxHeight = heightSpecified;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n });\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\n\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimMediaStream(window) {\n window.MediaStream = window.MediaStream || window.webkitMediaStream;\n}\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in\n window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {\n get() {\n return this._ontrack;\n },\n set(f) {\n if (this._ontrack) {\n this.removeEventListener('track', this._ontrack);\n }\n this.addEventListener('track', this._ontrack = f);\n },\n enumerable: true,\n configurable: true\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n if (!this._ontrackpoly) {\n this._ontrackpoly = (e) => {\n // onaddstream does not fire when a track is added to an existing\n // stream. But stream.onaddtrack is implemented so we use that.\n e.stream.addEventListener('addtrack', te => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === te.track.id);\n } else {\n receiver = {track: te.track};\n }\n\n const event = new Event('track');\n event.track = te.track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n e.stream.getTracks().forEach(track => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === track.id);\n } else {\n receiver = {track};\n }\n const event = new Event('track');\n event.track = track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n };\n this.addEventListener('addstream', this._ontrackpoly);\n }\n return origSetRemoteDescription.apply(this, arguments);\n };\n } else {\n // even if RTCRtpTransceiver is in window, it is only used and\n // emitted in unified-plan. Unfortunately this means we need\n // to unconditionally wrap the event.\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n if (!e.transceiver) {\n Object.defineProperty(e, 'transceiver',\n {value: {receiver: e.receiver}});\n }\n return e;\n });\n }\n}\n\nexport function shimGetSendersWithDtmf(window) {\n // Overrides addTrack/removeTrack, depends on shimAddTrackRemoveTrack.\n if (typeof window === 'object' && window.RTCPeerConnection &&\n !('getSenders' in window.RTCPeerConnection.prototype) &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype) {\n const shimSenderWithDtmf = function(pc, track) {\n return {\n track,\n get dtmf() {\n if (this._dtmf === undefined) {\n if (track.kind === 'audio') {\n this._dtmf = pc.createDTMFSender(track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n _pc: pc\n };\n };\n\n // augment addTrack when getSenders is not available.\n if (!window.RTCPeerConnection.prototype.getSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n this._senders = this._senders || [];\n return this._senders.slice(); // return a copy of the internal state.\n };\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n let sender = origAddTrack.apply(this, arguments);\n if (!sender) {\n sender = shimSenderWithDtmf(this, track);\n this._senders.push(sender);\n }\n return sender;\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n origRemoveTrack.apply(this, arguments);\n const idx = this._senders.indexOf(sender);\n if (idx !== -1) {\n this._senders.splice(idx, 1);\n }\n };\n }\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._senders = this._senders || [];\n origAddStream.apply(this, [stream]);\n stream.getTracks().forEach(track => {\n this._senders.push(shimSenderWithDtmf(this, track));\n });\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._senders = this._senders || [];\n origRemoveStream.apply(this, [stream]);\n\n stream.getTracks().forEach(track => {\n const sender = this._senders.find(s => s.track === track);\n if (sender) { // remove sender\n this._senders.splice(this._senders.indexOf(sender), 1);\n }\n });\n };\n } else if (typeof window === 'object' && window.RTCPeerConnection &&\n 'getSenders' in window.RTCPeerConnection.prototype &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype &&\n window.RTCRtpSender &&\n !('dtmf' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n\n Object.defineProperty(window.RTCRtpSender.prototype, 'dtmf', {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === 'audio') {\n this._dtmf = this._pc.createDTMFSender(this.track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n }\n });\n }\n}\n\nexport function shimGetStats(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n\n // If selector is a function then we are in the old style stats so just\n // pass back the original getStats format to avoid breaking old users.\n if (arguments.length > 0 && typeof selector === 'function') {\n return origGetStats.apply(this, arguments);\n }\n\n // When spec-style getStats is supported, return those when called with\n // either no arguments or the selector argument is null.\n if (origGetStats.length === 0 && (arguments.length === 0 ||\n typeof selector !== 'function')) {\n return origGetStats.apply(this, []);\n }\n\n const fixChromeStats_ = function(response) {\n const standardReport = {};\n const reports = response.result();\n reports.forEach(report => {\n const standardStats = {\n id: report.id,\n timestamp: report.timestamp,\n type: {\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n }[report.type] || report.type\n };\n report.names().forEach(name => {\n standardStats[name] = report.stat(name);\n });\n standardReport[standardStats.id] = standardStats;\n });\n\n return standardReport;\n };\n\n // shim getStats with maplike support\n const makeMapStats = function(stats) {\n return new Map(Object.keys(stats).map(key => [key, stats[key]]));\n };\n\n if (arguments.length >= 2) {\n const successCallbackWrapper_ = function(response) {\n onSucc(makeMapStats(fixChromeStats_(response)));\n };\n\n return origGetStats.apply(this, [successCallbackWrapper_,\n selector]);\n }\n\n // promise-support\n return new Promise((resolve, reject) => {\n origGetStats.apply(this, [\n function(response) {\n resolve(makeMapStats(fixChromeStats_(response)));\n }, reject]);\n }).then(onSucc, onErr);\n };\n}\n\nexport function shimSenderReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender && window.RTCRtpReceiver)) {\n return;\n }\n\n // shim sender stats.\n if (!('getStats' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n const sender = this;\n return this._pc.getStats().then(result =>\n /* Note: this will include stats of all senders that\n * send a track with the same id as sender.track as\n * it is not possible to identify the RTCRtpSender.\n */\n utils.filterStats(result, sender.track, true));\n };\n }\n\n // shim receiver stats.\n if (!('getStats' in window.RTCRtpReceiver.prototype)) {\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers =\n function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n const receiver = this;\n return this._pc.getStats().then(result =>\n utils.filterStats(result, receiver.track, false));\n };\n }\n\n if (!('getStats' in window.RTCRtpSender.prototype &&\n 'getStats' in window.RTCRtpReceiver.prototype)) {\n return;\n }\n\n // shim RTCPeerConnection.getStats(track).\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n if (arguments.length > 0 &&\n arguments[0] instanceof window.MediaStreamTrack) {\n const track = arguments[0];\n let sender;\n let receiver;\n let err;\n this.getSenders().forEach(s => {\n if (s.track === track) {\n if (sender) {\n err = true;\n } else {\n sender = s;\n }\n }\n });\n this.getReceivers().forEach(r => {\n if (r.track === track) {\n if (receiver) {\n err = true;\n } else {\n receiver = r;\n }\n }\n return r.track === track;\n });\n if (err || (sender && receiver)) {\n return Promise.reject(new DOMException(\n 'There are more than one sender or receiver for the track.',\n 'InvalidAccessError'));\n } else if (sender) {\n return sender.getStats();\n } else if (receiver) {\n return receiver.getStats();\n }\n return Promise.reject(new DOMException(\n 'There is no sender or receiver for the track.',\n 'InvalidAccessError'));\n }\n return origGetStats.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrackWithNative(window) {\n // shim addTrack/removeTrack with native variants in order to make\n // the interactions with legacy getLocalStreams behave as in other browsers.\n // Keeps a mapping stream.id => [stream, rtpsenders...]\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n return Object.keys(this._shimmedLocalStreams)\n .map(streamId => this._shimmedLocalStreams[streamId][0]);\n };\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (!stream) {\n return origAddTrack.apply(this, arguments);\n }\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n const sender = origAddTrack.apply(this, arguments);\n if (!this._shimmedLocalStreams[stream.id]) {\n this._shimmedLocalStreams[stream.id] = [stream, sender];\n } else if (this._shimmedLocalStreams[stream.id].indexOf(sender) === -1) {\n this._shimmedLocalStreams[stream.id].push(sender);\n }\n return sender;\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n const existingSenders = this.getSenders();\n origAddStream.apply(this, arguments);\n const newSenders = this.getSenders()\n .filter(newSender => existingSenders.indexOf(newSender) === -1);\n this._shimmedLocalStreams[stream.id] = [stream].concat(newSenders);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n delete this._shimmedLocalStreams[stream.id];\n return origRemoveStream.apply(this, arguments);\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n if (sender) {\n Object.keys(this._shimmedLocalStreams).forEach(streamId => {\n const idx = this._shimmedLocalStreams[streamId].indexOf(sender);\n if (idx !== -1) {\n this._shimmedLocalStreams[streamId].splice(idx, 1);\n }\n if (this._shimmedLocalStreams[streamId].length === 1) {\n delete this._shimmedLocalStreams[streamId];\n }\n });\n }\n return origRemoveTrack.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrack(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // shim addTrack and removeTrack.\n if (window.RTCPeerConnection.prototype.addTrack &&\n browserDetails.version >= 65) {\n return shimAddTrackRemoveTrackWithNative(window);\n }\n\n // also shim pc.getLocalStreams when addTrack is shimmed\n // to return the original streams.\n const origGetLocalStreams = window.RTCPeerConnection.prototype\n .getLocalStreams;\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n const nativeStreams = origGetLocalStreams.apply(this);\n this._reverseStreams = this._reverseStreams || {};\n return nativeStreams.map(stream => this._reverseStreams[stream.id]);\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n // Add identity mapping for consistency with addTrack.\n // Unless this is being used with a stream from addTrack.\n if (!this._reverseStreams[stream.id]) {\n const newStream = new window.MediaStream(stream.getTracks());\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n stream = newStream;\n }\n origAddStream.apply(this, [stream]);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n origRemoveStream.apply(this, [(this._streams[stream.id] || stream)]);\n delete this._reverseStreams[(this._streams[stream.id] ?\n this._streams[stream.id].id : stream.id)];\n delete this._streams[stream.id];\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n const streams = [].slice.call(arguments, 1);\n if (streams.length !== 1 ||\n !streams[0].getTracks().find(t => t === track)) {\n // this is not fully correct but all we can manage without\n // [[associated MediaStreams]] internal slot.\n throw new DOMException(\n 'The adapter.js addTrack polyfill only supports a single ' +\n ' stream which is associated with the specified track.',\n 'NotSupportedError');\n }\n\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n const oldStream = this._streams[stream.id];\n if (oldStream) {\n // this is using odd Chrome behaviour, use with caution:\n // https://bugs.chromium.org/p/webrtc/issues/detail?id=7815\n // Note: we rely on the high-level addTrack/dtmf shim to\n // create the sender with a dtmf sender.\n oldStream.addTrack(track);\n\n // Trigger ONN async.\n Promise.resolve().then(() => {\n this.dispatchEvent(new Event('negotiationneeded'));\n });\n } else {\n const newStream = new window.MediaStream([track]);\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n this.addStream(newStream);\n }\n return this.getSenders().find(s => s.track === track);\n };\n\n // replace the internal stream id with the external one and\n // vice versa.\n function replaceInternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(internalStream.id, 'g'),\n externalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n function replaceExternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(externalStream.id, 'g'),\n internalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n ['createOffer', 'createAnswer'].forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n const args = arguments;\n const isLegacyCall = arguments.length &&\n typeof arguments[0] === 'function';\n if (isLegacyCall) {\n return nativeMethod.apply(this, [\n (description) => {\n const desc = replaceInternalStreamId(this, description);\n args[0].apply(null, [desc]);\n },\n (err) => {\n if (args[1]) {\n args[1].apply(null, err);\n }\n }, arguments[2]\n ]);\n }\n return nativeMethod.apply(this, arguments)\n .then(description => replaceInternalStreamId(this, description));\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n\n const origSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n if (!arguments.length || !arguments[0].type) {\n return origSetLocalDescription.apply(this, arguments);\n }\n arguments[0] = replaceExternalStreamId(this, arguments[0]);\n return origSetLocalDescription.apply(this, arguments);\n };\n\n // TODO: mangle getStats: https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamstats-streamidentifier\n\n const origLocalDescription = Object.getOwnPropertyDescriptor(\n window.RTCPeerConnection.prototype, 'localDescription');\n Object.defineProperty(window.RTCPeerConnection.prototype,\n 'localDescription', {\n get() {\n const description = origLocalDescription.get.apply(this);\n if (description.type === '') {\n return description;\n }\n return replaceInternalStreamId(this, description);\n }\n });\n\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n // We can not yet check for sender instanceof RTCRtpSender\n // since we shim RTPSender. So we check if sender._pc is set.\n if (!sender._pc) {\n throw new DOMException('Argument 1 of RTCPeerConnection.removeTrack ' +\n 'does not implement interface RTCRtpSender.', 'TypeError');\n }\n const isLocal = sender._pc === this;\n if (!isLocal) {\n throw new DOMException('Sender was not created by this connection.',\n 'InvalidAccessError');\n }\n\n // Search for the native stream the senders track belongs to.\n this._streams = this._streams || {};\n let stream;\n Object.keys(this._streams).forEach(streamid => {\n const hasTrack = this._streams[streamid].getTracks()\n .find(track => sender.track === track);\n if (hasTrack) {\n stream = this._streams[streamid];\n }\n });\n\n if (stream) {\n if (stream.getTracks().length === 1) {\n // if this is the last track of the stream, remove the stream. This\n // takes care of any shimmed _senders.\n this.removeStream(this._reverseStreams[stream.id]);\n } else {\n // relying on the same odd chrome behaviour as above.\n stream.removeTrack(sender.track);\n }\n this.dispatchEvent(new Event('negotiationneeded'));\n }\n };\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (!window.RTCPeerConnection && window.webkitRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.webkitRTCPeerConnection;\n }\n if (!window.RTCPeerConnection) {\n return;\n }\n\n // shim implicit creation of RTCSessionDescription/RTCIceCandidate\n if (browserDetails.version < 53) {\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n}\n\n// Attempt to fix ONN in plan-b mode.\nexport function fixNegotiationNeeded(window, browserDetails) {\n utils.wrapPeerConnectionEvent(window, 'negotiationneeded', e => {\n const pc = e.target;\n if (browserDetails.version < 72 || (pc.getConfiguration &&\n pc.getConfiguration().sdpSemantics === 'plan-b')) {\n if (pc.signalingState !== 'stable') {\n return;\n }\n }\n return e;\n });\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n const MediaStreamTrack = window && window.MediaStreamTrack;\n\n navigator.getUserMedia = function(constraints, onSuccess, onError) {\n // Replace Firefox 44+'s deprecation warning with unprefixed version.\n utils.deprecated('navigator.getUserMedia',\n 'navigator.mediaDevices.getUserMedia');\n navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);\n };\n\n if (!(browserDetails.version > 55 &&\n 'autoGainControl' in navigator.mediaDevices.getSupportedConstraints())) {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n\n const nativeGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(c) {\n if (typeof c === 'object' && typeof c.audio === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c.audio, 'autoGainControl', 'mozAutoGainControl');\n remap(c.audio, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeGetUserMedia(c);\n };\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.getSettings) {\n const nativeGetSettings = MediaStreamTrack.prototype.getSettings;\n MediaStreamTrack.prototype.getSettings = function() {\n const obj = nativeGetSettings.apply(this, arguments);\n remap(obj, 'mozAutoGainControl', 'autoGainControl');\n remap(obj, 'mozNoiseSuppression', 'noiseSuppression');\n return obj;\n };\n }\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.applyConstraints) {\n const nativeApplyConstraints =\n MediaStreamTrack.prototype.applyConstraints;\n MediaStreamTrack.prototype.applyConstraints = function(c) {\n if (this.kind === 'audio' && typeof c === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c, 'autoGainControl', 'mozAutoGainControl');\n remap(c, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeApplyConstraints.apply(this, [c]);\n };\n }\n }\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nexport function shimGetDisplayMedia(window, preferredMediaSource) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n if (!(constraints && constraints.video)) {\n const err = new DOMException('getDisplayMedia without video ' +\n 'constraints is undefined');\n err.name = 'NotFoundError';\n // from https://heycam.github.io/webidl/#idl-DOMException-error-names\n err.code = 8;\n return Promise.reject(err);\n }\n if (constraints.video === true) {\n constraints.video = {mediaSource: preferredMediaSource};\n } else {\n constraints.video.mediaSource = preferredMediaSource;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCTrackEvent &&\n ('receiver' in window.RTCTrackEvent.prototype) &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (typeof window !== 'object' ||\n !(window.RTCPeerConnection || window.mozRTCPeerConnection)) {\n return; // probably media.peerconnection.enabled=false in about:config\n }\n if (!window.RTCPeerConnection && window.mozRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.mozRTCPeerConnection;\n }\n\n if (browserDetails.version < 53) {\n // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n\n const modernStatsTypes = {\n inboundrtp: 'inbound-rtp',\n outboundrtp: 'outbound-rtp',\n candidatepair: 'candidate-pair',\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n };\n\n const nativeGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n return nativeGetStats.apply(this, [selector || null])\n .then(stats => {\n if (browserDetails.version < 53 && !onSucc) {\n // Shim only promise getStats with spec-hyphens in type names\n // Leave callback version alone; misc old uses of forEach before Map\n try {\n stats.forEach(stat => {\n stat.type = modernStatsTypes[stat.type] || stat.type;\n });\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n // Avoid TypeError: \"type\" is read-only, in old versions. 34-43ish\n stats.forEach((stat, i) => {\n stats.set(i, Object.assign({}, stat, {\n type: modernStatsTypes[stat.type] || stat.type\n }));\n });\n }\n }\n return stats;\n })\n .then(onSucc, onErr);\n };\n}\n\nexport function shimSenderGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpSender.prototype) {\n return;\n }\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n return this.track ? this._pc.getStats(this.track) :\n Promise.resolve(new Map());\n };\n}\n\nexport function shimReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpReceiver.prototype) {\n return;\n }\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers = function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n return this._pc.getStats(this.track);\n };\n}\n\nexport function shimRemoveStream(window) {\n if (!window.RTCPeerConnection ||\n 'removeStream' in window.RTCPeerConnection.prototype) {\n return;\n }\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n utils.deprecated('removeStream', 'removeTrack');\n this.getSenders().forEach(sender => {\n if (sender.track && stream.getTracks().includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n}\n\nexport function shimRTCDataChannel(window) {\n // rename DataChannel to RTCDataChannel (native fix in FF60):\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1173851\n if (window.DataChannel && !window.RTCDataChannel) {\n window.RTCDataChannel = window.DataChannel;\n }\n}\n\nexport function shimAddTransceiver(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origAddTransceiver = window.RTCPeerConnection.prototype.addTransceiver;\n if (origAddTransceiver) {\n window.RTCPeerConnection.prototype.addTransceiver =\n function addTransceiver() {\n this.setParametersPromises = [];\n const initParameters = arguments[1];\n const shouldPerformCheck = initParameters &&\n 'sendEncodings' in initParameters;\n if (shouldPerformCheck) {\n // If sendEncodings params are provided, validate grammar\n initParameters.sendEncodings.forEach((encodingParam) => {\n if ('rid' in encodingParam) {\n const ridRegex = /^[a-z0-9]{0,16}$/i;\n if (!ridRegex.test(encodingParam.rid)) {\n throw new TypeError('Invalid RID value provided.');\n }\n }\n if ('scaleResolutionDownBy' in encodingParam) {\n if (!(parseFloat(encodingParam.scaleResolutionDownBy) >= 1.0)) {\n throw new RangeError('scale_resolution_down_by must be >= 1.0');\n }\n }\n if ('maxFramerate' in encodingParam) {\n if (!(parseFloat(encodingParam.maxFramerate) >= 0)) {\n throw new RangeError('max_framerate must be >= 0.0');\n }\n }\n });\n }\n const transceiver = origAddTransceiver.apply(this, arguments);\n if (shouldPerformCheck) {\n // Check if the init options were applied. If not we do this in an\n // asynchronous way and save the promise reference in a global object.\n // This is an ugly hack, but at the same time is way more robust than\n // checking the sender parameters before and after the createOffer\n // Also note that after the createoffer we are not 100% sure that\n // the params were asynchronously applied so we might miss the\n // opportunity to recreate offer.\n const {sender} = transceiver;\n const params = sender.getParameters();\n if (!('encodings' in params) ||\n // Avoid being fooled by patched getParameters() below.\n (params.encodings.length === 1 &&\n Object.keys(params.encodings[0]).length === 0)) {\n params.encodings = initParameters.sendEncodings;\n sender.sendEncodings = initParameters.sendEncodings;\n this.setParametersPromises.push(sender.setParameters(params)\n .then(() => {\n delete sender.sendEncodings;\n }).catch(() => {\n delete sender.sendEncodings;\n })\n );\n }\n }\n return transceiver;\n };\n }\n}\n\nexport function shimGetParameters(window) {\n if (!(typeof window === 'object' && window.RTCRtpSender)) {\n return;\n }\n const origGetParameters = window.RTCRtpSender.prototype.getParameters;\n if (origGetParameters) {\n window.RTCRtpSender.prototype.getParameters =\n function getParameters() {\n const params = origGetParameters.apply(this, arguments);\n if (!('encodings' in params)) {\n params.encodings = [].concat(this.sendEncodings || [{}]);\n }\n return params;\n };\n }\n}\n\nexport function shimCreateOffer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer = function createOffer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateOffer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimCreateAnswer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateAnswer = window.RTCPeerConnection.prototype.createAnswer;\n window.RTCPeerConnection.prototype.createAnswer = function createAnswer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateAnswer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateAnswer.apply(this, arguments);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n'use strict';\nimport * as utils from '../utils';\n\nexport function shimLocalStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getLocalStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n return this._localStreams;\n };\n }\n if (!('addStream' in window.RTCPeerConnection.prototype)) {\n const _addTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n // Try to emulate Chrome's behaviour of adding in audio-video order.\n // Safari orders by track id.\n stream.getAudioTracks().forEach(track => _addTrack.call(this, track,\n stream));\n stream.getVideoTracks().forEach(track => _addTrack.call(this, track,\n stream));\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, ...streams) {\n if (streams) {\n streams.forEach((stream) => {\n if (!this._localStreams) {\n this._localStreams = [stream];\n } else if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n });\n }\n return _addTrack.apply(this, arguments);\n };\n }\n if (!('removeStream' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n const index = this._localStreams.indexOf(stream);\n if (index === -1) {\n return;\n }\n this._localStreams.splice(index, 1);\n const tracks = stream.getTracks();\n this.getSenders().forEach(sender => {\n if (tracks.includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n }\n}\n\nexport function shimRemoteStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getRemoteStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getRemoteStreams =\n function getRemoteStreams() {\n return this._remoteStreams ? this._remoteStreams : [];\n };\n }\n if (!('onaddstream' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'onaddstream', {\n get() {\n return this._onaddstream;\n },\n set(f) {\n if (this._onaddstream) {\n this.removeEventListener('addstream', this._onaddstream);\n this.removeEventListener('track', this._onaddstreampoly);\n }\n this.addEventListener('addstream', this._onaddstream = f);\n this.addEventListener('track', this._onaddstreampoly = (e) => {\n e.streams.forEach(stream => {\n if (!this._remoteStreams) {\n this._remoteStreams = [];\n }\n if (this._remoteStreams.includes(stream)) {\n return;\n }\n this._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n this.dispatchEvent(event);\n });\n });\n }\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n const pc = this;\n if (!this._onaddstreampoly) {\n this.addEventListener('track', this._onaddstreampoly = function(e) {\n e.streams.forEach(stream => {\n if (!pc._remoteStreams) {\n pc._remoteStreams = [];\n }\n if (pc._remoteStreams.indexOf(stream) >= 0) {\n return;\n }\n pc._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n pc.dispatchEvent(event);\n });\n });\n }\n return origSetRemoteDescription.apply(pc, arguments);\n };\n }\n}\n\nexport function shimCallbacksAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n const prototype = window.RTCPeerConnection.prototype;\n const origCreateOffer = prototype.createOffer;\n const origCreateAnswer = prototype.createAnswer;\n const setLocalDescription = prototype.setLocalDescription;\n const setRemoteDescription = prototype.setRemoteDescription;\n const addIceCandidate = prototype.addIceCandidate;\n\n prototype.createOffer =\n function createOffer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateOffer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n prototype.createAnswer =\n function createAnswer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateAnswer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n let withCallback = function(description, successCallback, failureCallback) {\n const promise = setLocalDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setLocalDescription = withCallback;\n\n withCallback = function(description, successCallback, failureCallback) {\n const promise = setRemoteDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setRemoteDescription = withCallback;\n\n withCallback = function(candidate, successCallback, failureCallback) {\n const promise = addIceCandidate.apply(this, [candidate]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.addIceCandidate = withCallback;\n}\n\nexport function shimGetUserMedia(window) {\n const navigator = window && window.navigator;\n\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n // shim not needed in Safari 12.1\n const mediaDevices = navigator.mediaDevices;\n const _getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);\n navigator.mediaDevices.getUserMedia = (constraints) => {\n return _getUserMedia(shimConstraints(constraints));\n };\n }\n\n if (!navigator.getUserMedia && navigator.mediaDevices &&\n navigator.mediaDevices.getUserMedia) {\n navigator.getUserMedia = function getUserMedia(constraints, cb, errcb) {\n navigator.mediaDevices.getUserMedia(constraints)\n .then(cb, errcb);\n }.bind(navigator);\n }\n}\n\nexport function shimConstraints(constraints) {\n if (constraints && constraints.video !== undefined) {\n return Object.assign({},\n constraints,\n {video: utils.compactObject(constraints.video)}\n );\n }\n\n return constraints;\n}\n\nexport function shimRTCIceServerUrls(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // migrate from non-spec RTCIceServer.url to RTCIceServer.urls\n const OrigPeerConnection = window.RTCPeerConnection;\n window.RTCPeerConnection =\n function RTCPeerConnection(pcConfig, pcConstraints) {\n if (pcConfig && pcConfig.iceServers) {\n const newIceServers = [];\n for (let i = 0; i < pcConfig.iceServers.length; i++) {\n let server = pcConfig.iceServers[i];\n if (!server.hasOwnProperty('urls') &&\n server.hasOwnProperty('url')) {\n utils.deprecated('RTCIceServer.url', 'RTCIceServer.urls');\n server = JSON.parse(JSON.stringify(server));\n server.urls = server.url;\n delete server.url;\n newIceServers.push(server);\n } else {\n newIceServers.push(pcConfig.iceServers[i]);\n }\n }\n pcConfig.iceServers = newIceServers;\n }\n return new OrigPeerConnection(pcConfig, pcConstraints);\n };\n window.RTCPeerConnection.prototype = OrigPeerConnection.prototype;\n // wrap static methods. Currently just generateCertificate.\n if ('generateCertificate' in OrigPeerConnection) {\n Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {\n get() {\n return OrigPeerConnection.generateCertificate;\n }\n });\n }\n}\n\nexport function shimTrackEventTransceiver(window) {\n // Add event.transceiver member over deprecated event.receiver\n if (typeof window === 'object' && window.RTCTrackEvent &&\n 'receiver' in window.RTCTrackEvent.prototype &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimCreateOfferLegacy(window) {\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer =\n function createOffer(offerOptions) {\n if (offerOptions) {\n if (typeof offerOptions.offerToReceiveAudio !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveAudio =\n !!offerOptions.offerToReceiveAudio;\n }\n const audioTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'audio');\n if (offerOptions.offerToReceiveAudio === false && audioTransceiver) {\n if (audioTransceiver.direction === 'sendrecv') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('sendonly');\n } else {\n audioTransceiver.direction = 'sendonly';\n }\n } else if (audioTransceiver.direction === 'recvonly') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('inactive');\n } else {\n audioTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveAudio === true &&\n !audioTransceiver) {\n this.addTransceiver('audio', {direction: 'recvonly'});\n }\n\n if (typeof offerOptions.offerToReceiveVideo !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveVideo =\n !!offerOptions.offerToReceiveVideo;\n }\n const videoTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'video');\n if (offerOptions.offerToReceiveVideo === false && videoTransceiver) {\n if (videoTransceiver.direction === 'sendrecv') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('sendonly');\n } else {\n videoTransceiver.direction = 'sendonly';\n }\n } else if (videoTransceiver.direction === 'recvonly') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('inactive');\n } else {\n videoTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveVideo === true &&\n !videoTransceiver) {\n this.addTransceiver('video', {direction: 'recvonly'});\n }\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimAudioContext(window) {\n if (typeof window !== 'object' || window.AudioContext) {\n return;\n }\n window.AudioContext = window.webkitAudioContext;\n}\n\n","/* eslint-env node */\n'use strict';\n\n// SDP helpers.\nconst SDPUtils = {};\n\n// Generate an alphanumeric identifier for cname or mids.\n// TODO: use UUIDs instead? https://gist.github.com/jed/982883\nSDPUtils.generateIdentifier = function() {\n return Math.random().toString(36).substr(2, 10);\n};\n\n// The RTCP CNAME used by all peerconnections from the same JS.\nSDPUtils.localCName = SDPUtils.generateIdentifier();\n\n// Splits SDP into lines, dealing with both CRLF and LF.\nSDPUtils.splitLines = function(blob) {\n return blob.trim().split('\\n').map(line => line.trim());\n};\n// Splits SDP into sessionpart and mediasections. Ensures CRLF.\nSDPUtils.splitSections = function(blob) {\n const parts = blob.split('\\nm=');\n return parts.map((part, index) => (index > 0 ?\n 'm=' + part : part).trim() + '\\r\\n');\n};\n\n// Returns the session description.\nSDPUtils.getDescription = function(blob) {\n const sections = SDPUtils.splitSections(blob);\n return sections && sections[0];\n};\n\n// Returns the individual media sections.\nSDPUtils.getMediaSections = function(blob) {\n const sections = SDPUtils.splitSections(blob);\n sections.shift();\n return sections;\n};\n\n// Returns lines that start with a certain prefix.\nSDPUtils.matchPrefix = function(blob, prefix) {\n return SDPUtils.splitLines(blob).filter(line => line.indexOf(prefix) === 0);\n};\n\n// Parses an ICE candidate line. Sample input:\n// candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8\n// rport 55996\"\n// Input can be prefixed with a=.\nSDPUtils.parseCandidate = function(line) {\n let parts;\n // Parse both variants.\n if (line.indexOf('a=candidate:') === 0) {\n parts = line.substring(12).split(' ');\n } else {\n parts = line.substring(10).split(' ');\n }\n\n const candidate = {\n foundation: parts[0],\n component: {1: 'rtp', 2: 'rtcp'}[parts[1]] || parts[1],\n protocol: parts[2].toLowerCase(),\n priority: parseInt(parts[3], 10),\n ip: parts[4],\n address: parts[4], // address is an alias for ip.\n port: parseInt(parts[5], 10),\n // skip parts[6] == 'typ'\n type: parts[7],\n };\n\n for (let i = 8; i < parts.length; i += 2) {\n switch (parts[i]) {\n case 'raddr':\n candidate.relatedAddress = parts[i + 1];\n break;\n case 'rport':\n candidate.relatedPort = parseInt(parts[i + 1], 10);\n break;\n case 'tcptype':\n candidate.tcpType = parts[i + 1];\n break;\n case 'ufrag':\n candidate.ufrag = parts[i + 1]; // for backward compatibility.\n candidate.usernameFragment = parts[i + 1];\n break;\n default: // extension handling, in particular ufrag. Don't overwrite.\n if (candidate[parts[i]] === undefined) {\n candidate[parts[i]] = parts[i + 1];\n }\n break;\n }\n }\n return candidate;\n};\n\n// Translates a candidate object into SDP candidate attribute.\n// This does not include the a= prefix!\nSDPUtils.writeCandidate = function(candidate) {\n const sdp = [];\n sdp.push(candidate.foundation);\n\n const component = candidate.component;\n if (component === 'rtp') {\n sdp.push(1);\n } else if (component === 'rtcp') {\n sdp.push(2);\n } else {\n sdp.push(component);\n }\n sdp.push(candidate.protocol.toUpperCase());\n sdp.push(candidate.priority);\n sdp.push(candidate.address || candidate.ip);\n sdp.push(candidate.port);\n\n const type = candidate.type;\n sdp.push('typ');\n sdp.push(type);\n if (type !== 'host' && candidate.relatedAddress &&\n candidate.relatedPort) {\n sdp.push('raddr');\n sdp.push(candidate.relatedAddress);\n sdp.push('rport');\n sdp.push(candidate.relatedPort);\n }\n if (candidate.tcpType && candidate.protocol.toLowerCase() === 'tcp') {\n sdp.push('tcptype');\n sdp.push(candidate.tcpType);\n }\n if (candidate.usernameFragment || candidate.ufrag) {\n sdp.push('ufrag');\n sdp.push(candidate.usernameFragment || candidate.ufrag);\n }\n return 'candidate:' + sdp.join(' ');\n};\n\n// Parses an ice-options line, returns an array of option tags.\n// Sample input:\n// a=ice-options:foo bar\nSDPUtils.parseIceOptions = function(line) {\n return line.substr(14).split(' ');\n};\n\n// Parses a rtpmap line, returns RTCRtpCoddecParameters. Sample input:\n// a=rtpmap:111 opus/48000/2\nSDPUtils.parseRtpMap = function(line) {\n let parts = line.substr(9).split(' ');\n const parsed = {\n payloadType: parseInt(parts.shift(), 10), // was: id\n };\n\n parts = parts[0].split('/');\n\n parsed.name = parts[0];\n parsed.clockRate = parseInt(parts[1], 10); // was: clockrate\n parsed.channels = parts.length === 3 ? parseInt(parts[2], 10) : 1;\n // legacy alias, got renamed back to channels in ORTC.\n parsed.numChannels = parsed.channels;\n return parsed;\n};\n\n// Generates a rtpmap line from RTCRtpCodecCapability or\n// RTCRtpCodecParameters.\nSDPUtils.writeRtpMap = function(codec) {\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n const channels = codec.channels || codec.numChannels || 1;\n return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate +\n (channels !== 1 ? '/' + channels : '') + '\\r\\n';\n};\n\n// Parses a extmap line (headerextension from RFC 5285). Sample input:\n// a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\n// a=extmap:2/sendonly urn:ietf:params:rtp-hdrext:toffset\nSDPUtils.parseExtmap = function(line) {\n const parts = line.substr(9).split(' ');\n return {\n id: parseInt(parts[0], 10),\n direction: parts[0].indexOf('/') > 0 ? parts[0].split('/')[1] : 'sendrecv',\n uri: parts[1],\n };\n};\n\n// Generates an extmap line from RTCRtpHeaderExtensionParameters or\n// RTCRtpHeaderExtension.\nSDPUtils.writeExtmap = function(headerExtension) {\n return 'a=extmap:' + (headerExtension.id || headerExtension.preferredId) +\n (headerExtension.direction && headerExtension.direction !== 'sendrecv'\n ? '/' + headerExtension.direction\n : '') +\n ' ' + headerExtension.uri + '\\r\\n';\n};\n\n// Parses a fmtp line, returns dictionary. Sample input:\n// a=fmtp:96 vbr=on;cng=on\n// Also deals with vbr=on; cng=on\nSDPUtils.parseFmtp = function(line) {\n const parsed = {};\n let kv;\n const parts = line.substr(line.indexOf(' ') + 1).split(';');\n for (let j = 0; j < parts.length; j++) {\n kv = parts[j].trim().split('=');\n parsed[kv[0].trim()] = kv[1];\n }\n return parsed;\n};\n\n// Generates a fmtp line from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeFmtp = function(codec) {\n let line = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.parameters && Object.keys(codec.parameters).length) {\n const params = [];\n Object.keys(codec.parameters).forEach(param => {\n if (codec.parameters[param] !== undefined) {\n params.push(param + '=' + codec.parameters[param]);\n } else {\n params.push(param);\n }\n });\n line += 'a=fmtp:' + pt + ' ' + params.join(';') + '\\r\\n';\n }\n return line;\n};\n\n// Parses a rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:\n// a=rtcp-fb:98 nack rpsi\nSDPUtils.parseRtcpFb = function(line) {\n const parts = line.substr(line.indexOf(' ') + 1).split(' ');\n return {\n type: parts.shift(),\n parameter: parts.join(' '),\n };\n};\n\n// Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeRtcpFb = function(codec) {\n let lines = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.rtcpFeedback && codec.rtcpFeedback.length) {\n // FIXME: special handling for trr-int?\n codec.rtcpFeedback.forEach(fb => {\n lines += 'a=rtcp-fb:' + pt + ' ' + fb.type +\n (fb.parameter && fb.parameter.length ? ' ' + fb.parameter : '') +\n '\\r\\n';\n });\n }\n return lines;\n};\n\n// Parses a RFC 5576 ssrc media attribute. Sample input:\n// a=ssrc:3735928559 cname:something\nSDPUtils.parseSsrcMedia = function(line) {\n const sp = line.indexOf(' ');\n const parts = {\n ssrc: parseInt(line.substr(7, sp - 7), 10),\n };\n const colon = line.indexOf(':', sp);\n if (colon > -1) {\n parts.attribute = line.substr(sp + 1, colon - sp - 1);\n parts.value = line.substr(colon + 1);\n } else {\n parts.attribute = line.substr(sp + 1);\n }\n return parts;\n};\n\n// Parse a ssrc-group line (see RFC 5576). Sample input:\n// a=ssrc-group:semantics 12 34\nSDPUtils.parseSsrcGroup = function(line) {\n const parts = line.substr(13).split(' ');\n return {\n semantics: parts.shift(),\n ssrcs: parts.map(ssrc => parseInt(ssrc, 10)),\n };\n};\n\n// Extracts the MID (RFC 5888) from a media section.\n// Returns the MID or undefined if no mid line was found.\nSDPUtils.getMid = function(mediaSection) {\n const mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:')[0];\n if (mid) {\n return mid.substr(6);\n }\n};\n\n// Parses a fingerprint line for DTLS-SRTP.\nSDPUtils.parseFingerprint = function(line) {\n const parts = line.substr(14).split(' ');\n return {\n algorithm: parts[0].toLowerCase(), // algorithm is case-sensitive in Edge.\n value: parts[1].toUpperCase(), // the definition is upper-case in RFC 4572.\n };\n};\n\n// Extracts DTLS parameters from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the fingerprint line as input. See also getIceParameters.\nSDPUtils.getDtlsParameters = function(mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=fingerprint:');\n // Note: a=setup line is ignored since we use the 'auto' role in Edge.\n return {\n role: 'auto',\n fingerprints: lines.map(SDPUtils.parseFingerprint),\n };\n};\n\n// Serializes DTLS parameters to SDP.\nSDPUtils.writeDtlsParameters = function(params, setupType) {\n let sdp = 'a=setup:' + setupType + '\\r\\n';\n params.fingerprints.forEach(fp => {\n sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\\r\\n';\n });\n return sdp;\n};\n\n// Parses a=crypto lines into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#dictionary-rtcsrtpsdesparameters-members\nSDPUtils.parseCryptoLine = function(line) {\n const parts = line.substr(9).split(' ');\n return {\n tag: parseInt(parts[0], 10),\n cryptoSuite: parts[1],\n keyParams: parts[2],\n sessionParams: parts.slice(3),\n };\n};\n\nSDPUtils.writeCryptoLine = function(parameters) {\n return 'a=crypto:' + parameters.tag + ' ' +\n parameters.cryptoSuite + ' ' +\n (typeof parameters.keyParams === 'object'\n ? SDPUtils.writeCryptoKeyParams(parameters.keyParams)\n : parameters.keyParams) +\n (parameters.sessionParams ? ' ' + parameters.sessionParams.join(' ') : '') +\n '\\r\\n';\n};\n\n// Parses the crypto key parameters into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#rtcsrtpkeyparam*\nSDPUtils.parseCryptoKeyParams = function(keyParams) {\n if (keyParams.indexOf('inline:') !== 0) {\n return null;\n }\n const parts = keyParams.substr(7).split('|');\n return {\n keyMethod: 'inline',\n keySalt: parts[0],\n lifeTime: parts[1],\n mkiValue: parts[2] ? parts[2].split(':')[0] : undefined,\n mkiLength: parts[2] ? parts[2].split(':')[1] : undefined,\n };\n};\n\nSDPUtils.writeCryptoKeyParams = function(keyParams) {\n return keyParams.keyMethod + ':'\n + keyParams.keySalt +\n (keyParams.lifeTime ? '|' + keyParams.lifeTime : '') +\n (keyParams.mkiValue && keyParams.mkiLength\n ? '|' + keyParams.mkiValue + ':' + keyParams.mkiLength\n : '');\n};\n\n// Extracts all SDES parameters.\nSDPUtils.getCryptoParameters = function(mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=crypto:');\n return lines.map(SDPUtils.parseCryptoLine);\n};\n\n// Parses ICE information from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the ice-ufrag and ice-pwd lines as input.\nSDPUtils.getIceParameters = function(mediaSection, sessionpart) {\n const ufrag = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-ufrag:')[0];\n const pwd = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-pwd:')[0];\n if (!(ufrag && pwd)) {\n return null;\n }\n return {\n usernameFragment: ufrag.substr(12),\n password: pwd.substr(10),\n };\n};\n\n// Serializes ICE parameters to SDP.\nSDPUtils.writeIceParameters = function(params) {\n let sdp = 'a=ice-ufrag:' + params.usernameFragment + '\\r\\n' +\n 'a=ice-pwd:' + params.password + '\\r\\n';\n if (params.iceLite) {\n sdp += 'a=ice-lite\\r\\n';\n }\n return sdp;\n};\n\n// Parses the SDP media section and returns RTCRtpParameters.\nSDPUtils.parseRtpParameters = function(mediaSection) {\n const description = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: [],\n rtcp: [],\n };\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n for (let i = 3; i < mline.length; i++) { // find all codecs from mline[3..]\n const pt = mline[i];\n const rtpmapline = SDPUtils.matchPrefix(\n mediaSection, 'a=rtpmap:' + pt + ' ')[0];\n if (rtpmapline) {\n const codec = SDPUtils.parseRtpMap(rtpmapline);\n const fmtps = SDPUtils.matchPrefix(\n mediaSection, 'a=fmtp:' + pt + ' ');\n // Only the first a=fmtp:<pt> is considered.\n codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};\n codec.rtcpFeedback = SDPUtils.matchPrefix(\n mediaSection, 'a=rtcp-fb:' + pt + ' ')\n .map(SDPUtils.parseRtcpFb);\n description.codecs.push(codec);\n // parse FEC mechanisms from rtpmap lines.\n switch (codec.name.toUpperCase()) {\n case 'RED':\n case 'ULPFEC':\n description.fecMechanisms.push(codec.name.toUpperCase());\n break;\n default: // only RED and ULPFEC are recognized as FEC mechanisms.\n break;\n }\n }\n }\n SDPUtils.matchPrefix(mediaSection, 'a=extmap:').forEach(line => {\n description.headerExtensions.push(SDPUtils.parseExtmap(line));\n });\n // FIXME: parse rtcp.\n return description;\n};\n\n// Generates parts of the SDP media section describing the capabilities /\n// parameters.\nSDPUtils.writeRtpDescription = function(kind, caps) {\n let sdp = '';\n\n // Build the mline.\n sdp += 'm=' + kind + ' ';\n sdp += caps.codecs.length > 0 ? '9' : '0'; // reject if no codecs.\n sdp += ' UDP/TLS/RTP/SAVPF ';\n sdp += caps.codecs.map(codec => {\n if (codec.preferredPayloadType !== undefined) {\n return codec.preferredPayloadType;\n }\n return codec.payloadType;\n }).join(' ') + '\\r\\n';\n\n sdp += 'c=IN IP4 0.0.0.0\\r\\n';\n sdp += 'a=rtcp:9 IN IP4 0.0.0.0\\r\\n';\n\n // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.\n caps.codecs.forEach(codec => {\n sdp += SDPUtils.writeRtpMap(codec);\n sdp += SDPUtils.writeFmtp(codec);\n sdp += SDPUtils.writeRtcpFb(codec);\n });\n let maxptime = 0;\n caps.codecs.forEach(codec => {\n if (codec.maxptime > maxptime) {\n maxptime = codec.maxptime;\n }\n });\n if (maxptime > 0) {\n sdp += 'a=maxptime:' + maxptime + '\\r\\n';\n }\n\n if (caps.headerExtensions) {\n caps.headerExtensions.forEach(extension => {\n sdp += SDPUtils.writeExtmap(extension);\n });\n }\n // FIXME: write fecMechanisms.\n return sdp;\n};\n\n// Parses the SDP media section and returns an array of\n// RTCRtpEncodingParameters.\nSDPUtils.parseRtpEncodingParameters = function(mediaSection) {\n const encodingParameters = [];\n const description = SDPUtils.parseRtpParameters(mediaSection);\n const hasRed = description.fecMechanisms.indexOf('RED') !== -1;\n const hasUlpfec = description.fecMechanisms.indexOf('ULPFEC') !== -1;\n\n // filter a=ssrc:... cname:, ignore PlanB-msid\n const ssrcs = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(parts => parts.attribute === 'cname');\n const primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;\n let secondarySsrc;\n\n const flows = SDPUtils.matchPrefix(mediaSection, 'a=ssrc-group:FID')\n .map(line => {\n const parts = line.substr(17).split(' ');\n return parts.map(part => parseInt(part, 10));\n });\n if (flows.length > 0 && flows[0].length > 1 && flows[0][0] === primarySsrc) {\n secondarySsrc = flows[0][1];\n }\n\n description.codecs.forEach(codec => {\n if (codec.name.toUpperCase() === 'RTX' && codec.parameters.apt) {\n let encParam = {\n ssrc: primarySsrc,\n codecPayloadType: parseInt(codec.parameters.apt, 10),\n };\n if (primarySsrc && secondarySsrc) {\n encParam.rtx = {ssrc: secondarySsrc};\n }\n encodingParameters.push(encParam);\n if (hasRed) {\n encParam = JSON.parse(JSON.stringify(encParam));\n encParam.fec = {\n ssrc: primarySsrc,\n mechanism: hasUlpfec ? 'red+ulpfec' : 'red',\n };\n encodingParameters.push(encParam);\n }\n }\n });\n if (encodingParameters.length === 0 && primarySsrc) {\n encodingParameters.push({\n ssrc: primarySsrc,\n });\n }\n\n // we support both b=AS and b=TIAS but interpret AS as TIAS.\n let bandwidth = SDPUtils.matchPrefix(mediaSection, 'b=');\n if (bandwidth.length) {\n if (bandwidth[0].indexOf('b=TIAS:') === 0) {\n bandwidth = parseInt(bandwidth[0].substr(7), 10);\n } else if (bandwidth[0].indexOf('b=AS:') === 0) {\n // use formula from JSEP to convert b=AS to TIAS value.\n bandwidth = parseInt(bandwidth[0].substr(5), 10) * 1000 * 0.95\n - (50 * 40 * 8);\n } else {\n bandwidth = undefined;\n }\n encodingParameters.forEach(params => {\n params.maxBitrate = bandwidth;\n });\n }\n return encodingParameters;\n};\n\n// parses http://draft.ortc.org/#rtcrtcpparameters*\nSDPUtils.parseRtcpParameters = function(mediaSection) {\n const rtcpParameters = {};\n\n // Gets the first SSRC. Note that with RTX there might be multiple\n // SSRCs.\n const remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(obj => obj.attribute === 'cname')[0];\n if (remoteSsrc) {\n rtcpParameters.cname = remoteSsrc.value;\n rtcpParameters.ssrc = remoteSsrc.ssrc;\n }\n\n // Edge uses the compound attribute instead of reducedSize\n // compound is !reducedSize\n const rsize = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-rsize');\n rtcpParameters.reducedSize = rsize.length > 0;\n rtcpParameters.compound = rsize.length === 0;\n\n // parses the rtcp-mux attrіbute.\n // Note that Edge does not support unmuxed RTCP.\n const mux = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-mux');\n rtcpParameters.mux = mux.length > 0;\n\n return rtcpParameters;\n};\n\nSDPUtils.writeRtcpParameters = function(rtcpParameters) {\n let sdp = '';\n if (rtcpParameters.reducedSize) {\n sdp += 'a=rtcp-rsize\\r\\n';\n }\n if (rtcpParameters.mux) {\n sdp += 'a=rtcp-mux\\r\\n';\n }\n if (rtcpParameters.ssrc !== undefined && rtcpParameters.cname) {\n sdp += 'a=ssrc:' + rtcpParameters.ssrc +\n ' cname:' + rtcpParameters.cname + '\\r\\n';\n }\n return sdp;\n};\n\n\n// parses either a=msid: or a=ssrc:... msid lines and returns\n// the id of the MediaStream and MediaStreamTrack.\nSDPUtils.parseMsid = function(mediaSection) {\n let parts;\n const spec = SDPUtils.matchPrefix(mediaSection, 'a=msid:');\n if (spec.length === 1) {\n parts = spec[0].substr(7).split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n const planB = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(msidParts => msidParts.attribute === 'msid');\n if (planB.length > 0) {\n parts = planB[0].value.split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n};\n\n// SCTP\n// parses draft-ietf-mmusic-sctp-sdp-26 first and falls back\n// to draft-ietf-mmusic-sctp-sdp-05\nSDPUtils.parseSctpDescription = function(mediaSection) {\n const mline = SDPUtils.parseMLine(mediaSection);\n const maxSizeLine = SDPUtils.matchPrefix(mediaSection, 'a=max-message-size:');\n let maxMessageSize;\n if (maxSizeLine.length > 0) {\n maxMessageSize = parseInt(maxSizeLine[0].substr(19), 10);\n }\n if (isNaN(maxMessageSize)) {\n maxMessageSize = 65536;\n }\n const sctpPort = SDPUtils.matchPrefix(mediaSection, 'a=sctp-port:');\n if (sctpPort.length > 0) {\n return {\n port: parseInt(sctpPort[0].substr(12), 10),\n protocol: mline.fmt,\n maxMessageSize,\n };\n }\n const sctpMapLines = SDPUtils.matchPrefix(mediaSection, 'a=sctpmap:');\n if (sctpMapLines.length > 0) {\n const parts = sctpMapLines[0]\n .substr(10)\n .split(' ');\n return {\n port: parseInt(parts[0], 10),\n protocol: parts[1],\n maxMessageSize,\n };\n }\n};\n\n// SCTP\n// outputs the draft-ietf-mmusic-sctp-sdp-26 version that all browsers\n// support by now receiving in this format, unless we originally parsed\n// as the draft-ietf-mmusic-sctp-sdp-05 format (indicated by the m-line\n// protocol of DTLS/SCTP -- without UDP/ or TCP/)\nSDPUtils.writeSctpDescription = function(media, sctp) {\n let output = [];\n if (media.protocol !== 'DTLS/SCTP') {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.protocol + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctp-port:' + sctp.port + '\\r\\n',\n ];\n } else {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.port + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctpmap:' + sctp.port + ' ' + sctp.protocol + ' 65535\\r\\n',\n ];\n }\n if (sctp.maxMessageSize !== undefined) {\n output.push('a=max-message-size:' + sctp.maxMessageSize + '\\r\\n');\n }\n return output.join('');\n};\n\n// Generate a session ID for SDP.\n// https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-20#section-5.2.1\n// recommends using a cryptographically random +ve 64-bit value\n// but right now this should be acceptable and within the right range\nSDPUtils.generateSessionId = function() {\n return Math.random().toString().substr(2, 21);\n};\n\n// Write boiler plate for start of SDP\n// sessId argument is optional - if not supplied it will\n// be generated randomly\n// sessVersion is optional and defaults to 2\n// sessUser is optional and defaults to 'thisisadapterortc'\nSDPUtils.writeSessionBoilerplate = function(sessId, sessVer, sessUser) {\n let sessionId;\n const version = sessVer !== undefined ? sessVer : 2;\n if (sessId) {\n sessionId = sessId;\n } else {\n sessionId = SDPUtils.generateSessionId();\n }\n const user = sessUser || 'thisisadapterortc';\n // FIXME: sess-id should be an NTP timestamp.\n return 'v=0\\r\\n' +\n 'o=' + user + ' ' + sessionId + ' ' + version +\n ' IN IP4 127.0.0.1\\r\\n' +\n 's=-\\r\\n' +\n 't=0 0\\r\\n';\n};\n\n// Gets the direction from the mediaSection or the sessionpart.\nSDPUtils.getDirection = function(mediaSection, sessionpart) {\n // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.\n const lines = SDPUtils.splitLines(mediaSection);\n for (let i = 0; i < lines.length; i++) {\n switch (lines[i]) {\n case 'a=sendrecv':\n case 'a=sendonly':\n case 'a=recvonly':\n case 'a=inactive':\n return lines[i].substr(2);\n default:\n // FIXME: What should happen here?\n }\n }\n if (sessionpart) {\n return SDPUtils.getDirection(sessionpart);\n }\n return 'sendrecv';\n};\n\nSDPUtils.getKind = function(mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n return mline[0].substr(2);\n};\n\nSDPUtils.isRejected = function(mediaSection) {\n return mediaSection.split(' ', 2)[1] === '0';\n};\n\nSDPUtils.parseMLine = function(mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const parts = lines[0].substr(2).split(' ');\n return {\n kind: parts[0],\n port: parseInt(parts[1], 10),\n protocol: parts[2],\n fmt: parts.slice(3).join(' '),\n };\n};\n\nSDPUtils.parseOLine = function(mediaSection) {\n const line = SDPUtils.matchPrefix(mediaSection, 'o=')[0];\n const parts = line.substr(2).split(' ');\n return {\n username: parts[0],\n sessionId: parts[1],\n sessionVersion: parseInt(parts[2], 10),\n netType: parts[3],\n addressType: parts[4],\n address: parts[5],\n };\n};\n\n// a very naive interpretation of a valid SDP.\nSDPUtils.isValidSDP = function(blob) {\n if (typeof blob !== 'string' || blob.length === 0) {\n return false;\n }\n const lines = SDPUtils.splitLines(blob);\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].length < 2 || lines[i].charAt(1) !== '=') {\n return false;\n }\n // TODO: check the modifier a bit more.\n }\n return true;\n};\n\n// Expose public methods.\nif (typeof module === 'object') {\n module.exports = SDPUtils;\n}\n","/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport SDPUtils from 'sdp';\nimport * as utils from './utils';\n\nexport function shimRTCIceCandidate(window) {\n // foundation is arbitrarily chosen as an indicator for full support for\n // https://w3c.github.io/webrtc-pc/#rtcicecandidate-interface\n if (!window.RTCIceCandidate || (window.RTCIceCandidate && 'foundation' in\n window.RTCIceCandidate.prototype)) {\n return;\n }\n\n const NativeRTCIceCandidate = window.RTCIceCandidate;\n window.RTCIceCandidate = function RTCIceCandidate(args) {\n // Remove the a= which shouldn't be part of the candidate string.\n if (typeof args === 'object' && args.candidate &&\n args.candidate.indexOf('a=') === 0) {\n args = JSON.parse(JSON.stringify(args));\n args.candidate = args.candidate.substr(2);\n }\n\n if (args.candidate && args.candidate.length) {\n // Augment the native candidate with the parsed fields.\n const nativeCandidate = new NativeRTCIceCandidate(args);\n const parsedCandidate = SDPUtils.parseCandidate(args.candidate);\n const augmentedCandidate = Object.assign(nativeCandidate,\n parsedCandidate);\n\n // Add a serializer that does not serialize the extra attributes.\n augmentedCandidate.toJSON = function toJSON() {\n return {\n candidate: augmentedCandidate.candidate,\n sdpMid: augmentedCandidate.sdpMid,\n sdpMLineIndex: augmentedCandidate.sdpMLineIndex,\n usernameFragment: augmentedCandidate.usernameFragment,\n };\n };\n return augmentedCandidate;\n }\n return new NativeRTCIceCandidate(args);\n };\n window.RTCIceCandidate.prototype = NativeRTCIceCandidate.prototype;\n\n // Hook up the augmented candidate in onicecandidate and\n // addEventListener('icecandidate', ...)\n utils.wrapPeerConnectionEvent(window, 'icecandidate', e => {\n if (e.candidate) {\n Object.defineProperty(e, 'candidate', {\n value: new window.RTCIceCandidate(e.candidate),\n writable: 'false'\n });\n }\n return e;\n });\n}\n\nexport function shimMaxMessageSize(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n if (!('sctp' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n }\n });\n }\n\n const sctpInDescription = function(description) {\n if (!description || !description.sdp) {\n return false;\n }\n const sections = SDPUtils.splitSections(description.sdp);\n sections.shift();\n return sections.some(mediaSection => {\n const mLine = SDPUtils.parseMLine(mediaSection);\n return mLine && mLine.kind === 'application'\n && mLine.protocol.indexOf('SCTP') !== -1;\n });\n };\n\n const getRemoteFirefoxVersion = function(description) {\n // TODO: Is there a better solution for detecting Firefox?\n const match = description.sdp.match(/mozilla...THIS_IS_SDPARTA-(\\d+)/);\n if (match === null || match.length < 2) {\n return -1;\n }\n const version = parseInt(match[1], 10);\n // Test for NaN (yes, this is ugly)\n return version !== version ? -1 : version;\n };\n\n const getCanSendMaxMessageSize = function(remoteIsFirefox) {\n // Every implementation we know can send at least 64 KiB.\n // Note: Although Chrome is technically able to send up to 256 KiB, the\n // data does not reach the other peer reliably.\n // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=8419\n let canSendMaxMessageSize = 65536;\n if (browserDetails.browser === 'firefox') {\n if (browserDetails.version < 57) {\n if (remoteIsFirefox === -1) {\n // FF < 57 will send in 16 KiB chunks using the deprecated PPID\n // fragmentation.\n canSendMaxMessageSize = 16384;\n } else {\n // However, other FF (and RAWRTC) can reassemble PPID-fragmented\n // messages. Thus, supporting ~2 GiB when sending.\n canSendMaxMessageSize = 2147483637;\n }\n } else if (browserDetails.version < 60) {\n // Currently, all FF >= 57 will reset the remote maximum message size\n // to the default value when a data channel is created at a later\n // stage. :(\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n canSendMaxMessageSize =\n browserDetails.version === 57 ? 65535 : 65536;\n } else {\n // FF >= 60 supports sending ~2 GiB\n canSendMaxMessageSize = 2147483637;\n }\n }\n return canSendMaxMessageSize;\n };\n\n const getMaxMessageSize = function(description, remoteIsFirefox) {\n // Note: 65536 bytes is the default value from the SDP spec. Also,\n // every implementation we know supports receiving 65536 bytes.\n let maxMessageSize = 65536;\n\n // FF 57 has a slightly incorrect default remote max message size, so\n // we need to adjust it here to avoid a failure when sending.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1425697\n if (browserDetails.browser === 'firefox'\n && browserDetails.version === 57) {\n maxMessageSize = 65535;\n }\n\n const match = SDPUtils.matchPrefix(description.sdp,\n 'a=max-message-size:');\n if (match.length > 0) {\n maxMessageSize = parseInt(match[0].substr(19), 10);\n } else if (browserDetails.browser === 'firefox' &&\n remoteIsFirefox !== -1) {\n // If the maximum message size is not present in the remote SDP and\n // both local and remote are Firefox, the remote peer can receive\n // ~2 GiB.\n maxMessageSize = 2147483637;\n }\n return maxMessageSize;\n };\n\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n this._sctp = null;\n // Chrome decided to not expose .sctp in plan-b mode.\n // As usual, adapter.js has to do an 'ugly worakaround'\n // to cover up the mess.\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 76) {\n const {sdpSemantics} = this.getConfiguration();\n if (sdpSemantics === 'plan-b') {\n Object.defineProperty(this, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n if (sctpInDescription(arguments[0])) {\n // Check if the remote is FF.\n const isFirefox = getRemoteFirefoxVersion(arguments[0]);\n\n // Get the maximum message size the local peer is capable of sending\n const canSendMMS = getCanSendMaxMessageSize(isFirefox);\n\n // Get the maximum message size of the remote peer.\n const remoteMMS = getMaxMessageSize(arguments[0], isFirefox);\n\n // Determine final maximum message size\n let maxMessageSize;\n if (canSendMMS === 0 && remoteMMS === 0) {\n maxMessageSize = Number.POSITIVE_INFINITY;\n } else if (canSendMMS === 0 || remoteMMS === 0) {\n maxMessageSize = Math.max(canSendMMS, remoteMMS);\n } else {\n maxMessageSize = Math.min(canSendMMS, remoteMMS);\n }\n\n // Create a dummy RTCSctpTransport object and the 'maxMessageSize'\n // attribute.\n const sctp = {};\n Object.defineProperty(sctp, 'maxMessageSize', {\n get() {\n return maxMessageSize;\n }\n });\n this._sctp = sctp;\n }\n\n return origSetRemoteDescription.apply(this, arguments);\n };\n}\n\nexport function shimSendThrowTypeError(window) {\n if (!(window.RTCPeerConnection &&\n 'createDataChannel' in window.RTCPeerConnection.prototype)) {\n return;\n }\n\n // Note: Although Firefox >= 57 has a native implementation, the maximum\n // message size can be reset for all data channels at a later stage.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n\n function wrapDcSend(dc, pc) {\n const origDataChannelSend = dc.send;\n dc.send = function send() {\n const data = arguments[0];\n const length = data.length || data.size || data.byteLength;\n if (dc.readyState === 'open' &&\n pc.sctp && length > pc.sctp.maxMessageSize) {\n throw new TypeError('Message too large (can send a maximum of ' +\n pc.sctp.maxMessageSize + ' bytes)');\n }\n return origDataChannelSend.apply(dc, arguments);\n };\n }\n const origCreateDataChannel =\n window.RTCPeerConnection.prototype.createDataChannel;\n window.RTCPeerConnection.prototype.createDataChannel =\n function createDataChannel() {\n const dataChannel = origCreateDataChannel.apply(this, arguments);\n wrapDcSend(dataChannel, this);\n return dataChannel;\n };\n utils.wrapPeerConnectionEvent(window, 'datachannel', e => {\n wrapDcSend(e.channel, e.target);\n return e;\n });\n}\n\n\n/* shims RTCConnectionState by pretending it is the same as iceConnectionState.\n * See https://bugs.chromium.org/p/webrtc/issues/detail?id=6145#c12\n * for why this is a valid hack in Chrome. In Firefox it is slightly incorrect\n * since DTLS failures would be hidden. See\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1265827\n * for the Firefox tracking bug.\n */\nexport function shimConnectionState(window) {\n if (!window.RTCPeerConnection ||\n 'connectionState' in window.RTCPeerConnection.prototype) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n Object.defineProperty(proto, 'connectionState', {\n get() {\n return {\n completed: 'connected',\n checking: 'connecting'\n }[this.iceConnectionState] || this.iceConnectionState;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(proto, 'onconnectionstatechange', {\n get() {\n return this._onconnectionstatechange || null;\n },\n set(cb) {\n if (this._onconnectionstatechange) {\n this.removeEventListener('connectionstatechange',\n this._onconnectionstatechange);\n delete this._onconnectionstatechange;\n }\n if (cb) {\n this.addEventListener('connectionstatechange',\n this._onconnectionstatechange = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n\n ['setLocalDescription', 'setRemoteDescription'].forEach((method) => {\n const origMethod = proto[method];\n proto[method] = function() {\n if (!this._connectionstatechangepoly) {\n this._connectionstatechangepoly = e => {\n const pc = e.target;\n if (pc._lastConnectionState !== pc.connectionState) {\n pc._lastConnectionState = pc.connectionState;\n const newEvent = new Event('connectionstatechange', e);\n pc.dispatchEvent(newEvent);\n }\n return e;\n };\n this.addEventListener('iceconnectionstatechange',\n this._connectionstatechangepoly);\n }\n return origMethod.apply(this, arguments);\n };\n });\n}\n\nexport function removeExtmapAllowMixed(window, browserDetails) {\n /* remove a=extmap-allow-mixed for webrtc.org < M71 */\n if (!window.RTCPeerConnection) {\n return;\n }\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 71) {\n return;\n }\n if (browserDetails.browser === 'safari' && browserDetails.version >= 605) {\n return;\n }\n const nativeSRD = window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription(desc) {\n if (desc && desc.sdp && desc.sdp.indexOf('\\na=extmap-allow-mixed') !== -1) {\n const sdp = desc.sdp.split('\\n').filter((line) => {\n return line.trim() !== 'a=extmap-allow-mixed';\n }).join('\\n');\n // Safari enforces read-only-ness of RTCSessionDescription fields.\n if (window.RTCSessionDescription &&\n desc instanceof window.RTCSessionDescription) {\n arguments[0] = new window.RTCSessionDescription({\n type: desc.type,\n sdp,\n });\n } else {\n desc.sdp = sdp;\n }\n }\n return nativeSRD.apply(this, arguments);\n };\n}\n\nexport function shimAddIceCandidateNullOrEmpty(window, browserDetails) {\n // Support for addIceCandidate(null or undefined)\n // as well as addIceCandidate({candidate: \"\", ...})\n // https://bugs.chromium.org/p/chromium/issues/detail?id=978582\n // Note: must be called before other polyfills which change the signature.\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeAddIceCandidate =\n window.RTCPeerConnection.prototype.addIceCandidate;\n if (!nativeAddIceCandidate || nativeAddIceCandidate.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.addIceCandidate =\n function addIceCandidate() {\n if (!arguments[0]) {\n if (arguments[1]) {\n arguments[1].apply(null);\n }\n return Promise.resolve();\n }\n // Firefox 68+ emits and processes {candidate: \"\", ...}, ignore\n // in older versions.\n // Native support for ignoring exists for Chrome M77+.\n // Safari ignores as well, exact version unknown but works in the same\n // version that also ignores addIceCandidate(null).\n if (((browserDetails.browser === 'chrome' && browserDetails.version < 78)\n || (browserDetails.browser === 'firefox'\n && browserDetails.version < 68)\n || (browserDetails.browser === 'safari'))\n && arguments[0] && arguments[0].candidate === '') {\n return Promise.resolve();\n }\n return nativeAddIceCandidate.apply(this, arguments);\n };\n}\n\n// Note: Make sure to call this ahead of APIs that modify\n// setLocalDescription.length\nexport function shimParameterlessSetLocalDescription(window, browserDetails) {\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n if (!nativeSetLocalDescription || nativeSetLocalDescription.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n let desc = arguments[0] || {};\n if (typeof desc !== 'object' || (desc.type && desc.sdp)) {\n return nativeSetLocalDescription.apply(this, arguments);\n }\n // The remaining steps should technically happen when SLD comes off the\n // RTCPeerConnection's operations chain (not ahead of going on it), but\n // this is too difficult to shim. Instead, this shim only covers the\n // common case where the operations chain is empty. This is imperfect, but\n // should cover many cases. Rationale: Even if we can't reduce the glare\n // window to zero on imperfect implementations, there's value in tapping\n // into the perfect negotiation pattern that several browsers support.\n desc = {type: desc.type, sdp: desc.sdp};\n if (!desc.type) {\n switch (this.signalingState) {\n case 'stable':\n case 'have-local-offer':\n case 'have-remote-pranswer':\n desc.type = 'offer';\n break;\n default:\n desc.type = 'answer';\n break;\n }\n }\n if (desc.sdp || (desc.type !== 'offer' && desc.type !== 'answer')) {\n return nativeSetLocalDescription.apply(this, [desc]);\n }\n const func = desc.type === 'offer' ? this.createOffer : this.createAnswer;\n return func.apply(this)\n .then(d => nativeSetLocalDescription.apply(this, [d]));\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\nimport * as utils from './utils';\n\n // Browser shims.\nimport * as chromeShim from './chrome/chrome_shim';\nimport * as firefoxShim from './firefox/firefox_shim';\nimport * as safariShim from './safari/safari_shim';\nimport * as commonShim from './common_shim';\nimport * as sdp from 'sdp';\n\n// Shimming starts here.\nexport function adapterFactory({window} = {}, options = {\n shimChrome: true,\n shimFirefox: true,\n shimSafari: true,\n}) {\n // Utils.\n const logging = utils.log;\n const browserDetails = utils.detectBrowser(window);\n\n const adapter = {\n browserDetails,\n commonShim,\n extractVersion: utils.extractVersion,\n disableLog: utils.disableLog,\n disableWarnings: utils.disableWarnings,\n // Expose sdp as a convenience. For production apps include directly.\n sdp,\n };\n\n // Shim browser if found.\n switch (browserDetails.browser) {\n case 'chrome':\n if (!chromeShim || !chromeShim.shimPeerConnection ||\n !options.shimChrome) {\n logging('Chrome shim is not included in this adapter release.');\n return adapter;\n }\n if (browserDetails.version === null) {\n logging('Chrome shim can not determine version, not shimming.');\n return adapter;\n }\n logging('adapter.js shimming chrome.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = chromeShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n chromeShim.shimGetUserMedia(window, browserDetails);\n chromeShim.shimMediaStream(window, browserDetails);\n chromeShim.shimPeerConnection(window, browserDetails);\n chromeShim.shimOnTrack(window, browserDetails);\n chromeShim.shimAddTrackRemoveTrack(window, browserDetails);\n chromeShim.shimGetSendersWithDtmf(window, browserDetails);\n chromeShim.shimGetStats(window, browserDetails);\n chromeShim.shimSenderReceiverGetStats(window, browserDetails);\n chromeShim.fixNegotiationNeeded(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n case 'firefox':\n if (!firefoxShim || !firefoxShim.shimPeerConnection ||\n !options.shimFirefox) {\n logging('Firefox shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming firefox.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = firefoxShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n firefoxShim.shimGetUserMedia(window, browserDetails);\n firefoxShim.shimPeerConnection(window, browserDetails);\n firefoxShim.shimOnTrack(window, browserDetails);\n firefoxShim.shimRemoveStream(window, browserDetails);\n firefoxShim.shimSenderGetStats(window, browserDetails);\n firefoxShim.shimReceiverGetStats(window, browserDetails);\n firefoxShim.shimRTCDataChannel(window, browserDetails);\n firefoxShim.shimAddTransceiver(window, browserDetails);\n firefoxShim.shimGetParameters(window, browserDetails);\n firefoxShim.shimCreateOffer(window, browserDetails);\n firefoxShim.shimCreateAnswer(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n break;\n case 'safari':\n if (!safariShim || !options.shimSafari) {\n logging('Safari shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming safari.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = safariShim;\n\n // Must be called before shimCallbackAPI.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n safariShim.shimRTCIceServerUrls(window, browserDetails);\n safariShim.shimCreateOfferLegacy(window, browserDetails);\n safariShim.shimCallbacksAPI(window, browserDetails);\n safariShim.shimLocalStreamsAPI(window, browserDetails);\n safariShim.shimRemoteStreamsAPI(window, browserDetails);\n safariShim.shimTrackEventTransceiver(window, browserDetails);\n safariShim.shimGetUserMedia(window, browserDetails);\n safariShim.shimAudioContext(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n default:\n logging('Unsupported browser!');\n break;\n }\n\n return adapter;\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n\n'use strict';\n\nimport {adapterFactory} from './adapter_factory.js';\n\nconst adapter =\n adapterFactory({window: typeof window === 'undefined' ? undefined : window});\nexport default adapter;\n",null,null,null,null,null,null,null],"names":["root","definition","module","exports","log","this","noop","undefinedType","isIE","window","navigator","test","userAgent","logMethods","bindMethod","obj","methodName","method","bind","Function","prototype","call","e","apply","arguments","traceForIE","console","trace","realMethod","undefined","replaceLoggingMethods","level","loggerName","i","length","methodFactory","debug","enableLoggingWhenConsoleArrives","defaultMethodFactory","Logger","name","defaultLevel","factory","self","currentLevel","storageKey","persistLevelIfPossible","levelNum","levelName","toUpperCase","localStorage","ignore","document","cookie","encodeURIComponent","getPersistedLevel","storedLevel","location","indexOf","exec","slice","levels","clearPersistedLevel","removeItem","getLevel","setLevel","persist","SILENT","setDefaultLevel","resetLevel","enableAll","TRACE","disableAll","initialLevel","defaultLogger","_loggersByName","getLogger","TypeError","logger","_log","noConflict","getLoggers","LogLevel","livekitLogger","info","setLogLevel","setLogExtension","extension","originalFactory","logLevel","rawMethod","configLevel","needLog","silent","msg","context","long","Long","wasm","WebAssembly","Instance","Module","Uint8Array","low","high","unsigned","__isLong__","Object","defineProperty","value","isLong","INT_CACHE","UINT_CACHE","fromInt","cachedObj","cache","fromBits","fromNumber","isNaN","UZERO","ZERO","TWO_PWR_64_DBL","MAX_UNSIGNED_VALUE","TWO_PWR_63_DBL","MIN_VALUE","MAX_VALUE","neg","TWO_PWR_32_DBL","lowBits","highBits","pow_dbl","Math","pow","fromString","str","radix","Error","RangeError","p","substring","radixToPower","result","size","min","parseInt","power","mul","add","fromValue","val","TWO_PWR_16_DBL","TWO_PWR_24_DBL","TWO_PWR_24","ONE","UONE","NEG_ONE","LongPrototype","toInt","toNumber","toString","isZero","isNegative","eq","radixLong","div","rem1","sub","rem","remDiv","intval","digits","getHighBits","getHighBitsUnsigned","getLowBits","getLowBitsUnsigned","getNumBitsAbs","bit","eqz","isPositive","isOdd","isEven","equals","other","notEquals","neq","ne","lessThan","comp","lt","lessThanOrEqual","lte","le","greaterThan","gt","greaterThanOrEqual","gte","ge","compare","thisNeg","otherNeg","negate","not","addend","a48","a32","a16","a00","b48","b32","b16","b00","c48","c32","c16","c00","subtract","subtrahend","multiply","multiplier","get_high","divide","divisor","div_u","div_s","approx","res","halfThis","shr","shl","toUnsigned","shru","max","floor","log2","ceil","LN2","delta","approxRes","approxRem","modulo","rem_u","rem_s","mod","and","or","xor","shiftLeft","numBits","shiftRight","shiftRightUnsigned","shr_u","toSigned","toBytes","toBytesLE","toBytesBE","hi","lo","fromBytes","bytes","fromBytesLE","fromBytesBE","aspromise","asPromise","fn","ctx","params","Array","offset","index","pending","Promise","executor","resolve","reject","callback","err","base64","string","n","charAt","b64","s64","encode","buffer","start","end","parts","chunk","j","t","b","push","String","fromCharCode","join","invalidEncoding","decode","c","charCodeAt","eventemitter","EventEmitter","_listeners","on","evt","off","listeners","splice","emit","args","float","Float32Array","f32","f8b","writeFloat_f32_cpy","buf","pos","writeFloat_f32_rev","writeFloatLE","writeFloatBE","readFloat_f32_cpy","readFloat_f32_rev","readFloatLE","readFloatBE","writeFloat_ieee754","writeUint","sign","round","exponent","mantissa","writeUintLE","writeUintBE","readFloat_ieee754","readUint","uint","NaN","Infinity","readUintLE","readUintBE","Float64Array","f64","writeDouble_f64_cpy","writeDouble_f64_rev","writeDoubleLE","writeDoubleBE","readDouble_f64_cpy","readDouble_f64_rev","readDoubleLE","readDoubleBE","writeDouble_ieee754","off0","off1","readDouble_ieee754","inquire_1","inquire","moduleName","eval","keys","utf8","utf8_length","len","read","utf8_read","write","utf8_write","c1","c2","pool_1","pool","alloc","SIZE","MAX","slab","pool_alloc","longbits","LongBits","util","require$$0","zero","zzEncode","zzDecode","zeroHash","from","isString","toLong","Boolean","fromHash","hash","toHash","mask","part0","part1","part2","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","isNode","global","process","versions","node","emptyArray","freeze","emptyObject","isInteger","Number","isFinite","isObject","isset","isSet","prop","hasOwnProperty","isArray","Buffer","utf8Write","_Buffer_from","_Buffer_allocUnsafe","newBuffer","sizeOrArray","dcodeIO","key2Re","key32Re","key64Re","longToHash","longFromHash","bits","merge","dst","src","ifNotSet","lcFirst","toLowerCase","newError","CustomError","message","properties","get","captureStackTrace","stack","create","constructor","ProtocolError","oneOfGetter","getOneOf","fieldNames","fieldMap","oneOfSetter","setOneOf","toJSONOptions","longs","enums","json","_configure","Buffer_from","encoding","allocUnsafe","Buffer_allocUnsafe","writer","Writer","BufferWriter","Op","next","State","head","tail","states","create_buffer_setup","create_buffer","create_array","subarray","_push","writeByte","writeVarint32","VarintOp","uint32","write_uint32","int32","write_int32","writeVarint64","sint32","write_sint32","uint64","write_uint64","int64","sint64","write_sint64","bool","write_bool","writeFixed32","fixed32","write_fixed32","sfixed32","fixed64","write_fixed64","sfixed64","write_float","double","write_double","writeBytes","set","writeBytes_set","writeBytes_for","write_bytes","write_string","fork","reset","ldelim","finish","BufferWriter_","writer_buffer","writeBytesBuffer","writeBytesBuffer_set","writeBytesBuffer_copy","copy","write_bytes_buffer","writeStringBuffer","write_string_buffer","byteLength","reader","Reader","BufferReader","indexOutOfRange","writeLength","create_typed_array","isBuffer","_slice","read_uint32_setup","read_uint32","read_int32","read_sint32","readLongVarint","read_bool","readFixed32_end","read_fixed32","read_sfixed32","readFixed64","read_float","read_double","read_bytes","read_string","skip","skipType","wireType","BufferReader_","read_int64","read_uint64","read_sint64","read_fixed64","read_sfixed64","reader_buffer","read_string_buffer","utf8Slice","service","Service","rpcImpl","requestDelimited","responseDelimited","rpcCall","requestCtor","responseCtor","request","setTimeout","rpcCallback","response","endedByRPC","rpc","roots","protobuf","build","configure","minimal","globalThis","_m0","TrackType","trackTypeFromJSON","object","AUDIO","VIDEO","DATA","UNRECOGNIZED","trackTypeToJSON","TrackSource","trackSourceFromJSON","UNKNOWN","CAMERA","MICROPHONE","SCREEN_SHARE","SCREEN_SHARE_AUDIO","trackSourceToJSON","VideoQuality","videoQualityFromJSON","LOW","MEDIUM","HIGH","OFF","videoQualityToJSON","ConnectionQuality","connectionQualityFromJSON","POOR","GOOD","EXCELLENT","connectionQualityToJSON","ClientConfigSetting","clientConfigSettingFromJSON","UNSET","DISABLED","ENABLED","clientConfigSettingToJSON","ParticipantInfo_State","participantInfo_StateFromJSON","JOINING","JOINED","ACTIVE","DISCONNECTED","participantInfo_StateToJSON","DataPacket_Kind","dataPacket_KindFromJSON","RELIABLE","LOSSY","dataPacket_KindToJSON","ClientInfo_SDK","clientInfo_SDKFromJSON","JS","SWIFT","ANDROID","FLUTTER","GO","UNITY","clientInfo_SDKToJSON","createBaseRoom","sid","emptyTimeout","maxParticipants","creationTime","turnPassword","enabledCodecs","metadata","numParticipants","activeRecording","Room","v","Codec","input","tag","longToNumber","fromJSON","map","toJSON","fromPartial","_a","_b","_c","_d","_e","_f","_g","_h","_j","_k","createBaseCodec","mime","fmtpLine","createBaseParticipantPermission","canSubscribe","canPublish","canPublishData","hidden","recorder","ParticipantPermission","createBaseParticipantInfo","identity","state","tracks","joinedAt","version","permission","region","ParticipantInfo","TrackInfo","createBaseTrackInfo","type","muted","width","height","simulcast","disableDtx","source","layers","mimeType","mid","VideoLayer","_l","_m","createBaseVideoLayer","quality","bitrate","ssrc","createBaseDataPacket","kind","user","speaker","DataPacket","UserPacket","ActiveSpeakerUpdate","createBaseActiveSpeakerUpdate","speakers","SpeakerInfo","createBaseSpeakerInfo","active","createBaseUserPacket","participantSid","payload","destinationSids","bytesFromBase64","base64FromBytes","createBaseParticipantTracks","trackSids","ParticipantTracks","createBaseClientInfo","sdk","protocol","os","osVersion","deviceModel","browser","browserVersion","address","ClientInfo","createBaseClientConfiguration","video","screen","resumeConnection","ClientConfiguration","VideoConfiguration","createBaseVideoConfiguration","hardwareEncoder","atob","bin","arr","btoa","byte","MAX_SAFE_INTEGER","SignalTarget","signalTargetFromJSON","PUBLISHER","SUBSCRIBER","signalTargetToJSON","StreamState","streamStateFromJSON","PAUSED","streamStateToJSON","createBaseSignalRequest","offer","answer","trickle","addTrack","mute","subscription","trackSetting","leave","updateLayers","subscriptionPermission","syncState","simulate","SignalRequest","SessionDescription","TrickleRequest","AddTrackRequest","MuteTrackRequest","UpdateSubscription","UpdateTrackSettings","LeaveRequest","UpdateVideoLayers","SubscriptionPermission","SyncState","SimulateScenario","createBaseSignalResponse","update","trackPublished","speakersChanged","roomUpdate","connectionQuality","streamStateUpdate","subscribedQualityUpdate","subscriptionPermissionUpdate","refreshToken","trackUnpublished","SignalResponse","JoinResponse","ParticipantUpdate","TrackPublishedResponse","SpeakersChanged","RoomUpdate","ConnectionQualityUpdate","StreamStateUpdate","SubscribedQualityUpdate","SubscriptionPermissionUpdate","TrackUnpublishedResponse","createBaseAddTrackRequest","cid","createBaseTrickleRequest","candidateInit","target","createBaseMuteTrackRequest","createBaseJoinResponse","room","participant","otherParticipants","serverVersion","iceServers","subscriberPrimary","alternativeUrl","clientConfiguration","serverRegion","ICEServer","createBaseTrackPublishedResponse","track","createBaseTrackUnpublishedResponse","trackSid","createBaseSessionDescription","sdp","createBaseParticipantUpdate","participants","createBaseUpdateSubscription","subscribe","participantTracks","createBaseUpdateTrackSettings","disabled","createBaseLeaveRequest","canReconnect","createBaseUpdateVideoLayers","createBaseICEServer","urls","username","credential","createBaseSpeakersChanged","createBaseRoomUpdate","createBaseConnectionQualityInfo","score","ConnectionQualityInfo","createBaseConnectionQualityUpdate","updates","createBaseStreamStateInfo","StreamStateInfo","createBaseStreamStateUpdate","streamStates","createBaseSubscribedQuality","enabled","SubscribedQuality","createBaseSubscribedQualityUpdate","subscribedQualities","createBaseTrackPermission","allTracks","TrackPermission","createBaseSubscriptionPermission","allParticipants","trackPermissions","createBaseSubscriptionPermissionUpdate","allowed","createBaseSyncState","publishTracks","dataChannels","DataChannelInfo","createBaseDataChannelInfo","label","id","createBaseSimulateScenario","speakerUpdate","nodeFailure","migration","serverLeave","LivekitError","code","ConnectionError","TrackInvalidError","UnsupportedServer","UnexpectedConnectionState","PublishDataError","MediaDeviceFailure","getFailure","error","NotFound","PermissionDenied","DeviceInUse","Other","RoomEvent","ParticipantEvent","EngineEvent","TrackEvent","monitorFrequency","computeBitrate","currentStats","prevStats","bytesNow","bytesPrev","bytesReceived","bytesSent","timestamp","defaultId","DeviceManager","getInstance","instance","getDevices","requestPermissions","devices","mediaDevices","enumerateDevices","isDummyDeviceOrEmpty","some","device","noLabel","isRelevant","permissionsToAcquire","audio","getUserMedia","filter","deviceId","defaultDevice","groupId","temp","normalizeDeviceId","find","d","mediaDeviceKinds","protocolVersion","separator","unpackStreamId","packed","split","substr","sleep","duration","isFireFox","isWeb","isSafari","isMobile","roDispatchCallback","entries","entry","handleResize","ioDispatchCallback","handleVisibilityChanged","resizeObserver","getResizeObserver","ResizeObserver","intersectionObserver","getIntersectionObserver","IntersectionObserver","rootMargin","getClientInfo","emptyMediaStreamTrack","getEmptyMediaStreamTrack","canvas","createElement","emptyStream","captureStream","getTracks","R","Reflect","ReflectApply","receiver","ReflectOwnKeys","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","concat","ProcessEmitWarning","warning","warn","NumberIsNaN","init","eventsModule","events","once","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","enumerable","arg","getPrototypeOf","setMaxListeners","_getMaxListeners","that","getMaxListeners","doError","er","handler","arrayClone","_addListener","prepend","m","existing","newListener","unshift","warned","w","emitter","count","addListener","prependListener","onceWrapper","fired","removeListener","wrapFn","_onceWrap","wrapped","prependOnceListener","list","position","originalListener","shift","spliceOne","removeAllListeners","key","unwrap","evlistener","unwrapListeners","rawListeners","listenerCount","eventNames","pop","ret","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","flags","addEventListener","wrapListener","removeEventListener","recycledElements","Track","mediaTrack","attachedElements","isMuted","_currentBitrate","appVisibilityChangedListener","handleAppVisibilityChanged","mediaStreamTrack","Source","Unknown","isInBackground","visibilityState","currentBitrate","attach","element","elementType","Kind","Video","forEach","parentElement","includes","attachToElement","HTMLAudioElement","play","then","AudioPlaybackStarted","catch","AudioPlaybackFailed","ElementAttached","detach","detachTrack","idx","recycleElement","ElementDetached","detached","elm","stop","enable","disable","shouldCache","pause","mediaStream","srcObject","MediaStream","existingTracks","getAudioTracks","getVideoTracks","et","removeTrack","HTMLVideoElement","autoplay","playsInline","kindToProto","k","Audio","kindFromProto","sourceToProto","s","Camera","Microphone","ScreenShare","ScreenShareAudio","sourceFromProto","streamStateFromProto","ProtoStreamState","Active","Paused","LocalTrack","constraints","_isUpstreamPaused","handleEnded","reacquireTrack","Ended","getConstraints","wasMuted","dimensions","getSettings","isUpstreamPaused","getDeviceId","setTrackMuted","unmute","replaceTrack","sender","el","restart","streamConstraints","newTrack","Muted","Unmuted","needsReAcquisition","readyState","pauseUpstream","UpstreamPaused","resumeUpstream","UpstreamResumed","mergeDefaultOptions","options","audioDefaults","videoDefaults","opts","mergeObjectWithoutOverwriting","mainObject","objectToMerge","constraintsForOptions","videoOptions","resolution","detectSilence","timeOffset","getNewAudioContext","analyser","createAnalyser","fftSize","bufferLength","frequencyBinCount","dataArray","createMediaStreamSource","connect","getByteTimeDomainData","someNoise","sample","close","AudioContext","webkitAudioContext","LocalAudioTrack","stopOnMute","monitorSender","stats","getSenderStats","checkForSilence","setDeviceId","restartTrack","startMonitor","getStats","audioStats","streamId","packetsSent","packetsLost","roundTripTime","jitter","trackIsSilent","AudioSilenceDetected","LocalVideoTrack","statsMap","Map","rid","totalBitrate","prev","isSimulcast","getParameters","encodings","signalClient","items","vs","frameHeight","frameWidth","firCount","pliCount","nackCount","framesSent","retransmittedPacketsSent","qualityLimitationReason","qualityLimitationResolutionChanges","r","remoteId","setPublishingQuality","maxQuality","qualities","q","setPublishingLayers","hasChanged","videoQualityForRid","subscribedQuality","scaleResolutionDownBy","maxBitrate","maxFrameRate","setParameters","videoLayersFromEncodings","scale","RemoteTrack","streamState","setMuted","setMediaStream","stream","onremovetrack","monitorReceiver","RemoteAudioTrack","getReceiverStats","elementVolume","setVolume","volume","getVolume","receiverStats","concealedSamples","concealmentEvents","silentConcealedSamples","silentConcealmentEvents","totalAudioEnergy","totalSamplesDuration","debounce","func","waitMilliseconds","timeoutId","isImmediate","maxWait","lastInvokeTime","Date","now","promises","nextInvokeTimeout","timeSinceLastInvocation","debouncedFunction","shouldCallNow","clearTimeout","cancel","reason","REACTION_DELAY","RemoteVideoTrack","adaptiveStreamSettings","elementInfos","isIntersecting","elementInfo","visible","visibilityChangedAt","updateVisibility","debouncedHandleResize","updateDimensions","isAdaptiveStream","observe","detachedElements","stopObservingElement","framesDecoded","framesDropped","framesReceived","packetsReceived","unobserve","lastVisibilityChange","reduce","isVisible","lastVisible","VisibilityChanged","maxWidth","maxHeight","pixelDensity","pixelDensityValue","devicePixelRatio","currentElementWidth","clientWidth","currentElementHeight","clientHeight","lastDimensions","VideoDimensionsChanged","TrackPublication","metadataMuted","handleMuted","handleUnmuted","trackName","setTrack","isEnabled","isSubscribed","audioTrack","videoTrack","updateInfo","simulcasted","trackInfo","SubscriptionStatus","LocalTrackPublication","ti","handleTrackEnded","VideoPreset","maxFramerate","frameRate","aspectRatio","AudioPresets","telephone","speech","music","VideoPresets","h90","h180","h216","h360","h540","h720","h1080","h1440","h2160","qvga","vga","qhd","hd","fhd","VideoPresets43","h120","h240","h480","ScreenSharePresets","h360fps3","h720fps5","h720fps15","h1080fps15","h1080fps30","hd_8","hd_15","fhd_15","fhd_30","qualityFromProto","ProtoQuality","Excellent","Good","Poor","Participant","audioLevel","isSpeaking","_connectionQuality","audioTracks","videoTracks","values","getTrack","pub","getTrackByName","isCameraEnabled","isMicrophoneEnabled","isScreenShareEnabled","participantInfo","setMetadata","setPermissions","md","changed","prevMetadata","MetadataChanged","ParticipantMetadataChanged","permissions","setIsSpeaking","speaking","lastSpokeAt","IsSpeakingChanged","setConnectionQuality","prevQuality","ConnectionQualityChanged","addTrackPublication","publication","TrackMuted","TrackUnmuted","trackPermissionToProto","perms","allowAll","allowedTrackSids","mediaTrackToLocalTrack","presets169","presets43","presetsScreenShare","defaultSimulcastPresets169","defaultSimulcastPresets43","computeDefaultScreenShareSimulcastPresets","fromPreset","fps","videoRids","computeVideoEncodings","isScreenShare","videoEncoding","screenShareEncoding","useSimulcast","determineAppropriateEncoding","original","presets","sortPresets","screenShareSimulcastLayers","defaultSimulcastLayers","videoSimulcastLayers","midPreset","lowPreset","encodingsFromPresets","presetsForResolution","preset","aspect","abs","sort","a","aEnc","bEnc","RemoteTrackPublication","_allowed","currentVideoQuality","handleVisibilityChange","emitTrackUpdate","handleVideoDimensionsChange","videoDimensions","setSubscribed","subscribed","subscriptionStatus","Unsubscribed","NotAllowed","Subscribed","setEnabled","isManualOperationAllowed","setVideoQuality","setVideoDimensions","videoQuality","settings","UpdateSettings","RemoteParticipant","fromParticipantInfo","pi","rp","sendUpdateTrackSettings","pt","sendUpdateSubscription","TrackUnsubscribed","audioPublication","addSubscribedMediaTrack","triesLeft","getTrackPublication","startsWith","TrackSubscriptionFailed","isVideo","TrackSubscribed","hasMetadata","alreadyHasMetadata","validTracks","newTracks","TrackPublished","has","unpublishTrack","sendUnpublish","delete","TrackUnpublished","event","LocalParticipant","engine","pendingPublishing","Set","onTrackUnmuted","onTrackMuted","updateMuteStatus","onTrackUpstreamPaused","onTrackUpstreamResumed","handleSubscribedQualityUpdate","roomOptions","dynacast","handleLocalTrackUnpublished","unpublished","onTrackUnpublish","client","onRemoteMuteChanged","onSubscribedQualityUpdate","onLocalTrackUnpublished","lastCameraError","cameraError","lastMicrophoneError","microphoneError","setCameraEnabled","setTrackEnabled","setMicrophoneEnabled","setScreenShareEnabled","prevPermissions","ParticipantPermissionsChanged","localTrack","createTracks","createScreenTracks","publishTrack","MediaDevicesError","enableCameraAndMicrophone","all","audioCaptureDefaults","videoCaptureDefaults","isAudio","trackConstraints","conOrBool","videoConstraints","getDisplayMedia","screenVideo","localTracks","screenAudio","_objectSpread","publishDefaults","MediaStreamTrack","existingPublication","stopMicTrackOnMute","req","dtx","audioBitrate","publisher","transceiverInit","direction","sendEncodings","transceiver","pc","addTransceiver","negotiate","videoCodec","setPreferredCodec","LocalTrackPublished","stopOnUnpublish","getPublicationForTrack","stopLocalTrackOnUnpublish","senders","getSenders","LocalTrackUnpublished","unpublishTracks","publications","publishData","data","destination","dest","packet","sendDataPacket","setTrackSubscriptionPermissions","allParticipantsAllowed","participantTrackPermissions","sendUpdateSubscriptionPermissions","RTCRtpSender","cap","getCapabilities","selected","codecs","codec","matchesVideoCodec","sdpFmtpLine","setCodecPreferences","publishedTracksInfo","infos","dataChannelsInfo","getInfo","dc","dataChannelForKind","Queue","queue","running","enqueue","cb","dequeue","run","isRunning","isEmpty","logDisabled_","deprecationWarnings_","extractVersion","uastring","expr","match","wrapPeerConnectionEvent","eventNameToWrap","wrapper","RTCPeerConnection","proto","nativeAddEventListener","nativeEventName","wrappedCallback","modifiedEvent","handleEvent","_eventMap","nativeRemoveEventListener","unwrappedCb","configurable","disableLog","disableWarnings","deprecated","oldMethod","newMethod","detectBrowser","mozGetUserMedia","webkitGetUserMedia","isSecureContext","webkitRTCPeerConnection","RTCIceGatherer","supportsUnifiedPlan","RTCRtpTransceiver","compactObject","accumulator","isObj","isEmptyObject","assign","walkStats","base","resultSet","endsWith","filterStats","outbound","streamStatsType","filteredResult","trackStats","trackIdentifier","trackStat","trackId","logging","utils","shimGetUserMedia","browserDetails","constraintsToChrome_","mandatory","optional","cc","ideal","exact","oldname_","prefix","oc","mix","advanced","shimConstraints_","JSON","parse","stringify","remap","face","facingMode","getSupportedFacingModeLies","getSupportedConstraints","matches","dev","shimError_","PermissionDeniedError","PermissionDismissedError","InvalidStateError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","constraint","constraintName","getUserMedia_","onSuccess","onError","origGetUserMedia","cs","DOMException","shimGetDisplayMedia","getSourceId","sourceId","widthSpecified","heightSpecified","frameRateSpecified","chromeMediaSource","chromeMediaSourceId","shimMediaStream","webkitMediaStream","shimOnTrack","_ontrack","f","origSetRemoteDescription","setRemoteDescription","_ontrackpoly","te","getReceivers","Event","streams","dispatchEvent","shimGetSendersWithDtmf","shimSenderWithDtmf","dtmf","_dtmf","createDTMFSender","_pc","_senders","origAddTrack","origRemoveTrack","origAddStream","addStream","origRemoveStream","removeStream","origGetSenders","shimGetStats","origGetStats","selector","onSucc","onErr","fixChromeStats_","standardReport","reports","report","standardStats","localcandidate","remotecandidate","names","stat","makeMapStats","successCallbackWrapper_","shimSenderReceiverGetStats","RTCRtpReceiver","origGetReceivers","receivers","srcElement","shimAddTrackRemoveTrackWithNative","getLocalStreams","_shimmedLocalStreams","alreadyExists","existingSenders","newSenders","newSender","shimAddTrackRemoveTrack","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","signalingState","oldStream","replaceInternalStreamId","description","internalId","externalStream","internalStream","replace","RegExp","RTCSessionDescription","replaceExternalStreamId","nativeMethod","methodObj","isLegacyCall","desc","origSetLocalDescription","setLocalDescription","origLocalDescription","getOwnPropertyDescriptor","isLocal","streamid","hasTrack","shimPeerConnection","RTCIceCandidate","fixNegotiationNeeded","getConfiguration","sdpSemantics","nativeGetUserMedia","nativeGetSettings","applyConstraints","nativeApplyConstraints","preferredMediaSource","mediaSource","RTCTrackEvent","mozRTCPeerConnection","modernStatsTypes","inboundrtp","outboundrtp","candidatepair","nativeGetStats","shimSenderGetStats","shimReceiverGetStats","shimRemoveStream","shimRTCDataChannel","DataChannel","RTCDataChannel","shimAddTransceiver","origAddTransceiver","setParametersPromises","initParameters","shouldPerformCheck","encodingParam","ridRegex","parseFloat","shimGetParameters","origGetParameters","shimCreateOffer","origCreateOffer","createOffer","finally","shimCreateAnswer","origCreateAnswer","createAnswer","shimLocalStreamsAPI","_localStreams","_addTrack","shimRemoteStreamsAPI","getRemoteStreams","_remoteStreams","_onaddstream","_onaddstreampoly","shimCallbacksAPI","addIceCandidate","successCallback","failureCallback","promise","withCallback","candidate","_getUserMedia","shimConstraints","errcb","shimRTCIceServerUrls","OrigPeerConnection","pcConfig","pcConstraints","newIceServers","server","url","generateCertificate","shimTrackEventTransceiver","shimCreateOfferLegacy","offerOptions","offerToReceiveAudio","audioTransceiver","getTransceivers","setDirection","offerToReceiveVideo","videoTransceiver","shimAudioContext","SDPUtils","generateIdentifier","random","localCName","splitLines","blob","trim","line","splitSections","part","getDescription","sections","getMediaSections","matchPrefix","parseCandidate","foundation","component","priority","ip","port","relatedAddress","relatedPort","tcpType","ufrag","usernameFragment","writeCandidate","parseIceOptions","parseRtpMap","parsed","payloadType","clockRate","channels","numChannels","writeRtpMap","preferredPayloadType","parseExtmap","uri","writeExtmap","headerExtension","preferredId","parseFmtp","kv","writeFmtp","parameters","param","parseRtcpFb","parameter","writeRtcpFb","lines","rtcpFeedback","fb","parseSsrcMedia","sp","colon","attribute","parseSsrcGroup","semantics","ssrcs","getMid","mediaSection","parseFingerprint","algorithm","getDtlsParameters","sessionpart","role","fingerprints","writeDtlsParameters","setupType","fp","parseCryptoLine","cryptoSuite","keyParams","sessionParams","writeCryptoLine","writeCryptoKeyParams","parseCryptoKeyParams","keyMethod","keySalt","lifeTime","mkiValue","mkiLength","getCryptoParameters","getIceParameters","pwd","password","writeIceParameters","iceLite","parseRtpParameters","headerExtensions","fecMechanisms","rtcp","mline","rtpmapline","fmtps","writeRtpDescription","caps","maxptime","parseRtpEncodingParameters","encodingParameters","hasRed","hasUlpfec","primarySsrc","secondarySsrc","flows","apt","encParam","codecPayloadType","rtx","fec","mechanism","bandwidth","parseRtcpParameters","rtcpParameters","remoteSsrc","cname","rsize","reducedSize","compound","mux","writeRtcpParameters","parseMsid","spec","planB","msidParts","parseSctpDescription","parseMLine","maxSizeLine","maxMessageSize","sctpPort","fmt","sctpMapLines","writeSctpDescription","media","sctp","output","generateSessionId","writeSessionBoilerplate","sessId","sessVer","sessUser","sessionId","getDirection","getKind","isRejected","parseOLine","sessionVersion","netType","addressType","isValidSDP","shimRTCIceCandidate","NativeRTCIceCandidate","nativeCandidate","parsedCandidate","augmentedCandidate","sdpMid","sdpMLineIndex","writable","shimMaxMessageSize","_sctp","sctpInDescription","mLine","getRemoteFirefoxVersion","getCanSendMaxMessageSize","remoteIsFirefox","canSendMaxMessageSize","getMaxMessageSize","isFirefox","canSendMMS","remoteMMS","POSITIVE_INFINITY","shimSendThrowTypeError","wrapDcSend","origDataChannelSend","send","origCreateDataChannel","createDataChannel","dataChannel","channel","shimConnectionState","completed","checking","iceConnectionState","_onconnectionstatechange","origMethod","_connectionstatechangepoly","_lastConnectionState","connectionState","newEvent","removeExtmapAllowMixed","nativeSRD","shimAddIceCandidateNullOrEmpty","nativeAddIceCandidate","shimParameterlessSetLocalDescription","nativeSetLocalDescription","adapterFactory","shimChrome","shimFirefox","shimSafari","adapter","commonShim","chromeShim","browserShim","firefoxShim","safariShim","passThroughQueueSignals","canPassThroughQueue","canPass","SignalClient","useJSON","isConnected","isReconnecting","requestQueue","token","autoSubscribe","publishOnly","adaptiveStream","reconnect","clientInfo","createConnectionParams","ws","WebSocket","binaryType","onerror","ev","resp","fetch","ok","text","handleWSError","onopen","onmessage","ArrayBuffer","signalLatency","handleSignalResponse","onclose","onClose","sendOffer","sendRequest","toProtoSessionDescription","sendAnswer","sendIceCandidate","sendMuteTrack","sendAddTrack","sendSyncState","sync","sendUpdateVideoLayers","sendSimulateScenario","scenario","sendLeave","fromQueue","canQueue","sd","fromProtoSessionDescription","onAnswer","onOffer","onTrickle","onParticipantUpdate","onLocalTrackPublished","onSpeakersChanged","onLeave","onRoomUpdate","onConnectionQuality","onStreamStateUpdate","onSubscriptionPermissionUpdate","onTokenRefresh","setReconnected","rsd","URLSearchParams","PCTransport","config","pendingCandidates","restartingIce","renegotiate","createAndSendOffer","isICEConnected","remoteDescription","iceRestart","currentSD","lossyDataChannel","reliableDataChannel","maxReconnectRetries","minReconnectWait","maxReconnectDuration","maxICEConnectTimeout","PCState","RTCEngine","rtcConfig","pcState","New","isClosed","pendingTrackResolvers","hasPublished","reconnectAttempts","reconnectStart","fullReconnectOnNext","handleDataChannel","reliableDCSub","lossyDCSub","handleDataMessage","Blob","arrayBuffer","dp","ActiveSpeakersUpdate","DataPacketReceived","handleDataError","currentTarget","channelKind","maxRetransmits","ErrorEvent","handleDisconnect","connection","delay","restartConnection","recoverable","SignalReconnectError","Disconnected","signalOpts","joinResponse","subscriber","dataSubscriberReadyState","connectedServerAddress","connectedServerAddr","rtcIceServers","iceServer","rtcIceServer","continualGatheringPolicy","TransportsCreated","onicecandidate","primaryPC","ondatachannel","onconnectionstatechange","getConnectedAddress","shouldEmit","Connected","ontrack","MediaTrackAdded","onaddstream","lossyDC","ordered","reliableDC","RTCSdpType","Restarting","waitForPCConnected","Restarted","Resuming","SignalResumed","Resumed","startTime","Reconnecting","ensurePublisherConnected","targetChannel","endTime","getTime","selectedCandidatePairId","candidatePairs","candidates","selectedID","remoteCandidateId","autoGainControl","channelCount","echoCancellation","noiseSuppression","RoomState","activeSpeakers","audioEnabled","createEngine","acquireAudioContext","connOptions","localParticipant","getOrCreateParticipant","StateChanged","connectTimeout","onBeforeUnload","handleDeviceChange","disconnect","stopTracks","handleRestarting","handleParticipantDisconnected","handleRestarted","Reconnected","handleParticipantUpdates","localPubs","participantInfos","remoteParticipant","isNewParticipant","ParticipantConnected","handleActiveSpeakersUpdate","seenSids","ActiveSpeakersChanged","handleSpeakersChanged","speakerUpdates","lastSpeakers","handleStreamStateUpdate","TrackStreamStateChanged","handleSubscriptionPermissionUpdate","TrackSubscriptionPermissionChanged","handleDataPacket","userPacket","DataReceived","handleAudioPlaybackStarted","canPlaybackAudio","AudioPlaybackStatusChanged","handleAudioPlaybackFailed","MediaDevicesChanged","handleRoomUpdate","RoomMetadataChanged","handleConnectionQualityUpdate","expSignalLatency","onTrackAdded","updateSubscriptions","getLocalDevices","getParticipantByIdentity","simulateScenario","startAudio","elements","switchActiveDevice","setSinkId","participantId","shouldStopTracks","clear","audioContext","ParticipantDisconnected","createParticipant","trackPublication","localDescription","previousSdp","sendUnsub","autoManageVideo","publishAudio","publishVideo","errKind","audioErr","createLocalTracks","createLocalVideoTrack","createLocalAudioTrack","createLocalScreenTracks"],"mappings":"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F,CADtF,EACyF,GADzF,EAC8F,GAD9F,EACmG,GADnG,EACwG,CADxG,EAC2G,CAD3G,EAC8G,CAD9G,EACiH,GADjH,EACsH,GADtH,EAC2H,GAD3H,EACgI,EADhI,EACoI,GADpI,EACyI,CADzI,EAC4I,CAD5I,EAC+I,CAD/I,EACkJ,GADlJ,EACuJ,GADvJ,EAC4J,GAD5J,EACiK,EADjK,EACqK,GADrK,EAC0K,CAD1K,EAC6K,CAD7K,EACgL,CADhL,EACmL,GADnL,EACwL,GADxL,EAC6L,GAD7L,EACkM,EADlM,EACsM,GADtM,EAC2M,CAD3M,EAC8M,CAD9M,EACiN,CADjN,EACoN,GADpN,EACyN,GADzN,EAC8N,GAD9N,EACmO,EADnO,EACuO,GADvO,EAC4O,CAD5O,EAC+O,CAD/O,EACkP,CADlP,EACqP,GADrP,EAC0P,GAD1P,EAC+P,GAD/P,EACoQ,EADpQ,EACwQ,GADxQ,EAC6Q,GAD7Q,EACkR,GADlR,EACuR,GADvR,EAC4R,CAD5R,EAC+R,CAD/R,EACkS,EADlS,EACsS,GADtS,EAC2S,CAD3S,EAC8S,CAD9S,EACiT,CADjT,EACoT,CADpT,EACuT,EADvT,EAC2T,CAD3T,EAC8T,EAD9T,EACkU,EADlU,EACsU,CADtU,EACyU,CADzU,EAC4U,GAD5U,EACiV,EADjV,EACqV,CADrV,EACwV,GADxV,EAC6V,EAD7V,EACiW,CADjW,EACoW,GADpW,EACyW,EADzW,EAC6W,EAD7W,EACiX,GADjX,EACsX,GADtX,EAC2X,EAD3X,EAC+X,CAD/X,EACkY,GADlY,EACuY,EADvY,EAC2Y,CAD3Y,EAC8Y,GAD9Y,EACmZ,EADnZ,EACuZ,EADvZ,EAC2Z,GAD3Z,EACga,GADha,EACqa,GADra,EAC0a,EAD1a,EAC8a,CAD9a,EACib,EADjb,EACqb,EADrb,EACyb,GADzb,EAC8b,GAD9b,EACmc,EADnc,EACuc,CADvc,EAC0c,EAD1c,EAC8c,CAD9c,EACid,GADjd,EACsd,EADtd,EAC0d,EAD1d,EAC8d,CAD9d,EACie,CADje,EACoe,GADpe,EACye,EADze,EAC6e,CAD7e,EACgf,GADhf,EACqf,EADrf,EACyf,CADzf,EAC4f,GAD5f,EACigB,EADjgB,EACqgB,EADrgB,EACygB,GADzgB,EAC8gB,GAD9gB,EACmhB,EADnhB,EACuhB,CADvhB,EAC0hB,GAD1hB,EAC+hB,EAD/hB,EACmiB,CADniB,EACsiB,GADtiB,EAC2iB,EAD3iB,EAC+iB,EAD/iB,EACmjB,GADnjB,EACwjB,GADxjB,EAC6jB,GAD7jB,EACkkB,EADlkB,EACskB,CADtkB,EACykB,EADzkB,EAC6kB,EAD7kB,EACilB,GADjlB,EACslB,GADtlB,EAC2lB,EAD3lB,EAC+lB,CAD/lB,EACkmB,EADlmB,EACsmB,CADtmB,EACymB,GADzmB,EAC8mB,EAD9mB,EACknB,EADlnB,EACsnB,CADtnB,EACynB,CADznB,EAC4nB,GAD5nB,EACioB,EADjoB,EACqoB,CADroB,EACwoB,GADxoB,EAC6oB,EAD7oB,EACipB,CADjpB,EACopB,GADppB,EACypB,EADzpB,EAC6pB,EAD7pB,EACiqB,GADjqB,EACsqB,GADtqB,EAC2qB,EAD3qB,EAC+qB,CAD/qB,EACkrB,GADlrB,EACurB,EADvrB,EAC2rB,CAD3rB,EAC8rB,GAD9rB,EACmsB,EADnsB,EACusB,EADvsB,EAC2sB,GAD3sB,EACgtB,GADhtB,EACqtB,GADrtB,EAC0tB,EAD1tB,EAC8tB,CAD9tB,EACiuB,EADjuB,EACquB,EADruB,EACyuB,GADzuB,EAC8uB,GAD9uB,EACmvB,EADnvB,EACuvB,CADvvB,EAC0vB,EAD1vB,EAC8vB,CAD9vB,EACiwB,GADjwB,EACswB,EADtwB,EAC0wB,EAD1wB,EAC8wB,CAD9wB,EACixB,CADjxB,EACoxB,GADpxB,EACyxB,EADzxB,EAC6xB,CAD7xB,EACgyB,GADhyB,EACqyB,EADryB,EACyyB,CADzyB,EAC4yB,GAD5yB,EACizB,EADjzB,EACqzB,EADrzB,EACyzB,GADzzB,EAC8zB,GAD9zB,EACm0B,EADn0B,EACu0B,CADv0B,EAC00B,GAD10B,EAC+0B,EAD/0B,EACm1B,CADn1B,EACs1B,GADt1B,EAC21B,EAD31B,EAC+1B,EAD/1B,EACm2B,GADn2B,EACw2B,GADx2B,EAC62B,GAD72B,EACk3B,EADl3B,EACs3B,CADt3B,EACy3B,EADz3B,EAC63B,EAD73B,EACi4B,GADj4B,EACs4B,GADt4B,EAC24B,EAD34B,EAC+4B,CAD/4B,EACk5B,EADl5B,EACs5B,CADt5B,EACy5B,GADz5B,EAC85B,EAD95B,EACk6B,EADl6B,EACs6B,CADt6B,EACy6B,CADz6B,EAC46B,GAD56B,EACi7B,EADj7B,EACq7B,CADr7B,EACw7B,GADx7B,EAC67B,EAD77B,EACi8B,CADj8B,EACo8B,GADp8B,EACy8B,EADz8B,EAC68B,EAD78B,EACi9B,GADj9B,EACs9B,GADt9B,EAC29B,EAD39B,EAC+9B,CAD/9B,EACk+B,GADl+B,EACu+B,EADv+B,EAC2+B,CAD3+B,EAC8+B,GAD9+B,EACm/B,EADn/B,EACu/B,EADv/B,EAC2/B,GAD3/B,EACggC,GADhgC,EACqgC,GADrgC,EAC0gC,EAD1gC,EAC8gC,CAD9gC,EACihC,EADjhC,EACqhC,EADrhC,EACyhC,GADzhC,EAC8hC,GAD9hC,EACmiC,EADniC,EACuiC,CADviC,EAC0iC,EAD1iC,EAC8iC,CAD9iC,EACijC,GADjjC,EACsjC,EADtjC,CAAf,CAAvB,CAAzB,EAEF,EAFE,EAEEnG,OAFT,CAAA;AAGD,CAJD,CAIE,OAAOmB,CAAP,EAAU;AAEX,CAAA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2E,IAAT,CAAcM,GAAd,EAAmBC,IAAnB,EAAyBC,QAAzB,EAAmC;AAEnC;AACA;AACA;AACA;AACI,EAAA,IAAA,CAAKF,GAAL,GAAWA,GAAG,GAAG,CAAjB,CAAA;AAEJ;AACA;AACA;AACA;;AACI,EAAA,IAAA,CAAKC,IAAL,GAAYA,IAAI,GAAG,CAAnB,CAAA;AAEJ;AACA;AACA;AACA;;AACI,EAAA,IAAA,CAAKC,QAAL,GAAgB,CAAC,CAACA,QA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"}
|
1
|
+
{"version":3,"file":"livekit-client.esm.mjs","sources":["../node_modules/.pnpm/loglevel@1.8.0/node_modules/loglevel/lib/loglevel.js","../src/logger.ts","../node_modules/long/src/long.js","../node_modules/.pnpm/@protobufjs+aspromise@1.1.2/node_modules/@protobufjs/aspromise/index.js","../node_modules/.pnpm/@protobufjs+base64@1.1.2/node_modules/@protobufjs/base64/index.js","../node_modules/.pnpm/@protobufjs+eventemitter@1.1.0/node_modules/@protobufjs/eventemitter/index.js","../node_modules/.pnpm/@protobufjs+float@1.0.2/node_modules/@protobufjs/float/index.js","../node_modules/.pnpm/@protobufjs+inquire@1.1.0/node_modules/@protobufjs/inquire/index.js","../node_modules/.pnpm/@protobufjs+utf8@1.1.0/node_modules/@protobufjs/utf8/index.js","../node_modules/.pnpm/@protobufjs+pool@1.1.0/node_modules/@protobufjs/pool/index.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/util/longbits.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/util/minimal.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/writer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/writer_buffer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/reader.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/reader_buffer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/rpc/service.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/rpc.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/roots.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/index-minimal.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/minimal.js","../src/proto/google/protobuf/timestamp.ts","../src/proto/livekit_models.ts","../src/proto/livekit_rtc.ts","../src/room/errors.ts","../src/room/events.ts","../src/room/stats.ts","../src/room/DeviceManager.ts","../src/version.ts","../src/room/utils.ts","../node_modules/.pnpm/events@3.3.0/node_modules/events/events.js","../src/room/track/Track.ts","../src/room/track/LocalTrack.ts","../src/room/track/utils.ts","../src/room/track/LocalAudioTrack.ts","../src/room/track/LocalVideoTrack.ts","../src/room/track/RemoteTrack.ts","../src/room/track/RemoteAudioTrack.ts","../node_modules/.pnpm/ts-debounce@3.0.0/node_modules/ts-debounce/dist/src/index.esm.js","../src/room/track/RemoteVideoTrack.ts","../src/room/track/TrackPublication.ts","../src/room/track/LocalTrackPublication.ts","../src/room/track/options.ts","../src/room/participant/Participant.ts","../src/room/participant/ParticipantTrackPermission.ts","../src/room/participant/publishUtils.ts","../src/room/track/RemoteTrackPublication.ts","../src/room/participant/RemoteParticipant.ts","../src/room/participant/LocalParticipant.ts","../src/api/RequestQueue.ts","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/utils.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/getdisplaymedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/getusermedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/safari/safari_shim.js","../node_modules/.pnpm/sdp@3.0.3/node_modules/sdp/sdp.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/common_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/adapter_factory.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/adapter_core.js","../src/api/SignalClient.ts","../src/room/PCTransport.ts","../src/room/RTCEngine.ts","../src/room/track/defaults.ts","../src/room/Room.ts","../src/connect.ts","../src/room/track/create.ts"],"sourcesContent":["/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && (\n /Trident\\/|MSIE /.test(window.navigator.userAgent)\n );\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n // In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods(level, loggerName) {\n /*jshint validthis:true */\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, loggerName);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this, level, loggerName);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, level, loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, defaultLevel, factory) {\n var self = this;\n var currentLevel;\n defaultLevel = defaultLevel == null ? \"WARN\" : defaultLevel;\n\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = undefined;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType || !storageKey) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var location = cookie.indexOf(\n encodeURIComponent(storageKey) + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage.removeItem(storageKey);\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {}\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n return currentLevel;\n };\n\n self.setLevel = function (level, persist) {\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n currentLevel = level;\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(level);\n }\n replaceLoggingMethods.call(self, level, name);\n if (typeof console === undefinedType && level < self.levels.SILENT) {\n return \"No console available for logging\";\n }\n } else {\n throw \"log.setLevel() called with invalid level: \" + level;\n }\n };\n\n self.setDefaultLevel = function (level) {\n defaultLevel = level;\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.resetLevel = function () {\n self.setLevel(defaultLevel, false);\n clearPersistedLevel();\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n // Initialize with the right level\n var initialLevel = getPersistedLevel();\n if (initialLevel == null) {\n initialLevel = defaultLevel;\n }\n self.setLevel(initialLevel, false);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n var defaultLogger = new Logger();\n\n var _loggersByName = {};\n defaultLogger.getLogger = function getLogger(name) {\n if ((typeof name !== \"symbol\" && typeof name !== \"string\") || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name, defaultLogger.getLevel(), defaultLogger.methodFactory);\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n // ES6 default export, for compatibility\n defaultLogger['default'] = defaultLogger;\n\n return defaultLogger;\n}));\n",null,"module.exports = Long;\r\n\r\n/**\r\n * wasm optimizations, to do native i64 multiplication and divide\r\n */\r\nvar wasm = null;\r\n\r\ntry {\r\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\r\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\r\n ])), {}).exports;\r\n} catch (e) {\r\n // no wasm support :(\r\n}\r\n\r\n/**\r\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n * See the from* functions below for more convenient ways of constructing Longs.\r\n * @exports Long\r\n * @class A Long class for representing a 64 bit two's-complement integer value.\r\n * @param {number} low The low (signed) 32 bits of the long\r\n * @param {number} high The high (signed) 32 bits of the long\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @constructor\r\n */\r\nfunction Long(low, high, unsigned) {\r\n\r\n /**\r\n * The low 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.low = low | 0;\r\n\r\n /**\r\n * The high 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.high = high | 0;\r\n\r\n /**\r\n * Whether unsigned or not.\r\n * @type {boolean}\r\n */\r\n this.unsigned = !!unsigned;\r\n}\r\n\r\n// The internal representation of a long is the two given signed, 32-bit values.\r\n// We use 32-bit pieces because these are the size of integers on which\r\n// Javascript performs bit-operations. For operations like addition and\r\n// multiplication, we split each number into 16 bit pieces, which can easily be\r\n// multiplied within Javascript's floating-point representation without overflow\r\n// or change in sign.\r\n//\r\n// In the algorithms below, we frequently reduce the negative case to the\r\n// positive case by negating the input(s) and then post-processing the result.\r\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n// a positive number, it overflows back into a negative). Not handling this\r\n// case would often result in infinite recursion.\r\n//\r\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n// methods on which they depend.\r\n\r\n/**\r\n * An indicator used to reliably determine if an object is a Long or not.\r\n * @type {boolean}\r\n * @const\r\n * @private\r\n */\r\nLong.prototype.__isLong__;\r\n\r\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\r\n\r\n/**\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n * @inner\r\n */\r\nfunction isLong(obj) {\r\n return (obj && obj[\"__isLong__\"]) === true;\r\n}\r\n\r\n/**\r\n * Tests if the specified object is a Long.\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n */\r\nLong.isLong = isLong;\r\n\r\n/**\r\n * A cache of the Long representations of small integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar INT_CACHE = {};\r\n\r\n/**\r\n * A cache of the Long representations of small unsigned integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar UINT_CACHE = {};\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromInt(value, unsigned) {\r\n var obj, cachedObj, cache;\r\n if (unsigned) {\r\n value >>>= 0;\r\n if (cache = (0 <= value && value < 256)) {\r\n cachedObj = UINT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\r\n if (cache)\r\n UINT_CACHE[value] = obj;\r\n return obj;\r\n } else {\r\n value |= 0;\r\n if (cache = (-128 <= value && value < 128)) {\r\n cachedObj = INT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, value < 0 ? -1 : 0, false);\r\n if (cache)\r\n INT_CACHE[value] = obj;\r\n return obj;\r\n }\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given 32 bit integer value.\r\n * @function\r\n * @param {number} value The 32 bit integer in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromInt = fromInt;\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromNumber(value, unsigned) {\r\n if (isNaN(value))\r\n return unsigned ? UZERO : ZERO;\r\n if (unsigned) {\r\n if (value < 0)\r\n return UZERO;\r\n if (value >= TWO_PWR_64_DBL)\r\n return MAX_UNSIGNED_VALUE;\r\n } else {\r\n if (value <= -TWO_PWR_63_DBL)\r\n return MIN_VALUE;\r\n if (value + 1 >= TWO_PWR_63_DBL)\r\n return MAX_VALUE;\r\n }\r\n if (value < 0)\r\n return fromNumber(-value, unsigned).neg();\r\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n * @function\r\n * @param {number} value The number in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromNumber = fromNumber;\r\n\r\n/**\r\n * @param {number} lowBits\r\n * @param {number} highBits\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromBits(lowBits, highBits, unsigned) {\r\n return new Long(lowBits, highBits, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n * assumed to use 32 bits.\r\n * @function\r\n * @param {number} lowBits The low 32 bits\r\n * @param {number} highBits The high 32 bits\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromBits = fromBits;\r\n\r\n/**\r\n * @function\r\n * @param {number} base\r\n * @param {number} exponent\r\n * @returns {number}\r\n * @inner\r\n */\r\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\r\n\r\n/**\r\n * @param {string} str\r\n * @param {(boolean|number)=} unsigned\r\n * @param {number=} radix\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromString(str, unsigned, radix) {\r\n if (str.length === 0)\r\n throw Error('empty string');\r\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n return ZERO;\r\n if (typeof unsigned === 'number') {\r\n // For goog.math.long compatibility\r\n radix = unsigned,\r\n unsigned = false;\r\n } else {\r\n unsigned = !! unsigned;\r\n }\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n\r\n var p;\r\n if ((p = str.indexOf('-')) > 0)\r\n throw Error('interior hyphen');\r\n else if (p === 0) {\r\n return fromString(str.substring(1), unsigned, radix).neg();\r\n }\r\n\r\n // Do several (8) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 8));\r\n\r\n var result = ZERO;\r\n for (var i = 0; i < str.length; i += 8) {\r\n var size = Math.min(8, str.length - i),\r\n value = parseInt(str.substring(i, i + size), radix);\r\n if (size < 8) {\r\n var power = fromNumber(pow_dbl(radix, size));\r\n result = result.mul(power).add(fromNumber(value));\r\n } else {\r\n result = result.mul(radixToPower);\r\n result = result.add(fromNumber(value));\r\n }\r\n }\r\n result.unsigned = unsigned;\r\n return result;\r\n}\r\n\r\n/**\r\n * Returns a Long representation of the given string, written using the specified radix.\r\n * @function\r\n * @param {string} str The textual representation of the Long\r\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromString = fromString;\r\n\r\n/**\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromValue(val, unsigned) {\r\n if (typeof val === 'number')\r\n return fromNumber(val, unsigned);\r\n if (typeof val === 'string')\r\n return fromString(val, unsigned);\r\n // Throws for non-objects, converts non-instanceof Long:\r\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\r\n}\r\n\r\n/**\r\n * Converts the specified value to a Long using the appropriate from* function for its type.\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long}\r\n */\r\nLong.fromValue = fromValue;\r\n\r\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n// no runtime penalty for these.\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_16_DBL = 1 << 16;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24_DBL = 1 << 24;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n/**\r\n * @type {!Long}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ZERO = fromInt(0);\r\n\r\n/**\r\n * Signed zero.\r\n * @type {!Long}\r\n */\r\nLong.ZERO = ZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UZERO = fromInt(0, true);\r\n\r\n/**\r\n * Unsigned zero.\r\n * @type {!Long}\r\n */\r\nLong.UZERO = UZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ONE = fromInt(1);\r\n\r\n/**\r\n * Signed one.\r\n * @type {!Long}\r\n */\r\nLong.ONE = ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UONE = fromInt(1, true);\r\n\r\n/**\r\n * Unsigned one.\r\n * @type {!Long}\r\n */\r\nLong.UONE = UONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar NEG_ONE = fromInt(-1);\r\n\r\n/**\r\n * Signed negative one.\r\n * @type {!Long}\r\n */\r\nLong.NEG_ONE = NEG_ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n/**\r\n * Maximum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_VALUE = MAX_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n/**\r\n * Maximum unsigned value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MIN_VALUE = fromBits(0, 0x80000000|0, false);\r\n\r\n/**\r\n * Minimum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MIN_VALUE = MIN_VALUE;\r\n\r\n/**\r\n * @alias Long.prototype\r\n * @inner\r\n */\r\nvar LongPrototype = Long.prototype;\r\n\r\n/**\r\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n * @returns {number}\r\n */\r\nLongPrototype.toInt = function toInt() {\r\n return this.unsigned ? this.low >>> 0 : this.low;\r\n};\r\n\r\n/**\r\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n * @returns {number}\r\n */\r\nLongPrototype.toNumber = function toNumber() {\r\n if (this.unsigned)\r\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n};\r\n\r\n/**\r\n * Converts the Long to a string written in the specified radix.\r\n * @param {number=} radix Radix (2-36), defaults to 10\r\n * @returns {string}\r\n * @override\r\n * @throws {RangeError} If `radix` is out of range\r\n */\r\nLongPrototype.toString = function toString(radix) {\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n if (this.isZero())\r\n return '0';\r\n if (this.isNegative()) { // Unsigned Longs are never negative\r\n if (this.eq(MIN_VALUE)) {\r\n // We need to change the Long value before it can be negated, so we remove\r\n // the bottom-most digit in this base and then recurse to do the rest.\r\n var radixLong = fromNumber(radix),\r\n div = this.div(radixLong),\r\n rem1 = div.mul(radixLong).sub(this);\r\n return div.toString(radix) + rem1.toInt().toString(radix);\r\n } else\r\n return '-' + this.neg().toString(radix);\r\n }\r\n\r\n // Do several (6) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\r\n rem = this;\r\n var result = '';\r\n while (true) {\r\n var remDiv = rem.div(radixToPower),\r\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\r\n digits = intval.toString(radix);\r\n rem = remDiv;\r\n if (rem.isZero())\r\n return digits + result;\r\n else {\r\n while (digits.length < 6)\r\n digits = '0' + digits;\r\n result = '' + digits + result;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as a signed integer.\r\n * @returns {number} Signed high bits\r\n */\r\nLongPrototype.getHighBits = function getHighBits() {\r\n return this.high;\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned high bits\r\n */\r\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n return this.high >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as a signed integer.\r\n * @returns {number} Signed low bits\r\n */\r\nLongPrototype.getLowBits = function getLowBits() {\r\n return this.low;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned low bits\r\n */\r\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n return this.low >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the number of bits needed to represent the absolute value of this Long.\r\n * @returns {number}\r\n */\r\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\r\n if (this.isNegative()) // Unsigned Longs are never negative\r\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\r\n var val = this.high != 0 ? this.high : this.low;\r\n for (var bit = 31; bit > 0; bit--)\r\n if ((val & (1 << bit)) != 0)\r\n break;\r\n return this.high != 0 ? bit + 33 : bit + 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isZero = function isZero() {\r\n return this.high === 0 && this.low === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eqz = LongPrototype.isZero;\r\n\r\n/**\r\n * Tests if this Long's value is negative.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isNegative = function isNegative() {\r\n return !this.unsigned && this.high < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is positive.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isPositive = function isPositive() {\r\n return this.unsigned || this.high >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is odd.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isOdd = function isOdd() {\r\n return (this.low & 1) === 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is even.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isEven = function isEven() {\r\n return (this.low & 1) === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.equals = function equals(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n return false;\r\n return this.high === other.high && this.low === other.low;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eq = LongPrototype.equals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.notEquals = function notEquals(other) {\r\n return !this.eq(/* validates */ other);\r\n};\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.neq = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ne = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThan = function lessThan(other) {\r\n return this.comp(/* validates */ other) < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lt = LongPrototype.lessThan;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n return this.comp(/* validates */ other) <= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.le = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThan = function greaterThan(other) {\r\n return this.comp(/* validates */ other) > 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gt = LongPrototype.greaterThan;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n return this.comp(/* validates */ other) >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Compares this Long's value with the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.compare = function compare(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.eq(other))\r\n return 0;\r\n var thisNeg = this.isNegative(),\r\n otherNeg = other.isNegative();\r\n if (thisNeg && !otherNeg)\r\n return -1;\r\n if (!thisNeg && otherNeg)\r\n return 1;\r\n // At this point the sign bits are the same\r\n if (!this.unsigned)\r\n return this.sub(other).isNegative() ? -1 : 1;\r\n // Both are positive if at least one is unsigned\r\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n};\r\n\r\n/**\r\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.comp = LongPrototype.compare;\r\n\r\n/**\r\n * Negates this Long's value.\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.negate = function negate() {\r\n if (!this.unsigned && this.eq(MIN_VALUE))\r\n return MIN_VALUE;\r\n return this.not().add(ONE);\r\n};\r\n\r\n/**\r\n * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n * @function\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.neg = LongPrototype.negate;\r\n\r\n/**\r\n * Returns the sum of this and the specified Long.\r\n * @param {!Long|number|string} addend Addend\r\n * @returns {!Long} Sum\r\n */\r\nLongPrototype.add = function add(addend) {\r\n if (!isLong(addend))\r\n addend = fromValue(addend);\r\n\r\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = addend.high >>> 16;\r\n var b32 = addend.high & 0xFFFF;\r\n var b16 = addend.low >>> 16;\r\n var b00 = addend.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 + b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 + b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 + b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 + b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long.\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.subtract = function subtract(subtrahend) {\r\n if (!isLong(subtrahend))\r\n subtrahend = fromValue(subtrahend);\r\n return this.add(subtrahend.neg());\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n * @function\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.sub = LongPrototype.subtract;\r\n\r\n/**\r\n * Returns the product of this and the specified Long.\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.multiply = function multiply(multiplier) {\r\n if (this.isZero())\r\n return ZERO;\r\n if (!isLong(multiplier))\r\n multiplier = fromValue(multiplier);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = wasm.mul(this.low,\r\n this.high,\r\n multiplier.low,\r\n multiplier.high);\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (multiplier.isZero())\r\n return ZERO;\r\n if (this.eq(MIN_VALUE))\r\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\r\n if (multiplier.eq(MIN_VALUE))\r\n return this.isOdd() ? MIN_VALUE : ZERO;\r\n\r\n if (this.isNegative()) {\r\n if (multiplier.isNegative())\r\n return this.neg().mul(multiplier.neg());\r\n else\r\n return this.neg().mul(multiplier).neg();\r\n } else if (multiplier.isNegative())\r\n return this.mul(multiplier.neg()).neg();\r\n\r\n // If both longs are small, use float multiplication\r\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\r\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n // We can skip products that would overflow.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = multiplier.high >>> 16;\r\n var b32 = multiplier.high & 0xFFFF;\r\n var b16 = multiplier.low >>> 16;\r\n var b00 = multiplier.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 * b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 * b00;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c16 += a00 * b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 * b00;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a16 * b16;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a00 * b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n * @function\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.mul = LongPrototype.multiply;\r\n\r\n/**\r\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\r\n * unsigned if this Long is unsigned.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.divide = function divide(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n if (divisor.isZero())\r\n throw Error('division by zero');\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n // guard against signed division overflow: the largest\r\n // negative number / -1 would be 1 larger than the largest\r\n // positive number, due to two's complement.\r\n if (!this.unsigned &&\r\n this.high === -0x80000000 &&\r\n divisor.low === -1 && divisor.high === -1) {\r\n // be consistent with non-wasm code path\r\n return this;\r\n }\r\n var low = (this.unsigned ? wasm.div_u : wasm.div_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (this.isZero())\r\n return this.unsigned ? UZERO : ZERO;\r\n var approx, rem, res;\r\n if (!this.unsigned) {\r\n // This section is only relevant for signed longs and is derived from the\r\n // closure library as a whole.\r\n if (this.eq(MIN_VALUE)) {\r\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\r\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\r\n else if (divisor.eq(MIN_VALUE))\r\n return ONE;\r\n else {\r\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n var halfThis = this.shr(1);\r\n approx = halfThis.div(divisor).shl(1);\r\n if (approx.eq(ZERO)) {\r\n return divisor.isNegative() ? ONE : NEG_ONE;\r\n } else {\r\n rem = this.sub(divisor.mul(approx));\r\n res = approx.add(rem.div(divisor));\r\n return res;\r\n }\r\n }\r\n } else if (divisor.eq(MIN_VALUE))\r\n return this.unsigned ? UZERO : ZERO;\r\n if (this.isNegative()) {\r\n if (divisor.isNegative())\r\n return this.neg().div(divisor.neg());\r\n return this.neg().div(divisor).neg();\r\n } else if (divisor.isNegative())\r\n return this.div(divisor.neg()).neg();\r\n res = ZERO;\r\n } else {\r\n // The algorithm below has not been made for unsigned longs. It's therefore\r\n // required to take special care of the MSB prior to running it.\r\n if (!divisor.unsigned)\r\n divisor = divisor.toUnsigned();\r\n if (divisor.gt(this))\r\n return UZERO;\r\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\r\n return UONE;\r\n res = UZERO;\r\n }\r\n\r\n // Repeat the following until the remainder is less than other: find a\r\n // floating-point that approximates remainder / other *from below*, add this\r\n // into the result, and subtract it from the remainder. It is critical that\r\n // the approximate value is less than or equal to the real value so that the\r\n // remainder never becomes negative.\r\n rem = this;\r\n while (rem.gte(divisor)) {\r\n // Approximate the result of division. This may be a little greater or\r\n // smaller than the actual value.\r\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n // We will tweak the approximate result by changing it in the 48-th digit or\r\n // the smallest non-fractional digit, whichever is larger.\r\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\r\n\r\n // Decrease the approximation until it is smaller than the remainder. Note\r\n // that if it is too large, the product overflows and is negative.\r\n approxRes = fromNumber(approx),\r\n approxRem = approxRes.mul(divisor);\r\n while (approxRem.isNegative() || approxRem.gt(rem)) {\r\n approx -= delta;\r\n approxRes = fromNumber(approx, this.unsigned);\r\n approxRem = approxRes.mul(divisor);\r\n }\r\n\r\n // We know the answer can't be zero... and actually, zero would cause\r\n // infinite recursion since we would make no progress.\r\n if (approxRes.isZero())\r\n approxRes = ONE;\r\n\r\n res = res.add(approxRes);\r\n rem = rem.sub(approxRem);\r\n }\r\n return res;\r\n};\r\n\r\n/**\r\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.div = LongPrototype.divide;\r\n\r\n/**\r\n * Returns this Long modulo the specified.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.modulo = function modulo(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n return this.sub(this.div(divisor).mul(divisor));\r\n};\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.mod = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.rem = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns the bitwise NOT of this Long.\r\n * @returns {!Long}\r\n */\r\nLongPrototype.not = function not() {\r\n return fromBits(~this.low, ~this.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise AND of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.and = function and(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise OR of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.or = function or(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise XOR of this Long and the given one.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.xor = function xor(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n else\r\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shl = LongPrototype.shiftLeft;\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRight = function shiftRight(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n else\r\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr = LongPrototype.shiftRight;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n numBits &= 63;\r\n if (numBits === 0)\r\n return this;\r\n else {\r\n var high = this.high;\r\n if (numBits < 32) {\r\n var low = this.low;\r\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n } else if (numBits === 32)\r\n return fromBits(high, 0, this.unsigned);\r\n else\r\n return fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n }\r\n};\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Converts this Long to signed.\r\n * @returns {!Long} Signed long\r\n */\r\nLongPrototype.toSigned = function toSigned() {\r\n if (!this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, false);\r\n};\r\n\r\n/**\r\n * Converts this Long to unsigned.\r\n * @returns {!Long} Unsigned long\r\n */\r\nLongPrototype.toUnsigned = function toUnsigned() {\r\n if (this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, true);\r\n};\r\n\r\n/**\r\n * Converts this Long to its byte representation.\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {!Array.<number>} Byte representation\r\n */\r\nLongPrototype.toBytes = function toBytes(le) {\r\n return le ? this.toBytesLE() : this.toBytesBE();\r\n};\r\n\r\n/**\r\n * Converts this Long to its little endian byte representation.\r\n * @returns {!Array.<number>} Little endian byte representation\r\n */\r\nLongPrototype.toBytesLE = function toBytesLE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n lo & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo >>> 16 & 0xff,\r\n lo >>> 24 ,\r\n hi & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi >>> 16 & 0xff,\r\n hi >>> 24\r\n ];\r\n};\r\n\r\n/**\r\n * Converts this Long to its big endian byte representation.\r\n * @returns {!Array.<number>} Big endian byte representation\r\n */\r\nLongPrototype.toBytesBE = function toBytesBE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n hi >>> 24 ,\r\n hi >>> 16 & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi & 0xff,\r\n lo >>> 24 ,\r\n lo >>> 16 & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo & 0xff\r\n ];\r\n};\r\n\r\n/**\r\n * Creates a Long from its byte representation.\r\n * @param {!Array.<number>} bytes Byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\r\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\r\n};\r\n\r\n/**\r\n * Creates a Long from its little endian byte representation.\r\n * @param {!Array.<number>} bytes Little endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\r\n return new Long(\r\n bytes[0] |\r\n bytes[1] << 8 |\r\n bytes[2] << 16 |\r\n bytes[3] << 24,\r\n bytes[4] |\r\n bytes[5] << 8 |\r\n bytes[6] << 16 |\r\n bytes[7] << 24,\r\n unsigned\r\n );\r\n};\r\n\r\n/**\r\n * Creates a Long from its big endian byte representation.\r\n * @param {!Array.<number>} bytes Big endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\r\n return new Long(\r\n bytes[4] << 24 |\r\n bytes[5] << 16 |\r\n bytes[6] << 8 |\r\n bytes[7],\r\n bytes[0] << 24 |\r\n bytes[1] << 16 |\r\n bytes[2] << 8 |\r\n bytes[3],\r\n unsigned\r\n );\r\n};\r\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.<string,*>}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor<Buffer>}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor<Uint8Array>}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor<Long>}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.<string,*>} dst Destination object\n * @param {Object.<string,*>} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.<string,*>} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor<Error>} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message<T>\n * @constructor\n * @param {string} message Error message\n * @param {Object.<string,*>} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message<T>}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise<Message<TRes>>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod<TReq,TRes>} method Reflected or static method\n * @param {Constructor<TReq>} requestCtor Request constructor\n * @param {Constructor<TRes>} responseCtor Response constructor\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod<Message<{}>,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.<string,Root>}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n",null,null,null,null,null,null,null,null,null,"// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n",null,null,null,null,null,null,null,"function r(r,e,n){var i,t,o;void 0===e&&(e=50),void 0===n&&(n={});var a=null!=(i=n.isImmediate)&&i,u=null!=(t=n.callback)&&t,c=n.maxWait,v=Date.now(),l=[];function f(){if(void 0!==c){var r=Date.now()-v;if(r+e>=c)return c-r}return e}var d=function(){var e=[].slice.call(arguments),n=this;return new Promise(function(i,t){var c=a&&void 0===o;if(void 0!==o&&clearTimeout(o),o=setTimeout(function(){if(o=void 0,v=Date.now(),!a){var i=r.apply(n,e);u&&u(i),l.forEach(function(r){return(0,r.resolve)(i)}),l=[]}},f()),c){var d=r.apply(n,e);return u&&u(d),i(d)}l.push({resolve:i,reject:t})})};return d.cancel=function(r){void 0!==o&&clearTimeout(o),l.forEach(function(e){return(0,e.reject)(r)}),l=[]},d}export{r as debounce};\n//# sourceMappingURL=index.esm.js.map\n",null,null,null,null,null,null,null,null,null,null,null,"/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\n\nlet logDisabled_ = true;\nlet deprecationWarnings_ = true;\n\n/**\n * Extract browser version out of the provided user agent string.\n *\n * @param {!string} uastring userAgent string.\n * @param {!string} expr Regular expression used as match criteria.\n * @param {!number} pos position in the version string to be returned.\n * @return {!number} browser version.\n */\nexport function extractVersion(uastring, expr, pos) {\n const match = uastring.match(expr);\n return match && match.length >= pos && parseInt(match[pos], 10);\n}\n\n// Wraps the peerconnection event eventNameToWrap in a function\n// which returns the modified event object (or false to prevent\n// the event).\nexport function wrapPeerConnectionEvent(window, eventNameToWrap, wrapper) {\n if (!window.RTCPeerConnection) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n const nativeAddEventListener = proto.addEventListener;\n proto.addEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap) {\n return nativeAddEventListener.apply(this, arguments);\n }\n const wrappedCallback = (e) => {\n const modifiedEvent = wrapper(e);\n if (modifiedEvent) {\n if (cb.handleEvent) {\n cb.handleEvent(modifiedEvent);\n } else {\n cb(modifiedEvent);\n }\n }\n };\n this._eventMap = this._eventMap || {};\n if (!this._eventMap[eventNameToWrap]) {\n this._eventMap[eventNameToWrap] = new Map();\n }\n this._eventMap[eventNameToWrap].set(cb, wrappedCallback);\n return nativeAddEventListener.apply(this, [nativeEventName,\n wrappedCallback]);\n };\n\n const nativeRemoveEventListener = proto.removeEventListener;\n proto.removeEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap || !this._eventMap\n || !this._eventMap[eventNameToWrap]) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (!this._eventMap[eventNameToWrap].has(cb)) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n const unwrappedCb = this._eventMap[eventNameToWrap].get(cb);\n this._eventMap[eventNameToWrap].delete(cb);\n if (this._eventMap[eventNameToWrap].size === 0) {\n delete this._eventMap[eventNameToWrap];\n }\n if (Object.keys(this._eventMap).length === 0) {\n delete this._eventMap;\n }\n return nativeRemoveEventListener.apply(this, [nativeEventName,\n unwrappedCb]);\n };\n\n Object.defineProperty(proto, 'on' + eventNameToWrap, {\n get() {\n return this['_on' + eventNameToWrap];\n },\n set(cb) {\n if (this['_on' + eventNameToWrap]) {\n this.removeEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap]);\n delete this['_on' + eventNameToWrap];\n }\n if (cb) {\n this.addEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap] = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n}\n\nexport function disableLog(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n logDisabled_ = bool;\n return (bool) ? 'adapter.js logging disabled' :\n 'adapter.js logging enabled';\n}\n\n/**\n * Disable or enable deprecation warnings\n * @param {!boolean} bool set to true to disable warnings.\n */\nexport function disableWarnings(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n deprecationWarnings_ = !bool;\n return 'adapter.js deprecation warnings ' + (bool ? 'disabled' : 'enabled');\n}\n\nexport function log() {\n if (typeof window === 'object') {\n if (logDisabled_) {\n return;\n }\n if (typeof console !== 'undefined' && typeof console.log === 'function') {\n console.log.apply(console, arguments);\n }\n }\n}\n\n/**\n * Shows a deprecation warning suggesting the modern and spec-compatible API.\n */\nexport function deprecated(oldMethod, newMethod) {\n if (!deprecationWarnings_) {\n return;\n }\n console.warn(oldMethod + ' is deprecated, please use ' + newMethod +\n ' instead.');\n}\n\n/**\n * Browser detector.\n *\n * @return {object} result containing browser and version\n * properties.\n */\nexport function detectBrowser(window) {\n // Returned result object.\n const result = {browser: null, version: null};\n\n // Fail early if it's not a browser\n if (typeof window === 'undefined' || !window.navigator) {\n result.browser = 'Not a browser.';\n return result;\n }\n\n const {navigator} = window;\n\n if (navigator.mozGetUserMedia) { // Firefox.\n result.browser = 'firefox';\n result.version = extractVersion(navigator.userAgent,\n /Firefox\\/(\\d+)\\./, 1);\n } else if (navigator.webkitGetUserMedia ||\n (window.isSecureContext === false && window.webkitRTCPeerConnection &&\n !window.RTCIceGatherer)) {\n // Chrome, Chromium, Webview, Opera.\n // Version matches Chrome/WebRTC version.\n // Chrome 74 removed webkitGetUserMedia on http as well so we need the\n // more complicated fallback to webkitRTCPeerConnection.\n result.browser = 'chrome';\n result.version = extractVersion(navigator.userAgent,\n /Chrom(e|ium)\\/(\\d+)\\./, 2);\n } else if (window.RTCPeerConnection &&\n navigator.userAgent.match(/AppleWebKit\\/(\\d+)\\./)) { // Safari.\n result.browser = 'safari';\n result.version = extractVersion(navigator.userAgent,\n /AppleWebKit\\/(\\d+)\\./, 1);\n result.supportsUnifiedPlan = window.RTCRtpTransceiver &&\n 'currentDirection' in window.RTCRtpTransceiver.prototype;\n } else { // Default fallthrough: not supported.\n result.browser = 'Not a supported browser.';\n return result;\n }\n\n return result;\n}\n\n/**\n * Checks if something is an object.\n *\n * @param {*} val The something you want to check.\n * @return true if val is an object, false otherwise.\n */\nfunction isObject(val) {\n return Object.prototype.toString.call(val) === '[object Object]';\n}\n\n/**\n * Remove all empty objects and undefined values\n * from a nested object -- an enhanced and vanilla version\n * of Lodash's `compact`.\n */\nexport function compactObject(data) {\n if (!isObject(data)) {\n return data;\n }\n\n return Object.keys(data).reduce(function(accumulator, key) {\n const isObj = isObject(data[key]);\n const value = isObj ? compactObject(data[key]) : data[key];\n const isEmptyObject = isObj && !Object.keys(value).length;\n if (value === undefined || isEmptyObject) {\n return accumulator;\n }\n return Object.assign(accumulator, {[key]: value});\n }, {});\n}\n\n/* iterates the stats graph recursively. */\nexport function walkStats(stats, base, resultSet) {\n if (!base || resultSet.has(base.id)) {\n return;\n }\n resultSet.set(base.id, base);\n Object.keys(base).forEach(name => {\n if (name.endsWith('Id')) {\n walkStats(stats, stats.get(base[name]), resultSet);\n } else if (name.endsWith('Ids')) {\n base[name].forEach(id => {\n walkStats(stats, stats.get(id), resultSet);\n });\n }\n });\n}\n\n/* filter getStats for a sender/receiver track. */\nexport function filterStats(result, track, outbound) {\n const streamStatsType = outbound ? 'outbound-rtp' : 'inbound-rtp';\n const filteredResult = new Map();\n if (track === null) {\n return filteredResult;\n }\n const trackStats = [];\n result.forEach(value => {\n if (value.type === 'track' &&\n value.trackIdentifier === track.id) {\n trackStats.push(value);\n }\n });\n trackStats.forEach(trackStat => {\n result.forEach(stats => {\n if (stats.type === streamStatsType && stats.trackId === trackStat.id) {\n walkStats(result, stats, filteredResult);\n }\n });\n });\n return filteredResult;\n}\n\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\nconst logging = utils.log;\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n\n if (!navigator.mediaDevices) {\n return;\n }\n\n const constraintsToChrome_ = function(c) {\n if (typeof c !== 'object' || c.mandatory || c.optional) {\n return c;\n }\n const cc = {};\n Object.keys(c).forEach(key => {\n if (key === 'require' || key === 'advanced' || key === 'mediaSource') {\n return;\n }\n const r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};\n if (r.exact !== undefined && typeof r.exact === 'number') {\n r.min = r.max = r.exact;\n }\n const oldname_ = function(prefix, name) {\n if (prefix) {\n return prefix + name.charAt(0).toUpperCase() + name.slice(1);\n }\n return (name === 'deviceId') ? 'sourceId' : name;\n };\n if (r.ideal !== undefined) {\n cc.optional = cc.optional || [];\n let oc = {};\n if (typeof r.ideal === 'number') {\n oc[oldname_('min', key)] = r.ideal;\n cc.optional.push(oc);\n oc = {};\n oc[oldname_('max', key)] = r.ideal;\n cc.optional.push(oc);\n } else {\n oc[oldname_('', key)] = r.ideal;\n cc.optional.push(oc);\n }\n }\n if (r.exact !== undefined && typeof r.exact !== 'number') {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_('', key)] = r.exact;\n } else {\n ['min', 'max'].forEach(mix => {\n if (r[mix] !== undefined) {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_(mix, key)] = r[mix];\n }\n });\n }\n });\n if (c.advanced) {\n cc.optional = (cc.optional || []).concat(c.advanced);\n }\n return cc;\n };\n\n const shimConstraints_ = function(constraints, func) {\n if (browserDetails.version >= 61) {\n return func(constraints);\n }\n constraints = JSON.parse(JSON.stringify(constraints));\n if (constraints && typeof constraints.audio === 'object') {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n constraints = JSON.parse(JSON.stringify(constraints));\n remap(constraints.audio, 'autoGainControl', 'googAutoGainControl');\n remap(constraints.audio, 'noiseSuppression', 'googNoiseSuppression');\n constraints.audio = constraintsToChrome_(constraints.audio);\n }\n if (constraints && typeof constraints.video === 'object') {\n // Shim facingMode for mobile & surface pro.\n let face = constraints.video.facingMode;\n face = face && ((typeof face === 'object') ? face : {ideal: face});\n const getSupportedFacingModeLies = browserDetails.version < 66;\n\n if ((face && (face.exact === 'user' || face.exact === 'environment' ||\n face.ideal === 'user' || face.ideal === 'environment')) &&\n !(navigator.mediaDevices.getSupportedConstraints &&\n navigator.mediaDevices.getSupportedConstraints().facingMode &&\n !getSupportedFacingModeLies)) {\n delete constraints.video.facingMode;\n let matches;\n if (face.exact === 'environment' || face.ideal === 'environment') {\n matches = ['back', 'rear'];\n } else if (face.exact === 'user' || face.ideal === 'user') {\n matches = ['front'];\n }\n if (matches) {\n // Look for matches in label, or use last cam for back (typical).\n return navigator.mediaDevices.enumerateDevices()\n .then(devices => {\n devices = devices.filter(d => d.kind === 'videoinput');\n let dev = devices.find(d => matches.some(match =>\n d.label.toLowerCase().includes(match)));\n if (!dev && devices.length && matches.includes('back')) {\n dev = devices[devices.length - 1]; // more likely the back cam\n }\n if (dev) {\n constraints.video.deviceId = face.exact ? {exact: dev.deviceId} :\n {ideal: dev.deviceId};\n }\n constraints.video = constraintsToChrome_(constraints.video);\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n });\n }\n }\n constraints.video = constraintsToChrome_(constraints.video);\n }\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n };\n\n const shimError_ = function(e) {\n if (browserDetails.version >= 64) {\n return e;\n }\n return {\n name: {\n PermissionDeniedError: 'NotAllowedError',\n PermissionDismissedError: 'NotAllowedError',\n InvalidStateError: 'NotAllowedError',\n DevicesNotFoundError: 'NotFoundError',\n ConstraintNotSatisfiedError: 'OverconstrainedError',\n TrackStartError: 'NotReadableError',\n MediaDeviceFailedDueToShutdown: 'NotAllowedError',\n MediaDeviceKillSwitchOn: 'NotAllowedError',\n TabCaptureError: 'AbortError',\n ScreenCaptureError: 'AbortError',\n DeviceCaptureError: 'AbortError'\n }[e.name] || e.name,\n message: e.message,\n constraint: e.constraint || e.constraintName,\n toString() {\n return this.name + (this.message && ': ') + this.message;\n }\n };\n };\n\n const getUserMedia_ = function(constraints, onSuccess, onError) {\n shimConstraints_(constraints, c => {\n navigator.webkitGetUserMedia(c, onSuccess, e => {\n if (onError) {\n onError(shimError_(e));\n }\n });\n });\n };\n navigator.getUserMedia = getUserMedia_.bind(navigator);\n\n // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia\n // function which returns a Promise, it does not accept spec-style\n // constraints.\n if (navigator.mediaDevices.getUserMedia) {\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(cs) {\n return shimConstraints_(cs, c => origGetUserMedia(c).then(stream => {\n if (c.audio && !stream.getAudioTracks().length ||\n c.video && !stream.getVideoTracks().length) {\n stream.getTracks().forEach(track => {\n track.stop();\n });\n throw new DOMException('', 'NotFoundError');\n }\n return stream;\n }, e => Promise.reject(shimError_(e))));\n };\n }\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nexport function shimGetDisplayMedia(window, getSourceId) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n // getSourceId is a function that returns a promise resolving with\n // the sourceId of the screen/window/tab to be shared.\n if (typeof getSourceId !== 'function') {\n console.error('shimGetDisplayMedia: getSourceId argument is not ' +\n 'a function');\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n return getSourceId(constraints)\n .then(sourceId => {\n const widthSpecified = constraints.video && constraints.video.width;\n const heightSpecified = constraints.video &&\n constraints.video.height;\n const frameRateSpecified = constraints.video &&\n constraints.video.frameRate;\n constraints.video = {\n mandatory: {\n chromeMediaSource: 'desktop',\n chromeMediaSourceId: sourceId,\n maxFrameRate: frameRateSpecified || 3\n }\n };\n if (widthSpecified) {\n constraints.video.mandatory.maxWidth = widthSpecified;\n }\n if (heightSpecified) {\n constraints.video.mandatory.maxHeight = heightSpecified;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n });\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\n\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimMediaStream(window) {\n window.MediaStream = window.MediaStream || window.webkitMediaStream;\n}\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in\n window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {\n get() {\n return this._ontrack;\n },\n set(f) {\n if (this._ontrack) {\n this.removeEventListener('track', this._ontrack);\n }\n this.addEventListener('track', this._ontrack = f);\n },\n enumerable: true,\n configurable: true\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n if (!this._ontrackpoly) {\n this._ontrackpoly = (e) => {\n // onaddstream does not fire when a track is added to an existing\n // stream. But stream.onaddtrack is implemented so we use that.\n e.stream.addEventListener('addtrack', te => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === te.track.id);\n } else {\n receiver = {track: te.track};\n }\n\n const event = new Event('track');\n event.track = te.track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n e.stream.getTracks().forEach(track => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === track.id);\n } else {\n receiver = {track};\n }\n const event = new Event('track');\n event.track = track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n };\n this.addEventListener('addstream', this._ontrackpoly);\n }\n return origSetRemoteDescription.apply(this, arguments);\n };\n } else {\n // even if RTCRtpTransceiver is in window, it is only used and\n // emitted in unified-plan. Unfortunately this means we need\n // to unconditionally wrap the event.\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n if (!e.transceiver) {\n Object.defineProperty(e, 'transceiver',\n {value: {receiver: e.receiver}});\n }\n return e;\n });\n }\n}\n\nexport function shimGetSendersWithDtmf(window) {\n // Overrides addTrack/removeTrack, depends on shimAddTrackRemoveTrack.\n if (typeof window === 'object' && window.RTCPeerConnection &&\n !('getSenders' in window.RTCPeerConnection.prototype) &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype) {\n const shimSenderWithDtmf = function(pc, track) {\n return {\n track,\n get dtmf() {\n if (this._dtmf === undefined) {\n if (track.kind === 'audio') {\n this._dtmf = pc.createDTMFSender(track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n _pc: pc\n };\n };\n\n // augment addTrack when getSenders is not available.\n if (!window.RTCPeerConnection.prototype.getSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n this._senders = this._senders || [];\n return this._senders.slice(); // return a copy of the internal state.\n };\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n let sender = origAddTrack.apply(this, arguments);\n if (!sender) {\n sender = shimSenderWithDtmf(this, track);\n this._senders.push(sender);\n }\n return sender;\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n origRemoveTrack.apply(this, arguments);\n const idx = this._senders.indexOf(sender);\n if (idx !== -1) {\n this._senders.splice(idx, 1);\n }\n };\n }\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._senders = this._senders || [];\n origAddStream.apply(this, [stream]);\n stream.getTracks().forEach(track => {\n this._senders.push(shimSenderWithDtmf(this, track));\n });\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._senders = this._senders || [];\n origRemoveStream.apply(this, [stream]);\n\n stream.getTracks().forEach(track => {\n const sender = this._senders.find(s => s.track === track);\n if (sender) { // remove sender\n this._senders.splice(this._senders.indexOf(sender), 1);\n }\n });\n };\n } else if (typeof window === 'object' && window.RTCPeerConnection &&\n 'getSenders' in window.RTCPeerConnection.prototype &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype &&\n window.RTCRtpSender &&\n !('dtmf' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n\n Object.defineProperty(window.RTCRtpSender.prototype, 'dtmf', {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === 'audio') {\n this._dtmf = this._pc.createDTMFSender(this.track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n }\n });\n }\n}\n\nexport function shimGetStats(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n\n // If selector is a function then we are in the old style stats so just\n // pass back the original getStats format to avoid breaking old users.\n if (arguments.length > 0 && typeof selector === 'function') {\n return origGetStats.apply(this, arguments);\n }\n\n // When spec-style getStats is supported, return those when called with\n // either no arguments or the selector argument is null.\n if (origGetStats.length === 0 && (arguments.length === 0 ||\n typeof selector !== 'function')) {\n return origGetStats.apply(this, []);\n }\n\n const fixChromeStats_ = function(response) {\n const standardReport = {};\n const reports = response.result();\n reports.forEach(report => {\n const standardStats = {\n id: report.id,\n timestamp: report.timestamp,\n type: {\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n }[report.type] || report.type\n };\n report.names().forEach(name => {\n standardStats[name] = report.stat(name);\n });\n standardReport[standardStats.id] = standardStats;\n });\n\n return standardReport;\n };\n\n // shim getStats with maplike support\n const makeMapStats = function(stats) {\n return new Map(Object.keys(stats).map(key => [key, stats[key]]));\n };\n\n if (arguments.length >= 2) {\n const successCallbackWrapper_ = function(response) {\n onSucc(makeMapStats(fixChromeStats_(response)));\n };\n\n return origGetStats.apply(this, [successCallbackWrapper_,\n selector]);\n }\n\n // promise-support\n return new Promise((resolve, reject) => {\n origGetStats.apply(this, [\n function(response) {\n resolve(makeMapStats(fixChromeStats_(response)));\n }, reject]);\n }).then(onSucc, onErr);\n };\n}\n\nexport function shimSenderReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender && window.RTCRtpReceiver)) {\n return;\n }\n\n // shim sender stats.\n if (!('getStats' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n const sender = this;\n return this._pc.getStats().then(result =>\n /* Note: this will include stats of all senders that\n * send a track with the same id as sender.track as\n * it is not possible to identify the RTCRtpSender.\n */\n utils.filterStats(result, sender.track, true));\n };\n }\n\n // shim receiver stats.\n if (!('getStats' in window.RTCRtpReceiver.prototype)) {\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers =\n function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n const receiver = this;\n return this._pc.getStats().then(result =>\n utils.filterStats(result, receiver.track, false));\n };\n }\n\n if (!('getStats' in window.RTCRtpSender.prototype &&\n 'getStats' in window.RTCRtpReceiver.prototype)) {\n return;\n }\n\n // shim RTCPeerConnection.getStats(track).\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n if (arguments.length > 0 &&\n arguments[0] instanceof window.MediaStreamTrack) {\n const track = arguments[0];\n let sender;\n let receiver;\n let err;\n this.getSenders().forEach(s => {\n if (s.track === track) {\n if (sender) {\n err = true;\n } else {\n sender = s;\n }\n }\n });\n this.getReceivers().forEach(r => {\n if (r.track === track) {\n if (receiver) {\n err = true;\n } else {\n receiver = r;\n }\n }\n return r.track === track;\n });\n if (err || (sender && receiver)) {\n return Promise.reject(new DOMException(\n 'There are more than one sender or receiver for the track.',\n 'InvalidAccessError'));\n } else if (sender) {\n return sender.getStats();\n } else if (receiver) {\n return receiver.getStats();\n }\n return Promise.reject(new DOMException(\n 'There is no sender or receiver for the track.',\n 'InvalidAccessError'));\n }\n return origGetStats.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrackWithNative(window) {\n // shim addTrack/removeTrack with native variants in order to make\n // the interactions with legacy getLocalStreams behave as in other browsers.\n // Keeps a mapping stream.id => [stream, rtpsenders...]\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n return Object.keys(this._shimmedLocalStreams)\n .map(streamId => this._shimmedLocalStreams[streamId][0]);\n };\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (!stream) {\n return origAddTrack.apply(this, arguments);\n }\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n const sender = origAddTrack.apply(this, arguments);\n if (!this._shimmedLocalStreams[stream.id]) {\n this._shimmedLocalStreams[stream.id] = [stream, sender];\n } else if (this._shimmedLocalStreams[stream.id].indexOf(sender) === -1) {\n this._shimmedLocalStreams[stream.id].push(sender);\n }\n return sender;\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n const existingSenders = this.getSenders();\n origAddStream.apply(this, arguments);\n const newSenders = this.getSenders()\n .filter(newSender => existingSenders.indexOf(newSender) === -1);\n this._shimmedLocalStreams[stream.id] = [stream].concat(newSenders);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n delete this._shimmedLocalStreams[stream.id];\n return origRemoveStream.apply(this, arguments);\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n if (sender) {\n Object.keys(this._shimmedLocalStreams).forEach(streamId => {\n const idx = this._shimmedLocalStreams[streamId].indexOf(sender);\n if (idx !== -1) {\n this._shimmedLocalStreams[streamId].splice(idx, 1);\n }\n if (this._shimmedLocalStreams[streamId].length === 1) {\n delete this._shimmedLocalStreams[streamId];\n }\n });\n }\n return origRemoveTrack.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrack(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // shim addTrack and removeTrack.\n if (window.RTCPeerConnection.prototype.addTrack &&\n browserDetails.version >= 65) {\n return shimAddTrackRemoveTrackWithNative(window);\n }\n\n // also shim pc.getLocalStreams when addTrack is shimmed\n // to return the original streams.\n const origGetLocalStreams = window.RTCPeerConnection.prototype\n .getLocalStreams;\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n const nativeStreams = origGetLocalStreams.apply(this);\n this._reverseStreams = this._reverseStreams || {};\n return nativeStreams.map(stream => this._reverseStreams[stream.id]);\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n // Add identity mapping for consistency with addTrack.\n // Unless this is being used with a stream from addTrack.\n if (!this._reverseStreams[stream.id]) {\n const newStream = new window.MediaStream(stream.getTracks());\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n stream = newStream;\n }\n origAddStream.apply(this, [stream]);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n origRemoveStream.apply(this, [(this._streams[stream.id] || stream)]);\n delete this._reverseStreams[(this._streams[stream.id] ?\n this._streams[stream.id].id : stream.id)];\n delete this._streams[stream.id];\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n const streams = [].slice.call(arguments, 1);\n if (streams.length !== 1 ||\n !streams[0].getTracks().find(t => t === track)) {\n // this is not fully correct but all we can manage without\n // [[associated MediaStreams]] internal slot.\n throw new DOMException(\n 'The adapter.js addTrack polyfill only supports a single ' +\n ' stream which is associated with the specified track.',\n 'NotSupportedError');\n }\n\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n const oldStream = this._streams[stream.id];\n if (oldStream) {\n // this is using odd Chrome behaviour, use with caution:\n // https://bugs.chromium.org/p/webrtc/issues/detail?id=7815\n // Note: we rely on the high-level addTrack/dtmf shim to\n // create the sender with a dtmf sender.\n oldStream.addTrack(track);\n\n // Trigger ONN async.\n Promise.resolve().then(() => {\n this.dispatchEvent(new Event('negotiationneeded'));\n });\n } else {\n const newStream = new window.MediaStream([track]);\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n this.addStream(newStream);\n }\n return this.getSenders().find(s => s.track === track);\n };\n\n // replace the internal stream id with the external one and\n // vice versa.\n function replaceInternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(internalStream.id, 'g'),\n externalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n function replaceExternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(externalStream.id, 'g'),\n internalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n ['createOffer', 'createAnswer'].forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n const args = arguments;\n const isLegacyCall = arguments.length &&\n typeof arguments[0] === 'function';\n if (isLegacyCall) {\n return nativeMethod.apply(this, [\n (description) => {\n const desc = replaceInternalStreamId(this, description);\n args[0].apply(null, [desc]);\n },\n (err) => {\n if (args[1]) {\n args[1].apply(null, err);\n }\n }, arguments[2]\n ]);\n }\n return nativeMethod.apply(this, arguments)\n .then(description => replaceInternalStreamId(this, description));\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n\n const origSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n if (!arguments.length || !arguments[0].type) {\n return origSetLocalDescription.apply(this, arguments);\n }\n arguments[0] = replaceExternalStreamId(this, arguments[0]);\n return origSetLocalDescription.apply(this, arguments);\n };\n\n // TODO: mangle getStats: https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamstats-streamidentifier\n\n const origLocalDescription = Object.getOwnPropertyDescriptor(\n window.RTCPeerConnection.prototype, 'localDescription');\n Object.defineProperty(window.RTCPeerConnection.prototype,\n 'localDescription', {\n get() {\n const description = origLocalDescription.get.apply(this);\n if (description.type === '') {\n return description;\n }\n return replaceInternalStreamId(this, description);\n }\n });\n\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n // We can not yet check for sender instanceof RTCRtpSender\n // since we shim RTPSender. So we check if sender._pc is set.\n if (!sender._pc) {\n throw new DOMException('Argument 1 of RTCPeerConnection.removeTrack ' +\n 'does not implement interface RTCRtpSender.', 'TypeError');\n }\n const isLocal = sender._pc === this;\n if (!isLocal) {\n throw new DOMException('Sender was not created by this connection.',\n 'InvalidAccessError');\n }\n\n // Search for the native stream the senders track belongs to.\n this._streams = this._streams || {};\n let stream;\n Object.keys(this._streams).forEach(streamid => {\n const hasTrack = this._streams[streamid].getTracks()\n .find(track => sender.track === track);\n if (hasTrack) {\n stream = this._streams[streamid];\n }\n });\n\n if (stream) {\n if (stream.getTracks().length === 1) {\n // if this is the last track of the stream, remove the stream. This\n // takes care of any shimmed _senders.\n this.removeStream(this._reverseStreams[stream.id]);\n } else {\n // relying on the same odd chrome behaviour as above.\n stream.removeTrack(sender.track);\n }\n this.dispatchEvent(new Event('negotiationneeded'));\n }\n };\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (!window.RTCPeerConnection && window.webkitRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.webkitRTCPeerConnection;\n }\n if (!window.RTCPeerConnection) {\n return;\n }\n\n // shim implicit creation of RTCSessionDescription/RTCIceCandidate\n if (browserDetails.version < 53) {\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n}\n\n// Attempt to fix ONN in plan-b mode.\nexport function fixNegotiationNeeded(window, browserDetails) {\n utils.wrapPeerConnectionEvent(window, 'negotiationneeded', e => {\n const pc = e.target;\n if (browserDetails.version < 72 || (pc.getConfiguration &&\n pc.getConfiguration().sdpSemantics === 'plan-b')) {\n if (pc.signalingState !== 'stable') {\n return;\n }\n }\n return e;\n });\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n const MediaStreamTrack = window && window.MediaStreamTrack;\n\n navigator.getUserMedia = function(constraints, onSuccess, onError) {\n // Replace Firefox 44+'s deprecation warning with unprefixed version.\n utils.deprecated('navigator.getUserMedia',\n 'navigator.mediaDevices.getUserMedia');\n navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);\n };\n\n if (!(browserDetails.version > 55 &&\n 'autoGainControl' in navigator.mediaDevices.getSupportedConstraints())) {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n\n const nativeGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(c) {\n if (typeof c === 'object' && typeof c.audio === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c.audio, 'autoGainControl', 'mozAutoGainControl');\n remap(c.audio, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeGetUserMedia(c);\n };\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.getSettings) {\n const nativeGetSettings = MediaStreamTrack.prototype.getSettings;\n MediaStreamTrack.prototype.getSettings = function() {\n const obj = nativeGetSettings.apply(this, arguments);\n remap(obj, 'mozAutoGainControl', 'autoGainControl');\n remap(obj, 'mozNoiseSuppression', 'noiseSuppression');\n return obj;\n };\n }\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.applyConstraints) {\n const nativeApplyConstraints =\n MediaStreamTrack.prototype.applyConstraints;\n MediaStreamTrack.prototype.applyConstraints = function(c) {\n if (this.kind === 'audio' && typeof c === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c, 'autoGainControl', 'mozAutoGainControl');\n remap(c, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeApplyConstraints.apply(this, [c]);\n };\n }\n }\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nexport function shimGetDisplayMedia(window, preferredMediaSource) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n if (!(constraints && constraints.video)) {\n const err = new DOMException('getDisplayMedia without video ' +\n 'constraints is undefined');\n err.name = 'NotFoundError';\n // from https://heycam.github.io/webidl/#idl-DOMException-error-names\n err.code = 8;\n return Promise.reject(err);\n }\n if (constraints.video === true) {\n constraints.video = {mediaSource: preferredMediaSource};\n } else {\n constraints.video.mediaSource = preferredMediaSource;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCTrackEvent &&\n ('receiver' in window.RTCTrackEvent.prototype) &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (typeof window !== 'object' ||\n !(window.RTCPeerConnection || window.mozRTCPeerConnection)) {\n return; // probably media.peerconnection.enabled=false in about:config\n }\n if (!window.RTCPeerConnection && window.mozRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.mozRTCPeerConnection;\n }\n\n if (browserDetails.version < 53) {\n // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n\n const modernStatsTypes = {\n inboundrtp: 'inbound-rtp',\n outboundrtp: 'outbound-rtp',\n candidatepair: 'candidate-pair',\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n };\n\n const nativeGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n return nativeGetStats.apply(this, [selector || null])\n .then(stats => {\n if (browserDetails.version < 53 && !onSucc) {\n // Shim only promise getStats with spec-hyphens in type names\n // Leave callback version alone; misc old uses of forEach before Map\n try {\n stats.forEach(stat => {\n stat.type = modernStatsTypes[stat.type] || stat.type;\n });\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n // Avoid TypeError: \"type\" is read-only, in old versions. 34-43ish\n stats.forEach((stat, i) => {\n stats.set(i, Object.assign({}, stat, {\n type: modernStatsTypes[stat.type] || stat.type\n }));\n });\n }\n }\n return stats;\n })\n .then(onSucc, onErr);\n };\n}\n\nexport function shimSenderGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpSender.prototype) {\n return;\n }\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n return this.track ? this._pc.getStats(this.track) :\n Promise.resolve(new Map());\n };\n}\n\nexport function shimReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpReceiver.prototype) {\n return;\n }\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers = function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n return this._pc.getStats(this.track);\n };\n}\n\nexport function shimRemoveStream(window) {\n if (!window.RTCPeerConnection ||\n 'removeStream' in window.RTCPeerConnection.prototype) {\n return;\n }\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n utils.deprecated('removeStream', 'removeTrack');\n this.getSenders().forEach(sender => {\n if (sender.track && stream.getTracks().includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n}\n\nexport function shimRTCDataChannel(window) {\n // rename DataChannel to RTCDataChannel (native fix in FF60):\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1173851\n if (window.DataChannel && !window.RTCDataChannel) {\n window.RTCDataChannel = window.DataChannel;\n }\n}\n\nexport function shimAddTransceiver(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origAddTransceiver = window.RTCPeerConnection.prototype.addTransceiver;\n if (origAddTransceiver) {\n window.RTCPeerConnection.prototype.addTransceiver =\n function addTransceiver() {\n this.setParametersPromises = [];\n const initParameters = arguments[1];\n const shouldPerformCheck = initParameters &&\n 'sendEncodings' in initParameters;\n if (shouldPerformCheck) {\n // If sendEncodings params are provided, validate grammar\n initParameters.sendEncodings.forEach((encodingParam) => {\n if ('rid' in encodingParam) {\n const ridRegex = /^[a-z0-9]{0,16}$/i;\n if (!ridRegex.test(encodingParam.rid)) {\n throw new TypeError('Invalid RID value provided.');\n }\n }\n if ('scaleResolutionDownBy' in encodingParam) {\n if (!(parseFloat(encodingParam.scaleResolutionDownBy) >= 1.0)) {\n throw new RangeError('scale_resolution_down_by must be >= 1.0');\n }\n }\n if ('maxFramerate' in encodingParam) {\n if (!(parseFloat(encodingParam.maxFramerate) >= 0)) {\n throw new RangeError('max_framerate must be >= 0.0');\n }\n }\n });\n }\n const transceiver = origAddTransceiver.apply(this, arguments);\n if (shouldPerformCheck) {\n // Check if the init options were applied. If not we do this in an\n // asynchronous way and save the promise reference in a global object.\n // This is an ugly hack, but at the same time is way more robust than\n // checking the sender parameters before and after the createOffer\n // Also note that after the createoffer we are not 100% sure that\n // the params were asynchronously applied so we might miss the\n // opportunity to recreate offer.\n const {sender} = transceiver;\n const params = sender.getParameters();\n if (!('encodings' in params) ||\n // Avoid being fooled by patched getParameters() below.\n (params.encodings.length === 1 &&\n Object.keys(params.encodings[0]).length === 0)) {\n params.encodings = initParameters.sendEncodings;\n sender.sendEncodings = initParameters.sendEncodings;\n this.setParametersPromises.push(sender.setParameters(params)\n .then(() => {\n delete sender.sendEncodings;\n }).catch(() => {\n delete sender.sendEncodings;\n })\n );\n }\n }\n return transceiver;\n };\n }\n}\n\nexport function shimGetParameters(window) {\n if (!(typeof window === 'object' && window.RTCRtpSender)) {\n return;\n }\n const origGetParameters = window.RTCRtpSender.prototype.getParameters;\n if (origGetParameters) {\n window.RTCRtpSender.prototype.getParameters =\n function getParameters() {\n const params = origGetParameters.apply(this, arguments);\n if (!('encodings' in params)) {\n params.encodings = [].concat(this.sendEncodings || [{}]);\n }\n return params;\n };\n }\n}\n\nexport function shimCreateOffer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer = function createOffer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateOffer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimCreateAnswer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateAnswer = window.RTCPeerConnection.prototype.createAnswer;\n window.RTCPeerConnection.prototype.createAnswer = function createAnswer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateAnswer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateAnswer.apply(this, arguments);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n'use strict';\nimport * as utils from '../utils';\n\nexport function shimLocalStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getLocalStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n return this._localStreams;\n };\n }\n if (!('addStream' in window.RTCPeerConnection.prototype)) {\n const _addTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n // Try to emulate Chrome's behaviour of adding in audio-video order.\n // Safari orders by track id.\n stream.getAudioTracks().forEach(track => _addTrack.call(this, track,\n stream));\n stream.getVideoTracks().forEach(track => _addTrack.call(this, track,\n stream));\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, ...streams) {\n if (streams) {\n streams.forEach((stream) => {\n if (!this._localStreams) {\n this._localStreams = [stream];\n } else if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n });\n }\n return _addTrack.apply(this, arguments);\n };\n }\n if (!('removeStream' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n const index = this._localStreams.indexOf(stream);\n if (index === -1) {\n return;\n }\n this._localStreams.splice(index, 1);\n const tracks = stream.getTracks();\n this.getSenders().forEach(sender => {\n if (tracks.includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n }\n}\n\nexport function shimRemoteStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getRemoteStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getRemoteStreams =\n function getRemoteStreams() {\n return this._remoteStreams ? this._remoteStreams : [];\n };\n }\n if (!('onaddstream' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'onaddstream', {\n get() {\n return this._onaddstream;\n },\n set(f) {\n if (this._onaddstream) {\n this.removeEventListener('addstream', this._onaddstream);\n this.removeEventListener('track', this._onaddstreampoly);\n }\n this.addEventListener('addstream', this._onaddstream = f);\n this.addEventListener('track', this._onaddstreampoly = (e) => {\n e.streams.forEach(stream => {\n if (!this._remoteStreams) {\n this._remoteStreams = [];\n }\n if (this._remoteStreams.includes(stream)) {\n return;\n }\n this._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n this.dispatchEvent(event);\n });\n });\n }\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n const pc = this;\n if (!this._onaddstreampoly) {\n this.addEventListener('track', this._onaddstreampoly = function(e) {\n e.streams.forEach(stream => {\n if (!pc._remoteStreams) {\n pc._remoteStreams = [];\n }\n if (pc._remoteStreams.indexOf(stream) >= 0) {\n return;\n }\n pc._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n pc.dispatchEvent(event);\n });\n });\n }\n return origSetRemoteDescription.apply(pc, arguments);\n };\n }\n}\n\nexport function shimCallbacksAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n const prototype = window.RTCPeerConnection.prototype;\n const origCreateOffer = prototype.createOffer;\n const origCreateAnswer = prototype.createAnswer;\n const setLocalDescription = prototype.setLocalDescription;\n const setRemoteDescription = prototype.setRemoteDescription;\n const addIceCandidate = prototype.addIceCandidate;\n\n prototype.createOffer =\n function createOffer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateOffer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n prototype.createAnswer =\n function createAnswer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateAnswer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n let withCallback = function(description, successCallback, failureCallback) {\n const promise = setLocalDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setLocalDescription = withCallback;\n\n withCallback = function(description, successCallback, failureCallback) {\n const promise = setRemoteDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setRemoteDescription = withCallback;\n\n withCallback = function(candidate, successCallback, failureCallback) {\n const promise = addIceCandidate.apply(this, [candidate]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.addIceCandidate = withCallback;\n}\n\nexport function shimGetUserMedia(window) {\n const navigator = window && window.navigator;\n\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n // shim not needed in Safari 12.1\n const mediaDevices = navigator.mediaDevices;\n const _getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);\n navigator.mediaDevices.getUserMedia = (constraints) => {\n return _getUserMedia(shimConstraints(constraints));\n };\n }\n\n if (!navigator.getUserMedia && navigator.mediaDevices &&\n navigator.mediaDevices.getUserMedia) {\n navigator.getUserMedia = function getUserMedia(constraints, cb, errcb) {\n navigator.mediaDevices.getUserMedia(constraints)\n .then(cb, errcb);\n }.bind(navigator);\n }\n}\n\nexport function shimConstraints(constraints) {\n if (constraints && constraints.video !== undefined) {\n return Object.assign({},\n constraints,\n {video: utils.compactObject(constraints.video)}\n );\n }\n\n return constraints;\n}\n\nexport function shimRTCIceServerUrls(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // migrate from non-spec RTCIceServer.url to RTCIceServer.urls\n const OrigPeerConnection = window.RTCPeerConnection;\n window.RTCPeerConnection =\n function RTCPeerConnection(pcConfig, pcConstraints) {\n if (pcConfig && pcConfig.iceServers) {\n const newIceServers = [];\n for (let i = 0; i < pcConfig.iceServers.length; i++) {\n let server = pcConfig.iceServers[i];\n if (!server.hasOwnProperty('urls') &&\n server.hasOwnProperty('url')) {\n utils.deprecated('RTCIceServer.url', 'RTCIceServer.urls');\n server = JSON.parse(JSON.stringify(server));\n server.urls = server.url;\n delete server.url;\n newIceServers.push(server);\n } else {\n newIceServers.push(pcConfig.iceServers[i]);\n }\n }\n pcConfig.iceServers = newIceServers;\n }\n return new OrigPeerConnection(pcConfig, pcConstraints);\n };\n window.RTCPeerConnection.prototype = OrigPeerConnection.prototype;\n // wrap static methods. Currently just generateCertificate.\n if ('generateCertificate' in OrigPeerConnection) {\n Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {\n get() {\n return OrigPeerConnection.generateCertificate;\n }\n });\n }\n}\n\nexport function shimTrackEventTransceiver(window) {\n // Add event.transceiver member over deprecated event.receiver\n if (typeof window === 'object' && window.RTCTrackEvent &&\n 'receiver' in window.RTCTrackEvent.prototype &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimCreateOfferLegacy(window) {\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer =\n function createOffer(offerOptions) {\n if (offerOptions) {\n if (typeof offerOptions.offerToReceiveAudio !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveAudio =\n !!offerOptions.offerToReceiveAudio;\n }\n const audioTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'audio');\n if (offerOptions.offerToReceiveAudio === false && audioTransceiver) {\n if (audioTransceiver.direction === 'sendrecv') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('sendonly');\n } else {\n audioTransceiver.direction = 'sendonly';\n }\n } else if (audioTransceiver.direction === 'recvonly') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('inactive');\n } else {\n audioTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveAudio === true &&\n !audioTransceiver) {\n this.addTransceiver('audio', {direction: 'recvonly'});\n }\n\n if (typeof offerOptions.offerToReceiveVideo !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveVideo =\n !!offerOptions.offerToReceiveVideo;\n }\n const videoTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'video');\n if (offerOptions.offerToReceiveVideo === false && videoTransceiver) {\n if (videoTransceiver.direction === 'sendrecv') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('sendonly');\n } else {\n videoTransceiver.direction = 'sendonly';\n }\n } else if (videoTransceiver.direction === 'recvonly') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('inactive');\n } else {\n videoTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveVideo === true &&\n !videoTransceiver) {\n this.addTransceiver('video', {direction: 'recvonly'});\n }\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimAudioContext(window) {\n if (typeof window !== 'object' || window.AudioContext) {\n return;\n }\n window.AudioContext = window.webkitAudioContext;\n}\n\n","/* eslint-env node */\n'use strict';\n\n// SDP helpers.\nconst SDPUtils = {};\n\n// Generate an alphanumeric identifier for cname or mids.\n// TODO: use UUIDs instead? https://gist.github.com/jed/982883\nSDPUtils.generateIdentifier = function() {\n return Math.random().toString(36).substr(2, 10);\n};\n\n// The RTCP CNAME used by all peerconnections from the same JS.\nSDPUtils.localCName = SDPUtils.generateIdentifier();\n\n// Splits SDP into lines, dealing with both CRLF and LF.\nSDPUtils.splitLines = function(blob) {\n return blob.trim().split('\\n').map(line => line.trim());\n};\n// Splits SDP into sessionpart and mediasections. Ensures CRLF.\nSDPUtils.splitSections = function(blob) {\n const parts = blob.split('\\nm=');\n return parts.map((part, index) => (index > 0 ?\n 'm=' + part : part).trim() + '\\r\\n');\n};\n\n// Returns the session description.\nSDPUtils.getDescription = function(blob) {\n const sections = SDPUtils.splitSections(blob);\n return sections && sections[0];\n};\n\n// Returns the individual media sections.\nSDPUtils.getMediaSections = function(blob) {\n const sections = SDPUtils.splitSections(blob);\n sections.shift();\n return sections;\n};\n\n// Returns lines that start with a certain prefix.\nSDPUtils.matchPrefix = function(blob, prefix) {\n return SDPUtils.splitLines(blob).filter(line => line.indexOf(prefix) === 0);\n};\n\n// Parses an ICE candidate line. Sample input:\n// candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8\n// rport 55996\"\n// Input can be prefixed with a=.\nSDPUtils.parseCandidate = function(line) {\n let parts;\n // Parse both variants.\n if (line.indexOf('a=candidate:') === 0) {\n parts = line.substring(12).split(' ');\n } else {\n parts = line.substring(10).split(' ');\n }\n\n const candidate = {\n foundation: parts[0],\n component: {1: 'rtp', 2: 'rtcp'}[parts[1]] || parts[1],\n protocol: parts[2].toLowerCase(),\n priority: parseInt(parts[3], 10),\n ip: parts[4],\n address: parts[4], // address is an alias for ip.\n port: parseInt(parts[5], 10),\n // skip parts[6] == 'typ'\n type: parts[7],\n };\n\n for (let i = 8; i < parts.length; i += 2) {\n switch (parts[i]) {\n case 'raddr':\n candidate.relatedAddress = parts[i + 1];\n break;\n case 'rport':\n candidate.relatedPort = parseInt(parts[i + 1], 10);\n break;\n case 'tcptype':\n candidate.tcpType = parts[i + 1];\n break;\n case 'ufrag':\n candidate.ufrag = parts[i + 1]; // for backward compatibility.\n candidate.usernameFragment = parts[i + 1];\n break;\n default: // extension handling, in particular ufrag. Don't overwrite.\n if (candidate[parts[i]] === undefined) {\n candidate[parts[i]] = parts[i + 1];\n }\n break;\n }\n }\n return candidate;\n};\n\n// Translates a candidate object into SDP candidate attribute.\n// This does not include the a= prefix!\nSDPUtils.writeCandidate = function(candidate) {\n const sdp = [];\n sdp.push(candidate.foundation);\n\n const component = candidate.component;\n if (component === 'rtp') {\n sdp.push(1);\n } else if (component === 'rtcp') {\n sdp.push(2);\n } else {\n sdp.push(component);\n }\n sdp.push(candidate.protocol.toUpperCase());\n sdp.push(candidate.priority);\n sdp.push(candidate.address || candidate.ip);\n sdp.push(candidate.port);\n\n const type = candidate.type;\n sdp.push('typ');\n sdp.push(type);\n if (type !== 'host' && candidate.relatedAddress &&\n candidate.relatedPort) {\n sdp.push('raddr');\n sdp.push(candidate.relatedAddress);\n sdp.push('rport');\n sdp.push(candidate.relatedPort);\n }\n if (candidate.tcpType && candidate.protocol.toLowerCase() === 'tcp') {\n sdp.push('tcptype');\n sdp.push(candidate.tcpType);\n }\n if (candidate.usernameFragment || candidate.ufrag) {\n sdp.push('ufrag');\n sdp.push(candidate.usernameFragment || candidate.ufrag);\n }\n return 'candidate:' + sdp.join(' ');\n};\n\n// Parses an ice-options line, returns an array of option tags.\n// Sample input:\n// a=ice-options:foo bar\nSDPUtils.parseIceOptions = function(line) {\n return line.substr(14).split(' ');\n};\n\n// Parses a rtpmap line, returns RTCRtpCoddecParameters. Sample input:\n// a=rtpmap:111 opus/48000/2\nSDPUtils.parseRtpMap = function(line) {\n let parts = line.substr(9).split(' ');\n const parsed = {\n payloadType: parseInt(parts.shift(), 10), // was: id\n };\n\n parts = parts[0].split('/');\n\n parsed.name = parts[0];\n parsed.clockRate = parseInt(parts[1], 10); // was: clockrate\n parsed.channels = parts.length === 3 ? parseInt(parts[2], 10) : 1;\n // legacy alias, got renamed back to channels in ORTC.\n parsed.numChannels = parsed.channels;\n return parsed;\n};\n\n// Generates a rtpmap line from RTCRtpCodecCapability or\n// RTCRtpCodecParameters.\nSDPUtils.writeRtpMap = function(codec) {\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n const channels = codec.channels || codec.numChannels || 1;\n return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate +\n (channels !== 1 ? '/' + channels : '') + '\\r\\n';\n};\n\n// Parses a extmap line (headerextension from RFC 5285). Sample input:\n// a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\n// a=extmap:2/sendonly urn:ietf:params:rtp-hdrext:toffset\nSDPUtils.parseExtmap = function(line) {\n const parts = line.substr(9).split(' ');\n return {\n id: parseInt(parts[0], 10),\n direction: parts[0].indexOf('/') > 0 ? parts[0].split('/')[1] : 'sendrecv',\n uri: parts[1],\n };\n};\n\n// Generates an extmap line from RTCRtpHeaderExtensionParameters or\n// RTCRtpHeaderExtension.\nSDPUtils.writeExtmap = function(headerExtension) {\n return 'a=extmap:' + (headerExtension.id || headerExtension.preferredId) +\n (headerExtension.direction && headerExtension.direction !== 'sendrecv'\n ? '/' + headerExtension.direction\n : '') +\n ' ' + headerExtension.uri + '\\r\\n';\n};\n\n// Parses a fmtp line, returns dictionary. Sample input:\n// a=fmtp:96 vbr=on;cng=on\n// Also deals with vbr=on; cng=on\nSDPUtils.parseFmtp = function(line) {\n const parsed = {};\n let kv;\n const parts = line.substr(line.indexOf(' ') + 1).split(';');\n for (let j = 0; j < parts.length; j++) {\n kv = parts[j].trim().split('=');\n parsed[kv[0].trim()] = kv[1];\n }\n return parsed;\n};\n\n// Generates a fmtp line from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeFmtp = function(codec) {\n let line = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.parameters && Object.keys(codec.parameters).length) {\n const params = [];\n Object.keys(codec.parameters).forEach(param => {\n if (codec.parameters[param] !== undefined) {\n params.push(param + '=' + codec.parameters[param]);\n } else {\n params.push(param);\n }\n });\n line += 'a=fmtp:' + pt + ' ' + params.join(';') + '\\r\\n';\n }\n return line;\n};\n\n// Parses a rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:\n// a=rtcp-fb:98 nack rpsi\nSDPUtils.parseRtcpFb = function(line) {\n const parts = line.substr(line.indexOf(' ') + 1).split(' ');\n return {\n type: parts.shift(),\n parameter: parts.join(' '),\n };\n};\n\n// Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeRtcpFb = function(codec) {\n let lines = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.rtcpFeedback && codec.rtcpFeedback.length) {\n // FIXME: special handling for trr-int?\n codec.rtcpFeedback.forEach(fb => {\n lines += 'a=rtcp-fb:' + pt + ' ' + fb.type +\n (fb.parameter && fb.parameter.length ? ' ' + fb.parameter : '') +\n '\\r\\n';\n });\n }\n return lines;\n};\n\n// Parses a RFC 5576 ssrc media attribute. Sample input:\n// a=ssrc:3735928559 cname:something\nSDPUtils.parseSsrcMedia = function(line) {\n const sp = line.indexOf(' ');\n const parts = {\n ssrc: parseInt(line.substr(7, sp - 7), 10),\n };\n const colon = line.indexOf(':', sp);\n if (colon > -1) {\n parts.attribute = line.substr(sp + 1, colon - sp - 1);\n parts.value = line.substr(colon + 1);\n } else {\n parts.attribute = line.substr(sp + 1);\n }\n return parts;\n};\n\n// Parse a ssrc-group line (see RFC 5576). Sample input:\n// a=ssrc-group:semantics 12 34\nSDPUtils.parseSsrcGroup = function(line) {\n const parts = line.substr(13).split(' ');\n return {\n semantics: parts.shift(),\n ssrcs: parts.map(ssrc => parseInt(ssrc, 10)),\n };\n};\n\n// Extracts the MID (RFC 5888) from a media section.\n// Returns the MID or undefined if no mid line was found.\nSDPUtils.getMid = function(mediaSection) {\n const mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:')[0];\n if (mid) {\n return mid.substr(6);\n }\n};\n\n// Parses a fingerprint line for DTLS-SRTP.\nSDPUtils.parseFingerprint = function(line) {\n const parts = line.substr(14).split(' ');\n return {\n algorithm: parts[0].toLowerCase(), // algorithm is case-sensitive in Edge.\n value: parts[1].toUpperCase(), // the definition is upper-case in RFC 4572.\n };\n};\n\n// Extracts DTLS parameters from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the fingerprint line as input. See also getIceParameters.\nSDPUtils.getDtlsParameters = function(mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=fingerprint:');\n // Note: a=setup line is ignored since we use the 'auto' role in Edge.\n return {\n role: 'auto',\n fingerprints: lines.map(SDPUtils.parseFingerprint),\n };\n};\n\n// Serializes DTLS parameters to SDP.\nSDPUtils.writeDtlsParameters = function(params, setupType) {\n let sdp = 'a=setup:' + setupType + '\\r\\n';\n params.fingerprints.forEach(fp => {\n sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\\r\\n';\n });\n return sdp;\n};\n\n// Parses a=crypto lines into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#dictionary-rtcsrtpsdesparameters-members\nSDPUtils.parseCryptoLine = function(line) {\n const parts = line.substr(9).split(' ');\n return {\n tag: parseInt(parts[0], 10),\n cryptoSuite: parts[1],\n keyParams: parts[2],\n sessionParams: parts.slice(3),\n };\n};\n\nSDPUtils.writeCryptoLine = function(parameters) {\n return 'a=crypto:' + parameters.tag + ' ' +\n parameters.cryptoSuite + ' ' +\n (typeof parameters.keyParams === 'object'\n ? SDPUtils.writeCryptoKeyParams(parameters.keyParams)\n : parameters.keyParams) +\n (parameters.sessionParams ? ' ' + parameters.sessionParams.join(' ') : '') +\n '\\r\\n';\n};\n\n// Parses the crypto key parameters into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#rtcsrtpkeyparam*\nSDPUtils.parseCryptoKeyParams = function(keyParams) {\n if (keyParams.indexOf('inline:') !== 0) {\n return null;\n }\n const parts = keyParams.substr(7).split('|');\n return {\n keyMethod: 'inline',\n keySalt: parts[0],\n lifeTime: parts[1],\n mkiValue: parts[2] ? parts[2].split(':')[0] : undefined,\n mkiLength: parts[2] ? parts[2].split(':')[1] : undefined,\n };\n};\n\nSDPUtils.writeCryptoKeyParams = function(keyParams) {\n return keyParams.keyMethod + ':'\n + keyParams.keySalt +\n (keyParams.lifeTime ? '|' + keyParams.lifeTime : '') +\n (keyParams.mkiValue && keyParams.mkiLength\n ? '|' + keyParams.mkiValue + ':' + keyParams.mkiLength\n : '');\n};\n\n// Extracts all SDES parameters.\nSDPUtils.getCryptoParameters = function(mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=crypto:');\n return lines.map(SDPUtils.parseCryptoLine);\n};\n\n// Parses ICE information from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the ice-ufrag and ice-pwd lines as input.\nSDPUtils.getIceParameters = function(mediaSection, sessionpart) {\n const ufrag = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-ufrag:')[0];\n const pwd = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-pwd:')[0];\n if (!(ufrag && pwd)) {\n return null;\n }\n return {\n usernameFragment: ufrag.substr(12),\n password: pwd.substr(10),\n };\n};\n\n// Serializes ICE parameters to SDP.\nSDPUtils.writeIceParameters = function(params) {\n let sdp = 'a=ice-ufrag:' + params.usernameFragment + '\\r\\n' +\n 'a=ice-pwd:' + params.password + '\\r\\n';\n if (params.iceLite) {\n sdp += 'a=ice-lite\\r\\n';\n }\n return sdp;\n};\n\n// Parses the SDP media section and returns RTCRtpParameters.\nSDPUtils.parseRtpParameters = function(mediaSection) {\n const description = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: [],\n rtcp: [],\n };\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n for (let i = 3; i < mline.length; i++) { // find all codecs from mline[3..]\n const pt = mline[i];\n const rtpmapline = SDPUtils.matchPrefix(\n mediaSection, 'a=rtpmap:' + pt + ' ')[0];\n if (rtpmapline) {\n const codec = SDPUtils.parseRtpMap(rtpmapline);\n const fmtps = SDPUtils.matchPrefix(\n mediaSection, 'a=fmtp:' + pt + ' ');\n // Only the first a=fmtp:<pt> is considered.\n codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};\n codec.rtcpFeedback = SDPUtils.matchPrefix(\n mediaSection, 'a=rtcp-fb:' + pt + ' ')\n .map(SDPUtils.parseRtcpFb);\n description.codecs.push(codec);\n // parse FEC mechanisms from rtpmap lines.\n switch (codec.name.toUpperCase()) {\n case 'RED':\n case 'ULPFEC':\n description.fecMechanisms.push(codec.name.toUpperCase());\n break;\n default: // only RED and ULPFEC are recognized as FEC mechanisms.\n break;\n }\n }\n }\n SDPUtils.matchPrefix(mediaSection, 'a=extmap:').forEach(line => {\n description.headerExtensions.push(SDPUtils.parseExtmap(line));\n });\n // FIXME: parse rtcp.\n return description;\n};\n\n// Generates parts of the SDP media section describing the capabilities /\n// parameters.\nSDPUtils.writeRtpDescription = function(kind, caps) {\n let sdp = '';\n\n // Build the mline.\n sdp += 'm=' + kind + ' ';\n sdp += caps.codecs.length > 0 ? '9' : '0'; // reject if no codecs.\n sdp += ' UDP/TLS/RTP/SAVPF ';\n sdp += caps.codecs.map(codec => {\n if (codec.preferredPayloadType !== undefined) {\n return codec.preferredPayloadType;\n }\n return codec.payloadType;\n }).join(' ') + '\\r\\n';\n\n sdp += 'c=IN IP4 0.0.0.0\\r\\n';\n sdp += 'a=rtcp:9 IN IP4 0.0.0.0\\r\\n';\n\n // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.\n caps.codecs.forEach(codec => {\n sdp += SDPUtils.writeRtpMap(codec);\n sdp += SDPUtils.writeFmtp(codec);\n sdp += SDPUtils.writeRtcpFb(codec);\n });\n let maxptime = 0;\n caps.codecs.forEach(codec => {\n if (codec.maxptime > maxptime) {\n maxptime = codec.maxptime;\n }\n });\n if (maxptime > 0) {\n sdp += 'a=maxptime:' + maxptime + '\\r\\n';\n }\n\n if (caps.headerExtensions) {\n caps.headerExtensions.forEach(extension => {\n sdp += SDPUtils.writeExtmap(extension);\n });\n }\n // FIXME: write fecMechanisms.\n return sdp;\n};\n\n// Parses the SDP media section and returns an array of\n// RTCRtpEncodingParameters.\nSDPUtils.parseRtpEncodingParameters = function(mediaSection) {\n const encodingParameters = [];\n const description = SDPUtils.parseRtpParameters(mediaSection);\n const hasRed = description.fecMechanisms.indexOf('RED') !== -1;\n const hasUlpfec = description.fecMechanisms.indexOf('ULPFEC') !== -1;\n\n // filter a=ssrc:... cname:, ignore PlanB-msid\n const ssrcs = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(parts => parts.attribute === 'cname');\n const primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;\n let secondarySsrc;\n\n const flows = SDPUtils.matchPrefix(mediaSection, 'a=ssrc-group:FID')\n .map(line => {\n const parts = line.substr(17).split(' ');\n return parts.map(part => parseInt(part, 10));\n });\n if (flows.length > 0 && flows[0].length > 1 && flows[0][0] === primarySsrc) {\n secondarySsrc = flows[0][1];\n }\n\n description.codecs.forEach(codec => {\n if (codec.name.toUpperCase() === 'RTX' && codec.parameters.apt) {\n let encParam = {\n ssrc: primarySsrc,\n codecPayloadType: parseInt(codec.parameters.apt, 10),\n };\n if (primarySsrc && secondarySsrc) {\n encParam.rtx = {ssrc: secondarySsrc};\n }\n encodingParameters.push(encParam);\n if (hasRed) {\n encParam = JSON.parse(JSON.stringify(encParam));\n encParam.fec = {\n ssrc: primarySsrc,\n mechanism: hasUlpfec ? 'red+ulpfec' : 'red',\n };\n encodingParameters.push(encParam);\n }\n }\n });\n if (encodingParameters.length === 0 && primarySsrc) {\n encodingParameters.push({\n ssrc: primarySsrc,\n });\n }\n\n // we support both b=AS and b=TIAS but interpret AS as TIAS.\n let bandwidth = SDPUtils.matchPrefix(mediaSection, 'b=');\n if (bandwidth.length) {\n if (bandwidth[0].indexOf('b=TIAS:') === 0) {\n bandwidth = parseInt(bandwidth[0].substr(7), 10);\n } else if (bandwidth[0].indexOf('b=AS:') === 0) {\n // use formula from JSEP to convert b=AS to TIAS value.\n bandwidth = parseInt(bandwidth[0].substr(5), 10) * 1000 * 0.95\n - (50 * 40 * 8);\n } else {\n bandwidth = undefined;\n }\n encodingParameters.forEach(params => {\n params.maxBitrate = bandwidth;\n });\n }\n return encodingParameters;\n};\n\n// parses http://draft.ortc.org/#rtcrtcpparameters*\nSDPUtils.parseRtcpParameters = function(mediaSection) {\n const rtcpParameters = {};\n\n // Gets the first SSRC. Note that with RTX there might be multiple\n // SSRCs.\n const remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(obj => obj.attribute === 'cname')[0];\n if (remoteSsrc) {\n rtcpParameters.cname = remoteSsrc.value;\n rtcpParameters.ssrc = remoteSsrc.ssrc;\n }\n\n // Edge uses the compound attribute instead of reducedSize\n // compound is !reducedSize\n const rsize = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-rsize');\n rtcpParameters.reducedSize = rsize.length > 0;\n rtcpParameters.compound = rsize.length === 0;\n\n // parses the rtcp-mux attrіbute.\n // Note that Edge does not support unmuxed RTCP.\n const mux = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-mux');\n rtcpParameters.mux = mux.length > 0;\n\n return rtcpParameters;\n};\n\nSDPUtils.writeRtcpParameters = function(rtcpParameters) {\n let sdp = '';\n if (rtcpParameters.reducedSize) {\n sdp += 'a=rtcp-rsize\\r\\n';\n }\n if (rtcpParameters.mux) {\n sdp += 'a=rtcp-mux\\r\\n';\n }\n if (rtcpParameters.ssrc !== undefined && rtcpParameters.cname) {\n sdp += 'a=ssrc:' + rtcpParameters.ssrc +\n ' cname:' + rtcpParameters.cname + '\\r\\n';\n }\n return sdp;\n};\n\n\n// parses either a=msid: or a=ssrc:... msid lines and returns\n// the id of the MediaStream and MediaStreamTrack.\nSDPUtils.parseMsid = function(mediaSection) {\n let parts;\n const spec = SDPUtils.matchPrefix(mediaSection, 'a=msid:');\n if (spec.length === 1) {\n parts = spec[0].substr(7).split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n const planB = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(msidParts => msidParts.attribute === 'msid');\n if (planB.length > 0) {\n parts = planB[0].value.split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n};\n\n// SCTP\n// parses draft-ietf-mmusic-sctp-sdp-26 first and falls back\n// to draft-ietf-mmusic-sctp-sdp-05\nSDPUtils.parseSctpDescription = function(mediaSection) {\n const mline = SDPUtils.parseMLine(mediaSection);\n const maxSizeLine = SDPUtils.matchPrefix(mediaSection, 'a=max-message-size:');\n let maxMessageSize;\n if (maxSizeLine.length > 0) {\n maxMessageSize = parseInt(maxSizeLine[0].substr(19), 10);\n }\n if (isNaN(maxMessageSize)) {\n maxMessageSize = 65536;\n }\n const sctpPort = SDPUtils.matchPrefix(mediaSection, 'a=sctp-port:');\n if (sctpPort.length > 0) {\n return {\n port: parseInt(sctpPort[0].substr(12), 10),\n protocol: mline.fmt,\n maxMessageSize,\n };\n }\n const sctpMapLines = SDPUtils.matchPrefix(mediaSection, 'a=sctpmap:');\n if (sctpMapLines.length > 0) {\n const parts = sctpMapLines[0]\n .substr(10)\n .split(' ');\n return {\n port: parseInt(parts[0], 10),\n protocol: parts[1],\n maxMessageSize,\n };\n }\n};\n\n// SCTP\n// outputs the draft-ietf-mmusic-sctp-sdp-26 version that all browsers\n// support by now receiving in this format, unless we originally parsed\n// as the draft-ietf-mmusic-sctp-sdp-05 format (indicated by the m-line\n// protocol of DTLS/SCTP -- without UDP/ or TCP/)\nSDPUtils.writeSctpDescription = function(media, sctp) {\n let output = [];\n if (media.protocol !== 'DTLS/SCTP') {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.protocol + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctp-port:' + sctp.port + '\\r\\n',\n ];\n } else {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.port + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctpmap:' + sctp.port + ' ' + sctp.protocol + ' 65535\\r\\n',\n ];\n }\n if (sctp.maxMessageSize !== undefined) {\n output.push('a=max-message-size:' + sctp.maxMessageSize + '\\r\\n');\n }\n return output.join('');\n};\n\n// Generate a session ID for SDP.\n// https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-20#section-5.2.1\n// recommends using a cryptographically random +ve 64-bit value\n// but right now this should be acceptable and within the right range\nSDPUtils.generateSessionId = function() {\n return Math.random().toString().substr(2, 21);\n};\n\n// Write boiler plate for start of SDP\n// sessId argument is optional - if not supplied it will\n// be generated randomly\n// sessVersion is optional and defaults to 2\n// sessUser is optional and defaults to 'thisisadapterortc'\nSDPUtils.writeSessionBoilerplate = function(sessId, sessVer, sessUser) {\n let sessionId;\n const version = sessVer !== undefined ? sessVer : 2;\n if (sessId) {\n sessionId = sessId;\n } else {\n sessionId = SDPUtils.generateSessionId();\n }\n const user = sessUser || 'thisisadapterortc';\n // FIXME: sess-id should be an NTP timestamp.\n return 'v=0\\r\\n' +\n 'o=' + user + ' ' + sessionId + ' ' + version +\n ' IN IP4 127.0.0.1\\r\\n' +\n 's=-\\r\\n' +\n 't=0 0\\r\\n';\n};\n\n// Gets the direction from the mediaSection or the sessionpart.\nSDPUtils.getDirection = function(mediaSection, sessionpart) {\n // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.\n const lines = SDPUtils.splitLines(mediaSection);\n for (let i = 0; i < lines.length; i++) {\n switch (lines[i]) {\n case 'a=sendrecv':\n case 'a=sendonly':\n case 'a=recvonly':\n case 'a=inactive':\n return lines[i].substr(2);\n default:\n // FIXME: What should happen here?\n }\n }\n if (sessionpart) {\n return SDPUtils.getDirection(sessionpart);\n }\n return 'sendrecv';\n};\n\nSDPUtils.getKind = function(mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n return mline[0].substr(2);\n};\n\nSDPUtils.isRejected = function(mediaSection) {\n return mediaSection.split(' ', 2)[1] === '0';\n};\n\nSDPUtils.parseMLine = function(mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const parts = lines[0].substr(2).split(' ');\n return {\n kind: parts[0],\n port: parseInt(parts[1], 10),\n protocol: parts[2],\n fmt: parts.slice(3).join(' '),\n };\n};\n\nSDPUtils.parseOLine = function(mediaSection) {\n const line = SDPUtils.matchPrefix(mediaSection, 'o=')[0];\n const parts = line.substr(2).split(' ');\n return {\n username: parts[0],\n sessionId: parts[1],\n sessionVersion: parseInt(parts[2], 10),\n netType: parts[3],\n addressType: parts[4],\n address: parts[5],\n };\n};\n\n// a very naive interpretation of a valid SDP.\nSDPUtils.isValidSDP = function(blob) {\n if (typeof blob !== 'string' || blob.length === 0) {\n return false;\n }\n const lines = SDPUtils.splitLines(blob);\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].length < 2 || lines[i].charAt(1) !== '=') {\n return false;\n }\n // TODO: check the modifier a bit more.\n }\n return true;\n};\n\n// Expose public methods.\nif (typeof module === 'object') {\n module.exports = SDPUtils;\n}\n","/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport SDPUtils from 'sdp';\nimport * as utils from './utils';\n\nexport function shimRTCIceCandidate(window) {\n // foundation is arbitrarily chosen as an indicator for full support for\n // https://w3c.github.io/webrtc-pc/#rtcicecandidate-interface\n if (!window.RTCIceCandidate || (window.RTCIceCandidate && 'foundation' in\n window.RTCIceCandidate.prototype)) {\n return;\n }\n\n const NativeRTCIceCandidate = window.RTCIceCandidate;\n window.RTCIceCandidate = function RTCIceCandidate(args) {\n // Remove the a= which shouldn't be part of the candidate string.\n if (typeof args === 'object' && args.candidate &&\n args.candidate.indexOf('a=') === 0) {\n args = JSON.parse(JSON.stringify(args));\n args.candidate = args.candidate.substr(2);\n }\n\n if (args.candidate && args.candidate.length) {\n // Augment the native candidate with the parsed fields.\n const nativeCandidate = new NativeRTCIceCandidate(args);\n const parsedCandidate = SDPUtils.parseCandidate(args.candidate);\n const augmentedCandidate = Object.assign(nativeCandidate,\n parsedCandidate);\n\n // Add a serializer that does not serialize the extra attributes.\n augmentedCandidate.toJSON = function toJSON() {\n return {\n candidate: augmentedCandidate.candidate,\n sdpMid: augmentedCandidate.sdpMid,\n sdpMLineIndex: augmentedCandidate.sdpMLineIndex,\n usernameFragment: augmentedCandidate.usernameFragment,\n };\n };\n return augmentedCandidate;\n }\n return new NativeRTCIceCandidate(args);\n };\n window.RTCIceCandidate.prototype = NativeRTCIceCandidate.prototype;\n\n // Hook up the augmented candidate in onicecandidate and\n // addEventListener('icecandidate', ...)\n utils.wrapPeerConnectionEvent(window, 'icecandidate', e => {\n if (e.candidate) {\n Object.defineProperty(e, 'candidate', {\n value: new window.RTCIceCandidate(e.candidate),\n writable: 'false'\n });\n }\n return e;\n });\n}\n\nexport function shimMaxMessageSize(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n if (!('sctp' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n }\n });\n }\n\n const sctpInDescription = function(description) {\n if (!description || !description.sdp) {\n return false;\n }\n const sections = SDPUtils.splitSections(description.sdp);\n sections.shift();\n return sections.some(mediaSection => {\n const mLine = SDPUtils.parseMLine(mediaSection);\n return mLine && mLine.kind === 'application'\n && mLine.protocol.indexOf('SCTP') !== -1;\n });\n };\n\n const getRemoteFirefoxVersion = function(description) {\n // TODO: Is there a better solution for detecting Firefox?\n const match = description.sdp.match(/mozilla...THIS_IS_SDPARTA-(\\d+)/);\n if (match === null || match.length < 2) {\n return -1;\n }\n const version = parseInt(match[1], 10);\n // Test for NaN (yes, this is ugly)\n return version !== version ? -1 : version;\n };\n\n const getCanSendMaxMessageSize = function(remoteIsFirefox) {\n // Every implementation we know can send at least 64 KiB.\n // Note: Although Chrome is technically able to send up to 256 KiB, the\n // data does not reach the other peer reliably.\n // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=8419\n let canSendMaxMessageSize = 65536;\n if (browserDetails.browser === 'firefox') {\n if (browserDetails.version < 57) {\n if (remoteIsFirefox === -1) {\n // FF < 57 will send in 16 KiB chunks using the deprecated PPID\n // fragmentation.\n canSendMaxMessageSize = 16384;\n } else {\n // However, other FF (and RAWRTC) can reassemble PPID-fragmented\n // messages. Thus, supporting ~2 GiB when sending.\n canSendMaxMessageSize = 2147483637;\n }\n } else if (browserDetails.version < 60) {\n // Currently, all FF >= 57 will reset the remote maximum message size\n // to the default value when a data channel is created at a later\n // stage. :(\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n canSendMaxMessageSize =\n browserDetails.version === 57 ? 65535 : 65536;\n } else {\n // FF >= 60 supports sending ~2 GiB\n canSendMaxMessageSize = 2147483637;\n }\n }\n return canSendMaxMessageSize;\n };\n\n const getMaxMessageSize = function(description, remoteIsFirefox) {\n // Note: 65536 bytes is the default value from the SDP spec. Also,\n // every implementation we know supports receiving 65536 bytes.\n let maxMessageSize = 65536;\n\n // FF 57 has a slightly incorrect default remote max message size, so\n // we need to adjust it here to avoid a failure when sending.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1425697\n if (browserDetails.browser === 'firefox'\n && browserDetails.version === 57) {\n maxMessageSize = 65535;\n }\n\n const match = SDPUtils.matchPrefix(description.sdp,\n 'a=max-message-size:');\n if (match.length > 0) {\n maxMessageSize = parseInt(match[0].substr(19), 10);\n } else if (browserDetails.browser === 'firefox' &&\n remoteIsFirefox !== -1) {\n // If the maximum message size is not present in the remote SDP and\n // both local and remote are Firefox, the remote peer can receive\n // ~2 GiB.\n maxMessageSize = 2147483637;\n }\n return maxMessageSize;\n };\n\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n this._sctp = null;\n // Chrome decided to not expose .sctp in plan-b mode.\n // As usual, adapter.js has to do an 'ugly worakaround'\n // to cover up the mess.\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 76) {\n const {sdpSemantics} = this.getConfiguration();\n if (sdpSemantics === 'plan-b') {\n Object.defineProperty(this, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n if (sctpInDescription(arguments[0])) {\n // Check if the remote is FF.\n const isFirefox = getRemoteFirefoxVersion(arguments[0]);\n\n // Get the maximum message size the local peer is capable of sending\n const canSendMMS = getCanSendMaxMessageSize(isFirefox);\n\n // Get the maximum message size of the remote peer.\n const remoteMMS = getMaxMessageSize(arguments[0], isFirefox);\n\n // Determine final maximum message size\n let maxMessageSize;\n if (canSendMMS === 0 && remoteMMS === 0) {\n maxMessageSize = Number.POSITIVE_INFINITY;\n } else if (canSendMMS === 0 || remoteMMS === 0) {\n maxMessageSize = Math.max(canSendMMS, remoteMMS);\n } else {\n maxMessageSize = Math.min(canSendMMS, remoteMMS);\n }\n\n // Create a dummy RTCSctpTransport object and the 'maxMessageSize'\n // attribute.\n const sctp = {};\n Object.defineProperty(sctp, 'maxMessageSize', {\n get() {\n return maxMessageSize;\n }\n });\n this._sctp = sctp;\n }\n\n return origSetRemoteDescription.apply(this, arguments);\n };\n}\n\nexport function shimSendThrowTypeError(window) {\n if (!(window.RTCPeerConnection &&\n 'createDataChannel' in window.RTCPeerConnection.prototype)) {\n return;\n }\n\n // Note: Although Firefox >= 57 has a native implementation, the maximum\n // message size can be reset for all data channels at a later stage.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n\n function wrapDcSend(dc, pc) {\n const origDataChannelSend = dc.send;\n dc.send = function send() {\n const data = arguments[0];\n const length = data.length || data.size || data.byteLength;\n if (dc.readyState === 'open' &&\n pc.sctp && length > pc.sctp.maxMessageSize) {\n throw new TypeError('Message too large (can send a maximum of ' +\n pc.sctp.maxMessageSize + ' bytes)');\n }\n return origDataChannelSend.apply(dc, arguments);\n };\n }\n const origCreateDataChannel =\n window.RTCPeerConnection.prototype.createDataChannel;\n window.RTCPeerConnection.prototype.createDataChannel =\n function createDataChannel() {\n const dataChannel = origCreateDataChannel.apply(this, arguments);\n wrapDcSend(dataChannel, this);\n return dataChannel;\n };\n utils.wrapPeerConnectionEvent(window, 'datachannel', e => {\n wrapDcSend(e.channel, e.target);\n return e;\n });\n}\n\n\n/* shims RTCConnectionState by pretending it is the same as iceConnectionState.\n * See https://bugs.chromium.org/p/webrtc/issues/detail?id=6145#c12\n * for why this is a valid hack in Chrome. In Firefox it is slightly incorrect\n * since DTLS failures would be hidden. See\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1265827\n * for the Firefox tracking bug.\n */\nexport function shimConnectionState(window) {\n if (!window.RTCPeerConnection ||\n 'connectionState' in window.RTCPeerConnection.prototype) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n Object.defineProperty(proto, 'connectionState', {\n get() {\n return {\n completed: 'connected',\n checking: 'connecting'\n }[this.iceConnectionState] || this.iceConnectionState;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(proto, 'onconnectionstatechange', {\n get() {\n return this._onconnectionstatechange || null;\n },\n set(cb) {\n if (this._onconnectionstatechange) {\n this.removeEventListener('connectionstatechange',\n this._onconnectionstatechange);\n delete this._onconnectionstatechange;\n }\n if (cb) {\n this.addEventListener('connectionstatechange',\n this._onconnectionstatechange = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n\n ['setLocalDescription', 'setRemoteDescription'].forEach((method) => {\n const origMethod = proto[method];\n proto[method] = function() {\n if (!this._connectionstatechangepoly) {\n this._connectionstatechangepoly = e => {\n const pc = e.target;\n if (pc._lastConnectionState !== pc.connectionState) {\n pc._lastConnectionState = pc.connectionState;\n const newEvent = new Event('connectionstatechange', e);\n pc.dispatchEvent(newEvent);\n }\n return e;\n };\n this.addEventListener('iceconnectionstatechange',\n this._connectionstatechangepoly);\n }\n return origMethod.apply(this, arguments);\n };\n });\n}\n\nexport function removeExtmapAllowMixed(window, browserDetails) {\n /* remove a=extmap-allow-mixed for webrtc.org < M71 */\n if (!window.RTCPeerConnection) {\n return;\n }\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 71) {\n return;\n }\n if (browserDetails.browser === 'safari' && browserDetails.version >= 605) {\n return;\n }\n const nativeSRD = window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription(desc) {\n if (desc && desc.sdp && desc.sdp.indexOf('\\na=extmap-allow-mixed') !== -1) {\n const sdp = desc.sdp.split('\\n').filter((line) => {\n return line.trim() !== 'a=extmap-allow-mixed';\n }).join('\\n');\n // Safari enforces read-only-ness of RTCSessionDescription fields.\n if (window.RTCSessionDescription &&\n desc instanceof window.RTCSessionDescription) {\n arguments[0] = new window.RTCSessionDescription({\n type: desc.type,\n sdp,\n });\n } else {\n desc.sdp = sdp;\n }\n }\n return nativeSRD.apply(this, arguments);\n };\n}\n\nexport function shimAddIceCandidateNullOrEmpty(window, browserDetails) {\n // Support for addIceCandidate(null or undefined)\n // as well as addIceCandidate({candidate: \"\", ...})\n // https://bugs.chromium.org/p/chromium/issues/detail?id=978582\n // Note: must be called before other polyfills which change the signature.\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeAddIceCandidate =\n window.RTCPeerConnection.prototype.addIceCandidate;\n if (!nativeAddIceCandidate || nativeAddIceCandidate.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.addIceCandidate =\n function addIceCandidate() {\n if (!arguments[0]) {\n if (arguments[1]) {\n arguments[1].apply(null);\n }\n return Promise.resolve();\n }\n // Firefox 68+ emits and processes {candidate: \"\", ...}, ignore\n // in older versions.\n // Native support for ignoring exists for Chrome M77+.\n // Safari ignores as well, exact version unknown but works in the same\n // version that also ignores addIceCandidate(null).\n if (((browserDetails.browser === 'chrome' && browserDetails.version < 78)\n || (browserDetails.browser === 'firefox'\n && browserDetails.version < 68)\n || (browserDetails.browser === 'safari'))\n && arguments[0] && arguments[0].candidate === '') {\n return Promise.resolve();\n }\n return nativeAddIceCandidate.apply(this, arguments);\n };\n}\n\n// Note: Make sure to call this ahead of APIs that modify\n// setLocalDescription.length\nexport function shimParameterlessSetLocalDescription(window, browserDetails) {\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n if (!nativeSetLocalDescription || nativeSetLocalDescription.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n let desc = arguments[0] || {};\n if (typeof desc !== 'object' || (desc.type && desc.sdp)) {\n return nativeSetLocalDescription.apply(this, arguments);\n }\n // The remaining steps should technically happen when SLD comes off the\n // RTCPeerConnection's operations chain (not ahead of going on it), but\n // this is too difficult to shim. Instead, this shim only covers the\n // common case where the operations chain is empty. This is imperfect, but\n // should cover many cases. Rationale: Even if we can't reduce the glare\n // window to zero on imperfect implementations, there's value in tapping\n // into the perfect negotiation pattern that several browsers support.\n desc = {type: desc.type, sdp: desc.sdp};\n if (!desc.type) {\n switch (this.signalingState) {\n case 'stable':\n case 'have-local-offer':\n case 'have-remote-pranswer':\n desc.type = 'offer';\n break;\n default:\n desc.type = 'answer';\n break;\n }\n }\n if (desc.sdp || (desc.type !== 'offer' && desc.type !== 'answer')) {\n return nativeSetLocalDescription.apply(this, [desc]);\n }\n const func = desc.type === 'offer' ? this.createOffer : this.createAnswer;\n return func.apply(this)\n .then(d => nativeSetLocalDescription.apply(this, [d]));\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\nimport * as utils from './utils';\n\n // Browser shims.\nimport * as chromeShim from './chrome/chrome_shim';\nimport * as firefoxShim from './firefox/firefox_shim';\nimport * as safariShim from './safari/safari_shim';\nimport * as commonShim from './common_shim';\nimport * as sdp from 'sdp';\n\n// Shimming starts here.\nexport function adapterFactory({window} = {}, options = {\n shimChrome: true,\n shimFirefox: true,\n shimSafari: true,\n}) {\n // Utils.\n const logging = utils.log;\n const browserDetails = utils.detectBrowser(window);\n\n const adapter = {\n browserDetails,\n commonShim,\n extractVersion: utils.extractVersion,\n disableLog: utils.disableLog,\n disableWarnings: utils.disableWarnings,\n // Expose sdp as a convenience. For production apps include directly.\n sdp,\n };\n\n // Shim browser if found.\n switch (browserDetails.browser) {\n case 'chrome':\n if (!chromeShim || !chromeShim.shimPeerConnection ||\n !options.shimChrome) {\n logging('Chrome shim is not included in this adapter release.');\n return adapter;\n }\n if (browserDetails.version === null) {\n logging('Chrome shim can not determine version, not shimming.');\n return adapter;\n }\n logging('adapter.js shimming chrome.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = chromeShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n chromeShim.shimGetUserMedia(window, browserDetails);\n chromeShim.shimMediaStream(window, browserDetails);\n chromeShim.shimPeerConnection(window, browserDetails);\n chromeShim.shimOnTrack(window, browserDetails);\n chromeShim.shimAddTrackRemoveTrack(window, browserDetails);\n chromeShim.shimGetSendersWithDtmf(window, browserDetails);\n chromeShim.shimGetStats(window, browserDetails);\n chromeShim.shimSenderReceiverGetStats(window, browserDetails);\n chromeShim.fixNegotiationNeeded(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n case 'firefox':\n if (!firefoxShim || !firefoxShim.shimPeerConnection ||\n !options.shimFirefox) {\n logging('Firefox shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming firefox.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = firefoxShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n firefoxShim.shimGetUserMedia(window, browserDetails);\n firefoxShim.shimPeerConnection(window, browserDetails);\n firefoxShim.shimOnTrack(window, browserDetails);\n firefoxShim.shimRemoveStream(window, browserDetails);\n firefoxShim.shimSenderGetStats(window, browserDetails);\n firefoxShim.shimReceiverGetStats(window, browserDetails);\n firefoxShim.shimRTCDataChannel(window, browserDetails);\n firefoxShim.shimAddTransceiver(window, browserDetails);\n firefoxShim.shimGetParameters(window, browserDetails);\n firefoxShim.shimCreateOffer(window, browserDetails);\n firefoxShim.shimCreateAnswer(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n break;\n case 'safari':\n if (!safariShim || !options.shimSafari) {\n logging('Safari shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming safari.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = safariShim;\n\n // Must be called before shimCallbackAPI.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n safariShim.shimRTCIceServerUrls(window, browserDetails);\n safariShim.shimCreateOfferLegacy(window, browserDetails);\n safariShim.shimCallbacksAPI(window, browserDetails);\n safariShim.shimLocalStreamsAPI(window, browserDetails);\n safariShim.shimRemoteStreamsAPI(window, browserDetails);\n safariShim.shimTrackEventTransceiver(window, browserDetails);\n safariShim.shimGetUserMedia(window, browserDetails);\n safariShim.shimAudioContext(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n default:\n logging('Unsupported browser!');\n break;\n }\n\n return adapter;\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n\n'use strict';\n\nimport {adapterFactory} from './adapter_factory.js';\n\nconst adapter =\n adapterFactory({window: typeof window === 'undefined' ? undefined : window});\nexport default adapter;\n",null,null,null,null,null,null,null],"names":["root","definition","module","exports","log","this","noop","undefinedType","isIE","window","navigator","test","userAgent","logMethods","bindMethod","obj","methodName","method","bind","Function","prototype","call","e","apply","arguments","traceForIE","console","trace","realMethod","undefined","replaceLoggingMethods","level","loggerName","i","length","methodFactory","debug","enableLoggingWhenConsoleArrives","defaultMethodFactory","Logger","name","defaultLevel","factory","self","currentLevel","storageKey","persistLevelIfPossible","levelNum","levelName","toUpperCase","localStorage","ignore","document","cookie","encodeURIComponent","getPersistedLevel","storedLevel","location","indexOf","exec","slice","levels","clearPersistedLevel","removeItem","getLevel","setLevel","persist","SILENT","setDefaultLevel","resetLevel","enableAll","TRACE","disableAll","initialLevel","defaultLogger","_loggersByName","getLogger","TypeError","logger","_log","noConflict","getLoggers","LogLevel","livekitLogger","info","setLogLevel","setLogExtension","extension","originalFactory","logLevel","rawMethod","configLevel","needLog","silent","msg","context","long","Long","wasm","WebAssembly","Instance","Module","Uint8Array","low","high","unsigned","__isLong__","Object","defineProperty","value","isLong","INT_CACHE","UINT_CACHE","fromInt","cachedObj","cache","fromBits","fromNumber","isNaN","UZERO","ZERO","TWO_PWR_64_DBL","MAX_UNSIGNED_VALUE","TWO_PWR_63_DBL","MIN_VALUE","MAX_VALUE","neg","TWO_PWR_32_DBL","lowBits","highBits","pow_dbl","Math","pow","fromString","str","radix","Error","RangeError","p","substring","radixToPower","result","size","min","parseInt","power","mul","add","fromValue","val","TWO_PWR_16_DBL","TWO_PWR_24_DBL","TWO_PWR_24","ONE","UONE","NEG_ONE","LongPrototype","toInt","toNumber","toString","isZero","isNegative","eq","radixLong","div","rem1","sub","rem","remDiv","intval","digits","getHighBits","getHighBitsUnsigned","getLowBits","getLowBitsUnsigned","getNumBitsAbs","bit","eqz","isPositive","isOdd","isEven","equals","other","notEquals","neq","ne","lessThan","comp","lt","lessThanOrEqual","lte","le","greaterThan","gt","greaterThanOrEqual","gte","ge","compare","thisNeg","otherNeg","negate","not","addend","a48","a32","a16","a00","b48","b32","b16","b00","c48","c32","c16","c00","subtract","subtrahend","multiply","multiplier","get_high","divide","divisor","div_u","div_s","approx","res","halfThis","shr","shl","toUnsigned","shru","max","floor","log2","ceil","LN2","delta","approxRes","approxRem","modulo","rem_u","rem_s","mod","and","or","xor","shiftLeft","numBits","shiftRight","shiftRightUnsigned","shr_u","toSigned","toBytes","toBytesLE","toBytesBE","hi","lo","fromBytes","bytes","fromBytesLE","fromBytesBE","aspromise","asPromise","fn","ctx","params","Array","offset","index","pending","Promise","executor","resolve","reject","callback","err","base64","string","n","charAt","b64","s64","encode","buffer","start","end","parts","chunk","j","t","b","push","String","fromCharCode","join","invalidEncoding","decode","c","charCodeAt","eventemitter","EventEmitter","_listeners","on","evt","off","listeners","splice","emit","args","float","Float32Array","f32","f8b","writeFloat_f32_cpy","buf","pos","writeFloat_f32_rev","writeFloatLE","writeFloatBE","readFloat_f32_cpy","readFloat_f32_rev","readFloatLE","readFloatBE","writeFloat_ieee754","writeUint","sign","round","exponent","mantissa","writeUintLE","writeUintBE","readFloat_ieee754","readUint","uint","NaN","Infinity","readUintLE","readUintBE","Float64Array","f64","writeDouble_f64_cpy","writeDouble_f64_rev","writeDoubleLE","writeDoubleBE","readDouble_f64_cpy","readDouble_f64_rev","readDoubleLE","readDoubleBE","writeDouble_ieee754","off0","off1","readDouble_ieee754","inquire_1","inquire","moduleName","eval","keys","utf8","utf8_length","len","read","utf8_read","write","utf8_write","c1","c2","pool_1","pool","alloc","SIZE","MAX","slab","pool_alloc","longbits","LongBits","util","require$$0","zero","zzEncode","zzDecode","zeroHash","from","isString","toLong","Boolean","fromHash","hash","toHash","mask","part0","part1","part2","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","isNode","global","process","versions","node","emptyArray","freeze","emptyObject","isInteger","Number","isFinite","isObject","isset","isSet","prop","hasOwnProperty","isArray","Buffer","utf8Write","_Buffer_from","_Buffer_allocUnsafe","newBuffer","sizeOrArray","dcodeIO","key2Re","key32Re","key64Re","longToHash","longFromHash","bits","merge","dst","src","ifNotSet","lcFirst","toLowerCase","newError","CustomError","message","properties","get","captureStackTrace","stack","create","constructor","ProtocolError","oneOfGetter","getOneOf","fieldNames","fieldMap","oneOfSetter","setOneOf","toJSONOptions","longs","enums","json","_configure","Buffer_from","encoding","allocUnsafe","Buffer_allocUnsafe","writer","Writer","BufferWriter","Op","next","State","head","tail","states","create_buffer_setup","create_buffer","create_array","subarray","_push","writeByte","writeVarint32","VarintOp","uint32","write_uint32","int32","write_int32","writeVarint64","sint32","write_sint32","uint64","write_uint64","int64","sint64","write_sint64","bool","write_bool","writeFixed32","fixed32","write_fixed32","sfixed32","fixed64","write_fixed64","sfixed64","write_float","double","write_double","writeBytes","set","writeBytes_set","writeBytes_for","write_bytes","write_string","fork","reset","ldelim","finish","BufferWriter_","writer_buffer","writeBytesBuffer","writeBytesBuffer_set","writeBytesBuffer_copy","copy","write_bytes_buffer","writeStringBuffer","write_string_buffer","byteLength","reader","Reader","BufferReader","indexOutOfRange","writeLength","create_typed_array","isBuffer","_slice","read_uint32_setup","read_uint32","read_int32","read_sint32","readLongVarint","read_bool","readFixed32_end","read_fixed32","read_sfixed32","readFixed64","read_float","read_double","read_bytes","read_string","skip","skipType","wireType","BufferReader_","read_int64","read_uint64","read_sint64","read_fixed64","read_sfixed64","reader_buffer","read_string_buffer","utf8Slice","service","Service","rpcImpl","requestDelimited","responseDelimited","rpcCall","requestCtor","responseCtor","request","setTimeout","rpcCallback","response","endedByRPC","rpc","roots","protobuf","build","configure","minimal","globalThis","_m0","TrackType","trackTypeFromJSON","object","AUDIO","VIDEO","DATA","UNRECOGNIZED","trackTypeToJSON","TrackSource","trackSourceFromJSON","UNKNOWN","CAMERA","MICROPHONE","SCREEN_SHARE","SCREEN_SHARE_AUDIO","trackSourceToJSON","VideoQuality","videoQualityFromJSON","LOW","MEDIUM","HIGH","OFF","videoQualityToJSON","ConnectionQuality","connectionQualityFromJSON","POOR","GOOD","EXCELLENT","connectionQualityToJSON","ClientConfigSetting","clientConfigSettingFromJSON","UNSET","DISABLED","ENABLED","clientConfigSettingToJSON","ParticipantInfo_State","participantInfo_StateFromJSON","JOINING","JOINED","ACTIVE","DISCONNECTED","participantInfo_StateToJSON","DataPacket_Kind","dataPacket_KindFromJSON","RELIABLE","LOSSY","dataPacket_KindToJSON","ClientInfo_SDK","clientInfo_SDKFromJSON","JS","SWIFT","ANDROID","FLUTTER","GO","UNITY","clientInfo_SDKToJSON","createBaseRoom","sid","emptyTimeout","maxParticipants","creationTime","turnPassword","enabledCodecs","metadata","numParticipants","activeRecording","Room","v","Codec","input","tag","longToNumber","fromJSON","map","toJSON","fromPartial","_a","_b","_c","_d","_e","_f","_g","_h","_j","_k","createBaseCodec","mime","fmtpLine","createBaseParticipantPermission","canSubscribe","canPublish","canPublishData","hidden","recorder","ParticipantPermission","createBaseParticipantInfo","identity","state","tracks","joinedAt","version","permission","region","isPublisher","ParticipantInfo","TrackInfo","createBaseTrackInfo","type","muted","width","height","simulcast","disableDtx","source","layers","mimeType","mid","VideoLayer","_l","_m","createBaseVideoLayer","quality","bitrate","ssrc","createBaseDataPacket","kind","user","speaker","DataPacket","UserPacket","ActiveSpeakerUpdate","createBaseActiveSpeakerUpdate","speakers","SpeakerInfo","createBaseSpeakerInfo","active","createBaseUserPacket","participantSid","payload","destinationSids","bytesFromBase64","base64FromBytes","createBaseParticipantTracks","trackSids","ParticipantTracks","createBaseClientInfo","sdk","protocol","os","osVersion","deviceModel","browser","browserVersion","address","ClientInfo","createBaseClientConfiguration","video","screen","resumeConnection","ClientConfiguration","VideoConfiguration","createBaseVideoConfiguration","hardwareEncoder","atob","bin","arr","btoa","forEach","byte","MAX_SAFE_INTEGER","SignalTarget","signalTargetFromJSON","PUBLISHER","SUBSCRIBER","signalTargetToJSON","StreamState","streamStateFromJSON","PAUSED","streamStateToJSON","createBaseSignalRequest","offer","answer","trickle","addTrack","mute","subscription","trackSetting","leave","updateLayers","subscriptionPermission","syncState","simulate","SignalRequest","SessionDescription","TrickleRequest","AddTrackRequest","MuteTrackRequest","UpdateSubscription","UpdateTrackSettings","LeaveRequest","UpdateVideoLayers","SubscriptionPermission","SyncState","SimulateScenario","createBaseSignalResponse","update","trackPublished","speakersChanged","roomUpdate","connectionQuality","streamStateUpdate","subscribedQualityUpdate","subscriptionPermissionUpdate","refreshToken","trackUnpublished","SignalResponse","JoinResponse","ParticipantUpdate","TrackPublishedResponse","SpeakersChanged","RoomUpdate","ConnectionQualityUpdate","StreamStateUpdate","SubscribedQualityUpdate","SubscriptionPermissionUpdate","TrackUnpublishedResponse","createBaseAddTrackRequest","cid","createBaseTrickleRequest","candidateInit","target","createBaseMuteTrackRequest","createBaseJoinResponse","room","participant","otherParticipants","serverVersion","iceServers","subscriberPrimary","alternativeUrl","clientConfiguration","serverRegion","ICEServer","createBaseTrackPublishedResponse","track","createBaseTrackUnpublishedResponse","trackSid","createBaseSessionDescription","sdp","createBaseParticipantUpdate","participants","createBaseUpdateSubscription","subscribe","participantTracks","createBaseUpdateTrackSettings","disabled","createBaseLeaveRequest","canReconnect","createBaseUpdateVideoLayers","createBaseICEServer","urls","username","credential","createBaseSpeakersChanged","createBaseRoomUpdate","createBaseConnectionQualityInfo","score","ConnectionQualityInfo","createBaseConnectionQualityUpdate","updates","createBaseStreamStateInfo","StreamStateInfo","createBaseStreamStateUpdate","streamStates","createBaseSubscribedQuality","enabled","SubscribedQuality","createBaseSubscribedQualityUpdate","subscribedQualities","createBaseTrackPermission","allTracks","participantIdentity","TrackPermission","createBaseSubscriptionPermission","allParticipants","trackPermissions","createBaseSubscriptionPermissionUpdate","allowed","createBaseSyncState","publishTracks","dataChannels","DataChannelInfo","createBaseDataChannelInfo","label","id","createBaseSimulateScenario","speakerUpdate","nodeFailure","migration","serverLeave","LivekitError","code","ConnectionError","TrackInvalidError","UnsupportedServer","UnexpectedConnectionState","PublishDataError","MediaDeviceFailure","getFailure","error","NotFound","PermissionDenied","DeviceInUse","Other","RoomEvent","ParticipantEvent","EngineEvent","TrackEvent","monitorFrequency","computeBitrate","currentStats","prevStats","bytesNow","bytesPrev","bytesReceived","bytesSent","timestamp","defaultId","DeviceManager","getInstance","instance","getDevices","requestPermissions","devices","mediaDevices","enumerateDevices","isDummyDeviceOrEmpty","some","device","noLabel","isRelevant","permissionsToAcquire","audio","getUserMedia","filter","deviceId","defaultDevice","groupId","temp","normalizeDeviceId","find","d","mediaDeviceKinds","protocolVersion","separator","unpackStreamId","packed","split","substr","sleep","duration","isFireFox","isWeb","isSafari","isMobile","roDispatchCallback","entries","entry","handleResize","ioDispatchCallback","handleVisibilityChanged","resizeObserver","getResizeObserver","ResizeObserver","intersectionObserver","getIntersectionObserver","IntersectionObserver","rootMargin","getClientInfo","emptyMediaStreamTrack","getEmptyMediaStreamTrack","canvas","createElement","emptyStream","captureStream","getTracks","R","Reflect","ReflectApply","receiver","ReflectOwnKeys","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","concat","ProcessEmitWarning","warning","warn","NumberIsNaN","init","eventsModule","events","once","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","enumerable","arg","getPrototypeOf","setMaxListeners","_getMaxListeners","that","getMaxListeners","doError","er","handler","arrayClone","_addListener","prepend","m","existing","newListener","unshift","warned","w","emitter","count","addListener","prependListener","onceWrapper","fired","removeListener","wrapFn","_onceWrap","wrapped","prependOnceListener","list","position","originalListener","shift","spliceOne","removeAllListeners","key","unwrap","evlistener","unwrapListeners","rawListeners","listenerCount","eventNames","pop","ret","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","flags","addEventListener","wrapListener","removeEventListener","recycledElements","Track","mediaTrack","attachedElements","isMuted","_currentBitrate","appVisibilityChangedListener","handleAppVisibilityChanged","mediaStreamTrack","Source","Unknown","isInBackground","visibilityState","currentBitrate","attach","element","elementType","Kind","Video","parentElement","includes","attachToElement","HTMLAudioElement","play","then","AudioPlaybackStarted","catch","AudioPlaybackFailed","ElementAttached","detach","detachTrack","idx","recycleElement","ElementDetached","detached","elm","stop","enable","disable","shouldCache","pause","mediaStream","srcObject","MediaStream","existingTracks","getAudioTracks","getVideoTracks","et","removeTrack","HTMLVideoElement","autoplay","playsInline","kindToProto","k","Audio","kindFromProto","sourceToProto","s","Camera","Microphone","ScreenShare","ScreenShareAudio","sourceFromProto","streamStateFromProto","ProtoStreamState","Active","Paused","LocalTrack","constraints","_isUpstreamPaused","handleEnded","reacquireTrack","Ended","getConstraints","wasMuted","dimensions","getSettings","isUpstreamPaused","getDeviceId","setTrackMuted","unmute","replaceTrack","sender","el","restart","streamConstraints","newTrack","Muted","Unmuted","needsReAcquisition","readyState","pauseUpstream","UpstreamPaused","resumeUpstream","UpstreamResumed","mergeDefaultOptions","options","audioDefaults","videoDefaults","opts","mergeObjectWithoutOverwriting","mainObject","objectToMerge","constraintsForOptions","videoOptions","resolution","detectSilence","timeOffset","getNewAudioContext","analyser","createAnalyser","fftSize","bufferLength","frequencyBinCount","dataArray","createMediaStreamSource","connect","getByteTimeDomainData","someNoise","sample","close","AudioContext","webkitAudioContext","LocalAudioTrack","stopOnMute","monitorSender","stats","getSenderStats","checkForSilence","setDeviceId","restartTrack","startMonitor","getStats","audioStats","streamId","packetsSent","packetsLost","roundTripTime","jitter","trackIsSilent","AudioSilenceDetected","LocalVideoTrack","statsMap","Map","rid","totalBitrate","prev","isSimulcast","getParameters","encodings","signalClient","items","vs","frameHeight","frameWidth","firCount","pliCount","nackCount","framesSent","retransmittedPacketsSent","qualityLimitationReason","qualityLimitationResolutionChanges","r","remoteId","setPublishingQuality","maxQuality","qualities","q","setPublishingLayers","hasChanged","videoQualityForRid","subscribedQuality","scaleResolutionDownBy","maxBitrate","maxFrameRate","setParameters","videoLayersFromEncodings","scale","RemoteTrack","streamState","setMuted","setMediaStream","stream","onremovetrack","monitorReceiver","RemoteAudioTrack","getReceiverStats","elementVolume","setVolume","volume","getVolume","receiverStats","concealedSamples","concealmentEvents","silentConcealedSamples","silentConcealmentEvents","totalAudioEnergy","totalSamplesDuration","debounce","func","waitMilliseconds","timeoutId","isImmediate","maxWait","lastInvokeTime","Date","now","promises","nextInvokeTimeout","timeSinceLastInvocation","debouncedFunction","shouldCallNow","clearTimeout","cancel","reason","REACTION_DELAY","RemoteVideoTrack","adaptiveStreamSettings","elementInfos","isIntersecting","elementInfo","visible","visibilityChangedAt","updateVisibility","debouncedHandleResize","updateDimensions","isAdaptiveStream","observe","detachedElements","stopObservingElement","framesDecoded","framesDropped","framesReceived","packetsReceived","unobserve","lastVisibilityChange","reduce","isVisible","lastVisible","VisibilityChanged","maxWidth","maxHeight","pixelDensity","pixelDensityValue","devicePixelRatio","currentElementWidth","clientWidth","currentElementHeight","clientHeight","lastDimensions","VideoDimensionsChanged","TrackPublication","metadataMuted","handleMuted","handleUnmuted","trackName","setTrack","isEnabled","isSubscribed","audioTrack","videoTrack","updateInfo","simulcasted","trackInfo","SubscriptionStatus","LocalTrackPublication","ti","handleTrackEnded","VideoPreset","maxFramerate","frameRate","aspectRatio","AudioPresets","telephone","speech","music","VideoPresets","h90","h180","h216","h360","h540","h720","h1080","h1440","h2160","qvga","vga","qhd","hd","fhd","VideoPresets43","h120","h240","h480","ScreenSharePresets","h360fps3","h720fps5","h720fps15","h1080fps15","h1080fps30","hd_8","hd_15","fhd_15","fhd_30","qualityFromProto","ProtoQuality","Excellent","Good","Poor","Participant","audioLevel","isSpeaking","_connectionQuality","audioTracks","videoTracks","values","getTrack","pub","getTrackByName","isCameraEnabled","isMicrophoneEnabled","isScreenShareEnabled","participantInfo","setMetadata","setPermissions","md","changed","prevMetadata","MetadataChanged","ParticipantMetadataChanged","permissions","setIsSpeaking","speaking","lastSpokeAt","IsSpeakingChanged","setConnectionQuality","prevQuality","ConnectionQualityChanged","addTrackPublication","publication","TrackMuted","TrackUnmuted","trackPermissionToProto","perms","allowAll","allowedTrackSids","mediaTrackToLocalTrack","presets169","presets43","presetsScreenShare","defaultSimulcastPresets169","defaultSimulcastPresets43","computeDefaultScreenShareSimulcastPresets","fromPreset","fps","videoRids","computeVideoEncodings","isScreenShare","videoEncoding","screenShareEncoding","useSimulcast","determineAppropriateEncoding","original","presets","sortPresets","screenShareSimulcastLayers","defaultSimulcastLayers","videoSimulcastLayers","midPreset","lowPreset","encodingsFromPresets","presetsForResolution","preset","aspect","abs","sort","a","aEnc","bEnc","RemoteTrackPublication","_allowed","currentVideoQuality","handleVisibilityChange","emitTrackUpdate","handleVideoDimensionsChange","videoDimensions","setSubscribed","subscribed","subscriptionStatus","Unsubscribed","NotAllowed","Subscribed","setEnabled","isManualOperationAllowed","setVideoQuality","setVideoDimensions","videoQuality","settings","UpdateSettings","RemoteParticipant","fromParticipantInfo","pi","rp","sendUpdateTrackSettings","pt","sendUpdateSubscription","TrackUnsubscribed","audioPublication","addSubscribedMediaTrack","triesLeft","getTrackPublication","startsWith","TrackSubscriptionFailed","isVideo","TrackSubscribed","hasMetadata","alreadyHasMetadata","validTracks","newTracks","TrackPublished","has","unpublishTrack","sendUnpublish","delete","TrackUnpublished","event","LocalParticipant","engine","pendingPublishing","Set","onTrackUnmuted","onTrackMuted","updateMuteStatus","onTrackUpstreamPaused","onTrackUpstreamResumed","handleSubscribedQualityUpdate","roomOptions","dynacast","handleLocalTrackUnpublished","unpublished","onTrackUnpublish","client","onRemoteMuteChanged","onSubscribedQualityUpdate","onLocalTrackUnpublished","lastCameraError","cameraError","lastMicrophoneError","microphoneError","setCameraEnabled","setTrackEnabled","setMicrophoneEnabled","setScreenShareEnabled","prevPermissions","ParticipantPermissionsChanged","localTrack","createTracks","createScreenTracks","publishTrack","MediaDevicesError","enableCameraAndMicrophone","all","audioCaptureDefaults","videoCaptureDefaults","isAudio","trackConstraints","conOrBool","videoConstraints","getDisplayMedia","screenVideo","localTracks","screenAudio","_objectSpread","publishDefaults","MediaStreamTrack","existingPublication","stopMicTrackOnMute","req","dtx","audioBitrate","publisher","transceiverInit","direction","sendEncodings","transceiver","pc","addTransceiver","negotiate","videoCodec","setPreferredCodec","LocalTrackPublished","stopOnUnpublish","getPublicationForTrack","stopLocalTrackOnUnpublish","senders","getSenders","LocalTrackUnpublished","unpublishTracks","publications","publishData","data","destination","dest","packet","sendDataPacket","setTrackSubscriptionPermissions","allParticipantsAllowed","participantTrackPermissions","sendUpdateSubscriptionPermissions","RTCRtpSender","cap","getCapabilities","selected","codecs","codec","matchesVideoCodec","sdpFmtpLine","setCodecPreferences","publishedTracksInfo","infos","dataChannelsInfo","getInfo","dc","dataChannelForKind","Queue","queue","running","enqueue","cb","dequeue","run","isRunning","isEmpty","logDisabled_","deprecationWarnings_","extractVersion","uastring","expr","match","wrapPeerConnectionEvent","eventNameToWrap","wrapper","RTCPeerConnection","proto","nativeAddEventListener","nativeEventName","wrappedCallback","modifiedEvent","handleEvent","_eventMap","nativeRemoveEventListener","unwrappedCb","configurable","disableLog","disableWarnings","deprecated","oldMethod","newMethod","detectBrowser","mozGetUserMedia","webkitGetUserMedia","isSecureContext","webkitRTCPeerConnection","RTCIceGatherer","supportsUnifiedPlan","RTCRtpTransceiver","compactObject","accumulator","isObj","isEmptyObject","assign","walkStats","base","resultSet","endsWith","filterStats","outbound","streamStatsType","filteredResult","trackStats","trackIdentifier","trackStat","trackId","logging","utils","shimGetUserMedia","browserDetails","constraintsToChrome_","mandatory","optional","cc","ideal","exact","oldname_","prefix","oc","mix","advanced","shimConstraints_","JSON","parse","stringify","remap","face","facingMode","getSupportedFacingModeLies","getSupportedConstraints","matches","dev","shimError_","PermissionDeniedError","PermissionDismissedError","InvalidStateError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","constraint","constraintName","getUserMedia_","onSuccess","onError","origGetUserMedia","cs","DOMException","shimGetDisplayMedia","getSourceId","sourceId","widthSpecified","heightSpecified","frameRateSpecified","chromeMediaSource","chromeMediaSourceId","shimMediaStream","webkitMediaStream","shimOnTrack","_ontrack","f","origSetRemoteDescription","setRemoteDescription","_ontrackpoly","te","getReceivers","Event","streams","dispatchEvent","shimGetSendersWithDtmf","shimSenderWithDtmf","dtmf","_dtmf","createDTMFSender","_pc","_senders","origAddTrack","origRemoveTrack","origAddStream","addStream","origRemoveStream","removeStream","origGetSenders","shimGetStats","origGetStats","selector","onSucc","onErr","fixChromeStats_","standardReport","reports","report","standardStats","localcandidate","remotecandidate","names","stat","makeMapStats","successCallbackWrapper_","shimSenderReceiverGetStats","RTCRtpReceiver","origGetReceivers","receivers","srcElement","shimAddTrackRemoveTrackWithNative","getLocalStreams","_shimmedLocalStreams","alreadyExists","existingSenders","newSenders","newSender","shimAddTrackRemoveTrack","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","signalingState","oldStream","replaceInternalStreamId","description","internalId","externalStream","internalStream","replace","RegExp","RTCSessionDescription","replaceExternalStreamId","nativeMethod","methodObj","isLegacyCall","desc","origSetLocalDescription","setLocalDescription","origLocalDescription","getOwnPropertyDescriptor","isLocal","streamid","hasTrack","shimPeerConnection","RTCIceCandidate","fixNegotiationNeeded","getConfiguration","sdpSemantics","nativeGetUserMedia","nativeGetSettings","applyConstraints","nativeApplyConstraints","preferredMediaSource","mediaSource","RTCTrackEvent","mozRTCPeerConnection","modernStatsTypes","inboundrtp","outboundrtp","candidatepair","nativeGetStats","shimSenderGetStats","shimReceiverGetStats","shimRemoveStream","shimRTCDataChannel","DataChannel","RTCDataChannel","shimAddTransceiver","origAddTransceiver","setParametersPromises","initParameters","shouldPerformCheck","encodingParam","ridRegex","parseFloat","shimGetParameters","origGetParameters","shimCreateOffer","origCreateOffer","createOffer","finally","shimCreateAnswer","origCreateAnswer","createAnswer","shimLocalStreamsAPI","_localStreams","_addTrack","shimRemoteStreamsAPI","getRemoteStreams","_remoteStreams","_onaddstream","_onaddstreampoly","shimCallbacksAPI","addIceCandidate","successCallback","failureCallback","promise","withCallback","candidate","_getUserMedia","shimConstraints","errcb","shimRTCIceServerUrls","OrigPeerConnection","pcConfig","pcConstraints","newIceServers","server","url","generateCertificate","shimTrackEventTransceiver","shimCreateOfferLegacy","offerOptions","offerToReceiveAudio","audioTransceiver","getTransceivers","setDirection","offerToReceiveVideo","videoTransceiver","shimAudioContext","SDPUtils","generateIdentifier","random","localCName","splitLines","blob","trim","line","splitSections","part","getDescription","sections","getMediaSections","matchPrefix","parseCandidate","foundation","component","priority","ip","port","relatedAddress","relatedPort","tcpType","ufrag","usernameFragment","writeCandidate","parseIceOptions","parseRtpMap","parsed","payloadType","clockRate","channels","numChannels","writeRtpMap","preferredPayloadType","parseExtmap","uri","writeExtmap","headerExtension","preferredId","parseFmtp","kv","writeFmtp","parameters","param","parseRtcpFb","parameter","writeRtcpFb","lines","rtcpFeedback","fb","parseSsrcMedia","sp","colon","attribute","parseSsrcGroup","semantics","ssrcs","getMid","mediaSection","parseFingerprint","algorithm","getDtlsParameters","sessionpart","role","fingerprints","writeDtlsParameters","setupType","fp","parseCryptoLine","cryptoSuite","keyParams","sessionParams","writeCryptoLine","writeCryptoKeyParams","parseCryptoKeyParams","keyMethod","keySalt","lifeTime","mkiValue","mkiLength","getCryptoParameters","getIceParameters","pwd","password","writeIceParameters","iceLite","parseRtpParameters","headerExtensions","fecMechanisms","rtcp","mline","rtpmapline","fmtps","writeRtpDescription","caps","maxptime","parseRtpEncodingParameters","encodingParameters","hasRed","hasUlpfec","primarySsrc","secondarySsrc","flows","apt","encParam","codecPayloadType","rtx","fec","mechanism","bandwidth","parseRtcpParameters","rtcpParameters","remoteSsrc","cname","rsize","reducedSize","compound","mux","writeRtcpParameters","parseMsid","spec","planB","msidParts","parseSctpDescription","parseMLine","maxSizeLine","maxMessageSize","sctpPort","fmt","sctpMapLines","writeSctpDescription","media","sctp","output","generateSessionId","writeSessionBoilerplate","sessId","sessVer","sessUser","sessionId","getDirection","getKind","isRejected","parseOLine","sessionVersion","netType","addressType","isValidSDP","shimRTCIceCandidate","NativeRTCIceCandidate","nativeCandidate","parsedCandidate","augmentedCandidate","sdpMid","sdpMLineIndex","writable","shimMaxMessageSize","_sctp","sctpInDescription","mLine","getRemoteFirefoxVersion","getCanSendMaxMessageSize","remoteIsFirefox","canSendMaxMessageSize","getMaxMessageSize","isFirefox","canSendMMS","remoteMMS","POSITIVE_INFINITY","shimSendThrowTypeError","wrapDcSend","origDataChannelSend","send","origCreateDataChannel","createDataChannel","dataChannel","channel","shimConnectionState","completed","checking","iceConnectionState","_onconnectionstatechange","origMethod","_connectionstatechangepoly","_lastConnectionState","connectionState","newEvent","removeExtmapAllowMixed","nativeSRD","shimAddIceCandidateNullOrEmpty","nativeAddIceCandidate","shimParameterlessSetLocalDescription","nativeSetLocalDescription","adapterFactory","shimChrome","shimFirefox","shimSafari","adapter","commonShim","chromeShim","browserShim","firefoxShim","safariShim","passThroughQueueSignals","canPassThroughQueue","canPass","SignalClient","useJSON","isConnected","isReconnecting","requestQueue","token","autoSubscribe","publishOnly","adaptiveStream","reconnect","clientInfo","createConnectionParams","ws","WebSocket","binaryType","onerror","ev","resp","fetch","ok","text","handleWSError","onopen","onmessage","ArrayBuffer","signalLatency","handleSignalResponse","onclose","onClose","sendOffer","sendRequest","toProtoSessionDescription","sendAnswer","sendIceCandidate","sendMuteTrack","sendAddTrack","sendSyncState","sync","sendUpdateVideoLayers","sendSimulateScenario","scenario","sendLeave","fromQueue","canQueue","sd","fromProtoSessionDescription","onAnswer","onOffer","onTrickle","onParticipantUpdate","onLocalTrackPublished","onSpeakersChanged","onLeave","onRoomUpdate","onConnectionQuality","onStreamStateUpdate","onSubscriptionPermissionUpdate","onTokenRefresh","setReconnected","rsd","URLSearchParams","PCTransport","config","pendingCandidates","restartingIce","renegotiate","createAndSendOffer","isICEConnected","remoteDescription","iceRestart","currentSD","lossyDataChannel","reliableDataChannel","maxReconnectRetries","minReconnectWait","maxReconnectDuration","maxICEConnectTimeout","PCState","RTCEngine","rtcConfig","pcState","New","isClosed","pendingTrackResolvers","hasPublished","reconnectAttempts","reconnectStart","fullReconnectOnNext","handleDataChannel","reliableDCSub","lossyDCSub","handleDataMessage","Blob","arrayBuffer","dp","ActiveSpeakersUpdate","DataPacketReceived","handleDataError","currentTarget","channelKind","maxRetransmits","ErrorEvent","handleDisconnect","connection","delay","restartConnection","recoverable","SignalReconnectError","Disconnected","signalOpts","joinResponse","subscriber","dataSubscriberReadyState","connectedServerAddress","connectedServerAddr","rtcIceServers","iceServer","rtcIceServer","continualGatheringPolicy","TransportsCreated","onicecandidate","primaryPC","ondatachannel","onconnectionstatechange","getConnectedAddress","shouldEmit","Connected","ontrack","MediaTrackAdded","onaddstream","lossyDC","ordered","reliableDC","RTCSdpType","Restarting","waitForPCConnected","Restarted","Resuming","SignalResumed","Resumed","startTime","Reconnecting","ensurePublisherConnected","targetChannel","endTime","getTime","selectedCandidatePairId","candidatePairs","candidates","selectedID","remoteCandidateId","autoGainControl","channelCount","echoCancellation","noiseSuppression","RoomState","activeSpeakers","audioEnabled","createEngine","acquireAudioContext","connOptions","localParticipant","getOrCreateParticipant","StateChanged","connectTimeout","onBeforeUnload","handleDeviceChange","disconnect","stopTracks","handleRestarting","handleParticipantDisconnected","handleRestarted","Reconnected","handleParticipantUpdates","localPubs","participantInfos","remoteParticipant","isNewParticipant","ParticipantConnected","handleActiveSpeakersUpdate","seenSids","ActiveSpeakersChanged","handleSpeakersChanged","speakerUpdates","lastSpeakers","handleStreamStateUpdate","TrackStreamStateChanged","handleSubscriptionPermissionUpdate","TrackSubscriptionPermissionChanged","handleDataPacket","userPacket","DataReceived","handleAudioPlaybackStarted","canPlaybackAudio","AudioPlaybackStatusChanged","handleAudioPlaybackFailed","MediaDevicesChanged","handleRoomUpdate","RoomMetadataChanged","handleConnectionQualityUpdate","expSignalLatency","onTrackAdded","updateSubscriptions","getLocalDevices","getParticipantByIdentity","simulateScenario","startAudio","elements","switchActiveDevice","setSinkId","participantId","shouldStopTracks","clear","audioContext","ParticipantDisconnected","createParticipant","trackPublication","localDescription","previousSdp","sendUnsub","autoManageVideo","publishAudio","publishVideo","errKind","audioErr","createLocalTracks","createLocalVideoTrack","createLocalAudioTrack","createLocalScreenTracks"],"mappings":"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F,CADtF,EACyF,GADzF,EAC8F,GAD9F,EACmG,GADnG,EACwG,CADxG,EAC2G,CAD3G,EAC8G,CAD9G,EACiH,GADjH,EACsH,GADtH,EAC2H,GAD3H,EACgI,EADhI,EACoI,GADpI,EACyI,CADzI,EAC4I,CAD5I,EAC+I,CAD/I,EACkJ,GADlJ,EACuJ,GADvJ,EAC4J,GAD5J,EACiK,EADjK,EACqK,GADrK,EAC0K,CAD1K,EAC6K,CAD7K,EACgL,CADhL,EACmL,GADnL,EACwL,GADxL,EAC6L,GAD7L,EACkM,EADlM,EACsM,GADtM,EAC2M,CAD3M,EAC8M,CAD9M,EACiN,CADjN,EACoN,GADpN,EACyN,GADzN,EAC8N,GAD9N,EACmO,EADnO,EACuO,GADvO,EAC4O,CAD5O,EAC+O,CAD/O,EACkP,CADlP,EACqP,GADrP,EAC0P,GAD1P,EAC+P,GAD/P,EACoQ,EADpQ,EACwQ,GADxQ,EAC6Q,GAD7Q,EACkR,GADlR,EACuR,GADvR,EAC4R,CAD5R,EAC+R,CAD/R,EACkS,EADlS,EACsS,GADtS,EAC2S,CAD3S,EAC8S,CAD9S,EACiT,CADjT,EACoT,CADpT,EACuT,EADvT,EAC2T,CAD3T,EAC8T,EAD9T,EACkU,EADlU,EACsU,CADtU,EACyU,CADzU,EAC4U,GAD5U,EACiV,EADjV,EACqV,CADrV,EACwV,GADxV,EAC6V,EAD7V,EACiW,CADjW,EACoW,GADpW,EACyW,EADzW,EAC6W,EAD7W,EACiX,GADjX,EACsX,GADtX,EAC2X,EAD3X,EAC+X,CAD/X,EACkY,GADlY,EACuY,EADvY,EAC2Y,CAD3Y,EAC8Y,GAD9Y,EACmZ,EADnZ,EACuZ,EADvZ,EAC2Z,GAD3Z,EACga,GADha,EACqa,GADra,EAC0a,EAD1a,EAC8a,CAD9a,EACib,EADjb,EACqb,EADrb,EACyb,GADzb,EAC8b,GAD9b,EACmc,EADnc,EACuc,CADvc,EAC0c,EAD1c,EAC8c,CAD9c,EACid,GADjd,EACsd,EADtd,EAC0d,EAD1d,EAC8d,CAD9d,EACie,CADje,EACoe,GADpe,EACye,EADze,EAC6e,CAD7e,EACgf,GADhf,EACqf,EADrf,EACyf,CADzf,EAC4f,GAD5f,EACigB,EADjgB,EACqgB,EADrgB,EACygB,GADzgB,EAC8gB,GAD9gB,EACmhB,EADnhB,EACuhB,CADvhB,EAC0hB,GAD1hB,EAC+hB,EAD/hB,EACmiB,CADniB,EACsiB,GADtiB,EAC2iB,EAD3iB,EAC+iB,EAD/iB,EACmjB,GADnjB,EACwjB,GADxjB,EAC6jB,GAD7jB,EACkkB,EADlkB,EACskB,CADtkB,EACykB,EADzkB,EAC6kB,EAD7kB,EACilB,GADjlB,EACslB,GADtlB,EAC2lB,EAD3lB,EAC+lB,CAD/lB,EACkmB,EADlmB,EACsmB,CADtmB,EACymB,GADzmB,EAC8mB,EAD9mB,EACknB,EADlnB,EACsnB,CADtnB,EACynB,CADznB,EAC4nB,GAD5nB,EACioB,EADjoB,EACqoB,CADroB,EACwoB,GADxoB,EAC6oB,EAD7oB,EACipB,CADjpB,EACopB,GADppB,EACypB,EADzpB,EAC6pB,EAD7pB,EACiqB,GADjqB,EACsqB,GADtqB,EAC2qB,EAD3qB,EAC+qB,CAD/qB,EACkrB,GADlrB,EACurB,EADvrB,EAC2rB,CAD3rB,EAC8rB,GAD9rB,EACmsB,EADnsB,EACusB,EADvsB,EAC2sB,GAD3sB,EACgtB,GADhtB,EACqtB,GADrtB,EAC0tB,EAD1tB,EAC8tB,CAD9tB,EACiuB,EADjuB,EACquB,EADruB,EACyuB,GADzuB,EAC8uB,GAD9uB,EACmvB,EADnvB,EACuvB,CADvvB,EAC0vB,EAD1vB,EAC8vB,CAD9vB,EACiwB,GADjwB,EACswB,EADtwB,EAC0wB,EAD1wB,EAC8wB,CAD9wB,EACixB,CADjxB,EACoxB,GADpxB,EACyxB,EADzxB,EAC6xB,CAD7xB,EACgyB,GADhyB,EACqyB,EADryB,EACyyB,CADzyB,EAC4yB,GAD5yB,EACizB,EADjzB,EACqzB,EADrzB,EACyzB,GADzzB,EAC8zB,GAD9zB,EACm0B,EADn0B,EACu0B,CADv0B,EAC00B,GAD10B,EAC+0B,EAD/0B,EACm1B,CADn1B,EACs1B,GADt1B,EAC21B,EAD31B,EAC+1B,EAD/1B,EACm2B,GADn2B,EACw2B,GADx2B,EAC62B,GAD72B,EACk3B,EADl3B,EACs3B,CADt3B,EACy3B,EADz3B,EAC63B,EAD73B,EACi4B,GADj4B,EACs4B,GADt4B,EAC24B,EAD34B,EAC+4B,CAD/4B,EACk5B,EADl5B,EACs5B,CADt5B,EACy5B,GADz5B,EAC85B,EAD95B,EACk6B,EADl6B,EACs6B,CADt6B,EACy6B,CADz6B,EAC46B,GAD56B,EACi7B,EADj7B,EACq7B,CADr7B,EACw7B,GADx7B,EAC67B,EAD77B,EACi8B,CADj8B,EACo8B,GADp8B,EACy8B,EADz8B,EAC68B,EAD78B,EACi9B,GADj9B,EACs9B,GADt9B,EAC29B,EAD39B,EAC+9B,CAD/9B,EACk+B,GADl+B,EACu+B,EADv+B,EAC2+B,CAD3+B,EAC8+B,GAD9+B,EACm/B,EADn/B,EACu/B,EADv/B,EAC2/B,GAD3/B,EACggC,GADhgC,EACqgC,GADrgC,EAC0gC,EAD1gC,EAC8gC,CAD9gC,EACihC,EADjhC,EACqhC,EADrhC,EACyhC,GADzhC,EAC8hC,GAD9hC,EACmiC,EADniC,EACuiC,CADviC,EAC0iC,EAD1iC,EAC8iC,CAD9iC,EACijC,GADjjC,EACsjC,EADtjC,CAAf,CAAvB,CAAzB,EAEF,EAFE,EAEEnG,OAFT,CAAA;AAGD,CAJD,CAIE,OAAOmB,CAAP,EAAU;AAEX,CAAA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2E,IAAT,CAAcM,GAAd,EAAmBC,IAAnB,EAAyBC,QAAzB,EAAmC;AAEnC;AACA;AACA;AACA;AACI,EAAA,IAAA,CAAKF,GAAL,GAAWA,GAAG,GAAG,CAAjB,CAAA;AAEJ;AACA;AACA;AACA;;AACI,EAAA,IAAA,CAAKC,IAAL,GAAYA,IAAI,GAAG,CAAnB,CAAA;AAEJ;AACA;AACA;AACA;;AACI,EAAA,IAAA,CAAKC,QAAL,GAAgB,CAAC,CAACA,QA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"}
|