@c8y/ngx-components 1017.0.23 → 1017.0.25

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.
@@ -213,10 +213,16 @@ export class ContextDashboardComponent {
213
213
  * @param selected Define a selected component to switch to edit mode directly.
214
214
  */
215
215
  async addWidget(selected) {
216
+ const partialCloneSelected = selected
217
+ ? {
218
+ ...selected,
219
+ data: cloneDeep(selected.data)
220
+ }
221
+ : selected;
216
222
  const initialState = {
217
223
  mo: this.mo,
218
224
  context: this.context.c8y_Report ? {} : this.context,
219
- selected: cloneDeep(selected)
225
+ selected: partialCloneSelected
220
226
  };
221
227
  const modal = this.bsModal.show(WidgetConfigComponent, {
222
228
  class: 'modal-lg',
@@ -481,4 +487,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
481
487
  type: HostBinding,
482
488
  args: ['class']
483
489
  }] } });
484
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29udGV4dC1kYXNoYm9hcmQvY29udGV4dC1kYXNoYm9hcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vY29udGV4dC1kYXNoYm9hcmQvY29udGV4dC1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixZQUFZLEVBR1osb0JBQW9CLEVBSXBCLGdCQUFnQixFQUNoQixPQUFPLEVBQ1AsWUFBWSxFQUNaLE1BQU0sRUFJUCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBSUwsd0JBQXdCLEVBQ3hCLHFCQUFxQixFQUN0QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQWtCLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7O0FBRS9EOzs7O0dBSUc7QUFXSCxNQUFNLE9BQU8seUJBQXlCO0lBZ0NwQyxZQUNVLEtBQXFCLEVBQ3JCLE1BQWMsRUFDZCx1QkFBZ0QsRUFDaEQsS0FBbUIsRUFDbkIsUUFBbUIsRUFDYyxZQUFvQyxFQUNyRSxhQUE0QixFQUM1QixPQUF1QixFQUN2QixTQUEyQixFQUMzQixnQkFBa0MsRUFDbEMsZ0JBQWtDLEVBQ2xDLGdCQUFrQyxFQUNsQyxLQUFtQjtRQVpuQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDYyxpQkFBWSxHQUFaLFlBQVksQ0FBd0I7UUFDckUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsVUFBSyxHQUFMLEtBQUssQ0FBYztRQXpDN0Isb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFJckIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLG1CQUFjLEdBQWEsRUFBRSxDQUFDO1FBRTlCLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFFeEIsY0FBUyxHQUFZLElBQUksQ0FBQztRQUUxQixjQUFTLEdBQVksSUFBSSxDQUFDO1FBSzFCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFWCxZQUFPLEdBQWEsRUFBRSxDQUFDO0lBcUJwQixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDNUIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGlCQUFpQixDQUFDLE1BQU07UUFDdEIsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN6RTtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxPQUFPO1FBQ1gsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUNsQixvSUFBb0ksQ0FDckksQ0FBQztRQUVGLElBQUk7WUFDRixNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFO2dCQUN6RSxFQUFFLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDO2dCQUMvQixNQUFNLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQzthQUMxQixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDOUYsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNuRCxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNyQjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQztTQUNGO2dCQUFTO1lBQ1IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLHVCQUF1QixDQUFDLEtBQTZDO1FBQ3pFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDM0IsTUFBTSxXQUFXLEdBQWtDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDM0QsTUFBTSxjQUFjLEdBQTZCLEtBQUssQ0FDcEQsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUM1QyxJQUFJLENBQ0wsQ0FBQztRQUNGLFdBQVcsQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQztRQUNwRCxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLGFBQWE7UUFDakIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7UUFDN0QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDdEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGFBQWEsR0FBRztnQkFDM0MsU0FBUyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztnQkFDM0MsT0FBTyxFQUFFO29CQUNQLE9BQU8sRUFBRSxXQUFXO29CQUNwQixXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU87aUJBQzFCO2FBQ0YsQ0FBQztZQUVGLElBQUksV0FBVyxFQUFFO2dCQUNmLE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzNDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQ3ZDLGtGQUFrRixFQUNsRixFQUFFLEdBQUcsRUFBRSxDQUNSLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDekI7WUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsZUFBZTtRQUNuQixNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDckIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BGLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLGFBQWE7UUFDakIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEUsSUFBSSxRQUFRLEVBQUU7WUFDWixNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNoRixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1NBQzNGO1FBQ0QsTUFBTSxZQUFZLEdBQUc7WUFDbkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUk7WUFDN0IsWUFBWSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNoRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDL0QsUUFBUTtTQUNULENBQUM7UUFDRixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUN4RCxLQUFLLEVBQUUsVUFBVTtZQUNqQixlQUFlLEVBQUUsWUFBWTtZQUM3QixjQUFjLEVBQUUsYUFBYTtZQUM3QixZQUFZO1lBQ1osbUJBQW1CLEVBQUUsSUFBSTtTQUMxQixDQUFDLENBQUMsT0FBbUMsQ0FBQztRQUN2QyxJQUFJO1lBQ0YsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2QyxNQUFNLEdBQUcsR0FBRyxNQUFNLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDL0IsSUFBSSxRQUFRLEVBQUU7Z0JBQ1osTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxHQUFHLFlBQVksRUFBRSxHQUFHLEdBQUcsQ0FBQztnQkFDeEYsV0FBVyxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUM7b0JBQ2hCLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ25CLElBQUk7b0JBQ0osSUFBSTtvQkFDSixtQkFBbUI7b0JBQ25CLFFBQVE7b0JBQ1IsV0FBVztpQkFDWixDQUFDLENBQUM7YUFDSjtpQkFBTTtnQkFDTCxXQUFXLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQzthQUNqQztZQUVELE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2RCxNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDNUQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2QsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2Y7UUFBQyxPQUFPLEVBQUUsRUFBRTtZQUNYLGlCQUFpQjtTQUNsQjtJQUNILENBQUM7SUFFRCxJQUFJLHFCQUFxQjtRQUN2QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUM7SUFDMUUsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBb0I7UUFDbkMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDOUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUM1RCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FDaEQsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsT0FBTztTQUNSO1FBQ0QsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ25CLEdBQUcsU0FBUztZQUNaLElBQUksRUFBRSxFQUFFLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRTtTQUM1RixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFxQztRQUNuRCxNQUFNLFlBQVksR0FBRztZQUNuQixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDcEQsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUM7U0FDOUIsQ0FBQztRQUVGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQ3JELEtBQUssRUFBRSxVQUFVO1lBQ2pCLGVBQWUsRUFBRSxZQUFZO1lBQzdCLGNBQWMsRUFBRSxhQUFhO1lBQzdCLFlBQVk7WUFDWixtQkFBbUIsRUFBRSxJQUFJO1NBQzFCLENBQUMsQ0FBQyxPQUFnQyxDQUFDO1FBRXBDLElBQUk7WUFDRixNQUFNLFNBQVMsR0FBRyxNQUFNLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQzthQUNyQztZQUNELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO1lBQ3pELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNuQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDZjtRQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ1gsaUJBQWlCO1NBQ2xCO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU07UUFDdkIsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekQsTUFBTSxLQUFLLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzNCLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEUsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNqQzthQUFNO1lBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQztTQUM3QztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFvQjtRQUNyQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUN4QyxJQUFJO1lBQ0YsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDdEIsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUMzQixPQUFPLENBQ0wsaUdBQWlHLENBQ2xHLEVBQ0QsRUFBRSxXQUFXLEVBQUUsQ0FDaEIsRUFDRCxNQUFNLENBQUMsTUFBTSxFQUNiO2dCQUNFLEVBQUUsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDO2dCQUNyQixNQUFNLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQzthQUMxQixDQUNGLENBQUM7U0FDSDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1Ysd0JBQXdCO1lBQ3hCLE9BQU87U0FDUjtRQUVELElBQUk7WUFDRixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQztZQUNsQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRXRELE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUM7WUFDN0IsU0FBUyxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUU3RSxrRUFBa0U7WUFDbEUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUM5RSxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVmLE1BQU0sS0FBSyxHQUFHLElBQUksb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0MsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzNDO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILHVCQUF1QjtRQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCw0QkFBNEI7UUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFlBQVksQ0FBQyxRQUEyQjtRQUM1QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsSUFBSTtZQUNGLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbkQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQzthQUM5RDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsaUNBQWlDLENBQUMsQ0FBQyxDQUFDO2FBQ2hFO1NBQ0Y7UUFBQyxPQUFPLEVBQUUsRUFBRTtZQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBMkI7UUFDcEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQzVEO1FBQ0QsSUFBSSxDQUFDLHVCQUF1QixDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsUUFBMkI7UUFDcEQsUUFBUSxDQUFDLFFBQVEsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUM5QyxDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO1lBQ3pELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDM0QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQztZQUNoQyxJQUFJLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQztZQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLHVCQUF1QjthQUN4Qyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUN2RSxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztZQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLEtBQUssQ0FBQyxNQUFNLENBQUMsZUFBeUI7UUFDNUMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLGdCQUFnQixDQUFDO1FBQ2xDLElBQUksQ0FBQyxPQUFPO1lBQ1YsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RCxNQUFNLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwRSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoRSxNQUFNLGdCQUFnQixHQUFHO1lBQ3ZCLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsU0FBUyxFQUFFLElBQUk7WUFDZixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTztTQUMxQixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQzlCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNyQyxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqRCxJQUFJLFlBQVksRUFBRTtnQkFDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ2hDO1lBQ0QsSUFBSSxlQUFlLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFO29CQUMvQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsSUFBSTtpQkFDOUMsQ0FBQyxDQUFDO2FBQ0o7WUFDRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckQsSUFBSSxRQUFRLEVBQUU7WUFDWixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztTQUNuQztRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxNQUFjO1FBQ3ZDLE1BQU0sY0FBYyxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FDL0MsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUNqRCxDQUFDO1FBQ0YsTUFBTSxhQUFhLEdBQUcsY0FBYztZQUNsQyxDQUFDLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDdkIsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMzRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUk7WUFDVixnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSTtZQUNwRCxHQUFHLGFBQWE7U0FDakIsQ0FBQztJQUNKLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxLQUE4QjtRQUN0RCxPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLHFDQUFxQyxFQUFFLDRCQUE0QixDQUFDLENBQUM7WUFDMUYsR0FBSTtnQkFDRixFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ1gsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNYLE1BQU0sRUFBRSxLQUFLLENBQUMsS0FBSztnQkFDbkIsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNO2FBQ1g7U0FDYixDQUFDO0lBQ0osQ0FBQztJQUVPLDBCQUEwQjtRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxrQkFBa0IsR0FBRztZQUN4QixJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxTQUFTO1NBQ2hCLENBQUM7UUFDRixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsV0FBd0I7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLFdBQVcsRUFBRTtZQUNqRCxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQ3ZDLCtFQUErRSxFQUMvRSxFQUFFLEdBQUcsRUFBRSxDQUNSLENBQUM7WUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QixPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sc0JBQXNCO1FBQzVCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNuRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUNsQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztZQUUzQyxPQUFPLENBQUMsQ0FDTixDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUN6RSxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztzSEFqZlUseUJBQXlCLGtLQXNDMUIsd0JBQXdCOzBHQXRDdkIseUJBQXlCLDZkQ25EdEMsODhDQTZDQTsyRkRNYSx5QkFBeUI7a0JBVnJDLFNBQVM7K0JBQ0UsdUJBQXVCLFFBRTNCO3dCQUNKLEtBQUssRUFBRTs7S0FFTjt3QkFDRCxLQUFLLEVBQUUsOEJBQThCO3FCQUN0Qzs7MEJBd0NFLE1BQU07MkJBQUMsd0JBQXdCOzRQQXBDbEMsSUFBSTtzQkFESCxLQUFLO2dCQUdOLGVBQWU7c0JBRGQsS0FBSztnQkFHTixPQUFPO3NCQUROLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFHTixjQUFjO3NCQURiLEtBQUs7Z0JBR04sT0FBTztzQkFETixLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFHTixTQUFTO3NCQURSLEtBQUs7Z0JBR04sa0JBQWtCO3NCQURqQixLQUFLO2dCQUlOLEtBQUs7c0JBREosV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBBY3Rpb25CYXJTZXJ2aWNlLFxuICBBbGVydFNlcnZpY2UsXG4gIEJyZWFkY3J1bWJJdGVtLFxuICBEYXNoYm9hcmRDaGFuZ2UsXG4gIERhc2hib2FyZENoaWxkQ2hhbmdlLFxuICBEYXNoYm9hcmRDaGlsZENvbXBvbmVudCxcbiAgRGFzaGJvYXJkU2V0dGluZ3MsXG4gIER5bmFtaWNDb21wb25lbnREZWZpbml0aW9uLFxuICBHYWluc2lnaHRTZXJ2aWNlLFxuICBnZXR0ZXh0LFxuICBNb2RhbFNlcnZpY2UsXG4gIFN0YXR1cyxcbiAgVmlld0NvbnRleHQsXG4gIFdpZGdldCxcbiAgV2lkZ2V0Q2hhbmdlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBmaW5kSW5kZXgsIGtleUJ5LCBvbWl0LCB2YWx1ZXMsIHNvbWUsIGtlYmFiQ2FzZSwgZXZlcnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQ29udGV4dERhc2hib2FyZCxcbiAgQ29udGV4dERhc2hib2FyZENvbmZpZyxcbiAgQ29udGV4dERhc2hib2FyZE1hbmFnZWRPYmplY3QsXG4gIENPTlRFWFRfREFTSEJPQVJEX0NPTkZJRyxcbiAgV0lER0VUX0hFQURFUl9DTEFTU0VTXG59IGZyb20gJy4vY29udGV4dC1kYXNoYm9hcmQubW9kZWwnO1xuaW1wb3J0IHsgQ29udGV4dERhc2hib2FyZFNlcnZpY2UgfSBmcm9tICcuL2NvbnRleHQtZGFzaGJvYXJkLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGFzaGJvYXJkRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9kYXNoYm9hcmQtZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaWRnZXRDb25maWdDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldC1jb25maWcuY29tcG9uZW50JztcbmltcG9ydCB7IFdpZGdldFNlcnZpY2UgfSBmcm9tICcuL3dpZGdldC5zZXJ2aWNlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBJbnZlbnRvcnlTZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuXG4vKipcbiAqIFRoZSBjb250ZXh0IGRhc2hib2FyZCBpcyBhIGRhc2hib2FyZCB3aGljaCByZXNvbHZlcyBpdCBkYXRhIGZyb20gdGhlIGN1cnJlbnQgY29udGV4dCAoZGV2aWNlIG9yIGdyb3VwKVxuICogaXQgaXMgZGlzcGxheWVkIG9uLiBJdCB1c3VhbGx5IHVzZXMgdGhlIHJvdXRlLmRhdGEgZm9yIGl0LCBidXQgeW91IGNhbiBwYXNzXG4gKiBhIGRpZmZlcmVudCBtYW5hZ2VkT2JqZWN0IHRvIHRoZSBbbW9dIGlucHV0IHBhcmFtZXRlciB0byBjaGFuZ2UgdGhhdCBiZWhhdmlvci5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWNvbnRleHQtZGFzaGJvYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRleHQtZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgaG9zdDoge1xuICAgIHN0eWxlOiBgXG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICBgLFxuICAgIGNsYXNzOiAnZGFzaGJvYXJkIGM4eS1ncmlkLWRhc2hib2FyZCdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBDb250ZXh0RGFzaGJvYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIGNoaWxkcmVuQ2xhc3NlcyA9ICcnO1xuICBASW5wdXQoKVxuICBjb250ZXh0OiBhbnk7XG4gIEBJbnB1dCgpXG4gIHNldFRpdGxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpXG4gIGRlZmF1bHRXaWRnZXRzOiBXaWRnZXRbXSA9IFtdO1xuICBASW5wdXQoKVxuICBjYW5Db3B5OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KClcbiAgY2FuRGVsZXRlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KClcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KClcbiAgYnJlYWRjcnVtYlNldHRpbmdzOiBCcmVhZGNydW1iSXRlbTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgY2xhc3MgPSAnJztcblxuICB3aWRnZXRzOiBXaWRnZXRbXSA9IFtdO1xuICBtbzogQ29udGV4dERhc2hib2FyZE1hbmFnZWRPYmplY3Q7XG4gIGRhc2hib2FyZDogQ29udGV4dERhc2hib2FyZDtcbiAgdGl0bGU6IHN0cmluZztcblxuICBwcml2YXRlIGRhdGFTdWI6IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgY29udGV4dERhc2hib2FyZFNlcnZpY2U6IENvbnRleHREYXNoYm9hcmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnQ6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgQEluamVjdChDT05URVhUX0RBU0hCT0FSRF9DT05GSUcpIHB1YmxpYyBtb2R1bGVDb25maWc6IENvbnRleHREYXNoYm9hcmRDb25maWcsXG4gICAgcHJpdmF0ZSB3aWRnZXRTZXJ2aWNlOiBXaWRnZXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbDogQnNNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbnZlbnRvcnk6IEludmVudG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBnYWluc2lnaHRTZXJ2aWNlOiBHYWluc2lnaHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWN0aW9uQmFyU2VydmljZTogQWN0aW9uQmFyU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbDogTW9kYWxTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMubmFtZSkge1xuICAgICAgdGhpcy5sb2FkQ29udGV4dERhc2hib2FyZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmxvYWROYW1lZERhc2hib2FyZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgdGhlIGN1cnJlbnQgY29udGV4dCB0byB0aGUgd2lkZ2V0XG4gICAqIEBwYXJhbSB3aWRnZXQgVGhlIHdpZGdldCB0byBhcHBseSB0aGUgY29udGV4dCB0by5cbiAgICovXG4gIGFwcGx5RGV2aWNlVGFyZ2V0KHdpZGdldCkge1xuICAgIGlmICh3aWRnZXQuY29uZmlnLmRldmljZSkge1xuICAgICAgd2lkZ2V0LmNvbmZpZy5kZXZpY2UgPSB7IGlkOiB0aGlzLmNvbnRleHQuaWQsIG5hbWU6IHRoaXMuY29udGV4dC5uYW1lIH07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgdGhlIHJvdXRlIGxpc3RlbmVyLlxuICAgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YVN1Yikge1xuICAgICAgdGhpcy5kYXRhU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc3RvcmVzIHRoZSBkYXNoYm9hcmQgd2lkZ2V0cyB0byB0aGUgZGVmYXVsdCB3aWRnZXRzLlxuICAgKi9cbiAgYXN5bmMgcmVzdG9yZSgpIHtcbiAgICBjb25zdCBtZXNnID0gZ2V0dGV4dChcbiAgICAgICdZb3UgYXJlIGFib3V0IHRvIHJlc2V0IHRoaXMgZGFzaGJvYXJkLiBBbGwgY2hhbmdlcyB0byB0aGUgZGFzaGJvYXJkIHdpbGwgZ2V0IGxvc3QgYW5kIGNhbm5vdCBiZSByZWNvdmVyZWQuIERvIHlvdSB3YW50IHRvIHByb2NlZWQ/J1xuICAgICk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5tb2RhbC5jb25maXJtKGdldHRleHQoJ1Jlc2V0IGRhc2hib2FyZCcpLCBtZXNnLCBTdGF0dXMuV0FSTklORywge1xuICAgICAgICBvazogZ2V0dGV4dCgnUmVzZXRgZGFzaGJvYXJkYCcpLFxuICAgICAgICBjYW5jZWw6IGdldHRleHQoJ0NhbmNlbCcpXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5tby5jOHlfRGFzaGJvYXJkLmNoaWxkcmVuID0gdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5tYXBXaWRnZXRzKHRoaXMuZGVmYXVsdFdpZGdldHMpO1xuICAgICAgYXdhaXQgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS51cGRhdGUodGhpcy5tbyk7XG4gICAgICBhd2FpdCB0aGlzLm9uTG9hZCgpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgdGhpcy5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGVycm9yKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBhbGwgZGFzaGJvYXJkcyBjaGlsZHJlbidzLiBVc2VmdWwgZm9yIHBvc2l0aW9uIGNoYW5nZXMgb24gdGhlIGRhc2hib2FyZC5cbiAgICogQHBhcmFtIGNoaWxkIFRoZSBjaGlsZCB0byBjaGFuZ2UuXG4gICAqL1xuICBhc3luYyB1cGRhdGVEYXNoYm9hcmRDaGlsZHJlbihjaGlsZDogRGFzaGJvYXJkQ2hpbGRDaGFuZ2UgfCBEYXNoYm9hcmRDaGFuZ2UpIHtcbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSBjaGlsZDtcbiAgICBjb25zdCBkYXNoYm9hcmRNTzogQ29udGV4dERhc2hib2FyZE1hbmFnZWRPYmplY3QgPSB0aGlzLm1vO1xuICAgIGNvbnN0IG1hcHBlZENoaWxkcmVuOiB7IFtpZDogc3RyaW5nXTogV2lkZ2V0IH0gPSBrZXlCeShcbiAgICAgIGNoaWxkcmVuLm1hcChjID0+IHRoaXMuY29tcG9uZW50VG9XaWRnZXQoYykpLFxuICAgICAgJ2lkJ1xuICAgICk7XG4gICAgZGFzaGJvYXJkTU8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlbiA9IG1hcHBlZENoaWxkcmVuO1xuICAgIHJldHVybiB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLnVwZGF0ZShkYXNoYm9hcmRNTyk7XG4gIH1cblxuICAvKipcbiAgICogQ29waWVzIHRoZSBkYXNoYm9hcmQgYW5kIGN1cnJlbnQgY29udGV4dCB0byBhIGNsaXBib2FyZC5cbiAgICovXG4gIGFzeW5jIGNvcHlEYXNoYm9hcmQoKSB7XG4gICAgY29uc3Qgdmlld0NvbnRleHQgPSB0aGlzLnJvdXRlLnBhcmVudC5zbmFwc2hvdC5kYXRhPy5jb250ZXh0O1xuICAgIGlmICh0aGlzLmNhbkNvcHlEYXNoYm9hcmQodmlld0NvbnRleHQpKSB7XG4gICAgICB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmNvcHlDbGlwYm9hcmQgPSB7XG4gICAgICAgIGRhc2hib2FyZDogY2xvbmVEZWVwKHRoaXMubW8uYzh5X0Rhc2hib2FyZCksXG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBjb250ZXh0OiB2aWV3Q29udGV4dCxcbiAgICAgICAgICBjb250ZXh0RGF0YTogdGhpcy5jb250ZXh0XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGlmICh2aWV3Q29udGV4dCkge1xuICAgICAgICBjb25zdCBjdHggPSB2aWV3Q29udGV4dC5zcGxpdCgnLycpLnNoaWZ0KCk7XG4gICAgICAgIGNvbnN0IG1zZyA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICdEYXNoYm9hcmQgY29waWVkLiBOYXZpZ2F0ZSB0byB0aGUgZGVzaXJlZCB7eyBjdHggfX0gYW5kIHNlbGVjdCBcIlBhc3RlIGRhc2hib2FyZFwiJyxcbiAgICAgICAgICB7IGN0eCB9XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuYWxlcnQuc3VjY2Vzcyhtc2cpO1xuICAgICAgfVxuICAgICAgdGhpcy5hY3Rpb25CYXJTZXJ2aWNlLnJlZnJlc2goKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSBjb21wbGV0ZSBkYXNoYm9hcmQgYW5kIG5hdmlnYXRlIGF3YXkuXG4gICAqL1xuICBhc3luYyBkZWxldGVEYXNoYm9hcmQoKSB7XG4gICAgYXdhaXQgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5kZWxldGUodGhpcy5tbyk7XG4gICAgaWYgKHRoaXMucm91dGUucGFyZW50KSB7XG4gICAgICBjb25zdCByb3V0ZSA9IHRoaXMucm91dGUucGFyZW50LnNuYXBzaG90LnVybC5tYXAoc2VnbWVudCA9PiBzZWdtZW50LnBhdGgpLmpvaW4oJy8nKTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwocm91dGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFZGl0cyB0aGUgY3VycmVudCBkYXNoYm9hcmRcbiAgICovXG4gIGFzeW5jIGVkaXREYXNoYm9hcmQoKSB7XG4gICAgY29uc3QgaXNSZXBvcnQgPSB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmlzUmVwb3J0KHRoaXMubW8pO1xuICAgIGlmIChpc1JlcG9ydCkge1xuICAgICAgY29uc3QgeyBuYW1lLCBpY29uLCBwcmlvcml0eSwgYzh5X0lzTmF2aWdhdG9yTm9kZSwgZGVzY3JpcHRpb24gfSA9IHRoaXMuY29udGV4dDtcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5kYXNoYm9hcmQsIHsgbmFtZSwgaWNvbiwgcHJpb3JpdHksIGM4eV9Jc05hdmlnYXRvck5vZGUsIGRlc2NyaXB0aW9uIH0pO1xuICAgIH1cbiAgICBjb25zdCBpbml0aWFsU3RhdGUgPSB7XG4gICAgICBkYXNoYm9hcmQ6IHRoaXMuZGFzaGJvYXJkLFxuICAgICAgZGV2aWNlVHlwZTogdGhpcy5jb250ZXh0LnR5cGUsXG4gICAgICBpc0RldmljZVR5cGU6IHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2UuaXNEZXZpY2VUeXBlKHRoaXMubW8pLFxuICAgICAgaXNOYW1lZERhc2hib2FyZDogdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5pc05hbWVkKHRoaXMubW8pLFxuICAgICAgaXNSZXBvcnRcbiAgICB9O1xuICAgIGNvbnN0IG1vZGFsID0gdGhpcy5ic01vZGFsLnNob3coRGFzaGJvYXJkRGV0YWlsQ29tcG9uZW50LCB7XG4gICAgICBjbGFzczogJ21vZGFsLWxnJyxcbiAgICAgIGFyaWFEZXNjcmliZWRieTogJ21vZGFsLWJvZHknLFxuICAgICAgYXJpYUxhYmVsbGVkQnk6ICdtb2RhbC10aXRsZScsXG4gICAgICBpbml0aWFsU3RhdGUsXG4gICAgICBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlXG4gICAgfSkuY29udGVudCBhcyBEYXNoYm9hcmREZXRhaWxDb21wb25lbnQ7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhc2hib2FyZE1PID0gY2xvbmVEZWVwKHRoaXMubW8pO1xuICAgICAgY29uc3QgY2ZnID0gYXdhaXQgbW9kYWwucmVzdWx0O1xuICAgICAgaWYgKGlzUmVwb3J0KSB7XG4gICAgICAgIGNvbnN0IHsgbmFtZSwgaWNvbiwgYzh5X0lzTmF2aWdhdG9yTm9kZSwgcHJpb3JpdHksIGRlc2NyaXB0aW9uLCAuLi5kYXNoYm9hcmRDZmcgfSA9IGNmZztcbiAgICAgICAgZGFzaGJvYXJkTU8uYzh5X0Rhc2hib2FyZCA9IGRhc2hib2FyZENmZztcbiAgICAgICAgdGhpcy51cGRhdGVSZXBvcnQoe1xuICAgICAgICAgIGlkOiB0aGlzLmNvbnRleHQuaWQsXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBpY29uLFxuICAgICAgICAgIGM4eV9Jc05hdmlnYXRvck5vZGUsXG4gICAgICAgICAgcHJpb3JpdHksXG4gICAgICAgICAgZGVzY3JpcHRpb25cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXNoYm9hcmRNTy5jOHlfRGFzaGJvYXJkID0gY2ZnO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLnVwZGF0ZShkYXNoYm9hcmRNTyk7XG4gICAgICBhd2FpdCB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLnJlZnJlc2hUYWJzKGRhc2hib2FyZE1PKTtcbiAgICAgIHRoaXMub25Mb2FkKCk7XG4gICAgICBtb2RhbC5jbG9zZSgpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAvLyBpbnRlbmRlZCBlbXB0eVxuICAgIH1cbiAgfVxuXG4gIGdldCBpc0RldmljZVR5cGVEYXNoYm9hcmQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5kYXNoYm9hcmQ/LmRldmljZVR5cGUgJiYgISF0aGlzLmRhc2hib2FyZC5kZXZpY2VUeXBlVmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogRWRpdHMgYSB3aWRnZXQgb24gdGhlIGRhc2hib2FyZC5cbiAgICogQHBhcmFtIGNoYW5nZSBUaGUgd2lkZ2V0IGNoYW5nZSBldmVudC5cbiAgICovXG4gIGFzeW5jIGVkaXRXaWRnZXQoY2hhbmdlOiBXaWRnZXRDaGFuZ2UpIHtcbiAgICBjb25zdCB7IHgsIHksIHdpZHRoLCBoZWlnaHQgfSA9IGNoYW5nZS5zb3VyY2U7XG4gICAgY29uc3QgY29tcG9uZW50ID0gYXdhaXQgdGhpcy53aWRnZXRTZXJ2aWNlLmdldFdpZGdldERlZmluaXRpb24oXG4gICAgICBjaGFuZ2Uud2lkZ2V0Lm5hbWUgfHwgY2hhbmdlLndpZGdldC5jb21wb25lbnRJZFxuICAgICk7XG4gICAgaWYgKCFjb21wb25lbnQpIHtcbiAgICAgIHRoaXMuYWRkV2lkZ2V0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGF3YWl0IHRoaXMuYWRkV2lkZ2V0KHtcbiAgICAgIC4uLmNvbXBvbmVudCxcbiAgICAgIGRhdGE6IHsgLi4uY29tcG9uZW50LmRhdGEsIC4uLmNoYW5nZS53aWRnZXQsIF94OiB4LCBfeTogeSwgX3dpZHRoOiB3aWR0aCwgX2hlaWdodDogaGVpZ2h0IH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgd2lkZ2V0IHRvIHRoZSBkYXNoYm9hcmQuXG4gICAqIEBwYXJhbSBzZWxlY3RlZCBEZWZpbmUgYSBzZWxlY3RlZCBjb21wb25lbnQgdG8gc3dpdGNoIHRvIGVkaXQgbW9kZSBkaXJlY3RseS5cbiAgICovXG4gIGFzeW5jIGFkZFdpZGdldChzZWxlY3RlZD86IER5bmFtaWNDb21wb25lbnREZWZpbml0aW9uKSB7XG4gICAgY29uc3QgaW5pdGlhbFN0YXRlID0ge1xuICAgICAgbW86IHRoaXMubW8sXG4gICAgICBjb250ZXh0OiB0aGlzLmNvbnRleHQuYzh5X1JlcG9ydCA/IHt9IDogdGhpcy5jb250ZXh0LFxuICAgICAgc2VsZWN0ZWQ6IGNsb25lRGVlcChzZWxlY3RlZClcbiAgICB9O1xuXG4gICAgY29uc3QgbW9kYWwgPSB0aGlzLmJzTW9kYWwuc2hvdyhXaWRnZXRDb25maWdDb21wb25lbnQsIHtcbiAgICAgIGNsYXNzOiAnbW9kYWwtbGcnLFxuICAgICAgYXJpYURlc2NyaWJlZGJ5OiAnbW9kYWwtYm9keScsXG4gICAgICBhcmlhTGFiZWxsZWRCeTogJ21vZGFsLXRpdGxlJyxcbiAgICAgIGluaXRpYWxTdGF0ZSxcbiAgICAgIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWVcbiAgICB9KS5jb250ZW50IGFzIFdpZGdldENvbmZpZ0NvbXBvbmVudDtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBuZXdXaWRnZXQgPSBhd2FpdCBtb2RhbC5yZXN1bHQ7XG4gICAgICBpZiAoIXRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlbikge1xuICAgICAgICB0aGlzLm1vLmM4eV9EYXNoYm9hcmQuY2hpbGRyZW4gPSB7fTtcbiAgICAgIH1cbiAgICAgIHRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlbltuZXdXaWRnZXQuaWRdID0gbmV3V2lkZ2V0O1xuICAgICAgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS51cGRhdGUodGhpcy5tbyk7XG4gICAgICBuZXdXaWRnZXQuY2xhc3NlcyA9IHRoaXMubWVyZ2VXaWRnZXRDbGFzc2VzKG5ld1dpZGdldCk7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZVdpZGdldChuZXdXaWRnZXQpO1xuICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgLy8gaW50ZW5kZWQgZW1wdHlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBhIHdpZGdldCBvciBhZGRzIGEgbmV3IG9uZSBpZiBpdCBkb2Vzbid0IGV4aXN0IG9uXG4gICAqIHRoZSBkYXNoYm9hcmQuXG4gICAqIEBwYXJhbSB3aWRnZXQgVGhlIG5ldyB3aWRnZXRcbiAgICovXG4gIGFzeW5jIHVwZGF0ZVdpZGdldCh3aWRnZXQpIHtcbiAgICBjb25zdCBpbmRleCA9IGZpbmRJbmRleCh0aGlzLndpZGdldHMsIHsgaWQ6IHdpZGdldC5pZCB9KTtcbiAgICBjb25zdCBpc05ldyA9IGluZGV4ID09PSAtMTtcbiAgICBjb25zdCBtYXBwZWRXaWRnZXQgPSBhd2FpdCB0aGlzLndpZGdldFNlcnZpY2UubWFwTGVnYWN5KHdpZGdldCk7XG4gICAgaWYgKGlzTmV3KSB7XG4gICAgICB0aGlzLndpZGdldHMucHVzaChtYXBwZWRXaWRnZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndpZGdldHMuc3BsaWNlKGluZGV4LCAxLCBtYXBwZWRXaWRnZXQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgd2lkZ2V0IGFuZCByZWFycmFuZ2VzIHRoZSByZW1haW5pbmcgb25lc1xuICAgKiBpZiBuZWNlc3NhcnkuXG4gICAqIEBwYXJhbSBjaGFuZ2UgVGhlIGNoYW5nZSBldmVudC5cbiAgICovXG4gIGFzeW5jIGRlbGV0ZVdpZGdldChjaGFuZ2U6IFdpZGdldENoYW5nZSkge1xuICAgIGNvbnN0IHdpZGdldFRpdGxlID0gY2hhbmdlLndpZGdldC50aXRsZTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5tb2RhbC5jb25maXJtKFxuICAgICAgICBnZXR0ZXh0KCdSZW1vdmUgd2lkZ2V0JyksXG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgIGdldHRleHQoXG4gICAgICAgICAgICAnWW91IGFyZSBhYm91dCB0byByZW1vdmUgd2lkZ2V0IFwie3sgd2lkZ2V0VGl0bGUgfX1cIiBmcm9tIHlvdXIgZGFzaGJvYXJkLiBEbyB5b3Ugd2FudCB0byBwcm9jZWVkPydcbiAgICAgICAgICApLFxuICAgICAgICAgIHsgd2lkZ2V0VGl0bGUgfVxuICAgICAgICApLFxuICAgICAgICBTdGF0dXMuREFOR0VSLFxuICAgICAgICB7XG4gICAgICAgICAgb2s6IGdldHRleHQoJ1JlbW92ZScpLFxuICAgICAgICAgIGNhbmNlbDogZ2V0dGV4dCgnQ2FuY2VsJylcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBvbiBjYW5jZWw6IGRvIG5vdGhpbmdcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgeyB3aWRnZXQsIHNvdXJjZSB9ID0gY2hhbmdlO1xuICAgICAgZGVsZXRlIHRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlblt3aWRnZXQuaWRdO1xuICAgICAgY29uc3QgcmVtb3ZlZCA9IHRoaXMud2lkZ2V0cy5maW5kKCh7IGlkIH0pID0+IGlkID09PSB3aWRnZXQuaWQpO1xuICAgICAgdGhpcy53aWRnZXRzLnNwbGljZSh0aGlzLndpZGdldHMuaW5kZXhPZihyZW1vdmVkKSwgMSk7XG5cbiAgICAgIGNvbnN0IHsgZGFzaGJvYXJkIH0gPSBzb3VyY2U7XG4gICAgICBkYXNoYm9hcmQuY2hpbGRyZW4gPSBkYXNoYm9hcmQuY2hpbGRyZW4uZmlsdGVyKGMgPT4gYy5kYXRhLmlkICE9PSB3aWRnZXQuaWQpO1xuXG4gICAgICAvLyB1c2luZyBzZXRUaW1lb3V0IHRvIGdpdmUgdGhlIGNvbXBvbmVudCB0aGUgY2hhbmNlIHRvIHJlbW92ZSBpdC5cbiAgICAgIGNvbnN0IHNsZWVwID0gdGltZW91dCA9PiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgdGltZW91dCkpO1xuICAgICAgYXdhaXQgc2xlZXAoMCk7XG5cbiAgICAgIGNvbnN0IGNoaWxkID0gbmV3IERhc2hib2FyZENoaWxkQ2hhbmdlKHNvdXJjZSk7XG4gICAgICBjaGlsZC5jb2xsYXBzZVVwQWxsKCk7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZURhc2hib2FyZENoaWxkcmVuKGNoaWxkKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgaXMgYSB3b3JrYXJvdW5kIHRvIGVuc3VyZSB0aGF0IHRoZSBkcmFnZ2VkLWVsZW1lbnRcbiAgICogKHdoaWNoIGlzIGF0dGFjaGVkIHRvIHRoZSBib2R5KSBoYXMgdGhlIHJpZ2h0IHN0eWxpbmcuXG4gICAqL1xuICBhZGREYXNoYm9hcmRDbGFzc1RvQm9keSgpIHtcbiAgICB0aGlzLmNsYXNzLnNwbGl0KCcgJykuZm9yRWFjaChjc3NDbGFzcyA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGRvY3VtZW50LmJvZHksIGNzc0NsYXNzKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIGEgd29ya2Fyb3VuZCB0byBlbnN1cmUgdGhhdCB0aGUgZHJhZ2dlZC1lbGVtZW50XG4gICAqICh3aGljaCBpcyBhdHRhY2hlZCB0byB0aGUgYm9keSkgaGFzIHRoZSByaWdodCBzdHlsaW5nLlxuICAgKi9cbiAgcmVtb3ZlRGFzaGJvYXJkQ2xhc3NGcm9tQm9keSgpIHtcbiAgICB0aGlzLmNsYXNzLnNwbGl0KCcgJykuZm9yRWFjaChjc3NDbGFzcyA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGRvY3VtZW50LmJvZHksIGNzc0NsYXNzKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSBkYXNoYm9hcmQgc2V0dGluZ3MgdG8gZnJvemVuIG9yIHZpY2UgdmVyc2EuXG4gICAqIEBwYXJhbSBzZXR0aW5ncyBUaGUgY3VycmVudCBzZXR0aW5ncyBvZiB0aGUgZGFzaGJvYXJkLlxuICAgKi9cbiAgYXN5bmMgdG9nZ2xlRnJlZXplKHNldHRpbmdzOiBEYXNoYm9hcmRTZXR0aW5ncykge1xuICAgIHRoaXMudG9nZ2xlSXNGcm96ZW5GbGFnKHNldHRpbmdzKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS51cGRhdGUodGhpcy5tbyk7XG4gICAgICBpZiAodGhpcy5kYXNoYm9hcmQuaXNGcm96ZW4pIHtcbiAgICAgICAgdGhpcy5hbGVydC5zdWNjZXNzKGdldHRleHQoJ1lvdXIgZGFzaGJvYXJkIGlzIGxvY2tlZCBub3cuJykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hbGVydC5zdWNjZXNzKGdldHRleHQoJ1lvdXIgZGFzaGJvYXJkIGlzIHVubG9ja2VkIG5vdy4nKSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIHRoaXMuYWxlcnQuYWRkU2VydmVyRmFpbHVyZShleCk7XG4gICAgICB0aGlzLnRvZ2dsZUlzRnJvemVuRmxhZyhzZXR0aW5ncyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVSZXBvcnQobW86IFBhcnRpYWw8SU1hbmFnZWRPYmplY3Q+KSB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5pbnZlbnRvcnkudXBkYXRlKG1vKTtcbiAgICB0aGlzLmNvbnRleHQgPSByZXMuZGF0YTtcbiAgICBpZiAodGhpcy5yb3V0ZS5wYXJlbnQpIHtcbiAgICAgIHRoaXMucm91dGUucGFyZW50LnNuYXBzaG90LmRhdGEuY29udGV4dERhdGEgPSB0aGlzLmNvbnRleHQ7XG4gICAgfVxuICAgIHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2UudXBkYXRlTmF2aWdhdG9ySXRlbShyZXMuZGF0YSk7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZUlzRnJvemVuRmxhZyhzZXR0aW5nczogRGFzaGJvYXJkU2V0dGluZ3MpIHtcbiAgICBzZXR0aW5ncy5pc0Zyb3plbiA9ICFzZXR0aW5ncy5pc0Zyb3plbjtcbiAgICB0aGlzLmRhc2hib2FyZC5pc0Zyb3plbiA9IHNldHRpbmdzLmlzRnJvemVuO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkQ29udGV4dERhc2hib2FyZCgpIHtcbiAgICB0aGlzLmRhdGFTdWIgPSB0aGlzLnJvdXRlLmRhdGEuc3Vic2NyaWJlKCh7IGRhc2hib2FyZCB9KSA9PiB7XG4gICAgICB0aGlzLmNvbnRleHQgPSB0aGlzLnJvdXRlLnBhcmVudC5zbmFwc2hvdC5kYXRhLmNvbnRleHREYXRhO1xuICAgICAgdGhpcy50aXRsZSA9IHRoaXMuY29udGV4dD8ubmFtZTtcbiAgICAgIHRoaXMubW8gPSBkYXNoYm9hcmQ7XG4gICAgICB0aGlzLmRhc2hib2FyZCA9IHRoaXMubW8uYzh5X0Rhc2hib2FyZDtcbiAgICAgIHRoaXMub25Mb2FkKHRydWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkTmFtZWREYXNoYm9hcmQoKSB7XG4gICAgdGhpcy5kYXRhU3ViID0gdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZVxuICAgICAgLmdldE5hbWVkRGFzaGJvYXJkT3JDcmVhdGUodGhpcy5uYW1lLCB0aGlzLmRlZmF1bHRXaWRnZXRzLCB0aGlzLmNvbnRleHQpXG4gICAgICAuc3Vic2NyaWJlKG1vID0+IHtcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gdGhpcy5jb250ZXh0IHx8IHt9O1xuICAgICAgICB0aGlzLm1vID0gbW87XG4gICAgICAgIHRoaXMuZGFzaGJvYXJkID0gdGhpcy5tby5jOHlfRGFzaGJvYXJkO1xuICAgICAgICB0aGlzLm9uTG9hZCh0cnVlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBvbkxvYWQodHJhY2tFeHBlcmllbmNlPzogYm9vbGVhbikge1xuICAgIGNvbnN0IGNhbkVkaXREYXNoYm9hcmQgPSBhd2FpdCB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmNhbkVkaXREYXNoYm9hcmQodGhpcy5tbyk7XG4gICAgdGhpcy5kaXNhYmxlZCA9ICFjYW5FZGl0RGFzaGJvYXJkO1xuICAgIHRoaXMuY2FuQ29weSA9XG4gICAgICB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmlzRGV2aWNlRGFzaGJvYXJkKHRoaXMubW8pIHx8XG4gICAgICB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmlzRGV2aWNlVHlwZSh0aGlzLm1vKSB8fFxuICAgICAgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5pc0dyb3VwRGFzaGJvYXJkKHRoaXMubW8pO1xuICAgIGNvbnN0IGRhc2hib2FyZENoaWxkcmVuID0gY2xvbmVEZWVwKHRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlbik7XG4gICAgY29uc3QgaXNEZXZpY2VUeXBlID0gdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5pc0RldmljZVR5cGUodGhpcy5tbyk7XG4gICAgY29uc3QgaXNSZXBvcnQgPSB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmlzUmVwb3J0KHRoaXMubW8pO1xuICAgIGNvbnN0IGRhc2hib2FyZENsYXNzZXMgPSB7XG4gICAgICAnYzh5LWdyaWQtZGFzaGJvYXJkJzogdHJ1ZSxcbiAgICAgIGRhc2hib2FyZDogdHJ1ZSxcbiAgICAgIC4uLnRoaXMuZGFzaGJvYXJkLmNsYXNzZXNcbiAgICB9O1xuXG4gICAgdGhpcy53aWRnZXRzID0gYXdhaXQgUHJvbWlzZS5hbGw8V2lkZ2V0PihcbiAgICAgIHZhbHVlcyhkYXNoYm9hcmRDaGlsZHJlbikubWFwKHdpZGdldCA9PiB7XG4gICAgICAgIHdpZGdldC5jbGFzc2VzID0gdGhpcy5tZXJnZVdpZGdldENsYXNzZXMod2lkZ2V0KTtcbiAgICAgICAgaWYgKGlzRGV2aWNlVHlwZSkge1xuICAgICAgICAgIHRoaXMuYXBwbHlEZXZpY2VUYXJnZXQod2lkZ2V0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHJhY2tFeHBlcmllbmNlKSB7XG4gICAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudCgnbG9hZFdpZGdldCcsIHtcbiAgICAgICAgICAgIHdpZGdldE5hbWU6IHdpZGdldC5jb21wb25lbnRJZCB8fCB3aWRnZXQubmFtZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLndpZGdldFNlcnZpY2UubWFwTGVnYWN5KHdpZGdldCk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5jbGFzcyA9IE9iamVjdC5rZXlzKGRhc2hib2FyZENsYXNzZXMpLmpvaW4oJyAnKTtcbiAgICBpZiAoaXNSZXBvcnQpIHtcbiAgICAgIHRoaXMuYWRkUmVwb3J0RGFzaGJvYXJkU2V0dGluZ3MoKTtcbiAgICB9XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2VXaWRnZXRDbGFzc2VzKHdpZGdldDogV2lkZ2V0KSB7XG4gICAgY29uc3QgaGFzSGVhZGVyQ2xhc3MgPSBXSURHRVRfSEVBREVSX0NMQVNTRVMuZmluZChcbiAgICAgIGVsID0+IHdpZGdldC5jbGFzc2VzICYmIHdpZGdldC5jbGFzc2VzW2VsLmNsYXNzXVxuICAgICk7XG4gICAgY29uc3Qgd2lkZ2V0Q2xhc3NlcyA9IGhhc0hlYWRlckNsYXNzXG4gICAgICA/IHsgLi4ud2lkZ2V0LmNsYXNzZXMgfVxuICAgICAgOiB7IC4uLnRoaXMuZGFzaGJvYXJkLndpZGdldENsYXNzZXMsIC4uLndpZGdldC5jbGFzc2VzIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIGNhcmQ6IHRydWUsXG4gICAgICAnY2FyZC1kYXNoYm9hcmQnOiB0cnVlLFxuICAgICAgW2tlYmFiQ2FzZSh3aWRnZXQuY29tcG9uZW50SWQgfHwgd2lkZ2V0Lm5hbWUpXTogdHJ1ZSxcbiAgICAgIC4uLndpZGdldENsYXNzZXNcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wb25lbnRUb1dpZGdldChjaGlsZDogRGFzaGJvYXJkQ2hpbGRDb21wb25lbnQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ub21pdChjaGlsZC5kYXRhLCBbJ2NvbXBvbmVudFRyYW5zZm9ybUNvbmZpZ1dpdGhDb250ZXh0JywgJ3RyYW5zZm9ybUNvbmZpZ1dpdGhDb250ZXh0J10pLCAvLyByZW1vdmUgbGVnYWN5XG4gICAgICAuLi4oe1xuICAgICAgICBfeDogY2hpbGQueCxcbiAgICAgICAgX3k6IGNoaWxkLnksXG4gICAgICAgIF93aWR0aDogY2hpbGQud2lkdGgsXG4gICAgICAgIF9oZWlnaHQ6IGNoaWxkLmhlaWdodFxuICAgICAgfSBhcyBXaWRnZXQpXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkUmVwb3J0RGFzaGJvYXJkU2V0dGluZ3MoKSB7XG4gICAgdGhpcy5zZXRUaXRsZSA9IHRydWU7XG4gICAgdGhpcy50aXRsZSA9IHRoaXMuY29udGV4dC5uYW1lO1xuICAgIHRoaXMuYnJlYWRjcnVtYlNldHRpbmdzID0ge1xuICAgICAgaWNvbjogJ3RoJyxcbiAgICAgIGxhYmVsOiAnUmVwb3J0cycsXG4gICAgICBwYXRoOiAncmVwb3J0cydcbiAgICB9O1xuICAgIHRoaXMuY2FuRGVsZXRlID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGNhbkNvcHlEYXNoYm9hcmQodmlld0NvbnRleHQ6IFZpZXdDb250ZXh0KTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnZhbGlkRGFzaGJvYXJkQ2hpbGRyZW4oKSAmJiB2aWV3Q29udGV4dCkge1xuICAgICAgY29uc3QgY3R4ID0gdmlld0NvbnRleHQuc3BsaXQoJy8nKS5zaGlmdCgpO1xuICAgICAgY29uc3QgbXNnID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICdPbmx5IGRhc2hib2FyZHMgd2l0aCB3aWRnZXRzIHJlZmVyZW5jaW5nIHRoZSBjdXJyZW50IHt7IGN0eCB9fSBjYW4gYmUgY29waWVkLicsXG4gICAgICAgIHsgY3R4IH1cbiAgICAgICk7XG4gICAgICB0aGlzLmFsZXJ0Lndhcm5pbmcobXNnKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkRGFzaGJvYXJkQ2hpbGRyZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGV2ZXJ5KHRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlbiwgY2hpbGQgPT4ge1xuICAgICAgY29uc3QgY29uZmlnID0gY2hpbGQuY29uZmlnIHx8IHt9O1xuICAgICAgY29uc3QgZGF0YVBvaW50cyA9IGNvbmZpZy5kYXRhcG9pbnRzIHx8IFtdO1xuXG4gICAgICByZXR1cm4gIShcbiAgICAgICAgKGNvbmZpZy5kZXZpY2UgJiYgY29uZmlnLmRldmljZS5pZCAhPT0gdGhpcy5jb250ZXh0LmlkKSB8fFxuICAgICAgICBzb21lKGRhdGFQb2ludHMsIGRhdGFQb2ludCA9PiBkYXRhUG9pbnQuX190YXJnZXQuaWQgIT09IHRoaXMuY29udGV4dC5pZClcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxjOHktdGl0bGU+XG4gIHt7IHRpdGxlIH19XG48L2M4eS10aXRsZT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCInbW9yZSdcIiAqbmdJZj1cImRlZmF1bHRXaWRnZXRzLmxlbmd0aCA+IDBcIj5cbiAgPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIHRpdGxlPVwie3sgJ1Jlc2V0IGRhc2hib2FyZCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgIGNsYXNzPVwiYnRuIGJ0bi1jbGVhblwiXG4gICAgcHgtZXZlbnQ9XCJSZXNldCBkYXNoYm9hcmRcIlxuICAgIChjbGljayk9XCJyZXN0b3JlKClcIlxuICAgIFtkaXNhYmxlZF09XCJkYXNoYm9hcmQ/LmlzRnJvemVuIHx8IGRpc2FibGVkXCJcbiAgPlxuICAgIDxpIGM4eUljb249XCJyZXNldFwiIGNsYXNzPVwibS1yLTRcIj48L2k+XG4gICAge3sgJ1Jlc2V0IGRhc2hib2FyZCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktd2lkZ2V0cy1kYXNoYm9hcmRcbiAgW2NvbnRleHRdPVwiY29udGV4dFwiXG4gIFtjb250ZXh0RGFzaGJvYXJkXT1cImRhc2hib2FyZFwiXG4gIFt3aWRnZXRzXT1cIndpZGdldHNcIlxuICBbc2V0dGluZ3NdPVwie1xuICAgIGlzTG9hZGluZzogaXNMb2FkaW5nLFxuICAgIGlzRnJvemVuOiBkYXNoYm9hcmQ/LmlzRnJvemVuLFxuICAgIGlzRGlzYWJsZWQ6IGRpc2FibGVkLFxuICAgIGNhbkRlbGV0ZTogY2FuRGVsZXRlLFxuICAgIHRyYW5zbGF0ZVdpZGdldFRpdGxlOiBkYXNoYm9hcmQ/LnRyYW5zbGF0ZVdpZGdldFRpdGxlLFxuICAgIGFsbG93RnVsbHNjcmVlbjogbW9kdWxlQ29uZmlnLmFsbG93RnVsbHNjcmVlbixcbiAgICB0aXRsZTogc2V0VGl0bGUgPyBkYXNoYm9hcmQubmFtZSB8fCB0aXRsZSA6IHVuZGVmaW5lZCxcbiAgICB3aWRnZXRNYXJnaW46IGRhc2hib2FyZD8ud2lkZ2V0TWFyZ2luLFxuICAgIGNhbkNvcHk6IGNhbkNvcHlcbiAgfVwiXG4gIFticmVhZGNydW1iXT1cImJyZWFkY3J1bWJTZXR0aW5nc1wiXG4gIChvbkZyZWV6ZSk9XCJ0b2dnbGVGcmVlemUoJGV2ZW50KVwiXG4gIChvbkNoYW5nZURhc2hib2FyZCk9XCJ1cGRhdGVEYXNoYm9hcmRDaGlsZHJlbigkZXZlbnQpXCJcbiAgKG9uQWRkV2lkZ2V0KT1cImFkZFdpZGdldCgpXCJcbiAgKG9uRWRpdFdpZGdldCk9XCJlZGl0V2lkZ2V0KCRldmVudClcIlxuICAob25EZWxldGVXaWRnZXQpPVwiZGVsZXRlV2lkZ2V0KCRldmVudClcIlxuICAob25DaGFuZ2VTdGFydCk9XCJhZGREYXNoYm9hcmRDbGFzc1RvQm9keSgpXCJcbiAgKG9uQ2hhbmdlRW5kKT1cInJlbW92ZURhc2hib2FyZENsYXNzRnJvbUJvZHkoKVwiXG4gIChvbkVkaXREYXNoYm9hcmQpPVwiZWRpdERhc2hib2FyZCgpXCJcbiAgKG9uQ29weURhc2hib2FyZCk9XCJjb3B5RGFzaGJvYXJkKClcIlxuICAob25EZWxldGVEYXNoYm9hcmQpPVwiZGVsZXRlRGFzaGJvYXJkKClcIlxuPjwvYzh5LXdpZGdldHMtZGFzaGJvYXJkPlxuIl19
490
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29udGV4dC1kYXNoYm9hcmQvY29udGV4dC1kYXNoYm9hcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vY29udGV4dC1kYXNoYm9hcmQvY29udGV4dC1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixZQUFZLEVBR1osb0JBQW9CLEVBSXBCLGdCQUFnQixFQUNoQixPQUFPLEVBQ1AsWUFBWSxFQUNaLE1BQU0sRUFJUCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBSUwsd0JBQXdCLEVBQ3hCLHFCQUFxQixFQUN0QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFB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RUFBRSxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUN2RCxJQUFJLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FDekUsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7c0hBeGZVLHlCQUF5QixrS0FzQzFCLHdCQUF3QjswR0F0Q3ZCLHlCQUF5Qiw2ZENuRHRDLDg4Q0E2Q0E7MkZETWEseUJBQXlCO2tCQVZyQyxTQUFTOytCQUNFLHVCQUF1QixRQUUzQjt3QkFDSixLQUFLLEVBQUU7O0tBRU47d0JBQ0QsS0FBSyxFQUFFLDhCQUE4QjtxQkFDdEM7OzBCQXdDRSxNQUFNOzJCQUFDLHdCQUF3Qjs0UEFwQ2xDLElBQUk7c0JBREgsS0FBSztnQkFHTixlQUFlO3NCQURkLEtBQUs7Z0JBR04sT0FBTztzQkFETixLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFHTixRQUFRO3NCQURQLEtBQUs7Z0JBR04sY0FBYztzQkFEYixLQUFLO2dCQUdOLE9BQU87c0JBRE4sS0FBSztnQkFHTixTQUFTO3NCQURSLEtBQUs7Z0JBR04sU0FBUztzQkFEUixLQUFLO2dCQUdOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFJTixLQUFLO3NCQURKLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQWN0aW9uQmFyU2VydmljZSxcbiAgQWxlcnRTZXJ2aWNlLFxuICBCcmVhZGNydW1iSXRlbSxcbiAgRGFzaGJvYXJkQ2hhbmdlLFxuICBEYXNoYm9hcmRDaGlsZENoYW5nZSxcbiAgRGFzaGJvYXJkQ2hpbGRDb21wb25lbnQsXG4gIERhc2hib2FyZFNldHRpbmdzLFxuICBEeW5hbWljQ29tcG9uZW50RGVmaW5pdGlvbixcbiAgR2FpbnNpZ2h0U2VydmljZSxcbiAgZ2V0dGV4dCxcbiAgTW9kYWxTZXJ2aWNlLFxuICBTdGF0dXMsXG4gIFZpZXdDb250ZXh0LFxuICBXaWRnZXQsXG4gIFdpZGdldENoYW5nZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgZmluZEluZGV4LCBrZXlCeSwgb21pdCwgdmFsdWVzLCBzb21lLCBrZWJhYkNhc2UsIGV2ZXJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIENvbnRleHREYXNoYm9hcmQsXG4gIENvbnRleHREYXNoYm9hcmRDb25maWcsXG4gIENvbnRleHREYXNoYm9hcmRNYW5hZ2VkT2JqZWN0LFxuICBDT05URVhUX0RBU0hCT0FSRF9DT05GSUcsXG4gIFdJREdFVF9IRUFERVJfQ0xBU1NFU1xufSBmcm9tICcuL2NvbnRleHQtZGFzaGJvYXJkLm1vZGVsJztcbmltcG9ydCB7IENvbnRleHREYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi9jb250ZXh0LWRhc2hib2FyZC5zZXJ2aWNlJztcbmltcG9ydCB7IERhc2hib2FyZERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vZGFzaGJvYXJkLWRldGFpbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2lkZ2V0Q29uZmlnQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXQtY29uZmlnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaWRnZXRTZXJ2aWNlIH0gZnJvbSAnLi93aWRnZXQuc2VydmljZSc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgSW52ZW50b3J5U2VydmljZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcblxuLyoqXG4gKiBUaGUgY29udGV4dCBkYXNoYm9hcmQgaXMgYSBkYXNoYm9hcmQgd2hpY2ggcmVzb2x2ZXMgaXQgZGF0YSBmcm9tIHRoZSBjdXJyZW50IGNvbnRleHQgKGRldmljZSBvciBncm91cClcbiAqIGl0IGlzIGRpc3BsYXllZCBvbi4gSXQgdXN1YWxseSB1c2VzIHRoZSByb3V0ZS5kYXRhIGZvciBpdCwgYnV0IHlvdSBjYW4gcGFzc1xuICogYSBkaWZmZXJlbnQgbWFuYWdlZE9iamVjdCB0byB0aGUgW21vXSBpbnB1dCBwYXJhbWV0ZXIgdG8gY2hhbmdlIHRoYXQgYmVoYXZpb3IuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1jb250ZXh0LWRhc2hib2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZXh0LWRhc2hib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHtcbiAgICBzdHlsZTogYFxuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgYCxcbiAgICBjbGFzczogJ2Rhc2hib2FyZCBjOHktZ3JpZC1kYXNoYm9hcmQnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgQ29udGV4dERhc2hib2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgbmFtZTogc3RyaW5nO1xuICBASW5wdXQoKVxuICBjaGlsZHJlbkNsYXNzZXMgPSAnJztcbiAgQElucHV0KClcbiAgY29udGV4dDogYW55O1xuICBASW5wdXQoKVxuICBzZXRUaXRsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBkZWZhdWx0V2lkZ2V0czogV2lkZ2V0W10gPSBbXTtcbiAgQElucHV0KClcbiAgY2FuQ29weTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpXG4gIGNhbkRlbGV0ZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpXG4gIGJyZWFkY3J1bWJTZXR0aW5nczogQnJlYWRjcnVtYkl0ZW07XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGNsYXNzID0gJyc7XG5cbiAgd2lkZ2V0czogV2lkZ2V0W10gPSBbXTtcbiAgbW86IENvbnRleHREYXNoYm9hcmRNYW5hZ2VkT2JqZWN0O1xuICBkYXNoYm9hcmQ6IENvbnRleHREYXNoYm9hcmQ7XG4gIHRpdGxlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBkYXRhU3ViOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGNvbnRleHREYXNoYm9hcmRTZXJ2aWNlOiBDb250ZXh0RGFzaGJvYXJkU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0OiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIEBJbmplY3QoQ09OVEVYVF9EQVNIQk9BUkRfQ09ORklHKSBwdWJsaWMgbW9kdWxlQ29uZmlnOiBDb250ZXh0RGFzaGJvYXJkQ29uZmlnLFxuICAgIHByaXZhdGUgd2lkZ2V0U2VydmljZTogV2lkZ2V0U2VydmljZSxcbiAgICBwcml2YXRlIGJzTW9kYWw6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW52ZW50b3J5OiBJbnZlbnRvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ2FpbnNpZ2h0U2VydmljZTogR2FpbnNpZ2h0U2VydmljZSxcbiAgICBwcml2YXRlIGFjdGlvbkJhclNlcnZpY2U6IEFjdGlvbkJhclNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9kYWw6IE1vZGFsU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLm5hbWUpIHtcbiAgICAgIHRoaXMubG9hZENvbnRleHREYXNoYm9hcmQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5sb2FkTmFtZWREYXNoYm9hcmQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIHRoZSBjdXJyZW50IGNvbnRleHQgdG8gdGhlIHdpZGdldFxuICAgKiBAcGFyYW0gd2lkZ2V0IFRoZSB3aWRnZXQgdG8gYXBwbHkgdGhlIGNvbnRleHQgdG8uXG4gICAqL1xuICBhcHBseURldmljZVRhcmdldCh3aWRnZXQpIHtcbiAgICBpZiAod2lkZ2V0LmNvbmZpZy5kZXZpY2UpIHtcbiAgICAgIHdpZGdldC5jb25maWcuZGV2aWNlID0geyBpZDogdGhpcy5jb250ZXh0LmlkLCBuYW1lOiB0aGlzLmNvbnRleHQubmFtZSB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSByb3V0ZSBsaXN0ZW5lci5cbiAgICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGFTdWIpIHtcbiAgICAgIHRoaXMuZGF0YVN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN0b3JlcyB0aGUgZGFzaGJvYXJkIHdpZGdldHMgdG8gdGhlIGRlZmF1bHQgd2lkZ2V0cy5cbiAgICovXG4gIGFzeW5jIHJlc3RvcmUoKSB7XG4gICAgY29uc3QgbWVzZyA9IGdldHRleHQoXG4gICAgICAnWW91IGFyZSBhYm91dCB0byByZXNldCB0aGlzIGRhc2hib2FyZC4gQWxsIGNoYW5nZXMgdG8gdGhlIGRhc2hib2FyZCB3aWxsIGdldCBsb3N0IGFuZCBjYW5ub3QgYmUgcmVjb3ZlcmVkLiBEbyB5b3Ugd2FudCB0byBwcm9jZWVkPydcbiAgICApO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMubW9kYWwuY29uZmlybShnZXR0ZXh0KCdSZXNldCBkYXNoYm9hcmQnKSwgbWVzZywgU3RhdHVzLldBUk5JTkcsIHtcbiAgICAgICAgb2s6IGdldHRleHQoJ1Jlc2V0YGRhc2hib2FyZGAnKSxcbiAgICAgICAgY2FuY2VsOiBnZXR0ZXh0KCdDYW5jZWwnKVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlbiA9IHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2UubWFwV2lkZ2V0cyh0aGlzLmRlZmF1bHRXaWRnZXRzKTtcbiAgICAgIGF3YWl0IHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2UudXBkYXRlKHRoaXMubW8pO1xuICAgICAgYXdhaXQgdGhpcy5vbkxvYWQoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHRoaXMuYWxlcnQuYWRkU2VydmVyRmFpbHVyZShlcnJvcik7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgYWxsIGRhc2hib2FyZHMgY2hpbGRyZW4ncy4gVXNlZnVsIGZvciBwb3NpdGlvbiBjaGFuZ2VzIG9uIHRoZSBkYXNoYm9hcmQuXG4gICAqIEBwYXJhbSBjaGlsZCBUaGUgY2hpbGQgdG8gY2hhbmdlLlxuICAgKi9cbiAgYXN5bmMgdXBkYXRlRGFzaGJvYXJkQ2hpbGRyZW4oY2hpbGQ6IERhc2hib2FyZENoaWxkQ2hhbmdlIHwgRGFzaGJvYXJkQ2hhbmdlKSB7XG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gY2hpbGQ7XG4gICAgY29uc3QgZGFzaGJvYXJkTU86IENvbnRleHREYXNoYm9hcmRNYW5hZ2VkT2JqZWN0ID0gdGhpcy5tbztcbiAgICBjb25zdCBtYXBwZWRDaGlsZHJlbjogeyBbaWQ6IHN0cmluZ106IFdpZGdldCB9ID0ga2V5QnkoXG4gICAgICBjaGlsZHJlbi5tYXAoYyA9PiB0aGlzLmNvbXBvbmVudFRvV2lkZ2V0KGMpKSxcbiAgICAgICdpZCdcbiAgICApO1xuICAgIGRhc2hib2FyZE1PLmM4eV9EYXNoYm9hcmQuY2hpbGRyZW4gPSBtYXBwZWRDaGlsZHJlbjtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS51cGRhdGUoZGFzaGJvYXJkTU8pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvcGllcyB0aGUgZGFzaGJvYXJkIGFuZCBjdXJyZW50IGNvbnRleHQgdG8gYSBjbGlwYm9hcmQuXG4gICAqL1xuICBhc3luYyBjb3B5RGFzaGJvYXJkKCkge1xuICAgIGNvbnN0IHZpZXdDb250ZXh0ID0gdGhpcy5yb3V0ZS5wYXJlbnQuc25hcHNob3QuZGF0YT8uY29udGV4dDtcbiAgICBpZiAodGhpcy5jYW5Db3B5RGFzaGJvYXJkKHZpZXdDb250ZXh0KSkge1xuICAgICAgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5jb3B5Q2xpcGJvYXJkID0ge1xuICAgICAgICBkYXNoYm9hcmQ6IGNsb25lRGVlcCh0aGlzLm1vLmM4eV9EYXNoYm9hcmQpLFxuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgY29udGV4dDogdmlld0NvbnRleHQsXG4gICAgICAgICAgY29udGV4dERhdGE6IHRoaXMuY29udGV4dFxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBpZiAodmlld0NvbnRleHQpIHtcbiAgICAgICAgY29uc3QgY3R4ID0gdmlld0NvbnRleHQuc3BsaXQoJy8nKS5zaGlmdCgpO1xuICAgICAgICBjb25zdCBtc2cgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAnRGFzaGJvYXJkIGNvcGllZC4gTmF2aWdhdGUgdG8gdGhlIGRlc2lyZWQge3sgY3R4IH19IGFuZCBzZWxlY3QgXCJQYXN0ZSBkYXNoYm9hcmRcIicsXG4gICAgICAgICAgeyBjdHggfVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmFsZXJ0LnN1Y2Nlc3MobXNnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWN0aW9uQmFyU2VydmljZS5yZWZyZXNoKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgY29tcGxldGUgZGFzaGJvYXJkIGFuZCBuYXZpZ2F0ZSBhd2F5LlxuICAgKi9cbiAgYXN5bmMgZGVsZXRlRGFzaGJvYXJkKCkge1xuICAgIGF3YWl0IHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2UuZGVsZXRlKHRoaXMubW8pO1xuICAgIGlmICh0aGlzLnJvdXRlLnBhcmVudCkge1xuICAgICAgY29uc3Qgcm91dGUgPSB0aGlzLnJvdXRlLnBhcmVudC5zbmFwc2hvdC51cmwubWFwKHNlZ21lbnQgPT4gc2VnbWVudC5wYXRoKS5qb2luKCcvJyk7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHJvdXRlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRWRpdHMgdGhlIGN1cnJlbnQgZGFzaGJvYXJkXG4gICAqL1xuICBhc3luYyBlZGl0RGFzaGJvYXJkKCkge1xuICAgIGNvbnN0IGlzUmVwb3J0ID0gdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5pc1JlcG9ydCh0aGlzLm1vKTtcbiAgICBpZiAoaXNSZXBvcnQpIHtcbiAgICAgIGNvbnN0IHsgbmFtZSwgaWNvbiwgcHJpb3JpdHksIGM4eV9Jc05hdmlnYXRvck5vZGUsIGRlc2NyaXB0aW9uIH0gPSB0aGlzLmNvbnRleHQ7XG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuZGFzaGJvYXJkLCB7IG5hbWUsIGljb24sIHByaW9yaXR5LCBjOHlfSXNOYXZpZ2F0b3JOb2RlLCBkZXNjcmlwdGlvbiB9KTtcbiAgICB9XG4gICAgY29uc3QgaW5pdGlhbFN0YXRlID0ge1xuICAgICAgZGFzaGJvYXJkOiB0aGlzLmRhc2hib2FyZCxcbiAgICAgIGRldmljZVR5cGU6IHRoaXMuY29udGV4dC50eXBlLFxuICAgICAgaXNEZXZpY2VUeXBlOiB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmlzRGV2aWNlVHlwZSh0aGlzLm1vKSxcbiAgICAgIGlzTmFtZWREYXNoYm9hcmQ6IHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2UuaXNOYW1lZCh0aGlzLm1vKSxcbiAgICAgIGlzUmVwb3J0XG4gICAgfTtcbiAgICBjb25zdCBtb2RhbCA9IHRoaXMuYnNNb2RhbC5zaG93KERhc2hib2FyZERldGFpbENvbXBvbmVudCwge1xuICAgICAgY2xhc3M6ICdtb2RhbC1sZycsXG4gICAgICBhcmlhRGVzY3JpYmVkYnk6ICdtb2RhbC1ib2R5JyxcbiAgICAgIGFyaWFMYWJlbGxlZEJ5OiAnbW9kYWwtdGl0bGUnLFxuICAgICAgaW5pdGlhbFN0YXRlLFxuICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZVxuICAgIH0pLmNvbnRlbnQgYXMgRGFzaGJvYXJkRGV0YWlsQ29tcG9uZW50O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXNoYm9hcmRNTyA9IGNsb25lRGVlcCh0aGlzLm1vKTtcbiAgICAgIGNvbnN0IGNmZyA9IGF3YWl0IG1vZGFsLnJlc3VsdDtcbiAgICAgIGlmIChpc1JlcG9ydCkge1xuICAgICAgICBjb25zdCB7IG5hbWUsIGljb24sIGM4eV9Jc05hdmlnYXRvck5vZGUsIHByaW9yaXR5LCBkZXNjcmlwdGlvbiwgLi4uZGFzaGJvYXJkQ2ZnIH0gPSBjZmc7XG4gICAgICAgIGRhc2hib2FyZE1PLmM4eV9EYXNoYm9hcmQgPSBkYXNoYm9hcmRDZmc7XG4gICAgICAgIHRoaXMudXBkYXRlUmVwb3J0KHtcbiAgICAgICAgICBpZDogdGhpcy5jb250ZXh0LmlkLFxuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgaWNvbixcbiAgICAgICAgICBjOHlfSXNOYXZpZ2F0b3JOb2RlLFxuICAgICAgICAgIHByaW9yaXR5LFxuICAgICAgICAgIGRlc2NyaXB0aW9uXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGFzaGJvYXJkTU8uYzh5X0Rhc2hib2FyZCA9IGNmZztcbiAgICAgIH1cblxuICAgICAgYXdhaXQgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS51cGRhdGUoZGFzaGJvYXJkTU8pO1xuICAgICAgYXdhaXQgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5yZWZyZXNoVGFicyhkYXNoYm9hcmRNTyk7XG4gICAgICB0aGlzLm9uTG9hZCgpO1xuICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgLy8gaW50ZW5kZWQgZW1wdHlcbiAgICB9XG4gIH1cblxuICBnZXQgaXNEZXZpY2VUeXBlRGFzaGJvYXJkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZGFzaGJvYXJkPy5kZXZpY2VUeXBlICYmICEhdGhpcy5kYXNoYm9hcmQuZGV2aWNlVHlwZVZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEVkaXRzIGEgd2lkZ2V0IG9uIHRoZSBkYXNoYm9hcmQuXG4gICAqIEBwYXJhbSBjaGFuZ2UgVGhlIHdpZGdldCBjaGFuZ2UgZXZlbnQuXG4gICAqL1xuICBhc3luYyBlZGl0V2lkZ2V0KGNoYW5nZTogV2lkZ2V0Q2hhbmdlKSB7XG4gICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSBjaGFuZ2Uuc291cmNlO1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IGF3YWl0IHRoaXMud2lkZ2V0U2VydmljZS5nZXRXaWRnZXREZWZpbml0aW9uKFxuICAgICAgY2hhbmdlLndpZGdldC5uYW1lIHx8IGNoYW5nZS53aWRnZXQuY29tcG9uZW50SWRcbiAgICApO1xuICAgIGlmICghY29tcG9uZW50KSB7XG4gICAgICB0aGlzLmFkZFdpZGdldCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmFkZFdpZGdldCh7XG4gICAgICAuLi5jb21wb25lbnQsXG4gICAgICBkYXRhOiB7IC4uLmNvbXBvbmVudC5kYXRhLCAuLi5jaGFuZ2Uud2lkZ2V0LCBfeDogeCwgX3k6IHksIF93aWR0aDogd2lkdGgsIF9oZWlnaHQ6IGhlaWdodCB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHdpZGdldCB0byB0aGUgZGFzaGJvYXJkLlxuICAgKiBAcGFyYW0gc2VsZWN0ZWQgRGVmaW5lIGEgc2VsZWN0ZWQgY29tcG9uZW50IHRvIHN3aXRjaCB0byBlZGl0IG1vZGUgZGlyZWN0bHkuXG4gICAqL1xuICBhc3luYyBhZGRXaWRnZXQoc2VsZWN0ZWQ/OiBEeW5hbWljQ29tcG9uZW50RGVmaW5pdGlvbikge1xuICAgIGNvbnN0IHBhcnRpYWxDbG9uZVNlbGVjdGVkID0gc2VsZWN0ZWRcbiAgICAgID8ge1xuICAgICAgICAgIC4uLnNlbGVjdGVkLFxuICAgICAgICAgIGRhdGE6IGNsb25lRGVlcChzZWxlY3RlZC5kYXRhKVxuICAgICAgICB9XG4gICAgICA6IHNlbGVjdGVkO1xuXG4gICAgY29uc3QgaW5pdGlhbFN0YXRlOiBQYXJ0aWFsPFdpZGdldENvbmZpZ0NvbXBvbmVudD4gPSB7XG4gICAgICBtbzogdGhpcy5tbyxcbiAgICAgIGNvbnRleHQ6IHRoaXMuY29udGV4dC5jOHlfUmVwb3J0ID8ge30gOiB0aGlzLmNvbnRleHQsXG4gICAgICBzZWxlY3RlZDogcGFydGlhbENsb25lU2VsZWN0ZWRcbiAgICB9O1xuXG4gICAgY29uc3QgbW9kYWwgPSB0aGlzLmJzTW9kYWwuc2hvdyhXaWRnZXRDb25maWdDb21wb25lbnQsIHtcbiAgICAgIGNsYXNzOiAnbW9kYWwtbGcnLFxuICAgICAgYXJpYURlc2NyaWJlZGJ5OiAnbW9kYWwtYm9keScsXG4gICAgICBhcmlhTGFiZWxsZWRCeTogJ21vZGFsLXRpdGxlJyxcbiAgICAgIGluaXRpYWxTdGF0ZSxcbiAgICAgIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWVcbiAgICB9KS5jb250ZW50IGFzIFdpZGdldENvbmZpZ0NvbXBvbmVudDtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBuZXdXaWRnZXQgPSBhd2FpdCBtb2RhbC5yZXN1bHQ7XG4gICAgICBpZiAoIXRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlbikge1xuICAgICAgICB0aGlzLm1vLmM4eV9EYXNoYm9hcmQuY2hpbGRyZW4gPSB7fTtcbiAgICAgIH1cbiAgICAgIHRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlbltuZXdXaWRnZXQuaWRdID0gbmV3V2lkZ2V0O1xuICAgICAgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS51cGRhdGUodGhpcy5tbyk7XG4gICAgICBuZXdXaWRnZXQuY2xhc3NlcyA9IHRoaXMubWVyZ2VXaWRnZXRDbGFzc2VzKG5ld1dpZGdldCk7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZVdpZGdldChuZXdXaWRnZXQpO1xuICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgLy8gaW50ZW5kZWQgZW1wdHlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBhIHdpZGdldCBvciBhZGRzIGEgbmV3IG9uZSBpZiBpdCBkb2Vzbid0IGV4aXN0IG9uXG4gICAqIHRoZSBkYXNoYm9hcmQuXG4gICAqIEBwYXJhbSB3aWRnZXQgVGhlIG5ldyB3aWRnZXRcbiAgICovXG4gIGFzeW5jIHVwZGF0ZVdpZGdldCh3aWRnZXQpIHtcbiAgICBjb25zdCBpbmRleCA9IGZpbmRJbmRleCh0aGlzLndpZGdldHMsIHsgaWQ6IHdpZGdldC5pZCB9KTtcbiAgICBjb25zdCBpc05ldyA9IGluZGV4ID09PSAtMTtcbiAgICBjb25zdCBtYXBwZWRXaWRnZXQgPSBhd2FpdCB0aGlzLndpZGdldFNlcnZpY2UubWFwTGVnYWN5KHdpZGdldCk7XG4gICAgaWYgKGlzTmV3KSB7XG4gICAgICB0aGlzLndpZGdldHMucHVzaChtYXBwZWRXaWRnZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndpZGdldHMuc3BsaWNlKGluZGV4LCAxLCBtYXBwZWRXaWRnZXQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgd2lkZ2V0IGFuZCByZWFycmFuZ2VzIHRoZSByZW1haW5pbmcgb25lc1xuICAgKiBpZiBuZWNlc3NhcnkuXG4gICAqIEBwYXJhbSBjaGFuZ2UgVGhlIGNoYW5nZSBldmVudC5cbiAgICovXG4gIGFzeW5jIGRlbGV0ZVdpZGdldChjaGFuZ2U6IFdpZGdldENoYW5nZSkge1xuICAgIGNvbnN0IHdpZGdldFRpdGxlID0gY2hhbmdlLndpZGdldC50aXRsZTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5tb2RhbC5jb25maXJtKFxuICAgICAgICBnZXR0ZXh0KCdSZW1vdmUgd2lkZ2V0JyksXG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgIGdldHRleHQoXG4gICAgICAgICAgICAnWW91IGFyZSBhYm91dCB0byByZW1vdmUgd2lkZ2V0IFwie3sgd2lkZ2V0VGl0bGUgfX1cIiBmcm9tIHlvdXIgZGFzaGJvYXJkLiBEbyB5b3Ugd2FudCB0byBwcm9jZWVkPydcbiAgICAgICAgICApLFxuICAgICAgICAgIHsgd2lkZ2V0VGl0bGUgfVxuICAgICAgICApLFxuICAgICAgICBTdGF0dXMuREFOR0VSLFxuICAgICAgICB7XG4gICAgICAgICAgb2s6IGdldHRleHQoJ1JlbW92ZScpLFxuICAgICAgICAgIGNhbmNlbDogZ2V0dGV4dCgnQ2FuY2VsJylcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBvbiBjYW5jZWw6IGRvIG5vdGhpbmdcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgeyB3aWRnZXQsIHNvdXJjZSB9ID0gY2hhbmdlO1xuICAgICAgZGVsZXRlIHRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlblt3aWRnZXQuaWRdO1xuICAgICAgY29uc3QgcmVtb3ZlZCA9IHRoaXMud2lkZ2V0cy5maW5kKCh7IGlkIH0pID0+IGlkID09PSB3aWRnZXQuaWQpO1xuICAgICAgdGhpcy53aWRnZXRzLnNwbGljZSh0aGlzLndpZGdldHMuaW5kZXhPZihyZW1vdmVkKSwgMSk7XG5cbiAgICAgIGNvbnN0IHsgZGFzaGJvYXJkIH0gPSBzb3VyY2U7XG4gICAgICBkYXNoYm9hcmQuY2hpbGRyZW4gPSBkYXNoYm9hcmQuY2hpbGRyZW4uZmlsdGVyKGMgPT4gYy5kYXRhLmlkICE9PSB3aWRnZXQuaWQpO1xuXG4gICAgICAvLyB1c2luZyBzZXRUaW1lb3V0IHRvIGdpdmUgdGhlIGNvbXBvbmVudCB0aGUgY2hhbmNlIHRvIHJlbW92ZSBpdC5cbiAgICAgIGNvbnN0IHNsZWVwID0gdGltZW91dCA9PiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgdGltZW91dCkpO1xuICAgICAgYXdhaXQgc2xlZXAoMCk7XG5cbiAgICAgIGNvbnN0IGNoaWxkID0gbmV3IERhc2hib2FyZENoaWxkQ2hhbmdlKHNvdXJjZSk7XG4gICAgICBjaGlsZC5jb2xsYXBzZVVwQWxsKCk7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZURhc2hib2FyZENoaWxkcmVuKGNoaWxkKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgaXMgYSB3b3JrYXJvdW5kIHRvIGVuc3VyZSB0aGF0IHRoZSBkcmFnZ2VkLWVsZW1lbnRcbiAgICogKHdoaWNoIGlzIGF0dGFjaGVkIHRvIHRoZSBib2R5KSBoYXMgdGhlIHJpZ2h0IHN0eWxpbmcuXG4gICAqL1xuICBhZGREYXNoYm9hcmRDbGFzc1RvQm9keSgpIHtcbiAgICB0aGlzLmNsYXNzLnNwbGl0KCcgJykuZm9yRWFjaChjc3NDbGFzcyA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGRvY3VtZW50LmJvZHksIGNzc0NsYXNzKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIGEgd29ya2Fyb3VuZCB0byBlbnN1cmUgdGhhdCB0aGUgZHJhZ2dlZC1lbGVtZW50XG4gICAqICh3aGljaCBpcyBhdHRhY2hlZCB0byB0aGUgYm9keSkgaGFzIHRoZSByaWdodCBzdHlsaW5nLlxuICAgKi9cbiAgcmVtb3ZlRGFzaGJvYXJkQ2xhc3NGcm9tQm9keSgpIHtcbiAgICB0aGlzLmNsYXNzLnNwbGl0KCcgJykuZm9yRWFjaChjc3NDbGFzcyA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGRvY3VtZW50LmJvZHksIGNzc0NsYXNzKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSBkYXNoYm9hcmQgc2V0dGluZ3MgdG8gZnJvemVuIG9yIHZpY2UgdmVyc2EuXG4gICAqIEBwYXJhbSBzZXR0aW5ncyBUaGUgY3VycmVudCBzZXR0aW5ncyBvZiB0aGUgZGFzaGJvYXJkLlxuICAgKi9cbiAgYXN5bmMgdG9nZ2xlRnJlZXplKHNldHRpbmdzOiBEYXNoYm9hcmRTZXR0aW5ncykge1xuICAgIHRoaXMudG9nZ2xlSXNGcm96ZW5GbGFnKHNldHRpbmdzKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS51cGRhdGUodGhpcy5tbyk7XG4gICAgICBpZiAodGhpcy5kYXNoYm9hcmQuaXNGcm96ZW4pIHtcbiAgICAgICAgdGhpcy5hbGVydC5zdWNjZXNzKGdldHRleHQoJ1lvdXIgZGFzaGJvYXJkIGlzIGxvY2tlZCBub3cuJykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hbGVydC5zdWNjZXNzKGdldHRleHQoJ1lvdXIgZGFzaGJvYXJkIGlzIHVubG9ja2VkIG5vdy4nKSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIHRoaXMuYWxlcnQuYWRkU2VydmVyRmFpbHVyZShleCk7XG4gICAgICB0aGlzLnRvZ2dsZUlzRnJvemVuRmxhZyhzZXR0aW5ncyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVSZXBvcnQobW86IFBhcnRpYWw8SU1hbmFnZWRPYmplY3Q+KSB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5pbnZlbnRvcnkudXBkYXRlKG1vKTtcbiAgICB0aGlzLmNvbnRleHQgPSByZXMuZGF0YTtcbiAgICBpZiAodGhpcy5yb3V0ZS5wYXJlbnQpIHtcbiAgICAgIHRoaXMucm91dGUucGFyZW50LnNuYXBzaG90LmRhdGEuY29udGV4dERhdGEgPSB0aGlzLmNvbnRleHQ7XG4gICAgfVxuICAgIHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2UudXBkYXRlTmF2aWdhdG9ySXRlbShyZXMuZGF0YSk7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZUlzRnJvemVuRmxhZyhzZXR0aW5nczogRGFzaGJvYXJkU2V0dGluZ3MpIHtcbiAgICBzZXR0aW5ncy5pc0Zyb3plbiA9ICFzZXR0aW5ncy5pc0Zyb3plbjtcbiAgICB0aGlzLmRhc2hib2FyZC5pc0Zyb3plbiA9IHNldHRpbmdzLmlzRnJvemVuO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkQ29udGV4dERhc2hib2FyZCgpIHtcbiAgICB0aGlzLmRhdGFTdWIgPSB0aGlzLnJvdXRlLmRhdGEuc3Vic2NyaWJlKCh7IGRhc2hib2FyZCB9KSA9PiB7XG4gICAgICB0aGlzLmNvbnRleHQgPSB0aGlzLnJvdXRlLnBhcmVudC5zbmFwc2hvdC5kYXRhLmNvbnRleHREYXRhO1xuICAgICAgdGhpcy50aXRsZSA9IHRoaXMuY29udGV4dD8ubmFtZTtcbiAgICAgIHRoaXMubW8gPSBkYXNoYm9hcmQ7XG4gICAgICB0aGlzLmRhc2hib2FyZCA9IHRoaXMubW8uYzh5X0Rhc2hib2FyZDtcbiAgICAgIHRoaXMub25Mb2FkKHRydWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkTmFtZWREYXNoYm9hcmQoKSB7XG4gICAgdGhpcy5kYXRhU3ViID0gdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZVxuICAgICAgLmdldE5hbWVkRGFzaGJvYXJkT3JDcmVhdGUodGhpcy5uYW1lLCB0aGlzLmRlZmF1bHRXaWRnZXRzLCB0aGlzLmNvbnRleHQpXG4gICAgICAuc3Vic2NyaWJlKG1vID0+IHtcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gdGhpcy5jb250ZXh0IHx8IHt9O1xuICAgICAgICB0aGlzLm1vID0gbW87XG4gICAgICAgIHRoaXMuZGFzaGJvYXJkID0gdGhpcy5tby5jOHlfRGFzaGJvYXJkO1xuICAgICAgICB0aGlzLm9uTG9hZCh0cnVlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBvbkxvYWQodHJhY2tFeHBlcmllbmNlPzogYm9vbGVhbikge1xuICAgIGNvbnN0IGNhbkVkaXREYXNoYm9hcmQgPSBhd2FpdCB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmNhbkVkaXREYXNoYm9hcmQodGhpcy5tbyk7XG4gICAgdGhpcy5kaXNhYmxlZCA9ICFjYW5FZGl0RGFzaGJvYXJkO1xuICAgIHRoaXMuY2FuQ29weSA9XG4gICAgICB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmlzRGV2aWNlRGFzaGJvYXJkKHRoaXMubW8pIHx8XG4gICAgICB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmlzRGV2aWNlVHlwZSh0aGlzLm1vKSB8fFxuICAgICAgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5pc0dyb3VwRGFzaGJvYXJkKHRoaXMubW8pO1xuICAgIGNvbnN0IGRhc2hib2FyZENoaWxkcmVuID0gY2xvbmVEZWVwKHRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlbik7XG4gICAgY29uc3QgaXNEZXZpY2VUeXBlID0gdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5pc0RldmljZVR5cGUodGhpcy5tbyk7XG4gICAgY29uc3QgaXNSZXBvcnQgPSB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmlzUmVwb3J0KHRoaXMubW8pO1xuICAgIGNvbnN0IGRhc2hib2FyZENsYXNzZXMgPSB7XG4gICAgICAnYzh5LWdyaWQtZGFzaGJvYXJkJzogdHJ1ZSxcbiAgICAgIGRhc2hib2FyZDogdHJ1ZSxcbiAgICAgIC4uLnRoaXMuZGFzaGJvYXJkLmNsYXNzZXNcbiAgICB9O1xuXG4gICAgdGhpcy53aWRnZXRzID0gYXdhaXQgUHJvbWlzZS5hbGw8V2lkZ2V0PihcbiAgICAgIHZhbHVlcyhkYXNoYm9hcmRDaGlsZHJlbikubWFwKHdpZGdldCA9PiB7XG4gICAgICAgIHdpZGdldC5jbGFzc2VzID0gdGhpcy5tZXJnZVdpZGdldENsYXNzZXMod2lkZ2V0KTtcbiAgICAgICAgaWYgKGlzRGV2aWNlVHlwZSkge1xuICAgICAgICAgIHRoaXMuYXBwbHlEZXZpY2VUYXJnZXQod2lkZ2V0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHJhY2tFeHBlcmllbmNlKSB7XG4gICAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudCgnbG9hZFdpZGdldCcsIHtcbiAgICAgICAgICAgIHdpZGdldE5hbWU6IHdpZGdldC5jb21wb25lbnRJZCB8fCB3aWRnZXQubmFtZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLndpZGdldFNlcnZpY2UubWFwTGVnYWN5KHdpZGdldCk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5jbGFzcyA9IE9iamVjdC5rZXlzKGRhc2hib2FyZENsYXNzZXMpLmpvaW4oJyAnKTtcbiAgICBpZiAoaXNSZXBvcnQpIHtcbiAgICAgIHRoaXMuYWRkUmVwb3J0RGFzaGJvYXJkU2V0dGluZ3MoKTtcbiAgICB9XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2VXaWRnZXRDbGFzc2VzKHdpZGdldDogV2lkZ2V0KSB7XG4gICAgY29uc3QgaGFzSGVhZGVyQ2xhc3MgPSBXSURHRVRfSEVBREVSX0NMQVNTRVMuZmluZChcbiAgICAgIGVsID0+IHdpZGdldC5jbGFzc2VzICYmIHdpZGdldC5jbGFzc2VzW2VsLmNsYXNzXVxuICAgICk7XG4gICAgY29uc3Qgd2lkZ2V0Q2xhc3NlcyA9IGhhc0hlYWRlckNsYXNzXG4gICAgICA/IHsgLi4ud2lkZ2V0LmNsYXNzZXMgfVxuICAgICAgOiB7IC4uLnRoaXMuZGFzaGJvYXJkLndpZGdldENsYXNzZXMsIC4uLndpZGdldC5jbGFzc2VzIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIGNhcmQ6IHRydWUsXG4gICAgICAnY2FyZC1kYXNoYm9hcmQnOiB0cnVlLFxuICAgICAgW2tlYmFiQ2FzZSh3aWRnZXQuY29tcG9uZW50SWQgfHwgd2lkZ2V0Lm5hbWUpXTogdHJ1ZSxcbiAgICAgIC4uLndpZGdldENsYXNzZXNcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wb25lbnRUb1dpZGdldChjaGlsZDogRGFzaGJvYXJkQ2hpbGRDb21wb25lbnQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ub21pdChjaGlsZC5kYXRhLCBbJ2NvbXBvbmVudFRyYW5zZm9ybUNvbmZpZ1dpdGhDb250ZXh0JywgJ3RyYW5zZm9ybUNvbmZpZ1dpdGhDb250ZXh0J10pLCAvLyByZW1vdmUgbGVnYWN5XG4gICAgICAuLi4oe1xuICAgICAgICBfeDogY2hpbGQueCxcbiAgICAgICAgX3k6IGNoaWxkLnksXG4gICAgICAgIF93aWR0aDogY2hpbGQud2lkdGgsXG4gICAgICAgIF9oZWlnaHQ6IGNoaWxkLmhlaWdodFxuICAgICAgfSBhcyBXaWRnZXQpXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkUmVwb3J0RGFzaGJvYXJkU2V0dGluZ3MoKSB7XG4gICAgdGhpcy5zZXRUaXRsZSA9IHRydWU7XG4gICAgdGhpcy50aXRsZSA9IHRoaXMuY29udGV4dC5uYW1lO1xuICAgIHRoaXMuYnJlYWRjcnVtYlNldHRpbmdzID0ge1xuICAgICAgaWNvbjogJ3RoJyxcbiAgICAgIGxhYmVsOiAnUmVwb3J0cycsXG4gICAgICBwYXRoOiAncmVwb3J0cydcbiAgICB9O1xuICAgIHRoaXMuY2FuRGVsZXRlID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGNhbkNvcHlEYXNoYm9hcmQodmlld0NvbnRleHQ6IFZpZXdDb250ZXh0KTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnZhbGlkRGFzaGJvYXJkQ2hpbGRyZW4oKSAmJiB2aWV3Q29udGV4dCkge1xuICAgICAgY29uc3QgY3R4ID0gdmlld0NvbnRleHQuc3BsaXQoJy8nKS5zaGlmdCgpO1xuICAgICAgY29uc3QgbXNnID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICdPbmx5IGRhc2hib2FyZHMgd2l0aCB3aWRnZXRzIHJlZmVyZW5jaW5nIHRoZSBjdXJyZW50IHt7IGN0eCB9fSBjYW4gYmUgY29waWVkLicsXG4gICAgICAgIHsgY3R4IH1cbiAgICAgICk7XG4gICAgICB0aGlzLmFsZXJ0Lndhcm5pbmcobXNnKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkRGFzaGJvYXJkQ2hpbGRyZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGV2ZXJ5KHRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlbiwgY2hpbGQgPT4ge1xuICAgICAgY29uc3QgY29uZmlnID0gY2hpbGQuY29uZmlnIHx8IHt9O1xuICAgICAgY29uc3QgZGF0YVBvaW50cyA9IGNvbmZpZy5kYXRhcG9pbnRzIHx8IFtdO1xuXG4gICAgICByZXR1cm4gIShcbiAgICAgICAgKGNvbmZpZy5kZXZpY2UgJiYgY29uZmlnLmRldmljZS5pZCAhPT0gdGhpcy5jb250ZXh0LmlkKSB8fFxuICAgICAgICBzb21lKGRhdGFQb2ludHMsIGRhdGFQb2ludCA9PiBkYXRhUG9pbnQuX190YXJnZXQuaWQgIT09IHRoaXMuY29udGV4dC5pZClcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxjOHktdGl0bGU+XG4gIHt7IHRpdGxlIH19XG48L2M4eS10aXRsZT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCInbW9yZSdcIiAqbmdJZj1cImRlZmF1bHRXaWRnZXRzLmxlbmd0aCA+IDBcIj5cbiAgPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIHRpdGxlPVwie3sgJ1Jlc2V0IGRhc2hib2FyZCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgIGNsYXNzPVwiYnRuIGJ0bi1jbGVhblwiXG4gICAgcHgtZXZlbnQ9XCJSZXNldCBkYXNoYm9hcmRcIlxuICAgIChjbGljayk9XCJyZXN0b3JlKClcIlxuICAgIFtkaXNhYmxlZF09XCJkYXNoYm9hcmQ/LmlzRnJvemVuIHx8IGRpc2FibGVkXCJcbiAgPlxuICAgIDxpIGM4eUljb249XCJyZXNldFwiIGNsYXNzPVwibS1yLTRcIj48L2k+XG4gICAge3sgJ1Jlc2V0IGRhc2hib2FyZCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktd2lkZ2V0cy1kYXNoYm9hcmRcbiAgW2NvbnRleHRdPVwiY29udGV4dFwiXG4gIFtjb250ZXh0RGFzaGJvYXJkXT1cImRhc2hib2FyZFwiXG4gIFt3aWRnZXRzXT1cIndpZGdldHNcIlxuICBbc2V0dGluZ3NdPVwie1xuICAgIGlzTG9hZGluZzogaXNMb2FkaW5nLFxuICAgIGlzRnJvemVuOiBkYXNoYm9hcmQ/LmlzRnJvemVuLFxuICAgIGlzRGlzYWJsZWQ6IGRpc2FibGVkLFxuICAgIGNhbkRlbGV0ZTogY2FuRGVsZXRlLFxuICAgIHRyYW5zbGF0ZVdpZGdldFRpdGxlOiBkYXNoYm9hcmQ/LnRyYW5zbGF0ZVdpZGdldFRpdGxlLFxuICAgIGFsbG93RnVsbHNjcmVlbjogbW9kdWxlQ29uZmlnLmFsbG93RnVsbHNjcmVlbixcbiAgICB0aXRsZTogc2V0VGl0bGUgPyBkYXNoYm9hcmQubmFtZSB8fCB0aXRsZSA6IHVuZGVmaW5lZCxcbiAgICB3aWRnZXRNYXJnaW46IGRhc2hib2FyZD8ud2lkZ2V0TWFyZ2luLFxuICAgIGNhbkNvcHk6IGNhbkNvcHlcbiAgfVwiXG4gIFticmVhZGNydW1iXT1cImJyZWFkY3J1bWJTZXR0aW5nc1wiXG4gIChvbkZyZWV6ZSk9XCJ0b2dnbGVGcmVlemUoJGV2ZW50KVwiXG4gIChvbkNoYW5nZURhc2hib2FyZCk9XCJ1cGRhdGVEYXNoYm9hcmRDaGlsZHJlbigkZXZlbnQpXCJcbiAgKG9uQWRkV2lkZ2V0KT1cImFkZFdpZGdldCgpXCJcbiAgKG9uRWRpdFdpZGdldCk9XCJlZGl0V2lkZ2V0KCRldmVudClcIlxuICAob25EZWxldGVXaWRnZXQpPVwiZGVsZXRlV2lkZ2V0KCRldmVudClcIlxuICAob25DaGFuZ2VTdGFydCk9XCJhZGREYXNoYm9hcmRDbGFzc1RvQm9keSgpXCJcbiAgKG9uQ2hhbmdlRW5kKT1cInJlbW92ZURhc2hib2FyZENsYXNzRnJvbUJvZHkoKVwiXG4gIChvbkVkaXREYXNoYm9hcmQpPVwiZWRpdERhc2hib2FyZCgpXCJcbiAgKG9uQ29weURhc2hib2FyZCk9XCJjb3B5RGFzaGJvYXJkKClcIlxuICAob25EZWxldGVEYXNoYm9hcmQpPVwiZGVsZXRlRGFzaGJvYXJkKClcIlxuPjwvYzh5LXdpZGdldHMtZGFzaGJvYXJkPlxuIl19
@@ -15,7 +15,8 @@ export class HumanizeAppNamePipe {
15
15
  this.internalApps = {
16
16
  administration: 'Administration',
17
17
  cockpit: 'Cockpit',
18
- devicemanagement: 'Device management'
18
+ devicemanagement: 'Device management',
19
+ 'digital-twin-manager': 'Digital twin manager'
19
20
  };
20
21
  }
21
22
  transform(appNameOrApp = 'Cumulocity') {
@@ -55,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
55
56
  type: Pipe,
56
57
  args: [{ name: 'humanizeAppName' }]
57
58
  }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVtYW5pemUtYXBwLW5hbWUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvY29tbW9uL2h1bWFuaXplLWFwcC1uYW1lLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7OztBQUV4RDs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLG1CQUFtQjtJQU85QixZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQU45QyxpQkFBWSxHQUFHO1lBQ3JCLGNBQWMsRUFBRSxnQkFBZ0I7WUFDaEMsT0FBTyxFQUFFLFNBQVM7WUFDbEIsZ0JBQWdCLEVBQUUsbUJBQW1CO1NBQ3RDLENBQUM7SUFFdUQsQ0FBQztJQUUxRCxTQUFTLENBQUMsZUFBb0IsWUFBWTtRQUN4QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRTlDLElBQUksSUFBSSxDQUFDO1FBQ1QsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ2xDLElBQUksR0FBRyxPQUFPLENBQUMsb0NBQW9DLENBQUMsQ0FBQztTQUN0RDthQUFNO1lBQ0wsSUFBSSxHQUFHLE9BQU8sQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTyxVQUFVLENBQUMsWUFBbUM7UUFDcEQsTUFBTSxPQUFPLEdBQ1gsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUNuQixHQUFHLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQztZQUN6QixHQUFHLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztZQUNoQyxZQUFZO1NBQ2IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNYLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTyxlQUFlLENBQUMsTUFBTTtRQUM1QixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVPLFdBQVcsQ0FBQyxZQUFtQztRQUNyRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVPLFFBQVEsQ0FBQyxNQUFjLEVBQUU7UUFDL0IsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM1QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQzs7Z0hBM0NVLG1CQUFtQjs4R0FBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRC9CLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJQXBwbGljYXRpb24gfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnLi4vaTE4bi9nZXR0ZXh0JztcbmltcG9ydCB7IGdldCwgZmluZCwgbmVnYXRlLCBpc1VuZGVmaW5lZCB9IGZyb20gJ2xvZGFzaCc7XG5cbi8qXG4gKiBIdW1hbml6ZSBhbiBhcHBsaWNhdGlvbiBuYW1lIGFuZCB0cmFuc2xhdGVzIGl0LlxuICogVXNhZ2U6XG4gKiAgIGFwcE5hbWVPckFwcCB8IGh1bWFuaXplQXBwTmFtZSB8IGFzeW5jXG4gKi9cbkBQaXBlKHsgbmFtZTogJ2h1bWFuaXplQXBwTmFtZScgfSlcbmV4cG9ydCBjbGFzcyBIdW1hbml6ZUFwcE5hbWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHByaXZhdGUgaW50ZXJuYWxBcHBzID0ge1xuICAgIGFkbWluaXN0cmF0aW9uOiAnQWRtaW5pc3RyYXRpb24nLFxuICAgIGNvY2twaXQ6ICdDb2NrcGl0JyxcbiAgICBkZXZpY2VtYW5hZ2VtZW50OiAnRGV2aWNlIG1hbmFnZW1lbnQnXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIHRyYW5zZm9ybShhcHBOYW1lT3JBcHA6IGFueSA9ICdDdW11bG9jaXR5Jyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgY29uc3QgYXBwTmFtZSA9IHRoaXMuZ2V0QXBwTmFtZShhcHBOYW1lT3JBcHApO1xuXG4gICAgbGV0IHRleHQ7XG4gICAgaWYgKHRoaXMuaXNQdWJsaWNBcHAoYXBwTmFtZU9yQXBwKSkge1xuICAgICAgdGV4dCA9IGdldHRleHQoJ3t7IGFwcE5hbWUgfCB0cmFuc2xhdGUgfX0gKHB1YmxpYyknKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGV4dCA9IGFwcE5hbWU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKHRleHQsIHsgYXBwTmFtZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QXBwTmFtZShhcHBOYW1lT3JBcHA6IElBcHBsaWNhdGlvbiB8IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgYXBwTmFtZSA9XG4gICAgICB0aGlzLmdldEZpcnN0RGVmaW5lZChbXG4gICAgICAgIGdldChhcHBOYW1lT3JBcHAsICduYW1lJyksXG4gICAgICAgIGdldChhcHBOYW1lT3JBcHAsICdjb250ZXh0UGF0aCcpLFxuICAgICAgICBhcHBOYW1lT3JBcHBcbiAgICAgIF0pIHx8ICcnO1xuICAgIHJldHVybiB0aGlzLmludGVybmFsQXBwc1thcHBOYW1lXSB8fCB0aGlzLmh1bWFuaXplKGFwcE5hbWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaXJzdERlZmluZWQodmFsdWVzKSB7XG4gICAgcmV0dXJuIGZpbmQodmFsdWVzLCBuZWdhdGUoaXNVbmRlZmluZWQpKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNQdWJsaWNBcHAoYXBwTmFtZU9yQXBwOiBJQXBwbGljYXRpb24gfCBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQm9vbGVhbihnZXQoYXBwTmFtZU9yQXBwLCAncHVibGljJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBodW1hbml6ZShzdHI6IHN0cmluZyA9ICcnKTogc3RyaW5nIHtcbiAgICBjb25zdCByZXN1bHQgPSBzdHIucmVwbGFjZSgvXy9nLCAnICcpLnNwbGl0KCcnKTtcbiAgICByZXN1bHRbMF0gPSAocmVzdWx0WzBdIHx8ICcnKS50b1VwcGVyQ2FzZSgpO1xuICAgIHJldHVybiByZXN1bHQuam9pbignJyk7XG4gIH1cbn1cbiJdfQ==
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVtYW5pemUtYXBwLW5hbWUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvY29tbW9uL2h1bWFuaXplLWFwcC1uYW1lLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7OztBQUV4RDs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLG1CQUFtQjtJQVE5QixZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVA5QyxpQkFBWSxHQUFHO1lBQ3JCLGNBQWMsRUFBRSxnQkFBZ0I7WUFDaEMsT0FBTyxFQUFFLFNBQVM7WUFDbEIsZ0JBQWdCLEVBQUUsbUJBQW1CO1lBQ3JDLHNCQUFzQixFQUFFLHNCQUFzQjtTQUMvQyxDQUFDO0lBRXVELENBQUM7SUFFMUQsU0FBUyxDQUFDLGVBQW9CLFlBQVk7UUFDeEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUU5QyxJQUFJLElBQUksQ0FBQztRQUNULElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNsQyxJQUFJLEdBQUcsT0FBTyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7U0FDdEQ7YUFBTTtZQUNMLElBQUksR0FBRyxPQUFPLENBQUM7U0FDaEI7UUFDRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU8sVUFBVSxDQUFDLFlBQW1DO1FBQ3BELE1BQU0sT0FBTyxHQUNYLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDbkIsR0FBRyxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUM7WUFDekIsR0FBRyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7WUFDaEMsWUFBWTtTQUNiLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU8sZUFBZSxDQUFDLE1BQU07UUFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTyxXQUFXLENBQUMsWUFBbUM7UUFDckQsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxRQUFRLENBQUMsTUFBYyxFQUFFO1FBQy9CLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDNUMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7O2dIQTVDVSxtQkFBbUI7OEdBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUQvQixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUFwcGxpY2F0aW9uIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJy4uL2kxOG4vZ2V0dGV4dCc7XG5pbXBvcnQgeyBnZXQsIGZpbmQsIG5lZ2F0ZSwgaXNVbmRlZmluZWQgfSBmcm9tICdsb2Rhc2gnO1xuXG4vKlxuICogSHVtYW5pemUgYW4gYXBwbGljYXRpb24gbmFtZSBhbmQgdHJhbnNsYXRlcyBpdC5cbiAqIFVzYWdlOlxuICogICBhcHBOYW1lT3JBcHAgfCBodW1hbml6ZUFwcE5hbWUgfCBhc3luY1xuICovXG5AUGlwZSh7IG5hbWU6ICdodW1hbml6ZUFwcE5hbWUnIH0pXG5leHBvcnQgY2xhc3MgSHVtYW5pemVBcHBOYW1lUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcml2YXRlIGludGVybmFsQXBwcyA9IHtcbiAgICBhZG1pbmlzdHJhdGlvbjogJ0FkbWluaXN0cmF0aW9uJyxcbiAgICBjb2NrcGl0OiAnQ29ja3BpdCcsXG4gICAgZGV2aWNlbWFuYWdlbWVudDogJ0RldmljZSBtYW5hZ2VtZW50JyxcbiAgICAnZGlnaXRhbC10d2luLW1hbmFnZXInOiAnRGlnaXRhbCB0d2luIG1hbmFnZXInXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIHRyYW5zZm9ybShhcHBOYW1lT3JBcHA6IGFueSA9ICdDdW11bG9jaXR5Jyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgY29uc3QgYXBwTmFtZSA9IHRoaXMuZ2V0QXBwTmFtZShhcHBOYW1lT3JBcHApO1xuXG4gICAgbGV0IHRleHQ7XG4gICAgaWYgKHRoaXMuaXNQdWJsaWNBcHAoYXBwTmFtZU9yQXBwKSkge1xuICAgICAgdGV4dCA9IGdldHRleHQoJ3t7IGFwcE5hbWUgfCB0cmFuc2xhdGUgfX0gKHB1YmxpYyknKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGV4dCA9IGFwcE5hbWU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKHRleHQsIHsgYXBwTmFtZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QXBwTmFtZShhcHBOYW1lT3JBcHA6IElBcHBsaWNhdGlvbiB8IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgYXBwTmFtZSA9XG4gICAgICB0aGlzLmdldEZpcnN0RGVmaW5lZChbXG4gICAgICAgIGdldChhcHBOYW1lT3JBcHAsICduYW1lJyksXG4gICAgICAgIGdldChhcHBOYW1lT3JBcHAsICdjb250ZXh0UGF0aCcpLFxuICAgICAgICBhcHBOYW1lT3JBcHBcbiAgICAgIF0pIHx8ICcnO1xuICAgIHJldHVybiB0aGlzLmludGVybmFsQXBwc1thcHBOYW1lXSB8fCB0aGlzLmh1bWFuaXplKGFwcE5hbWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaXJzdERlZmluZWQodmFsdWVzKSB7XG4gICAgcmV0dXJuIGZpbmQodmFsdWVzLCBuZWdhdGUoaXNVbmRlZmluZWQpKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNQdWJsaWNBcHAoYXBwTmFtZU9yQXBwOiBJQXBwbGljYXRpb24gfCBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQm9vbGVhbihnZXQoYXBwTmFtZU9yQXBwLCAncHVibGljJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBodW1hbml6ZShzdHI6IHN0cmluZyA9ICcnKTogc3RyaW5nIHtcbiAgICBjb25zdCByZXN1bHQgPSBzdHIucmVwbGFjZSgvXy9nLCAnICcpLnNwbGl0KCcnKTtcbiAgICByZXN1bHRbMF0gPSAocmVzdWx0WzBdIHx8ICcnKS50b1VwcGVyQ2FzZSgpO1xuICAgIHJldHVybiByZXN1bHQuam9pbignJyk7XG4gIH1cbn1cbiJdfQ==
@@ -1471,10 +1471,12 @@ class ContextDashboardComponent {
1471
1471
  */
1472
1472
  addWidget(selected) {
1473
1473
  return __awaiter(this, void 0, void 0, function* () {
1474
+ const partialCloneSelected = selected
1475
+ ? Object.assign(Object.assign({}, selected), { data: cloneDeep(selected.data) }) : selected;
1474
1476
  const initialState = {
1475
1477
  mo: this.mo,
1476
1478
  context: this.context.c8y_Report ? {} : this.context,
1477
- selected: cloneDeep(selected)
1479
+ selected: partialCloneSelected
1478
1480
  };
1479
1481
  const modal = this.bsModal.show(WidgetConfigComponent, {
1480
1482
  class: 'modal-lg',