@projectcor/maia-components 2.11.108-0 → 2.11.108

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 (35) hide show
  1. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +2 -8
  2. package/lib/components/atoms/IconButton.js +2 -2
  3. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +5 -16
  4. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +187 -154
  5. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +12 -2
  6. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +26 -8
  7. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +24 -7
  8. package/lib/components/molecules/MessageFeedback/MessageFeedback.js +2 -14
  9. package/lib/components/organisms/ChatAI/ChatAI.js +22 -3
  10. package/lib/components/organisms/ClientAIButton/ClientAIButton.js +4 -1
  11. package/lib/components/organisms/CloseWhileGeneratingModal/CloseWhileGeneratingModal.js +56 -0
  12. package/lib/components/organisms/CloseWhileGeneratingModal/CloseWhileGeneratingModal.styles.js +35 -0
  13. package/lib/components/organisms/CloseWhileGeneratingModal/index.js +2 -0
  14. package/lib/components/organisms/ProjectAIButton/ProjectAIButton.js +4 -1
  15. package/lib/dev/DevChatAI.js +4 -1
  16. package/lib/hooks/useChatManager/useChatManager.js +77 -351
  17. package/lib/hooks/useChatMessages/useChatMessages.js +33 -6
  18. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  19. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +3 -78
  20. package/lib/lang/br/index.js +8 -1
  21. package/lib/lang/en/index.js +8 -1
  22. package/lib/lang/es/index.js +8 -1
  23. package/lib/lang/fr/index.js +8 -1
  24. package/lib/services/maia/Orchestrator/index.js +3 -4
  25. package/lib/services/maia/Orchestrator/orchestrator.js +16 -79
  26. package/lib/services/utils/mapChatMessages.js +5 -9
  27. package/lib/store/maiaMinimizedPersistence.js +49 -0
  28. package/lib/store/sessions/sessionStreamManager.js +2 -141
  29. package/lib/store/sessions/sessions.types.js +1 -1
  30. package/lib/utils/hitlAnalytics.js +35 -1
  31. package/lib/utils/maiaHostOpen.js +10 -1
  32. package/package.json +1 -1
  33. package/lib/components/atoms/icons/RetryIcon.js +0 -34
  34. package/lib/store/maiaLastChatPersistence.js +0 -35
  35. package/lib/utils/retryCompletion.js +0 -85
@@ -533,142 +533,6 @@ export var sessionStreamManager = {
533
533
  }, _callee3, null, [[3, 7, 8, 9]]);
534
534
  }))();
535
535
  },
536
- /** Regenera la respuesta de un turno (`retry_completion`) — mismo motor SSE que orchestrator. */startRetryStream: function startRetryStream(params) {
537
- return _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
538
- var sessionId, placeholderId, retryRequest, callbacks, t, activityOptions, agentId, agentName, controller, active, sseParams, response, detail, data, _callbacks$onError4, _t6, _t7;
539
- return _regeneratorRuntime.wrap(function (_context4) {
540
- while (1) switch (_context4.prev = _context4.next) {
541
- case 0:
542
- ensureSessionNotificationsInitialized();
543
- sessionId = params.sessionId, placeholderId = params.placeholderId, retryRequest = params.retryRequest, callbacks = params.callbacks, t = params.t, activityOptions = params.activityOptions, agentId = params.agentId, agentName = params.agentName;
544
- if (!isStreamActive(sessionId)) {
545
- _context4.next = 1;
546
- break;
547
- }
548
- return _context4.abrupt("return", {
549
- started: false,
550
- reason: 'already_active'
551
- });
552
- case 1:
553
- if (!(getActiveStreamCount() >= MAX_CONCURRENT_STREAMS)) {
554
- _context4.next = 2;
555
- break;
556
- }
557
- return _context4.abrupt("return", {
558
- started: false,
559
- reason: 'limit'
560
- });
561
- case 2:
562
- controller = new AbortController();
563
- active = {
564
- sessionId: sessionId,
565
- controller: controller,
566
- isStopped: false
567
- };
568
- activeStreams.set(sessionId, active);
569
- store().ensureSession(sessionId);
570
- store().patchMeta(sessionId, _objectSpread(_objectSpread({
571
- placeholderId: placeholderId,
572
- error: null,
573
- isLoading: true,
574
- isWriting: false
575
- }, agentId != null ? {
576
- agentId: agentId
577
- } : {}), agentName != null ? {
578
- agentName: agentName
579
- } : {}));
580
- store().setStatus(sessionId, 'thinking');
581
- sessionStreamingText.start(sessionId, placeholderId);
582
- store().setActivity(sessionId, getInitialStreamActivity(t, activityOptions !== null && activityOptions !== void 0 ? activityOptions : {}));
583
- sseParams = {
584
- sessionId: sessionId,
585
- placeholderId: placeholderId,
586
- request: {},
587
- callbacks: callbacks,
588
- t: t,
589
- activityOptions: activityOptions,
590
- agentId: agentId,
591
- agentName: agentName
592
- };
593
- _context4.prev = 3;
594
- _context4.next = 4;
595
- return maia.Orchestrator.retryCompletion(retryRequest, controller.signal);
596
- case 4:
597
- response = _context4.sent;
598
- if (response.ok) {
599
- _context4.next = 10;
600
- break;
601
- }
602
- if (!(response.status === 404)) {
603
- _context4.next = 9;
604
- break;
605
- }
606
- _context4.prev = 5;
607
- _context4.next = 6;
608
- return response.json();
609
- case 6:
610
- data = _context4.sent;
611
- detail = typeof data.detail === 'string' ? data.detail : undefined;
612
- _context4.next = 8;
613
- break;
614
- case 7:
615
- _context4.prev = 7;
616
- _t6 = _context4["catch"](5);
617
- detail = undefined;
618
- case 8:
619
- if (!(detail === 'Turn not found')) {
620
- _context4.next = 9;
621
- break;
622
- }
623
- sessionStreamingText.clear(sessionId);
624
- store().patchMeta(sessionId, {
625
- isLoading: false,
626
- isWriting: false,
627
- placeholderId: null
628
- });
629
- store().setActivity(sessionId, null);
630
- store().setStatus(sessionId, 'idle');
631
- activeStreams["delete"](sessionId);
632
- return _context4.abrupt("return", {
633
- started: false,
634
- reason: 'turn_not_found'
635
- });
636
- case 9:
637
- throw new Error("retry_completion failed: ".concat(response.status));
638
- case 10:
639
- _context4.next = 11;
640
- return parseSessionSSE(response, active, sseParams);
641
- case 11:
642
- _context4.next = 13;
643
- break;
644
- case 12:
645
- _context4.prev = 12;
646
- _t7 = _context4["catch"](3);
647
- if (!active.isStopped) {
648
- sessionStreamingText.clear(sessionId);
649
- store().patchMeta(sessionId, {
650
- isLoading: false,
651
- isWriting: false
652
- });
653
- store().setActivity(sessionId, null);
654
- store().setStatus(sessionId, 'error');
655
- (_callbacks$onError4 = callbacks.onError) === null || _callbacks$onError4 === void 0 || _callbacks$onError4.call(callbacks);
656
- }
657
- case 13:
658
- _context4.prev = 13;
659
- activeStreams["delete"](sessionId);
660
- return _context4.finish(13);
661
- case 14:
662
- return _context4.abrupt("return", {
663
- started: true
664
- });
665
- case 15:
666
- case "end":
667
- return _context4.stop();
668
- }
669
- }, _callee4, null, [[3, 12, 13, 14], [5, 7]]);
670
- }))();
671
- },
672
536
  /** Cancelación explícita del usuario (mensaje "cancelado"). */stopStream: function stopStream(sessionId, callbacks) {
673
537
  var _callbacks$onStop;
674
538
  var active = activeStreams.get(sessionId);
@@ -676,9 +540,6 @@ export var sessionStreamManager = {
676
540
  active.isStopped = true;
677
541
  active.controller.abort();
678
542
  activeStreams["delete"](sessionId);
679
- // El parcial se rescata antes de limpiar: el backend lo persiste, pero si no lo
680
- // pasamos al callback desaparece de pantalla hasta el próximo fetch de la sesión.
681
- var partialText = sessionStreamingText.getSnapshot(sessionId).text;
682
543
  sessionStreamingText.clear(sessionId);
683
544
  store().patchMeta(sessionId, {
684
545
  isLoading: false,
@@ -686,7 +547,7 @@ export var sessionStreamManager = {
686
547
  });
687
548
  store().setActivity(sessionId, null);
688
549
  store().setStatus(sessionId, 'cancelled');
689
- callbacks === null || callbacks === void 0 || (_callbacks$onStop = callbacks.onStop) === null || _callbacks$onStop === void 0 || _callbacks$onStop.call(callbacks, partialText);
550
+ callbacks === null || callbacks === void 0 || (_callbacks$onStop = callbacks.onStop) === null || _callbacks$onStop === void 0 || _callbacks$onStop.call(callbacks);
690
551
  },
691
552
  /** Aborta sin marcar "cancelado" (uso interno / limpieza). */abortSilently: function abortSilently(sessionId) {
692
553
  var _store$getMeta;
@@ -712,4 +573,4 @@ export var sessionStreamManager = {
712
573
  });
713
574
  }
714
575
  };
715
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYWlhIiwiZ2V0SW5pdGlhbFN0cmVhbUFjdGl2aXR5IiwiZ2V0VGhpbmtpbmdMb2FkaW5nTWVzc2FnZSIsImdldFdyaXRpbmdTdHJlYW1BY3Rpdml0eSIsInJlc29sdmVIaXRsTm9kZVN0cmVhbUFjdGl2aXR5IiwicmVzb2x2ZUluaXRpYWxIaXRsU3RyZWFtQWN0aXZpdHkiLCJpc0NvbXBsZXRlTGlrZVNzZVBheWxvYWQiLCJtZXJnZVN0cmVhbUNodW5rIiwic2Vzc2lvblN0cmVhbWluZ1RleHQiLCJ1c2VTZXNzaW9uc1N0b3JlIiwiZW5zdXJlU2Vzc2lvbk5vdGlmaWNhdGlvbnNJbml0aWFsaXplZCIsInNlc3Npb25IaXRsQ29udGV4dCIsIk1BWF9DT05DVVJSRU5UX1NUUkVBTVMiLCJTVFJFQU1fVEhST1RUTEVfTVMiLCJhY3RpdmVTdHJlYW1zIiwiTWFwIiwic3RvcmUiLCJnZXRTdGF0ZSIsImlzU3RyZWFtQWN0aXZlIiwic2Vzc2lvbklkIiwiaGFzIiwiZ2V0QWN0aXZlU3RyZWFtQ291bnQiLCJzaXplIiwicGFyc2VTZXNzaW9uU1NFIiwiX3JlZiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwicmVzcG9uc2UiLCJhY3RpdmUiLCJwYXJhbXMiLCJfcGFyYW1zJGhpdGxFeGVjdXRpb24iLCJfcmVzcG9uc2UkYm9keSIsIl9kYXRhJGVycm9yIiwiX2RhdGEkZXJyb3IyIiwiX2NhbGxiYWNrcyRvbkVycm9yIiwiX2RhdGEkZXJyb3IzIiwiX2RhdGEkZXJyb3I0IiwicGxhY2Vob2xkZXJJZCIsImNhbGxiYWNrcyIsInQiLCJoaXRsRXhlY3V0aW9uQ29udGV4dCIsInBlbmRpbmdDb250ZW50IiwidGhyb3R0bGVUaW1lciIsImZsdXNoVG9TdG9yZXMiLCJlbWl0VGhyb3R0bGVkIiwiZmx1c2hQZW5kaW5nIiwicmVhZGVyIiwiZGVjb2RlciIsImJ1ZmZlciIsImFjY3VtdWxhdGVkQ29udGVudCIsImhhc1N0YXJ0ZWRXcml0aW5nIiwiZW5zdXJlV3JpdGluZ1N0YXJ0ZWQiLCJhcHBseVN0cmVhbUNodW5rIiwiYXBwbHlTdHJlYW1Db21wbGV0ZSIsIl95aWVsZCRyZWFkZXIkcmVhZCIsImRvbmUiLCJ2YWx1ZSIsImxpbmVzIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJsaW5lIiwiX2xpbmUkc3BsaXQiLCJfbGluZSRzcGxpdDIiLCJldmVudExpbmUiLCJkYXRhTGluZSIsImV2ZW50VHlwZSIsImRhdGFTdHIiLCJkYXRhIiwiY2h1bmsiLCJfY2h1bmsiLCJfY2FsbGJhY2tzJG9uQXBwcm92YWwiLCJpc01hbnVhbEFwcHJvdmFsIiwiX3QiLCJfdDIiLCJfdDMiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImdldCIsImNvbnRlbnQiLCJfY2FsbGJhY2tzJG9uU3RyZWFtVXAiLCJzZXRUZXh0Iiwib25TdHJlYW1VcGRhdGUiLCJjYWxsIiwid2luZG93Iiwic2V0VGltZW91dCIsInRvRW1pdCIsImNsZWFyVGltZW91dCIsImJvZHkiLCJnZXRSZWFkZXIiLCJFcnJvciIsIlRleHREZWNvZGVyIiwiX2NhbGxiYWNrcyRvblN0YXJ0V3JpIiwicGF0Y2hNZXRhIiwiaXNMb2FkaW5nIiwiaXNXcml0aW5nIiwic2V0U3RhdHVzIiwic2V0QWN0aXZpdHkiLCJvblN0YXJ0V3JpdGluZyIsInBheWxvYWQiLCJfcGF5bG9hZCRhZ2VudF9pZCIsIl9zdWJhZ2VudFJhdyRyZXNvbHZlZCIsIl9jYWxsYmFja3Mkb25GaW5pc2hTdCIsImZpbmFsQ29udGVudCIsInNvdXJjZXMiLCJtZW1vcnlTZXNzaW9uSWQiLCJtZW1vcnlfc2Vzc2lvbl9pZCIsImF0dGFjaG1lbnRzIiwiQXJyYXkiLCJpc0FycmF5Iiwic3VnZ2VzdGlvbnMiLCJzdWdnZXN0X3JlcGx5IiwiYWdlbnRJZFJhdyIsImFnZW50X2lkIiwiYWdlbnRJZCIsImNvbXBsZXRlZEFnZW50SWQiLCJTdHJpbmciLCJ0cmltIiwic3ViYWdlbnRSYXciLCJzdWJhZ2VudCIsInJlc29sdmVkQ29udGV4dCIsInJlc29sdmVkX2NvbnRleHQiLCJjbGVhciIsImZpbmlzaFBheWxvYWQiLCJvbkZpbmlzaFN0cmVhbSIsImlzU3RvcHBlZCIsImNhbmNlbCIsImFicnVwdCIsInJlYWQiLCJzZW50IiwiZGVjb2RlIiwic3RyZWFtIiwic3BsaXQiLCJwb3AiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsInMiLCJuIiwiX3NsaWNlZFRvQXJyYXkiLCJyZXBsYWNlIiwiSlNPTiIsInBhcnNlIiwicGhhc2UiLCJtZXNzYWdlIiwibm9kZSIsInVuZGVmaW5lZCIsInRocmVhZF9pZCIsIm1hbnVhbF9hcHByb3ZhbF9kZXRlY3RlZCIsIm9uQXBwcm92YWxSZXF1aXJlZCIsInBlbmRpbmdfYWN0aW9ucyIsImxlbmd0aCIsImNvbnNvbGUiLCJlcnJvciIsInNldEVycm9yIiwidHlwZSIsIm9uRXJyb3IiLCJ3YXJuIiwiZSIsImYiLCJmaW5pc2giLCJzdG9wIiwiX3giLCJfeDIiLCJfeDMiLCJhcHBseSIsImFyZ3VtZW50cyIsInNlc3Npb25TdHJlYW1NYW5hZ2VyIiwiaXNBY3RpdmUiLCJnZXRBY3RpdmVDb3VudCIsImdldEFjdGl2ZVNlc3Npb25JZHMiLCJmcm9tIiwia2V5cyIsInN0YXJ0U3RyZWFtIiwiX2NhbGxlZTIiLCJyZXF1ZXN0IiwiYWN0aXZpdHlPcHRpb25zIiwiYWdlbnROYW1lIiwiY29udHJvbGxlciIsIl9jYWxsYmFja3Mkb25FcnJvcjIiLCJfdDQiLCJfY29udGV4dDIiLCJzdGFydGVkIiwicmVhc29uIiwiQWJvcnRDb250cm9sbGVyIiwic2V0IiwiZW5zdXJlU2Vzc2lvbiIsIl9vYmplY3RTcHJlYWQiLCJzdGFydCIsIk9yY2hlc3RyYXRvciIsIm9yY2hlc3RyYXRvciIsInNpZ25hbCIsInN0YXJ0Q29udGludWVTdHJlYW0iLCJfY2FsbGVlMyIsIl9yZWYyIiwiY29udGludWVSZXF1ZXN0Iiwic3NlUGFyYW1zIiwiX2NhbGxiYWNrcyRvbkVycm9yMyIsIl90NSIsIl9jb250ZXh0MyIsImNvbnRpbnVlVGhyZWFkIiwib2siLCJjb25jYXQiLCJzdGF0dXMiLCJzdGFydFJldHJ5U3RyZWFtIiwiX2NhbGxlZTQiLCJyZXRyeVJlcXVlc3QiLCJkZXRhaWwiLCJfY2FsbGJhY2tzJG9uRXJyb3I0IiwiX3Q2IiwiX3Q3IiwiX2NvbnRleHQ0IiwicmV0cnlDb21wbGV0aW9uIiwianNvbiIsInN0b3BTdHJlYW0iLCJfY2FsbGJhY2tzJG9uU3RvcCIsImFib3J0IiwicGFydGlhbFRleHQiLCJnZXRTbmFwc2hvdCIsInRleHQiLCJvblN0b3AiLCJhYm9ydFNpbGVudGx5IiwiX3N0b3JlJGdldE1ldGEiLCJnZXRNZXRhIiwiYWJvcnRBbGwiLCJfdGhpcyIsImZvckVhY2giXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RvcmUvc2Vzc2lvbnMvc2Vzc2lvblN0cmVhbU1hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29udGludWUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWF3YWl0LWluLWxvb3AgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXJlc3RyaWN0ZWQtc3ludGF4ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zdGFudC1jb25kaXRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCBtYWlhIGZyb20gJy4uLy4uL3NlcnZpY2VzL21haWEnXG5pbXBvcnQgdHlwZSB7IEFwcHJvdmFsUmVxdWVzdCB9IGZyb20gJy4uLy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQge1xuICBnZXRJbml0aWFsU3RyZWFtQWN0aXZpdHksXG4gIGdldFRoaW5raW5nTG9hZGluZ01lc3NhZ2UsXG4gIGdldFdyaXRpbmdTdHJlYW1BY3Rpdml0eSxcbiAgcmVzb2x2ZUhpdGxOb2RlU3RyZWFtQWN0aXZpdHksXG4gIHJlc29sdmVJbml0aWFsSGl0bFN0cmVhbUFjdGl2aXR5LFxufSBmcm9tICcuLi8uLi91dGlscy9zdHJlYW1BY3Rpdml0eU1lc3NhZ2VzJ1xuaW1wb3J0IHR5cGUgeyBIaXRsRXhlY3V0aW9uQ29udGV4dCB9IGZyb20gJy4uLy4uL3V0aWxzL3N0cmVhbUFjdGl2aXR5TWVzc2FnZXMnXG5pbXBvcnQgeyBpc0NvbXBsZXRlTGlrZVNzZVBheWxvYWQsIG1lcmdlU3RyZWFtQ2h1bmsgfSBmcm9tICcuLi8uLi91dGlscy9zc2VTdHJlYW1Db250ZW50J1xuaW1wb3J0IHsgc2Vzc2lvblN0cmVhbWluZ1RleHQgfSBmcm9tICcuL3Nlc3Npb25TdHJlYW1pbmdUZXh0J1xuaW1wb3J0IHsgdXNlU2Vzc2lvbnNTdG9yZSB9IGZyb20gJy4vdXNlU2Vzc2lvbnNTdG9yZSdcbmltcG9ydCB7IGVuc3VyZVNlc3Npb25Ob3RpZmljYXRpb25zSW5pdGlhbGl6ZWQgfSBmcm9tICcuL3Nlc3Npb25Ob3RpZmljYXRpb25zJ1xuaW1wb3J0IHsgc2Vzc2lvbkhpdGxDb250ZXh0IH0gZnJvbSAnLi9zZXNzaW9uSGl0bENvbnRleHQnXG5pbXBvcnQgdHlwZSB7IFNlc3Npb25GaW5pc2hQYXlsb2FkLCBTZXNzaW9uU3RyZWFtQ2FsbGJhY2tzLCBTdGFydFN0cmVhbVJlc3VsdCB9IGZyb20gJy4vc2Vzc2lvbnMudHlwZXMnXG5cbnR5cGUgT3JjaGVzdHJhdG9yUmVxdWVzdCA9IFBhcmFtZXRlcnM8dHlwZW9mIG1haWEuT3JjaGVzdHJhdG9yLm9yY2hlc3RyYXRvcj5bMF1cbnR5cGUgQ29udGludWVUaHJlYWRSZXF1ZXN0ID0gUGFyYW1ldGVyczx0eXBlb2YgbWFpYS5PcmNoZXN0cmF0b3IuY29udGludWVUaHJlYWQ+WzBdXG50eXBlIFJldHJ5Q29tcGxldGlvblJlcXVlc3QgPSBQYXJhbWV0ZXJzPHR5cGVvZiBtYWlhLk9yY2hlc3RyYXRvci5yZXRyeUNvbXBsZXRpb24+WzBdXG5cbi8qKiBDb21wYXRpYmxlIGNvbiBlbCBgdGAgZGUgaTE4bmV4dCAodXNvIGRlIHVuYSBzb2xhIGtleSkuICovXG50eXBlIFRyYW5zbGF0ZUZuID0gKGtleTogc3RyaW5nKSA9PiBzdHJpbmdcblxudHlwZSBTdGFydFN0cmVhbVBhcmFtcyA9IHtcbiAgc2Vzc2lvbklkOiBzdHJpbmdcbiAgcGxhY2Vob2xkZXJJZDogc3RyaW5nXG4gIHJlcXVlc3Q6IE9yY2hlc3RyYXRvclJlcXVlc3RcbiAgY2FsbGJhY2tzOiBTZXNzaW9uU3RyZWFtQ2FsbGJhY2tzXG4gIHQ6IFRyYW5zbGF0ZUZuXG4gIGFjdGl2aXR5T3B0aW9ucz86IHtcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZT86IGJvb2xlYW5cbiAgICBpc0RlZXBTZWFyY2hBY3RpdmU/OiBib29sZWFuXG4gICAgaGFzQXR0YWNobWVudHM/OiBib29sZWFuXG4gICAgYXR0YWNobWVudHNDb3VudD86IG51bWJlclxuICB9XG4gIGhpdGxFeGVjdXRpb25Db250ZXh0PzogSGl0bEV4ZWN1dGlvbkNvbnRleHQgfCBudWxsXG4gIGFnZW50SWQ/OiBzdHJpbmcgfCBudW1iZXJcbiAgYWdlbnROYW1lPzogc3RyaW5nXG59XG5cbnR5cGUgU3RhcnRDb250aW51ZVN0cmVhbVBhcmFtcyA9IHtcbiAgc2Vzc2lvbklkOiBzdHJpbmdcbiAgcGxhY2Vob2xkZXJJZDogc3RyaW5nXG4gIGNvbnRpbnVlUmVxdWVzdDogQ29udGludWVUaHJlYWRSZXF1ZXN0XG4gIGNhbGxiYWNrczogU2Vzc2lvblN0cmVhbUNhbGxiYWNrc1xuICB0OiBUcmFuc2xhdGVGblxuICBoaXRsRXhlY3V0aW9uQ29udGV4dD86IEhpdGxFeGVjdXRpb25Db250ZXh0IHwgbnVsbFxuICBhZ2VudElkPzogc3RyaW5nIHwgbnVtYmVyXG4gIGFnZW50TmFtZT86IHN0cmluZ1xufVxuXG50eXBlIFN0YXJ0UmV0cnlTdHJlYW1QYXJhbXMgPSB7XG4gIHNlc3Npb25JZDogc3RyaW5nXG4gIHBsYWNlaG9sZGVySWQ6IHN0cmluZ1xuICByZXRyeVJlcXVlc3Q6IFJldHJ5Q29tcGxldGlvblJlcXVlc3RcbiAgY2FsbGJhY2tzOiBTZXNzaW9uU3RyZWFtQ2FsbGJhY2tzXG4gIHQ6IFRyYW5zbGF0ZUZuXG4gIGFjdGl2aXR5T3B0aW9ucz86IHtcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZT86IGJvb2xlYW5cbiAgICBpc0RlZXBTZWFyY2hBY3RpdmU/OiBib29sZWFuXG4gICAgaGFzQXR0YWNobWVudHM/OiBib29sZWFuXG4gICAgYXR0YWNobWVudHNDb3VudD86IG51bWJlclxuICB9XG4gIGFnZW50SWQ/OiBzdHJpbmcgfCBudW1iZXJcbiAgYWdlbnROYW1lPzogc3RyaW5nXG59XG5cbnR5cGUgQWN0aXZlU3RyZWFtID0ge1xuICBzZXNzaW9uSWQ6IHN0cmluZ1xuICBjb250cm9sbGVyOiBBYm9ydENvbnRyb2xsZXJcbiAgaXNTdG9wcGVkOiBib29sZWFuXG59XG5cbi8qKlxuICogTcOheGltbyBkZSBzZXNpb25lcyBnZW5lcmFuZG8gZW4gcGFyYWxlbG8uIFByb3RlZ2UgcmVkL3JlY3Vyc29zIGRlbCBjbGllbnRlLlxuICogQWp1c3RhYmxlIGEgZnV0dXJvIHbDrWEgZmxhZyBkZWwgaG9zdC5cbiAqL1xuZXhwb3J0IGNvbnN0IE1BWF9DT05DVVJSRU5UX1NUUkVBTVMgPSA0XG5cbmNvbnN0IFNUUkVBTV9USFJPVFRMRV9NUyA9IDE2XG5cbmNvbnN0IGFjdGl2ZVN0cmVhbXMgPSBuZXcgTWFwPHN0cmluZywgQWN0aXZlU3RyZWFtPigpXG5cbmNvbnN0IHN0b3JlID0gKCkgPT4gdXNlU2Vzc2lvbnNTdG9yZS5nZXRTdGF0ZSgpXG5cbmNvbnN0IGlzU3RyZWFtQWN0aXZlID0gKHNlc3Npb25JZDogc3RyaW5nKTogYm9vbGVhbiA9PiBhY3RpdmVTdHJlYW1zLmhhcyhzZXNzaW9uSWQpXG5cbmNvbnN0IGdldEFjdGl2ZVN0cmVhbUNvdW50ID0gKCk6IG51bWJlciA9PiBhY3RpdmVTdHJlYW1zLnNpemVcblxuY29uc3QgcGFyc2VTZXNzaW9uU1NFID0gYXN5bmMgKHJlc3BvbnNlOiBSZXNwb25zZSwgYWN0aXZlOiBBY3RpdmVTdHJlYW0sIHBhcmFtczogU3RhcnRTdHJlYW1QYXJhbXMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgY29uc3QgeyBzZXNzaW9uSWQsIHBsYWNlaG9sZGVySWQsIGNhbGxiYWNrcywgdCB9ID0gcGFyYW1zXG4gIGNvbnN0IGhpdGxFeGVjdXRpb25Db250ZXh0ID0gcGFyYW1zLmhpdGxFeGVjdXRpb25Db250ZXh0ID8/IHNlc3Npb25IaXRsQ29udGV4dC5nZXQoc2Vzc2lvbklkKVxuXG4gIGxldCBwZW5kaW5nQ29udGVudDogc3RyaW5nIHwgbnVsbCA9IG51bGxcbiAgbGV0IHRocm90dGxlVGltZXI6IG51bWJlciB8IG51bGwgPSBudWxsXG5cbiAgY29uc3QgZmx1c2hUb1N0b3JlcyA9IChjb250ZW50OiBzdHJpbmcpID0+IHtcbiAgICBzZXNzaW9uU3RyZWFtaW5nVGV4dC5zZXRUZXh0KHNlc3Npb25JZCwgcGxhY2Vob2xkZXJJZCwgY29udGVudClcbiAgICBjYWxsYmFja3Mub25TdHJlYW1VcGRhdGU/Lihjb250ZW50KVxuICB9XG5cbiAgY29uc3QgZW1pdFRocm90dGxlZCA9IChjb250ZW50OiBzdHJpbmcpID0+IHtcbiAgICBwZW5kaW5nQ29udGVudCA9IGNvbnRlbnRcbiAgICBpZiAodGhyb3R0bGVUaW1lciAhPSBudWxsKSByZXR1cm5cbiAgICB0aHJvdHRsZVRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhyb3R0bGVUaW1lciA9IG51bGxcbiAgICAgIGlmIChwZW5kaW5nQ29udGVudCAhPSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHRvRW1pdCA9IHBlbmRpbmdDb250ZW50XG4gICAgICAgIHBlbmRpbmdDb250ZW50ID0gbnVsbFxuICAgICAgICBmbHVzaFRvU3RvcmVzKHRvRW1pdClcbiAgICAgIH1cbiAgICB9LCBTVFJFQU1fVEhST1RUTEVfTVMpXG4gIH1cblxuICBjb25zdCBmbHVzaFBlbmRpbmcgPSAoKSA9PiB7XG4gICAgaWYgKHRocm90dGxlVGltZXIgIT0gbnVsbCkge1xuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aHJvdHRsZVRpbWVyKVxuICAgICAgdGhyb3R0bGVUaW1lciA9IG51bGxcbiAgICB9XG4gICAgaWYgKHBlbmRpbmdDb250ZW50ICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IHRvRW1pdCA9IHBlbmRpbmdDb250ZW50XG4gICAgICBwZW5kaW5nQ29udGVudCA9IG51bGxcbiAgICAgIGZsdXNoVG9TdG9yZXModG9FbWl0KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJlYWRlciA9IHJlc3BvbnNlLmJvZHk/LmdldFJlYWRlcigpXG4gIGlmICghcmVhZGVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyByZWFkZXIgYXZhaWxhYmxlJylcbiAgfVxuXG4gIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKVxuICBsZXQgYnVmZmVyID0gJydcbiAgbGV0IGFjY3VtdWxhdGVkQ29udGVudCA9ICcnXG4gIGxldCBoYXNTdGFydGVkV3JpdGluZyA9IGZhbHNlXG5cbiAgY29uc3QgZW5zdXJlV3JpdGluZ1N0YXJ0ZWQgPSAoKSA9PiB7XG4gICAgaWYgKGhhc1N0YXJ0ZWRXcml0aW5nKSByZXR1cm5cbiAgICBoYXNTdGFydGVkV3JpdGluZyA9IHRydWVcbiAgICBzdG9yZSgpLnBhdGNoTWV0YShzZXNzaW9uSWQsIHsgaXNMb2FkaW5nOiB0cnVlLCBpc1dyaXRpbmc6IHRydWUgfSlcbiAgICBzdG9yZSgpLnNldFN0YXR1cyhzZXNzaW9uSWQsICd3cml0aW5nJylcbiAgICBzdG9yZSgpLnNldEFjdGl2aXR5KHNlc3Npb25JZCwgZ2V0V3JpdGluZ1N0cmVhbUFjdGl2aXR5KHQpKVxuICAgIGNhbGxiYWNrcy5vblN0YXJ0V3JpdGluZz8uKClcbiAgfVxuXG4gIGNvbnN0IGFwcGx5U3RyZWFtQ2h1bmsgPSAoY2h1bms6IHN0cmluZykgPT4ge1xuICAgIGlmICghY2h1bmspIHJldHVyblxuICAgIGFjY3VtdWxhdGVkQ29udGVudCA9IG1lcmdlU3RyZWFtQ2h1bmsoYWNjdW11bGF0ZWRDb250ZW50LCBjaHVuaylcbiAgICBlbWl0VGhyb3R0bGVkKGFjY3VtdWxhdGVkQ29udGVudClcbiAgfVxuXG4gIGNvbnN0IGFwcGx5U3RyZWFtQ29tcGxldGUgPSAocGF5bG9hZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICBjb25zdCBmaW5hbENvbnRlbnQgPSAocGF5bG9hZC5jb250ZW50IGFzIHN0cmluZykgfHwgYWNjdW11bGF0ZWRDb250ZW50XG4gICAgY29uc3Qgc291cmNlcyA9IHBheWxvYWQuc291cmNlcyB8fCBudWxsXG4gICAgY29uc3QgbWVtb3J5U2Vzc2lvbklkID0gKHBheWxvYWQubWVtb3J5X3Nlc3Npb25faWQgYXMgc3RyaW5nKSB8fCAnJ1xuICAgIGNvbnN0IGF0dGFjaG1lbnRzID0gQXJyYXkuaXNBcnJheShwYXlsb2FkLmF0dGFjaG1lbnRzKSA/IHBheWxvYWQuYXR0YWNobWVudHMgOiBudWxsXG4gICAgbGV0IHN1Z2dlc3Rpb25zOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocGF5bG9hZC5zdWdnZXN0X3JlcGx5KSkge1xuICAgICAgc3VnZ2VzdGlvbnMgPSBwYXlsb2FkLnN1Z2dlc3RfcmVwbHkgYXMgc3RyaW5nW11cbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocGF5bG9hZC5zdWdnZXN0aW9ucykpIHtcbiAgICAgIHN1Z2dlc3Rpb25zID0gcGF5bG9hZC5zdWdnZXN0aW9ucyBhcyBzdHJpbmdbXVxuICAgIH1cbiAgICBjb25zdCBhZ2VudElkUmF3ID0gcGF5bG9hZC5hZ2VudF9pZCA/PyBwYXlsb2FkLmFnZW50SWRcbiAgICBjb25zdCBjb21wbGV0ZWRBZ2VudElkID0gYWdlbnRJZFJhdyAhPSBudWxsICYmIFN0cmluZyhhZ2VudElkUmF3KS50cmltKCkgIT09ICcnID8gU3RyaW5nKGFnZW50SWRSYXcpLnRyaW0oKSA6IG51bGxcbiAgICBjb25zdCBzdWJhZ2VudFJhdyA9IHBheWxvYWQuc3ViYWdlbnQgYXMgeyByZXNvbHZlZF9jb250ZXh0PzogdW5rbm93biB9IHwgbnVsbCB8IHVuZGVmaW5lZFxuICAgIGNvbnN0IHJlc29sdmVkQ29udGV4dCA9IHN1YmFnZW50UmF3Py5yZXNvbHZlZF9jb250ZXh0ID8/IG51bGxcblxuICAgIGZsdXNoUGVuZGluZygpXG4gICAgc2Vzc2lvblN0cmVhbWluZ1RleHQuY2xlYXIoc2Vzc2lvbklkKVxuICAgIHN0b3JlKCkucGF0Y2hNZXRhKHNlc3Npb25JZCwgeyBpc0xvYWRpbmc6IGZhbHNlLCBpc1dyaXRpbmc6IGZhbHNlIH0pXG4gICAgc3RvcmUoKS5zZXRBY3Rpdml0eShzZXNzaW9uSWQsIG51bGwpXG4gICAgc3RvcmUoKS5zZXRTdGF0dXMoc2Vzc2lvbklkLCAnY29tcGxldGUnKVxuXG4gICAgY29uc3QgZmluaXNoUGF5bG9hZDogU2Vzc2lvbkZpbmlzaFBheWxvYWQgPSB7XG4gICAgICBjb250ZW50OiBmaW5hbENvbnRlbnQsXG4gICAgICBzb3VyY2VzLFxuICAgICAgbWVtb3J5U2Vzc2lvbklkLFxuICAgICAgYXR0YWNobWVudHMsXG4gICAgICBzdWdnZXN0aW9ucyxcbiAgICAgIGNvbXBsZXRlZEFnZW50SWQsXG4gICAgICByZXNvbHZlZENvbnRleHQsXG4gICAgfVxuICAgIGNhbGxiYWNrcy5vbkZpbmlzaFN0cmVhbT8uKGZpbmlzaFBheWxvYWQpXG4gIH1cblxuICB0cnkge1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBpZiAoYWN0aXZlLmlzU3RvcHBlZCkge1xuICAgICAgICByZWFkZXIuY2FuY2VsKClcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKVxuICAgICAgaWYgKGRvbmUpIGJyZWFrXG5cbiAgICAgIGlmIChhY3RpdmUuaXNTdG9wcGVkKSB7XG4gICAgICAgIHJlYWRlci5jYW5jZWwoKVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBidWZmZXIgKz0gZGVjb2Rlci5kZWNvZGUodmFsdWUsIHsgc3RyZWFtOiB0cnVlIH0pXG4gICAgICBjb25zdCBsaW5lcyA9IGJ1ZmZlci5zcGxpdCgnXFxuXFxuJylcbiAgICAgIGJ1ZmZlciA9IGxpbmVzLnBvcCgpIHx8ICcnXG5cbiAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgICBpZiAobGluZS50cmltKCkgPT09ICcnKSBjb250aW51ZVxuXG4gICAgICAgIGNvbnN0IFtldmVudExpbmUsIGRhdGFMaW5lXSA9IGxpbmUuc3BsaXQoJ1xcbicpXG4gICAgICAgIGlmICghZXZlbnRMaW5lIHx8ICFkYXRhTGluZSkgY29udGludWVcblxuICAgICAgICBjb25zdCBldmVudFR5cGUgPSBldmVudExpbmUucmVwbGFjZSgnZXZlbnQ6ICcsICcnKS50cmltKClcbiAgICAgICAgY29uc3QgZGF0YVN0ciA9IGRhdGFMaW5lLnJlcGxhY2UoJ2RhdGE6ICcsICcnKS50cmltKClcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGRhdGFTdHIpXG5cbiAgICAgICAgICBzd2l0Y2ggKGV2ZW50VHlwZSkge1xuICAgICAgICAgICAgY2FzZSAndGhpbmtpbmcnOlxuICAgICAgICAgICAgICBpZiAoIWhhc1N0YXJ0ZWRXcml0aW5nKSB7XG4gICAgICAgICAgICAgICAgc3RvcmUoKS5wYXRjaE1ldGEoc2Vzc2lvbklkLCB7IGlzTG9hZGluZzogdHJ1ZSB9KVxuICAgICAgICAgICAgICAgIHN0b3JlKCkuc2V0U3RhdHVzKHNlc3Npb25JZCwgJ3RoaW5raW5nJylcbiAgICAgICAgICAgICAgICBzdG9yZSgpLnNldEFjdGl2aXR5KHNlc3Npb25JZCwgeyBwaGFzZTogJ3RoaW5raW5nJywgbWVzc2FnZTogZ2V0VGhpbmtpbmdMb2FkaW5nTWVzc2FnZSgwLCB0KSB9KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgICAgIGNhc2UgJ3Rva2VuJzoge1xuICAgICAgICAgICAgICBjb25zdCBjaHVuayA9IHR5cGVvZiBkYXRhLmNvbnRlbnQgPT09ICdzdHJpbmcnID8gZGF0YS5jb250ZW50IDogJydcbiAgICAgICAgICAgICAgZW5zdXJlV3JpdGluZ1N0YXJ0ZWQoKVxuICAgICAgICAgICAgICBhcHBseVN0cmVhbUNodW5rKGNodW5rKVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjYXNlICdjb250ZW50Jzoge1xuICAgICAgICAgICAgICBjb25zdCBjaHVuayA9IHR5cGVvZiBkYXRhLmNvbnRlbnQgPT09ICdzdHJpbmcnID8gZGF0YS5jb250ZW50IDogJydcbiAgICAgICAgICAgICAgZW5zdXJlV3JpdGluZ1N0YXJ0ZWQoKVxuICAgICAgICAgICAgICBhcHBseVN0cmVhbUNodW5rKGNodW5rKVxuICAgICAgICAgICAgICBpZiAoaXNDb21wbGV0ZUxpa2VTc2VQYXlsb2FkKGRhdGEpKSB7XG4gICAgICAgICAgICAgICAgYXBwbHlTdHJlYW1Db21wbGV0ZShkYXRhKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNhc2UgJ25vZGUnOlxuICAgICAgICAgICAgICBpZiAoZGF0YS5ub2RlID09PSAnYWdlbnRfdHJhbnNmZXInKSB7XG4gICAgICAgICAgICAgICAgc3RvcmUoKS5wYXRjaE1ldGEoc2Vzc2lvbklkLCB7IGlzTG9hZGluZzogdHJ1ZSB9KVxuICAgICAgICAgICAgICAgIHN0b3JlKCkuc2V0U3RhdHVzKHNlc3Npb25JZCwgJ3RoaW5raW5nJylcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhLm1lc3NhZ2UgJiYgdHlwZW9mIGRhdGEubWVzc2FnZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBzdG9yZSgpLnBhdGNoTWV0YShzZXNzaW9uSWQsIHsgaXNMb2FkaW5nOiB0cnVlIH0pXG4gICAgICAgICAgICAgICAgc3RvcmUoKS5zZXRTdGF0dXMoc2Vzc2lvbklkLCAndGhpbmtpbmcnKVxuICAgICAgICAgICAgICAgIHN0b3JlKCkuc2V0QWN0aXZpdHkoXG4gICAgICAgICAgICAgICAgICBzZXNzaW9uSWQsXG4gICAgICAgICAgICAgICAgICByZXNvbHZlSGl0bE5vZGVTdHJlYW1BY3Rpdml0eShcbiAgICAgICAgICAgICAgICAgICAgZGF0YS5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB0LFxuICAgICAgICAgICAgICAgICAgICBoaXRsRXhlY3V0aW9uQ29udGV4dCA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIHR5cGVvZiBkYXRhLnRocmVhZF9pZCA9PT0gJ3N0cmluZycgPyBkYXRhLnRocmVhZF9pZCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVha1xuXG4gICAgICAgICAgICBjYXNlICdjb21wbGV0ZSc6XG4gICAgICAgICAgICAgIGFwcGx5U3RyZWFtQ29tcGxldGUoZGF0YSlcbiAgICAgICAgICAgICAgYnJlYWtcblxuICAgICAgICAgICAgY2FzZSAnYXBwcm92YWxfcmVxdWlyZWQnOiB7XG4gICAgICAgICAgICAgIGZsdXNoUGVuZGluZygpXG4gICAgICAgICAgICAgIGNvbnN0IGlzTWFudWFsQXBwcm92YWwgPSBkYXRhLm1hbnVhbF9hcHByb3ZhbF9kZXRlY3RlZCA9PT0gdHJ1ZVxuICAgICAgICAgICAgICBzdG9yZSgpLnBhdGNoTWV0YShzZXNzaW9uSWQsIHsgaXNXcml0aW5nOiBmYWxzZSB9KVxuICAgICAgICAgICAgICBpZiAoIWlzTWFudWFsQXBwcm92YWwpIHtcbiAgICAgICAgICAgICAgICBzdG9yZSgpLnBhdGNoTWV0YShzZXNzaW9uSWQsIHsgaXNMb2FkaW5nOiBmYWxzZSB9KVxuICAgICAgICAgICAgICAgIHNlc3Npb25TdHJlYW1pbmdUZXh0LmNsZWFyKHNlc3Npb25JZClcbiAgICAgICAgICAgICAgICBzdG9yZSgpLnNldEFjdGl2aXR5KHNlc3Npb25JZCwgbnVsbClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBzdG9yZSgpLnNldFN0YXR1cyhzZXNzaW9uSWQsICdhd2FpdGluZ19hcHByb3ZhbCcpXG4gICAgICAgICAgICAgIGNhbGxiYWNrcy5vbkFwcHJvdmFsUmVxdWlyZWQ/LihkYXRhIGFzIEFwcHJvdmFsUmVxdWVzdCwgYWNjdW11bGF0ZWRDb250ZW50KVxuICAgICAgICAgICAgICBpZiAoaXNNYW51YWxBcHByb3ZhbCAmJiBBcnJheS5pc0FycmF5KGRhdGEucGVuZGluZ19hY3Rpb25zKSAmJiBkYXRhLnBlbmRpbmdfYWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgc3RvcmUoKS5wYXRjaE1ldGEoc2Vzc2lvbklkLCB7IGlzTG9hZGluZzogdHJ1ZSB9KVxuICAgICAgICAgICAgICAgIHN0b3JlKCkuc2V0U3RhdHVzKHNlc3Npb25JZCwgJ3RoaW5raW5nJylcbiAgICAgICAgICAgICAgICBzdG9yZSgpLnNldEFjdGl2aXR5KHNlc3Npb25JZCwgcmVzb2x2ZUluaXRpYWxIaXRsU3RyZWFtQWN0aXZpdHkodCwgaGl0bEV4ZWN1dGlvbkNvbnRleHQgPz8gdW5kZWZpbmVkKSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1NTRSBFcnJvcjonLCBkYXRhLmVycm9yKVxuICAgICAgICAgICAgICBmbHVzaFBlbmRpbmcoKVxuICAgICAgICAgICAgICBzZXNzaW9uU3RyZWFtaW5nVGV4dC5jbGVhcihzZXNzaW9uSWQpXG4gICAgICAgICAgICAgIHN0b3JlKCkucGF0Y2hNZXRhKHNlc3Npb25JZCwgeyBpc0xvYWRpbmc6IGZhbHNlLCBpc1dyaXRpbmc6IGZhbHNlIH0pXG4gICAgICAgICAgICAgIHN0b3JlKCkuc2V0QWN0aXZpdHkoc2Vzc2lvbklkLCBudWxsKVxuICAgICAgICAgICAgICBzdG9yZSgpLnNldEVycm9yKHNlc3Npb25JZCwgeyB0eXBlOiBkYXRhLmVycm9yPy50eXBlLCBtZXNzYWdlOiBkYXRhLmVycm9yPy5tZXNzYWdlIH0pXG4gICAgICAgICAgICAgIHN0b3JlKCkuc2V0U3RhdHVzKHNlc3Npb25JZCwgJ2Vycm9yJylcbiAgICAgICAgICAgICAgY2FsbGJhY2tzLm9uRXJyb3I/LihkYXRhLmVycm9yPy50eXBlLCBkYXRhLmVycm9yPy5tZXNzYWdlKVxuICAgICAgICAgICAgICBicmVha1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ1Vua25vd24gU1NFIGV2ZW50IHR5cGU6JywgZXZlbnRUeXBlKVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAocGFyc2VFcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBhcnNpbmcgU1NFIGRhdGE6JywgcGFyc2VFcnJvciwgZGF0YVN0cilcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICBmbHVzaFBlbmRpbmcoKVxuICB9XG59XG5cbi8qKlxuICogTWFuYWdlciBzaW5nbGV0b24gKG1vZHVsZS1sZXZlbCkgcXVlIGNvcnJlIE4gc3RyZWFtcyBkZWwgb3JjaGVzdHJhdG9yIGVuXG4gKiBwYXJhbGVsbywgdW5vIHBvciBgc2Vzc2lvbklkYC4gU29icmV2aXZlIGEgY2FtYmlvcyBkZSB2aXN0YSB5IGFsIGNpZXJyZSBkZWxcbiAqIG1vZGFsOiBsb3Mgc3RyZWFtcyBzb2xvIHNlIGNhbmNlbGFuIGNvbiBzdG9wIGV4cGzDrWNpdG8gZGVsIHVzdWFyaW8gbyBhbFxuICogY29tcGxldGFyL2Vycm9yYXIuXG4gKi9cbmV4cG9ydCBjb25zdCBzZXNzaW9uU3RyZWFtTWFuYWdlciA9IHtcbiAgaXNBY3RpdmU6IGlzU3RyZWFtQWN0aXZlLFxuICBnZXRBY3RpdmVDb3VudDogZ2V0QWN0aXZlU3RyZWFtQ291bnQsXG4gIGdldEFjdGl2ZVNlc3Npb25JZHM6ICgpOiBzdHJpbmdbXSA9PiBBcnJheS5mcm9tKGFjdGl2ZVN0cmVhbXMua2V5cygpKSxcblxuICBhc3luYyBzdGFydFN0cmVhbShwYXJhbXM6IFN0YXJ0U3RyZWFtUGFyYW1zKTogUHJvbWlzZTxTdGFydFN0cmVhbVJlc3VsdD4ge1xuICAgIGVuc3VyZVNlc3Npb25Ob3RpZmljYXRpb25zSW5pdGlhbGl6ZWQoKVxuXG4gICAgY29uc3QgeyBzZXNzaW9uSWQsIHBsYWNlaG9sZGVySWQsIHJlcXVlc3QsIGNhbGxiYWNrcywgdCwgYWN0aXZpdHlPcHRpb25zLCBhZ2VudElkLCBhZ2VudE5hbWUgfSA9IHBhcmFtc1xuXG4gICAgaWYgKGlzU3RyZWFtQWN0aXZlKHNlc3Npb25JZCkpIHtcbiAgICAgIHJldHVybiB7IHN0YXJ0ZWQ6IGZhbHNlLCByZWFzb246ICdhbHJlYWR5X2FjdGl2ZScgfVxuICAgIH1cbiAgICBpZiAoZ2V0QWN0aXZlU3RyZWFtQ291bnQoKSA+PSBNQVhfQ09OQ1VSUkVOVF9TVFJFQU1TKSB7XG4gICAgICByZXR1cm4geyBzdGFydGVkOiBmYWxzZSwgcmVhc29uOiAnbGltaXQnIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpXG4gICAgY29uc3QgYWN0aXZlOiBBY3RpdmVTdHJlYW0gPSB7IHNlc3Npb25JZCwgY29udHJvbGxlciwgaXNTdG9wcGVkOiBmYWxzZSB9XG4gICAgYWN0aXZlU3RyZWFtcy5zZXQoc2Vzc2lvbklkLCBhY3RpdmUpXG5cbiAgICBzdG9yZSgpLmVuc3VyZVNlc3Npb24oc2Vzc2lvbklkKVxuICAgIHN0b3JlKCkucGF0Y2hNZXRhKHNlc3Npb25JZCwge1xuICAgICAgcGxhY2Vob2xkZXJJZCxcbiAgICAgIGVycm9yOiBudWxsLFxuICAgICAgaXNMb2FkaW5nOiB0cnVlLFxuICAgICAgaXNXcml0aW5nOiBmYWxzZSxcbiAgICAgIC4uLihhZ2VudElkICE9IG51bGwgPyB7IGFnZW50SWQgfSA6IHt9KSxcbiAgICAgIC4uLihhZ2VudE5hbWUgIT0gbnVsbCA/IHsgYWdlbnROYW1lIH0gOiB7fSksXG4gICAgfSlcbiAgICBzdG9yZSgpLnNldFN0YXR1cyhzZXNzaW9uSWQsICd0aGlua2luZycpXG4gICAgc2Vzc2lvblN0cmVhbWluZ1RleHQuc3RhcnQoc2Vzc2lvbklkLCBwbGFjZWhvbGRlcklkKVxuICAgIHN0b3JlKCkuc2V0QWN0aXZpdHkoc2Vzc2lvbklkLCBnZXRJbml0aWFsU3RyZWFtQWN0aXZpdHkodCwgYWN0aXZpdHlPcHRpb25zID8/IHt9KSlcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG1haWEuT3JjaGVzdHJhdG9yLm9yY2hlc3RyYXRvcihyZXF1ZXN0LCBjb250cm9sbGVyLnNpZ25hbClcbiAgICAgIGF3YWl0IHBhcnNlU2Vzc2lvblNTRShyZXNwb25zZSwgYWN0aXZlLCBwYXJhbXMpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmICghYWN0aXZlLmlzU3RvcHBlZCkge1xuICAgICAgICBzZXNzaW9uU3RyZWFtaW5nVGV4dC5jbGVhcihzZXNzaW9uSWQpXG4gICAgICAgIHN0b3JlKCkucGF0Y2hNZXRhKHNlc3Npb25JZCwgeyBpc0xvYWRpbmc6IGZhbHNlLCBpc1dyaXRpbmc6IGZhbHNlIH0pXG4gICAgICAgIHN0b3JlKCkuc2V0QWN0aXZpdHkoc2Vzc2lvbklkLCBudWxsKVxuICAgICAgICBzdG9yZSgpLnNldFN0YXR1cyhzZXNzaW9uSWQsICdlcnJvcicpXG4gICAgICAgIGNhbGxiYWNrcy5vbkVycm9yPy4oKVxuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICBhY3RpdmVTdHJlYW1zLmRlbGV0ZShzZXNzaW9uSWQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHsgc3RhcnRlZDogdHJ1ZSB9XG4gIH0sXG5cbiAgLyoqIFJlc3VtZSBISVRMIChgY29udGludWUtdGhyZWFkYCkga2V5ZWQgcG9yIHNlc3Npb25JZCDigJQgbWlzbW8gbW90b3IgcXVlIG9yY2hlc3RyYXRvci4gKi9cbiAgYXN5bmMgc3RhcnRDb250aW51ZVN0cmVhbShwYXJhbXM6IFN0YXJ0Q29udGludWVTdHJlYW1QYXJhbXMpOiBQcm9taXNlPFN0YXJ0U3RyZWFtUmVzdWx0PiB7XG4gICAgZW5zdXJlU2Vzc2lvbk5vdGlmaWNhdGlvbnNJbml0aWFsaXplZCgpXG5cbiAgICBjb25zdCB7IHNlc3Npb25JZCwgcGxhY2Vob2xkZXJJZCwgY29udGludWVSZXF1ZXN0LCBjYWxsYmFja3MsIHQsIGhpdGxFeGVjdXRpb25Db250ZXh0LCBhZ2VudElkLCBhZ2VudE5hbWUgfSA9IHBhcmFtc1xuXG4gICAgaWYgKGlzU3RyZWFtQWN0aXZlKHNlc3Npb25JZCkpIHtcbiAgICAgIHJldHVybiB7IHN0YXJ0ZWQ6IGZhbHNlLCByZWFzb246ICdhbHJlYWR5X2FjdGl2ZScgfVxuICAgIH1cbiAgICBpZiAoZ2V0QWN0aXZlU3RyZWFtQ291bnQoKSA+PSBNQVhfQ09OQ1VSUkVOVF9TVFJFQU1TKSB7XG4gICAgICByZXR1cm4geyBzdGFydGVkOiBmYWxzZSwgcmVhc29uOiAnbGltaXQnIH1cbiAgICB9XG5cbiAgICBpZiAoaGl0bEV4ZWN1dGlvbkNvbnRleHQpIHtcbiAgICAgIHNlc3Npb25IaXRsQ29udGV4dC5zZXQoc2Vzc2lvbklkLCBoaXRsRXhlY3V0aW9uQ29udGV4dClcbiAgICB9XG5cbiAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpXG4gICAgY29uc3QgYWN0aXZlOiBBY3RpdmVTdHJlYW0gPSB7IHNlc3Npb25JZCwgY29udHJvbGxlciwgaXNTdG9wcGVkOiBmYWxzZSB9XG4gICAgYWN0aXZlU3RyZWFtcy5zZXQoc2Vzc2lvbklkLCBhY3RpdmUpXG5cbiAgICBzdG9yZSgpLmVuc3VyZVNlc3Npb24oc2Vzc2lvbklkKVxuICAgIHN0b3JlKCkucGF0Y2hNZXRhKHNlc3Npb25JZCwge1xuICAgICAgcGxhY2Vob2xkZXJJZCxcbiAgICAgIGVycm9yOiBudWxsLFxuICAgICAgaXNMb2FkaW5nOiB0cnVlLFxuICAgICAgaXNXcml0aW5nOiBmYWxzZSxcbiAgICAgIC4uLihhZ2VudElkICE9IG51bGwgPyB7IGFnZW50SWQgfSA6IHt9KSxcbiAgICAgIC4uLihhZ2VudE5hbWUgIT0gbnVsbCA/IHsgYWdlbnROYW1lIH0gOiB7fSksXG4gICAgfSlcbiAgICBzdG9yZSgpLnNldFN0YXR1cyhzZXNzaW9uSWQsICd0aGlua2luZycpXG4gICAgc2Vzc2lvblN0cmVhbWluZ1RleHQuc3RhcnQoc2Vzc2lvbklkLCBwbGFjZWhvbGRlcklkKVxuICAgIHN0b3JlKCkuc2V0QWN0aXZpdHkoXG4gICAgICBzZXNzaW9uSWQsXG4gICAgICByZXNvbHZlSW5pdGlhbEhpdGxTdHJlYW1BY3Rpdml0eSh0LCBoaXRsRXhlY3V0aW9uQ29udGV4dCA/PyBzZXNzaW9uSGl0bENvbnRleHQuZ2V0KHNlc3Npb25JZCkgPz8gdW5kZWZpbmVkKVxuICAgIClcblxuICAgIGNvbnN0IHNzZVBhcmFtczogU3RhcnRTdHJlYW1QYXJhbXMgPSB7XG4gICAgICBzZXNzaW9uSWQsXG4gICAgICBwbGFjZWhvbGRlcklkLFxuICAgICAgcmVxdWVzdDoge30gYXMgT3JjaGVzdHJhdG9yUmVxdWVzdCxcbiAgICAgIGNhbGxiYWNrcyxcbiAgICAgIHQsXG4gICAgICBoaXRsRXhlY3V0aW9uQ29udGV4dDogaGl0bEV4ZWN1dGlvbkNvbnRleHQgPz8gc2Vzc2lvbkhpdGxDb250ZXh0LmdldChzZXNzaW9uSWQpLFxuICAgICAgYWdlbnRJZCxcbiAgICAgIGFnZW50TmFtZSxcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBtYWlhLk9yY2hlc3RyYXRvci5jb250aW51ZVRocmVhZChjb250aW51ZVJlcXVlc3QsIGNvbnRyb2xsZXIuc2lnbmFsKVxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbnRpbnVlLXRocmVhZCBmYWlsZWQ6ICR7cmVzcG9uc2Uuc3RhdHVzfWApXG4gICAgICB9XG4gICAgICBhd2FpdCBwYXJzZVNlc3Npb25TU0UocmVzcG9uc2UsIGFjdGl2ZSwgc3NlUGFyYW1zKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoIWFjdGl2ZS5pc1N0b3BwZWQpIHtcbiAgICAgICAgc2Vzc2lvblN0cmVhbWluZ1RleHQuY2xlYXIoc2Vzc2lvbklkKVxuICAgICAgICBzdG9yZSgpLnBhdGNoTWV0YShzZXNzaW9uSWQsIHsgaXNMb2FkaW5nOiBmYWxzZSwgaXNXcml0aW5nOiBmYWxzZSB9KVxuICAgICAgICBzdG9yZSgpLnNldEFjdGl2aXR5KHNlc3Npb25JZCwgbnVsbClcbiAgICAgICAgc3RvcmUoKS5zZXRTdGF0dXMoc2Vzc2lvbklkLCAnZXJyb3InKVxuICAgICAgICBjYWxsYmFja3Mub25FcnJvcj8uKClcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgYWN0aXZlU3RyZWFtcy5kZWxldGUoc2Vzc2lvbklkKVxuICAgICAgc2Vzc2lvbkhpdGxDb250ZXh0LmNsZWFyKHNlc3Npb25JZClcbiAgICB9XG5cbiAgICByZXR1cm4geyBzdGFydGVkOiB0cnVlIH1cbiAgfSxcblxuICAvKiogUmVnZW5lcmEgbGEgcmVzcHVlc3RhIGRlIHVuIHR1cm5vIChgcmV0cnlfY29tcGxldGlvbmApIOKAlCBtaXNtbyBtb3RvciBTU0UgcXVlIG9yY2hlc3RyYXRvci4gKi9cbiAgYXN5bmMgc3RhcnRSZXRyeVN0cmVhbShwYXJhbXM6IFN0YXJ0UmV0cnlTdHJlYW1QYXJhbXMpOiBQcm9taXNlPFN0YXJ0U3RyZWFtUmVzdWx0PiB7XG4gICAgZW5zdXJlU2Vzc2lvbk5vdGlmaWNhdGlvbnNJbml0aWFsaXplZCgpXG5cbiAgICBjb25zdCB7IHNlc3Npb25JZCwgcGxhY2Vob2xkZXJJZCwgcmV0cnlSZXF1ZXN0LCBjYWxsYmFja3MsIHQsIGFjdGl2aXR5T3B0aW9ucywgYWdlbnRJZCwgYWdlbnROYW1lIH0gPSBwYXJhbXNcblxuICAgIGlmIChpc1N0cmVhbUFjdGl2ZShzZXNzaW9uSWQpKSB7XG4gICAgICByZXR1cm4geyBzdGFydGVkOiBmYWxzZSwgcmVhc29uOiAnYWxyZWFkeV9hY3RpdmUnIH1cbiAgICB9XG4gICAgaWYgKGdldEFjdGl2ZVN0cmVhbUNvdW50KCkgPj0gTUFYX0NPTkNVUlJFTlRfU1RSRUFNUykge1xuICAgICAgcmV0dXJuIHsgc3RhcnRlZDogZmFsc2UsIHJlYXNvbjogJ2xpbWl0JyB9XG4gICAgfVxuXG4gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKVxuICAgIGNvbnN0IGFjdGl2ZTogQWN0aXZlU3RyZWFtID0geyBzZXNzaW9uSWQsIGNvbnRyb2xsZXIsIGlzU3RvcHBlZDogZmFsc2UgfVxuICAgIGFjdGl2ZVN0cmVhbXMuc2V0KHNlc3Npb25JZCwgYWN0aXZlKVxuXG4gICAgc3RvcmUoKS5lbnN1cmVTZXNzaW9uKHNlc3Npb25JZClcbiAgICBzdG9yZSgpLnBhdGNoTWV0YShzZXNzaW9uSWQsIHtcbiAgICAgIHBsYWNlaG9sZGVySWQsXG4gICAgICBlcnJvcjogbnVsbCxcbiAgICAgIGlzTG9hZGluZzogdHJ1ZSxcbiAgICAgIGlzV3JpdGluZzogZmFsc2UsXG4gICAgICAuLi4oYWdlbnRJZCAhPSBudWxsID8geyBhZ2VudElkIH0gOiB7fSksXG4gICAgICAuLi4oYWdlbnROYW1lICE9IG51bGwgPyB7IGFnZW50TmFtZSB9IDoge30pLFxuICAgIH0pXG4gICAgc3RvcmUoKS5zZXRTdGF0dXMoc2Vzc2lvbklkLCAndGhpbmtpbmcnKVxuICAgIHNlc3Npb25TdHJlYW1pbmdUZXh0LnN0YXJ0KHNlc3Npb25JZCwgcGxhY2Vob2xkZXJJZClcbiAgICBzdG9yZSgpLnNldEFjdGl2aXR5KHNlc3Npb25JZCwgZ2V0SW5pdGlhbFN0cmVhbUFjdGl2aXR5KHQsIGFjdGl2aXR5T3B0aW9ucyA/PyB7fSkpXG5cbiAgICBjb25zdCBzc2VQYXJhbXM6IFN0YXJ0U3RyZWFtUGFyYW1zID0ge1xuICAgICAgc2Vzc2lvbklkLFxuICAgICAgcGxhY2Vob2xkZXJJZCxcbiAgICAgIHJlcXVlc3Q6IHt9IGFzIE9yY2hlc3RyYXRvclJlcXVlc3QsXG4gICAgICBjYWxsYmFja3MsXG4gICAgICB0LFxuICAgICAgYWN0aXZpdHlPcHRpb25zLFxuICAgICAgYWdlbnRJZCxcbiAgICAgIGFnZW50TmFtZSxcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBtYWlhLk9yY2hlc3RyYXRvci5yZXRyeUNvbXBsZXRpb24ocmV0cnlSZXF1ZXN0LCBjb250cm9sbGVyLnNpZ25hbClcbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICAgICAgbGV0IGRldGFpbDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSAoYXdhaXQgcmVzcG9uc2UuanNvbigpKSBhcyB7IGRldGFpbD86IHN0cmluZyB9XG4gICAgICAgICAgICBkZXRhaWwgPSB0eXBlb2YgZGF0YS5kZXRhaWwgPT09ICdzdHJpbmcnID8gZGF0YS5kZXRhaWwgOiB1bmRlZmluZWRcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIGRldGFpbCA9IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZGV0YWlsID09PSAnVHVybiBub3QgZm91bmQnKSB7XG4gICAgICAgICAgICBzZXNzaW9uU3RyZWFtaW5nVGV4dC5jbGVhcihzZXNzaW9uSWQpXG4gICAgICAgICAgICBzdG9yZSgpLnBhdGNoTWV0YShzZXNzaW9uSWQsIHsgaXNMb2FkaW5nOiBmYWxzZSwgaXNXcml0aW5nOiBmYWxzZSwgcGxhY2Vob2xkZXJJZDogbnVsbCB9KVxuICAgICAgICAgICAgc3RvcmUoKS5zZXRBY3Rpdml0eShzZXNzaW9uSWQsIG51bGwpXG4gICAgICAgICAgICBzdG9yZSgpLnNldFN0YXR1cyhzZXNzaW9uSWQsICdpZGxlJylcbiAgICAgICAgICAgIGFjdGl2ZVN0cmVhbXMuZGVsZXRlKHNlc3Npb25JZClcbiAgICAgICAgICAgIHJldHVybiB7IHN0YXJ0ZWQ6IGZhbHNlLCByZWFzb246ICd0dXJuX25vdF9mb3VuZCcgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHJldHJ5X2NvbXBsZXRpb24gZmFpbGVkOiAke3Jlc3BvbnNlLnN0YXR1c31gKVxuICAgICAgfVxuICAgICAgYXdhaXQgcGFyc2VTZXNzaW9uU1NFKHJlc3BvbnNlLCBhY3RpdmUsIHNzZVBhcmFtcylcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKCFhY3RpdmUuaXNTdG9wcGVkKSB7XG4gICAgICAgIHNlc3Npb25TdHJlYW1pbmdUZXh0LmNsZWFyKHNlc3Npb25JZClcbiAgICAgICAgc3RvcmUoKS5wYXRjaE1ldGEoc2Vzc2lvbklkLCB7IGlzTG9hZGluZzogZmFsc2UsIGlzV3JpdGluZzogZmFsc2UgfSlcbiAgICAgICAgc3RvcmUoKS5zZXRBY3Rpdml0eShzZXNzaW9uSWQsIG51bGwpXG4gICAgICAgIHN0b3JlKCkuc2V0U3RhdHVzKHNlc3Npb25JZCwgJ2Vycm9yJylcbiAgICAgICAgY2FsbGJhY2tzLm9uRXJyb3I/LigpXG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGFjdGl2ZVN0cmVhbXMuZGVsZXRlKHNlc3Npb25JZClcbiAgICB9XG5cbiAgICByZXR1cm4geyBzdGFydGVkOiB0cnVlIH1cbiAgfSxcblxuICAvKiogQ2FuY2VsYWNpw7NuIGV4cGzDrWNpdGEgZGVsIHVzdWFyaW8gKG1lbnNhamUgXCJjYW5jZWxhZG9cIikuICovXG4gIHN0b3BTdHJlYW0oc2Vzc2lvbklkOiBzdHJpbmcsIGNhbGxiYWNrcz86IFNlc3Npb25TdHJlYW1DYWxsYmFja3MpIHtcbiAgICBjb25zdCBhY3RpdmUgPSBhY3RpdmVTdHJlYW1zLmdldChzZXNzaW9uSWQpXG4gICAgaWYgKCFhY3RpdmUpIHJldHVyblxuICAgIGFjdGl2ZS5pc1N0b3BwZWQgPSB0cnVlXG4gICAgYWN0aXZlLmNvbnRyb2xsZXIuYWJvcnQoKVxuICAgIGFjdGl2ZVN0cmVhbXMuZGVsZXRlKHNlc3Npb25JZClcbiAgICAvLyBFbCBwYXJjaWFsIHNlIHJlc2NhdGEgYW50ZXMgZGUgbGltcGlhcjogZWwgYmFja2VuZCBsbyBwZXJzaXN0ZSwgcGVybyBzaSBubyBsb1xuICAgIC8vIHBhc2Ftb3MgYWwgY2FsbGJhY2sgZGVzYXBhcmVjZSBkZSBwYW50YWxsYSBoYXN0YSBlbCBwcsOzeGltbyBmZXRjaCBkZSBsYSBzZXNpw7NuLlxuICAgIGNvbnN0IHBhcnRpYWxUZXh0ID0gc2Vzc2lvblN0cmVhbWluZ1RleHQuZ2V0U25hcHNob3Qoc2Vzc2lvbklkKS50ZXh0XG4gICAgc2Vzc2lvblN0cmVhbWluZ1RleHQuY2xlYXIoc2Vzc2lvbklkKVxuICAgIHN0b3JlKCkucGF0Y2hNZXRhKHNlc3Npb25JZCwgeyBpc0xvYWRpbmc6IGZhbHNlLCBpc1dyaXRpbmc6IGZhbHNlIH0pXG4gICAgc3RvcmUoKS5zZXRBY3Rpdml0eShzZXNzaW9uSWQsIG51bGwpXG4gICAgc3RvcmUoKS5zZXRTdGF0dXMoc2Vzc2lvbklkLCAnY2FuY2VsbGVkJylcbiAgICBjYWxsYmFja3M/Lm9uU3RvcD8uKHBhcnRpYWxUZXh0KVxuICB9LFxuXG4gIC8qKiBBYm9ydGEgc2luIG1hcmNhciBcImNhbmNlbGFkb1wiICh1c28gaW50ZXJubyAvIGxpbXBpZXphKS4gKi9cbiAgYWJvcnRTaWxlbnRseShzZXNzaW9uSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGFjdGl2ZSA9IGFjdGl2ZVN0cmVhbXMuZ2V0KHNlc3Npb25JZClcbiAgICBpZiAoIWFjdGl2ZSkgcmV0dXJuXG4gICAgYWN0aXZlLmlzU3RvcHBlZCA9IHRydWVcbiAgICBhY3RpdmUuY29udHJvbGxlci5hYm9ydCgpXG4gICAgYWN0aXZlU3RyZWFtcy5kZWxldGUoc2Vzc2lvbklkKVxuICAgIHNlc3Npb25TdHJlYW1pbmdUZXh0LmNsZWFyKHNlc3Npb25JZClcbiAgICBzdG9yZSgpLnBhdGNoTWV0YShzZXNzaW9uSWQsIHsgaXNMb2FkaW5nOiBmYWxzZSwgaXNXcml0aW5nOiBmYWxzZSB9KVxuICAgIHN0b3JlKCkuc2V0QWN0aXZpdHkoc2Vzc2lvbklkLCBudWxsKVxuICAgIGlmIChzdG9yZSgpLmdldE1ldGEoc2Vzc2lvbklkKT8uc3RhdHVzICE9PSAnY29tcGxldGUnKSB7XG4gICAgICBzdG9yZSgpLnNldFN0YXR1cyhzZXNzaW9uSWQsICdpZGxlJylcbiAgICB9XG4gIH0sXG5cbiAgYWJvcnRBbGwoKSB7XG4gICAgQXJyYXkuZnJvbShhY3RpdmVTdHJlYW1zLmtleXMoKSkuZm9yRWFjaChzZXNzaW9uSWQgPT4gdGhpcy5hYm9ydFNpbGVudGx5KHNlc3Npb25JZCkpXG4gIH0sXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU9BLElBQUksTUFBTSxxQkFBcUI7QUFFdEMsU0FDRUMsd0JBQXdCLEVBQ3hCQyx5QkFBeUIsRUFDekJDLHdCQUF3QixFQUN4QkMsNkJBQTZCLEVBQzdCQyxnQ0FBZ0MsUUFDM0Isb0NBQW9DO0FBRTNDLFNBQVNDLHdCQUF3QixFQUFFQyxnQkFBZ0IsUUFBUSw4QkFBOEI7QUFDekYsU0FBU0Msb0JBQW9CLFFBQVEsd0JBQXdCO0FBQzdELFNBQVNDLGdCQUFnQixRQUFRLG9CQUFvQjtBQUNyRCxTQUFTQyxxQ0FBcUMsUUFBUSx3QkFBd0I7QUFDOUUsU0FBU0Msa0JBQWtCLFFBQVEsc0JBQXNCOztBQU96RDs7QUFxREE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLHNCQUFzQixHQUFHLENBQUM7QUFFdkMsSUFBTUMsa0JBQWtCLEdBQUcsRUFBRTtBQUU3QixJQUFNQyxhQUFhLEdBQUcsSUFBSUMsR0FBRyxDQUF1QixDQUFDO0FBRXJELElBQU1DLEtBQUssR0FBRyxTQUFSQSxLQUFLQSxDQUFBO0VBQUEsT0FBU1AsZ0JBQWdCLENBQUNRLFFBQVEsQ0FBQyxDQUFDO0FBQUE7QUFFL0MsSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFJQyxTQUFpQjtFQUFBLE9BQWNMLGFBQWEsQ0FBQ00sR0FBRyxDQUFDRCxTQUFTLENBQUM7QUFBQTtBQUVuRixJQUFNRSxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFBO0VBQUEsT0FBaUJQLGFBQWEsQ0FBQ1EsSUFBSTtBQUFBO0FBRTdELElBQU1DLGVBQWU7RUFBQSxJQUFBQyxJQUFBLEdBQUFDLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsQ0FBRyxTQUFBQyxRQUFPQyxRQUFrQixFQUFFQyxNQUFvQixFQUFFQyxNQUF5QjtJQUFBLElBQUFDLHFCQUFBLEVBQUFDLGNBQUEsRUFBQUMsV0FBQSxFQUFBQyxZQUFBLEVBQUFDLGtCQUFBLEVBQUFDLFlBQUEsRUFBQUMsWUFBQTtJQUFBLElBQUFuQixTQUFBLEVBQUFvQixhQUFBLEVBQUFDLFNBQUEsRUFBQUMsQ0FBQSxFQUFBQyxvQkFBQSxFQUFBQyxjQUFBLEVBQUFDLGFBQUEsRUFBQUMsYUFBQSxFQUFBQyxhQUFBLEVBQUFDLFlBQUEsRUFBQUMsTUFBQSxFQUFBQyxPQUFBLEVBQUFDLE1BQUEsRUFBQUMsa0JBQUEsRUFBQUMsaUJBQUEsRUFBQUMsb0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsbUJBQUEsRUFBQUMsa0JBQUEsRUFBQUMsSUFBQSxFQUFBQyxLQUFBLEVBQUFDLEtBQUEsRUFBQUMsU0FBQSxFQUFBQyxLQUFBLEVBQUFDLElBQUEsRUFBQUMsV0FBQSxFQUFBQyxZQUFBLEVBQUFDLFNBQUEsRUFBQUMsUUFBQSxFQUFBQyxTQUFBLEVBQUFDLE9BQUEsRUFBQUMsSUFBQSxFQUFBQyxLQUFBLEVBQUFDLE1BQUEsRUFBQUMscUJBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsRUFBQSxFQUFBQyxHQUFBLEVBQUFDLEdBQUE7SUFBQSxPQUFBbEQsbUJBQUEsQ0FBQW1ELElBQUEsV0FBQUMsUUFBQTtNQUFBLGtCQUFBQSxRQUFBLENBQUFDLElBQUEsR0FBQUQsUUFBQSxDQUFBRSxJQUFBO1FBQUE7VUFDeEY3RCxTQUFTLEdBQWtDWSxNQUFNLENBQWpEWixTQUFTLEVBQUVvQixhQUFhLEdBQW1CUixNQUFNLENBQXRDUSxhQUFhLEVBQUVDLFNBQVMsR0FBUVQsTUFBTSxDQUF2QlMsU0FBUyxFQUFFQyxDQUFDLEdBQUtWLE1BQU0sQ0FBWlUsQ0FBQztVQUN4Q0Msb0JBQW9CLElBQUFWLHFCQUFBLEdBQUdELE1BQU0sQ0FBQ1csb0JBQW9CLGNBQUFWLHFCQUFBLGNBQUFBLHFCQUFBLEdBQUlyQixrQkFBa0IsQ0FBQ3NFLEdBQUcsQ0FBQzlELFNBQVMsQ0FBQztVQUV6RndCLGNBQTZCLEdBQUcsSUFBSTtVQUNwQ0MsYUFBNEIsR0FBRyxJQUFJO1VBRWpDQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUlxQyxPQUFlLEVBQUs7WUFBQSxJQUFBQyxxQkFBQTtZQUN6QzNFLG9CQUFvQixDQUFDNEUsT0FBTyxDQUFDakUsU0FBUyxFQUFFb0IsYUFBYSxFQUFFMkMsT0FBTyxDQUFDO1lBQy9ELENBQUFDLHFCQUFBLEdBQUEzQyxTQUFTLENBQUM2QyxjQUFjLGNBQUFGLHFCQUFBLGVBQXhCQSxxQkFBQSxDQUFBRyxJQUFBLENBQUE5QyxTQUFTLEVBQWtCMEMsT0FBTyxDQUFDO1VBQ3JDLENBQUM7VUFFS3BDLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBSW9DLE9BQWUsRUFBSztZQUN6Q3ZDLGNBQWMsR0FBR3VDLE9BQU87WUFDeEIsSUFBSXRDLGFBQWEsSUFBSSxJQUFJLEVBQUU7WUFDM0JBLGFBQWEsR0FBRzJDLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDLFlBQU07Y0FDdEM1QyxhQUFhLEdBQUcsSUFBSTtjQUNwQixJQUFJRCxjQUFjLElBQUksSUFBSSxFQUFFO2dCQUMxQixJQUFNOEMsTUFBTSxHQUFHOUMsY0FBYztnQkFDN0JBLGNBQWMsR0FBRyxJQUFJO2dCQUNyQkUsYUFBYSxDQUFDNEMsTUFBTSxDQUFDO2NBQ3ZCO1lBQ0YsQ0FBQyxFQUFFNUUsa0JBQWtCLENBQUM7VUFDeEIsQ0FBQztVQUVLa0MsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFBUztZQUN6QixJQUFJSCxhQUFhLElBQUksSUFBSSxFQUFFO2NBQ3pCMkMsTUFBTSxDQUFDRyxZQUFZLENBQUM5QyxhQUFhLENBQUM7Y0FDbENBLGFBQWEsR0FBRyxJQUFJO1lBQ3RCO1lBQ0EsSUFBSUQsY0FBYyxJQUFJLElBQUksRUFBRTtjQUMxQixJQUFNOEMsTUFBTSxHQUFHOUMsY0FBYztjQUM3QkEsY0FBYyxHQUFHLElBQUk7Y0FDckJFLGFBQWEsQ0FBQzRDLE1BQU0sQ0FBQztZQUN2QjtVQUNGLENBQUM7VUFFS3pDLE1BQU0sSUFBQWYsY0FBQSxHQUFHSixRQUFRLENBQUM4RCxJQUFJLGNBQUExRCxjQUFBLHVCQUFiQSxjQUFBLENBQWUyRCxTQUFTLENBQUMsQ0FBQztVQUFBLElBQ3BDNUMsTUFBTTtZQUFBOEIsUUFBQSxDQUFBRSxJQUFBO1lBQUE7VUFBQTtVQUFBLE1BQ0gsSUFBSWEsS0FBSyxDQUFDLHFCQUFxQixDQUFDO1FBQUE7VUFHbEM1QyxPQUFPLEdBQUcsSUFBSTZDLFdBQVcsQ0FBQyxDQUFDO1VBQzdCNUMsTUFBTSxHQUFHLEVBQUU7VUFDWEMsa0JBQWtCLEdBQUcsRUFBRTtVQUN2QkMsaUJBQWlCLEdBQUcsS0FBSztVQUV2QkMsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUFvQkEsQ0FBQSxFQUFTO1lBQUEsSUFBQTBDLHFCQUFBO1lBQ2pDLElBQUkzQyxpQkFBaUIsRUFBRTtZQUN2QkEsaUJBQWlCLEdBQUcsSUFBSTtZQUN4QnBDLEtBQUssQ0FBQyxDQUFDLENBQUNnRixTQUFTLENBQUM3RSxTQUFTLEVBQUU7Y0FBRThFLFNBQVMsRUFBRSxJQUFJO2NBQUVDLFNBQVMsRUFBRTtZQUFLLENBQUMsQ0FBQztZQUNsRWxGLEtBQUssQ0FBQyxDQUFDLENBQUNtRixTQUFTLENBQUNoRixTQUFTLEVBQUUsU0FBUyxDQUFDO1lBQ3ZDSCxLQUFLLENBQUMsQ0FBQyxDQUFDb0YsV0FBVyxDQUFDakYsU0FBUyxFQUFFaEIsd0JBQXdCLENBQUNzQyxDQUFDLENBQUMsQ0FBQztZQUMzRCxDQUFBc0QscUJBQUEsR0FBQXZELFNBQVMsQ0FBQzZELGNBQWMsY0FBQU4scUJBQUEsZUFBeEJBLHFCQUFBLENBQUFULElBQUEsQ0FBQTlDLFNBQTJCLENBQUM7VUFDOUIsQ0FBQztVQUVLYyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFJZ0IsS0FBYSxFQUFLO1lBQzFDLElBQUksQ0FBQ0EsS0FBSyxFQUFFO1lBQ1puQixrQkFBa0IsR0FBRzVDLGdCQUFnQixDQUFDNEMsa0JBQWtCLEVBQUVtQixLQUFLLENBQUM7WUFDaEV4QixhQUFhLENBQUNLLGtCQUFrQixDQUFDO1VBQ25DLENBQUM7VUFFS0ksbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSStDLE9BQWdDLEVBQUs7WUFBQSxJQUFBQyxpQkFBQSxFQUFBQyxxQkFBQSxFQUFBQyxxQkFBQTtZQUNoRSxJQUFNQyxZQUFZLEdBQUlKLE9BQU8sQ0FBQ3BCLE9BQU8sSUFBZS9CLGtCQUFrQjtZQUN0RSxJQUFNd0QsT0FBTyxHQUFHTCxPQUFPLENBQUNLLE9BQU8sSUFBSSxJQUFJO1lBQ3ZDLElBQU1DLGVBQWUsR0FBSU4sT0FBTyxDQUFDTyxpQkFBaUIsSUFBZSxFQUFFO1lBQ25FLElBQU1DLFdBQVcsR0FBR0MsS0FBSyxDQUFDQyxPQUFPLENBQUNWLE9BQU8sQ0FBQ1EsV0FBVyxDQUFDLEdBQUdSLE9BQU8sQ0FBQ1EsV0FBVyxHQUFHLElBQUk7WUFDbkYsSUFBSUcsV0FBNEIsR0FBRyxJQUFJO1lBQ3ZDLElBQUlGLEtBQUssQ0FBQ0MsT0FBTyxDQUFDVixPQUFPLENBQUNZLGFBQWEsQ0FBQyxFQUFFO2NBQ3hDRCxXQUFXLEdBQUdYLE9BQU8sQ0FBQ1ksYUFBeUI7WUFDakQsQ0FBQyxNQUFNLElBQUlILEtBQUssQ0FBQ0MsT0FBTyxDQUFDVixPQUFPLENBQUNXLFdBQVcsQ0FBQyxFQUFFO2NBQzdDQSxXQUFXLEdBQUdYLE9BQU8sQ0FBQ1csV0FBdUI7WUFDL0M7WUFDQSxJQUFNRSxVQUFVLElBQUFaLGlCQUFBLEdBQUdELE9BQU8sQ0FBQ2MsUUFBUSxjQUFBYixpQkFBQSxjQUFBQSxpQkFBQSxHQUFJRCxPQUFPLENBQUNlLE9BQU87WUFDdEQsSUFBTUMsZ0JBQWdCLEdBQUdILFVBQVUsSUFBSSxJQUFJLElBQUlJLE1BQU0sQ0FBQ0osVUFBVSxDQUFDLENBQUNLLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHRCxNQUFNLENBQUNKLFVBQVUsQ0FBQyxDQUFDSyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUk7WUFDbEgsSUFBTUMsV0FBVyxHQUFHbkIsT0FBTyxDQUFDb0IsUUFBNkQ7WUFDekYsSUFBTUMsZUFBZSxJQUFBbkIscUJBQUEsR0FBR2lCLFdBQVcsYUFBWEEsV0FBVyx1QkFBWEEsV0FBVyxDQUFFRyxnQkFBZ0IsY0FBQXBCLHFCQUFBLGNBQUFBLHFCQUFBLEdBQUksSUFBSTtZQUU3RHpELFlBQVksQ0FBQyxDQUFDO1lBQ2R2QyxvQkFBb0IsQ0FBQ3FILEtBQUssQ0FBQzFHLFNBQVMsQ0FBQztZQUNyQ0gsS0FBSyxDQUFDLENBQUMsQ0FBQ2dGLFNBQVMsQ0FBQzdFLFNBQVMsRUFBRTtjQUFFOEUsU0FBUyxFQUFFLEtBQUs7Y0FBRUMsU0FBUyxFQUFFO1lBQU0sQ0FBQyxDQUFDO1lBQ3BFbEYsS0FBSyxDQUFDLENBQUMsQ0FBQ29GLFdBQVcsQ0FBQ2pGLFNBQVMsRUFBRSxJQUFJLENBQUM7WUFDcENILEtBQUssQ0FBQyxDQUFDLENBQUNtRixTQUFTLENBQUNoRixTQUFTLEVBQUUsVUFBVSxDQUFDO1lBRXhDLElBQU0yRyxhQUFtQyxHQUFHO2NBQzFDNUMsT0FBTyxFQUFFd0IsWUFBWTtjQUNyQkMsT0FBTyxFQUFQQSxPQUFPO2NBQ1BDLGVBQWUsRUFBZkEsZUFBZTtjQUNmRSxXQUFXLEVBQVhBLFdBQVc7Y0FDWEcsV0FBVyxFQUFYQSxXQUFXO2NBQ1hLLGdCQUFnQixFQUFoQkEsZ0JBQWdCO2NBQ2hCSyxlQUFlLEVBQWZBO1lBQ0YsQ0FBQztZQUNELENBQUFsQixxQkFBQSxHQUFBakUsU0FBUyxDQUFDdUYsY0FBYyxjQUFBdEIscUJBQUEsZUFBeEJBLHFCQUFBLENBQUFuQixJQUFBLENBQUE5QyxTQUFTLEVBQWtCc0YsYUFBYSxDQUFDO1VBQzNDLENBQUM7VUFBQWhELFFBQUEsQ0FBQUMsSUFBQTtRQUFBO1VBQUEsS0FHUSxJQUFJO1lBQUFELFFBQUEsQ0FBQUUsSUFBQTtZQUFBO1VBQUE7VUFBQSxLQUNMbEQsTUFBTSxDQUFDa0csU0FBUztZQUFBbEQsUUFBQSxDQUFBRSxJQUFBO1lBQUE7VUFBQTtVQUNsQmhDLE1BQU0sQ0FBQ2lGLE1BQU0sQ0FBQyxDQUFDO1VBQUEsT0FBQW5ELFFBQUEsQ0FBQW9ELE1BQUE7UUFBQTtVQUFBcEQsUUFBQSxDQUFBRSxJQUFBO1VBQUEsT0FJYWhDLE1BQU0sQ0FBQ21GLElBQUksQ0FBQyxDQUFDO1FBQUE7VUFBQTNFLGtCQUFBLEdBQUFzQixRQUFBLENBQUFzRCxJQUFBO1VBQW5DM0UsSUFBSSxHQUFBRCxrQkFBQSxDQUFKQyxJQUFJO1VBQUVDLEtBQUssR0FBQUYsa0JBQUEsQ0FBTEUsS0FBSztVQUFBLEtBQ2ZELElBQUk7WUFBQXFCLFFBQUEsQ0FBQUUsSUFBQTtZQUFBO1VBQUE7VUFBQSxPQUFBRixRQUFBLENBQUFvRCxNQUFBO1FBQUE7VUFBQSxLQUVKcEcsTUFBTSxDQUFDa0csU0FBUztZQUFBbEQsUUFBQSxDQUFBRSxJQUFBO1lBQUE7VUFBQTtVQUNsQmhDLE1BQU0sQ0FBQ2lGLE1BQU0sQ0FBQyxDQUFDO1VBQUEsT0FBQW5ELFFBQUEsQ0FBQW9ELE1BQUE7UUFBQTtVQUlqQmhGLE1BQU0sSUFBSUQsT0FBTyxDQUFDb0YsTUFBTSxDQUFDM0UsS0FBSyxFQUFFO1lBQUU0RSxNQUFNLEVBQUU7VUFBSyxDQUFDLENBQUM7VUFDM0MzRSxLQUFLLEdBQUdULE1BQU0sQ0FBQ3FGLEtBQUssQ0FBQyxNQUFNLENBQUM7VUFDbENyRixNQUFNLEdBQUdTLEtBQUssQ0FBQzZFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRTtVQUFBNUUsU0FBQSxHQUFBNkUsMEJBQUEsQ0FFUDlFLEtBQUs7VUFBQW1CLFFBQUEsQ0FBQUMsSUFBQTtVQUFBbkIsU0FBQSxDQUFBOEUsQ0FBQTtRQUFBO1VBQUEsS0FBQTdFLEtBQUEsR0FBQUQsU0FBQSxDQUFBK0UsQ0FBQSxJQUFBbEYsSUFBQTtZQUFBcUIsUUFBQSxDQUFBRSxJQUFBO1lBQUE7VUFBQTtVQUFibEIsSUFBSSxHQUFBRCxLQUFBLENBQUFILEtBQUE7VUFBQSxNQUNUSSxJQUFJLENBQUMwRCxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7WUFBQTFDLFFBQUEsQ0FBQUUsSUFBQTtZQUFBO1VBQUE7VUFBQSxPQUFBRixRQUFBLENBQUFvRCxNQUFBO1FBQUE7VUFBQW5FLFdBQUEsR0FFUUQsSUFBSSxDQUFDeUUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFBdkUsWUFBQSxHQUFBNEUsY0FBQSxDQUFBN0UsV0FBQSxNQUF2Q0UsU0FBUyxHQUFBRCxZQUFBLEtBQUVFLFFBQVEsR0FBQUYsWUFBQTtVQUFBLE1BQ3RCLENBQUNDLFNBQVMsSUFBSSxDQUFDQyxRQUFRO1lBQUFZLFFBQUEsQ0FBQUUsSUFBQTtZQUFBO1VBQUE7VUFBQSxPQUFBRixRQUFBLENBQUFvRCxNQUFBO1FBQUE7VUFFckIvRCxTQUFTLEdBQUdGLFNBQVMsQ0FBQzRFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUNyQixJQUFJLENBQUMsQ0FBQztVQUNuRHBELE9BQU8sR0FBR0YsUUFBUSxDQUFDMkUsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQ3JCLElBQUksQ0FBQyxDQUFDO1VBQUExQyxRQUFBLENBQUFDLElBQUE7VUFHN0NWLElBQUksR0FBR3lFLElBQUksQ0FBQ0MsS0FBSyxDQUFDM0UsT0FBTyxDQUFDO1VBQUFNLEVBQUEsR0FFeEJQLFNBQVM7VUFBQVcsUUFBQSxDQUFBRSxJQUFBLEdBQUFOLEVBQUEsS0FDVixVQUFVLFFBQUFBLEVBQUEsS0FRVixPQUFPLFFBQUFBLEVBQUEsS0FPUCxTQUFTLFFBQUFBLEVBQUEsS0FVVCxNQUFNLFFBQUFBLEVBQUEsS0FtQk4sVUFBVSxRQUFBQSxFQUFBLEtBSVYsbUJBQW1CLFFBQUFBLEVBQUEsS0FtQm5CLE9BQU87VUFBQTtRQUFBO1VBbEVWLElBQUksQ0FBQ3RCLGlCQUFpQixFQUFFO1lBQ3RCcEMsS0FBSyxDQUFDLENBQUMsQ0FBQ2dGLFNBQVMsQ0FBQzdFLFNBQVMsRUFBRTtjQUFFOEUsU0FBUyxFQUFFO1lBQUssQ0FBQyxDQUFDO1lBQ2pEakYsS0FBSyxDQUFDLENBQUMsQ0FBQ21GLFNBQVMsQ0FBQ2hGLFNBQVMsRUFBRSxVQUFVLENBQUM7WUFDeENILEtBQUssQ0FBQyxDQUFDLENBQUNvRixXQUFXLENBQUNqRixTQUFTLEVBQUU7Y0FBRTZILEtBQUssRUFBRSxVQUFVO2NBQUVDLE9BQU8sRUFBRS9JLHlCQUF5QixDQUFDLENBQUMsRUFBRXVDLENBQUM7WUFBRSxDQUFDLENBQUM7VUFDakc7VUFBQyxPQUFBcUMsUUFBQSxDQUFBb0QsTUFBQTtRQUFBO1VBSUs1RCxLQUFLLEdBQUcsT0FBT0QsSUFBSSxDQUFDYSxPQUFPLEtBQUssUUFBUSxHQUFHYixJQUFJLENBQUNhLE9BQU8sR0FBRyxFQUFFO1VBQ2xFN0Isb0JBQW9CLENBQUMsQ0FBQztVQUN0QkMsZ0JBQWdCLENBQUNnQixLQUFLLENBQUM7VUFBQSxPQUFBUSxRQUFBLENBQUFvRCxNQUFBO1FBQUE7VUFLakI1RCxNQUFLLEdBQUcsT0FBT0QsSUFBSSxDQUFDYSxPQUFPLEtBQUssUUFBUSxHQUFHYixJQUFJLENBQUNhLE9BQU8sR0FBRyxFQUFFO1VBQ2xFN0Isb0JBQW9CLENBQUMsQ0FBQztVQUN0QkMsZ0JBQWdCLENBQUNnQixNQUFLLENBQUM7VUFDdkIsSUFBSWhFLHdCQUF3QixDQUFDK0QsSUFBSSxDQUFDLEVBQUU7WUFDbENkLG1CQUFtQixDQUFDYyxJQUFJLENBQUM7VUFDM0I7VUFBQyxPQUFBUyxRQUFBLENBQUFvRCxNQUFBO1FBQUE7VUFLRCxJQUFJN0QsSUFBSSxDQUFDNkUsSUFBSSxLQUFLLGdCQUFnQixFQUFFO1lBQ2xDbEksS0FBSyxDQUFDLENBQUMsQ0FBQ2dGLFNBQVMsQ0FBQzdFLFNBQVMsRUFBRTtjQUFFOEUsU0FBUyxFQUFFO1lBQUssQ0FBQyxDQUFDO1lBQ2pEakYsS0FBSyxDQUFDLENBQUMsQ0FBQ21GLFNBQVMsQ0FBQ2hGLFNBQVMsRUFBRSxVQUFVLENBQUM7VUFDMUMsQ0FBQyxNQUFNLElBQUlrRCxJQUFJLENBQUM0RSxPQUFPLElBQUksT0FBTzVFLElBQUksQ0FBQzRFLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDM0RqSSxLQUFLLENBQUMsQ0FBQyxDQUFDZ0YsU0FBUyxDQUFDN0UsU0FBUyxFQUFFO2NBQUU4RSxTQUFTLEVBQUU7WUFBSyxDQUFDLENBQUM7WUFDakRqRixLQUFLLENBQUMsQ0FBQyxDQUFDbUYsU0FBUyxDQUFDaEYsU0FBUyxFQUFFLFVBQVUsQ0FBQztZQUN4Q0gsS0FBSyxDQUFDLENBQUMsQ0FBQ29GLFdBQVcsQ0FDakJqRixTQUFTLEVBQ1RmLDZCQUE2QixDQUMzQmlFLElBQUksQ0FBQzRFLE9BQU8sRUFDWnhHLENBQUMsRUFDREMsb0JBQW9CLGFBQXBCQSxvQkFBb0IsY0FBcEJBLG9CQUFvQixHQUFJeUcsU0FBUyxFQUNqQyxPQUFPOUUsSUFBSSxDQUFDK0UsU0FBUyxLQUFLLFFBQVEsR0FBRy9FLElBQUksQ0FBQytFLFNBQVMsR0FBR0QsU0FDeEQsQ0FDRixDQUFDO1VBQ0g7VUFBQyxPQUFBckUsUUFBQSxDQUFBb0QsTUFBQTtRQUFBO1VBSUQzRSxtQkFBbUIsQ0FBQ2MsSUFBSSxDQUFDO1VBQUEsT0FBQVMsUUFBQSxDQUFBb0QsTUFBQTtRQUFBO1VBSXpCbkYsWUFBWSxDQUFDLENBQUM7VUFDUjBCLGdCQUFnQixHQUFHSixJQUFJLENBQUNnRix3QkFBd0IsS0FBSyxJQUFJO1VBQy9EckksS0FBSyxDQUFDLENBQUMsQ0FBQ2dGLFNBQVMsQ0FBQzdFLFNBQVMsRUFBRTtZQUFFK0UsU0FBUyxFQUFFO1VBQU0sQ0FBQyxDQUFDO1VBQ2xELElBQUksQ0FBQ3pCLGdCQUFnQixFQUFFO1lBQ3JCekQsS0FBSyxDQUFDLENBQUMsQ0FBQ2dGLFNBQVMsQ0FBQzdFLFNBQVMsRUFBRTtjQUFFOEUsU0FBUyxFQUFFO1lBQU0sQ0FBQyxDQUFDO1lBQ2xEekYsb0JBQW9CLENBQUNxSCxLQUFLLENBQUMxRyxTQUFTLENBQUM7WUFDckNILEtBQUssQ0FBQyxDQUFDLENBQUNvRixXQUFXLENBQUNqRixTQUFTLEVBQUUsSUFBSSxDQUFDO1VBQ3RDO1VBQ0FILEtBQUssQ0FBQyxDQUFDLENBQUNtRixTQUFTLENBQUNoRixTQUFTLEVBQUUsbUJBQW1CLENBQUM7VUFDakQsQ0FBQXFELHFCQUFBLEdBQUFoQyxTQUFTLENBQUM4RyxrQkFBa0IsY0FBQTlFLHFCQUFBLGVBQTVCQSxxQkFBQSxDQUFBYyxJQUFBLENBQUE5QyxTQUFTLEVBQXNCNkIsSUFBSSxFQUFxQmxCLGtCQUFrQixDQUFDO1VBQzNFLElBQUlzQixnQkFBZ0IsSUFBSXNDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDM0MsSUFBSSxDQUFDa0YsZUFBZSxDQUFDLElBQUlsRixJQUFJLENBQUNrRixlQUFlLENBQUNDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDOUZ4SSxLQUFLLENBQUMsQ0FBQyxDQUFDZ0YsU0FBUyxDQUFDN0UsU0FBUyxFQUFFO2NBQUU4RSxTQUFTLEVBQUU7WUFBSyxDQUFDLENBQUM7WUFDakRqRixLQUFLLENBQUMsQ0FBQyxDQUFDbUYsU0FBUyxDQUFDaEYsU0FBUyxFQUFFLFVBQVUsQ0FBQztZQUN4Q0gsS0FBSyxDQUFDLENBQUMsQ0FBQ29GLFdBQVcsQ0FBQ2pGLFNBQVMsRUFBRWQsZ0NBQWdDLENBQUNvQyxDQUFDLEVBQUVDLG9CQUFvQixhQUFwQkEsb0JBQW9CLGNBQXBCQSxvQkFBb0IsR0FBSXlHLFNBQVMsQ0FBQyxDQUFDO1VBQ3hHO1VBQUMsT0FBQXJFLFFBQUEsQ0FBQW9ELE1BQUE7UUFBQTtVQUtEdUIsT0FBTyxDQUFDQyxLQUFLLENBQUMsWUFBWSxFQUFFckYsSUFBSSxDQUFDcUYsS0FBSyxDQUFDO1VBQ3ZDM0csWUFBWSxDQUFDLENBQUM7VUFDZHZDLG9CQUFvQixDQUFDcUgsS0FBSyxDQUFDMUcsU0FBUyxDQUFDO1VBQ3JDSCxLQUFLLENBQUMsQ0FBQyxDQUFDZ0YsU0FBUyxDQUFDN0UsU0FBUyxFQUFFO1lBQUU4RSxTQUFTLEVBQUUsS0FBSztZQUFFQyxTQUFTLEVBQUU7VUFBTSxDQUFDLENBQUM7VUFDcEVsRixLQUFLLENBQUMsQ0FBQyxDQUFDb0YsV0FBVyxDQUFDakYsU0FBUyxFQUFFLElBQUksQ0FBQztVQUNwQ0gsS0FBSyxDQUFDLENBQUMsQ0FBQzJJLFFBQVEsQ0FBQ3hJLFNBQVMsRUFBRTtZQUFFeUksSUFBSSxHQUFBMUgsV0FBQSxHQUFFbUMsSUFBSSxDQUFDcUYsS0FBSyxjQUFBeEgsV0FBQSx1QkFBVkEsV0FBQSxDQUFZMEgsSUFBSTtZQUFFWCxPQUFPLEdBQUE5RyxZQUFBLEdBQUVrQyxJQUFJLENBQUNxRixLQUFLLGNBQUF2SCxZQUFBLHVCQUFWQSxZQUFBLENBQVk4RztVQUFRLENBQUMsQ0FBQztVQUNyRmpJLEtBQUssQ0FBQyxDQUFDLENBQUNtRixTQUFTLENBQUNoRixTQUFTLEVBQUUsT0FBTyxDQUFDO1VBQ3JDLENBQUFpQixrQkFBQSxHQUFBSSxTQUFTLENBQUNxSCxPQUFPLGNBQUF6SCxrQkFBQSxlQUFqQkEsa0JBQUEsQ0FBQWtELElBQUEsQ0FBQTlDLFNBQVMsR0FBQUgsWUFBQSxHQUFXZ0MsSUFBSSxDQUFDcUYsS0FBSyxjQUFBckgsWUFBQSx1QkFBVkEsWUFBQSxDQUFZdUgsSUFBSSxHQUFBdEgsWUFBQSxHQUFFK0IsSUFBSSxDQUFDcUYsS0FBSyxjQUFBcEgsWUFBQSx1QkFBVkEsWUFBQSxDQUFZMkcsT0FBTyxDQUFDO1VBQUEsT0FBQW5FLFFBQUEsQ0FBQW9ELE1BQUE7UUFBQTtVQUkxRHVCLE9BQU8sQ0FBQ0ssSUFBSSxDQUFDLHlCQUF5QixFQUFFM0YsU0FBUyxDQUFDO1VBQUEsT0FBQVcsUUFBQSxDQUFBb0QsTUFBQTtRQUFBO1VBQUFwRCxRQUFBLENBQUFFLElBQUE7VUFBQTtRQUFBO1VBQUFGLFFBQUEsQ0FBQUMsSUFBQTtVQUFBSixHQUFBLEdBQUFHLFFBQUE7VUFJdEQyRSxPQUFPLENBQUNDLEtBQUssQ0FBQyx5QkFBeUIsRUFBQS9FLEdBQUEsRUFBY1AsT0FBTyxDQUFDO1FBQUE7VUFBQVUsUUFBQSxDQUFBRSxJQUFBO1VBQUE7UUFBQTtVQUFBRixRQUFBLENBQUFFLElBQUE7VUFBQTtRQUFBO1VBQUFGLFFBQUEsQ0FBQUMsSUFBQTtVQUFBSCxHQUFBLEdBQUFFLFFBQUE7VUFBQWxCLFNBQUEsQ0FBQW1HLENBQUEsQ0FBQW5GLEdBQUE7UUFBQTtVQUFBRSxRQUFBLENBQUFDLElBQUE7VUFBQW5CLFNBQUEsQ0FBQW9HLENBQUE7VUFBQSxPQUFBbEYsUUFBQSxDQUFBbUYsTUFBQTtRQUFBO1VBQUFuRixRQUFBLENBQUFFLElBQUE7VUFBQTtRQUFBO1VBQUFGLFFBQUEsQ0FBQUMsSUFBQTtVQUtuRWhDLFlBQVksQ0FBQyxDQUFDO1VBQUEsT0FBQStCLFFBQUEsQ0FBQW1GLE1BQUE7UUFBQTtRQUFBO1VBQUEsT0FBQW5GLFFBQUEsQ0FBQW9GLElBQUE7TUFBQTtJQUFBLEdBQUF0SSxPQUFBO0VBQUEsQ0FFakI7RUFBQSxnQkExTktMLGVBQWVBLENBQUE0SSxFQUFBLEVBQUFDLEdBQUEsRUFBQUMsR0FBQTtJQUFBLE9BQUE3SSxJQUFBLENBQUE4SSxLQUFBLE9BQUFDLFNBQUE7RUFBQTtBQUFBLEdBME5wQjs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLG9CQUFvQixHQUFHO0VBQ2xDQyxRQUFRLEVBQUV2SixjQUFjO0VBQ3hCd0osY0FBYyxFQUFFckosb0JBQW9CO0VBQ3BDc0osbUJBQW1CLEVBQUUsU0FBckJBLG1CQUFtQkEsQ0FBQTtJQUFBLE9BQWtCNUQsS0FBSyxDQUFDNkQsSUFBSSxDQUFDOUosYUFBYSxDQUFDK0osSUFBSSxDQUFDLENBQUMsQ0FBQztFQUFBO0VBRS9EQyxXQUFXLFdBQVhBLFdBQVdBLENBQUMvSSxNQUF5QixFQUE4QjtJQUFBLE9BQUFOLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsVUFBQW9KLFNBQUE7TUFBQSxJQUFBNUosU0FBQSxFQUFBb0IsYUFBQSxFQUFBeUksT0FBQSxFQUFBeEksU0FBQSxFQUFBQyxDQUFBLEVBQUF3SSxlQUFBLEVBQUE1RCxPQUFBLEVBQUE2RCxTQUFBLEVBQUFDLFVBQUEsRUFBQXJKLE1BQUEsRUFBQUQsUUFBQSxFQUFBdUosbUJBQUEsRUFBQUMsR0FBQTtNQUFBLE9BQUEzSixtQkFBQSxDQUFBbUQsSUFBQSxXQUFBeUcsU0FBQTtRQUFBLGtCQUFBQSxTQUFBLENBQUF2RyxJQUFBLEdBQUF1RyxTQUFBLENBQUF0RyxJQUFBO1VBQUE7WUFDdkV0RSxxQ0FBcUMsQ0FBQyxDQUFDO1lBRS9CUyxTQUFTLEdBQWdGWSxNQUFNLENBQS9GWixTQUFTLEVBQUVvQixhQUFhLEdBQWlFUixNQUFNLENBQXBGUSxhQUFhLEVBQUV5SSxPQUFPLEdBQXdEakosTUFBTSxDQUFyRWlKLE9BQU8sRUFBRXhJLFNBQVMsR0FBNkNULE1BQU0sQ0FBNURTLFNBQVMsRUFBRUMsQ0FBQyxHQUEwQ1YsTUFBTSxDQUFqRFUsQ0FBQyxFQUFFd0ksZUFBZSxHQUF5QmxKLE1BQU0sQ0FBOUNrSixlQUFlLEVBQUU1RCxPQUFPLEdBQWdCdEYsTUFBTSxDQUE3QnNGLE9BQU8sRUFBRTZELFNBQVMsR0FBS25KLE1BQU0sQ0FBcEJtSixTQUFTO1lBQUEsS0FFeEZoSyxjQUFjLENBQUNDLFNBQVMsQ0FBQztjQUFBbUssU0FBQSxDQUFBdEcsSUFBQTtjQUFBO1lBQUE7WUFBQSxPQUFBc0csU0FBQSxDQUFBcEQsTUFBQSxXQUNwQjtjQUFFcUQsT0FBTyxFQUFFLEtBQUs7Y0FBRUMsTUFBTSxFQUFFO1lBQWlCLENBQUM7VUFBQTtZQUFBLE1BRWpEbkssb0JBQW9CLENBQUMsQ0FBQyxJQUFJVCxzQkFBc0I7Y0FBQTBLLFNBQUEsQ0FBQXRHLElBQUE7Y0FBQTtZQUFBO1lBQUEsT0FBQXNHLFNBQUEsQ0FBQXBELE1BQUEsV0FDM0M7Y0FBRXFELE9BQU8sRUFBRSxLQUFLO2NBQUVDLE1BQU0sRUFBRTtZQUFRLENBQUM7VUFBQTtZQUd0Q0wsVUFBVSxHQUFHLElBQUlNLGVBQWUsQ0FBQyxDQUFDO1lBQ2xDM0osTUFBb0IsR0FBRztjQUFFWCxTQUFTLEVBQVRBLFNBQVM7Y0FBRWdLLFVBQVUsRUFBVkEsVUFBVTtjQUFFbkQsU0FBUyxFQUFFO1lBQU0sQ0FBQztZQUN4RWxILGFBQWEsQ0FBQzRLLEdBQUcsQ0FBQ3ZLLFNBQVMsRUFBRVcsTUFBTSxDQUFDO1lBRXBDZCxLQUFLLENBQUMsQ0FBQyxDQUFDMkssYUFBYSxDQUFDeEssU0FBUyxDQUFDO1lBQ2hDSCxLQUFLLENBQUMsQ0FBQyxDQUFDZ0YsU0FBUyxDQUFDN0UsU0FBUyxFQUFBeUssYUFBQSxDQUFBQSxhQUFBO2NBQ3pCckosYUFBYSxFQUFiQSxhQUFhO2NBQ2JtSCxLQUFLLEVBQUUsSUFBSTtjQUNYekQsU0FBUyxFQUFFLElBQUk7Y0FDZkMsU0FBUyxFQUFFO1lBQUssR0FDWm1CLE9BQU8sSUFBSSxJQUFJLEdBQUc7Y0FBRUEsT0FBTyxFQUFQQTtZQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsR0FDbEM2RCxTQUFTLElBQUksSUFBSSxHQUFHO2NBQUVBLFNBQVMsRUFBVEE7WUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzNDLENBQUM7WUFDRmxLLEtBQUssQ0FBQyxDQUFDLENBQUNtRixTQUFTLENBQUNoRixTQUFTLEVBQUUsVUFBVSxDQUFDO1lBQ3hDWCxvQkFBb0IsQ0FBQ3FMLEtBQUssQ0FBQzFLLFNBQVMsRUFBRW9CLGFBQWEsQ0FBQztZQUNwRHZCLEtBQUssQ0FBQyxDQUFDLENBQUNvRixXQUFXLENBQUNqRixTQUFTLEVBQUVsQix3QkFBd0IsQ0FBQ3dDLENBQUMsRUFBRXdJLGVBQWUsYUFBZkEsZUFBZSxjQUFmQSxlQUFlLEdBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFBSyxTQUFBLENBQUF2RyxJQUFBO1lBQUF1RyxTQUFBLENBQUF0RyxJQUFBO1lBQUEsT0FHekRoRixJQUFJLENBQUM4TCxZQUFZLENBQUNDLFlBQVksQ0FBQ2YsT0FBTyxFQUFFRyxVQUFVLENBQUNhLE1BQU0sQ0FBQztVQUFBO1lBQTNFbkssUUFBUSxHQUFBeUosU0FBQSxDQUFBbEQsSUFBQTtZQUFBa0QsU0FBQSxDQUFBdEcsSUFBQTtZQUFBLE9BQ1J6RCxlQUFlLENBQUNNLFFBQVEsRUFBRUMsTUFBTSxFQUFFQyxNQUFNLENBQUM7VUFBQTtZQUFBdUosU0FBQSxDQUFBdEcsSUFBQTtZQUFBO1VBQUE7WUFBQXNHLFNBQUEsQ0FBQXZHLElBQUE7WUFBQXNHLEdBQUEsR0FBQUMsU0FBQTtZQUUvQyxJQUFJLENBQUN4SixNQUFNLENBQUNrRyxTQUFTLEVBQUU7Y0FDckJ4SCxvQkFBb0IsQ0FBQ3FILEtBQUssQ0FBQzFHLFNBQVMsQ0FBQztjQUNyQ0gsS0FBSyxDQUFDLENBQUMsQ0FBQ2dGLFNBQVMsQ0FBQzdFLFNBQVMsRUFBRTtnQkFBRThFLFNBQVMsRUFBRSxLQUFLO2dCQUFFQyxTQUFTLEVBQUU7Y0FBTSxDQUFDLENBQUM7Y0FDcEVsRixLQUFLLENBQUMsQ0FBQyxDQUFDb0YsV0FBVyxDQUFDakYsU0FBUyxFQUFFLElBQUksQ0FBQztjQUNwQ0gsS0FBSyxDQUFDLENBQUMsQ0FBQ21GLFNBQVMsQ0FBQ2hGLFNBQVMsRUFBRSxPQUFPLENBQUM7Y0FDckMsQ0FBQWlLLG1CQUFBLEdBQUE1SSxTQUFTLENBQUNxSCxPQUFPLGNBQUF1QixtQkFBQSxlQUFqQkEsbUJBQUEsQ0FBQTlGLElBQUEsQ0FBQTlDLFNBQW9CLENBQUM7WUFDdkI7VUFBQztZQUFBOEksU0FBQSxDQUFBdkcsSUFBQTtZQUVEakUsYUFBYSxVQUFPLENBQUNLLFNBQVMsQ0FBQztZQUFBLE9BQUFtSyxTQUFBLENBQUFyQixNQUFBO1VBQUE7WUFBQSxPQUFBcUIsU0FBQSxDQUFBcEQsTUFBQSxXQUcxQjtjQUFFcUQsT0FBTyxFQUFFO1lBQUssQ0FBQztVQUFBO1VBQUE7WUFBQSxPQUFBRCxTQUFBLENBQUFwQixJQUFBO1FBQUE7TUFBQSxHQUFBYSxRQUFBO0lBQUE7RUFDMUIsQ0FBQztFQUVELDBGQUNNa0IsbUJBQW1CLFdBQW5CQSxtQkFBbUJBLENBQUNsSyxNQUFpQyxFQUE4QjtJQUFBLE9BQUFOLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsVUFBQXVLLFNBQUE7TUFBQSxJQUFBQyxLQUFBO01BQUEsSUFBQWhMLFNBQUEsRUFBQW9CLGFBQUEsRUFBQTZKLGVBQUEsRUFBQTVKLFNBQUEsRUFBQUMsQ0FBQSxFQUFBQyxvQkFBQSxFQUFBMkUsT0FBQSxFQUFBNkQsU0FBQSxFQUFBQyxVQUFBLEVBQUFySixNQUFBLEVBQUF1SyxTQUFBLEVBQUF4SyxRQUFBLEVBQUF5SyxtQkFBQSxFQUFBQyxHQUFBO01BQUEsT0FBQTdLLG1CQUFBLENBQUFtRCxJQUFBLFdBQUEySCxTQUFBO1FBQUEsa0JBQUFBLFNBQUEsQ0FBQXpILElBQUEsR0FBQXlILFNBQUEsQ0FBQXhILElBQUE7VUFBQTtZQUN2RnRFLHFDQUFxQyxDQUFDLENBQUM7WUFFL0JTLFNBQVMsR0FBNkZZLE1BQU0sQ0FBNUdaLFNBQVMsRUFBRW9CLGFBQWEsR0FBOEVSLE1BQU0sQ0FBakdRLGFBQWEsRUFBRTZKLGVBQWUsR0FBNkRySyxNQUFNLENBQWxGcUssZUFBZSxFQUFFNUosU0FBUyxHQUFrRFQsTUFBTSxDQUFqRVMsU0FBUyxFQUFFQyxDQUFDLEdBQStDVixNQUFNLENBQXREVSxDQUFDLEVBQUVDLG9CQUFvQixHQUF5QlgsTUFBTSxDQUFuRFcsb0JBQW9CLEVBQUUyRSxPQUFPLEdBQWdCdEYsTUFBTSxDQUE3QnNGLE9BQU8sRUFBRTZELFNBQVMsR0FBS25KLE1BQU0sQ0FBcEJtSixTQUFTO1lBQUEsS0FFckdoSyxjQUFjLENBQUNDLFNBQVMsQ0FBQztjQUFBcUwsU0FBQSxDQUFBeEgsSUFBQTtjQUFBO1lBQUE7WUFBQSxPQUFBd0gsU0FBQSxDQUFBdEUsTUFBQSxXQUNwQjtjQUFFcUQsT0FBTyxFQUFFLEtBQUs7Y0FBRUMsTUFBTSxFQUFFO1lBQWlCLENBQUM7VUFBQTtZQUFBLE1BRWpEbkssb0JBQW9CLENBQUMsQ0FBQyxJQUFJVCxzQkFBc0I7Y0FBQTRMLFNBQUEsQ0FBQXhILElBQUE7Y0FBQTtZQUFBO1lBQUEsT0FBQXdILFNBQUEsQ0FBQXRFLE1BQUEsV0FDM0M7Y0FBRXFELE9BQU8sRUFBRSxLQUFLO2NBQUVDLE1BQU0sRUFBRTtZQUFRLENBQUM7VUFBQTtZQUc1QyxJQUFJOUksb0JBQW9CLEVBQUU7Y0FDeEIvQixrQkFBa0IsQ0FBQytLLEdBQUcsQ0FBQ3ZLLFNBQVMsRUFBRXVCLG9CQUFvQixDQUFDO1lBQ3pEO1lBRU15SSxVQUFVLEdBQUcsSUFBSU0sZUFBZSxDQUFDLENBQUM7WUFDbEMzSixNQUFvQixHQUFHO2NBQUVYLFNBQVMsRUFBVEEsU0FBUztjQUFFZ0ssVUFBVSxFQUFWQSxVQUFVO2NBQUVuRCxTQUFTLEVBQUU7WUFBTSxDQUFDO1lBQ3hFbEgsYUFBYSxDQUFDNEssR0FBRyxDQUFDdkssU0FBUyxFQUFFVyxNQUFNLENBQUM7WUFFcENkLEtBQUssQ0FBQyxDQUFDLENBQUMySyxhQUFhLENBQUN4SyxTQUFTLENBQUM7WUFDaENILEtBQUssQ0FBQyxDQUFDLENBQUNnRixTQUFTLENBQUM3RSxTQUFTLEVBQUF5SyxhQUFBLENBQUFBLGFBQUE7Y0FDekJySixhQUFhLEVBQWJBLGFBQWE7Y0FDYm1ILEtBQUssRUFBRSxJQUFJO2NBQ1h6RCxTQUFTLEVBQUUsSUFBSTtjQUNmQyxTQUFTLEVBQUU7WUFBSyxHQUNabUIsT0FBTyxJQUFJLElBQUksR0FBRztjQUFFQSxPQUFPLEVBQVBBO1lBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUNsQzZELFNBQVMsSUFBSSxJQUFJLEdBQUc7Y0FBRUEsU0FBUyxFQUFUQTtZQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDM0MsQ0FBQztZQUNGbEssS0FBSyxDQUFDLENBQUMsQ0FBQ21GLFNBQVMsQ0FBQ2hGLFNBQVMsRUFBRSxVQUFVLENBQUM7WUFDeENYLG9CQUFvQixDQUFDcUwsS0FBSyxDQUFDMUssU0FBUyxFQUFFb0IsYUFBYSxDQUFDO1lBQ3BEdkIsS0FBSyxDQUFDLENBQUMsQ0FBQ29GLFdBQVcsQ0FDakJqRixTQUFTLEVBQ1RkLGdDQUFnQyxDQUFDb0MsQ0FBQyxHQUFBMEosS0FBQSxHQUFFekosb0JBQW9CLGFBQXBCQSxvQkFBb0IsY0FBcEJBLG9CQUFvQixHQUFJL0Isa0JBQWtCLENBQUNzRSxHQUFHLENBQUM5RCxTQUFTLENBQUMsY0FBQWdMLEtBQUEsY0FBQUEsS0FBQSxHQUFJaEQsU0FBUyxDQUM1RyxDQUFDO1lBRUtrRCxTQUE0QixHQUFHO2NBQ25DbEwsU0FBUyxFQUFUQSxTQUFTO2NBQ1RvQixhQUFhLEVBQWJBLGFBQWE7Y0FDYnlJLE9BQU8sRUFBRSxDQUFDLENBQXdCO2NBQ2xDeEksU0FBUyxFQUFUQSxTQUFTO2NBQ1RDLENBQUMsRUFBREEsQ0FBQztjQUNEQyxvQkFBb0IsRUFBRUEsb0JBQW9CLGFBQXBCQSxvQkFBb0IsY0FBcEJBLG9CQUFvQixHQUFJL0Isa0JBQWtCLENBQUNzRSxHQUFHLENBQUM5RCxTQUFTLENBQUM7Y0FDL0VrRyxPQUFPLEVBQVBBLE9BQU87Y0FDUDZELFNBQVMsRUFBVEE7WUFDRixDQUFDO1lBQUFzQixTQUFBLENBQUF6SCxJQUFBO1lBQUF5SCxTQUFBLENBQUF4SCxJQUFBO1lBQUEsT0FHd0JoRixJQUFJLENBQUM4TCxZQUFZLENBQUNXLGNBQWMsQ0FBQ0wsZUFBZSxFQUFFakIsVUFBVSxDQUFDYSxNQUFNLENBQUM7VUFBQTtZQUFyRm5LLFFBQVEsR0FBQTJLLFNBQUEsQ0FBQXBFLElBQUE7WUFBQSxJQUNUdkcsUUFBUSxDQUFDNkssRUFBRTtjQUFBRixTQUFBLENBQUF4SCxJQUFBO2NBQUE7WUFBQTtZQUFBLE1BQ1IsSUFBSWEsS0FBSyw0QkFBQThHLE1BQUEsQ0FBNEI5SyxRQUFRLENBQUMrSyxNQUFNLENBQUUsQ0FBQztVQUFBO1lBQUFKLFNBQUEsQ0FBQXhILElBQUE7WUFBQSxPQUV6RHpELGVBQWUsQ0FBQ00sUUFBUSxFQUFFQyxNQUFNLEVBQUV1SyxTQUFTLENBQUM7VUFBQTtZQUFBRyxTQUFBLENBQUF4SCxJQUFBO1lBQUE7VUFBQTtZQUFBd0gsU0FBQSxDQUFBekgsSUFBQTtZQUFBd0gsR0FBQSxHQUFBQyxTQUFBO1lBRWxELElBQUksQ0FBQzFLLE1BQU0sQ0FBQ2tHLFNBQVMsRUFBRTtjQUNyQnhILG9CQUFvQixDQUFDcUgsS0FBSyxDQUFDMUcsU0FBUyxDQUFDO2NBQ3JDSCxLQUFLLENBQUMsQ0FBQyxDQUFDZ0YsU0FBUyxDQUFDN0UsU0FBUyxFQUFFO2dCQUFFOEUsU0FBUyxFQUFFLEtBQUs7Z0JBQUVDLFNBQVMsRUFBRTtjQUFNLENBQUMsQ0FBQztjQUNwRWxGLEtBQUssQ0FBQyxDQUFDLENBQUNvRixXQUFXLENBQUNqRixTQUFTLEVBQUUsSUFBSSxDQUFDO2NBQ3BDSCxLQUFLLENBQUMsQ0FBQyxDQUFDbUYsU0FBUyxDQUFDaEYsU0FBUyxFQUFFLE9BQU8sQ0FBQztjQUNyQyxDQUFBbUwsbUJBQUEsR0FBQTlKLFNBQVMsQ0FBQ3FILE9BQU8sY0FBQXlDLG1CQUFBLGVBQWpCQSxtQkFBQSxDQUFBaEgsSUFBQSxDQUFBOUMsU0FBb0IsQ0FBQztZQUN2QjtVQUFDO1lBQUFnSyxTQUFBLENBQUF6SCxJQUFBO1lBRURqRSxhQUFhLFVBQU8sQ0FBQ0ssU0FBUyxDQUFDO1lBQy9CUixrQkFBa0IsQ0FBQ2tILEtBQUssQ0FBQzFHLFNBQVMsQ0FBQztZQUFBLE9BQUFxTCxTQUFBLENBQUF2QyxNQUFBO1VBQUE7WUFBQSxPQUFBdUMsU0FBQSxDQUFBdEUsTUFBQSxXQUc5QjtjQUFFcUQsT0FBTyxFQUFFO1lBQUssQ0FBQztVQUFBO1VBQUE7WUFBQSxPQUFBaUIsU0FBQSxDQUFBdEMsSUFBQTtRQUFBO01BQUEsR0FBQWdDLFFBQUE7SUFBQTtFQUMxQixDQUFDO0VBRUQsaUdBQ01XLGdCQUFnQixXQUFoQkEsZ0JBQWdCQSxDQUFDOUssTUFBOEIsRUFBOEI7SUFBQSxPQUFBTixpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLFVBQUFtTCxTQUFBO01BQUEsSUFBQTNMLFNBQUEsRUFBQW9CLGFBQUEsRUFBQXdLLFlBQUEsRUFBQXZLLFNBQUEsRUFBQUMsQ0FBQSxFQUFBd0ksZUFBQSxFQUFBNUQsT0FBQSxFQUFBNkQsU0FBQSxFQUFBQyxVQUFBLEVBQUFySixNQUFBLEVBQUF1SyxTQUFBLEVBQUF4SyxRQUFBLEVBQUFtTCxNQUFBLEVBQUEzSSxJQUFBLEVBQUE0SSxtQkFBQSxFQUFBQyxHQUFBLEVBQUFDLEdBQUE7TUFBQSxPQUFBekwsbUJBQUEsQ0FBQW1ELElBQUEsV0FBQXVJLFNBQUE7UUFBQSxrQkFBQUEsU0FBQSxDQUFBckksSUFBQSxHQUFBcUksU0FBQSxDQUFBcEksSUFBQTtVQUFBO1lBQ2pGdEUscUNBQXFDLENBQUMsQ0FBQztZQUUvQlMsU0FBUyxHQUFxRlksTUFBTSxDQUFwR1osU0FBUyxFQUFFb0IsYUFBYSxHQUFzRVIsTUFBTSxDQUF6RlEsYUFBYSxFQUFFd0ssWUFBWSxHQUF3RGhMLE1BQU0sQ0FBMUVnTCxZQUFZLEVBQUV2SyxTQUFTLEdBQTZDVCxNQUFNLENBQTVEUyxTQUFTLEVBQUVDLENBQUMsR0FBMENWLE1BQU0sQ0FBakRVLENBQUMsRUFBRXdJLGVBQWUsR0FBeUJsSixNQUFNLENBQTlDa0osZUFBZSxFQUFFNUQsT0FBTyxHQUFnQnRGLE1BQU0sQ0FBN0JzRixPQUFPLEVBQUU2RCxTQUFTLEdBQUtuSixNQUFNLENBQXBCbUosU0FBUztZQUFBLEtBRTdGaEssY0FBYyxDQUFDQyxTQUFTLENBQUM7Y0FBQWlNLFNBQUEsQ0FBQXBJLElBQUE7Y0FBQTtZQUFBO1lBQUEsT0FBQW9JLFNBQUEsQ0FBQWxGLE1BQUEsV0FDcEI7Y0FBRXFELE9BQU8sRUFBRSxLQUFLO2NBQUVDLE1BQU0sRUFBRTtZQUFpQixDQUFDO1VBQUE7WUFBQSxNQUVqRG5LLG9CQUFvQixDQUFDLENBQUMsSUFBSVQsc0JBQXNCO2NBQUF3TSxTQUFBLENBQUFwSSxJQUFBO2NBQUE7WUFBQTtZQUFBLE9BQUFvSSxTQUFBLENBQUFsRixNQUFBLFdBQzNDO2NBQUVxRCxPQUFPLEVBQUUsS0FBSztjQUFFQyxNQUFNLEVBQUU7WUFBUSxDQUFDO1VBQUE7WUFHdENMLFVBQVUsR0FBRyxJQUFJTSxlQUFlLENBQUMsQ0FBQztZQUNsQzNKLE1BQW9CLEdBQUc7Y0FBRVgsU0FBUyxFQUFUQSxTQUFTO2NBQUVnSyxVQUFVLEVBQVZBLFVBQVU7Y0FBRW5ELFNBQVMsRUFBRTtZQUFNLENBQUM7WUFDeEVsSCxhQUFhLENBQUM0SyxHQUFHLENBQUN2SyxTQUFTLEVBQUVXLE1BQU0sQ0FBQztZQUVwQ2QsS0FBSyxDQUFDLENBQUMsQ0FBQzJLLGFBQWEsQ0FBQ3hLLFNBQVMsQ0FBQztZQUNoQ0gsS0FBSyxDQUFDLENBQUMsQ0FBQ2dGLFNBQVMsQ0FBQzdFLFNBQVMsRUFBQXlLLGFBQUEsQ0FBQUEsYUFBQTtjQUN6QnJKLGFBQWEsRUFBYkEsYUFBYTtjQUNibUgsS0FBSyxFQUFFLElBQUk7Y0FDWHpELFNBQVMsRUFBRSxJQUFJO2NBQ2ZDLFNBQVMsRUFBRTtZQUFLLEdBQ1ptQixPQUFPLElBQUksSUFBSSxHQUFHO2NBQUVBLE9BQU8sRUFBUEE7WUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQ2xDNkQsU0FBUyxJQUFJLElBQUksR0FBRztjQUFFQSxTQUFTLEVBQVRBO1lBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUMzQyxDQUFDO1lBQ0ZsSyxLQUFLLENBQUMsQ0FBQyxDQUFDbUYsU0FBUyxDQUFDaEYsU0FBUyxFQUFFLFVBQVUsQ0FBQztZQUN4Q1gsb0JBQW9CLENBQUNxTCxLQUFLLENBQUMxSyxTQUFTLEVBQUVvQixhQUFhLENBQUM7WUFDcER2QixLQUFLLENBQUMsQ0FBQyxDQUFDb0YsV0FBVyxDQUFDakYsU0FBUyxFQUFFbEIsd0JBQXdCLENBQUN3QyxDQUFDLEVBQUV3SSxlQUFlLGFBQWZBLGVBQWUsY0FBZkEsZUFBZSxHQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFNUVvQixTQUE0QixHQUFHO2NBQ25DbEwsU0FBUyxFQUFUQSxTQUFTO2NBQ1RvQixhQUFhLEVBQWJBLGFBQWE7Y0FDYnlJLE9BQU8sRUFBRSxDQUFDLENBQXdCO2NBQ2xDeEksU0FBUyxFQUFUQSxTQUFTO2NBQ1RDLENBQUMsRUFBREEsQ0FBQztjQUNEd0ksZUFBZSxFQUFmQSxlQUFlO2NBQ2Y1RCxPQUFPLEVBQVBBLE9BQU87Y0FDUDZELFNBQVMsRUFBVEE7WUFDRixDQUFDO1lBQUFrQyxTQUFBLENBQUFySSxJQUFBO1lBQUFxSSxTQUFBLENBQUFwSSxJQUFBO1lBQUEsT0FHd0JoRixJQUFJLENBQUM4TCxZQUFZLENBQUN1QixlQUFlLENBQUNOLFlBQVksRUFBRTVCLFVBQVUsQ0FBQ2EsTUFBTSxDQUFDO1VBQUE7WUFBbkZuSyxRQUFRLEdBQUF1TCxTQUFBLENBQUFoRixJQUFBO1lBQUEsSUFDVHZHLFFBQVEsQ0FBQzZLLEVBQUU7Y0FBQVUsU0FBQSxDQUFBcEksSUFBQTtjQUFBO1lBQUE7WUFBQSxNQUNWbkQsUUFBUSxDQUFDK0ssTUFBTSxLQUFLLEdBQUc7Y0FBQVEsU0FBQSxDQUFBcEksSUFBQTtjQUFBO1lBQUE7WUFBQW9JLFNBQUEsQ0FBQXJJLElBQUE7WUFBQXFJLFNBQUEsQ0FBQXBJLElBQUE7WUFBQSxPQUdIbkQsUUFBUSxDQUFDeUwsSUFBSSxDQUFDLENBQUM7VUFBQTtZQUE3QmpKLElBQUksR0FBQStJLFNBQUEsQ0FBQWhGLElBQUE7WUFDVjRFLE1BQU0sR0FBRyxPQUFPM0ksSUFBSSxDQUFDMkksTUFBTSxLQUFLLFFBQVEsR0FBRzNJLElBQUksQ0FBQzJJLE1BQU0sR0FBRzdELFNBQVM7WUFBQWlFLFNBQUEsQ0FBQXBJLElBQUE7WUFBQTtVQUFBO1lBQUFvSSxTQUFBLENBQUFySSxJQUFBO1lBQUFtSSxHQUFBLEdBQUFFLFNBQUE7WUFFbEVKLE1BQU0sR0FBRzdELFNBQVM7VUFBQTtZQUFBLE1BRWhCNkQsTUFBTSxLQUFLLGdCQUFnQjtjQUFBSSxTQUFBLENBQUFwSSxJQUFBO2NBQUE7WUFBQTtZQUM3QnhFLG9CQUFvQixDQUFDcUgsS0FBSyxDQUFDMUcsU0FBUyxDQUFDO1lBQ3JDSCxLQUFLLENBQUMsQ0FBQyxDQUFDZ0YsU0FBUyxDQUFDN0UsU0FBUyxFQUFFO2NBQUU4RSxTQUFTLEVBQUUsS0FBSztjQUFFQyxTQUFTLEVBQUUsS0FBSztjQUFFM0QsYUFBYSxFQUFFO1lBQUssQ0FBQyxDQUFDO1lBQ3pGdkIsS0FBSyxDQUFDLENBQUMsQ0FBQ29GLFdBQVcsQ0FBQ2pGLFNBQVMsRUFBRSxJQUFJLENBQUM7WUFDcENILEtBQUssQ0FBQyxDQUFDLENBQUNtRixTQUFTLENBQUNoRixTQUFTLEVBQUUsTUFBTSxDQUFDO1lBQ3BDTCxhQUFhLFVBQU8sQ0FBQ0ssU0FBUyxDQUFDO1lBQUEsT0FBQWlNLFNBQUEsQ0FBQWxGLE1BQUEsV0FDeEI7Y0FBRXFELE9BQU8sRUFBRSxLQUFLO2NBQUVDLE1BQU0sRUFBRTtZQUFpQixDQUFDO1VBQUE7WUFBQSxNQUdqRCxJQUFJM0YsS0FBSyw2QkFBQThHLE1BQUEsQ0FBNkI5SyxRQUFRLENBQUMrSyxNQUFNLENBQUUsQ0FBQztVQUFBO1lBQUFRLFNBQUEsQ0FBQXBJLElBQUE7WUFBQSxPQUUxRHpELGVBQWUsQ0FBQ00sUUFBUSxFQUFFQyxNQUFNLEVBQUV1SyxTQUFTLENBQUM7VUFBQTtZQUFBZSxTQUFBLENBQUFwSSxJQUFBO1lBQUE7VUFBQTtZQUFBb0ksU0FBQSxDQUFBckksSUFBQTtZQUFBb0ksR0FBQSxHQUFBQyxTQUFBO1lBRWxELElBQUksQ0FBQ3RMLE1BQU0sQ0FBQ2tHLFNBQVMsRUFBRTtjQUNyQnhILG9CQUFvQixDQUFDcUgsS0FBSyxDQUFDMUcsU0FBUyxDQUFDO2NBQ3JDSCxLQUFLLENBQUMsQ0FBQyxDQUFDZ0YsU0FBUyxDQUFDN0UsU0FBUyxFQUFFO2dCQUFFOEUsU0FBUyxFQUFFLEtBQUs7Z0JBQUVDLFNBQVMsRUFBRTtjQUFNLENBQUMsQ0FBQztjQUNwRWxGLEtBQUssQ0FBQyxDQUFDLENBQUNvRixXQUFXLENBQUNqRixTQUFTLEVBQUUsSUFBSSxDQUFDO2NBQ3BDSCxLQUFLLENBQUMsQ0FBQyxDQUFDbUYsU0FBUyxDQUFDaEYsU0FBUyxFQUFFLE9BQU8sQ0FBQztjQUNyQyxDQUFBOEwsbUJBQUEsR0FBQXpLLFNBQVMsQ0FBQ3FILE9BQU8sY0FBQW9ELG1CQUFBLGVBQWpCQSxtQkFBQSxDQUFBM0gsSUFBQSxDQUFBOUMsU0FBb0IsQ0FBQztZQUN2QjtVQUFDO1lBQUE0SyxTQUFBLENBQUFySSxJQUFBO1lBRURqRSxhQUFhLFVBQU8sQ0FBQ0ssU0FBUyxDQUFDO1lBQUEsT0FBQWlNLFNBQUEsQ0FBQW5ELE1BQUE7VUFBQTtZQUFBLE9BQUFtRCxTQUFBLENBQUFsRixNQUFBLFdBRzFCO2NBQUVxRCxPQUFPLEVBQUU7WUFBSyxDQUFDO1VBQUE7VUFBQTtZQUFBLE9BQUE2QixTQUFBLENBQUFsRCxJQUFBO1FBQUE7TUFBQSxHQUFBNEMsUUFBQTtJQUFBO0VBQzFCLENBQUM7RUFFRCwrREFDQVMsVUFBVSxXQUFWQSxVQUFVQSxDQUFDcE0sU0FBaUIsRUFBRXFCLFNBQWtDLEVBQUU7SUFBQSxJQUFBZ0wsaUJBQUE7SUFDaEUsSUFBTTFMLE1BQU0sR0FBR2hCLGFBQWEsQ0FBQ21FLEdBQUcsQ0FBQzlELFNBQVMsQ0FBQztJQUMzQyxJQUFJLENBQUNXLE1BQU0sRUFBRTtJQUNiQSxNQUFNLENBQUNrRyxTQUFTLEdBQUcsSUFBSTtJQUN2QmxHLE1BQU0sQ0FBQ3FKLFVBQVUsQ0FBQ3NDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCM00sYUFBYSxVQUFPLENBQUNLLFNBQVMsQ0FBQztJQUMvQjtJQUNBO0lBQ0EsSUFBTXVNLFdBQVcsR0FBR2xOLG9CQUFvQixDQUFDbU4sV0FBVyxDQUFDeE0sU0FBUyxDQUFDLENBQUN5TSxJQUFJO0lBQ3BFcE4sb0JBQW9CLENBQUNxSCxLQUFLLENBQUMxRyxTQUFTLENBQUM7SUFDckNILEtBQUssQ0FBQyxDQUFDLENBQUNnRixTQUFTLENBQUM3RSxTQUFTLEVBQUU7TUFBRThFLFNBQVMsRUFBRSxLQUFLO01BQUVDLFNBQVMsRUFBRTtJQUFNLENBQUMsQ0FBQztJQUNwRWxGLEtBQUssQ0FBQyxDQUFDLENBQUNvRixXQUFXLENBQUNqRixTQUFTLEVBQUUsSUFBSSxDQUFDO0lBQ3BDSCxLQUFLLENBQUMsQ0FBQyxDQUFDbUYsU0FBUyxDQUFDaEYsU0FBUyxFQUFFLFdBQVcsQ0FBQztJQUN6Q3FCLFNBQVMsYUFBVEEsU0FBUyxnQkFBQWdMLGlCQUFBLEdBQVRoTCxTQUFTLENBQUVxTCxNQUFNLGNBQUFMLGlCQUFBLGVBQWpCQSxpQkFBQSxDQUFBbEksSUFBQSxDQUFBOUMsU0FBUyxFQUFXa0wsV0FBVyxDQUFDO0VBQ2xDLENBQUM7RUFFRCw4REFDQUksYUFBYSxXQUFiQSxhQUFhQSxDQUFDM00sU0FBaUIsRUFBRTtJQUFBLElBQUE0TSxjQUFBO0lBQy9CLElBQU1qTSxNQUFNLEdBQUdoQixhQUFhLENBQUNtRSxHQUFHLENBQUM5RCxTQUFTLENBQUM7SUFDM0MsSUFBSSxDQUFDVyxNQUFNLEVBQUU7SUFDYkEsTUFBTSxDQUFDa0csU0FBUyxHQUFHLElBQUk7SUFDdkJsRyxNQUFNLENBQUNxSixVQUFVLENBQUNzQyxLQUFLLENBQUMsQ0FBQztJQUN6QjNNLGFBQWEsVUFBTyxDQUFDSyxTQUFTLENBQUM7SUFDL0JYLG9CQUFvQixDQUFDcUgsS0FBSyxDQUFDMUcsU0FBUyxDQUFDO0lBQ3JDSCxLQUFLLENBQUMsQ0FBQyxDQUFDZ0YsU0FBUyxDQUFDN0UsU0FBUyxFQUFFO01BQUU4RSxTQUFTLEVBQUUsS0FBSztNQUFFQyxTQUFTLEVBQUU7SUFBTSxDQUFDLENBQUM7SUFDcEVsRixLQUFLLENBQUMsQ0FBQyxDQUFDb0YsV0FBVyxDQUFDakYsU0FBUyxFQUFFLElBQUksQ0FBQztJQUNwQyxJQUFJLEVBQUE0TSxjQUFBLEdBQUEvTSxLQUFLLENBQUMsQ0FBQyxDQUFDZ04sT0FBTyxDQUFDN00sU0FBUyxDQUFDLGNBQUE0TSxjQUFBLHVCQUExQkEsY0FBQSxDQUE0Qm5CLE1BQU0sTUFBSyxVQUFVLEVBQUU7TUFDckQ1TCxLQUFLLENBQUMsQ0FBQyxDQUFDbUYsU0FBUyxDQUFDaEYsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUN0QztFQUNGLENBQUM7RUFFRDhNLFFBQVEsV0FBUkEsUUFBUUEsQ0FBQSxFQUFHO0lBQUEsSUFBQUMsS0FBQTtJQUNUbkgsS0FBSyxDQUFDNkQsSUFBSSxDQUFDOUosYUFBYSxDQUFDK0osSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDc0QsT0FBTyxDQUFDLFVBQUFoTixTQUFTO01BQUEsT0FBSStNLEtBQUksQ0FBQ0osYUFBYSxDQUFDM00sU0FBUyxDQUFDO0lBQUEsRUFBQztFQUN0RjtBQUNGLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
576
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYWlhIiwiZ2V0SW5pdGlhbFN0cmVhbUFjdGl2aXR5IiwiZ2V0VGhpbmtpbmdMb2FkaW5nTWVzc2FnZSIsImdldFdyaXRpbmdTdHJlYW1BY3Rpdml0eSIsInJlc29sdmVIaXRsTm9kZVN0cmVhbUFjdGl2aXR5IiwicmVzb2x2ZUluaXRpYWxIaXRsU3RyZWFtQWN0aXZpdHkiLCJpc0NvbXBsZXRlTGlrZVNzZVBheWxvYWQiLCJtZXJnZVN0cmVhbUNodW5rIiwic2Vzc2lvblN0cmVhbWluZ1RleHQiLCJ1c2VTZXNzaW9uc1N0b3JlIiwiZW5zdXJlU2Vzc2lvbk5vdGlmaWNhdGlvbnNJbml0aWFsaXplZCIsInNlc3Npb25IaXRsQ29udGV4dCIsIk1BWF9DT05DVVJSRU5UX1NUUkVBTVMiLCJTVFJFQU1fVEhST1RUTEVfTVMiLCJhY3RpdmVTdHJlYW1zIiwiTWFwIiwic3RvcmUiLCJnZXRTdGF0ZSIsImlzU3RyZWFtQWN0aXZlIiwic2Vzc2lvbklkIiwiaGFzIiwiZ2V0QWN0aXZlU3RyZWFtQ291bnQiLCJzaXplIiwicGFyc2VTZXNzaW9uU1NFIiwiX3JlZiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwicmVzcG9uc2UiLCJhY3RpdmUiLCJwYXJhbXMiLCJfcGFyYW1zJGhpdGxFeGVjdXRpb24iLCJfcmVzcG9uc2UkYm9keSIsIl9kYXRhJGVycm9yIiwiX2RhdGEkZXJyb3IyIiwiX2NhbGxiYWNrcyRvbkVycm9yIiwiX2RhdGEkZXJyb3IzIiwiX2RhdGEkZXJyb3I0IiwicGxhY2Vob2xkZXJJZCIsImNhbGxiYWNrcyIsInQiLCJoaXRsRXhlY3V0aW9uQ29udGV4dCIsInBlbmRpbmdDb250ZW50IiwidGhyb3R0bGVUaW1lciIsImZsdXNoVG9TdG9yZXMiLCJlbWl0VGhyb3R0bGVkIiwiZmx1c2hQZW5kaW5nIiwicmVhZGVyIiwiZGVjb2RlciIsImJ1ZmZlciIsImFjY3VtdWxhdGVkQ29udGVudCIsImhhc1N0YXJ0ZWRXcml0aW5nIiwiZW5zdXJlV3JpdGluZ1N0YXJ0ZWQiLCJhcHBseVN0cmVhbUNodW5rIiwiYXBwbHlTdHJlYW1Db21wbGV0ZSIsIl95aWVsZCRyZWFkZXIkcmVhZCIsImRvbmUiLCJ2YWx1ZSIsImxpbmVzIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJsaW5lIiwiX2xpbmUkc3BsaXQiLCJfbGluZSRzcGxpdDIiLCJldmVudExpbmUiLCJkYXRhTGluZSIsImV2ZW50VHlwZSIsImRhdGFTdHIiLCJkYXRhIiwiY2h1bmsiLCJfY2h1bmsiLCJfY2FsbGJhY2tzJG9uQXBwcm92YWwiLCJpc01hbnVhbEFwcHJvdmFsIiwiX3QiLCJfdDIiLCJfdDMiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImdldCIsImNvbnRlbnQiLCJfY2FsbGJhY2tzJG9uU3RyZWFtVXAiLCJzZXRUZXh0Iiwib25TdHJlYW1VcGRhdGUiLCJjYWxsIiwid2luZG93Iiwic2V0VGltZW91dCIsInRvRW1pdCIsImNsZWFyVGltZW91dCIsImJvZHkiLCJnZXRSZWFkZXIiLCJFcnJvciIsIlRleHREZWNvZGVyIiwiX2NhbGxiYWNrcyRvblN0YXJ0V3JpIiwicGF0Y2hNZXRhIiwiaXNMb2FkaW5nIiwiaXNXcml0aW5nIiwic2V0U3RhdHVzIiwic2V0QWN0aXZpdHkiLCJvblN0YXJ0V3JpdGluZyIsInBheWxvYWQiLCJfcGF5bG9hZCRhZ2VudF9pZCIsIl9zdWJhZ2VudFJhdyRyZXNvbHZlZCIsIl9jYWxsYmFja3Mkb25GaW5pc2hTdCIsImZpbmFsQ29udGVudCIsInNvdXJjZXMiLCJtZW1vcnlTZXNzaW9uSWQiLCJtZW1vcnlfc2Vzc2lvbl9pZCIsImF0dGFjaG1lbnRzIiwiQXJyYXkiLCJpc0FycmF5Iiwic3VnZ2VzdGlvbnMiLCJzdWdnZXN0X3JlcGx5IiwiYWdlbnRJZFJhdyIsImFnZW50X2lkIiwiYWdlbnRJZCIsImNvbXBsZXRlZEFnZW50SWQiLCJTdHJpbmciLCJ0cmltIiwic3ViYWdlbnRSYXciLCJzdWJhZ2VudCIsInJlc29sdmVkQ29udGV4dCIsInJlc29sdmVkX2NvbnRleHQiLCJjbGVhciIsImZpbmlzaFBheWxvYWQiLCJvbkZpbmlzaFN0cmVhbSIsImlzU3RvcHBlZCIsImNhbmNlbCIsImFicnVwdCIsInJlYWQiLCJzZW50IiwiZGVjb2RlIiwic3RyZWFtIiwic3BsaXQiLCJwb3AiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsInMiLCJuIiwiX3NsaWNlZFRvQXJyYXkiLCJyZXBsYWNlIiwiSlNPTiIsInBhcnNlIiwicGhhc2UiLCJtZXNzYWdlIiwibm9kZSIsInVuZGVmaW5lZCIsInRocmVhZF9pZCIsIm1hbnVhbF9hcHByb3ZhbF9kZXRlY3RlZCIsIm9uQXBwcm92YWxSZXF1aXJlZCIsInBlbmRpbmdfYWN0aW9ucyIsImxlbmd0aCIsImNvbnNvbGUiLCJlcnJvciIsInNldEVycm9yIiwidHlwZSIsIm9uRXJyb3IiLCJ3YXJuIiwiZSIsImYiLCJmaW5pc2giLCJzdG9wIiwiX3giLCJfeDIiLCJfeDMiLCJhcHBseSIsImFyZ3VtZW50cyIsInNlc3Npb25TdHJlYW1NYW5hZ2VyIiwiaXNBY3RpdmUiLCJnZXRBY3RpdmVDb3VudCIsImdldEFjdGl2ZVNlc3Npb25JZHMiLCJmcm9tIiwia2V5cyIsInN0YXJ0U3RyZWFtIiwiX2NhbGxlZTIiLCJyZXF1ZXN0IiwiYWN0aXZpdHlPcHRpb25zIiwiYWdlbnROYW1lIiwiY29udHJvbGxlciIsIl9jYWxsYmFja3Mkb25FcnJvcjIiLCJfdDQiLCJfY29udGV4dDIiLCJzdGFydGVkIiwicmVhc29uIiwiQWJvcnRDb250cm9sbGVyIiwic2V0IiwiZW5zdXJlU2Vzc2lvbiIsIl9vYmplY3RTcHJlYWQiLCJzdGFydCIsIk9yY2hlc3RyYXRvciIsIm9yY2hlc3RyYXRvciIsInNpZ25hbCIsInN0YXJ0Q29udGludWVTdHJlYW0iLCJfY2FsbGVlMyIsIl9yZWYyIiwiY29udGludWVSZXF1ZXN0Iiwic3NlUGFyYW1zIiwiX2NhbGxiYWNrcyRvbkVycm9yMyIsIl90NSIsIl9jb250ZXh0MyIsImNvbnRpbnVlVGhyZWFkIiwib2siLCJjb25jYXQiLCJzdGF0dXMiLCJzdG9wU3RyZWFtIiwiX2NhbGxiYWNrcyRvblN0b3AiLCJhYm9ydCIsIm9uU3RvcCIsImFib3J0U2lsZW50bHkiLCJfc3RvcmUkZ2V0TWV0YSIsImdldE1ldGEiLCJhYm9ydEFsbCIsIl90aGlzIiwiZm9yRWFjaCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdG9yZS9zZXNzaW9ucy9zZXNzaW9uU3RyZWFtTWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb250aW51ZSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tYXdhaXQtaW4tbG9vcCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tcmVzdHJpY3RlZC1zeW50YXggKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnN0YW50LWNvbmRpdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IG1haWEgZnJvbSAnLi4vLi4vc2VydmljZXMvbWFpYSdcbmltcG9ydCB0eXBlIHsgQXBwcm92YWxSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7XG4gIGdldEluaXRpYWxTdHJlYW1BY3Rpdml0eSxcbiAgZ2V0VGhpbmtpbmdMb2FkaW5nTWVzc2FnZSxcbiAgZ2V0V3JpdGluZ1N0cmVhbUFjdGl2aXR5LFxuICByZXNvbHZlSGl0bE5vZGVTdHJlYW1BY3Rpdml0eSxcbiAgcmVzb2x2ZUluaXRpYWxIaXRsU3RyZWFtQWN0aXZpdHksXG59IGZyb20gJy4uLy4uL3V0aWxzL3N0cmVhbUFjdGl2aXR5TWVzc2FnZXMnXG5pbXBvcnQgdHlwZSB7IEhpdGxFeGVjdXRpb25Db250ZXh0IH0gZnJvbSAnLi4vLi4vdXRpbHMvc3RyZWFtQWN0aXZpdHlNZXNzYWdlcydcbmltcG9ydCB7IGlzQ29tcGxldGVMaWtlU3NlUGF5bG9hZCwgbWVyZ2VTdHJlYW1DaHVuayB9IGZyb20gJy4uLy4uL3V0aWxzL3NzZVN0cmVhbUNvbnRlbnQnXG5pbXBvcnQgeyBzZXNzaW9uU3RyZWFtaW5nVGV4dCB9IGZyb20gJy4vc2Vzc2lvblN0cmVhbWluZ1RleHQnXG5pbXBvcnQgeyB1c2VTZXNzaW9uc1N0b3JlIH0gZnJvbSAnLi91c2VTZXNzaW9uc1N0b3JlJ1xuaW1wb3J0IHsgZW5zdXJlU2Vzc2lvbk5vdGlmaWNhdGlvbnNJbml0aWFsaXplZCB9IGZyb20gJy4vc2Vzc2lvbk5vdGlmaWNhdGlvbnMnXG5pbXBvcnQgeyBzZXNzaW9uSGl0bENvbnRleHQgfSBmcm9tICcuL3Nlc3Npb25IaXRsQ29udGV4dCdcbmltcG9ydCB0eXBlIHsgU2Vzc2lvbkZpbmlzaFBheWxvYWQsIFNlc3Npb25TdHJlYW1DYWxsYmFja3MsIFN0YXJ0U3RyZWFtUmVzdWx0IH0gZnJvbSAnLi9zZXNzaW9ucy50eXBlcydcblxudHlwZSBPcmNoZXN0cmF0b3JSZXF1ZXN0ID0gUGFyYW1ldGVyczx0eXBlb2YgbWFpYS5PcmNoZXN0cmF0b3Iub3JjaGVzdHJhdG9yPlswXVxudHlwZSBDb250aW51ZVRocmVhZFJlcXVlc3QgPSBQYXJhbWV0ZXJzPHR5cGVvZiBtYWlhLk9yY2hlc3RyYXRvci5jb250aW51ZVRocmVhZD5bMF1cblxuLyoqIENvbXBhdGlibGUgY29uIGVsIGB0YCBkZSBpMThuZXh0ICh1c28gZGUgdW5hIHNvbGEga2V5KS4gKi9cbnR5cGUgVHJhbnNsYXRlRm4gPSAoa2V5OiBzdHJpbmcpID0+IHN0cmluZ1xuXG50eXBlIFN0YXJ0U3RyZWFtUGFyYW1zID0ge1xuICBzZXNzaW9uSWQ6IHN0cmluZ1xuICBwbGFjZWhvbGRlcklkOiBzdHJpbmdcbiAgcmVxdWVzdDogT3JjaGVzdHJhdG9yUmVxdWVzdFxuICBjYWxsYmFja3M6IFNlc3Npb25TdHJlYW1DYWxsYmFja3NcbiAgdDogVHJhbnNsYXRlRm5cbiAgYWN0aXZpdHlPcHRpb25zPzoge1xuICAgIGlzV2ViU2VhcmNoQWN0aXZlPzogYm9vbGVhblxuICAgIGlzRGVlcFNlYXJjaEFjdGl2ZT86IGJvb2xlYW5cbiAgICBoYXNBdHRhY2htZW50cz86IGJvb2xlYW5cbiAgICBhdHRhY2htZW50c0NvdW50PzogbnVtYmVyXG4gIH1cbiAgaGl0bEV4ZWN1dGlvbkNvbnRleHQ/OiBIaXRsRXhlY3V0aW9uQ29udGV4dCB8IG51bGxcbiAgYWdlbnRJZD86IHN0cmluZyB8IG51bWJlclxuICBhZ2VudE5hbWU/OiBzdHJpbmdcbn1cblxudHlwZSBTdGFydENvbnRpbnVlU3RyZWFtUGFyYW1zID0ge1xuICBzZXNzaW9uSWQ6IHN0cmluZ1xuICBwbGFjZWhvbGRlcklkOiBzdHJpbmdcbiAgY29udGludWVSZXF1ZXN0OiBDb250aW51ZVRocmVhZFJlcXVlc3RcbiAgY2FsbGJhY2tzOiBTZXNzaW9uU3RyZWFtQ2FsbGJhY2tzXG4gIHQ6IFRyYW5zbGF0ZUZuXG4gIGhpdGxFeGVjdXRpb25Db250ZXh0PzogSGl0bEV4ZWN1dGlvbkNvbnRleHQgfCBudWxsXG4gIGFnZW50SWQ/OiBzdHJpbmcgfCBudW1iZXJcbiAgYWdlbnROYW1lPzogc3RyaW5nXG59XG5cbnR5cGUgQWN0aXZlU3RyZWFtID0ge1xuICBzZXNzaW9uSWQ6IHN0cmluZ1xuICBjb250cm9sbGVyOiBBYm9ydENvbnRyb2xsZXJcbiAgaXNTdG9wcGVkOiBib29sZWFuXG59XG5cbi8qKlxuICogTcOheGltbyBkZSBzZXNpb25lcyBnZW5lcmFuZG8gZW4gcGFyYWxlbG8uIFByb3RlZ2UgcmVkL3JlY3Vyc29zIGRlbCBjbGllbnRlLlxuICogQWp1c3RhYmxlIGEgZnV0dXJvIHbDrWEgZmxhZyBkZWwgaG9zdC5cbiAqL1xuZXhwb3J0IGNvbnN0IE1BWF9DT05DVVJSRU5UX1NUUkVBTVMgPSA0XG5cbmNvbnN0IFNUUkVBTV9USFJPVFRMRV9NUyA9IDE2XG5cbmNvbnN0IGFjdGl2ZVN0cmVhbXMgPSBuZXcgTWFwPHN0cmluZywgQWN0aXZlU3RyZWFtPigpXG5cbmNvbnN0IHN0b3JlID0gKCkgPT4gdXNlU2Vzc2lvbnNTdG9yZS5nZXRTdGF0ZSgpXG5cbmNvbnN0IGlzU3RyZWFtQWN0aXZlID0gKHNlc3Npb25JZDogc3RyaW5nKTogYm9vbGVhbiA9PiBhY3RpdmVTdHJlYW1zLmhhcyhzZXNzaW9uSWQpXG5cbmNvbnN0IGdldEFjdGl2ZVN0cmVhbUNvdW50ID0gKCk6IG51bWJlciA9PiBhY3RpdmVTdHJlYW1zLnNpemVcblxuY29uc3QgcGFyc2VTZXNzaW9uU1NFID0gYXN5bmMgKHJlc3BvbnNlOiBSZXNwb25zZSwgYWN0aXZlOiBBY3RpdmVTdHJlYW0sIHBhcmFtczogU3RhcnRTdHJlYW1QYXJhbXMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgY29uc3QgeyBzZXNzaW9uSWQsIHBsYWNlaG9sZGVySWQsIGNhbGxiYWNrcywgdCB9ID0gcGFyYW1zXG4gIGNvbnN0IGhpdGxFeGVjdXRpb25Db250ZXh0ID0gcGFyYW1zLmhpdGxFeGVjdXRpb25Db250ZXh0ID8/IHNlc3Npb25IaXRsQ29udGV4dC5nZXQoc2Vzc2lvbklkKVxuXG4gIGxldCBwZW5kaW5nQ29udGVudDogc3RyaW5nIHwgbnVsbCA9IG51bGxcbiAgbGV0IHRocm90dGxlVGltZXI6IG51bWJlciB8IG51bGwgPSBudWxsXG5cbiAgY29uc3QgZmx1c2hUb1N0b3JlcyA9IChjb250ZW50OiBzdHJpbmcpID0+IHtcbiAgICBzZXNzaW9uU3RyZWFtaW5nVGV4dC5zZXRUZXh0KHNlc3Npb25JZCwgcGxhY2Vob2xkZXJJZCwgY29udGVudClcbiAgICBjYWxsYmFja3Mub25TdHJlYW1VcGRhdGU/Lihjb250ZW50KVxuICB9XG5cbiAgY29uc3QgZW1pdFRocm90dGxlZCA9IChjb250ZW50OiBzdHJpbmcpID0+IHtcbiAgICBwZW5kaW5nQ29udGVudCA9IGNvbnRlbnRcbiAgICBpZiAodGhyb3R0bGVUaW1lciAhPSBudWxsKSByZXR1cm5cbiAgICB0aHJvdHRsZVRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhyb3R0bGVUaW1lciA9IG51bGxcbiAgICAgIGlmIChwZW5kaW5nQ29udGVudCAhPSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHRvRW1pdCA9IHBlbmRpbmdDb250ZW50XG4gICAgICAgIHBlbmRpbmdDb250ZW50ID0gbnVsbFxuICAgICAgICBmbHVzaFRvU3RvcmVzKHRvRW1pdClcbiAgICAgIH1cbiAgICB9LCBTVFJFQU1fVEhST1RUTEVfTVMpXG4gIH1cblxuICBjb25zdCBmbHVzaFBlbmRpbmcgPSAoKSA9PiB7XG4gICAgaWYgKHRocm90dGxlVGltZXIgIT0gbnVsbCkge1xuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aHJvdHRsZVRpbWVyKVxuICAgICAgdGhyb3R0bGVUaW1lciA9IG51bGxcbiAgICB9XG4gICAgaWYgKHBlbmRpbmdDb250ZW50ICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IHRvRW1pdCA9IHBlbmRpbmdDb250ZW50XG4gICAgICBwZW5kaW5nQ29udGVudCA9IG51bGxcbiAgICAgIGZsdXNoVG9TdG9yZXModG9FbWl0KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJlYWRlciA9IHJlc3BvbnNlLmJvZHk/LmdldFJlYWRlcigpXG4gIGlmICghcmVhZGVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyByZWFkZXIgYXZhaWxhYmxlJylcbiAgfVxuXG4gIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKVxuICBsZXQgYnVmZmVyID0gJydcbiAgbGV0IGFjY3VtdWxhdGVkQ29udGVudCA9ICcnXG4gIGxldCBoYXNTdGFydGVkV3JpdGluZyA9IGZhbHNlXG5cbiAgY29uc3QgZW5zdXJlV3JpdGluZ1N0YXJ0ZWQgPSAoKSA9PiB7XG4gICAgaWYgKGhhc1N0YXJ0ZWRXcml0aW5nKSByZXR1cm5cbiAgICBoYXNTdGFydGVkV3JpdGluZyA9IHRydWVcbiAgICBzdG9yZSgpLnBhdGNoTWV0YShzZXNzaW9uSWQsIHsgaXNMb2FkaW5nOiB0cnVlLCBpc1dyaXRpbmc6IHRydWUgfSlcbiAgICBzdG9yZSgpLnNldFN0YXR1cyhzZXNzaW9uSWQsICd3cml0aW5nJylcbiAgICBzdG9yZSgpLnNldEFjdGl2aXR5KHNlc3Npb25JZCwgZ2V0V3JpdGluZ1N0cmVhbUFjdGl2aXR5KHQpKVxuICAgIGNhbGxiYWNrcy5vblN0YXJ0V3JpdGluZz8uKClcbiAgfVxuXG4gIGNvbnN0IGFwcGx5U3RyZWFtQ2h1bmsgPSAoY2h1bms6IHN0cmluZykgPT4ge1xuICAgIGlmICghY2h1bmspIHJldHVyblxuICAgIGFjY3VtdWxhdGVkQ29udGVudCA9IG1lcmdlU3RyZWFtQ2h1bmsoYWNjdW11bGF0ZWRDb250ZW50LCBjaHVuaylcbiAgICBlbWl0VGhyb3R0bGVkKGFjY3VtdWxhdGVkQ29udGVudClcbiAgfVxuXG4gIGNvbnN0IGFwcGx5U3RyZWFtQ29tcGxldGUgPSAocGF5bG9hZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICBjb25zdCBmaW5hbENvbnRlbnQgPSAocGF5bG9hZC5jb250ZW50IGFzIHN0cmluZykgfHwgYWNjdW11bGF0ZWRDb250ZW50XG4gICAgY29uc3Qgc291cmNlcyA9IHBheWxvYWQuc291cmNlcyB8fCBudWxsXG4gICAgY29uc3QgbWVtb3J5U2Vzc2lvbklkID0gKHBheWxvYWQubWVtb3J5X3Nlc3Npb25faWQgYXMgc3RyaW5nKSB8fCAnJ1xuICAgIGNvbnN0IGF0dGFjaG1lbnRzID0gQXJyYXkuaXNBcnJheShwYXlsb2FkLmF0dGFjaG1lbnRzKSA/IHBheWxvYWQuYXR0YWNobWVudHMgOiBudWxsXG4gICAgbGV0IHN1Z2dlc3Rpb25zOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocGF5bG9hZC5zdWdnZXN0X3JlcGx5KSkge1xuICAgICAgc3VnZ2VzdGlvbnMgPSBwYXlsb2FkLnN1Z2dlc3RfcmVwbHkgYXMgc3RyaW5nW11cbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocGF5bG9hZC5zdWdnZXN0aW9ucykpIHtcbiAgICAgIHN1Z2dlc3Rpb25zID0gcGF5bG9hZC5zdWdnZXN0aW9ucyBhcyBzdHJpbmdbXVxuICAgIH1cbiAgICBjb25zdCBhZ2VudElkUmF3ID0gcGF5bG9hZC5hZ2VudF9pZCA/PyBwYXlsb2FkLmFnZW50SWRcbiAgICBjb25zdCBjb21wbGV0ZWRBZ2VudElkID0gYWdlbnRJZFJhdyAhPSBudWxsICYmIFN0cmluZyhhZ2VudElkUmF3KS50cmltKCkgIT09ICcnID8gU3RyaW5nKGFnZW50SWRSYXcpLnRyaW0oKSA6IG51bGxcbiAgICBjb25zdCBzdWJhZ2VudFJhdyA9IHBheWxvYWQuc3ViYWdlbnQgYXMgeyByZXNvbHZlZF9jb250ZXh0PzogdW5rbm93biB9IHwgbnVsbCB8IHVuZGVmaW5lZFxuICAgIGNvbnN0IHJlc29sdmVkQ29udGV4dCA9IHN1YmFnZW50UmF3Py5yZXNvbHZlZF9jb250ZXh0ID8/IG51bGxcblxuICAgIGZsdXNoUGVuZGluZygpXG4gICAgc2Vzc2lvblN0cmVhbWluZ1RleHQuY2xlYXIoc2Vzc2lvbklkKVxuICAgIHN0b3JlKCkucGF0Y2hNZXRhKHNlc3Npb25JZCwgeyBpc0xvYWRpbmc6IGZhbHNlLCBpc1dyaXRpbmc6IGZhbHNlIH0pXG4gICAgc3RvcmUoKS5zZXRBY3Rpdml0eShzZXNzaW9uSWQsIG51bGwpXG4gICAgc3RvcmUoKS5zZXRTdGF0dXMoc2Vzc2lvbklkLCAnY29tcGxldGUnKVxuXG4gICAgY29uc3QgZmluaXNoUGF5bG9hZDogU2Vzc2lvbkZpbmlzaFBheWxvYWQgPSB7XG4gICAgICBjb250ZW50OiBmaW5hbENvbnRlbnQsXG4gICAgICBzb3VyY2VzLFxuICAgICAgbWVtb3J5U2Vzc2lvbklkLFxuICAgICAgYXR0YWNobWVudHMsXG4gICAgICBzdWdnZXN0aW9ucyxcbiAgICAgIGNvbXBsZXRlZEFnZW50SWQsXG4gICAgICByZXNvbHZlZENvbnRleHQsXG4gICAgfVxuICAgIGNhbGxiYWNrcy5vbkZpbmlzaFN0cmVhbT8uKGZpbmlzaFBheWxvYWQpXG4gIH1cblxuICB0cnkge1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBpZiAoYWN0aXZlLmlzU3RvcHBlZCkge1xuICAgICAgICByZWFkZXIuY2FuY2VsKClcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKVxuICAgICAgaWYgKGRvbmUpIGJyZWFrXG5cbiAgICAgIGlmIChhY3RpdmUuaXNTdG9wcGVkKSB7XG4gICAgICAgIHJlYWRlci5jYW5jZWwoKVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBidWZmZXIgKz0gZGVjb2Rlci5kZWNvZGUodmFsdWUsIHsgc3RyZWFtOiB0cnVlIH0pXG4gICAgICBjb25zdCBsaW5lcyA9IGJ1ZmZlci5zcGxpdCgnXFxuXFxuJylcbiAgICAgIGJ1ZmZlciA9IGxpbmVzLnBvcCgpIHx8ICcnXG5cbiAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgICBpZiAobGluZS50cmltKCkgPT09ICcnKSBjb250aW51ZVxuXG4gICAgICAgIGNvbnN0IFtldmVudExpbmUsIGRhdGFMaW5lXSA9IGxpbmUuc3BsaXQoJ1xcbicpXG4gICAgICAgIGlmICghZXZlbnRMaW5lIHx8ICFkYXRhTGluZSkgY29udGludWVcblxuICAgICAgICBjb25zdCBldmVudFR5cGUgPSBldmVudExpbmUucmVwbGFjZSgnZXZlbnQ6ICcsICcnKS50cmltKClcbiAgICAgICAgY29uc3QgZGF0YVN0ciA9IGRhdGFMaW5lLnJlcGxhY2UoJ2RhdGE6ICcsICcnKS50cmltKClcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGRhdGFTdHIpXG5cbiAgICAgICAgICBzd2l0Y2ggKGV2ZW50VHlwZSkge1xuICAgICAgICAgICAgY2FzZSAndGhpbmtpbmcnOlxuICAgICAgICAgICAgICBpZiAoIWhhc1N0YXJ0ZWRXcml0aW5nKSB7XG4gICAgICAgICAgICAgICAgc3RvcmUoKS5wYXRjaE1ldGEoc2Vzc2lvbklkLCB7IGlzTG9hZGluZzogdHJ1ZSB9KVxuICAgICAgICAgICAgICAgIHN0b3JlKCkuc2V0U3RhdHVzKHNlc3Npb25JZCwgJ3RoaW5raW5nJylcbiAgICAgICAgICAgICAgICBzdG9yZSgpLnNldEFjdGl2aXR5KHNlc3Npb25JZCwgeyBwaGFzZTogJ3RoaW5raW5nJywgbWVzc2FnZTogZ2V0VGhpbmtpbmdMb2FkaW5nTWVzc2FnZSgwLCB0KSB9KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgICAgIGNhc2UgJ3Rva2VuJzoge1xuICAgICAgICAgICAgICBjb25zdCBjaHVuayA9IHR5cGVvZiBkYXRhLmNvbnRlbnQgPT09ICdzdHJpbmcnID8gZGF0YS5jb250ZW50IDogJydcbiAgICAgICAgICAgICAgZW5zdXJlV3JpdGluZ1N0YXJ0ZWQoKVxuICAgICAgICAgICAgICBhcHBseVN0cmVhbUNodW5rKGNodW5rKVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjYXNlICdjb250ZW50Jzoge1xuICAgICAgICAgICAgICBjb25zdCBjaHVuayA9IHR5cGVvZiBkYXRhLmNvbnRlbnQgPT09ICdzdHJpbmcnID8gZGF0YS5jb250ZW50IDogJydcbiAgICAgICAgICAgICAgZW5zdXJlV3JpdGluZ1N0YXJ0ZWQoKVxuICAgICAgICAgICAgICBhcHBseVN0cmVhbUNodW5rKGNodW5rKVxuICAgICAgICAgICAgICBpZiAoaXNDb21wbGV0ZUxpa2VTc2VQYXlsb2FkKGRhdGEpKSB7XG4gICAgICAgICAgICAgICAgYXBwbHlTdHJlYW1Db21wbGV0ZShkYXRhKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNhc2UgJ25vZGUnOlxuICAgICAgICAgICAgICBpZiAoZGF0YS5ub2RlID09PSAnYWdlbnRfdHJhbnNmZXInKSB7XG4gICAgICAgICAgICAgICAgc3RvcmUoKS5wYXRjaE1ldGEoc2Vzc2lvbklkLCB7IGlzTG9hZGluZzogdHJ1ZSB9KVxuICAgICAgICAgICAgICAgIHN0b3JlKCkuc2V0U3RhdHVzKHNlc3Npb25JZCwgJ3RoaW5raW5nJylcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhLm1lc3NhZ2UgJiYgdHlwZW9mIGRhdGEubWVzc2FnZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBzdG9yZSgpLnBhdGNoTWV0YShzZXNzaW9uSWQsIHsgaXNMb2FkaW5nOiB0cnVlIH0pXG4gICAgICAgICAgICAgICAgc3RvcmUoKS5zZXRTdGF0dXMoc2Vzc2lvbklkLCAndGhpbmtpbmcnKVxuICAgICAgICAgICAgICAgIHN0b3JlKCkuc2V0QWN0aXZpdHkoXG4gICAgICAgICAgICAgICAgICBzZXNzaW9uSWQsXG4gICAgICAgICAgICAgICAgICByZXNvbHZlSGl0bE5vZGVTdHJlYW1BY3Rpdml0eShcbiAgICAgICAgICAgICAgICAgICAgZGF0YS5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB0LFxuICAgICAgICAgICAgICAgICAgICBoaXRsRXhlY3V0aW9uQ29udGV4dCA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIHR5cGVvZiBkYXRhLnRocmVhZF9pZCA9PT0gJ3N0cmluZycgPyBkYXRhLnRocmVhZF9pZCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVha1xuXG4gICAgICAgICAgICBjYXNlICdjb21wbGV0ZSc6XG4gICAgICAgICAgICAgIGFwcGx5U3RyZWFtQ29tcGxldGUoZGF0YSlcbiAgICAgICAgICAgICAgYnJlYWtcblxuICAgICAgICAgICAgY2FzZSAnYXBwcm92YWxfcmVxdWlyZWQnOiB7XG4gICAgICAgICAgICAgIGZsdXNoUGVuZGluZygpXG4gICAgICAgICAgICAgIGNvbnN0IGlzTWFudWFsQXBwcm92YWwgPSBkYXRhLm1hbnVhbF9hcHByb3ZhbF9kZXRlY3RlZCA9PT0gdHJ1ZVxuICAgICAgICAgICAgICBzdG9yZSgpLnBhdGNoTWV0YShzZXNzaW9uSWQsIHsgaXNXcml0aW5nOiBmYWxzZSB9KVxuICAgICAgICAgICAgICBpZiAoIWlzTWFudWFsQXBwcm92YWwpIHtcbiAgICAgICAgICAgICAgICBzdG9yZSgpLnBhdGNoTWV0YShzZXNzaW9uSWQsIHsgaXNMb2FkaW5nOiBmYWxzZSB9KVxuICAgICAgICAgICAgICAgIHNlc3Npb25TdHJlYW1pbmdUZXh0LmNsZWFyKHNlc3Npb25JZClcbiAgICAgICAgICAgICAgICBzdG9yZSgpLnNldEFjdGl2aXR5KHNlc3Npb25JZCwgbnVsbClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBzdG9yZSgpLnNldFN0YXR1cyhzZXNzaW9uSWQsICdhd2FpdGluZ19hcHByb3ZhbCcpXG4gICAgICAgICAgICAgIGNhbGxiYWNrcy5vbkFwcHJvdmFsUmVxdWlyZWQ/LihkYXRhIGFzIEFwcHJvdmFsUmVxdWVzdCwgYWNjdW11bGF0ZWRDb250ZW50KVxuICAgICAgICAgICAgICBpZiAoaXNNYW51YWxBcHByb3ZhbCAmJiBBcnJheS5pc0FycmF5KGRhdGEucGVuZGluZ19hY3Rpb25zKSAmJiBkYXRhLnBlbmRpbmdfYWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgc3RvcmUoKS5wYXRjaE1ldGEoc2Vzc2lvbklkLCB7IGlzTG9hZGluZzogdHJ1ZSB9KVxuICAgICAgICAgICAgICAgIHN0b3JlKCkuc2V0U3RhdHVzKHNlc3Npb25JZCwgJ3RoaW5raW5nJylcbiAgICAgICAgICAgICAgICBzdG9yZSgpLnNldEFjdGl2aXR5KHNlc3Npb25JZCwgcmVzb2x2ZUluaXRpYWxIaXRsU3RyZWFtQWN0aXZpdHkodCwgaGl0bEV4ZWN1dGlvbkNvbnRleHQgPz8gdW5kZWZpbmVkKSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1NTRSBFcnJvcjonLCBkYXRhLmVycm9yKVxuICAgICAgICAgICAgICBmbHVzaFBlbmRpbmcoKVxuICAgICAgICAgICAgICBzZXNzaW9uU3RyZWFtaW5nVGV4dC5jbGVhcihzZXNzaW9uSWQpXG4gICAgICAgICAgICAgIHN0b3JlKCkucGF0Y2hNZXRhKHNlc3Npb25JZCwgeyBpc0xvYWRpbmc6IGZhbHNlLCBpc1dyaXRpbmc6IGZhbHNlIH0pXG4gICAgICAgICAgICAgIHN0b3JlKCkuc2V0QWN0aXZpdHkoc2Vzc2lvbklkLCBudWxsKVxuICAgICAgICAgICAgICBzdG9yZSgpLnNldEVycm9yKHNlc3Npb25JZCwgeyB0eXBlOiBkYXRhLmVycm9yPy50eXBlLCBtZXNzYWdlOiBkYXRhLmVycm9yPy5tZXNzYWdlIH0pXG4gICAgICAgICAgICAgIHN0b3JlKCkuc2V0U3RhdHVzKHNlc3Npb25JZCwgJ2Vycm9yJylcbiAgICAgICAgICAgICAgY2FsbGJhY2tzLm9uRXJyb3I/LihkYXRhLmVycm9yPy50eXBlLCBkYXRhLmVycm9yPy5tZXNzYWdlKVxuICAgICAgICAgICAgICBicmVha1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ1Vua25vd24gU1NFIGV2ZW50IHR5cGU6JywgZXZlbnRUeXBlKVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAocGFyc2VFcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBhcnNpbmcgU1NFIGRhdGE6JywgcGFyc2VFcnJvciwgZGF0YVN0cilcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICBmbHVzaFBlbmRpbmcoKVxuICB9XG59XG5cbi8qKlxuICogTWFuYWdlciBzaW5nbGV0b24gKG1vZHVsZS1sZXZlbCkgcXVlIGNvcnJlIE4gc3RyZWFtcyBkZWwgb3JjaGVzdHJhdG9yIGVuXG4gKiBwYXJhbGVsbywgdW5vIHBvciBgc2Vzc2lvbklkYC4gU29icmV2aXZlIGEgY2FtYmlvcyBkZSB2aXN0YSB5IGFsIGNpZXJyZSBkZWxcbiAqIG1vZGFsOiBsb3Mgc3RyZWFtcyBzb2xvIHNlIGNhbmNlbGFuIGNvbiBzdG9wIGV4cGzDrWNpdG8gZGVsIHVzdWFyaW8gbyBhbFxuICogY29tcGxldGFyL2Vycm9yYXIuXG4gKi9cbmV4cG9ydCBjb25zdCBzZXNzaW9uU3RyZWFtTWFuYWdlciA9IHtcbiAgaXNBY3RpdmU6IGlzU3RyZWFtQWN0aXZlLFxuICBnZXRBY3RpdmVDb3VudDogZ2V0QWN0aXZlU3RyZWFtQ291bnQsXG4gIGdldEFjdGl2ZVNlc3Npb25JZHM6ICgpOiBzdHJpbmdbXSA9PiBBcnJheS5mcm9tKGFjdGl2ZVN0cmVhbXMua2V5cygpKSxcblxuICBhc3luYyBzdGFydFN0cmVhbShwYXJhbXM6IFN0YXJ0U3RyZWFtUGFyYW1zKTogUHJvbWlzZTxTdGFydFN0cmVhbVJlc3VsdD4ge1xuICAgIGVuc3VyZVNlc3Npb25Ob3RpZmljYXRpb25zSW5pdGlhbGl6ZWQoKVxuXG4gICAgY29uc3QgeyBzZXNzaW9uSWQsIHBsYWNlaG9sZGVySWQsIHJlcXVlc3QsIGNhbGxiYWNrcywgdCwgYWN0aXZpdHlPcHRpb25zLCBhZ2VudElkLCBhZ2VudE5hbWUgfSA9IHBhcmFtc1xuXG4gICAgaWYgKGlzU3RyZWFtQWN0aXZlKHNlc3Npb25JZCkpIHtcbiAgICAgIHJldHVybiB7IHN0YXJ0ZWQ6IGZhbHNlLCByZWFzb246ICdhbHJlYWR5X2FjdGl2ZScgfVxuICAgIH1cbiAgICBpZiAoZ2V0QWN0aXZlU3RyZWFtQ291bnQoKSA+PSBNQVhfQ09OQ1VSUkVOVF9TVFJFQU1TKSB7XG4gICAgICByZXR1cm4geyBzdGFydGVkOiBmYWxzZSwgcmVhc29uOiAnbGltaXQnIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpXG4gICAgY29uc3QgYWN0aXZlOiBBY3RpdmVTdHJlYW0gPSB7IHNlc3Npb25JZCwgY29udHJvbGxlciwgaXNTdG9wcGVkOiBmYWxzZSB9XG4gICAgYWN0aXZlU3RyZWFtcy5zZXQoc2Vzc2lvbklkLCBhY3RpdmUpXG5cbiAgICBzdG9yZSgpLmVuc3VyZVNlc3Npb24oc2Vzc2lvbklkKVxuICAgIHN0b3JlKCkucGF0Y2hNZXRhKHNlc3Npb25JZCwge1xuICAgICAgcGxhY2Vob2xkZXJJZCxcbiAgICAgIGVycm9yOiBudWxsLFxuICAgICAgaXNMb2FkaW5nOiB0cnVlLFxuICAgICAgaXNXcml0aW5nOiBmYWxzZSxcbiAgICAgIC4uLihhZ2VudElkICE9IG51bGwgPyB7IGFnZW50SWQgfSA6IHt9KSxcbiAgICAgIC4uLihhZ2VudE5hbWUgIT0gbnVsbCA/IHsgYWdlbnROYW1lIH0gOiB7fSksXG4gICAgfSlcbiAgICBzdG9yZSgpLnNldFN0YXR1cyhzZXNzaW9uSWQsICd0aGlua2luZycpXG4gICAgc2Vzc2lvblN0cmVhbWluZ1RleHQuc3RhcnQoc2Vzc2lvbklkLCBwbGFjZWhvbGRlcklkKVxuICAgIHN0b3JlKCkuc2V0QWN0aXZpdHkoc2Vzc2lvbklkLCBnZXRJbml0aWFsU3RyZWFtQWN0aXZpdHkodCwgYWN0aXZpdHlPcHRpb25zID8/IHt9KSlcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG1haWEuT3JjaGVzdHJhdG9yLm9yY2hlc3RyYXRvcihyZXF1ZXN0LCBjb250cm9sbGVyLnNpZ25hbClcbiAgICAgIGF3YWl0IHBhcnNlU2Vzc2lvblNTRShyZXNwb25zZSwgYWN0aXZlLCBwYXJhbXMpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmICghYWN0aXZlLmlzU3RvcHBlZCkge1xuICAgICAgICBzZXNzaW9uU3RyZWFtaW5nVGV4dC5jbGVhcihzZXNzaW9uSWQpXG4gICAgICAgIHN0b3JlKCkucGF0Y2hNZXRhKHNlc3Npb25JZCwgeyBpc0xvYWRpbmc6IGZhbHNlLCBpc1dyaXRpbmc6IGZhbHNlIH0pXG4gICAgICAgIHN0b3JlKCkuc2V0QWN0aXZpdHkoc2Vzc2lvbklkLCBudWxsKVxuICAgICAgICBzdG9yZSgpLnNldFN0YXR1cyhzZXNzaW9uSWQsICdlcnJvcicpXG4gICAgICAgIGNhbGxiYWNrcy5vbkVycm9yPy4oKVxuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICBhY3RpdmVTdHJlYW1zLmRlbGV0ZShzZXNzaW9uSWQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHsgc3RhcnRlZDogdHJ1ZSB9XG4gIH0sXG5cbiAgLyoqIFJlc3VtZSBISVRMIChgY29udGludWUtdGhyZWFkYCkga2V5ZWQgcG9yIHNlc3Npb25JZCDigJQgbWlzbW8gbW90b3IgcXVlIG9yY2hlc3RyYXRvci4gKi9cbiAgYXN5bmMgc3RhcnRDb250aW51ZVN0cmVhbShwYXJhbXM6IFN0YXJ0Q29udGludWVTdHJlYW1QYXJhbXMpOiBQcm9taXNlPFN0YXJ0U3RyZWFtUmVzdWx0PiB7XG4gICAgZW5zdXJlU2Vzc2lvbk5vdGlmaWNhdGlvbnNJbml0aWFsaXplZCgpXG5cbiAgICBjb25zdCB7IHNlc3Npb25JZCwgcGxhY2Vob2xkZXJJZCwgY29udGludWVSZXF1ZXN0LCBjYWxsYmFja3MsIHQsIGhpdGxFeGVjdXRpb25Db250ZXh0LCBhZ2VudElkLCBhZ2VudE5hbWUgfSA9IHBhcmFtc1xuXG4gICAgaWYgKGlzU3RyZWFtQWN0aXZlKHNlc3Npb25JZCkpIHtcbiAgICAgIHJldHVybiB7IHN0YXJ0ZWQ6IGZhbHNlLCByZWFzb246ICdhbHJlYWR5X2FjdGl2ZScgfVxuICAgIH1cbiAgICBpZiAoZ2V0QWN0aXZlU3RyZWFtQ291bnQoKSA+PSBNQVhfQ09OQ1VSUkVOVF9TVFJFQU1TKSB7XG4gICAgICByZXR1cm4geyBzdGFydGVkOiBmYWxzZSwgcmVhc29uOiAnbGltaXQnIH1cbiAgICB9XG5cbiAgICBpZiAoaGl0bEV4ZWN1dGlvbkNvbnRleHQpIHtcbiAgICAgIHNlc3Npb25IaXRsQ29udGV4dC5zZXQoc2Vzc2lvbklkLCBoaXRsRXhlY3V0aW9uQ29udGV4dClcbiAgICB9XG5cbiAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpXG4gICAgY29uc3QgYWN0aXZlOiBBY3RpdmVTdHJlYW0gPSB7IHNlc3Npb25JZCwgY29udHJvbGxlciwgaXNTdG9wcGVkOiBmYWxzZSB9XG4gICAgYWN0aXZlU3RyZWFtcy5zZXQoc2Vzc2lvbklkLCBhY3RpdmUpXG5cbiAgICBzdG9yZSgpLmVuc3VyZVNlc3Npb24oc2Vzc2lvbklkKVxuICAgIHN0b3JlKCkucGF0Y2hNZXRhKHNlc3Npb25JZCwge1xuICAgICAgcGxhY2Vob2xkZXJJZCxcbiAgICAgIGVycm9yOiBudWxsLFxuICAgICAgaXNMb2FkaW5nOiB0cnVlLFxuICAgICAgaXNXcml0aW5nOiBmYWxzZSxcbiAgICAgIC4uLihhZ2VudElkICE9IG51bGwgPyB7IGFnZW50SWQgfSA6IHt9KSxcbiAgICAgIC4uLihhZ2VudE5hbWUgIT0gbnVsbCA/IHsgYWdlbnROYW1lIH0gOiB7fSksXG4gICAgfSlcbiAgICBzdG9yZSgpLnNldFN0YXR1cyhzZXNzaW9uSWQsICd0aGlua2luZycpXG4gICAgc2Vzc2lvblN0cmVhbWluZ1RleHQuc3RhcnQoc2Vzc2lvbklkLCBwbGFjZWhvbGRlcklkKVxuICAgIHN0b3JlKCkuc2V0QWN0aXZpdHkoXG4gICAgICBzZXNzaW9uSWQsXG4gICAgICByZXNvbHZlSW5pdGlhbEhpdGxTdHJlYW1BY3Rpdml0eSh0LCBoaXRsRXhlY3V0aW9uQ29udGV4dCA/PyBzZXNzaW9uSGl0bENvbnRleHQuZ2V0KHNlc3Npb25JZCkgPz8gdW5kZWZpbmVkKVxuICAgIClcblxuICAgIGNvbnN0IHNzZVBhcmFtczogU3RhcnRTdHJlYW1QYXJhbXMgPSB7XG4gICAgICBzZXNzaW9uSWQsXG4gICAgICBwbGFjZWhvbGRlcklkLFxuICAgICAgcmVxdWVzdDoge30gYXMgT3JjaGVzdHJhdG9yUmVxdWVzdCxcbiAgICAgIGNhbGxiYWNrcyxcbiAgICAgIHQsXG4gICAgICBoaXRsRXhlY3V0aW9uQ29udGV4dDogaGl0bEV4ZWN1dGlvbkNvbnRleHQgPz8gc2Vzc2lvbkhpdGxDb250ZXh0LmdldChzZXNzaW9uSWQpLFxuICAgICAgYWdlbnRJZCxcbiAgICAgIGFnZW50TmFtZSxcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBtYWlhLk9yY2hlc3RyYXRvci5jb250aW51ZVRocmVhZChjb250aW51ZVJlcXVlc3QsIGNvbnRyb2xsZXIuc2lnbmFsKVxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbnRpbnVlLXRocmVhZCBmYWlsZWQ6ICR7cmVzcG9uc2Uuc3RhdHVzfWApXG4gICAgICB9XG4gICAgICBhd2FpdCBwYXJzZVNlc3Npb25TU0UocmVzcG9uc2UsIGFjdGl2ZSwgc3NlUGFyYW1zKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoIWFjdGl2ZS5pc1N0b3BwZWQpIHtcbiAgICAgICAgc2Vzc2lvblN0cmVhbWluZ1RleHQuY2xlYXIoc2Vzc2lvbklkKVxuICAgICAgICBzdG9yZSgpLnBhdGNoTWV0YShzZXNzaW9uSWQsIHsgaXNMb2FkaW5nOiBmYWxzZSwgaXNXcml0aW5nOiBmYWxzZSB9KVxuICAgICAgICBzdG9yZSgpLnNldEFjdGl2aXR5KHNlc3Npb25JZCwgbnVsbClcbiAgICAgICAgc3RvcmUoKS5zZXRTdGF0dXMoc2Vzc2lvbklkLCAnZXJyb3InKVxuICAgICAgICBjYWxsYmFja3Mub25FcnJvcj8uKClcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgYWN0aXZlU3RyZWFtcy5kZWxldGUoc2Vzc2lvbklkKVxuICAgICAgc2Vzc2lvbkhpdGxDb250ZXh0LmNsZWFyKHNlc3Npb25JZClcbiAgICB9XG5cbiAgICByZXR1cm4geyBzdGFydGVkOiB0cnVlIH1cbiAgfSxcblxuICAvKiogQ2FuY2VsYWNpw7NuIGV4cGzDrWNpdGEgZGVsIHVzdWFyaW8gKG1lbnNhamUgXCJjYW5jZWxhZG9cIikuICovXG4gIHN0b3BTdHJlYW0oc2Vzc2lvbklkOiBzdHJpbmcsIGNhbGxiYWNrcz86IFNlc3Npb25TdHJlYW1DYWxsYmFja3MpIHtcbiAgICBjb25zdCBhY3RpdmUgPSBhY3RpdmVTdHJlYW1zLmdldChzZXNzaW9uSWQpXG4gICAgaWYgKCFhY3RpdmUpIHJldHVyblxuICAgIGFjdGl2ZS5pc1N0b3BwZWQgPSB0cnVlXG4gICAgYWN0aXZlLmNvbnRyb2xsZXIuYWJvcnQoKVxuICAgIGFjdGl2ZVN0cmVhbXMuZGVsZXRlKHNlc3Npb25JZClcbiAgICBzZXNzaW9uU3RyZWFtaW5nVGV4dC5jbGVhcihzZXNzaW9uSWQpXG4gICAgc3RvcmUoKS5wYXRjaE1ldGEoc2Vzc2lvbklkLCB7IGlzTG9hZGluZzogZmFsc2UsIGlzV3JpdGluZzogZmFsc2UgfSlcbiAgICBzdG9yZSgpLnNldEFjdGl2aXR5KHNlc3Npb25JZCwgbnVsbClcbiAgICBzdG9yZSgpLnNldFN0YXR1cyhzZXNzaW9uSWQsICdjYW5jZWxsZWQnKVxuICAgIGNhbGxiYWNrcz8ub25TdG9wPy4oKVxuICB9LFxuXG4gIC8qKiBBYm9ydGEgc2luIG1hcmNhciBcImNhbmNlbGFkb1wiICh1c28gaW50ZXJubyAvIGxpbXBpZXphKS4gKi9cbiAgYWJvcnRTaWxlbnRseShzZXNzaW9uSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGFjdGl2ZSA9IGFjdGl2ZVN0cmVhbXMuZ2V0KHNlc3Npb25JZClcbiAgICBpZiAoIWFjdGl2ZSkgcmV0dXJuXG4gICAgYWN0aXZlLmlzU3RvcHBlZCA9IHRydWVcbiAgICBhY3RpdmUuY29udHJvbGxlci5hYm9ydCgpXG4gICAgYWN0aXZlU3RyZWFtcy5kZWxldGUoc2Vzc2lvbklkKVxuICAgIHNlc3Npb25TdHJlYW1pbmdUZXh0LmNsZWFyKHNlc3Npb25JZClcbiAgICBzdG9yZSgpLnBhdGNoTWV0YShzZXNzaW9uSWQsIHsgaXNMb2FkaW5nOiBmYWxzZSwgaXNXcml0aW5nOiBmYWxzZSB9KVxuICAgIHN0b3JlKCkuc2V0QWN0aXZpdHkoc2Vzc2lvbklkLCBudWxsKVxuICAgIGlmIChzdG9yZSgpLmdldE1ldGEoc2Vzc2lvbklkKT8uc3RhdHVzICE9PSAnY29tcGxldGUnKSB7XG4gICAgICBzdG9yZSgpLnNldFN0YXR1cyhzZXNzaW9uSWQsICdpZGxlJylcbiAgICB9XG4gIH0sXG5cbiAgYWJvcnRBbGwoKSB7XG4gICAgQXJyYXkuZnJvbShhY3RpdmVTdHJlYW1zLmtleXMoKSkuZm9yRWFjaChzZXNzaW9uSWQgPT4gdGhpcy5hYm9ydFNpbGVudGx5KHNlc3Npb25JZCkpXG4gIH0sXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU9BLElBQUksTUFBTSxxQkFBcUI7QUFFdEMsU0FDRUMsd0JBQXdCLEVBQ3hCQyx5QkFBeUIsRUFDekJDLHdCQUF3QixFQUN4QkMsNkJBQTZCLEVBQzdCQyxnQ0FBZ0MsUUFDM0Isb0NBQW9DO0FBRTNDLFNBQVNDLHdCQUF3QixFQUFFQyxnQkFBZ0IsUUFBUSw4QkFBOEI7QUFDekYsU0FBU0Msb0JBQW9CLFFBQVEsd0JBQXdCO0FBQzdELFNBQVNDLGdCQUFnQixRQUFRLG9CQUFvQjtBQUNyRCxTQUFTQyxxQ0FBcUMsUUFBUSx3QkFBd0I7QUFDOUUsU0FBU0Msa0JBQWtCLFFBQVEsc0JBQXNCOztBQU16RDs7QUFxQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLHNCQUFzQixHQUFHLENBQUM7QUFFdkMsSUFBTUMsa0JBQWtCLEdBQUcsRUFBRTtBQUU3QixJQUFNQyxhQUFhLEdBQUcsSUFBSUMsR0FBRyxDQUF1QixDQUFDO0FBRXJELElBQU1DLEtBQUssR0FBRyxTQUFSQSxL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
@@ -32,4 +32,4 @@ export var isActiveSessionStatus = function isActiveSessionStatus(status) {
32
32
  /** Evento `maia-chat-session-meta` persistido para rehidratación sin refetch. */
33
33
 
34
34
  /** Cache en memoria de sesiones ya visitadas (evita refetch al volver). */
35
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBQ1RJVkVfU0VTU0lPTl9TVEFUVVNFUyIsImlzQWN0aXZlU2Vzc2lvblN0YXR1cyIsInN0YXR1cyIsImluY2x1ZGVzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JlL3Nlc3Npb25zL3Nlc3Npb25zLnR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2hhdE1lc3NhZ2UsIEFwcHJvdmFsUmVxdWVzdCB9IGZyb20gJy4uLy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQgdHlwZSB7IEFnZW50IH0gZnJvbSAnLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgdHlwZSB7IFN0cmVhbUFjdGl2aXR5IH0gZnJvbSAnLi4vLi4vdHlwZXMvc3RyZWFtQWN0aXZpdHknXG5cbi8qKlxuICogRXN0YWRvIGRlIGFsdG8gbml2ZWwgZGUgdW5hIHNlc2nDs24gcmVzcGVjdG8gYWwgYWdlbnRlLiBDYWRhIHNlc2nDs25cbiAqICh0aHJlYWQvY2hhdCkgdGllbmUgc3UgcHJvcGlvIGNpY2xvIGRlIHZpZGEgaW5kZXBlbmRpZW50ZSwgbG8gcXVlIHBlcm1pdGVcbiAqIHRlbmVyIHZhcmlhcyBnZW5lcmFuZG8gZW4gcGFyYWxlbG8uXG4gKi9cbmV4cG9ydCB0eXBlIFNlc3Npb25TdGF0dXMgPSAnaWRsZScgfCAndGhpbmtpbmcnIHwgJ3dyaXRpbmcnIHwgJ2F3YWl0aW5nX2FwcHJvdmFsJyB8ICdjb21wbGV0ZScgfCAnZXJyb3InIHwgJ2NhbmNlbGxlZCdcblxuLyoqIEVzdGFkb3MgZW4gbG9zIHF1ZSBsYSBzZXNpw7NuIGVzdMOhIHRyYWJhamFuZG8gKG1vc3RyYW1vcyBpbmRpY2Fkb3IpLiAqL1xuZXhwb3J0IGNvbnN0IEFDVElWRV9TRVNTSU9OX1NUQVRVU0VTOiByZWFkb25seSBTZXNzaW9uU3RhdHVzW10gPSBbJ3RoaW5raW5nJywgJ3dyaXRpbmcnLCAnYXdhaXRpbmdfYXBwcm92YWwnXVxuXG5leHBvcnQgY29uc3QgaXNBY3RpdmVTZXNzaW9uU3RhdHVzID0gKHN0YXR1czogU2Vzc2lvblN0YXR1cyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT5cbiAgc3RhdHVzICE9IG51bGwgJiYgQUNUSVZFX1NFU1NJT05fU1RBVFVTRVMuaW5jbHVkZXMoc3RhdHVzKVxuXG5leHBvcnQgdHlwZSBTZXNzaW9uRXJyb3IgPSB7XG4gIHR5cGU/OiBzdHJpbmdcbiAgbWVzc2FnZT86IHN0cmluZ1xufSB8IG51bGxcblxuLyoqXG4gKiBNZXRhZGF0YSByZWFjdGl2YSBkZSB1bmEgc2VzacOzbiAobG8gcXVlIGxhIFVJIG5lY2VzaXRhIHBhcmEgcGludGFyIGVzdGFkbyxcbiAqIGluZGljYWRvcmVzIHkgbm90aWZpY2FjaW9uZXMpLiBFbCB0ZXh0byBlbiB2aXZvIE5PIHZpdmUgYWPDoTogdmlhamEgcG9yXG4gKiBgc2Vzc2lvblN0cmVhbWluZ1RleHRgIHBhcmEgbm8gcmUtcmVuZGVyaXphciBsaXN0YXMgZW4gY2FkYSB0b2tlbi5cbiAqL1xuZXhwb3J0IHR5cGUgU2Vzc2lvblJ1bnRpbWVNZXRhID0ge1xuICBzZXNzaW9uSWQ6IHN0cmluZ1xuICBzdGF0dXM6IFNlc3Npb25TdGF0dXNcbiAgLyoqIEZpZWwgYSBgc2V0TG9hZGluZ2AgZGVsIG1vdG9yIG9yaWdpbmFsOiBoYXkgdW5hIHJlcXVlc3QgZW4gdnVlbG8uICovXG4gIGlzTG9hZGluZzogYm9vbGVhblxuICAvKiogRmllbCBhIGBzZXRJc1dyaXRpbmdgOiB5YSBsbGVnYXJvbiB0b2tlbnMgeSBzZSBlc3TDoSBwaW50YW5kbyB0ZXh0by4gKi9cbiAgaXNXcml0aW5nOiBib29sZWFuXG4gIHN0cmVhbUFjdGl2aXR5OiBTdHJlYW1BY3Rpdml0eSB8IG51bGxcbiAgbG9hZGluZ01lc3NhZ2U6IHN0cmluZyB8IG51bGxcbiAgLyoqIElkIGRlbCBtZW5zYWplIHBsYWNlaG9sZGVyIHF1ZSBzZSBlc3TDoSBwaW50YW5kbyBtaWVudHJhcyBoYWNlIHN0cmVhbWluZy4gKi9cbiAgcGxhY2Vob2xkZXJJZDogc3RyaW5nIHwgbnVsbFxuICBzdGFydGVkQXQ6IG51bWJlciB8IG51bGxcbiAgZmluaXNoZWRBdDogbnVtYmVyIHwgbnVsbFxuICBhZ2VudElkPzogc3RyaW5nIHwgbnVtYmVyXG4gIGFnZW50TmFtZT86IHN0cmluZ1xuICB0aXRsZT86IHN0cmluZyB8IG51bGxcbiAgZXJyb3I6IFNlc3Npb25FcnJvclxufVxuXG4vKiogU25hcHNob3QgZGVsIHRleHRvIGVuIHN0cmVhbWluZyBkZSB1bmEgc2VzacOzbiAoaG90IHBhdGgpLiAqL1xuZXhwb3J0IHR5cGUgU2Vzc2lvblN0cmVhbWluZ1NuYXBzaG90ID0ge1xuICBwbGFjZWhvbGRlcklkOiBzdHJpbmcgfCBudWxsXG4gIHRleHQ6IHN0cmluZ1xufVxuXG4vKiogUGF5bG9hZCBjb25zb2xpZGFkbyBxdWUgZW1pdGUgZWwgbWFuYWdlciBhbCBjb21wbGV0YXIgdW4gc3RyZWFtLiAqL1xuZXhwb3J0IHR5cGUgU2Vzc2lvbkZpbmlzaFBheWxvYWQgPSB7XG4gIGNvbnRlbnQ6IHN0cmluZ1xuICBzb3VyY2VzOiB1bmtub3duXG4gIG1lbW9yeVNlc3Npb25JZDogc3RyaW5nXG4gIGF0dGFjaG1lbnRzOiB1bmtub3duW10gfCBudWxsXG4gIHN1Z2dlc3Rpb25zOiBzdHJpbmdbXSB8IG51bGxcbiAgY29tcGxldGVkQWdlbnRJZDogc3RyaW5nIHwgbnVsbFxuICByZXNvbHZlZENvbnRleHQ6IHVua25vd25cbn1cblxuLyoqXG4gKiBDYWxsYmFja3MgcG9yIHNlc2nDs24gcGFyYSBxdWUgYHVzZUNoYXRNYW5hZ2VyYCByZWFjY2lvbmUgYWwgY2ljbG8gZGUgdmlkYVxuICogZGVsIHN0cmVhbSBzaW4gYWNvcGxhciBsYSBsw7NnaWNhIGRlIG1lbnNhamVzIC8gc2lkZS1lZmZlY3RzIGFsIG1hbmFnZXIuXG4gKi9cbmV4cG9ydCB0eXBlIFNlc3Npb25TdHJlYW1DYWxsYmFja3MgPSB7XG4gIG9uU3RyZWFtVXBkYXRlPzogKGNvbnRlbnQ6IHN0cmluZykgPT4gdm9pZFxuICBvblN0YXJ0V3JpdGluZz86ICgpID0+IHZvaWRcbiAgb25GaW5pc2hTdHJlYW0/OiAocGF5bG9hZDogU2Vzc2lvbkZpbmlzaFBheWxvYWQpID0+IHZvaWRcbiAgb25TdG9wPzogKHBhcnRpYWxUZXh0OiBzdHJpbmcpID0+IHZvaWRcbiAgb25FcnJvcj86IChlcnJvclR5cGU/OiBzdHJpbmcsIGVycm9yTWVzc2FnZT86IHN0cmluZykgPT4gdm9pZFxuICBvbkFwcHJvdmFsUmVxdWlyZWQ/OiAoYXBwcm92YWw6IEFwcHJvdmFsUmVxdWVzdCwgYWNjdW11bGF0ZWRDb250ZW50OiBzdHJpbmcpID0+IHZvaWRcbn1cblxuZXhwb3J0IHR5cGUgU3RhcnRTdHJlYW1SZXN1bHQgPVxuICB7IHN0YXJ0ZWQ6IHRydWUgfSB8IHsgc3RhcnRlZDogZmFsc2U7IHJlYXNvbjogJ2xpbWl0JyB8ICdhbHJlYWR5X2FjdGl2ZScgfCAndHVybl9ub3RfZm91bmQnIH1cblxuLyoqIFNsaWNlIGRlIG1lbnNhamVzIHBvciBzZXNpw7NuIChmdWxsIHN0b3JlKS4gKi9cbmV4cG9ydCB0eXBlIFNlc3Npb25NZXNzYWdlc01hcCA9IFJlY29yZDxzdHJpbmcsIENoYXRNZXNzYWdlW10+XG5cbi8qKiBDb250ZXh0byBkZSBjb252ZXJzYWNpw7NuIHJlc3RhdXJhYmxlIGFsIHJlYWJyaXIgdW5hIHNlc2nDs24gY2FjaGVhZGEuICovXG5leHBvcnQgdHlwZSBTZXNzaW9uQ29udmVyc2F0aW9uTWV0YSA9IHtcbiAgcHJvamVjdElkTWVzc2FnZT86IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgcHJvamVjdE5hbWVGcm9tU2Vzc2lvbj86IHN0cmluZyB8IG51bGxcbiAgY2xpZW50SWRGcm9tU2Vzc2lvbj86IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgY2xpZW50TmFtZUZyb21TZXNzaW9uPzogc3RyaW5nIHwgbnVsbFxuICB0YXNrSWRGcm9tU2Vzc2lvbj86IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgdGFza05hbWVGcm9tU2Vzc2lvbj86IHN0cmluZyB8IG51bGxcbn1cblxuLyoqIEV2ZW50byBgbWFpYS1jaGF0LXNlc3Npb24tbWV0YWAgcGVyc2lzdGlkbyBwYXJhIHJlaGlkcmF0YWNpw7NuIHNpbiByZWZldGNoLiAqL1xuZXhwb3J0IHR5cGUgU2Vzc2lvbk1ldGFFdmVudERldGFpbCA9IHtcbiAgY2hhdElkOiBzdHJpbmdcbiAgYWdlbnRUeXBlPzogc3RyaW5nXG4gIGFnZW50RW50aXR5Pzogc3RyaW5nXG4gIHByb2plY3RJZD86IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgcHJvamVjdE5hbWU/OiBzdHJpbmcgfCBudWxsXG4gIGNsaWVudElkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbFxuICBjbGllbnROYW1lPzogc3RyaW5nIHwgbnVsbFxuICB0YXNrSWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIHRhc2tOYW1lPzogc3RyaW5nIHwgbnVsbFxufVxuXG4vKiogQ2FjaGUgZW4gbWVtb3JpYSBkZSBzZXNpb25lcyB5YSB2aXNpdGFkYXMgKGV2aXRhIHJlZmV0Y2ggYWwgdm9sdmVyKS4gKi9cbmV4cG9ydCB0eXBlIFNlc3Npb25WaWV3Q2FjaGUgPSB7XG4gIGh5ZHJhdGVkRnJvbUFwaTogYm9vbGVhblxuICBsYXN0RXZhbHVhdGVkS2V5OiBudW1iZXIgfCB1bmRlZmluZWRcbiAgY29udmVyc2F0aW9uTWV0YTogU2Vzc2lvbkNvbnZlcnNhdGlvbk1ldGEgfCBudWxsXG4gIHNlc3Npb25NZXRhRXZlbnQ6IFNlc3Npb25NZXRhRXZlbnREZXRhaWwgfCBudWxsXG4gIGFnZW50U25hcHNob3Q6IEFnZW50IHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBTZXNzaW9uVmlld0NhY2hlTWFwID0gUmVjb3JkPHN0cmluZywgU2Vzc2lvblZpZXdDYWNoZT5cbiJdLCJtYXBwaW5ncyI6IkFBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFHQTtBQUNBLE9BQU8sSUFBTUEsdUJBQWlELEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixDQUFDO0FBRTdHLE9BQU8sSUFBTUMscUJBQXFCLEdBQUcsU0FBeEJBLHFCQUFxQkEsQ0FBSUMsTUFBaUM7RUFBQSxPQUNyRUEsTUFBTSxJQUFJLElBQUksSUFBSUYsdUJBQXVCLENBQUNHLFFBQVEsQ0FBQ0QsTUFBTSxDQUFDO0FBQUE7O0FBTzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBb0JBOztBQU1BOztBQVdBO0FBQ0E7QUFDQTtBQUNBOztBQWFBOztBQUdBOztBQVVBOztBQWFBIiwiaWdub3JlTGlzdCI6W119
35
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBQ1RJVkVfU0VTU0lPTl9TVEFUVVNFUyIsImlzQWN0aXZlU2Vzc2lvblN0YXR1cyIsInN0YXR1cyIsImluY2x1ZGVzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JlL3Nlc3Npb25zL3Nlc3Npb25zLnR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2hhdE1lc3NhZ2UsIEFwcHJvdmFsUmVxdWVzdCB9IGZyb20gJy4uLy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQgdHlwZSB7IEFnZW50IH0gZnJvbSAnLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgdHlwZSB7IFN0cmVhbUFjdGl2aXR5IH0gZnJvbSAnLi4vLi4vdHlwZXMvc3RyZWFtQWN0aXZpdHknXG5cbi8qKlxuICogRXN0YWRvIGRlIGFsdG8gbml2ZWwgZGUgdW5hIHNlc2nDs24gcmVzcGVjdG8gYWwgYWdlbnRlLiBDYWRhIHNlc2nDs25cbiAqICh0aHJlYWQvY2hhdCkgdGllbmUgc3UgcHJvcGlvIGNpY2xvIGRlIHZpZGEgaW5kZXBlbmRpZW50ZSwgbG8gcXVlIHBlcm1pdGVcbiAqIHRlbmVyIHZhcmlhcyBnZW5lcmFuZG8gZW4gcGFyYWxlbG8uXG4gKi9cbmV4cG9ydCB0eXBlIFNlc3Npb25TdGF0dXMgPSAnaWRsZScgfCAndGhpbmtpbmcnIHwgJ3dyaXRpbmcnIHwgJ2F3YWl0aW5nX2FwcHJvdmFsJyB8ICdjb21wbGV0ZScgfCAnZXJyb3InIHwgJ2NhbmNlbGxlZCdcblxuLyoqIEVzdGFkb3MgZW4gbG9zIHF1ZSBsYSBzZXNpw7NuIGVzdMOhIHRyYWJhamFuZG8gKG1vc3RyYW1vcyBpbmRpY2Fkb3IpLiAqL1xuZXhwb3J0IGNvbnN0IEFDVElWRV9TRVNTSU9OX1NUQVRVU0VTOiByZWFkb25seSBTZXNzaW9uU3RhdHVzW10gPSBbJ3RoaW5raW5nJywgJ3dyaXRpbmcnLCAnYXdhaXRpbmdfYXBwcm92YWwnXVxuXG5leHBvcnQgY29uc3QgaXNBY3RpdmVTZXNzaW9uU3RhdHVzID0gKHN0YXR1czogU2Vzc2lvblN0YXR1cyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT5cbiAgc3RhdHVzICE9IG51bGwgJiYgQUNUSVZFX1NFU1NJT05fU1RBVFVTRVMuaW5jbHVkZXMoc3RhdHVzKVxuXG5leHBvcnQgdHlwZSBTZXNzaW9uRXJyb3IgPSB7XG4gIHR5cGU/OiBzdHJpbmdcbiAgbWVzc2FnZT86IHN0cmluZ1xufSB8IG51bGxcblxuLyoqXG4gKiBNZXRhZGF0YSByZWFjdGl2YSBkZSB1bmEgc2VzacOzbiAobG8gcXVlIGxhIFVJIG5lY2VzaXRhIHBhcmEgcGludGFyIGVzdGFkbyxcbiAqIGluZGljYWRvcmVzIHkgbm90aWZpY2FjaW9uZXMpLiBFbCB0ZXh0byBlbiB2aXZvIE5PIHZpdmUgYWPDoTogdmlhamEgcG9yXG4gKiBgc2Vzc2lvblN0cmVhbWluZ1RleHRgIHBhcmEgbm8gcmUtcmVuZGVyaXphciBsaXN0YXMgZW4gY2FkYSB0b2tlbi5cbiAqL1xuZXhwb3J0IHR5cGUgU2Vzc2lvblJ1bnRpbWVNZXRhID0ge1xuICBzZXNzaW9uSWQ6IHN0cmluZ1xuICBzdGF0dXM6IFNlc3Npb25TdGF0dXNcbiAgLyoqIEZpZWwgYSBgc2V0TG9hZGluZ2AgZGVsIG1vdG9yIG9yaWdpbmFsOiBoYXkgdW5hIHJlcXVlc3QgZW4gdnVlbG8uICovXG4gIGlzTG9hZGluZzogYm9vbGVhblxuICAvKiogRmllbCBhIGBzZXRJc1dyaXRpbmdgOiB5YSBsbGVnYXJvbiB0b2tlbnMgeSBzZSBlc3TDoSBwaW50YW5kbyB0ZXh0by4gKi9cbiAgaXNXcml0aW5nOiBib29sZWFuXG4gIHN0cmVhbUFjdGl2aXR5OiBTdHJlYW1BY3Rpdml0eSB8IG51bGxcbiAgbG9hZGluZ01lc3NhZ2U6IHN0cmluZyB8IG51bGxcbiAgLyoqIElkIGRlbCBtZW5zYWplIHBsYWNlaG9sZGVyIHF1ZSBzZSBlc3TDoSBwaW50YW5kbyBtaWVudHJhcyBoYWNlIHN0cmVhbWluZy4gKi9cbiAgcGxhY2Vob2xkZXJJZDogc3RyaW5nIHwgbnVsbFxuICBzdGFydGVkQXQ6IG51bWJlciB8IG51bGxcbiAgZmluaXNoZWRBdDogbnVtYmVyIHwgbnVsbFxuICBhZ2VudElkPzogc3RyaW5nIHwgbnVtYmVyXG4gIGFnZW50TmFtZT86IHN0cmluZ1xuICB0aXRsZT86IHN0cmluZyB8IG51bGxcbiAgZXJyb3I6IFNlc3Npb25FcnJvclxufVxuXG4vKiogU25hcHNob3QgZGVsIHRleHRvIGVuIHN0cmVhbWluZyBkZSB1bmEgc2VzacOzbiAoaG90IHBhdGgpLiAqL1xuZXhwb3J0IHR5cGUgU2Vzc2lvblN0cmVhbWluZ1NuYXBzaG90ID0ge1xuICBwbGFjZWhvbGRlcklkOiBzdHJpbmcgfCBudWxsXG4gIHRleHQ6IHN0cmluZ1xufVxuXG4vKiogUGF5bG9hZCBjb25zb2xpZGFkbyBxdWUgZW1pdGUgZWwgbWFuYWdlciBhbCBjb21wbGV0YXIgdW4gc3RyZWFtLiAqL1xuZXhwb3J0IHR5cGUgU2Vzc2lvbkZpbmlzaFBheWxvYWQgPSB7XG4gIGNvbnRlbnQ6IHN0cmluZ1xuICBzb3VyY2VzOiB1bmtub3duXG4gIG1lbW9yeVNlc3Npb25JZDogc3RyaW5nXG4gIGF0dGFjaG1lbnRzOiB1bmtub3duW10gfCBudWxsXG4gIHN1Z2dlc3Rpb25zOiBzdHJpbmdbXSB8IG51bGxcbiAgY29tcGxldGVkQWdlbnRJZDogc3RyaW5nIHwgbnVsbFxuICByZXNvbHZlZENvbnRleHQ6IHVua25vd25cbn1cblxuLyoqXG4gKiBDYWxsYmFja3MgcG9yIHNlc2nDs24gcGFyYSBxdWUgYHVzZUNoYXRNYW5hZ2VyYCByZWFjY2lvbmUgYWwgY2ljbG8gZGUgdmlkYVxuICogZGVsIHN0cmVhbSBzaW4gYWNvcGxhciBsYSBsw7NnaWNhIGRlIG1lbnNhamVzIC8gc2lkZS1lZmZlY3RzIGFsIG1hbmFnZXIuXG4gKi9cbmV4cG9ydCB0eXBlIFNlc3Npb25TdHJlYW1DYWxsYmFja3MgPSB7XG4gIG9uU3RyZWFtVXBkYXRlPzogKGNvbnRlbnQ6IHN0cmluZykgPT4gdm9pZFxuICBvblN0YXJ0V3JpdGluZz86ICgpID0+IHZvaWRcbiAgb25GaW5pc2hTdHJlYW0/OiAocGF5bG9hZDogU2Vzc2lvbkZpbmlzaFBheWxvYWQpID0+IHZvaWRcbiAgb25TdG9wPzogKCkgPT4gdm9pZFxuICBvbkVycm9yPzogKGVycm9yVHlwZT86IHN0cmluZywgZXJyb3JNZXNzYWdlPzogc3RyaW5nKSA9PiB2b2lkXG4gIG9uQXBwcm92YWxSZXF1aXJlZD86IChhcHByb3ZhbDogQXBwcm92YWxSZXF1ZXN0LCBhY2N1bXVsYXRlZENvbnRlbnQ6IHN0cmluZykgPT4gdm9pZFxufVxuXG5leHBvcnQgdHlwZSBTdGFydFN0cmVhbVJlc3VsdCA9IHsgc3RhcnRlZDogdHJ1ZSB9IHwgeyBzdGFydGVkOiBmYWxzZTsgcmVhc29uOiAnbGltaXQnIHwgJ2FscmVhZHlfYWN0aXZlJyB9XG5cbi8qKiBTbGljZSBkZSBtZW5zYWplcyBwb3Igc2VzacOzbiAoZnVsbCBzdG9yZSkuICovXG5leHBvcnQgdHlwZSBTZXNzaW9uTWVzc2FnZXNNYXAgPSBSZWNvcmQ8c3RyaW5nLCBDaGF0TWVzc2FnZVtdPlxuXG4vKiogQ29udGV4dG8gZGUgY29udmVyc2FjacOzbiByZXN0YXVyYWJsZSBhbCByZWFicmlyIHVuYSBzZXNpw7NuIGNhY2hlYWRhLiAqL1xuZXhwb3J0IHR5cGUgU2Vzc2lvbkNvbnZlcnNhdGlvbk1ldGEgPSB7XG4gIHByb2plY3RJZE1lc3NhZ2U/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIHByb2plY3ROYW1lRnJvbVNlc3Npb24/OiBzdHJpbmcgfCBudWxsXG4gIGNsaWVudElkRnJvbVNlc3Npb24/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIGNsaWVudE5hbWVGcm9tU2Vzc2lvbj86IHN0cmluZyB8IG51bGxcbiAgdGFza0lkRnJvbVNlc3Npb24/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIHRhc2tOYW1lRnJvbVNlc3Npb24/OiBzdHJpbmcgfCBudWxsXG59XG5cbi8qKiBFdmVudG8gYG1haWEtY2hhdC1zZXNzaW9uLW1ldGFgIHBlcnNpc3RpZG8gcGFyYSByZWhpZHJhdGFjacOzbiBzaW4gcmVmZXRjaC4gKi9cbmV4cG9ydCB0eXBlIFNlc3Npb25NZXRhRXZlbnREZXRhaWwgPSB7XG4gIGNoYXRJZDogc3RyaW5nXG4gIGFnZW50VHlwZT86IHN0cmluZ1xuICBhZ2VudEVudGl0eT86IHN0cmluZ1xuICBwcm9qZWN0SWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIHByb2plY3ROYW1lPzogc3RyaW5nIHwgbnVsbFxuICBjbGllbnRJZD86IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgY2xpZW50TmFtZT86IHN0cmluZyB8IG51bGxcbiAgdGFza0lkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbFxuICB0YXNrTmFtZT86IHN0cmluZyB8IG51bGxcbn1cblxuLyoqIENhY2hlIGVuIG1lbW9yaWEgZGUgc2VzaW9uZXMgeWEgdmlzaXRhZGFzIChldml0YSByZWZldGNoIGFsIHZvbHZlcikuICovXG5leHBvcnQgdHlwZSBTZXNzaW9uVmlld0NhY2hlID0ge1xuICBoeWRyYXRlZEZyb21BcGk6IGJvb2xlYW5cbiAgbGFzdEV2YWx1YXRlZEtleTogbnVtYmVyIHwgdW5kZWZpbmVkXG4gIGNvbnZlcnNhdGlvbk1ldGE6IFNlc3Npb25Db252ZXJzYXRpb25NZXRhIHwgbnVsbFxuICBzZXNzaW9uTWV0YUV2ZW50OiBTZXNzaW9uTWV0YUV2ZW50RGV0YWlsIHwgbnVsbFxuICBhZ2VudFNuYXBzaG90OiBBZ2VudCB8IG51bGxcbn1cblxuZXhwb3J0IHR5cGUgU2Vzc2lvblZpZXdDYWNoZU1hcCA9IFJlY29yZDxzdHJpbmcsIFNlc3Npb25WaWV3Q2FjaGU+XG4iXSwibWFwcGluZ3MiOiJBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBR0E7QUFDQSxPQUFPLElBQU1BLHVCQUFpRCxHQUFHLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQztBQUU3RyxPQUFPLElBQU1DLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBcUJBLENBQUlDLE1BQWlDO0VBQUEsT0FDckVBLE1BQU0sSUFBSSxJQUFJLElBQUlGLHVCQUF1QixDQUFDRyxRQUFRLENBQUNELE1BQU0sQ0FBQztBQUFBOztBQU81RDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQW9CQTs7QUFNQTs7QUFXQTtBQUNBO0FBQ0E7QUFDQTs7QUFZQTs7QUFHQTs7QUFVQTs7QUFhQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1,4 +1,7 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
1
2
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2
5
  import { isMaiakerAgent } from './agentDisplayName';
3
6
 
4
7
  /** Alineado con TOOL_PERMISSION_MAP / TOOL_DISPLAY_NAMES en maia (snake_case). */
@@ -23,9 +26,40 @@ export function getHitlAnalyticsAgentType(agent) {
23
26
  if (agent.type === 'clone' || agent.type === 'orchestrator') return 'clone';
24
27
  return 'custom';
25
28
  }
29
+ export function buildHitlAnalyticsPayload(agentTypeForEvent, actions) {
30
+ return {
31
+ agent_type: agentTypeForEvent,
32
+ action_type: buildHitlActionTypeList(actions)
33
+ };
34
+ }
35
+ export function getHitlBatchKey(originalThreadId, actions) {
36
+ if (originalThreadId) return originalThreadId;
37
+ return actions.map(function (action) {
38
+ return "".concat(action.thread_id, ":").concat(action.tool_call_id);
39
+ }).sort().join('|');
40
+ }
41
+
42
+ /** Trackea impresión + decisión accept para HITL resuelto por texto (sin ApprovalBox). */
43
+ export function trackManualHitlEvents(triggerEvent, eventNames, agent, approval, trackedKeys) {
44
+ var _approval$pending_act;
45
+ var pendingActions = (_approval$pending_act = approval.pending_actions) !== null && _approval$pending_act !== void 0 ? _approval$pending_act : [];
46
+ if (!pendingActions.length) return;
47
+ var batchKey = getHitlBatchKey(approval.original_thread_id, pendingActions);
48
+ if (trackedKeys.has(batchKey)) return;
49
+ trackedKeys.add(batchKey);
50
+ var agentType = getHitlAnalyticsAgentType(agent);
51
+ var payload = buildHitlAnalyticsPayload(agentType, pendingActions);
52
+ triggerEvent(eventNames.impression, payload);
53
+ if (!hitlBatchIncludesCreateAgent(pendingActions)) {
54
+ triggerEvent(eventNames.option, _objectSpread(_objectSpread({}, payload), {}, {
55
+ decision: 'accept',
56
+ resolution_source: 'manual'
57
+ }));
58
+ }
59
+ }
26
60
 
27
61
  /** Para AI_CHAT_PLUS_OPEN y AI_CHAT_TOOLS (menú + del input): solo `clone` | `custom`. */
28
62
  export function getChatToolsMenuAgentType(agent) {
29
63
  return (agent === null || agent === void 0 ? void 0 : agent.type) === 'clone' || (agent === null || agent === void 0 ? void 0 : agent.type) === 'orchestrator' ? 'clone' : 'custom';
30
64
  }
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc01haWFrZXJBZ2VudCIsIm5vcm1hbGl6ZUhpdGxUb29sTmFtZSIsInRvb2xOYW1lIiwibiIsInRvTG93ZXJDYXNlIiwidHJpbSIsImJ1aWxkSGl0bEFjdGlvblR5cGVMaXN0IiwiYWN0aW9ucyIsIl90b0NvbnN1bWFibGVBcnJheSIsIlNldCIsIm1hcCIsImEiLCJ0b29sX25hbWUiLCJzb3J0Iiwiam9pbiIsImhpdGxCYXRjaEluY2x1ZGVzQ3JlYXRlQWdlbnQiLCJzb21lIiwiZ2V0SGl0bEFuYWx5dGljc0FnZW50VHlwZSIsImFnZW50IiwidHlwZSIsImdldENoYXRUb29sc01lbnVBZ2VudFR5cGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaGl0bEFuYWx5dGljcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFnZW50IH0gZnJvbSAnLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBpc01haWFrZXJBZ2VudCB9IGZyb20gJy4vYWdlbnREaXNwbGF5TmFtZSdcblxuLyoqIEFsaW5lYWRvIGNvbiBUT09MX1BFUk1JU1NJT05fTUFQIC8gVE9PTF9ESVNQTEFZX05BTUVTIGVuIG1haWEgKHNuYWtlX2Nhc2UpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUhpdGxUb29sTmFtZSh0b29sTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbiA9ICh0b29sTmFtZSB8fCAndW5rbm93bicpLnRvTG93ZXJDYXNlKCkudHJpbSgpXG4gIGlmIChuID09PSAnYXNzaWduJykgcmV0dXJuICd0YXNrX2Fzc2lnbidcbiAgcmV0dXJuIG5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkSGl0bEFjdGlvblR5cGVMaXN0KGFjdGlvbnM6IHsgdG9vbF9uYW1lOiBzdHJpbmcgfVtdKTogc3RyaW5nIHtcbiAgcmV0dXJuIFsuLi5uZXcgU2V0KGFjdGlvbnMubWFwKGEgPT4gbm9ybWFsaXplSGl0bFRvb2xOYW1lKGEudG9vbF9uYW1lKSkpXS5zb3J0KCkuam9pbignLCcpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoaXRsQmF0Y2hJbmNsdWRlc0NyZWF0ZUFnZW50KGFjdGlvbnM6IHsgdG9vbF9uYW1lOiBzdHJpbmcgfVtdKTogYm9vbGVhbiB7XG4gIHJldHVybiBhY3Rpb25zLnNvbWUoYSA9PiBub3JtYWxpemVIaXRsVG9vbE5hbWUoYS50b29sX25hbWUpID09PSAnY3JlYXRlX2FnZW50Jylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEhpdGxBbmFseXRpY3NBZ2VudFR5cGUoXG4gIGFnZW50OiBQaWNrPEFnZW50LCAndHlwZScgfCAnbmFtZScgfCAnZW50aXR5Jz4gfCBudWxsIHwgdW5kZWZpbmVkXG4pOiAnY2xvbmUnIHwgJ2N1c3RvbScgfCAnbWFya2V0cGxhY2UnIHtcbiAgaWYgKCFhZ2VudCkgcmV0dXJuICdjdXN0b20nXG4gIGlmIChpc01haWFrZXJBZ2VudChhZ2VudCkpIHJldHVybiAnbWFya2V0cGxhY2UnXG4gIGlmIChhZ2VudC50eXBlID09PSAnY2xvbmUnIHx8IGFnZW50LnR5cGUgPT09ICdvcmNoZXN0cmF0b3InKSByZXR1cm4gJ2Nsb25lJ1xuICByZXR1cm4gJ2N1c3RvbSdcbn1cblxuLyoqIFBhcmEgQUlfQ0hBVF9QTFVTX09QRU4geSBBSV9DSEFUX1RPT0xTIChtZW7DuiArIGRlbCBpbnB1dCk6IHNvbG8gYGNsb25lYCB8IGBjdXN0b21gLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENoYXRUb29sc01lbnVBZ2VudFR5cGUoYWdlbnQ6IFBpY2s8QWdlbnQsICd0eXBlJz4gfCBudWxsIHwgdW5kZWZpbmVkKTogJ2Nsb25lJyB8ICdjdXN0b20nIHtcbiAgcmV0dXJuIGFnZW50Py50eXBlID09PSAnY2xvbmUnIHx8IGFnZW50Py50eXBlID09PSAnb3JjaGVzdHJhdG9yJyA/ICdjbG9uZScgOiAnY3VzdG9tJ1xufVxuIl0sIm1hcHBpbmdzIjoiO0FBQ0EsU0FBU0EsY0FBYyxRQUFRLG9CQUFvQjs7QUFFbkQ7QUFDQSxPQUFPLFNBQVNDLHFCQUFxQkEsQ0FBQ0MsUUFBZ0IsRUFBVTtFQUM5RCxJQUFNQyxDQUFDLEdBQUcsQ0FBQ0QsUUFBUSxJQUFJLFNBQVMsRUFBRUUsV0FBVyxDQUFDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLENBQUM7RUFDdEQsSUFBSUYsQ0FBQyxLQUFLLFFBQVEsRUFBRSxPQUFPLGFBQWE7RUFDeEMsT0FBT0EsQ0FBQztBQUNWO0FBRUEsT0FBTyxTQUFTRyx1QkFBdUJBLENBQUNDLE9BQWdDLEVBQVU7RUFDaEYsT0FBT0Msa0JBQUEsQ0FBSSxJQUFJQyxHQUFHLENBQUNGLE9BQU8sQ0FBQ0csR0FBRyxDQUFDLFVBQUFDLENBQUM7SUFBQSxPQUFJVixxQkFBcUIsQ0FBQ1UsQ0FBQyxDQUFDQyxTQUFTLENBQUM7RUFBQSxFQUFDLENBQUMsRUFBRUMsSUFBSSxDQUFDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLEdBQUcsQ0FBQztBQUM1RjtBQUVBLE9BQU8sU0FBU0MsNEJBQTRCQSxDQUFDUixPQUFnQyxFQUFXO0VBQ3RGLE9BQU9BLE9BQU8sQ0FBQ1MsSUFBSSxDQUFDLFVBQUFMLENBQUM7SUFBQSxPQUFJVixxQkFBcUIsQ0FBQ1UsQ0FBQyxDQUFDQyxTQUFTLENBQUMsS0FBSyxjQUFjO0VBQUEsRUFBQztBQUNqRjtBQUVBLE9BQU8sU0FBU0sseUJBQXlCQSxDQUN2Q0MsS0FBaUUsRUFDN0I7RUFDcEMsSUFBSSxDQUFDQSxLQUFLLEVBQUUsT0FBTyxRQUFRO0VBQzNCLElBQUlsQixjQUFjLENBQUNrQixLQUFLLENBQUMsRUFBRSxPQUFPLGFBQWE7RUFDL0MsSUFBSUEsS0FBSyxDQUFDQyxJQUFJLEtBQUssT0FBTyxJQUFJRCxLQUFLLENBQUNDLElBQUksS0FBSyxjQUFjLEVBQUUsT0FBTyxPQUFPO0VBQzNFLE9BQU8sUUFBUTtBQUNqQjs7QUFFQTtBQUNBLE9BQU8sU0FBU0MseUJBQXlCQSxDQUFDRixLQUE2QyxFQUFzQjtFQUMzRyxPQUFPLENBQUFBLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFQyxJQUFJLE1BQUssT0FBTyxJQUFJLENBQUFELEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFQyxJQUFJLE1BQUssY0FBYyxHQUFHLE9BQU8sR0FBRyxRQUFRO0FBQ3ZGIiwiaWdub3JlTGlzdCI6W119
65
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc01haWFrZXJBZ2VudCIsIm5vcm1hbGl6ZUhpdGxUb29sTmFtZSIsInRvb2xOYW1lIiwibiIsInRvTG93ZXJDYXNlIiwidHJpbSIsImJ1aWxkSGl0bEFjdGlvblR5cGVMaXN0IiwiYWN0aW9ucyIsIl90b0NvbnN1bWFibGVBcnJheSIsIlNldCIsIm1hcCIsImEiLCJ0b29sX25hbWUiLCJzb3J0Iiwiam9pbiIsImhpdGxCYXRjaEluY2x1ZGVzQ3JlYXRlQWdlbnQiLCJzb21lIiwiZ2V0SGl0bEFuYWx5dGljc0FnZW50VHlwZSIsImFnZW50IiwidHlwZSIsImJ1aWxkSGl0bEFuYWx5dGljc1BheWxvYWQiLCJhZ2VudFR5cGVGb3JFdmVudCIsImFnZW50X3R5cGUiLCJhY3Rpb25fdHlwZSIsImdldEhpdGxCYXRjaEtleSIsIm9yaWdpbmFsVGhyZWFkSWQiLCJhY3Rpb24iLCJjb25jYXQiLCJ0aHJlYWRfaWQiLCJ0b29sX2NhbGxfaWQiLCJ0cmFja01hbnVhbEhpdGxFdmVudHMiLCJ0cmlnZ2VyRXZlbnQiLCJldmVudE5hbWVzIiwiYXBwcm92YWwiLCJ0cmFja2VkS2V5cyIsIl9hcHByb3ZhbCRwZW5kaW5nX2FjdCIsInBlbmRpbmdBY3Rpb25zIiwicGVuZGluZ19hY3Rpb25zIiwibGVuZ3RoIiwiYmF0Y2hLZXkiLCJvcmlnaW5hbF90aHJlYWRfaWQiLCJoYXMiLCJhZGQiLCJhZ2VudFR5cGUiLCJwYXlsb2FkIiwiaW1wcmVzc2lvbiIsIm9wdGlvbiIsIl9vYmplY3RTcHJlYWQiLCJkZWNpc2lvbiIsInJlc29sdXRpb25fc291cmNlIiwiZ2V0Q2hhdFRvb2xzTWVudUFnZW50VHlwZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9oaXRsQW5hbHl0aWNzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWdlbnQgfSBmcm9tICcuLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IGlzTWFpYWtlckFnZW50IH0gZnJvbSAnLi9hZ2VudERpc3BsYXlOYW1lJ1xuXG4vKiogQWxpbmVhZG8gY29uIFRPT0xfUEVSTUlTU0lPTl9NQVAgLyBUT09MX0RJU1BMQVlfTkFNRVMgZW4gbWFpYSAoc25ha2VfY2FzZSkuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplSGl0bFRvb2xOYW1lKHRvb2xOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBuID0gKHRvb2xOYW1lIHx8ICd1bmtub3duJykudG9Mb3dlckNhc2UoKS50cmltKClcbiAgaWYgKG4gPT09ICdhc3NpZ24nKSByZXR1cm4gJ3Rhc2tfYXNzaWduJ1xuICByZXR1cm4gblxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRIaXRsQWN0aW9uVHlwZUxpc3QoYWN0aW9uczogeyB0b29sX25hbWU6IHN0cmluZyB9W10pOiBzdHJpbmcge1xuICByZXR1cm4gWy4uLm5ldyBTZXQoYWN0aW9ucy5tYXAoYSA9PiBub3JtYWxpemVIaXRsVG9vbE5hbWUoYS50b29sX25hbWUpKSldLnNvcnQoKS5qb2luKCcsJylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhpdGxCYXRjaEluY2x1ZGVzQ3JlYXRlQWdlbnQoYWN0aW9uczogeyB0b29sX25hbWU6IHN0cmluZyB9W10pOiBib29sZWFuIHtcbiAgcmV0dXJuIGFjdGlvbnMuc29tZShhID0+IG5vcm1hbGl6ZUhpdGxUb29sTmFtZShhLnRvb2xfbmFtZSkgPT09ICdjcmVhdGVfYWdlbnQnKVxufVxuXG5leHBvcnQgdHlwZSBIaXRsUmVzb2x1dGlvblNvdXJjZSA9ICd1c2VyJyB8ICdhdXRvJyB8ICdtYW51YWwnXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIaXRsQW5hbHl0aWNzQWdlbnRUeXBlKFxuICBhZ2VudDogUGljazxBZ2VudCwgJ3R5cGUnIHwgJ25hbWUnIHwgJ2VudGl0eSc+IHwgbnVsbCB8IHVuZGVmaW5lZFxuKTogJ2Nsb25lJyB8ICdjdXN0b20nIHwgJ21hcmtldHBsYWNlJyB7XG4gIGlmICghYWdlbnQpIHJldHVybiAnY3VzdG9tJ1xuICBpZiAoaXNNYWlha2VyQWdlbnQoYWdlbnQpKSByZXR1cm4gJ21hcmtldHBsYWNlJ1xuICBpZiAoYWdlbnQudHlwZSA9PT0gJ2Nsb25lJyB8fCBhZ2VudC50eXBlID09PSAnb3JjaGVzdHJhdG9yJykgcmV0dXJuICdjbG9uZSdcbiAgcmV0dXJuICdjdXN0b20nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEhpdGxBbmFseXRpY3NQYXlsb2FkKGFnZW50VHlwZUZvckV2ZW50OiBzdHJpbmcsIGFjdGlvbnM6IHsgdG9vbF9uYW1lOiBzdHJpbmcgfVtdKSB7XG4gIHJldHVybiB7XG4gICAgYWdlbnRfdHlwZTogYWdlbnRUeXBlRm9yRXZlbnQsXG4gICAgYWN0aW9uX3R5cGU6IGJ1aWxkSGl0bEFjdGlvblR5cGVMaXN0KGFjdGlvbnMpLFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIaXRsQmF0Y2hLZXkoXG4gIG9yaWdpbmFsVGhyZWFkSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgYWN0aW9uczogQXJyYXk8eyB0aHJlYWRfaWQ/OiBzdHJpbmc7IHRvb2xfY2FsbF9pZD86IHN0cmluZyB9PlxuKTogc3RyaW5nIHtcbiAgaWYgKG9yaWdpbmFsVGhyZWFkSWQpIHJldHVybiBvcmlnaW5hbFRocmVhZElkXG4gIHJldHVybiBhY3Rpb25zXG4gICAgLm1hcChhY3Rpb24gPT4gYCR7YWN0aW9uLnRocmVhZF9pZH06JHthY3Rpb24udG9vbF9jYWxsX2lkfWApXG4gICAgLnNvcnQoKVxuICAgIC5qb2luKCd8Jylcbn1cblxuLyoqIFRyYWNrZWEgaW1wcmVzacOzbiArIGRlY2lzacOzbiBhY2NlcHQgcGFyYSBISVRMIHJlc3VlbHRvIHBvciB0ZXh0byAoc2luIEFwcHJvdmFsQm94KS4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFja01hbnVhbEhpdGxFdmVudHMoXG4gIHRyaWdnZXJFdmVudDogKGV2ZW50TmFtZTogc3RyaW5nLCBhcmdzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHZvaWQsXG4gIGV2ZW50TmFtZXM6IHsgaW1wcmVzc2lvbjogc3RyaW5nOyBvcHRpb246IHN0cmluZyB9LFxuICBhZ2VudDogUGFyYW1ldGVyczx0eXBlb2YgZ2V0SGl0bEFuYWx5dGljc0FnZW50VHlwZT5bMF0sXG4gIGFwcHJvdmFsOiB7XG4gICAgb3JpZ2luYWxfdGhyZWFkX2lkPzogc3RyaW5nXG4gICAgcGVuZGluZ19hY3Rpb25zPzogQXJyYXk8eyB0b29sX25hbWU6IHN0cmluZzsgdGhyZWFkX2lkPzogc3RyaW5nOyB0b29sX2NhbGxfaWQ/OiBzdHJpbmcgfT5cbiAgfSxcbiAgdHJhY2tlZEtleXM6IFNldDxzdHJpbmc+XG4pOiB2b2lkIHtcbiAgY29uc3QgcGVuZGluZ0FjdGlvbnMgPSBhcHByb3ZhbC5wZW5kaW5nX2FjdGlvbnMgPz8gW11cbiAgaWYgKCFwZW5kaW5nQWN0aW9ucy5sZW5ndGgpIHJldHVyblxuXG4gIGNvbnN0IGJhdGNoS2V5ID0gZ2V0SGl0bEJhdGNoS2V5KGFwcHJvdmFsLm9yaWdpbmFsX3RocmVhZF9pZCwgcGVuZGluZ0FjdGlvbnMpXG4gIGlmICh0cmFja2VkS2V5cy5oYXMoYmF0Y2hLZXkpKSByZXR1cm5cbiAgdHJhY2tlZEtleXMuYWRkKGJhdGNoS2V5KVxuXG4gIGNvbnN0IGFnZW50VHlwZSA9IGdldEhpdGxBbmFseXRpY3NBZ2VudFR5cGUoYWdlbnQpXG4gIGNvbnN0IHBheWxvYWQgPSBidWlsZEhpdGxBbmFseXRpY3NQYXlsb2FkKGFnZW50VHlwZSwgcGVuZGluZ0FjdGlvbnMpXG5cbiAgdHJpZ2dlckV2ZW50KGV2ZW50TmFtZXMuaW1wcmVzc2lvbiwgcGF5bG9hZClcblxuICBpZiAoIWhpdGxCYXRjaEluY2x1ZGVzQ3JlYXRlQWdlbnQocGVuZGluZ0FjdGlvbnMpKSB7XG4gICAgdHJpZ2dlckV2ZW50KGV2ZW50TmFtZXMub3B0aW9uLCB7XG4gICAgICAuLi5wYXlsb2FkLFxuICAgICAgZGVjaXNpb246ICdhY2NlcHQnLFxuICAgICAgcmVzb2x1dGlvbl9zb3VyY2U6ICdtYW51YWwnIHNhdGlzZmllcyBIaXRsUmVzb2x1dGlvblNvdXJjZSxcbiAgICB9KVxuICB9XG59XG5cbi8qKiBQYXJhIEFJX0NIQVRfUExVU19PUEVOIHkgQUlfQ0hBVF9UT09MUyAobWVuw7ogKyBkZWwgaW5wdXQpOiBzb2xvIGBjbG9uZWAgfCBgY3VzdG9tYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDaGF0VG9vbHNNZW51QWdlbnRUeXBlKGFnZW50OiBQaWNrPEFnZW50LCAndHlwZSc+IHwgbnVsbCB8IHVuZGVmaW5lZCk6ICdjbG9uZScgfCAnY3VzdG9tJyB7XG4gIHJldHVybiBhZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyB8fCBhZ2VudD8udHlwZSA9PT0gJ29yY2hlc3RyYXRvcicgPyAnY2xvbmUnIDogJ2N1c3RvbSdcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLFNBQVNBLGNBQWMsUUFBUSxvQkFBb0I7O0FBRW5EO0FBQ0EsT0FBTyxTQUFTQyxxQkFBcUJBLENBQUNDLFFBQWdCLEVBQVU7RUFDOUQsSUFBTUMsQ0FBQyxHQUFHLENBQUNELFFBQVEsSUFBSSxTQUFTLEVBQUVFLFdBQVcsQ0FBQyxDQUFDLENBQUNDLElBQUksQ0FBQyxDQUFDO0VBQ3RELElBQUlGLENBQUMsS0FBSyxRQUFRLEVBQUUsT0FBTyxhQUFhO0VBQ3hDLE9BQU9BLENBQUM7QUFDVjtBQUVBLE9BQU8sU0FBU0csdUJBQXVCQSxDQUFDQyxPQUFnQyxFQUFVO0VBQ2hGLE9BQU9DLGtCQUFBLENBQUksSUFBSUMsR0FBRyxDQUFDRixPQUFPLENBQUNHLEdBQUcsQ0FBQyxVQUFBQyxDQUFDO0lBQUEsT0FBSVYscUJBQXFCLENBQUNVLENBQUMsQ0FBQ0MsU0FBUyxDQUFDO0VBQUEsRUFBQyxDQUFDLEVBQUVDLElBQUksQ0FBQyxDQUFDLENBQUNDLElBQUksQ0FBQyxHQUFHLENBQUM7QUFDNUY7QUFFQSxPQUFPLFNBQVNDLDRCQUE0QkEsQ0FBQ1IsT0FBZ0MsRUFBVztFQUN0RixPQUFPQSxPQUFPLENBQUNTLElBQUksQ0FBQyxVQUFBTCxD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
@@ -1,3 +1,4 @@
1
+ import { writeMinimizedState } from '../store/maiaMinimizedPersistence';
1
2
  import { getChatsStoreState } from '../store/useChatsStore';
2
3
  export var MAIA_OPEN_FROM_HOST_EVENT = 'maia-open-from-host';
3
4
 
@@ -10,10 +11,18 @@ export var isMaiaChatSessionActive = function isMaiaChatSessionActive() {
10
11
  export var shouldDelegateMaiaOpen = function shouldDelegateMaiaOpen() {
11
12
  return getChatsStoreState().mountCount > 0;
12
13
  };
14
+
15
+ /** Limpia el pill persistido antes de montar MAIA desde un host (evita restaurar sesión previa). */
16
+ export var clearMaiaMinimizedState = function clearMaiaMinimizedState(userId) {
17
+ writeMinimizedState(userId, {
18
+ minimized: false,
19
+ chatId: null
20
+ });
21
+ };
13
22
  export var requestMaiaOpenFromHost = function requestMaiaOpenFromHost(detail) {
14
23
  if (typeof document === 'undefined') return;
15
24
  document.dispatchEvent(new CustomEvent(MAIA_OPEN_FROM_HOST_EVENT, {
16
25
  detail: detail
17
26
  }));
18
27
  };
19
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRDaGF0c1N0b3JlU3RhdGUiLCJNQUlBX09QRU5fRlJPTV9IT1NUX0VWRU5UIiwiaXNNYWlhQ2hhdFNlc3Npb25BY3RpdmUiLCJtb3VudENvdW50Iiwic2hvdWxkRGVsZWdhdGVNYWlhT3BlbiIsInJlcXVlc3RNYWlhT3BlbkZyb21Ib3N0IiwiZGV0YWlsIiwiZG9jdW1lbnQiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvbWFpYUhvc3RPcGVuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmFubmVyRW50cnlGYXEsIE1pbmltaXplZFBpbGxBdm9pZEFuY2hvciB9IGZyb20gJy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBnZXRDaGF0c1N0b3JlU3RhdGUgfSBmcm9tICcuLi9zdG9yZS91c2VDaGF0c1N0b3JlJ1xuaW1wb3J0IHR5cGUgeyBDbGllbnQgfSBmcm9tICcuLi90eXBlcy9DbGllbnQnXG5pbXBvcnQgdHlwZSB7IFByb2plY3QgfSBmcm9tICcuLi90eXBlcy9Qcm9qZWN0J1xuaW1wb3J0IHR5cGUgeyBUYXNrIH0gZnJvbSAnLi4vdHlwZXMvVGFzaydcblxuZXhwb3J0IHR5cGUgTWFpYUhvc3RTZWN0aW9uID0gJ3Byb2plY3QnIHwgJ2hlYWRlcicgfCAnY2xpZW50JyB8ICd0YXNrJyB8ICdwbGFubmVyJ1xuXG5leHBvcnQgdHlwZSBNYWlhSG9zdE9wZW5EZXRhaWwgPSB7XG4gIHNlY3Rpb246IE1haWFIb3N0U2VjdGlvblxuICBlbnRpdHk6IHtcbiAgICBwcm9qZWN0SWQ6IHN0cmluZyB8IG51bGxcbiAgICBjbGllbnRJZDogc3RyaW5nIHwgbnVsbFxuICB9XG4gIHByb2plY3Q/OiBQcm9qZWN0IHwgbnVsbFxuICBjbGllbnQ/OiBDbGllbnQgfCBudWxsXG4gIHRhc2s/OiBUYXNrIHwgbnVsbFxuICBmYXE/OiBCYW5uZXJFbnRyeUZhcSB8IG51bGxcbiAgaW5pdGlhbERyYWZ0Pzogc3RyaW5nIHwgbnVsbFxuICBtaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzPzogTWluaW1pemVkUGlsbEF2b2lkQW5jaG9yW11cbn1cblxuZXhwb3J0IGNvbnN0IE1BSUFfT1BFTl9GUk9NX0hPU1RfRVZFTlQgPSAnbWFpYS1vcGVuLWZyb20taG9zdCdcblxuLyoqIEhheSBhbCBtZW5vcyB1bmEgaW5zdGFuY2lhIGRlIENoYXRBSSBtb250YWRhIChzdG9yZSBjb21wYXJ0aWRvKS4gKi9cbmV4cG9ydCBjb25zdCBpc01haWFDaGF0U2Vzc2lvbkFjdGl2ZSA9ICgpOiBib29sZWFuID0+IGdldENoYXRzU3RvcmVTdGF0ZSgpLm1vdW50Q291bnQgPiAwXG5cbi8qKiBFbCBob3N0IGRlYmUgZGVsZWdhciBlbiBsYSBpbnN0YW5jaWEgZXhpc3RlbnRlIGVuIGx1Z2FyIGRlIG1vbnRhciBvdHJhLiAqL1xuZXhwb3J0IGNvbnN0IHNob3VsZERlbGVnYXRlTWFpYU9wZW4gPSAoKTogYm9vbGVhbiA9PiBnZXRDaGF0c1N0b3JlU3RhdGUoKS5tb3VudENvdW50ID4gMFxuXG5leHBvcnQgY29uc3QgcmVxdWVzdE1haWFPcGVuRnJvbUhvc3QgPSAoZGV0YWlsOiBNYWlhSG9zdE9wZW5EZXRhaWwpOiB2b2lkID0+IHtcbiAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVyblxuICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudDxNYWlhSG9zdE9wZW5EZXRhaWw+KE1BSUFfT1BFTl9GUk9NX0hPU1RfRVZFTlQsIHsgZGV0YWlsIH0pKVxufVxuIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxrQkFBa0IsUUFBUSx3QkFBd0I7QUFxQjNELE9BQU8sSUFBTUMseUJBQXlCLEdBQUcscUJBQXFCOztBQUU5RDtBQUNBLE9BQU8sSUFBTUMsdUJBQXVCLEdBQUcsU0FBMUJBLHVCQUF1QkEsQ0FBQTtFQUFBLE9BQWtCRixrQkFBa0IsQ0FBQyxDQUFDLENBQUNHLFVBQVUsR0FBRyxDQUFDO0FBQUE7O0FBRXpGO0FBQ0EsT0FBTyxJQUFNQyxzQkFBc0IsR0FBRyxTQUF6QkEsc0JBQXNCQSxDQUFBO0VBQUEsT0FBa0JKLGtCQUFrQixDQUFDLENBQUMsQ0FBQ0csVUFBVSxHQUFHLENBQUM7QUFBQTtBQUV4RixPQUFPLElBQU1FLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBdUJBLENBQUlDLE1BQTBCLEVBQVc7RUFDM0UsSUFBSSxPQUFPQyxRQUFRLEtBQUssV0FBVyxFQUFFO0VBQ3JDQSxRQUFRLENBQUNDLGFBQWEsQ0FBQyxJQUFJQyxXQUFXLENBQXFCUix5QkFBeUIsRUFBRTtJQUFFSyxNQUFNLEVBQU5BO0VBQU8sQ0FBQyxDQUFDLENBQUM7QUFDcEcsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
28
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ3cml0ZU1pbmltaXplZFN0YXRlIiwiZ2V0Q2hhdHNTdG9yZVN0YXRlIiwiTUFJQV9PUEVOX0ZST01fSE9TVF9FVkVOVCIsImlzTWFpYUNoYXRTZXNzaW9uQWN0aXZlIiwibW91bnRDb3VudCIsInNob3VsZERlbGVnYXRlTWFpYU9wZW4iLCJjbGVhck1haWFNaW5pbWl6ZWRTdGF0ZSIsInVzZXJJZCIsIm1pbmltaXplZCIsImNoYXRJZCIsInJlcXVlc3RNYWlhT3BlbkZyb21Ib3N0IiwiZGV0YWlsIiwiZG9jdW1lbnQiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvbWFpYUhvc3RPcGVuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmFubmVyRW50cnlGYXEsIE1pbmltaXplZFBpbGxBdm9pZEFuY2hvciB9IGZyb20gJy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB3cml0ZU1pbmltaXplZFN0YXRlIH0gZnJvbSAnLi4vc3RvcmUvbWFpYU1pbmltaXplZFBlcnNpc3RlbmNlJ1xuaW1wb3J0IHsgZ2V0Q2hhdHNTdG9yZVN0YXRlIH0gZnJvbSAnLi4vc3RvcmUvdXNlQ2hhdHNTdG9yZSdcbmltcG9ydCB0eXBlIHsgQ2xpZW50IH0gZnJvbSAnLi4vdHlwZXMvQ2xpZW50J1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSAnLi4vdHlwZXMvUHJvamVjdCdcbmltcG9ydCB0eXBlIHsgVGFzayB9IGZyb20gJy4uL3R5cGVzL1Rhc2snXG5cbmV4cG9ydCB0eXBlIE1haWFIb3N0U2VjdGlvbiA9ICdwcm9qZWN0JyB8ICdoZWFkZXInIHwgJ2NsaWVudCcgfCAndGFzaycgfCAncGxhbm5lcidcblxuZXhwb3J0IHR5cGUgTWFpYUhvc3RPcGVuRGV0YWlsID0ge1xuICBzZWN0aW9uOiBNYWlhSG9zdFNlY3Rpb25cbiAgZW50aXR5OiB7XG4gICAgcHJvamVjdElkOiBzdHJpbmcgfCBudWxsXG4gICAgY2xpZW50SWQ6IHN0cmluZyB8IG51bGxcbiAgfVxuICBwcm9qZWN0PzogUHJvamVjdCB8IG51bGxcbiAgY2xpZW50PzogQ2xpZW50IHwgbnVsbFxuICB0YXNrPzogVGFzayB8IG51bGxcbiAgZmFxPzogQmFubmVyRW50cnlGYXEgfCBudWxsXG4gIGluaXRpYWxEcmFmdD86IHN0cmluZyB8IG51bGxcbiAgbWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycz86IE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcltdXG59XG5cbmV4cG9ydCBjb25zdCBNQUlBX09QRU5fRlJPTV9IT1NUX0VWRU5UID0gJ21haWEtb3Blbi1mcm9tLWhvc3QnXG5cbi8qKiBIYXkgYWwgbWVub3MgdW5hIGluc3RhbmNpYSBkZSBDaGF0QUkgbW9udGFkYSAoc3RvcmUgY29tcGFydGlkbykuICovXG5leHBvcnQgY29uc3QgaXNNYWlhQ2hhdFNlc3Npb25BY3RpdmUgPSAoKTogYm9vbGVhbiA9PiBnZXRDaGF0c1N0b3JlU3RhdGUoKS5tb3VudENvdW50ID4gMFxuXG4vKiogRWwgaG9zdCBkZWJlIGRlbGVnYXIgZW4gbGEgaW5zdGFuY2lhIGV4aXN0ZW50ZSBlbiBsdWdhciBkZSBtb250YXIgb3RyYS4gKi9cbmV4cG9ydCBjb25zdCBzaG91bGREZWxlZ2F0ZU1haWFPcGVuID0gKCk6IGJvb2xlYW4gPT4gZ2V0Q2hhdHNTdG9yZVN0YXRlKCkubW91bnRDb3VudCA+IDBcblxuLyoqIExpbXBpYSBlbCBwaWxsIHBlcnNpc3RpZG8gYW50ZXMgZGUgbW9udGFyIE1BSUEgZGVzZGUgdW4gaG9zdCAoZXZpdGEgcmVzdGF1cmFyIHNlc2nDs24gcHJldmlhKS4gKi9cbmV4cG9ydCBjb25zdCBjbGVhck1haWFNaW5pbWl6ZWRTdGF0ZSA9ICh1c2VySWQ6IG51bWJlciB8IHN0cmluZyk6IHZvaWQgPT4ge1xuICB3cml0ZU1pbmltaXplZFN0YXRlKHVzZXJJZCwgeyBtaW5pbWl6ZWQ6IGZhbHNlLCBjaGF0SWQ6IG51bGwgfSlcbn1cblxuZXhwb3J0IGNvbnN0IHJlcXVlc3RNYWlhT3BlbkZyb21Ib3N0ID0gKGRldGFpbDogTWFpYUhvc3RPcGVuRGV0YWlsKTogdm9pZCA9PiB7XG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSByZXR1cm5cbiAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQ8TWFpYUhvc3RPcGVuRGV0YWlsPihNQUlBX09QRU5fRlJPTV9IT1NUX0VWRU5ULCB7IGRldGFpbCB9KSlcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsbUJBQW1CLFFBQVEsbUNBQW1DO0FBQ3ZFLFNBQVNDLGtCQUFrQixRQUFRLHdCQUF3QjtBQXFCM0QsT0FBTyxJQUFNQyx5QkFBeUIsR0FBRyxxQkFBcUI7O0FBRTlEO0FBQ0EsT0FBTyxJQUFNQyx1QkFBdUIsR0FBRyxTQUExQkEsdUJBQXVCQSxDQUFBO0VBQUEsT0FBa0JGLGtCQUFrQixDQUFDLENBQUMsQ0FBQ0csVUFBVSxHQUFHLENBQUM7QUFBQTs7QUFFekY7QUFDQSxPQUFPLElBQU1DLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBc0JBLENBQUE7RUFBQSxPQUFrQkosa0JBQWtCLENBQUMsQ0FBQyxDQUFDRyxVQUFVLEdBQUcsQ0FBQztBQUFBOztBQUV4RjtBQUNBLE9BQU8sSUFBTUUsdUJBQXVCLEdBQUcsU0FBMUJBLHVCQUF1QkEsQ0FBSUMsTUFBdUIsRUFBVztFQUN4RVAsbUJBQW1CLENBQUNPLE1BQU0sRUFBRTtJQUFFQyxTQUFTLEVBQUUsS0FBSztJQUFFQyxNQUFNLEVBQUU7RUFBSyxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVELE9BQU8sSUFBTUMsdUJBQXVCLEdBQUcsU0FBMUJBLHVCQUF1QkEsQ0FBSUMsTUFBMEIsRUFBVztFQUMzRSxJQUFJLE9BQU9DLFFBQVEsS0FBSyxXQUFXLEVBQUU7RUFDckNBLFFBQVEsQ0FBQ0MsYUFBYSxDQUFDLElBQUlDLFdBQVcsQ0FBcUJaLHlCQUF5QixFQUFFO0lBQUVTLE1BQU0sRUFBTkE7RUFBTyxDQUFDLENBQUMsQ0FBQztBQUNwRyxDQUFDIiwiaWdub3JlTGlzdCI6W119
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@projectcor/maia-components",
3
- "version": "2.11.108-0",
3
+ "version": "2.11.108",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "repository": {
@@ -1,34 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /** Circular arrow for regenerating an assistant reply. */
3
- export var RetryIcon = function RetryIcon(_ref) {
4
- var _ref$className = _ref.className,
5
- className = _ref$className === void 0 ? '' : _ref$className,
6
- _ref$width = _ref.width,
7
- width = _ref$width === void 0 ? 24 : _ref$width,
8
- _ref$height = _ref.height,
9
- height = _ref$height === void 0 ? 24 : _ref$height,
10
- _ref$color = _ref.color,
11
- color = _ref$color === void 0 ? 'currentColor' : _ref$color;
12
- return /*#__PURE__*/_jsx("svg", {
13
- className: className,
14
- width: width,
15
- height: height,
16
- viewBox: "0 0 20 20",
17
- xmlns: "http://www.w3.org/2000/svg",
18
- "aria-hidden": "true",
19
- children: /*#__PURE__*/_jsx("g", {
20
- id: "RetryIcon",
21
- stroke: "none",
22
- strokeWidth: "1",
23
- fill: color,
24
- fillRule: "evenodd",
25
- children: /*#__PURE__*/_jsx("path", {
26
- transform: "scale(0.833333)",
27
- d: "M17.65 6.35A7.958 7.958 0 0 0 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0 1 12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35Z",
28
- fill: color,
29
- fillRule: "nonzero"
30
- })
31
- })
32
- });
33
- };
34
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZXRyeUljb24iLCJfcmVmIiwiX3JlZiRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcmVmJHdpZHRoIiwid2lkdGgiLCJfcmVmJGhlaWdodCIsImhlaWdodCIsIl9yZWYkY29sb3IiLCJjb2xvciIsIl9qc3giLCJ2aWV3Qm94IiwieG1sbnMiLCJjaGlsZHJlbiIsImlkIiwic3Ryb2tlIiwic3Ryb2tlV2lkdGgiLCJmaWxsIiwiZmlsbFJ1bGUiLCJ0cmFuc2Zvcm0iLCJkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvaWNvbnMvUmV0cnlJY29uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIFJldHJ5SWNvblByb3BzID0ge1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgd2lkdGg/OiBudW1iZXIgfCBzdHJpbmdcbiAgaGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nXG4gIGNvbG9yPzogc3RyaW5nXG59XG5cbi8qKiBDaXJjdWxhciBhcnJvdyBmb3IgcmVnZW5lcmF0aW5nIGFuIGFzc2lzdGFudCByZXBseS4gKi9cbmV4cG9ydCBjb25zdCBSZXRyeUljb24gPSAoeyBjbGFzc05hbWUgPSAnJywgd2lkdGggPSAyNCwgaGVpZ2h0ID0gMjQsIGNvbG9yID0gJ2N1cnJlbnRDb2xvcicgfTogUmV0cnlJY29uUHJvcHMpID0+IChcbiAgPHN2Z1xuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIHdpZHRoPXt3aWR0aH1cbiAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICA+XG4gICAgPGcgaWQ9XCJSZXRyeUljb25cIiBzdHJva2U9XCJub25lXCIgc3Ryb2tlV2lkdGg9XCIxXCIgZmlsbD17Y29sb3J9IGZpbGxSdWxlPVwiZXZlbm9kZFwiPlxuICAgICAgPHBhdGhcbiAgICAgICAgdHJhbnNmb3JtPVwic2NhbGUoMC44MzMzMzMpXCJcbiAgICAgICAgZD1cIk0xNy42NSA2LjM1QTcuOTU4IDcuOTU4IDAgMCAwIDEyIDRjLTQuNDIgMC03Ljk5IDMuNTgtNy45OSA4czMuNTcgOCA3Ljk5IDhjMy43MyAwIDYuODQtMi41NSA3LjczLTZoLTIuMDhBNS45OSA1Ljk5IDAgMCAxIDEyIDE4Yy0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02YzEuNjYgMCAzLjE0LjY5IDQuMjIgMS43OEwxMyAxMWg3VjRsLTIuMzUgMi4zNVpcIlxuICAgICAgICBmaWxsPXtjb2xvcn1cbiAgICAgICAgZmlsbFJ1bGU9XCJub256ZXJvXCJcbiAgICAgIC8+XG4gICAgPC9nPlxuICA8L3N2Zz5cbilcbiJdLCJtYXBwaW5ncyI6IjtBQU9BO0FBQ0EsT0FBTyxJQUFNQSxTQUFTLEdBQUcsU0FBWkEsU0FBU0EsQ0FBQUMsSUFBQTtFQUFBLElBQUFDLGNBQUEsR0FBQUQsSUFBQSxDQUFNRSxTQUFTO0lBQVRBLFNBQVMsR0FBQUQsY0FBQSxjQUFHLEVBQUUsR0FBQUEsY0FBQTtJQUFBRSxVQUFBLEdBQUFILElBQUEsQ0FBRUksS0FBSztJQUFMQSxLQUFLLEdBQUFELFVBQUEsY0FBRyxFQUFFLEdBQUFBLFVBQUE7SUFBQUUsV0FBQSxHQUFBTCxJQUFBLENBQUVNLE1BQU07SUFBTkEsTUFBTSxHQUFBRCxXQUFBLGNBQUcsRUFBRSxHQUFBQSxXQUFBO0lBQUFFLFVBQUEsR0FBQVAsSUFBQSxDQUFFUSxLQUFLO0lBQUxBLEtBQUssR0FBQUQsVUFBQSxjQUFHLGNBQWMsR0FBQUEsVUFBQTtFQUFBLG9CQUN6RkUsSUFBQTtJQUNFUCxTQUFTLEVBQUVBLFNBQVU7SUFDckJFLEtBQUssRUFBRUEsS0FBTTtJQUNiRSxNQUFNLEVBQUVBLE1BQU87SUFDZkksT0FBTyxFQUFDLFdBQVc7SUFDbkJDLEtBQUssRUFBQyw0QkFBNEI7SUFDbEMsZUFBWSxNQUFNO0lBQUFDLFFBQUEsZUFFbEJILElBQUE7TUFBR0ksRUFBRSxFQUFDLFdBQVc7TUFBQ0MsTUFBTSxFQUFDLE1BQU07TUFBQ0MsV0FBVyxFQUFDLEdBQUc7TUFBQ0MsSUFBSSxFQUFFUixLQUFNO01BQUNTLFFBQVEsRUFBQyxTQUFTO01BQUFMLFFBQUEsZUFDN0VILElBQUE7UUFDRVMsU0FBUyxFQUFDLGlCQUFpQjtRQUMzQkMsQ0FBQyxFQUFDLDRNQUE0TTtRQUM5TUgsSUFBSSxFQUFFUixLQUFNO1FBQ1pTLFFBQVEsRUFBQztNQUFTLENBQ25CO0lBQUMsQ0FDRDtFQUFDLENBQ0QsQ0FBQztBQUFBLENBQ1AiLCJpZ25vcmVMaXN0IjpbXX0=