valtech-components 4.0.233 → 4.0.235

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.
@@ -52,7 +52,6 @@ export class ChatWindowComponent {
52
52
  this.replyTo = output();
53
53
  this.editMessage = output();
54
54
  this.typing = output();
55
- this.attach = output();
56
55
  this.voice = output();
57
56
  this.msgsEl = viewChild('msgs');
58
57
  this.replyingTo = signal(null);
@@ -136,8 +135,8 @@ export class ChatWindowComponent {
136
135
  this.atBottom.set(true);
137
136
  this.hasNew.set(false);
138
137
  }
139
- onSend(body) {
140
- this.sendMessage.emit(body);
138
+ onSend(event) {
139
+ this.sendMessage.emit(event);
141
140
  this.replyingTo.set(null);
142
141
  }
143
142
  onAction(event) {
@@ -165,7 +164,7 @@ export class ChatWindowComponent {
165
164
  return this.i18n.t(key, 'ChatWindow');
166
165
  }
167
166
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatWindowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
168
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChatWindowComponent, isStandalone: true, selector: "val-chat-window", inputs: { convId: { classPropertyName: "convId", publicName: "convId", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, currentUserId: { classPropertyName: "currentUserId", publicName: "currentUserId", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, typingUsers: { classPropertyName: "typingUsers", publicName: "typingUsers", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sendMessage: "sendMessage", loadMore: "loadMore", reactionClick: "reactionClick", deleteMessage: "deleteMessage", replyTo: "replyTo", editMessage: "editMessage", typing: "typing", attach: "attach", voice: "voice" }, viewQueries: [{ propertyName: "msgsEl", first: true, predicate: ["msgs"], descendants: true, isSignal: true }], ngImport: i0, template: `
167
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChatWindowComponent, isStandalone: true, selector: "val-chat-window", inputs: { convId: { classPropertyName: "convId", publicName: "convId", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, currentUserId: { classPropertyName: "currentUserId", publicName: "currentUserId", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, typingUsers: { classPropertyName: "typingUsers", publicName: "typingUsers", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sendMessage: "sendMessage", loadMore: "loadMore", reactionClick: "reactionClick", deleteMessage: "deleteMessage", replyTo: "replyTo", editMessage: "editMessage", typing: "typing", voice: "voice" }, viewQueries: [{ propertyName: "msgsEl", first: true, predicate: ["msgs"], descendants: true, isSignal: true }], ngImport: i0, template: `
169
168
  <div class="chat">
170
169
  <div #msgs class="messages" (scroll)="onScroll()">
171
170
  @if (isLoading()) {
@@ -212,7 +211,6 @@ export class ChatWindowComponent {
212
211
  [replyingTo]="replyingTo()"
213
212
  (send)="onSend($event)"
214
213
  (typing)="typing.emit()"
215
- (attach)="attach.emit($event)"
216
214
  (voice)="voice.emit()"
217
215
  (cancelReply)="replyingTo.set(null)"
218
216
  />
@@ -220,7 +218,7 @@ export class ChatWindowComponent {
220
218
  <div class="closed-banner">{{ t('conversationClosed') }}</div>
221
219
  }
222
220
  </div>
223
- `, isInline: true, styles: [":host{display:block;height:100%}.chat{position:relative;display:flex;flex-direction:column;height:100%;min-height:0}.messages{flex:1;min-height:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:0}.state{margin:auto;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--ion-color-medium, #92949c);font-size:.9375rem;text-align:center;padding:24px}.state.empty ion-icon{font-size:2.5rem;opacity:.5}.date-sep{position:sticky;top:4px;z-index:1;display:flex;justify-content:center;margin:8px 0}.date-sep span{font-size:.75rem;color:var(--ion-color-medium, #92949c);background:var(--ion-color-step-100, rgba(127, 127, 127, .14));padding:3px 12px;border-radius:999px;backdrop-filter:blur(4px)}.scroll-down{position:absolute;right:14px;bottom:84px;width:40px;height:40px;border-radius:50%;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-card-background, var(--ion-background-color, #fff));color:var(--ion-color-medium, #92949c);box-shadow:0 2px 10px #00000026;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:1.25rem;z-index:3}.scroll-down .dot{position:absolute;top:0;right:0;width:12px;height:12px;border-radius:50%;background:var(--ion-color-primary);border:2px solid var(--ion-card-background, #fff)}.closed-banner{text-align:center;padding:14px;color:var(--ion-color-medium, #92949c);font-size:.875rem;border-top:1px solid var(--ion-border-color, rgba(0, 0, 0, .08))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: MessageBubbleComponent, selector: "val-message-bubble", inputs: ["msg", "showAvatar", "showName", "tail", "locale"], outputs: ["action"] }, { kind: "component", type: ChatComposerComponent, selector: "val-chat-composer", inputs: ["placeholder", "disabled", "maxLength", "replyingTo", "showAttach", "showMic"], outputs: ["send", "typing", "attach", "voice", "cancelReply"] }, { kind: "component", type: TypingIndicatorComponent, selector: "val-typing-indicator", inputs: ["typingUsers"] }] }); }
221
+ `, isInline: true, styles: [":host{display:block;position:relative;height:100%;min-height:0}.chat{position:absolute;inset:0;display:flex;flex-direction:column}.messages{flex:1;min-height:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:0}.state{margin:auto;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--ion-color-medium, #92949c);font-size:.9375rem;text-align:center;padding:24px}.state.empty ion-icon{font-size:2.5rem;opacity:.5}.date-sep{position:sticky;top:4px;z-index:1;display:flex;justify-content:center;margin:8px 0}.date-sep span{font-size:.75rem;color:var(--ion-color-medium, #92949c);background:var(--ion-color-step-100, rgba(127, 127, 127, .14));padding:3px 12px;border-radius:999px;backdrop-filter:blur(4px)}.scroll-down{position:absolute;right:14px;bottom:84px;width:40px;height:40px;border-radius:50%;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-card-background, var(--ion-background-color, #fff));color:var(--ion-color-medium, #92949c);box-shadow:0 2px 10px #00000026;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:1.25rem;z-index:3}.scroll-down .dot{position:absolute;top:0;right:0;width:12px;height:12px;border-radius:50%;background:var(--ion-color-primary);border:2px solid var(--ion-card-background, #fff)}.closed-banner{text-align:center;padding:14px;color:var(--ion-color-medium, #92949c);font-size:.875rem;border-top:1px solid var(--ion-border-color, rgba(0, 0, 0, .08))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: MessageBubbleComponent, selector: "val-message-bubble", inputs: ["msg", "showAvatar", "showName", "tail", "locale"], outputs: ["action"] }, { kind: "component", type: ChatComposerComponent, selector: "val-chat-composer", inputs: ["placeholder", "disabled", "maxLength", "replyingTo", "showAttach", "showMic"], outputs: ["send", "typing", "voice", "cancelReply"] }, { kind: "component", type: TypingIndicatorComponent, selector: "val-typing-indicator", inputs: ["typingUsers"] }] }); }
224
222
  }
225
223
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatWindowComponent, decorators: [{
226
224
  type: Component,
@@ -271,7 +269,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
271
269
  [replyingTo]="replyingTo()"
272
270
  (send)="onSend($event)"
273
271
  (typing)="typing.emit()"
274
- (attach)="attach.emit($event)"
275
272
  (voice)="voice.emit()"
276
273
  (cancelReply)="replyingTo.set(null)"
277
274
  />
@@ -279,6 +276,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
279
276
  <div class="closed-banner">{{ t('conversationClosed') }}</div>
280
277
  }
281
278
  </div>
282
- `, styles: [":host{display:block;height:100%}.chat{position:relative;display:flex;flex-direction:column;height:100%;min-height:0}.messages{flex:1;min-height:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:0}.state{margin:auto;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--ion-color-medium, #92949c);font-size:.9375rem;text-align:center;padding:24px}.state.empty ion-icon{font-size:2.5rem;opacity:.5}.date-sep{position:sticky;top:4px;z-index:1;display:flex;justify-content:center;margin:8px 0}.date-sep span{font-size:.75rem;color:var(--ion-color-medium, #92949c);background:var(--ion-color-step-100, rgba(127, 127, 127, .14));padding:3px 12px;border-radius:999px;backdrop-filter:blur(4px)}.scroll-down{position:absolute;right:14px;bottom:84px;width:40px;height:40px;border-radius:50%;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-card-background, var(--ion-background-color, #fff));color:var(--ion-color-medium, #92949c);box-shadow:0 2px 10px #00000026;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:1.25rem;z-index:3}.scroll-down .dot{position:absolute;top:0;right:0;width:12px;height:12px;border-radius:50%;background:var(--ion-color-primary);border:2px solid var(--ion-card-background, #fff)}.closed-banner{text-align:center;padding:14px;color:var(--ion-color-medium, #92949c);font-size:.875rem;border-top:1px solid var(--ion-border-color, rgba(0, 0, 0, .08))}\n"] }]
279
+ `, styles: [":host{display:block;position:relative;height:100%;min-height:0}.chat{position:absolute;inset:0;display:flex;flex-direction:column}.messages{flex:1;min-height:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:0}.state{margin:auto;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--ion-color-medium, #92949c);font-size:.9375rem;text-align:center;padding:24px}.state.empty ion-icon{font-size:2.5rem;opacity:.5}.date-sep{position:sticky;top:4px;z-index:1;display:flex;justify-content:center;margin:8px 0}.date-sep span{font-size:.75rem;color:var(--ion-color-medium, #92949c);background:var(--ion-color-step-100, rgba(127, 127, 127, .14));padding:3px 12px;border-radius:999px;backdrop-filter:blur(4px)}.scroll-down{position:absolute;right:14px;bottom:84px;width:40px;height:40px;border-radius:50%;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-card-background, var(--ion-background-color, #fff));color:var(--ion-color-medium, #92949c);box-shadow:0 2px 10px #00000026;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:1.25rem;z-index:3}.scroll-down .dot{position:absolute;top:0;right:0;width:12px;height:12px;border-radius:50%;background:var(--ion-color-primary);border:2px solid var(--ion-card-background, #fff)}.closed-banner{text-align:center;padding:14px;color:var(--ion-color-medium, #92949c);font-size:.875rem;border-top:1px solid var(--ion-border-color, rgba(0, 0, 0, .08))}\n"] }]
283
280
  }], ctorParameters: () => [] });
284
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC13aW5kb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9jaGF0LXdpbmRvdy9jaGF0LXdpbmRvdy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQXVCLE1BQU0seURBQXlELENBQUM7QUFFdEgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDOUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkRBQTZELENBQUM7O0FBRXZHLFFBQVEsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztBQUVuRCxNQUFNLGdCQUFnQixHQUFHO0lBQ3ZCLEVBQUUsRUFBRTtRQUNGLGtCQUFrQixFQUFFLGdDQUFnQztRQUNwRCxPQUFPLEVBQUUsc0JBQXNCO1FBQy9CLFVBQVUsRUFBRSwwQ0FBMEM7UUFDdEQsV0FBVyxFQUFFLGlCQUFpQjtLQUMvQjtJQUNELEVBQUUsRUFBRTtRQUNGLGtCQUFrQixFQUFFLDZCQUE2QjtRQUNqRCxPQUFPLEVBQUUscUJBQXFCO1FBQzlCLFVBQVUsRUFBRSxzQ0FBc0M7UUFDbEQsV0FBVyxFQUFFLGNBQWM7S0FDNUI7Q0FDRixDQUFDO0FBYUY7Ozs7Ozs7Ozs7O0dBV0c7QUF3SkgsTUFBTSxPQUFPLG1CQUFtQjtJQTRCOUI7UUEzQlEsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUxQixXQUFNLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLGFBQVEsR0FBRyxLQUFLLENBQTBCLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLGtCQUFhLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLFdBQU0sR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDOUIsZ0JBQVcsR0FBRyxLQUFLLENBQVcsRUFBRSxDQUFDLENBQUM7UUFDbEMsY0FBUyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVsQyxnQkFBVyxHQUFHLE1BQU0sRUFBVSxDQUFDO1FBQy9CLGFBQVEsR0FBRyxNQUFNLEVBQVEsQ0FBQztRQUMxQixrQkFBYSxHQUFHLE1BQU0sRUFBb0MsQ0FBQztRQUMzRCxrQkFBYSxHQUFHLE1BQU0sRUFBVSxDQUFDO1FBQ2pDLFlBQU8sR0FBRyxNQUFNLEVBQVUsQ0FBQztRQUMzQixnQkFBVyxHQUFHLE1BQU0sRUFBVSxDQUFDO1FBQy9CLFdBQU0sR0FBRyxNQUFNLEVBQVEsQ0FBQztRQUN4QixXQUFNLEdBQUcsTUFBTSxFQUFRLENBQUM7UUFDeEIsVUFBSyxHQUFHLE1BQU0sRUFBUSxDQUFDO1FBRWYsV0FBTSxHQUFHLFNBQVMsQ0FBNkIsTUFBTSxDQUFDLENBQUM7UUFFckQsZUFBVSxHQUFHLE1BQU0sQ0FBd0IsSUFBSSxDQUFDLENBQUM7UUFDakQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixXQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXZCLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBd0J6RSxTQUFJLEdBQUcsUUFBUSxDQUFZLEdBQUcsRUFBRTtZQUNqRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDN0IsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUM7Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFDakMsTUFBTSxNQUFNLEdBQUc7Z0JBQ2IsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUM7Z0JBQ3RDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDO2FBQy9DLENBQUM7WUFDRixNQUFNLEdBQUcsR0FBYyxFQUFFLENBQUM7WUFDMUIsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3JDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDNUUsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO2dCQUNoRSxNQUFNLE1BQU0sR0FBRyxHQUFHLEtBQUssT0FBTyxDQUFDO2dCQUMvQixJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNYLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUcsR0FBRyxFQUFFLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDcEcsT0FBTyxHQUFHLEdBQUcsQ0FBQztnQkFDaEIsQ0FBQztnQkFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN6QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN6QixNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDO2dCQUNyRSxNQUFNLE9BQU8sR0FBRyxJQUFJO29CQUNsQixDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtvQkFDMUgsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDUCxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxRQUFRLElBQUksT0FBTyxLQUFLLEdBQUcsQ0FBQztnQkFDN0UsR0FBRyxDQUFDLElBQUksQ0FBQztvQkFDUCxJQUFJLEVBQUUsS0FBSztvQkFDWCxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUs7b0JBQ1gsR0FBRyxFQUFFLENBQUM7b0JBQ04sUUFBUSxFQUFFLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNO29CQUNuQyxVQUFVLEVBQUUsV0FBVyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU07b0JBQ3BDLElBQUksRUFBRSxXQUFXO2lCQUNsQixDQUFDLENBQUM7WUFDTCxDQUFDO1lBQ0QsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsQ0FBQztRQXhERCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTNELDJFQUEyRTtRQUMzRSwyRUFBMkU7UUFDM0UsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUMxQixJQUFJLEtBQUssS0FBSyxTQUFTO2dCQUFFLE9BQU87WUFDaEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxHQUFHLFNBQVMsQ0FBQztZQUMvQixTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3pELE1BQU0sSUFBSSxHQUFHLElBQUksRUFBRSxNQUFNLElBQUksS0FBSyxDQUFDO1lBQ25DLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUM1QixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsRCxDQUFDO2lCQUFNLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUF1Q1MsUUFBUTtRQUNoQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsYUFBYSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxFQUFFO1lBQUUsT0FBTztRQUNoQixNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDekUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUIsSUFBSSxVQUFVO1lBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsSUFBSSxFQUFFLENBQUMsU0FBUyxHQUFHLEVBQUU7WUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFUyxjQUFjLENBQUMsTUFBZTtRQUN0QyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsYUFBYSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxFQUFFO1lBQUUsT0FBTztRQUNoQixFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFUyxNQUFNLENBQUMsSUFBWTtRQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRVMsUUFBUSxDQUFDLEtBQTBCO1FBQzNDLFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25CLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDYixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzdELElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ2xGLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvQixNQUFNO1lBQ1IsQ0FBQztZQUNELEtBQUssTUFBTTtnQkFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyQyxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDNUUsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsQ0FBQyxDQUFDLEdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN4QyxDQUFDOytHQXJJVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiwrckNBbkpwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVEVCw4Z0RBeERTLFlBQVksK0JBQUUsT0FBTywySkFBRSxzQkFBc0IsaUpBQUUscUJBQXFCLHNOQUFFLHdCQUF3Qjs7NEZBb0o3RixtQkFBbUI7a0JBdkovQixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsd0JBQXdCLENBQUMsWUFDL0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1RFQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJb25JY29uIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGFycm93RG93bk91dGxpbmUsIGNoYXRidWJibGVzT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IGZvcm1hdERhdGVTZXBhcmF0b3IgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvZGF0ZXRpbWUnO1xuaW1wb3J0IHsgTWVzc2FnZVJlcGx5VG8gfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jaGF0L3R5cGVzJztcbmltcG9ydCB7IE1lc3NhZ2VCdWJibGVDb21wb25lbnQsIE1lc3NhZ2VCdWJibGVBY3Rpb24gfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvbWVzc2FnZS1idWJibGUvbWVzc2FnZS1idWJibGUuY29tcG9uZW50JztcbmltcG9ydCB7IE1lc3NhZ2VCdWJibGVNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9tZXNzYWdlLWJ1YmJsZS90eXBlcyc7XG5pbXBvcnQgeyBDaGF0Q29tcG9zZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY2hhdC1jb21wb3Nlci9jaGF0LWNvbXBvc2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUeXBpbmdJbmRpY2F0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvdHlwaW5nLWluZGljYXRvci90eXBpbmctaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5cbmFkZEljb25zKHsgYXJyb3dEb3duT3V0bGluZSwgY2hhdGJ1YmJsZXNPdXRsaW5lIH0pO1xuXG5jb25zdCBDSEFUX1dJTkRPV19JMThOID0ge1xuICBlczoge1xuICAgIGNvbnZlcnNhdGlvbkNsb3NlZDogJ0VzdGEgY29udmVyc2FjaW9uIGVzdGEgY2VycmFkYScsXG4gICAgbG9hZGluZzogJ0NhcmdhbmRvIG1lbnNhamVzLi4uJyxcbiAgICBub01lc3NhZ2VzOiAnQXVuIG5vIGhheSBtZW5zYWplcy4gRXNjcmliZSBlbCBwcmltZXJvLicsXG4gICAgbmV3TWVzc2FnZXM6ICdNZW5zYWplcyBudWV2b3MnLFxuICB9LFxuICBlbjoge1xuICAgIGNvbnZlcnNhdGlvbkNsb3NlZDogJ1RoaXMgY29udmVyc2F0aW9uIGlzIGNsb3NlZCcsXG4gICAgbG9hZGluZzogJ0xvYWRpbmcgbWVzc2FnZXMuLi4nLFxuICAgIG5vTWVzc2FnZXM6ICdObyBtZXNzYWdlcyB5ZXQuIFNlbmQgdGhlIGZpcnN0IG9uZS4nLFxuICAgIG5ld01lc3NhZ2VzOiAnTmV3IG1lc3NhZ2VzJyxcbiAgfSxcbn07XG5cbnR5cGUgQ2hhdFJvdyA9XG4gIHwgeyBraW5kOiAnZGF0ZSc7IGlkOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfVxuICB8IHtcbiAgICAgIGtpbmQ6ICdtc2cnO1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIG1zZzogTWVzc2FnZUJ1YmJsZU1ldGFkYXRhO1xuICAgICAgc2hvd05hbWU6IGJvb2xlYW47XG4gICAgICBzaG93QXZhdGFyOiBib29sZWFuO1xuICAgICAgdGFpbDogYm9vbGVhbjtcbiAgICB9O1xuXG4vKipcbiAqIHZhbC1jaGF0LXdpbmRvdyDigJQgdmVudGFuYSBkZSBjaGF0IGNvbXBsZXRhIChzaWduYWwgaW5wdXRzKS5cbiAqXG4gKiBBZ3J1cGEgbWVuc2FqZXMgY29uc2VjdXRpdm9zIGRlbCBtaXNtbyBlbWlzb3IgeSBwb3IgZMOtYSAoc2VwYXJhZG9yZXMgc3RpY2t5KSxcbiAqIG11ZXN0cmEgYXZhdGFyL25vbWJyZSBzb2xvIGVuIGxvcyBib3JkZXMgZGVsIGdydXBvLCBzY3JvbGwtdG8tYm90dG9tIGludGVsaWdlbnRlXG4gKiAoYXV0by1zY3JvbGwgc2kgZXN0w6FzIGFiYWpvLCBwaWxsIFwibWVuc2FqZXMgbnVldm9zXCIgc2kgZXN0w6FzIGxleWVuZG8gYXJyaWJhKSxcbiAqIGNvbXBvc2VyIG1vZGVybm8gY29uIGNvbnRleHRvIGRlIHJlc3B1ZXN0YSwgeSB0eXBpbmcgaW5kaWNhdG9yLlxuICpcbiAqIEFQSSBww7pibGljYSBlc3RhYmxlIChjb25zdW1pZGEgcG9yIHRocmVhZC1wYW5lbCB5IHNob3djYXNlKTogaW5wdXRzIGNvbnZJZCxcbiAqIG1lc3NhZ2VzLCBjdXJyZW50VXNlcklkLCBpc09wZW4sIHR5cGluZ1VzZXJzLCBpc0xvYWRpbmc7IG91dHB1dHMgc2VuZE1lc3NhZ2UsXG4gKiBsb2FkTW9yZSwgcmVhY3Rpb25DbGljaywgZGVsZXRlTWVzc2FnZSwgcmVwbHlUbyAoKyBlZGl0TWVzc2FnZS9hdHRhY2gvdm9pY2UgbnVldm9zKS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNoYXQtd2luZG93JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uSWNvbiwgTWVzc2FnZUJ1YmJsZUNvbXBvbmVudCwgQ2hhdENvbXBvc2VyQ29tcG9uZW50LCBUeXBpbmdJbmRpY2F0b3JDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjaGF0XCI+XG4gICAgICA8ZGl2ICNtc2dzIGNsYXNzPVwibWVzc2FnZXNcIiAoc2Nyb2xsKT1cIm9uU2Nyb2xsKClcIj5cbiAgICAgICAgQGlmIChpc0xvYWRpbmcoKSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0ZVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgdCgnbG9hZGluZycpIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIGlmIChyb3dzKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRlIGVtcHR5XCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoYXRidWJibGVzLW91dGxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICAgICAgICAgICAgPHNwYW4+e3sgdCgnbm9NZXNzYWdlcycpIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICBAZm9yIChyb3cgb2Ygcm93cygpOyB0cmFjayByb3cuaWQpIHtcbiAgICAgICAgICAgIEBpZiAocm93LmtpbmQgPT09ICdkYXRlJykge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1zZXBcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyByb3cubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDx2YWwtbWVzc2FnZS1idWJibGVcbiAgICAgICAgICAgICAgICBbbXNnXT1cInJvdy5tc2dcIlxuICAgICAgICAgICAgICAgIFtzaG93TmFtZV09XCJyb3cuc2hvd05hbWVcIlxuICAgICAgICAgICAgICAgIFtzaG93QXZhdGFyXT1cInJvdy5zaG93QXZhdGFyXCJcbiAgICAgICAgICAgICAgICBbdGFpbF09XCJyb3cudGFpbFwiXG4gICAgICAgICAgICAgICAgW2xvY2FsZV09XCJsb2NhbGUoKVwiXG4gICAgICAgICAgICAgICAgKGFjdGlvbik9XCJvbkFjdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPHZhbC10eXBpbmctaW5kaWNhdG9yIFt0eXBpbmdVc2Vyc109XCJ0eXBpbmdVc2VycygpXCIgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICBAaWYgKCFhdEJvdHRvbSgpKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJzY3JvbGwtZG93blwiIChjbGljayk9XCJzY3JvbGxUb0JvdHRvbSh0cnVlKVwiIGFyaWEtbGFiZWw9XCJzY3JvbGxcIj5cbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImFycm93LWRvd24tb3V0bGluZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgQGlmIChoYXNOZXcoKSkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkb3RcIj48L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChpc09wZW4oKSkge1xuICAgICAgICA8dmFsLWNoYXQtY29tcG9zZXJcbiAgICAgICAgICBbcmVwbHlpbmdUb109XCJyZXBseWluZ1RvKClcIlxuICAgICAgICAgIChzZW5kKT1cIm9uU2VuZCgkZXZlbnQpXCJcbiAgICAgICAgICAodHlwaW5nKT1cInR5cGluZy5lbWl0KClcIlxuICAgICAgICAgIChhdHRhY2gpPVwiYXR0YWNoLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgKHZvaWNlKT1cInZvaWNlLmVtaXQoKVwiXG4gICAgICAgICAgKGNhbmNlbFJlcGx5KT1cInJlcGx5aW5nVG8uc2V0KG51bGwpXCJcbiAgICAgICAgLz5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvc2VkLWJhbm5lclwiPnt7IHQoJ2NvbnZlcnNhdGlvbkNsb3NlZCcpIH19PC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICAgIC5jaGF0IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICB9XG4gICAgICAubWVzc2FnZXMge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDA7XG4gICAgICB9XG4gICAgICAuc3RhdGUge1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSwgIzkyOTQ5Yyk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgICB9XG4gICAgICAuc3RhdGUuZW1wdHkgaW9uLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgfVxuICAgICAgLmRhdGUtc2VwIHtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgdG9wOiA0cHg7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtYXJnaW46IDhweCAwO1xuICAgICAgfVxuICAgICAgLmRhdGUtc2VwIHNwYW4ge1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLXN0ZXAtMTAwLCByZ2JhKDEyNywgMTI3LCAxMjcsIDAuMTQpKTtcbiAgICAgICAgcGFkZGluZzogM3B4IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTtcbiAgICAgIH1cbiAgICAgIC5zY3JvbGwtZG93biB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDE0cHg7XG4gICAgICAgIGJvdHRvbTogODRweDtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY2FyZC1iYWNrZ3JvdW5kLCB2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZikpO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSwgIzkyOTQ5Yyk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgIH1cbiAgICAgIC5zY3JvbGwtZG93biAuZG90IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0taW9uLWNhcmQtYmFja2dyb3VuZCwgI2ZmZik7XG4gICAgICB9XG4gICAgICAuY2xvc2VkLWJhbm5lciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMTRweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0sICM5Mjk0OWMpO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0taW9uLWJvcmRlci1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjA4KSk7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhdFdpbmRvd0NvbXBvbmVudCB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgY29udklkID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IG1lc3NhZ2VzID0gaW5wdXQ8TWVzc2FnZUJ1YmJsZU1ldGFkYXRhW10+KFtdKTtcbiAgcmVhZG9ubHkgY3VycmVudFVzZXJJZCA9IGlucHV0PHN0cmluZz4oJycpO1xuICByZWFkb25seSBpc09wZW4gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgcmVhZG9ubHkgdHlwaW5nVXNlcnMgPSBpbnB1dDxzdHJpbmdbXT4oW10pO1xuICByZWFkb25seSBpc0xvYWRpbmcgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgcmVhZG9ubHkgc2VuZE1lc3NhZ2UgPSBvdXRwdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBsb2FkTW9yZSA9IG91dHB1dDx2b2lkPigpO1xuICByZWFkb25seSByZWFjdGlvbkNsaWNrID0gb3V0cHV0PHsgbXNnSWQ6IHN0cmluZzsgdG9rZW46IHN0cmluZyB9PigpO1xuICByZWFkb25seSBkZWxldGVNZXNzYWdlID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgcmVwbHlUbyA9IG91dHB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGVkaXRNZXNzYWdlID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgdHlwaW5nID0gb3V0cHV0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5IGF0dGFjaCA9IG91dHB1dDxGaWxlPigpO1xuICByZWFkb25seSB2b2ljZSA9IG91dHB1dDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbXNnc0VsID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PignbXNncycpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSByZXBseWluZ1RvID0gc2lnbmFsPE1lc3NhZ2VSZXBseVRvIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBhdEJvdHRvbSA9IHNpZ25hbCh0cnVlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhc05ldyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvY2FsZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmkxOG4ubGFuZygpID09PSAnZW4nID8gJ2VuLVVTJyA6ICdlcy1DTCcpKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cygnQ2hhdFdpbmRvdycsIENIQVRfV0lORE9XX0kxOE4pO1xuXG4gICAgLy8gQXV0by1zY3JvbGwgYWwgZm9uZG8gY3VhbmRvIGxsZWdhbiBtZW5zYWplcyB5IGVsIHVzdWFyaW8geWEgZXN0YWJhIGFiYWpvXG4gICAgLy8gKG8gZWwgw7psdGltbyBtZW5zYWplIGVzIHByb3BpbykuIFNpIGVzdMOhIGxleWVuZG8gYXJyaWJhLCBtYXJjYSBcIm51ZXZvc1wiLlxuICAgIGxldCBwcmV2Q291bnQgPSAwO1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCByb3dzID0gdGhpcy5yb3dzKCk7XG4gICAgICBjb25zdCBjb3VudCA9IHJvd3MubGVuZ3RoO1xuICAgICAgaWYgKGNvdW50ID09PSBwcmV2Q291bnQpIHJldHVybjtcbiAgICAgIGNvbnN0IGdyZXcgPSBjb3VudCA+IHByZXZDb3VudDtcbiAgICAgIHByZXZDb3VudCA9IGNvdW50O1xuICAgICAgY29uc3QgbGFzdCA9IHRoaXMubWVzc2FnZXMoKVt0aGlzLm1lc3NhZ2VzKCkubGVuZ3RoIC0gMV07XG4gICAgICBjb25zdCBtaW5lID0gbGFzdD8uaXNNaW5lID8/IGZhbHNlO1xuICAgICAgaWYgKHRoaXMuYXRCb3R0b20oKSB8fCBtaW5lKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zY3JvbGxUb0JvdHRvbShmYWxzZSksIDApO1xuICAgICAgfSBlbHNlIGlmIChncmV3KSB7XG4gICAgICAgIHRoaXMuaGFzTmV3LnNldCh0cnVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSByb3dzID0gY29tcHV0ZWQ8Q2hhdFJvd1tdPigoKSA9PiB7XG4gICAgY29uc3QgbXNncyA9IHRoaXMubWVzc2FnZXMoKTtcbiAgICBpZiAobXNncy5sZW5ndGggPT09IDApIHJldHVybiBbXTtcbiAgICBjb25zdCBsYWJlbHMgPSB7XG4gICAgICB0b2RheTogdGhpcy5pMThuLnQoJ3RvZGF5JywgJ19nbG9iYWwnKSxcbiAgICAgIHllc3RlcmRheTogdGhpcy5pMThuLnQoJ3llc3RlcmRheScsICdfZ2xvYmFsJyksXG4gICAgfTtcbiAgICBjb25zdCBvdXQ6IENoYXRSb3dbXSA9IFtdO1xuICAgIGxldCBwcmV2RGF5ID0gJyc7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtc2dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBtID0gbXNnc1tpXTtcbiAgICAgIGNvbnN0IGQgPSBtLmNyZWF0ZWRBdCBpbnN0YW5jZW9mIERhdGUgPyBtLmNyZWF0ZWRBdCA6IG5ldyBEYXRlKG0uY3JlYXRlZEF0KTtcbiAgICAgIGNvbnN0IGRheSA9IGAke2QuZ2V0RnVsbFllYXIoKX0tJHtkLmdldE1vbnRoKCl9LSR7ZC5nZXREYXRlKCl9YDtcbiAgICAgIGNvbnN0IG5ld0RheSA9IGRheSAhPT0gcHJldkRheTtcbiAgICAgIGlmIChuZXdEYXkpIHtcbiAgICAgICAgb3V0LnB1c2goeyBraW5kOiAnZGF0ZScsIGlkOiAnZGF0ZS0nICsgZGF5LCBsYWJlbDogZm9ybWF0RGF0ZVNlcGFyYXRvcihkLCB0aGlzLmxvY2FsZSgpLCBsYWJlbHMpIH0pO1xuICAgICAgICBwcmV2RGF5ID0gZGF5O1xuICAgICAgfVxuICAgICAgY29uc3QgcHJldiA9IG1zZ3NbaSAtIDFdO1xuICAgICAgY29uc3QgbmV4dCA9IG1zZ3NbaSArIDFdO1xuICAgICAgY29uc3QgZmlyc3RJbkdyb3VwID0gbmV3RGF5IHx8ICFwcmV2IHx8IHByZXYuc2VuZGVySWQgIT09IG0uc2VuZGVySWQ7XG4gICAgICBjb25zdCBuZXh0RGF5ID0gbmV4dFxuICAgICAgICA/IGAke25ldyBEYXRlKG5leHQuY3JlYXRlZEF0KS5nZXRGdWxsWWVhcigpfS0ke25ldyBEYXRlKG5leHQuY3JlYXRlZEF0KS5nZXRNb250aCgpfS0ke25ldyBEYXRlKG5leHQuY3JlYXRlZEF0KS5nZXREYXRlKCl9YFxuICAgICAgICA6ICcnO1xuICAgICAgY29uc3QgbGFzdEluR3JvdXAgPSAhbmV4dCB8fCBuZXh0LnNlbmRlcklkICE9PSBtLnNlbmRlcklkIHx8IG5leHREYXkgIT09IGRheTtcbiAgICAgIG91dC5wdXNoKHtcbiAgICAgICAga2luZDogJ21zZycsXG4gICAgICAgIGlkOiBtLm1zZ0lkLFxuICAgICAgICBtc2c6IG0sXG4gICAgICAgIHNob3dOYW1lOiBmaXJzdEluR3JvdXAgJiYgIW0uaXNNaW5lLFxuICAgICAgICBzaG93QXZhdGFyOiBsYXN0SW5Hcm91cCAmJiAhbS5pc01pbmUsXG4gICAgICAgIHRhaWw6IGxhc3RJbkdyb3VwLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBvdXQ7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBvblNjcm9sbCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMubXNnc0VsKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIGNvbnN0IG5lYXJCb3R0b20gPSBlbC5zY3JvbGxIZWlnaHQgLSBlbC5zY3JvbGxUb3AgLSBlbC5jbGllbnRIZWlnaHQgPCA4MDtcbiAgICB0aGlzLmF0Qm90dG9tLnNldChuZWFyQm90dG9tKTtcbiAgICBpZiAobmVhckJvdHRvbSkgdGhpcy5oYXNOZXcuc2V0KGZhbHNlKTtcbiAgICBpZiAoZWwuc2Nyb2xsVG9wIDwgNDApIHRoaXMubG9hZE1vcmUuZW1pdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNjcm9sbFRvQm90dG9tKHNtb290aDogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5tc2dzRWwoKT8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIWVsKSByZXR1cm47XG4gICAgZWwuc2Nyb2xsVG8oeyB0b3A6IGVsLnNjcm9sbEhlaWdodCwgYmVoYXZpb3I6IHNtb290aCA/ICdzbW9vdGgnIDogJ2F1dG8nIH0pO1xuICAgIHRoaXMuYXRCb3R0b20uc2V0KHRydWUpO1xuICAgIHRoaXMuaGFzTmV3LnNldChmYWxzZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25TZW5kKGJvZHk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VuZE1lc3NhZ2UuZW1pdChib2R5KTtcbiAgICB0aGlzLnJlcGx5aW5nVG8uc2V0KG51bGwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQWN0aW9uKGV2ZW50OiBNZXNzYWdlQnViYmxlQWN0aW9uKTogdm9pZCB7XG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICBjYXNlICdyZXBseSc6IHtcbiAgICAgICAgY29uc3QgbSA9IHRoaXMubWVzc2FnZXMoKS5maW5kKHggPT4geC5tc2dJZCA9PT0gZXZlbnQubXNnSWQpO1xuICAgICAgICBpZiAobSkge1xuICAgICAgICAgIHRoaXMucmVwbHlpbmdUby5zZXQoeyBtc2dJZDogbS5tc2dJZCwgc2VuZGVyTmFtZTogbS5zZW5kZXJOYW1lLCBib2R5OiBtLmJvZHkgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXBseVRvLmVtaXQoZXZlbnQubXNnSWQpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2VkaXQnOlxuICAgICAgICB0aGlzLmVkaXRNZXNzYWdlLmVtaXQoZXZlbnQubXNnSWQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIHRoaXMuZGVsZXRlTWVzc2FnZS5lbWl0KGV2ZW50Lm1zZ0lkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyZWFjdCc6XG4gICAgICAgIHRoaXMucmVhY3Rpb25DbGljay5lbWl0KHsgbXNnSWQ6IGV2ZW50Lm1zZ0lkLCB0b2tlbjogZXZlbnQudG9rZW4gPz8gJ/CfkY0nIH0pO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCAnQ2hhdFdpbmRvdycpO1xuICB9XG59XG4iXX0=
281
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC13aW5kb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9jaGF0LXdpbmRvdy9jaGF0LXdpbmRvdy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQXVCLE1BQU0seURBQXlELENBQUM7QUFFdEgsT0FBTyxFQUFFLHFCQUFxQixFQUF5QixNQUFNLHVEQUF1RCxDQUFDO0FBQ3JILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZEQUE2RCxDQUFDOztBQUV2RyxRQUFRLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7QUFFbkQsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QixFQUFFLEVBQUU7UUFDRixrQkFBa0IsRUFBRSxnQ0FBZ0M7UUFDcEQsT0FBTyxFQUFFLHNCQUFzQjtRQUMvQixVQUFVLEVBQUUsMENBQTBDO1FBQ3RELFdBQVcsRUFBRSxpQkFBaUI7S0FDL0I7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QjttR0FBbkIsbUJBQW1CLDZxQ0F0SnBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzRFQsNGhEQXZEUyxZQUFZLCtCQUFFLE9BQU8sMkpBQUUsc0JBQXNCLGlKQUFFLHFCQUFxQiw0TUFBRSx3QkFBd0I7OzRGQXVKN0YsbUJBQW1CO2tCQTFKL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLHdCQUF3QixDQUFDLFlBQy9GOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzRFQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJb25JY29uIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGFycm93RG93bk91dGxpbmUsIGNoYXRidWJibGVzT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IGZvcm1hdERhdGVTZXBhcmF0b3IgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvZGF0ZXRpbWUnO1xuaW1wb3J0IHsgTWVzc2FnZVJlcGx5VG8gfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jaGF0L3R5cGVzJztcbmltcG9ydCB7IE1lc3NhZ2VCdWJibGVDb21wb25lbnQsIE1lc3NhZ2VCdWJibGVBY3Rpb24gfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvbWVzc2FnZS1idWJibGUvbWVzc2FnZS1idWJibGUuY29tcG9uZW50JztcbmltcG9ydCB7IE1lc3NhZ2VCdWJibGVNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9tZXNzYWdlLWJ1YmJsZS90eXBlcyc7XG5pbXBvcnQgeyBDaGF0Q29tcG9zZXJDb21wb25lbnQsIENoYXRDb21wb3NlclNlbmRFdmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jaGF0LWNvbXBvc2VyL2NoYXQtY29tcG9zZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFR5cGluZ0luZGljYXRvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90eXBpbmctaW5kaWNhdG9yL3R5cGluZy1pbmRpY2F0b3IuY29tcG9uZW50JztcblxuYWRkSWNvbnMoeyBhcnJvd0Rvd25PdXRsaW5lLCBjaGF0YnViYmxlc091dGxpbmUgfSk7XG5cbmNvbnN0IENIQVRfV0lORE9XX0kxOE4gPSB7XG4gIGVzOiB7XG4gICAgY29udmVyc2F0aW9uQ2xvc2VkOiAnRXN0YSBjb252ZXJzYWNpb24gZXN0YSBjZXJyYWRhJyxcbiAgICBsb2FkaW5nOiAnQ2FyZ2FuZG8gbWVuc2FqZXMuLi4nLFxuICAgIG5vTWVzc2FnZXM6ICdBdW4gbm8gaGF5IG1lbnNhamVzLiBFc2NyaWJlIGVsIHByaW1lcm8uJyxcbiAgICBuZXdNZXNzYWdlczogJ01lbnNhamVzIG51ZXZvcycsXG4gIH0sXG4gIGVuOiB7XG4gICAgY29udmVyc2F0aW9uQ2xvc2VkOiAnVGhpcyBjb252ZXJzYXRpb24gaXMgY2xvc2VkJyxcbiAgICBsb2FkaW5nOiAnTG9hZGluZyBtZXNzYWdlcy4uLicsXG4gICAgbm9NZXNzYWdlczogJ05vIG1lc3NhZ2VzIHlldC4gU2VuZCB0aGUgZmlyc3Qgb25lLicsXG4gICAgbmV3TWVzc2FnZXM6ICdOZXcgbWVzc2FnZXMnLFxuICB9LFxufTtcblxudHlwZSBDaGF0Um93ID1cbiAgfCB7IGtpbmQ6ICdkYXRlJzsgaWQ6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9XG4gIHwge1xuICAgICAga2luZDogJ21zZyc7XG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgbXNnOiBNZXNzYWdlQnViYmxlTWV0YWRhdGE7XG4gICAgICBzaG93TmFtZTogYm9vbGVhbjtcbiAgICAgIHNob3dBdmF0YXI6IGJvb2xlYW47XG4gICAgICB0YWlsOiBib29sZWFuO1xuICAgIH07XG5cbi8qKlxuICogdmFsLWNoYXQtd2luZG93IOKAlCB2ZW50YW5hIGRlIGNoYXQgY29tcGxldGEgKHNpZ25hbCBpbnB1dHMpLlxuICpcbiAqIEFncnVwYSBtZW5zYWplcyBjb25zZWN1dGl2b3MgZGVsIG1pc21vIGVtaXNvciB5IHBvciBkw61hIChzZXBhcmFkb3JlcyBzdGlja3kpLFxuICogbXVlc3RyYSBhdmF0YXIvbm9tYnJlIHNvbG8gZW4gbG9zIGJvcmRlcyBkZWwgZ3J1cG8sIHNjcm9sbC10by1ib3R0b20gaW50ZWxpZ2VudGVcbiAqIChhdXRvLXNjcm9sbCBzaSBlc3TDoXMgYWJham8sIHBpbGwgXCJtZW5zYWplcyBudWV2b3NcIiBzaSBlc3TDoXMgbGV5ZW5kbyBhcnJpYmEpLFxuICogY29tcG9zZXIgbW9kZXJubyBjb24gY29udGV4dG8gZGUgcmVzcHVlc3RhLCB5IHR5cGluZyBpbmRpY2F0b3IuXG4gKlxuICogQVBJIHDDumJsaWNhIGVzdGFibGUgKGNvbnN1bWlkYSBwb3IgdGhyZWFkLXBhbmVsIHkgc2hvd2Nhc2UpOiBpbnB1dHMgY29udklkLFxuICogbWVzc2FnZXMsIGN1cnJlbnRVc2VySWQsIGlzT3BlbiwgdHlwaW5nVXNlcnMsIGlzTG9hZGluZzsgb3V0cHV0cyBzZW5kTWVzc2FnZSxcbiAqIGxvYWRNb3JlLCByZWFjdGlvbkNsaWNrLCBkZWxldGVNZXNzYWdlLCByZXBseVRvICgrIGVkaXRNZXNzYWdlL2F0dGFjaC92b2ljZSBudWV2b3MpLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtY2hhdC13aW5kb3cnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25JY29uLCBNZXNzYWdlQnViYmxlQ29tcG9uZW50LCBDaGF0Q29tcG9zZXJDb21wb25lbnQsIFR5cGluZ0luZGljYXRvckNvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImNoYXRcIj5cbiAgICAgIDxkaXYgI21zZ3MgY2xhc3M9XCJtZXNzYWdlc1wiIChzY3JvbGwpPVwib25TY3JvbGwoKVwiPlxuICAgICAgICBAaWYgKGlzTG9hZGluZygpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRlXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyB0KCdsb2FkaW5nJykgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2UgaWYgKHJvd3MoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdGUgZW1wdHlcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hhdGJ1YmJsZXMtb3V0bGluZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICA8c3Bhbj57eyB0KCdub01lc3NhZ2VzJykgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIEBmb3IgKHJvdyBvZiByb3dzKCk7IHRyYWNrIHJvdy5pZCkge1xuICAgICAgICAgICAgQGlmIChyb3cua2luZCA9PT0gJ2RhdGUnKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLXNlcFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IHJvdy5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPHZhbC1tZXNzYWdlLWJ1YmJsZVxuICAgICAgICAgICAgICAgIFttc2ddPVwicm93Lm1zZ1wiXG4gICAgICAgICAgICAgICAgW3Nob3dOYW1lXT1cInJvdy5zaG93TmFtZVwiXG4gICAgICAgICAgICAgICAgW3Nob3dBdmF0YXJdPVwicm93LnNob3dBdmF0YXJcIlxuICAgICAgICAgICAgICAgIFt0YWlsXT1cInJvdy50YWlsXCJcbiAgICAgICAgICAgICAgICBbbG9jYWxlXT1cImxvY2FsZSgpXCJcbiAgICAgICAgICAgICAgICAoYWN0aW9uKT1cIm9uQWN0aW9uKCRldmVudClcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICA8dmFsLXR5cGluZy1pbmRpY2F0b3IgW3R5cGluZ1VzZXJzXT1cInR5cGluZ1VzZXJzKClcIiAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAoIWF0Qm90dG9tKCkpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNjcm9sbC1kb3duXCIgKGNsaWNrKT1cInNjcm9sbFRvQm90dG9tKHRydWUpXCIgYXJpYS1sYWJlbD1cInNjcm9sbFwiPlxuICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiYXJyb3ctZG93bi1vdXRsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cbiAgICAgICAgICBAaWYgKGhhc05ldygpKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRvdFwiPjwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKGlzT3BlbigpKSB7XG4gICAgICAgIDx2YWwtY2hhdC1jb21wb3NlclxuICAgICAgICAgIFtyZXBseWluZ1RvXT1cInJlcGx5aW5nVG8oKVwiXG4gICAgICAgICAgKHNlbmQpPVwib25TZW5kKCRldmVudClcIlxuICAgICAgICAgICh0eXBpbmcpPVwidHlwaW5nLmVtaXQoKVwiXG4gICAgICAgICAgKHZvaWNlKT1cInZvaWNlLmVtaXQoKVwiXG4gICAgICAgICAgKGNhbmNlbFJlcGx5KT1cInJlcGx5aW5nVG8uc2V0KG51bGwpXCJcbiAgICAgICAgLz5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvc2VkLWJhbm5lclwiPnt7IHQoJ2NvbnZlcnNhdGlvbkNsb3NlZCcpIH19PC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgfVxuICAgICAgLyogcG9zaXRpb246YWJzb2x1dGUgKyBpbnNldDowIGRhIGFsIGNvbnRlbmVkb3IgdW5hIGFsdHVyYSBERUZJTklEQSAoPSBsYSBkZWxcbiAgICAgICAgIGhvc3QpLCBzaW4gZGVwZW5kZXIgZGUgaGVpZ2h0OjEwMCUgcXVlIG5vIHJlc3VlbHZlIGVuIGNhZGVuYXMgZmxleC9zaGFkb3cuXG4gICAgICAgICBNZW5zYWplcyBzY3JvbGxlYW47IGVsIGNvbXBvc2VyIChmbGV4Om5vbmUpIHF1ZWRhIGFuY2xhZG8gYWJham8gc2llbXByZS4gKi9cbiAgICAgIC5jaGF0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIH1cbiAgICAgIC5tZXNzYWdlcyB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMDtcbiAgICAgIH1cbiAgICAgIC5zdGF0ZSB7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMjRweDtcbiAgICAgIH1cbiAgICAgIC5zdGF0ZS5lbXB0eSBpb24taWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICB9XG4gICAgICAuZGF0ZS1zZXAge1xuICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICB0b3A6IDRweDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogOHB4IDA7XG4gICAgICB9XG4gICAgICAuZGF0ZS1zZXAgc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0sICM5Mjk0OWMpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3Itc3RlcC0xMDAsIHJnYmEoMTI3LCAxMjcsIDEyNywgMC4xNCkpO1xuICAgICAgICBwYWRkaW5nOiAzcHggMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpO1xuICAgICAgfVxuICAgICAgLnNjcm9sbC1kb3duIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMTRweDtcbiAgICAgICAgYm90dG9tOiA4NHB4O1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlvbi1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jYXJkLWJhY2tncm91bmQsIHZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgfVxuICAgICAgLnNjcm9sbC1kb3duIC5kb3Qge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1pb24tY2FyZC1iYWNrZ3JvdW5kLCAjZmZmKTtcbiAgICAgIH1cbiAgICAgIC5jbG9zZWQtYmFubmVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAxNHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSwgIzkyOTQ5Yyk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMDgpKTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDaGF0V2luZG93Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblxuICByZWFkb25seSBjb252SWQgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcmVhZG9ubHkgbWVzc2FnZXMgPSBpbnB1dDxNZXNzYWdlQnViYmxlTWV0YWRhdGFbXT4oW10pO1xuICByZWFkb25seSBjdXJyZW50VXNlcklkID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IGlzT3BlbiA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSB0eXBpbmdVc2VycyA9IGlucHV0PHN0cmluZ1tdPihbXSk7XG4gIHJlYWRvbmx5IGlzTG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICByZWFkb25seSBzZW5kTWVzc2FnZSA9IG91dHB1dDxDaGF0Q29tcG9zZXJTZW5kRXZlbnQ+KCk7XG4gIHJlYWRvbmx5IGxvYWRNb3JlID0gb3V0cHV0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5IHJlYWN0aW9uQ2xpY2sgPSBvdXRwdXQ8eyBtc2dJZDogc3RyaW5nOyB0b2tlbjogc3RyaW5nIH0+KCk7XG4gIHJlYWRvbmx5IGRlbGV0ZU1lc3NhZ2UgPSBvdXRwdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSByZXBseVRvID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgZWRpdE1lc3NhZ2UgPSBvdXRwdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSB0eXBpbmcgPSBvdXRwdXQ8dm9pZD4oKTtcbiAgcmVhZG9ubHkgdm9pY2UgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG1zZ3NFbCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pj4oJ21zZ3MnKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVwbHlpbmdUbyA9IHNpZ25hbDxNZXNzYWdlUmVwbHlUbyB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXRCb3R0b20gPSBzaWduYWwodHJ1ZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBoYXNOZXcgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBsb2NhbGUgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5pMThuLmxhbmcoKSA9PT0gJ2VuJyA/ICdlbi1VUycgOiAnZXMtQ0wnKSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoJ0NoYXRXaW5kb3cnLCBDSEFUX1dJTkRPV19JMThOKTtcblxuICAgIC8vIEF1dG8tc2Nyb2xsIGFsIGZvbmRvIGN1YW5kbyBsbGVnYW4gbWVuc2FqZXMgeSBlbCB1c3VhcmlvIHlhIGVzdGFiYSBhYmFqb1xuICAgIC8vIChvIGVsIMO6bHRpbW8gbWVuc2FqZSBlcyBwcm9waW8pLiBTaSBlc3TDoSBsZXllbmRvIGFycmliYSwgbWFyY2EgXCJudWV2b3NcIi5cbiAgICBsZXQgcHJldkNvdW50ID0gMDtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3Qgcm93cyA9IHRoaXMucm93cygpO1xuICAgICAgY29uc3QgY291bnQgPSByb3dzLmxlbmd0aDtcbiAgICAgIGlmIChjb3VudCA9PT0gcHJldkNvdW50KSByZXR1cm47XG4gICAgICBjb25zdCBncmV3ID0gY291bnQgPiBwcmV2Q291bnQ7XG4gICAgICBwcmV2Q291bnQgPSBjb3VudDtcbiAgICAgIGNvbnN0IGxhc3QgPSB0aGlzLm1lc3NhZ2VzKClbdGhpcy5tZXNzYWdlcygpLmxlbmd0aCAtIDFdO1xuICAgICAgY29uc3QgbWluZSA9IGxhc3Q/LmlzTWluZSA/PyBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmF0Qm90dG9tKCkgfHwgbWluZSkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2Nyb2xsVG9Cb3R0b20oZmFsc2UpLCAwKTtcbiAgICAgIH0gZWxzZSBpZiAoZ3Jldykge1xuICAgICAgICB0aGlzLmhhc05ldy5zZXQodHJ1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm93cyA9IGNvbXB1dGVkPENoYXRSb3dbXT4oKCkgPT4ge1xuICAgIGNvbnN0IG1zZ3MgPSB0aGlzLm1lc3NhZ2VzKCk7XG4gICAgaWYgKG1zZ3MubGVuZ3RoID09PSAwKSByZXR1cm4gW107XG4gICAgY29uc3QgbGFiZWxzID0ge1xuICAgICAgdG9kYXk6IHRoaXMuaTE4bi50KCd0b2RheScsICdfZ2xvYmFsJyksXG4gICAgICB5ZXN0ZXJkYXk6IHRoaXMuaTE4bi50KCd5ZXN0ZXJkYXknLCAnX2dsb2JhbCcpLFxuICAgIH07XG4gICAgY29uc3Qgb3V0OiBDaGF0Um93W10gPSBbXTtcbiAgICBsZXQgcHJldkRheSA9ICcnO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbXNncy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgbSA9IG1zZ3NbaV07XG4gICAgICBjb25zdCBkID0gbS5jcmVhdGVkQXQgaW5zdGFuY2VvZiBEYXRlID8gbS5jcmVhdGVkQXQgOiBuZXcgRGF0ZShtLmNyZWF0ZWRBdCk7XG4gICAgICBjb25zdCBkYXkgPSBgJHtkLmdldEZ1bGxZZWFyKCl9LSR7ZC5nZXRNb250aCgpfS0ke2QuZ2V0RGF0ZSgpfWA7XG4gICAgICBjb25zdCBuZXdEYXkgPSBkYXkgIT09IHByZXZEYXk7XG4gICAgICBpZiAobmV3RGF5KSB7XG4gICAgICAgIG91dC5wdXNoKHsga2luZDogJ2RhdGUnLCBpZDogJ2RhdGUtJyArIGRheSwgbGFiZWw6IGZvcm1hdERhdGVTZXBhcmF0b3IoZCwgdGhpcy5sb2NhbGUoKSwgbGFiZWxzKSB9KTtcbiAgICAgICAgcHJldkRheSA9IGRheTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHByZXYgPSBtc2dzW2kgLSAxXTtcbiAgICAgIGNvbnN0IG5leHQgPSBtc2dzW2kgKyAxXTtcbiAgICAgIGNvbnN0IGZpcnN0SW5Hcm91cCA9IG5ld0RheSB8fCAhcHJldiB8fCBwcmV2LnNlbmRlcklkICE9PSBtLnNlbmRlcklkO1xuICAgICAgY29uc3QgbmV4dERheSA9IG5leHRcbiAgICAgICAgPyBgJHtuZXcgRGF0ZShuZXh0LmNyZWF0ZWRBdCkuZ2V0RnVsbFllYXIoKX0tJHtuZXcgRGF0ZShuZXh0LmNyZWF0ZWRBdCkuZ2V0TW9udGgoKX0tJHtuZXcgRGF0ZShuZXh0LmNyZWF0ZWRBdCkuZ2V0RGF0ZSgpfWBcbiAgICAgICAgOiAnJztcbiAgICAgIGNvbnN0IGxhc3RJbkdyb3VwID0gIW5leHQgfHwgbmV4dC5zZW5kZXJJZCAhPT0gbS5zZW5kZXJJZCB8fCBuZXh0RGF5ICE9PSBkYXk7XG4gICAgICBvdXQucHVzaCh7XG4gICAgICAgIGtpbmQ6ICdtc2cnLFxuICAgICAgICBpZDogbS5tc2dJZCxcbiAgICAgICAgbXNnOiBtLFxuICAgICAgICBzaG93TmFtZTogZmlyc3RJbkdyb3VwICYmICFtLmlzTWluZSxcbiAgICAgICAgc2hvd0F2YXRhcjogbGFzdEluR3JvdXAgJiYgIW0uaXNNaW5lLFxuICAgICAgICB0YWlsOiBsYXN0SW5Hcm91cCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gb3V0O1xuICB9KTtcblxuICBwcm90ZWN0ZWQgb25TY3JvbGwoKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSB0aGlzLm1zZ3NFbCgpPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghZWwpIHJldHVybjtcbiAgICBjb25zdCBuZWFyQm90dG9tID0gZWwuc2Nyb2xsSGVpZ2h0IC0gZWwuc2Nyb2xsVG9wIC0gZWwuY2xpZW50SGVpZ2h0IDwgODA7XG4gICAgdGhpcy5hdEJvdHRvbS5zZXQobmVhckJvdHRvbSk7XG4gICAgaWYgKG5lYXJCb3R0b20pIHRoaXMuaGFzTmV3LnNldChmYWxzZSk7XG4gICAgaWYgKGVsLnNjcm9sbFRvcCA8IDQwKSB0aGlzLmxvYWRNb3JlLmVtaXQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzY3JvbGxUb0JvdHRvbShzbW9vdGg6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMubXNnc0VsKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIGVsLnNjcm9sbFRvKHsgdG9wOiBlbC5zY3JvbGxIZWlnaHQsIGJlaGF2aW9yOiBzbW9vdGggPyAnc21vb3RoJyA6ICdhdXRvJyB9KTtcbiAgICB0aGlzLmF0Qm90dG9tLnNldCh0cnVlKTtcbiAgICB0aGlzLmhhc05ldy5zZXQoZmFsc2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uU2VuZChldmVudDogQ2hhdENvbXBvc2VyU2VuZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zZW5kTWVzc2FnZS5lbWl0KGV2ZW50KTtcbiAgICB0aGlzLnJlcGx5aW5nVG8uc2V0KG51bGwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQWN0aW9uKGV2ZW50OiBNZXNzYWdlQnViYmxlQWN0aW9uKTogdm9pZCB7XG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICBjYXNlICdyZXBseSc6IHtcbiAgICAgICAgY29uc3QgbSA9IHRoaXMubWVzc2FnZXMoKS5maW5kKHggPT4geC5tc2dJZCA9PT0gZXZlbnQubXNnSWQpO1xuICAgICAgICBpZiAobSkge1xuICAgICAgICAgIHRoaXMucmVwbHlpbmdUby5zZXQoeyBtc2dJZDogbS5tc2dJZCwgc2VuZGVyTmFtZTogbS5zZW5kZXJOYW1lLCBib2R5OiBtLmJvZHkgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXBseVRvLmVtaXQoZXZlbnQubXNnSWQpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2VkaXQnOlxuICAgICAgICB0aGlzLmVkaXRNZXNzYWdlLmVtaXQoZXZlbnQubXNnSWQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIHRoaXMuZGVsZXRlTWVzc2FnZS5lbWl0KGV2ZW50Lm1zZ0lkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyZWFjdCc6XG4gICAgICAgIHRoaXMucmVhY3Rpb25DbGljay5lbWl0KHsgbXNnSWQ6IGV2ZW50Lm1zZ0lkLCB0b2tlbjogZXZlbnQudG9rZW4gPz8gJ/CfkY0nIH0pO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCAnQ2hhdFdpbmRvdycpO1xuICB9XG59XG4iXX0=
@@ -111,11 +111,13 @@ export class ThreadPanelComponent {
111
111
  this.conversationSvc.stopTyping(conv.convId, orgId, appId);
112
112
  }
113
113
  }
114
- onSend(body) {
114
+ onSend(event) {
115
115
  const conv = this.conv();
116
116
  if (!conv || !this.conversationSvc)
117
117
  return;
118
- this.conversationSvc.sendMessage(conv.convId, body).subscribe();
118
+ // thread-panel no tiene pipeline de subida de adjuntos; solo envía el texto.
119
+ if (event.text)
120
+ this.conversationSvc.sendMessage(conv.convId, event.text).subscribe();
119
121
  }
120
122
  onReactionClick(event) {
121
123
  // Reacciones se implementan a nivel de app consumer
@@ -164,7 +166,7 @@ export class ThreadPanelComponent {
164
166
  </div>
165
167
  }
166
168
  </div>
167
- `, isInline: true, styles: [".thread-panel{display:flex;flex-direction:column;height:100%;background:var(--ion-background-color, #f4f5f8)}.thread-header{padding:12px 16px;border-bottom:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-card-background, var(--ion-background-color, #fff))}.thread-header .thread-title{font-size:1rem;font-weight:600;color:var(--ion-text-color, #000);margin:0}.thread-loading{display:flex;align-items:center;justify-content:center;flex:1;gap:10px;color:var(--ion-color-medium, #92949c);font-size:.875rem}.thread-chat{flex:1;overflow:hidden;display:flex;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: ChatWindowComponent, selector: "val-chat-window", inputs: ["convId", "messages", "currentUserId", "isOpen", "typingUsers", "isLoading"], outputs: ["sendMessage", "loadMore", "reactionClick", "deleteMessage", "replyTo", "editMessage", "typing", "attach", "voice"] }] }); }
169
+ `, isInline: true, styles: [".thread-panel{display:flex;flex-direction:column;height:100%;background:var(--ion-background-color, #f4f5f8)}.thread-header{padding:12px 16px;border-bottom:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-card-background, var(--ion-background-color, #fff))}.thread-header .thread-title{font-size:1rem;font-weight:600;color:var(--ion-text-color, #000);margin:0}.thread-loading{display:flex;align-items:center;justify-content:center;flex:1;gap:10px;color:var(--ion-color-medium, #92949c);font-size:.875rem}.thread-chat{flex:1;overflow:hidden;display:flex;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: ChatWindowComponent, selector: "val-chat-window", inputs: ["convId", "messages", "currentUserId", "isOpen", "typingUsers", "isLoading"], outputs: ["sendMessage", "loadMore", "reactionClick", "deleteMessage", "replyTo", "editMessage", "typing", "voice"] }] }); }
168
170
  }
169
171
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ThreadPanelComponent, decorators: [{
170
172
  type: Component,
@@ -208,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
208
210
  }], title: [{
209
211
  type: Input
210
212
  }] } });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWFkLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvdGhyZWFkLXBhbmVsL3RocmVhZC1wYW5lbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFnQixjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUdsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFFM0UsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixFQUFFLEVBQUU7UUFDRixPQUFPLEVBQUUsMEJBQTBCO1FBQ25DLE1BQU0sRUFBRSxNQUFNO0tBQ2Y7SUFDRCxFQUFFLEVBQUU7UUFDRixPQUFPLEVBQUUseUJBQXlCO1FBQ2xDLE1BQU0sRUFBRSxRQUFRO0tBQ2pCO0NBQ0YsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQXNDSCxNQUFNLE9BQU8sb0JBQW9CO0lBbUIvQjtRQWxCVSxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdCLG9CQUFlLEdBQUcsTUFB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LEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQztJQUM1QyxDQUFDOytHQXBIVSxvQkFBb0I7bUdBQXBCLG9CQUFvQix3TEFqQ3JCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4QlQsbXFCQS9CUyxZQUFZLCtCQUFFLFVBQVUseUdBQUUsbUJBQW1COzs0RkFrQzVDLG9CQUFvQjtrQkFyQ2hDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsbUJBQW1CLENBQUMsWUFDOUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCVDt3REFTUSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE9uRGVzdHJveSwgaW5qZWN0LCBzaWduYWwsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW9uU3Bpbm5lciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IENvbnZlcnNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jaGF0L2NvbnZlcnNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFZBTFRFQ0hfQ0hBVF9DT05GSUcgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jaGF0L2NvbmZpZyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnZlcnNhdGlvbiwgTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NoYXQvdHlwZXMnO1xuaW1wb3J0IHsgTWVzc2FnZUJ1YmJsZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL21lc3NhZ2UtYnViYmxlL3R5cGVzJztcbmltcG9ydCB7IENoYXRXaW5kb3dDb21wb25lbnQgfSBmcm9tICcuLi9jaGF0LXdpbmRvdy9jaGF0LXdpbmRvdy5jb21wb25lbnQnO1xuXG5jb25zdCBUSFJFQURfUEFORUxfSTE4TiA9IHtcbiAgZXM6IHtcbiAgICBsb2FkaW5nOiAnQ2FyZ2FuZG8gY29udmVyc2FjaW9uLi4uJyxcbiAgICB0aHJlYWQ6ICdIaWxvJyxcbiAgfSxcbiAgZW46IHtcbiAgICBsb2FkaW5nOiAnTG9hZGluZyBjb252ZXJzYXRpb24uLi4nLFxuICAgIHRocmVhZDogJ1RocmVhZCcsXG4gIH0sXG59O1xuXG4vKipcbiAqIHZhbC10aHJlYWQtcGFuZWxcbiAqXG4gKiBQYW5lbCBkZSBoaWxvIGRlIGNvbnZlcnNhY2lvbiBhc29jaWFkbyBhIHVuYSBlbnRpZGFkIChwb3N0LCByZXF1ZXN0LCBldGMuKS5cbiAqIEludGVybmFtZW50ZSB1c2EgQ29udmVyc2F0aW9uU2VydmljZS5nZXRPckNyZWF0ZUZvckVudGl0eSgpIHBhcmEgaW5pY2lhbGl6YXJcbiAqIGxhIGNvbnZlcnNhY2lvbiB5IGx1ZWdvIHdhdGNoTWVzc2FnZXMoKSBwYXJhIGVzY3VjaGFyIGVuIHRpZW1wbyByZWFsLlxuICogUmVuZGVyaXphIHZhbC1jaGF0LXdpbmRvdyBjb24gbG9zIG1lbnNhamVzIHlhIG1hcGVhZG9zLlxuICpcbiAqIFJlcXVpZXJlIHByb3ZpZGVWYWx0ZWNoQ2hhdCgpIHkgcHJvdmlkZVZhbHRlY2hGaXJlYmFzZSgpIGVuIG1haW4udHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtdGhyZWFkLXBhbmVsXG4gKiAgIGVudGl0eVR5cGU9XCJwb3N0XCJcbiAqICAgZW50aXR5SWQ9XCJwb3N0LWFiYzEyM1wiXG4gKiAgIGN1cnJlbnRVc2VySWQ9XCJ1c2VyLXh5elwiXG4gKiAgIHRpdGxlPVwiQ29tZW50YXJpb3NcIlxuICogLz5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXRocmVhZC1wYW5lbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvblNwaW5uZXIsIENoYXRXaW5kb3dDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ0aHJlYWQtcGFuZWxcIj5cbiAgICAgIEBpZiAodGl0bGUpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInRocmVhZC1oZWFkZXJcIj5cbiAgICAgICAgICA8cCBjbGFzcz1cInRocmVhZC10aXRsZVwiPnt7IHRpdGxlIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInRocmVhZC1sb2FkaW5nXCI+XG4gICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJkb3RzXCI+PC9pb24tc3Bpbm5lcj5cbiAgICAgICAgICA8c3Bhbj57eyBsb2FkaW5nVGV4dCgpIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwidGhyZWFkLWNoYXRcIj5cbiAgICAgICAgICA8dmFsLWNoYXQtd2luZG93XG4gICAgICAgICAgICBbY29udklkXT1cImNvbnYoKT8uY29udklkID8/ICcnXCJcbiAgICAgICAgICAgIFttZXNzYWdlc109XCJidWJibGVNZXNzYWdlcygpXCJcbiAgICAgICAgICAgIFtjdXJyZW50VXNlcklkXT1cImN1cnJlbnRVc2VySWRcIlxuICAgICAgICAgICAgW2lzT3Blbl09XCJpc0NvbnZPcGVuKClcIlxuICAgICAgICAgICAgW3R5cGluZ1VzZXJzXT1cInR5cGluZ1VzZXJzKClcIlxuICAgICAgICAgICAgW2lzTG9hZGluZ109XCJmYWxzZVwiXG4gICAgICAgICAgICAoc2VuZE1lc3NhZ2UpPVwib25TZW5kKCRldmVudClcIlxuICAgICAgICAgICAgKHJlYWN0aW9uQ2xpY2spPVwib25SZWFjdGlvbkNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgKGRlbGV0ZU1lc3NhZ2UpPVwib25EZWxldGVNZXNzYWdlKCRldmVudClcIlxuICAgICAgICAgICAgKHJlcGx5VG8pPVwib25SZXBseVRvKCRldmVudClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi90aHJlYWQtcGFuZWwuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGhyZWFkUGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjb252ZXJzYXRpb25TdmMgPSBpbmplY3QoQ29udmVyc2F0aW9uU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBjaGF0Q29uZmlnID0gaW5qZWN0KFZBTFRFQ0hfQ0hBVF9DT05GSUcsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBASW5wdXQoKSBlbnRpdHlUeXBlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgZW50aXR5SWQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBjdXJyZW50VXNlcklkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIGxvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG4gIHByb3RlY3RlZCBjb252ID0gc2lnbmFsPENvbnZlcnNhdGlvbiB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgbWVzc2FnZXMgPSBzaWduYWw8TWVzc2FnZVtdPihbXSk7XG4gIHByb3RlY3RlZCB0eXBpbmdVc2VycyA9IHNpZ25hbDxzdHJpbmdbXT4oW10pO1xuXG4gIHByaXZhdGUgbXNnU3ViPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHR5cGluZ1N1Yj86IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cygnVGhyZWFkUGFuZWwnLCBUSFJFQURfUEFORUxfSTE4Tik7XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuY29udmVyc2F0aW9uU3ZjIHx8ICF0aGlzLmVudGl0eVR5cGUgfHwgIXRoaXMuZW50aXR5SWQpIHtcbiAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb252ZXJzYXRpb24gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgdGhpcy5jb252ZXJzYXRpb25TdmMuZ2V0T3JDcmVhdGVGb3JFbnRpdHkodGhpcy5lbnRpdHlUeXBlLCB0aGlzLmVudGl0eUlkKVxuICAgICAgKTtcbiAgICAgIHRoaXMuY29udi5zZXQoY29udmVyc2F0aW9uKTtcblxuICAgICAgY29uc3Qgb3JnSWQgPSB0aGlzLmdldE9yZ0lkKCk7XG4gICAgICBjb25zdCBhcHBJZCA9IHRoaXMuY2hhdENvbmZpZz8uYXBwSWQgPz8gJyc7XG5cbiAgICAgIGlmIChvcmdJZCAmJiBhcHBJZCkge1xuICAgICAgICB0aGlzLm1zZ1N1YiA9IHRoaXMuY29udmVyc2F0aW9uU3ZjXG4gICAgICAgICAgLndhdGNoTWVzc2FnZXMoY29udmVyc2F0aW9uLmNvbnZJZCwgb3JnSWQsIGFwcElkKVxuICAgICAgICAgIC5zdWJzY3JpYmUobXNncyA9PiB0aGlzLm1lc3NhZ2VzLnNldChtc2dzKSk7XG5cbiAgICAgICAgdGhpcy50eXBpbmdTdWIgPSB0aGlzLmNvbnZlcnNhdGlvblN2Y1xuICAgICAgICAgIC53YXRjaFR5cGluZyhjb252ZXJzYXRpb24uY29udklkLCBvcmdJZCwgYXBwSWQpXG4gICAgICAgICAgLnN1YnNjcmliZSh1c2VycyA9PiB0aGlzLnR5cGluZ1VzZXJzLnNldCh1c2VycykpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignW1RocmVhZFBhbmVsXSBFcnJvciBhbCBpbmljaWFsaXphciBjb252ZXJzYWNpb246JywgZXJyKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5tc2dTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy50eXBpbmdTdWI/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICBjb25zdCBjb252ID0gdGhpcy5jb252KCk7XG4gICAgY29uc3Qgb3JnSWQgPSB0aGlzLmdldE9yZ0lkKCk7XG4gICAgY29uc3QgYXBwSWQgPSB0aGlzLmNoYXRDb25maWc/LmFwcElkID8/ICcnO1xuICAgIGlmIChjb252ICYmIG9yZ0lkICYmIGFwcElkICYmIHRoaXMuY29udmVyc2F0aW9uU3ZjKSB7XG4gICAgICB0aGlzLmNvbnZlcnNhdGlvblN2Yy5zdG9wVHlwaW5nKGNvbnYuY29udklkLCBvcmdJZCwgYXBwSWQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpc0NvbnZPcGVuID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb252KCk/LnNldHRpbmdzPy5pc09wZW4gPT09IHRydWUpO1xuXG4gIHByb3RlY3RlZCBsb2FkaW5nVGV4dCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB0aGlzLmkxOG4udCgnbG9hZGluZycsICdUaHJlYWRQYW5lbCcpO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgYnViYmxlTWVzc2FnZXMgPSBjb21wdXRlZCgoKTogTWVzc2FnZUJ1YmJsZU1ldGFkYXRhW10gPT4ge1xuICAgIGNvbnN0IHVpZCA9IHRoaXMuY3VycmVudFVzZXJJZCB8fCB0aGlzLmF1dGg/LnVzZXIoKT8udXNlcklkIHx8ICcnO1xuICAgIHJldHVybiB0aGlzLm1lc3NhZ2VzKCkubWFwKG1zZyA9PiAoe1xuICAgICAgbXNnSWQ6IG1zZy5pZCxcbiAgICAgIHNlbmRlcklkOiBtc2cuc2VuZGVySWQsXG4gICAgICBzZW5kZXJOYW1lOiBtc2cuc2VuZGVyTmFtZSxcbiAgICAgIHNlbmRlckF2YXRhcjogbXNnLnNlbmRlckF2YXRhcixcbiAgICAgIGJvZHk6IG1zZy5ib2R5LFxuICAgICAgdHlwZTogbXNnLnR5cGUsXG4gICAgICBjcmVhdGVkQXQ6IG1zZy5jcmVhdGVkQXQsXG4gICAgICBpc01pbmU6IG1zZy5zZW5kZXJJZCA9PT0gdWlkLFxuICAgICAgaXNEZWxldGVkOiBtc2cuaXNEZWxldGVkLFxuICAgICAgaXNFZGl0ZWQ6IG1zZy5pc0VkaXRlZCxcbiAgICAgIHJlcGx5VG86IG1zZy5yZXBseVRvLFxuICAgICAgYXR0YWNobWVudHM6IG1zZy5hdHRhY2htZW50cyxcbiAgICAgIHJlYWN0aW9uczogbXNnLnJlYWN0aW9ucyxcbiAgICAgIHN0YXR1czogbXNnLnN0YXR1cyxcbiAgICB9KSk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBvblNlbmQoYm9keTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY29udiA9IHRoaXMuY29udigpO1xuICAgIGlmICghY29udiB8fCAhdGhpcy5jb252ZXJzYXRpb25TdmMpIHJldHVybjtcbiAgICB0aGlzLmNvbnZlcnNhdGlvblN2Yy5zZW5kTWVzc2FnZShjb252LmNvbnZJZCwgYm9keSkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25SZWFjdGlvbkNsaWNrKGV2ZW50OiB7IG1zZ0lkOiBzdHJpbmc7IHRva2VuOiBzdHJpbmcgfSk6IHZvaWQge1xuICAgIC8vIFJlYWNjaW9uZXMgc2UgaW1wbGVtZW50YW4gYSBuaXZlbCBkZSBhcHAgY29uc3VtZXJcbiAgICBjb25zb2xlLmRlYnVnKCdbVGhyZWFkUGFuZWxdIHJlYWN0aW9uQ2xpY2snLCBldmVudCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25EZWxldGVNZXNzYWdlKG1zZ0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBjb252ID0gdGhpcy5jb252KCk7XG4gICAgaWYgKCFjb252IHx8ICF0aGlzLmNvbnZlcnNhdGlvblN2YykgcmV0dXJuO1xuICAgIHRoaXMuY29udmVyc2F0aW9uU3ZjLmRlbGV0ZU1lc3NhZ2UoY29udi5jb252SWQsIG1zZ0lkKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblJlcGx5VG8oX21zZ0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBJbXBsZW1lbnRhY2lvbiBmdXR1cmE6IHNlbGVjY2lvbmFyIG1lbnNhamUgZGUgcmVzcHVlc3RhXG4gIH1cblxuICBwcml2YXRlIGdldE9yZ0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aD8udXNlcigpPy5hY3RpdmVPcmcgPz8gJyc7XG4gIH1cbn1cbiJdfQ==
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWFkLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvdGhyZWFkLXBhbmVsL3RocmVhZC1wYW5lbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFnQixjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUdsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFFM0UsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixFQUFFLEVBQUU7UUFDRixPQUFPLEVBQUUsMEJBQTBCO1FBQ25DLE1BQU0sRUFBRSxNQUFNO0tBQ2Y7SUFDRCxFQUFFLEVBQUU7UUFDRixPQUFPLEVBQUUseUJBQXlCO1FBQ2xDLE1BQU0sRUFBRSxRQUFRO0tBQ2pCO0NBQ0YsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQXNDSCxNQUFNLE9BQU8sb0JBQW9CO0lBbUIvQjtRQWxCVSxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdCLG9CQUFlLEdBQUcsTUFB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SUFFTyxRQUFRO1FBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLFNBQVMsSUFBSSxFQUFFLENBQUM7SUFDNUMsQ0FBQzsrR0FySFUsb0JBQW9CO21HQUFwQixvQkFBb0Isd0xBakNyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJULG1xQkEvQlMsWUFBWSwrQkFBRSxVQUFVLHlHQUFFLG1CQUFtQjs7NEZBa0M1QyxvQkFBb0I7a0JBckNoQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixDQUFDLFlBQzlDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4QlQ7d0RBU1EsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3ksIGluamVjdCwgc2lnbmFsLCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElvblNwaW5uZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBDb252ZXJzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2hhdC9jb252ZXJzYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBWQUxURUNIX0NIQVRfQ09ORklHIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2hhdC9jb25maWcnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBDb252ZXJzYXRpb24sIE1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jaGF0L3R5cGVzJztcbmltcG9ydCB7IE1lc3NhZ2VCdWJibGVNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9tZXNzYWdlLWJ1YmJsZS90eXBlcyc7XG5pbXBvcnQgeyBDaGF0V2luZG93Q29tcG9uZW50IH0gZnJvbSAnLi4vY2hhdC13aW5kb3cvY2hhdC13aW5kb3cuY29tcG9uZW50JztcblxuY29uc3QgVEhSRUFEX1BBTkVMX0kxOE4gPSB7XG4gIGVzOiB7XG4gICAgbG9hZGluZzogJ0NhcmdhbmRvIGNvbnZlcnNhY2lvbi4uLicsXG4gICAgdGhyZWFkOiAnSGlsbycsXG4gIH0sXG4gIGVuOiB7XG4gICAgbG9hZGluZzogJ0xvYWRpbmcgY29udmVyc2F0aW9uLi4uJyxcbiAgICB0aHJlYWQ6ICdUaHJlYWQnLFxuICB9LFxufTtcblxuLyoqXG4gKiB2YWwtdGhyZWFkLXBhbmVsXG4gKlxuICogUGFuZWwgZGUgaGlsbyBkZSBjb252ZXJzYWNpb24gYXNvY2lhZG8gYSB1bmEgZW50aWRhZCAocG9zdCwgcmVxdWVzdCwgZXRjLikuXG4gKiBJbnRlcm5hbWVudGUgdXNhIENvbnZlcnNhdGlvblNlcnZpY2UuZ2V0T3JDcmVhdGVGb3JFbnRpdHkoKSBwYXJhIGluaWNpYWxpemFyXG4gKiBsYSBjb252ZXJzYWNpb24geSBsdWVnbyB3YXRjaE1lc3NhZ2VzKCkgcGFyYSBlc2N1Y2hhciBlbiB0aWVtcG8gcmVhbC5cbiAqIFJlbmRlcml6YSB2YWwtY2hhdC13aW5kb3cgY29uIGxvcyBtZW5zYWplcyB5YSBtYXBlYWRvcy5cbiAqXG4gKiBSZXF1aWVyZSBwcm92aWRlVmFsdGVjaENoYXQoKSB5IHByb3ZpZGVWYWx0ZWNoRmlyZWJhc2UoKSBlbiBtYWluLnRzLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLXRocmVhZC1wYW5lbFxuICogICBlbnRpdHlUeXBlPVwicG9zdFwiXG4gKiAgIGVudGl0eUlkPVwicG9zdC1hYmMxMjNcIlxuICogICBjdXJyZW50VXNlcklkPVwidXNlci14eXpcIlxuICogICB0aXRsZT1cIkNvbWVudGFyaW9zXCJcbiAqIC8+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC10aHJlYWQtcGFuZWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25TcGlubmVyLCBDaGF0V2luZG93Q29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwidGhyZWFkLXBhbmVsXCI+XG4gICAgICBAaWYgKHRpdGxlKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aHJlYWQtaGVhZGVyXCI+XG4gICAgICAgICAgPHAgY2xhc3M9XCJ0aHJlYWQtdGl0bGVcIj57eyB0aXRsZSB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aHJlYWQtbG9hZGluZ1wiPlxuICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiZG90c1wiPjwvaW9uLXNwaW5uZXI+XG4gICAgICAgICAgPHNwYW4+e3sgbG9hZGluZ1RleHQoKSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInRocmVhZC1jaGF0XCI+XG4gICAgICAgICAgPHZhbC1jaGF0LXdpbmRvd1xuICAgICAgICAgICAgW2NvbnZJZF09XCJjb252KCk/LmNvbnZJZCA/PyAnJ1wiXG4gICAgICAgICAgICBbbWVzc2FnZXNdPVwiYnViYmxlTWVzc2FnZXMoKVwiXG4gICAgICAgICAgICBbY3VycmVudFVzZXJJZF09XCJjdXJyZW50VXNlcklkXCJcbiAgICAgICAgICAgIFtpc09wZW5dPVwiaXNDb252T3BlbigpXCJcbiAgICAgICAgICAgIFt0eXBpbmdVc2Vyc109XCJ0eXBpbmdVc2VycygpXCJcbiAgICAgICAgICAgIFtpc0xvYWRpbmddPVwiZmFsc2VcIlxuICAgICAgICAgICAgKHNlbmRNZXNzYWdlKT1cIm9uU2VuZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChyZWFjdGlvbkNsaWNrKT1cIm9uUmVhY3Rpb25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgIChkZWxldGVNZXNzYWdlKT1cIm9uRGVsZXRlTWVzc2FnZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChyZXBseVRvKT1cIm9uUmVwbHlUbygkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vdGhyZWFkLXBhbmVsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRocmVhZFBhbmVsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcm90ZWN0ZWQgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgY29udmVyc2F0aW9uU3ZjID0gaW5qZWN0KENvbnZlcnNhdGlvblNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgY2hhdENvbmZpZyA9IGluamVjdChWQUxURUNIX0NIQVRfQ09ORklHLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIGF1dGggPSBpbmplY3QoQXV0aFNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgQElucHV0KCkgZW50aXR5VHlwZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGVudGl0eUlkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgY3VycmVudFVzZXJJZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCBsb2FkaW5nID0gc2lnbmFsKHRydWUpO1xuICBwcm90ZWN0ZWQgY29udiA9IHNpZ25hbDxDb252ZXJzYXRpb24gfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIG1lc3NhZ2VzID0gc2lnbmFsPE1lc3NhZ2VbXT4oW10pO1xuICBwcm90ZWN0ZWQgdHlwaW5nVXNlcnMgPSBzaWduYWw8c3RyaW5nW10+KFtdKTtcblxuICBwcml2YXRlIG1zZ1N1Yj86IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSB0eXBpbmdTdWI/OiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoJ1RocmVhZFBhbmVsJywgVEhSRUFEX1BBTkVMX0kxOE4pO1xuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmNvbnZlcnNhdGlvblN2YyB8fCAhdGhpcy5lbnRpdHlUeXBlIHx8ICF0aGlzLmVudGl0eUlkKSB7XG4gICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgY29udmVyc2F0aW9uID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgIHRoaXMuY29udmVyc2F0aW9uU3ZjLmdldE9yQ3JlYXRlRm9yRW50aXR5KHRoaXMuZW50aXR5VHlwZSwgdGhpcy5lbnRpdHlJZClcbiAgICAgICk7XG4gICAgICB0aGlzLmNvbnYuc2V0KGNvbnZlcnNhdGlvbik7XG5cbiAgICAgIGNvbnN0IG9yZ0lkID0gdGhpcy5nZXRPcmdJZCgpO1xuICAgICAgY29uc3QgYXBwSWQgPSB0aGlzLmNoYXRDb25maWc/LmFwcElkID8/ICcnO1xuXG4gICAgICBpZiAob3JnSWQgJiYgYXBwSWQpIHtcbiAgICAgICAgdGhpcy5tc2dTdWIgPSB0aGlzLmNvbnZlcnNhdGlvblN2Y1xuICAgICAgICAgIC53YXRjaE1lc3NhZ2VzKGNvbnZlcnNhdGlvbi5jb252SWQsIG9yZ0lkLCBhcHBJZClcbiAgICAgICAgICAuc3Vic2NyaWJlKG1zZ3MgPT4gdGhpcy5tZXNzYWdlcy5zZXQobXNncykpO1xuXG4gICAgICAgIHRoaXMudHlwaW5nU3ViID0gdGhpcy5jb252ZXJzYXRpb25TdmNcbiAgICAgICAgICAud2F0Y2hUeXBpbmcoY29udmVyc2F0aW9uLmNvbnZJZCwgb3JnSWQsIGFwcElkKVxuICAgICAgICAgIC5zdWJzY3JpYmUodXNlcnMgPT4gdGhpcy50eXBpbmdVc2Vycy5zZXQodXNlcnMpKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tUaHJlYWRQYW5lbF0gRXJyb3IgYWwgaW5pY2lhbGl6YXIgY29udmVyc2FjaW9uOicsIGVycik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubXNnU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMudHlwaW5nU3ViPy51bnN1YnNjcmliZSgpO1xuXG4gICAgY29uc3QgY29udiA9IHRoaXMuY29udigpO1xuICAgIGNvbnN0IG9yZ0lkID0gdGhpcy5nZXRPcmdJZCgpO1xuICAgIGNvbnN0IGFwcElkID0gdGhpcy5jaGF0Q29uZmlnPy5hcHBJZCA/PyAnJztcbiAgICBpZiAoY29udiAmJiBvcmdJZCAmJiBhcHBJZCAmJiB0aGlzLmNvbnZlcnNhdGlvblN2Yykge1xuICAgICAgdGhpcy5jb252ZXJzYXRpb25TdmMuc3RvcFR5cGluZyhjb252LmNvbnZJZCwgb3JnSWQsIGFwcElkKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNDb252T3BlbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29udigpPy5zZXR0aW5ncz8uaXNPcGVuID09PSB0cnVlKTtcblxuICBwcm90ZWN0ZWQgbG9hZGluZ1RleHQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoJ2xvYWRpbmcnLCAnVGhyZWFkUGFuZWwnKTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGJ1YmJsZU1lc3NhZ2VzID0gY29tcHV0ZWQoKCk6IE1lc3NhZ2VCdWJibGVNZXRhZGF0YVtdID0+IHtcbiAgICBjb25zdCB1aWQgPSB0aGlzLmN1cnJlbnRVc2VySWQgfHwgdGhpcy5hdXRoPy51c2VyKCk/LnVzZXJJZCB8fCAnJztcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlcygpLm1hcChtc2cgPT4gKHtcbiAgICAgIG1zZ0lkOiBtc2cuaWQsXG4gICAgICBzZW5kZXJJZDogbXNnLnNlbmRlcklkLFxuICAgICAgc2VuZGVyTmFtZTogbXNnLnNlbmRlck5hbWUsXG4gICAgICBzZW5kZXJBdmF0YXI6IG1zZy5zZW5kZXJBdmF0YXIsXG4gICAgICBib2R5OiBtc2cuYm9keSxcbiAgICAgIHR5cGU6IG1zZy50eXBlLFxuICAgICAgY3JlYXRlZEF0OiBtc2cuY3JlYXRlZEF0LFxuICAgICAgaXNNaW5lOiBtc2cuc2VuZGVySWQgPT09IHVpZCxcbiAgICAgIGlzRGVsZXRlZDogbXNnLmlzRGVsZXRlZCxcbiAgICAgIGlzRWRpdGVkOiBtc2cuaXNFZGl0ZWQsXG4gICAgICByZXBseVRvOiBtc2cucmVwbHlUbyxcbiAgICAgIGF0dGFjaG1lbnRzOiBtc2cuYXR0YWNobWVudHMsXG4gICAgICByZWFjdGlvbnM6IG1zZy5yZWFjdGlvbnMsXG4gICAgICBzdGF0dXM6IG1zZy5zdGF0dXMsXG4gICAgfSkpO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgb25TZW5kKGV2ZW50OiB7IHRleHQ6IHN0cmluZzsgZmlsZXM6IEZpbGVbXSB9KTogdm9pZCB7XG4gICAgY29uc3QgY29udiA9IHRoaXMuY29udigpO1xuICAgIGlmICghY29udiB8fCAhdGhpcy5jb252ZXJzYXRpb25TdmMpIHJldHVybjtcbiAgICAvLyB0aHJlYWQtcGFuZWwgbm8gdGllbmUgcGlwZWxpbmUgZGUgc3ViaWRhIGRlIGFkanVudG9zOyBzb2xvIGVudsOtYSBlbCB0ZXh0by5cbiAgICBpZiAoZXZlbnQudGV4dCkgdGhpcy5jb252ZXJzYXRpb25TdmMuc2VuZE1lc3NhZ2UoY29udi5jb252SWQsIGV2ZW50LnRleHQpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uUmVhY3Rpb25DbGljayhldmVudDogeyBtc2dJZDogc3RyaW5nOyB0b2tlbjogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICAvLyBSZWFjY2lvbmVzIHNlIGltcGxlbWVudGFuIGEgbml2ZWwgZGUgYXBwIGNvbnN1bWVyXG4gICAgY29uc29sZS5kZWJ1ZygnW1RocmVhZFBhbmVsXSByZWFjdGlvbkNsaWNrJywgZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uRGVsZXRlTWVzc2FnZShtc2dJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY29udiA9IHRoaXMuY29udigpO1xuICAgIGlmICghY29udiB8fCAhdGhpcy5jb252ZXJzYXRpb25TdmMpIHJldHVybjtcbiAgICB0aGlzLmNvbnZlcnNhdGlvblN2Yy5kZWxldGVNZXNzYWdlKGNvbnYuY29udklkLCBtc2dJZCkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25SZXBseVRvKF9tc2dJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gSW1wbGVtZW50YWNpb24gZnV0dXJhOiBzZWxlY2Npb25hciBtZW5zYWplIGRlIHJlc3B1ZXN0YVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRPcmdJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmF1dGg/LnVzZXIoKT8uYWN0aXZlT3JnID8/ICcnO1xuICB9XG59XG4iXX0=
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '4.0.233';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4yMzMnO1xuIl19
5
+ export const VERSION = '4.0.235';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4yMzUnO1xuIl19