@kando-env/kando-ui 1.2.121 → 1.2.122-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/lib/Widgets/Map/Map.js +38 -161
  2. package/lib/Widgets/Map/MapUtils.js +103 -0
  3. package/lib/Widgets/Map/events/Event.js +69 -0
  4. package/lib/Widgets/Map/events/EventIndicator.js +21 -46
  5. package/lib/Widgets/Map/events/EventPath.js +16 -37
  6. package/lib/Widgets/Map/events/EventUtils.js +211 -0
  7. package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +3 -117
  8. package/lib/Widgets/Map/events/PointOfEvent.js +135 -0
  9. package/lib/Widgets/Map/events/PointsForSpecificEvent.js +55 -0
  10. package/lib/Widgets/Map/events/Snail.js +60 -0
  11. package/lib/Widgets/Map/points/PointMarker.js +10 -472
  12. package/lib/Widgets/Map/points/PointMarkers.js +24 -17
  13. package/lib/Widgets/Map/points/PointUtils.js +368 -0
  14. package/lib/components/SevereEvent/SevereEvent.js +3 -22
  15. package/lib/hooks/useInitializeHeaders.js +2 -3
  16. package/lib/macros/getVersion.js +2 -2
  17. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +1 -4
  18. package/lib/pages/EventsPage/events/EventsStyle.scss +1 -0
  19. package/lib/pages/EventsPage/events/event_info/EventDetails.js +13 -27
  20. package/lib/pages/EventsPage/events/events_list/EventUtils.js +25 -2
  21. package/lib/pages/EventsPage/events/events_list/EventsList.js +17 -8
  22. package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +2 -2
  23. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +4 -1
  24. package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +2 -2
  25. package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +4 -4
  26. package/lib/ui-kit/KandoTable/KandoTable.js +5 -5
  27. package/package.json +1 -1
  28. package/lib/Widgets/Map/events/EventIndicatorHover.js +0 -252
  29. package/lib/Widgets/Map/events/EventPathHover.js +0 -81
@@ -291,7 +291,7 @@ var SamplingProperties = function SamplingProperties() {
291
291
  break;
292
292
 
293
293
  case 16:
294
- if (pageType.current === 'revert_cancel') {
294
+ if (getUrlQueryOp() === 'edit' || ['revert_cancel'].includes(pageType.current)) {
295
295
  formData.append("sampling[collection_time]", collectionTime);
296
296
  } // update
297
297
 
@@ -330,7 +330,7 @@ var SamplingProperties = function SamplingProperties() {
330
330
  var detectPageType = function detectPageType(isSamplingCancelled, op) {
331
331
  var editPageValue = isSamplingCancelled ? 'cancel' : 'collect';
332
332
 
333
- if (op === 'edit') {
333
+ if (op === _samplingsPageUtils.EDIT_PROPERTIES_OP) {
334
334
  return editPageValue;
335
335
  } else if (op === _samplingsPageUtils.COLLECT_SAMPLING_OP) {
336
336
  return 'collect';
@@ -348,7 +348,7 @@ var SamplingProperties = function SamplingProperties() {
348
348
  var serverTime = serverCollectionTime ? new Date(serverCollectionTime) : currentTime;
349
349
  var editPageValue = serverCollectionTime ? serverTime : currentTime;
350
350
 
351
- if (op === 'edit') {
351
+ if (op === _samplingsPageUtils.EDIT_PROPERTIES_OP) {
352
352
  return editPageValue;
353
353
  } else if (op === _samplingsPageUtils.COLLECT_SAMPLING_OP) {
354
354
  return currentTime;
@@ -416,4 +416,4 @@ var SamplingProperties = function SamplingProperties() {
416
416
  };
417
417
 
418
418
  exports.SamplingProperties = SamplingProperties;
419
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWdlcy9TYW1wbGluZ3NQYWdlL1NhbXBsaW5nUHJvcGVydGllcy9TYW1wbGluZ1Byb3BlcnRpZXMudHN4Il0sIm5hbWVzIjpbImlzUHJvcGVydGllc1BhZ2UiLCJwYWdlVHlwZSIsIlNhbXBsaW5nUHJvcGVydGllcyIsIkRhdGUiLCJjb2xsZWN0aW9uVGltZSIsInNldENvbGxlY3Rpb25UaW1lIiwicGhvdG9zIiwic2V0UGhvdG9zIiwicGhvdG9zVG9EZWxldGUiLCJzZXRQaG90b3NUb0RlbGV0ZSIsImkxOG4iLCJ0Iiwic2F2aW5nTXNnIiwic2V0U2F2aW5nTXNnIiwic2FtcGxpbmdVcGRhdGVkIiwic2V0U2FtcGxpbmdVcGRhdGVkIiwidW5kZWZpbmVkIiwic2FtcGxpbmdQbGFuIiwic2V0U2FtcGxpbmdQbGFuIiwiaGlzdG9yeSIsImxvY2F0aW9uIiwicXVlcnkiLCJ1c2VySW5mbyIsInN0YXRlIiwicGVybWlzc2lvbnMiLCJ1c2VyX2luZm8iLCJkYXRlRm9ybWF0IiwiZGF0ZV90aW1lX2Zvcm1hdCIsInNhbXBsaW5nUHJvcGVydGllcyIsInNldFNhbXBsaW5nUHJvcGVydGllcyIsInNhbXBsZUlkIiwid2F0ZXJBdXRob3JpdHlJZCIsImdsb2JhbF9kYXRhIiwibG9jYWxlIiwibmF2X2NvbnRleHRfZGF0YSIsIm5hdkNvbnRleHQiLCJpbml0Rm9ybWlrVmFsdWVzIiwiaXNDYW5jZWxlZCIsInBhZ2VDb2xsZWN0aW9uVGltZSIsImN1cnJlbnQiLCJzYW1wbGluZyIsImNvbGxlY3Rpb25fdGltZSIsInNhbSIsImZvcm1payIsInNldFZhbHVlcyIsImxhYl9pZCIsInB1bXBfc2FtcGxpbmdfdm9sdW1lIiwicHVtcF9iYXR0ZXJ5X2xldmVsIiwiZGVzY3JpcHRpb24iLCJrYW5kb19yZXAiLCJzYW1wbGluZ19wbGFuX2lkIiwiY2FuY2VsbGF0aW9uX3JlYXNvbiIsImlzX2NhbmNlbGVkIiwiaXNDYW5jZWxsZWRMYXlvdXQiLCJwYWdlVHlwZTJpc0NhbmNlbGxlZCIsImNhbmNlbCIsImNvbGxlY3QiLCJyZXZlcnRfY2FuY2VsIiwiZmV0Y2hTYW1wbGluZ1Byb3BlcnRpZXMiLCJzYW1wbGluZ0lkIiwib3AiLCJheGlvcyIsImdldCIsImZldGNoU2FtcGxpbmciLCJ1cmwiLCJyZXNwb25zZSIsImRhdGEiLCJzYW1wbGluZ19wcm9wZXJ0aWVzIiwiZGV0ZWN0UGFnZVR5cGUiLCJkZXRlcm1pbmVDb2xsZWN0aW9uVGltZSIsInNhbXBsaW5nX3BsYW4iLCJnZXRVcmxRdWVyeU9wIiwidmFsaWRhdGlvblNjaGVtYSIsInByb3BlcnRpZXNWYWxpZGF0aW9uU2NoZW1hIiwiY2FuY2VsbGF0aW9uVmFsaWRhdGlvblNjaGVtYSIsImVuYWJsZVJlaW5pdGlhbGl6ZSIsImluaXRpYWxWYWx1ZXMiLCJzYW1wbGluZ1Byb3BlcnR5IiwidmFsaWRhdGVPbkNoYW5nZSIsInZhbGlkYXRlT25CbHVyIiwib25TdWJtaXQiLCJ2YWx1ZXMiLCJoYW5kbGVTdWJtaXQiLCJoYW5kbGVDbG9zZSIsImtleSIsImdvQmFjayIsInB1c2giLCJzYW1wbGluZ3NQYWdlIiwic2FtcGxpbmdzTGlzdFJvdXRlIiwicGljdHVyZXNfYXR0cmlidXRlcyIsInNhdmVGb3JtRGF0YSIsImZvcm1EYXRhQnVpbGRlciIsInVwZGF0ZU9yQ3JlYXRlIiwic2V0T3JpZ2luYWxTYXZlTWVzc2FnZVdpdGhUaW1lb3V0Iiwic2V0VGltZW91dCIsImZvcm1EYXRhIiwiRm9ybURhdGEiLCJ2YWx1ZSIsImFwcGVuZCIsInVuaXF1ZVBob3Rvc1RvRGVsZXRlIiwiU2V0IiwibGVuZ3RoIiwiZm9yRWFjaCIsImlkIiwiaW5kZXgiLCJKU09OIiwic3RyaW5naWZ5IiwidXBkYXRlT3JDcmVhdGVTdWNjZXNzIiwibXNnIiwic2FtcGxpbmdJRCIsInBvc3QiLCJjcmVhdGVTYW1wbGluZyIsInB1dCIsInVwZGF0ZVNhbXBsaW5nIiwiaXNTYW1wbGluZ0NhbmNlbGxlZCIsImVkaXRQYWdlVmFsdWUiLCJDT0xMRUNUX1NBTVBMSU5HX09QIiwiQ0FOQ0VMX1NBTVBMSU5HX09QIiwiUkVWRVJUX0NBTkNFTExBVElPTiIsInNlcnZlckNvbGxlY3Rpb25UaW1lIiwiY3VycmVudFRpbWUiLCJzZXJ2ZXJUaW1lIiwiaW5jbHVkZXMiLCJpc19wdW1wX2luX3Byb2dyZXNzIiwiaXNNb2JpbGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFNQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFRQTs7Ozs7O0FBbENBO0FBQ0E7QUFDQTtBQWtDQSxJQUFNQSxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQW1CLENBQUNDLFFBQUQ7QUFBQSxTQUFjQSxRQUFRLEtBQUssTUFBM0I7QUFBQSxDQUF6Qjs7QUFFTyxJQUFNQyxrQkFBc0IsR0FBRyxTQUF6QkEsa0JBQXlCLEdBQU07QUFDMUMsa0JBQTRDLHFCQUMxQyxJQUFJQyxJQUFKLEVBRDBDLENBQTVDO0FBQUE7QUFBQSxNQUFPQyxjQUFQO0FBQUEsTUFBdUJDLGlCQUF2Qjs7QUFHQSxtQkFBNEIscUJBQThCLEVBQTlCLENBQTVCO0FBQUE7QUFBQSxNQUFPQyxNQUFQO0FBQUEsTUFBZUMsU0FBZjs7QUFDQSxtQkFBNEMscUJBQW1CLEVBQW5CLENBQTVDO0FBQUE7QUFBQSxNQUFPQyxjQUFQO0FBQUEsTUFBdUJDLGlCQUF2Qjs7QUFDQSxtQkFBa0MscUJBQWlCQyxjQUFLQyxDQUFMLENBQU8sY0FBUCxDQUFqQixDQUFsQztBQUFBO0FBQUEsTUFBT0MsU0FBUDtBQUFBLE1BQWtCQyxZQUFsQjs7QUFDQSxtQkFBOEMscUJBQVMsS0FBVCxDQUE5QztBQUFBO0FBQUEsTUFBT0MsZUFBUDtBQUFBLE1BQXdCQyxrQkFBeEI7O0FBQ0Esb0JBQXdDLHFCQUV0Q0MsU0FGc0MsQ0FBeEM7QUFBQTtBQUFBLE1BQU9DLFlBQVA7QUFBQSxNQUFxQkMs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QyxpQkFOckI7QUFPRSxJQUFBLGtCQUFrQixFQUFFVSxrQkFQdEI7QUFRRSxJQUFBLG9CQUFvQixFQUFFZixnQkFBZ0IsQ0FBQ0MsUUFBRCxDQVJ4QztBQVNFLElBQUEsVUFBVSxFQUFFeUI7QUFUZCxJQUZKLEVBZUdrRyw0Q0FDQyw2QkFBQywwREFBRDtBQUNFLElBQUEsa0JBQWtCLEVBQUVoRyxrQkFEdEI7QUFFRSxJQUFBLFFBQVEsRUFBRVgsWUFGWjtBQUdFLElBQUEsTUFBTSxFQUFFMEIsTUFIVjtBQUlFLElBQUEsUUFBUSxFQUFFMUMsUUFBUSxDQUFDc0MsT0FKckI7QUFLRSxJQUFBLGNBQWMsRUFBRW5DLGNBTGxCO0FBTUUsSUFBQSxpQkFBaUIsRUFBRUMsaUJBTnJCO0FBT0UsSUFBQSxrQkFBa0IsRUFBRVUsa0JBUHRCO0FBUUUsSUFBQSxvQkFBb0IsRUFBRWYsZ0JBQWdCLENBQUNDLFFBQUQsQ0FSeEM7QUFTRSxJQUFBLFVBQVUsRUFBRXlCO0FBVGQsSUFoQkosRUE2QkdFLGtCQUFrQixJQUFJM0IsUUFBdEIsaUJBQ0MsNkJBQUMsOENBQUQ7QUFDRSxJQUFBLGtCQUFrQixFQUFFMkIsa0JBRHRCO0FBRUUsSUFBQSxRQUFRLEVBQUVYLFlBRlo7QUFHRSxJQUFBLFFBQVEsRUFBRWhCLFFBQVEsQ0FBQ3NDLE9BSHJCO0FBSUUsSUFBQSxrQkFBa0IsRUFBRXhCLGtCQUp0QjtBQUtFLElBQUEsU0FBUyxFQUFFSCxTQUxiO0FBTUUsSUFBQSxXQUFXLEVBQUV1RSxXQU5mO0FBT0UsSUFBQSxpQkFBaUIsRUFBRTFFLGlCQVByQjtBQVFFLElBQUEsU0FBUyxFQUFFRixTQVJiO0FBU0UsSUFBQSxNQUFNLEVBQUVELE1BVFY7QUFVRSxJQUFBLE1BQU0sRUFBRXFDO0FBVlYsSUE5QkosQ0FERixDQURGLENBREY7QUFrREQsQ0F0U00iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHJvcGVydGllcyBhbmQgQ2FuY2VsbGluZyBmb3Jtcy5cbiAqKi9cbmltcG9ydCBSZWFjdCwgeyBGQywgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBGb3JtaWtDb25maWcgfSBmcm9tICdmb3JtaWsvZGlzdC90eXBlcyc7XG5pbXBvcnQgeyBpc01vYmlsZSB9IGZyb20gJ3JlYWN0LWRldmljZS1kZXRlY3QnO1xuaW1wb3J0IHsgdXNlRm9ybWlrIH0gZnJvbSAnZm9ybWlrJztcbmltcG9ydCB7IHVzZUhpc3RvcnksIHVzZVBhcmFtcywgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgTGF5b3V0IGZyb20gJ3NyYy91aS1raXQvTGF5b3V0L0xheW91dCc7XG5pbXBvcnQgaTE4biBmcm9tICdzcmMvdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHVzZVF1ZXJ5VVJMIGZyb20gJ3NyYy9ob29rcy91c2VRdWVyeVVSTCc7XG5pbXBvcnQgeyBTcGlubmVyIH0gZnJvbSAnc3JjL2NvbXBvbmVudHMvU3Bpbm5lci9TcGlubmVyJztcbmltcG9ydCB7IHVybHMgfSBmcm9tICdzcmMvdXRpbGl0aWVzL3VybHMnO1xuaW1wb3J0IHsgU2FtcGxpbmdQcm9wZXJ0aWVzU3R5bGUgfSBmcm9tICcuL3N0eWxlcyc7XG5pbXBvcnQge1xuICBDQU5DRUxfU0FNUExJTkdfT1AsXG4gIENPTExFQ1RfU0FNUExJTkdfT1AsXG4gIFJFVkVSVF9DQU5DRUxMQVRJT04sXG4gIFNhbXBsaW5nRmV0Y2hEYXRhLFxufSBmcm9tICcuLi9zYW1wbGluZ3NQYWdlVXRpbHMnO1xuaW1wb3J0IHsgU2FtcGxpbmdQcm9wZXJ0aWVzRm9ybSB9IGZyb20gJy4vU2FtcGxpbmdQcm9wZXJ0aWVzRm9ybSc7XG5pbXBvcnQgeyBTYW1wbGluZ1Byb3BlcnRpZXNIZWFkIH0gZnJvbSAnLi9TYW1wbGluZ1Byb3BlcnRpZXNIZWFkJztcbmltcG9ydCB7IFNhbXBsaW5nUHJvcGVydGllc0hlYWRNb2JpbGUgfSBmcm9tICcuL1NhbXBsaW5nUHJvcGVydGllc0hlYWRNb2JpbGUnO1xuaW1wb3J0IHtcbiAgRm9ybVR5cGUsXG4gIFRTYW1wbGluZ1Byb3BlcnRpZXMsXG4gIGNhbmNlbGxhdGlvblZhbGlkYXRpb25TY2hlbWEsXG4gIGlzQ29sbGVjdExheW91dCxcbiAgcHJvcGVydGllc1ZhbGlkYXRpb25TY2hlbWEsXG4gIHNhbXBsaW5nUHJvcGVydHksXG59IGZyb20gJy4vc2FtcGxpbmdQcm9wZXJ0aWVzVXRpbHMnO1xuaW1wb3J0IFNhbXBsZXJJblByb2Nlc3MgZnJvbSAnLi9TYW1wbGVySW5Qcm9jZXNzJztcblxuY29uc3QgaXNQcm9wZXJ0aWVzUGFnZSA9IChwYWdlVHlwZSkgPT4gcGFnZVR5cGUgPT09ICdlZGl0JztcblxuZXhwb3J0IGNvbnN0IFNhbXBsaW5nUHJvcGVydGllczogRkMgPSAoKSA9PiB7XG4gIGNvbnN0IFtjb2xsZWN0aW9uVGltZSwgc2V0Q29sbGVjdGlvblRpbWVdID0gdXNlU3RhdGU8c3RyaW5nIHwgRGF0ZSB8IG51bGw+KFxuICAgIG5ldyBEYXRlKCksXG4gICk7XG4gIGNvbnN0IFtwaG90b3MsIHNldFBob3Rvc10gPSB1c2VTdGF0ZTxzdHJpbmcgfCBCbG9iIHwgYW55PihbXSk7XG4gIGNvbnN0IFtwaG90b3NUb0RlbGV0ZSwgc2V0UGhvdG9zVG9EZWxldGVdID0gdXNlU3RhdGU8bnVtYmVyW10+KFtdKTtcbiAgY29uc3QgW3NhdmluZ01zZywgc2V0U2F2aW5nTXNnXSA9IHVzZVN0YXRlPHN0cmluZz4oaTE4bi50KCdidXR0b25zLnNhdmUnKSk7XG4gIGNvbnN0IFtzYW1wbGluZ1VwZGF0ZWQsIHNldFNhbXBsaW5nVXBkYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtzYW1wbGluZ1BsYW4sIHNldFNhbXBsaW5nUGxhbl0gPSB1c2VTdGF0ZTxcbiAgICBTYW1wbGluZ0ZldGNoRGF0YSB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIGNvbnN0IGhpc3RvcnkgPSB1c2VIaXN0b3J5KCk7XG4gIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcbiAgY29uc3QgcXVlcnkgPSB1c2VRdWVyeVVSTCgpO1xuICBjb25zdCB1c2VySW5mbyA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUucGVybWlzc2lvbnMudXNlcl9pbmZvKTtcbiAgY29uc3QgZGF0ZUZvcm1hdCA9XG4gICAgdXNlckluZm8uZGF0ZV90aW1lX2Zvcm1hdCA9PT0gJ3VzJ1xuICAgICAgPyAnTU1NIGQsIHl5eXkgaGg6bW0gYWEnXG4gICAgICA6ICdkL01NL3l5eXkgSEg6bW0nO1xuICBjb25zdCBwYWdlVHlwZSA9IHVzZVJlZjxzdHJpbmc+KCcnKTtcbiAgY29uc3QgW3NhbXBsaW5nUHJvcGVydGllcywgc2V0U2FtcGxpbmdQcm9wZXJ0aWVzXSA9XG4gICAgdXNlU3RhdGU8VFNhbXBsaW5nUHJvcGVydGllcz4oKTtcbiAgY29uc3QgeyBzYW1wbGVJZCB9ID0gdXNlUGFyYW1zKCk7XG4gIGNvbnN0IHdhdGVyQXV0aG9yaXR5SWQgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGUpID0+IHN0YXRlLmdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQsXG4gICk7XG4gIGNvbnN0IGxvY2FsZSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZSkgPT4gc3RhdGUubmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZSxcbiAgKTtcblxuICBjb25zdCBpbml0Rm9ybWlrVmFsdWVzID0gKHNhbXBsaW5nUHJvcGVydGllcywgaXNDYW5jZWxlZCkgPT4ge1xuICAgIGNvbnN0IHBhZ2VDb2xsZWN0aW9uVGltZSA9IGlzQ29sbGVjdExheW91dChwYWdlVHlwZS5jdXJyZW50KVxuICAgICAgPyBjb2xsZWN0aW9uVGltZVxuICAgICAgOiBzYW1wbGluZ1Byb3BlcnRpZXMuc2FtcGxpbmcuY29sbGVjdGlvbl90aW1lO1xuICAgIGNvbnN0IHNhbSA9IHNhbXBsaW5nUHJvcGVydGllcy5zYW1wbGluZztcbiAgICBmb3JtaWsuc2V0VmFsdWVzKHtcbiAgICAgIGxhYl9pZDogc2FtLmxhYl9pZCxcbiAgICAgIGNvbGxlY3Rpb25fdGltZTogcGFnZUNvbGxlY3Rpb25UaW1lLFxuICAgICAgcHVtcF9zYW1wbGluZ192b2x1bWU6IHNhbS5wdW1wX3NhbXBsaW5nX3ZvbHVtZSxcbiAgICAgIHB1bXBfYmF0dGVyeV9sZXZlbDogc2FtLnB1bXBfYmF0dGVyeV9sZXZlbCxcbiAgICAgIGRlc2NyaXB0aW9uOiBzYW0uZGVzY3JpcHRpb24sXG4gICAgICBrYW5kb19yZXA6IHNhbS5rYW5kb19yZXAsXG4gICAgICBzYW1wbGluZ19wbGFuX2lkOiBzYW0uc2FtcGxpbmdfcGxhbl9pZCxcbiAgICAgIGNhbmNlbGxhdGlvbl9yZWFzb246IHNhbS5jYW5jZWxsYXRpb25fcmVhc29uIHx8ICcnLFxuICAgICAgaXNfY2FuY2VsZWQ6IGlzQ2FuY2VsZWQsXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgaXNDYW5jZWxsZWRMYXlvdXQgPSAoc2FtcGxpbmdQcm9wZXJ0aWVzKSA9PiB7XG4gICAgY29uc3QgcGFnZVR5cGUyaXNDYW5jZWxsZWQgPSB7XG4gICAgICBjYW5jZWw6IHRydWUsXG4gICAgICBjb2xsZWN0OiBmYWxzZSxcbiAgICAgIHJldmVydF9jYW5jZWw6IGZhbHNlLFxuICAgIH07XG4gICAgbGV0IGlzQ2FuY2VsZWQgPSBwYWdlVHlwZTJpc0NhbmNlbGxlZFtwYWdlVHlwZS5jdXJyZW50XTtcbiAgICBpZiAoaXNDYW5jZWxlZCA9PT0gbnVsbCkge1xuICAgICAgaXNDYW5jZWxlZCA9IHNhbXBsaW5nUHJvcGVydGllcy5zYW1wbGluZy5pc19jYW5jZWxlZCB8fCBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzQ2FuY2VsZWQ7XG4gIH07XG5cbiAgY29uc3QgZmV0Y2hTYW1wbGluZ1Byb3BlcnRpZXMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoc2FtcGxpbmdJZCA9IHNhbXBsZUlkLCBvcCkgPT4ge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5nZXQoXG4gICAgICAgIHVybHMoeyBzYW1wbGluZ0lkOiBzYW1wbGluZ0lkIH0pLnNhbXBsaW5nUHJvcGVydGllcy5mZXRjaFNhbXBsaW5nLnVybCxcbiAgICAgICk7XG4gICAgICBjb25zdCBzYW1wbGluZyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICBjb25zdCBzYW1wbGluZ1Byb3BlcnRpZXMgPSBzYW1wbGluZy5zYW1wbGluZ19wcm9wZXJ0aWVzO1xuICAgICAgcGFnZVR5cGUuY3VycmVudCA9IGRldGVjdFBhZ2VUeXBlKFxuICAgICAgICBzYW1wbGluZ1Byb3BlcnRpZXMuc2FtcGxpbmcuaXNfY2FuY2VsZWQsXG4gICAgICAgIG9wLFxuICAgICAgKTtcbiAgICAgIHNldENvbGxlY3Rpb25UaW1lKFxuICAgICAgICBkZXRlcm1pbmVDb2xsZWN0aW9uVGltZShcbiAgICAgICAgICBzYW1wbGluZ1Byb3BlcnRpZXMuc2FtcGxpbmcuY29sbGVjdGlvbl90aW1lLFxuICAgICAgICAgIG9wLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIGxldCBpc0NhbmNlbGVkID0gaXNDYW5jZWxsZWRMYXlvdXQoXG4gICAgICAgIHNhbXBsaW5nUHJvcGVydGllcy5zYW1wbGluZy5pc19jYW5jZWxlZCxcbiAgICAgICk7XG4gICAgICBpbml0Rm9ybWlrVmFsdWVzKHNhbXBsaW5nUHJvcGVydGllcywgaXNDYW5jZWxlZCk7XG4gICAgICBzZXRTYW1wbGluZ1Byb3BlcnRpZXMoc2FtcGxpbmdQcm9wZXJ0aWVzKTtcbiAgICAgIHNldFNhbXBsaW5nUGxhbihzYW1wbGluZy5zYW1wbGluZ19wbGFuKTtcbiAgICB9LFxuICAgIFtdLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZmV0Y2hTYW1wbGluZ1Byb3BlcnRpZXMoc2FtcGxlSWQsIGdldFVybFF1ZXJ5T3AoKSk7XG4gIH0sIFtzYW1wbGluZ1VwZGF0ZWRdKTtcblxuICBjb25zdCB2YWxpZGF0aW9uU2NoZW1hID0gaXNDb2xsZWN0TGF5b3V0KHBhZ2VUeXBlLmN1cnJlbnQpXG4gICAgPyBwcm9wZXJ0aWVzVmFsaWRhdGlvblNjaGVtYVxuICAgIDogY2FuY2VsbGF0aW9uVmFsaWRhdGlvblNjaGVtYTtcbiAgY29uc3QgZm9ybWlrID0gdXNlRm9ybWlrPEZvcm1pa0NvbmZpZzxGb3JtVHlwZT4+KHtcbiAgICBlbmFibGVSZWluaXRpYWxpemU6IHRydWUsXG4gICAgaW5pdGlhbFZhbHVlczogc2FtcGxpbmdQcm9wZXJ0eSxcbiAgICB2YWxpZGF0aW9uU2NoZW1hOiB2YWxpZGF0aW9uU2NoZW1hLFxuICAgIHZhbGlkYXRlT25DaGFuZ2U6IGZhbHNlLFxuICAgIHZhbGlkYXRlT25CbHVyOiB0cnVlLFxuICAgIG9uU3VibWl0OiAodmFsdWVzKSA9PiB7XG4gICAgICBoYW5kbGVTdWJtaXQodmFsdWVzKTtcbiAgICB9LFxuICB9KTtcblxuICBjb25zdCBoYW5kbGVDbG9zZSA9ICgpID0+IHtcbiAgICBpZiAobG9jYXRpb24ua2V5KSB7XG4gICAgICBoaXN0b3J5LmdvQmFjaygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBoaXN0b3J5LnB1c2goXG4gICAgICAgIHVybHMoeyBsb2NhbGUsIHdhdGVyQXV0aG9yaXR5SWQgfSkuc2FtcGxpbmdzUGFnZS5zYW1wbGluZ3NMaXN0Um91dGUudXJsLFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0ID0gKHZhbHVlcykgPT4ge1xuICAgIHNldFNhdmluZ01zZyhpMThuLnQoJ2J1dHRvbnMuc2F2aW5nJykpO1xuICAgIHZhbHVlcy5waWN0dXJlc19hdHRyaWJ1dGVzID0gcGhvdG9zO1xuICAgIGNvbnN0IHNhdmVGb3JtRGF0YSA9IGZvcm1EYXRhQnVpbGRlcih2YWx1ZXMpO1xuICAgIHVwZGF0ZU9yQ3JlYXRlKHNhdmVGb3JtRGF0YSk7XG4gIH07XG5cbiAgY29uc3Qgc2V0T3JpZ2luYWxTYXZlTWVzc2FnZVdpdGhUaW1lb3V0ID0gKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2V0U2F2aW5nTXNnKGkxOG4udCgnYnV0dG9ucy5zYXZlJykpO1xuICAgIH0sIDMwMDApO1xuICB9O1xuXG4gIGNvbnN0IGZvcm1EYXRhQnVpbGRlciA9ICh2YWx1ZXMpID0+IHtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvciAoY29uc3Qga2V5IGluIHZhbHVlcykge1xuICAgICAgaWYgKGtleSAhPT0gJ3BpY3R1cmVzX2F0dHJpYnV0ZXMnKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzW2tleV0gPT09IG51bGwgPyAnJyA6IHZhbHVlc1trZXldO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoYHNhbXBsaW5nWyR7a2V5fV1gLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGxldCB1bmlxdWVQaG90b3NUb0RlbGV0ZSA9IFsuLi5uZXcgU2V0KHBob3Rvc1RvRGVsZXRlKV07XG4gICAgdW5pcXVlUGhvdG9zVG9EZWxldGUubGVuZ3RoICE9PSAwICYmXG4gICAgICB1bmlxdWVQaG90b3NUb0RlbGV0ZS5mb3JFYWNoKChpZCwgaW5kZXgpID0+IHtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKFxuICAgICAgICAgIGBzYW1wbGluZ1twaWN0dXJlc19hdHRyaWJ1dGVzXVske2luZGV4fV1baWRdYCxcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShpZCksXG4gICAgICAgICk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgICAgICBgc2FtcGxpbmdbcGljdHVyZXNfYXR0cmlidXRlc11bJHtpbmRleH1dW19kZXN0cm95XWAsXG4gICAgICAgICAgJ3RydWUnLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgcmV0dXJuIGZvcm1EYXRhO1xuICB9O1xuXG4gIGNvbnN0IHVwZGF0ZU9yQ3JlYXRlID0gYXN5bmMgKGZvcm1EYXRhKSA9PiB7XG4gICAgY29uc3QgdXBkYXRlT3JDcmVhdGVTdWNjZXNzID0gKG1zZykgPT4ge1xuICAgICAgc2V0U2F2aW5nTXNnKGkxOG4udChtc2cpKTtcbiAgICAgIHNldFNhbXBsaW5nVXBkYXRlZCh0cnVlKTtcbiAgICAgIHNldE9yaWdpbmFsU2F2ZU1lc3NhZ2VXaXRoVGltZW91dCgpO1xuICAgICAgaGFuZGxlQ2xvc2UoKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2FtcGxpbmdJRCA9IHNhbXBsaW5nUHJvcGVydGllcz8uc2FtcGxpbmc/LmlkO1xuICAgIGlmIChzYW1wbGluZ0lEID09PSBudWxsKSB7XG4gICAgICAvLyBjcmVhdGVcbiAgICAgIGZvcm1EYXRhLmFwcGVuZChgc2FtcGxpbmdbZGF0ZV1gLCBjb2xsZWN0aW9uVGltZSk7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBheGlvcy5wb3N0KFxuICAgICAgICAgIHVybHMoe1xuICAgICAgICAgICAgd2F0ZXJBdXRob3JpdHlJZDogd2F0ZXJBdXRob3JpdHlJZCxcbiAgICAgICAgICB9KS5zYW1wbGluZ1Byb3BlcnRpZXMuY3JlYXRlU2FtcGxpbmcudXJsLFxuICAgICAgICAgIGZvcm1EYXRhLFxuICAgICAgICApO1xuICAgICAgICB1cGRhdGVPckNyZWF0ZVN1Y2Nlc3MoJ2J1dHRvbnMuY3JlYXRlZCcpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBzZXRTYXZpbmdNc2coaTE4bi50KCdidXR0b25zLmVycm9yJykpO1xuICAgICAgICBzZXRPcmlnaW5hbFNhdmVNZXNzYWdlV2l0aFRpbWVvdXQoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHBhZ2VUeXBlLmN1cnJlbnQgPT09ICdyZXZlcnRfY2FuY2VsJykge1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoYHNhbXBsaW5nW2NvbGxlY3Rpb25fdGltZV1gLCBjb2xsZWN0aW9uVGltZSk7XG4gICAgICB9XG4gICAgICAvLyB1cGRhdGVcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGF4aW9zLnB1dChcbiAgICAgICAgICB1cmxzKHsgc2FtcGxpbmdJZDogc2FtcGxpbmdJRCwgd2F0ZXJBdXRob3JpdHlJZDogd2F0ZXJBdXRob3JpdHlJZCB9KVxuICAgICAgICAgICAgLnNhbXBsaW5nUHJvcGVydGllcy51cGRhdGVTYW1wbGluZy51cmwsXG4gICAgICAgICAgZm9ybURhdGEsXG4gICAgICAgICk7XG4gICAgICAgIHVwZGF0ZU9yQ3JlYXRlU3VjY2VzcygnYnV0dG9ucy51cGRhdGVkJyk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHNldFNhdmluZ01zZyhpMThuLnQoJ2J1dHRvbnMuZXJyb3InKSk7XG4gICAgICAgIHNldE9yaWdpbmFsU2F2ZU1lc3NhZ2VXaXRoVGltZW91dCgpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCBkZXRlY3RQYWdlVHlwZSA9IChpc1NhbXBsaW5nQ2FuY2VsbGVkLCBvcCkgPT4ge1xuICAgIGNvbnN0IGVkaXRQYWdlVmFsdWUgPSBpc1NhbXBsaW5nQ2FuY2VsbGVkID8gJ2NhbmNlbCcgOiAnY29sbGVjdCc7XG4gICAgaWYgKG9wID09PSAnZWRpdCcpIHtcbiAgICAgIHJldHVybiBlZGl0UGFnZVZhbHVlO1xuICAgIH0gZWxzZSBpZiAob3AgPT09IENPTExFQ1RfU0FNUExJTkdfT1ApIHtcbiAgICAgIHJldHVybiAnY29sbGVjdCc7XG4gICAgfSBlbHNlIGlmIChvcCA9PT0gQ0FOQ0VMX1NBTVBMSU5HX09QKSB7XG4gICAgICByZXR1cm4gJ2NhbmNlbCc7XG4gICAgfSBlbHNlIGlmIChvcCA9PT0gUkVWRVJUX0NBTkNFTExBVElPTikge1xuICAgICAgcmV0dXJuICdyZXZlcnRfY2FuY2VsJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGVkaXRQYWdlVmFsdWU7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGRldGVybWluZUNvbGxlY3Rpb25UaW1lID0gKHNlcnZlckNvbGxlY3Rpb25UaW1lLCBvcCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCBzZXJ2ZXJUaW1lID0gc2VydmVyQ29sbGVjdGlvblRpbWVcbiAgICAgID8gbmV3IERhdGUoc2VydmVyQ29sbGVjdGlvblRpbWUpXG4gICAgICA6IGN1cnJlbnRUaW1lO1xuICAgIGNvbnN0IGVkaXRQYWdlVmFsdWUgPSBzZXJ2ZXJDb2xsZWN0aW9uVGltZSA/IHNlcnZlclRpbWUgOiBjdXJyZW50VGltZTtcbiAgICBpZiAob3AgPT09ICdlZGl0Jykge1xuICAgICAgcmV0dXJuIGVkaXRQYWdlVmFsdWU7XG4gICAgfSBlbHNlIGlmIChvcCA9PT0gQ09MTEVDVF9TQU1QTElOR19PUCkge1xuICAgICAgcmV0dXJuIGN1cnJlbnRUaW1lO1xuICAgIH0gZWxzZSBpZiAoW0NBTkNFTF9TQU1QTElOR19PUCwgUkVWRVJUX0NBTkNFTExBVElPTl0uaW5jbHVkZXMob3ApKSB7XG4gICAgICByZXR1cm4gc2VydmVyVGltZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGVkaXRQYWdlVmFsdWU7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGdldFVybFF1ZXJ5T3AgPSAoKSA9PiB7XG4gICAgbGV0IG9wID0gcXVlcnkuZ2V0KCdvcCcpO1xuICAgIC8vIGlmIG5vdCBwcmVzZW50IHRoZW4gZGVmYXVsdCBvcCBpcyAnY29sbGVjdGluZydcbiAgICBpZiAoW3VuZGVmaW5lZCwgbnVsbCwgJyddLmluY2x1ZGVzKG9wKSkge1xuICAgICAgcmV0dXJuIENPTExFQ1RfU0FNUExJTkdfT1A7XG4gICAgfVxuICAgIHJldHVybiBvcDtcbiAgfTtcblxuICBpZiAoIXNhbXBsaW5nUGxhbiB8fCAhc2FtcGxpbmdQcm9wZXJ0aWVzKSB7XG4gICAgcmV0dXJuIDxTcGlubmVyIC8+O1xuICB9XG5cbiAgaWYgKHNhbXBsaW5nUHJvcGVydGllcy5pc19wdW1wX2luX3Byb2dyZXNzKSB7XG4gICAgcmV0dXJuIDxTYW1wbGVySW5Qcm9jZXNzIGhhbmRsZUNsb3NlPXtoYW5kbGVDbG9zZX0gLz47XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxmb3JtIG9uU3VibWl0PXtmb3JtaWsuaGFuZGxlU3VibWl0fT5cbiAgICAgIDxMYXlvdXQ+XG4gICAgICAgIDxTYW1wbGluZ1Byb3BlcnRpZXNTdHlsZT5cbiAgICAgICAgICB7IWlzTW9iaWxlICYmIChcbiAgICAgICAgICAgIDxTYW1wbGluZ1Byb3BlcnRpZXNIZWFkXG4gICAgICAgICAgICAgIHNhbXBsaW5nUHJvcGVydGllcz17c2FtcGxpbmdQcm9wZXJ0aWVzfVxuICAgICAgICAgICAgICBzYW1wbGluZz17c2FtcGxpbmdQbGFufVxuICAgICAgICAgICAgICBmb3JtaWs9e2Zvcm1pa31cbiAgICAgICAgICAgICAgcGFnZVR5cGU9e3BhZ2VUeXBlLmN1cnJlbnR9XG4gICAgICAgICAgICAgIGNvbGxlY3Rpb25UaW1lPXtjb2xsZWN0aW9uVGltZX1cbiAgICAgICAgICAgICAgc2V0Q29sbGVjdGlvblRpbWU9e3NldENvbGxlY3Rpb25UaW1lfVxuICAgICAgICAgICAgICBzZXRTYW1wbGluZ1VwZGF0ZWQ9e3NldFNhbXBsaW5nVXBkYXRlZH1cbiAgICAgICAgICAgICAgaXNEYXRlUGlja2VyRGlzYWJsZWQ9e2lzUHJvcGVydGllc1BhZ2UocGFnZVR5cGUpfVxuICAgICAgICAgICAgICBkYXRlRm9ybWF0PXtkYXRlRm9ybWF0fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge2lzTW9iaWxlICYmIChcbiAgICAgICAgICAgIDxTYW1wbGluZ1Byb3BlcnRpZXNIZWFkTW9iaWxlXG4gICAgICAgICAgICAgIHNhbXBsaW5nUHJvcGVydGllcz17c2FtcGxpbmdQcm9wZXJ0aWVzfVxuICAgICAgICAgICAgICBzYW1wbGluZz17c2FtcGxpbmdQbGFufVxuICAgICAgICAgICAgICBmb3JtaWs9e2Zvcm1pa31cbiAgICAgICAgICAgICAgcGFnZVR5cGU9e3BhZ2VUeXBlLmN1cnJlbnR9XG4gICAgICAgICAgICAgIGNvbGxlY3Rpb25UaW1lPXtjb2xsZWN0aW9uVGltZX1cbiAgICAgICAgICAgICAgc2V0Q29sbGVjdGlvblRpbWU9e3NldENvbGxlY3Rpb25UaW1lfVxuICAgICAgICAgICAgICBzZXRTYW1wbGluZ1VwZGF0ZWQ9e3NldFNhbXBsaW5nVXBkYXRlZH1cbiAgICAgICAgICAgICAgaXNEYXRlUGlja2VyRGlzYWJsZWQ9e2lzUHJvcGVydGllc1BhZ2UocGFnZVR5cGUpfVxuICAgICAgICAgICAgICBkYXRlRm9ybWF0PXtkYXRlRm9ybWF0fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge3NhbXBsaW5nUHJvcGVydGllcyAmJiBwYWdlVHlwZSAmJiAoXG4gICAgICAgICAgICA8U2FtcGxpbmdQcm9wZXJ0aWVzRm9ybVxuICAgICAgICAgICAgICBzYW1wbGluZ1Byb3BlcnRpZXM9e3NhbXBsaW5nUHJvcGVydGllc31cbiAgICAgICAgICAgICAgc2FtcGxpbmc9e3NhbXBsaW5nUGxhbn1cbiAgICAgICAgICAgICAgcGFnZVR5cGU9e3BhZ2VUeXBlLmN1cnJlbnR9XG4gICAgICAgICAgICAgIHNldFNhbXBsaW5nVXBkYXRlZD17c2V0U2FtcGxpbmdVcGRhdGVkfVxuICAgICAgICAgICAgICBzYXZpbmdNc2c9e3NhdmluZ01zZ31cbiAgICAgICAgICAgICAgaGFuZGxlQ2xvc2U9e2hhbmRsZUNsb3NlfVxuICAgICAgICAgICAgICBzZXRQaG90b3NUb0RlbGV0ZT17c2V0UGhvdG9zVG9EZWxldGV9XG4gICAgICAgICAgICAgIHNldFBob3Rvcz17c2V0UGhvdG9zfVxuICAgICAgICAgICAgICBwaG90b3M9e3Bob3Rvc31cbiAgICAgICAgICAgICAgZm9ybWlrPXtmb3JtaWt9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU2FtcGxpbmdQcm9wZXJ0aWVzU3R5bGU+XG4gICAgICA8L0xheW91dD5cbiAgICA8L2Zvcm0+XG4gICk7XG59O1xuIl19
419
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWdlcy9TYW1wbGluZ3NQYWdlL1NhbXBsaW5nUHJvcGVydGllcy9TYW1wbGluZ1Byb3BlcnRpZXMudHN4Il0sIm5hbWVzIjpbImlzUHJvcGVydGllc1BhZ2UiLCJwYWdlVHlwZSIsIlNhbXBsaW5nUHJvcGVydGllcyIsIkRhdGUiLCJjb2xsZWN0aW9uVGltZSIsInNldENvbGxlY3Rpb25UaW1lIiwicGhvdG9zIiwic2V0UGhvdG9zIiwicGhvdG9zVG9EZWxldGUiLCJzZXRQaG90b3NUb0RlbGV0ZSIsImkxOG4iLCJ0Iiwic2F2aW5nTXNnIiwic2V0U2F2aW5nTXNnIiwic2FtcGxpbmdVcGRhdGVkIiwic2V0U2FtcGxpbmdVcGRhdGVkIiwidW5kZWZpbmVkIiwic2FtcGxpbmdQbGFuIiwic2V0U2FtcGxpbmdQbGFuIiwiaGlzdG9yeSIsImxvY2F0aW9uIiwicXVlcnkiLCJ1c2VySW5mbyIsInN0YXRlIiwicGVybWlzc2lvbnMiLCJ1c2VyX2luZm8iLCJkYXRlRm9ybWF0IiwiZGF0ZV90aW1lX2Zvcm1hdCIsInNhbXBsaW5nUHJvcGVydGllcyIsInNldFNhbXBsaW5nUHJvcGVydGllcyIsInNhbXBsZUlkIiwid2F0ZXJBdXRob3JpdHlJZCIsImdsb2JhbF9kYXRhIiwibG9jYWxlIiwibmF2X2NvbnRleHRfZGF0YSIsIm5hdkNvbnRleHQiLCJpbml0Rm9ybWlrVmFsdWVzIiwiaXNDYW5jZWxlZCIsInBhZ2VDb2xsZWN0aW9uVGltZSIsImN1cnJlbnQiLCJzYW1wbGluZyIsImNvbGxlY3Rpb25fdGltZSIsInNhbSIsImZvcm1payIsInNldFZhbHVlcyIsImxhYl9pZCIsInB1bXBfc2FtcGxpbmdfdm9sdW1lIiwicHVtcF9iYXR0ZXJ5X2xldmVsIiwiZGVzY3JpcHRpb24iLCJrYW5kb19yZXAiLCJzYW1wbGluZ19wbGFuX2lkIiwiY2FuY2VsbGF0aW9uX3JlYXNvbiIsImlzX2NhbmNlbGVkIiwiaXNDYW5jZWxsZWRMYXlvdXQiLCJwYWdlVHlwZTJpc0NhbmNlbGxlZCIsImNhbmNlbCIsImNvbGxlY3QiLCJyZXZlcnRfY2FuY2VsIiwiZmV0Y2hTYW1wbGluZ1Byb3BlcnRpZXMiLCJzYW1wbGluZ0lkIiwib3AiLCJheGlvcyIsImdldCIsImZldGNoU2FtcGxpbmciLCJ1cmwiLCJyZXNwb25zZSIsImRhdGEiLCJzYW1wbGluZ19wcm9wZXJ0aWVzIiwiZGV0ZWN0UGFnZVR5cGUiLCJkZXRlcm1pbmVDb2xsZWN0aW9uVGltZSIsInNhbXBsaW5nX3BsYW4iLCJnZXRVcmxRdWVyeU9wIiwidmFsaWRhdGlvblNjaGVtYSIsInByb3BlcnRpZXNWYWxpZGF0aW9uU2NoZW1hIiwiY2FuY2VsbGF0aW9uVmFsaWRhdGlvblNjaGVtYSIsImVuYWJsZVJlaW5pdGlhbGl6ZSIsImluaXRpYWxWYWx1ZXMiLCJzYW1wbGluZ1Byb3BlcnR5IiwidmFsaWRhdGVPbkNoYW5nZSIsInZhbGlkYXRlT25CbHVyIiwib25TdWJtaXQiLCJ2YWx1ZXMiLCJoYW5kbGVTdWJtaXQiLCJoYW5kbGVDbG9zZSIsImtleSIsImdvQmFjayIsInB1c2giLCJzYW1wbGluZ3NQYWdlIiwic2FtcGxpbmdzTGlzdFJvdXRlIiwicGljdHVyZXNfYXR0cmlidXRlcyIsInNhdmVGb3JtRGF0YSIsImZvcm1EYXRhQnVpbGRlciIsInVwZGF0ZU9yQ3JlYXRlIiwic2V0T3JpZ2luYWxTYXZlTWVzc2FnZVdpdGhUaW1lb3V0Iiwic2V0VGltZW91dCIsImZvcm1EYXRhIiwiRm9ybURhdGEiLCJ2YWx1ZSIsImFwcGVuZCIsInVuaXF1ZVBob3Rvc1RvRGVsZXRlIiwiU2V0IiwibGVuZ3RoIiwiZm9yRWFjaCIsImlkIiwiaW5kZXgiLCJKU09OIiwic3RyaW5naWZ5IiwidXBkYXRlT3JDcmVhdGVTdWNjZXNzIiwibXNnIiwic2FtcGxpbmdJRCIsInBvc3QiLCJjcmVhdGVTYW1wbGluZyIsImluY2x1ZGVzIiwicHV0IiwidXBkYXRlU2FtcGxpbmciLCJpc1NhbXBsaW5nQ2FuY2VsbGVkIiwiZWRpdFBhZ2VWYWx1ZSIsIkVESVRfUFJPUEVSVElFU19PUCIsIkNPTExFQ1RfU0FNUExJTkdfT1AiLCJDQU5DRUxfU0FNUExJTkdfT1AiLCJSRVZFUlRfQ0FOQ0VMTEFUSU9OIiwic2VydmVyQ29sbGVjdGlvblRpbWUiLCJjdXJyZW50VGltZSIsInNlcnZlclRpbWUiLCJpc19wdW1wX2luX3Byb2dyZXNzIiwiaXNNb2JpbGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFPQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFRQTs7Ozs7O0FBbkNBO0FBQ0E7QUFDQTtBQW1DQSxJQUFNQSxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQW1CLENBQUNDLFFBQUQ7QUFBQSxTQUFjQSxRQUFRLEtBQUssTUFBM0I7QUFBQSxDQUF6Qjs7QUFFTyxJQUFNQyxrQkFBc0IsR0FBRyxTQUF6QkEsa0JBQXlCLEdBQU07QUFDMUMsa0JBQTRDLHFCQUMxQyxJQUFJQyxJQUFKLEVBRDBDLENBQTVDO0FBQUE7QUFBQSxNQUFPQyxjQUFQO0FBQUEsTUFBdUJDLGlCQUF2Qjs7QUFHQSxtQkFBNEIscUJBQThCLEVBQTlCLENBQTVCO0FBQUE7QUFBQSxNQUFPQyxNQUFQO0FBQUEsTUFBZUMsU0FBZjs7QUFDQSxtQkFBNEMscUJBQW1CLEVBQW5CLENBQTVDO0FBQUE7QUFBQSxNQUFPQyxjQUFQO0FBQUEsTUFBdUJDLGlCQUF2Qjs7QUFDQSxtQkFBa0MscUJBQWlCQyxjQUFLQyxDQUFMLENBQU8sY0FBUCxDQUFqQixDQUFsQztBQUFBO0FBQUEsTUFBT0MsU0FBUDtBQUFBLE1BQWtCQyxZQUFsQjs7QUFDQSxtQkFBOEMscUJBQVMsS0FBVCxDQUE5QztBQUFBO0FBQUEsTUFBT0MsZUFBUDtBQUFBLE1BQXdCQyxrQkFBeEI7O0FBQ0Esb0JBQXdDLHFCQUV0Q0MsU0FGc0MsQ0FBeEM7QUFBQTtBQUFBLE1B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IFByb3BlcnRpZXMgYW5kIENhbmNlbGxpbmcgZm9ybXMuXG4gKiovXG5pbXBvcnQgUmVhY3QsIHsgRkMsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHsgRm9ybWlrQ29uZmlnIH0gZnJvbSAnZm9ybWlrL2Rpc3QvdHlwZXMnO1xuaW1wb3J0IHsgaXNNb2JpbGUgfSBmcm9tICdyZWFjdC1kZXZpY2UtZGV0ZWN0JztcbmltcG9ydCB7IHVzZUZvcm1payB9IGZyb20gJ2Zvcm1payc7XG5pbXBvcnQgeyB1c2VIaXN0b3J5LCB1c2VQYXJhbXMsIHVzZUxvY2F0aW9uIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcblxuaW1wb3J0IExheW91dCBmcm9tICdzcmMvdWkta2l0L0xheW91dC9MYXlvdXQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB1c2VRdWVyeVVSTCBmcm9tICdzcmMvaG9va3MvdXNlUXVlcnlVUkwnO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJ3NyYy9jb21wb25lbnRzL1NwaW5uZXIvU3Bpbm5lcic7XG5pbXBvcnQgeyB1cmxzIH0gZnJvbSAnc3JjL3V0aWxpdGllcy91cmxzJztcbmltcG9ydCB7IFNhbXBsaW5nUHJvcGVydGllc1N0eWxlIH0gZnJvbSAnLi9zdHlsZXMnO1xuaW1wb3J0IHtcbiAgQ0FOQ0VMX1NBTVBMSU5HX09QLFxuICBDT0xMRUNUX1NBTVBMSU5HX09QLFxuICBFRElUX1BST1BFUlRJRVNfT1AsXG4gIFJFVkVSVF9DQU5DRUxMQVRJT04sXG4gIFNhbXBsaW5nRmV0Y2hEYXRhLFxufSBmcm9tICcuLi9zYW1wbGluZ3NQYWdlVXRpbHMnO1xuaW1wb3J0IHsgU2FtcGxpbmdQcm9wZXJ0aWVzRm9ybSB9IGZyb20gJy4vU2FtcGxpbmdQcm9wZXJ0aWVzRm9ybSc7XG5pbXBvcnQgeyBTYW1wbGluZ1Byb3BlcnRpZXNIZWFkIH0gZnJvbSAnLi9TYW1wbGluZ1Byb3BlcnRpZXNIZWFkJztcbmltcG9ydCB7IFNhbXBsaW5nUHJvcGVydGllc0hlYWRNb2JpbGUgfSBmcm9tICcuL1NhbXBsaW5nUHJvcGVydGllc0hlYWRNb2JpbGUnO1xuaW1wb3J0IHtcbiAgRm9ybVR5cGUsXG4gIFRTYW1wbGluZ1Byb3BlcnRpZXMsXG4gIGNhbmNlbGxhdGlvblZhbGlkYXRpb25TY2hlbWEsXG4gIGlzQ29sbGVjdExheW91dCxcbiAgcHJvcGVydGllc1ZhbGlkYXRpb25TY2hlbWEsXG4gIHNhbXBsaW5nUHJvcGVydHksXG59IGZyb20gJy4vc2FtcGxpbmdQcm9wZXJ0aWVzVXRpbHMnO1xuaW1wb3J0IFNhbXBsZXJJblByb2Nlc3MgZnJvbSAnLi9TYW1wbGVySW5Qcm9jZXNzJztcblxuY29uc3QgaXNQcm9wZXJ0aWVzUGFnZSA9IChwYWdlVHlwZSkgPT4gcGFnZVR5cGUgPT09ICdlZGl0JztcblxuZXhwb3J0IGNvbnN0IFNhbXBsaW5nUHJvcGVydGllczogRkMgPSAoKSA9PiB7XG4gIGNvbnN0IFtjb2xsZWN0aW9uVGltZSwgc2V0Q29sbGVjdGlvblRpbWVdID0gdXNlU3RhdGU8c3RyaW5nIHwgRGF0ZSB8IG51bGw+KFxuICAgIG5ldyBEYXRlKCksXG4gICk7XG4gIGNvbnN0IFtwaG90b3MsIHNldFBob3Rvc10gPSB1c2VTdGF0ZTxzdHJpbmcgfCBCbG9iIHwgYW55PihbXSk7XG4gIGNvbnN0IFtwaG90b3NUb0RlbGV0ZSwgc2V0UGhvdG9zVG9EZWxldGVdID0gdXNlU3RhdGU8bnVtYmVyW10+KFtdKTtcbiAgY29uc3QgW3NhdmluZ01zZywgc2V0U2F2aW5nTXNnXSA9IHVzZVN0YXRlPHN0cmluZz4oaTE4bi50KCdidXR0b25zLnNhdmUnKSk7XG4gIGNvbnN0IFtzYW1wbGluZ1VwZGF0ZWQsIHNldFNhbXBsaW5nVXBkYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtzYW1wbGluZ1BsYW4sIHNldFNhbXBsaW5nUGxhbl0gPSB1c2VTdGF0ZTxcbiAgICBTYW1wbGluZ0ZldGNoRGF0YSB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIGNvbnN0IGhpc3RvcnkgPSB1c2VIaXN0b3J5KCk7XG4gIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcbiAgY29uc3QgcXVlcnkgPSB1c2VRdWVyeVVSTCgpO1xuICBjb25zdCB1c2VySW5mbyA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUucGVybWlzc2lvbnMudXNlcl9pbmZvKTtcbiAgY29uc3QgZGF0ZUZvcm1hdCA9XG4gICAgdXNlckluZm8uZGF0ZV90aW1lX2Zvcm1hdCA9PT0gJ3VzJ1xuICAgICAgPyAnTU1NIGQsIHl5eXkgaGg6bW0gYWEnXG4gICAgICA6ICdkL01NL3l5eXkgSEg6bW0nO1xuICBjb25zdCBwYWdlVHlwZSA9IHVzZVJlZjxzdHJpbmc+KCcnKTtcbiAgY29uc3QgW3NhbXBsaW5nUHJvcGVydGllcywgc2V0U2FtcGxpbmdQcm9wZXJ0aWVzXSA9XG4gICAgdXNlU3RhdGU8VFNhbXBsaW5nUHJvcGVydGllcz4oKTtcbiAgY29uc3QgeyBzYW1wbGVJZCB9ID0gdXNlUGFyYW1zKCk7XG4gIGNvbnN0IHdhdGVyQXV0aG9yaXR5SWQgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGUpID0+IHN0YXRlLmdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQsXG4gICk7XG4gIGNvbnN0IGxvY2FsZSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZSkgPT4gc3RhdGUubmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZSxcbiAgKTtcblxuICBjb25zdCBpbml0Rm9ybWlrVmFsdWVzID0gKHNhbXBsaW5nUHJvcGVydGllcywgaXNDYW5jZWxlZCkgPT4ge1xuICAgIGNvbnN0IHBhZ2VDb2xsZWN0aW9uVGltZSA9IGlzQ29sbGVjdExheW91dChwYWdlVHlwZS5jdXJyZW50KVxuICAgICAgPyBjb2xsZWN0aW9uVGltZVxuICAgICAgOiBzYW1wbGluZ1Byb3BlcnRpZXMuc2FtcGxpbmcuY29sbGVjdGlvbl90aW1lO1xuICAgIGNvbnN0IHNhbSA9IHNhbXBsaW5nUHJvcGVydGllcy5zYW1wbGluZztcbiAgICBmb3JtaWsuc2V0VmFsdWVzKHtcbiAgICAgIGxhYl9pZDogc2FtLmxhYl9pZCxcbiAgICAgIGNvbGxlY3Rpb25fdGltZTogcGFnZUNvbGxlY3Rpb25UaW1lLFxuICAgICAgcHVtcF9zYW1wbGluZ192b2x1bWU6IHNhbS5wdW1wX3NhbXBsaW5nX3ZvbHVtZSxcbiAgICAgIHB1bXBfYmF0dGVyeV9sZXZlbDogc2FtLnB1bXBfYmF0dGVyeV9sZXZlbCxcbiAgICAgIGRlc2NyaXB0aW9uOiBzYW0uZGVzY3JpcHRpb24sXG4gICAgICBrYW5kb19yZXA6IHNhbS5rYW5kb19yZXAsXG4gICAgICBzYW1wbGluZ19wbGFuX2lkOiBzYW0uc2FtcGxpbmdfcGxhbl9pZCxcbiAgICAgIGNhbmNlbGxhdGlvbl9yZWFzb246IHNhbS5jYW5jZWxsYXRpb25fcmVhc29uIHx8ICcnLFxuICAgICAgaXNfY2FuY2VsZWQ6IGlzQ2FuY2VsZWQsXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgaXNDYW5jZWxsZWRMYXlvdXQgPSAoc2FtcGxpbmdQcm9wZXJ0aWVzKSA9PiB7XG4gICAgY29uc3QgcGFnZVR5cGUyaXNDYW5jZWxsZWQgPSB7XG4gICAgICBjYW5jZWw6IHRydWUsXG4gICAgICBjb2xsZWN0OiBmYWxzZSxcbiAgICAgIHJldmVydF9jYW5jZWw6IGZhbHNlLFxuICAgIH07XG4gICAgbGV0IGlzQ2FuY2VsZWQgPSBwYWdlVHlwZTJpc0NhbmNlbGxlZFtwYWdlVHlwZS5jdXJyZW50XTtcbiAgICBpZiAoaXNDYW5jZWxlZCA9PT0gbnVsbCkge1xuICAgICAgaXNDYW5jZWxlZCA9IHNhbXBsaW5nUHJvcGVydGllcy5zYW1wbGluZy5pc19jYW5jZWxlZCB8fCBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzQ2FuY2VsZWQ7XG4gIH07XG5cbiAgY29uc3QgZmV0Y2hTYW1wbGluZ1Byb3BlcnRpZXMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoc2FtcGxpbmdJZCA9IHNhbXBsZUlkLCBvcCkgPT4ge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5nZXQoXG4gICAgICAgIHVybHMoeyBzYW1wbGluZ0lkOiBzYW1wbGluZ0lkIH0pLnNhbXBsaW5nUHJvcGVydGllcy5mZXRjaFNhbXBsaW5nLnVybCxcbiAgICAgICk7XG4gICAgICBjb25zdCBzYW1wbGluZyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICBjb25zdCBzYW1wbGluZ1Byb3BlcnRpZXMgPSBzYW1wbGluZy5zYW1wbGluZ19wcm9wZXJ0aWVzO1xuICAgICAgcGFnZVR5cGUuY3VycmVudCA9IGRldGVjdFBhZ2VUeXBlKFxuICAgICAgICBzYW1wbGluZ1Byb3BlcnRpZXMuc2FtcGxpbmcuaXNfY2FuY2VsZWQsXG4gICAgICAgIG9wLFxuICAgICAgKTtcbiAgICAgIHNldENvbGxlY3Rpb25UaW1lKFxuICAgICAgICBkZXRlcm1pbmVDb2xsZWN0aW9uVGltZShcbiAgICAgICAgICBzYW1wbGluZ1Byb3BlcnRpZXMuc2FtcGxpbmcuY29sbGVjdGlvbl90aW1lLFxuICAgICAgICAgIG9wLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIGxldCBpc0NhbmNlbGVkID0gaXNDYW5jZWxsZWRMYXlvdXQoXG4gICAgICAgIHNhbXBsaW5nUHJvcGVydGllcy5zYW1wbGluZy5pc19jYW5jZWxlZCxcbiAgICAgICk7XG4gICAgICBpbml0Rm9ybWlrVmFsdWVzKHNhbXBsaW5nUHJvcGVydGllcywgaXNDYW5jZWxlZCk7XG4gICAgICBzZXRTYW1wbGluZ1Byb3BlcnRpZXMoc2FtcGxpbmdQcm9wZXJ0aWVzKTtcbiAgICAgIHNldFNhbXBsaW5nUGxhbihzYW1wbGluZy5zYW1wbGluZ19wbGFuKTtcbiAgICB9LFxuICAgIFtdLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZmV0Y2hTYW1wbGluZ1Byb3BlcnRpZXMoc2FtcGxlSWQsIGdldFVybFF1ZXJ5T3AoKSk7XG4gIH0sIFtzYW1wbGluZ1VwZGF0ZWRdKTtcblxuICBjb25zdCB2YWxpZGF0aW9uU2NoZW1hID0gaXNDb2xsZWN0TGF5b3V0KHBhZ2VUeXBlLmN1cnJlbnQpXG4gICAgPyBwcm9wZXJ0aWVzVmFsaWRhdGlvblNjaGVtYVxuICAgIDogY2FuY2VsbGF0aW9uVmFsaWRhdGlvblNjaGVtYTtcbiAgY29uc3QgZm9ybWlrID0gdXNlRm9ybWlrPEZvcm1pa0NvbmZpZzxGb3JtVHlwZT4+KHtcbiAgICBlbmFibGVSZWluaXRpYWxpemU6IHRydWUsXG4gICAgaW5pdGlhbFZhbHVlczogc2FtcGxpbmdQcm9wZXJ0eSxcbiAgICB2YWxpZGF0aW9uU2NoZW1hOiB2YWxpZGF0aW9uU2NoZW1hLFxuICAgIHZhbGlkYXRlT25DaGFuZ2U6IGZhbHNlLFxuICAgIHZhbGlkYXRlT25CbHVyOiB0cnVlLFxuICAgIG9uU3VibWl0OiAodmFsdWVzKSA9PiB7XG4gICAgICBoYW5kbGVTdWJtaXQodmFsdWVzKTtcbiAgICB9LFxuICB9KTtcblxuICBjb25zdCBoYW5kbGVDbG9zZSA9ICgpID0+IHtcbiAgICBpZiAobG9jYXRpb24ua2V5KSB7XG4gICAgICBoaXN0b3J5LmdvQmFjaygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBoaXN0b3J5LnB1c2goXG4gICAgICAgIHVybHMoeyBsb2NhbGUsIHdhdGVyQXV0aG9yaXR5SWQgfSkuc2FtcGxpbmdzUGFnZS5zYW1wbGluZ3NMaXN0Um91dGUudXJsLFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0ID0gKHZhbHVlcykgPT4ge1xuICAgIHNldFNhdmluZ01zZyhpMThuLnQoJ2J1dHRvbnMuc2F2aW5nJykpO1xuICAgIHZhbHVlcy5waWN0dXJlc19hdHRyaWJ1dGVzID0gcGhvdG9zO1xuICAgIGNvbnN0IHNhdmVGb3JtRGF0YSA9IGZvcm1EYXRhQnVpbGRlcih2YWx1ZXMpO1xuICAgIHVwZGF0ZU9yQ3JlYXRlKHNhdmVGb3JtRGF0YSk7XG4gIH07XG5cbiAgY29uc3Qgc2V0T3JpZ2luYWxTYXZlTWVzc2FnZVdpdGhUaW1lb3V0ID0gKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2V0U2F2aW5nTXNnKGkxOG4udCgnYnV0dG9ucy5zYXZlJykpO1xuICAgIH0sIDMwMDApO1xuICB9O1xuXG4gIGNvbnN0IGZvcm1EYXRhQnVpbGRlciA9ICh2YWx1ZXMpID0+IHtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvciAoY29uc3Qga2V5IGluIHZhbHVlcykge1xuICAgICAgaWYgKGtleSAhPT0gJ3BpY3R1cmVzX2F0dHJpYnV0ZXMnKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzW2tleV0gPT09IG51bGwgPyAnJyA6IHZhbHVlc1trZXldO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoYHNhbXBsaW5nWyR7a2V5fV1gLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGxldCB1bmlxdWVQaG90b3NUb0RlbGV0ZSA9IFsuLi5uZXcgU2V0KHBob3Rvc1RvRGVsZXRlKV07XG4gICAgdW5pcXVlUGhvdG9zVG9EZWxldGUubGVuZ3RoICE9PSAwICYmXG4gICAgICB1bmlxdWVQaG90b3NUb0RlbGV0ZS5mb3JFYWNoKChpZCwgaW5kZXgpID0+IHtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKFxuICAgICAgICAgIGBzYW1wbGluZ1twaWN0dXJlc19hdHRyaWJ1dGVzXVske2luZGV4fV1baWRdYCxcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShpZCksXG4gICAgICAgICk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgICAgICBgc2FtcGxpbmdbcGljdHVyZXNfYXR0cmlidXRlc11bJHtpbmRleH1dW19kZXN0cm95XWAsXG4gICAgICAgICAgJ3RydWUnLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgcmV0dXJuIGZvcm1EYXRhO1xuICB9O1xuXG4gIGNvbnN0IHVwZGF0ZU9yQ3JlYXRlID0gYXN5bmMgKGZvcm1EYXRhKSA9PiB7XG4gICAgY29uc3QgdXBkYXRlT3JDcmVhdGVTdWNjZXNzID0gKG1zZykgPT4ge1xuICAgICAgc2V0U2F2aW5nTXNnKGkxOG4udChtc2cpKTtcbiAgICAgIHNldFNhbXBsaW5nVXBkYXRlZCh0cnVlKTtcbiAgICAgIHNldE9yaWdpbmFsU2F2ZU1lc3NhZ2VXaXRoVGltZW91dCgpO1xuICAgICAgaGFuZGxlQ2xvc2UoKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2FtcGxpbmdJRCA9IHNhbXBsaW5nUHJvcGVydGllcz8uc2FtcGxpbmc/LmlkO1xuICAgIGlmIChzYW1wbGluZ0lEID09PSBudWxsKSB7XG4gICAgICAvLyBjcmVhdGVcbiAgICAgIGZvcm1EYXRhLmFwcGVuZChgc2FtcGxpbmdbZGF0ZV1gLCBjb2xsZWN0aW9uVGltZSk7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBheGlvcy5wb3N0KFxuICAgICAgICAgIHVybHMoe1xuICAgICAgICAgICAgd2F0ZXJBdXRob3JpdHlJZDogd2F0ZXJBdXRob3JpdHlJZCxcbiAgICAgICAgICB9KS5zYW1wbGluZ1Byb3BlcnRpZXMuY3JlYXRlU2FtcGxpbmcudXJsLFxuICAgICAgICAgIGZvcm1EYXRhLFxuICAgICAgICApO1xuICAgICAgICB1cGRhdGVPckNyZWF0ZVN1Y2Nlc3MoJ2J1dHRvbnMuY3JlYXRlZCcpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBzZXRTYXZpbmdNc2coaTE4bi50KCdidXR0b25zLmVycm9yJykpO1xuICAgICAgICBzZXRPcmlnaW5hbFNhdmVNZXNzYWdlV2l0aFRpbWVvdXQoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKFxuICAgICAgICBnZXRVcmxRdWVyeU9wKCkgPT09ICdlZGl0JyB8fFxuICAgICAgICBbJ3JldmVydF9jYW5jZWwnXS5pbmNsdWRlcyhwYWdlVHlwZS5jdXJyZW50KVxuICAgICAgKSB7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChgc2FtcGxpbmdbY29sbGVjdGlvbl90aW1lXWAsIGNvbGxlY3Rpb25UaW1lKTtcbiAgICAgIH1cbiAgICAgIC8vIHVwZGF0ZVxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgYXhpb3MucHV0KFxuICAgICAgICAgIHVybHMoeyBzYW1wbGluZ0lkOiBzYW1wbGluZ0lELCB3YXRlckF1dGhvcml0eUlkOiB3YXRlckF1dGhvcml0eUlkIH0pXG4gICAgICAgICAgICAuc2FtcGxpbmdQcm9wZXJ0aWVzLnVwZGF0ZVNhbXBsaW5nLnVybCxcbiAgICAgICAgICBmb3JtRGF0YSxcbiAgICAgICAgKTtcbiAgICAgICAgdXBkYXRlT3JDcmVhdGVTdWNjZXNzKCdidXR0b25zLnVwZGF0ZWQnKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgc2V0U2F2aW5nTXNnKGkxOG4udCgnYnV0dG9ucy5lcnJvcicpKTtcbiAgICAgICAgc2V0T3JpZ2luYWxTYXZlTWVzc2FnZVdpdGhUaW1lb3V0KCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGRldGVjdFBhZ2VUeXBlID0gKGlzU2FtcGxpbmdDYW5jZWxsZWQsIG9wKSA9PiB7XG4gICAgY29uc3QgZWRpdFBhZ2VWYWx1ZSA9IGlzU2FtcGxpbmdDYW5jZWxsZWQgPyAnY2FuY2VsJyA6ICdjb2xsZWN0JztcbiAgICBpZiAob3AgPT09IEVESVRfUFJPUEVSVElFU19PUCkge1xuICAgICAgcmV0dXJuIGVkaXRQYWdlVmFsdWU7XG4gICAgfSBlbHNlIGlmIChvcCA9PT0gQ09MTEVDVF9TQU1QTElOR19PUCkge1xuICAgICAgcmV0dXJuICdjb2xsZWN0JztcbiAgICB9IGVsc2UgaWYgKG9wID09PSBDQU5DRUxfU0FNUExJTkdfT1ApIHtcbiAgICAgIHJldHVybiAnY2FuY2VsJztcbiAgICB9IGVsc2UgaWYgKG9wID09PSBSRVZFUlRfQ0FOQ0VMTEFUSU9OKSB7XG4gICAgICByZXR1cm4gJ3JldmVydF9jYW5jZWwnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZWRpdFBhZ2VWYWx1ZTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZGV0ZXJtaW5lQ29sbGVjdGlvblRpbWUgPSAoc2VydmVyQ29sbGVjdGlvblRpbWUsIG9wKSA9PiB7XG4gICAgY29uc3QgY3VycmVudFRpbWUgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IHNlcnZlclRpbWUgPSBzZXJ2ZXJDb2xsZWN0aW9uVGltZVxuICAgICAgPyBuZXcgRGF0ZShzZXJ2ZXJDb2xsZWN0aW9uVGltZSlcbiAgICAgIDogY3VycmVudFRpbWU7XG4gICAgY29uc3QgZWRpdFBhZ2VWYWx1ZSA9IHNlcnZlckNvbGxlY3Rpb25UaW1lID8gc2VydmVyVGltZSA6IGN1cnJlbnRUaW1lO1xuICAgIGlmIChvcCA9PT0gRURJVF9QUk9QRVJUSUVTX09QKSB7XG4gICAgICByZXR1cm4gZWRpdFBhZ2VWYWx1ZTtcbiAgICB9IGVsc2UgaWYgKG9wID09PSBDT0xMRUNUX1NBTVBMSU5HX09QKSB7XG4gICAgICByZXR1cm4gY3VycmVudFRpbWU7XG4gICAgfSBlbHNlIGlmIChbQ0FOQ0VMX1NBTVBMSU5HX09QLCBSRVZFUlRfQ0FOQ0VMTEFUSU9OXS5pbmNsdWRlcyhvcCkpIHtcbiAgICAgIHJldHVybiBzZXJ2ZXJUaW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZWRpdFBhZ2VWYWx1ZTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZ2V0VXJsUXVlcnlPcCA9ICgpID0+IHtcbiAgICBsZXQgb3AgPSBxdWVyeS5nZXQoJ29wJyk7XG4gICAgLy8gaWYgbm90IHByZXNlbnQgdGhlbiBkZWZhdWx0IG9wIGlzICdjb2xsZWN0aW5nJ1xuICAgIGlmIChbdW5kZWZpbmVkLCBudWxsLCAnJ10uaW5jbHVkZXMob3ApKSB7XG4gICAgICByZXR1cm4gQ09MTEVDVF9TQU1QTElOR19PUDtcbiAgICB9XG4gICAgcmV0dXJuIG9wO1xuICB9O1xuXG4gIGlmICghc2FtcGxpbmdQbGFuIHx8ICFzYW1wbGluZ1Byb3BlcnRpZXMpIHtcbiAgICByZXR1cm4gPFNwaW5uZXIgLz47XG4gIH1cblxuICBpZiAoc2FtcGxpbmdQcm9wZXJ0aWVzLmlzX3B1bXBfaW5fcHJvZ3Jlc3MpIHtcbiAgICByZXR1cm4gPFNhbXBsZXJJblByb2Nlc3MgaGFuZGxlQ2xvc2U9e2hhbmRsZUNsb3NlfSAvPjtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGZvcm0gb25TdWJtaXQ9e2Zvcm1pay5oYW5kbGVTdWJtaXR9PlxuICAgICAgPExheW91dD5cbiAgICAgICAgPFNhbXBsaW5nUHJvcGVydGllc1N0eWxlPlxuICAgICAgICAgIHshaXNNb2JpbGUgJiYgKFxuICAgICAgICAgICAgPFNhbXBsaW5nUHJvcGVydGllc0hlYWRcbiAgICAgICAgICAgICAgc2FtcGxpbmdQcm9wZXJ0aWVzPXtzYW1wbGluZ1Byb3BlcnRpZXN9XG4gICAgICAgICAgICAgIHNhbXBsaW5nPXtzYW1wbGluZ1BsYW59XG4gICAgICAgICAgICAgIGZvcm1paz17Zm9ybWlrfVxuICAgICAgICAgICAgICBwYWdlVHlwZT17cGFnZVR5cGUuY3VycmVudH1cbiAgICAgICAgICAgICAgY29sbGVjdGlvblRpbWU9e2NvbGxlY3Rpb25UaW1lfVxuICAgICAgICAgICAgICBzZXRDb2xsZWN0aW9uVGltZT17c2V0Q29sbGVjdGlvblRpbWV9XG4gICAgICAgICAgICAgIHNldFNhbXBsaW5nVXBkYXRlZD17c2V0U2FtcGxpbmdVcGRhdGVkfVxuICAgICAgICAgICAgICBpc0RhdGVQaWNrZXJEaXNhYmxlZD17aXNQcm9wZXJ0aWVzUGFnZShwYWdlVHlwZSl9XG4gICAgICAgICAgICAgIGRhdGVGb3JtYXQ9e2RhdGVGb3JtYXR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7aXNNb2JpbGUgJiYgKFxuICAgICAgICAgICAgPFNhbXBsaW5nUHJvcGVydGllc0hlYWRNb2JpbGVcbiAgICAgICAgICAgICAgc2FtcGxpbmdQcm9wZXJ0aWVzPXtzYW1wbGluZ1Byb3BlcnRpZXN9XG4gICAgICAgICAgICAgIHNhbXBsaW5nPXtzYW1wbGluZ1BsYW59XG4gICAgICAgICAgICAgIGZvcm1paz17Zm9ybWlrfVxuICAgICAgICAgICAgICBwYWdlVHlwZT17cGFnZVR5cGUuY3VycmVudH1cbiAgICAgICAgICAgICAgY29sbGVjdGlvblRpbWU9e2NvbGxlY3Rpb25UaW1lfVxuICAgICAgICAgICAgICBzZXRDb2xsZWN0aW9uVGltZT17c2V0Q29sbGVjdGlvblRpbWV9XG4gICAgICAgICAgICAgIHNldFNhbXBsaW5nVXBkYXRlZD17c2V0U2FtcGxpbmdVcGRhdGVkfVxuICAgICAgICAgICAgICBpc0RhdGVQaWNrZXJEaXNhYmxlZD17aXNQcm9wZXJ0aWVzUGFnZShwYWdlVHlwZSl9XG4gICAgICAgICAgICAgIGRhdGVGb3JtYXQ9e2RhdGVGb3JtYXR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7c2FtcGxpbmdQcm9wZXJ0aWVzICYmIHBhZ2VUeXBlICYmIChcbiAgICAgICAgICAgIDxTYW1wbGluZ1Byb3BlcnRpZXNGb3JtXG4gICAgICAgICAgICAgIHNhbXBsaW5nUHJvcGVydGllcz17c2FtcGxpbmdQcm9wZXJ0aWVzfVxuICAgICAgICAgICAgICBzYW1wbGluZz17c2FtcGxpbmdQbGFufVxuICAgICAgICAgICAgICBwYWdlVHlwZT17cGFnZVR5cGUuY3VycmVudH1cbiAgICAgICAgICAgICAgc2V0U2FtcGxpbmdVcGRhdGVkPXtzZXRTYW1wbGluZ1VwZGF0ZWR9XG4gICAgICAgICAgICAgIHNhdmluZ01zZz17c2F2aW5nTXNnfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZT17aGFuZGxlQ2xvc2V9XG4gICAgICAgICAgICAgIHNldFBob3Rvc1RvRGVsZXRlPXtzZXRQaG90b3NUb0RlbGV0ZX1cbiAgICAgICAgICAgICAgc2V0UGhvdG9zPXtzZXRQaG90b3N9XG4gICAgICAgICAgICAgIHBob3Rvcz17cGhvdG9zfVxuICAgICAgICAgICAgICBmb3JtaWs9e2Zvcm1pa31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TYW1wbGluZ1Byb3BlcnRpZXNTdHlsZT5cbiAgICAgIDwvTGF5b3V0PlxuICAgIDwvZm9ybT5cbiAgKTtcbn07XG4iXX0=
@@ -11,10 +11,10 @@ exports.KandoTable = void 0;
11
11
 
12
12
  var _styledComponents = _interopRequireDefault(require("styled-components"));
13
13
 
14
- var _reactDataTableComponent = _interopRequireWildcard(require("react-data-table-component"));
15
-
16
14
  var _react = _interopRequireDefault(require("react"));
17
15
 
16
+ var _reactDataTableComponent = _interopRequireWildcard(require("react-data-table-component"));
17
+
18
18
  var _Spinner = require("components/Spinner/Spinner");
19
19
 
20
20
  var _useNavContext2 = require("hooks/useNavContext");
@@ -60,8 +60,8 @@ var KandoTable = function KandoTable(_ref5) {
60
60
  rowComponent = _ref5.rowComponent,
61
61
  defaultSortFieldId = _ref5.defaultSortFieldId,
62
62
  paginationRowsPerPageOptions = _ref5.paginationRowsPerPageOptions,
63
- customStyles = _ref5.customStyles,
64
- direction = _ref5.direction;
63
+ direction = _ref5.direction,
64
+ customStyles = _ref5.customStyles;
65
65
 
66
66
  var _useNavContext = (0, _useNavContext2.useNavContext)(),
67
67
  dir = _useNavContext.dir,
@@ -101,4 +101,4 @@ var KandoTable = function KandoTable(_ref5) {
101
101
  };
102
102
 
103
103
  exports.KandoTable = KandoTable;
104
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91aS1raXQvS2FuZG9UYWJsZS9LYW5kb1RhYmxlLnRzeCJdLCJuYW1lcyI6WyJEYXRhVGFibGVTdHlsZSIsInN0eWxlZCIsImRpdiIsInRoZW1lIiwiY29sb3JTY2hlbWUiLCJuYXR1cmFsIiwibjEiLCJuNTAiLCJwIiwiaXNSdGwiLCJLYW5kb1RhYmxlIiwiZXhwYW5kYWJsZVJvd3MiLCJvblJvd0V4cGFuZFRvZ2dsZWQiLCJwYWdpbmF0aW9uUGVyUGFnZSIsImNvbHVtbnMiLCJkYXRhIiwidG90YWxSb3dzIiwicHJvZ3Jlc3NQZW5kaW5nIiwib25TZXRQZXJQYWdlIiwib25DaGFuZ2VQYWdlIiwiaGFuZGxlU29ydCIsInBhZ2luYXRpb24iLCJwYWdpbmF0aW9uQ29tcG9uZW50T3B0aW9ucyIsImlzUGFnaW5hdGlvblNlcnZlciIsImlzU29ydFNlcnZlciIsInJvd0NvbXBvbmVudCIsImRlZmF1bHRTb3J0RmllbGRJZCIsInBhZ2luYXRpb25Sb3dzUGVyUGFnZU9wdGlvbnMiLCJjdXN0b21TdHlsZXMiLCJkaXJlY3Rpb24iLCJkaXIiLCJEaXJlY3Rpb24iLCJSVEwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFLQTs7QUFRQTs7QUFDQTs7Ozs7O0FBd0JBLElBQU1BLGNBQWMsR0FBR0MsMEJBQU9DLEdBQVY7QUFBQTtBQUFBO0FBQUEseWVBRUY7QUFBQSxNQUFHQyxLQUFILFFBQUdBLEtBQUg7QUFBQSxTQUFlQSxLQUFLLENBQUNDLFdBQU4sQ0FBa0JDLE9BQWxCLENBQTBCQyxFQUF6QztBQUFBLENBRkUsRUFHQTtBQUFBLE1BQUdILEtBQUgsU0FBR0EsS0FBSDtBQUFBLFNBQWVBLEtBQUssQ0FBQ0MsV0FBTixDQUFrQkMsT0FBbEIsQ0FBMEJFLEdBQXpDO0FBQUEsQ0FIQSxFQVlQO0FBQUEsTUFBR0osS0FBSCxTQUFHQSxLQUFIO0FBQUEsU0FBZUEsS0FBSyxDQUFDQyxXQUFOLENBQWtCQyxPQUFsQixDQUEwQkMs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QUFlLEVBQUUsbUJBeEJuQjtBQXlCRSxJQUFBLFlBQVksRUFBRVc7QUF6QmhCLElBTEYsQ0FERjtBQW1DRCxDQTFETSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEYXRhVGFibGUsIHtcbiAgVGFibGVDb2x1bW4sXG4gIFBhZ2luYXRpb25PcHRpb25zLFxuICBEaXJlY3Rpb24sXG59IGZyb20gJ3JlYWN0LWRhdGEtdGFibGUtY29tcG9uZW50JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCB7IFRhYmxlRGF0YVR5cGUgfSBmcm9tICcuL2thbmRvVGFibGVVdGlscyc7XG5pbXBvcnQge1xuICBFeHBhbmRhYmxlUm93c0NvbXBvbmVudCxcbiAgRXhwYW5kUm93VG9nZ2xlZCxcbiAgVGFibGVTdHlsZXMsXG59IGZyb20gJ3JlYWN0LWRhdGEtdGFibGUtY29tcG9uZW50L2Rpc3Qvc3JjL0RhdGFUYWJsZS90eXBlcyc7XG5pbXBvcnQgeyBTcGlubmVyIH0gZnJvbSAnc3JjL2NvbXBvbmVudHMvU3Bpbm5lci9TcGlubmVyJztcbmltcG9ydCB7IHVzZU5hdkNvbnRleHQgfSBmcm9tICdzcmMvaG9va3MvdXNlTmF2Q29udGV4dCc7XG5cbmludGVyZmFjZSBLYW5kb1RhYmxlUHJvcHM8VD4ge1xuICBleHBhbmRhYmxlUm93czogYm9vbGVhbjtcbiAgcGFnaW5hdGlvbjogYm9vbGVhbjtcbiAgb25Sb3dFeHBhbmRUb2dnbGVkPzogRXhwYW5kUm93VG9nZ2xlZDxUPjtcbiAgcGFnaW5hdGlvblBlclBhZ2U/OiBudW1iZXI7XG4gIGNvbHVtbnM6IFRhYmxlQ29sdW1uPFQ+W107XG4gIGRhdGE6IFRbXTtcbiAgdG90YWxSb3dzPzogbnVtYmVyO1xuICBoYW5kbGVTb3J0PzogKGNvbHVtbjogVGFibGVDb2x1bW48VD4sIHNvcnREaXJlY3Rpb246IHN0cmluZykgPT4gdm9pZDtcbiAgb25TZXRQZXJQYWdlPzogKGN1cnJlbnRSb3dzUGVyUGFnZTogbnVtYmVyLCBjdXJyZW50UGFnZTogbnVtYmVyKSA9PiB2b2lkO1xuICBvbkNoYW5nZVBhZ2U/OiAocGFnZTogbnVtYmVyKSA9PiB2b2lkO1xuICBpc1BhZ2luYXRpb25TZXJ2ZXI/OiBib29sZWFuO1xuICBpc1NvcnRTZXJ2ZXI/OiBib29sZWFuO1xuICBwYWdpbmF0aW9uQ29tcG9uZW50T3B0aW9ucz86IFBhZ2luYXRpb25PcHRpb25zO1xuICByb3dDb21wb25lbnQ/OiBFeHBhbmRhYmxlUm93c0NvbXBvbmVudDtcbiAgcHJvZ3Jlc3NQZW5kaW5nPzogYm9vbGVhbjtcbiAgZGVmYXVsdFNvcnRGaWVsZElkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcGFnaW5hdGlvblJvd3NQZXJQYWdlT3B0aW9ucz86IG51bWJlcltdO1xuICBjdXN0b21TdHlsZXM/OiBUYWJsZVN0eWxlcztcbiAgZGlyZWN0aW9uPzogRGlyZWN0aW9uO1xufVxuXG5jb25zdCBEYXRhVGFibGVTdHlsZSA9IHN0eWxlZC5kaXY8eyBpc1J0bDogYm9vbGVhbiB9PmBcbiAgLmJ0bi1zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uMX07XG4gICAgYm9yZGVyLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjUwfTtcbiAgICBjb2xvcjogZ3JleTtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIHBhZGRpbmc6IDVweCAyMHB4O1xuICB9XG4gIGgxIHtcbiAgICBmb250LXdlaWdodDogODAwO1xuICB9XG4gIC5yZHRfVGFibGVDb2wge1xuICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjF9O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG4gIFthcmlhLWxhYmVsPSdFeHBhbmQgUm93J10ge1xuICAgIG1hcmdpbjogMTBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIHN2ZyB7XG4gICAgICAkeyhwKSA9PiAocC5pc1J0bCA/ICd0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOycgOiAnJyl9XG4gICAgfVxuICB9XG5cbiAgW2FyaWEtbGFiZWw9J0NvbGxhcHNlIFJvdyddIHtcbiAgICBtYXJnaW46IDEwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgfVxuICAucmR0X1RhYmxlQ2VsbCB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbiAgLnJkdF9UYWJsZSB7XG4gICAgKiB7XG4gICAgICBmb250LWZhbWlseTogTnVuaXRvLCBHaWxyb3ksIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gICAgfVxuICAgIC5yZHRfVGFibGVIZWFkIHtcbiAgICAgIHRvcDogLTI7XG4gICAgICAucmR0X1RhYmxlSGVhZFJvdyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uNTB9O1xuICAgICAgfVxuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IEthbmRvVGFibGUgPSA8VCBleHRlbmRzIFRhYmxlRGF0YVR5cGU+KHtcbiAgZXhwYW5kYWJsZVJvd3MsXG4gIG9uUm93RXhwYW5kVG9nZ2xlZCxcbiAgcGFnaW5hdGlvblBlclBhZ2UsXG4gIGNvbHVtbnMsXG4gIGRhdGEsXG4gIHRvdGFsUm93cyxcbiAgcHJvZ3Jlc3NQZW5kaW5nLFxuICBvblNldFBlclBhZ2UsXG4gIG9uQ2hhbmdlUGFnZSxcbiAgaGFuZGxlU29ydCxcbiAgcGFnaW5hdGlvbixcbiAgcGFnaW5hdGlvbkNvbXBvbmVudE9wdGlvbnMsXG4gIGlzUGFnaW5hdGlvblNlcnZlcixcbiAgaXNTb3J0U2VydmVyLFxuICByb3dDb21wb25lbnQsXG4gIGRlZmF1bHRTb3J0RmllbGRJZCxcbiAgcGFnaW5hdGlvblJvd3NQZXJQYWdlT3B0aW9ucyxcbiAgY3VzdG9tU3R5bGVzLFxuICBkaXJlY3Rpb24sXG59OiBLYW5kb1RhYmxlUHJvcHM8VD4pID0+IHtcbiAgY29uc3QgeyBkaXIsIGlzUnRsIH0gPSB1c2VOYXZDb250ZXh0KCk7XG5cbiAgcmV0dXJuIChcbiAgICA8RGF0YVRhYmxlU3R5bGVcbiAgICAgIGNsYXNzTmFtZT1cImRhdGF0YWJsZS1zdHlsZVwiXG4gICAgICBpc1J0bD17ZGlyZWN0aW9uID8gKERpcmVjdGlvbi5SVEwgPyB0cnVlIDogZmFsc2UpIDogaXNSdGx9XG4gICAgICBkYXRhLXRlc3RpZD1cImthbmRvLXRhYmxlXCJcbiAgICA+XG4gICAgICA8RGF0YVRhYmxlXG4gICAgICAgIG9uQ2hhbmdlUm93c1BlclBhZ2U9e29uU2V0UGVyUGFnZX1cbiAgICAgICAgb25DaGFuZ2VQYWdlPXtvbkNoYW5nZVBhZ2V9XG4gICAgICAgIGV4cGFuZGFibGVSb3dzPXtleHBhbmRhYmxlUm93c31cbiAgICAgICAgb25Sb3dFeHBhbmRUb2dnbGVkPXtvblJvd0V4cGFuZFRvZ2dsZWR9XG4gICAgICAgIGV4cGFuZGFibGVSb3dzQ29tcG9uZW50PXtyb3dDb21wb25lbnR9XG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgIGZpeGVkSGVhZGVyXG4gICAgICAgIHNvcnRTZXJ2ZXI9e2lzU29ydFNlcnZlcn1cbiAgICAgICAgY2xhc3NOYW1lPVwiZGF0YXRhYmxlIGNvbXBhY3RcIlxuICAgICAgICBvblNvcnQ9e2hhbmRsZVNvcnR9XG4gICAgICAgIGRlZmF1bHRTb3J0QXNjPXtmYWxzZX1cbiAgICAgICAgZGVmYXVsdFNvcnRGaWVsZElkPXtkZWZhdWx0U29ydEZpZWxkSWR9XG4gICAgICAgIHBhZ2luYXRpb249e3BhZ2luYXRpb259XG4gICAgICAgIHBhZ2luYXRpb25QZXJQYWdlPXtwYWdpbmF0aW9uUGVyUGFnZX1cbiAgICAgICAgcGFnaW5hdGlvblRvdGFsUm93cz17dG90YWxSb3dzfVxuICAgICAgICBkaXJlY3Rpb249e2RpcmVjdGlvbiA/IGRpcmVjdGlvbiA6IGRpcn1cbiAgICAgICAgc3RyaXBlZD17dHJ1ZX1cbiAgICAgICAgcGFnaW5hdGlvblJvd3NQZXJQYWdlT3B0aW9ucz17cGFnaW5hdGlvblJvd3NQZXJQYWdlT3B0aW9uc31cbiAgICAgICAgcGFnaW5hdGlvbkNvbXBvbmVudE9wdGlvbnM9e3BhZ2luYXRpb25Db21wb25lbnRPcHRpb25zfVxuICAgICAgICBwYWdpbmF0aW9uU2VydmVyPXtpc1BhZ2luYXRpb25TZXJ2ZXJ9XG4gICAgICAgIHByb2dyZXNzUGVuZGluZz17cHJvZ3Jlc3NQZW5kaW5nIHx8IGZhbHNlfVxuICAgICAgICBwcm9ncmVzc0NvbXBvbmVudD17PFNwaW5uZXIgLz59XG4gICAgICAgIG5vRGF0YUNvbXBvbmVudD17J05vIGRhdGEgd2FzIGZvdW5kJ31cbiAgICAgICAgY3VzdG9tU3R5bGVzPXtjdXN0b21TdHlsZXN9XG4gICAgICAvPlxuICAgIDwvRGF0YVRhYmxlU3R5bGU+XG4gICk7XG59O1xuIl19
104
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91aS1raXQvS2FuZG9UYWJsZS9LYW5kb1RhYmxlLnRzeCJdLCJuYW1lcyI6WyJEYXRhVGFibGVTdHlsZSIsInN0eWxlZCIsImRpdiIsInRoZW1lIiwiY29sb3JTY2hlbWUiLCJuYXR1cmFsIiwibjEiLCJuNTAiLCJwIiwiaXNSdGwiLCJLYW5kb1RhYmxlIiwiZXhwYW5kYWJsZVJvd3MiLCJvblJvd0V4cGFuZFRvZ2dsZWQiLCJwYWdpbmF0aW9uUGVyUGFnZSIsImNvbHVtbnMiLCJkYXRhIiwidG90YWxSb3dzIiwicHJvZ3Jlc3NQZW5kaW5nIiwib25TZXRQZXJQYWdlIiwib25DaGFuZ2VQYWdlIiwiaGFuZGxlU29ydCIsInBhZ2luYXRpb24iLCJwYWdpbmF0aW9uQ29tcG9uZW50T3B0aW9ucyIsImlzUGFnaW5hdGlvblNlcnZlciIsImlzU29ydFNlcnZlciIsInJvd0NvbXBvbmVudCIsImRlZmF1bHRTb3J0RmllbGRJZCIsInBhZ2luYXRpb25Sb3dzUGVyUGFnZU9wdGlvbnMiLCJkaXJlY3Rpb24iLCJjdXN0b21TdHlsZXMiLCJkaXIiLCJEaXJlY3Rpb24iLCJSVEwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFXQTs7QUFDQTs7Ozs7O0FBMEJBLElBQU1BLGNBQWMsR0FBR0MsMEJBQU9DLEdBQVY7QUFBQTtBQUFBO0FBQUEseWVBRUY7QUFBQSxNQUFHQyxLQUFILFFBQUdBLEtBQUg7QUFBQSxTQUFlQSxLQUFLLENBQUNDLFdBQU4sQ0FBa0JDLE9BQWxCLENBQTBCQyxFQUF6QztBQUFBLENBRkUsRUFHQTtBQUFBLE1BQUdILEtBQUgsU0FBR0EsS0FBSDtBQUFBLFNBQWVBLEtBQUssQ0FBQ0MsV0FBTixDQUFrQkMsT0FBbEIsQ0FBMEJFLEdBQXpDO0FBQUEsQ0FIQSxFQVlQO0FBQUEsTUFBR0osS0FBSCxTQUFHQSxLQUFIO0FBQUEsU0FBZUEsS0FBSyxDQUFDQyxXQUFOLENBQWtCQyxPQUFsQixDQUEwQkMs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QUFlLEVBQUUsbUJBeEJuQjtBQXlCRSxJQUFBLFlBQVksRUFBRVk7QUF6QmhCLElBTEYsQ0FERjtBQW1DRCxDQTFETSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgRGF0YVRhYmxlLCB7XG4gIFRhYmxlQ29sdW1uLFxuICBQYWdpbmF0aW9uT3B0aW9ucyxcbiAgRGlyZWN0aW9uLFxufSBmcm9tICdyZWFjdC1kYXRhLXRhYmxlLWNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBFeHBhbmRhYmxlUm93c0NvbXBvbmVudCxcbiAgRXhwYW5kUm93VG9nZ2xlZCxcbiAgVGFibGVTdHlsZXMsXG59IGZyb20gJ3JlYWN0LWRhdGEtdGFibGUtY29tcG9uZW50L2Rpc3Qvc3JjL0RhdGFUYWJsZS90eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICdzcmMvY29tcG9uZW50cy9TcGlubmVyL1NwaW5uZXInO1xuaW1wb3J0IHsgdXNlTmF2Q29udGV4dCB9IGZyb20gJ3NyYy9ob29rcy91c2VOYXZDb250ZXh0JztcblxuaW1wb3J0IHsgVGFibGVEYXRhVHlwZSB9IGZyb20gJy4va2FuZG9UYWJsZVV0aWxzJztcblxuaW50ZXJmYWNlIEthbmRvVGFibGVQcm9wczxUPiB7XG4gIGV4cGFuZGFibGVSb3dzOiBib29sZWFuO1xuICBwYWdpbmF0aW9uOiBib29sZWFuO1xuICBvblJvd0V4cGFuZFRvZ2dsZWQ/OiBFeHBhbmRSb3dUb2dnbGVkPFQ+O1xuICBwYWdpbmF0aW9uUGVyUGFnZT86IG51bWJlcjtcbiAgY29sdW1uczogVGFibGVDb2x1bW48VD5bXTtcbiAgZGF0YTogVFtdO1xuICB0b3RhbFJvd3M/OiBudW1iZXI7XG4gIGhhbmRsZVNvcnQ/OiAoY29sdW1uOiBUYWJsZUNvbHVtbjxUPiwgc29ydERpcmVjdGlvbjogc3RyaW5nKSA9PiB2b2lkO1xuICBvblNldFBlclBhZ2U/OiAoY3VycmVudFJvd3NQZXJQYWdlOiBudW1iZXIsIGN1cnJlbnRQYWdlOiBudW1iZXIpID0+IHZvaWQ7XG4gIG9uQ2hhbmdlUGFnZT86IChwYWdlOiBudW1iZXIpID0+IHZvaWQ7XG4gIGlzUGFnaW5hdGlvblNlcnZlcj86IGJvb2xlYW47XG4gIGlzU29ydFNlcnZlcj86IGJvb2xlYW47XG4gIHBhZ2luYXRpb25Db21wb25lbnRPcHRpb25zPzogUGFnaW5hdGlvbk9wdGlvbnM7XG4gIHJvd0NvbXBvbmVudD86IEV4cGFuZGFibGVSb3dzQ29tcG9uZW50O1xuICBwcm9ncmVzc1BlbmRpbmc/OiBib29sZWFuO1xuICBkZWZhdWx0U29ydEZpZWxkSWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBwYWdpbmF0aW9uUm93c1BlclBhZ2VPcHRpb25zPzogbnVtYmVyW107XG4gIGRpcmVjdGlvbj86IERpcmVjdGlvbjtcbiAgY3VzdG9tU3R5bGVzPzogVGFibGVTdHlsZXM7XG59XG5cbmNvbnN0IERhdGFUYWJsZVN0eWxlID0gc3R5bGVkLmRpdjx7IGlzUnRsOiBib29sZWFuIH0+YFxuICAuYnRuLXNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm4xfTtcbiAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uNTB9O1xuICAgIGNvbG9yOiBncmV5O1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgcGFkZGluZzogNXB4IDIwcHg7XG4gIH1cbiAgaDEge1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIH1cbiAgLnJkdF9UYWJsZUNvbCB7XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uMX07XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbiAgW2FyaWEtbGFiZWw9J0V4cGFuZCBSb3cnXSB7XG4gICAgbWFyZ2luOiAxMHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgc3ZnIHtcbiAgICAgICR7KHApID0+IChwLmlzUnRsID8gJ3RyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7JyA6ICcnKX1cbiAgICB9XG4gIH1cblxuICBbYXJpYS1sYWJlbD0nQ29sbGFwc2UgUm93J10ge1xuICAgIG1hcmdpbjogMTBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB9XG4gIC5yZHRfVGFibGVDZWxsIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuICAucmR0X1RhYmxlIHtcbiAgICAqIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBOdW5pdG8sIEdpbHJveSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgICB9XG4gICAgLnJkdF9UYWJsZUhlYWQge1xuICAgICAgdG9wOiAtMjtcbiAgICAgIC5yZHRfVGFibGVIZWFkUm93IHtcbiAgICAgICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm41MH07XG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgS2FuZG9UYWJsZSA9IDxUIGV4dGVuZHMgVGFibGVEYXRhVHlwZT4oe1xuICBleHBhbmRhYmxlUm93cyxcbiAgb25Sb3dFeHBhbmRUb2dnbGVkLFxuICBwYWdpbmF0aW9uUGVyUGFnZSxcbiAgY29sdW1ucyxcbiAgZGF0YSxcbiAgdG90YWxSb3dzLFxuICBwcm9ncmVzc1BlbmRpbmcsXG4gIG9uU2V0UGVyUGFnZSxcbiAgb25DaGFuZ2VQYWdlLFxuICBoYW5kbGVTb3J0LFxuICBwYWdpbmF0aW9uLFxuICBwYWdpbmF0aW9uQ29tcG9uZW50T3B0aW9ucyxcbiAgaXNQYWdpbmF0aW9uU2VydmVyLFxuICBpc1NvcnRTZXJ2ZXIsXG4gIHJvd0NvbXBvbmVudCxcbiAgZGVmYXVsdFNvcnRGaWVsZElkLFxuICBwYWdpbmF0aW9uUm93c1BlclBhZ2VPcHRpb25zLFxuICBkaXJlY3Rpb24sXG4gIGN1c3RvbVN0eWxlcyxcbn06IEthbmRvVGFibGVQcm9wczxUPikgPT4ge1xuICBjb25zdCB7IGRpciwgaXNSdGwgfSA9IHVzZU5hdkNvbnRleHQoKTtcblxuICByZXR1cm4gKFxuICAgIDxEYXRhVGFibGVTdHlsZVxuICAgICAgY2xhc3NOYW1lPVwiZGF0YXRhYmxlLXN0eWxlXCJcbiAgICAgIGlzUnRsPXtkaXJlY3Rpb24gPyAoRGlyZWN0aW9uLlJUTCA/IHRydWUgOiBmYWxzZSkgOiBpc1J0bH1cbiAgICAgIGRhdGEtdGVzdGlkPVwia2FuZG8tdGFibGVcIlxuICAgID5cbiAgICAgIDxEYXRhVGFibGVcbiAgICAgICAgb25DaGFuZ2VSb3dzUGVyUGFnZT17b25TZXRQZXJQYWdlfVxuICAgICAgICBvbkNoYW5nZVBhZ2U9e29uQ2hhbmdlUGFnZX1cbiAgICAgICAgZXhwYW5kYWJsZVJvd3M9e2V4cGFuZGFibGVSb3dzfVxuICAgICAgICBvblJvd0V4cGFuZFRvZ2dsZWQ9e29uUm93RXhwYW5kVG9nZ2xlZH1cbiAgICAgICAgZXhwYW5kYWJsZVJvd3NDb21wb25lbnQ9e3Jvd0NvbXBvbmVudH1cbiAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgZGF0YT17ZGF0YX1cbiAgICAgICAgZml4ZWRIZWFkZXJcbiAgICAgICAgc29ydFNlcnZlcj17aXNTb3J0U2VydmVyfVxuICAgICAgICBjbGFzc05hbWU9XCJkYXRhdGFibGUgY29tcGFjdFwiXG4gICAgICAgIG9uU29ydD17aGFuZGxlU29ydH1cbiAgICAgICAgZGVmYXVsdFNvcnRBc2M9e2ZhbHNlfVxuICAgICAgICBkZWZhdWx0U29ydEZpZWxkSWQ9e2RlZmF1bHRTb3J0RmllbGRJZH1cbiAgICAgICAgcGFnaW5hdGlvbj17cGFnaW5hdGlvbn1cbiAgICAgICAgcGFnaW5hdGlvblBlclBhZ2U9e3BhZ2luYXRpb25QZXJQYWdlfVxuICAgICAgICBwYWdpbmF0aW9uVG90YWxSb3dzPXt0b3RhbFJvd3N9XG4gICAgICAgIGRpcmVjdGlvbj17ZGlyZWN0aW9uID8gZGlyZWN0aW9uIDogZGlyfVxuICAgICAgICBzdHJpcGVkPXt0cnVlfVxuICAgICAgICBwYWdpbmF0aW9uUm93c1BlclBhZ2VPcHRpb25zPXtwYWdpbmF0aW9uUm93c1BlclBhZ2VPcHRpb25zfVxuICAgICAgICBwYWdpbmF0aW9uQ29tcG9uZW50T3B0aW9ucz17cGFnaW5hdGlvbkNvbXBvbmVudE9wdGlvbnN9XG4gICAgICAgIHBhZ2luYXRpb25TZXJ2ZXI9e2lzUGFnaW5hdGlvblNlcnZlcn1cbiAgICAgICAgcHJvZ3Jlc3NQZW5kaW5nPXtwcm9ncmVzc1BlbmRpbmcgfHwgZmFsc2V9XG4gICAgICAgIHByb2dyZXNzQ29tcG9uZW50PXs8U3Bpbm5lciAvPn1cbiAgICAgICAgbm9EYXRhQ29tcG9uZW50PXsnTm8gZGF0YSB3YXMgZm91bmQnfVxuICAgICAgICBjdXN0b21TdHlsZXM9e2N1c3RvbVN0eWxlc31cbiAgICAgIC8+XG4gICAgPC9EYXRhVGFibGVTdHlsZT5cbiAgKTtcbn07XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kando-env/kando-ui",
3
- "version": "1.2.121",
3
+ "version": "1.2.122-alpha.1",
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=