turbogui-angular 13.0.0 → 13.0.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.
- package/esm2022/main/controller/dialog.service.mjs +29 -35
- package/esm2022/main/controller/http.service.mjs +2 -2
- package/esm2022/main/view/components/dialog-date-selection/dialog-date-selection.component.mjs +3 -6
- package/fesm2022/turbogui-angular.mjs +31 -40
- package/fesm2022/turbogui-angular.mjs.map +1 -1
- package/main/controller/dialog.service.d.ts +3 -3
- package/main/controller/dialog.service.d.ts.map +1 -1
- package/main/view/components/dialog-date-selection/dialog-date-selection.component.d.ts +0 -1
- package/main/view/components/dialog-date-selection/dialog-date-selection.component.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -233,49 +233,48 @@ export class DialogService {
|
|
|
233
233
|
* @param maxWidth Defines the maximum width that the dialog will have regarding the viewport. We can specify it in % or vw, just like is done in
|
|
234
234
|
* css. By default it is defined as 96vw, which will fit 96% of the viewport on small devices
|
|
235
235
|
*/
|
|
236
|
-
addDialog(dialogComponentClass,
|
|
236
|
+
addDialog(dialogComponentClass, properties, callback = null) {
|
|
237
237
|
if (!this._isEnabled) {
|
|
238
238
|
return;
|
|
239
239
|
}
|
|
240
|
-
// Set the default values for all non specified
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
options
|
|
240
|
+
// Set the default values for all non specified properties
|
|
241
|
+
properties.width = properties.hasOwnProperty('width') ? properties.width : "50%";
|
|
242
|
+
properties.maxWidth = properties.hasOwnProperty('maxWidth') ? properties.maxWidth : "96vw";
|
|
243
|
+
properties.height = properties.hasOwnProperty('height') ? properties.height : "50%";
|
|
244
|
+
properties.maxHeight = properties.hasOwnProperty('maxHeight') ? properties.maxHeight : "92vw";
|
|
245
|
+
properties.modal = properties.hasOwnProperty('modal') ? properties.modal : true;
|
|
246
|
+
properties.texts = properties.hasOwnProperty('texts') ? properties.texts : [];
|
|
247
|
+
properties.options = properties.hasOwnProperty('options') ? properties.options : [];
|
|
248
248
|
// Generate a string to uniquely identify this dialog on the list of active dialogs
|
|
249
|
-
const dialogHash =
|
|
249
|
+
const dialogHash = properties.texts.join('') + properties.options.join('') + dialogComponentClass.name;
|
|
250
250
|
// identical dialogs won't be allowed at the same time
|
|
251
251
|
if (this._activeDialogs.includes(dialogHash)) {
|
|
252
252
|
return;
|
|
253
253
|
}
|
|
254
254
|
const dialogRef = this.matDialog.open(dialogComponentClass, {
|
|
255
|
-
width:
|
|
256
|
-
maxWidth:
|
|
257
|
-
disableClose:
|
|
255
|
+
width: properties.width,
|
|
256
|
+
maxWidth: properties.maxWidth,
|
|
257
|
+
disableClose: properties.modal,
|
|
258
258
|
autoFocus: false,
|
|
259
|
-
closeOnNavigation: !
|
|
260
|
-
data: { texts:
|
|
259
|
+
closeOnNavigation: !properties.modal,
|
|
260
|
+
data: { texts: properties.texts, options: properties.options }
|
|
261
261
|
});
|
|
262
262
|
this._activeDialogs.push(dialogHash);
|
|
263
263
|
this._activeDialogInstances.push(dialogRef);
|
|
264
|
-
dialogRef.beforeClosed().subscribe((
|
|
264
|
+
dialogRef.beforeClosed().subscribe((selectedOption) => {
|
|
265
265
|
this._activeDialogs = ArrayUtils.removeElement(this._activeDialogs, dialogHash);
|
|
266
266
|
this._activeDialogInstances = ArrayUtils.removeElement(this._activeDialogInstances, dialogRef);
|
|
267
|
-
if (!NumericUtils.isInteger(
|
|
268
|
-
if (
|
|
267
|
+
if (!NumericUtils.isInteger(selectedOption.index)) {
|
|
268
|
+
if (properties.modal) {
|
|
269
269
|
throw new Error(`dialogRef.close() expects int value`);
|
|
270
270
|
}
|
|
271
271
|
else {
|
|
272
|
-
|
|
272
|
+
selectedOption.index = -1;
|
|
273
273
|
}
|
|
274
274
|
}
|
|
275
275
|
if (callback !== null) {
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
selectedOption.value = options.captions[selectedOptionIndex];
|
|
276
|
+
if (selectedOption.index >= 0) {
|
|
277
|
+
selectedOption.value = properties.options[selectedOption.index];
|
|
279
278
|
}
|
|
280
279
|
callback(selectedOption);
|
|
281
280
|
}
|
|
@@ -296,24 +295,19 @@ export class DialogService {
|
|
|
296
295
|
this._activeDialogs = [];
|
|
297
296
|
this._activeDialogInstances = [];
|
|
298
297
|
}
|
|
299
|
-
addDateSelectionDialog(
|
|
298
|
+
addDateSelectionDialog(properties, title, callback) {
|
|
300
299
|
if (!this._isEnabled) {
|
|
301
300
|
return;
|
|
302
301
|
}
|
|
303
302
|
this.addDialog(DialogDateSelectionComponent, {
|
|
304
|
-
width:
|
|
305
|
-
maxWidth:
|
|
306
|
-
height:
|
|
307
|
-
maxHeight:
|
|
308
|
-
modal:
|
|
303
|
+
width: properties.width,
|
|
304
|
+
maxWidth: properties.maxWidth,
|
|
305
|
+
height: properties.height,
|
|
306
|
+
maxHeight: properties.maxHeight,
|
|
307
|
+
modal: properties.modal,
|
|
309
308
|
texts: [title]
|
|
310
309
|
}, (selectedOption) => {
|
|
311
|
-
|
|
312
|
-
callback(null);
|
|
313
|
-
}
|
|
314
|
-
else {
|
|
315
|
-
callback(selectedOption.value);
|
|
316
|
-
}
|
|
310
|
+
callback(selectedOption.value);
|
|
317
311
|
});
|
|
318
312
|
}
|
|
319
313
|
/**
|
|
@@ -353,4 +347,4 @@ export class DialogService {
|
|
|
353
347
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: DialogService, decorators: [{
|
|
354
348
|
type: Injectable
|
|
355
349
|
}], ctorParameters: () => [{ type: i0.RendererFactory2 }, { type: i1.MatSnackBar }, { type: i2.MatDialog }, { type: i0.Injector }, { type: i0.ApplicationRef }, { type: i0.ComponentFactoryResolver }] });
|
|
356
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dXJib2d1aS1hbmd1bGFyL3NyYy9tYWluL2NvbnRyb2xsZXIvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFRLFVBQVUsRUFBbUYsTUFBTSxlQUFlLENBQUM7QUFHbEksT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDdEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd2RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQzs7OztBQUd4SDs7R0FFRztBQUVILE1BQU0sT0FBTyxhQUFhO0lBeUZ0QixZQUFZLGVBQWlDLEVBQ2hCLFdBQXdCLEVBQ3hCLFNBQW9CLEVBQ3BCLFFBQWtCLEVBQ2xCLGNBQThCLEVBQzlCLHdCQUFrRDtRQUpsRCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUEzRi9FOzs7O1dBSUc7UUFDSCxrQ0FBNkIsR0FBaUMsc0JBQXNCLENBQUM7UUFHckY7O1dBRUc7UUFDSyxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBRzFCOztXQUVHO1FBQ0ssd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBR3BDOzs7O1dBSUc7UUFDSyxxQkFBZ0IsR0FBbUQsSUFBSSxDQUFDO1FBR2hGOztXQUVHO1FBQ0ssd0JBQW1CLEdBQTJCLElBQUksQ0FBQztRQUczRDs7V0FFRztRQUNLLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUduQzs7Ozs7V0FLRztRQUNLLG1CQUFjLEdBQWEsRUFBRSxDQUFDO1FBR3RDOzs7V0FHRztRQUNLLDJCQUFzQixHQUF3QyxFQUFFLENBQUM7UUFTekU7O1dBRUc7UUFDSyxnQ0FBMkIsR0FBd0IsSUFBSSxDQUFDO1FBR2hFOztXQUVHO1FBQ0ssNkJBQXdCLEdBQXdCLElBQUksQ0FBQztRQUc3RDs7V0FFRztRQUNLLCtCQUEwQixHQUF3QixJQUFJLENBQUM7UUFHL0Q7O1dBRUc7UUFDSyxpQ0FBNEIsR0FBd0IsSUFBSSxDQUFDO1FBVTdELElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUdEOzs7OztPQUtHO0lBQ0gsSUFBSSxTQUFTLENBQUMsQ0FBVTtRQUVwQixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBRXZCLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFHRDs7Ozs7OztPQU9HO0lBQ0gsMEJBQTBCO1FBRXRCLElBQUksSUFBSSxDQUFDLDJCQUEyQixLQUFLLElBQUksRUFBRTtZQUUzQyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFDN0UsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDNUM7SUFDTCxDQUFDO0lBR0Q7O09BRUc7SUFDSCw2QkFBNkI7UUFFekIsSUFBSSxJQUFJLENBQUMsMkJBQTJCLEtBQUssSUFBSSxFQUFFO1lBRTNDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUM7U0FDM0M7SUFDTCxDQUFDO0lBR0Q7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsaUJBQWlCO1FBRWIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBRTlDLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBRS9CLGtGQUFrRjtRQUNsRixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLEVBQUU7WUFFaEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBRWhGLCtEQUErRDtZQUMvRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxlQUFlLENBQ3RDLFFBQVEsQ0FBQyxJQUFJLEVBQ2IsSUFBSSxDQUFDLHdCQUF3QixFQUM3QixJQUFJLENBQUMsY0FBYyxFQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDMUI7UUFFQSxJQUFJLENBQUMsbUJBQXVDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTVFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7SUFDcEMsQ0FBQztJQUdEOztPQUVHO0lBQ0gsSUFBSSxrQkFBa0I7UUFFbEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztJQUdEOztPQUVHO0lBQ0gsb0JBQW9CO1FBRWhCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBRS9DLE9BQU87U0FDVjtRQUVELElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLElBQUksRUFBRTtZQUUvQixJQUFJLENBQUMsbUJBQXVDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDMUQ7UUFFRCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUU5QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQ3JDLENBQUM7SUFHRDs7T0FFRztJQUNILFVBQVU7UUFFTiwrQkFBK0I7SUFDbkMsQ0FBQztJQUdEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNILFdBQVcsQ0FBQyxNQUF5QixFQUFFLE9BQWUsRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFFLGlCQUFzQyxJQUFJO1FBRTNHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBRWxCLE9BQU87U0FDVjtRQUVELElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBRXpCLE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztTQUNuRjtRQUVELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFFL0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRS9GLElBQUksY0FBYyxLQUFLLElBQUksRUFBRTtZQUV6QixXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFFbEMsY0FBYyxFQUFFLENBQUM7WUFDckIsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFHRDs7T0FFRztJQUNILElBQUksaUJBQWlCO1FBRWpCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFHRDs7OztPQUlHO0lBQ0gsY0FBYztRQUVWLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBRTlDLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBR0Q7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQWtCRztJQUNILFNBQVMsQ0FBQyxvQkFBc0QsRUFDdEQsT0FNOEIsRUFDOUIsV0FBMEUsSUFBSTtRQUVwRixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUVsQixPQUFPO1NBQ1Y7UUFFRCw4REFBOEQ7UUFDOUQsT0FBTyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDeEUsT0FBTyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDbEYsT0FBTyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDM0UsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDckYsT0FBTyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdkUsT0FBTyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckUsT0FBTyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFOUUsbUZBQW1GO1FBQ25GLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxLQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQztRQUVwRyxzREFBc0Q7UUFDdEQsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUUxQyxPQUFPO1NBQ1Y7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUN4RCxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDcEIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO1lBQzFCLFlBQVksRUFBRSxPQUFPLENBQUMsS0FBSztZQUMzQixTQUFTLEVBQUUsS0FBSztZQUNoQixpQkFBaUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLO1lBQ2pDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFO1NBQzFELENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFNUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLG1CQUF3QixFQUFFLEVBQUU7WUFFNUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDaEYsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBRS9GLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEVBQUU7Z0JBRTlDLElBQUcsT0FBTyxDQUFDLEtBQUssRUFBQztvQkFFYixNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7aUJBRTFEO3FCQUFJO29CQUVELG1CQUFtQixHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUM1QjthQUNKO1lBRUQsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFO2dCQUVuQixJQUFJLGNBQWMsR0FBRyxFQUFDLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7Z0JBRTdELElBQUcsbUJBQW1CLElBQUksQ0FBQyxFQUFDO29CQUV4QixjQUFjLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxRQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQztpQkFDakU7Z0JBRUEsUUFBc0UsQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUMzRjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUdEOzs7O09BSUc7SUFDSCxnQkFBZ0I7UUFFWixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUVsQixPQUFPO1NBQ1Y7UUFFRCxLQUFLLE1BQU0sU0FBUyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUVqRCxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdkI7UUFFRCxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsc0JBQXNCLEdBQUcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFHRCxzQkFBc0IsQ0FBQyxPQUkwQixFQUMxQixLQUFhLEVBQ2IsUUFBK0M7UUFFbEUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFFbEIsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyw0QkFBNEIsRUFDdkM7WUFDSSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDcEIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO1lBQzFCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtZQUN0QixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7WUFDNUIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQztTQUNqQixFQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFFakIsSUFBRyxjQUFjLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBQztnQkFFeEIsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBRWxCO2lCQUFJO2dCQUVELFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDbEM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFHRDs7T0FFRztJQUNLLHVCQUF1QjtRQUUzQixJQUFJLElBQUksQ0FBQyx3QkFBd0IsS0FBSyxJQUFJLEVBQUU7WUFFeEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1NBQ25IO1FBRUQsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEtBQUssSUFBSSxFQUFFO1lBRTFDLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztTQUN2SDtRQUVELElBQUksSUFBSSxDQUFDLDRCQUE0QixLQUFLLElBQUksRUFBRTtZQUU1QyxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7U0FDM0g7SUFDTCxDQUFDO0lBR0Q7O09BRUc7SUFDSyxzQkFBc0I7UUFFMUIsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEtBQUssSUFBSSxFQUFFO1lBRXhDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUM7U0FDeEM7UUFFRCxJQUFJLElBQUksQ0FBQywwQkFBMEIsS0FBSyxJQUFJLEVBQUU7WUFFMUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQztTQUMxQztRQUVELElBQUksSUFBSSxDQUFDLDRCQUE0QixLQUFLLElBQUksRUFBRTtZQUU1QyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO1NBQzFDO0lBQ0wsQ0FBQzs4R0EzZVEsYUFBYTtrSEFBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFR1cmJvR1VJIGlzIEEgbGlicmFyeSB0aGF0IGhlbHBzIHdpdGggdGhlIG1vc3QgY29tbW9uIGFuZCBnZW5lcmljIFVJIGVsZW1lbnRzIGFuZCBmdW5jdGlvbmFsaXRpZXNcclxuICpcclxuICogV2Vic2l0ZSA6IC0+IGh0dHA6Ly93d3cudHVyYm9ndWkub3JnXHJcbiAqIExpY2Vuc2UgOiAtPiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIExpY2Vuc2UgVXJsIDogLT4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqIENvcHlSaWdodCA6IC0+IENvcHlyaWdodCAyMDE4IEVkZXJ0b25lIEFkdmFuZGVkIFNvbHV0aW9ucy4gaHR0cHM6Ly93d3cuZWRlcnRvbmUuY29tXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQXJyYXlVdGlscywgTnVtZXJpY1V0aWxzIH0gZnJvbSAndHVyYm9jb21tb25zLXRzJztcclxuaW1wb3J0IHsgVHlwZSwgSW5qZWN0YWJsZSwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBJbmplY3RvciwgQXBwbGljYXRpb25SZWYsIFJlbmRlcmVyMiwgUmVuZGVyZXJGYWN0b3J5MiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciwgTWF0U25hY2tCYXJDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBCdXN5U3RhdGVCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vdmlldy9jb21wb25lbnRzL2J1c3ktc3RhdGUtYmFzZS9idXN5LXN0YXRlLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBEb21Qb3J0YWxPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgRGlhbG9nT3B0aW9uc0Jhc2VDb21wb25lbnQgfSBmcm9tICcuLi92aWV3L2NvbXBvbmVudHMvZGlhbG9nLW9wdGlvbnMtYmFzZS9kaWFsb2ctb3B0aW9ucy1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpYWxvZ0Jhc2VDb21wb25lbnQgfSBmcm9tICcuLi92aWV3L2NvbXBvbmVudHMvZGlhbG9nLWJhc2UvZGlhbG9nLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlhbG9nRGF0ZVNlbGVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3ZpZXcvY29tcG9uZW50cy9kaWFsb2ctZGF0ZS1zZWxlY3Rpb24vZGlhbG9nLWRhdGUtc2VsZWN0aW9uLmNvbXBvbmVudCc7XG5cclxuXHJcbi8qKlxyXG4gKiBNYW5hZ2VzIHRoZSBhcHBsaWNhdGlvbiBtb2RhbCBhbmQgbm9uIG1vZGFsIGZsb2F0aW5nIGVsZW1lbnRzXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dTZXJ2aWNlIHtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVc2VkIHRvIG1vZGlmeSB0aGUgYnVzeSBzdGF0ZSBjb21wb25lbnQgdGhhdCBpcyBzaG93biBieSBkZWZhdWx0IGJ5IHRoZSBhZGRNb2RhbEJ1c3lTdGF0ZSgpIG1ldGhvZC5cclxuICAgICAqXHJcbiAgICAgKiBAc2VlIHRoaXMuYWRkTW9kYWxCdXN5U3RhdGUoKVxyXG4gICAgICovXHJcbiAgICBjdXN0b21CdXN5U3RhdGVDb21wb25lbnRDbGFzczogVHlwZTxCdXN5U3RhdGVCYXNlQ29tcG9uZW50PiA9IEJ1c3lTdGF0ZUJhc2VDb21wb25lbnQ7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgcHVibGljIGdldHRlciBmb3IgZG9jc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9pc0VuYWJsZWQgPSB0cnVlO1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlbGxzIGlmIHRoZSBtYWluIGFwcGxpY2F0aW9uIGlzIGN1cnJlbnRseSBzaG93aW5nIGEgYnVzeSBzdGF0ZSB0aGF0IGJsb2NrcyBhbGwgdXNlciBpbnRlcmFjdGlvblxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9pc1Nob3dpbmdCdXN5U3RhdGUgPSBmYWxzZTtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgbW9kYWwgYnVzeSBzdGF0ZSBjb21wb25lbnQgdGhhdCBpcyBpbml0aWFsaXplZCBvbmx5IHRoZSBmaXJzdCB0aW1lIGl0IGlzIGNhbGxlZC5cclxuICAgICAqXHJcbiAgICAgKiAoVG8gYXBwZW5kIHRoZSBidXN5IHN0YXRlIGR5bmFtaWNhbGx5LCB3ZSB1c2UgdGhlIFBvcnRhbCBjb25jZXB0IGZyb20gdGhlIGFuZ3VsYXIgbWF0ZXJpYWwgbGlicmFyeSlcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfY29tcG9uZW50UG9ydGFsOiBDb21wb25lbnRQb3J0YWw8QnVzeVN0YXRlQmFzZUNvbXBvbmVudD4gfCBudWxsID0gbnVsbDtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgbW9kYWwgYnVzeSBzdGF0ZSBjb250YWluZXIgd2hlcmUgdGhlIGNvbXBvbmVudCB3aWxsIGJlIGFkZGVkXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX21vZGFsQnVzeVN0YXRlSG9zdDogRG9tUG9ydGFsT3V0bGV0IHwgbnVsbCA9IG51bGw7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGVsbHMgaWYgdGhlIG1hbmFnZXIgaXMgY3VycmVudGx5IHNob3dpbmcgYSBzbmFja2JhciBlbGVtZW50IG9yIG5vdFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9pc1Nob3dpbmdTbmFja0JhciA9IGZhbHNlO1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnRhaW5zIGEgbGlzdCBvZiB0aGUgZGlhbG9ncyB0aGF0IGFyZSBjdXJyZW50bHkgdmlzaWJsZSB0byB0aGUgdXNlci5cclxuICAgICAqIEVhY2ggaXRlbSBpbiB0aGlzIGxpc3QgaXMgYSBoYXNoIHRoYXQgaXMgY29tcHV0ZWQgd2hlbiBkaWFsb2cgaXMgY3JlYXRlZCB0byB1bmlxdWVseSBpZGVudGlmeSBpdC5cclxuICAgICAqXHJcbiAgICAgKiBFbXB0eSBsaXN0IG1lYW5zIG5vIGRpYWxvZ3MgYXJlIGN1cnJlbnRseSB2aXNpYmxlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2FjdGl2ZURpYWxvZ3M6IHN0cmluZ1tdID0gW107XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udGFpbnMgYSBsaXN0IHdpdGggYWxsIHRoZSBNYXREaWFsb2cgaW5zdGFuY2VzIHRoYXQgYXJlIGN1cnJlbnRseSB2aXNpYmxlIHRvIHRoZSB1c2VyLlxyXG4gICAgICogVGhlIGxpc3QgdXNlcyB0aGUgc2FtZSBvcmRlciBhcyB0aGUgbGlzdCBvZiBfYWN0aXZlRGlhbG9ncyBoYXNoIHZhbHVlc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9hY3RpdmVEaWFsb2dJbnN0YW5jZXM6IE1hdERpYWxvZ1JlZjxEaWFsb2dCYXNlQ29tcG9uZW50PltdID0gW107XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXNlZCB0byBzdG9yZSB0aGUgaW5pdGlhbGl6ZWQgUmVuZGVyZXIgMiBpbnN0YW5jZSB0aGF0IGlzIHVzZWQgYnkgdGhpcyBjbGFzc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yZW5kZXJlcjogUmVuZGVyZXIyO1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGhvZCB0aGF0IGlzIHVzZWQgdG8gZGVsZXRlIHRoZSB3aW5kb3cgYmVmb3JldW5sb2FkIGV2ZW50IGxpc3RlbmVyIG9uY2Ugbm90IHVzZWQgYW55bW9yZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF93aW5kb3dCZWZvcmVVbmxvYWRVbkxpc3RlbjogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0aG9kIHRoYXQgaXMgdXNlZCB0byBkZWxldGUgdGhlIGRvY3VtZW50IGtleWRvd24gZXZlbnQgbGlzdGVuZXIgb25jZSBub3QgdXNlZCBhbnltb3JlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2RvY3VtZW50S2V5ZG93blVubGlzdGVuOiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2QgdGhhdCBpcyB1c2VkIHRvIGRlbGV0ZSB0aGUgZG9jdW1lbnQgbW91c2Vkb3duIGV2ZW50IGxpc3RlbmVyIG9uY2Ugbm90IHVzZWQgYW55bW9yZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9kb2N1bWVudE1vdXNlZG93blVubGlzdGVuOiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2QgdGhhdCBpcyB1c2VkIHRvIGRlbGV0ZSB0aGUgZG9jdW1lbnQgcG9pbnRlcmRvd24gZXZlbnQgbGlzdGVuZXIgb25jZSBub3QgdXNlZCBhbnltb3JlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2RvY3VtZW50UG9pbnRlcmRvd25Vbmxpc3RlbjogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MixcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbWF0U25hY2tCYXI6IE1hdFNuYWNrQmFyLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtYXREaWFsb2c6IE1hdERpYWxvZyxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XHJcblxyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyID0gcmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKG51bGwsIG51bGwpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlbGxzIGlmIHRoaXMgZGlhbG9nIHNlcnZpY2UgaXMgZW5hYmxlZCBvciBub3QuIElmIGRpYWxvZyBzZXJ2aWNlIGlzIGRpc2FibGVkLCBub25lIG9mIGl0J3MgZmVhdHVyZXMgd2lsbCB3b3JrXHJcbiAgICAgKiBUaGlzIGlzIHVzZWQgdG8gYmxvY2sgYWxsIGRpYWxvZyBmZWF0dXJlcyBub3JtYWxseSB3aGVuIHNodXR0aW5nIGRvd24gdGhlIGFwcGxpY2F0aW9uXHJcbiAgICAgKlxyXG4gICAgICogVXNlIHdpdGggY2F1dGlvbi4gV2hlbiB0aGlzIGlzIHNldCB0byBmYWxzZSwgZGlhbG9nIHNlcnZpY2Ugc3RvcHMgd29ya2luZy5cclxuICAgICAqL1xyXG4gICAgc2V0IGlzRW5hYmxlZCh2OiBib29sZWFuKSB7XHJcblxyXG4gICAgICAgIGlmICh2ID09PSB0aGlzLl9pc0VuYWJsZWQpIHtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2lzRW5hYmxlZCA9IHY7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRW5hYmxlcyBhIHdhcm5pbmcgdGhhdCB3aWxsIGJlIHNob3duIHRvIHRoZSB1c2VyIHdoZW4gaGUvc2hlIHRyaWVzIHRvIGNsb3NlIHRoZSBhcHBsaWNhdGlvbi5cclxuICAgICAqIFRoaXMgd2FybmluZyB3aWxsIHByb21wdCB0aGUgdXNlciB0byBjb250aW51ZSB3aXRoIHRoZSBleGl0IHByb2Nlc3Mgb3IgY2FuY2VsIGl0LlxyXG4gICAgICogVGhlIHNwZWNpZmljIHRleHRzIG9mIHRoaXMgbWVzc2FnZSBhcmUgYSBnZW5lcmljIG9uZXMgYW5kIGNhbm5vdCBiZSBjaGFuZ2VkLlxyXG4gICAgICpcclxuICAgICAqIElNUE9SVEFOVDogVGhpcyBtZXRob2QgbXVzdCBiZSBjYWxsZWQgYWZ0ZXIgdGhlIG1haW4gYXBwbGljYXRpb24gaGFzIGJlZW4gaW5pdGlhbGl6ZWQgaW4gb3JkZXIgdG8gd29yayxcclxuICAgICAqIG90aGVyd2lzZSBpdCB3aWxsIGRvIG5vdGhpbmcuXHJcbiAgICAgKi9cclxuICAgIGFkZENsb3NlQXBwbGljYXRpb25XYXJuaW5nKCkge1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fd2luZG93QmVmb3JlVW5sb2FkVW5MaXN0ZW4gPT09IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3dpbmRvd0JlZm9yZVVubG9hZFVuTGlzdGVuID0gdGhpcy5fcmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAnYmVmb3JldW5sb2FkJyxcclxuICAgICAgICAgICAgICAgIChldmVudCkgPT4gZXZlbnQucmV0dXJuVmFsdWUgPSB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlIHRoZSBjbG9zZSBhcHBsaWNhdGlvbiB3YXJuaW5nIG1lc3NhZ2UgaWYgcHJldmlvdXNseSBhc3NpZ25lZFxyXG4gICAgICovXHJcbiAgICByZW1vdmVDbG9zZUFwcGxpY2F0aW9uV2FybmluZygpIHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX3dpbmRvd0JlZm9yZVVubG9hZFVuTGlzdGVuICE9PSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl93aW5kb3dCZWZvcmVVbmxvYWRVbkxpc3RlbigpO1xyXG4gICAgICAgICAgICB0aGlzLl93aW5kb3dCZWZvcmVVbmxvYWRVbkxpc3RlbiA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIENoYW5nZSB0aGUgYXBwbGljYXRpb24gdmlzdWFsIGFwcGVhcmFuY2Ugc28gdGhlIHVzZXIgcGVyY2VpdmVzIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGlzXHJcbiAgICAgKiBjdXJyZW50bHkgYnVzeS4gV2hpbGUgbW9kYWwgYnVzeSBzdGF0ZSBpcyBlbmFibGVkLCBubyB1c2VyIGlucHV0IGlzIHBvc3NpYmxlIG5laXRoZXIgdmlhXHJcbiAgICAgKiBrZXlib2FyZCwgbW91c2Ugb3IgdG91Y2guIFVzZSB0aGlzIHN0YXRlIHdoZW4gcGVyZm9ybWluZyBzZXJ2ZXIgcmVxdWVzdHMgb3Igb3BlcmF0aW9ucyB0aGF0XHJcbiAgICAgKiBtdXN0IGJsb2NrIHRoZSB1c2VyIGludGVyYWN0aW9uIHdpdGggdGhlIGFwcGxpY2F0aW9uLlxyXG4gICAgICpcclxuICAgICAqIE5vdGU6IFdlIGNhbiBtb2RpZnkgdGhlIGJ1c3kgc3RhdGUgY29tcG9uZW50IHRoYXQgaXMgc2hvd24gYnkgdGhpcyBtZXRob2QuIFRvIGRvIGl0LCB3ZSBtdXN0XHJcbiAgICAgKiBzZXQgdGhpcy5jdXN0b21CdXN5U3RhdGVDb21wb25lbnRDbGFzcyBwcm9wZXJ0eSB3aXRoIG91ciBvd24gY3VzdG9tIGJ1c3kgc3RhdGUgY29tcG9uZW50IGNsYXNzLiAoV2UgY2FuIGRvIGl0IGF0XHJcbiAgICAgKiBvdXIgbWFpbiBhcHBsaWNhdGlvbiBjb21wb25lbnQgY29uc3RydWN0b3IgZm9yIGV4YW1wbGUpLiBPdXIgY3VzdG9tIGNvbXBvbmVudCBtdXN0IGV4dGVuZCB0aGVcclxuICAgICAqIEJ1c3lTdGF0ZUJhc2VDb21wb25lbnQgb25lIHRvIGFkZCBpdHMgb3duIHZpc3VhbCBhcHBlYXJhbmNlLlxyXG4gICAgICpcclxuICAgICAqIEBzZWUgdGhpcy5jdXN0b21CdXN5U3RhdGVDb21wb25lbnRDbGFzc1xyXG4gICAgICovXHJcbiAgICBhZGRNb2RhbEJ1c3lTdGF0ZSgpIHtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLl9pc0VuYWJsZWQgfHwgdGhpcy5faXNTaG93aW5nQnVzeVN0YXRlKSB7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9kaXNhYmxlVXNlckludGVyYWN0aW9uKCk7XHJcblxyXG4gICAgICAgIC8vIER5bmFtaWNhbGx5IGNyZWF0ZSB0aGUgYnVzeSBzdGF0ZSBjb21wb25lbnQgcmVmZXJlbmNlIGlmIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWVcclxuICAgICAgICBpZiAodGhpcy5fY29tcG9uZW50UG9ydGFsID09PSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9jb21wb25lbnRQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMuY3VzdG9tQnVzeVN0YXRlQ29tcG9uZW50Q2xhc3MpO1xyXG5cclxuICAgICAgICAgICAgLy8gQ3JlYXRlIGEgUG9ydGFsSG9zdCB3aXRoIGRvY3VtZW50LmJvZHkgYXMgaXRzIGFuY2hvciBlbGVtZW50XHJcbiAgICAgICAgICAgIHRoaXMuX21vZGFsQnVzeVN0YXRlSG9zdCA9IG5ldyBEb21Qb3J0YWxPdXRsZXQoXHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keSxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uUmVmLFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0b3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgKHRoaXMuX21vZGFsQnVzeVN0YXRlSG9zdCBhcyBEb21Qb3J0YWxPdXRsZXQpLmF0dGFjaCh0aGlzLl9jb21wb25lbnRQb3J0YWwpO1xyXG5cclxuICAgICAgICB0aGlzLl9pc1Nob3dpbmdCdXN5U3RhdGUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlbGxzIGlmIHRoZSBhcHBsaWNhdGlvbiBpcyBjdXJyZW50bHkgbG9ja2VkIGluIGEgbW9kYWwgYnVzeSBzdGF0ZSAoY2F1c2VkIGJ5IGFuIGFkZE1vZGFsQnVzeVN0YXRlKCkgY2FsbClcclxuICAgICAqL1xyXG4gICAgZ2V0IGlzU2hvd2luZ0J1c3lTdGF0ZSgpIHtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU2hvd2luZ0J1c3lTdGF0ZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmUgdGhlIGFwcGxpY2F0aW9uIGJ1c3kgc3RhdGUgYW5kIHJlc3RvcmUgaXQgYmFjayB0byBub3JtYWwgdXNlciBpbnRlcmFjdGlvblxyXG4gICAgICovXHJcbiAgICByZW1vdmVNb2RhbEJ1c3lTdGF0ZSgpIHtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLl9pc0VuYWJsZWQgfHwgIXRoaXMuX2lzU2hvd2luZ0J1c3lTdGF0ZSkge1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2NvbXBvbmVudFBvcnRhbCAhPT0gbnVsbCkge1xyXG5cclxuICAgICAgICAgICAgKHRoaXMuX21vZGFsQnVzeVN0YXRlSG9zdCBhcyBEb21Qb3J0YWxPdXRsZXQpLmRldGFjaCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fZW5hYmxlVXNlckludGVyYWN0aW9uKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2lzU2hvd2luZ0J1c3lTdGF0ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogVE9ETyAtIGFkYXB0IGZyb20gVFMgdmVyc2lvblxyXG4gICAgICovXHJcbiAgICBhZGRUb29sVGlwKCkge1xyXG5cclxuICAgICAgICAvLyBUT0RPIC0gYWRhcHQgZnJvbSBUUyB2ZXJzaW9uXHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvdyBhIG5vbiBtb2RhbCBzbmFja2JhciBub3RpZmljYXRpb24gdG8gdGhlIHVzZXIgKE9ubHkgb25lIHNuYWNrLWJhciBjYW4gZXZlciBiZSBvcGVuZWQgYXQgdGhlIHNhbWUgdGltZSkuXHJcbiAgICAgKlxyXG4gICAgICogU25hY2tiYXJzIGluZm9ybSB1c2VycyBvZiBhIHByb2Nlc3MgdGhhdCBhbiBhcHAgaGFzIHBlcmZvcm1lZCBvciB3aWxsIHBlcmZvcm0uIFRoZXkgYXBwZWFyIHRlbXBvcmFyaWx5LCB0b3dhcmRzIHRoZSBib3R0b20gb3IgdG9wIG9mIHRoZSBzY3JlZW4uXHJcbiAgICAgKiBUaGV5IHNob3VsZG7igJl0IGludGVycnVwdCB0aGUgdXNlciBleHBlcmllbmNlLCBhbmQgdGhleSBkb27igJl0IHJlcXVpcmUgdXNlciBpbnB1dCB0byBkaXNhcHBlYXIuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNvbmZpZyBBIE1hdFNuYWNrQmFyQ29uZmlnIGluc3RhbmNlIHdpdGggdGhlIGN1c3RvbWl6YXRpb25zIHdlIHdhbnQgZm9yIHRoaXMgc25hY2tiYXJcclxuICAgICAqIEBwYXJhbSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIHNob3cgb24gdGhlIHNuYWNrYmFyXHJcbiAgICAgKiBAcGFyYW0gYWN0aW9uIElmIG5vdCBlbXB0eSwgdGhlIHRleHQgdG8gcGxhY2Ugb24gdGhlIHNuYWNrYmFyIGNvbmZpcm1hdGlvbiBidXR0b25cclxuICAgICAqIEBwYXJhbSBhY3Rpb25DYWxsYmFjayBBIG1ldGhvZCB0byBleGVjdXRlIG9uY2UgdGhlIHVzZXIgY2xpY2tzIGludG8gdGhlIGFjdGlvbiBidXR0b24uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB2b2lkXHJcbiAgICAgKi9cclxuICAgIGFkZFNuYWNrQmFyKGNvbmZpZzogTWF0U25hY2tCYXJDb25maWcsIG1lc3NhZ2U6IHN0cmluZywgYWN0aW9uID0gJycsIGFjdGlvbkNhbGxiYWNrOiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbCkge1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuX2lzRW5hYmxlZCkge1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2lzU2hvd2luZ1NuYWNrQmFyKSB7XHJcblxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyeWluZyB0byBzaG93IGEgc25hY2tiYXIgd2hpbGUgYW5vdGhlciBvbmUgaXMgc3RpbGwgdmlzaWJsZScpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5faXNTaG93aW5nU25hY2tCYXIgPSB0cnVlO1xyXG5cclxuICAgICAgICBjb25zdCBzbmFja0JhclJlZiA9IHRoaXMubWF0U25hY2tCYXIub3BlbihtZXNzYWdlLCBhY3Rpb24gPT09ICcnID8gdW5kZWZpbmVkIDogYWN0aW9uLCBjb25maWcpO1xyXG5cclxuICAgICAgICBpZiAoYWN0aW9uQ2FsbGJhY2sgIT09IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgIHNuYWNrQmFyUmVmLm9uQWN0aW9uKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICBhY3Rpb25DYWxsYmFjaygpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGVsbHMgaWYgdGhlIGFwcGxpY2F0aW9uIGlzIGN1cnJlbnRseSBzaG93aW5nIGEgc25hY2tiYXIgb3Igbm90XHJcbiAgICAgKi9cclxuICAgIGdldCBpc1Nob3dpbmdTbmFja0JhcigpIHtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU2hvd2luZ1NuYWNrQmFyO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZvcmNlIHRoZSByZW1vdmFsIG9mIHRoZSBzbmFjayBiYXIgZGlhbG9nIGlmIGl0IGV4aXN0cy5cclxuICAgICAqXHJcbiAgICAgKiBJZiBubyBzbmFja2JhciBpcyBjdXJyZW50bHkgdmlzaWJsZSwgdGhpcyBtZXRob2Qgd2lsbCBkbyBub3RoaW5nXHJcbiAgICAgKi9cclxuICAgIHJlbW92ZVNuYWNrQmFyKCkge1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuX2lzRW5hYmxlZCB8fCAhdGhpcy5faXNTaG93aW5nU25hY2tCYXIpIHtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubWF0U25hY2tCYXIuZGlzbWlzcygpO1xyXG5cclxuICAgICAgICB0aGlzLl9pc1Nob3dpbmdTbmFja0JhciA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3cgYSBkaWFsb2cgd2l0aCBvbmUgb3IgbW9yZSBvcHRpb25zIHRoYXQgY2FuIGJlIHVzZWQgdG8gY2xvc2UgaXQuIFdlIGNhbiB1c2UgYW55IG9mIHRoZSBwcmVkZWZpbmVkIGRpYWxvZyB0eXBlcyB0aGF0IGFyZSBidW5kbGVkIHdpdGhcclxuICAgICAqIHRoaXMgbGlicmFyeSBvciBleHRlbmQgRGlhbG9nT3B0aW9uc0Jhc2VDb21wb25lbnQgdG8gY3JlYXRlIG91ciBvd24gY3VzdG9tIG9uZXMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHdpZHRoIFNwZWNpZnkgdGhlIGNzcyB2YWx1ZSBmb3IgdGhlIG1heGltdW0gd2lkdGggdGhlIGRpYWxvZyB3aWxsIGhhdmUuIEFzIHRoZSBkaWFsb2cgaXMgcmVzcG9uc2l2ZSwgdGhlIHZhbHVlIHdpbGwgYmUgYXV0b21hdGljYWxseVxyXG4gICAgICAgICAgICAgIHJlZHVjZWQgaWYgdGhlIGF2YWlsYWJsZSBzY3JlZW4gaXMgbm90IGVub3VnaCwgYW5kIHdpbGwgcmVhY2ggdGhlIGRlc2lyZWQgdmFsdWUgb3RoZXJ3aXNlLiBOb3RlIHRoYXQgaGVpZ2h0IHdpbGwgYmUgYWRhcHRlZCB0byB0aGUgY29udGVudHNcclxuICAgICAgICAgICAgICBvZiB0aGUgZGlhbG9nIGFuZCBjYW5ub3QgYmUgc3BlY2lmaWVkIGhlcmUuIFdlIGNhbiBzZXQgYSBwaXhlbHMsICUgb3IgYW55IG90aGVyIGNzcyBhY2NlcHRlZCB2YWx1ZS4gRm9yIGV4YW1wbGU6ICc0MDBweCcsICc1MCUnLCBldGMuXHJcbiAgICAgKiBAcGFyYW0gdGV4dHMgQSBsaXN0IHdpdGggc3RyaW5ncyBjb250YWluaW5nIHRoZSBkaWFsb2cgdGV4dHMsIHNvcnRlZCBieSBpbXBvcnRhbmNlLiBXaGVuIGRpYWxvZyBoYXMgYSB0aXRsZSwgdGhpcyBzaG91bGRcclxuICAgICAqICAgICAgICBiZSBwbGFjZWQgZmlyc3QsIHN1YnRpdGxlIHNlY29uZCBhbmQgc28gKEVhY2ggZGlhbG9nIG1heSBhY2NlcHQgZGlmZmVyZW50IG51bWJlciBvZiB0ZXh0cykuXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBBIGxpc3Qgb2Ygc3RyaW5ncyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBidXR0b24gY2FwdGlvbnMgZm9yIGVhY2ggb25lIG9mIHRoZSBhY2NlcHRlZCBkaWFsb2cgb3B0aW9uc1xyXG4gICAgICogQHBhcmFtIGRpYWxvZ0NvbXBvbmVudENsYXNzIEEgY2xhc3MgZm9yIGEgY29tcG9uZW50IHRoYXQgZXh0ZW5kcyBEaWFsb2dPcHRpb25zQmFzZUNvbXBvbmVudCwgd2hpY2ggd2lsbCBiZSB0aGVcclxuICAgICAqICAgICAgICBkaWFsb2cgdmlzdWFsIGVsZW1lbnQgdGhhdCBpcyBzaG93biB0byB0aGUgdXNlci5cclxuICAgICAqIEBwYXJhbSBjYWxsYmFjayBBIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgYWZ0ZXIgdGhlIGRpYWxvZyBpcyBjbG9zZWQgYW5kIHdpbGwgcmVjZWl2ZSBhbiBvYmplY3Qgd2l0aCB0aGUgbnVtZXJpYyBpbmRleCBhbmQgdmFsdWUgZm9yXHJcbiAgICAgKiAgICAgICAgdGhlIG9wdGlvbiB0aGF0J3MgYmVlbiBzZWxlY3RlZCBieSB0aGUgdXNlci4gaWYgbm8gb3B0aW9uIHdhcyBzZWxlY3RlZCwgdGhlIHZhbHVlIHdpbGwgYmUgLTFcclxuICAgICAqIEBwYXJhbSBtb2RhbCBUcnVlIChkZWZhdWx0KSBpZiBzZWxlY3RpbmcgYW4gb3B0aW9uIGlzIG1hbmRhdG9yeSB0byBjbG9zZSB0aGUgZGlhbG9nLCBmYWxzZSBpZiB0aGUgZGlhbG9nIGNhbiBiZSBjbG9zZWRcclxuICAgICAqICAgICAgICBieSB0aGUgdXNlciBieSBjbGlja2luZyBvdXRzaWRlIGl0IFxyXG4gICAgICogQHBhcmFtIG1heFdpZHRoIERlZmluZXMgdGhlIG1heGltdW0gd2lkdGggdGhhdCB0aGUgZGlhbG9nIHdpbGwgaGF2ZSByZWdhcmRpbmcgdGhlIHZpZXdwb3J0LiBXZSBjYW4gc3BlY2lmeSBpdCBpbiAlIG9yIHZ3LCBqdXN0IGxpa2UgaXMgZG9uZSBpblxyXG4gICAgICogICAgICAgIGNzcy4gQnkgZGVmYXVsdCBpdCBpcyBkZWZpbmVkIGFzIDk2dncsIHdoaWNoIHdpbGwgZml0IDk2JSBvZiB0aGUgdmlld3BvcnQgb24gc21hbGwgZGV2aWNlc1xyXG4gICAgICovXHJcbiAgICBhZGREaWFsb2coZGlhbG9nQ29tcG9uZW50Q2xhc3M6IFR5cGU8RGlhbG9nT3B0aW9uc0Jhc2VDb21wb25lbnQ+LFxyXG4gICAgICAgICAgICAgIG9wdGlvbnM6IHt3aWR0aD86IHN0cmluZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg/OiBzdHJpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD86IHN0cmluZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4SGVpZ2h0Pzogc3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RhbD86IGJvb2xlYW4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRzPzogc3RyaW5nW10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhcHRpb25zPzogc3RyaW5nW119LCBcclxuICAgICAgICAgICAgICBjYWxsYmFjazogbnVsbCB8ICgoc2VsZWN0ZWRPcHRpb246IHtpbmRleDpudW1iZXIsIHZhbHVlOiBhbnl9KSA9PiB2b2lkKSA9IG51bGwpIHtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLl9pc0VuYWJsZWQpIHtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gU2V0IHRoZSBkZWZhdWx0IHZhbHVlcyBmb3IgYWxsIG5vbiBzcGVjaWZpZWQgdmlzdWFsIG9wdGlvbnNcclxuICAgICAgICBvcHRpb25zLndpZHRoID0gb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnd2lkdGgnKSA/IG9wdGlvbnMud2lkdGggOiBcIjUwJVwiO1xyXG4gICAgICAgIG9wdGlvbnMubWF4V2lkdGggPSBvcHRpb25zLmhhc093blByb3BlcnR5KCdtYXhXaWR0aCcpID8gb3B0aW9ucy5tYXhXaWR0aCA6IFwiOTZ2d1wiO1xyXG4gICAgICAgIG9wdGlvbnMuaGVpZ2h0ID0gb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnaGVpZ2h0JykgPyBvcHRpb25zLmhlaWdodCA6IFwiNTAlXCI7XHJcbiAgICAgICAgb3B0aW9ucy5tYXhIZWlnaHQgPSBvcHRpb25zLmhhc093blByb3BlcnR5KCdtYXhIZWlnaHQnKSA/IG9wdGlvbnMubWF4SGVpZ2h0IDogXCI5MnZ3XCI7XHJcbiAgICAgICAgb3B0aW9ucy5tb2RhbCA9IG9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ21vZGFsJykgPyBvcHRpb25zLm1vZGFsIDogdHJ1ZTtcclxuICAgICAgICBvcHRpb25zLnRleHRzID0gb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgndGV4dHMnKSA/IG9wdGlvbnMudGV4dHMgOiBbXTtcclxuICAgICAgICBvcHRpb25zLmNhcHRpb25zID0gb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnY2FwdGlvbnMnKSA/IG9wdGlvbnMuY2FwdGlvbnMgOiBbXTtcclxuXHJcbiAgICAgICAgLy8gR2VuZXJhdGUgYSBzdHJpbmcgdG8gdW5pcXVlbHkgaWRlbnRpZnkgdGhpcyBkaWFsb2cgb24gdGhlIGxpc3Qgb2YgYWN0aXZlIGRpYWxvZ3NcclxuICAgICAgICBjb25zdCBkaWFsb2dIYXNoID0gb3B0aW9ucy50ZXh0cyEuam9pbignJykgKyBvcHRpb25zLmNhcHRpb25zIS5qb2luKCcnKSArIGRpYWxvZ0NvbXBvbmVudENsYXNzLm5hbWU7XHJcblxyXG4gICAgICAgIC8vIGlkZW50aWNhbCBkaWFsb2dzIHdvbid0IGJlIGFsbG93ZWQgYXQgdGhlIHNhbWUgdGltZVxyXG4gICAgICAgIGlmICh0aGlzLl9hY3RpdmVEaWFsb2dzLmluY2x1ZGVzKGRpYWxvZ0hhc2gpKSB7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLm1hdERpYWxvZy5vcGVuKGRpYWxvZ0NvbXBvbmVudENsYXNzLCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiBvcHRpb25zLndpZHRoLFxyXG4gICAgICAgICAgICBtYXhXaWR0aDogb3B0aW9ucy5tYXhXaWR0aCxcclxuICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiBvcHRpb25zLm1vZGFsLFxyXG4gICAgICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxyXG4gICAgICAgICAgICBjbG9zZU9uTmF2aWdhdGlvbjogIW9wdGlvbnMubW9kYWwsXHJcbiAgICAgICAgICAgIGRhdGE6IHsgdGV4dHM6IG9wdGlvbnMudGV4dHMsIG9wdGlvbnM6IG9wdGlvbnMuY2FwdGlvbnMgfVxyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX2FjdGl2ZURpYWxvZ3MucHVzaChkaWFsb2dIYXNoKTtcclxuICAgICAgICB0aGlzLl9hY3RpdmVEaWFsb2dJbnN0YW5jZXMucHVzaChkaWFsb2dSZWYpO1xyXG5cclxuICAgICAgICBkaWFsb2dSZWYuYmVmb3JlQ2xvc2VkKCkuc3Vic2NyaWJlKChzZWxlY3RlZE9wdGlvbkluZGV4OiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZURpYWxvZ3MgPSBBcnJheVV0aWxzLnJlbW92ZUVsZW1lbnQodGhpcy5fYWN0aXZlRGlhbG9ncywgZGlhbG9nSGFzaCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZURpYWxvZ0luc3RhbmNlcyA9IEFycmF5VXRpbHMucmVtb3ZlRWxlbWVudCh0aGlzLl9hY3RpdmVEaWFsb2dJbnN0YW5jZXMsIGRpYWxvZ1JlZik7XHJcblxyXG4gICAgICAgICAgICBpZiAoIU51bWVyaWNVdGlscy5pc0ludGVnZXIoc2VsZWN0ZWRPcHRpb25JbmRleCkpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBpZihvcHRpb25zLm1vZGFsKXtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGRpYWxvZ1JlZi5jbG9zZSgpIGV4cGVjdHMgaW50IHZhbHVlYCk7XHJcblxyXG4gICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25JbmRleCA9IC0xO1xyXG4gICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGNhbGxiYWNrICE9PSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkT3B0aW9uID0ge2luZGV4OiBzZWxlY3RlZE9wdGlvbkluZGV4LCB2YWx1ZTogJyd9O1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBpZihzZWxlY3RlZE9wdGlvbkluZGV4ID49IDApe1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9uLnZhbHVlID0gb3B0aW9ucy5jYXB0aW9ucyFbc2VsZWN0ZWRPcHRpb25JbmRleF07XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgKGNhbGxiYWNrIGFzICgoc2VsZWN0ZWRPcHRpb246IHtpbmRleDpudW1iZXIsIHZhbHVlOiBzdHJpbmd9KSA9PiB2b2lkKSkoc2VsZWN0ZWRPcHRpb24pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBGb3JjZSB0aGUgcmVtb3ZhbCBvZiBhbGwgdGhlIGRpYWxvZ3MgdGhhdCBhcmUgY3VycmVudGx5IHZpc2libGUuXHJcbiAgICAgKlxyXG4gICAgICogSWYgbm8gZGlhbG9ncyBhcmUgY3VycmVudGx5IHZpc2libGUsIHRoaXMgbWV0aG9kIHdpbGwgZG8gbm90aGluZ1xyXG4gICAgICovXHJcbiAgICByZW1vdmVBbGxEaWFsb2dzKCkge1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuX2lzRW5hYmxlZCkge1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBkaWFsb2dSZWYgb2YgdGhpcy5fYWN0aXZlRGlhbG9nSW5zdGFuY2VzKSB7XHJcblxyXG4gICAgICAgICAgICBkaWFsb2dSZWYuY2xvc2UoLTEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICB0aGlzLl9hY3RpdmVEaWFsb2dzID0gW107XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlRGlhbG9nSW5zdGFuY2VzID0gW107XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgYWRkRGF0ZVNlbGVjdGlvbkRpYWxvZyhvcHRpb25zOiB7d2lkdGg/OiBzdHJpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhXaWR0aD86IHN0cmluZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD86IHN0cmluZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEhlaWdodD86IHN0cmluZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFsPzogYm9vbGVhbn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBzdHJpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrOiAoKHNlbGVjdGVkRGF0ZTogbnVsbCB8IERhdGUpID0+IHZvaWQpKSB7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5faXNFbmFibGVkKSB7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuYWRkRGlhbG9nKERpYWxvZ0RhdGVTZWxlY3Rpb25Db21wb25lbnQsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBvcHRpb25zLndpZHRoLFxyXG4gICAgICAgICAgICAgICAgbWF4V2lkdGg6IG9wdGlvbnMubWF4V2lkdGgsXHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IG9wdGlvbnMuaGVpZ2h0LFxyXG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiBvcHRpb25zLm1heEhlaWdodCxcclxuICAgICAgICAgICAgICAgIG1vZGFsOiBvcHRpb25zLm1vZGFsLFxyXG4gICAgICAgICAgICAgICAgdGV4dHM6IFt0aXRsZV0gICBcclxuICAgICAgICAgICAgfSwoc2VsZWN0ZWRPcHRpb24pID0+IHtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBpZihzZWxlY3RlZE9wdGlvbi5pbmRleCA8IDApe1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhzZWxlY3RlZE9wdGlvbi52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9ICBcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQmxvY2sgYWxsIHRoZSB1c2VyIGludGVyYWN0aW9ucyB3aXRoIHRoZSBhcHBsaWNhdGlvbiAoa2V5Ym9hcmQsIHRvdWNoLCBtb3VzZSwgLi4uKVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9kaXNhYmxlVXNlckludGVyYWN0aW9uKCkge1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fZG9jdW1lbnRLZXlkb3duVW5saXN0ZW4gPT09IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2RvY3VtZW50S2V5ZG93blVubGlzdGVuID0gdGhpcy5fcmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdrZXlkb3duJywgKGV2ZW50KSA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9kb2N1bWVudE1vdXNlZG93blVubGlzdGVuID09PSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9kb2N1bWVudE1vdXNlZG93blVubGlzdGVuID0gdGhpcy5fcmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdtb3VzZWRvd24nLCAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2RvY3VtZW50UG9pbnRlcmRvd25Vbmxpc3RlbiA9PT0gbnVsbCkge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fZG9jdW1lbnRQb2ludGVyZG93blVubGlzdGVuID0gdGhpcy5fcmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdwb2ludGVyZG93bicsIChldmVudCkgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc3RvcmUgdGhlIHVzZXIgaW50ZXJhY3Rpb25zIHRoYXQgd2VyZSBwcmV2aW91c2x5IGRpc2FibGVkIHdpdGggX2Rpc2FibGVVc2VySW50ZXJhY3Rpb24gbWV0aG9kXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2VuYWJsZVVzZXJJbnRlcmFjdGlvbigpIHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2RvY3VtZW50S2V5ZG93blVubGlzdGVuICE9PSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9kb2N1bWVudEtleWRvd25Vbmxpc3RlbigpO1xyXG4gICAgICAgICAgICB0aGlzLl9kb2N1bWVudEtleWRvd25Vbmxpc3RlbiA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5fZG9jdW1lbnRNb3VzZWRvd25Vbmxpc3RlbiAhPT0gbnVsbCkge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fZG9jdW1lbnRNb3VzZWRvd25Vbmxpc3RlbigpO1xyXG4gICAgICAgICAgICB0aGlzLl9kb2N1bWVudE1vdXNlZG93blVubGlzdGVuID0gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9kb2N1bWVudFBvaW50ZXJkb3duVW5saXN0ZW4gIT09IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2RvY3VtZW50UG9pbnRlcmRvd25Vbmxpc3RlbigpO1xyXG4gICAgICAgICAgICB0aGlzLl9kb2N1bWVudE1vdXNlZG93blVubGlzdGVuID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
350
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dXJib2d1aS1hbmd1bGFyL3NyYy9tYWluL2NvbnRyb2xsZXIvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFRLFVBQVUsRUFBbUYsTUFBTSxlQUFlLENBQUM7QUFHbEksT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDdEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd2RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQzs7OztBQUd4SDs7R0FFRztBQUVILE1BQU0sT0FBTyxhQUFhO0lBeUZ0QixZQUFZLGVBQWlDLEVBQ2hCLFdBQXdCLEVBQ3hCLFNBQW9CLEVBQ3BCLFFBQWtCLEVBQ2xCLGNBQThCLEVBQzlCLHdCQUFrRDtRQUpsRCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUEzRi9FOzs7O1dBSUc7UUFDSCxrQ0FBNkIsR0FBaUMsc0JBQXNCLENBQUM7UUFHckY7O1dBRUc7UUFDSyxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBRzFCOztXQUVHO1FBQ0ssd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBR3BDOzs7O1dBSUc7UUFDSyxxQkFBZ0IsR0FBbUQsSUFBSSxDQUFDO1FBR2hGOztXQUVHO1FBQ0ssd0JBQW1CLEdBQTJCLElBQUksQ0FBQztRQUczRDs7V0FFRztRQUNLLHVC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LElBQUksQ0FBQztTQUMxQztRQUVELElBQUksSUFBSSxDQUFDLDRCQUE0QixLQUFLLElBQUksRUFBRTtZQUU1QyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO1NBQzFDO0lBQ0wsQ0FBQzs4R0FsZVEsYUFBYTtrSEFBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFR1cmJvR1VJIGlzIEEgbGlicmFyeSB0aGF0IGhlbHBzIHdpdGggdGhlIG1vc3QgY29tbW9uIGFuZCBnZW5lcmljIFVJIGVsZW1lbnRzIGFuZCBmdW5jdGlvbmFsaXRpZXNcclxuICpcclxuICogV2Vic2l0ZSA6IC0+IGh0dHA6Ly93d3cudHVyYm9ndWkub3JnXHJcbiAqIExpY2Vuc2UgOiAtPiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIExpY2Vuc2UgVXJsIDogLT4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqIENvcHlSaWdodCA6IC0+IENvcHlyaWdodCAyMDE4IEVkZXJ0b25lIEFkdmFuZGVkIFNvbHV0aW9ucy4gaHR0cHM6Ly93d3cuZWRlcnRvbmUuY29tXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQXJyYXlVdGlscywgTnVtZXJpY1V0aWxzIH0gZnJvbSAndHVyYm9jb21tb25zLXRzJztcclxuaW1wb3J0IHsgVHlwZSwgSW5qZWN0YWJsZSwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBJbmplY3RvciwgQXBwbGljYXRpb25SZWYsIFJlbmRlcmVyMiwgUmVuZGVyZXJGYWN0b3J5MiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciwgTWF0U25hY2tCYXJDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBCdXN5U3RhdGVCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vdmlldy9jb21wb25lbnRzL2J1c3ktc3RhdGUtYmFzZS9idXN5LXN0YXRlLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBEb21Qb3J0YWxPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgRGlhbG9nT3B0aW9uc0Jhc2VDb21wb25lbnQgfSBmcm9tICcuLi92aWV3L2NvbXBvbmVudHMvZGlhbG9nLW9wdGlvbnMtYmFzZS9kaWFsb2ctb3B0aW9ucy1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpYWxvZ0Jhc2VDb21wb25lbnQgfSBmcm9tICcuLi92aWV3L2NvbXBvbmVudHMvZGlhbG9nLWJhc2UvZGlhbG9nLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlhbG9nRGF0ZVNlbGVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3ZpZXcvY29tcG9uZW50cy9kaWFsb2ctZGF0ZS1zZWxlY3Rpb24vZGlhbG9nLWRhdGUtc2VsZWN0aW9uLmNvbXBvbmVudCc7XG5cclxuXHJcbi8qKlxyXG4gKiBNYW5hZ2VzIHRoZSBhcHBsaWNhdGlvbiBtb2RhbCBhbmQgbm9uIG1vZGFsIGZsb2F0aW5nIGVsZW1lbnRzXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dTZXJ2aWNlIHtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVc2VkIHRvIG1vZGlmeSB0aGUgYnVzeSBzdGF0ZSBjb21wb25lbnQgdGhhdCBpcyBzaG93biBieSBkZWZhdWx0IGJ5IHRoZSBhZGRNb2RhbEJ1c3lTdGF0ZSgpIG1ldGhvZC5cclxuICAgICAqXHJcbiAgICAgKiBAc2VlIHRoaXMuYWRkTW9kYWxCdXN5U3RhdGUoKVxyXG4gICAgICovXHJcbiAgICBjdXN0b21CdXN5U3RhdGVDb21wb25lbnRDbGFzczogVHlwZTxCdXN5U3RhdGVCYXNlQ29tcG9uZW50PiA9IEJ1c3lTdGF0ZUJhc2VDb21wb25lbnQ7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgcHVibGljIGdldHRlciBmb3IgZG9jc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9pc0VuYWJsZWQgPSB0cnVlO1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlbGxzIGlmIHRoZSBtYWluIGFwcGxpY2F0aW9uIGlzIGN1cnJlbnRseSBzaG93aW5nIGEgYnVzeSBzdGF0ZSB0aGF0IGJsb2NrcyBhbGwgdXNlciBpbnRlcmFjdGlvblxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9pc1Nob3dpbmdCdXN5U3RhdGUgPSBmYWxzZTtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgbW9kYWwgYnVzeSBzdGF0ZSBjb21wb25lbnQgdGhhdCBpcyBpbml0aWFsaXplZCBvbmx5IHRoZSBmaXJzdCB0aW1lIGl0IGlzIGNhbGxlZC5cclxuICAgICAqXHJcbiAgICAgKiAoVG8gYXBwZW5kIHRoZSBidXN5IHN0YXRlIGR5bmFtaWNhbGx5LCB3ZSB1c2UgdGhlIFBvcnRhbCBjb25jZXB0IGZyb20gdGhlIGFuZ3VsYXIgbWF0ZXJpYWwgbGlicmFyeSlcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfY29tcG9uZW50UG9ydGFsOiBDb21wb25lbnRQb3J0YWw8QnVzeVN0YXRlQmFzZUNvbXBvbmVudD4gfCBudWxsID0gbnVsbDtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgbW9kYWwgYnVzeSBzdGF0ZSBjb250YWluZXIgd2hlcmUgdGhlIGNvbXBvbmVudCB3aWxsIGJlIGFkZGVkXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX21vZGFsQnVzeVN0YXRlSG9zdDogRG9tUG9ydGFsT3V0bGV0IHwgbnVsbCA9IG51bGw7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGVsbHMgaWYgdGhlIG1hbmFnZXIgaXMgY3VycmVudGx5IHNob3dpbmcgYSBzbmFja2JhciBlbGVtZW50IG9yIG5vdFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9pc1Nob3dpbmdTbmFja0JhciA9IGZhbHNlO1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnRhaW5zIGEgbGlzdCBvZiB0aGUgZGlhbG9ncyB0aGF0IGFyZSBjdXJyZW50bHkgdmlzaWJsZSB0byB0aGUgdXNlci5cclxuICAgICAqIEVhY2ggaXRlbSBpbiB0aGlzIGxpc3QgaXMgYSBoYXNoIHRoYXQgaXMgY29tcHV0ZWQgd2hlbiBkaWFsb2cgaXMgY3JlYXRlZCB0byB1bmlxdWVseSBpZGVudGlmeSBpdC5cclxuICAgICAqXHJcbiAgICAgKiBFbXB0eSBsaXN0IG1lYW5zIG5vIGRpYWxvZ3MgYXJlIGN1cnJlbnRseSB2aXNpYmxlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2FjdGl2ZURpYWxvZ3M6IHN0cmluZ1tdID0gW107XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udGFpbnMgYSBsaXN0IHdpdGggYWxsIHRoZSBNYXREaWFsb2cgaW5zdGFuY2VzIHRoYXQgYXJlIGN1cnJlbnRseSB2aXNpYmxlIHRvIHRoZSB1c2VyLlxyXG4gICAgICogVGhlIGxpc3QgdXNlcyB0aGUgc2FtZSBvcmRlciBhcyB0aGUgbGlzdCBvZiBfYWN0aXZlRGlhbG9ncyBoYXNoIHZhbHVlc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9hY3RpdmVEaWFsb2dJbnN0YW5jZXM6IE1hdERpYWxvZ1JlZjxEaWFsb2dCYXNlQ29tcG9uZW50PltdID0gW107XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXNlZCB0byBzdG9yZSB0aGUgaW5pdGlhbGl6ZWQgUmVuZGVyZXIgMiBpbnN0YW5jZSB0aGF0IGlzIHVzZWQgYnkgdGhpcyBjbGFzc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yZW5kZXJlcjogUmVuZGVyZXIyO1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGhvZCB0aGF0IGlzIHVzZWQgdG8gZGVsZXRlIHRoZSB3aW5kb3cgYmVmb3JldW5sb2FkIGV2ZW50IGxpc3RlbmVyIG9uY2Ugbm90IHVzZWQgYW55bW9yZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF93aW5kb3dCZWZvcmVVbmxvYWRVbkxpc3RlbjogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0aG9kIHRoYXQgaXMgdXNlZCB0byBkZWxldGUgdGhlIGRvY3VtZW50IGtleWRvd24gZXZlbnQgbGlzdGVuZXIgb25jZSBub3QgdXNlZCBhbnltb3JlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2RvY3VtZW50S2V5ZG93blVubGlzdGVuOiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2QgdGhhdCBpcyB1c2VkIHRvIGRlbGV0ZSB0aGUgZG9jdW1lbnQgbW91c2Vkb3duIGV2ZW50IGxpc3RlbmVyIG9uY2Ugbm90IHVzZWQgYW55bW9yZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9kb2N1bWVudE1vdXNlZG93blVubGlzdGVuOiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2QgdGhhdCBpcyB1c2VkIHRvIGRlbGV0ZSB0aGUgZG9jdW1lbnQgcG9pbnRlcmRvd24gZXZlbnQgbGlzdGVuZXIgb25jZSBub3QgdXNlZCBhbnltb3JlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2RvY3VtZW50UG9pbnRlcmRvd25Vbmxpc3RlbjogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MixcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbWF0U25hY2tCYXI6IE1hdFNuYWNrQmFyLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtYXREaWFsb2c6IE1hdERpYWxvZyxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XHJcblxyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyID0gcmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKG51bGwsIG51bGwpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlbGxzIGlmIHRoaXMgZGlhbG9nIHNlcnZpY2UgaXMgZW5hYmxlZCBvciBub3QuIElmIGRpYWxvZyBzZXJ2aWNlIGlzIGRpc2FibGVkLCBub25lIG9mIGl0J3MgZmVhdHVyZXMgd2lsbCB3b3JrXHJcbiAgICAgKiBUaGlzIGlzIHVzZWQgdG8gYmxvY2sgYWxsIGRpYWxvZyBmZWF0dXJlcyBub3JtYWxseSB3aGVuIHNodXR0aW5nIGRvd24gdGhlIGFwcGxpY2F0aW9uXHJcbiAgICAgKlxyXG4gICAgICogVXNlIHdpdGggY2F1dGlvbi4gV2hlbiB0aGlzIGlzIHNldCB0byBmYWxzZSwgZGlhbG9nIHNlcnZpY2Ugc3RvcHMgd29ya2luZy5cclxuICAgICAqL1xyXG4gICAgc2V0IGlzRW5hYmxlZCh2OiBib29sZWFuKSB7XHJcblxyXG4gICAgICAgIGlmICh2ID09PSB0aGlzLl9pc0VuYWJsZWQpIHtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2lzRW5hYmxlZCA9IHY7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRW5hYmxlcyBhIHdhcm5pbmcgdGhhdCB3aWxsIGJlIHNob3duIHRvIHRoZSB1c2VyIHdoZW4gaGUvc2hlIHRyaWVzIHRvIGNsb3NlIHRoZSBhcHBsaWNhdGlvbi5cclxuICAgICAqIFRoaXMgd2FybmluZyB3aWxsIHByb21wdCB0aGUgdXNlciB0byBjb250aW51ZSB3aXRoIHRoZSBleGl0IHByb2Nlc3Mgb3IgY2FuY2VsIGl0LlxyXG4gICAgICogVGhlIHNwZWNpZmljIHRleHRzIG9mIHRoaXMgbWVzc2FnZSBhcmUgYSBnZW5lcmljIG9uZXMgYW5kIGNhbm5vdCBiZSBjaGFuZ2VkLlxyXG4gICAgICpcclxuICAgICAqIElNUE9SVEFOVDogVGhpcyBtZXRob2QgbXVzdCBiZSBjYWxsZWQgYWZ0ZXIgdGhlIG1haW4gYXBwbGljYXRpb24gaGFzIGJlZW4gaW5pdGlhbGl6ZWQgaW4gb3JkZXIgdG8gd29yayxcclxuICAgICAqIG90aGVyd2lzZSBpdCB3aWxsIGRvIG5vdGhpbmcuXHJcbiAgICAgKi9cclxuICAgIGFkZENsb3NlQXBwbGljYXRpb25XYXJuaW5nKCkge1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fd2luZG93QmVmb3JlVW5sb2FkVW5MaXN0ZW4gPT09IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3dpbmRvd0JlZm9yZVVubG9hZFVuTGlzdGVuID0gdGhpcy5fcmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAnYmVmb3JldW5sb2FkJyxcclxuICAgICAgICAgICAgICAgIChldmVudCkgPT4gZXZlbnQucmV0dXJuVmFsdWUgPSB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlIHRoZSBjbG9zZSBhcHBsaWNhdGlvbiB3YXJuaW5nIG1lc3NhZ2UgaWYgcHJldmlvdXNseSBhc3NpZ25lZFxyXG4gICAgICovXHJcbiAgICByZW1vdmVDbG9zZUFwcGxpY2F0aW9uV2FybmluZygpIHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX3dpbmRvd0JlZm9yZVVubG9hZFVuTGlzdGVuICE9PSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl93aW5kb3dCZWZvcmVVbmxvYWRVbkxpc3RlbigpO1xyXG4gICAgICAgICAgICB0aGlzLl93aW5kb3dCZWZvcmVVbmxvYWRVbkxpc3RlbiA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIENoYW5nZSB0aGUgYXBwbGljYXRpb24gdmlzdWFsIGFwcGVhcmFuY2Ugc28gdGhlIHVzZXIgcGVyY2VpdmVzIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGlzXHJcbiAgICAgKiBjdXJyZW50bHkgYnVzeS4gV2hpbGUgbW9kYWwgYnVzeSBzdGF0ZSBpcyBlbmFibGVkLCBubyB1c2VyIGlucHV0IGlzIHBvc3NpYmxlIG5laXRoZXIgdmlhXHJcbiAgICAgKiBrZXlib2FyZCwgbW91c2Ugb3IgdG91Y2guIFVzZSB0aGlzIHN0YXRlIHdoZW4gcGVyZm9ybWluZyBzZXJ2ZXIgcmVxdWVzdHMgb3Igb3BlcmF0aW9ucyB0aGF0XHJcbiAgICAgKiBtdXN0IGJsb2NrIHRoZSB1c2VyIGludGVyYWN0aW9uIHdpdGggdGhlIGFwcGxpY2F0aW9uLlxyXG4gICAgICpcclxuICAgICAqIE5vdGU6IFdlIGNhbiBtb2RpZnkgdGhlIGJ1c3kgc3RhdGUgY29tcG9uZW50IHRoYXQgaXMgc2hvd24gYnkgdGhpcyBtZXRob2QuIFRvIGRvIGl0LCB3ZSBtdXN0XHJcbiAgICAgKiBzZXQgdGhpcy5jdXN0b21CdXN5U3RhdGVDb21wb25lbnRDbGFzcyBwcm9wZXJ0eSB3aXRoIG91ciBvd24gY3VzdG9tIGJ1c3kgc3RhdGUgY29tcG9uZW50IGNsYXNzLiAoV2UgY2FuIGRvIGl0IGF0XHJcbiAgICAgKiBvdXIgbWFpbiBhcHBsaWNhdGlvbiBjb21wb25lbnQgY29uc3RydWN0b3IgZm9yIGV4YW1wbGUpLiBPdXIgY3VzdG9tIGNvbXBvbmVudCBtdXN0IGV4dGVuZCB0aGVcclxuICAgICAqIEJ1c3lTdGF0ZUJhc2VDb21wb25lbnQgb25lIHRvIGFkZCBpdHMgb3duIHZpc3VhbCBhcHBlYXJhbmNlLlxyXG4gICAgICpcclxuICAgICAqIEBzZWUgdGhpcy5jdXN0b21CdXN5U3RhdGVDb21wb25lbnRDbGFzc1xyXG4gICAgICovXHJcbiAgICBhZGRNb2RhbEJ1c3lTdGF0ZSgpIHtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLl9pc0VuYWJsZWQgfHwgdGhpcy5faXNTaG93aW5nQnVzeVN0YXRlKSB7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9kaXNhYmxlVXNlckludGVyYWN0aW9uKCk7XHJcblxyXG4gICAgICAgIC8vIER5bmFtaWNhbGx5IGNyZWF0ZSB0aGUgYnVzeSBzdGF0ZSBjb21wb25lbnQgcmVmZXJlbmNlIGlmIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWVcclxuICAgICAgICBpZiAodGhpcy5fY29tcG9uZW50UG9ydGFsID09PSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9jb21wb25lbnRQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMuY3VzdG9tQnVzeVN0YXRlQ29tcG9uZW50Q2xhc3MpO1xyXG5cclxuICAgICAgICAgICAgLy8gQ3JlYXRlIGEgUG9ydGFsSG9zdCB3aXRoIGRvY3VtZW50LmJvZHkgYXMgaXRzIGFuY2hvciBlbGVtZW50XHJcbiAgICAgICAgICAgIHRoaXMuX21vZGFsQnVzeVN0YXRlSG9zdCA9IG5ldyBEb21Qb3J0YWxPdXRsZXQoXHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keSxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uUmVmLFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0b3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgKHRoaXMuX21vZGFsQnVzeVN0YXRlSG9zdCBhcyBEb21Qb3J0YWxPdXRsZXQpLmF0dGFjaCh0aGlzLl9jb21wb25lbnRQb3J0YWwpO1xyXG5cclxuICAgICAgICB0aGlzLl9pc1Nob3dpbmdCdXN5U3RhdGUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlbGxzIGlmIHRoZSBhcHBsaWNhdGlvbiBpcyBjdXJyZW50bHkgbG9ja2VkIGluIGEgbW9kYWwgYnVzeSBzdGF0ZSAoY2F1c2VkIGJ5IGFuIGFkZE1vZGFsQnVzeVN0YXRlKCkgY2FsbClcclxuICAgICAqL1xyXG4gICAgZ2V0IGlzU2hvd2luZ0J1c3lTdGF0ZSgpIHtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU2hvd2luZ0J1c3lTdGF0ZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmUgdGhlIGFwcGxpY2F0aW9uIGJ1c3kgc3RhdGUgYW5kIHJlc3RvcmUgaXQgYmFjayB0byBub3JtYWwgdXNlciBpbnRlcmFjdGlvblxyXG4gICAgICovXHJcbiAgICByZW1vdmVNb2RhbEJ1c3lTdGF0ZSgpIHtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLl9pc0VuYWJsZWQgfHwgIXRoaXMuX2lzU2hvd2luZ0J1c3lTdGF0ZSkge1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2NvbXBvbmVudFBvcnRhbCAhPT0gbnVsbCkge1xyXG5cclxuICAgICAgICAgICAgKHRoaXMuX21vZGFsQnVzeVN0YXRlSG9zdCBhcyBEb21Qb3J0YWxPdXRsZXQpLmRldGFjaCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fZW5hYmxlVXNlckludGVyYWN0aW9uKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2lzU2hvd2luZ0J1c3lTdGF0ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogVE9ETyAtIGFkYXB0IGZyb20gVFMgdmVyc2lvblxyXG4gICAgICovXHJcbiAgICBhZGRUb29sVGlwKCkge1xyXG5cclxuICAgICAgICAvLyBUT0RPIC0gYWRhcHQgZnJvbSBUUyB2ZXJzaW9uXHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvdyBhIG5vbiBtb2RhbCBzbmFja2JhciBub3RpZmljYXRpb24gdG8gdGhlIHVzZXIgKE9ubHkgb25lIHNuYWNrLWJhciBjYW4gZXZlciBiZSBvcGVuZWQgYXQgdGhlIHNhbWUgdGltZSkuXHJcbiAgICAgKlxyXG4gICAgICogU25hY2tiYXJzIGluZm9ybSB1c2VycyBvZiBhIHByb2Nlc3MgdGhhdCBhbiBhcHAgaGFzIHBlcmZvcm1lZCBvciB3aWxsIHBlcmZvcm0uIFRoZXkgYXBwZWFyIHRlbXBvcmFyaWx5LCB0b3dhcmRzIHRoZSBib3R0b20gb3IgdG9wIG9mIHRoZSBzY3JlZW4uXHJcbiAgICAgKiBUaGV5IHNob3VsZG7igJl0IGludGVycnVwdCB0aGUgdXNlciBleHBlcmllbmNlLCBhbmQgdGhleSBkb27igJl0IHJlcXVpcmUgdXNlciBpbnB1dCB0byBkaXNhcHBlYXIuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNvbmZpZyBBIE1hdFNuYWNrQmFyQ29uZmlnIGluc3RhbmNlIHdpdGggdGhlIGN1c3RvbWl6YXRpb25zIHdlIHdhbnQgZm9yIHRoaXMgc25hY2tiYXJcclxuICAgICAqIEBwYXJhbSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIHNob3cgb24gdGhlIHNuYWNrYmFyXHJcbiAgICAgKiBAcGFyYW0gYWN0aW9uIElmIG5vdCBlbXB0eSwgdGhlIHRleHQgdG8gcGxhY2Ugb24gdGhlIHNuYWNrYmFyIGNvbmZpcm1hdGlvbiBidXR0b25cclxuICAgICAqIEBwYXJhbSBhY3Rpb25DYWxsYmFjayBBIG1ldGhvZCB0byBleGVjdXRlIG9uY2UgdGhlIHVzZXIgY2xpY2tzIGludG8gdGhlIGFjdGlvbiBidXR0b24uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB2b2lkXHJcbiAgICAgKi9cclxuICAgIGFkZFNuYWNrQmFyKGNvbmZpZzogTWF0U25hY2tCYXJDb25maWcsIG1lc3NhZ2U6IHN0cmluZywgYWN0aW9uID0gJycsIGFjdGlvbkNhbGxiYWNrOiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbCkge1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuX2lzRW5hYmxlZCkge1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2lzU2hvd2luZ1NuYWNrQmFyKSB7XHJcblxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyeWluZyB0byBzaG93IGEgc25hY2tiYXIgd2hpbGUgYW5vdGhlciBvbmUgaXMgc3RpbGwgdmlzaWJsZScpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5faXNTaG93aW5nU25hY2tCYXIgPSB0cnVlO1xyXG5cclxuICAgICAgICBjb25zdCBzbmFja0JhclJlZiA9IHRoaXMubWF0U25hY2tCYXIub3BlbihtZXNzYWdlLCBhY3Rpb24gPT09ICcnID8gdW5kZWZpbmVkIDogYWN0aW9uLCBjb25maWcpO1xyXG5cclxuICAgICAgICBpZiAoYWN0aW9uQ2FsbGJhY2sgIT09IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgIHNuYWNrQmFyUmVmLm9uQWN0aW9uKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICBhY3Rpb25DYWxsYmFjaygpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGVsbHMgaWYgdGhlIGFwcGxpY2F0aW9uIGlzIGN1cnJlbnRseSBzaG93aW5nIGEgc25hY2tiYXIgb3Igbm90XHJcbiAgICAgKi9cclxuICAgIGdldCBpc1Nob3dpbmdTbmFja0JhcigpIHtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU2hvd2luZ1NuYWNrQmFyO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZvcmNlIHRoZSByZW1vdmFsIG9mIHRoZSBzbmFjayBiYXIgZGlhbG9nIGlmIGl0IGV4aXN0cy5cclxuICAgICAqXHJcbiAgICAgKiBJZiBubyBzbmFja2JhciBpcyBjdXJyZW50bHkgdmlzaWJsZSwgdGhpcyBtZXRob2Qgd2lsbCBkbyBub3RoaW5nXHJcbiAgICAgKi9cclxuICAgIHJlbW92ZVNuYWNrQmFyKCkge1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuX2lzRW5hYmxlZCB8fCAhdGhpcy5faXNTaG93aW5nU25hY2tCYXIpIHtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubWF0U25hY2tCYXIuZGlzbWlzcygpO1xyXG5cclxuICAgICAgICB0aGlzLl9pc1Nob3dpbmdTbmFja0JhciA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3cgYSBkaWFsb2cgd2l0aCBvbmUgb3IgbW9yZSBvcHRpb25zIHRoYXQgY2FuIGJlIHVzZWQgdG8gY2xvc2UgaXQuIFdlIGNhbiB1c2UgYW55IG9mIHRoZSBwcmVkZWZpbmVkIGRpYWxvZyB0eXBlcyB0aGF0IGFyZSBidW5kbGVkIHdpdGhcclxuICAgICAqIHRoaXMgbGlicmFyeSBvciBleHRlbmQgRGlhbG9nT3B0aW9uc0Jhc2VDb21wb25lbnQgdG8gY3JlYXRlIG91ciBvd24gY3VzdG9tIG9uZXMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHdpZHRoIFNwZWNpZnkgdGhlIGNzcyB2YWx1ZSBmb3IgdGhlIG1heGltdW0gd2lkdGggdGhlIGRpYWxvZyB3aWxsIGhhdmUuIEFzIHRoZSBkaWFsb2cgaXMgcmVzcG9uc2l2ZSwgdGhlIHZhbHVlIHdpbGwgYmUgYXV0b21hdGljYWxseVxyXG4gICAgICAgICAgICAgIHJlZHVjZWQgaWYgdGhlIGF2YWlsYWJsZSBzY3JlZW4gaXMgbm90IGVub3VnaCwgYW5kIHdpbGwgcmVhY2ggdGhlIGRlc2lyZWQgdmFsdWUgb3RoZXJ3aXNlLiBOb3RlIHRoYXQgaGVpZ2h0IHdpbGwgYmUgYWRhcHRlZCB0byB0aGUgY29udGVudHNcclxuICAgICAgICAgICAgICBvZiB0aGUgZGlhbG9nIGFuZCBjYW5ub3QgYmUgc3BlY2lmaWVkIGhlcmUuIFdlIGNhbiBzZXQgYSBwaXhlbHMsICUgb3IgYW55IG90aGVyIGNzcyBhY2NlcHRlZCB2YWx1ZS4gRm9yIGV4YW1wbGU6ICc0MDBweCcsICc1MCUnLCBldGMuXHJcbiAgICAgKiBAcGFyYW0gdGV4dHMgQSBsaXN0IHdpdGggc3RyaW5ncyBjb250YWluaW5nIHRoZSBkaWFsb2cgdGV4dHMsIHNvcnRlZCBieSBpbXBvcnRhbmNlLiBXaGVuIGRpYWxvZyBoYXMgYSB0aXRsZSwgdGhpcyBzaG91bGRcclxuICAgICAqICAgICAgICBiZSBwbGFjZWQgZmlyc3QsIHN1YnRpdGxlIHNlY29uZCBhbmQgc28gKEVhY2ggZGlhbG9nIG1heSBhY2NlcHQgZGlmZmVyZW50IG51bWJlciBvZiB0ZXh0cykuXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBBIGxpc3Qgb2Ygc3RyaW5ncyB0aGF0IHdpbGwgYmUgdXNlZCBhcyBidXR0b24gY2FwdGlvbnMgZm9yIGVhY2ggb25lIG9mIHRoZSBhY2NlcHRlZCBkaWFsb2cgb3B0aW9uc1xyXG4gICAgICogQHBhcmFtIGRpYWxvZ0NvbXBvbmVudENsYXNzIEEgY2xhc3MgZm9yIGEgY29tcG9uZW50IHRoYXQgZXh0ZW5kcyBEaWFsb2dPcHRpb25zQmFzZUNvbXBvbmVudCwgd2hpY2ggd2lsbCBiZSB0aGVcclxuICAgICAqICAgICAgICBkaWFsb2cgdmlzdWFsIGVsZW1lbnQgdGhhdCBpcyBzaG93biB0byB0aGUgdXNlci5cclxuICAgICAqIEBwYXJhbSBjYWxsYmFjayBBIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgYWZ0ZXIgdGhlIGRpYWxvZyBpcyBjbG9zZWQgYW5kIHdpbGwgcmVjZWl2ZSBhbiBvYmplY3Qgd2l0aCB0aGUgbnVtZXJpYyBpbmRleCBhbmQgdmFsdWUgZm9yXHJcbiAgICAgKiAgICAgICAgdGhlIG9wdGlvbiB0aGF0J3MgYmVlbiBzZWxlY3RlZCBieSB0aGUgdXNlci4gaWYgbm8gb3B0aW9uIHdhcyBzZWxlY3RlZCwgdGhlIHZhbHVlIHdpbGwgYmUgLTFcclxuICAgICAqIEBwYXJhbSBtb2RhbCBUcnVlIChkZWZhdWx0KSBpZiBzZWxlY3RpbmcgYW4gb3B0aW9uIGlzIG1hbmRhdG9yeSB0byBjbG9zZSB0aGUgZGlhbG9nLCBmYWxzZSBpZiB0aGUgZGlhbG9nIGNhbiBiZSBjbG9zZWRcclxuICAgICAqICAgICAgICBieSB0aGUgdXNlciBieSBjbGlja2luZyBvdXRzaWRlIGl0IFxyXG4gICAgICogQHBhcmFtIG1heFdpZHRoIERlZmluZXMgdGhlIG1heGltdW0gd2lkdGggdGhhdCB0aGUgZGlhbG9nIHdpbGwgaGF2ZSByZWdhcmRpbmcgdGhlIHZpZXdwb3J0LiBXZSBjYW4gc3BlY2lmeSBpdCBpbiAlIG9yIHZ3LCBqdXN0IGxpa2UgaXMgZG9uZSBpblxyXG4gICAgICogICAgICAgIGNzcy4gQnkgZGVmYXVsdCBpdCBpcyBkZWZpbmVkIGFzIDk2dncsIHdoaWNoIHdpbGwgZml0IDk2JSBvZiB0aGUgdmlld3BvcnQgb24gc21hbGwgZGV2aWNlc1xyXG4gICAgICovXHJcbiAgICBhZGREaWFsb2coZGlhbG9nQ29tcG9uZW50Q2xhc3M6IFR5cGU8RGlhbG9nT3B0aW9uc0Jhc2VDb21wb25lbnQ+LFxyXG4gICAgICAgICAgICAgIHByb3BlcnRpZXM6IHt3aWR0aD86IHN0cmluZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg/OiBzdHJpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD86IHN0cmluZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4SGVpZ2h0Pzogc3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RhbD86IGJvb2xlYW4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRzPzogc3RyaW5nW10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM/OiBzdHJpbmdbXX0sIFxyXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiBudWxsIHwgKChzZWxlY3RlZE9wdGlvbjoge2luZGV4Om51bWJlciwgdmFsdWU6IGFueX0pID0+IHZvaWQpID0gbnVsbCkge1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuX2lzRW5hYmxlZCkge1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAvLyBTZXQgdGhlIGRlZmF1bHQgdmFsdWVzIGZvciBhbGwgbm9uIHNwZWNpZmllZCBwcm9wZXJ0aWVzXHJcbiAgICAgICAgcHJvcGVydGllcy53aWR0aCA9IHByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoJ3dpZHRoJykgPyBwcm9wZXJ0aWVzLndpZHRoIDogXCI1MCVcIjtcclxuICAgICAgICBwcm9wZXJ0aWVzLm1heFdpZHRoID0gcHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eSgnbWF4V2lkdGgnKSA/IHByb3BlcnRpZXMubWF4V2lkdGggOiBcIjk2dndcIjtcclxuICAgICAgICBwcm9wZXJ0aWVzLmhlaWdodCA9IHByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoJ2hlaWdodCcpID8gcHJvcGVydGllcy5oZWlnaHQgOiBcIjUwJVwiO1xyXG4gICAgICAgIHByb3BlcnRpZXMubWF4SGVpZ2h0ID0gcHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eSgnbWF4SGVpZ2h0JykgPyBwcm9wZXJ0aWVzLm1heEhlaWdodCA6IFwiOTJ2d1wiO1xyXG4gICAgICAgIHByb3BlcnRpZXMubW9kYWwgPSBwcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KCdtb2RhbCcpID8gcHJvcGVydGllcy5tb2RhbCA6IHRydWU7XHJcbiAgICAgICAgcHJvcGVydGllcy50ZXh0cyA9IHByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoJ3RleHRzJykgPyBwcm9wZXJ0aWVzLnRleHRzIDogW107XHJcbiAgICAgICAgcHJvcGVydGllcy5vcHRpb25zID0gcHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eSgnb3B0aW9ucycpID8gcHJvcGVydGllcy5vcHRpb25zIDogW107XHJcblxyXG4gICAgICAgIC8vIEdlbmVyYXRlIGEgc3RyaW5nIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoaXMgZGlhbG9nIG9uIHRoZSBsaXN0IG9mIGFjdGl2ZSBkaWFsb2dzXHJcbiAgICAgICAgY29uc3QgZGlhbG9nSGFzaCA9IHByb3BlcnRpZXMudGV4dHMhLmpvaW4oJycpICsgcHJvcGVydGllcy5vcHRpb25zIS5qb2luKCcnKSArIGRpYWxvZ0NvbXBvbmVudENsYXNzLm5hbWU7XHJcblxyXG4gICAgICAgIC8vIGlkZW50aWNhbCBkaWFsb2dzIHdvbid0IGJlIGFsbG93ZWQgYXQgdGhlIHNhbWUgdGltZVxyXG4gICAgICAgIGlmICh0aGlzLl9hY3RpdmVEaWFsb2dzLmluY2x1ZGVzKGRpYWxvZ0hhc2gpKSB7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLm1hdERpYWxvZy5vcGVuKGRpYWxvZ0NvbXBvbmVudENsYXNzLCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiBwcm9wZXJ0aWVzLndpZHRoLFxyXG4gICAgICAgICAgICBtYXhXaWR0aDogcHJvcGVydGllcy5tYXhXaWR0aCxcclxuICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiBwcm9wZXJ0aWVzLm1vZGFsLFxyXG4gICAgICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxyXG4gICAgICAgICAgICBjbG9zZU9uTmF2aWdhdGlvbjogIXByb3BlcnRpZXMubW9kYWwsXHJcbiAgICAgICAgICAgIGRhdGE6IHsgdGV4dHM6IHByb3BlcnRpZXMudGV4dHMsIG9wdGlvbnM6IHByb3BlcnRpZXMub3B0aW9ucyB9XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlRGlhbG9ncy5wdXNoKGRpYWxvZ0hhc2gpO1xyXG4gICAgICAgIHRoaXMuX2FjdGl2ZURpYWxvZ0luc3RhbmNlcy5wdXNoKGRpYWxvZ1JlZik7XHJcblxyXG4gICAgICAgIGRpYWxvZ1JlZi5iZWZvcmVDbG9zZWQoKS5zdWJzY3JpYmUoKHNlbGVjdGVkT3B0aW9uOntpbmRleDpudW1iZXIsIHZhbHVlOmFueX0pID0+IHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZURpYWxvZ3MgPSBBcnJheVV0aWxzLnJlbW92ZUVsZW1lbnQodGhpcy5fYWN0aXZlRGlhbG9ncywgZGlhbG9nSGFzaCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZURpYWxvZ0luc3RhbmNlcyA9IEFycmF5VXRpbHMucmVtb3ZlRWxlbWVudCh0aGlzLl9hY3RpdmVEaWFsb2dJbnN0YW5jZXMsIGRpYWxvZ1JlZik7XHJcblxyXG4gICAgICAgICAgICBpZiAoIU51bWVyaWNVdGlscy5pc0ludGVnZXIoc2VsZWN0ZWRPcHRpb24uaW5kZXgpKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYocHJvcGVydGllcy5tb2RhbCl7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBkaWFsb2dSZWYuY2xvc2UoKSBleHBlY3RzIGludCB2YWx1ZWApO1xyXG5cclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9uLmluZGV4ID0gLTE7XHJcbiAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoY2FsbGJhY2sgIT09IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBpZihzZWxlY3RlZE9wdGlvbi5pbmRleCA+PSAwKXtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlvbi52YWx1ZSA9IHByb3BlcnRpZXMub3B0aW9ucyFbc2VsZWN0ZWRPcHRpb24uaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIChjYWxsYmFjayBhcyAoKHNlbGVjdGVkT3B0aW9uOntpbmRleDpudW1iZXIsIHZhbHVlOmFueX0pID0+IHZvaWQpKShzZWxlY3RlZE9wdGlvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIEZvcmNlIHRoZSByZW1vdmFsIG9mIGFsbCB0aGUgZGlhbG9ncyB0aGF0IGFyZSBjdXJyZW50bHkgdmlzaWJsZS5cclxuICAgICAqXHJcbiAgICAgKiBJZiBubyBkaWFsb2dzIGFyZSBjdXJyZW50bHkgdmlzaWJsZSwgdGhpcyBtZXRob2Qgd2lsbCBkbyBub3RoaW5nXHJcbiAgICAgKi9cclxuICAgIHJlbW92ZUFsbERpYWxvZ3MoKSB7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5faXNFbmFibGVkKSB7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IGRpYWxvZ1JlZiBvZiB0aGlzLl9hY3RpdmVEaWFsb2dJbnN0YW5jZXMpIHtcclxuXHJcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5jbG9zZSgtMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuX2FjdGl2ZURpYWxvZ3MgPSBbXTtcclxuICAgICAgICB0aGlzLl9hY3RpdmVEaWFsb2dJbnN0YW5jZXMgPSBbXTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgXHJcbiAgICBhZGREYXRlU2VsZWN0aW9uRGlhbG9nKHByb3BlcnRpZXM6IHt3aWR0aD86IHN0cmluZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFdpZHRoPzogc3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0Pzogc3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4SGVpZ2h0Pzogc3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWw/OiBib29sZWFufSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHN0cmluZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6ICgoc2VsZWN0ZWREYXRlOiBudWxsIHwgRGF0ZSkgPT4gdm9pZCkpIHtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLl9pc0VuYWJsZWQpIHtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5hZGREaWFsb2coRGlhbG9nRGF0ZVNlbGVjdGlvbkNvbXBvbmVudCxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IHByb3BlcnRpZXMud2lkdGgsXHJcbiAgICAgICAgICAgICAgICBtYXhXaWR0aDogcHJvcGVydGllcy5tYXhXaWR0aCxcclxuICAgICAgICAgICAgICAgIGhlaWdodDogcHJvcGVydGllcy5oZWlnaHQsXHJcbiAgICAgICAgICAgICAgICBtYXhIZWlnaHQ6IHByb3BlcnRpZXMubWF4SGVpZ2h0LFxyXG4gICAgICAgICAgICAgICAgbW9kYWw6IHByb3BlcnRpZXMubW9kYWwsXHJcbiAgICAgICAgICAgICAgICB0ZXh0czogW3RpdGxlXSAgIFxyXG4gICAgICAgICAgICB9LChzZWxlY3RlZE9wdGlvbikgPT4ge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKHNlbGVjdGVkT3B0aW9uLnZhbHVlIGFzIERhdGUpOyAgXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEJsb2NrIGFsbCB0aGUgdXNlciBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgYXBwbGljYXRpb24gKGtleWJvYXJkLCB0b3VjaCwgbW91c2UsIC4uLilcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfZGlzYWJsZVVzZXJJbnRlcmFjdGlvbigpIHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2RvY3VtZW50S2V5ZG93blVubGlzdGVuID09PSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9kb2N1bWVudEtleWRvd25Vbmxpc3RlbiA9IHRoaXMuX3JlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAna2V5ZG93bicsIChldmVudCkgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5fZG9jdW1lbnRNb3VzZWRvd25Vbmxpc3RlbiA9PT0gbnVsbCkge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fZG9jdW1lbnRNb3VzZWRvd25Vbmxpc3RlbiA9IHRoaXMuX3JlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnbW91c2Vkb3duJywgKGV2ZW50KSA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9kb2N1bWVudFBvaW50ZXJkb3duVW5saXN0ZW4gPT09IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2RvY3VtZW50UG9pbnRlcmRvd25Vbmxpc3RlbiA9IHRoaXMuX3JlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAncG9pbnRlcmRvd24nLCAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXN0b3JlIHRoZSB1c2VyIGludGVyYWN0aW9ucyB0aGF0IHdlcmUgcHJldmlvdXNseSBkaXNhYmxlZCB3aXRoIF9kaXNhYmxlVXNlckludGVyYWN0aW9uIG1ldGhvZFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9lbmFibGVVc2VySW50ZXJhY3Rpb24oKSB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9kb2N1bWVudEtleWRvd25Vbmxpc3RlbiAhPT0gbnVsbCkge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fZG9jdW1lbnRLZXlkb3duVW5saXN0ZW4oKTtcclxuICAgICAgICAgICAgdGhpcy5fZG9jdW1lbnRLZXlkb3duVW5saXN0ZW4gPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2RvY3VtZW50TW91c2Vkb3duVW5saXN0ZW4gIT09IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2RvY3VtZW50TW91c2Vkb3duVW5saXN0ZW4oKTtcclxuICAgICAgICAgICAgdGhpcy5fZG9jdW1lbnRNb3VzZWRvd25Vbmxpc3RlbiA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5fZG9jdW1lbnRQb2ludGVyZG93blVubGlzdGVuICE9PSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9kb2N1bWVudFBvaW50ZXJkb3duVW5saXN0ZW4oKTtcclxuICAgICAgICAgICAgdGhpcy5fZG9jdW1lbnRNb3VzZWRvd25Vbmxpc3RlbiA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -55,7 +55,7 @@ export class HTTPService extends HTTPManager {
|
|
|
55
55
|
this.dialogService.addDialog(DialogErrorComponent, {
|
|
56
56
|
width: '600px',
|
|
57
57
|
texts: ['Error: ' + result.code, errorMsg],
|
|
58
|
-
|
|
58
|
+
options: ['Ok']
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
61
|
}
|
|
@@ -71,4 +71,4 @@ export class HTTPService extends HTTPManager {
|
|
|
71
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: HTTPService, decorators: [{
|
|
72
72
|
type: Injectable
|
|
73
73
|
}], ctorParameters: () => [{ type: i1.DialogService }] });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVyYm9ndWktYW5ndWxhci9zcmMvbWFpbi9jb250cm9sbGVyL2h0dHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUEwQixXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVuRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7O0FBRzlGOztHQUVHO0FBRUgsTUFBTSxPQUFPLFdBQVksU0FBUSxXQUFXO0lBR3hDOzs7T0FHRzthQUNhLHdCQUFtQixHQUFHLHFCQUFxQixBQUF4QixDQUF5QjtJQUc1RDs7O09BR0c7YUFDYSwyQkFBc0IsR0FBRyx3QkFBd0IsQUFBM0IsQ0FBNEI7SUFHbEUsWUFBbUIsYUFBNEI7UUFFM0MsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRkcsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFHL0MsQ0FBQztJQUdEOzs7Ozs7O09BT0c7SUFDSCxPQUFPLENBQUMsUUFBeUUsRUFDekUsbUJBQThJLElBQUksRUFDbEosbUJBQW1GLElBQUksRUFDdkYsVUFBZ0csRUFBRTtRQUV0RyxJQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxFQUFDO1lBRXJELElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUN6QztRQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFO1lBRTFDLElBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEVBQUM7Z0JBRXBELElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLEVBQUUsQ0FBQzthQUM3QztZQUVELElBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBQztnQkFFckUsS0FBSSxJQUFJLE1BQU0sSUFBSSxPQUFPLEVBQUM7b0JBRXRCLElBQUcsTUFBTSxDQUFDLE9BQU8sRUFBQzt3QkFFZCxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxHQUFHLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO3dCQUUxRCxJQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUM7NEJBRTdCLFFBQVEsR0FBRywyREFBMkQsQ0FBQzt5QkFDMUU7d0JBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEVBQzdDOzRCQUNJLEtBQUssRUFBQyxPQUFPOzRCQUNiLEtBQUssRUFBRSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQzs0QkFDMUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDO3lCQUNsQixDQUFDLENBQUM7cUJBQ1Y7aUJBQ0o7YUFDSjtZQUVELElBQUcsZ0JBQWdCLEtBQUssSUFBSSxFQUFDO2dCQUV6QixnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDdkM7UUFFSixDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUMxQixDQUFDOzhHQTdFUSxXQUFXO2tIQUFYLFdBQVc7OzJGQUFYLFdBQVc7a0JBRHZCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogVHVyYm9HVUkgaXMgQSBsaWJyYXJ5IHRoYXQgaGVscHMgd2l0aCB0aGUgbW9zdCBjb21tb24gYW5kIGdlbmVyaWMgVUkgZWxlbWVudHMgYW5kIGZ1bmN0aW9uYWxpdGllc1xyXG4gKlxyXG4gKiBXZWJzaXRlIDogLT4gaHR0cDovL3d3dy50dXJib2d1aS5vcmdcclxuICogTGljZW5zZSA6IC0+IExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuICogTGljZW5zZSBVcmwgOiAtPiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICogQ29weVJpZ2h0IDogLT4gQ29weXJpZ2h0IDIwMTggRWRlcnRvbmUgQWR2YW5kZWQgU29sdXRpb25zLiBodHRwczovL3d3dy5lZGVydG9uZS5jb21cclxuICovXHJcblxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEhUVFBNYW5hZ2VyLCBIVFRQTWFuYWdlckJhc2VSZXF1ZXN0LCBTdHJpbmdVdGlscyB9IGZyb20gJ3R1cmJvY29tbW9ucy10cyc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGlhbG9nRXJyb3JDb21wb25lbnQgfSBmcm9tICcuLi92aWV3L2NvbXBvbmVudHMvZGlhbG9nLWVycm9yL2RpYWxvZy1lcnJvci5jb21wb25lbnQnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBNYW5hZ2VzIGFwcGxpY2F0aW9uIGh0dHAgY29tbXVuaWNhdGlvbnNcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEhUVFBTZXJ2aWNlIGV4dGVuZHMgSFRUUE1hbmFnZXIge1xyXG4gICAgXHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogZXhlY3V0ZSgpIG1ldGhvZCBvcHRpb24gdGhhdCB0ZWxscyB0aGUgc2VydmljZSB0byBhdm9pZCBibG9ja2luZyB0aGUgdXNlciBpbnRlcmZhY2Ugd2l0aCBhIG1vZGFsIGJ1c3kgc3RhdGUgd2hpbGUgdGhlIHJlcXVlc3RzIHRoYXQgYXJlXHJcbiAgICAgKiBsYXVuY2hlZCBieSB0aGUgZXhlY3V0ZSBtZXRob2QgYXJlIHJ1bm5pbmcuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyByZWFkb25seSBOT19NT0RBTF9CVVNZX1NUQVRFID0gJ05PX01PREFMX0JVU1lfU1RBVEUnO1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIGV4ZWN1dGUoKSBtZXRob2Qgb3B0aW9uIHRoYXQgdGVsbHMgdGhlIHNlcnZpY2UgdG8gc2tpcCBzaG93aW5nIGFuIGVycm9yIGRpYWxvZyB3aGVuIGEgcmVxdWVzdCBmYWlscy4gV2Ugbm9ybWFsbHkgdXNlIHRoaXMgdG8gaGFuZGxlIHRoZVxyXG4gICAgICogZXJyb3JzIGJ5IG91cnNlbHZlcyBvciBpZiB3ZSB3YW50IHRvIGhpZGUgdGhlIGVycm9yIGRpYWxvZyBmb3IgYSBzcGVjaWZpYyByZXF1ZXN0LlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgRElTQUJMRV9FUlJPUl9IQU5ETElORyA9ICdESVNBQkxFX0VSUk9SX0hBTkRMSU5HJztcclxuXHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UpIHtcclxuXHJcbiAgICAgICAgc3VwZXIodHJ1ZSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc2FtZSBtZXRob2QgYXMgSFRUUE1hbmFnZXIuZXhlY3V0ZSBidXQgd2l0aCB0aGUgYWJpbGl0eSB0byBlbmFibGUgc2V2ZXJhbCBvcHRpb25zIHdoaWNoIGFyZSBzcGVjaWZpYyB0byB0aGlzIHNlcnZpY2U6XHJcbiAgICAgKlxyXG4gICAgICogLSBIVFRQU2VydmljZS5OT19NT0RBTF9CVVNZX1NUQVRFIFRvIHByZXZlbnQgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIG9mIGxvY2tpbmcgdGhlIFVJIHdoaWxlIHRoZSByZXF1ZXN0IGlzIHJ1bm5pbmdcclxuICAgICAqIC0gSFRUUFNlcnZpY2UuRElTQUJMRV9FUlJPUl9IQU5ETElORyBUbyBwcmV2ZW50IHRoZSBkZWZhdWx0IGJlaGF2aW91ciBvZiBzaG93aW5nIGEgZGV0YWlsZWQgZXJyb3IgZGlhbG9nIHdoZW4gYSByZXF1ZXN0IGZhaWxzXHJcbiAgICAgKlxyXG4gICAgICogQHNlZSBIVFRQTWFuYWdlci5leGVjdXRlKClcclxuICAgICAqL1xyXG4gICAgZXhlY3V0ZShyZXF1ZXN0czogc3RyaW5nfHN0cmluZ1tdfEhUVFBNYW5hZ2VyQmFzZVJlcXVlc3R8SFRUUE1hbmFnZXJCYXNlUmVxdWVzdFtdLFxyXG4gICAgICAgICAgICBmaW5pc2hlZENhbGxiYWNrOiAoKHJlc3VsdHM6IHt1cmw6c3RyaW5nLCByZXNwb25zZTphbnksIGlzRXJyb3I6Ym9vbGVhbiwgZXJyb3JNc2c6c3RyaW5nLCBjb2RlOm51bWJlcn1bXSwgYW55RXJyb3I6Ym9vbGVhbikgPT4gdm9pZCkgfCBudWxsID0gbnVsbCxcclxuICAgICAgICAgICAgcHJvZ3Jlc3NDYWxsYmFjazogbnVsbCB8ICgoY29tcGxldGVkVXJsOiBzdHJpbmcsIHRvdGFsUmVxdWVzdHM6IG51bWJlcikgPT4gdm9pZCkgPSBudWxsLFxyXG4gICAgICAgICAgICBvcHRpb25zOiAodHlwZW9mIEhUVFBTZXJ2aWNlLk5PX01PREFMX0JVU1lfU1RBVEV8dHlwZW9mIEhUVFBTZXJ2aWNlLkRJU0FCTEVfRVJST1JfSEFORExJTkcpW10gPSBbXSl7XHJcbiAgICBcclxuICAgICAgICBpZihvcHRpb25zLmluZGV4T2YoSFRUUFNlcnZpY2UuTk9fTU9EQUxfQlVTWV9TVEFURSkgPCAwKXtcclxuICAgICAgICAgICBcclxuICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuYWRkTW9kYWxCdXN5U3RhdGUoKTsgXHJcbiAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgc3VwZXIuZXhlY3V0ZShyZXF1ZXN0cywgKHJlc3VsdHMsIGFueUVycm9yKSA9PiB7IFxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYob3B0aW9ucy5pbmRleE9mKEhUVFBTZXJ2aWNlLk5PX01PREFMX0JVU1lfU1RBVEUpIDwgMCl7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5yZW1vdmVNb2RhbEJ1c3lTdGF0ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZigob3B0aW9ucy5pbmRleE9mKEhUVFBTZXJ2aWNlLkRJU0FCTEVfRVJST1JfSEFORExJTkcpIDwgMCkgJiYgYW55RXJyb3Ipe1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBmb3IobGV0IHJlc3VsdCBvZiByZXN1bHRzKXtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBpZihyZXN1bHQuaXNFcnJvcil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3JNc2cgPSByZXN1bHQuZXJyb3JNc2cgKyAnXFxuXFxuJyArIHJlc3VsdC5yZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKFN0cmluZ1V0aWxzLmlzRW1wdHkoZXJyb3JNc2cpKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1zZyA9ICdVbmtub3duIGVycm9yLiBNYWtlIHN1cmUgSW50ZXJuZXQgY29ubmVjdGlvbiBpcyBhdmFpbGFibGUnOyAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5hZGREaWFsb2coRGlhbG9nRXJyb3JDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6JzYwMHB4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0czogWydFcnJvcjogJyArIHJlc3VsdC5jb2RlLCBlcnJvck1zZ10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogWydPayddXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYoZmluaXNoZWRDYWxsYmFjayAhPT0gbnVsbCl7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGZpbmlzaGVkQ2FsbGJhY2socmVzdWx0cywgYW55RXJyb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICB9LCBwcm9ncmVzc0NhbGxiYWNrKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
package/esm2022/main/view/components/dialog-date-selection/dialog-date-selection.component.mjs
CHANGED
|
@@ -30,17 +30,14 @@ export class DialogDateSelectionComponent extends DialogOptionsBaseComponent {
|
|
|
30
30
|
// throw new Error('DialogErrorComponent expects only one option');
|
|
31
31
|
// }
|
|
32
32
|
}
|
|
33
|
-
onDateSelected(event) {
|
|
34
|
-
alert(`Selected: ${event}`);
|
|
35
|
-
}
|
|
36
33
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: DialogDateSelectionComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: DialogDateSelectionComponent, selector: "tg-dialog-date-selection", usesInheritance: true, ngImport: i0, template: "<h2>{{data.texts[0]}}</h2>\r\n\r\n<mat-calendar #calendar\r\n (selectedChange)=\"
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: DialogDateSelectionComponent, selector: "tg-dialog-date-selection", usesInheritance: true, ngImport: i0, template: "<h2>{{data.texts[0]}}</h2>\r\n\r\n<mat-calendar #calendar\r\n (selectedChange)=\"dialogRef.close({index: 0, value: $event})\">\r\n</mat-calendar>", styles: [":host{position:relative;min-height:300px}h1{margin-top:0;margin-bottom:25px;width:82%}\n"], dependencies: [{ kind: "component", type: i2.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }] }); }
|
|
38
35
|
}
|
|
39
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: DialogDateSelectionComponent, decorators: [{
|
|
40
37
|
type: Component,
|
|
41
|
-
args: [{ selector: 'tg-dialog-date-selection', template: "<h2>{{data.texts[0]}}</h2>\r\n\r\n<mat-calendar #calendar\r\n (selectedChange)=\"
|
|
38
|
+
args: [{ selector: 'tg-dialog-date-selection', template: "<h2>{{data.texts[0]}}</h2>\r\n\r\n<mat-calendar #calendar\r\n (selectedChange)=\"dialogRef.close({index: 0, value: $event})\">\r\n</mat-calendar>", styles: [":host{position:relative;min-height:300px}h1{margin-top:0;margin-bottom:25px;width:82%}\n"] }]
|
|
42
39
|
}], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
43
40
|
type: Inject,
|
|
44
41
|
args: [MAT_DIALOG_DATA]
|
|
45
42
|
}] }] });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWRhdGUtc2VsZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1cmJvZ3VpLWFuZ3VsYXIvc3JjL21haW4vdmlldy9jb21wb25lbnRzL2RpYWxvZy1kYXRlLXNlbGVjdGlvbi9kaWFsb2ctZGF0ZS1zZWxlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVyYm9ndWktYW5ndWxhci9zcmMvbWFpbi92aWV3L2NvbXBvbmVudHMvZGlhbG9nLWRhdGUtc2VsZWN0aW9uL2RpYWxvZy1kYXRlLXNlbGVjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7OztBQUVsRzs7R0FFRztBQVFILE1BQU0sT0FBTyw0QkFBNkIsU0FBUSwwQkFBMEI7SUFNeEUsWUFBbUIsU0FBbUQsRUFDMUIsSUFBUztRQUVqRCxLQUFLLEVBQUUsQ0FBQztRQUhPLGNBQVMsR0FBVCxTQUFTLENBQTBDO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQUs7UUFJekQsc0NBQXNDO1FBQ3RDLEVBQUU7UUFDRiw4R0FBOEc7UUFDOUcsV0FBVztRQUNYLEVBQUU7UUFDRiwwQ0FBMEM7UUFDMUMsRUFBRTtRQUNGLDhFQUE4RTtRQUM5RSxXQUFXO0lBQ1AsQ0FBQzs4R0FwQlEsNEJBQTRCLDhDQU9qQixlQUFlO2tHQVAxQiw0QkFBNEIsdUZDdkJ6QyxzSkFJZTs7MkZEbUJGLDRCQUE0QjtrQkFQeEMsU0FBUzsrQkFDRSwwQkFBMEI7OzBCQWFyQixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogVHVyYm9HVUkgaXMgQSBsaWJyYXJ5IHRoYXQgaGVscHMgd2l0aCB0aGUgbW9zdCBjb21tb24gYW5kIGdlbmVyaWMgVUkgZWxlbWVudHMgYW5kIGZ1bmN0aW9uYWxpdGllc1xyXG4gKlxyXG4gKiBXZWJzaXRlIDogLT4gaHR0cDovL3d3dy50dXJib2d1aS5vcmdcclxuICogTGljZW5zZSA6IC0+IExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuICogTGljZW5zZSBVcmwgOiAtPiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICogQ29weVJpZ2h0IDogLT4gQ29weXJpZ2h0IDIwMTggRWRlcnRvbmUgQWR2YW5kZWQgU29sdXRpb25zLiBodHRwczovL3d3dy5lZGVydG9uZS5jb21cclxuICovXHJcblxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IERpYWxvZ09wdGlvbnNCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vZGlhbG9nLW9wdGlvbnMtYmFzZS9kaWFsb2ctb3B0aW9ucy1iYXNlLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogQSBkaWFsb2cgY29tcG9uZW50IHdpdGggYSBjYWxlbmRhciB0aGF0IGFsbG93cyB1cyB0byBzZWxlY3QgYSBzaW5nbGUgZGF0ZSB2YWx1ZVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Zy1kaWFsb2ctZGF0ZS1zZWxlY3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2ctZGF0ZS1zZWxlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RpYWxvZy1kYXRlLXNlbGVjdGlvbi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIERpYWxvZ0RhdGVTZWxlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBEaWFsb2dPcHRpb25zQmFzZUNvbXBvbmVudCB7XHJcblxyXG4gICAgXHJcbiAgICBzZWxlY3RlZERhdGU6RGF0ZTtcclxuXHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERpYWxvZ09wdGlvbnNCYXNlQ29tcG9uZW50PixcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55KSB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBcclxuLy8gICAgICAgIGlmIChkYXRhLnRleHRzLmxlbmd0aCA8IDEpIHtcclxuLy9cclxuLy8gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RpYWxvZ0Vycm9yQ29tcG9uZW50IGV4cGVjdHMgMiB0ZXh0czogVGhlIHRpdGxlIGFuZCBvcHRpb25hbGx5IGEgZGVzY3JpcHRpb24nKTtcclxuLy8gICAgICAgIH1cclxuLy9cclxuLy8gICAgICAgIGlmIChkYXRhLm9wdGlvbnMubGVuZ3RoICE9PSAxKSB7XHJcbi8vXHJcbi8vICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEaWFsb2dFcnJvckNvbXBvbmVudCBleHBlY3RzIG9ubHkgb25lIG9wdGlvbicpO1xyXG4vLyAgICAgICAgfVxyXG4gICAgfVxyXG4vLyAgICBcclxuLy8gICAgXHJcbi8vICAgIG9uRGF0ZVNlbGVjdGVkKGV2ZW50OmFueSl7XHJcbi8vICAgICAgICBhbGVydChgU2VsZWN0ZWQ6ICR7ZXZlbnR9YCk7XHJcbi8vICAgIH1cclxufVxyXG4iLCI8aDI+e3tkYXRhLnRleHRzWzBdfX08L2gyPlxyXG5cclxuPG1hdC1jYWxlbmRhciAjY2FsZW5kYXJcclxuICAgIChzZWxlY3RlZENoYW5nZSk9XCJkaWFsb2dSZWYuY2xvc2Uoe2luZGV4OiAwLCB2YWx1ZTogJGV2ZW50fSlcIj5cclxuPC9tYXQtY2FsZW5kYXI+Il19
|
|
@@ -141,15 +141,12 @@ class DialogDateSelectionComponent extends DialogOptionsBaseComponent {
|
|
|
141
141
|
// throw new Error('DialogErrorComponent expects only one option');
|
|
142
142
|
// }
|
|
143
143
|
}
|
|
144
|
-
onDateSelected(event) {
|
|
145
|
-
alert(`Selected: ${event}`);
|
|
146
|
-
}
|
|
147
144
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: DialogDateSelectionComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
148
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: DialogDateSelectionComponent, selector: "tg-dialog-date-selection", usesInheritance: true, ngImport: i0, template: "<h2>{{data.texts[0]}}</h2>\r\n\r\n<mat-calendar #calendar\r\n (selectedChange)=\"
|
|
145
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: DialogDateSelectionComponent, selector: "tg-dialog-date-selection", usesInheritance: true, ngImport: i0, template: "<h2>{{data.texts[0]}}</h2>\r\n\r\n<mat-calendar #calendar\r\n (selectedChange)=\"dialogRef.close({index: 0, value: $event})\">\r\n</mat-calendar>", styles: [":host{position:relative;min-height:300px}h1{margin-top:0;margin-bottom:25px;width:82%}\n"], dependencies: [{ kind: "component", type: i2.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }] }); }
|
|
149
146
|
}
|
|
150
147
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: DialogDateSelectionComponent, decorators: [{
|
|
151
148
|
type: Component,
|
|
152
|
-
args: [{ selector: 'tg-dialog-date-selection', template: "<h2>{{data.texts[0]}}</h2>\r\n\r\n<mat-calendar #calendar\r\n (selectedChange)=\"
|
|
149
|
+
args: [{ selector: 'tg-dialog-date-selection', template: "<h2>{{data.texts[0]}}</h2>\r\n\r\n<mat-calendar #calendar\r\n (selectedChange)=\"dialogRef.close({index: 0, value: $event})\">\r\n</mat-calendar>", styles: [":host{position:relative;min-height:300px}h1{margin-top:0;margin-bottom:25px;width:82%}\n"] }]
|
|
153
150
|
}], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
154
151
|
type: Inject,
|
|
155
152
|
args: [MAT_DIALOG_DATA]
|
|
@@ -382,49 +379,48 @@ class DialogService {
|
|
|
382
379
|
* @param maxWidth Defines the maximum width that the dialog will have regarding the viewport. We can specify it in % or vw, just like is done in
|
|
383
380
|
* css. By default it is defined as 96vw, which will fit 96% of the viewport on small devices
|
|
384
381
|
*/
|
|
385
|
-
addDialog(dialogComponentClass,
|
|
382
|
+
addDialog(dialogComponentClass, properties, callback = null) {
|
|
386
383
|
if (!this._isEnabled) {
|
|
387
384
|
return;
|
|
388
385
|
}
|
|
389
|
-
// Set the default values for all non specified
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
options
|
|
386
|
+
// Set the default values for all non specified properties
|
|
387
|
+
properties.width = properties.hasOwnProperty('width') ? properties.width : "50%";
|
|
388
|
+
properties.maxWidth = properties.hasOwnProperty('maxWidth') ? properties.maxWidth : "96vw";
|
|
389
|
+
properties.height = properties.hasOwnProperty('height') ? properties.height : "50%";
|
|
390
|
+
properties.maxHeight = properties.hasOwnProperty('maxHeight') ? properties.maxHeight : "92vw";
|
|
391
|
+
properties.modal = properties.hasOwnProperty('modal') ? properties.modal : true;
|
|
392
|
+
properties.texts = properties.hasOwnProperty('texts') ? properties.texts : [];
|
|
393
|
+
properties.options = properties.hasOwnProperty('options') ? properties.options : [];
|
|
397
394
|
// Generate a string to uniquely identify this dialog on the list of active dialogs
|
|
398
|
-
const dialogHash =
|
|
395
|
+
const dialogHash = properties.texts.join('') + properties.options.join('') + dialogComponentClass.name;
|
|
399
396
|
// identical dialogs won't be allowed at the same time
|
|
400
397
|
if (this._activeDialogs.includes(dialogHash)) {
|
|
401
398
|
return;
|
|
402
399
|
}
|
|
403
400
|
const dialogRef = this.matDialog.open(dialogComponentClass, {
|
|
404
|
-
width:
|
|
405
|
-
maxWidth:
|
|
406
|
-
disableClose:
|
|
401
|
+
width: properties.width,
|
|
402
|
+
maxWidth: properties.maxWidth,
|
|
403
|
+
disableClose: properties.modal,
|
|
407
404
|
autoFocus: false,
|
|
408
|
-
closeOnNavigation: !
|
|
409
|
-
data: { texts:
|
|
405
|
+
closeOnNavigation: !properties.modal,
|
|
406
|
+
data: { texts: properties.texts, options: properties.options }
|
|
410
407
|
});
|
|
411
408
|
this._activeDialogs.push(dialogHash);
|
|
412
409
|
this._activeDialogInstances.push(dialogRef);
|
|
413
|
-
dialogRef.beforeClosed().subscribe((
|
|
410
|
+
dialogRef.beforeClosed().subscribe((selectedOption) => {
|
|
414
411
|
this._activeDialogs = ArrayUtils.removeElement(this._activeDialogs, dialogHash);
|
|
415
412
|
this._activeDialogInstances = ArrayUtils.removeElement(this._activeDialogInstances, dialogRef);
|
|
416
|
-
if (!NumericUtils.isInteger(
|
|
417
|
-
if (
|
|
413
|
+
if (!NumericUtils.isInteger(selectedOption.index)) {
|
|
414
|
+
if (properties.modal) {
|
|
418
415
|
throw new Error(`dialogRef.close() expects int value`);
|
|
419
416
|
}
|
|
420
417
|
else {
|
|
421
|
-
|
|
418
|
+
selectedOption.index = -1;
|
|
422
419
|
}
|
|
423
420
|
}
|
|
424
421
|
if (callback !== null) {
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
selectedOption.value = options.captions[selectedOptionIndex];
|
|
422
|
+
if (selectedOption.index >= 0) {
|
|
423
|
+
selectedOption.value = properties.options[selectedOption.index];
|
|
428
424
|
}
|
|
429
425
|
callback(selectedOption);
|
|
430
426
|
}
|
|
@@ -445,24 +441,19 @@ class DialogService {
|
|
|
445
441
|
this._activeDialogs = [];
|
|
446
442
|
this._activeDialogInstances = [];
|
|
447
443
|
}
|
|
448
|
-
addDateSelectionDialog(
|
|
444
|
+
addDateSelectionDialog(properties, title, callback) {
|
|
449
445
|
if (!this._isEnabled) {
|
|
450
446
|
return;
|
|
451
447
|
}
|
|
452
448
|
this.addDialog(DialogDateSelectionComponent, {
|
|
453
|
-
width:
|
|
454
|
-
maxWidth:
|
|
455
|
-
height:
|
|
456
|
-
maxHeight:
|
|
457
|
-
modal:
|
|
449
|
+
width: properties.width,
|
|
450
|
+
maxWidth: properties.maxWidth,
|
|
451
|
+
height: properties.height,
|
|
452
|
+
maxHeight: properties.maxHeight,
|
|
453
|
+
modal: properties.modal,
|
|
458
454
|
texts: [title]
|
|
459
455
|
}, (selectedOption) => {
|
|
460
|
-
|
|
461
|
-
callback(null);
|
|
462
|
-
}
|
|
463
|
-
else {
|
|
464
|
-
callback(selectedOption.value);
|
|
465
|
-
}
|
|
456
|
+
callback(selectedOption.value);
|
|
466
457
|
});
|
|
467
458
|
}
|
|
468
459
|
/**
|
|
@@ -608,7 +599,7 @@ class HTTPService extends HTTPManager {
|
|
|
608
599
|
this.dialogService.addDialog(DialogErrorComponent, {
|
|
609
600
|
width: '600px',
|
|
610
601
|
texts: ['Error: ' + result.code, errorMsg],
|
|
611
|
-
|
|
602
|
+
options: ['Ok']
|
|
612
603
|
});
|
|
613
604
|
}
|
|
614
605
|
}
|