@kando-env/kando-ui 1.2.65-alpha.0 → 1.2.65

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.
@@ -86,8 +86,7 @@ var EventsList = function EventsList(_ref) {
86
86
  isFetching = events_data.isFetching,
87
87
  focusedEvent = events_data.focusedEvent,
88
88
  hoveredEvent = events_data.hoveredEvent,
89
- hoveredEventPaths = events_data.hoveredEventPaths,
90
- hoveredEdgePaths = events_data.hoveredEdgePaths;
89
+ hoveredEventPaths = events_data.hoveredEventPaths;
91
90
  var waterAuthorityId = global_data.waterAuthorityId,
92
91
  map = global_data.map;
93
92
 
@@ -242,27 +241,19 @@ var EventsList = function EventsList(_ref) {
242
241
  hoveredEventPaths.forEach(function (path) {
243
242
  map.removeLayer(path);
244
243
  });
245
-
246
- if (hoveredEdgePaths) {
247
- hoveredEdgePaths.forEach(function (path) {
248
- map.removeLayer(path);
249
- });
250
- }
251
-
252
244
  var layers = map._layers;
253
245
 
254
246
  for (var property in layers) {
255
247
  var kando_object = layers[property].kando_object;
256
248
 
257
- if ((kando_object === null || kando_object === void 0 ? void 0 : kando_object.includes('EventBody')) || ['EventTail', 'SamplingPoint', 'Decorator', 'HoveredEdge', 'HoveredEdgeFront'].includes(kando_object)) {
249
+ if ((kando_object === null || kando_object === void 0 ? void 0 : kando_object.includes('EventBody')) || ['EventTail', 'SamplingPoint', 'Decorator'].includes(kando_object)) {
258
250
  map.removeLayer(layers[property]);
259
251
  }
260
252
  }
261
253
  }
262
254
 
263
255
  dispatch((0, _actions.setHoveredEvent)(null));
264
- dispatch((0, _actions.setHoveredEventPaths)([]));
265
- dispatch((0, _actions.setHoveredEdgePaths)([]));
256
+ dispatch((0, _actions.setHoveredEventPaths)([])); // dispatch(setHoverEventIndicator(null));
266
257
  };
267
258
 
268
259
  var setFocusedEventIfFoundInParams = function setFocusedEventIfFoundInParams() {
@@ -403,4 +394,4 @@ var connector = (0, _reactRedux.connect)(mapStateToProps);
403
394
  var _default = connector(EventsList);
404
395
 
405
396
  exports.default = _default;
406
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudHNfbGlzdC9FdmVudHNMaXN0LnRzeCJdLCJuYW1lcyI6WyJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsImV2ZW50c19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJlZGdlc19kYXRhIiwicG9pbnRzX2RhdGEiLCJhcmVhc19kYXRhIiwibmF2X2NvbnRleHRfZGF0YSIsIkV2ZW50c0xpc3QiLCJzaWRlbmF2RXhwYW5kZWQiLCJkaXNwYXRjaCIsIml0ZW1zIiwiaXNGZXRjaGluZyIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsImhvdmVyZWRFdmVudFBhdGhzIiwiaG92ZXJlZEVkZ2VQYXRocyIsIndhdGVyQXV0aG9yaXR5SWQiLCJtYXAiLCJmaWx0ZXJQb3B1cE9wZW4iLCJzZXRGaWx0ZXJQb3B1cE9wZW4iLCJtZXNzYWdlcyIsIm1lc3NhZ2UiLCJldmVudF9pZCIsImV2ZW50X2lkcyIsImV4Y2VwdGlvbkFsZXJ0Iiwic2V0RXhjZXB0aW9uQWxlcnQiLCJsYXN0VmlzaXRlZCIsInVzZVF1ZXJ5IiwiVVJMU2VhcmNoUGFyYW1zIiwic2VhcmNoIiwiaGlzdG9yeSIsInF1ZXJ5IiwiZ2V0S1FMVmFsdWVzRnJvbVVSTCIsImdldCIsImdldEV2ZW50SWRGcm9tVVJMIiwibG9hZGVyIiwibGVuZ3RoIiwibmV3QXJlYXMiLCJoYW5kbGVFeHBhbnNpb25Ub2dnbGUiLCJhcHBseURlZmF1bHRGaWx0ZXIiLCJwdXNoIiwibmF2Q29udGV4dCIsIm5hbWUiLCJsb2NhbGUiLCJ2YWxpZGF0ZUV2ZW50IiwiZXZlbnQiLCJpbnZhbGlkT2JzZXJ2YXRpb25zTWVzc2FnZXMiLCJvYnNlcnZhdGlvbnMiLCJmb3JFYWNoIiwib2JzZXJ2YXRpb24iLCJwb2ludF9pc19yb290IiwiZWRnZSIsImZpbmQiLCJzb3VyY2VfcG9pbnRfaWQiLCJwb2ludF9pZCIsInVuZGVmaW5lZCIsInBvaW50X25hbWUiLCJpbmRleCIsImZpbmRJbmRleCIsIm1zZyIsImlkIiwiaTE4biIsInQiLCJpbnZhbGlkUGF0aE1lc3NhZ2VzIiwicGF0aCIsImVkZ2VfaWQiLCJjb25zb2xlIiwiZXJyb3IiLCJsYXN0X29ic2VydmF0aW9uX2lkIiwibGFzdE9ic2VydmF0aW9uUG9pbnQiLCJoYW5kbGVFdmVudEl0ZW1DbGljayIsInJlZiIsIm9uTW91c2VMZWF2ZUV2ZW50IiwiZXZlbnRGaWx0ZXJQYXJhbSIsIm9uTW91c2VFbnRlckV2ZW50IiwicmVtb3ZlTGF5ZXIiLCJsYXllcnMiLCJfbGF5ZXJzIiwicHJvcGVydHkiLCJrYW5kb19vYmplY3QiLCJpbmNsdWRlcyIsInNldEZvY3VzZWRFdmVudElmRm91bmRJblBhcmFtcyIsImUiLCJwYXJzZUludCIsInRyaWdnZXJTb3J0Iiwic29ydCIsImFjdGl2ZUZpbHRlciIsIktRTCIsIlVSTCIsIm1vcmVJbmZvIiwiYWN0aXZlIiwiZmFDYXJldExlZnQiLCJmYUNhcmV0UmlnaHQiLCJmYUFycm93TGVmdCIsIkxlZnRBcnJvd0ljb24iLCJOb0V2ZW50c0ltYWdlIiwiY29ubmVjdG9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFDQTs7QUFLQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFJQTs7QUFFQTs7QUFDQTs7QUFRQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBL0JBO0FBaUNBLFNBQVNBLGVBQVQsQ0FBeUJDLEtBQXpCLEVBQTJDO0FBQ3pDLE1BQ0VDLFdBREYsR0FPSUQsS0FQSixDQUNFQyxXQURGO0FBQUEsTUFFRUMsV0FGRixHQU9JRixLQVBKLENBRUVFLFdBRkY7QUFBQSxNQUdFQyxVQUhGLEdBT0lILEtBUEosQ0FHRUcsVUFIRjtBQUFBLE1BSUVDLFdBSkYsR0FPSUosS0FQSixDQUlFSSxXQUpGO0FBQUEsTUFLRUMsVUFMRixHQU9JTCxLQVBKLENBS0VLLFVBTEY7QUFBQSxNQU1FQyxnQkFORixHQU9JTixLQVBK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Q0FBQ1AsV0FBVyxDQUFDTyxVQUZkLElBR0MsQ0FBQ1IsVUFBVSxDQUFDUSxVQUhiLGlCQUlHO0FBQUksSUFBQSxTQUFTLEVBQUM7QUFBZCxLQUNHRCxLQUFLLENBQUNPLEdBQU4sQ0FBVSxVQUFDNEIsS0FBRDtBQUFBLHdCQUNUO0FBQUksTUFBQSxHQUFHLEVBQUVBLEtBQUssQ0FBQ2UsRUFBZjtBQUFtQixNQUFBLFNBQVMsRUFBQyxPQUE3QjtBQUFxQyx1QkFBZWYsS0FBSyxDQUFDZTtBQUExRCxvQkFDRSw2QkFBQyx3QkFBRDtBQUNFLE1BQUEsS0FBSyxFQUFFZixLQURUO0FBRUUsTUFBQSxXQUFXLEVBQUV5QixvQkFGZjtBQUdFLE1BQUEsaUJBQWlCLEVBQUVJLGlCQUhyQjtBQUlFLE1BQUEsaUJBQWlCLEVBQUVGLGlCQUpyQjtBQUtFLE1BQUEsYUFBYSxFQUFFNUIsYUFMakI7QUFNRSxNQUFBLGNBQWMsRUFBRXBCO0FBTmxCLE1BREYsQ0FEUztBQUFBLEdBQVYsQ0FESCxDQXRCTixDQXRGRixDQURGO0FBK0hELENBOVhEOztBQWdZQSxJQUFNd0UsU0FBUyxHQUFHLHlCQUFRakcsZUFBUixDQUFsQjs7ZUFDZWlHLFNBQVMsQ0FBQ3pGLFVBQUQsQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGV0Yy9uby1jb21tZW50ZWQtb3V0LWNvZGUgKi9cbmltcG9ydCB7XG4gIGZhQXJyb3dMZWZ0LFxuICBmYUNhcmV0TGVmdCxcbiAgZmFDYXJldFJpZ2h0LFxufSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHsgRm9udEF3ZXNvbWVJY29uIH0gZnJvbSAnQGZvcnRhd2Vzb21lL3JlYWN0LWZvbnRhd2Vzb21lJztcbmltcG9ydCBSZWFjdCwgeyBSZWZPYmplY3QsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb25uZWN0LCBDb25uZWN0ZWRQcm9wcywgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBMaW5rLCB1c2VIaXN0b3J5LCB1c2VMb2NhdGlvbiB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IExlZnRBcnJvd0ljb24gZnJvbSAnc3JjL2Fzc2V0cy9pY29ucy9hcnJvdy1sZWZ0LnN2Zyc7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBGaWx0ZXJJY29uIH0gZnJvbSAnc3JjL2Fzc2V0cy9pY29ucy9mdW5uZWwuc3ZnJztcbmltcG9ydCBOb0V2ZW50c0ltYWdlIGZyb20gJ3NyYy9hc3NldHMvbm9fZXZlbnRzLnN2Zyc7XG5pbXBvcnQgeyBTZXZlcmVFdmVudCB9IGZyb20gJ3NyYy9jb21wb25lbnRzL1NldmVyZUV2ZW50L1NldmVyZUV2ZW50JztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJ3NyYy9tb2RlbHMvSUFwcFN0YXRlJztcbmltcG9ydCB7IHVzZUxhc3RWaXNpdGVkIH0gZnJvbSAnc3JjL3Byb3ZpZGVycy9VcmxIaXN0b3J5JztcbmltcG9ydCB7XG4gIGZldGNoRXZlbnRzLFxuICBzZXRGb2N1c2VkRXZlbnQsXG4gIHNldEhvdmVyZWRFZGdlUGF0aHMsXG4gIHNldEhvdmVyZWRFdmVudCxcbiAgc2V0SG92ZXJlZEV2ZW50UGF0aHMsXG59IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvYWN0aW9ucyc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IHsgc2V0RXZlbnRGaWx0ZXJQYXJhbSwgc2lkZU5hdkV4cGFuZGVkIH0gZnJvbSAnc3JjL3N0b3JlL2dsb2JhbC9hY3Rpb25zJztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgeyBidWlsZEtRTFF1ZXJ5IH0gZnJvbSAnc3JjL3V0aWxpdGllcy9rcWwnO1xuaW1wb3J0ICcuLi9FdmVudHNTdHlsZS5zY3NzJztcbmltcG9ydCBFdmVudEluZm8gZnJvbSAnLi4vZXZlbnRfaW5mby9FdmVudEluZm8nO1xuaW1wb3J0IE1vcmVJbmZvIGZyb20gJy4uL01vcmVJbmZvJztcbmltcG9ydCBGaWx0ZXJDb250YWluZXIgZnJvbSAnLi9GaWx0ZXIvRmlsdGVyQ29udGFpbmVyJztcbmltcG9ydCBTb3J0IGZyb20gJy4vU29ydCc7XG5cbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHtcbiAgICBldmVudHNfZGF0YSxcbiAgICBnbG9iYWxfZGF0YSxcbiAgICBlZGdlc19kYXRhLFxuICAgIHBvaW50c19kYXRhLFxuICAgIGFyZWFzX2RhdGEsXG4gICAgbmF2X2NvbnRleHRfZGF0YSxcbiAgfSA9IHN0YXRlO1xuXG4gIHJldHVybiB7XG4gICAgZXZlbnRzX2RhdGEsXG4gICAgZ2xvYmFsX2RhdGEsXG4gICAgZWRnZXNfZGF0YSxcbiAgICBwb2ludHNfZGF0YSxcbiAgICBhcmVhc19kYXRhLFxuICAgIG5hdl9jb250ZXh0X2RhdGEsXG4gIH07XG59XG5cbnR5cGUgSVByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiB7XG4gIHNpZGVuYXZFeHBhbmRlZDogYm9vbGVhbjtcbn07XG5cbmNvbnN0IEV2ZW50c0xpc3Q6IFJlYWN0LkZDPElQcm9wcz4gPSAoe1xuICBhcmVhc19kYXRhLFxuICBwb2ludHNfZGF0YSxcbiAgZWRnZXNfZGF0YSxcbiAgZ2xvYmFsX2RhdGEsXG4gIHNpZGVuYXZFeHBhbmRlZCxcbiAgZXZlbnRzX2RhdGEsXG4gIG5hdl9jb250ZXh0X2RhdGEsXG59KSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3Qge1xuICAgIGl0ZW1zLFxuICAgIGlzRmV0Y2hpbmcsXG4gICAgZm9jdXNlZEV2ZW50LFxuICAgIGhvdmVyZWRFdmVudCxcbiAgICBob3ZlcmVkRXZlbnRQYXRocyxcbiAgICBob3ZlcmVkRWRnZVBhdGhzLFxuICB9ID0gZXZlbnRzX2RhdGE7XG4gIGNvbnN0IHsgd2F0ZXJBdXRob3JpdHlJZCwgbWFwIH0gPSBnbG9iYWxfZGF0YTtcbiAgY29uc3QgW2ZpbHRlclBvcHVwT3Blbiwgc2V0RmlsdGVyUG9wdXBPcGVuXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbZXhjZXB0aW9uQWxlcnQsIHNldEV4Y2VwdGlvbkFsZXJ0XSA9IHVzZVN0YXRlPHtcbiAgICBtZXNzYWdlczogeyBtZXNzYWdlOiBhbnk7IGV2ZW50X2lkOiBudW1iZXIgfVtdO1xuICAgIGV2ZW50X2lkczogbnVtYmVyW107XG4gIH0+KHsgbWVzc2FnZXM6IFt7IG1lc3NhZ2U6ICcnLCBldmVudF9pZDogMCB9XSwgZXZlbnRfaWRzOiBbXSB9KTtcbiAgY29uc3QgbGFzdFZpc2l0ZWQgPSB1c2VMYXN0VmlzaXRlZCgpO1xuXG4gIGNvbnN0IHVzZVF1ZXJ5ID0gKCkgPT4ge1xuICAgIHJldHVybiBuZXcgVVJMU2VhcmNoUGFyYW1zKHVzZUxvY2F0aW9uKCkuc2VhcmNoKTtcbiAgfTtcbiAgY29uc3QgaGlzdG9yeSA9IHVzZUhpc3RvcnkoKTtcbiAgY29uc3QgcXVlcnkgPSB1c2VRdWVyeSgpO1xuICBjb25zdCBnZXRLUUxWYWx1ZXNGcm9tVVJMID0gKCkgPT4ge1xuICAgIHJldHVybiBxdWVyeS5nZXQoJ3ZhbHVlc0Zyb21LUUwnKTtcbiAgfTtcbiAgY29uc3QgZ2V0RXZlbnRJZEZyb21VUkwgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHF1ZXJ5LmdldCgnZXZlbnRJZCcpO1xuICB9O1xuXG4gIGNvbnN0IGxvYWRlciA9ICgpID0+IHtcbiAgICBpZiAoXG4gICAgICAoaXNGZXRjaGluZyAmJiBpdGVtcy5sZW5ndGggPT09IDApIHx8XG4gICAgICBhcmVhc19kYXRhLm5ld0FyZWFzLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgcG9pbnRzX2RhdGEuaXNGZXRjaGluZyB8fFxuICAgICAgZWRnZXNfZGF0YS5pc0ZldGNoaW5nXG4gICAgKSB7XG4gICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9eydsb2FkZXInfT48L2Rpdj47XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVFeHBhbnNpb25Ub2dnbGUgPSAoKSA9PiB7XG4gICAgZGlzcGF0Y2goc2lkZU5hdkV4cGFuZGVkKCFzaWRlbmF2RXhwYW5kZWQpKTtcbiAgfTtcblxuICBjb25zdCBhcHBseURlZmF1bHRGaWx0ZXIgPSAoKSA9PiB7XG4gICAgaGlzdG9yeS5wdXNoKFxuICAgICAgYC8ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkfSZsb2NhbGU9JHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubG9jYWxlfSZ2YWx1ZXNGcm9tS1FMPWAsXG4gICAgKTtcbiAgICBkaXNwYXRjaChzZXRFdmVudEZpbHRlclBhcmFtKCcnKSk7XG4gIH07XG5cbiAgY29uc3QgdmFsaWRhdGVFdmVudCA9IChldmVudDogSUV2ZW50KSA9PiB7XG4gICAgLy8gY2hlY2sgdGhhdCBhbGwgb2JzZXJ2YXRpb25zJyBlZGdlcyBleGlzdHMuIElmIHRoZXkgYXJlIG5vdCBleGlzdHMgaXQncyBpbmRpY2F0ZXMgdGhhdCB0aGVpciBwb2ludHMgYXJlXG4gICAgLy8gbm90IGluIHRoZSBoaWVyYXJjaHkgb3IgZG9lc24ndCBoYXZlIGxhdC9sbmcuXG4gICAgbGV0IGludmFsaWRPYnNlcnZhdGlvbnNNZXNzYWdlczogYW55ID0gW107XG4gICAgZXZlbnQub2JzZXJ2YXRpb25zLmZvckVhY2goKG9ic2VydmF0aW9uOiBhbnkpID0+IHtcbiAgICAgIC8vIGlmIG9ic2VydmF0aW9uIGlzIHJvb3QgKGV4LiBXV1RQKSB0aGVyZSBpcyBubyBlZGdlIHRoYXQgaXRzIGEgc291cmNlLiBzbyB3ZSBjYW4gc2tpcCB0aGlzIGNoZWNrXG4gICAgICBpZiAoIW9ic2VydmF0aW9uLnBvaW50X2lzX3Jvb3QpIHtcbiAgICAgICAgbGV0IGVkZ2UgPSBlZGdlc19kYXRhLml0ZW1zLmZpbmQoXG4gICAgICAgICAgKGVkZ2UpID0+IGVkZ2Uuc291cmNlX3BvaW50X2lkID09PSBvYnNlcnZhdGlvbi5wb2ludF9pZCxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGVkZ2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGludmFsaWRPYnNlcnZhdGlvbnNNZXNzYWdlcy5wdXNoKFxuICAgICAgICAgICAgYCR7b2JzZXJ2YXRpb24ucG9pbnRfbmFtZX0gKCR7b2JzZXJ2YXRpb24ucG9pbnRfaWR9KSBgLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChpbnZhbGlkT2JzZXJ2YXRpb25zTWVzc2FnZXMubGVuZ3RoICE9PSAwKSB7XG4gICAgICBsZXQgaW5kZXggPSBleGNlcHRpb25BbGVydC5tZXNzYWdlcy5maW5kSW5kZXgoXG4gICAgICAgIChtc2cpID0+IG1zZy5ldmVudF9pZCA9PT0gZXZlbnQuaWQsXG4gICAgICApO1xuXG4gICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgIHNldEV4Y2VwdGlvbkFsZXJ0KHtcbiAgICAgICAgICBtZXNzYWdlczogW1xuICAgICAgICAgICAgLi4uZXhjZXB0aW9uQWxlcnQubWVzc2FnZXMsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG1lc3NhZ2U6IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgPHA+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmV2ZW50X2RhdGFfbWlzc2luZycpfTwvcD5cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgZXZlbnRfaWQ6IGV2ZW50LmlkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGV2ZW50X2lkczogWy4uLmV4Y2VwdGlvbkFsZXJ0LmV2ZW50X2lkcywgZXZlbnQuaWRdLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBzYW1lIGNoZWNrIGFzIGFib3ZlIGJ1dCB0aGlzIHRpbWUgZm9yIHRoZSBldmVudCBwYXRoLiBJZiBlZGdlIGRvZXNuJ3QgZXhpc3QsIGl0J3MgaW5kaWNhdGVzIHRoYXQgb25lIG9mIHRoZVxuICAgIC8vIHBvaW50cyBkb3duc3RyZWFtIGRvZXNuJ3QgaGF2ZSBsYXQvbG5nLlxuICAgIGxldCBpbnZhbGlkUGF0aE1lc3NhZ2VzOiBhbnkgPSBbXTtcbiAgICBldmVudC5wYXRoLmZvckVhY2goKHBhdGg6IGFueSkgPT4ge1xuICAgICAgbGV0IGVkZ2UgPSBlZGdlc19kYXRhLml0ZW1zLmZpbmQoKGVkZ2UpID0+IGVkZ2UuaWQgPT09IHBhdGguZWRnZV9pZCk7XG4gICAgICBpZiAoZWRnZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYGVkZ2UgJHtwYXRoLmVkZ2VfaWR9IGNhbiBub3QgYmUgZm91bmRgKTtcbiAgICAgICAgbGV0IG9ic2VydmF0aW9uID0gZXZlbnQub2JzZXJ2YXRpb25zLmZpbmQoXG4gICAgICAgICAgKG9ic2VydmF0aW9uKSA9PiBvYnNlcnZhdGlvbi5pZCA9PT0gcGF0aC5sYXN0X29ic2VydmF0aW9uX2lkLFxuICAgICAgICApO1xuICAgICAgICBsZXQgbGFzdE9ic2VydmF0aW9uUG9pbnQgPSAnTm90IGZvdW5kJztcbiAgICAgICAgaWYgKG9ic2VydmF0aW9uKSB7XG4gICAgICAgICAgbGFzdE9ic2VydmF0aW9uUG9pbnQgPSBvYnNlcnZhdGlvbi5wb2ludF9uYW1lO1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2xhc3RPYnNlcnZhdGlvblBvaW50JywgbGFzdE9ic2VydmF0aW9uUG9pbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaW52YWxpZFBhdGhNZXNzYWdlcy5wdXNoKGAke2xhc3RPYnNlcnZhdGlvblBvaW50fSBgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChpbnZhbGlkUGF0aE1lc3NhZ2VzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgc2V0RXhjZXB0aW9uQWxlcnQoe1xuICAgICAgICBtZXNzYWdlczogW1xuICAgICAgICAgIC4uLmV4Y2VwdGlvbkFsZXJ0Lm1lc3NhZ2VzLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8cD57aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZXZlbnRfdmVyaWZ5X2Nvb3JkaW5hdGVzJyl9PC9wPlxuICAgICAgICAgICAgICAgIDxzcGFuPntpbnZhbGlkUGF0aE1lc3NhZ2VzfTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZXZlbnRfaWQ6IGV2ZW50LmlkLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGV2ZW50X2lkczogWy4uLmV4Y2VwdGlvbkFsZXJ0LmV2ZW50X2lkcywgZXZlbnQuaWRdLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRXZlbnRJdGVtQ2xpY2sgPSAoZXZlbnQ6IElFdmVudCwgcmVmOiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgb25Nb3VzZUxlYXZlRXZlbnQoKTtcbiAgICAvLyBpZiAoaG92ZXJlZEV2ZW50UGF0aHMgJiYgbWFwKSB7XG4gICAgLy8gICAgIGhvdmVyZWRFdmVudFBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAvLyAgICAgICAgIG1hcC5yZW1vdmVMYXllcihwYXRoKTtcbiAgICAvLyAgICAgfSk7XG4gICAgLy8gfVxuICAgIC8vIGRpc3BhdGNoKHNldEhvdmVyZWRFdmVudFBhdGhzKFtdKSk7XG4gICAgLy8gZGlzcGF0Y2goc2V0SG92ZXJFdmVudEluZGljYXRvcihudWxsKSk7XG4gICAgaWYgKHZhbGlkYXRlRXZlbnQoZXZlbnQpKSB7XG4gICAgICBkaXNwYXRjaChzZXRGb2N1c2VkRXZlbnQoZXZlbnQpKTtcbiAgICAgIHNldEZpbHRlclBvcHVwT3BlbihmYWxzZSk7XG4gICAgICBoaXN0b3J5LnB1c2goXG4gICAgICAgIGAvJHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZX0vaW5kZXg/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mbG9jYWxlPSR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZX0mZXZlbnRJZD0ke2V2ZW50LmlkfSZ2YWx1ZXNGcm9tS1FMPSR7Z2xvYmFsX2RhdGEuZXZlbnRGaWx0ZXJQYXJhbX1gLFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgb25Nb3VzZUVudGVyRXZlbnQgPSAoZXZlbnQpID0+IHtcbiAgICBpZiAoIWZvY3VzZWRFdmVudCAmJiAhaG92ZXJlZEV2ZW50ICYmIHZhbGlkYXRlRXZlbnQoZXZlbnQpKSB7XG4gICAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRXZlbnQoZXZlbnQpKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgb25Nb3VzZUxlYXZlRXZlbnQgPSAoKSA9PiB7XG4gICAgaWYgKGhvdmVyZWRFdmVudCAmJiBob3ZlcmVkRXZlbnRQYXRocyAmJiBtYXApIHtcbiAgICAgIGhvdmVyZWRFdmVudFBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKHBhdGgpO1xuICAgICAgfSk7XG5cbiAgICAgIGlmIChob3ZlcmVkRWRnZVBhdGhzKSB7XG4gICAgICAgIGhvdmVyZWRFZGdlUGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xuICAgICAgICAgIG1hcC5yZW1vdmVMYXllcihwYXRoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGxldCBsYXllcnMgPSBtYXAuX2xheWVycztcbiAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbGF5ZXJzKSB7XG4gICAgICAgIGNvbnN0IGthbmRvX29iamVjdCA9IGxheWVyc1twcm9wZXJ0eV0ua2FuZG9fb2JqZWN0O1xuICAgICAgICBpZiAoXG4gICAgICAgICAga2FuZG9fb2JqZWN0Py5pbmNsdWRlcygnRXZlbnRCb2R5JykgfHxcbiAgICAgICAgICBbXG4gICAgICAgICAgICAnRXZlbnRUYWlsJyxcbiAgICAgICAgICAgICdTYW1wbGluZ1BvaW50JyxcbiAgICAgICAgICAgICdEZWNvcmF0b3InLFxuICAgICAgICAgICAgJ0hvdmVyZWRFZGdlJyxcbiAgICAgICAgICAgICdIb3ZlcmVkRWRnZUZyb250JyxcbiAgICAgICAgICBdLmluY2x1ZGVzKGthbmRvX29iamVjdClcbiAgICAgICAgKSB7XG4gICAgICAgICAgbWFwLnJlbW92ZUxheWVyKGxheWVyc1twcm9wZXJ0eV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFdmVudChudWxsKSk7XG4gICAgZGlzcGF0Y2goc2V0SG92ZXJlZEV2ZW50UGF0aHMoW10pKTtcbiAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRWRnZVBhdGhzKFtdKSk7XG4gIH07XG5cbiAgY29uc3Qgc2V0Rm9jdXNlZEV2ZW50SWZGb3VuZEluUGFyYW1zID0gKCkgPT4ge1xuICAgIGlmIChcbiAgICAgIGdldEV2ZW50SWRGcm9tVVJMKCkgIT09IG51bGwgJiZcbiAgICAgIGdldEV2ZW50SWRGcm9tVVJMKCkgIT09ICdudWxsJyAmJlxuICAgICAgZm9jdXNlZEV2ZW50ID09PSBudWxsICYmXG4gICAgICBpdGVtcy5sZW5ndGggIT09IDAgJiZcbiAgICAgICFpc0ZldGNoaW5nICYmXG4gICAgICAhYXJlYXNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAhcG9pbnRzX2RhdGEuaXNGZXRjaGluZyAmJlxuICAgICAgIWVkZ2VzX2RhdGEuaXNGZXRjaGluZ1xuICAgICkge1xuICAgICAgbGV0IGV2ZW50ID0gZXZlbnRzX2RhdGEuaXRlbXMuZmluZChcbiAgICAgICAgKGU6IElFdmVudCkgPT4gZS5pZCA9PT0gcGFyc2VJbnQoZ2V0RXZlbnRJZEZyb21VUkwoKSEpLFxuICAgICAgKTtcbiAgICAgIGlmIChldmVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRpc3BhdGNoKHNldEZvY3VzZWRFdmVudChldmVudCkpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCB0cmlnZ2VyU29ydCA9IChzb3J0OiBudW1iZXIpID0+IHtcbiAgICBpZiAoZ2xvYmFsX2RhdGEuYWN0aXZlRmlsdGVyICE9PSBudWxsKSB7XG4gICAgICBsZXQgS1FMO1xuICAgICAgbGV0IFVSTDtcbiAgICAgIHN3aXRjaCAoc29ydCkge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgS1FMID0gYCR7YnVpbGRLUUxRdWVyeShnbG9iYWxfZGF0YS5hY3RpdmVGaWx0ZXIsICduZXdlc3QnKX1gO1xuICAgICAgICAgIFVSTCA9IGAvJHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZX0vaW5kZXg/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mbG9jYWxlPSR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZX0mdmFsdWVzRnJvbUtRTD0ke0tRTH1gO1xuICAgICAgICAgIGhpc3RvcnkucHVzaChVUkwpO1xuICAgICAgICAgIGRpc3BhdGNoKHNldEV2ZW50RmlsdGVyUGFyYW0oS1FMKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBLUUwgPSBgJHtidWlsZEtRTFF1ZXJ5KGdsb2JhbF9kYXRhLmFjdGl2ZUZpbHRlciwgJ29sZGVzdCcpfWA7XG4gICAgICAgICAgVVJMID0gYC8ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkfSZsb2NhbGU9JHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubG9jYWxlfSZ2YWx1ZXNGcm9tS1FMPSR7S1FMfWA7XG4gICAgICAgICAgaGlzdG9yeS5wdXNoKFVSTCk7XG4gICAgICAgICAgZGlzcGF0Y2goc2V0RXZlbnRGaWx0ZXJQYXJhbShLUUwpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIEtRTCA9IGAke2J1aWxkS1FMUXVlcnkoZ2xvYmFsX2RhdGEuYWN0aXZlRmlsdGVyLCAnc2V2ZXJpdHknKX1gO1xuICAgICAgICAgIFVSTCA9IGAvJHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZX0vaW5kZXg/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mbG9jYWxlPSR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZX0mdmFsdWVzRnJvbUtRTD0ke0tRTH1gO1xuICAgICAgICAgIGhpc3RvcnkucHVzaChVUkwpO1xuICAgICAgICAgIGRpc3BhdGNoKHNldEV2ZW50RmlsdGVyUGFyYW0oS1FMKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hFdmVudHMod2F0ZXJBdXRob3JpdHlJZCwgZ2V0S1FMVmFsdWVzRnJvbVVSTCgpIHx8ICdERUZBVUxUJykpO1xuICB9LCBbZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCwgZ2xvYmFsX2RhdGEuZXZlbnRGaWx0ZXJQYXJhbV0pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9eydzaWRlbmF2ICcgKyAoc2lkZW5hdkV4cGFuZGVkID8gJycgOiAnc2lkZW5hdi0tY29sbGFwc2VkJyl9PlxuICAgICAge3NldEZvY3VzZWRFdmVudElmRm91bmRJblBhcmFtcygpfVxuICAgICAge2dsb2JhbF9kYXRhLm1vcmVJbmZvICE9PSB1bmRlZmluZWQgJiYgZ2xvYmFsX2RhdGEubW9yZUluZm8uYWN0aXZlICYmIChcbiAgICAgICAgPE1vcmVJbmZvIC8+XG4gICAgICApfVxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgJ2V2ZW50LWluZm8gJyArXG4gICAgICAgICAgKCFob3ZlcmVkRXZlbnQgJiYgZm9jdXNlZEV2ZW50ICE9PSBudWxsXG4gICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICA6ICdldmVudC1pbmZvLS1jb2xsYXBzZWQnKVxuICAgICAgICB9XG4gICAgICA+XG4gICAgICAgIHshaG92ZXJlZEV2ZW50ICYmIGZvY3VzZWRFdmVudCAhPT0gbnVsbCAmJiAoXG4gICAgICAgICAgPEV2ZW50SW5mb1xuICAgICAgICAgICAgZXZlbnQ9e2ZvY3VzZWRFdmVudH1cbiAgICAgICAgICAgIHJlT3BlbkZpbHRlcj17KCkgPT4gc2V0RmlsdGVyUG9wdXBPcGVuKHRydWUpfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPVwidG9nZ2xlLWV4cGFuc2lvbi1idXR0b25cIlxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgaGFuZGxlRXhwYW5zaW9uVG9nZ2xlKCk7XG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibmF2LWV4cGFuc2lvbi1pY29uXCI+XG4gICAgICAgICAgPEZvbnRBd2Vzb21lSWNvblxuICAgICAgICAgICAgaWNvbj17c2lkZW5hdkV4cGFuZGVkID8gZmFDYXJldExlZnQgOiBmYUNhcmV0UmlnaHR9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXsndG9nZ2xlLWV4cGFuc2lvbi1idXR0b24tbW9iaWxlJ31cbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIGhhbmRsZUV4cGFuc2lvblRvZ2dsZSgpO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8YSBocmVmPVwiI1wiPlxuICAgICAgICAgIDxGb250QXdlc29tZUljb24gaWNvbj17ZmFBcnJvd0xlZnR9IC8+XG4gICAgICAgICAgPHNwYW4+IHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5iYWNrX3RvX2RldGFpbHMnKX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJldmVudHMtaGVhZGVyXCI+XG4gICAgICAgIHtsYXN0VmlzaXRlZCAmJiAhaXNGZXRjaGluZyAmJiAoXG4gICAgICAgICAgPExpbmsgY2xhc3NOYW1lPVwiYmFja1wiIHRvPXtsYXN0VmlzaXRlZH0+XG4gICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICBzcmM9e0xlZnRBcnJvd0ljb259XG4gICAgICAgICAgICAgIGhlaWdodD1cIjEwcHhcIlxuICAgICAgICAgICAgICB3aWR0aD1cIjEycHhcIlxuICAgICAgICAgICAgICBhbHQ9XCJiYWNrXCJcbiAgICAgICAgICAgIC8+eycgJ31cbiAgICAgICAgICAgIHtpMThuLnQoJ2FyZWFfc2NyZWVuLmJhY2snKX1cbiAgICAgICAgICA8L0xpbms+XG4gICAgICAgICl9XG4gICAgICAgIDxoND5cbiAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZXZlbnRzX2xpc3QnKX0gKHtldmVudHNfZGF0YS5pdGVtcy5sZW5ndGh9KVxuICAgICAgICA8L2g0PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlcmluZ1wiPlxuICAgICAgICAgIHtldmVudHNfZGF0YS5pdGVtcy5sZW5ndGggIT09IDAgJiYgKFxuICAgICAgICAgICAgPFNvcnRcbiAgICAgICAgICAgICAgdHJpZ2dlclNvcnQ9e3RyaWdnZXJTb3J0fVxuICAgICAgICAgICAgICBldmVudHM9e2V2ZW50c19kYXRhLml0ZW1zfVxuICAgICAgICAgICAgICBldmVudHNGZXRjaGluZz17ZXZlbnRzX2RhdGEuaXNGZXRjaGluZ31cbiAgICAgICAgICAgICAgYWN0aXZlRmlsdGVyPXtnbG9iYWxfZGF0YS5hY3RpdmVGaWx0ZXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpY29uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmaWx0ZXJcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRGaWx0ZXJQb3B1cE9wZW4oIWZpbHRlclBvcHVwT3Blbil9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxGaWx0ZXJJY29uIHdpZHRoPVwiMTdweFwiIGhlaWdodD1cIjE3cHhcIiBmaWxsPVwiI2Y2MDA0ZlwiIC8+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAge3BvaW50c19kYXRhLml0ZW1zLmxlbmd0aCAhPT0gMCAmJiAoXG4gICAgICAgICAgPEZpbHRlckNvbnRhaW5lclxuICAgICAgICAgICAgZmlsdGVyUG9wdXBPcGVuPXtmaWx0ZXJQb3B1cE9wZW59XG4gICAgICAgICAgICBmZXRjaFR5cGU9eydFdmVudEZpbHRlcid9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJldmVudHMtY29udGFpbmVyIHNjcm9sbGJhciBcIj5cbiAgICAgICAge2xvYWRlcigpfVxuICAgICAgICB7IWlzRmV0Y2hpbmcgJiZcbiAgICAgICAgICBpdGVtcy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgICAhcG9pbnRzX2RhdGEuaXNGZXRjaGluZyAmJlxuICAgICAgICAgICFlZGdlc19kYXRhLmlzRmV0Y2hpbmcgJiYgKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydldmVudHNfX2JsYW5rc2xhdGUnfT5cbiAgICAgICAgICAgICAgPGltZyBzcmM9e05vRXZlbnRzSW1hZ2V9IGFsdD1cIk5vRXZlbnRzSWNvblwiIC8+XG4gICAgICAgICAgICAgIDxoMj57aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLmJsYW5rc2xhdGUuaGVhZGVyJyl9PC9oMj5cbiAgICAgICAgICAgICAgPHA+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5ibGFua3NsYXRlLmJvZHknKX08L3A+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsnYXBwbHlfZGVmYXVsdF9maWx0ZXJfYnV0dG9uJ31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBhcHBseURlZmF1bHRGaWx0ZXIoKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5maWx0ZXIuYmxhbmtzbGF0ZS5idXR0b24nKX1cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAge2l0ZW1zLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgICAgICFhcmVhc19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICAgICAhcG9pbnRzX2RhdGEuaXNGZXRjaGluZyAmJlxuICAgICAgICAgICFlZGdlc19kYXRhLmlzRmV0Y2hpbmcgJiYgKFxuICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cImV2ZW50cyBcIj5cbiAgICAgICAgICAgICAge2l0ZW1zLm1hcCgoZXZlbnQ6IGFueSkgPT4gKFxuICAgICAgICAgICAgICAgIDxsaSBrZXk9e2V2ZW50LmlkfSBjbGFzc05hbWU9XCJldmVudFwiIGRhdGEtZXZlbnQtaWQ9e2V2ZW50LmlkfT5cbiAgICAgICAgICAgICAgICAgIDxTZXZlcmVFdmVudFxuICAgICAgICAgICAgICAgICAgICBldmVudD17ZXZlbnR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZUNsaWNrPXtoYW5kbGVFdmVudEl0ZW1DbGlja31cbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyRXZlbnQ9e29uTW91c2VFbnRlckV2ZW50fVxuICAgICAgICAgICAgICAgICAgICBvbk1vdXNlTGVhdmVFdmVudD17b25Nb3VzZUxlYXZlRXZlbnR9XG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlRXZlbnQ9e3ZhbGlkYXRlRXZlbnR9XG4gICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbkFsZXJ0PXtleGNlcHRpb25BbGVydH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmNvbnN0IGNvbm5lY3RvciA9IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RvcihFdmVudHNMaXN0KTtcbiJdfQ==
397
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudHNfbGlzdC9FdmVudHNMaXN0LnRzeCJdLCJuYW1lcyI6WyJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsImV2ZW50c19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJlZGdlc19kYXRhIiwicG9pbnRzX2RhdGEiLCJhcmVhc19kYXRhIiwibmF2X2NvbnRleHRfZGF0YSIsIkV2ZW50c0xpc3QiLCJzaWRlbmF2RXhwYW5kZWQiLCJkaXNwYXRjaCIsIml0ZW1zIiwiaXNGZXRjaGluZyIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsImhvdmVyZWRFdmVudFBhdGhzIiwid2F0ZXJBdXRob3JpdHlJZCIsIm1hcCIsImZpbHRlclBvcHVwT3BlbiIsInNldEZpbHRlclBvcHVwT3BlbiIsIm1lc3NhZ2VzIiwibWVzc2FnZSIsImV2ZW50X2lkIiwiZXZlbnRfaWRzIiwiZXhjZXB0aW9uQWxlcnQiLCJzZXRFeGNlcHRpb25BbGVydCIsImxhc3RWaXNpdGVkIiwidXNlUXVlcnkiLCJVUkxTZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJoaXN0b3J5IiwicXVlcnkiLCJnZXRLUUxWYWx1ZXNGcm9tVVJMIiwiZ2V0IiwiZ2V0RXZlbnRJZEZyb21VUkwiLCJsb2FkZXIiLCJsZW5ndGgiLCJuZXdBcmVhcyIsImhhbmRsZUV4cGFuc2lvblRvZ2dsZSIsImFwcGx5RGVmYXVsdEZpbHRlciIsInB1c2giLCJuYXZDb250ZXh0IiwibmFtZSIsImxvY2FsZSIsInZhbGlkYXRlRXZlbnQiLCJldmVudCIsImludmFsaWRPYnNlcnZhdGlvbnNNZXNzYWdlcyIsIm9ic2VydmF0aW9ucyIsImZvckVhY2giLCJvYnNlcnZhdGlvbiIsInBvaW50X2lzX3Jvb3QiLCJlZGdlIiwiZmluZCIsInNvdXJjZV9wb2ludF9pZCIsInBvaW50X2lkIiwidW5kZWZpbmVkIiwicG9pbnRfbmFtZSIsImluZGV4IiwiZmluZEluZGV4IiwibXNnIiwiaWQiLCJpMThuIiwidCIsImludmFsaWRQYXRoTWVzc2FnZXMiLCJwYXRoIiwiZWRnZV9pZCIsImNvbnNvbGUiLCJlcnJvciIsImxhc3Rfb2JzZXJ2YXRpb25faWQiLCJsYXN0T2JzZXJ2YXRpb25Qb2ludCIsImhhbmRsZUV2ZW50SXRlbUNsaWNrIiwicmVmIiwib25Nb3VzZUxlYXZlRXZlbnQiLCJldmVudEZpbHRlclBhcmFtIiwib25Nb3VzZUVudGVyRXZlbnQiLCJyZW1vdmVMYXllciIsImxheWVycyIsIl9sYXllcnMiLCJwcm9wZXJ0eSIsImthbmRvX29iamVjdCIsImluY2x1ZGVzIiwic2V0Rm9jdXNlZEV2ZW50SWZGb3VuZEluUGFyYW1zIiwiZSIsInBhcnNlSW50IiwidHJpZ2dlclNvcnQiLCJzb3J0IiwiYWN0aXZlRmlsdGVyIiwiS1FMIiwiVVJMIiwibW9yZUluZm8iLCJhY3RpdmUiLCJmYUNhcmV0TGVmdCIsImZhQ2FyZXRSaWdodCIsImZhQXJyb3dMZWZ0IiwiTGVmdEFycm93SWNvbiIsIk5vRXZlbnRzSW1hZ2UiLCJjb25uZWN0b3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUNBOztBQUtBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7OztBQUlBOztBQUVBOztBQUNBOztBQU9BOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUE5QkE7QUFnQ0EsU0FBU0EsZUFBVCxDQUF5QkMsS0FBekIsRUFBMkM7QUFDekMsTUFDRUMsV0FERixHQU9JRCxLQVBKLENBQ0VDLFdBREY7QUFBQSxNQUVFQyxXQUZGLEdBT0lGLEtBUEosQ0FFRUUsV0FGRjtBQUFBLE1BR0VDLFVBSEYsR0FPSUgsS0FQSixDQUdFRyxVQUhGO0FBQUEsTUFJRUMsV0FKRixHQU9JSixLQVBKLENBSUVJLFdBSkY7QUFBQSxNQUtFQyxVQUxGLEdBT0lMLEtBUEosQ0FLRUssVUFMRjtBQUFBLE1BTUVDLGdCQU5GLEdBT0lOLEtBUEosQ0FNRU0sZ0JBTkY7QUFTQSxT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Qyx3QkFBRDtBQUNFLE1BQUEsS0FBSyxFQUFFZixLQURUO0FBRUUsTUFBQSxXQUFXLEVBQUV5QixvQkFGZjtBQUdFLE1BQUEsaUJBQWlCLEVBQUVJLGlCQUhyQjtBQUlFLE1BQUEsaUJBQWlCLEVBQUVGLGlCQUpyQjtBQUtFLE1BQUEsYUFBYSxFQUFFNUIsYUFMakI7QUFNRSxNQUFBLGNBQWMsRUFBRXBCO0FBTmxCLE1BREYsQ0FEUztBQUFBLEdBQVYsQ0FESCxDQXRCTixDQXRGRixDQURGO0FBK0hELENBNVdEOztBQThXQSxJQUFNd0UsU0FBUyxHQUFHLHlCQUFRaEcsZUFBUixDQUFsQjs7ZUFDZWdHLFNBQVMsQ0FBQ3hGLFVBQUQsQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGV0Yy9uby1jb21tZW50ZWQtb3V0LWNvZGUgKi9cbmltcG9ydCB7XG4gIGZhQXJyb3dMZWZ0LFxuICBmYUNhcmV0TGVmdCxcbiAgZmFDYXJldFJpZ2h0LFxufSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHsgRm9udEF3ZXNvbWVJY29uIH0gZnJvbSAnQGZvcnRhd2Vzb21lL3JlYWN0LWZvbnRhd2Vzb21lJztcbmltcG9ydCBSZWFjdCwgeyBSZWZPYmplY3QsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb25uZWN0LCBDb25uZWN0ZWRQcm9wcywgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBMaW5rLCB1c2VIaXN0b3J5LCB1c2VMb2NhdGlvbiB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IExlZnRBcnJvd0ljb24gZnJvbSAnc3JjL2Fzc2V0cy9pY29ucy9hcnJvdy1sZWZ0LnN2Zyc7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBGaWx0ZXJJY29uIH0gZnJvbSAnc3JjL2Fzc2V0cy9pY29ucy9mdW5uZWwuc3ZnJztcbmltcG9ydCBOb0V2ZW50c0ltYWdlIGZyb20gJ3NyYy9hc3NldHMvbm9fZXZlbnRzLnN2Zyc7XG5pbXBvcnQgeyBTZXZlcmVFdmVudCB9IGZyb20gJ3NyYy9jb21wb25lbnRzL1NldmVyZUV2ZW50L1NldmVyZUV2ZW50JztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJ3NyYy9tb2RlbHMvSUFwcFN0YXRlJztcbmltcG9ydCB7IHVzZUxhc3RWaXNpdGVkIH0gZnJvbSAnc3JjL3Byb3ZpZGVycy9VcmxIaXN0b3J5JztcbmltcG9ydCB7XG4gIGZldGNoRXZlbnRzLFxuICBzZXRGb2N1c2VkRXZlbnQsXG4gIHNldEhvdmVyZWRFdmVudCxcbiAgc2V0SG92ZXJlZEV2ZW50UGF0aHMsXG59IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvYWN0aW9ucyc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IHsgc2V0RXZlbnRGaWx0ZXJQYXJhbSwgc2lkZU5hdkV4cGFuZGVkIH0gZnJvbSAnc3JjL3N0b3JlL2dsb2JhbC9hY3Rpb25zJztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgeyBidWlsZEtRTFF1ZXJ5IH0gZnJvbSAnc3JjL3V0aWxpdGllcy9rcWwnO1xuaW1wb3J0ICcuLi9FdmVudHNTdHlsZS5zY3NzJztcbmltcG9ydCBFdmVudEluZm8gZnJvbSAnLi4vZXZlbnRfaW5mby9FdmVudEluZm8nO1xuaW1wb3J0IE1vcmVJbmZvIGZyb20gJy4uL01vcmVJbmZvJztcbmltcG9ydCBGaWx0ZXJDb250YWluZXIgZnJvbSAnLi9GaWx0ZXIvRmlsdGVyQ29udGFpbmVyJztcbmltcG9ydCBTb3J0IGZyb20gJy4vU29ydCc7XG5cbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHtcbiAgICBldmVudHNfZGF0YSxcbiAgICBnbG9iYWxfZGF0YSxcbiAgICBlZGdlc19kYXRhLFxuICAgIHBvaW50c19kYXRhLFxuICAgIGFyZWFzX2RhdGEsXG4gICAgbmF2X2NvbnRleHRfZGF0YSxcbiAgfSA9IHN0YXRlO1xuXG4gIHJldHVybiB7XG4gICAgZXZlbnRzX2RhdGEsXG4gICAgZ2xvYmFsX2RhdGEsXG4gICAgZWRnZXNfZGF0YSxcbiAgICBwb2ludHNfZGF0YSxcbiAgICBhcmVhc19kYXRhLFxuICAgIG5hdl9jb250ZXh0X2RhdGEsXG4gIH07XG59XG5cbnR5cGUgSVByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiB7XG4gIHNpZGVuYXZFeHBhbmRlZDogYm9vbGVhbjtcbn07XG5cbmNvbnN0IEV2ZW50c0xpc3Q6IFJlYWN0LkZDPElQcm9wcz4gPSAoe1xuICBhcmVhc19kYXRhLFxuICBwb2ludHNfZGF0YSxcbiAgZWRnZXNfZGF0YSxcbiAgZ2xvYmFsX2RhdGEsXG4gIHNpZGVuYXZFeHBhbmRlZCxcbiAgZXZlbnRzX2RhdGEsXG4gIG5hdl9jb250ZXh0X2RhdGEsXG59KSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgeyBpdGVtcywgaXNGZXRjaGluZywgZm9jdXNlZEV2ZW50LCBob3ZlcmVkRXZlbnQsIGhvdmVyZWRFdmVudFBhdGhzIH0gPVxuICAgIGV2ZW50c19kYXRhO1xuICBjb25zdCB7IHdhdGVyQXV0aG9yaXR5SWQsIG1hcCB9ID0gZ2xvYmFsX2RhdGE7XG4gIGNvbnN0IFtmaWx0ZXJQb3B1cE9wZW4sIHNldEZpbHRlclBvcHVwT3Blbl0gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgY29uc3QgW2V4Y2VwdGlvbkFsZXJ0LCBzZXRFeGNlcHRpb25BbGVydF0gPSB1c2VTdGF0ZTx7XG4gICAgbWVzc2FnZXM6IHsgbWVzc2FnZTogYW55OyBldmVudF9pZDogbnVtYmVyIH1bXTtcbiAgICBldmVudF9pZHM6IG51bWJlcltdO1xuICB9Pih7IG1lc3NhZ2VzOiBbeyBtZXNzYWdlOiAnJywgZXZlbnRfaWQ6IDAgfV0sIGV2ZW50X2lkczogW10gfSk7XG4gIGNvbnN0IGxhc3RWaXNpdGVkID0gdXNlTGFzdFZpc2l0ZWQoKTtcblxuICBjb25zdCB1c2VRdWVyeSA9ICgpID0+IHtcbiAgICByZXR1cm4gbmV3IFVSTFNlYXJjaFBhcmFtcyh1c2VMb2NhdGlvbigpLnNlYXJjaCk7XG4gIH07XG4gIGNvbnN0IGhpc3RvcnkgPSB1c2VIaXN0b3J5KCk7XG4gIGNvbnN0IHF1ZXJ5ID0gdXNlUXVlcnkoKTtcbiAgY29uc3QgZ2V0S1FMVmFsdWVzRnJvbVVSTCA9ICgpID0+IHtcbiAgICByZXR1cm4gcXVlcnkuZ2V0KCd2YWx1ZXNGcm9tS1FMJyk7XG4gIH07XG4gIGNvbnN0IGdldEV2ZW50SWRGcm9tVVJMID0gKCkgPT4ge1xuICAgIHJldHVybiBxdWVyeS5nZXQoJ2V2ZW50SWQnKTtcbiAgfTtcblxuICBjb25zdCBsb2FkZXIgPSAoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgKGlzRmV0Y2hpbmcgJiYgaXRlbXMubGVuZ3RoID09PSAwKSB8fFxuICAgICAgYXJlYXNfZGF0YS5uZXdBcmVhcy5sZW5ndGggPT09IDAgfHxcbiAgICAgIHBvaW50c19kYXRhLmlzRmV0Y2hpbmcgfHxcbiAgICAgIGVkZ2VzX2RhdGEuaXNGZXRjaGluZ1xuICAgICkge1xuICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPXsnbG9hZGVyJ30+PC9kaXY+O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uVG9nZ2xlID0gKCkgPT4ge1xuICAgIGRpc3BhdGNoKHNpZGVOYXZFeHBhbmRlZCghc2lkZW5hdkV4cGFuZGVkKSk7XG4gIH07XG5cbiAgY29uc3QgYXBwbHlEZWZhdWx0RmlsdGVyID0gKCkgPT4ge1xuICAgIGhpc3RvcnkucHVzaChcbiAgICAgIGAvJHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZX0vaW5kZXg/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mbG9jYWxlPSR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZX0mdmFsdWVzRnJvbUtRTD1gLFxuICAgICk7XG4gICAgZGlzcGF0Y2goc2V0RXZlbnRGaWx0ZXJQYXJhbSgnJykpO1xuICB9O1xuXG4gIGNvbnN0IHZhbGlkYXRlRXZlbnQgPSAoZXZlbnQ6IElFdmVudCkgPT4ge1xuICAgIC8vIGNoZWNrIHRoYXQgYWxsIG9ic2VydmF0aW9ucycgZWRnZXMgZXhpc3RzLiBJZiB0aGV5IGFyZSBub3QgZXhpc3RzIGl0J3MgaW5kaWNhdGVzIHRoYXQgdGhlaXIgcG9pbnRzIGFyZVxuICAgIC8vIG5vdCBpbiB0aGUgaGllcmFyY2h5IG9yIGRvZXNuJ3QgaGF2ZSBsYXQvbG5nLlxuICAgIGxldCBpbnZhbGlkT2JzZXJ2YXRpb25zTWVzc2FnZXM6IGFueSA9IFtdO1xuICAgIGV2ZW50Lm9ic2VydmF0aW9ucy5mb3JFYWNoKChvYnNlcnZhdGlvbjogYW55KSA9PiB7XG4gICAgICAvLyBpZiBvYnNlcnZhdGlvbiBpcyByb290IChleC4gV1dUUCkgdGhlcmUgaXMgbm8gZWRnZSB0aGF0IGl0cyBhIHNvdXJjZS4gc28gd2UgY2FuIHNraXAgdGhpcyBjaGVja1xuICAgICAgaWYgKCFvYnNlcnZhdGlvbi5wb2ludF9pc19yb290KSB7XG4gICAgICAgIGxldCBlZGdlID0gZWRnZXNfZGF0YS5pdGVtcy5maW5kKFxuICAgICAgICAgIChlZGdlKSA9PiBlZGdlLnNvdXJjZV9wb2ludF9pZCA9PT0gb2JzZXJ2YXRpb24ucG9pbnRfaWQsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChlZGdlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpbnZhbGlkT2JzZXJ2YXRpb25zTWVzc2FnZXMucHVzaChcbiAgICAgICAgICAgIGAke29ic2VydmF0aW9uLnBvaW50X25hbWV9ICgke29ic2VydmF0aW9uLnBvaW50X2lkfSkgYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW52YWxpZE9ic2VydmF0aW9uc01lc3NhZ2VzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgbGV0IGluZGV4ID0gZXhjZXB0aW9uQWxlcnQubWVzc2FnZXMuZmluZEluZGV4KFxuICAgICAgICAobXNnKSA9PiBtc2cuZXZlbnRfaWQgPT09IGV2ZW50LmlkLFxuICAgICAgKTtcblxuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICBzZXRFeGNlcHRpb25BbGVydCh7XG4gICAgICAgICAgbWVzc2FnZXM6IFtcbiAgICAgICAgICAgIC4uLmV4Y2VwdGlvbkFsZXJ0Lm1lc3NhZ2VzLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtZXNzYWdlOiAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIDxwPntpMThuLnQoJ2V2ZW50c19vdmVydmlldy5ldmVudF9kYXRhX21pc3NpbmcnKX08L3A+XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGV2ZW50X2lkOiBldmVudC5pZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBldmVudF9pZHM6IFsuLi5leGNlcHRpb25BbGVydC5ldmVudF9pZHMsIGV2ZW50LmlkXSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gc2FtZSBjaGVjayBhcyBhYm92ZSBidXQgdGhpcyB0aW1lIGZvciB0aGUgZXZlbnQgcGF0aC4gSWYgZWRnZSBkb2Vzbid0IGV4aXN0LCBpdCdzIGluZGljYXRlcyB0aGF0IG9uZSBvZiB0aGVcbiAgICAvLyBwb2ludHMgZG93bnN0cmVhbSBkb2Vzbid0IGhhdmUgbGF0L2xuZy5cbiAgICBsZXQgaW52YWxpZFBhdGhNZXNzYWdlczogYW55ID0gW107XG4gICAgZXZlbnQucGF0aC5mb3JFYWNoKChwYXRoOiBhbnkpID0+IHtcbiAgICAgIGxldCBlZGdlID0gZWRnZXNfZGF0YS5pdGVtcy5maW5kKChlZGdlKSA9PiBlZGdlLmlkID09PSBwYXRoLmVkZ2VfaWQpO1xuICAgICAgaWYgKGVkZ2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBlZGdlICR7cGF0aC5lZGdlX2lkfSBjYW4gbm90IGJlIGZvdW5kYCk7XG4gICAgICAgIGxldCBvYnNlcnZhdGlvbiA9IGV2ZW50Lm9ic2VydmF0aW9ucy5maW5kKFxuICAgICAgICAgIChvYnNlcnZhdGlvbikgPT4gb2JzZXJ2YXRpb24uaWQgPT09IHBhdGgubGFzdF9vYnNlcnZhdGlvbl9pZCxcbiAgICAgICAgKTtcbiAgICAgICAgbGV0IGxhc3RPYnNlcnZhdGlvblBvaW50ID0gJ05vdCBmb3VuZCc7XG4gICAgICAgIGlmIChvYnNlcnZhdGlvbikge1xuICAgICAgICAgIGxhc3RPYnNlcnZhdGlvblBvaW50ID0gb2JzZXJ2YXRpb24ucG9pbnRfbmFtZTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdsYXN0T2JzZXJ2YXRpb25Qb2ludCcsIGxhc3RPYnNlcnZhdGlvblBvaW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGludmFsaWRQYXRoTWVzc2FnZXMucHVzaChgJHtsYXN0T2JzZXJ2YXRpb25Qb2ludH0gYCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW52YWxpZFBhdGhNZXNzYWdlcy5sZW5ndGggIT09IDApIHtcbiAgICAgIHNldEV4Y2VwdGlvbkFsZXJ0KHtcbiAgICAgICAgbWVzc2FnZXM6IFtcbiAgICAgICAgICAuLi5leGNlcHRpb25BbGVydC5tZXNzYWdlcyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPHA+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmV2ZW50X3ZlcmlmeV9jb29yZGluYXRlcycpfTwvcD5cbiAgICAgICAgICAgICAgICA8c3Bhbj57aW52YWxpZFBhdGhNZXNzYWdlc308L3NwYW4+XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGV2ZW50X2lkOiBldmVudC5pZCxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBldmVudF9pZHM6IFsuLi5leGNlcHRpb25BbGVydC5ldmVudF9pZHMsIGV2ZW50LmlkXSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUV2ZW50SXRlbUNsaWNrID0gKGV2ZW50OiBJRXZlbnQsIHJlZjogUmVmT2JqZWN0PEhUTUxFbGVtZW50PikgPT4ge1xuICAgIG9uTW91c2VMZWF2ZUV2ZW50KCk7XG4gICAgLy8gaWYgKGhvdmVyZWRFdmVudFBhdGhzICYmIG1hcCkge1xuICAgIC8vICAgICBob3ZlcmVkRXZlbnRQYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XG4gICAgLy8gICAgICAgICBtYXAucmVtb3ZlTGF5ZXIocGF0aCk7XG4gICAgLy8gICAgIH0pO1xuICAgIC8vIH1cbiAgICAvLyBkaXNwYXRjaChzZXRIb3ZlcmVkRXZlbnRQYXRocyhbXSkpO1xuICAgIC8vIGRpc3BhdGNoKHNldEhvdmVyRXZlbnRJbmRpY2F0b3IobnVsbCkpO1xuICAgIGlmICh2YWxpZGF0ZUV2ZW50KGV2ZW50KSkge1xuICAgICAgZGlzcGF0Y2goc2V0Rm9jdXNlZEV2ZW50KGV2ZW50KSk7XG4gICAgICBzZXRGaWx0ZXJQb3B1cE9wZW4oZmFsc2UpO1xuICAgICAgaGlzdG9yeS5wdXNoKFxuICAgICAgICBgLyR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWV9L2luZGV4P3dhdGVyX2F1dGhvcml0eV9pZD0ke2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWR9JmxvY2FsZT0ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGV9JmV2ZW50SWQ9JHtldmVudC5pZH0mdmFsdWVzRnJvbUtRTD0ke2dsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW19YCxcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG9uTW91c2VFbnRlckV2ZW50ID0gKGV2ZW50KSA9PiB7XG4gICAgaWYgKCFmb2N1c2VkRXZlbnQgJiYgIWhvdmVyZWRFdmVudCAmJiB2YWxpZGF0ZUV2ZW50KGV2ZW50KSkge1xuICAgICAgZGlzcGF0Y2goc2V0SG92ZXJlZEV2ZW50KGV2ZW50KSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG9uTW91c2VMZWF2ZUV2ZW50ID0gKCkgPT4ge1xuICAgIGlmIChob3ZlcmVkRXZlbnQgJiYgaG92ZXJlZEV2ZW50UGF0aHMgJiYgbWFwKSB7XG4gICAgICBob3ZlcmVkRXZlbnRQYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XG4gICAgICAgIG1hcC5yZW1vdmVMYXllcihwYXRoKTtcbiAgICAgIH0pO1xuXG4gICAgICBsZXQgbGF5ZXJzID0gbWFwLl9sYXllcnM7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGxheWVycykge1xuICAgICAgICBjb25zdCBrYW5kb19vYmplY3QgPSBsYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdDtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGthbmRvX29iamVjdD8uaW5jbHVkZXMoJ0V2ZW50Qm9keScpIHx8XG4gICAgICAgICAgWydFdmVudFRhaWwnLCAnU2FtcGxpbmdQb2ludCcsICdEZWNvcmF0b3InXS5pbmNsdWRlcyhrYW5kb19vYmplY3QpXG4gICAgICAgICkge1xuICAgICAgICAgIG1hcC5yZW1vdmVMYXllcihsYXllcnNbcHJvcGVydHldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRXZlbnQobnVsbCkpO1xuICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFdmVudFBhdGhzKFtdKSk7XG4gICAgLy8gZGlzcGF0Y2goc2V0SG92ZXJFdmVudEluZGljYXRvcihudWxsKSk7XG4gIH07XG5cbiAgY29uc3Qgc2V0Rm9jdXNlZEV2ZW50SWZGb3VuZEluUGFyYW1zID0gKCkgPT4ge1xuICAgIGlmIChcbiAgICAgIGdldEV2ZW50SWRGcm9tVVJMKCkgIT09IG51bGwgJiZcbiAgICAgIGdldEV2ZW50SWRGcm9tVVJMKCkgIT09ICdudWxsJyAmJlxuICAgICAgZm9jdXNlZEV2ZW50ID09PSBudWxsICYmXG4gICAgICBpdGVtcy5sZW5ndGggIT09IDAgJiZcbiAgICAgICFpc0ZldGNoaW5nICYmXG4gICAgICAhYXJlYXNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAhcG9pbnRzX2RhdGEuaXNGZXRjaGluZyAmJlxuICAgICAgIWVkZ2VzX2RhdGEuaXNGZXRjaGluZ1xuICAgICkge1xuICAgICAgbGV0IGV2ZW50ID0gZXZlbnRzX2RhdGEuaXRlbXMuZmluZChcbiAgICAgICAgKGU6IElFdmVudCkgPT4gZS5pZCA9PT0gcGFyc2VJbnQoZ2V0RXZlbnRJZEZyb21VUkwoKSEpLFxuICAgICAgKTtcbiAgICAgIGlmIChldmVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRpc3BhdGNoKHNldEZvY3VzZWRFdmVudChldmVudCkpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCB0cmlnZ2VyU29ydCA9IChzb3J0OiBudW1iZXIpID0+IHtcbiAgICBpZiAoZ2xvYmFsX2RhdGEuYWN0aXZlRmlsdGVyICE9PSBudWxsKSB7XG4gICAgICBsZXQgS1FMO1xuICAgICAgbGV0IFVSTDtcbiAgICAgIHN3aXRjaCAoc29ydCkge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgS1FMID0gYCR7YnVpbGRLUUxRdWVyeShnbG9iYWxfZGF0YS5hY3RpdmVGaWx0ZXIsICduZXdlc3QnKX1gO1xuICAgICAgICAgIFVSTCA9IGAvJHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZX0vaW5kZXg/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mbG9jYWxlPSR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZX0mdmFsdWVzRnJvbUtRTD0ke0tRTH1gO1xuICAgICAgICAgIGhpc3RvcnkucHVzaChVUkwpO1xuICAgICAgICAgIGRpc3BhdGNoKHNldEV2ZW50RmlsdGVyUGFyYW0oS1FMKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBLUUwgPSBgJHtidWlsZEtRTFF1ZXJ5KGdsb2JhbF9kYXRhLmFjdGl2ZUZpbHRlciwgJ29sZGVzdCcpfWA7XG4gICAgICAgICAgVVJMID0gYC8ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkfSZsb2NhbGU9JHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubG9jYWxlfSZ2YWx1ZXNGcm9tS1FMPSR7S1FMfWA7XG4gICAgICAgICAgaGlzdG9yeS5wdXNoKFVSTCk7XG4gICAgICAgICAgZGlzcGF0Y2goc2V0RXZlbnRGaWx0ZXJQYXJhbShLUUwpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIEtRTCA9IGAke2J1aWxkS1FMUXVlcnkoZ2xvYmFsX2RhdGEuYWN0aXZlRmlsdGVyLCAnc2V2ZXJpdHknKX1gO1xuICAgICAgICAgIFVSTCA9IGAvJHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZX0vaW5kZXg/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mbG9jYWxlPSR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZX0mdmFsdWVzRnJvbUtRTD0ke0tRTH1gO1xuICAgICAgICAgIGhpc3RvcnkucHVzaChVUkwpO1xuICAgICAgICAgIGRpc3BhdGNoKHNldEV2ZW50RmlsdGVyUGFyYW0oS1FMKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hFdmVudHMod2F0ZXJBdXRob3JpdHlJZCwgZ2V0S1FMVmFsdWVzRnJvbVVSTCgpIHx8ICdERUZBVUxUJykpO1xuICB9LCBbZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCwgZ2xvYmFsX2RhdGEuZXZlbnRGaWx0ZXJQYXJhbV0pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9eydzaWRlbmF2ICcgKyAoc2lkZW5hdkV4cGFuZGVkID8gJycgOiAnc2lkZW5hdi0tY29sbGFwc2VkJyl9PlxuICAgICAge3NldEZvY3VzZWRFdmVudElmRm91bmRJblBhcmFtcygpfVxuICAgICAge2dsb2JhbF9kYXRhLm1vcmVJbmZvICE9PSB1bmRlZmluZWQgJiYgZ2xvYmFsX2RhdGEubW9yZUluZm8uYWN0aXZlICYmIChcbiAgICAgICAgPE1vcmVJbmZvIC8+XG4gICAgICApfVxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgJ2V2ZW50LWluZm8gJyArXG4gICAgICAgICAgKCFob3ZlcmVkRXZlbnQgJiYgZm9jdXNlZEV2ZW50ICE9PSBudWxsXG4gICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICA6ICdldmVudC1pbmZvLS1jb2xsYXBzZWQnKVxuICAgICAgICB9XG4gICAgICA+XG4gICAgICAgIHshaG92ZXJlZEV2ZW50ICYmIGZvY3VzZWRFdmVudCAhPT0gbnVsbCAmJiAoXG4gICAgICAgICAgPEV2ZW50SW5mb1xuICAgICAgICAgICAgZXZlbnQ9e2ZvY3VzZWRFdmVudH1cbiAgICAgICAgICAgIHJlT3BlbkZpbHRlcj17KCkgPT4gc2V0RmlsdGVyUG9wdXBPcGVuKHRydWUpfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPVwidG9nZ2xlLWV4cGFuc2lvbi1idXR0b25cIlxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgaGFuZGxlRXhwYW5zaW9uVG9nZ2xlKCk7XG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibmF2LWV4cGFuc2lvbi1pY29uXCI+XG4gICAgICAgICAgPEZvbnRBd2Vzb21lSWNvblxuICAgICAgICAgICAgaWNvbj17c2lkZW5hdkV4cGFuZGVkID8gZmFDYXJldExlZnQgOiBmYUNhcmV0UmlnaHR9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXsndG9nZ2xlLWV4cGFuc2lvbi1idXR0b24tbW9iaWxlJ31cbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIGhhbmRsZUV4cGFuc2lvblRvZ2dsZSgpO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8YSBocmVmPVwiI1wiPlxuICAgICAgICAgIDxGb250QXdlc29tZUljb24gaWNvbj17ZmFBcnJvd0xlZnR9IC8+XG4gICAgICAgICAgPHNwYW4+IHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5iYWNrX3RvX2RldGFpbHMnKX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJldmVudHMtaGVhZGVyXCI+XG4gICAgICAgIHtsYXN0VmlzaXRlZCAmJiAhaXNGZXRjaGluZyAmJiAoXG4gICAgICAgICAgPExpbmsgY2xhc3NOYW1lPVwiYmFja1wiIHRvPXtsYXN0VmlzaXRlZH0+XG4gICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICBzcmM9e0xlZnRBcnJvd0ljb259XG4gICAgICAgICAgICAgIGhlaWdodD1cIjEwcHhcIlxuICAgICAgICAgICAgICB3aWR0aD1cIjEycHhcIlxuICAgICAgICAgICAgICBhbHQ9XCJiYWNrXCJcbiAgICAgICAgICAgIC8+eycgJ31cbiAgICAgICAgICAgIHtpMThuLnQoJ2FyZWFfc2NyZWVuLmJhY2snKX1cbiAgICAgICAgICA8L0xpbms+XG4gICAgICAgICl9XG4gICAgICAgIDxoND5cbiAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZXZlbnRzX2xpc3QnKX0gKHtldmVudHNfZGF0YS5pdGVtcy5sZW5ndGh9KVxuICAgICAgICA8L2g0PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlcmluZ1wiPlxuICAgICAgICAgIHtldmVudHNfZGF0YS5pdGVtcy5sZW5ndGggIT09IDAgJiYgKFxuICAgICAgICAgICAgPFNvcnRcbiAgICAgICAgICAgICAgdHJpZ2dlclNvcnQ9e3RyaWdnZXJTb3J0fVxuICAgICAgICAgICAgICBldmVudHM9e2V2ZW50c19kYXRhLml0ZW1zfVxuICAgICAgICAgICAgICBldmVudHNGZXRjaGluZz17ZXZlbnRzX2RhdGEuaXNGZXRjaGluZ31cbiAgICAgICAgICAgICAgYWN0aXZlRmlsdGVyPXtnbG9iYWxfZGF0YS5hY3RpdmVGaWx0ZXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpY29uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmaWx0ZXJcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRGaWx0ZXJQb3B1cE9wZW4oIWZpbHRlclBvcHVwT3Blbil9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxGaWx0ZXJJY29uIHdpZHRoPVwiMTdweFwiIGhlaWdodD1cIjE3cHhcIiBmaWxsPVwiI2Y2MDA0ZlwiIC8+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAge3BvaW50c19kYXRhLml0ZW1zLmxlbmd0aCAhPT0gMCAmJiAoXG4gICAgICAgICAgPEZpbHRlckNvbnRhaW5lclxuICAgICAgICAgICAgZmlsdGVyUG9wdXBPcGVuPXtmaWx0ZXJQb3B1cE9wZW59XG4gICAgICAgICAgICBmZXRjaFR5cGU9eydFdmVudEZpbHRlcid9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJldmVudHMtY29udGFpbmVyIHNjcm9sbGJhciBcIj5cbiAgICAgICAge2xvYWRlcigpfVxuICAgICAgICB7IWlzRmV0Y2hpbmcgJiZcbiAgICAgICAgICBpdGVtcy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgICAhcG9pbnRzX2RhdGEuaXNGZXRjaGluZyAmJlxuICAgICAgICAgICFlZGdlc19kYXRhLmlzRmV0Y2hpbmcgJiYgKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydldmVudHNfX2JsYW5rc2xhdGUnfT5cbiAgICAgICAgICAgICAgPGltZyBzcmM9e05vRXZlbnRzSW1hZ2V9IGFsdD1cIk5vRXZlbnRzSWNvblwiIC8+XG4gICAgICAgICAgICAgIDxoMj57aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLmJsYW5rc2xhdGUuaGVhZGVyJyl9PC9oMj5cbiAgICAgICAgICAgICAgPHA+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5ibGFua3NsYXRlLmJvZHknKX08L3A+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsnYXBwbHlfZGVmYXVsdF9maWx0ZXJfYnV0dG9uJ31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBhcHBseURlZmF1bHRGaWx0ZXIoKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5maWx0ZXIuYmxhbmtzbGF0ZS5idXR0b24nKX1cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAge2l0ZW1zLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgICAgICFhcmVhc19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICAgICAhcG9pbnRzX2RhdGEuaXNGZXRjaGluZyAmJlxuICAgICAgICAgICFlZGdlc19kYXRhLmlzRmV0Y2hpbmcgJiYgKFxuICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cImV2ZW50cyBcIj5cbiAgICAgICAgICAgICAge2l0ZW1zLm1hcCgoZXZlbnQ6IGFueSkgPT4gKFxuICAgICAgICAgICAgICAgIDxsaSBrZXk9e2V2ZW50LmlkfSBjbGFzc05hbWU9XCJldmVudFwiIGRhdGEtZXZlbnQtaWQ9e2V2ZW50LmlkfT5cbiAgICAgICAgICAgICAgICAgIDxTZXZlcmVFdmVudFxuICAgICAgICAgICAgICAgICAgICBldmVudD17ZXZlbnR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZUNsaWNrPXtoYW5kbGVFdmVudEl0ZW1DbGlja31cbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyRXZlbnQ9e29uTW91c2VFbnRlckV2ZW50fVxuICAgICAgICAgICAgICAgICAgICBvbk1vdXNlTGVhdmVFdmVudD17b25Nb3VzZUxlYXZlRXZlbnR9XG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlRXZlbnQ9e3ZhbGlkYXRlRXZlbnR9XG4gICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbkFsZXJ0PXtleGNlcHRpb25BbGVydH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmNvbnN0IGNvbm5lY3RvciA9IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RvcihFdmVudHNMaXN0KTtcbiJdfQ==
@@ -281,7 +281,7 @@ var NotificationsFormContent = function NotificationsFormContent(_ref) {
281
281
  onChange: function onChange(e) {
282
282
  return (0, _NotificationsUtils.handleNotificationSample)(e, setNewNotification);
283
283
  },
284
- checked: notification.pump_only
284
+ checked: notification.pump_only === '1'
285
285
  })));
286
286
  };
287
287
 
@@ -346,4 +346,4 @@ var NotificationsCheckboxesStyle = _styledComponents.default.div.withConfig({
346
346
  var gap = _ref14.gap;
347
347
  return gap + 'px';
348
348
  });
349
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9Ob3RpZmljYXRpb25zUGFnZVYyL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uc0Zvcm0vTm90aWZpY2F0aW9uc0Zvcm1Db250ZW50LnRzeCJdLCJuYW1lcyI6WyJOb3RpZmljYXRpb25zRm9ybUNvbnRlbnQiLCJub3RpZmljYXRpb24iLCJwb2ludHMiLCJ0YWdzIiwic2Vuc29ycyIsIndhdGVyQXV0aG9yaXRpZXMiLCJhbGxvd2VkTm90aWZpY2F0aW9ucyIsInNldE5ld05vdGlmaWNhdGlvbiIsImhhc1Bob25lIiwiaGFzVGVsZWdyYW0iLCJvcGVuIiwiaW5zdGFuY2UiLCJtb2RhbERldGFpbHMiLCJzZXRNb2RhbERldGFpbHMiLCJkZWZhdWx0V2F0ZXJBdXRob3JpdHlJZlNpbmdsZSIsImxlbmd0aCIsInZhbHVlIiwibGFiZWwiLCJ1bmRlZmluZWQiLCJzZWxlY3Rpb25fdHlwZSIsInNldCIsIndhdGVyX2F1dGhvcml0eSIsImlkIiwiaTE4biIsInQiLCJvcHRpb24iLCJtYXAiLCJ0eXBlIiwiaW5jbHVkZXMiLCJzZXZlcml0aWVzUmFkaW9CdXR0b25zIiwiZXZlbnQiLCJzZXZlcml0eSIsIndhdGVyQXV0aG9yaXRpZXNSYWRpb0J1dHRvbnMiLCJ3YXRlcl9hdXRob3JpdGllcyIsIndhIiwidGV4dCIsInNvdXJjZXNSYWRpb0J1dHRvbnMiLCJwIiwicG9pbnQiLCJ0YWciLCJzZW5zb3IiLCJzZW5kVmlhQ2hlY2tCb3hlcyIsImFjdGlvbnMiLCJ0ZWxlZ3JhbSIsInRoZW1lIiwiY29sb3JTY2hlbWUiLCJuYXR1cmFsIiwibjYwIiwic21zIiwiZSIsInB1bXBfb25seSIsIkFsZXJ0Q29udGVudCIsInN0eWxlZCIsImRpdiIsIk1vZGFsQWN0aW9uc0J1dHRvbiIsImNvbG9yIiwiTm90aWZpY2F0aW9uU2lkZWJhckZvcm1BcmVhU3R5bGUiLCJuMzAiLCJmb250U2l6ZSIsIm1kIiwiZm9udFdlaWdodCIsInc2MDAiLCJuODAiLCJwcmltYXJ5IiwicDEiLCJkYXRhIiwiTzEwMCIsIlcxMDAiLCJOb3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlIiwiZ2FwIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFRQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFVQTs7QUFFQTs7Ozs7O0FBY0EsSUFBTUEsd0JBQWdFLEdBQUcsU0FBbkVBLHdCQUFtRSxPQVVuRTtBQUFBLE1BVEpDLFlBU0ksUUFUSkEsWUFTSTtBQUFBLE1BUkpDLE1BUUksUUFSSkEsTUFRSTtBQUFBLE1BUEpDLElBT0ksUUFQSkEsSUFPSTtBQUFBLE1BTkpDLE9BTUksUUFOSkEsT0FNSTtBQUFBLE1BTEpDLGdCQUtJLFFBTEpBLGdCQUtJO0FBQUEsTUFKSkMsb0JBSUksUUFKSkEsb0JBSUk7QUFBQSxNQUhKQyxrQkFHSSxRQUhKQSxrQkFHSTtBQUFBLE1BRkpDLFFBRUksUUFGSkEsUUFFSTtBQUFBLE1BREpDLFdBQ0ksUUFESkEsV0FDSTs7QUFDSixrQkFBd0MscUJBQXVCO0FBQzdEQyxJQUFBQSxJQUFJLEVBQUUsS0FEdUQ7QUFFN0RDLElBQUFBLFFBQVEsRUFBRTtBQUZtRCxHQUF2QixDQUF4QztBQUFBO0FBQUEsTUFBT0MsWUFBUDtBQUFBLE1BQXFCQyxlQUFyQjs7QUFLQSxNQUFNQyw2QkFBNkIsR0FBRyxTQUFoQ0EsNkJBQWdDLEdBQU07QUFDMUMsUUFBSVQsZ0JBQWdCLENBQUNVLE1BQWpCLEtBQTRCLENBQWhDLEVBQW1DO0FBQ2pDLHNEQUNFO0FBQUVDLFFBQUFBLEtBQUssRUFBRSxzQkFBVDtBQUFpQ0MsUUFBQUEsS0FBSyxFQUFFO0FBQXhDLE9BREYsRUFFRWhCLFlBRkYsRUFHRU0sa0JBSEY7QUFLQSxzREFDRVcsU0FERixFQUVFO0FBQ0VDLFFBQUFBLGNBQWMsRUFBRSxTQURsQjtBQUVFQyxRQUFBQSxHQUFHLEVBQUUsQ0FDSDtBQUNFSixVQUFBQSxLQUFLLEVBQUVYLGdCQUFnQixDQUFDLENBQUQsQ0FBaEIsQ0FBb0JnQixlQUFwQixDQUFvQ0MsRUFEN0M7QUFFRUwsVUFBQUEsS0FBSyxFQUFFWixnQkFBZ0IsQ0FBQyxDQUFELENBQWhCLENBQW9CZ0IsZUFBcEIsQ0FBb0NKO0FBRjdDLFNBREc7QUFGUCxPQUZGLEVBV0VoQixZQVhGLEVBWUVNLGtCQVpGO0FBY0Q7QUFDRixHQXRCRDs7QUF3QkEsd0JBQVUsWUFBTTtBQUNkTyxJQUFBQSw2QkFBNkI7QUFDOUIsR0FGRCxFQUVHLEVBRkg7QUFJQSxzQkFDRSw2QkFBQyxnQ0FBRCxxQkFDRSw2QkFBQyxvQkFBRCxDQUFNLEtBQU47QUFBWSxJQUFBLFNBQVMsRUFBQztBQUF0QixrQkFDRSw2QkFBQyxvQkFBRCxDQUFNLEtBQU4sUUFBYVMsY0FBS0MsQ0FBTCxDQUFPLDhCQUFQLENBQWIsQ0FERixlQUVFLDZCQUFDLG9CQUFEO0FBQ0UsSUFBQSxRQUFRLEVBQUUsa0JBQUNDLE1BQUQ7QUFBQSxhQUNSLGdEQUF1QkEsTUFBdkIsRUFBK0J4QixZQUEvQixFQUE2Q00sa0JBQTdDLENBRFE7QUFBQSxLQURaO0FBSUUsSUFBQSxJQUFJLEVBQUUsTUFKUjtBQUtFLElBQUEsT0FBTyxFQUFFRCxvQkFBb0IsQ0FBRW9CLEdBQXRCLENBQTBCLFVBQUNDLElBQUQ7QUFBQSxhQUFnQjtBQUNqRFgsUUFBQUEsS0FBSyxFQUFFVyxJQUQwQztBQUVqRFYsUUFBQUEsS0FBSyxFQUFFTSxjQUFLQyxDQUFMLDhCQUE2QkcsSUFBN0I7QUFGMEMsT0FBaEI7QUFBQSxLQUExQixDQUxYO0FBU0UsSUFBQSxZQUFZLEVBQ1YxQixZQUFZLENBQUMwQixJQUFiLEtBQXNCLEVBQXRCLEdBQ0k7QUFDRVgsTUFBQUEsS0FBSyxFQUFFZixZQUFZLENBQUMwQixJQUR0QjtBQUVFVixNQUFBQSxLQUFLLEVBQUVNLGNBQUtDLENBQUwsOEJBQTZCdkIsWUFBWSxDQUFDMEIsSUFBMUM7QUFGVCxLQURKLEdBS0k7QUFDRVgsTUFBQUEsS0FBSyxFQUFFLHNCQURUO0FBRUVDLE1BQUFBLEtBQUssRUFBRU0sY0FBS0MsQ0FBTDtBQUZUO0FBZlIsSUFGRixDQURGLEVBeUJHdkIsWUFBWSxDQUFDMEIsSUFBYixLQUFzQixzQkFBdEIsSUFDQ3JCLG9CQUFvQixDQUFDc0IsUUFBckIsQ0FBOEIzQixZQUFZLENBQUMwQixJQUEzQyxDQURELGlCQUVHLDZCQUFDLG9CQUFELENBQU0sS0FBTjtBQUFZLElBQUEsU0FBUyxFQUFDO0FBQXRCLGtCQUNFLDZCQUFDLG9CQUFELENBQU0sS0FBTixRQUNHSixjQUFLQyxDQUFMLENBQU8sa0NBQVAsQ0FESCxDQURGLGVBSUUsNkJBQUMsNEJBQUQ7QUFBOEIsSUFBQSxHQUFHLEVBQUM7QUFBbEMsa0JBQ0UsNkJBQUMseUJBQUQ7QUFDRSxJQUFBLE9BQU8sRUFBRUsseUNBRFg7QUFFRSxJQUFBLFlBQVksRUFBRSxzQkFBQ0MsS0FBRDtBQUFBLGFBQ1osMENBQWlCQSxLQUFqQixFQUF3QnZCLGtCQUF4QixDQURZO0FBQUEsS0FGaEI7QUFLRSxJQUFBLFNBQVMsRUFBRU4sWUFBWSxDQUFDOEIsUUFMMUI7QUFNRSxJQUFBLE9BQU8sRUFBRTlCLFlBQVksQ0FBQzhCLFFBTnhCO0FBT0UsSUFBQSxJQUFJLEVBQUM7QUFQUCxJQURGLENBSkYsQ0EzQk4sRUE0Q0cxQixnQkFBZ0IsQ0FBQ1UsTUFBakIsR0FBMEIsQ0FBMUIsaUJBQ0MsNkJBQUMsb0JBQUQsQ0FBTSxLQUFOO0FBQVksSUFBQSxTQUFTLEVBQUM7QUFBdEIsa0JBQ0UsNkJBQUMsb0JBQUQsQ0FBTSxLQUFOLFFBQ0dRLGNBQUtDLENBQUwsQ0FBTyxzQ0FBUCxDQURILENBREYsZUFJRSw2QkFBQyw0QkFBRDtBQUE4QixJQUFBLEdBQUcsRUFBQztBQUFsQyxrQkFDRSw2QkFBQyx5QkFBRDtBQUNFLElBQUEsT0FBTyxFQUFFUSwrQ0FEWDtBQUVFLElBQUEsWUFBWSxFQUFFLHNCQUFDRixLQUFEO0FBQUEsYUFDWixnREFDRUEsS0FERixFQUVFLEVBRkYsRUFHRTdCLFlBSEYsRUFJRU0sa0JBSkYsQ0FEWTtBQUFBLEtBRmhCO0FBVUUsSUFBQSxTQUFTLEVBQUVOLFlBQVksQ0FBQ2dDLGlCQUFiLENBQStCZCxjQVY1QztBQVdFLElBQUEsT0FBTyxFQUFFbEIsWUFBWSxDQUFDZ0MsaUJBQWIsQ0FBK0JkLGNBWDFDO0FBWUUsSUFBQSxJQUFJLEVBQUM7QUFaUCxJQURGLENBSkYsRUFvQkdsQixZQUFZLENBQUNnQyxpQkFBYixDQUErQmQsY0FBL0IsS0FBa0QsS0FBbEQsSUFDQ2Isb0JBQW9CLENBQUNzQixRQUFyQixDQUE4QjNCLFlBQVksQ0FBQzBCLElBQTNDLENBREQsaUJBRUcsNkJBQUMsb0JBQUQ7QUFDRSxJQUFBLElBQUksRUFBRSxpQkFEUjtBQUVFLElBQUEsUUFBUSxFQUFFLGtCQUFDRixNQUFELEVBQWlCO0FBQ3pCLHNEQUNFUCxTQURGLEVBRUU7QUFDRUMsUUFBQUEsY0FBYyxFQUNabEIsWUFBWSxDQUFDZ0MsaUJBQWIsQ0FBK0JkLGNBRm5DO0FBR0VDLFFBQUFBLEdBQUcsRUFBRUs7QUFIUCxPQUZGLEVBT0V4QixZQVBGLEVBUUVNLGtCQVJGO0FBVUQsS0FiSDtBQWNFLElBQUEsWUFBWSxFQUFFLElBZGhCO0FBZUUsSUFBQSxPQUFPLEVBQUUsSUFmWDtBQWdCRSxJQUFBLGVBQWUsRUFBRSxpQkFoQm5CO0FBaUJFLElBQUEsT0FBTyxFQUFFRixnQkFBRixhQUFFQSxnQkFBRix1QkFBRUEsZ0JBQWdCLENBQUVxQixHQUFsQixDQUFzQixVQUFDUSxFQUFEO0FBQUEsYUFBYztBQUMzQ2xCLFFBQUFBLEtBQUssRUFBRWtCLEVBQUUsQ0FBQ2IsZUFBSCxDQUFtQkMsRUFEaUI7QUFFM0NMLFFBQUFBLEtBQUssRUFBRWlCLEVBQUUsQ0FBQ2IsZUFBSCxDQUFtQko7QUFGaUIsT0FBZDtBQUFBLEtBQXRCLENBakJYO0FBcUJFLElBQUEsWUFBWSxFQUNWaEIsWUFBWSxDQUFDZ0MsaUJBQWIsQ0FBK0JiLEdBQS9CLEtBQXVDLElBQXZDLEdBQ0luQixZQUFZLENBQUNnQyxpQkFBYixDQUErQmIsR0FBL0IsQ0FBbUNNLEdBQW5DLENBQXVDLFVBQUNRLEVBQUQ7QUFBQSxhQUFjO0FBQ25EbEIsUUFBQUEsS0FBSyxFQUFFa0IsRUFBRSxDQUFDWixFQUR5QztBQUVuREwsUUFBQUEsS0FBSyxFQUFFaUIsRUFBRSxDQUFDQztBQUZ5QyxPQUFkO0FBQUEsS0FBdkMsQ0FESixHQUtJO0FBM0JSLElBdEJOLENBN0NKLEVBb0dHbEMsWUFBWSxDQUFDMEIsSUFBYixLQUFzQiw0QkFBdEIsSUFDQzFCLFlBQVksQ0FBQzBCLElBQWIsS0FBc0IsZ0NBRHZCLElBRUNyQixvQkFBb0IsQ0FBQ3NCLFFBQXJCLENBQThCM0IsWUFBWSxDQUFDMEIsSUFBM0MsQ0FGRCxpQkFHRyw2QkFBQyxvQkFBRCxDQUFNLEtBQU47QUFBWSxJQUFBLFNBQVMsRUFBQztBQUF0QixrQkFDRSw2QkFBQyxvQkFBRCxDQUFNLEtBQU4sUUFBYUosY0FBS0MsQ0FBTCxDQUFPLDRCQUFQLENBQWIsQ0FERixlQUVFLDZCQUFDLDRCQUFEO0FBQThCLElBQUEsR0FBRyxFQUFDO0FBQWxDLGtCQUNFLDZCQUFDLHlCQUFEO0FBQ0UsSUFBQSxPQUFPLEVBQUVZLHNDQURYO0FBRUUsSUFBQSxZQUFZLEVBQUUsc0JBQUNOLEtBQUQ7QUFBQSxhQUNaLHVDQUFjQSxLQUFkLEVBQXFCLEVBQXJCLEVBQXlCN0IsWUFBekIsRUFBdUNNLGtCQUF2QyxDQURZO0FBQUEsS0FGaEI7QUFLRSxJQUFBLFNBQVMsRUFBRU4sWUFBWSxDQUFDQyxNQUFiLENBQW9CaUIsY0FMakM7QUFNRSxJQUFBLE9BQU8sRUFBRWxCLFlBQVksQ0FBQ0MsTUFBYixDQUFvQmlCLGNBTi9CO0FBT0UsSUFBQSxJQUFJLEVBQUM7QUFQUCxJQURGLENBRkYsRUFhR2xCLFlBQVksQ0FBQ0MsTUFBYixDQUFvQmlCLGNBQXBCLEtBQXVDLEtBQXZDLGlCQUNDLDZCQUFDLG9CQUFEO0FBQ0UsSUFBQSxJQUFJLEVBQUUsT0FEUjtBQUVFLElBQUEsUUFBUSxFQUFFLGtCQUFDTSxNQUFELEVBQWlCO0FBQ3pCLDZDQUNFUCxTQURGLEVBRUU7QUFDRUMsUUFBQUEsY0FBYyxFQUFFbEIsWUFBWSxDQUFDQyxNQUFiLENBQW9CaUIsY0FEdEM7QUFFRUMsUUFBQUEsR0FBRyxFQUFFSztBQUZQLE9BRkYsRUFNRXhCLFlBTkYsRUFPRU0sa0JBUEY7QUFTRCxLQVpIO0FBYUUsSUFBQSxZQUFZLEVBQUUsSUFiaEI7QUFjRSxJQUFBLE9BQU8sRUFBRSxJQWRYO0FBZUUsSUFBQSxlQUFlLEVBQUUsT0FmbkI7QUFnQkUsSUFBQSxPQUFPLEVBQUVMLE1BQUYsYUFBRUEsTUFBRix1QkFBRUEsTUFBTSxDQUFFd0IsR0FBUixDQUFZLFVBQUNXLENBQUQ7QUFBQSxhQUFhO0FBQ2hDckIsUUFBQUEsS0FBSyxFQUFFcUIsQ0FBQyxDQUFDQyxLQUFGLENBQVFoQixFQURpQjtBQUVoQ0wsUUFBQUEsS0FBSyxFQUFFb0IsQ0FBQyxDQUFDQyxLQUFGLENBQVFyQjtBQUZpQixPQUFiO0FBQUEsS0FBWixDQWhCWDtBQW9CRSxJQUFBLFlBQVksRUFDVmhCLFlBQVksQ0FBQ0MsTUFBYixDQUFvQmtCLEdBQXBCLEtBQTRCLElBQTVCLEdBQ0luQixZQUFZLENBQUNDLE1BQWIsQ0FBb0JrQixHQUFwQixDQUF3Qk0sR0FBeEIsQ0FBNEIsVUFBQ1csQ0FBRDtBQUFBLGFBQWE7QUFDdkNyQixRQUFBQSxLQUFLLEVBQUVxQixDQUFDLENBQUNmLEVBRDhCO0FBRXZDTCxRQUFBQSxLQUFLLEVBQUVvQixDQUFDLENBQUNGO0FBRjhCLE9BQWI7QUFBQSxLQUE1QixDQURKLEdBS0k7QUExQlIsSUFkSixDQXZHTixFQXNKR2xDLFlBQVksQ0FBQzBCLElBQWIsS0FBc0IsNEJBQXRCLElBQ0MxQixZQUFZLENBQUNFLElBQWIsS0FBc0JlLFNBRHZCLElBRUNaLG9CQUFvQixDQUFDc0IsUUFBckIsQ0FBOEIzQixZQUFZLENBQUMwQixJQUEzQyxDQUZELGlCQUdHLDZCQUFDLG9CQUFELENBQU0sS0FBTjtBQUFZLElBQUEsU0FBUyxFQUFDO0FBQXRCLGtCQUNFLDZCQUFDLG9CQUFELENBQU0sS0FBTixRQUFhSixjQUFLQyxDQUFMLENBQU8seUJBQVAsQ0FBYixDQURGLGVBRUUsNkJBQUMsNEJBQUQ7QUFBOEIsSUFBQSxHQUFHLEVBQUM7QUFBbEMsa0JBQ0UsNkJBQUMseUJBQUQ7QUFDRSxJQUFBLE9BQU8sRUFBRVksc0NBRFg7QUFFRSxJQUFBLFlBQVksRUFBRSxzQkFBQ04sS0FBRDtBQUFBLGFBQ1osb0NBQVdBLEtBQVgsRUFBa0IsRUFBbEIsRUFBc0I3QixZQUF0QixFQUFvQ00sa0JBQXBDLENBRFk7QUFBQSxLQUZoQjtBQUtFLElBQUEsU0FBUyxFQUFFTixZQUFZLENBQUNFLElBQWIsQ0FBa0JnQixjQUwvQjtBQU1FLElBQUEsT0FBTyxFQUFFbEIsWUFBWSxDQUFDRSxJQUFiLENBQWtCZ0IsY0FON0I7QUFPRSxJQUFBLElBQUksRUFBQztBQVBQLElBREYsQ0FGRixFQWFHbEIsWUFBWSxDQUFDRSxJQUFiLENBQWtCZ0IsY0FBbEIsS0FBcUMsS0FBckMsSUFDQ2Isb0JBQW9CLENBQUNzQixRQUFyQixDQUE4QjNCLFlBQVksQ0FBQzBCLElBQTNDLENBREQsaUJBRUcsNkJBQUMsb0JBQUQ7QUFDRSxJQUFBLElBQUksRUFBRSxPQURSO0FBRUUsSUFBQSxRQUFRLEVBQUUsa0JBQUNGLE1BQUQsRUFBaUI7QUFDekIsMENBQ0VQLFNBREYsRUFFRTtBQUNFQyxRQUFBQSxjQUFjLEVBQ1psQixZQUFZLENBQUNFLElBQWIsS0FBc0JlLFNBQXRCLEdBQ0lqQixZQUFZLENBQUNFLElBQWIsQ0FBa0JnQixjQUR0QixHQUVJLEVBSlI7QUFLRUMsUUFBQUEsR0FBRyxFQUFFSztBQUxQLE9BRkYsRUFTRXhCLFlBVEYsRUFVRU0sa0JBVkY7QUFZRCxLQWZIO0FBZ0JFLElBQUEsWUFBWSxFQUFFLElBaEJoQjtBQWlCRSxJQUFBLE9BQU8sRUFBRSxJQWpCWDtBQWtCRSxJQUFBLGVBQWUsRUFBRSxPQWxCbkI7QUFtQkUsSUFBQSxPQUFPLEVBQUVKLElBQUYsYUFBRUEsSUFBRix1QkFBRUEsSUFBSSxDQUFFdUIsR0FBTixDQUFVLFVBQUNXLENBQUQ7QUFBQSxhQUFhO0FBQzlCckIsUUFBQUEsS0FBSyxFQUFFcUIsQ0FBQyxDQUFDRSxHQUFGLENBQU1qQixFQURpQjtBQUU5QkwsUUFBQUEsS0FBSyxFQUFFb0IsQ0FBQyxDQUFDRSxHQUFGLENBQU10QjtBQUZpQixPQUFiO0FBQUEsS0FBVixDQW5CWDtBQXVCRSxJQUFBLFlBQVksRUFDVmhCLFlBQVksQ0FBQ0UsSUFBYixDQUFrQmlCLEdBQWxCLEtBQTBCLElBQTFCLEdBQ0luQixZQUFZLENBQUNFLElBQWIsQ0FBa0JpQixHQUFsQixDQUFzQk0sR0FBdEIsQ0FBMEIsVUFBQ1csQ0FBRDtBQUFBLGFBQWE7QUFDckNyQixRQUFBQSxLQUFLLEVBQUVxQixDQUFDLENBQUNmLEVBRDRCO0FBRXJDTCxRQUFBQSxLQUFLLEVBQUVvQixDQUFDLENBQUNGO0FBRjRCLE9BQWI7QUFBQSxLQUExQixDQURKLEdBS0k7QUE3QlIsSUFmTixDQXpKTixFQTRNR2xDLFlBQVksQ0FBQzBCLElBQWIsS0FBc0IsZ0NBQXRCLElBQ0NyQixvQkFBb0IsQ0FBQ3NCLFFBQXJCLENBQThCM0IsWUFBWSxDQUFDMEIsSUFBM0MsQ0FERCxJQUVDMUIsWUFBWSxDQUFDRyxPQUFiLEtBQXlCYyxTQUYxQixpQkFHRyw2QkFBQyxvQkFBRCxDQUFNLEtBQU47QUFBWSxJQUFBLFNBQVMsRUFBQztBQUF0QixrQkFDRSw2QkFBQyxvQkFBRCxDQUFNLEtBQU4sUUFBYUssY0FBS0MsQ0FBTCxDQUFPLDRCQUFQLENBQWIsQ0FERixlQUVFLDZCQUFDLDRCQUFEO0FBQThCLElBQUEsR0FBRyxFQUFDO0FBQWxDLGtCQUNFLDZCQUFDLHlCQUFEO0FBQ0UsSUFBQSxPQUFPLEVBQUVZLHNDQURYO0FBRUUsSUFBQSxZQUFZLEVBQUUsc0JBQUNOLEtBQUQ7QUFBQSxhQUNaLHVDQUFjQSxLQUFkLEVBQXFCLEVBQXJCLEVBQXlCN0IsWUFBekIsRUFBdUNNLGtCQUF2QyxDQURZO0FBQUEsS0FGaEI7QUFLRSxJQUFBLFNBQVMsRUFBRU4sWUFBWSxDQUFDRyxPQUFiLENBQXFCZSxjQUxsQztBQU1FLElBQUEsT0FBTyxFQUFFbEIsWUFBWSxDQUFDRyxPQUFiLENBQXFCZSxjQU5oQztBQU9FLElBQUEsSUFBSSxFQUFDO0FBUFAsSUFERixDQUZGLEVBYUdsQixZQUFZLENBQUNHLE9BQWIsQ0FBcUJlLGNBQXJCLEtBQXdDLEtBQXhDLGlCQUNDLDZCQUFDLG9CQUFEO0FBQ0UsSUFBQSxJQUFJLEVBQUUsT0FEUjtBQUVFLElBQUEsUUFBUSxFQUFFLGtCQUFDTSxNQUFELEVBQWlCO0FBQ3pCLDZDQUNFUCxTQURGLEVBRUU7QUFDRUMsUUFBQUEsY0FBYyxFQUNabEIsWUFBWSxDQUFDRyxPQUFiLEtBQXlCYyxTQUF6QixHQUNJakIsWUFBWSxDQUFDRyxPQUFiLENBQXFCZSxjQUR6QixHQUVJLEVBSlI7QUFLRUMsUUFBQUEsR0FBRyxFQUFFSztBQUxQLE9BRkYsRUFTRXhCLFlBVEYsRUFVRU0sa0JBVkY7QUFZRCxLQWZIO0FBZ0JFLElBQUEsWUFBWSxFQUFFLElBaEJoQjtBQWlCRSxJQUFBLE9BQU8sRUFBRSxJQWpCWDtBQWtCRSxJQUFBLGVBQWUsRUFBRSxPQWxCbkI7QUFtQkUsSUFBQSxPQUFPLEVBQUVILE9BQUYsYUFBRUEsT0FBRix1QkFBRUEsT0FBTyxDQUFFc0IsR0FBVCxDQUFhLFVBQUNXLENBQUQ7QUFBQSxhQUFhO0FBQ2pDckIsUUFBQUEsS0FBSyxFQUFFcUIsQ0FBQyxDQUFDRyxNQUFGLENBQVNsQixFQURpQjtBQUVqQ0wsUUFBQUEsS0FBSyxFQUFFb0IsQ0FBQyxDQUFDRyxNQUFGLENBQVN2QjtBQUZpQixPQUFiO0FBQUEsS0FBYixDQW5CWDtBQXVCRSxJQUFBLFlBQVksRUFDVmhCLFlBQVksQ0FBQ0csT0FBYixDQUFxQmdCLEdBQXJCLEtBQTZCLElBQTdCLEdBQ0luQixZQUFZLENBQUNHLE9BQWIsQ0FBcUJnQixHQUFyQixDQUF5Qk0sR0FBekIsQ0FBNkIsVUFBQ1csQ0FBRDtBQUFBLGFBQWE7QUFDeENyQixRQUFBQSxLQUFLLEVBQUVxQixDQUFDLENBQUNmLEVBRCtCO0FBRXhDTCxRQUFBQSxLQUFLLEVBQUVvQixDQUFDLENBQUNGO0FBRitCLE9BQWI7QUFBQSxLQUE3QixDQURKLEdBS0k7QUE3QlIsSUFkSixDQS9NTixlQWlRRSw2QkFBQyxvQkFBRCxDQUFNLEtBQU47QUFBWSxJQUFBLFNBQVMsRUFBQztBQUF0QixrQkFDRSw2QkFBQyxvQkFBRCxDQUFNLEtBQU4sUUFBYVosY0FBS0MsQ0FBTCxDQUFPLGtDQUFQLENBQWIsQ0FERixlQUVFLDZCQUFDLDRCQUFEO0FBQThCLElBQUEsR0FBRyxFQUFDO0FBQWxDLEtBQ0dpQixxQ0FBa0JmLEdBQWxCLENBQXNCLFVBQUNWLEtBQUQsRUFBVztBQUNoQyx3QkFDRSw2QkFBQyxpQkFBRDtBQUNFLE1BQUEsR0FBRyxFQUFFQSxLQUFLLENBQUNDLEtBRGI7QUFFRSxNQUFBLE1BQU0sRUFBRUQsS0FGVjtBQUdFLE1BQUEsWUFBWSxFQUFFLHNCQUFDYyxLQUFEO0FBQUEsZUFDWix1Q0FDRUEsS0FERixFQUVFN0IsWUFGRixFQUdFTSxrQkFIRixFQUlFTSxlQUpGLENBRFk7QUFBQSxPQUhoQjtBQVdFLE1BQUEsU0FBUyxFQUFFWixZQUFZLENBQUN5QyxPQVgxQjtBQVlFLE1BQUEsT0FBTyxFQUFFekMsWUFBWSxDQUFDeUMsT0FaeEI7QUFhRSxNQUFBLElBQUksRUFBQztBQWJQLE1BREY7QUFpQkQsR0FsQkEsQ0FESCxFQW9CR3pDLFlBQVksQ0FBQ3lDLE9BQWIsQ0FBcUJDLFFBQXJCLElBQ0MsQ0FBQ2xDLFdBREYsSUFFQ0csWUFBWSxDQUFDRixJQUZkLElBR0NFLFlBQVksQ0FBQ0QsUUFBYixLQUEwQixVQUgzQixpQkFJRyw2QkFBQyxjQUFEO0FBQ0UsSUFBQSxlQUFlLEVBQUVFLGVBRG5CO0FBRUUsSUFBQSxRQUFRLGVBQ04sNkJBQUMsWUFBRCxxQkFDRSx3Q0FDR1UsY0FBS0MsQ0FBTCxDQUFPLDhDQUFQLENBREgsQ0FERixlQUlFLDZCQUFDLGtCQUFEO0FBQW9CLE1BQUEsS0FBSyxFQUFFb0IsYUFBTUMsV0FBTixDQUFrQkMsT0FBbEIsQ0FBMEJDO0FBQXJELE9BQ0d4QixjQUFLQyxDQUFMLENBQU8sdUJBQVAsQ0FESCxDQUpGO0FBSEosSUF4Qk4sRUF1Q0d2QixZQUFZLENBQUN5QyxPQUFiLENBQXFCTSxHQUFyQixJQUNDLENBQUN4QyxRQURGLElBRUNJLFlBQVksQ0FBQ0YsSUFGZCxJQUdDRSxZQUFZLENBQUNELFFBQWIsS0FBMEIsS0FIM0IsaUJBSUcsNkJBQUMsY0FBRDtBQUNFLElBQUEsZUFBZSxFQUFFRSxlQURuQjtBQUVFLElBQUEsUUFBUSxlQUNOLDZCQUFDLFlBQUQscUJBQ0Usd0NBQUlVLGNBQUtDLENBQUwsQ0FBTywyQ0FBUCxDQUFKLENBREYsZUFFRSw2QkFBQyxrQkFBRDtBQUFvQixNQUFBLEtBQUssRUFBRW9CLGFBQU1DLFdBQU4sQ0FBa0JDLE9BQWxCLENBQTBCQztBQUFyRCxPQUNHeEIsY0FBS0MsQ0FBTCxDQUFPLHVCQUFQLENBREgsQ0FGRjtBQUhKLElBM0NOLENBRkYsQ0FqUUYsRUE0VEd2QixZQUFZLENBQUMwQixJQUFiLEtBQXNCLHNCQUF0QixJQUNDckIsb0JBQW9CLENBQUNzQixRQUFyQixDQUE4QjNCLFlBQVksQ0FBQzBCLElBQTNDLENBREQsaUJBRUcsNkJBQUMsb0JBQUQsQ0FBTSxLQUFOLHFCQUNFLDZCQUFDLG9CQUFELENBQU0sS0FBTjtBQUNFLElBQUEsTUFBTSxNQURSO0FBRUUsSUFBQSxLQUFLLEVBQUVKLGNBQUtDLENBQUwsQ0FBTyx3Q0FBUCxDQUZUO0FBR0UsSUFBQSxJQUFJLEVBQUMsV0FIUDtBQUlFLElBQUEsSUFBSSxFQUFDLFVBSlA7QUFLRSxJQUFBLEVBQUUsRUFBQyxXQUxMO0FBTUUsSUFBQSxRQUFRLEVBQUUsa0JBQUN5QixDQUFEO0FBQUEsYUFBTyxrREFBeUJBLENBQXpCLEVBQTRCMUMsa0JBQTVCLENBQVA7QUFBQSxLQU5aO0FBT0UsSUFBQSxPQUFPLEVBQUVOLFlBQVksQ0FBQ2lEO0FBUHhCLElBREYsQ0E5VE4sQ0FERjtBQTZVRCxDQXpYRDs7ZUEyWGVsRCx3Qjs7O0FBRWYsSUFBTW1ELFlBQVksR0FBR0MsMEJBQU9DLEdBQVY7QUFBQTtBQUFBO0FBQUEsd0pBQWxCOztBQWFBLElBQU1DLGtCQUFrQixHQUFHRiwwQkFBT0MsR0FBVjtBQUFBO0FBQUE7QUFBQSxxSkFRYjtBQUFBLE1BQUdFLEtBQUgsU0FBR0EsS0FBSDtBQUFBLFNBQWVBLEtBQWY7QUFBQSxDQVJhLENBQXhCOztBQVdBLElBQU1DLGdDQUFnQyxHQUFHSiwwQkFBT0MsR0FBVjtBQUFBO0FBQUE7QUFBQSw2ZkFHTjtBQUFBLE1BQUdULEtBQUgsU0FBR0EsS0FBSDtBQUFBLFNBQWVBLEtBQUssQ0FBQ0MsV0FBTixDQUFrQkMsT0FBbEIsQ0FBMEJXLEdBQXpDO0FBQUEsQ0FITSxFQVNyQjtBQUFBLE1BQUdiLEtBQUgsU0FBR0EsS0FBSDtBQUFBLFNBQWVBLEtBQUssQ0FBQ2MsUUFBTixDQUFlQyxFQUE5QjtBQUFBLENBVHFCLEVBVW5CO0FBQUEsTUFBR2YsS0FBSCxTQUFHQSxLQUFIO0FBQUEsU0FBZUEsS0FBSyxDQUFDZ0IsVUFBTixDQUFpQkMsSUFBaEM7QUFBQSxDQVZtQixFQTBCZDtBQUFBLE1BQUdqQixLQUFILFNBQUdBLEtBQUg7QUFBQSxTQUFlQSxLQUFLLENBQUNDLFdBQU4sQ0FBa0JDLE9BQWxCLENBQTBCZ0IsR0FBekM7QUFBQSxDQTFCYyxFQTJCekI7QUFBQSxNQUFHbEIsS0FBSCxTQUFHQSxLQUFIO0FBQUEsU0FBZUEsS0FBSyxDQUFDQyxXQUFOLENBQWtCQyxPQUFsQixDQUEwQmdCLEdBQXpDO0FBQUEsQ0EzQnlCLEVBOEJkO0FBQUEsTUFBR2xCLEtBQUgsU0FBR0EsS0FBSDtBQUFBLFNBQWVBLEtBQUssQ0FBQ0MsV0FBTixDQUFrQmtCLE9BQWxCLENBQTBCQyxFQUF6QztBQUFBLENBOUJjLEVBK0J6QjtBQUFBLE1BQUdwQixLQUFILFNBQUdBLEtBQUg7QUFBQSxTQUFlQSxLQUFLLENBQUNDLFdBQU4sQ0FBa0JrQixPQUFsQixDQUEwQkMsRUFBekM7QUFBQSxDQS9CeUIsRUFrQ2Q7QUFBQSxNQUFHcEIsS0FBSCxVQUFHQSxLQUFIO0FBQUEsU0FBZUEsS0FBSyxDQUFDQyxXQUFOLENBQWtCb0IsSUFBbEIsQ0FBdUJDLElBQXRDO0FBQUEsQ0FsQ2MsRUFtQ3pCO0FBQUEsTUFBR3RCLEtBQUgsVUFBR0EsS0FBSDtBQUFBLFNBQWVBLEtBQUssQ0FBQ0MsV0FBTixDQUFrQm9CLElBQWxCLENBQXVCQyxJQUF0QztBQUFBLENBbkN5QixFQXNDZDtBQUFBLE1BQUd0QixLQUFILFVBQUdBLEtBQUg7QUFBQSxTQUFlQSxLQUFLLENBQUNDLFdBQU4sQ0FBa0JvQixJQUFsQixDQUF1QkUsSUFBdEM7QUFBQSxDQXRDYyxFQXVDekI7QUFBQSxNQUFHdkIsS0FBSCxVQUFHQSxLQUFIO0FBQUEsU0FBZUEsS0FBSyxDQUFDQyxXQUFOLENBQWtCb0IsSUFBbEIsQ0FBdUJFLElBQXRDO0FBQUEsQ0F2Q3lCLENBQXRDOztBQW1EQSxJQUFNQyw0QkFBNEIsR0FBR2hCLDBCQUFPQyxHQUFWO0FBQUE7QUFBQTtBQUFBLGlEQUV6QjtBQUFBLE1BQUdnQixHQUFILFVBQUdBLEdBQUg7QUFBQSxTQUFhQSxHQUFHLEdBQUcsSUFBbkI7QUFBQSxDQUZ5QixDQUFsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cy9tYWNybyc7XG5pbXBvcnQgeyBGb3JtIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQge1xuICBOb3RpZmljYXRpb24sXG4gIHNldmVyaXRpZXNSYWRpb0J1dHRvbnMsXG4gIHdhdGVyQXV0aG9yaXRpZXNSYWRpb0J1dHRvbnMsXG4gIHNvdXJjZXNSYWRpb0J1dHRvbnMsXG4gIHNlbmRWaWFDaGVja0JveGVzLFxuICBBZHZhbmNlZFNlbGVjdGlvbixcbn0gZnJvbSAnc3JjL3BhZ2VzL05vdGlmaWNhdGlvbnNQYWdlVjIvbm90aWZpY2F0aW9uVXRpbHMnO1xuaW1wb3J0IENoZWNrYm94IGZyb20gJ3NyYy91aS1raXQvQ2hlY2tib3gvQ2hlY2tib3gnO1xuaW1wb3J0IFJhZGlvQnV0dG9uR3JvdXAgZnJvbSAnc3JjL3VpLWtpdC9SYWRpb0J1dHRvbnMvUmFkaW9CdXR0b25Hcm91cCc7XG5pbXBvcnQgU2VsZWN0IGZyb20gJ3JlYWN0LXNlbGVjdCc7XG5pbXBvcnQge1xuICBoYW5kbGVOb3RpZmljYXRpb25TYW1wbGUsXG4gIGhhbmRsZU5vdGlmaWNhdGlvblR5cGUsXG4gIGhhbmRsZVNlbmRWaWEsXG4gIGhhbmRsZVNlbnNvcnMsXG4gIGhhbmRsZVNldmVyaXRpZXMsXG4gIGhhbmRsZVNvdXJjZXMsXG4gIGhhbmRsZVRhZ3MsXG4gIGhhbmRsZVdhdGVyQXV0aG9yaXRpZXMsXG59IGZyb20gJy4uL05vdGlmaWNhdGlvbnNVdGlscyc7XG5pbXBvcnQgQWxlcnQgZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL0FsZXJ0JztcbmltcG9ydCB7IEFsZXJ0RGV0YWlscyB9IGZyb20gJy4uLy4uLy4uL1NhbXBsaW5nc1BhZ2UvU2FtcGxpbmdQcm9wZXJ0aWVzL3NhbXBsaW5nUHJvcGVydGllc1V0aWxzJztcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3R5bGVzL3RoZW1lL3RoZW1lJztcblxuaW50ZXJmYWNlIG5vdGlmaWNhdGlvbkZvcm1Db250ZW50UHJvcHMge1xuICBub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbjtcbiAgcG9pbnRzOiBBZHZhbmNlZFNlbGVjdGlvbltdO1xuICB0YWdzOiBBZHZhbmNlZFNlbGVjdGlvbltdO1xuICBzZW5zb3JzOiBBZHZhbmNlZFNlbGVjdGlvbltdO1xuICB3YXRlckF1dGhvcml0aWVzOiBBZHZhbmNlZFNlbGVjdGlvbltdO1xuICBhbGxvd2VkTm90aWZpY2F0aW9uczogc3RyaW5nW107XG4gIHNldE5ld05vdGlmaWNhdGlvbjogYW55O1xuICBoYXNQaG9uZTogYm9vbGVhbjtcbiAgaGFzVGVsZWdyYW06IGJvb2xlYW47XG59XG5cbmNvbnN0IE5vdGlmaWNhdGlvbnNGb3JtQ29udGVudDogUmVhY3QuRkM8bm90aWZpY2F0aW9uRm9ybUNvbnRlbnRQcm9wcz4gPSAoe1xuICBub3RpZmljYXRpb24sXG4gIHBvaW50cyxcbiAgdGFncyxcbiAgc2Vuc29ycyxcbiAgd2F0ZXJBdXRob3JpdGllcyxcbiAgYWxsb3dlZE5vdGlmaWNhdGlvbnMsXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbiAgaGFzUGhvbmUsXG4gIGhhc1RlbGVncmFtLFxufSkgPT4ge1xuICBjb25zdCBbbW9kYWxEZXRhaWxzLCBzZXRNb2RhbERldGFpbHNdID0gdXNlU3RhdGU8QWxlcnREZXRhaWxzPih7XG4gICAgb3BlbjogZmFsc2UsXG4gICAgaW5zdGFuY2U6ICcnLFxuICB9KTtcblxuICBjb25zdCBkZWZhdWx0V2F0ZXJBdXRob3JpdHlJZlNpbmdsZSA9ICgpID0+IHtcbiAgICBpZiAod2F0ZXJBdXRob3JpdGllcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGhhbmRsZU5vdGlmaWNhdGlvblR5cGUoXG4gICAgICAgIHsgdmFsdWU6ICdQb2xsdXRpb25BbGVydENvbmZpZycsIGxhYmVsOiAnUG9sbHV0aW9uIEV2ZW50JyB9LFxuICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICk7XG4gICAgICBoYW5kbGVXYXRlckF1dGhvcml0aWVzKFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHtcbiAgICAgICAgICBzZWxlY3Rpb25fdHlwZTogJ2luY2x1ZGUnLFxuICAgICAgICAgIHNldDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YWx1ZTogd2F0ZXJBdXRob3JpdGllc1swXS53YXRlcl9hdXRob3JpdHkuaWQsXG4gICAgICAgICAgICAgIGxhYmVsOiB3YXRlckF1dGhvcml0aWVzWzBdLndhdGVyX2F1dGhvcml0eS5sYWJlbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgICBzZXROZXdOb3RpZmljYXRpb24sXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRlZmF1bHRXYXRlckF1dGhvcml0eUlmU2luZ2xlKCk7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDxOb3RpZmljYXRpb25TaWRlYmFyRm9ybUFyZWFTdHlsZT5cbiAgICAgIDxGb3JtLkdyb3VwIGNvbnRyb2xJZD1cIm5vdGlmaWNhdGlvbi10eXBlXCI+XG4gICAgICAgIDxGb3JtLkxhYmVsPntpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3R5cGUnKX08L0Zvcm0uTGFiZWw+XG4gICAgICAgIDxTZWxlY3RcbiAgICAgICAgICBvbkNoYW5nZT17KG9wdGlvbikgPT5cbiAgICAgICAgICAgIGhhbmRsZU5vdGlmaWNhdGlvblR5cGUob3B0aW9uLCBub3RpZmljYXRpb24sIHNldE5ld05vdGlmaWNhdGlvbilcbiAgICAgICAgICB9XG4gICAgICAgICAgbmFtZT17J3R5cGUnfVxuICAgICAgICAgIG9wdGlvbnM9e2FsbG93ZWROb3RpZmljYXRpb25zIS5tYXAoKHR5cGU6IGFueSkgPT4gKHtcbiAgICAgICAgICAgIHZhbHVlOiB0eXBlLFxuICAgICAgICAgICAgbGFiZWw6IGkxOG4udChgbm90aWZpY2F0aW9uc19wYWdlLiR7dHlwZX1gKSxcbiAgICAgICAgICB9KSl9XG4gICAgICAgICAgZGVmYXVsdFZhbHVlPXtcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbi50eXBlICE9PSAnJ1xuICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBub3RpZmljYXRpb24udHlwZSxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpMThuLnQoYG5vdGlmaWNhdGlvbnNfcGFnZS4ke25vdGlmaWNhdGlvbi50eXBlfWApLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICB2YWx1ZTogJ1BvbGx1dGlvbkFsZXJ0Q29uZmlnJyxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpMThuLnQoYG5vdGlmaWNhdGlvbnNfcGFnZS5Qb2xsdXRpb25BbGVydENvbmZpZ2ApLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIC8+XG4gICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICB7bm90aWZpY2F0aW9uLnR5cGUgPT09ICdQb2xsdXRpb25BbGVydENvbmZpZycgJiZcbiAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnMuaW5jbHVkZXMobm90aWZpY2F0aW9uLnR5cGUpICYmIChcbiAgICAgICAgICA8Rm9ybS5Hcm91cCBjb250cm9sSWQ9XCJub3RpZmljYXRpb24tc2V2ZXJpdHlcIj5cbiAgICAgICAgICAgIDxGb3JtLkxhYmVsPlxuICAgICAgICAgICAgICB7aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9zZXZlcml0eScpfVxuICAgICAgICAgICAgPC9Gb3JtLkxhYmVsPlxuICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMTBcIj5cbiAgICAgICAgICAgICAgPFJhZGlvQnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgICBvcHRpb25zPXtzZXZlcml0aWVzUmFkaW9CdXR0b25zfVxuICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17KGV2ZW50KSA9PlxuICAgICAgICAgICAgICAgICAgaGFuZGxlU2V2ZXJpdGllcyhldmVudCwgc2V0TmV3Tm90aWZpY2F0aW9uKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e25vdGlmaWNhdGlvbi5zZXZlcml0eX1cbiAgICAgICAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24uc2V2ZXJpdHl9XG4gICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICAgICl9XG4gICAgICB7d2F0ZXJBdXRob3JpdGllcy5sZW5ndGggPiAxICYmIChcbiAgICAgICAgPEZvcm0uR3JvdXAgY29udHJvbElkPVwibm90aWZpY2F0aW9uLXdhdGVyLWF1dGhvcml0aWVzXCI+XG4gICAgICAgICAgPEZvcm0uTGFiZWw+XG4gICAgICAgICAgICB7aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2Uud2F0ZXJfYXV0aG9yaXRpZXMnKX1cbiAgICAgICAgICA8L0Zvcm0uTGFiZWw+XG4gICAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMFwiPlxuICAgICAgICAgICAgPFJhZGlvQnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgb3B0aW9ucz17d2F0ZXJBdXRob3JpdGllc1JhZGlvQnV0dG9uc31cbiAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlPXsoZXZlbnQpID0+XG4gICAgICAgICAgICAgICAgaGFuZGxlV2F0ZXJBdXRob3JpdGllcyhcbiAgICAgICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICBzZXROZXdOb3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17bm90aWZpY2F0aW9uLndhdGVyX2F1dGhvcml0aWVzLnNlbGVjdGlvbl90eXBlfVxuICAgICAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24ud2F0ZXJfYXV0aG9yaXRpZXMuc2VsZWN0aW9uX3R5cGV9XG4gICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgICAgICB7bm90aWZpY2F0aW9uLndhdGVyX2F1dGhvcml0aWVzLnNlbGVjdGlvbl90eXBlICE9PSAnYWxsJyAmJlxuICAgICAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnMuaW5jbHVkZXMobm90aWZpY2F0aW9uLnR5cGUpICYmIChcbiAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgIG5hbWU9eyd3YXRlcl9hdXRob3JpdHknfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsob3B0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgIGhhbmRsZVdhdGVyQXV0aG9yaXRpZXMoXG4gICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbl90eXBlOlxuICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uLndhdGVyX2F1dGhvcml0aWVzLnNlbGVjdGlvbl90eXBlLFxuICAgICAgICAgICAgICAgICAgICAgIHNldDogb3B0aW9uLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBpc1NlYXJjaGFibGU9e3RydWV9XG4gICAgICAgICAgICAgICAgaXNNdWx0aT17dHJ1ZX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWVQcmVmaXg9eyd3YXRlcl9hdXRob3JpdHknfVxuICAgICAgICAgICAgICAgIG9wdGlvbnM9e3dhdGVyQXV0aG9yaXRpZXM/Lm1hcCgod2E6IGFueSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiB3YS53YXRlcl9hdXRob3JpdHkuaWQsXG4gICAgICAgICAgICAgICAgICBsYWJlbDogd2Eud2F0ZXJfYXV0aG9yaXR5LmxhYmVsLFxuICAgICAgICAgICAgICAgIH0pKX1cbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e1xuICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uLndhdGVyX2F1dGhvcml0aWVzLnNldCAhPT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICA/IG5vdGlmaWNhdGlvbi53YXRlcl9hdXRob3JpdGllcy5zZXQubWFwKCh3YTogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHdhLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHdhLnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgIDogW11cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICApfVxuICAgICAge25vdGlmaWNhdGlvbi50eXBlICE9PSAnV2JlV2Vla2x5RGlnZXN0QWxlcnRDb25maWcnICYmXG4gICAgICAgIG5vdGlmaWNhdGlvbi50eXBlICE9PSAnRGF0YWxvZ2dlclRocmVzaG9sZEFsZXJ0Q29uZmlnJyAmJlxuICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiYgKFxuICAgICAgICAgIDxGb3JtLkdyb3VwIGNvbnRyb2xJZD1cIm5vdGlmaWNhdGlvbi1zb3VyY2VzXCI+XG4gICAgICAgICAgICA8Rm9ybS5MYWJlbD57aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2Uuc291cmNlcycpfTwvRm9ybS5MYWJlbD5cbiAgICAgICAgICAgIDxOb3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlIGdhcD1cIjBcIj5cbiAgICAgICAgICAgICAgPFJhZGlvQnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgICBvcHRpb25zPXtzb3VyY2VzUmFkaW9CdXR0b25zfVxuICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17KGV2ZW50KSA9PlxuICAgICAgICAgICAgICAgICAgaGFuZGxlU291cmNlcyhldmVudCwgJycsIG5vdGlmaWNhdGlvbiwgc2V0TmV3Tm90aWZpY2F0aW9uKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e25vdGlmaWNhdGlvbi5wb2ludHMuc2VsZWN0aW9uX3R5cGV9XG4gICAgICAgICAgICAgICAgY2hlY2tlZD17bm90aWZpY2F0aW9uLnBvaW50cy5zZWxlY3Rpb25fdHlwZX1cbiAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Ob3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlPlxuICAgICAgICAgICAge25vdGlmaWNhdGlvbi5wb2ludHMuc2VsZWN0aW9uX3R5cGUgIT09ICdhbGwnICYmIChcbiAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgIG5hbWU9eydwb2ludCd9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhvcHRpb246IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaGFuZGxlU291cmNlcyhcbiAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uX3R5cGU6IG5vdGlmaWNhdGlvbi5wb2ludHMuc2VsZWN0aW9uX3R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgc2V0OiBvcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGlzU2VhcmNoYWJsZT17dHJ1ZX1cbiAgICAgICAgICAgICAgICBpc011bHRpPXt0cnVlfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZVByZWZpeD17J3BvaW50J31cbiAgICAgICAgICAgICAgICBvcHRpb25zPXtwb2ludHM/Lm1hcCgocDogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgdmFsdWU6IHAucG9pbnQuaWQsXG4gICAgICAgICAgICAgICAgICBsYWJlbDogcC5wb2ludC5sYWJlbCxcbiAgICAgICAgICAgICAgICB9KSl9XG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtcbiAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi5wb2ludHMuc2V0ICE9PSBudWxsXG4gICAgICAgICAgICAgICAgICAgID8gbm90aWZpY2F0aW9uLnBvaW50cy5zZXQubWFwKChwOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBwLnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgIDogW11cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgICAgKX1cblxuICAgICAge25vdGlmaWNhdGlvbi50eXBlID09PSAnV2JlV2Vla2x5RGlnZXN0QWxlcnRDb25maWcnICYmXG4gICAgICAgIG5vdGlmaWNhdGlvbi50YWdzICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnMuaW5jbHVkZXMobm90aWZpY2F0aW9uLnR5cGUpICYmIChcbiAgICAgICAgICA8Rm9ybS5Hcm91cCBjb250cm9sSWQ9XCJub3RpZmljYXRpb24tdGFnc1wiPlxuICAgICAgICAgICAgPEZvcm0uTGFiZWw+e2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLnRhZ3MnKX08L0Zvcm0uTGFiZWw+XG4gICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZSBnYXA9XCIwXCI+XG4gICAgICAgICAgICAgIDxSYWRpb0J1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgb3B0aW9ucz17c291cmNlc1JhZGlvQnV0dG9uc31cbiAgICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2U9eyhldmVudCkgPT5cbiAgICAgICAgICAgICAgICAgIGhhbmRsZVRhZ3MoZXZlbnQsICcnLCBub3RpZmljYXRpb24sIHNldE5ld05vdGlmaWNhdGlvbilcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtub3RpZmljYXRpb24udGFncy5zZWxlY3Rpb25fdHlwZX1cbiAgICAgICAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24udGFncy5zZWxlY3Rpb25fdHlwZX1cbiAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Ob3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlPlxuICAgICAgICAgICAge25vdGlmaWNhdGlvbi50YWdzLnNlbGVjdGlvbl90eXBlICE9PSAnYWxsJyAmJlxuICAgICAgICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiYgKFxuICAgICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICAgIG5hbWU9eydwb2ludCd9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KG9wdGlvbjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZVRhZ3MoXG4gICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbl90eXBlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24udGFncyAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBub3RpZmljYXRpb24udGFncy5zZWxlY3Rpb25fdHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogW10sXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXQ6IG9wdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICBzZXROZXdOb3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgaXNTZWFyY2hhYmxlPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgaXNNdWx0aT17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZVByZWZpeD17J3BvaW50J31cbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM9e3RhZ3M/Lm1hcCgocDogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcC50YWcuaWQsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBwLnRhZy5sYWJlbCxcbiAgICAgICAgICAgICAgICAgIH0pKX1cbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17XG4gICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi50YWdzLnNldCAhPT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgID8gbm90aWZpY2F0aW9uLnRhZ3Muc2V0Lm1hcCgocDogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHAudGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICAgICAgIDogW11cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgICAgKX1cblxuICAgICAge25vdGlmaWNhdGlvbi50eXBlID09PSAnRGF0YWxvZ2dlclRocmVzaG9sZEFsZXJ0Q29uZmlnJyAmJlxuICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiZcbiAgICAgICAgbm90aWZpY2F0aW9uLnNlbnNvcnMgIT09IHVuZGVmaW5lZCAmJiAoXG4gICAgICAgICAgPEZvcm0uR3JvdXAgY29udHJvbElkPVwibm90aWZpY2F0aW9uLXNlbnNvcnNcIj5cbiAgICAgICAgICAgIDxGb3JtLkxhYmVsPntpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5zZW5zb3JzJyl9PC9Gb3JtLkxhYmVsPlxuICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMFwiPlxuICAgICAgICAgICAgICA8UmFkaW9CdXR0b25Hcm91cFxuICAgICAgICAgICAgICAgIG9wdGlvbnM9e3NvdXJjZXNSYWRpb0J1dHRvbnN9XG4gICAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlPXsoZXZlbnQpID0+XG4gICAgICAgICAgICAgICAgICBoYW5kbGVTZW5zb3JzKGV2ZW50LCAnJywgbm90aWZpY2F0aW9uLCBzZXROZXdOb3RpZmljYXRpb24pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17bm90aWZpY2F0aW9uLnNlbnNvcnMuc2VsZWN0aW9uX3R5cGV9XG4gICAgICAgICAgICAgICAgY2hlY2tlZD17bm90aWZpY2F0aW9uLnNlbnNvcnMuc2VsZWN0aW9uX3R5cGV9XG4gICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgICAgICAgIHtub3RpZmljYXRpb24uc2Vuc29ycy5zZWxlY3Rpb25fdHlwZSAhPT0gJ2FsbCcgJiYgKFxuICAgICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgbmFtZT17J3BvaW50J31cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KG9wdGlvbjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICBoYW5kbGVTZW5zb3JzKFxuICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25fdHlwZTpcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi5zZW5zb3JzICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBub3RpZmljYXRpb24uc2Vuc29ycy5zZWxlY3Rpb25fdHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IFtdLFxuICAgICAgICAgICAgICAgICAgICAgIHNldDogb3B0aW9uLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBpc1NlYXJjaGFibGU9e3RydWV9XG4gICAgICAgICAgICAgICAgaXNNdWx0aT17dHJ1ZX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWVQcmVmaXg9eydwb2ludCd9XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17c2Vuc29ycz8ubWFwKChwOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgICB2YWx1ZTogcC5zZW5zb3IuaWQsXG4gICAgICAgICAgICAgICAgICBsYWJlbDogcC5zZW5zb3IubGFiZWwsXG4gICAgICAgICAgICAgICAgfSkpfVxuICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17XG4gICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24uc2Vuc29ycy5zZXQgIT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgPyBub3RpZmljYXRpb24uc2Vuc29ycy5zZXQubWFwKChwOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBwLnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgIDogW11cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgICAgKX1cblxuICAgICAgPEZvcm0uR3JvdXAgY29udHJvbElkPVwibm90aWZpY2F0aW9uLXNlbmRcIj5cbiAgICAgICAgPEZvcm0uTGFiZWw+e2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfc2VuZF92aWEnKX08L0Zvcm0uTGFiZWw+XG4gICAgICAgIDxOb3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlIGdhcD1cIjEwXCI+XG4gICAgICAgICAge3NlbmRWaWFDaGVja0JveGVzLm1hcCgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxDaGVja2JveFxuICAgICAgICAgICAgICAgIGtleT17dmFsdWUubGFiZWx9XG4gICAgICAgICAgICAgICAgb3B0aW9uPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2U9eyhldmVudCkgPT5cbiAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbmRWaWEoXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgc2V0TW9kYWxEZXRhaWxzLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e25vdGlmaWNhdGlvbi5hY3Rpb25zfVxuICAgICAgICAgICAgICAgIGNoZWNrZWQ9e25vdGlmaWNhdGlvbi5hY3Rpb25zfVxuICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pfVxuICAgICAgICAgIHtub3RpZmljYXRpb24uYWN0aW9ucy50ZWxlZ3JhbSAmJlxuICAgICAgICAgICAgIWhhc1RlbGVncmFtICYmXG4gICAgICAgICAgICBtb2RhbERldGFpbHMub3BlbiAmJlxuICAgICAgICAgICAgbW9kYWxEZXRhaWxzLmluc3RhbmNlID09PSAndGVsZWdyYW0nICYmIChcbiAgICAgICAgICAgICAgPEFsZXJ0XG4gICAgICAgICAgICAgICAgc2V0TW9kYWxEZXRhaWxzPXtzZXRNb2RhbERldGFpbHN9XG4gICAgICAgICAgICAgICAgY2hpbGRyZW49e1xuICAgICAgICAgICAgICAgICAgPEFsZXJ0Q29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfc2VuZF92aWFfbm9fdGVsZWdyYW0nKX1cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8TW9kYWxBY3Rpb25zQnV0dG9uIGNvbG9yPXt0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm42MH0+XG4gICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLm9rJyl9XG4gICAgICAgICAgICAgICAgICAgIDwvTW9kYWxBY3Rpb25zQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9BbGVydENvbnRlbnQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgIHtub3RpZmljYXRpb24uYWN0aW9ucy5zbXMgJiZcbiAgICAgICAgICAgICFoYXNQaG9uZSAmJlxuICAgICAgICAgICAgbW9kYWxEZXRhaWxzLm9wZW4gJiZcbiAgICAgICAgICAgIG1vZGFsRGV0YWlscy5pbnN0YW5jZSA9PT0gJ3NtcycgJiYgKFxuICAgICAgICAgICAgICA8QWxlcnRcbiAgICAgICAgICAgICAgICBzZXRNb2RhbERldGFpbHM9e3NldE1vZGFsRGV0YWlsc31cbiAgICAgICAgICAgICAgICBjaGlsZHJlbj17XG4gICAgICAgICAgICAgICAgICA8QWxlcnRDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8cD57aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9zZW5kX3ZpYV9ub19waG9uZScpfTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPE1vZGFsQWN0aW9uc0J1dHRvbiBjb2xvcj17dGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uNjB9PlxuICAgICAgICAgICAgICAgICAgICAgIHtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5vaycpfVxuICAgICAgICAgICAgICAgICAgICA8L01vZGFsQWN0aW9uc0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvQWxlcnRDb250ZW50PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgIHtub3RpZmljYXRpb24udHlwZSA9PT0gJ1BvbGx1dGlvbkFsZXJ0Q29uZmlnJyAmJlxuICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiYgKFxuICAgICAgICAgIDxGb3JtLkdyb3VwPlxuICAgICAgICAgICAgPEZvcm0uQ2hlY2tcbiAgICAgICAgICAgICAgaW5saW5lXG4gICAgICAgICAgICAgIGxhYmVsPXtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3NhbXBsZXJfYWN0aXZlJyl9XG4gICAgICAgICAgICAgIG5hbWU9XCJwdW1wX29ubHlcIlxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICBpZD1cInB1bXBfb25seVwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlTm90aWZpY2F0aW9uU2FtcGxlKGUsIHNldE5ld05vdGlmaWNhdGlvbil9XG4gICAgICAgICAgICAgIGNoZWNrZWQ9e25vdGlmaWNhdGlvbi5wdW1wX29ubHl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgICAgKX1cbiAgICA8L05vdGlmaWNhdGlvblNpZGViYXJGb3JtQXJlYVN0eWxlPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTm90aWZpY2F0aW9uc0Zvcm1Db250ZW50O1xuXG5jb25zdCBBbGVydENvbnRlbnQgPSBzdHlsZWQuZGl2YFxuICBwIHtcbiAgICBwYWRkaW5nOiAzMHB4IDMwcHggMCAzMHB4O1xuICB9XG5cbiAgZGlzcGxheTogZmxleDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMDAlO1xuYDtcblxuY29uc3QgTW9kYWxBY3Rpb25zQnV0dG9uID0gc3R5bGVkLmRpdmBcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNhOGE4YWE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgaGVpZ2h0OiA0NXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHsoeyBjb2xvciB9KSA9PiBjb2xvcn07XG5gO1xuXG5jb25zdCBOb3RpZmljYXRpb25TaWRlYmFyRm9ybUFyZWFTdHlsZSA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiA3MnZoO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDNweCAxcHggJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm4zMH07XG4gIHBhZGRpbmc6IDEwcHggMzBweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5mb250U2l6ZS5tZH07XG4gICAgZm9udC13ZWlnaHQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuZm9udFdlaWdodC53NjAwfTtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAuZm9ybS1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgLmFsbCxcbiAgLmluY2x1ZGUsXG4gIC5leGNsdWRlLFxuICAudGVsZWdyYW0sXG4gIC5lbWFpbCxcbiAgLnNtcyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm44MH07XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uODB9O1xuICB9XG4gIC5leHRyZW1lIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLnByaW1hcnkucDF9O1xuICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLnByaW1hcnkucDF9O1xuICB9XG4gIC5oaWdoIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLmRhdGEuTzEwMH07XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUuZGF0YS5PMTAwfTtcbiAgfVxuICAubWVkaXVtIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLmRhdGEuVzEwMH07XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUuZGF0YS5XMTAwfTtcbiAgfVxuXG4gIC5mb3JtLWNoZWNrLWlubGluZSB7XG4gICAgYWxpZ24taXRlbXM6IHNlbGYtc3RhcnQgIWltcG9ydGFudDtcblxuICAgIGlucHV0IHtcbiAgICAgIG1hcmdpbi10b3A6IDdweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZSA9IHN0eWxlZC5kaXY8eyBnYXA6IHN0cmluZyB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAkeyh7IGdhcCB9KSA9PiBnYXAgKyAncHgnfTtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuYDtcbiJdfQ==
349
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9Ob3RpZmljYXRpb25zUGFnZVYyL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uc0Zvcm0vTm90aWZpY2F0aW9uc0Zvcm1Db250ZW50LnRzeCJdLCJuYW1lcyI6WyJOb3RpZmljYXRpb25zRm9ybUNvbnRlbnQiLCJub3RpZmljYXRpb24iLCJwb2ludHMiLCJ0YWdzIiwic2Vuc29ycyIsIndhdGVyQXV0aG9yaXRpZXMiLCJhbGxvd2VkTm90aWZpY2F0aW9ucyIsInNldE5ld05vdGlmaWNhdGlvbiIsImhhc1Bob25lIiwiaGFzVGVsZWdyYW0iLCJvcGVuIiwiaW5zdGFuY2UiLCJtb2RhbERldGFpbHMiLCJzZXRNb2RhbERldGFpbHMiLCJkZWZhdWx0V2F0ZXJBdXRob3JpdHlJZlNpbmdsZSIsImxlbmd0aCIsInZhbHVlIiwibGFiZWwiLCJ1bmRlZmluZWQiLCJzZWxlY3Rpb25fdHlwZSIsInNldCIsIndhdGVyX2F1dGhvcml0eSIsImlkIiwiaTE4biIsInQiLCJvcHRpb24iLCJtYXAiLCJ0eXBlIiwiaW5jbHVkZXMiLCJzZXZlcml0aWVzUmFkaW9CdXR0b25zIiwiZXZlbnQiLCJzZXZlcml0eSIsIndhdGVyQXV0aG9yaXRpZXNSYWRpb0J1dHRvbnMiLCJ3YXRlcl9hdXRob3JpdGllcyIsIndhIiwidGV4dCIsInNvdXJjZXNSYWRpb0J1dHRvbnMiLCJwIiwicG9pbnQiLCJ0YWciLCJzZW5zb3IiLCJzZW5kVmlhQ2hlY2tCb3hlcyIsImFjdGlvbnMiLCJ0ZWxlZ3JhbSIsInRoZW1lIiwiY29sb3JTY2hlbWUiLCJuYXR1cmFsIiwibjYwIiwic21zIiwiZSIsInB1bXBfb25seSIsIkFsZXJ0Q29udGVudCIsInN0eWxlZCIsImRpdiIsIk1vZGFsQWN0aW9uc0J1dHRvbiIsImNvbG9yIiwiTm90aWZpY2F0aW9uU2lkZWJhckZvcm1BcmVhU3R5bGUiLCJuMzAiLCJmb250U2l6ZSIsIm1kIiwiZm9udFdlaWdodCIsInc2MDAiLCJuODAiLCJwcmltYXJ5IiwicDEiLCJkYXRhIiwiTzEwMCIsIlcxMDAiLCJOb3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlIiwiZ2FwIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFRQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFVQTs7QUFFQTs7Ozs7O0FBY0EsSUFBTUEsd0JBQWdFLEdBQUcsU0FBbkVBLHdCQUFtRSxPQVVuRTtBQUFBLE1BVEpDLFlBU0ksUUFUSkEsWUFTSTtBQUFBLE1BUkpDLE1BUUksUUFSSkEsTUFRSTtBQUFBLE1BUEpDLElBT0ksUUFQSkEsSUFPSTtBQUFBLE1BTkpDLE9BTUksUUFOSkEsT0FNSTtBQUFBLE1BTEpDLGdCQUtJLFFBTEpBLGdCQUtJO0FBQUEsTUFKSkMsb0JBSUksUUFKSkEsb0JBSUk7QUFBQSxNQUhKQyxrQkFHSSxRQUhKQSxrQkFHSTtBQUFBLE1BRkpDLFFBRUksUUFGSkEsUUFFSTtBQUFBLE1BREpDLFdBQ0ksUUFESkEsV0FDSTs7QUFDSixrQkFBd0MscUJBQXVCO0FBQzdEQyxJQUFBQSxJQUFJLEVBQUUsS0FEdUQ7QUFFN0RDLElBQUFBLFFBQVEsRUFBRTtBQUZtRCxHQUF2QixDQUF4QztBQUFBO0FBQUEsTUFBT0MsWUFBUDtBQUFBLE1BQXFCQyxlQUFyQjs7QUFLQSxNQUFNQyw2QkFBNkIsR0FBRyxTQUFoQ0EsNkJBQWdDLEdBQU07QUFDMUMsUUFBSVQsZ0JBQWdCLENBQUNVLE1BQWpCLEtBQTRCLENBQWhDLEVBQW1DO0FBQ2pDLHNEQUNFO0FBQUVDLFFBQUFBLEtBQUssRUFBRSxzQkFBVDtBQUFpQ0MsUUFBQUEsS0FBSyxFQUFFO0FBQXhDLE9BREYsRUFFRWhCLFlBRkYsRUFHRU0sa0JBSEY7QUFLQSxzREFDRVcsU0FERixFQUVFO0FBQ0VDLFFBQUFBLGNBQWMsRUFBRSxTQURsQjtBQUVFQyxRQUFBQSxHQUFHLEVBQUUsQ0FDSDtBQUNFSixVQUFBQSxLQUFLLEVBQUVYLGdCQUFnQixDQUFDLENBQUQsQ0FB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L0J5QixFQWtDZDtBQUFBLE1BQUdwQixLQUFILFVBQUdBLEtBQUg7QUFBQSxTQUFlQSxLQUFLLENBQUNDLFdBQU4sQ0FBa0JvQixJQUFsQixDQUF1QkMsSUFBdEM7QUFBQSxDQWxDYyxFQW1DekI7QUFBQSxNQUFHdEIsS0FBSCxVQUFHQSxLQUFIO0FBQUEsU0FBZUEsS0FBSyxDQUFDQyxXQUFOLENBQWtCb0IsSUFBbEIsQ0FBdUJDLElBQXRDO0FBQUEsQ0FuQ3lCLEVBc0NkO0FBQUEsTUFBR3RCLEtBQUgsVUFBR0EsS0FBSDtBQUFBLFNBQWVBLEtBQUssQ0FBQ0MsV0FBTixDQUFrQm9CLElBQWxCLENBQXVCRSxJQUF0QztBQUFBLENBdENjLEVBdUN6QjtBQUFBLE1BQUd2QixLQUFILFVBQUdBLEtBQUg7QUFBQSxTQUFlQSxLQUFLLENBQUNDLFdBQU4sQ0FBa0JvQixJQUFsQixDQUF1QkUsSUFBdEM7QUFBQSxDQXZDeUIsQ0FBdEM7O0FBbURBLElBQU1DLDRCQUE0QixHQUFHaEIsMEJBQU9DLEdBQVY7QUFBQTtBQUFBO0FBQUEsaURBRXpCO0FBQUEsTUFBR2dCLEdBQUgsVUFBR0EsR0FBSDtBQUFBLFNBQWFBLEdBQUcsR0FBRyxJQUFuQjtBQUFBLENBRnlCLENBQWxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCB7IEZvcm0gfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7XG4gIE5vdGlmaWNhdGlvbixcbiAgc2V2ZXJpdGllc1JhZGlvQnV0dG9ucyxcbiAgd2F0ZXJBdXRob3JpdGllc1JhZGlvQnV0dG9ucyxcbiAgc291cmNlc1JhZGlvQnV0dG9ucyxcbiAgc2VuZFZpYUNoZWNrQm94ZXMsXG4gIEFkdmFuY2VkU2VsZWN0aW9uLFxufSBmcm9tICdzcmMvcGFnZXMvTm90aWZpY2F0aW9uc1BhZ2VWMi9ub3RpZmljYXRpb25VdGlscyc7XG5pbXBvcnQgQ2hlY2tib3ggZnJvbSAnc3JjL3VpLWtpdC9DaGVja2JveC9DaGVja2JveCc7XG5pbXBvcnQgUmFkaW9CdXR0b25Hcm91cCBmcm9tICdzcmMvdWkta2l0L1JhZGlvQnV0dG9ucy9SYWRpb0J1dHRvbkdyb3VwJztcbmltcG9ydCBTZWxlY3QgZnJvbSAncmVhY3Qtc2VsZWN0JztcbmltcG9ydCB7XG4gIGhhbmRsZU5vdGlmaWNhdGlvblNhbXBsZSxcbiAgaGFuZGxlTm90aWZpY2F0aW9uVHlwZSxcbiAgaGFuZGxlU2VuZFZpYSxcbiAgaGFuZGxlU2Vuc29ycyxcbiAgaGFuZGxlU2V2ZXJpdGllcyxcbiAgaGFuZGxlU291cmNlcyxcbiAgaGFuZGxlVGFncyxcbiAgaGFuZGxlV2F0ZXJBdXRob3JpdGllcyxcbn0gZnJvbSAnLi4vTm90aWZpY2F0aW9uc1V0aWxzJztcbmltcG9ydCBBbGVydCBmcm9tICcuLi8uLi8uLi8uLi91dGlsaXRpZXMvQWxlcnQnO1xuaW1wb3J0IHsgQWxlcnREZXRhaWxzIH0gZnJvbSAnLi4vLi4vLi4vU2FtcGxpbmdzUGFnZS9TYW1wbGluZ1Byb3BlcnRpZXMvc2FtcGxpbmdQcm9wZXJ0aWVzVXRpbHMnO1xuaW1wb3J0IHsgdGhlbWUgfSBmcm9tICcuLi8uLi8uLi8uLi9zdHlsZXMvdGhlbWUvdGhlbWUnO1xuXG5pbnRlcmZhY2Ugbm90aWZpY2F0aW9uRm9ybUNvbnRlbnRQcm9wcyB7XG4gIG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uO1xuICBwb2ludHM6IEFkdmFuY2VkU2VsZWN0aW9uW107XG4gIHRhZ3M6IEFkdmFuY2VkU2VsZWN0aW9uW107XG4gIHNlbnNvcnM6IEFkdmFuY2VkU2VsZWN0aW9uW107XG4gIHdhdGVyQXV0aG9yaXRpZXM6IEFkdmFuY2VkU2VsZWN0aW9uW107XG4gIGFsbG93ZWROb3RpZmljYXRpb25zOiBzdHJpbmdbXTtcbiAgc2V0TmV3Tm90aWZpY2F0aW9uOiBhbnk7XG4gIGhhc1Bob25lOiBib29sZWFuO1xuICBoYXNUZWxlZ3JhbTogYm9vbGVhbjtcbn1cblxuY29uc3QgTm90aWZpY2F0aW9uc0Zvcm1Db250ZW50OiBSZWFjdC5GQzxub3RpZmljYXRpb25Gb3JtQ29udGVudFByb3BzPiA9ICh7XG4gIG5vdGlmaWNhdGlvbixcbiAgcG9pbnRzLFxuICB0YWdzLFxuICBzZW5zb3JzLFxuICB3YXRlckF1dGhvcml0aWVzLFxuICBhbGxvd2VkTm90aWZpY2F0aW9ucyxcbiAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuICBoYXNQaG9uZSxcbiAgaGFzVGVsZWdyYW0sXG59KSA9PiB7XG4gIGNvbnN0IFttb2RhbERldGFpbHMsIHNldE1vZGFsRGV0YWlsc10gPSB1c2VTdGF0ZTxBbGVydERldGFpbHM+KHtcbiAgICBvcGVuOiBmYWxzZSxcbiAgICBpbnN0YW5jZTogJycsXG4gIH0pO1xuXG4gIGNvbnN0IGRlZmF1bHRXYXRlckF1dGhvcml0eUlmU2luZ2xlID0gKCkgPT4ge1xuICAgIGlmICh3YXRlckF1dGhvcml0aWVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgaGFuZGxlTm90aWZpY2F0aW9uVHlwZShcbiAgICAgICAgeyB2YWx1ZTogJ1BvbGx1dGlvbkFsZXJ0Q29uZmlnJywgbGFiZWw6ICdQb2xsdXRpb24gRXZlbnQnIH0sXG4gICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuICAgICAgKTtcbiAgICAgIGhhbmRsZVdhdGVyQXV0aG9yaXRpZXMoXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAge1xuICAgICAgICAgIHNlbGVjdGlvbl90eXBlOiAnaW5jbHVkZScsXG4gICAgICAgICAgc2V0OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHZhbHVlOiB3YXRlckF1dGhvcml0aWVzWzBdLndhdGVyX2F1dGhvcml0eS5pZCxcbiAgICAgICAgICAgICAgbGFiZWw6IHdhdGVyQXV0aG9yaXRpZXNbMF0ud2F0ZXJfYXV0aG9yaXR5LmxhYmVsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGVmYXVsdFdhdGVyQXV0aG9yaXR5SWZTaW5nbGUoKTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiAoXG4gICAgPE5vdGlmaWNhdGlvblNpZGViYXJGb3JtQXJlYVN0eWxlPlxuICAgICAgPEZvcm0uR3JvdXAgY29udHJvbElkPVwibm90aWZpY2F0aW9uLXR5cGVcIj5cbiAgICAgICAgPEZvcm0uTGFiZWw+e2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfdHlwZScpfTwvRm9ybS5MYWJlbD5cbiAgICAgICAgPFNlbGVjdFxuICAgICAgICAgIG9uQ2hhbmdlPXsob3B0aW9uKSA9PlxuICAgICAgICAgICAgaGFuZGxlTm90aWZpY2F0aW9uVHlwZShvcHRpb24sIG5vdGlmaWNhdGlvbiwgc2V0TmV3Tm90aWZpY2F0aW9uKVxuICAgICAgICAgIH1cbiAgICAgICAgICBuYW1lPXsndHlwZSd9XG4gICAgICAgICAgb3B0aW9ucz17YWxsb3dlZE5vdGlmaWNhdGlvbnMhLm1hcCgodHlwZTogYW55KSA9PiAoe1xuICAgICAgICAgICAgdmFsdWU6IHR5cGUsXG4gICAgICAgICAgICBsYWJlbDogaTE4bi50KGBub3RpZmljYXRpb25zX3BhZ2UuJHt0eXBlfWApLFxuICAgICAgICAgIH0pKX1cbiAgICAgICAgICBkZWZhdWx0VmFsdWU9e1xuICAgICAgICAgICAgbm90aWZpY2F0aW9uLnR5cGUgIT09ICcnXG4gICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgdmFsdWU6IG5vdGlmaWNhdGlvbi50eXBlLFxuICAgICAgICAgICAgICAgICAgbGFiZWw6IGkxOG4udChgbm90aWZpY2F0aW9uc19wYWdlLiR7bm90aWZpY2F0aW9uLnR5cGV9YCksXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiAnUG9sbHV0aW9uQWxlcnRDb25maWcnLFxuICAgICAgICAgICAgICAgICAgbGFiZWw6IGkxOG4udChgbm90aWZpY2F0aW9uc19wYWdlLlBvbGx1dGlvbkFsZXJ0Q29uZmlnYCksXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgLz5cbiAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgIHtub3RpZmljYXRpb24udHlwZSA9PT0gJ1BvbGx1dGlvbkFsZXJ0Q29uZmlnJyAmJlxuICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiYgKFxuICAgICAgICAgIDxGb3JtLkdyb3VwIGNvbnRyb2xJZD1cIm5vdGlmaWNhdGlvbi1zZXZlcml0eVwiPlxuICAgICAgICAgICAgPEZvcm0uTGFiZWw+XG4gICAgICAgICAgICAgIHtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3NldmVyaXR5Jyl9XG4gICAgICAgICAgICA8L0Zvcm0uTGFiZWw+XG4gICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZSBnYXA9XCIxMFwiPlxuICAgICAgICAgICAgICA8UmFkaW9CdXR0b25Hcm91cFxuICAgICAgICAgICAgICAgIG9wdGlvbnM9e3NldmVyaXRpZXNSYWRpb0J1dHRvbnN9XG4gICAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlPXsoZXZlbnQpID0+XG4gICAgICAgICAgICAgICAgICBoYW5kbGVTZXZlcml0aWVzKGV2ZW50LCBzZXROZXdOb3RpZmljYXRpb24pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17bm90aWZpY2F0aW9uLnNldmVyaXR5fVxuICAgICAgICAgICAgICAgIGNoZWNrZWQ9e25vdGlmaWNhdGlvbi5zZXZlcml0eX1cbiAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Ob3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlPlxuICAgICAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgICAgKX1cbiAgICAgIHt3YXRlckF1dGhvcml0aWVzLmxlbmd0aCA+IDEgJiYgKFxuICAgICAgICA8Rm9ybS5Hcm91cCBjb250cm9sSWQ9XCJub3RpZmljYXRpb24td2F0ZXItYXV0aG9yaXRpZXNcIj5cbiAgICAgICAgICA8Rm9ybS5MYWJlbD5cbiAgICAgICAgICAgIHtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS53YXRlcl9hdXRob3JpdGllcycpfVxuICAgICAgICAgIDwvRm9ybS5MYWJlbD5cbiAgICAgICAgICA8Tm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZSBnYXA9XCIwXCI+XG4gICAgICAgICAgICA8UmFkaW9CdXR0b25Hcm91cFxuICAgICAgICAgICAgICBvcHRpb25zPXt3YXRlckF1dGhvcml0aWVzUmFkaW9CdXR0b25zfVxuICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2U9eyhldmVudCkgPT5cbiAgICAgICAgICAgICAgICBoYW5kbGVXYXRlckF1dGhvcml0aWVzKFxuICAgICAgICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtub3RpZmljYXRpb24ud2F0ZXJfYXV0aG9yaXRpZXMuc2VsZWN0aW9uX3R5cGV9XG4gICAgICAgICAgICAgIGNoZWNrZWQ9e25vdGlmaWNhdGlvbi53YXRlcl9hdXRob3JpdGllcy5zZWxlY3Rpb25fdHlwZX1cbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Ob3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlPlxuICAgICAgICAgIHtub3RpZmljYXRpb24ud2F0ZXJfYXV0aG9yaXRpZXMuc2VsZWN0aW9uX3R5cGUgIT09ICdhbGwnICYmXG4gICAgICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiYgKFxuICAgICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgbmFtZT17J3dhdGVyX2F1dGhvcml0eSd9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhvcHRpb246IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaGFuZGxlV2F0ZXJBdXRob3JpdGllcyhcbiAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uX3R5cGU6XG4gICAgICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24ud2F0ZXJfYXV0aG9yaXRpZXMuc2VsZWN0aW9uX3R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgc2V0OiBvcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGlzU2VhcmNoYWJsZT17dHJ1ZX1cbiAgICAgICAgICAgICAgICBpc011bHRpPXt0cnVlfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZVByZWZpeD17J3dhdGVyX2F1dGhvcml0eSd9XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17d2F0ZXJBdXRob3JpdGllcz8ubWFwKCh3YTogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgdmFsdWU6IHdhLndhdGVyX2F1dGhvcml0eS5pZCxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiB3YS53YXRlcl9hdXRob3JpdHkubGFiZWwsXG4gICAgICAgICAgICAgICAgfSkpfVxuICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17XG4gICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24ud2F0ZXJfYXV0aG9yaXRpZXMuc2V0ICE9PSBudWxsXG4gICAgICAgICAgICAgICAgICAgID8gbm90aWZpY2F0aW9uLndhdGVyX2F1dGhvcml0aWVzLnNldC5tYXAoKHdhOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogd2EuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogd2EudGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAgICAgOiBbXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgICl9XG4gICAgICB7bm90aWZpY2F0aW9uLnR5cGUgIT09ICdXYmVXZWVrbHlEaWdlc3RBbGVydENvbmZpZycgJiZcbiAgICAgICAgbm90aWZpY2F0aW9uLnR5cGUgIT09ICdEYXRhbG9nZ2VyVGhyZXNob2xkQWxlcnRDb25maWcnICYmXG4gICAgICAgIGFsbG93ZWROb3RpZmljYXRpb25zLmluY2x1ZGVzKG5vdGlmaWNhdGlvbi50eXBlKSAmJiAoXG4gICAgICAgICAgPEZvcm0uR3JvdXAgY29udHJvbElkPVwibm90aWZpY2F0aW9uLXNvdXJjZXNcIj5cbiAgICAgICAgICAgIDxGb3JtLkxhYmVsPntpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5zb3VyY2VzJyl9PC9Gb3JtLkxhYmVsPlxuICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMFwiPlxuICAgICAgICAgICAgICA8UmFkaW9CdXR0b25Hcm91cFxuICAgICAgICAgICAgICAgIG9wdGlvbnM9e3NvdXJjZXNSYWRpb0J1dHRvbnN9XG4gICAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlPXsoZXZlbnQpID0+XG4gICAgICAgICAgICAgICAgICBoYW5kbGVTb3VyY2VzKGV2ZW50LCAnJywgbm90aWZpY2F0aW9uLCBzZXROZXdOb3RpZmljYXRpb24pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17bm90aWZpY2F0aW9uLnBvaW50cy5zZWxlY3Rpb25fdHlwZX1cbiAgICAgICAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24ucG9pbnRzLnNlbGVjdGlvbl90eXBlfVxuICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L05vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGU+XG4gICAgICAgICAgICB7bm90aWZpY2F0aW9uLnBvaW50cy5zZWxlY3Rpb25fdHlwZSAhPT0gJ2FsbCcgJiYgKFxuICAgICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgbmFtZT17J3BvaW50J31cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KG9wdGlvbjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICBoYW5kbGVTb3VyY2VzKFxuICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25fdHlwZTogbm90aWZpY2F0aW9uLnBvaW50cy5zZWxlY3Rpb25fdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICBzZXQ6IG9wdGlvbixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgICBzZXROZXdOb3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgaXNTZWFyY2hhYmxlPXt0cnVlfVxuICAgICAgICAgICAgICAgIGlzTXVsdGk9e3RydWV9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lUHJlZml4PXsncG9pbnQnfVxuICAgICAgICAgICAgICAgIG9wdGlvbnM9e3BvaW50cz8ubWFwKChwOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgICB2YWx1ZTogcC5wb2ludC5pZCxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBwLnBvaW50LmxhYmVsLFxuICAgICAgICAgICAgICAgIH0pKX1cbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e1xuICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uLnBvaW50cy5zZXQgIT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgPyBub3RpZmljYXRpb24ucG9pbnRzLnNldC5tYXAoKHA6IGFueSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBwLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHAudGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAgICAgOiBbXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9Gb3JtLkdyb3VwPlxuICAgICAgICApfVxuXG4gICAgICB7bm90aWZpY2F0aW9uLnR5cGUgPT09ICdXYmVXZWVrbHlEaWdlc3RBbGVydENvbmZpZycgJiZcbiAgICAgICAgbm90aWZpY2F0aW9uLnRhZ3MgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiYgKFxuICAgICAgICAgIDxGb3JtLkdyb3VwIGNvbnRyb2xJZD1cIm5vdGlmaWNhdGlvbi10YWdzXCI+XG4gICAgICAgICAgICA8Rm9ybS5MYWJlbD57aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UudGFncycpfTwvRm9ybS5MYWJlbD5cbiAgICAgICAgICAgIDxOb3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlIGdhcD1cIjBcIj5cbiAgICAgICAgICAgICAgPFJhZGlvQnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgICBvcHRpb25zPXtzb3VyY2VzUmFkaW9CdXR0b25zfVxuICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17KGV2ZW50KSA9PlxuICAgICAgICAgICAgICAgICAgaGFuZGxlVGFncyhldmVudCwgJycsIG5vdGlmaWNhdGlvbiwgc2V0TmV3Tm90aWZpY2F0aW9uKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e25vdGlmaWNhdGlvbi50YWdzLnNlbGVjdGlvbl90eXBlfVxuICAgICAgICAgICAgICAgIGNoZWNrZWQ9e25vdGlmaWNhdGlvbi50YWdzLnNlbGVjdGlvbl90eXBlfVxuICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L05vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGU+XG4gICAgICAgICAgICB7bm90aWZpY2F0aW9uLnRhZ3Muc2VsZWN0aW9uX3R5cGUgIT09ICdhbGwnICYmXG4gICAgICAgICAgICAgIGFsbG93ZWROb3RpZmljYXRpb25zLmluY2x1ZGVzKG5vdGlmaWNhdGlvbi50eXBlKSAmJiAoXG4gICAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgICAgbmFtZT17J3BvaW50J31cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsob3B0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlVGFncyhcbiAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uX3R5cGU6XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi50YWdzICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG5vdGlmaWNhdGlvbi50YWdzLnNlbGVjdGlvbl90eXBlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldDogb3B0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBpc1NlYXJjaGFibGU9e3RydWV9XG4gICAgICAgICAgICAgICAgICBpc011bHRpPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lUHJlZml4PXsncG9pbnQnfVxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17dGFncz8ubWFwKChwOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBwLnRhZy5pZCxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHAudGFnLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgfSkpfVxuICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtcbiAgICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uLnRhZ3Muc2V0ICE9PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgPyBub3RpZmljYXRpb24udGFncy5zZXQubWFwKChwOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBwLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogcC50ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgICAgOiBbXVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9Gb3JtLkdyb3VwPlxuICAgICAgICApfVxuXG4gICAgICB7bm90aWZpY2F0aW9uLnR5cGUgPT09ICdEYXRhbG9nZ2VyVGhyZXNob2xkQWxlcnRDb25maWcnICYmXG4gICAgICAgIGFsbG93ZWROb3RpZmljYXRpb25zLmluY2x1ZGVzKG5vdGlmaWNhdGlvbi50eXBlKSAmJlxuICAgICAgICBub3RpZmljYXRpb24uc2Vuc29ycyAhPT0gdW5kZWZpbmVkICYmIChcbiAgICAgICAgICA8Rm9ybS5Hcm91cCBjb250cm9sSWQ9XCJub3RpZmljYXRpb24tc2Vuc29yc1wiPlxuICAgICAgICAgICAgPEZvcm0uTGFiZWw+e2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLnNlbnNvcnMnKX08L0Zvcm0uTGFiZWw+XG4gICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZSBnYXA9XCIwXCI+XG4gICAgICAgICAgICAgIDxSYWRpb0J1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgb3B0aW9ucz17c291cmNlc1JhZGlvQnV0dG9uc31cbiAgICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2U9eyhldmVudCkgPT5cbiAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbnNvcnMoZXZlbnQsICcnLCBub3RpZmljYXRpb24sIHNldE5ld05vdGlmaWNhdGlvbilcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtub3RpZmljYXRpb24uc2Vuc29ycy5zZWxlY3Rpb25fdHlwZX1cbiAgICAgICAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24uc2Vuc29ycy5zZWxlY3Rpb25fdHlwZX1cbiAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Ob3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlPlxuICAgICAgICAgICAge25vdGlmaWNhdGlvbi5zZW5zb3JzLnNlbGVjdGlvbl90eXBlICE9PSAnYWxsJyAmJiAoXG4gICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICBuYW1lPXsncG9pbnQnfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsob3B0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbnNvcnMoXG4gICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbl90eXBlOlxuICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uLnNlbnNvcnMgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IG5vdGlmaWNhdGlvbi5zZW5zb3JzLnNlbGVjdGlvbl90eXBlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogW10sXG4gICAgICAgICAgICAgICAgICAgICAgc2V0OiBvcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGlzU2VhcmNoYWJsZT17dHJ1ZX1cbiAgICAgICAgICAgICAgICBpc011bHRpPXt0cnVlfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZVByZWZpeD17J3BvaW50J31cbiAgICAgICAgICAgICAgICBvcHRpb25zPXtzZW5zb3JzPy5tYXAoKHA6IGFueSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBwLnNlbnNvci5pZCxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBwLnNlbnNvci5sYWJlbCxcbiAgICAgICAgICAgICAgICB9KSl9XG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtcbiAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi5zZW5zb3JzLnNldCAhPT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICA/IG5vdGlmaWNhdGlvbi5zZW5zb3JzLnNldC5tYXAoKHA6IGFueSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBwLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHAudGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAgICAgOiBbXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9Gb3JtLkdyb3VwPlxuICAgICAgICApfVxuXG4gICAgICA8Rm9ybS5Hcm91cCBjb250cm9sSWQ9XCJub3RpZmljYXRpb24tc2VuZFwiPlxuICAgICAgICA8Rm9ybS5MYWJlbD57aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9zZW5kX3ZpYScpfTwvRm9ybS5MYWJlbD5cbiAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMTBcIj5cbiAgICAgICAgICB7c2VuZFZpYUNoZWNrQm94ZXMubWFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPENoZWNrYm94XG4gICAgICAgICAgICAgICAga2V5PXt2YWx1ZS5sYWJlbH1cbiAgICAgICAgICAgICAgICBvcHRpb249e3ZhbHVlfVxuICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17KGV2ZW50KSA9PlxuICAgICAgICAgICAgICAgICAgaGFuZGxlU2VuZFZpYShcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgICBzZXRNb2RhbERldGFpbHMsXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17bm90aWZpY2F0aW9uLmFjdGlvbnN9XG4gICAgICAgICAgICAgICAgY2hlY2tlZD17bm90aWZpY2F0aW9uLmFjdGlvbnN9XG4gICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSl9XG4gICAgICAgICAge25vdGlmaWNhdGlvbi5hY3Rpb25zLnRlbGVncmFtICYmXG4gICAgICAgICAgICAhaGFzVGVsZWdyYW0gJiZcbiAgICAgICAgICAgIG1vZGFsRGV0YWlscy5vcGVuICYmXG4gICAgICAgICAgICBtb2RhbERldGFpbHMuaW5zdGFuY2UgPT09ICd0ZWxlZ3JhbScgJiYgKFxuICAgICAgICAgICAgICA8QWxlcnRcbiAgICAgICAgICAgICAgICBzZXRNb2RhbERldGFpbHM9e3NldE1vZGFsRGV0YWlsc31cbiAgICAgICAgICAgICAgICBjaGlsZHJlbj17XG4gICAgICAgICAgICAgICAgICA8QWxlcnRDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICB7aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9zZW5kX3ZpYV9ub190ZWxlZ3JhbScpfVxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDxNb2RhbEFjdGlvbnNCdXR0b24gY29sb3I9e3RoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjYwfT5cbiAgICAgICAgICAgICAgICAgICAgICB7aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2Uub2snKX1cbiAgICAgICAgICAgICAgICAgICAgPC9Nb2RhbEFjdGlvbnNCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L0FsZXJ0Q29udGVudD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAge25vdGlmaWNhdGlvbi5hY3Rpb25zLnNtcyAmJlxuICAgICAgICAgICAgIWhhc1Bob25lICYmXG4gICAgICAgICAgICBtb2RhbERldGFpbHMub3BlbiAmJlxuICAgICAgICAgICAgbW9kYWxEZXRhaWxzLmluc3RhbmNlID09PSAnc21zJyAmJiAoXG4gICAgICAgICAgICAgIDxBbGVydFxuICAgICAgICAgICAgICAgIHNldE1vZGFsRGV0YWlscz17c2V0TW9kYWxEZXRhaWxzfVxuICAgICAgICAgICAgICAgIGNoaWxkcmVuPXtcbiAgICAgICAgICAgICAgICAgIDxBbGVydENvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxwPntpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3NlbmRfdmlhX25vX3Bob25lJyl9PC9wPlxuICAgICAgICAgICAgICAgICAgICA8TW9kYWxBY3Rpb25zQnV0dG9uIGNvbG9yPXt0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm42MH0+XG4gICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLm9rJyl9XG4gICAgICAgICAgICAgICAgICAgIDwvTW9kYWxBY3Rpb25zQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9BbGVydENvbnRlbnQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgPC9Ob3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlPlxuICAgICAgPC9Gb3JtLkdyb3VwPlxuICAgICAge25vdGlmaWNhdGlvbi50eXBlID09PSAnUG9sbHV0aW9uQWxlcnRDb25maWcnICYmXG4gICAgICAgIGFsbG93ZWROb3RpZmljYXRpb25zLmluY2x1ZGVzKG5vdGlmaWNhdGlvbi50eXBlKSAmJiAoXG4gICAgICAgICAgPEZvcm0uR3JvdXA+XG4gICAgICAgICAgICA8Rm9ybS5DaGVja1xuICAgICAgICAgICAgICBpbmxpbmVcbiAgICAgICAgICAgICAgbGFiZWw9e2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfc2FtcGxlcl9hY3RpdmUnKX1cbiAgICAgICAgICAgICAgbmFtZT1cInB1bXBfb25seVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIGlkPVwicHVtcF9vbmx5XCJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVOb3RpZmljYXRpb25TYW1wbGUoZSwgc2V0TmV3Tm90aWZpY2F0aW9uKX1cbiAgICAgICAgICAgICAgY2hlY2tlZD17bm90aWZpY2F0aW9uLnB1bXBfb25seSA9PT0gJzEnfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICAgICl9XG4gICAgPC9Ob3RpZmljYXRpb25TaWRlYmFyRm9ybUFyZWFTdHlsZT5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5vdGlmaWNhdGlvbnNGb3JtQ29udGVudDtcblxuY29uc3QgQWxlcnRDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgcCB7XG4gICAgcGFkZGluZzogMzBweCAzMHB4IDAgMzBweDtcbiAgfVxuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIGhlaWdodDogMTAwJTtcbmA7XG5cbmNvbnN0IE1vZGFsQWN0aW9uc0J1dHRvbiA9IHN0eWxlZC5kaXZgXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYThhOGFhO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGhlaWdodDogNDVweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICR7KHsgY29sb3IgfSkgPT4gY29sb3J9O1xuYDtcblxuY29uc3QgTm90aWZpY2F0aW9uU2lkZWJhckZvcm1BcmVhU3R5bGUgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogNzJ2aDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAzcHggMXB4ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uMzB9O1xuICBwYWRkaW5nOiAxMHB4IDMwcHg7XG4gIG92ZXJmbG93OiBhdXRvO1xuXG4gIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuZm9udFNpemUubWR9O1xuICAgIGZvbnQtd2VpZ2h0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmZvbnRXZWlnaHQudzYwMH07XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLmZvcm0tZ3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbiAgfVxuXG4gIC5hbGwsXG4gIC5pbmNsdWRlLFxuICAuZXhjbHVkZSxcbiAgLnRlbGVncmFtLFxuICAuZW1haWwsXG4gIC5zbXMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uODB9O1xuICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjgwfTtcbiAgfVxuICAuZXh0cmVtZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5wcmltYXJ5LnAxfTtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5wcmltYXJ5LnAxfTtcbiAgfVxuICAuaGlnaCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5kYXRhLk8xMDB9O1xuICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLmRhdGEuTzEwMH07XG4gIH1cbiAgLm1lZGl1bSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5kYXRhLlcxMDB9O1xuICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLmRhdGEuVzEwMH07XG4gIH1cblxuICAuZm9ybS1jaGVjay1pbmxpbmUge1xuICAgIGFsaWduLWl0ZW1zOiBzZWxmLXN0YXJ0ICFpbXBvcnRhbnQ7XG5cbiAgICBpbnB1dCB7XG4gICAgICBtYXJnaW4tdG9wOiA3cHggIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgPSBzdHlsZWQuZGl2PHsgZ2FwOiBzdHJpbmcgfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogJHsoeyBnYXAgfSkgPT4gZ2FwICsgJ3B4J307XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbmA7XG4iXX0=
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.formatNotification = exports.formatSendVia = exports.deleteAttributes = exports.parseNotificationAdvancedSelection = exports.validateValueIsNotAnObject = exports.handleNotificationSample = exports.handleSendVia = exports.handleSelectionAndSet = exports.handleSensors = exports.handleTags = exports.handleSources = exports.handleWaterAuthorities = exports.handleSeverities = exports.handleNotificationType = void 0;
8
+ exports.formatNotification = exports.parseSeverities = exports.formatSendVia = exports.deleteAttributes = exports.parseNotificationAdvancedSelection = exports.validateValueIsNotAnObject = exports.handleNotificationSample = exports.handleSendVia = exports.handleSelectionAndSet = exports.handleSensors = exports.handleTags = exports.handleSources = exports.handleWaterAuthorities = exports.handleSeverities = exports.handleNotificationType = void 0;
9
9
 
10
10
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/typeof"));
11
11
 
@@ -130,9 +130,10 @@ exports.handleSendVia = handleSendVia;
130
130
 
131
131
  var handleNotificationSample = function handleNotificationSample(e, setNewNotification) {
132
132
  var value = e.target.checked;
133
+ var parsedValue = value ? '1' : '0';
133
134
  setNewNotification(function (prevState) {
134
135
  return (0, _objectSpread4.default)((0, _objectSpread4.default)({}, prevState), {}, {
135
- pump_only: value
136
+ pump_only: parsedValue
136
137
  });
137
138
  });
138
139
  };
@@ -192,11 +193,34 @@ var formatSendVia = function formatSendVia(notification) {
192
193
 
193
194
  exports.formatSendVia = formatSendVia;
194
195
 
196
+ var parseSeverities = function parseSeverities(notification) {
197
+ var value;
198
+
199
+ switch (notification.severity) {
200
+ case 'medium':
201
+ value = '0';
202
+ break;
203
+
204
+ case 'high':
205
+ value = '1';
206
+ break;
207
+
208
+ case 'extreme':
209
+ value = '2';
210
+ }
211
+
212
+ notification.severity = value;
213
+ return notification;
214
+ };
215
+
216
+ exports.parseSeverities = parseSeverities;
217
+
195
218
  var formatNotification = function formatNotification(newNotification) {
196
219
  var notificationCopy = JSON.parse(JSON.stringify(newNotification));
197
220
  notificationCopy = parseNotificationAdvancedSelection(notificationCopy);
198
221
  notificationCopy = formatSendVia(notificationCopy);
199
222
  notificationCopy = deleteAttributes(notificationCopy, newNotification);
223
+ notificationCopy = parseSeverities(notificationCopy);
200
224
  var notificationToSave = {
201
225
  user: {
202
226
  alert_configs_attributes: (0, _objectSpread4.default)({}, notificationCopy)
@@ -213,4 +237,4 @@ var formatNotification = function formatNotification(newNotification) {
213
237
  };
214
238
 
215
239
  exports.formatNotification = formatNotification;
216
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWdlcy9Ob3RpZmljYXRpb25zUGFnZVYyL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uc1V0aWxzLnRzIl0sIm5hbWVzIjpbImhhbmRsZU5vdGlmaWNhdGlvblR5cGUiLCJvcHRpb24iLCJub3RpZmljYXRpb24iLCJzZXROZXdOb3RpZmljYXRpb24iLCJ2YWx1ZSIsImF2YWlsYWJsZV90eXBlcyIsImZpbmQiLCJ0eXBlIiwicHJldlN0YXRlIiwiaGFuZGxlU2V2ZXJpdGllcyIsImUiLCJ0YXJnZXQiLCJzZXZlcml0eSIsImhhbmRsZVdhdGVyQXV0aG9yaXRpZXMiLCJuZXdOb3RpZmljYXRpb24iLCJ3YXRlcl9hdXRob3JpdGllcyIsImhhbmRsZVNlbGVjdGlvbkFuZFNldCIsImhhbmRsZVNvdXJjZXMiLCJwb2ludHMiLCJoYW5kbGVUYWdzIiwidGFncyIsImhhbmRsZVNlbnNvcnMiLCJzZW5zb3JzIiwiZmllbGQiLCJ1bmRlZmluZWQiLCJzZWxlY3Rpb25fdHlwZSIsInNldCIsImZvckVhY2giLCJwdXNoIiwiSlNPTiIsInN0cmluZ2lmeSIsImhhbmRsZVNlbmRWaWEiLCJzZXRNb2RhbERldGFpbHMiLCJhY3Rpb25zIiwib3BlbiIsImluc3RhbmNlIiwiaGFuZGxlTm90aWZpY2F0aW9uU2FtcGxlIiwiY2hlY2tlZCIsInB1bXBfb25seSIsInZhbGlkYXRlVmFsdWVJc05vdEFuT2JqZWN0IiwiQXJyYXkiLCJpc0FycmF5IiwicGFyc2VOb3RpZmljYXRpb25BZHZhbmNlZFNlbGVjdGlvbiIsIndhdGVyQXV0aG9yaXRpZXMiLCJhbGxfYWR2YW5jZWRfc2VsZWN0aW9ucyIsInNlbGVjdGlvbiIsInBvaW50IiwiaWQiLCJkZWxldGVBdHRyaWJ1dGVzIiwiZm9ybWF0U2VuZFZpYSIsImZvcm1hdHRlZFZhbHVlIiwiZmxhdCIsImZvcm1hdE5vdGlmaWNhdGlvbiIsIm5vdGlmaWNhdGlvbkNvcHkiLCJwYXJzZSIsIm5vdGlmaWNhdGlvblRvU2F2ZSIsInVzZXIiLCJhbGVydF9jb25maWdzX2F0dHJpYnV0ZXMiLCJub3RpZmljYXRpb25XaXRoVGltZVN0YW1wIiwibm93IiwiRGF0ZSIsImdldFRpbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUVPLElBQU1BLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBeUIsQ0FDcENDLE1BRG9DLEVBRXBDQyxZQUZvQyxFQUdwQ0Msa0JBSG9DLEVBSWpDO0FBQ0gsTUFBTUMsS0FBSyxHQUFHRixZQUFZLENBQUNHLGVBQWIsQ0FBOEJDLElBQTlCLENBQ1osVUFBQ0MsSUFBRDtBQUFBLFdBQVVBLElBQUksS0FBS04sTUFBTSxDQUFDRyxLQUExQjtBQUFBLEdBRFksQ0FBZDtBQUdBLE1BQUlBLEtBQUosRUFDRUQsa0JBQWtCLENBQUMsVUFBQ0ssU0FBRDtBQUFBLHVFQUNkQSxTQURjO0FBRWpCRCxNQUFBQSxJQUFJLEVBQUVIO0FBRlc7QUFBQSxHQUFELENBQWxCO0FBSUgsQ0FiTTs7OztBQWVBLElBQU1LLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBbUIsQ0FDOUJDLENBRDhCLEVBRTlCUCxrQkFGOEIsRUFHM0I7QUFDSCxNQUFNQyxLQUFLLEdBQUdNLENBQUMsQ0FBQ0MsTUFBRixDQUFTUCxLQUF2QjtBQUNBRCxFQUFBQSxrQkFBa0IsQ0FBQyxVQUFDSyxTQUFEO0FBQUEsdUVBQ2RBLFNBRGM7QUFFakJJLE1BQUFBLFFBQVEsRUFBRVI7QUFGTztBQUFBLEdBQUQsQ0FBbEI7QUFJRCxDQVRNOzs7O0FBVUEsSUFBTVMsc0JBQXNCLEdBQUcsU0FBekJBLHNCQUF5QixDQUNwQ0gsQ0FEb0MsRUFLakM7QUFBQSxNQUhIVCxNQUdHLHVFQUhXLEVBR1g7QUFBQSxNQUZIYSxlQUVHO0FBQUEsTUFESFgsa0JBQ0c7QUFDSCxNQUFNQyxLQUFLLG1DQUFRVSxlQUFlLENBQUNDLGlCQUF4QixDQUFYO0FBQ0FDLEVBQUFBLHFCQUFxQixDQUNuQlosS0FEbUIsRUFFbkIsbUJBRm1CLEVBR25CTSxDQUhtQixFQUluQlQs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a0IsR0FBRyxTQUFyQkEsa0JBQXFCLENBQUN0QyxlQUFELEVBQXFCO0FBQ3JELE1BQUl1QyxnQkFBZ0IsR0FBR3hCLElBQUksQ0FBQ3lCLEtBQUwsQ0FBV3pCLElBQUksQ0FBQ0MsU0FBTCxDQUFlaEIsZUFBZixDQUFYLENBQXZCO0FBQ0F1QyxFQUFBQSxnQkFBZ0IsR0FBR1gsa0NBQWtDLENBQUNXLGdCQUFELENBQXJEO0FBQ0FBLEVBQUFBLGdCQUFnQixHQUFHSixhQUFhLENBQUNJLGdCQUFELENBQWhDO0FBQ0FBLEVBQUFBLGdCQUFnQixHQUFHTCxnQkFBZ0IsQ0FBQ0ssZ0JBQUQsRUFBbUJ2QyxlQUFuQixDQUFuQztBQUVBLE1BQUl5QyxrQkFBa0IsR0FBRztBQUN2QkMsSUFBQUEsSUFBSSxFQUFFO0FBQ0pDLE1BQUFBLHdCQUF3QixrQ0FDbkJKLGdCQURtQjtBQURwQjtBQURpQixHQUF6QjtBQVFBLE1BQU1LLHlCQUF5QixHQUFHO0FBQ2hDRixJQUFBQSxJQUFJLEVBQUU7QUFDSkMsTUFBQUEsd0JBQXdCLEVBQUU7QUFEdEI7QUFEMEIsR0FBbEM7QUFNQSxNQUFNRSxHQUFHLEdBQUcsSUFBSUMsSUFBSixFQUFaO0FBQ0FGLEVBQUFBLHlCQUF5QixDQUFDRixJQUExQixDQUErQkMsd0JBQS9CLFdBQTJERSxHQUFHLENBQUNFLE9BQUosRUFBM0QsS0FDRU4sa0JBQWtCLENBQUNDLElBQW5CLENBQXdCQyx3QkFEMUI7QUFHQSxTQUFPQyx5QkFBUDtBQUNELENBekJNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IGNvbnN0IGhhbmRsZU5vdGlmaWNhdGlvblR5cGUgPSAoXG4gIG9wdGlvbixcbiAgbm90aWZpY2F0aW9uLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4pID0+IHtcbiAgY29uc3QgdmFsdWUgPSBub3RpZmljYXRpb24uYXZhaWxhYmxlX3R5cGVzIS5maW5kKFxuICAgICh0eXBlKSA9PiB0eXBlID09PSBvcHRpb24udmFsdWUsXG4gICk7XG4gIGlmICh2YWx1ZSlcbiAgICBzZXROZXdOb3RpZmljYXRpb24oKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgIHR5cGU6IHZhbHVlLFxuICAgIH0pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVTZXZlcml0aWVzID0gKFxuICBlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PixcbiAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuKSA9PiB7XG4gIGNvbnN0IHZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gIHNldE5ld05vdGlmaWNhdGlvbigocHJldlN0YXRlKSA9PiAoe1xuICAgIC4uLnByZXZTdGF0ZSxcbiAgICBzZXZlcml0eTogdmFsdWUsXG4gIH0pKTtcbn07XG5leHBvcnQgY29uc3QgaGFuZGxlV2F0ZXJBdXRob3JpdGllcyA9IChcbiAgZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4gfCB1bmRlZmluZWQsXG4gIG9wdGlvbjogYW55ID0gJycsXG4gIG5ld05vdGlmaWNhdGlvbixcbiAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuKSA9PiB7XG4gIGNvbnN0IHZhbHVlID0geyAuLi5uZXdOb3RpZmljYXRpb24ud2F0ZXJfYXV0aG9yaXRpZXMgfTtcbiAgaGFuZGxlU2VsZWN0aW9uQW5kU2V0KFxuICAgIHZhbHVlLFxuICAgICd3YXRlcl9hdXRob3JpdGllcycsXG4gICAgZSxcbiAgICBvcHRpb24sXG4gICAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZVNvdXJjZXMgPSAoXG4gIGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+IHwgdW5kZWZpbmVkLFxuICBvcHRpb246IGFueSA9ICcnLFxuICBuZXdOb3RpZmljYXRpb24sXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbikgPT4ge1xuICBjb25zdCB2YWx1ZSA9IHsgLi4ubmV3Tm90aWZpY2F0aW9uLnBvaW50cyB9O1xuICBoYW5kbGVTZWxlY3Rpb25BbmRTZXQodmFsdWUsICdwb2ludHMnLCBlLCBvcHRpb24sIHNldE5ld05vdGlmaWNhdGlvbik7XG59O1xuXG5leHBvcnQgY29uc3QgaGFuZGxlVGFncyA9IChcbiAgZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4gfCB1bmRlZmluZWQsXG4gIG9wdGlvbjogYW55ID0gJycsXG4gIG5ld05vdGlmaWNhdGlvbixcbiAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuKSA9PiB7XG4gIGNvbnN0IHZhbHVlID0geyAuLi5uZXdOb3RpZmljYXRpb24udGFncyB9O1xuICBoYW5kbGVTZWxlY3Rpb25BbmRTZXQodmFsdWUsICd0YWdzJywgZSwgb3B0aW9uLCBzZXROZXdOb3RpZmljYXRpb24pO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZVNlbnNvcnMgPSAoXG4gIGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+IHwgdW5kZWZpbmVkLFxuICBvcHRpb246IGFueSA9ICcnLFxuICBuZXdOb3RpZmljYXRpb24sXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbikgPT4ge1xuICBjb25zdCB2YWx1ZSA9IHsgLi4ubmV3Tm90aWZpY2F0aW9uLnNlbnNvcnMgfTtcbiAgaGFuZGxlU2VsZWN0aW9uQW5kU2V0KHZhbHVlLCAnc2Vuc29ycycsIGUsIG9wdGlvbiwgc2V0TmV3Tm90aWZpY2F0aW9uKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVTZWxlY3Rpb25BbmRTZXQgPSAoXG4gIHZhbHVlLFxuICBmaWVsZDogc3RyaW5nLFxuICBlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PiB8IHVuZGVmaW5lZCxcbiAgb3B0aW9uOiBhbnkgPSAnJyxcbiAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuKSA9PiB7XG4gIGlmIChlICE9PSB1bmRlZmluZWQgJiYgZS50YXJnZXQgIT09IHVuZGVmaW5lZCkge1xuICAgIHZhbHVlLnNlbGVjdGlvbl90eXBlID0gZS50YXJnZXQudmFsdWU7XG4gICAgc2V0TmV3Tm90aWZpY2F0aW9uKChwcmV2U3RhdGUpID0+ICh7XG4gICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICBbZmllbGRdOiB2YWx1ZSxcbiAgICB9KSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3Qgc2V0OiBzdHJpbmdbXSA9IFtdO1xuICAgIG9wdGlvbi5zZXQuZm9yRWFjaCgob3B0aW9uKSA9PiB7XG4gICAgICBzZXQucHVzaChKU09OLnN0cmluZ2lmeShvcHRpb24udmFsdWUpKTtcbiAgICB9KTtcblxuICAgIHZhbHVlLnNlbGVjdGlvbl90eXBlID0gb3B0aW9uLnNlbGVjdGlvbl90eXBlO1xuICAgIGlmICh2YWx1ZS5zZXQgPT09IG51bGwpIHtcbiAgICAgIHZhbHVlLnNldCA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZS5zZXQgPSBzZXQ7XG4gICAgfVxuXG4gICAgc2V0TmV3Tm90aWZpY2F0aW9uKChwcmV2U3RhdGUpID0+ICh7XG4gICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICBbZmllbGRdOiB2YWx1ZSxcbiAgICB9KSk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVTZW5kVmlhID0gKFxuICBlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PixcbiAgbmV3Tm90aWZpY2F0aW9uLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4gIHNldE1vZGFsRGV0YWlscyxcbikgPT4ge1xuICBjb25zdCB2YWx1ZSA9IHsgLi4ubmV3Tm90aWZpY2F0aW9uLmFjdGlvbnMgfTtcbiAgY29uc3QgZmllbGQgPSBlLnRhcmdldC52YWx1ZTtcbiAgdmFsdWVbZmllbGRdID0gIXZhbHVlW2ZpZWxkXTtcblxuICBpZiAoZmllbGQgPT09ICdzbXMnIHx8IGZpZWxkID09PSAndGVsZWdyYW0nKSB7XG4gICAgc2V0TW9kYWxEZXRhaWxzKHsgb3BlbjogdHJ1ZSwgaW5zdGFuY2U6IGZpZWxkIH0pO1xuICB9XG5cbiAgc2V0TmV3Tm90aWZpY2F0aW9uKChwcmV2U3RhdGUpID0+ICh7XG4gICAgLi4ucHJldlN0YXRlLFxuICAgIGFjdGlvbnM6IHZhbHVlLFxuICB9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgaGFuZGxlTm90aWZpY2F0aW9uU2FtcGxlID0gKFxuICBlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PixcbiAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuKSA9PiB7XG4gIGNvbnN0IHZhbHVlID0gZS50YXJnZXQuY2hlY2tlZDtcbiAgc2V0TmV3Tm90aWZpY2F0aW9uKChwcmV2U3RhdGUpID0+ICh7XG4gICAgLi4ucHJldlN0YXRlLFxuICAgIHB1bXBfb25seTogdmFsdWUsXG4gIH0pKTtcbn07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVZhbHVlSXNOb3RBbk9iamVjdCA9ICh2YWx1ZSkgPT4ge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAhQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiZcbiAgICB2YWx1ZSAhPT0gbnVsbCAmJlxuICAgIHZhbHVlICE9PSB1bmRlZmluZWRcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZU5vdGlmaWNhdGlvbkFkdmFuY2VkU2VsZWN0aW9uID0gKG5vdGlmaWNhdGlvbikgPT4ge1xuICAvLyBJZiB0aGVyZSdsbCBiZSBhIGZ1dHVyZSByZXF1aXJlbWVudCB0byBhZGQgYW5vdGhlciBBZHZhbmNlZFNlbGVjdGlvbiBmaWVsZHMsIHBsZWFzZSBhZGQgdGhlbSByaWdodCBiZWxvd1xuXG4gIGxldCBwb2ludHMgPSBub3RpZmljYXRpb24ucG9pbnRzO1xuICBsZXQgd2F0ZXJBdXRob3JpdGllcyA9IG5vdGlmaWNhdGlvbi53YXRlcl9hdXRob3JpdGllcztcbiAgbGV0IHRhZ3MgPSBub3RpZmljYXRpb24udGFncztcbiAgbGV0IHNlbnNvcnMgPSBub3RpZmljYXRpb24uc2Vuc29ycztcblxuICBjb25zdCBhbGxfYWR2YW5jZWRfc2VsZWN0aW9ucyA9IFtwb2ludHMsIHdhdGVyQXV0aG9yaXRpZXMsIHRhZ3MsIHNlbnNvcnNdO1xuXG4gIGFsbF9hZHZhbmNlZF9zZWxlY3Rpb25zLmZvckVhY2goKHNlbGVjdGlvbikgPT4ge1xuICAgIGlmIChcbiAgICAgIHZhbGlkYXRlVmFsdWVJc05vdEFuT2JqZWN0KFxuICAgICAgICBzZWxlY3Rpb24gIT09IHVuZGVmaW5lZCAmJiBzZWxlY3Rpb24uc2V0ICE9PSBudWxsICYmIHNlbGVjdGlvbi5zZXRbMF0sXG4gICAgICApXG4gICAgKSB7XG4gICAgICBjb25zdCBzZXQ6IHN0cmluZ1tdID0gW107XG4gICAgICBzZWxlY3Rpb24uc2V0LmZvckVhY2goKHBvaW50KSA9PiB7XG4gICAgICAgIHNldC5wdXNoKEpTT04uc3RyaW5naWZ5KHBvaW50LmlkKSk7XG4gICAgICB9KTtcblxuICAgICAgc2VsZWN0aW9uLnNldCA9IHNldDtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBub3RpZmljYXRpb247XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlQXR0cmlidXRlcyA9IChub3RpZmljYXRpb24sIG5ld05vdGlmaWNhdGlvbikgPT4ge1xuICAvLyBNYWtlIHN1cmUgdG8gcmVtb3ZlIHVubmVjZXNzYXJ5IGF0dHJpYnV0ZXMgZm9yIHNvbWUgQWxlcnRDb25maWdzXG5cbiAgZGVsZXRlIG5vdGlmaWNhdGlvbi5hdmFpbGFibGVfdHlwZXM7XG4gIGlmIChuZXdOb3RpZmljYXRpb24udHlwZSAhPT0gJ1BvbGx1dGlvbkFsZXJ0Q29uZmlnJylcbiAgICBkZWxldGUgbm90aWZpY2F0aW9uLnNldmVyaXR5O1xuICBpZiAobmV3Tm90aWZpY2F0aW9uLnR5cGUgIT09ICdQb2xsdXRpb25BbGVydENvbmZpZycpXG4gICAgZGVsZXRlIG5vdGlmaWNhdGlvbi5wdW1wX29ubHk7XG4gIGlmIChuZXdOb3RpZmljYXRpb24udHlwZSA9PT0gJ1diZVdlZWtseURpZ2VzdEFsZXJ0Q29uZmlnJylcbiAgICBkZWxldGUgbm90aWZpY2F0aW9uLnBvaW50cztcbiAgaWYgKG5ld05vdGlmaWNhdGlvbi50eXBlICE9PSAnV2JlV2Vla2x5RGlnZXN0QWxlcnRDb25maWcnKVxuICAgIGRlbGV0ZSBub3RpZmljYXRpb24udGFncztcbiAgaWYgKG5ld05vdGlmaWNhdGlvbi50eXBlICE9PSAnRGF0YWxvZ2dlclRocmVzaG9sZEFsZXJ0Q29uZmlnJylcbiAgICBkZWxldGUgbm90aWZpY2F0aW9uLnNlbnNvcnM7XG5cbiAgbm90aWZpY2F0aW9uWydhbGVydF90eXBlJ10gPSBub3RpZmljYXRpb24udHlwZTtcbiAgbm90aWZpY2F0aW9uWydfZGVzdHJveSddID0gMDtcblxuICByZXR1cm4gbm90aWZpY2F0aW9uO1xufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdFNlbmRWaWEgPSAobm90aWZpY2F0aW9uKSA9PiB7XG4gIGxldCBmb3JtYXR0ZWRWYWx1ZTogYW55ID0gW107XG4gIGlmIChub3RpZmljYXRpb24uYWN0aW9uc1sndGVsZWdyYW0nXSlcbiAgICBmb3JtYXR0ZWRWYWx1ZS5wdXNoKFsnU2VuZFRlbGVncmFtQWN0aW9uJywgJzAnXSk7XG4gIGlmIChub3RpZmljYXRpb24uYWN0aW9uc1snZW1haWwnXSlcbiAgICBmb3JtYXR0ZWRWYWx1ZS5wdXNoKFsnU2VuZEVtYWlsQWN0aW9uJywgJzAnXSk7XG4gIGlmIChub3RpZmljYXRpb24uYWN0aW9uc1snc21zJ10pIGZvcm1hdHRlZFZhbHVlLnB1c2goWydTZW5kU21zQWN0aW9uJywgJzAnXSk7XG4gIG5vdGlmaWNhdGlvbi5hY3Rpb25zID0gZm9ybWF0dGVkVmFsdWUuZmxhdCgpO1xuXG4gIHJldHVybiBub3RpZmljYXRpb247XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0Tm90aWZpY2F0aW9uID0gKG5ld05vdGlmaWNhdGlvbikgPT4ge1xuICBsZXQgbm90aWZpY2F0aW9uQ29weSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmV3Tm90aWZpY2F0aW9uKSk7XG4gIG5vdGlmaWNhdGlvbkNvcHkgPSBwYXJzZU5vdGlmaWNhdGlvbkFkdmFuY2VkU2VsZWN0aW9uKG5vdGlmaWNhdGlvbkNvcHkpO1xuICBub3RpZmljYXRpb25Db3B5ID0gZm9ybWF0U2VuZFZpYShub3RpZmljYXRpb25Db3B5KTtcbiAgbm90aWZpY2F0aW9uQ29weSA9IGRlbGV0ZUF0dHJpYnV0ZXMobm90aWZpY2F0aW9uQ29weSwgbmV3Tm90aWZpY2F0aW9uKTtcblxuICBsZXQgbm90aWZpY2F0aW9uVG9TYXZlID0ge1xuICAgIHVzZXI6IHtcbiAgICAgIGFsZXJ0X2NvbmZpZ3NfYXR0cmlidXRlczoge1xuICAgICAgICAuLi5ub3RpZmljYXRpb25Db3B5LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IG5vdGlmaWNhdGlvbldpdGhUaW1lU3RhbXAgPSB7XG4gICAgdXNlcjoge1xuICAgICAgYWxlcnRfY29uZmlnc19hdHRyaWJ1dGVzOiB7fSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIG5vdGlmaWNhdGlvbldpdGhUaW1lU3RhbXAudXNlci5hbGVydF9jb25maWdzX2F0dHJpYnV0ZXNbYCR7bm93LmdldFRpbWUoKX1gXSA9XG4gICAgbm90aWZpY2F0aW9uVG9TYXZlLnVzZXIuYWxlcnRfY29uZmlnc19hdHRyaWJ1dGVzO1xuXG4gIHJldHVybiBub3RpZmljYXRpb25XaXRoVGltZVN0YW1wO1xufTtcbiJdfQ==
240
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWdlcy9Ob3RpZmljYXRpb25zUGFnZVYyL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uc1V0aWxzLnRzIl0sIm5hbWVzIjpbImhhbmRsZU5vdGlmaWNhdGlvblR5cGUiLCJvcHRpb24iLCJub3RpZmljYXRpb24iLCJzZXROZXdOb3RpZmljYXRpb24iLCJ2YWx1ZSIsImF2YWlsYWJsZV90eXBlcyIsImZpbmQiLCJ0eXBlIiwicHJldlN0YXRlIiwiaGFuZGxlU2V2ZXJpdGllcyIsImUiLCJ0YXJnZXQiLCJzZXZlcml0eSIsImhhbmRsZVdhdGVyQXV0aG9yaXRpZXMiLCJuZXdOb3RpZmljYXRpb24iLCJ3YXRlcl9hdXRob3JpdGllcyIsImhhbmRsZVNlbGVjdGlvbkFuZFNldCIsImhhbmRsZVNvdXJjZXMiLCJwb2ludHMiLCJoYW5kbGVUYWdzIiwidGFncyIsImhhbmRsZVNlbnNvcnMiLCJzZW5zb3JzIiwiZmllbGQiLCJ1bmRlZmluZWQiLCJzZWxlY3Rpb25fdHlwZSIsInNldCIsImZvckVhY2giLCJwdXNoIiwiSlNPTiIsInN0cmluZ2lmeSIsImhhbmRsZVNlbmRWaWEiLCJzZXRNb2RhbERldGFpbHMiLCJhY3Rpb25zIiwib3BlbiIsImluc3RhbmNlIiwiaGFuZGxlTm90aWZpY2F0aW9uU2FtcGxlIiwiY2hlY2tlZCIsInBhcnNlZFZhbHVlIiwicHVtcF9vbmx5IiwidmFsaWRhdGVWYWx1ZUlzTm90QW5PYmplY3QiLCJBcnJheSIsImlzQXJyYXkiLCJwYXJzZU5vdGlmaWNhdGlvbkFkdmFuY2VkU2VsZWN0aW9uIiwid2F0ZXJBdXRob3JpdGllcyIsImFsbF9hZHZhbmNlZF9zZWxlY3Rpb25zIiwic2VsZWN0aW9uIiwicG9pbnQiLCJpZCIsImRlbGV0ZUF0dHJpYnV0ZXMiLCJmb3JtYXRTZW5kVmlhIiwiZm9ybWF0dGVkVmFsdWUiLCJmbGF0IiwicGFyc2VTZXZlcml0aWVzIiwiZm9ybWF0Tm90aWZpY2F0aW9uIiwibm90aWZpY2F0aW9uQ29weSIsInBhcnNlIiwibm90aWZpY2F0aW9uVG9TYXZlIiwidXNlciIsImFsZXJ0X2NvbmZpZ3NfYXR0cmlidXRlcyIsIm5vdGlmaWNhdGlvbldpdGhUaW1lU3RhbXAiLCJub3ciLCJEYXRlIiwiZ2V0VGltZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBRU8sSUFBTUEsc0JBQXNCLEdBQUcsU0FBekJBLHNCQUF5QixDQUNwQ0MsTUFEb0MsRUFFcENDLFlBRm9DLEVBR3BDQyxrQkFIb0MsRUFJakM7QUFDSCxNQUFNQyxLQUFLLEdBQUdGLFlBQVksQ0FBQ0csZUFBYixDQUE4QkMsSUFBOUIsQ0FDWixVQUFDQyxJQUFEO0FBQUEsV0FBVUEsSUFBSSxLQUFLTixNQUFNLENBQUNHLEtBQTFCO0FBQUEsR0FEWSxDQUFkO0FBR0EsTUFBSUEsS0FBSixFQUNFRCxrQkFBa0IsQ0FBQyxVQUFDSyxTQUFEO0FBQUEsdUVBQ2RBLFNBRGM7QUFFakJELE1BQUFBLElBQUksRUFBRUg7QUFGVztBQUFBLEdBQUQsQ0FBbEI7QUFJSCxDQWJNOzs7O0FBZUEsSUFBTUssZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFtQixDQUM5QkMsQ0FEOEIsRUFFOUJQLGtCQUY4QixFQUczQjtBQUNILE1BQU1DLEtBQUssR0FBR00sQ0FBQyxDQUFDQyxNQUFGLENBQVNQLEtBQXZCO0FBRUFELEVBQUFBLGtCQUFrQixDQUFDLFVBQUNLLFNBQUQ7QUFBQSx1RUFDZEEsU0FEYztBQUVqQkksTUFBQUEsUUFBUSxFQUFFUjtBQUZPO0FBQUEsR0FBRCxDQUFsQjtBQUlELENBVk07Ozs7QUFXQSxJQUFNUyxzQkFBc0IsR0FBRyxTQUF6QkEsc0JBQXlCLENBQ3BDSCxDQURvQyxFQUtqQztBQUFBLE1BSEhULE1BR0csdUVBSFcsRUFHWDtBQUFBLE1BRkhhLGVBRUc7QUFBQSxNQURIWCxrQkFDRztBQUNILE1BQU1DLEtBQUssbUNBQVFVLGVBQWUsQ0FBQ0MsaUJBQXhCLENBQVg7QUFDQUMsRUFBQUEscUJBQXFCLENBQ25CWixLQURtQixF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RTtBQUR0QjtBQUQwQixHQUFsQztBQU1BLE1BQU1FLEdBQUcsR0FBRyxJQUFJQyxJQUFKLEVBQVo7QUFDQUYsRUFBQUEseUJBQXlCLENBQUNGLElBQTFCLENBQStCQyx3QkFBL0IsV0FBMkRFLEdBQUcsQ0FBQ0UsT0FBSixFQUEzRCxLQUNFTixrQkFBa0IsQ0FBQ0MsSUFBbkIsQ0FBd0JDLHdCQUQxQjtBQUdBLFNBQU9DLHlCQUFQO0FBQ0QsQ0ExQk0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgY29uc3QgaGFuZGxlTm90aWZpY2F0aW9uVHlwZSA9IChcbiAgb3B0aW9uLFxuICBub3RpZmljYXRpb24sXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbikgPT4ge1xuICBjb25zdCB2YWx1ZSA9IG5vdGlmaWNhdGlvbi5hdmFpbGFibGVfdHlwZXMhLmZpbmQoXG4gICAgKHR5cGUpID0+IHR5cGUgPT09IG9wdGlvbi52YWx1ZSxcbiAgKTtcbiAgaWYgKHZhbHVlKVxuICAgIHNldE5ld05vdGlmaWNhdGlvbigocHJldlN0YXRlKSA9PiAoe1xuICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgdHlwZTogdmFsdWUsXG4gICAgfSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZVNldmVyaXRpZXMgPSAoXG4gIGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+LFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4pID0+IHtcbiAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcblxuICBzZXROZXdOb3RpZmljYXRpb24oKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAuLi5wcmV2U3RhdGUsXG4gICAgc2V2ZXJpdHk6IHZhbHVlLFxuICB9KSk7XG59O1xuZXhwb3J0IGNvbnN0IGhhbmRsZVdhdGVyQXV0aG9yaXRpZXMgPSAoXG4gIGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+IHwgdW5kZWZpbmVkLFxuICBvcHRpb246IGFueSA9ICcnLFxuICBuZXdOb3RpZmljYXRpb24sXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbikgPT4ge1xuICBjb25zdCB2YWx1ZSA9IHsgLi4ubmV3Tm90aWZpY2F0aW9uLndhdGVyX2F1dGhvcml0aWVzIH07XG4gIGhhbmRsZVNlbGVjdGlvbkFuZFNldChcbiAgICB2YWx1ZSxcbiAgICAnd2F0ZXJfYXV0aG9yaXRpZXMnLFxuICAgIGUsXG4gICAgb3B0aW9uLFxuICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVTb3VyY2VzID0gKFxuICBlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PiB8IHVuZGVmaW5lZCxcbiAgb3B0aW9uOiBhbnkgPSAnJyxcbiAgbmV3Tm90aWZpY2F0aW9uLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4pID0+IHtcbiAgY29uc3QgdmFsdWUgPSB7IC4uLm5ld05vdGlmaWNhdGlvbi5wb2ludHMgfTtcbiAgaGFuZGxlU2VsZWN0aW9uQW5kU2V0KHZhbHVlLCAncG9pbnRzJywgZSwgb3B0aW9uLCBzZXROZXdOb3RpZmljYXRpb24pO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZVRhZ3MgPSAoXG4gIGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+IHwgdW5kZWZpbmVkLFxuICBvcHRpb246IGFueSA9ICcnLFxuICBuZXdOb3RpZmljYXRpb24sXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbikgPT4ge1xuICBjb25zdCB2YWx1ZSA9IHsgLi4ubmV3Tm90aWZpY2F0aW9uLnRhZ3MgfTtcbiAgaGFuZGxlU2VsZWN0aW9uQW5kU2V0KHZhbHVlLCAndGFncycsIGUsIG9wdGlvbiwgc2V0TmV3Tm90aWZpY2F0aW9uKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVTZW5zb3JzID0gKFxuICBlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PiB8IHVuZGVmaW5lZCxcbiAgb3B0aW9uOiBhbnkgPSAnJyxcbiAgbmV3Tm90aWZpY2F0aW9uLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4pID0+IHtcbiAgY29uc3QgdmFsdWUgPSB7IC4uLm5ld05vdGlmaWNhdGlvbi5zZW5zb3JzIH07XG4gIGhhbmRsZVNlbGVjdGlvbkFuZFNldCh2YWx1ZSwgJ3NlbnNvcnMnLCBlLCBvcHRpb24sIHNldE5ld05vdGlmaWNhdGlvbik7XG59O1xuXG5leHBvcnQgY29uc3QgaGFuZGxlU2VsZWN0aW9uQW5kU2V0ID0gKFxuICB2YWx1ZSxcbiAgZmllbGQ6IHN0cmluZyxcbiAgZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4gfCB1bmRlZmluZWQsXG4gIG9wdGlvbjogYW55ID0gJycsXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbikgPT4ge1xuICBpZiAoZSAhPT0gdW5kZWZpbmVkICYmIGUudGFyZ2V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YWx1ZS5zZWxlY3Rpb25fdHlwZSA9IGUudGFyZ2V0LnZhbHVlO1xuICAgIHNldE5ld05vdGlmaWNhdGlvbigocHJldlN0YXRlKSA9PiAoe1xuICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgW2ZpZWxkXTogdmFsdWUsXG4gICAgfSkpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHNldDogc3RyaW5nW10gPSBbXTtcbiAgICBvcHRpb24uc2V0LmZvckVhY2goKG9wdGlvbikgPT4ge1xuICAgICAgc2V0LnB1c2goSlNPTi5zdHJpbmdpZnkob3B0aW9uLnZhbHVlKSk7XG4gICAgfSk7XG5cbiAgICB2YWx1ZS5zZWxlY3Rpb25fdHlwZSA9IG9wdGlvbi5zZWxlY3Rpb25fdHlwZTtcbiAgICBpZiAodmFsdWUuc2V0ID09PSBudWxsKSB7XG4gICAgICB2YWx1ZS5zZXQgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUuc2V0ID0gc2V0O1xuICAgIH1cblxuICAgIHNldE5ld05vdGlmaWNhdGlvbigocHJldlN0YXRlKSA9PiAoe1xuICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgW2ZpZWxkXTogdmFsdWUsXG4gICAgfSkpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgaGFuZGxlU2VuZFZpYSA9IChcbiAgZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4sXG4gIG5ld05vdGlmaWNhdGlvbixcbiAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuICBzZXRNb2RhbERldGFpbHMsXG4pID0+IHtcbiAgY29uc3QgdmFsdWUgPSB7IC4uLm5ld05vdGlmaWNhdGlvbi5hY3Rpb25zIH07XG4gIGNvbnN0IGZpZWxkID0gZS50YXJnZXQudmFsdWU7XG4gIHZhbHVlW2ZpZWxkXSA9ICF2YWx1ZVtmaWVsZF07XG5cbiAgaWYgKGZpZWxkID09PSAnc21zJyB8fCBmaWVsZCA9PT0gJ3RlbGVncmFtJykge1xuICAgIHNldE1vZGFsRGV0YWlscyh7IG9wZW46IHRydWUsIGluc3RhbmNlOiBmaWVsZCB9KTtcbiAgfVxuXG4gIHNldE5ld05vdGlmaWNhdGlvbigocHJldlN0YXRlKSA9PiAoe1xuICAgIC4uLnByZXZTdGF0ZSxcbiAgICBhY3Rpb25zOiB2YWx1ZSxcbiAgfSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZU5vdGlmaWNhdGlvblNhbXBsZSA9IChcbiAgZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4sXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbikgPT4ge1xuICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LmNoZWNrZWQ7XG4gIGxldCBwYXJzZWRWYWx1ZSA9IHZhbHVlID8gJzEnIDogJzAnO1xuICBzZXROZXdOb3RpZmljYXRpb24oKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAuLi5wcmV2U3RhdGUsXG4gICAgcHVtcF9vbmx5OiBwYXJzZWRWYWx1ZSxcbiAgfSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlVmFsdWVJc05vdEFuT2JqZWN0ID0gKHZhbHVlKSA9PiB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICFBcnJheS5pc0FycmF5KHZhbHVlKSAmJlxuICAgIHZhbHVlICE9PSBudWxsICYmXG4gICAgdmFsdWUgIT09IHVuZGVmaW5lZFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlTm90aWZpY2F0aW9uQWR2YW5jZWRTZWxlY3Rpb24gPSAobm90aWZpY2F0aW9uKSA9PiB7XG4gIC8vIElmIHRoZXJlJ2xsIGJlIGEgZnV0dXJlIHJlcXVpcmVtZW50IHRvIGFkZCBhbm90aGVyIEFkdmFuY2VkU2VsZWN0aW9uIGZpZWxkcywgcGxlYXNlIGFkZCB0aGVtIHJpZ2h0IGJlbG93XG5cbiAgbGV0IHBvaW50cyA9IG5vdGlmaWNhdGlvbi5wb2ludHM7XG4gIGxldCB3YXRlckF1dGhvcml0aWVzID0gbm90aWZpY2F0aW9uLndhdGVyX2F1dGhvcml0aWVzO1xuICBsZXQgdGFncyA9IG5vdGlmaWNhdGlvbi50YWdzO1xuICBsZXQgc2Vuc29ycyA9IG5vdGlmaWNhdGlvbi5zZW5zb3JzO1xuXG4gIGNvbnN0IGFsbF9hZHZhbmNlZF9zZWxlY3Rpb25zID0gW3BvaW50cywgd2F0ZXJBdXRob3JpdGllcywgdGFncywgc2Vuc29yc107XG5cbiAgYWxsX2FkdmFuY2VkX3NlbGVjdGlvbnMuZm9yRWFjaCgoc2VsZWN0aW9uKSA9PiB7XG4gICAgaWYgKFxuICAgICAgdmFsaWRhdGVWYWx1ZUlzTm90QW5PYmplY3QoXG4gICAgICAgIHNlbGVjdGlvbiAhPT0gdW5kZWZpbmVkICYmIHNlbGVjdGlvbi5zZXQgIT09IG51bGwgJiYgc2VsZWN0aW9uLnNldFswXSxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIGNvbnN0IHNldDogc3RyaW5nW10gPSBbXTtcbiAgICAgIHNlbGVjdGlvbi5zZXQuZm9yRWFjaCgocG9pbnQpID0+IHtcbiAgICAgICAgc2V0LnB1c2goSlNPTi5zdHJpbmdpZnkocG9pbnQuaWQpKTtcbiAgICAgIH0pO1xuXG4gICAgICBzZWxlY3Rpb24uc2V0ID0gc2V0O1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIG5vdGlmaWNhdGlvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVBdHRyaWJ1dGVzID0gKG5vdGlmaWNhdGlvbiwgbmV3Tm90aWZpY2F0aW9uKSA9PiB7XG4gIC8vIE1ha2Ugc3VyZSB0byByZW1vdmUgdW5uZWNlc3NhcnkgYXR0cmlidXRlcyBmb3Igc29tZSBBbGVydENvbmZpZ3NcblxuICBkZWxldGUgbm90aWZpY2F0aW9uLmF2YWlsYWJsZV90eXBlcztcbiAgaWYgKG5ld05vdGlmaWNhdGlvbi50eXBlICE9PSAnUG9sbHV0aW9uQWxlcnRDb25maWcnKVxuICAgIGRlbGV0ZSBub3RpZmljYXRpb24uc2V2ZXJpdHk7XG4gIGlmIChuZXdOb3RpZmljYXRpb24udHlwZSAhPT0gJ1BvbGx1dGlvbkFsZXJ0Q29uZmlnJylcbiAgICBkZWxldGUgbm90aWZpY2F0aW9uLnB1bXBfb25seTtcbiAgaWYgKG5ld05vdGlmaWNhdGlvbi50eXBlID09PSAnV2JlV2Vla2x5RGlnZXN0QWxlcnRDb25maWcnKVxuICAgIGRlbGV0ZSBub3RpZmljYXRpb24ucG9pbnRzO1xuICBpZiAobmV3Tm90aWZpY2F0aW9uLnR5cGUgIT09ICdXYmVXZWVrbHlEaWdlc3RBbGVydENvbmZpZycpXG4gICAgZGVsZXRlIG5vdGlmaWNhdGlvbi50YWdzO1xuICBpZiAobmV3Tm90aWZpY2F0aW9uLnR5cGUgIT09ICdEYXRhbG9nZ2VyVGhyZXNob2xkQWxlcnRDb25maWcnKVxuICAgIGRlbGV0ZSBub3RpZmljYXRpb24uc2Vuc29ycztcblxuICBub3RpZmljYXRpb25bJ2FsZXJ0X3R5cGUnXSA9IG5vdGlmaWNhdGlvbi50eXBlO1xuICBub3RpZmljYXRpb25bJ19kZXN0cm95J10gPSAwO1xuXG4gIHJldHVybiBub3RpZmljYXRpb247XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0U2VuZFZpYSA9IChub3RpZmljYXRpb24pID0+IHtcbiAgbGV0IGZvcm1hdHRlZFZhbHVlOiBhbnkgPSBbXTtcbiAgaWYgKG5vdGlmaWNhdGlvbi5hY3Rpb25zWyd0ZWxlZ3JhbSddKVxuICAgIGZvcm1hdHRlZFZhbHVlLnB1c2goWydTZW5kVGVsZWdyYW1BY3Rpb24nLCAnMCddKTtcbiAgaWYgKG5vdGlmaWNhdGlvbi5hY3Rpb25zWydlbWFpbCddKVxuICAgIGZvcm1hdHRlZFZhbHVlLnB1c2goWydTZW5kRW1haWxBY3Rpb24nLCAnMCddKTtcbiAgaWYgKG5vdGlmaWNhdGlvbi5hY3Rpb25zWydzbXMnXSkgZm9ybWF0dGVkVmFsdWUucHVzaChbJ1NlbmRTbXNBY3Rpb24nLCAnMCddKTtcbiAgbm90aWZpY2F0aW9uLmFjdGlvbnMgPSBmb3JtYXR0ZWRWYWx1ZS5mbGF0KCk7XG5cbiAgcmV0dXJuIG5vdGlmaWNhdGlvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZVNldmVyaXRpZXMgPSAobm90aWZpY2F0aW9uKSA9PiB7XG4gIGxldCB2YWx1ZTtcbiAgc3dpdGNoIChub3RpZmljYXRpb24uc2V2ZXJpdHkpIHtcbiAgICBjYXNlICdtZWRpdW0nOlxuICAgICAgdmFsdWUgPSAnMCc7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdoaWdoJzpcbiAgICAgIHZhbHVlID0gJzEnO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZXh0cmVtZSc6XG4gICAgICB2YWx1ZSA9ICcyJztcbiAgfVxuICBub3RpZmljYXRpb24uc2V2ZXJpdHkgPSB2YWx1ZTtcbiAgcmV0dXJuIG5vdGlmaWNhdGlvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXROb3RpZmljYXRpb24gPSAobmV3Tm90aWZpY2F0aW9uKSA9PiB7XG4gIGxldCBub3RpZmljYXRpb25Db3B5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdOb3RpZmljYXRpb24pKTtcbiAgbm90aWZpY2F0aW9uQ29weSA9IHBhcnNlTm90aWZpY2F0aW9uQWR2YW5jZWRTZWxlY3Rpb24obm90aWZpY2F0aW9uQ29weSk7XG4gIG5vdGlmaWNhdGlvbkNvcHkgPSBmb3JtYXRTZW5kVmlhKG5vdGlmaWNhdGlvbkNvcHkpO1xuICBub3RpZmljYXRpb25Db3B5ID0gZGVsZXRlQXR0cmlidXRlcyhub3RpZmljYXRpb25Db3B5LCBuZXdOb3RpZmljYXRpb24pO1xuICBub3RpZmljYXRpb25Db3B5ID0gcGFyc2VTZXZlcml0aWVzKG5vdGlmaWNhdGlvbkNvcHkpO1xuXG4gIGxldCBub3RpZmljYXRpb25Ub1NhdmUgPSB7XG4gICAgdXNlcjoge1xuICAgICAgYWxlcnRfY29uZmlnc19hdHRyaWJ1dGVzOiB7XG4gICAgICAgIC4uLm5vdGlmaWNhdGlvbkNvcHksXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3Qgbm90aWZpY2F0aW9uV2l0aFRpbWVTdGFtcCA9IHtcbiAgICB1c2VyOiB7XG4gICAgICBhbGVydF9jb25maWdzX2F0dHJpYnV0ZXM6IHt9LFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgbm90aWZpY2F0aW9uV2l0aFRpbWVTdGFtcC51c2VyLmFsZXJ0X2NvbmZpZ3NfYXR0cmlidXRlc1tgJHtub3cuZ2V0VGltZSgpfWBdID1cbiAgICBub3RpZmljYXRpb25Ub1NhdmUudXNlci5hbGVydF9jb25maWdzX2F0dHJpYnV0ZXM7XG5cbiAgcmV0dXJuIG5vdGlmaWNhdGlvbldpdGhUaW1lU3RhbXA7XG59O1xuIl19