stream-chat-angular 4.26.0 → 4.26.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- export const version = '4.26.0';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2Fzc2V0cy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdmVyc2lvbiA9ICc0LjI2LjAnO1xuIl19
1
+ export const version = '4.26.1';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2Fzc2V0cy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdmVyc2lvbiA9ICc0LjI2LjEnO1xuIl19
@@ -135,6 +135,15 @@ export class MessageActionsBoxComponent {
135
135
  ? actionLabelOrTranslationKey
136
136
  : actionLabelOrTranslationKey(this.message);
137
137
  }
138
+ getMessageActionTemplateContext(item) {
139
+ return {
140
+ actionHandler: item.actionHandler,
141
+ isMine: this.isMine,
142
+ actionName: item.actionName,
143
+ message: this.message,
144
+ actionLabelOrTranslationKey: item.actionLabelOrTranslationKey,
145
+ };
146
+ }
138
147
  sendClicked() {
139
148
  this.sendMessageSubject.next();
140
149
  }
@@ -167,7 +176,7 @@ export class MessageActionsBoxComponent {
167
176
  }
168
177
  }
169
178
  MessageActionsBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: MessageActionsBoxComponent, deps: [{ token: i1.ChatClientService }, { token: i2.NotificationService }, { token: i3.ChannelService }, { token: i4.CustomTemplatesService }], target: i0.ɵɵFactoryTarget.Component });
170
- MessageActionsBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: MessageActionsBoxComponent, selector: "stream-message-actions-box", inputs: { isOpen: "isOpen", isMine: "isMine", message: "message", enabledActions: "enabledActions", customActions: "customActions" }, outputs: { displayedActionsCount: "displayedActionsCount", isEditing: "isEditing" }, viewQueries: [{ propertyName: "modalContent", first: true, predicate: ["modalContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #actionBox\n data-testid=\"action-box\"\n class=\"str-chat__message-actions-box str-chat__message-actions-box-angular\"\n [class.str-chat__message-actions-box--open]=\"true\"\n>\n <ul class=\"str-chat__message-actions-list\">\n <ng-container\n *ngFor=\"let item of visibleMessageActionItems; trackBy: trackByActionName\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n messageActionItemTemplate || defaultMessageActionItem;\n context: item\n \"\n ></ng-container>\n </ng-container>\n </ul>\n</div>\n\n<ng-template\n #defaultMessageActionItem\n let-actionName=\"actionName\"\n let-actionHandler=\"actionHandler\"\n let-actionLabelOrTranslationKey=\"actionLabelOrTranslationKey\"\n>\n <button\n class=\"str-chat__message-actions-list-item-button\"\n [attr.data-testid]=\"actionName + '-action'\"\n (click)=\"actionHandler(message, isMine)\"\n >\n <li class=\"str-chat__message-actions-list-item\">\n {{ getActionLabel(actionLabelOrTranslationKey) | translate }}\n </li>\n </button>\n</ng-template>\n\n<ng-container\n *ngTemplateOutlet=\"\n modalTemplate || defaultModal;\n context: getEditModalContext()\n \"\n></ng-container>\n\n<ng-template\n #defaultModal\n let-isOpen=\"isOpen\"\n let-isOpenChangeHandler=\"isOpenChangeHandler\"\n let-content=\"content\"\n>\n <stream-modal\n [isOpen]=\"isOpen\"\n (isOpenChange)=\"isOpenChangeHandler($event)\"\n [content]=\"content\"\n >\n </stream-modal>\n</ng-template>\n\n<ng-template #modalContent>\n <div class=\"str-chat__edit-message-form\" *ngIf=\"isEditModalOpen\">\n <ng-template\n #defaultInput\n let-messageInput=\"message\"\n let-messageUpdateHandler=\"messageUpdateHandler\"\n let-sendMessage$Input=\"sendMessage$\"\n >\n <stream-message-input\n [message]=\"messageInput\"\n (messageUpdate)=\"messageUpdateHandler()\"\n [sendMessage$]=\"sendMessage$Input\"\n ></stream-message-input>\n </ng-template>\n <ng-container\n *ngTemplateOutlet=\"\n messageInputTemplate || defaultInput;\n context: getMessageInputContext()\n \"\n >\n </ng-container>\n\n <stream-notification-list></stream-notification-list>\n <div\n class=\"\n str-chat__message-team-form-footer\n str-chat__message-team-form-footer-angular\n \"\n >\n <div class=\"str-chat__edit-message-form-options\">\n <button\n class=\"str-chat__edit-message-cancel\"\n translate\n data-testid=\"cancel-button\"\n (click)=\"modalClosed()\"\n >\n streamChat.Cancel\n </button>\n <button\n type=\"submit\"\n translate\n class=\"str-chat__edit-message-send\"\n data-testid=\"send-button\"\n (click)=\"sendClicked()\"\n (keyup.enter)=\"sendClicked()\"\n >\n streamChat.Send\n </button>\n </div>\n </div>\n </div>\n</ng-template>\n", components: [{ type: i5.ModalComponent, selector: "stream-modal", inputs: ["isOpen", "content"], outputs: ["isOpenChange"] }, { type: i6.MessageInputComponent, selector: "stream-message-input", inputs: ["isFileUploadEnabled", "areMentionsEnabled", "mentionScope", "mode", "isMultipleFileUploadEnabled", "message", "sendMessage$", "inputMode"], outputs: ["messageUpdate"] }, { type: i7.NotificationListComponent, selector: "stream-notification-list" }], directives: [{ type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], pipes: { "translate": i9.TranslatePipe } });
179
+ MessageActionsBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: MessageActionsBoxComponent, selector: "stream-message-actions-box", inputs: { isOpen: "isOpen", isMine: "isMine", message: "message", enabledActions: "enabledActions", customActions: "customActions" }, outputs: { displayedActionsCount: "displayedActionsCount", isEditing: "isEditing" }, viewQueries: [{ propertyName: "modalContent", first: true, predicate: ["modalContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #actionBox\n data-testid=\"action-box\"\n class=\"str-chat__message-actions-box str-chat__message-actions-box-angular\"\n [class.str-chat__message-actions-box--open]=\"true\"\n>\n <ul class=\"str-chat__message-actions-list\">\n <ng-container\n *ngFor=\"let item of visibleMessageActionItems; trackBy: trackByActionName\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n messageActionItemTemplate || defaultMessageActionItem;\n context: getMessageActionTemplateContext(item)\n \"\n ></ng-container>\n </ng-container>\n </ul>\n</div>\n\n<ng-template\n #defaultMessageActionItem\n let-actionName=\"actionName\"\n let-actionHandler=\"actionHandler\"\n let-actionLabelOrTranslationKey=\"actionLabelOrTranslationKey\"\n>\n <button\n class=\"str-chat__message-actions-list-item-button\"\n [attr.data-testid]=\"actionName + '-action'\"\n (click)=\"actionHandler(message, isMine)\"\n >\n <li class=\"str-chat__message-actions-list-item\">\n {{ getActionLabel(actionLabelOrTranslationKey) | translate }}\n </li>\n </button>\n</ng-template>\n\n<ng-container\n *ngTemplateOutlet=\"\n modalTemplate || defaultModal;\n context: getEditModalContext()\n \"\n></ng-container>\n\n<ng-template\n #defaultModal\n let-isOpen=\"isOpen\"\n let-isOpenChangeHandler=\"isOpenChangeHandler\"\n let-content=\"content\"\n>\n <stream-modal\n [isOpen]=\"isOpen\"\n (isOpenChange)=\"isOpenChangeHandler($event)\"\n [content]=\"content\"\n >\n </stream-modal>\n</ng-template>\n\n<ng-template #modalContent>\n <div class=\"str-chat__edit-message-form\" *ngIf=\"isEditModalOpen\">\n <ng-template\n #defaultInput\n let-messageInput=\"message\"\n let-messageUpdateHandler=\"messageUpdateHandler\"\n let-sendMessage$Input=\"sendMessage$\"\n >\n <stream-message-input\n [message]=\"messageInput\"\n (messageUpdate)=\"messageUpdateHandler()\"\n [sendMessage$]=\"sendMessage$Input\"\n ></stream-message-input>\n </ng-template>\n <ng-container\n *ngTemplateOutlet=\"\n messageInputTemplate || defaultInput;\n context: getMessageInputContext()\n \"\n >\n </ng-container>\n\n <stream-notification-list></stream-notification-list>\n <div\n class=\"\n str-chat__message-team-form-footer\n str-chat__message-team-form-footer-angular\n \"\n >\n <div class=\"str-chat__edit-message-form-options\">\n <button\n class=\"str-chat__edit-message-cancel\"\n translate\n data-testid=\"cancel-button\"\n (click)=\"modalClosed()\"\n >\n streamChat.Cancel\n </button>\n <button\n type=\"submit\"\n translate\n class=\"str-chat__edit-message-send\"\n data-testid=\"send-button\"\n (click)=\"sendClicked()\"\n (keyup.enter)=\"sendClicked()\"\n >\n streamChat.Send\n </button>\n </div>\n </div>\n </div>\n</ng-template>\n", components: [{ type: i5.ModalComponent, selector: "stream-modal", inputs: ["isOpen", "content"], outputs: ["isOpenChange"] }, { type: i6.MessageInputComponent, selector: "stream-message-input", inputs: ["isFileUploadEnabled", "areMentionsEnabled", "mentionScope", "mode", "isMultipleFileUploadEnabled", "message", "sendMessage$", "inputMode"], outputs: ["messageUpdate"] }, { type: i7.NotificationListComponent, selector: "stream-notification-list" }], directives: [{ type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], pipes: { "translate": i9.TranslatePipe } });
171
180
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: MessageActionsBoxComponent, decorators: [{
172
181
  type: Component,
173
182
  args: [{
@@ -193,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
193
202
  type: ViewChild,
194
203
  args: ['modalContent', { static: true }]
195
204
  }] } });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1hY3Rpb25zLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdHJlYW0tY2hhdC1hbmd1bGFyL3NyYy9saWIvbWVzc2FnZS1hY3Rpb25zLWJveC9tZXNzYWdlLWFjdGlvbnMtYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9tZXNzYWdlLWFjdGlvbnMtYm94L21lc3NhZ2UtYWN0aW9ucy1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBR04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQWF6RDs7R0FFRztBQU1ILE1BQU0sT0FBTywwQkFBMEI7SUE0Q3JDLFlBQ1UsaUJBQW9DLEVBQ3BDLG1CQUF3QyxFQUN4QyxjQUE4QixFQUM5QixzQkFBOEM7UUFIOUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBL0N4RDs7O1dBR0c7UUFDTSxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3hCOztXQUVHO1FBQ00sV0FBTSxHQUFHLEtBQUssQ0FBQztRQUt4Qjs7V0FFRztRQUNNLG1CQUFjLEdBQWEsRUFBRSxDQUFDO1FBQ3ZDOztXQUVHO1FBQ00sa0JBQWEsR0FBOEIsRUFBRSxDQUFDO1FBQ3ZEOztXQUVHO1FBQ2dCLDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDdEU7O1dBRUc7UUFDZ0IsY0FBUyxHQUFH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WSxTQUFTO3NCQUEzQixNQUFNO2dCQWFDLFlBQVk7c0JBRG5CLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENoYW5uZWxTZXJ2aWNlIH0gZnJvbSAnLi4vY2hhbm5lbC5zZXJ2aWNlJztcbmltcG9ydCB7IENoYXRDbGllbnRTZXJ2aWNlIH0gZnJvbSAnLi4vY2hhdC1jbGllbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDdXN0b21UZW1wbGF0ZXNTZXJ2aWNlIH0gZnJvbSAnLi4vY3VzdG9tLXRlbXBsYXRlcy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQge1xuICBDdXN0b21NZXNzYWdlQWN0aW9uSXRlbSxcbiAgTWVzc2FnZUFjdGlvbkJveEl0ZW1Db250ZXh0LFxuICBNZXNzYWdlQWN0aW9uSXRlbSxcbiAgTWVzc2FnZUlucHV0Q29udGV4dCxcbiAgTW9kYWxDb250ZXh0LFxuICBTdHJlYW1NZXNzYWdlLFxufSBmcm9tICcuLi90eXBlcyc7XG4vKipcbiAqIFRoZSBgTWVzc2FnZUFjdGlvbnNCb3hgIGNvbXBvbmVudCBkaXNwbGF5cyBhIGxpc3Qgb2YgbWVzc2FnZSBhY3Rpb25zIChpLmUgZWRpdCksIHRoYXQgY2FuIGJlIG9wZW5lZCBvciBjbG9zZWQuIFlvdSBjYW4gZmluZCB0aGUgW2xpc3Qgb2YgdGhlIHN1cHBvcnRlZCBhY3Rpb25zXSguLi9jb25jZXB0cy9tZXNzYWdlLWludGVyYWN0aW9ucy5tZHgpIGluIHRoZSBtZXNzYWdlIGludGVyYWN0aW9uIGd1aWRlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHJlYW0tbWVzc2FnZS1hY3Rpb25zLWJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXNzYWdlLWFjdGlvbnMtYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZUFjdGlvbnNCb3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGxpc3Qgc2hvdWxkIGJlIG9wZW5lZCBvciBjbG9zZWQuIEFkZGluZyBhIFVJIGVsZW1lbnQgdG8gb3BlbiBhbmQgY2xvc2UgdGhlIGxpc3QgaXMgdGhlIHBhcmVudCdzIGNvbXBvbmVudCByZXNwb25zaWJpbGl0eS5cbiAgICogQGRlcHJlY2F0ZWQgTm8gbmVlZCBmb3IgdGhpcyBzaW5jZSBbdGhlbWUtdjJdKC4uL3RoZW1pbmcvaW50cm9kdWN0aW9uLm1keClcbiAgICovXG4gIEBJbnB1dCgpIGlzT3BlbiA9IGZhbHNlO1xuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBtZXNzYWdlIGFjdGlvbnMgYXJlIGJlbG9uZ2luZyB0byBhIG1lc3NhZ2UgdGhhdCB3YXMgc2VudCBieSB0aGUgY3VycmVudCB1c2VyIG9yIG5vdC5cbiAgICovXG4gIEBJbnB1dCgpIGlzTWluZSA9IGZhbHNlO1xuICAvKipcbiAgICogVGhlIG1lc3NhZ2UgdGhlIGFjdGlvbnMgd2lsbCBiZSBleGVjdXRlZCBvblxuICAgKi9cbiAgQElucHV0KCkgbWVzc2FnZTogU3RyZWFtTWVzc2FnZSB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIFtjaGFubmVsIGNhcGFiaWxpdGllc10oaHR0cHM6Ly9nZXRzdHJlYW0uaW8vY2hhdC9kb2NzL2phdmFzY3JpcHQvY2hhbm5lbF9jYXBhYmlsaXRpZXMvP2xhbmd1YWdlPWphdmFzY3JpcHQpIHRoYXQgYXJlIGVuYWJsZWQgZm9yIHRoZSBjdXJyZW50IHVzZXIsIHRoZSBsaXN0IG9mIFtzdXBwb3J0ZWQgaW50ZXJhY3Rpb25zXSguLi9jb25jZXB0cy9tZXNzYWdlLWludGVyYWN0aW9ucy5tZHgpIGNhbiBiZSBmb3VuZCBpbiBvdXIgbWVzc2FnZSBpbnRlcmFjdGlvbiBndWlkZS4gVW5hdGhvcml6ZWQgYWN0aW9ucyB3b24ndCBiZSBkaXNwbGF5ZWQgb24gdGhlIFVJLlxuICAgKi9cbiAgQElucHV0KCkgZW5hYmxlZEFjdGlvbnM6IHN0cmluZ1tdID0gW107XG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgY3VzdG9tIG1lc3NhZ2UgYWN0aW9ucyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGFjdGlvbiBib3hcbiAgICovXG4gIEBJbnB1dCgpIGN1c3RvbUFjdGlvbnM6IEN1c3RvbU1lc3NhZ2VBY3Rpb25JdGVtW10gPSBbXTtcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgYXV0aG9yaXplZCBhY3Rpb25zIChpdCBjYW4gYmUgbGVzcyBvciBlcXVhbCB0aGFuIHRoZSBudW1iZXIgb2YgZW5hYmxlZCBhY3Rpb25zKVxuICAgKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGRpc3BsYXllZEFjdGlvbnNDb3VudCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAvKipcbiAgICogQW4gZXZlbnQgd2hpY2ggZW1pdHMgYHRydWVgIGlmIHRoZSBlZGl0IG1lc3NhZ2UgbW9kYWwgaXMgb3BlbiwgYW5kIGBmYWxzZWAgd2hlbiBpdCBpcyBjbG9zZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgaXNFZGl0aW5nID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBpc0VkaXRNb2RhbE9wZW4gPSBmYWxzZTtcbiAgbWVzc2FnZUlucHV0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPE1lc3NhZ2VJbnB1dENvbnRleHQ+IHwgdW5kZWZpbmVkO1xuICBtZXNzYWdlQWN0aW9uSXRlbVRlbXBsYXRlOlxuICAgIHwgVGVtcGxhdGVSZWY8TWVzc2FnZUFjdGlvbkJveEl0ZW1Db250ZXh0PlxuICAgIHwgdW5kZWZpbmVkO1xuICBtb2RhbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxNb2RhbENvbnRleHQ+IHwgdW5kZWZpbmVkO1xuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICB2aXNpYmxlTWVzc2FnZUFjdGlvbkl0ZW1zOiAoTWVzc2FnZUFjdGlvbkl0ZW0gfCBDdXN0b21NZXNzYWdlQWN0aW9uSXRlbSlbXSA9XG4gICAgW107XG4gIHNlbmRNZXNzYWdlJDogT2JzZXJ2YWJsZTx2b2lkPjtcbiAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlQWN0aW9uSXRlbXM6IE1lc3NhZ2VBY3Rpb25JdGVtW107XG4gIEBWaWV3Q2hpbGQoJ21vZGFsQ29udGVudCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgbW9kYWxDb250ZW50ITogVGVtcGxhdGVSZWY8dm9pZD47XG4gIHByaXZhdGUgc2VuZE1lc3NhZ2VTdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGF0Q2xpZW50U2VydmljZTogQ2hhdENsaWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbm5lbFNlcnZpY2U6IENoYW5uZWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgY3VzdG9tVGVtcGxhdGVzU2VydmljZTogQ3VzdG9tVGVtcGxhdGVzU2VydmljZVxuICApIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuY3VzdG9tVGVtcGxhdGVzU2VydmljZS5tZXNzYWdlSW5wdXRUZW1wbGF0ZSQuc3Vic2NyaWJlKFxuICAgICAgICAodGVtcGxhdGUpID0+ICh0aGlzLm1lc3NhZ2VJbnB1dFRlbXBsYXRlID0gdGVtcGxhdGUpXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuY3VzdG9tVGVtcGxhdGVzU2VydmljZS5tZXNzYWdlQWN0aW9uc0JveEl0ZW1UZW1wbGF0ZSQuc3Vic2NyaWJlKFxuICAgICAgICAodGVtcGxhdGUpID0+ICh0aGlzLm1lc3NhZ2VBY3Rpb25JdGVtVGVtcGxhdGUgPSB0ZW1wbGF0ZSlcbiAgICAgIClcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5jdXN0b21UZW1wbGF0ZXNTZXJ2aWNlLm1vZGFsVGVtcGxhdGUkLnN1YnNjcmliZShcbiAgICAgICAgKHRlbXBsYXRlKSA9PiAodGhpcy5tb2RhbFRlbXBsYXRlID0gdGVtcGxhdGUpXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLm1lc3NhZ2VBY3Rpb25JdGVtcyA9IFtcbiAgICAgIHtcbiAgICAgICAgYWN0aW9uTmFtZTogJ3F1b3RlJyxcbiAgICAgICAgYWN0aW9uTGFiZWxPclRyYW5zbGF0aW9uS2V5OiAnc3RyZWFtQ2hhdC5SZXBseScsXG4gICAgICAgIGFjdGlvbkhhbmRsZXI6IChtZXNzYWdlOiBTdHJlYW1NZXNzYWdlKSA9PlxuICAgICAgICAgIHRoaXMuY2hhbm5lbFNlcnZpY2Uuc2VsZWN0TWVzc2FnZVRvUXVvdGUobWVzc2FnZSksXG4gICAgICAgIGlzVmlzaWJsZTogKGVuYWJsZWRBY3Rpb25zOiBzdHJpbmdbXSkgPT5cbiAgICAgICAgICBlbmFibGVkQWN0aW9ucy5pbmRleE9mKCdxdW90ZS1tZXNzYWdlJykgIT09IC0xLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYWN0aW9uTmFtZTogJ3BpbicsXG4gICAgICAgIGFjdGlvbkxhYmVsT3JUcmFuc2xhdGlvbktleTogKG1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2UpID0+XG4gICAgICAgICAgbWVzc2FnZS5waW5uZWQgPyAnc3RyZWFtQ2hhdC5VbnBpbicgOiAnc3RyZWFtQ2hhdC5QaW4nLFxuICAgICAgICBhY3Rpb25IYW5kbGVyOiAobWVzc2FnZTogU3RyZWFtTWVzc2FnZSkgPT5cbiAgICAgICAgICBtZXNzYWdlLnBpbm5lZFxuICAgICAgICAgICAgPyB0aGlzLmNoYW5uZWxTZXJ2aWNlLnVucGluTWVzc2FnZShtZXNzYWdlKVxuICAgICAgICAgICAgOiB0aGlzLmNoYW5uZWxTZXJ2aWNlLnBpbk1lc3NhZ2UobWVzc2FnZSksXG4gICAgICAgIGlzVmlzaWJsZTogKGVuYWJsZWRBY3Rpb25zOiBzdHJpbmdbXSkgPT5cbiAgICAgICAgICBlbmFibGVkQWN0aW9ucy5pbmRleE9mKCdwaW4tbWVzc2FnZScpICE9PSAtMSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGFjdGlvbk5hbWU6ICdmbGFnJyxcbiAgICAgICAgYWN0aW9uTGFiZWxPclRyYW5zbGF0aW9uS2V5OiAnc3RyZWFtQ2hhdC5GbGFnJyxcbiAgICAgICAgYWN0aW9uSGFuZGxlcjogYXN5bmMgKG1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2UpID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5jaGF0Q2xpZW50U2VydmljZS5mbGFnTWVzc2FnZShtZXNzYWdlLmlkKTtcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5hZGRUZW1wb3JhcnlOb3RpZmljYXRpb24oXG4gICAgICAgICAgICAgICdzdHJlYW1DaGF0Lk1lc3NhZ2UgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGZsYWdnZWQnLFxuICAgICAgICAgICAgICAnc3VjY2VzcydcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuYWRkVGVtcG9yYXJ5Tm90aWZpY2F0aW9uKFxuICAgICAgICAgICAgICAnc3RyZWFtQ2hhdC5FcnJvciBhZGRpbmcgZmxhZydcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBpc1Zpc2libGU6IChlbmFibGVkQWN0aW9uczogc3RyaW5nW10sIGlzTWluZTogYm9vbGVhbikgPT5cbiAgICAgICAgICBlbmFibGVkQWN0aW9ucy5pbmRleE9mKCdmbGFnLW1lc3NhZ2UnKSAhPT0gLTEgJiYgIWlzTWluZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGFjdGlvbk5hbWU6ICdlZGl0JyxcbiAgICAgICAgYWN0aW9uTGFiZWxPclRyYW5zbGF0aW9uS2V5OiAnc3RyZWFtQ2hhdC5FZGl0IE1lc3NhZ2UnLFxuICAgICAgICBhY3Rpb25IYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0VkaXRpbmcuZW1pdCh0cnVlKTtcbiAgICAgICAgICB0aGlzLmlzRWRpdE1vZGFsT3BlbiA9IHRydWU7XG4gICAgICAgIH0sXG4gICAgICAgIGlzVmlzaWJsZTogKGVuYWJsZWRBY3Rpb25zOiBzdHJpbmdbXSwgaXNNaW5lOiBib29sZWFuKSA9PlxuICAgICAgICAgIChlbmFibGVkQWN0aW9ucy5pbmRleE9mKCd1cGRhdGUtb3duLW1lc3NhZ2UnKSAhPT0gLTEgJiYgaXNNaW5lKSB8fFxuICAgICAgICAgIGVuYWJsZWRBY3Rpb25zLmluZGV4T2YoJ3VwZGF0ZS1hbnktbWVzc2FnZScpICE9PSAtMSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGFjdGlvbk5hbWU6ICdkZWxldGUnLFxuICAgICAgICBhY3Rpb25MYWJlbE9yVHJhbnNsYXRpb25LZXk6ICdzdHJlYW1DaGF0LkRlbGV0ZScsXG4gICAgICAgIGFjdGlvbkhhbmRsZXI6IGFzeW5jIChtZXNzYWdlOiBTdHJlYW1NZXNzYWdlKSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY2hhbm5lbFNlcnZpY2UuZGVsZXRlTWVzc2FnZShtZXNzYWdlKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmFkZFRlbXBvcmFyeU5vdGlmaWNhdGlvbihcbiAgICAgICAgICAgICAgJ3N0cmVhbUNoYXQuRXJyb3IgZGVsZXRpbmcgbWVzc2FnZSdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBpc1Zpc2libGU6IChlbmFibGVkQWN0aW9uczogc3RyaW5nW10sIGlzTWluZTogYm9vbGVhbikgPT5cbiAgICAgICAgICAoKGVuYWJsZWRBY3Rpb25zLmluZGV4T2YoJ2RlbGV0ZScpICE9PSAtMSB8fFxuICAgICAgICAgICAgZW5hYmxlZEFjdGlvbnMuaW5kZXhPZignZGVsZXRlLW93bi1tZXNzYWdlJykgIT09IC0xKSAmJlxuICAgICAgICAgICAgaXNNaW5lKSB8fFxuICAgICAgICAgIGVuYWJsZWRBY3Rpb25zLmluZGV4T2YoJ2RlbGV0ZS1hbnknKSAhPT0gLTEgfHxcbiAgICAgICAgICBlbmFibGVkQWN0aW9ucy5pbmRleE9mKCdkZWxldGUtYW55LW1lc3NhZ2UnKSAhPT0gLTEsXG4gICAgICB9LFxuICAgIF07XG4gICAgdGhpcy5zZW5kTWVzc2FnZSQgPSB0aGlzLnNlbmRNZXNzYWdlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzLmlzTWluZSB8fFxuICAgICAgY2hhbmdlcy5lbmFibGVkQWN0aW9ucyB8fFxuICAgICAgY2hhbmdlcy5tZXNzYWdlIHx8XG4gICAgICBjaGFuZ2VzLmN1c3RvbUFjdGlvbnNcbiAgICApIHtcbiAgICAgIHRoaXMudmlzaWJsZU1lc3NhZ2VBY3Rpb25JdGVtcyA9IFtcbiAgICAgICAgLi4udGhpcy5tZXNzYWdlQWN0aW9uSXRlbXMsXG4gICAgICAgIC4uLnRoaXMuY3VzdG9tQWN0aW9ucyxcbiAgICAgIF0uZmlsdGVyKChpdGVtKSA9PlxuICAgICAgICBpdGVtLmlzVmlzaWJsZSh0aGlzLmVuYWJsZWRBY3Rpb25zLCB0aGlzLmlzTWluZSwgdGhpcy5tZXNzYWdlISlcbiAgICAgICk7XG4gICAgICB0aGlzLmRpc3BsYXllZEFjdGlvbnNDb3VudC5lbWl0KHRoaXMudmlzaWJsZU1lc3NhZ2VBY3Rpb25JdGVtcy5sZW5ndGgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzKSA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgZ2V0QWN0aW9uTGFiZWwoXG4gICAgYWN0aW9uTGFiZWxPclRyYW5zbGF0aW9uS2V5OiAoKG1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2UpID0+IHN0cmluZykgfCBzdHJpbmdcbiAgKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBhY3Rpb25MYWJlbE9yVHJhbnNsYXRpb25LZXkgPT09ICdzdHJpbmcnXG4gICAgICA/IGFjdGlvbkxhYmVsT3JUcmFuc2xhdGlvbktleVxuICAgICAgOiBhY3Rpb25MYWJlbE9yVHJhbnNsYXRpb25LZXkodGhpcy5tZXNzYWdlISk7XG4gIH1cblxuICBzZW5kQ2xpY2tlZCgpIHtcbiAgICB0aGlzLnNlbmRNZXNzYWdlU3ViamVjdC5uZXh0KCk7XG4gIH1cblxuICBtb2RhbENsb3NlZCA9ICgpID0+IHtcbiAgICB0aGlzLmlzRWRpdE1vZGFsT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuaXNFZGl0aW5nLmVtaXQoZmFsc2UpO1xuICB9O1xuXG4gIGdldE1lc3NhZ2VJbnB1dENvbnRleHQoKTogTWVzc2FnZUlucHV0Q29udGV4dCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZSxcbiAgICAgIG1lc3NhZ2VVcGRhdGVIYW5kbGVyOiB0aGlzLm1vZGFsQ2xvc2VkLFxuICAgICAgaXNGaWxlVXBsb2FkRW5hYmxlZDogdW5kZWZpbmVkLFxuICAgICAgYXJlTWVudGlvbnNFbmFibGVkOiB1bmRlZmluZWQsXG4gICAgICBpc011bHRpcGxlRmlsZVVwbG9hZEVuYWJsZWQ6IHVuZGVmaW5lZCxcbiAgICAgIG1lbnRpb25TY29wZTogdW5kZWZpbmVkLFxuICAgICAgbW9kZTogdW5kZWZpbmVkLFxuICAgICAgc2VuZE1lc3NhZ2UkOiB0aGlzLnNlbmRNZXNzYWdlJCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0RWRpdE1vZGFsQ29udGV4dCgpOiBNb2RhbENvbnRleHQge1xuICAgIHJldHVybiB7XG4gICAgICBpc09wZW46IHRoaXMuaXNFZGl0TW9kYWxPcGVuLFxuICAgICAgaXNPcGVuQ2hhbmdlSGFuZGxlcjogKGlzT3BlbikgPT4ge1xuICAgICAgICB0aGlzLmlzRWRpdE1vZGFsT3BlbiA9IGlzT3BlbjtcbiAgICAgICAgaWYgKCF0aGlzLmlzRWRpdE1vZGFsT3Blbikge1xuICAgICAgICAgIHRoaXMubW9kYWxDbG9zZWQoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGNvbnRlbnQ6IHRoaXMubW9kYWxDb250ZW50LFxuICAgIH07XG4gIH1cblxuICB0cmFja0J5QWN0aW9uTmFtZShcbiAgICBfOiBudW1iZXIsXG4gICAgaXRlbTogTWVzc2FnZUFjdGlvbkl0ZW0gfCBDdXN0b21NZXNzYWdlQWN0aW9uSXRlbVxuICApIHtcbiAgICByZXR1cm4gaXRlbS5hY3Rpb25OYW1lO1xuICB9XG59XG4iLCI8ZGl2XG4gICNhY3Rpb25Cb3hcbiAgZGF0YS10ZXN0aWQ9XCJhY3Rpb24tYm94XCJcbiAgY2xhc3M9XCJzdHItY2hhdF9fbWVzc2FnZS1hY3Rpb25zLWJveCBzdHItY2hhdF9fbWVzc2FnZS1hY3Rpb25zLWJveC1hbmd1bGFyXCJcbiAgW2NsYXNzLnN0ci1jaGF0X19tZXNzYWdlLWFjdGlvbnMtYm94LS1vcGVuXT1cInRydWVcIlxuPlxuICA8dWwgY2xhc3M9XCJzdHItY2hhdF9fbWVzc2FnZS1hY3Rpb25zLWxpc3RcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiB2aXNpYmxlTWVzc2FnZUFjdGlvbkl0ZW1zOyB0cmFja0J5OiB0cmFja0J5QWN0aW9uTmFtZVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIG1lc3NhZ2VBY3Rpb25JdGVtVGVtcGxhdGUgfHwgZGVmYXVsdE1lc3NhZ2VBY3Rpb25JdGVtO1xuICAgICAgICAgIGNvbnRleHQ6IGl0ZW1cbiAgICAgICAgXCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC91bD5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGVcbiAgI2RlZmF1bHRNZXNzYWdlQWN0aW9uSXRlbVxuICBsZXQtYWN0aW9uTmFtZT1cImFjdGlvbk5hbWVcIlxuICBsZXQtYWN0aW9uSGFuZGxlcj1cImFjdGlvbkhhbmRsZXJcIlxuICBsZXQtYWN0aW9uTGFiZWxPclRyYW5zbGF0aW9uS2V5PVwiYWN0aW9uTGFiZWxPclRyYW5zbGF0aW9uS2V5XCJcbj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwic3RyLWNoYXRfX21lc3NhZ2UtYWN0aW9ucy1saXN0LWl0ZW0tYnV0dG9uXCJcbiAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJhY3Rpb25OYW1lICsgJy1hY3Rpb24nXCJcbiAgICAoY2xpY2spPVwiYWN0aW9uSGFuZGxlcihtZXNzYWdlLCBpc01pbmUpXCJcbiAgPlxuICAgIDxsaSBjbGFzcz1cInN0ci1jaGF0X19tZXNzYWdlLWFjdGlvbnMtbGlzdC1pdGVtXCI+XG4gICAgICB7eyBnZXRBY3Rpb25MYWJlbChhY3Rpb25MYWJlbE9yVHJhbnNsYXRpb25LZXkpIHwgdHJhbnNsYXRlIH19XG4gICAgPC9saT5cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctY29udGFpbmVyXG4gICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgbW9kYWxUZW1wbGF0ZSB8fCBkZWZhdWx0TW9kYWw7XG4gICAgY29udGV4dDogZ2V0RWRpdE1vZGFsQ29udGV4dCgpXG4gIFwiXG4+PC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZVxuICAjZGVmYXVsdE1vZGFsXG4gIGxldC1pc09wZW49XCJpc09wZW5cIlxuICBsZXQtaXNPcGVuQ2hhbmdlSGFuZGxlcj1cImlzT3BlbkNoYW5nZUhhbmRsZXJcIlxuICBsZXQtY29udGVudD1cImNvbnRlbnRcIlxuPlxuICA8c3RyZWFtLW1vZGFsXG4gICAgW2lzT3Blbl09XCJpc09wZW5cIlxuICAgIChpc09wZW5DaGFuZ2UpPVwiaXNPcGVuQ2hhbmdlSGFuZGxlcigkZXZlbnQpXCJcbiAgICBbY29udGVudF09XCJjb250ZW50XCJcbiAgPlxuICA8L3N0cmVhbS1tb2RhbD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbW9kYWxDb250ZW50PlxuICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2VkaXQtbWVzc2FnZS1mb3JtXCIgKm5nSWY9XCJpc0VkaXRNb2RhbE9wZW5cIj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICNkZWZhdWx0SW5wdXRcbiAgICAgIGxldC1tZXNzYWdlSW5wdXQ9XCJtZXNzYWdlXCJcbiAgICAgIGxldC1tZXNzYWdlVXBkYXRlSGFuZGxlcj1cIm1lc3NhZ2VVcGRhdGVIYW5kbGVyXCJcbiAgICAgIGxldC1zZW5kTWVzc2FnZSRJbnB1dD1cInNlbmRNZXNzYWdlJFwiXG4gICAgPlxuICAgICAgPHN0cmVhbS1tZXNzYWdlLWlucHV0XG4gICAgICAgIFttZXNzYWdlXT1cIm1lc3NhZ2VJbnB1dFwiXG4gICAgICAgIChtZXNzYWdlVXBkYXRlKT1cIm1lc3NhZ2VVcGRhdGVIYW5kbGVyKClcIlxuICAgICAgICBbc2VuZE1lc3NhZ2UkXT1cInNlbmRNZXNzYWdlJElucHV0XCJcbiAgICAgID48L3N0cmVhbS1tZXNzYWdlLWlucHV0PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgbWVzc2FnZUlucHV0VGVtcGxhdGUgfHwgZGVmYXVsdElucHV0O1xuICAgICAgICBjb250ZXh0OiBnZXRNZXNzYWdlSW5wdXRDb250ZXh0KClcbiAgICAgIFwiXG4gICAgPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPHN0cmVhbS1ub3RpZmljYXRpb24tbGlzdD48L3N0cmVhbS1ub3RpZmljYXRpb24tbGlzdD5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIlxuICAgICAgICBzdHItY2hhdF9fbWVzc2FnZS10ZWFtLWZvcm0tZm9vdGVyXG4gICAgICAgIHN0ci1jaGF0X19tZXNzYWdlLXRlYW0tZm9ybS1mb290ZXItYW5ndWxhclxuICAgICAgXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2VkaXQtbWVzc2FnZS1mb3JtLW9wdGlvbnNcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwic3RyLWNoYXRfX2VkaXQtbWVzc2FnZS1jYW5jZWxcIlxuICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiY2FuY2VsLWJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cIm1vZGFsQ2xvc2VkKClcIlxuICAgICAgICA+XG4gICAgICAgICAgc3RyZWFtQ2hhdC5DYW5jZWxcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICBjbGFzcz1cInN0ci1jaGF0X19lZGl0LW1lc3NhZ2Utc2VuZFwiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJzZW5kLWJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbmRDbGlja2VkKClcIlxuICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJzZW5kQ2xpY2tlZCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHN0cmVhbUNoYXQuU2VuZFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1hY3Rpb25zLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdHJlYW0tY2hhdC1hbmd1bGFyL3NyYy9saWIvbWVzc2FnZS1hY3Rpb25zLWJveC9tZXNzYWdlLWFjdGlvbnMtYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9tZXNzYWdlLWFjdGlvbnMtYm94L21lc3NhZ2UtYWN0aW9ucy1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBR04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQWF6RDs7R0FFRztBQU1ILE1BQU0sT0FBTywwQkFBMEI7SUE0Q3JDLFlBQ1UsaUJBQW9DLEVBQ3BDLG1CQUF3QyxFQUN4QyxjQUE4QixFQUM5QixzQkFBOEM7UUFIOUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBL0N4RDs7O1dBR0c7UUFDTSxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3hCOztXQUVHO1FBQ00sV0FBTSxHQUFHLEtBQUssQ0FBQztRQUt4Qjs7V0FFRztRQUNNLG1CQUFjLEdBQWEsRUFBRSxDQUFDO1FBQ3ZDOztXQUVHO1FBQ00sa0JBQWEsR0FBOEIsRUFBRSxDQUFDO1FBQ3ZEOztXQUVHO1FBQ2dCLDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDdEU7O1dBRUc7UUFDZ0IsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDM0Qsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFNeEIsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQ25DLDhCQUF5QixHQUN2QixFQUFFLENBQUM7UUFLRyx1QkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBNElqRCxnQkFBVyxHQUFHLEdBQUcsRUFBRTtZQUNqQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztZQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUM7UUF4SUEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQ3pELENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxRQUFRLENBQUMsQ0FDckQsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyw4QkFBOEIsQ0FBQyxTQUFTLENBQ2xFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxRQUFRLENBQUMsQ0FDMUQsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUNsRCxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxDQUM5QyxDQUNGLENBQUM7UUFDRixJQUFJLENBQUMsa0JBQWtCLEdBQUc7WUFDeEI7Z0JBQ0UsVUFBVSxFQUFFLE9BQU87Z0JBQ25CLDJCQUEyQixFQUFFLGtCQUFrQjtnQkFDL0MsYUFBYSxFQUFFLENBQUMsT0FBc0IsRUFBRSxFQUFFLENBQ3hDLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDO2dCQUNuRCxTQUFTLEVBQUUsQ0FBQyxjQUF3QixFQUFFLEVBQUUsQ0FDdEMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDakQ7WUFDRDtnQkFDRSxVQUFVLEVBQUUsS0FBSztnQkFDakIsMkJBQTJCLEVBQUUsQ0FBQyxPQUFzQixFQUFFLEVBQUUsQ0FDdEQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQjtnQkFDeEQsYUFBYSxFQUFFLENBQUMsT0FBc0IsRUFBRSxFQUFFLENBQ3hDLE9BQU8sQ0FBQyxNQUFNO29CQUNaLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7b0JBQzNDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7Z0JBQzdDLFNBQVMsRUFBRSxDQUFDLGNBQXdCLEVBQUUsRUFBRSxDQUN0QyxjQUFjLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMvQztZQUNEO2dCQUNFLFVBQVUsRUFBRSxNQUFNO2dCQUNsQiwyQkFBMkIsRUFBRSxpQkFBaUI7Z0JBQzlDLGFBQWEsRUFBRSxDQUFPLE9BQXNCLEVBQUUsRUFBRTtvQkFDOUMsSUFBSTt3QkFDRixNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUNyRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsd0JBQXdCLENBQy9DLGtEQUFrRCxFQUNsRCxTQUFTLENBQ1YsQ0FBQztxQkFDSDtvQkFBQyxPQUFPLEdBQUcsRUFBRTt3QkFDWixJQUFJLENBQUMsbUJBQW1CLENBQUMsd0JBQXdCLENBQy9DLDhCQUE4QixDQUMvQixDQUFDO3FCQUNIO2dCQUNILENBQUMsQ0FBQTtnQkFDRCxTQUFTLEVBQUUsQ0FBQyxjQUF3QixFQUFFLE1BQWUsRUFBRSxFQUFFLENBQ3ZELGNBQWMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNO2FBQzNEO1lBQ0Q7Z0JBQ0UsVUFBVSxFQUFFLE1BQU07Z0JBQ2xCLDJCQUEyQixFQUFFLHlCQUF5QjtnQkFDdEQsYUFBYSxFQUFFLEdBQUcsRUFBRTtvQkFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO2dCQUM5QixDQUFDO2dCQUNELFNBQVMsRUFBRSxDQUFDLGNBQXdCLEVBQUUsTUFBZSxFQUFFLEVBQUUsQ0FDdkQsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDO29CQUMvRCxjQUFjLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3REO1lBQ0Q7Z0JBQ0UsVUFBVSxFQUFFLFFBQVE7Z0JBQ3BCLDJCQUEyQixFQUFFLG1CQUFtQjtnQkFDaEQsYUFBYSxFQUFFLENBQU8sT0FBc0IsRUFBRSxFQUFFO29CQUM5QyxJQUFJO3dCQUNGLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7cUJBQ2xEO29CQUFDLE9BQU8sS0FBSyxFQUFFO3dCQUNkLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx3QkFBd0IsQ0FDL0MsbUNBQW1DLENBQ3BDLENBQUM7cUJBQ0g7Z0JBQ0gsQ0FBQyxDQUFBO2dCQUNELFNBQVMsRUFBRSxDQUFDLGNBQXdCLEVBQUUsTUFBZSxFQUFFLEVBQUUsQ0FDdkQsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUN2QyxjQUFjLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7b0JBQ3BELE1BQU0sQ0FBQztvQkFDVCxjQUFjLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDM0MsY0FBYyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN0RDtTQUNGLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQ0UsT0FBTyxDQUFDLE1BQU07WUFDZCxPQUFPLENBQUMsY0FBYztZQUN0QixPQUFPLENBQUMsT0FBTztZQUNmLE9BQU8sQ0FBQyxhQUFhLEVBQ3JCO1lBQ0EsSUFBSSxDQUFDLHlCQUF5QixHQUFHO2dCQUMvQixHQUFHLElBQUksQ0FBQyxrQkFBa0I7Z0JBQzFCLEdBQUcsSUFBSSxDQUFDLGFBQWE7YUFDdEIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBUSxDQUFDLENBQ2hFLENBQUM7WUFDRixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN4RTtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxjQUFjLENBQ1osMkJBQTBFO1FBRTFFLE9BQU8sT0FBTywyQkFBMkIsS0FBSyxRQUFRO1lBQ3BELENBQUMsQ0FBQywyQkFBMkI7WUFDN0IsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxPQUFRLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsK0JBQStCLENBQzdCLElBQWlEO1FBRWpELE9BQU87WUFDTCxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLDJCQUEyQjtTQUM5RCxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQU9ELHNCQUFzQjtRQUNwQixPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLG9CQUFvQixFQUFFLElBQUksQ0FBQyxXQUFXO1lBQ3RDLG1CQUFtQixFQUFFLFNBQVM7WUFDOUIsa0JBQWtCLEVBQUUsU0FBUztZQUM3QiwyQkFBMkIsRUFBRSxTQUFTO1lBQ3RDLFlBQVksRUFBRSxTQUFTO1lBQ3ZCLElBQUksRUFBRSxTQUFTO1lBQ2YsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ2hDLENBQUM7SUFDSixDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE9BQU87WUFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDNUIsbUJBQW1CLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO29CQUN6QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7aUJBQ3BCO1lBQ0gsQ0FBQztZQUNELE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWTtTQUMzQixDQUFDO0lBQ0osQ0FBQztJQUVELGlCQUFpQixDQUNmLENBQVMsRUFDVCxJQUFpRDtRQUVqRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQzs7dUhBM05VLDBCQUEwQjsyR0FBMUIsMEJBQTBCLDhhQ2hDdkMsNC9GQThHQTsyRkQ5RWEsMEJBQTBCO2tCQUx0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFdBQVcsRUFBRSxzQ0FBc0M7b0JBQ25ELE1BQU0sRUFBRSxFQUFFO2lCQUNYOzRNQU1VLE1BQU07c0JBQWQsS0FBSztnQkFJRyxNQUFNO3NCQUFkLEtBQUs7Z0JBSUcsT0FBTztzQkFBZixLQUFLO2dCQUlHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBSUcsYUFBYTtzQkFBckIsS0FBSztnQkFJYSxxQkFBcUI7c0JBQXZDLE1BQU07Z0JBSVksU0FBUztzQkFBM0IsTUFBTTtnQkFhQyxZQUFZO3NCQURuQixTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDaGFubmVsU2VydmljZSB9IGZyb20gJy4uL2NoYW5uZWwuc2VydmljZSc7XG5pbXBvcnQgeyBDaGF0Q2xpZW50U2VydmljZSB9IGZyb20gJy4uL2NoYXQtY2xpZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VzdG9tVGVtcGxhdGVzU2VydmljZSB9IGZyb20gJy4uL2N1c3RvbS10ZW1wbGF0ZXMuc2VydmljZSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQ3VzdG9tTWVzc2FnZUFjdGlvbkl0ZW0sXG4gIE1lc3NhZ2VBY3Rpb25Cb3hJdGVtQ29udGV4dCxcbiAgTWVzc2FnZUFjdGlvbkl0ZW0sXG4gIE1lc3NhZ2VJbnB1dENvbnRleHQsXG4gIE1vZGFsQ29udGV4dCxcbiAgU3RyZWFtTWVzc2FnZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuLyoqXG4gKiBUaGUgYE1lc3NhZ2VBY3Rpb25zQm94YCBjb21wb25lbnQgZGlzcGxheXMgYSBsaXN0IG9mIG1lc3NhZ2UgYWN0aW9ucyAoaS5lIGVkaXQpLCB0aGF0IGNhbiBiZSBvcGVuZWQgb3IgY2xvc2VkLiBZb3UgY2FuIGZpbmQgdGhlIFtsaXN0IG9mIHRoZSBzdXBwb3J0ZWQgYWN0aW9uc10oLi4vY29uY2VwdHMvbWVzc2FnZS1pbnRlcmFjdGlvbnMubWR4KSBpbiB0aGUgbWVzc2FnZSBpbnRlcmFjdGlvbiBndWlkZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3RyZWFtLW1lc3NhZ2UtYWN0aW9ucy1ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVzc2FnZS1hY3Rpb25zLWJveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogW10sXG59KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VBY3Rpb25zQm94Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBsaXN0IHNob3VsZCBiZSBvcGVuZWQgb3IgY2xvc2VkLiBBZGRpbmcgYSBVSSBlbGVtZW50IHRvIG9wZW4gYW5kIGNsb3NlIHRoZSBsaXN0IGlzIHRoZSBwYXJlbnQncyBjb21wb25lbnQgcmVzcG9uc2liaWxpdHkuXG4gICAqIEBkZXByZWNhdGVkIE5vIG5lZWQgZm9yIHRoaXMgc2luY2UgW3RoZW1lLXYyXSguLi90aGVtaW5nL2ludHJvZHVjdGlvbi5tZHgpXG4gICAqL1xuICBASW5wdXQoKSBpc09wZW4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgbWVzc2FnZSBhY3Rpb25zIGFyZSBiZWxvbmdpbmcgdG8gYSBtZXNzYWdlIHRoYXQgd2FzIHNlbnQgYnkgdGhlIGN1cnJlbnQgdXNlciBvciBub3QuXG4gICAqL1xuICBASW5wdXQoKSBpc01pbmUgPSBmYWxzZTtcbiAgLyoqXG4gICAqIFRoZSBtZXNzYWdlIHRoZSBhY3Rpb25zIHdpbGwgYmUgZXhlY3V0ZWQgb25cbiAgICovXG4gIEBJbnB1dCgpIG1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2UgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBbY2hhbm5lbCBjYXBhYmlsaXRpZXNdKGh0dHBzOi8vZ2V0c3RyZWFtLmlvL2NoYXQvZG9jcy9qYXZhc2NyaXB0L2NoYW5uZWxfY2FwYWJpbGl0aWVzLz9sYW5ndWFnZT1qYXZhc2NyaXB0KSB0aGF0IGFyZSBlbmFibGVkIGZvciB0aGUgY3VycmVudCB1c2VyLCB0aGUgbGlzdCBvZiBbc3VwcG9ydGVkIGludGVyYWN0aW9uc10oLi4vY29uY2VwdHMvbWVzc2FnZS1pbnRlcmFjdGlvbnMubWR4KSBjYW4gYmUgZm91bmQgaW4gb3VyIG1lc3NhZ2UgaW50ZXJhY3Rpb24gZ3VpZGUuIFVuYXRob3JpemVkIGFjdGlvbnMgd29uJ3QgYmUgZGlzcGxheWVkIG9uIHRoZSBVSS5cbiAgICovXG4gIEBJbnB1dCgpIGVuYWJsZWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuICAvKipcbiAgICogQSBsaXN0IG9mIGN1c3RvbSBtZXNzYWdlIGFjdGlvbnMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBhY3Rpb24gYm94XG4gICAqL1xuICBASW5wdXQoKSBjdXN0b21BY3Rpb25zOiBDdXN0b21NZXNzYWdlQWN0aW9uSXRlbVtdID0gW107XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGF1dGhvcml6ZWQgYWN0aW9ucyAoaXQgY2FuIGJlIGxlc3Mgb3IgZXF1YWwgdGhhbiB0aGUgbnVtYmVyIG9mIGVuYWJsZWQgYWN0aW9ucylcbiAgICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBkaXNwbGF5ZWRBY3Rpb25zQ291bnQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IHdoaWNoIGVtaXRzIGB0cnVlYCBpZiB0aGUgZWRpdCBtZXNzYWdlIG1vZGFsIGlzIG9wZW4sIGFuZCBgZmFsc2VgIHdoZW4gaXQgaXMgY2xvc2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGlzRWRpdGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgaXNFZGl0TW9kYWxPcGVuID0gZmFsc2U7XG4gIG1lc3NhZ2VJbnB1dFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxNZXNzYWdlSW5wdXRDb250ZXh0PiB8IHVuZGVmaW5lZDtcbiAgbWVzc2FnZUFjdGlvbkl0ZW1UZW1wbGF0ZTpcbiAgICB8IFRlbXBsYXRlUmVmPE1lc3NhZ2VBY3Rpb25Cb3hJdGVtQ29udGV4dD5cbiAgICB8IHVuZGVmaW5lZDtcbiAgbW9kYWxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8TW9kYWxDb250ZXh0PiB8IHVuZGVmaW5lZDtcbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgdmlzaWJsZU1lc3NhZ2VBY3Rpb25JdGVtczogKE1lc3NhZ2VBY3Rpb25JdGVtIHwgQ3VzdG9tTWVzc2FnZUFjdGlvbkl0ZW0pW10gPVxuICAgIFtdO1xuICBzZW5kTWVzc2FnZSQ6IE9ic2VydmFibGU8dm9pZD47XG4gIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZUFjdGlvbkl0ZW1zOiBNZXNzYWdlQWN0aW9uSXRlbVtdO1xuICBAVmlld0NoaWxkKCdtb2RhbENvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcml2YXRlIG1vZGFsQ29udGVudCE6IFRlbXBsYXRlUmVmPHZvaWQ+O1xuICBwcml2YXRlIHNlbmRNZXNzYWdlU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhdENsaWVudFNlcnZpY2U6IENoYXRDbGllbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5uZWxTZXJ2aWNlOiBDaGFubmVsU2VydmljZSxcbiAgICBwcml2YXRlIGN1c3RvbVRlbXBsYXRlc1NlcnZpY2U6IEN1c3RvbVRlbXBsYXRlc1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmN1c3RvbVRlbXBsYXRlc1NlcnZpY2UubWVzc2FnZUlucHV0VGVtcGxhdGUkLnN1YnNjcmliZShcbiAgICAgICAgKHRlbXBsYXRlKSA9PiAodGhpcy5tZXNzYWdlSW5wdXRUZW1wbGF0ZSA9IHRlbXBsYXRlKVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmN1c3RvbVRlbXBsYXRlc1NlcnZpY2UubWVzc2FnZUFjdGlvbnNCb3hJdGVtVGVtcGxhdGUkLnN1YnNjcmliZShcbiAgICAgICAgKHRlbXBsYXRlKSA9PiAodGhpcy5tZXNzYWdlQWN0aW9uSXRlbVRlbXBsYXRlID0gdGVtcGxhdGUpXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuY3VzdG9tVGVtcGxhdGVzU2VydmljZS5tb2RhbFRlbXBsYXRlJC5zdWJzY3JpYmUoXG4gICAgICAgICh0ZW1wbGF0ZSkgPT4gKHRoaXMubW9kYWxUZW1wbGF0ZSA9IHRlbXBsYXRlKVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5tZXNzYWdlQWN0aW9uSXRlbXMgPSBbXG4gICAgICB7XG4gICAgICAgIGFjdGlvbk5hbWU6ICdxdW90ZScsXG4gICAgICAgIGFjdGlvbkxhYmVsT3JUcmFuc2xhdGlvbktleTogJ3N0cmVhbUNoYXQuUmVwbHknLFxuICAgICAgICBhY3Rpb25IYW5kbGVyOiAobWVzc2FnZTogU3RyZWFtTWVzc2FnZSkgPT5cbiAgICAgICAgICB0aGlzLmNoYW5uZWxTZXJ2aWNlLnNlbGVjdE1lc3NhZ2VUb1F1b3RlKG1lc3NhZ2UpLFxuICAgICAgICBpc1Zpc2libGU6IChlbmFibGVkQWN0aW9uczogc3RyaW5nW10pID0+XG4gICAgICAgICAgZW5hYmxlZEFjdGlvbnMuaW5kZXhPZigncXVvdGUtbWVzc2FnZScpICE9PSAtMSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGFjdGlvbk5hbWU6ICdwaW4nLFxuICAgICAgICBhY3Rpb25MYWJlbE9yVHJhbnNsYXRpb25LZXk6IChtZXNzYWdlOiBTdHJlYW1NZXNzYWdlKSA9PlxuICAgICAgICAgIG1lc3NhZ2UucGlubmVkID8gJ3N0cmVhbUNoYXQuVW5waW4nIDogJ3N0cmVhbUNoYXQuUGluJyxcbiAgICAgICAgYWN0aW9uSGFuZGxlcjogKG1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2UpID0+XG4gICAgICAgICAgbWVzc2FnZS5waW5uZWRcbiAgICAgICAgICAgID8gdGhpcy5jaGFubmVsU2VydmljZS51bnBpbk1lc3NhZ2UobWVzc2FnZSlcbiAgICAgICAgICAgIDogdGhpcy5jaGFubmVsU2VydmljZS5waW5NZXNzYWdlKG1lc3NhZ2UpLFxuICAgICAgICBpc1Zpc2libGU6IChlbmFibGVkQWN0aW9uczogc3RyaW5nW10pID0+XG4gICAgICAgICAgZW5hYmxlZEFjdGlvbnMuaW5kZXhPZigncGluLW1lc3NhZ2UnKSAhPT0gLTEsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBhY3Rpb25OYW1lOiAnZmxhZycsXG4gICAgICAgIGFjdGlvbkxhYmVsT3JUcmFuc2xhdGlvbktleTogJ3N0cmVhbUNoYXQuRmxhZycsXG4gICAgICAgIGFjdGlvbkhhbmRsZXI6IGFzeW5jIChtZXNzYWdlOiBTdHJlYW1NZXNzYWdlKSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY2hhdENsaWVudFNlcnZpY2UuZmxhZ01lc3NhZ2UobWVzc2FnZS5pZCk7XG4gICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuYWRkVGVtcG9yYXJ5Tm90aWZpY2F0aW9uKFxuICAgICAgICAgICAgICAnc3RyZWFtQ2hhdC5NZXNzYWdlIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBmbGFnZ2VkJyxcbiAgICAgICAgICAgICAgJ3N1Y2Nlc3MnXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmFkZFRlbXBvcmFyeU5vdGlmaWNhdGlvbihcbiAgICAgICAgICAgICAgJ3N0cmVhbUNoYXQuRXJyb3IgYWRkaW5nIGZsYWcnXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaXNWaXNpYmxlOiAoZW5hYmxlZEFjdGlvbnM6IHN0cmluZ1tdLCBpc01pbmU6IGJvb2xlYW4pID0+XG4gICAgICAgICAgZW5hYmxlZEFjdGlvbnMuaW5kZXhPZignZmxhZy1tZXNzYWdlJykgIT09IC0xICYmICFpc01pbmUsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBhY3Rpb25OYW1lOiAnZWRpdCcsXG4gICAgICAgIGFjdGlvbkxhYmVsT3JUcmFuc2xhdGlvbktleTogJ3N0cmVhbUNoYXQuRWRpdCBNZXNzYWdlJyxcbiAgICAgICAgYWN0aW9uSGFuZGxlcjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNFZGl0aW5nLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgdGhpcy5pc0VkaXRNb2RhbE9wZW4gPSB0cnVlO1xuICAgICAgICB9LFxuICAgICAgICBpc1Zpc2libGU6IChlbmFibGVkQWN0aW9uczogc3RyaW5nW10sIGlzTWluZTogYm9vbGVhbikgPT5cbiAgICAgICAgICAoZW5hYmxlZEFjdGlvbnMuaW5kZXhPZigndXBkYXRlLW93bi1tZXNzYWdlJykgIT09IC0xICYmIGlzTWluZSkgfHxcbiAgICAgICAgICBlbmFibGVkQWN0aW9ucy5pbmRleE9mKCd1cGRhdGUtYW55LW1lc3NhZ2UnKSAhPT0gLTEsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBhY3Rpb25OYW1lOiAnZGVsZXRlJyxcbiAgICAgICAgYWN0aW9uTGFiZWxPclRyYW5zbGF0aW9uS2V5OiAnc3RyZWFtQ2hhdC5EZWxldGUnLFxuICAgICAgICBhY3Rpb25IYW5kbGVyOiBhc3luYyAobWVzc2FnZTogU3RyZWFtTWVzc2FnZSkgPT4ge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNoYW5uZWxTZXJ2aWNlLmRlbGV0ZU1lc3NhZ2UobWVzc2FnZSk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5hZGRUZW1wb3JhcnlOb3RpZmljYXRpb24oXG4gICAgICAgICAgICAgICdzdHJlYW1DaGF0LkVycm9yIGRlbGV0aW5nIG1lc3NhZ2UnXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaXNWaXNpYmxlOiAoZW5hYmxlZEFjdGlvbnM6IHN0cmluZ1tdLCBpc01pbmU6IGJvb2xlYW4pID0+XG4gICAgICAgICAgKChlbmFibGVkQWN0aW9ucy5pbmRleE9mKCdkZWxldGUnKSAhPT0gLTEgfHxcbiAgICAgICAgICAgIGVuYWJsZWRBY3Rpb25zLmluZGV4T2YoJ2RlbGV0ZS1vd24tbWVzc2FnZScpICE9PSAtMSkgJiZcbiAgICAgICAgICAgIGlzTWluZSkgfHxcbiAgICAgICAgICBlbmFibGVkQWN0aW9ucy5pbmRleE9mKCdkZWxldGUtYW55JykgIT09IC0xIHx8XG4gICAgICAgICAgZW5hYmxlZEFjdGlvbnMuaW5kZXhPZignZGVsZXRlLWFueS1tZXNzYWdlJykgIT09IC0xLFxuICAgICAgfSxcbiAgICBdO1xuICAgIHRoaXMuc2VuZE1lc3NhZ2UkID0gdGhpcy5zZW5kTWVzc2FnZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgY2hhbmdlcy5pc01pbmUgfHxcbiAgICAgIGNoYW5nZXMuZW5hYmxlZEFjdGlvbnMgfHxcbiAgICAgIGNoYW5nZXMubWVzc2FnZSB8fFxuICAgICAgY2hhbmdlcy5jdXN0b21BY3Rpb25zXG4gICAgKSB7XG4gICAgICB0aGlzLnZpc2libGVNZXNzYWdlQWN0aW9uSXRlbXMgPSBbXG4gICAgICAgIC4uLnRoaXMubWVzc2FnZUFjdGlvbkl0ZW1zLFxuICAgICAgICAuLi50aGlzLmN1c3RvbUFjdGlvbnMsXG4gICAgICBdLmZpbHRlcigoaXRlbSkgPT5cbiAgICAgICAgaXRlbS5pc1Zpc2libGUodGhpcy5lbmFibGVkQWN0aW9ucywgdGhpcy5pc01pbmUsIHRoaXMubWVzc2FnZSEpXG4gICAgICApO1xuICAgICAgdGhpcy5kaXNwbGF5ZWRBY3Rpb25zQ291bnQuZW1pdCh0aGlzLnZpc2libGVNZXNzYWdlQWN0aW9uSXRlbXMubGVuZ3RoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgocykgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGdldEFjdGlvbkxhYmVsKFxuICAgIGFjdGlvbkxhYmVsT3JUcmFuc2xhdGlvbktleTogKChtZXNzYWdlOiBTdHJlYW1NZXNzYWdlKSA9PiBzdHJpbmcpIHwgc3RyaW5nXG4gICkge1xuICAgIHJldHVybiB0eXBlb2YgYWN0aW9uTGFiZWxPclRyYW5zbGF0aW9uS2V5ID09PSAnc3RyaW5nJ1xuICAgICAgPyBhY3Rpb25MYWJlbE9yVHJhbnNsYXRpb25LZXlcbiAgICAgIDogYWN0aW9uTGFiZWxPclRyYW5zbGF0aW9uS2V5KHRoaXMubWVzc2FnZSEpO1xuICB9XG5cbiAgZ2V0TWVzc2FnZUFjdGlvblRlbXBsYXRlQ29udGV4dChcbiAgICBpdGVtOiBNZXNzYWdlQWN0aW9uSXRlbSB8IEN1c3RvbU1lc3NhZ2VBY3Rpb25JdGVtXG4gICk6IE1lc3NhZ2VBY3Rpb25Cb3hJdGVtQ29udGV4dDxhbnk+IHtcbiAgICByZXR1cm4ge1xuICAgICAgYWN0aW9uSGFuZGxlcjogaXRlbS5hY3Rpb25IYW5kbGVyLFxuICAgICAgaXNNaW5lOiB0aGlzLmlzTWluZSxcbiAgICAgIGFjdGlvbk5hbWU6IGl0ZW0uYWN0aW9uTmFtZSxcbiAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZSxcbiAgICAgIGFjdGlvbkxhYmVsT3JUcmFuc2xhdGlvbktleTogaXRlbS5hY3Rpb25MYWJlbE9yVHJhbnNsYXRpb25LZXksXG4gICAgfTtcbiAgfVxuXG4gIHNlbmRDbGlja2VkKCkge1xuICAgIHRoaXMuc2VuZE1lc3NhZ2VTdWJqZWN0Lm5leHQoKTtcbiAgfVxuXG4gIG1vZGFsQ2xvc2VkID0gKCkgPT4ge1xuICAgIHRoaXMuaXNFZGl0TW9kYWxPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5pc0VkaXRpbmcuZW1pdChmYWxzZSk7XG4gIH07XG5cbiAgZ2V0TWVzc2FnZUlucHV0Q29udGV4dCgpOiBNZXNzYWdlSW5wdXRDb250ZXh0IHtcbiAgICByZXR1cm4ge1xuICAgICAgbWVzc2FnZTogdGhpcy5tZXNzYWdlLFxuICAgICAgbWVzc2FnZVVwZGF0ZUhhbmRsZXI6IHRoaXMubW9kYWxDbG9zZWQsXG4gICAgICBpc0ZpbGVVcGxvYWRFbmFibGVkOiB1bmRlZmluZWQsXG4gICAgICBhcmVNZW50aW9uc0VuYWJsZWQ6IHVuZGVmaW5lZCxcbiAgICAgIGlzTXVsdGlwbGVGaWxlVXBsb2FkRW5hYmxlZDogdW5kZWZpbmVkLFxuICAgICAgbWVudGlvblNjb3BlOiB1bmRlZmluZWQsXG4gICAgICBtb2RlOiB1bmRlZmluZWQsXG4gICAgICBzZW5kTWVzc2FnZSQ6IHRoaXMuc2VuZE1lc3NhZ2UkLFxuICAgIH07XG4gIH1cblxuICBnZXRFZGl0TW9kYWxDb250ZXh0KCk6IE1vZGFsQ29udGV4dCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzT3BlbjogdGhpcy5pc0VkaXRNb2RhbE9wZW4sXG4gICAgICBpc09wZW5DaGFuZ2VIYW5kbGVyOiAoaXNPcGVuKSA9PiB7XG4gICAgICAgIHRoaXMuaXNFZGl0TW9kYWxPcGVuID0gaXNPcGVuO1xuICAgICAgICBpZiAoIXRoaXMuaXNFZGl0TW9kYWxPcGVuKSB7XG4gICAgICAgICAgdGhpcy5tb2RhbENsb3NlZCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgY29udGVudDogdGhpcy5tb2RhbENvbnRlbnQsXG4gICAgfTtcbiAgfVxuXG4gIHRyYWNrQnlBY3Rpb25OYW1lKFxuICAgIF86IG51bWJlcixcbiAgICBpdGVtOiBNZXNzYWdlQWN0aW9uSXRlbSB8IEN1c3RvbU1lc3NhZ2VBY3Rpb25JdGVtXG4gICkge1xuICAgIHJldHVybiBpdGVtLmFjdGlvbk5hbWU7XG4gIH1cbn1cbiIsIjxkaXZcbiAgI2FjdGlvbkJveFxuICBkYXRhLXRlc3RpZD1cImFjdGlvbi1ib3hcIlxuICBjbGFzcz1cInN0ci1jaGF0X19tZXNzYWdlLWFjdGlvbnMtYm94IHN0ci1jaGF0X19tZXNzYWdlLWFjdGlvbnMtYm94LWFuZ3VsYXJcIlxuICBbY2xhc3Muc3RyLWNoYXRfX21lc3NhZ2UtYWN0aW9ucy1ib3gtLW9wZW5dPVwidHJ1ZVwiXG4+XG4gIDx1bCBjbGFzcz1cInN0ci1jaGF0X19tZXNzYWdlLWFjdGlvbnMtbGlzdFwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHZpc2libGVNZXNzYWdlQWN0aW9uSXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlBY3Rpb25OYW1lXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgbWVzc2FnZUFjdGlvbkl0ZW1UZW1wbGF0ZSB8fCBkZWZhdWx0TWVzc2FnZUFjdGlvbkl0ZW07XG4gICAgICAgICAgY29udGV4dDogZ2V0TWVzc2FnZUFjdGlvblRlbXBsYXRlQ29udGV4dChpdGVtKVxuICAgICAgICBcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3VsPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZVxuICAjZGVmYXVsdE1lc3NhZ2VBY3Rpb25JdGVtXG4gIGxldC1hY3Rpb25OYW1lPVwiYWN0aW9uTmFtZVwiXG4gIGxldC1hY3Rpb25IYW5kbGVyPVwiYWN0aW9uSGFuZGxlclwiXG4gIGxldC1hY3Rpb25MYWJlbE9yVHJhbnNsYXRpb25LZXk9XCJhY3Rpb25MYWJlbE9yVHJhbnNsYXRpb25LZXlcIlxuPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJzdHItY2hhdF9fbWVzc2FnZS1hY3Rpb25zLWxpc3QtaXRlbS1idXR0b25cIlxuICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cImFjdGlvbk5hbWUgKyAnLWFjdGlvbidcIlxuICAgIChjbGljayk9XCJhY3Rpb25IYW5kbGVyKG1lc3NhZ2UsIGlzTWluZSlcIlxuICA+XG4gICAgPGxpIGNsYXNzPVwic3RyLWNoYXRfX21lc3NhZ2UtYWN0aW9ucy1saXN0LWl0ZW1cIj5cbiAgICAgIHt7IGdldEFjdGlvbkxhYmVsKGFjdGlvbkxhYmVsT3JUcmFuc2xhdGlvbktleSkgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2xpPlxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICBtb2RhbFRlbXBsYXRlIHx8IGRlZmF1bHRNb2RhbDtcbiAgICBjb250ZXh0OiBnZXRFZGl0TW9kYWxDb250ZXh0KClcbiAgXCJcbj48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlXG4gICNkZWZhdWx0TW9kYWxcbiAgbGV0LWlzT3Blbj1cImlzT3BlblwiXG4gIGxldC1pc09wZW5DaGFuZ2VIYW5kbGVyPVwiaXNPcGVuQ2hhbmdlSGFuZGxlclwiXG4gIGxldC1jb250ZW50PVwiY29udGVudFwiXG4+XG4gIDxzdHJlYW0tbW9kYWxcbiAgICBbaXNPcGVuXT1cImlzT3BlblwiXG4gICAgKGlzT3BlbkNoYW5nZSk9XCJpc09wZW5DaGFuZ2VIYW5kbGVyKCRldmVudClcIlxuICAgIFtjb250ZW50XT1cImNvbnRlbnRcIlxuICA+XG4gIDwvc3RyZWFtLW1vZGFsPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtb2RhbENvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fZWRpdC1tZXNzYWdlLWZvcm1cIiAqbmdJZj1cImlzRWRpdE1vZGFsT3BlblwiPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgI2RlZmF1bHRJbnB1dFxuICAgICAgbGV0LW1lc3NhZ2VJbnB1dD1cIm1lc3NhZ2VcIlxuICAgICAgbGV0LW1lc3NhZ2VVcGRhdGVIYW5kbGVyPVwibWVzc2FnZVVwZGF0ZUhhbmRsZXJcIlxuICAgICAgbGV0LXNlbmRNZXNzYWdlJElucHV0PVwic2VuZE1lc3NhZ2UkXCJcbiAgICA+XG4gICAgICA8c3RyZWFtLW1lc3NhZ2UtaW5wdXRcbiAgICAgICAgW21lc3NhZ2VdPVwibWVzc2FnZUlucHV0XCJcbiAgICAgICAgKG1lc3NhZ2VVcGRhdGUpPVwibWVzc2FnZVVwZGF0ZUhhbmRsZXIoKVwiXG4gICAgICAgIFtzZW5kTWVzc2FnZSRdPVwic2VuZE1lc3NhZ2UkSW5wdXRcIlxuICAgICAgPjwvc3RyZWFtLW1lc3NhZ2UtaW5wdXQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBtZXNzYWdlSW5wdXRUZW1wbGF0ZSB8fCBkZWZhdWx0SW5wdXQ7XG4gICAgICAgIGNvbnRleHQ6IGdldE1lc3NhZ2VJbnB1dENvbnRleHQoKVxuICAgICAgXCJcbiAgICA+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8c3RyZWFtLW5vdGlmaWNhdGlvbi1saXN0Pjwvc3RyZWFtLW5vdGlmaWNhdGlvbi1saXN0PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiXG4gICAgICAgIHN0ci1jaGF0X19tZXNzYWdlLXRlYW0tZm9ybS1mb290ZXJcbiAgICAgICAgc3RyLWNoYXRfX21lc3NhZ2UtdGVhbS1mb3JtLWZvb3Rlci1hbmd1bGFyXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fZWRpdC1tZXNzYWdlLWZvcm0tb3B0aW9uc1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJzdHItY2hhdF9fZWRpdC1tZXNzYWdlLWNhbmNlbFwiXG4gICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJjYW5jZWwtYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwibW9kYWxDbG9zZWQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICBzdHJlYW1DaGF0LkNhbmNlbFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgIGNsYXNzPVwic3RyLWNoYXRfX2VkaXQtbWVzc2FnZS1zZW5kXCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cInNlbmQtYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VuZENsaWNrZWQoKVwiXG4gICAgICAgICAgKGtleXVwLmVudGVyKT1cInNlbmRDbGlja2VkKClcIlxuICAgICAgICA+XG4gICAgICAgICAgc3RyZWFtQ2hhdC5TZW5kXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zdHJlYW0tY2hhdC1hbmd1bGFyL3NyYy9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEF0dGFjaG1lbnQsXG4gIENoYW5uZWwsXG4gIENoYW5uZWxNZW1iZXJSZXNwb25zZSxcbiAgQ29tbWFuZFJlc3BvbnNlLFxuICBFdmVudCxcbiAgRXh0ZW5kYWJsZUdlbmVyaWNzLFxuICBGb3JtYXRNZXNzYWdlUmVzcG9uc2UsXG4gIExpdGVyYWxTdHJpbmdGb3JVbmlvbixcbiAgTWVzc2FnZVJlc3BvbnNlQmFzZSxcbiAgTXV0ZSxcbiAgUmVhY3Rpb25SZXNwb25zZSxcbiAgVXNlcixcbiAgVXNlclJlc3BvbnNlLFxufSBmcm9tICdzdHJlYW0tY2hhdCc7XG5pbXBvcnQgeyBBdHRhY2htZW50U2VydmljZSB9IGZyb20gJy4vYXR0YWNobWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuL2ljb24vaWNvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBVbmtub3duVHlwZSA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG5leHBvcnQgdHlwZSBDdXN0b21UcmlnZ2VyID0ge1xuICBba2V5OiBzdHJpbmddOiB7XG4gICAgY29tcG9uZW50UHJvcHM6IFVua25vd25UeXBlO1xuICAgIGRhdGE6IFVua25vd25UeXBlO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyA9IEV4dGVuZGFibGVHZW5lcmljcyAmIHtcbiAgYXR0YWNobWVudFR5cGU6IERlZmF1bHRBdHRhY2htZW50VHlwZTtcbiAgY2hhbm5lbFR5cGU6IERlZmF1bHRDaGFubmVsVHlwZTtcbiAgY29tbWFuZFR5cGU6IExpdGVyYWxTdHJpbmdGb3JVbmlvbjtcbiAgZXZlbnRUeXBlOiBVbmtub3duVHlwZTtcbiAgbWVzc2FnZVR5cGU6IERlZmF1bHRNZXNzYWdlVHlwZTtcbiAgcmVhY3Rpb25UeXBlOiBVbmtub3duVHlwZTtcbiAgdXNlclR5cGU6IERlZmF1bHRVc2VyVHlwZTtcbn07XG5cbmV4cG9ydCB0eXBlIERlZmF1bHRBdHRhY2htZW50VHlwZSA9IFVua25vd25UeXBlICYge1xuICBhc3NldF91cmw/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBpbWFnZXM/OiBBcnJheTxBdHRhY2htZW50PERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+PjtcbiAgbWltZV90eXBlPzogc3RyaW5nO1xuICBpc0N1c3RvbUF0dGFjaG1lbnQ/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgRGVmYXVsdENoYW5uZWxUeXBlID0gVW5rbm93blR5cGUgJiB7XG4gIGltYWdlPzogc3RyaW5nO1xuICBtZW1iZXJfY291bnQ/OiBudW1iZXI7XG4gIHN1YnRpdGxlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgRGVmYXVsdENvbW1hbmRUeXBlID0gTGl0ZXJhbFN0cmluZ0ZvclVuaW9uO1xuXG5leHBvcnQgdHlwZSBEZWZhdWx0TWVzc2FnZVR5cGUgPSBVbmtub3duVHlwZSAmIHtcbiAgY3VzdG9tVHlwZT86ICdjaGFubmVsLmludHJvJyB8ICdtZXNzYWdlLmRhdGUnO1xuICBkYXRlPzogc3RyaW5nIHwgRGF0ZTtcbiAgZXJyb3JTdGF0dXNDb2RlPzogbnVtYmVyO1xuICBldmVudD86IEV2ZW50PERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+O1xuICB1bnJlYWQ/OiBib29sZWFuO1xuICByZWFkQnk6IFVzZXJSZXNwb25zZTxEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzPltdO1xuICB0cmFuc2xhdGlvbj86IHN0cmluZztcbiAgcXVvdGVkX21lc3NhZ2U/OiBNZXNzYWdlUmVzcG9uc2VCYXNlPERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+O1xufTtcblxuZXhwb3J0IHR5cGUgRGVmYXVsdFVzZXJUeXBlSW50ZXJuYWwgPSB7XG4gIGltYWdlPzogc3RyaW5nO1xuICBzdGF0dXM/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBEZWZhdWx0VXNlclR5cGUgPSBVbmtub3duVHlwZSAmXG4gIERlZmF1bHRVc2VyVHlwZUludGVybmFsICYge1xuICAgIG11dGVzPzogQXJyYXk8TXV0ZTxEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzPj47XG4gIH07XG5cbmV4cG9ydCB0eXBlIFN0cmVhbU1lc3NhZ2U8XG4gIFQgZXh0ZW5kcyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzID0gRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljc1xuPiA9IEZvcm1hdE1lc3NhZ2VSZXNwb25zZTxUPjtcblxuZXhwb3J0IHR5cGUgQXR0YWNobWVudFVwbG9hZDxcbiAgVCBleHRlbmRzIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MgPSBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzXG4+ID0ge1xuICBmaWxlOiBGaWxlO1xuICBzdGF0ZTogJ2Vycm9yJyB8ICdzdWNjZXNzJyB8ICd1cGxvYWRpbmcnO1xuICB1cmw/OiBzdHJpbmc7XG4gIHR5cGU6ICdpbWFnZScgfCAnZmlsZScgfCAndmlkZW8nO1xuICBwcmV2aWV3VXJpPzogc3RyaW5nIHwgQXJyYXlCdWZmZXI7XG4gIHRodW1iX3VybD86IHN0cmluZztcbiAgZnJvbUF0dGFjaG1lbnQ/OiBBdHRhY2htZW50PFQ+O1xufTtcblxuZXhwb3J0IHR5cGUgTWVudGlvbkF1dGNvbXBsZXRlTGlzdEl0ZW1Db250ZXh0ID0ge1xuICBpdGVtOiBNZW50aW9uQXV0Y29tcGxldGVMaXN0SXRlbTtcbn07XG5cbmV4cG9ydCB0eXBlIENvbW1hbmRBdXRvY29tcGxldGVMaXN0SXRlbUNvbnRleHQgPSB7XG4gIGl0ZW06IENvbWFuZEF1dG9jb21wbGV0ZUxpc3RJdGVtO1xufTtcblxuZXhwb3J0IHR5cGUgTWVudGlvbkF1dGNvbXBsZXRlTGlzdEl0ZW0gPSAoXG4gIHwgQ2hhbm5lbE1lbWJlclJlc3BvbnNlXG4gIHwgVXNlclJlc3BvbnNlXG4pICYge1xuICBhdXRvY29tcGxldGVMYWJlbDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQ29tYW5kQXV0b2NvbXBsZXRlTGlzdEl0ZW0gPSBDb21tYW5kUmVzcG9uc2UgJiB7XG4gIGF1dG9jb21wbGV0ZUxhYmVsOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25UeXBlID0gJ3N1Y2Nlc3MnIHwgJ2Vycm9yJyB8ICdpbmZvJztcblxuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uUGF5bG9hZDxUID0ge30+ID0ge1xuICBpZDogc3RyaW5nO1xuICB0eXBlOiBOb3RpZmljYXRpb25UeXBlO1xuICB0ZXh0Pzogc3RyaW5nO1xuICB0cmFuc2xhdGVQYXJhbXM/OiBPYmplY3Q7XG4gIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8VD47XG4gIHRlbXBsYXRlQ29udGV4dD86IFQ7XG4gIGRpc21pc3NGbjogRnVuY3Rpb247XG59O1xuXG5leHBvcnQgdHlwZSBDaGFubmVsUHJldmlld0NvbnRleHQ8XG4gIFQgZXh0ZW5kcyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzID0gRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljc1xuPiA9IHtcbiAgY2hhbm5lbDogQ2hhbm5lbDxUPjtcbn07XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2VJbnB1dENvbnRleHQgPSB7XG4gIGlzRmlsZVVwbG9hZEVuYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIGFyZU1lbnRpb25zRW5hYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgbWVudGlvblNjb3BlOiAnY2hhbm5lbCcgfCAnYXBwbGljYXRpb24nIHwgdW5kZWZpbmVkO1xuICBtb2RlOiAndGhyZWFkJyB8ICdtYWluJyB8IHVuZGVmaW5lZDtcbiAgaXNNdWx0aXBsZUZpbGVVcGxvYWRFbmFibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBtZXNzYWdlOiBTdHJlYW1NZXNzYWdlIHwgdW5kZWZpbmVkO1xuICBtZXNzYWdlVXBkYXRlSGFuZGxlcjogRnVuY3Rpb24gfCB1bmRlZmluZWQ7XG4gIHNlbmRNZXNzYWdlJDogT2JzZXJ2YWJsZTx2b2lkPjtcbn07XG5cbmV4cG9ydCB0eXBlIE1lbnRpb25UZW1wbGF0ZUNvbnRleHQgPSB7XG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgdXNlcjogVXNlclJlc3BvbnNlO1xufTtcblxuZXhwb3J0IHR5cGUgRW1vamlQaWNrZXJDb250ZXh0ID0ge1xuICBlbW9qaUlucHV0JDogU3ViamVjdDxzdHJpbmc+O1xufTtcblxuZXhwb3J0IHR5cGUgVHlwaW5nSW5kaWNhdG9yQ29udGV4dCA9IHtcbiAgdXNlcnNUeXBpbmckOiBPYnNlcnZhYmxlPFVzZXJSZXNwb25zZTxEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzPltdPjtcbn07XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2VDb250ZXh0ID0ge1xuICBtZXNzYWdlOiBTdHJlYW1NZXNzYWdlIHwgdW5kZWZpbmVkO1xuICBlbmFibGVkTWVzc2FnZUFjdGlvbnM6IHN0cmluZ1tdO1xuICBpc0xhc3RTZW50TWVzc2FnZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgbW9kZTogJ3RocmVhZCcgfCAnbWFpbic7XG4gIGlzSGlnaGxpZ2h0ZWQ6IGJvb2xlYW47XG4gIGN1c3RvbUFjdGlvbnM6IEN1c3RvbU1lc3NhZ2VBY3Rpb25JdGVtW107XG59O1xuXG5leHBvcnQgdHlwZSBDaGFubmVsQWN0aW9uc0NvbnRleHQ8XG4gIFQgZXh0ZW5kcyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzID0gRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljc1xuPiA9IHsgY2hhbm5lbDogQ2hhbm5lbDxUPiB9O1xuXG5leHBvcnQgdHlwZSBBdHRhY2htZW50TGlzdENvbnRleHQgPSB7XG4gIG1lc3NhZ2VJZDogc3RyaW5nO1xuICBhdHRhY2htZW50czogQXR0YWNobWVudDxEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzPltdO1xuICBwYXJlbnRNZXNzYWdlSWQ/OiBzdHJpbmc7XG4gIGltYWdlTW9kYWxTdGF0ZUNoYW5nZUhhbmRsZXI/OiAoc3RhdGU6ICdvcGVuZWQnIHwgJ2Nsb3NlZCcpID0+IHt9O1xufTtcblxuZXhwb3J0IHR5cGUgQXZhdGFyVHlwZSA9ICdjaGFubmVsJyB8ICd1c2VyJztcblxuZXhwb3J0IHR5cGUgQXZhdGFyTG9jYXRpb24gPVxuICB8ICdjaGFubmVsLXByZXZpZXcnXG4gIHwgJ2NoYW5uZWwtaGVhZGVyJ1xuICB8ICdtZXNzYWdlLXNlbmRlcidcbiAgfCAnbWVzc2FnZS1yZWFkZXInXG4gIHwgJ3F1b3RlZC1tZXNzYWdlLXNlbmRlcidcbiAgfCAnYXV0b2NvbXBsZXRlLWl0ZW0nXG4gIHwgJ3R5cGluZy1pbmRpY2F0b3InXG4gIHwgJ3JlYWN0aW9uJztcblxuZXhwb3J0IHR5cGUgQXZhdGFyQ29udGV4dCA9IHtcbiAgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBpbWFnZVVybDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBzaXplOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHR5cGU6IEF2YXRhclR5cGUgfCB1bmRlZmluZWQ7XG4gIGxvY2F0aW9uOiBBdmF0YXJMb2NhdGlvbiB8IHVuZGVmaW5lZDtcbiAgY2hhbm5lbD86IENoYW5uZWw8RGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcz47XG4gIHVzZXI/OiBVc2VyPERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+O1xuICBpbml0aWFsc1R5cGU/OiAnZmlyc3QtbGV0dGVyLW9mLWZpcnN0LXdvcmQnIHwgJ2ZpcnN0LWxldHRlci1vZi1lYWNoLXdvcmQnO1xufTtcblxuZXhwb3J0IHR5cGUgQXR0YWNobWVudFByZXZpZXdMaXN0Q29udGV4dCA9IHtcbiAgYXR0YWNobWVudFVwbG9hZHMkOiBPYnNlcnZhYmxlPEF0dGFjaG1lbnRVcGxvYWRbXT4gfCB1bmRlZmluZWQ7XG4gIHJldHJ5VXBsb2FkSGFuZGxlcjogKGY6IEZpbGUpID0+IGFueTtcbiAgZGVsZXRlVXBsb2FkSGFuZGxlcjogKHU6IEF0dGFjaG1lbnRVcGxvYWQpID0+IGFueTtcbn07XG5cbmV4cG9ydCB0eXBlIEljb25Db250ZXh0ID0ge1xuICBpY29uOiBJY29uIHwgdW5kZWZpbmVkO1xuICBzaXplOiBudW1iZXIgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgdHlwZSBMb2FkaW5nSW5kaWNhdG9yQ29udGV4dCA9IHtcbiAgc2l6ZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBjb2xvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IHR5cGUgTWVzc2FnZUFjdGlvbnNCb3hDb250ZXh0ID0ge1xuICBpc09wZW46IGJvb2xlYW47XG4gIGlzTWluZTogYm9vbGVhbjtcbiAgbWVzc2FnZTogU3RyZWFtTWVzc2FnZSB8IHVuZGVmaW5lZDtcbiAgZW5hYmxlZEFjdGlvbnM6IHN0cmluZ1tdO1xuICBjdXN0b21BY3Rpb25zOiBDdXN0b21NZXNzYWdlQWN0aW9uSXRlbVtdO1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgYmVjYXVzZSB0aGUgbmFtZSBjb250YWlucyB0eXBvcywgdXNlIHRoZSBgZGlzcGxheWVkQWN0aW9uc0NvdW50Q2hhbmdlSGFuZGxlcmAgaW5zdGVhZFxuICAgKi9cbiAgZGlzcGxheWVkQWN0aW9uc0NvdW50Q2hhbmVIYW5sZXI6IChjb3VudDogbnVtYmVyKSA9PiBhbnk7XG4gIGRpc3BsYXllZEFjdGlvbnNDb3VudENoYW5nZUhhbmRsZXI6IChjb3VudDogbnVtYmVyKSA9PiBhbnk7XG4gIGlzRWRpdGluZ0NoYW5nZUhhbmRsZXI6IChpc0VkaXRpbmc6IGJvb2xlYW4pID0+IGFueTtcbn07XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2VBY3Rpb25Cb3hJdGVtQ29udGV4dDxcbiAgVCBleHRlbmRzIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MgPSBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzXG4+ID0ge1xuICBhY3Rpb25OYW1lOiAncXVvdGUnIHwgJ3BpbicgfCAnZmxhZycgfCAnZWRpdCcgfCAnZGVsZXRlJyB8IHN0cmluZztcbiAgYWN0aW9uTGFiZWxPclRyYW5zbGF0aW9uS2V5OiAoKG1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2U8VD4pID0+IHN0cmluZykgfCBzdHJpbmc7XG4gIGFjdGlvbkhhbmRsZXI6ICgpID0+IGFueTtcbn07XG5cbnR5cGUgTWVzc2FnZUFjdGlvbkl0ZW1CYXNlPFxuICBUIGV4dGVuZHMgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyA9IERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3Ncbj4gPSB7XG4gIGFjdGlvbkxhYmVsT3JUcmFuc2xhdGlvbktleTogKChtZXNzYWdlOiBTdHJlYW1NZXNzYWdlPFQ+KSA9PiBzdHJpbmcpIHwgc3RyaW5nO1xuICBpc1Zpc2libGU6IChcbiAgICBlbmFibGVkQWN0aW9uczogc3RyaW5nW10sXG4gICAgaXNNaW5lOiBib29sZWFuLFxuICAgIG1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2U8VD5cbiAgKSA9PiBib29sZWFuO1xuICBhY3Rpb25IYW5kbGVyOiAobWVzc2FnZTogU3RyZWFtTWVzc2FnZTxUPiwgaXNNaW5lOiBib29sZWFuKSA9PiBhbnk7XG59O1xuXG5leHBvcnQgdHlwZSBNZXNzYWdlQWN0aW9uSXRlbTxcbiAgVCBleHRlbmRzIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MgPSBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzXG4+ID0gTWVzc2FnZUFjdGlvbkl0ZW1CYXNlPFQ+ICYge1xuICBhY3Rpb25OYW1lOiAncXVvdGUnIHwgJ3BpbicgfCAnZmxhZycgfCAnZWRpdCcgfCAnZGVsZXRlJztcbn07XG5cbmV4cG9ydCB0eXBlIEN1c3RvbU1lc3NhZ2VBY3Rpb25JdGVtPFxuICBUIGV4dGVuZHMgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyA9IERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3Ncbj4gPSBNZXNzYWdlQWN0aW9uSXRlbUJhc2U8VD4gJiB7XG4gIGFjdGlvbk5hbWU6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2VSZWFjdGlvbnNDb250ZXh0ID0ge1xuICBtZXNzYWdlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgbWVzc2FnZVJlYWN0aW9uQ291bnRzOiB7IFtrZXkgaW4gTWVzc2FnZVJlYWN0aW9uVHlwZV0/OiBudW1iZXIgfTtcbiAgaXNTZWxlY3Rvck9wZW46IGJvb2xlYW47XG4gIGxhdGVzdFJlYWN0aW9uczogUmVhY3Rpb25SZXNwb25zZTxEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzPltdO1xuICBvd25SZWFjdGlvbnM6IFJlYWN0aW9uUmVzcG9uc2U8RGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcz5bXTtcbiAgaXNTZWxlY3Rvck9wZW5DaGFuZ2VIYW5kbGVyOiAoaXNPcGVuOiBib29sZWFuKSA9PiBhbnk7XG59O1xuXG5leHBvcnQgdHlwZSBNb2RhbENvbnRleHQgPSB7XG4gIGlzT3BlbjogYm9vbGVhbjtcbiAgaXNPcGVuQ2hhbmdlSGFuZGxlcjogKGlzT3BlbjogYm9vbGVhbikgPT4gYW55O1xuICBjb250ZW50OiBUZW1wbGF0ZVJlZjx2b2lkPjtcbn07XG5cbmV4cG9ydCB0eXBlIE5vdGlmaWNhdGlvbkNvbnRleHQgPSB7XG4gIHR5cGU6IE5vdGlmaWNhdGlvblR5cGUgfCB1bmRlZmluZWQ7XG4gIGNvbnRlbnQ6IFRlbXBsYXRlUmVmPHZvaWQ+IHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IHR5cGUgVGhyZWFkSGVhZGVyQ29udGV4dCA9IHtcbiAgcGFyZW50TWVzc2FnZTogU3RyZWFtTWVzc2FnZSB8IHVuZGVmaW5lZDtcbiAgY2xvc2VUaHJlYWRIYW5kbGVyOiBGdW5jdGlvbjtcbn07XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2VSZWFjdGlvblR5cGUgPVxuICB8ICdhbmdyeSdcbiAgfCAnaGFoYSdcbiAgfCAnbGlrZSdcbiAgfCAnbG92ZSdcbiAgfCAnc2FkJ1xuICB8ICd3b3cnO1xuXG5leHBvcnQgdHlwZSBBdHRhY2htZW50Q29uZmlncmF0aW9uID0ge1xuICB1cmw6IHN0cmluZztcbiAgaGVpZ2h0OiBzdHJpbmc7XG4gIHdpZHRoOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBJbWFnZUF0dGFjaG1lbnRDb25maWd1cmF0aW9uID0gQXR0YWNobWVudENvbmZpZ3JhdGlvbiAmIHtcbiAgb3JpZ2luYWxIZWlnaHQ6IG51bWJlcjtcbiAgb3JpZ2luYWxXaWR0aDogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgVmlkZW9BdHRhY2htZW50Q29uZmlndXJhdGlvbiA9IEltYWdlQXR0YWNobWVudENvbmZpZ3VyYXRpb24gJiB7XG4gIHRodW1iVXJsPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgRGVsaXZlcmVkU3RhdHVzQ29udGV4dCA9IHtcbiAgbWVzc2FnZTogU3RyZWFtTWVzc2FnZTtcbn07XG5cbmV4cG9ydCB0eXBlIFNlbmRpbmdTdGF0dXNDb250ZXh0ID0ge1xuICBtZXNzYWdlOiBTdHJlYW1NZXNzYWdlO1xufTtcblxuZXhwb3J0IHR5cGUgUmVhZFN0YXR1c0NvbnRleHQgPSB7XG4gIG1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2U7XG4gIHJlYWRCeVRleHQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIENoYW5uZWxIZWFkZXJJbmZvQ29udGV4dDxcbiAgVCBleHRlbmRzIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MgPSBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzXG4+ID0geyBjaGFubmVsOiBDaGFubmVsPFQ+IH07XG5cbmV4cG9ydCB0eXBlIEN1c3RvbUF0dGFjaG1lbnRVcGxvYWRDb250ZXh0ID0ge1xuICBpc011bHRpcGxlRmlsZVVwbG9hZEVuYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIGF0dGFjaG1lbnRTZXJ2aWNlOiBBdHRhY2htZW50U2VydmljZTtcbn07XG5cbmV4cG9ydCB0eXBlIEF0dGFjaG1lbnRDb250ZXh0ID0ge1xuICBhdHRhY2htZW50OiBBdHRhY2htZW50PERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+O1xufTtcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zdHJlYW0tY2hhdC1hbmd1bGFyL3NyYy9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEF0dGFjaG1lbnQsXG4gIENoYW5uZWwsXG4gIENoYW5uZWxNZW1iZXJSZXNwb25zZSxcbiAgQ29tbWFuZFJlc3BvbnNlLFxuICBFdmVudCxcbiAgRXh0ZW5kYWJsZUdlbmVyaWNzLFxuICBGb3JtYXRNZXNzYWdlUmVzcG9uc2UsXG4gIExpdGVyYWxTdHJpbmdGb3JVbmlvbixcbiAgTWVzc2FnZVJlc3BvbnNlQmFzZSxcbiAgTXV0ZSxcbiAgUmVhY3Rpb25SZXNwb25zZSxcbiAgVXNlcixcbiAgVXNlclJlc3BvbnNlLFxufSBmcm9tICdzdHJlYW0tY2hhdCc7XG5pbXBvcnQgeyBBdHRhY2htZW50U2VydmljZSB9IGZyb20gJy4vYXR0YWNobWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuL2ljb24vaWNvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBVbmtub3duVHlwZSA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG5leHBvcnQgdHlwZSBDdXN0b21UcmlnZ2VyID0ge1xuICBba2V5OiBzdHJpbmddOiB7XG4gICAgY29tcG9uZW50UHJvcHM6IFVua25vd25UeXBlO1xuICAgIGRhdGE6IFVua25vd25UeXBlO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyA9IEV4dGVuZGFibGVHZW5lcmljcyAmIHtcbiAgYXR0YWNobWVudFR5cGU6IERlZmF1bHRBdHRhY2htZW50VHlwZTtcbiAgY2hhbm5lbFR5cGU6IERlZmF1bHRDaGFubmVsVHlwZTtcbiAgY29tbWFuZFR5cGU6IExpdGVyYWxTdHJpbmdGb3JVbmlvbjtcbiAgZXZlbnRUeXBlOiBVbmtub3duVHlwZTtcbiAgbWVzc2FnZVR5cGU6IERlZmF1bHRNZXNzYWdlVHlwZTtcbiAgcmVhY3Rpb25UeXBlOiBVbmtub3duVHlwZTtcbiAgdXNlclR5cGU6IERlZmF1bHRVc2VyVHlwZTtcbn07XG5cbmV4cG9ydCB0eXBlIERlZmF1bHRBdHRhY2htZW50VHlwZSA9IFVua25vd25UeXBlICYge1xuICBhc3NldF91cmw/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBpbWFnZXM/OiBBcnJheTxBdHRhY2htZW50PERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+PjtcbiAgbWltZV90eXBlPzogc3RyaW5nO1xuICBpc0N1c3RvbUF0dGFjaG1lbnQ/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgRGVmYXVsdENoYW5uZWxUeXBlID0gVW5rbm93blR5cGUgJiB7XG4gIGltYWdlPzogc3RyaW5nO1xuICBtZW1iZXJfY291bnQ/OiBudW1iZXI7XG4gIHN1YnRpdGxlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgRGVmYXVsdENvbW1hbmRUeXBlID0gTGl0ZXJhbFN0cmluZ0ZvclVuaW9uO1xuXG5leHBvcnQgdHlwZSBEZWZhdWx0TWVzc2FnZVR5cGUgPSBVbmtub3duVHlwZSAmIHtcbiAgY3VzdG9tVHlwZT86ICdjaGFubmVsLmludHJvJyB8ICdtZXNzYWdlLmRhdGUnO1xuICBkYXRlPzogc3RyaW5nIHwgRGF0ZTtcbiAgZXJyb3JTdGF0dXNDb2RlPzogbnVtYmVyO1xuICBldmVudD86IEV2ZW50PERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+O1xuICB1bnJlYWQ/OiBib29sZWFuO1xuICByZWFkQnk6IFVzZXJSZXNwb25zZTxEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzPltdO1xuICB0cmFuc2xhdGlvbj86IHN0cmluZztcbiAgcXVvdGVkX21lc3NhZ2U/OiBNZXNzYWdlUmVzcG9uc2VCYXNlPERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+O1xufTtcblxuZXhwb3J0IHR5cGUgRGVmYXVsdFVzZXJUeXBlSW50ZXJuYWwgPSB7XG4gIGltYWdlPzogc3RyaW5nO1xuICBzdGF0dXM/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBEZWZhdWx0VXNlclR5cGUgPSBVbmtub3duVHlwZSAmXG4gIERlZmF1bHRVc2VyVHlwZUludGVybmFsICYge1xuICAgIG11dGVzPzogQXJyYXk8TXV0ZTxEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzPj47XG4gIH07XG5cbmV4cG9ydCB0eXBlIFN0cmVhbU1lc3NhZ2U8XG4gIFQgZXh0ZW5kcyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzID0gRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljc1xuPiA9IEZvcm1hdE1lc3NhZ2VSZXNwb25zZTxUPjtcblxuZXhwb3J0IHR5cGUgQXR0YWNobWVudFVwbG9hZDxcbiAgVCBleHRlbmRzIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MgPSBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzXG4+ID0ge1xuICBmaWxlOiBGaWxlO1xuICBzdGF0ZTogJ2Vycm9yJyB8ICdzdWNjZXNzJyB8ICd1cGxvYWRpbmcnO1xuICB1cmw/OiBzdHJpbmc7XG4gIHR5cGU6ICdpbWFnZScgfCAnZmlsZScgfCAndmlkZW8nO1xuICBwcmV2aWV3VXJpPzogc3RyaW5nIHwgQXJyYXlCdWZmZXI7XG4gIHRodW1iX3VybD86IHN0cmluZztcbiAgZnJvbUF0dGFjaG1lbnQ/OiBBdHRhY2htZW50PFQ+O1xufTtcblxuZXhwb3J0IHR5cGUgTWVudGlvbkF1dGNvbXBsZXRlTGlzdEl0ZW1Db250ZXh0ID0ge1xuICBpdGVtOiBNZW50aW9uQXV0Y29tcGxldGVMaXN0SXRlbTtcbn07XG5cbmV4cG9ydCB0eXBlIENvbW1hbmRBdXRvY29tcGxldGVMaXN0SXRlbUNvbnRleHQgPSB7XG4gIGl0ZW06IENvbWFuZEF1dG9jb21wbGV0ZUxpc3RJdGVtO1xufTtcblxuZXhwb3J0IHR5cGUgTWVudGlvbkF1dGNvbXBsZXRlTGlzdEl0ZW0gPSAoXG4gIHwgQ2hhbm5lbE1lbWJlclJlc3BvbnNlXG4gIHwgVXNlclJlc3BvbnNlXG4pICYge1xuICBhdXRvY29tcGxldGVMYWJlbDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQ29tYW5kQXV0b2NvbXBsZXRlTGlzdEl0ZW0gPSBDb21tYW5kUmVzcG9uc2UgJiB7XG4gIGF1dG9jb21wbGV0ZUxhYmVsOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25UeXBlID0gJ3N1Y2Nlc3MnIHwgJ2Vycm9yJyB8ICdpbmZvJztcblxuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uUGF5bG9hZDxUID0ge30+ID0ge1xuICBpZDogc3RyaW5nO1xuICB0eXBlOiBOb3RpZmljYXRpb25UeXBlO1xuICB0ZXh0Pzogc3RyaW5nO1xuICB0cmFuc2xhdGVQYXJhbXM/OiBPYmplY3Q7XG4gIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8VD47XG4gIHRlbXBsYXRlQ29udGV4dD86IFQ7XG4gIGRpc21pc3NGbjogRnVuY3Rpb247XG59O1xuXG5leHBvcnQgdHlwZSBDaGFubmVsUHJldmlld0NvbnRleHQ8XG4gIFQgZXh0ZW5kcyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzID0gRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljc1xuPiA9IHtcbiAgY2hhbm5lbDogQ2hhbm5lbDxUPjtcbn07XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2VJbnB1dENvbnRleHQgPSB7XG4gIGlzRmlsZVVwbG9hZEVuYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIGFyZU1lbnRpb25zRW5hYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgbWVudGlvblNjb3BlOiAnY2hhbm5lbCcgfCAnYXBwbGljYXRpb24nIHwgdW5kZWZpbmVkO1xuICBtb2RlOiAndGhyZWFkJyB8ICdtYWluJyB8IHVuZGVmaW5lZDtcbiAgaXNNdWx0aXBsZUZpbGVVcGxvYWRFbmFibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBtZXNzYWdlOiBTdHJlYW1NZXNzYWdlIHwgdW5kZWZpbmVkO1xuICBtZXNzYWdlVXBkYXRlSGFuZGxlcjogRnVuY3Rpb24gfCB1bmRlZmluZWQ7XG4gIHNlbmRNZXNzYWdlJDogT2JzZXJ2YWJsZTx2b2lkPjtcbn07XG5cbmV4cG9ydCB0eXBlIE1lbnRpb25UZW1wbGF0ZUNvbnRleHQgPSB7XG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgdXNlcjogVXNlclJlc3BvbnNlO1xufTtcblxuZXhwb3J0IHR5cGUgRW1vamlQaWNrZXJDb250ZXh0ID0ge1xuICBlbW9qaUlucHV0JDogU3ViamVjdDxzdHJpbmc+O1xufTtcblxuZXhwb3J0IHR5cGUgVHlwaW5nSW5kaWNhdG9yQ29udGV4dCA9IHtcbiAgdXNlcnNUeXBpbmckOiBPYnNlcnZhYmxlPFVzZXJSZXNwb25zZTxEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzPltdPjtcbn07XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2VDb250ZXh0ID0ge1xuICBtZXNzYWdlOiBTdHJlYW1NZXNzYWdlIHwgdW5kZWZpbmVkO1xuICBlbmFibGVkTWVzc2FnZUFjdGlvbnM6IHN0cmluZ1tdO1xuICBpc0xhc3RTZW50TWVzc2FnZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgbW9kZTogJ3RocmVhZCcgfCAnbWFpbic7XG4gIGlzSGlnaGxpZ2h0ZWQ6IGJvb2xlYW47XG4gIGN1c3RvbUFjdGlvbnM6IEN1c3RvbU1lc3NhZ2VBY3Rpb25JdGVtW107XG59O1xuXG5leHBvcnQgdHlwZSBDaGFubmVsQWN0aW9uc0NvbnRleHQ8XG4gIFQgZXh0ZW5kcyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzID0gRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljc1xuPiA9IHsgY2hhbm5lbDogQ2hhbm5lbDxUPiB9O1xuXG5leHBvcnQgdHlwZSBBdHRhY2htZW50TGlzdENvbnRleHQgPSB7XG4gIG1lc3NhZ2VJZDogc3RyaW5nO1xuICBhdHRhY2htZW50czogQXR0YWNobWVudDxEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzPltdO1xuICBwYXJlbnRNZXNzYWdlSWQ/OiBzdHJpbmc7XG4gIGltYWdlTW9kYWxTdGF0ZUNoYW5nZUhhbmRsZXI/OiAoc3RhdGU6ICdvcGVuZWQnIHwgJ2Nsb3NlZCcpID0+IHt9O1xufTtcblxuZXhwb3J0IHR5cGUgQXZhdGFyVHlwZSA9ICdjaGFubmVsJyB8ICd1c2VyJztcblxuZXhwb3J0IHR5cGUgQXZhdGFyTG9jYXRpb24gPVxuICB8ICdjaGFubmVsLXByZXZpZXcnXG4gIHwgJ2NoYW5uZWwtaGVhZGVyJ1xuICB8ICdtZXNzYWdlLXNlbmRlcidcbiAgfCAnbWVzc2FnZS1yZWFkZXInXG4gIHwgJ3F1b3RlZC1tZXNzYWdlLXNlbmRlcidcbiAgfCAnYXV0b2NvbXBsZXRlLWl0ZW0nXG4gIHwgJ3R5cGluZy1pbmRpY2F0b3InXG4gIHwgJ3JlYWN0aW9uJztcblxuZXhwb3J0IHR5cGUgQXZhdGFyQ29udGV4dCA9IHtcbiAgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBpbWFnZVVybDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBzaXplOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHR5cGU6IEF2YXRhclR5cGUgfCB1bmRlZmluZWQ7XG4gIGxvY2F0aW9uOiBBdmF0YXJMb2NhdGlvbiB8IHVuZGVmaW5lZDtcbiAgY2hhbm5lbD86IENoYW5uZWw8RGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcz47XG4gIHVzZXI/OiBVc2VyPERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+O1xuICBpbml0aWFsc1R5cGU/OiAnZmlyc3QtbGV0dGVyLW9mLWZpcnN0LXdvcmQnIHwgJ2ZpcnN0LWxldHRlci1vZi1lYWNoLXdvcmQnO1xufTtcblxuZXhwb3J0IHR5cGUgQXR0YWNobWVudFByZXZpZXdMaXN0Q29udGV4dCA9IHtcbiAgYXR0YWNobWVudFVwbG9hZHMkOiBPYnNlcnZhYmxlPEF0dGFjaG1lbnRVcGxvYWRbXT4gfCB1bmRlZmluZWQ7XG4gIHJldHJ5VXBsb2FkSGFuZGxlcjogKGY6IEZpbGUpID0+IGFueTtcbiAgZGVsZXRlVXBsb2FkSGFuZGxlcjogKHU6IEF0dGFjaG1lbnRVcGxvYWQpID0+IGFueTtcbn07XG5cbmV4cG9ydCB0eXBlIEljb25Db250ZXh0ID0ge1xuICBpY29uOiBJY29uIHwgdW5kZWZpbmVkO1xuICBzaXplOiBudW1iZXIgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgdHlwZSBMb2FkaW5nSW5kaWNhdG9yQ29udGV4dCA9IHtcbiAgc2l6ZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBjb2xvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IHR5cGUgTWVzc2FnZUFjdGlvbnNCb3hDb250ZXh0ID0ge1xuICBpc09wZW46IGJvb2xlYW47XG4gIGlzTWluZTogYm9vbGVhbjtcbiAgbWVzc2FnZTogU3RyZWFtTWVzc2FnZSB8IHVuZGVmaW5lZDtcbiAgZW5hYmxlZEFjdGlvbnM6IHN0cmluZ1tdO1xuICBjdXN0b21BY3Rpb25zOiBDdXN0b21NZXNzYWdlQWN0aW9uSXRlbVtdO1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgYmVjYXVzZSB0aGUgbmFtZSBjb250YWlucyB0eXBvcywgdXNlIHRoZSBgZGlzcGxheWVkQWN0aW9uc0NvdW50Q2hhbmdlSGFuZGxlcmAgaW5zdGVhZFxuICAgKi9cbiAgZGlzcGxheWVkQWN0aW9uc0NvdW50Q2hhbmVIYW5sZXI6IChjb3VudDogbnVtYmVyKSA9PiBhbnk7XG4gIGRpc3BsYXllZEFjdGlvbnNDb3VudENoYW5nZUhhbmRsZXI6IChjb3VudDogbnVtYmVyKSA9PiBhbnk7XG4gIGlzRWRpdGluZ0NoYW5nZUhhbmRsZXI6IChpc0VkaXRpbmc6IGJvb2xlYW4pID0+IGFueTtcbn07XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2VBY3Rpb25Cb3hJdGVtQ29udGV4dDxcbiAgVCBleHRlbmRzIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MgPSBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzXG4+ID0ge1xuICBhY3Rpb25OYW1lOiAncXVvdGUnIHwgJ3BpbicgfCAnZmxhZycgfCAnZWRpdCcgfCAnZGVsZXRlJyB8IHN0cmluZztcbiAgYWN0aW9uTGFiZWxPclRyYW5zbGF0aW9uS2V5OiAoKG1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2U8VD4pID0+IHN0cmluZykgfCBzdHJpbmc7XG4gIG1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2U8VD47XG4gIGlzTWluZTogYm9vbGVhbjtcbiAgYWN0aW9uSGFuZGxlcjogKG1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2U8VD4sIGlzTWluZTogYm9vbGVhbikgPT4gYW55O1xufTtcblxudHlwZSBNZXNzYWdlQWN0aW9uSXRlbUJhc2U8XG4gIFQgZXh0ZW5kcyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzID0gRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljc1xuPiA9IHtcbiAgYWN0aW9uTGFiZWxPclRyYW5zbGF0aW9uS2V5OiAoKG1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2U8VD4pID0+IHN0cmluZykgfCBzdHJpbmc7XG4gIGlzVmlzaWJsZTogKFxuICAgIGVuYWJsZWRBY3Rpb25zOiBzdHJpbmdbXSxcbiAgICBpc01pbmU6IGJvb2xlYW4sXG4gICAgbWVzc2FnZTogU3RyZWFtTWVzc2FnZTxUPlxuICApID0+IGJvb2xlYW47XG4gIGFjdGlvbkhhbmRsZXI6IChtZXNzYWdlOiBTdHJlYW1NZXNzYWdlPFQ+LCBpc01pbmU6IGJvb2xlYW4pID0+IGFueTtcbn07XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2VBY3Rpb25JdGVtPFxuICBUIGV4dGVuZHMgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyA9IERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3Ncbj4gPSBNZXNzYWdlQWN0aW9uSXRlbUJhc2U8VD4gJiB7XG4gIGFjdGlvbk5hbWU6ICdxdW90ZScgfCAncGluJyB8ICdmbGFnJyB8ICdlZGl0JyB8ICdkZWxldGUnO1xufTtcblxuZXhwb3J0IHR5cGUgQ3VzdG9tTWVzc2FnZUFjdGlvbkl0ZW08XG4gIFQgZXh0ZW5kcyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzID0gRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljc1xuPiA9IE1lc3NhZ2VBY3Rpb25JdGVtQmFzZTxUPiAmIHtcbiAgYWN0aW9uTmFtZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgTWVzc2FnZVJlYWN0aW9uc0NvbnRleHQgPSB7XG4gIG1lc3NhZ2VJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBtZXNzYWdlUmVhY3Rpb25Db3VudHM6IHsgW2tleSBpbiBNZXNzYWdlUmVhY3Rpb25UeXBlXT86IG51bWJlciB9O1xuICBpc1NlbGVjdG9yT3BlbjogYm9vbGVhbjtcbiAgbGF0ZXN0UmVhY3Rpb25zOiBSZWFjdGlvblJlc3BvbnNlPERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+W107XG4gIG93blJlYWN0aW9uczogUmVhY3Rpb25SZXNwb25zZTxEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzPltdO1xuICBpc1NlbGVjdG9yT3BlbkNoYW5nZUhhbmRsZXI6IChpc09wZW46IGJvb2xlYW4pID0+IGFueTtcbn07XG5cbmV4cG9ydCB0eXBlIE1vZGFsQ29udGV4dCA9IHtcbiAgaXNPcGVuOiBib29sZWFuO1xuICBpc09wZW5DaGFuZ2VIYW5kbGVyOiAoaXNPcGVuOiBib29sZWFuKSA9PiBhbnk7XG4gIGNvbnRlbnQ6IFRlbXBsYXRlUmVmPHZvaWQ+O1xufTtcblxuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uQ29udGV4dCA9IHtcbiAgdHlwZTogTm90aWZpY2F0aW9uVHlwZSB8IHVuZGVmaW5lZDtcbiAgY29udGVudDogVGVtcGxhdGVSZWY8dm9pZD4gfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgdHlwZSBUaHJlYWRIZWFkZXJDb250ZXh0ID0ge1xuICBwYXJlbnRNZXNzYWdlOiBTdHJlYW1NZXNzYWdlIHwgdW5kZWZpbmVkO1xuICBjbG9zZVRocmVhZEhhbmRsZXI6IEZ1bmN0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgTWVzc2FnZVJlYWN0aW9uVHlwZSA9XG4gIHwgJ2FuZ3J5J1xuICB8ICdoYWhhJ1xuICB8ICdsaWtlJ1xuICB8ICdsb3ZlJ1xuICB8ICdzYWQnXG4gIHwgJ3dvdyc7XG5cbmV4cG9ydCB0eXBlIEF0dGFjaG1lbnRDb25maWdyYXRpb24gPSB7XG4gIHVybDogc3RyaW5nO1xuICBoZWlnaHQ6IHN0cmluZztcbiAgd2lkdGg6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEltYWdlQXR0YWNobWVudENvbmZpZ3VyYXRpb24gPSBBdHRhY2htZW50Q29uZmlncmF0aW9uICYge1xuICBvcmlnaW5hbEhlaWdodDogbnVtYmVyO1xuICBvcmlnaW5hbFdpZHRoOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBWaWRlb0F0dGFjaG1lbnRDb25maWd1cmF0aW9uID0gSW1hZ2VBdHRhY2htZW50Q29uZmlndXJhdGlvbiAmIHtcbiAgdGh1bWJVcmw/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBEZWxpdmVyZWRTdGF0dXNDb250ZXh0ID0ge1xuICBtZXNzYWdlOiBTdHJlYW1NZXNzYWdlO1xufTtcblxuZXhwb3J0IHR5cGUgU2VuZGluZ1N0YXR1c0NvbnRleHQgPSB7XG4gIG1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2U7XG59O1xuXG5leHBvcnQgdHlwZSBSZWFkU3RhdHVzQ29udGV4dCA9IHtcbiAgbWVzc2FnZTogU3RyZWFtTWVzc2FnZTtcbiAgcmVhZEJ5VGV4dDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQ2hhbm5lbEhlYWRlckluZm9Db250ZXh0PFxuICBUIGV4dGVuZHMgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyA9IERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3Ncbj4gPSB7IGNoYW5uZWw6IENoYW5uZWw8VD4gfTtcblxuZXhwb3J0IHR5cGUgQ3VzdG9tQXR0YWNobWVudFVwbG9hZENvbnRleHQgPSB7XG4gIGlzTXVsdGlwbGVGaWxlVXBsb2FkRW5hYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgYXR0YWNobWVudFNlcnZpY2U6IEF0dGFjaG1lbnRTZXJ2aWNlO1xufTtcblxuZXhwb3J0IHR5cGUgQXR0YWNobWVudENvbnRleHQgPSB7XG4gIGF0dGFjaG1lbnQ6IEF0dGFjaG1lbnQ8RGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcz47XG59O1xuIl19
@@ -19,7 +19,7 @@ import transliterate from '@stream-io/transliterate';
19
19
  import * as i8$1 from 'angular-mentions';
20
20
  import { MentionModule } from 'angular-mentions';
21
21
 
22
- const version = '4.26.0';
22
+ const version = '4.26.1';
23
23
 
24
24
  /**
25
25
  * The `NotificationService` can be used to add or remove notifications. By default the [`NotificationList`](../components/NotificationListComponent.mdx) component displays the currently active notifications.
@@ -3570,6 +3570,15 @@ class MessageActionsBoxComponent {
3570
3570
  ? actionLabelOrTranslationKey
3571
3571
  : actionLabelOrTranslationKey(this.message);
3572
3572
  }
3573
+ getMessageActionTemplateContext(item) {
3574
+ return {
3575
+ actionHandler: item.actionHandler,
3576
+ isMine: this.isMine,
3577
+ actionName: item.actionName,
3578
+ message: this.message,
3579
+ actionLabelOrTranslationKey: item.actionLabelOrTranslationKey,
3580
+ };
3581
+ }
3573
3582
  sendClicked() {
3574
3583
  this.sendMessageSubject.next();
3575
3584
  }
@@ -3602,7 +3611,7 @@ class MessageActionsBoxComponent {
3602
3611
  }
3603
3612
  }
3604
3613
  MessageActionsBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: MessageActionsBoxComponent, deps: [{ token: ChatClientService }, { token: NotificationService }, { token: ChannelService }, { token: CustomTemplatesService }], target: i0.ɵɵFactoryTarget.Component });
3605
- MessageActionsBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: MessageActionsBoxComponent, selector: "stream-message-actions-box", inputs: { isOpen: "isOpen", isMine: "isMine", message: "message", enabledActions: "enabledActions", customActions: "customActions" }, outputs: { displayedActionsCount: "displayedActionsCount", isEditing: "isEditing" }, viewQueries: [{ propertyName: "modalContent", first: true, predicate: ["modalContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #actionBox\n data-testid=\"action-box\"\n class=\"str-chat__message-actions-box str-chat__message-actions-box-angular\"\n [class.str-chat__message-actions-box--open]=\"true\"\n>\n <ul class=\"str-chat__message-actions-list\">\n <ng-container\n *ngFor=\"let item of visibleMessageActionItems; trackBy: trackByActionName\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n messageActionItemTemplate || defaultMessageActionItem;\n context: item\n \"\n ></ng-container>\n </ng-container>\n </ul>\n</div>\n\n<ng-template\n #defaultMessageActionItem\n let-actionName=\"actionName\"\n let-actionHandler=\"actionHandler\"\n let-actionLabelOrTranslationKey=\"actionLabelOrTranslationKey\"\n>\n <button\n class=\"str-chat__message-actions-list-item-button\"\n [attr.data-testid]=\"actionName + '-action'\"\n (click)=\"actionHandler(message, isMine)\"\n >\n <li class=\"str-chat__message-actions-list-item\">\n {{ getActionLabel(actionLabelOrTranslationKey) | translate }}\n </li>\n </button>\n</ng-template>\n\n<ng-container\n *ngTemplateOutlet=\"\n modalTemplate || defaultModal;\n context: getEditModalContext()\n \"\n></ng-container>\n\n<ng-template\n #defaultModal\n let-isOpen=\"isOpen\"\n let-isOpenChangeHandler=\"isOpenChangeHandler\"\n let-content=\"content\"\n>\n <stream-modal\n [isOpen]=\"isOpen\"\n (isOpenChange)=\"isOpenChangeHandler($event)\"\n [content]=\"content\"\n >\n </stream-modal>\n</ng-template>\n\n<ng-template #modalContent>\n <div class=\"str-chat__edit-message-form\" *ngIf=\"isEditModalOpen\">\n <ng-template\n #defaultInput\n let-messageInput=\"message\"\n let-messageUpdateHandler=\"messageUpdateHandler\"\n let-sendMessage$Input=\"sendMessage$\"\n >\n <stream-message-input\n [message]=\"messageInput\"\n (messageUpdate)=\"messageUpdateHandler()\"\n [sendMessage$]=\"sendMessage$Input\"\n ></stream-message-input>\n </ng-template>\n <ng-container\n *ngTemplateOutlet=\"\n messageInputTemplate || defaultInput;\n context: getMessageInputContext()\n \"\n >\n </ng-container>\n\n <stream-notification-list></stream-notification-list>\n <div\n class=\"\n str-chat__message-team-form-footer\n str-chat__message-team-form-footer-angular\n \"\n >\n <div class=\"str-chat__edit-message-form-options\">\n <button\n class=\"str-chat__edit-message-cancel\"\n translate\n data-testid=\"cancel-button\"\n (click)=\"modalClosed()\"\n >\n streamChat.Cancel\n </button>\n <button\n type=\"submit\"\n translate\n class=\"str-chat__edit-message-send\"\n data-testid=\"send-button\"\n (click)=\"sendClicked()\"\n (keyup.enter)=\"sendClicked()\"\n >\n streamChat.Send\n </button>\n </div>\n </div>\n </div>\n</ng-template>\n", components: [{ type: ModalComponent, selector: "stream-modal", inputs: ["isOpen", "content"], outputs: ["isOpenChange"] }, { type: MessageInputComponent, selector: "stream-message-input", inputs: ["isFileUploadEnabled", "areMentionsEnabled", "mentionScope", "mode", "isMultipleFileUploadEnabled", "message", "sendMessage$", "inputMode"], outputs: ["messageUpdate"] }, { type: NotificationListComponent, selector: "stream-notification-list" }], directives: [{ type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], pipes: { "translate": i8.TranslatePipe } });
3614
+ MessageActionsBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: MessageActionsBoxComponent, selector: "stream-message-actions-box", inputs: { isOpen: "isOpen", isMine: "isMine", message: "message", enabledActions: "enabledActions", customActions: "customActions" }, outputs: { displayedActionsCount: "displayedActionsCount", isEditing: "isEditing" }, viewQueries: [{ propertyName: "modalContent", first: true, predicate: ["modalContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #actionBox\n data-testid=\"action-box\"\n class=\"str-chat__message-actions-box str-chat__message-actions-box-angular\"\n [class.str-chat__message-actions-box--open]=\"true\"\n>\n <ul class=\"str-chat__message-actions-list\">\n <ng-container\n *ngFor=\"let item of visibleMessageActionItems; trackBy: trackByActionName\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n messageActionItemTemplate || defaultMessageActionItem;\n context: getMessageActionTemplateContext(item)\n \"\n ></ng-container>\n </ng-container>\n </ul>\n</div>\n\n<ng-template\n #defaultMessageActionItem\n let-actionName=\"actionName\"\n let-actionHandler=\"actionHandler\"\n let-actionLabelOrTranslationKey=\"actionLabelOrTranslationKey\"\n>\n <button\n class=\"str-chat__message-actions-list-item-button\"\n [attr.data-testid]=\"actionName + '-action'\"\n (click)=\"actionHandler(message, isMine)\"\n >\n <li class=\"str-chat__message-actions-list-item\">\n {{ getActionLabel(actionLabelOrTranslationKey) | translate }}\n </li>\n </button>\n</ng-template>\n\n<ng-container\n *ngTemplateOutlet=\"\n modalTemplate || defaultModal;\n context: getEditModalContext()\n \"\n></ng-container>\n\n<ng-template\n #defaultModal\n let-isOpen=\"isOpen\"\n let-isOpenChangeHandler=\"isOpenChangeHandler\"\n let-content=\"content\"\n>\n <stream-modal\n [isOpen]=\"isOpen\"\n (isOpenChange)=\"isOpenChangeHandler($event)\"\n [content]=\"content\"\n >\n </stream-modal>\n</ng-template>\n\n<ng-template #modalContent>\n <div class=\"str-chat__edit-message-form\" *ngIf=\"isEditModalOpen\">\n <ng-template\n #defaultInput\n let-messageInput=\"message\"\n let-messageUpdateHandler=\"messageUpdateHandler\"\n let-sendMessage$Input=\"sendMessage$\"\n >\n <stream-message-input\n [message]=\"messageInput\"\n (messageUpdate)=\"messageUpdateHandler()\"\n [sendMessage$]=\"sendMessage$Input\"\n ></stream-message-input>\n </ng-template>\n <ng-container\n *ngTemplateOutlet=\"\n messageInputTemplate || defaultInput;\n context: getMessageInputContext()\n \"\n >\n </ng-container>\n\n <stream-notification-list></stream-notification-list>\n <div\n class=\"\n str-chat__message-team-form-footer\n str-chat__message-team-form-footer-angular\n \"\n >\n <div class=\"str-chat__edit-message-form-options\">\n <button\n class=\"str-chat__edit-message-cancel\"\n translate\n data-testid=\"cancel-button\"\n (click)=\"modalClosed()\"\n >\n streamChat.Cancel\n </button>\n <button\n type=\"submit\"\n translate\n class=\"str-chat__edit-message-send\"\n data-testid=\"send-button\"\n (click)=\"sendClicked()\"\n (keyup.enter)=\"sendClicked()\"\n >\n streamChat.Send\n </button>\n </div>\n </div>\n </div>\n</ng-template>\n", components: [{ type: ModalComponent, selector: "stream-modal", inputs: ["isOpen", "content"], outputs: ["isOpenChange"] }, { type: MessageInputComponent, selector: "stream-message-input", inputs: ["isFileUploadEnabled", "areMentionsEnabled", "mentionScope", "mode", "isMultipleFileUploadEnabled", "message", "sendMessage$", "inputMode"], outputs: ["messageUpdate"] }, { type: NotificationListComponent, selector: "stream-notification-list" }], directives: [{ type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], pipes: { "translate": i8.TranslatePipe } });
3606
3615
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: MessageActionsBoxComponent, decorators: [{
3607
3616
  type: Component,
3608
3617
  args: [{