@kando-env/kando-ui 1.2.122 → 1.2.123

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.
@@ -347,7 +347,7 @@ var FilterContainer = function FilterContainer(props) {
347
347
  return function cleanup() {
348
348
  setRendered(false);
349
349
  };
350
- }, [global_data.eventFilterParam, global_data.waterAuthorityId, WaId]);
350
+ }, [global_data.waterAuthorityId, WaId]);
351
351
  return /*#__PURE__*/_react.default.createElement("div", {
352
352
  className: "filter-container ".concat(filterPopupOpen ? '' : 'filter-container--hidden')
353
353
  }, activeFilterCopy !== undefined && /*#__PURE__*/_react.default.createElement("div", {
@@ -424,4 +424,4 @@ var connector = (0, _reactRedux.connect)(mapStateToProps);
424
424
  var _default = connector(FilterContainer);
425
425
 
426
426
  exports.default = _default;
427
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudHNfbGlzdC9GaWx0ZXIvRmlsdGVyQ29udGFpbmVyLnRzeCJdLCJuYW1lcyI6WyJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsImdsb2JhbF9kYXRhIiwibmF2X2NvbnRleHRfZGF0YSIsInBvaW50c19kYXRhIiwiRmlsdGVyQ29udGFpbmVyIiwicHJvcHMiLCJmaWx0ZXJQb3B1cE9wZW4iLCJhcHBseUxvZ2ljIiwiZmV0Y2hUeXBlIiwiZGlzcGF0Y2giLCJuYW1lSW5wdXQiLCJmaWx0ZXJDb250ZW50IiwiZmlsdGVycyIsInNldEZpbHRlcnMiLCJhdmFpbGFibGVGaWx0ZXJJdGVtcyIsInNldEF2YWlsYWJsZUZpbHRlckl0ZW1zIiwicmVuZGVyZWQiLCJzZXRSZW5kZXJlZCIsIldhSWQiLCJzZXRXYUlkIiwidW5kZWZpbmVkIiwiYWN0aXZlRmlsdGVyIiwic2V0QWN0aXZlRmlsdGVyIiwiYWN0aXZlRmlsdGVyQ29weSIsInNldEFjdGl2ZUZpbHRlckNvcHkiLCJjc3JmIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiZ2V0QXR0cmlidXRlIiwidXNlUXVlcnkiLCJVUkxTZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJoaXN0b3J5IiwicXVlcnkiLCJnZXRLUUxGcm9tVVJMIiwiZ2V0IiwiZ2V0UG9pbnRzVG9GaWx0ZXJzIiwiaW50ZXJlc3RQb2ludEZpbHRlckl0ZW0iLCJmaW5kIiwiZiIsInR5cGUiLCJmaWx0ZXJlZFBvaW50c0RhdGEiLCJpdGVtcyIsImZpbHRlciIsInBvaW50IiwicGFydF9vZl9vYnNlcnZhdGlvbiIsIm1hcCIsImlkIiwibmFtZSIsImdyb3VwIiwib3B0aW9ucyIsImZvckVhY2giLCJmaWx0ZXJJdGVtIiwiZmlsdGVyX2l0ZW1zIiwiZmkiLCJhdmFpbGFibGVfb3B0aW9ucyIsImZldGNoRXZlbnRGaWx0ZXJzIiwicHJlcGFyZWRQYXJhbXMiLCJtZXRob2QiLCJ1cmwiLCJmZXRjaCIsImhlYWRlcnMiLCJBY2NlcHQiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsInRoZW4iLCJyZXNwb25zZSIsImpzb24iLCJkYXRhIiwiYXZhaWxhYmxlX2ZpbHRlcl9pdGVtcyIsInNhdmVkIiwiZGVlcENsb25lIiwicGFyc2UiLCJnZXREYXRhIiwid2F0ZXJBdXRob3JpdHlJZCIsImpzb25TaGFsbG93Q29weSIsIk9iamVjdCIsImFzc2lnbiIsImFjdGl2ZSIsImRpc3BsYXllZF9maWx0ZXIiLCJhY3RpdmF0ZUZpbHRlciIsImFwcGx5RmlsdGVyIiwiaGFuZGxlRmlsdGVyQ2hhbmdlIiwiY3VycmVudCIsImNsaWNrIiwic2F2ZUFjdGl2ZUZpbHRlciIsImNsb25lZEZpbHRlcnMiLCJmaWx0ZXJUb01vZGlmeUluZGV4IiwiaW5kZXhPZiIsImZpbHRlcl90eXBlIiwidWlfZmlsdGVyIiwiaXNfYWN0aXZlIiwiTWF0aCIsInNpZ24iLCJjcmVhdGVGaWx0ZXIiLCJuZXdGaWx0ZXIiLCJkZWxldGVGaWx0ZXIiLCJsZW5ndGgiLCJnZXRFdmVudElkRnJvbVVSTCIsImdldFdhSWRGcm9tVVJMIiwiZ2V0S1FMVmFsdWVzRnJvbVVSTCIsInZhbHVlIiwibmF2Q29udGV4dCIsImluY2x1ZGVzIiwicHVzaCIsImxvY2FsZSIsImN1cnJlbnRQYWdlIiwiaXNGZXRjaCIsImhhbmRsZUNyZWF0aW9uQ2xpY2siLCJldmVudEZpbHRlclBhcmFtIiwiY2xlYW51cCIsImkxOG4iLCJ0IiwicGFyc2VTZWxlY3RlZEl0ZW1zIiwiY29ubmVjdG9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBTUE7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUNBLFNBQVNBLGVBQVQsQ0FBeUJDLEtBQXpCLEVBQTJDO0FBQ3pDLE1BQVFDLFdBQVIsR0FBdURELEtBQXZELENBQVFDLFdBQVI7QUFBQSxN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ICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24sIEZvcm1Db250cm9sIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCBEcm9wZG93biBmcm9tICdyZWFjdC1ib290c3RyYXAvRHJvcGRvd24nO1xuaW1wb3J0IHsgY29ubmVjdCwgQ29ubmVjdGVkUHJvcHMsIHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgdXNlSGlzdG9yeSwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIFNhdmVJY29uIH0gZnJvbSAnc3JjL2Fzc2V0cy9pY29ucy9kaXNrZXR0ZS5zdmcnO1xuaW1wb3J0IHsgUmVhY3RDb21wb25lbnQgYXMgTGlzdEljb24gfSBmcm9tICdzcmMvYXNzZXRzL2ljb25zL2xpc3Quc3ZnJztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJ3NyYy9tb2RlbHMvSUFwcFN0YXRlJztcbmltcG9ydCB7IElGaWx0ZXIgfSBmcm9tICdzcmMvc3RvcmUvZmlsdGVycy9JRmlsdGVyJztcbmltcG9ydCB7IElGaWx0ZXJJdGVtIH0gZnJvbSAnc3JjL3N0b3JlL2ZpbHRlcnMvSUZpbHRlckl0ZW0nO1xuaW1wb3J0IHtcbiAgc2V0QWN0aXZlRmlsdGVyR2xvYmFsbHksXG4gIHNldEV2ZW50RmlsdGVyUGFyYW0sXG59IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvYWN0aW9ucyc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IGJ1aWxkS1FMUXVlcnksIHBhcnNlU2VsZWN0ZWRJdGVtcyB9IGZyb20gJ3NyYy91dGlsaXRpZXMva3FsJztcbmltcG9ydCAnLi9GaWx0ZXJTdHlsZS5zY3NzJztcbmltcG9ydCBGaWx0ZXIgZnJvbSAnLi9GaWx0ZXInO1xuaW1wb3J0IEZpbHRlcnNEcm9wRG93biBmcm9tICcuL0ZpbHRlcnNEcm9wRG93bic7XG5pbXBvcnQgeyBzZXRTYW1wbGluZ0RhdGEgfSBmcm9tICdzcmMvc3RvcmUvc2FtcGxpbmdzL2FjdGlvbnNDcmVhdG9yJztcbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHsgZ2xvYmFsX2RhdGEsIG5hdl9jb250ZXh0X2RhdGEsIHBvaW50c19kYXRhIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIGdsb2JhbF9kYXRhLFxuICAgIG5hdl9jb250ZXh0X2RhdGEsXG4gICAgcG9pbnRzX2RhdGEsXG4gIH07XG59XG5cbnR5cGUgSVByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiB7XG4gIGZpbHRlclBvcHVwT3BlbjogYm9vbGVhbjtcbiAgZmV0Y2hUeXBlOiBzdHJpbmc7XG4gIGFwcGx5TG9naWM/OiAodmFsdWVzOiBzdHJpbmcpID0+IHZvaWQ7XG59O1xuXG5jb25zdCBGaWx0ZXJDb250YWluZXI6IFJlYWN0LkZDPElQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIGdsb2JhbF9kYXRhLFxuICAgIG5hdl9jb250ZXh0X2RhdGEsXG4gICAgcG9pbnRzX2RhdGEsXG4gICAgZmlsdGVyUG9wdXBPcGVuLFxuICAgIGFwcGx5TG9naWMsXG4gICAgZmV0Y2hUeXBlID0gJ0V2ZW50RmlsdGVycycsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYW1lSW5wdXQgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGZpbHRlckNvbnRlbnQgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBbZmlsdGVycywgc2V0RmlsdGVyc10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW2F2YWlsYWJsZUZpbHRlckl0ZW1zLCBzZXRBdmFpbGFibGVGaWx0ZXJJdGVtc10gPSB1c2VTdGF0ZShbXSk7XG4gIGNvbnN0IFtyZW5kZXJlZCwgc2V0UmVuZGVyZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbV2FJZCwgc2V0V2FJZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPigpO1xuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICBjb25zdCBbYWN0aXZlRmlsdGVyLCBzZXRBY3RpdmVGaWx0ZXJdID0gdXNlU3RhdGU8YW55Pih1bmRlZmluZWQpO1xuICBjb25zdCBbYWN0aXZlRmlsdGVyQ29weSwgc2V0QWN0aXZlRmlsdGVyQ29weV0gPSB1c2VTdGF0ZTxhbnk+KHVuZGVmaW5lZCk7XG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgY3NyZiA9IGRvY3VtZW50XG4gICAgLnF1ZXJ5U2VsZWN0b3IoXCJtZXRhW25hbWU9J2NzcmYtdG9rZW4nXVwiKVxuICAgIC5nZXRBdHRyaWJ1dGUoJ2NvbnRlbnQnKTtcbiAgY29uc3QgdXNlUXVlcnkgPSAoKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXModXNlTG9jYXRpb24oKS5zZWFyY2gpO1xuICB9O1xuICBjb25zdCBoaXN0b3J5ID0gdXNlSGlzdG9yeSgpO1xuICBjb25zdCBxdWVyeSA9IHVzZVF1ZXJ5KCk7XG4gIGNvbnN0IGdldEtRTEZyb21VUkwgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHF1ZXJ5LmdldCgndmFsdWVzRnJvbUtRTCcpO1xuICB9O1xuXG4gIGNvbnN0IGdldFBvaW50c1RvRmlsdGVycyA9IChhdmFpbGFibGVGaWx0ZXJJdGVtczogYW55LCBmaWx0ZXJzOiBhbnkpID0+IHtcbiAgICBsZXQgaW50ZXJlc3RQb2ludEZpbHRlckl0ZW0gPSBhdmFpbGFibGVGaWx0ZXJJdGVtcy5maW5kKFxuICAgICAgKGY6IElGaWx0ZXJJdGVtKSA9PiBmLnR5cGUgPT09ICdJbnRlcmVzdFBvaW50RmlsdGVySXRlbScsXG4gICAgKTtcbiAgICBsZXQgZmlsdGVyZWRQb2ludHNEYXRhID0gcG9pbnRzX2RhdGEuaXRlbXNcbiAgICAgIC5maWx0ZXIoKHBvaW50OiBJUG9pbnQpID0+IHBvaW50LnBhcnRfb2Zfb2JzZXJ2YXRpb24gPT09IHRydWUpXG4gICAgICAubWFwKChwb2ludDogSVBvaW50KSA9PiB7XG4gICAgICAgIHJldHVybiB7IGlkOiBwb2ludC5pZCwgbmFtZTogcG9pbnQuZ3JvdXAubmFtZSB9O1xuICAgICAgfSk7XG5cbiAgICBpZiAoaW50ZXJlc3RQb2ludEZpbHRlckl0ZW0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgaW50ZXJlc3RQb2ludEZpbHRlckl0ZW0ub3B0aW9ucyA9IGZpbHRlcmVkUG9pbnRzRGF0YTtcbiAgICB9XG5cbiAgICBmaWx0ZXJzLmZvckVhY2goKGY6IElGaWx0ZXIpID0+IHtcbiAgICAgIGxldCBmaWx0ZXJJdGVtID0gZi5maWx0ZXJfaXRlbXMuZmluZChcbiAgICAgICAgKGZpOiBJRmlsdGVySXRlbSkgPT4gZmkudHlwZSA9PT0gJ0ludGVyZXN0UG9pbnRGaWx0ZXJJdGVtJyxcbiAgICAgICk7XG5cbiAgICAgIGlmIChmaWx0ZXJJdGVtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZmlsdGVySXRlbS5hdmFpbGFibGVfb3B0aW9ucyA9IGZpbHRlcmVkUG9pbnRzRGF0YTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHNldEZpbHRlcnMoZmlsdGVycyk7XG4gIH07XG5cbiAgY29uc3QgZmV0Y2hFdmVudEZpbHRlcnMgPSAoXG4gICAgcHJlcGFyZWRQYXJhbXM6IGFueSxcbiAgICBtZXRob2Q6IHN0cmluZyxcbiAgICB1cmw6IHN0cmluZyxcbiAgICBmaWx0ZXI6IGFueSA9IG51bGwsXG4gICkgPT4ge1xuICAgIGlmIChjc3JmICE9PSBudWxsKSB7XG4gICAgICBmZXRjaCh1cmwsIHtcbiAgICAgICAgbWV0aG9kOiBtZXRob2QsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICdYLUNTUkYtVG9rZW4nOiBjc3JmLFxuICAgICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICB9LFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShwcmVwYXJlZFBhcmFtcyksXG4gICAgICB9KVxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlLmpzb24oKSlcbiAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICBnZXRQb2ludHNUb0ZpbHRlcnMoZGF0YS5hdmFpbGFibGVfZmlsdGVyX2l0ZW1zLCBkYXRhLmZpbHRlcnMpO1xuXG4gICAgICAgICAgaWYgKGZpbHRlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgbGV0IHNhdmVkID0gZGF0YS5maWx0ZXJzLmZpbmQoXG4gICAgICAgICAgICAgIChmOiBJRmlsdGVyKSA9PiBmLm5hbWUgPT09IGZpbHRlci5uYW1lLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHNldEFjdGl2ZUZpbHRlcihzYXZlZCk7XG4gICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KHNhdmVkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBkZWVwQ2xvbmUgPSAoZGF0YTogYW55KSA9PiB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICB9O1xuXG4gIGNvbnN0IGdldERhdGEgPSAoKSA9PiB7XG4gICAgZmV0Y2goXG4gICAgICBgL3VpX2ZpbHRlcnMuanNvbj93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZFxuICAgICAgfSZmaWx0ZXJfdHlwZT0ke2ZldGNoVHlwZX0mdmFsdWVzRnJvbUtRTD0ke2dldEtRTEZyb21VUkwoKX1gLFxuICAgIClcbiAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuanNvbigpKVxuICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgZ2V0UG9pbnRzVG9GaWx0ZXJzKGpzb24uYXZhaWxhYmxlX2ZpbHRlcl9pdGVtcywganNvbi5maWx0ZXJzKTtcblxuICAgICAgICBsZXQganNvblNoYWxsb3dDb3B5ID0gT2JqZWN0LmFzc2lnbih7fSwganNvbik7XG4gICAgICAgIGpzb25TaGFsbG93Q29weS5maWx0ZXJzID0gZGVlcENsb25lKGpzb25TaGFsbG93Q29weS5maWx0ZXJzKTtcbiAgICAgICAgbGV0IGFjdGl2ZSA9IGpzb25TaGFsbG93Q29weS5kaXNwbGF5ZWRfZmlsdGVyO1xuXG4gICAgICAgIGlmIChhY3RpdmUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGFjdGl2YXRlRmlsdGVyKGpzb25TaGFsbG93Q29weS5maWx0ZXJzWzBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRBdmFpbGFibGVGaWx0ZXJJdGVtcyhqc29uU2hhbGxvd0NvcHkuYXZhaWxhYmxlX2ZpbHRlcl9pdGVtcyk7XG4gICAgICAgICAgc2V0QWN0aXZlRmlsdGVyKGFjdGl2ZSk7XG4gICAgICAgICAgc2V0QWN0aXZlRmlsdGVyQ29weShhY3RpdmUpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXBwbHlGaWx0ZXIoYWN0aXZlKTtcbiAgICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUZpbHRlckNoYW5nZSA9IChmaWx0ZXI6IElGaWx0ZXIpID0+IHtcbiAgICBzZXRBY3RpdmVGaWx0ZXIoZGVlcENsb25lKGZpbHRlcikpO1xuICAgIHNldEFjdGl2ZUZpbHRlckNvcHkoZGVlcENsb25lKGZpbHRlcikpO1xuICAgIGZpbHRlckNvbnRlbnQuY3VycmVudCEuY2xpY2soKTtcbiAgfTtcblxuICBjb25zdCBzYXZlQWN0aXZlRmlsdGVyID0gKFxuICAgIGZpbHRlcjpcbiAgICAgIHwgSUZpbHRlclxuICAgICAgfCB7XG4gICAgICAgICAgaWQ6IG51bWJlcjtcbiAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgZmlsdGVyX2l0ZW1zOiBJRmlsdGVySXRlbVtdO1xuICAgICAgICAgIGlzX2FjdGl2ZTogYm9vbGVhbjtcbiAgICAgICAgfSxcbiAgKSA9PiB7XG4gICAgbGV0IGNsb25lZEZpbHRlcnMgPSBkZWVwQ2xvbmUoZmlsdGVycyk7XG4gICAgbGV0IGZpbHRlclRvTW9kaWZ5SW5kZXggPSBjbG9uZWRGaWx0ZXJzLmluZGV4T2YoXG4gICAgICBjbG9uZWRGaWx0ZXJzLmZpbmQoKGY6IGFueSkgPT4gZi5pZCA9PT0gZmlsdGVyLmlkKSxcbiAgICApO1xuICAgIGxldCBwcmVwYXJlZFBhcmFtcyA9IHtcbiAgICAgIGZpbHRlcl90eXBlOiBmZXRjaFR5cGUsXG4gICAgICB1aV9maWx0ZXI6IHtcbiAgICAgICAgbmFtZTogZmlsdGVyLm5hbWUsXG4gICAgICAgIGlzX2FjdGl2ZTogZmlsdGVyLmlzX2FjdGl2ZSxcbiAgICAgICAgZmlsdGVyX2l0ZW1zOiBKU09OLnN0cmluZ2lmeShmaWx0ZXIuZmlsdGVyX2l0ZW1zKSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNsb25lZEZpbHRlcnNbZmlsdGVyVG9Nb2RpZnlJbmRleF0gPSBmaWx0ZXI7XG4gICAgc2V0RmlsdGVycyhjbG9uZWRGaWx0ZXJzKTtcbiAgICBzZXRBY3RpdmVGaWx0ZXIoZmlsdGVyKTtcbiAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KGZpbHRlcik7XG5cbiAgICBpZiAoTWF0aC5zaWduKGZpbHRlci5pZCkgPiAwKSB7XG4gICAgICBmZXRjaEV2ZW50RmlsdGVycyhcbiAgICAgICAgcHJlcGFyZWRQYXJhbXMsXG4gICAgICAgICdQVVQnLFxuICAgICAgICBgL3VpX2ZpbHRlcnMvJHtmaWx0ZXIuaWR9P3dhdGVyX2F1dGhvcml0eV9pZD0ke2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWR9YCxcbiAgICAgICAgZmlsdGVyLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmV0Y2hFdmVudEZpbHRlcnMoXG4gICAgICAgIHByZXBhcmVkUGFyYW1zLFxuICAgICAgICAnUE9TVCcsXG4gICAgICAgIGAvdWlfZmlsdGVycz93YXRlcl9hdXRob3JpdHlfaWQ9JHtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkfWAsXG4gICAgICAgIGZpbHRlcixcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGNyZWF0ZUZpbHRlciA9IChmaWx0ZXI6IElGaWx0ZXIsIG5hbWU6IHN0cmluZykgPT4ge1xuICAgIGxldCBuZXdGaWx0ZXIgPSB7XG4gICAgICBpZDogLTEsXG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgZmlsdGVyX2l0ZW1zOiBmaWx0ZXIuZmlsdGVyX2l0ZW1zLFxuICAgICAgaXNfYWN0aXZlOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgc2V0RmlsdGVycyhbLi4uZmlsdGVycywgbmV3RmlsdGVyXSk7XG4gICAgc2V0QWN0aXZlRmlsdGVyQ29weShuZXdGaWx0ZXIpO1xuICAgIHNldEFjdGl2ZUZpbHRlcihuZXdGaWx0ZXIpO1xuICAgIHNhdmVBY3RpdmVGaWx0ZXIobmV3RmlsdGVyKTtcbiAgfTtcblxuICBjb25zdCBkZWxldGVGaWx0ZXIgPSAoZmlsdGVyOiBJRmlsdGVyKSA9PiB7XG4gICAgaWYgKGNzcmYgIT09IG51bGwgJiYgZmlsdGVyLmlkICE9PSAtMSkge1xuICAgICAgZmV0Y2goXG4gICAgICAgIGAvdWlfZmlsdGVycy8ke2ZpbHRlci5pZH0/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mZmlsdGVyX3R5cGU9JHtmZXRjaFR5cGV9YCxcbiAgICAgICAge1xuICAgICAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ1gtQ1NSRi1Ub2tlbic6IGNzcmYsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZS5qc29uKCkpXG4gICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgbGV0IGFjdGl2ZSA9IGRhdGEuZmlsdGVycy5maW5kKFxuICAgICAgICAgICAgKGZpbHRlcjogSUZpbHRlcikgPT4gZmlsdGVyLmlzX2FjdGl2ZSA9PT0gdHJ1ZSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKGFjdGl2ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzZXRGaWx0ZXJzKGRhdGEuZmlsdGVycyk7XG4gICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXIoYWN0aXZlKTtcbiAgICAgICAgICAgIHNldEFjdGl2ZUZpbHRlckNvcHkoYWN0aXZlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGRhdGEuZmlsdGVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgZ2V0RGF0YSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZGF0YS5maWx0ZXJzWzBdLmlzX2FjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICAgIHNldEFjdGl2ZUZpbHRlcihkYXRhLmZpbHRlcnNbMF0pO1xuICAgICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KGRhdGEuZmlsdGVyc1swXSk7XG4gICAgICAgICAgICAgIHNldEZpbHRlcnMoZGF0YS5maWx0ZXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBnZXRFdmVudElkRnJvbVVSTCA9ICgpID0+IHtcbiAgICByZXR1cm4gcXVlcnkuZ2V0KCdldmVudElkJyk7XG4gIH07XG5cbiAgY29uc3QgZ2V0V2FJZEZyb21VUkwgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHF1ZXJ5LmdldCgnd2F0ZXJfYXV0aG9yaXR5X2lkJyk7XG4gIH07XG5cbiAgY29uc3QgZ2V0S1FMVmFsdWVzRnJvbVVSTCA9ICgpID0+IHtcbiAgICByZXR1cm4gcXVlcnkuZ2V0KCd2YWx1ZXNGcm9tS1FMJyk7XG4gIH07XG5cbiAgY29uc3QgYWN0aXZhdGVGaWx0ZXIgPSAoZmlsdGVyOiBJRmlsdGVyKSA9PiB7XG4gICAgZmV0Y2hFdmVudEZpbHRlcnMoXG4gICAgICB7fSxcbiAgICAgICdQVVQnLFxuICAgICAgYC91aV9maWx0ZXJzL2FjdGl2YXRlLyR7ZmlsdGVyLmlkfT93YXRlcl9hdXRob3JpdHlfaWQ9JHtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkfSZmaWx0ZXJfdHlwZT0ke2ZldGNoVHlwZX1gLFxuICAgICAgZmlsdGVyLFxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgYXBwbHlGaWx0ZXIgPSAoZmlsdGVyID0gYWN0aXZlRmlsdGVyQ29weSkgPT4ge1xuICAgIGxldCB2YWx1ZSA9ICdzZXZlcml0eSc7XG5cbiAgICBpZiAobmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWUgPT09ICdzYW1wbGluZ3MtbGlzdCcpIHtcbiAgICAgIHZhbHVlID0gJ25ld2VzdCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChnZXRLUUxWYWx1ZXNGcm9tVVJMKCkgIT09IG51bGwpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGdldEtRTFZhbHVlc0Zyb21VUkwoKSEuaW5jbHVkZXMoJ09SREVSX0JZJykgJiZcbiAgICAgICAgICBnZXRLUUxWYWx1ZXNGcm9tVVJMKCkhLmluY2x1ZGVzKCduZXdlc3QnKVxuICAgICAgICApIHtcbiAgICAgICAgICB2YWx1ZSA9ICduZXdlc3QnO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGdldEtRTFZhbHVlc0Zyb21VUkwoKSEuaW5jbHVkZXMoJ09SREVSX0JZJykgJiZcbiAgICAgICAgICBnZXRLUUxWYWx1ZXNGcm9tVVJMKCkhLmluY2x1ZGVzKCdvbGRlc3QnKVxuICAgICAgICApIHtcbiAgICAgICAgICB2YWx1ZSA9ICdvbGRlc3QnO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGdldEtRTFZhbHVlc0Zyb21VUkwoKSEuaW5jbHVkZXMoJ09SREVSX0JZJykgJiZcbiAgICAgICAgICBnZXRLUUxWYWx1ZXNGcm9tVVJMKCkhLmluY2x1ZGVzKCdzZXZlcml0eScpXG4gICAgICAgICkge1xuICAgICAgICAgIHZhbHVlID0gJ3NldmVyaXR5JztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZSA9PT0gJ2V2ZW50c192aWV3Jykge1xuICAgICAgaGlzdG9yeS5wdXNoKFxuICAgICAgICBgLyR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWV9L2luZGV4P3dhdGVyX2F1dGhvcml0eV9pZD0ke1xuICAgICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRcbiAgICAgICAgfSZsb2NhbGU9JHtcbiAgICAgICAgICBuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubG9jYWxlXG4gICAgICAgIH0mZXZlbnRJZD0ke2dldEV2ZW50SWRGcm9tVVJMKCl9JnZhbHVlc0Zyb21LUUw9JHtidWlsZEtRTFF1ZXJ5KFxuICAgICAgICAgIGZpbHRlcixcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAobmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWUgPT09ICdzYW1wbGluZ3MtbGlzdCcpIHtcbiAgICAgIGhpc3RvcnkucHVzaChcbiAgICAgICAgYC8ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgICBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkXG4gICAgICAgIH0mbG9jYWxlPSR7XG4gICAgICAgICAgbmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZVxuICAgICAgICB9JnZhbHVlc0Zyb21LUUw9JHtidWlsZEtRTFF1ZXJ5KGZpbHRlciwgdmFsdWUpfWAsXG4gICAgICApO1xuXG4gICAgICBpZiAoYXBwbHlMb2dpYyAhPT0gdW5kZWZpbmVkKSBhcHBseUxvZ2ljKGJ1aWxkS1FMUXVlcnkoZmlsdGVyLCB2YWx1ZSkpO1xuICAgIH1cblxuICAgIGRpc3BhdGNoKHNldEV2ZW50RmlsdGVyUGFyYW0oYnVpbGRLUUxRdWVyeShmaWx0ZXIsIHZhbHVlKSkpO1xuICAgIGRpc3BhdGNoKHNldEFjdGl2ZUZpbHRlckdsb2JhbGx5KGZpbHRlcikpO1xuICAgIC8vIEFsd2F5cyByZXNldCBwYWdlIHRvIDEgd2hlbiBhIG5ldyBmaWx0ZXIgaXMgYXBwbGllZFxuICAgIGRpc3BhdGNoKHNldFNhbXBsaW5nRGF0YSh7IGN1cnJlbnRQYWdlOiAxLCBpc0ZldGNoOiBmYWxzZSB9KSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ3JlYXRpb25DbGljayA9ICgpID0+IHtcbiAgICBjcmVhdGVGaWx0ZXIoYWN0aXZlRmlsdGVyQ29weSwgbmFtZUlucHV0LmN1cnJlbnQhLnZhbHVlKTtcbiAgICBuYW1lSW5wdXQuY3VycmVudCEudmFsdWUgPSAnJztcbiAgICBmaWx0ZXJDb250ZW50LmN1cnJlbnQhLmNsaWNrKCk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRXYUlkKGdldFdhSWRGcm9tVVJMKCkpO1xuICAgIGlmICghcmVuZGVyZWQpIHtcbiAgICAgIHNldFJlbmRlcmVkKHRydWUpO1xuICAgICAgZ2V0RGF0YSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZ2xvYmFsX2RhdGEuZXZlbnRGaWx0ZXJQYXJhbSA9PT0gJycgJiYgZmlsdGVycy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgbGV0IGZpbHRlciA9IGZpbHRlcnMuZmluZCgoZmlsdGVyOiBJRmlsdGVyKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGZpbHRlci5pc19hY3RpdmU7XG4gICAgICAgIH0pO1xuICAgICAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KGZpbHRlcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICBzZXRSZW5kZXJlZChmYWxzZSk7XG4gICAgfTtcbiAgfSwgW2dsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW0sIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQsIFdhSWRdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17YGZpbHRlci1jb250YWluZXIgJHtcbiAgICAgICAgZmlsdGVyUG9wdXBPcGVuID8gJycgOiAnZmlsdGVyLWNvbnRhaW5lci0taGlkZGVuJ1xuICAgICAgfWB9XG4gICAgPlxuICAgICAge2FjdGl2ZUZpbHRlckNvcHkgIT09IHVuZGVmaW5lZCAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZmlsdGVyLWNvbnRhaW5lcl9fY29udGVudCd9IHJlZj17ZmlsdGVyQ29udGVudH0+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydmaWx0ZXItY29udGFpbmVyX19jb250ZW50X19oZWFkZXInfT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsndGl0bGUnfT5cbiAgICAgICAgICAgICAgPGg0PntpMThuLnQoJ2V2ZW50c19vdmVydmlldy5maWx0ZXIuZmlsdGVyJyl9PC9oND5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2FjdGlvbnMnfT5cbiAgICAgICAgICAgICAgPERyb3Bkb3duIGNsYXNzTmFtZT17J2FjdGlvbid9PlxuICAgICAgICAgICAgICAgIDxEcm9wZG93bi5Ub2dnbGUgdmFyaWFudD1cInN1Y2Nlc3NcIiBpZD1cImRyb3Bkb3duLWJhc2ljXCI+XG4gICAgICAgICAgICAgICAgICA8TGlzdEljb25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicHJlc2V0LWljb25cIlxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNHB4XCJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNHB4XCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiMxZDFkMWRcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIHthY3RpdmVGaWx0ZXJDb3B5Lm5hbWV9eycgJ31cbiAgICAgICAgICAgICAgICAgIHthY3RpdmVGaWx0ZXJDb3B5LmlkID09PSAtMSA/IChcbiAgICAgICAgICAgICAgICAgICAgPGI+ICh7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLnVuc2F2ZWQnKX0pIDwvYj5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvRHJvcGRvd24uVG9nZ2xlPlxuXG4gICAgICAgICAgICAgICAgPEZpbHRlcnNEcm9wRG93blxuICAgICAgICAgICAgICAgICAgZmlsdGVycz17ZmlsdGVyc31cbiAgICAgICAgICAgICAgICAgIGhhbmRsZUZpbHRlckNoYW5nZT17aGFuZGxlRmlsdGVyQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgYWN0aXZlRmlsdGVyQ29weT17YWN0aXZlRmlsdGVyQ29weX1cbiAgICAgICAgICAgICAgICAgIGFjdGl2YXRlRmlsdGVyPXthY3RpdmF0ZUZpbHRlcn1cbiAgICAgICAgICAgICAgICAgIGRlbGV0ZUZpbHRlcj17ZGVsZXRlRmlsdGVyfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRHJvcGRvd24+XG5cbiAgICAgICAgICAgICAgPERyb3Bkb3duIGNsYXNzTmFtZT17J2FjdGlvbid9PlxuICAgICAgICAgICAgICAgIDxEcm9wZG93bi5Ub2dnbGUgdmFyaWFudD1cInN1Y2Nlc3NcIiBpZD1cImRyb3Bkb3duLWJhc2ljXCI+XG4gICAgICAgICAgICAgICAgICA8U2F2ZUljb25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic2F2ZS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTNweFwiXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTNweFwiXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMWQxZDFkXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLnNhdmUubGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9Ecm9wZG93bi5Ub2dnbGU+XG5cbiAgICAgICAgICAgICAgICA8RHJvcGRvd24uTWVudT5cbiAgICAgICAgICAgICAgICAgIDxEcm9wZG93bi5JdGVtXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXthY3RpdmVGaWx0ZXJDb3B5LmlkID09PSAtMSA/IHRydWUgOiBmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHNhdmVBY3RpdmVGaWx0ZXIoYWN0aXZlRmlsdGVyQ29weSk7XG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5maWx0ZXIuc2F2ZS5leGlzdGluZycpfVxuICAgICAgICAgICAgICAgICAgPC9Ecm9wZG93bi5JdGVtPlxuICAgICAgICAgICAgICAgICAgPERyb3Bkb3duIGNsYXNzTmFtZT17J2FjdGlvbiBhY3Rpb24tLXNhdmUnfT5cbiAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duLlRvZ2dsZSB2YXJpYW50PVwic3VjY2Vzc1wiIGlkPVwiZHJvcGRvd24tYmFzaWNcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLnNhdmUubmV3Jyl9XG4gICAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd24uVG9nZ2xlPlxuXG4gICAgICAgICAgICAgICAgICAgIDxEcm9wZG93bi5NZW51PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnbmV3LWZpbHRlci1wb3B1cCd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1Db250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtpMThuLnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V2ZW50c19vdmVydmlldy5maWx0ZXIuc2F2ZS5maWVsZF9wbGFjZWhvbGRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJOYW1lIHRoaXMgZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT1cImJhc2ljLWFkZG9uMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bmFtZUlucHV0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXM9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVDcmVhdGlvbkNsaWNrKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJzdWNjZXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnZGV2aWNlX2hlYWx0aF9zdGF0dXMub2snKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duLk1lbnU+XG4gICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duPlxuICAgICAgICAgICAgICAgIDwvRHJvcGRvd24uTWVudT5cbiAgICAgICAgICAgICAgPC9Ecm9wZG93bj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydmaWx0ZXItY29udGFpbmVyX19jb250ZW50X19ib2R5J30+XG4gICAgICAgICAgICA8RmlsdGVyXG4gICAgICAgICAgICAgIHNldEFjdGl2ZUZpbHRlckNvcHk9e3NldEFjdGl2ZUZpbHRlckNvcHl9XG4gICAgICAgICAgICAgIGFjdGl2ZUZpbHRlckNvcHk9e2FjdGl2ZUZpbHRlckNvcHl9XG4gICAgICAgICAgICAgIGF2YWlsYWJsZUZpbHRlckl0ZW1zPXthdmFpbGFibGVGaWx0ZXJJdGVtc31cbiAgICAgICAgICAgICAgcGFyc2VTZWxlY3RlZEl0ZW1zPXtwYXJzZVNlbGVjdGVkSXRlbXN9XG4gICAgICAgICAgICAgIGFwcGx5RmlsdGVyPXthcHBseUZpbHRlcn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmNvbnN0IGNvbm5lY3RvciA9IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RvcihGaWx0ZXJDb250YWluZXIpO1xuIl19
427
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudHNfbGlzdC9GaWx0ZXIvRmlsdGVyQ29udGFpbmVyLnRzeCJdLCJuYW1lcyI6WyJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsImdsb2JhbF9kYXRhIiwibmF2X2NvbnRleHRfZGF0YSIsInBvaW50c19kYXRhIiwiRmlsdGVyQ29udGFpbmVyIiwicHJvcHMiLCJmaWx0ZXJQb3B1cE9wZW4iLCJhcHBseUxvZ2ljIiwiZmV0Y2hUeXBlIiwiZGlzcGF0Y2giLCJuYW1lSW5wdXQiLCJmaWx0ZXJDb250ZW50IiwiZmlsdGVycyIsInNldEZpbHRlcnMiLCJhdmFpbGFibGVGaWx0ZXJJdGVtcyIsInNldEF2YWlsYWJsZUZpbHRlckl0ZW1zIiwicmVuZGVyZWQiLCJzZXRSZW5kZXJlZCIsIldhSWQiLCJzZXRXYUlkIiwidW5kZWZpbmVkIiwiYWN0aXZlRmlsdGVyIiwic2V0QWN0aXZlRmlsdGVyIiwiYWN0aXZlRmlsdGVyQ29weSIsInNldEFjdGl2ZUZpbHRlckNvcHkiLCJjc3JmIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiZ2V0QXR0cmlidXRlIiwidXNlUXVlcnkiLCJVUkxTZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJoaXN0b3J5IiwicXVlcnkiLCJnZXRLUUxGcm9tVVJMIiwiZ2V0IiwiZ2V0UG9pbnRzVG9GaWx0ZXJzIiwiaW50ZXJlc3RQb2ludEZpbHRlckl0ZW0iLCJmaW5kIiwiZiIsInR5cGUiLCJmaWx0ZXJlZFBvaW50c0RhdGEiLCJpdGVtcyIsImZpbHRlciIsInBvaW50IiwicGFydF9vZl9vYnNlcnZhdGlvbiIsIm1hcCIsImlkIiwibmFtZSIsImdyb3VwIiwib3B0aW9ucyIsImZvckVhY2giLCJmaWx0ZXJJdGVtIiwiZmlsdGVyX2l0ZW1zIiwiZmkiLCJhdmFpbGFibGVfb3B0aW9ucyIsImZldGNoRXZlbnRGaWx0ZXJzIiwicHJlcGFyZWRQYXJhbXMiLCJtZXRob2QiLCJ1cmwiLCJmZXRjaCIsImhlYWRlcnMiLCJBY2NlcHQiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsInRoZW4iLCJyZXNwb25zZSIsImpzb24iLCJkYXRhIiwiYXZhaWxhYmxlX2ZpbHRlcl9pdGVtcyIsInNhdmVkIiwiZGVlcENsb25lIiwicGFyc2UiLCJnZXREYXRhIiwid2F0ZXJBdXRob3JpdHlJZCIsImpzb25TaGFsbG93Q29weSIsIk9iamVjdCIsImFzc2lnbiIsImFjdGl2ZSIsImRpc3BsYXllZF9maWx0ZXIiLCJhY3RpdmF0ZUZpbHRlciIsImFwcGx5RmlsdGVyIiwiaGFuZGxlRmlsdGVyQ2hhbmdlIiwiY3VycmVudCIsImNsaWNrIiwic2F2ZUFjdGl2ZUZpbHRlciIsImNsb25lZEZpbHRlcnMiLCJmaWx0ZXJUb01vZGlmeUluZGV4IiwiaW5kZXhPZiIsImZpbHRlcl90eXBlIiwidWlfZmlsdGVyIiwiaXNfYWN0aXZlIiwiTWF0aCIsInNpZ24iLCJjcmVhdGVGaWx0ZXIiLCJuZXdGaWx0ZXIiLCJkZWxldGVGaWx0ZXIiLCJsZW5ndGgiLCJnZXRFdmVudElkRnJvbVVSTCIsImdldFdhSWRGcm9tVVJMIiwiZ2V0S1FMVmFsdWVzRnJvbVVSTCIsInZhbHVlIiwibmF2Q29udGV4dCIsImluY2x1ZGVzIiwicHVzaCIsImxvY2FsZSIsImN1cnJlbnRQYWdlIiwiaXNGZXRjaCIsImhhbmRsZUNyZWF0aW9uQ2xpY2siLCJldmVudEZpbHRlclBhcmFtIiwiY2xlYW51cCIsImkxOG4iLCJ0IiwicGFyc2VTZWxlY3RlZEl0ZW1zIiwiY29ubmVjdG9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBTUE7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUNBLFNBQVNBLGVBQVQsQ0FBeUJDLEtBQXpCLEVBQTJDO0FBQ3pDLE1BQVFDLFdBQVIsR0FBdURELEtBQXZELENBQVFDLFdBQVI7QUFBQSxN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QUFVLE1BQVY7QUFBaUIsSUFBQSxPQUFPLEVBQUMsU0FBekI7QUFBbUMsSUFBQSxFQUFFLEVBQUM7QUFBdEMsS0FDR0QsY0FBS0MsQ0FBTCxDQUFPLGlDQUFQLENBREgsQ0FERixlQUtFLDZCQUFDLGlCQUFELENBQVUsSUFBVixxQkFDRTtBQUFLLElBQUEsU0FBUyxFQUFFO0FBQWhCLGtCQUNFLDZCQUFDLDJCQUFEO0FBQ0UsSUFBQSxXQUFXLEVBQUVELGNBQUtDLENBQUwsQ0FDWCwrQ0FEVyxDQURmO0FBSUUsa0JBQVcsa0JBSmI7QUFLRSx3QkFBaUIsY0FMbkI7QUFNRSxJQUFBLEdBQUcsRUFBRXZHLFNBTlA7QUFPRSxJQUFBLFNBQVMsRUFBRTtBQVBiLElBREYsZUFVRSx3Q0FWRixlQVdFLDZCQUFDLHNCQUFEO0FBQ0UsSUFBQSxPQUFPLEVBQUUsbUJBQU07QUFDYm1HLE1BQUFBLG1CQUFtQjtBQUNwQixLQUhIO0FBSUUsSUFBQSxPQUFPLEVBQUM7QUFKVixLQU1HRyxjQUFLQyxDQUFMLENBQU8seUJBQVAsQ0FOSCxDQVhGLENBREYsQ0FMRixDQVRGLENBWEYsQ0ExQkYsQ0FMRixDQURGLGVBcUZFO0FBQUssSUFBQSxTQUFTLEVBQUU7QUFBaEIsa0JBQ0UsNkJBQUMsZUFBRDtBQUNFLElBQUEsbUJBQW1CLEVBQUV6RixtQkFEdkI7QUFFRSxJQUFBLGdCQUFnQixFQUFFRCxnQkFGcEI7QUFHRSxJQUFBLG9CQUFvQixFQUFFVCxvQkFIeEI7QUFJRSxJQUFBLGtCQUFrQixFQUFFb0csdUJBSnRCO0FBS0UsSUFBQSxXQUFXLEVBQUVoQztBQUxmLElBREYsQ0FyRkYsQ0FOSixDQURGO0FBeUdELENBM2FEOztBQTZhQSxJQUFNaUMsU0FBUyxHQUFHLHlCQUFRcEgsZUFBUixDQUFsQjs7ZUFDZW9ILFNBQVMsQ0FBQy9HLGVBQUQsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24sIEZvcm1Db250cm9sIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCBEcm9wZG93biBmcm9tICdyZWFjdC1ib290c3RyYXAvRHJvcGRvd24nO1xuaW1wb3J0IHsgY29ubmVjdCwgQ29ubmVjdGVkUHJvcHMsIHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgdXNlSGlzdG9yeSwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIFNhdmVJY29uIH0gZnJvbSAnc3JjL2Fzc2V0cy9pY29ucy9kaXNrZXR0ZS5zdmcnO1xuaW1wb3J0IHsgUmVhY3RDb21wb25lbnQgYXMgTGlzdEljb24gfSBmcm9tICdzcmMvYXNzZXRzL2ljb25zL2xpc3Quc3ZnJztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJ3NyYy9tb2RlbHMvSUFwcFN0YXRlJztcbmltcG9ydCB7IElGaWx0ZXIgfSBmcm9tICdzcmMvc3RvcmUvZmlsdGVycy9JRmlsdGVyJztcbmltcG9ydCB7IElGaWx0ZXJJdGVtIH0gZnJvbSAnc3JjL3N0b3JlL2ZpbHRlcnMvSUZpbHRlckl0ZW0nO1xuaW1wb3J0IHtcbiAgc2V0QWN0aXZlRmlsdGVyR2xvYmFsbHksXG4gIHNldEV2ZW50RmlsdGVyUGFyYW0sXG59IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvYWN0aW9ucyc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IGJ1aWxkS1FMUXVlcnksIHBhcnNlU2VsZWN0ZWRJdGVtcyB9IGZyb20gJ3NyYy91dGlsaXRpZXMva3FsJztcbmltcG9ydCAnLi9GaWx0ZXJTdHlsZS5zY3NzJztcbmltcG9ydCBGaWx0ZXIgZnJvbSAnLi9GaWx0ZXInO1xuaW1wb3J0IEZpbHRlcnNEcm9wRG93biBmcm9tICcuL0ZpbHRlcnNEcm9wRG93bic7XG5pbXBvcnQgeyBzZXRTYW1wbGluZ0RhdGEgfSBmcm9tICdzcmMvc3RvcmUvc2FtcGxpbmdzL2FjdGlvbnNDcmVhdG9yJztcbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHsgZ2xvYmFsX2RhdGEsIG5hdl9jb250ZXh0X2RhdGEsIHBvaW50c19kYXRhIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIGdsb2JhbF9kYXRhLFxuICAgIG5hdl9jb250ZXh0X2RhdGEsXG4gICAgcG9pbnRzX2RhdGEsXG4gIH07XG59XG5cbnR5cGUgSVByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiB7XG4gIGZpbHRlclBvcHVwT3BlbjogYm9vbGVhbjtcbiAgZmV0Y2hUeXBlOiBzdHJpbmc7XG4gIGFwcGx5TG9naWM/OiAodmFsdWVzOiBzdHJpbmcpID0+IHZvaWQ7XG59O1xuXG5jb25zdCBGaWx0ZXJDb250YWluZXI6IFJlYWN0LkZDPElQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIGdsb2JhbF9kYXRhLFxuICAgIG5hdl9jb250ZXh0X2RhdGEsXG4gICAgcG9pbnRzX2RhdGEsXG4gICAgZmlsdGVyUG9wdXBPcGVuLFxuICAgIGFwcGx5TG9naWMsXG4gICAgZmV0Y2hUeXBlID0gJ0V2ZW50RmlsdGVycycsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYW1lSW5wdXQgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGZpbHRlckNvbnRlbnQgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBbZmlsdGVycywgc2V0RmlsdGVyc10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW2F2YWlsYWJsZUZpbHRlckl0ZW1zLCBzZXRBdmFpbGFibGVGaWx0ZXJJdGVtc10gPSB1c2VTdGF0ZShbXSk7XG4gIGNvbnN0IFtyZW5kZXJlZCwgc2V0UmVuZGVyZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbV2FJZCwgc2V0V2FJZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPigpO1xuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICBjb25zdCBbYWN0aXZlRmlsdGVyLCBzZXRBY3RpdmVGaWx0ZXJdID0gdXNlU3RhdGU8YW55Pih1bmRlZmluZWQpO1xuICBjb25zdCBbYWN0aXZlRmlsdGVyQ29weSwgc2V0QWN0aXZlRmlsdGVyQ29weV0gPSB1c2VTdGF0ZTxhbnk+KHVuZGVmaW5lZCk7XG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgY3NyZiA9IGRvY3VtZW50XG4gICAgLnF1ZXJ5U2VsZWN0b3IoXCJtZXRhW25hbWU9J2NzcmYtdG9rZW4nXVwiKVxuICAgIC5nZXRBdHRyaWJ1dGUoJ2NvbnRlbnQnKTtcbiAgY29uc3QgdXNlUXVlcnkgPSAoKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXModXNlTG9jYXRpb24oKS5zZWFyY2gpO1xuICB9O1xuICBjb25zdCBoaXN0b3J5ID0gdXNlSGlzdG9yeSgpO1xuICBjb25zdCBxdWVyeSA9IHVzZVF1ZXJ5KCk7XG4gIGNvbnN0IGdldEtRTEZyb21VUkwgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHF1ZXJ5LmdldCgndmFsdWVzRnJvbUtRTCcpO1xuICB9O1xuXG4gIGNvbnN0IGdldFBvaW50c1RvRmlsdGVycyA9IChhdmFpbGFibGVGaWx0ZXJJdGVtczogYW55LCBmaWx0ZXJzOiBhbnkpID0+IHtcbiAgICBsZXQgaW50ZXJlc3RQb2ludEZpbHRlckl0ZW0gPSBhdmFpbGFibGVGaWx0ZXJJdGVtcy5maW5kKFxuICAgICAgKGY6IElGaWx0ZXJJdGVtKSA9PiBmLnR5cGUgPT09ICdJbnRlcmVzdFBvaW50RmlsdGVySXRlbScsXG4gICAgKTtcbiAgICBsZXQgZmlsdGVyZWRQb2ludHNEYXRhID0gcG9pbnRzX2RhdGEuaXRlbXNcbiAgICAgIC5maWx0ZXIoKHBvaW50OiBJUG9pbnQpID0+IHBvaW50LnBhcnRfb2Zfb2JzZXJ2YXRpb24gPT09IHRydWUpXG4gICAgICAubWFwKChwb2ludDogSVBvaW50KSA9PiB7XG4gICAgICAgIHJldHVybiB7IGlkOiBwb2ludC5pZCwgbmFtZTogcG9pbnQuZ3JvdXAubmFtZSB9O1xuICAgICAgfSk7XG5cbiAgICBpZiAoaW50ZXJlc3RQb2ludEZpbHRlckl0ZW0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgaW50ZXJlc3RQb2ludEZpbHRlckl0ZW0ub3B0aW9ucyA9IGZpbHRlcmVkUG9pbnRzRGF0YTtcbiAgICB9XG5cbiAgICBmaWx0ZXJzLmZvckVhY2goKGY6IElGaWx0ZXIpID0+IHtcbiAgICAgIGxldCBmaWx0ZXJJdGVtID0gZi5maWx0ZXJfaXRlbXMuZmluZChcbiAgICAgICAgKGZpOiBJRmlsdGVySXRlbSkgPT4gZmkudHlwZSA9PT0gJ0ludGVyZXN0UG9pbnRGaWx0ZXJJdGVtJyxcbiAgICAgICk7XG5cbiAgICAgIGlmIChmaWx0ZXJJdGVtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZmlsdGVySXRlbS5hdmFpbGFibGVfb3B0aW9ucyA9IGZpbHRlcmVkUG9pbnRzRGF0YTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHNldEZpbHRlcnMoZmlsdGVycyk7XG4gIH07XG5cbiAgY29uc3QgZmV0Y2hFdmVudEZpbHRlcnMgPSAoXG4gICAgcHJlcGFyZWRQYXJhbXM6IGFueSxcbiAgICBtZXRob2Q6IHN0cmluZyxcbiAgICB1cmw6IHN0cmluZyxcbiAgICBmaWx0ZXI6IGFueSA9IG51bGwsXG4gICkgPT4ge1xuICAgIGlmIChjc3JmICE9PSBudWxsKSB7XG4gICAgICBmZXRjaCh1cmwsIHtcbiAgICAgICAgbWV0aG9kOiBtZXRob2QsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICdYLUNTUkYtVG9rZW4nOiBjc3JmLFxuICAgICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICB9LFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShwcmVwYXJlZFBhcmFtcyksXG4gICAgICB9KVxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlLmpzb24oKSlcbiAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICBnZXRQb2ludHNUb0ZpbHRlcnMoZGF0YS5hdmFpbGFibGVfZmlsdGVyX2l0ZW1zLCBkYXRhLmZpbHRlcnMpO1xuXG4gICAgICAgICAgaWYgKGZpbHRlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgbGV0IHNhdmVkID0gZGF0YS5maWx0ZXJzLmZpbmQoXG4gICAgICAgICAgICAgIChmOiBJRmlsdGVyKSA9PiBmLm5hbWUgPT09IGZpbHRlci5uYW1lLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHNldEFjdGl2ZUZpbHRlcihzYXZlZCk7XG4gICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KHNhdmVkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBkZWVwQ2xvbmUgPSAoZGF0YTogYW55KSA9PiB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICB9O1xuXG4gIGNvbnN0IGdldERhdGEgPSAoKSA9PiB7XG4gICAgZmV0Y2goXG4gICAgICBgL3VpX2ZpbHRlcnMuanNvbj93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZFxuICAgICAgfSZmaWx0ZXJfdHlwZT0ke2ZldGNoVHlwZX0mdmFsdWVzRnJvbUtRTD0ke2dldEtRTEZyb21VUkwoKX1gLFxuICAgIClcbiAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuanNvbigpKVxuICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgZ2V0UG9pbnRzVG9GaWx0ZXJzKGpzb24uYXZhaWxhYmxlX2ZpbHRlcl9pdGVtcywganNvbi5maWx0ZXJzKTtcblxuICAgICAgICBsZXQganNvblNoYWxsb3dDb3B5ID0gT2JqZWN0LmFzc2lnbih7fSwganNvbik7XG4gICAgICAgIGpzb25TaGFsbG93Q29weS5maWx0ZXJzID0gZGVlcENsb25lKGpzb25TaGFsbG93Q29weS5maWx0ZXJzKTtcbiAgICAgICAgbGV0IGFjdGl2ZSA9IGpzb25TaGFsbG93Q29weS5kaXNwbGF5ZWRfZmlsdGVyO1xuXG4gICAgICAgIGlmIChhY3RpdmUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGFjdGl2YXRlRmlsdGVyKGpzb25TaGFsbG93Q29weS5maWx0ZXJzWzBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRBdmFpbGFibGVGaWx0ZXJJdGVtcyhqc29uU2hhbGxvd0NvcHkuYXZhaWxhYmxlX2ZpbHRlcl9pdGVtcyk7XG4gICAgICAgICAgc2V0QWN0aXZlRmlsdGVyKGFjdGl2ZSk7XG4gICAgICAgICAgc2V0QWN0aXZlRmlsdGVyQ29weShhY3RpdmUpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXBwbHlGaWx0ZXIoYWN0aXZlKTtcbiAgICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUZpbHRlckNoYW5nZSA9IChmaWx0ZXI6IElGaWx0ZXIpID0+IHtcbiAgICBzZXRBY3RpdmVGaWx0ZXIoZGVlcENsb25lKGZpbHRlcikpO1xuICAgIHNldEFjdGl2ZUZpbHRlckNvcHkoZGVlcENsb25lKGZpbHRlcikpO1xuICAgIGZpbHRlckNvbnRlbnQuY3VycmVudCEuY2xpY2soKTtcbiAgfTtcblxuICBjb25zdCBzYXZlQWN0aXZlRmlsdGVyID0gKFxuICAgIGZpbHRlcjpcbiAgICAgIHwgSUZpbHRlclxuICAgICAgfCB7XG4gICAgICAgICAgaWQ6IG51bWJlcjtcbiAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgZmlsdGVyX2l0ZW1zOiBJRmlsdGVySXRlbVtdO1xuICAgICAgICAgIGlzX2FjdGl2ZTogYm9vbGVhbjtcbiAgICAgICAgfSxcbiAgKSA9PiB7XG4gICAgbGV0IGNsb25lZEZpbHRlcnMgPSBkZWVwQ2xvbmUoZmlsdGVycyk7XG4gICAgbGV0IGZpbHRlclRvTW9kaWZ5SW5kZXggPSBjbG9uZWRGaWx0ZXJzLmluZGV4T2YoXG4gICAgICBjbG9uZWRGaWx0ZXJzLmZpbmQoKGY6IGFueSkgPT4gZi5pZCA9PT0gZmlsdGVyLmlkKSxcbiAgICApO1xuICAgIGxldCBwcmVwYXJlZFBhcmFtcyA9IHtcbiAgICAgIGZpbHRlcl90eXBlOiBmZXRjaFR5cGUsXG4gICAgICB1aV9maWx0ZXI6IHtcbiAgICAgICAgbmFtZTogZmlsdGVyLm5hbWUsXG4gICAgICAgIGlzX2FjdGl2ZTogZmlsdGVyLmlzX2FjdGl2ZSxcbiAgICAgICAgZmlsdGVyX2l0ZW1zOiBKU09OLnN0cmluZ2lmeShmaWx0ZXIuZmlsdGVyX2l0ZW1zKSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNsb25lZEZpbHRlcnNbZmlsdGVyVG9Nb2RpZnlJbmRleF0gPSBmaWx0ZXI7XG4gICAgc2V0RmlsdGVycyhjbG9uZWRGaWx0ZXJzKTtcbiAgICBzZXRBY3RpdmVGaWx0ZXIoZmlsdGVyKTtcbiAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KGZpbHRlcik7XG5cbiAgICBpZiAoTWF0aC5zaWduKGZpbHRlci5pZCkgPiAwKSB7XG4gICAgICBmZXRjaEV2ZW50RmlsdGVycyhcbiAgICAgICAgcHJlcGFyZWRQYXJhbXMsXG4gICAgICAgICdQVVQnLFxuICAgICAgICBgL3VpX2ZpbHRlcnMvJHtmaWx0ZXIuaWR9P3dhdGVyX2F1dGhvcml0eV9pZD0ke2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWR9YCxcbiAgICAgICAgZmlsdGVyLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmV0Y2hFdmVudEZpbHRlcnMoXG4gICAgICAgIHByZXBhcmVkUGFyYW1zLFxuICAgICAgICAnUE9TVCcsXG4gICAgICAgIGAvdWlfZmlsdGVycz93YXRlcl9hdXRob3JpdHlfaWQ9JHtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkfWAsXG4gICAgICAgIGZpbHRlcixcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGNyZWF0ZUZpbHRlciA9IChmaWx0ZXI6IElGaWx0ZXIsIG5hbWU6IHN0cmluZykgPT4ge1xuICAgIGxldCBuZXdGaWx0ZXIgPSB7XG4gICAgICBpZDogLTEsXG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgZmlsdGVyX2l0ZW1zOiBmaWx0ZXIuZmlsdGVyX2l0ZW1zLFxuICAgICAgaXNfYWN0aXZlOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgc2V0RmlsdGVycyhbLi4uZmlsdGVycywgbmV3RmlsdGVyXSk7XG4gICAgc2V0QWN0aXZlRmlsdGVyQ29weShuZXdGaWx0ZXIpO1xuICAgIHNldEFjdGl2ZUZpbHRlcihuZXdGaWx0ZXIpO1xuICAgIHNhdmVBY3RpdmVGaWx0ZXIobmV3RmlsdGVyKTtcbiAgfTtcblxuICBjb25zdCBkZWxldGVGaWx0ZXIgPSAoZmlsdGVyOiBJRmlsdGVyKSA9PiB7XG4gICAgaWYgKGNzcmYgIT09IG51bGwgJiYgZmlsdGVyLmlkICE9PSAtMSkge1xuICAgICAgZmV0Y2goXG4gICAgICAgIGAvdWlfZmlsdGVycy8ke2ZpbHRlci5pZH0/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mZmlsdGVyX3R5cGU9JHtmZXRjaFR5cGV9YCxcbiAgICAgICAge1xuICAgICAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ1gtQ1NSRi1Ub2tlbic6IGNzcmYsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZS5qc29uKCkpXG4gICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgbGV0IGFjdGl2ZSA9IGRhdGEuZmlsdGVycy5maW5kKFxuICAgICAgICAgICAgKGZpbHRlcjogSUZpbHRlcikgPT4gZmlsdGVyLmlzX2FjdGl2ZSA9PT0gdHJ1ZSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKGFjdGl2ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzZXRGaWx0ZXJzKGRhdGEuZmlsdGVycyk7XG4gICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXIoYWN0aXZlKTtcbiAgICAgICAgICAgIHNldEFjdGl2ZUZpbHRlckNvcHkoYWN0aXZlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGRhdGEuZmlsdGVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgZ2V0RGF0YSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZGF0YS5maWx0ZXJzWzBdLmlzX2FjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICAgIHNldEFjdGl2ZUZpbHRlcihkYXRhLmZpbHRlcnNbMF0pO1xuICAgICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KGRhdGEuZmlsdGVyc1swXSk7XG4gICAgICAgICAgICAgIHNldEZpbHRlcnMoZGF0YS5maWx0ZXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBnZXRFdmVudElkRnJvbVVSTCA9ICgpID0+IHtcbiAgICByZXR1cm4gcXVlcnkuZ2V0KCdldmVudElkJyk7XG4gIH07XG5cbiAgY29uc3QgZ2V0V2FJZEZyb21VUkwgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHF1ZXJ5LmdldCgnd2F0ZXJfYXV0aG9yaXR5X2lkJyk7XG4gIH07XG5cbiAgY29uc3QgZ2V0S1FMVmFsdWVzRnJvbVVSTCA9ICgpID0+IHtcbiAgICByZXR1cm4gcXVlcnkuZ2V0KCd2YWx1ZXNGcm9tS1FMJyk7XG4gIH07XG5cbiAgY29uc3QgYWN0aXZhdGVGaWx0ZXIgPSAoZmlsdGVyOiBJRmlsdGVyKSA9PiB7XG4gICAgZmV0Y2hFdmVudEZpbHRlcnMoXG4gICAgICB7fSxcbiAgICAgICdQVVQnLFxuICAgICAgYC91aV9maWx0ZXJzL2FjdGl2YXRlLyR7ZmlsdGVyLmlkfT93YXRlcl9hdXRob3JpdHlfaWQ9JHtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkfSZmaWx0ZXJfdHlwZT0ke2ZldGNoVHlwZX1gLFxuICAgICAgZmlsdGVyLFxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgYXBwbHlGaWx0ZXIgPSAoZmlsdGVyID0gYWN0aXZlRmlsdGVyQ29weSkgPT4ge1xuICAgIGxldCB2YWx1ZSA9ICdzZXZlcml0eSc7XG5cbiAgICBpZiAobmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWUgPT09ICdzYW1wbGluZ3MtbGlzdCcpIHtcbiAgICAgIHZhbHVlID0gJ25ld2VzdCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChnZXRLUUxWYWx1ZXNGcm9tVVJMKCkgIT09IG51bGwpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGdldEtRTFZhbHVlc0Zyb21VUkwoKSEuaW5jbHVkZXMoJ09SREVSX0JZJykgJiZcbiAgICAgICAgICBnZXRLUUxWYWx1ZXNGcm9tVVJMKCkhLmluY2x1ZGVzKCduZXdlc3QnKVxuICAgICAgICApIHtcbiAgICAgICAgICB2YWx1ZSA9ICduZXdlc3QnO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGdldEtRTFZhbHVlc0Zyb21VUkwoKSEuaW5jbHVkZXMoJ09SREVSX0JZJykgJiZcbiAgICAgICAgICBnZXRLUUxWYWx1ZXNGcm9tVVJMKCkhLmluY2x1ZGVzKCdvbGRlc3QnKVxuICAgICAgICApIHtcbiAgICAgICAgICB2YWx1ZSA9ICdvbGRlc3QnO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGdldEtRTFZhbHVlc0Zyb21VUkwoKSEuaW5jbHVkZXMoJ09SREVSX0JZJykgJiZcbiAgICAgICAgICBnZXRLUUxWYWx1ZXNGcm9tVVJMKCkhLmluY2x1ZGVzKCdzZXZlcml0eScpXG4gICAgICAgICkge1xuICAgICAgICAgIHZhbHVlID0gJ3NldmVyaXR5JztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZSA9PT0gJ2V2ZW50c192aWV3Jykge1xuICAgICAgaGlzdG9yeS5wdXNoKFxuICAgICAgICBgLyR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWV9L2luZGV4P3dhdGVyX2F1dGhvcml0eV9pZD0ke1xuICAgICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRcbiAgICAgICAgfSZsb2NhbGU9JHtcbiAgICAgICAgICBuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubG9jYWxlXG4gICAgICAgIH0mZXZlbnRJZD0ke2dldEV2ZW50SWRGcm9tVVJMKCl9JnZhbHVlc0Zyb21LUUw9JHtidWlsZEtRTFF1ZXJ5KFxuICAgICAgICAgIGZpbHRlcixcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAobmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWUgPT09ICdzYW1wbGluZ3MtbGlzdCcpIHtcbiAgICAgIGhpc3RvcnkucHVzaChcbiAgICAgICAgYC8ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgICBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkXG4gICAgICAgIH0mbG9jYWxlPSR7XG4gICAgICAgICAgbmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZVxuICAgICAgICB9JnZhbHVlc0Zyb21LUUw9JHtidWlsZEtRTFF1ZXJ5KGZpbHRlciwgdmFsdWUpfWAsXG4gICAgICApO1xuXG4gICAgICBpZiAoYXBwbHlMb2dpYyAhPT0gdW5kZWZpbmVkKSBhcHBseUxvZ2ljKGJ1aWxkS1FMUXVlcnkoZmlsdGVyLCB2YWx1ZSkpO1xuICAgIH1cblxuICAgIGRpc3BhdGNoKHNldEV2ZW50RmlsdGVyUGFyYW0oYnVpbGRLUUxRdWVyeShmaWx0ZXIsIHZhbHVlKSkpO1xuICAgIGRpc3BhdGNoKHNldEFjdGl2ZUZpbHRlckdsb2JhbGx5KGZpbHRlcikpO1xuICAgIC8vIEFsd2F5cyByZXNldCBwYWdlIHRvIDEgd2hlbiBhIG5ldyBmaWx0ZXIgaXMgYXBwbGllZFxuICAgIGRpc3BhdGNoKHNldFNhbXBsaW5nRGF0YSh7IGN1cnJlbnRQYWdlOiAxLCBpc0ZldGNoOiBmYWxzZSB9KSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ3JlYXRpb25DbGljayA9ICgpID0+IHtcbiAgICBjcmVhdGVGaWx0ZXIoYWN0aXZlRmlsdGVyQ29weSwgbmFtZUlucHV0LmN1cnJlbnQhLnZhbHVlKTtcbiAgICBuYW1lSW5wdXQuY3VycmVudCEudmFsdWUgPSAnJztcbiAgICBmaWx0ZXJDb250ZW50LmN1cnJlbnQhLmNsaWNrKCk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRXYUlkKGdldFdhSWRGcm9tVVJMKCkpO1xuICAgIGlmICghcmVuZGVyZWQpIHtcbiAgICAgIHNldFJlbmRlcmVkKHRydWUpO1xuICAgICAgZ2V0RGF0YSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZ2xvYmFsX2RhdGEuZXZlbnRGaWx0ZXJQYXJhbSA9PT0gJycgJiYgZmlsdGVycy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgbGV0IGZpbHRlciA9IGZpbHRlcnMuZmluZCgoZmlsdGVyOiBJRmlsdGVyKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGZpbHRlci5pc19hY3RpdmU7XG4gICAgICAgIH0pO1xuICAgICAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5KGZpbHRlcik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgc2V0UmVuZGVyZWQoZmFsc2UpO1xuICAgIH07XG4gIH0sIFtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkLCBXYUlkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2BmaWx0ZXItY29udGFpbmVyICR7XG4gICAgICAgIGZpbHRlclBvcHVwT3BlbiA/ICcnIDogJ2ZpbHRlci1jb250YWluZXItLWhpZGRlbidcbiAgICAgIH1gfVxuICAgID5cbiAgICAgIHthY3RpdmVGaWx0ZXJDb3B5ICE9PSB1bmRlZmluZWQgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2ZpbHRlci1jb250YWluZXJfX2NvbnRlbnQnfSByZWY9e2ZpbHRlckNvbnRlbnR9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZmlsdGVyLWNvbnRhaW5lcl9fY29udGVudF9faGVhZGVyJ30+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J3RpdGxlJ30+XG4gICAgICAgICAgICAgIDxoND57aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLmZpbHRlcicpfTwvaDQ+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydhY3Rpb25zJ30+XG4gICAgICAgICAgICAgIDxEcm9wZG93biBjbGFzc05hbWU9eydhY3Rpb24nfT5cbiAgICAgICAgICAgICAgICA8RHJvcGRvd24uVG9nZ2xlIHZhcmlhbnQ9XCJzdWNjZXNzXCIgaWQ9XCJkcm9wZG93bi1iYXNpY1wiPlxuICAgICAgICAgICAgICAgICAgPExpc3RJY29uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInByZXNldC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTRweFwiXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTRweFwiXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMWQxZDFkXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB7YWN0aXZlRmlsdGVyQ29weS5uYW1lfXsnICd9XG4gICAgICAgICAgICAgICAgICB7YWN0aXZlRmlsdGVyQ29weS5pZCA9PT0gLTEgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxiPiAoe2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci51bnNhdmVkJyl9KSA8L2I+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duLlRvZ2dsZT5cblxuICAgICAgICAgICAgICAgIDxGaWx0ZXJzRHJvcERvd25cbiAgICAgICAgICAgICAgICAgIGZpbHRlcnM9e2ZpbHRlcnN9XG4gICAgICAgICAgICAgICAgICBoYW5kbGVGaWx0ZXJDaGFuZ2U9e2hhbmRsZUZpbHRlckNoYW5nZX1cbiAgICAgICAgICAgICAgICAgIGFjdGl2ZUZpbHRlckNvcHk9e2FjdGl2ZUZpbHRlckNvcHl9XG4gICAgICAgICAgICAgICAgICBhY3RpdmF0ZUZpbHRlcj17YWN0aXZhdGVGaWx0ZXJ9XG4gICAgICAgICAgICAgICAgICBkZWxldGVGaWx0ZXI9e2RlbGV0ZUZpbHRlcn1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0Ryb3Bkb3duPlxuXG4gICAgICAgICAgICAgIDxEcm9wZG93biBjbGFzc05hbWU9eydhY3Rpb24nfT5cbiAgICAgICAgICAgICAgICA8RHJvcGRvd24uVG9nZ2xlIHZhcmlhbnQ9XCJzdWNjZXNzXCIgaWQ9XCJkcm9wZG93bi1iYXNpY1wiPlxuICAgICAgICAgICAgICAgICAgPFNhdmVJY29uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNhdmUtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjEzcHhcIlxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEzcHhcIlxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzFkMWQxZFwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5zYXZlLmxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvRHJvcGRvd24uVG9nZ2xlPlxuXG4gICAgICAgICAgICAgICAgPERyb3Bkb3duLk1lbnU+XG4gICAgICAgICAgICAgICAgICA8RHJvcGRvd24uSXRlbVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17YWN0aXZlRmlsdGVyQ29weS5pZCA9PT0gLTEgPyB0cnVlIDogZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBzYXZlQWN0aXZlRmlsdGVyKGFjdGl2ZUZpbHRlckNvcHkpO1xuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLnNhdmUuZXhpc3RpbmcnKX1cbiAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd24uSXRlbT5cbiAgICAgICAgICAgICAgICAgIDxEcm9wZG93biBjbGFzc05hbWU9eydhY3Rpb24gYWN0aW9uLS1zYXZlJ30+XG4gICAgICAgICAgICAgICAgICAgIDxEcm9wZG93bi5Ub2dnbGUgdmFyaWFudD1cInN1Y2Nlc3NcIiBpZD1cImRyb3Bkb3duLWJhc2ljXCI+XG4gICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5zYXZlLm5ldycpfVxuICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duLlRvZ2dsZT5cblxuICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd24uTWVudT5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J25ldy1maWx0ZXItcG9wdXAnfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxGb3JtQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17aTE4bi50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLnNhdmUuZmllbGRfcGxhY2Vob2xkZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiTmFtZSB0aGlzIGZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJiYXNpYy1hZGRvbjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e25hbWVJbnB1dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQ3JlYXRpb25DbGljaygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwic3VjY2Vzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtpMThuLnQoJ2RldmljZV9oZWFsdGhfc3RhdHVzLm9rJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ecm9wZG93bi5NZW51PlxuICAgICAgICAgICAgICAgICAgPC9Ecm9wZG93bj5cbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duLk1lbnU+XG4gICAgICAgICAgICAgIDwvRHJvcGRvd24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZmlsdGVyLWNvbnRhaW5lcl9fY29udGVudF9fYm9keSd9PlxuICAgICAgICAgICAgPEZpbHRlclxuICAgICAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXJDb3B5PXtzZXRBY3RpdmVGaWx0ZXJDb3B5fVxuICAgICAgICAgICAgICBhY3RpdmVGaWx0ZXJDb3B5PXthY3RpdmVGaWx0ZXJDb3B5fVxuICAgICAgICAgICAgICBhdmFpbGFibGVGaWx0ZXJJdGVtcz17YXZhaWxhYmxlRmlsdGVySXRlbXN9XG4gICAgICAgICAgICAgIHBhcnNlU2VsZWN0ZWRJdGVtcz17cGFyc2VTZWxlY3RlZEl0ZW1zfVxuICAgICAgICAgICAgICBhcHBseUZpbHRlcj17YXBwbHlGaWx0ZXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5jb25zdCBjb25uZWN0b3IgPSBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcyk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0b3IoRmlsdGVyQ29udGFpbmVyKTtcbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kando-env/kando-ui",
3
- "version": "1.2.122",
3
+ "version": "1.2.123",
4
4
  "main": "lib/index.js",
5
5
  "author": "Nadav(Private) <nadavk72@gmail.com>",
6
6
  "scripts": {
@@ -1,252 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.default = void 0;
11
-
12
- var _leafletGeometryutil = require("leaflet-geometryutil");
13
-
14
- require("leaflet-polylinedecorator");
15
-
16
- var _react = _interopRequireWildcard(require("react"));
17
-
18
- var _reactRedux = require("react-redux");
19
-
20
- var _useUpdateEventBodyTail = _interopRequireDefault(require("hooks/useUpdateEventBodyTail"));
21
-
22
- var _actions = require("store/events/actions");
23
-
24
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
-
26
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
-
28
- // @ts-ignore
29
- function mapStateToProps(state) {
30
- var events_data = state.events_data,
31
- global_data = state.global_data,
32
- edges_data = state.edges_data;
33
- return {
34
- events_data: events_data,
35
- global_data: global_data,
36
- edges_data: edges_data
37
- };
38
- }
39
-
40
- var EventIndicatorHover = function EventIndicatorHover(props) {
41
- var L = props.L,
42
- map = props.map,
43
- events_data = props.events_data,
44
- edges_data = props.edges_data,
45
- global_data = props.global_data;
46
- var hoveredEvent = events_data.hoveredEvent,
47
- hoveredEventPaths = events_data.hoveredEventPaths,
48
- hoveredEventIndicator = events_data.hoveredEventIndicator;
49
- var dispatch = (0, _reactRedux.useDispatch)();
50
- var eventParts = [];
51
-
52
- var removeExistingIndicator = function removeExistingIndicator() {
53
- if (hoveredEventIndicator) {
54
- hoveredEventIndicator.eachLayer(function (layer) {
55
- map.removeLayer(layer);
56
- });
57
- }
58
- };
59
-
60
- var makePairs = function makePairs(array) {
61
- var pairs = [];
62
-
63
- for (var i = 0; i < array.length; i++) {
64
- if (i < array.length - 1) {
65
- pairs.push([array[i], array[i + 1]]);
66
- }
67
- }
68
-
69
- return pairs;
70
- };
71
-
72
- var calculateBodyAndTail = function calculateBodyAndTail(segment, bodyStart, bodyEnd) {
73
- var tailPath = [];
74
- var bodyPath = [];
75
- var foundBodyStart = false;
76
- var eventBodyStartMarker = bodyStart._latlng;
77
- var eventBodyEndMarker = bodyEnd._latlng;
78
- var subSegments = makePairs(segment._latlngs);
79
- var shouldContinue = true;
80
-
81
- for (var i = 0; i < subSegments.length; i++) {
82
- var foundBodyStartOnCurrentSubSegment = false;
83
-
84
- if (shouldContinue && !foundBodyStart) {
85
- // if bodyStartMarker exist on subSegment
86
- if ((0, _leafletGeometryutil.belongsSegment)(eventBodyStartMarker, subSegments[i][0], subSegments[i][1], 0.0000001)) {
87
- tailPath.push([subSegments[i][0], eventBodyStartMarker]);
88
- foundBodyStart = true;
89
- foundBodyStartOnCurrentSubSegment = true;
90
- } else {
91
- tailPath.push([subSegments[i][0], subSegments[i][1]]);
92
- }
93
- }
94
-
95
- if (shouldContinue && foundBodyStart) {
96
- var beginningOfBody = foundBodyStartOnCurrentSubSegment ? eventBodyStartMarker : subSegments[i][0];
97
-
98
- if ((0, _leafletGeometryutil.belongsSegment)(eventBodyEndMarker, subSegments[i][0], subSegments[i][1], 0.0000001)) {
99
- bodyPath.push([beginningOfBody, eventBodyEndMarker]);
100
- shouldContinue = false;
101
- } else {
102
- bodyPath.push([beginningOfBody, subSegments[i][1]]);
103
- }
104
- }
105
- }
106
-
107
- return {
108
- tailPath: tailPath,
109
- bodyPath: bodyPath
110
- };
111
- };
112
-
113
- var renderEventIndicator = function renderEventIndicator() {
114
- if (hoveredEvent !== null && hoveredEvent.path.length >= 1) {
115
- removeExistingIndicator();
116
-
117
- for (var i = 0; i < hoveredEvent.path.length; i++) {
118
- if (hoveredEvent.path[i] !== undefined && hoveredEvent.path[i].event_body_part <= 100 && hoveredEvent.path[i].event_body_part > 0 && hoveredEventPaths[i] !== undefined) {
119
- var eventBodyStart = L.marker((0, _leafletGeometryutil.interpolateOnLine)(map, hoveredEventPaths[i]._latlngs, hoveredEvent.path[i].event_tail_part / 100).latLng, {
120
- icon: L.divIcon({
121
- iconAnchor: [0, 0],
122
- iconSize: [0, 0]
123
- }),
124
- opacity: 0
125
- }).addTo(map);
126
- eventBodyStart['kando_object_id'] = hoveredEvent.id;
127
- eventBodyStart['kando_object'] = 'EventBodyStart';
128
- var eventBodyEnd = L.marker((0, _leafletGeometryutil.interpolateOnLine)(map, hoveredEventPaths[i]._latlngs, (hoveredEvent.path[i].event_body_part + hoveredEvent.path[i].event_tail_part) / 100).latLng, {
129
- icon: L.divIcon({
130
- iconAnchor: [0, 0],
131
- iconSize: [0, 0]
132
- }),
133
- opacity: 0
134
- }).addTo(map);
135
- eventBodyEnd['kando_object_id'] = hoveredEvent.id;
136
- eventBodyEnd['kando_object'] = 'EventBodyEnd';
137
- var path = calculateBodyAndTail(hoveredEventPaths[i], eventBodyStart, eventBodyEnd);
138
- var eventTail = L.polyline(path.tailPath, {
139
- color: '#f50b56',
140
- weight: 12,
141
- className: 'event-tail',
142
- opacity: 0.3
143
- }).addTo(map);
144
- eventTail['kando_object_id'] = hoveredEvent.id;
145
- eventTail['kando_object'] = 'EventTail';
146
- var eventBody = L.polyline(path.bodyPath, {
147
- color: '#f50b56',
148
- weight: 12,
149
- className: 'event-body'
150
- }).addTo(map);
151
- eventBody['kando_object_id'] = hoveredEvent.id;
152
- eventBody['kando_object'] = 'EventBody';
153
- eventBody.bringToFront();
154
- var tailDash = L.polylineDecorator(eventTail._latlngs, {
155
- patterns: [// defines a pattern of 10px-wide dashes, repeated every 20px on the line
156
- {
157
- offset: 15,
158
- repeat: 25,
159
- symbol: L.Symbol.arrowHead({
160
- pixelSize: 3,
161
- polygon: false,
162
- pathOptions: {
163
- stroke: true,
164
- color: 'rgba(255,255,255,1)',
165
- weight: 1
166
- }
167
- })
168
- }]
169
- }).addTo(map);
170
- tailDash['kando_object'] = 'Decorator';
171
- var bodyLine = L.polyline(eventBody._latlngs, {
172
- color: 'rgba(255, 255, 255, .6)',
173
- weight: 1
174
- }).addTo(map);
175
- bodyLine['kando_object'] = 'Decorator';
176
- var tailLine = L.polyline(eventTail._latlngs, {
177
- color: 'rgba(255, 255, 255)',
178
- weight: 1
179
- }).addTo(map);
180
- tailLine['kando_object'] = 'Decorator';
181
- var arrowHead = L.polylineDecorator(eventBody, {
182
- patterns: [// defines a pattern of 10px-wide dashes, repeated every 20px on the line
183
- {
184
- offset: 5,
185
- repeat: 25,
186
- symbol: L.Symbol.arrowHead({
187
- pixelSize: 3,
188
- polygon: false,
189
- pathOptions: {
190
- stroke: true,
191
- color: 'rgba(255,255,255,1)',
192
- weight: 1
193
- }
194
- })
195
- }]
196
- }).addTo(map);
197
- arrowHead['kando_object'] = 'Decorator';
198
- eventParts.push(eventBody, eventTail, tailDash, bodyLine, arrowHead, tailLine);
199
- } else if (hoveredEvent.path[i] !== undefined && hoveredEvent.path[i].event_body_part === 0 && hoveredEvent.path[i].event_tail_part > 0 && hoveredEventPaths[i] !== undefined) {
200
- var _eventTail = L.polyline(hoveredEventPaths[i]._latlngs, {
201
- color: '#f50b56',
202
- weight: 12,
203
- className: 'event-tail',
204
- opacity: 0.3
205
- }).addTo(map);
206
-
207
- _eventTail['kando_object_id'] = hoveredEvent.id;
208
- _eventTail['kando_object'] = 'EventTail';
209
- tailDash = L.polylineDecorator(_eventTail._latlngs, {
210
- patterns: [// defines a pattern of 10px-wide dashes, repeated every 20px on the line
211
- {
212
- offset: 15,
213
- repeat: 25,
214
- symbol: L.Symbol.arrowHead({
215
- pixelSize: 3,
216
- polygon: false,
217
- pathOptions: {
218
- stroke: true,
219
- color: 'rgba(255,255,255,1)',
220
- weight: 1
221
- }
222
- })
223
- }]
224
- }).addTo(map);
225
- tailDash['kando_object'] = 'Decorator';
226
- tailLine = L.polyline(_eventTail._latlngs, {
227
- color: 'rgba(255, 255, 255)',
228
- weight: 1
229
- }).addTo(map);
230
- tailLine['kando_object'] = 'Decorator';
231
- eventParts.push(_eventTail, tailDash, tailLine);
232
- }
233
- }
234
-
235
- dispatch((0, _actions.setHoverEventIndicator)(L.layerGroup(eventParts)));
236
- }
237
- };
238
-
239
- (0, _useUpdateEventBodyTail.default)(hoveredEvent !== null ? global_data.current_time : 0, hoveredEvent, edges_data, true //isHover
240
- );
241
- (0, _react.useEffect)(function () {
242
- if (hoveredEvent && hoveredEventPaths.length !== 0) renderEventIndicator();
243
- }, [hoveredEvent, hoveredEventPaths]);
244
- return /*#__PURE__*/_react.default.createElement("div", null);
245
- };
246
-
247
- var connector = (0, _reactRedux.connect)(mapStateToProps);
248
-
249
- var _default = connector(EventIndicatorHover);
250
-
251
- exports.default = _default;
252
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvRXZlbnRJbmRpY2F0b3JIb3Zlci50c3giXSwibmFtZXMiOlsibWFwU3RhdGVUb1Byb3BzIiwic3RhdGUiLCJldmVudHNfZGF0YSIsImdsb2JhbF9kYXRhIiwiZWRnZXNfZGF0YSIsIkV2ZW50SW5kaWNhdG9ySG92ZXIiLCJwcm9wcyIsIkwiLCJtYXAiLCJob3ZlcmVkRXZlbnQiLCJob3ZlcmVkRXZlbnRQYXRocyIsImhvdmVyZWRFdmVudEluZGljYXRvciIsImRpc3BhdGNoIiwiZXZlbnRQYXJ0cyIsInJlbW92ZUV4aXN0aW5nSW5kaWNhdG9yIiwiZWFjaExheWVyIiwibGF5ZXIiLCJyZW1vdmVMYXllciIsIm1ha2VQYWlycyIsImFycmF5IiwicGFpcnMiLCJpIiwibGVuZ3RoIiwicHVzaCIsImNhbGN1bGF0ZUJvZHlBbmRUYWlsIiwic2VnbWVudCIsImJvZHlTdGFydCIsImJvZHlFbmQiLCJ0YWlsUGF0aCIsImJvZHlQYXRoIiwiZm91bmRCb2R5U3RhcnQiLCJldmVudEJvZHlTdGFydE1hcmtlciIsIl9sYXRsbmciLCJldmVudEJvZHlFbmRNYXJrZXIiLCJzdWJTZWdtZW50cyIsIl9sYXRsbmdzIiwic2hvdWxkQ29udGludWUiLCJmb3VuZEJvZHlTdGFydE9uQ3VycmVudFN1YlNlZ21lbnQiLCJiZWdpbm5pbmdPZkJvZHkiLCJyZW5kZXJFdmVudEluZGljYXRvciIsInBhdGgiLCJ1bmRlZmluZWQiLCJldmVudF9ib2R5X3BhcnQiLCJldmVudEJvZHlTdGFydCIsIm1hcmtlciIsImV2ZW50X3RhaWxfcGFydCIsImxhdExuZyIsImljb24iLCJkaXZJY29uIiwiaWNvbkFuY2hvciIsImljb25TaXplIiwib3BhY2l0eSIsImFkZFRvIiwiaWQiLCJldmVudEJvZHlFbmQiLCJldmVudFRhaWwiLCJwb2x5bGluZSIsImNvbG9yIiwid2VpZ2h0IiwiY2xhc3NOYW1lIiwiZXZlbnRCb2R5IiwiYnJpbmdUb0Zyb250IiwidGFpbERhc2giLCJwb2x5bGluZURlY29yYXRvciIsInBhdHRlcm5zIiwib2Zmc2V0IiwicmVwZWF0Iiwic3ltYm9sIiwiU3ltYm9sIiwiYXJyb3dIZWFkIiwicGl4ZWxTaXplIiwicG9seWdvbiIsInBhdGhPcHRpb25zIiwic3Ryb2tlIiwiYm9keUxpbmUiLCJ0YWlsTGluZSIsImxheWVyR3JvdXAiLCJjdXJyZW50X3RpbWUiLCJjb25uZWN0b3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7Ozs7OztBQVBBO0FBVUEsU0FBU0EsZUFBVCxDQUF5QkMsS0FBekIsRUFBMkM7QUFDekMsTUFBUUMsV0FBUixHQUFpREQsS0FBakQsQ0FBUUMsV0FBUjtBQUFBLE1BQXFCQyxXQUFyQixHQUFpREYsS0FBakQsQ0FBcUJFLFdBQXJCO0FBQUEsTUFBa0NDLFVBQWxDLEdBQWlESCxLQUFqRCxDQUFrQ0csVUFBbEM7QUFFQSxTQUFPO0FBQ0xGLElBQUFBLFdBQVcsRUFBWEEsV0FESztBQUVMQyxJQUFBQSxXQUFXLEVBQVhBLFdBRks7QUFHTEMsSUFBQUEsVUFBVSxFQUFWQTtBQUhLLEdBQVA7QUFLRDs7QUFTRCxJQUFNQyxtQkFBcUMsR0FBRyxTQUF4Q0EsbUJBQXdDLENBQUNDLEtBQUQsRUFBVztBQUN2RCxNQUFRQyxDQUFSLEdBQXlERCxLQUF6RCxDQUFRQyxDQUFSO0FBQUEsTUFBV0MsR0FBWCxHQUF5REYsS0FBekQsQ0FBV0UsR0FBWDtBQUFBLE1BQWdCTixXQUFoQixHQUF5REksS0FBekQsQ0FBZ0JKLFdBQWhCO0FBQUEsTUFBNkJFLFVBQTdCLEdBQXlERSxLQUF6RCxDQUE2QkYsVUFBN0I7QUFBQSxNQUF5Q0QsV0FBekMsR0FBeURHLEtBQXpELENBQXlDSCxXQUF6QztBQUNBLE1BQVFNLFlBQVIsR0FDRVAsV0FERixDQUFRTyxZQUFSO0FBQUEsTUFBc0JDLGlCQUF0QixHQUNFUixXQURGLENBQXNCUSxpQkFBdEI7QUFBQSxNQUF5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MkIsV0FBM0I7QUFFQTlELFVBQUFBLFVBQVUsQ0FBQ1UsSUFBWCxDQUFnQmdDLFVBQWhCLEVBQTJCTyxRQUEzQixFQUFxQ2EsUUFBckM7QUFDRDtBQUNGOztBQUVEL0QsTUFBQUEsUUFBUSxDQUFDLHFDQUF1QkwsQ0FBQyxDQUFDcUUsVUFBRixDQUFhL0QsVUFBYixDQUF2QixDQUFELENBQVI7QUFDRDtBQUNGLEdBbExEOztBQW9MQSx1Q0FDRUosWUFBWSxLQUFLLElBQWpCLEdBQXdCTixXQUFXLENBQUMwRSxZQUFwQyxHQUFtRCxDQURyRCxFQUVFcEUsWUFGRixFQUdFTCxVQUhGLEVBSUUsSUFKRixDQUlRO0FBSlI7QUFPQSx3QkFBVSxZQUFNO0FBQ2QsUUFBSUssWUFBWSxJQUFJQyxpQkFBaUIsQ0FBQ1ksTUFBbEIsS0FBNkIsQ0FBakQsRUFBb0RpQixvQkFBb0I7QUFDekUsR0FGRCxFQUVHLENBQUM5QixZQUFELEVBQWVDLGlCQUFmLENBRkg7QUFJQSxzQkFBTyx5Q0FBUDtBQUNELENBclJEOztBQXVSQSxJQUFNb0UsU0FBUyxHQUFHLHlCQUFROUUsZUFBUixDQUFsQjs7ZUFDZThFLFNBQVMsQ0FBQ3pFLG1CQUFELEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBiZWxvbmdzU2VnbWVudCwgaW50ZXJwb2xhdGVPbkxpbmUgfSBmcm9tICdsZWFmbGV0LWdlb21ldHJ5dXRpbCc7XG5pbXBvcnQgJ2xlYWZsZXQtcG9seWxpbmVkZWNvcmF0b3InO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbm5lY3QsIENvbm5lY3RlZFByb3BzLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB1c2VVcGRhdGVFdmVudEJvZHlUYWlsIGZyb20gJ3NyYy9ob29rcy91c2VVcGRhdGVFdmVudEJvZHlUYWlsJztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJ3NyYy9tb2RlbHMvSUFwcFN0YXRlJztcbmltcG9ydCB7IHNldEhvdmVyRXZlbnRJbmRpY2F0b3IgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcblxuZnVuY3Rpb24gbWFwU3RhdGVUb1Byb3BzKHN0YXRlOiBJQXBwU3RhdGUpIHtcbiAgY29uc3QgeyBldmVudHNfZGF0YSwgZ2xvYmFsX2RhdGEsIGVkZ2VzX2RhdGEgfSA9IHN0YXRlO1xuXG4gIHJldHVybiB7XG4gICAgZXZlbnRzX2RhdGEsXG4gICAgZ2xvYmFsX2RhdGEsXG4gICAgZWRnZXNfZGF0YSxcbiAgfTtcbn1cblxudHlwZSBJUHJvcHMgPSBDb25uZWN0ZWRQcm9wczx0eXBlb2YgY29ubmVjdG9yPiAmIHtcbiAgTDogYW55O1xuICBtYXA6IGFueTtcbiAgcGF0aHM6IGFueTtcbiAgaG92ZXJlZEV2ZW50OiBJRXZlbnQgfCBudWxsO1xufTtcblxuY29uc3QgRXZlbnRJbmRpY2F0b3JIb3ZlcjogUmVhY3QuRkM8SVByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IEwsIG1hcCwgZXZlbnRzX2RhdGEsIGVkZ2VzX2RhdGEsIGdsb2JhbF9kYXRhIH0gPSBwcm9wcztcbiAgY29uc3QgeyBob3ZlcmVkRXZlbnQsIGhvdmVyZWRFdmVudFBhdGhzLCBob3ZlcmVkRXZlbnRJbmRpY2F0b3IgfSA9XG4gICAgZXZlbnRzX2RhdGE7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgbGV0IGV2ZW50UGFydHM6IGFueVtdID0gW107XG5cbiAgY29uc3QgcmVtb3ZlRXhpc3RpbmdJbmRpY2F0b3IgPSAoKSA9PiB7XG4gICAgaWYgKGhvdmVyZWRFdmVudEluZGljYXRvcikge1xuICAgICAgaG92ZXJlZEV2ZW50SW5kaWNhdG9yLmVhY2hMYXllcigobGF5ZXI6IGFueSkgPT4ge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXIpO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG1ha2VQYWlycyA9IChhcnJheTogW10pID0+IHtcbiAgICBsZXQgcGFpcnM6IGFueVtdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGkgPCBhcnJheS5sZW5ndGggLSAxKSB7XG4gICAgICAgIHBhaXJzLnB1c2goW2FycmF5W2ldLCBhcnJheVtpICsgMV1dKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcGFpcnM7XG4gIH07XG5cbiAgY29uc3QgY2FsY3VsYXRlQm9keUFuZFRhaWwgPSAoc2VnbWVudDogYW55LCBib2R5U3RhcnQ6IGFueSwgYm9keUVuZDogYW55KSA9PiB7XG4gICAgbGV0IHRhaWxQYXRoOiBhbnlbXSA9IFtdO1xuICAgIGxldCBib2R5UGF0aDogYW55W10gPSBbXTtcbiAgICBsZXQgZm91bmRCb2R5U3RhcnQgPSBmYWxzZTtcbiAgICBsZXQgZXZlbnRCb2R5U3RhcnRNYXJrZXIgPSBib2R5U3RhcnQuX2xhdGxuZztcbiAgICBsZXQgZXZlbnRCb2R5RW5kTWFya2VyID0gYm9keUVuZC5fbGF0bG5nO1xuICAgIGxldCBzdWJTZWdtZW50cyA9IG1ha2VQYWlycyhzZWdtZW50Ll9sYXRsbmdzKTtcbiAgICBsZXQgc2hvdWxkQ29udGludWUgPSB0cnVlO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdWJTZWdtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IGZvdW5kQm9keVN0YXJ0T25DdXJyZW50U3ViU2VnbWVudCA9IGZhbHNlO1xuXG4gICAgICBpZiAoc2hvdWxkQ29udGludWUgJiYgIWZvdW5kQm9keVN0YXJ0KSB7XG4gICAgICAgIC8vIGlmIGJvZHlTdGFydE1hcmtlciBleGlzdCBvbiBzdWJTZWdtZW50XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGJlbG9uZ3NTZWdtZW50KFxuICAgICAgICAgICAgZXZlbnRCb2R5U3RhcnRNYXJrZXIsXG4gICAgICAgICAgICBzdWJTZWdtZW50c1tpXVswXSxcbiAgICAgICAgICAgIHN1YlNlZ21lbnRzW2ldWzFdLFxuICAgICAgICAgICAgMC4wMDAwMDAxLFxuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGFpbFBhdGgucHVzaChbc3ViU2VnbWVudHNbaV1bMF0sIGV2ZW50Qm9keVN0YXJ0TWFya2VyXSk7XG5cbiAgICAgICAgICBmb3VuZEJvZHlTdGFydCA9IHRydWU7XG4gICAgICAgICAgZm91bmRCb2R5U3RhcnRPbkN1cnJlbnRTdWJTZWdtZW50ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YWlsUGF0aC5wdXNoKFtzdWJTZWdtZW50c1tpXVswXSwgc3ViU2VnbWVudHNbaV1bMV1dKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoc2hvdWxkQ29udGludWUgJiYgZm91bmRCb2R5U3RhcnQpIHtcbiAgICAgICAgbGV0IGJlZ2lubmluZ09mQm9keSA9IGZvdW5kQm9keVN0YXJ0T25DdXJyZW50U3ViU2VnbWVudFxuICAgICAgICAgID8gZXZlbnRCb2R5U3RhcnRNYXJrZXJcbiAgICAgICAgICA6IHN1YlNlZ21lbnRzW2ldWzBdO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBiZWxvbmdzU2VnbWVudChcbiAgICAgICAgICAgIGV2ZW50Qm9keUVuZE1hcmtlcixcbiAgICAgICAgICAgIHN1YlNlZ21lbnRzW2ldWzBdLFxuICAgICAgICAgICAgc3ViU2VnbWVudHNbaV1bMV0sXG4gICAgICAgICAgICAwLjAwMDAwMDEsXG4gICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICBib2R5UGF0aC5wdXNoKFtiZWdpbm5pbmdPZkJvZHksIGV2ZW50Qm9keUVuZE1hcmtlcl0pO1xuICAgICAgICAgIHNob3VsZENvbnRpbnVlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYm9keVBhdGgucHVzaChbYmVnaW5uaW5nT2ZCb2R5LCBzdWJTZWdtZW50c1tpXVsxXV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRhaWxQYXRoOiB0YWlsUGF0aCxcbiAgICAgIGJvZHlQYXRoOiBib2R5UGF0aCxcbiAgICB9O1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckV2ZW50SW5kaWNhdG9yID0gKCkgPT4ge1xuICAgIGlmIChob3ZlcmVkRXZlbnQgIT09IG51bGwgJiYgaG92ZXJlZEV2ZW50LnBhdGgubGVuZ3RoID49IDEpIHtcbiAgICAgIHJlbW92ZUV4aXN0aW5nSW5kaWNhdG9yKCk7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGhvdmVyZWRFdmVudC5wYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBob3ZlcmVkRXZlbnQucGF0aFtpXSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgaG92ZXJlZEV2ZW50LnBhdGhbaV0uZXZlbnRfYm9keV9wYXJ0IDw9IDEwMCAmJlxuICAgICAgICAgIGhvdmVyZWRFdmVudC5wYXRoW2ldLmV2ZW50X2JvZHlfcGFydCA+IDAgJiZcbiAgICAgICAgICBob3ZlcmVkRXZlbnRQYXRoc1tpXSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICkge1xuICAgICAgICAgIGxldCBldmVudEJvZHlTdGFydCA9IEwubWFya2VyKFxuICAgICAgICAgICAgaW50ZXJwb2xhdGVPbkxpbmUoXG4gICAgICAgICAgICAgIG1hcCxcbiAgICAgICAgICAgICAgaG92ZXJlZEV2ZW50UGF0aHNbaV0uX2xhdGxuZ3MsXG4gICAgICAgICAgICAgIGhvdmVyZWRFdmVudC5wYXRoW2ldLmV2ZW50X3RhaWxfcGFydCAvIDEwMCxcbiAgICAgICAgICAgICkubGF0TG5nLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpY29uOiBMLmRpdkljb24oe1xuICAgICAgICAgICAgICAgIGljb25BbmNob3I6IFswLCAwXSxcbiAgICAgICAgICAgICAgICBpY29uU2l6ZTogWzAsIDBdLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKS5hZGRUbyhtYXApO1xuICAgICAgICAgIGV2ZW50Qm9keVN0YXJ0WydrYW5kb19vYmplY3RfaWQnXSA9IGhvdmVyZWRFdmVudC5pZDtcbiAgICAgICAgICBldmVudEJvZHlTdGFydFsna2FuZG9fb2JqZWN0J10gPSAnRXZlbnRCb2R5U3RhcnQnO1xuXG4gICAgICAgICAgbGV0IGV2ZW50Qm9keUVuZCA9IEwubWFya2VyKFxuICAgICAgICAgICAgaW50ZXJwb2xhdGVPbkxpbmUoXG4gICAgICAgICAgICAgIG1hcCxcbiAgICAgICAgICAgICAgaG92ZXJlZEV2ZW50UGF0aHNbaV0uX2xhdGxuZ3MsXG4gICAgICAgICAgICAgIChob3ZlcmVkRXZlbnQucGF0aFtpXS5ldmVudF9ib2R5X3BhcnQgK1xuICAgICAgICAgICAgICAgIGhvdmVyZWRFdmVudC5wYXRoW2ldLmV2ZW50X3RhaWxfcGFydCkgL1xuICAgICAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgICkubGF0TG5nLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpY29uOiBMLmRpdkljb24oe1xuICAgICAgICAgICAgICAgIGljb25BbmNob3I6IFswLCAwXSxcbiAgICAgICAgICAgICAgICBpY29uU2l6ZTogWzAsIDBdLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKS5hZGRUbyhtYXApO1xuICAgICAgICAgIGV2ZW50Qm9keUVuZFsna2FuZG9fb2JqZWN0X2lkJ10gPSBob3ZlcmVkRXZlbnQuaWQ7XG4gICAgICAgICAgZXZlbnRCb2R5RW5kWydrYW5kb19vYmplY3QnXSA9ICdFdmVudEJvZHlFbmQnO1xuXG4gICAgICAgICAgbGV0IHBhdGggPSBjYWxjdWxhdGVCb2R5QW5kVGFpbChcbiAgICAgICAgICAgIGhvdmVyZWRFdmVudFBhdGhzW2ldLFxuICAgICAgICAgICAgZXZlbnRCb2R5U3RhcnQsXG4gICAgICAgICAgICBldmVudEJvZHlFbmQsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGxldCBldmVudFRhaWwgPSBMLnBvbHlsaW5lKHBhdGgudGFpbFBhdGgsIHtcbiAgICAgICAgICAgIGNvbG9yOiAnI2Y1MGI1NicsXG4gICAgICAgICAgICB3ZWlnaHQ6IDEyLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiAnZXZlbnQtdGFpbCcsXG4gICAgICAgICAgICBvcGFjaXR5OiAwLjMsXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgICAgICBldmVudFRhaWxbJ2thbmRvX29iamVjdF9pZCddID0gaG92ZXJlZEV2ZW50LmlkO1xuICAgICAgICAgIGV2ZW50VGFpbFsna2FuZG9fb2JqZWN0J10gPSAnRXZlbnRUYWlsJztcblxuICAgICAgICAgIGxldCBldmVudEJvZHkgPSBMLnBvbHlsaW5lKHBhdGguYm9keVBhdGgsIHtcbiAgICAgICAgICAgIGNvbG9yOiAnI2Y1MGI1NicsXG4gICAgICAgICAgICB3ZWlnaHQ6IDEyLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiAnZXZlbnQtYm9keScsXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgICAgICBldmVudEJvZHlbJ2thbmRvX29iamVjdF9pZCddID0gaG92ZXJlZEV2ZW50LmlkO1xuICAgICAgICAgIGV2ZW50Qm9keVsna2FuZG9fb2JqZWN0J10gPSAnRXZlbnRCb2R5JztcbiAgICAgICAgICBldmVudEJvZHkuYnJpbmdUb0Zyb250KCk7XG5cbiAgICAgICAgICB2YXIgdGFpbERhc2ggPSBMLnBvbHlsaW5lRGVjb3JhdG9yKGV2ZW50VGFpbC5fbGF0bG5ncywge1xuICAgICAgICAgICAgcGF0dGVybnM6IFtcbiAgICAgICAgICAgICAgLy8gZGVmaW5lcyBhIHBhdHRlcm4gb2YgMTBweC13aWRlIGRhc2hlcywgcmVwZWF0ZWQgZXZlcnkgMjBweCBvbiB0aGUgbGluZVxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxNSxcbiAgICAgICAgICAgICAgICByZXBlYXQ6IDI1LFxuICAgICAgICAgICAgICAgIHN5bWJvbDogTC5TeW1ib2wuYXJyb3dIZWFkKHtcbiAgICAgICAgICAgICAgICAgIHBpeGVsU2l6ZTogMyxcbiAgICAgICAgICAgICAgICAgIHBvbHlnb246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMSknLFxuICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIHRhaWxEYXNoWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuXG4gICAgICAgICAgdmFyIGJvZHlMaW5lID0gTC5wb2x5bGluZShldmVudEJvZHkuX2xhdGxuZ3MsIHtcbiAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAuNiknLFxuICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgYm9keUxpbmVbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG5cbiAgICAgICAgICB2YXIgdGFpbExpbmUgPSBMLnBvbHlsaW5lKGV2ZW50VGFpbC5fbGF0bG5ncywge1xuICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwgMjU1LCAyNTUpJyxcbiAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIHRhaWxMaW5lWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuXG4gICAgICAgICAgdmFyIGFycm93SGVhZCA9IEwucG9seWxpbmVEZWNvcmF0b3IoZXZlbnRCb2R5LCB7XG4gICAgICAgICAgICBwYXR0ZXJuczogW1xuICAgICAgICAgICAgICAvLyBkZWZpbmVzIGEgcGF0dGVybiBvZiAxMHB4LXdpZGUgZGFzaGVzLCByZXBlYXRlZCBldmVyeSAyMHB4IG9uIHRoZSBsaW5lXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDUsXG4gICAgICAgICAgICAgICAgcmVwZWF0OiAyNSxcbiAgICAgICAgICAgICAgICBzeW1ib2w6IEwuU3ltYm9sLmFycm93SGVhZCh7XG4gICAgICAgICAgICAgICAgICBwaXhlbFNpemU6IDMsXG4gICAgICAgICAgICAgICAgICBwb2x5Z29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIHBhdGhPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwyNTUsMjU1LDEpJyxcbiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgICAgICBhcnJvd0hlYWRbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG5cbiAgICAgICAgICBldmVudFBhcnRzLnB1c2goXG4gICAgICAgICAgICBldmVudEJvZHksXG4gICAgICAgICAgICBldmVudFRhaWwsXG4gICAgICAgICAgICB0YWlsRGFzaCxcbiAgICAgICAgICAgIGJvZHlMaW5lLFxuICAgICAgICAgICAgYXJyb3dIZWFkLFxuICAgICAgICAgICAgdGFpbExpbmUsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBob3ZlcmVkRXZlbnQucGF0aFtpXSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgaG92ZXJlZEV2ZW50LnBhdGhbaV0uZXZlbnRfYm9keV9wYXJ0ID09PSAwICYmXG4gICAgICAgICAgaG92ZXJlZEV2ZW50LnBhdGhbaV0uZXZlbnRfdGFpbF9wYXJ0ID4gMCAmJlxuICAgICAgICAgIGhvdmVyZWRFdmVudFBhdGhzW2ldICE9PSB1bmRlZmluZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgbGV0IGV2ZW50VGFpbCA9IEwucG9seWxpbmUoaG92ZXJlZEV2ZW50UGF0aHNbaV0uX2xhdGxuZ3MsIHtcbiAgICAgICAgICAgIGNvbG9yOiAnI2Y1MGI1NicsXG4gICAgICAgICAgICB3ZWlnaHQ6IDEyLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiAnZXZlbnQtdGFpbCcsXG4gICAgICAgICAgICBvcGFjaXR5OiAwLjMsXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcblxuICAgICAgICAgIGV2ZW50VGFpbFsna2FuZG9fb2JqZWN0X2lkJ10gPSBob3ZlcmVkRXZlbnQuaWQ7XG4gICAgICAgICAgZXZlbnRUYWlsWydrYW5kb19vYmplY3QnXSA9ICdFdmVudFRhaWwnO1xuXG4gICAgICAgICAgdGFpbERhc2ggPSBMLnBvbHlsaW5lRGVjb3JhdG9yKGV2ZW50VGFpbC5fbGF0bG5ncywge1xuICAgICAgICAgICAgcGF0dGVybnM6IFtcbiAgICAgICAgICAgICAgLy8gZGVmaW5lcyBhIHBhdHRlcm4gb2YgMTBweC13aWRlIGRhc2hlcywgcmVwZWF0ZWQgZXZlcnkgMjBweCBvbiB0aGUgbGluZVxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxNSxcbiAgICAgICAgICAgICAgICByZXBlYXQ6IDI1LFxuICAgICAgICAgICAgICAgIHN5bWJvbDogTC5TeW1ib2wuYXJyb3dIZWFkKHtcbiAgICAgICAgICAgICAgICAgIHBpeGVsU2l6ZTogMyxcbiAgICAgICAgICAgICAgICAgIHBvbHlnb246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMSknLFxuICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIHRhaWxEYXNoWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuXG4gICAgICAgICAgdGFpbExpbmUgPSBMLnBvbHlsaW5lKGV2ZW50VGFpbC5fbGF0bG5ncywge1xuICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwgMjU1LCAyNTUpJyxcbiAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIHRhaWxMaW5lWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuXG4gICAgICAgICAgZXZlbnRQYXJ0cy5wdXNoKGV2ZW50VGFpbCwgdGFpbERhc2gsIHRhaWxMaW5lKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBkaXNwYXRjaChzZXRIb3ZlckV2ZW50SW5kaWNhdG9yKEwubGF5ZXJHcm91cChldmVudFBhcnRzKSkpO1xuICAgIH1cbiAgfTtcblxuICB1c2VVcGRhdGVFdmVudEJvZHlUYWlsKFxuICAgIGhvdmVyZWRFdmVudCAhPT0gbnVsbCA/IGdsb2JhbF9kYXRhLmN1cnJlbnRfdGltZSA6IDAsXG4gICAgaG92ZXJlZEV2ZW50LFxuICAgIGVkZ2VzX2RhdGEsXG4gICAgdHJ1ZSwgLy9pc0hvdmVyXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaG92ZXJlZEV2ZW50ICYmIGhvdmVyZWRFdmVudFBhdGhzLmxlbmd0aCAhPT0gMCkgcmVuZGVyRXZlbnRJbmRpY2F0b3IoKTtcbiAgfSwgW2hvdmVyZWRFdmVudCwgaG92ZXJlZEV2ZW50UGF0aHNdKTtcblxuICByZXR1cm4gPGRpdj48L2Rpdj47XG59O1xuXG5jb25zdCBjb25uZWN0b3IgPSBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcyk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0b3IoRXZlbnRJbmRpY2F0b3JIb3Zlcik7XG4iXX0=
@@ -1,81 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.default = void 0;
11
-
12
- var _leaflet = _interopRequireDefault(require("leaflet"));
13
-
14
- var _react = _interopRequireWildcard(require("react"));
15
-
16
- var _reactRedux = require("react-redux");
17
-
18
- var _actions = require("store/events/actions");
19
-
20
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
-
22
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
-
24
- // @ts-ignore
25
- var EventPath = function EventPath(_ref) {
26
- var event = _ref.event,
27
- global_data = _ref.global_data,
28
- _ref$hoveredEvent = _ref.hoveredEvent,
29
- hoveredEvent = _ref$hoveredEvent === void 0 ? null : _ref$hoveredEvent,
30
- _ref$hoveredEventPath = _ref.hoveredEventPaths,
31
- hoveredEventPaths = _ref$hoveredEventPath === void 0 ? [] : _ref$hoveredEventPath;
32
- var map = global_data.map;
33
- var dispatch = (0, _reactRedux.useDispatch)();
34
-
35
- var drawPolyline = function drawPolyline(event, layerLatlngs, Paths, isHover) {
36
- var eventPath = _leaflet.default.polyline(layerLatlngs, {
37
- color: 'rgba(0,0,0,0)',
38
- weight: 10,
39
- className: 'event-path',
40
- stroke: true
41
- }).addTo(map);
42
-
43
- Paths.push(eventPath);
44
- eventPath['kando_object_id'] = event.id;
45
- eventPath['kando_object'] = 'EventPath';
46
- dispatch((0, _actions.setHoveredEventPaths)(Paths));
47
- };
48
-
49
- var renderEventPath = function renderEventPath(event, isHover) {
50
- if (map !== undefined) {
51
- var Paths = [];
52
- var layers = map._layers;
53
- event.path.forEach(function (path) {
54
- for (var property in layers) {
55
- if (layers[property].kando_object_id !== undefined && layers[property].kando_object_id === path.edge_id && layers[property].kando_object === 'Edge') {
56
- var layerLatlngs = layers[property].getLatLngs();
57
- drawPolyline(event, layerLatlngs, Paths, isHover);
58
- }
59
- }
60
- });
61
- }
62
- };
63
-
64
- (0, _react.useEffect)(function () {
65
- // Cleanup existing paths if necessary
66
- if (hoveredEventPaths !== null) {
67
- hoveredEventPaths.forEach(function (path) {
68
- map.removeLayer(path);
69
- });
70
- }
71
-
72
- if (event.path !== null && hoveredEvent !== null && hoveredEventPaths.length === 0) {
73
- renderEventPath(event, true);
74
- }
75
- }, [hoveredEvent, hoveredEventPaths]);
76
- return /*#__PURE__*/_react.default.createElement("div", null);
77
- };
78
-
79
- var _default = EventPath;
80
- exports.default = _default;
81
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvRXZlbnRQYXRoSG92ZXIudHN4Il0sIm5hbWVzIjpbIkV2ZW50UGF0aCIsImV2ZW50IiwiZ2xvYmFsX2RhdGEiLCJob3ZlcmVkRXZlbnQiLCJob3ZlcmVkRXZlbnRQYXRocyIsIm1hcCIsImRpc3BhdGNoIiwiZHJhd1BvbHlsaW5lIiwibGF5ZXJMYXRsbmdzIiwiUGF0aHMiLCJpc0hvdmVyIiwiZXZlbnRQYXRoIiwiTCIsInBvbHlsaW5lIiwiY29sb3IiLCJ3ZWlnaHQiLCJjbGFzc05hbWUiLCJzdHJva2UiLCJhZGRUbyIsInB1c2giLCJpZCIsInJlbmRlckV2ZW50UGF0aCIsInVuZGVmaW5lZCIsImxheWVycyIsIl9sYXllcnMiLCJwYXRoIiwiZm9yRWFjaCIsInByb3BlcnR5Iiwia2FuZG9fb2JqZWN0X2lkIiwiZWRnZV9pZCIsImthbmRvX29iamVjdCIsImdldExhdExuZ3MiLCJyZW1vdmVMYXllciIsImxlbmd0aCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBSkE7QUFlQSxJQUFNQSxTQUEyQixHQUFHLFNBQTlCQSxTQUE4QixPQU05QjtBQUFBLE1BTEpDLEtBS0ksUUFMSkEsS0FLSTtBQUFBLE1BSkpDLFdBSUksUUFKSkEsV0FJSTtBQUFBLCtCQUZKQyxZQUVJO0FBQUEsTUFGSkEsWUFFSSxrQ0FGVyxJQUVYO0FBQUEsbUNBREpDLGlCQUNJO0FBQUEsTUFESkEsaUJBQ0ksc0NBRGdCLEVBQ2hCO0FBQ0osTUFBUUMsR0FBUixHQUFnQkgsV0FBaEIsQ0FBUUcsR0FBUjtBQUVBLE1BQU1DLFFBQVEsR0FBRyw4QkFBakI7O0FBRUEsTUFBTUMsWUFBWSxHQUFHLFNBQWZBLFlBQWUsQ0FDbkJOLEtBRG1CLEVBRW5CTyxZQUZtQixFQUduQkMsS0FIbUIsRUFJbkJDLE9BSm1CLEVBS2hCO0FBQ0gsUUFBSUMsU0FBUyxHQUFHQyxpQkFBRUMsUUFBRixDQUFXTCxZQUFYLEVBQXlCO0FBQ3ZDTSxNQUFBQSxLQUFLLEVBQUUsZUFEZ0M7QUFFdkNDLE1BQUFBLE1BQU0sRUFBRSxFQUYrQjtBQUd2Q0MsTUFBQUEsU0FBUyxFQUFFLFlBSDRCO0FBSXZDQyxNQUFBQSxNQUFNLEVBQUU7QUFKK0IsS0FBekIsRUFLYkMsS0FMYSxDQUtQYixHQUxPLENBQWhCOztBQU9BSSxJQUFBQSxLQUFLLENBQUNVLElBQU4sQ0FBV1IsU0FBWDtBQUVBQSxJQUFBQSxTQUFTLENBQUMsaUJBQUQsQ0FBVCxHQUErQlYsS0FBSyxDQUFDbUIsRUFBckM7QUFDQVQsSUFBQUEsU0FBUyxDQUFDLGNBQUQsQ0FBVCxHQUE0QixXQUE1QjtBQUNBTCxJQUFBQSxRQUFRLENBQUMsbUNBQXFCRyxLQUFyQixDQUFELENBQVI7QUFDRCxHQWxCRDs7QUFvQkEsTUFBTVksZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDcEIsS0FBRCxFQUFnQlMsT0FBaEIsRUFBcUM7QUFDM0QsUUFBSUwsR0FBRyxLQUFLaUIsU0FBWixFQUF1QjtBQUNyQixVQUFJYixLQUFZLEdBQUcsRUFBbkI7QUFDQSxVQUFJYyxNQUFNLEdBQUdsQixHQUFHLENBQUNtQixPQUFqQjtBQUVBdkIsTUFBQUEsS0FBSyxDQUFDd0IsSUFBTixDQUFXQyxPQUFYLENBQW1CLFVBQUNELElBQUQsRUFBZTtBQUNoQyxhQUFLLElBQU1FLFFBQVgsSUFBdUJKLE1BQXZCLEVBQStCO0FBQzdCLGNBQ0VBLE1BQU0sQ0FBQ0ksUUFBRCxDQUFOLENBQWlCQyxlQUFqQixLQUFxQ04sU0FBckMsSUFDQUMsTUFBTSxDQUFDSSxRQUFELENBQU4sQ0FBaUJDLGVBQWpCLEtBQXFDSCxJQUFJLENBQUNJLE9BRDFDLElBRUFOLE1BQU0sQ0FBQ0ksUUFBRCxDQUFOLENBQWlCRyxZQUFqQixLQUFrQyxNQUhwQyxFQUlFO0FBQ0EsZ0JBQUl0QixZQUFZLEdBQUdlLE1BQU0sQ0FBQ0ksUUFBRCxDQUFOLENBQWlCSSxVQUFqQixFQUFuQjtBQUVBeEIsWUFBQUEsWUFBWSxDQUFDTixLQUFELEVBQVFPLFlBQVIsRUFBc0JDLEtBQXRCLEVBQTZCQyxPQUE3QixDQUFaO0FBQ0Q7QUFDRjtBQUNGLE9BWkQ7QUFhRDtBQUNGLEdBbkJEOztBQXFCQSx3QkFBVSxZQUFNO0FBQ2Q7QUFDQSxRQUFJTixpQkFBaUIsS0FBSyxJQUExQixFQUFnQztBQUM5QkEsTUFBQUEsaUJBQWlCLENBQUNzQixPQUFsQixDQUEwQixVQUFDRCxJQUFELEVBQVU7QUFDbENwQixRQUFBQSxHQUFHLENBQUMyQixXQUFKLENBQWdCUCxJQUFoQjtBQUNELE9BRkQ7QUFHRDs7QUFFRCxRQUNFeEIsS0FBSyxDQUFDd0IsSUFBTixLQUFlLElBQWYsSUFDQXRCLFlBQVksS0FBSyxJQURqQixJQUVBQyxpQkFBaUIsQ0FBQzZCLE1BQWxCLEtBQTZCLENBSC9CLEVBSUU7QUFDQVosTUFBQUEsZUFBZSxDQUFDcEIsS0FBRCxFQUFRLElBQVIsQ0FBZjtBQUNEO0FBQ0YsR0FmRCxFQWVHLENBQUNFLFlBQUQsRUFBZUMsaUJBQWYsQ0FmSDtBQWlCQSxzQkFBTyx5Q0FBUDtBQUNELENBdEVEOztlQXdFZUosUyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCBMIGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgc2V0SG92ZXJlZEV2ZW50UGF0aHMgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCB7IElHbG9iYWxTdGF0ZSB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvbW9kZWxzL0lHbG9iYWxTdGF0ZSc7XG5cbnR5cGUgSVByb3BzID0ge1xuICBldmVudDogSUV2ZW50O1xuICBnbG9iYWxfZGF0YTogSUdsb2JhbFN0YXRlO1xuICBob3ZlcmVkRXZlbnQ/OiBJRXZlbnQ7XG4gIGhvdmVyZWRFdmVudFBhdGhzPzogYW55W107XG59O1xuXG5jb25zdCBFdmVudFBhdGg6IFJlYWN0LkZDPElQcm9wcz4gPSAoe1xuICBldmVudCxcbiAgZ2xvYmFsX2RhdGEsXG5cbiAgaG92ZXJlZEV2ZW50ID0gbnVsbCxcbiAgaG92ZXJlZEV2ZW50UGF0aHMgPSBbXSxcbn0pID0+IHtcbiAgY29uc3QgeyBtYXAgfSA9IGdsb2JhbF9kYXRhO1xuXG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcblxuICBjb25zdCBkcmF3UG9seWxpbmUgPSAoXG4gICAgZXZlbnQ6IElFdmVudCxcbiAgICBsYXllckxhdGxuZ3M6IGFueSxcbiAgICBQYXRoczogYW55LFxuICAgIGlzSG92ZXI6IGJvb2xlYW4sXG4gICkgPT4ge1xuICAgIGxldCBldmVudFBhdGggPSBMLnBvbHlsaW5lKGxheWVyTGF0bG5ncywge1xuICAgICAgY29sb3I6ICdyZ2JhKDAsMCwwLDApJyxcbiAgICAgIHdlaWdodDogMTAsXG4gICAgICBjbGFzc05hbWU6ICdldmVudC1wYXRoJyxcbiAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICB9KS5hZGRUbyhtYXApO1xuXG4gICAgUGF0aHMucHVzaChldmVudFBhdGgpO1xuXG4gICAgZXZlbnRQYXRoWydrYW5kb19vYmplY3RfaWQnXSA9IGV2ZW50LmlkO1xuICAgIGV2ZW50UGF0aFsna2FuZG9fb2JqZWN0J10gPSAnRXZlbnRQYXRoJztcbiAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRXZlbnRQYXRocyhQYXRocykpO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckV2ZW50UGF0aCA9IChldmVudDogSUV2ZW50LCBpc0hvdmVyOiBib29sZWFuKSA9PiB7XG4gICAgaWYgKG1hcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgUGF0aHM6IGFueVtdID0gW107XG4gICAgICBsZXQgbGF5ZXJzID0gbWFwLl9sYXllcnM7XG5cbiAgICAgIGV2ZW50LnBhdGguZm9yRWFjaCgocGF0aDogYW55KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbGF5ZXJzKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3RfaWQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3RfaWQgPT09IHBhdGguZWRnZV9pZCAmJlxuICAgICAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgPT09ICdFZGdlJ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgbGV0IGxheWVyTGF0bG5ncyA9IGxheWVyc1twcm9wZXJ0eV0uZ2V0TGF0TG5ncygpO1xuXG4gICAgICAgICAgICBkcmF3UG9seWxpbmUoZXZlbnQsIGxheWVyTGF0bG5ncywgUGF0aHMsIGlzSG92ZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gQ2xlYW51cCBleGlzdGluZyBwYXRocyBpZiBuZWNlc3NhcnlcbiAgICBpZiAoaG92ZXJlZEV2ZW50UGF0aHMgIT09IG51bGwpIHtcbiAgICAgIGhvdmVyZWRFdmVudFBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKHBhdGgpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgZXZlbnQucGF0aCAhPT0gbnVsbCAmJlxuICAgICAgaG92ZXJlZEV2ZW50ICE9PSBudWxsICYmXG4gICAgICBob3ZlcmVkRXZlbnRQYXRocy5sZW5ndGggPT09IDBcbiAgICApIHtcbiAgICAgIHJlbmRlckV2ZW50UGF0aChldmVudCwgdHJ1ZSk7XG4gICAgfVxuICB9LCBbaG92ZXJlZEV2ZW50LCBob3ZlcmVkRXZlbnRQYXRoc10pO1xuXG4gIHJldHVybiA8ZGl2PjwvZGl2Pjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEV2ZW50UGF0aDtcbiJdfQ==