@cometchat/chat-uikit-angular 4.0.0-beta.1.4 → 4.0.0-beta.1.5
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.
- package/Calls/CallingExtension.d.ts +4 -3
- package/Calls/CallingExtensionDecorator.d.ts +0 -1
- package/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.d.ts +4 -3
- package/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.d.ts +4 -3
- package/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.d.ts +14 -6
- package/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.d.ts +0 -1
- package/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.d.ts +5 -5
- package/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.d.ts +6 -5
- package/CometChatContacts/cometchat-contacts/cometchat-contacts.component.d.ts +65 -0
- package/CometChatContacts/cometchat-contacts.module.d.ts +12 -0
- package/CometChatConversations/cometchat-conversations/cometchat-conversations.component.d.ts +21 -15
- package/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.d.ts +13 -4
- package/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.d.ts +2 -1
- package/CometChatDetails/cometchat-details/cometchat-details.component.d.ts +7 -7
- package/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.d.ts +14 -12
- package/CometChatGroups/cometchat-groups/cometchat-groups.component.d.ts +12 -6
- package/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.d.ts +6 -4
- package/CometChatList/cometchat-list.component.d.ts +2 -1
- package/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.d.ts +2 -2
- package/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.d.ts +23 -6
- package/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.d.ts +1 -1
- package/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.d.ts +95 -0
- package/CometChatMessageInformation/cometchat-message-information.module.d.ts +10 -0
- package/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.d.ts +45 -26
- package/CometChatMessageList/cometchat-message-list.module.d.ts +3 -1
- package/CometChatMessages/cometchat-messages/cometchat-messages.component.d.ts +5 -3
- package/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.d.ts +0 -1
- package/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.d.ts +3 -3
- package/CometChatUsers/cometchat-users/cometchat-users.component.d.ts +11 -5
- package/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.d.ts +2 -2
- package/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.d.ts +4 -8
- package/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.d.ts +1 -4
- package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.d.ts +4 -8
- package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.d.ts +1 -4
- package/Extensions/ImageModeration/ImageModerationExtension.d.ts +4 -4
- package/Extensions/LinkPreviewExtension/LinkPreviewExtension.d.ts +4 -4
- package/Extensions/MessageTranslation/MessageTranslationExtension.d.ts +4 -8
- package/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.d.ts +1 -4
- package/Extensions/PollsExtension/PollsExtension.d.ts +4 -4
- package/Extensions/PollsExtension/PollsExtensionDecorator.d.ts +0 -1
- package/Extensions/Reactions/ReactionExtension.d.ts +4 -4
- package/Extensions/Reactions/ReactionExtensionDecorator.d.ts +0 -1
- package/Extensions/SmartReplies/SmartRepliesExtension.d.ts +4 -8
- package/Extensions/SmartReplies/SmartRepliesExtensionDecorator.d.ts +2 -2
- package/Extensions/Stickers/StickersExtension.d.ts +4 -8
- package/Extensions/Stickers/StickersExtensionDecorator.d.ts +2 -2
- package/Extensions/TextModerator/TextModeratorExtension.d.ts +4 -3
- package/Extensions/TextModerator/TextModeratorExtensionDecorator.d.ts +0 -1
- package/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.d.ts +4 -4
- package/Shared/CometChatUIkit/CometChatUIKit.d.ts +10 -6
- package/Shared/Framework/DataSource.d.ts +0 -1
- package/Shared/Framework/DataSourceDecorator.d.ts +0 -1
- package/Shared/Utils/ComeChatException.d.ts +1 -2
- package/Shared/Utils/MessageUtils.d.ts +2 -1
- package/Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component.d.ts +38 -9
- package/Shared/Views/CometChatTabs/cometchat-tabs.module.d.ts +1 -5
- package/esm2020/Calls/CallingExtension.mjs +7 -4
- package/esm2020/Calls/CallingExtensionDecorator.mjs +4 -4
- package/esm2020/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.mjs +58 -21
- package/esm2020/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.mjs +48 -17
- package/esm2020/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.mjs +110 -9
- package/esm2020/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.mjs +9 -7
- package/esm2020/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.mjs +9 -6
- package/esm2020/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.mjs +12 -7
- package/esm2020/CometChatContacts/cometchat-contacts/cometchat-contacts.component.mjs +273 -0
- package/esm2020/CometChatContacts/cometchat-contacts.module.mjs +23 -0
- package/esm2020/CometChatConversations/cometchat-conversations/cometchat-conversations.component.mjs +122 -65
- package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.mjs +105 -17
- package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.mjs +6 -2
- package/esm2020/CometChatDetails/cometchat-details/cometchat-details.component.mjs +13 -11
- package/esm2020/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.mjs +45 -46
- package/esm2020/CometChatGroups/cometchat-groups/cometchat-groups.component.mjs +69 -28
- package/esm2020/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.mjs +60 -21
- package/esm2020/CometChatList/cometchat-list.component.mjs +8 -9
- package/esm2020/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.mjs +4 -5
- package/esm2020/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.mjs +200 -30
- package/esm2020/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.mjs +4 -5
- package/esm2020/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.mjs +288 -0
- package/esm2020/CometChatMessageInformation/cometchat-message-information.module.mjs +28 -0
- package/esm2020/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.mjs +401 -185
- package/esm2020/CometChatMessageList/cometchat-message-list.module.mjs +12 -4
- package/esm2020/CometChatMessages/cometchat-messages/cometchat-messages.component.mjs +28 -15
- package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.mjs +3 -4
- package/esm2020/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.mjs +14 -15
- package/esm2020/CometChatUsers/cometchat-users/cometchat-users.component.mjs +72 -45
- package/esm2020/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.mjs +21 -9
- package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.mjs +7 -6
- package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.mjs +3 -4
- package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.mjs +7 -6
- package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.mjs +3 -4
- package/esm2020/Extensions/ImageModeration/ImageModerationExtension.mjs +7 -5
- package/esm2020/Extensions/LinkPreviewExtension/LinkPreviewExtension.mjs +7 -5
- package/esm2020/Extensions/MessageTranslation/MessageTranslationExtension.mjs +7 -6
- package/esm2020/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.mjs +2 -4
- package/esm2020/Extensions/PollsExtension/PollsExtension.mjs +7 -5
- package/esm2020/Extensions/PollsExtension/PollsExtensionDecorator.mjs +1 -1
- package/esm2020/Extensions/Reactions/ReactionExtension.mjs +7 -5
- package/esm2020/Extensions/Reactions/ReactionExtensionDecorator.mjs +3 -2
- package/esm2020/Extensions/SmartReplies/SmartRepliesExtension.mjs +7 -6
- package/esm2020/Extensions/SmartReplies/SmartRepliesExtensionDecorator.mjs +5 -7
- package/esm2020/Extensions/Stickers/StickersExtension.mjs +7 -10
- package/esm2020/Extensions/Stickers/StickersExtensionDecorator.mjs +5 -7
- package/esm2020/Extensions/TextModerator/TextModeratorExtension.mjs +16 -4
- package/esm2020/Extensions/TextModerator/TextModeratorExtensionDecorator.mjs +1 -1
- package/esm2020/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.mjs +7 -5
- package/esm2020/Shared/CometChatUIkit/CometChatUIKit.mjs +66 -32
- package/esm2020/Shared/Framework/DataSource.mjs +1 -1
- package/esm2020/Shared/Framework/DataSourceDecorator.mjs +1 -1
- package/esm2020/Shared/Utils/ComeChatException.mjs +2 -2
- package/esm2020/Shared/Utils/MessageUtils.mjs +36 -6
- package/esm2020/Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component.mjs +61 -25
- package/esm2020/Shared/Views/CometChatTabs/cometchat-tabs.module.mjs +2 -18
- package/esm2020/public-api.mjs +8 -5
- package/fesm2015/cometchat-chat-uikit-angular.mjs +3658 -3185
- package/fesm2015/cometchat-chat-uikit-angular.mjs.map +1 -1
- package/fesm2020/cometchat-chat-uikit-angular.mjs +3639 -3164
- package/fesm2020/cometchat-chat-uikit-angular.mjs.map +1 -1
- package/package.json +5 -5
- package/public-api.d.ts +7 -4
- package/Calls/CometChatCallDetails/cometchat-call-details/cometchat-call-details.component.d.ts +0 -139
- package/Calls/CometChatCallDetails/cometchat-call-details.module.d.ts +0 -10
- package/Calls/CometChatCallHistory/cometchat-call-history/cometchat-call-history.component.d.ts +0 -125
- package/Calls/CometChatCallHistory/cometchat-call-history.module.d.ts +0 -10
- package/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details/cometchat-call-history-with-details.component.d.ts +0 -59
- package/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details.module.d.ts +0 -12
- package/esm2020/Calls/CometChatCallDetails/cometchat-call-details/cometchat-call-details.component.mjs +0 -452
- package/esm2020/Calls/CometChatCallDetails/cometchat-call-details.module.mjs +0 -31
- package/esm2020/Calls/CometChatCallHistory/cometchat-call-history/cometchat-call-history.component.mjs +0 -397
- package/esm2020/Calls/CometChatCallHistory/cometchat-call-history.module.mjs +0 -28
- package/esm2020/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details/cometchat-call-history-with-details.component.mjs +0 -143
- package/esm2020/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details.module.mjs +0 -39
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import { CometChat } from '@cometchat
|
|
3
|
-
import { StorageUtils,
|
|
2
|
+
import { CometChat } from '@cometchat/chat-sdk-javascript';
|
|
3
|
+
import { StorageUtils, IncomingCallStyle, CometChatSoundManager, CometChatUIKitCalls } from "@cometchat/uikit-shared";
|
|
4
|
+
import { CallscreenStyle } from '@cometchat/uikit-elements';
|
|
4
5
|
import { AvatarStyle, ListItemStyle } from '@cometchat/uikit-elements';
|
|
5
|
-
import { localize, CometChatUIKitConstants, fontHelper, CometChatCallEvents
|
|
6
|
+
import { localize, CometChatUIKitConstants, fontHelper, CometChatCallEvents } from '@cometchat/uikit-resources';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "../../../CometChatTheme.service";
|
|
8
9
|
import * as i2 from "../../CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component";
|
|
@@ -207,13 +208,16 @@ export class CometChatIncomingCallComponent {
|
|
|
207
208
|
this.attachListeners();
|
|
208
209
|
this.setThemeStyle();
|
|
209
210
|
this.ccCallEnded = CometChatCallEvents.ccCallEnded.subscribe((call) => {
|
|
210
|
-
this.
|
|
211
|
-
this.activeCall = null;
|
|
212
|
-
this.call = null;
|
|
213
|
-
this.sessionId = "";
|
|
214
|
-
this.ref.detectChanges();
|
|
211
|
+
this.closeCallScreen();
|
|
215
212
|
});
|
|
216
213
|
}
|
|
214
|
+
closeCallScreen() {
|
|
215
|
+
this.showOngoingCall = false;
|
|
216
|
+
this.activeCall = null;
|
|
217
|
+
this.call = null;
|
|
218
|
+
this.sessionId = "";
|
|
219
|
+
this.ref.detectChanges();
|
|
220
|
+
}
|
|
217
221
|
ngOnDestroy() {
|
|
218
222
|
StorageUtils.detachChangeDetection(this.localStorageChange);
|
|
219
223
|
this.removeListener();
|
|
@@ -243,6 +247,7 @@ export class CometChatIncomingCallComponent {
|
|
|
243
247
|
this.activeCall = call;
|
|
244
248
|
this.sessionId = call?.getSessionId();
|
|
245
249
|
this.showIncomingCallScreen = false;
|
|
250
|
+
this.call = call;
|
|
246
251
|
this.ref.detectChanges();
|
|
247
252
|
})
|
|
248
253
|
.catch((error) => {
|
|
@@ -281,13 +286,40 @@ export class CometChatIncomingCallComponent {
|
|
|
281
286
|
}
|
|
282
287
|
}
|
|
283
288
|
getCallBuilder() {
|
|
284
|
-
let audioOnlyCall = this.
|
|
285
|
-
|
|
286
|
-
.setSessionID(this.sessionId)
|
|
289
|
+
let audioOnlyCall = this.activeCall?.getType() == CometChatUIKitConstants.MessageTypes.audio ? true : false;
|
|
290
|
+
const callSettings = new CometChatUIKitCalls.CallSettingsBuilder()
|
|
287
291
|
.enableDefaultLayout(true)
|
|
288
292
|
.setIsAudioOnlyCall(audioOnlyCall)
|
|
289
|
-
.
|
|
290
|
-
|
|
293
|
+
.setCallListener(new CometChatUIKitCalls.OngoingCallListener({
|
|
294
|
+
onCallEnded: () => {
|
|
295
|
+
if (this.call?.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.user) {
|
|
296
|
+
CometChatUIKitCalls.endSession();
|
|
297
|
+
this.closeCallScreen();
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
onCallEndButtonPressed: () => {
|
|
301
|
+
if (this.call?.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.user) {
|
|
302
|
+
CometChat.endCall(this.sessionId).then((call) => {
|
|
303
|
+
CometChatUIKitCalls.endSession();
|
|
304
|
+
CometChatCallEvents.ccCallEnded.next(call);
|
|
305
|
+
this.closeCallScreen();
|
|
306
|
+
})
|
|
307
|
+
.catch((err) => {
|
|
308
|
+
if (this.onError) {
|
|
309
|
+
this.onError(err);
|
|
310
|
+
}
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
else {
|
|
314
|
+
this.closeCallScreen();
|
|
315
|
+
}
|
|
316
|
+
},
|
|
317
|
+
onError: (error) => {
|
|
318
|
+
console.log("Error :", error);
|
|
319
|
+
},
|
|
320
|
+
}))
|
|
321
|
+
.build();
|
|
322
|
+
return callSettings;
|
|
291
323
|
}
|
|
292
324
|
setThemeStyle() {
|
|
293
325
|
this.setincomingCallStyle();
|
|
@@ -361,17 +393,16 @@ export class CometChatIncomingCallComponent {
|
|
|
361
393
|
nameTextColor: this.themeService.theme.palette.getAccent900(),
|
|
362
394
|
backgroundSize: "cover",
|
|
363
395
|
nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
|
|
364
|
-
outerViewBorder: "",
|
|
365
396
|
outerViewBorderSpacing: "",
|
|
366
397
|
});
|
|
367
398
|
this.avatarStyle = { ...defaultStyle, ...this.avatarStyle };
|
|
368
399
|
}
|
|
369
400
|
}
|
|
370
401
|
CometChatIncomingCallComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatIncomingCallComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.CometChatThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
371
|
-
CometChatIncomingCallComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatIncomingCallComponent, selector: "cometchat-incoming-call", inputs: { call: "call", disableSoundForCalls: "disableSoundForCalls", customSoundForCalls: "customSoundForCalls", onAccept: "onAccept", onDecline: "onDecline", acceptButtonText: "acceptButtonText", declineButtonText: "declineButtonText", subtitleView: "subtitleView", onError: "onError", listItemStyle: "listItemStyle", avatarStyle: "avatarStyle", incomingCallStyle: "incomingCallStyle" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"cc-incoming-call__wrapper\" [ngStyle]=\"wrapperStyle()\" *ngIf=\"call && showIncomingCallScreen\">\n <div class=\"cc-incoming-call__listitem\">\n <cometchat-list-item [title]=\"call
|
|
402
|
+
CometChatIncomingCallComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatIncomingCallComponent, selector: "cometchat-incoming-call", inputs: { call: "call", disableSoundForCalls: "disableSoundForCalls", customSoundForCalls: "customSoundForCalls", onAccept: "onAccept", onDecline: "onDecline", acceptButtonText: "acceptButtonText", declineButtonText: "declineButtonText", subtitleView: "subtitleView", onError: "onError", listItemStyle: "listItemStyle", avatarStyle: "avatarStyle", incomingCallStyle: "incomingCallStyle" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"cc-incoming-call__wrapper\" [ngStyle]=\"wrapperStyle()\" *ngIf=\"call && showIncomingCallScreen\">\n <div class=\"cc-incoming-call__listitem\">\n <cometchat-list-item [title]=\"call.getSender().getName()\"\n [listItemStyle]=\"listItemStyle\"\n [hideSeparator]=\"true\" >\n <div slot=\"subtitleView\" class=\"cc-incoming-call__subtitle-view\" *ngIf=\"subtitleView;else subtitle\">\n <ng-container *ngTemplateOutlet=\"subtitleView\">\n </ng-container>\n </div>\n <ng-template #subtitle>\n <div slot=\"subtitleView\" class=\"cc-incoming-call__subtitle-view\">\n <div class=\"cc-call__icon\">\n <cometchat-icon [iconStyle]=\"iconStyle\" [URL]=\"getCallTypeIcon()\"></cometchat-icon>\n </div>\n <cometchat-label class=\"cc-call__type\" [text]=\"subtitleText\" [labelStyle]=\"subtitleStyle()\">\n\n </cometchat-label>\n </div>\n </ng-template>\n <div slot=\"tailView\" class=\"cc-incoming-call__tail-view\">\n <div class=\"tail__view\">\n <div class=\"cc-incoming-call__avatar\">\n <cometchat-avatar [avatarStyle]=\"avatarStyle\" [image]=\"call.getSender().getAvatar()\" [name]=\"call.getSender().getName()\">\n\n </cometchat-avatar>\n </div>\n </div>\n </div>\n </cometchat-list-item>\n </div>\n <div class=\"cc-incoming-call-buttons\">\n <cometchat-button (cc-button-clicked)=\"rejectIncomingCall()\" [buttonStyle]=\"declineButtonStyle\" [text]=\"declineButtonText\"></cometchat-button>\n <cometchat-button (cc-button-clicked)=\"acceptIncomingCall()\" [buttonStyle]=\"acceptButtonStyle\" [text]=\"acceptButtonText\" ></cometchat-button>\n </div>\n</div>\n<cometchat-ongoing-call *ngIf=\"showOngoingCall && activeCall && !showIncomingCallScreen\" [ongoingCallStyle]=\"ongoingCallStyle\" [sessionID]=\"sessionId\" [callSettingsBuilder]=\"getCallBuilder()!\"></cometchat-ongoing-call>\n", styles: [".cc-incoming-call__wrapper{position:absolute;left:8px;top:8px;height:-moz-fit-content;height:fit-content;width:-moz-fit-content;width:fit-content;min-height:104px;min-width:230px;z-index:100;display:flex;flex-direction:column;justify-content:flex-start;gap:8px;align-items:flex-start}.cc-incoming-call-buttons{display:flex;gap:8px}.cc-incoming-call__tail-view{position:relative}.cc-incoming-call__subtitle-view{display:flex;align-items:center;justify-content:flex-start;gap:6px}.cc-incoming-call__listitem{width:100%;margin-left:-4px}\n"], components: [{ type: i2.CometChatOngoingCallComponent, selector: "cometchat-ongoing-call", inputs: ["ongoingCallStyle", "resizeIconHoverText", "sessionID", "minimizeIconURL", "maximizeIconURL", "callSettingsBuilder", "callWorkflow", "onError"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
372
403
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatIncomingCallComponent, decorators: [{
|
|
373
404
|
type: Component,
|
|
374
|
-
args: [{ selector: "cometchat-incoming-call", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cc-incoming-call__wrapper\" [ngStyle]=\"wrapperStyle()\" *ngIf=\"call && showIncomingCallScreen\">\n <div class=\"cc-incoming-call__listitem\">\n <cometchat-list-item [title]=\"call
|
|
405
|
+
args: [{ selector: "cometchat-incoming-call", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cc-incoming-call__wrapper\" [ngStyle]=\"wrapperStyle()\" *ngIf=\"call && showIncomingCallScreen\">\n <div class=\"cc-incoming-call__listitem\">\n <cometchat-list-item [title]=\"call.getSender().getName()\"\n [listItemStyle]=\"listItemStyle\"\n [hideSeparator]=\"true\" >\n <div slot=\"subtitleView\" class=\"cc-incoming-call__subtitle-view\" *ngIf=\"subtitleView;else subtitle\">\n <ng-container *ngTemplateOutlet=\"subtitleView\">\n </ng-container>\n </div>\n <ng-template #subtitle>\n <div slot=\"subtitleView\" class=\"cc-incoming-call__subtitle-view\">\n <div class=\"cc-call__icon\">\n <cometchat-icon [iconStyle]=\"iconStyle\" [URL]=\"getCallTypeIcon()\"></cometchat-icon>\n </div>\n <cometchat-label class=\"cc-call__type\" [text]=\"subtitleText\" [labelStyle]=\"subtitleStyle()\">\n\n </cometchat-label>\n </div>\n </ng-template>\n <div slot=\"tailView\" class=\"cc-incoming-call__tail-view\">\n <div class=\"tail__view\">\n <div class=\"cc-incoming-call__avatar\">\n <cometchat-avatar [avatarStyle]=\"avatarStyle\" [image]=\"call.getSender().getAvatar()\" [name]=\"call.getSender().getName()\">\n\n </cometchat-avatar>\n </div>\n </div>\n </div>\n </cometchat-list-item>\n </div>\n <div class=\"cc-incoming-call-buttons\">\n <cometchat-button (cc-button-clicked)=\"rejectIncomingCall()\" [buttonStyle]=\"declineButtonStyle\" [text]=\"declineButtonText\"></cometchat-button>\n <cometchat-button (cc-button-clicked)=\"acceptIncomingCall()\" [buttonStyle]=\"acceptButtonStyle\" [text]=\"acceptButtonText\" ></cometchat-button>\n </div>\n</div>\n<cometchat-ongoing-call *ngIf=\"showOngoingCall && activeCall && !showIncomingCallScreen\" [ongoingCallStyle]=\"ongoingCallStyle\" [sessionID]=\"sessionId\" [callSettingsBuilder]=\"getCallBuilder()!\"></cometchat-ongoing-call>\n", styles: [".cc-incoming-call__wrapper{position:absolute;left:8px;top:8px;height:-moz-fit-content;height:fit-content;width:-moz-fit-content;width:fit-content;min-height:104px;min-width:230px;z-index:100;display:flex;flex-direction:column;justify-content:flex-start;gap:8px;align-items:flex-start}.cc-incoming-call-buttons{display:flex;gap:8px}.cc-incoming-call__tail-view{position:relative}.cc-incoming-call__subtitle-view{display:flex;align-items:center;justify-content:flex-start;gap:6px}.cc-incoming-call__listitem{width:100%;margin-left:-4px}\n"] }]
|
|
375
406
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.CometChatThemeService }]; }, propDecorators: { call: [{
|
|
376
407
|
type: Input
|
|
377
408
|
}], disableSoundForCalls: [{
|
|
@@ -397,4 +428,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
397
428
|
}], incomingCallStyle: [{
|
|
398
429
|
type: Input
|
|
399
430
|
}] } });
|
|
400
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LWluY29taW5nLWNhbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9DYWxscy9Db21ldENoYXRJbmNvbWluZ0NhbGwvY29tZXRjaGF0LWluY29taW5nLWNhbGwvY29tZXRjaGF0LWluY29taW5nLWNhbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9DYWxscy9Db21ldENoYXRJbmNvbWluZ0NhbGwvY29tZXRjaGF0LWluY29taW5nLWNhbGwvY29tZXRjaGF0LWluY29taW5nLWNhbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFpRCxNQUFNLGVBQWUsQ0FBQztBQUM1SSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBQyxlQUFlLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqSCxPQUFPLEVBQUUsV0FBVyxFQUFjLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBR2xGLE9BQU8sRUFBRyxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUF5QyxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQUMzSzs7Ozs7Ozs7RUFRRTtBQU9GLE1BQU0sT0FBTyw4QkFBOEI7SUFxRHpDLFlBQW9CLEdBQXNCLEVBQVUsWUFBbUM7UUFBbkUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUFuRDlFLHlCQUFvQixHQUFXLEtBQUssQ0FBQztRQUlyQyxxQkFBZ0IsR0FBVyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsc0JBQWlCLEdBQVcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWhELFlBQU8sR0FBa0QsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7WUFDeEcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNwQixDQUFDLENBQUE7UUFDUSxrQkFBYSxHQUFrQjtZQUN0QyxNQUFNLEVBQUUsTUFBTTtZQUNkLEtBQUssRUFBRSxNQUFNO1lBQ2IsVUFBVSxFQUFFLEVBQUU7WUFDZCxnQkFBZ0IsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sRUFBRSxFQUFFO1NBQ1gsQ0FBQztRQUNPLGdCQUFXLEdBQWdCO1lBQ2xDLFlBQVksRUFBRSxNQUFNO1lBQ3BCLEtBQUssRUFBRSxNQUFNO1lBQ2IsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDO1FBQ08sc0JBQWlCLEdBQXNCO1lBQzlDLEtBQUssRUFBRSxhQUFhO1lBQ3BCLE1BQU0sRUFBRSxhQUFhO1NBQ3RCLENBQUM7UUFDSywyQkFBc0IsR0FBVyxlQUFlLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvRSxpQkFBWSxHQUFVLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUMvQyxnQkFBVyxHQUFPO1lBQ2hCLE1BQU0sRUFBQyxNQUFNO1lBQ2IsS0FBSyxFQUFDLE1BQU07WUFDWixPQUFPLEVBQUMsTUFBTTtZQUNkLGFBQWEsRUFBQyxRQUFRO1lBQ3RCLGNBQWMsRUFBQyxRQUFRO1lBQ3ZCLFVBQVUsRUFBQyxRQUFRO1lBQ25CLE9BQU8sRUFBQyxVQUFVO1NBQ25CLENBQUE7UUFDRCxxQkFBZ0IsR0FBb0IsRUFBRSxDQUFBO1FBQ3RDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLDJCQUFzQixHQUFXLEtBQUssQ0FBQTtRQUN0QyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLHNCQUFpQixHQUFRLEVBQUUsQ0FBQTtRQUMzQix1QkFBa0IsR0FBUSxFQUFFLENBQUE7UUFDckIsaUJBQVksR0FBMEIsSUFBSSxDQUFDO1FBQ2xELGNBQVMsR0FBYztZQUNyQixNQUFNLEVBQUUsTUFBTTtZQUNkLEtBQUssRUFBRSxNQUFNO1lBQ2IsUUFBUSxFQUFFLHdCQUF3QjtTQUNuQyxDQUFBO1FBQ0gsZUFBVSxHQUF5QixJQUFJLENBQUM7UUFtRXRDLHVCQUFrQixHQUFHLENBQUMsS0FBUyxFQUFNLEVBQUU7WUFDdkMsSUFBSSxLQUFLLEVBQUUsR0FBRyxLQUFLLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUU7Z0JBQzVELE9BQU8sS0FBSyxDQUFDO2FBQ2I7WUFDRCxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtnQkFDckMsSUFBSSxJQUFJLENBQUM7Z0JBQ1QsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO29CQUNuQixJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ2xDO3FCQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtvQkFDMUIsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUNsQztnQkFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssSUFBSSxFQUFFLFNBQVMsRUFBRTtvQkFDOUMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQTtvQkFDdkMscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUE7b0JBQzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO29CQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7aUJBQzVCO2FBQ0Q7WUFDQyxPQUFNO1FBQ1QsQ0FBQyxDQUFDO1FBeUJELHdCQUFtQixHQUFHLEdBQUcsRUFBRTtZQUN6QixJQUFJLFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBQztnQkFDckMsU0FBUyxFQUFFLE1BQU07Z0JBQ2pCLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixNQUFNLEVBQUUsTUFBTTtnQkFDZCxZQUFZLEVBQUUsR0FBRztnQkFDakIsVUFBVSxFQUFFLFNBQVM7Z0JBQ3JCLFNBQVMsRUFBRSxPQUFPO2dCQUNsQixRQUFRLEVBQUUsT0FBTztnQkFDakIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtnQkFDaEUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTthQUNqRSxDQUFDLENBQUE7WUFDRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxHQUFHLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBQ3ZFLENBQUMsQ0FBQTtRQXlDSCxpQ0FBNEIsR0FBRyxHQUFHLEVBQUU7WUFDbEMsSUFBSSxJQUFJLEdBQWtCLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtZQUNuRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUNyQyxJQUFJLENBQUMsSUFBSSxFQUFFO29CQUNULE9BQU8sT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQ25DO2dCQUNELElBQUksU0FBUyxHQUFHLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQztnQkFDckMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7cUJBQ3pCLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO29CQUNqQixPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDM0IsQ0FBQyxDQUFDO3FCQUNELEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNmLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBOEdBLGtCQUFhLEdBQUcsR0FBRyxFQUFFO1lBQ25CLE9BQU87Z0JBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0I7Z0JBQ2pELFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCO2FBQ3BELENBQUE7UUFDSCxDQUFDLENBQUE7UUFDRCxpQkFBWSxHQUFHLEdBQUcsRUFBRTtZQUNsQixPQUFPO2dCQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTTtnQkFDckMsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLO2dCQUNuQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVU7Z0JBQzdDLE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTTtnQkFDckMsWUFBWSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZO2dCQUNqRCxPQUFPLEVBQUMsS0FBSzthQUNkLENBQUE7UUFDSCxDQUFDLENBQUE7SUEvUzJGLENBQUM7SUFDN0YsV0FBVyxDQUFDLE9BQXNCO1FBQ2pDLElBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLEVBQUU7WUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSyxDQUFDLENBQUE7U0FDeEI7SUFDRixDQUFDO0lBQ0QsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzVCLHFCQUFxQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1NBQy9GO2FBQ0k7WUFDSCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFBO1NBQ3JFO0lBQ0gsQ0FBQztJQUNELFlBQVksQ0FBQyxJQUFtQjtRQUM5QixJQUFJLGFBQWEsR0FBVyxLQUFLLENBQUE7UUFDakMsSUFBRyxZQUFZLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBQztZQUNqRSxJQUFJLE9BQU8sR0FBUSxZQUFZLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUNqRixJQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBQztnQkFDdEQsYUFBYSxHQUFJLElBQUksQ0FBQTthQUNyQjtpQkFDRztnQkFDSCxhQUFhLEdBQUksS0FBSyxDQUFBO2FBQ3RCO1NBQ0Q7YUFDRztZQUNGLGFBQWEsR0FBSSxLQUFLLENBQUE7U0FDdkI7UUFDRixPQUFPLGFBQWEsQ0FBQTtJQUNyQixDQUFDO0lBQ0QsUUFBUSxDQUFDLElBQW1CO1FBQzFCLElBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQztZQUN0RyxJQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFDO2dCQUM1QixVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNkLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtnQkFDbEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQ1Q7WUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtZQUNoQixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFBO1lBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7U0FDekI7YUFDRztZQUNGLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFBO1lBQzdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7U0FDNUQ7SUFDSCxDQUFDO0lBQ0QsZUFBZTtRQUNiLFNBQVMsQ0FBQyxlQUFlLENBQ3ZCLElBQUksQ0FBQyxzQkFBc0IsRUFDM0IsSUFBSSxTQUFTLENBQUMsWUFBWSxDQUFDO1lBQ3pCLHNCQUFzQixFQUFFLENBQUMsSUFBb0IsRUFBRSxFQUFFO2dCQUMvQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO1lBQzFCLENBQUM7WUFDRCx1QkFBdUIsRUFBRSxDQUFDLElBQW9CLEVBQUUsRUFBRTtnQkFDaEQscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUE7Z0JBQzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO1lBQzFCLENBQUM7U0FDRixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFDRCxjQUFjO1FBQ1osU0FBUyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFxQkQsUUFBUTtRQUNOLFNBQVMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUEwQixFQUFDLEVBQUU7WUFDN0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUE7UUFDMUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBa0MsRUFBQyxFQUFFO1lBQzdDLElBQUcsSUFBSSxDQUFDLE9BQU8sRUFBQztnQkFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO2FBQ3BCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDRixZQUFZLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDM0QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFtQixFQUFDLEVBQUU7WUFDbEYsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUE7WUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUE7WUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7WUFDaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUE7WUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUMxQixDQUFDLENBQUMsQ0FBQTtJQUNGLENBQUM7SUFDRCxXQUFXO1FBQ1QsWUFBWSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQzNELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUNyQixJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFBO0lBQ2pDLENBQUM7SUFlRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUU7WUFDdEUsT0FBTyx1QkFBdUIsQ0FBQTtTQUMvQjthQUNJO1lBQ0gsT0FBTyx1QkFBdUIsQ0FBQTtTQUMvQjtJQUNILENBQUM7SUFDSCxrQkFBa0I7UUFDaEIscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDN0IsSUFBRyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FDekI7YUFFRztZQUNGLElBQUksQ0FBQyw0QkFBNEIsRUFBRTtpQkFDbEMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pCLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztxQkFDNUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ2IsbUJBQW1CLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtvQkFDN0MsWUFBWSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFBO29CQUNwRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQTtvQkFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUE7b0JBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFBO29CQUNyQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFBO29CQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO2dCQUMxQixDQUFDLENBQUM7cUJBQ0QsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ2xCLElBQUcsSUFBSSxDQUFDLE9BQU8sRUFBQzt3QkFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO3FCQUNwQjtnQkFDQSxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixJQUFHLElBQUksQ0FBQyxPQUFPLEVBQUM7b0JBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtpQkFDcEI7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQWlCRCxrQkFBa0IsQ0FBQyxTQUFpQix1QkFBdUIsQ0FBQyxLQUFLLENBQUMsUUFBUTtRQUN4RSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUM3QixJQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksRUFBQztZQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtTQUMxQjthQUNDO1lBRUgsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSyxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sQ0FBQztpQkFDckQsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7Z0JBQ3JCLFlBQVksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQTtnQkFDM0UsbUJBQW1CLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtnQkFDckQsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUE7Z0JBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFBO2dCQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtZQUMzQixDQUFDLENBQUM7aUJBQ0QsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ25CLElBQUcsSUFBSSxDQUFDLE9BQU8sRUFBQztvQkFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO2lCQUNwQjtZQUNDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDRCxDQUFDO0lBQ0QsY0FBYztRQUNaLElBQUksYUFBYSxHQUFZLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksdUJBQXVCLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7UUFDOUcsT0FBTyxJQUFJLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRTthQUN2QyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQzthQUM1QixtQkFBbUIsQ0FBQyxJQUFJLENBQUM7YUFDekIsa0JBQWtCLENBQUMsYUFBYSxDQUFDO2FBQ2pDLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQzthQUNwQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO0lBQzVELENBQUM7SUFDQyxhQUFhO1FBQ1gsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUE7UUFDM0IsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBQ3JCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQTtJQUNwRSxDQUFDO0lBQ0QsZ0JBQWdCO1FBQ2QsSUFBSSxZQUFZLEdBQWlCLElBQUksYUFBYSxDQUFDO1lBQ2pELE1BQU0sRUFBRSxNQUFNO1lBQ2QsS0FBSyxFQUFFLE1BQU07WUFDYixVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUMzRCxnQkFBZ0IsRUFBRSxhQUFhO1lBQy9CLFlBQVksRUFBRSxHQUFHO1lBQ2pCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYTtZQUMvQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWM7WUFDakQsTUFBTSxFQUFFLE1BQU07WUFDZCxjQUFjLEVBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUM3RCxlQUFlLEVBQUMsYUFBYTtTQUM5QixDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUMsR0FBRyxZQUFZLEVBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFDLENBQUE7SUFDOUQsQ0FBQztJQUNELG9CQUFvQjtRQUNsQixJQUFJLFlBQVksR0FBc0IsSUFBSSxpQkFBaUIsQ0FBQztZQUMxRCxLQUFLLEVBQUUsYUFBYTtZQUNwQixNQUFNLEVBQUUsYUFBYTtZQUNyQixVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7WUFDakUsTUFBTSxFQUFFLE1BQU07WUFDZCxZQUFZLEVBQUUsS0FBSztZQUNuQixhQUFhLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDcEUsY0FBYyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1lBQ2pFLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO1lBQzFFLGlCQUFpQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO1lBQ3ZFLG9CQUFvQixFQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQ3pFLHFCQUFxQixFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1lBQ3ZFLHNCQUFzQixFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDbkUsd0JBQXdCLEVBQUMsS0FBSztZQUM5QixrQkFBa0IsRUFBQyxNQUFNO1lBQ3pCLHFCQUFxQixFQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQzFFLHNCQUFzQixFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1lBQ3hFLHVCQUF1QixFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDbEUseUJBQXlCLEVBQUMsS0FBSztZQUMvQixtQkFBbUIsRUFBQyxNQUFNO1NBQzNCLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUE7UUFDdkUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHO1lBQ3ZCLE1BQU0sRUFBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCO1lBQ2hELFlBQVksRUFBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsd0JBQXdCO1lBQzVELFVBQVUsRUFBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCO1lBQ3hELGNBQWMsRUFBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CO1lBQzFELGVBQWUsRUFBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMscUJBQXFCO1lBQzVELEdBQUcsSUFBSSxDQUFDLFdBQVc7U0FDcEIsQ0FBQTtRQUNELElBQUksQ0FBQyxrQkFBa0IsR0FBRztZQUN4QixNQUFNLEVBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQjtZQUNqRCxZQUFZLEVBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHlCQUF5QjtZQUM3RCxVQUFVLEVBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHVCQUF1QjtZQUN6RCxjQUFjLEVBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQjtZQUMzRCxlQUFlLEVBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHNCQUFzQjtZQUM3RCxHQUFHLElBQUksQ0FBQyxXQUFXO1NBQ3BCLENBQUE7SUFDSCxDQUFDO0lBQ0QsY0FBYztRQUNaLElBQUksWUFBWSxHQUFnQixJQUFJLFdBQVcsQ0FBQztZQUM5QyxZQUFZLEVBQUUsTUFBTTtZQUNwQixLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxNQUFNO1lBQ2QsTUFBTSxFQUFFLE1BQU07WUFDZCxlQUFlLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUMvRCxhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUM3RCxjQUFjLEVBQUUsT0FBTztZQUN2QixZQUFZLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7WUFDdEUsZUFBZSxFQUFFLEVBQUU7WUFDbkIsc0JBQXNCLEVBQUUsRUFBRTtTQUMzQixDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsR0FBRyxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDN0QsQ0FBQzs7NEhBcFZVLDhCQUE4QjtnSEFBOUIsOEJBQThCLDBkQ3RCM0MseS9EQW9DQTs0RkRkYSw4QkFBOEI7a0JBTjFDLFNBQVM7K0JBQ0UseUJBQXlCLG1CQUdsQix1QkFBdUIsQ0FBQyxNQUFNOzRJQUd0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQU9HLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0csaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbWV0Q2hhdCB9IGZyb20gJ0Bjb21ldGNoYXQtcHJvL2NoYXQnO1xuaW1wb3J0IHsgU3RvcmFnZVV0aWxzLENhbGxzY3JlZW5TdHlsZSwgSW5jb21pbmdDYWxsU3R5bGUsIENvbWV0Q2hhdFNvdW5kTWFuYWdlciB9IGZyb20gXCJAY29tZXRjaGF0L3Vpa2l0LXNoYXJlZFwiO1xuaW1wb3J0IHsgQXZhdGFyU3R5bGUsICBJY29uU3R5bGUsIExpc3RJdGVtU3R5bGUgfSBmcm9tICdAY29tZXRjaGF0L3Vpa2l0LWVsZW1lbnRzJ1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21ldENoYXRUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9Db21ldENoYXRUaGVtZS5zZXJ2aWNlJztcbmltcG9ydCB7ICBsb2NhbGl6ZSwgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMsIGZvbnRIZWxwZXIsIENvbWV0Q2hhdENhbGxFdmVudHMsIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMsIE1lc3NhZ2VTdGF0dXMsIENvbWV0Q2hhdExvY2FsaXplIH0gZnJvbSAnQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXMnO1xuLyoqXG4qXG4qIENvbWV0Q2hhdEluY29taW5nQ2FsbENvbXBvbmVudCBpcyBhIGNvbXBvbmVudCB3aGljaCBzaG93cyBvdXRnb2luZyBjYWxsIHNjcmVlbiBmb3IgZGVmYXVsdCBhdWRpbyBhbmQgdmlkZW8gY2FsbC5cbipcbiogQHZlcnNpb24gMS4wLjBcbiogQGF1dGhvciBDb21ldENoYXRUZWFtXG4qIEBjb3B5cmlnaHQgwqkgMjAyMiBDb21ldENoYXQgSW5jLlxuKlxuKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjb21ldGNoYXQtaW5jb21pbmctY2FsbFwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2NvbWV0Y2hhdC1pbmNvbWluZy1jYWxsLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9jb21ldGNoYXQtaW5jb21pbmctY2FsbC5jb21wb25lbnQuc2Nzc1wiXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ29tZXRDaGF0SW5jb21pbmdDYWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNhbGwhOiBDb21ldENoYXQuQ2FsbCB8IG51bGw7XG4gIEBJbnB1dCgpIGRpc2FibGVTb3VuZEZvckNhbGxzOmJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY3VzdG9tU291bmRGb3JDYWxscyE6c3RyaW5nO1xuICBASW5wdXQoKSBvbkFjY2VwdCE6IChjYWxsOiBDb21ldENoYXQuQ2FsbCkgPT4gdm9pZDtcbiAgQElucHV0KCkgb25EZWNsaW5lITogKGNhbGw6IENvbWV0Q2hhdC5DYWxsKSA9PiB2b2lkO1xuICBASW5wdXQoKSBhY2NlcHRCdXR0b25UZXh0OiBzdHJpbmcgPSBsb2NhbGl6ZShcIkFDQ0VQVFwiKTtcbiAgQElucHV0KCkgZGVjbGluZUJ1dHRvblRleHQ6IHN0cmluZyA9IGxvY2FsaXplKFwiREVDTElORVwiKTtcbiAgQElucHV0KCkgc3VidGl0bGVWaWV3ITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgb25FcnJvcjogKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB2b2lkID0gKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgY29uc29sZS5sb2coZXJyb3IpXG4gIH1cbiAgQElucHV0KCkgbGlzdEl0ZW1TdHlsZTogTGlzdEl0ZW1TdHlsZSA9IHtcbiAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICBiYWNrZ3JvdW5kOiBcIlwiLFxuICAgIGFjdGl2ZUJhY2tncm91bmQ6IFwiXCIsXG4gICAgYm9yZGVyOiBcIlwiLFxuICB9O1xuICBASW5wdXQoKSBhdmF0YXJTdHlsZTogQXZhdGFyU3R5bGUgPSB7XG4gICAgYm9yZGVyUmFkaXVzOiBcIjE2cHhcIixcbiAgICB3aWR0aDogXCIzOHB4XCIsXG4gICAgaGVpZ2h0OiBcIjM4cHhcIixcbiAgfTtcbiAgQElucHV0KCkgaW5jb21pbmdDYWxsU3R5bGU6IEluY29taW5nQ2FsbFN0eWxlID0ge1xuICAgIHdpZHRoOiBcImZpdC1jb250ZW50XCIsXG4gICAgaGVpZ2h0OiBcImZpdC1jb250ZW50XCIsXG4gIH07XG4gIHB1YmxpYyBpbmNvbWluZ2NhbGxMaXN0ZW5lcklkOiBzdHJpbmcgPSBcImluY29taW5nY2FsbF9cIiArIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICBzdWJ0aXRsZVRleHQ6c3RyaW5nID0gbG9jYWxpemUoXCJJTkNPTUlOR19DQUxMXCIpXG4gIGJ1dHRvblN0eWxlOmFueSA9IHtcbiAgICBoZWlnaHQ6XCIxMDAlXCIsXG4gICAgd2lkdGg6XCIxMDAlXCIsXG4gICAgZGlzcGxheTpcImZsZXhcIixcbiAgICBmbGV4RGlyZWN0aW9uOlwiY29sdW1uXCIsXG4gICAganVzdGlmeUNvbnRlbnQ6XCJjZW50ZXJcIixcbiAgICBhbGlnbkl0ZW1zOlwiY2VudGVyXCIsXG4gICAgcGFkZGluZzpcIjhweCAyOHB4XCJcbiAgfVxuICBvbmdvaW5nQ2FsbFN0eWxlOiBDYWxsc2NyZWVuU3R5bGUgPSB7fVxuICBzaG93T25nb2luZ0NhbGw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2hvd0luY29taW5nQ2FsbFNjcmVlbjpib29sZWFuID0gZmFsc2VcbiAgc2Vzc2lvbklkOiBzdHJpbmcgPSBcIlwiO1xuICBhY2NlcHRCdXR0b25TdHlsZTogYW55ID0ge31cbiAgZGVjbGluZUJ1dHRvblN0eWxlOiBhbnkgPSB7fVxuICBwdWJsaWMgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlciB8IG51bGwgPSBudWxsO1xuICBpY29uU3R5bGU6IEljb25TdHlsZSA9IHtcbiAgICBoZWlnaHQ6IFwiMTZweFwiLFxuICAgIHdpZHRoOiBcIjE2cHhcIixcbiAgICBpY29uVGludDogXCJSR0JBKDIwLCAyMCwgMjAsIDAuNjgpXCJcbiAgfVxuYWN0aXZlQ2FsbDpDb21ldENoYXQuQ2FsbCB8IG51bGwgPSBudWxsO1xuY2NDYWxsRW5kZWQhOlN1YnNjcmlwdGlvbjtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHRoZW1lU2VydmljZTogQ29tZXRDaGF0VGhlbWVTZXJ2aWNlKSB7ICB9XG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgIGlmKGNoYW5nZXNbXCJjYWxsXCJdICYmIGNoYW5nZXNbXCJjYWxsXCJdLmN1cnJlbnRWYWx1ZSApe1xuICAgdGhpcy5zaG93Q2FsbCh0aGlzLmNhbGwhKVxuICAgfVxuICB9XG4gIHBsYXlBdWRpbygpIHtcbiAgICBpZiAodGhpcy5jdXN0b21Tb3VuZEZvckNhbGxzKSB7XG4gICAgICBDb21ldENoYXRTb3VuZE1hbmFnZXIucGxheShDb21ldENoYXRTb3VuZE1hbmFnZXIuU291bmQuaW5jb21pbmdDYWxsLCB0aGlzLmN1c3RvbVNvdW5kRm9yQ2FsbHMpXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgQ29tZXRDaGF0U291bmRNYW5hZ2VyLnBsYXkoQ29tZXRDaGF0U291bmRNYW5hZ2VyLlNvdW5kLmluY29taW5nQ2FsbClcbiAgICB9XG4gIH1cbiAgaXNDYWxsQWN0aXZlKGNhbGw6Q29tZXRDaGF0LkNhbGwpe1xuICAgIGxldCBpc0N1cnJlbnRDYWxsOmJvb2xlYW4gPSBmYWxzZVxuICAgIGlmKFN0b3JhZ2VVdGlscy5nZXRJdGVtKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLmFjdGl2ZWNhbGwpKXtcbiAgICAgbGV0IG9sZENhbGw6YW55ID0gIFN0b3JhZ2VVdGlscy5nZXRJdGVtKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLmFjdGl2ZWNhbGwpXG4gICAgIGlmKG9sZENhbGwgJiYgb2xkQ2FsbC5zZXNzaW9uSWQgPT0gY2FsbC5nZXRTZXNzaW9uSWQoKSl7XG4gICAgICBpc0N1cnJlbnRDYWxsID0gIHRydWVcbiAgICAgfVxuICAgICBlbHNle1xuICAgICAgaXNDdXJyZW50Q2FsbCA9ICBmYWxzZVxuICAgICB9XG4gICAgfVxuICAgIGVsc2V7XG4gICAgICBpc0N1cnJlbnRDYWxsID0gIGZhbHNlXG4gICAgfVxuICAgcmV0dXJuIGlzQ3VycmVudENhbGxcbiAgfVxuICBzaG93Q2FsbChjYWxsOkNvbWV0Q2hhdC5DYWxsKXtcbiAgICBpZighdGhpcy5pc0NhbGxBY3RpdmUoY2FsbCkgJiYgdGhpcy5sb2dnZWRJblVzZXI/LmdldFVpZCgpICE9IGNhbGw/LmdldFNlbmRlcigpPy5nZXRVaWQoKSAmJiAhdGhpcy5jYWxsKXtcbiAgICAgIGlmKCF0aGlzLmRpc2FibGVTb3VuZEZvckNhbGxzKXtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5wbGF5QXVkaW8oKVxuICAgICAgICB9LCAxMDApO1xuICAgICAgfVxuICAgICAgdGhpcy5jYWxsID0gY2FsbFxuICAgICAgdGhpcy5zaG93SW5jb21pbmdDYWxsU2NyZWVuID0gdHJ1ZVxuICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgfVxuICAgIGVsc2V7XG4gICAgICBDb21ldENoYXRTb3VuZE1hbmFnZXIucGF1c2UoKVxuICAgICAgdGhpcy5yZWplY3RJbmNvbWluZ0NhbGwoQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuY2FsbHMuYnVzeSlcbiAgICB9XG4gIH1cbiAgYXR0YWNoTGlzdGVuZXJzKCkge1xuICAgIENvbWV0Q2hhdC5hZGRDYWxsTGlzdGVuZXIoXG4gICAgICB0aGlzLmluY29taW5nY2FsbExpc3RlbmVySWQsXG4gICAgICBuZXcgQ29tZXRDaGF0LkNhbGxMaXN0ZW5lcih7XG4gICAgICAgIG9uSW5jb21pbmdDYWxsUmVjZWl2ZWQ6IChjYWxsOiBDb21ldENoYXQuQ2FsbCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2hvd0NhbGwoY2FsbClcbiAgICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgfSxcbiAgICAgICAgb25JbmNvbWluZ0NhbGxDYW5jZWxsZWQ6IChjYWxsOiBDb21ldENoYXQuQ2FsbCkgPT4ge1xuICAgICAgICAgIENvbWV0Q2hhdFNvdW5kTWFuYWdlci5wYXVzZSgpXG4gICAgICAgICAgdGhpcy5jYWxsID0gbnVsbDtcbiAgICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuICByZW1vdmVMaXN0ZW5lcigpIHtcbiAgICBDb21ldENoYXQucmVtb3ZlQ2FsbExpc3RlbmVyKHRoaXMuaW5jb21pbmdjYWxsTGlzdGVuZXJJZCk7XG4gIH1cbiAgbG9jYWxTdG9yYWdlQ2hhbmdlID0gKGV2ZW50OmFueSk6YW55ID0+IHtcblx0XHRpZiAoZXZlbnQ/LmtleSAhPT0gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuY2FsbHMuYWN0aXZlY2FsbCkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHRpZiAoZXZlbnQubmV3VmFsdWUgfHwgZXZlbnQub2xkVmFsdWUpIHtcblx0XHRcdGxldCBjYWxsO1xuXHRcdFx0aWYgKGV2ZW50Lm5ld1ZhbHVlKSB7XG5cdFx0XHRcdGNhbGwgPSBKU09OLnBhcnNlKGV2ZW50Lm5ld1ZhbHVlKTtcblx0XHRcdH0gZWxzZSBpZiAoZXZlbnQub2xkVmFsdWUpIHtcblx0XHRcdFx0Y2FsbCA9IEpTT04ucGFyc2UoZXZlbnQub2xkVmFsdWUpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMuY2FsbD8uZ2V0U2Vzc2lvbklkKCkgPT09IGNhbGw/LnNlc3Npb25JZCkge1xuICAgICAgICB0aGlzLnNob3dJbmNvbWluZ0NhbGxTY3JlZW4gPSBmYWxzZVxuXHRcdFx0XHRDb21ldENoYXRTb3VuZE1hbmFnZXIucGF1c2UoKVxuXHRcdFx0XHR0aGlzLmNhbGwgPSBudWxsO1xuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcblx0XHRcdH1cblx0XHR9XG4gICAgcmV0dXJuXG5cdH07XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIENvbWV0Q2hhdC5nZXRMb2dnZWRpblVzZXIoKS50aGVuKCh1c2VyOkNvbWV0Q2hhdC5Vc2VyIHwgbnVsbCk9PntcbiAgICAgIHRoaXMubG9nZ2VkSW5Vc2VyID0gdXNlclxuICAgIH0pLmNhdGNoKChlcnJvcjpDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKT0+e1xuICAgICAgaWYodGhpcy5vbkVycm9yKXtcbiAgICAgICAgdGhpcy5vbkVycm9yKGVycm9yKVxuICAgICAgfVxuICAgIH0pXG4gICAgU3RvcmFnZVV0aWxzLmF0dGFjaENoYW5nZURldGVjdGlvbih0aGlzLmxvY2FsU3RvcmFnZUNoYW5nZSlcbiAgICB0aGlzLmF0dGFjaExpc3RlbmVycygpXG4gIHRoaXMuc2V0VGhlbWVTdHlsZSgpXG4gIHRoaXMuY2NDYWxsRW5kZWQgPSBDb21ldENoYXRDYWxsRXZlbnRzLmNjQ2FsbEVuZGVkLnN1YnNjcmliZSgoY2FsbDpDb21ldENoYXQuQ2FsbCk9PntcbiAgICB0aGlzLnNob3dPbmdvaW5nQ2FsbCA9IGZhbHNlXG4gICAgdGhpcy5hY3RpdmVDYWxsID0gbnVsbFxuICAgIHRoaXMuY2FsbCA9IG51bGxcbiAgICB0aGlzLnNlc3Npb25JZCA9IFwiXCJcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgfSlcbiAgfVxuICBuZ09uRGVzdHJveSgpe1xuICAgIFN0b3JhZ2VVdGlscy5kZXRhY2hDaGFuZ2VEZXRlY3Rpb24odGhpcy5sb2NhbFN0b3JhZ2VDaGFuZ2UpXG4gICAgdGhpcy5yZW1vdmVMaXN0ZW5lcigpXG4gICAgdGhpcy5jY0NhbGxFbmRlZD8udW5zdWJzY3JpYmUoKVxuICB9XG4gIHNldE9uZ29pbmdDYWxsU3R5bGUgPSAoKSA9PiB7XG4gICAgbGV0IGRlZmF1bHRTdHlsZSA9IG5ldyBDYWxsc2NyZWVuU3R5bGUoe1xuICAgICAgbWF4SGVpZ2h0OiBcIjEwMCVcIixcbiAgICAgIG1heFdpZHRoOiBcIjEwMCVcIixcbiAgICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgICBib3JkZXJSYWRpdXM6IFwiMFwiLFxuICAgICAgYmFja2dyb3VuZDogXCIjMWMyMjI2XCIsXG4gICAgICBtaW5IZWlnaHQ6IFwiNDAwcHhcIixcbiAgICAgIG1pbldpZHRoOiBcIjQwMHB4XCIsXG4gICAgICBtaW5pbWl6ZUljb25UaW50OiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDkwMCgpLFxuICAgICAgbWF4aW1pemVJY29uVGludDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ5MDAoKSxcbiAgICB9KVxuICAgIHRoaXMub25nb2luZ0NhbGxTdHlsZSA9IHsgLi4uZGVmYXVsdFN0eWxlLCAuLi50aGlzLm9uZ29pbmdDYWxsU3R5bGUgfVxuICB9XG4gIGdldENhbGxUeXBlSWNvbigpIHtcbiAgICBpZiAodGhpcy5jYWxsPy5nZXRUeXBlKCkgPT0gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmF1ZGlvKSB7XG4gICAgICByZXR1cm4gXCJhc3NldHMvQXVkaW8tQ2FsbC5zdmdcIlxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHJldHVybiBcImFzc2V0cy9WaWRlby1jYWxsLnN2Z1wiXG4gICAgfVxuICB9XG5hY2NlcHRJbmNvbWluZ0NhbGwoKXtcbiAgQ29tZXRDaGF0U291bmRNYW5hZ2VyLnBhdXNlKClcbiAgaWYodGhpcy5vbkFjY2VwdCAmJiB0aGlzLmNhbGwpe1xuICAgIHRoaXMub25BY2NlcHQodGhpcy5jYWxsKVxuICB9XG5cbiAgZWxzZXtcbiAgICB0aGlzLmNoZWNrRm9yQWN0aXZlQ2FsbEFuZEVuZENhbGwoKVxuICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgQ29tZXRDaGF0LmFjY2VwdENhbGwodGhpcy5jYWxsIS5nZXRTZXNzaW9uSWQoKSlcbiAgICAgICAgLnRoZW4oKGNhbGwpID0+IHtcbiAgICAgICAgICBDb21ldENoYXRDYWxsRXZlbnRzLmNjQ2FsbEFjY2VwdGVkLm5leHQoY2FsbClcbiAgICAgICAgICBTdG9yYWdlVXRpbHMuc2V0SXRlbShDb21ldENoYXRVSUtpdENvbnN0YW50cy5jYWxscy5hY3RpdmVjYWxsLCBjYWxsKVxuICAgICAgICAgIHRoaXMuc2hvd09uZ29pbmdDYWxsID0gdHJ1ZVxuICAgICAgICAgIHRoaXMuYWN0aXZlQ2FsbCA9IGNhbGxcbiAgICAgICAgICB0aGlzLnNlc3Npb25JZCA9IGNhbGw/LmdldFNlc3Npb25JZCgpXG4gICAgICAgICAgdGhpcy5zaG93SW5jb21pbmdDYWxsU2NyZWVuID0gZmFsc2VcbiAgICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgIGlmKHRoaXMub25FcnJvcil7XG4gICAgICAgICB0aGlzLm9uRXJyb3IoZXJyb3IpXG4gICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgIGlmKHRoaXMub25FcnJvcil7XG4gICAgICAgIHRoaXMub25FcnJvcihlcnJvcilcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuY2hlY2tGb3JBY3RpdmVDYWxsQW5kRW5kQ2FsbCA9ICgpID0+IHtcbiAgbGV0IGNhbGw6Q29tZXRDaGF0LkNhbGwgPSBDb21ldENoYXQuZ2V0QWN0aXZlQ2FsbCgpXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgaWYgKCFjYWxsKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZSh7IHN1Y2Nlc3M6IHRydWUgfSk7XG4gICAgfVxuICAgIGxldCBzZXNzaW9uSUQgPSBjYWxsPy5nZXRTZXNzaW9uSWQoKTtcbiAgICBDb21ldENoYXQuZW5kQ2FsbChzZXNzaW9uSUQpXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9KTtcbiAgfSk7XG59O1xucmVqZWN0SW5jb21pbmdDYWxsKHJlYXNvbjpzdHJpbmcgPSAgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuY2FsbHMucmVqZWN0ZWQpe1xuICBDb21ldENoYXRTb3VuZE1hbmFnZXIucGF1c2UoKVxuICBpZih0aGlzLm9uRGVjbGluZSAmJiB0aGlzLmNhbGwpe1xuICAgIHRoaXMub25EZWNsaW5lKHRoaXMuY2FsbClcbiAgfVxuZWxzZXtcblxuXHRDb21ldENoYXQucmVqZWN0Q2FsbCh0aGlzLmNhbGwhLmdldFNlc3Npb25JZCgpLCByZWFzb24pXG4gIC50aGVuKChyZWplY3RlZENhbGwpID0+IHtcbiAgICBTdG9yYWdlVXRpbHMuc2V0SXRlbShDb21ldENoYXRVSUtpdENvbnN0YW50cy5jYWxscy5hY3RpdmVjYWxsLCByZWplY3RlZENhbGwpXG4gICAgIENvbWV0Q2hhdENhbGxFdmVudHMuY2NDYWxsUmVqZWN0ZWQubmV4dChyZWplY3RlZENhbGwpXG4gICAgIHRoaXMuc2hvd09uZ29pbmdDYWxsID0gZmFsc2VcbiAgICAgdGhpcy5hY3RpdmVDYWxsID0gbnVsbFxuICAgICB0aGlzLmNhbGwgPSBudWxsO1xuICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgfSlcbiAgLmNhdGNoKChlcnJvcikgPT4ge1xuaWYodGhpcy5vbkVycm9yKXtcbiAgdGhpcy5vbkVycm9yKGVycm9yKVxufVxuICB9KTtcbn1cbn1cbmdldENhbGxCdWlsZGVyKCk6IENvbWV0Q2hhdC5DYWxsU2V0dGluZ3NCdWlsZGVyIHwgdW5kZWZpbmVkIHtcbiAgbGV0IGF1ZGlvT25seUNhbGw6IGJvb2xlYW4gPSB0aGlzLmNhbGw/LmdldFR5cGUoKSA9PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuYXVkaW8gPyB0cnVlIDogZmFsc2VcbiAgcmV0dXJuIG5ldyBDb21ldENoYXQuQ2FsbFNldHRpbmdzQnVpbGRlcigpXG4gICAgLnNldFNlc3Npb25JRCh0aGlzLnNlc3Npb25JZClcbiAgICAuZW5hYmxlRGVmYXVsdExheW91dCh0cnVlKVxuICAgIC5zZXRJc0F1ZGlvT25seUNhbGwoYXVkaW9Pbmx5Q2FsbClcbiAgICAuc2V0TW9kZShDb21ldENoYXQuQ0FMTF9NT0RFLkRFRkFVTFQpXG4gICAgLnNldExvY2FsaXplZFN0cmluZ09iamVjdChDb21ldENoYXRMb2NhbGl6ZS5nZXRMb2NhbGUoKSlcbn1cbiAgc2V0VGhlbWVTdHlsZSgpIHtcbiAgICB0aGlzLnNldGluY29taW5nQ2FsbFN0eWxlKClcbiAgICB0aGlzLnNldEF2YXRhclN0eWxlKClcbiAgICB0aGlzLnNldE9uZ29pbmdDYWxsU3R5bGUoKVxuICAgIHRoaXMuaWNvblN0eWxlLmljb25UaW50ID0gdGhpcy5pbmNvbWluZ0NhbGxTdHlsZS5zdWJ0aXRsZVRleHRDb2xvclxuICB9XG4gIHNldExpc3RJdGVtU3R5bGUoKXtcbiAgICBsZXQgZGVmYXVsdFN0eWxlOkxpc3RJdGVtU3R5bGUgPSBuZXcgTGlzdEl0ZW1TdHlsZSh7XG4gICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgYmFja2dyb3VuZDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRCYWNrZ3JvdW5kKCksXG4gICAgICBhY3RpdmVCYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXG4gICAgICBib3JkZXJSYWRpdXM6IFwiMFwiLFxuICAgICAgdGl0bGVGb250OiB0aGlzLmluY29taW5nQ2FsbFN0eWxlLnRpdGxlVGV4dEZvbnQsXG4gICAgICB0aXRsZUNvbG9yOiB0aGlzLmluY29taW5nQ2FsbFN0eWxlLnRpdGxlVGV4dENvbG9yLFxuICAgICAgYm9yZGVyOiBcIm5vbmVcIixcbiAgICAgIHNlcGFyYXRvckNvbG9yOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50MjAwKCksXG4gICAgICBob3ZlckJhY2tncm91bmQ6XCJ0cmFuc3BhcmVudFwiXG4gICAgfSlcbiAgICB0aGlzLmxpc3RJdGVtU3R5bGUgPSB7Li4uZGVmYXVsdFN0eWxlLC4uLnRoaXMubGlzdEl0ZW1TdHlsZX1cbiAgfVxuICBzZXRpbmNvbWluZ0NhbGxTdHlsZSgpe1xuICAgIGxldCBkZWZhdWx0U3R5bGU6IEluY29taW5nQ2FsbFN0eWxlID0gbmV3IEluY29taW5nQ2FsbFN0eWxlKHtcbiAgICAgIHdpZHRoOiBcImZpdC1jb250ZW50XCIsXG4gICAgICBoZWlnaHQ6IFwiZml0LWNvbnRlbnRcIixcbiAgICAgIGJhY2tncm91bmQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50ODAwKFwibGlnaHRcIiksXG4gICAgICBib3JkZXI6IFwibm9uZVwiLFxuICAgICAgYm9yZGVyUmFkaXVzOiBcIjhweFwiLFxuICAgICAgdGl0bGVUZXh0Rm9udDogZm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnRpdGxlMiksXG4gICAgICB0aXRsZVRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQoXCJkYXJrXCIpLFxuICAgICAgc3VidGl0bGVUZXh0Rm9udDogZm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMiksXG4gICAgICBzdWJ0aXRsZVRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ4MDAoXCJkYXJrXCIpLFxuICAgICAgYWNjZXB0QnV0dG9uVGV4dEZvbnQ6Zm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnRleHQyKSxcbiAgICAgIGFjY2VwdEJ1dHRvblRleHRDb2xvcjp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudChcImRhcmtcIiksXG4gICAgICBhY2NlcHRCdXR0b25CYWNrZ3JvdW5kOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0UHJpbWFyeSgpLFxuICAgICAgYWNjZXB0QnV0dG9uQm9yZGVyUmFkaXVzOlwiOHB4XCIsXG4gICAgICBhY2NlcHRCdXR0b25Cb3JkZXI6XCJub25lXCIsXG4gICAgICBkZWNsaW5lQnV0dG9uVGV4dEZvbnQ6Zm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnRleHQyKSxcbiAgICAgIGRlY2xpbmVCdXR0b25UZXh0Q29sb3I6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQoXCJkYXJrXCIpLFxuICAgICAgZGVjbGluZUJ1dHRvbkJhY2tncm91bmQ6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRFcnJvcigpLFxuICAgICAgZGVjbGluZUJ1dHRvbkJvcmRlclJhZGl1czpcIjhweFwiLFxuICAgICAgZGVjbGluZUJ1dHRvbkJvcmRlcjpcIm5vbmVcIixcbiAgICB9KVxuICAgIHRoaXMuaW5jb21pbmdDYWxsU3R5bGUgPSB7IC4uLmRlZmF1bHRTdHlsZSwgLi4udGhpcy5pbmNvbWluZ0NhbGxTdHlsZSB9XG4gICAgdGhpcy5zZXRMaXN0SXRlbVN0eWxlKCk7XG4gICAgdGhpcy5hY2NlcHRCdXR0b25TdHlsZSA9IHtcbiAgICAgIGJvcmRlcjp0aGlzLmluY29taW5nQ2FsbFN0eWxlLmFjY2VwdEJ1dHRvbkJvcmRlcixcbiAgICAgIGJvcmRlclJhZGl1czp0aGlzLmluY29taW5nQ2FsbFN0eWxlLmFjY2VwdEJ1dHRvbkJvcmRlclJhZGl1cyxcbiAgICAgIGJhY2tncm91bmQ6dGhpcy5pbmNvbWluZ0NhbGxTdHlsZS5hY2NlcHRCdXR0b25CYWNrZ3JvdW5kLFxuICAgICAgYnV0dG9uVGV4dEZvbnQ6dGhpcy5pbmNvbWluZ0NhbGxTdHlsZS5hY2NlcHRCdXR0b25UZXh0Rm9udCxcbiAgICAgIGJ1dHRvblRleHRDb2xvcjp0aGlzLmluY29taW5nQ2FsbFN0eWxlLmFjY2VwdEJ1dHRvblRleHRDb2xvcixcbiAgICAgIC4uLnRoaXMuYnV0dG9uU3R5bGVcbiAgICB9XG4gICAgdGhpcy5kZWNsaW5lQnV0dG9uU3R5bGUgPSB7XG4gICAgICBib3JkZXI6dGhpcy5pbmNvbWluZ0NhbGxTdHlsZS5kZWNsaW5lQnV0dG9uQm9yZGVyLFxuICAgICAgYm9yZGVyUmFkaXVzOnRoaXMuaW5jb21pbmdDYWxsU3R5bGUuZGVjbGluZUJ1dHRvbkJvcmRlclJhZGl1cyxcbiAgICAgIGJhY2tncm91bmQ6dGhpcy5pbmNvbWluZ0NhbGxTdHlsZS5kZWNsaW5lQnV0dG9uQmFja2dyb3VuZCxcbiAgICAgIGJ1dHRvblRleHRGb250OnRoaXMuaW5jb21pbmdDYWxsU3R5bGUuZGVjbGluZUJ1dHRvblRleHRGb250LFxuICAgICAgYnV0dG9uVGV4dENvbG9yOnRoaXMuaW5jb21pbmdDYWxsU3R5bGUuZGVjbGluZUJ1dHRvblRleHRDb2xvcixcbiAgICAgIC4uLnRoaXMuYnV0dG9uU3R5bGVcbiAgICB9XG4gIH1cbiAgc2V0QXZhdGFyU3R5bGUoKSB7XG4gICAgbGV0IGRlZmF1bHRTdHlsZTogQXZhdGFyU3R5bGUgPSBuZXcgQXZhdGFyU3R5bGUoe1xuICAgICAgYm9yZGVyUmFkaXVzOiBcIjE2cHhcIixcbiAgICAgIHdpZHRoOiBcIjM4cHhcIixcbiAgICAgIGhlaWdodDogXCIzOHB4XCIsXG4gICAgICBib3JkZXI6IFwibm9uZVwiLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDcwMCgpLFxuICAgICAgbmFtZVRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ5MDAoKSxcbiAgICAgIGJhY2tncm91bmRTaXplOiBcImNvdmVyXCIsXG4gICAgICBuYW1lVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICAgb3V0ZXJWaWV3Qm9yZGVyOiBcIlwiLFxuICAgICAgb3V0ZXJWaWV3Qm9yZGVyU3BhY2luZzogXCJcIixcbiAgICB9KVxuICAgIHRoaXMuYXZhdGFyU3R5bGUgPSB7IC4uLmRlZmF1bHRTdHlsZSwgLi4udGhpcy5hdmF0YXJTdHlsZSB9XG4gIH1cbiAgc3VidGl0bGVTdHlsZSA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdGV4dEZvbnQ6IHRoaXMuaW5jb21pbmdDYWxsU3R5bGUuc3VidGl0bGVUZXh0Rm9udCxcbiAgICAgIHRleHRDb2xvcjogdGhpcy5pbmNvbWluZ0NhbGxTdHlsZS5zdWJ0aXRsZVRleHRDb2xvclxuICAgIH1cbiAgfVxuICB3cmFwcGVyU3R5bGUgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhlaWdodDogdGhpcy5pbmNvbWluZ0NhbGxTdHlsZS5oZWlnaHQsXG4gICAgICB3aWR0aDogdGhpcy5pbmNvbWluZ0NhbGxTdHlsZS53aWR0aCxcbiAgICAgIGJhY2tncm91bmQ6IHRoaXMuaW5jb21pbmdDYWxsU3R5bGUuYmFja2dyb3VuZCxcbiAgICAgIGJvcmRlcjogdGhpcy5pbmNvbWluZ0NhbGxTdHlsZS5ib3JkZXIsXG4gICAgICBib3JkZXJSYWRpdXM6IHRoaXMuaW5jb21pbmdDYWxsU3R5bGUuYm9yZGVyUmFkaXVzLFxuICAgICAgcGFkZGluZzpcIjhweFwiXG4gICAgfVxuICB9XG59IiwiPGRpdiBjbGFzcz1cImNjLWluY29taW5nLWNhbGxfX3dyYXBwZXJcIiBbbmdTdHlsZV09XCJ3cmFwcGVyU3R5bGUoKVwiICpuZ0lmPVwiY2FsbCAmJiBzaG93SW5jb21pbmdDYWxsU2NyZWVuXCI+XG4gICAgPGRpdiBjbGFzcz1cImNjLWluY29taW5nLWNhbGxfX2xpc3RpdGVtXCI+XG4gICAgICAgIDxjb21ldGNoYXQtbGlzdC1pdGVtIFt0aXRsZV09XCJjYWxsPy5nZXRTZW5kZXIoKT8uZ2V0TmFtZSgpXCJcbiAgICAgICAgW2xpc3RJdGVtU3R5bGVdPVwibGlzdEl0ZW1TdHlsZVwiXG4gICAgICAgIFtoaWRlU2VwYXJhdG9yXT1cInRydWVcIiA+XG4gICAgICAgIDxkaXYgc2xvdD1cInN1YnRpdGxlVmlld1wiIGNsYXNzPVwiY2MtaW5jb21pbmctY2FsbF9fc3VidGl0bGUtdmlld1wiICpuZ0lmPVwic3VidGl0bGVWaWV3O2Vsc2Ugc3VidGl0bGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdWJ0aXRsZVZpZXdcIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNzdWJ0aXRsZT5cbiAgICAgICAgICAgPGRpdiBzbG90PVwic3VidGl0bGVWaWV3XCIgIGNsYXNzPVwiY2MtaW5jb21pbmctY2FsbF9fc3VidGl0bGUtdmlld1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYy1jYWxsX19pY29uXCI+XG4gICAgICAgICAgICA8Y29tZXRjaGF0LWljb24gW2ljb25TdHlsZV09XCJpY29uU3R5bGVcIiBbVVJMXT1cImdldENhbGxUeXBlSWNvbigpXCI+PC9jb21ldGNoYXQtaWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8Y29tZXRjaGF0LWxhYmVsIGNsYXNzPVwiY2MtY2FsbF9fdHlwZVwiIFt0ZXh0XT1cInN1YnRpdGxlVGV4dFwiIFtsYWJlbFN0eWxlXT1cInN1YnRpdGxlU3R5bGUoKVwiPlxuXG4gICAgICAgICAgPC9jb21ldGNoYXQtbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2IHNsb3Q9XCJ0YWlsVmlld1wiICBjbGFzcz1cImNjLWluY29taW5nLWNhbGxfX3RhaWwtdmlld1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFpbF9fdmlld1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYy1pbmNvbWluZy1jYWxsX19hdmF0YXJcIj5cbiAgICAgICAgICAgIDxjb21ldGNoYXQtYXZhdGFyIFthdmF0YXJTdHlsZV09XCJhdmF0YXJTdHlsZVwiIFtpbWFnZV09XCJjYWxsPy5nZXRTZW5kZXIoKT8uZ2V0QXZhdGFyKClcIiBbbmFtZV09XCJjYWxsPy5nZXRTZW5kZXIoKT8uZ2V0TmFtZSgpXCI+XG5cbiAgICAgICAgICAgIDwvY29tZXRjaGF0LWF2YXRhcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvY29tZXRjaGF0LWxpc3QtaXRlbT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2MtaW5jb21pbmctY2FsbC1idXR0b25zXCI+XG4gICAgICAgIDxjb21ldGNoYXQtYnV0dG9uIChjYy1idXR0b24tY2xpY2tlZCk9XCJyZWplY3RJbmNvbWluZ0NhbGwoKVwiICBbYnV0dG9uU3R5bGVdPVwiZGVjbGluZUJ1dHRvblN0eWxlXCIgW3RleHRdPVwiZGVjbGluZUJ1dHRvblRleHRcIj48L2NvbWV0Y2hhdC1idXR0b24+XG4gICAgICAgIDxjb21ldGNoYXQtYnV0dG9uIChjYy1idXR0b24tY2xpY2tlZCk9XCJhY2NlcHRJbmNvbWluZ0NhbGwoKVwiICBbYnV0dG9uU3R5bGVdPVwiYWNjZXB0QnV0dG9uU3R5bGVcIiBbdGV4dF09XCJhY2NlcHRCdXR0b25UZXh0XCIgPjwvY29tZXRjaGF0LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG48L2Rpdj5cbjxjb21ldGNoYXQtb25nb2luZy1jYWxsICpuZ0lmPVwic2hvd09uZ29pbmdDYWxsICYmIGFjdGl2ZUNhbGwgJiYgIXNob3dJbmNvbWluZ0NhbGxTY3JlZW5cIiBbb25nb2luZ0NhbGxTdHlsZV09XCJvbmdvaW5nQ2FsbFN0eWxlXCIgW3Nlc3Npb25JRF09XCJzZXNzaW9uSWRcIiAgW2NhbGxTZXR0aW5nc0J1aWxkZXJdPVwiZ2V0Q2FsbEJ1aWxkZXIoKSFcIj48L2NvbWV0Y2hhdC1vbmdvaW5nLWNhbGw+XG4iXX0=
|
|
431
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LWluY29taW5nLWNhbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9DYWxscy9Db21ldENoYXRJbmNvbWluZ0NhbGwvY29tZXRjaGF0LWluY29taW5nLWNhbGwvY29tZXRjaGF0LWluY29taW5nLWNhbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9DYWxscy9Db21ldENoYXRJbmNvbWluZ0NhbGwvY29tZXRjaGF0LWluY29taW5nLWNhbGwvY29tZXRjaGF0LWluY29taW5nLWNhbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFpRCxNQUFNLGVBQWUsQ0FBQztBQUM1SSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RILE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFjLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBR2xGLE9BQU8sRUFBRyxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUE0RCxNQUFNLDRCQUE0QixDQUFDOzs7OztBQUMzSzs7Ozs7Ozs7RUFRRTtBQU9GLE1BQU0sT0FBTyw4QkFBOEI7SUFxRHpDLFlBQW9CLEdBQXNCLEVBQVUsWUFBbUM7UUFBbkUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUFuRDlFLHlCQUFvQixHQUFX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LEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7WUFFdEUsc0JBQXNCLEVBQUUsRUFBRTtTQUMzQixDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsR0FBRyxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDN0QsQ0FBQzs7NEhBM1hVLDhCQUE4QjtnSEFBOUIsOEJBQThCLDBkQ3ZCM0MsbS9EQW9DQTs0RkRiYSw4QkFBOEI7a0JBTjFDLFNBQVM7K0JBQ0UseUJBQXlCLG1CQUdsQix1QkFBdUIsQ0FBQyxNQUFNOzRJQUd0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQU9HLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0csaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbWV0Q2hhdCB9IGZyb20gJ0Bjb21ldGNoYXQvY2hhdC1zZGstamF2YXNjcmlwdCc7XG5pbXBvcnQgeyBTdG9yYWdlVXRpbHMsIEluY29taW5nQ2FsbFN0eWxlLCBDb21ldENoYXRTb3VuZE1hbmFnZXIsIENvbWV0Q2hhdFVJS2l0Q2FsbHMgfSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWRcIjtcbmltcG9ydCB7Q2FsbHNjcmVlblN0eWxlfSBmcm9tICdAY29tZXRjaGF0L3Vpa2l0LWVsZW1lbnRzJ1xuaW1wb3J0IHsgQXZhdGFyU3R5bGUsICBJY29uU3R5bGUsIExpc3RJdGVtU3R5bGUgfSBmcm9tICdAY29tZXRjaGF0L3Vpa2l0LWVsZW1lbnRzJ1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21ldENoYXRUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9Db21ldENoYXRUaGVtZS5zZXJ2aWNlJztcbmltcG9ydCB7ICBsb2NhbGl6ZSwgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMsIGZvbnRIZWxwZXIsIENvbWV0Q2hhdENhbGxFdmVudHMsIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMsIE1lc3NhZ2VTdGF0dXMsIENvbWV0Q2hhdExvY2FsaXplIH0gZnJvbSAnQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXMnO1xuLyoqXG4qXG4qIENvbWV0Q2hhdEluY29taW5nQ2FsbENvbXBvbmVudCBpcyBhIGNvbXBvbmVudCB3aGljaCBzaG93cyBvdXRnb2luZyBjYWxsIHNjcmVlbiBmb3IgZGVmYXVsdCBhdWRpbyBhbmQgdmlkZW8gY2FsbC5cbipcbiogQHZlcnNpb24gMS4wLjBcbiogQGF1dGhvciBDb21ldENoYXRUZWFtXG4qIEBjb3B5cmlnaHQgwqkgMjAyMiBDb21ldENoYXQgSW5jLlxuKlxuKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjb21ldGNoYXQtaW5jb21pbmctY2FsbFwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2NvbWV0Y2hhdC1pbmNvbWluZy1jYWxsLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9jb21ldGNoYXQtaW5jb21pbmctY2FsbC5jb21wb25lbnQuc2Nzc1wiXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ29tZXRDaGF0SW5jb21pbmdDYWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNhbGwhOiBDb21ldENoYXQuQ2FsbCB8IG51bGw7XG4gIEBJbnB1dCgpIGRpc2FibGVTb3VuZEZvckNhbGxzOmJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY3VzdG9tU291bmRGb3JDYWxscyE6c3RyaW5nO1xuICBASW5wdXQoKSBvbkFjY2VwdCE6IChjYWxsOiBDb21ldENoYXQuQ2FsbCkgPT4gdm9pZDtcbiAgQElucHV0KCkgb25EZWNsaW5lITogKGNhbGw6IENvbWV0Q2hhdC5DYWxsKSA9PiB2b2lkO1xuICBASW5wdXQoKSBhY2NlcHRCdXR0b25UZXh0OiBzdHJpbmcgPSBsb2NhbGl6ZShcIkFDQ0VQVFwiKTtcbiAgQElucHV0KCkgZGVjbGluZUJ1dHRvblRleHQ6IHN0cmluZyA9IGxvY2FsaXplKFwiREVDTElORVwiKTtcbiAgQElucHV0KCkgc3VidGl0bGVWaWV3ITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgb25FcnJvcjogKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB2b2lkID0gKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgY29uc29sZS5sb2coZXJyb3IpXG4gIH1cbiAgQElucHV0KCkgbGlzdEl0ZW1TdHlsZTogTGlzdEl0ZW1TdHlsZSA9IHtcbiAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICBiYWNrZ3JvdW5kOiBcIlwiLFxuICAgIGFjdGl2ZUJhY2tncm91bmQ6IFwiXCIsXG4gICAgYm9yZGVyOiBcIlwiLFxuICB9O1xuICBASW5wdXQoKSBhdmF0YXJTdHlsZTogQXZhdGFyU3R5bGUgPSB7XG4gICAgYm9yZGVyUmFkaXVzOiBcIjE2cHhcIixcbiAgICB3aWR0aDogXCIzOHB4XCIsXG4gICAgaGVpZ2h0OiBcIjM4cHhcIixcbiAgfTtcbiAgQElucHV0KCkgaW5jb21pbmdDYWxsU3R5bGU6IEluY29taW5nQ2FsbFN0eWxlID0ge1xuICAgIHdpZHRoOiBcImZpdC1jb250ZW50XCIsXG4gICAgaGVpZ2h0OiBcImZpdC1jb250ZW50XCIsXG4gIH07XG4gIHB1YmxpYyBpbmNvbWluZ2NhbGxMaXN0ZW5lcklkOiBzdHJpbmcgPSBcImluY29taW5nY2FsbF9cIiArIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICBzdWJ0aXRsZVRleHQ6c3RyaW5nID0gbG9jYWxpemUoXCJJTkNPTUlOR19DQUxMXCIpXG4gIGJ1dHRvblN0eWxlOmFueSA9IHtcbiAgICBoZWlnaHQ6XCIxMDAlXCIsXG4gICAgd2lkdGg6XCIxMDAlXCIsXG4gICAgZGlzcGxheTpcImZsZXhcIixcbiAgICBmbGV4RGlyZWN0aW9uOlwiY29sdW1uXCIsXG4gICAganVzdGlmeUNvbnRlbnQ6XCJjZW50ZXJcIixcbiAgICBhbGlnbkl0ZW1zOlwiY2VudGVyXCIsXG4gICAgcGFkZGluZzpcIjhweCAyOHB4XCJcbiAgfVxuICBvbmdvaW5nQ2FsbFN0eWxlOiBDYWxsc2NyZWVuU3R5bGUgPSB7fVxuICBzaG93T25nb2luZ0NhbGw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2hvd0luY29taW5nQ2FsbFNjcmVlbjpib29sZWFuID0gZmFsc2VcbiAgc2Vzc2lvbklkOiBzdHJpbmcgPSBcIlwiO1xuICBhY2NlcHRCdXR0b25TdHlsZTogYW55ID0ge31cbiAgZGVjbGluZUJ1dHRvblN0eWxlOiBhbnkgPSB7fVxuICBwdWJsaWMgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlciB8IG51bGwgPSBudWxsO1xuICBpY29uU3R5bGU6IEljb25TdHlsZSA9IHtcbiAgICBoZWlnaHQ6IFwiMTZweFwiLFxuICAgIHdpZHRoOiBcIjE2cHhcIixcbiAgICBpY29uVGludDogXCJSR0JBKDIwLCAyMCwgMjAsIDAuNjgpXCJcbiAgfVxuYWN0aXZlQ2FsbDpDb21ldENoYXQuQ2FsbCB8IG51bGwgPSBudWxsO1xuY2NDYWxsRW5kZWQhOlN1YnNjcmlwdGlvbjtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHRoZW1lU2VydmljZTogQ29tZXRDaGF0VGhlbWVTZXJ2aWNlKSB7ICB9XG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgIGlmKGNoYW5nZXNbXCJjYWxsXCJdICYmIGNoYW5nZXNbXCJjYWxsXCJdLmN1cnJlbnRWYWx1ZSApe1xuICAgdGhpcy5zaG93Q2FsbCh0aGlzLmNhbGwhKVxuICAgfVxuICB9XG4gIHBsYXlBdWRpbygpIHtcbiAgICBpZiAodGhpcy5jdXN0b21Tb3VuZEZvckNhbGxzKSB7XG4gICAgICBDb21ldENoYXRTb3VuZE1hbmFnZXIucGxheShDb21ldENoYXRTb3VuZE1hbmFnZXIuU291bmQuaW5jb21pbmdDYWxsLCB0aGlzLmN1c3RvbVNvdW5kRm9yQ2FsbHMpXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgQ29tZXRDaGF0U291bmRNYW5hZ2VyLnBsYXkoQ29tZXRDaGF0U291bmRNYW5hZ2VyLlNvdW5kLmluY29taW5nQ2FsbClcbiAgICB9XG4gIH1cbiAgaXNDYWxsQWN0aXZlKGNhbGw6Q29tZXRDaGF0LkNhbGwpe1xuICAgIGxldCBpc0N1cnJlbnRDYWxsOmJvb2xlYW4gPSBmYWxzZVxuICAgIGlmKFN0b3JhZ2VVdGlscy5nZXRJdGVtKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLmFjdGl2ZWNhbGwpKXtcbiAgICAgbGV0IG9sZENhbGw6YW55ID0gIFN0b3JhZ2VVdGlscy5nZXRJdGVtKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLmFjdGl2ZWNhbGwpXG4gICAgIGlmKG9sZENhbGwgJiYgb2xkQ2FsbC5zZXNzaW9uSWQgPT0gY2FsbC5nZXRTZXNzaW9uSWQoKSl7XG4gICAgICBpc0N1cnJlbnRDYWxsID0gIHRydWVcbiAgICAgfVxuICAgICBlbHNle1xuICAgICAgaXNDdXJyZW50Q2FsbCA9ICBmYWxzZVxuICAgICB9XG4gICAgfVxuICAgIGVsc2V7XG4gICAgICBpc0N1cnJlbnRDYWxsID0gIGZhbHNlXG4gICAgfVxuICAgcmV0dXJuIGlzQ3VycmVudENhbGxcbiAgfVxuXG4gIHNob3dDYWxsKGNhbGw6Q29tZXRDaGF0LkNhbGwpe1xuICAgIGlmKCF0aGlzLmlzQ2FsbEFjdGl2ZShjYWxsKSAmJiB0aGlzLmxvZ2dlZEluVXNlcj8uZ2V0VWlkKCkgIT0gY2FsbD8uZ2V0U2VuZGVyKCk/LmdldFVpZCgpICYmICF0aGlzLmNhbGwpe1xuICAgICAgaWYoIXRoaXMuZGlzYWJsZVNvdW5kRm9yQ2FsbHMpe1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnBsYXlBdWRpbygpXG4gICAgICAgIH0sIDEwMCk7XG4gICAgICB9XG4gICAgICB0aGlzLmNhbGwgPSBjYWxsXG4gICAgICB0aGlzLnNob3dJbmNvbWluZ0NhbGxTY3JlZW4gPSB0cnVlXG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICB9XG4gICAgZWxzZXtcbiAgICAgIENvbWV0Q2hhdFNvdW5kTWFuYWdlci5wYXVzZSgpXG4gICAgICB0aGlzLnJlamVjdEluY29taW5nQ2FsbChDb21ldENoYXRVSUtpdENvbnN0YW50cy5jYWxscy5idXN5KVxuICAgIH1cbiAgfVxuICBhdHRhY2hMaXN0ZW5lcnMoKSB7XG4gICAgQ29tZXRDaGF0LmFkZENhbGxMaXN0ZW5lcihcbiAgICAgIHRoaXMuaW5jb21pbmdjYWxsTGlzdGVuZXJJZCxcbiAgICAgIG5ldyBDb21ldENoYXQuQ2FsbExpc3RlbmVyKHtcbiAgICAgICAgb25JbmNvbWluZ0NhbGxSZWNlaXZlZDogKGNhbGw6IENvbWV0Q2hhdC5DYWxsKSA9PiB7XG4gICAgICAgICAgdGhpcy5zaG93Q2FsbChjYWxsKVxuICAgICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgICB9LFxuICAgICAgICBvbkluY29taW5nQ2FsbENhbmNlbGxlZDogKGNhbGw6IENvbWV0Q2hhdC5DYWxsKSA9PiB7XG4gICAgICAgICAgQ29tZXRDaGF0U291bmRNYW5hZ2VyLnBhdXNlKClcbiAgICAgICAgICB0aGlzLmNhbGwgPSBudWxsO1xuICAgICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICB9XG4gIHJlbW92ZUxpc3RlbmVyKCkge1xuICAgIENvbWV0Q2hhdC5yZW1vdmVDYWxsTGlzdGVuZXIodGhpcy5pbmNvbWluZ2NhbGxMaXN0ZW5lcklkKTtcbiAgfVxuICBsb2NhbFN0b3JhZ2VDaGFuZ2UgPSAoZXZlbnQ6YW55KTphbnkgPT4ge1xuXHRcdGlmIChldmVudD8ua2V5ICE9PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5jYWxscy5hY3RpdmVjYWxsKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHRcdGlmIChldmVudC5uZXdWYWx1ZSB8fCBldmVudC5vbGRWYWx1ZSkge1xuXHRcdFx0bGV0IGNhbGw7XG5cdFx0XHRpZiAoZXZlbnQubmV3VmFsdWUpIHtcblx0XHRcdFx0Y2FsbCA9IEpTT04ucGFyc2UoZXZlbnQubmV3VmFsdWUpO1xuXHRcdFx0fSBlbHNlIGlmIChldmVudC5vbGRWYWx1ZSkge1xuXHRcdFx0XHRjYWxsID0gSlNPTi5wYXJzZShldmVudC5vbGRWYWx1ZSk7XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5jYWxsPy5nZXRTZXNzaW9uSWQoKSA9PT0gY2FsbD8uc2Vzc2lvbklkKSB7XG4gICAgICAgIHRoaXMuc2hvd0luY29taW5nQ2FsbFNjcmVlbiA9IGZhbHNlXG5cdFx0XHRcdENvbWV0Q2hhdFNvdW5kTWFuYWdlci5wYXVzZSgpXG5cdFx0XHRcdHRoaXMuY2FsbCA9IG51bGw7XG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuXHRcdFx0fVxuXHRcdH1cbiAgICByZXR1cm5cblx0fTtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgQ29tZXRDaGF0LmdldExvZ2dlZGluVXNlcigpLnRoZW4oKHVzZXI6Q29tZXRDaGF0LlVzZXIgfCBudWxsKT0+e1xuICAgICAgdGhpcy5sb2dnZWRJblVzZXIgPSB1c2VyXG4gICAgfSkuY2F0Y2goKGVycm9yOkNvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pPT57XG4gICAgICBpZih0aGlzLm9uRXJyb3Ipe1xuICAgICAgICB0aGlzLm9uRXJyb3IoZXJyb3IpXG4gICAgICB9XG4gICAgfSlcbiAgICBTdG9yYWdlVXRpbHMuYXR0YWNoQ2hhbmdlRGV0ZWN0aW9uKHRoaXMubG9jYWxTdG9yYWdlQ2hhbmdlKVxuICAgIHRoaXMuYXR0YWNoTGlzdGVuZXJzKClcbiAgdGhpcy5zZXRUaGVtZVN0eWxlKClcbiAgdGhpcy5jY0NhbGxFbmRlZCA9IENvbWV0Q2hhdENhbGxFdmVudHMuY2NDYWxsRW5kZWQuc3Vic2NyaWJlKChjYWxsOkNvbWV0Q2hhdC5DYWxsKT0+e1xudGhpcy5jbG9zZUNhbGxTY3JlZW4oKVxuICB9KVxuICB9XG4gIGNsb3NlQ2FsbFNjcmVlbigpe1xuICAgIHRoaXMuc2hvd09uZ29pbmdDYWxsID0gZmFsc2VcbiAgICB0aGlzLmFjdGl2ZUNhbGwgPSBudWxsXG4gICAgdGhpcy5jYWxsID0gbnVsbFxuICAgIHRoaXMuc2Vzc2lvbklkID0gXCJcIlxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICB9XG4gIG5nT25EZXN0cm95KCl7XG4gICAgU3RvcmFnZVV0aWxzLmRldGFjaENoYW5nZURldGVjdGlvbih0aGlzLmxvY2FsU3RvcmFnZUNoYW5nZSlcbiAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKClcbiAgICB0aGlzLmNjQ2FsbEVuZGVkPy51bnN1YnNjcmliZSgpXG4gIH1cbiAgc2V0T25nb2luZ0NhbGxTdHlsZSA9ICgpID0+IHtcbiAgICBsZXQgZGVmYXVsdFN0eWxlID0gbmV3IENhbGxzY3JlZW5TdHlsZSh7XG4gICAgICBtYXhIZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgbWF4V2lkdGg6IFwiMTAwJVwiLFxuICAgICAgYm9yZGVyOiBcIm5vbmVcIixcbiAgICAgIGJvcmRlclJhZGl1czogXCIwXCIsXG4gICAgICBiYWNrZ3JvdW5kOiBcIiMxYzIyMjZcIixcbiAgICAgIG1pbkhlaWdodDogXCI0MDBweFwiLFxuICAgICAgbWluV2lkdGg6IFwiNDAwcHhcIixcbiAgICAgIG1pbmltaXplSWNvblRpbnQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50OTAwKCksXG4gICAgICBtYXhpbWl6ZUljb25UaW50OiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDkwMCgpLFxuICAgIH0pXG4gICAgdGhpcy5vbmdvaW5nQ2FsbFN0eWxlID0geyAuLi5kZWZhdWx0U3R5bGUsIC4uLnRoaXMub25nb2luZ0NhbGxTdHlsZSB9XG4gIH1cbiAgZ2V0Q2FsbFR5cGVJY29uKCkge1xuICAgIGlmICh0aGlzLmNhbGw/LmdldFR5cGUoKSA9PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuYXVkaW8pIHtcbiAgICAgIHJldHVybiBcImFzc2V0cy9BdWRpby1DYWxsLnN2Z1wiXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIFwiYXNzZXRzL1ZpZGVvLWNhbGwuc3ZnXCJcbiAgICB9XG4gIH1cbmFjY2VwdEluY29taW5nQ2FsbCgpe1xuICBDb21ldENoYXRTb3VuZE1hbmFnZXIucGF1c2UoKVxuICBpZih0aGlzLm9uQWNjZXB0ICYmIHRoaXMuY2FsbCl7XG4gICAgdGhpcy5vbkFjY2VwdCh0aGlzLmNhbGwpXG4gIH1cblxuICBlbHNle1xuICAgIHRoaXMuY2hlY2tGb3JBY3RpdmVDYWxsQW5kRW5kQ2FsbCgpXG4gICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICBDb21ldENoYXQuYWNjZXB0Q2FsbCh0aGlzLmNhbGwhLmdldFNlc3Npb25JZCgpKVxuICAgICAgICAudGhlbigoY2FsbCkgPT4ge1xuICAgICAgICAgIENvbWV0Q2hhdENhbGxFdmVudHMuY2NDYWxsQWNjZXB0ZWQubmV4dChjYWxsKVxuICAgICAgICAgIFN0b3JhZ2VVdGlscy5zZXRJdGVtKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLmFjdGl2ZWNhbGwsIGNhbGwpXG4gICAgICAgICAgdGhpcy5zaG93T25nb2luZ0NhbGwgPSB0cnVlXG4gICAgICAgICAgdGhpcy5hY3RpdmVDYWxsID0gY2FsbFxuICAgICAgICAgIHRoaXMuc2Vzc2lvbklkID0gY2FsbD8uZ2V0U2Vzc2lvbklkKClcbiAgICAgICAgICB0aGlzLnNob3dJbmNvbWluZ0NhbGxTY3JlZW4gPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmNhbGwgPSBjYWxsO1xuICAgICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgaWYodGhpcy5vbkVycm9yKXtcbiAgICAgICAgIHRoaXMub25FcnJvcihlcnJvcilcbiAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pXG4gICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgaWYodGhpcy5vbkVycm9yKXtcbiAgICAgICAgdGhpcy5vbkVycm9yKGVycm9yKVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5jaGVja0ZvckFjdGl2ZUNhbGxBbmRFbmRDYWxsID0gKCkgPT4ge1xuICBsZXQgY2FsbDpDb21ldENoYXQuQ2FsbCA9IENvbWV0Q2hhdC5nZXRBY3RpdmVDYWxsKClcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBpZiAoIWNhbGwpIHtcbiAgICAgIHJldHVybiByZXNvbHZlKHsgc3VjY2VzczogdHJ1ZSB9KTtcbiAgICB9XG4gICAgbGV0IHNlc3Npb25JRCA9IGNhbGw/LmdldFNlc3Npb25JZCgpO1xuICAgIENvbWV0Q2hhdC5lbmRDYWxsKHNlc3Npb25JRClcbiAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgIH0pO1xuICB9KTtcbn07XG5yZWplY3RJbmNvbWluZ0NhbGwocmVhc29uOnN0cmluZyA9ICBDb21ldENoYXRVSUtpdENvbnN0YW50cy5jYWxscy5yZWplY3RlZCl7XG4gIENvbWV0Q2hhdFNvdW5kTWFuYWdlci5wYXVzZSgpXG4gIGlmKHRoaXMub25EZWNsaW5lICYmIHRoaXMuY2FsbCl7XG4gICAgdGhpcy5vbkRlY2xpbmUodGhpcy5jYWxsKVxuICB9XG5lbHNle1xuXG5cdENvbWV0Q2hhdC5yZWplY3RDYWxsKHRoaXMuY2FsbCEuZ2V0U2Vzc2lvbklkKCksIHJlYXNvbilcbiAgLnRoZW4oKHJlamVjdGVkQ2FsbCkgPT4ge1xuICAgIFN0b3JhZ2VVdGlscy5zZXRJdGVtKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLmFjdGl2ZWNhbGwsIHJlamVjdGVkQ2FsbClcbiAgICAgQ29tZXRDaGF0Q2FsbEV2ZW50cy5jY0NhbGxSZWplY3RlZC5uZXh0KHJlamVjdGVkQ2FsbClcbiAgICAgdGhpcy5zaG93T25nb2luZ0NhbGwgPSBmYWxzZVxuICAgICB0aGlzLmFjdGl2ZUNhbGwgPSBudWxsXG4gICAgIHRoaXMuY2FsbCA9IG51bGw7XG4gICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICB9KVxuICAuY2F0Y2goKGVycm9yKSA9PiB7XG5pZih0aGlzLm9uRXJyb3Ipe1xuICB0aGlzLm9uRXJyb3IoZXJyb3IpXG59XG4gIH0pO1xufVxufVxuZ2V0Q2FsbEJ1aWxkZXIoKTogdHlwZW9mIENvbWV0Q2hhdFVJS2l0Q2FsbHMuQ2FsbFNldHRpbmdzIHwgdW5kZWZpbmVkIHtcbiAgbGV0IGF1ZGlvT25seUNhbGw6IGJvb2xlYW4gPSB0aGlzLmFjdGl2ZUNhbGw/LmdldFR5cGUoKSA9PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuYXVkaW8gPyB0cnVlIDogZmFsc2VcbiAgY29uc3QgY2FsbFNldHRpbmdzICA9IG5ldyBDb21ldENoYXRVSUtpdENhbGxzLkNhbGxTZXR0aW5nc0J1aWxkZXIoKVxuICAuZW5hYmxlRGVmYXVsdExheW91dCh0cnVlKVxuICAuc2V0SXNBdWRpb09ubHlDYWxsKGF1ZGlvT25seUNhbGwpXG4gIC5zZXRDYWxsTGlzdGVuZXIoXG4gICAgbmV3IENvbWV0Q2hhdFVJS2l0Q2FsbHMuT25nb2luZ0NhbGxMaXN0ZW5lcih7XG4gICAgICBvbkNhbGxFbmRlZDogKCkgPT4ge1xuICAgICAgICBpZih0aGlzLmNhbGw/LmdldFJlY2VpdmVyVHlwZSgpID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VSZWNlaXZlclR5cGUudXNlcil7XG4gICAgICAgICAgQ29tZXRDaGF0VUlLaXRDYWxscy5lbmRTZXNzaW9uKCk7XG4gICAgICAgICAgdGhpcy5jbG9zZUNhbGxTY3JlZW4oKTtcbiAgICAgICB9XG5cbiAgICAgIH0sXG4gICAgICBvbkNhbGxFbmRCdXR0b25QcmVzc2VkOiAoKSA9PiB7XG4gICAgICBcbiAgICAgICAgaWYodGhpcy5jYWxsPy5nZXRSZWNlaXZlclR5cGUoKSA9PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlUmVjZWl2ZXJUeXBlLnVzZXIpe1xuICAgICAgICAgIENvbWV0Q2hhdC5lbmRDYWxsKHRoaXMuc2Vzc2lvbklkKS50aGVuKChjYWxsOkNvbWV0Q2hhdC5DYWxsKT0+e1xuICAgICAgICAgICAgQ29tZXRDaGF0VUlLaXRDYWxscy5lbmRTZXNzaW9uKCk7XG4gICAgICAgICAgICBDb21ldENoYXRDYWxsRXZlbnRzLmNjQ2FsbEVuZGVkLm5leHQoY2FsbCk7XG4gICAgICAgICAgICB0aGlzLmNsb3NlQ2FsbFNjcmVlbigpXG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goKGVycjpDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKT0+e1xuICAgICAgICAgICAgaWYodGhpcy5vbkVycm9yKXtcbiAgICAgICAgICAgICAgdGhpcy5vbkVycm9yKGVycilcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIH0pXG4gICAgICAgfVxuICAgICAgIGVsc2V7XG4gICAgICAgIHRoaXMuY2xvc2VDYWxsU2NyZWVuKClcbiAgICAgICB9XG5cblxuICAgICAgfSxcbiAgICAgIG9uRXJyb3I6IChlcnJvcjphbnkpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coXCJFcnJvciA6XCIsIGVycm9yKTtcbiAgICAgIH0sXG4gICAgfSlcbiAgKVxuICAuYnVpbGQoKTtcbiAgcmV0dXJuIGNhbGxTZXR0aW5nc1xufVxuICBzZXRUaGVtZVN0eWxlKCkge1xuICAgIHRoaXMuc2V0aW5jb21pbmdDYWxsU3R5bGUoKVxuICAgIHRoaXMuc2V0QXZhdGFyU3R5bGUoKVxuICAgIHRoaXMuc2V0T25nb2luZ0NhbGxTdHlsZSgpXG4gICAgdGhpcy5pY29uU3R5bGUuaWNvblRpbnQgPSB0aGlzLmluY29taW5nQ2FsbFN0eWxlLnN1YnRpdGxlVGV4dENvbG9yXG4gIH1cbiAgc2V0TGlzdEl0ZW1TdHlsZSgpe1xuICAgIGxldCBkZWZhdWx0U3R5bGU6TGlzdEl0ZW1TdHlsZSA9IG5ldyBMaXN0SXRlbVN0eWxlKHtcbiAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICBiYWNrZ3JvdW5kOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEJhY2tncm91bmQoKSxcbiAgICAgIGFjdGl2ZUJhY2tncm91bmQ6IFwidHJhbnNwYXJlbnRcIixcbiAgICAgIGJvcmRlclJhZGl1czogXCIwXCIsXG4gICAgICB0aXRsZUZvbnQ6IHRoaXMuaW5jb21pbmdDYWxsU3R5bGUudGl0bGVUZXh0Rm9udCxcbiAgICAgIHRpdGxlQ29sb3I6IHRoaXMuaW5jb21pbmdDYWxsU3R5bGUudGl0bGVUZXh0Q29sb3IsXG4gICAgICBib3JkZXI6IFwibm9uZVwiLFxuICAgICAgc2VwYXJhdG9yQ29sb3I6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQyMDAoKSxcbiAgICAgIGhvdmVyQmFja2dyb3VuZDpcInRyYW5zcGFyZW50XCJcbiAgICB9KVxuICAgIHRoaXMubGlzdEl0ZW1TdHlsZSA9IHsuLi5kZWZhdWx0U3R5bGUsLi4udGhpcy5saXN0SXRlbVN0eWxlfVxuICB9XG4gIHNldGluY29taW5nQ2FsbFN0eWxlKCl7XG4gICAgbGV0IGRlZmF1bHRTdHlsZTogSW5jb21pbmdDYWxsU3R5bGUgPSBuZXcgSW5jb21pbmdDYWxsU3R5bGUoe1xuICAgICAgd2lkdGg6IFwiZml0LWNvbnRlbnRcIixcbiAgICAgIGhlaWdodDogXCJmaXQtY29udGVudFwiLFxuICAgICAgYmFja2dyb3VuZDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ4MDAoXCJsaWdodFwiKSxcbiAgICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgICBib3JkZXJSYWRpdXM6IFwiOHB4XCIsXG4gICAgICB0aXRsZVRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGl0bGUyKSxcbiAgICAgIHRpdGxlVGV4dENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudChcImRhcmtcIiksXG4gICAgICBzdWJ0aXRsZVRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUyKSxcbiAgICAgIHN1YnRpdGxlVGV4dENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDgwMChcImRhcmtcIiksXG4gICAgICBhY2NlcHRCdXR0b25UZXh0Rm9udDpmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGV4dDIpLFxuICAgICAgYWNjZXB0QnV0dG9uVGV4dENvbG9yOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50KFwiZGFya1wiKSxcbiAgICAgIGFjY2VwdEJ1dHRvbkJhY2tncm91bmQ6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRQcmltYXJ5KCksXG4gICAgICBhY2NlcHRCdXR0b25Cb3JkZXJSYWRpdXM6XCI4cHhcIixcbiAgICAgIGFjY2VwdEJ1dHRvbkJvcmRlcjpcIm5vbmVcIixcbiAgICAgIGRlY2xpbmVCdXR0b25UZXh0Rm9udDpmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGV4dDIpLFxuICAgICAgZGVjbGluZUJ1dHRvblRleHRDb2xvcjp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudChcImRhcmtcIiksXG4gICAgICBkZWNsaW5lQnV0dG9uQmFja2dyb3VuZDp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEVycm9yKCksXG4gICAgICBkZWNsaW5lQnV0dG9uQm9yZGVyUmFkaXVzOlwiOHB4XCIsXG4gICAgICBkZWNsaW5lQnV0dG9uQm9yZGVyOlwibm9uZVwiLFxuICAgIH0pXG4gICAgdGhpcy5pbmNvbWluZ0NhbGxTdHlsZSA9IHsgLi4uZGVmYXVsdFN0eWxlLCAuLi50aGlzLmluY29taW5nQ2FsbFN0eWxlIH1cbiAgICB0aGlzLnNldExpc3RJdGVtU3R5bGUoKTtcbiAgICB0aGlzLmFjY2VwdEJ1dHRvblN0eWxlID0ge1xuICAgICAgYm9yZGVyOnRoaXMuaW5jb21pbmdDYWxsU3R5bGUuYWNjZXB0QnV0dG9uQm9yZGVyLFxuICAgICAgYm9yZGVyUmFkaXVzOnRoaXMuaW5jb21pbmdDYWxsU3R5bGUuYWNjZXB0QnV0dG9uQm9yZGVyUmFkaXVzLFxuICAgICAgYmFja2dyb3VuZDp0aGlzLmluY29taW5nQ2FsbFN0eWxlLmFjY2VwdEJ1dHRvbkJhY2tncm91bmQsXG4gICAgICBidXR0b25UZXh0Rm9udDp0aGlzLmluY29taW5nQ2FsbFN0eWxlLmFjY2VwdEJ1dHRvblRleHRGb250LFxuICAgICAgYnV0dG9uVGV4dENvbG9yOnRoaXMuaW5jb21pbmdDYWxsU3R5bGUuYWNjZXB0QnV0dG9uVGV4dENvbG9yLFxuICAgICAgLi4udGhpcy5idXR0b25TdHlsZVxuICAgIH1cbiAgICB0aGlzLmRlY2xpbmVCdXR0b25TdHlsZSA9IHtcbiAgICAgIGJvcmRlcjp0aGlzLmluY29taW5nQ2FsbFN0eWxlLmRlY2xpbmVCdXR0b25Cb3JkZXIsXG4gICAgICBib3JkZXJSYWRpdXM6dGhpcy5pbmNvbWluZ0NhbGxTdHlsZS5kZWNsaW5lQnV0dG9uQm9yZGVyUmFkaXVzLFxuICAgICAgYmFja2dyb3VuZDp0aGlzLmluY29taW5nQ2FsbFN0eWxlLmRlY2xpbmVCdXR0b25CYWNrZ3JvdW5kLFxuICAgICAgYnV0dG9uVGV4dEZvbnQ6dGhpcy5pbmNvbWluZ0NhbGxTdHlsZS5kZWNsaW5lQnV0dG9uVGV4dEZvbnQsXG4gICAgICBidXR0b25UZXh0Q29sb3I6dGhpcy5pbmNvbWluZ0NhbGxTdHlsZS5kZWNsaW5lQnV0dG9uVGV4dENvbG9yLFxuICAgICAgLi4udGhpcy5idXR0b25TdHlsZVxuICAgIH1cbiAgfVxuICBzZXRBdmF0YXJTdHlsZSgpIHtcbiAgICBsZXQgZGVmYXVsdFN0eWxlOiBBdmF0YXJTdHlsZSA9IG5ldyBBdmF0YXJTdHlsZSh7XG4gICAgICBib3JkZXJSYWRpdXM6IFwiMTZweFwiLFxuICAgICAgd2lkdGg6IFwiMzhweFwiLFxuICAgICAgaGVpZ2h0OiBcIjM4cHhcIixcbiAgICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NzAwKCksXG4gICAgICBuYW1lVGV4dENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDkwMCgpLFxuICAgICAgYmFja2dyb3VuZFNpemU6IFwiY292ZXJcIixcbiAgICAgIG5hbWVUZXh0Rm9udDogZm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICBcbiAgICAgIG91dGVyVmlld0JvcmRlclNwYWNpbmc6IFwiXCIsXG4gICAgfSlcbiAgICB0aGlzLmF2YXRhclN0eWxlID0geyAuLi5kZWZhdWx0U3R5bGUsIC4uLnRoaXMuYXZhdGFyU3R5bGUgfVxuICB9XG4gIHN1YnRpdGxlU3R5bGUgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRleHRGb250OiB0aGlzLmluY29taW5nQ2FsbFN0eWxlLnN1YnRpdGxlVGV4dEZvbnQsXG4gICAgICB0ZXh0Q29sb3I6IHRoaXMuaW5jb21pbmdDYWxsU3R5bGUuc3VidGl0bGVUZXh0Q29sb3JcbiAgICB9XG4gIH1cbiAgd3JhcHBlclN0eWxlID0gKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBoZWlnaHQ6IHRoaXMuaW5jb21pbmdDYWxsU3R5bGUuaGVpZ2h0LFxuICAgICAgd2lkdGg6IHRoaXMuaW5jb21pbmdDYWxsU3R5bGUud2lkdGgsXG4gICAgICBiYWNrZ3JvdW5kOiB0aGlzLmluY29taW5nQ2FsbFN0eWxlLmJhY2tncm91bmQsXG4gICAgICBib3JkZXI6IHRoaXMuaW5jb21pbmdDYWxsU3R5bGUuYm9yZGVyLFxuICAgICAgYm9yZGVyUmFkaXVzOiB0aGlzLmluY29taW5nQ2FsbFN0eWxlLmJvcmRlclJhZGl1cyxcbiAgICAgIHBhZGRpbmc6XCI4cHhcIlxuICAgIH1cbiAgfVxufSIsIjxkaXYgY2xhc3M9XCJjYy1pbmNvbWluZy1jYWxsX193cmFwcGVyXCIgW25nU3R5bGVdPVwid3JhcHBlclN0eWxlKClcIiAqbmdJZj1cImNhbGwgJiYgc2hvd0luY29taW5nQ2FsbFNjcmVlblwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYy1pbmNvbWluZy1jYWxsX19saXN0aXRlbVwiPlxuICAgICAgICA8Y29tZXRjaGF0LWxpc3QtaXRlbSBbdGl0bGVdPVwiY2FsbC5nZXRTZW5kZXIoKS5nZXROYW1lKClcIlxuICAgICAgICBbbGlzdEl0ZW1TdHlsZV09XCJsaXN0SXRlbVN0eWxlXCJcbiAgICAgICAgW2hpZGVTZXBhcmF0b3JdPVwidHJ1ZVwiID5cbiAgICAgICAgPGRpdiBzbG90PVwic3VidGl0bGVWaWV3XCIgY2xhc3M9XCJjYy1pbmNvbWluZy1jYWxsX19zdWJ0aXRsZS12aWV3XCIgKm5nSWY9XCJzdWJ0aXRsZVZpZXc7ZWxzZSBzdWJ0aXRsZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN1YnRpdGxlVmlld1wiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgI3N1YnRpdGxlPlxuICAgICAgICAgICA8ZGl2IHNsb3Q9XCJzdWJ0aXRsZVZpZXdcIiAgY2xhc3M9XCJjYy1pbmNvbWluZy1jYWxsX19zdWJ0aXRsZS12aWV3XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNjLWNhbGxfX2ljb25cIj5cbiAgICAgICAgICAgIDxjb21ldGNoYXQtaWNvbiBbaWNvblN0eWxlXT1cImljb25TdHlsZVwiIFtVUkxdPVwiZ2V0Q2FsbFR5cGVJY29uKClcIj48L2NvbWV0Y2hhdC1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxjb21ldGNoYXQtbGFiZWwgY2xhc3M9XCJjYy1jYWxsX190eXBlXCIgW3RleHRdPVwic3VidGl0bGVUZXh0XCIgW2xhYmVsU3R5bGVdPVwic3VidGl0bGVTdHlsZSgpXCI+XG5cbiAgICAgICAgICA8L2NvbWV0Y2hhdC1sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxkaXYgc2xvdD1cInRhaWxWaWV3XCIgIGNsYXNzPVwiY2MtaW5jb21pbmctY2FsbF9fdGFpbC12aWV3XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWlsX192aWV3XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNjLWluY29taW5nLWNhbGxfX2F2YXRhclwiPlxuICAgICAgICAgICAgPGNvbWV0Y2hhdC1hdmF0YXIgW2F2YXRhclN0eWxlXT1cImF2YXRhclN0eWxlXCIgW2ltYWdlXT1cImNhbGwuZ2V0U2VuZGVyKCkuZ2V0QXZhdGFyKClcIiBbbmFtZV09XCJjYWxsLmdldFNlbmRlcigpLmdldE5hbWUoKVwiPlxuXG4gICAgICAgICAgICA8L2NvbWV0Y2hhdC1hdmF0YXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2NvbWV0Y2hhdC1saXN0LWl0ZW0+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNjLWluY29taW5nLWNhbGwtYnV0dG9uc1wiPlxuICAgICAgICA8Y29tZXRjaGF0LWJ1dHRvbiAoY2MtYnV0dG9uLWNsaWNrZWQpPVwicmVqZWN0SW5jb21pbmdDYWxsKClcIiAgW2J1dHRvblN0eWxlXT1cImRlY2xpbmVCdXR0b25TdHlsZVwiIFt0ZXh0XT1cImRlY2xpbmVCdXR0b25UZXh0XCI+PC9jb21ldGNoYXQtYnV0dG9uPlxuICAgICAgICA8Y29tZXRjaGF0LWJ1dHRvbiAoY2MtYnV0dG9uLWNsaWNrZWQpPVwiYWNjZXB0SW5jb21pbmdDYWxsKClcIiAgW2J1dHRvblN0eWxlXT1cImFjY2VwdEJ1dHRvblN0eWxlXCIgW3RleHRdPVwiYWNjZXB0QnV0dG9uVGV4dFwiID48L2NvbWV0Y2hhdC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuPC9kaXY+XG48Y29tZXRjaGF0LW9uZ29pbmctY2FsbCAqbmdJZj1cInNob3dPbmdvaW5nQ2FsbCAmJiBhY3RpdmVDYWxsICYmICFzaG93SW5jb21pbmdDYWxsU2NyZWVuXCIgW29uZ29pbmdDYWxsU3R5bGVdPVwib25nb2luZ0NhbGxTdHlsZVwiIFtzZXNzaW9uSURdPVwic2Vzc2lvbklkXCIgIFtjYWxsU2V0dGluZ3NCdWlsZGVyXT1cImdldENhbGxCdWlsZGVyKCkhXCI+PC9jb21ldGNoYXQtb25nb2luZy1jYWxsPlxuIl19
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
1
|
+
import { Component, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { CometChat } from '@cometchat/chat-sdk-javascript';
|
|
2
3
|
import "@cometchat/uikit-elements";
|
|
3
4
|
import '@cometchat/uikit-shared';
|
|
4
|
-
import { localize } from '@cometchat/uikit-resources';
|
|
5
|
-
import {
|
|
5
|
+
import { CometChatCallEvents, CallWorkflow, localize } from '@cometchat/uikit-resources';
|
|
6
|
+
import { CometChatUIKitCalls } from '@cometchat/uikit-shared';
|
|
7
|
+
import { CallscreenStyle } from '@cometchat/uikit-elements';
|
|
6
8
|
import * as i0 from "@angular/core";
|
|
7
9
|
import * as i1 from "../../../CometChatTheme.service";
|
|
10
|
+
import * as i2 from "@angular/common";
|
|
8
11
|
/**
|
|
9
12
|
*
|
|
10
13
|
* CometChatOngoingCallComponent is a component whic shows outgoing call screen for default audio and video call.
|
|
@@ -25,17 +28,108 @@ export class CometChatOngoingCallComponent {
|
|
|
25
28
|
background: "#1c2226",
|
|
26
29
|
minHeight: "400px",
|
|
27
30
|
minWidth: "400px",
|
|
28
|
-
// minimizeIconTint:"white",
|
|
29
|
-
// maximizeIconTint:"white",
|
|
30
31
|
};
|
|
31
32
|
this.resizeIconHoverText = localize("RESIZE");
|
|
32
33
|
this.sessionID = "";
|
|
33
34
|
this.minimizeIconURL = "assets/reduce-size.svg";
|
|
34
35
|
this.maximizeIconURL = "assets/increase-size.svg";
|
|
36
|
+
this.callWorkflow = CallWorkflow.directCalling;
|
|
37
|
+
this.onError = (error) => {
|
|
38
|
+
console.log(error);
|
|
39
|
+
};
|
|
40
|
+
this.getCallBuilder = () => {
|
|
41
|
+
if (this.callSettingsBuilder) {
|
|
42
|
+
return this.callSettingsBuilder;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
const callSettings = new CometChatUIKitCalls.CallSettingsBuilder()
|
|
46
|
+
.enableDefaultLayout(true)
|
|
47
|
+
.setIsAudioOnlyCall(false)
|
|
48
|
+
.setCallListener(new CometChatUIKitCalls.OngoingCallListener({
|
|
49
|
+
onCallEnded: () => {
|
|
50
|
+
CometChatUIKitCalls.endSession();
|
|
51
|
+
if (this.callWorkflow == CallWorkflow.defaultCalling) {
|
|
52
|
+
CometChatUIKitCalls.endCall();
|
|
53
|
+
CometChatCallEvents.ccCallEnded.next({});
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
onCallEndButtonPressed: () => {
|
|
57
|
+
if (this.callWorkflow == CallWorkflow.defaultCalling) {
|
|
58
|
+
CometChat.endCall(this.sessionID).then((call) => {
|
|
59
|
+
CometChatUIKitCalls.endSession();
|
|
60
|
+
CometChatCallEvents.ccCallEnded.next(call);
|
|
61
|
+
})
|
|
62
|
+
.catch((error) => {
|
|
63
|
+
if (this.onError) {
|
|
64
|
+
this.onError(error);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
CometChatCallEvents.ccCallEnded.next({});
|
|
70
|
+
CometChatUIKitCalls.endSession();
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
onError: (error) => {
|
|
74
|
+
if (this.onError) {
|
|
75
|
+
this.onError(error);
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
}))
|
|
79
|
+
.build();
|
|
80
|
+
return callSettings;
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
this.startCall = () => {
|
|
84
|
+
if (this.loggedInUser) {
|
|
85
|
+
const authToken = this.loggedInUser.getAuthToken();
|
|
86
|
+
const sessionID = this.sessionID;
|
|
87
|
+
CometChatUIKitCalls.generateToken(sessionID, authToken).then((res) => {
|
|
88
|
+
CometChatUIKitCalls.startSession(res?.token, this.getCallBuilder(), this.callScreenFrame.nativeElement)
|
|
89
|
+
.catch((error) => {
|
|
90
|
+
if (this.onError) {
|
|
91
|
+
this.onError(error);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}, (err) => {
|
|
95
|
+
if (this.onError) {
|
|
96
|
+
this.onError(err);
|
|
97
|
+
}
|
|
98
|
+
})
|
|
99
|
+
.catch((error) => {
|
|
100
|
+
if (this.onError) {
|
|
101
|
+
this.onError(error);
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
CometChat.getLoggedinUser().then((user) => {
|
|
107
|
+
const authToken = user.getAuthToken();
|
|
108
|
+
const sessionID = this.sessionID;
|
|
109
|
+
CometChatUIKitCalls.generateToken(sessionID, authToken).then((res) => {
|
|
110
|
+
CometChatUIKitCalls.startSession(res?.token, this.getCallBuilder(), this.callScreenFrame.nativeElement);
|
|
111
|
+
}, (error) => {
|
|
112
|
+
if (this.onError) {
|
|
113
|
+
this.onError(error);
|
|
114
|
+
}
|
|
115
|
+
})
|
|
116
|
+
.catch((error) => {
|
|
117
|
+
if (this.onError) {
|
|
118
|
+
this.onError(error);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
};
|
|
35
124
|
}
|
|
36
125
|
ngOnInit() {
|
|
37
126
|
this.setongoingCallStyle();
|
|
38
127
|
}
|
|
128
|
+
ngOnChanges(changes) {
|
|
129
|
+
if (changes && changes["sessionID"].currentValue) {
|
|
130
|
+
this.startCall();
|
|
131
|
+
}
|
|
132
|
+
}
|
|
39
133
|
setongoingCallStyle() {
|
|
40
134
|
let defaultStyle = new CallscreenStyle({
|
|
41
135
|
maxHeight: "100%",
|
|
@@ -52,11 +146,14 @@ export class CometChatOngoingCallComponent {
|
|
|
52
146
|
}
|
|
53
147
|
}
|
|
54
148
|
CometChatOngoingCallComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatOngoingCallComponent, deps: [{ token: i1.CometChatThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
55
|
-
CometChatOngoingCallComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatOngoingCallComponent, selector: "cometchat-ongoing-call", inputs: { ongoingCallStyle: "ongoingCallStyle", resizeIconHoverText: "resizeIconHoverText", sessionID: "sessionID", minimizeIconURL: "minimizeIconURL", maximizeIconURL: "maximizeIconURL", callSettingsBuilder: "callSettingsBuilder" }, ngImport: i0, template: "<cometchat-callscreen
|
|
149
|
+
CometChatOngoingCallComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatOngoingCallComponent, selector: "cometchat-ongoing-call", inputs: { ongoingCallStyle: "ongoingCallStyle", resizeIconHoverText: "resizeIconHoverText", sessionID: "sessionID", minimizeIconURL: "minimizeIconURL", maximizeIconURL: "maximizeIconURL", callSettingsBuilder: "callSettingsBuilder", callWorkflow: "callWorkflow", onError: "onError" }, viewQueries: [{ propertyName: "callScreenFrame", first: true, predicate: ["callscreenView"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<cometchat-callscreen-wrapper *ngIf=\"sessionID\" [callscreenStyle]=\"ongoingCallStyle\" [resizeIconHoverText]=\"resizeIconHoverText\" [minimizeIconURL]=\"minimizeIconURL\" [maximizeIconURL]=\"maximizeIconURL\">\n <div #callscreenView class=\"cc-callscreen__view\"></div>\n</cometchat-callscreen-wrapper>\n", styles: [".cc-callscreen__view{height:100%;width:100%}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
56
150
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatOngoingCallComponent, decorators: [{
|
|
57
151
|
type: Component,
|
|
58
|
-
args: [{ selector: "cometchat-ongoing-call", template: "<cometchat-callscreen
|
|
59
|
-
}], ctorParameters: function () { return [{ type: i1.CometChatThemeService }]; }, propDecorators: {
|
|
152
|
+
args: [{ selector: "cometchat-ongoing-call", template: "<cometchat-callscreen-wrapper *ngIf=\"sessionID\" [callscreenStyle]=\"ongoingCallStyle\" [resizeIconHoverText]=\"resizeIconHoverText\" [minimizeIconURL]=\"minimizeIconURL\" [maximizeIconURL]=\"maximizeIconURL\">\n <div #callscreenView class=\"cc-callscreen__view\"></div>\n</cometchat-callscreen-wrapper>\n", styles: [".cc-callscreen__view{height:100%;width:100%}\n"] }]
|
|
153
|
+
}], ctorParameters: function () { return [{ type: i1.CometChatThemeService }]; }, propDecorators: { callScreenFrame: [{
|
|
154
|
+
type: ViewChild,
|
|
155
|
+
args: ["callscreenView", { static: false }]
|
|
156
|
+
}], ongoingCallStyle: [{
|
|
60
157
|
type: Input
|
|
61
158
|
}], resizeIconHoverText: [{
|
|
62
159
|
type: Input
|
|
@@ -68,5 +165,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
68
165
|
type: Input
|
|
69
166
|
}], callSettingsBuilder: [{
|
|
70
167
|
type: Input
|
|
168
|
+
}], callWorkflow: [{
|
|
169
|
+
type: Input
|
|
170
|
+
}], onError: [{
|
|
171
|
+
type: Input
|
|
71
172
|
}] } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LW9uZ29pbmctY2FsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL0NhbGxzL0NvbWV0Q2hhdE9uZ29pbmdDYWxsL2NvbWV0Y2hhdC1vbmdvaW5nLWNhbGwvY29tZXRjaGF0LW9uZ29pbmctY2FsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL0NhbGxzL0NvbWV0Q2hhdE9uZ29pbmdDYWxsL2NvbWV0Y2hhdC1vbmdvaW5nLWNhbGwvY29tZXRjaGF0LW9uZ29pbmctY2FsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQThDLFNBQVMsRUFBRSxLQUFLLEVBQTBDLE1BQU0sZUFBZSxDQUFDO0FBRXJJLE9BQVEsMkJBQTJCLENBQUM7QUFDcEMsT0FBTyx5QkFBeUIsQ0FBQTtBQUNoQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFFMUQ7Ozs7Ozs7O0VBUUU7QUFPRixNQUFNLE9BQU8sNkJBQTZCO0lBb0J4QyxZQUFvQixZQUFrQztRQUFsQyxpQkFBWSxHQUFaLFlBQVksQ0FBc0I7UUFuQjdDLHFCQUFnQixHQUFvQjtZQUMzQyxTQUFTLEVBQUUsTUFBTTtZQUNqQixRQUFRLEVBQUUsTUFBTTtZQUNoQixNQUFNLEVBQUUsTUFBTTtZQUNkLFlBQVksRUFBRSxHQUFHO1lBQ2pCLFVBQVUsRUFBRSxTQUFTO1lBQ3RCLFNBQVMsRUFBQyxPQUFPO1lBQ2pCLFFBQVEsRUFBQyxPQUFPO1lBQ2hCLDRCQUE0QjtZQUM1Qiw0QkFBNEI7U0FDNUIsQ0FBQTtRQUNRLHdCQUFtQixHQUFVLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUMvQyxjQUFTLEdBQVUsRUFBRSxDQUFBO1FBQ3JCLG9CQUFlLEdBQVUsd0JBQXdCLENBQUE7UUFDakQsb0JBQWUsR0FBVSwwQkFBMEIsQ0FBQTtJQVE1RCxDQUFDO0lBTkQsUUFBUTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO0lBQzVCLENBQUM7SUFLSCxtQkFBbUI7UUFDakIsSUFBSSxZQUFZLEdBQUcsSUFBSSxlQUFlLENBQUM7WUFDckMsU0FBUyxFQUFFLE1BQU07WUFDakIsUUFBUSxFQUFFLE1BQU07WUFDaEIsTUFBTSxFQUFFLE1BQU07WUFDZCxZQUFZLEVBQUUsR0FBRztZQUNqQixVQUFVLEVBQUUsU0FBUztZQUN4QixTQUFTLEVBQUMsT0FBTztZQUNqQixRQUFRLEVBQUMsT0FBTztZQUNoQixnQkFBZ0IsRUFBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUNsRSxnQkFBZ0IsRUFBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztTQUNoRSxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBQyxHQUFHLFlBQVksRUFBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBQyxDQUFBO0lBQ3BFLENBQUM7OzJIQXJDWSw2QkFBNkI7K0dBQTdCLDZCQUE2Qix3U0N0QjFDLHdSQUEwUTs0RkRzQjdQLDZCQUE2QjtrQkFOekMsU0FBUzsrQkFDRSx3QkFBd0I7NEdBTXpCLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFXRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tZXRDaGF0IH0gZnJvbSAnQGNvbWV0Y2hhdC1wcm8vY2hhdCc7XG5pbXBvcnQgIFwiQGNvbWV0Y2hhdC91aWtpdC1lbGVtZW50c1wiO1xuaW1wb3J0ICdAY29tZXRjaGF0L3Vpa2l0LXNoYXJlZCdcbmltcG9ydCB7IGxvY2FsaXplIH0gZnJvbSAnQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgQ2FsbHNjcmVlblN0eWxlIH0gZnJvbSAnQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWQnO1xuaW1wb3J0IHsgQ29tZXRDaGF0VGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vQ29tZXRDaGF0VGhlbWUuc2VydmljZSc7XG4vKipcbipcbiogQ29tZXRDaGF0T25nb2luZ0NhbGxDb21wb25lbnQgaXMgYSBjb21wb25lbnQgd2hpYyBzaG93cyBvdXRnb2luZyBjYWxsIHNjcmVlbiBmb3IgZGVmYXVsdCBhdWRpbyBhbmQgdmlkZW8gY2FsbC5cbipcbiogQHZlcnNpb24gMS4wLjBcbiogQGF1dGhvciBDb21ldENoYXRUZWFtXG4qIEBjb3B5cmlnaHQgwqkgMjAyMiBDb21ldENoYXQgSW5jLlxuKlxuKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjb21ldGNoYXQtb25nb2luZy1jYWxsXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vY29tZXRjaGF0LW9uZ29pbmctY2FsbC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vY29tZXRjaGF0LW9uZ29pbmctY2FsbC5jb21wb25lbnQuc2Nzc1wiXSxcblxufSlcbmV4cG9ydCBjbGFzcyBDb21ldENoYXRPbmdvaW5nQ2FsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG9uZ29pbmdDYWxsU3R5bGU6IENhbGxzY3JlZW5TdHlsZSA9IHtcbiAgICBtYXhIZWlnaHQ6IFwiMTAwJVwiLFxuICAgIG1heFdpZHRoOiBcIjEwMCVcIixcbiAgICBib3JkZXI6IFwibm9uZVwiLFxuICAgIGJvcmRlclJhZGl1czogXCIwXCIsXG4gICAgYmFja2dyb3VuZDogXCIjMWMyMjI2XCIsXG5cdCAgbWluSGVpZ2h0OlwiNDAwcHhcIixcblx0ICBtaW5XaWR0aDpcIjQwMHB4XCIsXG5cdCAgLy8gbWluaW1pemVJY29uVGludDpcIndoaXRlXCIsXG5cdCAgLy8gbWF4aW1pemVJY29uVGludDpcIndoaXRlXCIsXG4gIH1cbiAgQElucHV0KCkgcmVzaXplSWNvbkhvdmVyVGV4dDpzdHJpbmcgPSBsb2NhbGl6ZShcIlJFU0laRVwiKVxuICBASW5wdXQoKSBzZXNzaW9uSUQ6c3RyaW5nID0gXCJcIlxuICBASW5wdXQoKSBtaW5pbWl6ZUljb25VUkw6c3RyaW5nID0gXCJhc3NldHMvcmVkdWNlLXNpemUuc3ZnXCJcbiAgQElucHV0KCkgbWF4aW1pemVJY29uVVJMOnN0cmluZyA9IFwiYXNzZXRzL2luY3JlYXNlLXNpemUuc3ZnXCJcbiAgQElucHV0KCkgY2FsbFNldHRpbmdzQnVpbGRlciE6Q29tZXRDaGF0LkNhbGxTZXR0aW5nc0J1aWxkZXI7XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0b25nb2luZ0NhbGxTdHlsZSgpXG4gIH1cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0aGVtZVNlcnZpY2U6Q29tZXRDaGF0VGhlbWVTZXJ2aWNlKXtcblxuXG4gIH1cbnNldG9uZ29pbmdDYWxsU3R5bGUoKXtcbiAgbGV0IGRlZmF1bHRTdHlsZSA9IG5ldyBDYWxsc2NyZWVuU3R5bGUoe1xuICAgIG1heEhlaWdodDogXCIxMDAlXCIsXG4gICAgbWF4V2lkdGg6IFwiMTAwJVwiLFxuICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgYm9yZGVyUmFkaXVzOiBcIjBcIixcbiAgICBiYWNrZ3JvdW5kOiBcIiMxYzIyMjZcIixcblx0bWluSGVpZ2h0OlwiNDAwcHhcIixcblx0bWluV2lkdGg6XCI0MDBweFwiLFxuXHRtaW5pbWl6ZUljb25UaW50OnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50KFwiZGFya1wiKSxcblx0bWF4aW1pemVJY29uVGludDp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudChcImRhcmtcIiksXG4gIH0pO1xuICB0aGlzLm9uZ29pbmdDYWxsU3R5bGUgPSB7Li4uZGVmYXVsdFN0eWxlLC4uLnRoaXMub25nb2luZ0NhbGxTdHlsZX1cbn1cblxufVxuIiwiPGNvbWV0Y2hhdC1jYWxsc2NyZWVuIFtjYWxsc2NyZWVuU3R5bGVdPVwib25nb2luZ0NhbGxTdHlsZVwiIFtjYWxsU2V0dGluZ3NCdWlsZGVyXT1cImNhbGxTZXR0aW5nc0J1aWxkZXJcIiBbcmVzaXplSWNvbkhvdmVyVGV4dF09XCJyZXNpemVJY29uSG92ZXJUZXh0XCIgW3Nlc3Npb25JRF09XCJzZXNzaW9uSURcIiBbbWluaW1pemVJY29uVVJMXT1cIm1pbmltaXplSWNvblVSTFwiIFttYXhpbWl6ZUljb25VUkxdPVwibWF4aW1pemVJY29uVVJMXCI+PC9jb21ldGNoYXQtY2FsbHNjcmVlbj4iXX0=
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LW9uZ29pbmctY2FsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL0NhbGxzL0NvbWV0Q2hhdE9uZ29pbmdDYWxsL2NvbWV0Y2hhdC1vbmdvaW5nLWNhbGwvY29tZXRjaGF0LW9uZ29pbmctY2FsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL0NhbGxzL0NvbWV0Q2hhdE9uZ29pbmdDYWxsL2NvbWV0Y2hhdC1vbmdvaW5nLWNhbGwvY29tZXRjaGF0LW9uZ29pbmctY2FsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQThDLFNBQVMsRUFBYyxLQUFLLEVBQWlELFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDdEwsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNELE9BQVEsMkJBQTJCLENBQUM7QUFDcEMsT0FBTyx5QkFBeUIsQ0FBQTtBQUNoQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pGLE9BQU8sRUFBRyxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRS9ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQTs7OztBQUV6RDs7Ozs7Ozs7RUFRRTtBQU1GLE1BQU0sT0FBTyw2QkFBNkI7SUF3QnhDLFlBQW9CLFlBQWtDO1FBQWxDLGlCQUFZLEdBQVosWUFBWSxDQUFzQjtRQXRCN0MscUJBQWdCLEdBQW9CO1lBQzNDLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsWUFBWSxFQUFFLEdBQUc7WUFDakIsVUFBVSxFQUFF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MkhBbEpZLDZCQUE2QjsrR0FBN0IsNkJBQTZCLGtlQ3hCMUMsd1RBR0E7NEZEcUJhLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSx3QkFBd0I7NEdBS2MsZUFBZTtzQkFBOUQsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ3JDLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFTRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tZXRDaGF0IH0gZnJvbSAnQGNvbWV0Y2hhdC9jaGF0LXNkay1qYXZhc2NyaXB0JztcbmltcG9ydCAgXCJAY29tZXRjaGF0L3Vpa2l0LWVsZW1lbnRzXCI7XG5pbXBvcnQgJ0Bjb21ldGNoYXQvdWlraXQtc2hhcmVkJ1xuaW1wb3J0IHsgQ29tZXRDaGF0Q2FsbEV2ZW50cywgQ2FsbFdvcmtmbG93LCBsb2NhbGl6ZSB9IGZyb20gJ0Bjb21ldGNoYXQvdWlraXQtcmVzb3VyY2VzJztcbmltcG9ydCB7ICBDb21ldENoYXRVSUtpdENhbGxzIH0gZnJvbSAnQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWQnO1xuXG5pbXBvcnQge0NhbGxzY3JlZW5TdHlsZX0gZnJvbSAnQGNvbWV0Y2hhdC91aWtpdC1lbGVtZW50cydcbmltcG9ydCB7IENvbWV0Q2hhdFRoZW1lU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvbWV0Q2hhdFRoZW1lLnNlcnZpY2UnO1xuLyoqXG4qXG4qIENvbWV0Q2hhdE9uZ29pbmdDYWxsQ29tcG9uZW50IGlzIGEgY29tcG9uZW50IHdoaWMgc2hvd3Mgb3V0Z29pbmcgY2FsbCBzY3JlZW4gZm9yIGRlZmF1bHQgYXVkaW8gYW5kIHZpZGVvIGNhbGwuXG4qXG4qIEB2ZXJzaW9uIDEuMC4wXG4qIEBhdXRob3IgQ29tZXRDaGF0VGVhbVxuKiBAY29weXJpZ2h0IMKpIDIwMjIgQ29tZXRDaGF0IEluYy5cbipcbiovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiY29tZXRjaGF0LW9uZ29pbmctY2FsbFwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2NvbWV0Y2hhdC1vbmdvaW5nLWNhbGwuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2NvbWV0Y2hhdC1vbmdvaW5nLWNhbGwuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIENvbWV0Q2hhdE9uZ29pbmdDYWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBAVmlld0NoaWxkKFwiY2FsbHNjcmVlblZpZXdcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIGNhbGxTY3JlZW5GcmFtZSE6IEVsZW1lbnRSZWY7XG4gIEBJbnB1dCgpIG9uZ29pbmdDYWxsU3R5bGU6IENhbGxzY3JlZW5TdHlsZSA9IHtcbiAgICBtYXhIZWlnaHQ6IFwiMTAwJVwiLFxuICAgIG1heFdpZHRoOiBcIjEwMCVcIixcbiAgICBib3JkZXI6IFwibm9uZVwiLFxuICAgIGJvcmRlclJhZGl1czogXCIwXCIsXG4gICAgYmFja2dyb3VuZDogXCIjMWMyMjI2XCIsXG5cdCAgbWluSGVpZ2h0OlwiNDAwcHhcIixcblx0ICBtaW5XaWR0aDpcIjQwMHB4XCIsXG4gIH1cbiAgQElucHV0KCkgcmVzaXplSWNvbkhvdmVyVGV4dDpzdHJpbmcgPSBsb2NhbGl6ZShcIlJFU0laRVwiKVxuICBASW5wdXQoKSBzZXNzaW9uSUQ6c3RyaW5nID0gXCJcIlxuICBASW5wdXQoKSBtaW5pbWl6ZUljb25VUkw6c3RyaW5nID0gXCJhc3NldHMvcmVkdWNlLXNpemUuc3ZnXCJcbiAgQElucHV0KCkgbWF4aW1pemVJY29uVVJMOnN0cmluZyA9IFwiYXNzZXRzL2luY3JlYXNlLXNpemUuc3ZnXCJcbiAgQElucHV0KCkgY2FsbFNldHRpbmdzQnVpbGRlciE6dHlwZW9mIENvbWV0Q2hhdFVJS2l0Q2FsbHMuQ2FsbFNldHRpbmdzQnVpbGRlcjtcbiAgQElucHV0KCkgY2FsbFdvcmtmbG93OkNhbGxXb3JrZmxvdyA9IENhbGxXb3JrZmxvdy5kaXJlY3RDYWxsaW5nO1xuICBASW5wdXQoKSBvbkVycm9yOiAoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHZvaWQgPSAoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICBjb25zb2xlLmxvZyhlcnJvcilcbiAgfVxuICBwdWJsaWMgbG9nZ2VkSW5Vc2VyITpDb21ldENoYXQuVXNlcjtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRvbmdvaW5nQ2FsbFN0eWxlKClcbiAgfVxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRoZW1lU2VydmljZTpDb21ldENoYXRUaGVtZVNlcnZpY2Upe1xuICB9XG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgIGlmKGNoYW5nZXMgJiYgY2hhbmdlc1tcInNlc3Npb25JRFwiXS5jdXJyZW50VmFsdWUpe1xuICAgIHRoaXMuc3RhcnRDYWxsKClcbiAgIH1cbiAgfVxuICAgZ2V0Q2FsbEJ1aWxkZXIgPSAoKTphbnkgPT4ge1xuaWYodGhpcy5jYWxsU2V0dGluZ3NCdWlsZGVyKXtcblx0cmV0dXJuIHRoaXMuY2FsbFNldHRpbmdzQnVpbGRlclxufVxuZWxzZXtcblx0Y29uc3QgY2FsbFNldHRpbmdzOmFueSA9IG5ldyBDb21ldENoYXRVSUtpdENhbGxzLkNhbGxTZXR0aW5nc0J1aWxkZXIoKVxuXHQuZW5hYmxlRGVmYXVsdExheW91dCh0cnVlKVxuXHQuc2V0SXNBdWRpb09ubHlDYWxsKGZhbHNlKVxuXHQuc2V0Q2FsbExpc3RlbmVyKFxuXHQgIG5ldyBDb21ldENoYXRVSUtpdENhbGxzLk9uZ29pbmdDYWxsTGlzdGVuZXIoe1xuXHRcdG9uQ2FsbEVuZGVkOiAoKSA9PiB7XG5cdFx0XHRDb21ldENoYXRVSUtpdENhbGxzLmVuZFNlc3Npb24oKVxuXHRcdFx0aWYodGhpcy5jYWxsV29ya2Zsb3cgPT0gQ2FsbFdvcmtmbG93LmRlZmF1bHRDYWxsaW5nKXtcblx0XHRcdFx0Q29tZXRDaGF0VUlLaXRDYWxscy5lbmRDYWxsKCk7XG5cdFx0XHRcdENvbWV0Q2hhdENhbGxFdmVudHMuY2NDYWxsRW5kZWQubmV4dCh7fSBhcyBDb21ldENoYXQuQ2FsbClcblxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0b25DYWxsRW5kQnV0dG9uUHJlc3NlZDogKCkgPT4ge1xuXHRcdFx0aWYodGhpcy5jYWxsV29ya2Zsb3cgPT0gQ2FsbFdvcmtmbG93LmRlZmF1bHRDYWxsaW5nKXtcblx0XHRcdFx0Q29tZXRDaGF0LmVuZENhbGwodGhpcy5zZXNzaW9uSUQpLnRoZW4oKGNhbGw6Q29tZXRDaGF0LkNhbGwpPT57XG5cdFx0XHRcdFx0Q29tZXRDaGF0VUlLaXRDYWxscy5lbmRTZXNzaW9uKClcblx0XHRcdFx0XHRDb21ldENoYXRDYWxsRXZlbnRzLmNjQ2FsbEVuZGVkLm5leHQoY2FsbCk7XG5cdFx0XHRcdCAgfSlcblx0XHRcdFx0ICAuY2F0Y2goKGVycm9yOkNvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pPT57XG5cdFx0XHRcdFx0aWYodGhpcy5vbkVycm9yKXtcblx0XHRcdFx0XHRcdHRoaXMub25FcnJvcihlcnJvcilcblx0XHRcdFx0XHQgfVxuXHRcdFx0XHQgIH0pXG5cdFx0XHR9XG5cdFx0XHRlbHNle1xuXHRcdFx0XHRDb21ldENoYXRDYWxsRXZlbnRzLmNjQ2FsbEVuZGVkLm5leHQoe30gYXMgQ29tZXRDaGF0LkNhbGwpO1xuXHRcdFx0XHRDb21ldENoYXRVSUtpdENhbGxzLmVuZFNlc3Npb24oKTtcblx0XHRcdH1cblxuXHRcdCAgfSxcblx0XHRvbkVycm9yOiAoZXJyb3I6Q29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuXHRcdCBpZih0aGlzLm9uRXJyb3Ipe1xuXHRcdFx0dGhpcy5vbkVycm9yKGVycm9yKVxuXHRcdCB9XG5cdFx0fSxcblx0ICB9KVxuXHQpXG5cdC5idWlsZCgpO1xuXHRyZXR1cm4gY2FsbFNldHRpbmdzXG59XG4gIH1cbnN0YXJ0Q2FsbCA9ICgpID0+IHtcblx0aWYodGhpcy5sb2dnZWRJblVzZXIpe1xuXHRcdGNvbnN0IGF1dGhUb2tlbiA9IHRoaXMubG9nZ2VkSW5Vc2VyIS5nZXRBdXRoVG9rZW4oKTtcblx0XHRjb25zdCBzZXNzaW9uSUQgPSB0aGlzLnNlc3Npb25JRDtcblx0XHRDb21ldENoYXRVSUtpdENhbGxzLmdlbmVyYXRlVG9rZW4oc2Vzc2lvbklELCBhdXRoVG9rZW4pLnRoZW4oXG5cdFx0XHQocmVzOmFueSkgPT4ge1xuXHRcdFx0XHRDb21ldENoYXRVSUtpdENhbGxzLnN0YXJ0U2Vzc2lvbihcblx0XHRcdFx0XHRyZXM/LnRva2VuLFxuXHRcdFx0XHRcdHRoaXMuZ2V0Q2FsbEJ1aWxkZXIoKSxcblx0XHRcdFx0XHR0aGlzLmNhbGxTY3JlZW5GcmFtZS5uYXRpdmVFbGVtZW50XG5cdFx0XHRcdClcblx0XHRcdFx0LmNhdGNoKChlcnJvcjpDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKT0+e1xuXHRcdFx0XHRcdGlmKHRoaXMub25FcnJvcil7XG5cdFx0XHRcdFx0XHR0aGlzLm9uRXJyb3IoZXJyb3IpXG5cdFx0XHRcdFx0IH1cblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cdFx0XHQoZXJyOkNvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcblx0XHRcdFx0aWYodGhpcy5vbkVycm9yKXtcblx0XHRcdFx0XHR0aGlzLm9uRXJyb3IoZXJyKVxuXHRcdFx0XHQgfVxuXHRcdFx0fVxuXHRcdClcblx0XHQuY2F0Y2goKGVycm9yOkNvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pPT57XG5cdFx0XHRpZih0aGlzLm9uRXJyb3Ipe1xuXHRcdFx0XHR0aGlzLm9uRXJyb3IoZXJyb3IpXG5cdFx0XHQgfVxuXHRcdH0pXG5cdH1cblx0ZWxzZXtcblx0XHRDb21ldENoYXQuZ2V0TG9nZ2VkaW5Vc2VyKCkudGhlbigodXNlcjpDb21ldENoYXQuVXNlciB8IG51bGwpPT57XG5cdFx0XHRjb25zdCBhdXRoVG9rZW4gPSB1c2VyIS5nZXRBdXRoVG9rZW4oKTtcblx0XHRcdGNvbnN0IHNlc3Npb25JRCA9IHRoaXMuc2Vzc2lvbklEO1xuXHRcdFx0Q29tZXRDaGF0VUlLaXRDYWxscy5nZW5lcmF0ZVRva2VuKHNlc3Npb25JRCwgYXV0aFRva2VuKS50aGVuKFxuXHRcdFx0XHQocmVzOmFueSkgPT4ge1xuXHRcdFx0XHRcdENvbWV0Q2hhdFVJS2l0Q2FsbHMuc3RhcnRTZXNzaW9uKFxuXHRcdFx0XHRcdFx0cmVzPy50b2tlbixcblx0XHRcdFx0XHQgdGhpcy5nZXRDYWxsQnVpbGRlcigpLFxuICAgICAgICAgICB0aGlzLmNhbGxTY3JlZW5GcmFtZS5uYXRpdmVFbGVtZW50XG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSxcblx0XHRcdFx0KGVycm9yOkNvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcblx0XHRcdFx0XHRpZih0aGlzLm9uRXJyb3Ipe1xuXHRcdFx0XHRcdFx0dGhpcy5vbkVycm9yKGVycm9yKVxuXHRcdFx0XHRcdCB9XG5cdFx0XHRcdH1cblx0XHRcdClcblx0XHRcdC5jYXRjaCgoZXJyb3I6Q29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbik9Pntcblx0XHRcdFx0aWYodGhpcy5vbkVycm9yKXtcblx0XHRcdFx0XHR0aGlzLm9uRXJyb3IoZXJyb3IpXG5cdFx0XHRcdCB9XG5cdFx0XHR9KVxuXHRcdH0pXG5cdH1cbn07XG5zZXRvbmdvaW5nQ2FsbFN0eWxlKCl7XG4gIGxldCBkZWZhdWx0U3R5bGUgPSBuZXcgQ2FsbHNjcmVlblN0eWxlKHtcbiAgICBtYXhIZWlnaHQ6IFwiMTAwJVwiLFxuICAgIG1heFdpZHRoOiBcIjEwMCVcIixcbiAgICBib3JkZXI6IFwibm9uZVwiLFxuICAgIGJvcmRlclJhZGl1czogXCIwXCIsXG4gICAgYmFja2dyb3VuZDogXCIjMWMyMjI2XCIsXG5cdG1pbkhlaWdodDpcIjQwMHB4XCIsXG5cdG1pbldpZHRoOlwiNDAwcHhcIixcblx0bWluaW1pemVJY29uVGludDp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudChcImRhcmtcIiksXG5cdG1heGltaXplSWNvblRpbnQ6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQoXCJkYXJrXCIpLFxuICB9KTtcbiAgdGhpcy5vbmdvaW5nQ2FsbFN0eWxlID0gey4uLmRlZmF1bHRTdHlsZSwuLi50aGlzLm9uZ29pbmdDYWxsU3R5bGV9XG59XG59XG4iLCI8Y29tZXRjaGF0LWNhbGxzY3JlZW4td3JhcHBlciAqbmdJZj1cInNlc3Npb25JRFwiIFtjYWxsc2NyZWVuU3R5bGVdPVwib25nb2luZ0NhbGxTdHlsZVwiIFtyZXNpemVJY29uSG92ZXJUZXh0XT1cInJlc2l6ZUljb25Ib3ZlclRleHRcIiAgW21pbmltaXplSWNvblVSTF09XCJtaW5pbWl6ZUljb25VUkxcIiBbbWF4aW1pemVJY29uVVJMXT1cIm1heGltaXplSWNvblVSTFwiPlxuICAgIDxkaXYgI2NhbGxzY3JlZW5WaWV3IGNsYXNzPVwiY2MtY2FsbHNjcmVlbl9fdmlld1wiPjwvZGl2PlxuPC9jb21ldGNoYXQtY2FsbHNjcmVlbi13cmFwcGVyPlxuIl19
|