@cometchat/chat-uikit-angular 4.0.0-beta.1.4 → 4.0.0

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 (147) hide show
  1. package/Calls/CallingExtension.d.ts +4 -3
  2. package/Calls/CallingExtensionDecorator.d.ts +0 -1
  3. package/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.d.ts +4 -3
  4. package/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.d.ts +4 -3
  5. package/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.d.ts +14 -6
  6. package/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.d.ts +0 -1
  7. package/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.d.ts +5 -5
  8. package/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.d.ts +6 -5
  9. package/CometChatContacts/cometchat-contacts/cometchat-contacts.component.d.ts +65 -0
  10. package/CometChatContacts/cometchat-contacts.module.d.ts +12 -0
  11. package/CometChatConversations/cometchat-conversations/cometchat-conversations.component.d.ts +21 -15
  12. package/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.d.ts +13 -4
  13. package/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.d.ts +2 -1
  14. package/CometChatDetails/cometchat-details/cometchat-details.component.d.ts +7 -7
  15. package/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.d.ts +14 -12
  16. package/CometChatGroups/cometchat-groups/cometchat-groups.component.d.ts +12 -6
  17. package/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.d.ts +6 -4
  18. package/CometChatList/cometchat-list.component.d.ts +2 -1
  19. package/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.d.ts +2 -2
  20. package/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.d.ts +23 -6
  21. package/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.d.ts +1 -1
  22. package/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.d.ts +95 -0
  23. package/CometChatMessageInformation/cometchat-message-information.module.d.ts +10 -0
  24. package/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.d.ts +45 -26
  25. package/CometChatMessageList/cometchat-message-list.module.d.ts +3 -1
  26. package/CometChatMessages/cometchat-messages/cometchat-messages.component.d.ts +5 -3
  27. package/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.d.ts +0 -1
  28. package/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.d.ts +3 -3
  29. package/CometChatUsers/cometchat-users/cometchat-users.component.d.ts +11 -5
  30. package/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.d.ts +2 -2
  31. package/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.d.ts +4 -8
  32. package/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.d.ts +1 -4
  33. package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.d.ts +4 -8
  34. package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.d.ts +1 -4
  35. package/Extensions/ImageModeration/ImageModerationExtension.d.ts +4 -4
  36. package/Extensions/LinkPreviewExtension/LinkPreviewExtension.d.ts +4 -4
  37. package/Extensions/MessageTranslation/MessageTranslationExtension.d.ts +4 -8
  38. package/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.d.ts +1 -4
  39. package/Extensions/PollsExtension/PollsExtension.d.ts +4 -4
  40. package/Extensions/PollsExtension/PollsExtensionDecorator.d.ts +0 -1
  41. package/Extensions/Reactions/ReactionExtension.d.ts +4 -4
  42. package/Extensions/Reactions/ReactionExtensionDecorator.d.ts +0 -1
  43. package/Extensions/SmartReplies/SmartRepliesExtension.d.ts +4 -8
  44. package/Extensions/SmartReplies/SmartRepliesExtensionDecorator.d.ts +2 -2
  45. package/Extensions/Stickers/StickersExtension.d.ts +4 -8
  46. package/Extensions/Stickers/StickersExtensionDecorator.d.ts +2 -2
  47. package/Extensions/TextModerator/TextModeratorExtension.d.ts +4 -3
  48. package/Extensions/TextModerator/TextModeratorExtensionDecorator.d.ts +0 -1
  49. package/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.d.ts +4 -4
  50. package/README.md +4 -7
  51. package/Shared/CometChatUIkit/CometChatUIKit.d.ts +10 -6
  52. package/Shared/Framework/DataSource.d.ts +0 -1
  53. package/Shared/Framework/DataSourceDecorator.d.ts +0 -1
  54. package/Shared/Utils/ComeChatException.d.ts +1 -2
  55. package/Shared/Utils/MessageUtils.d.ts +2 -1
  56. package/Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component.d.ts +38 -9
  57. package/Shared/Views/CometChatTabs/cometchat-tabs.module.d.ts +1 -5
  58. package/assets/.gitkeep +0 -0
  59. package/assets/Reply@2x.svg +9 -0
  60. package/assets/call.svg +0 -0
  61. package/assets/chats.svg +0 -0
  62. package/assets/group.svg +0 -0
  63. package/assets/message-privately.svg +6 -0
  64. package/assets/mic.svg +11 -0
  65. package/assets/new-chat.svg +13 -0
  66. package/assets/open-thread.svg +0 -0
  67. package/assets/pause-icon.svg +14 -0
  68. package/assets/play-icon.svg +18 -0
  69. package/assets/record-icon.svg +8 -0
  70. package/assets/start-conversation.svg +46 -0
  71. package/assets/stop.svg +1 -0
  72. package/assets/user.svg +0 -0
  73. package/esm2020/Calls/CallingExtension.mjs +7 -4
  74. package/esm2020/Calls/CallingExtensionDecorator.mjs +4 -4
  75. package/esm2020/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.mjs +58 -21
  76. package/esm2020/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.mjs +48 -17
  77. package/esm2020/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.mjs +110 -9
  78. package/esm2020/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.mjs +9 -7
  79. package/esm2020/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.mjs +9 -6
  80. package/esm2020/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.mjs +12 -7
  81. package/esm2020/CometChatContacts/cometchat-contacts/cometchat-contacts.component.mjs +273 -0
  82. package/esm2020/CometChatContacts/cometchat-contacts.module.mjs +23 -0
  83. package/esm2020/CometChatConversations/cometchat-conversations/cometchat-conversations.component.mjs +122 -65
  84. package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.mjs +105 -17
  85. package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.mjs +6 -2
  86. package/esm2020/CometChatDetails/cometchat-details/cometchat-details.component.mjs +13 -11
  87. package/esm2020/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.mjs +45 -46
  88. package/esm2020/CometChatGroups/cometchat-groups/cometchat-groups.component.mjs +69 -28
  89. package/esm2020/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.mjs +60 -21
  90. package/esm2020/CometChatList/cometchat-list.component.mjs +8 -9
  91. package/esm2020/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.mjs +4 -5
  92. package/esm2020/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.mjs +200 -30
  93. package/esm2020/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.mjs +4 -5
  94. package/esm2020/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.mjs +288 -0
  95. package/esm2020/CometChatMessageInformation/cometchat-message-information.module.mjs +28 -0
  96. package/esm2020/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.mjs +401 -185
  97. package/esm2020/CometChatMessageList/cometchat-message-list.module.mjs +12 -4
  98. package/esm2020/CometChatMessages/cometchat-messages/cometchat-messages.component.mjs +28 -15
  99. package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.mjs +3 -4
  100. package/esm2020/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.mjs +14 -15
  101. package/esm2020/CometChatUsers/cometchat-users/cometchat-users.component.mjs +72 -45
  102. package/esm2020/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.mjs +21 -9
  103. package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.mjs +7 -6
  104. package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.mjs +3 -4
  105. package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.mjs +7 -6
  106. package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.mjs +3 -4
  107. package/esm2020/Extensions/ImageModeration/ImageModerationExtension.mjs +7 -5
  108. package/esm2020/Extensions/LinkPreviewExtension/LinkPreviewExtension.mjs +7 -5
  109. package/esm2020/Extensions/MessageTranslation/MessageTranslationExtension.mjs +7 -6
  110. package/esm2020/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.mjs +2 -4
  111. package/esm2020/Extensions/PollsExtension/PollsExtension.mjs +7 -5
  112. package/esm2020/Extensions/PollsExtension/PollsExtensionDecorator.mjs +1 -1
  113. package/esm2020/Extensions/Reactions/ReactionExtension.mjs +7 -5
  114. package/esm2020/Extensions/Reactions/ReactionExtensionDecorator.mjs +3 -2
  115. package/esm2020/Extensions/SmartReplies/SmartRepliesExtension.mjs +7 -6
  116. package/esm2020/Extensions/SmartReplies/SmartRepliesExtensionDecorator.mjs +5 -7
  117. package/esm2020/Extensions/Stickers/StickersExtension.mjs +7 -10
  118. package/esm2020/Extensions/Stickers/StickersExtensionDecorator.mjs +5 -7
  119. package/esm2020/Extensions/TextModerator/TextModeratorExtension.mjs +16 -4
  120. package/esm2020/Extensions/TextModerator/TextModeratorExtensionDecorator.mjs +1 -1
  121. package/esm2020/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.mjs +7 -5
  122. package/esm2020/Shared/CometChatUIkit/CometChatUIKit.mjs +66 -32
  123. package/esm2020/Shared/Framework/DataSource.mjs +1 -1
  124. package/esm2020/Shared/Framework/DataSourceDecorator.mjs +1 -1
  125. package/esm2020/Shared/Utils/ComeChatException.mjs +2 -2
  126. package/esm2020/Shared/Utils/MessageUtils.mjs +36 -6
  127. package/esm2020/Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component.mjs +61 -25
  128. package/esm2020/Shared/Views/CometChatTabs/cometchat-tabs.module.mjs +2 -18
  129. package/esm2020/public-api.mjs +8 -5
  130. package/fesm2015/cometchat-chat-uikit-angular.mjs +3658 -3185
  131. package/fesm2015/cometchat-chat-uikit-angular.mjs.map +1 -1
  132. package/fesm2020/cometchat-chat-uikit-angular.mjs +3639 -3164
  133. package/fesm2020/cometchat-chat-uikit-angular.mjs.map +1 -1
  134. package/package.json +5 -5
  135. package/public-api.d.ts +7 -4
  136. package/Calls/CometChatCallDetails/cometchat-call-details/cometchat-call-details.component.d.ts +0 -139
  137. package/Calls/CometChatCallDetails/cometchat-call-details.module.d.ts +0 -10
  138. package/Calls/CometChatCallHistory/cometchat-call-history/cometchat-call-history.component.d.ts +0 -125
  139. package/Calls/CometChatCallHistory/cometchat-call-history.module.d.ts +0 -10
  140. package/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details/cometchat-call-history-with-details.component.d.ts +0 -59
  141. package/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details.module.d.ts +0 -12
  142. package/esm2020/Calls/CometChatCallDetails/cometchat-call-details/cometchat-call-details.component.mjs +0 -452
  143. package/esm2020/Calls/CometChatCallDetails/cometchat-call-details.module.mjs +0 -31
  144. package/esm2020/Calls/CometChatCallHistory/cometchat-call-history/cometchat-call-history.component.mjs +0 -397
  145. package/esm2020/Calls/CometChatCallHistory/cometchat-call-history.module.mjs +0 -28
  146. package/esm2020/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details/cometchat-call-history-with-details.component.mjs +0 -143
  147. package/esm2020/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details.module.mjs +0 -39
@@ -1,6 +1,6 @@
1
1
  import { CometChatMessageOption, CometChatMessageTemplate, CometChatMessageComposerAction, localize, CometChatUIKitConstants, fontHelper } from "@cometchat/uikit-resources";
2
2
  import { ConversationUtils } from "@cometchat/uikit-shared";
3
- import { CometChat } from "@cometchat-pro/chat";
3
+ import { CometChat } from "@cometchat/chat-sdk-javascript";
4
4
  import { ChatConfigurator } from "../Framework/ChatConfigurator";
5
5
  export class MessageUtils {
6
6
  getEditOption(theme) {
@@ -15,6 +15,30 @@ export class MessageUtils {
15
15
  titleColor: theme.palette.getAccent600()
16
16
  });
17
17
  }
18
+ getMessageInfoOption(theme) {
19
+ return new CometChatMessageOption({
20
+ id: CometChatUIKitConstants.MessageOption.messageInformation,
21
+ title: localize("MESSAGE_INFORMATION"),
22
+ iconURL: "assets/Info.svg",
23
+ onClick: null,
24
+ iconTint: theme.palette.getAccent600(),
25
+ backgroundColor: "transparent",
26
+ titleFont: fontHelper(theme.typography.subtitle1),
27
+ titleColor: theme.palette.getAccent600()
28
+ });
29
+ }
30
+ getMessagePrivatelyOption(theme) {
31
+ return new CometChatMessageOption({
32
+ id: CometChatUIKitConstants.MessageOption.sendMessagePrivately,
33
+ title: localize("SEND_MESSAGE_IN_PRIVATE"),
34
+ iconURL: "assets/message-privately.svg",
35
+ onClick: null,
36
+ iconTint: theme.palette.getAccent600(),
37
+ backgroundColor: "transparent",
38
+ titleFont: fontHelper(theme.typography.subtitle1),
39
+ titleColor: theme.palette.getAccent600()
40
+ });
41
+ }
18
42
  getDeleteOption(theme) {
19
43
  return new CometChatMessageOption({
20
44
  id: CometChatUIKitConstants.MessageOption.deleteMessage,
@@ -63,9 +87,9 @@ export class MessageUtils {
63
87
  let messageOptionList = [];
64
88
  messageOptionList = ChatConfigurator.getDataSource().getCommonOptions(loggedInUser, messageObject, theme, group);
65
89
  if (_isSentByMe) {
66
- messageOptionList.push(this.getEditOption(theme));
90
+ messageOptionList.unshift(this.getEditOption(theme));
67
91
  }
68
- messageOptionList.push(this.getCopyOption(theme));
92
+ messageOptionList.unshift(this.getCopyOption(theme));
69
93
  return messageOptionList;
70
94
  }
71
95
  getImageMessageOptions(loggedInUser, messageObject, theme, group) {
@@ -207,11 +231,17 @@ export class MessageUtils {
207
231
  if (group?.getScope() == CometChatUIKitConstants.groupMemberScope.moderator)
208
232
  _isModerator = true;
209
233
  let messageOptionList = [];
210
- if (_isSentByMe == true || _isModerator == true)
211
- messageOptionList.push(this.getDeleteOption(theme));
212
234
  if (!messageObject.getParentMessageId()) {
213
235
  messageOptionList.push(this.getReplyInThreadOption(theme));
214
236
  }
237
+ if (_isSentByMe) {
238
+ messageOptionList.push(this.getMessageInfoOption(theme));
239
+ }
240
+ if (group && !_isSentByMe) {
241
+ messageOptionList.push(this.getMessagePrivatelyOption(theme));
242
+ }
243
+ if (_isSentByMe == true || _isModerator == true)
244
+ messageOptionList.push(this.getDeleteOption(theme));
215
245
  return messageOptionList;
216
246
  }
217
247
  getAllMessageTypes() {
@@ -339,4 +369,4 @@ export class MessageUtils {
339
369
  return ConversationUtils.getLastConversationMessage(conversation, loggedInUser);
340
370
  }
341
371
  }
342
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVzc2FnZVV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9TaGFyZWQvVXRpbHMvTWVzc2FnZVV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBeUIsd0JBQXdCLEVBQUUsOEJBQThCLEVBQWtCLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwTixPQUFPLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsTUFBTSxPQUFPLFlBQVk7SUFDckIsYUFBYSxDQUFDLEtBQXFCO1FBQy9CLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQztZQUM5QixFQUFFLEVBQUUsdUJBQXVCLENBQUMsYUFBYSxDQUFDLFdBQVc7WUFDckQsS0FBSyxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUM7WUFDL0IsT0FBTyxFQUFFLHFCQUFxQjtZQUM5QixPQUFPLEVBQUUsSUFBSTtZQUNiLFFBQVEsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUN0QyxlQUFlLEVBQUUsYUFBYTtZQUM5QixTQUFTLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO1lBQ2pELFVBQVUsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtTQUMzQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsZUFBZSxDQUFDLEtBQXFCO1FBQ2pDLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQztZQUM5QixFQUFFLEVBQUUsdUJBQXVCLENBQUMsYUFBYSxDQUFDLGFBQWE7WUFDdkQsS0FBSyxFQUFFLFFB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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21ldENoYXRNZXNzYWdlT3B0aW9uLE1lc3NhZ2VCdWJibGVBbGlnbm1lbnQsIENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSwgQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uLCBDb21ldENoYXRUaGVtZSwgbG9jYWxpemUsIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLCBmb250SGVscGVyIH0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBDb252ZXJzYXRpb25VdGlsc30gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtc2hhcmVkXCI7XG5pbXBvcnQgeyBDb21ldENoYXQgfSBmcm9tIFwiQGNvbWV0Y2hhdC1wcm8vY2hhdFwiO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gXCIuLi9GcmFtZXdvcmsvRGF0YVNvdXJjZVwiO1xuaW1wb3J0IHsgQ2hhdENvbmZpZ3VyYXRvciB9IGZyb20gXCIuLi9GcmFtZXdvcmsvQ2hhdENvbmZpZ3VyYXRvclwiO1xuZXhwb3J0IGNsYXNzIE1lc3NhZ2VVdGlscyBpbXBsZW1lbnRzIERhdGFTb3VyY2Uge1xuICAgIGdldEVkaXRPcHRpb24odGhlbWU6IENvbWV0Q2hhdFRoZW1lKTogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbiB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZU9wdGlvbih7XG4gICAgICAgICAgICBpZDogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZU9wdGlvbi5lZGl0TWVzc2FnZSxcbiAgICAgICAgICAgIHRpdGxlOiBsb2NhbGl6ZShcIkVESVRfTUVTU0FHRVwiKSxcbiAgICAgICAgICAgIGljb25VUkw6IFwiYXNzZXRzL2VkaXRpY29uLnN2Z1wiLFxuICAgICAgICAgICAgb25DbGljazogbnVsbCxcbiAgICAgICAgICAgIGljb25UaW50OiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcInRyYW5zcGFyZW50XCIsXG4gICAgICAgICAgICB0aXRsZUZvbnQ6IGZvbnRIZWxwZXIodGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICAgICAgICAgdGl0bGVDb2xvcjogdGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0RGVsZXRlT3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24oe1xuICAgICAgICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VPcHRpb24uZGVsZXRlTWVzc2FnZSxcbiAgICAgICAgICAgIHRpdGxlOiBsb2NhbGl6ZShcIkRFTEVURVwiKSxcbiAgICAgICAgICAgIGljb25VUkw6IFwiYXNzZXRzL2RlbGV0ZWljb24uc3ZnXCIsXG4gICAgICAgICAgICBvbkNsaWNrOiBudWxsLFxuICAgICAgICAgICAgaWNvblRpbnQ6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICAgICAgICAgIHRpdGxlRm9udDogZm9udEhlbHBlcih0aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICAgICAgICB0aXRsZUNvbG9yOiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRSZXBseUluVGhyZWFkT3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24oe1xuICAgICAgICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VPcHRpb24ucmVwbHlJblRocmVhZCxcbiAgICAgICAgICAgIHRpdGxlOiBsb2NhbGl6ZShcIlJFUExZX0lOX1RIUkVBRFwiKSxcbiAgICAgICAgICAgIGljb25VUkw6IFwiYXNzZXRzL3RocmVhZGljb24uc3ZnXCIsXG4gICAgICAgICAgICBvbkNsaWNrOiBudWxsLFxuICAgICAgICAgICAgaWNvblRpbnQ6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICAgICAgICAgIHRpdGxlRm9udDogZm9udEhlbHBlcih0aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICAgICAgICB0aXRsZUNvbG9yOiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRDb3B5T3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24oe1xuICAgICAgICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VPcHRpb24uY29weU1lc3NhZ2UsXG4gICAgICAgICAgICB0aXRsZTogbG9jYWxpemUoXCJDT1BZX01FU1NBR0VcIiksXG4gICAgICAgICAgICBpY29uVVJMOiBcImFzc2V0cy9Db3B5LnN2Z1wiLFxuICAgICAgICAgICAgb25DbGljazogbnVsbCxcbiAgICAgICAgICAgIGljb25UaW50OiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcInRyYW5zcGFyZW50XCIsXG4gICAgICAgICAgICB0aXRsZUZvbnQ6IGZvbnRIZWxwZXIodGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICAgICAgICAgdGl0bGVDb2xvcjogdGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgaXNTZW50QnlNZShsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLCBtZXNzYWdlOiBDb21ldENoYXQuQmFzZU1lc3NhZ2UpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGxvZ2dlZEluVXNlci5nZXRVaWQoKSA9PT0gbWVzc2FnZS5nZXRTZW5kZXIoKS5nZXRVaWQoKTtcbiAgICB9XG4gICAgZ2V0VGV4dE1lc3NhZ2VPcHRpb25zKGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSwgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLCBncm91cD86IENvbWV0Q2hhdC5Hcm91cCk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+IHtcbiAgICAgICAgbGV0IF9pc1NlbnRCeU1lOiBib29sZWFuID0gdGhpcy5pc1NlbnRCeU1lKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCk7XG4gICAgICAgIGxldCBfaXNNb2RlcmF0b3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKGdyb3VwPy5nZXRTY29wZSgpID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyU2NvcGUubW9kZXJhdG9yKSB7XG4gICAgICAgICAgICBfaXNNb2RlcmF0b3IgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBtZXNzYWdlT3B0aW9uTGlzdDogQXJyYXk8Q29tZXRDaGF0TWVzc2FnZU9wdGlvbj4gPSBbXTtcbiAgICAgICAgbWVzc2FnZU9wdGlvbkxpc3QgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRDb21tb25PcHRpb25zKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCwgdGhlbWUsIGdyb3VwKTtcbiAgICAgICAgaWYgKF9pc1NlbnRCeU1lKSB7XG4gICAgICAgICAgICBtZXNzYWdlT3B0aW9uTGlzdC5wdXNoKHRoaXMuZ2V0RWRpdE9wdGlvbih0aGVtZSkpO1xuICAgICAgICB9XG4gICAgICAgIG1lc3NhZ2VPcHRpb25MaXN0LnB1c2godGhpcy5nZXRDb3B5T3B0aW9uKHRoZW1lKSk7XG4gICAgICAgIHJldHVybiBtZXNzYWdlT3B0aW9uTGlzdDtcbiAgICB9XG4gICAgZ2V0SW1hZ2VNZXNzYWdlT3B0aW9ucyhsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLCBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsIHRoZW1lOiBDb21ldENoYXRUaGVtZSwgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXApOiBBcnJheTxDb21ldENoYXRNZXNzYWdlT3B0aW9uPiB7XG4gICAgICAgIGxldCBtZXNzYWdlT3B0aW9uTGlzdDogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbltdID0gW107XG4gICAgICAgIG1lc3NhZ2VPcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0Q29tbW9uT3B0aW9ucyhsb2dnZWRJblVzZXIsIG1lc3NhZ2VPYmplY3QsIHRoZW1lLCBncm91cCk7XG4gICAgICAgIHJldHVybiBtZXNzYWdlT3B0aW9uTGlzdDtcbiAgICB9XG4gICAgZ2V0VmlkZW9NZXNzYWdlT3B0aW9ucyhsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLCBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsIHRoZW1lOiBDb21ldENoYXRUaGVtZSwgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXApOiBBcnJheTxDb21ldENoYXRNZXNzYWdlT3B0aW9uPiB7XG4gICAgICAgIGxldCBtZXNzYWdlT3B0aW9uTGlzdDogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbltdID0gW107XG4gICAgICAgIG1lc3NhZ2VPcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0Q29tbW9uT3B0aW9ucyhsb2dnZWRJblVzZXIsIG1lc3NhZ2VPYmplY3QsIHRoZW1lLCBncm91cCk7XG4gICAgICAgIHJldHVybiBtZXNzYWdlT3B0aW9uTGlzdDtcbiAgICB9XG4gICAgZ2V0QXVkaW9NZXNzYWdlT3B0aW9ucyhsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLCBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsIHRoZW1lOiBDb21ldENoYXRUaGVtZSwgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXApOiBBcnJheTxDb21ldENoYXRNZXNzYWdlT3B0aW9uPiB7XG4gICAgICAgIGxldCBtZXNzYWdlT3B0aW9uTGlzdDogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbltdID0gW107XG4gICAgICAgIG1lc3NhZ2VPcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0Q29tbW9uT3B0aW9ucyhsb2dnZWRJblVzZXIsIG1lc3NhZ2VPYmplY3QsIHRoZW1lLCBncm91cCk7XG4gICAgICAgIHJldHVybiBtZXNzYWdlT3B0aW9uTGlzdDtcbiAgICB9XG4gICAgZ2V0RmlsZU1lc3NhZ2VPcHRpb25zKGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSwgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLCBncm91cD86IENvbWV0Q2hhdC5Hcm91cCk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+IHtcbiAgICAgICAgbGV0IG1lc3NhZ2VPcHRpb25MaXN0OiBDb21ldENoYXRNZXNzYWdlT3B0aW9uW10gPSBbXTtcbiAgICAgICAgbWVzc2FnZU9wdGlvbkxpc3QgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRDb21tb25PcHRpb25zKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCwgdGhlbWUsIGdyb3VwKTtcbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VPcHRpb25MaXN0O1xuICAgIH1cbiAgICBnZXRCb3R0b21WaWV3KF9tZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsIF9hbGlnbm1lbnQ6IE1lc3NhZ2VCdWJibGVBbGlnbm1lbnQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGdldFRleHRNZXNzYWdlVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUoe1xuICAgICAgICAgICAgdHlwZTogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnRleHQsXG4gICAgICAgICAgICBjYXRlZ29yeTogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5Lm1lc3NhZ2UsXG4gICAgICAgICAgICBvcHRpb25zOiBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRNZXNzYWdlT3B0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldEF1ZGlvTWVzc2FnZVRlbXBsYXRlKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlKHtcbiAgICAgICAgICAgIHR5cGU6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5hdWRpbyxcbiAgICAgICAgICAgIGNhdGVnb3J5OiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkubWVzc2FnZSxcbiAgICAgICAgICAgIG9wdGlvbnM6IENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldE1lc3NhZ2VPcHRpb25zLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0VmlkZW9NZXNzYWdlVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUoe1xuICAgICAgICAgICAgdHlwZTogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnZpZGVvLFxuICAgICAgICAgICAgY2F0ZWdvcnk6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5tZXNzYWdlLFxuICAgICAgICAgICAgb3B0aW9uczogQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0TWVzc2FnZU9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRJbWFnZU1lc3NhZ2VUZW1wbGF0ZSgpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSh7XG4gICAgICAgICAgICB0eXBlOiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuaW1hZ2UsXG4gICAgICAgICAgICBjYXRlZ29yeTogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5Lm1lc3NhZ2UsXG4gICAgICAgICAgICBvcHRpb25zOiBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRNZXNzYWdlT3B0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldEdyb3VwQWN0aW9uVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUoe1xuICAgICAgICAgICAgdHlwZTogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmdyb3VwTWVtYmVyLFxuICAgICAgICAgICAgY2F0ZWdvcnk6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5hY3Rpb24sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRGaWxlTWVzc2FnZVRlbXBsYXRlKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlKHtcbiAgICAgICAgICAgIHR5cGU6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5maWxlLFxuICAgICAgICAgICAgY2F0ZWdvcnk6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5tZXNzYWdlLFxuICAgICAgICAgICAgb3B0aW9uczogQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0TWVzc2FnZU9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRBbGxNZXNzYWdlVGVtcGxhdGVzKCk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0VGV4dE1lc3NhZ2VUZW1wbGF0ZSgpLFxuICAgICAgICAgICAgQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0SW1hZ2VNZXNzYWdlVGVtcGxhdGUoKSxcbiAgICAgICAgICAgIENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldFZpZGVvTWVzc2FnZVRlbXBsYXRlKCksXG4gICAgICAgICAgICBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRBdWRpb01lc3NhZ2VUZW1wbGF0ZSgpLFxuICAgICAgICAgICAgQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0RmlsZU1lc3NhZ2VUZW1wbGF0ZSgpLFxuICAgICAgICAgICAgQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0R3JvdXBBY3Rpb25UZW1wbGF0ZSgpLFxuICAgICAgICBdO1xuICAgIH1cbiAgICBnZXRNZXNzYWdlVGVtcGxhdGUobWVzc2FnZVR5cGU6IHN0cmluZywgbWVzc2FnZUNhdGVnb3J5OiBzdHJpbmcpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUgfCBudWxsIHtcbiAgICAgICAgbGV0IF90ZW1wbGF0ZTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlIHwgbnVsbCA9IG51bGw7XG4gICAgICAgIGlmIChtZXNzYWdlQ2F0ZWdvcnkgIT0gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmNhbGwpIHtcbiAgICAgICAgICAgIHN3aXRjaCAobWVzc2FnZVR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy50ZXh0OlxuICAgICAgICAgICAgICAgICAgICBfdGVtcGxhdGUgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRUZXh0TWVzc2FnZVRlbXBsYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmltYWdlOlxuICAgICAgICAgICAgICAgICAgICBfdGVtcGxhdGUgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRJbWFnZU1lc3NhZ2VUZW1wbGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy52aWRlbzpcbiAgICAgICAgICAgICAgICAgICAgX3RlbXBsYXRlID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0VmlkZW9NZXNzYWdlVGVtcGxhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuZ3JvdXBNZW1iZXI6XG4gICAgICAgICAgICAgICAgICAgIF90ZW1wbGF0ZSA9IENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldEdyb3VwQWN0aW9uVGVtcGxhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuZmlsZTpcbiAgICAgICAgICAgICAgICAgICAgX3RlbXBsYXRlID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0RmlsZU1lc3NhZ2VUZW1wbGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5hdWRpbzpcbiAgICAgICAgICAgICAgICAgICAgX3RlbXBsYXRlID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0QXVkaW9NZXNzYWdlVGVtcGxhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF90ZW1wbGF0ZTtcbiAgICB9XG4gICAgZ2V0TWVzc2FnZU9wdGlvbnMobG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlciwgbWVzc2FnZU9iamVjdDogQ29tZXRDaGF0LkJhc2VNZXNzYWdlLCB0aGVtZTogQ29tZXRDaGF0VGhlbWUsIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwKTogQXJyYXk8Q29tZXRDaGF0TWVzc2FnZU9wdGlvbj4ge1xuICAgICAgICBsZXQgX29wdGlvbkxpc3Q6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+ID0gW107XG4gICAgICAgIGxldCBfaXNTZW50QnlNZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgICAgICBpZiAobG9nZ2VkSW5Vc2VyLmdldFVpZCgpID09IG1lc3NhZ2VPYmplY3QuZ2V0U2VuZGVyKCk/LmdldFVpZCgpKSB7XG4gICAgICAgICAgICBfaXNTZW50QnlNZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1lc3NhZ2VPYmplY3QuZ2V0Q2F0ZWdvcnkoKSA9PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkubWVzc2FnZSkge1xuICAgICAgICAgICAgc3dpdGNoIChtZXNzYWdlT2JqZWN0LmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnRleHQ6XG4gICAgICAgICAgICAgICAgICAgIF9vcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0VGV4dE1lc3NhZ2VPcHRpb25zKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCwgdGhlbWUsIGdyb3VwKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuaW1hZ2U6XG4gICAgICAgICAgICAgICAgICAgIF9vcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0SW1hZ2VNZXNzYWdlT3B0aW9ucyhsb2dnZWRJblVzZXIsIG1lc3NhZ2VPYmplY3QsIHRoZW1lLCBncm91cCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnZpZGVvOlxuICAgICAgICAgICAgICAgICAgICBfb3B0aW9uTGlzdCA9IENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldFZpZGVvTWVzc2FnZU9wdGlvbnMobG9nZ2VkSW5Vc2VyLCBtZXNzYWdlT2JqZWN0LCB0aGVtZSwgZ3JvdXApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5ncm91cE1lbWJlcjpcbiAgICAgICAgICAgICAgICAgICAgX29wdGlvbkxpc3QgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuZmlsZTpcbiAgICAgICAgICAgICAgICAgICAgX29wdGlvbkxpc3QgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRGaWxlTWVzc2FnZU9wdGlvbnMobG9nZ2VkSW5Vc2VyLCBtZXNzYWdlT2JqZWN0LCB0aGVtZSwgZ3JvdXApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5hdWRpbzpcbiAgICAgICAgICAgICAgICAgICAgX29wdGlvbkxpc3QgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRBdWRpb01lc3NhZ2VPcHRpb25zKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCwgdGhlbWUsIGdyb3VwKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAobWVzc2FnZU9iamVjdC5nZXRDYXRlZ29yeSgpID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jdXN0b20pIHtcbiAgICAgICAgICAgIF9vcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0Q29tbW9uT3B0aW9ucyhsb2dnZWRJblVzZXIsIG1lc3NhZ2VPYmplY3QsIHRoZW1lLCBncm91cCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9vcHRpb25MaXN0O1xuICAgIH1cbiAgICBnZXRDb21tb25PcHRpb25zKGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSwgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLCBncm91cD86IENvbWV0Q2hhdC5Hcm91cCk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+IHtcbiAgICAgICAgbGV0IF9pc1NlbnRCeU1lOiBib29sZWFuID0gdGhpcy5pc1NlbnRCeU1lKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCk7XG4gICAgICAgIGxldCBfaXNNb2RlcmF0b3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKGdyb3VwPy5nZXRTY29wZSgpID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyU2NvcGUubW9kZXJhdG9yKSBfaXNNb2RlcmF0b3IgPSB0cnVlO1xuICAgICAgICBsZXQgbWVzc2FnZU9wdGlvbkxpc3Q6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+ID0gW107XG4gICAgICAgIGlmIChfaXNTZW50QnlNZSA9PSB0cnVlIHx8IF9pc01vZGVyYXRvciA9PSB0cnVlKVxuICAgICAgICAgICAgbWVzc2FnZU9wdGlvbkxpc3QucHVzaCh0aGlzLmdldERlbGV0ZU9wdGlvbih0aGVtZSkpO1xuICAgICAgICBpZiAoIW1lc3NhZ2VPYmplY3QuZ2V0UGFyZW50TWVzc2FnZUlkKCkpIHtcbiAgICAgICAgICAgIG1lc3NhZ2VPcHRpb25MaXN0LnB1c2godGhpcy5nZXRSZXBseUluVGhyZWFkT3B0aW9uKHRoZW1lKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VPcHRpb25MaXN0O1xuICAgIH1cbiAgICBnZXRBbGxNZXNzYWdlVHlwZXMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMudGV4dCxcbiAgICAgICAgICAgIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5pbWFnZSxcbiAgICAgICAgICAgIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5hdWRpbyxcbiAgICAgICAgICAgIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy52aWRlbyxcbiAgICAgICAgICAgIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5maWxlLFxuICAgICAgICAgICAgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmdyb3VwTWVtYmVyXG4gICAgICAgIF07XG4gICAgfVxuICAgIGFkZExpc3QoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFwiPE1lc3NhZ2UgVXRpbHM+XCI7XG4gICAgfVxuICAgIGdldEFsbE1lc3NhZ2VDYXRlZ29yaWVzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gW0NvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5tZXNzYWdlLCBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuYWN0aW9uXTtcbiAgICB9XG4gICAgZ2V0QXV4aWxpYXJ5T3B0aW9ucyhpZDpDb21wb3NlcklkLCB1c2VyPzogQ29tZXRDaGF0LlVzZXIsIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwKTogYW55IHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGdldElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBcIm1lc3NhZ2VVdGlsc1wiO1xuICAgIH1cbiAgICBnZXRBY3Rpb25NZXNzYWdlKG1lc3NhZ2U6IENvbWV0Q2hhdC5BY3Rpb24pOnN0cmluZyAge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKG1lc3NhZ2UgaW5zdGFuY2VvZiBDb21ldENoYXQuQWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aW9uID0gbWVzc2FnZS5nZXRBY3Rpb24oKTtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3Rpb25CeSA9IG1lc3NhZ2UuZ2V0QWN0aW9uQnkoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3Rpb25PbiA9IG1lc3NhZ2UuZ2V0QWN0aW9uT24oKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGJ5U3RyaW5nID0gKGFjdGlvbkJ5IGFzIENvbWV0Q2hhdC5Vc2VyKS5nZXROYW1lKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9yU3RyaW5nID1cbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uID09PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5ncm91cE1lbWJlckFjdGlvbi5KT0lORUQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9PT0gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuZ3JvdXBNZW1iZXJBY3Rpb24uTEVGVFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IChhY3Rpb25PbiBhcyBDb21ldENoYXQuVXNlcikuZ2V0TmFtZSgpO1xuXG4gICAgICAgICAgICAgICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5ncm91cE1lbWJlckFjdGlvbi5BRERFRDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtieVN0cmluZ30gJHtsb2NhbGl6ZShcIkFEREVEXCIpfSAke2ZvclN0cmluZ31gO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyQWN0aW9uLkpPSU5FRDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtieVN0cmluZ30gJHtsb2NhbGl6ZShcIkpPSU5FRFwiKX1gO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyQWN0aW9uLkxFRlQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7YnlTdHJpbmd9ICR7bG9jYWxpemUoXCJMRUZUXCIpfWA7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuZ3JvdXBNZW1iZXJBY3Rpb24uS0lDS0VEOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2J5U3RyaW5nfSAke2xvY2FsaXplKFwiS0lDS0VEXCIpfSAke2ZvclN0cmluZ31gO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyQWN0aW9uLkJBTk5FRDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtieVN0cmluZ30gJHtsb2NhbGl6ZShcIkJBTk5FRFwiKX0gJHtmb3JTdHJpbmd9YDtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5ncm91cE1lbWJlckFjdGlvbi5VTkJBTk5FRDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtieVN0cmluZ30gJHtsb2NhbGl6ZShcIlVOQkFOTkVEXCIpfSAke2ZvclN0cmluZ31gO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyQWN0aW9uLlNDT1BFX0NIQU5HRTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtieVN0cmluZ30gJHtsb2NhbGl6ZShcIk1BREVcIil9ICR7Zm9yU3RyaW5nfSAke21lc3NhZ2UuZ2V0TmV3U2NvcGUoKX1gO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZXtcbiAgICAgICAgICAgICAgICByZXR1cm4gIFwiXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGltYWdlQXR0YWNobWVudE9wdGlvbih0aGVtZTogQ29tZXRDaGF0VGhlbWUpOiBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24ge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbih7XG4gICAgICAgICAgICBpZDogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmltYWdlLFxuICAgICAgICAgICAgdGl0bGU6IGxvY2FsaXplKFwiQVRUQUNIX0lNQUdFXCIpLFxuICAgICAgICAgICAgaWNvblVSTDogXCJhc3NldHMvcGhvdG9saWJyYXJ5LnN2Z1wiLFxuICAgICAgICAgICAgb25DbGljazpudWxsLFxuICAgICAgICAgICAgaWNvblRpbnQ6dGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ3MDAoKSxcbiAgICAgICAgICAgIHRpdGxlRm9udDpmb250SGVscGVyKHRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUxKSxcbiAgICAgICAgICAgIHRpdGxlQ29sb3I6dGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ3MDAoKSxcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czpcIjhweFwiLFxuICAgICAgICAgICAgYmFja2dyb3VuZDp0aGVtZS5wYWxldHRlLmdldEFjY2VudDEwMCgpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICB2aWRlb0F0dGFjaG1lbnRPcHRpb24odGhlbWU6IENvbWV0Q2hhdFRoZW1lKTogQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24oe1xuICAgICAgICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy52aWRlbyxcbiAgICAgICAgICAgIHRpdGxlOiBsb2NhbGl6ZShcIkFUVEFDSF9WSURFT1wiKSxcbiAgICAgICAgICAgIGljb25VUkw6IFwiYXNzZXRzL3ZpZGVvLnN2Z1wiLFxuICAgICAgICAgICAgb25DbGljazpudWxsLFxuICAgICAgICAgICAgaWNvblRpbnQ6dGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ3MDAoKSxcbiAgICAgICAgICAgIHRpdGxlRm9udDpmb250SGVscGVyKHRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUxKSxcbiAgICAgICAgICAgIHRpdGxlQ29sb3I6dGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ3MDAoKSxcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czpcIjhweFwiLFxuICAgICAgICAgICAgYmFja2dyb3VuZDp0aGVtZS5wYWxldHRlLmdldEFjY2VudDEwMCgpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhdWRpb0F0dGFjaG1lbnRPcHRpb24odGhlbWU6IENvbWV0Q2hhdFRoZW1lKTogQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24oe1xuICAgICAgICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5hdWRpbyxcbiAgICAgICAgICAgIHRpdGxlOiBsb2NhbGl6ZShcIkFUVEFDSF9BVURJT1wiKSxcbiAgICAgICAgICAgIGljb25VUkw6IFwiYXNzZXRzL2F1ZGlvLWZpbGUuc3ZnXCIsXG4gICAgICAgICAgICBvbkNsaWNrOm51bGwsXG4gICAgICAgICAgICBpY29uVGludDp0aGVtZS5wYWxldHRlLmdldEFjY2VudDcwMCgpLFxuICAgICAgICAgICAgdGl0bGVGb250OmZvbnRIZWxwZXIodGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICAgICAgICAgdGl0bGVDb2xvcjp0aGVtZS5wYWxldHRlLmdldEFjY2VudDcwMCgpLFxuICAgICAgICAgICAgYm9yZGVyUmFkaXVzOlwiOHB4XCIsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50MTAwKClcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZpbGVBdHRhY2htZW50T3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbiB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uKHtcbiAgICAgICAgICAgIGlkOiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuZmlsZSxcbiAgICAgICAgICAgIHRpdGxlOiBsb2NhbGl6ZShcIkFUVEFDSF9GSUxFXCIpLFxuICAgICAgICAgICAgaWNvblVSTDogXCJhc3NldHMvYXR0YWNobWVudC1maWxlLnN2Z1wiLFxuICAgICAgICAgICAgb25DbGljazpudWxsLFxuICAgICAgICAgICAgaWNvblRpbnQ6dGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ3MDAoKSxcbiAgICAgICAgICAgIHRpdGxlRm9udDpmb250SGVscGVyKHRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUxKSxcbiAgICAgICAgICAgIHRpdGxlQ29sb3I6dGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ3MDAoKSxcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czpcIjhweFwiLFxuICAgICAgICAgICAgYmFja2dyb3VuZDp0aGVtZS5wYWxldHRlLmdldEFjY2VudDEwMCgpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRBdHRhY2htZW50T3B0aW9ucyh0aGVtZTogQ29tZXRDaGF0VGhlbWUsdXNlcj86Q29tZXRDaGF0LlVzZXIsZ3JvdXA/OkNvbWV0Q2hhdC5Hcm91cCwgaWQ/OiBDb21wb3NlcklkKTogQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uW10ge1xuICAgICAgICBsZXQgYWN0aW9uczogQXJyYXk8Q29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uPiA9IFtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VBdHRhY2htZW50T3B0aW9uKHRoZW1lKSxcbiAgICAgICAgICAgIHRoaXMudmlkZW9BdHRhY2htZW50T3B0aW9uKHRoZW1lKSxcbiAgICAgICAgICAgIHRoaXMuYXVkaW9BdHRhY2htZW50T3B0aW9uKHRoZW1lKSxcbiAgICAgICAgICAgIHRoaXMuZmlsZUF0dGFjaG1lbnRPcHRpb24odGhlbWUpXG4gICAgICAgIF07XG4gICAgICAgIHJldHVybiBhY3Rpb25zO1xuICAgIH1cbiAgICBnZXRMYXN0Q29udmVyc2F0aW9uTWVzc2FnZShjb252ZXJzYXRpb246IENvbWV0Q2hhdC5Db252ZXJzYXRpb24sIGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gQ29udmVyc2F0aW9uVXRpbHMuZ2V0TGFzdENvbnZlcnNhdGlvbk1lc3NhZ2UoY29udmVyc2F0aW9uLCBsb2dnZWRJblVzZXIpO1xuICAgIH1cbn1cbmV4cG9ydCB0eXBlIENvbXBvc2VySWQgPSB7cGFyZW50TWVzc2FnZUlkIDogbnVtYmVyIHwgbnVsbCwgdXNlciA6IHN0cmluZyB8IG51bGwsIGdyb3VwIDogc3RyaW5nIHwgbnVsbH07Il19
372
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVzc2FnZVV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9TaGFyZWQvVXRpbHMvTWVzc2FnZVV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBeUIsd0JBQXdCLEVBQUUsOEJBQThCLEVBQWtCLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwTixPQUFPLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsTUFBTSxPQUFPLFlBQVk7SUFDckIsYUFBYSxDQUFDLEtBQXFCO1FBQy9CLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQztZQUM5QixFQUFFLEVBQUUsdUJBQXVCLENBQUMsYUFBYSxDQUFDLFdBQVc7WUFDckQsS0FBSyxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUM7WUFDL0IsT0FBTyxFQUFFLHFCQUFxQjtZQUM5QixPQUFPLEVBQUUsSUFBSTtZQUNiLFFBQVEsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUN0QyxlQUFlLEVBQUUsYUFBYTtZQUM5QixTQUFTLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO1lBQ2pELFVBQVUsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtTQUMzQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0Qsb0JBQW9CLENBQUMsS0FBcUI7UUFDdEMsT0FBTyxJQUFJLHNCQUFzQixDQUFDO1lBQzlCLEVBQUUsRUFBRSx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsa0JBQWtCO1lBQzVELEtBQUssRUFB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QTBCLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3BGLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24sTWVzc2FnZUJ1YmJsZUFsaWdubWVudCwgQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlLCBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24sIENvbWV0Q2hhdFRoZW1lLCBsb2NhbGl6ZSwgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMsIGZvbnRIZWxwZXIgfSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbnZlcnNhdGlvblV0aWxzfSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWRcIjtcbmltcG9ydCB7IENvbWV0Q2hhdCB9IGZyb20gXCJAY29tZXRjaGF0L2NoYXQtc2RrLWphdmFzY3JpcHRcIjtcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tIFwiLi4vRnJhbWV3b3JrL0RhdGFTb3VyY2VcIjtcbmltcG9ydCB7IENoYXRDb25maWd1cmF0b3IgfSBmcm9tIFwiLi4vRnJhbWV3b3JrL0NoYXRDb25maWd1cmF0b3JcIjtcbmV4cG9ydCBjbGFzcyBNZXNzYWdlVXRpbHMgaW1wbGVtZW50cyBEYXRhU291cmNlIHtcbiAgICBnZXRFZGl0T3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24oe1xuICAgICAgICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VPcHRpb24uZWRpdE1lc3NhZ2UsXG4gICAgICAgICAgICB0aXRsZTogbG9jYWxpemUoXCJFRElUX01FU1NBR0VcIiksXG4gICAgICAgICAgICBpY29uVVJMOiBcImFzc2V0cy9lZGl0aWNvbi5zdmdcIixcbiAgICAgICAgICAgIG9uQ2xpY2s6IG51bGwsXG4gICAgICAgICAgICBpY29uVGludDogdGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgICAgICAgICAgdGl0bGVGb250OiBmb250SGVscGVyKHRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUxKSxcbiAgICAgICAgICAgIHRpdGxlQ29sb3I6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKClcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldE1lc3NhZ2VJbmZvT3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24oe1xuICAgICAgICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VPcHRpb24ubWVzc2FnZUluZm9ybWF0aW9uLFxuICAgICAgICAgICAgdGl0bGU6IGxvY2FsaXplKFwiTUVTU0FHRV9JTkZPUk1BVElPTlwiKSxcbiAgICAgICAgICAgIGljb25VUkw6IFwiYXNzZXRzL0luZm8uc3ZnXCIsXG4gICAgICAgICAgICBvbkNsaWNrOiBudWxsLFxuICAgICAgICAgICAgaWNvblRpbnQ6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICAgICAgICAgIHRpdGxlRm9udDogZm9udEhlbHBlcih0aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICAgICAgICB0aXRsZUNvbG9yOiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRNZXNzYWdlUHJpdmF0ZWx5T3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24oe1xuICAgICAgICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VPcHRpb24uc2VuZE1lc3NhZ2VQcml2YXRlbHksXG4gICAgICAgICAgICB0aXRsZTogbG9jYWxpemUoXCJTRU5EX01FU1NBR0VfSU5fUFJJVkFURVwiKSxcbiAgICAgICAgICAgIGljb25VUkw6IFwiYXNzZXRzL21lc3NhZ2UtcHJpdmF0ZWx5LnN2Z1wiLFxuICAgICAgICAgICAgb25DbGljazogbnVsbCxcbiAgICAgICAgICAgIGljb25UaW50OiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcInRyYW5zcGFyZW50XCIsXG4gICAgICAgICAgICB0aXRsZUZvbnQ6IGZvbnRIZWxwZXIodGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICAgICAgICAgdGl0bGVDb2xvcjogdGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0RGVsZXRlT3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24oe1xuICAgICAgICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VPcHRpb24uZGVsZXRlTWVzc2FnZSxcbiAgICAgICAgICAgIHRpdGxlOiBsb2NhbGl6ZShcIkRFTEVURVwiKSxcbiAgICAgICAgICAgIGljb25VUkw6IFwiYXNzZXRzL2RlbGV0ZWljb24uc3ZnXCIsXG4gICAgICAgICAgICBvbkNsaWNrOiBudWxsLFxuICAgICAgICAgICAgaWNvblRpbnQ6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICAgICAgICAgIHRpdGxlRm9udDogZm9udEhlbHBlcih0aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICAgICAgICB0aXRsZUNvbG9yOiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRSZXBseUluVGhyZWFkT3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24oe1xuICAgICAgICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VPcHRpb24ucmVwbHlJblRocmVhZCxcbiAgICAgICAgICAgIHRpdGxlOiBsb2NhbGl6ZShcIlJFUExZX0lOX1RIUkVBRFwiKSxcbiAgICAgICAgICAgIGljb25VUkw6IFwiYXNzZXRzL3RocmVhZGljb24uc3ZnXCIsXG4gICAgICAgICAgICBvbkNsaWNrOiBudWxsLFxuICAgICAgICAgICAgaWNvblRpbnQ6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICAgICAgICAgIHRpdGxlRm9udDogZm9udEhlbHBlcih0aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICAgICAgICB0aXRsZUNvbG9yOiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRDb3B5T3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24oe1xuICAgICAgICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VPcHRpb24uY29weU1lc3NhZ2UsXG4gICAgICAgICAgICB0aXRsZTogbG9jYWxpemUoXCJDT1BZX01FU1NBR0VcIiksXG4gICAgICAgICAgICBpY29uVVJMOiBcImFzc2V0cy9Db3B5LnN2Z1wiLFxuICAgICAgICAgICAgb25DbGljazogbnVsbCxcbiAgICAgICAgICAgIGljb25UaW50OiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcInRyYW5zcGFyZW50XCIsXG4gICAgICAgICAgICB0aXRsZUZvbnQ6IGZvbnRIZWxwZXIodGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICAgICAgICAgdGl0bGVDb2xvcjogdGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgaXNTZW50QnlNZShsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLCBtZXNzYWdlOiBDb21ldENoYXQuQmFzZU1lc3NhZ2UpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGxvZ2dlZEluVXNlci5nZXRVaWQoKSA9PT0gbWVzc2FnZS5nZXRTZW5kZXIoKS5nZXRVaWQoKTtcbiAgICB9XG4gICAgZ2V0VGV4dE1lc3NhZ2VPcHRpb25zKGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSwgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLCBncm91cD86IENvbWV0Q2hhdC5Hcm91cCk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+IHtcbiAgICAgICAgbGV0IF9pc1NlbnRCeU1lOiBib29sZWFuID0gdGhpcy5pc1NlbnRCeU1lKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCk7XG4gICAgICAgIGxldCBfaXNNb2RlcmF0b3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKGdyb3VwPy5nZXRTY29wZSgpID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyU2NvcGUubW9kZXJhdG9yKSB7XG4gICAgICAgICAgICBfaXNNb2RlcmF0b3IgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBtZXNzYWdlT3B0aW9uTGlzdDogQXJyYXk8Q29tZXRDaGF0TWVzc2FnZU9wdGlvbj4gPSBbXTtcbiAgICAgICAgbWVzc2FnZU9wdGlvbkxpc3QgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRDb21tb25PcHRpb25zKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCwgdGhlbWUsIGdyb3VwKTtcbiAgICAgICAgaWYgKF9pc1NlbnRCeU1lKSB7XG4gICAgICAgICAgICBtZXNzYWdlT3B0aW9uTGlzdC51bnNoaWZ0KHRoaXMuZ2V0RWRpdE9wdGlvbih0aGVtZSkpO1xuICAgICAgICB9XG4gICAgICAgIG1lc3NhZ2VPcHRpb25MaXN0LnVuc2hpZnQodGhpcy5nZXRDb3B5T3B0aW9uKHRoZW1lKSk7XG4gICAgICAgIHJldHVybiBtZXNzYWdlT3B0aW9uTGlzdDtcbiAgICB9XG4gICAgZ2V0SW1hZ2VNZXNzYWdlT3B0aW9ucyhsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLCBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsIHRoZW1lOiBDb21ldENoYXRUaGVtZSwgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXApOiBBcnJheTxDb21ldENoYXRNZXNzYWdlT3B0aW9uPiB7XG4gICAgICAgIGxldCBtZXNzYWdlT3B0aW9uTGlzdDogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbltdID0gW107XG4gICAgICAgIG1lc3NhZ2VPcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0Q29tbW9uT3B0aW9ucyhsb2dnZWRJblVzZXIsIG1lc3NhZ2VPYmplY3QsIHRoZW1lLCBncm91cCk7XG4gICAgICAgIHJldHVybiBtZXNzYWdlT3B0aW9uTGlzdDtcbiAgICB9XG4gICAgZ2V0VmlkZW9NZXNzYWdlT3B0aW9ucyhsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLCBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsIHRoZW1lOiBDb21ldENoYXRUaGVtZSwgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXApOiBBcnJheTxDb21ldENoYXRNZXNzYWdlT3B0aW9uPiB7XG4gICAgICAgIGxldCBtZXNzYWdlT3B0aW9uTGlzdDogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbltdID0gW107XG4gICAgICAgIG1lc3NhZ2VPcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0Q29tbW9uT3B0aW9ucyhsb2dnZWRJblVzZXIsIG1lc3NhZ2VPYmplY3QsIHRoZW1lLCBncm91cCk7XG4gICAgICAgIHJldHVybiBtZXNzYWdlT3B0aW9uTGlzdDtcbiAgICB9XG4gICAgZ2V0QXVkaW9NZXNzYWdlT3B0aW9ucyhsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLCBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsIHRoZW1lOiBDb21ldENoYXRUaGVtZSwgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXApOiBBcnJheTxDb21ldENoYXRNZXNzYWdlT3B0aW9uPiB7XG4gICAgICAgIGxldCBtZXNzYWdlT3B0aW9uTGlzdDogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbltdID0gW107XG4gICAgICAgIG1lc3NhZ2VPcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0Q29tbW9uT3B0aW9ucyhsb2dnZWRJblVzZXIsIG1lc3NhZ2VPYmplY3QsIHRoZW1lLCBncm91cCk7XG4gICAgICAgIHJldHVybiBtZXNzYWdlT3B0aW9uTGlzdDtcbiAgICB9XG4gICAgZ2V0RmlsZU1lc3NhZ2VPcHRpb25zKGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSwgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLCBncm91cD86IENvbWV0Q2hhdC5Hcm91cCk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+IHtcbiAgICAgICAgbGV0IG1lc3NhZ2VPcHRpb25MaXN0OiBDb21ldENoYXRNZXNzYWdlT3B0aW9uW10gPSBbXTtcbiAgICAgICAgbWVzc2FnZU9wdGlvbkxpc3QgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRDb21tb25PcHRpb25zKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCwgdGhlbWUsIGdyb3VwKTtcbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VPcHRpb25MaXN0O1xuICAgIH1cbiAgICBnZXRCb3R0b21WaWV3KF9tZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsIF9hbGlnbm1lbnQ6IE1lc3NhZ2VCdWJibGVBbGlnbm1lbnQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGdldFRleHRNZXNzYWdlVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUoe1xuICAgICAgICAgICAgdHlwZTogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnRleHQsXG4gICAgICAgICAgICBjYXRlZ29yeTogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5Lm1lc3NhZ2UsXG4gICAgICAgICAgICBvcHRpb25zOiBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRNZXNzYWdlT3B0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldEF1ZGlvTWVzc2FnZVRlbXBsYXRlKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlKHtcbiAgICAgICAgICAgIHR5cGU6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5hdWRpbyxcbiAgICAgICAgICAgIGNhdGVnb3J5OiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkubWVzc2FnZSxcbiAgICAgICAgICAgIG9wdGlvbnM6IENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldE1lc3NhZ2VPcHRpb25zLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0VmlkZW9NZXNzYWdlVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUoe1xuICAgICAgICAgICAgdHlwZTogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnZpZGVvLFxuICAgICAgICAgICAgY2F0ZWdvcnk6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5tZXNzYWdlLFxuICAgICAgICAgICAgb3B0aW9uczogQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0TWVzc2FnZU9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRJbWFnZU1lc3NhZ2VUZW1wbGF0ZSgpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSh7XG4gICAgICAgICAgICB0eXBlOiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuaW1hZ2UsXG4gICAgICAgICAgICBjYXRlZ29yeTogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5Lm1lc3NhZ2UsXG4gICAgICAgICAgICBvcHRpb25zOiBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRNZXNzYWdlT3B0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldEdyb3VwQWN0aW9uVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUoe1xuICAgICAgICAgICAgdHlwZTogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmdyb3VwTWVtYmVyLFxuICAgICAgICAgICAgY2F0ZWdvcnk6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5hY3Rpb24sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRGaWxlTWVzc2FnZVRlbXBsYXRlKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlKHtcbiAgICAgICAgICAgIHR5cGU6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5maWxlLFxuICAgICAgICAgICAgY2F0ZWdvcnk6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5tZXNzYWdlLFxuICAgICAgICAgICAgb3B0aW9uczogQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0TWVzc2FnZU9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRBbGxNZXNzYWdlVGVtcGxhdGVzKCk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0VGV4dE1lc3NhZ2VUZW1wbGF0ZSgpLFxuICAgICAgICAgICAgQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0SW1hZ2VNZXNzYWdlVGVtcGxhdGUoKSxcbiAgICAgICAgICAgIENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldFZpZGVvTWVzc2FnZVRlbXBsYXRlKCksXG4gICAgICAgICAgICBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRBdWRpb01lc3NhZ2VUZW1wbGF0ZSgpLFxuICAgICAgICAgICAgQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0RmlsZU1lc3NhZ2VUZW1wbGF0ZSgpLFxuICAgICAgICAgICAgQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0R3JvdXBBY3Rpb25UZW1wbGF0ZSgpLFxuICAgICAgICBdO1xuICAgIH1cbiAgICBnZXRNZXNzYWdlVGVtcGxhdGUobWVzc2FnZVR5cGU6IHN0cmluZywgbWVzc2FnZUNhdGVnb3J5OiBzdHJpbmcpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUgfCBudWxsIHtcbiAgICAgICAgbGV0IF90ZW1wbGF0ZTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlIHwgbnVsbCA9IG51bGw7XG4gICAgICAgIGlmIChtZXNzYWdlQ2F0ZWdvcnkgIT0gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmNhbGwpIHtcbiAgICAgICAgICAgIHN3aXRjaCAobWVzc2FnZVR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy50ZXh0OlxuICAgICAgICAgICAgICAgICAgICBfdGVtcGxhdGUgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRUZXh0TWVzc2FnZVRlbXBsYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmltYWdlOlxuICAgICAgICAgICAgICAgICAgICBfdGVtcGxhdGUgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRJbWFnZU1lc3NhZ2VUZW1wbGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy52aWRlbzpcbiAgICAgICAgICAgICAgICAgICAgX3RlbXBsYXRlID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0VmlkZW9NZXNzYWdlVGVtcGxhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuZ3JvdXBNZW1iZXI6XG4gICAgICAgICAgICAgICAgICAgIF90ZW1wbGF0ZSA9IENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldEdyb3VwQWN0aW9uVGVtcGxhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuZmlsZTpcbiAgICAgICAgICAgICAgICAgICAgX3RlbXBsYXRlID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0RmlsZU1lc3NhZ2VUZW1wbGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5hdWRpbzpcbiAgICAgICAgICAgICAgICAgICAgX3RlbXBsYXRlID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0QXVkaW9NZXNzYWdlVGVtcGxhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF90ZW1wbGF0ZTtcbiAgICB9XG4gICAgZ2V0TWVzc2FnZU9wdGlvbnMobG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlciwgbWVzc2FnZU9iamVjdDogQ29tZXRDaGF0LkJhc2VNZXNzYWdlLCB0aGVtZTogQ29tZXRDaGF0VGhlbWUsIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwKTogQXJyYXk8Q29tZXRDaGF0TWVzc2FnZU9wdGlvbj4ge1xuICAgICAgICBsZXQgX29wdGlvbkxpc3Q6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+ID0gW107XG4gICAgICAgIGxldCBfaXNTZW50QnlNZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgICAgICBpZiAobG9nZ2VkSW5Vc2VyLmdldFVpZCgpID09IG1lc3NhZ2VPYmplY3QuZ2V0U2VuZGVyKCk/LmdldFVpZCgpKSB7XG4gICAgICAgICAgICBfaXNTZW50QnlNZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1lc3NhZ2VPYmplY3QuZ2V0Q2F0ZWdvcnkoKSA9PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkubWVzc2FnZSkge1xuICAgICAgICAgICAgc3dpdGNoIChtZXNzYWdlT2JqZWN0LmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnRleHQ6XG4gICAgICAgICAgICAgICAgICAgIF9vcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0VGV4dE1lc3NhZ2VPcHRpb25zKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCwgdGhlbWUsIGdyb3VwKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuaW1hZ2U6XG4gICAgICAgICAgICAgICAgICAgIF9vcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0SW1hZ2VNZXNzYWdlT3B0aW9ucyhsb2dnZWRJblVzZXIsIG1lc3NhZ2VPYmplY3QsIHRoZW1lLCBncm91cCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnZpZGVvOlxuICAgICAgICAgICAgICAgICAgICBfb3B0aW9uTGlzdCA9IENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldFZpZGVvTWVzc2FnZU9wdGlvbnMobG9nZ2VkSW5Vc2VyLCBtZXNzYWdlT2JqZWN0LCB0aGVtZSwgZ3JvdXApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5ncm91cE1lbWJlcjpcbiAgICAgICAgICAgICAgICAgICAgX29wdGlvbkxpc3QgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuZmlsZTpcbiAgICAgICAgICAgICAgICAgICAgX29wdGlvbkxpc3QgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRGaWxlTWVzc2FnZU9wdGlvbnMobG9nZ2VkSW5Vc2VyLCBtZXNzYWdlT2JqZWN0LCB0aGVtZSwgZ3JvdXApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5hdWRpbzpcbiAgICAgICAgICAgICAgICAgICAgX29wdGlvbkxpc3QgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRBdWRpb01lc3NhZ2VPcHRpb25zKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCwgdGhlbWUsIGdyb3VwKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAobWVzc2FnZU9iamVjdC5nZXRDYXRlZ29yeSgpID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jdXN0b20pIHtcbiAgICAgICAgICAgIF9vcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0Q29tbW9uT3B0aW9ucyhsb2dnZWRJblVzZXIsIG1lc3NhZ2VPYmplY3QsIHRoZW1lLCBncm91cCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9vcHRpb25MaXN0O1xuICAgIH1cbiAgICBnZXRDb21tb25PcHRpb25zKGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSwgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLCBncm91cD86IENvbWV0Q2hhdC5Hcm91cCk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+IHtcbiAgICAgICAgbGV0IF9pc1NlbnRCeU1lOiBib29sZWFuID0gdGhpcy5pc1NlbnRCeU1lKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCk7XG4gICAgICAgIGxldCBfaXNNb2RlcmF0b3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKGdyb3VwPy5nZXRTY29wZSgpID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyU2NvcGUubW9kZXJhdG9yKSBfaXNNb2RlcmF0b3IgPSB0cnVlO1xuICAgICAgICBsZXQgbWVzc2FnZU9wdGlvbkxpc3Q6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+ID0gW107XG4gICAgICAgIGlmICghbWVzc2FnZU9iamVjdC5nZXRQYXJlbnRNZXNzYWdlSWQoKSkge1xuICAgICAgICAgICAgbWVzc2FnZU9wdGlvbkxpc3QucHVzaCh0aGlzLmdldFJlcGx5SW5UaHJlYWRPcHRpb24odGhlbWUpKTtcbiAgICAgICAgfVxuICAgICAgICBpZihfaXNTZW50QnlNZSl7XG4gICAgICAgICAgICBtZXNzYWdlT3B0aW9uTGlzdC5wdXNoKHRoaXMuZ2V0TWVzc2FnZUluZm9PcHRpb24odGhlbWUpKVxuICAgICAgICB9XG4gICAgICAgIGlmIChncm91cCAmJiAhX2lzU2VudEJ5TWUpe1xuICAgICAgICAgICAgbWVzc2FnZU9wdGlvbkxpc3QucHVzaCh0aGlzLmdldE1lc3NhZ2VQcml2YXRlbHlPcHRpb24odGhlbWUpKVxuICAgICAgICB9XG4gICAgICAgIGlmIChfaXNTZW50QnlNZSA9PSB0cnVlIHx8IF9pc01vZGVyYXRvciA9PSB0cnVlKVxuICAgICAgICBtZXNzYWdlT3B0aW9uTGlzdC5wdXNoKHRoaXMuZ2V0RGVsZXRlT3B0aW9uKHRoZW1lKSk7XG4gICAgXG4gICAgICAgIHJldHVybiBtZXNzYWdlT3B0aW9uTGlzdDtcbiAgICB9XG4gICAgZ2V0QWxsTWVzc2FnZVR5cGVzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnRleHQsXG4gICAgICAgICAgICBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuaW1hZ2UsXG4gICAgICAgICAgICBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuYXVkaW8sXG4gICAgICAgICAgICBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMudmlkZW8sXG4gICAgICAgICAgICBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuZmlsZSxcbiAgICAgICAgICAgIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5ncm91cE1lbWJlclxuICAgICAgICBdO1xuICAgIH1cbiAgICBhZGRMaXN0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBcIjxNZXNzYWdlIFV0aWxzPlwiO1xuICAgIH1cbiAgICBnZXRBbGxNZXNzYWdlQ2F0ZWdvcmllcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIFtDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkubWVzc2FnZSwgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmFjdGlvbl07XG4gICAgfVxuICAgIGdldEF1eGlsaWFyeU9wdGlvbnMoaWQ6Q29tcG9zZXJJZCwgdXNlcj86IENvbWV0Q2hhdC5Vc2VyLCBncm91cD86IENvbWV0Q2hhdC5Hcm91cCk6IGFueSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBnZXRJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gXCJtZXNzYWdlVXRpbHNcIjtcbiAgICB9XG4gICAgZ2V0QWN0aW9uTWVzc2FnZShtZXNzYWdlOiBDb21ldENoYXQuQWN0aW9uKTpzdHJpbmcgIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChtZXNzYWdlIGluc3RhbmNlb2YgQ29tZXRDaGF0LkFjdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGlvbiA9IG1lc3NhZ2UuZ2V0QWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aW9uQnkgPSBtZXNzYWdlLmdldEFjdGlvbkJ5KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aW9uT24gPSBtZXNzYWdlLmdldEFjdGlvbk9uKCk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBieVN0cmluZyA9IChhY3Rpb25CeSBhcyBDb21ldENoYXQuVXNlcikuZ2V0TmFtZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvclN0cmluZyA9XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9PT0gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuZ3JvdXBNZW1iZXJBY3Rpb24uSk9JTkVEIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPT09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyQWN0aW9uLkxFRlRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiAoYWN0aW9uT24gYXMgQ29tZXRDaGF0LlVzZXIpLmdldE5hbWUoKTtcblxuICAgICAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuZ3JvdXBNZW1iZXJBY3Rpb24uQURERUQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7YnlTdHJpbmd9ICR7bG9jYWxpemUoXCJBRERFRFwiKX0gJHtmb3JTdHJpbmd9YDtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5ncm91cE1lbWJlckFjdGlvbi5KT0lORUQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7YnlTdHJpbmd9ICR7bG9jYWxpemUoXCJKT0lORURcIil9YDtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5ncm91cE1lbWJlckFjdGlvbi5MRUZUOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2J5U3RyaW5nfSAke2xvY2FsaXplKFwiTEVGVFwiKX1gO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyQWN0aW9uLktJQ0tFRDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtieVN0cmluZ30gJHtsb2NhbGl6ZShcIktJQ0tFRFwiKX0gJHtmb3JTdHJpbmd9YDtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5ncm91cE1lbWJlckFjdGlvbi5CQU5ORUQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7YnlTdHJpbmd9ICR7bG9jYWxpemUoXCJCQU5ORURcIil9ICR7Zm9yU3RyaW5nfWA7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuZ3JvdXBNZW1iZXJBY3Rpb24uVU5CQU5ORUQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7YnlTdHJpbmd9ICR7bG9jYWxpemUoXCJVTkJBTk5FRFwiKX0gJHtmb3JTdHJpbmd9YDtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5ncm91cE1lbWJlckFjdGlvbi5TQ09QRV9DSEFOR0U6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7YnlTdHJpbmd9ICR7bG9jYWxpemUoXCJNQURFXCIpfSAke2ZvclN0cmluZ30gJHttZXNzYWdlLmdldE5ld1Njb3BlKCl9YDtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICAgICAgcmV0dXJuICBcIlwiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbWFnZUF0dGFjaG1lbnRPcHRpb24odGhlbWU6IENvbWV0Q2hhdFRoZW1lKTogQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24oe1xuICAgICAgICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5pbWFnZSxcbiAgICAgICAgICAgIHRpdGxlOiBsb2NhbGl6ZShcIkFUVEFDSF9JTUFHRVwiKSxcbiAgICAgICAgICAgIGljb25VUkw6IFwiYXNzZXRzL3Bob3RvbGlicmFyeS5zdmdcIixcbiAgICAgICAgICAgIG9uQ2xpY2s6bnVsbCxcbiAgICAgICAgICAgIGljb25UaW50OnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NzAwKCksXG4gICAgICAgICAgICB0aXRsZUZvbnQ6Zm9udEhlbHBlcih0aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICAgICAgICB0aXRsZUNvbG9yOnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NzAwKCksXG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6XCI4cHhcIixcbiAgICAgICAgICAgIGJhY2tncm91bmQ6dGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQxMDAoKVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgdmlkZW9BdHRhY2htZW50T3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbiB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uKHtcbiAgICAgICAgICAgIGlkOiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMudmlkZW8sXG4gICAgICAgICAgICB0aXRsZTogbG9jYWxpemUoXCJBVFRBQ0hfVklERU9cIiksXG4gICAgICAgICAgICBpY29uVVJMOiBcImFzc2V0cy92aWRlby5zdmdcIixcbiAgICAgICAgICAgIG9uQ2xpY2s6bnVsbCxcbiAgICAgICAgICAgIGljb25UaW50OnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NzAwKCksXG4gICAgICAgICAgICB0aXRsZUZvbnQ6Zm9udEhlbHBlcih0aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICAgICAgICB0aXRsZUNvbG9yOnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NzAwKCksXG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6XCI4cHhcIixcbiAgICAgICAgICAgIGJhY2tncm91bmQ6dGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQxMDAoKVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXVkaW9BdHRhY2htZW50T3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbiB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uKHtcbiAgICAgICAgICAgIGlkOiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuYXVkaW8sXG4gICAgICAgICAgICB0aXRsZTogbG9jYWxpemUoXCJBVFRBQ0hfQVVESU9cIiksXG4gICAgICAgICAgICBpY29uVVJMOiBcImFzc2V0cy9hdWRpby1maWxlLnN2Z1wiLFxuICAgICAgICAgICAgb25DbGljazpudWxsLFxuICAgICAgICAgICAgaWNvblRpbnQ6dGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ3MDAoKSxcbiAgICAgICAgICAgIHRpdGxlRm9udDpmb250SGVscGVyKHRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUxKSxcbiAgICAgICAgICAgIHRpdGxlQ29sb3I6dGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ3MDAoKSxcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czpcIjhweFwiLFxuICAgICAgICAgICAgYmFja2dyb3VuZDp0aGVtZS5wYWxldHRlLmdldEFjY2VudDEwMCgpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmaWxlQXR0YWNobWVudE9wdGlvbih0aGVtZTogQ29tZXRDaGF0VGhlbWUpOiBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24ge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbih7XG4gICAgICAgICAgICBpZDogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmZpbGUsXG4gICAgICAgICAgICB0aXRsZTogbG9jYWxpemUoXCJBVFRBQ0hfRklMRVwiKSxcbiAgICAgICAgICAgIGljb25VUkw6IFwiYXNzZXRzL2F0dGFjaG1lbnQtZmlsZS5zdmdcIixcbiAgICAgICAgICAgIG9uQ2xpY2s6bnVsbCxcbiAgICAgICAgICAgIGljb25UaW50OnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NzAwKCksXG4gICAgICAgICAgICB0aXRsZUZvbnQ6Zm9udEhlbHBlcih0aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICAgICAgICB0aXRsZUNvbG9yOnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NzAwKCksXG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6XCI4cHhcIixcbiAgICAgICAgICAgIGJhY2tncm91bmQ6dGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQxMDAoKVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0QXR0YWNobWVudE9wdGlvbnModGhlbWU6IENvbWV0Q2hhdFRoZW1lLHVzZXI/OkNvbWV0Q2hhdC5Vc2VyLGdyb3VwPzpDb21ldENoYXQuR3JvdXAsIGlkPzogQ29tcG9zZXJJZCk6IENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbltdIHtcbiAgICAgICAgbGV0IGFjdGlvbnM6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbj4gPSBbXG4gICAgICAgICAgICB0aGlzLmltYWdlQXR0YWNobWVudE9wdGlvbih0aGVtZSksXG4gICAgICAgICAgICB0aGlzLnZpZGVvQXR0YWNobWVudE9wdGlvbih0aGVtZSksXG4gICAgICAgICAgICB0aGlzLmF1ZGlvQXR0YWNobWVudE9wdGlvbih0aGVtZSksXG4gICAgICAgICAgICB0aGlzLmZpbGVBdHRhY2htZW50T3B0aW9uKHRoZW1lKVxuICAgICAgICBdO1xuICAgICAgICByZXR1cm4gYWN0aW9ucztcbiAgICB9XG4gICAgZ2V0TGFzdENvbnZlcnNhdGlvbk1lc3NhZ2UoY29udmVyc2F0aW9uOiBDb21ldENoYXQuQ29udmVyc2F0aW9uLCBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIENvbnZlcnNhdGlvblV0aWxzLmdldExhc3RDb252ZXJzYXRpb25NZXNzYWdlKGNvbnZlcnNhdGlvbiwgbG9nZ2VkSW5Vc2VyKTtcbiAgICB9XG59XG5leHBvcnQgdHlwZSBDb21wb3NlcklkID0ge3BhcmVudE1lc3NhZ2VJZCA6IG51bWJlciB8IG51bGwsIHVzZXIgOiBzdHJpbmcgfCBudWxsLCBncm91cCA6IHN0cmluZyB8IG51bGx9OyJdfQ==
@@ -6,83 +6,119 @@ import * as i1 from "@angular/common";
6
6
  export class CometChatTabsComponent {
7
7
  constructor(ref) {
8
8
  this.ref = ref;
9
- this.tabAlignment = TabAlignment.bottom;
10
- this.tabsStyle = {};
9
+ this.tabAlignment = TabAlignment.top;
10
+ this.disableDragging = true;
11
+ this.tabsStyle = { height: "100%", width: "100%" };
11
12
  this.tabs = [];
13
+ this.keepAlive = false;
12
14
  this.openViewOnCLick = (tabItem) => {
13
- this.childView = null;
14
- let index = this.tabs.findIndex((item) => item.id === tabItem.id);
15
- if (index > -1) {
15
+ if (tabItem && tabItem.childView) {
16
+ this.childView = tabItem.childView;
16
17
  this.activeTab = tabItem;
17
- this.childView = this.tabs[index].childView;
18
18
  this.ref.detectChanges();
19
19
  }
20
20
  };
21
21
  }
22
22
  ngOnInit() {
23
23
  }
24
+ ngOnChanges() {
25
+ let index = this.tabs.findIndex((item) => item.isActive === true);
26
+ if (this.tabs.length > 0) {
27
+ this.openViewOnCLick(this.tabs[index && index >= 0 ? index : 0]);
28
+ }
29
+ }
24
30
  getButtonStyle(tab) {
25
31
  const { style = {} } = tab || {};
26
32
  const { id } = this.activeTab || {};
27
33
  const active = id === tab?.id;
34
+ var textStyle = tab.iconURL ? {} : {
35
+ display: "flex",
36
+ justifyContent: "center",
37
+ alignItems: "center",
38
+ padding: "7px"
39
+ };
28
40
  return {
29
- background: active ? style.activeBackground ?? style.background : style.background,
30
- buttonTextFont: active ? style.activeTitleTextFont ?? style.titleTextFont : style.titleTextFont,
31
- buttonTextColor: active ? style.activeTitleTextColor ?? style.titleTextColor : style.titleTextColor,
32
- buttonIconTint: active ? style.activeIconTint ?? style.iconTint : style.iconTint,
41
+ background: active ? style.activeBackground : style.background,
42
+ buttonTextFont: active ? style.activeTitleTextFont : style.titleTextFont,
43
+ buttonTextColor: active ? style.activeTitleTextColor : style.titleTextColor,
44
+ buttonIconTint: active ? style.activeIconTint : style.iconTint,
33
45
  height: style.height,
34
46
  width: style.width,
35
47
  border: style.border,
36
48
  borderRadius: style.borderRadius,
37
49
  gap: "0",
38
50
  padding: "0",
51
+ cursor: "pointer",
52
+ ...textStyle
53
+ };
54
+ }
55
+ showTabs(tab) {
56
+ return {
57
+ display: tab.id == this.activeTab.id ? "block" : "none"
39
58
  };
40
59
  }
41
60
  getTabsStyle() {
42
- const position = (() => {
61
+ const alignment = (() => {
43
62
  switch (this.tabAlignment) {
44
63
  case TabAlignment.top:
45
- case TabAlignment.left:
46
64
  return {
47
65
  top: "0",
48
66
  left: "0",
49
67
  };
50
- case TabAlignment.bottom:
68
+ default:
51
69
  return {
52
70
  bottom: "0",
53
71
  left: "0",
54
72
  };
73
+ }
74
+ })();
75
+ return {
76
+ background: this.tabsStyle.background,
77
+ border: this.tabsStyle.border,
78
+ borderRadius: this.tabsStyle.borderRadius,
79
+ ...alignment,
80
+ position: this.disableDragging ? "initial" : "absolute"
81
+ };
82
+ }
83
+ getWrapperStyle() {
84
+ return (() => {
85
+ switch (this.tabAlignment) {
86
+ case TabAlignment.top:
87
+ return {
88
+ display: "flex",
89
+ justifyContent: "flex-start",
90
+ flexDirection: "column"
91
+ };
55
92
  default:
56
93
  return {
57
- top: "0",
58
- right: "0",
94
+ display: "flex",
95
+ justifyContent: "flex-start",
96
+ flexDirection: "column-reverse"
59
97
  };
60
98
  }
61
99
  })();
62
- const { background } = this.tabsStyle ?? {};
63
- return {
64
- background,
65
- ...position,
66
- };
67
100
  }
68
101
  getTabsPlacement() {
69
- let alignment = this.tabAlignment == TabAlignment.top || this.tabAlignment == TabAlignment.bottom ? "row" : "column";
70
102
  return {
71
103
  display: "flex",
72
- flexDirection: alignment
104
+ flexDirection: "row"
73
105
  };
74
106
  }
75
107
  }
76
108
  CometChatTabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatTabsComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
77
- CometChatTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatTabsComponent, selector: "cometchat-tabs", inputs: { tabAlignment: "tabAlignment", tabsStyle: "tabsStyle", tabs: "tabs" }, ngImport: i0, template: "<div class=\"cc-tabs-wrapper\">\n <div class=\"cc-child-view\" *ngIf=\"childView\">\n <ng-container [ngTemplateOutlet]=\"childView\" >\n\n </ng-container>\n </div>\n <div class=\"cc-tabs\" [ngStyle]=\"getTabsStyle()\">\n <cometchat-draggable [draggableStyle]=\"tabsStyle\">\n <div class=\"cc__tab-item\" [ngStyle]=\"getTabsPlacement()\">\n <cometchat-icon-button [alignment]=\"'column'\" *ngFor=\"let tab of tabs\" [iconURL]=\"tab.iconURL\" [text]=\"tab.title\" [buttonStyle]=\"getButtonStyle(tab)\" (cc-button-clicked)=\"openViewOnCLick(tab)\"></cometchat-icon-button>\n </div>\n </cometchat-draggable>\n </div>\n</div>\n", styles: [".cc-tabs-wrapper{height:100%;width:100%;display:flex;flex-direction:column;justify-content:flex-end}.cc-child-view{height:100%;width:100%}.cc-tabs{height:-moz-fit-content;height:fit-content;width:-moz-fit-content;width:fit-content;position:absolute}.cc__tab-item{display:flex}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
109
+ CometChatTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatTabsComponent, selector: "cometchat-tabs", inputs: { tabAlignment: "tabAlignment", disableDragging: "disableDragging", tabsStyle: "tabsStyle", tabs: "tabs", keepAlive: "keepAlive" }, usesOnChanges: true, ngImport: i0, template: " <div class=\"cc-tabs-wrapper\" [ngStyle]=\"getWrapperStyle()\">\n <div class=\"cc-tabs\" [ngStyle]=\"getTabsStyle()\">\n <cometchat-draggable [draggableStyle]=\"tabsStyle\" *ngIf=\"!disableDragging; else fixedTabs\">\n <ng-container *ngTemplateOutlet=\"tabsContainer\">\n </ng-container>\n </cometchat-draggable>\n <ng-template #fixedTabs>\n <ng-container *ngTemplateOutlet=\"tabsContainer\">\n </ng-container>\n </ng-template>\n </div>\n <div class=\"cc-child-view\" *ngIf=\"!keepAlive; else aliveTabs\">\n\n\n <ng-container [ngTemplateOutlet]=\"childView\" >\n\n </ng-container>\n </div>\n\n\n</div>\n<ng-template #previousChild>\n <ng-container [ngTemplateOutlet]=\"previousTab.childView\" >\n\n </ng-container>\n</ng-template>\n<ng-template #tabsContainer>\n <div class=\"cc__tab-item\" [ngStyle]=\"getTabsPlacement()\">\n <cometchat-icon-button [alignment]=\"'column'\" *ngFor=\"let tab of tabs\" [iconURL]=\"tab.iconURL\" [text]=\"tab.title\" [buttonStyle]=\"getButtonStyle(tab)\" (cc-button-clicked)=\"openViewOnCLick(tab)\"></cometchat-icon-button>\n </div>\n\n</ng-template>\n\n<ng-template #aliveTabs>\n <div class=\"cc-child-view\" >\n <div [ngStyle]=\"showTabs(tab)\" class=\"cc-child-container\" *ngFor=\"let tab of tabs\">\n <ng-container [ngTemplateOutlet]=\"tab.childView\" >\n\n </ng-container>\n </div>\n\n </div>\n</ng-template>", styles: [".cc-tabs-wrapper{height:100%;width:100%;display:flex;flex-direction:column;justify-content:flex-start}.cc-child-view{height:100%;width:100%;overflow:hidden}.cc-tabs{height:-moz-fit-content;height:fit-content;margin:8px 0 12px}.cc__tab-item{display:flex;height:100%;width:100%}cometchat-icon-button{height:inherit;width:inherit}.cc-child-container{height:100%;width:100%;display:none}\n"], directives: [{ type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
78
110
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatTabsComponent, decorators: [{
79
111
  type: Component,
80
- args: [{ selector: 'cometchat-tabs', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cc-tabs-wrapper\">\n <div class=\"cc-child-view\" *ngIf=\"childView\">\n <ng-container [ngTemplateOutlet]=\"childView\" >\n\n </ng-container>\n </div>\n <div class=\"cc-tabs\" [ngStyle]=\"getTabsStyle()\">\n <cometchat-draggable [draggableStyle]=\"tabsStyle\">\n <div class=\"cc__tab-item\" [ngStyle]=\"getTabsPlacement()\">\n <cometchat-icon-button [alignment]=\"'column'\" *ngFor=\"let tab of tabs\" [iconURL]=\"tab.iconURL\" [text]=\"tab.title\" [buttonStyle]=\"getButtonStyle(tab)\" (cc-button-clicked)=\"openViewOnCLick(tab)\"></cometchat-icon-button>\n </div>\n </cometchat-draggable>\n </div>\n</div>\n", styles: [".cc-tabs-wrapper{height:100%;width:100%;display:flex;flex-direction:column;justify-content:flex-end}.cc-child-view{height:100%;width:100%}.cc-tabs{height:-moz-fit-content;height:fit-content;width:-moz-fit-content;width:fit-content;position:absolute}.cc__tab-item{display:flex}\n"] }]
112
+ args: [{ selector: 'cometchat-tabs', changeDetection: ChangeDetectionStrategy.OnPush, template: " <div class=\"cc-tabs-wrapper\" [ngStyle]=\"getWrapperStyle()\">\n <div class=\"cc-tabs\" [ngStyle]=\"getTabsStyle()\">\n <cometchat-draggable [draggableStyle]=\"tabsStyle\" *ngIf=\"!disableDragging; else fixedTabs\">\n <ng-container *ngTemplateOutlet=\"tabsContainer\">\n </ng-container>\n </cometchat-draggable>\n <ng-template #fixedTabs>\n <ng-container *ngTemplateOutlet=\"tabsContainer\">\n </ng-container>\n </ng-template>\n </div>\n <div class=\"cc-child-view\" *ngIf=\"!keepAlive; else aliveTabs\">\n\n\n <ng-container [ngTemplateOutlet]=\"childView\" >\n\n </ng-container>\n </div>\n\n\n</div>\n<ng-template #previousChild>\n <ng-container [ngTemplateOutlet]=\"previousTab.childView\" >\n\n </ng-container>\n</ng-template>\n<ng-template #tabsContainer>\n <div class=\"cc__tab-item\" [ngStyle]=\"getTabsPlacement()\">\n <cometchat-icon-button [alignment]=\"'column'\" *ngFor=\"let tab of tabs\" [iconURL]=\"tab.iconURL\" [text]=\"tab.title\" [buttonStyle]=\"getButtonStyle(tab)\" (cc-button-clicked)=\"openViewOnCLick(tab)\"></cometchat-icon-button>\n </div>\n\n</ng-template>\n\n<ng-template #aliveTabs>\n <div class=\"cc-child-view\" >\n <div [ngStyle]=\"showTabs(tab)\" class=\"cc-child-container\" *ngFor=\"let tab of tabs\">\n <ng-container [ngTemplateOutlet]=\"tab.childView\" >\n\n </ng-container>\n </div>\n\n </div>\n</ng-template>", styles: [".cc-tabs-wrapper{height:100%;width:100%;display:flex;flex-direction:column;justify-content:flex-start}.cc-child-view{height:100%;width:100%;overflow:hidden}.cc-tabs{height:-moz-fit-content;height:fit-content;margin:8px 0 12px}.cc__tab-item{display:flex;height:100%;width:100%}cometchat-icon-button{height:inherit;width:inherit}.cc-child-container{height:100%;width:100%;display:none}\n"] }]
81
113
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { tabAlignment: [{
82
114
  type: Input
115
+ }], disableDragging: [{
116
+ type: Input
83
117
  }], tabsStyle: [{
84
118
  type: Input
85
119
  }], tabs: [{
86
120
  type: Input
121
+ }], keepAlive: [{
122
+ type: Input
87
123
  }] } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9TaGFyZWQvVmlld3MvQ29tZXRDaGF0VGFicy9jb21ldGNoYXQtdGFicy9jb21ldGNoYXQtdGFicy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL1NoYXJlZC9WaWV3cy9Db21ldENoYXRUYWJzL2NvbWV0Y2hhdC10YWJzL2NvbWV0Y2hhdC10YWJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUE2Qyx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SCxPQUFPLEVBQW9CLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVFLE9BQU8sMkJBQTJCLENBQUE7OztBQVFsQyxNQUFNLE9BQU8sc0JBQXNCO0lBTWpDLFlBQW9CLEdBQXFCO1FBQXJCLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBTGhDLGlCQUFZLEdBQWdCLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDL0MsY0FBUyxHQUFhLEVBQUUsQ0FBQTtRQUN6QixTQUFJLEdBQXNCLEVBQUUsQ0FBQztRQUl0QyxvQkFBZSxHQUFHLENBQUMsT0FBd0IsRUFBQyxFQUFFO1lBRTVDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBc0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEUsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFNBQVMsR0FB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dUIsQ0FBQyxNQUFNO3dHQUd0QyxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbWV0Q2hhdFRhYkl0ZW0sIFRhYkFsaWdubWVudCB9IGZyb20gJ0Bjb21ldGNoYXQvdWlraXQtcmVzb3VyY2VzJztcbmltcG9ydCB7IEJhc2VTdHlsZSB9IGZyb20gJ0Bjb21ldGNoYXQvdWlraXQtc2hhcmVkJztcbmltcG9ydCAnQGNvbWV0Y2hhdC91aWtpdC1lbGVtZW50cydcbmltcG9ydCB7IENvbWV0Q2hhdCB9IGZyb20gJ0Bjb21ldGNoYXQtcHJvL2NoYXQnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY29tZXRjaGF0LXRhYnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29tZXRjaGF0LXRhYnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb21ldGNoYXQtdGFicy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ29tZXRDaGF0VGFic0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHRhYkFsaWdubWVudDpUYWJBbGlnbm1lbnQgPSBUYWJBbGlnbm1lbnQuYm90dG9tO1xuICBASW5wdXQoKSAgdGFic1N0eWxlOkJhc2VTdHlsZSA9IHt9XG4gIEBJbnB1dCgpIHRhYnM6Q29tZXRDaGF0VGFiSXRlbVtdID0gW107XG4gIHB1YmxpYyBhY3RpdmVUYWIhOkNvbWV0Q2hhdFRhYkl0ZW07XG4gIHB1YmxpYyBjaGlsZFZpZXchOlRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjpDaGFuZ2VEZXRlY3RvclJlZil7fVxuICBvcGVuVmlld09uQ0xpY2sgPSAodGFiSXRlbTpDb21ldENoYXRUYWJJdGVtKT0+e1xuXG4gICAgdGhpcy5jaGlsZFZpZXcgPSBudWxsO1xuICAgIGxldCBpbmRleCA9IHRoaXMudGFicy5maW5kSW5kZXgoKGl0ZW06IENvbWV0Q2hhdFRhYkl0ZW0pID0+IGl0ZW0uaWQgPT09IHRhYkl0ZW0uaWQpO1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYiA9IHRhYkl0ZW1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGlsZFZpZXcgPSAgdGhpcy50YWJzW2luZGV4XS5jaGlsZFZpZXdcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICAgICAgICAgICAgfVxuICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG4gICBnZXRCdXR0b25TdHlsZSh0YWI6IENvbWV0Q2hhdFRhYkl0ZW0pIHtcbiAgICBjb25zdCB7IHN0eWxlID0ge30gfSA9IHRhYiB8fCB7fTtcbiAgICBjb25zdCB7IGlkIH0gPSB0aGlzLmFjdGl2ZVRhYiB8fCB7fTtcbiAgICBjb25zdCBhY3RpdmUgPSBpZCA9PT0gdGFiPy5pZDtcblxuICAgIHJldHVybiB7XG4gICAgICBiYWNrZ3JvdW5kOiBhY3RpdmUgPyBzdHlsZS5hY3RpdmVCYWNrZ3JvdW5kID8/IHN0eWxlLmJhY2tncm91bmQgOiBzdHlsZS5iYWNrZ3JvdW5kLFxuICAgICAgYnV0dG9uVGV4dEZvbnQ6IGFjdGl2ZSA/IHN0eWxlLmFjdGl2ZVRpdGxlVGV4dEZvbnQgPz8gc3R5bGUudGl0bGVUZXh0Rm9udCA6IHN0eWxlLnRpdGxlVGV4dEZvbnQsXG4gICAgICBidXR0b25UZXh0Q29sb3I6IGFjdGl2ZSA/IHN0eWxlLmFjdGl2ZVRpdGxlVGV4dENvbG9yID8/IHN0eWxlLnRpdGxlVGV4dENvbG9yIDogc3R5bGUudGl0bGVUZXh0Q29sb3IsXG4gICAgICBidXR0b25JY29uVGludDogYWN0aXZlID8gc3R5bGUuYWN0aXZlSWNvblRpbnQgPz8gc3R5bGUuaWNvblRpbnQgOiBzdHlsZS5pY29uVGludCxcbiAgICAgIGhlaWdodDogc3R5bGUuaGVpZ2h0LFxuICAgICAgd2lkdGg6IHN0eWxlLndpZHRoLFxuICAgICAgYm9yZGVyOiBzdHlsZS5ib3JkZXIsXG4gICAgICBib3JkZXJSYWRpdXM6IHN0eWxlLmJvcmRlclJhZGl1cyxcbiAgICAgIGdhcDogXCIwXCIsXG4gICAgICBwYWRkaW5nOiBcIjBcIixcbiAgICB9O1xuICB9XG5cbiAgIGdldFRhYnNTdHlsZSgpIHtcbiAgICBjb25zdCBwb3NpdGlvbiA9ICgoKSA9PiB7XG4gICAgICBzd2l0Y2ggKHRoaXMudGFiQWxpZ25tZW50KSB7XG4gICAgICAgIGNhc2UgVGFiQWxpZ25tZW50LnRvcDpcbiAgICAgICAgY2FzZSBUYWJBbGlnbm1lbnQubGVmdDpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdG9wOiBcIjBcIixcbiAgICAgICAgICAgIGxlZnQ6IFwiMFwiLFxuICAgICAgICAgIH07XG4gICAgICAgIGNhc2UgVGFiQWxpZ25tZW50LmJvdHRvbTpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYm90dG9tOiBcIjBcIixcbiAgICAgICAgICAgIGxlZnQ6IFwiMFwiLFxuICAgICAgICAgIH07XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRvcDogXCIwXCIsXG4gICAgICAgICAgICByaWdodDogXCIwXCIsXG4gICAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KSgpO1xuXG4gICAgY29uc3QgeyBiYWNrZ3JvdW5kIH0gPSB0aGlzLnRhYnNTdHlsZSA/PyB7fTtcblxuICAgIHJldHVybiB7XG4gICAgICBiYWNrZ3JvdW5kLFxuICAgICAgLi4ucG9zaXRpb24sXG4gICAgfTtcbiAgfVxuXG4gIGdldFRhYnNQbGFjZW1lbnQoKXtcbiAgICBsZXQgYWxpZ25tZW50OnN0cmluZyA9IHRoaXMudGFiQWxpZ25tZW50ID09IFRhYkFsaWdubWVudC50b3AgfHwgdGhpcy50YWJBbGlnbm1lbnQgPT0gVGFiQWxpZ25tZW50LmJvdHRvbSA/IFwicm93XCIgOiBcImNvbHVtblwiXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXk6XCJmbGV4XCIsXG4gICAgICBmbGV4RGlyZWN0aW9uOiBhbGlnbm1lbnRcbiAgICB9XG4gIH1cbn1cblxuIiwiPGRpdiBjbGFzcz1cImNjLXRhYnMtd3JhcHBlclwiPlxuICAgPGRpdiBjbGFzcz1cImNjLWNoaWxkLXZpZXdcIiAqbmdJZj1cImNoaWxkVmlld1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjaGlsZFZpZXdcIiA+XG5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgPC9kaXY+XG4gICA8ZGl2IGNsYXNzPVwiY2MtdGFic1wiIFtuZ1N0eWxlXT1cImdldFRhYnNTdHlsZSgpXCI+XG4gICAgICA8Y29tZXRjaGF0LWRyYWdnYWJsZSBbZHJhZ2dhYmxlU3R5bGVdPVwidGFic1N0eWxlXCI+XG4gICAgICAgICA8ZGl2IGNsYXNzPVwiY2NfX3RhYi1pdGVtXCIgW25nU3R5bGVdPVwiZ2V0VGFic1BsYWNlbWVudCgpXCI+XG4gICAgICAgICAgICA8Y29tZXRjaGF0LWljb24tYnV0dG9uIFthbGlnbm1lbnRdPVwiJ2NvbHVtbidcIiAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIiBbaWNvblVSTF09XCJ0YWIuaWNvblVSTFwiIFt0ZXh0XT1cInRhYi50aXRsZVwiIFtidXR0b25TdHlsZV09XCJnZXRCdXR0b25TdHlsZSh0YWIpXCIgKGNjLWJ1dHRvbi1jbGlja2VkKT1cIm9wZW5WaWV3T25DTGljayh0YWIpXCI+PC9jb21ldGNoYXQtaWNvbi1idXR0b24+XG4gICAgICAgICA8L2Rpdj5cbiAgICAgIDwvY29tZXRjaGF0LWRyYWdnYWJsZT5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9TaGFyZWQvVmlld3MvQ29tZXRDaGF0VGFicy9jb21ldGNoYXQtdGFicy9jb21ldGNoYXQtdGFicy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL1NoYXJlZC9WaWV3cy9Db21ldENoYXRUYWJzL2NvbWV0Y2hhdC10YWJzL2NvbWV0Y2hhdC10YWJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUE2Qyx1QkFBdUIsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDM0ksT0FBTyxFQUFvQixZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU1RSxPQUFPLDJCQUEyQixDQUFBOzs7QUFRbEMsTUFBTSxPQUFPLHNCQUFzQjtJQVNqQyxZQUFvQixHQUFxQjtRQUFyQixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQVJoQyxpQkFBWSxHQUFnQixZQUFZLENBQUMsR0FBRyxDQUFDO1FBQzdDLG9CQUFlLEdBQVcsSUFBSSxDQUFBO1FBQzdCLGNBQVMsR0FBYSxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFDLE1BQU0sRUFBQyxDQUFBO1FBQ25ELFNBQUksR0FBc0IsRUFBRSxDQUFDO1FBQzdCLGNBQVMsR0FBVyxLQUFLLENBQUM7UUFLbkMsb0JBQWUsR0FBRyxDQUFDLE9BQXdCLEVBQUMsRUFBRTtZQUM1QyxJQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFDO2dCQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFB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QUNwQyxNQUFNLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNO1lBQzVCLFlBQVksRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVk7WUFDdkMsR0FBRyxTQUFTO1lBQ1osUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVTtTQUN4RCxDQUFDO0lBQ0osQ0FBQztJQUNELGVBQWU7UUFDYixPQUFXLENBQUMsR0FBRyxFQUFFO1lBQ2YsUUFBUSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUN6QixLQUFLLFlBQVksQ0FBQyxHQUFHO29CQUNuQixPQUFPO3dCQUNOLE9BQU8sRUFBQyxNQUFNO3dCQUNkLGNBQWMsRUFBQyxZQUFZO3dCQUMzQixhQUFhLEVBQUMsUUFBUTtxQkFDdEIsQ0FBQztnQkFDSjtvQkFDRSxPQUFPO3dCQUNMLE9BQU8sRUFBQyxNQUFNO3dCQUNkLGNBQWMsRUFBQyxZQUFZO3dCQUMzQixhQUFhLEVBQUMsZ0JBQWdCO3FCQUM5QixDQUFDO2FBQ047UUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1AsQ0FBQztJQUNELGdCQUFnQjtRQUNkLE9BQU87WUFDTCxPQUFPLEVBQUMsTUFBTTtZQUNkLGFBQWEsRUFBRSxLQUFLO1NBQ3JCLENBQUE7SUFDSCxDQUFDOztvSEE3R1Usc0JBQXNCO3dHQUF0QixzQkFBc0IsdU5DWG5DLDQ3Q0EwQ2M7NEZEL0JELHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTTt3R0FHdEMsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIENoYW5nZURldGVjdG9yUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29udGVudENoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21ldENoYXRUYWJJdGVtLCBUYWJBbGlnbm1lbnQgfSBmcm9tICdAY29tZXRjaGF0L3Vpa2l0LXJlc291cmNlcyc7XG5pbXBvcnQgeyBCYXNlU3R5bGUgfSBmcm9tICdAY29tZXRjaGF0L3Vpa2l0LXNoYXJlZCc7XG5pbXBvcnQgJ0Bjb21ldGNoYXQvdWlraXQtZWxlbWVudHMnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvbWV0Y2hhdC10YWJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbWV0Y2hhdC10YWJzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29tZXRjaGF0LXRhYnMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENvbWV0Q2hhdFRhYnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSB0YWJBbGlnbm1lbnQ6VGFiQWxpZ25tZW50ID0gVGFiQWxpZ25tZW50LnRvcDtcbiAgQElucHV0KCkgZGlzYWJsZURyYWdnaW5nOmJvb2xlYW4gPSB0cnVlXG4gIEBJbnB1dCgpICB0YWJzU3R5bGU6QmFzZVN0eWxlID0ge2hlaWdodDpcIjEwMCVcIix3aWR0aDpcIjEwMCVcIn1cbiAgQElucHV0KCkgdGFiczpDb21ldENoYXRUYWJJdGVtW10gPSBbXTtcbiAgQElucHV0KCkga2VlcEFsaXZlOmJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGFjdGl2ZVRhYiE6Q29tZXRDaGF0VGFiSXRlbTtcbiAgcHVibGljIHByZXZpb3VzVGFiITpDb21ldENoYXRUYWJJdGVtXG4gIHB1YmxpYyBjaGlsZFZpZXchOlRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjpDaGFuZ2VEZXRlY3RvclJlZil7fVxuICBvcGVuVmlld09uQ0xpY2sgPSAodGFiSXRlbTpDb21ldENoYXRUYWJJdGVtKT0+e1xuICAgIGlmKHRhYkl0ZW0gJiYgdGFiSXRlbS5jaGlsZFZpZXcpe1xuICAgICAgdGhpcy5jaGlsZFZpZXcgPSB0YWJJdGVtLmNoaWxkVmlldztcbiAgICAgIHRoaXMuYWN0aXZlVGFiID0gdGFiSXRlbVxuICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgfVxuXG5cbiAgfVxuXG5cblxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gIH1cblxuICBuZ09uQ2hhbmdlcygpe1xuICAgIGxldCBpbmRleCA9IHRoaXMudGFicy5maW5kSW5kZXgoKGl0ZW06IENvbWV0Q2hhdFRhYkl0ZW0pID0+IGl0ZW0uaXNBY3RpdmUgPT09IHRydWUpXG4gICAgaWYodGhpcy50YWJzLmxlbmd0aCA+IDApe1xuICAgICAgdGhpcy5vcGVuVmlld09uQ0xpY2sodGhpcy50YWJzWyBpbmRleCAmJiBpbmRleCA+PSAwID8gaW5kZXggOiAwXSlcbiAgICB9XG4gIH1cbiAgIGdldEJ1dHRvblN0eWxlKHRhYjogQ29tZXRDaGF0VGFiSXRlbSkge1xuICAgIGNvbnN0IHsgc3R5bGUgPSB7fSB9ID0gdGFiIHx8IHt9O1xuICAgIGNvbnN0IHsgaWQgfSA9IHRoaXMuYWN0aXZlVGFiIHx8IHt9O1xuICAgIGNvbnN0IGFjdGl2ZSA9IGlkID09PSB0YWI/LmlkO1xuICAgIHZhciB0ZXh0U3R5bGUgPSB0YWIuaWNvblVSTCA/IHt9IDoge1xuICAgICAgZGlzcGxheTpcImZsZXhcIixcbiAgICAgIGp1c3RpZnlDb250ZW50OlwiY2VudGVyXCIsXG4gICAgICBhbGlnbkl0ZW1zOlwiY2VudGVyXCIsXG4gICAgICBwYWRkaW5nOlwiN3B4XCJcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGJhY2tncm91bmQ6IGFjdGl2ZSA/IHN0eWxlLmFjdGl2ZUJhY2tncm91bmQgIDogc3R5bGUuYmFja2dyb3VuZCxcbiAgICAgIGJ1dHRvblRleHRGb250OiBhY3RpdmUgPyBzdHlsZS5hY3RpdmVUaXRsZVRleHRGb250ICA6IHN0eWxlLnRpdGxlVGV4dEZvbnQsXG4gICAgICBidXR0b25UZXh0Q29sb3I6IGFjdGl2ZSA/IHN0eWxlLmFjdGl2ZVRpdGxlVGV4dENvbG9yICA6IHN0eWxlLnRpdGxlVGV4dENvbG9yLFxuICAgICAgYnV0dG9uSWNvblRpbnQ6IGFjdGl2ZSA/IHN0eWxlLmFjdGl2ZUljb25UaW50ICA6IHN0eWxlLmljb25UaW50LFxuICAgICAgaGVpZ2h0OiBzdHlsZS5oZWlnaHQsXG4gICAgICB3aWR0aDogc3R5bGUud2lkdGgsXG4gICAgICBib3JkZXI6IHN0eWxlLmJvcmRlcixcbiAgICAgIGJvcmRlclJhZGl1czogc3R5bGUuYm9yZGVyUmFkaXVzLFxuICAgICAgZ2FwOiBcIjBcIixcbiAgICAgIHBhZGRpbmc6IFwiMFwiLFxuICAgICAgY3Vyc29yOlwicG9pbnRlclwiLFxuICAgICAgLi4udGV4dFN0eWxlXG4gICAgfTtcbiAgfVxuICBzaG93VGFicyh0YWI6Q29tZXRDaGF0VGFiSXRlbSl7XG5yZXR1cm4ge1xuICBkaXNwbGF5OiB0YWIuaWQgPT0gdGhpcy5hY3RpdmVUYWIuaWQgPyBcImJsb2NrXCIgOiBcIm5vbmVcIlxufVxuICB9XG4gICBnZXRUYWJzU3R5bGUoKSB7XG4gICAgY29uc3QgYWxpZ25tZW50ID0gKCgpID0+IHtcbiAgICAgIHN3aXRjaCAodGhpcy50YWJBbGlnbm1lbnQpIHtcbiAgICAgICAgY2FzZSBUYWJBbGlnbm1lbnQudG9wOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0b3A6IFwiMFwiLFxuICAgICAgICAgICAgbGVmdDogXCIwXCIsXG4gICAgICAgICAgfTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYm90dG9tOiBcIjBcIixcbiAgICAgICAgICAgIGxlZnQ6IFwiMFwiLFxuICAgICAgICAgIH07XG4gICAgICB9XG4gICAgfSkoKTtcbiAgICByZXR1cm4ge1xuICAgICBiYWNrZ3JvdW5kOnRoaXMudGFic1N0eWxlLmJhY2tncm91bmQsXG4gICAgIGJvcmRlcjp0aGlzLnRhYnNTdHlsZS5ib3JkZXIsXG4gICAgIGJvcmRlclJhZGl1czp0aGlzLnRhYnNTdHlsZS5ib3JkZXJSYWRpdXMsXG4gICAgICAuLi5hbGlnbm1lbnQsXG4gICAgICBwb3NpdGlvbjogdGhpcy5kaXNhYmxlRHJhZ2dpbmcgPyBcImluaXRpYWxcIiA6IFwiYWJzb2x1dGVcIlxuICAgIH07XG4gIH1cbiAgZ2V0V3JhcHBlclN0eWxlKCl7XG4gICAgcmV0dXJuICAgICAoKCkgPT4ge1xuICAgICAgc3dpdGNoICh0aGlzLnRhYkFsaWdubWVudCkge1xuICAgICAgICBjYXNlIFRhYkFsaWdubWVudC50b3A6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgZGlzcGxheTpcImZsZXhcIixcbiAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6XCJmbGV4LXN0YXJ0XCIsXG4gICAgICAgICAgIGZsZXhEaXJlY3Rpb246XCJjb2x1bW5cIlxuICAgICAgICAgIH07XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6XCJmbGV4XCIsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDpcImZsZXgtc3RhcnRcIixcbiAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246XCJjb2x1bW4tcmV2ZXJzZVwiXG4gICAgICAgICAgIH07XG4gICAgICB9XG4gICAgfSkoKTtcbiAgfVxuICBnZXRUYWJzUGxhY2VtZW50KCl7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXk6XCJmbGV4XCIsXG4gICAgICBmbGV4RGlyZWN0aW9uOiBcInJvd1wiXG4gICAgfVxuICB9XG59XG4iLCIgPGRpdiBjbGFzcz1cImNjLXRhYnMtd3JhcHBlclwiIFtuZ1N0eWxlXT1cImdldFdyYXBwZXJTdHlsZSgpXCI+XG4gICA8ZGl2IGNsYXNzPVwiY2MtdGFic1wiIFtuZ1N0eWxlXT1cImdldFRhYnNTdHlsZSgpXCI+XG4gICAgICA8Y29tZXRjaGF0LWRyYWdnYWJsZSBbZHJhZ2dhYmxlU3R5bGVdPVwidGFic1N0eWxlXCIgKm5nSWY9XCIhZGlzYWJsZURyYWdnaW5nOyBlbHNlIGZpeGVkVGFic1wiPlxuICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhYnNDb250YWluZXJcIj5cbiAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9jb21ldGNoYXQtZHJhZ2dhYmxlPlxuICAgICAgPG5nLXRlbXBsYXRlICNmaXhlZFRhYnM+XG4gICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFic0NvbnRhaW5lclwiPlxuICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjYy1jaGlsZC12aWV3XCIgKm5nSWY9XCIha2VlcEFsaXZlOyBlbHNlIGFsaXZlVGFic1wiPlxuXG5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2hpbGRWaWV3XCIgPlxuXG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgIDwvZGl2PlxuXG5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNwcmV2aW91c0NoaWxkPlxuICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJwcmV2aW91c1RhYi5jaGlsZFZpZXdcIiA+XG5cbiAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdGFic0NvbnRhaW5lcj5cbiAgIDxkaXYgY2xhc3M9XCJjY19fdGFiLWl0ZW1cIiBbbmdTdHlsZV09XCJnZXRUYWJzUGxhY2VtZW50KClcIj5cbiAgICAgIDxjb21ldGNoYXQtaWNvbi1idXR0b24gW2FsaWdubWVudF09XCInY29sdW1uJ1wiICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFic1wiIFtpY29uVVJMXT1cInRhYi5pY29uVVJMXCIgW3RleHRdPVwidGFiLnRpdGxlXCIgW2J1dHRvblN0eWxlXT1cImdldEJ1dHRvblN0eWxlKHRhYilcIiAoY2MtYnV0dG9uLWNsaWNrZWQpPVwib3BlblZpZXdPbkNMaWNrKHRhYilcIj48L2NvbWV0Y2hhdC1pY29uLWJ1dHRvbj5cbiAgIDwvZGl2PlxuXG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2FsaXZlVGFicz5cbiAgIDxkaXYgY2xhc3M9XCJjYy1jaGlsZC12aWV3XCIgPlxuICAgICAgPGRpdiBbbmdTdHlsZV09XCJzaG93VGFicyh0YWIpXCIgY2xhc3M9XCJjYy1jaGlsZC1jb250YWluZXJcIiAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWIuY2hpbGRWaWV3XCIgPlxuXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG5cbiAgICAgICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -1,25 +1,13 @@
1
1
  import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { CometChatTabsComponent } from './cometchat-tabs/cometchat-tabs.component';
4
- import { CometChatConversationsWithMessages } from '../../../CometChatConversationsWithMessages/cometchat-conversations-with-messages.module';
5
- import { CometChatGroupsWithMessages } from '../../../CometChatGroupsWithMessages/cometchat-groups-with-messages.module';
6
- import { CometChatUsersWithMessages } from '../../../CometChatUsersWithMessages/cometchat-users-with-messages.module';
7
- import { CometChatCallHistoryWithDetails } from '../../../Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details.module';
8
4
  import * as i0 from "@angular/core";
9
5
  export class CometChatTabs {
10
6
  }
11
7
  CometChatTabs.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatTabs, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- CometChatTabs.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatTabs, declarations: [CometChatTabsComponent], imports: [CommonModule,
13
- CometChatConversationsWithMessages,
14
- CometChatUsersWithMessages,
15
- CometChatGroupsWithMessages,
16
- CometChatCallHistoryWithDetails], exports: [CometChatTabsComponent] });
8
+ CometChatTabs.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatTabs, declarations: [CometChatTabsComponent], imports: [CommonModule], exports: [CometChatTabsComponent] });
17
9
  CometChatTabs.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatTabs, imports: [[
18
10
  CommonModule,
19
- CometChatConversationsWithMessages,
20
- CometChatUsersWithMessages,
21
- CometChatGroupsWithMessages,
22
- CometChatCallHistoryWithDetails
23
11
  ]] });
24
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatTabs, decorators: [{
25
13
  type: NgModule,
@@ -27,13 +15,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
27
15
  declarations: [CometChatTabsComponent],
28
16
  imports: [
29
17
  CommonModule,
30
- CometChatConversationsWithMessages,
31
- CometChatUsersWithMessages,
32
- CometChatGroupsWithMessages,
33
- CometChatCallHistoryWithDetails
34
18
  ],
35
19
  exports: [CometChatTabsComponent],
36
20
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
37
21
  }]
38
22
  }] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LXRhYnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9TaGFyZWQvVmlld3MvQ29tZXRDaGF0VGFicy9jb21ldGNoYXQtdGFicy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMEZBQTBGLENBQUM7QUFDOUksT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDekgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDdEgsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMkZBQTJGLENBQUM7O0FBYzVJLE1BQU0sT0FBTyxhQUFhOzsyR0FBYixhQUFhOzRHQUFiLGFBQWEsaUJBWFQsc0JBQXNCLGFBRW5DLFlBQVk7UUFDWixrQ0FBa0M7UUFDbEMsMEJBQTBCO1FBQzFCLDJCQUEyQjtRQUMzQiwrQkFBK0IsYUFFdkIsc0JBQXNCOzRHQUdyQixhQUFhLFlBVmY7WUFDUCxZQUFZO1lBQ1osa0NBQWtDO1lBQ2xDLDBCQUEwQjtZQUMxQiwyQkFBMkI7WUFDM0IsK0JBQStCO1NBQ2hDOzRGQUlVLGFBQWE7a0JBWnpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ3RDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGtDQUFrQzt3QkFDbEMsMEJBQTBCO3dCQUMxQiwyQkFBMkI7d0JBQzNCLCtCQUErQjtxQkFDaEM7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLE9BQU8sRUFBQyxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tZXRDaGF0VGFic0NvbXBvbmVudCB9IGZyb20gJy4vY29tZXRjaGF0LXRhYnMvY29tZXRjaGF0LXRhYnMuY29tcG9uZW50JztcbmltcG9ydCB7IENvbWV0Q2hhdENvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXMgfSBmcm9tICcuLi8uLi8uLi9Db21ldENoYXRDb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzL2NvbWV0Y2hhdC1jb252ZXJzYXRpb25zLXdpdGgtbWVzc2FnZXMubW9kdWxlJztcbmltcG9ydCB7IENvbWV0Q2hhdEdyb3Vwc1dpdGhNZXNzYWdlcyB9IGZyb20gJy4uLy4uLy4uL0NvbWV0Q2hhdEdyb3Vwc1dpdGhNZXNzYWdlcy9jb21ldGNoYXQtZ3JvdXBzLXdpdGgtbWVzc2FnZXMubW9kdWxlJztcbmltcG9ydCB7IENvbWV0Q2hhdFVzZXJzV2l0aE1lc3NhZ2VzIH0gZnJvbSAnLi4vLi4vLi4vQ29tZXRDaGF0VXNlcnNXaXRoTWVzc2FnZXMvY29tZXRjaGF0LXVzZXJzLXdpdGgtbWVzc2FnZXMubW9kdWxlJztcbmltcG9ydCB7IENvbWV0Q2hhdENhbGxIaXN0b3J5V2l0aERldGFpbHMgfSBmcm9tICcuLi8uLi8uLi9DYWxscy9Db21ldENoYXRDYWxsSGlzdG9yeVdpdGhEZXRhaWxzL2NvbWV0Y2hhdC1jYWxsLWhpc3Rvcnktd2l0aC1kZXRhaWxzLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0NvbWV0Q2hhdFRhYnNDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIENvbWV0Q2hhdENvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXMsXG4gICAgQ29tZXRDaGF0VXNlcnNXaXRoTWVzc2FnZXMsXG4gICAgQ29tZXRDaGF0R3JvdXBzV2l0aE1lc3NhZ2VzLFxuICAgIENvbWV0Q2hhdENhbGxIaXN0b3J5V2l0aERldGFpbHNcbiAgXSxcbiAgZXhwb3J0czogW0NvbWV0Q2hhdFRhYnNDb21wb25lbnRdLFxuICBzY2hlbWFzOltDVVNUT01fRUxFTUVOVFNfU0NIRU1BXVxufSlcbmV4cG9ydCBjbGFzcyBDb21ldENoYXRUYWJzIHsgfVxuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LXRhYnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9TaGFyZWQvVmlld3MvQ29tZXRDaGF0VGFicy9jb21ldGNoYXQtdGFicy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBVW5GLE1BQU0sT0FBTyxhQUFhOzsyR0FBYixhQUFhOzRHQUFiLGFBQWEsaUJBUFQsc0JBQXNCLGFBRW5DLFlBQVksYUFFSixzQkFBc0I7NEdBR3JCLGFBQWEsWUFOZjtZQUNQLFlBQVk7U0FDYjs0RkFJVSxhQUFhO2tCQVJ6QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUN0QyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsT0FBTyxFQUFDLENBQUMsc0JBQXNCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21ldENoYXRUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21ldGNoYXQtdGFicy9jb21ldGNoYXQtdGFicy5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDb21ldENoYXRUYWJzQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW0NvbWV0Q2hhdFRhYnNDb21wb25lbnRdLFxuICBzY2hlbWFzOltDVVNUT01fRUxFTUVOVFNfU0NIRU1BXVxufSlcbmV4cG9ydCBjbGFzcyBDb21ldENoYXRUYWJzIHsgfVxuIl19