@agilemotion/oui-react-js 2.0.19 → 2.0.21

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.
@@ -3,7 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.default = exports.REJOIN_ALERT_MESSAGE = void 0;
7
+ exports.isRtpCollisionError = isRtpCollisionError;
7
8
  var _mediasoupClient = require("mediasoup-client");
8
9
  var _VCEventType = require("./VCEventType");
9
10
  var _SocketManager = _interopRequireDefault(require("../SocketManager"));
@@ -12,6 +13,20 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
12
13
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
13
14
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
14
15
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
16
+ // A recycled m-section can make Chrome reject the SDP with an RTP header-extension id
17
+ // collision (video-orientation vs transport-wide-cc). It surfaces as InvalidAccessError
18
+ // (consume / setRemoteDescription) or OperationError (produce / createOffer) and is fatal
19
+ // for that RTCPeerConnection — the only reliable recovery is for the user to rejoin.
20
+ function isRtpCollisionError(e) {
21
+ if (!e) return false;
22
+ const name = e.name || '';
23
+ const message = e.message || '';
24
+ return name === 'InvalidAccessError' || name === 'OperationError' || /RTP extension ID reassignment|collision on active MID/i.test(message);
25
+ }
26
+
27
+ // User-facing prompt fired (via SYSTEM_ALERT) when a fatal media error is detected, so the
28
+ // meeting UI can ask the participant to leave, refresh and rejoin.
29
+ const REJOIN_ALERT_MESSAGE = exports.REJOIN_ALERT_MESSAGE = "A media connection error occurred. Please leave the meeting, refresh your browser, and rejoin.";
15
30
  class MediaSoupHelper {
16
31
  constructor() {
17
32
  _defineProperty(this, "getParticipantDevice", async routerRtpCapabilities => {
@@ -68,6 +83,13 @@ class MediaSoupHelper {
68
83
  };
69
84
  } catch (e) {
70
85
  console.error(e);
86
+ if (isRtpCollisionError(e)) {
87
+ _VCEventManager.default.fireEvent(_VCEventType.VCEventType.SYSTEM_ALERT, {
88
+ payload: {
89
+ message: REJOIN_ALERT_MESSAGE
90
+ }
91
+ });
92
+ }
71
93
  }
72
94
  }
73
95
  }
@@ -75,7 +97,8 @@ class MediaSoupHelper {
75
97
  });
76
98
  }
77
99
  async initConsumerTransport(device, roomId, userId) {
78
- console.log("CREATING CONSUMER TRANSPORT FOR : " + userId + " ROOM " + roomId);
100
+ let label = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
101
+ console.log("CREATING " + (label ? label.toUpperCase() + " " : "") + "CONSUMER TRANSPORT FOR : " + userId + " ROOM " + roomId);
79
102
  let data = null;
80
103
  try {
81
104
  data = await _SocketManager.default.emitEvent(_VCEventType.VCEventType.CREATE_WEBRTC_TRANSPORT, {
@@ -202,4 +225,4 @@ class MediaSoupHelper {
202
225
  const instance = new MediaSoupHelper();
203
226
  Object.freeze(instance);
204
227
  var _default = exports.default = instance;
205
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWVkaWFzb3VwQ2xpZW50IiwicmVxdWlyZSIsIl9WQ0V2ZW50VHlwZSIsIl9Tb2NrZXRNYW5hZ2VyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9WQ0V2ZW50TWFuYWdlciIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9kZWZpbmVQcm9wZXJ0eSIsInIiLCJ0IiwiX3RvUHJvcGVydHlLZXkiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIk1lZGlhU291cEhlbHBlciIsImNvbnN0cnVjdG9yIiwicm91dGVyUnRwQ2FwYWJpbGl0aWVzIiwiZGV2aWNlIiwiRGV2aWNlIiwiZXJyb3IiLCJjb25zb2xlIiwiRXJyb3IiLCJsb2FkIiwicHJvZHVjZXJJZCIsInJ0cENhcGFiaWxpdGllcyIsImNvbnN1bWVyVHJhbnNwb3J0Iiwicm9vbUlkIiwidXNlcklkIiwidHlwZSIsImxvZyIsImRhdGEiLCJzb2NrZXRNYW5hZ2VyIiwiZW1pdEV2ZW50IiwiVkNFdmVudFR5cGUiLCJDT05TVU1FIiwiY29uc3VtZXJUcmFuc3BvcnRJZCIsImlkIiwia2luZCIsInBhcmFtcyIsInJ0cFBhcmFtZXRlcnMiLCJjb2RlY09wdGlvbnMiLCJjb25zdW1lciIsImNvbnN1bWUiLCJzdHJlYW0iLCJNZWRpYVN0cmVhbSIsImFkZFRyYWNrIiwidHJhY2siLCJpbml0Q29uc3VtZXJUcmFuc3BvcnQiLCJDUkVBVEVfV0VCUlRDX1RSQU5TUE9SVCIsImZvcmNlVGNwIiwidmNBcHBNYW5hZ2VyIiwiZmlyZUV2ZW50IiwiQ1JFQVRFX1RSQU5TUE9SVF9GQUlMRUQiLCJzdGF0dXMiLCJjcmVhdGVSZWN2VHJhbnNwb3J0Iiwib24iLCJfcmVmIiwiY2FsbGJhY2siLCJlcnJiYWNrIiwiZHRsc1BhcmFtZXRlcnMiLCJDT05ORUNUX1RSQU5TUE9SVCIsInRyYW5zcG9ydElkIiwidGhlbiIsImNhdGNoIiwiYmluZCIsInN0YXRlIiwiQ09OU1VNRVJfVFJBTlNQT1JUX0ZBSUxFRCIsImluaXRQcm9kdWNlclRyYW5zcG9ydCIsInByb2R1Y2VyVHJhbnNwb3J0IiwiY3JlYXRlU2VuZFRyYW5zcG9ydCIsIl9yZWYyIiwiX3JlZjMiLCJhcHBEYXRhIiwiUFJPRFVDRSIsInByb2R1Y2VyVHJhbnNwb3J0SWQiLCJlcnIiLCJQUk9EVUNFUl9UUkFOU1BPUlRfRkFJTEVEIiwiY2xvc2UiLCJpbnN0YW5jZSIsImZyZWV6ZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tZWRpYS9NZWRpYVNvdXBIZWxwZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEZXZpY2V9IGZyb20gXCJtZWRpYXNvdXAtY2xpZW50XCI7XG5pbXBvcnQge1ZDRXZlbnRUeXBlfSBmcm9tIFwiLi9WQ0V2ZW50VHlwZVwiO1xuaW1wb3J0IHNvY2tldE1hbmFnZXIgZnJvbSBcIi4uL1NvY2tldE1hbmFnZXJcIjtcbmltcG9ydCB2Y0FwcE1hbmFnZXIgZnJvbSBcIi4vVkNFdmVudE1hbmFnZXJcIjtcblxuY2xhc3MgTWVkaWFTb3VwSGVscGVyIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICB9XG5cbiAgICBnZXRQYXJ0aWNpcGFudERldmljZSA9IGFzeW5jIChyb3V0ZXJSdHBDYXBhYmlsaXRpZXMpID0+IHtcbiAgICAgICAgbGV0IGRldmljZTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZGV2aWNlID0gbmV3IERldmljZSgpXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gbmV3IERldmljZSgpIHRocm93cyBvbiB1bnN1cHBvcnRlZCBicm93c2VycyDigJQgYmFpbCB3aXRoIGEgY2xlYXIgZXJyb3JcbiAgICAgICAgLy8gaW5zdGVhZCBvZiBkZXJlZmVyZW5jaW5nIHVuZGVmaW5lZCBvbiB0aGUgbmV4dCBsaW5lLlxuICAgICAgICBpZiAoIWRldmljZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtZWRpYXNvdXAgRGV2aWNlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyJyk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBkZXZpY2UubG9hZCh7XG4gICAgICAgICAgICByb3V0ZXJSdHBDYXBhYmlsaXRpZXNcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGRldmljZVxuICAgIH07XG5cbiAgICBhc3luYyBpbml0Q29uc3VtZXJUcmFuc3BvcnQoZGV2aWNlLCByb29tSWQsIHVzZXJJZCkge1xuICAgICAgICBjb25zb2xlLmxvZyhcIkNSRUFUSU5HIENPTlNVTUVSIFRSQU5TUE9SVCBGT1IgOiBcIiArIHVzZXJJZCArIFwiIFJPT00gXCIgKyByb29tSWQpO1xuICAgICAgICBsZXQgZGF0YSA9IG51bGw7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkYXRhID0gYXdhaXQgc29ja2V0TWFuYWdlci5lbWl0RXZlbnQoVkNFdmVudFR5cGUuQ1JFQVRFX1dFQlJUQ19UUkFOU1BPUlQsIHtcbiAgICAgICAgICAgICAgICBmb3JjZVRjcDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdXNlcklkLFxuICAgICAgICAgICAgICAgIHJvb21JZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHZjQXBwTWFuYWdlci5maXJlRXZlbnQoVkNFdmVudFR5cGUuQ1JFQVRFX1RSQU5TUE9SVF9GQUlMRUQsIHt9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZGF0YSB8fCBkYXRhLnN0YXR1cyA9PT0gJ0VSUk9SJykge1xuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGRhdGEuZXJyb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2Y0FwcE1hbmFnZXIuZmlyZUV2ZW50KFZDRXZlbnRUeXBlLkNSRUFURV9UUkFOU1BPUlRfRkFJTEVELCB7fSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY29uc3VtZXJUcmFuc3BvcnQgPSBkZXZpY2UuY3JlYXRlUmVjdlRyYW5zcG9ydChkYXRhLnBhcmFtcyk7XG4gICAgICAgIGNvbnN1bWVyVHJhbnNwb3J0Lm9uKFxuICAgICAgICAgICAgJ2Nvbm5lY3QnLFxuICAgICAgICAgICAgZnVuY3Rpb24gKHtkdGxzUGFyYW1ldGVyc30sIGNhbGxiYWNrLCBlcnJiYWNrKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJDT05TVU1FUiBDT05ORUNUIERUTFMgUEFSQU1TIDogXCIsIGR0bHNQYXJhbWV0ZXJzKTtcbiAgICAgICAgICAgICAgICBzb2NrZXRNYW5hZ2VyLmVtaXRFdmVudChWQ0V2ZW50VHlwZS5DT05ORUNUX1RSQU5TUE9SVCwge1xuICAgICAgICAgICAgICAgICAgICBkdGxzUGFyYW1ldGVycyxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNwb3J0SWQ6IGRhdGEucGFyYW1zLmlkLFxuICAgICAgICAgICAgICAgICAgICB1c2VySWQsXG4gICAgICAgICAgICAgICAgICAgIHJvb21JZFxuICAgICAgICAgICAgICAgIH0pLnRoZW4oY2FsbGJhY2spXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaChlcnJiYWNrKTtcbiAgICAgICAgICAgIH0uYmluZCh0aGlzKVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN1bWVyVHJhbnNwb3J0Lm9uKFxuICAgICAgICAgICAgJ2Nvbm5lY3Rpb25zdGF0ZWNoYW5nZScsXG4gICAgICAgICAgICBhc3luYyBmdW5jdGlvbiAoc3RhdGUpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Nvbm5lY3RpbmcnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Nvbm5lY3RlZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmFpbGVkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHZjQXBwTWFuYWdlci5maXJlRXZlbnQoVkNFdmVudFR5cGUuQ09OU1VNRVJfVFJBTlNQT1JUX0ZBSUxFRCwge30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0uYmluZCh0aGlzKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBjb25zdW1lclRyYW5zcG9ydDtcbiAgICB9XG5cbiAgICBhc3luYyBpbml0UHJvZHVjZXJUcmFuc3BvcnQoZGV2aWNlLCByb29tSWQsIHVzZXJJZCkge1xuICAgICAgICBjb25zb2xlLmxvZyhcIkNSRUFUSU5HIFBST0RVQ0VSIFRSQU5TUE9SVCBGT1IgOiBcIiArIHVzZXJJZCArIFwiIFJPT00gOiBcIiArIHJvb21JZCk7XG4gICAgICAgIGxldCBkYXRhID0gbnVsbDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGRhdGEgPSBhd2FpdCBzb2NrZXRNYW5hZ2VyLmVtaXRFdmVudChWQ0V2ZW50VHlwZS5DUkVBVEVfV0VCUlRDX1RSQU5TUE9SVCwge1xuICAgICAgICAgICAgICAgIGZvcmNlVGNwOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBydHBDYXBhYmlsaXRpZXM6IGRldmljZS5ydHBDYXBhYmlsaXRpZXMsXG4gICAgICAgICAgICAgICAgcm9vbUlkLFxuICAgICAgICAgICAgICAgIHVzZXJJZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHZjQXBwTWFuYWdlci5maXJlRXZlbnQoVkNFdmVudFR5cGUuQ1JFQVRFX1RSQU5TUE9SVF9GQUlMRUQsIHt9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZGF0YSB8fCBkYXRhLnN0YXR1cyA9PT0gJ0VSUk9SJykge1xuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGRhdGEuZXJyb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2Y0FwcE1hbmFnZXIuZmlyZUV2ZW50KFZDRXZlbnRUeXBlLkNSRUFURV9UUkFOU1BPUlRfRkFJTEVELCB7fSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcHJvZHVjZXJUcmFuc3BvcnQgPSBkZXZpY2UuY3JlYXRlU2VuZFRyYW5zcG9ydChkYXRhLnBhcmFtcyk7XG4gICAgICAgIHByb2R1Y2VyVHJhbnNwb3J0Lm9uKFxuICAgICAgICAgICAgJ2Nvbm5lY3QnLFxuICAgICAgICAgICAgYXN5bmMgZnVuY3Rpb24gKHtkdGxzUGFyYW1ldGVyc30sIGNhbGxiYWNrLCBlcnJiYWNrKSB7XG4gICAgICAgICAgICAgICAgc29ja2V0TWFuYWdlci5lbWl0RXZlbnQoVkNFdmVudFR5cGUuQ09OTkVDVF9UUkFOU1BPUlQsIHtcbiAgICAgICAgICAgICAgICAgICAgZHRsc1BhcmFtZXRlcnMsXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zcG9ydElkOiBkYXRhLnBhcmFtcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgcm9vbUlkLFxuICAgICAgICAgICAgICAgICAgICB1c2VySWRcbiAgICAgICAgICAgICAgICB9KS50aGVuKGNhbGxiYWNrKVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goZXJyYmFjayk7XG4gICAgICAgICAgICB9LmJpbmQodGhpcylcbiAgICAgICAgKTtcblxuICAgICAgICBwcm9kdWNlclRyYW5zcG9ydC5vbihcbiAgICAgICAgICAgICdwcm9kdWNlJyxcbiAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uICh7a2luZCwgcnRwUGFyYW1ldGVycywgYXBwRGF0YX0sIGNhbGxiYWNrLCBlcnJiYWNrKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qge3Byb2R1Y2VySWR9ID0gYXdhaXQgc29ja2V0TWFuYWdlci5lbWl0RXZlbnQoVkNFdmVudFR5cGUuUFJPRFVDRSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjZXJUcmFuc3BvcnRJZDogcHJvZHVjZXJUcmFuc3BvcnQuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBraW5kLFxuICAgICAgICAgICAgICAgICAgICAgICAgcnRwUGFyYW1ldGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvb21JZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcERhdGFcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHByb2R1Y2VySWRcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyYmFjayhlcnIpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfS5iaW5kKHRoaXMpXG4gICAgICAgICk7XG5cbiAgICAgICAgcHJvZHVjZXJUcmFuc3BvcnQub24oXG4gICAgICAgICAgICAnY29ubmVjdGlvbnN0YXRlY2hhbmdlJyxcbiAgICAgICAgICAgIGZ1bmN0aW9uIChzdGF0ZSkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoc3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29ubmVjdGluZyc6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29ubmVjdGVkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdmYWlsZWQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTWlycm9yIHRoZSBjb25zdW1lciB0cmFuc3BvcnQ6IHN1cmZhY2UgdGhlIGZhaWx1cmUgKHNvIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcm9vbSBjYW4gcmVhY3QvcmVjb3ZlcikgaW5zdGVhZCBvZiBjbG9zaW5nIHNpbGVudGx5LlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignUFJPRFVDRVIgVFJBTlNQT1JUIEZBSUxFRCBmb3IgJyArIHVzZXJJZCArICcgcm9vbSAnICsgcm9vbUlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZjQXBwTWFuYWdlci5maXJlRXZlbnQoVkNFdmVudFR5cGUuUFJPRFVDRVJfVFJBTlNQT1JUX0ZBSUxFRCwge30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjZXJUcmFuc3BvcnQuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LmJpbmQodGhpcylcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gcHJvZHVjZXJUcmFuc3BvcnQ7XG4gICAgfVxuXG4gICAgZ2V0Q29uc3VtZVN0cmVhbSA9IGFzeW5jIChwcm9kdWNlcklkLCBydHBDYXBhYmlsaXRpZXMsIGNvbnN1bWVyVHJhbnNwb3J0LCByb29tSWQsIHVzZXJJZCwgdHlwZSkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhcIkNPTlNVTUlORyBGUk9NIDogXCIgKyBwcm9kdWNlcklkICsgXCIgUk9PTSA6IFwiICsgcm9vbUlkKTtcblxuICAgICAgICBpZiAoY29uc3VtZXJUcmFuc3BvcnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBzb2NrZXRNYW5hZ2VyLmVtaXRFdmVudChWQ0V2ZW50VHlwZS5DT05TVU1FLCB7XG4gICAgICAgICAgICAgICAgcnRwQ2FwYWJpbGl0aWVzLFxuICAgICAgICAgICAgICAgIGNvbnN1bWVyVHJhbnNwb3J0SWQ6IGNvbnN1bWVyVHJhbnNwb3J0LmlkLFxuICAgICAgICAgICAgICAgIHByb2R1Y2VySWQsXG4gICAgICAgICAgICAgICAgcm9vbUlkLFxuICAgICAgICAgICAgICAgIHVzZXJJZCxcbiAgICAgICAgICAgICAgICBraW5kOiB0eXBlXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGRhdGEucGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qge2lkLCBraW5kLCBydHBQYXJhbWV0ZXJzfSA9IGRhdGEucGFyYW1zO1xuXG4gICAgICAgICAgICAgICAgbGV0IGNvZGVjT3B0aW9ucyA9IHt9O1xuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29uc3VtZXIgPSBhd2FpdCBjb25zdW1lclRyYW5zcG9ydC5jb25zdW1lKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjZXJJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQsXG4gICAgICAgICAgICAgICAgICAgICAgICBydHBQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZWNPcHRpb25zXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNvbnN1bWVyKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyZWFtID0gbmV3IE1lZGlhU3RyZWFtKCk7XG4gICAgICAgICAgICAgICAgICAgIHN0cmVhbS5hZGRUcmFjayhjb25zdW1lci50cmFjayk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN1bWVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLFxuICAgICAgICAgICAgICAgICAgICAgICAga2luZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG59XG5cbmNvbnN0IGluc3RhbmNlID0gbmV3IE1lZGlhU291cEhlbHBlcigpO1xuT2JqZWN0LmZyZWV6ZShpbnN0YW5jZSk7XG5leHBvcnQgZGVmYXVsdCBpbnN0YW5jZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsZ0JBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFlBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGNBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLGVBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUE0QyxTQUFBRyx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUFHLGdCQUFBSCxDQUFBLEVBQUFJLENBQUEsRUFBQUMsQ0FBQSxZQUFBRCxDQUFBLEdBQUFFLGNBQUEsQ0FBQUYsQ0FBQSxNQUFBSixDQUFBLEdBQUFPLE1BQUEsQ0FB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
228
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWVkaWFzb3VwQ2xpZW50IiwicmVxdWlyZSIsIl9WQ0V2ZW50VHlwZSIsIl9Tb2NrZXRNYW5hZ2VyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9WQ0V2ZW50TWFuYWdlciIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9kZWZpbmVQcm9wZXJ0eSIsInIiLCJ0IiwiX3RvUHJvcGVydHlLZXkiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsImlzUnRwQ29sbGlzaW9uRXJyb3IiLCJuYW1lIiwibWVzc2FnZSIsInRlc3QiLCJSRUpPSU5fQUxFUlRfTUVTU0FHRSIsImV4cG9ydHMiLCJNZWRpYVNvdXBIZWxwZXIiLCJjb25zdHJ1Y3RvciIsInJvdXRlclJ0cENhcGFiaWxpdGllcyIsImRldmljZSIsIkRldmljZSIsImVycm9yIiwiY29uc29sZSIsIkVycm9yIiwibG9hZCIsInByb2R1Y2VySWQiLCJydHBDYXBhYmlsaXRpZXMiLCJjb25zdW1lclRyYW5zcG9ydCIsInJvb21JZCIsInVzZXJJZCIsInR5cGUiLCJsb2ciLCJkYXRhIiwic29ja2V0TWFuYWdlciIsImVtaXRFdmVudCIsIlZDRXZlbnRUeXBlIiwiQ09OU1VNRSIsImNvbnN1bWVyVHJhbnNwb3J0SWQiLCJpZCIsImtpbmQiLCJwYXJhbXMiLCJydHBQYXJhbWV0ZXJzIiwiY29kZWNPcHRpb25zIiwiY29uc3VtZXIiLCJjb25zdW1lIiwic3RyZWFtIiwiTWVkaWFTdHJlYW0iLCJhZGRUcmFjayIsInRyYWNrIiwidmNBcHBNYW5hZ2VyIiwiZmlyZUV2ZW50IiwiU1lTVEVNX0FMRVJUIiwicGF5bG9hZCIsImluaXRDb25zdW1lclRyYW5zcG9ydCIsImxhYmVsIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwidG9VcHBlckNhc2UiLCJDUkVBVEVfV0VCUlRDX1RSQU5TUE9SVCIsImZvcmNlVGNwIiwiQ1JFQVRFX1RSQU5TUE9SVF9GQUlMRUQiLCJzdGF0dXMiLCJjcmVhdGVSZWN2VHJhbnNwb3J0Iiwib24iLCJfcmVmIiwiY2FsbGJhY2siLCJlcnJiYWNrIiwiZHRsc1BhcmFtZXRlcnMiLCJDT05ORUNUX1RSQU5TUE9SVCIsInRyYW5zcG9ydElkIiwidGhlbiIsImNhdGNoIiwiYmluZCIsInN0YXRlIiwiQ09OU1VNRVJfVFJBTlNQT1JUX0ZBSUxFRCIsImluaXRQcm9kdWNlclRyYW5zcG9ydCIsInByb2R1Y2VyVHJhbnNwb3J0IiwiY3JlYXRlU2VuZFRyYW5zcG9ydCIsIl9yZWYyIiwiX3JlZjMiLCJhcHBEYXRhIiwiUFJPRFVDRSIsInByb2R1Y2VyVHJhbnNwb3J0SWQiLCJlcnIiLCJQUk9EVUNFUl9UUkFOU1BPUlRfRkFJTEVEIiwiY2xvc2UiLCJpbnN0YW5jZSIsImZyZWV6ZSIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21lZGlhL01lZGlhU291cEhlbHBlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RldmljZX0gZnJvbSBcIm1lZGlhc291cC1jbGllbnRcIjtcbmltcG9ydCB7VkNFdmVudFR5cGV9IGZyb20gXCIuL1ZDRXZlbnRUeXBlXCI7XG5pbXBvcnQgc29ja2V0TWFuYWdlciBmcm9tIFwiLi4vU29ja2V0TWFuYWdlclwiO1xuaW1wb3J0IHZjQXBwTWFuYWdlciBmcm9tIFwiLi9WQ0V2ZW50TWFuYWdlclwiO1xuXG4vLyBBIHJlY3ljbGVkIG0tc2VjdGlvbiBjYW4gbWFrZSBDaHJvbWUgcmVqZWN0IHRoZSBTRFAgd2l0aCBhbiBSVFAgaGVhZGVyLWV4dGVuc2lvbiBpZFxuLy8gY29sbGlzaW9uICh2aWRlby1vcmllbnRhdGlvbiB2cyB0cmFuc3BvcnQtd2lkZS1jYykuIEl0IHN1cmZhY2VzIGFzIEludmFsaWRBY2Nlc3NFcnJvclxuLy8gKGNvbnN1bWUgLyBzZXRSZW1vdGVEZXNjcmlwdGlvbikgb3IgT3BlcmF0aW9uRXJyb3IgKHByb2R1Y2UgLyBjcmVhdGVPZmZlcikgYW5kIGlzIGZhdGFsXG4vLyBmb3IgdGhhdCBSVENQZWVyQ29ubmVjdGlvbiDigJQgdGhlIG9ubHkgcmVsaWFibGUgcmVjb3ZlcnkgaXMgZm9yIHRoZSB1c2VyIHRvIHJlam9pbi5cbmV4cG9ydCBmdW5jdGlvbiBpc1J0cENvbGxpc2lvbkVycm9yKGUpIHtcbiAgICBpZiAoIWUpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBuYW1lID0gZS5uYW1lIHx8ICcnO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlLm1lc3NhZ2UgfHwgJyc7XG4gICAgcmV0dXJuIG5hbWUgPT09ICdJbnZhbGlkQWNjZXNzRXJyb3InIHx8IG5hbWUgPT09ICdPcGVyYXRpb25FcnJvcidcbiAgICAgICAgfHwgL1JUUCBleHRlbnNpb24gSUQgcmVhc3NpZ25tZW50fGNvbGxpc2lvbiBvbiBhY3RpdmUgTUlEL2kudGVzdChtZXNzYWdlKTtcbn1cblxuLy8gVXNlci1mYWNpbmcgcHJvbXB0IGZpcmVkICh2aWEgU1lTVEVNX0FMRVJUKSB3aGVuIGEgZmF0YWwgbWVkaWEgZXJyb3IgaXMgZGV0ZWN0ZWQsIHNvIHRoZVxuLy8gbWVldGluZyBVSSBjYW4gYXNrIHRoZSBwYXJ0aWNpcGFudCB0byBsZWF2ZSwgcmVmcmVzaCBhbmQgcmVqb2luLlxuZXhwb3J0IGNvbnN0IFJFSk9JTl9BTEVSVF9NRVNTQUdFID1cbiAgICBcIkEgbWVkaWEgY29ubmVjdGlvbiBlcnJvciBvY2N1cnJlZC4gUGxlYXNlIGxlYXZlIHRoZSBtZWV0aW5nLCByZWZyZXNoIHlvdXIgYnJvd3NlciwgYW5kIHJlam9pbi5cIjtcblxuY2xhc3MgTWVkaWFTb3VwSGVscGVyIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICB9XG5cbiAgICBnZXRQYXJ0aWNpcGFudERldmljZSA9IGFzeW5jIChyb3V0ZXJSdHBDYXBhYmlsaXRpZXMpID0+IHtcbiAgICAgICAgbGV0IGRldmljZTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZGV2aWNlID0gbmV3IERldmljZSgpXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gbmV3IERldmljZSgpIHRocm93cyBvbiB1bnN1cHBvcnRlZCBicm93c2VycyDigJQgYmFpbCB3aXRoIGEgY2xlYXIgZXJyb3JcbiAgICAgICAgLy8gaW5zdGVhZCBvZiBkZXJlZmVyZW5jaW5nIHVuZGVmaW5lZCBvbiB0aGUgbmV4dCBsaW5lLlxuICAgICAgICBpZiAoIWRldmljZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtZWRpYXNvdXAgRGV2aWNlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyJyk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBkZXZpY2UubG9hZCh7XG4gICAgICAgICAgICByb3V0ZXJSdHBDYXBhYmlsaXRpZXNcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGRldmljZVxuICAgIH07XG5cbiAgICBhc3luYyBpbml0Q29uc3VtZXJUcmFuc3BvcnQoZGV2aWNlLCByb29tSWQsIHVzZXJJZCwgbGFiZWwgPSAnJykge1xuICAgICAgICBjb25zb2xlLmxvZyhcIkNSRUFUSU5HIFwiICsgKGxhYmVsID8gbGFiZWwudG9VcHBlckNhc2UoKSArIFwiIFwiIDogXCJcIikgKyBcIkNPTlNVTUVSIFRSQU5TUE9SVCBGT1IgOiBcIiArIHVzZXJJZCArIFwiIFJPT00gXCIgKyByb29tSWQpO1xuICAgICAgICBsZXQgZGF0YSA9IG51bGw7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkYXRhID0gYXdhaXQgc29ja2V0TWFuYWdlci5lbWl0RXZlbnQoVkNFdmVudFR5cGUuQ1JFQVRFX1dFQlJUQ19UUkFOU1BPUlQsIHtcbiAgICAgICAgICAgICAgICBmb3JjZVRjcDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdXNlcklkLFxuICAgICAgICAgICAgICAgIHJvb21JZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHZjQXBwTWFuYWdlci5maXJlRXZlbnQoVkNFdmVudFR5cGUuQ1JFQVRFX1RSQU5TUE9SVF9GQUlMRUQsIHt9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZGF0YSB8fCBkYXRhLnN0YXR1cyA9PT0gJ0VSUk9SJykge1xuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGRhdGEuZXJyb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2Y0FwcE1hbmFnZXIuZmlyZUV2ZW50KFZDRXZlbnRUeXBlLkNSRUFURV9UUkFOU1BPUlRfRkFJTEVELCB7fSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY29uc3VtZXJUcmFuc3BvcnQgPSBkZXZpY2UuY3JlYXRlUmVjdlRyYW5zcG9ydChkYXRhLnBhcmFtcyk7XG4gICAgICAgIGNvbnN1bWVyVHJhbnNwb3J0Lm9uKFxuICAgICAgICAgICAgJ2Nvbm5lY3QnLFxuICAgICAgICAgICAgZnVuY3Rpb24gKHtkdGxzUGFyYW1ldGVyc30sIGNhbGxiYWNrLCBlcnJiYWNrKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJDT05TVU1FUiBDT05ORUNUIERUTFMgUEFSQU1TIDogXCIsIGR0bHNQYXJhbWV0ZXJzKTtcbiAgICAgICAgICAgICAgICBzb2NrZXRNYW5hZ2VyLmVtaXRFdmVudChWQ0V2ZW50VHlwZS5DT05ORUNUX1RSQU5TUE9SVCwge1xuICAgICAgICAgICAgICAgICAgICBkdGxzUGFyYW1ldGVycyxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNwb3J0SWQ6IGRhdGEucGFyYW1zLmlkLFxuICAgICAgICAgICAgICAgICAgICB1c2VySWQsXG4gICAgICAgICAgICAgICAgICAgIHJvb21JZFxuICAgICAgICAgICAgICAgIH0pLnRoZW4oY2FsbGJhY2spXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaChlcnJiYWNrKTtcbiAgICAgICAgICAgIH0uYmluZCh0aGlzKVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN1bWVyVHJhbnNwb3J0Lm9uKFxuICAgICAgICAgICAgJ2Nvbm5lY3Rpb25zdGF0ZWNoYW5nZScsXG4gICAgICAgICAgICBhc3luYyBmdW5jdGlvbiAoc3RhdGUpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Nvbm5lY3RpbmcnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Nvbm5lY3RlZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmFpbGVkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHZjQXBwTWFuYWdlci5maXJlRXZlbnQoVkNFdmVudFR5cGUuQ09OU1VNRVJfVFJBTlNQT1JUX0ZBSUxFRCwge30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0uYmluZCh0aGlzKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBjb25zdW1lclRyYW5zcG9ydDtcbiAgICB9XG5cbiAgICBhc3luYyBpbml0UHJvZHVjZXJUcmFuc3BvcnQoZGV2aWNlLCByb29tSWQsIHVzZXJJZCkge1xuICAgICAgICBjb25zb2xlLmxvZyhcIkNSRUFUSU5HIFBST0RVQ0VSIFRSQU5TUE9SVCBGT1IgOiBcIiArIHVzZXJJZCArIFwiIFJPT00gOiBcIiArIHJvb21JZCk7XG4gICAgICAgIGxldCBkYXRhID0gbnVsbDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGRhdGEgPSBhd2FpdCBzb2NrZXRNYW5hZ2VyLmVtaXRFdmVudChWQ0V2ZW50VHlwZS5DUkVBVEVfV0VCUlRDX1RSQU5TUE9SVCwge1xuICAgICAgICAgICAgICAgIGZvcmNlVGNwOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBydHBDYXBhYmlsaXRpZXM6IGRldmljZS5ydHBDYXBhYmlsaXRpZXMsXG4gICAgICAgICAgICAgICAgcm9vbUlkLFxuICAgICAgICAgICAgICAgIHVzZXJJZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHZjQXBwTWFuYWdlci5maXJlRXZlbnQoVkNFdmVudFR5cGUuQ1JFQVRFX1RSQU5TUE9SVF9GQUlMRUQsIHt9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZGF0YSB8fCBkYXRhLnN0YXR1cyA9PT0gJ0VSUk9SJykge1xuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGRhdGEuZXJyb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2Y0FwcE1hbmFnZXIuZmlyZUV2ZW50KFZDRXZlbnRUeXBlLkNSRUFURV9UUkFOU1BPUlRfRkFJTEVELCB7fSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcHJvZHVjZXJUcmFuc3BvcnQgPSBkZXZpY2UuY3JlYXRlU2VuZFRyYW5zcG9ydChkYXRhLnBhcmFtcyk7XG4gICAgICAgIHByb2R1Y2VyVHJhbnNwb3J0Lm9uKFxuICAgICAgICAgICAgJ2Nvbm5lY3QnLFxuICAgICAgICAgICAgYXN5bmMgZnVuY3Rpb24gKHtkdGxzUGFyYW1ldGVyc30sIGNhbGxiYWNrLCBlcnJiYWNrKSB7XG4gICAgICAgICAgICAgICAgc29ja2V0TWFuYWdlci5lbWl0RXZlbnQoVkNFdmVudFR5cGUuQ09OTkVDVF9UUkFOU1BPUlQsIHtcbiAgICAgICAgICAgICAgICAgICAgZHRsc1BhcmFtZXRlcnMsXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zcG9ydElkOiBkYXRhLnBhcmFtcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgcm9vbUlkLFxuICAgICAgICAgICAgICAgICAgICB1c2VySWRcbiAgICAgICAgICAgICAgICB9KS50aGVuKGNhbGxiYWNrKVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goZXJyYmFjayk7XG4gICAgICAgICAgICB9LmJpbmQodGhpcylcbiAgICAgICAgKTtcblxuICAgICAgICBwcm9kdWNlclRyYW5zcG9ydC5vbihcbiAgICAgICAgICAgICdwcm9kdWNlJyxcbiAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uICh7a2luZCwgcnRwUGFyYW1ldGVycywgYXBwRGF0YX0sIGNhbGxiYWNrLCBlcnJiYWNrKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qge3Byb2R1Y2VySWR9ID0gYXdhaXQgc29ja2V0TWFuYWdlci5lbWl0RXZlbnQoVkNFdmVudFR5cGUuUFJPRFVDRSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjZXJUcmFuc3BvcnRJZDogcHJvZHVjZXJUcmFuc3BvcnQuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBraW5kLFxuICAgICAgICAgICAgICAgICAgICAgICAgcnRwUGFyYW1ldGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvb21JZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcERhdGFcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHByb2R1Y2VySWRcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyYmFjayhlcnIpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfS5iaW5kKHRoaXMpXG4gICAgICAgICk7XG5cbiAgICAgICAgcHJvZHVjZXJUcmFuc3BvcnQub24oXG4gICAgICAgICAgICAnY29ubmVjdGlvbnN0YXRlY2hhbmdlJyxcbiAgICAgICAgICAgIGZ1bmN0aW9uIChzdGF0ZSkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoc3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29ubmVjdGluZyc6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29ubmVjdGVkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdmYWlsZWQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTWlycm9yIHRoZSBjb25zdW1lciB0cmFuc3BvcnQ6IHN1cmZhY2UgdGhlIGZhaWx1cmUgKHNvIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcm9vbSBjYW4gcmVhY3QvcmVjb3ZlcikgaW5zdGVhZCBvZiBjbG9zaW5nIHNpbGVudGx5LlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignUFJPRFVDRVIgVFJBTlNQT1JUIEZBSUxFRCBmb3IgJyArIHVzZXJJZCArICcgcm9vbSAnICsgcm9vbUlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZjQXBwTWFuYWdlci5maXJlRXZlbnQoVkNFdmVudFR5cGUuUFJPRFVDRVJfVFJBTlNQT1JUX0ZBSUxFRCwge30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjZXJUcmFuc3BvcnQuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LmJpbmQodGhpcylcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gcHJvZHVjZXJUcmFuc3BvcnQ7XG4gICAgfVxuXG4gICAgZ2V0Q29uc3VtZVN0cmVhbSA9IGFzeW5jIChwcm9kdWNlcklkLCBydHBDYXBhYmlsaXRpZXMsIGNvbnN1bWVyVHJhbnNwb3J0LCByb29tSWQsIHVzZXJJZCwgdHlwZSkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhcIkNPTlNVTUlORyBGUk9NIDogXCIgKyBwcm9kdWNlcklkICsgXCIgUk9PTSA6IFwiICsgcm9vbUlkKTtcblxuICAgICAgICBpZiAoY29uc3VtZXJUcmFuc3BvcnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBzb2NrZXRNYW5hZ2VyLmVtaXRFdmVudChWQ0V2ZW50VHlwZS5DT05TVU1FLCB7XG4gICAgICAgICAgICAgICAgcnRwQ2FwYWJpbGl0aWVzLFxuICAgICAgICAgICAgICAgIGNvbnN1bWVyVHJhbnNwb3J0SWQ6IGNvbnN1bWVyVHJhbnNwb3J0LmlkLFxuICAgICAgICAgICAgICAgIHByb2R1Y2VySWQsXG4gICAgICAgICAgICAgICAgcm9vbUlkLFxuICAgICAgICAgICAgICAgIHVzZXJJZCxcbiAgICAgICAgICAgICAgICBraW5kOiB0eXBlXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGRhdGEucGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qge2lkLCBraW5kLCBydHBQYXJhbWV0ZXJzfSA9IGRhdGEucGFyYW1zO1xuXG4gICAgICAgICAgICAgICAgbGV0IGNvZGVjT3B0aW9ucyA9IHt9O1xuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29uc3VtZXIgPSBhd2FpdCBjb25zdW1lclRyYW5zcG9ydC5jb25zdW1lKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjZXJJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQsXG4gICAgICAgICAgICAgICAgICAgICAgICBydHBQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZWNPcHRpb25zXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNvbnN1bWVyKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyZWFtID0gbmV3IE1lZGlhU3RyZWFtKCk7XG4gICAgICAgICAgICAgICAgICAgIHN0cmVhbS5hZGRUcmFjayhjb25zdW1lci50cmFjayk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN1bWVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLFxuICAgICAgICAgICAgICAgICAgICAgICAga2luZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNSdHBDb2xsaXNpb25FcnJvcihlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmNBcHBNYW5hZ2VyLmZpcmVFdmVudChWQ0V2ZW50VHlwZS5TWVNURU1fQUxFUlQsIHtwYXlsb2FkOiB7bWVzc2FnZTogUkVKT0lOX0FMRVJUX01FU1NBR0V9fSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge307XG4gICAgfVxufVxuXG5jb25zdCBpbnN0YW5jZSA9IG5ldyBNZWRpYVNvdXBIZWxwZXIoKTtcbk9iamVjdC5mcmVlemUoaW5zdGFuY2UpO1xuZXhwb3J0IGRlZmF1bHQgaW5zdGFuY2U7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxnQkFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsWUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsY0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksZUFBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQTRDLFNBQUFHLHVCQUFBRSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBQUEsU0FBQUcsZ0JBQUFILENBQUEsRUFBQUksQ0FBQSxFQUFBQyxDQUFBLFlBQUFELENBQUEsR0FBQUUsY0FBQSxDQUFBRixDQUFBLE1BQUFKLENBQUEsR0FBQU8sTUFBQSxDQUFBQyxjQUFBLENBQUFSLENBQUEsRUFBQUksQ0FBQSxJQUFBSyxLQUFBLEVBQUFKLENBQUEsRUFBQUssVUFBQSxNQUFBQyxZQUFBLE1BQUFDLFFBQUEsVUFBQVosQ0FBQSxDQUFBSSxDQUFBLElBQUFDLENBQUEsRUFBQUwsQ0FBQTtBQUFBLFNBQUFNLGVBQUFELENBQUEsUUFBQVEsQ0FBQSxHQUFBQyxZQUFBLENBQUFULENBQUEsdUNBQUFRLENBQUEsR0FBQUEsQ0FBQSxHQUFBQSxDQUFBO0FBQUEsU0FBQUMsYUFBQVQsQ0FBQSxFQUFBRCxDQUFBLDJCQUFBQyxDQUFBLEtBQUFBLENBQUEsU0FBQUEsQ0FBQSxNQUFBTCxDQUFBLEdBQUFLLENBQUEsQ0FBQVUsTUFBQSxDQUFBQyxXQUFBLGtCQUFBaEIsQ0FBQSxRQUFBYSxDQUFBLEdBQUFiLENBQUEsQ0FBQWlCLElBQUEsQ0FBQVosQ0FBQSxFQUFBRCxDQUFBLHVDQUFBUyxDQUFBLFNBQUFBLENBQUEsWUFBQUss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S0FBSyxDQUFDTCxPQUFPLENBQUM7SUFDdkIsQ0FBQyxDQUFDTSxJQUFJLENBQUMsSUFBSSxDQUNmLENBQUM7SUFFREksaUJBQWlCLENBQUNiLEVBQUUsQ0FDaEIsU0FBUyxFQUNULGdCQUFBZ0IsS0FBQSxFQUFnRGQsUUFBUSxFQUFFQyxPQUFPLEVBQUU7TUFBQSxJQUFuRDtRQUFDNUIsSUFBSTtRQUFFRSxhQUFhO1FBQUV3QztNQUFPLENBQUMsR0FBQUQsS0FBQTtNQUMxQyxJQUFJO1FBQ0EsTUFBTTtVQUFDdkQ7UUFBVSxDQUFDLEdBQUcsTUFBTVEsc0JBQWEsQ0FBQ0MsU0FBUyxDQUFDQyx3QkFBVyxDQUFDK0MsT0FBTyxFQUFFO1VBQ3BFQyxtQkFBbUIsRUFBRU4saUJBQWlCLENBQUN2QyxFQUFFO1VBQ3pDQyxJQUFJO1VBQ0pFLGFBQWE7VUFDYmIsTUFBTTtVQUNOQyxNQUFNO1VBQ05vRDtRQUNKLENBQUMsQ0FBQztRQUVGZixRQUFRLENBQUM7VUFDTDVCLEVBQUUsRUFBRWI7UUFDUixDQUFDLENBQUM7TUFDTixDQUFDLENBQUMsT0FBTzJELEdBQUcsRUFBRTtRQUNWakIsT0FBTyxDQUFDaUIsR0FBRyxDQUFDO01BQ2hCO0lBQ0osQ0FBQyxDQUFDWCxJQUFJLENBQUMsSUFBSSxDQUNmLENBQUM7SUFFREksaUJBQWlCLENBQUNiLEVBQUUsQ0FDaEIsdUJBQXVCLEVBQ3ZCLFVBQVVVLEtBQUssRUFBRTtNQUNiLFFBQVFBLEtBQUs7UUFDVCxLQUFLLFlBQVk7VUFDYjtRQUNKLEtBQUssV0FBVztVQUNaO1FBQ0osS0FBSyxRQUFRO1VBQ1Q7VUFDQTtVQUNBcEQsT0FBTyxDQUFDRCxLQUFLLENBQUMsZ0NBQWdDLEdBQUdRLE1BQU0sR0FBRyxRQUFRLEdBQUdELE1BQU0sQ0FBQztVQUM1RXFCLHVCQUFZLENBQUNDLFNBQVMsQ0FBQ2Ysd0JBQVcsQ0FBQ2tELHlCQUF5QixFQUFFLENBQUMsQ0FBQyxDQUFDO1VBQ2pFUixpQkFBaUIsQ0FBQ1MsS0FBSyxDQUFDLENBQUM7VUFDekI7UUFDSjtVQUNJO01BQ1I7SUFDSixDQUFDLENBQUNiLElBQUksQ0FBQyxJQUFJLENBQ2YsQ0FBQztJQUVELE9BQU9JLGlCQUFpQjtFQUM1QjtBQWlESjtBQUVBLE1BQU1VLFFBQVEsR0FBRyxJQUFJdkUsZUFBZSxDQUFDLENBQUM7QUFDdENwQixNQUFNLENBQUM0RixNQUFNLENBQUNELFFBQVEsQ0FBQztBQUFDLElBQUFFLFFBQUEsR0FBQTFFLE9BQUEsQ0FBQXhCLE9BQUEsR0FDVGdHLFFBQVEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -17,15 +17,26 @@ class Transports {
17
17
  _defineProperty(this, "setProducerTransport", producerTransport => {
18
18
  this.producerTransport = producerTransport;
19
19
  });
20
- _defineProperty(this, "closeConsumerTransport", () => {
21
- if (this.consumerTransport) {
22
- this.consumerTransport.close();
23
- }
20
+ // Recv transports are split by kind (audio / video) so that closing a
21
+ // consumer of one kind can never recycle its m-section into a consumer of
22
+ // another kind — the cause of the "RTP extension ID reassignment" collision.
23
+ // They are created just-in-time (see VCRoomWorkspace.getRecvTransport), so a
24
+ // session only ever holds the transports it actually needs.
25
+ _defineProperty(this, "setAudioConsumerTransport", transport => {
26
+ this.audioConsumerTransport = transport;
27
+ });
28
+ _defineProperty(this, "setVideoConsumerTransport", transport => {
29
+ this.videoConsumerTransport = transport;
24
30
  });
25
- _defineProperty(this, "setConsumerTransport", consumerTransport => {
26
- this.consumerTransport = consumerTransport;
31
+ _defineProperty(this, "closeRecvTransports", () => {
32
+ if (this.audioConsumerTransport) {
33
+ this.audioConsumerTransport.close();
34
+ }
35
+ if (this.videoConsumerTransport) {
36
+ this.videoConsumerTransport.close();
37
+ }
27
38
  });
28
39
  }
29
40
  }
30
41
  exports.default = Transports;
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUcmFuc3BvcnRzIiwiY29uc3RydWN0b3IiLCJfZGVmaW5lUHJvcGVydHkiLCJwcm9kdWNlclRyYW5zcG9ydCIsImNsb3NlIiwiY29uc3VtZXJUcmFuc3BvcnQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tZWRpYS9UcmFuc3BvcnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIFRyYW5zcG9ydHMge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIGNsb3NlUHJvZHVjZXJUcmFuc3BvcnQgPSAoKSA9PiB7XG4gICAgaWYodGhpcy5wcm9kdWNlclRyYW5zcG9ydCkge1xuICAgICAgdGhpcy5wcm9kdWNlclRyYW5zcG9ydC5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBzZXRQcm9kdWNlclRyYW5zcG9ydCA9IChwcm9kdWNlclRyYW5zcG9ydCkgPT4ge1xuICAgIHRoaXMucHJvZHVjZXJUcmFuc3BvcnQgPSBwcm9kdWNlclRyYW5zcG9ydDtcbiAgfTtcblxuICBjbG9zZUNvbnN1bWVyVHJhbnNwb3J0ID0gKCkgPT4ge1xuICAgIGlmKHRoaXMuY29uc3VtZXJUcmFuc3BvcnQpIHtcbiAgICAgIHRoaXMuY29uc3VtZXJUcmFuc3BvcnQuY2xvc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgc2V0Q29uc3VtZXJUcmFuc3BvcnQgPSAoY29uc3VtZXJUcmFuc3BvcnQpID0+IHtcbiAgICB0aGlzLmNvbnN1bWVyVHJhbnNwb3J0ID0gY29uc3VtZXJUcmFuc3BvcnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQWUsTUFBTUEsVUFBVSxDQUFDO0VBQzlCQyxXQUFXQSxDQUFBLEVBQUc7SUFBQUMsZUFBQSxpQ0FHVyxNQUFNO01BQzdCLElBQUcsSUFBSSxDQUFDQyxpQkFBaUIsRUFBRTtRQUN6QixJQUFJLENBQUNBLGlCQUFpQixDQUFDQyxLQUFLLENBQUMsQ0FBQztNQUNoQztJQUNGLENBQUM7SUFBQUYsZUFBQSwrQkFFdUJDLGlCQUFpQixJQUFLO01BQzVDLElBQUksQ0FBQ0EsaUJBQWlCLEdBQUdBLGlCQUFpQjtJQUM1QyxDQUFDO0lBQUFELGVBQUEsaUNBRXdCLE1BQU07TUFDN0IsSUFBRyxJQUFJLENBQUNHLGlCQUFpQixFQUFFO1FBQ3pCLElBQUksQ0FBQ0EsaUJBQWlCLENBQUNELEtBQUssQ0FBQyxDQUFDO01BQ2hDO0lBQ0YsQ0FBQztJQUFBRixlQUFBLCtCQUV1QkcsaUJBQWlCLElBQUs7TUFDNUMsSUFBSSxDQUFDQSxpQkFBaUIsR0FBR0EsaUJBQWlCO0lBQzVDLENBQUM7RUFwQkQ7QUFxQkY7QUFBQ0MsT0FBQSxDQUFBQyxPQUFBLEdBQUFQLFVBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUcmFuc3BvcnRzIiwiY29uc3RydWN0b3IiLCJfZGVmaW5lUHJvcGVydHkiLCJwcm9kdWNlclRyYW5zcG9ydCIsImNsb3NlIiwidHJhbnNwb3J0IiwiYXVkaW9Db25zdW1lclRyYW5zcG9ydCIsInZpZGVvQ29uc3VtZXJUcmFuc3BvcnQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tZWRpYS9UcmFuc3BvcnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIFRyYW5zcG9ydHMge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIGNsb3NlUHJvZHVjZXJUcmFuc3BvcnQgPSAoKSA9PiB7XG4gICAgaWYodGhpcy5wcm9kdWNlclRyYW5zcG9ydCkge1xuICAgICAgdGhpcy5wcm9kdWNlclRyYW5zcG9ydC5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBzZXRQcm9kdWNlclRyYW5zcG9ydCA9IChwcm9kdWNlclRyYW5zcG9ydCkgPT4ge1xuICAgIHRoaXMucHJvZHVjZXJUcmFuc3BvcnQgPSBwcm9kdWNlclRyYW5zcG9ydDtcbiAgfTtcblxuICAvLyBSZWN2IHRyYW5zcG9ydHMgYXJlIHNwbGl0IGJ5IGtpbmQgKGF1ZGlvIC8gdmlkZW8pIHNvIHRoYXQgY2xvc2luZyBhXG4gIC8vIGNvbnN1bWVyIG9mIG9uZSBraW5kIGNhbiBuZXZlciByZWN5Y2xlIGl0cyBtLXNlY3Rpb24gaW50byBhIGNvbnN1bWVyIG9mXG4gIC8vIGFub3RoZXIga2luZCDigJQgdGhlIGNhdXNlIG9mIHRoZSBcIlJUUCBleHRlbnNpb24gSUQgcmVhc3NpZ25tZW50XCIgY29sbGlzaW9uLlxuICAvLyBUaGV5IGFyZSBjcmVhdGVkIGp1c3QtaW4tdGltZSAoc2VlIFZDUm9vbVdvcmtzcGFjZS5nZXRSZWN2VHJhbnNwb3J0KSwgc28gYVxuICAvLyBzZXNzaW9uIG9ubHkgZXZlciBob2xkcyB0aGUgdHJhbnNwb3J0cyBpdCBhY3R1YWxseSBuZWVkcy5cbiAgc2V0QXVkaW9Db25zdW1lclRyYW5zcG9ydCA9ICh0cmFuc3BvcnQpID0+IHtcbiAgICB0aGlzLmF1ZGlvQ29uc3VtZXJUcmFuc3BvcnQgPSB0cmFuc3BvcnQ7XG4gIH07XG5cbiAgc2V0VmlkZW9Db25zdW1lclRyYW5zcG9ydCA9ICh0cmFuc3BvcnQpID0+IHtcbiAgICB0aGlzLnZpZGVvQ29uc3VtZXJUcmFuc3BvcnQgPSB0cmFuc3BvcnQ7XG4gIH07XG5cbiAgY2xvc2VSZWN2VHJhbnNwb3J0cyA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5hdWRpb0NvbnN1bWVyVHJhbnNwb3J0KSB7XG4gICAgICB0aGlzLmF1ZGlvQ29uc3VtZXJUcmFuc3BvcnQuY2xvc2UoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudmlkZW9Db25zdW1lclRyYW5zcG9ydCkge1xuICAgICAgdGhpcy52aWRlb0NvbnN1bWVyVHJhbnNwb3J0LmNsb3NlKCk7XG4gICAgfVxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBZSxNQUFNQSxVQUFVLENBQUM7RUFDOUJDLFdBQVdBLENBQUEsRUFBRztJQUFBQyxlQUFBLGlDQUdXLE1BQU07TUFDN0IsSUFBRyxJQUFJLENBQUNDLGlCQUFpQixFQUFFO1FBQ3pCLElBQUksQ0FBQ0EsaUJBQWlCLENBQUNDLEtBQUssQ0FBQyxDQUFDO01BQ2hDO0lBQ0YsQ0FBQztJQUFBRixlQUFBLCtCQUV1QkMsaUJBQWlCLElBQUs7TUFDNUMsSUFBSSxDQUFDQSxpQkFBaUIsR0FBR0EsaUJBQWlCO0lBQzVDLENBQUM7SUFFRDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQUFELGVBQUEsb0NBQzZCRyxTQUFTLElBQUs7TUFDekMsSUFBSSxDQUFDQyxzQkFBc0IsR0FBR0QsU0FBUztJQUN6QyxDQUFDO0lBQUFILGVBQUEsb0NBRTRCRyxTQUFTLElBQUs7TUFDekMsSUFBSSxDQUFDRSxzQkFBc0IsR0FBR0YsU0FBUztJQUN6QyxDQUFDO0lBQUFILGVBQUEsOEJBRXFCLE1BQU07TUFDMUIsSUFBSSxJQUFJLENBQUNJLHNCQUFzQixFQUFFO1FBQy9CLElBQUksQ0FBQ0Esc0JBQXNCLENBQUNGLEtBQUssQ0FBQyxDQUFDO01BQ3JDO01BQ0EsSUFBSSxJQUFJLENBQUNHLHNCQUFzQixFQUFFO1FBQy9CLElBQUksQ0FBQ0Esc0JBQXNCLENBQUNILEtBQUssQ0FBQyxDQUFDO01BQ3JDO0lBQ0YsQ0FBQztFQWhDRDtBQWlDRjtBQUFDSSxPQUFBLENBQUFDLE9BQUEsR0FBQVQsVUFBQSIsImlnbm9yZUxpc3QiOltdfQ==