@kando-env/kando-ui 1.2.237 → 1.2.238-alpha.1

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.
@@ -112,6 +112,32 @@ var ProfilePage = function ProfilePage() {
112
112
  timezone = _useState6[0],
113
113
  setTimezone = _useState6[1];
114
114
 
115
+ var _useState7 = (0, _react.useState)([{
116
+ value: '',
117
+ label: ''
118
+ }]),
119
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
120
+ departments = _useState8[0],
121
+ setDepartments = _useState8[1];
122
+
123
+ var _useState9 = (0, _react.useState)([{
124
+ value: '',
125
+ label: ''
126
+ }]),
127
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
128
+ businessRoles = _useState10[0],
129
+ setBusinessRoles = _useState10[1];
130
+
131
+ var _useState11 = (0, _react.useState)(departments[0]),
132
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
133
+ department = _useState12[0],
134
+ setDepartment = _useState12[1];
135
+
136
+ var _useState13 = (0, _react.useState)(businessRoles[0]),
137
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
138
+ businessRole = _useState14[0],
139
+ setBusinessRole = _useState14[1];
140
+
115
141
  var initialParamsState = {
116
142
  first_name: '',
117
143
  last_name: '',
@@ -120,47 +146,51 @@ var ProfilePage = function ProfilePage() {
120
146
  time_zone: '',
121
147
  date_time_format: '',
122
148
  locale: '',
123
- telegram_name: ''
149
+ telegram_name: '',
150
+ other_business_role_name: '',
151
+ other_department_name: '',
152
+ business_role: '',
153
+ department: ''
124
154
  };
125
155
 
126
- var _useState7 = (0, _react.useState)(false),
127
- _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
128
- isTelegramOpen = _useState8[0],
129
- setIsTelegramOpen = _useState8[1];
156
+ var _useState15 = (0, _react.useState)(false),
157
+ _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
158
+ isTelegramOpen = _useState16[0],
159
+ setIsTelegramOpen = _useState16[1];
130
160
 
131
- var _useState9 = (0, _react.useState)(false),
132
- _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
133
- showPasswordModal = _useState10[0],
134
- setShowPasswordModal = _useState10[1];
161
+ var _useState17 = (0, _react.useState)(false),
162
+ _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
163
+ showPasswordModal = _useState18[0],
164
+ setShowPasswordModal = _useState18[1];
135
165
 
136
- var _useState11 = (0, _react.useState)(false),
137
- _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
138
- submitting = _useState12[0],
139
- setSubmitting = _useState12[1];
166
+ var _useState19 = (0, _react.useState)(false),
167
+ _useState20 = (0, _slicedToArray2.default)(_useState19, 2),
168
+ submitting = _useState20[0],
169
+ setSubmitting = _useState20[1];
140
170
 
141
- var _useState13 = (0, _react.useState)(false),
142
- _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
143
- showSuccessMessage = _useState14[0],
144
- setShowSuccessMessage = _useState14[1];
171
+ var _useState21 = (0, _react.useState)(false),
172
+ _useState22 = (0, _slicedToArray2.default)(_useState21, 2),
173
+ showSuccessMessage = _useState22[0],
174
+ setShowSuccessMessage = _useState22[1];
145
175
 
146
- var _useState15 = (0, _react.useState)(false),
147
- _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
148
- showErrorMessage = _useState16[0],
149
- setShowErrorMessage = _useState16[1];
176
+ var _useState23 = (0, _react.useState)(false),
177
+ _useState24 = (0, _slicedToArray2.default)(_useState23, 2),
178
+ showErrorMessage = _useState24[0],
179
+ setShowErrorMessage = _useState24[1];
150
180
 
151
- var _useState17 = (0, _react.useState)({
181
+ var _useState25 = (0, _react.useState)({
152
182
  show: false,
153
183
  status: '',
154
184
  message: ''
155
185
  }),
156
- _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
157
- showTelegramResponseMessage = _useState18[0],
158
- setShowTelegramResponseMessage = _useState18[1];
186
+ _useState26 = (0, _slicedToArray2.default)(_useState25, 2),
187
+ showTelegramResponseMessage = _useState26[0],
188
+ setShowTelegramResponseMessage = _useState26[1];
159
189
 
160
- var _useState19 = (0, _react.useState)(initialParamsState),
161
- _useState20 = (0, _slicedToArray2.default)(_useState19, 2),
162
- params = _useState20[0],
163
- setParams = _useState20[1];
190
+ var _useState27 = (0, _react.useState)(initialParamsState),
191
+ _useState28 = (0, _slicedToArray2.default)(_useState27, 2),
192
+ params = _useState28[0],
193
+ setParams = _useState28[1];
164
194
 
165
195
  var handleOnChange = function handleOnChange(e) {
166
196
  if (typeof e === 'string') {
@@ -183,11 +213,31 @@ var ProfilePage = function ProfilePage() {
183
213
  }
184
214
  };
185
215
 
216
+ var handleBusinessRoleChange = function handleBusinessRoleChange(e) {
217
+ if (e.target !== null) {
218
+ setParams((0, _objectSpread3.default)((0, _objectSpread3.default)({}, params), {}, {
219
+ business_role: e.value,
220
+ other_business_role_name: e.target.value
221
+ }));
222
+ }
223
+ };
224
+
225
+ var handleDepartmentChange = function handleDepartmentChange(e) {
226
+ if (e.target !== null) {
227
+ setParams((0, _objectSpread3.default)((0, _objectSpread3.default)({}, params), {}, {
228
+ department: e.value,
229
+ other_department_name: e.target.value
230
+ }));
231
+ }
232
+ };
233
+
186
234
  var getParamsWithAggregatedValues = function getParamsWithAggregatedValues() {
187
235
  return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, params), {}, {
188
236
  date_time_format: dateTimeFormat.value,
189
237
  locale: locale.value,
190
- time_zone: timezone.value
238
+ time_zone: timezone.value,
239
+ department_id: department.value,
240
+ business_role_id: businessRole.value
191
241
  });
192
242
  };
193
243
 
@@ -222,7 +272,7 @@ var ProfilePage = function ProfilePage() {
222
272
  _axios.default.put('/profiles', {
223
273
  user: getParamsWithAggregatedValues()
224
274
  }).then(function (resp) {
225
- if (resp.data.errors === null) {
275
+ if (resp.data.user.errors === null) {
226
276
  document.querySelectorAll('.error-message').forEach(function (p) {
227
277
  return p.innerHTML = '';
228
278
  });
@@ -251,7 +301,7 @@ var ProfilePage = function ProfilePage() {
251
301
  document.querySelectorAll('.error-message').forEach(function (p) {
252
302
  return p.innerHTML = '';
253
303
  });
254
- var errors = resp.data.errors;
304
+ var errors = resp.data.user.errors;
255
305
 
256
306
  for (var error in errors) {
257
307
  var findElement = document.querySelector("input[name='".concat(error, "']"));
@@ -284,20 +334,22 @@ var ProfilePage = function ProfilePage() {
284
334
  _axios.default.defaults.headers.common['X-CSRF-TOKEN'] = token;
285
335
  _axios.default.defaults.headers.common['Content-Type'] = 'application/js';
286
336
 
287
- _axios.default.get('/profiles/resource').then(function (resp) {
288
- setParams(resp.data);
289
- var findLocale = localeOptions.find(function (e) {
290
- return e.value === resp.data.locale;
291
- });
292
- var findDateTimeFormat = dateTimeFormatOptions.find(function (e) {
293
- return e.value === resp.data.date_time_format;
294
- });
295
- var findTimezone = timezones.find(function (e) {
296
- return e.value === resp.data.time_zone;
297
- });
298
- setLocale(findLocale);
299
- setDateTimeFormat(findDateTimeFormat);
300
- setTimezone(findTimezone);
337
+ _axios.default.get("/profiles/resource").then(function (resp) {
338
+ setParams(resp.data.user);
339
+
340
+ var findProperty = function findProperty(object, property) {
341
+ return object.find(function (e) {
342
+ return e.value === property;
343
+ });
344
+ };
345
+
346
+ setLocale(findProperty(localeOptions, resp.data.user.locale));
347
+ setDateTimeFormat(findProperty(dateTimeFormatOptions, resp.data.user.date_time_format));
348
+ setTimezone(findProperty(timezones, resp.data.user.time_zone));
349
+ setBusinessRole(findProperty(resp.data.business_roles, resp.data.user.business_role_id));
350
+ setDepartment(findProperty(resp.data.departments, resp.data.user.department_id));
351
+ setDepartments(resp.data.departments);
352
+ setBusinessRoles(resp.data.business_roles);
301
353
  }).catch(function (error) {
302
354
  return alert(error);
303
355
  });
@@ -380,6 +432,68 @@ var ProfilePage = function ProfilePage() {
380
432
  className: 'error-message'
381
433
  })), /*#__PURE__*/_react.default.createElement("div", {
382
434
  className: "field"
435
+ }, /*#__PURE__*/_react.default.createElement("div", {
436
+ className: "label"
437
+ }, _i18n.default.t('dashboard_v2.profile.department')), /*#__PURE__*/_react.default.createElement("div", {
438
+ className: "my-input"
439
+ }, /*#__PURE__*/_react.default.createElement(_Select.Select, {
440
+ setValue: setDepartment,
441
+ value: {
442
+ label: _i18n.default.t("dashboard_v2.profile.departments.".concat(department === null || department === void 0 ? void 0 : department.label)),
443
+ value: department === null || department === void 0 ? void 0 : department.value
444
+ },
445
+ options: departments,
446
+ cancelTextWidth: true,
447
+ translate: {
448
+ options: departments,
449
+ translation_key: 'dashboard_v2.profile.departments'
450
+ }
451
+ }))), department && (department === null || department === void 0 ? void 0 : department.value) === departments[departments.length - 1].value && /*#__PURE__*/_react.default.createElement("div", {
452
+ className: "field"
453
+ }, /*#__PURE__*/_react.default.createElement("div", {
454
+ className: "label"
455
+ }, _i18n.default.t('dashboard_v2.profile.department_alt')), /*#__PURE__*/_react.default.createElement("input", {
456
+ readOnly: false,
457
+ type: "text",
458
+ className: "my-input",
459
+ name: 'other_department_name',
460
+ value: params.other_department_name,
461
+ onChange: function onChange(e) {
462
+ return handleDepartmentChange(e);
463
+ }
464
+ })), /*#__PURE__*/_react.default.createElement("div", {
465
+ className: "field"
466
+ }, /*#__PURE__*/_react.default.createElement("div", {
467
+ className: "label"
468
+ }, _i18n.default.t('dashboard_v2.profile.business_role')), /*#__PURE__*/_react.default.createElement("div", {
469
+ className: "my-input"
470
+ }, /*#__PURE__*/_react.default.createElement(_Select.Select, {
471
+ setValue: setBusinessRole,
472
+ value: {
473
+ label: _i18n.default.t("dashboard_v2.profile.business_roles.".concat(businessRole === null || businessRole === void 0 ? void 0 : businessRole.label)),
474
+ value: businessRole === null || businessRole === void 0 ? void 0 : businessRole.value
475
+ },
476
+ options: businessRoles,
477
+ cancelTextWidth: true,
478
+ translate: {
479
+ options: businessRoles,
480
+ translation_key: 'dashboard_v2.profile.business_roles'
481
+ }
482
+ }))), businessRole && (businessRole === null || businessRole === void 0 ? void 0 : businessRole.value) === businessRoles[businessRoles.length - 1].value && /*#__PURE__*/_react.default.createElement("div", {
483
+ className: "field"
484
+ }, /*#__PURE__*/_react.default.createElement("div", {
485
+ className: "label"
486
+ }, _i18n.default.t('dashboard_v2.profile.business_role_alt')), /*#__PURE__*/_react.default.createElement("input", {
487
+ readOnly: false,
488
+ type: "text",
489
+ className: "my-input",
490
+ name: 'other_business_role_name',
491
+ value: params.other_business_role_name,
492
+ onChange: function onChange(e) {
493
+ return handleBusinessRoleChange(e);
494
+ }
495
+ })), /*#__PURE__*/_react.default.createElement("div", {
496
+ className: "field"
383
497
  }, /*#__PURE__*/_react.default.createElement("div", {
384
498
  className: "change-password",
385
499
  onClick: function onClick() {
@@ -472,8 +586,8 @@ var ProfilePage = function ProfilePage() {
472
586
  onClick: function onClick() {
473
587
  _axios.default.get("/telegram/send_test_message.json").then(function (resp) {
474
588
  setShowTelegramResponseMessage({
475
- status: resp.data.status[0].toUpperCase() + resp.data.status.substring(1),
476
- message: resp.data.message,
589
+ status: resp.data.user.status[0].toUpperCase() + resp.data.user.status.substring(1),
590
+ message: resp.data.user.message,
477
591
  show: true
478
592
  });
479
593
  setTimeout(function () {
@@ -483,7 +597,7 @@ var ProfilePage = function ProfilePage() {
483
597
  show: false
484
598
  });
485
599
  }, 6000);
486
- showToast(resp.data);
600
+ showToast(resp.data.user);
487
601
  }).catch(function (error) {
488
602
  return alert(error);
489
603
  });
@@ -507,4 +621,4 @@ var ProfilePage = function ProfilePage() {
507
621
  };
508
622
 
509
623
  exports.ProfilePage = ProfilePage;
510
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9Qcm9maWxlUGFnZS9Qcm9maWxlUGFnZS50c3giXSwibmFtZXMiOlsiUHJvZmlsZVBhZ2UiLCJ0aW1lem9uZXNBcnJheSIsIm1vbWVudCIsInR6IiwibmFtZXMiLCJkYXRlVGltZUZvcm1hdE9wdGlvbnMiLCJ2YWx1ZSIsImxhYmVsIiwiZm9ybWF0IiwibW9udGgiLCJkYXkiLCJ5ZWFyIiwiaG91ciIsIm1pbnV0ZSIsImhvdXIxMiIsInRpbWV6b25lcyIsIm1hcCIsInQiLCJsb2NhbGVPcHRpb25zIiwibG9jYWxlIiwic2V0TG9jYWxlIiwiZGF0ZVRpbWVGb3JtYXQiLCJzZXREYXRlVGltZUZvcm1hdCIsInRpbWV6b25lIiwic2V0VGltZXpvbmUiLCJpbml0aWFsUGFyYW1zU3RhdGUiLCJmaXJzdF9uYW1lIiwibGFzdF9uYW1lIiwicGhvbmUiLCJlbWFpbCIsInRpbWVfem9uZSIsImRhdGVfdGltZV9mb3JtYXQiLCJ0ZWxlZ3JhbV9uYW1lIiwiaXNUZWxlZ3JhbU9wZW4iLCJzZXRJc1RlbGVncmFtT3BlbiIsInNob3dQYXNzd29yZE1vZGFsIiwic2V0U2hvd1Bhc3N3b3JkTW9kYWwiLCJzdWJtaXR0aW5nIiwic2V0U3VibWl0dGluZyIsInNob3dTdWNjZXNzTWVzc2FnZSIsInNldFNob3dTdWNjZXNzTWVzc2FnZSIsInNob3dFcnJvck1lc3NhZ2UiLCJzZXRTaG93RXJyb3JNZXNzYWdlIiwic2hvdyIsInN0YXR1cyIsIm1lc3NhZ2UiLCJzaG93VGVsZWdyYW1SZXNwb25zZU1lc3NhZ2UiLCJzZXRTaG93VGVsZWdyYW1SZXNwb25zZU1lc3NhZ2UiLCJwYXJhbXMiLCJzZXRQYXJhbXMiLCJoYW5kbGVPbkNoYW5nZSIsImUiLCJzdGFydHNXaXRoIiwicmVwbGFjZSIsInByZXZTdGF0ZSIsInRhcmdldCIsIm5hbWUiLCJnZXRQYXJhbXNXaXRoQWdncmVnYXRlZFZhbHVlcyIsIndhdGVyQXV0aG9yaXR5TmFtZSIsInN0YXRlIiwiZ2xvYmFsX2RhdGEiLCJzaG93VG9hc3QiLCJkYXRhIiwidXNlcm5hbWUiLCJlcnJvciIsInRvYXN0Iiwic3VjY2VzcyIsImkxOG4iLCJwb3NpdGlvbiIsImhhbmRsZVN1Ym1pdCIsInByZXZlbnREZWZhdWx0IiwiYXhpb3MiLCJwdXQiLCJ1c2VyIiwidGhlbiIsInJlc3AiLCJlcnJvcnMiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwicCIsImlubmVySFRNTCIsImNsYXNzTGlzdCIsInJlbW92ZSIsIkpTT04iLCJwYXJzZSIsImZpbmRMb2NhbGUiLCJmaW5kIiwiZmluZERhdGVUaW1lRm9ybWF0IiwiZmluZFRpbWV6b25lIiwic2V0VGltZW91dCIsImZpbmRFbGVtZW50IiwicXVlcnlTZWxlY3RvciIsInBhcmVudCIsImNsb3Nlc3QiLCJmaW5kSW5wdXQiLCJhZGQiLCJjYXRjaCIsInV0aWxpdHlfbmFtZSIsInRva2VuIiwiY29udGVudCIsImRlZmF1bHRzIiwiaGVhZGVycyIsImNvbW1vbiIsImdldCIsImFsZXJ0IiwidW5kZWZpbmVkIiwiRGF0ZSIsInRvTG9jYWxlRGF0ZVN0cmluZyIsInRvVXBwZXJDYXNlIiwic3Vic3RyaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRU8sSUFBTUEsV0FBVyxHQUFHLFNBQWRBLFdBQWMsR0FBTTtBQUMvQixNQUFNQyxjQUFjLEdBQUdDLHdCQUFPQyxFQUFQLENBQVVDLEtBQVYsRUFBdkI7O0FBQ0EsTUFBTUMscUJBQXFCLEdBQUcsQ0FDNUI7QUFDRUMsSUFBQUEsS0FBSyxFQUFFLElBRFQ7QUFFRUMsSUFBQUEsS0FBSyxFQUFFLGVBRlQ7QUFHRUMsSUFBQUEsTUFBTSxFQUFFO0FBQ05DLE1BQUFBLEtBQUssRUFBRSxPQUREO0FBRU5DLE1BQUFBLEdBQUcsRUFB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SSxFQUFFLFFBQWQ7QUFBd0IsSUFBQSxTQUFTLEVBQUUsTUFBbkM7QUFBMkMsSUFBQSxRQUFRLEVBQUVQO0FBQXJELEtBQ0csQ0FBQ0EsVUFBRCxJQUNDLENBQUNFLGtCQURGLElBRUMsQ0FBQ0UsZ0JBRkYsSUFHQzBCLGNBQUtsRCxDQUFMLENBQU8sNkJBQVAsQ0FKSixFQUtHb0IsVUFBVSxJQUNULENBQUNFLGtCQURGLElBRUMsQ0FBQ0UsZ0JBRkYsSUFHQzBCLGNBQUtsRCxDQUFMLENBQU8saUNBQVAsQ0FSSixFQVNHc0Isa0JBQWtCLElBQUk0QixjQUFLbEQsQ0FBTCxDQUFPLDhCQUFQLENBVHpCLEVBVUd3QixnQkFBZ0IsSUFBSTBCLGNBQUtsRCxDQUFMLENBQU8sNEJBQVAsQ0FWdkIsQ0F2TUYsQ0FERixDQUZGLEVBeU5Ha0IsaUJBQWlCLGlCQUNoQiw2QkFBQyw0QkFBRDtBQUNFLElBQUEsS0FBSyxFQUFFO0FBQUEsYUFBTUMsb0JBQW9CLENBQUMsS0FBRCxDQUExQjtBQUFBLEtBRFQ7QUFFRSxJQUFBLElBQUksRUFBRSxnQkFBTSxDQUFFO0FBRmhCLElBMU5KLEVBK05HSCxjQUFjLGlCQUNiLDZCQUFDLDRCQUFEO0FBQ0UsSUFBQSxLQUFLLEVBQUU7QUFBQSxhQUFNQyxpQkFBaUIsQ0FBQyxLQUFELENBQXZCO0FBQUEsS0FEVDtBQUVFLElBQUEsY0FBYyxFQUFFZ0IsY0FGbEI7QUFHRSxJQUFBLFlBQVksRUFBRW1CO0FBSGhCLElBaE9KLENBREY7QUF5T0QsQ0F0ZE0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFNlbGVjdCB9IGZyb20gJ3NyYy9jb21wb25lbnRzL0N1c3RvbUlucHV0cy9TZWxlY3QvU2VsZWN0JztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgeyBQYXNzd29yZE1vZGFsIH0gZnJvbSAnLi9QYXNzd29yZE1vZGFsL1Bhc3N3b3JkTW9kYWwnO1xuaW1wb3J0IHsgUmVhY3RDb21wb25lbnQgYXMgUGVuU3ZnIH0gZnJvbSAnLi9wZW4uc3ZnJztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIENhbmNlbCB9IGZyb20gJy4vY2FuY2VsLnN2Zyc7XG5pbXBvcnQgUGhvbmVJbnB1dCBmcm9tICdyZWFjdC1waG9uZS1pbnB1dC0yJztcbmltcG9ydCAncmVhY3QtcGhvbmUtaW5wdXQtMi9saWIvc3R5bGUuY3NzJztcbmltcG9ydCB7IFRlbGVncmFtTW9kYWwgfSBmcm9tICcuL1RlbGVncmFtTW9kYWwvVGVsZWdyYW1Nb2RhbCc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSAnLi9Db250YWluZXInO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQtdGltZXpvbmUnO1xuaW1wb3J0IHsgYW5hbHl0aWNzVHJhY2sgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvQW5hbHl0aWNzJztcbmltcG9ydCB7IHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgdG9hc3QgfSBmcm9tICdyZWFjdC10b2FzdGlmeSc7XG5cbmV4cG9ydCBjb25zdCBQcm9maWxlUGFnZSA9ICgpID0+IHtcbiAgY29uc3QgdGltZXpvbmVzQXJyYXkgPSBtb21lbnQudHoubmFtZXMoKTtcbiAgY29uc3QgZGF0ZVRpbWVGb3JtYXRPcHRpb25zID0gW1xuICAgIHtcbiAgICAgIHZhbHVlOiAndXMnLFxuICAgICAgbGFiZWw6ICdVbml0ZWQgU3RhdGVzJyxcbiAgICAgIGZvcm1hdDoge1xuICAgICAgICBtb250aDogJ3Nob3J0JyxcbiAgICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgICAgaG91cjogJ251bWVyaWMnLFxuICAgICAgICBtaW51dGU6ICdudW1lcmljJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YWx1ZTogJ2V1JyxcbiAgICAgIGxhYmVsOiAnRXVyb3BlJyxcbiAgICAgIGZvcm1hdDoge1xuICAgICAgICBkYXk6ICdudW1lcmljJyxcbiAgICAgICAgbW9udGg6ICdudW1lcmljJyxcbiAgICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgICBob3VyOiAnbnVtZXJpYycsXG4gICAgICAgIG1pbnV0ZTogJ251bWVyaWMnLFxuICAgICAgICBob3VyMTI6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9LFxuICBdO1xuXG4gIGNvbnN0IHRpbWV6b25lcyA9IHRpbWV6b25lc0FycmF5Lm1hcCgodCkgPT4ge1xuICAgIHJldHVybiB7IHZhbHVlOiB0LCBsYWJlbDogdCB9O1xuICB9KTtcblxuICBjb25zdCBsb2NhbGVPcHRpb25zID0gW1xuICAgIHsgdmFsdWU6ICdlbicsIGxhYmVsOiAnRW5nbGlzaCcgfSxcbiAgICB7IHZhbHVlOiAnZW5fdWsnLCBsYWJlbDogJ0VuZ2xpc2ggKFVLKScgfSxcbiAgICB7IHZhbHVlOiAnaGUnLCBsYWJlbDogJ9ei15HXqNeZ16onIH0sXG4gICAgeyB2YWx1ZTogJ2ZyJywgbGFiZWw6ICdGcmFuw6dhaXMnIH0sXG4gICAgeyB2YWx1ZTogJ2l0JywgbGFiZWw6ICdJdGFsaWFubycgfSxcbiAgXTtcblxuICBjb25zdCBbbG9jYWxlLCBzZXRMb2NhbGVdID0gdXNlU3RhdGU8e1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgfT4obG9jYWxlT3B0aW9uc1swXSk7XG5cbiAgY29uc3QgW2RhdGVUaW1lRm9ybWF0LCBzZXREYXRlVGltZUZvcm1hdF0gPSB1c2VTdGF0ZTx7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIGZvcm1hdDogb2JqZWN0O1xuICB9PihkYXRlVGltZUZvcm1hdE9wdGlvbnNbMF0pO1xuXG4gIGNvbnN0IFt0aW1lem9uZSwgc2V0VGltZXpvbmVdID0gdXNlU3RhdGU8e1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgfT4odGltZXpvbmVzWzIwXSk7XG5cbiAgY29uc3QgaW5pdGlhbFBhcmFtc1N0YXRlID0ge1xuICAgIGZpcnN0X25hbWU6ICcnLFxuICAgIGxhc3RfbmFtZTogJycsXG4gICAgcGhvbmU6ICcnLFxuICAgIGVtYWlsOiAnJyxcbiAgICB0aW1lX3pvbmU6ICcnLFxuICAgIGRhdGVfdGltZV9mb3JtYXQ6ICcnLFxuICAgIGxvY2FsZTogJycsXG4gICAgdGVsZWdyYW1fbmFtZTogJycsXG4gIH07XG5cbiAgY29uc3QgW2lzVGVsZWdyYW1PcGVuLCBzZXRJc1RlbGVncmFtT3Blbl0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IFtzaG93UGFzc3dvcmRNb2RhbCwgc2V0U2hvd1Bhc3N3b3JkTW9kYWxdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCBbc3VibWl0dGluZywgc2V0U3VibWl0dGluZ10gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IFtzaG93U3VjY2Vzc01lc3NhZ2UsIHNldFNob3dTdWNjZXNzTWVzc2FnZV0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IFtzaG93RXJyb3JNZXNzYWdlLCBzZXRTaG93RXJyb3JNZXNzYWdlXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW3Nob3dUZWxlZ3JhbVJlc3BvbnNlTWVzc2FnZSwgc2V0U2hvd1RlbGVncmFtUmVzcG9uc2VNZXNzYWdlXSA9XG4gICAgdXNlU3RhdGU8e1xuICAgICAgc2hvdzogYm9vbGVhbjtcbiAgICAgIHN0YXR1czogc3RyaW5nO1xuICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIH0+KHtcbiAgICAgIHNob3c6IGZhbHNlLFxuICAgICAgc3RhdHVzOiAnJyxcbiAgICAgIG1lc3NhZ2U6ICcnLFxuICAgIH0pO1xuICBjb25zdCBbcGFyYW1zLCBzZXRQYXJhbXNdID0gdXNlU3RhdGU8e1xuICAgIGZpcnN0X25hbWU6IHN0cmluZztcbiAgICBsYXN0X25hbWU6IHN0cmluZztcbiAgICBwaG9uZTogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgdGltZV96b25lOiBzdHJpbmc7XG4gICAgZGF0ZV90aW1lX2Zvcm1hdDogc3RyaW5nO1xuICAgIGxvY2FsZTogc3RyaW5nO1xuICAgIHRlbGVncmFtX25hbWU6IHN0cmluZztcbiAgfT4oaW5pdGlhbFBhcmFtc1N0YXRlKTtcblxuICBjb25zdCBoYW5kbGVPbkNoYW5nZSA9IChlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBlID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKGUuc3RhcnRzV2l0aCgnOTcyMCcpKSB7XG4gICAgICAgIGUgPSBlLnJlcGxhY2UoLyg5NzIwKS9nLCAnOTcyJyk7XG4gICAgICB9XG4gICAgICBzZXRQYXJhbXMoKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICBwaG9uZTogZSxcbiAgICAgIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgeyB2YWx1ZSwgbmFtZSB9ID0gZS50YXJnZXQ7XG4gICAgICBzZXRQYXJhbXMoKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICBbbmFtZV06IHZhbHVlLFxuICAgICAgfSkpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBnZXRQYXJhbXNXaXRoQWdncmVnYXRlZFZhbHVlcyA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgZGF0ZV90aW1lX2Zvcm1hdDogZGF0ZVRpbWVGb3JtYXQudmFsdWUsXG4gICAgICBsb2NhbGU6IGxvY2FsZS52YWx1ZSxcbiAgICAgIHRpbWVfem9uZTogdGltZXpvbmUudmFsdWUsXG4gICAgfTtcbiAgfTtcblxuICBjb25zdCB3YXRlckF1dGhvcml0eU5hbWUgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGUpID0+IHN0YXRlLmdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5TmFtZSxcbiAgKTtcblxuICBjb25zdCBzaG93VG9hc3QgPSAoZGF0YSkgPT4ge1xuICAgIGNvbnN0IHVzZXJuYW1lID0gZGF0YS51c2VybmFtZTtcbiAgICBjb25zdCBlcnJvciA9IGRhdGEuZXJyb3I7XG4gICAgaWYgKGRhdGEuc3RhdHVzID09PSAnc3VjY2VzcycpIHtcbiAgICAgIHRvYXN0LnN1Y2Nlc3MoXG4gICAgICAgIGkxOG4udChgbXlfcHJvZmlsZV90YWIudGVsZWdyYW1fbWVzc2FnZXMuJHtkYXRhLm1lc3NhZ2V9YCwge1xuICAgICAgICAgIHVzZXJuYW1lLFxuICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIHBvc2l0aW9uOiAndG9wLWNlbnRlcicsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0b2FzdC5lcnJvcihcbiAgICAgICAgaTE4bi50KGBteV9wcm9maWxlX3RhYi50ZWxlZ3JhbV9tZXNzYWdlcy4ke2RhdGEubWVzc2FnZX1gLCB7XG4gICAgICAgICAgZXJyb3I6IGVycm9yLFxuICAgICAgICAgIHVzZXJuYW1lOiB1c2VybmFtZSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBwb3NpdGlvbjogJ3RvcC1jZW50ZXInLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0ID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgc2V0U3VibWl0dGluZyh0cnVlKTtcbiAgICBheGlvc1xuICAgICAgLnB1dCgnL3Byb2ZpbGVzJywgeyB1c2VyOiBnZXRQYXJhbXNXaXRoQWdncmVnYXRlZFZhbHVlcygpIH0pXG4gICAgICAudGhlbigocmVzcCkgPT4ge1xuICAgICAgICBpZiAocmVzcC5kYXRhLmVycm9ycyA9PT0gbnVsbCkge1xuICAgICAgICAgIGRvY3VtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnLmVycm9yLW1lc3NhZ2UnKVxuICAgICAgICAgICAgLmZvckVhY2goKHApID0+IChwLmlubmVySFRNTCA9ICcnKSk7XG5cbiAgICAgICAgICBkb2N1bWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5pbnZhbGlkLWZpZWxkJylcbiAgICAgICAgICAgIC5mb3JFYWNoKChwKSA9PiBwLmNsYXNzTGlzdC5yZW1vdmUoJ2ludmFsaWQtZmllbGQnKSk7XG4gICAgICAgICAgbGV0IHVzZXIgPSBKU09OLnBhcnNlKHJlc3AuZGF0YS51c2VyKTtcbiAgICAgICAgICBjb25zdCBmaW5kTG9jYWxlID0gbG9jYWxlT3B0aW9ucy5maW5kKChlKSA9PiBlLnZhbHVlID09PSB1c2VyLmxvY2FsZSk7XG4gICAgICAgICAgY29uc3QgZmluZERhdGVUaW1lRm9ybWF0ID0gZGF0ZVRpbWVGb3JtYXRPcHRpb25zLmZpbmQoXG4gICAgICAgICAgICAoZSkgPT4gZS52YWx1ZSA9PT0gdXNlci5kYXRlX3RpbWVfZm9ybWF0LFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgZmluZFRpbWV6b25lID0gdGltZXpvbmVzLmZpbmQoXG4gICAgICAgICAgICAoZSkgPT4gZS52YWx1ZSA9PT0gdXNlci50aW1lX3pvbmUsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHNldFBhcmFtcyh1c2VyKTtcbiAgICAgICAgICBzZXRMb2NhbGUoZmluZExvY2FsZSEpO1xuICAgICAgICAgIHNldERhdGVUaW1lRm9ybWF0KGZpbmREYXRlVGltZUZvcm1hdCEpO1xuICAgICAgICAgIHNldFRpbWV6b25lKGZpbmRUaW1lem9uZSEpO1xuICAgICAgICAgIHNldFNob3dTdWNjZXNzTWVzc2FnZSh0cnVlKTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHNldFNob3dTdWNjZXNzTWVzc2FnZShmYWxzZSk7XG4gICAgICAgICAgfSwgNjAwMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZG9jdW1lbnRcbiAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKCcuZXJyb3ItbWVzc2FnZScpXG4gICAgICAgICAgICAuZm9yRWFjaCgocCkgPT4gKHAuaW5uZXJIVE1MID0gJycpKTtcbiAgICAgICAgICBsZXQgZXJyb3JzID0gcmVzcC5kYXRhLmVycm9ycztcbiAgICAgICAgICBmb3IgKGNvbnN0IGVycm9yIGluIGVycm9ycykge1xuICAgICAgICAgICAgbGV0IGZpbmRFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgaW5wdXRbbmFtZT0nJHtlcnJvcn0nXWApO1xuICAgICAgICAgICAgbGV0IHBhcmVudCA9IGZpbmRFbGVtZW50IS5jbG9zZXN0KCcuZmllbGQnKTtcbiAgICAgICAgICAgIGxldCBmaW5kSW5wdXQgPSBwYXJlbnQhLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7XG4gICAgICAgICAgICBmaW5kSW5wdXQhLmNsYXNzTGlzdC5hZGQoJ2ludmFsaWQtZmllbGQnKTtcbiAgICAgICAgICAgIHBhcmVudCEucXVlcnlTZWxlY3RvcignLmVycm9yLW1lc3NhZ2UnKSEuaW5uZXJIVE1MID0gaTE4bi50KFxuICAgICAgICAgICAgICBgZGFzaGJvYXJkX3YyLnByb2ZpbGUuZXJyb3JzLiR7ZXJyb3J9YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNldFNob3dTdWNjZXNzTWVzc2FnZShmYWxzZSk7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRTdWJtaXR0aW5nKGZhbHNlKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIHNldFNob3dFcnJvck1lc3NhZ2UodHJ1ZSk7XG4gICAgICAgIHNldFNob3dTdWNjZXNzTWVzc2FnZShmYWxzZSk7XG4gICAgICAgIHNldFN1Ym1pdHRpbmcoZmFsc2UpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBzZXRTaG93RXJyb3JNZXNzYWdlKGZhbHNlKTtcbiAgICAgICAgfSwgNjAwMCk7XG4gICAgICB9KTtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGFuYWx5dGljc1RyYWNrKCdWaWV3ZWQgUHJvZmlsZSBQYWdlJywge1xuICAgICAgdXRpbGl0eV9uYW1lOiB3YXRlckF1dGhvcml0eU5hbWUsXG4gICAgfSk7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHRva2VuID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW25hbWU9Y3NyZi10b2tlbl0nKSEuY29udGVudDtcbiAgICBheGlvcy5kZWZhdWx0cy5oZWFkZXJzLmNvbW1vblsnWC1DU1JGLVRPS0VOJ10gPSB0b2tlbjtcbiAgICBheGlvcy5kZWZhdWx0cy5oZWFkZXJzLmNvbW1vblsnQ29udGVudC1UeXBlJ10gPSAnYXBwbGljYXRpb24vanMnO1xuICAgIGF4aW9zXG4gICAgICAuZ2V0KCcvcHJvZmlsZXMvcmVzb3VyY2UnKVxuICAgICAgLnRoZW4oKHJlc3ApID0+IHtcbiAgICAgICAgc2V0UGFyYW1zKHJlc3AuZGF0YSk7XG4gICAgICAgIGNvbnN0IGZpbmRMb2NhbGUgPSBsb2NhbGVPcHRpb25zLmZpbmQoXG4gICAgICAgICAgKGUpID0+IGUudmFsdWUgPT09IHJlc3AuZGF0YS5sb2NhbGUsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGZpbmREYXRlVGltZUZvcm1hdCA9IGRhdGVUaW1lRm9ybWF0T3B0aW9ucy5maW5kKFxuICAgICAgICAgIChlKSA9PiBlLnZhbHVlID09PSByZXNwLmRhdGEuZGF0ZV90aW1lX2Zvcm1hdCxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZmluZFRpbWV6b25lID0gdGltZXpvbmVzLmZpbmQoXG4gICAgICAgICAgKGUpID0+IGUudmFsdWUgPT09IHJlc3AuZGF0YS50aW1lX3pvbmUsXG4gICAgICAgICk7XG4gICAgICAgIHNldExvY2FsZShmaW5kTG9jYWxlISk7XG4gICAgICAgIHNldERhdGVUaW1lRm9ybWF0KGZpbmREYXRlVGltZUZvcm1hdCEpO1xuICAgICAgICBzZXRUaW1lem9uZShmaW5kVGltZXpvbmUhKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiBhbGVydChlcnJvcikpO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJoZWFkZXItdGl0bGVcIj57aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS50aXRsZScpfTwvZGl2PlxuICAgICAgPGZvcm0gYWN0aW9uPVwiXCIgb25TdWJtaXQ9eyhlKSA9PiBoYW5kbGVTdWJtaXQoZSl9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRlbnRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+XG4gICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5wZXJzb25hbC1kZXRhaWxzJyl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicGVyc29uYWxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmZpcnN0X25hbWUnKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJteS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgbmFtZT17J2ZpcnN0X25hbWUnfVxuICAgICAgICAgICAgICAgIHZhbHVlPXtwYXJhbXMuZmlyc3RfbmFtZX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZU9uQ2hhbmdlKGUpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9eydlcnJvci1tZXNzYWdlJ30+PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5sYXN0X25hbWUnKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJteS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgbmFtZT17J2xhc3RfbmFtZSd9XG4gICAgICAgICAgICAgICAgdmFsdWU9e3BhcmFtcy5sYXN0X25hbWV9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVPbkNoYW5nZShlKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPXsnZXJyb3ItbWVzc2FnZSd9PjwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZCBmaWVsZC0tcmVhZG9ubHlcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmVtYWlsJyl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICByZWFkT25seT17dHJ1ZX1cbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXktaW5wdXRcIlxuICAgICAgICAgICAgICAgIG5hbWU9eydlbWFpbCd9XG4gICAgICAgICAgICAgICAgdmFsdWU9e3BhcmFtcy5lbWFpbH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPXsnZXJyb3ItbWVzc2FnZSd9PjwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUucGhvbmUnKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxQaG9uZUlucHV0XG4gICAgICAgICAgICAgICAgY291bnRyeT17J2lsJ31cbiAgICAgICAgICAgICAgICBsb2NhbGl6YXRpb249e2kxOG4udCgnY291bnRyaWVzJyl9XG4gICAgICAgICAgICAgICAgaW5wdXRDbGFzcz1cInBob25lLWlucHV0XCJcbiAgICAgICAgICAgICAgICBjb250YWluZXJDbGFzcz1cIm15LXBob25lXCJcbiAgICAgICAgICAgICAgICBidXR0b25DbGFzcz1cImRyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICBkcm9wZG93bkNsYXNzPVwicGhvbmUtZHJvcGRvd25cIlxuICAgICAgICAgICAgICAgIHZhbHVlPXtwYXJhbXMucGhvbmV9XG4gICAgICAgICAgICAgICAgZW5hYmxlU2VhcmNoXG4gICAgICAgICAgICAgICAgc2VhcmNoUGxhY2Vob2xkZXI9e2kxOG4udCgnc2VhcmNoJyl9XG4gICAgICAgICAgICAgICAgY291bnRyeUNvZGVFZGl0YWJsZT17ZmFsc2V9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaGFuZGxlT25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgaW5wdXRQcm9wcz17eyBuYW1lOiAncGhvbmUnIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT17J2Vycm9yLW1lc3NhZ2UnfT48L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImNoYW5nZS1wYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd1Bhc3N3b3JkTW9kYWwodHJ1ZSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGVuU3ZnIHdpZHRoPVwiMTJweFwiIGhlaWdodD1cIjEycHhcIiBmaWxsPVwiI2YwMTM0Y1wiIC8+XG4gICAgICAgICAgICAgICAgeycgICd9XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuY2hhbmdlLXBhc3N3b3JkJyl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj57aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5zZXR0aW5ncycpfTwvZGl2PlxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInNldHRpbmdzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS50aW1lLXpvbmUnKX0qXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm15LWlucHV0XCI+XG4gICAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgICAgc2V0VmFsdWU9e3NldFRpbWV6b25lfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e3RpbWV6b25lfVxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17dGltZXpvbmVzfVxuICAgICAgICAgICAgICAgICAgY2FuY2VsVGV4dFdpZHRoXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmRhdGUtdGltZS1mb3JtYXQnKX0qXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm15LWlucHV0XCI+XG4gICAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17ZGF0ZVRpbWVGb3JtYXRPcHRpb25zfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2RhdGVUaW1lRm9ybWF0fVxuICAgICAgICAgICAgICAgICAgc2V0VmFsdWU9e3NldERhdGVUaW1lRm9ybWF0fVxuICAgICAgICAgICAgICAgICAgY2FuY2VsVGV4dFdpZHRoXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZGF0ZS10aW1lLWZvcm1hdCd9PlxuICAgICAgICAgICAgICAgIHtkYXRlVGltZUZvcm1hdCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnLCBkYXRlVGltZUZvcm1hdC5mb3JtYXQpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUubGFuZ3VhZ2UnKX0qXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J215LWlucHV0J30+XG4gICAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17bG9jYWxlT3B0aW9uc31cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtsb2NhbGV9XG4gICAgICAgICAgICAgICAgICBzZXRWYWx1ZT17c2V0TG9jYWxlfVxuICAgICAgICAgICAgICAgICAgY2FuY2VsVGV4dFdpZHRoXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGQgZmllbGQtLWJ1dHRvbnNcIj5cbiAgICAgICAgICAgICAge3BhcmFtcy50ZWxlZ3JhbV9uYW1lID09PSAnJyAmJiAoXG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwidGVsZWdyYW1cIiBvbkNsaWNrPXsoKSA9PiBzZXRJc1RlbGVncmFtT3Blbih0cnVlKX0+XG4gICAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5jb25uZWN0LXRvLXRlbGVncmFtJyl9XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7cGFyYW1zLnRlbGVncmFtX25hbWUgIT09ICcnICYmIChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUudGVsZWdyYW1fbmFtZScpfVxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldElzVGVsZWdyYW1PcGVuKHRydWUpfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQZW5Tdmcgd2lkdGg9XCIxMnB4XCIgaGVpZ2h0PVwiMTJweFwiIGZpbGw9XCIjZjAxMzRjXCIgLz57JyAnfVxuICAgICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuY2hhbmdlLW5hbWUnKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsndGVsZWdyYW0tZXhpc3RpbmctaW5wdXQnfT5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXktaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17J3RlbGVncmFtX25hbWUnfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3BhcmFtcy50ZWxlZ3JhbV9uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsndGVsZWdyYW0tZXhpc3RpbmctaW5wdXRfX2NhbmNlbC1idXR0b24nfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGFyYW1zKChwcmV2U3RhdGUpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbGVncmFtX25hbWU6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDYW5jZWwgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT17J2Vycm9yLW1lc3NhZ2UnfT48L3A+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsndGVsZWdyYW0gb3Blbid9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXhpb3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldChgL3RlbGVncmFtL3NlbmRfdGVzdF9tZXNzYWdlLmpzb25gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigocmVzcCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNob3dUZWxlZ3JhbVJlc3BvbnNlTWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3AuZGF0YS5zdGF0dXNbMF0udG9VcHBlckNhc2UoKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3AuZGF0YS5zdGF0dXMuc3Vic3RyaW5nKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogcmVzcC5kYXRhLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2hvd1RlbGVncmFtUmVzcG9uc2VNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3c6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgNjAwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1RvYXN0KHJlc3AuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IGFsZXJ0KGVycm9yKSk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHshc2hvd1RlbGVncmFtUmVzcG9uc2VNZXNzYWdlLnNob3cgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGkxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuc2VuZF90ZWxlZ3JhbV9tZXNzYWdlJyl9XG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dUZWxlZ3JhbVJlc3BvbnNlTWVzc2FnZS5zaG93ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VGVsZWdyYW1SZXNwb25zZU1lc3NhZ2Uuc3RhdHVzfVxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9eydzdWJtaXQnfSBjbGFzc05hbWU9eydzYXZlJ30gZGlzYWJsZWQ9e3N1Ym1pdHRpbmd9PlxuICAgICAgICAgICAgeyFzdWJtaXR0aW5nICYmXG4gICAgICAgICAgICAgICFzaG93U3VjY2Vzc01lc3NhZ2UgJiZcbiAgICAgICAgICAgICAgIXNob3dFcnJvck1lc3NhZ2UgJiZcbiAgICAgICAgICAgICAgaTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5zdWJtaXQnKX1cbiAgICAgICAgICAgIHtzdWJtaXR0aW5nICYmXG4gICAgICAgICAgICAgICFzaG93U3VjY2Vzc01lc3NhZ2UgJiZcbiAgICAgICAgICAgICAgIXNob3dFcnJvck1lc3NhZ2UgJiZcbiAgICAgICAgICAgICAgaTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5zdWJtaXR0aW5nJyl9XG4gICAgICAgICAgICB7c2hvd1N1Y2Nlc3NNZXNzYWdlICYmIGkxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuc3VjY2VzcycpfVxuICAgICAgICAgICAge3Nob3dFcnJvck1lc3NhZ2UgJiYgaTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5lcnJvcicpfVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZm9ybT5cblxuICAgICAge3Nob3dQYXNzd29yZE1vZGFsICYmIChcbiAgICAgICAgPFBhc3N3b3JkTW9kYWxcbiAgICAgICAgICBjbG9zZT17KCkgPT4gc2V0U2hvd1Bhc3N3b3JkTW9kYWwoZmFsc2UpfVxuICAgICAgICAgIHNhdmU9eygpID0+IHt9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHtpc1RlbGVncmFtT3BlbiAmJiAoXG4gICAgICAgIDxUZWxlZ3JhbU1vZGFsXG4gICAgICAgICAgY2xvc2U9eygpID0+IHNldElzVGVsZWdyYW1PcGVuKGZhbHNlKX1cbiAgICAgICAgICBoYW5kbGVPbkNoYW5nZT17aGFuZGxlT25DaGFuZ2V9XG4gICAgICAgICAgaGFuZGxlU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvQ29udGFpbmVyPlxuICApO1xufTtcbiJdfQ==
624
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9Qcm9maWxlUGFnZS9Qcm9maWxlUGFnZS50c3giXSwibmFtZXMiOlsiUHJvZmlsZVBhZ2UiLCJ0aW1lem9uZXNBcnJheSIsIm1vbWVudCIsInR6IiwibmFtZXMiLCJkYXRlVGltZUZvcm1hdE9wdGlvbnMiLCJ2YWx1ZSIsImxhYmVsIiwiZm9ybWF0IiwibW9udGgiLCJkYXkiLCJ5ZWFyIiwiaG91ciIsIm1pbnV0ZSIsImhvdXIxMiIsInRpbWV6b25lcyIsIm1hcCIsInQiLCJsb2NhbGVPcHRpb25zIiwibG9jYWxlIiwic2V0TG9jYWxlIiwiZGF0ZVRpbWVGb3JtYXQiLCJzZXREYXRlVGltZUZvcm1hdCIsInRpbWV6b25lIiwic2V0VGltZXpvbmUiLCJkZXBhcnRtZW50cyIsInNldERlcGFydG1lbnRzIiwiYnVzaW5lc3NSb2xlcyIsInNldEJ1c2luZXNzUm9sZXMiLCJkZXBhcnRtZW50Iiwic2V0RGVwYXJ0bWVudCIsImJ1c2luZXNzUm9sZSIsInNldEJ1c2luZXNzUm9sZSIsImluaXRpYWxQYXJhbXNTdGF0ZSIsImZpcnN0X25hbWUiLCJsYXN0X25hbWUiLCJwaG9uZSIsImVtYWlsIiwidGltZV96b25lIiwiZGF0ZV90aW1lX2Zvcm1hdCIsInRlbGVncmFtX25hbWUiLCJvdGhlcl9idXNpbmVzc19yb2xlX25hbWUiLCJvdGhlcl9kZXBhcnRtZW50X25hbWUiLCJidXNpbmVzc19yb2xlIiwiaXNUZWxlZ3JhbU9wZW4iLCJzZXRJc1RlbGVncmFtT3BlbiIsInNob3dQYXNzd29yZE1vZGFsIiwic2V0U2hvd1Bhc3N3b3JkTW9kYWwiLCJzdWJtaXR0aW5nIiwic2V0U3VibWl0dGluZyIsInNob3dTdWNjZXNzTWVzc2FnZSIsInNldFNob3dTdWNjZXNzTWVzc2FnZSIsInNob3dFcnJvck1lc3NhZ2UiLCJzZXRTaG93RXJyb3JNZXNzYWdlIiwic2hvdyIsInN0YXR1cyIsIm1lc3NhZ2UiLCJzaG93VGVsZWdyYW1SZXNwb25zZU1lc3NhZ2UiLCJzZXRTaG93VGVsZWdyYW1SZXNwb25zZU1lc3NhZ2UiLCJwYXJhbXMiLCJzZXRQYXJhbXMiLCJoYW5kbGVPbkNoYW5nZSIsImUiLCJzdGFydHNXaXRoIiwicmVwbGFjZSIsInByZXZTdGF0ZSIsInRhcmdldCIsIm5hbWUiLCJoYW5kbGVCdXNpbmVzc1JvbGVDaGFuZ2UiLCJoYW5kbGVEZXBhcnRtZW50Q2hhbmdlIiwiZ2V0UGFyYW1zV2l0aEFnZ3JlZ2F0ZWRWYWx1ZXMiLCJkZXBhcnRtZW50X2lkIiwiYnVzaW5lc3Nfcm9sZV9pZCIsIndhdGVyQXV0aG9yaXR5TmFtZSIsInN0YXRlIiwiZ2xvYmFsX2RhdGEiLCJzaG93VG9hc3QiLCJkYXRhIiwidXNlcm5hbWUiLCJlcnJvciIsInRvYXN0Iiwic3VjY2VzcyIsImkxOG4iLCJwb3NpdGlvbiIsImhhbmRsZVN1Ym1pdCIsInByZXZlbnREZWZhdWx0IiwiYXhpb3MiLCJwdXQiLCJ1c2VyIiwidGhlbiIsInJlc3AiLCJlcnJvcnMiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwicCIsImlubmVySFRNTCIsImNsYXNzTGlzdCIsInJlbW92ZSIsIkpTT04iLCJwYXJzZSIsImZpbmRMb2NhbGUiLCJmaW5kIiwiZmluZERhdGVUaW1lRm9ybWF0IiwiZmluZFRpbWV6b25lIiwic2V0VGltZW91dCIsImZpbmRFbGVtZW50IiwicXVlcnlTZWxlY3RvciIsInBhcmVudCIsImNsb3Nlc3QiLCJmaW5kSW5wdXQiLCJhZGQiLCJjYXRjaCIsInV0aWxpdHlfbmFtZSIsInRva2VuIiwiY29udGVudCIsImRlZmF1bHRzIiwiaGVhZGVycyIsImNvbW1vbiIsImdldCIsImZpbmRQcm9wZXJ0eSIsIm9iamVjdCIsInByb3BlcnR5IiwiYnVzaW5lc3Nfcm9sZXMiLCJhbGVydCIsIm9wdGlvbnMiLCJ0cmFuc2xhdGlvbl9rZXkiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJEYXRlIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwidG9VcHBlckNhc2Ui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LElBOVNKLENBREY7QUF1VEQsQ0F6bEJNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTZWxlY3QgfSBmcm9tICdzcmMvY29tcG9uZW50cy9DdXN0b21JbnB1dHMvU2VsZWN0L1NlbGVjdCc7XG5pbXBvcnQgaTE4biBmcm9tICdzcmMvdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHsgUGFzc3dvcmRNb2RhbCB9IGZyb20gJy4vUGFzc3dvcmRNb2RhbC9QYXNzd29yZE1vZGFsJztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIFBlblN2ZyB9IGZyb20gJy4vcGVuLnN2Zyc7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBDYW5jZWwgfSBmcm9tICcuL2NhbmNlbC5zdmcnO1xuaW1wb3J0IFBob25lSW5wdXQgZnJvbSAncmVhY3QtcGhvbmUtaW5wdXQtMic7XG5pbXBvcnQgJ3JlYWN0LXBob25lLWlucHV0LTIvbGliL3N0eWxlLmNzcyc7XG5pbXBvcnQgeyBUZWxlZ3JhbU1vZGFsIH0gZnJvbSAnLi9UZWxlZ3JhbU1vZGFsL1RlbGVncmFtTW9kYWwnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gJy4vQ29udGFpbmVyJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50LXRpbWV6b25lJztcbmltcG9ydCB7IGFuYWx5dGljc1RyYWNrIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0FuYWx5dGljcyc7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHRvYXN0IH0gZnJvbSAncmVhY3QtdG9hc3RpZnknO1xuXG5leHBvcnQgY29uc3QgUHJvZmlsZVBhZ2UgPSAoKSA9PiB7XG4gIGNvbnN0IHRpbWV6b25lc0FycmF5ID0gbW9tZW50LnR6Lm5hbWVzKCk7XG4gIGNvbnN0IGRhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IFtcbiAgICB7XG4gICAgICB2YWx1ZTogJ3VzJyxcbiAgICAgIGxhYmVsOiAnVW5pdGVkIFN0YXRlcycsXG4gICAgICBmb3JtYXQ6IHtcbiAgICAgICAgbW9udGg6ICdzaG9ydCcsXG4gICAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICAgIGhvdXI6ICdudW1lcmljJyxcbiAgICAgICAgbWludXRlOiAnbnVtZXJpYycsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgdmFsdWU6ICdldScsXG4gICAgICBsYWJlbDogJ0V1cm9wZScsXG4gICAgICBmb3JtYXQ6IHtcbiAgICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICAgIG1vbnRoOiAnbnVtZXJpYycsXG4gICAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgICAgaG91cjogJ251bWVyaWMnLFxuICAgICAgICBtaW51dGU6ICdudW1lcmljJyxcbiAgICAgICAgaG91cjEyOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCB0aW1lem9uZXMgPSB0aW1lem9uZXNBcnJheS5tYXAoKHQpID0+IHtcbiAgICByZXR1cm4geyB2YWx1ZTogdCwgbGFiZWw6IHQgfTtcbiAgfSk7XG5cbiAgY29uc3QgbG9jYWxlT3B0aW9ucyA9IFtcbiAgICB7IHZhbHVlOiAnZW4nLCBsYWJlbDogJ0VuZ2xpc2gnIH0sXG4gICAgeyB2YWx1ZTogJ2VuX3VrJywgbGFiZWw6ICdFbmdsaXNoIChVSyknIH0sXG4gICAgeyB2YWx1ZTogJ2hlJywgbGFiZWw6ICfXoteR16jXmdeqJyB9LFxuICAgIHsgdmFsdWU6ICdmcicsIGxhYmVsOiAnRnJhbsOnYWlzJyB9LFxuICAgIHsgdmFsdWU6ICdpdCcsIGxhYmVsOiAnSXRhbGlhbm8nIH0sXG4gIF07XG5cbiAgY29uc3QgW2xvY2FsZSwgc2V0TG9jYWxlXSA9IHVzZVN0YXRlPHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gIH0+KGxvY2FsZU9wdGlvbnNbMF0pO1xuXG4gIGNvbnN0IFtkYXRlVGltZUZvcm1hdCwgc2V0RGF0ZVRpbWVGb3JtYXRdID0gdXNlU3RhdGU8e1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBmb3JtYXQ6IG9iamVjdDtcbiAgfT4oZGF0ZVRpbWVGb3JtYXRPcHRpb25zWzBdKTtcblxuICBjb25zdCBbdGltZXpvbmUsIHNldFRpbWV6b25lXSA9IHVzZVN0YXRlPHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gIH0+KHRpbWV6b25lc1syMF0pO1xuXG4gIGNvbnN0IFtkZXBhcnRtZW50cywgc2V0RGVwYXJ0bWVudHNdID0gdXNlU3RhdGU8XG4gICAge1xuICAgICAgdmFsdWU6IHN0cmluZztcbiAgICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgfVtdXG4gID4oW3sgdmFsdWU6ICcnLCBsYWJlbDogJycgfV0pO1xuXG4gIGNvbnN0IFtidXNpbmVzc1JvbGVzLCBzZXRCdXNpbmVzc1JvbGVzXSA9IHVzZVN0YXRlPFxuICAgIHtcbiAgICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgICBsYWJlbDogc3RyaW5nO1xuICAgIH1bXVxuICA+KFt7IHZhbHVlOiAnJywgbGFiZWw6ICcnIH1dKTtcblxuICBjb25zdCBbZGVwYXJ0bWVudCwgc2V0RGVwYXJ0bWVudF0gPSB1c2VTdGF0ZTxhbnk+KGRlcGFydG1lbnRzWzBdKTtcblxuICBjb25zdCBbYnVzaW5lc3NSb2xlLCBzZXRCdXNpbmVzc1JvbGVdID0gdXNlU3RhdGU8YW55PihidXNpbmVzc1JvbGVzWzBdKTtcblxuICBjb25zdCBpbml0aWFsUGFyYW1zU3RhdGUgPSB7XG4gICAgZmlyc3RfbmFtZTogJycsXG4gICAgbGFzdF9uYW1lOiAnJyxcbiAgICBwaG9uZTogJycsXG4gICAgZW1haWw6ICcnLFxuICAgIHRpbWVfem9uZTogJycsXG4gICAgZGF0ZV90aW1lX2Zvcm1hdDogJycsXG4gICAgbG9jYWxlOiAnJyxcbiAgICB0ZWxlZ3JhbV9uYW1lOiAnJyxcbiAgICBvdGhlcl9idXNpbmVzc19yb2xlX25hbWU6ICcnLFxuICAgIG90aGVyX2RlcGFydG1lbnRfbmFtZTogJycsXG4gICAgYnVzaW5lc3Nfcm9sZTogJycsXG4gICAgZGVwYXJ0bWVudDogJycsXG4gIH07XG5cbiAgY29uc3QgW2lzVGVsZWdyYW1PcGVuLCBzZXRJc1RlbGVncmFtT3Blbl0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IFtzaG93UGFzc3dvcmRNb2RhbCwgc2V0U2hvd1Bhc3N3b3JkTW9kYWxdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCBbc3VibWl0dGluZywgc2V0U3VibWl0dGluZ10gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IFtzaG93U3VjY2Vzc01lc3NhZ2UsIHNldFNob3dTdWNjZXNzTWVzc2FnZV0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IFtzaG93RXJyb3JNZXNzYWdlLCBzZXRTaG93RXJyb3JNZXNzYWdlXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW3Nob3dUZWxlZ3JhbVJlc3BvbnNlTWVzc2FnZSwgc2V0U2hvd1RlbGVncmFtUmVzcG9uc2VNZXNzYWdlXSA9XG4gICAgdXNlU3RhdGU8e1xuICAgICAgc2hvdzogYm9vbGVhbjtcbiAgICAgIHN0YXR1czogc3RyaW5nO1xuICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIH0+KHtcbiAgICAgIHNob3c6IGZhbHNlLFxuICAgICAgc3RhdHVzOiAnJyxcbiAgICAgIG1lc3NhZ2U6ICcnLFxuICAgIH0pO1xuICBjb25zdCBbcGFyYW1zLCBzZXRQYXJhbXNdID0gdXNlU3RhdGU8e1xuICAgIGZpcnN0X25hbWU6IHN0cmluZztcbiAgICBsYXN0X25hbWU6IHN0cmluZztcbiAgICBwaG9uZTogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgdGltZV96b25lOiBzdHJpbmc7XG4gICAgZGF0ZV90aW1lX2Zvcm1hdDogc3RyaW5nO1xuICAgIGxvY2FsZTogc3RyaW5nO1xuICAgIHRlbGVncmFtX25hbWU6IHN0cmluZztcbiAgICBvdGhlcl9idXNpbmVzc19yb2xlX25hbWU6IHN0cmluZztcbiAgICBvdGhlcl9kZXBhcnRtZW50X25hbWU6IHN0cmluZztcbiAgfT4oaW5pdGlhbFBhcmFtc1N0YXRlKTtcblxuICBjb25zdCBoYW5kbGVPbkNoYW5nZSA9IChlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBlID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKGUuc3RhcnRzV2l0aCgnOTcyMCcpKSB7XG4gICAgICAgIGUgPSBlLnJlcGxhY2UoLyg5NzIwKS9nLCAnOTcyJyk7XG4gICAgICB9XG4gICAgICBzZXRQYXJhbXMoKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICBwaG9uZTogZSxcbiAgICAgIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgeyB2YWx1ZSwgbmFtZSB9ID0gZS50YXJnZXQ7XG4gICAgICBzZXRQYXJhbXMoKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICBbbmFtZV06IHZhbHVlLFxuICAgICAgfSkpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVCdXNpbmVzc1JvbGVDaGFuZ2UgPSAoZSkgPT4ge1xuICAgIGlmIChlLnRhcmdldCAhPT0gbnVsbCkge1xuICAgICAgc2V0UGFyYW1zKHtcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICBidXNpbmVzc19yb2xlOiBlLnZhbHVlLFxuICAgICAgICBvdGhlcl9idXNpbmVzc19yb2xlX25hbWU6IGUudGFyZ2V0LnZhbHVlLFxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZURlcGFydG1lbnRDaGFuZ2UgPSAoZSkgPT4ge1xuICAgIGlmIChlLnRhcmdldCAhPT0gbnVsbCkge1xuICAgICAgc2V0UGFyYW1zKHtcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICBkZXBhcnRtZW50OiBlLnZhbHVlLFxuICAgICAgICBvdGhlcl9kZXBhcnRtZW50X25hbWU6IGUudGFyZ2V0LnZhbHVlLFxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGdldFBhcmFtc1dpdGhBZ2dyZWdhdGVkVmFsdWVzID0gKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICBkYXRlX3RpbWVfZm9ybWF0OiBkYXRlVGltZUZvcm1hdC52YWx1ZSxcbiAgICAgIGxvY2FsZTogbG9jYWxlLnZhbHVlLFxuICAgICAgdGltZV96b25lOiB0aW1lem9uZS52YWx1ZSxcbiAgICAgIGRlcGFydG1lbnRfaWQ6IGRlcGFydG1lbnQudmFsdWUsXG4gICAgICBidXNpbmVzc19yb2xlX2lkOiBidXNpbmVzc1JvbGUudmFsdWUsXG4gICAgfTtcbiAgfTtcblxuICBjb25zdCB3YXRlckF1dGhvcml0eU5hbWUgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGUpID0+IHN0YXRlLmdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5TmFtZSxcbiAgKTtcblxuICBjb25zdCBzaG93VG9hc3QgPSAoZGF0YSkgPT4ge1xuICAgIGNvbnN0IHVzZXJuYW1lID0gZGF0YS51c2VybmFtZTtcbiAgICBjb25zdCBlcnJvciA9IGRhdGEuZXJyb3I7XG4gICAgaWYgKGRhdGEuc3RhdHVzID09PSAnc3VjY2VzcycpIHtcbiAgICAgIHRvYXN0LnN1Y2Nlc3MoXG4gICAgICAgIGkxOG4udChgbXlfcHJvZmlsZV90YWIudGVsZWdyYW1fbWVzc2FnZXMuJHtkYXRhLm1lc3NhZ2V9YCwge1xuICAgICAgICAgIHVzZXJuYW1lLFxuICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIHBvc2l0aW9uOiAndG9wLWNlbnRlcicsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0b2FzdC5lcnJvcihcbiAgICAgICAgaTE4bi50KGBteV9wcm9maWxlX3RhYi50ZWxlZ3JhbV9tZXNzYWdlcy4ke2RhdGEubWVzc2FnZX1gLCB7XG4gICAgICAgICAgZXJyb3I6IGVycm9yLFxuICAgICAgICAgIHVzZXJuYW1lOiB1c2VybmFtZSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBwb3NpdGlvbjogJ3RvcC1jZW50ZXInLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0ID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgc2V0U3VibWl0dGluZyh0cnVlKTtcbiAgICBheGlvc1xuICAgICAgLnB1dCgnL3Byb2ZpbGVzJywgeyB1c2VyOiBnZXRQYXJhbXNXaXRoQWdncmVnYXRlZFZhbHVlcygpIH0pXG4gICAgICAudGhlbigocmVzcCkgPT4ge1xuICAgICAgICBpZiAocmVzcC5kYXRhLnVzZXIuZXJyb3JzID09PSBudWxsKSB7XG4gICAgICAgICAgZG9jdW1lbnRcbiAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKCcuZXJyb3ItbWVzc2FnZScpXG4gICAgICAgICAgICAuZm9yRWFjaCgocCkgPT4gKHAuaW5uZXJIVE1MID0gJycpKTtcblxuICAgICAgICAgIGRvY3VtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnLmludmFsaWQtZmllbGQnKVxuICAgICAgICAgICAgLmZvckVhY2goKHApID0+IHAuY2xhc3NMaXN0LnJlbW92ZSgnaW52YWxpZC1maWVsZCcpKTtcbiAgICAgICAgICBsZXQgdXNlciA9IEpTT04ucGFyc2UocmVzcC5kYXRhLnVzZXIpO1xuICAgICAgICAgIGNvbnN0IGZpbmRMb2NhbGUgPSBsb2NhbGVPcHRpb25zLmZpbmQoKGUpID0+IGUudmFsdWUgPT09IHVzZXIubG9jYWxlKTtcbiAgICAgICAgICBjb25zdCBmaW5kRGF0ZVRpbWVGb3JtYXQgPSBkYXRlVGltZUZvcm1hdE9wdGlvbnMuZmluZChcbiAgICAgICAgICAgIChlKSA9PiBlLnZhbHVlID09PSB1c2VyLmRhdGVfdGltZV9mb3JtYXQsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBmaW5kVGltZXpvbmUgPSB0aW1lem9uZXMuZmluZChcbiAgICAgICAgICAgIChlKSA9PiBlLnZhbHVlID09PSB1c2VyLnRpbWVfem9uZSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgc2V0UGFyYW1zKHVzZXIpO1xuICAgICAgICAgIHNldExvY2FsZShmaW5kTG9jYWxlISk7XG4gICAgICAgICAgc2V0RGF0ZVRpbWVGb3JtYXQoZmluZERhdGVUaW1lRm9ybWF0ISk7XG4gICAgICAgICAgc2V0VGltZXpvbmUoZmluZFRpbWV6b25lISk7XG4gICAgICAgICAgc2V0U2hvd1N1Y2Nlc3NNZXNzYWdlKHRydWUpO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgc2V0U2hvd1N1Y2Nlc3NNZXNzYWdlKGZhbHNlKTtcbiAgICAgICAgICB9LCA2MDAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkb2N1bWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5lcnJvci1tZXNzYWdlJylcbiAgICAgICAgICAgIC5mb3JFYWNoKChwKSA9PiAocC5pbm5lckhUTUwgPSAnJykpO1xuICAgICAgICAgIGxldCBlcnJvcnMgPSByZXNwLmRhdGEudXNlci5lcnJvcnM7XG4gICAgICAgICAgZm9yIChjb25zdCBlcnJvciBpbiBlcnJvcnMpIHtcbiAgICAgICAgICAgIGxldCBmaW5kRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGlucHV0W25hbWU9JyR7ZXJyb3J9J11gKTtcbiAgICAgICAgICAgIGxldCBwYXJlbnQgPSBmaW5kRWxlbWVudCEuY2xvc2VzdCgnLmZpZWxkJyk7XG4gICAgICAgICAgICBsZXQgZmluZElucHV0ID0gcGFyZW50IS5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICAgICAgICAgICAgZmluZElucHV0IS5jbGFzc0xpc3QuYWRkKCdpbnZhbGlkLWZpZWxkJyk7XG4gICAgICAgICAgICBwYXJlbnQhLnF1ZXJ5U2VsZWN0b3IoJy5lcnJvci1tZXNzYWdlJykhLmlubmVySFRNTCA9IGkxOG4udChcbiAgICAgICAgICAgICAgYGRhc2hib2FyZF92Mi5wcm9maWxlLmVycm9ycy4ke2Vycm9yfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzZXRTaG93U3VjY2Vzc01lc3NhZ2UoZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0U3VibWl0dGluZyhmYWxzZSk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICBzZXRTaG93RXJyb3JNZXNzYWdlKHRydWUpO1xuICAgICAgICBzZXRTaG93U3VjY2Vzc01lc3NhZ2UoZmFsc2UpO1xuICAgICAgICBzZXRTdWJtaXR0aW5nKGZhbHNlKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgc2V0U2hvd0Vycm9yTWVzc2FnZShmYWxzZSk7XG4gICAgICAgIH0sIDYwMDApO1xuICAgICAgfSk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBhbmFseXRpY3NUcmFjaygnVmlld2VkIFByb2ZpbGUgUGFnZScsIHtcbiAgICAgIHV0aWxpdHlfbmFtZTogd2F0ZXJBdXRob3JpdHlOYW1lLFxuICAgIH0pO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB0b2tlbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPWNzcmYtdG9rZW5dJykhLmNvbnRlbnQ7XG4gICAgYXhpb3MuZGVmYXVsdHMuaGVhZGVycy5jb21tb25bJ1gtQ1NSRi1UT0tFTiddID0gdG9rZW47XG4gICAgYXhpb3MuZGVmYXVsdHMuaGVhZGVycy5jb21tb25bJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzJztcbiAgICBheGlvc1xuICAgICAgLmdldChgL3Byb2ZpbGVzL3Jlc291cmNlYClcbiAgICAgIC50aGVuKChyZXNwKSA9PiB7XG4gICAgICAgIHNldFBhcmFtcyhyZXNwLmRhdGEudXNlcik7XG4gICAgICAgIGNvbnN0IGZpbmRQcm9wZXJ0eSA9IChvYmplY3QsIHByb3BlcnR5KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdC5maW5kKChlKSA9PiBlLnZhbHVlID09PSBwcm9wZXJ0eSk7XG4gICAgICAgIH07XG4gICAgICAgIHNldExvY2FsZShmaW5kUHJvcGVydHkobG9jYWxlT3B0aW9ucywgcmVzcC5kYXRhLnVzZXIubG9jYWxlKSk7XG4gICAgICAgIHNldERhdGVUaW1lRm9ybWF0KFxuICAgICAgICAgIGZpbmRQcm9wZXJ0eShkYXRlVGltZUZvcm1hdE9wdGlvbnMsIHJlc3AuZGF0YS51c2VyLmRhdGVfdGltZV9mb3JtYXQpLFxuICAgICAgICApO1xuICAgICAgICBzZXRUaW1lem9uZShmaW5kUHJvcGVydHkodGltZXpvbmVzLCByZXNwLmRhdGEudXNlci50aW1lX3pvbmUpKTtcbiAgICAgICAgc2V0QnVzaW5lc3NSb2xlKFxuICAgICAgICAgIGZpbmRQcm9wZXJ0eShcbiAgICAgICAgICAgIHJlc3AuZGF0YS5idXNpbmVzc19yb2xlcyxcbiAgICAgICAgICAgIHJlc3AuZGF0YS51c2VyLmJ1c2luZXNzX3JvbGVfaWQsXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgICAgc2V0RGVwYXJ0bWVudChcbiAgICAgICAgICBmaW5kUHJvcGVydHkocmVzcC5kYXRhLmRlcGFydG1lbnRzLCByZXNwLmRhdGEudXNlci5kZXBhcnRtZW50X2lkKSxcbiAgICAgICAgKTtcbiAgICAgICAgc2V0RGVwYXJ0bWVudHMocmVzcC5kYXRhLmRlcGFydG1lbnRzKTtcbiAgICAgICAgc2V0QnVzaW5lc3NSb2xlcyhyZXNwLmRhdGEuYnVzaW5lc3Nfcm9sZXMpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IGFsZXJ0KGVycm9yKSk7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDxDb250YWluZXI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlYWRlci10aXRsZVwiPntpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLnRpdGxlJyl9PC9kaXY+XG4gICAgICA8Zm9ybSBhY3Rpb249XCJcIiBvblN1Ym1pdD17KGUpID0+IGhhbmRsZVN1Ym1pdChlKX0+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLnBlcnNvbmFsLWRldGFpbHMnKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJwZXJzb25hbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuZmlyc3RfbmFtZScpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm15LWlucHV0XCJcbiAgICAgICAgICAgICAgICBuYW1lPXsnZmlyc3RfbmFtZSd9XG4gICAgICAgICAgICAgICAgdmFsdWU9e3BhcmFtcy5maXJzdF9uYW1lfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlT25DaGFuZ2UoZSl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT17J2Vycm9yLW1lc3NhZ2UnfT48L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmxhc3RfbmFtZScpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm15LWlucHV0XCJcbiAgICAgICAgICAgICAgICBuYW1lPXsnbGFzdF9uYW1lJ31cbiAgICAgICAgICAgICAgICB2YWx1ZT17cGFyYW1zLmxhc3RfbmFtZX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZU9uQ2hhbmdlKGUpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9eydlcnJvci1tZXNzYWdlJ30+PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkIGZpZWxkLS1yZWFkb25seVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuZW1haWwnKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHJlYWRPbmx5PXt0cnVlfVxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJteS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgbmFtZT17J2VtYWlsJ31cbiAgICAgICAgICAgICAgICB2YWx1ZT17cGFyYW1zLmVtYWlsfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9eydlcnJvci1tZXNzYWdlJ30+PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5waG9uZScpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPFBob25lSW5wdXRcbiAgICAgICAgICAgICAgICBjb3VudHJ5PXsnaWwnfVxuICAgICAgICAgICAgICAgIGxvY2FsaXphdGlvbj17aTE4bi50KCdjb3VudHJpZXMnKX1cbiAgICAgICAgICAgICAgICBpbnB1dENsYXNzPVwicGhvbmUtaW5wdXRcIlxuICAgICAgICAgICAgICAgIGNvbnRhaW5lckNsYXNzPVwibXktcGhvbmVcIlxuICAgICAgICAgICAgICAgIGJ1dHRvbkNsYXNzPVwiZHJvcGRvd25cIlxuICAgICAgICAgICAgICAgIGRyb3Bkb3duQ2xhc3M9XCJwaG9uZS1kcm9wZG93blwiXG4gICAgICAgICAgICAgICAgdmFsdWU9e3BhcmFtcy5waG9uZX1cbiAgICAgICAgICAgICAgICBlbmFibGVTZWFyY2hcbiAgICAgICAgICAgICAgICBzZWFyY2hQbGFjZWhvbGRlcj17aTE4bi50KCdzZWFyY2gnKX1cbiAgICAgICAgICAgICAgICBjb3VudHJ5Q29kZUVkaXRhYmxlPXtmYWxzZX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICBoYW5kbGVPbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBpbnB1dFByb3BzPXt7IG5hbWU6ICdwaG9uZScgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPXsnZXJyb3ItbWVzc2FnZSd9PjwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuZGVwYXJ0bWVudCcpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteS1pbnB1dFwiPlxuICAgICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICAgIHNldFZhbHVlPXtzZXREZXBhcnRtZW50fVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e3tcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGkxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICBgZGFzaGJvYXJkX3YyLnByb2ZpbGUuZGVwYXJ0bWVudHMuJHtkZXBhcnRtZW50Py5sYWJlbH1gLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZGVwYXJ0bWVudD8udmFsdWUsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17ZGVwYXJ0bWVudHN9XG4gICAgICAgICAgICAgICAgICBjYW5jZWxUZXh0V2lkdGhcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZT17e1xuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBkZXBhcnRtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25fa2V5OiAnZGFzaGJvYXJkX3YyLnByb2ZpbGUuZGVwYXJ0bWVudHMnLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge2RlcGFydG1lbnQgJiZcbiAgICAgICAgICAgICAgZGVwYXJ0bWVudD8udmFsdWUgPT09XG4gICAgICAgICAgICAgICAgZGVwYXJ0bWVudHNbZGVwYXJ0bWVudHMubGVuZ3RoIC0gMV0udmFsdWUgJiYgKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuZGVwYXJ0bWVudF9hbHQnKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJteS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9eydvdGhlcl9kZXBhcnRtZW50X25hbWUnfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17cGFyYW1zLm90aGVyX2RlcGFydG1lbnRfbmFtZX1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVEZXBhcnRtZW50Q2hhbmdlKGUpfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmJ1c2luZXNzX3JvbGUnKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXktaW5wdXRcIj5cbiAgICAgICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgICBzZXRWYWx1ZT17c2V0QnVzaW5lc3NSb2xlfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e3tcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGkxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICBgZGFzaGJvYXJkX3YyLnByb2ZpbGUuYnVzaW5lc3Nfcm9sZXMuJHtidXNpbmVzc1JvbGU/LmxhYmVsfWAsXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBidXNpbmVzc1JvbGU/LnZhbHVlLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM9e2J1c2luZXNzUm9sZXN9XG4gICAgICAgICAgICAgICAgICBjYW5jZWxUZXh0V2lkdGhcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZT17e1xuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBidXNpbmVzc1JvbGVzLFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbl9rZXk6ICdkYXNoYm9hcmRfdjIucHJvZmlsZS5idXNpbmVzc19yb2xlcycsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB7YnVzaW5lc3NSb2xlICYmXG4gICAgICAgICAgICAgIGJ1c2luZXNzUm9sZT8udmFsdWUgPT09XG4gICAgICAgICAgICAgICAgYnVzaW5lc3NSb2xlc1tidXNpbmVzc1JvbGVzLmxlbmd0aCAtIDFdLnZhbHVlICYmIChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmJ1c2luZXNzX3JvbGVfYWx0Jyl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICByZWFkT25seT17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXktaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPXsnb3RoZXJfYnVzaW5lc3Nfcm9sZV9uYW1lJ31cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3BhcmFtcy5vdGhlcl9idXNpbmVzc19yb2xlX25hbWV9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlQnVzaW5lc3NSb2xlQ2hhbmdlKGUpfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImNoYW5nZS1wYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd1Bhc3N3b3JkTW9kYWwodHJ1ZSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGVuU3ZnIHdpZHRoPVwiMTJweFwiIGhlaWdodD1cIjEycHhcIiBmaWxsPVwiI2YwMTM0Y1wiIC8+XG4gICAgICAgICAgICAgICAgeycgICd9XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuY2hhbmdlLXBhc3N3b3JkJyl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj57aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5zZXR0aW5ncycpfTwvZGl2PlxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInNldHRpbmdzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS50aW1lLXpvbmUnKX0qXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm15LWlucHV0XCI+XG4gICAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgICAgc2V0VmFsdWU9e3NldFRpbWV6b25lfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e3RpbWV6b25lfVxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17dGltZXpvbmVzfVxuICAgICAgICAgICAgICAgICAgY2FuY2VsVGV4dFdpZHRoXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmRhdGUtdGltZS1mb3JtYXQnKX0qXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm15LWlucHV0XCI+XG4gICAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17ZGF0ZVRpbWVGb3JtYXRPcHRpb25zfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2RhdGVUaW1lRm9ybWF0fVxuICAgICAgICAgICAgICAgICAgc2V0VmFsdWU9e3NldERhdGVUaW1lRm9ybWF0fVxuICAgICAgICAgICAgICAgICAgY2FuY2VsVGV4dFdpZHRoXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZGF0ZS10aW1lLWZvcm1hdCd9PlxuICAgICAgICAgICAgICAgIHtkYXRlVGltZUZvcm1hdCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnLCBkYXRlVGltZUZvcm1hdC5mb3JtYXQpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUubGFuZ3VhZ2UnKX0qXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J215LWlucHV0J30+XG4gICAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17bG9jYWxlT3B0aW9uc31cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtsb2NhbGV9XG4gICAgICAgICAgICAgICAgICBzZXRWYWx1ZT17c2V0TG9jYWxlfVxuICAgICAgICAgICAgICAgICAgY2FuY2VsVGV4dFdpZHRoXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGQgZmllbGQtLWJ1dHRvbnNcIj5cbiAgICAgICAgICAgICAge3BhcmFtcy50ZWxlZ3JhbV9uYW1lID09PSAnJyAmJiAoXG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwidGVsZWdyYW1cIiBvbkNsaWNrPXsoKSA9PiBzZXRJc1RlbGVncmFtT3Blbih0cnVlKX0+XG4gICAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5jb25uZWN0LXRvLXRlbGVncmFtJyl9XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7cGFyYW1zLnRlbGVncmFtX25hbWUgIT09ICcnICYmIChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUudGVsZWdyYW1fbmFtZScpfVxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldElzVGVsZWdyYW1PcGVuKHRydWUpfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQZW5Tdmcgd2lkdGg9XCIxMnB4XCIgaGVpZ2h0PVwiMTJweFwiIGZpbGw9XCIjZjAxMzRjXCIgLz57JyAnfVxuICAgICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuY2hhbmdlLW5hbWUnKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsndGVsZWdyYW0tZXhpc3RpbmctaW5wdXQnfT5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXktaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17J3RlbGVncmFtX25hbWUnfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3BhcmFtcy50ZWxlZ3JhbV9uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsndGVsZWdyYW0tZXhpc3RpbmctaW5wdXRfX2NhbmNlbC1idXR0b24nfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGFyYW1zKChwcmV2U3RhdGUpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbGVncmFtX25hbWU6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDYW5jZWwgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT17J2Vycm9yLW1lc3NhZ2UnfT48L3A+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsndGVsZWdyYW0gb3Blbid9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXhpb3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldChgL3RlbGVncmFtL3NlbmRfdGVzdF9tZXNzYWdlLmpzb25gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigocmVzcCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNob3dUZWxlZ3JhbVJlc3BvbnNlTWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3AuZGF0YS51c2VyLnN0YXR1c1swXS50b1VwcGVyQ2FzZSgpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcC5kYXRhLnVzZXIuc3RhdHVzLnN1YnN0cmluZygxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHJlc3AuZGF0YS51c2VyLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2hvd1RlbGVncmFtUmVzcG9uc2VNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3c6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgNjAwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1RvYXN0KHJlc3AuZGF0YS51c2VyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4gYWxlcnQoZXJyb3IpKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgeyFzaG93VGVsZWdyYW1SZXNwb25zZU1lc3NhZ2Uuc2hvdyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgaTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5zZW5kX3RlbGVncmFtX21lc3NhZ2UnKX1cbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1RlbGVncmFtUmVzcG9uc2VNZXNzYWdlLnNob3cgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dUZWxlZ3JhbVJlc3BvbnNlTWVzc2FnZS5zdGF0dXN9XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgIDxidXR0b24gdHlwZT17J3N1Ym1pdCd9IGNsYXNzTmFtZT17J3NhdmUnfSBkaXNhYmxlZD17c3VibWl0dGluZ30+XG4gICAgICAgICAgICB7IXN1Ym1pdHRpbmcgJiZcbiAgICAgICAgICAgICAgIXNob3dTdWNjZXNzTWVzc2FnZSAmJlxuICAgICAgICAgICAgICAhc2hvd0Vycm9yTWVzc2FnZSAmJlxuICAgICAgICAgICAgICBpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLnN1Ym1pdCcpfVxuICAgICAgICAgICAge3N1Ym1pdHRpbmcgJiZcbiAgICAgICAgICAgICAgIXNob3dTdWNjZXNzTWVzc2FnZSAmJlxuICAgICAgICAgICAgICAhc2hvd0Vycm9yTWVzc2FnZSAmJlxuICAgICAgICAgICAgICBpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLnN1Ym1pdHRpbmcnKX1cbiAgICAgICAgICAgIHtzaG93U3VjY2Vzc01lc3NhZ2UgJiYgaTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5zdWNjZXNzJyl9XG4gICAgICAgICAgICB7c2hvd0Vycm9yTWVzc2FnZSAmJiBpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmVycm9yJyl9XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9mb3JtPlxuXG4gICAgICB7c2hvd1Bhc3N3b3JkTW9kYWwgJiYgKFxuICAgICAgICA8UGFzc3dvcmRNb2RhbFxuICAgICAgICAgIGNsb3NlPXsoKSA9PiBzZXRTaG93UGFzc3dvcmRNb2RhbChmYWxzZSl9XG4gICAgICAgICAgc2F2ZT17KCkgPT4ge319XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAge2lzVGVsZWdyYW1PcGVuICYmIChcbiAgICAgICAgPFRlbGVncmFtTW9kYWxcbiAgICAgICAgICBjbG9zZT17KCkgPT4gc2V0SXNUZWxlZ3JhbU9wZW4oZmFsc2UpfVxuICAgICAgICAgIGhhbmRsZU9uQ2hhbmdlPXtoYW5kbGVPbkNoYW5nZX1cbiAgICAgICAgICBoYW5kbGVTdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9Db250YWluZXI+XG4gICk7XG59O1xuIl19
@@ -29,6 +29,8 @@ var _actionsCreator = require("store/samplings/actionsCreator");
29
29
 
30
30
  var _urls = require("utilities/urls");
31
31
 
32
+ var _useInitializeHeaders = require("hooks/useInitializeHeaders");
33
+
32
34
  var _samplingsPageUtils = require("../samplingsPageUtils");
33
35
 
34
36
  var _SamplingActions = _interopRequireDefault(require("./SamplingActions"));
@@ -44,6 +46,7 @@ var SamplingActionContainer = function SamplingActionContainer(props) {
44
46
  dropdownToggle = props.dropdownToggle;
45
47
  var allowed_actions = [_samplingsPageUtils.COLLECT_SAMPLING_OP, _samplingsPageUtils.CANCEL_SAMPLING_OP, _samplingsPageUtils.EDIT_PROPERTIES_OP, _samplingsPageUtils.REVERT_CANCELLATION];
46
48
  var history = (0, _reactRouterDom.useHistory)();
49
+ (0, _useInitializeHeaders.useInitializeHeaders)();
47
50
  var dispatch = (0, _reactRedux.useDispatch)();
48
51
  var navContext = (0, _reactRedux.useSelector)(function (state) {
49
52
  return state.nav_context_data.navContext;
@@ -65,19 +68,25 @@ var SamplingActionContainer = function SamplingActionContainer(props) {
65
68
 
66
69
  var deleteSampling = /*#__PURE__*/function () {
67
70
  var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(sampling) {
68
- var response;
71
+ var csrfToken, response;
69
72
  return _regenerator.default.wrap(function _callee$(_context) {
70
73
  while (1) {
71
74
  switch (_context.prev = _context.next) {
72
75
  case 0:
73
- _context.next = 2;
76
+ // @ts-ignore
77
+ csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
78
+ _context.next = 3;
74
79
  return _axios.default.delete((0, _urls.urls)({
75
80
  samplingId: sampling.id,
76
81
  locale: navContext.locale,
77
82
  waterAuthorityId: waterAuthorityId
78
- }).samplingProperties.deleteSampling.url);
83
+ }).samplingProperties.deleteSampling.url, {
84
+ headers: {
85
+ 'X-CSRF-TOKEN': csrfToken
86
+ }
87
+ });
79
88
 
80
- case 2:
89
+ case 3:
81
90
  response = _context.sent;
82
91
 
83
92
  if (response.status === 200) {
@@ -85,7 +94,7 @@ var SamplingActionContainer = function SamplingActionContainer(props) {
85
94
  window.location.reload();
86
95
  }
87
96
 
88
- case 4:
97
+ case 5:
89
98
  case "end":
90
99
  return _context.stop();
91
100
  }
@@ -176,4 +185,4 @@ var SamplingActionContainer = function SamplingActionContainer(props) {
176
185
 
177
186
  var _default = SamplingActionContainer;
178
187
  exports.default = _default;
179
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWdlcy9TYW1wbGluZ3NQYWdlL0FjdGlvbnNEcm9wRG93bi9TYW1wbGluZ0FjdGlvbkNvbnRhaW5lci50c3giXSwibmFtZXMiOlsiU2FtcGxpbmdBY3Rpb25Db250YWluZXIiLCJwcm9wcyIsInNhbXBsaW5nIiwid2F0ZXJBdXRob3JpdHlJZCIsInNob3dMYWJSZXN1bHQiLCJkcm9wZG93blRvZ2dsZSIsImFsbG93ZWRfYWN0aW9ucyIsIkNPTExFQ1RfU0FNUExJTkdfT1AiLCJDQU5DRUxfU0FNUExJTkdfT1AiLCJFRElUX1BST1BFUlRJRVNfT1AiLCJSRVZFUlRfQ0FOQ0VMTEFUSU9OIiwiaGlzdG9yeSIsImRpc3BhdGNoIiwibmF2Q29udGV4dCIsInN0YXRlIiwibmF2X2NvbnRleHRfZGF0YSIsIndhdGVyQXV0aG9yaXR5TmFtZSIsImdsb2JhbF9kYXRhIiwic2hvd0NvbmZpcm0iLCJzZXRTaG93Q29uZmlybSIsImhhbmRsZUNsaWNrIiwidXRpbGl0eV9uYW1lIiwiZGVsZXRlU2FtcGxpbmciLCJheGlvcyIsImRlbGV0ZSIsInNhbXBsaW5nSWQiLCJpZCIsImxvY2FsZSIsInNhbXBsaW5nUHJvcGVydGllcyIsInVybCIsInJlc3BvbnNlIiwic3RhdHVzIiwid2luZG93IiwibG9jYXRpb24iLCJyZWxvYWQiLCJoYW5kbGVBY3Rpb25DbGljayIsIml0ZW0iLCJzYW1wbGluZ19pZCIsIkRFTEVURV9TQU1QTElOR19PUCIsIkxBQl9SRVNVTFRfT1AiLCJpbmNsdWRlcyIsInVybFByZWZpeCIsIm9wIiwiU1BFQ0lBTF9NRU5VX0lEX1RPX09QIiwic2FtcGxpbmdzUGFnZSIsInJvdXRlIiwic2FtcGxpbmdQcm9wZXJ0aWVzUm91dGUiLCJwdXNoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUVBOztBQUNBOztBQUVBOztBQVdBOzs7Ozs7QUFTQSxJQUFNQSx1QkFB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ckJmLGtCQUFBQSxFQUFFLEVBQUV4QixRQUFRLENBQUN3QixFQURRO0FBRXJCQyxrQkFBQUEsTUFBTSxFQUFFZCxVQUFVLENBQUNjLE1BRkU7QUFHckJ4QixrQkFBQUEsZ0JBQWdCLEVBQUVBLGdCQUhHO0FBSXJCdUMsa0JBQUFBLEVBQUUsRUFBRUMsMENBQXNCUCxJQUFJLENBQUNWLEVBQTNCLEtBQWtDVSxJQUFJLENBQUNWO0FBSnRCLGlCQUFMLEVBS2ZrQixhQWxCcUI7QUFtQmxCQyxnQkFBQUEsS0FuQmtCLEdBbUJWSixTQUFTLENBQUNLLHVCQW5CQTtBQW9CeEJuQyxnQkFBQUEsT0FBTyxDQUFDb0MsSUFBUixDQUFhRixLQUFLLENBQUNoQixHQUFuQjs7QUFwQndCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE9BQTVCOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsR0FERjs7QUF5QkEsc0JBQ0UsNkJBQUMsd0JBQUQ7QUFDRSxJQUFBLFFBQVEsRUFBRTNCLFFBRFo7QUFFRSxJQUFBLFdBQVcsRUFBRWdCLFdBRmY7QUFHRSxJQUFBLGNBQWMsRUFBRUMsY0FIbEI7QUFJRSxJQUFBLGNBQWMsRUFBRUcsY0FKbEI7QUFLRSxJQUFBLGlCQUFpQixFQUFFYSxpQkFMckI7QUFNRSxJQUFBLFdBQVcsRUFBRWYsV0FOZjtBQU9FLElBQUEsY0FBYyxFQUFFZjtBQVBsQixJQURGO0FBV0QsQ0EzRUQ7O2VBNkVlTCx1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBGQywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgdXNlSGlzdG9yeSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgRHJvcERvd25JdGVtVHlwZSB9IGZyb20gJ3NyYy91aS1raXQvRHJvcERvd24vRHJvcERvd25JdGVtJztcbmltcG9ydCB7IGFuYWx5dGljc1RyYWNrIH0gZnJvbSAnc3JjL3V0aWxpdGllcy9BbmFseXRpY3MnO1xuaW1wb3J0IHsgYXBwUmVkdWNlciB9IGZyb20gJ3NyYy9zdG9yZS9yb290UmVkdWNlcic7XG5pbXBvcnQgeyBnZXRTYW1wbGluZ0J5SWQgfSBmcm9tICdzcmMvc3RvcmUvc2FtcGxpbmdzL2FjdGlvbnNDcmVhdG9yJztcbmltcG9ydCB7IHVybHMgfSBmcm9tICdzcmMvdXRpbGl0aWVzL3VybHMnO1xuXG5pbXBvcnQge1xuICBDQU5DRUxfU0FNUExJTkdfT1AsXG4gIENPTExFQ1RfU0FNUExJTkdfT1AsXG4gIERFTEVURV9TQU1QTElOR19PUCxcbiAgRURJVF9QUk9QRVJUSUVTX09QLFxuICBSRVZFUlRfQ0FOQ0VMTEFUSU9OLFxuICBTUEVDSUFMX01FTlVfSURfVE9fT1AsXG4gIFNhbXBsaW5nRGF0YSxcbiAgTEFCX1JFU1VMVF9PUCxcbn0gZnJvbSAnLi4vc2FtcGxpbmdzUGFnZVV0aWxzJztcblxuaW1wb3J0IFNhbXBsaW5nQWN0aW9ucyBmcm9tICcuL1NhbXBsaW5nQWN0aW9ucyc7XG5cbnR5cGUgU2FtcGxpbmdBY3Rpb25Ecm9wZG93blByb3BzID0ge1xuICBzYW1wbGluZz86IFNhbXBsaW5nRGF0YTtcbiAgd2F0ZXJBdXRob3JpdHlJZDogc3RyaW5nO1xuICBzaG93TGFiUmVzdWx0OiBGdW5jdGlvbjtcbiAgZHJvcGRvd25Ub2dnbGU6IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IFNhbXBsaW5nQWN0aW9uQ29udGFpbmVyOiBGQzxTYW1wbGluZ0FjdGlvbkRyb3Bkb3duUHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgc2FtcGxpbmcsIHdhdGVyQXV0aG9yaXR5SWQsIHNob3dMYWJSZXN1bHQsIGRyb3Bkb3duVG9nZ2xlIH0gPSBwcm9wcztcbiAgY29uc3QgYWxsb3dlZF9hY3Rpb25zID0gW1xuICAgIENPTExFQ1RfU0FNUExJTkdfT1AsXG4gICAgQ0FOQ0VMX1NBTVBMSU5HX09QLFxuICAgIEVESVRfUFJPUEVSVElFU19PUCxcbiAgICBSRVZFUlRfQ0FOQ0VMTEFUSU9OLFxuICBdO1xuICBjb25zdCBoaXN0b3J5ID0gdXNlSGlzdG9yeSgpO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdkNvbnRleHQgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJldHVyblR5cGU8dHlwZW9mIGFwcFJlZHVjZXI+KSA9PiBzdGF0ZS5uYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQsXG4gICk7XG4gIGNvbnN0IHdhdGVyQXV0aG9yaXR5TmFtZSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZSkgPT4gc3RhdGUuZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlOYW1lLFxuICApO1xuICBjb25zdCBbc2hvd0NvbmZpcm0sIHNldFNob3dDb25maXJtXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCBoYW5kbGVDbGljayA9ICgpID0+IHtcbiAgICBhbmFseXRpY3NUcmFjayhgT3BlbiB3ZWIgYWN0aW9uYCwge1xuICAgICAgdXRpbGl0eV9uYW1lOiB3YXRlckF1dGhvcml0eU5hbWUsXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgZGVsZXRlU2FtcGxpbmcgPSBhc3luYyAoc2FtcGxpbmc6IFNhbXBsaW5nRGF0YSkgPT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3MuZGVsZXRlKFxuICAgICAgdXJscyh7XG4gICAgICAgIHNhbXBsaW5nSWQ6IHNhbXBsaW5nLmlkLFxuICAgICAgICBsb2NhbGU6IG5hdkNvbnRleHQubG9jYWxlLFxuICAgICAgICB3YXRlckF1dGhvcml0eUlkOiB3YXRlckF1dGhvcml0eUlkLFxuICAgICAgfSkuc2FtcGxpbmdQcm9wZXJ0aWVzLmRlbGV0ZVNhbXBsaW5nLnVybCxcbiAgICApO1xuXG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAvLyBSZWZyZXNoIHRoZSBzYW1wbGluZ3MgaGFja1xuICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVBY3Rpb25DbGljayA9XG4gICAgKHNhbXBsaW5nOiBTYW1wbGluZ0RhdGEpID0+IGFzeW5jIChpdGVtOiBEcm9wRG93bkl0ZW1UeXBlKSA9PiB7XG4gICAgICBhbmFseXRpY3NUcmFjayhgU2FtcGxpbmcgT3BlcmF0aW9uIGFjdGlvbiBtZW51IC0gQ2xpY2tlZCAke2l0ZW0uaWR9YCwge1xuICAgICAgICB1dGlsaXR5X25hbWU6IHdhdGVyQXV0aG9yaXR5TmFtZSxcbiAgICAgICAgc2FtcGxpbmdfaWQ6IHNhbXBsaW5nLmlkLFxuICAgICAgfSk7XG4gICAgICBpZiAoaXRlbS5pZCA9PT0gREVMRVRFX1NBTVBMSU5HX09QKSB7XG4gICAgICAgIHNldFNob3dDb25maXJtKHRydWUpO1xuICAgICAgfSBlbHNlIGlmIChpdGVtLmlkID09PSBMQUJfUkVTVUxUX09QKSB7XG4gICAgICAgIHNob3dMYWJSZXN1bHQoKTtcbiAgICAgIH0gZWxzZSBpZiAoIWFsbG93ZWRfYWN0aW9ucy5pbmNsdWRlcyhpdGVtLmlkKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkaXNwYXRjaChnZXRTYW1wbGluZ0J5SWQoc2FtcGxpbmcuaWQpKTtcbiAgICAgICAgY29uc3QgdXJsUHJlZml4ID0gdXJscyh7XG4gICAgICAgICAgaWQ6IHNhbXBsaW5nLmlkLFxuICAgICAgICAgIGxvY2FsZTogbmF2Q29udGV4dC5sb2NhbGUsXG4gICAgICAgICAgd2F0ZXJBdXRob3JpdHlJZDogd2F0ZXJBdXRob3JpdHlJZCxcbiAgICAgICAgICBvcDogU1BFQ0lBTF9NRU5VX0lEX1RPX09QW2l0ZW0uaWRdIHx8IGl0ZW0uaWQsXG4gICAgICAgIH0pLnNhbXBsaW5nc1BhZ2U7XG4gICAgICAgIGNvbnN0IHJvdXRlID0gdXJsUHJlZml4LnNhbXBsaW5nUHJvcGVydGllc1JvdXRlO1xuICAgICAgICBoaXN0b3J5LnB1c2gocm91dGUudXJsKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gIHJldHVybiAoXG4gICAgPFNhbXBsaW5nQWN0aW9uc1xuICAgICAgc2FtcGxpbmc9e3NhbXBsaW5nfVxuICAgICAgc2hvd0NvbmZpcm09e3Nob3dDb25maXJtfVxuICAgICAgc2V0U2hvd0NvbmZpcm09e3NldFNob3dDb25maXJtfVxuICAgICAgZGVsZXRlU2FtcGxpbmc9e2RlbGV0ZVNhbXBsaW5nfVxuICAgICAgaGFuZGxlQWN0aW9uQ2xpY2s9e2hhbmRsZUFjdGlvbkNsaWNrfVxuICAgICAgaGFuZGxlQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgZHJvcGRvd25Ub2dnbGU9e2Ryb3Bkb3duVG9nZ2xlfVxuICAgIC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBTYW1wbGluZ0FjdGlvbkNvbnRhaW5lcjtcbiJdfQ==
188
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWdlcy9TYW1wbGluZ3NQYWdlL0FjdGlvbnNEcm9wRG93bi9TYW1wbGluZ0FjdGlvbkNvbnRhaW5lci50c3giXSwibmFtZXMiOlsiU2FtcGxpbmdBY3Rpb25Db250YWluZXIiLCJwcm9wcyIsInNhbXBsaW5nIiwid2F0ZXJBdXRob3JpdHlJZCIsInNob3dMYWJSZXN1bHQiLCJkcm9wZG93blRvZ2dsZSIsImFsbG93ZWRfYWN0aW9ucyIsIkNPTExFQ1RfU0FNUExJTkdfT1AiLCJDQU5DRUxfU0FNUExJTkdfT1AiLCJFRElUX1BST1BFUlRJRVNfT1AiLCJSRVZFUlRfQ0FOQ0VMTEFUSU9OIiwiaGlzdG9yeSIsImRpc3BhdGNoIiwibmF2Q29udGV4dCIsInN0YXRlIiwibmF2X2NvbnRleHRfZGF0YSIsIndhdGVyQXV0aG9yaXR5TmFtZSIsImdsb2JhbF9kYXRhIiwic2hvd0NvbmZpcm0iLCJzZXRTaG93Q29uZmlybSIsImhhbmRsZUNsaWNrIiwidXRpbGl0eV9uYW1lIiwiZGVsZXRlU2FtcGxpbmciLCJjc3JmVG9rZW4iLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJnZXRBdHRyaWJ1dGUiLCJheGlvcyIsImRlbGV0ZSIsInNhbXBsaW5nSWQiLCJpZCIsImxvY2FsZSIsInNhbXBsaW5nUHJvcGVydGllcyIsInVybCIsImhlYWRlcnMiLCJyZXNwb25zZSIsInN0YXR1cyIsIndpbmRvdyIsImxvY2F0aW9uIiwicmVsb2FkIiwiaGFuZGxlQWN0aW9uQ2xpY2siLCJpdGVtIiwic2FtcGxpbmdfaWQiLCJERUxFVEVfU0FNUExJTkdfT1AiLCJMQUJfUkVTVUxUX09QIiwiaW5jbHVkZXMiLCJ1cmxQcmVmaXgiLCJvcCIsIlNQRUNJQUxfTUVOVV9JRF9UT19PUCIsInNhbXBsaW5nc1BhZ2UiLCJyb3V0ZSIsInNhbXBsaW5nUHJvcGVydGllc1JvdXRlIiwicHVzaCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFD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LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyB1c2VIaXN0b3J5IH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBEcm9wRG93bkl0ZW1UeXBlIH0gZnJvbSAnc3JjL3VpLWtpdC9Ecm9wRG93bi9Ecm9wRG93bkl0ZW0nO1xuaW1wb3J0IHsgYW5hbHl0aWNzVHJhY2sgfSBmcm9tICdzcmMvdXRpbGl0aWVzL0FuYWx5dGljcyc7XG5pbXBvcnQgeyBhcHBSZWR1Y2VyIH0gZnJvbSAnc3JjL3N0b3JlL3Jvb3RSZWR1Y2VyJztcbmltcG9ydCB7IGdldFNhbXBsaW5nQnlJZCB9IGZyb20gJ3NyYy9zdG9yZS9zYW1wbGluZ3MvYWN0aW9uc0NyZWF0b3InO1xuaW1wb3J0IHsgdXJscyB9IGZyb20gJ3NyYy91dGlsaXRpZXMvdXJscyc7XG5pbXBvcnQgeyB1c2VJbml0aWFsaXplSGVhZGVycyB9IGZyb20gJ3NyYy9ob29rcy91c2VJbml0aWFsaXplSGVhZGVycyc7XG5cbmltcG9ydCB7XG4gIENBTkNFTF9TQU1QTElOR19PUCxcbiAgQ09MTEVDVF9TQU1QTElOR19PUCxcbiAgREVMRVRFX1NBTVBMSU5HX09QLFxuICBFRElUX1BST1BFUlRJRVNfT1AsXG4gIFJFVkVSVF9DQU5DRUxMQVRJT04sXG4gIFNQRUNJQUxfTUVOVV9JRF9UT19PUCxcbiAgU2FtcGxpbmdEYXRhLFxuICBMQUJfUkVTVUxUX09QLFxufSBmcm9tICcuLi9zYW1wbGluZ3NQYWdlVXRpbHMnO1xuXG5pbXBvcnQgU2FtcGxpbmdBY3Rpb25zIGZyb20gJy4vU2FtcGxpbmdBY3Rpb25zJztcblxudHlwZSBTYW1wbGluZ0FjdGlvbkRyb3Bkb3duUHJvcHMgPSB7XG4gIHNhbXBsaW5nPzogU2FtcGxpbmdEYXRhO1xuICB3YXRlckF1dGhvcml0eUlkOiBzdHJpbmc7XG4gIHNob3dMYWJSZXN1bHQ6IEZ1bmN0aW9uO1xuICBkcm9wZG93blRvZ2dsZTogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgU2FtcGxpbmdBY3Rpb25Db250YWluZXI6IEZDPFNhbXBsaW5nQWN0aW9uRHJvcGRvd25Qcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBzYW1wbGluZywgd2F0ZXJBdXRob3JpdHlJZCwgc2hvd0xhYlJlc3VsdCwgZHJvcGRvd25Ub2dnbGUgfSA9IHByb3BzO1xuICBjb25zdCBhbGxvd2VkX2FjdGlvbnMgPSBbXG4gICAgQ09MTEVDVF9TQU1QTElOR19PUCxcbiAgICBDQU5DRUxfU0FNUExJTkdfT1AsXG4gICAgRURJVF9QUk9QRVJUSUVTX09QLFxuICAgIFJFVkVSVF9DQU5DRUxMQVRJT04sXG4gIF07XG4gIGNvbnN0IGhpc3RvcnkgPSB1c2VIaXN0b3J5KCk7XG4gIHVzZUluaXRpYWxpemVIZWFkZXJzKCk7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2Q29udGV4dCA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUmV0dXJuVHlwZTx0eXBlb2YgYXBwUmVkdWNlcj4pID0+IHN0YXRlLm5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dCxcbiAgKTtcbiAgY29uc3Qgd2F0ZXJBdXRob3JpdHlOYW1lID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlKSA9PiBzdGF0ZS5nbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eU5hbWUsXG4gICk7XG4gIGNvbnN0IFtzaG93Q29uZmlybSwgc2V0U2hvd0NvbmZpcm1dID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKCkgPT4ge1xuICAgIGFuYWx5dGljc1RyYWNrKGBPcGVuIHdlYiBhY3Rpb25gLCB7XG4gICAgICB1dGlsaXR5X25hbWU6IHdhdGVyQXV0aG9yaXR5TmFtZSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBkZWxldGVTYW1wbGluZyA9IGFzeW5jIChzYW1wbGluZzogU2FtcGxpbmdEYXRhKSA9PiB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGNzcmZUb2tlbiA9IGRvY3VtZW50XG4gICAgICAucXVlcnlTZWxlY3RvcignbWV0YVtuYW1lPVwiY3NyZi10b2tlblwiXScpXG4gICAgICAuZ2V0QXR0cmlidXRlKCdjb250ZW50Jyk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5kZWxldGUoXG4gICAgICB1cmxzKHtcbiAgICAgICAgc2FtcGxpbmdJZDogc2FtcGxpbmcuaWQsXG4gICAgICAgIGxvY2FsZTogbmF2Q29udGV4dC5sb2NhbGUsXG4gICAgICAgIHdhdGVyQXV0aG9yaXR5SWQ6IHdhdGVyQXV0aG9yaXR5SWQsXG4gICAgICB9KS5zYW1wbGluZ1Byb3BlcnRpZXMuZGVsZXRlU2FtcGxpbmcudXJsLFxuICAgICAgeyBoZWFkZXJzOiB7ICdYLUNTUkYtVE9LRU4nOiBjc3JmVG9rZW4gfSB9LFxuICAgICk7XG5cbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDApIHtcbiAgICAgIC8vIFJlZnJlc2ggdGhlIHNhbXBsaW5ncyBoYWNrXG4gICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUFjdGlvbkNsaWNrID1cbiAgICAoc2FtcGxpbmc6IFNhbXBsaW5nRGF0YSkgPT4gYXN5bmMgKGl0ZW06IERyb3BEb3duSXRlbVR5cGUpID0+IHtcbiAgICAgIGFuYWx5dGljc1RyYWNrKGBTYW1wbGluZyBPcGVyYXRpb24gYWN0aW9uIG1lbnUgLSBDbGlja2VkICR7aXRlbS5pZH1gLCB7XG4gICAgICAgIHV0aWxpdHlfbmFtZTogd2F0ZXJBdXRob3JpdHlOYW1lLFxuICAgICAgICBzYW1wbGluZ19pZDogc2FtcGxpbmcuaWQsXG4gICAgICB9KTtcbiAgICAgIGlmIChpdGVtLmlkID09PSBERUxFVEVfU0FNUExJTkdfT1ApIHtcbiAgICAgICAgc2V0U2hvd0NvbmZpcm0odHJ1ZSk7XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0uaWQgPT09IExBQl9SRVNVTFRfT1ApIHtcbiAgICAgICAgc2hvd0xhYlJlc3VsdCgpO1xuICAgICAgfSBlbHNlIGlmICghYWxsb3dlZF9hY3Rpb25zLmluY2x1ZGVzKGl0ZW0uaWQpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRpc3BhdGNoKGdldFNhbXBsaW5nQnlJZChzYW1wbGluZy5pZCkpO1xuICAgICAgICBjb25zdCB1cmxQcmVmaXggPSB1cmxzKHtcbiAgICAgICAgICBpZDogc2FtcGxpbmcuaWQsXG4gICAgICAgICAgbG9jYWxlOiBuYXZDb250ZXh0LmxvY2FsZSxcbiAgICAgICAgICB3YXRlckF1dGhvcml0eUlkOiB3YXRlckF1dGhvcml0eUlkLFxuICAgICAgICAgIG9wOiBTUEVDSUFMX01FTlVfSURfVE9fT1BbaXRlbS5pZF0gfHwgaXRlbS5pZCxcbiAgICAgICAgfSkuc2FtcGxpbmdzUGFnZTtcbiAgICAgICAgY29uc3Qgcm91dGUgPSB1cmxQcmVmaXguc2FtcGxpbmdQcm9wZXJ0aWVzUm91dGU7XG4gICAgICAgIGhpc3RvcnkucHVzaChyb3V0ZS51cmwpO1xuICAgICAgfVxuICAgIH07XG5cbiAgcmV0dXJuIChcbiAgICA8U2FtcGxpbmdBY3Rpb25zXG4gICAgICBzYW1wbGluZz17c2FtcGxpbmd9XG4gICAgICBzaG93Q29uZmlybT17c2hvd0NvbmZpcm19XG4gICAgICBzZXRTaG93Q29uZmlybT17c2V0U2hvd0NvbmZpcm19XG4gICAgICBkZWxldGVTYW1wbGluZz17ZGVsZXRlU2FtcGxpbmd9XG4gICAgICBoYW5kbGVBY3Rpb25DbGljaz17aGFuZGxlQWN0aW9uQ2xpY2t9XG4gICAgICBoYW5kbGVDbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICBkcm9wZG93blRvZ2dsZT17ZHJvcGRvd25Ub2dnbGV9XG4gICAgLz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNhbXBsaW5nQWN0aW9uQ29udGFpbmVyO1xuIl19